diff --git a/.github/workflows/build_testing.yml b/.github/workflows/build_testing.yml index efcb3f9b23..9e21ec6817 100644 --- a/.github/workflows/build_testing.yml +++ b/.github/workflows/build_testing.yml @@ -12,34 +12,22 @@ jobs: matrix: include: - exp: "offline_exf_seaice" - precs: "16 16 16 16 16" - exp: "global_ocean.cs32x15" - precs: "16 16 16 16 16" - exp: "tutorial_deep_convection" - precs: "16 16" - exp: "aim.5l_cs" - precs: "14 16" - exp: "isomip" - precs: "16 16 16 16" - exp: "global_ocean.90x40x15" - precs: "16 16 16" - exp: "tutorial_plume_on_slope" - precs: "16" - exp: "tutorial_advection_in_gyre" - precs: "16" - exp: "hs94.cs-32x32x5" - precs: "13 16" - exp: "tutorial_global_oce_biogeo" - precs: "16" - exp: "tutorial_global_oce_in_p" - precs: "16" - exp: "tutorial_cfc_offline" - precs: "16" continue-on-error: true steps: - + - name: Checkout uses: actions/checkout@v2.2.0 @@ -47,11 +35,10 @@ jobs: run: | docker pull oliverjahn/testreport-images:ubuntu_18_04_villon docker run -v `pwd`:/MITgcm --name ubuntu_18_04-testreport -t -d oliverjahn/testreport-images:ubuntu_18_04_villon /bin/bash - + - name: Run a test - env: + env: MITGCM_EXP: ${{ matrix.exp }} - MITGCM_PRECS: ${{ matrix.precs }} run: | . tools/ci/runtr.sh @@ -165,7 +152,6 @@ jobs: matrix: include: - exp: "global_ocean.90x40x15" - precs: "16" continue-on-error: true @@ -182,9 +168,44 @@ jobs: - name: Run testreport env: MITGCM_EXP: ${{ matrix.exp }} - MITGCM_PRECS: ${{ matrix.precs }} MITGCM_DECMD: "docker exec -i openad-testing bash -lc" - MITGCM_TROPT: "-oad -devel -of=../tools/build_options/linux_amd64_gfortran" + MITGCM_TROPT: "-oad -devel -of=../tools/build_options/linux_amd64_gfortran -match 14" + MITGCM_INPUT_DIR_PAT: '/input_oad.*' + run: | + . tools/ci/runtr.sh + + openad-other: + runs-on: ubuntu-latest + if: ${{ contains(github.event.pull_request.labels.*.name, 'adjoint') }} + + strategy: + matrix: + include: + - exp: "global_oce_latlon" + - exp: "halfpipe_streamice" + - exp: "hs94.1x64x5" + - exp: "isomip" + - exp: "tutorial_global_oce_biogeo" + - exp: "tutorial_global_oce_optim" + - exp: "tutorial_tracer_adjsens" + + continue-on-error: true + + steps: + + - name: Checkout + uses: actions/checkout@v2.2.0 + + - name: Get a docker image and set it running + run: | + docker pull mitgcm/mitgcm-openad-test:centos-test + docker run -i -t -v `pwd`:/MITgcm -d --name openad-testing --ulimit stack=-1:-1 --rm mitgcm/mitgcm-openad-test:centos-test /bin/bash + + - name: Run testreport + env: + MITGCM_EXP: ${{ matrix.exp }} + MITGCM_DECMD: "docker exec -i openad-testing bash -lc" + MITGCM_TROPT: "-oad -devel -of=../tools/build_options/linux_amd64_gfortran -match 14" MITGCM_INPUT_DIR_PAT: '/input_oad.*' run: | . tools/ci/runtr.sh @@ -201,7 +222,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.6 + python-version: 3.11 - name: install dependencies run: tools/ci/install_doc_dependencies.sh @@ -223,7 +244,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v2 with: - python-version: 3.6 + python-version: 3.11 - name: install dependencies run: tools/ci/install_doc_dependencies.sh diff --git a/.gitignore b/.gitignore index 05aa072bc0..abcff30e1f 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ core /verification/*/tr_run.* +/tools/TAP_support/ADFirstAidKit/*.gch diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0f8665c1cc..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,80 +0,0 @@ -# Travis file for running some basic set of testreport checks on each commit -language: python - -services: - - docker - -before_install: - # Set up environment needed to run testreport code tests - - docker pull mitgcm/mitgcm-openad-test:centos-test - - docker run -i -t -v `pwd`:/MITgcm -d --name openad-testing --ulimit stack=-1:-1 --rm mitgcm/mitgcm-openad-test:centos-test /bin/bash - - docker pull mitgcm/testreport-images:ubuntu_18_04_villon - - docker run -v `pwd`:/MITgcm --name ubuntu_18_04-testreport -t -d mitgcm/testreport-images:ubuntu_18_04_villon /bin/bash - -jobs: - include: - # run the tests - - stage: code tests - env: - - MITGCM_EXP="global_ocean.90x40x15" MITGCM_PRECS="16" - MITGCM_DECMD="docker exec -i openad-testing bash -lc" - MITGCM_TROPT="-oad -devel -of=../tools/build_options/linux_amd64_gfortran" - MITGCM_INPUT_DIR_PAT='/input_oad.*' - script: travis_wait . tools/ci/runtr.sh - - env: - - MITGCM_EXP="offline_exf_seaice" MITGCM_PRECS="16 16 16 16 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="global_ocean.cs32x15" MITGCM_PRECS="16 16 16 16 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_deep_convection" MITGCM_PRECS="16 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="aim.5l_cs" MITGCM_PRECS="14 16" - script: . tools/ci/runtr.sh - - - env: - - MITGCM_EXP="isomip" MITGCM_PRECS="16 16 16 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="global_ocean.90x40x15" MITGCM_PRECS="16 16 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_plume_on_slope" MITGCM_PRECS="16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_advection_in_gyre" MITGCM_PRECS="16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="hs94.cs-32x32x5" MITGCM_PRECS="13 16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_global_oce_biogeo" MITGCM_PRECS="16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_global_oce_in_p" MITGCM_PRECS="16" - script: . tools/ci/runtr.sh - - env: - - MITGCM_EXP="tutorial_cfc_offline" MITGCM_PRECS="16" - script: . tools/ci/runtr.sh - # - stage: summary of code tests - # disabled because jobs do not share data - # Generate a summary - # script: docker exec -i ubuntu_18_04-testreport bash -c "cd /MITgcm/verification; ./testreport ${MITGCM_TROPT} -q" - # build documentation - - stage: test documentation - env: - - BUILD="html" - python: "3.6" - script: - - tools/ci/install_doc_dependencies.sh > /dev/null - - cd doc - - sphinx-build -Wa -b ${BUILD} -d _build/doctrees . _build/html - - env: - - BUILD="latexpdf" - python: "3.6" - script: - - tools/ci/install_doc_dependencies.sh > /dev/null - - cd doc - - make clean ${BUILD} LATEXOPTS="-interaction=nonstopmode -halt-on-error" diff --git a/doc/algorithm/adv-schemes.rst b/doc/algorithm/adv-schemes.rst index eaa9e5f051..218a261720 100644 --- a/doc/algorithm/adv-schemes.rst +++ b/doc/algorithm/adv-schemes.rst @@ -23,7 +23,7 @@ solution. The advection operator is discretized: .. math:: - {\cal A}_c \Delta r_f h_c G_{adv}^\tau = + {\cal A}_c \Delta r_f h_c G_{\rm adv}^\tau = \delta_i F_x + \delta_j F_y + \delta_k F_r :label: cent_2nd_ord @@ -117,7 +117,6 @@ accuracy of this boundary condition and the effect on the solution. | :math:`W` : :varlink:`rTrans` ( argument ) | :math:`\tau` : :varlink:`tracer` ( argument ) - Centered fourth order advection ------------------------------- @@ -211,7 +210,7 @@ generally expressed in terms of other flux approximations. For example, in terms of a first order upwind flux and second order Lax-Wendroff flux, the limited flux is given as: -.. math:: F = F_1 + \psi(r) F_{LW} +.. math:: F = (1 - \psi(r)) F_1 + \psi(r) F_{\rm LW} :label: limited_flux where :math:`\psi(r)` is the limiter function, @@ -220,9 +219,9 @@ where :math:`\psi(r)` is the limiter function, is the upwind flux, -.. math:: F_{LW} = F_1 + \frac{|u|}{2} (1-c) \delta_i \tau +.. math:: F_{\rm LW} = u \overline{\tau}^i - \frac{1}{2} c |u| \delta_i \tau -is the Lax-Wendroff flux and :math:`c = \frac{u \Delta t}{\Delta x}` is +is the Lax-Wendroff flux and :math:`c = \frac{|u| \Delta t}{\Delta x}` is the Courant (CFL) number. The limiter function, :math:`\psi(r)`, takes the slope ratio @@ -260,7 +259,6 @@ only provide the Superbee limiter (Roe 1995 :cite:`roe:85`): | :math:`W` : :varlink:`rTrans` ( argument ) | :math:`\tau` : :varlink:`tracer` ( argument ) - Third order direct space-time ----------------------------- @@ -385,13 +383,13 @@ the flux calculations to be implemented as if in one dimension: .. math:: \begin{aligned} - \tau^{n+1/3} & = & \tau^{n} + \tau^{n+1/3} & = \tau^{n} - \Delta t \left( \frac{1}{\Delta x} \delta_i F^x(\tau^{n}) - \tau^{n} \frac{1}{\Delta x} \delta_i u \right) \\ - \tau^{n+2/3} & = & \tau^{n+1/3} + \tau^{n+2/3} & = \tau^{n+1/3} - \Delta t \left( \frac{1}{\Delta y} \delta_j F^y(\tau^{n+1/3}) - \tau^{n} \frac{1}{\Delta y} \delta_i v \right) \\ - \tau^{n+3/3} & = & \tau^{n+2/3} + \tau^{n+3/3} & = \tau^{n+2/3} - \Delta t \left( \frac{1}{\Delta r} \delta_k F^x(\tau^{n+2/3}) - \tau^{n} \frac{1}{\Delta r} \delta_i w \right)\end{aligned} :label: tau_multiD @@ -401,11 +399,11 @@ compute the effective tendency rather than update the tracer so that other terms such as diffusion are using the :math:`n` time-level and not the updated :math:`n+3/3` quantities: -.. math:: G^{n+1/2}_{adv} = \frac{1}{\Delta t} ( \tau^{n+3/3} - \tau^{n} ) +.. math:: G^{n+1/2}_{\rm adv} = \frac{1}{\Delta t} ( \tau^{n+3/3} - \tau^{n} ) So that the over all time-stepping looks likes: -.. math:: \tau^{n+1} = \tau^{n} + \Delta t \left( G^{n+1/2}_{adv} + G_{diff}(\tau^{n}) + G^{n}_{forcing} \right) +.. math:: \tau^{n+1} = \tau^{n} + \Delta t \left( G^{n+1/2}_{\rm adv} + G_{\rm diff}(\tau^{n}) + G^{n}_{\rm forcing} \right) .. admonition:: S/R :filelink:`GAD_ADVECTION ` :class: note @@ -430,7 +428,7 @@ A schematic of multi-dimension time stepping for the cube sphere configuration i Comparison of advection schemes =============================== -:numref:`adv_scheme_summary` shows a summary of the different advection schemes available in MITgcm. +:numref:`adv_scheme_summary` shows a summary of the different advection schemes available in MITgcm. “AB” stands for Adams-Bashforth and “DST” for direct space-time. The code corresponds to the number used to select the corresponding advection scheme in the parameter file (e.g., ``tempAdvScheme=3`` in file ``data`` selects the 3rd order upwind advection scheme for temperature advection). @@ -438,7 +436,6 @@ to select the corresponding advection scheme in the parameter file (e.g., ``temp .. table:: MITgcm Advection Schemes :name: adv_scheme_summary - +-------------------------------------------------------------+------+-----+---------------+---------+---------------------------------------------------+ | Advection Scheme | Code | Use | Use | Stencil | Comments | | | | AB? | multi-dim? | (1-D) | | @@ -477,7 +474,6 @@ to select the corresponding advection scheme in the parameter file (e.g., ``temp +-------------------------------------------------------------+------+-----+---------------+---------+---------------------------------------------------+ | second order-moment Prather w/limiter |  81 | no | yes | 3 | non-linear | +-------------------------------------------------------------+------+-----+---------------+---------+---------------------------------------------------+ - yes\ :sup:`*` indicates that either the multi-dim advection algorithm or standard approach can be utilized, controlled by a namelist parameter :varlink:`multiDimAdvection` (in these cases, given that these schemes was designed to use multi-dim advection, using the standard approach is not recommended). @@ -507,7 +503,6 @@ Shown in :numref:`advect-1d-lo` and :numref:`advect-1d-hi` is a 1-D comparison o Comparison of 1-D advection schemes: Courant number is 0.89 with 60 points and solutions are shown for T=1 (one complete period). a) Shows the upwind biased schemes; first order upwind and DST3. Third order upwind and second order upwind are unstable at this Courant number. b) Shows the centered schemes; Lax-Wendroff, DST4. Centered second order, centered fourth order and finite volume fourth order are unstable at this Courant number. c) Shows the second order flux limiters: minmod, Superbee, MC limiter and the van Leer limiter. d) Shows the DST3 method with flux limiters due to Sweby with :math:`\mu =1` , :math:`\mu =c/(1-c)` and a fourth order DST method with Sweby limiter, :math:`\mu =c/(1-c)` . - :numref:`advect-2d-lo-diag`, :numref:`advect-2d-mid-diag` and :numref:`advect-2d-hi-diag` show solutions to a simple diagonal advection problem using a selection of schemes for low, moderate and high Courant diff --git a/doc/algorithm/algorithm.rst b/doc/algorithm/algorithm.rst index e384c64b13..e67cc48628 100644 --- a/doc/algorithm/algorithm.rst +++ b/doc/algorithm/algorithm.rst @@ -18,7 +18,7 @@ Notation Because of the particularity of the vertical direction in stratified fluid context, in this chapter, the vector notations are mostly used for the horizontal component: the horizontal part of a vector is simply -written :math:`\vec{\bf v}` (instead of :math:`{\bf v_h}` or +written :math:`\vec{\bf v}` (instead of :math:`{{\bf v}_h}` or :math:`\vec{\mathbf{v}}_{h}` in chapter 1) and a 3D vector is simply written :math:`\vec{v}` (instead of :math:`\vec{\mathbf{v}}` in chapter 1). @@ -48,17 +48,17 @@ Basic operators: | :math:`\delta_x` : :math:`\delta_x \Phi = \frac{1}{\Delta x} \delta_i \Phi` | -| :math:`\overline{\nabla}` = horizontal gradient operator : - :math:`\overline{\nabla} \Phi = \{ \delta_x \Phi , \delta_y \Phi \}` +| :math:`\overline{ \nabla }` = horizontal gradient operator : + :math:`\overline{ \nabla } \Phi = \{ \delta_x \Phi , \delta_y \Phi \}` | -| :math:`\overline{\nabla} \cdot` = horizontal divergence operator : - :math:`\overline{\nabla}\cdot \vec{\mathrm{f}} = - \frac{1}{\cal A} \{ \delta_i \Delta y \, \mathrm{f}_x +| :math:`\overline{ \nabla } \cdot` = horizontal divergence operator : + :math:`\overline{ \nabla }\cdot \vec{\mathrm{{\bf f}}} = + \dfrac{1}{\cal A} \{ \delta_i \Delta y \, \mathrm{f}_x + \delta_j \Delta x \, \mathrm{f}_y \}` | | :math:`\overline{\nabla}^2` = horizontal Laplacian operator : - :math:`\overline{\nabla}^2 \Phi = - \overline{\nabla}\cdot \overline{\nabla}\Phi` + :math:`\overline{\nabla}^2 \Phi = + \overline{ \nabla } \cdot \overline{ \nabla } \Phi` | .. _time_stepping: @@ -70,7 +70,7 @@ The equations of motion integrated by the model involve four prognostic equations for flow, :math:`u` and :math:`v`, temperature, :math:`\theta`, and salt/moisture, :math:`S`, and three diagnostic equations for vertical flow, :math:`w`, density/buoyancy, -:math:`\rho`/:math:`b`, and pressure/geo-potential, :math:`\phi_{hyd}`. +:math:`\rho`/:math:`b`, and pressure/geo-potential, :math:`\phi_{\rm hyd}`. In addition, the surface pressure or height may by described by either a prognostic or diagnostic equation and if non-hydrostatics terms are included then a diagnostic equation for non-hydrostatic pressure is also @@ -85,7 +85,7 @@ algorithm for each of the basic formulations which are: #. the semi-implicit pressure method for hydrostatic equations with a rigid-lid, variables co-located in time and with Adams-Bashforth - time-stepping; + time-stepping; #. as 1 but with an implicit linear free-surface; @@ -116,7 +116,7 @@ more exactly, including non-linear terms, and this is described in :numref:`nonlinear-freesurface`. .. _press_meth_rigid: - + Pressure method with rigid-lid ============================== @@ -127,9 +127,9 @@ The horizontal momentum and continuity equations for the ocean .. math:: \begin{aligned} - \partial_t u + g \partial_x \eta & = & G_u \\ - \partial_t v + g \partial_y \eta & = & G_v \\ - \partial_x u + \partial_y v + \partial_z w & = & 0\end{aligned} + \partial_t u + g \partial_x \eta & = G_u \\ + \partial_t v + g \partial_y \eta & = G_v \\ + \partial_x u + \partial_y v + \partial_z w & = 0\end{aligned} where we are adopting the oceanic notation for brevity. All terms in the momentum equations, except for surface pressure gradient, are @@ -172,7 +172,7 @@ describing the pressure method it suffices to say that the hydrostatic pressure gradient is explicit and so can be included in the vector :math:`G`. -Substituting the two momentum equations into the depth integrated +Substituting the two momentum equations into the depth-integrated continuity equation eliminates :math:`u^{n+1}` and :math:`v^{n+1}` yielding an elliptic equation for :math:`\eta^{n+1}`. Equations :eq:`discrete-time-u`, :eq:`discrete-time-v` and @@ -187,7 +187,7 @@ yielding an elliptic equation for :math:`\eta^{n+1}`. Equations .. math:: \partial_x \Delta t g H \partial_x \eta^{n+1} + \partial_y \Delta t g H \partial_y \eta^{n+1} = \partial_x H \widehat{u^{*}} - + \partial_y H \widehat{v^{*}} + + \partial_y H \widehat{v^{*}} :label: elliptic .. math:: u^{n+1} = u^{*} - \Delta t g \partial_x \eta^{n+1} @@ -249,7 +249,7 @@ The calling tree for these routines is as follows: In general, the horizontal momentum time-stepping can contain some terms that are treated implicitly in time, such as the vertical viscosity when -using the backward time-stepping scheme (:varlink:`implicitViscosity` =.TRUE.). The method used to solve +using the backward time-stepping scheme (:varlink:`implicitViscosity` ``=.TRUE.``). The method used to solve those implicit terms is provided in :numref:`implicit-backward-stepping`, and modifies equations :eq:`discrete-time-u` and :eq:`discrete-time-v` to give: @@ -257,10 +257,10 @@ those implicit terms is provided in :numref:`implicit-backward-stepping`, and mo \begin{aligned} u^{n+1} - \Delta t \partial_z A_v \partial_z u^{n+1} - + \Delta t g \partial_x \eta^{n+1} & = & u^{n} + \Delta t G_u^{(n+1/2)} + + \Delta t g \partial_x \eta^{n+1} & = u^{n} + \Delta t G_u^{(n+1/2)} \\ v^{n+1} - \Delta t \partial_z A_v \partial_z v^{n+1} - + \Delta t g \partial_y \eta^{n+1} & = & v^{n} + \Delta t G_v^{(n+1/2)}\end{aligned} + + \Delta t g \partial_y \eta^{n+1} & = v^{n} + \Delta t G_v^{(n+1/2)}\end{aligned} .. _press_meth_linear: @@ -281,8 +281,8 @@ the free-surface equation which can be written: \partial_t \eta + \partial_x H \widehat{u} + \partial_y H \widehat{v} = {\mathcal{P-E+R}} :label: linear-free-surface=P-E -which differs from the depth integrated continuity equation with -rigid-lid (:eq:`rigid-lid-continuity`) by the time-dependent term and +which differs from the depth-integrated continuity equation with +rigid-lid :eq:`rigid-lid-continuity` by the time-dependent term and fresh-water source term. Equation :eq:`discrete-time-cont-rigid-lid` in the rigid-lid pressure @@ -316,7 +316,7 @@ re-arranged as follows: :label: vstar-backward-free-surface .. math:: - \eta^* = \epsilon_{fs} ( \eta^{n} + \Delta t ({\mathcal{P-E}}) ) + \eta^* = \epsilon_{\rm fs} ( \eta^{n} + \Delta t ({\mathcal{P-E}}) ) - \Delta t ( \partial_x H \widehat{u^{*}} + \partial_y H \widehat{v^{*}} ) :label: etastar-backward-free-surface @@ -324,7 +324,7 @@ re-arranged as follows: .. math:: \partial_x g H \partial_x \eta^{n+1} + \partial_y g H \partial_y \eta^{n+1} - - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2} = + - \frac{\epsilon_{\rm fs} \eta^{n+1}}{\Delta t^2} = - \frac{\eta^*}{\Delta t^2} :label: elliptic-backward-free-surface @@ -345,9 +345,9 @@ However, the implicit treatment of the free-surface allows the flow to be divergent and for the surface pressure/elevation to respond on a finite time-scale (as opposed to instantly). To recover the rigid-lid formulation, we use a switch-like variable, -:math:`\epsilon_{fs}` (:varlink:`freesurfFac`), which selects between the free-surface and -rigid-lid; :math:`\epsilon_{fs}=1` allows the free-surface to evolve; -:math:`\epsilon_{fs}=0` imposes the rigid-lid. The evolution in time and +:math:`\epsilon_{\rm fs}` (:varlink:`freesurfFac`), which selects between the free-surface and +rigid-lid; :math:`\epsilon_{\rm fs}=1` allows the free-surface to evolve; +:math:`\epsilon_{\rm fs}=0` imposes the rigid-lid. The evolution in time and location of variables is exactly as it was for the rigid-lid model so that :numref:`pressure-method-rigid-lid` is still applicable. Similarly, the calling sequence, given :ref:`here `, is as for the pressure-method. @@ -362,7 +362,7 @@ time discretization of the explicit terms. We have historically used the quasi-second order Adams-Bashforth method (AB-II) for all explicit terms in both the momentum and tracer equations. This is still the default mode of operation but it is now possible to use alternate schemes for tracers -(see :numref:`tracer_eqns`), or a 3rd order Adams-Bashforth method (AB-III). +(see :numref:`tracer_eqns`), or a 3rd order Adams-Bashforth method (AB-III). In the previous sections, we summarized an explicit scheme as: .. math:: @@ -382,16 +382,16 @@ Adams-Bashforth II The quasi-second order Adams-Bashforth scheme is formulated as follows: .. math:: - G_\tau^{(n+1/2)} = ( 3/2 + \epsilon_{AB}) G_\tau^n - - ( 1/2 + \epsilon_{AB}) G_\tau^{n-1} + G_\tau^{(n+1/2)} = ( 3/2 + \epsilon_{\rm AB}) G_\tau^n + - ( 1/2 + \epsilon_{\rm AB}) G_\tau^{n-1} :label: adams-bashforth2 This is a linear extrapolation, forward in time, to -:math:`t=(n+1/2+{\epsilon_{AB}})\Delta t`. An extrapolation to the +:math:`t=(n+1/2+{\epsilon_{\rm AB}})\Delta t`. An extrapolation to the mid-point in time, :math:`t=(n+1/2)\Delta t`, corresponding to -:math:`\epsilon_{AB}=0`, would be second order accurate but is weakly +:math:`\epsilon_{\rm AB}=0`, would be second order accurate but is weakly unstable for oscillatory terms. A small but finite value for -:math:`\epsilon_{AB}` stabilizes the method. Strictly speaking, damping +:math:`\epsilon_{\rm AB}` stabilizes the method. Strictly speaking, damping terms such as diffusion and dissipation, and fixed terms (forcing), do not need to be inside the Adams-Bashforth extrapolation. However, in the current code, it is simpler to include these terms and this can be @@ -400,7 +400,7 @@ do, arise when forcing or motions are high frequency and this corresponds to a reduced stability compared to a simple forward time-stepping of such terms. The model offers the possibility to leave terms outside the Adams-Bashforth extrapolation, by turning off the logical flag :varlink:`forcing_In_AB` -(parameter file ``data``, namelist ``PARM01``, default value = TRUE) and then setting :varlink:`tracForcingOutAB` +(parameter file ``data``, namelist ``PARM01``, default value = ``.TRUE.``) and then setting :varlink:`tracForcingOutAB` (default=0), :varlink:`momForcingOutAB` (default=0), and :varlink:`momDissip_In_AB` (parameter file ``data``, namelist ``PARM01``, default value = TRUE), respectively for the tracer terms, momentum forcing terms, and the dissipation terms. @@ -416,7 +416,10 @@ point. :alt: stability_analysis :name: oscil+damp_AB2 - Oscillatory and damping response of quasi-second order Adams-Bashforth scheme for different values of the :math:`\epsilon _{AB}` parameter (0.0, 0.1, 0.25, from top to bottom) The analytical solution (in black), the physical mode (in blue) and the numerical mode (in red) are represented with a CFL step of 0.1. The left column represents the oscillatory response on the complex plane for CFL ranging from 0.1 up to 0.9. The right column represents the damping response amplitude (y-axis) function of the CFL (x-axis). + Oscillatory and damping response of quasi-second order Adams-Bashforth scheme for different values of the :math:`\epsilon _{\rm AB}` + parameter (0.0, 0.1, 0.25, from top to bottom) The analytical solution (in black), the physical mode (in blue) and the numerical + mode (in red) are represented with a CFL step of 0.1. The left column represents the oscillatory response on the complex plane + for CFL ranging from 0.1 up to 0.9. The right column represents the damping response amplitude (y-axis) function of the CFL (x-axis). Adams-Bashforth III ------------------- @@ -437,28 +440,28 @@ forward in time the tendency (replacing :eq:`adams-bashforth2`) as: .. math:: - G_\tau^{(n+1/2)} = ( 1 + \alpha_{AB} + \beta_{AB}) G_\tau^n - - ( \alpha_{AB} + 2 \beta_{AB}) G_\tau^{n-1} - + \beta_{AB} G_\tau^{n-2} + G_\tau^{(n+1/2)} = ( 1 + \alpha_{\rm AB} + \beta_{\rm AB}) G_\tau^n + - ( \alpha_{\rm AB} + 2 \beta_{\rm AB}) G_\tau^{n-1} + + \beta_{\rm AB} G_\tau^{n-2} :label: adams-bashforth3 3rd order accuracy is obtained with -:math:`(\alpha_{AB},\,\beta_{AB}) = (1/2,\,5/12)`. Note that selecting -:math:`(\alpha_{AB},\,\beta_{AB}) = (1/2+\epsilon_{AB},\,0)` one +:math:`(\alpha_{\rm AB},\,\beta_{\rm AB}) = (1/2,\,5/12)`. Note that selecting +:math:`(\alpha_{\rm AB},\,\beta_{\rm AB}) = (1/2+\epsilon_{AB},\,0)` one recovers AB-II. The AB-III time stepping improves the stability limit for an oscillatory problem like advection or Coriolis. As seen from :numref:`ab3_oscill_response`, it remains stable up to a CFL of 0.72, compared to only 0.50 with AB-II and -:math:`\epsilon_{AB} = 0.1`. It is interesting to note that the +:math:`\epsilon_{\rm AB} = 0.1`. It is interesting to note that the stability limit can be further extended up to a CFL of 0.786 for an oscillatory problem (see :numref:`ab3_oscill_response`) using -:math:`(\alpha_{AB},\,\beta_{AB}) = (0.5,\,0.2811)` but then the scheme +:math:`(\alpha_{\rm AB},\,\beta_{\rm AB}) = (0.5,\,0.2811)` but then the scheme is only second order accurate. However, the behavior of the AB-III for a damping problem (like diffusion) is less favorable, since the stability limit is reduced to 0.54 only -(and 0.64 with :math:`\beta_{AB} = 0.2811`) compared to 1.0 (and 0.9 with -:math:`\epsilon_{AB} = 0.1`) with the AB-II (see +(and 0.64 with :math:`\beta_{\rm AB} = 0.2811`) compared to 1.0 (and 0.9 with +:math:`\epsilon_{\rm AB} = 0.1`) with the AB-II (see :numref:`ab3_damp_response`). A way to enable the use of a longer time step is to keep the dissipation @@ -469,7 +472,7 @@ advection and Coriolis terms. The AB-III time stepping is activated by defining the option ``#define`` :varlink:`ALLOW_ADAMSBASHFORTH_3` in :filelink:`CPP_OPTIONS.h `. The parameters -:math:`\alpha_{AB},\beta_{AB}` can be set from the main parameter file +:math:`\alpha_{\rm AB},\beta_{\rm AB}` can be set from the main parameter file ``data`` (namelist ``PARM03``) and their default values correspond to the 3rd order Adams-Bashforth. A simple example is provided in :filelink:`verification/advect_xy/input.ab3_c4`. @@ -483,7 +486,7 @@ AB-III is not yet available for the vertical momentum equation :alt: ab3_stability_analysis :name: ab3_oscill_response - Oscillatory response of third order Adams-Bashforth scheme for different values of the :math:`(\alpha_{AB},\,\beta_{AB})` parameters. + Oscillatory response of third order Adams-Bashforth scheme for different values of the :math:`(\alpha_{\rm AB},\,\beta_{\rm AB})` parameters. The analytical solution (in black), the physical mode (in blue) and the numerical mode (in red) are represented with a CFL step of 0.1. .. figure:: figs/stab_AB3_dampR.* @@ -492,7 +495,7 @@ AB-III is not yet available for the vertical momentum equation :alt: ab3_damping_analysis :name: ab3_damp_response - Damping response of third order Adams-Bashforth scheme for different values of the :math:`(\alpha_{AB},\,\beta_{AB})` parameters. + Damping response of third order Adams-Bashforth scheme for different values of the :math:`(\alpha_{\rm AB},\,\beta_{\rm AB})` parameters. The analytical solution (in black), the physical mode (in blue) and the numerical mode (in red) are represented with a CFL step of 0.1. @@ -579,7 +582,7 @@ into the pressure method algorithm when all state variables are co-located in time. The algorithm can be represented by the sequential solution of the follow equations: -.. math:: +.. math:: G_{\theta,S}^{n} = G_{\theta,S} ( u^n, \theta^n, S^n ) :label: Gt-n-sync @@ -596,11 +599,11 @@ follow equations: :label: t-n+1-sync .. math:: - \phi^n_{hyd} = \int b(\theta^n,S^n) dr + \phi^n_{\rm hyd} = \int b(\theta^n,S^n) dr :label: phi-hyd-sync .. math:: - \vec{\bf G}_{\vec{\bf v}}^{n} = \vec{\bf G}_{\vec{\bf v}} ( \vec{\bf v}^n, \phi^n_{hyd} ) + \vec{\bf G}_{\vec{\bf v}}^{n} = \vec{\bf G}_{\vec{\bf v}} ( \vec{\bf v}^n, \phi^n_{\rm hyd} ) :label: Gv-n-sync .. math:: @@ -616,16 +619,16 @@ follow equations: :label: vstarstar-sync .. math:: - \eta^* = \epsilon_{fs} \left( \eta^{n} + \Delta t ({\mathcal{P-E}}) \right)- \Delta t - \nabla \cdot H \widehat{ \vec{\bf v}^{**} } + \eta^* = \epsilon_{\rm fs} \left( \eta^{n} + \Delta t ({\mathcal{P-E}}) \right)- \Delta t + \nabla \cdot H \widehat{ \vec{\bf v}^{**} } :label: nstar-sync .. math:: - \nabla \cdot g H \nabla \eta^{n+1} - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2} ~ = ~ - \frac{\eta^*}{\Delta t^2} + \nabla \cdot g H \nabla \eta^{n+1} - \frac{\epsilon_{\rm fs} \eta^{n+1}}{\Delta t^2} ~ = ~ - \frac{\eta^*}{\Delta t^2} :label: elliptic-sync .. math:: - \vec{\bf v}^{n+1} = \vec{\bf v}^{**} - \Delta t g \nabla \eta^{n+1} + \vec{\bf v}^{n+1} = \vec{\bf v}^{**} - \Delta t g \nabla \eta^{n+1} :label: v-n+1-sync :numref:`adams-bash-sync` illustrates the location of variables @@ -667,7 +670,7 @@ ocean and atmospheric physics have been added, although they are mainly optional | :math:`\phantom{WWW}` :filelink:`TIMESTEP\_TRACER ` :math:`\phantom{xxxxxxxxxxxxxxxww}` :math:`\theta^*` :eq:`tstar-sync` | :math:`\phantom{WWW}` :filelink:`IMPLDIFF ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxxvwww}` :math:`\theta^{(n+1)}` :eq:`t-n+1-sync` | :math:`\phantom{WW}` :filelink:`DYNAMICS ` - | :math:`\phantom{WWW}` :filelink:`CALC\_PHI\_HYD ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxi}` :math:`\phi_{hyd}^n` :eq:`phi-hyd-sync` + | :math:`\phantom{WWW}` :filelink:`CALC\_PHI\_HYD ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxi}` :math:`\phi_{\rm hyd}^n` :eq:`phi-hyd-sync` | :math:`\phantom{WWW}` :filelink:`MOM\_FLUXFORM ` or :filelink:`MOM\_VECINV ` :math:`\phantom{xxi}` :math:`G_{\vec{\bf v}}^n` :eq:`Gv-n-sync` | :math:`\phantom{WWW}` :filelink:`TIMESTEP ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxxxxxxx}` :math:`\vec{\bf v}^*` :eq:`Gv-n+5-sync`, :eq:`vstar-sync` | :math:`\phantom{WWW}` :filelink:`IMPLDIFF ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxxxxxlw}` :math:`\vec{\bf v}^{**}` :eq:`vstarstar-sync` @@ -695,7 +698,7 @@ Staggered baroclinic time-stepping :alt: adams-bash-staggered :name: adams-bash-staggered - A schematic of the explicit Adams-Bashforth and implicit time-stepping phases of the algorithm but with staggering in time of thermodynamic variables with the flow. Explicit momentum tendencies are evaluated at time level :math:`n-1/2` as a function of the flow field at that time level :math:`n-1/2`. The explicit tendency from the previous time level, :math:`n-3/2`, is used to extrapolate tendencies to :math:`n` (dashed arrow). The hydrostatic pressure/geo-potential :math:`\phi _{hyd}` is evaluated directly at time level :math:`n` (vertical arrows) and used with the extrapolated tendencies to step forward the flow variables from :math:`n-1/2` to :math:`n+1/2` (solid arc-arrow). The implicit-in-time operator :math:`{\cal L}_{\bf u,v}` (vertical arrows) is then applied to the previous estimation of the the flow field (:math:`*` -variables) and yields to the two velocity components :math:`u,v` at time level :math:`n+1/2`. These are then used to calculate the advection term (dashed arc-arrow) of the thermo-dynamics tendencies at time step :math:`n`. The extrapolated thermodynamics tendency, from time level :math:`n-1` and :math:`n` to :math:`n+1/2`, allows thermodynamic variables to be stably integrated forward-in-time (solid arc-arrow) up to time level :math:`n+1`. + A schematic of the explicit Adams-Bashforth and implicit time-stepping phases of the algorithm but with staggering in time of thermodynamic variables with the flow. Explicit momentum tendencies are evaluated at time level :math:`n-1/2` as a function of the flow field at that time level :math:`n-1/2`. The explicit tendency from the previous time level, :math:`n-3/2`, is used to extrapolate tendencies to :math:`n` (dashed arrow). The hydrostatic pressure/geo-potential :math:`\phi _{\rm hyd}` is evaluated directly at time level :math:`n` (vertical arrows) and used with the extrapolated tendencies to step forward the flow variables from :math:`n-1/2` to :math:`n+1/2` (solid arc-arrow). The implicit-in-time operator :math:`{\cal L}_{\bf u,v}` (vertical arrows) is then applied to the previous estimation of the the flow field (:math:`*` -variables) and yields to the two velocity components :math:`u,v` at time level :math:`n+1/2`. These are then used to calculate the advection term (dashed arc-arrow) of the thermo-dynamics tendencies at time step :math:`n`. The extrapolated thermodynamics tendency, from time level :math:`n-1` and :math:`n` to :math:`n+1/2`, allows thermodynamic variables to be stably integrated forward-in-time (solid arc-arrow) up to time level :math:`n+1`. For well-stratified problems, internal gravity waves may be the limiting process for determining a stable time-step. In the circumstance, it is @@ -719,7 +722,7 @@ entire algorithm, :eq:`Gt-n-sync` to :eq:`v-n+1-sync`, annotating the position in time of variables appropriately: .. math:: - \phi^{n}_{hyd} = \int b(\theta^{n},S^{n}) dr + \phi^{n}_{\rm hyd} = \int b(\theta^{n},S^{n}) dr :label: phi-hyd-staggered .. math:: @@ -731,7 +734,7 @@ position in time of variables appropriately: :label: Gv-n+5-staggered .. math:: - \vec{\bf v}^{*} = \vec{\bf v}^{n-1/2} + \Delta t \left( \vec{\bf G}_{\vec{\bf v}}^{(n)} - \nabla \phi_{hyd}^{n} \right) + \vec{\bf v}^{*} = \vec{\bf v}^{n-1/2} + \Delta t \left( \vec{\bf G}_{\vec{\bf v}}^{(n)} - \nabla \phi_{\rm hyd}^{n} \right) :label: vstar-staggered .. math:: @@ -739,17 +742,17 @@ position in time of variables appropriately: :label: vstarstar-staggered .. math:: - \eta^* = \epsilon_{fs} \left( \eta^{n-1/2} + \Delta t ({\mathcal{P-E}})^n \right)- \Delta t - \nabla \cdot H \widehat{ \vec{\bf v}^{**} } + \eta^* = \epsilon_{\rm fs} \left( \eta^{n-1/2} + \Delta t ({\mathcal{P-E}})^n \right)- \Delta t + \nabla \cdot H \widehat{ \vec{\bf v}^{**} } :label: nstar-staggered .. math:: - \nabla \cdot g H \nabla \eta^{n+1/2} - \frac{\epsilon_{fs} \eta^{n+1/2}}{\Delta t^2} - ~ = ~ - \frac{\eta^*}{\Delta t^2} + \nabla \cdot g H \nabla \eta^{n+1/2} - \frac{\epsilon_{\rm fs} \eta^{n+1/2}}{\Delta t^2} + = - \frac{\eta^*}{\Delta t^2} :label: elliptic-staggered .. math:: - \vec{\bf v}^{n+1/2} = \vec{\bf v}^{**} - \Delta t g \nabla \eta^{n+1/2} + \vec{\bf v}^{n+1/2} = \vec{\bf v}^{**} - \Delta t g \nabla \eta^{n+1/2} :label: v-n+1-staggered .. math:: @@ -769,7 +772,7 @@ position in time of variables appropriately: :label: t-n+1-staggered The corresponding calling tree is given below. The staggered algorithm is -activated with the run-time flag :varlink:`staggerTimeStep` =.TRUE. in +activated with the run-time flag :varlink:`staggerTimeStep` ``=.TRUE.`` in parameter file ``data``, namelist ``PARM01``. .. admonition:: Staggered Adams-Bashforth calling tree @@ -780,7 +783,7 @@ parameter file ``data``, namelist ``PARM01``. | :math:`\phantom{WWW}` :filelink:`DO\_ATMOSPHERIC\_PHYS ` | :math:`\phantom{WWW}` :filelink:`DO\_OCEANIC\_PHYS ` | :math:`\phantom{WW}` :filelink:`DYNAMICS ` - | :math:`\phantom{WWW}` :filelink:`CALC\_PHI\_HYD ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxi}` :math:`\phi_{hyd}^n` :eq:`phi-hyd-staggered` + | :math:`\phantom{WWW}` :filelink:`CALC\_PHI\_HYD ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxi}` :math:`\phi_{\rm hyd}^n` :eq:`phi-hyd-staggered` | :math:`\phantom{WWW}` :filelink:`MOM\_FLUXFORM ` or :filelink:`MOM\_VECINV ` :math:`\phantom{xxi}` :math:`G_{\vec{\bf v}}^{n-1/2}` :eq:`Gv-n-staggered` | :math:`\phantom{WWW}` :filelink:`TIMESTEP ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxxxxxxx}` :math:`\vec{\bf v}^*` :eq:`Gv-n+5-staggered`, :eq:`vstar-staggered` | :math:`\phantom{WWW}` :filelink:`IMPLDIFF ` :math:`\phantom{xxxxxxxxxxxxxxxxxxxxxxxxlw}` :math:`\vec{\bf v}^{**}` :eq:`vstarstar-staggered` @@ -829,17 +832,17 @@ solve for the non-hydrostatic pressure. The momentum equations are discretized in time as follows: .. math:: - \frac{1}{\Delta t} u^{n+1} + g \partial_x \eta^{n+1} + \partial_x \phi_{nh}^{n+1} + \frac{1}{\Delta t} u^{n+1} + g \partial_x \eta^{n+1} + \partial_x \phi_{\rm nh}^{n+1} = \frac{1}{\Delta t} u^{n} + G_u^{(n+1/2)} :label: discrete-time-u-nh .. math:: - \frac{1}{\Delta t} v^{n+1} + g \partial_y \eta^{n+1} + \partial_y \phi_{nh}^{n+1} + \frac{1}{\Delta t} v^{n+1} + g \partial_y \eta^{n+1} + \partial_y \phi_{\rm nh}^{n+1} = \frac{1}{\Delta t} v^{n} + G_v^{(n+1/2)} :label: discrete-time-v-nh .. math:: - \frac{1}{\Delta t} w^{n+1} + \partial_r \phi_{nh}^{n+1} + \frac{1}{\Delta t} w^{n+1} + \partial_r \phi_{\rm nh}^{n+1} = \frac{1}{\Delta t} w^{n} + G_w^{(n+1/2)} :label: discrete-time-w-nh @@ -856,9 +859,9 @@ As before, the explicit predictions for momentum are consolidated as: .. math:: \begin{aligned} - u^* & = & u^n + \Delta t G_u^{(n+1/2)} \\ - v^* & = & v^n + \Delta t G_v^{(n+1/2)} \\ - w^* & = & w^n + \Delta t G_w^{(n+1/2)}\end{aligned} + u^* & = u^n + \Delta t G_u^{(n+1/2)} \\ + v^* & = v^n + \Delta t G_v^{(n+1/2)} \\ + w^* & = w^n + \Delta t G_w^{(n+1/2)}\end{aligned} but this time we introduce an intermediate step by splitting the tendency of the flow as follows: @@ -866,38 +869,38 @@ tendency of the flow as follows: .. math:: \begin{aligned} - u^{n+1} = u^{**} - \Delta t \partial_x \phi_{nh}^{n+1} + u^{n+1} = u^{**} - \Delta t \partial_x \phi_{\rm nh}^{n+1} & & u^{**} = u^{*} - \Delta t g \partial_x \eta^{n+1} \\ - v^{n+1} = v^{**} - \Delta t \partial_y \phi_{nh}^{n+1} + v^{n+1} = v^{**} - \Delta t \partial_y \phi_{\rm nh}^{n+1} & & v^{**} = v^{*} - \Delta t g \partial_y \eta^{n+1}\end{aligned} Substituting into the depth integrated continuity -(equation :eq:`discrete-time-backward-free-surface`) gives +:eq:`discrete-time-backward-free-surface` gives .. math:: - \partial_x H \partial_x \left( g \eta^{n+1} + \widehat{\phi}_{nh}^{n+1} \right) - + \partial_y H \partial_y \left( g \eta^{n+1} + \widehat{\phi}_{nh}^{n+1} \right) - - \frac{\epsilon_{fs}\eta^{n+1}}{\Delta t^2} + \partial_x H \partial_x \left( g \eta^{n+1} + \widehat{\phi}_{\rm nh}^{n+1} \right) + + \partial_y H \partial_y \left( g \eta^{n+1} + \widehat{\phi}_{\rm nh}^{n+1} \right) + - \frac{\epsilon_{\rm fs}\eta^{n+1}}{\Delta t^2} = - \frac{\eta^*}{\Delta t^2} :label: substituting-in-cont which is approximated by equation :eq:`elliptic-backward-free-surface` -on the basis that i) :math:`\phi_{nh}^{n+1}` is not yet known and ii) -:math:`\nabla \widehat{\phi}_{nh} -<< g \nabla \eta`. If :eq:`elliptic-backward-free-surface` is solved -accurately then the implication is that :math:`\widehat{\phi}_{nh} +on the basis that i) :math:`\phi_{\rm nh}^{n+1}` is not yet known and ii) +:math:`\nabla \widehat{\phi}_{\rm nh} \ll g \nabla \eta`. +If :eq:`elliptic-backward-free-surface` is solved +accurately then the implication is that :math:`\widehat{\phi}_{\rm nh} \approx 0` so that the non-hydrostatic pressure field does not drive barotropic motion. The flow must satisfy non-divergence (equation :eq:`non-divergence-nh`) locally, as well as depth integrated, and this constraint is used to -form a 3-D elliptic equations for :math:`\phi_{nh}^{n+1}`: +form a 3-D elliptic equations for :math:`\phi_{\rm nh}^{n+1}`: .. math:: - \partial_{xx} \phi_{nh}^{n+1} + \partial_{yy} \phi_{nh}^{n+1} + - \partial_{rr} \phi_{nh}^{n+1} = + \partial_{xx} \phi_{\rm nh}^{n+1} + \partial_{yy} \phi_{\rm nh}^{n+1} + + \partial_{rr} \phi_{\rm nh}^{n+1} = \partial_x u^{**} + \partial_y v^{**} + \partial_r w^{*} :label: elliptic-pnh @@ -908,16 +911,16 @@ following equations: u^{*} = u^{n} + \Delta t G_u^{(n+1/2)} :label: ustar-nh -.. math:: +.. math:: v^{*} = v^{n} + \Delta t G_v^{(n+1/2)} :label: vstar-nh - + .. math:: w^{*} = w^{n} + \Delta t G_w^{(n+1/2)} :label: wstar-nh .. math:: - \eta^* ~ = ~ \epsilon_{fs} \left( \eta^{n} + \Delta t ({\mathcal{P-E}}) \right) + \eta^* ~ = ~ \epsilon_{\rm fs} \left( \eta^{n} + \Delta t ({\mathcal{P-E}}) \right) - \Delta t \left( \partial_x H \widehat{u^{*}} + \partial_y H \widehat{v^{*}} \right) :label: etastar-nh @@ -925,7 +928,7 @@ following equations: .. math:: \partial_x g H \partial_x \eta^{n+1} + \partial_y g H \partial_y \eta^{n+1} - - \frac{\epsilon_{fs} \eta^{n+1}}{\Delta t^2} + - \frac{\epsilon_{\rm fs} \eta^{n+1}}{\Delta t^2} ~ = ~ - \frac{\eta^*}{\Delta t^2} :label: elliptic-nh @@ -938,17 +941,17 @@ following equations: :label: vnx-nh .. math:: - \partial_{xx} \phi_{nh}^{n+1} + \partial_{yy} \phi_{nh}^{n+1} + - \partial_{rr} \phi_{nh}^{n+1} = + \partial_{xx} \phi_{\rm nh}^{n+1} + \partial_{yy} \phi_{\rm nh}^{n+1} + + \partial_{rr} \phi_{\rm nh}^{n+1} = \partial_x u^{**} + \partial_y v^{**} + \partial_r w^{*} :label: phi-nh .. math:: - u^{n+1} = u^{**} - \Delta t \partial_x \phi_{nh}^{n+1} + u^{n+1} = u^{**} - \Delta t \partial_x \phi_{\rm nh}^{n+1} :label: un+1-nh .. math:: - v^{n+1} = v^{**} - \Delta t \partial_y \phi_{nh}^{n+1} + v^{n+1} = v^{**} - \Delta t \partial_y \phi_{\rm nh}^{n+1} :label: vn+1-nh .. math:: @@ -968,20 +971,20 @@ underlying algorithm but this time using the notation consistent with the more general vertical coordinate :math:`r`. The elliptic equation for free-surface coordinate (units of :math:`r`), corresponding to :eq:`discrete-time-backward-free-surface`, and assuming no -non-hydrostatic effects (:math:`\epsilon_{nh} = 0`) is: +non-hydrostatic effects (:math:`\epsilon_{\rm nh} = 0`) is: .. math:: - \epsilon_{fs} {\eta}^{n+1} - - {\bf \nabla}_h \cdot \Delta t^2 (R_o-R_{fixed}) {\bf \nabla}_h b_s + \epsilon_{\rm fs} {\eta}^{n+1} - + \nabla _h \cdot \Delta t^2 (R_o-R_{\rm fixed}) \nabla _h b_s {\eta}^{n+1} = {\eta}^* :label: eq-solve2D where .. math:: - {\eta}^* = \epsilon_{fs} \: {\eta}^{n} - - \Delta t {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o} \vec{\bf v}^* dr - \: + \: \epsilon_{fw} \Delta t ({\mathcal{P-E}})^{n} + {\eta}^* = \epsilon_{\rm fs} \: {\eta}^{n} - + \Delta t \nabla _h \cdot \int_{R_{\rm fixed}}^{R_o} \vec{\bf v}^* dr + \: + \: \epsilon_{\rm fw} \Delta t ({\mathcal{P-E}})^{n} :label: eq-solve2D_rhs .. admonition:: S/R :filelink:`SOLVE_FOR_PRESSURE ` @@ -996,39 +999,39 @@ where Once :math:`{\eta}^{n+1}` has been found, substituting into :eq:`discrete-time-u`, :eq:`discrete-time-v` yields :math:`\vec{\bf v}^{n+1}` if the model is hydrostatic -(:math:`\epsilon_{nh}=0`): +(:math:`\epsilon_{\rm nh}=0`): .. math:: \vec{\bf v}^{n+1} = \vec{\bf v}^{*} - - \Delta t {\bf \nabla}_h b_s {\eta}^{n+1} + - \Delta t \nabla _h b_s {\eta}^{n+1} This is known as the correction step. However, when the model is -non-hydrostatic (:math:`\epsilon_{nh}=1`) we need an additional step and -an additional equation for :math:`\phi'_{nh}`. This is obtained by +non-hydrostatic (:math:`\epsilon_{\rm nh}=1`) we need an additional step and +an additional equation for :math:`\phi'_{\rm nh}`. This is obtained by substituting :eq:`discrete-time-u-nh`, :eq:`discrete-time-v-nh` and :eq:`discrete-time-w-nh` into continuity: .. math:: - [ {\bf \nabla}_h^2 + \partial_{rr} ] {\phi'_{nh}}^{n+1} - = \frac{1}{\Delta t} - {\bf \nabla}_h \cdot \vec{\bf v}^{**} + \partial_r \dot{r}^* - :label: sub-u-v-w-in-cont + [ \nabla _h^2 + \partial_{rr} ] {\phi'_{\rm nh}}^{n+1} + = \frac{1}{\Delta t} + \nabla _h \cdot \vec{\bf v}^{**} + \partial_r \dot{r}^* + :label: sub-u-v-w-in-cont where -.. math:: \vec{\bf v}^{**} = \vec{\bf v}^* - \Delta t {\bf \nabla}_h b_s {\eta}^{n+1} +.. math:: \vec{\bf v}^{**} = \vec{\bf v}^* - \Delta t \nabla _h b_s {\eta}^{n+1} Note that :math:`\eta^{n+1}` is also used to update the second RHS term :math:`\partial_r \dot{r}^*` since the vertical velocity at the surface -(:math:`\dot{r}_{surf}`) is evaluated as +(:math:`\dot{r}_{\rm surf}`) is evaluated as :math:`(\eta^{n+1} - \eta^n) / \Delta t`. Finally, the horizontal velocities at the new time level are found by: .. math:: \vec{\bf v}^{n+1} = \vec{\bf v}^{**} - - \epsilon_{nh} \Delta t {\bf \nabla}_h {\phi'_{nh}}^{n+1} - :label: v-new-time-lev + - \epsilon_{\rm nh} \Delta t \nabla _h {\phi'_{\rm nh}}^{n+1} + :label: v-new-time-lev and the vertical velocity is found by integrating the continuity equation vertically. Note that, for the convenience of the restart @@ -1042,7 +1045,7 @@ any consequence on the solution. :class: note | :math:`{\eta}^{n+1}` : :varlink:`etaN` ( :filelink:`DYNVARS.h ` ) - | :math:`{\phi}^{n+1}_{nh}` : :varlink:`phi_nh` ( :filelink:`NH_VARS.h ` ) + | :math:`{\phi}^{n+1}_{\rm nh}` : :varlink:`phi_nh` ( :filelink:`NH_VARS.h ` ) | :math:`u^*` : :varlink:`gU` ( :filelink:`DYNVARS.h ` ) | :math:`v^*` : :varlink:`gV` ( :filelink:`DYNVARS.h ` ) | :math:`u^{n+1}` : :varlink:`uVel` ( :filelink:`DYNVARS.h ` ) @@ -1087,7 +1090,7 @@ separable and differently. c-grid.rst horiz-grid.rst vert-grid.rst - + Continuity and horizontal pressure gradient term ================================================= @@ -1096,15 +1099,15 @@ The core algorithm is based on the “C grid” discretization of the continuity equation which can be summarized as: .. math:: - \partial_t u + \frac{1}{\Delta x_c} \delta_i \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta x_c} \delta_i \Phi_{nh}' = G_u - \frac{1}{\Delta x_c} \delta_i \Phi_h' + \partial_t u + \frac{1}{\Delta x_c} \delta_i \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{\rm nh}}{\Delta x_c} \delta_i \Phi_{\rm nh}' = G_u - \frac{1}{\Delta x_c} \delta_i \Phi_h' :label: discrete-momu .. math:: - \partial_t v + \frac{1}{\Delta y_c} \delta_j \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{nh}}{\Delta y_c} \delta_j \Phi_{nh}' = G_v - \frac{1}{\Delta y_c} \delta_j \Phi_h' + \partial_t v + \frac{1}{\Delta y_c} \delta_j \left. \frac{ \partial \Phi}{\partial r}\right|_{s} \eta + \frac{\epsilon_{\rm nh}}{\Delta y_c} \delta_j \Phi_{\rm nh}' = G_v - \frac{1}{\Delta y_c} \delta_j \Phi_h' :label: discrete-momv .. math:: - \epsilon_{nh} \left( \partial_t w + \frac{1}{\Delta r_c} \delta_k \Phi_{nh}' \right) = \epsilon_{nh} G_w + \overline{b}^k - \frac{1}{\Delta r_c} \delta_k \Phi_{h}' + \epsilon_{\rm nh} \left( \partial_t w + \frac{1}{\Delta r_c} \delta_k \Phi_{\rm nh}' \right) = \epsilon_{\rm nh} G_w + \overline{b}^k - \frac{1}{\Delta r_c} \delta_k \Phi_{h}' :label: discrete-momw .. math:: @@ -1152,7 +1155,7 @@ In the ocean, using z-coordinates, the hydrostatic balance terms are discretized: .. math:: - \epsilon_{nh} \partial_t w + \epsilon_{\rm nh} \partial_t w + g \overline{\rho'}^k + \frac{1}{\Delta z} \delta_k \Phi_h' = \ldots :label: discrete_hydro_ocean @@ -1197,21 +1200,21 @@ the various advective, Coriolis, horizontal dissipation, vertical dissipation and metric forces: .. math:: - G_u = G_u^{adv} + G_u^{cor} + G_u^{h-diss} + G_u^{v-diss} + - G_u^{metric} + G_u^{nh-metric} + G_u = G_u^{\rm adv} + G_u^{\rm Cor} + G_u^{h- \rm diss} + G_u^{v- \rm diss} + + G_u^{\rm metric} + G_u^{\rm nh-metric} :label: gsplit_momu .. math:: - G_v = G_v^{adv} + G_v^{cor} + G_v^{h-diss} + G_v^{v-diss} + - G_v^{metric} + G_v^{nh-metric} + G_v = G_v^{\rm adv} + G_v^{\rm Cor} + G_v^{h- \rm diss} + G_v^{v- \rm diss} + + G_v^{\rm metric} + G_v^{\rm nh-metric} :label: gsplit_momv .. math:: - G_w = G_w^{adv} + G_w^{cor} + G_w^{h-diss} + G_w^{v-diss} + - G_w^{metric} + G_w^{nh-metric} + G_w = G_w^{\rm adv} + G_w^{\rm Cor} + G_w^{h- \rm diss} + G_w^{v- \rm diss} + + G_w^{\rm metric} + G_w^{\rm nh-metric} :label: gsplit_momw -In the hydrostatic limit, :math:`G_w=0` and :math:`\epsilon_{nh}=0`, +In the hydrostatic limit, :math:`G_w=0` and :math:`\epsilon_{\rm nh}=0`, reducing the vertical momentum to hydrostatic balance. These terms are calculated in routines called from subroutine @@ -1224,7 +1227,7 @@ These terms are calculated in routines called from subroutine | :math:`G_u` : :varlink:`gU` ( :filelink:`DYNVARS.h ` ) | :math:`G_v` : :varlink:`gV` ( :filelink:`DYNVARS.h ` ) | :math:`G_w` : :varlink:`gW` ( :filelink:`NH_VARS.h ` ) - + Advection of momentum --------------------- @@ -1232,21 +1235,21 @@ Advection of momentum The advective operator is second order accurate in space: .. math:: - {\cal A}_w \Delta r_f h_w G_u^{adv} = + {\cal A}_w \Delta r_f h_w G_u^{\rm adv} = \delta_i \overline{ U }^i \overline{ u }^i + \delta_j \overline{ V }^i \overline{ u }^j + \delta_k \overline{ W }^i \overline{ u }^k :label: discrete-momadvu .. math:: - {\cal A}_s \Delta r_f h_s G_v^{adv} = + {\cal A}_s \Delta r_f h_s G_v^{\rm adv} = \delta_i \overline{ U }^j \overline{ v }^i + \delta_j \overline{ V }^j \overline{ v }^j - + \delta_k \overline{ W }^j \overline{ v }^k + + \delta_k \overline{ W }^j \overline{ v }^k :label: discrete-momadvv .. math:: - {\cal A}_c \Delta r_c G_w^{adv} = + {\cal A}_c \Delta r_c G_w^{\rm adv} = \delta_i \overline{ U }^k \overline{ w }^i + \delta_j \overline{ V }^k \overline{ w }^j + \delta_k \overline{ W }^k \overline{ w }^k @@ -1293,19 +1296,19 @@ The “pure C grid” Coriolis terms (i.e. in absence of C-D scheme) are discretized: .. math:: - {\cal A}_w \Delta r_f h_w G_u^{Cor} = + {\cal A}_w \Delta r_f h_w G_u^{\rm Cor} = \overline{ f {\cal A}_c \Delta r_f h_c \overline{ v }^j }^i - - \epsilon_{nh} \overline{ f' {\cal A}_c \Delta r_f h_c \overline{ w }^k }^i + - \epsilon_{\rm nh} \overline{ f' {\cal A}_c \Delta r_f h_c \overline{ w }^k }^i :label: cdscheme_gu .. math:: - {\cal A}_s \Delta r_f h_s G_v^{Cor} = + {\cal A}_s \Delta r_f h_s G_v^{\rm Cor} = - \overline{ f {\cal A}_c \Delta r_f h_c \overline{ u }^i }^j :label: cdscheme_gv .. math:: - {\cal A}_c \Delta r_c G_w^{Cor} = - \epsilon_{nh} \overline{ f' {\cal A}_c \Delta r_f h_c \overline{ u }^i }^k + {\cal A}_c \Delta r_c G_w^{\rm Cor} = + \epsilon_{\rm nh} \overline{ f' {\cal A}_c \Delta r_f h_c \overline{ u }^i }^k :label: cdscheme_gw where the Coriolis parameters :math:`f` and :math:`f'` are defined: @@ -1313,8 +1316,8 @@ where the Coriolis parameters :math:`f` and :math:`f'` are defined: .. math:: \begin{aligned} - f & = & 2 \Omega \sin{\varphi} \\ - f' & = & 2 \Omega \cos{\varphi}\end{aligned} + f & = 2 \Omega \sin{\varphi} \\ + f' & = 2 \Omega \cos{\varphi}\end{aligned} where :math:`\varphi` is geographic latitude when using spherical geometry, otherwise the :math:`\beta`-plane definition is used: @@ -1322,8 +1325,8 @@ geometry, otherwise the :math:`\beta`-plane definition is used: .. math:: \begin{aligned} - f & = & f_o + \beta y \\ - f' & = & 0\end{aligned} + f & = f_o + \beta y \\ + f' & = 0\end{aligned} This discretization globally conserves kinetic energy. It should be noted that despite the use of this discretization in former @@ -1331,16 +1334,16 @@ publications, all calculations to date have used the following different discretization: .. math:: - G_u^{Cor} = f_u \overline{ v }^{ji} - - \epsilon_{nh} f_u' \overline{ w }^{ik} + G_u^{\rm Cor} = f_u \overline{ v }^{ji} + - \epsilon_{\rm nh} f_u' \overline{ w }^{ik} :label: gu_cor .. math:: - G_v^{Cor} = - f_v \overline{ u }^{ij} + G_v^{\rm Cor} = - f_v \overline{ u }^{ij} :label: gv_cor .. math:: - G_w^{Cor} = \epsilon_{nh} f_w' \overline{ u }^{ik} + G_w^{\rm Cor} = \epsilon_{\rm nh} f_w' \overline{ u }^{ik} :label: gw_cor where the subscripts on :math:`f` and :math:`f'` indicate evaluation of @@ -1355,7 +1358,7 @@ to select the energy-conserving conserving form :eq:`cdscheme_gu`, :eq:`cdscheme .. admonition:: S/R :filelink:`CD_CODE_SCHEME `, :filelink:`MOM_U_CORIOLIS `, :filelink:`MOM_V_CORIOLIS ` :class: note - | :math:`G_u^{Cor}, G_v^{Cor}` : :varlink:`cF` ( local to :filelink:`MOM_FLUXFORM.F ` ) + | :math:`G_u^{\rm Cor}, G_v^{\rm Cor}` : :varlink:`cF` ( local to :filelink:`MOM_FLUXFORM.F ` ) Curvature metric terms ---------------------- @@ -1367,19 +1370,19 @@ momentum equations. Under the thin-atmosphere and hydrostatic approximations these terms are discretized: .. math:: - {\cal A}_w \Delta r_f h_w G_u^{metric} = + {\cal A}_w \Delta r_f h_w G_u^{\rm metric} = \overline{ \frac{ \overline{u}^i }{a} \tan{\varphi} {\cal A}_c \Delta r_f h_c \overline{ v }^j }^i :label: gu_metric - + .. math:: - {\cal A}_s \Delta r_f h_s G_v^{metric} = + {\cal A}_s \Delta r_f h_s G_v^{\rm metric} = - \overline{ \frac{ \overline{u}^i }{a} \tan{\varphi} {\cal A}_c \Delta r_f h_c \overline{ u }^i }^j \\ :label: gv_metric - + .. math:: - G_w^{metric} = 0 + G_w^{\rm metric} = 0 :label: gw_metric - + where :math:`a` is the radius of the planet (sphericity is assumed) or the radial distance of the particle (i.e. a function of height). It is easy to see that this discretization satisfies all the properties of the @@ -1393,8 +1396,8 @@ exclusively been used to date: .. math:: \begin{aligned} - G_u^{metric} & = & \frac{u \overline{v}^{ij} }{a} \tan{\varphi} \\ - G_v^{metric} & = & \frac{ \overline{u}^{ij} \overline{u}^{ij}}{a} \tan{\varphi}\end{aligned} + G_u^{\rm metric} & = \frac{u \overline{v}^{ij} }{a} \tan{\varphi} \\ + G_v^{\rm metric} & = \frac{ \overline{u}^{ij} \overline{u}^{ij}}{a} \tan{\varphi}\end{aligned} where :math:`\tan{\varphi}` is evaluated at the :math:`u` and :math:`v` points respectively. @@ -1402,7 +1405,7 @@ points respectively. .. admonition:: S/R :filelink:`MOM_U_METRIC_SPHERE `, :filelink:`MOM_V_METRIC_SPHERE ` :class: note - | :math:`G_u^{metric}, G_v^{metric}` : :varlink:`mT` ( local to :filelink:`MOM_FLUXFORM.F ` ) + | :math:`G_u^{\rm metric}, G_v^{\rm metric}` : :varlink:`mT` ( local to :filelink:`MOM_FLUXFORM.F ` ) .. _non_hyd_metric_terms: @@ -1414,17 +1417,17 @@ approximation re-introduces metric terms involving :math:`w` which are required to conserve angular momentum: .. math:: - {\cal A}_w \Delta r_f h_w G_u^{metric} = + {\cal A}_w \Delta r_f h_w G_u^{\rm metric} = - \overline{ \frac{ \overline{u}^i \overline{w}^k }{a} {\cal A}_c \Delta r_f h_c }^i :label: gu_metricnh - + .. math:: - {\cal A}_s \Delta r_f h_s G_v^{metric} = + {\cal A}_s \Delta r_f h_s G_v^{\rm metric} = - \overline{ \frac{ \overline{v}^j \overline{w}^k }{a} {\cal A}_c \Delta r_f h_c}^j :label: gv_metricnh - + .. math:: - {\cal A}_c \Delta r_c G_w^{metric} = + {\cal A}_c \Delta r_c G_w^{\rm metric} = \overline{ \frac{ {\overline{u}^i}^2 + {\overline{v}^j}^2}{a} {\cal A}_c \Delta r_f h_c }^k :label: wv_metricnh @@ -1434,17 +1437,17 @@ in the past, used a different discretization in the model which is: .. math:: \begin{aligned} - G_u^{metric} & = & + G_u^{\rm metric} & = - \frac{u}{a} \overline{w}^{ik} \\ - G_v^{metric} & = & + G_v^{\rm metric} & = - \frac{v}{a} \overline{w}^{jk} \\ - G_w^{metric} & = & + G_w^{\rm metric} & = \frac{1}{a} ( {\overline{u}^{ik}}^2 + {\overline{v}^{jk}}^2 )\end{aligned} .. admonition:: S/R :filelink:`MOM_U_METRIC_NH `, :filelink:`MOM_V_METRIC_NH ` :class: note - | :math:`G_u^{metric}, G_v^{metric}` : :varlink:`mT` ( local to :filelink:`MOM_FLUXFORM.F ` ) + | :math:`G_u^{\rm metric}, G_v^{\rm metric}` : :varlink:`mT` ( local to :filelink:`MOM_FLUXFORM.F ` ) .. _fluxform_lat_dissip: @@ -1456,13 +1459,13 @@ down gradient momentum fluxes, ignoring constraints on the stress tensor such as symmetry. .. math:: - {\cal A}_w \Delta r_f h_w G_u^{h-diss} = + {\cal A}_w \Delta r_f h_w G_u^{h- \rm diss} = \delta_i \Delta y_f \Delta r_f h_c \tau_{11} + \delta_j \Delta x_v \Delta r_f h_\zeta \tau_{12} :label: gu_h-diss .. math:: - {\cal A}_s \Delta r_f h_s G_v^{h-diss} = + {\cal A}_s \Delta r_f h_s G_v^{h- \rm diss} = \delta_i \Delta y_u \Delta r_f h_\zeta \tau_{21} + \delta_j \Delta x_f \Delta r_f h_c \tau_{22} :label: gv_h-diss @@ -1535,13 +1538,13 @@ interior stress calculation (code) independent of the boundary conditions. The “body” force takes the form: .. math:: - G_u^{side-drag} = + G_u^{\rm side-drag} = \frac{4}{\Delta z_f} \overline{ (1-h_\zeta) \frac{\Delta x_v}{\Delta y_u} }^j \left( A_h c_{12\Delta}(\varphi) u - A_4 c_{12\Delta^2}(\varphi) \nabla^2 u \right) :label: gu_sidedrag .. math:: - G_v^{side-drag} = + G_v^{\rm side-drag} = \frac{4}{\Delta z_f} \overline{ (1-h_\zeta) \frac{\Delta y_u}{\Delta x_v} }^i \left( A_h c_{21\Delta}(\varphi) v - A_4 c_{21\Delta^2}(\varphi) \nabla^2 v \right) :label: gv_sidedrag @@ -1553,7 +1556,7 @@ neighboring vorticity points, e.g. :math:`1-h_w < 1-h_\zeta` .. admonition:: S/R :filelink:`MOM_U_SIDEDRAG `, :filelink:`MOM_V_SIDEDRAG ` :class: note - | :math:`G_u^{side-drag}, G_v^{side-drag}` : :varlink:`vF` ( local to :filelink:`MOM_FLUXFORM.F ` ) + | :math:`G_u^{\rm side-drag}, G_v^{\rm side-drag}` : :varlink:`vF` ( local to :filelink:`MOM_FLUXFORM.F ` ) Vertical dissipation -------------------- @@ -1565,17 +1568,17 @@ only next to boundaries; exactly where other terms appear such as linear and quadratic bottom drag. .. math:: - G_u^{v-diss} = + G_u^{v- \rm diss} = \frac{1}{\Delta r_f h_w} \delta_k \tau_{13} :label: gu_u-diss .. math:: - G_v^{v-diss} = + G_v^{v- \rm diss} = \frac{1}{\Delta r_f h_s} \delta_k \tau_{23} :label: gv_v-diss .. math:: - G_w^{v-diss} = \epsilon_{nh} + G_w^{v- \rm diss} = \epsilon_{\rm nh} \frac{1}{\Delta r_f h_d} \delta_k \tau_{33} :label: gw_w-diss @@ -1586,9 +1589,9 @@ In the interior the vertical stresses are discretized: .. math:: \begin{aligned} - \tau_{13} & = & A_v \frac{1}{\Delta r_c} \delta_k u \\ - \tau_{23} & = & A_v \frac{1}{\Delta r_c} \delta_k v \\ - \tau_{33} & = & A_v \frac{1}{\Delta r_f} \delta_k w\end{aligned} + \tau_{13} & = A_v \frac{1}{\Delta r_c} \delta_k u \\ + \tau_{23} & = A_v \frac{1}{\Delta r_c} \delta_k v \\ + \tau_{33} & = A_v \frac{1}{\Delta r_f} \delta_k w\end{aligned} It should be noted that in the non-hydrostatic form, the stress tensor is even less consistent than for the hydrostatic (see Wajsowicz (1993) @@ -1604,40 +1607,73 @@ to-do’s. As for the lateral viscous terms, the free-slip condition is equivalent to simply setting the stress to zero on boundaries. The no-slip -condition is implemented as an additional term acting on top of the +condition is implemented as an additional term acting in conjunction with the interior and free-slip stresses. Bottom drag represents additional friction, in addition to that imposed by the no-slip condition at the bottom. The drag is cast as a stress expressed as a linear or quadratic function of the mean flow in the layer above the topography: .. math:: - \tau_{13}^{bottom-drag} = + \tau_{13}^{\rm bottom-drag} = \left( 2 A_v \frac{1}{\Delta r_c} + r_b - + C_d \sqrt{ \overline{2 KE}^i } + + C_d \sqrt{ \overline{2 \mathrm{KE}}^i } \right) u :label: tau13 .. math:: - \tau_{23}^{bottom-drag} = + \tau_{23}^{\rm bottom-drag} = \left( 2 A_v \frac{1}{\Delta r_c} + r_b - + C_d \sqrt{ \overline{2 KE}^j } + + C_d \sqrt{ \overline{2 \mathrm{KE}}^j } \right) v :label: tau23 where these terms are only evaluated immediately above topography. -:math:`r_b` (:varlink:`bottomDragLinear`) has units of :math:`m s^{-1}` and a -typical value of the order 0.0002 :math:`m s^{-1}`. :math:`C_d` +:math:`r_b` (:varlink:`bottomDragLinear`) has units of m s\ :sup:`-1` and a +typical value of the order 0.0002 m s\ :sup:`-1`. :math:`C_d` (:varlink:`bottomDragQuadratic`) is dimensionless with typical values in the range 0.001–0.003. -.. admonition:: S/R :filelink:`MOM_U_BOTTOMDRAG `, :filelink:`MOM_V_BOTTOMDRAG ` +After defining :varlink:`ALLOW_BOTTOMDRAG_ROUGHNESS` in +:filelink:`MOM_COMMON_OPTIONS.h `, +the quadratic drag coefficient can be +computed by the logarithmic law of the wall: + +.. math:: + u(z) = \left(\frac{\tau}{\rho}\right)^{\frac{1}{2}}\frac{1}{0.4} + \ln{\frac{z+z_r}{z_r}} + :label: logLawWallu + +where :math:`z_r` is the roughness length (runtime parameter +:varlink:`zRoughBot`). Here, :math:`z` is the height from the seafloor and +:math:`\tau` is the bottom stress (and stress in the log-layer). The velocity +is computed at the center of the bottom cell :math:`z_b=\frac{1}{2}\Delta r_f +h_w`, so stress on the bottom cell is :math:`\tau / \rho = C_d u_b^2`, where +:math:`u_b = u(z_b)` is the bottom cell velocity and: + +.. math:: + C_d = \left(\frac{0.4}{ + \ln{\frac{\frac{1}{2} \Delta r_f h_w + z_{r} }{z_{r}}}}\right)^2 + :label: logLawWallcd + +This formulation assumes that the bottommost cell is sufficiently thin that it +is in a constant-stress log layer. A value of :varlink:`zRoughBot` of 0.01 m +yields a quadratic drag coefficient of 0.0022 for :math:`\Delta r_f =` 100 m, +or a quadratic drag coefficient of 0.0041 for :math:`\Delta r_f =` 10 m. + +For :math:`z_r = 0`, :math:`C_d` defaults to the value of +:varlink:`bottomDragQuadratic`. + +.. admonition:: S/R :filelink:`MOM_U_BOTTOMDRAG + `, + :filelink:`MOM_V_BOTTOMDRAG + ` :class: note - | :math:`\tau_{13}^{bottom-drag} / \Delta r_f , \tau_{23}^{bottom-drag} / \Delta r_f` : :varlink:`vF` ( local to :filelink:`MOM_FLUXFORM.F ` ) + | :math:`\tau_{13}^{\rm bottom-drag} / \Delta r_f , \tau_{23}^{\rm bottom-drag} / \Delta r_f` : :varlink:`vF` ( local to :filelink:`MOM_FLUXFORM.F ` ) Derivation of discrete energy conservation ------------------------------------------ @@ -1646,8 +1682,8 @@ These discrete equations conserve kinetic plus potential energy using the following definitions: .. math:: - KE = \frac{1}{2} \left( \overline{ u^2 }^i + \overline{ v^2 }^j + - \epsilon_{nh} \overline{ w^2 }^k \right) + \mathrm{KE} = \frac{1}{2} \left( \overline{ u^2 }^i + \overline{ v^2 }^j + + \epsilon_{\rm nh} \overline{ w^2 }^k \right) :label: KE_discrete .. _mom_diagnostics: @@ -1659,7 +1695,7 @@ Mom Diagnostics ------------------------------------------------------------------------ - <-Name->|Levs|<-parsing code->|<-- Units -->|<- Tile (max=80c) + <-Name->|Levs|<-parsing code->|<-- Units -->|<- Tile (max=80c) ------------------------------------------------------------------------ VISCAHZ | 15 |SZ MR |m^2/s |Harmonic Visc Coefficient (m2/s) (Zeta Pt) VISCA4Z | 15 |SZ MR |m^4/s |Biharmonic Visc Coefficient (m4/s) (Zeta Pt) @@ -1739,14 +1775,14 @@ following or the conformal spherical cube system. The non-hydrostatic vector invariant equations read: .. math:: - \partial_t \vec{v} + ( 2\vec{\Omega} + \vec{\zeta}) \wedge \vec{v} - - b \hat{r} - + \vec{\nabla} B = \vec{\nabla} \cdot \vec{\bf \tau} + \partial_t \vec{\bf v} + ( 2\vec{\boldsymbol{\Omega}} + \vec{\boldsymbol{\zeta}}) \times \vec{\bf v} + - b \hat{\bf r} + + \nabla B = \nabla \cdot \vec{\boldsymbol{\tau}} :label: vect_invar_nh which describe motions in any orthogonal curvilinear coordinate system. -Here, :math:`B` is the Bernoulli function and :math:`\vec{\zeta}=\nabla -\wedge \vec{v}` is the vorticity vector. We can take advantage of the +Here, :math:`B` is the Bernoulli function and :math:`\vec{\boldsymbol{\zeta}}= \nabla +\times \vec{\bf v}` is the vorticity vector. We can take advantage of the elegance of these equations when discretizing them and use the discrete definitions of the grad, curl and divergence operators to satisfy constraints. We can also consider the analogy to forming derived @@ -1761,17 +1797,17 @@ where non-hydrostatic contributions will enter: .. math:: G_u = G_u^{fv} + G_u^{\zeta_3 v} + G_u^{\zeta_2 w} + G_u^{\partial_x B} - + G_u^{\partial_z \tau^x} + G_u^{h-dissip} + G_u^{v-dissip} + + G_u^{\partial_z \tau^x} + G_u^{h- \rm diss} + G_u^{v- \rm diss} :label: gu_vecinv .. math:: G_v = G_v^{fu} + G_v^{\zeta_3 u} + G_v^{\zeta_1 w} + G_v^{\partial_y B} - + G_v^{\partial_z \tau^y} + G_v^{h-dissip} + G_v^{v-dissip} + + G_v^{\partial_z \tau^y} + G_v^{h- \rm diss} + G_v^{v- \rm diss} :label: gv_vecinv .. math:: G_w = G_w^{fu} + G_w^{\zeta_1 v} + G_w^{\zeta_2 u} + G_w^{\partial_z B} - + G_w^{h-dissip} + G_w^{v-dissip} + + G_w^{h- \rm diss} + G_w^{v- \rm diss} :label: gw_vecinv .. admonition:: S/R :filelink:`MOM_VECINV ` @@ -1808,17 +1844,17 @@ that cell. Kinetic energy -------------- -The kinetic energy, denoted :math:`KE`, is defined: +The kinetic energy, denoted :math:`\mathrm{KE}`, is defined: .. math:: - KE = \frac{1}{2} ( \overline{ u^2 }^i + \overline{ v^2 }^j - + \epsilon_{nh} \overline{ w^2 }^k ) + \mathrm{KE} = \frac{1}{2} ( \overline{ u^2 }^i + \overline{ v^2 }^j + + \epsilon_{\rm nh} \overline{ w^2 }^k ) :label: KE_vecinv .. admonition:: S/R :filelink:`MOM_CALC_KE ` :class: note - | :math:`KE` : :varlink:`KE` ( local to :filelink:`MOM_VECINV.F ` ) + | :math:`\mathrm{KE}` : :varlink:`KE` ( local to :filelink:`MOM_VECINV.F ` ) Coriolis terms -------------- @@ -1890,12 +1926,12 @@ consistent with the vertical advection of shear: .. math:: G_u^{\zeta_2 w} = \frac{1}{ {\cal A}_w \Delta r_f h_w } \overline{ - \overline{ {\cal A}_c w }^i ( \delta_k u - \epsilon_{nh} \delta_j w ) }^k + \overline{ {\cal A}_c w }^i ( \delta_k u - \epsilon_{\rm nh} \delta_i w ) }^k :label: gu_zeta2w .. math:: G_v^{\zeta_1 w} = \frac{1}{ {\cal A}_s \Delta r_f h_s } \overline{ - \overline{ {\cal A}_c w }^i ( \delta_k u - \epsilon_{nh} \delta_j w ) }^k + \overline{ {\cal A}_c w }^j ( \delta_k v - \epsilon_{\rm nh} \delta_j w ) }^k :label: gv_zeta1w .. admonition:: S/R :filelink:`MOM_VI_U_VERTSHEAR `, :filelink:`MOM_VI_V_VERTSHEAR ` @@ -1910,19 +1946,19 @@ Gradient of Bernoulli function .. math:: G_u^{\partial_x B} = - \frac{1}{\Delta x_c} \delta_i ( \phi' + KE ) + \frac{1}{\Delta x_c} \delta_i ( \phi' + \mathrm{KE} ) :label: gu_dBdx .. math:: G_v^{\partial_y B} = - \frac{1}{\Delta x_y} \delta_j ( \phi' + KE ) + \frac{1}{\Delta x_y} \delta_j ( \phi' + \mathrm{KE} ) :label: gv_dBdy .. admonition:: S/R :filelink:`MOM_VI_U_GRAD_KE `, :filelink:`MOM_VI_V_GRAD_KE ` :class: note - | :math:`G_u^{\partial_x KE}` : :varlink:`uCf` ( local to :filelink:`MOM_VECINV.F ` ) - | :math:`G_v^{\partial_y KE}` : :varlink:`vCf` ( local to :filelink:`MOM_VECINV.F ` ) + | :math:`G_u^{\partial_x \mathrm{KE}}` : :varlink:`uCf` ( local to :filelink:`MOM_VECINV.F ` ) + | :math:`G_v^{\partial_y \mathrm{KE}}` : :varlink:`vCf` ( local to :filelink:`MOM_VECINV.F ` ) Horizontal divergence @@ -1951,13 +1987,13 @@ potential vorticity (thickness weighted relative vorticity) and divergence and dissipates energy, enstrophy and divergence squared: .. math:: - G_u^{h-dissip} = + G_u^{h- \rm diss} = \frac{1}{\Delta x_c} \delta_i ( A_D D - A_{D4} D^*) - \frac{1}{\Delta y_u h_w} \delta_j h_\zeta ( A_\zeta \zeta - A_{\zeta4} \zeta^* ) :label: gu_h-dissip .. math:: - G_v^{h-dissip} = + G_v^{h- \rm diss} = \frac{1}{\Delta x_v h_s} \delta_i h_\zeta ( A_\zeta \zeta - A_\zeta \zeta^* ) + \frac{1}{\Delta y_c} \delta_j ( A_D D - A_{D4} D^* ) :label: gv_h-dissip @@ -1967,10 +2003,10 @@ where .. math:: \begin{aligned} - D^* & = & \frac{1}{{\cal A}_c h_c} ( + D^* & = \frac{1}{{\cal A}_c h_c} ( \delta_i \Delta y_g h_w \nabla^2 u + \delta_j \Delta x_g h_s \nabla^2 v ) \\ - \zeta^* & = & \frac{1}{{\cal A}_\zeta} ( + \zeta^* & = \frac{1}{{\cal A}_\zeta} ( \delta_i \Delta y_c \nabla^2 v - \delta_j \Delta x_c \nabla^2 u )\end{aligned} @@ -1987,12 +2023,12 @@ Vertical dissipation Currently, this is exactly the same code as the flux form equations. .. math:: - G_u^{v-diss} = + G_u^{v- \rm diss} = \frac{1}{\Delta r_f h_w} \delta_k \tau_{13} :label: gu_v-dissip .. math:: - G_v^{v-diss} = + G_v^{v- \rm diss} = \frac{1}{\Delta r_f h_s} \delta_k \tau_{23} :label: gv_v-dissip @@ -2003,8 +2039,8 @@ In the interior the vertical stresses are discretized: .. math:: \begin{aligned} - \tau_{13} & = & A_v \frac{1}{\Delta r_c} \delta_k u \\ - \tau_{23} & = & A_v \frac{1}{\Delta r_c} \delta_k v\end{aligned} + \tau_{13} & = A_v \frac{1}{\Delta r_c} \delta_k u \\ + \tau_{23} & = A_v \frac{1}{\Delta r_c} \delta_k v\end{aligned} .. admonition:: S/R :filelink:`MOM_U_RVISCFLUX `, :filelink:`MOM_V_RVISCFLUX ` :class: note @@ -2037,26 +2073,26 @@ stable. Historically this has been the quasi-second order Adams-Bashforth method (ABII) and applied to all terms. For an arbitrary tracer, :math:`\tau`, the forced advection-diffusion equation reads: -.. math:: \partial_t \tau + G_{adv}^\tau = G_{diff}^\tau + G_{forc}^\tau +.. math:: \partial_t \tau + G_{\rm adv}^\tau = G_{\rm diff}^\tau + G_{\rm forc}^\tau :label: trac_forced_advdiff -where :math:`G_{adv}^\tau`, :math:`G_{diff}^\tau` and -:math:`G_{forc}^\tau` are the tendencies due to advection, diffusion and +where :math:`G_{\rm adv}^\tau`, :math:`G_{\rm diff}^\tau` and +:math:`G_{\rm forc}^\tau` are the tendencies due to advection, diffusion and forcing, respectively, namely: .. math:: - G_{adv}^\tau = \partial_x u \tau + \partial_y v \tau + \partial_r w \tau - - \tau \nabla \cdot {\bf v} + G_{\rm adv}^\tau = \partial_x (u \tau) + \partial_y (v \tau) + \partial_r (w \tau) + - \tau \nabla \cdot {\bf v} :label: g_adv-tau .. math:: - G_{diff}^\tau = \nabla \cdot {\bf K} \nabla \tau + G_{\rm diff}^\tau = \nabla \cdot \left ( {\bf K} \nabla \tau \right ) :label: g_diff-tau and the forcing can be some arbitrary function of state, time and space. -The term, :math:`\tau \nabla \cdot {\bf v}`, is required to retain local +The term, :math:`\tau \nabla \cdot {\bf v}`, is required to retain local conservation in conjunction with the linear implicit free-surface. It only affects the surface layer since the flow is non-divergent everywhere else. This term is therefore referred to as the surface @@ -2065,7 +2101,7 @@ correction term. Global conservation is not possible using the flux-form (Griffies and Hallberg (2000) :cite:`griffies:00` , Campin et al. (2004) :cite:`cam:04`). The continuity equation can be recovered by setting -:math:`G_{diff}=G_{forc}=0` and :math:`\tau=1`. +:math:`G_{\rm diff}=G_{\rm forc}=0` and :math:`\tau=1`. The driver routine that calls the routines to calculate tendencies are :filelink:`CALC_GT ` and :filelink:`CALC_GS ` for temperature and salt (moisture), @@ -2088,11 +2124,11 @@ lines). Tendencies are calculated at time levels :math:`n` and method: .. math:: - G^{(n+1/2)} = - (\frac{3}{2} + \epsilon) G^{(n)} - (\frac{1}{2} + \epsilon) G^{(n-1)} + G^{(n+1/2)} = + (\tfrac{3}{2} + \epsilon) G^{(n)} - (\tfrac{1}{2} + \epsilon) G^{(n-1)} :label: g_nponehalf -where :math:`G^{(n)} = G_{adv}^\tau + G_{diff}^\tau + G_{src}^\tau` at +where :math:`G^{(n)} = G_{\rm adv}^\tau + G_{\rm diff}^\tau + G_{\rm src}^\tau` at time step :math:`n`. The tendency at :math:`n-1` is not re-calculated but rather the tendency at :math:`n` is stored in a global array for later re-use. @@ -2129,7 +2165,7 @@ that explicit diffusion and forcing use the forward method. Advection schemes ================= -.. toctree:: +.. toctree:: adv-schemes.rst .. _shapiro_filter: @@ -2158,23 +2194,17 @@ the filter damping. The three computational filter operators are : .. math:: - - \mathrm{S1c:}\hspace{2cm} - [1 - 1/2 \frac{\Delta t}{\tau_{shap}} - \{ (\frac{1}{4}\delta_{ii})^n - + (\frac{1}{4}\delta_{jj})^n \} ] - -.. math:: - - \mathrm{S2c:}\hspace{2cm} - [1 - \frac{\Delta t}{\tau_{shap}} - \{ \frac{1}{8} (\delta_{ii} + \delta_{jj}) \}^n] - -.. math:: - - \mathrm{S4c:}\hspace{2cm} - [1 - \frac{\Delta t}{\tau_{shap}} (\frac{1}{4}\delta_{ii})^n] - [1 - \frac{\Delta t}{\tau_{shap}} (\frac{1}{4}\delta_{jj})^n] + \begin{aligned} + & \mathrm{S1c:}\hspace{2cm} + [1 - 1/2 \frac{\Delta t}{\tau_{\rm Shap}} + \{ (\frac{1}{4}\delta_{ii})^n + + (\frac{1}{4}\delta_{jj})^n \} ]\\ + & \mathrm{S2c:}\hspace{2cm} + [1 - \frac{\Delta t}{\tau_{\rm Shap}} + \{ \frac{1}{8} (\delta_{ii} + \delta_{jj}) \}^n]\\ + & \mathrm{S4c:}\hspace{2cm} + [1 - \frac{\Delta t}{\tau_{\rm Shap}} (\frac{1}{4}\delta_{ii})^n] + [1 - \frac{\Delta t}{\tau_{\rm Shap}} (\frac{1}{4}\delta_{jj})^n]\end{aligned} In addition, the S2 operator can easily be extended to a physical space filter: @@ -2182,12 +2212,12 @@ filter: .. math:: \mathrm{S2g:}\hspace{2cm} - [1 - \frac{\Delta t}{\tau_{shap}} - \{ \frac{L_{shap}^2}{8} \overline{\nabla}^2 \}^n] + [1 - \frac{\Delta t}{\tau_{\rm Shap}} + \{ \frac{L_{\rm Shap}^2}{8} \overline{\nabla}^2 \}^n] with the Laplacian operator :math:`\overline{\nabla}^2` and a length -scale parameter :math:`L_{shap}`. The stability of this S2g filter -requires :math:`L_{shap} < \mathrm{Min}^{(Global)}(\Delta x,\Delta y)`. +scale parameter :math:`L_{\rm Shap}`. The stability of this S2g filter +requires :math:`L_{\rm Shap} < \mathrm{Min}^{(\rm Global)}(\Delta x,\Delta y)`. .. _shapiro_diagnostics: @@ -2197,7 +2227,7 @@ SHAP Diagnostics :: -------------------------------------------------------------- - <-Name->|Levs|parsing code|<-Units->|<- Tile (max=80c) + <-Name->|Levs|parsing code|<-Units->|<- Tile (max=80c) -------------------------------------------------------------- SHAP_dT | 5 |SM MR |K/s |Temperature Tendency due to Shapiro Filter SHAP_dS | 5 |SM MR |g/kg/s |Specific Humidity Tendency due to Shapiro Filter @@ -2246,13 +2276,13 @@ and details of approximation) are: .. math:: \frac{{\overline{D} \overline w}}{{\overline{Dt}}} + \frac{ \frac{\partial{\overline{\pi}}}{\partial{z}} - \overline b}{{\rm Fr}^2\lambda^2} = -\left(\overline{\frac{D{w}}{Dt}} - \frac{{\overline{D} \overline w}}{{\overline{Dt}}}\right) - +\frac{\nabla^2 \overline w}{{\rm Re}}\nonumber + +\frac{\nabla^2 \overline w}{{\rm Re}} :label: mercat_w .. math:: \frac{{\overline{D} \bar b}}{{\overline{Dt}}} + \overline w = -\left(\overline{\frac{D{b}}{Dt}} - \frac{{\overline{D} \bar b}}{{\overline{Dt}}}\right) - +\frac{\nabla^2 \overline b}{\Pr{\rm Re}}\nonumber + +\frac{\nabla^2 \overline b}{\Pr{\rm Re}} :label: mercat_b .. math:: @@ -2299,7 +2329,7 @@ scales are resolved. That is, we approximate :eq:`mercat` - :eq:`mercat_b`: .. math:: \left(\overline{\frac{D{b}}{Dt}} - \frac{{\overline{D} \bar b}}{{\overline{Dt}}}\right) \approx\frac{\nabla^2_h \overline b}{\Pr{\rm Re}_h} - +\frac{{\frac{\partial^2{\overline b}}{{\partial{z}}^2}}}{\Pr{\rm Re}_v}\nonumber + +\frac{{\frac{\partial^2{\overline b}}{{\partial{z}}^2}}}{\Pr{\rm Re}_v} :label: eddyvisc_b Reynolds-Number Limited Eddy Viscosity @@ -2394,17 +2424,17 @@ exceeds the molecular value :math:`\nu` should ensure that the energy flux through viscous scale set by the eddy viscosity is the same as it would have been had we resolved all the way to the true viscous scale. That is, :math:`\epsilon\approx -A_{hSmag} \overline D^2`. If we use this approximation to estimate the +A_{h \rm Smag} \overline D^2`. If we use this approximation to estimate the Kolmogorov viscous length, then .. math:: - L_\epsilon(A_{hSmag})\propto\pi\epsilon^{-1/4}A_{hSmag}^{3/4}\approx\pi(A_{hSmag} - \overline D^2)^{-1/4}A_{hSmag}^{3/4} = \pi A_{hSmag}^{1/2}\overline D^{-1/2} + L_\epsilon(A_{h \rm Smag})\propto\pi\epsilon^{-1/4}A_{h \rm Smag}^{3/4}\approx\pi(A_{h \rm Smag} + \overline D^2)^{-1/4}A_{h\rm Smag}^{3/4} = \pi A_{h\rm Smag}^{1/2}\overline D^{-1/2} :label: kolm_visc_len -To make :math:`L_\epsilon(A_{hSmag})` scale with the gridscale, then +To make :math:`L_\epsilon(A_{h\rm Smag})` scale with the gridscale, then -.. math:: A_{hSmag} = \left(\frac{{\sf viscC2Smag}}{\pi}\right)^2L^2|\overline D| +.. math:: A_{h\rm Smag} = \left(\frac{{\sf viscC2Smag}}{\pi}\right)^2L^2|\overline D| :label: AhSmag Where the deformation rate appropriate for hydrostatic flows with @@ -2425,7 +2455,7 @@ Smagorinsky (1993) :cite:`smag:93` shows that a corresponding vertical viscosity should be used: .. math:: - A_{vSmag} = \left(\frac{{\sf viscC2Smag}}{\pi}\right)^2H^2 + A_{v \rm Smag} = \left(\frac{{\sf viscC2Smag}}{\pi}\right)^2H^2 \sqrt{\left({\frac{\partial{\overline {\tilde u}}}{\partial{z}}}\right)^2 + \left({\frac{\partial{\overline {\tilde v}}}{\partial{z}}}\right)^2} :label: A_vsmag @@ -2446,23 +2476,23 @@ and it cascades to smaller scales where it is dissipated. Following a similar argument to that above about energy flux, the enstrophy flux is estimated to be equal to the positive-definite -gridscale dissipation rate of enstrophy :math:`\eta\approx A_{hLeith} +gridscale dissipation rate of enstrophy :math:`\eta\approx A_{h \rm Leith} |\nabla\overline \omega_3|^2`. By dimensional analysis, the -enstrophy-dissipation scale is :math:`L_\eta(A_{hLeith})\propto\pi -A_{hLeith}^{1/2}\eta^{-1/6}`. Thus, the Leith-estimated length scale of +enstrophy-dissipation scale is :math:`L_\eta(A_{h \rm Leith})\propto\pi +A_{h \rm Leith}^{1/2}\eta^{-1/6}`. Thus, the Leith-estimated length scale of enstrophy-dissipation and the resulting eddy viscosity are .. math:: - L_\eta(A_{hLeith})\propto\pi A_{hLeith}^{1/2}\eta^{-1/6} - = \pi A_{hLeith}^{1/3}|\nabla \overline \omega_3|^{-1/3} + L_\eta(A_{h \rm Leith})\propto\pi A_{h \rm Leith}^{1/2}\eta^{-1/6} + = \pi A_{h \rm Leith}^{1/3}| \nabla \overline \omega_3|^{-1/3} :label: L_eta .. math:: - A_{hLeith} = \left(\frac{{\sf viscC2Leith}}{\pi}\right)^3L^3|\nabla \overline\omega_3| + A_{h \rm Leith} = \left(\frac{{\sf viscC2Leith}}{\pi}\right)^3L^3| \nabla \overline\omega_3| :label: Ah_Leith .. math:: - |\nabla\omega_3| \equiv \sqrt{\left[{\frac{\partial{\ }}{\partial{x}}} + | \nabla \omega_3| \equiv \sqrt{\left[{\frac{\partial{\ }}{\partial{x}}} \left({\frac{\partial{\overline {\tilde v}}}{\partial{x}}} - {\frac{\partial{\overline {\tilde u}}}{\partial{y}}}\right)\right]^2 + \left[{\frac{\partial{\ }}{\partial{y}}}\left({\frac{\partial{\overline {\tilde v}}}{\partial{x}}} - {\frac{\partial{\overline {\tilde u}}}{\partial{y}}}\right)\right]^2} @@ -2495,13 +2525,13 @@ specifically targeting purely divergent instabilities near the gridscale. The combined viscosity has the form: .. math:: - A_{hLeith} = L^3\sqrt{\left(\frac{{\sf viscC2Leith}}{\pi}\right)^6 - |\nabla \overline \omega_3|^2 + \left(\frac{{\sf viscC2LeithD}}{\pi}\right)^6 - |\nabla \nabla\cdot \overline {\tilde u}_h|^2} + A_{h \rm Leith} = L^3\sqrt{\left(\frac{{\sf viscC2Leith}}{\pi}\right)^6 + | \nabla \overline \omega_3|^2 + \left(\frac{{\sf viscC2LeithD}}{\pi}\right)^6 + | \nabla ( \nabla \cdot \overline {\tilde u}_h)|^2} :label: Ah_Leithcomb .. math:: - |\nabla \nabla\cdot \overline {\tilde u}_h| \equiv + | \nabla ( \nabla \cdot \overline {\tilde u}_h)| \equiv \sqrt{\left[{\frac{\partial{\ }}{\partial{x}}}\left({\frac{\partial{\overline {\tilde u}}}{\partial{x}}} + {\frac{\partial{\overline {\tilde v}}}{\partial{y}}}\right)\right]^2 + \left[{\frac{\partial{\ }}{\partial{y}}}\left({\frac{\partial{\overline {\tilde u}}}{\partial{x}}} @@ -2531,8 +2561,8 @@ a contribution from quasigeostrophic vortex stretching (Bachman et al. 2017 :cit The viscosity is given by .. math:: - \nu_{*} = \left(\frac{\Lambda \Delta s}{\pi}\right)^{3} | \nabla_{h}(f\mathbf{\hat{z}}) + - \nabla_{h}(\nabla \times \mathbf{v}_{h*}) + \partial_{z}\frac{f}{N^{2}} \nabla_{h} b| + \nu_{*} = \left(\frac{\Lambda \Delta s}{\pi}\right)^{3} \left| \nabla _{h}(f\mathbf{\hat{z}}) + + \nabla _{h}( \nabla \times \mathbf{v}_{h*}) + \partial_{z}\frac{f}{N^{2}} \nabla _{h} b \right| :label: bachman2017_eq39 where :math:`\Lambda` is a tunable parameter of :math:`\mathcal{O}(1)`, @@ -2544,9 +2574,9 @@ However, the viscosity given by :eq:`bachman2017_eq39` does not constrain purely divergent motions. As such, a small :math:`\mathcal{O}(\epsilon)` correction is added .. math:: - \nu_{*} = \left(\frac{\Lambda \Delta s}{\pi}\right)^{3} - \sqrt{|\nabla_{h}(f\mathbf{\hat{z}}) + \nabla_{h}(\nabla \times \mathbf{v}_{h*}) + - \partial_{z} \frac{f}{N^{2}} \nabla_{h} b|^{2} + | \nabla[\nabla \cdot \mathbf{v}_{h}]|^{2}} + \nu_{*} = \left(\frac{\Lambda \Delta s}{\pi}\right)^{3} + \sqrt{\left| \nabla _{h}(f\mathbf{\hat{z}}) + \nabla _{h}( \nabla \times \mathbf{v}_{h*}) + + \partial_{z} \frac{f}{N^{2}} \nabla _{h} b\right|^{2} + | \nabla ( \nabla \cdot \mathbf{v}_{h})|^{2}} :label: bachman2017_eq40 This form is, however, numerically awkward; as the Brunt-Väisälä Frequency becomes very small @@ -2558,8 +2588,8 @@ the Froude number, and :math:`Ro_{*}`, the Rossby number. The second of which, .. math:: \begin{aligned} \nu_{*} = & \left(\frac{\Lambda \Delta s}{\pi}\right)^{3} \\ - & \sqrt{min\left(|\nabla_{h}q_{2*} + \partial_{z} \frac{f^{2}}{N^{2}} \nabla_{h} b |, - \left( 1 + \frac{Fr_{*}^{2}}{Ro_{*}^{2}} + Fr_{*}^{4}\right) |\nabla_{h}q_{2*}|\right)^{2} + | \nabla[\nabla \cdot \mathbf{v}_{h}]|^{2}}, + & \sqrt{\min \left( \left| \nabla _{h}q_{2*} + \partial_{z} \frac{f^{2}}{N^{2}} \nabla _{h} b \right|, + \left( 1 + \frac{Fr_{*}^{2}}{Ro_{*}^{2}} + Fr_{*}^{4}\right) | \nabla _{h}q_{2*}|\right)^{2} + | \nabla ( \nabla \cdot \mathbf{v}_{h}) |^{2}} \end{aligned} :label: bachman2017_eq56 @@ -2634,19 +2664,19 @@ suggested a biharmonic eddy viscosity instead of a harmonic (or Laplacian) visco .. math:: \left({\overline{\frac{D{\tilde v}}{Dt} }} - {\frac{{\overline{D} {{\tilde {\overline{v}}}}}}{{\overline{Dt}}} }\right) \approx \frac{-\nabla^4_h{{\tilde {\overline{v}}}}}{{\rm Re}_4} - + \frac{{\frac{\partial^2{{\tilde {\overline{v}}}}}{{\partial{z}}^2}}}{{\rm Re}_v}\nonumber + + \frac{{\frac{\partial^2{{\tilde {\overline{v}}}}}{{\partial{z}}^2}}}{{\rm Re}_v} :label: bieddyvisc_v .. math:: \left(\overline{\frac{D{w}}{Dt}} - \frac{{\overline{D} \overline w}}{{\overline{Dt}}}\right) - \approx\frac{-\nabla^4_h\overline w}{{\rm Re}_4} + \frac{{\frac{\partial^2{\overline w}}{{\partial{z}}^2}}}{{\rm Re}_v}\nonumber + \approx\frac{-\nabla^4_h\overline w}{{\rm Re}_4} + \frac{{\frac{\partial^2{\overline w}}{{\partial{z}}^2}}}{{\rm Re}_v} :label: bieddyvisc_w .. math:: \left(\overline{\frac{D{b}}{Dt}} - \frac{{\overline{D} \bar b}}{{\overline{Dt}}}\right) \approx \frac{-\nabla^4_h \overline b}{\Pr{\rm Re}_4} - +\frac{{\frac{\partial^2{\overline b}}{{\partial{z}}^2}}}{\Pr{\rm Re}_v}\nonumber + +\frac{{\frac{\partial^2{\overline b}}{{\partial{z}}^2}}}{\Pr{\rm Re}_v} :label: bieddyvisc_b @@ -2678,13 +2708,13 @@ h :math:`\rightarrow 4` in the MITgcm parameter name. MITgcm also supports bihar Smagorinsky viscosities: .. math:: - A_{4Smag} = \left(\frac{{\sf viscC4Smag}}{\pi}\right)^2\frac{L^4}{8}|D| + A_{4 \rm Smag} = \left(\frac{{\sf viscC4Smag}}{\pi}\right)^2\frac{L^4}{8}|D| :label: A4_Smag .. math:: - A_{4Leith} = \frac{L^5}{8}\sqrt{\left(\frac{{\sf viscC4Leith}}{\pi}\right)^6 - |\nabla \overline \omega_3|^2 + \left(\frac{{\sf viscC4LeithD}}{\pi}\right)^6 - |\nabla \nabla\cdot \overline {\bf {\tilde u}}_h|^2} + A_{4 \rm Leith} = \frac{L^5}{8}\sqrt{\left(\frac{{\sf viscC4Leith}}{\pi}\right)^6 + | \nabla \overline \omega_3|^2 + \left(\frac{{\sf viscC4LeithD}}{\pi}\right)^6 + | \nabla ( \nabla \cdot \overline {\bf {\tilde u}}_h)|^2} :label: A4_Leith However, it should be noted that unlike the harmonic forms, the @@ -2694,14 +2724,14 @@ used to estimate these scales and scale them to the gridscale, the resulting biharmonic viscosities should be: .. math:: - A_{4Smag} = \left(\frac{{\sf viscC4Smag}}{\pi}\right)^5L^5 + A_{4 \rm Smag} = \left(\frac{{\sf viscC4Smag}}{\pi}\right)^5L^5 |\nabla^2\overline {\bf {\tilde u}}_h| :label: A4_Smag_alt .. math:: - A_{4Leith} = L^6\sqrt{\left(\frac{{\sf viscC4Leith}}{\pi}\right)^{12} + A_{4 \rm Leith} = L^6\sqrt{\left(\frac{{\sf viscC4Leith}}{\pi}\right)^{12} |\nabla^2 \overline \omega_3|^2 + \left(\frac{{\sf viscC4LeithD}}{\pi}\right)^{12} - |\nabla^2 \nabla\cdot \overline {\bf {\tilde u}}_h|^2} + |\nabla^2 ( \nabla \cdot \overline {\bf {\tilde u}}_h)|^2} :label: A4_Leith_alt Thus, the biharmonic scaling suggested by Griffies and Hallberg (2000) @@ -2710,7 +2740,7 @@ Thus, the biharmonic scaling suggested by Griffies and Hallberg (2000) .. math:: \begin{aligned} |D| & \propto L|\nabla^2\overline {\bf {\tilde u}}_h|\\ - |\nabla \overline \omega_3| & \propto L|\nabla^2 \overline \omega_3|\end{aligned} + | \nabla \overline \omega_3| & \propto L|\nabla^2 \overline \omega_3|\end{aligned} It is not at all clear that these assumptions ought to hold. Only the Griffies and Hallberg (2000) :cite:`griffies:00` forms are currently implemented in @@ -2751,7 +2781,7 @@ projection about a latitude :math:`\theta_0` and geopotential height .. math:: {\rm Ro} \frac{D{\tilde v}}{Dt} + \frac{{\tilde u}\sin\theta}{\sin\theta_0} + M_{Ro}{\frac{\partial{\pi}}{\partial{y}}} - = -\frac{\mu{\rm Ro} \tan\theta({\tilde u}^2 + {\tilde v}^2)}{r/L} + = -\frac{\mu{\rm Ro} \tan\theta({\tilde u}^2 + {\tilde v}^2)}{r/L} - \frac{{\rm Fr}^2M_{Ro} {\tilde v} w}{r/H} + \frac{{\rm Ro} {\bf \hat y}\cdot\nabla^2{\bf u}}{{\rm Re}} :label: gill_v @@ -2778,30 +2808,30 @@ Where {\tilde u}=\frac{u^*}{V\mu},\ \ \ {\tilde v}=\frac{v^*}{V\mu} .. math:: - f_0\equiv2\Omega\sin\theta_0,\ \ \ - %,\ \ \ \BFKDt\ \equiv \mu^2\left({\tilde u}\BFKpd x\ - %+{\tilde v} \BFKpd y\ \right)+\frac{\rm Fr^2M_{Ro}}{\rm Ro} w\BFKpd z\ - \frac{D}{Dt} \equiv \mu^2\left({\tilde u}\frac{\partial}{\partial x} + f_0\equiv2\Omega\sin\theta_0,\ \ \ + %,\ \ \ \BFKDt\ \equiv \mu^2\left({\tilde u}\BFKpd x\ + %+{\tilde v} \BFKpd y\ \right)+\frac{\rm Fr^2M_{Ro}}{\rm Ro} w\BFKpd z\ + \frac{D}{Dt} \equiv \mu^2\left({\tilde u}\frac{\partial}{\partial x} +{\tilde v} \frac{\partial}{\partial y} \right) +\frac{\rm Fr^2M_{Ro}}{\rm Ro} w\frac{\partial}{\partial z} .. math:: - x\equiv \frac{r}{L} \phi \cos \theta_0, \ \ \ + x\equiv \frac{r}{L} \phi \cos \theta_0, \ \ \ y\equiv \frac{r}{L} \int_{\theta_0}^\theta - \frac{\cos \theta_0 {\,\rm d\theta}'}{\cos\theta'}, \ \ \ + \frac{\cos \theta_0 {\,\rm d\theta}'}{\cos\theta'}, \ \ \ z\equiv \lambda\frac{r-r_0}{L} .. math:: t^*=t \frac{L}{V},\ \ \ b^*= b\frac{V f_0M_{Ro}}{\lambda} .. math:: - \pi^* = \pi V f_0 LM_{Ro},\ \ \ + \pi^* = \pi V f_0 LM_{Ro},\ \ \ w^* = w V \frac{{\rm Fr}^2 \lambda M_{Ro}}{\rm Ro} .. math:: {\rm Ro} \equiv \frac{V}{f_0 L},\ \ \ M_{Ro}\equiv \max[1,\rm Ro] .. math:: - {\rm Fr} \equiv \frac{V}{N \lambda L}, \ \ \ - {\rm Re} \equiv \frac{VL}{\nu}, \ \ \ + {\rm Fr} \equiv \frac{V}{N \lambda L}, \ \ \ + {\rm Re} \equiv \frac{VL}{\nu}, \ \ \ {\rm Pr} \equiv \frac{\nu}{\kappa} Dimensional variables are denoted by an asterisk where necessary. If we @@ -2812,7 +2842,7 @@ filter over a grid scale typical for ocean models: | 0.001m/s :math:`< V <` 1 m/s | :math:`f_0 <` 0.0001 s :sup:`-1` | 0.01 s :sup:`-1` :math:`< N <` 0.0001 s :sup:`-1` -| +| these equations are very well approximated by @@ -2832,11 +2862,11 @@ these equations are very well approximated by .. math:: {\rm Fr}^2\lambda^2\frac{D{w}}{Dt} - b + {\frac{\partial{\pi}}{\partial{z}}} = \frac{\lambda\cot \theta_0 {\tilde u}}{M_{Ro}} - +\frac{{\rm Fr}^2\lambda^2\nabla^2w}{{\rm Re}} + +\frac{{\rm Fr}^2\lambda^2\nabla^2w}{{\rm Re}} :label: gill_w_filt .. math:: - \frac{D{b}}{Dt} + w = \frac{\nabla^2 b}{\Pr{\rm Re}} + \frac{D{b}}{Dt} + w = \frac{\nabla^2 b}{\Pr{\rm Re}} :label: gill_b_filt diff --git a/doc/algorithm/crank-nicol.rst b/doc/algorithm/crank-nicol.rst index 3afeb76b6e..801f75bc52 100644 --- a/doc/algorithm/crank-nicol.rst +++ b/doc/algorithm/crank-nicol.rst @@ -25,16 +25,16 @@ Equations :eq:`ustar-backward-free-surface` – .. math:: \frac{ \vec{\bf v}^{n+1} }{ \Delta t } + {\bf \nabla}_h b_s [ \gamma {\eta}^{n+1} + (1-\gamma) {\eta}^{n} ] - + \epsilon_{nh} {\bf \nabla}_h {\phi'_{nh}}^{n+1} + + \epsilon_{\rm nh} {\bf \nabla}_h {\phi'_{\rm nh}}^{n+1} = \frac{ \vec{\bf v}^{n} }{ \Delta t } + \vec{\bf G}_{\vec{\bf v}} ^{(n+1/2)} - + {\bf \nabla}_h {\phi'_{hyd}}^{(n+1/2)} + + {\bf \nabla}_h {\phi'_{\rm hyd}}^{(n+1/2)} .. math:: - \epsilon_{fs} \frac{ {\eta}^{n+1} - {\eta}^{n} }{ \Delta t} - + {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o} + \epsilon_{\rm fs} \frac{ {\eta}^{n+1} - {\eta}^{n} }{ \Delta t} + + {\bf \nabla}_h \cdot \int_{R_{\rm fixed}}^{R_o} [ \beta \vec{\bf v}^{n+1} + (1-\beta) \vec{\bf v}^{n}] dr - = \epsilon_{fw} ({\mathcal{P-E}}) + = \epsilon_{\rm fw} ({\mathcal{P-E}}) :label: eta-n+1-CrankNick We set @@ -44,19 +44,19 @@ We set \vec{\bf v}^* & = & \vec{\bf v} ^{n} + \Delta t \vec{\bf G}_{\vec{\bf v}} ^{(n+1/2)} + (\gamma-1) \Delta t {\bf \nabla}_h b_s {\eta}^{n} - + \Delta t {\bf \nabla}_h {\phi'_{hyd}}^{(n+1/2)} + + \Delta t {\bf \nabla}_h {\phi'_{\rm hyd}}^{(n+1/2)} \\ {\eta}^* & = & - \epsilon_{fs} {\eta}^{n} + \epsilon_{fw} \Delta t ({\mathcal{P-E}}) - - \Delta t {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o} + \epsilon_{fs} {\eta}^{n} + \epsilon_{\rm fw} \Delta t ({\mathcal{P-E}}) + - \Delta t {\bf \nabla}_h \cdot \int_{R_{\rm fixed}}^{R_o} [ \beta \vec{\bf v}^* + (1-\beta) \vec{\bf v}^{n}] dr\end{aligned} -In the hydrostatic case :math:`\epsilon_{nh}=0`, allowing us to find +In the hydrostatic case :math:`\epsilon_{\rm nh}=0`, allowing us to find :math:`{\eta}^{n+1}`, thus: .. math:: - \epsilon_{fs} {\eta}^{n+1} - - {\bf \nabla}_h \cdot \gamma\beta \Delta t^2 b_s (R_o - R_{fixed}) + \epsilon_{\rm fs} {\eta}^{n+1} - + {\bf \nabla}_h \cdot \gamma\beta \Delta t^2 b_s (R_o - R_{\rm fixed}) {\bf \nabla}_h {\eta}^{n+1} = {\eta}^* @@ -70,11 +70,11 @@ Notes: #. The RHS term of equation :eq:`eta-n+1-CrankNick` corresponds the contribution of fresh water flux ({\mathcal{P-E}}) to the free-surface variations - (:math:`\epsilon_{fw}=1`, :varlink:`useRealFreshWaterFlux` =.TRUE. in parameter + (:math:`\epsilon_{fw}=1`, :varlink:`useRealFreshWaterFlux` ``=.TRUE.`` in parameter file ``data``). In order to remain consistent with the tracer equation, specially in the non-linear free-surface formulation, this term is also affected by the Crank-Nicolson time stepping. The RHS reads: - :math:`\epsilon_{fw} ( \beta ({\mathcal{P-E}})^{n+1/2} + (1-\beta) ({\mathcal{P-E}})^{n-1/2} )` + :math:`\epsilon_{\rm fw} ( \beta ({\mathcal{P-E}})^{n+1/2} + (1-\beta) ({\mathcal{P-E}})^{n-1/2} )` #. The stability criteria with Crank-Nicolson time stepping for the pure @@ -84,18 +84,18 @@ Notes: - :math:`\gamma \geq 1/2` and :math:`\beta \geq 1/2` : stable - - :math:`\gamma + \beta \geq 1` : stable if :math:`c_{max}^2 (\gamma - 1/2)(\beta - 1/2) + 1 \geq 0` - with :math:`c_{max} = 2 \Delta t \sqrt{gH} \sqrt{ \frac{1}{\Delta x^2} + \frac{1}{\Delta y^2} }` + - :math:`\gamma + \beta \geq 1` : stable if :math:`c_{\rm max}^2 (\gamma - 1/2)(\beta - 1/2) + 1 \geq 0` + with :math:`c_{\rm max} = 2 \Delta t \sqrt{gH} \sqrt{ \frac{1}{\Delta x^2} + \frac{1}{\Delta y^2} }` #. A similar mixed forward/backward time-stepping is also available for - the non-hydrostatic algorithm, with a fraction :math:`\gamma_{nh}` - (:math:`0 < \gamma_{nh} \leq 1`) of the non-hydrostatic pressure + the non-hydrostatic algorithm, with a fraction :math:`\gamma_{\rm nh}` + (:math:`0 < \gamma_{\rm nh} \leq 1`) of the non-hydrostatic pressure gradient being evaluated at time step :math:`n+1` (backward in time) - and the remaining part (:math:`1 - \gamma_{nh}`) being evaluated at + and the remaining part (:math:`1 - \gamma_{\rm nh}`) being evaluated at time step :math:`n` (forward in time). The run-time parameter :varlink:`implicitNHPress` corresponding to the implicit fraction - :math:`\gamma_{nh}` of the non-hydrostatic pressure is set by default + :math:`\gamma_{\rm nh}` of the non-hydrostatic pressure is set by default to the implicit fraction :math:`\gamma` of surface pressure (:varlink:`implicSurfPress`), but can also be specified independently (in main parameter file ``data``, namelist ``PARM01``). diff --git a/doc/algorithm/horiz-grid.rst b/doc/algorithm/horiz-grid.rst index 950214dde4..ba742ba5ff 100644 --- a/doc/algorithm/horiz-grid.rst +++ b/doc/algorithm/horiz-grid.rst @@ -29,52 +29,61 @@ the actual geographic orientation of model quantities. :align: center :alt: hgrid-abcd :name: hgrid-abcd - - Staggering of horizontal grid descriptors (lengths and areas). The grid lines indicate the tracer cell boundaries and are the reference grid for all panels. a) The area of a tracer cell, :math:`A_c`, is bordered by the lengths :math:`\Delta x_g` and :math:`\Delta y_g`. b) The area of a vorticity cell, :math:`A_\zeta`, is bordered by the lengths :math:`\Delta x_c` and :math:`\Delta y_c`. c) The area of a u cell, :math:`A_w`, is bordered by the lengths :math:`\Delta x_v` and :math:`\Delta y_f`. d) The area of a v cell, :math:`A_s`, is bordered by the lengths :math:`\Delta x_f` and :math:`\Delta y_u`. + + Staggering of horizontal grid descriptors (lengths and areas). The grid + lines indicate the tracer cell boundaries and are the reference grid for + all panels. a) The area of a tracer cell, :math:`A_c`, is bordered by the + lengths :math:`\Delta x_g` and :math:`\Delta y_g`. b) The area of a + vorticity cell, :math:`A_\zeta`, is bordered by the lengths :math:`\Delta + x_c` and :math:`\Delta y_c`. c) The area of a u cell, :math:`A_w`, is + bordered by the lengths :math:`\Delta x_v` and :math:`\Delta y_f`. d) The + area of a v cell, :math:`A_s`, is bordered by the lengths :math:`\Delta + x_f` and :math:`\Delta y_u`. :numref:`hgrid-abcd` (a) shows the tracer cell (synonymous with the continuity -cell). The length of the southern edge, :math:`\Delta x_g`, western -edge, :math:`\Delta y_g` and surface area, :math:`A_c`, presented in the -vertical are stored in arrays :varlink:`dxG`, :varlink:`dyG` and :varlink:`rA`. The “g” -suffix indicates that the lengths are along the defining grid -boundaries. The “c” suffix associates the quantity with the cell -centers. The quantities are staggered in space and the indexing is such -that **dxG(i,j)** is positioned to the south of **rA(i,j)** and -**dyG(i,j)** positioned to the west. - -:numref:`hgrid-abcd` (b) shows the vorticity cell. The length of the southern -edge, :math:`\Delta x_c`, western edge, :math:`\Delta y_c` and surface -area, :math:`A_\zeta`, presented in the vertical are stored in arrays -:varlink:`dxC`, :varlink:`dyC` and :varlink:`rAz`. The “z” suffix indicates that the lengths -are measured between the cell centers and the “:math:`\zeta`” suffix -associates points with the vorticity points. The quantities are -staggered in space and the indexing is such that **dxC(i,j)** is -positioned to the north of **rAz(i,j)** and **dyC(i,j)** positioned to -the east. +cell). The length of the southern edge, :math:`\Delta x_g`, western edge, +:math:`\Delta y_g` and surface area, :math:`A_c`, presented in the vertical are +stored in arrays :varlink:`dxG`, :varlink:`dyG` and :varlink:`rA`. The “g” +suffix indicates that the lengths are along the defining grid boundaries. The +“c” suffix associates the quantity with the cell centers. The quantities are +staggered in space and the indexing is such that **dxG(i,j)** is positioned to +the south of **rA(i,j)** and **dyG(i,j)** positioned to the west. + +:numref:`hgrid-abcd` (b) shows the vorticity cell. The length of the northern +edge, :math:`\Delta x_c`, eastern edge, :math:`\Delta y_c` and surface area, +:math:`A_\zeta`, presented in the vertical are stored in arrays :varlink:`dxC`, +:varlink:`dyC` and :varlink:`rAz`. The “c” suffix indicates that the lengths +are measured between the cell centers and the “:math:`\zeta`” suffix associates +points with the vorticity points. The quantities are staggered in space and the +indexing is such that **dxC(i,j)** is positioned to the north of **rAz(i,j)** +and **dyC(i,j)** positioned to the east. :numref:`hgrid-abcd` (c) shows the “u” or western (w) cell. The length of the -southern edge, :math:`\Delta x_v`, eastern edge, :math:`\Delta y_f` and -surface area, :math:`A_w`, presented in the vertical are stored in -arrays :varlink:`dxV`, :varlink:`dyF` and :varlink:`rAw`. The “v” suffix indicates that the -length is measured between the v-points, the “f” suffix indicates that -the length is measured between the (tracer) cell faces and the “w” -suffix associates points with the u-points (w stands for west). The -quantities are staggered in space and the indexing is such that -**dxV(i,j)** is positioned to the south of **rAw(i,j)** and **dyF(i,j)** -positioned to the east. +southern edge, :math:`\Delta x_v`, eastern edge, :math:`\Delta y_f` and surface +area, :math:`A_w`, presented in the vertical are stored in arrays +:varlink:`dxV`, :varlink:`dyF` and :varlink:`rAw`. The “v” suffix indicates +that the length is measured between the v-points, the “f” suffix indicates that +the length is measured between the (tracer) cell faces and the “w” suffix +associates points with the u-points (w stands for west). The quantities are +staggered in space and the indexing is such that **dxV(i,j)** is positioned to +the south of **rAw(i,j)** and **dyF(i,j)** positioned to the east. :numref:`hgrid-abcd` (d) shows the “v” or southern (s) cell. The length of the -northern edge, :math:`\Delta x_f`, western edge, :math:`\Delta y_u` and -surface area, :math:`A_s`, presented in the vertical are stored in -arrays :varlink:`dxF`, :varlink:`dyU` and :varlink:`rAs`. The “u” suffix indicates that the -length is measured between the u-points, the “f” suffix indicates that -the length is measured between the (tracer) cell faces and the “s” -suffix associates points with the v-points (s stands for south). The -quantities are staggered in space and the indexing is such that -**dxF(i,j)** is positioned to the north of **rAs(i,j)** and **dyU(i,j)** -positioned to the west. - -.. admonition:: S/R :filelink:`INI_CARTESIAN_GRID ` , :filelink:`INI_SPHERICAL_POLAR_GRID ` , :filelink:`INI_CURVILINEAR_GRID ` +northern edge, :math:`\Delta x_f`, western edge, :math:`\Delta y_u` and surface +area, :math:`A_s`, presented in the vertical are stored in arrays +:varlink:`dxF`, :varlink:`dyU` and :varlink:`rAs`. The “u” suffix indicates +that the length is measured between the u-points, the “f” suffix indicates that +the length is measured between the (tracer) cell faces and the “s” suffix +associates points with the v-points (s stands for south). The quantities are +staggered in space and the indexing is such that **dxF(i,j)** is positioned to +the north of **rAs(i,j)** and **dyU(i,j)** positioned to the west. + +.. admonition:: S/R :filelink:`INI_CARTESIAN_GRID + ` , + :filelink:`INI_SPHERICAL_POLAR_GRID + ` , + :filelink:`INI_CURVILINEAR_GRID + ` :class: note | :math:`A_c , A_\zeta , A_w , A_s` : :varlink:`rA`, :varlink:`rAz`, :varlink:`rAw`, :varlink:`rAs` ( :filelink:`GRID.h ` ) @@ -92,9 +101,9 @@ the numerator. For efficiency and portability, we pre-calculate the reciprocal of the horizontal grid quantities so that in-line divisions can be avoided. -For each grid descriptor (array) there is a reciprocal named using the -prefix ``recip_``. This doubles the amount of storage in :filelink:`GRID.h ` but -they are all only 2-D descriptors. +For each grid descriptor (array) there is a reciprocal named using the prefix +``recip_``. This doubles the amount of storage in :filelink:`GRID.h +` but they are all only 2-D descriptors. .. admonition:: S/R :filelink:`INI_MASKS_ETC ` :class: note @@ -123,8 +132,8 @@ Spherical coordinates are selected when the logical flag :varlink:`usingSphericalPolarGrid` in namelist ``PARM04`` is set to true. The grid spacing can be set to uniform via scalars :varlink:`dXspacing` and :varlink:`dYspacing` in namelist ``PARM04`` or to variable resolution by the -vectors :varlink:`DELX` and :varlink:`DELY`. Units of these namelist variables are -alway degrees. The horizontal grid descriptors are calculated from these +vectors :varlink:`DELX` and :varlink:`DELY`. Units of these namelist variables +are alway degrees. The horizontal grid descriptors are calculated from these namelist variables have units of meters. Curvilinear coordinates @@ -135,4 +144,3 @@ Curvilinear coordinates are selected when the logical flag spacing can not be set via the namelist. Instead, the grid descriptors are read from data files, one for each descriptor. As for other grids, the horizontal grid descriptors have units of meters. - diff --git a/doc/algorithm/nonlinear-freesurf.rst b/doc/algorithm/nonlinear-freesurf.rst index 547bb8ac0b..9e8ab856e7 100644 --- a/doc/algorithm/nonlinear-freesurf.rst +++ b/doc/algorithm/nonlinear-freesurf.rst @@ -8,13 +8,13 @@ Options have been added to the model that concern the free surface formulation. Pressure/geo-potential and free surface ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For the atmosphere, since :math:`\phi = \phi_{topo} - \int^p_{p_s} \alpha dp`, subtracting the +For the atmosphere, since :math:`\phi = \phi_{\rm topo} - \int^p_{p_s} \alpha dp`, subtracting the reference state defined in section :numref:`hpe-p-geo-potential-split` : .. math:: - \phi_o = \phi_{topo} - \int^p_{p_o} \alpha_o dp - \hspace{5mm}\mathrm{with}\hspace{3mm} \phi_o(p_o)=\phi_{topo} + \phi_o = \phi_{\rm topo} - \int^p_{p_o} \alpha_o dp + \hspace{5mm}\mathrm{with}\hspace{3mm} \phi_o(p_o)=\phi_{\rm topo} we get: @@ -26,44 +26,44 @@ reference position is uniformly :math:`z=0` (:math:`R_o=0`), and the same subtraction leads to a similar relation. For both fluids, using the isomorphic notations, we can write: -.. math:: \phi' = \int^{r_{surf}}_r b~ dr - \int^{R_o}_r b_o dr +.. math:: \phi' = \int^{r_{\rm surf}}_r b~ dr - \int^{R_o}_r b_o dr and re-write as: .. math:: - \phi' = \int^{r_{surf}}_{R_o} b~ dr + \int^{R_o}_r (b - b_o) dr + \phi' = \int^{r_{\rm surf}}_{R_o} b~ dr + \int^{R_o}_r (b - b_o) dr :label: split-phi-Ro or: .. math:: - \phi' = \int^{r_{surf}}_{R_o} b_o dr + \int^{r_{surf}}_r (b - b_o) dr + \phi' = \int^{r_{surf}}_{R_o} b_o dr + \int^{r_{\rm surf}}_r (b - b_o) dr :label: split-phi-bo In section :numref:`finding_the_pressure_field`, following eq. :eq:`split-phi-Ro`, the pressure/geo-potential :math:`\phi'` has been separated into surface (:math:`\phi_s`), and hydrostatic anomaly -(:math:`\phi'_{hyd}`). In this section, the split between :math:`\phi_s` -and :math:`\phi'_{hyd}` is made according to equation :eq:`split-phi-bo`. +(:math:`\phi'_{\rm hyd}`). In this section, the split between :math:`\phi_s` +and :math:`\phi'_{\rm hyd}` is made according to equation :eq:`split-phi-bo`. This slightly different definition reflects the actual implementation in the code and is valid for both linear and non-linear free-surface formulation, in both r-coordinate and r\*-coordinate. Because the linear free-surface approximation ignores the tracer content of the fluid parcel between :math:`R_o` and -:math:`r_{surf}=R_o+\eta`, for consistency reasons, this part is also -neglected in :math:`\phi'_{hyd}` : +:math:`r_{\rm surf}=R_o+\eta`, for consistency reasons, this part is also +neglected in :math:`\phi'_{\rm hyd}` : -.. math:: \phi'_{hyd} = \int^{r_{surf}}_r (b - b_o) dr \simeq \int^{R_o}_r (b - b_o) dr +.. math:: \phi'_{\rm hyd} = \int^{r_{\rm surf}}_r (b - b_o) dr \simeq \int^{R_o}_r (b - b_o) dr Note that in this case, the two definitions of :math:`\phi_s` and -:math:`\phi'_{hyd}` from equations :eq:`split-phi-Ro` and +:math:`\phi'_{\rm hyd}` from equations :eq:`split-phi-Ro` and :eq:`split-phi-bo` converge toward the same (approximated) expressions: -:math:`\phi_s = \int^{r_{surf}}_{R_o} b_o dr` and -:math:`\phi'_{hyd}=\int^{R_o}_r b' dr`. +:math:`\phi_s = \int^{r_{\rm surf}}_{R_o} b_o dr` and +:math:`\phi'_{\rm hyd}=\int^{R_o}_r b' dr`. On the contrary, the unapproximated formulation (see :numref:`free_surf_effect_col_thick`) retains the full expression: -:math:`\phi'_{hyd} = \int^{r_{surf}}_r (b - b_o) dr` . This is +:math:`\phi'_{\rm hyd} = \int^{r_{\rm surf}}_r (b - b_o) dr` . This is obtained by selecting :varlink:`nonlinFreeSurf` =4 in parameter file ``data``. Regarding the surface potential: @@ -80,24 +80,24 @@ For the ocean, :math:`\phi_s = g \eta` and :math:`b_s = g` is uniform. For the atmosphere, however, because of topographic effects, the reference surface pressure :math:`R_o=p_o` has large spatial variations that are responsible for significant :math:`b_s` variations (from 0.8 to -1.2 :math:`[m^3/kg]`). For this reason, when :varlink:`uniformLin_PhiSurf` +1.2 :math:`\rm [m^3/kg]`). For this reason, when :varlink:`uniformLin_PhiSurf` =.FALSE. (parameter file ``data``, namelist ``PARAM01``) a non-uniform linear coefficient :math:`b_s` is used and computed (:filelink:`INI_LINEAR_PHISURF `) according to the reference surface pressure :math:`p_o`: -:math:`b_s = b_o(R_o) = c_p \kappa (p_o / P^o_{SL})^{(\kappa - 1)} \theta_{ref}(p_o)`, -with :math:`P^o_{SL}` the mean sea-level pressure. +:math:`b_s = b_o(R_o) = c_p \kappa (p_o / P^o_{\rm SLP})^{(\kappa - 1)} \theta_{ref}(p_o)`, +with :math:`P^o_{\rm SLP}` the mean sea-level pressure. .. _free_surf_effect_col_thick: Free surface effect on column total thickness (Non-linear free-surface) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The total thickness of the fluid column is :math:`r_{surf} - R_{fixed} = -\eta + R_o - R_{fixed}`. In most applications, the free surface +The total thickness of the fluid column is :math:`r_{\rm surf} - R_{\rm fixed} = +\eta + R_o - R_{\rm fixed}`. In most applications, the free surface displacements are small compared to the total thickness -:math:`\eta \ll H_o = R_o - R_{fixed}`. In the previous sections and in +:math:`\eta \ll H_o = R_o - R_{\rm fixed}`. In the previous sections and in older version of the model, the linearized free-surface approximation -was made, assuming :math:`r_{surf} - R_{fixed} \simeq H_o` when +was made, assuming :math:`r_{\rm surf} - R_{\rm fixed} \simeq H_o` when computing horizontal transports, either in the continuity equation or in tracer and momentum advection terms. This approximation is dropped when using the non-linear free-surface formulation and the total thickness, @@ -113,16 +113,16 @@ with some limitations regarding the vertical resolution in section In the non-linear formulation, the continuous form of the model equations remains unchanged, except for the 2D continuity equation :eq:`discrete-time-backward-free-surface` which is now integrated from -:math:`R_{fixed}(x,y)` up to :math:`r_{surf}=R_o+\eta` : +:math:`R_{\rm fixed}(x,y)` up to :math:`r_{\rm surf}=R_o+\eta` : .. math:: - \epsilon_{fs} \partial_t \eta = - \left. \dot{r} \right|_{r=r_{surf}} + \epsilon_{fw} ({\mathcal{P-E}}) = - - {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o+\eta} \vec{\bf v} dr + \epsilon_{\rm fs} \partial_t \eta = + \left. \dot{r} \right|_{r=r_{\rm surf}} + \epsilon_{\rm fw} ({\mathcal{P-E}}) = + - {\bf \nabla}_h \cdot \int_{R_{\rm fixed}}^{R_o+\eta} \vec{\bf v} dr + \epsilon_{fw} ({\mathcal{P-E}}) Since :math:`\eta` has a direct effect on the horizontal velocity -(through :math:`\nabla_h \Phi_{surf}`), this adds a non-linear term to +(through :math:`\nabla_h \Phi_{\rm surf}`), this adds a non-linear term to the free surface equation. Several options for the time discretization of this non-linear part can be considered, as detailed below. @@ -133,8 +133,8 @@ implicit treatment of the surface potential gradient, equations .. math:: \begin{aligned} - \epsilon_{fs} {\eta}^{n+1} - - {\bf \nabla}_h \cdot \Delta t^2 (\eta^{n}+R_o-R_{fixed}) + \epsilon_{\rm fs} {\eta}^{n+1} - + {\bf \nabla}_h \cdot \Delta t^2 (\eta^{n}+R_o-R_{\rm fixed}) {\bf \nabla}_h b_s {\eta}^{n+1} = {\eta}^*\end{aligned} @@ -143,9 +143,9 @@ where .. math:: \begin{aligned} - {\eta}^* = \epsilon_{fs} \: {\eta}^{n} - - \Delta t {\bf \nabla}_h \cdot \int_{R_{fixed}}^{R_o+\eta^n} \vec{\bf v}^* dr - \: + \: \epsilon_{fw} \Delta_t ({\mathcal{P-E}})^{n}\end{aligned} + {\eta}^* = \epsilon_{\rm fs} \: {\eta}^{n} - + \Delta t {\bf \nabla}_h \cdot \int_{R_{\rm fixed}}^{R_o+\eta^n} \vec{\bf v}^* dr + \: + \: \epsilon_{\rm fw} \Delta_t ({\mathcal{P-E}})^{n}\end{aligned} This method requires us to update the solver matrix at each time step. @@ -155,8 +155,8 @@ explicitly: .. math:: \begin{aligned} - \epsilon_{fs} {\eta}^{n+1} - - {\bf \nabla}_h \cdot \Delta t^2 (R_o-R_{fixed}) + \epsilon_{\rm fs} {\eta}^{n+1} - + {\bf \nabla}_h \cdot \Delta t^2 (R_o-R_{\rm fixed}) {\bf \nabla}_h b_s {\eta}^{n+1} = {\eta}^* +{\bf \nabla}_h \cdot \Delta t^2 (\eta^{n}) @@ -178,29 +178,29 @@ involved in the solver matrix update is negligible. .. table:: Non-linear free-surface flags :name: nonlinFreeSurf-flags - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | Parameter | Value | Description | - +===========================+=========+========================================================================================+ - | :varlink:`nonlinFreeSurf` | -1 | linear free-surface, restart from a pickup file | - | | | produced with #undef :varlink:`EXACT_CONSERV` code | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 0 | linear free-surface (= default) | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 4 | full non-linear free-surface | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 3 | same as 4 but neglecting :math:`\int_{R_o}^{R_o+\eta} b' dr` in :math:`\Phi'_{hyd}` | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 2 | same as 3 but do not update cg2d solver matrix | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 1 | same as 2 but treat momentum as in linear free-surface | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | :varlink:`select_rStar` | 0 | do not use :math:`r^*` vertical coordinate (= default) | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 2 | use :math:`r^*` vertical coordinate | - +---------------------------+---------+----------------------------------------------------------------------------------------+ - | | 1 | same as 2 but without the contribution of the | - | | | slope of the coordinate in :math:`\nabla \Phi` | - +---------------------------+---------+----------------------------------------------------------------------------------------+ + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | Parameter | Value | Description | + +===========================+=========+=========================================================================================+ + | :varlink:`nonlinFreeSurf` | -1 | linear free-surface, restart from a pickup file | + | | | produced with #undef :varlink:`EXACT_CONSERV` code | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 0 | linear free-surface (= default) | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 4 | full non-linear free-surface | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 3 | same as 4 but neglecting :math:`\int_{R_o}^{R_o+\eta} b' dr` in :math:`\Phi'_{\rm hyd}` | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 2 | same as 3 but do not update cg2d solver matrix | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 1 | same as 2 but treat momentum as in linear free-surface | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | :varlink:`select_rStar` | 0 | do not use :math:`r^*` vertical coordinate (= default) | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 2 | use :math:`r^*` vertical coordinate | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ + | | 1 | same as 2 but without the contribution of the | + | | | slope of the coordinate in :math:`\nabla \Phi` | + +---------------------------+---------+-----------------------------------------------------------------------------------------+ .. _tracer-cons-nonlinear-freesurface: @@ -217,21 +217,21 @@ the barotropic part (to find :math:`\eta`) and baroclinic part (to find To illustrate this, consider the shallow water model, with a source of fresh water (:math:`\mathcal{P}`): -.. math:: \partial_t h + \nabla \cdot h \vec{\bf v} = \mathcal{P} +.. math:: \partial_t h + \nabla \cdot h \vec{\bf v} = \mathcal{P} where :math:`h` is the total thickness of the water column. To conserve the tracer :math:`\theta` we have to discretize: .. math:: - \partial_t (h \theta) + \nabla \cdot ( h \theta \vec{\bf v}) - = \mathcal{P} \theta_{\mathrm{rain}} + \partial_t (h \theta) + \nabla \cdot ( h \theta \vec{\bf v}) + = \mathcal{P} \theta_{\rm rain} Using the implicit (non-linear) free surface described above (:numref:`press_meth_linear`) we have: .. math:: \begin{aligned} - h^{n+1} = h^{n} - \Delta t \nabla \cdot (h^n \, \vec{\bf v}^{n+1} ) + \Delta t \mathcal{P} \\\end{aligned} + h^{n+1} = h^{n} - \Delta t \nabla \cdot (h^n \, \vec{\bf v}^{n+1} ) + \Delta t \mathcal{P} \\\end{aligned} The discretized form of the tracer equation must adopt the same “form” in the computation of tracer fluxes, that is, the same value of @@ -240,8 +240,8 @@ in the computation of tracer fluxes, that is, the same value of .. math:: \begin{aligned} h^{n+1} \, \theta^{n+1} = h^n \, \theta^n - - \Delta t \nabla \cdot (h^n \, \theta^n \, \vec{\bf v}^{n+1}) - + \Delta t \mathcal{P} \theta_{rain}\end{aligned} + - \Delta t \nabla \cdot (h^n \, \theta^n \, \vec{\bf v}^{n+1}) + + \Delta t \mathcal{P} \theta_{\rm rain}\end{aligned} The use of a 3 time-levels time-stepping scheme such as the Adams-Bashforth make the conservation sightly tricky. The current @@ -256,8 +256,8 @@ formulation (with the “*surface correction*” turned “on”, see tracer section): .. math:: - G_\theta^n = \left(- \nabla \cdot (h^n \, \theta^n \, \vec{\bf v}^{n+1}) - - \dot{r}_{surf}^{n+1} \theta^n \right) / h^n + G_\theta^n = \left(- \nabla \cdot (h^n \, \theta^n \, \vec{\bf v}^{n+1}) + - \dot{r}_{\rm surf}^{n+1} \theta^n \right) / h^n Then, in a second step, the thickness variation (expansion/reduction) is taken into account: @@ -268,7 +268,7 @@ is taken into account: Note that with a simple forward time step (no Adams-Bashforth), these two formulations are equivalent, since -:math:`(h^{n+1} - h^{n})/ \Delta t = \mathcal{P} - \nabla \cdot (h^n \, \vec{\bf v}^{n+1} ) = P + \dot{r}_{surf}^{n+1}` +:math:`(h^{n+1} - h^{n})/ \Delta t = \mathcal{P} - \nabla \cdot (h^n \, \vec{\bf v}^{n+1} ) = P + \dot{r}_{\rm surf}^{n+1}` .. _nonlin-freesurf-timestepping: @@ -294,7 +294,7 @@ and :math:`dh^n` are the column and grid box thickness in r-coordinate. .. math:: - \phi^{n}_{hyd} = \int b(\theta^{n},S^{n},r) dr + \phi^{n}_{\rm hyd} = \int b(\theta^{n},S^{n},r) dr :label: phi-hyd-nlfs .. math:: @@ -309,19 +309,19 @@ r-coordinate. .. math:: \vec{\bf v}^{*} = \vec{\bf v}^{n-1/2} + \Delta t \frac{dh^{n-1}}{dh^{n}} \left( \vec{\bf G}_{\vec{\bf v}}^{(n)} + F_{\vec{\bf v}}^{n}/dh^{n-1} \right) - - \Delta t \nabla \phi_{hyd}^{n} + - \Delta t \nabla \phi_{\rm hyd}^{n} :label: vstar-nlfs .. math:: - \longrightarrow update \phantom{x} model \phantom{x} geometry : {\bf hFac}(dh^n) + \longrightarrow \rm update \phantom{x} \rm model \phantom{x} \rm geometry : {\bf hFac}(dh^n) .. math:: \begin{aligned} \eta^{n+1/2} \hspace{-1mm} & = \eta^{n-1/2} + \Delta t P^{n+1/2} - \Delta t - \nabla \cdot \int \vec{\bf v}^{n+1/2} dh^{n} \\ + \nabla \cdot \int \vec{\bf v}^{n+1/2} dh^{n} \\ & = \eta^{n-1/2} + \Delta t P^{n+1/2} - \Delta t - \nabla \cdot \int \!\!\! \left( \vec{\bf v}^* - g \Delta t \nabla \eta^{n+1/2} \right) dh^{n}\end{aligned} + \nabla \cdot \int \!\!\! \left( \vec{\bf v}^* - g \Delta t \nabla \eta^{n+1/2} \right) dh^{n}\end{aligned} :label: nstar-nlfs .. math:: @@ -331,7 +331,7 @@ r-coordinate. .. math:: h^{n+1} = h^{n} + \Delta t P^{n+1/2} - \Delta t - \nabla \cdot \int \vec{\bf v}^{n+1/2} dh^{n} + \nabla \cdot \int \vec{\bf v}^{n+1/2} dh^{n} :label: h-n+1-nlfs .. math:: @@ -344,7 +344,6 @@ r-coordinate. \theta^{n+1} =\theta^{n} + \Delta t \frac{dh^n}{dh^{n+1}} \left( G_{\theta}^{(n+1/2)} +( P^{n+1/2} (\theta_{\mathrm{rain}}-\theta^n) + \mathcal{Q}^{n+1/2})/dh^n \right) - \nonumber :label: t-n+1-nlfs Two steps have been added to linear free-surface algorithm (eq. diff --git a/doc/autodiff/autodiff.rst b/doc/autodiff/autodiff.rst index c73e1edde0..1632e9495d 100644 --- a/doc/autodiff/autodiff.rst +++ b/doc/autodiff/autodiff.rst @@ -62,10 +62,10 @@ diagnostics, objective function, ...) under consideration: .. math:: \begin{aligned} {\cal M} \, : & \, U \,\, \longrightarrow \, V \\ - ~ & \, \vec{u} \,\, \longmapsto \, \vec{v} \, = \, + ~ & \, \vec{u} \,\, \longmapsto \, \vec{v} \, = \, {\cal M}(\vec{u})\end{aligned} :label: fulloperator - + The vectors :math:`\vec{u} \in U` and :math:`\vec{v} \in V` may be represented with respect to some given basis vectors :math:`{\rm span} (U) = \{ {\vec{e}_i} \}_{i = 1, \ldots , m}` and @@ -99,8 +99,8 @@ components reads .. math:: - \delta v_{j} \, = \, \sum_{i} - \left. \frac{\partial {\cal M}_{j}}{\partial u_{i}} \right|_{u^{(0)}} \, + \delta v_{j} \, = \, \sum_{i} + \left. \frac{\partial {\cal M}_{j}}{\partial u_{i}} \right|_{u^{(0)}} \, \delta u_{i} :label: jacobi_matrix @@ -124,10 +124,10 @@ over a time interval, or a measure of some model-to-data misfit) .. math:: \begin{aligned} \begin{array}{cccccc} - {\cal J} \, : & U & - \longrightarrow & V & + {\cal J} \, : & U & + \longrightarrow & V & \longrightarrow & \mathbb{R} \\ - ~ & \vec{u} & \longmapsto & \vec{v}={\cal M}(\vec{u}) & + ~ & \vec{u} & \longmapsto & \vec{v}={\cal M}(\vec{u}) & \longmapsto & {\cal J}(\vec{u}) = {\cal J}({\cal M}(\vec{u})) \end{array}\end{aligned} :label: compo @@ -144,11 +144,11 @@ can be expressed in both bases of :math:`\vec{u}` and .. math:: \begin{aligned} {\cal J} & = \, - {\cal J} |_{\vec{u}^{(0)}} \, + \, - \left\langle \, \nabla _{u}{\cal J}^T |_{\vec{u}^{(0)}} \, , \, \delta \vec{u} \, \right\rangle + {\cal J} |_{\vec{u}^{(0)}} \, + \, + \left\langle \, \nabla _{u}{\cal J}^T |_{\vec{u}^{(0)}} \, , \, \delta \vec{u} \, \right\rangle \, + \, O(\delta \vec{u}^2) \\ ~ & = \, - {\cal J} |_{\vec{v}^{(0)}} \, + \, + {\cal J} |_{\vec{v}^{(0)}} \, + \, \left\langle \, \nabla _{v}{\cal J}^T |_{\vec{v}^{(0)}} \, , \, \delta \vec{v} \, \right\rangle \, + \, O(\delta \vec{v}^2) \end{aligned} @@ -179,8 +179,8 @@ and from :eq:`tangent_linear`, :eq:`deljidentity`, we note that \left\langle \, \nabla _{v}{\cal J}^T \, , \, \delta \vec{v} \, \right\rangle \, = \, \left\langle \, \nabla _{v}{\cal J}^T \, , \, M \, \delta \vec{u} \, \right\rangle - \, = \, - \left\langle \, M^T \, \nabla _{v}{\cal J}^T \, , \, + \, = \, + \left\langle \, M^T \, \nabla _{v}{\cal J}^T \, , \, \delta \vec{u} \, \right\rangle :label: inner @@ -190,7 +190,7 @@ adjoint :math:`M^{\ast }` of the tangent linear model :math:`M` .. math:: \begin{aligned} - \nabla _{u}{\cal J}^T |_{\vec{u}} & + \nabla _{u}{\cal J}^T |_{\vec{u}} & = \, M^T |_{\vec{u}} \cdot \nabla _{v}{\cal J}^T |_{\vec{v}} \\ ~ & = \, M^T |_{\vec{u}} \cdot \delta \vec{v}^{\ast} \\ ~ & = \, \delta \vec{u}^{\ast} @@ -219,8 +219,8 @@ final state :math:`\vec{v}` only (this restriction is for clarity reasons only). :math:`{\cal J}(u)` may be decomposed according to: .. math:: - {\cal J}({\cal M}(\vec{u})) \, = \, - {\cal J} ( {\cal M}_{\Lambda} ( {\cal M}_{\Lambda-1} ( + {\cal J}({\cal M}(\vec{u})) \, = \, + {\cal J} ( {\cal M}_{\Lambda} ( {\cal M}_{\Lambda-1} ( ...... ( {\cal M}_{\lambda} (...... ( {\cal M}_{1} ( {\cal M}_{0}(\vec{u}) ))))) :label: compos @@ -249,10 +249,10 @@ whereas in reverse mode we have \begin{aligned} M^T ( \nabla_v {\cal J}^T) & = \, M_{0}^T \cdot M_{1}^T - \cdot ...... \cdot M_{\lambda}^T \cdot ...... \cdot + \cdot ...... \cdot M_{\lambda}^T \cdot ...... \cdot M_{\Lambda}^T \cdot \nabla_v {\cal J}^T \\ ~ & = \, M_{0}^T \cdot M_{1}^T - \cdot ...... \cdot + \cdot ...... \cdot \nabla_{v^{(\lambda)}} {\cal J}^T \\ ~ & = \, \nabla_u {\cal J}^T \end{aligned}} @@ -274,7 +274,7 @@ each intermediate step :math:`\lambda`, namely \begin{aligned} \nabla_{v^{(\lambda)}} {\cal J}^T |_{\vec{v}^{(\lambda)}} & = \, - M_{\lambda}^T |_{\vec{v}^{(\lambda)}} \cdot ...... \cdot + M_{\lambda}^T |_{\vec{v}^{(\lambda)}} \cdot ...... \cdot M_{\Lambda}^T |_{\vec{v}^{(\lambda)}} \cdot \delta \vec{v}^{\ast} \\ ~ & = \, \delta \vec{v}^{(\lambda) \, \ast} \end{aligned}} @@ -290,15 +290,15 @@ In components, :eq:`adjoint` reads as follows. Let \delta \vec{u} & = & \left( \delta u_1,\ldots, \delta u_m \right)^T , & \qquad & \delta \vec{u}^{\ast} \,\, = \,\, \nabla_u {\cal J}^T & = & - \left( - \frac{\partial {\cal J}}{\partial u_1},\ldots, + \left( + \frac{\partial {\cal J}}{\partial u_1},\ldots, \frac{\partial {\cal J}}{\partial u_m} \right)^T \\ \delta \vec{v} & = & \left( \delta v_1,\ldots, \delta u_n \right)^T , & \qquad & \delta \vec{v}^{\ast} \,\, = \,\, \nabla_v {\cal J}^T & = & - \left( - \frac{\partial {\cal J}}{\partial v_1},\ldots, + \left( + \frac{\partial {\cal J}}{\partial v_1},\ldots, \frac{\partial {\cal J}}{\partial v_n} \right)^T \\ \end{array} @@ -321,17 +321,17 @@ is the Jacobi matrix of :math:`{\cal M}` (an :math:`n \times m` matrix) such that :math:`\delta \vec{v} = M \cdot \delta \vec{u}`, or .. math:: - \delta v_{j} + \delta v_{j} \, = \, \sum_{i=1}^m M_{ji} \, \delta u_{i} - \, = \, \sum_{i=1}^m \, \frac{\partial {\cal M}_{j}}{\partial u_{i}} + \, = \, \sum_{i=1}^m \, \frac{\partial {\cal M}_{j}}{\partial u_{i}} \delta u_{i} Then :eq:`adjoint` takes the form .. math:: - \delta u_{i}^{\ast} + \delta u_{i}^{\ast} \, = \, \sum_{j=1}^n M_{ji} \, \delta v_{j}^{\ast} - \, = \, \sum_{j=1}^n \, \frac{\partial {\cal M}_{j}}{\partial u_{i}} + \, = \, \sum_{j=1}^n \, \frac{\partial {\cal M}_{j}}{\partial u_{i}} \delta v_{j}^{\ast} or @@ -347,11 +347,11 @@ or \, = \, \left( \begin{array}{ccc} - \left. \frac{\partial {\cal M}_1}{\partial u_1} \right|_{\vec{u}^{(0)}} + \left. \frac{\partial {\cal M}_1}{\partial u_1} \right|_{\vec{u}^{(0)}} & \ldots & \left. \frac{\partial {\cal M}_n}{\partial u_1} \right|_{\vec{u}^{(0)}} \\ \vdots & ~ & \vdots \\ - \left. \frac{\partial {\cal M}_1}{\partial u_m} \right|_{\vec{u}^{(0)}} + \left. \frac{\partial {\cal M}_1}{\partial u_m} \right|_{\vec{u}^{(0)}} & \ldots & \left. \frac{\partial {\cal M}_n}{\partial u_m} \right|_{\vec{u}^{(0)}} \\ \end{array} @@ -460,7 +460,7 @@ dimension :math:`l > 1`, :eq:`reverse` has to be modified according to .. math:: - M^T \left( \nabla_v {\cal J}^T \left(\delta \vec{J}\right) \right) + M^T \left( \nabla_v {\cal J}^T \left(\delta \vec{J}\right) \right) \, = \, \nabla_u {\cal J}^T \cdot \delta \vec{J} @@ -491,7 +491,7 @@ the adjoint operator onto the :math:`j`-th component :math:`{\bf f_{j}}`, .. math:: - \nabla_u {\cal J}^T + \nabla_u {\cal J}^T \, = \, M^T \cdot \nabla_v {\cal J}^T \, = \, \sum_{i} M^T_{ji} \, {\vec{e}_{i}} @@ -505,10 +505,10 @@ space. Then, :math:`\nabla_v {\cal J}` takes the form .. math:: \begin{aligned} - \nabla_v {\cal J}^T & = \, 2 \, \, H \cdot + \nabla_v {\cal J}^T & = \, 2 \, \, H \cdot \left( \, {\cal H}(\vec{v}) - \vec{d} \, \right) \\ ~ & = \, 2 \sum_{j} \left\{ \sum_k - \frac{\partial {\cal H}_k}{\partial v_{j}} + \frac{\partial {\cal H}_k}{\partial v_{j}} \left( {\cal H}_k (\vec{v}) - d_k \right) \right\} \, {\vec{f}_{j}} \\ \end{aligned} @@ -519,7 +519,7 @@ Jacobi matrix of the data projection operator. Thus, the gradient by the model vs. data misfit: .. math:: - \nabla_u {\cal J}^T \, = \, 2 \, M^T \cdot + \nabla_u {\cal J}^T \, = \, 2 \, M^T \cdot H \cdot \left( {\cal H}(\vec{v}) - \vec{d} \, \right) .. _sec_autodiff_storage_v_recompute: @@ -620,7 +620,7 @@ In this section we describe in a general fashion the parts of the code that are relevant for automatic differentiation using the software tool TAF. Modifications to use OpenAD are described in :numref:`ad_openad`. -The basic flow is as follows: +The basic flow is as follows: :: @@ -629,9 +629,9 @@ The basic flow is as follows: |--- initialise_fixed | |--- #ifdef ALLOW_ADJOINT_RUN - | | + | | | |--- ctrl_unpack - | | + | | | |--- adthe_main_loop | | | | | |--- initialise_varia @@ -718,9 +718,9 @@ The following AD-specific CPP option files need to be customized: :filelink:`pkg/cost`, :filelink:`pkg/ctrl` as well as AD-unrelated options for the external forcing package :filelink:`pkg/exf`. (NOTE: These options are not set in their package-specific headers such as :filelink:`COST_OPTIONS.h `, - but are instead collected in the single header file + but are instead collected in the single header file :filelink:`ECCO_CPPOPTIONS.h `. - The package-specific header files serve as simple placeholders at this point.) + The package-specific header files serve as simple placeholders at this point.) - :filelink:`tamc.h ` This header configures the splitting of the time stepping loop @@ -1014,8 +1014,8 @@ accumulates the total cost function :varlink:`fc` from each contribution and sums over all tiles: .. math:: - {\cal J} \, = \, - {\rm fc} \, = \, + {\cal J} \, = \, + {\rm fc} \, = \, {\rm mult\_tracer} \sum_{\text{global sum}} \sum_{bi,\,bj}^{nSx,\,nSy} {\rm objf\_tracer}(bi,bj) \, + \, ... @@ -1220,7 +1220,7 @@ considered: :: - call active_read_xyz( + call active_read_xyz( & ..., tmpfld3d, ..., xx_tr1_dummy, ... ) tr1(...) = tr1(...) + tmpfld3d(...) @@ -1258,7 +1258,7 @@ considered: parameters :varlink:`diffkr` and :varlink:`kapgm` are currently added as controls in :filelink:`ctrl_map_ini.F `. -.. _sec_autodiff_output_adj_vars: +.. _sec_autodiff_output_adj_vars: Output of adjoint variables and gradient ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1275,7 +1275,7 @@ Several ways exist to generate output of adjoint fields. after the adjoint integration the corresponding adjoint variables are written to ``adxx\_«...»``. -- In :filelink:`ctrl_unpack.F `, :filelink:`ctrl_pack.F `: +- In :filelink:`ctrl_unpack.F `, :filelink:`ctrl_pack.F `: - The control vector ``vector_ctrl``: at the very beginning of the model initialization, the updated @@ -1326,7 +1326,7 @@ Several ways exist to generate output of adjoint fields. **WARNING:** If the structure of the common blocks :varlink:`dynvars_r`, :varlink:`dynvars_cd`, etc., changes similar changes will occur in the adjoint common blocks. Therefore, consistency between the - TAMC-generated common blocks and those in + TAMC-generated common blocks and those in :filelink:`adcommon.h ` have to be checked. @@ -1339,7 +1339,7 @@ to be minimized with respect to a set of control variables gradient :math:`\nabla _{u}{\cal J} |_{u_{[k]}}` together with the value of the cost function itself :math:`{\cal J}(u_{[k]})` at iteration step :math:`k` serve as input to a minimization routine -(e.g. quasi-Newton method, conjugate gradient, ... (Gilbert and Lemaréchal, 1989 +(e.g. quasi-Newton method, conjugate gradient, ... (Gilbert and Lemaréchal, 1989 :cite:`gil-lem:89`) to compute an update in the control variable for iteration step :math:`k+1`: @@ -1361,7 +1361,7 @@ between forward/adjoint model and the minimization routine. Flow between the forward/adjoint model and the minimization routine. -The routines :filelink:`ctrl_unpack.F ` and +The routines :filelink:`ctrl_unpack.F ` and :filelink:`ctrl_pack.F ` provide the link between the model and the minimization routine. As described in Section ref:ask-the-author the :filelink:`ctrl_unpack.F ` @@ -1426,7 +1426,7 @@ successful if the deviation of the ratio between the adjoint and the finite difference gradient from unity is less than 1 percent, .. math:: - 1 \, - \, + 1 \, - \, \frac{({\rm grad}{\cal J})_i (\text{adjoint})} {({\rm grad}{\cal J})_i (\text{finite difference})} \, < 1 \% @@ -1476,7 +1476,7 @@ The relevant runtime flags are set in the files: | |-- grdchk_getxx - get control vector component from file | perturb it and write back to file - |-- grdchk_getadxx - get gradient component calculated + |-- grdchk_getadxx - get gradient component calculated | via adjoint |-- the_main_loop - forward run and cost evaluation | with perturbed control vector element @@ -1751,8 +1751,8 @@ for following system: > uname -a Linux itrda 2.6.22.2-42.fc6 #1 SMP Wed Aug 15 12:34:26 EDT 2007 i686 i686 i386 GNU/Linux - > cat /proc/version - Linux version 2.6.22.2-42.fc6 (brewbuilder@hs20-bc2-4.build.redhat.com) + > cat /proc/version + Linux version 2.6.22.2-42.fc6 (brewbuilder@hs20-bc2-4.build.redhat.com) (gcc version 4.1.2 20070626 (Red Hat 4.1.2-13)) #1 SMP Wed Aug 15 12:34:26 EDT 2007 > module load ifc/9.1.036 icc/9.1.042 @@ -1761,3 +1761,245 @@ Head of MITgcm branch (``checkpoint59m`` with some modifications) was used for building adjoint code. Following routing needed special care (revert to revision 1.1): http://wwwcvs.mitgcm.org/viewvc/MITgcm/MITgcm_contrib/heimbach/OpenAD/OAD_support/active_module.f90?hideattic=0&view=markup. +Building the MITgcm adjoint using an OpenAD Singularity container +----------------------------------------------------------------- + +The MITgcm adjoint can also be built using a Singularity container. You will +need `Singularity `_, version 3.X. A container +with OpenAD can be downloaded from the Sylabs Cloud: [#thanks-Dan]_ + +:: + + singularity pull library://jahn/default/openad:latest + +To use it, supply the path to the downloaded container to genmake2, + +:: + + ../../../tools/genmake2 -oad -oadsingularity /path/to/openad_latest.sif ... + make adAll + +If your build directory is on a remotely mounted file system (mounted at +/mountpoint), you may have to add an option for mounting it in the container: + +:: + + ../../../tools/genmake2 -oad -oadsngl "-B /mountpoint /path/to/openad_latest.sif" ... + +The ``-oadsingularity`` option is also supported by testreport, +:numref:`testreport_utility`. Note that the path to the container has to be +either absolute or relative to the build directory. + +.. _ad_tapenade: + +Adjoint code generation using Tapenade +====================================== + +Authors: Shreyas Gaikwad, Sri Hari Krishna Naryanan, Laurent Hascoet, Patrick +Heimbach + +Introduction +------------ + +TAPENADE is an open-source Automatic Differentiation Engine developed at INRIA +Sophia-Antipolis by the Tropics then Ecuador teams. TAPENADE can be utilized as +a server (JAVA servlet), which runs at INRIA Sophia-Antipolis. The current +address of this TAPENADE server is `here +`_. TAPENADE can also be +downloaded and installed locally as a set of JAVA classes (JAR archive). In +that case it is run by a simple command line, which can be included into a +Makefile. It also provides you with a user-interface to visualize the results +in a HTML browser. + +Downloading and installing Tapenade +----------------------------------- + +While the MITgcm source files are prepared to generate adjoint sensitivities, +they will not be able to do so without an operable installation of +Tapenade. Fortunately the Tapenade installation procedure is straight forward. + +We detail the instructions here, but the latest instructions can always be +found `here +`__. + +Prerequisites for Linux or Mac OS +--------------------------------- + +Before installing Tapenade, you must check that an up-to-date Java Runtime +Environment is installed. Tapenade will not run with older Java Runtime +Environment. + +Steps for Mac OS +---------------- + +Tapenade 3.16 distribution does not contain a fortranParser executable for +MacOS. It uses a docker image from `here +`__. You need docker on your Mac to +run the Tapenade distribution with Fortran programs. Details on how to build +fortranParser is `here +`__. You +may also build Tapenade on your Mac from the `gitlab repository +`__. + +To use the docker image specify ``TAPENADECMD=tapenadocker`` in your +build-options or in a ``genmake_local`` file (:numref:`genmake2_desc`). +Running a docker image also requires absolute paths, e.g., to +:filelink:`tools/TAP_support/flow_tap `. At the +:filelink:`genmake2 ` step use the option ``-rootdir`` to +specify the absolute path to your MITgcm directory (see also +:numref:`command_line_options`). + +Steps for Linux +--------------- + +1. Read `the Tapenade license. `__ + +2. Download `tapenade_3.16.tar + `__ + into your chosen installation directory *install_dir*. + +3. Go to your chosen installation directory *install_dir*, and extract Tapenade + from the tar file : + +:: + + % tar xvfz tapenade_3.16.tar + +4. On Linux, depending on your distribution, Tapenade may require you to set + the shell variable ``JAVA_HOME`` to your java installation directory. It is + often ``JAVA_HOME=/usr/java/default``. You might also need to modify the + ``PATH`` by adding the bin directory from the Tapenade installation. An + example can be found :ref:`here `. + +Prerequisites for Windows +------------------------- + +Before installing Tapenade, you must check that an up-to-date Java Runtime +Environment is installed. Tapenade will not run with older Java Runtime +Environment. The Fortran parser of Tapenade uses `cygwin +`__. + +Steps for Windows +----------------- + +1. Read `the Tapenade license. `__ + +2. Download `tapenade_3.16.zip + `__ + into your chosen installation directory *install_dir*. + +3. Go to your chosen installation directory *install_dir*, and extract Tapenade + from the zip file. + +4. Save a copy of the ``install_dir\tapenade_3.16\bin\tapenade.bat`` file and + modify ``install_dir\tapenade_3.16\bin\tapenade.bat`` according to your + installation parameters: + +replace ``TAPENADE_HOME=..`` by ``TAPENADE_HOME="install_dir"\tapenade_3.16`` +replace ``JAVA_HOME="C:\Progra~1\Java\jdkXXXX"`` by your current java directory +replace ``BROWSER="C:\Program Files\Internet Explorer\iexplore.exe"`` by your +current browser. + +.. _tapenade_bashrc_snippet: + +**NOTE**: Every time you wish to use the AD capability with Tapenade, you must re-source the environment. We recommend that this be done automatically in your bash or c-shell profile upon login. An example of an addition to a ``.bashrc`` file from a Linux server is given below. Luckily, shell variable ``JAVA_HOME`` was not required to be explicitly set for this particular Linux distribution, but might be necessary for some other distributions. + +:: + + ##set some env variables for tapenade + + export TAPENADE_HOME="/home/shreyas/tapenade_3.16" + export PATH="$PATH:$TAPENADE_HOME/bin" + + ##Modules + + module use /share/modulefiles/ + module load java/jdk/16.0.1 # Java required by Tapenade + + +You should now have a working copy of Tapenade. + +For more information on the tapenade command and its arguments, type : + +:: + + tapenade -? + +Prerequisites for Tapenade setup +-------------------------------- + +The ``packages.conf`` file should include both the ``adjoint`` and ``tapenade`` +packages. Note that ``mnc`` and ``ecco`` packages are not yet compatible with +Tapenade. The users are referred to the ``code_tap`` directories in the various +verification experiments for reference. + +**Pro tip**: ``diff -qr dir1 dir2`` can help you see all the differences in the files of two directories. + +``autodiff`` is not completely untangled from the Tapenade setup yet. In +``code_tap/AUTODIFF_OPTIONS.h``, the only flag that can be defined safely is +``ALLOW_AUTODIFF_MONITOR``. + +Rest of the setup remains unchanged. + + +Building MITgcm TLM with Tapenade +--------------------------------- + +The setup remains similar to how one sets up the TLM with TAF. A typical flow +will look as follows - + +:: + + ### Assuming $PWD is the build subdirectory + ### Clean stuff + make CLEAN + + ### Use your own optfile + ../../../tools/genmake2 -tap -of ../../../tools/build_options/linux_amd64_ifort -mods ../code_tap + make depend + + ### Differentiate code to generate TLM code using Tapenade + ### Creates executable mitgcmuv_tap_tlm + make -j 8 tap_tlm + + ### Rest of the setup is standard + cd ../run + rm -r * + ln -s ../input_tap/* . + ../input_tap/prepare_run + ln -s ../build/mitgcmuv_tap_tlm . + ./mitgcmuv_tap_tlm > output_tap_tlm.txt 2>&1 + +Building MITgcm adjoint with Tapenade +------------------------------------- + +The setup remains similar to how one sets up the adjoint with TAF. A typical +flow will look as follows - + +:: + + ### Assuming $PWD is the build subdirectory + ### Clean stuff + make CLEAN + + ### Use your own optfile + ../../../tools/genmake2 -tap -of ../../../tools/build_options/linux_amd64_ifort -mods ../code_tap + make depend + + ### Differentiate code to generate adjoint code using Tapenade + ### Creates executable mitgcmuv_tap_adj + make -j 8 tap_adj + + ### Rest of the setup is standard + ### These commands are for a typical verification experiment + cd ../run + rm -r * + ln -s ../input_tap/* . + ../input_tap/prepare_run + ln -s ../build/mitgcmuv_tap_adj . + ./mitgcmuv_tap_adj > output_tap_adj.txt 2>&1 + +.. rubric:: Footnotes + +.. [#thanks-Dan] A big thank you to Dan Goldberg for supplying the definition + file for the Singularity container! diff --git a/doc/conf.py b/doc/conf.py index f67b7ed2d4..4c4b3d5d23 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -41,6 +41,8 @@ autodoc_mock_imports = ['matplotlib', 'mpl_toolkits'] +bibtex_bibfiles = ['manual_references.bib'] + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -97,7 +99,7 @@ def get_version(): # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. diff --git a/doc/contributing/contributing.rst b/doc/contributing/contributing.rst index 3f3978beb5..be9c1ae7c4 100644 --- a/doc/contributing/contributing.rst +++ b/doc/contributing/contributing.rst @@ -41,15 +41,29 @@ the same procedure and conform with :numref:`contrib_manual`. Quickstart Guide ---------------- +**0.** As a precursor, if you have not done so already, set up +`ssh keys `_ for GitHub +`command line authentication `_ +(or alteratively, authenticate using a +`personal access token `_). + **1.** Fork the project on GitHub (using the fork button). **2.** Create a local clone (we strongly suggest keeping a separate -repository for development work): +repository for development work). If you are using ssh keys +for command line authentication: + +:: + + % git clone git@github.com:«GITHUB_USERNAME»/MITgcm.git + +Alternatively, if you are using a personal access token for authentication: :: % git clone https://github.com/«GITHUB_USERNAME»/MITgcm.git + **3.** Move into your local clone directory (cd MITgcm) and and set up a remote that points to the original: @@ -80,15 +94,22 @@ issues addressed using the syntax ``#«ISSUE_NUMBER»``. **7.** On GitHub, go to your fork and hit the compare and pull request (PR) button, provide the requested information about your PR (in particular, a non-trivial change to the model requires a suggested addition to :filelink:`doc/tag-index`) -and wait for the MITgcm head developers to review your proposed changes. -In general the MITgcm code reviewers try to respond to a new PR within -a week. The reviewers may accept the PR as is, or may request edits and +and wait for the MITgcm head developers with merge privileges to review your proposed changes. +In addition to the MITgcm head developers, a broader group of reviewers +and developers will peruse and try to respond to a new PR within +a week or two. The reviewers may accept the PR as is, or more typically, may request edits and changes. Occasionally the review team will reject changes that are not -sufficiently aligned with and do not fit with the code structure. The -review team is always happy to discuss their decisions, but wants to +sufficiently aligned with and do not fit with the code structure. +The review team is always happy to discuss their decision, but want to avoid people investing extensive effort in code that has a fundamental -design flaw. The current review team is Jean-Michel Campin, Ed Doddridge, Chris -Hill, Oliver Jahn, and Jeff Scott. +design flaw. As such, we **strongly** suggest opening an +`issue `_ +on GitHub to discuss any proposed contributions beforehand. + +The current pull request discussion and review team is Jean-Michel Campin, +Ed Doddridge, Chris Hill, Oliver Jahn, Jon Lauderdale, +Martin Losch, Jeff Scott, Timothy Smith, and Ou Wang. Please +contact anyone on this team with questions about a proposed pull request. If you want to update your code branch before submitting a PR (or any point in development), follow the recipe below. It will ensure that your GitHub @@ -128,7 +149,7 @@ your local computer’s terminal session. All Git-related terminal commands are of the form ``git «arguments»``. Important functions include syncing or updating your code library, adding files to a collection of files with edits, and commands to “finalize” these changes for sending back to -the MITgcm maintainers. There are numerous other Git command-line +the MITgcm head developers. There are numerous other Git command-line tools to help along the way (see man pages via ``man git``). The most common git commands are: @@ -141,12 +162,22 @@ The most common git commands are: What is GitHub then? GitHub is a website that has three major purposes: 1) Code Viewer: through your browser, you can view all source code and all changes to such over time; 2) “Pull Requests”: facilitates the process whereby code developers submit -changes to the primary MITgcm maintainers; 3) the “Cloud”: GitHub functions as a cloud server to store different copies of the code. +changes to the primary MITgcm head developers; 3) the “Cloud”: GitHub functions as a cloud server to store different copies of the code. The utility of #1 is fairly obvious. For #2 and #3, without GitHub, one might envision making a big tarball of edited files and -emailing the maintainers for inclusion in the main repository. Instead, GitHub effectively does something like this for you in a +emailing the head developers for inclusion in the main repository. Instead, GitHub effectively does something like this for you in a much more elegant way. Note unlike using (linux terminal command) git, GitHub commands are NOT typed in a terminal, but are -typically invoked by hitting a button on the web interface, or clicking on a webpage link etc. To contribute edits to MITgcm, -you need to obtain a github account. It’s free; do this first if you don’t have one already. +typically invoked by hitting a button on the web interface, or clicking on a webpage link etc. + +To contribute edits to MITgcm, +**the first step is to obtain a GitHub account**, if you have not done so already; it’s free. Second, as a 'developer' you will need to +`authenticate `_ +your terminal command line sessions in GitHub. There are two ways this can be done, either using +`ssh keys `_ +or via a `personal access token `_. +A personal access token functions similar to a password; ssh keys require some upfront configuration +(`generating the key `_ +and then `adding to your Github account `_), +but most developers prefer the ease of this approach once it is set up. Before you start working with git, make sure you identify yourself. From your terminal, type: @@ -164,7 +195,7 @@ advanced features of Git will likely pay off in the long run, and not just for M as you are likely to encounter it in all sorts of different projects. To better understand this process, :numref:`git_setup` shows a conceptual map of the Git setup. Note three copies of the code: -the main MITgcm repository sourcecode “upstream” (i.e., owned by the MITgcm maintainers) in the GitHub cloud, a copy of the +the main MITgcm repository sourcecode “upstream” (i.e., owned by the MITgcm head developers) in the GitHub cloud, a copy of the repository “origin” owned by you, also residing in the GitHub cloud, and a local copy on your personal computer or compute cluster (where you intend to compile and run). The Git and GitHub commands to create this setup are explained more fully below. @@ -196,19 +227,28 @@ A detailed explanation of steps for contributing MITgcm repository edits: from the main repository (https://github.com/MITgcm/MITgcm) hit the **Fork** button. As mentioned, your GitHub copy “origin” is necessary to streamline the collaborative development process -- you need to create a place for your edits in the GitHub cloud, -for developers to peruse. +for developers to peruse. (Note: this step is only necessary the first time you contribute a pull request, +as this forked copy will remain permanently in your Github space.) **2.** Download the code onto your local computer using the git clone command. Even if you previously downloaded the code through a “git-aware” method (i.e., a git clone command, see :numref:`git-aware_download`), we **STRONGLY SUGGEST** you download a fresh repository, to a separate -disk location, for your development work (keeping your research work separate). Type: +disk location, for your development work (keeping your research work separate). +If you are using ssh keys for command line authentication (see above), in your terminal window type: + +:: + + % git clone git@github.com:«GITHUB_USERNAME»/MITgcm.git + +Alternatively, if you are using a personal access token for authentication: :: % git clone https://github.com/«GITHUB_USERNAME»/MITgcm.git -from your terminal (technically, here you are copying the forked “origin” + +(technically, here you are copying the forked “origin” version from the cloud, not the “upstream” version, but these will be identical at this point). **3.** Move into the local clone directory on your computer: @@ -268,17 +308,17 @@ or ‘bugfix’ (preferably, be even more descriptive) is helpful. only staged files will be sent. You can repeat this ``git add`` command as many times as you like and it will continue to augment the list of files. ``git diff`` and ``git status`` are useful commands to see what you have done so far. - use ``git commit`` to commit the files. This is the first step in bundling a collection of files together to be sent - off to the MITgcm maintainers. When you enter this command, an editor window will pop up. On the top line, type a succinct + off to the MITgcm head developers. When you enter this command, an editor window will pop up. On the top line, type a succinct (<70 character) summary of what these changes accomplished. If your commit is non-trivial and additional explanation is required, leave a blank line and then type a longer description of why the action in this commit was appropriate etc. It is good practice to link with known issues using the syntax ``#ISSUE_NUMBER`` in either the summary line or detailed comment. Note that all the changes do not have to be handled in a single commit (i.e. you can git add some files, do a commit, than continue anew by adding different files, do another commit etc.); the ``git commit`` command itself does - not (yet) submit anything to maintainers. + not (yet) submit anything to head developers. - if you are fixing a more involved bug or adding a new feature, such that many changes are required, it is preferable to break your contribution into multiple commits (each documented separately) rather than submitting one massive commit; each commit should encompass a single conceptual change to the code base, regardless of how many files it touches. - This will allow the MITgcm maintainers to more easily understand your proposed changes and will expedite the review process. + This will allow the MITgcm head developers to more easily understand your proposed changes and will expedite the review process. When your changes are tested and documented, continue on to step #6, but read all of step #6 and #7 before proceeding; you might want to do an optional “bring my development branch up to date” sequence of steps before step #6. @@ -305,7 +345,8 @@ when one of three things will occur: but git is not smart enough to know how to deal with this conflict (it will notify you of this problem during step #7). One option is to NOT attempt to bring your development code branch up to date, instead simply proceed with steps #6 and #7 and -let the maintainers assess and resolve any conflict(s), should such occur (there is a checkbox ‘Allow edits by maintainers’ +let the maintainers (i.e., the MITgcm head developers with merge priviledges) assess and resolve any conflict(s), +should such occur (there is a checkbox ‘Allow edits by maintainers’ that is checked by default when you do step #7). If very little time elapsed during step #5, such conflict is less likely. However, if step #5 takes on the order of months, we do suggest you follow this recipe below to update the code and merge yourself. And/or during the development process, you might have reasons to bring the latest changes in the main repo into your @@ -343,35 +384,41 @@ is ``git diff master``. Similarly, to see a combined list of both your changes a Aside comment: if you are familiar with git, you might realize there is an alternate way to merge, using the “rebase” syntax. If you know what you are doing, feel free to use this command instead of our suggested merge command above. -**7.** Finally create a “pull request” (a.k.a. “PR”; in other words, you are requesting that the maintainers pull your changes into the main code repository). +**7.** Finally create a “pull request” (a.k.a. “PR”; in other words, you are requesting that the +MITgcm head developers with merge privileges pull your changes into the main code repository). In GitHub, go to the fork of the project that you made (https://github.com/«GITHUB_USERNAME»/MITgcm.git). There is a button for "Compare and Pull" in your newly created branch. Click the button! Now you can add a final succinct summary description of what you've done in your commit(s), flag up any issues, and respond to the remaining questions on the PR template form. If you have made non-trivial changes to the code or documentation, we will note this in the MITgcm change log, :filelink:`doc/tag-index`. Please suggest how to note your -changes in :filelink:`doc/tag-index`; we will not accept the PR if this field is left blank. The maintainers will now be notified -and be able to peruse your changes! In general, the maintainers will try to respond to a new PR within -a week. While the PR remains open, you can go back to step #5 and make additional edits, git adds, -git commits, and then redo step #6; such changes will be added to the PR (and maintainers re-notified), no need to redo step #7. +changes in :filelink:`doc/tag-index`; we will not accept the PR if this field is left blank. +The MITgcm PR discussion team (in addition to the MITgcm head developers, a broader group of reviewers) will now be notified +and be able to peruse your changes! In general, the PR review team will try to respond to a new PR within a week or two. +While the PR remains open, you can go back to step #5 and make additional edits, git adds, +git commits, and then redo step #6; such changes will be added to the PR (and head developers re-notified), no need to redo step #7. -Your pull request remains open until either the maintainers fully accept and +Your pull request remains open until either the MITgcm head developers with merge privileges fully accept and merge your code changes into the main repository, or decide to reject your changes. Occasionally, the review team will reject changes that are not sufficiently aligned with and do not fit with the code structure; -the review team is always happy to discuss their decisions, but wants to +the review team is always happy to discuss their decision, but want to avoid people investing extensive additional effort in code that has a fundamental design flaw. But much more likely than outright rejection, you will instead be asked to respond to feedback, modify your code changes in some way, and/or clean up your code to better satisfy our style requirements, etc., and the pull request will remain open. -In some cases, the maintainers might take initiative to make some changes to your pull request +In some cases, the head developers might take initiative to make some changes to your pull request (such changes can then be incorporated back into your local branch simply by typing ``git pull`` from your branch), but more typically you will be asked to undertake the majority of the necessary changes. +Note we **strongly** suggest opening an `issue `_ +on GitHub to discuss any proposed contributions beforehand. -It is possible for other users (besides the maintainers) to examine +It is possible for other users (besides the PR review team) to examine or even download your pull request; see :ref:`sec_pullreq`. -The current review team is Jean-Michel Campin, Ed Doddridge, Chris -Hill, Oliver Jahn, and Jeff Scott. +The current pull request discussion and review team is Jean-Michel Campin, +Ed Doddridge, Chris Hill, Oliver Jahn, Jon Lauderdale, +Martin Losch, Jeff Scott, Timothy Smith, and Ou Wang. Please feel free +to contact anyone on this team with questions about a proposed pull request. .. _sec_code_style_guide: @@ -981,7 +1028,7 @@ On a daily basis, MITgcm runs a full suite of :filelink:`testreport `_ runs additional tests on your PR submission. +`GitHub Actions `_ runs additional tests on your PR submission. On the ‘Pull request’ tab in GitHub (https://github.com/MITgcm/MITgcm/pulls), find your pull request; initially you will see a yellow circle to the right of your PR title, indicating testing in progress. Eventually this will change to a green checkmark (pass) or a red X (fail). If you get a red X, click the X and then click on ‘Details’ to list specifics tests that failed; these can be clicked to produce a screenshot with error messages. -Note that `Travis-CI `_ builds documentation (both html and latex) in addition to code testing, so if you have +Note that `GitHub Actions `_ builds documentation (both html and latex) in addition to code testing, so if you have introduced syntax errors into the documentation files, these will be flagged at this stage. Follow the same procedure as above to identify the error messages so the problem(s) can be fixed. Make any appropriate edits to your pull request, re-``git add`` and re-``git commit`` any newly modified files, re-``git push``. Anytime changes are pushed to the PR, -`Travis-CI `_ will re-run its tests. +`GitHub Actions `_ will re-run its tests. -The maintainers will not review your PR until all `Travis-CI `_ tests pass. +The MITgcm head developers will not review your PR until all `GitHub Actions `_ tests pass. .. _contrib_manual: @@ -1094,6 +1141,7 @@ requiring an html format build, or downloaded as a pdf file. When you have completed your documentation edits, you should double check both versions are to your satisfaction, particularly noting that figure sizing and placement may be rendered differently in the pdf build. +See :ref:`building_the_manual` for detail. Section headings ---------------- @@ -1403,15 +1451,22 @@ The backslash removes the space between the unit and the exponent. Similarly, fo Alternatively, latex ``:math:`` directives (see :ref:`above `) may also be used to display units, using the ``\text{}`` syntax to display non-italic characters. +Line length: as recommended in the +`sphinx style guide `_, +lines of raw rst text should be kept to fewer than 80 characters (this +restriction does not apply to tables, URLs, etc. where a line break might +cause difficulty). + - Todo: determine how to break up sections into smaller files -- discuss | lines +.. _building_the_manual: Building the manual ------------------- -Once you've made your changes to the manual, you should build it locally to verify that it works as expected. -To do this you will need a working python installation with the following packages installed: +Once you've made your changes to the manual, you should build it locally to +verify that it works as expected. To do this you will need a working python +installation with the following packages installed: - sphinx - sphinxcontrib-bibtex @@ -1419,27 +1474,42 @@ To do this you will need a working python installation with the following packag - sphinx_rtd_theme - numpy -There are many tools available to create a python environment with these packages on your local machine (e.g., using ``pip install``) -and if you are comfortable doing so on your own, go ahead. Note that as of this writing (December 2020), sphinxcontrib-bibtex versions -2.0.0 and higher are not supported (we suggest using version 1.0.0). - -However, if you are new to python, or less experienced, we suggest the following steps: - -#. Get miniforge from https://github.com/conda-forge/miniforge/#download (for linux, win, or mac). Follow the instructions - to run the installer from a terminal window. Make sure to say "yes" when it asks to initialize Miniforge3 -- that way - you can use it right away. This is a minimal anaconda with conda-forge already set as default. -#. Install MITgcm doc requirements: +These packages can be installed from the Python Package Index using pip. If you +have an existing python installation using `Anaconda +`_ or one of its variants (e.g., `miniconda +`_), we recommend that you can +create (and use) a clean environment with the required packages like this: :: cd MITgcm - conda install --file doc/requirements.txt - -Once these modules are installed you can build the html version of the manual by running ``make html`` in the ``doc`` directory. - -To build the pdf version of the manual you will also need a working version of LaTeX that includes -`several packages `_ that are -not always found in minimal LaTeX installations. The command to build the pdf version is ``make latexpdf``, which should also be run in the ``doc`` directory. + conda create --name mitgcm_build_the_docs --channel conda-forge --file doc/requirements.txt + conda activate mitgcm_build_the_docs + [...] # do the work + conda deactivate + +If you don't yet have a python installation on your computer, we recommend +following the `Anaconda installation procedure +`_, then following the +recipe above. You do not need to learn python to build the manual; just note +you should type ``conda activate mitgcm_build_the_docs`` in a shell when +starting up a manual editing session, and ``conda deactivate`` when you finish +(also note you only need to perform the ``conda create ...`` step above when +you **initially** follow the recipe). This will maintain a clean, separate +python `virtual environment +`_ +for manual compilation and won't interfere with your python setup should you +decide to learn python in the future. + +Once these modules are installed you can build the html version of the manual +by running ``make html`` in the ``doc`` directory. + +To build the pdf version of the manual you will also need a working version of +LaTeX that includes `several packages +`_ +that are not always found in minimal LaTeX installations. The command to build +the pdf version is ``make latexpdf``, which should also be run in the ``doc`` +directory. .. _sec_pullreq: @@ -1464,14 +1534,21 @@ pull request (as labeled by the pull request number), then click on "View docs" on the right side). Finally, if you want to test pull requests locally (i.e., to compile or run the code), -you should download the pull request branch. You can do this either by cloning the branch from the pull request: +you should download the pull request branch. You can do this either by cloning the branch from the pull request. +If you are using ssh keys for command line authentication: + +:: + + git clone -b «THEIR_DEVELOPMENT_BRANCHNAME» git@github.com:«THEIR_GITHUB_USERNAME»/MITgcm.git + +If you are using a personal access token for authentication: :: git clone -b «THEIR_DEVELOPMENT_BRANCHNAME» https://github.com/«THEIR_GITHUB_USERNAME»/MITgcm.git where «THEIR_GITHUB_USERNAME» is replaced by the username of the person proposing the pull request, -and «THEIR_DEVELOPMENT_BRANCHNAME» is the branch from the pull request. +and «THEIR_DEVELOPMENT_BRANCHNAME» is the branch from their pull request. Alternatively, you can add the repository of the user proposing the pull request as a remote to your existing local repository. Navigate to your local repository and type diff --git a/doc/examples/advection_in_gyre/advection_in_gyre.rst b/doc/examples/advection_in_gyre/advection_in_gyre.rst index 42cedef0ed..0eb543af6a 100644 --- a/doc/examples/advection_in_gyre/advection_in_gyre.rst +++ b/doc/examples/advection_in_gyre/advection_in_gyre.rst @@ -43,10 +43,10 @@ Advection and tracer transport In general, the tracer problem we want to solve can be written .. math:: - \frac{\partial C}{\partial t} = -U \cdot \nabla C + S + \frac{\partial C}{\partial t} = -\vec{\bf U} \cdot \nabla C + S :label: eg-adv-gyre-generic-tracer -where :math:`C` is the tracer concentration in a model cell, :math:`U=(u,v,w)` +where :math:`C` is the tracer concentration in a model cell, :math:`\vec{\bf U}=(u,v,w)` is the model 3-D flow field. In :eq:`eg-adv-gyre-generic-tracer`, :math:`S` represents source, sink and tendency terms not associated with advective transport. @@ -57,7 +57,7 @@ of mixing. In this section we are primarily concerned with #. how to introduce the tracer term, :math:`C`, into an integration -#. the different discretized forms of the :math:`-U \cdot \nabla C` term +#. the different discretized forms of the :math:`-\vec{\bf U} \cdot \nabla C` term that are available Introducing a tracer into the flow diff --git a/doc/examples/baroclinic_gyre/baroclinic_gyre.rst b/doc/examples/baroclinic_gyre/baroclinic_gyre.rst index 46fb3814bd..613dd3ec1c 100644 --- a/doc/examples/baroclinic_gyre/baroclinic_gyre.rst +++ b/doc/examples/baroclinic_gyre/baroclinic_gyre.rst @@ -7,8 +7,9 @@ Baroclinic Ocean Gyre (in directory: :filelink:`verification/tutorial_baroclinic_gyre`) This section describes an example experiment using MITgcm to simulate a -baroclinic, wind and buoyancy-forced, double-gyre ocean circulation. Unlike tutorial barotropic gyre, -which used a Cartesian grid and a single vertical layer, here the grid employs spherical polar coordinates with 15 vertical layers. +baroclinic, wind and buoyancy-forced, double-gyre ocean circulation. Unlike tutorial +:ref:`Barotropic Ocean Gyre `, which used a Cartesian grid and a single vertical +layer, here the grid employs spherical polar coordinates with 15 vertical layers. The configuration is similar to the double-gyre setup first solved numerically in Cox and Bryan (1984) :cite:`cox:84`: the model is configured to represent an enclosed sector of fluid on a sphere, spanning the tropics to mid-latitudes, @@ -70,10 +71,10 @@ Temperature is restored in the surface layer to a linear profile: .. math:: {\cal F}_\theta = - \frac{1}{\tau_{\theta}} (\theta-\theta^*), \phantom{WWW} - \theta^* = \frac{\theta_{max} - \theta_{min}}{L_\varphi} (\varphi - \varphi_o) + \theta^* = \frac{\theta_{\rm max} - \theta_{\rm min}}{L_\varphi} (\varphi - \varphi_o) :label: baroc_restore_theta -where the relaxation timescale :math:`\tau_{\theta} = 30` days and :math:`\theta_{max}=30^{\circ}` C, :math:`\theta_{min}=0^{\circ}` C. +where the relaxation timescale :math:`\tau_{\theta} = 30` days and :math:`\theta_{\rm max}=30^{\circ}` C, :math:`\theta_{\rm min}=0^{\circ}` C. .. _baroc_eq_solved: @@ -97,14 +98,14 @@ coordinates as follows: .. math:: \frac{Du}{Dt} - fv -\frac{uv}{a}\tan{\varphi} + \frac{1}{\rho_c a \cos{\varphi}}\frac{\partial p^{\prime}}{\partial \lambda} + - \nabla_{h} \cdot (-A_{h}\nabla_{h} u) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial u}{\partial z} \right) + \nabla _h \cdot (-A_{h} \nabla _h u) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial u}{\partial z} \right) = \mathcal{F}_u :label: baroc_gyre_umom .. math:: \frac{Dv}{Dt} + fu + \frac{u^2}{a}\tan{\varphi} + \frac{1}{\rho_c a}\frac{\partial p^{\prime}}{\partial \varphi} + - \nabla_{h} \cdot (-A_{h}\nabla_{h} v) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial v}{\partial z} \right) + \nabla _h \cdot (-A_{h} \nabla _h v) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial v}{\partial z} \right) = \mathcal{F}_v :label: baroc_gyre_vmom @@ -114,7 +115,7 @@ coordinates as follows: :label: baroc_gyre_cont .. math:: - \frac{D\theta}{Dt} + \nabla_{h} \cdot (-\kappa_{h}\nabla_{h} \theta) + \frac{D\theta}{Dt} + \nabla _h \cdot (-\kappa_{h} \nabla _h \theta) + \frac{\partial}{\partial z} \left( -\kappa_{z}\frac{\partial \theta}{\partial z} \right) = \mathcal{F}_\theta :label: barooc_gyre_theta @@ -143,7 +144,7 @@ The forcing terms :math:`\mathcal{F}_u`, :math:`\mathcal{F}_v`, and :math:`\math applied as source terms in the model surface layer and are zero in the interior. The windstress forcing, :math:`{\mathcal F}_u` and :math:`{\mathcal F}_v`, is applied in the zonal and meridional momentum -equations, respectively; in this configuration, :math:`\mathcal{F}_u = \frac{\tau_x}{\rho_c\Delta z_s}` +equations, respectively; in this configuration, :math:`\mathcal{F}_u = \tau_x / (\rho_c\Delta z_s)` (where :math:`\Delta z_s` is the depth of the surface model gridcell), and :math:`\mathcal{F}_v = 0`. Similarly, :math:`\mathcal{F}_\theta` is applied in the temperature equation, as given by :eq:`baroc_restore_theta`. @@ -156,8 +157,7 @@ MITgcm parameter :varlink:`gBaro` whereas in the seond term :math:`g` is paramet allowing for different gravity constants here is useful, for example, if one wanted to slow down external gravity waves. In the momentum equations, lateral and vertical boundary conditions for -the :math:`\nabla_{h}^{2}` and -:math:`\frac{\partial^{2}}{\partial z^{2}}` operators are specified in the +the :math:`\nabla_{h}^{2}` and :math:`\partial_z^2` operators are specified in the runtime configuration - see :numref:`sec_eg_baroclinic_code_config`. For temperature, the boundary condition along the bottom and sidewalls is zero-flux. @@ -192,8 +192,8 @@ temperature equation. Prognostic terms in the momentum equations are solved using flux form as described in :numref:`flux-form_momentum_equations`. The pressure forces that drive -the fluid motions, :math:`\frac{\partial p^{'}}{\partial \lambda}` -and :math:`\frac{\partial p^{'}}{\partial \varphi}`, are found by +the fluid motions, :math:`\partial_{\lambda} p^\prime` +and :math:`\partial_{\varphi} p^\prime`, are found by summing pressure due to surface elevation :math:`\eta` and the hydrostatic pressure, as discussed in :numref:`baroc_eq_solved`. The hydrostatic part of the pressure is @@ -213,25 +213,25 @@ in the grid :math:`\Delta x` spacing. In order to choose an appropriate time step, note that our smallest gridcells (i.e., in the far north) have :math:`\Delta x \approx 29` km, which is similar to our grid spacing in tutorial :ref:`Barotropic Ocean Gyre `. Thus, using the advective -CFL condition, first assuming our solution will achieve maximum horizontal advection :math:`|c_{max}|` ~ 1 ms\ :sup:`-1`) +CFL condition, first assuming our solution will achieve maximum horizontal advection :math:`|c_{\rm max}|` ~ 1 ms\ :sup:`-1`) .. math:: - S_{a} = 2 \left( \frac{ |c_{max}| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} + S_{\rm adv} = 2 \left( \frac{ |c_{\rm max}| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} :label: eq_baroc_cfl_stability we choose the same time step as in tutorial :ref:`Barotropic Ocean Gyre `, -:math:`\Delta t` = 1200 s (= 20 minutes), resulting in :math:`S_{a} = 0.08`. +:math:`\Delta t` = 1200 s (= 20 minutes), resulting in :math:`S_{\rm adv} = 0.08`. Also note this time step is stable for propagation of internal gravity waves: approximating the propagation speed as :math:`\sqrt{g' h}` where :math:`g'` is reduced gravity (our maximum :math:`\Delta \rho` using our linear equation of state is :math:`\rho_{0} \alpha_{\theta} \Delta \theta = 6` kg/m\ :sup:`3`) and :math:`h` is the upper layer depth -(we'll assume 150 m), produces an estimated propagation speed generally less than :math:`|c_{max}| = 3` ms\ :sup:`--1` +(we'll assume 150 m), produces an estimated propagation speed generally less than :math:`|c_{\rm max}| = 3` ms\ :sup:`--1` (see Adcroft 1995 :cite:`adcroft:95` or Gill 1982 :cite:`gill:82`), thus still comfortably below the threshold. Using our chosen value of :math:`\Delta t`, numerical stability for inertial oscillations using Adams-Bashforth II .. math:: - S_{i} = f {\Delta t} < 0.5 \text{ for stability} + S_{\rm inert} = f {\Delta t} < 0.5 \text{ for stability} :label: eq_baroc_inertial_stability evaluates to 0.17 for the largest :math:`f` value in our domain (:math:`1.4\times10^{-4}` s\ :sup:`--1`), @@ -241,7 +241,7 @@ To choose a horizontal Laplacian eddy viscosity :math:`A_{h}`, note that the lar value in our domain (i.e., in the south) is :math:`\approx 110` km. With the Munk boundary width as follows, .. math:: - M_{w} = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right) ^{\frac{1}{3}} + M = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right) ^{\frac{1}{3}} :label: baroc_munk_layer in order to to have a well resolved boundary current in the subtropical gyre we will set @@ -253,7 +253,7 @@ tutorial :ref:`Barotropic Ocean Gyre `, let's re-examine the stability of horizontal Laplacian friction: .. math:: - S_{lh} = 2 \left( 4 \frac{A_{h} \Delta t}{{\Delta x}^2} \right) < 0.6 \text{ for stability} + S_{\rm Lh} = 2 \left( 4 \frac{A_{h} \Delta t}{{\Delta x}^2} \right) < 0.6 \text{ for stability} :label: baroc_laplacian_stability evaluates to 0.057 for our smallest :math:`\Delta x`, which is below the stability threshold. @@ -263,7 +263,7 @@ Note this same stability test also applies to horizontal Laplacian diffusion of Finally, stability of vertical diffusion of momentum: .. math:: - S_{lv} = 4 \frac{A_{v} \Delta t}{{\Delta z}^2} < 0.6 \text{ for stability} + S_{\rm Lv} = 4 \frac{A_{v} \Delta t}{{\Delta z}^2} < 0.6 \text{ for stability} :label: baroc_laplacian_v_stability Here we will choose :math:`A_{v} = 1\times10^{-2}` m\ :sup:`2` s\ :sup:`--1`, @@ -484,7 +484,7 @@ PARM01 - Continuous equation parameters Note a list of :varlink:`Nr` (=15, from :filelink:`SIZE.h `) potential temperature values in :sup:`o`\ C is specified for parameter :varlink:`tRef`, ordered from surface to depth. :varlink:`tRef` is used for two purposes here. - First, anomalies in density are computed using this reference :math:`\theta`, :math:`\theta'(x,y,z) = \theta(x,y,z) - \theta_{ref}(z)`; + First, anomalies in density are computed using this reference :math:`\theta`, :math:`\theta'(x,y,z) = \theta(x,y,z) - \theta_{\rm ref}(z)`; see use in :eq:`rho_lineareos` and :eq:`rhoprime_lineareos`. Second, the model will use these reference temperatures for its initial state, as we are not providing a pickup file nor specifying an initial temperature hydrographic file (in later tutorials we will demonstrate how to do so). @@ -678,10 +678,17 @@ output files for :filelink:`pkg/monitor` output, but rather to include this moni (see :numref:`baro_gyre_build_run`). See :numref:`pkg_mnc_inputs` for a complete listing of :filelink:`pkg/mnc` namelist parameters and their default settings. -Note that unlike raw binary output, which overwrites any existing files, when using mnc output the model will create new directories if the parameters -:varlink:`mnc_use_outdir` and :varlink:`mnc_outdir_str` are set. However, if those parameters are not set the model will terminate with an error if one attempts -to overwrite an existing file (i.e., if re-running in a previous -run directory, one needs to delete all ``*.nc`` files before restarting). +Unlike raw binary output, which overwrites any existing files, when using mnc output the model will create new directories if the parameters +:varlink:`mnc_use_outdir` and :varlink:`mnc_outdir_str` are set, as above; the model will append a 4-digit number to :varlink:`mnc_outdir_str`, +starting at 0001, incrementing as needed if existing directories already exist. +If these parameters are NOT set, the model will terminate with an error if one attempts +to overwrite an existing ``.nc`` file (in other words, to re-run in an previous run directory, +one must delete all ``*.nc`` files before restarting). Note that our subdirectory name choice ``mnc_test_`` is required +by :ref:`MITgcm automated testing ` protocols, and can be changed to something more mnemonic, if desired. + +In general, it is good practice to write diagnostic output into subdirectories, to keep the top run directory +less "cluttered"; some unix file systems do not respond well when very large numbers of files are produced, which can +occur in setups divided into many tiles and/or when many diagnostics are selected for output. .. _baroc_diags_list: @@ -782,14 +789,16 @@ Files ``input/bathy.bin``, ``input/windx_cosy.bin`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The purpose and format of these files is similar to tutorial :ref:`Barotropic Ocean Gyre `, -and were generated by matlab script :filelink:`verification/tutorial_baroclinic_gyre/input/gendata.m`. +and were generated by matlab script :filelink:`verification/tutorial_baroclinic_gyre/input/gendata.m` +(alternatively, python script :filelink:`gendata.py `). See :numref:`sec_mitgcm_inp_file_format` for additional information on MITgcm input data file format specifications. File ``input/SST_relax.bin`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This file specifies a 2-D(:math:`x,y`) map of surface relaxation temperature values, -as generated by :filelink:`verification/tutorial_baroclinic_gyre/input/gendata.m`. +as generated by :filelink:`verification/tutorial_baroclinic_gyre/input/gendata.m` or +:filelink:`gendata.py `. .. _building_tutorial_baroc: @@ -835,8 +844,11 @@ will greatly reduce the number of files. On the other hand, the `netCDF `_ files created can instead become quite large. To more easily process and plot our results as a single array over the full domain, -we will first reassemble the individual tiles into a new `netCDF `_ format global data file. -To accomplish this, we will make use of utility script :filelink:`utils/python/MITgcmutils/scripts/gluemncbig`. From the output run directory, type: +we will first reassemble the individual tiles into new `netCDF `_ format global data files. +To accomplish this, we will make use of utility script :filelink:`utils/python/MITgcmutils/scripts/gluemncbig`. +From the output run (top) directory, type: + +.. _baroc_gluemnc_steps: :: @@ -847,10 +859,18 @@ To accomplish this, we will make use of utility script :filelink:`utils/python/M % ./gluemncbig -o surfDiag.nc mnc_test_*/surfDiag*.t*.nc % ./gluemncbig -o phiHyd.nc mnc_test_*/phiHyd*.t*.nc % ./gluemncbig -o phiHydLow.nc mnc_test_*/phiHydLow*.t*.nc + % ln -s mnc_test_0001/dynStDiag.0000000000.t001.nc dynStDiag.nc -For help using this utility, type ``gluemncbig --help``; note a python installation must for available for this script to work. +For help using this utility, type ``gluemncbig --help`` (note, this utility requires python). The files ``grid.nc``, ``state.nc``, etc. are concatenated from the separate ``t001``, ``t002``, ``t003``, ``t004`` files -into global grid files of horizontal dimension 62\ :math:`\times`\ 62. +into global grid files of horizontal dimension 62\ :math:`\times`\ 62. ``gluemncbig`` is a fairly intelligent script, and by inserting the wildcards +in the path/filename specification, it will grab the most recent run (in case you have started up runs multiple times in this directory, +thus having ``mnc_test_0001``, ``mnc_test_0002``, etc. directories present; see :numref:`baroc_datamnc`). +Note that the last line above is simply making +a link to a file in the ``mnc_test_0001`` output subdirectory; this is the :ref:`statistical-dynamical diagnostics ` +output, which is already assembled over the global domain (and also note here we are required to be specific which ``mnc_test_`` directory to link from). +For convenience we simply place the link at the top level +of the run directory, where the other assembled ``.nc`` files are saved by ``gluemncbig``. Let's proceed through the netcdf output that is produced. @@ -887,6 +907,14 @@ Let's proceed through the netcdf output that is produced. we specified in list 2 of :ref:`data.diagnostics `: ``THETA``, ``PHIHYD``, ``UVEL``, ``VVEL``, ``WVEL``. + - ``dynStDiag.nc`` - includes output statistical-dynamical diagnostics as specified in the ``DIAG_STATIS_PARMS`` section of + :filelink:`data.diagnostics `. Like ``surfDiag.nc`` it also + includes an array of model times and corresponding iteration numbers for each time-average period end. Output variables are 3-D: + (time, region, depth). In :filelink:`data.diagnostics `, + we have not defined any additional regions (and by default only global output is produced, "region 1"). Depth-integrated statistics + are computed (in which case the depth subscript has a range of one element; this is also the case for surface diagnostics such as ``TRELAX``), + but output is also tabulated at each depth for some variables (i.e., the depth subscript will range from 1 to :varlink:`Nr`). + - ``phiHyd.nc``, ``phiHydLow.nc`` - these files contain a snapshot 3-D field of hydrostatic pressure potential anomaly (:math:`p'/\rho_c`, see :numref:`finding_the_pressure_field`) and a snapshot 2-D field of bottom hydrostatic pressure potential anomaly, respectively. @@ -911,7 +939,7 @@ Several additional files are output in standard binary format. These are: ``RhoRef.data, RhoRef.meta`` - this is a 1-D (k=1...\ :varlink:`Nr`) array of reference density, defined as: -.. math:: \rho_{ref}(k) = \rho_0 \left( 1 - \alpha_{\theta} (\theta_{ref}(k) - \theta_{ref}(1)) \right) +.. math:: \rho_{\rm ref}(k) = \rho_0 \big[ 1 - \alpha_{\theta} (\theta_{\rm ref}(k) - \theta_{\rm ref}(1)) \big] ``PHrefC.data, PHrefC.meta, PHrefF.data, PHrefF.meta`` - these are 1-D (k=1...\ :varlink:`Nr` for PHrefC and k=1...\ :varlink:`Nr`\ +1 for PHrefF) arrays containing a reference @@ -932,7 +960,7 @@ And finally, because we are using the diagnostics package, upon startup the file will be generated. This (plain text) file contains a list of all diagnostics available for output in this setup, including a description of each diagnostic and its units, and the number of levels for which the diagnostic is available (i.e., 2-D or 3-D field). This list of available diagnostics will change based on what packages are included in the setup. For example, if your setup includes a seaice package, many seaice diagnostics -will be listed in ``available_diagnostics.log`` that are not available for our :ref:`tutorial Baroclinic Gyre ` setup. +will be listed in ``available_diagnostics.log`` that are not available for the :ref:`tutorial Baroclinic Gyre ` setup. .. _baroc_mpi: @@ -957,7 +985,7 @@ A successful build requires MPI libraries installed on your system, and you may and/or set environment variable ``$MPI_INC_DIR`` (for more details, see :numref:`build_mpi`). If there is a problem finding `MPI `_ libraries, :filelink:`genmake2 ` output will complain. -Several lines in :filelink:`verification/tutorial_barotropic_gyre/code/SIZE.h_mpi` are different from the standard version. +Several lines in :filelink:`verification/tutorial_baroclinic_gyre/code/SIZE.h_mpi` are different from the standard version. First, we change :varlink:`nSx` and :varlink:`nSy` to 1, so that each process integrates the model for a single tile. .. literalinclude:: ../../../verification/tutorial_baroclinic_gyre/code/SIZE.h_mpi @@ -986,14 +1014,23 @@ Finally, to run the model (from your run directory), using four processes runnin On some systems the `MPI `_ run command (and the subsequent command-line option ``-np``) might be something other than ``mpirun``; ask your local system administrator. When using a large `HPC `_ cluster, -prior steps might be required to allocate four processors to your job, and/or it might be necessary to +prior steps might be required to allocate four processor cores to your job, and/or it might be necessary to write this command within a batch scheduler script; again, check with your local system documentation or system administrator. -If four processors are not available when you execute the above ``mpirun`` command, an error will occur. -It is no longer necessary to redirect standard output +If four cores are not available when you execute the above ``mpirun`` command, an error will occur. + +When running in parallel, :filelink:`pkg/mnc` output will create separate output subdirectories for each +process, assuming option :varlink:`mnc_use_outdir` +is set to ``TRUE`` (here, by specifying ``-np 4`` four directories will be created, one for each +tile -- ``mnc_test_00001`` through ``mnc_test_00004`` -- the first time +the model is run). The (global) statistical-dynamical diagnostics output file will be written in only the first of these directories. +The ``gluemncbig`` steps outlined :ref:`above ` remain unchanged (if in doubt, one can always +tell ``gluemncbig`` which specific directories to read, +e.g., in bash ``mnc_test_{0009..0012}`` will grab only directories 0009, 0010, 0011, 0012). +Also note it is no longer necessary to redirect standard output to a file such as ``output.txt``; rather, separate ``STDOUT.xxxx`` and ``STDERR.xxxx`` files are created by each process, where ``xxxx`` is the process number (starting from ``0000``). -Other than some additional `MPI `_-related information, the standard output content is identical to -that from the single-process run. +Other than some additional `MPI `_-related information, +the standard output content is similar to that from the single-process run. .. _baroc_openmp: @@ -1058,14 +1095,18 @@ to do so in matlab (reading in files using :filelink:`utils/matlab/rdmds.m`), o One additional difference between :filelink:`pkg/msdio` and :filelink:`pkg/mnc` is that :ref:`Diagnostics Per Level Statistics ` are written in plain text, not binary, with :filelink:`pkg/msdio`. +.. _baroclinic_gyre_solution: + Model solution -------------- In this section, we will examine details of the model solution, -using annual mean time average data provided in diagnostics files ``dynStDiag.nc``, ``dynDiag.nc``, and ``surfDiag.nc``. -See companion :filelink:`matlab file ` -or :filelink:`python file ` -which shows example code to create figures plotted in this section. +using monthly and annual mean time average data provided in diagnostics files ``dynStDiag.nc``, ``dynDiag.nc``, and ``surfDiag.nc``. +See companion :filelink:`matlab ` +or :filelink:`python ` +(or :filelink:`python using xarray `) +script which shows the code to read output `netCDF `_ files +and create figures shown in this section. Our ocean sector model is forced mechanically by wind stress and thermodynamically though temperature relaxation at the surface. As such, @@ -1112,7 +1153,8 @@ integrate the solution further and/or examine and calculate the meridional overt :alt: baroclinic gyre surface heat flux :name: baroclinic_gyre_trelax_timeseries - a\) Surface heat flux due to temperature restoring, negative values indicate heat flux out of the ocean; b) and c) potential temperature mean and standard deviation by level, respectively. + a\) Surface heat flux due to temperature restoring, negative values indicate heat flux out of the ocean; + b) and c) potential temperature mean and standard deviation by level, respectively. Next, let's examine the effect of wind stress on the ocean's upper layers. Given the orientation of the wind stress and its variation over a full sine wave as shown in :numref:`baroclinic_gyre_config` @@ -1122,7 +1164,7 @@ Let's begin by examining the free surface solution (load diagnostics ``ETAN`` an In :numref:`baroclinic_gyre_trelax_freesurface` we show contours of free surface height (``ETAN``; this is what we plotted in our :ref:`barotropic gyre tutorial solution `) overlaying a 2-D color plot of ``TRELAX`` -(red is where heat is released from the ocean, blue where heat enters the ocean), averaged over year 100. +(blue is where heat is released from the ocean, red where heat enters the ocean), averaged over year 100. Note that a subtropical gyre is readily apparent, as suggested by geostropic currents in balance with the free surface elevation (not shown, but the reader is encouraged to load diagnostics ``UVEL`` and ``VVEL`` and plot the circulation at various levels). Heat is entering the ocean mainly along the southern boundary, @@ -1135,28 +1177,29 @@ where deeper mixed layers occur (not shown, but variations in mixed layer depth can be easily visualized by loading diagnostic ``MXLDEPTH``). .. figure:: figs/trelax_freesurface.png - :width: 100% + :width: 80% :align: center :alt: baroclinic gyre free surface and relaxation :name: baroclinic_gyre_trelax_freesurface - Contours of free surface height (m) averaged over year 100; shading is surface heat flux due to temperature restoring (W/m\ :sup:`2`), blue indicating cooling. + Contours of free surface height (m) averaged over year 100; shading is surface heat flux due to + temperature restoring (W/m\ :sup:`2`), blue indicating cooling. -So what happened to our model solution subpolar gyre? Let's compute depth-integrated velocity :math:`U_{bt}, V_{bt}` +So what happened to our model solution subpolar gyre? Let's compute depth-integrated velocity :math:`U_{\rm bt}, V_{\rm bt}` (units: m\ :sup:`2` s\ :sup:`-1`) and use it calculate the barotropic transport streamfunction: -.. math:: U_{bt} = - \frac{\partial \Psi}{\partial y}, \phantom{WW} V_{bt} = \frac{\partial \Psi}{\partial x} +.. math:: U_{\rm bt} = - \frac{\partial \Psi}{\partial y}, \phantom{WW} V_{\rm bt} = \frac{\partial \Psi}{\partial x} -Compute :math:`U_{bt}` by summing the diagnostic ``UVEL`` multiplied by gridcell depth +Compute :math:`U_{\rm bt}` by summing the diagnostic ``UVEL`` multiplied by gridcell depth (``grid.nc`` variable :varlink:`drF`, i.e., the separation between gridcell faces in the vertical). Now do a cumulative sum of -:math:`-U_{bt}` times the gridcell spacing the in the :math:`y` direction (you +:math:`-U_{\rm bt}` times the gridcell spacing the in the :math:`y` direction (you will need to load ``grid.nc`` variable :varlink:`dyG`, the separation between gridcell faces in :math:`y`). A plot of the resulting :math:`\Psi` field is shown in :numref:`baroclinic_gyre_psi`. -Note one could also cumulative sum :math:`V_{bt}` times the grid spacing in the :math:`x`-direction and obtain a similar result. +Note one could also cumulative sum :math:`V_{\rm bt}` times the grid spacing in the :math:`x`-direction and obtain a similar result. .. figure:: figs/baroc_psi.png - :width: 75% + :width: 80% :align: center :alt: baroclinic gyre barotropic streamfunction :name: baroclinic_gyre_psi @@ -1171,10 +1214,10 @@ from tutorial :ref:`sec_eg_baro`, when our model grid was only a single layer in Is the magnitude of :math:`\Psi` we obtain in our solution reasonable? To check this, consider the Sverdrup transport: -.. math:: \rho v_{bt} = \hat{k} \cdot \frac{\nabla \times \vec{\tau}}{\beta} +.. math:: \rho v_{\rm bt} = \hat{\boldsymbol{k}} \cdot \frac{ \nabla \times \vec{\boldsymbol{\tau}}}{\beta} If we plug in a typical mid-latitude value for :math:`\beta` (:math:`2 \times 10^{-11}` m\ :sup:`-1` s\ :sup:`-1`) -and note that :math:`\tau` varies by :math:`0.1` Nm\ :sup:`-2` over :math:`15^{\circ}` latitude, +and note that :math:`\tau` varies by :math:`0.1` Nm\ :sup:`—2` over :math:`15^{\circ}` latitude, and multiply by the width of our ocean sector, we obtain an estimate of approximately 20 Sv. This estimate agrees reasonably well with the strength of the circulation in :numref:`baroclinic_gyre_psi`. @@ -1200,12 +1243,12 @@ the presence of a thermocline, i.e., the bunching up of the contours between 200 m and 400 m depth, with weak stratification below the thermocline. What sets the penetration depth of the subtropical gyre? Following a simple advective scaling argument (see Vallis (2017) :cite:`vallis:17` or Cushman-Roisin and Beckers (2011) :cite:`cushmanroisin:11`; -this is obtained via thermal wind and the linearized barotropic vorticity equation), +this scaling is obtained via thermal wind and the linearized barotropic vorticity equation), the depth of the thermocline :math:`h` should scale as: -.. math:: h = \left( \frac{w_e f^2 L_x}{\beta \Delta b} \right) ^2 = \left( \frac{(\tau / L_y) f L_x}{\beta \rho'} \right) ^2 +.. math:: h = \left( \frac{w_{\rm Ek} f^2 L_x}{\beta \Delta b} \right) ^2 = \left( \frac{(\tau / L_y) f L_x}{\beta \rho'} \right) ^2 -where :math:`w_e` is a representive value for Ekman pumping, :math:`\Delta b = g \rho' / \rho_0` +where :math:`w_{\rm Ek}` is a representive value for Ekman pumping, :math:`\Delta b = g \rho' / \rho_0` is the variation in buoyancy across the gyre, and :math:`L_x` and :math:`L_y` are length scales in the :math:`x` and :math:`y` directions, respectively. diff --git a/doc/examples/baroclinic_gyre/figs/baroc_psi.png b/doc/examples/baroclinic_gyre/figs/baroc_psi.png index 5a95094a25..bf3e20b269 100644 Binary files a/doc/examples/baroclinic_gyre/figs/baroc_psi.png and b/doc/examples/baroclinic_gyre/figs/baroc_psi.png differ diff --git a/doc/examples/baroclinic_gyre/figs/baroc_thetaplots.png b/doc/examples/baroclinic_gyre/figs/baroc_thetaplots.png index f6f8ce1166..453dc8b4a2 100644 Binary files a/doc/examples/baroclinic_gyre/figs/baroc_thetaplots.png and b/doc/examples/baroclinic_gyre/figs/baroc_thetaplots.png differ diff --git a/doc/examples/baroclinic_gyre/figs/trelax_freesurface.png b/doc/examples/baroclinic_gyre/figs/trelax_freesurface.png index 974a2edb04..342276805a 100644 Binary files a/doc/examples/baroclinic_gyre/figs/trelax_freesurface.png and b/doc/examples/baroclinic_gyre/figs/trelax_freesurface.png differ diff --git a/doc/examples/baroclinic_gyre/figs/trelax_theta_timeseries.png b/doc/examples/baroclinic_gyre/figs/trelax_theta_timeseries.png index bef7b3e3cb..abe768a851 100644 Binary files a/doc/examples/baroclinic_gyre/figs/trelax_theta_timeseries.png and b/doc/examples/baroclinic_gyre/figs/trelax_theta_timeseries.png differ diff --git a/doc/examples/barotropic_gyre/barotropic_gyre.rst b/doc/examples/barotropic_gyre/barotropic_gyre.rst index f55c40cef2..54b937f0e7 100644 --- a/doc/examples/barotropic_gyre/barotropic_gyre.rst +++ b/doc/examples/barotropic_gyre/barotropic_gyre.rst @@ -26,7 +26,7 @@ set to :math:`10^{-4}\text{s}^{-1}` and :math:`\beta = 10^{-11}\text{s}^{-1}\tex The sinusoidal wind-stress variations are defined according to .. math:: - \tau_x(y) = -\tau_{0}\cos(\pi \frac{y}{L_y}) + \tau_x(y) = -\tau_{0} \cos\left(\pi \frac{y}{L_y}\right) where :math:`L_{y}` is the lateral domain extent and :math:`\tau_0` is set to :math:`0.1 \text{N m}^{-2}`. @@ -62,12 +62,12 @@ equations for this configuration as follows: :label: baro_model_eq_v .. math:: - \frac{\partial \eta}{\partial t} + \nabla_{h}\cdot H \vec{u} + \frac{\partial \eta}{\partial t} + \nabla _{h}\cdot (H \vec{\bf u}) = 0 :label: baro_model_eq_eta where :math:`u` and :math:`v` are the :math:`x` and :math:`y` components of the -flow vector :math:`\vec{u}`, :math:`\eta` is the free surface height, +flow vector :math:`\vec{\bf u}`, :math:`\eta` is the free surface height, :math:`A_{h}` the horizontal Laplacian viscosity, :math:`\rho_{c}` is the fluid density, and :math:`g` the acceleration due to gravity. @@ -97,7 +97,7 @@ maximum horizontal flow speed is: .. math:: :label: eq_baro_cfl_stability - S_{a} = 2 \left( \frac{ |u| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} + S_{\rm adv} = 2 \left( \frac{ |u| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} The 2 factor on the left is because we have a 2-D problem (in contrast with the more familiar 1-D canonical stability analysis); the right hand side is 0.5 @@ -106,14 +106,14 @@ value of 1 that one would obtain using a forward Euler scheme. In our configuration, let’s assume our solution will achieve a maximum :math:`| u | = 1` ms\ :sup:`--1` (in reality, current speeds in our solution will be much smaller). To keep :math:`\Delta t` safely below the stability threshold, let’s choose :math:`\Delta t` = 1200 s (= 20 minutes), which -results in :math:`S_{a}` = 0.12. +results in :math:`S_{\rm adv}` = 0.12. The numerical stability for inertial oscillations using Adams-Bashforth II (Adcroft 1995 :cite:`adcroft:95`) .. math:: :label: eq_baro_inertial_stability - S_{i} = f {\Delta t} < 0.5 \text{ for stability} + S_{\rm inert} = f {\Delta t} < 0.5 \text{ for stability} evaluates to 0.12 for our choice of :math:`\Delta t`, which is below the stability threshold. @@ -129,11 +129,11 @@ zero-crossing, see Pedlosky 1987 :cite:`pedlosky:87`) is given by: .. math:: :label: baro_munk_layer - M_{w} = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right) ^{\frac{1}{3}} + M = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right) ^{\frac{1}{3}} For our configuration we will choose to resolve a boundary layer of :math:`\approx` 100 km, or roughly across five grid cells, so we set :math:`A_{h} = 400` m\ :sup:`2` s\ :sup:`--1` -(more precisely, this sets the full width at :math:`M_{w}` = 124 km). This choice ensures +(more precisely, this sets the full width at :math:`M` = 124 km). This choice ensures that the frictional boundary layer is well resolved. Given our choice of :math:`\Delta t`, the stability @@ -142,7 +142,7 @@ parameter for the horizontal Laplacian friction (Adcroft 1995 :cite:`adcroft:95` .. math:: :label: baro_laplacian_stability - S_{l} = 2 \left( 4 \frac{A_{h} \Delta t}{{\Delta x}^2} \right) < 0.6 \text{ for stability} + S_{\rm Lh} = 2 \left( 4 \frac{A_{h} \Delta t}{{\Delta x}^2} \right) < 0.6 \text{ for stability} evaluates to 0.0096, which is well below the stability threshold. As in :eq:`eq_baro_cfl_stability` the above criteria is for a 2D problem using Adams-Bashforth2 time stepping, with the 0.6 value on the right replacing the more familiar 1 @@ -517,7 +517,8 @@ value is set to 0 (i.e., “land”). As discussed in :numref:`sec_baro_num_co (i.e., periodic in both :math:`x`- and :math:`y`-directions), so boundary walls are necessary to set up our enclosed box domain. The matlab program :filelink:`verification/tutorial_barotropic_gyre/input/gendata.m` -was used to generate this bathymetry file. By default, this file is assumed to +was used to generate this bathymetry file (alternatively, see python equivalent +:filelink:`gendata.py `). By default, this file is assumed to contain 32-bit (single precision) binary numbers. See :numref:`sec_mitgcm_inp_file_format` for additional information on MITgcm input data file format specifications. @@ -532,9 +533,11 @@ The units are Nm\ :sup:`--2`. Although :math:`\tau_{x}` is only a function of :m this file must still define a complete 2-D map in order to be compatible with the standard code for loading forcing fields in MITgcm. The matlab program :filelink:`verification/tutorial_barotropic_gyre/input/gendata.m` -was used to generate this wind stress file. To run the barotropic jet variation of this tutorial example (see :numref:`baro_jet_solution`), -you will in fact need to run this -matlab program to generate the file ``input/windx_siny.bin``. +was used to generate this wind stress file (alternatively, see python equivalent +:filelink:`gendata.py `). +To run the barotropic jet variation of this tutorial example (see :numref:`baro_jet_solution`), +you will in fact need to run one of these +programs to generate the file ``input/windx_siny.bin``. .. _baro_gyre_build_run: @@ -703,21 +706,31 @@ binary data in ``Eta.0000077760.001.001.data`` is as simple as: :: addpath ../../../utils/matlab/ - XC=rdmds('XC'); YC=rdmds('YC'); - Eta=rdmds('Eta',77760); - contourf(XC/1000,YC/1000,Eta,[-.04:.01:.04]); colorbar; - colormap((flipud(hot))); set(gca,'XLim',[0 1200]); set(gca,'YLim',[0 1200]) + XC=rdmds('XC'); + YC=rdmds('YC'); + Eta=rdmds('Eta', 77760); + contourf(XC/1000, YC/1000, Eta, [-.04:.01:.04]) + colorbar + colormap((flipud(hot))) + set(gca, 'XLim', [0 1200]) + set(gca, 'YLim', [0 1200]) -or using python (you will need to install the MITgcmutils package, see :numref:`sec_python`): +or using python (you will need to install the MITgcmutils package, see :numref:`MITgcmutils`): :: from MITgcmutils import mds + import numpy as np import matplotlib.pyplot as plt - XC = mds.rdmds('XC'); YC = mds.rdmds('YC') + XC = mds.rdmds('XC') + YC = mds.rdmds('YC') Eta = mds.rdmds('Eta', 77760) - plt.contourf(XC, YC, Eta, np.linspace(-0.02, 0.05,8), cmap='hot_r') - plt.colorbar(); plt.show() + plt.contourf(XC/1000, YC/1000, Eta, np.linspace(-0.02, 0.05,8), cmap='hot_r') + plt.colorbar() + plt.show() + +(for a more involved example with detailed explanations how to read in model output, +perform calculations using these data, and make plots, see tutorial :ref:`Baroclinic Ocean Gyre `) Let’s simplify the example by considering the linear problem where we neglect the advection of momentum terms. In other words, replace :math:`\frac{Du}{Dt}` and :math:`\frac{Dv}{Dt}` with @@ -729,10 +742,10 @@ line ``# momAdvection=.FALSE.,`` in file ``data`` and re-run the model. Any exi For the linearized equations, the Munk layer (equilibrium) analytical solution is given by: .. math:: - \eta(x,y) = \frac{\tau_o}{\rho_c g H} \frac{f}{\beta} \left(1 - \frac{x}{L_x}\right) \pi \sin(\pi \frac{y}{L_y}) - \left[1 - \exp({\frac{-x}{2\delta_m}}) \left(\cos\frac{\sqrt{3}x}{2\delta_m} + \frac{1}{\sqrt{3}} \sin\frac{\sqrt{3}x}{2\delta_m} \right) \right] + \eta(x,y) = \frac{\tau_o}{\rho_c g H} \frac{f}{\beta} \left(1 - \frac{x}{L_x}\right) \pi \sin\left(\pi \frac{y}{L_y}\right) + \left[1 - e^{-x/(2\delta_m)} \left(\cos\frac{\sqrt{3}x}{2\delta_m} + \frac{1}{\sqrt{3}} \sin\frac{\sqrt{3}x}{2\delta_m} \right) \right] -where :math:`\delta_m= ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}}`. :numref:`lin_anal_soln` +where :math:`\delta_m = (A_{h} / \beta)^{\frac{1}{3}}`. :numref:`lin_anal_soln` displays the MITgcm output after switching off momentum advection vs. the analytical solution to the linearized equations. Success! diff --git a/doc/examples/deep_convection/deep_convection.rst b/doc/examples/deep_convection/deep_convection.rst index 75372ca10d..812669f87c 100644 --- a/doc/examples/deep_convection/deep_convection.rst +++ b/doc/examples/deep_convection/deep_convection.rst @@ -112,7 +112,7 @@ solved in this configuration as follows: \frac{1}{\rho}\frac{\partial p^{'}}{\partial x} - \nabla_{h}\cdot A_{h}\nabla_{h}u - \frac{\partial}{\partial z}A_{z}\frac{\partial u}{\partial z} - & = & + & = \begin{cases} 0 & \text{(surface)} \\ 0 & \text{(interior)} @@ -122,7 +122,7 @@ solved in this configuration as follows: \frac{1}{\rho}\frac{\partial p^{'}}{\partial y} - \nabla_{h}\cdot A_{h}\nabla_{h}v - \frac{\partial}{\partial z}A_{z}\frac{\partial v}{\partial z} - & = & + & = \begin{cases} 0 & \text{(surface)} \\ 0 & \text{(interior)} @@ -132,7 +132,7 @@ solved in this configuration as follows: \frac{1}{\rho}\frac{\partial p^{'}}{\partial z} - \nabla_{h}\cdot A_{h}\nabla_{h}w - \frac{\partial}{\partial z}A_{z}\frac{\partial w}{\partial z} - & = & + & = \begin{cases} 0 & \text{(surface)} \\ 0 & \text{(interior)} @@ -141,13 +141,13 @@ solved in this configuration as follows: \frac{\partial u}{\partial x} + \frac{\partial v}{\partial y} + \frac{\partial w}{\partial z} + - &=& + &= 0 \\ \frac{D\theta}{Dt} - \nabla_{h}\cdot K_{h}\nabla_{h}\theta - \frac{\partial}{\partial z}K_{z}\frac{\partial\theta}{\partial z} - & = & + & = \begin{cases} {\cal F}_\theta & \text{(surface)} \\ 0 & \text{(interior)} diff --git a/doc/examples/examples.rst b/doc/examples/examples.rst index aaf8d7b893..793db76e76 100644 --- a/doc/examples/examples.rst +++ b/doc/examples/examples.rst @@ -256,9 +256,13 @@ For many experiments, additional information is provided in a ``README`` file lo #. :filelink:`adjustment.128x64x1 ` - Barotropic adjustment problem on latitude-longitude grid with 128x64 grid points (2.8\ :sup:`o` resolution). -#. :filelink:`adjustment.cs-32x32x1 ` - Barotropic adjustment problem on cube - sphere grid with 32x32 points per face (roughly 2.8\ :sup:`o` resolution). - Also contains a non-linear free-surface adjustment version (:filelink:`input.nlfs `). +#. :filelink:`adjustment.cs-32x32x1 ` - + Barotropic adjustment problem on cube sphere grid with 32x32 points per face + (roughly 2.8\ :sup:`o` resolution) with a rectangular island at the equator. + Note that "blank tiles" are used in the MPI test + (:filelink:`data.exch2.mpi `). + Also contains a non-linear free-surface, atmospheric like, barotropic + adjustment version (:filelink:`input.nlfs `). #. :filelink:`advect_cs ` - 2-D passive advection test on cube sphere grid (32x32 grid points per face, roughly 2.8\ :sup:`o` resolution). @@ -296,12 +300,17 @@ For many experiments, additional information is provided in a ``README`` file lo on cubed-sphere cs32 horizontal grid, using intermediate atmospheric physics (:filelink:`pkg/aim_v23`) thermodynamic seaice (:filelink:`pkg/thsice`) and land packages. + Also contains an additional setup with seaice dynamics + (:filelink:`input_cpl.icedyn `, + :filelink:`input_atm.icedyn `, + :filelink:`input_ocn.icedyn `). #. :filelink:`deep_anelastic ` - Convection simulation on a giant planet: relaxes both the Boussinesq approximation (anelastic) and the thin atmosphere approximation (deep atmosphere). -#. :filelink:`dome ` - Idealized 3-D test of a density-driven bottom current (Denmark Overflow Mixing and Entrainment experiment). +#. :filelink:`dome ` - Idealized 3-D test of a density-driven bottom current + (Denmark Overflow Mixing and Entrainment experiment). #. :filelink:`exp2 ` - Old version of the global ocean experiment (no GM, no partial-cells). Also contains an additional setup with rigid lid @@ -329,17 +338,25 @@ For many experiments, additional information is provided in a ``README`` file lo #. :filelink:`front_relax ` - Relaxation of an 2-D (:math:`y-z`) ocean thermal front (test of Gent and McWilliams scheme). Also contains additional setups: + - using the identical setup except with pressure as the vertical coordinate instead of height + (:filelink:`input.in_p `) + - using the boundary-value problem method (Ferrari et al. 2010 :cite:`ferrari:10`) - (:filelink:`input.bvp `). + (:filelink:`input.bvp `) - with mixed-layer eddy parameterization (Ferrari and McWilliams - 2008 :cite:`ferrari:08`) (:filelink:`input.mxl `). + 2008 :cite:`ferrari:08`) (:filelink:`input.mxl `) + + - with dry-cell at the top and a sloping bottom + (:filelink:`input.top `). -#. :filelink:`global_ocean.90x40x15 ` - Global ocean simulation at 4\ :sup:`o`\ x4\ :sup:`o` - resolution. Similar to :ref:`tutorial_global_oce_latlon `, but using - :math:`z^*` coordinates with quasi-non-hydrostatic and - non-hydrostatic metric terms. This experiment illustrates the use - of :filelink:`sbo ` package. Also contains additional setups: +#. :filelink:`global_ocean.90x40x15 ` - + Global ocean simulation at 4\ :sup:`o`\ x4\ :sup:`o` resolution. + Similar to :ref:`tutorial_global_oce_latlon `, but + using :math:`z^*` coordinates with quasi-non-hydrostatic and non-hydrostatic metric + terms. This experiment illustrates the use of :filelink:`sbo ` package. + Note that "blank tiles" are used in the MPI test (:filelink:`data.exch2.mpi `). + Also contains additional setups: - using :filelink:`down-slope package ` (:filelink:`input.dwnslp `) @@ -359,6 +376,10 @@ For many experiments, additional information is provided in a ``README`` file lo - using thermodynamic and dynamic (:filelink:`pkg/seaice`) sea ice with :filelink:`exf ` package package (:filelink:`input.seaice `). + - using pressure as vertical coordinate, with :filelink:`ggl90 ` scheme (Gaspar et al. 1990 :cite:`gas-eta:90`) + and dynamic and thermodynamic seaice (:filelink:`pkg/seaice`) package and :filelink:`exf ` + package (:filelink:`input.in_p `) + #. :filelink:`global_ocean_ebm ` - Global ocean experiment on a lat-lon grid coupled to a zonally averaged atmospheric energy balance model. Similar to :filelink:`global_ocean.90x40x15 ` experiment. @@ -410,8 +431,8 @@ For many experiments, additional information is provided in a ``README`` file lo - using the simple “free-drift” assumption for sea ice (:filelink:`input.fd `) - - using :ref:`EVP dynamics ` (instead of :ref:`LSR solver `) - and Hibler and Bryan (1987) :cite:`hibler87` sea ice ocean stress (:filelink:`input.hb87 `) + - using :ref:`aEVP dynamics ` (instead of :ref:`LSR solver `) + and Hibler and Bryan (1987) :cite:`hibler:87` sea ice ocean stress (:filelink:`input.hb87 `) - using package :filelink:`salt_plume ` (:filelink:`input.salt_plume `). @@ -444,12 +465,37 @@ For many experiments, additional information is provided in a ``README`` file lo so ocean is "offline", not to be confused with :filelink:`pkg/offline`). Also contains additional setups: - - sea ice dynamics-only using :ref:`JFNK solver ` and (:filelink:`pkg/seaice`) advection + - sea ice dynamics-only using :ref:`JFNK solver ` + and (:filelink:`pkg/thsice`) advection (:filelink:`input.dyn_jfnk `) - - sea ice dynamics-only using :ref:`LSR solver ` and (:filelink:`pkg/seaice`) advection + - sea ice dynamics-only using :ref:`LSR solver ` + and (:filelink:`pkg/seaice`) advection (:filelink:`input.dyn_lsr `) + - sea ice dynamics-only using :ref:`LSR solver `, + elliptical yield curve with :ref:`non-normal flow rule ` + and (:filelink:`pkg/seaice`) advection + (:filelink:`input.dyn_ellnnfr ` + and :filelink:`input.dyn_lsr `) + + - sea ice dynamics-only using :ref:`LSR solver `, + :ref:`Mohr-Coulomb yieldcurve with elliptical plastic potential ` + and (:filelink:`pkg/seaice`) advection + (:filelink:`input.dyn_mce ` and + :filelink:`input.dyn_lsr `) + + - sea ice dynamics-only using :ref:`Picard (KRYLOV) solver `, + :ref:`parabolic lens yieldcurve ` + and (:filelink:`pkg/thsice`) advection + (:filelink:`input.dyn_paralens ` + and :filelink:`input.dyn_jfnk `) + + - sea ice dynamics-only using :ref:`JFNK solver `, :ref:`teardrop yieldcurve ` + and (:filelink:`pkg/thsice`) advection + (:filelink:`input.dyn_teardrop ` + and :filelink:`input.dyn_jfnk `) + - sea ice thermodynamics-only using (:filelink:`pkg/seaice`) (:filelink:`input.thermo `) - sea ice thermodynamics-only using (:filelink:`pkg/thsice`) (:filelink:`input.thsice `). @@ -482,15 +528,28 @@ For many experiments, additional information is provided in a ``README`` file lo #. :filelink:`so_box_biogeo ` - Open boundary Southern Ocean box around Drake Passage, using same model parameters and forcing as experiment :ref:`tutorial_global_oce_biogeo ` from which initial conditions and open boundary - conditions have been extracted. Also contains additional setup using the SolveSAPHE algorithm - (Munhoven 2013 :cite:`munhoven:13`) to determine oceanic pH - (:filelink:`input.saphe `). + conditions have been extracted. Also contains additional setups: + + - using the SolveSAPHE algorithm (Munhoven 2013 :cite:`munhoven:13`) to determine oceanic + pH (:filelink:`input.saphe `) + + - using the calcite-saturation code (with 3-D pH and silica input file) with the original pH solver + (:filelink:`input.caSat0 `) + + - using the calcite-saturation code with the Munhoven "FAST" solver (:filelink:`input.caSat3 `) #. :filelink:`solid-body.cs-32x32x1 ` - Solid body rotation test for cube sphere grid. -#. :filelink:`tutorial_deep_convection ` - Experiment as described in :numref:`sec_deep_convection`, also contains an additional setup - using the Smagorinisky (1963) :cite:`smag:63` viscosity scheme (:filelink:`input.smag3d `). +#. :filelink:`tutorial_deep_convection ` - Experiment as described + in :numref:`sec_deep_convection`, also contains an additional setup + using the Smagorinisky (1963) :cite:`smag:63` viscosity scheme + (:filelink:`input.smag3d `). + +#. :filelink:`tutorial_plume_on_slope ` - Experiment as described in + :numref:`tutorial_plume_on_slope`, also contains an additional setup + using the logarithmic law of the wall to compute the bottom drag coefficient + (:filelink:`input.roughBot `). #. :filelink:`vermix ` - Simple test in a small domain (3 columns) for ocean vertical mixing schemes. The standard setup (:filelink:`input `) uses the :ref:`KPP scheme ` @@ -517,17 +576,26 @@ Additional Example Experiments: Adjoint Model Setups Unless stated otherwise, the physical setup of the adjoint run is identical to the forward run, see description above. TAF adjoint setups require building with directory ``code_ad`` with input directory ``input_ad``, whereas OpenAD requires -directories ``coad_oad`` and ``input_oad`` respectively. +directories ``code_oad`` and ``input_oad`` respectively. -#. :filelink:`1D_ocean_ice_column ` - Based on standard forward experiment, TAF adjoint setup, uses package :filelink:`ecco `. +#. :filelink:`1D_ocean_ice_column ` - Based on standard forward experiment, + TAF adjoint setup, uses package :filelink:`ecco `. -#. :filelink:`bottom_ctrl_5x5 ` - TAF adjoint test using the bottom topography as the - control parameter, uses package :filelink:`ecco `. +#. :filelink:`bottom_ctrl_5x5 ` - TAF adjoint + test using the bottom topography as the control parameter, uses package + :filelink:`ecco ` and "not self-adjoint" version of cg2d: + :filelink:`cg2d_nsa.F `. + Also contains an additional TAF adjoint setup + that uses default :filelink:`cg2d.F ` with a hand-written + full (manual) adjoint routine :filelink:`cg2d_mad.F + ` (:filelink:`input_ad.facg2d + `) #. :filelink:`global_ocean.90x40x15 ` - Based on standard forward experiment, TAF and OpenAD adjoint setups. Also contains additional TAF adjoint setups: - - with bottom drag as a control (:filelink:`input_ad.bottomdrag `) + - with bottom drag as a control and manual adjoint :filelink:`cg2d_mad.F + ` (:filelink:`input_ad.bottomdrag `) - with :math:`\kappa_{GM}` as a control (:filelink:`input_ad.kapgm `) @@ -546,7 +614,15 @@ directories ``coad_oad`` and ``input_oad`` respectively. #. :filelink:`global_ocean_ebm ` - Based on standard forward experiment, TAF adjoint setup. -#. :filelink:`global_oce_biogeo_bling ` - Based on standard forward experiment, TAF adjoint setup, uses package :filelink:`ecco `. +#. :filelink:`global_oce_biogeo_bling ` - Based on standard forward experiment, + TAF adjoint setup, uses package :filelink:`ecco `. + +#. :filelink:`global_oce_latlon ` - Simple adjoint experiment (used also to test OpenAD compiler), TAF and OpenAD adjoint setups. + Also contains additional OpenAD adjoint setups: + + - using package :filelink:`ggl90 ` (:filelink:`input_oad.ggl90 `). + + - using package :filelink:`kpp ` (:filelink:`input_oad.kpp `). #. :filelink:`global_with_exf ` - Based on standard forward experiment, TAF adjoint setup. @@ -573,19 +649,12 @@ directories ``coad_oad`` and ``input_oad`` respectively. Also contains additional TAF adjoint setup with sea ice thermodynamics-only using :filelink:`pkg/thsice` (:filelink:`input_ad.thsice `). -#. :filelink:`OpenAD ` - Simple adjoint experiment (used also to test OpenAD compiler), TAF and OpenAD adjoint setups. - Also contains additional OpenAD adjoint setups: - - - using package :filelink:`ggl90 ` (:filelink:`input_oad.ggl90 `). - - - using package :filelink:`kpp ` (:filelink:`input_oad.kpp `). - #. :filelink:`tutorial_dic_adjoffline ` - TAF adjoint setup of offline form of passive tracers coupled to the dissolved inorganic carbon biogeochemistry model (currently NOT documented as a tutorial experiment). #. :filelink:`tutorial_global_oce_biogeo ` - Based on forward experiment described in :numref:`sub_global_oce_biogeo`, TAF and OpenAD adjoint setups. -#. :filelink:`tutorial_tracer_adjsens ` - Based on adjoint experiment described in :numref:`sec_tracer_adj_sens`, - contains an additional TAF setup using Second Order Moment (SOM) +#. :filelink:`tutorial_tracer_adjsens ` - Based on adjoint experiment + described in :numref:`sec_tracer_adj_sens`, contains an additional TAF setup using Second Order Moment (SOM) advection scheme (:filelink:`input_ad.som81 `). diff --git a/doc/examples/global_oce_biogeo/global_oce_biogeo.rst b/doc/examples/global_oce_biogeo/global_oce_biogeo.rst index 39f0b37884..eed72d3626 100644 --- a/doc/examples/global_oce_biogeo/global_oce_biogeo.rst +++ b/doc/examples/global_oce_biogeo/global_oce_biogeo.rst @@ -63,7 +63,7 @@ comes from chemical and biological sources and sinks. For any tracer .. math:: - \frac{\partial A}{\partial t}=-\nabla \cdot (\vec{u^{*}} A)+\nabla \cdot + \frac{\partial A}{\partial t}=- \nabla \cdot (\vec{u^{*}} A)+ \nabla \cdot (\mathbf{K}\nabla A)+S_A \nonumber where :math:`\vec{u^{*}}` is the transformed Eulerian mean circulation @@ -75,11 +75,11 @@ The sources and sinks are: .. math:: \begin{aligned} - S_{DIC} & = & F_{CO_2} + V_{CO_2} + r_{C:P} S_{PO_4} + J_{Ca} \\ - S_{ALK} & = & V_{ALK}-r_{N:P} S_{PO_4} + 2 J_{Ca} \\ - S_{PO_4}& = & -f_{DOP} J_{prod} - \frac{\partial F_P}{\partial z} + \kappa_{remin} [DOP]\\ - S_{DOP} & = & f_{DOP} J_{prod} -\kappa_{remin} [DOP] \\ - S_{O_2} & = & \left\{ \begin{array}{ll} + S_{DIC} & = F_{CO_2} + V_{CO_2} + r_{C:P} S_{PO_4} + J_{Ca} \\ + S_{ALK} & = V_{ALK}-r_{N:P} S_{PO_4} + 2 J_{Ca} \\ + S_{PO_4}& = -f_{DOP} J_{prod} - \frac{\partial F_P}{\partial z} + \kappa_{remin} [DOP]\\ + S_{DOP} & = f_{DOP} J_{prod} -\kappa_{remin} [DOP] \\ + S_{O_2} & = \left\{ \begin{array}{ll} -r_{O:P} S_{PO_4} & \mbox{if $O_2>O_{2crit}$} \\ 0 & \mbox{if $O_2`: This file uses standard default values and does not contain customizations for this experiment. diff --git a/doc/examples/global_oce_in_p/global_oce_in_p.rst b/doc/examples/global_oce_in_p/global_oce_in_p.rst index ee566747dd..9d101f072f 100644 --- a/doc/examples/global_oce_in_p/global_oce_in_p.rst +++ b/doc/examples/global_oce_in_p/global_oce_in_p.rst @@ -91,8 +91,8 @@ variables :math:`x` and :math:`y` are initialized according to .. math:: \begin{aligned} - x=r\cos(\phi),~\Delta x & = &r\cos(\Delta \phi) \\ - y=r\lambda,~\Delta y &= &r\Delta \lambda \end{aligned} + x=r\cos(\phi),~\Delta x & = r\cos(\Delta \phi) \\ + y=r\lambda,~\Delta y & = r\Delta \lambda \end{aligned} Arctic polar regions are not included in this experiment. Meridionally the model extends from 80\ :sup:`o`\ S to @@ -139,9 +139,9 @@ of equations solved in this configuration as follows: :label: eg-global-model_equations_pcoord_uv \frac{Du}{Dt} - fv + - \frac{1}{\rho}\frac{\partial \Phi^{'}}{\partial x} - - \nabla_{h}\cdot A_{h}\nabla_{h}u - - (g\rho_0)^2\frac{\partial}{\partial p}A_{r}\frac{\partial u}{\partial p} + \frac{1}{\rho}\frac{\partial \Phi^\prime}{\partial x} - + \nabla _h \cdot ( A_{h} \nabla _h u )- + (g\rho_0)^2\frac{\partial}{\partial p}\left( A_{r}\frac{\partial u}{\partial p}\right) &= \begin{cases} {\cal F}_u & \text{(surface)} \\ @@ -149,9 +149,9 @@ of equations solved in this configuration as follows: \end{cases} \\ \frac{Dv}{Dt} + fu + - \frac{1}{\rho}\frac{\partial \Phi^{'}}{\partial y} - - \nabla_{h}\cdot A_{h}\nabla_{h}v - - (g\rho_0)^2\frac{\partial}{\partial p}A_{r}\frac{\partial v}{\partial p} + \frac{1}{\rho}\frac{\partial \Phi^\prime}{\partial y} - + \nabla _h \cdot ( A_{h} \nabla _h v) - + (g\rho_0)^2\frac{\partial}{\partial p}\left( A_{r}\frac{\partial v}{\partial p}\right) &= \begin{cases} {\cal F}_v & \text{(surface)} \\ @@ -159,26 +159,26 @@ of equations solved in this configuration as follows: \end{cases} .. math:: - \frac{\partial p_{b}}{\partial t} + \nabla_{h}\cdot \vec{u} = 0 + \frac{\partial p_{b}}{\partial t} + \nabla _h \cdot \vec{\bf u} = 0 .. math:: :label: eg-global-model_equations_pcoord_ts \frac{D\theta}{Dt} - - \nabla_{h}\cdot K_{h}\nabla_{h}\theta - - (g\rho_0)^2\frac{\partial}{\partial p}\Gamma(K_{r})\frac{\partial\theta}{\partial p} + \nabla _h \cdot (K_{h} \nabla _h \theta) + - (g\rho_0)^2\frac{\partial}{\partial p}\left( \Gamma(K_{r})\frac{\partial\theta}{\partial p}\right) &= \begin{cases} {\cal F}_\theta & \text{(surface)} \\ 0 & \text{(interior)} \end{cases} \\ - \frac{D s}{Dt} - - \nabla_{h}\cdot K_{h}\nabla_{h}s - - (g\rho_0)^2\frac{\partial}{\partial p}\Gamma(K_{r})\frac{\partial S}{\partial p} + \frac{D S}{Dt} - + \nabla _h \cdot (K_{h} \nabla _h S) + - (g\rho_0)^2\frac{\partial}{\partial p}\left( \Gamma(K_{r})\frac{\partial S}{\partial p}\right) &= \begin{cases} - {\cal F}_s & \text{(surface)} \\ + {\cal F}_S & \text{(surface)} \\ 0 & \text{(interior)} \end{cases} @@ -187,7 +187,7 @@ of equations solved in this configuration as follows: where :math:`u=\frac{Dx}{Dt}=r \cos(\phi)\frac{D \lambda}{Dt}` and :math:`v=\frac{Dy}{Dt}=r \frac{D \phi}{Dt}` are the zonal and meridional -components of the flow vector, :math:`\vec{u}`, on the sphere. As +components of the flow vector, :math:`\vec{\bf u}`, on the sphere. As described in :numref:`discret_algorithm`, the time evolution of potential temperature :math:`\theta` equation is solved prognostically. The full geopotential height :math:`\Phi` is diagnosed by summing the @@ -264,7 +264,7 @@ shows the depth contours of the model domain. :alt: restoring sss field :name: fig_sim_config_sclim_pcoord - Annual mean of relaxation salinity (psu) + Annual mean of relaxation salinity (g/kg) .. figure:: ../global_oce_latlon/figs/tx.png :width: 90% diff --git a/doc/examples/global_oce_latlon/global_oce_latlon.rst b/doc/examples/global_oce_latlon/global_oce_latlon.rst index f45e3e6fa5..0a1f0f1f1d 100644 --- a/doc/examples/global_oce_latlon/global_oce_latlon.rst +++ b/doc/examples/global_oce_latlon/global_oce_latlon.rst @@ -134,8 +134,8 @@ of equations solved in this configuration as follows: \frac{Du}{Dt} - fv + \frac{1}{\rho}\frac{\partial p'}{\partial x} - - \nabla_{h}\cdot A_{h}\nabla_{h}u - - \frac{\partial}{\partial z}A_{z}\frac{\partial u}{\partial z} + \nabla _h \cdot (A_{h} \nabla _h u) - + \frac{\partial}{\partial z}\left(A_{z}\frac{\partial u}{\partial z}\right) &= \begin{cases} \mathcal{F}_u & \text{(surface)} \\ @@ -144,8 +144,8 @@ of equations solved in this configuration as follows: \\ \frac{Dv}{Dt} + fu + \frac{1}{\rho}\frac{\partial p'}{\partial y} - - \nabla_{h}\cdot A_{h}\nabla_{h}v - - \frac{\partial}{\partial z}A_{z}\frac{\partial v}{\partial z} + \nabla _h \cdot (A_{h} \nabla _h v) - + \frac{\partial}{\partial z}\left(A_{z}\frac{\partial v}{\partial z}\right) &= \begin{cases} \mathcal{F}_v & \text{(surface)} \\ @@ -153,26 +153,26 @@ of equations solved in this configuration as follows: \end{cases} .. math:: - \frac{\partial \eta}{\partial t} + \nabla_{h}\cdot \vec{u} = 0 + \frac{\partial \eta}{\partial t} + \nabla _h \cdot \vec{\bf u} = 0 .. math:: :label: eg-global-model_equations_ts \frac{D\theta}{Dt} - - \nabla_{h}\cdot K_{h}\nabla_{h}\theta - - \frac{\partial}{\partial z}\Gamma(K_{z})\frac{\partial\theta}{\partial z} + \nabla _h \cdot (K_{h} \nabla _h \theta) + - \frac{\partial}{\partial z}\left(\Gamma(K_{z})\frac{\partial\theta}{\partial z}\right) &= \begin{cases} {\cal F}_\theta & \text{(surface)} \\ 0 & \text{(interior)} \end{cases} \\ - \frac{D s}{Dt} - - \nabla_{h}\cdot K_{h}\nabla_{h}s - - \frac{\partial}{\partial z}\Gamma(K_{z})\frac{\partial s}{\partial z} + \frac{D S}{Dt} - + \nabla _h \cdot (K_{h} \nabla _h S) + - \frac{\partial}{\partial z}\left(\Gamma(K_{z})\frac{\partial S}{\partial z}\right) &= \begin{cases} - {\cal F}_s & \text{(surface)} \\ + {\cal F}_S & \text{(surface)} \\ 0 & \text{(interior)} \end{cases} \\ @@ -182,7 +182,7 @@ of equations solved in this configuration as follows: where :math:`u=\frac{Dx}{Dt}=r \cos(\phi)\frac{D \lambda}{Dt}` and :math:`v=\frac{Dy}{Dt}=r \frac{D \phi}{Dt}` are the zonal and -meridional components of the flow vector, :math:`\vec{u}`, on the +meridional components of the flow vector, :math:`\vec{\bf u}`, on the sphere. As described in :numref:`discret_algorithm`, the time evolution of potential temperature :math:`\theta` equation is solved prognostically. The total pressure :math:`p` is diagnosed by summing @@ -197,7 +197,7 @@ The Laplacian dissipation coefficient, :math:`A_{h}`, is set to layer width (see Adcroft 1995 :cite:`adcroft:95`), .. math:: - M_{w} = \pi ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}} + M = \pi ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}} :label: eq:eg-global-munk_layer of ~600 km. This is greater than @@ -213,7 +213,7 @@ stability parameter to the horizontal Laplacian friction (Adcroft 1995 :cite:`adcroft:95`) .. math:: - S_{l} = 4 \frac{A_{h} \Delta t_{v}}{{\Delta x}^2} + S_{\rm Lh} = 4 \frac{A_{h} \Delta t_{v}}{{\Delta x}^2} :label: eq:eg-global-laplacian_stability evaluates to 0.6 at a latitude of @@ -228,7 +228,7 @@ The vertical dissipation coefficient, The associated stability limit .. math:: - S_{l} = 4 \frac{A_{z} \Delta t_{v}}{{\Delta z}^2} + S_{\rm Lv} = 4 \frac{A_{z} \Delta t_{v}}{{\Delta z}^2} :label: eg-global-laplacian_stability_z evaluates to 0.0029 for the smallest @@ -239,7 +239,7 @@ The numerical stability for inertial oscillations (Adcroft 1995 :cite:`adcroft:95`) .. math:: - S_{i} = f^{2} {\Delta t_v}^2 + S_{\rm inert} = f^{2} {\Delta t_v}^2 :label: eg-global-inertial_stability evaluates to 0.07 for @@ -248,10 +248,10 @@ which is below the :math:`S_{i} < 1` upper limit for stability. The advective CFL (Adcroft 1995 :cite:`adcroft:95`) for a extreme maximum horizontal flow -speed of :math:`| \vec{u} |` = 2 m s\ :sup:`-1` +speed of :math:`| \vec{\bf u} |` = 2 m s\ :sup:`-1` .. math:: - S_{a} = \frac{| \vec{u} | \Delta t_{v}}{ \Delta x} + S_{\rm adv} = \frac{| \vec{\bf u} | \Delta t_{v}}{ \Delta x} :label: eg-global-cfl_stability evaluates to :math:`5 \times 10^{-2}`. This is @@ -328,7 +328,7 @@ the model domain. :alt: restoring sss field :name: fig_sim_config_sclim - Annual mean of relaxation salinity (psu) + Annual mean of relaxation salinity (g/kg) .. figure:: figs/tx.png :width: 90% diff --git a/doc/examples/held_suarez_cs/held_suarez_cs.rst b/doc/examples/held_suarez_cs/held_suarez_cs.rst index a3a596fc32..8bb2c272fb 100644 --- a/doc/examples/held_suarez_cs/held_suarez_cs.rst +++ b/doc/examples/held_suarez_cs/held_suarez_cs.rst @@ -59,14 +59,14 @@ layer. Altogether, this yields the following forcing from Held and Suarez (1994) :cite:`held-suar:94` that is applied to the fluid: .. math:: - \vec{{\cal F}_\mathbf{v}} = -k_\mathbf{v}(p)\vec{\mathbf{v}}_h + \vec{\boldsymbol{\cal F}_\mathbf{v}} = -k_\mathbf{v}(p)\vec{\mathbf{v}}_h :label: eg-hs-global_forcing_fv .. math:: {\cal F}_{\theta} = -k_{\theta}(\varphi,p)[\theta-\theta_{eq}(\varphi,p)] :label: eg-hs-global_forcing_ft -where :math:`\vec{\cal F}_\mathbf{v}`, :math:`{\cal F}_{\theta}`, are +where :math:`\vec{\boldsymbol{\cal F}_\mathbf{v}}`, :math:`{\cal F}_{\theta}`, are the forcing terms in the zonal and meridional momentum and in the potential temperature equations, respectively. The term :math:`k_\mathbf{v}` in :eq:`eg-hs-global_forcing_fv` @@ -77,9 +77,9 @@ layer. It is defined so as to decay as pressure decreases according to \begin{aligned} \label{eq:eg-hs-define_kv} - k_\mathbf{v} & = & k_{f}~\max[0,~(p^*/P^{0}_{s}-\sigma_{b})/(1-\sigma_{b})] + k_\mathbf{v} & = k_{f}~\max[0,~(p^*/P^{0}_{s}-\sigma_{b})/(1-\sigma_{b})] \\ - \sigma_{b} & = & 0.7 ~~{\rm and}~~ + \sigma_{b} & = 0.7 ~~{\rm and}~~ k_{f} = 1/86400 ~{\rm s}^{-1}\end{aligned} where :math:`p^*` is the pressure level of the cell center and @@ -138,11 +138,11 @@ configuration: .. math:: \frac{\partial \vec{\mathbf{v}}_h}{\partial t} - +(f + \zeta)\hat{\mathbf{k}} \times \vec{\mathbf{v}}_h - +\mathbf{\nabla }_{p} (\rm{KE}) + +(f + \zeta)\hat{\boldsymbol{k}} \times \vec{\mathbf{v}}_h + + \nabla_{p} (\mathrm{KE}) + \omega \frac{\partial \vec{\mathbf{v}}_h }{\partial p} - +\mathbf{\nabla }_p \Phi ^{\prime } - = -k_\mathbf{v}\vec{\mathbf{v}}_h + + \nabla_p \Phi ^{\prime } + = -k_\mathbf{v} \vec{\mathbf{v}}_h :label: eg-hs-model_equations .. math:: @@ -150,20 +150,20 @@ configuration: +\frac{\partial \Pi }{\partial p}\theta ^{\prime } =0 .. math:: - \mathbf{\nabla }_{p}\cdot \vec{\mathbf{v}}_h+\frac{\partial \omega }{ + \nabla _{p}\cdot \vec{\mathbf{v}}_h+\frac{\partial \omega }{ \partial p} =0 .. math:: \frac{\partial \theta }{\partial t} - + \mathbf{\nabla }_{p}\cdot (\theta \vec{\mathbf{v}}_h) + + \nabla _{p}\cdot (\theta \vec{\mathbf{v}}_h) + \frac{\partial (\theta \omega)}{\partial p} - = -k_{\theta}[\theta-\theta_{eq}] + = -k_{\theta}[\theta-\theta_{\rm eq}] where :math:`\vec{\mathbf{v}}_h` and :math:`\omega = \frac{Dp}{Dt}` are the horizontal velocity vector and the vertical velocity in pressure coordinate, :math:`\zeta` is the relative vorticity and :math:`f` the -Coriolis parameter, :math:`\hat{\mathbf{k}}` is the vertical unity -vector, :math:`\rm{KE}` is the kinetic energy, :math:`\Phi` is the geopotential, and +Coriolis parameter, :math:`\hat{\boldsymbol{k}}` is the vertical unity +vector, :math:`\mathrm{KE}` is the kinetic energy, :math:`\Phi` is the geopotential, and :math:`\Pi` the Exner function (:math:`\Pi = C_p (p/p_c)^\kappa` with :math:`p_c = 10^5` Pa). Primed variables correspond to anomaly from the resting, uniformly @@ -190,18 +190,18 @@ The numerical stability for inertial oscillations (see Adcroft 1995 :cite:`adcroft:95`): .. math:: - S_{i} = f^{2} {\Delta t}^2 + S_{\rm inert} = f^{2} {\Delta t}^2 :label: eg-hs-inertial_stability evaluates to :math:`4 \times10^{-3}` at the poles, for :math:`f=2\Omega\sin(\pi / 2) = 1.45\times10^{-4}~{\rm s}^{-1}`, which -is well below the :math:`S_{i} < 1` upper limit for stability. +is well below the :math:`S_{\rm inert} < 1` upper limit for stability. The advective CFL (Adcroft 1995 :cite:`adcroft:95`) for a extreme maximum -horizontal flow speed of :math:`| \vec{u} | = 90 {\rm m/s}`  and the +horizontal flow speed of :math:`| \vec{\mathbf{u}} | = 90 {\rm m/s}`  and the smallest horizontal grid spacing :math:`\Delta x = 1.1\times10^5 {\rm m}`: .. math:: - S_{a} = \frac{| \vec{u} | \Delta t}{ \Delta x} + S_{\rm adv} = \frac{| \vec{\mathbf{u}} | \Delta t}{ \Delta x} :label: eg-hs-cfl_stability evaluates to 0.37, which is close to the stability limit of 0.5. @@ -345,11 +345,11 @@ configuration are: Select the linear relation between surface geopotential anomaly and surface pressure anomaly to be evaluated from - :math:`\frac{\partial \Phi_s}{\partial p_s} = 1/\rho(\theta_{Ref})` + :math:`\frac{\partial \Phi_s}{\partial p_s} = 1/\rho(\theta_{\rm ref})` (see :numref:`nonlinear-freesurface`). Note that using the default (``=.TRUE.``), the constant :math:`1/\rho_0` is used instead, and is not necessarily consistent with other parts of the geopotential that - rely on :math:`\theta_{Ref}`. + rely on :math:`\theta_{\rm ref}`. - Line 23-24, diff --git a/doc/examples/plume_on_slope/plume_on_slope.rst b/doc/examples/plume_on_slope/plume_on_slope.rst index 43890fcf09..2febd0c811 100644 --- a/doc/examples/plume_on_slope/plume_on_slope.rst +++ b/doc/examples/plume_on_slope/plume_on_slope.rst @@ -67,26 +67,26 @@ instability is suppressed at low Reynolds and Peclet numbers given by where :math:`h` is the depth of the dense fluid on the slope. Hence this experiment is carried out in the high Re, Pe regime. A further constraint is that the convective heat flux must be much greater than -the diffusive heat flux (Nusselt number :math:`>> 1`). Then +the diffusive heat flux (Nusselt number :math:`\gg 1`). Then -.. math:: Nu = \frac{U h^* }{\kappa} >> 1 +.. math:: Nu = \frac{U h^* }{\kappa} \gg 1 Finally, since we have assumed that the convective mixing on the shelf occurs in a much shorter time than the horizontal equilibration, this -implies :math:`H/R << 1`. +implies :math:`H/R \ll 1`. Hence to summarize the important non-dimensional parameters, and the limits we are considering: .. math:: - \frac{H}{R} << 1 \mbox{ ; } Re >> 1 \mbox{ ; } Pe >> 1 \mbox{ ; } Nu >> 1 - \mbox{ ; } \mbox{ ; } Ri < 1/4 + \frac{H}{R} \ll 1 \mbox{ ; } Re \gg 1 \mbox{ ; } Pe \gg 1 \mbox{ ; } Nu \gg 1 + \mbox{ ; } \mbox{ ; } Ri < 1/4 . In addition we are assuming that the slope is steep enough to provide sufficient acceleration to the gravity plume, but nonetheless much less that 1:1, since many Kelvin-Helmholtz billows appear on the -slope, implying horizontal length scale of the slope :math:`>>` the depth +slope, implying horizontal length scale of the slope :math:`\gg` the depth of the dense fluid. Configuration @@ -147,12 +147,12 @@ where .. math:: \begin{aligned} - Nx & = & 320 \\ - Lx & = & 6400 \;\; \mbox{(m)} \\ - \Delta x_1 & = & \frac{2}{3} \frac{Lx}{Nx} \;\; \mbox{(m)} \\ - \Delta x_2 & = & \frac{Lx/2}{Nx-Lx/(2 \Delta x_1)} \;\; \mbox{(m)} \\ - i_s & = & Lx/( 2 \Delta x_1 ) \\ - w & = & 40\end{aligned} + Nx & = 320 \\ + Lx & = 6400 \;\; \mbox{(m)} \\ + \Delta x_1 & = \frac{2}{3} \frac{Lx}{Nx} \;\; \mbox{(m)} \\ + \Delta x_2 & = \frac{Lx/2}{Nx-Lx/(2 \Delta x_1)} \;\; \mbox{(m)} \\ + i_s & = Lx/( 2 \Delta x_1 ) \\ + w & = 40\end{aligned} Here, :math:`\Delta x_1` is the resolution on the shelf, :math:`\Delta x_2` is the resolution in deep water and :math:`Nx` is the @@ -167,11 +167,11 @@ where .. math:: \begin{aligned} - H_o & = & 200 \;\; \mbox{(m)} \\ - h_s & = & 40 \;\; \mbox{(m)} \\ - x_s & = & 1500 + Lx/2 \;\; \mbox{(m)} \\ - L_s & = & \frac{(H_o - h_s)}{2 s} \;\; \mbox{(m)} \\ - s & = & 0.15\end{aligned} + H_o & = 200 \;\; \mbox{(m)} \\ + h_s & = 40 \;\; \mbox{(m)} \\ + x_s & = 1500 + Lx/2 \;\; \mbox{(m)} \\ + L_s & = \frac{(H_o - h_s)}{2 s} \;\; \mbox{(m)} \\ + s & = 0.15\end{aligned} Here, :math:`s` is the maximum slope, :math:`H_o` is the maximum depth, :math:`h_s` is the shelf depth, :math:`x_s` is the lateral position of @@ -188,9 +188,9 @@ where .. math:: \begin{aligned} - Q_o & = & 200 \;\; \mbox{(W m$^{-2}$)} \\ - x_q & = & 2500 + Lx/2 \;\; \mbox{(m)} \\ - L_q & = & 100 \;\; \mbox{(m)}\end{aligned} + Q_o & = 200 \;\; \mbox{(W m$^{-2}$)} \\ + x_q & = 2500 + Lx/2 \;\; \mbox{(m)} \\ + L_q & = 100 \;\; \mbox{(m)}\end{aligned} Here, :math:`Q_o` is the maximum heat flux, :math:`x_q` is the position of the cut-off, and :math:`L_q` is the width of the cut-off. diff --git a/doc/examples/reentrant_channel/figs/MOC_RES_Z.png b/doc/examples/reentrant_channel/figs/MOC_RES_Z.png index c48657dfbd..7f64dda1a9 100644 Binary files a/doc/examples/reentrant_channel/figs/MOC_RES_Z.png and b/doc/examples/reentrant_channel/figs/MOC_RES_Z.png differ diff --git a/doc/examples/reentrant_channel/reentrant_channel.rst b/doc/examples/reentrant_channel/reentrant_channel.rst index cec6ee0029..639c47571e 100644 --- a/doc/examples/reentrant_channel/reentrant_channel.rst +++ b/doc/examples/reentrant_channel/reentrant_channel.rst @@ -46,10 +46,10 @@ necessary changes in code and parameters, and examine this high-resolution solut In our discussion, our focus will be on highlighting how the representation of mesoscale eddies plays a significant role in governing the equilibrium state. -Below we describe the idealized configuration in detail (see :numref:`channel_simulation_config`). -The sinusoidal wind-stress variations are defined thus: +Below we describe the idealized configuration in detail (see :numref:`channel_simulation_config`). +The sinusoidal wind-stress variations are defined thus: -.. math:: +.. math:: \tau_x(y) = \tau_{0}\sin \left( \frac{y}{2 L_y} \pi \right), where :math:`L_{y}` is the lateral domain extent and @@ -59,7 +59,7 @@ to -2 :sup:`o`\ C at the southern end. A wall is placed at the southern boundary thus our setup is only reentrant in the east-west direction. Because MITgcm assumes a periodic domain in both the east-west and north-south directions, our southern wall effectively functions as a wall at the northern boundary as well. -The full water column in the northern boundary is a "sponge layer"; +The full water column in the northern boundary is a "sponge layer"; relaxing temperature though the full water column will partially constrain the stratification, and in the eddy-permitting solution will absorb any eddies reaching the northern boundary (truly acting as a "sponge"). As shown in :numref:`channel_simulation_config`, a north-south ridge runs through the bottom topography, @@ -82,7 +82,7 @@ we use a linear equation of state which is a function of temperature only (temperature is our only model tracer field). :numref:`channel_simulation_temp_ic` shows initial conditions in temperature at the northern and southern end of the domain. Initial temperature decreases exponentially from the relaxation SST profile to -2 :sup:`o`\ C at depth :math:`H`. -Note that this same northern boundary profile is used to restore temperature in the model's sponge layer, as discussed above. +Note that this same northern boundary profile is used to restore temperature in the model's sponge layer, as discussed above. .. figure:: figs/temp_ic.png :width: 100% @@ -105,21 +105,21 @@ here we use standard Cartesian geometry rather than spherical polar coordinates: \frac{Du}{Dt} - fv + \frac{1}{\rho_c}\frac{\partial p'}{\partial x} + - \nabla_{h}\cdot ( -A_{h}\nabla_{h}u ) + + \nabla _h \cdot ( -A_{h} \nabla _h u ) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial u}{\partial z} \right) &= \mathcal{F}_u \\ \frac{Dv}{Dt} + fu + \frac{1}{\rho_c}\frac{\partial p'}{\partial y} + - \nabla_{h}\cdot ( -A_{h}\nabla_{h}v ) + + \nabla _h \cdot ( -A_{h} \nabla _h v ) + \frac{\partial}{\partial z} \left( -A_{z}\frac{\partial v}{\partial z} \right) &= \mathcal{F}_v - + .. math:: - \frac{\partial \eta}{\partial t} + \nabla_{h}\cdot \left( H \vec{\widehat{u}} \right) = 0 + \frac{\partial \eta}{\partial t} + \nabla _h \cdot \left( H \vec{\widehat{\bf u}} \right) = 0 .. math:: - \frac{D\theta}{Dt} + \nabla_{h} \cdot (-\kappa_{h}\nabla_{h} \theta) + \frac{D\theta}{Dt} + \nabla _h \cdot (-\kappa_{h} \nabla _h \theta) + \frac{\partial}{\partial z} \left( -\kappa_{z}\frac{\partial \theta}{\partial z} \right) = \mathcal{F}_\theta :label: channel_model_theta @@ -164,8 +164,8 @@ using its own time stepping scheme. The fixed flux form of the momentum equations are solved, as described in :numref:`flux-form_momentum_equations`, with an implicit linear free surface (:numref:`press_meth_linear`). Laplacian diffusion of tracers and momentum is employed. The pressure forces that drive -the fluid motions, :math:`\frac{\partial p^{'}}{\partial x}` -and :math:`\frac{\partial p^{'}}{\partial y}`, are found by +the fluid motions, :math:`\partial_x p^\prime` +and :math:`\partial_y p^\prime`, are found by summing pressure due to surface elevation :math:`\eta` and the hydrostatic pressure, as discussed in :numref:`baroc_eq_solved`. The sea-surface height is found by solving implicitly the 2-D (elliptic) surface pressure equation @@ -181,7 +181,7 @@ Numerical Stability Criteria The numerical considerations behind our setup are not trivial. We do not wish the thermocline to be diffused away by numerics. Accordingly, we employ a vertical diffusivity acting on temperature typical of background values -observed in the ocean, :math:`1 \times 10^{-5}` m\ :sup:`2` s\ :sup:`--1`). +observed in the ocean, :math:`1 \times 10^{-5}` m\ :sup:`2` s\ :sup:`--1`). We now examine numerical stability criteria to help choose and assess parameters for our coarse resolution study: parameters used in the eddy-permitting setup are discussed in :numref:`reentrant_channel_soln_eddy`. @@ -190,14 +190,14 @@ implications for the length of the timestep we will be able to use. Let us consi CFL condition :eq:`eq_SOch_cfl_stability` and the stability of inertial oscillations :eq:`eq_SOCh_inertial_stability`: .. math:: - S_{a} = 2 \left( \frac{ |c_{max}| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} + S_{\rm adv} = 2 \left( \frac{ |c_{\rm max}| \Delta t}{ \Delta x} \right) < 0.5 \text{ for stability} :label: eq_SOch_cfl_stability .. math:: - S_{i} = f {\Delta t} < 0.5 \text{ for stability} + S_{\rm inert} = f {\Delta t} < 0.5 \text{ for stability} :label: eq_SOCh_inertial_stability -where :math:`|c_{max}|` is the maximum horizontal velocity. We anticipate :math:`|c_{max}|` of order ~ 1 ms\ :sup:`-1`. +where :math:`|c_{\rm max}|` is the maximum horizontal velocity. We anticipate :math:`|c_{\rm max}|` of order ~ 1 ms\ :sup:`-1`. Note that barotropic currents of this speed over a jet of order ~ 100 km in lateral scale will result in a barotropic flow of the order of hundreds of Sverdups. At a resolution of 50 km, :eq:`eq_SOch_cfl_stability` then implies that the timestep must be less than 12000 s and :eq:`eq_SOCh_inertial_stability` implies a timestep less than 3500 s. @@ -206,7 +206,7 @@ Here we make a conservative choice of :math:`\Delta t = 1000` s to keep :math:` How shall we set the horizontal viscosity? From the numerical stability criteria: .. math:: - S_{l} = 4 A_{h} \Delta t \left( \frac{1}{{\Delta x}^2} + \frac{1}{{\Delta y}^2} \right) < 1.0 \text{ for stability} + S_{\ Lh} = 4 A_{h} \Delta t \left( \frac{1}{{\Delta x}^2} + \frac{1}{{\Delta y}^2} \right) < 1.0 \text{ for stability} :label: eq_SOch__laplacian_stability Note that the threshold in :eq:`eq_SOch__laplacian_stability` is < 1.0 instead of < 0.6 due to our @@ -218,14 +218,14 @@ With :math:`\Delta t = 1000` s, we can choose :math:`A_{h}` to be as large as or very viscous solution. We anticipate a boundary current along the deep ridge and sloping notch on a scale given by Munk scaling: .. math:: - M_{w} = \frac{2\pi}{\sqrt{3}} ( \frac { A_{h} }{ \beta } )^{\frac{1}{3}}. + M = \frac{2\pi}{\sqrt{3}} \left( \frac { A_{h} }{ \beta } \right)^{\frac{1}{3}}. :label: eq_SOch__munk_layer We can set :math:`A_{h}` to as low as 100 m\ :sup:`2` s\ :sup:`--1` and still comfortably resolve the Munk boundary layer on our grid. However, guided by an ensemble of runs exploring parameter space, we found the solution with :math:`A_{h} = 100 ` m\ :sup:`2` s\ :sup:`--1`, while stable, was rather noisy. As a compromise, a value of :math:`A_{h} = 2000` m\ :sup:`2` s\ :sup:`--1` reduced solution noise -whilst also controlling the strength of the barotropic current. This is the value used here. +whilst also controlling the strength of the barotropic current. This is the value used here. Also note with this choice :math:`A_{h} / \Delta x` gives a velocity scaling of 4 cm/s, a reasonable value. @@ -237,11 +237,11 @@ Otherwise, given that our vertical resolution is quite fine near the surface (ap the following stability criteria would have applied: .. math:: - S_{lv} = 4 \frac{A_{v} \Delta t}{{\Delta z}^2} < 1.0 \text{ for stability} + S_{\rm Lv} = 4 \frac{A_{v} \Delta t}{{\Delta z}^2} < 1.0 \text{ for stability} :label: eq_SOch__laplacian_v_stability which effectively would limit our choice for :math:`A_{v}` to very small values. -For simplicity, and given that away from the equator coarse resolution models are typically not +For simplicity, and given that away from the equator coarse resolution models are typically not very sensitive to the value of vertical viscosity, we pick a constant value of :math:`A_{v} = 3\times10^{-3}` m\ :sup:`2` s\ :sup:`--1` over the full domain, somewhere in between (in geometric mean sense) typical values found in the mixed layer (:math:`\sim 10^{-2}`) and in the deep ocean (:math:`\sim 10^{-4}`) (Roach et al. 2015 :cite:`roach:15`) @@ -273,9 +273,9 @@ The experiment files - verification/tutorial_reentrant_channel/input/temperature.50km.bin - verification/tutorial_reentrant_channel/input/T_relax_mask.50km.bin -contain the code customizations and parameter settings for this +contain the code customizations and parameter settings for this experiment. Below we describe these customizations in detail. - + Compile-time Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -286,7 +286,7 @@ File :filelink:`code/packages.conf `, we set a large vertical diffusivity (:varlink:`ivdc_kappa`) - for mixing unstable water columns, which requires implicit numerical treatment of vertical diffusion. - + for mixing unstable water columns, which requires implicit numerical treatment of vertical diffusion. + .. literalinclude:: ../../../verification/tutorial_reentrant_channel/input/data :start-at: diffKhT :end-at: implicitDiff @@ -399,7 +399,7 @@ PARM01 - Continuous equation parameters conservation -- it turns out the solution is rather sensitive to this discretization (particularly adjacent to topography). We tested both the default and wet-points methods, and found the wet-points method closer to the eddy-permitting solution, where obviously the discretization of the Coriolis term is better resolved. - + .. literalinclude:: ../../../verification/tutorial_reentrant_channel/input/data :start-at: f0 :end-at: selectCoriScheme @@ -409,7 +409,7 @@ PARM01 - Continuous equation parameters Boussinesq reference density :varlink:`rhoConst` as our value :varlink:`rhoNil`, for the linear equation of state. To keep things simple, as well as speed up model run-time, we limit ourselves to a single tracer, temperature, and tell the model not to step salinity forward in time or include salinity in the equation of state. - Also note we use a uniform reference temperature (:varlink:`tRef`) throughout the water column. + Also note we use a uniform reference temperature (:varlink:`tRef`) throughout the water column. We will be specifying a file for initial conditions of temperature in our simulation, and so :varlink:`tRef` will not be used for this purpose (as it was in tutorial :ref:`Baroclinic Ocean Gyre `). Thus, :varlink:`tRef` is only employed here as a reference to compute density anomalies. In principle, one could @@ -456,7 +456,7 @@ PARM01 - Continuous equation parameters :lineno-match: PARM02 - Elliptic solver parameters -################################### +################################### These parameters are unchanged from tutorials :ref:`Barotropic Ocean Gyre ` and :ref:`Baroclinic Ocean Gyre `. @@ -501,8 +501,8 @@ PARM03 - Time stepping parameters - This instructs the model to NOT apply Adams-Bashforth scheme to the viscosity tendency and other dissipation terms (such as side grad and bottom drag) in the momentum equations (the default is to use Adams-Bashforth for all terms); instead, dissipation is computed using a explicit, forward, first-order scheme. - For our coarse resolution setup with uniform harmonic viscosity, this setting is not strictly necessary - (and does not noticeably change results). However, for our eddy-permitting run we will use a difference + For our coarse resolution setup with uniform harmonic viscosity, this setting is not strictly necessary + (and does not noticeably change results). However, for our eddy-permitting run we will use a difference scheme for setting viscosity, and for stability requires this setting. .. literalinclude:: ../../../verification/tutorial_reentrant_channel/input/data @@ -511,7 +511,7 @@ PARM03 - Time stepping parameters :lineno-match: PARM04 - Gridding parameters -############################ +############################ - We specify a Cartesian coordinate system with 20 gridpoints in :math:`x` and 40 gridpoints in :math:`y`, with (default) origin (0,0). @@ -521,7 +521,7 @@ PARM04 - Gridding parameters :end-at: delY :lineno-match: -- We set the vertical grid spacing for 49 vertical levels, ranging from thickness of approximately 5.5 m at the +- We set the vertical grid spacing for 49 vertical levels, ranging from thickness of approximately 5.5 m at the surface to 149 m at depth. When varying cell thickness in this manner, one must be careful that vertical grid spacing varies smoothly with depth; see :numref:`sec_SOch_num_config` for details on how this specific grid spacing was generated. @@ -529,7 +529,7 @@ PARM04 - Gridding parameters :start-at: delR :end-at: 149.35 :lineno-match: - + PARM05 - Input datasets ####################### @@ -540,8 +540,8 @@ PARM05 - Input datasets :start-at: bathyFile :end-at: thetaClim :lineno-match: - -- This last line specifies the name of the 3-D file containing initial conditions for temperature (as noted above, + +- This last line specifies the name of the 3-D file containing initial conditions for temperature (as noted above, :varlink:`tRef` values specified in namelist ``PARM01`` are NOT used for the initial state). .. literalinclude:: ../../../verification/tutorial_reentrant_channel/input/data @@ -760,7 +760,8 @@ File ``input/bathy.50km.bin`` This is a 2-D(:math:`x,y`) map of bottom bathymetry, as generated by the `MATLAB `_ program :filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.m` -(input files are 32-bit single precision, by default). Our bathymetry file has active ocean grid cells +or the `Python `_ script :filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.py`. +Input files are 32-bit single precision, by default. Our bathymetry file has active ocean grid cells along both the eastern and western boundaries (i.e., no land points or walls are present along either boundary), and thus our model will be fully zonally reentrant. While our northern boundary also consists entirely of active ocean points, we prescribe a wall @@ -791,7 +792,8 @@ File ``input/zonal_wind.50km.bin``, ``input/SST_relax.50km.bin`` These files are 2-D(:math:`x,y`) maps of zonal wind stress :math:`\tau_{x}` (Nm\ :sup:`--2`) and surface relaxation temperature (:sup:`o`\ C), -as generated by program :filelink:`verification/tutorial_reentrant_channel/input/gendata_50km.m`. +as generated by program :filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.m` or +:filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.py`. Note that a 2-D(:math:`x,y`) file is expected even though as specified, both :math:`\tau_{x}` and SST field are only :math:`f(y)`. .. _reentrant_channel_ rbcsfiles: @@ -800,7 +802,9 @@ File ``input/temperature.50km.bin`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This file specifies a 3-D(:math:`x,y,z`) map of temperature (:sup:`o`\ C), -as generated by :filelink:`verification/tutorial_reentrant_channel/input/gendata_50km.m` (see :numref:`channel_simulation_temp_ic`). +as generated by :filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.m` or +:filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.py` +(see :numref:`channel_simulation_temp_ic`). Note again a 3-D(:math:`x,y,z`) file is expected despite temperature begin only :math:`f(y,z)`. This file is used here for two purposes: first, as specified in :filelink:`input/data `, these values are used for temperature initial conditions; @@ -815,9 +819,11 @@ File ``input/T_relax_mask.50km.bin`` This file specifies a 3-D(:math:`x,y,z`) mask, as required by :filelink:`/pkg/rbcs` to inform the model which gridpoints to relax. These values should be between 0.0 and 1.0, with 0.0 for no restoring, 1.0 for full restoring, with fractional values as a multiplicative factor to effectively weaken restoring at that location (see :numref:`sub_phys_pkg_rbcs`). Here, we select a value of 1.0 along the model northern wall -for all sub-surface depths (relaxation at the surface is specified using ``input/SST_relax.50km.bin``, otherwise you would be restoring the surface layer twice), +for all sub-surface depths (relaxation at the surface is specified using ``input/SST_relax.50km.bin``, +otherwise you would be restoring the surface layer twice), and use a fractional value for the :math:`xz` plane of grid cells just south of the northern border (see -:filelink:`verification/tutorial_reentrant_channel/input/gendata_50km.m`). +:filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.m` or +:filelink:`verification/tutorial_reentrant_channel/input/gendata.50km.py`). .. _reentrant_channel_build_run: @@ -836,7 +842,7 @@ it should take 12 hours or so to run 30 years; to speed this up using (see :numref:`running_mpi` for instructions how to run using `MPI `_, here you will be using 4 cores). As an exercise, see if you can speed it up further using additional processor cores, e.g., -by decreasing the tile size in :math:`x` and increasing :varlink:`nPx`. +by decreasing the tile size in :math:`x` and increasing :varlink:`nPx`. As configured, the model runs with :filelink:`pkg/gmredi` activated, i.e., :varlink:`useGMRedi`\ ``=.TRUE.`` in :filelink:`data.pkg `. In :numref:`reentrant_channel_solution` @@ -854,8 +860,16 @@ are discussed. Model Solution -------------- -See :filelink:`verification/tutorial_reentrant_channel/analysis/matlab_plots.m` for `MATLAB `_ -analysis code to compute and plot :numref:`channel_zm_temp_ml` through :numref:`channel_MOC_eddy_layers`. +Our primary focus in this section is physical interpretation of the model solution, +not how to generate plots from MITgcm output, and thus in parallel we strongly recommend carefully +going through our `Python `_ analysis code, documented in +`Jupyter Notebook `_ format, see +:filelink:`verification/tutorial_reentrant_channel/analysis/py_notebook.ipynb`. +This notebook reads in grid data, discusses (and plots) the setup and forcing data +files in additional detail, and generates figures shown in the tutorial. +`MATLAB `_ analysis code +to generate tutorial output figures is available at +:filelink:`verification/tutorial_reentrant_channel/analysis/matlab_plots.m`. .. _reentrant_channel_solution: @@ -873,17 +887,18 @@ In this tutorial we use standard :ref:`native Fortan (binary) output rather than `netCDF `_ output (as done in tutorial :ref:`Baroclinic Ocean Gyre `). Important note: when using :filelink:`pkg/mdsio`, the statistical diagnostics output is written in plain text, NOT binary format. An advantage is that this permits a simple unix ``cat`` or ``more`` command to display the file to the terminal window -as integration proceeds, i.e., for a quick check that results look reasonable. The disadvantage however is that some additional parsing -is required to generate some plots using these data. Making use of MITgcm shell script :filelink:`utils/scripts/extract_StD`, +as integration proceeds, i.e., for a quick check that results look reasonable. The disadvantage however +is that some additional parsing is required (when using `MATLAB `_) +to generate some plots using these data. Making use of MITgcm shell script :filelink:`utils/scripts/extract_StD`, in a terminal window (in the run directory) type :: - + % ../../../utils/scripts/extract_StD dynStDiag.0000000000.txt STATDIAGS dat where ``dynStDiag.0000000000.txt`` is the name of our statistical diagnostics output file, ``STATDIAGS`` is a name we chose for files generated by running the script, with extension ``dat``. -This shell script extracts data into the following (plain text) files: +This shell script extracts data into the following (plain text) files: - STATDIAGS_head.dat - header file containing metadata - STATDIAGS_Iter.dat - list of iteration numbers for which statdiags dumped @@ -907,12 +922,25 @@ where - nIter = number of iterations (i.e., time records) dumped - regList = list of region numbers (=0 here, as we did not define any regions, by default global output only) - time(:,1) = iteration numbers ; time(:,2) = time in simulation (seconds) - - listFlds = list of fields dumped + - listFlds = list of fields dumped - listK = for each field, lists number of k levels dumped - - stdiagout = 5 dimensional output array + - stdiagout = 5 dimensional output array ( kLev, time_rec, region_rec, [ave,std,min,max,vol], fld_rec ) where kLev=1 is depth-average, kLev=2:50 is for depths :varlink:`rC`\ (1:49) +A function to parse statistical diagnostics MITgcm output is also available in the python package :ref:`MITgcmutils`. +Executing the python command + +:: + + stdiags_bylev,stdiags_2D,iters = readstats('dynStDiag.0000000000.txt') + +will load up the level-by-level statistical diagnostics into ``stdiags_bylev`` (e.g., ``stdiags_bylev['THETA'][:,0,0]`` +is the time series for top level average temperature), +``stdiags_2D`` given column-integrated or 2-D fields (e.g., ``stdiags_2D['TRELAX'][:,0]`` is the time series for surface heat flux), +and ``iters`` is iteration number for the time series (e.g. ``iters['TRELAX']`` is a series of iteration numbers for the ``THETA`` diagnostic, +the user is left to convert into time units). See the :ref:`MITgcmutils` documention for more information. + On the left side of :numref:`channel_soln_stdiags` we show time series of global surface heat flux. In the first decade there is rapid adjustment, with a much slower trend in both mean and standard deviation in years 10-30. In the mean there remains a significant heat flux into the ocean in the run without GM (solid), @@ -937,7 +965,7 @@ temperature structure of the model solution is sensitive to our mesoscale eddy p :alt: HF and temperature Stat Diags :name: channel_soln_stdiags - Left: time series of area-integrated heat flux into the surface ocean (blue) and its standard deviation (magenta). + Left: time series of area-integrated heat flux into the surface ocean (blue) and its standard deviation (magenta). Right: area-mean temperature at the surface (top, cyan), in the thermocline (middle, green), and at depth (bottom, red). In all panels, solid curves show non-GM run, dashed curves include GM. @@ -1028,7 +1056,7 @@ was first reported in Danabasoglu et al. (1994) :cite:`danabasoglu:94`. Now let's use :filelink:`pkg/layers` output to examine the residual meridional overturning circulation, shown in :numref:`channel_bt_MOC_res_T`. We integrate the time- and zonal-mean transport in -isopycnal layers (see :numref:`layers_trans_schematic`) to obtain a streamfunction in density coordinates. +isopycnal layers (see :numref:`layers_trans_schematic`) to obtain a streamfunction in density coordinates. See Abernathy et al. (2011) :cite:`abernathy:11` for a more detailed explanation of this calculation; this approach is the tried-and-true method to diagnose the residual circulation in an eddy-permitting regime, as required when we run this setup at higher resolution (:numref:`reentrant_channel_soln_eddy`). @@ -1055,7 +1083,7 @@ which requires changing :filelink:`LAYERS_SIZE.h ` (as configured here, for 100 processors; for faster results change the tile size and use 200 or even 400 processors). Note we will NOT enable :filelink:`pkg/gmredi` in our eddy run, so it can be eliminated from the list in @@ -1116,6 +1144,7 @@ to specify 5 km resolution in 200 :math:`\times` 400 grid cells in :math:`x` and New files for bathymetry, forcing fields, and initial temperature can be generated using the `MATLAB `_ program :filelink:`verification/tutorial_reentrant_channel/input/gendata_5km.m` +or `Python `_ script :filelink:`verification/tutorial_reentrant_channel/input/gendata.5km.py` (don't forget to change the filenames in :filelink:`data.rbcs ` and ``PARM05`` in :filelink:`data `). @@ -1123,9 +1152,9 @@ Running at higher resolution requires a smaller time step for stability. Revisit (CFL condition, :eq:`eq_SOch_cfl_stability`) one could simply decrease the time step by the same factor of 10 decrease as :math:`\Delta x` -- stability of inertial oscillations is no longer a limiting factor, given a smaller :math:`\Delta t` in :eq:`eq_SOCh_inertial_stability` -- but to speed things up we'd like to keep :math:`\Delta t` as large as possible. With a rich eddying solution, however, is it clear that horizontal velocity -will remain order ~1 ms\ :sup:`-1`? As a compromise, we suggest setting parameter :varlink:`DeltaT`\ ``=250.`` (seconds) in +will remain order ~1 ms\ :sup:`--1`? As a compromise, we suggest setting parameter :varlink:`DeltaT`\ ``=250.`` (seconds) in :filelink:`data `, which we found to be stable. For this choice, a 30-year integration -requires setting :varlink:`nTimeSteps`\ ``=3732480``. +requires setting :varlink:`nTimeSteps`\ ``=3732480``. While it would be possible to decrease (spatially uniform) harmonic viscosity to a more appropriate value for this resolution, or perhaps use bi-harmonic viscosity @@ -1187,9 +1216,9 @@ showing a time mean over the last five years of the simulation. :name: channel_MOC_eddy_layers Left: Residual meridional overturning circulation (shaded) as computed in density (i.e., temperature) coordinates, - from eddying simulation averaged over years 26-30. Contour interval is 0.5 Sv. Green dashed curve shows maximum and minimum (instantaneous) SST in each latitude band. + from eddying simulation averaged over years 26-30. Contour interval is 0.5 Sv. Green dashed curve shows maximum and minimum (instantaneous) SST in each latitude band. Right: Residual meridional overturning circulation (shaded) as computed in density coordinates and converted back into depth coordinates, from eddying simulation averaged over years 26-30. - Black lines show zonal mean temperature, contour interval 1 :sup:`o`\C. + Black lines show zonal mean temperature, contour interval 1 :sup:`o`\C. In general, our coarse resolution solutions are not a bad likeness of the (time mean) eddying solution, particularly when we use :filelink:`pkg/gmredi` @@ -1230,15 +1259,15 @@ to parameterize mesoscale eddies. More detailed comments comparing these solutio In the coarse runs, however, the sponge layer is effectively cooling, particularly in the non-GM run. Although at present there is no diagnostic available in :filelink:`pkg/rbcs` which directly tabulates these fluxes, computing them is quite simple: the heat flux (in watts) into a grid cell in the sponge layer is computed as - :math:`\rho \text{C}_p {\cal V}_\theta * \frac{\theta (i,j,k) - \theta_{rbc} (i,j,k)}{\tau_T} * M_{rbc}` - where :math:`\text{C}_p` is :varlink:`HeatCapacity_Cp` (3994.0 J kg\ :sup:`-1`\ K\ :sup:`-1` by default), :math:`{\cal V}_\theta` is the grid cell volume + :math:`\rho \text{C}_p {\cal V}_\theta * \frac{\theta (i,j,k) - \theta_{\rm rbc} (i,j,k)}{\tau_T} * M_{\rm rbc}` + where :math:`\text{C}_p` is :varlink:`HeatCapacity_Cp` (3994.0 J kg\ :sup:`--1` K\ :sup:`--1` by default), :math:`{\cal V}_\theta` is the grid cell volume (:varlink:`rA`\ (i,j) * :varlink:`drF`\ (k) * :varlink:`hFacC`\ (i,j,k); see :numref:`reentrant_channel_bathy_file` for definition of :varlink:`hFacC`), :math:`\theta (i,j,k)` is gridpoint potential temperature (:sup:`o`\ C), - :math:`\theta (i,j,k)_{rbc}` is gridpoint relaxation potential temperature (:sup:`o`\ C, + :math:`\theta (i,j,k)_{\rm rbc}` is gridpoint relaxation potential temperature (:sup:`o`\ C, as prescribed in file ``input/temperature.5km.bin`` or ``input/temperature.50km.bin``), :math:`\tau_T` is the restoring timescale :varlink:`tauRelaxT` (as set in :ref:`data.rbcs ` to 864,000 seconds or 10 days), - and :math:`M_{rbc}` is a 3-D restoring mask (values between 0.0 and 1.0 as discussed + and :math:`M_{\rm rbc}` is a 3-D restoring mask (values between 0.0 and 1.0 as discussed :ref:`above `) as specified in file ``T_relax_mask.5km.bin`` or ``T_relax_mask.50km.bin``. .. [#] Note it is not stricly necessary to remove :filelink:`pkg/gmredi` from your high-resolution build -- however, if kept in the list of packages included in diff --git a/doc/examples/tracer_adjsens/tracer_adjsens.rst b/doc/examples/tracer_adjsens/tracer_adjsens.rst index 301f6d334b..7ce3470936 100644 --- a/doc/examples/tracer_adjsens/tracer_adjsens.rst +++ b/doc/examples/tracer_adjsens/tracer_adjsens.rst @@ -31,12 +31,12 @@ currents. The full equation for the time evolution .. math:: \frac{\partial C}{\partial t} \, = \, - -U\cdot \nabla C \, - \, \mu C \, + \, \Gamma(C) \,+ \, S + -\mathbf{U} \cdot \nabla C \, - \, \mu C \, + \, \Gamma(C) \,+ \, S :label: carbon_ddt also includes a source term :math:`S`. This term represents interior sources of :math:`C` such as would arise due to direct injection. The -velocity term, :math:`U`, is the sum of the model Eulerian circulation +velocity term, :math:`\mathbf{U}`, is the sum of the model Eulerian circulation and an eddy-induced velocity, the latter parameterized according to Gent/McWilliams (Gent and McWilliams 1990 :cite:`gen-mcw:90`; Gent et al. (1995) :cite:`gen-eta:95`). The convection function, :math:`\Gamma`, mixes :math:`C` vertically wherever diff --git a/doc/getting_started/getting_started.rst b/doc/getting_started/getting_started.rst index 8b787f7f7f..1d66fcecbb 100644 --- a/doc/getting_started/getting_started.rst +++ b/doc/getting_started/getting_started.rst @@ -12,14 +12,18 @@ model is to run one of the tutorial examples provided in the MITgcm repository (see :numref:`chap_modelExamples`), so would suggest newer MITgcm users jump there following a read-through of the first part of this chapter. Information is also provided -in this chapter on how to customize the code when you are ready to try implementing -the configuration you have in mind, in the second part (:numref:`customize_model`). -The code and algorithm are described more fully in :numref:`discret_algorithm` and +in this chapter on how to customize the code +when you are ready to try implementing +the configuration you have in mind, in the second +part (:numref:`customize_model`). +The code and algorithm are described more fully in +:numref:`discret_algorithm` and :numref:`sarch` and chapters thereafter. In this chapter and others (e.g., chapter :ref:`chap_contributing`), for arguments where the user is expected to replace the text -with a user-chosen name, userid, etc., our convention is to show these as upper-case +with a user-chosen name, userid, etc., our convention +is to show these as upper-case text surrounded by ``« »``, such as ``«USER_MUST_REPLACE_TEXT_HERE»``. The ``«`` and ``»`` characters are **NOT** typed when the text is replaced. @@ -40,17 +44,22 @@ click `here `__ Obtaining the code ================== -The MITgcm code and documentation are under continuous development and we generally -recommend that one downloads the latest version of the code. You will need to decide -if you want to work in a “git-aware” environment (`Method 1`_) or with a one-time -“stagnant” download (`Method 2`_). We generally recommend method 1, as it is more +The MITgcm code and documentation are under +continuous development and we generally +recommend that one downloads the latest version of the code. +You will need to decide if you want to work in a “git-aware” +environment (`Method 1`_) or with a one-time “stagnant” download (`Method 2`_). +We generally recommend method 1, as it is more flexible and allows your version of the code to be regularly updated as MITgcm -developers check in bug fixes and new features. However, this typically requires -at minimum a rudimentary understanding of git in order to make it worth one’s while. +developers check in bug fixes and new features. However, this typically +requires at minimum a rudimentary understanding of git in +order to make it worth one’s while. -Periodically we release an official checkpoint (or “tag”). We recommend one download +Periodically we release an official checkpoint +(or “tag”). We recommend one download the latest code, unless there are reasons for obtaining a specific checkpoint -(e.g. duplicating older results, collaborating with someone using an older release, etc.) +(e.g. duplicating older results, collaborating with +someone using an older release, etc.) .. _git-aware_download: @@ -67,8 +76,8 @@ Type: This will download the latest available code. If you now want to revert this code to a specific checkpoint release, first ``cd`` into the MITgcm directory -you just downloaded, then type ``git checkout checkpoint«XXX»`` where ``«XXX»`` -is the checkpoint version. +you just downloaded, then type ``git checkout checkpoint«XXX»`` +where ``«XXX»`` is the checkpoint version. Alternatively, if you prefer to use ssh keys (say for example, you have a firewall which won’t allow a https download), type: @@ -92,8 +101,8 @@ Method 2 -------- This section describes how to do a one-time download of MITgcm, NOT git-aware. -In a terminal window, ``cd`` to the directory where you want your code to reside. -To obtain the current code, type: +In a terminal window, ``cd`` to the directory where +you want your code to reside. To obtain the current code, type: :: @@ -108,59 +117,74 @@ For specific checkpoint release ``XXX``, instead type: Updating the code ================= -There are several different approaches one can use to obtain updates to MITgcm; which is best for -you depends a bit on how you intend to use MITgcm and your knowledge of git (and/or willingness -to learn). Below we outline three suggested update pathways: +There are several different approaches one can use to obtain updates to MITgcm; +which is best for you depends a bit on how you intend to use MITgcm and your +knowledge of git (and/or willingness to learn). +Below we outline three suggested update pathways: 1. **Fresh Download of MITgcm** -This approach is the most simple, and virtually foolproof. Whether you downloaded the code from a static -zip file (`Method 2`_) or used the git clone command (`Method 1`_), create a new directory and repeat -this procedure to download a current copy of MITgcm. Say for example you are starting a new -research project, this would be a great time to grab the most recent code repository and keep this -new work entirely separate from any past simulations. This approach requires no understanding of git, -and you are free to make changes to any files in the MIT repo tree (although we generally recommend -that you avoid doing so, instead working in new subdirectories or on separate scratch disks as described +This approach is the most simple, and virtually foolproof. Whether you +downloaded the code from a static zip file (`Method 2`_) or used the git +clone command (`Method 1`_), create a new directory and repeat +this procedure to download a current copy of MITgcm. Say for example you +are starting a new research project, this would be a great time to grab the +most recent code repository and keep this new work entirely separate +from any past simulations. This approach requires no understanding of git, +and you are free to make changes to any files in the MIT repo tree +(although we generally recommend that you avoid doing so, instead working +in new subdirectories or on separate scratch disks as described :ref:`here `, for example). 2. **Using** ``git pull`` **to update the (unmodified) MITgcm repo tree** -If you have downloaded the code through a git clone command (`Method 1`_ above), you can incorporate -any changes to the source code (including any changes to any files in the MITgcm repository, new packages -or analysis routines, etc.) that may have occurred since your original download. There is a simple -command to bring all code in the repository to a ‘current release’ state. From the MITgcm top directory +If you have downloaded the code through a git clone command +(`Method 1`_ above), you can incorporate any changes to the source code +(including any changes to any files in the MITgcm repository, new packages +or analysis routines, etc.) that may have occurred since your +original download. There is a simple command to bring all code in the +repository to a ‘current release’ state. From the MITgcm top directory or any of its subdirectories, type: :: % git pull -and all files will be updated to match the current state of the code repository, as it exists -at `GitHub `_. (*Note:* if you plan to contribute to -MITgcm and followed the steps to download the code as described in -:numref:`chap_contributing`, you will need to type ``git pull upstream`` instead.) - -This update pathway is ideal if you are in the midst of a project and you want to incorporate new -MITgcm features into your executable(s), or take advantage of recently added analysis utilties, etc. -After the git pull, any changes in model source code and include files will be updated, so you can -repeat the build procedure (:numref:`building_code`) and you will include all these new features +and all files will be updated to match the current state of the code +repository, as it exists at `GitHub `_. +(*Note:* if you plan to contribute to MITgcm and followed the steps to +download the code as described in :numref:`chap_contributing`, +you will need to type ``git pull upstream`` instead.) + +This update pathway is ideal if you are in the midst of a project and +you want to incorporate new MITgcm features into your executable(s), +or take advantage of recently added analysis utilties, etc. +After the git pull, any changes in model source code and include files +will be updated, so you can repeat the build procedure +(:numref:`building_code`) and you will include all these new features in your new executable. -Be forewarned, this will only work if you have not modified ANY of the files in the MITgcm repository -(adding new files is ok; also, all verification run subdirectories ``build`` and ``run`` are also ignored by git). -If you have modified files and the ``git pull`` fails with errors, there is no easy fix other than -to learn something about git (continue reading...) +Be forewarned, this will only work if you have not modified ANY of the +files in the MITgcm repository (adding new files is ok; also, all +verification run subdirectories ``build`` and ``run`` are also ignored by git). +If you have modified files and the ``git pull`` fails with errors, +there is no easy fix other than to learn something +about git (continue reading...) 3. **Fully embracing the power of git!** -Git offers many tools to help organize and track changes in your work. For example, one might keep separate -projects on different branches, and update the code separately (using ``git pull``) on these separate branches. -You can even make changes to code in the MIT repo tree; when git then tries to update code from upstream -(see :numref:`git_setup`), it will notify you about possible conflicts and even merge the code changes -together if it can. You can also use ``git commit`` to help you track what you are modifying in your -simulations over time. If you're planning to submit a pull request to include your changes, you should -read the contributing guide in :numref:`chap_contributing`, and we suggest you do this model development -in a separate, fresh copy of the code. See :numref:`using_git_and_github` for more information and how +Git offers many tools to help organize and track changes in your work. +For example, one might keep separate projects on different branches, +and update the code separately (using ``git pull``) on these separate branches. +You can even make changes to code in the MIT repo tree; when git then +tries to update code from upstream (see :numref:`git_setup`), it will notify +you about possible conflicts and even merge the code changes +together if it can. You can also use ``git commit`` to help you track what +you are modifying in your simulations over time. If you're planning to +submit a pull request to include your changes, you should read the +contributing guide in :numref:`chap_contributing`, and we suggest you do +this model development in a separate, fresh copy of the code. See +:numref:`using_git_and_github` for more information and how to use git effectively to manage your workflow. Model and directory structure @@ -169,46 +193,55 @@ Model and directory structure The “numerical” model is contained within a execution environment support wrapper. This wrapper is designed to provide a general framework for grid-point models; MITgcm is a specific numerical model that makes use of -this framework (see :numref:`wrapper` for additional detail). Under this structure, -the model is split into execution +this framework (see :numref:`wrapper` for additional detail). +Under this structure, the model is split into execution environment support code and conventional numerical model code. The execution environment support code is held under the :filelink:`eesupp` directory. The grid point model code is held under the :filelink:`model` -directory. Code execution actually starts in the :filelink:`eesupp` routines and -not in the :filelink:`model` routines. For this reason the top-level :filelink:`main.F ` -is in the :filelink:`eesupp/src` directory. In general, end-users should not -need to worry about the wrapper support code. The top-level routine for the numerical +directory. Code execution actually starts in the :filelink:`eesupp` routines +and not in the :filelink:`model` routines. For this reason the top-level +:filelink:`main.F ` is in the :filelink:`eesupp/src` +directory. In general, end-users should not need to worry about the +wrapper support code. The top-level routine for the numerical part of the code is in :filelink:`model/src/the_model_main.F`. Here is a brief description of the directory structure of the model under the root tree. - :filelink:`model`: this directory contains the main source code. Also - subdivided into two subdirectories: :filelink:`model/inc` (includes files) and :filelink:`model/src` (source code). + subdivided into two subdirectories: :filelink:`model/inc` (includes files) + and :filelink:`model/src` (source code). -- :filelink:`eesupp`: contains the execution environment source code. Also - subdivided into two subdirectories: :filelink:`eesupp/inc` and :filelink:`eesupp/src`. +- :filelink:`eesupp`: contains the execution environment source code. + Also subdivided into two subdirectories: :filelink:`eesupp/inc` + and :filelink:`eesupp/src`. - :filelink:`pkg`: contains the source code for the packages. Each package - corresponds to a subdirectory. For example, :filelink:`pkg/gmredi` contains the - code related to the Gent-McWilliams/Redi scheme, :filelink:`pkg/seaice` the code - for a dynamic seaice model which can be coupled to the ocean model. The packages are - described in detail in :numref:`packagesI` and :numref:`outp_pack`]. - -- :filelink:`doc`: contains MITgcm documentation in reStructured Text (rst) format. - -- :filelink:`tools`: this directory contains various useful tools. For example, - :filelink:`genmake2 ` is a script written in bash that should be used - to generate your makefile. The subdirectory :filelink:`tools/build_options` contains - ‘optfiles’ with the compiler options for many different compilers and machines - that can run MITgcm (see :numref:`genmake2_optfiles`). - This directory also contains subdirectories :filelink:`tools/adjoint_options` and :filelink:`tools/OAD_support` - that are used to generate the tangent linear and adjoint model (see details - in :numref:`chap_autodiff`). - -- :filelink:`utils`: this directory contains various utilities. The :filelink:`utils/matlab` subdirectory + corresponds to a subdirectory. For example, :filelink:`pkg/gmredi` + contains the code related to the Gent-McWilliams/Redi scheme, + :filelink:`pkg/seaice` the code for a dynamic seaice model which can be + coupled to the ocean model. The packages are described in detail in + :numref:`packagesI` and :numref:`outp_pack`]. + +- :filelink:`doc`: contains MITgcm documentation in reStructured + Text (rst) format. + +- :filelink:`tools`: this directory contains various useful tools. + For example, :filelink:`genmake2 ` is a script written + in bash that should be used to generate your makefile. + The subdirectory :filelink:`tools/build_options` contains + ‘optfiles’ with the compiler options for many different + compilers and machines that can run MITgcm + (see :numref:`genmake2_optfiles`). This directory also contains + subdirectories :filelink:`tools/adjoint_options` and + :filelink:`tools/OAD_support` that are used to generate the tangent linear + and adjoint model (see details in :numref:`chap_autodiff`). + +- :filelink:`utils`: this directory contains various utilities. + The :filelink:`utils/matlab` subdirectory contains matlab scripts for reading model output directly into - matlab. The subdirectory :filelink:`utils/python` contains similar routines for python. - :filelink:`utils/scripts` contains C-shell post-processing scripts for - joining processor-based and tiled-based model output. + matlab. The subdirectory :filelink:`utils/python` contains similar + routines for python. :filelink:`utils/scripts` contains C-shell + post-processing scripts for joining processor-based and + tiled-based model output. - :filelink:`verification`: this directory contains the model examples. See :numref:`chap_modelExamples`. @@ -232,12 +265,14 @@ Quickstart Guide To compile the code, we use the ``make`` program. This uses a file (``Makefile``) that allows us to pre-process source files, specify compiler and optimization options and also figures out any file -dependencies. We supply a script (:filelink:`genmake2 `), described in section -:numref:`genmake2_desc`, that automatically generates the ``Makefile`` for you. You -then need to build the dependencies and compile the code (:numref:`make_target_commands`). +dependencies. We supply a script (:filelink:`genmake2 `), +described in section :numref:`genmake2_desc`, that automatically generates +the ``Makefile`` for you. You then need to build the dependencies and +compile the code (:numref:`make_target_commands`). As an example, assume that you want to build and run experiment -:filelink:`verification/exp2`. Let’s build the code in :filelink:`verification/exp2/build`: +:filelink:`verification/exp2`. +Let’s build the code in :filelink:`verification/exp2/build`: :: @@ -249,27 +284,36 @@ First, generate the ``Makefile``: % ../../../tools/genmake2 -mods ../code -optfile «/PATH/TO/OPTFILE» -The ``-mods`` command line option tells :filelink:`genmake2 ` to override model source code -with any files in the subdirectory ``../code`` (here, you need to configure the size -of the model domain by overriding MITgcm’s default :filelink:`SIZE.h ` +The ``-mods`` command line option tells :filelink:`genmake2 ` +to override model source code with any files in the subdirectory ``../code`` +(here, you need to configure the size of the model domain by overriding +MITgcm’s default :filelink:`SIZE.h ` with an edited copy :filelink:`../code/SIZE.h ` containing the specific domain size for :filelink:`exp2 `). The ``-optfile`` command line option tells :filelink:`genmake2 ` -to run the specified :ref:`optfile `, a `bash `_ shell script, -during :filelink:`genmake2 `’s execution. +to run the specified +:ref:`optfile `, a `bash `_ +shell script, during :filelink:`genmake2 `’s execution. An :ref:`optfile ` typically contains -definitions of `environment variables `_, -paths, compiler options, and anything else that needs to be set in order to compile on your -local computer system or cluster with your specific Fortan compiler. As an example, we might -replace ``«/PATH/TO/OPTFILE»`` with :filelink:`../../../tools/build_options/linux_amd64_ifort11 ` -for use with the `Intel Fortran `_ compiler +definitions of +`environment variables `_, +paths, compiler options, and anything else that needs to be set in order +to compile on your local computer system or cluster with your specific +Fortan compiler. As an example, we might replace ``«/PATH/TO/OPTFILE»`` with +:filelink:`../../../tools/build_options/linux_amd64_ifort11 ` +for use with the +`Intel Fortran `_ compiler (version 11 and above) on a linux x86_64 platform. -This and many other :ref:`optfiles ` for common systems and Fortran compilers are located in :filelink:`tools/build_options`. +This and many other :ref:`optfiles ` for common systems +and Fortran compilers are located in :filelink:`tools/build_options`. -``-mods``, ``-optfile``, and many additional :filelink:`genmake2 ` command line options are described -more fully in :numref:`command_line_options`. Detailed instructions on building with -`MPI `_ are given in :numref:`build_mpi`. +``-mods``, ``-optfile``, and many additional +:filelink:`genmake2 ` command line options are described +more fully in :numref:`command_line_options`. Detailed instructions on +building with +`MPI `_ +are given in :numref:`build_mpi`. Once a ``Makefile`` has been generated, we create the dependencies with the command: @@ -290,7 +334,8 @@ Next, one can compile the code using: % make -Assuming no errors occurred, the ``make`` command creates an executable called ``mitgcmuv``. +Assuming no errors occurred, the ``make`` command creates +an executable called ``mitgcmuv``. Now you are ready to run the model. General instructions for doing so are given in section :numref:`run_the_model`. @@ -300,7 +345,8 @@ are given in section :numref:`run_the_model`. Generating a ``Makefile`` using genmake2 ---------------------------------------- -A shell script called ``genmake2`` for generating a ``Makefile`` is included as part of MITgcm. +A shell script called ``genmake2`` for generating a ``Makefile`` is +included as part of MITgcm. Typically ``genmake2`` is used in a sequence of steps as shown below: :: @@ -309,38 +355,52 @@ Typically ``genmake2`` is used in a sequence of steps as shown below: % make depend % make -The first step above creates a unix-style ``Makefile``. The ``Makefile`` is used by ``make`` -to specify how to compile the MITgcm source files (for more detailed descriptions of what the ``make`` tools -are, and how they are used, see `here `__). +The first step above creates a unix-style ``Makefile``. The ``Makefile`` +is used by ``make`` to specify how to compile the MITgcm source files +(for more detailed descriptions of what the ``make`` tools +are, and how they are used, see +`here `__). -This section describes details and capabilities of :filelink:`genmake2 `, located in the +This section describes details and capabilities of +:filelink:`genmake2 `, located in the :filelink:`tools` directory. :filelink:`genmake2 ` is a shell -script written to work in `bash `_ (and with all “sh”–compatible shells including -`Bourne `_ shells). Like many unix tools, there is a help option that is invoked thru ``genmake2 -h``. -:filelink:`genmake2 ` parses information from the following sources, in this order: +script written to work in +`bash `_ (and with all +“sh”–compatible shells including +`Bourne `_ shells). +Like many unix tools, there is a help option that is invoked +thru ``genmake2 -h``. :filelink:`genmake2 ` parses +information from the following sources, in this order: #. Command-line options (see :numref:`command_line_options`) #. A ``genmake_local`` file if one is found in the current directory. This is a `bash `_ shell - script that is executed prior to the :ref:`optfile ` (see step #3), - used in some special model configurations and/or to set some options that can - affect which lines of the :ref:`optfile ` are executed. - For example, this :filelink:`genmake_local ` file - is required for a special setup, building a ‘MITgcm coupler’ - executable; in a more typical setup, one will not require a ``genmake_local`` file. + script that is executed prior to the :ref:`optfile ` + (see step #3), used in some special model configurations and/or to + set some options that can affect which lines of the + :ref:`optfile ` are executed. + For example, this + :filelink:`genmake_local ` + file is required for a special setup, building a ‘MITgcm coupler’ + executable; in a more typical setup, one will not require a + ``genmake_local`` file. #. An “options file” a.k.a. :ref:`optfile ` - (a `bash `_ shell script) specified by the command-line option - ``–optfile «/PATH/TO/OPTFILE»``, as mentioned briefly in :numref:`building_quickstart` + (a `bash `_ shell + script) specified by the command-line option + ``–optfile «/PATH/TO/OPTFILE»``, as mentioned briefly + in :numref:`building_quickstart` and described in detail in :numref:`genmake2_optfiles`. #. A ``packages.conf`` file (if one is found) with the specific list of - packages to compile (see :numref:`using_packages`). The search path for file ``packages.conf`` is - first the current directory, and then each of the ``-mods`` directories - in the given order (as described :ref:`here `). + packages to compile (see :numref:`using_packages`). The search path for + file ``packages.conf`` is first the current directory, and then each + of the ``-mods`` directories in the given order (as described + :ref:`here `). -When you run the :filelink:`genmake2 ` script, typical output might be as follows: +When you run the :filelink:`genmake2 ` script, +typical output might be as follows: :: @@ -425,35 +485,43 @@ In the above, notice: but here we are building code from within the repository (specifically, in one of the verification subdirectory experiments). As such, :filelink:`genmake2 ` was smart enough to - locate all necessary files on its own. To specify a remote ``ROOTDIR``, see :ref:`here `. -- we specified the :ref:`optfile ` :filelink:`linux_amd64_gfortran ` + locate all necessary files on its own. To specify a remote ``ROOTDIR``, + see :ref:`here `. +- we specified the :ref:`optfile ` + :filelink:`linux_amd64_gfortran ` based on the computer system and Fortran compiler we used (here, a linux 64-bit machine with gfortran installed). -- :filelink:`genmake2 ` did some simple checking on availability - of certain system libraries; all were found (except `LAPACK `_, +- :filelink:`genmake2 ` did + some simple checking on availability + of certain system libraries; all were found (except + `LAPACK `_, which was not checked since it is not needed here). `NetCDF `_ only requires a ‘yes’ - if you want to write `netCDF `_ output; - more specifically, a ‘no’ response to “Can we create NetCDF-enabled binaries” will disable - including :filelink:`pkg/mnc` and switch to output plain binary files. - While the makefile can still be built with other ‘no’ responses, - sometimes this will foretell errors during the + if you want to write `netCDF `_ + output; more specifically, a ‘no’ response to “Can we create NetCDF-enabled + binaries” will disable including :filelink:`pkg/mnc` and switch to output + plain binary files. While the makefile can still be built with other + ‘no’ responses, sometimes this will foretell errors during the ``make depend`` or ``make`` commands. -- any ``.F`` or ``.h`` files in the ``-mods`` directory ``../code`` will also be compiled, - overriding any MITgcm repository versions of files, if they exist. -- a handful of packages are being used in this build; see :numref:`using_packages` - for more detail about how to enable and disable packages. -- :filelink:`genmake2 ` terminated without error (note output at end - after ``=== Done ===``), generating ``Makefile`` and a log file ``genmake.log``. - As mentioned, this does not guarantee that your setup will compile properly, but if - there are errors during ``make depend`` or ``make``, these error messages and/or the - standard output from :filelink:`genmake2 ` or ``genmake.log`` may - provide clues as to the problem. +- any ``.F`` or ``.h`` files in the ``-mods`` directory ``../code`` will + also be compiled, overriding any MITgcm repository versions of files, + if they exist. +- a handful of packages are being used in this build; see + :numref:`using_packages` for more detail about how to enable and disable + packages. +- :filelink:`genmake2 ` terminated without error + (note output at end after ``=== Done ===``), generating ``Makefile`` and + a log file ``genmake.log``. As mentioned, this does not guarantee that + your setup will compile properly, but if there are errors during + ``make depend`` or ``make``, these error messages and/or the + standard output from :filelink:`genmake2 ` or + ``genmake.log`` may provide clues as to the problem. If instead :filelink:`genmake2 ` finishes with a warning message ``Warning: FORTRAN compiler test failed`` , this means that :filelink:`genmake2 ` is unable to locate the Fortran - compiler or pass a trivial “hello world” Fortran compilation test. In this case, you - should see ``genmake.log`` for errors and/or seek assistance from your system administrator; + compiler or pass a trivial “hello world” Fortran compilation test. + In this case, you should see ``genmake.log`` for errors and/or seek + assistance from your system administrator; these tests need to pass in order to proceed to the ``make`` steps. .. _command_line_options: @@ -471,17 +539,19 @@ command-line options. A complete list of these options can be obtained by: The most important command-line options are: ``–optfile «/PATH/TO/OPTFILE»`` - (or shorter: ``-of`` ) specifies the :ref:`optfile ` that should be - used for a particular build. + (or shorter: ``-of`` ) specifies the :ref:`optfile ` + that should be used for a particular build. - If no :ref:`optfile ` is specified through the command line, - :filelink:`genmake2 ` will try to make a + If no :ref:`optfile ` is specified through the command + line, :filelink:`genmake2 ` will try to make a reasonable guess from the list provided in :filelink:`tools/build_options`. The method used for making this guess is to first determine the combination of operating system and hardware and then find a working Fortran compiler within the user’s path. When - these three items have been identified, :filelink:`genmake2 ` will try to find an - :ref:`optfile ` that has a matching name. See :numref:`genmake2_optfiles`. + these three items have been identified, + :filelink:`genmake2 ` will try to find an + :ref:`optfile ` that has a matching name. + See :numref:`genmake2_optfiles`. .. _mods_option: @@ -490,11 +560,13 @@ The most important command-line options are: directories contain files with names that may (or may not) exist in the main MITgcm source tree but will be overridden by any identically-named sources within the ``-mods`` directories. - Note the quotes around the list of directories, necessary given multiple arguments. + Note the quotes around the list of directories, + necessary given multiple arguments. The order of precedence for versions of files with identical names: - - “mods” directories in the order given (e.g., will use copy of file located in DIR1 instead of DIR2) + - “mods” directories in the order given (e.g., will use copy of file + located in DIR1 instead of DIR2) - Packages either explicitly specified or included by default @@ -507,19 +579,21 @@ The most important command-line options are: ``-rootdir «/PATH/TO/MITGCMDIR»`` specify the location of the MITgcm repository top directory (``ROOTDIR``). - By default, :filelink:`genmake2 ` will try to find this location by - looking in parent directories from where :filelink:`genmake2 ` is executed + By default, :filelink:`genmake2 ` will try to find this + location by looking in parent directories from where + :filelink:`genmake2 ` is executed (up to 5 directory levels above the current directory). - In the quickstart example above (:numref:`building_quickstart`) we built the - executable in the ``build`` directory of the experiment. + In the quickstart example above (:numref:`building_quickstart`) we built + the executable in the ``build`` directory of the experiment. Below, we show how to configure and compile the code on a scratch disk, without having to copy the entire source - tree. The only requirement is that you have :filelink:`genmake2 ` + tree. The only requirement is that you have + :filelink:`genmake2 ` in your `$PATH `_, or - you know the absolute path to :filelink:`genmake2 `. In general, one can - compile the code in any given directory by following this procedure. - Assuming the model source is in ``~/MITgcm``, then the + you know the absolute path to :filelink:`genmake2 `. + In general, one can compile the code in any given directory by following + this procedure. Assuming the model source is in ``~/MITgcm``, then the following commands will build the model in ``/scratch/exp2-run1``: :: @@ -530,13 +604,16 @@ The most important command-line options are: % make As an alternative to specifying the MITgcm repository location through - the ``-rootdir`` command-line option, :filelink:`genmake2 ` recognizes the - `environment variable `_ ``$MITGCM_ROOTDIR``. + the ``-rootdir`` command-line option, :filelink:`genmake2 ` + recognizes the + `environment variable `_ + ``$MITGCM_ROOTDIR``. ``-standarddirs «/PATH/TO/STANDARDDIR»`` - specify a path to the standard MITgcm directories for source and includes files. - By default, :filelink:`model` and :filelink:`eesupp` - directories (``src`` and ``inc``) are the “standard dirs”. This command can be used + specify a path to the standard MITgcm directories for source and includes + files. By default, :filelink:`model` and :filelink:`eesupp` + directories (``src`` and ``inc``) are the “standard dirs”. + This command can be used to reset these default standard directories, or instead NOT include either :filelink:`model` or :filelink:`eesupp` as done in some specialized configurations. @@ -545,30 +622,36 @@ The most important command-line options are: generates a makefile for an OpenAD build (see :numref:`ad_openad`) ``–adoptfile «/PATH/TO/FILE»`` - (or shorter: ``-adof`` ) specifies the “adjoint” or automatic differentiation options - file to be used. The file is analogous to the optfile defined above but it - specifies information for the AD build process. See :numref:`adoptfile`. + (or shorter: ``-adof`` ) specifies the “adjoint” or automatic + differentiation options file to be used. The file is analogous to the + optfile defined above but it specifies information for the AD + build process. See :numref:`adoptfile`. The default file is located in :filelink:`tools/adjoint_options/adjoint_default` and it defines the “TAF” and “TAMC” compiler options. ``–mpi`` - enables certain `MPI `_ features (using CPP ``#define``) - within the code and is necessary for `MPI `_ builds + enables certain + `MPI `_ + features (using CPP ``#define``) within the code and is necessary for + `MPI `_ builds (see :numref:`build_mpi`). ``–omp`` - enables OpenMP code and compiler flag ``OMPFLAG`` (see :numref:`build_openmp`). + enables OpenMP code and compiler flag ``OMPFLAG`` + (see :numref:`build_openmp`). ``–ieee`` use IEEE numerics (requires support in optfile). - This option is typically a good choice if one wants to compare output from different machines - running the same code. Note using IEEE disables all compiler optimizations. + This option is typically a good choice if one wants to compare output + from different machines running the same code. + Note using IEEE disables all compiler optimizations. ``-devel`` - use IEEE numerics (requires support in optfile) and add additional compiler options to check - array bounds and add other additional warning and debugging flags. + use IEEE numerics (requires support in optfile) and add additional + compiler options to check array bounds and add other additional warning + and debugging flags. ``–make «/PATH/TO/GMAKE»`` due to the poor handling of soft-links and other bugs common with @@ -577,10 +660,10 @@ The most important command-line options are: option provides a means for specifying the make executable to be used. -While it is possible to use :filelink:`genmake2 ` command-line options -to set the Fortran or C compiler name (``-fc`` and ``-cc`` respectively), -we generally recommend setting these through an :ref:`optfile `, -as discussed in :numref:`genmake2_optfiles`. +While it is possible to use :filelink:`genmake2 ` command-line +options to set the Fortran or C compiler name (``-fc`` and ``-cc`` +respectively), we generally recommend setting these through an +:ref:`optfile `, as discussed in :numref:`genmake2_optfiles`. Other :filelink:`genmake2 ` options are available to enable performance/timing analyses, etc.; see ``genmake2 -h`` for more info. @@ -608,7 +691,8 @@ shipped with the code is **OS_HARDWARE_COMPILER** where from a ``uname -m`` command. Some common CPU types: ``amd64`` - use this code for x86_64 systems (most common, including AMD and Intel 64-bit CPUs) + use this code for x86_64 systems (most common, including AMD and + Intel 64-bit CPUs) ``ia64`` is for Intel IA64 systems (eg. Itanium, Itanium2) @@ -617,114 +701,146 @@ shipped with the code is **OS_HARDWARE_COMPILER** where is for (old) Mac PowerPC systems **COMPILER** - is the compiler name (generally, the name of the Fortran compiler executable). - MITgcm is primarily written in `FORTRAN 77 `_. - Compiling the code requires a `FORTRAN 77 `_ compiler. - Any more recent compiler which is backwards compatible with `FORTRAN 77 `_ + is the compiler name (generally, the name of the Fortran compiler + executable). MITgcm is primarily written in + `FORTRAN 77 `_. + Compiling the code requires a + `FORTRAN 77 `_ compiler. + Any more recent compiler which is backwards compatible with + `FORTRAN 77 `_ can also be used; for example, the model will build successfully with a `Fortran 90 `_ - or `Fortran 95 `_ compiler. - A `C99 `_ compatible compiler is - also need, together with a `C preprocessor `_ . Some optional - packages make use of `Fortran 90 `_ constructs - (either `free-form formatting `_, - or `dynamic memory allocation `_); as such, - setups which use these packages require a `Fortran 90 `_ + or `Fortran 95 `_ + compiler. A `C99 `_ compatible compiler + is also need, together with a + `C preprocessor `_ . + Some optional packages make use of + `Fortran 90 `_ constructs + (either + `free-form formatting `_, + or + `dynamic memory allocation `_); + as such, setups which use these packages require a + `Fortran 90 `_ or later compiler build. -There are existing optfiles that work with many common hardware/compiler configurations; -we first suggest you peruse the list in :filelink:`tools/build_options` -and try to find your platform/compiler configuration. These are the most common: +There are existing optfiles that work with many common hardware/compiler +configurations; we first suggest you peruse the list in +:filelink:`tools/build_options` and try to find your platform/compiler +configuration. These are the most common: - :filelink:`linux_amd64_gfortran ` - :filelink:`linux_amd64_ifort11 ` - :filelink:`linux_amd64_ifort+impi ` - :filelink:`linux_amd64_pgf77 ` -The above optfiles are all for linux x86_64 (64-bit) systems, utilized in many large high-performance computing centers. -All of the above will work with single-threaded, `MPI `_, -or shared memory (`OpenMP `_) code configurations. -gfortran is `GNU Fortran `_, +The above optfiles are all for linux x86_64 (64-bit) systems, utilized in many +large high-performance computing centers. All of the above will work with +single-threaded, +`MPI `_, +or shared memory (`OpenMP `_) code +configurations. gfortran is `GNU Fortran `_, ifort is `Intel Fortran `_, -pgf77 is `PGI Fortran `_ (formerly known as “The Portland Group”). -Note in the above list there are two ``ifort`` optfiles: +pgf77 is `PGI Fortran `_ (formerly known as +“The Portland Group”). Note in the above list there are two ``ifort`` optfiles: :filelink:`linux_amd64_ifort+impi ` is for a specific case of using ``ifort`` with the -`Intel MPI library `_ (a.k.a. ``impi``), -which requires special define statements in the optfile (in contrast with -`Open MPI `_ or `MVAPICH2 `_ -libraries; see :numref:`build_mpi`). Note that both ifort optfiles require ifort version 11 or higher. -Many clusters nowadays use `environment modules `_, -which allows one to easily choose which compiler to use through ``module load «MODULENAME»``, -automatically configuring your environment for a specific compiler choice -(type ``echo $PATH`` to see where :filelink:`genmake2 ` will look for compilers and system software). - -In most cases, your platform configuration will be included in the available optfiles -:filelink:`list ` and will result in a -usable ``Makefile`` being generated. If you are unsure which optfile is correct for your configuration, -you can try not specifying an optfile; on some systems the -:filelink:`genmake2 ` program will be able to automatically -recognize the hardware, find a compiler and other tools within the user’s -path, and then make a best guess as to an appropriate optfile +`Intel MPI library `_ +(a.k.a. ``impi``), which requires special define statements in the optfile +(in contrast with `Open MPI `_ or +`MVAPICH2 `_ libraries; +see :numref:`build_mpi`). Note that both ifort optfiles require ifort +version 11 or higher. Many clusters nowadays use +`environment modules `_, +which allows one to easily choose which compiler to use through +``module load «MODULENAME»``, automatically configuring your environment +for a specific compiler choice (type ``echo $PATH`` to see where +:filelink:`genmake2 ` will look for compilers +and system software). + +In most cases, your platform configuration will be included in the available +optfiles :filelink:`list ` and will result in a +usable ``Makefile`` being generated. If you are unsure which optfile is +correct for your configuration, you can try not specifying an optfile; +on some systems the :filelink:`genmake2 ` program will be able +to automatically recognize the hardware, find a compiler and other tools +within the user’s path, and then make a best guess as to an appropriate optfile from the list in the :filelink:`tools/build_options` directory. However, for some platforms and code configurations, new optfiles must be written. To create a new optfile, it is generally best to start with one of the defaults and modify it to suit your needs. -Like :filelink:`genmake2 `, the optfiles are all written in `bash `_ (or using a simple -`sh–compatible `_ syntax). While nearly all -`environment variables `_ used within -:filelink:`genmake2 ` may be specified in the optfiles, the critical ones that -should be defined are: +Like +:filelink:`genmake2 `, the optfiles are all written in `bash `_ +(or using a simple +`sh–compatible `_ syntax). +While nearly all +`environment variables `_ +used within :filelink:`genmake2 ` may be specified in the +optfiles, the critical ones that should be defined are: .. _list_of_optfile_env_vars: ``FC`` - the Fortran compiler (executable) to use on ``.F`` files, e.g., ``ifort`` or ``gfortran``, or if using MPI, the mpi-wrapper equivalent, e.g., ``mpif77`` + the Fortran compiler (executable) to use on ``.F`` files, e.g., ``ifort`` + or ``gfortran``, or if using MPI, the mpi-wrapper equivalent, + e.g., ``mpif77`` ``F90C`` - the Fortran compiler to use on ``.F90`` files (only necessary if your setup includes a package which contains ``.F90`` source code) + the Fortran compiler to use on ``.F90`` files (only necessary if your setup + includes a package which contains ``.F90`` source code) ``CC`` - similarly, the C compiler to use, e.g., ``icc`` or ``gcc``, or if using MPI, the mpi-wrapper equivalent, e.g., ``mpicc`` + similarly, the C compiler to use, e.g., ``icc`` or ``gcc``, or if using MPI, + the mpi-wrapper equivalent, e.g., ``mpicc`` ``DEFINES`` command-line options passed to the compiler ``CPP`` - the C preprocessor to use, and any necessary command-line options, e.g. ``cpp -traditional -P`` + the C preprocessor to use, and any necessary command-line options, + e.g. ``cpp -traditional -P`` ``CFLAGS``, ``FFLAGS`` - command-line compiler flags required for your C and Fortran compilers, respectively, to compile and execute properly. - See your C and Fortran compiler documentation for specific options and syntax. + command-line compiler flags required for your C and Fortran compilers, + respectively, to compile and execute properly. See your C and Fortran + compiler documentation for specific options and syntax. ``FOPTIM`` - command-line optimization Fortran compiler settings. See your Fortran compiler documentation for specific options and syntax. + command-line optimization Fortran compiler settings. See your Fortran + compiler documentation for specific options and syntax. ``NOOPTFLAGS`` - command-line settings for special files that should not be optimized using the ``FOPTIM`` flags + command-line settings for special files that should not be optimized + using the ``FOPTIM`` flags ``NOOPTFILES`` - list of source code files that should be compiled using ``NOOPTFLAGS`` settings + list of source code files that should be compiled using ``NOOPTFLAGS`` + settings ``INCLUDES`` - path for additional files (e.g., ``netcdf.inc``, ``mpif.h``) to include in the compilation using the command-line ``-I`` option + path for additional files (e.g., ``netcdf.inc``, ``mpif.h``) to include + in the compilation using the command-line ``-I`` option ``INCLUDEDIRS`` path for additional files to be included in the compilation ``LIBS`` - path for additional library files that need to be linked to generate the final executable, e.g., ``libnetcdf.a`` + path for additional library files that need to be linked to generate the + final executable, e.g., ``libnetcdf.a`` -For example, an excerpt from an optfile which specifies several of these variables (here, for the linux-amd64 -architecture using the PGI Fortran compiler) is as follows: +For example, an excerpt from an optfile which specifies several of these +variables (here, for the linux-amd64 architecture using the PGI Fortran +compiler) is as follows: .. literalinclude:: ../../tools/build_options/linux_amd64_pgf77 :start-at: if test "x$MPI" = xtrue ; then :end-at: F90OPTIM=$FOPTIM -The :ref:`above ` list of `environment variables `_ +The +:ref:`above ` list of `environment variables `_ typically specified in an optfile is by no means complete; -additional variables may be required for your specific setup and/or your specific Fortran (or C) compiler. +additional variables may be required for your specific setup and/or your +specific Fortran (or C) compiler. If you write an optfile for an unrepresented machine or compiler, you are strongly encouraged to submit the optfile to the MITgcm project for @@ -733,20 +849,22 @@ provide help writing or modifing optfiles. Please submit the file through the `GitHub issue tracker `_ or email the MITgcm-support@mitgcm.org list. -Instructions on how to use optfiles to build `MPI `_\ -enabled executables is presented in :numref:`build_mpi`. +Instructions on how to use optfiles to build +`MPI `_\ -enabled +executables is presented in :numref:`build_mpi`. .. _make_target_commands: ``make`` commands ----------------- -Following a successful build of ``Makefile``, type ``make depend``. This command -modifies the ``Makefile`` by attaching a (usually, long) list of +Following a successful build of ``Makefile``, type ``make depend``. This +command modifies the ``Makefile`` by attaching a (usually, long) list of files upon which other files depend. The purpose of this is to reduce re-compilation if and when you start to modify the code. The ``make depend`` -command also creates local links for all source files from the source directories -(see "-mods" description in :numref:`command_line_options`), so that -all source files to be used are visible from the local build directory, +command also creates local links for all source files from the source +directories (see "-mods" description in :numref:`command_line_options`), +so that all source files to be used are visible from the local build directory, either as hardcopy or as symbolic link. **IMPORTANT NOTE:** Editing the source code files in the build directory @@ -754,26 +872,28 @@ will not edit a local copy (since these are just links) but will edit the original files in :filelink:`model/src` (or :filelink:`model/inc`) or in the specified ``-mods`` directory. While the latter might be what you intend, editing the master copy in :filelink:`model/src` -is usually **NOT** what is intended and may cause grief somewhere down the road. -Rather, if you need to add +is usually **NOT** what is intended and may cause grief somewhere down +the road. Rather, if you need to add to the list of modified source code files, place a copy of the file(s) to edit in the ``-mods`` directory, make the edits to -these ``-mods`` directory files, go back to the build directory and type ``make Clean``, -and then re-build the makefile (these latter steps critical or the makefile will not -link to this newly edited file). +these ``-mods`` directory files, go back to the build directory and +type ``make Clean``, and then re-build the makefile (these latter steps +critical or the makefile will not link to this newly edited file). -The final ``make`` invokes the `C preprocessor `_ +The final ``make`` invokes the +`C preprocessor `_ to produce the “little f” files (``*.f`` and ``*.f90``) and then compiles them to object code using the specified Fortran compiler and options. -The C preprocessor step converts a number of CPP macros and ``#ifdef`` statements to actual Fortran and -expands C-style ``#include`` statements to incorporate header files into the -“little f" files. CPP style macros and ``#ifdef`` statements are used to support generating +The C preprocessor step converts a number of CPP macros and ``#ifdef`` +statements to actual Fortran and expands C-style ``#include`` statements to +incorporate header files into the “little f" files. CPP style macros and +``#ifdef`` statements are used to support generating different compile code for different model configurations. -The result of the build process is an executable with the name -``mitgcmuv``. +The result of the build process is an executable with the name ``mitgcmuv``. -Additional make “targets” are defined within the makefile to aid in the production -of adjoint (:numref:`building_adcode_using_taf`) and other versions of MITgcm. +Additional make “targets” are defined within the makefile to aid in the +production of adjoint (:numref:`building_adcode_using_taf`) and other +versions of MITgcm. On computers with multiple processor cores, the build process can often be sped up appreciably using the command: @@ -785,21 +905,26 @@ up appreciably using the command: where the “2” can be replaced with a number that corresponds to the number of cores (or discrete CPUs) available. -In addition, there are several housekeeping ``make clean`` options that might be useful: +In addition, there are several housekeeping ``make clean`` options that might +be useful: -- ``make clean`` removes files that ``make`` generates (e.g., \*.o and \*.f files) -- ``make Clean`` removes files and links generated by ``make`` and ``make depend``; strongly recommended for “un-clean” directories which may contain - the (perhaps partial) results of previous builds -- ``make CLEAN`` removes pretty much everything, including any executables and output from :filelink:`genmake2 ` +- ``make clean`` removes files that ``make`` generates + (e.g., \*.o and \*.f files) +- ``make Clean`` removes files and links generated by ``make`` and + ``make depend``; strongly recommended for “un-clean” directories which + may contain the (perhaps partial) results of previous builds +- ``make CLEAN`` removes pretty much everything, including any executables + and output from :filelink:`genmake2 ` .. _build_mpi: Building with MPI ----------------- -Building MITgcm to use `MPI `_ -libraries can be complicated due to the -variety of different `MPI `_ +Building MITgcm to use +`MPI `_ libraries can +be complicated due to the variety of different +`MPI `_ implementations available, their dependencies or interactions with different compilers, and their often ad-hoc locations within file systems. For these reasons, its generally a good @@ -807,16 +932,23 @@ idea to start by finding and reading the documentation for your machine(s) and, if necessary, seeking help from your local systems administrator. -The steps for building MITgcm with `MPI `_ support are: - -#. Make sure you have `MPI `_ - libraries installed on your computer system or cluster. Different Fortran compilers (and different versions of a specific compiler) - will generally require a custom version (of a `MPI `_ library) - built specifically for it. On `environment module `_-enabled +The steps for building MITgcm with +`MPI `_ support are: + +#. Make sure you have + `MPI `_ libraries + installed on your computer system or cluster. Different Fortran compilers + (and different versions of a specific compiler) will generally require a + custom version (of a + `MPI `_ library) + built specifically for it. + On `environment module `_-enabled clusters, one typically must first load a - Fortran compiler, then specific `MPI `_ - libraries for that compiler will become available to load. If libraries are not installed, MPI - implementations and related tools are available including: + Fortran compiler, then specific + `MPI `_ + libraries for that compiler will become available to load. + If libraries are not installed, MPI implementations and related tools are + available including: - `Open MPI `_ @@ -828,48 +960,58 @@ The steps for building MITgcm with `MPI `_ +#. Determine the location of your + `MPI `_ library “wrapper” Fortran compiler, e.g., ``mpif77`` or ``mpifort`` etc. - which will be used instead of the name of the fortran compiler (``gfortran``, ``ifort``, ``pgi77`` etc.) - to compile your code. Often the directory - in which these wrappers are located will be automatically added - to your `$PATH `_ - `environment variable `_ when you perform a - ``module load «SOME_MPI_MODULE»``; thus, you will not need to do anything beyond the module load itself. + which will be used instead of the name of the fortran compiler + (``gfortran``, ``ifort``, ``pgi77`` etc.) to compile your code. + Often the directory in which these wrappers are located will be + automatically added to your + `$PATH `_ + `environment variable `_ + when you perform a ``module load «SOME_MPI_MODULE»``; thus, you will not + need to do anything beyond the module load itself. If you are on a cluster that does not support `environment modules `_, you may have to manually add this directory to your path, - e.g., type ``PATH=$PATH:«ADD_ADDITIONAL_PATH_TO_MPI_WRAPPER_HERE»`` in a bash shell. + e.g., type ``PATH=$PATH:«ADD_ADDITIONAL_PATH_TO_MPI_WRAPPER_HERE»`` + in a bash shell. -#. Determine the location of the includes file ``mpif.h`` and any - other `MPI `_-related includes files. - Often these files will be located in a subdirectory off the main - `MPI `_ +#. Determine the location of the includes file ``mpif.h`` and any other + `MPI `_-related + includes files. Often these files will be located in a subdirectory off + the main `MPI `_ library ``include/``. In all optfiles in :filelink:`tools/build_options`, - it is assumed `environment variable `_ + it is assumed + `environment variable `_ ``$MPI_INC_DIR`` specifies this location; ``$MPI_INC_DIR`` should be set in your terminal session prior to generating a ``Makefile``. -#. Determine how many processors (i.e., CPU cores) you will be using in your run, - and modify your configuration’s :filelink:`SIZE.h ` - (located in a “modified code” directory, as specified in your :filelink:`genmake2 ` - :ref:`command-line `). In :filelink:`SIZE.h `, +#. Determine how many processors (i.e., CPU cores) you will be using in your + run, and modify your configuration’s :filelink:`SIZE.h ` + (located in a “modified code” directory, as specified in your + :filelink:`genmake2 ` + :ref:`command-line `). + In :filelink:`SIZE.h `, you will need to set variables :varlink:`nPx`\*\ :varlink:`nPy` to match the number of processors you will specify in your run script’s MITgcm execution statement (i.e., typically ``mpirun`` or some similar command, see :numref:`running_mpi`). Note that MITgcm does not use - `dynamic memory allocation `_ (a feature of + `dynamic memory allocation `_ + (a feature of `Fortran 90 `_, not `FORTRAN 77 `_), so all array sizes, and hence the number of processors - to be used in your `MPI `_ run, - must be specified at compile-time in addition to run-time. More information about the MITgcm - WRAPPER, domain decomposition, and how to configure :filelink:`SIZE.h ` + to be used in your + `MPI `_ run, + must be specified at compile-time in addition to run-time. More information + about the MITgcm WRAPPER, domain decomposition, and how to configure + :filelink:`SIZE.h ` can be found in :numref:`using_wrapper`. -#. Build the code with the :filelink:`genmake2 ` ``-mpi`` option - using commands such as: +#. Build the code with the :filelink:`genmake2 ` ``-mpi`` + option using commands such as: :: @@ -882,10 +1024,11 @@ The steps for building MITgcm with `MPI `_) for multi-threaded -executable builds can be accomplished simply through the :filelink:`genmake2 ` -command-line option ``-omp``: +executable builds can be accomplished simply through the +:filelink:`genmake2 ` command-line option ``-omp``: :: @@ -893,13 +1036,17 @@ command-line option ``-omp``: % make depend % make -While the most common optfiles specified in :numref:`genmake2_optfiles` include support for the ``-omp`` option, -some optfiles in :filelink:`tools/build_options` do not include support for multi-threaded executable builds. -Before using one of the less common optfiles, check whether ``OMPFLAG`` is defined. +While the most common optfiles specified in :numref:`genmake2_optfiles` include +support for the ``-omp`` option, some optfiles in +:filelink:`tools/build_options` do not include support for multi-threaded +executable builds. Before using one of the less common optfiles, +check whether ``OMPFLAG`` is defined. -Note that one does not need to specify the number of threads until runtime (see :numref:`running_openmp`). -However, the default maximum number of threads in MITgcm is set to a (low) value of 4, -so if you plan on more you will need to change this value in :filelink:`eesupp/inc/EEPARAMS.h` in your modified code directory. +Note that one does not need to specify the number of threads until runtime +(see :numref:`running_openmp`). However, the default maximum number of threads +in MITgcm is set to a (low) value of 4, so if you plan on more you will need +to change this value in :filelink:`eesupp/inc/EEPARAMS.h` in your modified +code directory. .. _run_the_model: @@ -907,7 +1054,8 @@ Running the model ================= If compilation finished successfully (:numref:`building_code`) then an -executable called ``mitgcmuv`` will now exist in the local (``build``) directory. +executable called ``mitgcmuv`` will now exist in the +local (``build``) directory. To run the model as a single process (i.e., not in parallel) simply type (assuming you are still in the ``build`` directory): @@ -919,12 +1067,12 @@ type (assuming you are still in the ``build`` directory): % cp ../build/mitgcmuv . % ./mitgcmuv -Here, we are making a link to all the support data files (in ``../input/``) needed by the MITgcm -for this experiment, and then copying the executable from the the build directory. -The ``./`` in the last step is a safe-guard to make sure you use the local executable in -case you have others that might exist in your ``$PATH``. -The above command will spew out many lines of text output to your -screen. This output contains details such as parameter values as well as +Here, we are making a link to all the support data files (in ``../input/``) +needed by the MITgcm for this experiment, and then copying the executable from +the the build directory. The ``./`` in the last step is a safe-guard to make +sure you use the local executable in case you have others that might exist in +your ``$PATH``. The above command will spew out many lines of text output to +your screen. This output contains details such as parameter values as well as diagnostics such as mean kinetic energy, largest CFL number, etc. It is worth keeping this text output with the binary output so we normally re-direct the ``stdout`` stream as follows: @@ -938,19 +1086,22 @@ helpful to include the last few line of this ``output.txt`` file along with the (``stderr``) error message within any bug reports. For the example experiment in :filelink:`verification/exp2`, an example of the -output is kept in :filelink:`verification/exp2/results/output.txt` for comparison. You can compare -your ``output.txt`` with the corresponding one for that experiment to -check that your set-up indeed works. Congratulations! +output is kept in :filelink:`verification/exp2/results/output.txt` for +comparison. You can compare your ``output.txt`` with the corresponding one for +that experiment to check that your set-up indeed works. Congratulations! .. _running_mpi: Running with MPI ---------------- -Run the code with the appropriate `MPI `_ “run” or “exec” program -provided with your particular implementation of `MPI `_. +Run the code with the appropriate +`MPI `_ “run” or +“exec” program provided with your particular implementation of +`MPI `_. Typical `MPI `_ -packages such as `Open MPI `_ will use something like: +packages such as `Open MPI `_ will +use something like: :: @@ -959,47 +1110,57 @@ packages such as `Open MPI `_ will use something like Sightly more complicated scripts may be needed for many machines since execution of the code may be controlled by both the `MPI `_ library -and a job scheduling and queueing system such as `Slurm `_, +and a job scheduling and queueing system such as +`Slurm `_, `PBS/TORQUE `_, `LoadLeveler `_, or any of a number of similar tools. See your local cluster documentation -or system administrator for the specific syntax required to run on your computing facility. +or system administrator for the specific syntax required to run on your +computing facility. .. _running_openmp: Running with OpenMP ------------------- -Assuming the executable ``mitgcmuv`` was built with OpenMP (see :numref:`build_openmp`), -the syntax to run a multi-threaded simulation is the same as running single-threaded -(see :numref:`run_the_model`), except that the following additional steps are required beforehand: +Assuming the executable ``mitgcmuv`` was built with OpenMP +(see :numref:`build_openmp`), the syntax to run a multi-threaded simulation is +the same as running single-threaded (see :numref:`run_the_model`), except that +the following additional steps are required beforehand: #. `Environment variables `_ - for the number of threads and the stacksize need to be set prior to executing the model. - The exact names of these `environment variables `_ differ - by Fortran compiler, but are typically some variant of ``OMP_NUM_THREADS`` and ``OMP_STACKSIZE``, respectively. + for the number of threads and the stacksize need to be set prior to + executing the model. The exact names of these + `environment variables `_ + differ by Fortran compiler, but are typically some variant of + ``OMP_NUM_THREADS`` and ``OMP_STACKSIZE``, respectively. For the latter, in your run script we recommend adding the line ``export OMP_STACKSIZE=400M`` (or for a - `C shell `_-variant, ``setenv OMP_STACKSIZE 400M``). - If this stacksize setting is insufficient, MITgcm will crash, - in which case a larger number can be used. Similarly, ``OMP_NUM_THREADS`` should - be set to the exact number of threads you require. - -#. In file ``eedata`` you will need to change namelist parameters :varlink:`nTx` and :varlink:`nTy` - to reflect the number of threads in x and y, respectively (for a single-threaded run, :varlink:`nTx` \=\ :varlink:`nTy`\ =1). + `C shell `_-variant, + ``setenv OMP_STACKSIZE 400M``). If this stacksize setting is insufficient, + MITgcm will crash, in which case a larger number can be used. Similarly, + ``OMP_NUM_THREADS`` should be set to the exact number of threads you require. + +#. In file ``eedata`` you will need to change namelist parameters :varlink:`nTx` + and :varlink:`nTy` to reflect the number of threads in x and y, respectively + (for a single-threaded run, :varlink:`nTx` \=\ :varlink:`nTy`\ =1). The value of :varlink:`nTx` \*\ :varlink:`nTy` must equal the value of - `environment variable `_ ``OMP_NUM_THREADS`` - (or its name-equivalent for your Fortan compiler) or MITgcm will terminate during its initialization with an error message. - -MITgcm will take the number of tiles used in the model (as specified in :filelink:`SIZE.h `) -and the number of threads (:varlink:`nTx` and :varlink:`nTy` from file ``eedata``), -and in running will spread the tiles out evenly across the threads. This is done independently for x and y. As such, -the number of tiles in x (variable :varlink:`nSx` as defined in :filelink:`SIZE.h `) must divide evenly by + `environment variable `_ + ``OMP_NUM_THREADS`` (or its name-equivalent for your Fortan compiler) or + MITgcm will terminate during its initialization with an error message. + +MITgcm will take the number of tiles used in the model (as specified in +:filelink:`SIZE.h `) and the number of threads +(:varlink:`nTx` and :varlink:`nTy` from file ``eedata``), +and in running will spread the tiles out evenly across the threads. +This is done independently for x and y. As such, +the number of tiles in x (variable :varlink:`nSx` as defined in +:filelink:`SIZE.h `) must divide evenly by the number of threads in x (namelist parameter :varlink:`nTx`), -and similarly for :varlink:`nSy` and :varlink:`nTy`, else MITgcm will terminate on initialization. -More information about the MITgcm -WRAPPER, domain decomposition, and how to configure :filelink:`SIZE.h ` -can be found in :numref:`using_wrapper`. +and similarly for :varlink:`nSy` and :varlink:`nTy`, else MITgcm will +terminate on initialization. More information about the MITgcm +WRAPPER, domain decomposition, and how to configure +:filelink:`SIZE.h ` can be found in :numref:`using_wrapper`. Output files ------------ @@ -1007,19 +1168,20 @@ Output files The model produces various output files and, when using :filelink:`pkg/mnc` (i.e., `netCDF `_), sometimes even directories. Depending upon the I/O package(s) selected -at compile time (either :filelink:`pkg/mdsio`, :filelink:`pkg/mnc`, or both as determined by -``packages.conf``) and the run-time flags set (in -``data.pkg``), the following output may appear. More complete information describing output files -and model diagnostics is described in :numref:`outp_pack`. +at compile time (either :filelink:`pkg/mdsio`, :filelink:`pkg/mnc`, or both as +determined by ``packages.conf``) and the run-time flags set (in +``data.pkg``), the following output may appear. More complete information +describing output files and model diagnostics is described +in :numref:`outp_pack`. Raw binary output files ~~~~~~~~~~~~~~~~~~~~~~~ The “traditional” output files are generated by the :filelink:`pkg/mdsio` -(see :numref:`pkg_mdsio`).The :filelink:`pkg/mdsio` model data are written according to a -“meta/data” file format. Each variable is associated with two files with -suffix names ``.data`` and ``.meta``. The ``.data`` file contains the -data written in binary form (big endian by default). The ``.meta`` file +(see :numref:`pkg_mdsio`).The :filelink:`pkg/mdsio` model data are written +according to a “meta/data” file format. Each variable is associated with two +files with suffix names ``.data`` and ``.meta``. The ``.data`` file contains +the data written in binary form (big endian by default). The ``.meta`` file is a “header” file that contains information about the size and the structure of the ``.data`` file. This way of organizing the output is particularly useful when running multi-processors calculations. @@ -1038,9 +1200,9 @@ which is made of the following files: pressure i.e., downward). - ``T.00000nIter`` - potential temperature (ocean: - :math:`^{\circ}\mathrm{C}`, atmosphere: :math:`^{\circ}\mathrm{K}`). + :math:`^{\circ}\mathrm{C}`, atmosphere: :math:`\mathrm{K}`). -- ``S.00000nIter`` - ocean: salinity (psu), atmosphere: water vapor +- ``S.00000nIter`` - ocean: salinity (g/kg), atmosphere: water vapor (g/kg). - ``Eta.00000nIter`` - ocean: surface elevation (m), atmosphere: @@ -1055,14 +1217,18 @@ In addition, a “pickup” or “checkpoint” file called: - ``pickup.00000nIter`` is written out. This file represents the state of the model in a -condensed form and is used for restarting the integration (at the specific iteration number). -Some additional parameterizations and packages also produce separate pickup files, e.g., +condensed form and is used for restarting the integration (at the specific +iteration number). Some additional parameterizations and packages also produce +separate pickup files, e.g., -- ``pickup_cd.00000nIter`` if the C-D scheme is used (see :ref:`C_D Scheme `) +- ``pickup_cd.00000nIter`` if the C-D scheme is used (see + :ref:`C_D Scheme `) -- ``pickup_seaice.00000nIter`` if the seaice package is turned on (see :ref:`sub_phys_pkg_seaice`) +- ``pickup_seaice.00000nIter`` if the seaice package is turned on (see + :ref:`sub_phys_pkg_seaice`) -- ``pickup_ptracers.00000nIter`` if passive tracers are included in the simulation (see :ref:`sub_phys_pkg_ptracers`) +- ``pickup_ptracers.00000nIter`` if passive tracers are included in the + simulation (see :ref:`sub_phys_pkg_ptracers`) Rolling checkpoint files are the same as the pickup files but are named differently. Their name @@ -1075,24 +1241,35 @@ NetCDF output files :filelink:`pkg/mnc` is a set of routines written to read, write, and append `netCDF `_ files. -Unlike the :filelink:`pkg/mdsio` output, the :filelink:`pkg/mnc`–generated output is usually -placed within a subdirectory with a name such as ``mnc_output_`` (by default, -`netCDF `_ tries to append, rather than overwrite, existing files, +Unlike the :filelink:`pkg/mdsio` output, the :filelink:`pkg/mnc`–generated +output is usually placed within a subdirectory with a name such as +``mnc_output_`` (by default, +`netCDF `_ tries to append, +rather than overwrite, existing files, so a unique output directory is helpful for each separate run). -The :filelink:`pkg/mnc` output files are all in the “self-describing” `netCDF `_ format and +The :filelink:`pkg/mnc` output files are all in the “self-describing” +`netCDF `_ format and can thus be browsed and/or plotted using tools such as: - `ncdump `_ - is a utility which is typically included with every `netCDF `_ - install, and converts the `netCDF `_ binaries into formatted ASCII text files. + is a utility which is typically included with every + `netCDF `_ + install, and converts the + `netCDF `_ binaries + into formatted ASCII text files. - `ncview `_ - is a very convenient and quick way to plot `netCDF `_ - data and it runs on most platforms. `Panoply `_ is a similar alternative. - -- `MATLAB `_, `GrADS `_, - `IDL `_ and other common post-processing environments provide + is a very convenient and quick way to plot + `netCDF `_ + data and it runs on most platforms. + `Panoply `_ is a similar + alternative. + +- `MATLAB `_, + `GrADS `_, + `IDL `_ and + other common post-processing environments provide built-in `netCDF `_ interfaces. Looking at the output @@ -1104,12 +1281,16 @@ MATLAB Raw binary output ^^^^^^^^^^^^^^^^^ -The repository includes a few `MATLAB `_ utilities to read binary output -files written in the :filelink:`/pkg/mdsio` format. The `MATLAB `_ scripts are located in the -directory :filelink:`utils/matlab` under the root tree. The script :filelink:`utils/matlab/rdmds.m` -reads the data. Look at the comments inside the script to see how to use it. +The repository includes a few +`MATLAB `_ utilities to read +binary output files written in the :filelink:`/pkg/mdsio` format. The +`MATLAB `_ scripts are located +in the directory :filelink:`utils/matlab` under the root tree. The script +:filelink:`utils/matlab/rdmds.m` reads the data. Look at the comments inside +the script to see how to use it. -Some examples of reading and visualizing some output in `MATLAB `_: +Some examples of reading and visualizing some output in +`MATLAB `_: :: @@ -1126,13 +1307,15 @@ Some examples of reading and visualizing some output in `MATLAB > % iter numbers put in variable 'iters'; 'M' is a character string w/metadata >> for n=1:length(iters); imagesc(eta(:,:,n)');axis ij;colorbar;pause(.5);end -Typing ``help rdmds`` in `MATLAB `_ will pull up further +Typing ``help rdmds`` in +`MATLAB `_ will pull up further information on how to use the :filelink:`rdmds ` utility. NetCDF output ^^^^^^^^^^^^^ -Similar scripts for `netCDF `_ output (e.g., :filelink:`utils/matlab/rdmnc.m`) are available and they +Similar scripts for `netCDF `_ +output (e.g., :filelink:`utils/matlab/rdmnc.m`) are available and they are described in :numref:`pkg_mnc`. .. _sec_python: @@ -1140,7 +1323,8 @@ are described in :numref:`pkg_mnc`. Python ~~~~~~ -Install the MITgcmutils python package following the instructions in :numref:`MITgcmutils`. +Install the MITgcmutils python package following the instructions in +:numref:`MITgcmutils`. Raw binary output ^^^^^^^^^^^^^^^^^ @@ -1161,16 +1345,18 @@ NetCDF output ^^^^^^^^^^^^^ The `netCDF `_ output -is currently produced with one file per processor. This means the individual tiles -need to be stitched together to create a single -`netCDF `_ file that spans the model domain. The script -:filelink:`utils/python/MITgcmutils/scripts/gluemncbig` can do -this efficiently from the command line. If you have installed the MITgcmutils package, -a copy of gluemncbig should be on your path. For usage information, see -:numref:`gluemncbig`. - -The following example shows how to use the `xarray python package `_ to read -the resulting `netCDF `_ file into `Python `_: +is currently produced with one file per processor. This means the individual +tiles need to be stitched together to create a single +`netCDF `_ file that spans the +model domain. The script :filelink:`utils/python/MITgcmutils/scripts/gluemncbig` +can do this efficiently from the command line. If you have installed the +MITgcmutils package, a copy of gluemncbig should be on your path. For usage +information, see :numref:`gluemncbig`. + +The following example shows how to use the +`xarray python package `_ to read +the resulting `netCDF `_ file +into `Python `_: :: @@ -1188,13 +1374,18 @@ Model Array Dimensions ----------------------   MITgcm’s array dimensions need to be configured for each unique model domain. -The size of each tile (in dimensions :math:`x`, :math:`y`, and vertical coordinate :math:`r`) -the “overlap” region of each tile (in :math:`x` and :math:`y`), the number of tiles in the :math:`x` and :math:`y` dimensions, -and the number of processes (using `MPI `_) -in the :math:`x` and :math:`y` dimensions all need to be specified in :filelink:`SIZE.h `. -From these parameters, global domain-size variables :varlink:`Nx`, :varlink:`Ny` are computed by the model. -See a more technical discussion of :filelink:`SIZE.h ` parameters in in :numref:`specify_decomp`, and -a detailed explanation of an example :filelink:`SIZE.h ` setup in tutorial :ref:`Baroclinic Ocean Gyre `. +The size of each tile (in dimensions :math:`x`, :math:`y`, and vertical +coordinate :math:`r`) the “overlap” region of each tile (in :math:`x` and +:math:`y`), the number of tiles in the :math:`x` and :math:`y` dimensions, +and the number of processes (using +`MPI `_) +in the :math:`x` and :math:`y` dimensions all need to be specified in +:filelink:`SIZE.h `. From these parameters, global +domain-size variables :varlink:`Nx`, :varlink:`Ny` are computed by the model. +See a more technical discussion of :filelink:`SIZE.h ` +parameters in in :numref:`specify_decomp`, and a detailed explanation of an +example :filelink:`SIZE.h ` setup in tutorial +:ref:`Baroclinic Ocean Gyre `. +----------------------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | Parameter | Default :filelink:`SIZE.h ` | Description | @@ -1218,18 +1409,23 @@ a detailed explanation of an example :filelink:`SIZE.h ` setup | :varlink:`nPy` | 1 | number of processes in :math:`y` dimension | +----------------------------------------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -Note the repository version of :filelink:`SIZE.h ` includes several lines of text at the top that will halt compilation with errors. Thus, to use MITgcm you will need -to copy :filelink:`SIZE.h ` to a code modification directory and make edits, including deleting or commenting out the offending lines of text. +Note the repository version of :filelink:`SIZE.h ` includes +several lines of text at the top that will halt compilation with errors. Thus, +to use MITgcm you will need to copy :filelink:`SIZE.h ` to a +code modification directory and make edits, including deleting or commenting +out the offending lines of text. C Preprocessor Options ---------------------- The CPP flags relative to the “numerical model” part of the code are -defined and set in the file :filelink:`CPP_OPTIONS.h ` in the directory -:filelink:`model/inc/`. In the parameter tables in :numref:`customize_model` we have noted CPP options **that need to be changed from the default** -to enable specific runtime parameter to be used properly. -Also note many of the options below are for less-common situations or are somewhat obscure, so -newer users of the MITgcm are encouraged to jump to :numref:`customize_model` where more basic runtime parameters are discussed. +defined and set in the file :filelink:`CPP_OPTIONS.h ` +in the directory :filelink:`model/inc/`. In the parameter tables in +:numref:`customize_model` we have noted CPP options **that need to be changed +from the default** to enable specific runtime parameter to be used properly. +Also note many of the options below are for less-common situations or are +somewhat obscure, so newer users of the MITgcm are encouraged to jump to +:numref:`customize_model` where more basic runtime parameters are discussed. .. tabularcolumns:: |\Y{.475}|\Y{.1}|\Y{.45}| @@ -1258,7 +1454,7 @@ newer users of the MITgcm are encouraged to jump to :numref:`customize_model` wh | :varlink:`EXCLUDE_FFIELDS_LOAD` | #undef | exclude external forcing-fields load; code allows reading and simple linear time interpolation of oceanic | | | | forcing fields, if no specific pkg (e.g., :filelink:`pkg/exf`) is used to compute them | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ - | :varlink:`INCLUDE_PHIHYD_CALCULATION_CODE` | #define | include code to calculate :math:`\phi_{hyd}` | + | :varlink:`INCLUDE_PHIHYD_CALCULATION_CODE` | #define | include code to calculate :math:`\phi_{\rm hyd}` | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`INCLUDE_CONVECT_CALL` | #define | include code for convective adjustment mixing algorithm | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ @@ -1272,12 +1468,16 @@ newer users of the MITgcm are encouraged to jump to :numref:`customize_model` wh | | | for partial-cell in vertical viscosity and diffusion, either from grid-spacing reduction effect or as | | | | artificially enhanced mixing near surface & bottom for too thin grid-cell | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`ALLOW_SMAG_3D_DIFFUSIVITY` | #undef | include code for isotropic 3-D Smagorinsky diffusivity for tracers (viscosity scaled by constant Prandtl number) | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`ALLOW_SOLVE4_PS_AND_DRAG` | #undef | include code for combined surface pressure and drag implicit solver | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`INCLUDE_IMPLVERTADV_CODE` | #define | include code for implicit vertical advection | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`ALLOW_ADAMSBASHFORTH_3` | #undef | include code for Adams-Bashforth 3rd-order | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`ALLOW_QHYD_STAGGER_TS` | #undef | include code for quasi-hydrostatic stagger time-step Adams-Bashforth code | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`EXACT_CONSERV` | #define | include code for “exact conservation" of fluid in free-surface formulation | | | | (recompute divergence after pressure solver) | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ @@ -1306,10 +1506,11 @@ newer users of the MITgcm are encouraged to jump to :numref:`customize_model` wh .. _default_pkg_list: -By default, MITgcm includes several core packages, i.e., these packages are enabled during -:filelink:`genmake2 ` execution if a file ``packages.conf`` is not found. -See :numref:`using_packages` for more information about ``packages.conf``, and see -:filelink:`pkg/pkg_groups` for more information about default packages and package groups. +By default, MITgcm includes several core packages, i.e., these packages are +enabled during :filelink:`genmake2 ` execution if a file +``packages.conf`` is not found. See :numref:`using_packages` for more +information about ``packages.conf``, and see :filelink:`pkg/pkg_groups` for +more information about default packages and package groups. These default packages are as follows: - :filelink:`pkg/mom_common` @@ -1321,10 +1522,137 @@ These default packages are as follows: - :filelink:`pkg/rw` - :filelink:`pkg/monitor` -Additional CPP options that affect the model core code are set in files ``${PKG}_OPTIONS.h`` located in these packages' directories. Similarly, optional (non-default) packages -also include package-specific CPP options that must be set in files ``${PKG}_OPTIONS.h``. +Additional CPP options that affect the model core code are set in files +``${PKG}_OPTIONS.h`` located in these packages' directories. Similarly, +optional (non-default) packages also include package-specific CPP options that +must be set in files ``${PKG}_OPTIONS.h``. + +.. _cpp_eeoptions_doc: + +Preprocessor Execution Environment Options +------------------------------------------ -The file :filelink:`eesupp/inc/CPP_EEOPTIONS.h` does not contain any CPP options that typically will need to be modified by users. +**Most MITgcm users can skip this section**; many of these flags were +intended for very specific platform environments, and not meant to be changed +for more general environments (an exception being if you are using a coupled +setup, see below). + +The file :filelink:`CPP_EEOPTIONS.h ` in the +directory :filelink:`eesupp/inc/` contains a number of CPP flags related to +the execution environment where the model will run. Below we describe the +subset of user-editable CPP flags: + +.. tabularcolumns:: |\Y{.475}|\Y{.1}|\Y{.45}| + +.. table:: + :class: longtable + :name: cpp_eeopt_flags + + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | CPP Flag Name | Default | Description | + +===============================================+=========+======================================================================================================================+ + | :varlink:`GLOBAL_SUM_ORDER_TILES` | #define | always cumulate tile local-sum in the same order by applying MPI allreduce to array of tiles | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`CG2D_SINGLECPU_SUM` | #undef | alternative way of doing global sum on a single CPU to eliminate tiling-dependent roundoff errors | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`SINGLE_DISK_IO` | #undef | to write STDOUT, STDERR and scratch files from process 0 only | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`USE_FORTRAN_SCRATCH_FILES` | #undef | flag to turn on old default of opening scratch files with the STATUS='SCRATCH' option | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`COMPONENT_MODULE` | #undef | control use of communication with other components, i.e., sets component to work with a coupler interface | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`DISCONNECTED_TILES` | #undef | use disconnected tiles (no exchange between tiles, just fill-in edges assuming locally periodic subdomain) | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`REAL4_IS_SLOW` | #define | if undefined, force ``_RS`` variables to be declared as real*4 | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + +The default setting of ``#define`` :varlink:`GLOBAL_SUM_ORDER_TILES` in +:filelink:`CPP_EEOPTIONS.h ` provides a way to +achieve numerically reproducible global sums for a given tile domain +decomposition. As implemented however, this +approach will increase the volume of network traffic in a way that scales +with the total number of tiles. +Profiling has shown that letting the code fall through to a baseline +approach that simply uses +`MPI_Allreduce() `_ +can provide significantly improved performance for certain simulations [#]_. +The fall-though approach is activated by ``#undef`` +:varlink:`GLOBAL_SUM_ORDER_TILES`. + +In order to get bit-wise reproducible results between different tile domain +decompositions (e.g., single tile on single processor versus multiple tiles +either on single or multiple processors), one can choose to ``#define`` +option :varlink:`CG2D_SINGLECPU_SUM` to use the **MUCH** slower +:filelink:`global_sum_singlecpu.F ` +for the key part of MITgcm algorithm :filelink:`CG2D ` +that relies on global sum. +This option is not only much slower but also requires a large volume of +communications so it is practically unusable for a large set-up; +furthermore, it does not address reproducibility when global sum is used +outside :filelink:`CG2D `, e.g., in non-hydrostatic simulations. + +In a default multi-processor configuration, each process opens and reads its +own set of namelist files and open and writes its own standard output. This can +be slow or even problematic for very large processor counts. Defining the +CPP-flag :varlink:`SINGLE_DISK_IO` suppresses this behavior and lets only the +master process (process 0) read namelist files and write a standard output +stream. This may seem advantageous, because it reduces the amount of seemingly +redundant output, but use this option with caution and only when absolutely +confident that the setup is working since any message (error/warning/print) +from any processor :math:`\ne 0` will be lost. + +The way the namelist files are read requires temporary (scratch) files in the +initialization phase. By default, the MITgcm does not use intrinsic Fortran +scratch files (``STATUS='scratch'``) because they can lead to conflicts in +multi-processor simulations on some HPC-platforms, when the processors do not +open scratch files with reserved names. However, the implemented default scheme +for the scratch files can be slow for large processor counts. If this is a +problem in a given configuration, defining the CPP-flag +:varlink:`USE_FORTRAN_SCRATCH_FILES` may help by making the code use the +intrinsic Fortran scratch files. + +The CPP-flag :varlink:`COMPONENT_MODULE` needs to be set to ``#define`` only for +builds in which the MITgcm executable (for either an oceanic or atmospheric +simulation) is configured to communicate with a coupler. +This coupler can be a specially configured build of MITgcm itself; +see, for example, verification experiment `cpl_aim+ocn +`_. + +The CPP-flag :varlink:`DISCONNECTED_TILES` should not be ``#define`` +unless one wants to run simultaneously several small, single-tile ensemble +members from a single process, as each tile will be disconnected from the others +and considered locally as a doubly periodic patch. + +.. + should reference the to-be-written section about _RS, _RL within chapter 6 + +MITgcm ``_RS`` variables are forced to be declared as +``real*4`` if CPP-flag :varlink:`REAL4_IS_SLOW` to is set to ``#undef`` +in :filelink:`CPP_EEOPTIONS.h ` +(``_RS`` is a macro used in declaring real variables that, in principle, +do not require double precision). However, this option is not recommended +except for computational benchmarking or for testing the trade-off between memory +footprint and model precision. And even for these specialized tests, there is no need +to edit :filelink:`CPP_EEOPTIONS.h ` +since this feature can be activated using the :filelink:`genmake2 ` +command line option ``-use_r4``, as done in some regression tests +(see testing `results `_ +page tests with optfile suffix ``.use_r4``). + +.. [#] One example is the llc_540 case located at + https://github.com/MITgcm-contrib/llc_hires/tree/master/llc_540. This case + was run on the Pleiades computer for 20 simulated days using 767 and 2919 + MPI ranks. At 767 ranks, the fall-through approach provided a throughput of + to 799.0 simulated days per calendar day (dd/d) while the default approach + gave 781.0. The profiler showed the speedup was directly attributable to + spending less time in MPI_Allreduce. The volume of memory traffic associated + with MPI_Allreduce dropped by 3 orders (22.456T -> 32.596G). At 2819 MPI + ranks the fall-through approach gave a throughput of 1300 dd/d while the + default approach gave 800.0 dd/d. Put another way, this case did not scale + at all from 767p to 2819p unless the fall-though approach was utilized. The + profiler showed the speedup was directly attributable to spending less time + in MPI_Allreduce. The volume of memory traffic associated with MPI_Allreduce + dropped by 3 orders (303.70T ->121.08G ). .. _customize_model: @@ -1332,28 +1660,34 @@ Customizing the Model Configuration - Runtime Parameters ======================================================== When you are ready to run the model in the configuration you want, the -most straightforward approach is to use and adapt the setup of a tutorial or verification -experiment (described in :numref:`chap_modelExamples`) that is the closest to your -configuration. Then, the amount of setup will be minimized. In this -section, we document the complete list of MITgcm model namelist runtime +most straightforward approach is to use and adapt the setup of a tutorial or +verification experiment (described in :numref:`chap_modelExamples`) that is the +closest to your configuration. Then, the amount of setup will be minimized. +In this section, we document the complete list of MITgcm model namelist runtime parameters set in file ``data``, which needs to be located in the directory where you will run the model. Model parameters are defined and -declared in the file :filelink:`PARAMS.h ` and their default values are -generally set in the routine :filelink:`set_defaults.F `, otherwise -when initialized in the routine :filelink:`ini_parms.F `. :numref:`eedata_parms` -documents the “execution environment” namelist parameters +declared in the file :filelink:`PARAMS.h ` and their +default values are generally set in the routine +:filelink:`set_defaults.F `, otherwise +when initialized in the routine :filelink:`ini_parms.F `. +:numref:`eedata_parms` documents the “execution environment” namelist parameters in file ``eedata``, which must also reside in the current run directory. -Note that runtime parameters used by (non-default) MITgcm packages are not documented here but rather in :numref:`packagesI` -and :numref:`outp_pack`, and prescribed in package-specific ``data.${pkg}`` namelist files which are read in via -package-specific ``${pkg}_readparms.F`` where ``${pkg}`` is the package name +Note that runtime parameters used by (non-default) MITgcm packages are not +documented here but rather in :numref:`packagesI` +and :numref:`outp_pack`, and prescribed in package-specific ``data.${pkg}`` +namelist files which are read in via package-specific +``${pkg}_readparms.F`` where ``${pkg}`` is the package name (see :numref:`using_packages`). In what follows, model parameters are grouped into categories related to -configuration/computational domain, algorithmic parameters, equations solved in the model, parameters related to model forcing, and -simulation controls. The tables below specify the namelist parameter name, the namelist parameter -group in ``data`` (and ``eedata`` in :numref:`eedata_parms`), the default value, and a short description of its function. -Runtime parameters that require **non-default** CPP options to be set prior to compilation (see :numref:`customize_compilation`) for proper use are noted. +configuration/computational domain, algorithmic parameters, equations solved +in the model, parameters related to model forcing, and simulation controls. +The tables below specify the namelist parameter name, the namelist parameter +group in ``data`` (and ``eedata`` in :numref:`eedata_parms`), the default +value, and a short description of its function. Runtime parameters that +require **non-default** CPP options to be set prior to compilation +(see :numref:`customize_compilation`) for proper use are noted. Parameters: Configuration, Computational Domain, Geometry, and Time-Discretization ---------------------------------------------------------------------------------- @@ -1363,12 +1697,13 @@ Parameters: Configuration, Computational Domain, Geometry, and Time-Discretizati Model Configuration ~~~~~~~~~~~~~~~~~~~ -:varlink:`buoyancyRelation` is -set to ``OCEANIC`` by default, which employes a :math:`z`-coordinate vertical axis. -To simulate an ocean using pressure coordinates in the vertical, set it to ``OCEANICP``. For atmospheric simulations, -:varlink:`buoyancyRelation` needs to be set to ``ATMOSPHERIC``, which also uses pressure as the vertical coordinate. -The default model configuration is hydrostatic; to run a non-hydrostatic simulation, set the logical -variable :varlink:`nonHydrostatic` to ``.TRUE.``. +:varlink:`buoyancyRelation` is set to ``OCEANIC`` by default, which employes a +:math:`z`-coordinate vertical axis. To simulate an ocean using pressure +coordinates in the vertical, set it to ``OCEANICP``. For atmospheric +simulations, :varlink:`buoyancyRelation` needs to be set to ``ATMOSPHERIC``, +which also uses pressure as the vertical coordinate. +The default model configuration is hydrostatic; to run a non-hydrostatic +simulation, set the logical variable :varlink:`nonHydrostatic` to ``.TRUE.``. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -1391,37 +1726,44 @@ Four different grids are available: Cartesian, spherical polar, cylindrical, and curvilinear (which includes the cubed sphere). The grid is set through the logical variables :varlink:`usingCartesianGrid`, :varlink:`usingSphericalPolarGrid`, :varlink:`usingCylindricalGrid`, -and :varlink:`usingCurvilinearGrid`. Note that the cylindrical grid is designed for modeling a rotating tank, -so that :math:`x` is the azimuthual direction, :math:`y` is the radial direction, -and :math:`r` is vertical coordinate (see tutorial :ref:`rotating tank `). +and :varlink:`usingCurvilinearGrid`. Note that the cylindrical grid is designed +for modeling a rotating tank, so that :math:`x` is the azimuthual direction, +:math:`y` is the radial direction, and :math:`r` is vertical coordinate +(see tutorial :ref:`rotating tank `). The variable :varlink:`xgOrigin` sets the position of the western -most gridcell face in the :math:`x` dimension (Cartesian, meters; spherical and cyclindrical, degrees). -For a Cartesian or spherical grid, the southern boundary is -defined through the variable :varlink:`ygOrigin` which corresponds to the -latitude of the southern most gridcell face (Cartesian, meters; spherical, degrees). -For a cyclindrical grid, a positive :varlink:`ygOrigin` (m) adds an inner cylindrical boundary at the center of the tank. The resolution -along the :math:`x` and :math:`y` directions is controlled by the 1-D arrays :varlink:`delX` (meters for a Cartesian grid, degrees otherwise) -and :varlink:`delY` (meters for Cartesian and cyclindrical grids, degrees spherical). On a spherical polar grid, you -might decide to set the variable :varlink:`cosPower` which is set to 0 -by default and which represents :math:`n` in :math:`(\cos\varphi)^n`, the power of cosine of latitude to +most gridcell face in the :math:`x` dimension (Cartesian, meters; spherical and +cyclindrical, degrees). For a Cartesian or spherical grid, the southern boundary +is defined through the variable :varlink:`ygOrigin` which corresponds to the +latitude of the southern most gridcell face (Cartesian, meters; spherical, +degrees). For a cyclindrical grid, a positive :varlink:`ygOrigin` (m) adds an +inner cylindrical boundary at the center of the tank. The resolution +along the :math:`x` and :math:`y` directions is controlled by the 1-D arrays +:varlink:`delX` (meters for a Cartesian grid, degrees otherwise) +and :varlink:`delY` (meters for Cartesian and cyclindrical grids, degrees +spherical). On a spherical polar grid, you might decide to set the variable +:varlink:`cosPower` which is set to 0 by default and which represents :math:`n` +in :math:`(\cos\varphi)^n`, the power of cosine of latitude to multiply horizontal viscosity and tracer diffusivity. The vertical grid spacing is set through the 1-D array -:varlink:`delR` (:math:`z`-coordinates: in meters; :math:`p`-coordinates, in Pa). -Using a curvilinear grid requires complete specification of all horizontal MITgcm grid variables, -either through a default filename (link to new doc section) -or as specified by :varlink:`horizGridFile`. +:varlink:`delR` (:math:`z`-coordinates: in meters; :math:`p`-coordinates, +in Pa). Using a curvilinear grid requires complete specification of all +horizontal MITgcm grid variables, either through a default filename (link to +new doc section) or as specified by :varlink:`horizGridFile`. The variable :varlink:`seaLev_Z` represents the standard position of sea level, in meters. This is typically set to 0 m -for the ocean (default value). If instead pressure is used as the vertical coordinate, -the pressure at the top (of the atmosphere or ocean) is set through :varlink:`top_Pres`, typically 0 Pa. -As such, these variables are analogous to :varlink:`xgOrigin` and :varlink:`ygOrigin` to define the vertical grid axis. -But they also are used for a second purpose: in a :math:`z`-coordinate setup, :varlink:`top_Pres` sets a reference top pressure -(required in a non-linear equation of state computation, for example); note that 1 bar -(i.e., typical Earth atmospheric sea-level pressure) is added already, so the default is 0 Pa. -Similarly, for a :math:`p`-coordinate setup, :varlink:`seaLev_Z` is used to -set a reference geopotential (after gravity scaling) at the top of the ocean or bottom of the atmosphere. +for the ocean (default value). If instead pressure is used as the vertical +coordinate, the pressure at the top (of the atmosphere or ocean) is set through +:varlink:`top_Pres`, typically 0 Pa. As such, these variables are analogous to +:varlink:`xgOrigin` and :varlink:`ygOrigin` to define the vertical grid axis. +But they also are used for a second purpose: in a :math:`z`-coordinate setup, +:varlink:`top_Pres` sets a reference top pressure (required in a non-linear +equation of state computation, for example); note that 1 bar +(i.e., typical Earth atmospheric sea-level pressure) is added already, so the +default is 0 Pa. Similarly, for a :math:`p`-coordinate setup, +:varlink:`seaLev_Z` is used to set a reference geopotential (after gravity +scaling) at the top of the ocean or bottom of the atmosphere. .. tabularcolumns:: |\Y{.275}|\Y{.1}|\Y{.125}|\Y{.525}| @@ -1494,13 +1836,16 @@ set a reference geopotential (after gravity scaling) at the top of the ocean or Topography - Full and Partial Cells ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -For the ocean, the topography is read from a file that contains a 2-D(:math:`x,y`) -map of bathymetry, in meters for :math:`z`-coordinates, in pascals for :math:`p`-coordinates. -The bathymetry is specified by entering the vertical position of the ocean floor relative to the surface, so by convention in -:math:`z`-coordinates bathymetry is specified as negative numbers (“depth” is defined as positive-definite) whereas in :math:`p`-coordinates +For the ocean, the topography is read from a file that contains a +2-D(:math:`x,y`) map of bathymetry, in meters for :math:`z`-coordinates, in +pascals for :math:`p`-coordinates. The bathymetry is specified by entering the +vertical position of the ocean floor relative to the surface, so by convention +in :math:`z`-coordinates bathymetry is specified as negative numbers (“depth” +is defined as positive-definite) whereas in :math:`p`-coordinates bathymetry data is positive. The file name is represented by the variable -:varlink:`bathyFile`. See our introductory tutorial setup :numref:`sec_eg_baro` for additional details on the file format. Note no changes are required in the model source code -to represent enclosed, periodic, or double periodic +:varlink:`bathyFile`. See our introductory tutorial setup :numref:`sec_eg_baro` +for additional details on the file format. Note no changes are required in the +model source code to represent enclosed, periodic, or double periodic domains: periodicity is assumed by default and is suppressed by setting the depths to 0 m for the cells at the limits of the computational domain. @@ -1509,13 +1854,18 @@ To use the partial cell capability, the variable :varlink:`hFacMin` needs to be set to a value between 0.0 and 1.0 (it is set to 1.0 by default) corresponding to the minimum fractional size of a gridcell. For example, if a gridcell is 500 m thick and :varlink:`hFacMin` is set to -0.1, the minimum thickness for a “thin-cell” for this specific gridcell is 50 m. Thus, if the specified bathymetry depth were to fall exactly -in the middle of this 500m thick gridcell, the initial model variable :varlink:`hFacC`\ (:math:`x,y,r`) would be set to 0.5. -If the specified bathymetry depth -fell within the top 50m of this gridcell (i.e., less than :varlink:`hFacMin`), the model bathymetry would snap to the nearest legal value -(i.e., initial :varlink:`hFacC`\ (:math:`x,y,r`) would be equal to 0.0 or 0.1 depending if the depth was within 0-25 m or 25-50 m, respectively). -Also note while specified bathymetry bottom depths (or pressures) need not coincide with -the model's levels as deduced from :varlink:`delR`, any depth falling below the model's defined vertical axis is truncated. +0.1, the minimum thickness for a “thin-cell” for this specific gridcell is 50 m. +Thus, if the specified bathymetry depth were to fall exactly +in the middle of this 500m thick gridcell, the initial model variable +:varlink:`hFacC`\ (:math:`x,y,r`) would be set to 0.5. +If the specified bathymetry depth fell within the top 50m of this gridcell +(i.e., less than :varlink:`hFacMin`), the model bathymetry would snap to the +nearest legal value (i.e., initial :varlink:`hFacC`\ (:math:`x,y,r`) would be +equal to 0.0 or 0.1 depending if the depth was within 0-25 m or 25-50 m, +respectively). Also note while specified bathymetry bottom depths (or +pressures) need not coincide with the model's levels as deduced from +:varlink:`delR`, any depth falling below the model's defined vertical axis is +truncated. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -1575,8 +1925,10 @@ Rotation .. tabularcolumns:: |\Y{.2}|\Y{.1}|\Y{.2}|\Y{.525}| For a Cartesian or cylindical grid, the Coriolis parameter :math:`f` is set -through the variables :varlink:`f0` (in s\ :sup:`--1`) and :varlink:`beta` (:math:`\frac{\partial f}{ \partial y}`; in m\ :sup:`--1`\ s\ :sup:`--1`), which corresponds to a -Coriolis parameter :math:`f = f_o + \beta y` (the so-called :math:`\beta`\ -plane). +through the variables :varlink:`f0` (in s\ :sup:`--1`) and :varlink:`beta` +(:math:`\frac{\partial f}{ \partial y}`; in m\ :sup:`--1`\ s\ :sup:`--1`), +which corresponds to a Coriolis parameter :math:`f = f_o + \beta y` +(the so-called :math:`\beta`\ -plane). +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | Parameter | Group | Default | Description | @@ -1606,9 +1958,10 @@ Coriolis parameter :math:`f = f_o + \beta y` (the so-called :math:`\beta`\ -pla Free Surface ~~~~~~~~~~~~ -The logical variables :varlink:`rigidLid` and :varlink:`implicitFreeSurface` specify -your choice for ocean upper boundary (or lower boundary if using :math:`p`-coordinates); -set one to ``.TRUE.`` and the other to ``.FALSE.``. These settings affect the calculations of surface pressure (for the ocean) or +The logical variables :varlink:`rigidLid` and :varlink:`implicitFreeSurface` +specify your choice for ocean upper boundary (or lower boundary if using +:math:`p`-coordinates); set one to ``.TRUE.`` and the other to ``.FALSE.``. +These settings affect the calculations of surface pressure (for the ocean) or surface geopotential (for the atmosphere); see :numref:`parms-main_algorithm`. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.175}|\Y{.525}| @@ -1657,13 +2010,13 @@ Time-Discretization The time steps are set through the real variables :varlink:`deltaTMom` and :varlink:`deltaTtracer` (in seconds) which represent the time step for the -momentum and tracer equations, respectively (or you -can prescribe a single time step value for all parameters using :varlink:`deltaT`). -The model “clock” is defined by the variable :varlink:`deltaTClock` (in seconds) +momentum and tracer equations, respectively (or you can prescribe a single +time step value for all parameters using :varlink:`deltaT`). The model “clock” +is defined by the variable :varlink:`deltaTClock` (in seconds) which determines the I/O frequencies and is used in tagging output. Time in the model is thus computed as: -| model time = :varlink:`baseTime` + iteration number * :varlink:`deltaTClock` +| model time = :varlink:`baseTime` + iteration number * :varlink:`deltaTClock` .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -1694,10 +2047,10 @@ Pressure Solver ~~~~~~~~~~~~~~~ By default, a hydrostatic -simulation is assumed and a 2-D elliptic equation is used to invert -the pressure field. If using a non-hydrostatic configuration, the pressure field is -inverted through a 3-D elliptic equation (note this capability -is not yet available for the atmosphere). The parameters controlling the behavior of the +simulation is assumed and a 2-D elliptic equation is used to invert the +pressure field. If using a non-hydrostatic configuration, the pressure field is +inverted through a 3-D elliptic equation (note this capability is not yet +available for the atmosphere). The parameters controlling the behavior of the elliptic solvers are the variables :varlink:`cg2dMaxIters` and :varlink:`cg2dTargetResidual` for the 2-D case and :varlink:`cg3dMaxIters` and :varlink:`cg3dTargetResidual` for the 3-D case. @@ -1786,26 +2139,28 @@ available: - For a linear approximation, set :varlink:`eosType` to ``LINEAR``), and you will need to specify the thermal and haline expansion coefficients, represented by the variables - :varlink:`tAlpha` (in K\ :sup:`--1`) and :varlink:`sBeta` (in psu\ :sup:`--1`). + :varlink:`tAlpha` (in K\ :sup:`--1`) and :varlink:`sBeta` + (in (g/kg)\ :sup:`--1`). Because the model equations are written in terms of perturbations, a reference thermodynamic state needs to be specified. - This is done through the 1-D arrays :varlink:`tRef` and :varlink:`sRef`. :varlink:`tRef` - specifies the reference potential temperature profile (in - :sup:`o`\ C for the ocean and K for the atmosphere) - starting from the level k=1. Similarly, :varlink:`sRef` specifies the reference - salinity profile (in psu or g/kg) for the ocean or the reference specific + This is done through the 1-D arrays :varlink:`tRef` and :varlink:`sRef`. + :varlink:`tRef` specifies the reference potential temperature profile (in + :sup:`o`\ C for the ocean and K for the atmosphere) starting + from the level k=1. Similarly, :varlink:`sRef` specifies the reference + salinity profile (in g/kg) for the ocean or the reference specific humidity profile (in g/kg) for the atmosphere. - MITgcm offers several approximations to the full (oceanic) non-linear equation of state that can be selected as :varlink:`eosType`: ``'POLYNOMIAL'``: - This approximation is based on the Knudsen formula (see Bryan and Cox 1972 :cite:`bryan:72`). - For this option you need to generate a file of polynomial + This approximation is based on the Knudsen formula (see Bryan and Cox 1972 + :cite:`bryan:72`). For this option you need to generate a file of polynomial coefficients called ``POLY3.COEFFS``. To do this, use the program - :filelink:`utils/knudsen2/knudsen2.f` under the model tree (a ``Makefile`` is - available in the same directory; you will need to edit the number and - the values of the vertical levels in :filelink:`knudsen2.f ` + :filelink:`utils/knudsen2/knudsen2.f` under the model tree (a ``Makefile`` + is available in the same directory; you will need to edit the number and + the values of the vertical levels in + :filelink:`knudsen2.f ` so that they match those of your configuration). ``’UNESCO’``: @@ -1837,21 +2192,32 @@ available: restarts. ``’TEOS10’``: - TEOS-10 is based on a Gibbs function formulation from which all thermodynamic - properties of seawater (density, enthalpy, entropy sound speed, etc.) can be derived in a thermodynamically consistent manner; - see http://www.teos-10.org. See IOC et al. (2010) :cite:`ioc:10`, McDougall and Parker (2011) - :cite:`mcdougall:11`, and Roquet et al. (2015) :cite:`roquet:15` for implementation details. - It also requires lagging the pressure and therefore an additional pickup file for restarts. - Note at this time a full implementation of TEOS10 (i.e. ocean variables of conservative temperature and practical salinity, + TEOS-10 is based on a Gibbs function formulation from which all + thermodynamic properties of seawater (density, enthalpy, entropy sound + speed, etc.) can be derived in a thermodynamically consistent manner; + see http://www.teos-10.org. See IOC et al. (2010) :cite:`ioc:10`, McDougall + and Parker (2011) :cite:`mcdougall:11`, and Roquet et al. (2015) + :cite:`roquet:15` for implementation details. + It also requires lagging the pressure and therefore an additional pickup + file for restarts. Note at this time a full implementation of TEOS10 (i.e., + ocean variables of conservative temperature and practical salinity, including consideration of surface forcings) has not been implemented; - also note the original 48-term polynomial term is used, not the newer, preferred 75-term polynomial. - - For these non-linear approximations, neither a reference profile of temperature or - salinity is required, except for a setup where :varlink:`implicitIntGravWave` is set to ``.TRUE.`` or :varlink:`selectP_inEOS_Zc`\ =1. - -Note that salinity can can be expressed in either practical salinity units (psu, i.e., unit-less) or g/kg, -depending on the choice of equation of state. See Millero (2010) :cite:`millero:10` for a detailed discussion -of salinity measurements, and why use of the latter is preferred, in the context of the ocean equation of state. + also note the original 48-term polynomial term is used, not the newer, + preferred 75-term polynomial. + + For these non-linear approximations, neither a reference profile of + temperature or salinity is required, except for a setup where + :varlink:`implicitIntGravWave` is set to ``.TRUE.`` or + :varlink:`selectP_inEOS_Zc`\ =1. + +Note that for simplicity, salinity is expressed as a ratio in g/kg (thus +effectively unitless) regardless of the choice of equation of state, +despite "Practical Salinity" not precisely equal to salinity expressed as a +dissolved mass fraction. If TEOS-10 is selected, the model variable +:varlink:`salt` can be interpreted as "Absolute Salinity". See Millero (2010) +:cite:`millero:10` and Pawlowicz (2013) :cite:`pawlowicz:13` for detailed +discussion of salinity measurements, and why being expressed +as g/kg is preferred, in the context of the ocean equation of state. .. tabularcolumns:: |\Y{.2}|\Y{.1}|\Y{.2}|\Y{.525}| @@ -1871,9 +2237,9 @@ of salinity measurements, and why use of the latter is preferred, in the context | | | | for ocean, specify instead of :varlink:`tRef` or :varlink:`tRefFile` | | | | | for vertically constant reference temp. (:sup:`o`\ C ) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`sRef` | PARM01 | 30.0 psu (ocn) or 0.0 (atm) | 1D vertical reference salinity profile (psu or g/kg) | + | :varlink:`sRef` | PARM01 | 30.0 (g/kg) (ocn) or 0.0 (atm) | 1D vertical reference salinity profile (g/kg) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`sRefFile` | PARM01 | :kbd:`' '` | filename for reference salinity profile (psu or g/kg) | + | :varlink:`sRefFile` | PARM01 | :kbd:`' '` | filename for reference salinity profile (g/kg) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`selectP_inEOS_Zc` | PARM01 | depends on :varlink:`eosType` | select which pressure to use in EOS for :math:`z`-coor. | | | | | | @@ -1888,7 +2254,7 @@ of salinity measurements, and why use of the latter is preferred, in the context +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`tAlpha` | PARM01 | 2.0E-04 | linear EOS thermal expansion coefficient (1/\ :sup:`o`\ C) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`sBeta` | PARM01 | 7.4E-04 | linear EOS haline contraction coefficient (1/psu) | + | :varlink:`sBeta` | PARM01 | 7.4E-04 | linear EOS haline contraction coefficient ((g/kg)\ :sup:`-1`) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ Thermodynamic Constants @@ -1923,11 +2289,13 @@ Configuration There are a few logical variables that allow you to turn on/off various terms in the momentum equation. These variables are called :varlink:`momViscosity`, :varlink:`momAdvection`, :varlink:`useCoriolis`, -:varlink:`momStepping`, :varlink:`metricTerms`, and :varlink:`momPressureForcing` and by default are -set to ``.TRUE.``. Vertical diffusive fluxes of momentum can be computed implicitly +:varlink:`momStepping`, :varlink:`metricTerms`, and +:varlink:`momPressureForcing` and by default are set to ``.TRUE.``. +Vertical diffusive fluxes of momentum can be computed implicitly by setting the logical variable :varlink:`implicitViscosity` to -``.TRUE.``. The details relevant to both the momentum flux-form and the vector-invariant form of the -equations and the various (momentum) advection schemes are covered in :numref:`discret_algorithm`. +``.TRUE.``. The details relevant to both the momentum flux-form and the +vector-invariant form of the equations and the various (momentum) advection +schemes are covered in :numref:`discret_algorithm`. .. tabularcolumns:: |\Y{.275}|\Y{.1}|\Y{.125}|\Y{.525}| @@ -2009,8 +2377,8 @@ first vertical level (surface level). If no file names are provided, the velocity is initialized to zero. The initial vertical velocity is always derived from the horizontal velocity using the continuity equation. In the case of a restart (from the end of a previous simulation), -the velocity field is read from a pickup file (see :numref:`simulation_controls`) -and the initial velocity files are ignored. +the velocity field is read from a pickup file +(see :numref:`simulation_controls`) and the initial velocity files are ignored. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -2157,6 +2525,8 @@ and quadratic (set the variable +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`bottomDragQuadratic` | PARM01 | 0.0 | quadratic bottom-drag coefficient ([:math:`r`]/m) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ +| :varlink:`zRoughBot` | PARM01 | 0.0 | roughness length for quadratic bottom friction coefficient (m) | ++----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`selectBotDragQuadr` | PARM01 | -1 | select quadratic bottom drag discretization option | | | | | | | | | | - -1: not used | @@ -2236,7 +2606,7 @@ fluxes can be computed implicitly by setting the logical variable +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`interDiffKr_pCell` | PARM04 | FALSE | account for partial-cell in interior vertical diffusion on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`linFSConserveTr` | PARM01 | TRUE | correct source/sink of tracer due to use of linear free surface on/off flag | + | :varlink:`linFSConserveTr` | PARM01 | FALSE | correct source/sink of tracer due to use of linear free surface on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`doAB_onGtGs` | PARM03 | TRUE | apply Adams-Bashforth on tendencies (rather than on T,S) on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ @@ -2248,8 +2618,9 @@ The initial tracer data can be contained in the binary files :varlink:`hydrogThetaFile` and :varlink:`hydrogSaltFile`. These files should contain 3-D data ordered in an (:math:`x,y,r`) fashion with k=1 as the first vertical level. If no file names are provided, the tracers are then -initialized with the values of :varlink:`tRef` and :varlink:`sRef` discussed in :numref:`parms-eos`. -In this case, the initial tracer data are uniform in :math:`x` and :math:`y` for each depth level. +initialized with the values of :varlink:`tRef` and :varlink:`sRef` discussed in +:numref:`parms-eos`. In this case, the initial tracer data are uniform in +:math:`x` and :math:`y` for each depth level. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -2258,7 +2629,7 @@ In this case, the initial tracer data are uniform in :math:`x` and :math:`y` for +========================================+===========+==================================================+=========================================================================================================+ | :varlink:`hydrogThetaFile` | PARM05 | :kbd:`' '` | filename for 3D specification of initial potential temperature (:sup:`o`\ C) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ -| :varlink:`hydrogSaltFile` | PARM05 | :kbd:`' '` | filename for 3D specification of initial salinity (psu or g/kg) | +| :varlink:`hydrogSaltFile` | PARM05 | :kbd:`' '` | filename for 3D specification of initial salinity (g/kg) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`maskIniTemp` | PARM05 | TRUE | apply (center-point) mask to initial hydrographic theta data on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ @@ -2275,10 +2646,11 @@ Tracer Diffusivities Lateral eddy diffusivities for temperature and salinity/specific humidity are specified through the variables :varlink:`diffKhT` and :varlink:`diffKhS` (in m\ :sup:`2`\ /s). Vertical eddy diffusivities are -specified through the variables :varlink:`diffKrT` and :varlink:`diffKrS`.In addition, biharmonic -diffusivities can be specified as well through the coefficients -:varlink:`diffK4T` and :varlink:`diffK4S` (in m\ :sup:`4`\ /s). The Gent and McWilliams -parameterization for advection and mixing of oceanic tracers is described in :numref:`sub_phys_pkg_gmredi`. +specified through the variables :varlink:`diffKrT` and :varlink:`diffKrS`. +In addition, biharmonic diffusivities can be specified as well through the +coefficients :varlink:`diffK4T` and :varlink:`diffK4S` (in m\ :sup:`4`\ /s). +The Gent and McWilliams parameterization for advection and mixing of oceanic +tracers is described in :numref:`sub_phys_pkg_gmredi`. .. tabularcolumns:: |\Y{.2}|\Y{.1}|\Y{.15}|\Y{.575}| @@ -2338,18 +2710,18 @@ parameterization for advection and mixing of oceanic tracers is described in :nu Ocean Convection ~~~~~~~~~~~~~~~~   -In addition to specific packages that parameterize ocean convection, two main model options are available. -To use the first option, a convective adjustment scheme, you need to -set the variable :varlink:`cadjFreq`, the frequency (in seconds) -with which the adjustment algorithm is called, to a non-zero value -(note, if :varlink:`cadjFreq` set to a negative value by the user, the model will set it to -the model clock time step). The second option is to parameterize +In addition to specific packages that parameterize ocean convection, two main +model options are available. To use the first option, a convective adjustment +scheme, you need to set the variable :varlink:`cadjFreq`, the frequency +(in seconds) with which the adjustment algorithm is called, to a non-zero value +(note, if :varlink:`cadjFreq` set to a negative value by the user, the model +will set it to the model clock time step). The second option is to parameterize convection with implicit vertical diffusion. To do this, set the logical variable :varlink:`implicitDiffusion` to ``.TRUE.`` and the real variable :varlink:`ivdc_kappa` (in m\ :sup:`2`\ /s) to an appropriate tracer vertical diffusivity value for mixing -due to static instabilities (typically, several orders of magnitude above the background vertical diffusivity). -Note that :varlink:`cadjFreq` and +due to static instabilities (typically, several orders of magnitude above the +background vertical diffusivity). Note that :varlink:`cadjFreq` and :varlink:`ivdc_kappa` cannot both have non-zero value. .. tabularcolumns:: |\Y{.2}|\Y{.1}|\Y{.125}|\Y{.6}| @@ -2371,9 +2743,11 @@ Note that :varlink:`cadjFreq` and Parameters: Model Forcing ------------------------- -The forcing options that can be prescribed through runtime parameters in ``data`` are easy to use but somewhat limited in scope. -More complex forcing setups are possible with optional packages such as :filelink:`pkg/exf` or :filelink:`pkg/rbcs`, in which case -most or all of the parameters in this section can simply be left at their default value. +The forcing options that can be prescribed through runtime parameters in +``data`` are easy to use but somewhat limited in scope. More complex forcing +setups are possible with optional packages such as :filelink:`pkg/exf` or +:filelink:`pkg/rbcs`, in which case most or all of the parameters in this +section can simply be left at their default value. Momentum Forcing ~~~~~~~~~~~~~~~~ @@ -2387,8 +2761,8 @@ you only need to generate one file). The format of the files is similar to the bathymetry file. The zonal (meridional) stress data are assumed to be in pascals and located at U-points (V-points). See the MATLAB program ``gendata.m`` in the ``input`` directories of -``verification`` for several tutorial example -(e.g. :filelink:`gendata.m ` +``verification`` for several tutorial example (e.g. +:filelink:`gendata.m ` in the :ref:`barotropic gyre tutorial `) to see how simple analytical wind forcing data are generated for the case study experiments. @@ -2425,7 +2799,7 @@ time scale coefficient is set through the variable :varlink:`tauThetaClimRelax` (in seconds). The same procedure applies for salinity with the variable names :varlink:`EmPmRfile`, :varlink:`saltClimFile`, and :varlink:`tauSaltClimRelax` for freshwater flux (in m/s) and surface -salinity (in psu or g/kg) data files and relaxation timescale coefficient +salinity (in g/kg) data files and relaxation timescale coefficient (in seconds), respectively. .. tabularcolumns:: |\Y{.24}|\Y{.1}|\Y{.15}|\Y{.535}| @@ -2463,26 +2837,34 @@ salinity (in psu or g/kg) data files and relaxation timescale coefficient +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`saltForcing` | PARM01 | TRUE | external forcing of salinity forcing on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`convertFW2Salt` | PARM01 | 3.5E+01 | salinity used to convert freshwater flux to salt flux (-1: use local S) (psu or g/kg) | + | :varlink:`convertFW2Salt` | PARM01 | 3.5E+01 | salinity used to convert freshwater flux to salt flux (-1: use local S) (g/kg) | | | | | (note default is -1 if :varlink:`useRealFreshWaterFlux`\ = ``.TRUE.``) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`rhoConstFresh` | PARM01 | :varlink:`rhoConst` | constant reference density for fresh water (rain) (kg/m\ :sup:`3`) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`EmPmRFile` | PARM05 | :kbd:`' '` | filename for 2D specification of net freshwater flux (m/s) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`saltFluxFile` | PARM05 | :kbd:`' '` | filename for 2D specification of salt flux (from seaice) (psu.kg/m\ :sup:`2`\/s) | + | :varlink:`saltFluxFile` | PARM05 | :kbd:`' '` | filename for 2D specification of salt flux (from seaice) ((g/kg).kg/m\ :sup:`2`\/s) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`tauSaltClimRelax` | PARM03 | 0.0 | salinity (surface) relaxation time scale (s) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`lambdaSaltFile` | PARM05 | :kbd:`' '` | filename for 2D specification of inverse salinity (surface) relaxation time scale (1/s) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`saltClimFile` | PARM05 | :kbd:`' '` | filename for specification of (surface) salinity relaxation values (psu or g/kg) | + | :varlink:`saltClimFile` | PARM05 | :kbd:`' '` | filename for specification of (surface) salinity relaxation values (g/kg) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`balanceSaltClimRelax` | PARM01 | FALSE | subtract global mean flux due to salt relaxation every time step on/off flag | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`balanceEmPmR` | PARM01 | FALSE | subtract global mean EmPmR every time step on/off flag; requires #define :varlink:`ALLOW_BALANCE_FLUXES`| + | :varlink:`selectBalanceEmPmR` | PARM01 | 0 | option to balance net surface freshwater flux every time step | + | | | | | + | | | | - 0: off | + | | | | - 1: uniform surface correction | + | | | | - 2: non-uniform surface correction, scaled using :varlink:`wghtBalancedFile` for local weighting | + | | | | | + | | | | if =1 or 2, requires #define :varlink:`ALLOW_BALANCE_FLUXES` | + +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`wghtBalanceFile` | PARM05 | :kbd:`' '` | filename for 2D specification of weights used in :varlink:`selectBalanceEmPmR` =2 correction | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`salt_EvPrRn` | PARM01 | 0.0 | salinity of rain and evaporated water (psu or g/kg) | + | :varlink:`salt_EvPrRn` | PARM01 | 0.0 | salinity of rain and evaporated water (g/kg) | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ | :varlink:`selectAddFluid` | PARM01 | 0 | add fluid to ocean interior options (-1, 0: off, or 1); requires #define :varlink:`ALLOW_ADDFLUID` | +----------------------------------------+-----------+--------------------------------------------------+---------------------------------------------------------------------------------------------------------+ @@ -2510,7 +2892,8 @@ To prescribe time-dependent periodic forcing, concatenate successive time records into a single file ordered in a (:math:`x,y`,time) fashion and set the following variables: :varlink:`periodicExternalForcing` to -``.TRUE.``, :varlink:`externForcingPeriod` to the period (in seconds between two records in input files) with which +``.TRUE.``, :varlink:`externForcingPeriod` to the period (in seconds between +two records in input files) with which the forcing varies (e.g., 1 month), and :varlink:`externForcingCycle` to the repeat time (in seconds) of the forcing (e.g., 1 year; note :varlink:`externForcingCycle` must be a multiple of @@ -2541,11 +2924,12 @@ The beginning of a simulation is set by specifying a start time (in seconds) through the real variable :varlink:`startTime` or by specifying an initial iteration number through the integer variable :varlink:`nIter0`. If these variables are set to non-zero values, the model will look for a -”pickup” file (by default, ``pickup.0000nIter0``) to restart the integration. The -end of a simulation is set through the real variable :varlink:`endTime` (in seconds). -Alternatively, one can instead specify the number of time steps +”pickup” file (by default, ``pickup.0000nIter0``) to restart the integration. +The end of a simulation is set through the real variable :varlink:`endTime` +(in seconds). Alternatively, one can instead specify the number of time steps to execute through the integer variable :varlink:`nTimeSteps`. -Iterations are referenced to :varlink:`deltaTClock`, i.e., each iteration is :varlink:`deltaTClock` seconds of model time. +Iterations are referenced to :varlink:`deltaTClock`, i.e., each iteration is +:varlink:`deltaTClock` seconds of model time. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -2568,15 +2952,21 @@ Input/Output Files The precision with which to read binary data is controlled by the integer variable :varlink:`readBinaryPrec`, which can take -the value 32 (single precision) or 64 (double precision). Similarly, the precision with which -to write binary data is controlled by the integer variable :varlink:`writeBinaryPrec`. -By default, MITgcm writes output (snapshots, diagnostics, and pickups) separately for individual tiles, -leaving it to the user to reassemble these into global files, if needed (scripts are available in :filelink:`utils/`). -There are two options however to have the model do this for you. Setting :varlink:`globalFiles` to ``.TRUE.`` should always work in a single process setup (including multi-threaded processes), -but for `MPI `_ runs this will depend on the platform -- it requires simultaneous write access to a common file -(permissible in typical `Lustre `_ setups, but not on all file systems). -Alternatively, one can set :varlink:`useSingleCpuIO` -to ``.TRUE.`` to generate global files, which should always work, but requires additional mpi-passing of data and may result in slower execution. +the value 32 (single precision) or 64 (double precision). Similarly, the +precision with which to write binary data is controlled by the integer variable +:varlink:`writeBinaryPrec`. By default, MITgcm writes output (snapshots, +diagnostics, and pickups) separately for individual tiles, leaving it to the +user to reassemble these into global files, if needed (scripts are available in +:filelink:`utils/`). There are two options however to have the model do this +for you. Setting :varlink:`globalFiles` to ``.TRUE.`` should always work in a +single process setup (including multi-threaded processes), but for +`MPI `_ runs this will +depend on the platform -- it requires simultaneous write access to a common +file (permissible in typical +`Lustre `_ setups, but not +on all file systems). Alternatively, one can set :varlink:`useSingleCpuIO` +to ``.TRUE.`` to generate global files, which should always work, but requires +additional mpi-passing of data and may result in slower execution. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -2616,9 +3006,10 @@ Frequency/Amount of Output The frequency (in seconds) with which output is written to disk needs to be specified. :varlink:`dumpFreq` controls the -frequency with which the instantaneous state of the model is written. :varlink:`monitorFreq` -controls the frequency with which monitor output is dumped to the standard output file(s). -The frequency of output is referenced to :varlink:`deltaTClock`. +frequency with which the instantaneous state of the model is written. +:varlink:`monitorFreq` controls the frequency with which monitor output is +dumped to the standard output file(s). The frequency of output is referenced +to :varlink:`deltaTClock`. .. tabularcolumns:: |\Y{.18}|\Y{.1}|\Y{.2}|\Y{.545}| @@ -2648,8 +3039,8 @@ Restart/Pickup Files ~~~~~~~~~~~~~~~~~~~~ :varlink:`chkPtFreq` and :varlink:`pchkPtFreq` control the output frequency of -rolling and permanent pickup (a.k.a. checkpoint) files, respectively. These frequencies are referenced -to :varlink:`deltaTClock`. +rolling and permanent pickup (a.k.a. checkpoint) files, respectively. These +frequencies are referenced to :varlink:`deltaTClock`. .. tabularcolumns:: |\Y{.225}|\Y{.1}|\Y{.125}|\Y{.575}| @@ -2675,8 +3066,9 @@ to :varlink:`deltaTClock`. Parameters Used In Optional Packages ------------------------------------ -Some optional packages were not written with package-specific namelist parameters in a ``data.${pkg}`` file; -or for historical and/or other reasons, several package-specific namelist parameters remain in ``data``. +Some optional packages were not written with package-specific namelist +parameters in a ``data.${pkg}`` file; or for historical and/or other reasons, +several package-specific namelist parameters remain in ``data``. .. _c-d_scheme: @@ -2728,15 +3120,22 @@ Automatic Differentiation Execution Environment Parameters -------------------------------- -If running multi-threaded (i.e., using shared memory/`OpenMP `_), you will need to set :varlink:`nTx` and/or :varlink:`nTy` -so that :varlink:`nTx`\ \*\ :varlink:`nTy` is the total number of threads (per process). +If running multi-threaded (i.e., using shared +memory/`OpenMP `_), you will need to set +:varlink:`nTx` and/or :varlink:`nTy` so that :varlink:`nTx`\ \*\ :varlink:`nTy` +is the total number of threads (per process). -The parameter :varlink:`useCubedSphereExchange` needs to be changed to ``.TRUE.`` if you are using any type of grid composed of interconnected individual faces, -including the cubed sphere topology or a lat-lon cap grid. See (needs section to be written). +The parameter :varlink:`useCubedSphereExchange` needs to be changed to +``.TRUE.`` if you are using any type of grid composed of interconnected +individual faces, including the cubed sphere topology or a lat-lon cap grid. +See (needs section to be written). -Note that setting flag :varlink:`debugMode` to ``.TRUE.`` activates a separate set of debugging print statements than parameter -:varlink:`debugLevel` (see :numref:`freq_of_output`). The latter controls print statements that monitor model activity (such as opening files, etc.), whereas the former -produces a more coding-oriented set of print statements (e.g., entering and exiting subroutines, etc.) +Note that setting flag :varlink:`debugMode` to ``.TRUE.`` activates a separate +set of debugging print statements than parameter :varlink:`debugLevel` +(see :numref:`freq_of_output`). The latter controls print statements that +monitor model activity (such as opening files, etc.), whereas the former +produces a more coding-oriented set of print statements (e.g., entering and +exiting subroutines, etc.) .. tabularcolumns:: |\Y{.25}|\Y{.125}|\Y{.125}|\Y{.525}| @@ -2767,89 +3166,117 @@ produces a more coding-oriented set of print statements (e.g., entering and exit MITgcm Input Data File Format ============================= -MITgcm input files for grid-related data (e.g., :varlink:`delXFile`), forcing fields (e.g., :varlink:`tauThetaClimRelax`), +MITgcm input files for grid-related data (e.g., :varlink:`delXFile`), +forcing fields (e.g., :varlink:`tauThetaClimRelax`), parameter fields (e.g., :varlink:`viscAhZfile`), etc. are assumed to -be in "flat" or "unblocked" `binary format `_ . -For historical reasons, MITgcm files use big-endian `byte ordering `_, -**NOT** little-endian which is the more common default for today's computers. Thus, some care is required to create MITgcm-readable input files. +be in "flat" or "unblocked" `binary format `_. +For historical reasons, MITgcm files use big-endian +`byte ordering `_, +**NOT** little-endian which is the more common default for today's computers. +Thus, some care is required to create MITgcm-readable input files. -- Using `MATLAB `_: - When writing binary files, MATLAB's `fopen `_ command - includes a MACHINEFORMAT option \\'b\\' which instructs MATLAB to read or write using big-endian byte ordering. - 2-D arrays should be index-ordered in MATLAB as (:math:`x`, :math:`y`) and 3-D arrays as - (:math:`x`, :math:`y`, :math:`z`); data is ordered from low to high in each index, with :math:`x` varying most rapidly. +- Using `MATLAB `_: + When writing binary files, MATLAB's `fopen `_ + command includes a MACHINEFORMAT option ``'b'`` which instructs MATLAB + to read or write using big-endian byte ordering. 2-D arrays should be + index-ordered in MATLAB as (:math:`x`, :math:`y`) and 3-D arrays as + (:math:`x`, :math:`y`, :math:`z`); data is ordered from low to high in + each index, with :math:`x` varying most rapidly. - An example to create a bathymetry file (from tutorial :ref:`sec_eg_baro`, a simple enclosed, flat-bottom domain) is as follows: + An example to create a bathymetry file of single-precision, floating + point values (from tutorial :ref:`sec_eg_baro`, a simple enclosed, + flat-bottom domain) is as follows: :: - ieee='b'; % big endian format - accuracy='real*4'; % this is single precision + ieee = 'b'; % big-endian format + accuracy = 'float32'; % this is single-precision (='real*4') Ho=5000; % ocean depth in meters - nx=62; % number of gridpoints in x-direction - ny=62; % number of gridpoints in y-direction + nx=62; % number of gridpoints in x-direction + ny=62; % number of gridpoints in y-direction - % Flat bottom at z=-Ho - h=-Ho*ones(nx,ny); + % Flat bottom at z = -Ho + h = -Ho * ones(nx, ny); - % Walls (surrounding domain) - generate bathymetry file - h([1 end],:)=0; - h(:,[1 end])=0; - fid=fopen('bathy.bin','w',ieee); fwrite(fid,h,accuracy); fclose(fid); + % Walls (surrounding domain) + h([1 end], :) = 0; % set ocean depth to zero at east and west walls + h(:, [1 end]) = 0; % set ocean depth to zero at south and north walls -- Using `Python `_: - Any Python script used to generate MITgcm input files must manually swap the byte ordering before writing. - This can be accomplished with the command: + % save as single-precision (float32) with big-endian byte ordering + fid = fopen('bathy.bin', 'w', ieee); + fwrite(fid, h, accuracy); + fclose(fid); + + To read this bathymetry file back into MATLAB, reshaped back to (nx, ny): :: - if sys.byteorder == 'little': data.byteswap(True) + fid = fopen('bathy.bin', 'r', ieee); + h = reshape(fread(fid, Inf, accuracy), nx, ny); + fclose(fid); + +- Using `Python `_: - or, convert as follows while writing an array to a file: + A python version of the above script to create a bathymetry file is as follows: :: - data.astype('>f4').tofile('data.bin') + import numpy as np - Note that 2-D and 3-D arrays should be index-ordered as (:math:`y`, :math:`x`) and (:math:`z`, :math:`y`, :math:`x`), - respectively, to be written in proper ordering for MITgcm. + Ho = 5000 # ocean depth in meters + nx = 62 # number of gridpoints in x-direction + ny = 62 # number of gridpoints in y-direction + + # Flat bottom at z = -Ho + h = -Ho * np.ones((ny, nx)) + + # Walls (surrounding domain) + h[:, [0,-1]] = 0 # set ocean depth to zero at east and west walls + h[[0,-1], :] = 0 # set ocean depth to zero at south and north walls - The above MATLAB example translated to Python is as follows: + # save as single-precision (NumPy type float32) with big-endian byte ordering + h.astype('>f4').tofile('bathy.bin') + + The dtype specification ``'>f4'`` above instructs Python to write the file with + big-endian byte ordering (specifically, due to the '>') as single-precision real + numbers (due to the 'f4' which is NumPy ``float32`` or equivalently, + Fortran ``real*4`` format). + + To read this bathymetry file back into Python, reshaped back to (ny, nx): :: - import numpy as np - import sys - Ho=5000; # ocean depth in meters - nx=62; # number of gridpoints in x-direction - ny=62; # number of gridpoints in y-direction + h = np.fromfile('bathy.bin', '>f4').reshape(ny, nx) - # Flat bottom at z=-Ho - h=-Ho*np.ones((ny,nx)); + where again the dtype spec instructs Python to read a big-endian + file of single-precision, floating point values. - # Walls (surrounding domain) - generate bathymetry file - h[:,(0,-1)]=0; - h[(0,-1),:]=0; - # save as single precision with big-endian byte-ordering - h.astype('>f4').tofile('bathy.bin') + Note that 2-D and 3-D arrays should be index-ordered as + (:math:`y`, :math:`x`) and (:math:`z`, :math:`y`, :math:`x`), + respectively, to be written in proper ordering for MITgcm. A more complicated example of using Python to generate input date is provided in - :filelink:`verification/seaice_itd/input/gendata.py`. + :filelink:`verification/tutorial_baroclinic_gyre/input/gendata.py`. - Using `Fortran `_: To create flat binary files in Fortran, open with - syntax ``OPEN(..., ACCESS='DIRECT', ...)`` (i.e., **NOT** ``ACCESS='SEQUENTIAL'`` which includes additional metadata). - By default Fortran will use the local computer system's native byte ordering for reading and writing binary files, + syntax ``OPEN(..., ACCESS='DIRECT', ...)`` (i.e., **NOT** ``ACCESS='SEQUENTIAL'`` + which includes additional metadata). By default Fortran will use the + local computer system's native byte ordering for reading and writing binary files, which for most systems will be little-endian. One therefore has two options: - after creating a binary file in Fortran, use MATLAB or Python (or some other utility) to read in and swap the bytes in the process of writing a new file; + after creating a binary file in Fortran, use MATLAB or Python (or some + other utility) to read in and swap the bytes in the process of writing a new file; or, determine if your local Fortran has a compiler flag to control byte-ordering of binary files. - Similar to MATLAB, 2-D and 3-D arrays in Fortran should be index-ordered as (:math:`x`, :math:`y`) and (:math:`x`, :math:`y`, :math:`z`), respectively. + Similar to MATLAB, 2-D and 3-D arrays in Fortran should be index-ordered + as (:math:`x`, :math:`y`) and (:math:`x`, :math:`y`, :math:`z`), respectively. Using `NetCDF `_ format for input files is only partially implemented at present in MITgcm, and use is thus discouraged. -Input files are by default single-precision real numbers (32-bit, ``real*4``), but can be switched to double precision by setting -namelist parameter :varlink:`readBinaryPrec` (``PARM01`` in file ``data``) to a value of 64. +Input files are by default single-precision real numbers (32-bit, ``real*4``), +but can be switched to double precision by setting +namelist parameter :varlink:`readBinaryPrec` (``PARM01`` in file ``data``) +to a value of 64. diff --git a/doc/manual_references.bib b/doc/manual_references.bib index ba1bc1b255..00a563f9bc 100644 --- a/doc/manual_references.bib +++ b/doc/manual_references.bib @@ -151,7 +151,7 @@ @Article{Albrecht:2011 @Article{arakawa:77, author = {Arakawa, A. and V. Lamb}, - title = {Computational design of the basic dynamical processes of the UCLA + title = {Computational design of the basic dynamical processes of the UCLA general circulation model}, journal = mcp, year = 1977, @@ -217,7 +217,7 @@ @Article{bitz:01 doi = {10.1029/1999JC000113} } -@Article{bouillon13, +@Article{bouillon:13, author = {Bouillon, S. and T. Fichefet and V. Legat and G. Madec}, title = {The Elastic-Viscous-Plastic Method Revisited}, journal = om, @@ -226,9 +226,7 @@ @Article{bouillon13 pages = {2--12}, year = 2013, note = {Arctic Ocean}, - issn = {1463-5003}, doi = {10.1016/j.ocemod.2013.05.013}, - url = {http://dx.doi.org/10.1016/j.ocemod.2013.05.013}, } @Article{bryan:63, @@ -313,10 +311,9 @@ @Article{cam:04 doi = {10.1016/s1463-5003(03)00009-x}, } -@Article{cam:08, +@Article{campin:08, author = {Campin, J.-M. and J. Marshall and D. Ferreira}, - title = {Sea-Ice Ocean Coupling Using a Rescaled Vertical - Coordinate z$^\ast$}, + title = {Sea ice–ocean coupling using a rescaled vertical coordinate z*}, journal = om, volume = 24, number = {1--2}, @@ -325,12 +322,9 @@ @Article{cam:08 year = 2008 } -@Article{castro-morales14, - author = {Castro-Morales, K. and F. Kauker and M. Losch and S. Hendricks and K. Riemann-Campe - and R. Gerdes}, - title = {Sensitivity of Simulated {A}rctic Sea Ice to - Realistic Ice Thickness Distributions and Snow - Parameterizations}, +@Article{castro-morales:14, + author = {Castro-Morales, K. and F. Kauker and M. Losch and S. Hendricks and K. Riemann-Campe and R. Gerdes}, + title = {Sensitivity of Simulated {A}rctic Sea Ice to Realistic Ice Thickness Distributions and Snow Parameterizations}, journal = jgro, year = 2014, volume = 119, @@ -403,10 +397,10 @@ @Article{cox:84 @Article{cox87, author = {Cox, M. D.}, title = {Isopycnal diffusion in a z-coordinate ocean model}, - journal = {Ocean modelling}, + journal = {Ocean modelling (unpublished manuscripts)}, year = 1987, volume = 74, - pages = {1-5 (Unpublished manuscript)} + pages = {1-5} } @book{cushmanroisin:11, @@ -534,6 +528,17 @@ @techreport{dutkiewicz:05 url = {http://web.mit.edu/globalchange/www/MITJPSPGC_Rpt122.pdf}, } +@ARTICLE{fenty:13, + author = {Fenty, I. and P. Heimbach}, + title = {Coupled sea ice{\textendash}ocean-state estimate in the {Labrador Sea and Baffin Bay}}, + JOURNAL = jpo, + YEAR = 2013, + VOLUME = 43, + NUMBER = {5}, + PAGES = {884-904}, + doi = {10.1175/JPO-D-12-065.1}, +} + @inproceedings{ferrari:03, author = {Ferrari, R. and R. A. Pumb}, title = {Residual circulation in the ocean}, @@ -552,7 +557,7 @@ @ARTICLE{ferrari:10 NUMBER = {3-4}, PAGES = {143-156}, doi = {10.1016/j.ocemod.2010.01.004}, -} +} @ARTICLE{ferrari:08, author = {Ferrari, R. and J. C. McWilliams and V. M. Canuto and M. Dubovikov}, @@ -562,7 +567,7 @@ @ARTICLE{ferrari:08 VOLUME = 21, PAGES = {2770–2789}, doi = {10.1175/2007JCLI1510.1}, -} +} @ARTICLE{ferriera:05, author = {Ferreira, D. and J. Marshall and P. Heimbach}, @@ -574,7 +579,7 @@ @ARTICLE{ferriera:05 doi = {10.1175/JPO2785.1} } -@ARTICLE{fla92, +@ARTICLE{flato:92, author = {Flato, G. M. and W. D. Hibler, III}, TITLE = {Modeling pack ice as a cavitating fluid}, JOURNAL = jpo, @@ -652,7 +657,7 @@ @Article{gen-eta:95 pages = {463-474}, doi = {10.1175/1520-0485(1995)025<0463:PEITTI>2.0.CO;2}, } - + @Article{gen-mcw:90, author = {Gent, P. R. and J. C. McWilliams}, year = 1990, @@ -801,7 +806,8 @@ @ARTICLE{gr:98 journal = jpo, year = 1998, volume = 28, - pages = {831-841} + pages = {831-841}, + doi = {10.1175/1520-0485(1998)028<0831:TGMSF>2.0.CO;2}, } @Article{gretal:98, @@ -810,7 +816,8 @@ @Article{gretal:98 journal = jpo, year = 1998, volume = 28, - pages = {805-830} + pages = {805-830}, + doi = {10.1175/1520-0485(1998)028<0805:IDIAZC>2.0.CO;2}, } @Article{griffies:00, @@ -910,7 +917,7 @@ @Article{hellmer:89 } -@ARTICLE{hib79, +@ARTICLE{hibler:79, author = {Hibler, III, W. D.}, TITLE = "A Dynamic Thermodynamic Sea Ice Model", JOURNAL = jpo, @@ -919,7 +926,7 @@ @ARTICLE{hib79 PAGES = {815-846} } -@Article{hib80, +@Article{hibler:80, author = {Hibler, III, W. D.}, title = {Modeling a Variable Thickness Sea Ice Cover}, journal = mwr, @@ -928,7 +935,7 @@ @Article{hib80 pages = {1943--1973} } -@InCollection{hibler84, +@InCollection{hibler:84, author = {Hibler, III, W. D.}, title = {The role of sea ice dynamics in modeling CO2 increases}, booktitle = {Climate processes and climate sensitivity}, @@ -941,7 +948,7 @@ @InCollection{hibler84 address = {Washington, D.C.} } -@Article{hibler87, +@Article{hibler:87, author = {Hibler, III, W. D. and K. Bryan}, title = {A Diagnostic Ice-Ocean Model}, journal = jpo, @@ -951,6 +958,17 @@ @Article{hibler87 pages = {987--1015} } +@Article{hibler:00, + author = {Hibler, W. D. and E. M. Schulson}, + title = {On Modeling the Anisotropic Failure and Flow of Flawed Sea Ice}, + volume = 105, + doi = {10.1029/2000JC900045}, + number = {C7}, + journal = jgro, + year = 2000, + pages = {17105--17120}, +} + @InCollection{hill:95, author = {Hill, C. and J. Marshall}, title = {Application of a Parallel Navier-Stokes Model to @@ -962,7 +980,7 @@ @InCollection{hill:95 publisher = {Elsevier Science B.V.: New York}, year = 1995, editor = {A. Ecer, J. Periaux, N. Satofuka and S. Taylor} -} + } @InProceedings{hill:99, author = {Hill, C. and A. Adcroft and D. Jamous and J. Marshall}, @@ -983,7 +1001,6 @@ @Article{hill:04 doi = {10.1029/2002JC001598}, } - @InProceedings{hoe:99, author = {Hoe, J. C. and C. Hill and A. Adcroft}, title = {A personal supercomputer for climate research}, @@ -994,7 +1011,6 @@ @InProceedings{hoe:99 publisher = {IEEE}, } - @Article{holland:78, author = {Holland, W. R.}, year = {1978}, @@ -1002,7 +1018,7 @@ @Article{holland:78 journal = jpo, volume = {8}, pages = {363-392} - } +} @Article{holland:99, author = {Holland, D. M and A. Jenkins}, @@ -1012,24 +1028,21 @@ @Article{holland:99 volume = {29}, pages = {1787-1800}, doi = {10.1175/1520-0485(1999)029<1787:MTIOIA>2.0.CO;2}, - } - +} -@Article{hun97, +@Article{hunke:97, author = {Hunke, E. C. and J. K. Dukowicz}, - title = {An elastic-viscous-plastic model for sea ice - dynamics}, + title = {An elastic-viscous-plastic model for sea ice dynamics}, journal = jpo, year = 1997, volume = 27, - pages = {1849--1867} + pages = {1849--1867}, + doi = {10.1175/1520-0485(1997)027<1849:AEVPMF>2.0.CO;2} } - -@Article{hun01, +@Article{hunke:01, author = {Hunke, E. C.}, - title = {Viscous-Plastic Sea Ice Dynamics with the {EVP} - Model: Linearization Issues}, + title = {Viscous-Plastic Sea Ice Dynamics with the {EVP} Model: Linearization Issues}, journal = jcp, year = 2001, volume = 170, @@ -1037,10 +1050,9 @@ @Article{hun01 doi = {10.1006/jcph.2001.6710} } -@Article{hutchings04, +@Article{hutchings:04, author = {Hutchings, J. K. and H. Jasak and S. W. Laxon}, - title = {A Strength Implicit Correction Scheme for the - Viscous-Plastic Sea Ice Model}, + title = {A Strength Implicit Correction Scheme for the Viscous-Plastic Sea Ice Model}, journal = om, year = 2004, volume = 7, @@ -1061,6 +1073,14 @@ @techreport{ioc:10 url = {http://www.teos-10.org/pubs/TEOS-10_Manual.pdf}, } +@article{ip:91, + author = {Ip, C. F. and W. D. Hibler and G. M. Flato}, + title = {On the Effect of Rheology on Seasonal Sea-Ice Simulations}, + volume = 15, + journal = angl, + year = 1991, + pages = {17--25}, +} @Article{jackett:95, author = {Jackett, D. R. and T. J. McDougall}, @@ -1087,7 +1107,7 @@ @Article{jamart:86 @Article{jenkins:01, author = {Jenkins, A. and H. H. Hellmer and D. M. Holland}, - title = {The role of meltwater advection in the formulation of + title = {The role of meltwater advection in the formulation of conservative boundary conditions at an ice-ocean interface}, journal = jpo, year = 2001, @@ -1129,21 +1149,18 @@ @Article{kalnay:96 doi = {10.1175/1520-0477(1996)077<0437:TNYRP>2.0.CO;2}, } -@Article{kimmritz15, +@Article{kimmritz:15, author = {Kimmritz, M. and S. Danilov and M. Losch}, - title = {On the Convergence of the Modified - Elastic-Viscous-Plastic Method of Solving for - Sea-Ice Dynamics}, + title = {On the Convergence of the Modified Elastic-Viscous-Plastic Method of Solving for Sea-Ice Dynamics}, journal = jcp, year = 2015, volume = 296, pages = {90--100}, doi = {10.1016/j.jcp.2015.04.051}} -@Article{kimmritz16, +@Article{kimmritz:16, author = {Kimmritz, M. and S. Danilov and M. Losch}, - title = {The Adaptive {EVP} Method for Solving the Sea Ice - Momentum Equation}, + title = {The Adaptive {EVP} Method for Solving the Sea Ice Momentum Equation}, journal = om, year = 2016, volume = 101, @@ -1170,6 +1187,20 @@ @Article{kondo:75 pages = {91-112} } +@article{konig:10, + title = {Modeling Landfast Sea Ice by Adding Tensile Strength}, + volume = {40}, + issn = {0022-3670}, + url = {http://journals.ametsoc.org/doi/abs/10.1175/2009JPO4105.1}, + doi = {10.1175/2009JPO4105.1}, + number = {1}, + urldate = {2017-05-15}, + journal = jpo, + author = {König Beatty, Christof and Holland, David M.}, + year = {2010}, + pages = {185--198}, +} + @techreport{ks:91, author = {Koster, R. D. and M. J. Suarez}, @@ -1201,7 +1232,8 @@ @Article{lar-eta:94 journal = {Rev.~Geophys.}, volume = {32}, pages = {363--403}, - } + doi = {10.1029/94RG01872}, + } @Article{lar-eta:97, author = {Large, W. G. and G. Danabasoglu and S. C. Doney and J. C. McWilliams}, @@ -1210,9 +1242,10 @@ @Article{lar-eta:97 mixing in a global ocean model: Annual-mean climatology}, journal = jpo, volume = {27}, - number = 11, + number = 11, pages = {2418--2447}, - } + doi = {10.1175/1520-0485(1997)027<2418:STSFAB>2.0.CO;2}, + } @Article{larpond:81, author = {Large, W. G. and S. Pond}, @@ -1220,7 +1253,8 @@ @Article{larpond:81 title = {Open ocean momentum flux measurements in moderate to strong winds}, journal = jpo, volume = {11}, - pages = {324-336} + pages = {324-336}, + doi = {10.1175/1520-0485(1981)011<0324:OOMFMI>2.0.CO;2}, } @Article{leith:68, @@ -1241,26 +1275,22 @@ @Article{leith:96 pages = {481-491} } -@Article{lemieux10, +@Article{lemieux:10, author = {Lemieux, J.-F. and B. Tremblay and J. Sedl{\'a}{\v{c}}ek and P. Tupper and S. Thomas and D. Huard and J.-P. Auclair}, - title = {Improving the Numerical Convergence of - Viscous-Plastic Sea Ice Models with the - {J}acobian-Free {N}ewton-{K}rylov Method}, + title = {Improving the Numerical Convergence of Viscous-Plastic Sea Ice Models with the + {J}acobian-Free {N}ewton-{K}rylov Method}, journal = jcp, year = 2010, volume = 229, pages = {2840--2852}, - doi = {10.1016/j.jcp.2009.12.011c}} - + doi = {10.1016/j.jcp.2009.12.011c} +} -@Article{lemieux12, +@Article{lemieux:12, author = {Lemieux, J.-F. and D. Knoll and B. Tremblay and D. M. Holland and M. Losch}, - title = {A Comparison of the {J}acobian-free - {N}ewton-{K}rylov Method and the {EVP} Model for - Solving the Sea Ice Momentum Equation with a - Viscous-Plastic Formulation: a Serial Algorithm - Study}, + title = {A Comparison of the {J}acobian-free {N}ewton-{K}rylov Method and the {EVP} Model for + Solving the Sea Ice Momentum Equation with a Viscous-Plastic Formulation: a Serial Algorithm Study}, journal = jcp, year = 2012, volume = 231, @@ -1268,10 +1298,9 @@ @Article{lemieux12 pages = {5926--5944}, doi = {10.1016/j.jcp.2012.05.024}} -@Article{leppaeranta83, +@Article{leppaeranta:83, author = {Lepp{\"a}ranta, M.}, - title = {A Growth Model for Black Ice, Snow Ican and Snow - Thickness in Subarctic Basins}, + title = {A Growth Model for Black Ice, Snow Ican and Snow Thickness in Subarctic Basins}, journal = {Nordic Hydrology}, year = 1983, volume = 14, @@ -1682,6 +1711,17 @@ @Article{parkinson:79 doi = {10.1029/JC084iC01p00311} } +@Article{pawlowicz:13, + author = {Pawlowicz, R.}, + title = {Key Physical Variables in the Ocean: Temperature, Salinity, and Density}, + journal = {Nature Education Knowledge}, + year = 2013, + volume = 4, + number = 4, + pages = {13}, + url = {https://www.nature.com/scitable/knowledge/library/key-physical-variables-in-the-ocean-temperature-102805293/} +} + @book{pedlosky:87, author = {Pedlosky, J.}, title = {Geophysical Fluid Dynamics, Second Edition}, @@ -1744,6 +1784,27 @@ @Article{restrepo:98 pages = {1586-1605} } +@Article{ringeisen:19, + author = {Ringeisen, D. and M. Losch and L. B. Tremblay and N. Hutter, N.}, + title = {Simulating Intersection Angles Between Conjugate Faults in Sea Ice with Different Viscous--Plastic Rheologies}, + journal = {The Cryosphere}, + volume = 13, + year = 2019, + number = 4, + pages = {1167--1186}, + doi = {10.5194/tc-13-1167-2019} +} + +@Article{ringeisen:20, + author = {Ringeisen, D. and L. B. Tremblay and M. Losch}, + title = {Non-Normal Flow Rules Affect Fracture Angles in Sea Ice Viscous-Plastic Rheologies}, + journal = {The Cryosphere Discussions}, + volume = 2020, + year = 2020, + pages = {1--24}, + doi = {10.5194/tc-2020-153} +} + @Article{roach:15, author = {Roach, C. J. and H. E. Phillips and N. L. Bindoff and S. R. Rintoul}, year = 2015, @@ -1819,16 +1880,16 @@ @Article{sallee:18 pages = {52 - 62} } -@Article{seimgregg94, - author = {Seim, H. E. and M. C. Gregg}, - title = {Detailed observations of a naturally occurring shear instability}, - journal = jgr, - year = 1994, +@Article{seimgregg94, + author = {Seim, H. E. and M. C. Gregg}, + title = {Detailed observations of a naturally occurring shear instability}, + journal = jgr, + year = 1994, volume = 99, number = {C5}, - doi = {10.1029/94JC00168}, - pages = {10049--10073}, -} + doi = {10.1029/94JC00168}, + pages = {10049--10073}, +} @Article{stevens:90, @@ -1841,7 +1902,7 @@ @Article{stevens:90 pages = {103--133} } -@Article{sem76, +@Article{semtner:76, author = {Semtner, Jr., A. J.}, title = {A model for the thermodynamic growth of sea ice in numerical investigations of climate}, @@ -1881,6 +1942,17 @@ @InCollection{smag:93 editor = {B. Galperin and S.A. Orszag} } +@article{smith:19, + author = {Smith, T. and P. Heimbach}, + title = {Atmospheric origins of Variability in the {South} {Atlantic} Meridional Overturning Circulation}, + volume = {32}, + doi = {10.1175/JCLI-D-18-0311.1}, + number = {5}, + journal = jclim, + year = 2019, + pages = {1483--1500}, +} + @Article{smolark:89, author = {Smolarkiewicz, P. K.}, title = {Comment on "A positive definite advection scheme obtained by nonlinear renormalization of the advective fluxes"}, @@ -2051,7 +2123,8 @@ @Article{visbeck:97 year = 1997, volume = 27, number = 3, - pages = {381-402} + pages = {381-402}, + doi = {10.1175/1520-0485(1997)027<0381:SOETCI>2.0.CO;2}, } @book{vallis:17, @@ -2107,6 +2180,15 @@ @Article{wannink:92 doi = {10.1029/92JC00188} } +@Article{weaver:01, + author = {Weaver, A. and P. Courtier}, + title = {Correlation modelling on the sphere using a generalized diffusion equation}, + journal = qjrms, + year = 2001, + volume = 127, + pages = {1815-1846}, + doi = {10.1002/qj.49712757518} +} @Article{wesson94, author = {Wesson, J. C. and M. C. Gregg}, @@ -2119,7 +2201,7 @@ @Article{wesson94 @Article{white:95 author = {White, A. A. and R. A. Bromley}, - title = {Dynamically consistent, quasi-hydrostatic equations for global models + title = {Dynamically consistent, quasi-hydrostatic equations for global models with a complete representation of the Coriolis force}, journal = qjrms, year = 1995, @@ -2130,7 +2212,7 @@ @Article{white:95 @Article{williams:69, author = {Williams, G. P.}, - title = {Numerical integration of the three-dimensional Navier Stokes + title = {Numerical integration of the three-dimensional Navier Stokes equations for incompressible flow}, journal = jfm, year = 1969, @@ -2138,13 +2220,14 @@ @Article{williams:69 pages = {727--750} } -@Article{win00, +@Article{winton:00, author = {Winton, M.}, title = {A reformulated three-layer sea ice model}, journal = jaot, year = 2000, volume = 17, - pages = {525--531} + pages = {525--531}, + doi = {10.1175/1520-0426(2000)017<0525:ARTLSI>2.0.CO;2} } @Article{wolfe:14, @@ -2188,7 +2271,7 @@ @Article{yamanaka:97 doi = {10.1029/97GB02301} } -@Article{zhang97, +@Article{zhang:97, author = {Zhang, J. and Hibler, III, W. D.}, title = {On an Efficient Numerical Method for Modeling Sea Ice Dynamics}, journal = jgr, @@ -2200,17 +2283,26 @@ @Article{zhang97 } -@Article{zha98a, - author = {Zhang, J. and W. D. Hibler, III and M. Steele and - D. A. Rothrock}, - title = {Arctic ice-ocean modeling with and without climate - restoring}, +@Article{zha:98, + author = {Zhang, J. and W. D. Hibler, III and M. Steele and D. A. Rothrock}, + title = {Arctic ice-ocean modeling with and without climate restoring}, journal = jpo, year = 1998, volume = 28, pages = {191--217} } +@article{zha:05, + author = {Zhang, J. and D. A. Rothrock}, + title = {Effect of Sea Ice Rheology in Numerical Investigations of Climate}, + volume = 110, + doi = {10.1029/2004JC002599}, + number = {C8}, + journal = jgro, + year = 2005, + pages = {C08014} +} + @Article{zhouetal:95, author = {Zhou, J. and Y. C. Sud and K.-M. Lau}, year = {1995}, diff --git a/doc/ocean_state_est/figs/ctrl_var_sketch.pdf b/doc/ocean_state_est/figs/ctrl_var_sketch.pdf new file mode 100644 index 0000000000..5bb37c74a1 Binary files /dev/null and b/doc/ocean_state_est/figs/ctrl_var_sketch.pdf differ diff --git a/doc/ocean_state_est/figs/ctrl_var_sketch.svg b/doc/ocean_state_est/figs/ctrl_var_sketch.svg new file mode 100644 index 0000000000..b2d41fcb4d --- /dev/null +++ b/doc/ocean_state_est/figs/ctrl_var_sketch.svg @@ -0,0 +1,1354 @@ + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + baseTime+nIter0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + baseTime (=0) + + + + + + + + + + + + startDate_1/2 + + + + + + + + + + + + + + + + + + + + baseTime + + + + + + + + + nIter0 + nTimeSteps + + + + + + + + + + + + optimisation interval + + + + + + + + + + + spinup interval + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (1) default: xx_gentim2d_startdate = startDate + + + + + + + + + + + xx_gentim2d + + + + + + + + + + + xx_gentim2d.tmp/effective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (2) xx_gentim2d_startdate = baseTime+nIter0 + + + + + + + + + + + xx_gentim2d.tmp/effective + + + + + + + + + + + xx_gentim2d + + + + + + + + + + + xx_gentim2d.tmp/effective + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (2a) new startTime at nIter0* > nIter0 + + + + + + + + + + + baseTime+nIter0* + + + + + + + + + + + xx_gentim2d + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + (3) alternative: new startDate_1/2 at old baseTime+nIter0 = baseTime*. + + + + + + Note that this requires renaming pickup + + + + + + files and/or specifying namelist + + + + + + parameter “pickupSuff” in data + + + + + + + + + + + xx_gentim2d.tmp/effective + + + + + + + + + + + xx_gentim2d + + + + + + + + + + + baseTime* + nIter0=0 + + + + + + + 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 +BXwOUypV7iOrIiIS+OL039SBLkSmjUTSOHEMnAJTp/mSvJw4EsQqYd4VBsVniNpDUZEUJNFGqSAQ +qQxcOCOWGnHBsAHVZknrW9r3P1cr5/3UfUtV7jlTb5/23evsbyvt5zy/p7w0Wzy/sez/y1Js57x1 +vmcrO0UxyfNN5Wnz43kx9XY5saXCuGme9krH+NZrr8U9bUt6M76zTp/2cjxzrRVTbywxTs1LqhX3 +/L9ThSu2n/L7TmW2b6lGi0TzvP4y28/U69/5F8/rWOb69OL/+9WxRaoX37dUV2fsfevs61a+/cva ++7Rp3/cs7/0UiTS7XpmfWiqv1sqam76Yu/39hlOrovdp3vS1eftqk3Y4a7435T+v/Cf9z3Za5bSX ++u238ralWOKv9XH9kFox/E8Tf2Lt+8bXrtOqjZ+9eARBi/ult72y/UndYjzdZaV2fv/fS/NL/Len +7YwxlTdni3RNjK9Tf4lttlQXbezU4lwxzdL+bFqrSzvxDR2sIdjvhaFWv8/TwHlfm2KdGs3Yc/q2 +fvkrvdh+lrrm5Zk18PteC+1PLY+PLQh+X8EPZ/A161FP8/B8jYrYNdFv+P0Maarfr8SYdKulbqnM +uC3VbLdtrWxbL1r/Gz+2Nd+XX0U7L81g9iidWgU/a/j/tfDDoNaidTo/0VP21pnnu3S3l7+tj+uU +Fzetn3F/lnje6x9nXH/ex1TO3BbpstXeXL2zXyuz3+tajHGlk2acpd+2VFf1xo6p575Z+tvL82e/ +fntSa2W2D14P/2YxY1CzIIi10HqvgU1F7Xr5Ys9gp0gk+tSrpX//yqfYUmGcb9ssr33PuX/iti3n +/caO8ddL799/6jPnTO9337dd8c0+cf/LeT9Fqk2ql+ZKaf6f9vJKK/XO+H7OEl9rgKsZVLlv97w0 +388tG1tujRYpdWWbPd+Lc85XfvWLbcWSUmyprqbzTveec7qs0/KoxVCzzdhWl+/YIjm2VNdse2Fs +f+L3fP++bGyVrr8GuNzqIhaumbrqxTbfzjPbKW3b6/Psiz13xVje+xbpanyrv8WVdsva96oXt2dZ +c7VIV3Vbrd9/LCu9l63W3bG/9SrxrZbqwvRxxvP2nFhaaq/PFddZsc345bRvrTDimp6I9xnAWxAJ +gNhwvRt0dhzHLN7reVftq2HWsKWv2bdVC0X8id3Y0okEQGzYLhcASIcIQwDEcGUgqrzM1RGuHEQR +JLRd09JcEBHXxXJlS8FaWRCWhkVKzTlaJCtFuibpwtZSXdjehGtaId311ocldte0Boi4ptVd00Jh +1oCDCEiHmtelUZfm+hg4kEoRmwhIt6EwC9Rd01qRrktfFusjXfOa9ZpXrX5h7yvfBhEF4JHCFQjD +rHAFQvWAtRlACIZ1VqW6wayR9FSGEI4Szukam0st45iVOa0bkBHdvCdmbXLTMlu2nTYPgiggRMB6 +BrMsKDiWzmQSOB5maZlMJnPJ9Lxs0sNAcNnlMtowq5QA3iyBYqSCIeSzykhkXqUiIIKiqBALlw8R +Hd9KF6LOfAK8booBCtUGKkDN0VGQElk2ulNERCiE6RBxNgEBVCJbfATiTDwZaCNzCXkIcRAQkYVP +CHVULmQBw50WROKm8RBpproxYQpEF52wmR6PjNwMNtvELIsH5sl8bEQWKJQ5qhtsG12IWn7kCeVC +OjrzIaLjFRAQo4oMoZwCNkIuMo6IjtOl4sHQICeog1kjK7JxJ5DUpXNQ6kCALB0JFpqCzylWKAGE +YRhmiRmexwAdGiGXCNIhEiKCZFxihuchingiHauVd4kA8EIyLBAxteGBNGhah5QiXZ7bykpJmFr7 +M8tpa5X46re21ppt4yrrpXPMFTu9Yd9QwzXE2sT2tS+8VgOvpeOl+fpsivHn8+vH91ZRs2DNWn5/ +bY64tQ8/+Nl7634pvvPFTJtO2qD1sgaON2vjh1WzlLbXWavTJuXuTO+U7thSfZ2W1nxF9wYpra9d +T/w0Ct7X/gtDree1bT/va3tY/O+z7p42w/e0nOtrVLyv1RqOdQQz/cY6PbH/M3atiuGnTc++Fnrh +p1lcvZ/5uthhOwbF+n61z35YC/97zTqd2v28MATDr234Yf32rI+j5vl/2uiNr4E/r4a7gtnvTwft +DC3On3d7auFoPW38wtdG0EOtrTfF3Dl7pd7MHj44Pe3DnrXQvddEURy1+o09hvbirvNp/f78dv7b +v28xznT2bGkfY3sv9lsbW1z7flv8l1pKH+N5M57VpuaTaK1+bfu9/phK2raK7nW8YVtPm56Ytf/o +a6ANq9ZvvcEvvKla60u/JDn7WqrL5kkzlfVb2hdnfgx+2Bux1bzwZq3fe+3/87R888TzXpu6VuJK +wvQtVf22sqmDIojBDIKZYqqFtbMGjvS1vuKozWynfc+VNp2Oq83f9K/FTmW9FVvsVd5b8a33q8UT +y3urz7a0Wllx/21rO3+utFr5uH9aWqest53ee/tOSyuW+fb1M9NUO2li+yk67buV0ymuON+cW3b7 +1bRm69b/72f/W6ntiXPOsrZf9VKJ76fwdFK1ue2tqWz7783y3mqpqP+dXXGu1r6806/7ne9Y3twX +V0t11VytX9XvrdLimvrppDplu/+d9uZLPcuJ+8K09pQ+bQ7Bz37g9x44NepZrHn2vhZiezXR+5rS +Fj91Lcm2+5U4W0tFn145476Typtr9tEt1f6rnybO+VqLTjX/wO/6IE05Jb21E1u/tGX+a6mu3LP/ +XonxpRhPOltO6n3h9c/rZ/vTbH6sjU9fu9cTNREM87zUPVXfs/xMyhVP2nk27isbv6Wys/N0i+W1 +9LI9bRXH+7SbZq1+4Kd5WXwNfDtqk14aYm92qhvPOiW2X5/mO6vLef+rU0wt9VnfUu/7dmZarzue +tMp5P9VNmpNeuHrGGeOJKZ4yXxWm2G/27NXz7NmTyp73Z/dsaSf1xtRW2Ri/pbP9/pT3J66fJfX7 +Ly+lF21ac1fH9Sl9l/6ppyQ6681tc3v395WUUlu7YvdcP7f8+rQnzfM7S+z0auy0LZ1u801dS8rX +2lwtxi1pvZbq8mtpz4xzti7pP875/teWT2t3+M2x6Rw1sb6nWXpfcyyOLn65Uz4r6c6XPq+luvhS +ayW+f/3jt2+9PWc5p8X1ftnDXp3+Wjjzp+UfX/Nm+Gm3ji2GY5hTGLe/01svtXJS0vd17F7l7Gqp +LmtvrpfOrrdKOuuVafVpPftjfCWuDYqifw3DMBw1HOJPq2N9DRQp1sILft7FjVMk0s23H3t/vi2x +fZovlfO+9RmKCqhEdCaKHOYwTEFmjDHKDNAYB5MTCDBgQBIKRwMS2rp6BxQABExCLEQ8NiwcGhwi +FItl0ygKgiiIoSgOghAIgyAKY9BbZgGXxl1JuGeoHAydnPXeFGKBeMeCv94qE0e/PC6pBeLtJ+Mp +81vznze+S/JiN+z38atv+SvMBBr3vQFbqD9x1Kd3l9fuIamWJ8Xn4QxpXVKkUfjRyuJWKmgQhTbW +SXcqVyrD9ft9/AUVWyetlTGksUjK4dA84pjS6txVYtJPaG8+sjqQrViGCbJVy3yDbFKZaZBNJ6vj +rYUjis3rPVbcFlMOcJpLcet2HOmezuHmYjp+qXYwv4LGK0KQKbc2y9xnLFWTIiWoMda/bOkJRUU6 +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 + + + diff --git a/doc/ocean_state_est/ocean_state_est.rst b/doc/ocean_state_est/ocean_state_est.rst index 6b4a2286dc..0c621add3a 100644 --- a/doc/ocean_state_est/ocean_state_est.rst +++ b/doc/ocean_state_est/ocean_state_est.rst @@ -15,7 +15,7 @@ ECCO: model-data comparisons using gridded data sets Author: Gael Forget -The functionalities implemented in ``pkg/ecco`` are: (1) output +The functionalities implemented in :varlink:`pkg/ecco` are: (1) output time-averaged model fields to compare with gridded data sets; (2) compute normalized model-data distances (i.e., cost functions); (3) compute averages and transports (i.e., integrals). The former is @@ -24,8 +24,8 @@ after time-integration has completed. Following :cite:`for-eta:15` the total cost function is formulated generically as -.. math:: - \mathcal{J}(\vec{u}) = \sum_i \alpha_i \left(\vec{d}_i^T R_i^{-1} \vec{d}_i\right) + \sum_j \beta_j \vec{u}^T\vec{u} +.. math:: \mathcal{J}(\vec{u}) = \sum_i \alpha_i \left(\vec{d}_i^T R_i^{-1} + \vec{d}_i\right) + \sum_j \beta_j \vec{u}^T\vec{u} :label: Jtotal .. math:: @@ -115,24 +115,24 @@ examples of possible specifications are available in: - MITgcm_contrib/gael/verification/global_oce_llc90/input.ecco_v4/data.ecco -The gridded observation file name is specified by ``gencost_datafile``. -Observational time series may be provided as on big file or split into -yearly files finishing in ‘\_1992’, ‘\_1993’, etc. The corresponding -:math:`\vec{m}_i` physical variable is specified via the -``gencost_barfile`` root (see :numref:`gencost_ecco_barfile`). -A file named as specified by ``gencost_barfile`` gets created where -averaged fields are written progressively as the model steps forward in -time. After the final time step this file is re-read by -``cost_generic.F`` to compute the corresponding cost function term. If -``gencost_outputlevel`` = 1 and ``gencost_name``\ =‘foo’ then -``cost_generic.F`` outputs model-data misfit fields (i.e., -:math:`\vec{d}_i`) to a file named ‘misfit_foo.data’ for offline -analysis and visualization. +The gridded observation file name is specified by :varlink:`gencost_datafile`. +Observational time series may be provided as on big file or split into yearly +files finishing in ‘\_1992’, ‘\_1993’, etc. The corresponding :math:`\vec{m}_i` +physical variable is specified via the :varlink:`gencost_barfile` root (see +:numref:`gencost_ecco_barfile`). A file named as specified by +:varlink:`gencost_barfile` gets created where averaged fields are written +progressively as the model steps forward in time. After the final time step +this file is re-read by :filelink:`cost_generic.F ` to +compute the corresponding cost function term. If :varlink:`gencost_outputlevel` += 1 and :varlink:`gencost_name`\ =‘foo’ then :filelink:`cost_generic.F +` outputs model-data misfit fields (i.e., +:math:`\vec{d}_i`) to a file named ‘misfit_foo.data’ for offline analysis and +visualization. In the current implementation, model-data error covariance matrices :math:`R_i` omit non-diagonal terms. Specifying :math:`R_i` thus boils down to providing uncertainty fields (:math:`\sigma_i` such that -:math:`R_i=\sigma_i^2`) in a file specified via ``gencost_errfile``. By +:math:`R_i=\sigma_i^2`) in a file specified via :varlink:`gencost_errfile`. By default :math:`\sigma_i` is assumed to be time-invariant but a :math:`\sigma_i` time series of the same length as the :math:`\vec{o}_i` time series can be provided using the ``variaweight`` option @@ -144,146 +144,178 @@ default cost functions are quadratic but In principle, any averaging frequency should be possible, but only ‘day’, ‘month’, ‘step’, and ‘const’ are implemented for -``gencost_avgperiod``. If two different averaging frequencies are needed +:varlink:`gencost_avgperiod`. If two different averaging frequencies are needed for a variable used in multiple cost function terms (e.g., daily and monthly) then an extension starting with ‘\_’ should be added to -``gencost_barfile`` (such as ‘\_day’ and ‘\_mon’). [1]_ If two cost +:varlink:`gencost_barfile` (such as ‘\_day’ and ‘\_mon’). [1]_ If two cost function terms use the same variable and frequency, however, then using -a common ``gencost_barfile`` saves disk space. - -Climatologies of :math:`\vec{m}_i` can be formed from the time series of -model averages in order to compare with climatologies of -:math:`\vec{o}_i` by activating the ‘clim’ option via -``gencost_preproc`` and setting the corresponding ``gencost_preproc_i`` -integer parameter to the number of records (i.e., a # of months, days, -or time steps) per climatological cycle. The generic post-processor -(:math:`\mathcal{P}` in Eq. :eq:`Jposproc`) also -allows model-data misfits to be, for example, smoothed in space by -setting ``gencost_posproc`` to ‘smooth’ and specifying the smoother -parameters via ``gencost_posproc_c`` and ``gencost_posproc_i`` (see -:numref:`gencost_ecco_preproc`). -Other options associated with the computation of -Eq. :eq:`Jtotal` are summarized in -:numref:`gencost_ecco_preproc` and -further discussed below. Multiple ``gencost_preproc`` / -``gencost_posproc`` options may be specified per cost term. - -In general the specification of ``gencost_name`` is optional, has no -impact on the end-result, and only serves to distinguish between cost -function terms amongst the model output (STDOUT.0000, STDERR.0000, -costfunction000, misfit*.data). Exceptions listed in -:numref:`gencost_ecco_name` however -activate alternative cost function codes (in place of -``cost_generic.F``) described in :numref:`v4custom`. In this -section and in :numref:`gencost_ecco_barfile` -(unlike in other parts of the manual) ‘zonal’ / ‘meridional’ are to be -taken literally and these components are centered (i.e., not at the -staggered model velocity points). Preparing gridded velocity data sets -for use in cost functions thus boils down to interpolating them to XC / -YC. - -.. table:: Run-time parameters used in formulating generic cost functions - and defined via `ecco_gencost_nml`` namelist in ``data.ecco``. - All parameters are vectors of length ``NGENCOST`` (the # of - available cost terms) except for ``gencost_proc*`` are arrays - of size ``NGENPPROC``\ :math:`\times`\ ``NGENCOST`` (10 :math:`\times`\ - 20 by default; can be changed in ``ecco.h`` at compile time). In addition, - the ``gencost_is3d`` internal parameter is reset to true on the - fly in all 3D cases in :numref:`gencost_ecco_barfile`. +a common :varlink:`gencost_barfile` saves disk space. + +Climatologies of :math:`\vec{m}_i` can be formed from the time series of model +averages in order to compare with climatologies of :math:`\vec{o}_i` by +activating the ‘clim’ option via :varlink:`gencost_preproc` and setting the +corresponding :varlink:`gencost_preproc_i` integer parameter to the number of +records (i.e., a # of months, days, or time steps) per climatological +cycle. The generic post-processor (:math:`\mathcal{P}` in Eq. :eq:`Jposproc`) +also allows model-data misfits to be, for example, smoothed in space by setting +:varlink:`gencost_posproc` to ‘smooth’ and specifying the smoother parameters +via :varlink:`gencost_posproc_c` (name of a smoothing scale file) and +:varlink:`gencost_posproc_i` (an integer specifying the smoother number of time +steps, see :numref:`gencost_ecco_preproc`). The smoothing scale file can be +be based on the large-scale parameter specified in data.smooth or prepared as +a factor of the model resolution dxC and dyC. As an example, one can read in +offline the model dxC and dyC and create a characteristic length-scale as +sqrt(dxC^2 + dyC^2), then multiply by a factor of 3 if one wants the smoothed +(large scale) field to be of length-scale 3x that of the model grid spacing. +The smoother number of time steps `gencost_posproc_i` can be the same as that +used in data.smooth. Other options associated with the computation +of Eq. :eq:`Jtotal` are summarized in :numref:`gencost_ecco_preproc` and +further discussed below. Multiple :varlink:`gencost_preproc` / +:varlink:`gencost_posproc` options may be specified per cost term. + +In general the specification of :varlink:`gencost_name` is optional, has no +impact on the end-result, and only serves to distinguish between cost function +terms amongst the model output (STDOUT.0000, STDERR.0000, costfunction000, +misfit*.data). Exceptions listed in :numref:`gencost_ecco_name` however +activate alternative cost function codes (in place of :filelink:`cost_generic.F +`) described in :numref:`v4custom`. In this section +and in :numref:`gencost_ecco_barfile` (unlike in other parts of the manual) +‘zonal’ / ‘meridional’ are to be taken literally and these components are +centered (i.e., not at the staggered model velocity points). Preparing gridded +velocity data sets for use in cost functions thus boils down to interpolating +them to XC / YC. + +The :varlink:`gencost_kLev_select` option allows the user to select the +vertical level of a 3D model field, thereby creating a 2D field out of that +slice which is used for the cost computation. For example, drifter velocities +correspond to the second depth level of the grid used in ECCOv4, so model +velocities are selected from this depth level to compare to the drifter +observations. The user can specify this in ``data.ecco`` with: +:varlink:`gencost_kLev_select` ``( i ) = 2``, where i is replaced with the +index for that cost function term. + +.. table:: Run-time parameters used in formulating generic cost functions and + defined via `ecco_gencost_nml`` namelist in ``data.ecco``. All + parameters are vectors of length ``NGENCOST`` (the # of available + cost terms) except for ``gencost_proc*`` are arrays of size + ``NGENPPROC``\ :math:`\times`\ ``NGENCOST`` (10 :math:`\times`\ 20 + by default; can be changed in ``ECCO_SIZE.h`` at compile time). In + addition, the ``gencost_is3d`` internal parameter is reset to true + on the fly in all 3D cases in :numref:`gencost_ecco_barfile`. :name: gencost_ecco_params - +-----------------------+-----------------------+-----------------------------------+ - | parameter | type | function | - +=======================+=======================+===================================+ - | ``gencost_name`` | character(*) | Name of cost term | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_barfile`` | character(*) | File to receive model counterpart | - | | | :math:`\vec{m}_i` (See | - | | | :numref:`gencost_ecco_barfile`) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_datafile`` | character(*) | File containing | - | | | observational data | - | | | :math:`\vec{o}_i` | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_avgperiod`` | character(5) | Averaging period for | - | | | :math:`\vec{o}_i` and | - | | | :math:`\vec{m}_i` | - | | | (see text) | - +-----------------------+-----------------------+-----------------------------------+ - |``gencost_outputlevel``| integer | Greater than 0 will | - | | | output misfit fields | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_errfile`` | character(*) | Uncertainty field | - | | | name (not used in | - | | | :numref:`intgen`) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_mask`` | character(*) | Mask file name root | - | | | (used only in | - | | | :numref:`intgen`) | - +-----------------------+-----------------------+-----------------------------------+ - | ``mult_gencost`` | real | Multiplier | - | | | :math:`\alpha_i` | - | | | (default: 1) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_preproc`` | character(*) | Preprocessor names | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_preproc_c`` | character(*) | Preprocessor | - | | | character arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_preproc_i`` | integer(*) | Preprocessor integer | - | | | arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_preproc_r`` | real(*) | Preprocessor real | - | | | arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_posproc`` | character(*) | Post-processor names | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_posproc_c`` | character(*) | Post-processor | - | | | character arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_posproc_i`` | integer(*) | Post-processor | - | | | integer arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_posproc_r`` | real(*) | Post-processor real | - | | | arguments | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_spmin`` | real | Data less than this | - | | | value will be omitted | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_spmax`` | real | Data greater than | - | | | this value will be | - | | | omitted | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_spzero`` | real | Data points equal to | - | | | this value will be | - | | | omitted | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_startdate1``| integer | Start date of | - | | | observations | - | | | (YYYMMDD) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_startdate2``| integer | Start date of | - | | | observations (HHMMSS) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_is3d`` | logical | Needs to be true for | - | | | 3D fields | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_enddate1`` | integer | Not fully implemented | - | | | (used only in | - | | | :numref:`v4custom`) | - +-----------------------+-----------------------+-----------------------------------+ - | ``gencost_enddate2`` | integer | Not fully implemented | - | | | (used only in | - | | | :numref:`v4custom`) | - +-----------------------+-----------------------+-----------------------------------+ - -.. table:: Implemented ``gencost_barfile`` options (as of checkpoint - 65z) that can be used via ``cost_generic.F`` - (:numref:`costgen`). An extension starting with ‘\_’ can be - appended at the end of the variable name to distinguish between separate - cost function terms. Note: the ‘m_eta’ formula depends on the - ``ATMOSPHERIC_LOADING`` and ``ALLOW_PSBAR_STERIC`` compile time options - and ‘useRealFreshWaterFlux’ run time parameter. + +---------------------------+-------------------+-----------------------------------+ + | parameter | type | function | + +===========================+===================+===================================+ + | ``gencost_name`` | character(\*) | Name of cost term | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_barfile`` | character(\*) | File to receive model counterpart | + | | | :math:`\vec{m}_i` (See | + | | | :numref:`gencost_ecco_barfile`) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_datafile`` | character(\*) | File containing | + | | | observational data | + | | | :math:`\vec{o}_i` | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_avgperiod`` | character(5) | Averaging period for | + | | | :math:`\vec{o}_i` and | + | | | :math:`\vec{m}_i` | + | | | (see text) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_outputlevel`` | integer | Greater than 0 will | + | | | output misfit fields | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_errfile`` | character(\*) | Uncertainty field | + | | | name (not used in | + | | | :numref:`intgen`) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_mask`` | character(\*) | Mask file name root | + | | | (used only in | + | | | :numref:`intgen`) | + +---------------------------+-------------------+-----------------------------------+ + | ``mult_gencost`` | real | Multiplier | + | | | :math:`\alpha_i` | + | | | (default: 1) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_preproc`` | character(\*) | Preprocessor names | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_preproc_c`` | character(\*) | Preprocessor | + | | | character arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_preproc_i`` | integer(\*) | Preprocessor integer | + | | | arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_preproc_r`` | real(\*) | Preprocessor real | + | | | arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_posproc`` | character(\*) | Post-processor names | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_posproc_c`` | character(\*) | Post-processor | + | | | character arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_posproc_i`` | integer(\*) | Post-processor | + | | | integer arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_posproc_r`` | real(\*) | Post-processor real | + | | | arguments | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_spmin`` | real | Data less than this | + | | | value will be omitted | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_spmax`` | real | Data greater than | + | | | this value will be | + | | | omitted | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_spzero`` | real | Data points equal to | + | | | this value will be | + | | | omitted | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_startdate1`` | integer | Start date of | + | | | observations | + | | | (YYYMMDD) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_startdate2`` | integer | Start date of | + | | | observations (HHMMSS) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_is3d`` | logical | Needs to be true for | + | | | 3D fields | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_enddate1`` | integer | Not fully implemented | + | | | (used only in | + | | | :numref:`v4custom`) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_enddate2`` | integer | Not fully implemented | + | | | (used only in | + | | | :numref:`v4custom`) | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_kLev_select`` | integer | Vertical level of a 3D field to | + | | | create a 2D field for cost | + | | | computation | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_useDensityMask``| logical | Needs to be true if density | + | | | following feature is used | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_sigmaLow`` | real | Use to define minimum density | + | | | surface chosen | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_sigmaHigh`` | real | Used to define maximum density | + | | | surface chosen | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_refPressure`` | real | Defines reference pressure used | + | | | in density following feature | + +---------------------------+-------------------+-----------------------------------+ + | ``gencost_tanhScale`` | real | Used in defining density levels | + | | | in density following feature | + +---------------------------+-------------------+-----------------------------------+ + +.. table:: Implemented ``gencost_barfile`` options (as of checkpoint 65z) that + can be used via :filelink:`cost_generic.F + ` (:numref:`costgen`). An extension + starting with ‘\_’ can be appended at the end of the variable name + to distinguish between separate cost function terms. Note: the + ‘m_eta’ formula depends on the ``ATMOSPHERIC_LOADING`` and + ``ALLOW_PSBAR_STERIC`` compile-time options and + ‘useRealFreshWaterFlux’ run-time parameter. :name: gencost_ecco_barfile +-----------------------+-----------------------+-----------------------+ @@ -365,7 +397,7 @@ YC. +=======================+=======================+=======================+ | ``gencost_preproc`` | | | +-----------------------+-----------------------+-----------------------+ - | ``clim`` | Use climatological | integer: no. of | + | ``clim`` | Use climatological | integer: no. of | | | misfits | records per | | | | climatological cycle | +-----------------------+-----------------------+-----------------------+ @@ -384,6 +416,11 @@ YC. | | :math:`\vec{m}_i` by | factor | | | a scaling factor | | +-----------------------+-----------------------+-----------------------+ + | ``offset`` | subtract mean misfit | — | + +-----------------------+-----------------------+-----------------------+ + | ``mindepth`` | mask (ignore) misfit | real: minimum water | + | | above minimum depth | depth (:math:`< 0`) | + +-----------------------+-----------------------+-----------------------+ | ``gencost_posproc`` | | | +-----------------------+-----------------------+-----------------------+ | ``smooth`` | Smooth misfits | character: smoothing | @@ -399,26 +436,25 @@ Generic Integral Function ~~~~~~~~~~~~~~~~~~~~~~~~~ The functionality described in this section is operated by -``cost_gencost_boxmean.F``. It is primarily aimed at obtaining a -mechanistic understanding of a chosen physical variable via adjoint -sensitivity computations (see :ref:`chap_autodiff`) as done for example in -:cite:`maro-eta:99,heim-eta:11,fuku-etal:14`. Thus the -quadratic term in Eq. :eq:`Jtotal` -(:math:`\vec{d}_i^T R_i^{-1} \vec{d}_i`) is by default replaced with a -:math:`d_i` scalar [2]_ that derives from model fields through a generic -integral formula (Eq. :eq:`Jpreproc`). The -specification of ``gencost_barfile`` again selects the physical variable -type. Current valid options to use ``cost_gencost_boxmean.F`` are -reported in :numref:`genint_ecco_barfile`. A -suffix starting with ``‘_’`` can again be appended to -``gencost_barfile``. +:filelink:`cost_gencost_boxmean.F `. It is +primarily aimed at obtaining a mechanistic understanding of a chosen physical +variable via adjoint sensitivity computations (see :ref:`chap_autodiff`) as +done for example in :cite:`maro-eta:99,heim-eta:11,fuku-etal:14`. Thus the +quadratic term in Eq. :eq:`Jtotal` (:math:`\vec{d}_i^T R_i^{-1} \vec{d}_i`) is +by default replaced with a :math:`d_i` scalar [2]_ that derives from model +fields through a generic integral formula (Eq. :eq:`Jpreproc`). The +specification of :varlink:`gencost_barfile` again selects the physical variable +type. Current valid options to use :filelink:`cost_gencost_boxmean.F +` are reported in +:numref:`genint_ecco_barfile`. A suffix starting with ``‘_’`` can again be +appended to :varlink:`gencost_barfile`. The integral formula is defined by masks provided via binary files which -names are specified via ``gencost_mask``. There are two cases: (1) if -``gencost_mask = ‘foo_mask’`` and ``gencost_barfile`` is of the +names are specified via :varlink:`gencost_mask`. There are two cases: (1) if +``gencost_mask = ‘foo_mask’`` and :varlink:`gencost_barfile` is of the ‘m_boxmean\*’ type then the model will search for horizontal, vertical, and temporal mask files named ``foo_maskC``, ``foo_maskK``, and -``foo_maskT``; (2) if instead ``gencost_barfile`` is of the +``foo_maskT``; (2) if instead :varlink:`gencost_barfile` is of the ‘m_horflux\_’ type then the model will search for ``foo_maskW``, ``foo_maskS``, ``foo_maskK``, and ``foo_maskT``. @@ -426,16 +462,27 @@ The ‘C’ mask or the ‘W’ / ‘S’ masks are expected to be two-dimension fields. The ‘K’ and ‘T’ masks (both optional; all 1 by default) are expected to be one-dimensional vectors. The ‘K’ vector length should match Nr. The ‘T’ vector length should match the # of records that the -specification of ``gencost_avgperiod`` implies but there is no +specification of :varlink:`gencost_avgperiod` implies but there is no restriction on its values. In case #1 (‘m_boxmean\*’) the ‘C’ and ‘K’ masks should consists of +1 and 0 values and a volume average will be computed accordingly. In case #2 (‘m_horflux\*’) the ‘W’, ‘S’, and ‘K’ masks should consists of +1, -1, and 0 values and an integrated horizontal transport (or overturn) will be computed accordingly. -.. table:: Implemented ``gencost_barfile`` options (as of checkpoint - 65z) that can be used via ``cost_gencost_boxmean.F`` - (:numref:`intgen`). +In order to define a control volume using both a depth range and a +density range, use a ‘K’ mask and also set +:varlink:`gencost_useDensityMask` ``=.TRUE.``. When the density range +feature is active, the control volume is defined at each timestep by +the bounds set in the ‘K’ mask and also by the density range specified +by the parameters :varlink:`gencost_sigmaLow` (the minimum density to +be included in the control volume) and :varlink:`gencost_sigmaHigh` +(the maximum density to be included in the control volume). As a default +:varlink:`gencost_refPressure` should be set to 0, but other values can +be used (e.g. 1000 dbar, 2000 dbar). + +.. table:: Implemented :varlink:`gencost_barfile` options (as of checkpoint + 67x) that can be used via :filelink:`cost_gencost_boxmean.F + ` (:numref:`intgen`). :name: genint_ecco_barfile +---------------------+----------------------------------+------------------+ @@ -447,6 +494,13 @@ horizontal transport (or overturn) will be computed accordingly. +---------------------+----------------------------------+------------------+ | ``m_boxmean_eta`` | mean of SSH over box | specify box | +---------------------+----------------------------------+------------------+ + | ``m_boxmean_shifwf``| total shelfice freshwater flux | specify box | + | | over box | | + +---------------------+----------------------------------+------------------+ + | ``m_boxmean_shihf`` | total shelfice heat flux over box| specify box | + +---------------------+----------------------------------+------------------+ + | ``m_boxmean_vol`` | total volume over box | specify box | + +---------------------+----------------------------------+------------------+ | ``m_horflux_vol`` | volume transport through section | specify transect | +---------------------+----------------------------------+------------------+ @@ -455,21 +509,39 @@ horizontal transport (or overturn) will be computed accordingly. Custom Cost Functions ~~~~~~~~~~~~~~~~~~~~~ -This section (very much a work in progress...) pertains to the special -cases of ``cost_gencost_bpv4.F``, ``cost_gencost_seaicev4.F``, -``cost_gencost_sshv4.F``, ``cost_gencost_sstv4.F``, and -``cost_gencost_transp.F``. The cost_gencost_transp.F function can be -used to compute a transport of volume, heat, or salt through a specified +This section (very much a work in progress...) pertains to the special cases of +:filelink:`cost_gencost_bpv4.F `, +:filelink:`cost_gencost_seaicev4.F `, +:filelink:`cost_gencost_sshv4.F `, +:filelink:`cost_gencost_sstv4.F `, +:filelink:`cost_gencost_transp.F `, and +:filelink:`cost_gencost_moc.F `. The +:filelink:`cost_gencost_transp.F ` function can +be used to compute a transport of volume, heat, or salt through a specified section (non quadratic cost function). To this end one sets ``gencost_name = ‘transp*’``, where ``*`` is an optional suffix starting -with ``‘_’``, and set ``gencost_barfile`` to one of ``m_trVol``, +with ``‘_’``, and set :varlink:`gencost_barfile` to one of ``m_trVol``, ``m_trHeat``, and ``m_trSalt``. -Note: the functionality in ``cost_gencost_transp.F`` is not regularly tested. -Users interested in computing volumetric transports through a section -are recommended to use the ``m_horflux_vol`` capabilities described above as -it is regularly tested. Users interested in computing heat and salt transport -should note the following about ``m_trHeat`` and ``m_trSalt``: +The :filelink:`cost_gencost_moc.F ` function is +similar to transport function, but is intended to compute the meridional +overturning streamfunction maximum based on the volumetric transport integrated +from the floor to surface, as in Smith and Heimbach (2019) :cite:`smith:19`. +Therefore, this function is intended to work with :varlink:`gencost_barfile` +``= m_trVol``, and note that the first 3 characters of :varlink:`gencost_name` +must be ``moc``, as depicted in :numref:`gencost_ecco_name`. Users can specify +a latitude band to compute the MOC with appropriately defined West ('W') and +South ('S') masks as described in :numref:`intgen`. As an example see +parameter group (3) in `this data.ecco file +`_ +. + +Note: the functionality in :filelink:`cost_gencost_transp.F +` is not regularly tested. Users interested in +computing volumetric transports through a section are recommended to use the +``m_horflux_vol`` capabilities described above as it is regularly tested. Users +interested in computing heat and salt transport should note the following about +``m_trHeat`` and ``m_trSalt``: 1. The associated advection scheme with transports may be inconsistent with the model unless ``ENUM_CENTERED_2ND`` is implemented @@ -477,7 +549,7 @@ should note the following about ``m_trHeat`` and ``m_trSalt``: 3. Diffusion components are not included -.. table:: Pre-defined ``gencost_name`` special cases (as of checkpoint +.. table:: Pre-defined :varlink:`gencost_name` special cases (as of checkpoint 65z; :numref:`v4custom`). :name: gencost_ecco_name @@ -531,23 +603,41 @@ should note the following about ``m_trHeat`` and ``m_trSalt``: | ``transp_trSalt`` | salt transport | specify masks | | | | (:numref:`intgen`) | +-----------------------+-----------------------+-----------------------+ + | ``moc_trVol`` | meridional ovt. | specify masks | + | | streamfn. maximum | (:numref:`intgen`) | + +-----------------------+-----------------------+-----------------------+ Key Routines ~~~~~~~~~~~~ -TBA... ``ecco_readparms.F``, ``ecco_check.F``, ``ecco_summary.F``, ... -``cost_generic.F``, ``cost_gencost_boxmean.F``, ``ecco_toolbox.F``, ... -``ecco_phys.F``, ``cost_gencost_customize.F``, -``cost_averagesfields.F``, ... +TBA ... +:filelink:`ecco_readparms.F `, +:filelink:`ecco_check.F `, +:filelink:`ecco_summary.F `, +:filelink:`cost_generic.F `, +:filelink:`cost_gencost_boxmean.F `, +:filelink:`ecco_toolbox.F `, +:filelink:`ecco_phys.F `, +:filelink:`cost_gencost_customize.F `, +:filelink:`cost_averagesfields.F `, ... Compile Options ~~~~~~~~~~~~~~~ -TBA... ALLOW_GENCOST_CONTRIBUTION, ALLOW_GENCOST3D, ... -ALLOW_PSBAR_STERIC, ALLOW_SHALLOW_ALTIMETRY, ALLOW_HIGHLAT_ALTIMETRY, -... ALLOW_PROFILES_CONTRIBUTION, ... ALLOW_ECCO_OLD_FC_PRINT, ... -ECCO_CTRL_DEPRECATED, ... packages required for some functionalities: -smooth, profiles, ctrl +TBA ... +:varlink:`ALLOW_GENCOST_CONTRIBUTION`, +:varlink:`ALLOW_GENCOST3D`, +:varlink:`ALLOW_PSBAR_STERIC`, +:varlink:`ALLOW_SHALLOW_ALTIMETRY`, +:varlink:`ALLOW_HIGHLAT_ALTIMETRY`, +:varlink:`ALLOW_PROFILES_CONTRIBUTION`, +:varlink:`ALLOW_ECCO_OLD_FC_PRINT`, +... + +packages required for some functionalities: +:filelink:`smooth `, +:filelink:`profiles `, +:filelink:`ctrl ` .. _sec:pkg:profiles: @@ -656,198 +746,245 @@ grid files. *This operation could eventually be inlined.* CTRL: Model Parameter Adjustment Capability ------------------------------------------- -Author: Gael Forget +Author: Gael Forget, An T. Nguyen, Martin Losch -Package :filelink:`ctrl ` provides an interface to defining -the control variables for an optimization. After defining CPP-flags +.. _gen_ctrl: + +Generic Control Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Package :filelink:`ctrl ` provides an interface to defining the +control variables for an optimization. After defining CPP-flags :varlink:`ALLOW_GENTIM2D_CONTROL`, :varlink:`ALLOW_GENARR2D_CONTROL`, :varlink:`ALLOW_GENARR3D_CONTROL` in :filelink:`CTRL_OPTIONS.h -` maps the gradient fields to a vector that -can be handed over to an optimization routine (see -:numref:`sectionoptim`) and maps the resulting new control vector -to the model grid unless CPP-flag :varlink:`EXCLUDE_CTRL_PACK` is defined in -:filelink:`CTRL_OPTIONS.h `. - - -.. table:: Parameters in ``ctrl_nml_genarr`` namelist in ``data.ctrl``. - The ``*`` can be replaced by ``arr2d``, ``arr3d``, or ``tim2d`` for - time-invariant two and three dimensional controls and time-varying 2D - controls, respectively. Parameters for ``genarr2d``, ``genarr3d``, and - ``gentime2d`` are arrays of length ``maxCtrlArr2D``, ``maxCtrlArr3D``, - and ``maxCtrlTim2D``, respectively, with one entry per term in the cost - function. +`, the parameters available for configuring generic +cost terms in ``data.ctrl`` are given in :numref:`gencost_ctrl_params`. The +control variables are stored as fields on the model grid in files +``$ctrlvar.$iternumber.data/meta``, and corresponding gradients in +``ad$ctrlvar.$iternumber.data/meta``, where ``$ctrl`` is defined in +``data.ctrl`` (see :numref:`gencost_ctrl_files` for possible options) and +``$iternumber`` is the 10-digit iteration number of the optimization. Further, +:filelink:`ctrl ` maps the gradient fields to a vector that can be +handed over to an optimization routine (see :numref:`sectionoptim`) and maps +the resulting new control vector to the model grid unless CPP-flag +:varlink:`EXCLUDE_CTRL_PACK` is defined in :filelink:`CTRL_OPTIONS.h +`. + +.. _gen_ctrl_param: + +Run-time Parameters +^^^^^^^^^^^^^^^^^^^ + +.. table:: Parameters in namelist group :varlink:`ctrl_nml_genarr` in ``data.ctrl``. The + ``*`` can be replaced by ``arr2d``, ``arr3d``, or ``tim2d`` for + time-invariant two and three dimensional controls and time-varying + 2D controls, respectively. Parameters for ``genarr2d``, + ``genarr3d``, and ``gentime2d`` are arrays of length + :varlink:`maxCtrlArr2D`, :varlink:`maxCtrlArr3D`, and + :varlink:`maxCtrlTim2D`, respectively, with one entry per term in + the cost function. :name: gencost_ctrl_params - +-----------------------+-----------------------+--------------------------------+ - | parameter | type | function | - +=======================+=======================+================================+ - | ``xx_gen*_file`` | character(*) | Control Name: prefix from | - | | | :numref:`gencost_ctrl_files` | - | | | + suffix. | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_weight`` | character(*) | Weights in the form | - | | | of | - | | | :math:`\sigma_{\vec{u | - | | | }_j}^{-2}` | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_bounds`` | real(5) | Apply bounds | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_preproc`` | character(*) | Control | - | | | preprocessor(s) (see | - | | | :numref:`gencost_ctrl_preproc` | - | | | ) | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_preproc_c`` | character(*) | Preprocessor | - | | | character arguments | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_preproc_i`` | integer(*) | Preprocessor integer | - | | | arguments | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gen*_preproc_r`` | real(*) | Preprocessor real | - | | | arguments | - +-----------------------+-----------------------+--------------------------------+ - | ``gen*Precond`` | real | Preconditioning | - | | | factor (:math:`=1` by | - | | | default) | - +-----------------------+-----------------------+--------------------------------+ - | ``mult_gen*`` | real | Cost function | - | | | multiplier | - | | | :math:`\beta_j` | - | | | (:math:`= 1` by | - | | | default) | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gentim2d_period``| real | Frequency of | - | | | adjustments (in | - | | | seconds) | - +-----------------------+-----------------------+--------------------------------+ - |``xx_gentim2d_startda``| integer | Adjustment start date | - |``te1`` | | | - +-----------------------+-----------------------+--------------------------------+ - |``xx_gentim2d_startda``| integer | Default: model start | - |``te2`` | | date | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gentim2d_cumsum``| logical | Accumulate control | - | | | adjustments | - +-----------------------+-----------------------+--------------------------------+ - | ``xx_gentim2d_glosum``| logical | Global sum of | - | | | adjustment (output is | - | | | still 2D) | - +-----------------------+-----------------------+--------------------------------+ - -.. table:: Generic control prefixes implemented as of checkpoint 65z. + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | Name | Default value | Description | + +====================================+==============================+=========================================================================+ + | ``xx_gen*_file`` | :kbd:`' '` | control fllename: prefix from :numref:`gencost_ctrl_files` + suffix | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_weight`` | :kbd:`' '` | filename for weights in the form of :math:`\sigma_{\vec{u}_j}^{-2}` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_bounds`` | 0.0, 0.0, 0.0, 0.0, 0.0 | apply bounds | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_preproc`` | :kbd:`' '` | control preprocessor (see :numref:`gencost_ctrl_preproc`) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_preproc_c`` | :kbd:`' '` | preprocessor character arguments (see :numref:`genarr_preproc_c`) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_preproc_i`` | 0 | preprocessor integer arguments | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``xx_gen*_preproc_r`` | 0.0 | preprocessor real arguments | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``gen*Precond`` | 1.0 | preconditioning factor | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | ``mult_gen*`` | 1.0 | cost function multiplier :math:`\beta_j` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`xx_gentim2d_period` | 0.0 | frequency of adjustments (s) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`xx_gentim2d_startdate1` | :varlink:`startdate_1` | adjustment start date 1 yyyymmdd (default from :filelink:`pkg/cal`; | + | | | see :numref:`sub_phys_pkg_cal`) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`xx_gentim2d_startdate2` | :varlink:`startdate_2` | adjustment start date 2 hhmmss (default from :filelink:`pkg/cal`; | + | | | see :numref:`sub_phys_pkg_cal`) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`xx_gentim2d_cumsum` | FALSE | accumulate control adjustments | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`xx_gentim2d_glosum` | FALSE | global sum of adjustment (note: output is still 2D) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + +.. _gen_ctrl_fields: + +Generic Control Fields +^^^^^^^^^^^^^^^^^^^^^^ + +.. table:: Generic control prefixes implemented as of checkpoint 67x. :name: gencost_ctrl_files - +-----------------------+-----------------------+-----------------------+ - | | name | description | - +=======================+=======================+=======================+ - | 2D, time-invariant | ``genarr2d`` | | - | controls | | | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_etan`` | initial sea surface | - | | | height | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_bottomdrag`` | bottom drag | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_geothermal`` | geothermal heat flux | - +-----------------------+-----------------------+-----------------------+ - | 3D, time-invariant | ``genarr3d`` | | - | controls | | | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_theta`` | initial potential | - | | | temperature | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_salt`` | initial salinity | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_uvel`` | initial zonal | - | | | velocity | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_vvel`` | initial meridional | - | | | velocity | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_kapgm`` | GM coefficient | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_kapredi`` | isopycnal diffusivity | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_diffkr`` | diapycnal diffusivity | - +-----------------------+-----------------------+-----------------------+ - | 2D, time-varying | ``gentim2D`` | | - | controls | | | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_atemp`` | atmospheric | - | | | temperature | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_aqh`` | atmospheric specific | - | | | humidity | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_swdown`` | downward shortwave | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_lwdown`` | downward longwave | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_precip`` | precipitation | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_runoff`` | river runoff | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_uwind`` | zonal wind | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_vwind`` | meridional wind | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_tauu`` | zonal wind stress | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_tauv`` | meridional wind | - | | | stress | - +-----------------------+-----------------------+-----------------------+ - | | ``xx_gen_precip`` | globally averaged | - | | | precipitation? | - +-----------------------+-----------------------+-----------------------+ + +--------------------+-----------------------+--------------------------------+ + | | name | description | + +====================+=======================+================================+ + | 2D, time-invariant | ``genarr2d`` | | + | controls | | | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_etan`` | initial sea surface height | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_bottomdrag`` | bottom drag | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_geothermal`` | geothermal heat flux | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_shicoefft`` | package :ref:`shelfice | + | | | ` | + | | | thermal transfer coefficient | + | | | (see :numref:`shi_ctrl`) | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_shicoeffs`` | package :ref:`shelfice | + | | | ` | + | | | salinity transfer | + | | | coefficient | + | | | (see :numref:`shi_ctrl`) | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_shicdrag`` | package :ref:`shelfice | + | | | ` | + | | | drag coefficient | + | | | (see :numref:`shi_ctrl`) | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_depth`` | bottom topography; | + | | | requires #define | + | | | :varlink:`ALLOW_DEPTH_CONTROL` | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_siheff`` | package :ref:`seaice | + | | | ` | + | | | initial sea ice thickness | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_siarea`` | package :ref:`seaice | + | | | ` | + | | | initial sea ice area | + +--------------------+-----------------------+--------------------------------+ + +--------------------+-----------------------+--------------------------------+ + | 3D, time-invariant | ``genarr3d`` | | + | controls | | | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_theta`` | initial potential temperature | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_salt`` | initial salinity | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_uvel`` | initial zonal velocity | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_vvel`` | initial meridional velocity | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_kapgm`` | package :ref:`gmredi | + | | | ` | + | | | GM thickness diffusivity | + | | | (see :numref:`GM_bolus_desc`) | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_kapredi`` | package :ref:`gmredi | + | | | ` | + | | | isopycnal ("Redi") diffusivity | + | | | (see :numref:`GM_redi_desc`) | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_diffkr`` | diapycnal diffusivity | + +--------------------+-----------------------+--------------------------------+ + +--------------------+-----------------------+--------------------------------+ + | 2D, time-varying | ``gentim2D`` | | + | controls | | | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_atemp`` | atmospheric temperature | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_aqh`` | atmospheric specific humidity | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_swdown`` | downward shortwave | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_lwdown`` | downward longwave | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_precip`` | precipitation | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_runoff`` | river runoff | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_uwind`` | zonal wind | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_vwind`` | meridional wind | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_tauu`` | zonal wind stress | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_tauv`` | meridional wind stres | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_gen_precip`` | globally averaged | + | | | precipitation | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_hflux`` | net heat flux | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_sflux`` | net salt (EmPmR) flux | + +--------------------+-----------------------+--------------------------------+ + | | ``xx_shifwflx`` | shelfice melt rate | + +--------------------+-----------------------+--------------------------------+ + +.. _gen_ctrl_proc: + +Generic Control Processing Options +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. table:: ``xx_gen????d_preproc`` options implemented as of checkpoint - 65z. Notes: :math:`^a`: If ``noscaling`` is false, the control + 67x. Notes: :math:`^a`: If ``noscaling`` is false, the control adjustment is scaled by one on the square root of the weight before - being added to the base control variable; if ``noscaling`` is true, the - control is multiplied by the weight in the cost function itself. + being added to the base control variable; if ``noscaling`` is true, + the control is multiplied by the weight in the cost function itself. :name: gencost_ctrl_preproc +-----------------------+-----------------------+-----------------------+ | name | description | arguments | +=======================+=======================+=======================+ - | ``WC01`` | Correlation modeling | integer: operator | + | ``WC01`` | correlation modeling | integer: operator | | | | type (default: 1) | +-----------------------+-----------------------+-----------------------+ - | ``smooth`` | Smoothing without | integer: operator | + | ``smooth`` | smoothing without | integer: operator | | | normalization | type (default: 1) | +-----------------------+-----------------------+-----------------------+ - | ``docycle`` | Average period | integer: cycle length | + | ``docycle`` | average period | integer: cycle length | | | replication | | +-----------------------+-----------------------+-----------------------+ - | ``replicate`` | Alias for ``docycle`` |(units of | + | ``replicate`` | alias for ``docycle`` |(units of | | | |``xx_gentim2d_period``)| +-----------------------+-----------------------+-----------------------+ - | ``rmcycle`` | Periodic average | integer: cycle length | + | ``rmcycle`` | periodic average | integer: cycle length | | | subtraction | | +-----------------------+-----------------------+-----------------------+ - | ``variaweight`` | Use time-varying | — | + | ``variaweight`` | use time-varying | — | | | weight | | +-----------------------+-----------------------+-----------------------+ - | ``noscaling``\ :math: | Do not scale with | — | - | `^{a}` | ``xx_gen*_weight`` | | + | ``noscaling`` | do not scale with | — | + | :math:`^{a}` | ``xx_gen*_weight`` | | +-----------------------+-----------------------+-----------------------+ - | ``documul`` | Sets | — | + | ``documul`` | sets | — | | | ``xx_gentim2d_cumsum``| | | | | | +-----------------------+-----------------------+-----------------------+ - | ``doglomean`` | Sets | — | + | ``doglomean`` | sets | — | | | ``xx_gentim2d_glosum``| | | | | | +-----------------------+-----------------------+-----------------------+ + +.. table:: ``xx_gen????d_preproc_c`` options implemented as of checkpoint + 67x. + :name: genarr_preproc_c + + +-----------------------+-----------------------+-----------------------+ + | name | description | arguments | + +=======================+=======================+=======================+ + |``log10ctrl`` | Control adjustments to| See | + | | log10 of | :numref:`log_ctrl` | + | | 2D or 3D array | | + | | (not available for | | + | | ``xx_gentim2d``). | | + +-----------------------+-----------------------+-----------------------+ + The control problem is non-dimensional by default, as reflected in the omission of weights in control penalties [(:math:`\vec{u}_j^T\vec{u}_j` in :eq:`Jtotal`]. Non-dimensional controls @@ -857,26 +994,38 @@ through multiplication by the respective uncertainty fields :math:`\mathcal{Q}` in :eq:`Upreproc`. Besides the scaling of :math:`\vec{u}_j` to physical units, the preprocessor :math:`\mathcal{Q}` can include, for example, spatial correlation -modeling (using an implementation of Weaver and Coutier, 2001) by +modeling (using an implementation of Weaver and Coutier, 2001 +:cite:`weaver:01`) by setting ``xx_gen*_preproc = ’WC01’``. Alternatively, setting ``xx_gen*_preproc = ’smooth’`` activates the smoothing part of ``WC01``, but omits the normalization. Additionally, bounds for the controls can be specified by setting ``xx_gen*_bounds``. In forward mode, adjustments to the :math:`i^\text{th}` control are clipped so that they remain -between ``xx_gen*_bounds(i,1)`` and ``xx_gen*_bounds(i,4)``. If -``xx_gen*_bounds(i,1)`` :math:`<` ``xx_gen*_bounds(i+1,1)`` for -:math:`i = 1, 2, 3`, then the bounds will “emulate a local -minimum;” otherwise, the bounds have no effect in adjoint mode. +between ``xx_gen*_bounds(i,1)`` and ``xx_gen*_bounds(i,4)``. The bounds +have no effect in adjoint mode unless ``xx_gen*_bounds(i,j)`` < +``xx_gen*_bounds(i,j+1)`` for :math:`j = 1, 3`. When this is the case, +the bounds will “emulate a local minimum” as follows in +:filelink:`pkg/ctrl/adctrl_bound.F`. On the minimum end, +when ``xx_gen*(i)`` < ``xx_gen*_bounds(i,2)`` and the gradient +``adxx_gen*(i)`` > 0.0, i.e., the derivative suggests that a +further decrease of ``xx_gen*(i)`` will decrease the cost, an adjustment +is enforced to reverse the sign of the gradient ``adxx_gen*(i)`` to be +negative such that any further decrease in ``xx_gen*(i)`` toward its minimum +bound ``xx_gen*_bounds(i,1)`` will be penalized. The opposite is enforced +at the maximum end when ``xx_gen*(i)`` > ``xx_gen*_bounds(i,3)`` +and ``adxx_gen*(i)`` < 0.0 such that the sign of the gradient +``adxx_gen*(i)`` will be reversed to positive to penalize any further +increase in ``xx_gen*(i)`` toward its maximum bound ``xx_gen*_bounds(i,4)``. For the case of time-varying controls, the frequency is specified by -``xx_gentim2d_period``. The generic control package interprets special -values of ``xx_gentim2d_period`` in the same way as the ``exf`` package: +:varlink:`xx_gentim2d_period`. The generic control package interprets special +values of :varlink:`xx_gentim2d_period` in the same way as the ``exf`` package: a value of :math:`-12` implies cycling monthly fields while a value of :math:`0` means that the field is steady. Time varying weights can be provided by specifying the preprocessor ``variaweight``, in which case -the ``xx_gentim2d_weight`` file must contain as many records as the +the :varlink:`xx_gentim2d_weight` file must contain as many records as the control parameter time series itself (approximately the run length -divided by ``xx_gentim2d_period``). +divided by :varlink:`xx_gentim2d_period`). The parameter ``mult_gen*`` sets the multiplier for the corresponding cost function penalty [:math:`\beta_j` in :eq:`Jtotal`; @@ -885,6 +1034,240 @@ does not directly appear in the estimation problem, but only serves to push the optimization process in a certain direction in control space; this operator is specified by ``gen*Precond`` (:math:`=1` by default). +Note that control parameters exist for each individual near surface atmospheric +state variable, as well as the net heat and salt (EmPmR) fluxes. The user must +be mindful of control parameter combinations that make sense according to their +specific setup, e.g., with the :ref:`EXF package `. + +.. _gen_ctrl_rec: + +Generic Control Record Access +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +For each control variable ``$ctrlvar``, three pairs of ``.data`` files (and their +corresponding ``.meta``) are required or produced per adjoint run: + +:: + + 1a $ctrlvar.effective.$iternumber.data + 1b ad$ctrlvar.effective.$iternumber.data + + 2a $ctrlvar.tmp.$iternumber.data + 2b ad$ctrlvar.tmp.$iternumber.data + + 3a $ctrlvar.$iternumber.data + 3b ad$ctrlvar.$iternumber.data + +Pair 1a,b are the physical fields with physical units. Pair 2a,b are temporary +files storing a repeat cycle for use during calculations when +:varlink:`docycle` and :varlink:`rmcycle` are active. Pair 3a,b have units or +no units depending on the setting of :varlink:`noscaling`, which controls +scaling/unscaling by the corresponding ``xx_gen*_weight`` (see +:numref:`gencost_ctrl_preproc`). + +In an adjoint run with the 2-D time-dependent controls (CPP-flag +:varlink:`ALLOW_GENTIM2D_CONTROL` defined), three variables +:varlink:`startrec`, :varlink:`endrec`, and :varlink:`diffrec` = +:varlink:`endrec` - :varlink:`startrec` + 1 will be +initialized as a function of the startdate (:varlink:`startdate_1`, +:varlink:`startdate_2`) in ``data.cal``, the control variables startdates +(:varlink:`xx_gentim2d_startdate1`, :varlink:`xx_gentim2d_startdate2`) in +``data.ctrl``, and the pickup time :varlink:`nIter0` in +:filelink:`packages_init_fixed.F ` (which +calls :filelink:`ctrl_init.F `, +:filelink:`ctrl_init_rec.F `). These three variables +are subsequently used to determine the record length of the three pairs (1--3) +of the above files, in the order as follows: + +- First the ``ad$ctrlvar.[effective,tmp,].$iternumber`` files (1b,2b,3b) above + are initialized with zeros in + :filelink:`packages_init_fixed.F `--> + :filelink:`ctrl_init.F `--> + :filelink:`ctrl_init_ctrlvar.F ` + (with :varlink:`yadprefix` = ``'ad'``); 1b and 2b have size :varlink:`diffrec` + and 3b has size :varlink:`endrec`. + +.. parsed-literal :: + + Flow of :filelink:`pkg/ctrl` when the adjoint is running (below, for $iternumber=0000000001): + + Note: :filelink:`the_model_main.F ` calls :filelink:`the_main_loop.F `, but once the code is generated from TAF, + the preprocessed form the_model_main.f calls either mdthe_main_loop or adthe_main_loop + + :filelink:`the_model_main ` + \|-:filelink:`initialise_fixed ` + \|-:filelink:`ini_parms ` + \|-:filelink:`packages_boot `, :filelink:`packages_readparms ` + \|-:filelink:`set_parms `, :filelink:`ini_model_io `, :filelink:`ini_grid `, :filelink:`load_ref_files `, :filelink:`ini_eos `, :filelink:`set_ref_state `, + :filelink:`set_grid_factors `, :filelink:`ini_depths `, :filelink:`ini_masks_etc ` + + \|-:filelink:`packages_init_fixed ` + \|-:filelink:`cal_init_fixed `, :filelink:`diagnostics_init_early `, :filelink:`diagnostics_main_init `, :filelink:`gad_init_fixed `, + :filelink:`mom_init_fixed `, :filelink:`obcs_init_fixed `, :filelink:`exf_init_fixed `, :filelink:`kpp_init_fixed `, :filelink:`gmredi_init_fixed `, + :filelink:`seaice_cost_init_fixed `, :filelink:`smooth_init_fixed `, :filelink:`ecco_cost_init_fixed `, + :filelink:`profiles_init_fixed `, :filelink:`seaice_init_fixed `, :filelink:`salt_plume_init_fixed ` + + \|-:filelink:`ctrl_init ` + \|-:filelink:`active_write_xyz `\ ('wunit') + \|-:filelink:`ctrl_init_ctrlvar `\ (genarr2d, genarr3d) + + \|-:filelink:`ctrl_init_rec `\ (gentim2d_startdate, diffrec, startrec, endrec) + \|-:filelink:`ctrl_init_ctrlvar `\ (xx_atemp.effective.0000000001, 'c','xy') + \|-:filelink:`ctrl_set_fname `\ (xx_fname,fname) + **--> fname(1:3)=[,ad,hn]xx_atemp.effective.0000000001** + \|-:filelink:`ctrl_set_globfld_xy `\ (fname(2)) (with yadprefix='ad') + \|-:filelink:`mds_write_field `\ (adxx_atemp.effective.0000000001) **<- size diffrec** + \|-:filelink:`ctrl_init_ctrlvar `\ (xx_atemp.tmp.0000000001) + \|-:filelink:`ctrl_set_fname `\(xx_fname,fname) + **--> fname(1:3)=[,ad,hn]xx_atemp.tmp.0000000001** + \|-:filelink:`ctrl_set_globfld_xy `\ (fname(2)) (with yadprefix='ad') + \|-:filelink:`mds_write_field `\ (adxx_atemp.tmp.0000000001) **<- size diffrec** + \|-:filelink:`ctrl_init_ctrlvar `\ (xx_atemp.0000000001) + \|-:filelink:`ctrl_set_fname `\(xx_fname,fname) + **--> fname(1:3)=[,ad,hn]xx_atemp.0000000001** + \|-:filelink:`ctrl_set_globfld_xy `\ (fname(2)) (with yadprefix='ad') + \|-:filelink:`mds_write_field `\ (adxx_atemp.0000000001) **<- size endrec** + +- Second, within ``initiase_variamd.f`` (see below), records + :varlink:`startrec` to :varlink:`endrec` of file 3a + ``$ctrvar.$iternumber.data`` are read in :filelink:`ctrl_map_ini_gentim2d.F + `, processed if scaling or smoothing, etc., + need to be applied, and then written to (1a,2a) + ``$ctrlvar.{effective,tmp}.data`` of size :varlink:`diffrec`. Note these + routines contain a ``md`` or ``ad`` suffix and are produced by TAF, e.g., + ``s/r ctrl_map_ini_gentim2dmd`` (found in TAF-generated file + ``ctrl_map_ini_gentim2d_ad.f``) called from ``s/r initialize_variamd`` (found + in TAF-generated file ``initialize_varia_ad.f``), which in turn is called + from ``s/r adthe_main_loop`` (found in TAF-generated file + ``the_main_loop_ad.f``); alternatively, all of these routines are found the + concatenated file ``ad_taf_output.f``. + +.. parsed-literal :: + + \|-adthe_main_loop **only available in the_main_loop_ad.f, called from the_model_main.f** + \|-adopen (many tapes, ocean variables, atmos, obcs, etc) **initialize tapelev grid, etc.** + + \|-initialise_variamd + \|-packages_init_variablesmd + \|-:filelink:`diagnostics_init_varia `, :filelink:`kpp_init_varia `, :filelink:`exf_init_varia ` **store salt,theta** + \|-:filelink:`profiles_init_varia `, :filelink:`ecco_init_varia `, :filelink:`obcs_init_variables ` **some done after ctrl** + \|-ctrl_init_variablesmd + \|-:filelink:`ctrl_map_ini_genarr ` + \|-:filelink:`ctrl_map_genarr2d ` **e.g., set etan,siheff ctrl** + \|-:filelink:`ctrl_map_genarr3d ` **e.g., set logdiffkr ctrl** + \|-ctrl_map_ini_gentim2dmd + \|-:filelink:`ctrl_init_rec `\ (xx_atemp) + **example here for atemp: [startrec,endrec,diffrec]=[24,37,14]** + \|-:filelink:`active_read_xy `\ (fnamegenIn,lrec) + **read in xx_atemp.0000000001.data from 24->37** + \|-:filelink:`active_write_xy `\ (fnamegenOut,irec) + **write out to xx_atemp.effective.0000000001.data from 1->14** + \|-:filelink:`active_read_xy `\ (fnamegenOut,irec) + **read in xx_atemp.effective.0000000001.data 1->14, do some math** + \|-:filelink:`active_write_xy `\ (fnamegenTmp,irec) + **write out to xx_atemp.tmp.0000000001.data 1->14** + do irec=1,diffrec + \|-:filelink:`active_read_xy `\ (fnamegenOut,irec) + \|-:filelink:`mds_read_field `\ (xx_gentim2d_weight,jrec) + **if variaweight, jrec=lrec, else jrec=1** + \|-:filelink:`smooth_correl2d ` **or smooth2d** + \|-xx_gen/sqrt(wgentim2d) **if doscaling** + \|-exch_xy_rl + \|-:filelink:`active_write_xy `\ (fnamegenOut,irec) + **write out to xx_atemp.effective.0000000001.data (smooth/scaled)** + enddo + +The difference in length of records for 3[a,b] compared to 1[a,b] and 2[a,b] is +due to the fact that we need to access records :varlink:`startrec` thru +:varlink:`endrec` in 3a, i.e., file 3a needs a total of at least +:varlink:`endrec` records; file 3b is automatically generated to provide access +to :varlink:`endrec` thru :varlink:`startrec` (i.e., in reverse order). File +3b, in particular, is where adjoint sensitivity will be accumulated backward +and written; note the model would thus crash if its last record were +:varlink:`diffrec` rather than :varlink:`endrec`. For pairs 1[a,b] and 2[a,b], +because they are generated *after* we have already accessed the correct records +:varlink:`startrec` to :varlink:`endrec` in 3a, we simply create and write out +these records in the shorter file size :varlink:`diffrec`. After their file +size initializations, the control adjustment field with physical unit from file +1a is passed on to :filelink:`pkg/exf` for surface forcing application. + +Note, that :varlink:`xx_gentim2d_startdate` can be used to control how many +records the different :varlink:`xx_gentim2d` files +contain. :numref:`xx_var_sketch` illustrates a few examples. + + .. figure:: figs/ctrl_var_sketch.* + :width: 100% + :align: center + :alt: xx_var_sketch + :name: xx_var_sketch + + Sketch illustrating which parts of the timeline are covered by which + :varlink:`xx_gentim2d` files. + +.. _shi_ctrl: + +Shelfice Control Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The available iceshelf control parameters depend on the form of transfer +coefficient used in the simulation. + +The adjustments ``xx_shicoefft`` and ``xx_shicoeffs`` are available when the +velocity **independent** form of transfer coefficients is used, by setting +``#undef`` :varlink:`SHI_ALLOW_GAMMAFRICT` +in :filelink:`SHELFICE_OPTIONS.h ` at +compile time (see :numref:`tab_phys_pkg_shelfice_compileparms`) and +:varlink:`SHELFICEuseGammaFrict` ``=.FALSE.`` in ``data.shelfice`` (see +:numref:`tab_phys_pkg_shelfice_runtimeparms`). These parameters provide +adjustments to :math:`\gamma_T` and/or :math:`\gamma_S` directly. If only one +of either is used, the value of the other is set based on the control +adjustments used together with :varlink:`SHELFICEsaltToHeatRatio`, which can be +set in ``data.shelfice``. See :ref:`tab_phys_pkg_shelfice_runtimeparms` for +the default. + +The adjustment ``xx_shicdrag`` is available in the velocity **dependent** form +of the ice-ocean transfer coefficients, which is specified by ``#define`` +:varlink:`SHI_ALLOW_GAMMAFRICT` and :varlink:`SHELFICEuseGammaFrict` +``=.TRUE.`` at compile time and run time respectively. This parameter provides +adjustments to the drag coefficient at the ice ocean boundary, but by default +only adjusts the drag coefficient used to compute the thermal and freshwater +fluxes, neglecting the momentum contributions. To allow the contribution +directly to momentum fluxes, specify ``xx_genarr2d_preproc_c(*,iarr) = 'mom'`` +in ``data.ctrl``. + +.. _log_ctrl: + +Logarithmic Control Parameters +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As indicated in :numref:`genarr_preproc_c`, the base-10 logarithm of a +control field can be adjusted by specifying the character option +``genarr*d_preproc_c(k2,iarr) = 'log10ctrl'``, with ``k2`` and ``iarr`` +as appropriate, and ``*d`` denoting that ``2d`` or ``3d`` are available. +As a concrete example, if the control parameter is updating ``fld2d``, +then the field will be set as follows: + +.. code-block:: fortran + + fld2d(i,j,bi,bj) = 10**( log10InitVal + xx_genarr2d(i,j,bi,bj,iarr) ) + +where ``log10InitVal`` is a scalar with a default value of 0, but can be changed +by setting ``gencost_preproc_r(k2,iarr)``. This is useful in the case where +``doInitXX=.TRUE.``. +Concretely, if we had an initial guess for ``fld2d = 10^-4`` then one could set +the following in ``data.ctrl``: + +:: + + xx_genarr2d_file(1) = 'xx_fld2d' + xx_genarr2d_weight(1) = 'nonzero_weights.data' + xx_genarr2d_preproc_c(1,1) = 'log10ctrl' + xx_genarr2d_preproc_r(1,1) = -4. , + +Note that the ``log10ctrl`` option can only be used when a weight file +is provided, and finally that this log-option cannot be used with +``xx_gen*_preproc(k2,iarr) = 'noscaling',``. + + .. _sec:pkg:smooth: SMOOTH: Smoothing And Covariance Model @@ -1321,11 +1704,11 @@ does the following: :: The optimization loop is executed outside of this program within a script. -The code can be obtained at https://github.com/mjlosch/optim_m1qn3 -. The ``README`` contains short instructions how to build and use the -code in combination with the ``tutorial_global_oce_optim`` -experiment. The usage is very similar to the :filelink:`optim` -package. +The code can be obtained at https://github.com/mjlosch/optim_m1qn3. The `README +`__ contains +short instructions how to build and use the code in combination with the +:filelink:`verification/tutorial_global_oce_optim` experiment. The usage is +very similar to the :filelink:`optim` package. .. _sec:exp:llc: @@ -1333,28 +1716,42 @@ package. Test Cases For Estimation Package Capabilities ---------------------------------------------- -First, download the model as explained in :ref:`chap_getting_started` via the MITgcm git server -:: +First, if you have not done so already, download the model as explained +in :ref:`chap_getting_started` via the `MITgcm git repository `_: :: - % git clone https://github.com/user_name/MITgcm.git + % git clone https://github.com/MITgcm/MITgcm.git -Then, download the setup from the `MITgcm_contrib/` area by logging into the cvs server -:: +Then, download the setup from the `MITgcm +verification_other git repository `_: :: - % setenv CVSROOT ':pserver:cvsanon@mitgcm.org:/u/gcmpack' - % cvs login - % ( enter the CVS password: "cvsanon" ) + % cd MITgcm + % git clone https://github.com/MITgcm/verification_other -and following the directions provided `here for global_oce_cs32 `__ -or `here for global_oce_llc90 `__. These model configurations -are used for daily regression tests to ensure continued availability of the tested estimation package features discussed in :ref:`chap_state_estimation`. -Daily results of these tests, which currently run on the `glacier` cluster, are reported `on this site `__. -To this end, one sets a `crontab job `__ that typically executes the script reported below. -The various commands can also be used to run these examples outside of crontab, directly at the command line via the `testreport capability `__. +and follow the additional directions provided for `global_oce_cs32 +`_ +or for `global_oce_llc90 +`_. +These model configurations are used for daily regression tests to ensure +continued availability of the tested estimation package features discussed in +:ref:`chap_state_estimation`. Daily results of these tests, which currently +run on the `glacier` cluster, are reported on https://mitgcm.org/testing-summary. +To this end, one sets a `crontab +job `__ that typically executes +the script reported below. The various commands can also be used to run these +examples outside of crontab, directly at the command line via the :ref:`testreport +capability `. .. note:: - Users are advised against running `global_oce_llc90/` tests with fewer than 12 cores (96 for adjoint tests) to avoid potential memory overloads. `global_oce_llc90/ `__ (595M) uses the same LLC90 grid as the production `ECCO version 4` setup does :cite:`for-eta:15`. The much coarser resolution `global_oce_cs32/ `__ (614M) uses the CS32 grid and can run on any modern laptop. + Users are advised against running `global_oce_llc90 + `_ + tests with fewer than 12 cores (96 for adjoint tests) to avoid potential memory + overloads. `global_oce_llc90 + `_ + (595M) uses the same LLC90 grid as the production `ECCO version 4` setup + :cite:`for-eta:15`. The much coarser resolution `global_oce_cs32 + `_ + (614M) uses the CS32 grid and can run on any modern laptop. :: diff --git a/doc/outp_pkgs/outp_pkgs.rst b/doc/outp_pkgs/outp_pkgs.rst index c96c1ad675..bef35f605e 100644 --- a/doc/outp_pkgs/outp_pkgs.rst +++ b/doc/outp_pkgs/outp_pkgs.rst @@ -263,13 +263,13 @@ grid-attribute information. The :varlink:`gdiag` array is described in :numref:` +-----------+-----------------------+-----------------------------------------------------+ | | :math:`\rightarrow` X | free levels option (need to be set explicitly) | +-----------+-----------------------+-----------------------------------------------------+ - -As an example, consider a diagnostic whose associated :varlink:`gdiag` parameter is -equal to “UURMR”. From :varlink:`gdiag` we can determine that this diagnostic is a -U-vector component located at the C-grid U-point, model mid-level (M) -with Nr levels (last R). + +As an example, consider a diagnostic whose associated :varlink:`gdiag` +parameter is equal to ``UUR MR``. From :varlink:`gdiag` we can determine +that this diagnostic is a U-vector component located at the C-grid U-point, +model mid-level (M) with Nr levels (last R). In this way, each diagnostic in the model has its attributes (i.e., vector or scalar, C-grid location, etc.) defined internally. The output @@ -326,11 +326,12 @@ the separate output files. A sample ``data.diagnostics`` namelist file: &DIAGNOSTICS_LIST fields(1:2,1) = 'UVEL ','VVEL ', levels(1:5,1) = 1.,2.,3.,4.,5., - filename(1) = 'diagout1', + fileName(1) = 'diagout1', frequency(1) = 86400., fields(1:2,2) = 'THETA ','SALT ', - filename(2) = 'diagout2', - fileflags(2) = ' P1 ', + fileName(2) = 'diagout2', + fileFlags(2) = ' P ', + levels(1:5,2) = 100000.0, 70000.0, 50000.0, 30000.0, 20000.0, frequency(2) = 3600., & @@ -343,8 +344,50 @@ the prefix ``diagout1``, does time averaging every 86400. seconds, (frequency is 86400.), and will write fields which are multiple-level fields at output levels 1-5. The names of diagnostics quantities are ``UVEL`` and ``VVEL``. The second set of output files has the prefix diagout2, -does time averaging every 3600. seconds, includes fields with all -levels, and the names of diagnostics quantities are ``THETA`` and ``SALT``. +does time averaging every 3600. seconds and the names of diagnostics quantities +are ``THETA`` and ``SALT``. It interpolates vertically to the pressure levels +100000 Pa, ..., 20000 Pa. + +The :varlink:`fileFlags` parameter is explained in +:numref:`diagnostic_fileFlags`. Only the first three characters matter. The +first character determines the precision of the output files. The default is +to use :varlink:`writeBinaryPrec`. The second character determines whether the +fields are to be integrated or interpolated vertically or written as is (the +default). Interpolation is only available in the atmosphere. The desired +pressure levels need to be specified in ``levels``. The third character is +used to time average the product of a diagnostic with the appropriate +thickness factor, hFacC, hFacW or hFacS. This is mostly useful with a +non-linear free surface where the thickness factors vary in time. This will +have an effect only for certain diagnostics, as determined by the parsing code +(see :numref:`diagnostic_parsing_array` and the file available_diagnostics.log +for a given setup): parse(3) has to be ``'R'``, parse(5) blank and parse(9:10) +``'MR'``. Vorticity-point diagnostics cannot be hFac weighted. Note that the +appropriate hFac factors are automatically included when integrating vertically +(second character ``'I'``), so the 'h' is not needed in this case +but could still improve accuracy of a time-averaged vertical integral when using +non-linear free surface. + +.. table:: Diagnostic fileFlags + :name: diagnostic_fileflags + + +---------------+-------+----------------------------------------------+ + | Character pos | Value | Description | + +===============+=======+==============================================+ + | 1 | R | precision: 32 bits | + +---------------+-------+----------------------------------------------+ + | | D | precision: 64 bits | + +---------------+-------+----------------------------------------------+ + | | | precision: writeBinaryPrec | + +---------------+-------+----------------------------------------------+ + | 2 | I | integrate vertically | + +---------------+-------+----------------------------------------------+ + | | P | interpolate vertically | + +---------------+-------+----------------------------------------------+ + | | | do not integrate or interpolate | + +---------------+-------+----------------------------------------------+ + | 3 | h | multiply by hFac (if permitted) when filled | + +---------------+-------+----------------------------------------------+ + The user must assure that enough computer memory is allocated for the diagnostics and the output streams selected for a particular experiment. @@ -392,19 +435,69 @@ Adjoint variables ~~~~~~~~~~~~~~~~~ The diagnostics package can also be used to print adjoint state variables. Using the diagnostics package -as opposed to using the standard 'adjoint dump' options allows one to take advantage of all the -averaging and post processing routines available to other diagnostics variables. +as opposed to using the standard 'adjoint dump' options allows one to take advantage of all the +averaging and post processing routines available to other diagnostics variables. Currently, the available adjoint state variables are: :: - 110 |ADJetan | 1 | |SM A M1|dJ/m |dJ/dEtaN: Sensitivity to sea surface height anomaly - 111 |ADJuvel | 50 | 112 |UURA MR|dJ/(m/s) |dJ/dU: Sensitivity to zonal velocity - 112 |ADJvvel | 50 | 111 |VVRA MR|dJ/(m/s) |dJ/dV: Sensitivity to meridional velocity - 113 |ADJwvel | 50 | |WM A LR|dJ/(m/s) |dJ/dW: Sensitivity to vertical velocity - 114 |ADJtheta| 50 | |SMRA MR|dJ/degC |dJ/dTheta: Sensitivity to potential temperature - 115 |ADJsalt | 50 | |SMRA MR|dJ/psu |dJ/dSalt: Sensitivity to salinity + 109 |ADJetan | 1 | |SM A M1|dJ/m |dJ/dEtaN: Sensitivity to sea surface height anomaly + 110 |ADJuvel | 15 | 111 |UURA MR|dJ/(m/s) |dJ/dU: Sensitivity to zonal velocity + 111 |ADJvvel | 15 | 110 |VVRA MR|dJ/(m/s) |dJ/dV: Sensitivity to meridional velocity + 112 |ADJwvel | 15 | |WM A LR|dJ/(m/s) |dJ/dW: Sensitivity to vertical velocity + 113 |ADJtheta| 15 | |SMRA MR|dJ/degC |dJ/dTheta: Sensitivity to potential temperature + 114 |ADJsalt | 15 | |SMRA MR|dJ/(g/kg) |dJ/dSalt: Sensitivity to salinity + 115 |ADJtaux | 1 | 116 |UU A U1|dJ/(N/m^2) |dJ/dTaux: Senstivity to zonal surface wind stress + 116 |ADJtauy | 1 | 115 |VV A U1|dJ/(N/m^2) |dJ/dTauy: Sensitivity to merid. surface wind stress + 117 |ADJempmr| 1 | |SM A U1|dJ/(kg/m^2/s) |dJ/dEmPmR: Sensitivity to net surface Fresh-Water flux into the ocean + 118 |ADJqnet | 1 | |SM A U1|dJ/(W/m^2) |dJ/dQnet: Sensitivity to net surface heat fluxinto the ocean + 119 |ADJqsw | 1 | |SM A U1|dJ/(W/m^2) |dJ/dQsw: Sensitivitiy to net Short-Wave radiation + 120 |ADJsst | 1 | |SM A M1|dJ/K |dJ/dSST: Sensitivity to Sea Surface Temperature + 121 |ADJsss | 1 | |SM A M1|dJ/(g/kg) |dJ/dSSS: Sensitivity to Sea Surface Salinity + 122 |ADJbtdrg| 1 | |SM A M1|dJ/d() |dJ/dCd: Sensitivity to bottom drag coefficient + 123 |ADJdifkr| 15 | |SMRA MR|dJ/d(m^2/s)) |dJ/dKr: Sensitivity to vertical diffusivity + 124 |ADJepsix| 15 | 125 |UURA UR|dJ/(m^2/s) |dJ/dEddyPsiX: Sensitivity to zonal eddystreamfunction + 125 |ADJepsiy| 15 | 124 |VVRA UR|dJ/(m^2/s) |dJ/dEddyPsiY: Sensitivity to meridional eddystreamfunction + + +Additionally the packages :ref:`gmredi `, +:ref:`ptracrs `, :ref:`exf `, and +:ref:`seaice ` have the following available adjoint diagnostics + +:: + + 225 |ADJkapgm| 15 | |SMRA MR|dJ/d[m^2/s] |dJ/dKgm: Sensitivity to GM Intensity + 226 |ADJkapre| 15 | |SMRA MR|dJ/d[m^2/s] |dJ/dKredi: Sensitivity to Redi Coefficient + +:: + + 227 |TRAC01 | 15 | |SMR MR|mol C/m |Dissolved Inorganic Carbon concentration + 241 |ADJptr01| 15 | |SMRA MR|dJ/mol C/m |sensitivity to Dissolved Inorganic Carbon concentration + +:: + + 221 |ADJustrs| 1 | 222 |UU A U1|dJ/(N/m^2) |dJ/dustress: Senstivity to zonal surface wind stress + 222 |ADJvstrs| 1 | 221 |VV A U1|dJ/(N/m^2) |dJ/dvstrs: Sensitivity to merid. surface wind stress + 223 |ADJhflux| 1 | |SM A U1|dJ/(W/m^2) |dJ/dhflux: Sensitivity to upward heat flux + 224 |ADJsflux| 1 | |SM A U1|dJ/(m/s) |dJ/dhflux: Sensitivity to upward fresh water flux + 225 |ADJatemp| 1 | |SM A U1|dJ/K |dJ/datemp: Sensitivity to atmos. surface temperature + 226 |ADJpreci| 1 | |SM A U1|dJ/(m/s) |dJ/daqh: Sensitivity to precipitation + 227 |ADJroff | 1 | |SM A U1|dJ/(m/s) |dJ/daqh: Sensitivity to river runoff + 228 |ADJswdn | 1 | |SM A U1|dJ/(W/m^2) |dJ/dswdown: Sensitivity to downward SW radiation + 229 |ADJlwdn | 1 | |SM A U1|dJ/(W/m^2) |dJ/dlwdown: Sensitivity to downward LW radiation + 230 |ADJuwind| 1 | |UM A U1|dJ/d(m/s) |dJ/duwind: Senstivity to zonal 10-m wind speed + 231 |ADJvwind| 1 | |VM A U1|dJ/d(m/s) |dJ/dvwind: Senstivity to meridional 10-m wind speed + 232 |ADJclsst| 1 | |SM A U1|dJ/K |dJ/dclimsst: Sensitivity to restoring SST + 233 |ADJclsss| 1 | |SM A U1|dJ/(g/kg) |dJ/dclimsss: Sensitivity to restoring SSS + +:: + + 332 |ADJarea | 1 | |SM A M1|dJ/(m^2/m^2) |dJ/darea: Sensitivity to seaice fractional ice-cover + 333 |ADJheff | 1 | |SM A M1|dJ/dm |dJ/dheff: Sensitvity to seaice ice thickness + 334 |ADJhsnow| 1 | |SM A M1|dJ/dm |dJ/dhsnow: Sensitivity to seaice snow thickness + 335 |ADJuice | 1 | 336 |UU A M1|dJ/(m/s) |dJ/duice: sensitivity to zonal ice velocity + 336 |ADJvice | 1 | 335 |VV A M1|dJ/(m/s) |dJ/dvice: sensitivity to meridional ice velocity Some notes to the user ^^^^^^^^^^^^^^^^^^^^^^ @@ -413,36 +506,40 @@ Some notes to the user 2. This feature does not work with the divided adjoint. -3. `adEtaN` is broken in :filelink:`addummy_in_stepping.F ` - so the output through diagnostics is zeros just as with the standard 'adjoint dump' method. +3. The sensitivity to sea surface height `ADJetan` is technically one time step + ahead of other adjoint diagnostics printed at the same time step number. To be + concrete, if `ADJetan` is written via the diagnostics package at every + iteration, `n`, then each field will technically correspond to the written + iteration number, `n+1`. This is simply due to a techincality about when this + variable is printed in relation to the adjoint pressure solve. -4. The diagStats options are not available for these variables. +4. The diagStats options are not available for these variables. 5. Adjoint variables are recognized by checking the 10 character variable `diagCode`. - To add a new adjoint variable, set the 4th position of `diagCode` to A + To add a new adjoint variable, set the 4th position of `diagCode` to A (notice this is the case for the list of available adjoint variables). Using pkg/diagnostics for adjoint variables ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -1. Make sure the following flag is defined in either - :filelink:`AUTODIFF_OPTIONS.h ` +1. Make sure the following flag is defined in either + :filelink:`AUTODIFF_OPTIONS.h ` or `ECCO_CPPOPTIONS.h` if that is being used. -:: +:: #define ALLOW_AUTODIFF_MONITOR -2. Be sure to increase `numlists` and `numDiags` appropriately in +2. Be sure to increase `numlists` and `numDiags` appropriately in :filelink:`DIAGNOSTICS_SIZE.h `. Safe values are e.g. 10-20 and 500-1000 respectively. -3. Specify desired variables in ``data.diagnostics`` - as any other variable, as in the following example or as in this +3. Specify desired variables in ``data.diagnostics`` + as any other variable, as in the following example or as in this :filelink:`data.diagnostics `. Note however, adjoint and forward diagnostic variables cannot - be in the same list. That is, a single `fields(:,:)` list + be in the same list. That is, a single `fields(:,:)` list cannot contain both adjoint and forward variables. :: @@ -462,7 +559,7 @@ Using pkg/diagnostics for adjoint variables #--- & -Note: the diagnostics package automatically provides a phase shift of :math:`frequency/2`, +Note: the diagnostics package automatically provides a phase shift of :math:`frequency/2`, so specify `timePhase = 0` to match output from `adjDumpFreq`. @@ -476,7 +573,7 @@ This is accomplished by adding one of the “User Diagnostic” field names (see :ref:`available diagnostics `):``UDIAG1`` through ``UDIAG10``, for multi-level fields, or ``SDIAG1`` through ``SDIAG10`` for single level fields) to the ``data.diagnostics`` namelist in one -of the output streams. +of the output streams. The second step is to add a call to :filelink:`diagnostics_fill.F ` from the subroutine in which the quantity desired for diagnostic output is @@ -543,207 +640,242 @@ MITgcm kernel available diagnostics list: :: - ---------------------------------------------------------------------------- - <-Name->|Levs| mate |<- code ->|<-- Units -->|<- Tile (max=80c) - ------------------------------------------------------------------------------------- - SDIAG1 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #1 - SDIAG2 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #2 - SDIAG3 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #3 - SDIAG4 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #4 - SDIAG5 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #5 - SDIAG6 | 1 | |SM L1|user-defined |User-Defined Surface Diagnostic #6 - SDIAG7 | 1 | |SU L1|user-defined |User-Defined U.pt Surface Diagnostic #7 - SDIAG8 | 1 | |SV L1|user-defined |User-Defined V.pt Surface Diagnostic #8 - SDIAG9 | 1 | 10 |UU L1|user-defined |User-Defined U.vector Surface Diag. #9 - SDIAG10 | 1 | 9 |VV L1|user-defined |User-Defined V.vector Surface Diag. #10 - UDIAG1 | 50 | |SM MR|user-defined |User-Defined Model-Level Diagnostic #1 - UDIAG2 | 50 | |SM MR|user-defined |User-Defined Model-Level Diagnostic #2 - UDIAG3 | 50 | |SMR MR|user-defined |User-Defined Model-Level Diagnostic #3 - UDIAG4 | 50 | |SMR MR|user-defined |User-Defined Model-Level Diagnostic #4 - UDIAG5 | 50 | |SU MR|user-defined |User-Defined U.pt Model-Level Diag. #5 - UDIAG6 | 50 | |SV MR|user-defined |User-Defined V.pt Model-Level Diag. #6 - UDIAG7 | 50 | 18 |UUR MR|user-defined |User-Defined U.vector Model-Lev Diag.#7 - UDIAG8 | 50 | 17 |VVR MR|user-defined |User-Defined V.vector Model-Lev Diag.#8 - UDIAG9 | 50 | |SM ML|user-defined |User-Defined Phys-Level Diagnostic #9 - UDIAG10 | 50 | |SM ML|user-defined |User-Defined Phys-Level Diagnostic #10 - SDIAGC | 1 | 22 |SM C L1|user-defined |User-Defined Counted Surface Diagnostic - SDIAGCC | 1 | |SM L1|count |User-Defined Surface Diagnostic Counter - ETAN | 1 | |SM M1|m |Surface Height Anomaly - ETANSQ | 1 | |SM P M1|m^2 |Square of Surface Height Anomaly - DETADT2 | 1 | |SM M1|m^2/s^2 |Square of Surface Height Anomaly Tendency - THETA | 50 | |SMR MR|degC |Potential Temperature - SALT | 50 | |SMR MR|psu |Salinity - RELHUM | 50 | |SMR MR|percent |Relative Humidity - SALTanom| 50 | |SMR MR|psu |Salt anomaly (=SALT-35; g/kg) - UVEL | 50 | 31 |UUR MR|m/s |Zonal Component of Velocity (m/s) - VVEL | 50 | 30 |VVR MR|m/s |Meridional Component of Velocity (m/s) - WVEL | 50 | |WM LR|m/s |Vertical Component of Velocity (r_units/s) - THETASQ | 50 | |SMRP MR|degC^2 |Square of Potential Temperature - SALTSQ | 50 | |SMRP MR|(psu)^2 |Square of Salinity - SALTSQan| 50 | |SMRP MR|(psu)^2 |Square of Salt anomaly (=(SALT-35)^2 (g^2/kg^2) - UVELSQ | 50 | 37 |UURP MR|m^2/s^2 |Square of Zonal Comp of Velocity (m^2/s^2) - VVELSQ | 50 | 36 |VVRP MR|m^2/s^2 |Square of Meridional Comp of Velocity (m^2/s^2) - WVELSQ | 50 | |WM P LR|m^2/s^2 |Square of Vertical Comp of Velocity - UE_VEL_C| 50 | 40 |UMR MR|m/s |Eastward Velocity (m/s) (cell center) - VN_VEL_C| 50 | 39 |VMR MR|m/s |Northward Velocity (m/s) (cell center) - UV_VEL_C| 50 | 41 |UMR MR|m^2/s^2 |Product of horizontal Comp of velocity (cell center) - UV_VEL_Z| 50 | 42 |UZR MR|m^2/s^2 |Meridional Transport of Zonal Momentum (m^2/s^2) - WU_VEL | 50 | |WU LR|m.m/s^2 |Vertical Transport of Zonal Momentum - WV_VEL | 50 | |WV LR|m.m/s^2 |Vertical Transport of Meridional Momentum - UVELMASS| 50 | 46 |UUr MR|m/s |Zonal Mass-Weighted Comp of Velocity (m/s) - VVELMASS| 50 | 45 |VVr MR|m/s |Meridional Mass-Weighted Comp of Velocity (m/s) - WVELMASS| 50 | |WM LR|m/s |Vertical Mass-Weighted Comp of Velocity - PhiVEL | 50 | 45 |SMR P MR|m^2/s |Horizontal Velocity Potential (m^2/s) - PsiVEL | 50 | 48 |SZ P MR|m.m^2/s |Horizontal Velocity Stream-Function - UTHMASS | 50 | 51 |UUr MR|degC.m/s |Zonal Mass-Weight Transp of Pot Temp - VTHMASS | 50 | 50 |VVr MR|degC.m/s |Meridional Mass-Weight Transp of Pot Temp - WTHMASS | 50 | |WM LR|degC.m/s |Vertical Mass-Weight Transp of Pot Temp (K.m/s) - USLTMASS| 50 | 54 |UUr MR|psu.m/s |Zonal Mass-Weight Transp of Salinity - VSLTMASS| 50 | 53 |VVr MR|psu.m/s |Meridional Mass-Weight Transp of Salinity - WSLTMASS| 50 | |WM LR|psu.m/s |Vertical Mass-Weight Transp of Salinity - UVELTH | 50 | 57 |UUR MR|degC.m/s |Zonal Transport of Pot Temp - VVELTH | 50 | 56 |VVR MR|degC.m/s |Meridional Transport of Pot Temp - WVELTH | 50 | |WM LR|degC.m/s |Vertical Transport of Pot Temp - UVELSLT | 50 | 60 |UUR MR|psu.m/s |Zonal Transport of Salinity - VVELSLT | 50 | 59 |VVR MR|psu.m/s |Meridional Transport of Salinity - WVELSLT | 50 | |WM LR|psu.m/s |Vertical Transport of Salinity - UVELPHI | 50 | 63 |UUr MR|m^3/s^3 |Zonal Mass-Weight Transp of Pressure Pot.(p/rho) Anomaly - VVELPHI | 50 | 62 |VVr MR|m^3/s^3 |Merid. Mass-Weight Transp of Pressure Pot.(p/rho) Anomaly - RHOAnoma| 50 | |SMR MR|kg/m^3 |Density Anomaly (=Rho-rhoConst) - RHOANOSQ| 50 | |SMRP MR|kg^2/m^6 |Square of Density Anomaly (=(Rho-rhoConst)^2) - URHOMASS| 50 | 67 |UUr MR|kg/m^2/s |Zonal Transport of Density - VRHOMASS| 50 | 66 |VVr MR|kg/m^2/s |Meridional Transport of Density - WRHOMASS| 50 | |WM LR|kg/m^2/s |Vertical Transport of Density - WdRHO_P | 50 | |WM LR|kg/m^2/s |Vertical velocity times delta^k(Rho)_at-const-P - WdRHOdP | 50 | |WM LR|kg/m^2/s |Vertical velocity times delta^k(Rho)_at-const-T,S - PHIHYD | 50 | |SMR MR|m^2/s^2 |Hydrostatic Pressure Pot.(p/rho) Anomaly - PHIHYDSQ| 50 | |SMRP MR|m^4/s^4 |Square of Hyd. Pressure Pot.(p/rho) Anomaly - PHIBOT | 1 | |SM M1|m^2/s^2 |Bottom Pressure Pot.(p/rho) Anomaly - PHIBOTSQ| 1 | |SM P M1|m^4/s^4 |Square of Bottom Pressure Pot.(p/rho) Anomaly - PHIHYDcR| 50 | |SMR MR|m^2/s^2 |Hydrostatic Pressure Pot.(p/rho) Anomaly @ const r - MXLDEPTH| 1 | |SM M1|m |Mixed-Layer Depth (>0) - DRHODR | 50 | |SM LR|kg/m^4 |Stratification: d.Sigma/dr (kg/m3/r_unit) - CONVADJ | 50 | |SMR LR|fraction |Convective Adjustment Index [0-1] - oceTAUX | 1 | 80 |UU U1|N/m^2 |zonal surface wind stress, >0 increases uVel - oceTAUY | 1 | 79 |VV U1|N/m^2 |meridional surf. wind stress, >0 increases vVel - atmPload| 1 | |SM U1|Pa |Atmospheric pressure loading - sIceLoad| 1 | |SM U1|kg/m^2 |sea-ice loading (in Mass of ice+snow / area unit) - oceFWflx| 1 | |SM U1|kg/m^2/s |net surface Fresh-Water flux into the ocean (+=down), >0 decreases salinity - oceSflux| 1 | |SM U1|g/m^2/s |net surface Salt flux into the ocean (+=down), >0 increases salinity - oceQnet | 1 | |SM U1|W/m^2 |net surface heat flux into the ocean (+=down), >0 increases theta - oceQsw | 1 | |SM U1|W/m^2 |net Short-Wave radiation (+=down), >0 increases theta - oceFreez| 1 | |SM U1|W/m^2 |heating from freezing of sea-water (allowFreezing=T) - TRELAX | 1 | |SM U1|W/m^2 |surface temperature relaxation, >0 increases theta - SRELAX | 1 | |SM U1|g/m^2/s |surface salinity relaxation, >0 increases salt - surForcT| 1 | |SM U1|W/m^2 |model surface forcing for Temperature, >0 increases theta - surForcS| 1 | |SM U1|g/m^2/s |model surface forcing for Salinity, >0 increases salinity - TFLUX | 1 | |SM U1|W/m^2 |total heat flux (match heat-content variations), >0 increases theta - SFLUX | 1 | |SM U1|g/m^2/s |total salt flux (match salt-content variations), >0 increases salt - RCENTER | 50 | |SM MR|m |Cell-Center Height - RSURF | 1 | |SM M1|m |Surface Height - TOTUTEND| 50 | 97 |UUR MR|m/s/day |Tendency of Zonal Component of Velocity - TOTVTEND| 50 | 96 |VVR MR|m/s/day |Tendency of Meridional Component of Velocity - TOTTTEND| 50 | |SMR MR|degC/day |Tendency of Potential Temperature - TOTSTEND| 50 | |SMR MR|psu/day |Tendency of Salinity - ---------------------------------------------------------------------------- - <-Name->|Levs| mate |<- code ->|<-- Units -->|<- Tile (max=80c) - ---------------------------------------------------------------------------- - MoistCor| 50 | |SM MR|W/m^2 |Heating correction due to moist thermodynamics - gT_Forc | 50 | |SMR MR|degC/s |Potential Temp. forcing tendency - gS_Forc | 50 | |SMR MR|psu/s |Salinity forcing tendency - AB_gT | 50 | |SMR MR|degC/s |Potential Temp. tendency from Adams-Bashforth - AB_gS | 50 | |SMR MR|psu/s |Salinity tendency from Adams-Bashforth - gTinAB | 50 | |SMR MR|degC/s |Potential Temp. tendency going in Adams-Bashforth - gSinAB | 50 | |SMR MR|psu/s |Salinity tendency going in Adams-Bashforth - AB_gU | 50 | 108 |UUR MR|m/s^2 |U momentum tendency from Adams-Bashforth - AB_gV | 50 | 107 |VVR MR|m/s^2 |V momentum tendency from Adams-Bashforth - ADVr_TH | 50 | |WM LR|degC.m^3/s |Vertical Advective Flux of Pot.Temperature - ADVx_TH | 50 | 111 |UU MR|degC.m^3/s |Zonal Advective Flux of Pot.Temperature - ADVy_TH | 50 | 110 |VV MR|degC.m^3/s |Meridional Advective Flux of Pot.Temperature - DFrE_TH | 50 | |WM LR|degC.m^3/s |Vertical Diffusive Flux of Pot.Temperature (Explicit part) - DFxE_TH | 50 | 114 |UU MR|degC.m^3/s |Zonal Diffusive Flux of Pot.Temperature - DFyE_TH | 50 | 113 |VV MR|degC.m^3/s |Meridional Diffusive Flux of Pot.Temperature - DFrI_TH | 50 | |WM LR|degC.m^3/s |Vertical Diffusive Flux of Pot.Temperature (Implicit part) - SM_x_TH | 50 | 117 |UM MR|degC |Pot.Temp. 1rst Order Moment Sx - SM_y_TH | 50 | 116 |VM MR|degC |Pot.Temp. 1rst Order Moment Sy - SM_z_TH | 50 | |SM MR|degC |Pot.Temp. 1rst Order Moment Sz - SMxx_TH | 50 | 120 |UM MR|degC |Pot.Temp. 2nd Order Moment Sxx - SMyy_TH | 50 | 119 |VM MR|degC |Pot.Temp. 2nd Order Moment Syy - SMzz_TH | 50 | |SM MR|degC |Pot.Temp. 2nd Order Moment Szz - SMxy_TH | 50 | |SM MR|degC |Pot.Temp. 2nd Order Moment Sxy - SMxz_TH | 50 | 124 |UM MR|degC |Pot.Temp. 2nd Order Moment Sxz - SMyz_TH | 50 | 123 |VM MR|degC |Pot.Temp. 2nd Order Moment Syz - SM_v_TH | 50 | |SM P MR|(degC)^2 |Pot.Temp. sub-grid variance - ADVr_SLT| 50 | |WM LR|psu.m^3/s |Vertical Advective Flux of Salinity - ADVx_SLT| 50 | 128 |UU MR|psu.m^3/s |Zonal Advective Flux of Salinity - ADVy_SLT| 50 | 127 |VV MR|psu.m^3/s |Meridional Advective Flux of Salinity - DFrE_SLT| 50 | |WM LR|psu.m^3/s |Vertical Diffusive Flux of Salinity (Explicit part) - DFxE_SLT| 50 | 131 |UU MR|psu.m^3/s |Zonal Diffusive Flux of Salinity - DFyE_SLT| 50 | 130 |VV MR|psu.m^3/s |Meridional Diffusive Flux of Salinity - DFrI_SLT| 50 | |WM LR|psu.m^3/s |Vertical Diffusive Flux of Salinity (Implicit part) - SALTFILL| 50 | |SM MR|psu.m^3/s |Filling of Negative Values of Salinity - SM_x_SLT| 50 | 135 |UM MR|psu |Salinity 1rst Order Moment Sx - SM_y_SLT| 50 | 134 |VM MR|psu |Salinity 1rst Order Moment Sy - SM_z_SLT| 50 | |SM MR|psu |Salinity 1rst Order Moment Sz - SMxx_SLT| 50 | 138 |UM MR|psu |Salinity 2nd Order Moment Sxx - SMyy_SLT| 50 | 137 |VM MR|psu |Salinity 2nd Order Moment Syy - SMzz_SLT| 50 | |SM MR|psu |Salinity 2nd Order Moment Szz - SMxy_SLT| 50 | |SM MR|psu |Salinity 2nd Order Moment Sxy - SMxz_SLT| 50 | 142 |UM MR|psu |Salinity 2nd Order Moment Sxz - SMyz_SLT| 50 | 141 |VM MR|psu |Salinity 2nd Order Moment Syz - SM_v_SLT| 50 | |SM P MR|(psu)^2 |Salinity sub-grid variance - VISCAHZ | 50 | |SZ MR|m^2/s |Harmonic Visc Coefficient (m2/s) (Zeta Pt) - VISCA4Z | 50 | |SZ MR|m^4/s |Biharmonic Visc Coefficient (m4/s) (Zeta Pt) - VISCAHD | 50 | |SM MR|m^2/s |Harmonic Viscosity Coefficient (m2/s) (Div Pt) - VISCA4D | 50 | |SM MR|m^4/s |Biharmonic Viscosity Coefficient (m4/s) (Div Pt) - VISCAHW | 50 | |WM LR|m^2/s |Harmonic Viscosity Coefficient (m2/s) (W Pt) - VISCA4W | 50 | |WM LR|m^4/s |Biharmonic Viscosity Coefficient (m4/s) (W Pt) - VAHZMAX | 50 | |SZ MR|m^2/s |CFL-MAX Harm Visc Coefficient (m2/s) (Zeta Pt) - VA4ZMAX | 50 | |SZ MR|m^4/s |CFL-MAX Biharm Visc Coefficient (m4/s) (Zeta Pt) - VAHDMAX | 50 | |SM MR|m^2/s |CFL-MAX Harm Visc Coefficient (m2/s) (Div Pt) - VA4DMAX | 50 | |SM MR|m^4/s |CFL-MAX Biharm Visc Coefficient (m4/s) (Div Pt) - VAHZMIN | 50 | |SZ MR|m^2/s |RE-MIN Harm Visc Coefficient (m2/s) (Zeta Pt) - VA4ZMIN | 50 | |SZ MR|m^4/s |RE-MIN Biharm Visc Coefficient (m4/s) (Zeta Pt) - VAHDMIN | 50 | |SM MR|m^2/s |RE-MIN Harm Visc Coefficient (m2/s) (Div Pt) - VA4DMIN | 50 | |SM MR|m^4/s |RE-MIN Biharm Visc Coefficient (m4/s) (Div Pt) - VAHZLTH | 50 | |SZ MR|m^2/s |Leith Harm Visc Coefficient (m2/s) (Zeta Pt) - VA4ZLTH | 50 | |SZ MR|m^4/s |Leith Biharm Visc Coefficient (m4/s) (Zeta Pt) - VAHDLTH | 50 | |SM MR|m^2/s |Leith Harm Visc Coefficient (m2/s) (Div Pt) - VA4DLTH | 50 | |SM MR|m^4/s |Leith Biharm Visc Coefficient (m4/s) (Div Pt) - VAHZLTHD| 50 | |SZ MR|m^2/s |LeithD Harm Visc Coefficient (m2/s) (Zeta Pt) - VA4ZLTHD| 50 | |SZ MR|m^4/s |LeithD Biharm Visc Coefficient (m4/s) (Zeta Pt) - VAHDLTHD| 50 | |SM MR|m^2/s |LeithD Harm Visc Coefficient (m2/s) (Div Pt) - VA4DLTHD| 50 | |SM MR|m^4/s |LeithD Biharm Visc Coefficient (m4/s) (Div Pt) - VAHZSMAG| 50 | |SZ MR|m^2/s |Smagorinsky Harm Visc Coefficient (m2/s) (Zeta Pt) - VA4ZSMAG| 50 | |SZ MR|m^4/s |Smagorinsky Biharm Visc Coeff. (m4/s) (Zeta Pt) - VAHDSMAG| 50 | |SM MR|m^2/s |Smagorinsky Harm Visc Coefficient (m2/s) (Div Pt) - VA4DSMAG| 50 | |SM MR|m^4/s |Smagorinsky Biharm Visc Coeff. (m4/s) (Div Pt) - momKE | 50 | |SMR MR|m^2/s^2 |Kinetic Energy (in momentum Eq.) - momHDiv | 50 | |SMR MR|s^-1 |Horizontal Divergence (in momentum Eq.) - momVort3| 50 | |SZR MR|s^-1 |3rd component (vertical) of Vorticity - Strain | 50 | |SZR MR|s^-1 |Horizontal Strain of Horizontal Velocities - Tension | 50 | |SMR MR|s^-1 |Horizontal Tension of Horizontal Velocities - UBotDrag| 50 | 176 |UUR MR|m/s^2 |U momentum tendency from Bottom Drag - VBotDrag| 50 | 175 |VVR MR|m/s^2 |V momentum tendency from Bottom Drag - USidDrag| 50 | 178 |UUR MR|m/s^2 |U momentum tendency from Side Drag - VSidDrag| 50 | 177 |VVR MR|m/s^2 |V momentum tendency from Side Drag - Um_Diss | 50 | 180 |UUR MR|m/s^2 |U momentum tendency from Dissipation - Vm_Diss | 50 | 179 |VVR MR|m/s^2 |V momentum tendency from Dissipation - Um_Advec| 50 | 182 |UUR MR|m/s^2 |U momentum tendency from Advection terms - Vm_Advec| 50 | 181 |VVR MR|m/s^2 |V momentum tendency from Advection terms - Um_Cori | 50 | 184 |UUR MR|m/s^2 |U momentum tendency from Coriolis term - Vm_Cori | 50 | 183 |VVR MR|m/s^2 |V momentum tendency from Coriolis term - Um_dPHdx| 50 | 186 |UUR MR|m/s^2 |U momentum tendency from Hydrostatic Pressure grad - Vm_dPHdy| 50 | 185 |VVR MR|m/s^2 |V momentum tendency from Hydrostatic Pressure grad - Um_Ext | 50 | 188 |UUR MR|m/s^2 |U momentum tendency from external forcing - Vm_Ext | 50 | 187 |VVR MR|m/s^2 |V momentum tendency from external forcing - Um_AdvZ3| 50 | 190 |UUR MR|m/s^2 |U momentum tendency from Vorticity Advection - Vm_AdvZ3| 50 | 189 |VVR MR|m/s^2 |V momentum tendency from Vorticity Advection - Um_AdvRe| 50 | 192 |UUR MR|m/s^2 |U momentum tendency from vertical Advection (Explicit part) - Vm_AdvRe| 50 | 191 |VVR MR|m/s^2 |V momentum tendency from vertical Advection (Explicit part) - VISrI_Um| 50 | |WU LR|m^4/s^2 |Vertical Viscous Flux of U momentum (Implicit part) - VISrI_Vm| 50 | |WV LR|m^4/s^2 |Vertical Viscous Flux of V momentum (Implicit part) - + --------------------------------------------------------------- + <-Name->|<- code ->|<-- Units -->|<- Tile (max=80c) + ------------------------------------------------------------------------ + SDIAG1 |SM L1|user-defined |User-Defined Surface Diagnostic #1 + SDIAG2 |SM L1|user-defined |User-Defined Surface Diagnostic #2 + SDIAG3 |SM L1|user-defined |User-Defined Surface Diagnostic #3 + SDIAG4 |SM L1|user-defined |User-Defined Surface Diagnostic #4 + SDIAG5 |SM L1|user-defined |User-Defined Surface Diagnostic #5 + SDIAG6 |SM L1|user-defined |User-Defined Surface Diagnostic #6 + SDIAG7 |SU L1|user-defined |User-Defined U.pt Surface Diagnostic #7 + SDIAG8 |SV L1|user-defined |User-Defined V.pt Surface Diagnostic #8 + SDIAG9 |UU L1|user-defined |User-Defined U.vector Surface Diag. #9 + SDIAG10 |VV L1|user-defined |User-Defined V.vector Surface Diag. #10 + UDIAG1 |SM MR|user-defined |User-Defined Model-Level Diagnostic #1 + UDIAG2 |SM MR|user-defined |User-Defined Model-Level Diagnostic #2 + UDIAG3 |SMR MR|user-defined |User-Defined Model-Level Diagnostic #3 + UDIAG4 |SMR MR|user-defined |User-Defined Model-Level Diagnostic #4 + UDIAG5 |SU MR|user-defined |User-Defined U.pt Model-Level Diag. #5 + UDIAG6 |SV MR|user-defined |User-Defined V.pt Model-Level Diag. #6 + UDIAG7 |UUR MR|user-defined |User-Defined U.vector Model-Lev Diag.#7 + UDIAG8 |VVR MR|user-defined |User-Defined V.vector Model-Lev Diag.#8 + UDIAG9 |SM ML|user-defined |User-Defined Phys-Level Diagnostic #9 + UDIAG10 |SM ML|user-defined |User-Defined Phys-Level Diagnostic #10 + SDIAGC |SM C L1|user-defined |User-Defined Counted Surface Diagnostic + SDIAGCC |SM L1|count |User-Defined Surface Diagnostic Counter + ETAN |SM M1|m |Surface Height Anomaly + ETANSQ |SM P M1|m^2 |Square of Surface Height Anomaly + DETADT2 |SM M1|m^2/s^2 |Square of Surface Height Anomaly Tendency + THETA |SMR MR|degC |Potential Temperature + SALT |SMR MR|g/kg |Salinity + RELHUM |SMR MR|percent |Relative Humidity + SALTanom|SMR MR|g/kg |Salt anomaly (=SALT-35; g/kg) + UVEL |UUR MR|m/s |Zonal Component of Velocity (m/s) + VVEL |VVR MR|m/s |Meridional Component of Velocity (m/s) + WVEL |WM LR|m/s |Vertical Component of Velocity (r_units/s) + THETASQ |SMRP MR|degC^2 |Square of Potential Temperature + SALTSQ |SMRP MR|(g/kg)^2 |Square of Salinity + SALTSQan|SMRP MR|(g/kg)^2 |Square of Salt anomaly (=(SALT-35)^2 (g^2/kg^2) + UVELSQ |UURP MR|m^2/s^2 |Square of Zonal Comp of Velocity (m^2/s^2) + VVELSQ |VVRP MR|m^2/s^2 |Square of Meridional Comp of Velocity (m^2/s^2) + WVELSQ |WM P LR|m^2/s^2 |Square of Vertical Comp of Velocity + UE_VEL_C|UMR MR|m/s |Eastward Velocity (m/s) (cell center) + VN_VEL_C|VMR MR|m/s |Northward Velocity (m/s) (cell center) + UV_VEL_C|UMR MR|m^2/s^2 |Product of horizontal Comp of velocity (cell center) + UV_VEL_Z|UZR MR|m^2/s^2 |Meridional Transport of Zonal Momentum (m^2/s^2) + WU_VEL |WU LR|m.m/s^2 |Vertical Transport of Zonal Momentum + WV_VEL |WV LR|m.m/s^2 |Vertical Transport of Meridional Momentum + UVELMASS|UUr MR|m/s |Zonal Mass-Weighted Comp of Velocity (m/s) + VVELMASS|VVr MR|m/s |Meridional Mass-Weighted Comp of Velocity (m/s) + WVELMASS|WM LR|m/s |Vertical Mass-Weighted Comp of Velocity + PhiVEL |SMR P MR|m^2/s |Horizontal Velocity Potential (m^2/s) + PsiVEL |SZ P MR|m.m^2/s |Horizontal Velocity Stream-Function + UTHMASS |UUr MR|degC.m/s |Zonal Mass-Weight Transp of Pot Temp + VTHMASS |VVr MR|degC.m/s |Meridional Mass-Weight Transp of Pot Temp + WTHMASS |WM LR|degC.m/s |Vertical Mass-Weight Transp of Pot Temp (K.m/s) + USLTMASS|UUr MR|g/kg.m/s |Zonal Mass-Weight Transp of Salinity + VSLTMASS|VVr MR|g/kg.m/s |Meridional Mass-Weight Transp of Salinity + WSLTMASS|WM LR|g/kg.m/s |Vertical Mass-Weight Transp of Salinity + UVELTH |UUR MR|degC.m/s |Zonal Transport of Pot Temp + VVELTH |VVR MR|degC.m/s |Meridional Transport of Pot Temp + WVELTH |WM LR|degC.m/s |Vertical Transport of Pot Temp + UVELSLT |UUR MR|g/kg.m/s |Zonal Transport of Salinity + VVELSLT |VVR MR|g/kg.m/s |Meridional Transport of Salinity + WVELSLT |WM LR|g/kg.m/s |Vertical Transport of Salinity + UVELPHI |UUr MR|m^3/s^3 |Zonal Mass-Weight Transp of Pressure Pot.(p/rho) Anomaly + VVELPHI |VVr MR|m^3/s^3 |Merid. Mass-Weight Transp of Pressure Pot.(p/rho) Anomaly + RHOAnoma|SMR MR|kg/m^3 |Density Anomaly (=Rho-rhoConst) + RHOANOSQ|SMRP MR|kg^2/m^6 |Square of Density Anomaly (=(Rho-rhoConst)^2) + URHOMASS|UUr MR|kg/m^2/s |Zonal Transport of Density + VRHOMASS|VVr MR|kg/m^2/s |Meridional Transport of Density + WRHOMASS|WM LR|kg/m^2/s |Vertical Transport of Density + WdRHO_P |WM LR|kg/m^2/s |Vertical velocity times delta^k(Rho)_at-const-P + WdRHOdP |WM LR|kg/m^2/s |Vertical velocity times delta^k(Rho)_at-const-T,S + PHIHYD |SMR MR|m^2/s^2 |Hydrostatic Pressure Pot.(p/rho) Anomaly + PHIHYDSQ|SMRP MR|m^4/s^4 |Square of Hyd. Pressure Pot.(p/rho) Anomaly + PHIBOT |SM M1|m^2/s^2 |Bottom Pressure Pot.(p/rho) Anomaly + PHIBOTSQ|SM P M1|m^4/s^4 |Square of Bottom Pressure Pot.(p/rho) Anomaly + PHI_SURF|SM M1|m^2/s^2 |Surface Dynamical Pressure Pot.(p/rho) + PHIHYDcR|SMR MR|m^2/s^2 |Hydrostatic Pressure Pot.(p/rho) Anomaly @ const r + PHI_NH |SMR MR|m^2/s^2 |Non-Hydrostatic Pressure Pot.(p/rho) + MXLDEPTH|SM M1|m |Mixed-Layer Depth (>0) + DRHODR |SM LR|kg/m^4 |Stratification: d.Sigma/dr (kg/m3/r_unit) + CONVADJ |SMR LR|fraction |Convective Adjustment Index [0-1] + oceTAUX |UU U1|N/m^2 |zonal surface wind stress, >0 increases uVel + oceTAUY |VV U1|N/m^2 |meridional surf. wind stress, >0 increases vVel + atmPload|SM U1|Pa |Atmospheric pressure loading anomaly (vs surf_pRef) + sIceLoad|SM U1|kg/m^2 |sea-ice loading (in Mass of ice+snow / area unit) + oceFWflx|SM U1|kg/m^2/s |net surface Fresh-Water flux into the ocean (+=down), >0 decreases salinity + oceSflux|SM U1|g/m^2/s |net surface Salt flux into the ocean (+=down), >0 increases salinity + oceQnet |SM U1|W/m^2 |net surface heat flux into the ocean (+=down), >0 increases theta + oceQsw |SM U1|W/m^2 |net Short-Wave radiation (+=down), >0 increases theta + oceFreez|SM U1|W/m^2 |heating from freezing of sea-water (allowFreezing=T) + TRELAX |SM U1|W/m^2 |surface temperature relaxation, >0 increases theta + SRELAX |SM U1|g/m^2/s |surface salinity relaxation, >0 increases salt + surForcT|SM U1|W/m^2 |model surface forcing for Temperature, >0 increases theta + surForcS|SM U1|g/m^2/s |model surface forcing for Salinity, >0 increases salinity + TFLUX |SM U1|W/m^2 |total heat flux (match heat-content variations), >0 increases theta + SFLUX |SM U1|g/m^2/s |total salt flux (match salt-content variations), >0 increases salt + RCENTER |SM MR|m |Cell-Center Height + RSURF |SM M1|m |Surface Height + hFactorC|SMr MR|1 |Center cell-thickness fraction [-] + hFactorW|SUr MR|1 |Western-Edge cell-thickness fraction [-] + hFactorS|SVr MR|1 |Southern-Edge cell-thickness fraction [-] + TOTUTEND|UUR MR|m/s/day |Tendency of Zonal Component of Velocity + TOTVTEND|VVR MR|m/s/day |Tendency of Meridional Component of Velocity + TOTTTEND|SMR MR|degC/day |Tendency of Potential Temperature + TOTSTEND|SMR MR|g/kg/day |Tendency of Salinity + --------------------------------------------------------------- + <-Name->|<- code ->|<-- Units -->|<- Tile (max=80c) + --------------------------------------------------------------- + MoistCor|SM MR|W/m^2 |Heating correction due to moist thermodynamics + HeatDiss|SM MR|W/m^2 |Heating from frictional dissipation + gT_Forc |SMR MR|degC/s |Potential Temp. forcing tendency + gS_Forc |SMR MR|g/kg/s |Salinity forcing tendency + AB_gT |SMR MR|degC/s |Potential Temp. tendency from Adams-Bashforth + AB_gS |SMR MR|g/kg/s |Salinity tendency from Adams-Bashforth + gTinAB |SMR MR|degC/s |Potential Temp. tendency going in Adams-Bashforth + gSinAB |SMR MR|g/kg/s |Salinity tendency going in Adams-Bashforth + AB_gU |UUR MR|m/s^2 |U momentum tendency from Adams-Bashforth + AB_gV |VVR MR|m/s^2 |V momentum tendency from Adams-Bashforth + AB_gW |WM LR|m/s^2 |W momentum tendency from Adams-Bashforth + TAUXEDDY|UU LR|N/m^2 |Zonal Eddy Stress + TAUYEDDY|VV LR|N/m^2 |Meridional Eddy Stress + U_EulerM|UUR MR|m/s |Zonal Eulerian-Mean Velocity (m/s) + V_EulerM|VVR MR|m/s |Meridional Eulerian-Mean Velocity (m/s) + ADVr_TH |WM LR|degC.m^3/s |Vertical Advective Flux of Pot.Temperature + ADVx_TH |UU MR|degC.m^3/s |Zonal Advective Flux of Pot.Temperature + ADVy_TH |VV MR|degC.m^3/s |Meridional Advective Flux of Pot.Temperature + DFrE_TH |WM LR|degC.m^3/s |Vertical Diffusive Flux of Pot.Temperature (Explicit part) + DFxE_TH |UU MR|degC.m^3/s |Zonal Diffusive Flux of Pot.Temperature + DFyE_TH |VV MR|degC.m^3/s |Meridional Diffusive Flux of Pot.Temperature + DFrI_TH |WM LR|degC.m^3/s |Vertical Diffusive Flux of Pot.Temperature (Implicit part) + SM_x_TH |UM MR|degC |Pot.Temp. 1rst Order Moment Sx + SM_y_TH |VM MR|degC |Pot.Temp. 1rst Order Moment Sy + SM_z_TH |SM MR|degC |Pot.Temp. 1rst Order Moment Sz + SMxx_TH |UM MR|degC |Pot.Temp. 2nd Order Moment Sxx + SMyy_TH |VM MR|degC |Pot.Temp. 2nd Order Moment Syy + SMzz_TH |SM MR|degC |Pot.Temp. 2nd Order Moment Szz + SMxy_TH |SM MR|degC |Pot.Temp. 2nd Order Moment Sxy + SMxz_TH |UM MR|degC |Pot.Temp. 2nd Order Moment Sxz + SMyz_TH |VM MR|degC |Pot.Temp. 2nd Order Moment Syz + SM_v_TH |SM P MR|(degC)^2 |Pot.Temp. sub-grid variance + ADVr_SLT|WM LR|g/kg.m^3/s |Vertical Advective Flux of Salinity + ADVx_SLT|UU MR|g/kg.m^3/s |Zonal Advective Flux of Salinity + ADVy_SLT|VV MR|g/kg.m^3/s |Meridional Advective Flux of Salinity + DFrE_SLT|WM LR|g/kg.m^3/s |Vertical Diffusive Flux of Salinity (Explicit part) + DFxE_SLT|UU MR|g/kg.m^3/s |Zonal Diffusive Flux of Salinity + DFyE_SLT|VV MR|g/kg.m^3/s |Meridional Diffusive Flux of Salinity + DFrI_SLT|WM LR|g/kg.m^3/s |Vertical Diffusive Flux of Salinity (Implicit part) + SALTFILL|SM MR|g/kg.m^3/s |Filling of Negative Values of Salinity + SM_x_SLT|UM MR|g/kg |Salinity 1rst Order Moment Sx + SM_y_SLT|VM MR|g/kg |Salinity 1rst Order Moment Sy + SM_z_SLT|SM MR|g/kg |Salinity 1rst Order Moment Sz + SMxx_SLT|UM MR|g/kg |Salinity 2nd Order Moment Sxx + SMyy_SLT|VM MR|g/kg |Salinity 2nd Order Moment Syy + SMzz_SLT|SM MR|g/kg |Salinity 2nd Order Moment Szz + SMxy_SLT|SM MR|g/kg |Salinity 2nd Order Moment Sxy + SMxz_SLT|UM MR|g/kg |Salinity 2nd Order Moment Sxz + SMyz_SLT|VM MR|g/kg |Salinity 2nd Order Moment Syz + SM_v_SLT|SM P MR|(g/kg)^2 |Salinity sub-grid variance + VISCAHZ |SZ MR|m^2/s |Harmonic Visc Coefficient (m2/s) (Zeta Pt) + VISCA4Z |SZ MR|m^4/s |Biharmonic Visc Coefficient (m4/s) (Zeta Pt) + VISCAHD |SM MR|m^2/s |Harmonic Viscosity Coefficient (m2/s) (Div Pt) + VISCA4D |SM MR|m^4/s |Biharmonic Viscosity Coefficient (m4/s) (Div Pt) + VISCAHW |WM LR|m^2/s |Harmonic Viscosity Coefficient (m2/s) (W Pt) + VISCA4W |WM LR|m^4/s |Biharmonic Viscosity Coefficient (m4/s) (W Pt) + VAHZMAX |SZ MR|m^2/s |CFL-MAX Harm Visc Coefficient (m2/s) (Zeta Pt) + VA4ZMAX |SZ MR|m^4/s |CFL-MAX Biharm Visc Coefficient (m4/s) (Zeta Pt) + VAHDMAX |SM MR|m^2/s |CFL-MAX Harm Visc Coefficient (m2/s) (Div Pt) + VA4DMAX |SM MR|m^4/s |CFL-MAX Biharm Visc Coefficient (m4/s) (Div Pt) + VAHZMIN |SZ MR|m^2/s |RE-MIN Harm Visc Coefficient (m2/s) (Zeta Pt) + VA4ZMIN |SZ MR|m^4/s |RE-MIN Biharm Visc Coefficient (m4/s) (Zeta Pt) + VAHDMIN |SM MR|m^2/s |RE-MIN Harm Visc Coefficient (m2/s) (Div Pt) + VA4DMIN |SM MR|m^4/s |RE-MIN Biharm Visc Coefficient (m4/s) (Div Pt) + VAHZLTH |SZ MR|m^2/s |Leith Harm Visc Coefficient (m2/s) (Zeta Pt) + VA4ZLTH |SZ MR|m^4/s |Leith Biharm Visc Coefficient (m4/s) (Zeta Pt) + VAHDLTH |SM MR|m^2/s |Leith Harm Visc Coefficient (m2/s) (Div Pt) + VA4DLTH |SM MR|m^4/s |Leith Biharm Visc Coefficient (m4/s) (Div Pt) + VAHZLTHD|SZ MR|m^2/s |LeithD Harm Visc Coefficient (m2/s) (Zeta Pt) + VA4ZLTHD|SZ MR|m^4/s |LeithD Biharm Visc Coefficient (m4/s) (Zeta Pt) + VAHDLTHD|SM MR|m^2/s |LeithD Harm Visc Coefficient (m2/s) (Div Pt) + VA4DLTHD|SM MR|m^4/s |LeithD Biharm Visc Coefficient (m4/s) (Div Pt) + VAHZLTHQ|SZ MR|m^2/s |LeithQG Harm Visc Coefficient (m2/s) (Zeta Pt) + VAHDLTHQ|SM MR|m^2/s |LeithQG Harm Visc Coefficient (m2/s) (Div Pt) + VAHZSMAG|SZ MR|m^2/s |Smagorinsky Harm Visc Coefficient (m2/s) (Zeta Pt) + VA4ZSMAG|SZ MR|m^4/s |Smagorinsky Biharm Visc Coeff. (m4/s) (Zeta Pt) + VAHDSMAG|SM MR|m^2/s |Smagorinsky Harm Visc Coefficient (m2/s) (Div Pt) + VA4DSMAG|SM MR|m^4/s |Smagorinsky Biharm Visc Coeff. (m4/s) (Div Pt) + momKE |SMR MR|m^2/s^2 |Kinetic Energy (in momentum Eq.) + momHDiv |SMR MR|s^-1 |Horizontal Divergence (in momentum Eq.) + momVort3|SZR MR|s^-1 |3rd component (vertical) of Vorticity + Strain |SZR MR|s^-1 |Horizontal Strain of Horizontal Velocities + Tension |SMR MR|s^-1 |Horizontal Tension of Horizontal Velocities + Stretch |SM MR|s^-1 |Vortex stretching from QG Leith dynamic viscosity + USidDrag|UUR MR|m/s^2 |U momentum tendency from Side Drag + VSidDrag|VVR MR|m/s^2 |V momentum tendency from Side Drag + Um_Diss |UUR MR|m/s^2 |U momentum tendency from Dissipation (Explicit part) + Vm_Diss |VVR MR|m/s^2 |V momentum tendency from Dissipation (Explicit part) + Um_ImplD|UUR MR|m/s^2 |U momentum tendency from Dissipation (Implicit part) + Vm_ImplD|VVR MR|m/s^2 |V momentum tendency from Dissipation (Implicit part) + Um_Advec|UUR MR|m/s^2 |U momentum tendency from Advection terms + Vm_Advec|VVR MR|m/s^2 |V momentum tendency from Advection terms + Um_Cori |UUR MR|m/s^2 |U momentum tendency from Coriolis term + Vm_Cori |VVR MR|m/s^2 |V momentum tendency from Coriolis term + Um_dPhiX|UUR MR|m/s^2 |U momentum tendency from Pressure/Potential grad + Vm_dPhiY|VVR MR|m/s^2 |V momentum tendency from Pressure/Potential grad + Um_Ext |UUR MR|m/s^2 |U momentum tendency from external forcing + Vm_Ext |VVR MR|m/s^2 |V momentum tendency from external forcing + Um_AdvZ3|UUR MR|m/s^2 |U momentum tendency from Vorticity Advection + Vm_AdvZ3|VVR MR|m/s^2 |V momentum tendency from Vorticity Advection + Um_AdvRe|UUR MR|m/s^2 |U momentum tendency from vertical Advection (Explicit part) + Vm_AdvRe|VVR MR|m/s^2 |V momentum tendency from vertical Advection (Explicit part) + Wm_Diss |WMr LR|m/s^2 |W momentum tendency from Dissipation + Wm_Advec|WMr LR|m/s^2 |W momentum tendency from Advection terms + WSidDrag|WMr LR|m/s^2 |Vertical momentum tendency from Side Drag + botTauX |UU U1|N/m^2 |zonal bottom stress, >0 increases uVel + botTauY |VV U1|N/m^2 |meridional bottom stress, >0 increases vVel + ADVx_Um |UM MR|m^4/s^2 |Zonal Advective Flux of U momentum + ADVy_Um |VZ MR|m^4/s^2 |Meridional Advective Flux of U momentum + ADVrE_Um|WU LR|m^4/s^2 |Vertical Advective Flux of U momentum (Explicit part) + ADVx_Vm |UZ MR|m^4/s^2 |Zonal Advective Flux of V momentum + ADVy_Vm |VM MR|m^4/s^2 |Meridional Advective Flux of V momentum + ADVrE_Vm|WV LR|m^4/s^2 |Vertical Advective Flux of V momentum (Explicit part) + VISCx_Um|UM MR|m^4/s^2 |Zonal Viscous Flux of U momentum + VISCy_Um|VZ MR|m^4/s^2 |Meridional Viscous Flux of U momentum + VISrE_Um|WU LR|m^4/s^2 |Vertical Viscous Flux of U momentum (Explicit part) + VISrI_Um|WU LR|m^4/s^2 |Vertical Viscous Flux of U momentum (Implicit part) + VISCx_Vm|UZ MR|m^4/s^2 |Zonal Viscous Flux of V momentum + VISCy_Vm|VM MR|m^4/s^2 |Meridional Viscous Flux of V momentum + VISrE_Vm|WV LR|m^4/s^2 |Vertical Viscous Flux of V momentum (Explicit part) + VISrI_Vm|WV LR|m^4/s^2 |Vertical Viscous Flux of V momentum (Implicit part) + +The meaning of the “code” column is explained in +:numref:`diagnostic_parsing_array`. The last character of the code, in particular, +determines the number of vertical levels in the diagnostic (of the commonly used codes, +"1" represents a 2-D diagnostic, "R" and "L" are multi-level diagnostics). MITgcm packages: available diagnostics lists ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1375,7 +1507,7 @@ Please be aware of the following: has practical file size limits on the order of 2–4GB (the maximium memory addressable with 32bit pointers or pointer differences) due to a lack of operating system, compiler, - and/or library support. The latest revisions of + and/or library support. The latest revisions of `NetCDF `_ v3.x have large file support and, on some operating systems, file sizes are only limited by available disk space. @@ -1460,11 +1592,11 @@ as defined in :filelink:`DYNVARS.h `. The grid type is a character string that encodes the presence and types associated with the four possible dimensions. The character string -follows the format: +follows the format: :: - «H0»_«H1»_«H2»__«V»__«T» + «H0»_«H1»_«H2»__«V»__«T» (note the double underscore between «H2» and «V», and «V» and «T») where the terms @@ -1837,7 +1969,7 @@ several `MATLAB `_ scripts (``.m`` files). The principle script is :filelink:`rdmds.m `, used for reading the multi-part model output files into `MATLAB `_ . Place the scripts in your `MATLAB `_ path or change the path appropriately, -then at the `MATLAB `_ +then at the `MATLAB `_ prompt type: :: @@ -1870,7 +2002,7 @@ gmt: a suite of matlab tools is being written to more gracefully handle the model files. This suite is called “gmt” which refers to “generalized model topology” pre-/post-processing. Currently, this - directory contains a `MATLAB `_ script + directory contains a `MATLAB `_ script :filelink:`gmt/rdnctiles.m ` that is able to read `netCDF `_ files for any domain. Additional scripts are being created that will work with these @@ -1899,27 +2031,36 @@ computation. It was developed to be used in mode water studies, so that it comes with other related routines, in particular ones computing surface vertical potential vorticity fluxes. +.. note:: + + This toolbox was developed in 2006 for the `CLIMODE project `_. + The toolbox routines are available on this + `archived repository `_. + Equations --------- Potential vorticity ~~~~~~~~~~~~~~~~~~~ -The package computes the three components of the relative vorticity -defined by: +The package computes the three components of the relative vorticity, +:math:`\boldsymbol{\omega}`, defined by: .. math:: \begin{aligned} - \omega &= \nabla \times {\bf U} = \left( \begin{array}{c} + \boldsymbol{\omega} &= \nabla \times {\bf U} + = \begin{pmatrix} \omega_x\\ \omega_y\\ \zeta - \end{array}\right) - \simeq &\left( \begin{array}{c} - -\frac{\partial v}{\partial z}\\ - -\frac{\partial u}{\partial z}\\ - \frac{\partial v}{\partial x} - \frac{\partial u}{\partial y} - \end{array}\right)\end{aligned} + \end{pmatrix} + \simeq + \begin{pmatrix} + -\partial_z v\\ + -\partial_z u\\ + \partial_x v - \partial_y u + \end{pmatrix} + \end{aligned} :label: pv_eq1 where we omitted the vertical velocity component (as done throughout the package). @@ -1928,10 +2069,11 @@ The package then computes the potential vorticity as: .. math:: \begin{aligned} - Q &= -\frac{1}{\rho} \omega\cdot\nabla\sigma_\theta\\ - &= -\frac{1}{\rho}\left(\omega_x \frac{\partial \sigma_\theta}{\partial x} + - \omega_y \frac{\partial \sigma_\theta}{\partial y} + - \left(f+\zeta\right) \frac{\partial \sigma_\theta}{\partial z}\right)\end{aligned} + Q &= -\frac{1}{\rho} \boldsymbol{\omega} \cdot \nabla \sigma_\theta\\ + &= -\frac{1}{\rho}\left(\omega_x \frac{\partial \sigma_\theta}{\partial x} + + \omega_y \frac{\partial \sigma_\theta}{\partial y} + + \left(f + \zeta\right) \frac{\partial \sigma_\theta}{\partial z}\right) + \end{aligned} :label: pv_eq2 where :math:`\rho` is the density, :math:`\sigma_\theta` is the @@ -1942,7 +2084,8 @@ The package is also able to compute the simpler planetary vorticity as: .. math:: \begin{aligned} - Q_{spl} &=& -\frac{f}{\rho}\frac{\sigma_\theta}{\partial z}\end{aligned} + Q_{\rm spl} & = -\frac{f}{\rho}\frac{\sigma_\theta}{\partial z} + \end{aligned} :label: pv_eq3 Surface vertical potential vorticity fluxes @@ -1953,15 +2096,14 @@ impermeability theorem which states that for a given potential density layer (embedding a mode water), the integrated PV only changes through surface input/output. -Vertical PV fluxes due to frictional and diabatic processes are given -by: +Vertical PV fluxes due to diabatic and frictional processes are given by: .. math:: - J^B_z = -\frac{f}{h}\left( \frac{\alpha Q_{net}}{C_w}-\rho_0 \beta S_{net}\right) + J^B_z = -\frac{f}{h}\left( \frac{\alpha Q_{\rm net}}{\text{C}_p}-\rho_0 \beta S_{\rm net}\right) :label: pv_eq14a .. math:: - J^F_z = \frac{1}{\rho\delta_e} \vec{k}\times\tau\cdot\nabla\sigma_m + J^F_z = \frac{1}{\rho\delta_e} (\hat{\boldsymbol{k}} \times \boldsymbol{\tau}) \cdot \nabla \sigma_m :label: pv_eq15a These components can be computed with the package. Details on the @@ -1980,18 +2122,18 @@ Let’s take the PV flux due to surface buoyancy forcing from .. math:: \begin{aligned} - J^B_z &\simeq& -\frac{\alpha f}{hC_w} Q_{net}\end{aligned} + J^B_z \simeq -\frac{\alpha f}{h \text{C}_p} Q_{\rm net}\end{aligned} -When the net surface heat flux :math:`Q_{net}` is upward, i.e., negative +When the net surface heat flux :math:`Q_{\rm net}` is upward, i.e., negative and cooling the ocean (buoyancy loss), surface density will increase, triggering mixing which reduces the stratification and then the PV. .. math:: \begin{aligned} - Q_{net} &< 0 \phantom{WWW}\text{(upward, cooling)} \\ + Q_{\rm net} &< 0 \phantom{WWW}\text{(upward, cooling)} \\ J^B_z &> 0 \phantom{WWW}\text{(upward)} \\ - -\rho^{-1}\nabla\cdot J^B_z &< 0 \phantom{WWW}\text{(PV flux divergence)} \\ - PV &\searrow \phantom{WWWi}\text{where } Q_{net}<0 \end{aligned} + -\rho^{-1} \nabla \cdot J^B_z &< 0 \phantom{WWW}\text{(PV flux divergence)} \\ + PV &\searrow \phantom{WWWi}\text{where } Q_{\rm net}<0 \end{aligned} Frictional process: “Down-front” wind-stress @@ -2007,16 +2149,17 @@ Now let’s take the PV flux due to the “wind-driven buoyancy flux” from When the wind is blowing from the east above the Gulf Stream (a region of high meridional density gradient), it induces an advection of dense -water from the northern side of the GS to the southern side through +water from the northern side of the Gulf Stream to the southern side through Ekman currents. Then, it induces a “wind-driven” buoyancy lost and mixing which reduces the stratification and the PV. .. math:: \begin{aligned} - \vec{k}\times\tau\cdot\nabla\sigma &> 0 \phantom{WWW}\text{("Down-front" wind)} \\ + (\hat{\boldsymbol{k}} \times \boldsymbol{\tau}) \cdot \nabla \sigma &> 0 \phantom{WWW}\text{("Down-front" wind)} \\ J^F_z &> 0 \phantom{WWW}\text{(upward)} \\ - -\rho^{-1}\nabla\cdot J^F_z &< 0 \phantom{WWW}\text{(PV flux divergence)} \\ - PV &\searrow \phantom{WWW}\text{where } \vec{k}\times\tau\cdot\nabla\sigma>0 \end{aligned} + -\rho^{-1} \nabla \cdot J^F_z &< 0 \phantom{WWW}\text{(PV flux divergence)} \\ + PV &\searrow \phantom{WWW}\text{where } (\hat{\boldsymbol{k}} \times \boldsymbol{\tau}) \cdot \nabla \sigma>0 + \end{aligned} Diabatic versus frictional processes @@ -2029,18 +2172,19 @@ processes. Taking the ratio of :eq:`pv_eq14a` and .. math:: \begin{aligned} - \frac{J^F_z}{J^B_Z} &=& \frac{ \frac{1}{\rho\delta_e} \vec{k}\times\tau\cdot\nabla\sigma } - {-\frac{f}{h}\left( \frac{\alpha Q_{net}}{C_w}-\rho_0 \beta S_{net}\right)} \\ - &\simeq& \frac{Q_{Ek}/\delta_e}{Q_{net}/h} \nonumber\end{aligned} + \frac{J^F_z}{J^B_z} & = \frac{ \dfrac{1}{\rho\delta_e} (\hat{\boldsymbol{k}} \times \boldsymbol{\tau}) \cdot \nabla \sigma } + {-\dfrac{f}{h}\left( \dfrac{\alpha Q_{\rm net}}{\text{C}_p} - \rho_0 \beta S_{\rm net}\right)} \\ + &\simeq \frac{Q_{\rm Ek}/\delta_e}{Q_{\rm net}/h} \nonumber + \end{aligned} where appears the lateral heat flux induced by Ekman currents: .. math:: \begin{aligned} - Q_{Ek} &=& -\frac{C_w}{\alpha\rho f}\vec{k}\times\tau\cdot\nabla\sigma + Q_{\rm Ek} & = -\frac{\text{C}_p}{\alpha\rho f} (\hat{\boldsymbol{k}} \times \boldsymbol{\tau}) \cdot \nabla \sigma \nonumber \\ - &=& \frac{C_w}{\alpha}\delta_e\vec{u_{Ek}}\cdot\nabla\sigma\end{aligned} + & = \frac{\text{C}_p}{\alpha}\delta_e \vec{\bf u}_{\rm Ek} \cdot \nabla \sigma\end{aligned} which can be computed with the package. In the aim of comparing both processes, it will be useful to plot surface net and lateral @@ -2091,7 +2235,7 @@ Key routines .. math:: \begin{aligned} - J^B_z &=& -\frac{f}{h}\frac{\alpha Q_{net}}{C_w} \end{aligned} + J^B_z & = -\frac{f}{h}\frac{\alpha Q_{\rm net}}{\text{C}_p} \end{aligned} which is a simplified version of the full expression given in :eq:`pv_eq14a`. Requires the net surface heat flux and the @@ -2104,7 +2248,7 @@ Key routines .. math:: \begin{aligned} - Q_{Ek} &=& - \frac{C_w \delta_e}{\alpha f}J^F_z\end{aligned} + Q_{\rm Ek} & = - \frac{\text{C}_p \delta_e}{\alpha f}J^F_z\end{aligned} Requires the PV flux due to frictional forces and the Ekman layer depth, and produces one output with the heat flux and with QEk as a @@ -2194,7 +2338,8 @@ The conservative flux form of the potential vorticity equation is: .. math:: \begin{aligned} - \frac{\partial \rho Q}{\partial t} + \nabla \cdot \vec{J} &=& 0 \end{aligned} + \frac{\partial \rho Q}{\partial t} + \nabla \cdot \vec{\bf J} & = 0 + \end{aligned} :label: pv_eq4 where the potential vorticity :math:`Q` is given by :eq:`pv_eq2`. @@ -2203,39 +2348,45 @@ The generalized flux vector of potential vorticity is: .. math:: \begin{aligned} - \vec{J} &=& \rho Q \vec{u} + \vec{N_Q}\end{aligned} + \vec{\bf J} & = \rho Q \vec{\bf u} + \vec{\bf N}_Q + \end{aligned} which allows to rewrite :eq:`pv_eq4` as: .. math:: \begin{aligned} - \frac{DQ}{dt} &=& -\frac{1}{\rho}\nabla\cdot\vec{N_Q}\end{aligned} + \frac{DQ}{dt} & = - \frac{1}{\rho} \nabla \cdot \vec{\bf N}_Q + \end{aligned} :label: pv_eq5 -where the non-advective PV flux :math:`\vec{N_Q}` is given by: +where the non-advective PV flux :math:`\vec{\bf N}_Q` is given by: .. math:: \begin{aligned} - \vec{N_Q} &=& -\frac{\rho_0}{g}B\vec{\omega_a} + \vec{F}\times\nabla\sigma_\theta \end{aligned} + \vec{\bf N}_Q & = -\frac{\rho_0}{g}B \vec{\boldsymbol{\omega}}_a + \vec{\bf F} \times \nabla \sigma_\theta + \end{aligned} :label: pv_eq6 Its first component is linked to the buoyancy forcing: .. math:: \begin{aligned} - B &=& -\frac{g}{\rho_o}\frac{D \sigma_\theta}{dt} \end{aligned} + B & = -\frac{g}{\rho_o}\frac{D \sigma_\theta}{dt} + \end{aligned} and the second one to the non-conservative body forces per unit mass: .. math:: \begin{aligned} - \vec{F} &=& \frac{D \vec{u}}{dt} + 2\Omega\times\vec{u} + \nabla p \end{aligned} + \vec{\bf F} & = \frac{D \vec{\bf u}}{Dt} + 2 \vec{\boldsymbol{\Omega}} \times \vec{\bf u} + \nabla p + \end{aligned} Note that introducing :math:`B` into :eq:`pv_eq6` yields: .. math:: \begin{aligned} - \vec{N_Q} &=& \omega_a \frac{D \sigma_\theta}{dt} + \vec{F}\times\nabla\sigma_\theta\end{aligned} + \vec{\bf N}_Q & = \boldsymbol{\omega}_a \frac{D \sigma_\theta}{dt} + \vec{\bf F} \times \nabla \sigma_\theta + \end{aligned} Determining the PV flux at the ocean’s surface @@ -2245,8 +2396,8 @@ In the context of mode water study, we are particularly interested in how the PV may be reduced by surface PV fluxes because a mode water is characterized by a low PV value. Considering the volume limited by two :math:`iso-\sigma_\theta`, PV flux is limited to surface processes and -then vertical component of :math:`\vec{N_Q}`. It is supposed that -:math:`B` and :math:`\vec{F}` will only be non-zero in the mixed layer +then vertical component of :math:`\vec{\bf N}_Q`. It is supposed that +:math:`B` and :math:`\vec{\bf F}` will only be non-zero in the mixed layer (of depth :math:`h` and variable density :math:`\sigma_m`) exposed to mechanical forcing by the wind and buoyancy fluxes through the ocean’s surface. @@ -2257,55 +2408,62 @@ package) and of hydrostatic and geostrophic balances, we can write: .. math:: \begin{aligned} - \vec{u_g} &=& \frac{1}{\rho f} \vec{k}\times\nabla p \\ - \frac{\partial p_m}{\partial z} &=& -\sigma_m g \\ - \frac{\partial \sigma_m}{\partial t} + \vec{u}_m\cdot\nabla\sigma_m &=& -\frac{\rho_0}{g}B \end{aligned} + \vec{\bf u}_g & = \frac{1}{\rho f} \hat{\boldsymbol{k}} \times \nabla p \\ + \frac{\partial p_m}{\partial z} & = -\sigma_m g \\ + \frac{\partial \sigma_m}{\partial t} + \vec{\bf u}_m \cdot \nabla \sigma_m & = -\frac{\rho_0}{g}B + \end{aligned} :label: pv_eq7 where: .. math:: \begin{aligned} - \vec{u}_m &=& \vec{u}_g + \vec{u}_{Ek} + o(R_o) \end{aligned} + \vec{\bf u}_m & = \vec{\bf u}_g + \vec{\bf u}_{\rm Ek} + o(R_o) + \end{aligned} :label: pv_eq8 is the full velocity field composed of the geostrophic current -:math:`\vec{u}_g` and the Ekman drift: +:math:`\vec{\bf u}_g` and the Ekman drift: .. math:: \begin{aligned} - \vec{u}_{Ek} &=& -\frac{1}{\rho f}\vec{k}\times\frac{\partial \tau}{\partial z}\end{aligned} + \vec{\bf u}_{\rm Ek} & = -\frac{1}{\rho f} \hat{\boldsymbol{k}} \times \frac{\partial \boldsymbol{\tau}}{\partial z} + \end{aligned} :label: pv_eq9 -(where :math:`\tau` is the wind stress) and last by other ageostrophic +(where :math:`\boldsymbol{\tau}` is the wind stress) and last by other ageostrophic components of :math:`o(R_o)` which are neglected. Partitioning the buoyancy forcing as: .. math:: \begin{aligned} - B &=& B_g + B_{Ek}\end{aligned} + B & = B_g + B_{\rm Ek} + \end{aligned} :label: pv_eq10 and using :eq:`pv_eq8` and :eq:`pv_eq9`, :eq:`pv_eq7` becomes: .. math:: \begin{aligned} - \frac{\partial \sigma_m}{\partial t} + \vec{u}_g\cdot\nabla\sigma_m &=& -\frac{\rho_0}{g} B_g\end{aligned} + \frac{\partial \sigma_m}{\partial t} + \vec{\bf u}_g \cdot \nabla \sigma_m & = -\frac{\rho_0}{g} B_g + \end{aligned} revealing the “wind-driven buoyancy forcing”: .. math:: \begin{aligned} - B_{Ek} &=& \frac{g}{\rho_0}\frac{1}{\rho f}\left(\vec{k}\times\frac{\partial \tau}{\partial z}\right)\cdot\nabla\sigma_m\end{aligned} + B_{\rm Ek} & = \frac{g}{\rho_0}\frac{1}{\rho f}\left(\hat{\boldsymbol{k}} \times \frac{\partial \boldsymbol{\tau}}{\partial z}\right)\cdot \nabla \sigma_m + \end{aligned} Note that since: .. math:: \begin{aligned} - \frac{\partial B_g}{\partial z} &=& \frac{\partial}{\partial z}\left(-\frac{g}{\rho_0}\vec{u_g}\cdot\nabla\sigma_m\right) - = -\frac{g}{\rho_0}\frac{\partial \vec{u_g}}{\partial z}\cdot\nabla\sigma_m - = 0\end{aligned} + \frac{\partial B_g}{\partial z} & = \frac{\partial}{\partial z}\left(-\frac{g}{\rho_0} \vec{\bf u}_g \cdot \nabla \sigma_m\right) + = -\frac{g}{\rho_0}\frac{\partial \vec{\bf u}_g}{\partial z} \cdot \nabla \sigma_m + = 0 + \end{aligned} :math:`B_g` must be uniform throughout the depth of the mixed layer and then being related to the surface buoyancy flux by integrating @@ -2313,80 +2471,85 @@ then being related to the surface buoyancy flux by integrating .. math:: \begin{aligned} - \int_{-h}^0B\,dz &=\, hB_g + \int_{-h}^0B_{Ek}\,dz \,=& \mathcal{B}_{in}\end{aligned} + \int_{-h}^0 B\,dz &= h B_g + \int_{-h}^0 B_{\rm Ek}\,dz = \mathcal{B}_{\rm in} + \end{aligned} :label: pv_eq11 -where :math:`\mathcal{B}_{in}` is the vertically integrated surface buoyancy (in)flux: +where :math:`\mathcal{B}_{\rm in}` is the vertically integrated surface buoyancy (in)flux: .. math:: \begin{aligned} - \mathcal{B}_{in} &=& \frac{g}{\rho_o}\left( \frac{\alpha Q_{net}}{C_w} - \rho_0\beta S_{net}\right)\end{aligned} + \mathcal{B}_{\rm in} & = \frac{g}{\rho_o}\left( \frac{\alpha Q_{\rm net}}{\text{C}_p} - \rho_0\beta S_{\rm net}\right) + \end{aligned} :label: pv_eq12 with :math:`\alpha\simeq 2.5\times10^{-4}\, \text{K}^{-1}` the thermal expansion coefficient (computed by the package otherwise), -:math:`C_w=4187 \text{ J kg}^{-1}\text{K}^{-1}` the specific heat of seawater, -:math:`Q_{net}\text{ [W/m}^{-2}]` the net heat surface flux (positive downward, -warming the ocean), :math:`\beta\text{ [psu}^{-1}]` the saline contraction -coefficient, and :math:`S_{net}=S*(E-P)\text{ [psu m s}^{-1}]` the net -freshwater surface flux with :math:`S\text{ [psu}]` the surface salinity and -:math:`(E-P)\text{ [m/s]}` the fresh water flux. +:math:`\text{C}_p=4187 \text{ J kg}^{-1}\text{K}^{-1}` the specific heat of +seawater, :math:`Q_{\rm net}\text{ (W m$^{-2}$)}` the net heat surface +flux (positive downward, warming the ocean), :math:`\beta\text{ +((g/kg)$^{-1}$)}` the saline contraction coefficient, and +:math:`S_{\rm net}=S*(E-P)\text{ ((g/kg) m s$^{-1}$)}` the net freshwater +surface flux with :math:`S\text{ (g/kg)}` the surface salinity and +:math:`(E-P)\text{ (m s$^{-1}$)}` the fresh water flux. Introducing the body force in the Ekman layer: .. math:: \begin{aligned} - F_z &=& \frac{1}{\rho}\frac{\partial \tau}{\partial z}\end{aligned} + F_z & = \frac{1}{\rho}\frac{\partial \boldsymbol{\tau}}{\partial z} + \end{aligned} the vertical component of :eq:`pv_eq6` is: .. math:: \begin{aligned} - \vec{N_Q}_z &= -\frac{\rho_0}{g}(B_g+B_{Ek})\omega_z + \vec{\bf N}_Q \cdot \hat{\boldsymbol{k}} &= -\frac{\rho_0}{g}(B_g+B_{\rm Ek}) \omega_z + \frac{1}{\rho} - \left( \frac{\partial \tau}{\partial z}\times\nabla\sigma_\theta \right)\cdot\vec{k} \\ + \left( \frac{\partial \boldsymbol{\tau}}{\partial z} \times \nabla \sigma_\theta \right) \cdot \hat{\boldsymbol{k}} \\ &= -\frac{\rho_0}{g}B_g\omega_z -\frac{\rho_0}{g} - \left(\frac{g}{\rho_0}\frac{1}{\rho f}\vec{k}\times\frac{\partial \tau}{\partial z} - \cdot\nabla\sigma_m\right)\omega_z + \left[ \frac{g}{\rho_0}\frac{1}{\rho f} \left( \hat{\boldsymbol{k}} \times \frac{\partial \boldsymbol{\tau}}{\partial z} \right) + \cdot \nabla \sigma_m \right]\omega_z + \frac{1}{\rho} - \left( \frac{\partial \tau}{\partial z}\times\nabla\sigma_\theta \right)\cdot\vec{k}\\ + \left( \frac{\partial \boldsymbol{\tau}}{\partial z}\times \nabla \sigma_\theta \right)\cdot\hat{\boldsymbol{k}}\\ &= -\frac{\rho_0}{g}B_g\omega_z - + \left(1-\frac{\omega_z}{f}\right)\left(\frac{1}{\rho}\frac{\partial \tau}{\partial z} - \times\nabla\sigma_\theta \right)\cdot\vec{k}\end{aligned} + + \left(1-\frac{\omega_z}{f}\right)\left(\frac{1}{\rho}\frac{\partial \boldsymbol{\tau}}{\partial z} + \times \nabla \sigma_\theta \right)\cdot\hat{\boldsymbol{k}}\end{aligned} and given the assumption that :math:`\omega_z\simeq f`, the second term vanishes and we obtain: .. math:: \begin{aligned} - \vec{N_Q}_z &=& -\frac{\rho_0}{g}f B_g\end{aligned} + \vec{\bf N}_Q \cdot \hat{\boldsymbol{k}} & = -\frac{\rho_0}{g}f B_g . + \end{aligned} :label: pv_eq13 Note that the wind-stress forcing does not appear explicitly here but is implicit in :math:`B_g` through :eq:`pv_eq11`: the buoyancy forcing :math:`B_g` is determined by the difference between the -integrated surface buoyancy flux :math:`\mathcal{B}_{in}` and the +integrated surface buoyancy flux :math:`\mathcal{B}_{\rm in}` and the integrated “wind-driven buoyancy forcing”: .. math:: \begin{aligned} - B_g &= \frac{1}{h}\left( \mathcal{B}_{in} - \int_{-h}^0B_{Ek}dz \right) \\ - &= \frac{1}{h}\frac{g}{\rho_0}\left( \frac{\alpha Q_{net}}{C_w} - \rho_0 \beta S_{net}\right) - - \frac{1}{h}\int_{-h}^0 - \frac{g}{\rho_0}\frac{1}{\rho f}\vec{k}\times \frac{\partial \tau}{\partial z} \cdot\nabla\sigma_m dz \\ - &= \frac{1}{h}\frac{g}{\rho_0}\left( \frac{\alpha Q_{net}}{C_w} - \rho_0 \beta S_{net}\right) - - \frac{g}{\rho_0}\frac{1}{\rho f \delta_e}\vec{k}\times\tau\cdot\nabla\sigma_m\end{aligned} + B_g &= \frac{1}{h}\left( \mathcal{B}_{\rm in} - \int_{-h}^0B_{\rm Ek}dz \right) \\ + &= \frac{1}{h}\frac{g}{\rho_0}\left( \frac{\alpha Q_{\rm net}}{\text{C}_p} - \rho_0 \beta S_{\rm net}\right) + - \frac{1}{h}\int_{-h}^0 + \frac{g}{\rho_0}\frac{1}{\rho f}\left (\hat{\boldsymbol{k}}\times \frac{\partial \boldsymbol{\tau}}{\partial z} \right) \cdot \nabla \sigma_m dz \\ + &= \frac{1}{h}\frac{g}{\rho_0}\left( \frac{\alpha Q_{\rm net}}{\text{C}_p} - \rho_0 \beta S_{\rm net}\right) + - \frac{g}{\rho_0}\frac{1}{\rho f \delta_e}\left (\hat{\boldsymbol{k}}\times \boldsymbol{\tau} \right) \cdot \nabla \sigma_m\end{aligned} Finally, from :eq:`pv_eq6`, the vertical surface flux of PV may be written as: .. math:: \begin{aligned} - \vec{N_Q}_z &= J^B_z + J^F_z \\ - J^B_z &= -\frac{f}{h}\left( \frac{\alpha Q_{net}}{C_w}-\rho_0 \beta S_{net}\right) \\ - J^F_z &= \frac{1}{\rho\delta_e} \vec{k}\times\tau\cdot\nabla\sigma_m \end{aligned} + \vec{\bf N}_Q \cdot \hat{\boldsymbol{k}} &= J^B_z + J^F_z \\ + J^B_z &= -\frac{f}{h}\left( \frac{\alpha Q_{\rm net}}{\text{C}_p}-\rho_0 \beta S_{\rm net}\right) \\ + J^F_z &= \frac{1}{\rho\delta_e} (\hat{\boldsymbol{k}}\times \boldsymbol{\tau}) \cdot \nabla \sigma_m \end{aligned} .. _sub_outp_pkg_flt: @@ -2394,4 +2557,3 @@ pkg/flt – Simulation of float / parcel displacements ==================================================== .. include:: flt.rst - diff --git a/doc/overview/atmosphere.rst b/doc/overview/atmosphere.rst index 493a89b29d..3d01faddcc 100644 --- a/doc/overview/atmosphere.rst +++ b/doc/overview/atmosphere.rst @@ -18,7 +18,7 @@ In the atmosphere, (see :numref:`zandp-vert-coord`), we interpret: :label: atmos-b .. math:: - \theta =T(\frac{p_{c}}{p})^{\kappa }\text{ is potential temperature} + \theta =T \left( \frac{p_{c}}{p} \right)^{\kappa} \text{ is potential temperature} :label: atmos-theta .. math:: S=q \text{ is the specific humidity} @@ -39,22 +39,22 @@ In the above the ideal gas law, :math:`p=\rho RT`, has been expressed in terms of the Exner function :math:`\Pi (p)` given by :eq:`exner` (see also :numref:`atmos_appendix`) -.. math:: \Pi (p)=c_{p}(\frac{p}{p_{c}})^{\kappa } +.. math:: \Pi (p)=c_{p} \left( \frac{p}{p_{c}} \right)^{\kappa}, :label: exner -where :math:`p_{c}` is a reference pressure and :math:`\kappa =R/c_{p}` +where :math:`p_{c}` is a reference pressure and :math:`\kappa = R/c_{p}` with :math:`R` the gas constant and :math:`c_{p}` the specific heat of air at constant pressure. At the top of the atmosphere (which is ‘fixed’ in our :math:`r` coordinate): -.. math:: R_{fixed}=p_{top}=0 +.. math:: R_{\rm fixed}=p_{\rm top}=0. In a resting atmosphere the elevation of the mountains at the bottom is given by -.. math:: R_{moving}=R_{o}(x,y)=p_{o}(x,y) +.. math:: R_{\rm moving}=R_{o}(x,y)=p_{o}(x,y) , i.e. the (hydrostatic) pressure at the top of the mountains in a resting atmosphere. @@ -62,11 +62,11 @@ resting atmosphere. The boundary conditions at top and bottom are given by: .. math:: - \omega =0~\text{at }r=R_{fixed} \text{ (top of the atmosphere)} + \omega =0~\text{at }r=R_{\rm fixed} \text{ (top of the atmosphere)} :label: fixed-bc-atmos .. math:: - \omega =~\frac{Dp_{s}}{Dt}\text{ at }r=R_{moving}\text{ (bottom of the atmosphere)} + \omega =~\frac{Dp_{s}}{Dt}\text{ at }r=R_{\rm moving}\text{ (bottom of the atmosphere)} :label: moving-bc-atmos Then the (hydrostatic form of) equations diff --git a/doc/overview/coordinate_sys.rst b/doc/overview/coordinate_sys.rst index 66c90b2af1..a440ac19b7 100644 --- a/doc/overview/coordinate_sys.rst +++ b/doc/overview/coordinate_sys.rst @@ -20,16 +20,16 @@ meridional and vertical direction respectively, are given by: earth, :math:`\Omega` is the angular speed of rotation of the Earth and :math:`D/Dt` is the total derivative. -The ‘grad’ (:math:`\nabla`) and ‘div’ (:math:`\nabla\cdot`) operators +The ‘grad’ (:math:`\nabla`) and ‘div’ (:math:`\nabla \cdot`) operators are defined by, in spherical coordinates: .. math:: - \nabla \equiv \left( \frac{1}{r\cos \varphi }\frac{\partial }{\partial \lambda } + \nabla \equiv \left( \frac{1}{r\cos \varphi }\frac{\partial }{\partial \lambda } ,\frac{1}{r}\frac{\partial }{\partial \varphi },\frac{\partial }{\partial r} \right) .. math:: - \nabla\cdot v\equiv \frac{1}{r\cos \varphi }\left\{ \frac{\partial u}{\partial + \nabla \cdot v\equiv \frac{1}{r\cos \varphi }\left\{ \frac{\partial u}{\partial \lambda }+\frac{\partial }{\partial \varphi }\left( v\cos \varphi \right) \right\} +\frac{1}{r^{2}}\frac{\partial \left( r^{2}\dot{r}\right) }{\partial r} diff --git a/doc/overview/eqn_motion_ocn.rst b/doc/overview/eqn_motion_ocn.rst index 3c0012ff78..599e79726c 100644 --- a/doc/overview/eqn_motion_ocn.rst +++ b/doc/overview/eqn_motion_ocn.rst @@ -8,16 +8,16 @@ incompressible) HPE’s for the ocean written in :math:`z-`\coordinates are obtained. The non-Boussinesq equations for oceanic motion are: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho }\mathbf{\nabla }_{z}p = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho } \nabla _{z}p = \vec{\boldsymbol{\mathcal{F}}}_h :label: non-boussinesq_horizmom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+g+\frac{1}{\rho }\frac{\partial p}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+g+\frac{1}{\rho }\frac{\partial p}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: non-boussinesq_vertmom .. math:: - \frac{1}{\rho }\frac{D\rho }{Dt}+\mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}} + \frac{1}{\rho }\frac{D\rho }{Dt}+ \nabla _{z}\cdot \vec{\mathbf{v}} _{h}+\frac{\partial w}{\partial z} = 0 :label: eq-zns-cont @@ -54,7 +54,7 @@ is the reciprocal of the sound speed (:math:`c_{s}`) squared. Substituting into :eq:`eq-zns-cont` gives: .. math:: - \frac{1}{\rho c_{s}^{2}}\frac{Dp}{Dt}+\mathbf{\nabla }_{z}\cdot \vec{\mathbf{ + \frac{1}{\rho c_{s}^{2}}\frac{Dp}{Dt}+ \nabla _{z}\cdot \vec{\mathbf{ v}}+\partial _{z}w\approx 0 :label: eq-zns-pressure @@ -64,16 +64,16 @@ assumed adiabatic motion, dropping the :math:`\frac{D\theta }{Dt}` and yields a system that can be explicitly integrated forward: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho }\mathbf{\nabla }_{z}p = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho } \nabla _{z}p = \vec{\boldsymbol{\mathcal{F}}}_h :label: eq-cns-hmom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+g+\frac{1}{\rho }\frac{\partial p}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+g+\frac{1}{\rho }\frac{\partial p}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: eq-cns-hydro .. math:: - \frac{1}{\rho c_{s}^{2}}\frac{Dp}{Dt}+\mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 + \frac{1}{\rho c_{s}^{2}}\frac{Dp}{Dt}+ \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 :label: eq-cns-cont .. math:: @@ -98,17 +98,17 @@ retains the full variation in :math:`\rho` is the gravitational acceleration: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho _{o}}\mathbf{\nabla }_{z}p = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+ f \hat{\boldsymbol{k}} \times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho _{o}} \nabla _{z}p = \vec{\boldsymbol{\mathcal{F}}}_h :label: eq-zcb-hmom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{o}}+\frac{1}{\rho _{o}} - \frac{\partial p}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{o}}+\frac{1}{\rho _{o}} + \frac{\partial p}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: eq-zcb-hydro .. math:: - \frac{1}{\rho _{o}c_{s}^{2}}\frac{Dp}{Dt}+\mathbf{\nabla }_{z}\cdot \vec{ + \frac{1}{\rho _{o}c_{s}^{2}}\frac{Dp}{Dt}+ \nabla _{z}\cdot \vec{ \mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 :label: eq-zcb-cont @@ -136,7 +136,7 @@ have the same pressure dependency as the linearized pressure term, ie. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The anelastic approximation filters the acoustic mode by removing the -time-dependency in the continuity (now pressure-) equation +time-dependency in the continuity (now pressure) equation :eq:`eq-zcb-cont`. This could be done simply by noting that :math:`\frac{Dp}{Dt}\approx -g\rho _{o} \frac{Dz}{Dt}=-g\rho _{o}w`, but this leads to an inconsistency between @@ -144,7 +144,7 @@ continuity and EOS. A better solution is to change the dependency on pressure in the EOS by splitting the pressure into a reference function of height and a perturbation: -.. math:: \rho =\rho (\theta ,S,p_{o}(z)+\epsilon _{s}p^{\prime }) +.. math:: \rho =\rho \left(\theta ,S,p_{o}(z)+\epsilon _{s}p^{\prime } \right) Remembering that the term :math:`\frac{Dp}{Dt}` in continuity comes from differentiating the EOS, the continuity equation then becomes: @@ -152,38 +152,38 @@ from differentiating the EOS, the continuity equation then becomes: .. math:: \frac{1}{\rho _{o}c_{s}^{2}}\left( \frac{Dp_{o}}{Dt}+\epsilon _{s}\frac{ - Dp^{\prime }}{Dt}\right) +\mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+ + Dp^{\prime }}{Dt}\right) + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+ \frac{\partial w}{\partial z}=0 If the time- and space-scales of the motions of interest are longer than those of acoustic modes, then -:math:`\frac{Dp^{\prime }}{Dt}<<(\frac{Dp_{o}}{Dt}, \mathbf{\nabla }\cdot \vec{\mathbf{v}}_{h})` +:math:`\frac{Dp^{\prime }}{Dt}\ll \frac{Dp_{o}}{Dt}, \nabla \cdot \vec{\mathbf{v}}_{h}` in the continuity equations and :math:`\left. \frac{\partial \rho }{\partial p}\right| _{\theta ,S}\frac{ -Dp^{\prime }}{Dt}<<\left. \frac{\partial \rho }{\partial p}\right| _{\theta +Dp^{\prime }}{Dt}\ll \left. \frac{\partial \rho }{\partial p}\right| _{\theta ,S}\frac{Dp_{o}}{Dt}` in the EOS :eq:`EOSexpansion`. Thus we set :math:`\epsilon_{s}=0`, removing the dependency on :math:`p^{\prime }` in the continuity equation and EOS. Expanding :math:`\frac{Dp_{o}(z)}{Dt}=-g\rho _{o}w` then leads to the anelastic continuity equation: .. math:: - \mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z}- + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z}- \frac{g}{c_{s}^{2}}w = 0 :label: eq-za-cont1 A slightly different route leads to the quasi-Boussinesq continuity equation where we use the scaling :math:`\frac{\partial \rho ^{\prime }}{\partial t}+ -\mathbf{\nabla }_{3}\cdot \rho ^{\prime }\vec{\mathbf{v}}<<\mathbf{\nabla } +\nabla _{3}\cdot \rho ^{\prime }\vec{\mathbf{v}}\ll \nabla _{3}\cdot \rho _{o}\vec{\mathbf{v}}` yielding: .. math:: - \mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{1}{\rho _{o}}\frac{ + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{1}{\rho _{o}}\frac{ \partial \left( \rho _{o}w\right) }{\partial z} = 0 :label: eq-za-cont2 Equations :eq:`eq-za-cont1` and :eq:`eq-za-cont2` are in fact the same equation if: -.. math:: \frac{1}{\rho _{o}}\frac{\partial \rho _{o}}{\partial z}=\frac{-g}{c_{s}^{2}} +.. math:: \frac{1}{\rho _{o}}\frac{\partial \rho _{o}}{\partial z} = -\frac{g}{c_{s}^{2}} Again, note that if :math:`\rho _{o}` is evaluated from prescribed :math:`\theta _{o}` and :math:`S_{o}` profiles, then the EOS dependency @@ -192,22 +192,22 @@ be referred to those same profiles. The full set of ‘quasi-Boussinesq’ or equations for the ocean are then: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho _{o}}\mathbf{\nabla }_{z}p = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho _{o}} \nabla _{z}p = \vec{\boldsymbol{\mathcal{F}}}_h :label: eq-zab-hmom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{o}}+\frac{1}{\rho _{o}} - \frac{\partial p}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{o}}+\frac{1}{\rho _{o}} + \frac{\partial p}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: eq-zab-hydro .. math:: - \mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{1}{\rho _{o}}\frac{ + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{1}{\rho _{o}}\frac{ \partial \left( \rho _{o}w\right) }{\partial z} = 0 :label: eq-zab-cont .. math:: - \rho = \rho (\theta ,S,p_{o}(z)) + \rho = \rho \left(\theta ,S,p_{o}(z) \right) :label: eq-zab-eos .. math:: @@ -227,17 +227,17 @@ and so, technically, to also remove the dependence of :math:`\rho` on equations: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho _{c}}\mathbf{\nabla }_{z}p = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho _{c}} \nabla _{z}p = \vec{\boldsymbol{\mathcal{F}}}_h :label: eq-ztb-hmom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{c}}+\frac{1}{\rho _{c}} - \frac{\partial p}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+\frac{g\rho }{\rho _{c}}+\frac{1}{\rho _{c}} + \frac{\partial p}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: eq-ztb-hydro .. math:: - \mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 :label: eq-ztb-cont .. math:: @@ -276,18 +276,17 @@ This then yields what we can call the semi-compressible Boussinesq equations: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\frac{1}{\rho _{c}}\mathbf{\nabla }_{z}p^{\prime } = \vec{\mathbf{ - \mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+\frac{1}{\rho _{c}} \nabla _{z}p^{\prime } = \vec{\boldsymbol{\mathcal{F}}}_h :label: eq-ocean-mom .. math:: - \epsilon _{nh}\frac{Dw}{Dt}+\frac{g\rho ^{\prime }}{\rho _{c}}+\frac{1}{\rho - _{c}}\frac{\partial p^{\prime }}{\partial z} = \epsilon _{nh}\mathcal{F}_{w} + \epsilon _{\rm nh}\frac{Dw}{Dt}+\frac{g\rho ^{\prime }}{\rho _{c}}+\frac{1}{\rho + _{c}}\frac{\partial p^{\prime }}{\partial z} = \epsilon _{\rm nh}\mathcal{F}_{w} :label: eq-ocean-wmom .. math:: - \mathbf{\nabla }_{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 + \nabla _{z}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial w}{\partial z} = 0 :label: eq-ocean-cont .. math:: @@ -309,6 +308,5 @@ effect on the dynamics. Though necessary, the assumptions that go into these equations are messy since we essentially assume a different EOS for the reference density and the perturbation density. Nevertheless, it is the hydrostatic -(:math:`\epsilon_{nh}=0`) form of these equations that are used throughout the ocean +(:math:`\epsilon_{\rm nh}=0`) form of these equations that are used throughout the ocean modeling community and referred to as the primitive equations (**HPE**’s). - diff --git a/doc/overview/finding_pressure.rst b/doc/overview/finding_pressure.rst index 952f95ab39..78e1c3b3ff 100644 --- a/doc/overview/finding_pressure.rst +++ b/doc/overview/finding_pressure.rst @@ -7,55 +7,55 @@ Unlike the prognostic variables :math:`u`, :math:`v`, :math:`w`, :math:`\theta` and :math:`S`, the pressure field must be obtained diagnostically. We proceed, as before, by dividing the total (pressure/geo) potential in to three parts, a surface part, -:math:`\phi _{s}(x,y)`, a hydrostatic part :math:`\phi _{hyd}(x,y,r)` -and a non-hydrostatic part :math:`\phi _{nh}(x,y,r)`, as in +:math:`\phi _{s}(x,y)`, a hydrostatic part :math:`\phi _{\rm hyd}(x,y,r)` +and a non-hydrostatic part :math:`\phi _{\rm nh}(x,y,r)`, as in :eq:`phi-split`, and writing the momentum equation as in :eq:`mom-h`. Hydrostatic pressure ~~~~~~~~~~~~~~~~~~~~ Hydrostatic pressure is obtained by integrating :eq:`hydrostatic` vertically from :math:`r=R_{o}` -where :math:`\phi _{hyd}(r=R_{o})=0`, to yield: +where :math:`\phi _{\rm hyd}(r=R_{o})=0`, to yield: .. math:: - \int_{r}^{R_{o}}\frac{\partial \phi _{hyd}}{\partial r}dr=\left[ \phi _{hyd} + \int_{r}^{R_{o}}\frac{\partial \phi _{\rm hyd}}{\partial r}dr=\left[ \phi _{\rm hyd} \right] _{r}^{R_{o}}=\int_{r}^{R_{o}}-bdr and so -.. math:: \phi _{hyd}(x,y,r)=\int_{r}^{R_{o}}bdr +.. math:: \phi _{\rm hyd}(x,y,r)=\int_{r}^{R_{o}}bdr :label: hydro-phi The model can be easily modified to accommodate a loading term (e.g atmospheric pressure pushing down on the ocean’s surface) by setting: -.. math:: \phi _{hyd}(r=R_{o})=loading +.. math:: \phi _{\rm hyd}(r=R_{o})= \text{loading} :label: loading Surface pressure ~~~~~~~~~~~~~~~~ The surface pressure equation can be obtained by integrating continuity, -:eq:`continuity`, vertically from :math:`r=R_{fixed}` to :math:`r=R_{moving}` +:eq:`continuity`, vertically from :math:`r=R_{\rm fixed}` to :math:`r=R_{\rm moving}` .. math:: - \int_{R_{fixed}}^{R_{moving}}\left( \mathbf{\nabla }_{h}\cdot \vec{\mathbf{v} + \int_{R_{\rm fixed}}^{R_{\rm moving}}\left( \nabla _{h}\cdot \vec{\mathbf{v} }_{h}+\partial _{r}\dot{r}\right) dr=0 Thus: .. math:: - \frac{\partial \eta }{\partial t}+\vec{\mathbf{v}}.\nabla \eta - +\int_{R_{fixed}}^{R_{moving}}\mathbf{\nabla }_{h}\cdot \vec{\mathbf{v}} + \frac{\partial \eta }{\partial t}+\vec{\mathbf{v}} \cdot \nabla \eta + +\int_{R_{\rm fixed}}^{R_{\rm moving}} \nabla _{h}\cdot \vec{\mathbf{v}} _{h}dr=0 -where :math:`\eta =R_{moving}-R_{o}` is the free-surface +where :math:`\eta =R_{\rm moving}-R_{o}` is the free-surface :math:`r`-anomaly in units of :math:`r`. The above can be rearranged to yield, using Leibnitz’s theorem: .. math:: - \frac{\partial \eta }{\partial t}+\mathbf{\nabla }_{h}\cdot - \int_{R_{fixed}}^{R_{moving}}\vec{\mathbf{v}}_{h}dr=\text{source} + \frac{\partial \eta }{\partial t}+ \nabla _{h}\cdot + \int_{R_{\rm fixed}}^{R_{\rm moving}}\vec{\mathbf{v}}_{h}dr=\text{source} :label: free-surface where we have incorporated a source term. @@ -64,14 +64,14 @@ Whether :math:`\phi` is pressure (ocean model, :math:`p/\rho _{c}`) or geopotential (atmospheric model), in :eq:`mom-h`, the horizontal gradient term can be written .. math:: - \mathbf{\nabla }_{h}\phi _{s}=\mathbf{\nabla }_{h}\left( b_{s}\eta \right) + \nabla _{h}\phi _{s}= \nabla _{h}\left( b_{s}\eta \right) :label: phi-surf where :math:`b_{s}` is the buoyancy at the surface. -In the hydrostatic limit (:math:`\epsilon _{nh}=0`), equations +In the hydrostatic limit (:math:`\epsilon _{\rm nh}=0`), equations :eq:`mom-h`, :eq:`free-surface` and :eq:`phi-surf` can be solved by -inverting a 2-d elliptic equation for :math:`\phi _{s}` as described in +inverting a 2-D elliptic equation for :math:`\phi _{s}` as described in Chapter 2. Both ‘free surface’ and ‘rigid lid’ approaches are available. Non-hydrostatic pressure @@ -82,16 +82,16 @@ Taking the horizontal divergence of :eq:`mom-h` and adding continuity equation :eq:`continuity`, we deduce that: .. math:: - \nabla _{3}^{2}\phi _{nh}=\nabla .\vec{\mathbf{G}}_{\vec{v}}-\left( \mathbf{ - \nabla }_{h}^{2}\phi _{s}+\mathbf{\nabla }^{2}\phi _{hyd}\right) =\nabla . - \vec{\mathbf{F}} + \nabla_{3}^{2}\phi _{\rm nh}= \nabla \cdot \vec{\mathbf{G}}_{\vec{v}}-\left( + \nabla_{h}^{2}\phi _{s}+ \nabla^2 \phi _{\rm hyd}\right) = + \nabla \cdot \vec{\mathbf{F}} :label: 3d-invert -For a given rhs this 3-d elliptic equation must be inverted for -:math:`\phi _{nh}` subject to appropriate choice of boundary conditions. +For a given rhs this 3-D elliptic equation must be inverted for +:math:`\phi _{\rm nh}` subject to appropriate choice of boundary conditions. This method is usually called *The Pressure Method* [Harlow and Welch (1965) :cite:`harlow:65`; Williams (1969) :cite:`williams:69`; Potter (1973) :cite:`potter:73`. In the hydrostatic primitive -equations case (**HPE**), the 3-d problem does not need to be solved. +equations case (**HPE**), the 3-D problem does not need to be solved. Boundary Conditions ^^^^^^^^^^^^^^^^^^^ @@ -99,12 +99,12 @@ Boundary Conditions We apply the condition of no normal flow through all solid boundaries - the coasts (in the ocean) and the bottom: -.. math:: \vec{\mathbf{v}}.\widehat{n}=0 +.. math:: \vec{\mathbf{v}} \cdot \hat{\boldsymbol{n}} =0 :label: nonormalflow where :math:`\widehat{n}` is a vector of unit length normal to the boundary. The kinematic condition :eq:`nonormalflow` is also applied to -the vertical velocity at :math:`r=R_{moving}`. No-slip +the vertical velocity at :math:`r=R_{\rm moving}`. No-slip :math:`\left( v_{T}=0\right) \ `\ or slip :math:`\left( \partial v_{T}/\partial n=0\right) \ `\ conditions are employed on the tangential component of velocity, :math:`v_{T}`, at all solid boundaries, depending on the form chosen for the dissipative terms in @@ -113,13 +113,13 @@ the momentum equations - see below. Eq. :eq:`nonormalflow` implies, making use of :eq:`mom-h`, that: .. math:: - \widehat{n}.\nabla \phi _{nh}=\widehat{n}.\vec{\mathbf{F}} + \hat{\boldsymbol{n}} \cdot \nabla \phi _{\rm nh}= \hat{\boldsymbol{n}} \cdot \vec{\mathbf{F}} :label: inhom-neumann-nh where .. math:: - \vec{\mathbf{F}}=\vec{\mathbf{G}}_{\vec{v}}-\left( \mathbf{\nabla }_{h}\phi_{s}+\mathbf{\nabla }\phi _{hyd}\right) + \vec{\mathbf{F}}=\vec{\mathbf{G}}_{\vec{v}}-\left( \nabla _{h}\phi_{s}+ \nabla \phi _{\rm hyd}\right) presenting inhomogeneous Neumann boundary conditions to the Elliptic problem :eq:`3d-invert`. As shown, for example, by Williams (1969) :cite:`williams:69`, one @@ -127,25 +127,25 @@ can exploit classical 3D potential theory and, by introducing an appropriately chosen :math:`\delta`-function sheet of ‘source-charge’, replace the inhomogeneous boundary condition on pressure by a homogeneous one. The source term :math:`rhs` in :eq:`3d-invert` is the -divergence of the vector :math:`\vec{\mathbf{F}}.` By simultaneously setting :math:`\widehat{n}.\vec{\mathbf{F}}=0`  -and :math:`\widehat{n}.\nabla \phi _{nh}=0\ `\ on the boundary the +divergence of the vector :math:`\vec{\mathbf{F}}`. By simultaneously setting :math:`\hat{\boldsymbol{n}} \cdot \vec{\mathbf{F}}=0`  +and :math:`\hat{\boldsymbol{n}} \cdot \nabla \phi_{\rm nh}=0\ `\ on the boundary the following self-consistent but simpler homogenized Elliptic problem is obtained: -.. math:: \nabla ^{2}\phi _{nh}=\nabla .\widetilde{\vec{\mathbf{F}}}\qquad +.. math:: \nabla ^{2}\phi _{\rm nh}= \nabla \cdot \widetilde{\vec{\mathbf{F}}}\qquad where :math:`\widetilde{\vec{\mathbf{F}}}` is a modified :math:`\vec{\mathbf{F}}` -such that :math:`\widetilde{\vec{\mathbf{F}}}.\widehat{n}=0`. As is implied by +such that :math:`\widetilde{\vec{\mathbf{F}}} \cdot \hat{\boldsymbol{n}} =0`. As is implied by :eq:`inhom-neumann-nh` the modified boundary condition becomes: -.. math:: \widehat{n}.\nabla \phi _{nh}=0 +.. math:: \hat{\boldsymbol{n}} \cdot \nabla \phi _{\rm nh}=0 :label: hom-neumann-nh If the flow is ‘close’ to hydrostatic balance then the 3-d inversion -converges rapidly because :math:`\phi _{nh}\ `\ is then only a small +converges rapidly because :math:`\phi _{\rm nh}\ `\ is then only a small correction to the hydrostatic pressure field (see the discussion in Marshall et al. (1997a,b) :cite:`marshall:97a` :cite:`marshall:97b`. -The solution :math:`\phi _{nh}\ `\ to :eq:`3d-invert` and -:eq:`inhom-neumann-nh` does not vanish at :math:`r=R_{moving}`, and so +The solution :math:`\phi _{\rm nh}\ `\ to :eq:`3d-invert` and +:eq:`inhom-neumann-nh` does not vanish at :math:`r=R_{\rm moving}`, and so refines the pressure there. diff --git a/doc/overview/forcing_dissip.rst b/doc/overview/forcing_dissip.rst index 79e318a705..fe7ac4ba39 100644 --- a/doc/overview/forcing_dissip.rst +++ b/doc/overview/forcing_dissip.rst @@ -35,19 +35,19 @@ similar form to that of momentum except that the diffusion tensor can be non-diagonal and have varying coefficients. .. math:: - D_{T,S}=\nabla .[\underline{\underline{K}}\nabla (T,S)]+K_{4}\nabla - _{h}^{4}(T,S) + D_{T,S} = \nabla \cdot \left[ \boldsymbol{K} \nabla (T,S) \right] + K_{4} \nabla + _{h}^{4}(T,S), :label: diffusion -where :math:`\underline{\underline{K}}\ `\ is the diffusion tensor and -the :math:`K_{4}\ ` horizontal coefficient for biharmonic diffusion. In +where :math:`\boldsymbol{K}` is the diffusion tensor and +:math:`K_{4}\ ` the horizontal coefficient for biharmonic diffusion. In the simplest case where the subgrid-scale fluxes of heat and salt are parameterized with constant horizontal and vertical diffusion -coefficients, :math:`\underline{\underline{K}}`, reduces to a diagonal +coefficients, :math:`\boldsymbol{K}`, reduces to a diagonal matrix with constant coefficients: .. math:: - \qquad \qquad \qquad \qquad K=\left( + \qquad \qquad \qquad \qquad \boldsymbol{K} = \left( \begin{array}{ccc} K_{h} & 0 & 0 \\ 0 & K_{h} & 0 \\ diff --git a/doc/overview/hydro_prim_eqn.rst b/doc/overview/hydro_prim_eqn.rst index 8b1b277194..dc43b0cc77 100644 --- a/doc/overview/hydro_prim_eqn.rst +++ b/doc/overview/hydro_prim_eqn.rst @@ -6,7 +6,7 @@ Hydrostatic Primitive Equations for the Atmosphere in Pressure Coordinates The hydrostatic primitive equations (**HPE**’s) in :math:`p-`\coordinates are: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}}_{h}+\mathbf{\nabla }_{p}\phi = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}}_{h}+ \nabla _{p}\phi = \vec{\boldsymbol{\mathcal{F}}} :label: atmos-mom .. math:: @@ -14,7 +14,7 @@ The hydrostatic primitive equations (**HPE**’s) in :math:`p-`\coordinates are: :label: eq-p-hydro-start .. math:: - \mathbf{\nabla }_{p}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \omega }{\partial p} = 0 + \nabla _{p}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \omega }{\partial p} = 0 :label: atmos-cont .. math:: @@ -26,7 +26,7 @@ The hydrostatic primitive equations (**HPE**’s) in :math:`p-`\coordinates are: :label: atmos-heat where :math:`\vec{\mathbf{v}}_{h}=(u,v,0)` is the ‘horizontal’ (on pressure surfaces) component of velocity, -:math:`\frac{D}{Dt}=\frac{\partial}{\partial t}+\vec{\mathbf{v}}_{h}\cdot \mathbf{\nabla }_{p}+\omega \frac{\partial }{\partial p}` +:math:`\frac{D}{Dt}=\frac{\partial}{\partial t}+\vec{\mathbf{v}}_{h}\cdot \nabla _{p}+\omega \frac{\partial }{\partial p}` is the total derivative, :math:`f=2\Omega \sin \varphi` is the Coriolis parameter, :math:`\phi =gz` is the geopotential, :math:`\alpha =1/\rho` is the specific volume, :math:`\omega =\frac{Dp }{Dt}` is the vertical @@ -99,7 +99,7 @@ The upper and lower boundary conditions are: :label: boundary-condition-atmosphere-top .. math:: - \begin{aligned}\mbox{at the surface:}\;\;p=p_{s} &\text{, }\phi =\phi _{topo}=g~Z_{topo}\end{aligned} + \begin{aligned}\mbox{at the surface:}\;\;p=p_{s} &\text{, }\phi =\phi _{\rm topo}=g~Z_{\rm topo}\end{aligned} :label: boundary-condition-atmosphere-bot In :math:`p-`\coordinates, the upper boundary acts like a solid boundary @@ -134,17 +134,17 @@ model equations: The reference state (indicated by subscript ‘*o*’) corresponds to horizontally homogeneous atmosphere at rest (:math:`\theta _{o},\alpha _{o},\phi_{o}`) with surface pressure :math:`p_{o}(x,y)` that satisfies -:math:`\phi_{o}(p_{o})=g~Z_{topo}`, defined: +:math:`\phi_{o}(p_{o})=g~Z_{\rm topo}`, defined: .. math:: \theta _{o}(p) = f^{n}(p) \\ .. math:: \alpha _{o}(p) = \Pi _{p}\theta _{o} \\ -.. math:: \phi _{o}(p) = \phi _{topo}-\int_{p_{0}}^{p}\alpha _{o}dp +.. math:: \phi _{o}(p) = \phi _{\rm topo}-\int_{p_{0}}^{p}\alpha _{o}dp The final form of the **HPE**’s in :math:`p-`\coordinates is then: .. math:: - \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\mathbf{k}}\times \vec{\mathbf{v}} - _{h}+\mathbf{\nabla }_{p}\phi ^{\prime } = \vec{\mathbf{\mathcal{F}}} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+f\hat{\boldsymbol{k}}\times \vec{\mathbf{v}} + _{h}+ \nabla _{p}\phi ^{\prime } = \vec{\boldsymbol{\mathcal{F}}} :label: atmos-prime .. math:: @@ -152,7 +152,7 @@ The final form of the **HPE**’s in :math:`p-`\coordinates is then: :label: atmos-prime2 .. math:: - \mathbf{\nabla }_{p}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \omega }{ + \nabla _{p}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \omega }{ \partial p} = 0 :label: atmos-prime3 diff --git a/doc/overview/hydrostatic.rst b/doc/overview/hydrostatic.rst index 8cf7d45166..d0d13c0a1c 100644 --- a/doc/overview/hydrostatic.rst +++ b/doc/overview/hydrostatic.rst @@ -7,27 +7,27 @@ Let us separate :math:`\phi` in to surface, hydrostatic and non-hydrostatic terms: .. math:: - \phi (x,y,r)=\phi _{s}(x,y)+\phi _{hyd}(x,y,r)+\phi _{nh}(x,y,r) + \phi (x,y,r)=\phi _{s}(x,y)+\phi _{\rm hyd}(x,y,r)+\phi _{\rm nh}(x,y,r) :label: phi-split and write :eq:`horiz-mtm` in the form: .. math:: - \frac{\partial \vec{\mathbf{v}_{h}}}{\partial t}+\mathbf{\nabla }_{h}\phi - _{s}+\mathbf{\nabla }_{h}\phi _{hyd}+\epsilon _{nh}\mathbf{\nabla }_{h}\phi - _{nh}=\vec{\mathbf{G}}_{\vec{v}_{h}} + \frac{\partial \vec{\mathbf{v}}_{h}}{\partial t}+ \nabla _{h}\phi + _{s}+ \nabla _{h}\phi _{\rm hyd}+\epsilon _{\rm nh} \nabla _{h}\phi + _{\rm nh}=\vec{\mathbf{G}}_{\vec{v}_{h}} :label: mom-h .. math:: - \frac{\partial \phi _{hyd}}{\partial r}=-b + \frac{\partial \phi _{\rm hyd}}{\partial r}=-b :label: hydrostatic .. math:: - \epsilon _{nh}\frac{\partial \dot{r}}{\partial t}+\frac{\partial \phi _{nh}}{ + \epsilon _{\rm nh}\frac{\partial \dot{r}}{\partial t}+\frac{\partial \phi _{\rm nh}}{ \partial r}=G_{\dot{r}} :label: mom-w -Here :math:`\epsilon _{nh}` is a non-hydrostatic parameter. +Here :math:`\epsilon _{\rm nh}` is a non-hydrostatic parameter. The :math:`\left( \vec{\mathbf{G}}_{\vec{v}},G_{\dot{r}}\right)` in :eq:`mom-h` and :eq:`mom-w` represent advective, metric and Coriolis @@ -37,7 +37,7 @@ form [#]_ - see Marshall et al. (1997a) :cite:`marshall:97a` for a full discuss .. math:: :label: gu-spherical - G_{u} = & -\vec{\mathbf{v}}.\nabla u && \qquad \text{advection} + G_{u} = & -\vec{\mathbf{v}} \cdot \nabla u && \qquad \text{advection} & -\left\{ \underline{\frac{u\dot{r}}{{r}}}-\frac{uv\tan \varphi}{{r}}\right\} && \qquad \text{metric} @@ -48,7 +48,7 @@ form [#]_ - see Marshall et al. (1997a) :cite:`marshall:97a` for a full discuss .. math:: :label: gv-spherical - G_{v} = & -\vec{\mathbf{v}}.\nabla v && \qquad \text{advection} + G_{v} = & -\vec{\mathbf{v}} \cdot \nabla v && \qquad \text{advection} & -\left\{ \underline{\frac{v\dot{r}}{{r}}}-\frac{u^{2}\tan \varphi}{{r}}\right\} && \qquad \text{metric} @@ -59,7 +59,7 @@ form [#]_ - see Marshall et al. (1997a) :cite:`marshall:97a` for a full discuss .. math:: :label: gw-spherical - G_{\dot{r}} = & -\underline{\underline{\vec{\mathbf{v}}.\nabla \dot{r}}} && \qquad \text{advection} + G_{\dot{r}} = & -\underline{\underline{\vec{\mathbf{v}} \cdot \nabla \dot{r}}} && \qquad \text{advection} & -\left\{ \underline{\frac{u^{_{^{2}}}+v^{2}}{{r}}}\right\} && \qquad \text{metric} @@ -98,8 +98,8 @@ In the ‘hydrostatic primitive equations’ (**HPE**) all the underlined terms in Eqs. :eq:`gu-spherical` :math:`\rightarrow` :eq:`gw-spherical` are neglected and ‘:math:`{r}`’ is replaced by ‘:math:`a`’, the mean radius of the earth. Once the -pressure is found at one level - e.g. by inverting a 2-d Elliptic -equation for :math:`\phi _{s}` at :math:`r=R_{moving}` - the pressure +pressure is found at one level - e.g. by inverting a 2-D Elliptic +equation for :math:`\phi _{s}` at :math:`r=R_{\rm moving}` - the pressure can be computed at all other levels by integration of the hydrostatic relation, eq :eq:`hydrostatic`. @@ -113,14 +113,14 @@ relaxed. In **QH** *all* the metric terms are retained and the full variation of the radial position of a particle monitored. The **QH** vertical momentum equation :eq:`mom-w` becomes: -.. math:: \frac{\partial \phi _{nh}}{\partial r}=2\Omega u\cos \varphi +.. math:: \frac{\partial \phi _{\rm nh}}{\partial r}=2\Omega u\cos \varphi making a small correction to the hydrostatic pressure. **QH** has good energetic credentials - they are the same as for **HPE**. Importantly, however, it has the same angular momentum principle as the full non-hydrostatic model (**NH**) - see Marshall -et.al. (1997a) :cite:`marshall:97a`. As in **HPE** only a 2-d elliptic problem need be solved. +et.al. (1997a) :cite:`marshall:97a`. As in **HPE** only a 2-D elliptic problem need be solved. Non-hydrostatic and quasi-nonhydrostatic forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -151,7 +151,7 @@ In the non-hydrostatic version of our atmospheric model we approximate .. math:: \dot{r}=\frac{Dp}{Dt}=\frac{1}{g}\frac{D\phi }{Dt} :label: quasi-nh-w -where :math:`p_{hy}` is the hydrostatic pressure. +where :math:`p_{\rm hy}` is the hydrostatic pressure. Summary of equation sets supported by model ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/overview/kinematic_bound.rst b/doc/overview/kinematic_bound.rst index d7b22dccdf..15bc29ce3e 100644 --- a/doc/overview/kinematic_bound.rst +++ b/doc/overview/kinematic_bound.rst @@ -7,16 +7,16 @@ Vertical at fixed and moving :math:`r` surfaces we set (see :numref:`zandp-vert-coord`): .. math:: - \dot{r}=0 \text{ at } r=R_{fixed}(x,y)\text{ (ocean bottom, top of the atmosphere)} + \dot{r}=0 \text{ at } r=R_{\rm fixed}(x, y)\text{ (ocean bottom, top of the atmosphere)} :label: fixedbc .. math:: - \dot{r}=\frac{Dr}{Dt} \text{ at } r=R_{moving}(x,y)\text{ (ocean surface, bottom of the atmosphere)} + \dot{r}=\frac{Dr}{Dt} \text{ at } r=R_{\rm moving}(x, y)\text{ (ocean surface, bottom of the atmosphere)} :label: movingbc Here -.. math:: R_{moving}=R_{o}+\eta +.. math:: R_{\rm moving}=R_{o} + \eta where :math:`R_{o}(x,y)` is the ‘:math:`r-`\ value’ (height or pressure, depending on whether we are in the atmosphere or ocean) of the ‘moving diff --git a/doc/overview/ocean.rst b/doc/overview/ocean.rst index 98abaa8e5c..c398b206f7 100644 --- a/doc/overview/ocean.rst +++ b/doc/overview/ocean.rst @@ -16,18 +16,18 @@ In the ocean we interpret: :label: ocean-p .. math:: - b(\theta ,S,r)=\frac{g}{\rho _{c}}\left( \rho (\theta ,S,r)-\rho - _{c}\right) \text{ is the buoyancy} + b(\theta ,S,r)=\frac{g}{\rho _{c}} \left( \vphantom{\dot{W}} \rho (\theta,S,r) - \rho_{c}\right) + \text{ is the buoyancy} :label: ocean-b -where :math:`\rho _{c}` is a fixed reference density of water and +where :math:`\rho_{c}` is a fixed reference density of water and :math:`g` is the acceleration due to gravity. In the above: -At the bottom of the ocean: :math:`R_{fixed}(x,y)=-H(x,y)`. +At the bottom of the ocean: :math:`R_{\rm fixed}(x,y)=-H(x,y)`. -The surface of the ocean is given by: :math:`R_{moving}=\eta` +The surface of the ocean is given by: :math:`R_{\rm moving}=\eta` The position of the resting free surface of the ocean is given by :math:`R_{o}=Z_{o}=0`. @@ -35,11 +35,11 @@ The position of the resting free surface of the ocean is given by Boundary conditions are: .. math:: - w=0~\text{at }r=R_{fixed}\text{ (ocean bottom)} + w=0~\text{at }r=R_{\rm fixed}\text{ (ocean bottom)} :label: fixed-bc-ocean .. math:: - w=\frac{D\eta }{Dt}\text{ at }r=R_{moving}=\eta \text{ (ocean surface)} + w=\frac{D\eta }{Dt}\text{ at }r=R_{\rm moving}=\eta \text{ (ocean surface)} :label: moving-bc-ocean where :math:`\eta` is the elevation of the free surface. diff --git a/doc/overview/overview.rst b/doc/overview/overview.rst index 1972de456e..2dc684831f 100644 --- a/doc/overview/overview.rst +++ b/doc/overview/overview.rst @@ -185,17 +185,17 @@ see :numref:`zandp-vert-coord`. Vertical coordinates and kinematic boundary conditions for atmosphere (top) and ocean (bottom). .. math:: - \frac{D\vec{\mathbf{v}_{h}}}{Dt}+\left( 2\vec{\Omega}\times \vec{\mathbf{v}} - \right) _{h}+\mathbf{\nabla }_{h}\phi =\mathcal{F}_{\vec{\mathbf{v}_{h}}}\text{ horizontal momentum} + \frac{D\vec{\mathbf{v}}_{h}}{Dt}+\left( 2\vec{\boldsymbol{\Omega}}\times \vec{\mathbf{v}} + \right) _{h}+ \nabla _{h}\phi = \vec{\boldsymbol{\mathcal{F}}}_h\text{ horizontal momentum} :label: horiz-mtm .. math:: - \frac{D\dot{r}}{Dt}+\widehat{k}\cdot \left( 2\vec{\Omega}\times \vec{\mathbf{ + \frac{D\dot{r}}{Dt}+\hat{\boldsymbol{k}}\cdot \left( 2\vec{\boldsymbol{\Omega}}\times \vec{\mathbf{ v}}\right) +\frac{\partial \phi }{\partial r}+b=\mathcal{F}_{\dot{r}}\text{ vertical momentum} :label: vert-mtm .. math:: - \mathbf{\nabla }_{h}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \dot{r}}{ + \nabla _{h}\cdot \vec{\mathbf{v}}_{h}+\frac{\partial \dot{r}}{ \partial r}=0\text{ continuity} :label: continuity @@ -217,17 +217,17 @@ Here: .. math:: - \frac{D}{Dt}=\frac{\partial }{\partial t}+\vec{\mathbf{v}}\cdot \nabla \text{ is the total derivative} + \frac{D}{Dt}=\frac{\partial }{\partial t}+\vec{\mathbf{v}}\cdot \nabla \text{ is the total derivative} .. math:: - \mathbf{\nabla }=\mathbf{\nabla }_{h}+\widehat{k}\frac{\partial }{\partial r} + \nabla = \nabla _{h}+\hat{\boldsymbol{k}}\frac{\partial }{\partial r} \text{ is the ‘grad’ operator} -with :math:`\mathbf{\nabla }_{h}` operating in the horizontal and -:math:`\widehat{k} +with :math:`\nabla _{h}` operating in the horizontal and +:math:`\hat{\boldsymbol{k}} \frac{\partial }{\partial r}` operating in the vertical, where -:math:`\widehat{k}` is a unit vector in the vertical +:math:`\hat{\boldsymbol{k}}` is a unit vector in the vertical .. math:: t\text{ is time} @@ -237,7 +237,7 @@ with :math:`\mathbf{\nabla }_{h}` operating in the horizontal and .. math:: \phi \text{ is the ‘pressure’/‘geopotential’} -.. math:: \vec{\Omega}\text{ is the Earth's rotation} +.. math:: \vec{\boldsymbol{\Omega}}\text{ is the Earth's rotation} .. math:: b\text{ is the ‘buoyancy’} @@ -247,14 +247,14 @@ with :math:`\mathbf{\nabla }_{h}` operating in the horizontal and .. math:: - \mathcal{F}_{\vec{\mathbf{v}}}\text{ are forcing and dissipation of }\vec{ + \vec{\boldsymbol{\mathcal{F}}}\text{ are forcing and dissipation of }\vec{ \mathbf{v}} .. math:: \mathcal{Q}_{\theta }\mathcal{\ }\text{ are forcing and dissipation of }\theta .. math:: \mathcal{Q}_{S}\mathcal{\ }\text{are forcing and dissipation of }S -The :math:`\mathcal{F}^{\prime }s` and :math:`\mathcal{Q}^{\prime }s` +The terms :math:`\vec{\boldsymbol{\mathcal{F}}}` and :math:`\mathcal{Q}` are provided by ‘physics’ and forcing packages for atmosphere and ocean. These are described in later chapters. diff --git a/doc/overview/soln_strategy.rst b/doc/overview/soln_strategy.rst index 8aaa4449df..b807f80d2f 100644 --- a/doc/overview/soln_strategy.rst +++ b/doc/overview/soln_strategy.rst @@ -17,7 +17,7 @@ course, some complication that goes with the inclusion of :math:`\cos \varphi \ ` Coriolis terms and the relaxation of the shallow atmosphere approximation. But this leads to negligible increase in computation. In **NH**, in contrast, one additional elliptic equation - -a three-dimensional one - must be inverted for :math:`p_{nh}`. However +a three-dimensional one - must be inverted for :math:`p_{\rm nh}`. However the ‘overhead’ of the **NH** model is essentially negligible in the hydrostatic limit (see detailed discussion in Marshall et al. (1997) :cite:`marshall:97a` resulting in a non-hydrostatic algorithm that, in the hydrostatic limit, diff --git a/doc/overview/vector_invar.rst b/doc/overview/vector_invar.rst index 16b28ab2a0..d2f0c5a9fb 100644 --- a/doc/overview/vector_invar.rst +++ b/doc/overview/vector_invar.rst @@ -6,7 +6,7 @@ eq :eq:`horiz-mtm` and :eq:`vert-mtm` in the (so-called) ‘vector invariant’ .. math:: \frac{D\vec{\mathbf{v}}}{Dt}=\frac{\partial \vec{\mathbf{v}}}{\partial t} - +\left( \nabla \times \vec{\mathbf{v}}\right) \times \vec{\mathbf{v}}+\nabla + +\left( \nabla \times \vec{\mathbf{v}}\right) \times \vec{\mathbf{v}} + \nabla \left[ \frac{1}{2}(\vec{\mathbf{v}}\cdot \vec{\mathbf{v}})\right] :label: vi-identity diff --git a/doc/phys_pkgs/bulk_force.rst b/doc/phys_pkgs/bulk_force.rst index 4b058d16b0..cf85dedd2a 100644 --- a/doc/phys_pkgs/bulk_force.rst +++ b/doc/phys_pkgs/bulk_force.rst @@ -101,68 +101,68 @@ calculated from the zonal and meridional components. We calculate the virtual temperature: -.. math:: T_o = T_{air} (1+\gamma q_{air}) +.. math:: T_o = T_{\rm air} (1 + \gamma q_{\rm air}), -where :math:`T_{air}` is the air temperature at :math:`h_T`, -:math:`q_{air}` is humidity at :math:`h_q` and :math:`\gamma` is a +where :math:`T_{\rm air}` is the air temperature at :math:`h_T`, +:math:`q_{\rm air}` is humidity at :math:`h_q` and :math:`\gamma` is a constant. The saturated vapor pressure is calculate (QQ ref): -.. math:: q_{sat} = \frac{a}{p_o} e^{L (b-\frac{c}{T_{srf}})} +.. math:: q_{\rm sat} = \frac{a}{p_o} \exp{\left[ L \left(b-\frac{c}{T_{\rm srf}}\right)\right]}, -where :math:`a,b,c` are constants, :math:`T_{srf}` is surface +where :math:`a,b,c` are constants, :math:`T_{\rm srf}` is surface temperature and :math:`p_o` is the surface pressure. The two values crucial for the bulk formula calculations are the difference between air at sea surface and sea surface temperature: -.. math:: \Delta T = T_{air} - T_{srf} +\alpha h_T +.. math:: \Delta T = T_{\rm air} - T_{\rm srf} +\alpha h_T, where :math:`\alpha` is adiabatic lapse rate and :math:`h_T` is the height where the air temperature was taken; and the difference between the air humidity and the saturated humidity -.. math:: \Delta q = q_{air} - q_{sat}. +.. math:: \Delta q = q_{\rm air} - q_{\rm sat}. We then calculate the turbulent exchange coefficients following Bryan et al (1996) and the numerical scheme of Hunke and Lipscombe (1998). We estimate initial values for the exchange coefficients, :math:`c_u`, :math:`c_T` and :math:`c_q` as -.. math:: \frac{\kappa}{ln(z_{ref}/z_{rou})} +.. math:: \frac{\kappa}{\ln\left(z_{\rm ref}/z_{\rm rou}\right)}, -where :math:`\kappa` is the Von Karman constant, :math:`z_{ref}` is a -reference height and :math:`z_{rou}` is a roughness length scale which +where :math:`\kappa` is the Von Karman constant, :math:`z_{\rm ref}` is a +reference height and :math:`z_{\rm rou}` is a roughness length scale which could be a function of type of surface, but is here set as a constant. Turbulent scales are: .. math:: \begin{aligned} - u^* & = & c_u u_s \nonumber\\ - T^* & = & c_T \Delta T \nonumber\\ - q^* & = & c_q \Delta q \nonumber\end{aligned} + u^* & = c_u u_s \nonumber\\ + T^* & = c_T \Delta T \nonumber\\ + q^* & = c_q \Delta q \nonumber + \end{aligned} We find the “integrated flux profile” for momentum and stability if -there are stable QQ conditions (:math:`\Upsilon>0`) : +there are stable QQ conditions (:math:`\Upsilon>0`): -.. math:: \psi_m = \psi_s = -5 \Upsilon +.. math:: \psi_m = \psi_s = -5 \Upsilon, and for unstable QQ conditions (:math:`\Upsilon<0`): .. math:: \begin{aligned} - \psi_m & = & 2 ln(0.5(1+\chi)) + ln(0.5(1+\chi^2)) - 2 \tan^{-1} \chi + \pi/2 + \psi_m & = 2 \ln\left[\frac1{2}(1+\chi)\right] + \ln\left[\frac1{2}(1+\chi^2)\right] - 2 \tan^{-1} \chi + \pi/2 \nonumber \\ - \psi_s & = & 2 ln(0.5(1+\chi^2)) \nonumber\end{aligned} + \psi_s & = 2 \ln\left[\frac1{2}(1+\chi^2)\right] \nonumber\end{aligned} where .. math:: - - \Upsilon = \frac{\kappa g z_{ref}}{u^{*2}} (\frac{T^*}{T_o} + + \Upsilon = \frac{\kappa g z_{\rm ref}}{u^{*2}} (\frac{T^*}{T_o} + \frac{q^*}{1/\gamma + q_a}) and :math:`\chi=(1-16\Upsilon)^{1/2}`. @@ -172,25 +172,25 @@ The coefficients are updated through 5 iterations as: .. math:: \begin{aligned} - c_u & = & \frac {\hat{c_u}}{1+\hat{c_u}(\lambda - \psi_m)/\kappa} \nonumber \\ - c_T & = & \frac {\hat{c_T}}{1+\hat{c_T}(\lambda - \psi_s)/\kappa} \nonumber \\ - c_q & = & c'_T\end{aligned} + c_u & = \frac {\hat{c_u}}{1+\hat{c_u}(\lambda - \psi_m)/\kappa} \nonumber \\ + c_T & = \frac {\hat{c_T}}{1+\hat{c_T}(\lambda - \psi_s)/\kappa} \nonumber \\ + c_q & = c'_T\end{aligned} -where :math:`\lambda =ln(h_T/z_{ref})`. +where :math:`\lambda = \ln\left(h_T/z_{\rm ref}\right)`. We can then find the bulk formula heat fluxes: Sensible heat flux: -.. math:: Q_s=\rho_{air} c_{p_{air}} u_s c_u c_T \Delta T +.. math:: Q_{\rm sh} = \rho_{\rm air} c_{p_{\rm air}} u_s c_u c_T \Delta T Latent heat flux: -.. math:: Q_l=\rho_{air} L u_s c_u c_q \Delta q +.. math:: Q_{\rm lh} = \rho_{\rm air} L u_s c_u c_q \Delta q Up long wave radiation -.. math:: Q_{lw}^{up}=\epsilon \sigma T_{srf}^4 +.. math:: Q_{\rm lw \uparrow}=\epsilon \sigma T_{\rm srf}^4 where :math:`\epsilon` is emissivity (which can be different for open ocean, ice and snow), :math:`\sigma` is Stefan-Boltzman constant. @@ -201,12 +201,12 @@ to surface temperature .. math:: \begin{aligned} - \frac{dQ_s}{d_T} & = & \rho_{air} c_{p_{air}} u_s c_u c_T \nonumber \\ - \frac{dQ_l}{d_T} & = & \frac{\rho_{air} L^2 u_s c_u c_q c}{T_{srf}^2} \nonumber \\ - \frac{dQ_{]lw}^{up}}{d_T} & = & 4 \epsilon \sigma t_{srf}^3 \nonumber\end{aligned} + \frac{dQ_{\rm sh}}{d_T} & = \rho_{\rm air} c_{p_{\rm air}} u_s c_u c_T, \nonumber \\ + \frac{dQ_{\rm lh}}{d_T} & = \frac{\rho_{\rm air} L^2 u_s c_u c_q c}{T_{\rm srf}^2}, \nonumber \\ + \frac{dQ_{\rm lw \uparrow}}{d_T} & = 4 \epsilon \sigma T_{\rm srf}^3, \nonumber + \end{aligned} -And total derivative :math:`\frac{dQ_o}{dT}= \frac{dQ_s}{dT} + -\frac{dQ_l}{dT} + \frac{dQ_{lw}^{up}}{dT}`. +and total derivative :math:`dQ_o/dT = dQ_{\rm sh}/dT + dQ_{\rm lh}/dT + dQ_{\rm lw \uparrow}/dT`. If we do not read in the wind stress, it is calculated here. diff --git a/doc/phys_pkgs/dic.rst b/doc/phys_pkgs/dic.rst index 45ab4e5e11..a2f57a93dd 100644 --- a/doc/phys_pkgs/dic.rst +++ b/doc/phys_pkgs/dic.rst @@ -20,7 +20,7 @@ There is also a representation of the carbonate flux handled as in the OCMIP experiments. The air-sea exchange on CO\ :math:`_2` is affected by temperature, salinity and the pH of the surface waters. The pH is determined following the method of Follows et al. For more details of -the equations see section [sec:eg-biogeochem\_tutorial]. +the equations see :numref:`sub_global_oce_biogeo`. Key subroutines and parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -33,7 +33,7 @@ Key subroutines and parameters the biotic part of the calculations are initialized in *dic\_biotic\_param* and are stored in *DIC\_BIOTIC.h*. The first guess of pH is calculated in *dic\_surfforcing\_init.F*. -| +| | **LOADING FIELDS** | The air-sea exchange of :math:`CO_2` and :math:`O_2` need wind, atmospheric pressure (although the current version has this hardwired @@ -41,7 +41,7 @@ Key subroutines and parameters fields. These fields are read in in *dic\_fields\_load.F*. These fields are initialized to zero in *dic\_ini\_forcing.F*. The fields for interpolating are in common block in *DIC\_LOAD.h*. -| +| | **FORCING** | The tracers are advected-diffused in *ptracers\_integrate.F*. The updated tracers are passed to *dic\_biotic\_forcing.F* where the @@ -75,7 +75,7 @@ Key subroutines and parameters The older scheme is done following OCMIP protocols (see more in Dutkiewicz et al 2005), in the subroutines *dic\_surfforcing.F* and *alk\_surfforcing.F*. To use this you need to set in - GCHEM\_OPTIONS.h: #define ALLOW\_OLD\_VIRTUALFLUX. But this can also + GCHEM\_OPTIONS.h: #define ALLOW\_OLD\_VIRTUALFLUX. But this can also be done by the ptracers pkg if this is undefined. You will then need to set the concentration of the tracer in rainwater and potentially a reference tracer value in data.ptracer @@ -85,12 +85,12 @@ Key subroutines and parameters | Iron chemistry (the amount of free iron) is taken care of in *fe\_chem.F*. -| +| | **DIAGNOSTICS** | Averages of air-sea exchanges, biological productivity, carbonate activity and pH are calculated. These are initialized to zero in *dic\_biotic\_init* and are stored in common block in *DIC\_BIOTIC.h*. -| +| | **COMPILE TIME FLAGS** | These are set in GCHEM\_OPTIONS.h: | DIC\_BIOTIC: needs to be set for dic to work properly (should be fixed @@ -118,7 +118,7 @@ Key subroutines and parameters become negative. (This is advicable). ALLOW\_DIC\_COST: was used for calculating cost function (but hasn’t been updated or maintained, so not sure if it works still) -| +| Do’s and Don’ts ~~~~~~~~~~~~~~~ @@ -135,9 +135,9 @@ Reference Material a Two-Dimensional Atmospheric Model: Uses in Climate Change Studies, Report 122, Joint Program of the Science and Policy of Global Change, M.I.T., Cambridge, MA. -| Follows, M., T. Ito and S. Dutkiewicz, 2006: A Compact and Accurate - Carbonate Chemistry Solver for Ocean Biogeochemistry Models. *Ocean - Modeling*, 12, 290-301. +| Follows, M., T. Ito and S. Dutkiewicz, 2006: On the solution of the carbonate + chemistry system in ocean biogeochemistry models, *Ocean Modeling*, 12, + 290-301, doi:10.1016/j.ocemod.2005.05.004 | Friis, K., R. Najjar, M.J. Follows, and S. Dutkiewicz, 2006: Possible overestimation of shallow-depth calcium carbonate dissolution in the ocean, *Global Biogeochemical Cycles*, 20, GB4019, @@ -147,4 +147,4 @@ Experiments and tutorials that use dic ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Global Ocean tutorial, in tutorial\_global\_oce\_biogeo verification - directory, described in section [sec:eg-biogeochem\_tutorial] + directory, described in :numref:`sub_global_oce_biogeo`. diff --git a/doc/phys_pkgs/exf.rst b/doc/phys_pkgs/exf.rst index 98d72eac20..77e39b14d8 100644 --- a/doc/phys_pkgs/exf.rst +++ b/doc/phys_pkgs/exf.rst @@ -3,7 +3,6 @@ EXF: The external forcing package --------------------------------- - Authors: Patrick Heimbach and Dimitris Menemenlis .. _ssub_phys_pkg_exf_intro: @@ -56,7 +55,6 @@ preprocessor flags. These options are set in either ``EXF_OPTIONS.h`` or in ``ECCO_CPPOPTIONS.h``. :numref:`tab_phys_pkg_exf_cpp_options` summarizes these options. - .. table:: EXF CPP options :name: tab_phys_pkg_exf_cpp_options @@ -69,8 +67,14 @@ options. +----------------------------------+-----------------------------------------------------------+ | :code:`ALLOW_ATM_WIND` | compute wind stress from wind speed input | +----------------------------------+-----------------------------------------------------------+ - | :code:`ALLOW_BULKFORMULAE` | is used if :code:`ALLOW_ATM_TEMP` or | - | | :code:`ALLOW_ATM_WIND` is enabled | + | :code:`ALLOW_BULKFORMULAE` | use bulk formulae following Large and Pond (1981, 1982); | + | | requires to define :code:`ALLOW_ATM_TEMP`. | + +----------------------------------+-----------------------------------------------------------+ + | :code:`ALLOW_BULK_LARGEYEAGER04` | use modifications of Large and Pond (1981, 1982), as | + | | described in Large and Yeager (2004) NCAR/TN-460+STR. | + +----------------------------------+-----------------------------------------------------------+ + | :code:`ALLOW_DRAG_LARGEYEAGER09` | compute drag cofficient following Large and Yeager | + | | (2009), Climate Dynamics, 33, pages 341-364 | +----------------------------------+-----------------------------------------------------------+ | :code:`EXF_READ_EVAP` | read evaporation instead of computing it | +----------------------------------+-----------------------------------------------------------+ @@ -169,11 +173,23 @@ General flags and parameters +-------------------------+------------------+-------------------------------------------------------------------------------+ | umin | 0.5 | minimum absolute wind speed for computing Cd | +-------------------------+------------------+-------------------------------------------------------------------------------+ - | atmrho | 1.2 | mean atmospheric density [kg/m\^3] | + | atmrho | 1.2 | mean atmospheric density [kg/m\ :sup:`3`] | +-------------------------+------------------+-------------------------------------------------------------------------------+ | atmcp | 1005.0 | mean atmospheric specific heat [J/kg/K] | +-------------------------+------------------+-------------------------------------------------------------------------------+ - | cdrag_[n] | ??? | n = 1,2,3; parameters for drag coeff. function | + | cdrag_[n] | | n = 1,2,3,8; parameters for drag coeff. function | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | cdrag_1 | 0.0027000 | [m/s] | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | cdrag_2 | 0.0001420 | [-] | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | cdrag_3 | 0.0000764 | [s/m] | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | cdrag_8 | -3.14807e-13 | [(s/m)\ :sup:`6`] (only used with Large and Yeager, 2009) | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | cdragMax | 0.00234 | maximum drag [-] (only Large and Yeager, 2009) for wind > umax | + +-------------------------+------------------+-------------------------------------------------------------------------------+ + | umax | 33. | threshold above which cdragMax applies [m/s] (only Large and Yeager, 2009) | +-------------------------+------------------+-------------------------------------------------------------------------------+ | cstanton_[n] | ??? | n = 1,2; parameters for Stanton number function | +-------------------------+------------------+-------------------------------------------------------------------------------+ @@ -205,11 +221,6 @@ General flags and parameters +-------------------------+------------------+-------------------------------------------------------------------------------+ | exf_iprec | 32 | precision of input fields (32-bit or 64-bit) | +-------------------------+------------------+-------------------------------------------------------------------------------+ - | exf_yftype | 'RL' | precision of arrays ('RL' vs. 'RS') | - +-------------------------+------------------+-------------------------------------------------------------------------------+ - - - Field attributes ################ @@ -229,7 +240,6 @@ attribute, e.g. for attribute ``period`` this yields ``uwindperiod``: \text{e.g.} & \text{uwind} & \& & \text{period} & \longrightarrow & \text{uwindperiod} \\ \end{array}\end{aligned} - .. table:: EXF runtime attributes Note there is one exception for the default of ``atempconst`` = celsius2K = 273.16 :name: tab_phys_pkg_exf_runtime_attributes @@ -242,14 +252,14 @@ attribute, e.g. for attribute ``period`` this yields ``uwindperiod``: | *field* ``const`` | 0.0 | constant that will be used if no file is read | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ | *field* ``startdate1`` | 0.0 | format: ``YYYYMMDD``; start year (YYYY), month (MM), day (YY) | - +-----------------------------+---------------------------+------------------------------------------------------------------------------+ | | | of field to determine record number | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ | *field* ``startdate2`` | 0.0 | format: ``HHMMSS``; start hour (HH), minute (MM), second(SS) | - +-----------------------------+---------------------------+------------------------------------------------------------------------------+ | | | of field to determine record number | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ - | *field* ``period`` | 0.0 | interval in seconds between two records | + | *field* ``period`` | 0.0 | interval in seconds between two records; the special value -12 means | + | | | 12 repeating (calendar) monthly records; the special value -1 means | + | | | non-repeating (calendar) monthly records (see below) | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ | ``exf_inscal_``\ *field* | | optional rescaling of input fields to comply with EXF units | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ @@ -270,7 +280,11 @@ attribute, e.g. for attribute ``period`` this yields ``uwindperiod``: | *field* ``_nlat`` | :code:`Ny` | number of grid points in longitude of input | +-----------------------------+---------------------------+------------------------------------------------------------------------------+ - +For *field*\ ``period``\ =-1, the records in the forcing file represent +averages over calendar months. If ``useExfYearlyFields = .TRUE.``, each yearly +file must have 12 records, starting with January. For ``useExfYearlyFields = +.FALSE.``, a single file starting with the month given by +*field*\ ``startdate1`` is required. Example configuration ##################### @@ -306,7 +320,6 @@ Interpolation on-the-fly is used (in the present case trivially on the same grid, but included nevertheless for illustration), and input field grid starting coordinates and increments are supplied as well. - .. _ssub_phys_pkg_exf_bulk_formulae: EXF bulk formulae @@ -316,7 +329,6 @@ T.B.D. (cross-ref. to parameter list table) .. _ssub_phys_pkg_exf_inputs_units: - EXF input fields and units ++++++++++++++++++++++++++ @@ -329,7 +341,6 @@ Output fields which EXF provides to the MITgcm are fields **fu**, :: - c---------------------------------------------------------------------- c | c field :: Description @@ -454,7 +465,6 @@ Output fields which EXF provides to the MITgcm are fields **fu**, c | Input field c---------------------------------------------------------------------- - .. _ssub_phys_pkg_exf_subroutines: Key subroutines @@ -538,7 +548,6 @@ Interpolation: ``exf_interp.F`` Header routines - .. _ssub_phys_pkg_exf_diagnostics: EXF diagnostics @@ -548,7 +557,6 @@ Diagnostics output is available via the diagnostics package (see :numref:`sub_outp_pkg_diagnostics`). Available output fields are summarized below. - :: ---------+----+----+----------------+----------------- @@ -574,11 +582,9 @@ summarized below. EXFempmr| 1 | SM | m/s | net upward freshwater flux, > 0 increases salinity EXFpress| 1 | SM | N/m^2 | atmospheric pressure field - References ++++++++++ - Experiments and tutorials that use exf ++++++++++++++++++++++++++++++++++++++ diff --git a/doc/phys_pkgs/fizhi.rst b/doc/phys_pkgs/fizhi.rst index 5241819011..7a5a6ef24d 100644 --- a/doc/phys_pkgs/fizhi.rst +++ b/doc/phys_pkgs/fizhi.rst @@ -45,12 +45,12 @@ mass flux, is a linear function of height, expressed as: .. math:: - \pp{\eta(z)}{z} = \lambda \hspace{0.4cm}or\hspace{0.4cm} \pp{\eta(P^{\kappa})}{P^{\kappa}} = - -\frac{c_p}{g}\theta\lambda + \pp{\eta(z)}{z} = \lambda \hspace{0.4cm} \text{or} \hspace{0.4cm} \pp{\eta(P^{\kappa})}{P^{\kappa}} = + -\frac{c_p}{g} \theta \lambda where we have used the hydrostatic equation written in the form: -.. math:: \pp{z}{P^{\kappa}} = -\frac{c_p}{g}\theta +.. math:: \pp{z}{P^{\kappa}} = -\frac{c_p}{g} \theta The entrainment parameter, :math:`\lambda`, characterizes a particular subensemble based on its detrainment level, and is obtained by assuming @@ -59,7 +59,7 @@ level at which the moist static energy of the cloud, :math:`h_c`, is equal to the saturation moist static energy of the environment, :math:`h^*`. Following :cite:`moorsz:92`, :math:`\lambda` may be written as -.. math:: \lambda = \frac{h_B - h^*_D}{ \frac{c_p}{g} \int_{P_D}^{P_B}\theta(h^*_D-h)dP^{\kappa}}, +.. math:: \lambda = \frac{h_B - h^*_D}{\frac{c_p}{g} \int_{P_D}^{P_B}\theta(h^*_D-h)dP^{\kappa}} where the subscript :math:`B` refers to cloud base, and the subscript :math:`D` refers to the detrainment level. @@ -85,17 +85,17 @@ balance the rate of change of :math:`A` *due to the generation by the large scale*. This is the quasi-equilibrium assumption, and results in an expression for :math:`m_B`: -.. math:: m_B = \frac{- \left. \frac{dA}{dt} \right|_{ls}}{K} +.. math:: m_B = \dfrac{- \left. \frac{dA}{dt} \right|_{\rm ls}}{K} where :math:`K` is the cloud kernel, defined as the rate of change of the cloud work function per unit cloud base mass flux, and is currently obtained by analytically differentiating the expression for :math:`A` in time. The rate of change of :math:`A` due to the generation by the large scale can be written as the difference between the current -:math:`A(t+\Delta t)` and its equillibrated value after the previous +:math:`A(t+\Delta t)` and its equilibrated value after the previous convective time step :math:`A(t)`, divided by the time step. -:math:`A(t)` is approximated as some critical :math:`A_{crit}`, computed -by Lord (1982) from :math:`in situ` observations. +:math:`A(t)` is approximated as some critical :math:`A_{\rm crit}`, computed +by Lord (1982) from in situ observations. The predicted convective mass fluxes are used to solve grid-scale temperature and moisture budget equations to determine the impact of @@ -107,7 +107,7 @@ and detrainment): and -.. math:: \left.{\pp{q}{t}}\right|_{c} = \alpha \frac{ m_B}{L} \eta (\pp{h}{p}-\pp{s}{p}) +.. math:: \left.{\pp{q}{t}}\right|_{c} = \alpha \frac{m_B}{L} \eta \left( \pp{h}{p}-\pp{s}{p} \right) where :math:`\theta = \frac{T}{P^{\kappa}}`, :math:`P = (p/p_0)`, and :math:`\alpha` is the relaxation parameter. @@ -116,7 +116,7 @@ As an approximation to a full interaction between the different allowable subensembles, many clouds are simulated frequently, each modifying the large scale environment some fraction :math:`\alpha` of the total adjustment. The parameterization thereby “relaxes” the large -scale environment towards equillibrium. +scale environment towards equilibrium. In addition to the RAS cumulus convection scheme, the fizhi package employs a Kessler-type scheme for the re-evaporation of falling rain :cite:`sudm:88`, @@ -140,10 +140,12 @@ convection, from just above cloud base to 10 mb. Supersaturation or large-scale precipitation is initiated in the fizhi package whenever the relative humidity in any grid-box exceeds a -critical value, currently 100 %. The large-scale precipitation +critical value, currently 100%. The large-scale precipitation re-evaporates during descent to partially saturate lower layers in a process identical to the re-evaporation of convective rain. +.. _fizhi_clouds: + Cloud Formation ############### @@ -153,35 +155,37 @@ the cumulus and large-scale parameterizations. Convective cloud fractions produced by RAS are proportional to the detrained liquid water amount given by -.. math:: F_{RAS} = \min\left[ \frac{l_{RAS}}{l_c}, 1.0 \right] +.. math:: F_{\rm RAS} = \min\left[ \frac{l_{\rm RAS}}{l_c}, 1 \right] where :math:`l_c` is an assigned critical value equal to :math:`1.25` g/kg. A memory is associated with convective clouds defined by: -.. math:: F_{RAS}^n = \min\left[ F_{RAS} + (1-\frac{\Delta t_{RAS}}{\tau})F_{RAS}^{n-1}, 1.0 \right] +.. math:: F_{\rm RAS}^n = \min\left[ F_{\rm RAS} + \left(1-\frac{\Delta t_{\rm RAS}}{\tau}\right) F_{\rm RAS}^{n-1} \, , \, 1 \right], -where :math:`F_{RAS}` is the instantanious cloud fraction and -:math:`F_{RAS}^{n-1}` is the cloud fraction from the previous RAS +where :math:`F_{\rm RAS}` is the instantaneous cloud fraction and +:math:`F_{\rm RAS}^{n-1}` is the cloud fraction from the previous RAS timestep. The memory coefficient is computed using a RAS cloud timescale, :math:`\tau`, equal to 1 hour. RAS cloud fractions are -cleared when they fall below 5 %. +cleared when they fall below 5%. Large-scale cloudiness is defined, following Slingo and Ritter (1985), as a function of relative humidity: -.. math:: F_{LS} = \min\left[ { \left( \frac{RH-RH_c}{1-RH_c} \right) }^2, 1.0 \right] +.. math:: F_{\rm ls} = \min\left[ { \left( \frac{\textrm{RH}-\textrm{RH}_c}{1-\textrm{RH}_c} \right) }^2 \, , \, 1 \right] where -RH\ :sub:`c` & = & 1-s(1-s)(2-+2 s)r -s & = & p/p\ :sub:`surf` -r & = & ( ) -RH\ :sub:`min` & = & 0.75 -& = & 0.573285 . +.. math:: + \begin{aligned} + \textrm{RH}_c & = 1-s(1-s)(2-\sqrt{3}+2\sqrt{3}s)r \\ + s & = p/p_{\rm surf} \\ + r & = \left(\frac{1.0-\textrm{RH}_{\rm min}}{\alpha}\right) \\ + \textrm{RH}_{\rm min} & = 0.75 \\ + \alpha & = 0.573285 \end{aligned} These cloud fractions are suppressed, however, in regions where the convective sub-cloud layer is conditionally unstable. The functional -form of :math:`RH_c` is shown in :numref:`rhcrit` +form of :math:`\textrm{RH}_c` is shown in :numref:`rhcrit` @@ -198,7 +202,7 @@ form of :math:`RH_c` is shown in :numref:`rhcrit` The total cloud fraction in a grid box is determined by the larger of the two cloud fractions: -.. math:: F_{CLD} = \max \left[ F_{RAS},F_{LS} \right] . +.. math:: F_{\rm cld} = \max \left[ F_{\rm RAS} \, , \, F_{\rm ls} \right] Finally, cloud fractions are time-averaged between calls to the radiation packages. @@ -233,8 +237,8 @@ The time tendency for Longwave Radiation is updated every 3 hours. The time tendency for Shortwave Radiation is updated once every three hours assuming a normalized incident solar radiation, and subsequently modified at every model time step by the true incident radiation. The -solar constant value used in the package is equal to 1365 :math:`W/m^2` -and a :math:`CO_2` mixing ratio of 330 ppm. For the ozone mixing ratio, +solar constant value used in the package is equal to 1365 W m\ :sup:`--2` +and a CO\ :sub:`2` mixing ratio of 330 ppm. For the ozone mixing ratio, monthly mean zonally averaged climatological values specified as a function of latitude and height :cite:`rosen:87` are linearly interpolated to the current time. @@ -265,7 +269,7 @@ studies but also for studies on the photolysis in the upper atmosphere and the photosynthesis in the biosphere. -.. table:: UV and Visible Spectral Regions used in shortwave radiation package. +.. table:: UV and visible spectral regions used in shortwave radiation package. :name: tab_phys_pkg_fizhi_solar1 +----------+--------+-----------------------+ @@ -295,7 +299,7 @@ and the photosynthesis in the biosphere. -.. table:: Infrared Spectral Regions used in shortwave radiation package. +.. table:: Infrared spectral regions used in shortwave radiation package. :name: tab_phys_pkg_fizhi_solar2 +--------+---------------------------------+-----------------------+ @@ -336,12 +340,13 @@ Longwave Radiation ################## The longwave radiation package used in the fizhi package is thoroughly -described by . As described in that document, IR fluxes are computed due -to absorption by water vapor, carbon dioxide, and ozone. The spectral -bands together with their absorbers and parameterization methods, -configured for the fizhi package, are shown in :numref:`tab_phys_pkg_fizhi_longwave`. +described by :cite:`chsz:94`. As described in that document, IR fluxes are +computed due to absorption by water vapor, carbon dioxide, and ozone. The +spectral bands together with their absorbers and parameterization methods, +configured for the fizhi package, are shown in +:numref:`tab_phys_pkg_fizhi_longwave`. -.. table:: IR Spectral Bands, Absorbers, and Parameterization Method (from :cite:`chsz:94`) +.. table:: IR spectral bands, absorbers, and parameterization method :name: tab_phys_pkg_fizhi_longwave +----------------+------------------------------------+------------------------------+----------+ @@ -349,33 +354,33 @@ configured for the fizhi package, are shown in :numref:`tab_phys_pkg_fizhi_longw +----------------+------------------------------------+------------------------------+----------+ | Band | Spectral Range (cm\ :sup:`--1`) | Absorber | Method | +================+====================================+==============================+==========+ - | 1 | 0-340 | H\ :math:`_2`\ O line | T | + | 1 | 0-340 | H\ :sub:`2`\ O line | T | +----------------+------------------------------------+------------------------------+----------+ - | 2 | 340-540 | H\ :math:`_2`\ O line | T | + | 2 | 340-540 | H\ :sub:`2`\ O line | T | +----------------+------------------------------------+------------------------------+----------+ - | 3a | 540-620 | H\ :math:`_2`\ O line | K | + | 3a | 540-620 | H\ :sub:`2`\ O line | K | +----------------+------------------------------------+------------------------------+----------+ - | 3b | 620-720 | H\ :math:`_2`\ O continuum | S | + | 3b | 620-720 | H\ :sub:`2`\ O continuum | S | +----------------+------------------------------------+------------------------------+----------+ - | 3b | 720-800 | CO\ :math:`_2` | T | + | 3b | 720-800 | CO\ :sub:`2` | T | +----------------+------------------------------------+------------------------------+----------+ - | 4 | 800-980 | H\ :math:`_2`\ O line | K | + | 4 | 800-980 | H\ :sub:`2`\ O line | K | +----------------+------------------------------------+------------------------------+----------+ - | | | H\ :math:`_2`\ O continuum | S | + | | | H\ :sub:`2`\ O continuum | S | +----------------+------------------------------------+------------------------------+----------+ - | | | H\ :math:`_2`\ O line | K | + | | | H\ :sub:`2`\ O line | K | +----------------+------------------------------------+------------------------------+----------+ - | 5 | 980-1100 | H\ :math:`_2`\ O continuum | S | + | 5 | 980-1100 | H\ :sub:`2`\ O continuum | S | +----------------+------------------------------------+------------------------------+----------+ - | | | O\ :math:`_3` | T | + | | | O\ :sub:`3` | T | +----------------+------------------------------------+------------------------------+----------+ - | 6 | 1100-1380 | H\ :math:`_2`\ O line | K | + | 6 | 1100-1380 | H\ :sub:`2`\ O line | K | +----------------+------------------------------------+------------------------------+----------+ - | | | H\ :math:`_2`\ O continuum | S | + | | | H\ :sub:`2`\ O continuum | S | +----------------+------------------------------------+------------------------------+----------+ - | 7 | 1380-1900 | H\ :math:`_2`\ O line | T | + | 7 | 1380-1900 | H\ :sub:`2`\ O line | T | +----------------+------------------------------------+------------------------------+----------+ - | 8 | 1900-3000 | H\ :math:`_2`\ O line | K | + | 8 | 1900-3000 | H\ :sub:`2`\ O line | K | +----------------+------------------------------------+------------------------------+----------+ | K: :math:`k`-distribution method with linear pressure scaling | +----------------+------------------------------------+------------------------------+----------+ @@ -387,13 +392,13 @@ configured for the fizhi package, are shown in :numref:`tab_phys_pkg_fizhi_longw The longwave radiation package accurately computes cooling rates for the middle and lower atmosphere from 0.01 mb to the surface. Errors are -:math:`<` 0.4 C day\ :math:`^{-1}` in cooling rates and :math:`<` 1% in +< 0.4 C day\ :sup:`--1` in cooling rates and < 1% in fluxes. From Chou and Suarez, it is estimated that the total effect of neglecting all minor absorption bands and the effects of minor infrared -absorbers such as nitrous oxide (N:math:`_2`\ O), methane -(CH:math:`_4`), and the chlorofluorocarbons (CFCs), is an underestimate -of :math:`\approx` 5 W/m\ :math:`^2` in the downward flux at the surface -and an overestimate of :math:`\approx` 3 W/m\ :math:`^2` in the upward +absorbers such as nitrous oxide (N\ :sub:`2`\ O), methane +(CH\ :sub:`4`), and the chlorofluorocarbons (CFCs), is an underestimate +of :math:`\approx 5` W m\ :sup:`--2` in the downward flux at the surface +and an overestimate of :math:`\approx 3` W m\ :sup:`--2` in the upward flux at the top of the atmosphere. Similar to the procedure used in the shortwave radiation package, clouds @@ -403,14 +408,14 @@ clear line-of-site probability :math:`(P)` between any two levels, overlapped cloud groups, is simply the product of the probabilities within each group: -.. math:: P_{net} = P_{low} \times P_{mid} \times P_{hi} . +.. math:: P_{\rm net} = P_{\rm low} \times P_{\rm mid} \times P_{\rm hi} Since all clouds within a group are assumed maximally overlapped, the clear line-of-site probability within a group is given by: -.. math:: P_{group} = 1 - F_{max} , +.. math:: P_{\rm group} = 1 - F_{\rm max} -where :math:`F_{max}` is the maximum cloud fraction encountered between +where :math:`F_{\rm max}` is the maximum cloud fraction encountered between :math:`p_1` and :math:`p_2` within that group. For groups and/or levels outside the range of :math:`p_1` and :math:`p_2`, a clear line-of-site probability equal to 1 is assigned. @@ -427,35 +432,35 @@ super-saturation. Two values are used corresponding to cloud ice particles and water droplets. The range of optical thickness for these clouds is given as -.. math:: 0.0002 \le \tau_{ice} (mb^{-1}) \le 0.002 \quad\mbox{for}\quad 0 \le \ell \le 2 \quad\mbox{mg/kg} , +.. math:: 0.0002 \le \tau_{\rm ice} (\text{mb}^{-1}) \le 0.002 \quad\mbox{for}\quad 0 \le \ell \le 2 \; \text{mg/kg} -.. math:: 0.02 \le \tau_{h_2o} (mb^{-1}) \le 0.2 \quad\mbox{for}\quad 0 \le \ell \le 10 \quad\mbox{mg/kg} . +.. math:: 0.02 \le \tau_{\rm H_2O} (\text{mb}^{-1}) \le 0.2 \quad\mbox{for}\quad 0 \le \ell \le 10 \; \text{mg/kg} The partitioning, :math:`\alpha`, between ice particles and water droplets is achieved through a linear scaling in temperature: -.. math:: 0 \le \alpha \le 1 \quad\mbox{for}\quad 233.15 \le T \le 253.15 . +.. math:: 0 \le \alpha \le 1 \quad\mbox{for}\quad 233.15 \le T \le 253.15 The resulting optical depth associated with large-scale cloudiness is given as -.. math:: \tau_{LS} = \alpha \tau_{h_2o} + (1-\alpha)\tau_{ice} . +.. math:: \tau_{\rm ls} = \alpha \tau_{\rm H_2O} + (1-\alpha) \tau_{\rm ice} The optical thickness associated with sub-grid scale convective clouds produced by RAS is given as -.. math:: \tau_{RAS} = 0.16 \quad mb^{-1} . +.. math:: \tau_{\rm RAS} = 0.16 \; \text{mb}^{-1} The total optical depth in a given model layer is computed as a weighted average between the large-scale and sub-grid scale optical depths, normalized by the total cloud fraction in the layer: -.. math:: \tau = \left( \frac{F_{RAS} \,\,\, \tau_{RAS} + F_{LS} \,\,\, \tau_{LS} }{ F_{RAS}+F_{LS} } \right) \Delta p, +.. math:: \tau = \left( \frac{F_{\rm RAS} \,\,\, \tau_{\rm RAS} + F_{\rm ls} \,\,\, \tau_{\rm ls} }{ F_{\rm RAS}+F_{\rm ls} } \right) \Delta p -where :math:`F_{RAS}` and :math:`F_{LS}` are the time-averaged cloud +where :math:`F_{\rm RAS}` and :math:`F_{\rm ls}` are the time-averaged cloud fractions associated with RAS and large-scale processes described in -Section [sec:fizhi:clouds]. The optical thickness for the longwave -radiative feedback is assumed to be 75 :math:`\%` of these values. +:numref:`fizhi_clouds`. The optical thickness for the longwave +radiative feedback is assumed to be 75% of these values. The entire Moist Convective Processes Module is called with a frequency of 10 minutes. The cloud fraction values are time-averaged over the @@ -474,25 +479,17 @@ minutes. The tendencies of atmospheric state variables due to turbulent diffusion are calculated using the diffusion equations: .. math:: - - {\pp{u}{t}}_{turb} = {\pp{}{z} }{(- \overline{u^{\prime}w^{\prime}})} - = {\pp{}{z} }{(K_m \pp{u}{z})} - -.. math:: - - {\pp{v}{t}}_{turb} = {\pp{}{z} }{(- \overline{v^{\prime}w^{\prime}})} - = {\pp{}{z} }{(K_m \pp{v}{z})} - -.. math:: - - {\pp{T}{t}} = P^{\kappa}{\pp{\theta}{t}}_{turb} = + \begin{aligned} + {\pp{u}{t}}_{\rm turb} &= {\pp{}{z} }{(- \overline{u^{\prime}w^{\prime}})} + = {\pp{}{z} }{\left(K_m \pp{u}{z}\right)} \nonumber \\ + {\pp{v}{t}}_{\rm turb} &= {\pp{}{z} }{(- \overline{v^{\prime}w^{\prime}})} + = {\pp{}{z} }{\left(K_m \pp{v}{z}\right)} \nonumber \\ + {\pp{T}{t}} = P^{\kappa}{\pp{\theta}{t}}_{\rm turb} &= P^{\kappa}{\pp{}{z} }{(- \overline{w^{\prime}\theta^{\prime}})} - = P^{\kappa}{\pp{}{z} }{(K_h \pp{\theta_v}{z})} - -.. math:: - - {\pp{q}{t}}_{turb} = {\pp{}{z} }{(- \overline{w^{\prime}q^{\prime}})} - = {\pp{}{z} }{(K_h \pp{q}{z})} + = P^{\kappa}{\pp{}{z} }{\left(K_h \pp{\theta_v}{z}\right)} \nonumber \\ + {\pp{q}{t}}_{\rm turb} &= {\pp{}{z} }{(- \overline{w^{\prime}q^{\prime}})} + = {\pp{}{z} }{\left(K_h \pp{q}{z}\right)} + \end{aligned} Within the atmosphere, the time evolution of second turbulent moments is explicitly modeled by representing the third moments in terms of the @@ -501,7 +498,7 @@ closure modeling. To simplify and streamline the computation of the second moments, the level 2.5 assumption of Mellor and Yamada (1974) and :cite:`yam:77` is employed, in which only the turbulent kinetic energy (TKE), -.. math:: {\h}{q^2}={\overline{{u^{\prime}}^2}}+{\overline{{v^{\prime}}^2}}+{\overline{{w^{\prime}}^2}}, +.. math:: {\h}{q^2}={\overline{{u^{\prime}}^2}}+{\overline{{v^{\prime}}^2}}+{\overline{{w^{\prime}}^2}} is solved prognostically and the other second moments are solved diagnostically. The prognostic equation for TKE allows the scheme to @@ -511,8 +508,8 @@ computation of the terms linear in :math:`q^2` and is written: .. math:: - {\dd{}{t} ({{\h} q^2})} - { \pp{}{z} ({ \frac{5}{3} {{\lambda}_1} q { \pp {}{z} - ({\h}q^2)} })} = + {\dd{}{t} \left({{\h} q^2}\right)} - { \pp{}{z} \left[{ \frac{5}{3} {{\lambda}_1} q { \pp {}{z} + \left({\h}q^2\right)} }\right]} = {- \overline{{u^{\prime}}{w^{\prime}}} { \pp{U}{z} }} - {\overline{{v^{\prime}}{w^{\prime}}} { \pp{V}{z} }} + {\frac{g}{\Theta_0}{\overline{{w^{\prime}}{{{\theta}_v}^{\prime}}}} - \frac{ q^3}{{\Lambda}_1} } @@ -544,7 +541,7 @@ are expressed as K_h = \left\{ \begin{array}{l@{\quad\mbox{for}\quad}l} q \, \ell \, S_H(G_M,G_H) \, & \mbox{decaying turbulence} - \\ \frac{ q^2 }{ q_e } \, \ell \, S_{H}(G_{M_e},G_{H_e}) \, & \mbox{growing turbulence} \end{array} \right. + \\ \frac{ q^2 }{ q_{\rm eq} } \, \ell \, S_{H}(G_{M_e},G_{H_e}) \, & \mbox{growing turbulence} \end{array} \right. and @@ -552,10 +549,10 @@ and K_m = \left\{ \begin{array}{l@{\quad\mbox{for}\quad}l} q \, \ell \, S_M(G_M,G_H) \, & \mbox{decaying turbulence} - \\ \frac{ q^2 }{ q_e } \, \ell \, S_{M}(G_{M_e},G_{H_e}) \, & \mbox{growing turbulence} \end{array} \right. + \\ \frac{ q^2 }{ q_{\rm eq} } \, \ell \, S_{M}(G_{M_e},G_{H_e}) \, & \mbox{growing turbulence} \end{array} \right. -where the subscript :math:`e` refers to the value under conditions of -local equillibrium (obtained from the Level 2.0 Model), :math:`\ell` is +where the subscript 'eq' refers to the value under conditions of +local equilibrium (obtained from the Level 2.0 Model), :math:`\ell` is the master length scale related to the vertical structure of the atmosphere, and :math:`S_M` and :math:`S_H` are functions of :math:`G_H` and :math:`G_M`, the dimensionless buoyancy and wind shear parameters, @@ -564,12 +561,11 @@ values :math:`G_{H_e}` and :math:`G_{M_e}`, are functions of the Richardson number: .. math:: - - {\bf RI} = \frac{ \frac{g}{\theta_v} \pp{\theta_v}{z} }{ (\pp{u}{z})^2 + (\pp{v}{z})^2 } - = \frac{c_p \pp{\theta_v}{z} \pp{P^ \kappa}{z} }{ (\pp{u}{z})^2 + (\pp{v}{z})^2 } . + \textrm{RI} = \frac{ \frac{g}{\theta_v} \pp{\theta_v}{z} }{ (\pp{u}{z})^2 + (\pp{v}{z})^2 } + = \frac{c_p \pp{\theta_v}{z} \pp{P^ \kappa}{z} }{ (\pp{u}{z})^2 + (\pp{v}{z})^2 } Negative values indicate unstable buoyancy and shear, small positive -values (:math:`<0.2`) indicate dominantly unstable shear, and large +values (<0.2) indicate dominantly unstable shear, and large positive values indicate dominantly stable stratification. Turbulent eddy diffusion coefficients of momentum, heat and moisture in @@ -577,11 +573,11 @@ the surface layer, which corresponds to the lowest GCM level (see *— missing table —*), are calculated using stability-dependant functions based on Monin-Obukhov theory: -.. math:: {K_m} (surface) = C_u \times u_* = C_D W_s +.. math:: {K_m} ({\rm surface}) = C_u \times u_* = C_D W_s and -.. math:: {K_h} (surface) = C_t \times u_* = C_H W_s +.. math:: {K_h} ({\rm surface}) = C_t \times u_* = C_H W_s where :math:`u_*=C_uW_s` is the surface friction velocity, :math:`C_D` is termed the surface drag coefficient, :math:`C_H` the heat transfer @@ -595,7 +591,7 @@ the surface layer similarity functions: where k is the Von Karman constant and :math:`\psi_m` is the surface layer non-dimensional wind shear given by -.. math:: \psi_{m} = {\int_{\zeta_{0}}^{\zeta} \frac{\phi_{m} }{ \zeta} d \zeta} . +.. math:: \psi_{m} = {\int_{\zeta_{0}}^{\zeta} \frac{\phi_{m} }{ \zeta} d \zeta} Here :math:`\zeta` is the non-dimensional stability parameter, and :math:`\phi_m` is the similarity function of :math:`\zeta` which @@ -615,7 +611,7 @@ moisture from the surface layer similarity functions: where :math:`\psi_h` is the surface layer non-dimensional temperature gradient given by -.. math:: \psi_{h} = {\int_{\zeta_{0}}^{\zeta} \frac{\phi_{h} }{ \zeta} d \zeta} . +.. math:: \psi_{h} = {\int_{\zeta_{0}}^{\zeta} \frac{\phi_{h} }{ \zeta} d \zeta} Here :math:`\phi_h` is the similarity function of :math:`\zeta`, which expresses the stability dependance of the temperature and moisture @@ -629,13 +625,13 @@ moisture gradients can be quite large. Based on :cite:`yagkad:74`: .. math:: - \psi_{g} = \frac{ 0.55 (Pr^{2/3} - 0.2) }{ \nu^{1/2} } - (h_{0}u_{*} - h_{0_{ref}}u_{*_{ref}})^{1/2} + \psi_{g} = \frac{ 0.55 ({\rm Pr}^{2/3} - 0.2) }{ \nu^{1/2} } + (h_{0}u_{*} - h_{0_{\rm ref}}u_{*_{\rm ref}})^{1/2} where Pr is the Prandtl number for air, :math:`\nu` is the molecular viscosity, :math:`z_{0}` is the surface roughness length, and the -subscript *ref* refers to a reference value. :math:`h_{0} = 30z_{0}` -with a maximum value over land of 0.01 +subscript 'ref' refers to a reference value. :math:`h_{0} = 30z_{0}` +with a maximum value over land of 0.01. The surface roughness length over oceans is is a function of the surface-stress velocity, @@ -655,7 +651,7 @@ generalization for heat and moisture: .. math:: {\phi_m}^4 - 18 \zeta {\phi_m}^3 = 1 \hspace{1cm} ; \hspace{1cm} - {\phi_h}^2 - 18 \zeta {\phi_h}^3 = 1 \hspace{1cm} . + {\phi_h}^2 - 18 \zeta {\phi_h}^3 = 1 \hspace{1cm} The function for heat and moisture assures non-vanishing heat and moisture fluxes as the wind speed approaches zero. @@ -669,7 +665,7 @@ flux: {\phi_m} = \frac{ 1 + 5 {{\zeta}_1} }{ 1 + 0.00794 {\zeta}_1 (1+ 5 {\zeta}_1) } \hspace{1cm} ; \hspace{1cm} {\phi_h} = \frac{ 1 + 5 {{\zeta}_1} }{ 1 + 0.00794 {\zeta} - (1+ 5 {{\zeta}_1}) } . + (1+ 5 {{\zeta}_1}) } The moisture flux also depends on a specified evapotranspiration coefficient, set to unity over oceans and dependant on the @@ -693,60 +689,58 @@ Surface Energy Budget The ground temperature equation is solved as part of the turbulence package using a backward implicit time differencing scheme: -.. math:: C_g\pp{T_g}{t} = R_{sw} - R_{lw} + Q_{ice} - H - LE +.. math:: C_g\pp{T_g}{t} = R_{\rm sw} - R_{\rm lw} + Q_{\rm ice} - H - LE -where :math:`R_{sw}` is the net surface downward shortwave radiative -flux and :math:`R_{lw}` is the net surface upward longwave radiative +where :math:`R_{\rm sw}` is the net surface downward shortwave radiative +flux and :math:`R_{\rm lw}` is the net surface upward longwave radiative flux. :math:`H` is the upward sensible heat flux, given by: .. math:: - - {H} = P^{\kappa}\rho c_{p} C_{H} W_s (\theta_{surface} - \theta_{NLAY}) - \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t + {H} = P^{\kappa}\rho c_{p} C_{H} W_s (\theta_{\rm surface} - \theta_{\rm NLAY}) + \hspace{1cm}\text{where}: \hspace{.2cm}C_H = C_u C_t where :math:`\rho` = the atmospheric density at the surface, :math:`c_{p}` is the specific heat of air at constant pressure, and :math:`\theta` represents the potential temperature of the surface and of the lowest :math:`\sigma`-level, respectively. -The upward latent heat flux, :math:`LE`, is given by +The upward latent heat flux, :math:`\textrm{LE}`, is given by .. math:: - {LE} = \rho \beta L C_{H} W_s (q_{surface} - q_{NLAY}) - \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t + \textrm{LE} = \rho \beta L C_{H} W_s (q_{\rm surface} - q_{\rm NLAY}) + \hspace{1cm}\text{where}: \hspace{.2cm}C_H = C_u C_t where :math:`\beta` is the fraction of the potential evapotranspiration actually evaporated, L is the latent heat of evaporation, and -:math:`q_{surface}` and :math:`q_{NLAY}` are the specific humidity of +:math:`q_{\rm surface}` and :math:`q_{\rm NLAY}` are the specific humidity of the surface and of the lowest :math:`\sigma`-level, respectively. -The heat conduction through sea ice, :math:`Q_{ice}`, is given by +The heat conduction through sea ice, :math:`Q_{\rm ice}`, is given by -.. math:: {Q_{ice}} = \frac{C_{ti} }{ H_i} (T_i-T_g) +.. math:: {Q_{\rm ice}} = \frac{C_{\rm ti} }{ H_i} (T_i-T_g) -where :math:`C_{ti}` is the thermal conductivity of ice, :math:`H_i` is -the ice thickness, assumed to be :math:`3 \hspace{.1cm} m` where sea ice +where :math:`C_{\rm ti}` is the thermal conductivity of ice, :math:`H_i` is +the ice thickness, assumed to be 3 m where sea ice is present, :math:`T_i` is 273 degrees Kelvin, and :math:`T_g` is the surface temperature of the ice. :math:`C_g` is the total heat capacity of the ground, obtained by solving a heat diffusion equation for the penetration of the diurnal -cycle into the ground (), and is given by: +cycle into the ground (Blackadar 1977), and is given by: .. math:: C_g = \sqrt{ \frac{\lambda C_s }{ 2\omega} } = \sqrt{(0.386 + 0.536W + 0.15W^2)2\times10^{-3} - \frac{86400}{2\pi} } \, \, . + \frac{86400}{2\pi} } Here, the thermal conductivity, :math:`\lambda`, is equal to -:math:`2\times10^{-3}` :math:`\frac{ly}{sec} -\frac{cm}{K}`, the angular velocity of the earth, :math:`\omega`, is -written as :math:`86400` :math:`sec/day` divided by :math:`2 \pi` -:math:`radians/ -day`, and the expression for :math:`C_s`, the heat capacity per unit +:math:`2\times10^{-3}` :math:`\frac{\text{ly}}{\text{sec}}\frac{\text{cm}}{\text{K}}`, +the angular velocity of the earth, :math:`\omega`, is +written as 86400 sec day\ :sup:`--1` divided by :math:`2 \pi` +radians day\ :sup:`--1`, and the expression for :math:`C_s`, the heat capacity per unit volume at the surface, is a function of the ground wetness, :math:`W`. Land Surface Processes: @@ -844,7 +838,7 @@ gravity wave stress at the surface is based on that derived by Pierrehumbert (1986) and is given by: .. math:: - |\vec{\tau}_{sfc}| = \frac{\rho U^3}{N \ell^*} \left( \frac{F_r^2}{1+F_r^2}\right) \, \, , + |\vec{\tau}_{\rm sfc}| = \frac{\rho U^3}{N \ell^*} \left( \frac{F_r^2}{1+F_r^2}\right) where :math:`F_r = N h /U` is the Froude number, :math:`N` is the *Brunt @@ -872,7 +866,8 @@ surface wind strength), of mountain torque (through a redistribution of mean sea-level pressure), and of momentum convergence (through a reduction in the flux of westerly momentum by transient flow eddies). -Boundary Conditions and other Input Data: +Boundary Conditions and other Input Data +######################################## Required fields which are not explicitly predicted or diagnosed during model execution must either be prescribed internally or obtained from @@ -942,7 +937,7 @@ and the GCM. Fizhi Diagnostics +++++++++++++++++ -Fizhi Diagnostic Menu: [sec:pkg:fizhi:diagnostics] +Fizhi Diagnostic Menu: +--------+----------------------------------+---------+--------------------------------------------------+ | NAME | UNITS | LEVELS | DESCRIPTION | @@ -1246,7 +1241,7 @@ eddy exchange coefficient: .. math:: - {\bf HFLUX} = P^{\kappa}\rho c_{p} C_{H} W_s (\theta_{surface} - \theta_{Nrphys}) + {\bf HFLUX} = P^{\kappa}\rho c_{p} C_{H} W_s (\theta_{\rm surface} - \theta_{Nrphys}) \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t where :math:`\rho` = the atmospheric density at the surface, @@ -1267,7 +1262,7 @@ evapotranspiration fraction and the eddy exchange coefficient: .. math:: - {\bf EFLUX} = \rho \beta L C_{H} W_s (q_{surface} - q_{Nrphys}) + {\bf EFLUX} = \rho \beta L C_{H} W_s (q_{\rm surface} - q_{Nrphys}) \hspace{1cm}where: \hspace{.2cm}C_H = C_u C_t where :math:`\rho` = the atmospheric density at the surface, @@ -1278,7 +1273,7 @@ the magnitude of the surface layer wind, :math:`C_u` is the dimensionless surface exchange coefficient for momentum (see diagnostic number 10), :math:`C_t` is the dimensionless surface exchange coefficient for heat and moisture (see diagnostic number 9), and -:math:`q_{surface}` and :math:`q_{Nrphys}` are the specific humidity at +:math:`q_{\rm surface}` and :math:`q_{Nrphys}` are the specific humidity at the surface and at the bottom model level, respectively. Heat Conduction Through Sea Ice (:math:`Watts/m^2`) @@ -1492,7 +1487,7 @@ The tendency of U-Momentum due to turbulence is written: .. math:: - {\bf TURBU} = {\pp{u}{t}}_{turb} = {\pp{}{z} }{(- \overline{u^{\prime}w^{\prime}})} + {\bf TURBU} = {\pp{u}{t}}_{\rm turb} = {\pp{}{z} }{(- \overline{u^{\prime}w^{\prime}})} = {\pp{}{z} }{(K_m \pp{u}{z})} The Helfand and Labraga level 2.5 scheme models the turbulent flux of @@ -1506,7 +1501,7 @@ The tendency of V-Momentum due to turbulence is written: .. math:: - {\bf TURBV} = {\pp{v}{t}}_{turb} = {\pp{}{z} }{(- \overline{v^{\prime}w^{\prime}})} + {\bf TURBV} = {\pp{v}{t}}_{\rm turb} = {\pp{}{z} }{(- \overline{v^{\prime}w^{\prime}})} = {\pp{}{z} }{(K_m \pp{v}{z})} The Helfand and Labraga level 2.5 scheme models the turbulent flux of @@ -1521,7 +1516,7 @@ The tendency of temperature due to turbulence is written: .. math:: - {\bf TURBT} = {\pp{T}{t}} = P^{\kappa}{\pp{\theta}{t}}_{turb} = + {\bf TURBT} = {\pp{T}{t}} = P^{\kappa}{\pp{\theta}{t}}_{\rm turb} = P^{\kappa}{\pp{}{z} }{(- \overline{w^{\prime}\theta^{\prime}})} = P^{\kappa}{\pp{}{z} }{(K_h \pp{\theta_v}{z})} @@ -1537,7 +1532,7 @@ The tendency of specific humidity due to turbulence is written: .. math:: - {\bf TURBQ} = {\pp{q}{t}}_{turb} = {\pp{}{z} }{(- \overline{w^{\prime}q^{\prime}})} + {\bf TURBQ} = {\pp{q}{t}}_{\rm turb} = {\pp{}{z} }{(- \overline{w^{\prime}q^{\prime}})} = {\pp{}{z} }{(K_h \pp{q}{z})} The Helfand and Labraga level 2.5 scheme models the turbulent flux of @@ -1616,16 +1611,16 @@ the model surface pressure, :math:`p^{\prime} = p_{surf}`, for the upward and downward radiative fluxes. (see Section [sec:fizhi:radcloud]). The cloudy-sky flux is then obtained as: -.. math:: F_{LW} = C(p,p') \cdot F^{clearsky}_{LW}, +.. math:: F_{LW} = C(p,p') \cdot F^{clearsky}_{LW} Finally, the net longwave heating rate is calculated as the vertical divergence of the net terrestrial radiative fluxes: -.. math:: \pp{\rho c_p T}{t} = - \p{z} F_{LW}^{NET} , +.. math:: \pp{\rho c_p T}{t} = - \p{z} F_{LW}^{NET} or -.. math:: {\bf RADLW} = \frac{g}{c_p \pi} \p{\sigma} F_{LW}^{NET} . +.. math:: {\bf RADLW} = \frac{g}{c_p \pi} \p{\sigma} F_{LW}^{NET} where :math:`g` is the accelation due to gravity, :math:`c_p` is the heat capacity of air at constant pressure, and @@ -1650,11 +1645,11 @@ atmosphere. The heating rate due to Shortwave Radiation under cloudy skies is defined as: -.. math:: \pp{\rho c_p T}{t} = - \p{z} F(cloudy)_{SW}^{NET} \cdot {\rm RADSWT}, +.. math:: \pp{\rho c_p T}{t} = - \p{z} F(cloudy)_{SW}^{NET} \cdot {\rm RADSWT} or -.. math:: {\bf RADSW} = \frac{g}{c_p \pi} \p{\sigma} F(cloudy)_{SW}^{NET}\cdot {\rm RADSWT} . +.. math:: {\bf RADSW} = \frac{g}{c_p \pi} \p{\sigma} F(cloudy)_{SW}^{NET}\cdot {\rm RADSWT} where :math:`g` is the accelation due to gravity, :math:`c_p` is the heat capacity of air at constant pressure, RADSWT is the true incident @@ -1770,10 +1765,6 @@ stable surface layer: where :math:`k` is the Von Karman constant, :math:`h` is the height of the surface layer, and :math:`z_0` is the surface roughness. -NOTE: CN is not available through model version 5.3, but is available -in subsequent versions. - - WINDS - Surface Wind Speed (meter/sec) ###################################### @@ -1812,11 +1803,11 @@ package using a backward implicit time differencing scheme: .. math:: {\bf TG} \hspace{.1cm} is \hspace{.1cm} obtained \hspace{.1cm} from: \hspace{.1cm} - C_g\pp{T_g}{t} = R_{sw} - R_{lw} + Q_{ice} - H - LE + C_g\pp{T_g}{t} = R_{sw} - R_{lw} + Q_{\rm ice} - H - LE where :math:`R_{sw}` is the net surface downward shortwave radiative flux, :math:`R_{lw}` is the net surface upward longwave radiative flux, -:math:`Q_{ice}` is the heat conduction through sea ice, :math:`H` is the +:math:`Q_{\rm ice}` is the heat conduction through sea ice, :math:`H` is the upward sensible heat flux, :math:`LE` is the upward latent heat flux, and :math:`C_g` is the total heat capacity of the ground. :math:`C_g` is obtained by solving a heat diffusion equation for the penetration of the @@ -1825,7 +1816,7 @@ diurnal cycle into the ground (), and is given by: .. math:: C_g = \sqrt{ \frac{\lambda C_s }{ 2 \omega } } = \sqrt{(0.386 + 0.536W + 0.15W^2)2x10^{-3} - \frac{86400.}{2\pi} } \, \, . + \frac{86400.}{2\pi} } Here, the thermal conductivity, :math:`\lambda`, is equal to :math:`2x10^{-3}` :math:`\frac{ly}{sec} @@ -1948,16 +1939,16 @@ the model surface pressure, :math:`p^{\prime} = p_{surf}`, for the upward and downward radiative fluxes. (see Section [sec:fizhi:radcloud]). The cloudy-sky flux is then obtained as: -.. math:: F_{LW} = C(p,p') \cdot F^{clearsky}_{LW}, +.. math:: F_{LW} = C(p,p') \cdot F^{clearsky}_{LW} Thus, **LWCLR** is defined as the net longwave heating rate due to the vertical divergence of the clear-sky longwave radiative flux: -.. math:: \pp{\rho c_p T}{t}_{clearsky} = - \p{z} F(clearsky)_{LW}^{NET} , +.. math:: \pp{\rho c_p T}{t}_{clearsky} = - \p{z} F(clearsky)_{LW}^{NET} or -.. math:: {\bf LWCLR} = \frac{g}{c_p \pi} \p{\sigma} F(clearsky)_{LW}^{NET} . +.. math:: {\bf LWCLR} = \frac{g}{c_p \pi} \p{\sigma} F(clearsky)_{LW}^{NET} where :math:`g` is the accelation due to gravity, :math:`c_p` is the heat capacity of air at constant pressure, and @@ -2067,7 +2058,7 @@ EVAP - Surface Evaporation (mm/day) The surface evaporation is a function of the gradient of moisture, the potential evapotranspiration fraction and the eddy exchange coefficient: -.. math:: {\bf EVAP} = \rho \beta K_{h} (q_{surface} - q_{Nrphys}) +.. math:: {\bf EVAP} = \rho \beta K_{h} (q_{\rm surface} - q_{Nrphys}) where :math:`\rho` = the atmospheric density at the surface, :math:`\beta` is the fraction of the potential evapotranspiration @@ -2105,8 +2096,8 @@ and Analysis forcing. .. math:: \begin{aligned} - {\bf DTDT} & = & \pp{T}{t}_{Dynamics} + \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ - & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis} \end{aligned} + {\bf DTDT} & = \pp{T}{t}_{Dynamics} + \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ + & + \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis} \end{aligned} DQDT - Total Specific Humidity Tendency (g/kg/day) @@ -2169,7 +2160,7 @@ The depth of the PBL is defined by the turbulence parameterization to be the depth at which the turbulent kinetic energy reduces to ten percent of its surface value. -.. math:: {\bf PBL} = P_{PBL} - P_{surface} +.. math:: {\bf PBL} = P_{PBL} - P_{\rm surface} where :math:`P_{PBL}` is the pressure in :math:`mb` at which the turbulent kinetic energy reaches one tenth of its surface value, and @@ -2193,11 +2184,11 @@ atmosphere. The heating rate due to Shortwave Radiation under clear skies is defined as: -.. math:: \pp{\rho c_p T}{t} = - \p{z} F(clear)_{SW}^{NET} \cdot {\rm RADSWT}, +.. math:: \pp{\rho c_p T}{t} = - \p{z} F(clear)_{SW}^{NET} \cdot {\rm RADSWT} or -.. math:: {\bf SWCLR} = \frac{g}{c_p } \p{p} F(clear)_{SW}^{NET}\cdot {\rm RADSWT} . +.. math:: {\bf SWCLR} = \frac{g}{c_p } \p{p} F(clear)_{SW}^{NET}\cdot {\rm RADSWT} where :math:`g` is the accelation due to gravity, :math:`c_p` is the heat capacity of air at constant pressure, RADSWT is the true incident @@ -2358,8 +2349,8 @@ the Analysis forcing. .. math:: \begin{aligned} - {\bf DIABT} & = & \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ - & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis} \end{aligned} + {\bf DIABT} & = \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ + & + \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence} + \pp{T}{t}_{Analysis} \end{aligned} If we define the time-tendency of Temperature due to Diabatic processes as @@ -2367,8 +2358,8 @@ processes as .. math:: \begin{aligned} - \pp{T}{t}_{Diabatic} & = & \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ - & + & \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence}\end{aligned} + \pp{T}{t}_{Diabatic} & = \pp{T}{t}_{Moist Processes} + \pp{T}{t}_{Shortwave Radiation} \\ + & + \pp{T}{t}_{Longwave Radiation} + \pp{T}{t}_{Turbulence}\end{aligned} then, since there are no surface pressure changes due to Diabatic processes, we may write @@ -2524,8 +2515,8 @@ specific humidity, given by: .. math:: \begin{aligned} - {\bf QINT} & = & \int_{surf}^{top} \rho q dz \\ - & = & \frac{\pi}{g} \int_0^1 q dp + {\bf QINT} & = \int_{surf}^{top} \rho q dz \\ + & = \frac{\pi}{g} \int_0^1 q dp \end{aligned} where we have used the hydrostatic relation diff --git a/doc/phys_pkgs/generic_advdiff.rst b/doc/phys_pkgs/generic_advdiff.rst index efe3fb66df..ab54bd49d9 100644 --- a/doc/phys_pkgs/generic_advdiff.rst +++ b/doc/phys_pkgs/generic_advdiff.rst @@ -85,13 +85,13 @@ GAD Diagnostics DIFx_TH | 15 |UU 090MR |degC.m^3/s |Zonal Diffusive Flux of Pot.Temperature DIFy_TH | 15 |VV 089MR |degC.m^3/s |Meridional Diffusive Flux of Pot.Temperature DFrI_TH | 15 |WM LR |degC.m^3/s |Vertical Diffusive Flux of Pot.Temperature (Implicit part) - ADVr_SLT| 15 |WM LR |psu.m^3/s |Vertical Advective Flux of Salinity - ADVx_SLT| 15 |UU 094MR |psu.m^3/s |Zonal Advective Flux of Salinity - ADVy_SLT| 15 |VV 093MR |psu.m^3/s |Meridional Advective Flux of Salinity - DFrE_SLT| 15 |WM LR |psu.m^3/s |Vertical Diffusive Flux of Salinity (Explicit part) - DIFx_SLT| 15 |UU 097MR |psu.m^3/s |Zonal Diffusive Flux of Salinity - DIFy_SLT| 15 |VV 096MR |psu.m^3/s |Meridional Diffusive Flux of Salinity - DFrI_SLT| 15 |WM LR |psu.m^3/s |Vertical Diffusive Flux of Salinity (Implicit part) + ADVr_SLT| 15 |WM LR |(g/kg).m^3/s |Vertical Advective Flux of Salinity + ADVx_SLT| 15 |UU 094MR |(g/kg).m^3/s |Zonal Advective Flux of Salinity + ADVy_SLT| 15 |VV 093MR |(g/kg).m^3/s |Meridional Advective Flux of Salinity + DFrE_SLT| 15 |WM LR |(g/kg).m^3/s |Vertical Diffusive Flux of Salinity (Explicit part) + DIFx_SLT| 15 |UU 097MR |(g/kg).m^3/s |Zonal Diffusive Flux of Salinity + DIFy_SLT| 15 |VV 096MR |(g/kg).m^3/s |Meridional Diffusive Flux of Salinity + DFrI_SLT| 15 |WM LR |(g/kg).m^3/s |Vertical Diffusive Flux of Salinity (Implicit part) Experiments and tutorials that use GAD ++++++++++++++++++++++++++++++++++++++ diff --git a/doc/phys_pkgs/gmredi.rst b/doc/phys_pkgs/gmredi.rst index 64e1017a97..7048d57996 100644 --- a/doc/phys_pkgs/gmredi.rst +++ b/doc/phys_pkgs/gmredi.rst @@ -1,109 +1,126 @@ .. _sub_phys_pkg_gmredi: -GMREDI: Gent-McWilliams/Redi SGS Eddy Parameterization ------------------------------------------------------- +GMREDI: Gent-McWilliams/Redi Eddy Parameterization +************************************************** +Introduction +============ -There are two parts to the Redi/GM parameterization of geostrophic -eddies. The first, the Redi scheme :cite:`redi1982`, aims to mix tracer properties along +Package :filelink:`gmredi ` parameterizes +the effects of unresolved mesoscale eddies on tracer distribution, +i.e., temperature, salinity and other tracers. + +There are two parts to the Redi/GM subgrid-scale parameterization of geostrophic +eddies. The first, the Redi scheme (Redi 1982 :cite:`redi1982`), aims to mix tracer properties along isentropes (neutral surfaces) by means of a diffusion operator oriented -along the local isentropic surface. The second part, GM :cite:`gen-mcw:90,gen-eta:95` , adiabatically -re-arranges tracers through an advective flux where the advecting flow +along the local isentropic surface. The second part, GM +(Gent and McWiliams 1990 :cite:`gen-mcw:90`, Gent et al. 1995 :cite:`gen-eta:95`), adiabatically +rearranges tracers through an advective flux where the advecting flow is a function of slope of the isentropic surfaces. -The first GCM implementation of the Redi scheme was by :cite:`cox87` in the GFDL ocean +A description of key package equations used is +given in :numref:`ssub_phys_pkg_gmredi_descr`. +CPP options enable or disable different aspects of the package +(:numref:`ssub_phys_pkg_gmredi_config`). Run-time options, flags, and filenames +are set in ``data.gmredi`` +(:numref:`ssub_phys_pkg_gmredi_runtime`). Available diagnostics +output is listed in :numref:`ssub_phys_pkg_gmredi_diagnostics`. + +.. _ssub_phys_pkg_gmredi_descr: + +Description +=========== + +The first GCM implementation of the Redi scheme was by Cox (1987) :cite:`cox87` in the GFDL ocean circulation model. The original approach failed to distinguish between isopycnals and surfaces of locally referenced potential density (now -called neutral surfaces) which are proper isentropes for the ocean. As +called neutral surfaces), which are proper isentropes for the ocean. As will be discussed later, it also appears that the Cox implementation is susceptible to a computational mode. Due to this mode, the Cox scheme requires a background lateral diffusion to be present to conserve the integrity of the model fields. The GM parameterization was then added to the GFDL code in the form of a -non-divergent bolus velocity. The method defines two stream-functions +non-divergent bolus velocity. The method defines two streamfunctions expressed in terms of the isoneutral slopes subject to the boundary condition of zero value on upper and lower boundaries. The horizontal bolus velocities are then the vertical derivative of these functions. -Here in lies a problem highlighted by :cite:`gretal:98`: the bolus velocities involve -multiple derivatives on the potential density field, which can -consequently give rise to noise. Griffies et al. point out that the GM +Here in lies a problem highlighted by Griffies et al. (1998) :cite:`gretal:98`: the +bolus velocities involve multiple derivatives on the potential density field, +which can consequently give rise to noise. Griffies et al. point out that the GM bolus fluxes can be identically written as a skew flux which involves fewer differential operators. Further, combining the skew flux formulation and Redi scheme, substantial cancellations take place to the point that the horizontal fluxes are unmodified from the lateral diffusion parameterization. +.. _GM_redi_desc: Redi scheme: Isopycnal diffusion -++++++++++++++++++++++++++++++++ +-------------------------------- The Redi scheme diffuses tracers along isopycnals and introduces a term in the tendency (rhs) of such a tracer (here :math:`\tau`) of the form: -.. math:: \bf{\nabla} \cdot \kappa_\rho \bf{K}_{Redi} \bf{\nabla} \tau +.. math:: \nabla \cdot ( \kappa_\rho {\bf K}_{\rm Redi} \nabla \tau ) where :math:`\kappa_\rho` is the along isopycnal diffusivity and -:math:`\bf{K}_{Redi}` is a rank 2 tensor that projects the gradient of +:math:`{\bf K}_{\rm Redi}` is a rank 2 tensor that projects the gradient of :math:`\tau` onto the isopycnal surface. The unapproximated projection tensor is: .. math:: - \bf{K}_{Redi} = \frac{1}{1 + |S|^2} \left( - \begin{array}{ccc} + {\bf K}_{\rm Redi} = \frac{1}{1 + |{\bf S}|^2} + \begin{pmatrix} 1 + S_y^2& -S_x S_y & S_x \\ -S_x S_y & 1 + S_x^2 & S_y \\ - S_x & S_y & |S|^2 \\ - \end{array} - \right) + S_x & S_y & |{\bf S}|^2 \\ + \end{pmatrix} -Here, :math:`S_x = -\partial_x \sigma / \partial_z \sigma` and -:math:`S_y = --\partial_y \sigma / \partial_z \sigma` are the components of the -isoneutral slope. +Here, :math:`S_x = \partial_x \sigma / (- \partial_z \sigma)`, +:math:`S_y = \partial_y \sigma / (- \partial_z \sigma)` are the components +of the isoneutral slope, and :math:`|{\bf S}|^2 = S_x^2 + S_y^2`. The first point to note is that a typical slope in the ocean interior is small, say of the order :math:`10^{-4}`. A maximum slope might be of order :math:`10^{-2}` and only exceeds such in unstratified regions -where the slope is ill defined. It is therefore justifiable, and -customary, to make the small slope approximation, :math:`|S| << 1`. The -Redi projection tensor then becomes: +where the slope is ill-defined. It is, therefore, justifiable, and +customary, to make the small-slope approximation, i.e., :math:`|{\bf S}| \ll 1`. Then +Redi projection tensor then simplifies to: .. math:: - - \bf{K}_{Redi} = \left( - \begin{array}{ccc} + {\bf K}_{\rm Redi} = + \begin{pmatrix} 1 & 0 & S_x \\ 0 & 1 & S_y \\ - S_x & S_y & |S|^2 \\ - \end{array} - \right) + S_x & S_y & |{\bf S}|^2 \\ + \end{pmatrix} .. _GM_bolus_desc: GM parameterization -+++++++++++++++++++ +------------------- -The GM parameterization aims to represent the “advective” or “transport” +The GM parameterization aims to represent the advective or “transport” effect of geostrophic eddies by means of a “bolus” velocity, -:math:`\bf{u}^\star`. The divergence of this advective flux is added to +:math:`{\bf u}^\star`. The divergence of this advective flux is added to the tracer tendency equation (on the rhs): -.. math:: - \bf{\nabla} \cdot \tau \bf{u}^\star +.. math:: - \nabla \cdot ( \tau {\bf u}^\star ) -The bolus velocity :math:`\bf{u}^\star` is defined as the rotational of -a streamfunction -:math:`\bf{F}^\star`\ =\ :math:`(F_x^\star,F_y^\star,0)`: +The bolus velocity :math:`{\bf u}^\star` is defined as the rotational part +of a streamfunction +:math:`{\bf F}^\star = (F_x^\star, F_y^\star, 0)`: .. math:: - \bf{u}^\star = \nabla \times \bf{F}^\star = - \left( \begin{array}{c} + {\bf u}^\star = \nabla \times {\bf F}^\star = + \begin{pmatrix} - \partial_z F_y^\star \\ + \partial_z F_x^\star \\ \partial_x F_y^\star - \partial_y F_x^\star - \end{array} \right), + \end{pmatrix} and thus is automatically non-divergent. In the GM parameterization, the streamfunction is specified in terms of the isoneutral slopes @@ -112,60 +129,64 @@ streamfunction is specified in terms of the isoneutral slopes .. math:: \begin{aligned} - F_x^\star & = & -\kappa_{GM} S_y \\ - F_y^\star & = & \kappa_{GM} S_x\end{aligned} + F_x^\star & = -\kappa_{\rm GM} S_y\\ + F_y^\star & = \kappa_{\rm GM} S_x + \end{aligned} with boundary conditions :math:`F_x^\star=F_y^\star=0` on upper and -lower boundaries. In the end, the bolus transport in the GM -parameterization is given by: +lower boundaries. :math:`\kappa_{\rm GM}` is colloquially called the isopycnal "thickness diffusivity" +or the "GM diffusivity". The bolus transport in the GM +parameterization is thus given by: .. math:: - \bf{u}^\star = \left( - \begin{array}{c} + {\bf u}^\star = + \begin{pmatrix} u^\star \\ v^\star \\ w^\star - \end{array} - \right) = \left( - \begin{array}{c} - - \partial_z (\kappa_{GM} S_x) \\ - - \partial_z (\kappa_{GM} S_y) \\ - \partial_x (\kappa_{GM} S_x) + \partial_y (\kappa_{GM} S_y) - \end{array} - \right) - -This is the form of the GM parameterization as applied by Donabasaglu, -1997, in MOM versions 1 and 2. - -Note that in the MITgcm, the variables containing the GM bolus -streamfunction are: + \end{pmatrix} = + \begin{pmatrix} + - \partial_z (\kappa_{\rm GM} S_x) \\ + - \partial_z (\kappa_{\rm GM} S_y) \\ + \partial_x (\kappa_{\rm GM} S_x) + \partial_y (\kappa_{\rm GM} S_y) + \end{pmatrix} + +This is the "advective form" of the GM parameterization as applied by Danabasoglu and McWilliams (1995) :cite:`danabasoglu:95`, +employed in the GFDL Modular Ocean Model (MOM) versions 1 and 2. To use the advective form in MITgcm, set +:varlink:`GM_AdvForm` ``=.TRUE.`` in ``data.gmredi`` +(also requires ``#define`` :varlink:`GM_BOLUS_ADVEC` and :varlink:`GM_EXTRA_DIAGONAL`). +As implemented in the MITgcm code, :math:`{\bf u}^\star` is simply added to Eulerian :math:`\vec{\bf u}` +(i.e., MITgcm variables :varlink:`uVel`, :varlink:`vVel`, :varlink:`wVel`) +and passed to tracer advection subroutines (:numref:`advection_schemes`) +unless :varlink:`GM_AdvSeparate` ``=.TRUE.`` in ``data.gmredi``, in which case the bolus transport is computed separately. + +Note that in MITgcm, the variables for the GM bolus +streamfunction :varlink:`GM_PsiX` and :varlink:`GM_PsiY` are defined: .. math:: - - \left( - \begin{array}{c} - GM\_PsiX \\ - GM\_PsiY - \end{array} - \right) = \left( - \begin{array}{c} - \kappa_{GM} S_x \\ - \kappa_{GM} S_y - \end{array} - \right)= \left( - \begin{array}{c} + \begin{aligned} + \begin{pmatrix} + \sf{GM\_PsiX} \\ + \sf{GM\_PsiY} + \end{pmatrix} = + \begin{pmatrix} + \kappa_{\rm GM} S_x \\ + \kappa_{\rm GM} S_y + \end{pmatrix} = + \begin{pmatrix} F_y^\star \\ -F_x^\star - \end{array} - \right). + \end{pmatrix} + \end{aligned} + :label: GM_bolus_psi .. _sub_gmredi_skewflux: Griffies Skew Flux -++++++++++++++++++ +------------------ -:cite:`gr:98` notes that the discretisation of bolus velocities involves multiple +Griffies (1998) :cite:`gr:98` notes that the discretization of bolus velocities involves multiple layers of differencing and interpolation that potentially lead to noisy fields and computational modes. He pointed out that the bolus flux can be re-written in terms of a non-divergent flux and a skew-flux: @@ -173,43 +194,42 @@ be re-written in terms of a non-divergent flux and a skew-flux: .. math:: \begin{aligned} - \bf{u}^\star \tau - & = & - \left( \begin{array}{c} - - \partial_z ( \kappa_{GM} S_x ) \tau \\ - - \partial_z ( \kappa_{GM} S_y ) \tau \\ - (\partial_x \kappa_{GM} S_x + \partial_y \kappa_{GM} S_y)\tau - \end{array} \right) + {\bf u}^\star \tau + & = + \begin{pmatrix} + - \partial_z ( \kappa_{\rm GM} S_x ) \tau \\ + - \partial_z ( \kappa_{\rm GM} S_y ) \tau \\ + \Big[ \partial_x (\kappa_{\rm GM} S_x) + \partial_y (\kappa_{\rm GM} S_y) \Big] \tau + \end{pmatrix} \\ - & = & - \left( \begin{array}{c} - - \partial_z ( \kappa_{GM} S_x \tau) \\ - - \partial_z ( \kappa_{GM} S_y \tau) \\ - \partial_x ( \kappa_{GM} S_x \tau) + \partial_y ( \kappa_{GM} S_y \tau) - \end{array} \right) - + \left( \begin{array}{c} - \kappa_{GM} S_x \partial_z \tau \\ - \kappa_{GM} S_y \partial_z \tau \\ - - \kappa_{GM} S_x \partial_x \tau - \kappa_{GM} S_y \partial_y \tau - \end{array} \right)\end{aligned} + & = + \begin{pmatrix} + - \partial_z ( \kappa_{\rm GM} S_x \tau) \\ + - \partial_z ( \kappa_{\rm GM} S_y \tau) \\ + \partial_x ( \kappa_{\rm GM} S_x \tau) + \partial_y ( \kappa_{\rm GM} S_y \tau) + \end{pmatrix} + + \kappa_{\rm GM} \begin{pmatrix} + S_x \partial_z \tau \\ + S_y \partial_z \tau \\ + - S_x \partial_x \tau - S_y \partial_y \tau + \end{pmatrix} + \end{aligned} The first vector is non-divergent and thus has no effect on the tracer field and can be dropped. The remaining flux can be written: -.. math:: \bf{u}^\star \tau = - \kappa_{GM} \bf{K}_{GM} \bf{\nabla} \tau +.. math:: \bf{u}^\star \tau = - \kappa_{\rm GM} \bf{K}_{\rm GM} \bf{\nabla} \tau where .. math:: - \bf{K}_{GM} = - \left( - \begin{array}{ccc} - 0 & 0 & -S_x \\ - 0 & 0 & -S_y \\ - S_x & S_y & 0 - \end{array} - \right) + {\bf K}_{\rm GM} = + \begin{pmatrix} + 0 & 0 & -S_x \\ + 0 & 0 & -S_y \\ + S_x & S_y & 0 + \end{pmatrix} is an anti-symmetric tensor. @@ -221,118 +241,147 @@ the Redi isoneutral mixing scheme: .. math:: - \kappa_\rho \bf{K}_{Redi} \bf{\nabla} \tau - - u^\star \tau = - ( \kappa_\rho \bf{K}_{Redi} + \kappa_{GM} \bf{K}_{GM} ) \bf{\nabla} \tau + \kappa_\rho {\bf K}_{\rm Redi} \nabla \tau + - {\bf u}^\star \tau = + ( \kappa_\rho {\bf K}_{\rm Redi} + \kappa_{\rm GM} {\bf K}_{\rm GM} ) \nabla \tau -In the instance that :math:`\kappa_{GM} = \kappa_{\rho}` then +If the Redi and GM diffusivities are equal, :math:`\kappa_{\rm GM} = \kappa_{\rho}`, then .. math:: - - \kappa_\rho \bf{K}_{Redi} + \kappa_{GM} \bf{K}_{GM} = + \kappa_\rho {\bf K}_{\rm Redi} + \kappa_{\rm GM} {\bf K}_{\rm GM} = \kappa_\rho - \left( \begin{array}{ccc} + \begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ - 2 S_x & 2 S_y & |S|^2 - \end{array} - \right) + 2 S_x & 2 S_y & |{\bf S}|^2 + \end{pmatrix} -which differs from the variable Laplacian diffusion tensor by only two +which only differs from the variable Laplacian diffusion tensor by the two non-zero elements in the :math:`z`-row. .. admonition:: Subroutine :class: note - S/R GMREDI_CALC_TENSOR (*pkg/gmredi/gmredi_calc_tensor.F*) + S/R GMREDI_CALC_TENSOR (:filelink:`pkg/gmredi/gmredi_calc_tensor.F`) + + :math:`\sigma_x`: **sigmaX** (argument on entry) - :math:`\sigma_x`: **SlopeX** (argument on entry) + :math:`\sigma_y`: **sigmaY** (argument on entry) - :math:`\sigma_y`: **SlopeY** (argument on entry) + :math:`\sigma_z`: **sigmaR** (argument on entry) - :math:`\sigma_z`: **SlopeY** (argument) +.. _sub_gmredi_in_P: - :math:`S_x`: **SlopeX** (argument on exit) +Redi and GM schemes in pressure coordinate +------------------------------------------ - :math:`S_y`: **SlopeY** (argument on exit) +When using pressure as a vertical coordinate (see :numref:`isomorphic-equations`), +the Redi scheme can be applied in the same way as in :math:`z-`\coordinates, +considering the slope of isoneutral surface relative to the model isobaric +surface, to rotate the diffusion operator along isoneutral surfaces. +The two components of the slope relative to :math:`p-`\ coordinates are +:math:`S_x^p = \partial_x \sigma / \partial_p \sigma`, +:math:`S_y^p = \partial_y \sigma / \partial_p \sigma`. +Note that for convienience and consistency with the current implementation, +the sign of the slope in :math:`z-` or :math:`p-` coordinates is kept unchanged, i.e., +identical to the sign of horizontal density gradient. +The negative sign is added back in the Redi tensor expression: -Variable :math:`\kappa_{GM}` -++++++++++++++++++++++++++++ +.. math:: + {\bf K}_{\rm Redi}^p = + \begin{pmatrix} + 1 & 0 & -S_x^p \\ + 0 & 1 & -S_y^p \\ + -S_x^p & -S_y^p & |{\bf S^p}|^2 \\ + \end{pmatrix} + +In contrast, the GM scheme should instead consider the slope of isoneutral +surface relative to geopotential surface (constant :math:`z-`\ surface), so that its +effect will decrease the available potential energy and flatten the isopycnal. +Since :math:`dp = -(\rho g) dz`, the slope to consider would be, in two dimensions: + +.. math:: S_x^z = \partial_x \sigma / (- \partial_z \sigma) = \frac{1}{\rho g} S_x^p -:cite:`visbeck:97` suggest making the eddy coefficient, :math:`\kappa_{GM}`, a function of -the Eady growth rate, :math:`|f|/\sqrt{Ri}`. The formula involves a +The effect on tracer :math:`\tau` from the bolus transport (:math:`{\bf u}^\star`) +advection would be: + +.. math:: [ {\bf u}^\star \cdot \nabla \tau ]^z + & = u^\star \partial_x \tau + w^\star \partial_z \tau + \\ + & = \rho g \partial_p (\kappa_{\rm GM} \frac{1}{\rho g} S_x^p) \partial_x \tau + - \partial_x (\kappa_{\rm GM} \frac{1}{\rho g} S_x^p) (\rho g) \partial_p \tau + \\ + & = {\bf u}^{\star p} \cdot \nabla^p \tau + +.. math:: + {\rm with:}~~ + {\bf u}^{\star p} = + \begin{pmatrix} + u^{\star p} \\ + v^{\star p} \\ + \omega^{\star p} + \end{pmatrix} = + \begin{pmatrix} + \rho g \partial_p (\kappa_{\rm GM} \frac{1}{\rho g} S_x^p) \\ + \rho g \partial_p (\kappa_{\rm GM} \frac{1}{\rho g} S_y^p) \\ + - \rho g \partial_x (\kappa_{\rm GM} \frac{1}{\rho g} S_x^p) + - \rho g \partial_y (\kappa_{\rm GM} \frac{1}{\rho g} S_y^p) + \end{pmatrix} +.. :label: GM_bolus_in_p (note to me: this is commented out) + +This formulation above has not been implemented yet and instead only a simplified +version is available that ignores the difference between isobaric surfaces and +horizontal surfaces, as if in the above expression, the density :math:`\rho` were +uniform. This approximation seems valid for the ocean where the +isopycnal slope is generally much larger than the isobaric slope relative to +horizontal surface. + +With this approxmation, the expression of the bolus transport simplifies +and becomes "isomorphic" to the :math:`z-`\ coordinate form :eq:`GM_bolus_psi`, +with the sign reversal of all three components of the bolus transport, +due to the expression of the curl in a left-handed coordinate system. + +Visbeck et al. 1997 GM diffusivity :math:`\kappa_{GM}(x,y)` +----------------------------------------------------------- + +Visbeck et al. (1997) :cite:`visbeck:97` suggest making the eddy coefficient, +:math:`\kappa_{\rm GM}`, a function of +the Eady growth rate, :math:`|f|/\sqrt{\rm Ri}`. The formula involves a non-dimensional constant, :math:`\alpha`, and a length-scale :math:`L`: -.. math:: \kappa_{GM} = \alpha L^2 \overline{ \frac{|f|}{\sqrt{Ri}} }^z +.. math:: \kappa_{\rm GM} = \alpha L^2 \overline{ \frac{|f|}{\sqrt{\rm Ri}} }^z where the Eady growth rate has been depth averaged (indicated by the over-line). A local Richardson number is defined -:math:`Ri = N^2 / (\partial -u/\partial z)^2` which, when combined with thermal wind gives: +:math:`{\rm Ri} = N^2 / (\partial_z u)^2` which, when combined with thermal wind gives: .. math:: - \frac{1}{Ri} = \frac{(\frac{\partial u}{\partial z})^2}{N^2} = - \frac{ ( \frac{g}{f \rho_o} | {\bf \nabla} \sigma | )^2 }{N^2} = + \frac{1}{\rm Ri} = \frac{(\partial u/\partial z)^2}{N^2} = + \frac{ \left ( \dfrac{g}{f \rho_0} | \nabla \sigma | \right )^2 }{N^2} = \frac{ M^4 }{ |f|^2 N^2 } -where :math:`M^2` is defined -:math:`M^2 = \frac{g}{\rho_o} |{\bf \nabla} \sigma|`. Substituting into -the formula for :math:`\kappa_{GM}` gives: +where :math:`M^2 = g | \nabla \sigma| / \rho_0`. Substituting into +the formula for :math:`\kappa_{\rm GM}` gives: .. math:: - \kappa_{GM} = \alpha L^2 \overline{ \frac{M^2}{N} }^z = + \kappa_{\rm GM} = \alpha L^2 \overline{ \frac{M^2}{N} }^z = \alpha L^2 \overline{ \frac{M^2}{N^2} N }^z = - \alpha L^2 \overline{ |S| N }^z + \alpha L^2 \overline{ |{\bf S}| N }^z .. _sub_gmredi_tapering_stability: Tapering and stability -++++++++++++++++++++++ +---------------------- Experience with the GFDL model showed that the GM scheme has to be matched to the convective parameterization. This was originally expressed in connection with the introduction of the KPP boundary layer -scheme :cite:`lar-eta:94` but in fact, as subsequent experience with the MIT model has +scheme (Large et al. 1994 :cite:`lar-eta:94`) but in fact, as subsequent experience with the MIT model has found, is necessary for any convective parameterization. - -.. admonition:: Subroutine - :class: note - - S/R GMREDI_SLOPE_LIMIT (*pkg/gmredi/gmredi_slope_limit.F*) - - :math:`\sigma_x, s_x`: **SlopeX** (argument) - - :math:`\sigma_y, s_y`: **SlopeY** (argument) - - :math:`\sigma_z`: **dSigmadRReal** (argument) - - :math:`z_\sigma^{*}`: **dRdSigmaLtd** (argument) - - - -.. figure:: figs/tapers.* - :width: 70% - :align: center - :alt: Tapering for GM scheme - :name: tapers - - Taper functions used in GKW91 and DM95. - - -.. figure:: figs/effective_slopes.* - :width: 70% - :align: center - :alt: Tapering for GM scheme - :name: effective_slopes - - Effective slope as a function of 'true' slope using Cox slope clipping, GKW91 limiting and DM95 limiting. - - - Slope clipping ++++++++++++++ @@ -341,40 +390,41 @@ unstable or nearly unstable stratification. The slopes in such regions can be either infinite, very large with a sign reversal or simply very large. From a numerical point of view, large slopes lead to large variations in the tensor elements (implying large bolus flow) and can be -numerically unstable. This was first recognized by :cite:`cox87` who implemented +numerically unstable. This was first recognized by Cox (1987) :cite:`cox87` who implemented “slope clipping” in the isopycnal mixing tensor. Here, the slope magnitude is simply restricted by an upper limit: .. math:: \begin{aligned} - |\nabla \sigma| & = & \sqrt{ \sigma_x^2 + \sigma_y^2 } \\ - S_{lim} & = & - \frac{|\nabla \sigma|}{ S_{max} } - \;\;\;\;\;\;\;\; \mbox{where $S_{max}$ is a parameter} \\ - \sigma_z^\star & = & \min( \sigma_z , S_{lim} ) \\ - {[s_x,s_y]} & = & - \frac{ [\sigma_x,\sigma_y] }{\sigma_z^\star}\end{aligned} + |\nabla_h \sigma| & = \sqrt{ \sigma_x^2 + \sigma_y^2 }\\ + S_{\rm lim} & = - \frac{|\nabla_h \sigma|}{ S_{\max} }, + \quad \mbox{where $S_{\max}>0$ is a parameter} \\ + \sigma_z^\star & = \min( \sigma_z, S_{\rm lim} ) \\ + {[s_x, s_y]} & = - \frac{ [\sigma_x, \sigma_y] }{\sigma_z^\star} + \end{aligned} Notice that this algorithm assumes stable stratification through the “min” function. In the case where the fluid is well stratified -(:math:`\sigma_z < S_{lim}`) then the slopes evaluate to: +(:math:`\sigma_z < S_{\rm lim}`) then the slopes evaluate to: -.. math:: {[s_x,s_y]} = - \frac{ [\sigma_x,\sigma_y] }{\sigma_z} +.. math:: {[s_x, s_y]} = - \frac{ [\sigma_x, \sigma_y] }{\sigma_z} -while in the limited regions (:math:`\sigma_z > S_{lim}`) the slopes +while in the limited regions (:math:`\sigma_z > S_{\rm lim}`) the slopes become: -.. math:: {[s_x,s_y]} = \frac{ [\sigma_x,\sigma_y] }{|\nabla \sigma|/S_{max}} +.. math:: {[s_x, s_y]} = \frac{ [\sigma_x, \sigma_y] }{|\nabla_h \sigma| / S_{\max}} so that the slope magnitude is limited :math:`\sqrt{s_x^2 + s_y^2} = -S_{max}`. +S_{\max}`. The slope clipping scheme is activated in the model by setting -**GM\_taper\_scheme = ’clipping’** in *data.gmredi*. +:varlink:`GM_taper_scheme` ``= ’clipping’`` in ``data.gmredi``. Even using slope clipping, it is normally the case that the vertical diffusion term (with coefficient :math:`\kappa_\rho{\bf K}_{33} = -\kappa_\rho S_{max}^2`) is large and must be time-stepped using an -implicit procedure (see section on discretisation and code later). Fig. +\kappa_\rho S_{\max}^2`) is large and must be time-stepped using an +implicit procedure (see :numref:`implicit-backward-stepping`). Fig. [fig-mixedlayer] shows the mixed layer depth resulting from a) using the GM scheme with clipping and b) no GM scheme (horizontal diffusion). The classic result of dramatically reduced mixed layers is evident. Indeed, @@ -385,11 +435,24 @@ Limiting the slopes also breaks the adiabatic nature of the GM/Redi parameterization, re-introducing diabatic fluxes in regions where the limiting is in effect. +.. admonition:: Subroutine + :class: note + + S/R GMREDI_SLOPE_LIMIT (:filelink:`pkg/gmredi/gmredi_slope_limit.F`) + + :math:`\sigma_x, s_x`: **SlopeX** (argument) + + :math:`\sigma_y, s_y`: **SlopeY** (argument) -Tapering: Gerdes, Koberle and Willebrand, Clim. Dyn. 1991 -+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + :math:`\sigma_z`: **dSigmadRReal** (argument) -The tapering scheme used in :cite:`gkw:91` addressed two issues with the clipping + :math:`z_\sigma^{*}`: **dRdSigmaLtd** (argument) + +Tapering: Gerdes, Koberle and Willebrand, 1991 (GKW91) +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +The tapering scheme used in Gerdes et al. (1991) :cite:`gkw:91` (GKW91) +addressed two issues with the clipping method: the introduction of large vertical fluxes in addition to convective adjustment fluxes is avoided by tapering the GM/Redi slopes back to zero in low-stratification regions; the adjustment of slopes is @@ -399,87 +462,259 @@ direction of fluxes is unaffected as the amplitude is scaled. The scheme inserts a tapering function, :math:`f_1(S)`, in front of the GM/Redi tensor: -.. math:: f_1(S) = \min \left[ 1, \left( \frac{S_{max}}{|S|}\right)^2 \right] +.. math:: f_1(S) = \min \left[ 1, \left( \frac{S_{\max}}{|{\bf S}|}\right)^2 \right] -where :math:`S_{max}` is the maximum slope you want allowed. Where the -slopes, :math:`|S|` adding ``-enable=gmredi`` or + ``-disable=gmredi`` switches + +- **required packages and CPP options**: + :filelink:`gmredi ` requires + +Parts of the :filelink:`gmredi ` code can be enabled or disabled at +compile time via CPP preprocessor flags. These options are set in +:filelink:`GMREDI_OPTIONS.h `. +:numref:`tab_phys_pkg_gmredi_cpp` summarizes the most important ones. For additional +options see :filelink:`GMREDI_OPTIONS.h `. + +.. tabularcolumns:: |\Y{.375}|\Y{.1}|\Y{.55}| + +.. csv-table:: Some of the most relevant CPP preprocessor flags in the :filelink:`gmredi ` package. + :header: "CPP option", "Default", "Description" + :widths: 30, 10, 60 + :name: tab_phys_pkg_gmredi_cpp + + :varlink:`GM_NON_UNITY_DIAGONAL`, #define, allows the leading diagonal (top two rows) to be non-unity + :varlink:`GM_EXTRA_DIAGONAL`, #define, allows different values of :math:`\kappa_{\rm GM}` and :math:`\kappa_{\rho}`; also required for advective form + :varlink:`GM_BOLUS_ADVEC`, #define, allows use of the advective form (bolus velocity) + :varlink:`GM_BOLUS_BVP`, #define, allows use of Boundary-Value-Problem method to evaluate bolus transport + :varlink:`ALLOW_GM_LEITH_QG`, #undef, allow QG Leith variable viscosity to be added to GMRedi coefficient + :varlink:`GM_VISBECK_VARIABLE_K`, #undef, allows Visbeck et al. formulation to compute :math:`\kappa_{\rm GM}` + +.. _ssub_phys_pkg_gmredi_runtime: + +Run-time parameters +=================== + +Run-time parameters (see :numref:`tab_phys_pkg_gmredi_runtimeparms`) are set in +``data.gmredi`` (read in :filelink:`pkg/gmredi/gmredi_readparms.F`). + +Enabling the package +-------------------- + +:filelink:`gmredi ` package is switched on/off at run-time by +setting :varlink:`useGMREDI` ``= .TRUE.,`` in ``data.pkg``. + +General flags and parameters +---------------------------- + +:numref:`tab_phys_pkg_gmredi_runtimeparms` lists most run-time parameters. + +.. tabularcolumns:: |\Y{.275}|\Y{.20}|\Y{.525}| + +.. table:: Run-time parameters and default values + :class: longtable + :name: tab_phys_pkg_gmredi_runtimeparms + + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | Name | Default value | Description | + +====================================+==============================+=========================================================================+ + | :varlink:`GM_AdvForm` | FALSE | use advective form (bolus velocity); FALSE uses skewflux form | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_AdvSeparate` | FALSE | do advection by Eulerian and bolus velocity separately | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_background_K` | 0.0 | thickness diffusivity :math:`\kappa_{\rm GM}` (m\ :sup:`2`\ /s) | + | | | (GM bolus transport) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_isopycK` | :varlink:`GM_background_K` | isopycnal diffusivity :math:`\kappa_{\rho}` (m\ :sup:`2`\ /s) | + | | | (Redi tensor) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_maxSlope` | 1.0E-02 | maximum slope (tapering/clipping) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Kmin_horiz` | 0.0 | minimum horizontal diffusivity (m\ :sup:`2`\ /s) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Small_Number` | 1.0E-20 | :math:`\epsilon` used in computing the slope | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_slopeSqCutoff` | 1.0E+48 | :math:`|{\bf S}|^2` cut-off value for zero taper function | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_taper_scheme` | ' ' | taper scheme option ('orig', 'clipping', 'fm07', 'stableGmAdjTap', | + | | | 'linear', 'ac02', 'gkw91', 'dm95', 'ldd97') | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_maxTransLay` | 500.0 | maximum transition layer thickness (m) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_facTrL2ML` | 5.0 | maximum trans. layer thick. as a factor of local mixed-layer depth | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_facTrL2dz` | 1.0 | minimum trans. layer thick. as a factor of local dr | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Scrit` | 0.004 | :math:`S_c` parameter for 'dm95' and 'ldd97 ' tapering function | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Sd` | 0.001 | :math:`S_d` parameter for 'dm95' and 'ldd97' tapering function | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_UseBVP` | FALSE | use Boundary-Value-Problem method for bolus transport | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_BVP_ModeNumber` | 1 | vertical mode number used for speed :math:`c` in BVP transport | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_BVP_cMin` | 1.0E-01 | minimum value for wave speed parameter :math:`c` in BVP (m/s) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_UseSubMeso` | FALSE | use sub-mesoscale eddy parameterization for bolus transport | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`subMeso_Ceff` | 7.0E-02 | efficiency coefficient of mixed-layer eddies | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`subMeso_invTau` | 2.0E-06 | inverse of mixing timescale in sub-meso parameterization (s\ :sup:`-1`) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`subMeso_LfMin` | 1.0E+03 | minimum value for length-scale :math:`L_f` (m) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`subMeso_Lmax` | 110.0E+03 | maximum horizontal grid-scale length (m) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_alpha` | 0.0 | :math:`\alpha` parameter for Visbeck et al. scheme (non-dim.) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_length` | 200.0E+03 | :math:`L` length scale parameter for Visbeck et al. scheme (m) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_depth` | 1000.0 | depth (m) over which to average in computing Visbeck | + | | | :math:`\kappa_{\rm GM}` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_maxSlope` | :varlink:`GM_maxSlope` | maximum slope used in computing Visbeck et al. :math:`\kappa_{\rm GM}` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_minVal_K` | 0.0 | minimum :math:`\kappa_{\rm GM}` (m\ :sup:`2`\ /s) using Visbeck et al. | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_Visbeck_maxVal_K` | 2500.0 | maximum :math:`\kappa_{\rm GM}` (m\ :sup:`2`\ /s) using Visbeck et al. | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_useLeithQG` | FALSE | add Leith QG viscosity to GMRedi tensor | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_iso2dFile` | ' ' | input file for 2D (:math:`x,y`) scaling of isopycnal diffusivity | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_iso1dFile` | ' ' | input file for 1D vert. scaling of isopycnal diffusivity | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_bol2dFile` | ' ' | input file for 2D (:math:`x,y`) scaling of thickness diffusivity | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_bol1dFile` | ' ' | input file for 1D vert. scaling of thickness diffusivity | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_background_K3dFile` | ' ' | input file for 3D (:math:`x,y,r`) :varlink:`GM_background_K` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_isopycK3dFile` | ' ' | input file for 3D (:math:`x,y,r`) :varlink:`GM_isopycK` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`GM_MNC` | :varlink:`useMNC` | write GMREDI snapshot output using :filelink:`/pkg/mnc` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ .. _ssub_phys_pkg_gmredi_diagnostics: -Package Reference -+++++++++++++++++ +GMREDI Diagnostics +================== :: - ------------------------------------------------------------------------ - <-Name->|Levs|<-parsing code->|<-- Units -->|<- Tile (max=80c) - ------------------------------------------------------------------------ - GM_VisbK| 1 |SM P M1 |m^2/s |Mixing coefficient from Visbeck etal parameterization - GM_Kux | 15 |UU P 177MR |m^2/s |K_11 element (U.point, X.dir) of GM-Redi tensor - GM_Kvy | 15 |VV P 176MR |m^2/s |K_22 element (V.point, Y.dir) of GM-Redi tensor - GM_Kuz | 15 |UU 179MR |m^2/s |K_13 element (U.point, Z.dir) of GM-Redi tensor - GM_Kvz | 15 |VV 178MR |m^2/s |K_23 element (V.point, Z.dir) of GM-Redi tensor - GM_Kwx | 15 |UM 181LR |m^2/s |K_31 element (W.point, X.dir) of GM-Redi tensor - GM_Kwy | 15 |VM 180LR |m^2/s |K_32 element (W.point, Y.dir) of GM-Redi tensor - GM_Kwz | 15 |WM P LR |m^2/s |K_33 element (W.point, Z.dir) of GM-Redi tensor - GM_PsiX | 15 |UU 184LR |m^2/s |GM Bolus transport stream-function : X component - GM_PsiY | 15 |VV 183LR |m^2/s |GM Bolus transport stream-function : Y component - GM_KuzTz| 15 |UU 186MR |degC.m^3/s |Redi Off-diagonal Tempetature flux: X component - GM_KvzTz| 15 |VV 185MR |degC.m^3/s |Redi Off-diagonal Tempetature flux: Y component - - -Experiments and tutorials that use gmredi -+++++++++++++++++++++++++++++++++++++++++ - -- Global Ocean tutorial, in tutorial\_global\_oce\_latlon verification - directory, described in section [sec:eg-global] - -- Front Relax experiment, in front\_relax verification directory. - -- Ideal 2D Ocean experiment, in ideal\_2D\_oce verification directory. - - + ---------------------------------------------------------------------- + <-Name->|Levs|<- code ->|<-- Units -->|<- Description + ---------------------------------------------------------------------- + GM_VisbK| 1 |SM P M1|m^2/s |Mixing coefficient from Visbeck etal parameterization + GM_hTrsL| 1 |SM P M1|m |Base depth (>0) of the Transition Layer + GM_baseS| 1 |SM P M1|1 |Slope at the base of the Transition Layer + GM_rLamb| 1 |SM P M1|1/m |Slope vertical gradient at Trans. Layer Base (=recip.Lambda) + SubMesLf| 1 |SM P M1|m |Sub-Meso horiz. Length Scale (Lf) + SubMpsiX| 1 |UU M1|m^2/s |Sub-Meso transp.stream-funct. magnitude (Psi0): U component + SubMpsiY| 1 |VV M1|m^2/s |Sub-Meso transp.stream-funct. magnitude (Psi0): V component + GM_Kux | 18 |UU P MR|m^2/s |K_11 element (U.point, X.dir) of GM-Redi tensor + GM_Kvy | 18 |VV P MR|m^2/s |K_22 element (V.point, Y.dir) of GM-Redi tensor + GM_Kuz | 18 |UU MR|m^2/s |K_13 element (U.point, Z.dir) of GM-Redi tensor + GM_Kvz | 18 |VV MR|m^2/s |K_23 element (V.point, Z.dir) of GM-Redi tensor + GM_Kwx | 18 |UM LR|m^2/s |K_31 element (W.point, X.dir) of GM-Redi tensor + GM_Kwy | 18 |VM LR|m^2/s |K_32 element (W.point, Y.dir) of GM-Redi tensor + GM_Kwz | 18 |WM P LR|m^2/s |K_33 element (W.point, Z.dir) of GM-Redi tensor + GM_PsiX | 18 |UU LR|m^2/s |GM Bolus transport stream-function : U component + GM_PsiY | 18 |VV LR|m^2/s |GM Bolus transport stream-function : V component + GM_KuzTz| 18 |UU MR|degC.m^3/s |Redi Off-diagonal Temperature flux: X component + GM_KvzTz| 18 |VV MR|degC.m^3/s |Redi Off-diagonal Temperature flux: Y component + GM_KwzTz| 18 |WM LR|degC.m^3/s |Redi main-diagonal vertical Temperature flux + GM_ubT | 18 |UUr MR|degC.m^3/s |Zonal Mass-Weight Bolus Transp of Pot Temp + GM_vbT | 18 |VVr MR|degC.m^3/s |Meridional Mass-Weight Bolus Transp of Pot Temp + GM_BVPcW| 1 |SU P M1|m/s |WKB wave speed (at Western edge location) + GM_BVPcS| 1 |SV P M1|m/s |WKB wave speed (at Southern edge location) + + +Experiments and tutorials that use GMREDI +========================================= + +- Southern Ocean Reentrant Channel Example, in :filelink:`verification/tutorial_reentrant_channel`, + described in :numref:`sec_eg_reentrant_channel` + +- Global Ocean Simulation, in :filelink:`verification/tutorial_global_oce_latlon`, + described in :numref:`sec_global_oce_latlon` + +- Front Relax experiment, in :filelink:`verification/front_relax` + +- Ideal 2D Ocean experiment, in :filelink:`verification/ideal_2D_oce`. diff --git a/doc/phys_pkgs/kl10.rst b/doc/phys_pkgs/kl10.rst index 9118765582..ae720448e0 100644 --- a/doc/phys_pkgs/kl10.rst +++ b/doc/phys_pkgs/kl10.rst @@ -67,10 +67,10 @@ We assume a turbulent Prandtl number of 1, so :math:`A_v=K_{v}`. We also calculate and output a turbulent dissipation from this scheme. We do not simply evaluate the overturns for :math:`\epsilon` using -([eq:pkg:kl10:Lo]). Instead we compute the vertical shear terms that the +:eq:`eq-pkg-kl10-Lo`. Instead we compute the vertical shear terms that the viscosity is acting on: -.. math:: \epsilon_v = A_v \left(\left(\frac{\partial u}{\partial z}\right)^2 + \left(\frac{\partial v}{\partial z}\right)^2 \right). +.. math:: \epsilon_v = A_v \left[ \left(\partial_z u \right)^2 + \left( \frac{\partial u}{\partial z} \right)^2 \right]. There are straightforward caveats to this approach, covered in :cite:`klymaklegg10`. @@ -101,7 +101,7 @@ There are straightforward caveats to this approach, covered in :cite:`klymaklegg .. _ssub_phys_pkg_kl10_comp: -KL10 configuration and compiling +KL10 configuration and compiling ++++++++++++++++++++++++++++++++ As with all MITgcm packages, KL10 can be turned on or off at compile @@ -226,4 +226,3 @@ Experiments and tutorials that use KL10 - Modified Internal Wave experiment, in internal_wave verification directory - diff --git a/doc/phys_pkgs/kpp.rst b/doc/phys_pkgs/kpp.rst index efa4e7ec5a..96044c79b2 100644 --- a/doc/phys_pkgs/kpp.rst +++ b/doc/phys_pkgs/kpp.rst @@ -12,7 +12,8 @@ Authors: Dimitris Menemenlis and Patrick Heimbach Introduction ++++++++++++ -The nonlocal K-Profile Parameterization (KPP) scheme of :cite:`lar-eta:94` unifies the +The nonlocal K-Profile Parameterization (KPP) scheme of Large et al. (1994) +:cite:`lar-eta:94` unifies the treatment of a variety of unresolved processes involved in vertical mixing. To consider it as one mixing scheme is, in the view of the authors, somewhat misleading since it consists of several entities to @@ -45,7 +46,8 @@ layer, and the interior: independent of the vertical property gradient further enhances mixing where the water column is unstable -The scheme has been extensively compared to observations (see e.g. :cite:`lar-eta:97`) and +The scheme has been extensively compared to observations +(see e.g. Large et al. 1997 :cite:`lar-eta:97`) and is now common in many ocean models. The current code originates in the NCAR NCOM 1-D code and was kindly @@ -56,12 +58,12 @@ decomposition and threading capability), to enable automatic differentiation of tangent linear and adjoint code via TAMC. The following sections will describe the KPP package configuration and -compiling ([sec:pkg:kpp:comp]), the settings and choices of runtime -parameters ([sec:pkg:kpp:runtime]), more detailed description of -equations to which these parameters relate ([sec:pkg:kpp:equations]), -and key subroutines where they are used ([sec:pkg:kpp:flowchart]), and +compiling (:numref:`ssub_phys_pkg_kpp_comp`), the settings and choices of runtime +parameters (:numref:`ssub_phys_pkg_kpp_runtime`), more detailed description of +equations to which these parameters relate (:numref:`ssub_phys_pkg_kpp_eqns_key_routines`), +and key subroutines where they are used (:numref:`ssub_phys_pkg_kpp_flowchart`), and diagnostics output of KPP-derived diffusivities, viscosities and -boundary-layer/mixed-layer depths ([sec:pkg:kpp:diagnostics]). +boundary-layer/mixed-layer depths (:numref:`ssub_phys_pkg_kpp_diagnostics`). .. _ssub_phys_pkg_kpp_comp: @@ -81,7 +83,7 @@ As with all MITgcm packages, KPP can be turned on or off at compile time layer needs to be set in ``CPP_OPTIONS.h`` as follows: ``#define SHORTWAVE_HEATING`` -(see Section [sec:buildingCode]). +(see :numref:`using_packages`) Parts of the KPP code can be enabled or disabled at compile time via CPP preprocessor flags. These options are set in ``KPP_OPTIONS.h``. Table @@ -252,7 +254,7 @@ Equations and key routines We restrict ourselves to writing out only the essential equations that relate to main processes and parameters mentioned above. We closely -follow the notation of :cite:`lar-eta:94`. +follow the notation of Large et al. (1994) :cite:`lar-eta:94`. KPP_CALC: ######### @@ -289,7 +291,8 @@ coefficient :math:`K_x` .. math:: K_x(\sigma) \, = \, h \, w_x(\sigma) \, G(\sigma) with dimensionless vertical coordinate :math:`\sigma = d/h`. For - details of :math:` w_x(\sigma)` and :math:`G(\sigma)` we refer to . + details of :math:`w_x(\sigma)` and :math:`G(\sigma)` we refer + to Large et al. (1994) :cite:`lar-eta:94`. - *Nonlocal mixing term* The nonlocal transport term :math:`\gamma` is nonzero only for @@ -308,17 +311,17 @@ coefficient :math:`K_x` \gamma_m \, = \, 0 \\ ~ \\ \gamma_s \, = \, C_s - \frac{\overline{w s_0}}{w_s(\sigma) h} \\ + \dfrac{\overline{w s_0}}{w_s(\sigma) h} \\ ~ \\ \gamma_{\theta} \, = \, C_s - \frac{\overline{w \theta_0}+\overline{w \theta_R}}{w_s(\sigma) h} \\ + \dfrac{\overline{w \theta_0}+\overline{w \theta_R}}{w_s(\sigma) h} \\ \end{array} \right\} & \zeta \, < \, 0 \\ \end{array}\end{aligned} -In practice, the routine peforms the following tasks: +In practice, the routine performs the following tasks: #. compute velocity scales at hbl diff --git a/doc/phys_pkgs/land.rst b/doc/phys_pkgs/land.rst index 3e0a0432cd..35b24093ed 100644 --- a/doc/phys_pkgs/land.rst +++ b/doc/phys_pkgs/land.rst @@ -8,7 +8,7 @@ Introduction ############ This package provides a simple land model based on Rong Zhang -[e-mail:roz@gfdl.noaa.gov] 2 layers model (see documentation below). +[e-mail Rong.Zhang@noaa.gov] two layers model (see documentation below). It is primarily implemented for AIM (\_v23) atmospheric physics but could be adapted to work with a different atmospheric physics. Two @@ -27,40 +27,43 @@ Equations and Key Parameters ############################ This is a simple 2-layer land model. The top layer depth -:math:`z1=0.1m`, the second layer depth :math:`z2=4m`. +:math:`z1=0.1` m, the second layer depth :math:`z2=4` m. Let :math:`T_{g1},T_{g2}` be the temperature of each layer, :math:`W_{1,}W_{2}` be the soil moisture of each layer. The field capacity :math:`f_{1,}` :math:`f_{2}` are the maximum water amount in each layer, so :math:`W_{i}` is the ratio of available water to field capacity. :math:`f_{i}=\gamma z_{i},\gamma =0.24` is the field capapcity -per meter soil\ :math:`,` so :math:`f_{1}=0.024m,` :math:`f_{2}=0.96m.` +per meter soil\ :math:`,` so :math:`f_{1}=0.024` m, :math:`f_{2}=0.96` m. The land temperature is determined by total surface downward heat flux -:math:`F,` +:math:`F`, -.. math:: z_{1}C_{1}\frac{dT_{g1}}{dt}=F-\lambda \frac{T_{g1}-T_{g2}}{(z_{1}+z_{2})/2} +.. math:: + \begin{aligned} + z_1 C_1 \frac{dT_{g1}}{dt} & = F - \lambda \frac{T_{g1}-T_{g2}}{(z_1 + z_2)/2}, \nonumber\\ + z_2 C_2 \frac{dT_{g2}}{dt} & = \lambda \frac{T_{g1}-T_{g2}}{(z_1 + z_2)/2}, \nonumber + \end{aligned} -.. math:: z_{2}C_{2}\frac{dT_{g2}}{dt}=\lambda \frac{T_{g1}-T_{g2}}{(z_{1}+z_{2})/2} +here :math:`C_{1},C_{2}` are the heat capacity of each layer, +:math:`\lambda` is the thermal conductivity, :math:`\lambda =0.42` W m\ :sup:`--1` K\ :sup:`--1`. -here :math:`C_{1},C_{2}` are the heat capacity of each layer , -:math:`\lambda ` is the thermal conductivity, -:math:`\lambda =0.42Wm^{-1}K^{-1}.` - -.. math:: C_{1}=C_{w}W_{1}\gamma +C_{s} - -.. math:: C_{2}=C_{w}W_{2}\gamma +C_{s} +.. math:: + \begin{aligned} + C_{1} & = C_{w}W_{1}\gamma +C_{s}, \nonumber\\ + C_{2} & = C_{w}W_{2}\gamma +C_{s}, \nonumber + \end{aligned} :math:`C_{w},C_{s}` are the heat capacity of water and dry soil -respectively. :math:`% -C_{w}=4.2\times 10^{6}Jm^{-3}K^{-1},C_{s}=1.13\times 10^{6}Jm^{-3}K^{-1}.` +respectively. +:math:`C_{w}=4.2\times 10^{6}` J m\ :sup:`--3` K\ :sup:`--1`, :math:`C_{s}=1.13\times 10^{6}` J m\ :sup:`--3` K\ :sup:`--1`. -The soil moisture is determined by precipitation :math:`P(m/s)`,surface -evaporation :math:`E(m/s)` and runoff :math:`R(m/s).` +The soil moisture is determined by precipitation :math:`P` (m/s), surface +evaporation :math:`E` (m/s) and runoff :math:`R` (m/s). -.. math:: \frac{dW_{1}}{dt}=\frac{P-E-R}{f_{1}}+\frac{W_{2}-W_{1}}{\tau } +.. math:: \frac{dW_{1}}{dt} = \frac{P-E-R}{f_{1}}+\frac{W_{2}-W_{1}}{\tau}, -:math:`\tau =2` :math:`days` is the time constant for diffusion of +:math:`\tau=2` days is the time constant for diffusion of moisture between layers. .. math:: \frac{dW_{2}}{dt}=\frac{f_{1}}{f_{2}}\frac{W_{1}-W_{2}}{\tau } diff --git a/doc/phys_pkgs/mom_packages.rst b/doc/phys_pkgs/mom_packages.rst index a88ca7c0c1..e6b02d6980 100644 --- a/doc/phys_pkgs/mom_packages.rst +++ b/doc/phys_pkgs/mom_packages.rst @@ -1,10 +1,8 @@ Momentum Packages ----------------- - .. tabularcolumns:: |\Y{.4}|L|L| - +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | CPP Flag Name | Default | Description | +===============================================+=========+======================================================================================================================+ @@ -16,8 +14,9 @@ Momentum Packages | :varlink:`ALLOW_3D_VISCA4` | #undef | allow full 3D specification of horizontal biharmonic viscosity | | | | (:filelink:`MOM_COMMON_OPTIONS.h `) | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ +| :varlink:`ALLOW_BOTTOMDRAG_ROUGHNESS` | #undef | compute bottom drag coefficient based on roughness parameter | +| | | (:filelink:`MOM_COMMON_OPTIONS.h `) | ++-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ | :varlink:`MOM_BOUNDARY_CONSERVE` | #undef | conserve :math:`u,v` momentum next to a step (vertical plane) or a coastline edge (horizontal plane) | | | | (:filelink:`MOM_FLUXFORM_OPTIONS.h `) | +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ - - diff --git a/doc/phys_pkgs/rbcs.rst b/doc/phys_pkgs/rbcs.rst index 7ceefe8e79..5ba32d204f 100644 --- a/doc/phys_pkgs/rbcs.rst +++ b/doc/phys_pkgs/rbcs.rst @@ -3,104 +3,103 @@ RBCS Package ------------ - .. _ssub_phys_pkg_rbcs_intro: Introduction ++++++++++++ -A package which provides the flexibility to relax fields (temperature, -salinity, ptracers, horizontal velocities) in any 3-D location: so could be used as a sponge -layer, or as a “source” anywhere in the domain. +:filelink:`pkg/rbcs` provides the flexibility to relax fields (temperature, +salinity, ptracers, horizontal velocities) in any 3-D location, thus can be +used to implement a sponge layer, or a “source” anywhere in the domain, among +other uses. -For a field (:math:`T`) at every grid point the tendency is modified so -that: +For a field (:math:`T`) at every grid point the tendency is modified so that: .. math:: \frac{dT}{dt}=\frac{dT}{dt} - \frac{M_{rbc}}{\tau_T} (T-T_{rbc}) -where :math:`M_{rbc}` is a 3-D mask (no time dependence) with values -between 0 and 1. Where :math:`M_{rbc}` is 1, relaxing timescale is -:math:`1/\tau_T`. Where it is 0 there is no relaxing. The value relaxed -to is a 3-D (potentially varying in time) field given by -:math:`T_{rbc}`. +where :math:`M_{rbc}` is a 3-D mask (no time dependence) between 0 +and 1. Values are relaxed to a field given by :math:`T_{rbc}`, which can be set +to vary in time. +Where :math:`M_{rbc}(x,y,z) = 1.0`, the relaxing timescale is :math:`\tau_T`; +where :math:`M_{rbc}(x,y,z) = 0.0`, there is no relaxing. If +:math:`M_{rbc}(x,y,z) = 0.5` then relaxation occurs but at a timescale of +:math:`2\,\tau_T`. -A seperate mask can be used for T,S and ptracers and each of these can -be relaxed or not and can have its own timescale :math:`\tau_T`. These -are set in data.rbcs (see below). +A separate mask can be used for :math:`\theta, S` and ptracers and each of +these can be relaxed or not and can have its own timescale +:math:`\tau_T`. These are set in ``data.rbcs`` (see below). Key subroutines and parameters ++++++++++++++++++++++++++++++ The only compile-time parameter you are likely to have to change is in -:filelink:`RBCS_SIZE.h `, the number of masks, PARAMETER(maskLEN = 3 ), see below. - -:numref:`tab_phys_pkg_rbcs_runtime_flags` summarizes the -runtime flags that are set in :code:`data.rbcs`, and -their default values. - +:filelink:`RBCS_SIZE.h `, the number of masks, +PARAMETER( :varlink:`maskLEN` = 3 ) by default, see below. +:numref:`tab_phys_pkg_rbcs_runtime_flags` summarizes the runtime flags that are +set in ``data.rbcs``, and their default values. .. tabularcolumns:: |\Y{.285}|\Y{.09}|\Y{.105}|\Y{.545}| .. table:: RBCS runtime parameters :name: tab_phys_pkg_rbcs_runtime_flags - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | Flag/Parameter | Group | Default | Description | - +====================================+========+========================+=========================================================================================================================================================================================================================================================================================+ - | :varlink:`rbcsForcingPeriod` | PARM01 | 0.0 | Time interval between forcing fields (in seconds), zero means constant-in-time forcing. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`rbcsForcingCycle` | PARM01 | 0.0 | Repeat cycle of forcing fields (in seconds), zero means non-cyclic forcing. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`rbcsForcingOffset` | PARM01 | 0.0 | Time offset of forcing fields (in seconds, default 0); this is relative to time averages starting at :math:`t=0`, i.e., the first forcing record/file is placed at (:varlink:`rbcsForcingOffset` + :varlink:`rbcsForcingPeriod` )/2 ; see below for examples. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`rbcsSingleTimeFiles` | PARM01 | FALSE | If :code:`.TRUE.`, forcing fields are given 1 file per :varlink:`rbcsForcingPeriod`. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`deltaTrbcs` | PARM01 | :varlink:`deltaTclock` | Time step used to compute the iteration numbers for :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.`. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`rbcsVanishingTime` | PARM01 | 0.0 | If :varlink:`rbcsVanishingTime` > 0, the relaxation strength reduces linearly to vanish at :varlink:`myTime` == :varlink:`rbcsVanishingTime`. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`rbcsIter0` | PARM01 | 0 | Shift in iteration numbers used to label files if :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.` (see below for examples). | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`useRBCtemp`, | PARM01 | FALSE | Whether to use RBCS for T/S/U/V. | - | :varlink:`useRBCsalt`, | | | | - | :varlink:`useRBCuVel`, | | | | - | :varlink:`useRCvVel` | | | | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`tauRelaxT`, | PARM01 | 0.0 | Timescales in seconds of relaxing in T/S/U/V (:math:`\tau_T` in equation above). Where mask is 1, relax rate will be 1/tauRelaxT. Must be set if the corresponding :code:`useRBCxxx` is :code:`TRUE`. | - | :varlink:`tauRelaxT`, | | | | - | :varlink:`tauRelaxT`, | | | | - | :varlink:`tauRelaxT` | | | | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`relaxMaskFile` (irbc) | PARM01 | :kbd:`' '` | Filename of 3-D file with mask (:math:`M_{rbc}` in equation above). Need a file for each irbc (1=temperature, 2=salinity, 3=ptracer1, 4=ptracer2, etc). If :varlink:`maskLEN` is les than the number of tracers, then :code:`relaxMaskFile(maskLEN)` is used for all remaining tracers. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`relaxMaskUFile`, | PARM01 | :kbd:`' '` | Filename of 3-D file with mask for U/V. | - | :varlink:`relaxMaskVFile` | | | | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`relaxTFile`, | PARM01 | :kbd:`' '` | Name of file where the field that need to be relaxed to (:math:`T_{rbc}` in equation above) is stored. The file must contain 3-D records to match the model domain. | - | :varlink:`relaxSFile`, | | | If :varlink:`rbcsSingleTimeFiles` = :code:`.FALSE.`, it must have one record for each forcing period. | - | :varlink:`relaxUFile`, | | | Otherwise there must be a separate file for each period and a 10-digit iteration number is appended to the file name (see Table [:ref:`tab_phys_pkg_rbcs_timing`] and examples below). | - | :varlink:`relaxVFile` | | | | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`useRBCptracers` | PARM02 | FALSE | **DEPRECATED** Use one :varlink:`useRBCpTrNum` per tracer instead. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`useRBCpTrNum` (iTrc) | PARM02 | FALSE | Whether to use RBCS for the corresponding passive tracer. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`tauRelaxPTR` (iTrc) | PARM02 | 0.0 | Relaxing timescale for the corresponding ptracer. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - | :varlink:`relaxPtracerFile` (iTrc) | PARM02 | :kbd:`' '` | File with relax fields for the corresponding ptracer. | - +------------------------------------+--------+------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ - + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Flag/Parameter | Group | Default | Description | + +====================================+========+========================+==============================================================================================================================================================+ + | :varlink:`rbcsForcingPeriod` | PARM01 | 0.0 | time interval between forcing fields (in seconds), zero means constant-in-time forcing | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`rbcsForcingCycle` | PARM01 | 0.0 | repeat cycle of forcing fields (in seconds), zero means non-cyclic forcing | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`rbcsForcingOffset` | PARM01 | 0.0 | time offset of forcing fields (in seconds), relative to time averages starting at :math:`t=0`, | + | | | | i.e., the first forcing record/file is placed at (:varlink:`rbcsForcingOffset` + :varlink:`rbcsForcingPeriod`)/2; see below for examples | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`rbcsSingleTimeFiles` | PARM01 | FALSE | if ``.TRUE.``, forcing fields are given one file per :varlink:`rbcsForcingPeriod` | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`deltaTrbcs` | PARM01 | :varlink:`deltaTclock` | time step used to compute the iteration numbers for :varlink:`rbcsSingleTimeFiles` = ``.TRUE.`` | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`rbcsVanishingTime` | PARM01 | 0.0 | if :varlink:`rbcsVanishingTime` > 0, the relaxation strength reduces linearly to vanish at :varlink:`myTime` == :varlink:`rbcsVanishingTime` | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`rbcsIter0` | PARM01 | 0 | shift in iteration numbers used to label files if :varlink:`rbcsSingleTimeFiles` = ``.TRUE.`` (see below for examples) | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`useRBCtemp`, | PARM01 | FALSE | whether to use RBCS for T/S/U/V | + | :varlink:`useRBCsalt`, | | | | + | :varlink:`useRBCuVel`, | | | | + | :varlink:`useRBCvVel` | | | | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`tauRelaxT`, | PARM01 | 0.0 | timescales (in seconds) for relaxing T/S/U/V (:math:`\tau_T` in equation above); required if the corresponding ``useRBCxxx`` is ``.TRUE.`` | + | :varlink:`tauRelaxS`, | | | | + | :varlink:`tauRelaxU`, | | | | + | :varlink:`tauRelaxV` | | | | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`relaxMaskFile` (irbc) | PARM01 | :kbd:`' '` | filename of 3-D file with mask (:math:`M_{rbc}` above), requires a file for each irbc (1=temperature, 2=salinity, 3=ptracer1, 4=ptracer2, etc); | + | | | | if :varlink:`maskLEN` is less than the number of tracers, then :code:`relaxMaskFile(maskLEN)` is used for all remaining tracers | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`relaxMaskUFile`, | PARM01 | :kbd:`' '` | filename of 3-D file with mask for U/V. | + | :varlink:`relaxMaskVFile` | | | | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`relaxTFile`, | PARM01 | :kbd:`' '` | name of file with 3-D relaxation field values (:math:`T_{rbc}` in equation above); | + | :varlink:`relaxSFile`, | | | if :varlink:`rbcsSingleTimeFiles` = ``.FALSE.``, it must have one record for each forcing period, | + | :varlink:`relaxUFile`, | | | otherwise there must be a separate file for each period with a 10-digit iteration number appended | + | :varlink:`relaxVFile` | | | to the file name (see :numref:`tab_phys_pkg_rbcs_timing` and examples below) | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`useRBCpTrNum` (iTrc) | PARM02 | FALSE | if ``.TRUE.``, use RBCS for the corresponding passive tracer | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`tauRelaxPTR` (iTrc) | PARM02 | 0.0 | relaxing timescale (seconds) for the corresponding ptracer | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | :varlink:`relaxPtracerFile` (iTrc) | PARM02 | :kbd:`' '` | file with relaxation field for the corresponding ptracer | + +------------------------------------+--------+------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------+ Timing of relaxation forcing fields +++++++++++++++++++++++++++++++++++ -For constant-in-time relaxation, set :varlink:`rbcsForcingPeriod` =0. -For time-varying relaxation, Table :numref:`tab_phys_pkg_rbcs_timing` illustrates the -relation between model time and forcing fields (either records in one -big file or, for :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.` , individual files labeled with an -iteration number). With :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.` , this is the same as in -the offline package, except that the forcing offset is in seconds. +For constant-in-time relaxation, set :varlink:`rbcsForcingPeriod` =0. For +time-varying relaxation, :numref:`tab_phys_pkg_rbcs_timing` illustrates the +relation between model time and forcing fields (either records in one big file +or, for :varlink:`rbcsSingleTimeFiles` = ``.TRUE.`` , individual files labeled +with an iteration number). With :varlink:`rbcsSingleTimeFiles` = ``.TRUE.`` , +this is the same as in the offline package, except that the forcing offset is +in seconds. .. tabularcolumns:: |l|l|l|c| @@ -149,19 +148,21 @@ Example 1: forcing with time averages starting at :math:`t=0` Cyclic data in a single file ############################# -Set :varlink:`rbcsSingleTimeFiles` = :code:`.FALSE.` and :varlink:`rbcsForcingOffset` = 0, and the model will -start by interpolating the last and first records of rbcs data, placed -at :math:`-p/2` and :math:`p/2`, resp., as appropriate for fields -averaged over the time intervals :math:`[-p, 0]` and :math:`[0, p]`. +Set :varlink:`rbcsSingleTimeFiles` = :code:`.FALSE.` and +:varlink:`rbcsForcingOffset` = 0, and the model will start by interpolating the +last and first records of rbcs data, placed at :math:`-p/2` and :math:`p/2`, +respectively, as appropriate for fields averaged over the time intervals +:math:`[-p, 0]` and :math:`[0, p]`. Non-cyclic data, multiple files ############################### -Set :varlink:`rbcsForcingCycle` = 0 and :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.` . With -:varlink:`rbcsForcingOffset` = 0, :varlink:`rbcsIter0` = 0 and :varlink:`deltaTrbcs` = :varlink:`rbcsForcingPeriod`, the -model would then start by interpolating data from files -``relax\*File.0000000000.data`` and ``relax\*File.0000000001.data``, ... , again -placed at :math:`-p/2` and :math:`p/2`. +Set :varlink:`rbcsForcingCycle` = 0 and :varlink:`rbcsSingleTimeFiles` = +:code:`.TRUE.` . With :varlink:`rbcsForcingOffset` = 0, :varlink:`rbcsIter0` = +0 and :varlink:`deltaTrbcs` = :varlink:`rbcsForcingPeriod`, the model would +then start by interpolating data from files ``relax\*File.0000000000.data`` and +``relax\*File.0000000001.data``, ... , again placed at :math:`-p/2` and +:math:`p/2`. Example 2: forcing with snapshots starting at :math:`t=0` +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -169,17 +170,19 @@ Example 2: forcing with snapshots starting at :math:`t=0` Cyclic data in a single file ############################ -Set :varlink:`rbcsSingleTimeFiles` = :code:`.FALSE.` and :varlink:`rbcsForcingOffset` =\ :math:`-p/2`, and the -model will start forcing with the first record at :math:`t=0`. +Set :varlink:`rbcsSingleTimeFiles` = :code:`.FALSE.` and +:varlink:`rbcsForcingOffset` =\ :math:`-p/2`, and the model will start forcing +with the first record at :math:`t=0`. Non-cyclic data, multiple files ############################### -Set :varlink:`rbcsForcingCycle` = 0 and :varlink:`rbcsSingleTimeFiles` = :code:`.TRUE.`. In this case, it is -more natural to set :varlink:`rbcsForcingOffset` =\ :math:`+p/2`. With :varlink:`rbcsIter0` = 0 -and :varlink:`deltaTrbcs` = :varlink:`rbcsForcingPeriod`, the model would then start with data -from files ``relax\*File.0000000000.data`` at :math:`t=0`. It would then -proceed to interpolate between this file and files +Set :varlink:`rbcsForcingCycle` = 0 and :varlink:`rbcsSingleTimeFiles` = +:code:`.TRUE.`. In this case, it is more natural to set +:varlink:`rbcsForcingOffset` =\ :math:`+p/2`. With :varlink:`rbcsIter0` = 0 and +:varlink:`deltaTrbcs` = :varlink:`rbcsForcingPeriod`, the model would then +start with data from files ``relax\*File.0000000000.data`` at :math:`t=0`. It +would then proceed to interpolate between this file and files ``relax\*File.0000000001.data`` at :math:`t={}`\ :varlink:`rbcsForcingPeriod`. Do’s and Don’ts @@ -191,9 +194,10 @@ Reference Material Experiments and tutorials that use rbcs +++++++++++++++++++++++++++++++++++++++ -In the directory, the following experiments use :code:`rbcs`: - -- :filelink:`exp4 ` : box with 4 open boundaries, simulating flow over a Gaussian bump - based on :cite:`adcroft:97` +In the directory, the following experiments use :filelink:`pkg/rbcs`: +- tutorial :ref:`Southern Ocean Reentrant Channel ` + makes use of :filelink:`pkg/rbcs` at its northern boundary as a sponge layer; +- :filelink:`exp4 ` simulating flow over a Gaussian bump + based on :cite:`adcroft:97`, demonstrating relaxation of a ptracer field. diff --git a/doc/phys_pkgs/remesh.rst b/doc/phys_pkgs/remesh.rst index a6341e1d8d..5ef33ffe8d 100644 --- a/doc/phys_pkgs/remesh.rst +++ b/doc/phys_pkgs/remesh.rst @@ -76,7 +76,8 @@ Description =========== When :filelink:`pkg/shelfice` is enabled, the elevation of the free surface in a grid cell is -determined by the mass of the ice shelf in that cell. In general use of :filelink:`shelfice ` +determined by the mass of the ice shelf in that cell, see Jordan et al. (2018) +:cite:`jordan:18`. In general use of :filelink:`shelfice ` this mass is held constant, but if it is allowed to change the free surface adjusts if :varlink:`implicitFreeSurface` ``= .true.`` through adjustment of the thickness of the top-level cell (:numref:`figremesh1`). If :varlink:`nonlinFreeSurf`\ ``=4`` these changes are fully accounted for in the ocean dynamics and tracer transport. However: @@ -109,7 +110,6 @@ can be set in ``data.shelfice`` to allow volume conservation. and the distance between the two, :math:`\eta`, and (b) the extent of the ice-shelf boundary layer used to calculate velocities, Bv (red), and tracers, B :math:`_\chi` (blue), used in the melt rate calculation. The model grid is represented by dashed lines with the actual sizeof the cells represented by the solid lines. - From Jordan et al. (2018) :cite:`jordan:18`. .. figure:: figs/remesh2.* :width: 80% @@ -119,7 +119,7 @@ can be set in ``data.shelfice`` to allow volume conservation. Schematic representation of dimensionless vertical grid size, :math:`h_c`, and reference ice-shelf depth, `d`, at i=2 in (a) a "normal" case, (b) a cell with :math:`h_c` > :math:`h_{max}` at i=2, k=2 just before a model - remesh check, and (c) the same cell just after a model remesh has occurred. From Jordan et al. (2018) :cite:`jordan:18`. + remesh check, and (c) the same cell just after a model remesh has occurred. .. _ssub_phys_remesh_topdr: diff --git a/doc/phys_pkgs/seaice.rst b/doc/phys_pkgs/seaice.rst index abccbf8ff3..3bf61c05fb 100644 --- a/doc/phys_pkgs/seaice.rst +++ b/doc/phys_pkgs/seaice.rst @@ -4,23 +4,22 @@ SEAICE Package ************** Authors: Martin Losch, Dimitris Menemenlis, An Nguyen, Jean-Michel -Campin, Patrick Heimbach, Chris Hill and Jinlun Zhang +Campin, Patrick Heimbach, Chris Hill, Jinlun Zhang, and Damien Ringeisen .. _ssub_phys_pkg_seaice_intro: Introduction ============ -Package :filelink:`seaice ` provides a dynamic and thermodynamic interactive -sea ice model. +Package :filelink:`seaice ` provides a dynamic and thermodynamic +interactive sea ice model. CPP options enable or disable different aspects of the package (:numref:`ssub_phys_pkg_seaice_config`). Run-time options, flags, filenames and -field-related dates/times are set in ``data.seaice`` (:numref:`ssub_phys_pkg_seaice_runtime`). -A description of key subroutines is given in -:numref:`ssub_phys_pkg_seaice_subroutines`. -Available diagnostics output is listed in -:numref:`ssub_phys_pkg_seaice_diagnostics`. +field-related dates/times are set in ``data.seaice`` +(:numref:`ssub_phys_pkg_seaice_runtime`). A description of key subroutines is +given in :numref:`ssub_phys_pkg_seaice_subroutines`. Available diagnostics +output is listed in :numref:`ssub_phys_pkg_seaice_diagnostics`. .. _ssub_phys_pkg_seaice_config: @@ -30,26 +29,28 @@ SEAICE configuration and compiling Compile-time options -------------------- -As with all MITgcm packages, SEAICE can be turned on or off at compile -time (see :numref:`building_code`) +As with all MITgcm packages, SEAICE can be turned on or off at compile time +(see :numref:`building_code`) -- using the ``packages.conf`` file by adding ``seaice`` to it +- using the ``packages.conf`` file by adding ``seaice`` to it -- or using :filelink:`genmake2 ` adding ``-enable=seaice`` or ``-disable=seaice`` switches +- or using :filelink:`genmake2 ` adding ``-enable=seaice`` or + ``-disable=seaice`` switches -- **required packages and CPP options**: - :filelink:`seaice ` requires the external forcing package :filelink:`pkg/exf` to be enabled; no - additional CPP options are required. +- **required packages and CPP options**: + :filelink:`seaice ` requires the external forcing package + :filelink:`pkg/exf` to be enabled; no additional CPP options are required. -Parts of the :filelink:`seaice ` code can be enabled or disabled at compile time via -CPP preprocessor flags. These options are set in :filelink:`SEAICE_OPTIONS.h `. +Parts of the :filelink:`seaice ` code can be enabled or disabled at +compile time via CPP preprocessor flags. These options are set in +:filelink:`SEAICE_OPTIONS.h `. :numref:`tab_phys_pkg_seaice_cpp` summarizes the most important ones. For more options see :filelink:`SEAICE_OPTIONS.h `. .. tabularcolumns:: |\Y{.375}|\Y{.1}|\Y{.55}| -.. csv-table:: Some of the most relevant CPP preporocessor flags in the :filelink:`seaice ` package. +.. csv-table:: Some of the most relevant CPP preprocessor flags in the :filelink:`seaice ` package. :header: "CPP option", "Default", Description" :widths: 30, 10, 60 :name: tab_phys_pkg_seaice_cpp @@ -60,16 +61,23 @@ options see :filelink:`SEAICE_OPTIONS.h `. :varlink:`SEAICE_ALLOW_EVP`, #define, enable use of EVP rheology solver :varlink:`SEAICE_ALLOW_JFNK`, #define, enable use of JFNK rheology solver :varlink:`SEAICE_ALLOW_KRYLOV`, #define, enable use of Krylov rheology solver + :varlink:`SEAICE_ALLOW_TEM`, #undef, enable use of the truncated ellipse method (TEM) and coulombic yield curve + :varlink:`SEAICE_ALLOW_MCS`, #undef, enable use of Mohr-Coulomb yield curve with shear flow rule + :varlink:`SEAICE_ALLOW_MCE`, #undef, enable use of Mohr-Coulomb yield curve with elliptical plastic potential + :varlink:`SEAICE_ALLOW_TD`, #undef, enable use of teardrop and parabolic Lens yield curves with normal flow rules :varlink:`SEAICE_LSR_ZEBRA`, #undef, use a coloring method for LSR solver + :varlink:`SEAICE_ALLOW_FREEDRIFT`, #undef, enable solve approximate sea ice momentum equation and bypass solving for sea ice internal stress :varlink:`SEAICE_EXTERNAL_FLUXES`, #define, use :filelink:`pkg/exf`-computed fluxes as starting point :varlink:`SEAICE_ZETA_SMOOTHREG`, #define, use differentiable regularization for viscosities :varlink:`SEAICE_DELTA_SMOOTHREG`, #undef, use differentiable regularization for :math:`1/\Delta` :varlink:`SEAICE_ALLOW_BOTTOMDRAG`, #undef, enable grounding parameterization for improved fastice in shallow seas :varlink:`SEAICE_ITD`, #undef, run with dynamical sea Ice Thickness Distribution (ITD) :varlink:`SEAICE_VARIABLE_SALINITY`, #undef, enable sea ice with variable salinity + :varlink:`SEAICE_CAP_ICELOAD`, #undef, enable to limit seaice load (:varlink:`siceLoad`) on the sea surface :varlink:`ALLOW_SITRACER`, #undef, enable sea ice tracer package :varlink:`SEAICE_BICE_STRESS`, #undef, B-grid only for backward compatiblity: turn on ice-stress on ocean :varlink:`EXPLICIT_SSH_SLOPE`, #undef, B-grid only for backward compatiblity: use ETAN for tilt computations rather than geostrophic velocities + :varlink:`SEAICE_USE_GROWTH_ADX`, #undef, use of adjointable but more simplified sea ice thermodynamics model in :filelink:`seaice_growth_adx.F ` instead of :filelink:`seaice_growth.F ` .. _ssub_phys_pkg_seaice_runtime: @@ -77,12 +85,13 @@ Run-time parameters =================== Run-time parameters (see :numref:`tab_phys_pkg_seaice_runtimeparms`) are set in -`data.seaice` (read in :filelink:`pkg/seaice/seaice_readparms.F`). +``data.seaice`` (read in :filelink:`pkg/seaice/seaice_readparms.F`). Enabling the package -------------------- -:filelink:`seaice ` package is switched on/off at runtime by setting :varlink:`useSEAICE` ``= .TRUE.`` in ``data.pkg``. +:filelink:`seaice ` package is switched on/off at run-time by +setting :varlink:`useSEAICE` ``= .TRUE.,`` in ``data.pkg``. General flags and parameters ---------------------------- @@ -104,7 +113,15 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEuseJFNK` | FALSE | use the JFNK-solver | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEuseTEM` | FALSE | use truncated ellipse method | + | :varlink:`SEAICEuseTEM` | FALSE | use truncated ellipse method or coulombic yield curve | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEuseMCS` | FALSE | use the Mohr-Coulomb yield curve with shear flow rule | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEuseMCE` | FALSE | use the Mohr-Coulomb yield curve with elliptical plastic potential | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEuseTD` | FALSE | use the teardrop yield curve with normal flow rule | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEusePL` | FALSE | use the parabolic Lens yield curve with normal flow rule | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEuseStrImpCpl` | FALSE | use strength implicit coupling in LSR/JFNK | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -112,13 +129,15 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEuseEVPpickup` | TRUE | use EVP pickups | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEuseFREEDRIFT` | FALSE | solve approximate momentum equation, bypassing rheology | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEuseFluxForm` | TRUE | use flux form for 2nd central difference advection scheme | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICErestoreUnderIce` | FALSE | enable restoring to climatology under ice | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEupdateOceanStress` | TRUE | update ocean surface stress accounting for sea ice cover | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEscaleSurfStress` | TRUE | scale atmosphere and ocean-surface stress on ice by concentration (AREA)| + | :varlink:`SEAICEscaleSurfStress` | TRUE | scale atmosphere and ocean-surface stress on ice by concentration (AREA)| +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEaddSnowMass` | TRUE | in computing seaiceMass, add snow contribution | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -138,6 +157,9 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEuseFlooding` | TRUE | use flood-freeze algorithm | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SINegFac` | 1.0 | over/undershoot factor for seaice advective term in forward/adjoint | + | | | (SEAICE_USE_GROWTH_ADX only) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_no_slip` | FALSE | use no-slip boundary conditions instead of free-slip | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_deltaTtherm` | :varlink:`dTtracerLev` (1) | time step for seaice thermodynamics (s) | @@ -146,9 +168,9 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_deltaTevp` | 0.0 | EVP sub-cycling time step (s); values :math:`>` 0 turn on EVP | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEuseEVPstar` | FALSE | use modified EVP\* instead of EVP, following :cite:`lemieux12` | + | :varlink:`SEAICEuseEVPstar` | TRUE | use modified EVP\* instead of EVP, following :cite:`lemieux:12` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEuseEVPrev` | FALSE | "revisited form" variation on EVP\*, following :cite:`bouillon13` | + | :varlink:`SEAICEuseEVPrev` | TRUE | "revisited form" variation on EVP\*, following :cite:`bouillon:13` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEnEVPstarSteps` | unset | number of modified EVP\* iterations | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -160,13 +182,13 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEaEVPcoeff` | unset | largest stabilized frequency for adaptive EVP (non-dim.) | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEaEVPcStar` | 4.0 | aEVP multiple of stability factor (non-dim.), see :cite:`kimmritz16` | + | :varlink:`SEAICEaEVPcStar` | 4.0 | aEVP multiple of stability factor (non-dim.), see :cite:`kimmritz:16` | | | | :math:`\alpha * \beta = c^\ast * \gamma` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEaEVPalphaMin` | 5.0 | aEVP lower limit of alpha and beta (non-dim.), see :cite:`kimmritz16` | + | :varlink:`SEAICEaEVPalphaMin` | 5.0 | aEVP lower limit of alpha and beta (non-dim.), see :cite:`kimmritz:16` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_elasticParm` | 0.33333333 | EVP parameter :math:`E_0` (non-dim.), sets relaxation timescale | - | | | :varlink:`SEAICE_evpTauRelaxtau` = | + | | | :varlink:`SEAICE_evpTauRelax` = | | | | :varlink:`SEAICE_elasticParm` * :varlink:`SEAICE_deltaTdyn` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_evpTauRelax` | :varlink:`dTtracerLev` (1) * | relaxation time scale :math:`T` for EVP waves (s) | @@ -182,6 +204,10 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_JFNK_lsIter` | (off) | start line search after “lsIter” Newton iterations | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICE_JFNK_lsLmax` | 4 | maximum number of line search steps | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICE_JFNK_lsGamma` | 0.5 | line search step size parameter | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEnonLinTol` | 1.0E-05 | non-linear tolerance parameter for JFNK solver | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`JFNKgamma_lin_min` | 0.10 | minimum tolerance parameter for linear JFNK solver | @@ -222,6 +248,14 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_eccen` | 2.0 | VP rheology ellipse aspect ratio :math:`e` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICE_eccfr` | = :varlink:`SEAICE_eccen` | sea ice plastic potential ellipse aspect ratio :math:`e_G` | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEmcMU` | 1.0 | slope of the Mohr-Coulomb yield curve | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICEpressReplFac` | 1.0 | use replacement pressure (0.0-1.0) | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ + | :varlink:`SEAICE_tensilFac` | 0.0 | tensile factor for the yield curve | + +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_rhoAir` | 1.3 (or | density of air (kg/m\ :sup:`3`) | | | :filelink:`pkg/exf` value) | | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -265,7 +299,7 @@ General flags and parameters | :varlink:`HsaltFile` | unset | filename for initial eff. sea ice salinity field :varlink:`HSALT` | | | | (g/m\ :sup:`2`) | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`LSR_ERROR` | 1.0E-04 | sets accuracy of LSR solver | + | :varlink:`LSR_ERROR` | 1.0E-05 | sets accuracy of LSR solver | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`DIFF1` | 0.0 | parameter used in advect.F | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -293,9 +327,9 @@ General flags and parameters +------------------------------------+------------------------------+-------------------------------------------------------------------------+ -The following dynamical ice thickness distribution and ridging parameters in :numref:`tab_phys_pkg_seaice_ridging` -are only active with #define :varlink:`SEAICE_ITD`. -All parameters are non-dimensional unless indicated. +The following dynamical ice thickness distribution and ridging parameters in +:numref:`tab_phys_pkg_seaice_ridging` are only active with #define +:varlink:`SEAICE_ITD`. All parameters are non-dimensional unless indicated. .. tabularcolumns:: |\Y{.275}|\Y{.20}|\Y{.525}| @@ -306,16 +340,16 @@ All parameters are non-dimensional unless indicated. +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | Name | Default value | Description | +====================================+==============================+=========================================================================+ - | :varlink:`useHibler79IceStrength` | TRUE | use :cite:`hib79` ice strength; do not use :cite:`rothrock:75` | + | :varlink:`useHibler79IceStrength` | TRUE | use :cite:`hibler:79` ice strength; do not use :cite:`rothrock:75` | | | | with #define :varlink:`SEAICE_ITD` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEsimpleRidging` | TRUE | use simple ridging a la :cite:`hib79` | + | :varlink:`SEAICEsimpleRidging` | TRUE | use simple ridging a la :cite:`hibler:79` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICE_cf` | 17.0 | scaling parameter of :cite:`rothrock:75` ice strength parameterization | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEpartFunc` | 0 | use partition function of :cite:`thorndike:75` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ - | :varlink:`SEAICEredistFunc` | 0 | use redistribution function of :cite:`hib80` | + | :varlink:`SEAICEredistFunc` | 0 | use redistribution function of :cite:`hibler:80` | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ | :varlink:`SEAICEridgingIterMax` | 10 | maximum number of ridging sweeps | +------------------------------------+------------------------------+-------------------------------------------------------------------------+ @@ -350,24 +384,25 @@ All parameters are non-dimensional unless indicated. Description =========== -The MITgcm sea ice model is based on a variant of the -viscous-plastic (VP) dynamic-thermodynamic sea ice model (Zhang and Hibler 1997 :cite:`zhang97`) first -introduced in Hibler (1979) and Hibler (1980) :cite:`hib79,hib80`. -In order to adapt this model to the requirements of -coupled ice-ocean state estimation, many important aspects of the -original code have been modified and improved, see Losch et al. (2010) :cite:`losch:10`: +The MITgcm sea ice model is based on a variant of the viscous-plastic (VP) +dynamic-thermodynamic sea ice model (Zhang and Hibler 1997 :cite:`zhang:97`) +first introduced in Hibler (1979) and Hibler (1980) +:cite:`hibler:79,hibler:80`. In order to adapt this model to the requirements +of coupled ice-ocean state estimation, many important aspects of the original +code have been modified and improved, see Losch et al. (2010) :cite:`losch:10`: - the code has been rewritten for an Arakawa C-grid, both B- and C-grid - variants are available; the C-grid code allows for no-slip and - free-slip lateral boundary conditions; + variants are available; the C-grid code allows for no-slip and free-slip + lateral boundary conditions; - three different solution methods for solving the nonlinear momentum - equations have been adopted: LSOR (Zhang and Hibler 1997 :cite:`zhang97`), - EVP (Hunke and Dukowicz 1997 :cite:`hun97`), - JFNK (Lemieux et al. 2010 :cite:`lemieux10`, Losch et al. 2014 :cite:`losch:14`); + equations have been adopted: LSOR (Zhang and Hibler 1997 :cite:`zhang:97`), + EVP (Hunke and Dukowicz 1997 :cite:`hunke:97`), + JFNK (Lemieux et al. 2010 :cite:`lemieux:10`, Losch et al. 2014 + :cite:`losch:14`); - ice-ocean stress can be formulated as in Hibler and Bryan (1987) - :cite:`hibler87` or as in Campin et al. (2008) :cite:`cam:08`; + :cite:`hibler:87` or as in Campin et al. (2008) :cite:`campin:08`; - ice variables are advected by sophisticated, conservative advection schemes with flux limiting; @@ -376,48 +411,60 @@ original code have been modified and improved, see Losch et al. (2010) :cite:`lo order to allow for more stable automatic differentiation of the code. The sea ice model is tightly coupled to the ocean compontent of the -MITgcm. Heat, fresh water fluxes and surface stresses are computed from -the atmospheric state and, by default, modified by the ice model at -every time step. - -The ice dynamics models that are most widely used for large-scale -climate studies are the viscous-plastic (VP) model (Hilber 1979 :cite:`hib79`), the cavitating -fluid (CF) model (Flato and Hibler 1992 :cite:`fla92`), -and the elastic-viscous-plastic (EVP) model (Hunke and Dukowicz 1997 :cite:`hun97`). -Compared to the VP model, the CF model does not allow ice shear in -calculating ice motion, stress, and deformation. EVP models approximate -VP by adding an elastic term to the equations for easier adaptation to -parallel computers. Because of its higher accuracy in plastic solution -and relatively simpler formulation, compared to the EVP model, we -decided to use the VP model as the default dynamic component of our ice -model. To do this we extended the line successive over relaxation (LSOR) -method of Zhang and Hibler (1997) :cite:`zhang97` for use in a -parallel configuration. An EVP model and a +MITgcm. Heat, fresh water fluxes and surface stresses are computed from the +atmospheric state and, by default, modified by the ice model at every time +step. + +The ice dynamics models that are most widely used for large-scale climate +studies are the viscous-plastic (VP) model (Hilber 1979 :cite:`hibler:79`), the +cavitating fluid (CF) model (Flato and Hibler 1992 :cite:`flato:92`), and the +elastic-viscous-plastic (EVP) model (Hunke and Dukowicz 1997 :cite:`hunke:97`). +Compared to the VP model, the CF model does not allow ice shear in calculating +ice motion, stress, and deformation. EVP models approximate VP by adding an +elastic term to the equations for easier adaptation to parallel +computers. Because of its higher accuracy in plastic solution and relatively +simpler formulation, compared to the EVP model, we decided to use the VP model +as the default dynamic component of our ice model. To do this we extended the +line successive over relaxation (LSOR) method of Zhang and Hibler (1997) +:cite:`zhang:97` for use in a parallel configuration. An EVP model and a free-drift implementation can be selected with run-time flags. +:filelink:`pkg/seaice` includes the original so-called zero-layer +thermodynamics with a snow cover as in the appendix of Semtner (1976) +:cite:`semtner:76`. Two versions of this zero-layer thermodynamic code exist, +with a more developed version :filelink:`seaice_growth.F +` and a simplified version +:filelink:`seaice_growth_adx.F ` based on +Fenty (2013) :cite:`fenty:13` that excludes physics such as ITD, treatment for +sublimation, and frazil ice but provides a stable sea ice adjointable with +physical sensitivity. When the seaice_growth_adx code is enabled (by defining +:varlink:`SEAICE_USE_GROWTH_ADX` in :filelink:`SEAICE_OPTIONS.h +`), the regularization parameter +:varlink:`SINegFac` is set to zero in adjoint mode to disable the potential +propagation of unphysical terms associated with sea ice dynamics. + .. _para_phys_pkg_seaice_thsice: Compatibility with ice-thermodynamics package :filelink:`pkg/thsice` -------------------------------------------------------------------- -By default :filelink:`pkg/seaice` includes the original so-called -zero-layer thermodynamics with a snow cover as in the -appendix of Semtner (1976) :cite:`sem76`. The zero-layer thermodynamic -model assumes that ice does not store heat and, therefore, tends to -exaggerate the seasonal variability in ice thickness. This -exaggeration can be significantly reduced by using Winton's (Winton -2000 :cite:`win00`) three-layer thermodynamic model that permits heat -storage in ice. - -The Winton (2000) sea-ice thermodynamics have been ported to MITgcm; they currently -reside under :filelink:`pkg/thsice`, described in :numref:`sub_phys_pkg_thsice`. -It is fully compatible with the packages :filelink:`seaice ` and :filelink:`exf `. -When turned on together with :filelink:`seaice `, the zero-layer -thermodynamics are replaced by the Winton thermodynamics. In order to use -package :filelink:`seaice ` with the thermodynamics of :filelink:`pkg/thsice`, -compile both packages and turn both package on in ``data.pkg``; see an example -in :filelink:`verification/global_ocean.cs32x15/input.icedyn`. Note, that once +The zero-layer thermodynamic model assumes that ice does +not store heat and, therefore, tends to exaggerate the seasonal variability in +ice thickness. This exaggeration can be significantly reduced by using Winton's +(Winton 2000 :cite:`winton:00`) three-layer thermodynamic model that permits +heat storage in ice. + +The Winton (2000) sea-ice thermodynamics have been ported to MITgcm; they +currently reside under :filelink:`pkg/thsice`, described in +:numref:`sub_phys_pkg_thsice`. It is fully compatible with the packages +:filelink:`seaice ` and :filelink:`exf `. When turned on +together with :filelink:`seaice `, the zero-layer thermodynamics +are replaced by the Winton thermodynamics. In order to use package +:filelink:`seaice ` with the thermodynamics of +:filelink:`pkg/thsice`, compile both packages and turn both package on in +``data.pkg``; see an example in +:filelink:`verification/global_ocean.cs32x15/input.icedyn`. Note, that once :filelink:`thsice ` is turned on, the variables and diagnostics associated to the default thermodynamics are meaningless, and the diagnostics of :filelink:`thsice ` must be used instead. @@ -427,63 +474,58 @@ of :filelink:`thsice ` must be used instead. Surface forcing --------------- -The sea ice model requires the following input fields: 10 m winds, 2 m air temperature -and specific humidity, downward longwave and shortwave radiations, precipitation, evaporation, -and river and glacier runoff. The sea ice model also requires surface temperature from -the ocean model and the top level horizontal velocity. Output fields are surface wind stress, -evaporation minus precipitation minus runoff, net surface heat flux, and net shortwave flux. -The sea-ice model is global: in ice-free regions bulk formulae (by default computed in package -:filelink:`exf `) are used to estimate -oceanic forcing from the atmospheric fields. +The sea ice model requires the following input fields: 10 m winds, 2 m air +temperature and specific humidity, downward longwave and shortwave radiations, +precipitation, evaporation, and river and glacier runoff. The sea ice model +also requires surface temperature from the ocean model and the top level +horizontal velocity. Output fields are surface wind stress, evaporation minus +precipitation minus runoff, net surface heat flux, and net shortwave flux. The +sea-ice model is global: in ice-free regions bulk formulae (by default computed +in package :filelink:`exf `) are used to estimate oceanic forcing from +the atmospheric fields. -.. _para_phys_pkg_seaice_dynamics: +.. _ssub_phys_pkg_seaice_dynamics: Dynamics --------- - +======== The momentum equation of the sea-ice model is .. math:: - m \frac{D\mathbf{u}}{Dt} = -mf\mathbf{k}\times\mathbf{u} + + m \frac{D\mathbf{u}}{Dt} = -mf\hat{\mathbf{k}}\times\mathbf{u} + \mathbf{\tau}_\mathrm{air} + \mathbf{\tau}_\mathrm{ocean} - m \nabla{\phi(0)} + \mathbf{F} :label: eq_momseaice where :math:`m=m_{i}+m_{s}` is the ice and snow mass per unit area; -:math:`\mathbf{u}=u\mathbf{i}+v\mathbf{j}` -is the ice velocity vector; :math:`\mathbf{i}`, -:math:`\mathbf{j}`, and -:math:`\mathbf{k}` are unit vectors in the -:math:`x`, :math:`y`, and :math:`z` directions, respectively; :math:`f` -is the Coriolis parameter; -:math:`\mathbf{\tau}_\mathrm{air}` and -:math:`\mathbf{\tau}_\mathrm{ocean}` are the -wind-ice and ocean-ice stresses, respectively; :math:`g` is the gravity -accelation; :math:`\nabla\phi(0)` is the gradient (or tilt) of the sea -surface height; :math:`\phi(0) = g\eta + p_{a}/\rho_{0} + mg/\rho_{0}` -is the sea surface height potential in response to ocean dynamics -(:math:`g\eta`), to atmospheric pressure loading -(:math:`p_{a}/\rho_{0}`, where :math:`\rho_{0}` is a reference density) -and a term due to snow and ice loading ; and -:math:`\mathbf{F}=\nabla\cdot\sigma` is the -divergence of the internal ice stress tensor :math:`\sigma_{ij}`. -Advection of sea-ice momentum is neglected. The wind and ice-ocean -stress terms are given by +:math:`\mathbf{u}=u\hat{\mathbf{i}}+v\hat{\mathbf{j}}` is the ice velocity vector; +:math:`\hat{\mathbf{i}}`, :math:`\hat{\mathbf{j}}`, and :math:`\hat{\mathbf{k}}` are unit vectors +in the :math:`x`, :math:`y`, and :math:`z` directions, respectively; :math:`f` +is the Coriolis parameter; :math:`\mathbf{\tau}_\mathrm{air}` and +:math:`\mathbf{\tau}_\mathrm{ocean}` are the wind-ice and ocean-ice stresses, +respectively; :math:`g` is the gravity accelation; :math:`\nabla\phi(0)` is the +gradient (or tilt) of the sea surface height; :math:`\phi(0) = g\eta + +p_{a}/\rho_{0} + mg/\rho_{0}` is the sea surface height potential in response +to ocean dynamics (:math:`g\eta`), to atmospheric pressure loading +(:math:`p_{a}/\rho_{0}`, where :math:`\rho_{0}` is a reference density) and a +term due to snow and ice loading ; and :math:`\mathbf{F}= \nabla \cdot\sigma` is +the divergence of the internal ice stress tensor :math:`\sigma_{ij}`. +Advection of sea-ice momentum is neglected. The wind and ice-ocean stress terms +are given by .. math:: \begin{aligned} \mathbf{\tau}_\mathrm{air} = & \rho_\mathrm{air} C_\mathrm{air} - |\mathbf{U}_\mathrm{air} -\mathbf{u}| R_\mathrm{air} (\mathbf{U}_\mathrm{air} - -\mathbf{u}) \\ + |\mathbf{U}_\mathrm{air} -\mathbf{u}| R_\mathrm{air} + (\mathbf{U}_\mathrm{air} - \mathbf{u}) \\ \mathbf{\tau}_\mathrm{ocean} = & \rho_\mathrm{ocean}C_\mathrm{ocean} |\mathbf{U}_\mathrm{ocean}-\mathbf{u}| - R_\mathrm{ocean}(\mathbf{U}_\mathrm{ocean}-\mathbf{u}) + R_\mathrm{ocean}(\mathbf{U}_\mathrm{ocean} - \mathbf{u}) \end{aligned} -where :math:`\mathbf{U}_\mathrm{air/ocean}` are the -surface winds of the atmosphere and surface currents of the ocean, -respectively; :math:`C_\mathrm{air/ocean}` are air and ocean drag coefficients; +where :math:`\mathbf{U}_\mathrm{air/ocean}` are the surface winds of the +atmosphere and surface currents of the ocean, respectively; +:math:`C_\mathrm{air/ocean}` are air and ocean drag coefficients; :math:`\rho_\mathrm{air/ocean}` are reference densities; and :math:`R_\mathrm{air/ocean}` are rotation matrices that act on the wind/current vectors. @@ -493,9 +535,9 @@ vectors. Viscous-Plastic (VP) Rheology ----------------------------- -For an isotropic system the stress tensor :math:`\sigma_{ij}` -(:math:`i,j=1,2`) can be related to the ice strain rate and strength -by a nonlinear viscous-plastic (VP) constitutive law: +For an isotropic system the stress tensor :math:`\sigma_{ij}` (:math:`i,j=1,2`) +can be related to the ice strain rate and strength by a nonlinear +viscous-plastic (VP) constitutive law: .. math:: \sigma_{ij}=2\eta(\dot{\epsilon}_{ij},P)\dot{\epsilon}_{ij} @@ -511,9 +553,9 @@ The ice strain rate is given by \frac{\partial{u_{i}}}{\partial{x_{j}}} + \frac{\partial{u_{j}}}{\partial{x_{i}}}\right) -The maximum ice pressure :math:`P_{\max}`, a measure of ice strength, -depends on both thickness :math:`h` and compactness (concentration) -:math:`c`: +The maximum ice pressure :math:`P_{\max}` (variable :varlink:`PRESS0` in the +code), a measure of ice strength, depends on both thickness :math:`h` and +compactness (concentration) :math:`c`: .. math:: :label: eq_icestrength @@ -522,18 +564,99 @@ depends on both thickness :math:`h` and compactness (concentration) with the constants :math:`P^{\ast}` (run-time parameter :varlink:`SEAICE_strength`) and :math:`C^{\ast}` (run-time parameter -:varlink:`SEAICE_cStar`). The nonlinear bulk and shear viscosities -:math:`\zeta` and :math:`\eta` are functions of ice strain rate -invariants and ice strength such that the principal components of the -stress lie on an elliptical yield curve with the ratio of major to -minor axis :math:`e` (run-time parameter -:varlink:`SEAICE_eccen`) equal to :math:`2`; they are given by: +:varlink:`SEAICE_cStar`). By default, :math:`P` (variable :varlink:`PRESS` in +the code) is the replacement pressure + + .. math:: + :label: eq_pressrepl + + P = (1-k_t)\,P_{\max} \left( (1 - f_{r}) + + f_{r} \frac{\Delta}{\Delta_{\rm reg}} \right) + +where :math:`f_{r}` is run-time parameter :varlink:`SEAICEpressReplFac` +(default = 1.0), and :math:`\Delta_{\rm reg}` is a regularized form of +:math:`\Delta = \left[ \left(\dot{\epsilon}_{11}+\dot{\epsilon}_{22}\right)^2 + +e^{-2}\left( \left(\dot{\epsilon}_{11}-\dot{\epsilon}_{22} \right)^2 + +\dot{\epsilon}_{12}^2 \right) \right]^{\frac{1}{2}}`, for example +:math:`\Delta_{\rm reg} = \max(\Delta,\Delta_{\min})`. + +The tensile strength factor :math:`k_t` (run-time parameter +:varlink:`SEAICE_tensilFac`) determines the ice tensile strength :math:`T = +k_t\cdot P_{\max}`, as defined by König Beatty and Holland (2010) +:cite:`konig:10`. :varlink:`SEAICE_tensilFac` is zero by default. + +Different VP rheologies can be used to model sea ice dynamics. The different +rheologies are characterized by different definitions of the bulk and shear +viscosities :math:`\zeta` and :math:`\eta` in :eq:`eq_vpequation`. The +following :numref:`tab_phys_pkg_seaice_rheologies` is a summary of the +available choices with recommended (sensible) parameter values. All the +rheologies presented here depend on the ice strength :math:`P` +:eq:`eq_pressrepl`. + +.. tabularcolumns:: |\Y{.275}|\Y{.450}|\Y{.275}| + +.. table:: Overview over availabe sea ice viscous-plastic rheologies + :class: longtable + :name: tab_phys_pkg_seaice_rheologies + + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | Name | CPP flags | Run-time flags (recommended value) | + +=======================================+=======================================+====================================================+ + | :ref:`rheologies_ellnfr` | None (default) | - :varlink:`SEAICE_eccen` (= 2.0) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.0) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_ellnnfr` | None | - :varlink:`SEAICE_eccen` (= 2.0) | + | | | - :varlink:`SEAICE_eccfr` (< 2.0) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.0) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_TEM` | :varlink:`SEAICE_ALLOW_TEM` | - :varlink:`SEAICEuseTEM` (=.TRUE.) | + | | | - :varlink:`SEAICE_eccen` (= 1.4) | + | | | - :varlink:`SEAICE_eccfr` (< 1.4) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.05) | + | | | - :varlink:`SEAICEmcMU` (= 0.6 to 0.8) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_MCE` | :varlink:`SEAICE_ALLOW_MCE` | - :varlink:`SEAICEuseMCE` (=.TRUE.) | + | | | - :varlink:`SEAICE_eccen` (= 1.4) | + | | | - :varlink:`SEAICE_eccfr` (< 1.4) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.05) | + | | | - :varlink:`SEAICEmcMU` (= 0.6 to 0.8) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_MCS` | :varlink:`SEAICE_ALLOW_MCS` | - :varlink:`SEAICEuseMCS` (=.TRUE.) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.05) | + | | | - :varlink:`SEAICEmcMU` (= 0.6 to 0.8) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_TD` | :varlink:`SEAICE_ALLOW_TD` | - :varlink:`SEAICEuseTD` (=.TRUE.) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.025) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + | :ref:`rheologies_PL` | :varlink:`SEAICE_ALLOW_TD` | - :varlink:`SEAICEusePL` (=.TRUE.) | + | | | - :varlink:`SEAICE_tensilFac` (= 0.025) | + +---------------------------------------+---------------------------------------+----------------------------------------------------+ + + +**Note:** With the exception of the default rheology and the TEM (with +:varlink:`SEAICEmcMU` : :math:`\mu=1.0`), these rheologies are not implemented +in EVP (:numref:`para_phys_pkg_seaice_EVPdynamics`). + +.. _rheologies_ellnfr: + +Elliptical yield curve with normal flow rule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The default rheology in the sea ice module of the MITgcm implements the widely +used elliptical yield curve with a normal flow rule :cite:`hibler:79`. For +this yield curve, the nonlinear bulk and shear viscosities :math:`\zeta` and +:math:`\eta` are functions of ice strain rate invariants and ice strength such +that the principal components of the stress lie on an elliptical yield curve +with the ratio of major to minor axis :math:`e = 2.0` (run-time parameter +:varlink:`SEAICE_eccen`); they are given by: .. math:: \begin{aligned} - \zeta =& \min\left(\frac{P_{\max}}{2\max(\Delta,\Delta_{\min})}, + \zeta =& \min\left(\frac{(1+k_t)P_{\max}}{2\max(\Delta,\Delta_{\min})}, \zeta_{\max}\right) \\ - \eta =& \frac{\zeta}{e^2} \end{aligned} + \eta =& \frac{\zeta}{e^2} + \end{aligned} + :label: eq_zetareg with the abbreviation @@ -547,27 +670,29 @@ with the abbreviation The bulk viscosities are bounded above by imposing both a minimum :math:`\Delta_{\min}` (for numerical reasons, run-time parameter -:varlink:`SEAICE_deltaMin` is set to a default value of :math:`10^{-10}\,\text{s}^{-1}`, -the value of :varlink:`SEAICE_EPS`) -and a maximum :math:`\zeta_{\max} = P_{\max}/(2\Delta^\ast)`, where -:math:`\Delta^\ast=(2\times10^4/5\times10^{12})\,\text{s}^{-1}` :math:`= 2\times10^{-9}\,\text{s}^{-1}`. -Obviously, this corresponds to regularizing :math:`\Delta` with the typical value of -:varlink:`SEAICE_deltaMin` :math:`= 2\times10^{-9}`. Clearly, some of this regularization is redundant. -(There is also the option of bounding :math:`\zeta` from below by setting -run-time parameter :varlink:`SEAICE_zetaMin` :math:`>0`, but this is generally not -recommended). For stress tensor computation the replacement pressure -:math:`P = 2\,\Delta\zeta` is used so that the stress state always -lies on the elliptic yield curve by definition. +:varlink:`SEAICE_deltaMin` is set to a default value of +:math:`10^{-10}\,\text{s}^{-1}`, the value of :varlink:`SEAICE_EPS`) and a +maximum :math:`\zeta_{\max} = P_{\max}/(2\Delta^\ast)`, where +:math:`\Delta^\ast=(2\times10^4/5\times10^{12})\,\text{s}^{-1}` :math:`= +2\times10^{-9}\,\text{s}^{-1}`. Obviously, this corresponds to regularizing +:math:`\Delta` with the typical value of :varlink:`SEAICE_deltaMin` :math:`= +2\times10^{-9}`. Clearly, some of this regularization is redundant. (There is +also the option of bounding :math:`\zeta` from below by setting run-time +parameter :varlink:`SEAICE_zetaMin` :math:`>0`, but this is generally not +recommended). For stress tensor computation the replacement pressure :math:`P = +2\,\Delta\zeta` is used so that the stress state always lies on the elliptic +yield curve by definition. Defining the CPP-flag :varlink:`SEAICE_ZETA_SMOOTHREG` in -:filelink:`SEAICE_OPTIONS.h ` before compiling replaces the method for -bounding :math:`\zeta` by a smooth (differentiable) expression: +:filelink:`SEAICE_OPTIONS.h ` before compiling +replaces the method for bounding :math:`\zeta` by a smooth (differentiable) +expression: .. math:: \begin{split} - \zeta &= \zeta_{\max}\tanh\left(\frac{P}{2\,\min(\Delta,\Delta_{\min}) - \,\zeta_{\max}}\right)\\ - &= \frac{P}{2\Delta^\ast} + \zeta &= \zeta_{\max}\tanh\left(\frac{(1+k_t)P_{\max}}{2\, + \min(\Delta,\Delta_{\min}) \,\zeta_{\max}}\right)\\ + &= \frac{(1+k_t)P_{\max}}{2\Delta^\ast} \tanh\left(\frac{\Delta^\ast}{\min(\Delta,\Delta_{\min})}\right) \end{split} :label: eq_zetaregsmooth @@ -575,44 +700,186 @@ bounding :math:`\zeta` by a smooth (differentiable) expression: where :math:`\Delta_{\min}=10^{-20}\,\text{s}^{-1}` should be chosen to avoid divisions by zero. +In this default formulation the yield curve does not allow isotropic tensile +stress, that is, sea ice can be "pulled apart" without any effort. Setting the +parameter :math:`k_t` (:varlink:`SEAICE_tensilFac`) to a small value larger +than zero, extends the yield curve into a region where the divergence of the +stress :math:`\sigma_{11}+\sigma_{22} > 0` to allow some tensile stress. + +Besides this commonly used default rheology, a number of a alternative +rheologies are implemented. Some of these are experiemental and should be used +with caution. + +.. _rheologies_ellnnfr: + +Elliptical yield curve with non-normal flow rule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Defining the run-time parameter :varlink:`SEAICE_eccfr` with a value different +from :varlink:`SEAICE_eccen` allows one to use an elliptical yield curve with a +non-normal flow rule as described in Ringeisen et al. (2020) +:cite:`ringeisen:20`. In this case the viscosities are functions of +:math:`e_F` (:varlink:`SEAICE_eccen`) and :math:`e_G` +(:varlink:`SEAICE_eccfr`): + +.. math:: + \begin{aligned} + \zeta &= \frac{P_{\max}(1+k_t)}{2\Delta} \\ + \eta &= \frac{\zeta}{e_G^2} = \frac{P_{\max}(1+k_t)}{2e_G^2\Delta} + \end{aligned} + +with the abbreviation + +.. math:: + \Delta = \sqrt{(\dot{\epsilon}_{11}-\dot{\epsilon}_{22})^2 + +\frac{e_F^2}{e_G^4}((\dot{\epsilon}_{11} + -\dot{\epsilon}_{22})^2+4\dot{\epsilon}_{12}^2)}. + +Note that if :math:`e_G=e_F=e`, these formulae reduce to the normal flow rule. + +.. _rheologies_TEM: + +Truncated ellipse method (TEM) for elliptical yield curve +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the so-called truncated ellipse method, the shear viscosity :math:`\eta` is +capped to suppress any tensile stress: + +.. math:: + \eta = \min\left(\frac{\zeta}{e^2}, + \frac{\frac{(1+k_t)\,P_{\max}}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} + {\sqrt{\max(\Delta_{\min}^{2},(\dot{\epsilon}_{11}-\dot{\epsilon}_{22})^2 + +4\dot{\epsilon}_{12}^2})}\right). + :label: eq_etatem + +To enable this method, set ``#define`` :varlink:`SEAICE_ALLOW_TEM` in +:filelink:`SEAICE_OPTIONS.h ` and turn it on with +:varlink:`SEAICEuseTEM` ``=.TRUE.,`` in ``data.seaice``. This parameter +combination implies the default of :varlink:`SEAICEmcMU` :math:`= 1.0`. + +Instead of an ellipse that is truncated by constant slope coulombic limbs, this +yield curve can also be seen as a Mohr-Coulomb yield curve with elliptical flow +rule that is truncated for high :math:`P` by an ellipse. As a consequence, the +Mohr-Coulomb slope :varlink:`SEAICEmcMU` can be set in ``data.seaice`` to +values :math:`\ne 1.0`. This defines a coulombic yield curve similar to the +ones shown in Hibler and Schulson (2000) :cite:`hibler:00` and Ringeisen et +al. (2019) :cite:`ringeisen:19`. + +For this rheology, it is recommended to use a non-zero tensile strength, so set +:varlink:`SEAICE_tensilFac` :math:`=k_{t}>0` in ``data.seaice``, e.g., :math:`= +0.05` or 5%. + +.. _rheologies_MCE: + +Mohr-Coulomb yield curve with elliptical plastic potential +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To use a Mohr-Coulomb rheology, set ``#define`` :varlink:`SEAICE_ALLOW_MCE` in +:filelink:`SEAICE_OPTIONS.h ` and +:varlink:`SEAICEuseMCE` ``= .TRUE.,`` in ``data.seaice``. This Mohr-Coulomb +yield curve uses an elliptical plastic potential to define the flow rule. The +slope of the Mohr-Coulomb yield curve is defined by :varlink:`SEAICEmcMU` in +``data.seaice``, and the plastic potential ellipse aspect ratio is set by +:varlink:`SEAICE_eccfr` in ``data.seaice``. For details of this rheology, see +https://doi.org/10.26092/elib/380, Chapter 2. + +For this rheology, it is recommended to use a non-zero tensile strength, so set +:varlink:`SEAICE_tensilFac` :math:`>0` in ``data.seaice``, e.g., :math:`= 0.05` +or 5%. + +.. _rheologies_MCS: + +Mohr-Coulomb yield curve with shear flow rule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To use the specifc Mohr-Coulomb rheology as defined first by Ip et al. (1991) +:cite:`ip:91`, set ``#define`` :varlink:`SEAICE_ALLOW_MCS` in +:filelink:`SEAICE_OPTIONS.h ` and +:varlink:`SEAICEuseMCS` ``= .TRUE.,`` in ``data.seaice``. The slope of the +Mohr-Coulomb yield curve is defined by :varlink:`SEAICEmcMU` in +``data.seaice``. For details of this rheology, including the tensile strength, +see https://doi.org/10.26092/elib/380, Chapter 2. + +For this rheology, it is recommended to use a non-zero tensile strength, so set +:varlink:`SEAICE_tensilFac` :math:`>0` in ``data.seaice``, e.g., :math:`= 0.05` +or 5%. + +**WARNING: This rheology is known to be unstable. Use with caution!** + +.. _rheologies_TD: + +Teardrop yield curve with normal flow rule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The teardrop rheology was first described in Zhang and Rothrock (2005) +:cite:`zha:05`. Here we implement a slightly modified version (See +https://doi.org/10.26092/elib/380, Chapter 2). + +To use this rheology, set ``#define`` :varlink:`SEAICE_ALLOW_TEARDROP` in +:filelink:`SEAICE_OPTIONS.h ` and +:varlink:`SEAICEuseTD` ``= .TRUE.,`` in ``data.seaice``. The size of the yield +curve can be modified by changing the tensile strength, using +:varlink:`SEAICE_tensFac` in ``data.seaice``. + +For this rheology, it is recommended to use a non-zero tensile strength, so set +:varlink:`SEAICE_tensilFac` :math:`>0` in ``data.seaice``, e.g., :math:`= +0.025` or 2.5%. + +.. _rheologies_PL: + +Parabolic lens yield curve with normal flow rule +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The parabolic lens rheology was first described in Zhang and Rothrock (2005) +:cite:`zha:05`. Here we implement a slightly modified version (See +https://doi.org/10.26092/elib/380, Chapter 2). + +To use this rheology, set ``#define`` :varlink:`SEAICE_ALLOW_TEARDROP` in +:filelink:`SEAICE_OPTIONS.h ` and +:varlink:`SEAICEusePL` ``= .TRUE.,`` in ``data.seaice``. The size of the yield +curve can be modified by changing the tensile strength, using +:varlink:`SEAICE_tensFac` in ``data.seaice``. + +For this rheology, it is recommended to use a non-zero tensile strength, so set +:varlink:`SEAICE_tensilFac` :math:`>0` in ``data.seaice``, e.g., :math:`= +0.025` or 2.5%. + .. _para_phys_pkg_seaice_LSRJFNK: LSR and JFNK solver ------------------- -In matrix notation, the discretized momentum equations can be -written as +In matrix notation, the discretized momentum equations can be written as .. math:: :label: eq_matrixmom \mathbf{A}(\mathbf{x})\,\mathbf{x} = \mathbf{b}(\mathbf{x}). -The solution vector :math:`\mathbf{x}` consists of the two velocity -components :math:`u` and :math:`v` that contain the velocity variables -at all grid points and at one time level. The standard (and default) -method for solving Eq. :eq:`eq_matrixmom` in the sea ice component of -MITgcm is an iterative Picard solver: in the -:math:`k`-th iteration a linearized form +The solution vector :math:`\mathbf{x}` consists of the two velocity components +:math:`u` and :math:`v` that contain the velocity variables at all grid points +and at one time level. The standard (and default) method for solving +Eq. :eq:`eq_matrixmom` in the sea ice component of MITgcm is an iterative +Picard solver: in the :math:`k`-th iteration a linearized form :math:`\mathbf{A}(\mathbf{x}^{k-1})\,\mathbf{x}^{k} = -\mathbf{b}(\mathbf{x}^{k-1})` is solved (in the case of MITgcm it -is a Line Successive (over) Relaxation (LSR) algorithm). Picard -solvers converge slowly, but in practice the iteration is generally terminated -after only a few nonlinear steps and the calculation continues with -the next time level. This method is the default method in -MITgcm. The number of nonlinear iteration steps or pseudo-time steps -can be controlled by the run-time parameter :varlink:`SEAICEnonLinIterMax` -(default is 2). - -In order to overcome the poor convergence of the Picard-solver, -Lemieux et al. (2010) :cite:`lemieux10` introduced a Jacobian-free Newton-Krylov solver for -the sea ice momentum equations. This solver is also implemented in -MITgcm (see Losch et al. 2014 :cite:`losch:14`). The Newton method transforms minimizing -the residual :math:`\mathbf{F}(\mathbf{x}) = -\mathbf{A}(\mathbf{x})\,\mathbf{x} - \mathbf{b}(\mathbf{x})` to -finding the roots of a multivariate Taylor expansion of the residual -:math:`\mathbf{F}` around the previous (:math:`k-1`) estimate -:math:`\mathbf{x}^{k-1}`: +\mathbf{b}(\mathbf{x}^{k-1})` is solved (in the case of MITgcm it is a Line +Successive (over) Relaxation (LSR) algorithm). Picard solvers converge slowly, +but in practice the iteration is generally terminated after only a few +nonlinear steps and the calculation continues with the next time level. This +method is the default method in MITgcm. The number of nonlinear iteration steps +or pseudo-time steps can be controlled by the run-time parameter +:varlink:`SEAICEnonLinIterMax`. This parameter's default is 2, but using a +number of at least 10 is recommended for better solutions that are converged at +least in an energy norm sense (Zhang and Hibler 1997) :cite:`zhang:97`. + +In order to overcome the poor convergence of the Picard solver, Lemieux et +al. (2010) :cite:`lemieux:10` introduced a Jacobian-free Newton-Krylov solver +for the sea ice momentum equations. This solver is also implemented in MITgcm +(see Losch et al. 2014 :cite:`losch:14`). The Newton method transforms +minimizing the residual :math:`\mathbf{F}(\mathbf{x}) = +\mathbf{A}(\mathbf{x})\,\mathbf{x} - \mathbf{b}(\mathbf{x})` to finding the +roots of a multivariate Taylor expansion of the residual :math:`\mathbf{F}` +around the previous (:math:`k-1`) estimate :math:`\mathbf{x}^{k-1}`: .. math:: \mathbf{F}(\mathbf{x}^{k-1}+\delta\mathbf{x}^{k}) = @@ -620,35 +887,37 @@ finding the roots of a multivariate Taylor expansion of the residual \,\delta\mathbf{x}^{k} :label: eq_jfnktaylor -with the Jacobian -:math:`\mathbf{J}\equiv\mathbf{F}'`. -The root -:math:`\mathbf{F}(\mathbf{x}^{k-1}+\delta\mathbf{x}^{k})=0` -is found by solving +with the Jacobian :math:`\mathbf{J}\equiv\mathbf{F}'`. The root +:math:`\mathbf{F}(\mathbf{x}^{k-1}+\delta\mathbf{x}^{k})=0` is found by solving .. math:: \mathbf{J}(\mathbf{x}^{k-1})\,\delta\mathbf{x}^{k} = -\mathbf{F}(\mathbf{x}^{k-1}) :label: eq_jfnklin -for :math:`\delta\mathbf{x}^{k}`. The next -(:math:`k`-th) estimate is given by -:math:`\mathbf{x}^{k}=\mathbf{x}^{k-1}+a\,\delta\mathbf{x}^{k}`. -In order to avoid overshoots the factor :math:`a` is iteratively reduced -in a line search -(:math:`a=1, \frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \ldots`) until -:math:`\|\mathbf{F}(\mathbf{x}^k)\| < \|\mathbf{F}(\mathbf{x}^{k-1})\|`, -where :math:`\|\cdot\|=\int\cdot\,dx^2` is the :math:`L_2`-norm. In -practice, the line search is stopped at :math:`a=\frac{1}{8}`. The line -search starts after :varlink:`SEAICE_JFNK_lsIter` nonlinear -Newton iterations (off by default). - -Forming the Jacobian :math:`\mathbf{J}` explicitly is -often avoided as “too error prone and time consuming”. Instead, Krylov -methods only require the action of :math:`\mathbf{J}` on an arbitrary -vector :math:`\mathbf{w}` and hence allow a matrix free algorithm -for solving :eq:`eq_jfnklin`. The action of :math:`\mathbf{J}` can be -approximated by a first-order Taylor series expansion: +for :math:`\delta\mathbf{x}^{k}`. The next (:math:`k`-th) estimate is given by +:math:`\mathbf{x}^{k}=\mathbf{x}^{k-1}+(1-\gamma_{\mathrm{LS}})^{l} +\,\delta\mathbf{x}^{k}`. + +By default :math:`l=0`, but in order to avoid overshoots, the step size factor +:math:`(1-\gamma_{\mathrm{LS}})^{l}` with :math:`\gamma_{\mathrm{LS}}<1` can be +iteratively reduced in a line search with :math:`l=0,1,2,\ldots` until +:math:`\|\mathbf{F}(\mathbf{x}^k)\| < \|\mathbf{F}(\mathbf{x}^{k-1})\|`, where +:math:`\|\cdot\|=\int\cdot\,dx^2` is the :math:`L_2`-norm. The line search +starts after :varlink:`SEAICE_JFNK_lsIter` nonlinear Newton iterations (off by +default) to allow for full Newton steps at the beginning of the iteration. If +the line search is turned on by setting :varlink:`SEAICE_JFNK_lsIter` to a +non-negative value in ``data.seaice``, by default, the line search with +:math:`\gamma_\mathrm{LS}=\frac{1}{2}` (runtime parameter +:varlink:`SEAICE_JFNK_lsGamma`) is stopped after :math:`L_{\max}=4` (runtime +parameter :varlink:`SEAICE_JFNK_lsLmax`) steps. + +Forming the Jacobian :math:`\mathbf{J}` explicitly is often avoided as “too +error prone and time consuming”. Instead, Krylov methods only require the +action of :math:`\mathbf{J}` on an arbitrary vector :math:`\mathbf{w}` and +hence allow a matrix free algorithm for solving :eq:`eq_jfnklin`. The action of +:math:`\mathbf{J}` can be approximated by a first-order Taylor series +expansion: .. math:: \mathbf{J}(\mathbf{x}^{k-1})\,\mathbf{w} \approx @@ -660,13 +929,12 @@ or computed exactly with the help of automatic differentiation (AD) tools. :varlink:`SEAICE_JFNKepsilon` sets the step size :math:`\epsilon`. We use the Flexible Generalized Minimum RESidual (FMGRES) method with -right-hand side preconditioning to solve :eq:`eq_jfnklin` -iteratively starting from a first guess of -:math:`\delta\mathbf{x}^{k}_{0} = 0`. For the preconditioning matrix -:math:`\mathbf{P}` we choose a simplified form of the system matrix -:math:`\mathbf{A}(\mathbf{x}^{k-1})` where :math:`\mathbf{x}^{k-1}` is -the estimate of the previous Newton step :math:`k-1`. The transformed -equation :eq:`eq_jfnklin` becomes +right-hand side preconditioning to solve :eq:`eq_jfnklin` iteratively starting +from a first guess of :math:`\delta\mathbf{x}^{k}_{0} = 0`. For the +preconditioning matrix :math:`\mathbf{P}` we choose a simplified form of the +system matrix :math:`\mathbf{A}(\mathbf{x}^{k-1})` where +:math:`\mathbf{x}^{k-1}` is the estimate of the previous Newton step +:math:`k-1`. The transformed equation :eq:`eq_jfnklin` becomes .. math:: \mathbf{J}(\mathbf{x}^{k-1})\,\mathbf{P}^{-1}\delta\mathbf{z} = @@ -674,41 +942,41 @@ equation :eq:`eq_jfnklin` becomes \delta{\mathbf{z}} = \mathbf{P}\delta\mathbf{x}^{k} :label: eq_jfnklinpc -The Krylov method iteratively improves the approximate solution -to :eq:`eq_jfnklinpc` in subspace -(:math:`\mathbf{r}_0`, :math:`\mathbf{J}\mathbf{P}^{-1}\mathbf{r}_0`, +The Krylov method iteratively improves the approximate solution to +:eq:`eq_jfnklinpc` in subspace (:math:`\mathbf{r}_0`, +:math:`\mathbf{J}\mathbf{P}^{-1}\mathbf{r}_0`, :math:`(\mathbf{J}\mathbf{P}^{-1})^2\mathbf{r}_0`, :math:`\dots`, -:math:`(\mathbf{J}\mathbf{P}^{-1})^m\mathbf{r}_0`) -with increasing :math:`m`; -:math:`\mathbf{r}_0 = -\mathbf{F}(\mathbf{x}^{k-1}) -\mathbf{J}(\mathbf{x}^{k-1})\,\delta\mathbf{x}^{k}_{0}` -is the initial residual of :eq:`eq_jfnklin`; -:math:`\mathbf{r}_0=-\mathbf{F}(\mathbf{x}^{k-1})` -with the first guess -:math:`\delta\mathbf{x}^{k}_{0}=0`. We allow a -Krylov-subspace of dimension \ :math:`m=50` and we do allow restarts for more than 50 Krylov iterations. -The preconditioning operation involves applying -:math:`\mathbf{P}^{-1}` to the basis vectors -:math:`\mathbf{v}_0, \mathbf{v}_1, \mathbf{v}_2, \ldots, \mathbf{v}_m` -of the Krylov subspace. This operation is approximated by solving the -linear system -:math:`\mathbf{P}\,\mathbf{w}=\mathbf{v}_i`. -Because :math:`\mathbf{P} \approx \mathbf{A}(\mathbf{x}^{k-1})`, we -can use the LSR-algorithm already implemented in the Picard solver. Each -preconditioning operation uses a fixed number of 10 LSR-iterations -avoiding any termination criterion. More details and results can be -found in Losch et al. (2014) :cite:`losch:14`). - -To use the JFNK-solver set :varlink:`SEAICEuseJFNK` ``= .TRUE.,`` in the namelist file -``data.seaice``; ``#define`` :varlink:`SEAICE_ALLOW_JFNK` in -:filelink:`SEAICE_OPTIONS.h ` and we recommend using a -smooth regularization of :math:`\zeta` by ``#define`` :varlink:`SEAICE_ZETA_SMOOTHREG` -(see above) for better convergence. The nonlinear Newton iteration is terminated when -the :math:`L_2`-norm of the residual is reduced by :math:`\gamma_{\mathrm{nl}}` -(run-time parameter :varlink:`SEAICEnonLinTol` ``= 1.E-4,`` will already lead to expensive simulations) -with respect to the initial norm: :math:`\|\mathbf{F}(\mathbf{x}^k)\| < -\gamma_{\mathrm{nl}}\|\mathbf{F}(\mathbf{x}^0)\|`. -Within a nonlinear iteration, the linear FGMRES solver is terminated -when the residual is smaller than :math:`\gamma_k\|\mathbf{F}(\mathbf{x}^{k-1})\|` where :math:`\gamma_k` is determined by +:math:`(\mathbf{J}\mathbf{P}^{-1})^m\mathbf{r}_0`) with increasing :math:`m`; +:math:`\mathbf{r}_0 = -\mathbf{F}(\mathbf{x}^{k-1}) +-\mathbf{J}(\mathbf{x}^{k-1})\,\delta\mathbf{x}^{k}_{0}` is the initial +residual of :eq:`eq_jfnklin`; +:math:`\mathbf{r}_0=-\mathbf{F}(\mathbf{x}^{k-1})` with the first guess +:math:`\delta\mathbf{x}^{k}_{0}=0`. We allow a Krylov subspace of dimension \ +:math:`m=50` and we do allow restarts for more than 50 Krylov iterations. The +preconditioning operation involves applying :math:`\mathbf{P}^{-1}` to the +basis vectors :math:`\mathbf{v}_0, \mathbf{v}_1, \mathbf{v}_2, \ldots, +\mathbf{v}_m` of the Krylov subspace. This operation is approximated by solving +the linear system :math:`\mathbf{P}\,\mathbf{w}=\mathbf{v}_i`. Because +:math:`\mathbf{P} \approx \mathbf{A}(\mathbf{x}^{k-1})`, we can use the +LSR algorithm already implemented in the Picard solver. Each preconditioning +operation uses a fixed number of 10 LSR iterations avoiding any termination +criterion. More details and results can be found in Losch et al. (2014) +:cite:`losch:14`). + +To use the JFNK solver set :varlink:`SEAICEuseJFNK` ``= .TRUE.,`` in the +namelist file ``data.seaice``; ``#define`` :varlink:`SEAICE_ALLOW_JFNK` in +:filelink:`SEAICE_OPTIONS.h ` and we recommend +using a smooth regularization of :math:`\zeta` by ``#define`` +:varlink:`SEAICE_ZETA_SMOOTHREG` (see above) for better convergence. The +nonlinear Newton iteration is terminated when the :math:`L_2`-norm of the +residual is reduced by :math:`\gamma_{\mathrm{nl}}` (run-time parameter +:varlink:`SEAICEnonLinTol` ``= 1.E-4,`` will already lead to expensive +simulations) with respect to the initial norm: +:math:`\|\mathbf{F}(\mathbf{x}^k)\| < +\gamma_{\mathrm{nl}}\|\mathbf{F}(\mathbf{x}^0)\|`. Within a nonlinear +iteration, the linear FGMRES solver is terminated when the residual is smaller +than :math:`\gamma_k\|\mathbf{F}(\mathbf{x}^{k-1})\|` where :math:`\gamma_k` is +determined by .. math:: \gamma_k = @@ -721,33 +989,36 @@ when the residual is smaller than :math:`\gamma_k\|\mathbf{F}(\mathbf{x}^{k-1})\ \end{cases} :label: eq_jfnkgammalin -so that the linear tolerance parameter :math:`\gamma_k` decreases with -the nonlinear Newton step as the nonlinear solution is approached. -This inexact Newton method is generally more robust and -computationally more efficient than exact methods. Typical parameter -choices are :math:`\gamma_0 =` :varlink:`JFNKgamma_lin_max` :math:`= 0.99`, -:math:`\gamma_{\min} =` :varlink:`JFNKgamma_lin_min` :math:`= 0.1`, and :math:`r =` +so that the linear tolerance parameter :math:`\gamma_k` decreases with the +nonlinear Newton step as the nonlinear solution is approached. This inexact +Newton method is generally more robust and computationally more efficient than +exact methods. Typical parameter choices are :math:`\gamma_0 =` +:varlink:`JFNKgamma_lin_max` :math:`= 0.99`, :math:`\gamma_{\min} =` +:varlink:`JFNKgamma_lin_min` :math:`= 0.1`, and :math:`r =` :varlink:`JFNKres_tFac` :math:`\times\|\mathbf{F}(\mathbf{x}^{0})\|` with :varlink:`JFNKres_tFac` :math:`= 0.5`. We recommend a maximum number of -nonlinear iterations :varlink:`SEAICEnewtonIterMax` :math:`= 100` and a maximum number -of Krylov iterations :varlink:`SEAICEkrylovIterMax` :math:`= 50`, because the Krylov -subspace has a fixed dimension of 50 (but restarts are allowed for :varlink:`SEAICEkrylovIterMax` :math:`> 50`). - -Setting :varlink:`SEAICEuseStrImpCpl` ``= .TRUE.,`` turns on “strength implicit -coupling” (see Hutchings et al. 2004 :cite:`hutchings04`) in the LSR-solver and in the -LSR-preconditioner for the JFNK-solver. In this mode, the different contributions of the stress -divergence terms are reordered so as to increase the diagonal dominance of the system matrix. -Unfortunately, the convergence rate of the LSR solver is increased only slightly, -while the JFNK-convergence appears to be unaffected. +nonlinear iterations :varlink:`SEAICEnewtonIterMax` :math:`= 100` and a maximum +number of Krylov iterations :varlink:`SEAICEkrylovIterMax` :math:`= 50`, +because the Krylov subspace has a fixed dimension of 50 (but restarts are +allowed for :varlink:`SEAICEkrylovIterMax` :math:`> 50`). + +Setting :varlink:`SEAICEuseStrImpCpl` to ``.TRUE.`` turns on “strength implicit +coupling” (see Hutchings et al. 2004 :cite:`hutchings:04`) in the LSR solver +and in the LSR preconditioner for the JFNK solver. In this mode, the different +contributions of the stress divergence terms are reordered so as to increase +the diagonal dominance of the system matrix. Unfortunately, the convergence +rate of the LSR solver is increased only slightly, while the JFNK convergence +appears to be unaffected. .. _para_phys_pkg_seaice_EVPdynamics: Elastic-Viscous-Plastic (EVP) Dynamics -------------------------------------- -Hunke and Dukowicz (1997) :cite:`hun97` introduced an elastic contribution to the strain rate in -order to regularize :eq:`eq_vpequation` in such a way that the -resulting elastic-viscous-plastic (EVP) and VP models are identical at steady state, +Hunke and Dukowicz (1997) :cite:`hunke:97` introduced an elastic contribution +to the strain rate in order to regularize :eq:`eq_vpequation` in such a way +that the resulting elastic-viscous-plastic (EVP) and VP models are identical at +steady state, .. math:: \frac{1}{E}\frac{\partial\sigma_{ij}}{\partial{t}} + @@ -757,20 +1028,21 @@ resulting elastic-viscous-plastic (EVP) and VP models are identical at steady st = \dot{\epsilon}_{ij}. :label: eq_evpequation -The EVP-model uses an explicit time stepping scheme with a short timestep. -According to the recommendation in Hunke and Dukowicz (1997) :cite:`hun97`, +The EVP model uses an explicit time stepping scheme with a short timestep. +According to the recommendation in Hunke and Dukowicz (1997) :cite:`hunke:97`, the EVP-model should be stepped forward in time 120 times (:varlink:`SEAICE_deltaTevp` = :varlink:`SEAICE_deltaTdyn` /120) within the -physical ocean model time step (although this parameter is under debate), -to allow for elastic waves to disappear. Because the scheme does not require a +physical ocean model time step (although this parameter is under debate), to +allow for elastic waves to disappear. Because the scheme does not require a matrix inversion it is fast in spite of the small internal timestep and simple to implement on parallel computers. For completeness, we repeat the equations -for the components of the stress tensor :math:`\sigma_{1} = \sigma_{11}+\sigma_{22}`, -:math:`\sigma_{2}= \sigma_{11}-\sigma_{22}`, -and :math:`\sigma_{12}`. Introducing the divergence :math:`D_D = \dot{\epsilon}_{11}+\dot{\epsilon}_{22}`, -and the horizontal tension and shearing strain rates, :math:`D_T = \dot{\epsilon}_{11}-\dot{\epsilon}_{22}` -and :math:`D_S = 2\dot{\epsilon}_{12}`, respectively, and using the above abbreviations, -the equations :eq:`eq_evpequation` can be written as: +for the components of the stress tensor :math:`\sigma_{1} = +\sigma_{11}+\sigma_{22}`, :math:`\sigma_{2}= \sigma_{11}-\sigma_{22}`, and +:math:`\sigma_{12}`. Introducing the divergence :math:`D_D = +\dot{\epsilon}_{11}+\dot{\epsilon}_{22}`, and the horizontal tension and +shearing strain rates, :math:`D_T = \dot{\epsilon}_{11}-\dot{\epsilon}_{22}` +and :math:`D_S = 2\dot{\epsilon}_{12}`, respectively, and using the above +abbreviations, the equations :eq:`eq_evpequation` can be written as: .. math:: \frac{\partial\sigma_{1}}{\partial{t}} + \frac{\sigma_{1}}{2T} + @@ -792,35 +1064,43 @@ timescale :math:`T` for elastic waves .. math:: E=\frac{\zeta}{T} -:math:`T=E_{0}\Delta{t}` with the tunable parameter :math:`E_0<1` and -the external (long) timestep :math:`\Delta{t}`. -:math:`E_{0} = \frac{1}{3}` is the default value in the code and close -to what and recommend. - -To use the EVP solver, make sure that both ``#define`` :varlink:`SEAICE_CGRID` and -``#define`` :varlink:`SEAICE_ALLOW_EVP` are set in -:filelink:`SEAICE_OPTIONS.h ` -(both are defined by default). The solver is turned on by setting the sub-cycling time -step :varlink:`SEAICE_deltaTevp` to a value larger than zero. The choice of -this time step is under debate. Hunke and Dukowicz (1997) :cite:`hun97` recommend order 120 -time steps for the EVP solver within one model time step +:math:`T=E_{0}\Delta{t}` with the tunable parameter :math:`E_0<1` and the +external (long) timestep :math:`\Delta{t}`. :math:`E_{0} = \frac{1}{3}` is the +default value in the code and close to what Hunke and Dukowicz (1997) +:cite:`hunke:97` recommend. + +We do not recommend to use the EVP solver in its original form. Instead, use +mEVP or aEVP instead (see :numref:`para_phys_pkg_seaice_EVPstar`). If you +really need to use the original EVP solver, make sure that both ``#define`` +:varlink:`SEAICE_CGRID` and ``#define`` :varlink:`SEAICE_ALLOW_EVP` are set in +:filelink:`SEAICE_OPTIONS.h ` (both are defined by +default). By default, the runtime parameters :varlink:`SEAICEuseEVPstar` and +:varlink:`SEAICEuseEVPrev` are set to ``.TRUE.``, which already improves the +behavoir of EVP, but for the original EVP they should be set to ``.FALSE.``. The +solver is turned on by setting the sub-cycling time step +:varlink:`SEAICE_deltaTevp` to a value larger than zero. The choice of this +time step is under debate. Hunke and Dukowicz (1997) :cite:`hunke:97` recommend +order 120 time steps for the EVP solver within one model time step :math:`\Delta{t}` (:varlink:`deltaTmom`). One can also choose order 120 time -steps within the forcing time scale, but then we recommend adjusting -the damping time scale :math:`T` accordingly, by setting either :varlink:`SEAICE_elasticParm` (:math:`E_{0}`), -so that :math:`E_{0}\Delta{t}=` forcing time scale, or directly :varlink:`SEAICE_evpTauRelax` (:math:`T`) -to the forcing time scale. (**NOTE**: with the improved EVP variants of the next section, -the above recommendations are obsolete. Use mEVP or aEVP instead.) +steps within the forcing time scale, but then we recommend adjusting the +damping time scale :math:`T` accordingly, by setting either +:varlink:`SEAICE_elasticParm` (:math:`E_{0}`), so that :math:`E_{0}\Delta{t}=` +forcing time scale, or directly :varlink:`SEAICE_evpTauRelax` (:math:`T`) to +the forcing time scale. (**NOTE**: with the improved EVP variants of the next +section, the above recommendations are obsolete. Use mEVP or aEVP instead.) .. _para_phys_pkg_seaice_EVPstar: More stable variants of Elastic-Viscous-Plastic Dynamics: EVP\*, mEVP, and aEVP ------------------------------------------------------------------------------- -The genuine EVP scheme appears to give noisy solutions (see Hunke 2001, Lemieux et al. 2012, -Bouillon et a1. 2013 :cite:`hun01,lemieux12,bouillon13`). This has led to a modified EVP or EVP\* -(Lemieux et al. 2012, Bouillon et a1. 2013, Kimmritz et al. 2015 :cite:`lemieux12,bouillon13,kimmritz15`); -here, we refer to these variants by modified EVP (mEVP) and adaptive EVP (aEVP). -The main idea is to modify the “natural” time-discretization of the momentum equations: +The genuine EVP scheme appears to give noisy solutions (see Hunke 2001, Lemieux +et al. 2012, Bouillon et a1. 2013 +:cite:`hunke:01,lemieux:12,bouillon:13`). This has led to a modified EVP or +EVP\* (Lemieux et al. 2012, Bouillon et a1. 2013, Kimmritz et al. 2015 +:cite:`lemieux:12,bouillon:13,kimmritz:15`); here, we refer to these variants +by modified EVP (mEVP) and adaptive EVP (aEVP). The main idea is to modify the +“natural” time-discretization of the momentum equations: .. math:: m\frac{D\mathbf{u}}{Dt} \approx @@ -828,17 +1108,18 @@ The main idea is to modify the “natural” time-discretization of the momentum \beta^{\ast}\frac{\mathbf{u}^{p+1}-\mathbf{u}^{p}}{\Delta{t}_{\mathrm{EVP}}} :label: eq_evpstar -where :math:`n` is the previous time step index, and :math:`p` is the -previous sub-cycling index. The extra “intertial” term -:math:`m\,(\mathbf{u}^{p+1}-\mathbf{u}^{n})/\Delta{t})` allows the -definition of a residual :math:`|\mathbf{u}^{p+1}-\mathbf{u}^{p}|` -that, as :math:`\mathbf{u}^{p+1} \rightarrow \mathbf{u}^{n+1}`, -converges to :math:`0`. In this way EVP can be re-interpreted as a -pure iterative solver where the sub-cycling has no association with -time-relation (through :math:`\Delta{t}_{\mathrm{EVP}}`). Using the -terminology of Kimmritz et al. 2015 :cite:`kimmritz15`, the evolution -equations of stress :math:`\sigma_{ij}` and momentum -:math:`\mathbf{u}` can be written as: +where :math:`n` is the previous time step index, and :math:`p` is the previous +sub-cycling index. The extra “intertial” term +:math:`m\,(\mathbf{u}^{p+1}-\mathbf{u}^{n})/\Delta{t})` allows the definition +of a residual :math:`|\mathbf{u}^{p+1}-\mathbf{u}^{p}|` that, as +:math:`\mathbf{u}^{p+1} \rightarrow \mathbf{u}^{n+1}`, converges to +:math:`0`. In this way EVP can be re-interpreted as a pure iterative solver +where the sub-cycling has no association with time-relation (through +:math:`\Delta{t}_{\mathrm{EVP}}`). With the setting of +:varlink:`SEAICEuseEVPstar` to ``.TRUE.`` (default), this form of EVP is used. +Using the terminology of Kimmritz et al. 2015 :cite:`kimmritz:15`, the evolution +equations of stress :math:`\sigma_{ij}` and momentum :math:`\mathbf{u}` can be +written as: .. math:: \sigma_{ij}^{p+1}=\sigma_{ij}^p+\frac{1}{\alpha} @@ -848,96 +1129,90 @@ equations of stress :math:`\sigma_{ij}` and momentum .. math:: \mathbf{u}^{p+1}=\mathbf{u}^p+\frac{1}{\beta} - \Big(\frac{\Delta t}{m}\nabla \cdot{\bf \sigma}^{p+1}+ + \Big(\frac{\Delta t}{m} \nabla \cdot\boldsymbol{\sigma}^{p+1}+ \frac{\Delta t}{m}\mathbf{R}^{p}+\mathbf{u}_n -\mathbf{u}^p\Big) :label: eq_evpstarmom -:math:`\mathbf{R}` contains all terms in the momentum equations except -for the rheology terms and the time derivative; :math:`\alpha` and -:math:`\beta` are free parameters (:varlink:`SEAICE_evpAlpha`, :varlink:`SEAICE_evpBeta`) -that replace the time stepping parameters :varlink:`SEAICE_deltaTevp` -(:math:`\Delta{t}_{\mathrm{EVP}}`), :varlink:`SEAICE_elasticParm` (:math:`E_{0}`), -or :varlink:`SEAICE_evpTauRelax` (:math:`T`). :math:`\alpha` and :math:`\beta` determine -the speed of convergence and the stability. Usually, it makes sense to use -:math:`\alpha = \beta`, and :varlink:`SEAICEnEVPstarSteps` :math:`\gg (\alpha,\,\beta)` -(Kimmritz et al. 2015 :cite:`kimmritz15`). Currently, -there is no termination criterion and the number of mEVP iterations is -fixed to :varlink:`SEAICEnEVPstarSteps`. - -In order to use mEVP in MITgcm, set :varlink:`SEAICEuseEVPstar` ``= .TRUE.,`` -in ``data.seaice``. If :varlink:`SEAICEuseEVPrev` ``=.TRUE.,`` the actual form of -equations :eq:`eq_evpstarsigma` and :eq:`eq_evpstarmom` is used with fewer -implicit terms and the factor of :math:`e^{2}` dropped in the stress -equations :eq:`eq_evpstresstensor2` and -:eq:`eq_evpstresstensor12`. Although this modifies the original -EVP-equations, it turns out to improve convergence (Bouillon et al. 2013 :cite:`bouillon13`). - -Another variant is the aEVP scheme (Kimmritz et al. 2016 :cite:`kimmritz16`), where the value -of :math:`\alpha` is set dynamically based on the stability criterion +:math:`\mathbf{R}` contains all terms in the momentum equations except for the +rheology terms and the time derivative; :math:`\alpha` and :math:`\beta` are +free parameters (:varlink:`SEAICE_evpAlpha`, :varlink:`SEAICE_evpBeta`) that +replace the time stepping parameters :varlink:`SEAICE_deltaTevp` +(:math:`\Delta{t}_{\mathrm{EVP}}`), :varlink:`SEAICE_elasticParm` +(:math:`E_{0}`), or :varlink:`SEAICE_evpTauRelax` (:math:`T`). :math:`\alpha` +and :math:`\beta` determine the speed of convergence and the +stability. Usually, it makes sense to use :math:`\alpha = \beta`, and +:varlink:`SEAICEnEVPstarSteps` :math:`\gg (\alpha,\,\beta)` (Kimmritz et +al. 2015 :cite:`kimmritz:15`). Currently, there is no termination criterion and +the number of mEVP iterations is fixed to :varlink:`SEAICEnEVPstarSteps`. + +In order to use mEVP in MITgcm, compile with both ``#define`` +:varlink:`SEAICE_CGRID` and ``#define`` :varlink:`SEAICE_ALLOW_EVP` in +:filelink:`SEAICE_OPTIONS.h ` (default) and make +sure that :varlink:`SEAICEuseEVPstar` ``= .TRUE.,`` (default) in ``data.seaice``. +By default :varlink:`SEAICEuseEVPrev` is set to ``.TRUE.`` and the +actual form of equations :eq:`eq_evpstarsigma` and :eq:`eq_evpstarmom` is used +with fewer implicit terms and the factor of :math:`e^{2}` dropped in the stress +equations :eq:`eq_evpstresstensor2` and :eq:`eq_evpstresstensor12`. Although +this modifies the original EVP equations, it turns out to improve convergence +(Bouillon et al. 2013 :cite:`bouillon:13`). + +The aEVP scheme is an enhanced variant of mEVP (Kimmritz et al. 2016 +:cite:`kimmritz:16`), where the value of :math:`\alpha` is set dynamically based +on the stability criterion .. math:: \alpha = \beta = \max\left( \tilde{c} \pi\sqrt{c \frac{\zeta}{A_{c}} \frac{\Delta{t}}{\max(m,10^{-4}\,\text{kg})}},\alpha_{\min} \right) :label: eq_aevpalpha -with the grid cell area :math:`A_c` and the ice and snow mass :math:`m`. -This choice sacrifices speed of convergence for stability with the -result that aEVP converges quickly to VP where :math:`\alpha` can be -small and more slowly in areas where the equations are stiff. In -practice, aEVP leads to an overall better convergence than mEVP (Kimmritz et al. 2016 :cite:`kimmritz16`). -To use aEVP in MITgcm set :varlink:`SEAICEaEVPcoeff` :math:`= \tilde{c}`; -this also sets the default values of :varlink:`SEAICEaEVPcStar` (:math:`c=4`) -and :varlink:`SEAICEaEVPalphaMin` (:math:`\alpha_{\min}=5`). Good convergence -has been obtained with these values (Kimmritz et al. 2016 :cite:`kimmritz16`): -:varlink:`SEAICEaEVPcoeff` :math:`= 0.5`, :varlink:`SEAICEnEVPstarSteps` :math:`= 500`, -:varlink:`SEAICEuseEVPstar` ``= .TRUE.``, :varlink:`SEAICEuseEVPrev` ``= .TRUE.``. - -Note, that probably because of the C-grid staggering of velocities and -stresses, mEVP may not converge as successfully as in Kimmritz et al. (2015) :cite:`kimmritz15`, see also Kimmritz et al. (2016) :cite:`kimmritz16`, -and that convergence at very high resolution (order 5 km) has not been studied yet. +with the grid cell area :math:`A_c` and the ice and snow mass :math:`m`. This +choice sacrifices speed of convergence for stability with the result that aEVP +converges quickly to VP where :math:`\alpha` can be small and more slowly in +areas where the equations are stiff. In practice, aEVP leads to an overall +better convergence than mEVP (Kimmritz et al. 2016 :cite:`kimmritz:16`). To use +aEVP in MITgcm set :varlink:`SEAICEaEVPcoeff` :math:`= \tilde{c}` +(see :eq:`eq_aevpalpha`; default is unset); this also +sets the default values of :varlink:`SEAICEaEVPcStar` (:math:`c=4`) and +:varlink:`SEAICEaEVPalphaMin` (:math:`\alpha_{\min}=5`). Good convergence has +been obtained with these values (Kimmritz et al. 2016 :cite:`kimmritz:16`): -.. _para_phys_pkg_seaice_TEM: +:: -Truncated ellipse method (TEM) for yield curve ----------------------------------------------- + SEAICEaEVPcoeff = 0.5, + SEAICEnEVPstarSteps = 500, + # The following two parameters are required by mEVP and aEVP, + # but they are TRUE by default: + SEAICEuseEVPstar = .TRUE., + SEAICEuseEVPrev = .TRUE., -In the so-called truncated ellipse method the shear viscosity :math:`\eta` is capped to suppress any tensile stress: - -.. math:: - \eta = \min\left(\frac{\zeta}{e^2}, - \frac{\frac{P}{2}-\zeta(\dot{\epsilon}_{11}+\dot{\epsilon}_{22})} - {\sqrt{\max(\Delta_{\min}^{2},(\dot{\epsilon}_{11}-\dot{\epsilon}_{22})^2 - +4\dot{\epsilon}_{12}^2})}\right). - :label: eq_etatem - -To enable this method, set ``#define`` :varlink:`SEAICE_ALLOW_TEM` in -:filelink:`SEAICE_OPTIONS.h ` and turn -it on with :varlink:`SEAICEuseTEM` in ``data.seaice``. +Because of the C-grid staggering of velocities and +stresses, mEVP may not converge as successfully as in Kimmritz et al. (2015) +:cite:`kimmritz:15`, see also Kimmritz et al. (2016) :cite:`kimmritz:16`. +Convergence at very high resolution (order 5 km) has not yet been studied. .. _para_phys_pkg_seaice_iceoceanstress: Ice-Ocean stress ---------------- -Moving sea ice exerts a stress on the ocean which is the opposite of -the stress :math:`\mathbf{\tau}_\mathrm{ocean}` in -:eq:`eq_momseaice`. This stress is applied directly to the surface -layer of the ocean model. An alternative ocean stress formulation is -given by Hibler and Bryan (1987) :cite:`hibler87`. Rather than applying -:math:`\mathbf{\tau}_\mathrm{ocean}` directly, the stress is derived from -integrating over the ice thickness to the bottom of the oceanic -surface layer. In the resulting equation for the *combined* ocean-ice -momentum, the interfacial stress cancels and the total stress appears -as the sum of windstress and divergence of internal ice stresses: -:math:`\delta(z) (\mathbf{\tau}_\mathrm{air} + \mathbf{F})/\rho_0`, see also -Eq. (2) of Hibler and Bryan (1987) :cite:`hibler87`. The disadvantage of this formulation is -that now the velocity in the surface layer of the ocean that is used -to advect tracers, is really an average over the ocean surface +Moving sea ice exerts a stress on the ocean which is the opposite of the stress +:math:`\mathbf{\tau}_\mathrm{ocean}` in :eq:`eq_momseaice`. This stress is +applied directly to the surface layer of the ocean model. An alternative ocean +stress formulation is given by Hibler and Bryan (1987) +:cite:`hibler:87`. Rather than applying :math:`\mathbf{\tau}_\mathrm{ocean}` +directly, the stress is derived from integrating over the ice thickness to the +bottom of the oceanic surface layer. In the resulting equation for the +*combined* ocean-ice momentum, the interfacial stress cancels and the total +stress appears as the sum of windstress and divergence of internal ice +stresses: :math:`\delta(z) (\mathbf{\tau}_\mathrm{air} + \mathbf{F})/\rho_0`, +see also Eq. (2) of Hibler and Bryan (1987) :cite:`hibler:87`. The disadvantage +of this formulation is that now the velocity in the surface layer of the ocean +that is used to advect tracers, is really an average over the ocean surface velocity and the ice velocity leading to an inconsistency as the ice -temperature and salinity are different from the oceanic variables. To -turn on the stress formulation of Hibler and Bryan (1987) :cite:`hibler87`, set -:varlink:`useHB87StressCoupling` ``=.TRUE.``, in ``data.seaice``. +temperature and salinity are different from the oceanic variables. To turn on +the stress formulation of Hibler and Bryan (1987) :cite:`hibler:87`, set +:varlink:`useHB87StressCoupling` ``=.TRUE.,``, in ``data.seaice``. .. _para_phys_pkg_seaice_discretization: @@ -945,22 +1220,21 @@ turn on the stress formulation of Hibler and Bryan (1987) :cite:`hibler87`, set Finite-volume discretization of the stress tensor divergence ------------------------------------------------------------ -On an Arakawa C grid, ice thickness and concentration and thus ice -strength :math:`P` and bulk and shear viscosities :math:`\zeta` and -:math:`\eta` are naturally defined a C-points in the center of the grid -cell. Discretization requires only averaging of :math:`\zeta` and -:math:`\eta` to vorticity or Z-points (or :math:`\zeta`-points, but here -we use Z in order avoid confusion with the bulk viscosity) at the bottom -left corner of the cell to give :math:`\overline{\zeta}^{Z}` and -:math:`\overline{\eta}^{Z}`. In the following, the superscripts indicate -location at Z or C points, distance across the cell (F), along the cell -edge (G), between :math:`u`-points (U), :math:`v`-points (V), and -C-points (C). The control volumes of the :math:`u`- and +On an Arakawa C grid, ice thickness and concentration and thus ice strength +:math:`P` and bulk and shear viscosities :math:`\zeta` and :math:`\eta` are +naturally defined a C-points in the center of the grid cell. Discretization +requires only averaging of :math:`\zeta` and :math:`\eta` to vorticity or +Z-points (or :math:`\zeta`-points, but here we use Z in order avoid confusion +with the bulk viscosity) at the bottom left corner of the cell to give +:math:`\overline{\zeta}^{Z}` and :math:`\overline{\eta}^{Z}`. In the following, +the superscripts indicate location at Z or C points, distance across the cell +(F), along the cell edge (G), between :math:`u`-points (U), :math:`v`-points +(V), and C-points (C). The control volumes of the :math:`u`- and :math:`v`-equations in the grid cell at indices :math:`(i,j)` are :math:`A_{i,j}^{w}` and :math:`A_{i,j}^{s}`, respectively. With these definitions (which follow the model code documentation except that -:math:`\zeta`-points have been renamed to Z-points), the strain rates -are discretized as: +:math:`\zeta`-points have been renamed to Z-points), the strain rates are +discretized as: .. math:: \begin{aligned} @@ -979,22 +1253,21 @@ are discretized as: &\phantom{=\frac{1}{2}\biggl(} - k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} - k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} - \biggr),\end{aligned} + \biggr), + \end{aligned} -so that the diagonal terms of the strain rate tensor are naturally -defined at C-points and the symmetric off-diagonal term at Z-points. -No-slip boundary conditions (:math:`u_{i,j-1}+u_{i,j}=0` and -:math:`v_{i-1,j}+v_{i,j}=0` across boundaries) are implemented via -“ghost-points”; for free slip boundary conditions -:math:`(\epsilon_{12})^Z=0` on boundaries. +so that the diagonal terms of the strain rate tensor are naturally defined at +C-points and the symmetric off-diagonal term at Z-points. No-slip boundary +conditions (:math:`u_{i,j-1}+u_{i,j}=0` and :math:`v_{i-1,j}+v_{i,j}=0` across +boundaries) are implemented via “ghost-points”; for free slip boundary +conditions :math:`(\epsilon_{12})^Z=0` on boundaries. For a spherical polar grid, the coefficients of the metric terms are :math:`k_{1}=0` and :math:`k_{2}=-\tan\phi/a`, with the spherical radius -:math:`a` and the latitude :math:`\phi`; -:math:`\Delta{x}_1 = \Delta{x} = a\cos\phi -\Delta\lambda`, and :math:`\Delta{x}_2 = \Delta{y}=a\Delta\phi`. For a -general orthogonal curvilinear grid, :math:`k_{1}` and :math:`k_{2}` can -be approximated by finite differences of the cell widths: +:math:`a` and the latitude :math:`\phi`; :math:`\Delta{x}_1 = \Delta{x} = +a\cos\phi \Delta\lambda`, and :math:`\Delta{x}_2 = \Delta{y}=a\Delta\phi`. For +a general orthogonal curvilinear grid, :math:`k_{1}` and :math:`k_{2}` can be +approximated by finite differences of the cell widths: .. math:: \begin{aligned} @@ -1005,26 +1278,29 @@ be approximated by finite differences of the cell widths: k_{1,i,j}^{Z} &= \frac{1}{\Delta{y}_{i,j}^{U}} \frac{\Delta{y}_{i,j}^{C}-\Delta{y}_{i-1,j}^{C}}{\Delta{x}_{i,j}^{V}} \\ k_{2,i,j}^{Z} &= \frac{1}{\Delta{x}_{i,j}^{V}} - \frac{\Delta{x}_{i,j}^{C}-\Delta{x}_{i,j-1}^{C}}{\Delta{y}_{i,j}^{U}}\end{aligned} + \frac{\Delta{x}_{i,j}^{C}-\Delta{x}_{i,j-1}^{C}}{\Delta{y}_{i,j}^{U}} + \end{aligned} The stress tensor is given by the constitutive viscous-plastic relation :math:`\sigma_{\alpha\beta} = 2\eta\dot{\epsilon}_{\alpha\beta} + -[(\zeta-\eta)\dot{\epsilon}_{\gamma\gamma} - P/2 -]\delta_{\alpha\beta}` . The stress tensor divergence -:math:`(\nabla\sigma)_{\alpha} = \partial_\beta\sigma_{\beta\alpha}`, is -discretized in finite volumes . This conveniently avoids dealing with -further metric terms, as these are “hidden” in the differential cell -widths. For the :math:`u`-equation (:math:`\alpha=1`) we have: +[(\zeta-\eta)\dot{\epsilon}_{\gamma\gamma} - P/2 ]\delta_{\alpha\beta}` . The +stress tensor divergence :math:`(\nabla\sigma)_{\alpha} = +\partial_\beta\sigma_{\beta\alpha}`, is discretized in finite volumes . This +conveniently avoids dealing with further metric terms, as these are “hidden” in +the differential cell widths. For the :math:`u`-equation (:math:`\alpha=1`) we +have: .. math:: \begin{aligned} (\nabla\sigma)_{1}: \phantom{=}& \frac{1}{A_{i,j}^w} - \int_{\mathrm{cell}}(\partial_1\sigma_{11}+\partial_2\sigma_{21})\,dx_1\,dx_2 - \\\notag + \int_{\mathrm{cell}}(\partial_1\sigma_{11}+\partial_2\sigma_{21}) + \,dx_1\,dx_2 \\\notag =& \frac{1}{A_{i,j}^w} \biggl\{ - \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{11}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}} - + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{21}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}} + \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{11}dx_2\biggl|_{x_{1}}^{x_{1} + +\Delta{x}_{1}} + + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{21}dx_1\biggl|_{x_{2}}^{x_{2} + +\Delta{x}_{2}} \biggr\} \\ \notag \approx& \frac{1}{A_{i,j}^w} \biggl\{ \Delta{x}_2\sigma_{11}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}} @@ -1036,7 +1312,8 @@ widths. For the :math:`u`-equation (:math:`\alpha=1`) we have: \\\notag \phantom{=}& \phantom{\frac{1}{A_{i,j}^w} \biggl\{} + (\Delta{x}_1\sigma_{21})_{i,j+1}^Z - (\Delta{x}_1\sigma_{21})_{i,j}^Z - \biggr\}\end{aligned} + \biggr\} + \end{aligned} with @@ -1060,7 +1337,8 @@ with & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} k_{2,i,j}^{Z}\frac{u_{i,j}+u_{i,j-1}}{2} \\ \notag & - \Delta{x}_{i,j}^{V}\overline{\eta}^{Z}_{i,j} - k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2}\end{aligned} + k_{1,i,j}^{Z}\frac{v_{i,j}+v_{i-1,j}}{2} + \end{aligned} Similarly, we have for the :math:`v`-equation (:math:`\alpha=2`): @@ -1068,11 +1346,13 @@ Similarly, we have for the :math:`v`-equation (:math:`\alpha=2`): \begin{aligned} (\nabla\sigma)_{2}: \phantom{=}& \frac{1}{A_{i,j}^s} - \int_{\mathrm{cell}}(\partial_1\sigma_{12}+\partial_2\sigma_{22})\,dx_1\,dx_2 - \\\notag + \int_{\mathrm{cell}}(\partial_1\sigma_{12}+\partial_2\sigma_{22}) + \,dx_1\,dx_2 \\\notag =& \frac{1}{A_{i,j}^s} \biggl\{ - \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{12}dx_2\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}} - + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{22}dx_1\biggl|_{x_{2}}^{x_{2}+\Delta{x}_{2}} + \int_{x_2}^{x_2+\Delta{x}_2}\sigma_{12}dx_2\biggl|_{x_{1}}^{x_{1} + +\Delta{x}_{1}} + + \int_{x_1}^{x_1+\Delta{x}_1}\sigma_{22}dx_1\biggl|_{x_{2}}^{x_{2} + +\Delta{x}_{2}} \biggr\} \\ \notag \approx& \frac{1}{A_{i,j}^s} \biggl\{ \Delta{x}_2\sigma_{12}\biggl|_{x_{1}}^{x_{1}+\Delta{x}_{1}} @@ -1113,154 +1393,170 @@ with Again, no-slip boundary conditions are realized via ghost points and :math:`u_{i,j-1}+u_{i,j}=0` and :math:`v_{i-1,j}+v_{i,j}=0` across -boundaries. For free-slip boundary conditions the lateral stress is set -to zeros. In analogy to :math:`(\epsilon_{12})^Z=0` on boundaries, we -set :math:`\sigma_{21}^{Z}=0`, or equivalently :math:`\eta_{i,j}^{Z}=0`, -on boundaries. +boundaries. For free-slip boundary conditions the lateral stress is set to +zeros. In analogy to :math:`(\epsilon_{12})^Z=0` on boundaries, we set +:math:`\sigma_{21}^{Z}=0`, or equivalently :math:`\eta_{i,j}^{Z}=0`, on +boundaries. -.. _para_phys_pkg_seaice_thermodynamics: +.. _ssub_phys_pkg_seaice_thermodynamics: Thermodynamics --------------- +============== **NOTE: THIS SECTION IS STILL NOT COMPLETE** -In its original formulation the sea ice model uses simple 0-layer thermodynamics following the appendix of Semtner (1976) :cite:`sem76`. This formulation neglects storage of heat, that is, the heat capacity of ice is zero, and all internal heat sources so that the heat equation reduces to a constant conductive heat flux. This constant upward conductive heat flux together with a constant ice conductivity implies a linear temperature profile. -The boundary conditions for the heat equations are: at the bottom of the ice :math:`T|_{bottom} = T_{fr}` (freezing point temperature of sea water), and at the surface: :math:`Q_{top} = \frac{\partial{T}}{\partial{z}} = (K/h)(T_{0}-T_{fr})`, where :math:`K` is the ice conductivity, :math:`h` the ice thickness, and :math:`T_{0}-T_{fr}` the difference between the ice surface temperature and the water temperature at the bottom of the ice (at the freezing point). The surface heat flux :math:`Q_{top}` is computed in a similar way to that of Parkinson and Washington (1979) :cite:`parkinson:79` and Manabe et al. (1979) :cite:`manabe:79`. The resulting equation for surface temperature is +In its original formulation the sea ice model uses simple 0-layer +thermodynamics following the appendix of Semtner (1976) +:cite:`semtner:76`. This formulation neglects storage of heat, that is, the +heat capacity of ice is zero, and all internal heat sources so that the heat +equation reduces to a constant conductive heat flux. This constant upward +conductive heat flux together with a constant ice conductivity implies a linear +temperature profile. The boundary conditions for the heat equations are: at the +bottom of the ice :math:`T|_{\rm bottom} = T_{\rm fr}` (freezing point temperature of +sea water), and at the surface: :math:`Q_{\rm top} = +\frac{\partial{T}}{\partial{z}} = (K/h)(T_{0}-T_{\rm fr})`, where :math:`K` is the +ice conductivity, :math:`h` the ice thickness, and :math:`T_{0}-T_{\rm fr}` the +difference between the ice surface temperature and the water temperature at the +bottom of the ice (at the freezing point). The surface heat flux +:math:`Q_{\rm top}` is computed in a similar way to that of Parkinson and +Washington (1979) :cite:`parkinson:79` and Manabe et al. (1979) +:cite:`manabe:79`. The resulting equation for surface temperature is .. math:: \begin{aligned} - \frac{K}{h}(T_{0}-T_{fr}) &= Q_{SW\downarrow}(1-\mathrm{albedo}) \\ - & + \epsilon Q_{LW\downarrow} - Q_{LW\uparrow}(T_{0}) \\ - & + Q_{LH}(T_{0}) + Q_{SH}(T_{0}), + \frac{K}{h}(T_{0}-T_{\rm fr}) &= Q_{\rm SW\downarrow}(1-\mathrm{albedo}) \\ + & + \epsilon Q_{\rm LW\downarrow} - Q_{\rm LW\uparrow}(T_{0}) \\ + & + Q_{\rm LH}(T_{0}) + Q_{\rm SH}(T_{0}), \end{aligned} :label: eq_zerolayerheatbalance where :math:`\epsilon` is the emissivity of the surface (snow or ice), -:math:`Q_{S/LW\downarrow}` the downwelling shortwave and longwave -radiation to be prescribed, and :math:`Q_{LW\uparrow}=\epsilon\sigma_B -T_{0}^4` the emitted long wave radiation with the Stefan-Boltzmann -constant :math:`\sigma_B`. With explicit expressions in :math:`T_0` -for the turbulent fluxes of latent and sensible heat +:math:`Q_{\rm S/LW\downarrow}` the downwelling shortwave and longwave radiation to +be prescribed, and :math:`Q_{\rm LW\uparrow}=\epsilon\sigma_B T_{0}^4` the emitted +long wave radiation with the Stefan-Boltzmann constant :math:`\sigma_B`. With +explicit expressions in :math:`T_0` for the turbulent fluxes of latent and +sensible heat .. math:: \begin{aligned} - Q_{LH} &= \rho_\mathrm{air} C_E (\Lambda_v + \Lambda_f) + Q_{\rm LH} &= \rho_\mathrm{air} C_E (\Lambda_v + \Lambda_f) |\mathbf{U}_\mathrm{air}| \left[ q_\mathrm{air} - q_\mathrm{sat}(T_0)\right] \\ - Q_{SH} &= \rho_\mathrm{air} c_p C_E |\mathbf{U}_\mathrm{air}| + Q_{\rm SH} &= \rho_\mathrm{air} c_p C_E |\mathbf{U}_\mathrm{air}| \left[ T_\mathrm{10m} - T_{0} \right], \end{aligned} -:eq:`eq_zerolayerheatbalance` can be solved for -:math:`T_0` with an iterative Ralphson-Newton method, which usually -converges very quickly in less that 10 iterations. In these equations, :math:`\rho_\mathrm{air}` is the air density (parameter :varlink:`SEAICE_rhoAir`), :math:`C_E` is the ice-ocean transfer coefficient for sensible and latent heat (parameter :varlink:`SEAICE_dalton`), :math:`\Lambda_v` and :math:`\Lambda_f` are the latent heat of vaporization and fusion, respectively (parameters :varlink:`SEAICE_lhEvap` and :varlink:`SEAICE_lhFusion`), and :math:`c_p` is the specific heat of air (parameter :varlink:`SEAICE_cpAir`). For the latent heat :math:`Q_{LH}` a choice can be made between the old polynomial expression for saturation humidity :math:`q_\mathrm{sat}(T_0)` (by -setting :varlink:`useMaykutSatVapPoly` to ``.TRUE.``) and the default -exponential relation approximation that is more accurate at low -temperatures. - -In the zero-layer model of Semtner (1976) :cite:`sem76`, the -conductive heat flux depends strongly on the ice thickness -:math:`h`. However, the ice thickness in the model represents a mean -over a potentially very heterogeneous thickness distribution. In order -to parameterize a sub-grid scale distribution for heat flux -computations, the mean ice thickness :math:`h` is split into :math:`N` -thickness categories :math:`H_{n}` that are equally distributed -between :math:`2h` and a minimum imposed ice thickness of -:math:`5\,\text{cm}` by :math:`H_n= \frac{2n-1}{7}\,h` for -:math:`n\in[1,N]`. The heat fluxes computed for each thickness -category are area-averaged to give the total heat flux (see Hibler -1984 :cite:`hibler84`). To use this thickness category -parameterization set :varlink:`SEAICE_multDim` to the number of -desired categories in ``data.seaice`` (7 is a good guess, for anything -larger than 7 modify :filelink:`SEAICE_SIZE.h -`). Note that this requires different -restart files and switching this flag on in the middle of an -integration is not advised. As an alternative to the flat -distribution, the run-time parameter :varlink:`SEAICE_PDF` (1D-array of -lenght :varlink:`nITD`) can be used to prescribe an arbitrary -distribution of ice thicknesses, for example derived from observed -distributions (Castro-Morales et al. 2014 -:cite:`castro-morales14`). In order to include the ice thickness -distribution also for snow, set :varlink:`SEAICE_useMultDimSnow` ``= -.TRUE.`` (this is the default); only then, the parameterization of -always having a fraction of thin ice is efficient and generally -thicker ice is produced (see Castro-Morales et al. 2014 :cite:`castro-morales14`). - -The atmospheric heat flux is balanced by an oceanic heat flux from -below. The oceanic flux is proportional to -:math:`\rho\,c_{p}\left(T_{w}-T_{fr}\right)` where :math:`\rho` and -:math:`c_{p}` are the density and heat capacity of sea water and -:math:`T_{fr}` is the local freezing point temperature that is a -function of salinity. This flux is not assumed to instantaneously melt -or create ice, but a time scale of three days (run-time parameter :varlink:`SEAICE_gamma_t`) -is used to relax :math:`T_{w}` to the freezing point. The parameterization of lateral -and vertical growth of sea ice follows that of Hibler (1979) and Hibler (1980) :cite:`hib79,hib80`; the so-called -lead closing parameter :math:`h_{0}` (run-time parameter :varlink:`HO`) has -a default value of 0.5 meters. - -On top of the ice there is a layer of snow that modifies the heat flux -and the albedo (Zhang et al. 1998 :cite:`zha98a`). Snow modifies the effective conductivity according to +:eq:`eq_zerolayerheatbalance` can be solved for :math:`T_0` with an iterative +Ralphson-Newton method, which usually converges very quickly in less that 10 +iterations. In these equations, :math:`\rho_\mathrm{air}` is the air density +(parameter :varlink:`SEAICE_rhoAir`), :math:`C_E` is the ice-ocean transfer +coefficient for sensible and latent heat (parameter :varlink:`SEAICE_dalton`), +:math:`\Lambda_v` and :math:`\Lambda_f` are the latent heat of vaporization and +fusion, respectively (parameters :varlink:`SEAICE_lhEvap` and +:varlink:`SEAICE_lhFusion`), and :math:`c_p` is the specific heat of air +(parameter :varlink:`SEAICE_cpAir`). For the latent heat :math:`Q_{\rm LH}` a +choice can be made between the old polynomial expression for saturation +humidity :math:`q_\mathrm{sat}(T_0)` (by setting +:varlink:`useMaykutSatVapPoly` to ``.TRUE.``) and the default exponential +relation approximation that is more accurate at low temperatures. + +In the zero-layer model of Semtner (1976) :cite:`semtner:76`, the conductive +heat flux depends strongly on the ice thickness :math:`h`. However, the ice +thickness in the model represents a mean over a potentially very heterogeneous +thickness distribution. In order to parameterize a sub-grid scale distribution +for heat flux computations, the mean ice thickness :math:`h` is split into +:math:`N` thickness categories :math:`H_{n}` that are equally distributed +between :math:`2h` and a minimum imposed ice thickness of :math:`5\,\text{cm}` +by :math:`H_n= \frac{2n-1}{7}\,h` for :math:`n\in[1,N]`. The heat fluxes +computed for each thickness category are area-averaged to give the total heat +flux (see Hibler 1984 :cite:`hibler:84`). To use this thickness category +parameterization set :varlink:`SEAICE_multDim` to the number of desired +categories in ``data.seaice`` (7 is a good guess, for anything larger than 7 +modify :filelink:`SEAICE_SIZE.h `). Note that this +requires different restart files and switching this flag on in the middle of an +integration is not advised. As an alternative to the flat distribution, the +run-time parameter :varlink:`SEAICE_PDF` (1D-array of lenght :varlink:`nITD`) +can be used to prescribe an arbitrary distribution of ice thicknesses, for +example derived from observed distributions (Castro-Morales et al. 2014 +:cite:`castro-morales:14`). In order to include the ice thickness distribution +also for snow, set :varlink:`SEAICE_useMultDimSnow` to ``.TRUE.`` (this is the +default); only then, the parameterization of always having a fraction of thin +ice is efficient and generally thicker ice is produced (see Castro-Morales et +al. 2014 :cite:`castro-morales:14`). + +The atmospheric heat flux is balanced by an oceanic heat flux from below. The +oceanic flux is proportional to :math:`\rho\,c_{p}\left(T_{w}-T_{fr}\right)` +where :math:`\rho` and :math:`c_{p}` are the density and heat capacity of sea +water and :math:`T_{\rm fr}` is the local freezing point temperature that is a +function of salinity. This flux is not assumed to instantaneously melt or +create ice, but a time scale of three days (run-time parameter +:varlink:`SEAICE_gamma_t`) is used to relax :math:`T_{w}` to the freezing +point. The parameterization of lateral and vertical growth of sea ice follows +that of Hibler (1979) and Hibler (1980) :cite:`hibler:79,hibler:80`; the +so-called lead closing parameter :math:`h_{0}` (run-time parameter +:varlink:`HO`) has a default value of 0.5 meters. + +On top of the ice there is a layer of snow that modifies the heat flux and the +albedo (Zhang et al. 1998 :cite:`zha:98`). Snow modifies the effective +conductivity according to .. math:: \frac{K}{h} \rightarrow \frac{1}{\frac{h_{s}}{K_{s}}+\frac{h}{K}}, where :math:`K_s` is the conductivity of snow and :math:`h_s` the snow -thickness. If enough snow accumulates so that its weight submerges the -ice and the snow is flooded, a simple mass conserving parameterization -of snowice formation (a flood-freeze algorithm following Archimedes’ -principle) turns snow into ice until the ice surface is back at -:math:`z=0` (see Leppäranta 1983 :cite:`leppaeranta83`). -The flood-freeze algorithm is turned on with run-time parameter :varlink:`SEAICEuseFlooding=.TRUE.`. +thickness. If enough snow accumulates so that its weight submerges the ice and +the snow is flooded, a simple mass conserving parameterization of snowice +formation (a flood-freeze algorithm following Archimedes’ principle) turns snow +into ice until the ice surface is back at :math:`z=0` (see Leppäranta 1983 +:cite:`leppaeranta:83`). The flood-freeze algorithm is turned on with run-time +parameter :varlink:`SEAICEuseFlooding` set to ``.TRUE.``. .. _para_phys_pkg_seaice_advection: Advection of thermodynamic variables ------------------------------------ -Effective ice thickness (ice volume per unit area, :math:`c\cdot{h}`), -concentration :math:`c` and effective snow thickness -(:math:`c\cdot{h}_{s}`) are advected by ice velocities: +Effective ice thickness (ice volume per unit area, :math:`c h`), +concentration :math:`c` and effective snow thickness (:math:`c h_s`) +are advected by ice velocities: .. math:: \frac{\partial{X}}{\partial{t}} = - - \nabla\cdot\left(\mathbf{u}\,X\right) + \Gamma_{X} + D_{X} + - \nabla \cdot\left(\mathbf{u}\,X\right) + \Gamma_{X} + D_{X} :label: eq_advection -where :math:`\Gamma_X` are the thermodynamic source terms and -:math:`D_{X}` the diffusive terms for quantities -:math:`X=(c\cdot{h}), c, (c\cdot{h}_{s})`. From the various advection -schemes that are available in MITgcm, we recommend flux-limited -schemes to preserve sharp gradients and edges that are typical of sea -ice distributions and to rule out unphysical over- and undershoots +where :math:`\Gamma_X` are the thermodynamic source terms and :math:`D_{X}` the +diffusive terms for quantities :math:`X= c h, c, c h_s`. From +the various advection schemes that are available in MITgcm, we recommend +flux-limited schemes to preserve sharp gradients and edges that are typical of +sea ice distributions and to rule out unphysical over- and undershoots (negative thickness or concentration). These schemes conserve volume and horizontal area and are unconditionally stable, so that we can set :math:`D_{X}=0`. Run-time flags: :varlink:`SEAICEadvScheme` (default=77, is a 2nd-order flux limited scheme), :varlink:`DIFF1` = :math:`D_{X}/\Delta{x}` (default=0). -The MITgcm sea ice model provides the option to use the thermodynamics -model of Winton (2000) :cite:`win00`, which in turn is based on the 3-layer model of -Semtner (1976) :cite:`sem76` which treats brine content by means of enthalpy -conservation; the corresponding package :filelink:`thsice ` is described in -section :numref:`sub_phys_pkg_thsice`. This scheme requires additional state -variables, namely the enthalpy of the two ice layers (instead of -effective ice salinity), to be advected by ice velocities. The -internal sea ice temperature is inferred from ice enthalpy. To avoid -unphysical (negative) values for ice thickness and concentration, a +The MITgcm sea ice model provides the option to use the thermodynamics model of +Winton (2000) :cite:`winton:00`, which in turn is based on the 3-layer model of +Semtner (1976) :cite:`semtner:76` which treats brine content by means of +enthalpy conservation; the corresponding package :filelink:`thsice +` is described in section :numref:`sub_phys_pkg_thsice`. This +scheme requires additional state variables, namely the enthalpy of the two ice +layers (instead of effective ice salinity), to be advected by ice +velocities. The internal sea ice temperature is inferred from ice enthalpy. To +avoid unphysical (negative) values for ice thickness and concentration, a positive 2nd-order advection scheme with a SuperBee flux limiter (Roe 1985 -:cite:`roe:85`) should be used to advect all sea-ice-related quantities -of the Winton (2000) :cite:`win00` thermodynamic model (run-time flag -:varlink:`thSIceAdvScheme` :math:`= 77` and :varlink:`thSIce_diffK` :math:`= D_{X} = 0` -in ``data.ice``, defaults are 0). Because of the nonlinearity of the -advection scheme, care must be taken in advecting these quantities: -when simply using ice velocity to advect enthalpy, the total energy -(i.e., the volume integral of enthalpy) is not -conserved. Alternatively, one can advect the energy content (i.e., -product of ice-volume and enthalpy) but then false enthalpy extrema -can occur, which then leads to unrealistic ice temperature. In the -currently implemented solution, the sea-ice mass flux is used to -advect the enthalpy in order to ensure conservation of enthalpy and to -prevent false enthalpy extrema. +:cite:`roe:85`) should be used to advect all sea-ice-related quantities of the +Winton (2000) :cite:`winton:00` thermodynamic model (run-time flag +:varlink:`thSIceAdvScheme` :math:`= 77` and :varlink:`thSIce_diffK` :math:`= +D_{X} = 0` in ``data.ice``, defaults are 0). Because of the nonlinearity of the +advection scheme, care must be taken in advecting these quantities: when simply +using ice velocity to advect enthalpy, the total energy (i.e., the volume +integral of enthalpy) is not conserved. Alternatively, one can advect the +energy content (i.e., product of ice-volume and enthalpy) but then false +enthalpy extrema can occur, which then leads to unrealistic ice temperature. In +the currently implemented solution, the sea-ice mass flux is used to advect the +enthalpy in order to ensure conservation of enthalpy and to prevent false +enthalpy extrema. .. _para_phys_pkg_seaice_itd: @@ -1269,132 +1565,185 @@ Dynamical Ice Thickness Distribution (ITD) The ice thickness distribution model used by MITgcm follows the implementation in the Los Alamos sea ice model CICE (https://github.com/CICE-Consortium/CICE). -There are two parts to it that are closely connected: the participation and ridging functions -that determine which thickness classes take part in ridging and which thickness classes receive ice during -ridging based on Thorndike et al. (1975) :cite:`thorndike:75`, -and the ice strength parameterization by Rothrock (1975) :cite:`rothrock:75` which uses this information. -The following description is slightly modified from Ungermann et al. (2017) :cite:`ungermann:17`. -Verification experiment :filelink:`seaice_itd ` uses the ITD model. +There are two parts to it that are closely connected: the participation and +ridging functions that determine which thickness classes take part in ridging +and which thickness classes receive ice during ridging based on Thorndike et +al. (1975) :cite:`thorndike:75`, and the ice strength parameterization by +Rothrock (1975) :cite:`rothrock:75` which uses this information. The following +description is slightly modified from Ungermann et al. (2017) +:cite:`ungermann:17`. Verification experiment :filelink:`seaice_itd +` uses the ITD model. Distribution, participation and redistribution functions in ridging ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -When :varlink:`SEAICE_ITD` is defined in :filelink:`SEAICE_OPTIONS.h `, the ice -thickness is described by the ice thickness distribution :math:`g(h,\mathbf{x},t)` -for the subgrid-scale (see Thorndike et al. 1975 :cite:`thorndike:75`), -a probability density function for thickness :math:`h` following the evolution -equation +When :varlink:`SEAICE_ITD` is defined in :filelink:`SEAICE_OPTIONS.h +`, the ice thickness is described by the ice +thickness distribution :math:`g(h,\mathbf{x},t)` for the subgrid-scale (see +Thorndike et al. 1975 :cite:`thorndike:75`), a probability density function for +thickness :math:`h` following the evolution equation .. math:: - \frac{\partial g}{\partial t} = - \nabla \cdot (\mathbf{u} g) - \frac{\partial}{\partial h}(fg) + \Psi. + \frac{\partial g}{\partial t} = - \nabla \cdot (\mathbf{u} g) - \frac{\partial}{\partial h}(fg) + \Psi. :label: eq_itd -Here :math:`f=\frac{\mathrm{d} h}{\mathrm{d} t}` is the thermodynamic growth rate and :math:`\Psi` -a function describing the mechanical redistribution of sea ice during ridging or lead opening. +Here :math:`f=\frac{\mathrm{d} h}{\mathrm{d} t}` is the thermodynamic growth +rate and :math:`\Psi` a function describing the mechanical redistribution of +sea ice during ridging or lead opening. -The mechanical redistribution function :math:`\Psi` generates open water in divergent motion -and creates ridged ice during convergent motion. The ridging process depends on total strain -rate and on the ratio between shear (run-time parameter :varlink:`SEAICEshearParm`) and divergent strain. -In the single category model, ridge formation is treated implicitly by limiting the ice concentration -to a maximum of one (see Hibler 1979 :cite:`hib79`), so that further volume increase in convergent motion -leads to thicker ice. (This is also the default for ITD models; to change from the default, set -run-time parameter :varlink:`SEAICEsimpleRidging` ``=.FALSE.`` in ``data.seaice``). -For the ITD model, the ridging mode in convergence +The mechanical redistribution function :math:`\Psi` generates open water in +divergent motion and creates ridged ice during convergent motion. The ridging +process depends on total strain rate and on the ratio between shear (run-time +parameter :varlink:`SEAICEshearParm`) and divergent strain. In the single +category model, ridge formation is treated implicitly by limiting the ice +concentration to a maximum of one (see Hibler 1979 :cite:`hibler:79`), so that +further volume increase in convergent motion leads to thicker ice. (This is +also the default for ITD models; to change from the default, set run-time +parameter :varlink:`SEAICEsimpleRidging` ``=.FALSE.,`` in ``data.seaice``). For +the ITD model, the ridging mode in convergence .. math:: \omega_r(h)= \frac{-a(h)+n(h)}{N} -gives the effective change for the ice volume with thickness between :math:`h` and :math:`h+\textrm{d} h` -as the normalized difference between the ice :math:`n(h)` generated by ridging and the ice :math:`a(h)` participating in ridging. - -The participation function :math:`a(h) = b(h)g(h)` can be computed either following Thorndike et al. (1975) :cite:`thorndike:75` -(run-time parameter :varlink:`SEAICEpartFunc` =0) or Lipscomb et al. (2007) :cite:`lipscomb:07` (:varlink:`SEAICEpartFunc` =1), and similarly the -ridging function :math:`n(h)` can be computed following Hilber (1980) :cite:`hib80` (run-time parameter :varlink:`SEAICEredistFunc` =0) -or Lipscomb et al. (2007) :cite:`lipscomb:07` (:varlink:`SEAICEredistFunc` =1). As an example, we show here the functions -that Lipscomb et al. (2007) :cite:`lipscomb:07` suggested -to avoid noise in the solutions. These functions are smooth and avoid non-differentiable discontinuities, -but so far we did not find any noise issues as in Lipscomb et al. (2007) :cite:`lipscomb:07`. - -With :varlink:`SEAICEpartFunc` =1 in ``data.seaice``, the participation function with the -relative amount of ice of thickness :math:`h` weighted by an exponential function +gives the effective change for the ice volume with thickness between :math:`h` +and :math:`h+\textrm{d} h` as the normalized difference between the ice +:math:`n(h)` generated by ridging and the ice :math:`a(h)` participating in +ridging. + +The participation function :math:`a(h) = b(h)g(h)` can be computed either +following Thorndike et al. (1975) :cite:`thorndike:75` (run-time parameter +:varlink:`SEAICEpartFunc` =0) or Lipscomb et al. (2007) :cite:`lipscomb:07` +(:varlink:`SEAICEpartFunc` =1), and similarly the ridging function :math:`n(h)` +can be computed following Hilber (1980) :cite:`hibler:80` (run-time parameter +:varlink:`SEAICEredistFunc` =0) or Lipscomb et al. (2007) :cite:`lipscomb:07` +(:varlink:`SEAICEredistFunc` =1). As an example, we show here the functions +that Lipscomb et al. (2007) :cite:`lipscomb:07` suggested to avoid noise in the +solutions. These functions are smooth and avoid non-differentiable +discontinuities, but so far we did not find any noise issues as in Lipscomb et +al. (2007) :cite:`lipscomb:07`. + +With :varlink:`SEAICEpartFunc` ``= 1,`` in ``data.seaice``, the participation +function with the relative amount of ice of thickness :math:`h` weighted by an +exponential function .. math:: b(h) = b_0 \exp [ -G(h)/a^*] -where :math:`G(h)=\int_0^h g(h) \textrm{d} h` is the cumulative thickness distribution function, -:math:`b_0` a normalization factor, and :math:`a^*` (:varlink:`SEAICEaStar`) the exponential constant -that determines which relative amount of thicker and thinner ice take part in ridging. +where :math:`G(h)=\int_0^h g(h) \textrm{d} h` is the cumulative thickness +distribution function, :math:`b_0` a normalization factor, and :math:`a^*` +(:varlink:`SEAICEaStar`) the exponential constant that determines which +relative amount of thicker and thinner ice take part in ridging. -With :varlink:`SEAICEredistFunc` =1 in ``data.seaice``, the ice generated by ridging is calculated as +With :varlink:`SEAICEredistFunc` ``= 1,`` in ``data.seaice``, the ice generated by +ridging is calculated as .. math:: n(h) = \int_0^\infty a(h_1)\gamma(h_1,h) \textrm{d} h_1 -where the density function :math:`\gamma(h_1,h)` of resulting -thickness :math:`h` for ridged ice with an original thickness of :math:`h_1` is taken as +where the density function :math:`\gamma(h_1,h)` of resulting thickness +:math:`h` for ridged ice with an original thickness of :math:`h_1` is taken as .. math:: - \gamma(h_1, h) = \frac{1}{k \lambda} \exp\left[{\frac{-(h-h_{\min})}{\lambda}}\right] - -for :math:`h \geq h_{\min}`, with :math:`\gamma(h_1,h)=0` for :math:`h < h_{\min}`. -In this parameterization, the normalization factor :math:`k=\frac{h_{\min} + \lambda}{h_1}`, -the e-folding scale :math:`\lambda = \mu h_1^{1/2}` and the minimum ridge thickness -:math:`h_{\min}=\min(2h_1,h_1 + h_{\textrm{raft}})` all depend on the original thickness :math:`h_1`. -The maximal ice thickness allowed to raft :math:`h_{\textrm{raft}}` is constant -(:varlink:`SEAICEmaxRaft`, default =1 m) and :math:`\mu` (:varlink:`SEAICEmuRidging`) is a tunable parameter. + \gamma(h_1, h) = \frac{1}{k \lambda} + \exp\left[{\frac{-(h-h_{\min})}{\lambda}}\right] + +for :math:`h \geq h_{\min}`, with :math:`\gamma(h_1,h)=0` for :math:`h < +h_{\min}`. In this parameterization, the normalization factor +:math:`k=\frac{h_{\min} + \lambda}{h_1}`, the e-folding scale :math:`\lambda = +\mu h_1^{1/2}` and the minimum ridge thickness :math:`h_{\min}=\min(2h_1,h_1 + +h_{\textrm{raft}})` all depend on the original thickness :math:`h_1`. The +maximal ice thickness allowed to raft :math:`h_{\textrm{raft}}` is constant +(:varlink:`SEAICEmaxRaft`, default =1 m) and :math:`\mu` +(:varlink:`SEAICEmuRidging`) is a tunable parameter. In the numerical model these equations are discretized into a set of :math:`n` -(:varlink:`nITD` defined in :filelink:`SEAICE_SIZE.h `) thickness categories employing the -delta function scheme of Bitz et al. (2001) :cite:`bitz:01`. For each thickness category in an ITD configuration, -the volume conservation equation :eq:`eq_advection` is evaluated using -the heat flux with the category-specific values for ice and snow thickness, -so there are no conceptual differences in the -thermodynamics between the single category and ITD configurations. -The only difference is that only in the thinnest category the creation -of new ice of thickness :math:`H_0` (run-time parameter :varlink:`HO`) is possible, -all other categories are limited to basal growth. The conservation of ice -area is replaced by the evolution equation of the ITD :eq:`eq_itd` that is discretized -in thickness space with :math:`n+1` category limits given by run-time parameter :varlink:`Hlimit`. -If :varlink:`Hlimit` is not set in ``data.seaice``, a simple recursive formula following Lipscomb (2001) -:cite:`lipscomb:01` is used to compute :varlink:`Hlimit`: +(:varlink:`nITD` defined in :filelink:`SEAICE_SIZE.h +`) thickness categories employing the delta function +scheme of Bitz et al. (2001) :cite:`bitz:01`. For each thickness category in +an ITD configuration, the volume conservation equation :eq:`eq_advection` is +evaluated using the heat flux with the category-specific values for ice and +snow thickness, so there are no conceptual differences in the thermodynamics +between the single category and ITD configurations. The only difference is +that only in the thinnest category the creation of new ice of thickness +:math:`H_0` (run-time parameter :varlink:`HO`) is possible, all other +categories are limited to basal growth. The conservation of ice area is +replaced by the evolution equation of the ITD :eq:`eq_itd` that is discretized +in thickness space with :math:`n+1` category limits given by run-time parameter +:varlink:`Hlimit`. If :varlink:`Hlimit` is not set in ``data.seaice``, a +simple recursive formula following Lipscomb (2001) :cite:`lipscomb:01` is used +to compute :varlink:`Hlimit`: .. math:: - H_\mathrm{limit}(k) = H_\mathrm{limit}(k-1) + \frac{c_1}{n} + \frac{c_1 c_2}{n} [ 1 + \tanh c_3 (\frac{k-1}{n} - 1) ] + H_\mathrm{limit}(k) = H_\mathrm{limit}(k-1) + \frac{c_1}{n} + + \frac{c_1 c_2}{n} [ 1 + \tanh c_3 (\frac{k-1}{n} - 1) ] -with :math:`H_\mathrm{limit}(0)=0\,\text{m}` and :math:`H_\mathrm{limit}(n)=999.9\,\text{m}`. The three constants are the run-time parameters -:varlink:`Hlimit_c1`, :varlink:`Hlimit_c2`, and :varlink:`Hlimit_c3`. -The total ice concentration and volume can then be calculated by summing up the values for each category. +with :math:`H_\mathrm{limit}(0)=0` m and +:math:`H_\mathrm{limit}(n)=999.9` m. The three constants are the +run-time parameters :varlink:`Hlimit_c1`, :varlink:`Hlimit_c2`, and +:varlink:`Hlimit_c3`. The total ice concentration and volume can then be +calculated by summing up the values for each category. Ice strength parameterization ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -In the default approach of equation :eq:`eq_icestrength`, the ice strength is parameterized -following Hibler (1979) :cite:`hib79` and :math:`P` depends only on average ice concentration -and thickness per grid cell and the constant ice strength parameters -:math:`P^{\ast}` (:varlink:`SEAICE_strength`) and :math:`C^{\ast}` (:varlink:`SEAICE_cStar`). -With an ice thickness distribution, it is possible to use a different parameterization -following Rothrock (1975) :cite:`rothrock:75` +In the default approach of equation :eq:`eq_icestrength`, the ice strength is +parameterized following Hibler (1979) :cite:`hibler:79` and :math:`P` depends +only on average ice concentration and thickness per grid cell and the constant +ice strength parameters :math:`P^{\ast}` (:varlink:`SEAICE_strength`) and +:math:`C^{\ast}` (:varlink:`SEAICE_cStar`). With an ice thickness +distribution, it is possible to use a different parameterization following +Rothrock (1975) :cite:`rothrock:75` .. math:: P = C_f C_p \int_0^\infty h^2 \omega_r(h) \textrm{d}h :label: eq_rothrock -by considering the production of potential energy and the frictional energy loss in ridging. -The physical constant :math:`C_p = \rho_i (\rho_w - \rho_i) \hat{g} / (2 \rho_w)` is a -combination of the gravitational acceleration :math:`\hat{g}` and the densities :math:`\rho_i`, -:math:`\rho_w` of ice and water, and :math:`C_f` (:varlink:`SEAICE_cf`) is a scaling factor relating -the amount of work against gravity necessary for ridging to the amount of work against friction. -To calculate the integral, this parameterization needs information about the ITD in each grid cell, -while the default parameterization :eq:`eq_icestrength` can be used for both ITD and single thickness category models. -In contrast to :eq:`eq_icestrength`, which is based on the plausible assumption that thick -and compact ice is stronger than thin and loose drifting ice, this parameterization :eq:`eq_rothrock` -clearly contains the more physical assumptions about energy conservation. -For that reason alone this parameterization is often considered to be more physically realistic than :eq:`eq_icestrength`, -but in practice, the success is not so clear (Ungermann et al. 2007 :cite:`ungermann:17`). -Ergo, the default is to use :eq:`eq_icestrength`; set :varlink:`useHibler79IceStrength` ``=.FALSE.`` -in ``data.seaice`` to change this behavior. +by considering the production of potential energy and the frictional energy +loss in ridging. The physical constant :math:`C_p = \rho_i (\rho_w - \rho_i) +\hat{g} / (2 \rho_w)` is a combination of the gravitational acceleration +:math:`\hat{g}` and the densities :math:`\rho_i`, :math:`\rho_w` of ice and +water, and :math:`C_f` (:varlink:`SEAICE_cf`) is a scaling factor relating the +amount of work against gravity necessary for ridging to the amount of work +against friction. To calculate the integral, this parameterization needs +information about the ITD in each grid cell, while the default +parameterization :eq:`eq_icestrength` can be used for both ITD and single +thickness category models. In contrast to :eq:`eq_icestrength`, which is based +on the plausible assumption that thick and compact ice is stronger than thin +and loose drifting ice, this parameterization :eq:`eq_rothrock` clearly +contains the more physical assumptions about energy conservation. For that +reason alone this parameterization is often considered to be more physically +realistic than :eq:`eq_icestrength`, but in practice, the success is not so +clear (Ungermann et al. 2007 :cite:`ungermann:17`). Ergo, the default is to +use :eq:`eq_icestrength`; set :varlink:`useHibler79IceStrength` ``=.FALSE.,`` in +``data.seaice`` to change this behavior. + +Known issues and work-arounds +============================= + +- An often encountered problem in long simulations with sea ice models is + (local) perpetually increasing sea ice (plus snow) height; this is + problematic when using a non-linear free surface and + :varlink:`useRealFreshWaterFlux` set to ``.TRUE.``, because the mass of the sea ice + places a load on the sea surface, which if too large, can cause the surface + cells of the model to become too thin so that the model eventually stops with + an error message. Usually this problem occurs because of dynamical ice growth + (i.e., convergence and ridging of ice) or simply too much net precipitation + with insufficient summer surface melting. If the problem is dynamical in + nature (e.g., caused by ridging in a deep inlet), the first step to try is to + turn off the replacement pressure method (:varlink:`SEAICEpressReplFac` = 0; + in :numref:`para_phys_pkg_seaice_VPrheology`); turning this off provides + resistance against additional growth due to further ridging, because the ice + pressure :math:`P` is no longer reduced as :math:`\Delta\rightarrow 0` in + nearly motionless thick ice :eq:`eq_pressrepl`. If this does not solve the + problem, a somewhat more radical yet effective approach is simply to cap the + sea ice load on the free surface by defining the CPP option + :varlink:`SEAICE_CAP_ICELOAD`. This option effectively limits the sea ice + load (variable :varlink:`sIceLoad`) to a mass of 1/5 of the the top grid cell + depth. If desired, this limit can be changed in routine + :filelink:`seaice_growth.F ` where variable + :varlink:`heffTooHeavy` is assigned. .. _ssub_phys_pkg_seaice_subroutines: @@ -1452,8 +1801,9 @@ Top-level routine: :filelink:`pkg/seaice/seaice_model.F` SEAICE diagnostics ================== -Diagnostics output is available via the diagnostics package (see :numref:`sub_outp_pkg_diagnostics`). -Available output fields are summarized in the following table: +Diagnostics output is available via the diagnostics package (see +:numref:`sub_outp_pkg_diagnostics`). Available output fields are summarized in +the following table: .. code-block:: text @@ -1541,10 +1891,10 @@ Available output fields are summarized in the following table: ADVySNOW|VV M1|m.m^2/s |Meridional Advective Flux of eff snow thickn DFxESNOW|UU M1|m.m^2/s |Zonal Diffusive Flux of eff snow thickn DFyESNOW|VV M1|m.m^2/s |Meridional Diffusive Flux of eff snow thickn - ADVxSSLT|UU M1|psu.m^2/s |Zonal Advective Flux of seaice salinity - ADVySSLT|VV M1|psu.m^2/s |Meridional Advective Flux of seaice salinity - DFxESSLT|UU M1|psu.m^2/s |Zonal Diffusive Flux of seaice salinity - DFyESSLT|VV M1|psu.m^2/s |Meridional Diffusive Flux of seaice salinity + ADVxSSLT|UU M1|(g/kg).m^2/s |Zonal Advective Flux of seaice salinity + ADVySSLT|VV M1|(g/kg).m^2/s |Meridional Advective Flux of seaice salinity + DFxESSLT|UU M1|(g/kg).m^2/s |Zonal Diffusive Flux of seaice salinity + DFyESSLT|VV M1|(g/kg).m^2/s |Meridional Diffusive Flux of seaice salinity Experiments and tutorials that use seaice @@ -1552,7 +1902,7 @@ Experiments and tutorials that use seaice - :filelink:`verification/lab_sea`: Labrador Sea experiment - :filelink:`verification/seaice_obcs`, based on :filelink:`lab_sea ` -- :filelink:`verification/offline_exf_seaice`, idealized topography in a zonally re-entrant channel +- :filelink:`verification/offline_exf_seaice`, idealized topography in a zonally re-entrant channel, tests solvers and rheologies - :filelink:`verification/seaice_itd`, based on :filelink:`offline_exf_seaice `, tests ice thickness distribution - :filelink:`verification/global_ocean.cs32x15`, global cubed-sphere-experiment with combinations of :filelink:`pkg/seaice` and :filelink:`pkg/thsice` - :filelink:`verification/1D_ocean_ice_column`, just thermodynamics diff --git a/doc/phys_pkgs/shelfice.rst b/doc/phys_pkgs/shelfice.rst index 92742188b4..42386e5421 100644 --- a/doc/phys_pkgs/shelfice.rst +++ b/doc/phys_pkgs/shelfice.rst @@ -1,3 +1,5 @@ +.. _sub_phys_pkg_shelfice: + SHELFICE Package ---------------- @@ -37,24 +39,27 @@ are turned off, e.g., such as :filelink:`pkg/kpp`. Parts of the :filelink:`pkg/shelfice` code can be enabled or disabled at compile time via CPP preprocessor flags. These options are set in :filelink:`SHELFICE_OPTIONS.h `: -.. tabularcolumns:: |\Y{.475}|\Y{.1}|\Y{.45}| +.. tabularcolumns:: |\Y{.32}|\Y{.1}|\Y{.570}| + +.. table:: Compile-time parameters + :name: tab_phys_pkg_shelfice_compileparms -+-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ -| CPP Flag Name | Default | Description | -+===============================================+=========+======================================================================================================================+ -| :varlink:`ALLOW_SHELFICE_DEBUG` | #undef | include code for enhanced diagnostics and debug output | -+-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ -| :varlink:`ALLOW_ISOMIP_TD` | #define | include code for for simplified ISOMIP thermodynamics | -+-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ -| :varlink:`SHI_ALLOW_GAMMAFRICT` | #define | allow friction velocity-dependent transfer coefficient following Holland and Jenkins (1999) :cite:`holland:99` | -+-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | CPP Flag Name | Default | Description | + +===============================================+=========+======================================================================================================================+ + | :varlink:`ALLOW_SHELFICE_DEBUG` | #undef | include code for enhanced diagnostics and debug output | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`ALLOW_ISOMIP_TD` | #define | include code for for simplified ISOMIP thermodynamics | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ + | :varlink:`SHI_ALLOW_GAMMAFRICT` | #define | allow friction velocity-dependent transfer coefficient following Holland and Jenkins (1999) :cite:`holland:99` | + +-----------------------------------------------+---------+----------------------------------------------------------------------------------------------------------------------+ .. _shelfice_runtime: SHELFICE run-time parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -:filelink:`pkg/shelfice` is switched on/off at run-time by setting :varlink:`useSHELFICE` to ``.TRUE.`` in file ``data.pkg``. +:filelink:`pkg/shelfice` is switched on/off at run time by setting :varlink:`useSHELFICE` to ``.TRUE.`` in file ``data.pkg``. Run-time parameters are set in file ``data.shelfice`` (read in :filelink:`pkg/shelfice/shelfice_readparms.F`),as listed below. The data file specifying under-ice topography of ice shelves (:varlink:`SHELFICEtopoFile`) is in meters; upwards is positive, @@ -66,78 +71,80 @@ obtained by integrating an approximate density from the surface at :math:`z=0` down to the bottom of the last fully dry cell within the ice shelf, see :eq:`surfacepressure`. Note however the file :varlink:`SHELFICEloadAnomalyFile` must not be :math:`p_{top}`, but -:math:`p_{top}-g\sum_{k'=1}^{n-1}\rho_{0}\Delta{z}_{k'}`, with -:math:`\rho_{0}=` :varlink:`rhoConst`, so that in the absence of a :math:`\rho^{*}` -that is different from :math:`\rho_{0}`, the anomaly is zero. +:math:`p_{top}-g\sum_{k'=1}^{n-1}\rho_c \Delta{z}_{k'}`, with +:math:`\rho_c =` :varlink:`rhoConst`, so that in the absence of a :math:`\rho^{*}` +that is different from :math:`\rho_c`, the anomaly is zero. -.. tabularcolumns:: |\Y{.27}|\Y{.21}|\Y{.205}|\Y{.34}| +.. tabularcolumns:: |\Y{.275}|\Y{.28}|\Y{.455}| -.. table:: Run-time parameters and default values +.. table:: Run-time parameters and default values; all parameters are in namelist group ``SHELFICE_PARM01`` :name: tab_phys_pkg_shelfice_runtimeparms :class: longtable - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | Parameter | Group | Default | Description | - +========================================+=================+============================================+=========================================================================================================+ - | :varlink:`useISOMIPTD` | SHELFICE_PARM01 | FALSE | use simplified ISOMIP thermodynamics on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEconserve` | SHELFICE_PARM01 | FALSE | use conservative form of temperature boundary conditions on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEboundaryLayer` | SHELFICE_PARM01 | FALSE | use simple boundary layer mixing parameterization on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHI_withBL_realFWflux` | SHELFICE_PARM01 | FALSE | with :varlink:`SHELFICEboundaryLayer`, allow to use real-FW flux | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHI_withBL_uStarTopDz` | SHELFICE_PARM01 | FALSE | with :varlink:`SHELFICEboundaryLayer`, compute uStar from uVel,vVel averaged over top Dz thickness | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEloadAnomalyFile` | SHELFICE_PARM01 | :kbd:`' '` | initial geopotential anomaly | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEtopoFile` | SHELFICE_PARM01 | :kbd:`' '` | filename for under-ice topography of ice shelves | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEmassFile` | SHELFICE_PARM01 | :kbd:`' '` | filename for mass of ice shelves | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEMassDynTendFile` | SHELFICE_PARM01 | :kbd:`' '` | filename for mass tendency of ice shelves | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICETransCoeffTFile` | SHELFICE_PARM01 | :kbd:`' '` | filename for spatially varying transfer coefficients | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICElatentHeat` | SHELFICE_PARM01 | 334.0E+03 | latent heat of fusion (J/kg) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEHeatCapacity_Cp` | SHELFICE_PARM01 | 2000.0E+00 | specific heat capacity of ice (J/kg/K) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`rhoShelfIce` | SHELFICE_PARM01 | 917.0E+00 | (constant) mean density of ice shelf (kg/m\ :sup:`3`) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEheatTransCoeff` | SHELFICE_PARM01 | 1.0E-04 | transfer coefficient (exchange velocity) for temperature (m/s) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEsaltTransCoeff` | SHELFICE_PARM01 | 5.05E-03 :math:`\times`  | transfer coefficient (exchange velocity) for salinity (m/s) | - | | | :varlink:`SHELFICEheatTransCoeff` | | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEkappa` | SHELFICE_PARM01 | 1.54E-06 | temperature diffusion coefficient of the ice shelf (m\ :sup:`2`\ /s) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEthetaSurface` | SHELFICE_PARM01 | -20.0E+00 | (constant) surface temperature above the ice shelf (:sup:`o`\ C) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`no_slip_shelfice` | SHELFICE_PARM01 | :varlink:`no_slip_bottom` | slip along bottom of ice shelf on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEDragLinear` | SHELFICE_PARM01 | :varlink:`bottomDragLinear` | linear drag coefficient at bottom ice shelf (m/s) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEDragQuadratic` | SHELFICE_PARM01 | :varlink:`bottomDragQuadratic` | quadratic drag coefficient at bottom ice shelf (non-dim.) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEselectDragQuadr` | SHELFICE_PARM01 | -1 | select form of quadratic drag coefficient (non-dim.) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEMassStepping` | SHELFICE_PARM01 | FALSE | recalculate ice shelf mass at every time step | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEDynMassOnly` | SHELFICE_PARM01 | FALSE | if :varlink:`SHELFICEmassStepping` = TRUE, exclude freshwater flux contribution | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEadvDiffHeatFlux` | SHELFICE_PARM01 | FALSE | use advective-diffusive heat flux into ice shelf instead of default diffusive heat flux | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEuseGammaFrict` | SHELFICE_PARM01 | FALSE | use velocity dependent exchange coefficients (Holland and Jenkins 1999 :cite:`holland:99`) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICE_oldCalcUStar` | SHELFICE_PARM01 | FALSE | use old uStar averaging expression | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICEwriteState` | SHELFICE_PARM01 | FALSE | write ice shelf state to file on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICE_dumpFreq` | SHELFICE_PARM01 | :varlink:`dumpFreq` | dump frequency (s) | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ - | :varlink:`SHELFICE_dump_mnc` | SHELFICE_PARM01 | :varlink:`snapshot_mnc` | write snapshot using MNC on/off flag | - +----------------------------------------+-----------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | Parameter | Default | Description | + +========================================+============================================+=========================================================================================================+ + | :varlink:`useISOMIPTD` | FALSE | use simplified ISOMIP thermodynamics on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEconserve` | FALSE | use conservative form of temperature boundary conditions on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEboundaryLayer` | FALSE | use simple boundary layer mixing parameterization on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHI_withBL_realFWflux` | FALSE | with :varlink:`SHELFICEboundaryLayer`, allow to use real-FW flux | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHI_withBL_uStarTopDz` | FALSE | with :varlink:`SHELFICEboundaryLayer`, compute uStar from uVel,vVel averaged over top Dz thickness | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEloadAnomalyFile` | :kbd:`' '` | initial geopotential anomaly | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEtopoFile` | :kbd:`' '` | filename for under-ice topography of ice shelves | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEmassFile` | :kbd:`' '` | filename for mass of ice shelves | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEMassDynTendFile` | :kbd:`' '` | filename for mass tendency of ice shelves | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICETransCoeffTFile` | :kbd:`' '` | filename for spatially varying transfer coefficients | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICElatentHeat` | 334.0E+03 | latent heat of fusion (J/kg) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEHeatCapacity_Cp` | 2000.0E+00 | specific heat capacity of ice (J/kg/K) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`rhoShelfIce` | 917.0E+00 | (constant) mean density of ice shelf (kg/m\ :sup:`3`) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEheatTransCoeff` | 1.0E-04 | transfer coefficient (exchange velocity) for temperature (m/s) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEsaltTransCoeff` | :varlink:`SHELFICEsaltToHeatRatio` * | transfer coefficient (exchange velocity) for salinity (m/s) | + | | :varlink:`SHELFICEheatTransCoeff` | | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEsaltToHeatRatio` | 5.05E-03 | ratio of salinity to temperature transfer coefficients (non-dim.) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEkappa` | 1.54E-06 | temperature diffusion coefficient of the ice shelf (m\ :sup:`2`\ /s) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEthetaSurface` | -20.0E+00 | (constant) surface temperature above the ice shelf (:sup:`o`\ C) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`no_slip_shelfice` | :varlink:`no_slip_bottom` | slip along bottom of ice shelf on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEDragLinear` | :varlink:`bottomDragLinear` | linear drag coefficient at bottom ice shelf (m/s) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEDragQuadratic` | :varlink:`bottomDragQuadratic` | quadratic drag coefficient at bottom ice shelf (non-dim.) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEselectDragQuadr` | -1 | select form of quadratic drag coefficient (non-dim.) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEMassStepping` | FALSE | recalculate ice shelf mass at every time step | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEDynMassOnly` | FALSE | if :varlink:`SHELFICEmassStepping` = TRUE, exclude freshwater flux contribution | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEadvDiffHeatFlux` | FALSE | use advective-diffusive heat flux into ice shelf instead of default diffusive heat flux | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEuseGammaFrict` | FALSE | use velocity dependent exchange coefficients (Holland and Jenkins 1999 :cite:`holland:99`) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICE_oldCalcUStar` | FALSE | use old uStar averaging expression | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICEwriteState` | FALSE | write ice shelf state to file on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICE_dumpFreq` | :varlink:`dumpFreq` | dump frequency (s) | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ + | :varlink:`SHELFICE_dump_mnc` | :varlink:`snapshot_mnc` | write snapshot using MNC on/off flag | + +----------------------------------------+--------------------------------------------+---------------------------------------------------------------------------------------------------------+ SHELFICE description ~~~~~~~~~~~~~~~~~~~~ @@ -147,22 +154,22 @@ coordinates, the ice shelf topography on top of the water column has a similar role as (and in the language of Marshall et al. (2004) :cite:`marshall:04`, is isomorphic to) the orography and the pressure boundary conditions at the bottom of the fluid for atmospheric and oceanic models in pressure -coordinates. The total pressure :math:`p_{tot}` in the ocean can be +coordinates. The total pressure :math:`p_{\rm tot}` in the ocean can be divided into the pressure at the top of the water column -:math:`p_{top}`, the hydrostatic pressure and the non-hydrostatic -pressure contribution :math:`p_{NH}`: +:math:`p_{\rm top}`, the hydrostatic pressure and the non-hydrostatic +pressure contribution :math:`p_{\rm nh}`: .. math:: - p_{tot} = p_{top} + \int_z^{\eta-h} g\,\rho\,dz + p_{NH} + p_{\rm tot} = p_{\rm top} + \int_z^{\eta-h} g\,\rho\,dz + p_{\rm nh} :label: pressureocean with the gravitational acceleration :math:`g`, the density :math:`\rho`, the vertical coordinate :math:`z` (positive upwards), and the dynamic sea-surface height :math:`\eta`. For the open ocean, -:math:`p_{top}=p_{a}` (atmospheric pressure) and :math:`h=0`. Underneath +:math:`p_{\rm top}=p_{a}` (atmospheric pressure) and :math:`h=0`. Underneath an ice-shelf that is assumed to be floating in isostatic equilibrium, -:math:`p_{top}` at the top of the water column is the atmospheric +:math:`p_{\rm top}` at the top of the water column is the atmospheric pressure :math:`p_{a}` plus the weight of the ice-shelf. It is this weight of the ice-shelf that has to be provided as a boundary condition at the top of the water column (in run-time parameter :varlink:`SHELFICEloadAnomalyFile`). The weight is @@ -172,7 +179,7 @@ ice, from :math:`z=0` to a “reference” ice-shelf draft at :math:`z=-h` (Beck :cite:`beckmann:99`), so that .. math:: - p_{top} = p_{a} + \int_{-h}^{0}g\,\rho^{*}\,dz + p_{\rm top} = p_{a} + \int_{-h}^{0}g\,\rho^{*}\,dz :label: ptop Underneath the ice shelf, the “sea-surface height” :math:`\eta` is the @@ -180,32 +187,32 @@ deviation from the “reference” ice-shelf draft :math:`h`. During a model integration, :math:`\eta` adjusts so that the isostatic equilibrium is maintained for sufficiently slow and large scale motion. -In MITgcm, the total pressure anomaly :math:`p'_{tot}` which is used -for pressure gradient computations is defined by substracting a purely -depth dependent contribution :math:`-g\rho_{0}z` with a constant -reference density :math:`\rho_{0}` from :math:`p_{tot}`. +In MITgcm, the total pressure anomaly :math:`p'_{\rm tot}` which is used +for pressure gradient computations is defined by subtracting a purely +depth dependent contribution :math:`-g\rho_c z` using constant +reference density :math:`\rho_c` from :math:`p_{\rm tot}`. :eq:`pressureocean` becomes .. math:: - p_{tot} = p_{top} - g \rho_0 (z+h) + g \rho_0 \eta + \, \int_z^{\eta-h}{ g (\rho-\rho_0) \, dz} + \, p_{NH} + p_{\rm tot} = p_{\rm top} - g \rho_c (z+h) + g \rho_c \eta + \, \int_z^{\eta-h}{ g (\rho-\rho_c) \, dz} + \, p_{\rm nh} :label: pressure and after rearranging .. math:: - p'_{tot} = p'_{top} + g \rho_0 \eta + \, \int_z^{\eta-h}{g (\rho-\rho_0) \, dz} + \, p_{NH} + p'_{\rm tot} = p'_{\rm top} + g \rho_c \eta + \, \int_z^{\eta-h}{g (\rho-\rho_c) \, dz} + \, p_{\rm nh} -with :math:`p'_{tot} = p_{tot} + g\,\rho_0\,z` and -:math:`p'_{top} = p_{top} - -g\,\rho_0\,h`. The non-hydrostatic pressure contribution :math:`p_{NH}` +with :math:`p'_{\rm tot} = p_{\rm tot} + g\,\rho_c\,z` and +:math:`p'_{\rm top} = p_{\rm top} - g\,\rho_c\,h`. +The non-hydrostatic pressure contribution :math:`p_{\rm nh}` is neglected in the following. -In practice, the ice shelf contribution to :math:`p_{top}` is computed +In practice, the ice shelf contribution to :math:`p_{\rm top}` is computed by integrating :eq:`ptop` from :math:`z=0` to the bottom of the last fully dry cell within the ice shelf: .. math:: - p_{top} = g\,\sum_{k'=1}^{n-1}\rho_{k'}^{*}\Delta{z_{k'}} + p_{a} + p_{\rm top} = g\,\sum_{k'=1}^{n-1}\rho_{k'}^{*}\Delta{z_{k'}} + p_{a} :label: surfacepressure where :math:`n` is the vertical index of the first (at least partially) @@ -215,8 +222,8 @@ evaluating the pressure gradient is computed in the center of the “wet” cell :math:`k` as .. math:: - p'_{k} = p'_{top} + g\rho_{n}\eta + - g\,\sum_{k'=n}^{k}\left((\rho_{k'}-\rho_{0})\Delta{z_{k'}} + p'_{k} = p'_{\rm top} + g\rho_{n}\eta + + g\,\sum_{k'=n}^{k}\left((\rho_{k'}-\rho_c)\Delta{z_{k'}} \frac{1+H(k'-k)}{2}\right) :label: discretizedpressure @@ -252,7 +259,7 @@ interaction :math:`g_{\theta}` to the total tendency terms :math:`\theta^{n+1} = f(\theta^{n},\Delta{t},G_{\theta}^{n})` are .. math:: - g_{\theta,k} = \frac{Q}{\rho_{0} c_{p} h_{k} \Delta{z}_{k}} + g_{\theta,k} = \frac{Q}{\rho_c c_{p} h_{k} \Delta{z}_{k}} \text{ and } g_{\theta,k+1} = 0 :label: orgtendency @@ -264,12 +271,12 @@ the dashed line in cell C) and applying the averaged tendency to cell A layer :math:`k+1`) yields .. math:: - g_{\theta,k}^* = \frac{Q}{\rho_{0} c_{p} \Delta{z}_{k}} + g_{\theta,k}^* = \frac{Q}{\rho_c c_{p} \Delta{z}_{k}} :label: tendencyk .. math:: g_{\theta,k+1}^* - = \frac{Q}{\rho_{0} c_{p} \Delta{z}_{k}} + = \frac{Q}{\rho_c c_{p} \Delta{z}_{k}} \frac{ \Delta{z}_{k} ( 1- h_{k} )}{\Delta{z}_{k+1}} :label: tendencykp1 @@ -281,119 +288,171 @@ treated in the same way. The momentum equations are not modified. Three-equations thermodynamics ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Freezing and melting form a boundary layer between ice shelf and ocean. -Phase transitions at the boundary between saline water and ice imply the -following fluxes across the boundary: the freshwater mass flux :math:`q` -(:math:`<0` for melting); the heat flux that consists of the diffusive -flux through the ice, the latent heat flux due to melting and freezing -and the heat that is carried by the mass flux; and the salinity that is -carried by the mass flux, if the ice has a non-zero salinity +Freezing and melting form a boundary layer between the ice shelf and the +ocean that is represented in the model by an infinitesimal layer used to +calculate the exchanges between the ocean and the ice. Melting and +freezing at the boundary between saline water and ice imply a freshwater +mass flux :math:`q` (:math:`<0` for melting); the relevant heat fluxes +into and out of the boundary layer therefore include a diffusive flux +through the ice, the latent heat flux due to melting and freezing, and +the advective heat that is carried by the freshwater mass flux. There is +a salt flux carried by the mass flux if the ice has a non-zero salinity :math:`S_I`. Further, the position of the interface between ice and ocean changes because of :math:`q`, so that, say, in the case of melting -the volume of sea water increases. As a consequence salinity and -temperature are modified. - -The turbulent exchange terms for tracers at the ice-ocean interface are -generally expressed as diffusive fluxes. Following Jenkins et al. (2001) -:cite:`jenkins:01`, the boundary conditions for a tracer -take into account that this boundary is not a material surface. The -implied upward freshwater flux :math:`q` (in mass units, negative for -melting) is included in the boundary conditions for the temperature and -salinity equation as an advective flux: +the volume of sea water increases. As a consequence of these fluxes, +salinity and temperature are affected. + +The turbulent tracer exchanges between the infinitesimal boundary layer and +the ocean are expressed as diffusive fluxes. Following Jenkins et +al. (2001) :cite:`jenkins:01`, the boundary conditions for a tracer take +into account that this boundary may not move with the ice ocean interface +(for example, in a linear free surface model). The implied upward freshwater +flux :math:`q` is therefore included in the boundary conditions for the +temperature and salinity equation as an advective flux. + +The boundary conditions for tracer :math:`X=S,T` (tracer :math:`X` stands +for either in-situ temperature :math:`T` or salinity :math:`S`, located at +the first interior ocean grid point) in the ocean are expressed as the sum +of advective and diffusive fluxes .. math:: - {\rho}K\frac{\partial{X}}{\partial{z}}\biggl|_{b} - = (\rho\gamma_{X}-q) ( X_{b} - X ) + F_X = (\rho_c \, \gamma_{X} -q ) ( X_{b} - X ) :label: jenkinsbc -where tracer :math:`X` stands for either temperature :math:`T` or -salinity :math:`S`. :math:`X_b` is the tracer at the interface (taken to -be at freezing), :math:`X` is the tracer at the first interior grid -point, :math:`\rho` is the density of seawater, and :math:`\gamma_X` is -the turbulent exchange coefficient (in units of an exchange velocity). -The left hand side of :eq:`jenkinsbc` is shorthand for the -(downward) flux of tracer :math:`X` across the boundary. :math:`T_b`, -:math:`S_b` and the freshwater flux :math:`q` are obtained from solving -a system of three equations that is derived from the heat and freshwater -balance at the ice ocean interface. - -In this so-called three-equation-model (e.g., Hellmer and Olbers (1989) -:cite:`hellmer:89`, Jenkins et al. (2001) :cite:`jenkins:01`) -the heat balance at the ice-ocean interface is expressed as +where the diffusive flux has been parameterized as a turbulent exchange +:math:`\rho_c \, \gamma_{X}( X_{b} - X )` following Holland and +Jenkins (1999) :cite:`holland:99` or Jenkins et al. (2001) +:cite:`jenkins:01`. :math:`X_b` indicates the tracer in the boundary layer, +:math:`\rho_c` the density of seawater (parameter :varlink:`rhoConst`), and +:math:`\gamma_X` is the turbulent exchange (or transfer) coefficient +(parameters :varlink:`SHELFICEheatTransCoeff` and +:varlink:`SHELFICEsaltTransCoeff`), in units of an exchange +velocity. In-situ temperature, computed locally from tracer potential +temperature, is required here to accurately compute the in-situ freezing +point of seawater in order to determine ice melt. + +The tracer budget for the infinitesimal boundary layer takes the general +form: + +.. math:: + {\rho_I} K_{I,X} \frac{\partial{X_I}}{\partial{z}}\biggl|_{b} + = \rho_c \, \gamma_{X} ( X_{b} - X ) - q ( X_{b} - X_{I} ) + :label: jenkinsgenbudget + +where the LHS represents diffusive flux from the ice evaluated at the +interface between the infinitesimal boundary layer and the ice, and the RHS +represents the turbulent and advective exchanges between the infinitesimal +layer and the ocean and the advective exchange between the boundary layer +and the ice (:math:`qX_{I}`, this flux will be zero if the ice contains no +tracer: :math:`X_I=0`). The temperature in the boundary layer (:math:`T_b`) +is taken to be at the freezing point, which is a function of pressure and +salinity, :math:`\rho_I` is ice density (:varlink:`rhoShelfIce`), and +:math:`K_{I,X}` the appropriate ice diffusivity. + +For any material tracer such as salinity, the LHS in :eq:`jenkinsgenbudget` +vanishes (no material diffusion into the ice), while for temperature, the +term :math:`q\,( T_{b}-T_{I} )` vanishes, because both the boundary layer +and the ice are at the freezing point. Instead, the latent heat of freezing +is included as an additional term to take into account the conversion of +ice to water: .. math:: - c_{p} \rho \gamma_T (T - T_{b}) - +\rho_{I} c_{p,I} \kappa \frac{(T_{S} - T_{b})}{h} = -Lq - :label: hellmerheatbalance - -where :math:`\rho` is the density of sea-water, -:math:`c_{p} = 3974 \, \text{J kg}^{-1} \text{K}^{-1}` is the specific heat -capacity of water and :math:`\gamma_T` the turbulent exchange -coefficient of temperature. The value of :math:`\gamma_T` is discussed -in Holland and Jenkins (1999) :cite:`holland:99`. :math:`L = -334000 \, \text{J kg}^{-1}` is the latent heat of fusion. -:math:`\rho_{I} = 920 \, \text{kg m}^{-3}`, :math:`c_{p,I} = -2000 \, \text{J kg}^{-1} \text{K}^{-1}`, and :math:`T_{S}` are the density, -heat capacity and the surface temperature of the ice shelf; -:math:`\kappa=1.54\times10^{-6} \, \text{m}^2 \text{s}^{-1}` is the heat -diffusivity through the ice-shelf and :math:`h` is the ice-shelf draft. -The second term on the right hand side describes the heat flux through -the ice shelf. A constant surface temperature :math:`T_S=-20^{\circ}\text{C}` is -imposed. :math:`T` is the temperature of the model cell adjacent to the -ice-water interface. The temperature at the interface :math:`T_{b}` is -assumed to be the in-situ freezing point temperature of sea-water -:math:`T_{f}` which is computed from a linear equation of state + {\rho_I} \, c_{p,I} \, \kappa_{I,T} + \frac{\partial{T_I}}{\partial{z}}\biggl|_{b} + = c_{p} \, \rho_c \, \gamma_{T} ( T_{b} - T )+ L q. + :label: jenkinsheatbudget + +where :math:`\kappa_{I,T}` is the thermal ice diffusivity +(:varlink:`SHELFICEkappa`), :math:`L` is the latent heat of fusion +(:varlink:`SHELFICElatentHeat`), :math:`c_{p}` is the specific heat +capacity of water (:varlink:`HeatCapacity_Cp`), and :math:`c_{p,I}` the +heat capacity of the ice shelf (:varlink:`SHELFICEHeatCapacity_Cp`). A +reasonable choice for :math:`\gamma_T` (:varlink:`SHELFICEheatTransCoeff`), +the turbulent exchange coefficient of temperature, is discussed in Holland +and Jenkins (1999) :cite:`holland:99` (see +:numref:`shelfice_exchange_coeff`). The temperature at the interface +:math:`T_{b}` is assumed to be the in-situ freezing point temperature of +sea-water :math:`T_{f}`, which is computed from a linear equation of state: .. math:: - T_{f} = (0.0901 - 0.0575\ S_{b})^{\circ} - - 7.61 \times 10^{-4}\frac{\text{K}}{\text{dBar}}\ p_{b} + T_{f} = (0.0901 - 0.0575\ S_{b}) + - 7.61 \times 10^{-4} p_{b}. :label: hellmerfreeze -with the salinity :math:`S_{b}` and the pressure :math:`p_{b}` (in dBar) -in the cell at the ice-water interface. From the salt budget, the salt -flux across the shelf ice-ocean interface is equal to the salt flux due -to melting and freezing: +where :math:`T_f` is given in :sup:`o`\ C and :math:`p_{b}` is in dBar. In +:eq:`jenkinsheatbudget`, the diffusive heat flux at the ice-ocean interface +can be appproximated by assuming a linear temperature profile in the ice +and approximating the vertical derivative of temperature in the ice as the +difference between the ice surface and ice bottom temperatures divided by +the ice thickness, so that the left-hand-side of :eq:`jenkinsheatbudget` +becomes .. math:: - \rho \gamma_{S} (S - S_{b}) = - q\,(S_{b}-S_{I}) + {\rho_I} \, c_{p,I} \, \kappa_{I,T} + \frac{\partial{T_I}}{\partial{z}}\biggl|_{b} + \approx \rho_{I} \, c_{p,I} \, \kappa_{I,T} \frac{(T_{S} - T_{b})}{h} + :label: dTdzdiffus + +where :math:`T_{S}` the (surface) temperature of the ice shelf +(:varlink:`SHELFICEthetaSurface`) and :math:`h` is the ice-shelf +draft. Alternatively, assuming that the ice is "advected" vertically as +implied by the meltflux :math:`q`, the diffusive flux can be approximated +as :math:`\min(q,0)\,c_{p,I} (T_{S} - T_{b})` (runtime flag +:varlink:`SHELFICEadvDiffHeatFlux`; see Holland and Jenkins, 1999 +:cite:`holland:99` for details). + +From the salt budget, the salt flux across the shelf ice-ocean interface is +equal to the salt flux due to melting and freezing: + +.. math:: + \rho_c \, \gamma_{S} (S - S_{b}) = - q\,(S_{b}-S_{I}) :label: hellmersaltbalance -where :math:`\gamma_S = 5.05\times10^{-3}\gamma_T` is the turbulent -salinity exchange coefficient, and :math:`S` and :math:`S_{b}` are -defined in analogy to temperature as the salinity of the model cell -adjacent to the ice-water interface and at the interface, respectively. -Note, that the salinity of the ice shelf is generally neglected -(:math:`S_{I}=0`). :eq:`hellmerheatbalance` to -:eq:`hellmersaltbalance` can be solved for :math:`S_{b}`, -:math:`T_{b}`, and the freshwater flux :math:`q` due to melting. These -values are substituted into expression :eq:`jenkinsbc` to obtain the -boundary conditions for the temperature and salinity equations of the -ocean model. This formulation tends to yield smaller melt rates than the -simpler formulation of the ISOMIP protocol because the freshwater flux -due to melting decreases the salinity which raises the freezing point -temperature and thus leads to less melting at the interface. For a -simpler thermodynamics model where :math:`S_b` is not computed -explicitly, for example as in the ISOMIP protocol, -:eq:`jenkinsbc` cannot be applied directly. In this case -:eq:`hellmersaltbalance` can be used with :eq:`jenkinsbc` to obtain: - -.. math:: \rho{K}\frac{\partial{S}}{\partial{z}}\biggl|_{b} = q\,(S-S_I) +where :math:`\gamma_S =` :varlink:`SHELFICEsaltToHeatRatio` :math:`* +\gamma_T` is the turbulent salinity exchange coefficient. Note, it is +assumed that :math:`\kappa_{I,S} =0`; moreover, the salinity of the ice +shelf is generally neglected (:math:`S_{I}=0`). + +The budget equations for temperature :eq:`jenkinsheatbudget` (with +:eq:`dTdzdiffus`) and salinity +:eq:`hellmersaltbalance`, together with the freezing point temperature of +sea-water :eq:`hellmerfreeze`, form the so-called three-equation-model +(e.g., Hellmer and Olbers (1989) :cite:`hellmer:89`, Jenkins et al. (2001) +:cite:`jenkins:01`). These equations are solved to obtain :math:`S_b, T_b, +q`, which are then substituted into :eq:`jenkinsbc` to obtain the boundary +conditions for the temperature and salinity equations of the ocean +model. Note that with :math:`S_{I}=0` and :eq:`hellmersaltbalance`, the +boundary flux for salinity becomes :math:`F_S = q\,S`, which is the flux +that is necessary to account for the dilution of salinity in the case of +melting. + +The three-equation-model tends to yield smaller melt rates than the simpler +formulation of the ISOMIP protocol (:numref:`shelfice_isomip`) because the +freshwater flux (due to melting) decreases the salinity, which in turn +raises the freezing point temperature and thus leads to less melting at the +interface. For a simpler thermodynamics model where :math:`S_b` is not +computed explicitly, for example as in the ISOMIP protocol, :eq:`jenkinsbc` +cannot be applied directly. In this case :eq:`hellmersaltbalance` can be +used with :eq:`jenkinsbc` to obtain: + +.. math:: F_X = q\,(S-S_I) This formulation can be used for all cases for which -:eq:`hellmersaltbalance` is valid. Further, in this -formulation it is obvious that melting (:math:`q<0`) leads to a -reduction of salinity. +:eq:`hellmersaltbalance` is valid. Further, in this formulation it is +obvious that melting (:math:`q<0`) leads to a reduction of salinity. -The default value of :varlink:`SHELFICEconserve` ``=.FALSE.`` removes the contribution :math:`q\, ( X_{b}-X )` from -:eq:`jenkinsbc`, making the boundary conditions for temperature -non-conservative. +The default value of :varlink:`SHELFICEconserve` ``=.FALSE.`` removes the +contribution :math:`q\, ( X_{b}-X )` from :eq:`jenkinsbc`, making the +boundary conditions non-conservative. Solving the three-equations system ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -There has been some confusion about the three-equations system, so we document the solution in the code here: -We use :eq:`hellmerfreeze` :math:`T_{b} = a_{0} S_{b} + \epsilon_{4}` to eliminate :math:`T_{b}` -from :eq:`hellmerheatbalance` and find an expression for the freshwater flux :math:`q`: +There has been some confusion about the three-equations system, so we +document the solution in the code here: We use :eq:`hellmerfreeze` +:math:`T_{b} = a_{0} S_{b} + \epsilon_{4}` to eliminate :math:`T_{b}` +from :eq:`jenkinsheatbudget` with :eq:`dTdzdiffus` and find an +expression for the freshwater flux :math:`q`: .. math:: \begin{aligned} @@ -417,10 +476,12 @@ to be substituted into :eq:`hellmersaltbalance`: + \epsilon_{2}\,S - \epsilon_{q}\,S_{I} \end{aligned} -where the abbrevations :math:`\epsilon_{1} = c_{p} \rho \gamma_{T}`, -:math:`\epsilon_{2} = \rho L \gamma_{S}`, :math:`\epsilon_{3} = -\frac{\rho_{I} c_{p,I} \kappa}{h}`, :math:`\epsilon_{4}=b_{0}p + -c_{0}`, :math:`\epsilon_{q} = \epsilon_{1}\,(\epsilon_{4} - T) + +where the abbrevations +:math:`\epsilon_{1} = c_{p} \, \rho_c \, \gamma_{T}`, +:math:`\epsilon_{2} = \rho_c L \, \gamma_{S}`, :math:`\epsilon_{3} = +\frac{\rho_{I} \, c_{p,I} \, \kappa}{h}`, +:math:`\epsilon_{4}=b_{0}p + c_{0}`, +:math:`\epsilon_{q} = \epsilon_{1}\,(\epsilon_{4} - T) + \epsilon_{3}\,(\epsilon_{4} - T_{S})` have been introduced. The quadratic equation in :math:`S_{b}` is solved and the smaller non-negative root is used. In the MITgcm code, the ice shelf salinity @@ -432,7 +493,7 @@ non-negative root is used. In the MITgcm code, the ice shelf salinity + (\epsilon_{q} - \epsilon_{2}) \,S_{b} + \epsilon_{2}\,S \\ S_{b} &= \frac{\epsilon_{2} - \epsilon_{q}\mp \sqrt{(\epsilon_{q} - \epsilon_{2})^2 - - 4\, a_{0}\,(\epsilon_{1} + \epsilon_{3})\,\epsilon_{2}}} + - 4\, a_{0}\,(\epsilon_{1} + \epsilon_{3})\,\epsilon_{2}\,S}} {2\,a_{0}\,(\epsilon_{1} + \epsilon_{3})} \end{aligned} @@ -440,48 +501,52 @@ With :math:`S_b`, the boundary layer temperature :math:`T_b` and the melt rate :math:`q` are known through :eq:`hellmerfreeze` and :eq:`solvedmeltrate`. +.. _shelfice_isomip: + ISOMIP thermodynamics ^^^^^^^^^^^^^^^^^^^^^ A simpler formulation follows the ISOMIP protocol. The freezing and melting in the boundary layer between ice shelf and ocean is parameterized following Grosfeld et al. (1997) :cite:`grosfeld:97`. In this -formulation :eq:`hellmerheatbalance` reduces to +formulation :eq:`jenkinsheatbudget` reduces to .. math:: - c_{p} \rho \gamma_T (T - T_{b}) = -Lq + c_{p} \, \rho_c \, \gamma_T (T - T_{b}) = -L q :label: isomipheatbalance and the fresh water flux :math:`q` is computed from .. math:: - q = - \frac{c_{p} \rho \gamma_T (T - T_{b})}{L} + q = - \frac{c_{p} \, \rho_c \, \gamma_T (T - T_{b})}{L} :label: isomipfwflx -In order to use this formulation, set run-time parameter :varlink:`useISOMIPTD` ``=.TRUE.`` in -``data.shelfice``. +In order to use this formulation, set runtime parameter +:varlink:`useISOMIPTD` ``=.TRUE.`` in ``data.shelfice``. + +.. _shelfice_exchange_coeff: Exchange coefficients ^^^^^^^^^^^^^^^^^^^^^ The default exchange coefficents :math:`\gamma_{T/S}` are constant and -set by the runtime parameters :varlink:`SHELFICEheatTransCoeff` and +set by the run-time parameters :varlink:`SHELFICEheatTransCoeff` and :varlink:`SHELFICEsaltTransCoeff` (see :numref:`tab_phys_pkg_shelfice_runtimeparms`). If :varlink:`SHELFICEuseGammaFrict` ``=.TRUE.``, exchange coefficients are computed from drag laws and friction velocities estimated from ocean speeds following Holland and Jenkins (1999) :cite:`holland:99`. This computation can be modified using runtime -parameters and user is referred to S/R +parameters and the user is referred to :filelink:`pkg/shelfice/shelfice_readparms.F` for details. Remark ^^^^^^ The shelfice package and experiments demonstrating its strengths and -weaknesses are also described in Losch (2008) :cite:`losch:08`. Unfortunately however, -the description of the thermodynamics in the -appendix of Losch (2008) is wrong. +weaknesses are also described in Losch (2008) +:cite:`losch:08`. Unfortunately, the description of the +thermodynamics in the appendix of Losch (2008) is wrong. .. _shelfice_subroutines: diff --git a/doc/phys_pkgs/streamice.rst b/doc/phys_pkgs/streamice.rst index fd8892f3b5..936f2be80b 100755 --- a/doc/phys_pkgs/streamice.rst +++ b/doc/phys_pkgs/streamice.rst @@ -121,6 +121,8 @@ General :filelink:`pkg/streamice` parameters are set under :varlink:`STREAMICE_P +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamice_calve_to_mask` | FALSE | if :varlink:`streamice_move_front` TRUE do not allow to advance beyond :varlink:`streamice_calve_mask` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ + | :varlink:`STREAMICE_use_log_ctrl` | FALSE | specify :math:`C` and :math:`B` via their logarithm rather than square root | + +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamicecalveMaskFile` | :kbd:`' '` | file to initialize :varlink:`streamice_calve_mask` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamice_diagnostic_only` | FALSE | do not update ice thickness (velocity solve only) | @@ -149,9 +151,9 @@ General :filelink:`pkg/streamice` parameters are set under :varlink:`STREAMICE_P +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamiceHmaskFile` | :kbd:`' '` | :varlink:`streamice_hmask` initialization file; requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ - | :varlink:`streamiceuFaceBdryFile` | :kbd:`' '` | streamice`STREAMICE_ufacemask_bdry` initialization file; requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | + | :varlink:`streamiceuFaceBdryFile` | :kbd:`' '` | :varlink:`streamice_ufacemask_bdry` initialization file; requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ - | :varlink:`streamicevFaceBdryFile` | :kbd:`' '` | streamice`STREAMICE_vfacemask_bdry`` initialization file; requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | + | :varlink:`streamicevFaceBdryFile` | :kbd:`' '` | :varlink:`streamice_vfacemask_bdry` initialization file; requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamiceuMassFluxFile` | :kbd:`' '` | mass flux at :math:`u`-faces init. file (m\ :sup:`2`\ /yr); requires #define :varlink:`STREAMICE_GEOM_FILE_SETUP` | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ @@ -187,6 +189,14 @@ General :filelink:`pkg/streamice` parameters are set under :varlink:`STREAMICE_P +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ | :varlink:`streamice_allow_reg_coulomb` | FALSE | use regularized Coulomb sliding :eq:`coul_eqn`. Requires :varlink:`STREAMICE_COULOMB_SLIDING` CPP option. | +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ + | :varlink:`STREAMICE_vel_ext` | FALSE | over-ride velocity calculation with binary file | + +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ + | :varlink:`STREAMICE_vel_ext` | FALSE | over-ride velocity calculation with binary file, with velocities applied directly to C-grid. | + +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ + | :varlink:`STREAMICE_uvel_ext_file` | FALSE | file to initialise `x`-velocity component (m/a) | + +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ + | :varlink:`STREAMICE_vvel_ext_file` | FALSE | file to initialise `y`-velocity component (m/a) | + +-------------------------------------------+------------------------------+--------------------------------------------------------------------------------------------------------------------+ .. _ssub_phys_pkg_streamice_domain_setup: @@ -365,7 +375,7 @@ From the velocity field, thickness evolves according to the continuity equation: .. math:: - h_t + \nabla\cdot(h\vec{u}) = \dot{a}-\dot{b} + h_t + \nabla \cdot(h\vec{u}) = \dot{a}-\dot{b} :label: adv_eqn Where :math:`\dot{b}` is a basal mass balance (e.g., melting due to @@ -408,7 +418,7 @@ Thus \nu = \frac{1}{2}A^{-\frac{1}{n}}\left(\dot{\varepsilon}_{xx}^2+\dot{\varepsilon}_{yy} ^2+\dot{\varepsilon}_{xx}\dot{\varepsilon}_{yy}+\dot{\varepsilon}_{xy}^2+\dot{ - \varepsilon}_{min}^2\right)^{\frac{1-n}{2n}} + \varepsilon}_{\min}^2\right)^{\frac{1-n}{2n}} :label: visc_eqn though the form is slightly different if a hybrid formulation is used. @@ -421,7 +431,7 @@ rethought if the effects of tides are to be considered. :math:`\vec{\tau}_b` has the form .. math:: - \vec{\tau}_b = C (|\vec{u}|^2+u_{min}^2)^{\frac{m-1}{2}}\vec{u}. + \vec{\tau}_b = C (|\vec{u}|^2+u_{\min}^2)^{\frac{m-1}{2}}\vec{u}. :label: tau_eqn Again, the form is slightly different if a hybrid formulation is to be @@ -445,7 +455,7 @@ where :math:`u` is shorthand for the regularized norm in :eq:`tau_eqn` (or for : with :math:`h_f` the floatation thickness .. math:: - h_f = max\left(0,-\frac{\rho_w}{\rho}R\right), + h_f = \max\left(0,-\frac{\rho_w}{\rho}R\right), where :math:`R` is bed elevation. This formulation was used in the MISMIP+ intercomparison tests :cite:`asay-davis:16`. :eq:`eff_press` assumes complete hydraulic connectivity to the ocean throughout @@ -498,7 +508,7 @@ becomes \nu = \frac{1}{2}A^{-\frac{1}{n}}\left(\dot{\varepsilon}_{xx}^2+\dot{\varepsilon}_{yy} ^2+\dot{\varepsilon}_{xx}\dot{\varepsilon}_{yy}+\dot{\varepsilon}_{xy}^2+\frac{1 - }{4}u_z^2+\frac{1}{4}v_z^2+\dot{\varepsilon}_{min}^2\right)^{\frac{1-n}{2n}} + }{4}u_z^2+\frac{1}{4}v_z^2+\dot{\varepsilon}_{\min}^2\right)^{\frac{1-n}{2n}} In the formulation for :math:`\tau_b`, :math:`u_b`, the horizontal velocity at :math:`u_b` is used instead. The details are given in Goldberg (2011) @@ -514,7 +524,7 @@ for this flux and potential advance of the ice shelf front. If :varlink:`streami The algorithm is based on Albrecht et al. (2011) :cite:`Albrecht:2011`. In this scheme, for empty or partial cells adjacent to a calving front, a **reference** thickness -:math:`h_{ref}` is found, defined as an average over the thickness +:math:`h_{\rm ref}` is found, defined as an average over the thickness of all neighboring cells that flow into the cell. The total volume input over a time step is added to the volume of ice already in the cell, whose partial area coverage is then updated based on the volume and reference thickness. If the area coverage reaches 100% in a time step, @@ -599,7 +609,7 @@ arrays within :filelink:`pkg/streamice`. They are :math:`hmask` is defined at cell centers, like :math:`h`. :math:`umask` and :math:`vmask` are defined at cell nodes, like velocities. :math:`ufacemaskbdry` and :math:`vfacemaskbdry` are defined at cell -faces, like velocities in a :math:`C`-grid - but unless one sets +faces, like velocities in a C-grid - but unless one sets ``#define`` :varlink:`STREAMICE_GEOM_FILE_SETUP` in :filelink:`STREAMICE_OPTIONS.h `, the values are only relevant at the boundaries of the grid. diff --git a/doc/phys_pkgs/thsice.rst b/doc/phys_pkgs/thsice.rst index e91ac6c3b4..b54d9c70bc 100644 --- a/doc/phys_pkgs/thsice.rst +++ b/doc/phys_pkgs/thsice.rst @@ -29,9 +29,9 @@ The ice model is called from *thermodynamics.F*, subroutine In *ice\_forcing.F*, we calculate the freezing potential of the ocean model surface layer of water: -.. math:: {\bf frzmlt} = (T_f - SST) \frac{c_{sw} \rho_{sw} \Delta z}{\Delta t} +.. math:: {\bf frzmlt} = (T_f - SST) \frac{c_{\rm sw} \rho_{\rm sw} \Delta z}{\Delta t} -where :math:`c_{sw}` is seawater heat capacity, :math:`\rho_{sw}` is the +where :math:`c_{\rm sw}` is seawater heat capacity, :math:`\rho_{\rm sw}` is the seawater density, :math:`\Delta z` is the ocean model upper layer thickness and :math:`\Delta t` is the model (tracer) timestep. The freezing temperature, :math:`T_f=\mu S` is a function of the salinity. @@ -80,17 +80,17 @@ calculated as: .. math:: \begin{aligned} - q_1 & = & -c_{i}*T_f + L_i \nonumber \\ - q_2 & = & -c_{f}T_{mlt}+ c_{i}(T_{mlt}-T{f}) + L_i(1-\frac{T_{mlt}}{T_f}) + q_1 & = -c_{i}*T_f + L_i \nonumber \\ + q_2 & = -c_{f}T_{\rm mlt}+ c_{i}(T_{\rm mlt}-T{f}) + L_i(1-\frac{T_{\rm mlt}}{T_f}) \nonumber\end{aligned} where :math:`c_f` is specific heat of liquid fresh water, :math:`c_i` is the specific heat of fresh ice, :math:`L_i` is latent heat of freezing, -:math:`\rho_i` is density of ice and :math:`T_{mlt}` is melting +:math:`\rho_i` is density of ice and :math:`T_{\rm mlt}` is melting temperature of ice with salinity of 1. The height of a new layer of ice is -.. math:: h_{i new} = \frac{{\bf esurp} \Delta t}{qi_{0av}} +.. math:: h_{i \rm new} = \frac{{\bf esurp} \Delta t}{qi_{0av}} where :math:`qi_{0av}=-\frac{\rho_i}{2} (q_1+q_2)`. @@ -104,7 +104,7 @@ this determines the ice fraction **compact**. If there is already ice in the grid cell, the new ice must have the same height and the new ice fraction is -.. math:: i_f=(1-\hat{i_f}) \frac{h_{i new}}{h_i} +.. math:: i_f=(1-\hat{i_f}) \frac{h_{i \rm new}}{h_i} where :math:`\hat{i_f}` is ice fraction from previous timestep and :math:`h_i` is current ice height. Snow is redistributed over the new @@ -146,15 +146,15 @@ where, .. math:: - F_s = F_{sensible}+F_{latent}+F_{longwave}^{down}+F_{longwave}^{up}+ (1- - \alpha) F_{shortwave} + F_s = F_{\rm SH}+F_{\rm LH}+F_{LW \downarrow}+F_{LW \uparrow} + (1- + \alpha) F_{\rm SW} and .. math:: - \frac{d F_s}{dT} = \frac{d F_{sensible}}{dT} + \frac{d F_{latent}}{dT} - +\frac{d F_{longwave}^{up}}{dT}. + \frac{d F_s}{dT} = \frac{d F_{\rm SH}}{dT} + \frac{d F_{\rm LH}}{dT} + +\frac{d F_{\rm LW \uparrow}}{dT}. :math:`F_s` and :math:`\frac{d F_s}{dT}` are currently calculated from the **BULKF** package described separately, but could also be provided @@ -162,7 +162,7 @@ by an atmospheric model. The surface albedo is calculated from the ice height and/or surface temperature (see below, *srf\_albedo.F*) and the shortwave flux absorbed in the ice is -.. math:: {\bf fswint} = (1-e^{\kappa_i h_i})(1-\alpha) F_{shortwave} +.. math:: {\bf fswint} = (1-e^{\kappa_i h_i})(1-\alpha) F_{SW} where :math:`\kappa_i` is bulk extinction coefficient. @@ -172,9 +172,8 @@ The conductive flux to the surface is where :math:`K_{1/2}` is the effective conductive coupling of the snow-ice layer between the surface and the mid-point of the upper layer -of ice :math:` -K_{1/2}=\frac{4 K_i K_s}{K_s h_i + 4 K_i h_s} -`. :math:`K_i` and :math:`K_s` are constant thermal conductivities of +of ice :math:`K_{1/2}=\frac{4 K_i K_s}{K_s h_i + 4 K_i h_s}`, +:math:`K_i` and :math:`K_s` are constant thermal conductivities of seaice and snow. From the above equations we can develop a system of equations to find @@ -191,9 +190,9 @@ a unit mass of seaice with temperature :math:`T`. For the upper layer .. math:: \begin{aligned} - q_1 & = & - c_f T_f + c_i (T_f-T)+ L_{i}(1-\frac{T_f}{T}) + q_1 & = - c_f T_f + c_i (T_f-T)+ L_{i}(1-\frac{T_f}{T}) \nonumber \\ - q_2 & = & -c_i T+L_i \nonumber\end{aligned} + q_2 & = -c_i T+L_i \nonumber\end{aligned} where :math:`c_f` is specific heat of liquid fresh water, :math:`c_i` is the specific heat of fresh ice, and :math:`L_i` is latent heat of @@ -206,38 +205,38 @@ ocean-ice interface for either melting or freezing. .. math:: \begin{aligned} - E_{top} & = & (F_s- K_{1/2}(T_s-T_1) ) \Delta t + E_{\rm top} & = & (F_s- K_{1/2}(T_s-T_1) ) \Delta t \nonumber \\ - E_{bot} &= & (\frac{4K_i(T_2-T_f)}{h_i}-F_b) \Delta t + E_{\rm bot} &= & (\frac{4K_i(T_2-T_f)}{h_i}-F_b) \Delta t \nonumber\end{aligned} where :math:`F_b` is the heat flux at the ice bottom due to the sea -surface temperature variations from freezing. If :math:`T_{sst}` is -above freezing, :math:`F_b=c_{sw} \rho_{sw} -\gamma (T_{sst}-T_f)u^{*}`, :math:`\gamma` is the heat transfer +surface temperature variations from freezing. If :math:`T_{\rm SST}` is +above freezing, :math:`F_b=c_{\rm sw} \rho_{\rm sw} +\gamma (T_{\rm SST}-T_f)u^{*}`, :math:`\gamma` is the heat transfer coefficient and :math:`u^{*}=QQ` is frictional velocity between ice and -water. If :math:`T_{sst}` is below freezing, -:math:`F_b=(T_f - T_{sst})c_f \rho_f \Delta z /\Delta t` and set -:math:`T_{sst}` to :math:`T_f`. We also include the energy from lower +water. If :math:`T_{\rm SST}` is below freezing, +:math:`F_b=(T_f - T_{\rm SST})c_f \rho_f \Delta z /\Delta t` and set +:math:`T_{\rm SST}` to :math:`T_f`. We also include the energy from lower layers that drop below freezing, and set those layers to :math:`T_f`. -If :math:`E_{top}>0` we melt snow from the surface, if all the snow is +If :math:`E_{\rm top}>0` we melt snow from the surface, if all the snow is melted and there is energy left, we melt the ice. If the ice is all gone and there is still energy left, we apply the left over energy to heating the ocean model upper layer (See Winton, 1999, equations 27-29). -Similarly if :math:`E_{bot}>0` we melt ice from the bottom. If all the +Similarly if :math:`E_{\rm bot}>0` we melt ice from the bottom. If all the ice is melted, the snow is melted (with energy from the ocean model -upper layer if necessary). If :math:`E_{bot}<0` we grow ice at the +upper layer if necessary). If :math:`E_{\rm bot}<0` we grow ice at the bottom -.. math:: \Delta h_i = \frac{-E_{bot}}{(q_{bot} \rho_i)} +.. math:: \Delta h_i = \frac{-E_{\rm bot}}{(q_{\rm bot} \rho_i)} -where :math:`q_{bot}=-c_{i} T_f + L_i` is the enthalpy of the new ice, +where :math:`q_{\rm bot}=-c_{i} T_f + L_i` is the enthalpy of the new ice, The enthalpy of the second ice layer, :math:`q_2` needs to be modified: .. math:: - q_2 = \frac{ \hat{h_i}/2 \hat{q_2} + \Delta h_i q_{bot} } + q_2 = \frac{ \hat{h_i}/2 \hat{q_2} + \Delta h_i q_{\rm bot} } {\hat{h_i}/{2}+\Delta h_i} If there is a ice layer and the overlying air temperature is below @@ -264,7 +263,7 @@ equal thickness layers while conserving energy. The subroutine *ice\_therm.F* now calculates the heat and fresh water fluxes affecting the ocean model surface layer. The heat flux: -.. math:: q_{net}= {\bf fswocn} - F_{b} - \frac{{\bf esurp}}{\Delta t} +.. math:: q_{\rm net}= {\bf fswocn} - F_{b} - \frac{{\bf esurp}}{\Delta t} is composed of the shortwave flux that has passed through the ice layer and is absorbed by the water, **fswocn**\ :math:`=QQ`, the ocean flux to @@ -291,12 +290,12 @@ albedo. There are two calculations provided here: .. math:: - \alpha = f_s \alpha_s + (1-f_s) (\alpha_{i_{min}} - + (\alpha_{i_{max}}- \alpha_{i_{min}}) (1-e^{-h_i/h_{\alpha}})) + \alpha = f_s \alpha_s + (1-f_s) (\alpha_{i_{\min}} + + (\alpha_{i_{\max}}- \alpha_{i_{\min}}) (1-e^{-h_i/h_{\alpha}})) where :math:`f_s` is 1 if there is snow, 0 if not; the snow albedo, :math:`\alpha_s` has two values depending on whether :math:`T_s<0` or - not; :math:`\alpha_{i_{min}}` and :math:`\alpha_{i_{max}}` are ice + not; :math:`\alpha_{i_{\min}}` and :math:`\alpha_{i_{\max}}` are ice albedos for thin melting ice, and thick bare ice respectively, and :math:`h_{\alpha}` is a scale height. @@ -413,9 +412,9 @@ THSICE Diagnostics SIfrwAtm| 1 |SM M1 |kg/m^2/s |fresh-water flux to the Atmosphere (+=up) SIflx2oc| 1 |SM M1 |W/m^2 |heat flux out of the ocean (+=up) SIfrw2oc| 1 |SM M1 |m/s |fresh-water flux out of the ocean (+=up) - SIsaltFx| 1 |SM M1 |psu.kg/m^2 |salt flux out of the ocean (+=up) + SIsaltFx| 1 |SM M1 |(g/kg).kg/m^2 |salt flux out of the ocean (+=up) SItOcMxL| 1 |SM M1 |degC |ocean mixed layer temperature - SIsOcMxL| 1 |SM P M1 |psu |ocean mixed layer salinity + SIsOcMxL| 1 |SM P M1 |g/kg |ocean mixed layer salinity References diff --git a/doc/references.rst b/doc/references.rst index f80bd6c015..72cb83160a 100644 --- a/doc/references.rst +++ b/doc/references.rst @@ -7,5 +7,5 @@ .. rubric:: References -.. bibliography:: manual_references.bib +.. bibliography:: :all: diff --git a/doc/requirements.txt b/doc/requirements.txt index 12f96f5e57..304fd3fc15 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,5 +1,5 @@ sphinx sphinx_rtd_theme -sphinxcontrib-bibtex<2 +sphinxcontrib-bibtex>=2 sphinxcontrib-programoutput numpy diff --git a/doc/tag-index b/doc/tag-index index 935b3a0fc1..be6cc91462 100644 --- a/doc/tag-index +++ b/doc/tag-index @@ -1,31 +1,1020 @@ Notes on tags used in MITgcmUV ============================== -o tools/build_options/linux_ia64_ifort_ollie: adjust floating point options +o pkg/seaice: + - new option SEAICE_BGRID_DYNAMICS allows to remove/replace + SEAICE_ALLOW_DYNAMICS by ( SEAICE_CGRID or SEAICE_BGRID_DYNAMICS ) ; + - exclude more code if SEAICE_CGRID is undefined and clean up/rearrange + SEAICE.h to form more consistent groups and common-blocks ; + - update SEAICE_OPTIONS.h in verification experiments. +o pkg/mdsio: + - Add 2 new arguments (kLo & kHi) to pkg/mdsio Slice I/O routines that allow + to select which levels in Slice-array to read-in or to write-out to file. + +checkpoint68r (2023/08/02) +o verification: + - adjust amplitude of perturbation (grdchk_eps) to improve Fwd/Adj gradient + check comparison in exp. global_ocean.90x40x15, global_with_exf & lab_sea ; + - change location of grad-check (away from freezing Temp) in exp. OpenAD + and rename experiment "OpenAD" to "global_oce_latlon". +o pkg/ctrl + pkg/grdchk: + - define PARAMETER nobcs = 4 in CTRL_OBCS.h instead of SIZE.h ; update SIZE.h + of all code_ad/oad/tap verification exp. + - in pkg/grdchk, rename grdchk.h to GRDCHK.h and adjust src code to work + without "nobcs" when OBCS_ALLOW_CONTROL is undefined. +o verification: + - Remove duplicated parameter files from input_tap/ dir and adjust prepare_run + accordingly ; remove few untested additional files (in OpenAD/ & lab_sea/). +o pkg/seaice: + - rename ZMIN/ZMAX into SEAICE_ZMIN/ZMAX to avoid potential conflicts with kpp + variables with the same name ; rename swfracb into SEAICE_SWFrac ; + - fix a bug in computing SEAICE_SWFrac in pressure coordinates ; update exp. + global_ocean.cs32x15.in_p reference output. +o pkg/seaice: + - SEAICE_USE_GROWTH_ADX: fix a bug related to flooding and fix budget closure + for linear free-surface case. +o pkg/ecco: + - in cost_gencost_sshv4.F, enable to also process monthly data (previously, + only daily) for SSH cost. +o pkg/ctrl: + - remove left-over and unused code within ALLOW_NONDIMENSIONAL_CONTROL_IO + (except in OBCS_CONTROL pack/unpack code); as a consequence, switch back + ALLOW_PACKUNPACK_METHOD2 to #undef in exp. tutorial_global_oce_optim. +o pkgs: + - for local filenames, replace character*(80) by character*(MAX_LEN_FNAM) + declaration, where possible, especially in pkgs: autodiff, ctrl, ecco, + profiles, smooth & grdchk. + +checkpoint68q (2023/06/29) +o pkg/ggl90: + - non IDEMIX code: fix bug (missing hFac) in matrix coefficient computation ; + - fix RI-Number calculation for IDEMIX ; new flag GGL90_IDEMIX_CVMIX_VERSION + (defined by default) to update IDEMIX to CVMix version ; + - add new diagnostics ; + - update Fwd ref. output of exp. isomip.obcs, global_ocean.90x40x15.idemix + and global_ocean.cs32x15.in_p. +o pkg/tapenade + other Tapenade addition: + - add new capability to use Tapenade to generate Adjoint & Tang-Linear model: + new package (pkg/tapenade), new tools (tools/TAP_support), update genmake2 + and testreport ; add some docs (in progress); + - modify src code & packages to work with tapenade ; add new code_tap/ & + input_tap/ dirs (+ ref output) in 9 verification experiments to get + tested with tapenade. + +checkpoint68p (2023/05/07) +o pkg/seaice: + - fix compile error related to ALLOW_AUTODIFF_TAMC/ALLOW_AUTODIFF mix-up + in seaice_evp.F; also replace many ALLOW_AUTODIFF_TAMC by ALLOW_AUTODIFF + where code is not specific to TAF/TAMC; + - call S/R seaice_get_dynforcing every timestep to always have valid TAUX/Y; + - move most of routine body of seaice_dynsolver.F inside the + SEAICE_ALLOW_DYNAMICS block. +o pkg/ecco: + - fix "sterGloH" output after a restart (issue related to Greatbatch + correction) by writing & reading (small) new "pickup_ecco" files. +o pkg/ctrl: + - fix record number (mostly in ctrl_map_ini_gentim2d.F) in case of restart, + using corresponding xx_gentim2d_startdate1/2 as specified from data.ctrl; + this finalizes (+ fix) changes made in PR #260 and #380; + - also add more debug print (+new CPP option ALLOW_CTRL_DEBUG); + - improve generic-control documentation in Chap.10 (State Estimation). +o pkg/mom_common: + - new expression for quadratic drag coefficient, function of cell thickness & + roughness length (logarithmic law of the wall); for now, only for z-Coords. + Turned on with CPP option ALLOW_BOTTOMDRAG_ROUGHNESS (MOM_COMMON_OPTIONS.h) + and run-time setting zRoughBot > 0 in data, PARMS01 namelist. + Tested in exp. tutorial_plume_on_slope, new secondary test "roughBot". +o model/src & pkgs: + Finish to remove code within retired CPP options: + - remove orphan code within (many) removed ALLOW_()_CONTROL (as listed in + PR #689 comments); remove seaice_ctrl_map_ini.F; + - remove code within retired CPP options, remove call to COST_TRANSPORT, + remove ALLOW_ECCO_BARSTORES and the 4 "ecco_ad_check_lev?_dir.h" files; + - remove (check & stop) "using_cost_bp" & "using_cost_scat" from "data.ecco"; + - avoid few unused variables; use default CTRL_OPTIONS.h in exp. hs94.1x64x5. +o pkg/seaice: + - SEAICE_USE_GROWTH_ADX: fix diagnostic SIatmFW and add diagnostic SIeprflx + to close seaice mass and heat budgets. +o pkg/dic: + - remove TAF storage dir for variable "OmegaC" (within wrong CPP option). + +checkpoint68o (2023/03/13) +o model/src: + - salt/temp/ptracer_integrate.F: optimise store directives + - add mising "obcs_seaice_sponge.f" to obcs_ad_diff.list +o pkg/ecco: + - smoothing in gencost_bpv4: allow to choose between a) call to smooth_basic2D + (using a constant length, with run-time params replacing hard-coded values) + or b) call to smooth_hetero2D (using a 2D field to be read in). +o pkg/obcs: + - update OBCS configuration summary. +o eesupp/inc, model/inc & pkgs: + Clean CPP header files: + - remove ALLOW_GENCOST_CONTRIBUTION from COST_OPTIONS.h (is already set in + ECCO_OPTIONS.h); + - move ALLOW_PACKUNPACK_METHOD2 from AUTODIFF_OPTIONS.h to CTRL_OPTIONS.h; + - set EXCLUDE_WHIO_GLOBUFF_2D in MDSIO_OPTIONS.h (found in some customized + AUTODIFF_OPTIONS.h); + - list CPP options in pkg CPP header file (as undef) when used in any + experiment local set-up; + - fix typo in 2 CPP option names ; rename few (unused) pkg/fizhi CPP options; + - update pkg dependence rule for pkg/bling ; avoid few unused variables. +o pkg/kl10: + - get stratification from variable "SigmaR" (passed as argument) instead of + recomputing locally in-situ density (less efficient and inaccurate when + using Non-Linear EOS); update (kl10) ref output for internal_wave exp. +o pkg/ecco: + - add new generic integral cost function "m_boxmean_vol" (e.g. to track + volume of isoycnal layer); add it to lab_sea secondary AD test "noseaice" + and update ref. AD output file. +o tools/build_options: + - fix OpenMP option in ifort optfiles for modern intel compiler. + +checkpoint68n (2023/02/08) +o pkg/seaice: + - make all seaice-cost code independent of pkg/ecco and remove few + SEAICE_COST.h from pkg/ecco ; + - remove unused code related to ALLOW_SEAICE_COST_SMR_AREA (formerly used + with ECCO_CTRL_DEPRECATED, seaice_cost_driver.F and S/R called from there), + ALLOW_MEAN_SFLUX_COST_CONTRIBUTION + ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION, + and retire associated parameters. +o pkg/dic: + - rename CPP: CAR_DISS -> DIC_CALCITE_SAT and AD_SAFE -> DIC_AD_SAFE and put + all carbonate-saturation code and 3D arrays inside #ifdef DIC_CALCITE_SAT + block and time-ave arrays within #ifdef ALLOW_TIMEAVE ; + - add run-time params: useCalciteSaturation, calcOmegaCalciteFreq, nIterCO3, + selectCalciteBottomRemin, KierRateK, KierRateExp and WsinkPIC ; + - switch order of arguments to "myTime, myIter, myThid" in few remaining + pkg/dic S/R + S/R calls in pkg/gchem ; + - update exp. so_box_biogeo (define CARBONCHEM_TOTALPHSCALE & DIC_CALCITE_SAT) + + add 2 new secondary tests (caSat0 & caSat3) with useCalciteSaturation=T + and using 3-D silicate input file. +o TAF tape keys: + - rename many local taf keys to use shorter and more consistent names ; + - pkg/thsice: fix bug in key computations. +o pkg/diagnostics (+doc): + - fix index-loop range in diagnostics_sum_levels.F and document "fileFlags" + and associated features (vertical interpolation & integral & hFac scaling). +o pkg/gmredi: + - in gmredi_slope_limit.F, fix tape keys by using local tapes. +o pkg/ggl90: + - cleaning: remove maskS multiplication in ggl90_calc_visc.F (no equivalent + for KappaRU) and update "output_oadm.ggl90.txt" in OpenAD exp. +o pkg/ggl90: + - Add code in pkg/ggl90 to parameterize Langmuir Circulation (LC) effects on + vertical mixing (useLANGMUIR=T); follows: Tak et al, Ocean Modelling, 2023; + - Primary effect is to increase mixing length scale due to LC ; the stokes + velocity term is also included in the momentum equation (Coriolis term); + - Tested in new secondary test "gglLC" in exp. "vermix". +o pkg/ecco: + - fix out-of-bound array index issue in cost_gencost_sshv4.F; + - fix a small bug in same S/R (skipping call to smooth_hetero2d(anom_slaobs, ) + if gencost_outputlevel(igen_lsc)=0.); + - in same S/R, skip output of "_smooth" file when smoothing is not applied. +o pkg/ctrl: + - enable initial sea ice area/heff controls with correct definition of control + indices; + - move condition on useSEAICE inside seaice_init_varia.F (always initialize to + zero) when compiling pkg/autodiff. Similar changes to shelfice_init_varia.F; + - fix out-of-bounds index issue in ctrl_map_ini_genarr.F (igen_shiCDrag=0). +o pkg/dic: + - enable to read in prescribed 3d silicate fields for calcite-saturation + calculation and 3-D pH calculation (#define CAR_DISS). + - add 5 new 3-D diagnostics related to calcite-saturation calculation. + - fix 2-D silica input file from tutorial_global_oce_biogeo and add 3-D silica + input file to so_box_biogeo exp. (currently unused). + +checkpoint68m (2022/12/05) +o pkg/gmredi: + - update Redi diffusion and GM (skew-flux or advective form) to also work with + P-coordinates and most current tapering schemes ; change sign of sigmaR (for + now, only within pkg/gmredi) to always be the same as stratification, i.e., + positive if stratified ; add 2 arguments to GMREDI_SLOPE_LIMIT for 'ldd97'. + - with p-coord, keep sign of slope component unchanged (same as dSigmaX,Y) + and flip sign (-gravitySign) of Redi-tensor extra-diagonal terms ; also keep + stream-function components GM_PsiX & GM_PsiY unchanged and flip sign when + computing bolus-transport (left handed coord). + - add unit conversion factor between p and z coord. at level center, function + of vertical profile of ref. density ; used inside slope-limiter and tapering + function. + - stop if trying to use P-coord with not yet updated gmredi pieces of code. + - add a simple secondary test in front_relax exp. using GM and p-coord. +o pkg/autodiff: + - cleanup tamc.h: remove unused parameters and nthreads_chkpkt as it is (and + should be) always one; update all verification exp. code_ad versions. + - simplify tape-key dependence on tile indices (remove thread grouping). +o pkg/ctrl: + - add run-time variable ctrlDir to specify a directory different from default + current directory for I/O of controls adjustment and adjoint gradient (xx + and adxx), and other active files; used (as example) in lab_sea experiment. +o pkg/smooth: + - add run-time variable smoothDir to specify a directory different from + default current directory for I/O of smoothing operators. + +checkpoint68l (2022/10/26) +o pkg/longstep: + - fix initialization of LS_fwFlux ; + - move params report & check to new S/R LONGSTEP_CHECK. +o model/src: + - fix ocean r-star pressure gradient in case model top is not uniformly at r=0 + - update ref output of secondary test "isomip.obcs". +o tools/genmake2: + - Remove unnecessary awk escape sequence ; this avoids a warning with recent + GNU awk (5.0.1 and newer). +o tools/adjoint_options: + - merge five ad-optfiles into single one with compact list of generic control + variables and obcs-control variables ; + - to use divided adjoint (DIVA), in genmake_local, set new flag USE_DIVA=1 + (replacing "adjoint_diva"); + - select which Fortran version is sent to TAF by setting TAF_FORTRAN_VERS + to either F77, F90, or F95 (replacing "adjoint_f95") ; + - to replace "adjoint_tamc_compatibility", in genmake_local, set new flag + TAMC_COMPATIBILITY_MODE=1 ; + - remove "-server fastopt.net" to use the default server (fastopt.de) + - use the staf default server (currently "fastopt.de") instead of specific + server "fastopt.net" ; + - remove more commented lines (remove_comments_sed) in src code sent to TAF ; + - remove obsolete "ad_taf_output.f.*" diff-patches in tools/ ; + - remove "ad_optfile.local" files from some verification experiments ; keep + example how to specify local optfile in verification/bottom_ctrl_5x5 ; +o pkg/streamice: + - changes related to PETc solver interface to be compatible with PETSc + version 3.8 and above and also available without MPI; + - also make sure PETSc is not used at runtime by default. + +checkpoint68k (2022/08/17) +o pkg/ctrl, ecco, ... : + Remove untested and obsolete ECCO_CTRL_DEPRECATED code: From now on it is + only possible to specify control parameters through generic controls. + - retire associated pkg/ctrl and pkg/autodiff flags, such as: ctrlUseGen, + xx_hflux_file, xx_hflux_startdate1, ..., ctrlSmoothCorrel2D/3D, + useSmoothCorrel2DinAdMode. Most of these did not have any effect with + undefined ECCO_CTRL_DEPRECATED, but were still allowed in data.ctrl. + Now specifying them is an error and stops the run. + - remove code that assumes ctrlUseGen=F + - remove empty and unused subroutines: + * pkg/ctrl: ctrl_weights.h, ctrl_map_ini_gen.F, ctrl_smooth.F, + ctrl_map_ini.F, ctrl_map_ini_ecco.F, ctrl_map_ini.F, ctrl_map_ini_ecco.F + * pkg/ecco: cost_forcing.F, cost_hyd.F, cost_internal_params.F, cost_ssh.F + ecco_cost_summary.F + * pkg/smooth: smooth_correl2dw.F + * pkg/seaice: seaice_cost_areasst.F + - adjust parameters in verification experiment that still contained retired + parameters + - switch global_ocean.cs32x15.thsice to using generic control variables + Note: some untested code (notably pkg/admtlm, which did not compile before) + will be more difficult to resurrect without the ECCO_CTRL_DEPRECATED code. +o pkg/ggl90: + - adjust code to also work under an ice-shelf (with pkg/shelfice); idemix + under ice-shelf not fixed yet. + - turn on ggl90 in isomip experiment secondary test "obcs" and update + reference output file. +o pkg/gmredi: + - allow to read-in 3-D background isopycnal (Redi) and thickness (GM) + diffusivity without pkg/ctrl: new 3-D arrays, new CPP options: + GM_READ_K3D_REDI & GM_READ_K3D_GM and new input files: GM_K3dRediFile & + GM_K3dGMFile (replacing retired GM_isopycK3dFile & GM_background_K3dFile). + - update code for ALLOW_KAPGM_CONTROL & ALLOW_KAPREDI_CONTROL to use + these new 3-D arrays (from GMREDI.h) and move setting of 3-D control arrays + from from ini_mixing.F to gmredi_init_varia.F (+ adjust call condition); + Note: need to define new option GM_INPUT_K3D_GM and/or GM_INPUT_K3D_REDI + to use KAPGM_CONTROL and/or KAPREDI_CONTROL. + - remove obsolete code & CPP option ALLOW_KAPGM/KAPREDI_CONTROL_OLD + +checkpoint68j (2022/06/28) +o pkg/exf: + - implement drag coefficient of Large and Yeager (2009), Climate Dynamics, 33, + pages 341-364, within #ifdef ALLOW_DRAG_LARGEYEAGER09 +o autodiff(TAF): + - fix few taf recomputation and conflict warnings in: calc_3d_diffusivity.F + (PCELL_MIX_CODE), pkg/bling & dwnslope_apply.F ; update reference AD output + of exp. that use pkg/dwnslope (lab_sea). +o pkg/thsice: + - fix bug in computation of ustar (case velocity=0) in thsice_calc_thickn.F; + - introduce & document THSICE_REGULARIZE_CALC_THICKN flag. +o pkg/generic_advdiff (TAF): + - in gad_advection.F, replace global tapes "comlev1_bibj_k_gad" & + "comlev1_bibj_k_gad" by local tapes; avoid unnecessary recomputations, but + recompute full routine (only) once in ad-routine; + - this affects results when useApproxAdvectionInAdMode=T, since now all tapes + are computed using approximate Adv-Scheme (inAdMode=T); udate AD ref. output + of exp. global_ocean.cs32x15.seaice. +o pkg/shelfice: + - Remove ALLOW_SHIFWFLX_CONTROL and all xx_shifwflx related code in favor of + already implemented gentim2d; + - move update of shelficeLoadAnomaly inside shelfice_step_icemass.F (within + IF (SHELFICEMassStepping) ...); + - fix storage dir for SHELFICEMassStepping, allowing to realFreshWaterFlux=T + with ALLOW_AUTODIFF defined (remove STOP there). Still not working with + OpenAD (add a STOP in shelfice_check.F). + +checkpoint68i (2022/04/27) +o eesupp/src: + - simplify reading parameter file, using single scratch file (instead of 2). +o verification, OpenAD: + - make all OpenAD experiments use generic control variables, so that from now + on, the ECCO_CTRL_DEPRECATED code is no longer tested in verification + (neither in verification_other, where it never was tested), except for + global_ocean.cs32x15.thsice (this is intentioal). +o autodiff(TAF): + - avoid unnecessary local recomputations and associated warnings by storing to + local tapes in: seaice/advect.F, gad_dst3fl_impl_r.F, gmredi_slope_limit.F, + shap_filt_uv_s2.F, solve_pentadiagonal.F +o pkg/thsice: + - fix store directives + modify code of thsice_calc_thickn.F, thsice_extend.F + and thsice_solve4temp.F to avoid 28 recomputation warnings and recomputing + the state unnecessarily; + - define new tape and retire two old thsice related tapes (commented out for + now) in the_main_loop.F; + - change offline_exf_seaice.thsice experiment to be more sensitive to changes; + - fixing a bug leads to smaller gradient errors and correct TLM cost function + values and requires updating (both ADM and TLM) offline_exf_seaice.thsice + and global_ocean.cs32x15.thsice reference output; +o pkg/ctrl: + - fix issue in S/R CTRL_MAP_GENARR3D by explicitly set xx_gen to zero where + wgenarr3d is zero ; also replacing 10^xx_gen with EXP(log(10)*xx_gen) for + log10ctrl produces small differences at machine truncation level. +o eesupp & pkg/mdsio: + - new (CPP) Macro to open read-only files with ACTION='read', added to + most pkg/mdsio S/R (+ exf_interp_read.F); disable this in few old compiler + optfiles (g77, pgf77) by adding EXCLUDE_OPEN_ACTION to DEFINES list. +o model: + - new CPP option to exclude (= default) S/R CONVECTIVE_ADJUSTMENT_INI; + to reproduce old results, define new option INCLUDE_CONVECT_INI_CALL in + two verification experiments: exp2 and tutorial_tracer_adjsens. + - add a check for INCLUDE_CONVECT_CALL if cAdjFreq <> 0. +o tools/build_options: + - new optfile "darwin_arm64_gfortran" for Mac ARM 64-bit processor. +o pkg/gmredi: + - add deep-factor to pkg/gmredi code to work with "deepAtmosphere=T". +o verification/cpl_aim+ocn: + - add secondary test set-up using seaice dynamics (pkg/seaice) as part of + ocean component and update script to handle option to run multiple test. +o verification/halfpipe_streamice: + - update OpenAD test by removing ECCO_CPPOPTIONS.h (but, for now, keep local + version: ctrl_map_gentim2d.F & ctrl_map_ini_genarr.F in code_oad). +o pkg/mypackage: + - improve description (for a coding style example). +o model: + - add option to apply a correction for net global fresh-water flux imbalance + proportional to, fixed in time, 2-D weight field that is read-in from file ; + - new integer selector "selectBalanceEmPmR" (=0: off, =1: uniform correction, + =2: correction scaled by weight) that replaces logical switch "balanceEmPmR" + with backward compatibility setting. + +checkpoint68h (2022/03/22) +o pkg/ecco: + - new src files: ecco_init_fixed.F & ecco_diagnostics_init.F ; + - new SSH diagnostics: SSH,SSHNOIBC (with & w-out Inv.Barometer corr.: SSHIBC) + STERICHT (steric height anomaly); and Bottom-Pressure/Mass: OBP & OBPGMAP ; + - add arg myTime & myIter to S/R ECCO_PHYS and adjust calls ; change to use + model "rhoInSitu" (instead of recomputed rho) for Greatbatch correction ; + this affects cost "m_eta". +o pkg/ecco: + - add new feature (within gencost) to evaluate cost-function contribution + over specified density range (instead of depth range, see issue #483); + - add few run-time parameters including logical switch: gencost_useDensityMask + - test this new feature in lab_sea/input_ad.noseaice and update ref. output. +o pkg/ptracer (adjoint): + - remove AUTODIFF_PTRACERS_SPLIT_FILES as it has no effect. +o pkg/generic_advdiff & seaice (adjoint): + - avoid recomputation in Second-Order Moment (SOM) advection S/R by using + local tapes ; reduce local tapesize in seaice_solve4temp.F ; + - fix key and size of tapes in multi-dimensional advection routines and adjust + maxcube value (2 or 3 if using CubedSphereExchange) in few exp. "tamc.h". +o pkg/mdsio: + - retire all S/R from mdsio_rw_slice.F after replacing the last 2 calls to + MDSWRITEFIELD{X,Y}Z in pkg/ctrl/ctrl_set_globfld_{x,y}z.F with calls to + S/R WRITE_REC_{X,Y}Z_RL (from pkg/rw). + - remove src file mdsio_rw_field.F & mdsio_rw_slice.F from NOOPTFILES list + in few linux_amd64_ifort* optfiles. + - move if statement out of "lengthBuff" loop in mdsio_{read,write}_whalos.F +o verification AD exp.: + - remove ECCO_CPPOPTIONS.h from global_ocean_ebm/ and halfpipe_streamice/ + code_ad/ dir and replace by appropriate AUTODIFF/CTRL/COST_OPTIONS.h ; + - for halfpipe_streamice AD exp., make necessary adjustments in pkg/streamice + and remove ALLOW_GENTIM2D_CONTROL from store directive header files + streamice_ad_check_lev?_dir.h ; + - remove customized version of ctrl_map_gentim2d.F & ctrl_map_ini_genarr.F + from halfpipe_streamice/code_ad/ and add corresponding code to pkg/ctrl. + +checkpoint68g (2022/02/19) +o doc: + - fix some math notation in docs. +o pkg/obcs: + - avoid division by zero when useOBCStides=.True. and tidalPeriod=0. +o pkg/gmredi: + - fix basic code to also work with dry grid cells near the top (e.g., under + ice-shelf) and in this case, for now, stop if unsafe features are used ; + - fix tapering 'ac02' and 'stableGmAdjTap' ; + - add a secondary test, "input.top", in verification exp. front_relax to test + GM with dry cells at the top (+ also 'ac02' tapering) ; + - update few adm & tlm & oad ref. output from exp. global_ocean.90x40x15 + since adding better masking in gmredi_s{x,y}rtransport.F does affect AD & + TLM gradient (@ machine truncation level). +o pkg/autodiff: + - new CPP-flags allow to turnoff (default) autodiff_store/restore entirely: + * New flags AUTODIFF_USE_STORE_RESTORE, AUTODIFF_USE_STORE_RESTORE_OBCS to + turn on autodiff_store/restore, undefined by default ; + * AUTODIFF_EXCLUDE_ADEXCH_RS to skip calls to some AD-exch (if missing). + - improve comments in AUTODIFF_OPTIONS.h, fix some store directives for new + default, which are: + #define ALLOW_AUTODIFF_WHTAPEIO + c#define AUTODIFF_USE_MDSFINDUNITS + #undef AUTODIFF_USE_STORE_STORE_RESTORE + #undef AUTODIFF_USE_STORE_STORE_RESTORE_OBCS + and update local AUTODIFF_OPTIONS.h files from verification experiments. + - experiment specific setting: + * define AUTODIFF_EXCLUDE_ADEXCH_RS in exp.: hs94.1x64x5, obcs_ctrl & OpenAD + * increase "nWH" value in local MDSIO_BUFF_WH.h for exp.: + global_oce_biogeo_bling, offline_exf_seaice & tutorial_dic_adjoffline + - add a TAF "INCOMPLETE" directive for TICES and wVel to avoid a TAF bug. + - fix a TAF store directive to avoid extra call of "load_fields_driver" + with EXF_SEAICE_FRACTION defined. +o pkg/gmredi: + - rename S/R, CPP option (GM_BATES_K3D), on/off switch (GM_useBatesK3d), + parameters (GM_Bates_*) and 3-D var (GM_BatesK3d) of Bates etal (JPO, 2014) + scheme that computes 3-D field GM/Redi diffusivity (analog to Visbeck etal + variable/option naming example). + +checkpoint68f (2022/01/14) +o pkg/exf: + - clean-up relative wind implementation so that uwind and vwind are kept + unchanged (always vanilla atmospheric winds after interpolation) while + relative wind is computed locally; add diagnostics for relative wind. + - adjust pkg/seaice relative-wind code (+ clean-up SEAICE_GREASE code). +o pkg/kpp: + - avoid updating input argument "kmtj" in S/R BLDEPTH (in: kpp_routines.F); + this also remove/avoid 3 recomputation warnings for kmtj in adm (TAF) built. +o pkg/streamice: + - fix regularised coulomb basal stress impl to avoid issues with adjoint ; + - cancel metric terms in stress tensor for cartesian grid ; + - allow (time-indep) velocities to be imposed from external file rather than + solved for ; + - allow for specification of log of controls as well as sqrt ; + - allow termination of adjoint fixed point loop based on relative and absolute + error ; + - terminate adjoint fixed point loop when change between most recent iterates + begins to increase (a sign of unstable growth from linear solve errors ?); + update OAD output of exp. halfpipe_streamice (affected by this modif). +o pkg/seaice: + - replace hard-coded parameters for JNKF line search by new runtime parameters + SEAICE_JFNK_lsGamma and SEAICE_JFNK_lsLmax ; + - increment line search counter after reporting and fix an if statement, so + that zeroth step is not counted for more consistent debugging output. +o tools/build_options: + - update pleiades optfile "linux_amd64_ifort+mpi_ice_nas" + - rename/update optfile for UK HPC Archer2. +o pkgs: + - remove/avoid unused variables from AD verification exp. built except from + halfpipe_streamice (pkg/streamice); also clean-up a bit pkg/smooth. +o pkg/autodiff: + - introduce separate tapes for integer arrays: the corresponding routines + just convert between integer and double precision arrays and call the + original adread/adwrite routines. +o pkg/atm_compon_interf: + - only with Atm-Phys pkg, allow "regional coupling", i.e. coupled only where + there is ocean, keeping Atm-Phys basic mixed-layer elsewhere. + +checkpoint68e (2021/12/10) +o lsopt & optim: + - update Makefiles and README. +o pkg/ctrl: + - remove unused flag ALLOW_ECCO_OPTIMIZATION and associated code, always save + "fcloc" to gradient vector file and save fcloc=0 to initial ctrl vector file + (which is never used); also remove it from any code*/CTRL_OPTIONS.h. +o pkg/ctrl: + - replace few calls to MDS_READ/WRITE_FIELD with corresponding call to + pkg/rw READ/WRITE_REC_3D_RL ; also clean-up: ctrl_map_ini_gen.F +o tape related code (adjoint): + - clean-up tape code in the init-phase, mainly in the_main_loop.F and in + ctrl_map_ini_gentim2d.F ; + - remove unused (ecco) cost_averages_bar_directives.h ; + - adjust comments in (autodiff) adread_adwrite.F & in main_do_loop.F +o eesupp: + - fix scratch file names when using PDAF. +o pkg/exf: + - fix issue in interannual monthly forcing addition (case ${fld}period=0) +o model/src: + - skip reading kapGM and kapRedi from ini_mixing.F when useGMRedi is .FALSE. +o pkg/exf: + - add option for interannual monthly forcing with pkg/cal by setting + ${fld}_period=-1. (like -12. indicates climatological monthly forcing), + available with or without useExfYearlyFields ; update exp. global_with_exf + SST forcing to test this new option with and without useExfYearlyFields. +o model/src: + - define local arrays cg2d_q/v/z without overlaps in all 4 cg2d*.F + and skip initialisation of cg2d_q in cg2d.F +o tools/genmake2: + - new option to call OpenAD compiler in a singularity container (if provided); + add option to testreport too and update OpenAD doc (in section 7.5). + +checkpoint68d (2021/11/05) +o verification/*/results: + - update few adm and tlm refence output to get closer agreement. +o verification/global_ocean.90x40x15: + - no longer use old bug (fixed in Oct 2015) in KAPGM_CONTROL & KAPREDI_CONTROL + code and update AD & TL ref. output for kapgm & kapredi tests ; + - other small cleaning: finish removing OLD_THSICE_CALL_SEQUENCE code ; remove + "cost_yftype" from experiments "data.ecco" ; move ALLOW_ECCO_OPTIMIZATION + to the right header file. +o pkgs pp81, my82, opps & ggl90: + - remove pkg/timeave and pkg/mnc output from these mixing packages (since + this functionality is available with pkg diagnostics); add 1 diagnostics + to pkg/opps (to replave TAVE output). +o tools/build_options: + - add "-DAUTODIFF_USE_MDSFINDUNITS -DPROFILES_USE_MDSFINDUNITS" to DEFINES + in g77 optfile ; this allows to run set-up with AUTODIFF_WHTAPEIO and/or + with pkg/profiles using g77 (with S/R MDSFINDUNITS) while other compilers + continue to use local version with extended range of I/O units number. +o pkg/ecco: + - fix halo initialisation for argument "active_var" in cost_genread.F ; + - change "facNum" expression in cost_gencost_transp.F, to be consistent with + comment in src code, by adding missing factor "nSx"; also avoid division + in PARAMETER statement. +o model/inc: + - move potentially time dependent grid variable from GRID_RS to new common + block GRID_VAR_RS (hFacW/S/W, etc.) and split common block CG2D_I_R into + a _RL and a _RS part ; adjust AD common block accordingly. +o verification AD experiments: + Update TAF AD exp. so that none relies anymore on ECCO_CTRL_DEPRECATED code: + - remove #define ECCO_CTRL_DEPRECATED from experiments: 1D_ocean_ice_column, + bottom_ctrl_5x5, global_with_exf, lab_sea, OpenAD, tutorial_dic_adjoffline, + tutorial_global_oce_biogeo & tutorial_global_oce_optim ; use instead generic + control and generic cost. + - for now, keep experiment global_ocean.cs32x15 with both ECCO_CTRL_DEPRECATED + code and generic control + generic cost. + - also remove ECCO_CPPOPTIONS.h (use instead set of pkg specific OPTIONS + header files) from these experiments above. + - results unchanged except few digits in cost & ad-monitor for lab_sea & + obcs_ctrl ; and few minor recomp. warnings count changes for + tutorial_global_oce_biogeo (-4) and for tutorial_dic_adjoffline (+2). + Update pkgs as needed: + - pkg/ecco: fix field declarations for ecco_toolbox routines and cost_readgen, + new toolbox routines ecco_offset, ecco_maskmindepth, make argument lists + more consistent between ecco_toolbox routines and remove unused subroutines; + - pkg/cost: fix ALLOW_COST_DEPTH contribution; + - pkg/ctrl: add more "ifdef ECCO_CTRL_DEPRECATED" where necessary; + - pkg/exf: add xx_snowprecip as generic control, adjust CPP-flags. +o pkg/gmredi: + - remove condition (ifdef GM_NON_UNITY_DIAGONAL) around 3-D arrays Kux & Kvy + to simplify how GMREDI is applied (e.g., gmredi_x/ytransport); fill up these + 2 arrays with constant value (gmredi_calc_tensor.F & offline_get_diffus.F) + when GM_NON_UNITY_DIAGONAL is undef (to reproduce old results). + - also with GM_NON_UNITY_DIAGONAL undef, fix ALLOW_KAPREDI_CONTROL averaging. +o tangent-linear: + - fix few hand-written tangent-linear src code (in autodiff & ctrl pkgs); + - add new target "ftlobj" to Makefile (similar to "obj" & "adobj" for forward + and AD built) and corresponding switch in testreport ; + - fix non-standard sed command (for Mac) in TLM testreport. + +checkpoint68c (2021/10/02) +o pkg/seaice: + - update some dynamics solver default so that now: + a) SEAICEuseEVPstar = .TRUE. ; b) SEAICEuseEVPrev = .TRUE. ; + c) LSR_ERROR = 1.e-5 (previously was 1.e-4) ; + - put back old default in exp. lab_sea (primary test); + - modify (simplify?) logic in seaice_readparms.F and seaice_check.F. +o pkg/grdchk: + - allow to use "recglo" to specify a particular control time record for + gradient check (was previously inactive). +o pkg/exf: + - new parameters to reduce AD-exf monitor output: + 1) exf_adjMonFreq (def= adjMonitorFreq), = 0. suppresses all output + 2) exf_adjMonSelect: =1 (def): less output ; =3 as before, =0 : no output + - fix some AD-common block name + content to match TAF directives (in + common.flow) and TAF generated code. + - skip monitor of model forcing AD-variables (unless monitorSelect=4). +o pkg/ecco + other: + - fix few non-standard syntax (+ repeated setting of "gencost_msk_is3d"). +o pkg/bling: + - fix call to S/R BLING_BIO_NITROGEN when USE_SIBLING is defined. +o pkg/ecco: + - put various dimensions related to gencost out of "ecco.h" into specific + (new) header file "ECCO_SIZE.h" and rename "ecco.h" to "ECCO.h" ; + - add gencost param "gencost_kLev_select" to select a vertical level (from 3-D + array) to form 2-D gencost ; currently only used in drifter velocity cost ; + - add a couple of costs based on 1) inverse barometer (IB) corrected model sea + level for altimetry data comparison 2) OBP excluding contribution from + global mean atmospheric pressure for comparisons with GRACE data. +o pkg/autodiff: + - fix type (_RS vs_RL) of AD-vars in hand-written AD routine cg2d_mad.F and + in adcommon.h, common block adgrid_rs. +o model/src: + - fix missing initialisation of local working arrays that were previously + in common block in CG2D.h (needed when using blank tiles). +o pkg/dic: + - fix calculation of carbonate saturation state (with CAR_DISS defined) when + #define CARBONCHEM_SOLVESAPHE ; no current test run with #define CAR_DISS. +o pkg/autodiff: + - add code for Full-Adjoint of cg2d in renamed (from cg2d_sad.F) routine + cg2d_mad.F (cg2d manual adjoint) ; + - new runtime params cg2dFullAdjoint (data.autodiff), useNSACGSolver (data, + default to "FALSE"), cg2dMinItersNSA (data, defaults to 0) ; + - new sub-verification experiment bottom_ctrl_5x5.facg2d to test new + Full-Adjoint capability ; + - update primary test experiment bottom_ctrl_5x5 to always use a minimum + number of 10 CG2D iterations (changes results but improves accuracy) ; + - modify AD-experiment global_ocean.90x40x15.bottomdrag to use full nonlinear + free surface (nonlinFreeSurf=4) and cg2dFullAdjoint=True. + - move CG2D working arrays out of CG2D.h common blocks (not necessary) + to local arrays within each cg2d S/R. + +checkpoint68b (2021/08/24) +o pkg/ecco: + - add time-series output of global mean steric height change at each time step + (variable: sterGloH, with #define ALLOW_PSBAR_STERIC) ; turned on + with run-time switch "ecco_output_sterGloH=T" ; add option to keep file open + (+ single meta file writing) with "ecco_keepTSeriesOutp_open=T" switch. +o pkg/ggl90: + - fix EXCH calls in pkg/ggl90 when IDEMIX is used: no additional EXCH when + using zero horizontal diffusion of IDEMIX_E (IDEMIX_tau_h=0) but with + IDEMIX_tau_h > 0, EXCH both IDEMIX_E and GGL90TKE ; this affects results + of test experiment cs32.in_p and fix restart issue ; + - more consistent/simpler idemix code: use model parameter value for PI, + reduce number of IDEMIX global array, add TKE tendency from IDEMIX as output + of S/R GGL90_IDEMIX ; use double product of IDEMIX_E instead of power of 2 + which affects results at machine truncation level ; + - update some IDEMIX default param values (following Pollmann et al., 2017) + but keep old default values in global_ocean.90x40x15.idemix ; + - apply also option calcMeanVertShear to uStarSquare calculation (wind-stress + magnitude) and switch on calcMeanVertShear in test experiment cs32.in_p. +o model/src + pkgs ggl90, exf & seaice: ocean in P-coordinate + - read geopotential anomaly directly into phi0surf instead of via pLoad (was + a hack), specified with new input filename "geoPotAnomFile" in data&PARM05 ; + - adjust MXLDEPTH diagnostic for pressure coordinates ; make sure sigmaR is + computed the same way in P-coord as it is in Z-coord. + - for penetrating Short-wave and geothermal heating as well as for exf forcing + and seaice, use the correct P-coord vertical index for bottom and surface ; + - add a flag sIceLoadFac (in "data", default=1.) to be able to turn off + seaice surface pressure loading, mainly for Z-coord (since not currently + supported in P-coord) ; + - use diagnostics "phiHydLow" for seaice dynamics with P-coord ocean to get + surface tilt term (instead of using ETAN as in Z-coord); fix restart by + adding phiHydLow (only if useSEAICE and usingPCoords) to main pickup file ; + - in pkg/ggl90, apply simple scaling to get mixing-length in meters (from + pressure) so that no parameter changes are necessary ; significant code + changes regarding surface & bottom index + direction of vertical k loop ; + - add secondary test "in_p" to experiment global_ocean.cs32x15 (similar to + Z-coord secondary test "seaice" but using pkg/ggl90 and without pkg/gmredi). +o tutorial_reentrant_channel: + - add python notebook (for analysis), add python script to generate input + files (+ update matlab version) and update this tutorial docs. +o verification/vermix: + - change ggl90 secondary test to use (pkg/ggl90) mxlMaxFlag=3 (instead of 2) + and update reference output. +o pkg/ctrl: + - move S/R CTRL_MAP_GENARR2D/3D out of file "ctrl_map_ini_genarr.F" into + a new file "ctrl_map_genarr.F" ; + - clean-up local versions of ctrl_map_gentim2d.F and ctrl_map_ini_genarr.F + from code_ad dirs (i.e., minimize diff with standard version from pkg/ctrl). +o model/src: + - improve REMOVE_MEAN_RL/RS subroutines (address issues raised in issue #501) + including results independent of tile to proc mapping, correction extended + to overlap regions, improve accuracy of _RS version when RS is real*4 and + and enable the use 2-D mask maskInC/W/S when applied to 3-D array. Change + argument list (add myIter, flip order + change mask arg from 3-D to 2-D). +o verification/global_ocean.90x40x15: + - increase "grdchk_eps" from 1e-7 to 10 in AD test kapgm to improve + accuracy of FD gradients ; update reference output. +o verification/OpenAD: + - add ggl90 pkg to code_ad/packages.conf to get it tested in one TAF-AD exp. +o doc: + - require sphinxcontrib-bibtex 2.0.0 or higher + +checkpoint68a (2021/07/16) +o pkg/seaice: + - clean up and simplify TAF store directives in do_oceanic_phys.F + for seaice_model to avoid unnecessary recomputations ; + - in testreport, count and report number of times s/r seaice_model is called. +o pkg/seaice: + - fix (untested) multi-threading and recomputations in seaice_solve4temp.F +o files that include "tamc.h": + - add missing declaration of local keys for TAF store-dir in pkg/obcs + (ALLOW_OBCS_STEVENS) and pkg/bling (USE_BLING_V1, PHYTO_SELF_SHADING) ; + - add missing AUTODIFF_OPTIONS.h in few places (e.g., in pkg/ebm), needed to + get ALLOW_AUTODIFF_TAMC defined ; + - change few ALLOW_AUTODIFF <-> ALLOW_AUTODIFF_TAMC ; + - remove included "tamc.h" in few files from pkgs seaice, streamice, bling, + + in exf_radiation, longstep_thermodynamics, obcs_sponge & pp81_ri_number S/R. + - define ALLOW_OBCS_STEVENS in AD exp. obcs_ctrl (to check it compiles). +o pkg/ecco: + - fix incorrect order of array indices for "objf_gencost" and "num_gencost" + in 2 gencost v4 S/R (bpv4 & sstv4). +o eessup/inc & pkg/thsice: + - Remove 2 CPP options for deprecated code and remove corresponding code: + a) USE_OLD_MACROS_R4R8toRSRL (added in May 2009) and + b) OLD_THSICE_CALL_SEQUENCE (added in Jan 2013). +o pkg/shelfice: + - fix missing local keys declaration in shelfice_thermodynamics.F for TAF + storge dir. with SHI_ALLOW_GAMMAFRICT defined ; + - remove included PACKAGES_CONFIG.h in many verification exp. "tamc.h". +o tools/build_options: + - update gfortran optfile for MacBook Pro "darwin_amd64_gfortran" to work with + gfortran version 10 (or higher), similar to linux version update. +o pkg/ctrl & other: + - cleanup: move declarations of local variables from header files ctrl.h and + AUTODIFF.h to the local variables section in the respective routines ; + - move declaration of local keys and variables from header file tamc.h to + subroutines where they are used. + ==> IMPORTANT: This requires updating all customised versions of "tamc.h", + from each and every TAF-AD setup. + - remove tamc_keys.h + remove tamc (+tamc_keys) from all "cb2mFiles" lists ; + - disentangle ALLOW_AUTODIFF/ALLOW_AUTODIFF_TAMC/ALLOW_OPENAD a bit more ; + - remove unused variables where this is straightforward ; + - remove a few i/jmin/max variables. + +checkpoint67z (2021/06/12) +o veritication: + - make testreport count and report the number calls of S/R load_fields_driver + and do_oceanic_phys in AD-code (similar to TAF error & warning count). +o pkg/kpp: + - add CPP-flags to turn off diffusivity matching at bottom of boundary layer ; + - add CPP-flag to turn on taper shear mixing in the case of very small shear ; + - add FLAG to turn on smooth regularisation of divisions by small numbers: + 1/(var+eps) instead of 1/MAX(var,eps) ; + - fix a small masking error ; + - fix some unfortunate loop ordering and spurious recomputations ; + - add new diagnostics KPPshsq, KPPdVsq ; + - update exp. vermix (which has KPP_ESTIMATE_UREF defined) reference output. +o model/src: + - in the main code, add option and code for sound speed calculation with + corresponding diagnostics ; turned on in exp. global_oce_biogeo_bling. +o model/src: + - fix few loop range to allow to run with OLx,y=1 when momStepping=F ; + - add check and stop if momStepping=T and overlap-size is smaller than 2. +o pkg/ggl90: + - add 3 store directives for gg90tke in ggl90_calc.F and break some loops + in two to help TAF without extra storage requirements. +o pkg/seaice: + - adjust store directives in seaice_growth_adx.F: + *) add store directives to avoid calling seaice_solve4temp in AD-mode + *) adjust/remove/reorganise for good balance between storing and recomputing + *) fix a small bug (full 4D arrays were stored instead of 2D for each bi,bj) + *) local option "SEAICE_GROWTH_ADX_STORE_MORE" (not recommended) + reduces the recomputations but increases the memory requirements. + - update ref. AD output of experiment offline_exf_seaice (the only one using + SEAICE_GROWTH_ADX): no Grad-Check changes but differences in AD-Monitor. +o pkg/ctrl & pkg/shelfice: + - generalize masking procedure for control parameters, fixes procedure for + ice-shelf controls ; + - add ability to control base 10 logarithm in generic control arrays ; + - add shiTransCoeffT, shiTransCoeffS, and shiCDrag as control variables ; + - add ability to compute shelfice freshwater and heat fluxes through ecco + package. +o store directives (model/src, pkg/exf, ...): + - By adding many store directives for variables after they have been computed + the corresponding s/r load_fields_driver, oceanic_phys, solve_for_pressure + no longer need to be called in the AD-routine forward_step_ad. + A as a consequence the forward part of forward_step is not recomputed, + and there are far fewer store statements in the AD-code. + - Most of the new store directives and many of the old ones are collected in + two new files "check_lev1_dir_forcing.h" and "check_lev1_dir_ocephys.h" to + avoid clutter in forward_step.F + - More store directives in pkg/exf allow it to store the forcing fields + instead of the level0/1 (e.g. aqh instead of aqh0 and aqh1), thereby + reducing the number of stored exf-forcing variables by about two. This is + also necessary to avoid calling load_fields_driver from forward_step_ad. + - Additional small tweaks of store directives in forward_step.F have the + effect that the recomputations are kept to a minimum in all of the AD + verification experiments (and in verification_other/global_oce_[llc/cs32]) + and calling potentially expensive forward routines are not called (e.g. + do_stagger_fields_exchange, which involves unnecessary exchanges). + - Remove storage of gchemTendency in all checkpoint levels. + - Results unaffected except if using real*4 storage (isbyte=4, e.g., in + offline_exf_seaice, small changes in AD-monitor). + +checkpoint67y (2021/05/05) +o pkg/shelfice: + - Update kTopC when using SHELFICEMassStepping if ice-shelf retreat completely + from one column or advance to cover new grid-cell ; add 4 levels TAF storage + of kTopC (to prevent major recomputations). + - Also prevent ice-shelf mass to become negative. +o pkg/mom_common & gmredi: + - Adjust Smag and Leith code for use in Adjoint: + a) protect against derivative of SQRT(0) in mom_calc_visc.F and + gmredi_calc_qgleith.F ; + b) add GM-Redi QG Leith routines to ad_diff lists. +o pkg/gmredi: + - fix/remove 2 TAF recomputations in GMREDI_WITH_STABLE_ADJOINT code. +o pkg/generic_advdiff: + - improve "slope" calculation in DST2 Flux-Limiter advection scheme to avoid + potential over-flow arithmetic in division by small slope (issue #459), + similar to what has been done in gad_dst3fl_*.F routines. +o pkg/diagnostics: + - use Integer*8 conversion in diagnostics_out.F to get time-record to write + in meta file (avoid integer overflow with large time & small diag-freq). +o pkg/mom_common: + - initialise again hdiv in mom_calc_hdiv.F (in case it got dropped by TAF in + calling S/R). +o model/src: + - fix a bug in convective_adjustment.F AD code by adjusting store directives + for theta and salt ; update experiment isomip reference AD output. + - a little bit of cleanup: remove unnecessary store directives and options. +o pkg/shelfice: + - change expression of pLoc in shelfice_thermodynamics.F to be simply the + weight of the ice-shelf (= shelficeMass * gravity) replacing inaccurate + estimate from "R_shelfIce". Add TAF directive storage of prognostic + variable "shelficeMass" in all 4 checkpointing levels. Update all reference + output of experiments that use pkg/shelfice (isomip & shelfice_2d_remesh) +o verification/testreport + - add ad-monitor of 3-D state variables to testreport summary output +o pkg/ggl90: + - avoid division by zero in adjoint of S/R GGL90_CALC (sqrt related) + +checkpoint67x (2021/04/12) +o pkg/seaice: + - Addition to the sea ice package of 6 sea ice rheologies with different yield + curves and flow rules ; + - Add 4 new verification tests in offline_exf_seaice using new rheologies ; + - Update documentation with description of new rheologies and how to use them. +o model, pkg & doc: + - replace all occurrences of incorrect "psu" and "PSU" by "g/kg" in units and + comments ; update the documentation accordingly. o pkg/ctrl: - - fix two bugs related to writing and reading control variables and - corresponding gradients: - a) replace too large loop range endrec by diffrec in ctrl_map_ini_gentim2d.F; - b) skip writing meta-files in REVERSE_SIMULATION mode (active_file_control.F). + - move to pkg/ctrl the local copy of ctrl_map_ini_genarr.F from verification/ + global_oce_biogeo_bling/code_ad/ with ptracers generic control. Improve for + general number of ptracers control. + - add missing diagnostics fill for diagnostics 'Um_ImplD' & 'Vm_ImplD' in + impldiff.F (otherwise not filled when pkg/autodiff is compiled). +o pkg/autodiff: + Include TICES of pkg/seaice into StoreSEAICE: + - split AUTODIFF.h into two to be able to use nITD in the new AUTODIFF_STORE.h + - rearrange and cleanup declarations, add CPP flags ALLOW_SEAICE/OBCS/EXF ; + - clean up seaice section of autodiff_store/restore.F to remove unused storage + space ; + - changes AD results of global_ocean.cs32x15.seaice & seaice_dynmix, lab_sea & + lab_sea.noseaicedyn => output_adm updated. +o model/src: + - make sure the 3 recip_hFac{C,W,S} are reset after resetting the 3 hFac + in ini_nlfs_vars.F when using Non-Lin FreeSurf with pkg/autodiff compiled + (#define ALLOW_AUTODIFF): this fix problems in gradient-check if recip_hFac + is used, e.g., in one {PKG}_INIT_VARIA S/R. +o pkg/autodiff & diagnostics: + - Add interface routines to write to binary file and fill diagnostics of + single (or pair) of Adjoint variable. + - Rewrite addummy_in_stepping.F using set of new interface S/R to make it + more compact and easier to add new control variables. + - Add all current adjoint variables in addummy_in_stepping, ptracers_ad_dump, + seaice_ad_dump & exf_adjoint_snapshots_ad to work with diagnostics package. + - turn on Adjoint-variable diagnostics in adjoint verification experiments: + *) global_oce_biogeo_bling (with ptracers AD-var diagnostics) and + *) global_ocean.cs32x15.seaice (with seaice and exf AD-var diagnostics). +o model/src + pkg/mom_common: + Fix AB time-stepping of QuasiHydrostatic with staggerTimeStep. + - involves new CPP option "ALLOW_QHYD_STAGGER_TS" for storage of previous + time-step Quasi-Hydro tendency to enable AB extrapolation in time when + using staggerTimeStep. + - field added to pickup file for restart ; allows to restart (but not perfect + restart) if field is missing and pickupStrictlyMatch=F. + - switch to staggerTimeStep=T in experiment "global_ocean.90x40x15.dwnslp" + that uses QuasiHydrostatic to test this code; update corresponding output + (as well as primary test output due to machine truncation). +o verification: + In experiments: global_ocean.cs32x15, isomip, obcs_ctrl and offline_exf_seaice + replace CPP flag ECCO_CTRL_DEPRECATED by the much nicer generic control + variables GENARR/GENTIM2D variant. + Also replace ECCO_CPPOPTIONS.h by CTRL/AUTODIFF/COST/ECCO_OPTIONS.h files. + This required a number of changes to the general code to make the generic + control variables work in a non-ecco context: + - pkg/thsice: add AUTODIFF_OPTIONS.h and COST_OPTIONS.h header files to + numerous routines ; + - pkg/seaice: mask tendencies of HEFF/AREA/HSNOW in seaice_growth_adx.F to + reproduce cost function values ; + - pkg/shelfice: enable GENARR/GENTIM2D methods ; + - pkg/obcs: move reading control variable out of S/R obcs_prescribe_read into + S/R obcs_calc to be independent of parameter values unrelated to the + adjoint ; + - pkg/ctrl: make generic control variable work without pkg/cal (works only for + time independent control variables), but issue a warning, bonus: make + ctrlprec a runtime parameter that defaults to 64 ; + - pkg/ctrl: fix flow directives for S/R ctrl_bound_2d/3d and add tangent + linear versions of these subroutines ; + - pkg/ecco: reorder CPP flags in ecco_cost_weights.F and remove unused + variable 'wbaro', move calling S/R cost_obcs out of ECCO_CTRL_DEPRECATED + code block in S/R ecco_cost_driver, reorganise CPP flags in + cost_averagesinit.F, include CTRL_OPTIONS.h wherever ECCO_OPTIONS.h is + included, because ECCO_CTRL_DEPRECATED is now set in CTRL_OPTIONS.h ; + - model/src/the_main_loop.F: fix tape initialisation, bonus: suppress a + benign warning ; + - for each of the verification experiments remove ECCO_CPPOPTIONS.h and + replace by CTRL_OPTIONS.h, CTRL_SIZE.h, sometimes COST/ECCO_OPTIONS.h, + EXF_OPTIONS.h, adjust data.ctrl, data.grdchk, data.ecco ; + - for global_ocean.cs32x15 compile both variants by keeping + ECCO_CTRL_DEPRECATED in CTRL_OPTIONS.h and use runtime parameter ctrlUseGen + to switch between methods (in global_ocean.cs32x15.thsice). This involves an + extra (benign) recomputation warning in this verification experiment because + of an if statement with ctrlUseGen in ctrl_init_variables.F + +checkpoint67w (2021/03/06) +o verification/global_ocean.cs32x15: + - fix Adjoint set-up by turning off CPP option "ALLOW_AUTODIFF_INIT_OLD" (that + was intended to put back an old bug) and update all 4 ADM and all 4 TLM + reference output files. +o pkg/exf: + - replace wrong CPP option EXF_SALTFLX with ALLOW_SALTFLX in exf_monitor.F. +o model/src: + - Output dxF, dyF, dxV, and dyU fields to mdsio grid output files. +o tools/build_options: + - improve intel optfile for engaging (linux_amd64_ifort+impi_engaging). +o pkg/autodiff: + - Improve, extend & clean-up switch to a simpler advection-scheme in AD-Mode + with new parameter "useApproxAdvectionInAdMode to replace inAdMode: + * If useApproxAdvectionInAdMode is True and advection scheme is set to 33 + use advection scheme 30 in AD-model in seaice_advection, gad_advection + and gad_calc_rsh ; model stops when parameters are set inconsistently. + * Defaults to False, but is reset to True if inAdExact = False to be + backwards compatible. + - Important change in the meaning of variable inAdMode: now it is always true + after calling S/R AUTODIFF_INADMODE_SET_AD and always false after calling + S/R AUTODIFF_INADMODE_UNSET_AD. + The non-intuitive flags inAdTrue and inAdFalse, which could be T or F, have + been removed from the code. + - Remove unnecessary TAF related and inAdMode code from seaice_lsr.F, remove + SOLV_MAX_TMP in LSR S/R and adjust SEAICElinearIterMax default accordingly. + - Change AD exp. global_ocean.cs32x15.seaice to test this new functionality; + gradient checks necessarily are poorer because AD advection is approximated. +o tools/build_options: + - update standard optfile "linux_amd64_gfortran" to enable to be used with + gfortran version 10 (or higher); update comments and clean-up for missing + "nf-config". +o model/src & pkg/generic_advdiff: + - Implement simple isotropic 3D Smagorinsky diffusivity: + Smag diffusivity is assumed to be linearly dependent on 3D Smag viscosity + (just scaled by inverse of a constant Prandtl number); setting involves: + a) CPP Option: ALLOW_SMAG_3D_DIFFUSIVITY in CPP_OPTIONS.h (def. #undef) + b) switching on 3D Smagorinsky by setting "useSmag3D = .TRUE." in first + namelist of main parameter file "data" ; and, in the same namelist, + c) setting smag coeff. "smag3D_diffCoeff" for diffusivity (similar to + smag coeff. "smag3D_coeff" for viscosity), which results in constant + Prandtl number = smag3D_coeff/smag3D_diffCoeff. + Note: Since Smag3D_diffK is lagging by 1 time-step, needs to be stored + in pickup files (for restart) when using synchronous time-stepping. + - code is compiled in experiment tutorial_deep_convection and ready to use + except smag3D_diffCoeff setting in input.smag3d/data is commented out. + - also add few missing initialisations in "ini_dynvars.F" (just for + consistency with coding practice but no practical side effect). +o pkg/ecco: + - fix type of argument in S/R MDS_READVEC_LOC call inside cost_gencost_moc.F +o verification/lab_sea: + - change lab_sea.hb87 from testing EVP to testing aEVP with some sensible + parameters ; update reference output "output.hb87.txt" +o pkg/ecco: + - Addition of meridional streamfunction maximum (MOC) as objective function + within ecco/gencost code ; + - MOC objective function tested in verification_other/global_oce_cs32.sens ; + - allows to compute sensitivity to hflux/sflux with prescribed atmospheric + state (not fluxes) with new flags CALC_HFLUX_SENS and CALC_SFLUX_SENS. + +checkpoint67v (2021/02/03) +o tools/build_options: + - add optfile for engaging similar to linux_amd64_ifort+impi but with -xAVX +o pkg/seaice: + - move store directives of uice/vice to after calling S/R SEAICE_DYNSOLVER to + avoid calling this routine in S/R seaice_model_ad which may trigger + potential recomputation problems (e.g., with non-exact AD) ; + - move if statement inside S/R SEAICE_BOTTOMDRAG_COEFFS : this enables to + remove storage of "CbotC" without triggering recomputations ; compile this + code in the AD-experiments of global_ocean.cs32x15 ; + - remove unnecessary store directives related to pkg/seaice ; + - fix/extend diagnostic "SIenph " to work with all parameter configurations. +o pkg/autodiff: fix/improve viscFacAdj + - fix treatment of viscFacAdj in mom_vecinv.F by removing storage of 2D + viscosities if new flag AUTODIFF_ALLOW_VISCFACADJ is defined ; + - add a runtime parameter "viscFacInFw" in autodiff_inadmode_unset_ad.F to + replace hard-coded one ; + - apply viscFacAdj to both viscAh/4_D and _Z ; + - test compiling this code in tutorial_global_oce_optim. +o model/src: + - move if statement out of i/j-loops in solve_tridiagnoal/pentadiagonal.F: + *) this reduces TAF recomputation warnings by 4 ; + *) potentially easier to optimise/vectorise for some compilers. +o tools/build_options: + - adjust floating point options in: linux_ia64_ifort_ollie: +o pkg/ctrl: + - fix two bugs related to writing and reading control variables and + corresponding gradients: + a) replace too large loop range endrec by diffrec in ctrl_map_ini_gentim2d.F; + b) skip writing meta-files in REVERSE_SIMULATION mode (active_file_control.F) checkpoint67u (2020/12/30) o utils/python/MITgcmutils - - add code to compute horizontal divergence of a vector field, gradient of a - scalar field, and averages to c-points on an llc grid. -o pkg/seaice: - - fix bug in seaice_lsr, spotted by Martin Vancoppenolle, that lead to solving - stationary momentum equations (du/dt -> 0) for SEAICEnonLinIterMax>2 ; - - fix minor bug in seaice_bottomdrag_coeffs.F: replace OLy with correct OLx ; - - changing ordering of addition (to FORCEX,FORCEY) in seaice_lsr.F results in - output differences at machine truncation level: update referece output of - several experiments that use LSR solver. + - add code to compute horizontal divergence of a vector field, gradient of a + scalar field, and averages to c-points on an llc grid. +o pkg/seaice: + - fix bug in seaice_lsr, spotted by Martin Vancoppenolle, that lead to solving + stationary momentum equations (du/dt -> 0) for SEAICEnonLinIterMax>2 ; + - fix minor bug in seaice_bottomdrag_coeffs.F: replace OLy with correct OLx ; + - changing ordering of addition (to FORCEX,FORCEY) in seaice_lsr.F results in + output differences at machine truncation level: update referece output of + several experiments that use LSR solver. o pkg/autodiff: fix flow directives for self-adjoint cg2d - - new self-adjoint cg2d routine cg2d_sad.F mimics AD-code, but neglects - (purposefully) the proper sensitivity propagation - - extra storage of cg2d solver coefficients and preconditioner is required - - change 2 AD-verification experments (global_ocean.cs32x15 and - global_ocean.cs32x15.seaice) to test this code a little better: - use full NLFS and nchklev_1 = 2 + - new self-adjoint cg2d routine cg2d_sad.F mimics AD-code, but neglects + (purposefully) the proper sensitivity propagation + - extra storage of cg2d solver coefficients and preconditioner is required + - change 2 AD-verification experments (global_ocean.cs32x15 and + global_ocean.cs32x15.seaice) to test this code a little better: + use full NLFS and nchklev_1 = 2 checkpoint67t (2020/11/30) o pkg/kpp: diff --git a/eesupp/inc/CPP_EEMACROS.h b/eesupp/inc/CPP_EEMACROS.h index c1499ee16a..542e4da49e 100644 --- a/eesupp/inc/CPP_EEMACROS.h +++ b/eesupp/inc/CPP_EEMACROS.h @@ -125,32 +125,18 @@ C enable to call the corresponding R4 or R8 S/R. #define _GLOBAL_SUM_RS(a,b) CALL GLOBAL_SUM_R8 ( a, b) #define _GLOBAL_MAX_RS(a,b) CALL GLOBAL_MAX_R8 ( a, b ) #define _MPI_TYPE_RS MPI_DOUBLE_PRECISION -#ifdef USE_OLD_MACROS_R4R8toRSRL -#define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R8 ( a, b ) -#define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R8 ( a, b ) -#endif #else #define _RS Real*4 #define RS_IS_REAL4 #define _GLOBAL_SUM_RS(a,b) CALL GLOBAL_SUM_R4 ( a, b ) #define _GLOBAL_MAX_RS(a,b) CALL GLOBAL_MAX_R4 ( a, b ) #define _MPI_TYPE_RS MPI_REAL -#ifdef USE_OLD_MACROS_R4R8toRSRL -cph Needed for some backward compatibility with broken packages -#define _GLOBAL_SUM_R4(a,b) CALL GLOBAL_SUM_R4 ( a, b ) -#define _GLOBAL_MAX_R4(a,b) CALL GLOBAL_MAX_R4 ( a, b ) -#endif #endif #define _RL Real*8 #define RL_IS_REAL8 #define _GLOBAL_SUM_RL(a,b) CALL GLOBAL_SUM_R8 ( a, b ) #define _GLOBAL_MAX_RL(a,b) CALL GLOBAL_MAX_R8 ( a, b ) -#ifdef USE_OLD_MACROS_R4R8toRSRL -cph Needed for some backward compatibility with broken packages -#define _GLOBAL_SUM_R8(a,b) CALL GLOBAL_SUM_R8 ( a, b ) -#define _GLOBAL_MAX_R8(a,b) CALL GLOBAL_MAX_R8 ( a, b ) -#endif #define _MPI_TYPE_RL MPI_DOUBLE_PRECISION #define _MPI_TYPE_R4 MPI_REAL @@ -169,13 +155,6 @@ C will directly call the corrresponding S/R. #define _EXCH_XY_RL(a,b) CALL EXCH_XY_RL ( a, b ) #define _EXCH_XYZ_RS(a,b) CALL EXCH_XYZ_RS ( a, b ) #define _EXCH_XYZ_RL(a,b) CALL EXCH_XYZ_RL ( a, b ) -#ifdef USE_OLD_MACROS_R4R8toRSRL -cph Needed for some backward compatibility with broken packages -#define _EXCH_XY_R4(a,b) CALL EXCH_XY_RS ( a, b ) -#define _EXCH_XY_R8(a,b) CALL EXCH_XY_RL ( a, b ) -#define _EXCH_XYZ_R4(a,b) CALL EXCH_XYZ_RS ( a, b ) -#define _EXCH_XYZ_R8(a,b) CALL EXCH_XYZ_RL ( a, b ) -#endif C-- Control use of JAM routines for Artic network (no longer supported) C These invoke optimized versions of "exchange" and "sum" that @@ -212,4 +191,16 @@ C and S/R open_copy_data_file. The default of I9.9 should work for C a long time (until we will use 10e10 processors and more) #define FMT_PROC_ID 'I9.9' +C-- Set the format for writing ensemble task IDs in S/R eeset_parms +C and S/R open_copy_data_file. +#define FMT_TSK_ID 'I6.6' + +C-- Set ACTION= in OPEN instruction for input file (before doing IO) +C leave it empty (if EXCLUDE_OPEN_ACTION) or set it to proper value +#ifdef EXCLUDE_OPEN_ACTION +# define _READONLY_ACTION +#else +# define _READONLY_ACTION ACTION='read', +#endif + #endif /* _CPP_EEMACROS_H_ */ diff --git a/eesupp/inc/CPP_EEOPTIONS.h b/eesupp/inc/CPP_EEOPTIONS.h index 06fe230df0..30fd8d69be 100644 --- a/eesupp/inc/CPP_EEOPTIONS.h +++ b/eesupp/inc/CPP_EEOPTIONS.h @@ -1,3 +1,6 @@ +#ifndef _CPP_EEOPTIONS_H_ +#define _CPP_EEOPTIONS_H_ + CBOP C !ROUTINE: CPP_EEOPTIONS.h C !INTERFACE: @@ -28,9 +31,6 @@ C | options set at compile time. | C *==========================================================* CEOP -#ifndef _CPP_EEOPTIONS_H_ -#define _CPP_EEOPTIONS_H_ - C In general the following convention applies: C ALLOW - indicates an feature will be included but it may C CAN have a run-time flag to allow it to be switched @@ -62,9 +62,6 @@ C-- Control use of "double" precision constants. C Use D0 where it means REAL*8 but not where it means REAL*16 #define D0 d0 -C-- Enable some old macro conventions for backward compatibility -#undef USE_OLD_MACROS_R4R8toRSRL - C=== IO related options === C-- Flag used to indicate whether Fortran formatted write C and read are threadsafe. On SGI the routines can be thread @@ -108,7 +105,6 @@ CXXX #undef ALLOW_USE_MPI C-- Control use of communication that might overlap computation. C Under MPI selects/deselects "non-blocking" sends and receives. -#define ALLOW_ASYNC_COMMUNICATION #undef ALLOW_ASYNC_COMMUNICATION #undef ALWAYS_USE_ASYNC_COMMUNICATION C-- Control use of communication that is atomic to computation. @@ -154,7 +150,7 @@ C allow to import and export from/to Coupler interface. C-- Activate some pieces of code for coupling to GEOS AGCM #undef HACK_FOR_GMAO_CPL -#endif /* _CPP_EEOPTIONS_H_ */ - +C=== And define Macros === #include "CPP_EEMACROS.h" +#endif /* _CPP_EEOPTIONS_H_ */ diff --git a/eesupp/inc/DEF_IN_MAKEFILE.h b/eesupp/inc/DEF_IN_MAKEFILE.h index cbedb2ccee..fac7b25e9b 100644 --- a/eesupp/inc/DEF_IN_MAKEFILE.h +++ b/eesupp/inc/DEF_IN_MAKEFILE.h @@ -14,19 +14,20 @@ C-- options set in Makefile by genmake2: #undef ALLOW_USE_MPI #undef USE_OMP_THREADING #undef LET_RS_BE_REAL4 -#undef TIME_PER_TIMESTEP_SFP #undef TIME_PER_TIMESTEP -#undef USE_PAPI_FLOPS_SFP -#undef USE_PAPI_FLOPS -#undef USE_PCL_FLOPS_SFP -#undef USE_PCL_FLOPS +#undef TIME_PER_TIMESTEP_SFP #undef USE_PAPI +#undef USE_PAPI_FLOPS +#undef USE_PAPI_FLOPS_SFP #undef USE_PCL +#undef USE_PCL_FLOPS +#undef USE_PCL_FLOPS_SFP #undef USE_LIBHPM #undef USE_GSL_IEEE #undef HAVE_SYSTEM #undef HAVE_FDATE -#undef HAVE_ETIME +#undef HAVE_ETIME_FCT +#undef HAVE_ETIME_SBR #undef HAVE_CLOC #undef HAVE_SETRLSTK #undef HAVE_SIGREG @@ -36,27 +37,32 @@ C-- options set in Makefile by genmake2: #undef HAVE_FLUSH C-- options that can be set in Makefile by the OPTFILE +#undef HAVE_PTHREADS C- platform specific options: #undef TARGET_AIX #undef TARGET_BGL #undef TARGET_CRAY_VECTOR -#undef TARGET_CRAYXT #undef TARGET_DEC +#undef TARGET_HP #undef TARGET_LAM #undef TARGET_NEC_SX #undef TARGET_NEC_VECTOR #undef TARGET_PWR3 #undef TARGET_SGI +#undef TARGET_SUN #undef TARGET_T3E -C- others options found in optfiles in dir tools/build_options: +C- compiler/platform I/O specific options: #undef _BYTESWAPIO -#undef ALWAYS_USE_MPI -#undef CG2D_OUTERLOOPITERS -#undef CG3D_OUTERLOOPITERS -#undef IFORT +#undef EXCLUDE_OPEN_ACTION #undef NML_EXTENDED_F77 #undef NML_TERMINATOR -#undef SEAICE_VECTORIZE_LSR #undef WORDLENGTH +C- others options found in optfiles in dir tools/build_options: +#undef ALWAYS_USE_MPI +#undef AUTODIFF_USE_MDSFINDUNITS +#undef PROFILES_USE_MDSFINDUNITS +#undef CG2D_OUTERLOOPITERS +#undef CG3D_OUTERLOOPITERS +#undef INTEL_COMMITQQ C----- WARNING: DO NOT include this file in any source code ----- diff --git a/eesupp/inc/EESUPPORT.h b/eesupp/inc/EESUPPORT.h index bcfd6974b1..4763983acb 100644 --- a/eesupp/inc/EESUPPORT.h +++ b/eesupp/inc/EESUPPORT.h @@ -7,11 +7,11 @@ C !DESCRIPTION: C *==========================================================* C | EESUPPORT.h | C *==========================================================* -C | Support data structures for the MITgcm UV ``execution | -C | environment'' code. This data should be private to the | -C | execution environment routines. Data which needs to be | -C | accessed directly by a numerical model goes in | -C | EEPARAMS.h. | +C | Support data structures for the MITgcm UV | +C | "execution environment" code. This data should be | +C | private to the execution environment routines. Data | +C | which needs to be accessed directly by a numerical model | +C | goes in EEPARAMS.h. | C *==========================================================* CEOP diff --git a/eesupp/src/eeset_parms.F b/eesupp/src/eeset_parms.F index e0f3135e12..136adfa081 100644 --- a/eesupp/src/eeset_parms.F +++ b/eesupp/src/eeset_parms.F @@ -4,7 +4,7 @@ C !ROUTINE: EESET_PARMS C !INTERFACE: - SUBROUTINE EESET_PARMS ( procId, doReport ) + SUBROUTINE EESET_PARMS( procId, doReport ) C !DESCRIPTION: C *==========================================================* @@ -53,12 +53,14 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) CHARACTER*(MAX_LEN_PREC) record # if !defined(USE_FORTRAN_SCRATCH_FILES) || defined(SINGLE_DISK_IO) CHARACTER*(MAX_LEN_FNAM) scratchFile1 - CHARACTER*(MAX_LEN_FNAM) scratchFile2 #endif #ifdef SINGLE_DISK_IO C mpiRC :: Error code reporting variable used with MPI. INTEGER mpiRC #endif +#ifdef USE_PDAF + INTEGER mpi_task_id +#endif CEOP NAMELIST /EEPARMS/ @@ -131,34 +133,33 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) useSingleCpuIO = .FALSE. C-- Read in data from eedata file -C We really ought to be using our environment file reading -C package - but we have not written it yet. -C Make scratch copies of input data file with and without comments +C Make a scratch copy of input eedata file without comments #ifdef SINGLE_DISK_IO C Stop if called from eeboot_minimal.F before myProcId is set IF ( .NOT.doReport ) & STOP 'ABNORMAL END: S/R EESET_PARMS: myProcId unset' WRITE(scratchFile1,'(A)') 'scratch1' - WRITE(scratchFile2,'(A)') 'scratch2' IF( myProcId .EQ. 0 ) THEN - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN') - OPEN(UNIT=scrUnit2, FILE=scratchFile2, STATUS='UNKNOWN') + OPEN( UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN' ) ENDIF #else /* ifndef SINGLE_DISK_IO */ # ifdef USE_FORTRAN_SCRATCH_FILES C this is the old default, which can cause filename conflicts on some C multi-node/multi-processor systems - OPEN(UNIT=scrUnit1,STATUS='SCRATCH') - OPEN(UNIT=scrUnit2,STATUS='SCRATCH') + OPEN( UNIT=scrUnit1, STATUS='SCRATCH' ) # else C this definition will go into CPP_EEMACROS.h, once this method is C properly established C After opening regular files here, they are closed with STATUS='DELETE' +#ifdef USE_PDAF + CALL GET_TASKID_PDAF(mpi_task_id) + WRITE(scratchFile1,'(A,'//FMT_PROC_ID//',A,'//FMT_TSK_ID//')') + & 'scratch1.', procId, '.', mpi_task_id +#else WRITE(scratchFile1,'(A,'//FMT_PROC_ID//')') 'scratch1.', procId - WRITE(scratchFile2,'(A,'//FMT_PROC_ID//')') 'scratch2.', procId - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN') - OPEN(UNIT=scrUnit2, FILE=scratchFile2, STATUS='UNKNOWN') +#endif + OPEN( UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN' ) # endif #endif /* SINGLE_DISK_IO */ @@ -166,8 +167,9 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) IF( myProcId .EQ. 0 ) THEN #endif - OPEN(UNIT=eeDataUnit,FILE='eedata',STATUS='OLD', - & err=1,IOSTAT=errIO) +C-- Open the parameter file eedata + OPEN( UNIT=eeDataUnit, FILE='eedata', STATUS='OLD', + & err=1, IOSTAT=errIO ) IF ( errIO .GE. 0 ) GOTO 2 1 CONTINUE IF ( doReport ) THEN @@ -183,20 +185,9 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) RETURN ENDIF 2 CONTINUE - 1000 CONTINUE - READ(eeDataUnit,FMT='(A)',END=1001) RECORD - IL = MAX(ILNBLNK(RECORD),1) - IF ( RECORD(1:1) .NE. commentCharacter ) THEN - CALL NML_SET_TERMINATOR( RECORD ) - WRITE(UNIT=scrUnit1,FMT='(A)') RECORD(:IL) - ENDIF - WRITE(UNIT=scrUnit2,FMT='(A)') RECORD(:IL) - GOTO 1000 - 1001 CONTINUE - CLOSE(eeDataUnit) -C-- Report contents of parameter file - iUnit = scrUnit2 +C-- Read parameter eedata file, make a scratch copy without comments +C and report contents of parameter file to STDOUT IF ( doReport ) THEN WRITE(msgBuf,'(A)') & '// =======================================================' @@ -207,20 +198,27 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) WRITE(msgBuf,'(A)') & '// =======================================================' CALL PRINT_MESSAGE(msgBuf, standardMessageUnit, SQUEEZE_RIGHT, 1) + ENDIF - REWIND(iUnit) - 2000 CONTINUE - READ(UNIT=iUnit,FMT='(A)',END=2001) RECORD - IL = MAX(ILNBLNK(RECORD),1) +C Read file, remove comments and apply specific syntax changes: + 1000 CONTINUE + READ(eeDataUnit,FMT='(A)',END=1001) RECORD + IL = MAX(ILNBLNK(RECORD),1) + IF ( RECORD(1:1) .NE. commentCharacter ) THEN + CALL NML_SET_TERMINATOR( RECORD ) + WRITE(UNIT=scrUnit1,FMT='(A)') RECORD(:IL) + ENDIF + IF ( doReport ) THEN WRITE(msgBuf,'(A,A)') '>',RECORD(:IL) - CALL PRINT_MESSAGE(msgBuf,standardMessageUnit, SQUEEZE_RIGHT, 1) - GOTO 2000 - 2001 CONTINUE - + CALL PRINT_MESSAGE( msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1 ) + ENDIF + GOTO 1000 + 1001 CONTINUE + CLOSE(eeDataUnit) + IF ( doReport ) THEN WRITE(msgBuf,'(A)') ' ' CALL PRINT_MESSAGE(msgBuf,standardMessageUnit, SQUEEZE_RIGHT, 1) ENDIF - CLOSE(iUnit,STATUS='DELETE') #ifdef SINGLE_DISK_IO CALL FLUSH(scrUnit1) @@ -236,7 +234,7 @@ SUBROUTINE EESET_PARMS ( procId, doReport ) #ifdef HAVE_SYSTEM CALL SYSTEM('sleep 1') #endif - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='OLD') + OPEN( UNIT=scrUnit1, FILE=scratchFile1, STATUS='OLD' ) #endif /* SINGLE_DISK_IO */ C-- Read namelist diff --git a/eesupp/src/exch1_rx_cube.template b/eesupp/src/exch1_rx_cube.template index 75588024d5..e4b1749383 100644 --- a/eesupp/src/exch1_rx_cube.template +++ b/eesupp/src/exch1_rx_cube.template @@ -12,29 +12,17 @@ C !INTERFACE: I cornerMode, myThid ) C !DESCRIPTION: -C *==========================================================* +C *==============================================================* C | SUBROUTINE EXCH1_RX_CUBE C | o Forward-mode edge exchanges for RX array on CS config. -C *==========================================================* +C *==============================================================* C | Controlling routine for exchange of XY edges of an array -C | distributed in X and Y. The routine interfaces to -C | communication routines that can use messages passing -C | exchanges, put type exchanges or get type exchanges. -C | This allows anything from MPI to raw memory channel to -C | memmap segments to be used as a inter-process and/or -C | inter-thread communiation and synchronisation -C | mechanism. -C | Notes -- -C | 1. Some low-level mechanisms such as raw memory-channel -C | or SGI/CRAY shmem put do not have direct Fortran bindings -C | and are invoked through C stub routines. -C | 2. Although this routine is fairly general but it does -C | require nSx and nSy are the same for all innvocations. -C | There are many common data structures ( myByLo, -C | westCommunicationMode, mpiIdW etc... ) tied in with -C | (nSx,nSy). To support arbitray nSx and nSy would require -C | general forms of these. -C *==========================================================* +C | distributed in X and Y. +C | This is a preliminary (exch1), simpler version with few +C | limitations (no MPI, 1 tile per face, regular 6 squared faces, +C | multi-threads only on shared arrays, i.e., in commom block) +C | that are fixed in generalised pkg/exch2 implementation. +C *==============================================================* C !USES: IMPLICIT NONE diff --git a/eesupp/src/exch1_uv_rx_cube.template b/eesupp/src/exch1_uv_rx_cube.template index f2eb5ad8ee..9a783e5e98 100644 --- a/eesupp/src/exch1_uv_rx_cube.template +++ b/eesupp/src/exch1_uv_rx_cube.template @@ -12,32 +12,21 @@ C !INTERFACE: I cornerMode, myThid ) C !DESCRIPTION: -C *==========================================================* +C *==============================================================* C | SUBROUTINE EXCH1_UV_RX_CUBE C | o Forward-mode edge exchanges for RX vector on CS config. -C *==========================================================* +C *==============================================================* C | Controlling routine for exchange of XY edges of an array -C | distributed in X and Y. The routine interfaces to -C | communication routines that can use messages passing -C | exchanges, put type exchanges or get type exchanges. -C | This allows anything from MPI to raw memory channel to -C | memmap segments to be used as a inter-process and/or -C | inter-thread communiation and synchronisation -C | mechanism. -C | Notes -- -C | 1. Some low-level mechanisms such as raw memory-channel -C | or SGI/CRAY shmem put do not have direct Fortran bindings -C | and are invoked through C stub routines. -C | 2. Although this routine is fairly general but it does -C | require nSx and nSy are the same for all innvocations. -C | There are many common data structures ( myByLo, -C | westCommunicationMode, mpiIdW etc... ) tied in with -C | (nSx,nSy). To support arbitray nSx and nSy would require -C | general forms of these. -C | 3. Exchanges on the cube of vector quantities need to be -C | paired to allow rotations and sign reversal to be applied -C | consistently between vector components as they rotate. -C *==========================================================* +C | distributed in X and Y. +C | This is a preliminary (exch1), simpler version with few +C | limitations (no MPI, 1 tile per face, regular 6 squared faces, +C | multi-threads only on shared arrays, i.e., in commom block) +C | that are fixed in generalised pkg/exch2 implementation. +C | Notes: +C | Exchanges on the cube of vector quantities need to be +C | paired to allow rotations and sign reversal to be applied +C | consistently between vector components as they rotate. +C *==============================================================* C !USES: IMPLICIT NONE @@ -185,6 +174,7 @@ C Tile Odd:Odd-2 [get] [West<-North] ENDDO ENDDO +C-- end "K" loop ENDDO bt = bl+1 @@ -240,14 +230,17 @@ C Tile Even:Even-1 [get] [West<-East] ENDDO ENDDO +C-- end "K" loop ENDDO +C-- end "bl" loop ENDDO + IF ( OLx.GE.2 .AND. OLy.GE.2 ) THEN C- Add one valid uVel,vVel value next to the corner, that allows -C to compute vorticity on a wider stencil (e.g., vort3(0,1) & (1,0)) - DO bt = 1,6 - DO K = 1,myNz +C to compute vorticity on a wider stencil (e.g., vort3(0,1) & (1,0)) + DO bt = 1,6 + DO K = 1,myNz C SW corner: Uarray(0,0,K,bt,1)=Varray(1,0,K,bt,1) Varray(0,0,K,bt,1)=Uarray(0,1,K,bt,1) @@ -260,8 +253,9 @@ C SE corner: C NE corner: Uarray(sNx+2,sNy+1,K,bt,1)=Varray(sNx,sNy+2,K,bt,1) Varray(sNx+1,sNy+2,K,bt,1)=Uarray(sNx+2,sNy,K,bt,1) + ENDDO ENDDO - ENDDO + ENDIF C Fix degeneracy at corners IF (.FALSE.) THEN @@ -300,6 +294,7 @@ C Top right ENDDO ENDIF +C-- end "repeat" loop ENDDO ENDIF diff --git a/eesupp/src/exch1_z_rx_cube.template b/eesupp/src/exch1_z_rx_cube.template index 87a055a43c..a40166eee1 100644 --- a/eesupp/src/exch1_z_rx_cube.template +++ b/eesupp/src/exch1_z_rx_cube.template @@ -13,33 +13,22 @@ C !INTERFACE: I cornerMode, myThid ) C !DESCRIPTION: -C *==========================================================* +C *==============================================================* C | SUBROUTINE EXCH1_Z_RX_CUBE C | o Forward-mode edge exchanges for RX array on CS config: C | Fill overlap region through tile exchanges, C | according to CS topology, C | for a Zeta-located, scalar field RX arrays. -C *==========================================================* +C *==============================================================* C | Controlling routine for exchange of XY edges of an array -C | distributed in X and Y. The routine interfaces to -C | communication routines that can use messages passing -C | exchanges, put type exchanges or get type exchanges. -C | This allows anything from MPI to raw memory channel to -C | memmap segments to be used as a inter-process and/or -C | inter-thread communiation and synchronisation -C | mechanism. -C | Notes -- -C | 1. Some low-level mechanisms such as raw memory-channel -C | or SGI/CRAY shmem put do not have direct Fortran bindings -C | and are invoked through C stub routines. -C | 2. Although this routine is fairly general but it does -C | require nSx and nSy are the same for all innvocations. -C | There are many common data structures ( myByLo, -C | westCommunicationMode, mpiIdW etc... ) tied in with -C | (nSx,nSy). To support arbitray nSx and nSy would require -C | general forms of these. -C | 3. zeta coord exchange operation for cube sphere grid -C *==========================================================* +C | distributed in X and Y. +C | This is a preliminary (exch1), simpler version with few +C | limitations (no MPI, 1 tile per face, regular 6 squared faces, +C | multi-threads only on shared arrays, i.e., in commom block) +C | that are fixed in generalised pkg/exch2 implementation. +C | Notes: +C | zeta coord exchange operation for cube sphere grid +C *==============================================================* C !USES: IMPLICIT NONE diff --git a/eesupp/src/exch_tap_b.F b/eesupp/src/exch_tap_b.F new file mode 100644 index 0000000000..9c2e14bcb0 --- /dev/null +++ b/eesupp/src/exch_tap_b.F @@ -0,0 +1,207 @@ +#include "PACKAGES_CONFIG.h" +#include "CPP_EEOPTIONS.h" + +C-- File exch_tap_b.F: Tapenade Adjoint (Backward) EXCH1 routines +C-- Contents +C-- o EXCH1_UV_RL_CUBE_B +C-- o EXCH1_UV_RS_CUBE_B +C-- o EXCH1_RL_CUBE_B +C-- o EXCH1_RS_CUBE_B +C-- o EXCH1_RL_B +C-- o EXCH1_RS_B + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_UV_RL_CUBE_B( + U Uarray, Uarrayb, Varray, Varrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, + I myNz, exchwidthx,exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL Uarray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Uarrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Varray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Varrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_UV_RL_CUBE_AD( + U Uarrayb, Varrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_UV_RS_CUBE_B( + U Uarray, Uarrayb, Varray, Varrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, + I myNz, exchwidthx,exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS Uarray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Uarrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Varray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Varrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_UV_RS_CUBE_AD( + U Uarrayb, Varrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RL_CUBE_B( + U array, arrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL arrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RL_CUBE_AD( + U arrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RS_CUBE_B( + U array, arrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS arrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RS_CUBE_AD( + U arrayb, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RL_B(array, arrayb, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, cornerMode, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EXCH.h" + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL arrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RL_AD(arrayb,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RS_B(array, arrayb, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, + & cornerMode, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EXCH.h" + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS arrayb( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RS_AD(arrayb, myOLw, myOLe, myOLs, + & myOLn, myNz, exchWidthX, exchWidthY, + & cornerMode, myThid) + END diff --git a/eesupp/src/exch_tap_d.F b/eesupp/src/exch_tap_d.F new file mode 100644 index 0000000000..f9d99b695f --- /dev/null +++ b/eesupp/src/exch_tap_d.F @@ -0,0 +1,235 @@ +#include "PACKAGES_CONFIG.h" +#include "CPP_EEOPTIONS.h" + +C-- File exch_tap_d.F: Tapenade Tangent Linear EXCH1 routines +C-- Contents +C-- o EXCH1_UV_RL_CUBE_D +C-- o EXCH1_UV_RS_CUBE_D +C-- o EXCH1_RL_CUBE_D +C-- o EXCH1_RS_CUBE_D +C-- o EXCH1_RL_D +C-- o EXCH1_RS_D + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_UV_RL_CUBE_D( + U Uarray, Uarrayd, Varray, Varrayd, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL Uarray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Uarrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Varray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL Varrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_UV_RL_CUBE( + & Uarray, Varray, + & withSigns, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, + & cornerMode, myThid ) + + CALL EXCH1_UV_RL_CUBE( + & Uarrayd, Varrayd, + & withSigns, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, + & cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_UV_RS_CUBE_D( + U Uarray, Uarrayd, Varray, Varrayd, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS Uarray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Uarrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Varray( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS Varrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_UV_RS_CUBE( + & Uarray, Varray, + & withSigns, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, + & cornerMode, myThid ) + + CALL EXCH1_UV_RS_CUBE( + & Uarrayd, Varrayd, + & withSigns, + & myOLw, myOLe, myOLs, myOLn, myNz, + & exchWidthX, exchWidthY, + & cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RL_CUBE_D( + U array, arrayd, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL arrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RL_CUBE(arrayd, withSigns,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + + CALL EXCH1_RL_CUBE(array, withSigns,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RS_CUBE_D( + U array, arrayd, + I withSigns, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS arrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + LOGICAL withSigns + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RS_CUBE(arrayd, withSigns,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + + CALL EXCH1_RS_CUBE(array, withSigns,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RL_D( + U array, arrayd, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EXCH.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RL arrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RL(arrayd,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + CALL EXCH1_RL(array,myOLw, myOLe, myOLs, myOLn, + & myNz, exchWidthX , exchWidthY, cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH1_RS_D( + U array, arrayd, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EXCH.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + _RS arrayd( 1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy ) + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH1_RS(arrayd, myOLw, myOLe, myOLs, + & myOLn, myNz, exchWidthX, exchWidthY, + & cornerMode, myThid) + + CALL EXCH1_RS(array, myOLw, myOLe, myOLs, + & myOLn, myNz, exchWidthX, exchWidthY, + & cornerMode, myThid) + + END diff --git a/eesupp/src/open_copy_data_file.F b/eesupp/src/open_copy_data_file.F index aefa26ca1c..c9b3793795 100644 --- a/eesupp/src/open_copy_data_file.F +++ b/eesupp/src/open_copy_data_file.F @@ -46,7 +46,6 @@ SUBROUTINE OPEN_COPY_DATA_FILE( CHARACTER*(MAX_LEN_PREC) record #if !defined(USE_FORTRAN_SCRATCH_FILES) || defined(SINGLE_DISK_IO) CHARACTER*(MAX_LEN_FNAM) scratchFile1 - CHARACTER*(MAX_LEN_FNAM) scratchFile2 #endif INTEGER errIO,IL LOGICAL exst @@ -54,11 +53,14 @@ SUBROUTINE OPEN_COPY_DATA_FILE( C mpiRC :: Error code reporting variable used with MPI. INTEGER mpiRC #endif +#ifdef USE_PDAF + INTEGER mpi_task_id +#endif CEOP _BEGIN_MASTER(myThid) -C-- Open the parameter file +C-- Check for parameter file INQUIRE( FILE=data_file, EXIST=exst ) IF (exst) THEN WRITE(msgBuf,'(A,A)') @@ -74,26 +76,27 @@ SUBROUTINE OPEN_COPY_DATA_FILE( STOP 'ABNORMAL END: S/R OPEN_COPY_DATA_FILE' ENDIF -C Make scratch copies of eedata with and without comments +C Make a scratch copy of parameter file without comments #ifdef SINGLE_DISK_IO WRITE(scratchFile1,'(A,A)') 'scratch1_', data_file - WRITE(scratchFile2,'(A,A)') 'scratch2_', data_file IF ( myProcId .EQ. 0 ) THEN - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN') - OPEN(UNIT=scrUnit2, FILE=scratchFile2, STATUS='UNKNOWN') + OPEN( UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN' ) ENDIF #else /* ifndef SINGLE_DISK_IO */ #ifdef USE_FORTRAN_SCRATCH_FILES C this is the old default, which can cause filename conflicts on some C multi-node/multi-processor systems - OPEN(UNIT=scrUnit1,STATUS='SCRATCH') - OPEN(UNIT=scrUnit2,STATUS='SCRATCH') + OPEN( UNIT=scrUnit1, STATUS='SCRATCH' ) #else C After opening regular files here, they are closed with STATUS='DELETE' +#ifdef USE_PDAF + CALL GET_TASKID_PDAF(mpi_task_id) + WRITE(scratchFile1,'(A,'//FMT_PROC_ID//',A,'//FMT_TSK_ID//')') + & 'scratch1.', myProcId, '.', mpi_task_id +#else WRITE(scratchFile1,'(A,'//FMT_PROC_ID//')') 'scratch1.', myProcId - WRITE(scratchFile2,'(A,'//FMT_PROC_ID//')') 'scratch2.', myProcId - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN') - OPEN(UNIT=scrUnit2, FILE=scratchFile2, STATUS='UNKNOWN') +#endif + OPEN( UNIT=scrUnit1, FILE=scratchFile1, STATUS='UNKNOWN' ) #endif /* USE_FORTRAN_SCRATCH_FILES */ #endif /* SINGLE_DISK_IO */ @@ -101,8 +104,9 @@ SUBROUTINE OPEN_COPY_DATA_FILE( IF ( myProcId .EQ. 0 ) THEN #endif - OPEN(UNIT=modelDataUnit,FILE=data_file,STATUS='OLD', - & IOSTAT=errIO) +C-- Open the parameter file + OPEN( UNIT=modelDataUnit, FILE=data_file, + & _READONLY_ACTION STATUS='OLD', IOSTAT=errIO ) IF ( errIO .LT. 0 ) THEN WRITE(msgBuf,'(A,A)') & 'Unable to open parameter file: ',data_file @@ -112,20 +116,8 @@ SUBROUTINE OPEN_COPY_DATA_FILE( STOP 'ABNORMAL END: S/R OPEN_COPY_DATA_FILE' ENDIF - DO WHILE ( .TRUE. ) - READ(modelDataUnit,FMT='(A)',END=1001) RECORD - IL = MAX(ILNBLNK(RECORD),1) - IF ( RECORD(1:1) .NE. commentCharacter ) THEN -c CALL NML_SET_TERMINATOR( RECORD ) - CALL NML_CHANGE_SYNTAX( RECORD, data_file, myThid ) - WRITE(UNIT=scrUnit1,FMT='(A)') RECORD(:IL) - ENDIF - WRITE(UNIT=scrUnit2,FMT='(A)') RECORD(:IL) - ENDDO - 1001 CONTINUE - CLOSE(modelDataUnit) - -C-- Report contents of model parameter file +C-- Read parameter file, make a scratch copy without comments +C and report contents of parameter file to STDOUT WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, @@ -137,17 +129,22 @@ SUBROUTINE OPEN_COPY_DATA_FILE( &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - iUnit = scrUnit2 - REWIND(iUnit) + +C Read file, remove comments and apply specific syntax changes: DO WHILE ( .TRUE. ) - READ(UNIT=iUnit,FMT='(A)',END=2001) RECORD + READ(modelDataUnit,FMT='(A)',END=1001) RECORD IL = MAX(ILNBLNK(RECORD),1) + IF ( RECORD(1:1) .NE. commentCharacter ) THEN +c CALL NML_SET_TERMINATOR( RECORD ) + CALL NML_CHANGE_SYNTAX( RECORD, data_file, myThid ) + WRITE(UNIT=scrUnit1,FMT='(A)') RECORD(:IL) + ENDIF WRITE(msgBuf,'(A,A)') '>',RECORD(:IL) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) ENDDO - 2001 CONTINUE - CLOSE(iUnit,STATUS='DELETE') + 1001 CONTINUE + CLOSE(modelDataUnit) WRITE(msgBuf,'(A)') ' ' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) @@ -166,7 +163,8 @@ SUBROUTINE OPEN_COPY_DATA_FILE( #ifdef HAVE_SYSTEM CALL SYSTEM('sleep 1') #endif - OPEN(UNIT=scrUnit1, FILE=scratchFile1, STATUS='OLD') + OPEN( UNIT=scrUnit1, FILE=scratchFile1, + & _READONLY_ACTION STATUS='OLD' ) #endif /* SINGLE_DISK_IO */ C-- Return open unit to caller diff --git a/lsopt/Makefile b/lsopt/Makefile index 3f396ce8c4..55a4c6d29e 100644 --- a/lsopt/Makefile +++ b/lsopt/Makefile @@ -49,7 +49,7 @@ ECCOOPTLIB = liblsopt_ecco.a #--------- CPPFLAGS = -DIS_DOUBLE FC = f77 -FFLAGS = +FFLAGS = -fconvert=big-endian -fimplicit-none # SUN double precision. #--------- diff --git a/lsopt/README b/lsopt/README.md similarity index 76% rename from lsopt/README rename to lsopt/README.md index 93afbc0a46..63cd3f5e1e 100644 --- a/lsopt/README +++ b/lsopt/README.md @@ -1,3 +1,12 @@ +This directory contains code to generate the libary `lsopt_ecco` need +for the optimization routine "optim.x" in `../optim`. Please refer to +rudimentary instructions in `../optim/README.md`. + +The following are instruction how the different precompiled +BLAS-libraries in the directory have been obtained. If your compiling +environment includes the BLAS-library, you do not need to worry about +this. + > Obtaining optimized BLAS routines for HPC platforms > (e.g. O3K, Altix, Opteron, ...) > heimbach@mit.edu, 9-Sep-2004 @@ -38,9 +47,10 @@ > > That works. +``` Some BLAS libraries provided in lsopt/ are SGI O3K: libblas1.a_IRIX64.gz SUN: libblas1.a_SUN.gz SGI Altix: libgoto_it2-r0.95.so.gz PC Pentium4: libgoto_p4_512-r0.94.so.gz - +``` diff --git a/model/inc/CG2D.h b/model/inc/CG2D.h index e3ec92369d..12c09c9ea5 100644 --- a/model/inc/CG2D.h +++ b/model/inc/CG2D.h @@ -29,9 +29,10 @@ C pC :: Main diagonal term of preconditioner. C cg2dNorm :: A matrix normalisation factor. C cg2dTolerance :: cg2d solver Tolerance (solver unit = m2/s2 or no unit, C depending on cg2dNormaliseRHS) - COMMON /CG2D_I_R/ + COMMON /CG2D_I_RS/ & aW2d, aS2d, aC2d, - & pW, pS, pC, + & pW, pS, pC + COMMON /CG2D_I_RL/ & cg2dNorm, cg2dTolerance _RS aW2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS aS2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -41,41 +42,4 @@ C depending on cg2dNormaliseRHS) _RS pC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL cg2dNorm, cg2dTolerance -C-- COMMON /CG2D_I_WK_R/ Work array common block -C cg2d_q :: Intermediate matrix-vector product term -C cg2d_r :: *same* -C cg2d_s :: *same* - COMMON /CG2D_I_WK_R/ - & cg2d_q, cg2d_r, cg2d_s - _RL cg2d_q(1-1:sNx+1,1-1:sNy+1,nSx,nSy) -#ifdef ALLOW_CG2D_NSA - _RL cg2d_r(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL cg2d_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#else /* ALLOW_CG2D_NSA */ - _RL cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy) - _RL cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy) -#endif /* ALLOW_CG2D_NSA */ - -#ifdef ALLOW_CG2D_NSA -C-- COMMON /CG2D_I_WK_R2/ extra work array common block -C cg2d_z :: Intermediate matrix-vector product term -C :: reduces the number of recomputation in adjoint mode -C :: this field is superfluous if your cg2d is self-adjoint. - COMMON /CG2D_I_WK_R2/ cg2d_z - _RL cg2d_z(1-1:sNx+1,1-1:sNy+1,nSx,nSy) -#endif /* ALLOW_CG2D_NSA */ - -#ifdef ALLOW_SRCG -C-- COMMON /CG2D_I_WK_R3/ Work array common block -C cg2d_y :: residual scaled by preconditioner -C cg2d_v :: z times the operator -C cg2d_q :: Intermediate matrix-vector product term -C cg2d_r :: *same* -C cg2d_s :: *same* -C sumPhi :: needed to call global_vec_sum_r8 when mutli-threaded - COMMON /CG2D_I_WK_R3/ - & cg2d_y,cg2d_v,sumPhi - _RL cg2d_y(1-1:sNx+1,1-1:sNy+1,nSx,nSy) - _RL cg2d_v(1-1:sNx+1,1-1:sNy+1,nSx,nSy) - _RL sumPhi(3,nSx,nSy) -#endif /* ALLOW_SRCG */ +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/model/inc/CPP_OPTIONS.h b/model/inc/CPP_OPTIONS.h index 9bfc7f198c..6cce3445d8 100644 --- a/model/inc/CPP_OPTIONS.h +++ b/model/inc/CPP_OPTIONS.h @@ -49,15 +49,27 @@ C o Exclude/allow external forcing-fields load C this allows to read & do simple linear time interpolation of oceanic C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. #undef EXCLUDE_FFIELDS_LOAD +C If defined, use same method (with pkg/autodiff compiled or not) for checking +C when to load new reccord ; by default, use simpler method with pkg/autodiff. +#undef STORE_LOADEDREC_TEST C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + C-- Vertical mixing code options: -C o Include/exclude call to S/R CONVECT +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT #define INCLUDE_CONVECT_CALL +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over +#undef INCLUDE_CONVECT_INI_CALL + C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL @@ -73,6 +85,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #undef EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +100,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation @@ -93,6 +112,9 @@ C that ensures that d/dt(eta) is exactly equal to - Div.Transport C o Allow the use of Non-Linear Free-Surface formulation C this implies that grid-cell thickness (hFactors) varies with time #undef NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate +c#define DISABLE_RSTAR_CODE +c#define DISABLE_SIGMA_CODE C o Include/exclude nonHydrostatic code #undef ALLOW_NONHYDROSTATIC @@ -102,7 +124,7 @@ C o Include/exclude GM-like eddy stress in momentum code C-- Algorithm options: -C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver #undef ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver @@ -114,6 +136,9 @@ C The following has low memory footprint, but not suitable for AD C The following one suitable for AD but does not vectorize #undef SOLVE_DIAGONAL_KINNER +C Implementation alternative (might be faster on some platforms ?) +#undef USE_MASK_AND_NO_IF + C-- Retired code options: C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when @@ -127,7 +152,7 @@ C The preferred method is specifying a value for viscAhGrid or viscA4Grid C in data which is then automatically scaled by the grid size; C the old method of specifying viscAh/viscA4 and this flag is provided C for completeness only (and for use with the adjoint). -C#define ISOTROPIC_COS_SCALING +c#define ISOTROPIC_COS_SCALING C o This flag selects the form of COSINE(lat) scaling of bi-harmonic term. C *only for use on a lat-lon grid* @@ -137,7 +162,7 @@ C Setting this flag here affects both momentum and tracer equation unless C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). C The definition of the flag is commented to avoid interference with C such other header files. -C#define COSINEMETH_III +c#define COSINEMETH_III C o Use "OLD" UV discretisation near boundaries (*not* recommended) C Note - only works with pkg/mom_fluxform and "no_slip_sides=.FALSE." @@ -149,10 +174,6 @@ C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. #undef OLD_GRID_IO -C o Use thsice+seaice (old) call sequence: ice-Dyn,ice-Advect,ice-Thermo(thsice) -C as opposed to new sequence: ice-Thermo(thsice),ice-Dyn,ice-Advect -#undef OLD_THSICE_CALL_SEQUENCE - C o Use old EXTERNAL_FORCING_U,V,T,S subroutines (for backward compatibility) #undef USE_OLD_EXTERNAL_FORCING diff --git a/model/inc/DYNVARS.h b/model/inc/DYNVARS.h index 3f0ba95702..a51fee1298 100644 --- a/model/inc/DYNVARS.h +++ b/model/inc/DYNVARS.h @@ -19,7 +19,10 @@ C etaN :: free-surface r-anomaly (r unit) at current time level C uVel :: zonal velocity (m/s, i=1 held at western face) C vVel :: meridional velocity (m/s, j=1 held at southern face) C theta :: potential temperature (oC, held at pressure/tracer point) -C salt :: salinity (ppt, held at pressure/tracer point) +C salt :: salinity (g/kg, held at pressure/tracer point; note that +C salinity is either a conductivity ratio or, if using TEOS10, +C a mass ratio;here we assume it is a mass ratio even though +C it is only correct for TEOS10) C gX, gxNm1 :: Time tendencies at current and previous time levels. C etaH :: surface r-anomaly, advanced in time consistently C with 2.D flow divergence (Exact-Conservation): @@ -81,6 +84,13 @@ C for mixing of tracers vertically ( units of r^2/s ) _RL diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +C smag3D_diffK :: isotropic 3D diffusivity from Smagorisky viscosity +C at grid-cell center (units: m^2/s ) + COMMON /DYNVARS_DIFFK_SMAG3D/ smag3D_diffK + _RL smag3D_diffK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + C The following blocks containing requires anomaly fields of control vars C and related to Options: C ALLOW_KAPGM_CONTROL , ALLOW_KAPREDI_CONTROL and ALLOW_BOTTOMDRAG_CONTROL @@ -94,35 +104,34 @@ C BryanLewis79 vertical diffusivity #endif C Diagnostic Variables: -C phiHydLow :: Phi-Hydrostatic at r-lower boundary -C (bottom in z-coordinates, top in p-coordinates) +C rhoInSitu :: In-Situ density anomaly [kg/m^3] at cell center level. C totPhiHyd :: total hydrostatic Potential (anomaly, for now), C at cell center level ; includes surface contribution. C (for diagnostic + used in Z-coord with EOS_funct_P) -C rhoInSitu :: In-Situ density anomaly [kg/m^3] at cell center level. +C phiHydLow :: Phi-Hydrostatic at r-lower boundary +C (bottom in z-coordinates, top in p-coordinates) C hMixLayer :: Mixed layer depth [m] C (for diagnostic + used GMRedi "fm07") C IVDConvCount :: Impl.Vert.Diffusion convection counter: C = 0 (not convecting) or 1 (convecting) COMMON /DYNVARS_DIAG/ - & phiHydLow, totPhiHyd, & rhoInSitu, + & totPhiHyd, phiHydLow, & hMixLayer, IVDConvCount - _RL phiHydLow(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL totPhiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL rhoInSitu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL totPhiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL phiHydLow(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL hMixLayer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL IVDConvCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#if (defined (ALLOW_SIGMAR_COST_CONTRIBUTION) || defined (ALLOW_LEITH_QG)) +#ifdef ALLOW_LEITH_QG C Leith QG dynamic viscosity scheme requires buoyancy frequency. -C ECCO sometimes uses sigmaR (with ALLOW_SIGMAR_COST_CONTRIBUTION). C Store sigmaRfield to avoid computing density multiple times and give C access to all levels during the k-loop C sigmaRfield :: vertical gradient of buoyancy. COMMON /DYNVARS_sigmaR/ sigmaRfield _RL sigmaRfield (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif /* ALLOW_SIGMAR_COST_CONTRIBUTION or ALLOW_LEITH_QG */ +#endif /* ALLOW_LEITH_QG */ #ifdef ALLOW_SOLVE4_PS_AND_DRAG C Variables for Implicit friction (& vert. visc) in 2-D pressure solver @@ -136,3 +145,11 @@ C pressure gradient in Y (no Units) _RL dU_psFacX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL dV_psFacY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif /* ALLOW_SOLVE4_PS_AND_DRAG */ + +#ifdef INCLUDE_SOUNDSPEED_CALC_CODE +C cSound :: Speed of sound in seawater (m/s) +C following Del Grosso (1974) + COMMON /DYNVARS_cSound/ cSound + _RL cSound(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif /* INCLUDE_SOUNDSPEED_CALC_CODE */ + diff --git a/model/inc/FFIELDS.h b/model/inc/FFIELDS.h index 6fea24a6c9..6b24d40520 100644 --- a/model/inc/FFIELDS.h +++ b/model/inc/FFIELDS.h @@ -35,11 +35,9 @@ C NOTE: for backward compatibility EmPmRfile is specified in C m/s when using external_fields_load.F. It is converted C to kg/m2/s by multiplying by rhoConstFresh. C -C saltFlux :: Net upward salt flux in psu.kg/m^2/s +C saltFlux :: Net upward salt flux in g/kg.kg/m^2/s = g/m^2/s C flux of Salt taken out of the ocean per time unit (second). -C Note: a) only used when salty sea-ice forms or melts. -C b) units: when salinity (unit= psu) is expressed -C in g/kg, saltFlux unit becomes g/m^2/s. +C Note: only used when salty sea-ice forms or melts. C > 0 for decrease in SSS. C Southwest C-grid tracer point C @@ -58,12 +56,12 @@ C C SST :: Sea surface temperature in degrees C for relaxation C Southwest C-grid tracer point C -C SSS :: Sea surface salinity in psu for relaxation +C SSS :: Sea surface salinity in g/kg for relaxation C Southwest C-grid tracer point C -C lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ). +C lambdaThetaClimRelax :: Inverse time scale for SST relaxation ( 1/s ). C -C lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ). +C lambdaSaltClimRelax :: Inverse time scale for SSS relaxation ( 1/s ). C phiTide2d :: vertically uniform (2d-map), time-dependent geopotential C anomaly (e.g., tidal forcing); Units are m^2/s^2 @@ -129,6 +127,12 @@ C (global mean on the order 0.09 - 0.1 W/m^2) COMMON /FFIELDS_geothermal/ geothermalFlux _RS geothermalFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif +#ifdef ALLOW_BALANCE_FLUXES +C weight2BalanceFlx :: weight used for applying weighted correction +C to global-mean surf. flux imbalance ; no-units + COMMON /FFIELDS_W2BALANCE/ weight2BalanceFlx + _RS weight2BalanceFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif C- jmc: commented out until corresponding (ghost-like) code apparition C dQdT :: Thermal relaxation coefficient in W/m^2/degrees @@ -222,9 +226,9 @@ C -> usage in gU: gU = gU + surfaceForcingU/drF [m/s^2] C surfaceForcingV units are r_unit.m/s^2 (=m^2/s^-2 if r=z) C -> usage in gU: gV = gV + surfaceForcingV/drF [m/s^2] C -C surfaceForcingS units are r_unit.psu/s (=psu.m/s if r=z) +C surfaceForcingS units are r_unit.g/kg/s (=g/kg.m/s if r=z) C - EmPmR * S_surf plus salinity relaxation*drF(1) -C -> usage in gS: gS = gS + surfaceForcingS/drF [psu/s] +C -> usage in gS: gS = gS + surfaceForcingS/drF [g/kg/s] C C surfaceForcingT units are r_unit.Kelvin/s (=Kelvin.m/s if r=z) C - Qnet (+Qsw) plus temp. relaxation*drF(1) diff --git a/model/inc/GRID.h b/model/inc/GRID.h index a152308889..7422be1db3 100644 --- a/model/inc/GRID.h +++ b/model/inc/GRID.h @@ -370,27 +370,27 @@ C recip_drF :: Reciprocal of drF C recip_Rcol :: Inverse of cell center column thickness (1/r_unit) C recip_hFacC :: Inverse of cell open-depth f[X,Y,Z] ( dimensionless ). C recip_hFacW rhFacC center, rhFacW west, rhFacS south. -C recip_hFacS Note: This is precomputed here because it involves division. -C xC :: X-coordinate of cell center f[X,Y]. The units of xc, yc -C depend on the grid. They are not used in differencing or -C averaging but are just a convient quantity for I/O, -C diagnostics etc.. As such xc is in m for cartesian -C coordinates but degrees for spherical polar. -C yC :: Y-coordinate of center of cell f[X,Y]. -C yG :: Y-coordinate of corner of cell ( c-grid vorticity point) f[X,Y]. -C rA :: R-face are f[X,Y] ( m^2 ). -C Note: In a cartesian framework rA is simply dx*dy, -C however we use rA to allow for non-globally -C orthogonal coordinate frames (with appropriate -C metric terms). -C rC :: R-coordinate of center of cell f[Z] (units of r). -C rF :: R-coordinate of face of cell f[Z] (units of r). +C recip_hFacS Note: This is precomputed here because it involves division. +C xC :: X-coordinate of cell center f[X,Y]. The units of xc, yc +C depend on the grid. They are not used in differencing or +C averaging but are just a convient quantity for I/O, +C diagnostics etc.. As such xc is in m for cartesian +C coordinates but degrees for spherical polar. +C yC :: Y-coordinate of center of cell f[X,Y]. +C yG :: Y-coordinate of corner of cell (c-grid vorticity point) f[X,Y]. +C rA :: R-face are f[X,Y] ( m^2 ). +C Note: In a cartesian framework rA is simply dx*dy, +C however we use rA to allow for non-globally +C orthogonal coordinate frames (with appropriate +C metric terms). +C rC :: R-coordinate of center of cell f[Z] (units of r). +C rF :: R-coordinate of face of cell f[Z] (units of r). C - *HybSigm* - :: Hybrid-Sigma vert. Coord coefficients C aHybSigmF at level-interface (*HybSigmF) and level-center (*HybSigmC) C aHybSigmC aHybSigm* = constant r part, bHybSigm* = sigma part, such as C bHybSigmF r(ij,k,t) = rLow(ij) + aHybSigm(k)*[rF(1)-rF(Nr+1)] C bHybSigmC + bHybSigm(k)*[eta(ij,t)+Ro_surf(ij) - rLow(ij)] -C dAHybSigF :: vertical increment of Hybrid-Sigma coefficient: constant r part, +C dAHybSigF :: vertical increment of Hybrid-Sigma coeff.: constant r part, C dAHybSigC between interface (dAHybSigF) and between center (dAHybSigC) C dBHybSigF :: vertical increment of Hybrid-Sigma coefficient: sigma part, C dBHybSigC between interface (dBHybSigF) and between center (dBHybSigC) @@ -398,10 +398,10 @@ C tanPhiAtU :: tan of the latitude at U point. Used for spherical polar C metric term in U equation. C tanPhiAtV :: tan of the latitude at V point. Used for spherical polar C metric term in V equation. -C angleCosC :: cosine of grid orientation angle relative to Geographic direction -C at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) -C angleSinC :: sine of grid orientation angle relative to Geographic direction -C at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) +C angleCosC :: cosine of grid orientation angle relative to Geographic +C direction at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) +C angleSinC :: sine of grid orientation angle relative to Geographic +C direction at cell center: alpha=(Eastward_dir,grid_uVel_dir)=(North_d,vVel_d) C u2zonDir :: cosine of grid orientation angle at U point location C v2zonDir :: minus sine of orientation angle at V point location C fCori :: Coriolis parameter at grid Center point @@ -410,13 +410,10 @@ C fCoriCos :: Coriolis Cos(phi) parameter at grid Center point (for NH) COMMON /GRID_RS/ & dxC,dxF,dxG,dxV,dyC,dyF,dyG,dyU, - & R_low, rLowW, rLowS, + & rLowW, rLowS, & Ro_surf, rSurfW, rSurfS, - & hFacC, hFacW, hFacS, & recip_dxC,recip_dxF,recip_dxG,recip_dxV, & recip_dyC,recip_dyF,recip_dyG,recip_dyU, - & recip_Rcol, - & recip_hFacC,recip_hFacW,recip_hFacS, & xC,yC,rA,rAw,rAs,rAz,xG,yG, & maskInC, maskInW, maskInS, & maskC, maskW, maskS, @@ -435,15 +432,11 @@ C fCoriCos :: Coriolis Cos(phi) parameter at grid Center point (for NH) _RS dyF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS dyG (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS dyU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS R_low (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS rLowW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS rLowS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS Ro_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS rSurfW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS rSurfS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS hFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS hFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS hFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RS recip_dxC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS recip_dxF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS recip_dxG (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -452,10 +445,6 @@ C fCoriCos :: Coriolis Cos(phi) parameter at grid Center point (for NH) _RS recip_dyF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS recip_dyG (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS recip_dyU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS recip_Rcol (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS recip_hFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS recip_hFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS recip_hFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RS xC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS xG (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS yC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -498,6 +487,24 @@ C fCoriCos :: Coriolis Cos(phi) parameter at grid Center point (for NH) _RS fCoriG (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS fCoriCos (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +C-- COMMON /GRID_VAR_RS/ potentially time-dependent or active RS +C valued grid defining variables. These grid defining variables are +C time-dependent when using a non-linear free surface, or they are +C active in an AD sense when using depth as a control parameter, or +C both. + COMMON /GRID_VAR_RS/ + & hFacC, hFacW, hFacS, + & recip_hFacC,recip_hFacW,recip_hFacS, + & R_low, recip_Rcol + _RS hFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS hFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS hFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS recip_hFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS recip_hFacW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS recip_hFacS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS R_low (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS recip_Rcol (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + #ifdef ALLOW_DEPTH_CONTROL C-- COMMON /GRID_DEPTH_CTRL/ grid defining variables for Depth Control code. C xx_r_low :: in TAF-sense active replacement of R_low diff --git a/model/inc/NH_VARS.h b/model/inc/NH_VARS.h index 5efe5380c8..9178ced58b 100644 --- a/model/inc/NH_VARS.h +++ b/model/inc/NH_VARS.h @@ -7,6 +7,7 @@ C \bv C *==========================================================* C | NH_VARS.h C | o Additional state variables for non-hydrostatic model +C | and Quasi-Hydrostatic time-stepping C *==========================================================* C | In N-H mode, wVel becomes a prognostic variable: need C | to hold two levels of time tendency for w (for AB) @@ -18,7 +19,7 @@ CEOP C-- COMMON /NH_VARS_R/ REAL NH state variables C phi_nh :: Non-hydrostatic potential (=NH-Pressure/rhoConst) C dPhiNH :: Surface-Hydrostatic correction to Non-hydrostatic Phi -C gX, gxNm1 :: Time tendencies at current and previous time levels. +C gW, gwNm1 :: Time tendencies at current and previous time levels. C viscA?_W :: Horizontal variable viscosities #ifdef ALLOW_ADAMSBASHFORTH_3 @@ -40,3 +41,16 @@ C viscA?_W :: Horizontal variable viscosities #endif /* ALLOW_ADAMSBASHFORTH_3 */ #endif /* ALLOW_NONHYDROSTATIC */ + +#ifdef ALLOW_QHYD_STAGGER_TS +C-- COMMON /NH_VARS_QH_AB/ Quasi-Hydrostatic Adams-Bashforth variables +C QHydGwNm :: QuasiHydrostatic vertical acceleration to add to Buoyancy at +C previous time-step for AB with staggerTimeStep (units: m/s^2) + COMMON /NH_VARS_QH_AB/ + & QHydGwNm +# ifdef ALLOW_ADAMSBASHFORTH_3 + _RL QHydGwNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) +# else /* ALLOW_ADAMSBASHFORTH_3 */ + _RL QHydGwNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +# endif /* ALLOW_ADAMSBASHFORTH_3 */ +#endif /* ALLOW_QHYD_STAGGER_TS */ diff --git a/model/inc/PARAMS.h b/model/inc/PARAMS.h index 8d6b0e14ce..aad3e9956a 100644 --- a/model/inc/PARAMS.h +++ b/model/inc/PARAMS.h @@ -74,9 +74,15 @@ C m/s when using external_fields_load.F. It is converted C to kg/m2/s by multiplying by rhoConstFresh. C saltFluxFile :: File containing surface salt flux C pLoadFile :: File containing pressure loading +C geoPotAnomFile :: File containing constant geopotential anomaly due to +C density structure C addMassFile :: File containing source/sink of fluid in the interior C eddyPsiXFile :: File containing zonal Eddy streamfunction data C eddyPsiYFile :: File containing meridional Eddy streamfunction data +C geothermalFile :: File containing geothermal heat flux +C lambdaThetaFile :: File containing SST relaxation coefficient +C lambdaSaltFile :: File containing SSS relaxation coefficient +C wghtBalanceFile :: File containing weight used in balancing net EmPmR C the_run_name :: string identifying the name of the model "run" COMMON /PARM_C/ & buoyancyRelation, eosType, @@ -92,10 +98,10 @@ C the_run_name :: string identifying the name of the model "run" & saltClimFile, & EmPmRfile, saltFluxFile, & surfQfile, surfQnetFile, surfQswFile, - & lambdaThetaFile, lambdaSaltFile, & uVelInitFile, vVelInitFile, pSurfInitFile, - & pLoadFile, addMassFile, + & pLoadFile, geoPotAnomFile, addMassFile, & eddyPsiXFile, eddyPsiYFile, geothermalFile, + & lambdaThetaFile, lambdaSaltFile, wghtBalanceFile, & the_run_name CHARACTER*(MAX_LEN_FNAM) buoyancyRelation CHARACTER*(6) eosType @@ -133,27 +139,28 @@ C the_run_name :: string identifying the name of the model "run" CHARACTER*(MAX_LEN_FNAM) vVelInitFile CHARACTER*(MAX_LEN_FNAM) pSurfInitFile CHARACTER*(MAX_LEN_FNAM) pLoadFile + CHARACTER*(MAX_LEN_FNAM) geoPotAnomFile CHARACTER*(MAX_LEN_FNAM) addMassFile CHARACTER*(MAX_LEN_FNAM) eddyPsiXFile CHARACTER*(MAX_LEN_FNAM) eddyPsiYFile CHARACTER*(MAX_LEN_FNAM) geothermalFile CHARACTER*(MAX_LEN_FNAM) lambdaThetaFile CHARACTER*(MAX_LEN_FNAM) lambdaSaltFile + CHARACTER*(MAX_LEN_FNAM) wghtBalanceFile CHARACTER*(MAX_LEN_PREC/2) the_run_name C-- COMMON /PARM_I/ Integer valued parameters used by the model. C cg2dMaxIters :: Maximum number of iterations in the C two-dimensional con. grad solver. -C cg2dChkResFreq :: Frequency with which to check residual -C in con. grad solver. +C cg2dMinItersNSA :: Minimum number of iterations in the +C not-self-adjoint version (cg2d_nsa.F) of the +C two-dimensional con. grad solver (default = 0). C cg2dPreCondFreq :: Frequency for updating cg2d preconditioner C (non-linear free-surf.) C cg2dUseMinResSol :: =0 : use last-iteration/converged solution C =1 : use solver minimum-residual solution C cg3dMaxIters :: Maximum number of iterations in the C three-dimensional con. grad solver. -C cg3dChkResFreq :: Frequency with which to check residual -C in con. grad solver. C printResidualFreq :: Frequency for printing residual in CG iterations C nIter0 :: Start time-step number of for this run C nTimeSteps :: Number of timesteps to execute @@ -178,6 +185,8 @@ C =3: use full (Hyd+NH) dynamical pressure C selectAddFluid :: option to add mass source/sink of fluid in the interior C (3-D generalisation of oceanic real-fresh water flux) C =0 off ; =1 add fluid ; =-1 virtual flux (no mass added) +C selectBalanceEmPmR :: option to balance net surface fresh-water flux: +C =0 off ; =1 uniform correction ; = 2 weighted correction C selectImplicitDrag :: select Implicit treatment of bottom/top drag C = 0: fully explicit C = 1: implicit on provisional velocity @@ -217,16 +226,15 @@ C and statistics ; higher -> more writing C- plotLevel :: controls printing of field maps ; higher -> more flds COMMON /PARM_I/ - & cg2dMaxIters, cg2dChkResFreq, + & cg2dMaxIters, cg2dMinItersNSA, & cg2dPreCondFreq, cg2dUseMinResSol, - & cg3dMaxIters, cg3dChkResFreq, - & printResidualFreq, + & cg3dMaxIters, printResidualFreq, & nIter0, nTimeSteps, nTimeSteps_l2, nEndIter, & selectCoriMap, & selectSigmaCoord, & nonlinFreeSurf, select_rStar, & selectNHfreeSurf, selectP_inEOS_Zc, - & selectAddFluid, selectImplicitDrag, + & selectAddFluid, selectBalanceEmPmR, selectImplicitDrag, & momForcingOutAB, tracForcingOutAB, & tempAdvScheme, tempVertAdvScheme, & saltAdvScheme, saltVertAdvScheme, @@ -235,11 +243,10 @@ C- plotLevel :: controls printing of field maps ; higher -> more fl & readBinaryPrec, writeBinaryPrec, writeStatePrec, & rwSuffixType, monitorSelect, debugLevel, plotLevel INTEGER cg2dMaxIters - INTEGER cg2dChkResFreq + INTEGER cg2dMinItersNSA INTEGER cg2dPreCondFreq INTEGER cg2dUseMinResSol INTEGER cg3dMaxIters - INTEGER cg3dChkResFreq INTEGER printResidualFreq INTEGER nIter0 INTEGER nTimeSteps @@ -252,6 +259,7 @@ C- plotLevel :: controls printing of field maps ; higher -> more fl INTEGER selectNHfreeSurf INTEGER selectP_inEOS_Zc INTEGER selectAddFluid + INTEGER selectBalanceEmPmR INTEGER selectImplicitDrag INTEGER momForcingOutAB, tracForcingOutAB INTEGER tempAdvScheme, tempVertAdvScheme @@ -343,6 +351,9 @@ C maskIniSalt :: apply mask to initial salinity C checkIniTemp :: check for points with identically zero initial Pot.Temp. C checkIniSalt :: check for points with identically zero initial salinity C- Pressure solver related parameters (PARM02) +C useNSACGSolver :: Set to true to use "not self-adjoint" conjugate +C gradient solver that stores the iteration history +C for an iterative adjoint as accuate as possible C useSRCGSolver :: Set to true to use conjugate gradient C solver with single reduction (only one call of C s/r mpi_allreduce), default is false @@ -379,7 +390,6 @@ C out off Adams-Bashforth time stepping. C doAB_onGtGs :: if the Adams-Bashforth time stepping is used, always C apply AB on tracer tendencies (rather than on Tracer) C- Other forcing params - -C balanceEmPmR :: substract global mean of EmPmR at every time step C balanceQnet :: substract global mean of Qnet at every time step C balancePrintMean:: print substracted global means to STDOUT C doThetaClimRelax :: Set true if relaxation to temperature @@ -429,7 +439,7 @@ C & Last iteration, in addition multiple of dumpFreq iter & tempAdvection, tempVertDiff4, tempIsActiveTr, tempForcing, & saltAdvection, saltVertDiff4, saltIsActiveTr, saltForcing, & maskIniTemp, maskIniSalt, checkIniTemp, checkIniSalt, - & useSRCGSolver, + & useNSACGSolver, useSRCGSolver, & rigidLid, implicitFreeSurface, & uniformLin_PhiSurf, uniformFreeSurfLev, & exactConserv, linFSConserveTr, useRealFreshWaterFlux, @@ -440,7 +450,7 @@ C & Last iteration, in addition multiple of dumpFreq iter & tempImplVertAdv, saltImplVertAdv, momImplVertAdv, & multiDimAdvection, useMultiDimAdvec, & momDissip_In_AB, doAB_onGtGs, - & balanceEmPmR, balanceQnet, balancePrintMean, + & balanceQnet, balancePrintMean, & balanceThetaClimRelax, balanceSaltClimRelax, & doThetaClimRelax, doSaltClimRelax, & allowFreezing, @@ -510,6 +520,7 @@ C & Last iteration, in addition multiple of dumpFreq iter LOGICAL maskIniSalt LOGICAL checkIniTemp LOGICAL checkIniSalt + LOGICAL useNSACGSolver LOGICAL useSRCGSolver LOGICAL rigidLid LOGICAL implicitFreeSurface @@ -535,7 +546,6 @@ C & Last iteration, in addition multiple of dumpFreq iter LOGICAL useMultiDimAdvec LOGICAL momDissip_In_AB LOGICAL doAB_onGtGs - LOGICAL balanceEmPmR LOGICAL balanceQnet LOGICAL balancePrintMean LOGICAL doThetaClimRelax @@ -604,18 +614,25 @@ C rhoConstFresh :: Constant reference density for fresh water (rain) C thetaConst :: Constant reference for potential temperature C tRef :: reference vertical profile for potential temperature C sRef :: reference vertical profile for salinity/specific humidity -C surf_pRef :: surface reference pressure ( Pa ) -C pRef4EOS :: reference pressure used in EOS (case selectP_inEOS_Zc=1) -C phiRef :: reference potential (press/rho, geopot) profile (m^2/s^2) +C rhoRef :: density vertical profile from (tRef,sRef) [kg/m^3] C dBdrRef :: vertical gradient of reference buoyancy [(m/s/r)^2]: C :: z-coord: = N^2_ref = Brunt-Vaissala frequency [s^-2] C :: p-coord: = -(d.alpha/dp)_ref [(m^2.s/kg)^2] +C surf_pRef :: surface reference pressure ( Pa ) +C pRef4EOS :: reference pressure used in EOS (case selectP_inEOS_Zc=1) +C phiRef :: reference potential (press/rho, geopot) profile (m^2/s^2) C rVel2wUnit :: units conversion factor (Non-Hydrostatic code), C :: from r-coordinate vertical velocity to vertical velocity [m/s]. C :: z-coord: = 1 ; p-coord: wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit C wUnit2rVel :: units conversion factor (Non-Hydrostatic code), C :: from vertical velocity [m/s] to r-coordinate vertical velocity. C :: z-coord: = 1 ; p-coord: rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel +C rUnit2z :: units conversion factor (for ocean in P-coord, only fct of k), +C :: from r-coordinate to z [m] (at level center): +C :: z-coord: = 1 ; p-coord: dz [m] = dr [Pa] * rUnit2z +C z2rUnit :: units conversion factor (for ocean in P-coord, only fct of k), +C :: from z [m] to r-coordinate (at level center): +C :: z-coord: = 1 ; p-coord: dr [Pa] = dz [m] * z2rUnit C mass2rUnit :: units conversion factor (surface forcing), C :: from mass per unit area [kg/m2] to vertical r-coordinate unit. C :: z-coord: = 1/rhoConst ( [kg/m2] / rho = [m] ) ; @@ -624,6 +641,8 @@ C rUnit2mass :: units conversion factor (surface forcing), C :: from vertical r-coordinate unit to mass per unit area [kg/m2]. C :: z-coord: = rhoConst ( [m] * rho = [kg/m2] ) ; C :: p-coord: = 1/gravity ( [Pa] / g = [kg/m2] ) ; +C sIceLoadFac:: factor to scale (and turn off) sIceLoad (sea-ice loading) +C default = 1 C f0 :: Reference coriolis parameter ( 1/s ) C ( Southern edge f for beta plane ) C beta :: df/dy ( s^-1.m^-1 ) @@ -653,7 +672,8 @@ C viscA4D :: Biharmonic viscosity coeff. for mixing of momentum laterally C (act on Divergence part) ( m^4/s ) C viscA4Z :: Biharmonic viscosity coeff. for mixing of momentum laterally C (act on Vorticity part) ( m^4/s ) -C smag3D_coeff :: Isotropic 3-D Smagorinsky coefficient (-) +C smag3D_coeff :: Isotropic 3-D Smagorinsky viscosity coefficient (-) +C smag3D_diffCoeff :: Isotropic 3-D Smagorinsky diffusivity coefficient (-) C viscC2leith :: Leith non-dimensional viscosity factor (grad(vort)) C viscC2leithD :: Modified Leith non-dimensional visc. factor (grad(div)) C viscC2LeithQG:: QG Leith non-dimensional viscosity factor @@ -778,17 +798,20 @@ C NonLin_FrSurf & useRealFreshWater are set. C b) use model surface (local) value if set to UNSET_RL) C hMixCriteria:: criteria for mixed-layer diagnostic C dRhoSmall :: parameter for mixed-layer diagnostic -C hMixSmooth :: Smoothing parameter for mixed-layer diag (default=0=no smoothing) +C hMixSmooth :: Smoothing parameter for mixed-layer diag +C (default=0: no smoothing) C ivdc_kappa :: implicit vertical diffusivity for convection [m^2/s] C sideDragFactor :: side-drag scaling factor (used only if no_slip_sides) C (default=2: full drag ; =1: gives half-slip BC) C bottomDragLinear :: Linear bottom-drag coefficient (units of [r]/s) C bottomDragQuadratic :: Quadratic bottom-drag coefficient (units of [r]/m) C (if using zcoordinate, units becomes linear: m/s, quadratic: [-]) +C zRoughBot :: roughness length for quadratic bottom friction coefficient +C (in m, typical values are order 0.01 m) C smoothAbsFuncRange :: 1/2 of interval around zero, for which FORTRAN ABS C is to be replace by a smoother function C (affects myabs, mymin, mymax) -C nh_Am2 :: scales the non-hydrostatic terms and changes internal scales +C nh_Am2 :: scales non-hydrostatic terms and changes internal scales C (i.e. allows convection at different Rayleigh numbers) C tCylIn :: Temperature of the cylinder inner boundary C tCylOut :: Temperature of the cylinder outer boundary @@ -802,7 +825,7 @@ C psiEuler :: Euler angle, rotation about new z-axis & deltaT, deltaTMom, dTtracerLev, deltaTFreeSurf, deltaTClock, & abEps, alph_AB, beta_AB, & f0, beta, fPrime, omega, rotationPeriod, - & viscFacAdj, viscAh, viscAhW, smag3D_coeff, + & viscFacAdj, viscAh, viscAhW, smag3D_coeff, smag3D_diffCoeff, & viscAhMax, viscAhGrid, viscAhGridMax, viscAhGridMin, & viscC2leith, viscC2leithD, viscC2LeithQG, & viscC2smag, viscC4smag, @@ -824,8 +847,9 @@ C psiEuler :: Euler angle, rotation about new z-axis & gravFacC, recip_gravFacC, gravFacF, recip_gravFacF, & rhoNil, rhoConst, recip_rhoConst, rho1Ref, & rhoFacC, recip_rhoFacC, rhoFacF, recip_rhoFacF, rhoConstFresh, - & thetaConst, tRef, sRef, surf_pRef, pRef4EOS, phiRef, dBdrRef, - & rVel2wUnit, wUnit2rVel, mass2rUnit, rUnit2mass, + & thetaConst, tRef, sRef, rhoRef, dBdrRef, + & surf_pRef, pRef4EOS, phiRef, + & rVel2wUnit, wUnit2rVel, rUnit2z, z2rUnit, mass2rUnit, rUnit2mass, & baseTime, startTime, endTime, & chkPtFreq, pChkPtFreq, dumpFreq, adjDumpFreq, & diagFreq, taveFreq, tave_lastIter, monitorFreq, adjMonitorFreq, @@ -836,8 +860,8 @@ C psiEuler :: Euler angle, rotation about new z-axis & convertFW2Salt, temp_EvPrRn, salt_EvPrRn, & temp_addMass, salt_addMass, hFacMinDr, hFacMinDp, & ivdc_kappa, hMixCriteria, dRhoSmall, hMixSmooth, - & sideDragFactor, bottomDragLinear, bottomDragQuadratic, nh_Am2, - & smoothAbsFuncRange, + & sideDragFactor, bottomDragLinear, bottomDragQuadratic, + & zRoughBot, nh_Am2, smoothAbsFuncRange, sIceLoadFac, & tCylIn, tCylOut, & phiEuler, thetaEuler, psiEuler @@ -882,7 +906,7 @@ C psiEuler :: Euler angle, rotation about new z-axis _RL viscAhW _RL viscAhD _RL viscAhZ - _RL smag3D_coeff + _RL smag3D_coeff, smag3D_diffCoeff _RL viscAhMax _RL viscAhReMax _RL viscAhGrid, viscAhGridMax, viscAhGridMin @@ -935,10 +959,12 @@ C psiEuler :: Euler angle, rotation about new z-axis _RL thetaConst _RL tRef(Nr) _RL sRef(Nr) + _RL rhoRef(Nr) + _RL dBdrRef(Nr) _RL surf_pRef, pRef4EOS(Nr) _RL phiRef(2*Nr+1) - _RL dBdrRef(Nr) _RL rVel2wUnit(Nr+1), wUnit2rVel(Nr+1) + _RL rUnit2z(Nr), z2rUnit(Nr) _RL mass2rUnit, rUnit2mass _RL baseTime _RL startTime @@ -977,7 +1003,9 @@ C psiEuler :: Euler angle, rotation about new z-axis _RL sideDragFactor _RL bottomDragLinear _RL bottomDragQuadratic + _RL zRoughBot _RL smoothAbsFuncRange + _RL sIceLoadFac _RL nh_Am2 _RL tCylIn, tCylOut _RL phiEuler, thetaEuler, psiEuler diff --git a/model/inc/RESTART.h b/model/inc/RESTART.h index c0fce6d441..953103b03b 100644 --- a/model/inc/RESTART.h +++ b/model/inc/RESTART.h @@ -33,18 +33,21 @@ C mom_StartAB :: number of previous gU,gV time levels which are C available to start (or restart) Adams-Bashforth. C nHydStartAB :: number of previous gW time levels which are C available to start (or restart) Adams-Bashforth. +C qHydStartAB :: number of previous QH accel. time levels which are +C available to start (or restart) Adams-Bashforth. C dPhiNHstatus :: status of field dPhiNH: 1= loaded from pickup C 0= not available in pickup COMMON / RESTART_I / & nCheckLev, & tempStartAB, saltStartAB, - & mom_StartAB, nHydStartAB, + & mom_StartAB, nHydStartAB, qHydStartAB, & dPhiNHstatus INTEGER nCheckLev INTEGER tempStartAB INTEGER saltStartAB INTEGER mom_StartAB INTEGER nHydStartAB + INTEGER qHydStartAB INTEGER dPhiNHstatus C-- COMMON / RESTART_C / Character valued parameters used for restart diff --git a/model/inc/SURFACE.h b/model/inc/SURFACE.h index 07e9b6c7a5..3a57d8a045 100644 --- a/model/inc/SURFACE.h +++ b/model/inc/SURFACE.h @@ -30,7 +30,7 @@ C-- COMMON /SURF_CORREC/ Common block for correction of source/sink of C-- Tracer due to W at the surface with Linear C-- Free Surface C TsurfCor :: Pot.Temp Linear-Free-Surface correction term [K.r_Unit/s] -C SsurfCor :: Salinity Linear-Free-Surface correction term [psu.r_Unit/s] +C SsurfCor :: Salinity Linear-Free-Surface correction term [g/kg.r_Unit/s] COMMON /SURF_CORREC/ TsurfCor, SsurfCor _RL TsurfCor _RL SsurfCor diff --git a/model/src/adams_bashforth3.F b/model/src/adams_bashforth3.F index 4b568f41b1..ad55d99cff 100644 --- a/model/src/adams_bashforth3.F +++ b/model/src/adams_bashforth3.F @@ -49,7 +49,7 @@ SUBROUTINE ADAMS_BASHFORTH3( C bi,bj :: Tile indices C kArg :: if >0: apply AB on tendency at level k=kArg C :: if =0: apply AB on state variable and process all levels -C kSize :: 3rd dimension of tracer and tendency arrays +C kSize :: 3rd dimension of gTracer C gTracer :: in: Tendency/State at current time C :: out(kArg >0): Extrapolated Tendency at current time C gTrNm :: in: Tendency/State at previous time @@ -61,7 +61,7 @@ SUBROUTINE ADAMS_BASHFORTH3( C myThid :: my Thread Id. number INTEGER bi, bj, kArg, kSize _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize) - _RL gTrNm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy,2) + _RL gTrNm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) _RL AB_gTr (1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER startAB INTEGER myIter, myThid @@ -69,11 +69,11 @@ SUBROUTINE ADAMS_BASHFORTH3( #ifdef ALLOW_ADAMSBASHFORTH_3 C !LOCAL VARIABLES: C == Local variables == -C k :: level index -C i,j :: Loop counters +C i, j :: Loop counters +C k, kl :: level indices C m1,m2 :: indices for the 2 previous time-step Tendency C ab1,ab2,ab3 :: Adams bashforth extrapolation weights. - INTEGER i,j, k, m1,m2 + INTEGER i,j, k, kl, m1,m2 _RL ab0, ab1, ab2 CEOP @@ -112,13 +112,14 @@ SUBROUTINE ADAMS_BASHFORTH3( ENDDO ELSE C- Extrapolate forward in time the tendency, with AB weights: - k = kArg + kl = kArg + k = MIN( kArg, kSize ) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx AB_gTr(i,j) = ab0*gTracer(i,j,k) - & + ab1*gTrNm(i,j,k,bi,bj,m1) - & + ab2*gTrNm(i,j,k,bi,bj,m2) - gTrNm(i,j,k,bi,bj,m2) = gTracer(i,j,k) + & + ab1*gTrNm(i,j,kl,bi,bj,m1) + & + ab2*gTrNm(i,j,kl,bi,bj,m2) + gTrNm(i,j,kl,bi,bj,m2) = gTracer(i,j,k) gTracer(i,j,k) = gTracer(i,j,k) + AB_gTr(i,j) ENDDO ENDDO diff --git a/model/src/apply_forcing.F b/model/src/apply_forcing.F index b9913568aa..6d105cfa6c 100644 --- a/model/src/apply_forcing.F +++ b/model/src/apply_forcing.F @@ -443,10 +443,7 @@ SUBROUTINE APPLY_FORCING_T( _RL tmpFac, delPI _RL recip_Cp #ifdef SHORTWAVE_HEATING - _RL minusone - PARAMETER (minusOne=-1.) _RL swfracb(2) - INTEGER kp1 #endif #endif /* USE_OLD_EXTERNAL_FORCING */ CEOP @@ -644,10 +641,10 @@ SUBROUTINE APPLY_FORCING_T( IF (linFSConserveTr) THEN DO j=0,sNy+1 DO i=0,sNx+1 - IF (k .EQ. kSurfC(i,j,bi,bj)) THEN - gT_arr(i,j) = gT_arr(i,j) + IF (k .EQ. kSurfC(i,j,bi,bj)) THEN + gT_arr(i,j) = gT_arr(i,j) & +TsurfCor*recip_drF(k)*_recip_hFacC(i,j,k,bi,bj) - ENDIF + ENDIF ENDDO ENDDO ENDIF @@ -664,34 +661,57 @@ SUBROUTINE APPLY_FORCING_T( ENDIF ENDDO ENDDO + ELSEIF ( kSurface .EQ. Nr ) THEN +C this is oceanic pressure coordinate case +C where the flux at the bottom is applied as kSurfC + DO j=0,sNy+1 + DO i=0,sNx+1 + IF ( k.EQ.kSurfC(i,j,bi,bj) ) THEN + gT_arr(i,j)=gT_arr(i,j) + & + geothermalFlux(i,j,bi,bj) + & *recip_Cp*mass2rUnit + & *recip_drF(k)*_recip_hFacC(i,j,k,bi,bj) + ENDIF + ENDDO + ENDDO + ELSE +C- Neither Z-Coords nor kSurface=Nr : not implemented + STOP 'ABNORMAL END: S/R APPLY_FORCING_T (geothermal-flux)' ENDIF #endif /* ALLOW_GEOTHERMAL_FLUX */ #ifdef SHORTWAVE_HEATING C Penetrating SW radiation c IF ( usePenetratingSW ) THEN - swfracb(1)=abs(rF(k)) - swfracb(2)=abs(rF(k+1)) +C Put depth of interface above & below current level in swfracb (1 & 2) +C and SWFRAC returns fraction of light that crosses these interfaces ; +C note: here km is for the mask below current level k + IF ( usingZCoords ) THEN + swfracb(1) = rF(k) + swfracb(2) = rF(k+1) + km = MIN(k+1,Nr) + ELSE +C this is the oceanic pressure coordinate case + swfracb(1) = -rF(k+1)*recip_rhoConst*recip_gravity + swfracb(2) = -rF(k)*recip_rhoConst*recip_gravity + km = MAX(k-1,1) + ENDIF CALL SWFRAC( - I 2, minusOne, + I 2, oneRL, U swfracb, - I myTime, 1, myThid ) - kp1 = k+1 - IF (k.EQ.Nr) THEN - kp1 = k - swfracb(2)=0. _d 0 - ENDIF + I myTime, myIter, myThid ) + IF ( k.EQ.km ) swfracb(2) = 0. _d 0 DO j=0,sNy+1 DO i=0,sNx+1 gT_arr(i,j) = gT_arr(i,j) - & -Qsw(i,j,bi,bj)*(swfracb(1)*maskC(i,j,k,bi,bj) - & -swfracb(2)*maskC(i,j,kp1, bi,bj)) - & *recip_Cp*mass2rUnit - & *recip_drF(k)*_recip_hFacC(i,j,k,bi,bj) + & - Qsw(i,j,bi,bj)*( swfracb(1)*maskC(i,j,k,bi,bj) + & - swfracb(2)*maskC(i,j,km,bi,bj) ) + & *recip_Cp*mass2rUnit + & *recip_drF(k)*_recip_hFacC(i,j,k,bi,bj) ENDDO ENDDO c ENDIF -#endif +#endif /* SHORTWAVE_HEATING */ #ifdef ALLOW_FRAZIL IF ( useFRAZIL ) @@ -925,10 +945,10 @@ SUBROUTINE APPLY_FORCING_S( IF (linFSConserveTr) THEN DO j=0,sNy+1 DO i=0,sNx+1 - IF (k .EQ. kSurfC(i,j,bi,bj)) THEN - gS_arr(i,j) = gS_arr(i,j) + IF (k .EQ. kSurfC(i,j,bi,bj)) THEN + gS_arr(i,j) = gS_arr(i,j) & +SsurfCor*recip_drF(k)*_recip_hFacC(i,j,k,bi,bj) - ENDIF + ENDIF ENDDO ENDDO ENDIF diff --git a/model/src/calc_3d_diffusivity.F b/model/src/calc_3d_diffusivity.F index 7ccd14479c..b7b22f5a2a 100644 --- a/model/src/calc_3d_diffusivity.F +++ b/model/src/calc_3d_diffusivity.F @@ -1,5 +1,8 @@ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: CALC_3D_DIFFUSIVITY @@ -85,29 +88,33 @@ SUBROUTINE CALC_3D_DIFFUSIVITY( KbryanLewisEQ=diffKrBLEQsurf+(diffKrBLEQdeep-diffKrBLEQsurf) & *(atan(-(rF(k)-diffKrBLEQHo)/diffKrBLEQscl)/PI+0.5 _d 0) #endif - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx #ifdef ALLOW_LONGSTEP - IF ( trIdentity .GE. GAD_TR1) THEN + IF ( trIdentity .GE. GAD_TR1) THEN + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx KappaRTr(i,j,k) = & LS_IVDConvCount(i,j,k,bi,bj)*ivdc_kappa & + KbryanLewis79 #ifdef ALLOW_BL79_LAT_VARY & + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj) #endif - ELSE + ENDDO + ENDDO + ELSE #else - IF ( .TRUE. ) THEN + IF ( .TRUE. ) THEN #endif /* ALLOW_LONGSTEP */ + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx KappaRTr(i,j,k) = & IVDConvCount(i,j,k,bi,bj)*ivdc_kappa & + KbryanLewis79 #ifdef ALLOW_BL79_LAT_VARY & + (KbryanLewisEQ-KbryanLewis79)*BL79LatArray(i,j,bi,bj) #endif - ENDIF + ENDDO ENDDO - ENDDO + ENDIF ENDDO IF ( trIdentity.EQ.GAD_TEMPERATURE ) THEN DO k = 1,Nr @@ -237,7 +244,24 @@ SUBROUTINE CALC_3D_DIFFUSIVITY( ENDIF #endif +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + IF ( smag3D_diffCoeff.GT.zeroRL ) THEN + DO k = 2,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + KappaRTr(i,j,k) = KappaRTr(i,j,k) + & + halfRL*( smag3D_diffK(i,j,k-1,bi,bj) + & + smag3D_diffK(i,j, k, bi,bj) ) + ENDDO + ENDDO + ENDDO + ENDIF +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ + #ifndef EXCLUDE_PCELL_MIX_CODE +# ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT loctape_3d_diff = COMMON, Nr +# endif IF ( interDiffKr_pCell ) THEN C-- This is a hack: alter vertical diffusivity (instead of changing many S/R) C in order to account for missing hFac in diffusion term @@ -267,6 +291,14 @@ SUBROUTINE CALC_3D_DIFFUSIVITY( IF ( pCellMix_delR.LT.drF(k) ) & pC_kFac = pCellMix_delR*recip_drF(k) +# ifdef ALLOW_AUTODIFF + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + tmpFac(i,j) = 0. _d 0 + ENDDO + ENDDO +# endif + C- Increase KappaRTr above bottom level: IF ( mixBott.GE.1 ) THEN DO j = 2-OLy, sNy+OLy @@ -302,6 +334,14 @@ SUBROUTINE CALC_3D_DIFFUSIVITY( DO j = 2-OLy, sNy+OLy DO i = 2-OLx, sNx+OLx tmpFac(i,j) = MIN( tmpFac(i,j), pCellMix_maxFac ) +# ifdef ALLOW_AUTODIFF_TAMC + ENDDO + ENDDO +CADJ STORE tmpFac = loctape_3d_diff, key = k +CADJ STORE kappartr(:,:,k) = loctape_3d_diff, key = k + DO j = 2-OLy, sNy+OLy + DO i = 2-OLx, sNx+OLx +# endif KappaRTr(i,j,k) = MAX( KappaRTr(i,j,k), & pCellMix_diffKr(k)*tmpFac(i,j) ) ENDDO @@ -347,6 +387,14 @@ SUBROUTINE CALC_3D_DIFFUSIVITY( DO j = 2-OLy, sNy+OLy DO i = 2-OLx, sNx+OLx tmpFac(i,j) = MIN( tmpFac(i,j), pCellMix_maxFac ) +# ifdef ALLOW_AUTODIFF_TAMC + ENDDO + ENDDO +CADJ STORE tmpFac = loctape_3d_diff, key = k +CADJ STORE kappartr(:,:,k) = loctape_3d_diff, key = k + DO j = 2-OLy, sNy+OLy + DO i = 2-OLx, sNx+OLx +# endif KappaRTr(i,j,k) = MAX( KappaRTr(i,j,k), & pCellMix_diffKr(k)*tmpFac(i,j) ) ENDDO diff --git a/model/src/calc_grad_phi_hyd.F b/model/src/calc_grad_phi_hyd.F index a8c984a9fc..fef3ecef69 100644 --- a/model/src/calc_grad_phi_hyd.F +++ b/model/src/calc_grad_phi_hyd.F @@ -53,7 +53,8 @@ SUBROUTINE CALC_GRAD_PHI_HYD( INTEGER i,j _RL varLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef NONLIN_FRSURF - _RL factorZ, factorP, factPI + LOGICAL generalForm + _RL factorP, factPI CHARACTER*(MAX_LEN_MBUF) msgBuf #endif CEOP @@ -155,19 +156,40 @@ SUBROUTINE CALC_GRAD_PHI_HYD( #ifdef NONLIN_FRSURF # ifndef DISABLE_RSTAR_CODE IF (select_rStar.GE.2 .AND. nonlinFreeSurf.GE.1 ) THEN - IF ( fluidIsWater .AND. usingZCoords ) THEN +C- need to use general form anytime r* @ Top is not uniformly zero: + generalForm = useShelfIce .OR. + & ( usingPCoords .AND. ( rF(Nr+1).NE.zeroRS ) ) .OR. + & ( usingZCoords .AND. ( topoFile.NE.' ' .OR. rF(1).NE.zeroRS ) ) +c generalForm = .TRUE. + IF ( fluidIsWater .AND. ( usingZCoords .OR. generalForm ) ) THEN + IF ( usingZCoords ) THEN C-- z* coordinate slope term: rho_prime/rho0 * Grad_r(g.z) - factorZ = gravity*recip_rhoConst*recip_rhoFacC(k)*0.5 _d 0 - DO j=jMin,jMax - DO i=iMin,iMax - varLoc(i,j) = etaH(i,j,bi,bj) - & *(1. _d 0 + rC(k)*recip_Rcol(i,j,bi,bj)) + factorP = gravity*recip_rhoConst*recip_rhoFacC(k)*0.5 _d 0 + ELSE +C-- p* coordinate slope term: alpha_prime * Grad_r( p ) + factorP = 0.5 _d 0 + ENDIF + IF ( generalForm ) THEN +C- general case, works for both P & Z coordinates: + DO j=jMin,jMax + DO i=iMin,iMax + varLoc(i,j) = etaH(i,j,bi,bj)*recip_Rcol(i,j,bi,bj) + & *( rC(k) - R_low(i,j,bi,bj) ) + ENDDO ENDDO - ENDDO + ELSE +C- Z-coordinate with flat top at z = 0: + DO j=jMin,jMax + DO i=iMin,iMax + varLoc(i,j) = etaH(i,j,bi,bj) + & *(1. _d 0 + rC(k)*recip_Rcol(i,j,bi,bj)) + ENDDO + ENDDO + ENDIF DO j=jMin,jMax DO i=iMin+1,iMax dPhiHydX(i,j) = dPhiHydX(i,j) - & +factorZ*(alphRho(i-1,j)+alphRho(i,j)) + & +factorP*(alphRho(i-1,j)+alphRho(i,j)) & *(varLoc(i,j)-varLoc(i-1,j)) & *recip_dxC(i,j,bi,bj)*recip_deepFacC(k) ENDDO @@ -175,13 +197,14 @@ SUBROUTINE CALC_GRAD_PHI_HYD( DO j=jMin+1,jMax DO i=iMin,iMax dPhiHydY(i,j) = dPhiHydY(i,j) - & +factorZ*(alphRho(i,j-1)+alphRho(i,j)) + & +factorP*(alphRho(i,j-1)+alphRho(i,j)) & *(varLoc(i,j)-varLoc(i,j-1)) & *recip_dyC(i,j,bi,bj)*recip_deepFacC(k) ENDDO ENDDO ELSEIF ( fluidIsWater ) THEN C-- p* coordinate slope term: alpha_prime * Grad_r( p ) +C- requires top to be at p = 0: factorP = 0.5 _d 0 DO j=jMin,jMax DO i=iMin+1,iMax diff --git a/model/src/calc_oce_mxlayer.F b/model/src/calc_oce_mxlayer.F index 00abb2201f..dda722bbfb 100644 --- a/model/src/calc_oce_mxlayer.F +++ b/model/src/calc_oce_mxlayer.F @@ -11,6 +11,8 @@ SUBROUTINE CALC_OCE_MXLAYER( C *==========================================================* C | S/R CALC_OCE_MXLAYER C | o Diagnose the Oceanic surface Mixed-Layer +C | Note: output "hMixLayer" is in "r" unit, i.e., in Pa +C | when using P-coordinate. C *==========================================================* C \ev @@ -49,9 +51,16 @@ SUBROUTINE CALC_OCE_MXLAYER( C !LOCAL VARIABLES: C == Local variables == -C i,j :: Loop counters - INTEGER i,j,k - LOGICAL calcMixLayerDepth +C i, j, k :: Loop counters +C kSrf :: surface center-level index +C kTop :: surface interface level index +C kDir :: downward k increment +C kU, kL :: loop ranges, Up and Low +C kup, klw :: interface level index above & below current level k + INTEGER i, j, k + INTEGER kSrf, kTop, kDir, deltaK + INTEGER kU, kL, klw, kup + LOGICAL calcMixLayerDepth, kIn INTEGER method _RL rhoBigNb _RL rhoMxL(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -64,7 +73,7 @@ SUBROUTINE CALC_OCE_MXLAYER( #ifdef ALLOW_GMREDI IF ( useGMRedi .AND. .NOT.useKPP ) THEN calcMixLayerDepth = GM_useSubMeso .OR. GM_taper_scheme.EQ.'fm07' - & .OR. GM_useK3D + & .OR. GM_useBatesK3d ENDIF #endif #ifdef ALLOW_DIAGNOSTICS @@ -74,6 +83,17 @@ SUBROUTINE CALC_OCE_MXLAYER( #endif IF ( calcMixLayerDepth ) THEN + IF ( usingPCoords ) THEN + kTop = Nr+1 + kSrf = Nr + kDir = -1 + deltaK = 1 + ELSE + kTop = 1 + kSrf = 1 + kDir = 1 + deltaK = 0 + ENDIF C-- Select which "method" to use: method = 0 IF ( hMixCriteria.LT.0. ) method = 1 @@ -91,36 +111,43 @@ SUBROUTINE CALC_OCE_MXLAYER( c dRhoSmall = 1. _d -6 rhoBigNb = rhoConst*1. _d 10 CALL FIND_ALPHA( - I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, 1, + I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, kSrf, kSrf, O rhoMxL, myThid ) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx rhoKm1(i,j) = rhoSurf(i,j) rhoMxL(i,j) = rhoSurf(i,j) & + MAX( rhoMxL(i,j)*hMixCriteria, dRhoSmall ) - hMixLayer(i,j,bi,bj) = rF(1)-R_low(i,j,bi,bj) + hMixLayer(i,j,bi,bj) = Ro_surf(i,j,bi,bj) - R_low(i,j,bi,bj) ENDDO ENDDO - DO k = 2,Nr +C- Z-coord: (kU,kL,kDir) = (2,Nr,1) ; P-coord: (kU,kL,kDir)= (Nr-1,1,-1) + kU = 2 + deltaK*(Nr-3) + kL = Nr - deltaK*(Nr-1) + DO k = kU,kL,kDir C- potential density (reference level = surface level) CALL FIND_RHO_2D( - I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, + I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, kSrf, I theta(1-OLx,1-OLy,k,bi,bj), salt(1-OLx,1-OLy,k,bi,bj), O rhoLoc, I k, bi, bj, myThid ) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - IF ( k.LE.klowC(i,j,bi,bj) .AND. - & rhoLoc(i,j).GE.rhoMxL(i,j) ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +c kIn = k.LT.klowC(i,j,bi,bj).AND.k.GE.kSurfC(i,j,bi,bj) + kIn = k.LE.klowC(i,j,bi,bj).AND.k.GE.kSurfC(i,j,bi,bj) + IF ( kIn .AND. rhoLoc(i,j).GE.rhoMxL(i,j) ) THEN IF ( rhoLoc(i,j).GT.rhoKm1(i,j) ) THEN tmpFac = ( rhoMxL(i,j) - rhoKm1(i,j) ) & / ( rhoLoc(i,j) - rhoKm1(i,j) ) ELSE tmpFac = 0. ENDIF - hMixLayer(i,j,bi,bj) = rF(1)-rC(k-1)+tmpFac*drC(k) +C- Note: sign is more related to kDir than it is to gravity orientation +c hMixLayer(i,j,bi,bj) = ( rF(kTop)-rC(k-kDir) )*kDir + hMixLayer(i,j,bi,bj) = -gravitySign*( rF(kTop)-rC(k-kDir) ) + & + tmpFac*drC(k+deltaK) rhoMxL(i,j) = rhoBigNb ELSE rhoKm1(i,j) = rhoLoc(i,j) @@ -137,43 +164,51 @@ SUBROUTINE CALC_OCE_MXLAYER( c hMixCriteria = 1.5 _d 0 c dRhoSmall = 1. _d -2 - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - IF ( klowC(i,j,bi,bj) .GT. 0 ) THEN - hMixLayer(i,j,bi,bj) = drF(1) - rhoMxL(i,j) = 1. - ELSE - hMixLayer(i,j,bi,bj) = rF(1) - rhoMxL(i,j) = -1. - ENDIF + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( klowC(i,j,bi,bj) .GT. 0 ) THEN + hMixLayer(i,j,bi,bj) = drF(kSrf) + rhoMxL(i,j) = 1. + ELSE + hMixLayer(i,j,bi,bj) = rF(kTop) + rhoMxL(i,j) = -1. + ENDIF ENDDO ENDDO - DO k = 2,Nr-1 +C- Z-coord: (kU,kL,kDir) = (2,Nr-1,1) ; P-coord: (kU,kL,kDir)= (Nr-1,2,-1) + kU = 2 + deltaK*(Nr-3) + kL = Nr-1 - deltaK*(Nr-3) + DO k = kU,kL,kDir C- potential density (reference level = surface level) CALL FIND_RHO_2D( - I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, + I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, kSrf, I theta(1-OLx,1-OLy,k,bi,bj), salt(1-OLx,1-OLy,k,bi,bj), O rhoLoc, I k, bi, bj, myThid ) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - IF ( k.LT.klowC(i,j,bi,bj) - & .AND. rhoMxL(i,j).GE.0. ) THEN + kup = k+deltaK + klw = kup+kDir + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + kIn = k.LT.klowC(i,j,bi,bj).AND.k.GT.kSurfC(i,j,bi,bj) + IF ( kIn .AND. rhoMxL(i,j).GE.0. ) THEN sigmAv = ( rhoLoc(i,j)-rhoSurf(i,j)+dRhoSmall ) - & / ( rC(1)-rC(k) ) - IF ( -sigmaR(i,j,k+1).GT.sigmAv*hMixCriteria ) THEN + & / ( rC(k)-rC(kSrf) ) * gravitySign + IF ( gravitySign * sigmaR(i,j,klw) + & .GT.sigmAv*hMixCriteria ) THEN tmpFac = 0. _d 0 IF ( sigmAv.GT.0. _d 0 ) THEN - tmpFac = hMixCriteria*sigmaR(i,j,k)/sigmaR(i,j,k+1) + tmpFac = hMixCriteria*sigmaR(i,j,kup)/sigmaR(i,j,klw) IF ( tmpFac .GT. 1. _d 0 ) THEN tmpFac = 1. _d 0 & + ( tmpFac - 1. _d 0 )/( hMixCriteria - 1. _d 0 ) ENDIF tmpFac = MAX( 0. _d 0, MIN( tmpFac, 2. _d 0 ) ) ENDIF - hMixLayer(i,j,bi,bj) = rF(1)-rF(k+1) - & - drF(k)*tmpFac*0.5 _d 0 +C- Note: sign is more related to kDir than it is to gravity orientation + hMixLayer(i,j,bi,bj) = -gravitySign * + & ( rF(kTop)-rF(klw) ) + & - drF(k)*tmpFac*0.5 _d 0 rhoMxL(i,j) = -1. ENDIF ENDIF @@ -187,8 +222,8 @@ SUBROUTINE CALC_OCE_MXLAYER( IF ( hMixSmooth .GT. 0. _d 0 ) THEN tmpFac = (1. _d 0 - hMixSmooth ) / 4. _d 0 - DO j=1-Oly+1,sNy+Oly-1 - DO i=1-Olx+1,sNx+Olx-1 + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 rhoLoc(i,j)=(hMixSmooth * hMixLayer(i,j,bi,bj) + & tmpFac * ( hMixLayer(i-1,j,bi,bj) + & hMixLayer(i+1,j,bi,bj) + @@ -196,15 +231,15 @@ SUBROUTINE CALC_OCE_MXLAYER( & hMixLayer(i,j+1,bi,bj) ) & ) & /(hMixSmooth + - & tmpFac * ( maskC(i-1,j,1,bi,bj) + - & maskC(i+1,j,1,bi,bj) + - & maskC(i,j-1,1,bi,bj) + - & maskC(i,j+1,1,bi,bj) ) - & ) * maskC(i,j,1,bi,bj) + & tmpFac * ( maskC(i-1,j,kSrf,bi,bj) + + & maskC(i+1,j,kSrf,bi,bj) + + & maskC(i,j-1,kSrf,bi,bj) + + & maskC(i,j+1,kSrf,bi,bj) ) + & ) * maskC(i,j,kSrf,bi,bj) ENDDO ENDDO - DO j=1-Oly+1,sNy+Oly-1 - DO i=1-Olx+1,sNx+Olx-1 + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 hMixLayer(i,j,bi,bj) = rhoLoc(i,j) ENDDO ENDDO diff --git a/model/src/calc_phi_hyd.F b/model/src/calc_phi_hyd.F index 031c960751..64b0b519b8 100644 --- a/model/src/calc_phi_hyd.F +++ b/model/src/calc_phi_hyd.F @@ -39,10 +39,9 @@ SUBROUTINE CALC_PHI_HYD( #include "GRID.h" #include "EEPARAMS.h" #include "PARAMS.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ #include "SURFACE.h" #include "DYNVARS.h" @@ -87,6 +86,11 @@ SUBROUTINE CALC_PHI_HYD( _RL surfPhiFac LOGICAL useDiagPhiRlow, addSurfPhiAnom LOGICAL useFVgradPhi +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C kkey :: tape key (level and tile dependent) + INTEGER tkey, kkey +#endif CEOP useDiagPhiRlow = .TRUE. addSurfPhiAnom = select_rStar.EQ.0 .AND. nonlinFreeSurf.GE.4 @@ -107,20 +111,7 @@ SUBROUTINE CALC_PHI_HYD( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - - act3 = myThid - 1 - max3 = nTx*nTy - - act4 = ikey_dynamics - 1 - - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C-- Initialize phiHydF to zero : @@ -146,7 +137,7 @@ SUBROUTINE CALC_PHI_HYD( IF ( implicitIntGravWave .OR. myIter.LT.0 ) THEN C--- Calculate density #ifdef ALLOW_AUTODIFF_TAMC - kkey = (ikey-1)*Nr + k + kkey = k + (tkey-1)*Nr CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, CADJ & kind = isbyte CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, @@ -189,8 +180,10 @@ SUBROUTINE CALC_PHI_HYD( #ifdef ALLOW_MOM_COMMON C-- Quasi-hydrostatic terms are added in as if they modify the buoyancy - IF (quasiHydrostatic) THEN - CALL MOM_QUASIHYDROSTATIC(bi,bj,k,uVel,vVel,alphaRho,myThid) + IF ( quasiHydrostatic ) THEN + CALL MOM_QUASIHYDROSTATIC( bi, bj, k, uVel, vVel, + U alphaRho, + I myTime, myIter, myThid ) ENDIF #endif /* ALLOW_MOM_COMMON */ @@ -308,7 +301,7 @@ SUBROUTINE CALC_PHI_HYD( IF ( implicitIntGravWave .OR. myIter.LT.0 ) THEN C-- Calculate density #ifdef ALLOW_AUTODIFF_TAMC - kkey = (ikey-1)*Nr + k + kkey = k + (tkey-1)*Nr CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, CADJ & kind = isbyte CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, @@ -343,8 +336,10 @@ SUBROUTINE CALC_PHI_HYD( #ifdef ALLOW_MOM_COMMON C-- Quasi-hydrostatic terms are added as if they modify the specific-volume - IF (quasiHydrostatic) THEN - CALL MOM_QUASIHYDROSTATIC(bi,bj,k,uVel,vVel,alphaRho,myThid) + IF ( quasiHydrostatic ) THEN + CALL MOM_QUASIHYDROSTATIC( bi, bj, k, uVel, vVel, + U alphaRho, + I myTime, myIter, myThid ) ENDIF #endif /* ALLOW_MOM_COMMON */ @@ -449,8 +444,10 @@ SUBROUTINE CALC_PHI_HYD( #ifdef ALLOW_MOM_COMMON C-- Quasi-hydrostatic terms are added in as if they modify the Pot.Temp - IF (quasiHydrostatic) THEN - CALL MOM_QUASIHYDROSTATIC(bi,bj,k,uVel,vVel,alphaRho,myThid) + IF ( quasiHydrostatic ) THEN + CALL MOM_QUASIHYDROSTATIC( bi, bj, k, uVel, vVel, + U alphaRho, + I myTime, myIter, myThid ) ENDIF #endif /* ALLOW_MOM_COMMON */ diff --git a/model/src/calc_surf_dr.F b/model/src/calc_surf_dr.F index 592a0f9443..228e301c1d 100644 --- a/model/src/calc_surf_dr.F +++ b/model/src/calc_surf_dr.F @@ -46,7 +46,8 @@ SUBROUTINE CALC_SURF_DR( etaFld, C numbWrite :: count the Number of warning written on STD-ERR file C numbWrMax :: maximum Number of warning written on STD-ERR file INTEGER i,j,bi,bj - INTEGER ks, numbWrite, numbWrMax + INTEGER ks, nTmp + INTEGER numbWrite, numbWrMax _RL hFactmp, adjust_nb_pt, adjust_volum _RL rSurftmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS hhm, hhp @@ -202,9 +203,11 @@ SUBROUTINE CALC_SURF_DR( etaFld, IF ( adjust_nb_pt.GE.1. ) THEN _GLOBAL_SUM_RL( adjust_volum , myThid ) _BEGIN_MASTER( myThid ) +C just to avoid issue with OpenAD: copy to integer nTmp before printing + nTmp = NINT(adjust_nb_pt) WRITE(standardMessageUnit,'(2(A,I10),1PE16.8)') & ' SURF_ADJUSTMENT: Iter=', myIter, - & ' Nb_pts,Vol=', nint(adjust_nb_pt), adjust_volum + & ' Nb_pts,Vol=', nTmp, adjust_volum _END_MASTER( myThid ) ENDIF diff --git a/model/src/cg2d.F b/model/src/cg2d.F index d2abac0d36..608bb751ef 100644 --- a/model/src/cg2d.F +++ b/model/src/cg2d.F @@ -16,28 +16,17 @@ SUBROUTINE CG2D( U numIters, nIterMin, I myThid ) C !DESCRIPTION: \bv -C *==========================================================* +C *================================================================* C | SUBROUTINE CG2D -C | o Two-dimensional grid problem conjugate-gradient -C | inverter (with preconditioner). -C *==========================================================* +C | o Two-dimensional grid problem conjugate-gradient inverter +C | (with preconditioner). +C *================================================================* C | Con. grad is an iterative procedure for solving Ax = b. C | It requires the A be symmetric. -C | This implementation assumes A is a five-diagonal -C | matrix of the form that arises in the discrete -C | representation of the del^2 operator in a -C | two-dimensional space. -C | Notes: -C | ====== -C | This implementation can support shared-memory -C | multi-threaded execution. In order to do this COMMON -C | blocks are used for many of the arrays - even ones that -C | are only used for intermedaite results. This design is -C | OK if you want to all the threads to collaborate on -C | solving the same problem. On the other hand if you want -C | the threads to solve several different problems -C | concurrently this implementation will not work. -C *==========================================================* +C | This implementation assumes A is a five-diagonal matrix +C | of the form that arises in the discrete representation of +C | the del^2 operator in a two-dimensional space. +C *================================================================* C \ev C !USES: @@ -49,7 +38,6 @@ SUBROUTINE CG2D( #include "CG2D.h" C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C cg2d_b :: The source term or "right hand side" (output: normalised RHS) C cg2d_x :: The solution (input: first guess) C firstResidual :: the initial residual before any iterations @@ -70,7 +58,6 @@ SUBROUTINE CG2D( INTEGER myThid C !LOCAL VARIABLES: -C === Local variables ==== C bi, bj :: tile index in X and Y. C i, j, it2d :: Loop counters ( it2d counts CG iterations ) C actualIts :: actual CG iteration number @@ -84,6 +71,10 @@ SUBROUTINE CG2D( C sumRHS needs to be ~0 or it converge at a non-zero residual. C cg2d_min :: used to store solution corresponding to lowest residual. C msgBuf :: Informational/error message buffer +C-- local working array (used to be in CG2D.h common block: +C cg2d_q :: Intermediate matrix-vector product term +C cg2d_r :: *same* +C cg2d_s :: *same* INTEGER bi, bj INTEGER i, j, it2d INTEGER actualIts @@ -97,6 +88,9 @@ SUBROUTINE CG2D( _RL rhsMax _RL rhsNorm _RL cg2d_min(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_q (1:sNx,1:sNy,nSx,nSy) + _RL cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy) + _RL cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy) #ifdef CG2D_SINGLECPU_SUM _RL localBuf(1:sNx,1:sNy,nSx,nSy) #endif @@ -146,18 +140,21 @@ SUBROUTINE CG2D( C-- Initial residual calculation DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) +C- Initialise local working arrays: + DO j=0,sNy+1 + DO i=0,sNx+1 + cg2d_r(i,j,bi,bj) = 0. _d 0 + cg2d_s(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO IF ( nIterMin.GE.0 ) THEN +C- Initialise saved solution DO j=1,sNy DO i=1,sNx - cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) + cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) ENDDO ENDDO ENDIF - DO j=0,sNy+1 - DO i=0,sNx+1 - cg2d_s(i,j,bi,bj) = 0. - ENDDO - ENDDO sumRHStile(bi,bj) = 0. _d 0 errTile(bi,bj) = 0. _d 0 #ifdef TARGET_NEC_SX @@ -177,8 +174,8 @@ SUBROUTINE CG2D( #else errTile(bi,bj) = errTile(bi,bj) & + cg2d_r(i,j,bi,bj)*cg2d_r(i,j,bi,bj) - sumRHStile(bi,bj) = sumRHStile(bi,bj) + cg2d_b(i,j,bi,bj) #endif + sumRHStile(bi,bj) = sumRHStile(bi,bj) + cg2d_b(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -186,11 +183,10 @@ SUBROUTINE CG2D( CALL EXCH_S3D_RL( cg2d_r, 1, myThid ) #ifdef CG2D_SINGLECPU_SUM CALL GLOBAL_SUM_SINGLECPU_RL(localBuf, err_sq, 0, 0, myThid) - CALL GLOBAL_SUM_SINGLECPU_RL(cg2d_b, sumRHS, OLx, OLy, myThid) #else CALL GLOBAL_SUM_TILE_RL( errTile, err_sq, myThid ) - CALL GLOBAL_SUM_TILE_RL( sumRHStile, sumRHS, myThid ) #endif + CALL GLOBAL_SUM_TILE_RL( sumRHStile, sumRHS, myThid ) actualIts = 0 firstResidual = SQRT(err_sq) IF ( nIterMin.GE.0 ) THEN diff --git a/model/src/cg2d_ex0.F b/model/src/cg2d_ex0.F index 406fbbda2f..4683f09c26 100644 --- a/model/src/cg2d_ex0.F +++ b/model/src/cg2d_ex0.F @@ -16,20 +16,20 @@ SUBROUTINE CG2D_EX0( U numIters, nIterMin, I myThid ) C !DESCRIPTION: \bv -C *==========================================================* +C *================================================================* C | SUBROUTINE CG2D_EX0 -C | o Two-dimensional grid problem conjugate-gradient -C | inverter (with preconditioner). +C | o Two-dimensional grid problem conjugate-gradient inverter +C | (with preconditioner). C | This is the disconnected-tile version (each tile treated C | independently as a small domain, with locally periodic C | BC at the edges. -C *==========================================================* +C *================================================================* C | Con. grad is an iterative procedure for solving Ax = b. C | It requires the A be symmetric. C | This implementation assumes A is a five-diagonal matrix C | of the form that arises in the discrete representation of C | the del^2 operator in a two-dimensional space. -C *==========================================================* +C *================================================================* C \ev C !USES: @@ -41,7 +41,6 @@ SUBROUTINE CG2D_EX0( #include "CG2D.h" C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C cg2d_b :: The source term or "right hand side" (output: normalised RHS) C cg2d_x :: The solution (input: first guess) C firstResidual :: the initial residual before any iterations @@ -62,7 +61,6 @@ SUBROUTINE CG2D_EX0( INTEGER myThid C !LOCAL VARIABLES: -C === Local variables ==== C bi, bj :: tile index in X and Y. C i, j, it2d :: Loop counters ( it2d counts CG iterations ) C actualIts :: actual CG iteration number @@ -76,6 +74,10 @@ SUBROUTINE CG2D_EX0( C sumRHS needs to be ~0 or it converge at a non-zero residual. C cg2d_min :: used to store solution corresponding to lowest residual. C msgBuf :: Informational/error message buffer +C-- local working array (used to be in CG2D.h common block: +C cg2d_q :: Intermediate matrix-vector product term +C cg2d_r :: *same* +C cg2d_s :: *same* INTEGER bi, bj INTEGER i, j, it2d INTEGER actualIts(nSx,nSy) @@ -91,6 +93,9 @@ SUBROUTINE CG2D_EX0( _RL rhsNorm(nSx,nSy) _RL minResTile(nSx,nSy) _RL cg2d_min(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_q (1:sNx,1:sNy,nSx,nSy) + _RL cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy) + _RL cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy) CHARACTER*(MAX_LEN_MBUF) msgBuf LOGICAL printResidual CEOP @@ -138,18 +143,21 @@ SUBROUTINE CG2D_EX0( sumRHS = 0. DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) +C- Initialise local working arrays: + DO j=0,sNy+1 + DO i=0,sNx+1 + cg2d_r(i,j,bi,bj) = 0. _d 0 + cg2d_s(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO IF ( nIterMin.GE.0 ) THEN +C- Initialise saved solution DO j=1,sNy DO i=1,sNx - cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) + cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) ENDDO ENDDO ENDIF - DO j=0,sNy+1 - DO i=0,sNx+1 - cg2d_s(i,j,bi,bj) = 0. - ENDDO - ENDDO sumRHStile(bi,bj) = 0. _d 0 errTile(bi,bj) = 0. _d 0 #ifdef TARGET_NEC_SX diff --git a/model/src/cg2d_nsa.F b/model/src/cg2d_nsa.F index 25b906b269..e0fc60d039 100644 --- a/model/src/cg2d_nsa.F +++ b/model/src/cg2d_nsa.F @@ -3,6 +3,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CML THIS DOES NOT WORK +++++ #undef ALLOW_LOOP_DIRECTIVE @@ -15,32 +18,20 @@ SUBROUTINE CG2D_NSA( U numIters, nIterMin, I myThid ) C !DESCRIPTION: \bv -C *==========================================================* +C *================================================================* C | SUBROUTINE CG2D_NSA -C | o Two-dimensional grid problem conjugate-gradient -C | inverter (with preconditioner). +C | o Two-dimensional grid problem conjugate-gradient inverter +C | (with preconditioner). C | o This version is used only in the case when the matrix -C | operator is not "self-adjoint" (NSA). Any remaining -C | residuals will immediately reported to the department -C | of homeland security. -C *==========================================================* +C | operator is Not "Self-Adjoint" (NSA). Any remaining residuals +C | will be immediately reported to the National Security Agency +C *================================================================* C | Con. grad is an iterative procedure for solving Ax = b. C | It requires the A be symmetric. -C | This implementation assumes A is a five-diagonal -C | matrix of the form that arises in the discrete -C | representation of the del^2 operator in a -C | two-dimensional space. -C | Notes: -C | ====== -C | This implementation can support shared-memory -C | multi-threaded execution. In order to do this COMMON -C | blocks are used for many of the arrays - even ones that -C | are only used for intermedaite results. This design is -C | OK if you want to all the threads to collaborate on -C | solving the same problem. On the other hand if you want -C | the threads to solve several different problems -C | concurrently this implementation will not work. -C *==========================================================* +C | This implementation assumes A is a five-diagonal matrix +C | of the form that arises in the discrete representation of +C | the del^2 operator in a two-dimensional space. +C *================================================================* C \ev C !USES: @@ -50,13 +41,11 @@ SUBROUTINE CG2D_NSA( #include "EEPARAMS.h" #include "PARAMS.h" #include "CG2D.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C cg2d_b :: The source term or "right hand side" (Output: normalised RHS) C cg2d_x :: The solution (Input: first guess) C firstResidual :: the initial residual before any iterations @@ -66,7 +55,7 @@ SUBROUTINE CG2D_NSA( C Out: the actual number of iterations used C nIterMin :: Inp: decide to store (if >=0) or not (if <0) lowest res. sol. C Out: iteration number corresponding to lowest residual -C myThid :: Thread on which I am working. +C myThid :: my Thread Id number _RL cg2d_b(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL cg2d_x(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL firstResidual @@ -78,7 +67,6 @@ SUBROUTINE CG2D_NSA( #ifdef ALLOW_CG2D_NSA C !LOCAL VARIABLES: -C === Local variables ==== C bi, bj :: tile index in X and Y. C i, j, it2d :: Loop counters ( it2d counts CG iterations ) C actualIts :: actual CG iteration number @@ -92,11 +80,23 @@ SUBROUTINE CG2D_NSA( C sumRHS :: Sum of right-hand-side. Sometimes this is a useful C debugging/trouble shooting diagnostic. For neumann problems C sumRHS needs to be ~0 or it converge at a non-zero residual. -C cg2d_min :: used to store solution corresponding to lowest residual. C msgBuf :: Informational/error message buffer +C-- local working array (used to be in CG2D.h common block: +C cg2d_q :: Intermediate matrix-vector product term +C cg2d_r :: *same* +C cg2d_s :: *same* +C cg2d_z :: Intermediate matrix-vector product term +C :: reduces the number of recomputation in adjoint mode +C :: this field is superfluous if your cg2d is self-adjoint. INTEGER bi, bj INTEGER i, j, it2d INTEGER actualIts +#ifdef ALLOW_AUTODIFF_TAMC +C ikey :: tape key (depends on iteration it2d) + INTEGER ikey +#else + _RL rhsNorm +#endif _RL cg2dTolerance_sq _RL err_sq, errTile(nSx,nSy) _RL eta_qrN, eta_qrNtile(nSx,nSy) @@ -104,9 +104,15 @@ SUBROUTINE CG2D_NSA( _RL cgBeta, alpha _RL alphaSum,alphaTile(nSx,nSy) _RL sumRHS, sumRHStile(nSx,nSy) - _RL rhsMax, rhsNorm + _RL rhsMax CHARACTER*(MAX_LEN_MBUF) msgBuf LOGICAL printResidual + _RL cg2d_z(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_q(1:sNx,1:sNy,nSx,nSy) +C Fields cg2d_r and ct2d_s are exchanged and since there are no AD-exchanges +C for fields with smaller overlap, they are defined with full overlap size + _RL cg2d_r(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL cg2d_s(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CEOP #ifdef ALLOW_AUTODIFF_TAMC @@ -126,13 +132,6 @@ SUBROUTINE CG2D_NSA( ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ -#ifdef ALLOW_AUTODIFF_TAMC - act1 = myThid - 1 - max1 = nTx*nTy - act2 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 -#endif /* ALLOW_AUTODIFF_TAMC */ - C-- Initialise auxiliary constant, some output variable and inverter cg2dTolerance_sq = cg2dTolerance*cg2dTolerance minResidualSq = -1. _d 0 @@ -177,18 +176,26 @@ SUBROUTINE CG2D_NSA( C-- Initial residual calculation #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE cg2d_b = comlev1_cg2d, key = ikey, byte = isbyte -CADJ STORE cg2d_x = comlev1_cg2d, key = ikey, byte = isbyte +CADJ STORE cg2d_b = comlev1_cg2d, key = ikey_dynamics, byte = isbyte +CADJ STORE cg2d_x = comlev1_cg2d, key = ikey_dynamics, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - errTile(bi,bj) = 0. _d 0 - sumRHStile(bi,bj) = 0. _d 0 - DO j=0,sNy+1 - DO i=0,sNx+1 - cg2d_s(i,j,bi,bj) = 0. +C- Initialise local working arrays: + DO j=1,sNy + DO i=1,sNx + cg2d_q(i,j,bi,bj) = 0. _d 0 + cg2d_z(i,j,bi,bj) = 0. _d 0 ENDDO ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + cg2d_r(i,j,bi,bj) = 0. _d 0 + cg2d_s(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + errTile(bi,bj) = 0. _d 0 + sumRHStile(bi,bj) = 0. _d 0 DO j=1,sNy DO i=1,sNx cg2d_r(i,j,bi,bj) = cg2d_b(i,j,bi,bj) - @@ -222,7 +229,7 @@ SUBROUTINE CG2D_NSA( _BEGIN_MASTER( myThid ) printResidual = printResidualFreq.GE.1 WRITE(standardmessageunit,'(A,1P2E22.14)') - & ' cg2d: Sum(rhs),rhsMax = ', sumRHS,rhsMax + & ' cg2d_nsa: Sum(rhs),rhsMax = ', sumRHS,rhsMax _END_MASTER( myThid ) ENDIF @@ -239,16 +246,17 @@ SUBROUTINE CG2D_NSA( #endif /* ALLOW_LOOP_DIRECTIVE */ #ifdef ALLOW_AUTODIFF_TAMC - icg2dkey = (ikey-1)*numItersMax + it2d -CADJ STORE err_sq = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte + ikey = it2d + (ikey_dynamics-1)*numItersMax +CADJ STORE err_sq = comlev1_cg2d_iter, key = ikey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - IF ( err_sq .GE. cg2dTolerance_sq ) THEN + IF ( it2d .LE. cg2dMinItersNSA .OR. + & err_sq .GE. cg2dTolerance_sq ) THEN C-- Solve preconditioning equation and update C-- conjugate direction vector "s". #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE cg2d_r = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte -CADJ STORE cg2d_s = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte +CADJ STORE cg2d_r = comlev1_cg2d_iter, key = ikey, byte = isbyte +CADJ STORE cg2d_s = comlev1_cg2d_iter, key = ikey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -270,15 +278,16 @@ SUBROUTINE CG2D_NSA( CALL GLOBAL_SUM_TILE_RL( eta_qrNtile,eta_qrN,myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE eta_qrNM1 = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte -CADJ STORE recip_eta_qrNM1 = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte +CMLCADJ STORE eta_qrNM1 = comlev1_cg2d_iter, key = ikey, byte = isbyte +CADJ STORE recip_eta_qrNM1 = comlev1_cg2d_iter, key=ikey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CML cgBeta = eta_qrN/eta_qrNM1 cgBeta = eta_qrN*recip_eta_qrNM1 Cml store normalisation factor for the next interation (in case there is one). CML store the inverse of the normalization factor for higher precision CML eta_qrNM1 = eta_qrN - recip_eta_qrNM1 = 1. _d 0/eta_qrN + recip_eta_qrNM1 = 0. _d 0 + IF ( eta_qrN .NE. 0. _d 0 ) recip_eta_qrNM1 = 1. _d 0/eta_qrN DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -300,7 +309,7 @@ SUBROUTINE CG2D_NSA( C== q = A.s #ifdef ALLOW_AUTODIFF_TAMC #ifndef ALLOW_LOOP_DIRECTIVE -CADJ STORE cg2d_s = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte +CADJ STORE cg2d_s = comlev1_cg2d_iter, key = ikey, byte = isbyte #endif /* not ALLOW_LOOP_DIRECTIVE */ #endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) @@ -321,13 +330,14 @@ SUBROUTINE CG2D_NSA( ENDDO ENDDO CALL GLOBAL_SUM_TILE_RL( alphaTile, alphaSum, myThid ) - alpha = eta_qrN/alphaSum + alpha = 0. _d 0 + IF ( alphaSum .NE. 0 _d 0 ) alpha = eta_qrN/alphaSum C== Update simultaneously solution and residual vectors (and Iter number) C Now compute "interior" points. #ifdef ALLOW_AUTODIFF_TAMC #ifndef ALLOW_LOOP_DIRECTIVE -CADJ STORE cg2d_r = comlev1_cg2d_iter, key = icg2dkey, byte = isbyte +CADJ STORE cg2d_r = comlev1_cg2d_iter, key = ikey, byte = isbyte #endif /* ALLOW_LOOP_DIRECTIVE */ #endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) @@ -349,7 +359,7 @@ SUBROUTINE CG2D_NSA( IF ( printResidual ) THEN IF ( MOD( it2d-1, printResidualFreq ).EQ.0 ) THEN WRITE(msgBuf,'(A,I6,A,1PE21.14)') - & ' cg2d: iter=', it2d, ' ; resid.= ', SQRT(err_sq) + & ' cg2d_nsa: iter=', it2d, ' ; resid.= ', SQRT(err_sq) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) ENDIF @@ -394,69 +404,69 @@ SUBROUTINE CG2D_NSA( C These routines are routinely part of the TAMC/TAF library that is C not included in the MITcgm, therefore they are mimicked here. - subroutine adstore(chardum,int1,idow,int2,int3,icount) + SUBROUTINE ADSTORE(chardum,int1,idow,int2,int3,icount) - implicit none + IMPLICIT NONE #include "SIZE.h" #include "tamc.h" - character*(*) chardum - integer int1, int2, int3, idow, icount + CHARACTER*(*) chardum + INTEGER int1, int2, int3, idow, icount C the length of this vector must be greater or equal C twice the number of timesteps - integer nidow + INTEGER nidow #ifdef ALLOW_TAMC_CHECKPOINTING - parameter ( nidow = 2*nchklev_1*nchklev_2*nchklev_3 ) + PARAMETER ( nidow = 2*nchklev_1*nchklev_2*nchklev_3 ) #else - parameter ( nidow = 1000000 ) + PARAMETER ( nidow = 1000000 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ - integer istoreidow(nidow) - common /istorecommon/ istoreidow + INTEGER istoreidow(nidow) + COMMON /istorecommon/ istoreidow - print *, 'adstore: ', chardum, int1, idow, int2, int3, icount + PRINT *, 'ADSTORE: ', chardum, int1, idow, int2, int3, icount - if ( icount .gt. nidow ) then - print *, 'adstore: error: icount > nidow = ', nidow - stop 'ABNORMAL STOP in adstore' - endif + IF ( icount .GT. nidow ) THEN + PRINT *, 'adstore: error: icount > nidow = ', nidow + STOP 'ABNORMAL STOP in ADSTORE' + ENDIF istoreidow(icount) = idow - return - end + RETURN + END - subroutine adresto(chardum,int1,idow,int2,int3,icount) + SUBROUTINE ADRESTO(chardum,int1,idow,int2,int3,icount) - implicit none + IMPLICIT NONE #include "SIZE.h" #include "tamc.h" - character*(*) chardum - integer int1, int2, int3, idow, icount + CHARACTER*(*) chardum + INTEGER int1, int2, int3, idow, icount C the length of this vector must be greater or equal C twice the number of timesteps - integer nidow + INTEGER nidow #ifdef ALLOW_TAMC_CHECKPOINTING - parameter ( nidow = 2*nchklev_1*nchklev_2*nchklev_3 ) + PARAMETER ( nidow = 2*nchklev_1*nchklev_2*nchklev_3 ) #else - parameter ( nidow = 1000000 ) + PARAMETER ( nidow = 1000000 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ - integer istoreidow(nidow) - common /istorecommon/ istoreidow + INTEGER istoreidow(nidow) + COMMON /istorecommon/ istoreidow - print *, 'adresto: ', chardum, int1, idow, int2, int3, icount + PRINT *, 'ADRESTO: ', chardum, int1, idow, int2, int3, icount - if ( icount .gt. nidow ) then - print *, 'adstore: error: icount > nidow = ', nidow - stop 'ABNORMAL STOP in adstore' - endif + IF ( icount .GT. nidow ) THEN + PRINT *, 'ADRESTO: error: icount > nidow = ', nidow + STOP 'ABNORMAL STOP in ADRESTO' + ENDIF idow = istoreidow(icount) - return - end + RETURN + END #endif /* ALLOW_AUTODIFF_TAMC and ALLOW_LOOP_DIRECTIVE */ diff --git a/model/src/cg2d_sr.F b/model/src/cg2d_sr.F index 6a40469553..e6a5cb13b9 100644 --- a/model/src/cg2d_sr.F +++ b/model/src/cg2d_sr.F @@ -16,32 +16,21 @@ SUBROUTINE CG2D_SR( U numIters, nIterMin, I myThid ) C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE CG2D -C | o Two-dimensional grid problem conjugate-gradient -C | inverter (with preconditioner). -C *==========================================================* +C *================================================================* +C | SUBROUTINE CG2D_SR +C | o Two-dimensional grid problem conjugate-gradient inverter +C | (with preconditioner). +C | o This version used the more efficient (with less global +C | communications) "Single Reduction" (SR) implementation from +C | d Azevedo, Eijkhout, and Romine (Lapack Working Note 56, 1999) +C | Author: C. Wolfe, November 2009, clwolfe@ucsd.edu +C *================================================================* C | Con. grad is an iterative procedure for solving Ax = b. C | It requires the A be symmetric. -C | This implementation assumes A is a five-diagonal -C | matrix of the form that arises in the discrete -C | representation of the del^2 operator in a -C | two-dimensional space. -C | Notes: -C | ====== -C | This implementation can support shared-memory -C | multi-threaded execution. In order to do this COMMON -C | blocks are used for many of the arrays - even ones that -C | are only used for intermedaite results. This design is -C | OK if you want to all the threads to collaborate on -C | solving the same problem. On the other hand if you want -C | the threads to solve several different problems -C | concurrently this implementation will not work. -C | -C | This version implements the single-reduction CG algorithm of -C | d Azevedo, Eijkhout, and Romine (Lapack Working Note 56, 1999). -C | C. Wolfe, November 2009, clwolfe@ucsd.edu -C *==========================================================* +C | This implementation assumes A is a five-diagonal matrix +C | of the form that arises in the discrete representation of +C | the del^2 operator in a two-dimensional space. +C *================================================================* C \ev C !USES: @@ -53,7 +42,6 @@ SUBROUTINE CG2D_SR( #include "CG2D.h" C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C cg2d_b :: The source term or "right hand side" (output: normalised RHS) C cg2d_x :: The solution (input: first guess) C firstResidual :: the initial residual before any iterations @@ -74,9 +62,12 @@ SUBROUTINE CG2D_SR( INTEGER myThid #ifdef ALLOW_SRCG +C-- Local variables in COMMON block (shared by all threads) +C sumPhi :: needed to call global_vec_sum_r8 when mutli-threaded + _RL sumPhi(3,nSx,nSy) + COMMON /CG2D_SR_LOCAL/ sumPhi C !LOCAL VARIABLES: -C === Local variables ==== C bi, bj :: tile index in X and Y. C i, j, it2d :: Loop counters ( it2d counts CG iterations ) C actualIts :: actual CG iteration number @@ -90,6 +81,12 @@ SUBROUTINE CG2D_SR( C sumRHS needs to be ~0 or it converge at a non-zero residual. C cg2d_min :: used to store solution corresponding to lowest residual. C msgBuf :: Informational/error message buffer +C-- local working array (used to be in CG2D.h common block: +C cg2d_y :: residual scaled by preconditioner +C cg2d_v :: z times the operator +C cg2d_q :: Intermediate matrix-vector product term +C cg2d_r :: *same* +C cg2d_s :: *same* INTEGER bi, bj INTEGER i, j, it2d c INTEGER actualIts @@ -105,6 +102,11 @@ SUBROUTINE CG2D_SR( _RL rhsMax _RL rhsNorm _RL cg2d_min(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_v(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_q(1:sNx,1:sNy,nSx,nSy) + _RL cg2d_y(1-1:sNx+1,1-1:sNy+1,nSx,nSy) + _RL cg2d_r(1-1:sNx+1,1-1:sNy+1,nSx,nSy) + _RL cg2d_s(1-1:sNx+1,1-1:sNy+1,nSx,nSy) CHARACTER*(MAX_LEN_MBUF) msgBuf LOGICAL printResidual CEOP @@ -151,18 +153,28 @@ SUBROUTINE CG2D_SR( C-- Initial residual calculation DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) +C- Initialise local working arrays: + DO j=1,sNy + DO i=1,sNx + cg2d_v(i,j,bi,bj) = 0. _d 0 + cg2d_q(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + DO j=0,sNy+1 + DO i=0,sNx+1 + cg2d_y(i,j,bi,bj) = 0. _d 0 + cg2d_r(i,j,bi,bj) = 0. _d 0 + cg2d_s(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO IF ( nIterMin.GE.0 ) THEN +C- Initialise saved solution DO j=1,sNy DO i=1,sNx - cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) + cg2d_min(i,j,bi,bj) = cg2d_x(i,j,bi,bj) ENDDO ENDDO ENDIF - DO j=0,sNy+1 - DO i=0,sNx+1 - cg2d_s(i,j,bi,bj) = 0. - ENDDO - ENDDO sumRHStile(bi,bj) = 0. _d 0 errTile(bi,bj) = 0. _d 0 #ifdef TARGET_NEC_SX diff --git a/model/src/check_pickup.F b/model/src/check_pickup.F index 19221f52fe..1d8bbff217 100644 --- a/model/src/check_pickup.F +++ b/model/src/check_pickup.F @@ -139,6 +139,12 @@ SUBROUTINE CHECK_PICKUP( & 'restart with AddMass == 0' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) ENDIF + ELSEIF ( missFldList(j).EQ.'SmagDiff' ) THEN + IF ( .NOT.pickupStrictlyMatch ) THEN + WRITE(msgBuf,'(4A)') '** WARNING ** CHECK_PICKUP: ', + & 'restart with zero Smag-3D Diffusivity for first time-step' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + ENDIF ELSEIF ( missFldList(j).EQ.'FricHeat' ) THEN IF ( .NOT.pickupStrictlyMatch ) THEN WRITE(msgBuf,'(4A)') '** WARNING ** CHECK_PICKUP: ', @@ -159,6 +165,7 @@ SUBROUTINE CHECK_PICKUP( C- fields needed for restart (alternative not presently implemented) ELSEIF ( missFldList(j).EQ.'PhiHyd ' .OR. + & missFldList(j).EQ.'Phi_rLow' .OR. & missFldList(j).EQ.'AddMass ' .OR. & missFldList(j).EQ.'dEtaHdt ' .OR. & missFldList(j).EQ.'EtaH ' ) THEN @@ -191,6 +198,10 @@ SUBROUTINE CHECK_PICKUP( nHydStartAB = 0 ELSEIF ( missFldList(j).EQ.'GwNm2 ' ) THEN nHydStartAB = MIN( nHydStartAB, 1 ) + ELSEIF ( missFldList(j).EQ.'QH_GwNm1' ) THEN + qHydStartAB = 0 + ELSEIF ( missFldList(j).EQ.'QH_GwNm2' ) THEN + qHydStartAB = MIN( qHydStartAB, 1 ) ELSE C- not recognized fields: @@ -226,6 +237,11 @@ SUBROUTINE CHECK_PICKUP( & ' ; saltStartAB =', saltStartAB CALL PRINT_MESSAGE(msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) ENDIF + IF ( qHydStartAB.LT.nIter0 ) THEN + WRITE(msgBuf,'(2(A,I10))') + & ' Continue with qHydStartAB =', qHydStartAB + CALL PRINT_MESSAGE(msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + ENDIF ENDIF ENDIF diff --git a/model/src/config_check.F b/model/src/config_check.F index b50c447f06..81192f1fbb 100644 --- a/model/src/config_check.F +++ b/model/src/config_check.F @@ -3,6 +3,9 @@ #ifdef ALLOW_MOM_COMMON # include "MOM_COMMON_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: CONFIG_CHECK @@ -55,6 +58,30 @@ SUBROUTINE CONFIG_CHECK( myThid ) C- check that CPP option is "defined" when running-flag parameter is on: +#ifndef INCLUDE_CONVECT_CALL +C o Check that Convective-adjustment code is compiled If cAdjFreq <> 0 + IF ( cAdjFreq .NE. 0. ) THEN +#ifdef INCLUDE_CONVECT_INI_CALL + WRITE(msgBuf,'(2A)') '** Warning ** CONFIG_CHECK: ', + & 'Convective-Adjustment (cAdjFreq) turned off (except INI)' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** Warning ** CONFIG_CHECK: ', + & ' without "#define INCLUDE_CONVECT_CALL" in CPP_OPTIONS.h' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) +#else + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', + & 'Cannot use Convective-Adjustment (cAdjFreq) without' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', + & ' defining INCLUDE_CONVECT_(CALL/INI_CALL) in CPP_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif + ENDIF +#endif /* ndef INCLUDE_CONVECT_CALL */ + C o If diffKrFile is set, then we should make sure the corresponing C code is being compiled #ifndef ALLOW_3D_DIFFKR @@ -119,6 +146,17 @@ SUBROUTINE CONFIG_CHECK( myThid ) errCount = errCount + 1 ENDIF #endif +#ifndef ALLOW_SMAG_3D_DIFFUSIVITY + IF ( smag3D_diffCoeff.NE.zeroRL ) THEN + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', + & 'Cannot use smag3D_diffCoeff > 0 when compiled with' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', + & '"#undef ALLOW_SMAG_3D_DIFFUSIVITY" in CPP_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif #ifndef ALLOW_NONHYDROSTATIC IF (use3Dsolver) THEN @@ -134,6 +172,18 @@ SUBROUTINE CONFIG_CHECK( myThid ) ENDIF #endif +#ifndef ALLOW_QHYD_STAGGER_TS + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', + & 'Cannot use quasiHydrostatic with staggerTimeStep' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: when compiled ', + & 'with "#undef ALLOW_QHYD_STAGGER_TS" in CPP_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif + #ifndef ALLOW_ADAMSBASHFORTH_3 IF ( alph_AB.NE.UNSET_RL .OR. beta_AB.NE.UNSET_RL ) THEN WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: ', @@ -397,8 +447,15 @@ SUBROUTINE CONFIG_CHECK( myThid ) ENDIF #endif -#ifndef ALLOW_BALANCE_FLUXES - IF (balanceEmPmR .OR. balanceQnet) THEN +#ifdef ALLOW_BALANCE_FLUXES + IF ( selectBalanceEmPmR.LT.0 .OR. selectBalanceEmPmR.GT.2 ) THEN + WRITE(msgBuf,'(2A,I6,A)') 'CONFIG_CHECK: ', + & 'selectBalanceEmPmR=', selectBalanceEmPmR,' : invalid value' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#else /* ALLOW_BALANCE_FLUXES */ + IF ( selectBalanceEmPmR.NE.0 .OR. balanceQnet ) THEN WRITE(msgBuf,'(A,A)') & 'CONFIG_CHECK: balanceEmPmR/Qnet is set but balance code ', & 'is not compiled.' @@ -408,7 +465,7 @@ SUBROUTINE CONFIG_CHECK( myThid ) CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF -#endif +#endif /* ALLOW_BALANCE_FLUXES */ #ifndef ALLOW_BALANCE_RELAX IF (balanceThetaClimRelax .OR. balanceSaltClimRelax) THEN @@ -423,6 +480,19 @@ SUBROUTINE CONFIG_CHECK( myThid ) ENDIF #endif +#ifndef ALLOW_CG2D_NSA + IF (useNSACGSolver) THEN + WRITE(msgBuf,'(A,A)') + & 'CONFIG_CHECK: useNSACGSolver = .TRUE., but CG2D_NSA ', + & 'code is not compiled.' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'CONFIG_CHECK: Re-compile with ALLOW_CG2D_NSA defined' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif /* ALLOW_CG2D_NSA */ + #ifndef ALLOW_SRCG IF (useSRCGSolver) THEN WRITE(msgBuf,'(A,A)') @@ -436,10 +506,40 @@ SUBROUTINE CONFIG_CHECK( myThid ) ENDIF #endif /* ALLOW_SRCG */ +#ifndef ALLOW_BOTTOMDRAG_ROUGHNESS + IF (zRoughBot .GT. 0.) THEN + WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: zRoughBot > 0.', + & ' but bottom drag code for roughness length is not compiled' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CONFIG_CHECK: Re-compile with', + & ' #define ALLOW_BOTTOMDRAG_ROUGHNESS (MOM_COMMON_OPTIONS.h)' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif /* ALLOW_BOTTOMDRAG_ROUGHNESS */ + + IF ( useNSACGSolver .AND. useSRCGSolver ) THEN + WRITE(msgBuf,'(A,A)') + & 'CONFIG_CHECK: both useNSACGSolver and ', + & 'useSRCGSolver = .TRUE., this is not allowed.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Check parameter consistency : + IF ( ( OLx.LT.2 .OR. OLy.LT.2 ) .AND. momStepping ) THEN +C- Current algorithm (solve_for_pressure, RHS) prevents to use +C momAdvection or viscAh > 0 with OLx,y=1 ; it should still allow us +C to use OLx,y=1 when momAdvection=F and viscAh=0 but some loop range +C in few momentum S/R are not carefully set to support this. + WRITE(msgBuf,'(A,A)') 'CONFIG_CHECK: Cannot use momStepping', + & ' with overlap (OLx,OLy) smaller than 2' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF IF ( ( OLx.LT.3 .OR. OLy.LT.3 ) .AND. & ( viscC4leithD.NE.0. .OR. viscC4leith.NE.0. & .OR. viscC4smag.NE.0. .OR. viscA4Grid.NE.0. diff --git a/model/src/config_summary.F b/model/src/config_summary.F index 456f111a87..071cf9b9f1 100644 --- a/model/src/config_summary.F +++ b/model/src/config_summary.F @@ -112,7 +112,11 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) CALL WRITE_1D_RL( tRef, Nr, INDEX_K, 'tRef =', & ' /* Reference temperature profile ( oC or K ) */') CALL WRITE_1D_RL( sRef, Nr, INDEX_K, 'sRef =', - & ' /* Reference salinity profile ( psu ) */') + & ' /* Reference salinity profile ( g/kg ) */') + CALL WRITE_1D_RL( rhoRef, Nr, INDEX_K, 'rhoRef =', + & ' /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */') + CALL WRITE_1D_RL( dBdrRef, Nr, INDEX_K, 'dBdrRef =', + & ' /* Vertical grad. of reference buoyancy [(m/s/r)^2] */') C- Horizontal viscosity parameters: #ifdef ALLOW_MOM_COMMON CALL WRITE_0D_L( useStrainTensionVisc, INDEX_NONE, @@ -129,6 +133,10 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) IF ( useSmag3D ) & CALL WRITE_0D_RL( smag3D_coeff, INDEX_NONE, 'smag3D_coeff =', & ' /* Smagorinsky 3-D coefficient (Cs^2) (-) */') + IF ( smag3D_diffCoeff.GT.zeroRL ) + & CALL WRITE_0D_RL( smag3D_diffCoeff, INDEX_NONE, + & 'smag3D_diffCoeff =', + & ' /* Smagorinsky 3-D diffusion coefficient (-) */') CALL WRITE_0D_RL( viscAh, INDEX_NONE, 'viscAh = ', & ' /* Lateral harmonic viscosity ( m^2/s ) */') IF ( viscAhD.NE.viscAh ) @@ -200,6 +208,10 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) CALL WRITE_0D_RL( bottomDragQuadratic, INDEX_NONE, & 'bottomDragQuadratic =', & ' /* quadratic bottom-drag coefficient (-) */') +# ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + CALL WRITE_0D_RL( zRoughBot, INDEX_NONE, 'zRoughBot =', + & ' /* roughness length for bottom friction (m) */') +# endif CALL WRITE_0D_I( selectBotDragQuadr, INDEX_NONE, & 'selectBotDragQuadr =', & ' /* select quadratic bottom drag options */') @@ -250,7 +262,7 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) CALL WRITE_0D_RL( tAlpha, INDEX_NONE,'tAlpha =', & ' /* Linear EOS thermal expansion coefficient ( 1/oC ) */') CALL WRITE_0D_RL( sBeta, INDEX_NONE,'sBeta =', - & ' /* Linear EOS haline contraction coefficient ( 1/psu ) */') + & ' /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */') CALL WRITE_0D_RL( rhoNil, INDEX_NONE, 'rhoNil =', & ' /* Reference density for Linear EOS ( kg/m^3 ) */') ELSEIF ( eosType .EQ. 'POLY3 ' ) THEN @@ -344,26 +356,28 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) &' /* Implicit free surface factor */') CALL WRITE_0D_RL( implicSurfPress, INDEX_NONE, & 'implicSurfPress =', - & ' /* Surface Pressure implicit factor (0-1)*/') + & ' /* Surface Pressure implicit factor (0-1) */') CALL WRITE_0D_RL( implicDiv2DFlow, INDEX_NONE, & 'implicDiv2DFlow =', - & ' /* Barot. Flow Div. implicit factor (0-1)*/') + & ' /* Barot. Flow Div. implicit factor (0-1) */') CALL WRITE_0D_L( uniformLin_PhiSurf, INDEX_NONE, & 'uniformLin_PhiSurf =', - & ' /* use uniform Bo_surf on/off flag*/') + & ' /* use uniform Bo_surf on/off flag */') CALL WRITE_0D_L( uniformFreeSurfLev, INDEX_NONE, & 'uniformFreeSurfLev =', - & ' /* free-surface level-index is uniform */') + & ' /* free-surface level-index is uniform */') + CALL WRITE_0D_RL( sIceLoadFac, INDEX_NONE, 'sIceLoadFac =', + & ' /* scale factor for sIceLoad (0-1) */') CALL WRITE_0D_RL( hFacMin, INDEX_NONE, 'hFacMin = ', & ' /* minimum partial cell factor (hFac) */') CALL WRITE_0D_RL( hFacMinDr, INDEX_NONE, 'hFacMinDr =', & ' /* minimum partial cell thickness ('//rUnits//') */') CALL WRITE_0D_L( exactConserv, INDEX_NONE, & 'exactConserv =', - & ' /* Exact Volume Conservation on/off flag*/') + & ' /* Exact Volume Conservation on/off flag */') CALL WRITE_0D_L( linFSConserveTr, INDEX_NONE, & 'linFSConserveTr =', - & ' /* Tracer correction for Lin Free Surface on/off flag*/') + & ' /* Tracer correction for Lin Free Surface on/off flag */') WRITE(msgBuf,'(2A)') 'nonlinFreeSurf =', & ' /* Non-linear Free Surf. options (-1,0,1,2,3)*/' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) @@ -389,7 +403,7 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) & ' /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/') CALL WRITE_0D_RL( salt_EvPrRn, INDEX_NONE, & 'salt_EvPrRn =', - & ' /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/') + & ' /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/') CALL WRITE_0D_I( selectAddFluid, INDEX_NONE, & 'selectAddFluid =', & ' /* option for mass source/sink of fluid (=0: off) */') @@ -398,12 +412,12 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) & ' /* Temp. of addMass array (UNSET=use local T)(oC)*/') CALL WRITE_0D_RL( salt_addMass, INDEX_NONE, & 'salt_addMass =', - & ' /* Salin. of addMass array (UNSET=use local S)(psu)*/') + & ' /* Salin. of addMass array (UNSET=use local S)(g/kg)*/') IF ( .NOT.useRealFreshWaterFlux .OR. selectAddFluid.EQ.-1 & .OR. nonlinFreeSurf.LE.0 ) THEN CALL WRITE_0D_RL( convertFW2Salt, INDEX_NONE, & 'convertFW2Salt =', - & ' /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/') + & ' /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/') ENDIF CALL WRITE_0D_L( use3Dsolver, INDEX_NONE, @@ -594,8 +608,9 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) CALL WRITE_0D_L( saltForcing, INDEX_NONE, & 'saltForcing =', ' /* Salinity forcing on/off flag */') #ifdef ALLOW_BALANCE_FLUXES - CALL WRITE_0D_L( balanceEmPmR, INDEX_NONE, 'balanceEmPmR =', - & ' /* balance net fresh-water flux on/off flag */') + CALL WRITE_0D_I( selectBalanceEmPmR, INDEX_NONE, + & 'selectBalanceEmPmR =', + & ' /* balancing glob.mean EmPmR selector */' ) #endif CALL WRITE_0D_L( doSaltClimRelax, INDEX_NONE, & 'doSaltClimRelax =', ' /* apply SSS relaxation on/off flag */') @@ -612,8 +627,8 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) & ' /* Precision used for writing binary files */') #ifdef ALLOW_BALANCE_FLUXES CALL WRITE_0D_L( balancePrintMean, INDEX_NONE, - & 'balancePrintMean =', - & ' /* print means for balancing fluxes */') + & 'balancePrintMean =', + & ' /* print means for balancing fluxes */') #endif C--- c CALL WRITE_0D_I(rwSuffixType, INDEX_NONE, 'rwSuffixType =', @@ -675,8 +690,8 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) CALL WRITE_0D_I( cg2dMaxIters, INDEX_NONE,'cg2dMaxIters =', &' /* Upper limit on 2d con. grad iterations */') - CALL WRITE_0D_I( cg2dChkResFreq, INDEX_NONE,'cg2dChkResFreq =', - &' /* 2d con. grad convergence test frequency */') + CALL WRITE_0D_I( cg2dMinItersNSA, INDEX_NONE,'cg2dMinItersNSA =', + &' /* Minimum number of iterations of 2d con. grad solver */') CALL WRITE_0D_I( cg2dUseMinResSol, INDEX_NONE, & 'cg2dUseMinResSol=', & ' /* use cg2d last-iter(=0) / min-resid.(=1) solution */') @@ -690,6 +705,8 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) &' /* Freq. for updating cg2d preconditioner */') CALL WRITE_0D_L( useSRCGSolver, INDEX_NONE, & 'useSRCGSolver =', ' /* use single reduction CG solver(s) */') + CALL WRITE_0D_L( useNSACGSolver, INDEX_NONE, + & 'useNSACGSolver =', ' /* use not-self-adjoint CG solver */') CALL WRITE_0D_I( printResidualFreq, INDEX_NONE, & 'printResidualFreq =', ' /* Freq. for printing CG residual */') @@ -928,12 +945,16 @@ SUBROUTINE CONFIG_SUMMARY( myThid ) & ' /* deep-model grid factor @ cell-Center (-) */') CALL WRITE_1D_RL( deepFacF, Nr+1, INDEX_K, 'deepFacF = ', & ' /* deep-model grid factor @ W-Interface (-) */') - CALL WRITE_1D_RL(rVel2wUnit,Nr+1, INDEX_K,'rVel2wUnit =', - & ' /* convert units: rVel -> wSpeed (=1 if z-coord)*/') - CALL WRITE_1D_RL(wUnit2rVel,Nr+1, INDEX_K,'wUnit2rVel =', - & ' /* convert units: wSpeed -> rVel (=1 if z-coord)*/') - CALL WRITE_1D_RL( dBdrRef, Nr, INDEX_K, 'dBdrRef =', - & ' /* Vertical grad. of reference buoyancy [(m/s/r)^2] */') + IF ( usingPCoords ) THEN + CALL WRITE_1D_RL( rVel2wUnit, Nr+1, INDEX_K, 'rVel2wUnit =', + & ' /* convert units: rVel [Pa/s] -> wSpeed [m/s] */') + CALL WRITE_1D_RL( wUnit2rVel, Nr+1, INDEX_K, 'wUnit2rVel =', + & ' /* convert units: wSpeed [m/s] -> rVel [Pa/s] */') + CALL WRITE_1D_RL( rUnit2z, Nr, INDEX_K, 'rUnit2z =', + & ' /* convert units (@ center): dr [Pa] -> dz [m] */') + CALL WRITE_1D_RL( z2rUnit, Nr, INDEX_K, 'z2rUnit =', + & ' /* convert units (@ center): dz [m] -> dr [Pa] */') + ENDIF CALL WRITE_0D_L( rotateGrid, INDEX_NONE, & 'rotateGrid =',' /* use rotated grid ( True/False ) */') CALL WRITE_0D_RL( phiEuler, INDEX_NONE,'phiEuler =', diff --git a/model/src/convective_adjustment.F b/model/src/convective_adjustment.F index 09bb80b90d..66a978604e 100644 --- a/model/src/convective_adjustment.F +++ b/model/src/convective_adjustment.F @@ -27,10 +27,9 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT( #ifdef ALLOW_TIMEAVE #include "TIMEAVE_STATV.h" #endif -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == @@ -52,11 +51,14 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT( C !LOCAL VARIABLES: C == Local variables == C iMin,iMax,jMin,jMax :: computation domain -C i,j,K :: Loop counters +C i,j,k :: Loop counters C rhoKm1, rhoK :: Density at adjacent levels (common ref. level) C ConvectCount :: Convection mixing freq. counter. INTEGER iMin,iMax,jMin,jMax - INTEGER i, j, K, kTop, kBottom, kDir, deltaK + INTEGER i, j, k, kTop, kBottom, kDir, deltaK +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER tkey, kkey +#endif _RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL ConvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -69,10 +71,6 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT( & ) THEN C-- Define computation domain -c iMin = 1 -c iMax = sNx -c jMin = 1 -c jMax = sNy iMin=1-OLx iMax=sNx+OLx jMin=1-OLy @@ -85,137 +83,106 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT( deltaK = 0 C- Initialisation of Convection Counter - DO K=1,Nr + DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - ConvectCount(i,j,K) = 0. + ConvectCount(i,j,k) = 0. ENDDO ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ - IF ( rkSign*gravitySign .GT. 0. ) THEN + IF ( rkSign*gravitySign .GT. 0. ) THEN C- <=> usingZCoords: - kTop = 2 - kBottom = Nr - kDir = 1 - deltaK = -1 - ELSE + kTop = 2 + kBottom = Nr + kDir = 1 + deltaK = -1 + ELSE C- <=> usingPCoords: - kTop = Nr - kBottom = 2 - kDir = -1 - deltaK = 0 - ENDIF - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte, -CADJ & kind = isbyte -CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte, -CADJ & kind = isbyte -CADJ STORE convectcount(:,:,:) = comlev1_bibj, key=ikey, byte=isbyte, -CADJ & kind = isbyte -#endif + kTop = Nr + kBottom = 2 + kDir = -1 + deltaK = 0 + ENDIF C-- Loop over all *interior* layers - DO K=kTop,kBottom,kDir + DO k=kTop,kBottom,kDir #ifdef ALLOW_AUTODIFF_TAMC - kkey = (ikey-1)*Nr + k -CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k,key=kkey,byte=isbyte, -CADJ & kind = isbyte -CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k,key=kkey,byte=isbyte, -CADJ & kind = isbyte -CADJ STORE convectcount(:,:,k-1) = comlev1_bibj_k,key=kkey,byte=isbyte, -CADJ & kind = isbyte + kkey = k + (tkey-1)*Nr +C It is important that the two k-levels of these fields are stored +C in one statement because otherwise taf will only store one, which +C is wrong (i.e. was wrong in previous versions). +CADJ STORE theta(:,:,k-1,bi,bj), theta(:,:,k,bi,bj) = +CADJ & comlev1_bibj_k, key = kkey, kind = isbyte +CADJ STORE salt(:,:,k-1,bi,bj), salt(:,:,k,bi,bj) = +CADJ & comlev1_bibj_k, key = kkey, kind = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -C- Density of K-1 layer (above W(K)) reference to K-1 T-level - CALL FIND_RHO_2D( - I iMin, iMax, jMin, jMax, K+deltaK, - I theta(1-OLx,1-OLy,K-1,bi,bj), - I salt (1-OLx,1-OLy,K-1,bi,bj), - O rhoKm1, - I K-1, bi, bj, myThid ) - -C- Density of K layer (below W(K)) reference to K-1 T-level. +C- Density of k-1 layer (above W(k)) reference to k-1 T-level + CALL FIND_RHO_2D( + I iMin, iMax, jMin, jMax, k+deltaK, + I theta(1-OLx,1-OLy,k-1,bi,bj), + I salt (1-OLx,1-OLy,k-1,bi,bj), + O rhoKm1, + I k-1, bi, bj, myThid ) + +C- Density of k layer (below W(k)) reference to k-1 T-level. + CALL FIND_RHO_2D( + I iMin, iMax, jMin, jMax, k+deltaK, + I theta(1-OLx,1-OLy,k,bi,bj), + I salt (1-OLx,1-OLy,k,bi,bj), + O rhoK, + I k, bi, bj, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, -CADJ & kind = isbyte -CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte, -CADJ & kind = isbyte +CADJ STORE rhoKm1 = comlev1_bibj_k, key = kkey, kind = isbyte +CADJ STORE rhoK = comlev1_bibj_k, key = kkey, kind = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - CALL FIND_RHO_2D( - I iMin, iMax, jMin, jMax, K+deltaK, - I theta(1-OLx,1-OLy,K,bi,bj), - I salt (1-OLx,1-OLy,K,bi,bj), - O rhoK, - I K, bi, bj, myThid ) -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE rhoKm1(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte, -CADJ & kind = isbyte -CADJ STORE rhoK (:,:) = comlev1_bibj_k, key = kkey, byte = isbyte, -CADJ & kind = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ -C- Check static stability with layer below and mix as needed. -c CALL CONVECT( -c I bi,bj,iMin,iMax,jMin,jMax,K,rhoKm1,rhoK, -c U ConvectCount, -c I myTime,myIter,myThid) - -C- Pre-calculate mixing weights for interface K - CALL CONVECTIVE_WEIGHTS( - I bi,bj,K,rhoKm1,rhoK, - O weightA,weightB,ConvectCount, - I myThid) - -C- Convectively mix heat across interface K - CALL CONVECTIVELY_MIXTRACER( - I bi,bj,k,weightA,weightB, - U theta, - I myThid) - -C- Convectively mix salt across interface K - CALL CONVECTIVELY_MIXTRACER( - I bi,bj,k,weightA,weightB, - U salt, - I myThid) +C- Pre-calculate mixing weights for interface k + CALL CONVECTIVE_WEIGHTS( + I bi,bj,k,rhoKm1,rhoK, + O weightA,weightB,ConvectCount, + I myThid) + +C- Convectively mix heat across interface k + CALL CONVECTIVELY_MIXTRACER( + I bi,bj,k,weightA,weightB, + U theta, + I myThid) + +C- Convectively mix salt across interface k + CALL CONVECTIVELY_MIXTRACER( + I bi,bj,k,weightA,weightB, + U salt, + I myThid) #ifdef ALLOW_PTRACERS -C- Convectively mix passive tracers across interface K - IF ( usePTRACERS ) THEN - CALL PTRACERS_CONVECT( - I bi,bj,k,weightA,weightB,myThid) - ENDIF +C- Convectively mix passive tracers across interface k + IF ( usePTRACERS ) THEN + CALL PTRACERS_CONVECT( + I bi,bj,k,weightA,weightB,myThid) + ENDIF #endif /* ALLOW_PTRACERS */ -C-- End DO K=1,Nr - ENDDO +C-- End DO k=1,Nr + ENDDO #ifdef ALLOW_TIMEAVE - IF (myIter.NE.nIter0 .AND. taveFreq.GT.0.) THEN - CALL TIMEAVE_CUMUL_1T(ConvectCountTave, ConvectCount, - I Nr, deltaTClock, bi, bj, myThid) - ENDIF + IF (myIter.NE.nIter0 .AND. taveFreq.GT.0.) THEN + CALL TIMEAVE_CUMUL_1T(ConvectCountTave, ConvectCount, + I Nr, deltaTClock, bi, bj, myThid) + ENDIF #endif /* ALLOW_TIMEAVE */ #ifdef ALLOW_DIAGNOSTICS - IF ( myIter.NE.nIter0 .AND. useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL( ConvectCount, 'CONVADJ ', - I 0, Nr, 2, bi, bj, myThid ) - ENDIF + IF ( myIter.NE.nIter0 .AND. useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL( ConvectCount, 'CONVADJ ', + I 0, Nr, 2, bi, bj, myThid ) + ENDIF #endif /* ALLOW_DIAGNOSTICS */ C-- End IF (DIFFERENT_MULTIPLE) diff --git a/model/src/convective_adjustment_ini.F b/model/src/convective_adjustment_ini.F index d4c35a9628..4bef40fa9f 100644 --- a/model/src/convective_adjustment_ini.F +++ b/model/src/convective_adjustment_ini.F @@ -28,39 +28,43 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT_INI( #include "PARAMS.h" #include "DYNVARS.h" #include "GRID.h" -#ifdef ALLOW_TIMEAVE -#include "TIMEAVE_STATV.h" -#endif -#ifdef ALLOW_AUTODIFF -#include "tamc.h" -#include "tamc_keys.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +# endif +#endif /* ALLOW_TAPENADE */ + C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C bi,bj :: tile indices C myTime :: Current time in simulation C myIter :: Current iteration in simulation -C myThid :: Thread number of this instance of S/R CONVECT +C myThid :: My Thread Id number INTEGER bi,bj _RL myTime INTEGER myIter INTEGER myThid -#ifdef INCLUDE_CONVECT_CALL +#ifdef INCLUDE_CONVECT_INI_CALL C !FUNCTIONS: - EXTERNAL DIFFERENT_MULTIPLE - LOGICAL DIFFERENT_MULTIPLE +c EXTERNAL DIFFERENT_MULTIPLE +c LOGICAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -C == Local variables == C iMin,iMax,jMin,jMax :: computation domain C i,j,k :: Loop counters -C rhoKm1, rhoK :: Density at adjacent levels (ref. to same level) -C ConvectCount :: Convection freq. counter +C rhoKm1, rhoK :: Density at adjacent levels (common ref. level) +C ConvectCount :: Convection mixing freq. counter. INTEGER iMin,iMax,jMin,jMax - INTEGER i, j, K, kTop, kBottom, kDir, deltaK + INTEGER i, j, k, kTop, kBottom, kDir, deltaK +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER tkey, kkey +#endif _RL rhoKm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rhoK (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL ConvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -69,8 +73,8 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT_INI( CEOP C-- Check to see if should convect now - IF ( DIFFERENT_MULTIPLE(cAdjFreq,myTime,deltaTClock) - & ) THEN +c IF ( DIFFERENT_MULTIPLE(cAdjFreq,myTime,deltaTClock) +c & ) THEN C-- Define computation domain iMin=1-OLx @@ -85,7 +89,7 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT_INI( deltaK = 0 C- Initialisation of Convection Counter - DO K=1,Nr + DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx ConvectCount(i,j,k) = 0. @@ -94,118 +98,89 @@ SUBROUTINE CONVECTIVE_ADJUSTMENT_INI( ENDDO #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = 0 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx #endif /* ALLOW_AUTODIFF_TAMC */ - IF ( rkSign*gravitySign .GT. 0. ) THEN + IF ( rkSign*gravitySign .GT. 0. ) THEN C- <=> usingZCoords: - kTop = 2 - kBottom = Nr - kDir = 1 - deltaK = -1 - ELSE + kTop = 2 + kBottom = Nr + kDir = 1 + deltaK = -1 + ELSE C- <=> usingPCoords: - kTop = Nr - kBottom = 2 - kDir = -1 - deltaK = 0 - ENDIF - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE theta(:,:,:,bi,bj) = tapelev_ini_bibj, -CADJ & key=ikey, byte=isbyte -CADJ STORE salt (:,:,:,bi,bj) = tapelev_ini_bibj, -CADJ & key=ikey, byte=isbyte -CADJ STORE convectcount(:,:,:) = tapelev_ini_bibj, -CADJ & key=ikey, byte=isbyte -#endif + kTop = Nr + kBottom = 2 + kDir = -1 + deltaK = 0 + ENDIF C-- Loop over all *interior* layers - DO K=kTop,kBottom,kDir + DO k=kTop,kBottom,kDir #ifdef ALLOW_AUTODIFF_TAMC - kkey = (ikey-1)*Nr + k -CADJ STORE theta(:,:,k-1,bi,bj) = tapelev_ini_bibj_k, -CADJ & key=kkey, byte=isbyte -CADJ STORE salt (:,:,k-1,bi,bj) = tapelev_ini_bibj_k, -CADJ & key=kkey, byte=isbyte -CADJ STORE convectcount(:,:,k-1) = tapelev_ini_bibj_k, -CADJ & key=kkey, byte=isbyte + kkey = k + (tkey-1)*Nr +C It is important that the two k-levels of these fields are stored +C in one statement because otherwise taf will only store one, which +C is wrong (i.e. was wrong in previous versions). +CADJ STORE theta(:,:,k-1,bi,bj), theta(:,:,k,bi,bj) = +CADJ & tapelev_ini_bibj_k, key=kkey, kind=isbyte +CADJ STORE salt(:,:,k-1,bi,bj), salt(:,:,k,bi,bj) = +CADJ & tapelev_ini_bibj_k, key=kkey, kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -C- Density of K-1 layer (above W(K)) reference to K-1 T-level - CALL FIND_RHO_2D( - I iMin, iMax, jMin, jMax, K+deltaK, - I theta(1-OLx,1-OLy,K-1,bi,bj), - I salt (1-OLx,1-OLy,K-1,bi,bj), +C- Density of k-1 layer (above W(k)) reference to k-1 T-level + CALL FIND_RHO_2D( + I iMin, iMax, jMin, jMax, k+deltaK, + I theta(1-OLx,1-OLy,k-1,bi,bj), + I salt (1-OLx,1-OLy,k-1,bi,bj), O rhoKm1, - I K-1, bi, bj, myThid ) + I k-1, bi, bj, myThid ) -C- Density of K layer (below W(K)) reference to K-1 T-level. -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE theta(:,:,k,bi,bj) = tapelev_ini_bibj_k, -CADJ & key = kkey, byte = isbyte -CADJ STORE salt (:,:,k,bi,bj) = tapelev_ini_bibj_k, -CADJ & key = kkey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ - CALL FIND_RHO_2D( - I iMin, iMax, jMin, jMax, K+deltaK, - I theta(1-OLx,1-OLy,K,bi,bj), - I salt (1-OLx,1-OLy,K,bi,bj), +C- Density of k layer (below W(k)) reference to k-1 T-level. + CALL FIND_RHO_2D( + I iMin, iMax, jMin, jMax, k+deltaK, + I theta(1-OLx,1-OLy,k,bi,bj), + I salt (1-OLx,1-OLy,k,bi,bj), O rhoK, - I K, bi, bj, myThid ) - + I k, bi, bj, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE rhoKm1(:,:) = tapelev_ini_bibj_k, key=kkey, byte=isbyte -CADJ STORE rhoK (:,:) = tapelev_ini_bibj_k, key=kkey, byte=isbyte +CADJ STORE rhoKm1 = tapelev_ini_bibj_k, key=kkey, kind=isbyte +CADJ STORE rhoK = tapelev_ini_bibj_k, key=kkey, kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -C- Check static stability with layer below and mix as needed. -c CALL CONVECT( -c I bi,bj,iMin,iMax,jMin,jMax,K,rhoKm1,rhoK, -c U ConvectCount, -c I myTime,myIter,myThid) - -C- Pre-calculate mixing weights for interface K - CALL CONVECTIVE_WEIGHTS( - I bi,bj,K,rhoKm1,rhoK, + +C- Pre-calculate mixing weights for interface k + CALL CONVECTIVE_WEIGHTS( + I bi,bj,k,rhoKm1,rhoK, O weightA,weightB,ConvectCount, I myThid) -C- Convectively mix heat across interface K - CALL CONVECTIVELY_MIXTRACER( - I bi,bj,k,weightA,weightB, - U theta, - I myThid) +C- Convectively mix heat across interface k + CALL CONVECTIVELY_MIXTRACER( + I bi,bj,k,weightA,weightB, + U theta, + I myThid) -C- Convectively mix salt across interface K - CALL CONVECTIVELY_MIXTRACER( - I bi,bj,k,weightA,weightB, - U salt, - I myThid) +C- Convectively mix salt across interface k + CALL CONVECTIVELY_MIXTRACER( + I bi,bj,k,weightA,weightB, + U salt, + I myThid) #ifdef ALLOW_PTRACERS -C- Convectively mix passive tracers across interface K - IF ( usePTRACERS ) THEN - CALL PTRACERS_CONVECT( - I bi,bj,k,weightA,weightB,myThid) - ENDIF +C- Convectively mix passive tracers across interface k + IF ( usePTRACERS ) THEN + CALL PTRACERS_CONVECT( + I bi,bj,k,weightA,weightB,myThid) + ENDIF #endif /* ALLOW_PTRACERS */ -C-- End DO K=1,Nr - ENDDO +C-- End DO k=1,Nr + ENDDO C-- End IF (DIFFERENT_MULTIPLE) - ENDIF +c ENDIF -#endif /* INCLUDE_CONVECT_CALL */ +#endif /* INCLUDE_CONVECT_INI_CALL */ RETURN END diff --git a/model/src/convective_weights.F b/model/src/convective_weights.F index ab003bbcc5..7d08857a18 100644 --- a/model/src/convective_weights.F +++ b/model/src/convective_weights.F @@ -43,7 +43,7 @@ SUBROUTINE CONVECTIVE_WEIGHTS( _RL convectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER myThid -#ifdef INCLUDE_CONVECT_CALL +#if (defined INCLUDE_CONVECT_CALL || defined INCLUDE_CONVECT_INI_CALL) C !LOCAL VARIABLES: C i,j :: Loop counter @@ -74,7 +74,7 @@ SUBROUTINE CONVECTIVE_WEIGHTS( ENDDO ENDDO -#endif /* INCLUDE_CONVECT_CALL */ +#endif /* INCLUDE_CONVECT_CALL or INCLUDE_CONVECT_INI_CALL */ RETURN END diff --git a/model/src/convectively_mixtracer.F b/model/src/convectively_mixtracer.F index 3cf1efbdea..072ea92b84 100644 --- a/model/src/convectively_mixtracer.F +++ b/model/src/convectively_mixtracer.F @@ -31,7 +31,7 @@ SUBROUTINE CONVECTIVELY_MIXTRACER( _RL Tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER myThid -#ifdef INCLUDE_CONVECT_CALL +#if (defined INCLUDE_CONVECT_CALL || defined INCLUDE_CONVECT_INI_CALL) C !LOCAL VARIABLES: C i,j :: Loop counter @@ -52,7 +52,7 @@ SUBROUTINE CONVECTIVELY_MIXTRACER( ENDDO ENDDO -#endif /* INCLUDE_CONVECT_CALL */ +#endif /* INCLUDE_CONVECT_CALL or INCLUDE_CONVECT_INI_CALL */ RETURN END diff --git a/model/src/diags_oceanic_surf_flux.F b/model/src/diags_oceanic_surf_flux.F index 74d1094d54..aa4f96d020 100644 --- a/model/src/diags_oceanic_surf_flux.F +++ b/model/src/diags_oceanic_surf_flux.F @@ -60,7 +60,7 @@ SUBROUTINE DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid ) CALL DIAGNOSTICS_SCALE_FILL_RS( EmPmR,tmpFac,1, & 'oceFWflx',0, 1,0,1,1,myThid ) -C- net Salt flux into the ocean (+=down), [psu.kg/m2/s ~ g/m2/s] +C- net Salt flux into the ocean (+=down), [g/m2/s] tmpFac = -1. _d 0 CALL DIAGNOSTICS_SCALE_FILL_RS( saltFlux,tmpFac,1, & 'oceSflux',0, 1,0,1,1,myThid ) diff --git a/model/src/diags_sound_speed.F b/model/src/diags_sound_speed.F new file mode 100644 index 0000000000..5fa75a3151 --- /dev/null +++ b/model/src/diags_sound_speed.F @@ -0,0 +1,138 @@ +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +CBOP +C !ROUTINE: DIAGS_SOUND_SPEED +C !INTERFACE: + SUBROUTINE DIAGS_SOUND_SPEED( + I myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | S/R DIAGS_SOUND_SPEED +C | o Diagnose speed of sound in seawater +C | from the algorithm by Del Grasso (1974). +C | This is NOT the sound-speed that can be derived from +C | the equation of state (EOS). It is independent of +C | the model setup specific EOS. +C | +C | o Reference: +C | V. A. Del Grosso, "New equation for the speed of sound in +C | natural waters (with comparisons to other equations)," +C | J. Acoust. Soc. Am. 56, 1084-1091 (1974). +C *==========================================================* +C \ev +C !USES: + IMPLICIT NONE +C == Global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "SURFACE.h" +#include "DYNVARS.h" +#include "EOS.h" + +C !INPUT/OUTPUT PARAMETERS: +C == Routine Arguments == +C myThid :: Thread number for this instance of the routine. + INTEGER myThid + +#ifdef INCLUDE_SOUNDSPEED_CALC_CODE +C !FUNCTIONS: + _RL SW_TEMP + EXTERNAL SW_TEMP +#ifdef ALLOW_DIAGNOSTICS + LOGICAL DIAGNOSTICS_IS_ON + EXTERNAL DIAGNOSTICS_IS_ON +#endif /* ALLOW_DIAGNOSTICS */ + +C !LOCAL VARIABLES: +C == Local variables == + INTEGER bi,bj + INTEGER i,j,k + _RL c0,ct,cs,cp,cstp + _RL pres,sal,temp + LOGICAL calc_soundSpeed +CEOP + + calc_soundSpeed = .FALSE. + +C-- switch on this flag if Sound-Speed needed in any cost fct +c#ifdef ALLOW_CSOUND_COST +c calc_soundSpeed = .TRUE. +c#endif + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + calc_soundSpeed = calc_soundSpeed + & .OR. DIAGNOSTICS_IS_ON( 'CSound ', myThid ) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + + IF ( calc_soundSpeed ) THEN + c0 = 1402.392 _d 0 + ct = 0. _d 0 + cs = 0. _d 0 + cp = 0. _d 0 + cstp = 0. _d 0 + pres = 0. _d 0 + sal = 0. _d 0 + temp = 0. _d 0 + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1,sNy + DO i=1,sNx + cSound(i,j,k,bi,bj) = 0.0 _d 0 + ENDDO + ENDDO + ENDDO + DO k=1,Nr + DO j=1,sNy + DO i=1,sNx + IF ( maskC(i,j,k,bi,bj).EQ.oneRS ) THEN +C pressure in dbar (for SW_TEMP) + pres = rhoConst*( totPhiHyd(i,j,k,bi,bj) + & - rC(k)*gravity )*SItodBar + temp = SW_TEMP( SALT(i,j,k,bi,bj), + & THETA(i,j,k,bi,bj), pres, zeroRL ) + sal = SALT(i,j,k,bi,bj) +C convert pressure to kg/cm^2 for Del Grasso algorithm + pres = pres/gravity + ct = ( 5.01109398873 _d 0 - ( 0.550946843172 _d -1 + & - 0.221535969240 _d -3 * temp ) * temp ) * temp + cs = ( 1.32952290781 _d 0 + 0.128955756844 _d -3 * sal + & ) * sal + cp = ( 0.156059257041 _d 0 + ( 0.244998688441 _d -4 + & - 0.883392332513 _d -8 * pres ) * pres ) * pres + cstp = ( - 0.127562783426 _d -1 + & + 0.968403156410 _d -4 *temp ) * temp * sal + & + (( 0.635191613389 _d -2 + & +(0.265484716608 _d -7 *temp + & - 0.159349479045 _d -5 + & + 0.522116437235 _d -9 *pres ) * pres + & - 0.438031096213 _d -6 * temp * temp + & +(0.485639620015 _d -5 * sal + & - 0.340597039004 _d -3 ) *sal ) * temp + & - 0.161674495909 _d -8 * sal * sal * pres + & ) * pres + cSound(i,j,k,bi,bj) = c0+ct+cs+cp+cstp + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(cSound,'CSound ',0,Nr,0,1,1,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +C- end-if calc_soundSpeed + ENDIF + +#endif /* INCLUDE_SOUNDSPEED_CALC_CODE */ + + RETURN + END diff --git a/model/src/do_atmospheric_phys.F b/model/src/do_atmospheric_phys.F index f5d8076b34..fe6025d93e 100644 --- a/model/src/do_atmospheric_phys.F +++ b/model/src/do_atmospheric_phys.F @@ -40,9 +40,9 @@ SUBROUTINE DO_ATMOSPHERIC_PHYS(myTime, myIter, myThid) #include "PARAMS.h" #include "GRID.h" #include "DYNVARS.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == diff --git a/model/src/do_fields_blocking_exchanges.F b/model/src/do_fields_blocking_exchanges.F index 97e13432b1..9a361beecf 100644 --- a/model/src/do_fields_blocking_exchanges.F +++ b/model/src/do_fields_blocking_exchanges.F @@ -99,10 +99,5 @@ SUBROUTINE DO_FIELDS_BLOCKING_EXCHANGES(myThid) ENDIF #endif /* ALLOW PTRACERS */ -#ifdef ALLOW_GGL90 - IF (useGGL90) - & CALL GGL90_EXCHANGES(myThid) -#endif /* ALLOW_GGL90 */ - RETURN END diff --git a/model/src/do_oceanic_phys.F b/model/src/do_oceanic_phys.F index 0a46476b0e..2d976458a3 100644 --- a/model/src/do_oceanic_phys.F +++ b/model/src/do_oceanic_phys.F @@ -124,6 +124,8 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) C | C |-- KPP_DO_EXCH C | +C |-- GGL90_EXCHANGES +C | C |-- DIAGS_RHO_G C |-- DIAGS_OCEANIC_SURF_FLUX C |-- SALT_PLUME_DIAGNOSTICS_FILL @@ -147,8 +149,9 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) #ifdef ALLOW_AUTODIFF # include "AUTODIFF_MYFIELDS.h" -# include "tamc.h" -# include "tamc_keys.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "FFIELDS.h" # include "SURFACE.h" # include "EOS.h" @@ -165,7 +168,9 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) # include "EBM.h" # endif # ifdef ALLOW_EXF -# include "ctrl.h" +# ifdef ALLOW_CTRL +# include "ctrl.h" +# endif # include "EXF_FIELDS.h" # ifdef ALLOW_BULKFORMULAE # include "EXF_CONSTANTS.h" @@ -182,13 +187,17 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) # ifdef ALLOW_SALT_PLUME # include "SALT_PLUME.h" # endif -# ifdef ALLOW_ECCO -# ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -# include "ecco_cost.h" -# endif -# endif #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_TAPENADE +c# ifdef ALLOW_KPP +c# include "KPP_PARAMS.h" +c# endif +# ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +# endif +#endif /* ALLOW_TAPENADE */ + C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myTime :: Current time in simulation @@ -200,12 +209,13 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) C !LOCAL VARIABLES: C == Local variables -C rhoK, rhoKm1 :: Density at current level, and level above +C rhoKp1,rhoKm1 :: Density at current level, and @ level minus one C iMin, iMax :: Ranges and sub-block indices on which calculations C jMin, jMax are applied. C bi, bj :: tile indices C msgBuf :: Temp. for building output string C i,j,k :: loop indices +C kSrf :: surface index _RL rhoKp1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rhoKm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL sigmaX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -214,7 +224,7 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) INTEGER iMin, iMax INTEGER jMin, jMax INTEGER bi, bj - INTEGER i, j, k + INTEGER i, j, k, kSrf CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER doDiagsRho LOGICAL calcGMRedi, calcKPP, calcConvect @@ -225,13 +235,21 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) #ifdef ALLOW_AUTODIFF _RL thetaRef #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C kkey :: tape key (level and tile dependent) + INTEGER kkey, tkey +#endif CEOP #ifdef ALLOW_AUTODIFF_TAMC C-- dummy statement to end declaration part - itdkey = 1 + tkey = 1 #endif /* ALLOW_AUTODIFF_TAMC */ + kSrf = 1 + IF ( usingPCoords ) kSrf = Nr + #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_ENTER('DO_OCEANIC_PHYS',myThid) #endif @@ -301,20 +319,6 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) ENDDO #endif /* ALLOW_AUTODIFF */ -#if (defined (ALLOW_SIGMAR_COST_CONTRIBUTION) || defined (ALLOW_LEITH_QG)) - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - sigmaRfield(i,j,k,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_SIGMAR_COST_CONTRIBUTION or ALLOW_LEITH_QG*/ - #ifdef ALLOW_FRAZIL IF ( useFRAZIL ) THEN C-- Freeze water in the ocean interior and let it rise to the surface @@ -324,11 +328,12 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) ENDIF #endif /* ALLOW_FRAZIL */ -#ifndef OLD_THSICE_CALL_SEQUENCE #if (defined ALLOW_THSICE) && !(defined ALLOW_ATM2D) IF ( useThSIce .AND. fluidIsWater ) THEN # ifdef ALLOW_AUTODIFF_TAMC +# ifdef ALLOW_SEAICE CADJ STORE uice,vice = comlev1, key=ikey_dynamics, kind=isbyte +# endif CADJ STORE iceMask,iceHeight = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE snowHeight, Tsrf = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE Qice1, Qice2 = comlev1, key=ikey_dynamics, kind=isbyte @@ -353,48 +358,32 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) CALL TIMER_STOP( 'THSICE_MAIN [DO_OCEANIC_PHYS]', myThid) ENDIF #endif /* ALLOW_THSICE */ -#endif /* ndef OLD_THSICE_CALL_SEQUENCE */ #ifdef ALLOW_SEAICE # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte -c CADJ STORE fu,fv = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE qnet = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE qsw = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE theta = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE salt = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE qnet = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE qsw = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE theta = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE salt = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE fu,fv = comlev1, key=ikey_dynamics, kind=isbyte #if (defined ALLOW_EXF) && (defined ALLOW_ATM_TEMP) -CADJ STORE evap = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE evap = comlev1, key=ikey_dynamics, kind=isbyte #endif # endif /* ALLOW_AUTODIFF_TAMC */ +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE phiHydLow= comlev1, key=ikey_dynamics, byte=isbyte +#endif IF ( useSEAICE ) THEN # ifdef ALLOW_AUTODIFF_TAMC -cph-adj-test( -CADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE tices = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE empmr = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE saltflux = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE fu,fv = comlev1, key=ikey_dynamics, kind=isbyte -cph-adj-test) -#ifdef ALLOW_EXF +CADJ STORE uvel,vvel = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE uice,vice = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef SEAICE_USE_GROWTH_ADX +CADJ STORE tices = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# ifdef ALLOW_EXF CADJ STORE atemp,aqh,precip = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE swdown,lwdown = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE uwind,vwind = comlev1, key=ikey_dynamics, kind=isbyte -#endif -CADJ STORE uvel,vvel = comlev1, key=ikey_dynamics, kind=isbyte -# ifdef SEAICE_CGRID -CADJ STORE stressdivergencex = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE stressdivergencey = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef SEAICE_ALLOW_DYNAMICS -CADJ STORE uice,vice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE dwatn = comlev1, key=ikey_dynamics, kind=isbyte -# ifdef SEAICE_ALLOW_EVP -CADJ STORE seaice_sigma1 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE seaice_sigma2 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE seaice_sigma12 = comlev1, key=ikey_dynamics, kind=isbyte -# endif # endif # ifdef SEAICE_VARIABLE_SALINITY CADJ STORE hsalt = comlev1, key=ikey_dynamics, kind=isbyte @@ -405,11 +394,8 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) # ifdef NONLIN_FRSURF CADJ STORE recip_hfacc = comlev1, key=ikey_dynamics, kind=isbyte # endif -# ifdef ANNUAL_BALANCE -CADJ STORE balance_itcount = comlev1, key=ikey_dynamics, kind=isbyte -# endif /* ANNUAL_BALANCE */ # ifdef ALLOW_THSICE -C-- store thSIce vars before advection (called from SEAICE_MODEL) update them: +C-- store thSIce vars before advection (called from SEAICE_MODEL) updates them: CADJ STORE iceMask,iceHeight = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE snowHeight,hOceMxL= comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE Qice1, Qice2 = comlev1, key=ikey_dynamics, kind=isbyte @@ -421,18 +407,23 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) CALL TIMER_START('SEAICE_MODEL [DO_OCEANIC_PHYS]', myThid) CALL SEAICE_MODEL( myTime, myIter, myThid ) CALL TIMER_STOP ('SEAICE_MODEL [DO_OCEANIC_PHYS]', myThid) +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE tices = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE uIce = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE vIce = comlev1, key=ikey_dynamics, kind=isbyte +# endif # ifdef ALLOW_COST CALL SEAICE_COST_SENSI ( myTime, myIter, myThid ) # endif # ifdef ALLOW_AUTODIFF ELSEIF ( SEAICEadjMODE .EQ. -1 ) THEN -CADJ STORE fu,fv = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte CALL SEAICE_FAKE( myTime, myIter, myThid ) # endif /* ALLOW_AUTODIFF */ ENDIF -c # ifdef ALLOW_AUTODIFF_TAMC -c CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte -c # endif /* ALLOW_AUTODIFF_TAMC */ #endif /* ALLOW_SEAICE */ #if (defined ALLOW_OCN_COMPON_INTERF) && (defined ALLOW_THSICE) @@ -456,30 +447,6 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) # endif #endif -#ifdef OLD_THSICE_CALL_SEQUENCE -#if (defined ALLOW_THSICE) && !(defined ALLOW_ATM2D) - IF ( useThSIce .AND. fluidIsWater ) THEN -# ifdef ALLOW_AUTODIFF_TAMC -cph( -# ifdef NONLIN_FRSURF -CADJ STORE uice,vice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE salt,theta = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE qnet,qsw, empmr = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE hFac_surfC = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# endif -# ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('THSICE_MAIN',myThid) -# endif -C-- Step forward Therm.Sea-Ice variables -C and modify forcing terms including effects from ice - CALL TIMER_START('THSICE_MAIN [DO_OCEANIC_PHYS]', myThid) - CALL THSICE_MAIN( myTime, myIter, myThid ) - CALL TIMER_STOP( 'THSICE_MAIN [DO_OCEANIC_PHYS]', myThid) - ENDIF -#endif /* ALLOW_THSICE */ -#endif /* OLD_THSICE_CALL_SEQUENCE */ - #ifdef ALLOW_SHELFICE IF ( useShelfIce .AND. fluidIsWater ) THEN #ifdef ALLOW_DEBUG @@ -574,16 +541,7 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itdkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C-- Set up work arrays with valid (i.e. not NaN) values @@ -602,13 +560,13 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) ENDDO ENDDO -#ifdef ALLOW_AUTODIFF DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx rhoKm1 (i,j) = 0. _d 0 rhoKp1 (i,j) = 0. _d 0 ENDDO ENDDO +#ifdef ALLOW_AUTODIFF cph all the following init. are necessary for TAF cph although some of these are re-initialised later. DO k=1,Nr @@ -650,10 +608,8 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) Kwx(i,j,k,bi,bj) = 0. _d 0 Kwy(i,j,k,bi,bj) = 0. _d 0 Kwz(i,j,k,bi,bj) = 0. _d 0 -# ifdef GM_NON_UNITY_DIAGONAL Kux(i,j,k,bi,bj) = 0. _d 0 Kvy(i,j,k,bi,bj) = 0. _d 0 -# endif # ifdef GM_EXTRA_DIAGONAL Kuz(i,j,k,bi,bj) = 0. _d 0 Kvz(i,j,k,bi,bj) = 0. _d 0 @@ -689,19 +645,16 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) #endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE totphihyd(:,:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE totphihyd(:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte # ifdef ALLOW_KPP -CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte # endif # ifdef ALLOW_SALT_PLUME -CADJ STORE saltplumedepth(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE saltplumeflux(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE saltplumedepth(:,:,bi,bj)= comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE saltplumeflux(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -786,7 +739,7 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) C? Do we still need this? cph kkey formula corrected. cph Needed for rhoK, rhoKm1, in the case useGMREDI. - kkey = (itdkey-1)*Nr + k + kkey = k + (tkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ c#ifdef ALLOW_AUTODIFF_TAMC @@ -808,35 +761,48 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey,kind=isbyte CADJ STORE rhokm1 (bi,bj) = comlev1_bibj_k, key=kkey,kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - CALL FIND_RHO_2D( + IF ( usingZCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + rhoKp1(i,j) = rhoInSitu(i,j,k,bi,bj) + ENDDO + ENDDO + CALL FIND_RHO_2D( I iMin, iMax, jMin, jMax, k, I theta(1-OLx,1-OLy,k-1,bi,bj), I salt (1-OLx,1-OLy,k-1,bi,bj), O rhoKm1, I k-1, bi, bj, myThid ) + ELSE + CALL FIND_RHO_2D( + I iMin, iMax, jMin, jMax, k-1, + I theta(1-OLx,1-OLy,k,bi,bj), + I salt (1-OLx,1-OLy,k,bi,bj), + O rhoKp1, + I k, bi, bj, myThid ) + DO j=jMin,jMax + DO i=iMin,iMax + rhoKm1(i,j) = rhoInSitu(i,j,k-1,bi,bj) + ENDDO + ENDDO + ENDIF ENDIF #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GRAD_SIGMA',myThid) #endif -cph Avoid variable aliasing for adjoint !!! - DO j=jMin,jMax - DO i=iMin,iMax - rhoKp1(i,j) = rhoInSitu(i,j,k,bi,bj) - ENDDO - ENDDO CALL GRAD_SIGMA( I bi, bj, iMin, iMax, jMin, jMax, k, I rhoInSitu(1-OLx,1-OLy,k,bi,bj), rhoKm1, rhoKp1, O sigmaX, sigmaY, sigmaR, I myThid ) -#if (defined (ALLOW_SIGMAR_COST_CONTRIBUTION) || defined (ALLOW_LEITH_QG)) +#ifdef ALLOW_LEITH_QG DO j=jMin,jMax DO i=iMin,iMax sigmaRfield(i,j,k,bi,bj)=sigmaR(i,j,k) ENDDO ENDDO -#endif /* ALLOW_SIGMAR_COST_CONTRIBUTION or ALLOW_LEITH_QG */ +#endif /* ALLOW_LEITH_QG */ #ifdef ALLOW_AUTODIFF #ifdef GMREDI_WITH_STABLE_ADJOINT @@ -873,32 +839,31 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE IVDConvCount(:,:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE IVDConvCount(:,:,:,bi,bj)=comlev1_bibj,key=tkey,kind=isbyte #endif C-- Diagnose Mixed Layer Depth: IF ( calcGMRedi .OR. MOD(doDiagsRho,2).EQ.1 ) THEN CALL CALC_OCE_MXLAYER( - I rhoInSitu(1-OLx,1-OLy,1,bi,bj), sigmaR, + I rhoInSitu(1-OLx,1-OLy,kSrf,bi,bj), sigmaR, I bi, bj, myTime, myIter, myThid ) ENDIF #ifdef ALLOW_SALT_PLUME IF ( useSALT_PLUME ) THEN CALL SALT_PLUME_CALC_DEPTH( - I rhoInSitu(1-OLx,1-OLy,1,bi,bj), sigmaR, + I rhoInSitu(1-OLx,1-OLy,kSrf,bi,bj), sigmaR, I bi, bj, myTime, myIter, myThid ) #ifdef SALT_PLUME_VOLUME CALL SALT_PLUME_VOLFRAC( I bi, bj, myTime, myIter, myThid ) C-- get forcings for kpp CALL SALT_PLUME_APPLY( - I 1, bi, bj, recip_hFacC(1-OLx,1-OLy,1,bi,bj), + I 1, bi, bj, recip_hFacC(1-OLx,1-OLy,kSrf,bi,bj), I theta, 0, I myTime, myIter, myThid ) CALL SALT_PLUME_APPLY( - I 2, bi, bj, recip_hFacC(1-OLx,1-OLy,1,bi,bj), + I 2, bi, bj, recip_hFacC(1-OLx,1-OLy,kSrf,bi,bj), I salt, 0, I myTime, myIter, myThid ) C-- need to call this S/R from here to apply just before kpp @@ -921,14 +886,10 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) #ifdef ALLOW_AUTODIFF_TAMC cph needed for KPP -CADJ STORE surfaceForcingU(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE surfaceForcingV(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE surfaceForcingS(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE surfaceForcingT(:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE surfaceForcingU(:,:,bi,bj)=comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE surfaceForcingV(:,:,bi,bj)=comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE surfaceForcingS(:,:,bi,bj)=comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE surfaceForcingT(:,:,bi,bj)=comlev1_bibj,key=tkey,kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_KPP @@ -984,11 +945,10 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) #ifdef ALLOW_GGL90 #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE GGL90TKE(:,:,:,bi,bj) -CADJ & = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE GGL90TKE(:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C-- Compute GGL90 mixing coefficients - IF (useGGL90) THEN + IF ( useGGL90 .AND. Nr.GT.1 ) THEN #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GGL90_CALC',myThid) #endif @@ -1016,9 +976,9 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) cph define GM_BOLUS_ADVEC cph keep it although TAF says you dont need to. cph but I have avoided the #ifdef for now, in case more things change -CADJ STORE sigmaX(:,:,:) = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE sigmaY(:,:,:) = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE sigmaR(:,:,:) = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE sigmaX(:,:,:) = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE sigmaY(:,:,:) = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE sigmaR(:,:,:) = comlev1_bibj, key = tkey, kind = isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -1100,6 +1060,11 @@ SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid) ENDIF #endif /* ALLOW_KPP */ +#ifdef ALLOW_GGL90 + IF ( useGGL90 ) + & CALL GGL90_EXCHANGES( myThid ) +#endif /* ALLOW_GGL90 */ + #ifdef ALLOW_DIAGNOSTICS IF ( fluidIsWater .AND. useDiagnostics ) THEN CALL DIAGS_RHO_G( diff --git a/model/src/do_the_model_io.F b/model/src/do_the_model_io.F index edcaef6100..898facd501 100644 --- a/model/src/do_the_model_io.F +++ b/model/src/do_the_model_io.F @@ -55,6 +55,8 @@ SUBROUTINE DO_THE_MODEL_IO( C |-- SBO_CALC C |-- SBO_OUTPUT C | +C |-- STERGLOH_OUTPUT +C | C |-- SEAICE_OUTPUT C | C |-- SHELFICE_OUTPUT @@ -182,11 +184,11 @@ SUBROUTINE DO_THE_MODEL_IO( & CALL MY82_OUTPUT( myTime, myIter, myThid ) #endif -#ifdef ALLOW_OPPS +c#ifdef ALLOW_OPPS C-- Do OPPS diagnostics. - IF ( useOPPS ) - & CALL OPPS_OUTPUT( myTime, myIter, myThid ) -#endif +c IF ( useOPPS ) +c & CALL OPPS_OUTPUT( myTime, myIter, myThid ) +c#endif #ifdef ALLOW_GGL90 C-- Do GGL90 diagnostics. @@ -202,6 +204,12 @@ SUBROUTINE DO_THE_MODEL_IO( ENDIF #endif +#ifdef ALLOW_ECCO + IF ( useECCO ) THEN + CALL STERGLOH_OUTPUT( myTime, myIter, myThid ) + ENDIF +#endif + #ifdef ALLOW_SEAICE IF ( useSEAICE ) THEN CALL SEAICE_OUTPUT( myTime, myIter, myThid ) diff --git a/model/src/dynamics.F b/model/src/dynamics.F index 1bd968e11c..6847ed73bc 100644 --- a/model/src/dynamics.F +++ b/model/src/dynamics.F @@ -3,6 +3,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif #ifdef ALLOW_MOM_COMMON # include "MOM_COMMON_OPTIONS.h" #endif @@ -39,8 +42,9 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) # include "CD_CODE_VARS.h" #endif #ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "EOS.h" # ifdef ALLOW_KPP # include "KPP.h" @@ -186,6 +190,11 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) INTEGER jMin, jMax PARAMETER( iMin = 0 , iMax = sNx+1 ) PARAMETER( jMin = 0 , jMax = sNy+1 ) +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C kkey :: tape key (level and tile dependent) + INTEGER tkey, kkey +#endif #ifdef ALLOW_DIAGNOSTICS c LOGICAL dPhiHydDiagIsOn @@ -276,16 +285,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - idynkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C-- Set up work arrays with valid (i.e. not NaN) values @@ -345,8 +345,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) C-- Start computation of dynamics #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wVel (:,:,:,bi,bj) = -CADJ & comlev1_bibj, key=idynkey, byte=isbyte +CADJ STORE wVel (:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C-- Explicit part of the Surface Potential Gradient (add in TIMESTEP) @@ -360,11 +359,10 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uVel (:,:,:,bi,bj) = comlev1_bibj, key=idynkey, byte=isbyte -CADJ STORE vVel (:,:,:,bi,bj) = comlev1_bibj, key=idynkey, byte=isbyte +CADJ STORE uVel (:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE vVel (:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #ifdef ALLOW_KPP -CADJ STORE KPPviscAz (:,:,:,bi,bj) -CADJ & = comlev1_bibj, key=idynkey, byte=isbyte +CADJ STORE KPPviscAz(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif /* ALLOW_KPP */ #endif /* ALLOW_AUTODIFF_TAMC */ @@ -401,10 +399,8 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) #endif /* ALLOW_SMAG_3D */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE kappaRU(:,:,:) -CADJ & = comlev1_bibj, key=idynkey, byte=isbyte -CADJ STORE kappaRV(:,:,:) -CADJ & = comlev1_bibj, key=idynkey, byte=isbyte +CADJ STORE kappaRU(:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE kappaRV(:,:,:) = comlev1_bibj, key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_OBCS @@ -435,7 +431,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) kDown= 1+MOD(k,2) #ifdef ALLOW_AUTODIFF_TAMC - kkey = (idynkey-1)*Nr + k + kkey = k + (tkey-1)*Nr CADJ STORE totPhiHyd (:,:,k,bi,bj) CADJ & = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE phiHydLow (:,:,bi,bj) @@ -586,7 +582,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) IF ( implicitViscosity ) THEN #endif /* INCLUDE_IMPLVERTADV_CODE */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE gU(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte +CADJ STORE gU(:,:,:,bi,bj) = comlev1_bibj , key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, @@ -594,7 +590,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) U gU(1-OLx,1-OLy,1,bi,bj), I myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE gV(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte +CADJ STORE gV(:,:,:,bi,bj) = comlev1_bibj , key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, @@ -618,7 +614,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) #ifdef ALLOW_CD_CODE IF (implicitViscosity.AND.useCDscheme) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE vVelD(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte +CADJ STORE vVelD(:,:,:,bi,bj) = comlev1_bibj , key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, @@ -626,7 +622,7 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) U vVelD(1-OLx,1-OLy,1,bi,bj), I myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uVelD(:,:,:,bi,bj) = comlev1_bibj , key=idynkey, byte=isbyte +CADJ STORE uVelD(:,:,:,bi,bj) = comlev1_bibj , key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, @@ -675,9 +671,13 @@ SUBROUTINE DYNAMICS(myTime, myIter, myThid) C run with etaH of a z/p-coordinate run the drift of phiHydLow C has to be removed by something like the following subroutine: C CALL REMOVE_MEAN_RL( 1, phiHydLow, maskInC, maskInC, rA, drF, -C & 'phiHydLow', myTime, myThid ) +C & 'phiHydLow', myTime, myIter, myThid ) Cml) +#ifdef INCLUDE_SOUNDSPEED_CALC_CODE + CALL DIAGS_SOUND_SPEED( myThid ) +#endif + #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN diff --git a/model/src/external_forcing_surf.F b/model/src/external_forcing_surf.F index fab00d6862..270c57de20 100644 --- a/model/src/external_forcing_surf.F +++ b/model/src/external_forcing_surf.F @@ -32,9 +32,8 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #include "DYNVARS.h" #include "GRID.h" #include "SURFACE.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -57,6 +56,9 @@ SUBROUTINE EXTERNAL_FORCING_SURF( INTEGER bi,bj INTEGER i,j INTEGER ks +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER tkey +#endif _RL recip_Cp #ifdef ALLOW_BALANCE_FLUXES _RS tmpVar(1) @@ -80,14 +82,25 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #ifdef ALLOW_BALANCE_FLUXES C balance fluxes +# ifdef ALLOW_AUTODIFF tmpVar(1) = oneRS - IF ( balanceEmPmR .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, EmPmR, maskInC, maskInC, rA, tmpVar, - & 'EmPmR', myTime, myThid ) +# endif + IF ( selectBalanceEmPmR.GE.1 .AND. + & (.NOT.useSeaice .OR. useThSIce) ) THEN + IF ( selectBalanceEmPmR.EQ.1 ) THEN + tmpVar(1) = oneRS + CALL REMOVE_MEAN_RS( 1, EmPmR, maskInC, maskInC, rA, + & tmpVar, 'EmPmR', myTime, myIter, myThid ) + ELSEIF ( selectBalanceEmPmR.EQ.2 ) THEN + tmpVar(1) = -oneRS + CALL REMOVE_MEAN_RS( 1, EmPmR, weight2BalanceFlx, maskInC, rA, + & tmpVar, 'EmPmR', myTime, myIter, myThid ) + ENDIF ENDIF IF ( balanceQnet .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, Qnet, maskInC, maskInC, rA, tmpVar, - & 'Qnet ', myTime, myThid ) + tmpVar(1) = oneRS + CALL REMOVE_MEAN_RS( 1, Qnet, maskInC, maskInC, rA, + & tmpVar, 'Qnet ', myTime, myIter, myThid ) ENDIF #endif /* ALLOW_BALANCE_FLUXES */ @@ -180,22 +193,13 @@ SUBROUTINE EXTERNAL_FORCING_SURF( DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE EmPmR(:,:,bi,bj) = comlev1_bibj, key=ikey, kind = isbyte +CADJ STORE EmPmR(:,:,bi,bj) = comlev1_bibj, key=tkey, kind = isbyte #ifdef EXACT_CONSERV -CADJ STORE PmEpR(:,:,bi,bj) = comlev1_bibj, key=ikey, kind = isbyte +CADJ STORE PmEpR(:,:,bi,bj) = comlev1_bibj, key=tkey, kind = isbyte #endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -357,7 +361,7 @@ SUBROUTINE EXTERNAL_FORCING_SURF( DO j = jMin, jMax DO i = iMin, iMax phi0surf(i,j,bi,bj) = ( pLoad(i,j,bi,bj) - & +sIceLoad(i,j,bi,bj)*gravity + & +sIceLoad(i,j,bi,bj)*gravity*sIceLoadFac & )*recip_rhoConst ENDDO ENDDO diff --git a/model/src/find_alpha.F b/model/src/find_alpha.F index b3475b7858..b9ddcedf6e 100644 --- a/model/src/find_alpha.F +++ b/model/src/find_alpha.F @@ -357,7 +357,7 @@ SUBROUTINE FIND_BETA ( C | k - is the Theta/Salt level C | kRef - determines pressure reference level C | (not used in 'LINEAR' mode) -C | betaLoc - drho / dS (kg/m^3/PSU) +C | betaLoc - drho / dS (kg/m^3/(g/kg)) C *==========================================================* C \ev diff --git a/model/src/forcing_surf_relax.F b/model/src/forcing_surf_relax.F index 8646f3bffe..515451cf59 100644 --- a/model/src/forcing_surf_relax.F +++ b/model/src/forcing_surf_relax.F @@ -192,8 +192,8 @@ SUBROUTINE FORCING_SURF_RELAX( ENDDO IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgBuf,'(A,E24.17)') - & 'rm Global mean of SSTrelax =', globAver + WRITE(msgBuf,'(2A,1PE21.14,A,I10)') 'rm Global mean of', + & ' SSTrelax= ', globAver, ' @ it=', myIter CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) @@ -228,8 +228,8 @@ SUBROUTINE FORCING_SURF_RELAX( ENDDO IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgBuf,'(A,E24.17)') - & 'rm Global mean of SSSrelax =', globAver + WRITE(msgBuf,'(2A,1PE21.14,A,I10)') 'rm Global mean of', + & ' SSSrelax= ', globAver, ' @ it=', myIter CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) diff --git a/model/src/forward_step.F b/model/src/forward_step.F index f2119c95d5..ea991c7336 100644 --- a/model/src/forward_step.F +++ b/model/src/forward_step.F @@ -260,7 +260,9 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) # include "FFIELDS.h" # include "SURFACE.h" -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # ifdef ALLOW_CTRL # include "CTRL_SIZE.h" # include "ctrl.h" @@ -341,6 +343,10 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) # ifdef ALLOW_SALT_PLUME # include "SALT_PLUME.h" # endif +# ifdef ALLOW_DOWN_SLOPE +# include "DWNSLP_SIZE.h" +# include "DWNSLP_VARS.h" +# endif # ifdef ALLOW_SHELFICE # include "SHELFICE.h" # include "SHELFICE_COST.h" @@ -364,11 +370,31 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) # ifdef ALLOW_OFFLINE # include "OFFLINE.h" # endif -# if (defined ALLOW_CG2D_NSA) || (defined NONLIN_FRSURF) +# if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) # include "CG2D.h" # endif #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_TAPENADE +c# ifdef ALLOW_KPP +c# include "KPP_PARAMS.h" +c# endif +# ifdef ALLOW_GMREDI +# include "GMREDI_TAVE.h" +# endif +# ifdef ALLOW_TIMEAVE +# include "TIMEAVE_STATV.h" +# endif +# ifdef ALLOW_MOM_FLUXFORM +# include "MOM_FLUXFORM.h" +# endif +# ifdef ALLOW_EXF +# include "EXF_PARAM.h" +# include "EXF_INTERP_PARAM.h" +# endif +#endif /* ALLOW_TAPENADE */ + C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C note: under the multi-threaded model myIter and @@ -400,16 +426,16 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) IF (debugMode) CALL DEBUG_ENTER('FORWARD_STEP',myThid) #endif -#ifdef ALLOW_AUTODIFF - CALL AUTODIFF_INADMODE_UNSET( myThid ) -#endif - #ifdef ALLOW_AUTODIFF C-- Reset the model iteration counter and the model time. myIter = nIter0 + (iloop-1) myTime = startTime + deltaTClock*(iLoop-1) #endif +#ifdef ALLOW_AUTODIFF + CALL AUTODIFF_INADMODE_UNSET( myTime, myIter, myThid ) +#endif + #ifdef ALLOW_LONGSTEP C store this for longstep_average with staggerTimeStep C which is called after myIter and myTime are incremented @@ -586,6 +612,14 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) ENDIF #endif /* ALLOW_EBM */ +#ifdef ALLOW_AUTODIFF_TAMC +C****************************************************** +C Store surface forcing fields if required to avoid +C calling load_fields_driver in forward_step_ad +# include "check_lev1_dir_forcing.h" +C****************************************************** +#endif /* ALLOW_AUTODIFF_TAMC */ + C-- Step forward fields and calculate time tendency terms. #ifdef ALLOW_DEBUG @@ -597,27 +631,25 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC # ifdef ALLOW_KPP -CADJ STORE uVel, vVel = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte +CADJ STORE uVel, vVel = comlev1, key = ikey_dynamics, kind = isbyte # endif /* ALLOW_KPP */ # ifdef EXACT_CONSERV -CADJ STORE EmPmR = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE PmEpR = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE EmPmR = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE PmEpR = comlev1, key = ikey_dynamics, kind = isbyte # endif # ifdef ALLOW_OBCS -CADJ STORE salt = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE totphihyd = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE salt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE totphihyd = comlev1, key = ikey_dynamics, kind = isbyte # ifdef ALLOW_OBCS_STEVENS -CADJ STORE gsNm1 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE gtNm1 = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE gsNm1 = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE gtNm1 = comlev1, key = ikey_dynamics, kind = isbyte # endif # endif /* ALLOW_OBCS */ # ifdef ALLOW_PTRACERS -CADJ STORE pTracer = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte +CADJ STORE pTracer = comlev1, key = ikey_dynamics, kind = isbyte # endif /* ALLOW_PTRACERS */ # ifdef ALLOW_DEPTH_CONTROL -CADJ STORE hFacC = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE hFacC = comlev1, key = ikey_dynamics, kind = isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -636,38 +668,23 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE EmPmR = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# ifdef EXACT_CONSERV -CADJ STORE PmEpR = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# endif -cph-test( -CADJ STORE surfaceForcingU = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE surfaceForcingV = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE qsw = comlev1, key = ikey_dynamics, kind = isbyte -# ifdef ATMOSPHERIC_LOADING -CADJ STORE phi0surf = comlev1, key = ikey_dynamics, kind = isbyte -# endif -cph-test) - -# ifdef ALLOW_DEPTH_CONTROL -CADJ STORE hFacC, hFacS, hFacW -CADJ & = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE recip_hFacC, recip_hFacS, recip_hFacW -CADJ & = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE surfaceForcingU, surfaceForcingV = -CADJ & comlev1, key = ikey_dynamics, kind = isbyte -# endif +C*********************************************************************** +C This block of store directives is for variables that have been +C computed in do_oceanics_phys. Storing them here avoids calling +C do_oceanic_phys again in forward_step_ad, which should improve +C performance because expensive parts of the model are not +C recomputed (e.g. seaice). +# include "check_lev1_dir_ocephys.h" +C*********************************************************************** #endif /* ALLOW_AUTODIFF_TAMC */ -#ifdef ALLOW_GCHEM +#ifdef GCHEM_ADD2TR_TENDENCY +#ifndef ALLOW_AUTODIFF IF ( useGCHEM ) THEN +#endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE pTracer = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE theta, salt = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte +CADJ STORE pTracer = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE theta, salt = comlev1, key=ikey_dynamics, kind=isbyte #endif #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GCHEM_CALC_TENDENCY',myThid) @@ -675,67 +692,13 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL TIMER_START('GCHEM_CALC_TENDENCY [FORWARD_STEP]',myThid) CALL GCHEM_CALC_TENDENCY( myTime, myIter, myThid ) CALL TIMER_STOP ('GCHEM_CALC_TENDENCY [FORWARD_STEP]',myThid) - ENDIF -#endif /* ALLOW_GCHEM */ - #ifdef ALLOW_AUTODIFF_TAMC -cph needed to be moved here from do_oceanic_physics -cph to be visible down the road - -CADJ STORE rhoInSitu = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE surfaceForcingS = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE surfaceForcingT = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE IVDConvCount = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# ifdef ALLOW_KPP -CADJ STORE adjustColdSST_diag = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# endif -# ifdef ALLOW_PTRACERS -CADJ STORE surfaceForcingPTr = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# endif - -# ifdef ALLOW_GMREDI -CADJ STORE Kwx = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE Kwy = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE Kwz = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# ifdef GM_BOLUS_ADVEC -CADJ STORE GM_PsiX = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE GM_PsiY = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# endif -# endif - -# ifdef ALLOW_KPP -CADJ STORE KPPghat = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE KPPfrac = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE KPPdiffKzS = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE KPPdiffKzT = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -# endif - -# if (defined NONLIN_FRSURF) || (defined ALLOW_DEPTH_CONTROL) -CADJ STORE theta,salt = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE etaH = comlev1, key = ikey_dynamics, kind = isbyte -# ifdef ALLOW_CD_CODE -CADJ STORE etaNm1 = comlev1, key = ikey_dynamics, kind = isbyte -# endif -# ifndef DISABLE_RSTAR_CODE -CADJ STORE rStarExpC = comlev1, key = ikey_dynamics, kind = isbyte -# endif -# endif -#endif /* ALLOW_AUTODIFF_TAMC */ +CADJ STORE gchemTendency = comlev1, key=ikey_dynamics, kind=isbyte +#endif +#ifndef ALLOW_AUTODIFF + ENDIF +#endif +#endif /* GCHEM_ADD2TR_TENDENCY */ #ifdef ALLOW_LONGSTEP IF ( usePTRACERS .AND. LS_whenToSample .EQ. 0 ) THEN @@ -774,6 +737,9 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL TIMER_STOP ('THERMODYNAMICS [FORWARD_STEP]',myThid) C-- if not staggerTimeStep: end ENDIF +#if (defined ALLOW_AUTODIFF_TAMC) && (defined ALLOW_OBCS) +CADJ STORE salt, theta = comlev1, key = ikey_dynamics, kind = isbyte +#endif /* ALLOW_AUTODIFF_TAMC && ALLOW_OBCS */ #ifdef ALLOW_LONGSTEP IF ( usePTRACERS .AND. LS_whenToSample .EQ. 1 ) THEN @@ -894,16 +860,11 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CADJ & comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE recip_hFacC, recip_hFacS, recip_hFacW = CADJ & comlev1, key = ikey_dynamics, kind = isbyte -# ifdef ALLOW_CG2D_NSA -CADJ STORE aW2d, aS2d, aC2d = -CADJ & comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE pC, pS, pW = -CADJ & comlev1, key = ikey_dynamics, kind = isbyte -# endif # endif #endif /* NONLIN_FRSURF */ -#if ( defined NONLIN_FRSURF || defined ALLOW_SOLVE4_PS_AND_DRAG ) +#if ( defined NONLIN_FRSURF || defined ALLOW_SOLVE4_PS_AND_DRAG || \ + defined ALLOW_CG2D_NSA || defined ALLOW_DEPTH_CONTROL ) C- update CG2D matrix (and preconditioner) IF ( momStepping .AND. & ( nonlinFreeSurf.GT.2 .OR. selectImplicitDrag.EQ.2 ) ) THEN @@ -911,6 +872,12 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL UPDATE_CG2D( myTime, myIter, myThid ) CALL TIMER_STOP ('UPDATE_CG2D [FORWARD_STEP]',myThid) ENDIF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE aW2d, aS2d, aC2d = +CADJ & comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE pC, pS, pW = +CADJ & comlev1, key = ikey_dynamics, kind = isbyte +# endif #endif /* NONLIN_FRSURF or ALLOW_SOLVE4_PS_AND_DRAG */ C-- Apply Filters to u*,v* before SOLVE_FOR_PRESSURE @@ -951,6 +918,12 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CADJ STORE EmPmR,hFacS,hFacW CADJ & = comlev1, key = ikey_dynamics, kind = isbyte # endif +#if ( defined NONLIN_FRSURF || defined ALLOW_SOLVE4_PS_AND_DRAG ) +CADJ STORE aW2d, aS2d, aC2d = +CADJ & comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE pC, pS, pW = +CADJ & comlev1, key = ikey_dynamics, kind = isbyte +# endif #endif CALL TIMER_START('SOLVE_FOR_PRESSURE [FORWARD_STEP]',myThid) CALL SOLVE_FOR_PRESSURE(myTime, myIter, myThid) @@ -986,6 +959,12 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL INTEGR_CONTINUITY( uVel, vVel, myTime, myIter, myThid) CALL TIMER_STOP ('INTEGR_CONTINUITY [FORWARD_STEP]',myThid) ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +C-- These store directives avoid an (expensive) extra +C "call solve_for_pressure" in forward_step_ad +CADJ STORE wVel = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE etaN = comlev1, key = ikey_dynamics, kind = isbyte +#endif #ifdef NONLIN_FRSURF IF ( select_rStar.NE.0 ) THEN @@ -1018,6 +997,9 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CADJ & kind = isbyte CADJ STORE salt,theta = comlev1, key = ikey_dynamics, CADJ & kind = isbyte +# ifdef ALLOW_PTRACERS +CADJ STORE pTracer = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_PTRACERS */ # endif #endif /* NONLIN_FRSURF */ @@ -1042,7 +1024,10 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wVel = comlev1, key = ikey_dynamics, kind = isbyte +C these store directives prevent calling do_stagger_fields_exchanges +C again in the AD-part of forward_step_ad +CADJ STORE salt, theta = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE wVel = comlev1, key = ikey_dynamics, kind = isbyte #endif #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('THERMODYNAMICS',myThid) @@ -1053,6 +1038,11 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) C-- if staggerTimeStep: end ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +C this may not be necessary, but it does not do any harm (i.e. it is +C ignored by TAF if not needed) +CADJ STORE salt, theta = comlev1, key = ikey_dynamics, kind = isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ C---+--------+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC @@ -1109,12 +1099,12 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #else IF ( useGCHEM ) THEN #endif -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE pTracer = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -CADJ STORE theta, salt = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -#endif +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE theta, salt = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_PTRACERS +CADJ STORE pTracer = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_PTRACERS */ +# endif #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GCHEM_FORCING_SEP',myThid) #endif /* ALLOW_DEBUG */ @@ -1133,6 +1123,17 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL TIMER_START('BLOCKING_EXCHANGES [FORWARD_STEP]',myThid) CALL DO_FIELDS_BLOCKING_EXCHANGES( myThid ) CALL TIMER_STOP ('BLOCKING_EXCHANGES [FORWARD_STEP]',myThid) +#ifdef ALLOW_AUTODIFF_TAMC +C These store directives avoid extra subroutine calls, for example, +C thermodynamics, tracers_correction_step, gchem_forcing_sep, and +C do_fields_blocking_exchages +CADJ STORE theta, salt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE uvel, vvel = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE totPhiHyd = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_PTRACERS +CADJ STORE pTracer = comlev1, key = ikey_dynamics, kind = isbyte +# endif +#endif #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN @@ -1202,8 +1203,8 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #endif #ifdef ALLOW_ECCO -C-- Diagnoze variables for pkg/ecco averaging and cost function purposes - IF ( useECCO ) CALL ECCO_PHYS( myThid ) +C-- Diagnose variables for pkg/ecco averaging and cost function purposes + IF ( useECCO ) CALL ECCO_PHYS( myTime, myIter, myThid ) #endif C-- Check if it has reached the end of simulation @@ -1242,7 +1243,7 @@ SUBROUTINE FORWARD_STEP( iloop, myTime, myIter, myThid ) #endif /* HAVE_SIGREG */ #ifdef ALLOW_AUTODIFF - CALL AUTODIFF_INADMODE_SET( myThid ) + CALL AUTODIFF_INADMODE_SET( myTime, myIter, myThid ) #endif #ifdef ALLOW_SHOWFLOPS diff --git a/model/src/grad_sigma.F b/model/src/grad_sigma.F index 8c1bc8dc68..f86b2dde49 100644 --- a/model/src/grad_sigma.F +++ b/model/src/grad_sigma.F @@ -24,7 +24,6 @@ SUBROUTINE GRAD_SIGMA( #include "GRID.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C bi, bj :: tile indices C iMin,iMax :: not used C jMin,jMax :: not used @@ -44,8 +43,7 @@ SUBROUTINE GRAD_SIGMA( INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == -C rhoLoc :: local copy of rhoK +C rhoLoc :: local copy of rhoK INTEGER i,j _RL rhoLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CEOP @@ -58,31 +56,27 @@ SUBROUTINE GRAD_SIGMA( ENDDO C- Internal exchange for calculations in X -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC IF ( useCubedSphereExchange ) THEN CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., & rhoLoc, bi,bj, myThid ) ENDIF -cph-exch2#endif DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx sigmaX(i,j,k)=_maskW(i,j,k,bi,bj) - & *_recip_dxC(i,j,bi,bj) + & *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k) & *(rhoLoc(i,j)-rhoLoc(i-1,j)) ENDDO ENDDO C- Internal exchange for calculations in Y -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC IF ( useCubedSphereExchange ) THEN CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., & rhoLoc, bi,bj, myThid ) ENDIF -cph-exch2#endif DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx sigmaY(i,j,k)=_maskS(i,j,k,bi,bj) - & *_recip_dyC(i,j,bi,bj) + & *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k) & *(rhoLoc(i,j)-rhoLoc(i,j-1)) ENDDO ENDDO diff --git a/model/src/impldiff.F b/model/src/impldiff.F index 8fae3193fc..445ea93e96 100644 --- a/model/src/impldiff.F +++ b/model/src/impldiff.F @@ -39,11 +39,9 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, # include "PTRACERS_PARAMS.h" #endif c#ifdef ALLOW_AUTODIFF_TAMC -c# include "tamc_keys.h" c#endif C !INPUT/OUTPUT PARAMETERS: -C == Routine Arguments == C tracerId :: tracer Identificator (if > 0) ; = -1 or -2 when C solving vertical viscosity implicitly for U or V C KappaRk :: vertical diffusion coefficient @@ -57,9 +55,8 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == INTEGER i,j,k - _RL deltaTX(Nr) + _RL deltaTX(Nr), locUpdate _RL locTr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL a(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL b(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -75,6 +72,7 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, #endif LOGICAL DIAGNOSTICS_IS_ON EXTERNAL DIAGNOSTICS_IS_ON + _RL recip_dT _RL df (1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif /* ALLOW_DIAGNOSTICS */ CEOP @@ -104,26 +102,16 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, C-- Initialise DO k=1,Nr -#ifdef TARGET_NEC_SX DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx -#else - DO j=jMin,jMax - DO i=iMin,iMax -#endif locTr(i,j,k) = 0. _d 0 ENDDO ENDDO ENDDO C-- Old aLower -#ifdef TARGET_NEC_SX DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx -#else - DO j=jMin,jMax - DO i=iMin,iMax -#endif a(i,j,1) = 0. _d 0 ENDDO ENDDO @@ -161,13 +149,8 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, ENDDO ENDDO ENDDO -#ifdef TARGET_NEC_SX DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx -#else - DO j=jMin,jMax - DO i=iMin,iMax -#endif c(i,j,Nr) = 0. _d 0 ENDDO ENDDO @@ -190,13 +173,8 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, C-- Old and new gam, bet are the same DO k=1,Nr -#ifdef TARGET_NEC_SX DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx -#else - DO j=jMin,jMax - DO i=iMin,iMax -#endif bet(i,j,k) = 1. _d 0 gam(i,j,k) = 0. _d 0 ENDDO @@ -272,8 +250,8 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, CADJ loop = sequential DO k=Nr-1,1,-1 #ifdef TARGET_NEC_SX - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx #else DO j=jMin,jMax DO i=iMin,iMax @@ -291,12 +269,34 @@ SUBROUTINE IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, DO j=jMin,jMax DO i=iMin,iMax #endif + locUpdate = locTr(i,j,k) - gTracer(i,j,k) gTracer(i,j,k) = locTr(i,j,k) + locTr(i,j,k) = locUpdate ENDDO ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS +C-- Diagnostics of momentum dissipation/viscous tendency, implicit part: + IF ( useDiagnostics .AND. + & ( tracerId.EQ. -1 .OR. tracerId.EQ. -2 ) ) THEN + IF ( tracerId.EQ. -1 ) diagName = 'Um_ImplD' + IF ( tracerId.EQ. -2 ) diagName = 'Vm_ImplD' + IF ( DIAGNOSTICS_IS_ON(diagName,myThid) ) THEN + recip_dT = 0. _d 0 + IF ( deltaTMom.GT.zeroRL ) recip_dT = oneRL / deltaTMom + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + locTr(i,j,k) = locTr(i,j,k)*recip_dT + ENDDO + ENDDO + ENDDO + CALL DIAGNOSTICS_FILL( locTr,diagName, 0,Nr,2,bi,bj, myThid ) + ENDIF + ENDIF + +C-- Diagnostics of vertical diffusion flux (or vertical viscous flux): IF ( useDiagnostics .AND.tracerId.NE.0 ) THEN IF ( tracerId.GE. 1 ) THEN C-- Set diagnostic suffix for the current tracer diff --git a/model/src/ini_cg2d.F b/model/src/ini_cg2d.F index 59c03beaac..b5087a0f92 100644 --- a/model/src/ini_cg2d.F +++ b/model/src/ini_cg2d.F @@ -59,20 +59,6 @@ SUBROUTINE INI_CG2D( myThid ) pC(i,j,bi,bj) = 0. _d 0 ENDDO ENDDO - DO j=1-1,sNy+1 - DO i=1-1,sNx+1 - cg2d_q(i,j,bi,bj) = 0. _d 0 - cg2d_r(i,j,bi,bj) = 0. _d 0 - cg2d_s(i,j,bi,bj) = 0. _d 0 -#ifdef ALLOW_CG2D_NSA - cg2d_z(i,j,bi,bj) = 0. _d 0 -#endif /* ALLOW_CG2D_NSA */ -#ifdef ALLOW_SRCG - cg2d_y(i,j,bi,bj) = 0. _d 0 - cg2d_v(i,j,bi,bj) = 0. _d 0 -#endif /* ALLOW_SRCG */ - ENDDO - ENDDO ENDDO ENDDO @@ -163,7 +149,7 @@ SUBROUTINE INI_CG2D( myThid ) ELSE C- convert Target-Residual (in W unit) to cg2d-solver residual unit [m^2/s^2] cg2dTolerance = cg2dNorm * cg2dTargetResWunit - & * globalArea / deltaTmom + & * globalArea / deltaTMom ENDIF _END_MASTER(myThid) @@ -199,14 +185,14 @@ SUBROUTINE INI_CG2D( myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) C- calculate and store solver main diagonal : - DO j=0,sNy+1 - DO i=0,sNx+1 - ks = ksurfC(i,j,bi,bj) + DO j=0,sNy + DO i=0,sNx + ks = kSurfC(i,j,bi,bj) aC2d(i,j,bi,bj) = -( & aW2d(i,j,bi,bj) + aW2d(i+1,j, bi,bj) & +aS2d(i,j,bi,bj) + aS2d( i,j+1,bi,bj) & +freeSurfFac*myNorm*recip_Bo(i,j,bi,bj)*deepFac2F(ks) - & *rA(i,j,bi,bj)/deltaTMom/deltaTfreesurf + & *rA(i,j,bi,bj)/deltaTMom/deltaTFreeSurf & ) ENDDO ENDDO diff --git a/model/src/ini_curvilinear_grid.F b/model/src/ini_curvilinear_grid.F index 9badd126c1..8eaf7b8d96 100644 --- a/model/src/ini_curvilinear_grid.F +++ b/model/src/ini_curvilinear_grid.F @@ -49,7 +49,7 @@ SUBROUTINE INI_CURVILINEAR_GRID( myThid ) INTEGER fp _RL tmpFac, tmpFac2 #ifdef ALLOW_MNC - CHARACTER*(80) mncFn + CHARACTER*(MAX_LEN_FNAM) mncFn #endif #ifndef OLD_GRID_IO INTEGER iG, jG, iL, iLen @@ -419,11 +419,11 @@ SUBROUTINE INI_CURVILINEAR_GRID( myThid ) C-- Exchange Angle (either loaded from file or computed) CALL EXCH_UV_AGRID_3D_RS(angleSinC,angleCosC,.TRUE., 1, myThid) -c CALL WRITE_FULLARRAY_RL('dxV',dxV,1,0,0,1,0,myThid) -c CALL WRITE_FULLARRAY_RL('dyU',dyU,1,0,0,1,0,myThid) -c CALL WRITE_FULLARRAY_RL('rAz',rAz,1,0,0,1,0,myThid) -c CALL WRITE_FULLARRAY_RL('xG' ,xG ,1,0,0,1,0,myThid) -c CALL WRITE_FULLARRAY_RL('yG' ,yG ,1,0,0,1,0,myThid) +c CALL WRITE_FULLARRAY_RS('dxV',dxV,1,0,0,1,0,myThid) +c CALL WRITE_FULLARRAY_RS('dyU',dyU,1,0,0,1,0,myThid) +c CALL WRITE_FULLARRAY_RS('rAz',rAz,1,0,0,1,0,myThid) +c CALL WRITE_FULLARRAY_RS('xG' ,xG ,1,0,0,1,0,myThid) +c CALL WRITE_FULLARRAY_RS('yG' ,yG ,1,0,0,1,0,myThid) C-- Now let us look at all these beasts IF ( plotLevel.GE.debLevC ) THEN diff --git a/model/src/ini_dynvars.F b/model/src/ini_dynvars.F index a1a6d55629..427e523405 100644 --- a/model/src/ini_dynvars.F +++ b/model/src/ini_dynvars.F @@ -1,4 +1,11 @@ +#include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +#ifdef ALLOW_MOM_COMMON +# include "MOM_COMMON_OPTIONS.h" +#endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: INI_DYNVARS @@ -75,20 +82,32 @@ SUBROUTINE INI_DYNVARS( myThid ) gtNm1(i,j,k,bi,bj) = 0. _d 0 gsNm1(i,j,k,bi,bj) = 0. _d 0 #endif - totPhiHyd (i,j,k,bi,bj) = 0. _d 0 - rhoInSitu (i,j,k,bi,bj) = 0. _d 0 +#if (defined (ALLOW_3D_DIFFKR) || defined (ALLOW_DIFFKR_CONTROL)) + diffKr(i,j,k,bi,bj)= 0. _d 0 +#endif +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + smag3D_diffK(i,j,k,bi,bj) = 0. _d 0 +#endif + totPhiHyd(i,j,k,bi,bj) = 0. _d 0 + rhoInSitu(i,j,k,bi,bj) = 0. _d 0 IVDConvCount(i,j,k,bi,bj) = 0. _d 0 +#ifdef ALLOW_LEITH_QG + sigmaRfield(i,j,k,bi,bj) = 0. _d 0 +#endif #ifdef ALLOW_SOLVE4_PS_AND_DRAG - dU_psFacX (i,j,k,bi,bj) = 0. _d 0 - dV_psFacY (i,j,k,bi,bj) = 0. _d 0 + dU_psFacX(i,j,k,bi,bj) = 0. _d 0 + dV_psFacY(i,j,k,bi,bj) = 0. _d 0 #endif /* ALLOW_SOLVE4_PS_AND_DRAG */ +#ifdef INCLUDE_SOUNDSPEED_CALC_CODE + cSound(i,j,k,bi,bj) = 0. _d 0 +#endif /* INCLUDE_SOUNDSPEED_CALC_CODE */ ENDDO ENDDO ENDDO C- 2D arrays - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx etaN(i,j,bi,bj) = 0. _d 0 etaH(i,j,bi,bj) = 0. _d 0 phiHydLow(i,j,bi,bj) = 0. _d 0 diff --git a/model/src/ini_eos.F b/model/src/ini_eos.F index 97b5498f7d..354a17c90f 100644 --- a/model/src/ini_eos.F +++ b/model/src/ini_eos.F @@ -532,7 +532,7 @@ SUBROUTINE EOS_CHECK( myThid ) I myThid ) C- Reference value WRITE(msgBuf,'(2(A,F4.1),A,F5.0,2A,F10.5,A,F11.5)') - & 'rho(', sFld(i,j), ' PSU,', + & 'rho(', sFld(i,j), ' g/kg,', & tFld(i,j), ' degC,', & pLoc(kcheck)*SItoBar, ' bar)', & ' = ', rLoc(kcheck), ' ', bLoc(kcheck) @@ -545,7 +545,7 @@ SUBROUTINE EOS_CHECK( myThid ) ELSE C- Reference value WRITE(msgBuf,'(2(A,F4.1),A,F5.0,2A,F10.5,A,F11.5)') - & 'rho(', sFld(i,j), ' PSU,', + & 'rho(', sFld(i,j), ' g/kg,', & tFld(i,j), ' degC,', & pLoc(kcheck)*SItoBar, ' bar)', & ' = ', rLoc(kcheck) diff --git a/model/src/ini_ffields.F b/model/src/ini_ffields.F index ed783ed995..58672f22e2 100644 --- a/model/src/ini_ffields.F +++ b/model/src/ini_ffields.F @@ -131,6 +131,9 @@ SUBROUTINE INI_FFIELDS( myThid ) adjustColdSST_diag (i,j,bi,bj) = 0. _d 0 lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0 lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0 +#ifdef ALLOW_BALANCE_FLUXES + weight2BalanceFlx(i,j,bi,bj) = 0. _d 0 +#endif botDragU (i,j,bi,bj) = 0. _d 0 botDragV (i,j,bi,bj) = 0. _d 0 ENDDO diff --git a/model/src/ini_forcing.F b/model/src/ini_forcing.F index e9b31f6d19..d1121bd7dc 100644 --- a/model/src/ini_forcing.F +++ b/model/src/ini_forcing.F @@ -146,6 +146,25 @@ SUBROUTINE INI_FORCING( myThid ) # endif ENDIF #endif /* ALLOW_GEOTHERMAL_FLUX */ +#ifdef ALLOW_BALANCE_FLUXES + IF ( selectBalanceEmPmR.EQ.2 ) THEN +C- set default weight to 1 (i.e., same correction as selectBalanceEmPmR=1 ) + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + weight2BalanceFlx(i,j,bi,bj) = oneRS + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + IF ( wghtBalanceFile .NE. ' ' ) THEN + CALL READ_FLD_XY_RS( wghtBalanceFile, ' ', + & weight2BalanceFlx, 0, myThid ) + CALL EXCH_XY_RS( weight2BalanceFlx, myThid ) + ENDIF +#endif /* ALLOW_GEOTHERMAL_FLUX */ CALL EXCH_UV_XY_RS( fu,fv, .TRUE., myThid ) CALL EXCH_XY_RS( Qnet , myThid ) @@ -156,34 +175,14 @@ SUBROUTINE INI_FORCING( myThid ) CALL EXCH_XY_RS( lambdaThetaClimRelax, myThid ) CALL EXCH_XY_RS( lambdaSaltClimRelax , myThid ) #ifdef SHORTWAVE_HEATING - CALL EXCH_XY_RS(Qsw , myThid ) + CALL EXCH_XY_RS( Qsw , myThid ) #endif #ifdef ATMOSPHERIC_LOADING - CALL EXCH_XY_RS(pLoad , myThid ) + CALL EXCH_XY_RS( pLoad , myThid ) C CALL PLOT_FIELD_XYRS( pLoad, 'S/R INI_FORCING pLoad',1,myThid) #endif C CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid) C CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid) -#ifdef ATMOSPHERIC_LOADING - IF ( pLoadFile .NE. ' ' .AND. usingPCoords ) THEN -C-- This is a hack used to read phi0surf from a file (pLoadFile) -C instead of computing it from bathymetry & density ref. profile. -C- Ocean: The true atmospheric P-loading is not yet implemented for P-coord -C (requires time varying dP(Nr) like dP(k-bottom) with NonLin FS). -C- Atmos: sometime usefull to overwrite phi0surf with fixed-in-time field -C read from file (and anyway, pressure loading is meaningless here) - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - phi0surf(i,j,bi,bj) = pLoad(i,j,bi,bj) - ENDDO - ENDDO - ENDDO - ENDDO - ENDIF -#endif /* ATMOSPHERIC_LOADING */ - RETURN END diff --git a/model/src/ini_linear_phisurf.F b/model/src/ini_linear_phisurf.F index bb52c0e427..1ba22b9f37 100644 --- a/model/src/ini_linear_phisurf.F +++ b/model/src/ini_linear_phisurf.F @@ -28,7 +28,6 @@ SUBROUTINE INI_LINEAR_PHISURF( myThid ) #include "SURFACE.h" C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C myThid :: my Thread Id number INTEGER myThid @@ -37,11 +36,12 @@ SUBROUTINE INI_LINEAR_PHISURF( myThid ) C needed since MDSIO now allows (2009/06/07) to write local arrays C !LOCAL VARIABLES: -C === Local variables === C topoHloc :: Temporary array used to write surface topography C bi,bj :: tile indices C i,j,k :: Loop counters +#ifndef ALLOW_AUTODIFF _RS topoHloc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif INTEGER bi, bj INTEGER i, j, k _RL pLoc, rhoLoc @@ -197,15 +197,20 @@ SUBROUTINE INI_LINEAR_PHISURF( myThid ) C-- Initialise phi0surf: used for atmos. surf. P-loading (ocean, z-coord) C or topographic geopotential anom. (p-coord) - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - phi0surf(i,j,bi,bj) = 0. - ENDDO - ENDDO + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + phi0surf(i,j,bi,bj) = 0. ENDDO ENDDO + ENDDO + ENDDO + + IF ( geoPotAnomFile .NE. ' ' ) THEN + CALL READ_FLD_XY_RS( geoPotAnomFile, ' ', phi0Surf, 0, myThid ) + ENDIF + CALL EXCH_XY_RS( phi0Surf , myThid ) IF ( fluidIsAir .AND. topoFile.NE.' ' ) THEN diff --git a/model/src/ini_mixing.F b/model/src/ini_mixing.F index 7c697fea3e..4dbab52d7f 100644 --- a/model/src/ini_mixing.F +++ b/model/src/ini_mixing.F @@ -1,11 +1,4 @@ -#include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_GMREDI -# include "GMREDI_OPTIONS.h" -#endif CBOP C !ROUTINE: INI_MIXING @@ -26,49 +19,40 @@ SUBROUTINE INI_MIXING( myThid ) #include "PARAMS.h" #include "GRID.h" #include "DYNVARS.h" -#ifdef ALLOW_CTRL -# include "CTRL_FIELDS.h" -# ifdef ALLOW_GMREDI -# include "GMREDI.h" -# endif -#endif C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myThid :: Number of this instance +C myThid :: my Thread Id number INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == +#if (defined ALLOW_3D_DIFFKR) || (defined ALLOW_BL79_LAT_VARY) C bi,bj :: tile indices C i,j,k :: Loop counters INTEGER bi, bj - INTEGER i, j, k + INTEGER i, j +#endif +#ifdef ALLOW_3D_DIFFKR + INTEGER k +#endif CEOP +#ifdef ALLOW_3D_DIFFKR DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO k=1,Nr DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx -#ifdef ALLOW_3D_DIFFKR diffKr(i,j,k,bi,bj) = diffKrNrS(k) -#endif -#if (defined (ALLOW_CTRL) && defined (ALLOW_GMREDI)) -# ifdef ALLOW_KAPGM_CONTROL - kapGM(i,j,k,bi,bj) = GM_background_K* - & GM_bolFac2d(i,j,bi,bj)*GM_bolFac1d(k) -# endif -# ifdef ALLOW_KAPREDI_CONTROL - kapRedi(i,j,k,bi,bj) = GM_isopycK* - & GM_isoFac2d(i,j,bi,bj)*GM_isoFac1d(k) -# endif -#endif /* ALLOW_CTRL & ALLOW_GMREDI */ ENDDO ENDDO ENDDO ENDDO ENDDO + IF ( diffKrFile .NE. ' ' ) THEN + CALL READ_FLD_XYZ_RL( diffKrFile, ' ', diffKr, 0, myThid ) + _EXCH_XYZ_RL( diffKr, myThid ) + ENDIF +#endif /* ALLOW_3D_DIFFKR */ #ifdef ALLOW_BL79_LAT_VARY DO bj = myByLo(myThid), myByHi(myThid) @@ -77,39 +61,13 @@ SUBROUTINE INI_MIXING( myThid ) DO i = 1-OLx, sNx+OLx BL79LatArray(i,j,bi,bj) = 0.0 _d 0 IF ( ABS(YC(i,j,bi,bj)) .LT. BL79LatVary ) - & BL79LatArray(i,j,bi,bj) = - & ( 1 + COS(YC(i,j,bi,bj)*pi/BL79LatVary) ) / 2 + & BL79LatArray(i,j,bi,bj) = halfRL + & *( 1. _d 0 + COS(YC(i,j,bi,bj)*PI/BL79LatVary) ) ENDDO ENDDO ENDDO ENDDO #endif -#ifdef ALLOW_3D_DIFFKR - IF ( diffKrFile .NE. ' ' ) THEN - CALL READ_FLD_XYZ_RL(diffKrFile,' ',diffKr,0,myThid) - _EXCH_XYZ_RL( diffKr, myThid ) - ENDIF -#endif /* ALLOW_3D_DIFFKR */ -#ifdef ALLOW_CTRL -#ifdef ALLOW_KAPGM_CONTROL -#ifdef ALLOW_KAPGM_3DFILE - IF ( GM_background_K3dFile .NE. ' ' ) THEN - CALL READ_FLD_XYZ_RL(GM_background_K3dFile,' ',KapGM,0,myThid) - ENDIF -#endif - _EXCH_XYZ_RL( kapGM, myThid ) - CALL WRITE_FLD_XYZ_RL( 'KapGM', ' ', kapGM, 0, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL -#ifdef ALLOW_KAPREDI_3DFILE - IF ( GM_isopycK3dFile .NE. ' ' ) THEN - CALL READ_FLD_XYZ_RL(GM_isopycK3dFile,' ',KapRedi,0,myThid) - ENDIF -#endif - _EXCH_XYZ_RL( kapRedi, myThid ) - CALL WRITE_FLD_XYZ_RL( 'KapRedi', ' ', kapRedi, 0, myThid ) -#endif -#endif /* ALLOW_CTRL */ RETURN END diff --git a/model/src/ini_mnc_vars.F b/model/src/ini_mnc_vars.F index 9951e211d9..acedf25585 100644 --- a/model/src/ini_mnc_vars.F +++ b/model/src/ini_mnc_vars.F @@ -403,8 +403,7 @@ SUBROUTINE INI_MNC_VARS( myThid ) & 'Net upward freshwater flux', myThid) CALL MNC_CW_ADD_VNAME('saltFlux', 'Cen_xy_Hn__-__t', 3,4, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('saltFlux','units', - & 'psu.kg/m^2/s', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('saltFlux','units','g/m^2/s', myThid) CALL MNC_CW_ADD_VATTR_TEXT('saltFlux','description', & 'Net upward salt flux', myThid) @@ -414,7 +413,7 @@ SUBROUTINE INI_MNC_VARS( myThid ) & ' Sea surface temperature for relaxation', myThid) CALL MNC_CW_ADD_VNAME('SSS', 'Cen_xy_Hn__-__t', 3,4, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('SSS','units','psu', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('SSS','units','g/kg', myThid) CALL MNC_CW_ADD_VATTR_TEXT('SSS','description', & 'Sea surface salinity for relaxation', myThid) diff --git a/model/src/ini_model_io.F b/model/src/ini_model_io.F index 7ceb78052e..d3ea6a71c2 100644 --- a/model/src/ini_model_io.F +++ b/model/src/ini_model_io.F @@ -118,10 +118,12 @@ SUBROUTINE INI_MODEL_IO( myThid ) saltStartAB = nIter0 mom_StartAB = nIter0 nHydStartAB = nIter0 + qHydStartAB = nIter0 IF ( startFromPickupAB2 ) tempStartAB = MIN( nIter0 , 1 ) saltStartAB = tempStartAB mom_StartAB = tempStartAB nHydStartAB = tempStartAB + qHydStartAB = tempStartAB dPhiNHstatus= 0 C- Initialise Alternating pickup-suffix diff --git a/model/src/ini_nh_vars.F b/model/src/ini_nh_vars.F index bab2695ec0..8cc7248c5d 100644 --- a/model/src/ini_nh_vars.F +++ b/model/src/ini_nh_vars.F @@ -27,14 +27,16 @@ SUBROUTINE INI_NH_VARS ( myThid ) INTEGER myThid CEOP -#ifdef ALLOW_NONHYDROSTATIC +#if (defined ALLOW_NONHYDROSTATIC || defined ALLOW_QHYD_STAGGER_TS ) C !LOCAL VARIABLES: C == Local variables == C bi,bj :: tile indices C i,j,k :: loop counters INTEGER bi, bj INTEGER i, j, k +#endif /* ALLOW_NONHYDROSTATIC or ALLOW_QHYD_STAGGER_TS */ +#ifdef ALLOW_NONHYDROSTATIC c IF ( nonHydrostatic ) THEN C- Note: comment out this IF so that we are sure that all variables in C common blocs (even if never used later) are always initialised @@ -62,8 +64,28 @@ SUBROUTINE INI_NH_VARS ( myThid ) ENDDO ENDDO c ENDIF - #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS +c IF ( staggerTimeStep ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +#ifdef ALLOW_ADAMSBASHFORTH_3 + QHydGwNm(i,j,k,bi,bj,1) = 0. _d 0 + QHydGwNm(i,j,k,bi,bj,2) = 0. _d 0 +#else /* ALLOW_ADAMSBASHFORTH_3 */ + QHydGwNm(i,j,k,bi,bj) = 0. _d 0 +#endif /* ALLOW_ADAMSBASHFORTH_3 */ + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +c ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + RETURN END diff --git a/model/src/ini_nlfs_vars.F b/model/src/ini_nlfs_vars.F index 46ed7dd32b..09b2abd7ac 100644 --- a/model/src/ini_nlfs_vars.F +++ b/model/src/ini_nlfs_vars.F @@ -32,8 +32,10 @@ SUBROUTINE INI_NLFS_VARS( myThid ) C i,j,k,bi,bj :: loop counter INTEGER bi,bj #ifdef NONLIN_FRSURF - INTEGER i, j - INTEGER k, ks + INTEGER i, j, ks +# ifdef ALLOW_AUTODIFF + INTEGER k +# endif _RL hFacInfMOM, Rmin_tmp #else /* NONLIN_FRSURF */ # ifdef EXACT_CONSERV @@ -107,6 +109,7 @@ SUBROUTINE INI_NLFS_VARS( myThid ) ENDDO ENDDO +# ifdef ALLOW_AUTODIFF C-- to make TAF happy: reset hFac to h0Fac (copied from hFac in ini_linear_phisurf) DO k=1,Nr DO j=1-OLy,sNy+OLy @@ -117,6 +120,28 @@ SUBROUTINE INI_NLFS_VARS( myThid ) ENDDO ENDDO ENDDO + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +# ifdef USE_MASK_AND_NO_IF + recip_hFacC(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) / + & ( _hFacC(i,j,k,bi,bj) + (oneRS - maskC(i,j,k,bi,bj)) ) + recip_hFacW(i,j,k,bi,bj) = maskW(i,j,k,bi,bj) / + & ( _hFacW(i,j,k,bi,bj) + (oneRS - maskW(i,j,k,bi,bj)) ) + recip_hFacS(i,j,k,bi,bj) = maskS(i,j,k,bi,bj) / + & ( _hFacS(i,j,k,bi,bj) + (oneRS - maskS(i,j,k,bi,bj)) ) +# else + IF ( maskC(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacC(i,j,k,bi,bj) = oneRS / _hFacC(i,j,k,bi,bj) + IF ( maskW(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacW(i,j,k,bi,bj) = oneRS / _hFacW(i,j,k,bi,bj) + IF ( maskS(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacS(i,j,k,bi,bj) = oneRS / _hFacS(i,j,k,bi,bj) +# endif + ENDDO + ENDDO + ENDDO +# endif /* ALLOW_AUTODIFF */ #endif /* NONLIN_FRSURF */ C- end 1rst bi,bj loop. diff --git a/model/src/ini_parms.F b/model/src/ini_parms.F index 0f43bef06d..dd26ddb742 100644 --- a/model/src/ini_parms.F +++ b/model/src/ini_parms.F @@ -36,8 +36,6 @@ SUBROUTINE INI_PARMS( myThid ) C :: Units are that of coordinate system C :: i.e. cartesian => metres C :: s. polar => degrees -C useJamartWetPoints :: Use wet-point method for Coriolis (Jamart & Ozer 1986) -C SadournyCoriolis :: for backward compatibility C deltaTtracer :: Timestep for tracer equations ( s ) C forcing_In_AB :: flag to put all forcings (Temp,Salt,Tracers,Momentum) C :: contribution in (or out of) Adams-Bashforth time stepping. @@ -52,9 +50,6 @@ SUBROUTINE INI_PARMS( myThid ) _RL dySpacing _RL deltaTtracer CHARACTER*(MAX_LEN_MBUF) msgBuf - LOGICAL useJamartWetPoints - LOGICAL useEnergyConservingCoriolis - LOGICAL SadournyCoriolis LOGICAL forcing_In_AB INTEGER goptCount INTEGER gridNx, gridNy @@ -121,6 +116,9 @@ SUBROUTINE INI_PARMS( myThid ) C useConstantF :: Coriolis coeff set to f0 (replaced by selectCoriMap=0) C useBetaPlaneF :: Coriolis coeff = f0 + beta.y (replaced by selectCoriMap=1) C useSphereF :: Coriolis = 2.omega.sin(phi) (replaced by selectCoriMap=2) +C useJamartWetPoints :: for backward compat. (replaced by selectCoriScheme=1) +C :: Use wet-point method for Coriolis (Jamart & Ozer 1986) +C SadournyCoriolis :: for backward compat. (replaced by selectVortScheme=2) C tracerAdvScheme :: tracer advection scheme (old passive tracer code) C trac_EvPrRn :: tracer conc. in Rain & Evap (old passive tracer code) C saltDiffusion :: diffusion of salinity on/off (flag not used) @@ -138,6 +136,13 @@ SUBROUTINE INI_PARMS( myThid ) C allowInteriorFreezing :: Allow water at depth to freeze and rise to the surface C (replaced by pkg/frazil) C useOldFreezing :: use the old version (before checkpoint52a_pre, 2003-11-12) +C balanceEmPmR :: for backward compat. (replaced by selectBalanceEmPmR=1), +C :: substract global mean of EmPmR at every time step +C Namelist PARM02: +C cg2dChkResFreq :: Frequency with which to check 2-D con. grad solver +C residual (was never coded) +C cg3dChkResFreq :: Frequency with which to check 3-D con. grad solver +C residual (was never coded) C Namelist PARM03: C tauThetaClimRelax3Dim :: replaced by pkg/rbcs (3.D Relaxation B.Cs) C tauSaltClimRelax3Dim :: replaced by pkg/rbcs (3.D Relaxation B.Cs) @@ -156,6 +161,9 @@ SUBROUTINE INI_PARMS( myThid ) INTEGER nRetired LOGICAL useConstantF, useBetaPlaneF, useSphereF + LOGICAL useJamartWetPoints + LOGICAL useEnergyConservingCoriolis + LOGICAL SadournyCoriolis LOGICAL tempDiffusion, saltDiffusion INTEGER tracerAdvScheme _RL trac_EvPrRn @@ -166,6 +174,9 @@ SUBROUTINE INI_PARMS( myThid ) LOGICAL usePickupBeforeC35 LOGICAL saveDebugMode LOGICAL allowInteriorFreezing, useOldFreezing + LOGICAL balanceEmPmR +C- + INTEGER cg2dChkResFreq, cg3dChkResFreq C- _RL tauThetaClimRelax3Dim, tauSaltClimRelax3Dim LOGICAL calendarDumps @@ -174,6 +185,7 @@ SUBROUTINE INI_PARMS( myThid ) _RL Ro_SeaLevel _RL rkFac _RL thetaMin, phiMin +C- CHARACTER*(MAX_LEN_FNAM) shelfIceFile CHARACTER*(MAX_LEN_FNAM) dQdTfile @@ -192,12 +204,13 @@ SUBROUTINE INI_PARMS( myThid ) & viscA4Max, viscA4Grid, viscA4GridMax, viscA4GridMin, & viscA4ReMax, viscAhReMax, & cosPower, viscAstrain, viscAtension, - & diffKhT, diffK4T, diffKhS, diffK4S, + & diffKhT, diffK4T, diffKhS, diffK4S, smag3D_diffCoeff, & surf_pRef, tRef, sRef, tRefFile, sRefFile, rhoRefFile, & eosType, selectP_inEOS_Zc, integr_GeoPot, selectFindRoSurf, & HeatCapacity_Cp, celsius2K, atm_Cp, atm_Rd, atm_Rq, atm_Po, & no_slip_sides, sideDragFactor, no_slip_bottom, bottomVisc_pCell, - & bottomDragLinear, bottomDragQuadratic, selectBotDragQuadr, + & bottomDragLinear, bottomDragQuadratic, zRoughBot, + & selectBotDragQuadr, & momViscosity, momAdvection, momForcing, momTidalForcing, & useCoriolis, useConstantF, useBetaPlaneF, useSphereF, & use3dCoriolis, momPressureForcing, @@ -235,17 +248,17 @@ SUBROUTINE INI_PARMS( myThid ) & selectAddFluid, useRealFreshWaterFlux, convertFW2Salt, & temp_EvPrRn, salt_EvPrRn, trac_EvPrRn, & temp_addMass, salt_addMass, zonal_filt_lat, - & smoothAbsFuncRange, - & balanceEmPmR, balanceQnet, balancePrintMean, + & smoothAbsFuncRange, sIceLoadFac, + & selectBalanceEmPmR, balanceEmPmR, balanceQnet, balancePrintMean, & balanceThetaClimRelax, balanceSaltClimRelax C-- Elliptic solver parameters NAMELIST /PARM02/ - & cg2dMaxIters, cg2dChkResFreq, cg2dUseMinResSol, + & cg2dMaxIters, cg2dMinItersNSA, cg2dChkResFreq, cg2dUseMinResSol, & cg2dTargetResidual, cg2dTargetResWunit, & cg2dpcOffDFac, cg2dPreCondFreq, & cg3dMaxIters, cg3dChkResFreq, cg3dTargetResidual, - & useSRCGSolver, printResidualFreq + & useNSACGSolver, useSRCGSolver, printResidualFreq C-- Time stepping parammeters NAMELIST /PARM03/ @@ -291,10 +304,11 @@ SUBROUTINE INI_PARMS( myThid ) & zonalWindFile, meridWindFile, & thetaClimFile, saltClimFile, & surfQfile, surfQnetFile, surfQswFile, EmPmRfile, saltFluxFile, - & lambdaThetaFile, lambdaSaltFile, & uVelInitFile, vVelInitFile, pSurfInitFile, - & dQdTFile, ploadFile, addMassFile, tCylIn, tCylOut, + & dQdTFile, ploadFile, geoPotAnomFile, addMassFile, + & tCylIn, tCylOut, & eddyPsiXFile, eddyPsiYFile, geothermalFile, + & lambdaThetaFile, lambdaSaltFile, wghtBalanceFile, & mdsioLocalDir, adTapeDir, & the_run_name CEOP @@ -318,6 +332,7 @@ SUBROUTINE INI_PARMS( myThid ) useJamartWetPoints = .FALSE. useEnergyConservingCoriolis = .FALSE. SadournyCoriolis = .FALSE. + balanceEmPmR = .FALSE. C-- Initialise "which vertical coordinate system used" flags. zCoordInputData = .FALSE. @@ -343,6 +358,8 @@ SUBROUTINE INI_PARMS( myThid ) saveDebugMode = debugMode allowInteriorFreezing = .FALSE. useOldFreezing = .FALSE. + cg2dChkResFreq = UNSET_I + cg3dChkResFreq = UNSET_I tauThetaClimRelax3Dim = UNSET_RL tauSaltClimRelax3Dim = UNSET_RL calendarDumps = .FALSE. @@ -481,7 +498,7 @@ SUBROUTINE INI_PARMS( myThid ) IF ( viscAhZ .EQ. UNSET_RL ) viscAhZ = viscAh IF ( viscA4D .EQ. UNSET_RL ) viscA4D = viscA4 IF ( viscA4Z .EQ. UNSET_RL ) viscA4Z = viscA4 -C-- horizontal viscosity for vertical moments +C-- horizontal viscosity for vertical momentum IF ( viscAhW .EQ. UNSET_RL ) viscAhW = viscAhD IF ( viscA4W .EQ. UNSET_RL ) viscA4W = viscA4D C-- z,p,r coord input switching. @@ -517,8 +534,21 @@ SUBROUTINE INI_PARMS( myThid ) C- set default scheme for quadratic bottom-drag IF ( selectBotDragQuadr.EQ.-1 .AND. bottomDragQuadratic.NE.0. ) & selectBotDragQuadr = 0 + IF ( selectBotDragQuadr.EQ.-1 .AND. zRoughBot.NE.0. ) + & selectBotDragQuadr = 0 #endif /* ALLOW_MOM_COMMON */ + IF ( smag3D_diffCoeff.NE.zeroRL .AND. .NOT.useSmag3D ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** INI_PARMS: ', + & 'will not use "smag3D_diffCoeff" without useSmag3D' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** INI_PARMS: ', + & '==> reset "smag3D_diffCoeff" to zero' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + smag3D_diffCoeff = zeroRL + ENDIF IF ( diffKzT .NE. UNSET_RL ) zCoordInputData = .TRUE. IF ( diffKpT .NE. UNSET_RL ) pCoordInputData = .TRUE. IF ( diffKrT .NE. UNSET_RL ) rCoordInputData = .TRUE. @@ -651,6 +681,16 @@ SUBROUTINE INI_PARMS( myThid ) errCount = errCount + 1 ENDIF ENDIF + IF ( selectBalanceEmPmR.EQ.UNSET_I ) THEN + selectBalanceEmPmR = 0 + IF ( balanceEmPmR ) selectBalanceEmPmR = 1 + ELSEIF ( selectBalanceEmPmR.NE.1 .AND. balanceEmPmR ) THEN + WRITE(msgBuf,'(A,I5,A)') + & 'S/R INI_PARMS: selectBalanceEmPmR=', selectBalanceEmPmR, + & ' conflicts with "balanceEmPmR"' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF IF ( ivdc_kappa.NE.zeroRL .AND. .NOT.implicitDiffusion ) THEN WRITE(msgBuf,'(A,A)') @@ -858,6 +898,19 @@ SUBROUTINE INI_PARMS( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) ENDIF +C Check for retired parameters still being used + IF ( cg2dChkResFreq .NE. UNSET_I ) THEN + nRetired = nRetired+1 + WRITE(msgBuf,'(A,A)') 'S/R INI_PARMS: unused "cg2dChkResFreq"', + & ' is no longer allowed in file "data"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( cg3dChkResFreq .NE. UNSET_I ) THEN + nRetired = nRetired+1 + WRITE(msgBuf,'(A,A)') 'S/R INI_PARMS: unused "cg3dChkResFreq"', + & ' is no longer allowed in file "data"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF C-- Time stepping parameters rCD = -1. _d 0 diff --git a/model/src/ini_pressure.F b/model/src/ini_pressure.F index e827f663fe..4a206296d9 100644 --- a/model/src/ini_pressure.F +++ b/model/src/ini_pressure.F @@ -29,17 +29,16 @@ SUBROUTINE INI_PRESSURE( myThid ) #include "DYNVARS.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myThid - Number of this instance of INI_PRESSURE +C myThid :: my Thread Id number INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == C dPhiHydX,Y :: Gradient (X & Y directions) of Hyd. Potential C bi,bj :: tile indices C i,j,k :: Loop counters INTEGER bi, bj INTEGER i, j, k +#ifndef ALLOW_AUTODIFF INTEGER iMin, iMax, jMin, jMax, npiter _RL PhiHydF (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL PhiHydC (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -48,13 +47,10 @@ SUBROUTINE INI_PRESSURE( myThid ) _RL oldPhi (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL count, rmspp, rmsppold _RL sumTile, rmsTile +#endif CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP - iMin = 1-OLx - iMax = sNx+OLx - jMin = 1-OLy - jMax = sNy+OLy _BEGIN_MASTER( myThid ) WRITE(msgBuf,'(a)') @@ -82,6 +78,11 @@ SUBROUTINE INI_PRESSURE( myThid ) cph-- really be needed; cph-- would need storing of totPhiHyd for each npiter + iMin = 1-OLx + iMax = sNx+OLx + jMin = 1-OLy + jMax = sNy+OLy + rmspp = 1. _d 0 rmsppold = 0. _d 0 npiter = 0 diff --git a/model/src/initialise_varia.F b/model/src/initialise_varia.F index 0b117ccacc..5113604141 100644 --- a/model/src/initialise_varia.F +++ b/model/src/initialise_varia.F @@ -6,6 +6,29 @@ #ifdef ALLOW_CTRL # include "CTRL_OPTIONS.h" #endif +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +# endif +# ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +# endif +# ifdef ALLOW_EXF +# include "EXF_OPTIONS.h" +# endif +# ifdef ALLOW_SEAICE +# include "SEAICE_OPTIONS.h" +# endif +# ifdef ALLOW_ECCO +# include "ECCO_OPTIONS.h" +# endif +c# ifdef ALLOW_THSICE +c# include "THSICE_OPTIONS.h" +c# endif +# ifdef ALLOW_BLING +# include "BLING_OPTIONS.h" +# endif +#endif /* ALLOW_TAPENADE */ CBOP C !ROUTINE: INITIALISE_VARIA @@ -87,16 +110,69 @@ SUBROUTINE INITIALISE_VARIA( myThid ) #ifdef ALLOW_AUTODIFF # include "GRID.h" # include "FFIELDS.h" -# include "CTRL_FIELDS.h" #endif +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# endif +# ifdef ALLOW_CTRL +# include "CTRL_SIZE.h" +# include "optim.h" +# include "ctrl.h" +# include "CTRL_GENARR.h" +# include "ctrl_dummy.h" +# endif +# ifdef ALLOW_CD_CODE +# include "CD_CODE_VARS.h" +# endif +# ifdef ALLOW_DIC +# include "DIC_VARS.h" +# include "DIC_ATMOS.h" +# include "DIC_LOAD.h" +# endif +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +# include "PTRACERS_PARAMS.h" +# endif +# ifdef ALLOW_GENERIC_ADVDIFF +# include "GAD_SOM_VARS.h" +# endif +# ifdef ALLOW_EXF +# include "EXF_PARAM.h" +# include "EXF_INTERP_SIZE.h" +# include "EXF_INTERP_PARAM.h" +# include "EXF_FIELDS.h" +# endif +# ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +# include "STREAMICE_CG.h" +# endif +# ifdef ALLOW_THSICE +# include "THSICE_VARS.h" +# endif +# ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE.h" +# endif +# ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +# endif +# ifdef ALLOW_BLING +# include "BLING_VARS.h" +# include "BLING_LOAD.h" +# endif +#endif /* ALLOW_TAPENADE */ + C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == +#ifdef INCLUDE_CONVECT_INI_CALL INTEGER bi,bj +#endif CEOP #ifdef ALLOW_DEBUG @@ -107,8 +183,7 @@ SUBROUTINE INITIALISE_VARIA( myThid ) nIter0 = NINT( (startTime-baseTime)/deltaTClock ) #endif /* ALLOW_AUTODIFF */ -#ifdef ALLOW_CTRL -# ifdef ALLOW_DEPTH_CONTROL +#ifdef ALLOW_DEPTH_CONTROL C-- Intialize the depth for TAF/TAMC CALL INI_DEPTHS( myThid ) C-- Get control parameter depth @@ -117,8 +192,7 @@ SUBROUTINE INITIALISE_VARIA( myThid ) CALL UPDATE_MASKS_ETC( myThid ) C-- Update laplace operators for use in 2D conjugate gradient solver. CALL UPDATE_CG2D( startTime, nIter0, myThid ) -# endif /* ALLOW_DEPTH_CONTROL */ -#endif /* ALLOW_CTRL */ +#endif /* ALLOW_DEPTH_CONTROL */ C-- Initialise Non-Lin FreeSurf variables: CALL INI_NLFS_VARS( myThid ) @@ -143,6 +217,9 @@ SUBROUTINE INITIALISE_VARIA( myThid ) C stored files. #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('INI_FIELDS',myThid) +#endif +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE phi0surf = tapelev_init, key = 1 #endif CALL INI_FIELDS( myThid ) @@ -194,7 +271,7 @@ SUBROUTINE INITIALISE_VARIA( myThid ) c ENDIF c#endif -#ifndef ALLOW_AUTODIFF_WHTAPEIO +#ifdef INCLUDE_CONVECT_INI_CALL C-- Initial conditions are convectively adjusted (for historical reasons) IF ( startTime .EQ. baseTime .AND. cAdjFreq .NE. 0. ) THEN #ifdef ALLOW_DEBUG @@ -209,7 +286,7 @@ SUBROUTINE INITIALISE_VARIA( myThid ) ENDDO ENDDO ENDIF -#endif /* ALLOW_AUTODIFF_WHTAPEIO */ +#endif /* INCLUDE_CONVECT_INI_CALL */ #ifdef NONLIN_FRSURF C-- Compute the surface level thickness <-- function of etaH(n) @@ -229,6 +306,12 @@ SUBROUTINE INITIALISE_VARIA( myThid ) # endif /* DISABLE_SIGMA_CODE */ ELSE CALL CALC_SURF_DR(etaH, startTime, -1 , myThid ) +#ifdef ALLOW_AUTODIFF_TAMC +C These fields are only updated in the surface layer and TAF gets +C confused about it so that their contribution is not always added +C to the hfac*_ad lateron. This directive fixes that. +CADJ INCOMPLETE recip_hFacC, recip_hFacW, recip_hFacS +#endif /* ALLOW_AUTODIFF_TAMC */ CALL UPDATE_SURF_DR( .TRUE., startTime, nIter0, myThid ) ENDIF ENDIF diff --git a/model/src/integr_continuity.F b/model/src/integr_continuity.F index 4f3b5d2181..ea99be2d75 100644 --- a/model/src/integr_continuity.F +++ b/model/src/integr_continuity.F @@ -3,6 +3,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: INTEGR_CONTINUITY @@ -31,6 +34,9 @@ SUBROUTINE INTEGR_CONTINUITY( #include "GRID.h" #include "SURFACE.h" #include "FFIELDS.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == @@ -72,6 +78,10 @@ SUBROUTINE INTEGR_CONTINUITY( #endif /* ndef ALLOW_ADDFLUID */ #if (defined NONLIN_FRSURF) && !(defined DISABLE_RSTAR_CODE) _RL rStarDhDt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +# if (defined ALLOW_AUTODIFF_TAMC) && (defined ALLOW_DEPTH_CONTROL) +C tkey :: tape key (tile dependent) + INTEGER tkey +# endif #else _RL rStarDhDt(1) #endif @@ -144,7 +154,7 @@ SUBROUTINE INTEGR_CONTINUITY( DO j=1,sNy DO i=1,sNx dEtaHdt(i,j,bi,bj) = (etaN(i,j,bi,bj)-etaH(i,j,bi,bj)) - & / (implicDiv2Dflow*deltaTfreesurf) + & / (implicDiv2Dflow*deltaTFreeSurf) ENDDO ENDDO ENDIF @@ -160,7 +170,7 @@ SUBROUTINE INTEGR_CONTINUITY( ELSEIF ( myIter.EQ.nIter0 ) THEN DO j=1,sNy DO i=1,sNx - ks = kSurfC(I,J,bi,bj) + ks = kSurfC(i,j,bi,bj) PmEpR(i,j,bi,bj) = 0. _d 0 dEtaHdt(i,j,bi,bj) = -hDivFlow(i,j)*recip_rA(i,j,bi,bj) & *recip_deepFac2F(ks) @@ -215,7 +225,7 @@ SUBROUTINE INTEGR_CONTINUITY( DO j=1,sNy DO i=1,sNx etaN(i,j,bi,bj) = etaH(i,j,bi,bj) - & + implicDiv2Dflow*dEtaHdt(i,j,bi,bj)*deltaTfreesurf + & + implicDiv2Dflow*dEtaHdt(i,j,bi,bj)*deltaTFreeSurf ENDDO ENDDO ENDIF @@ -234,6 +244,11 @@ SUBROUTINE INTEGR_CONTINUITY( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| # ifdef NONLIN_FRSURF +# if (defined ALLOW_AUTODIFF_TAMC) && \ + (defined ALLOW_DEPTH_CONTROL) && (!defined DISABLE_RSTAR_CODE) + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE dEtaHdt(:,:,bi,bj) = comlev1_bibj, key = tkey, kind = isbyte +# endif IF (select_rStar .NE. 0) THEN # ifndef DISABLE_RSTAR_CODE C-- note: rStarDhDt is similar to rStarDhCDt from S/R CALC_R_STAR @@ -248,6 +263,10 @@ SUBROUTINE INTEGR_CONTINUITY( ENDDO # endif /* DISABLE_RSTAR_CODE */ ENDIF +# if (defined ALLOW_AUTODIFF_TAMC) && \ + (defined ALLOW_DEPTH_CONTROL) && (!defined DISABLE_RSTAR_CODE) +CADJ STORE rStarDhDt = comlev1_bibj, key = tkey, kind = isbyte +# endif # endif /* NONLIN_FRSURF */ #endif /* EXACT_CONSERV */ diff --git a/model/src/load_fields_driver.F b/model/src/load_fields_driver.F index 24f1b69cfd..ce2987a25e 100644 --- a/model/src/load_fields_driver.F +++ b/model/src/load_fields_driver.F @@ -52,10 +52,13 @@ SUBROUTINE LOAD_FIELDS_DRIVER( myTime, myIter, myThid ) #include "FFIELDS.h" #ifdef ALLOW_AUTODIFF -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # ifdef ALLOW_CTRL # include "CTRL_SIZE.h" # include "ctrl.h" +# include "CTRL_GENARR.h" # include "ctrl_dummy.h" # endif # ifdef ALLOW_COST @@ -65,6 +68,11 @@ SUBROUTINE LOAD_FIELDS_DRIVER( myTime, myIter, myThid ) # ifdef ALLOW_EXF # include "EXF_FIELDS.h" # include "EXF_CONSTANTS.h" +# ifdef ALLOW_TAPENADE +# include "EXF_PARAM.h" +# include "EXF_INTERP_SIZE.h" +# include "EXF_INTERP_PARAM.h" +# endif # endif #endif /* ALLOW_AUTODIFF */ @@ -122,6 +130,11 @@ SUBROUTINE LOAD_FIELDS_DRIVER( myTime, myIter, myThid ) C-- Map generic time varying controls to xx_gentim2d #ifdef ALLOW_CTRL if (useCTRL) CALL CTRL_MAP_GENTIM2D( myTime, myIter, myThid ) +# if (defined ALLOW_AUTODIFF_TAMC && defined ALLOW_GENTIM2D_CONTROL) +C This store-directive avoids storing xx_gentim2d0/1 and subsequently +C calling this routine in the AD-sweep. +CADJ STORE xx_gentim2d = comlev1, key = ikey_dynamics, kind = isbyte +# endif #endif #ifdef ALLOW_BULK_FORCE diff --git a/model/src/main_do_loop.F b/model/src/main_do_loop.F index 622f7f6814..cac30ce965 100644 --- a/model/src/main_do_loop.F +++ b/model/src/main_do_loop.F @@ -42,29 +42,36 @@ c#ifdef ALLOW_ECCO c# include "ECCO_OPTIONS.h" c#endif - +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_SALT_PLUME +# include "SALT_PLUME_OPTIONS.h" +# endif +#ifdef ALLOW_ECCO +# include "ECCO_OPTIONS.h" +#endif +c# ifdef ALLOW_THSICE +c# include "THSICE_OPTIONS.h" +c# endif +#endif +#ifdef ALLOW_BLING +# include "BLING_OPTIONS.h" +#endif CBOP C !ROUTINE: MAIN_DO_LOOP C !INTERFACE: SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid ) -C !DESCRIPTION: \bv +C !DESCRIPTION: C *================================================================* -C | SUBROUTINE the_loop_body -C | o Run the ocean model and evaluate the specified cost function. +C | SUBROUTINE MAIN_DO_LOOP +C | o Interface S/R that calls FORWARD_STEP C *================================================================* -C | -C | MAIN_DO_LOOP is the toplevel routine for the Tangent Linear and -C | Adjoint Model Compiler (TAMC). -C | For this purpose the initialization -C | of the model was split into two parts. Those parameters that do -C | not depend on a specific model run are set in INITIALISE_FIXED, -C | whereas those that do depend on the specific realization are -C | initialized in INITIALISE_VARIA. -C | This routine is to be used in conjuction with the MITgcmuv -C | checkpoint 37. +C | This S/R contains the model main "do-loop" for OpenAD built +C | (i.e., ALLOW_OPENAD defined), with a call to FORWARD_STEP +C | inside the loop. +C | But without OpenAD, this S/R just calls directly FORWARD_STEP +C | (in this case the main do-loop is done in S/R THE_MAIN_LOOP). C *================================================================* -C \ev C !USES: IMPLICIT NONE @@ -74,7 +81,7 @@ SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid ) #include "PARAMS.h" c************************************** -#ifdef ALLOW_OPENAD +#if (defined ALLOW_OPENAD || defined ALLOW_TAPENADE) # ifdef ALLOW_CTRL # include "CTRL_SIZE.h" @@ -125,29 +132,69 @@ SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid ) # include "STREAMICE_CG.h" # endif -#endif /* ALLOW_OPENAD */ +#endif /* ALLOW_OPENAD or ALLOW_TAPENADE */ + +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_EXF +# include "EXF_PARAM.h" +# include "EXF_INTERP_SIZE.h" +# include "EXF_INTERP_PARAM.h" +# include "EXF_FIELDS.h" +# endif +# ifdef ALLOW_CD_CODE +# include "CD_CODE_VARS.h" +# endif +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# include "GMREDI_TAVE.h" +# endif +# ifdef ALLOW_TIMEAVE +# include "TIMEAVE_STATV.h" +# endif +# include "FFIELDS.h" +# include "DYNVARS.h" +# include "SURFACE.h" +# include "GRID.h" +# ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE.h" +# endif +# ifdef ALLOW_KPP +# include "KPP.h" +c# include "KPP_PARAMS.h" +# endif +# ifdef ALLOW_DOWN_SLOPE +# include "DWNSLP_SIZE.h" +# include "DWNSLP_VARS.h" +# endif +# ifdef ALLOW_THSICE +# include "THSICE_VARS.h" +# endif +# ifdef ALLOW_SALT_PLUME +# include "SALT_PLUME.h" +# endif +# ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +# endif +# ifdef ALLOW_BLING +# include "BLING_VARS.h" +# include "BLING_LOAD.h" +# endif +#endif /* ALLOW_TAPENADE */ + c************************************** C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C note: under the multi-threaded model myIter and -C myTime are local variables passed around as routine -C arguments. Although this is fiddly it saves the need to -C impose additional synchronisation points when they are -C updated. C myTime :: time counter for this thread C myIter :: iteration counter for this thread C myThid :: thread number for this instance of the routine. + INTEGER iloop _RL myTime INTEGER myIter INTEGER myThid -C !FUNCTIONS: -C == Functions == - C !LOCAL VARIABLES: -C == Local variables == - INTEGER iloop CEOP #ifdef ALLOW_DEBUG @@ -162,11 +209,10 @@ SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid ) # else DO iloop = 1, nTimeSteps # endif - #endif /* ALLOW_OPENAD */ #ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('FORWARD_STEP',myThid) + IF (debugMode) CALL DEBUG_CALL('FORWARD_STEP',myThid) #endif #ifndef ALLOW_OPENAD @@ -179,19 +225,19 @@ SUBROUTINE MAIN_DO_LOOP( iloop, myTime, myIter, myThid ) CALL FORWARD_STEP( iloop, myTime, myIter, myThid ) CALL TIMER_STOP ('FORWARD_STEP [MAIN_DO_LOOP]',myThid) # endif -#else +#else /* ALLOW_OPENAD */ # ifdef ALLOW_OPENAD_DIVA - CALL TIMER_START('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid) - nTimeSteps_l2 = 2 - CALL INNER_DO_LOOP( iloop, myTime, myIter, myThid ) - CALL TIMER_STOP ('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid) + CALL TIMER_START('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid) + nTimeSteps_l2 = 2 + CALL INNER_DO_LOOP( iloop, myTime, myIter, myThid ) + CALL TIMER_STOP ('INNER_DO_LOOP [MAIN_DO_LOOP]',myThid) # else - CALL TIMER_START('FORWARD_STEP [MAIN_DO_LOOP]',myThid) - nTimeSteps_l2 = 2 - CALL FORWARD_STEP( iloop, myTime, myIter, myThid ) - CALL TIMER_STOP ('FORWARD_STEP [MAIN_DO_LOOP]',myThid) + CALL TIMER_START('FORWARD_STEP [MAIN_DO_LOOP]',myThid) + nTimeSteps_l2 = 2 + CALL FORWARD_STEP( iloop, myTime, myIter, myThid ) + CALL TIMER_STOP ('FORWARD_STEP [MAIN_DO_LOOP]',myThid) # endif -#endif /* ndef ALLOW_OPENAD */ +#endif /* ALLOW_OPENAD */ #ifdef ALLOW_OPENAD ENDDO diff --git a/model/src/model_ad_diff.list b/model/src/model_ad_diff.list index 4d29a15bf7..3d7f54af79 100644 --- a/model/src/model_ad_diff.list +++ b/model/src/model_ad_diff.list @@ -24,6 +24,7 @@ cycle_tracer.f diags_phi_hyd.f diags_phi_rlow.f diags_rho.f +diags_sound_speed.f do_atmospheric_phys.f do_fields_blocking_exchanges.f do_oceanic_phys.f diff --git a/model/src/packages_check.F b/model/src/packages_check.F index f3286941be..98c71819c8 100644 --- a/model/src/packages_check.F +++ b/model/src/packages_check.F @@ -41,6 +41,8 @@ SUBROUTINE PACKAGES_CHECK( myThid ) C | C |-- EXF_CHECK C | +C |-- LONGSTEP_CHECK +C | C |-- PTRACERS_CHECK C | C |-- GCHEM_CHECK @@ -51,6 +53,8 @@ SUBROUTINE PACKAGES_CHECK( myThid ) C | C |-- SHELFICE_CHECK C | +C |-- SMOOTH_CHECK +C | C |-- STREAMICE_CHECK C | C |-- ICEFRONT_CHECK @@ -292,6 +296,10 @@ SUBROUTINE PACKAGES_CHECK( myThid ) IF (useFLT) CALL PACKAGES_ERROR_MSG('FLT',' ',myThid) #endif +#ifdef ALLOW_LONGSTEP + IF (usePTRACERS) CALL LONGSTEP_CHECK( myThid ) +#endif + #ifdef ALLOW_PTRACERS IF (usePTRACERS) CALL PTRACERS_CHECK( myThid ) #else @@ -340,6 +348,12 @@ SUBROUTINE PACKAGES_CHECK( myThid ) IF (useShelfIce) CALL PACKAGES_ERROR_MSG('ShelfIce',' ',myThid) #endif +#ifdef ALLOW_SMOOTH + IF (useSmooth) CALL SMOOTH_CHECK( myThid ) +#else + IF (useSmooth) CALL PACKAGES_ERROR_MSG('Smooth',' ',myThid) +#endif + #ifdef ALLOW_STREAMICE IF (useStreamIce) CALL STREAMICE_CHECK( myThid ) #else diff --git a/model/src/packages_init_fixed.F b/model/src/packages_init_fixed.F index 7038a55a1b..5336a57e27 100644 --- a/model/src/packages_init_fixed.F +++ b/model/src/packages_init_fixed.F @@ -63,7 +63,8 @@ SUBROUTINE PACKAGES_INIT_FIXED( myThid ) C | C |-- SMOOTH_INIT_FIXED C | -C |-- ECCO_COST_INIT_FIXED +C |-- ECCO_INIT_FIXED +C | |- ECCO_COST_INIT_FIXED C | C |-- PROFILES_INIT_FIXED C | @@ -359,23 +360,14 @@ SUBROUTINE PACKAGES_INIT_FIXED( myThid ) ENDIF #endif -#ifdef ALLOW_SMOOTH - IF (useSMOOTH) THEN -# ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('SMOOTH_INIT_FIXED',myThid) -# endif - CALL SMOOTH_INIT_FIXED(myThid) - ENDIF -#endif /* ALLOW_SMOOTH */ - #ifdef ALLOW_ECCO IF (useECCO) THEN -C-- Initialise ecco-specific cost function. This needs to preceed -C the call ctrl_init in order to provide the weight files +C-- Calls ECCO_COST_INIT_FIXED which initialises ecco-specific cost function. +C This needs to preceed CTRL_INIT call in order to provide the weight files # ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('ECCO_COST_INIT_FIXED',myThid) + IF (debugMode) CALL DEBUG_CALL('ECCO_INIT_FIXED',myThid) # endif - CALL ECCO_COST_INIT_FIXED( myThid ) + CALL ECCO_INIT_FIXED( myThid ) ENDIF #endif @@ -458,6 +450,15 @@ SUBROUTINE PACKAGES_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_SHELFICE */ +#ifdef ALLOW_SMOOTH + IF (useSMOOTH) THEN +# ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_CALL('SMOOTH_INIT_FIXED',myThid) +# endif + CALL SMOOTH_INIT_FIXED(myThid) + ENDIF +#endif /* ALLOW_SMOOTH */ + #ifdef ALLOW_ICEFRONT IF (useICEFRONT) THEN # ifdef ALLOW_DEBUG diff --git a/model/src/packages_init_variables.F b/model/src/packages_init_variables.F index cef45ade95..0a3763d2e2 100644 --- a/model/src/packages_init_variables.F +++ b/model/src/packages_init_variables.F @@ -6,6 +6,11 @@ #ifdef ALLOW_CTRL # include "CTRL_OPTIONS.h" #endif +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +# endif +#endif /* ALLOW_TAPENADE */ CBOP C !ROUTINE: PACKAGES_INIT_VARIABLES @@ -116,12 +121,36 @@ SUBROUTINE PACKAGES_INIT_VARIABLES( myThid ) #include "PARAMS.h" #ifdef ALLOW_AUTODIFF # include "DYNVARS.h" -# include "tamc.h" -# include "tamc_keys.h" -#endif +#endif /* ALLOW_AUTODIFF */ + +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# endif +# ifdef ALLOW_CTRL +# include "CTRL_SIZE.h" +# include "optim.h" +# include "ctrl.h" +# include "CTRL_GENARR.h" +# include "ctrl_dummy.h" +# endif +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +# endif +# ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +# endif +# ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +# endif +# ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE.h" +# endif +#endif /* ALLOW_TAPENADE */ C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C myThid :: my Thread Id number INTEGER myThid CEOP @@ -220,12 +249,21 @@ SUBROUTINE PACKAGES_INIT_VARIABLES( myThid ) #ifdef ALLOW_GMREDI C-- Initialize GM/Redi parameterization - IF (useGMRedi) THEN +# ifdef ALLOW_AUTODIFF +C- Note: To simplify dependency & avoid recomputations, when compiling +C pkg/autodiff, we always call GMREDI_INIT_VARIA to initialise control +C variables (ALLOW_KAPGM/KAPREDI_CONTROL) without condition on useGMRedi +C (in this case the "If useGMRedi" is added inside gmredi_init_varia.F). +# else + IF ( useGMRedi ) THEN +# endif # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('GMREDI_INIT_VARIA',myThid) # endif CALL GMREDI_INIT_VARIA( myThid ) +# ifndef ALLOW_AUTODIFF ENDIF +# endif #endif /* ALLOW_GMREDI */ #ifdef ALLOW_BBL @@ -327,12 +365,19 @@ SUBROUTINE PACKAGES_INIT_VARIABLES( myThid ) #endif /* ALLOW_STREAMICE */ #ifdef ALLOW_SHELFICE +# ifdef ALLOW_AUTODIFF +C- Note: use same trick as for pkg/gmredi (call to GMREDI_INIT_VARIA) when +C compiling pkg/autodiff (with "If useShelfIce" inside shelfice_init_varia.F) +# else IF (useShelfIce) THEN +# endif # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SHELFICE_INIT_VARIA',myThid) # endif CALL SHELFICE_INIT_VARIA( myThid ) +# ifndef ALLOW_AUTODIFF ENDIF +# endif #endif /* ALLOW_SHELFICE */ #ifdef ALLOW_ICEFRONT @@ -355,12 +400,19 @@ SUBROUTINE PACKAGES_INIT_VARIABLES( myThid ) #ifdef ALLOW_SEAICE C-- Initialize SEAICE model. +# ifdef ALLOW_AUTODIFF +C- Note: use same trick as for pkg/gmredi (call to GMREDI_INIT_VARIA) when +C compiling pkg/autodiff (with "If useSEAICE" inside seaice_init_varia.F) +# else IF (useSEAICE) THEN +# endif # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('SEAICE_INIT_VARIA',myThid) # endif CALL SEAICE_INIT_VARIA( myThid ) +# ifndef ALLOW_AUTODIFF ENDIF +# endif #endif /* ALLOW_SEAICE */ #ifdef ALLOW_SALT_PLUME diff --git a/model/src/packages_write_pickup.F b/model/src/packages_write_pickup.F index 2032edb710..5edbbeb32b 100644 --- a/model/src/packages_write_pickup.F +++ b/model/src/packages_write_pickup.F @@ -29,6 +29,8 @@ SUBROUTINE PACKAGES_WRITE_PICKUP( C | C |-- GGL90_WRITE_PICKUP C | +C |-- GMREDI_WRITE_PICKUP +C | C |-- BBL_WRITE_PICKUP C | C |-- CHEAPAML_WRITE_PICKUP @@ -57,10 +59,10 @@ SUBROUTINE PACKAGES_WRITE_PICKUP( C | C |-- DIAGNOSTICS_WRITE_PICKUP C | -C |-- GMREDI_WRITE_PICKUP -C | C |-- CPL_WRITE_PICKUP C | +C |-- ECCO_WRITE_PICKUP +C | C |-- MYPACKAGE_WRITE_PICKUP C !USES: @@ -118,6 +120,13 @@ SUBROUTINE PACKAGES_WRITE_PICKUP( ENDIF #endif /* ALLOW_GGL90 */ +#ifdef ALLOW_GMREDI + IF ( useGMRedi ) THEN + CALL GMREDI_WRITE_PICKUP( permPickup, + I suffix, myTime, myIter, myThid ) + ENDIF +#endif + #ifdef ALLOW_BBL IF (useBBL) THEN CALL BBL_WRITE_PICKUP( permPickup, @@ -217,13 +226,6 @@ SUBROUTINE PACKAGES_WRITE_PICKUP( ENDIF #endif -#ifdef ALLOW_GMREDI - IF ( useGMRedi ) THEN - CALL GMREDI_WRITE_PICKUP( permPickup, - I suffix, myTime, myIter, myThid ) - ENDIF -#endif - #ifdef COMPONENT_MODULE IF (useCoupler) THEN CALL CPL_WRITE_PICKUP( @@ -231,6 +233,13 @@ SUBROUTINE PACKAGES_WRITE_PICKUP( ENDIF #endif /* COMPONENT_MODULE */ +#ifdef ALLOW_ECCO + IF (useECCO) THEN + CALL ECCO_WRITE_PICKUP( permPickup, + I suffix, myTime, myIter, myThid ) + ENDIF +#endif /* ALLOW_ECCO */ + #ifdef ALLOW_MYPACKAGE IF (useMYPACKAGE) THEN CALL MYPACKAGE_WRITE_PICKUP( permPickup, diff --git a/model/src/read_pickup.F b/model/src/read_pickup.F index 417ce2566e..3629bc57ec 100644 --- a/model/src/read_pickup.F +++ b/model/src/read_pickup.F @@ -21,14 +21,12 @@ SUBROUTINE READ_PICKUP( #include "PARAMS.h" #include "RESTART.h" #include "DYNVARS.h" +#include "NH_VARS.h" #include "SURFACE.h" #include "FFIELDS.h" #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD.h" #endif -#ifdef ALLOW_NONHYDROSTATIC -# include "NH_VARS.h" -#endif #ifdef ALLOW_MNC # include "MNC_PARAMS.h" #endif @@ -274,6 +272,7 @@ SUBROUTINE READ_PICKUP( & nj, fp, Nr, myIter, myThid ) C--- read 3-D fields for AB-restart #ifdef ALLOW_ADAMSBASHFORTH_3 + m1 = 1 + MOD(myIter+1,2) m2 = 1 + MOD( myIter ,2) IF ( momStepping ) THEN @@ -349,6 +348,22 @@ SUBROUTINE READ_PICKUP( ENDIF ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS +C-- Quasi-Hydrostatic Adams-Bashforth variables: + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN + IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN + CALL READ_MFLDS_3D_RL( 'QH_GwNm1', + O QHydGwNm(1-OLx,1-OLy,1,1,1,m1), + I nj, fp, Nr, myIter, myThid ) + ENDIF + IF ( beta_AB.NE.0. ) THEN + CALL READ_MFLDS_3D_RL( 'QH_GwNm2', + O QHydGwNm(1-OLx,1-OLy,1,1,1,m2), + I nj, fp, Nr, myIter, myThid ) + ENDIF + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + #else /* ALLOW_ADAMSBASHFORTH_3 */ IF ( momStepping ) THEN C-- U velocity: @@ -380,6 +395,14 @@ SUBROUTINE READ_PICKUP( & nj, fp, Nr, myIter, myThid ) ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS +C-- Quasi-Hydrostatic Adams-Bashforth variables: + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN + CALL READ_MFLDS_3D_RL( 'QH_GwNm1', QHydGwNm, + & nj, fp, Nr, myIter, myThid ) + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + #endif /* ALLOW_ADAMSBASHFORTH_3 */ C- read Full Pressure for EOS in pressure: @@ -393,6 +416,16 @@ SUBROUTINE READ_PICKUP( & nj, fp, Nr, myIter, myThid ) ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +C- With synchronous time-stepping, Smag-3D diffusivity is lagging by 1 time-step +C (i.e., used before being updated meaning field is from previous time-step calc) +C --> needs to be read-in from pickup file + IF ( smag3D_diffCoeff.GT.zeroRL + & .AND. .NOT.staggerTimeStep ) THEN + CALL READ_MFLDS_3D_RL( 'SmagDiff', smag3D_diffK, + & nj, fp, Nr, myIter, myThid ) + ENDIF +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ #ifdef ALLOW_ADDFLUID C- read mass source/sink of fluid IF ( selectAddFluid.GE.1 ) THEN @@ -412,6 +445,10 @@ SUBROUTINE READ_PICKUP( nj = nj*Nr CALL READ_MFLDS_3D_RL( 'EtaN ', etaN, & nj, fp, 1 , myIter, myThid ) + IF ( usingPCoords .AND. useSEAICE ) THEN + CALL READ_MFLDS_3D_RL( 'Phi_rLow', phiHydLow, + & nj, fp, 1 , myIter, myThid ) + ENDIF #ifdef ALLOW_NONHYDROSTATIC IF ( selectNHfreeSurf.GE.1 ) THEN CALL READ_MFLDS_3D_RL( 'dPhiNH ', dPhiNH, @@ -534,6 +571,8 @@ SUBROUTINE READ_PICKUP( IF ( storePhiHyd4Phys ) & CALL EXCH_3D_RL( totPhiHyd, Nr, myThid ) + IF ( usingPCoords .AND. useSEAICE ) + & CALL EXCH_XY_RL( phiHydLow, myThid ) #ifdef ALLOW_NONHYDROSTATIC IF ( use3Dsolver ) THEN @@ -551,6 +590,16 @@ SUBROUTINE READ_PICKUP( CALL EXCH_XY_RL( dPhiNH, myThid ) ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN +#ifdef ALLOW_ADAMSBASHFORTH_3 + CALL EXCH_3D_RL( QHydGwNm(1-OLx,1-OLy,1,1,1,1), Nr, myThid ) + CALL EXCH_3D_RL( QHydGwNm(1-OLx,1-OLy,1,1,1,2), Nr, myThid ) +#else /* ALLOW_ADAMSBASHFORTH_3 */ + CALL EXCH_3D_RL( QHydGwNm, Nr, myThid ) +#endif /* ALLOW_ADAMSBASHFORTH_3 */ + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ RETURN END diff --git a/model/src/remove_mean.F b/model/src/remove_mean.F index f682e75df4..dd61305d27 100644 --- a/model/src/remove_mean.F +++ b/model/src/remove_mean.F @@ -1,211 +1,320 @@ #include "CPP_OPTIONS.h" +C-- File remove_mean.F: +C-- Contents +C-- o REMOVE_MEAN_RL +C-- o REMOVE_MEAN_RS + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: REMOVE_MEAN_RL C !INTERFACE: SUBROUTINE REMOVE_MEAN_RL( - I myNr, arr, arrMask, arrhFac, arrArea, arrDr, - I arrName, myTime, - I myThid ) + I myNr, + U arrFld, + I arrhFac, arrMask, arrArea, arrDr, + I arrName, myTime, myIter, myThid ) C !DESCRIPTION: \bv -C /==========================================================\ -C | SUBROUTINE REMOVE_MEAN_RL | -C | o Calculate mean of global array "_RL arr" and substract | -C | it from the array | -C \==========================================================/ +C Correct for global-mean imbalance of global "_RL" array "arrFld" +C (i.e., output arrFld has zero mean): +C Apply either (if arrDr(1) > 0) uniform correction +C or (if arrDr(1) < 0) a correction scaled by "arrhFac" weight. +C The global mean imbalance is computed as area (arrArea), mask +C (arrMask) and thickness (arrDr) weighted, as well as thickness +C factor (arrhFac) weighted (1rst case) or not (2nd case). +C Comment: currently this S/R is only applied to 2-D field. C \ev +C !USES: IMPLICIT NONE - C === Global data === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" +#include "GRID.h" -C === Functions ==== - LOGICAL DIFFERENT_MULTIPLE - EXTERNAL DIFFERENT_MULTIPLE - -C === Routine arguments === +C !INPUT/OUTPUT PARAMETERS: +C myNr :: third dimension of field to correct +C arrFld :: field array to correct for imbalance +C arrhFac :: same size as arrFld ; thickness factor (1rst case) +C :: or correction scaling factor (2nd case) +C arrMask :: 2-D mask for global mean calculation +C arrArea :: 2-D grid-cell area for global mean calculation +C arrDr :: myNr long vector (level thickness) +C arrName :: name of field to correct +C myTime :: Current time in simulation +C myIter :: Current iteration number in simulation +C myThid :: my Thread ID number INTEGER myNr - _RL arr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) - _RS arrMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) + _RL arrFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) _RS arrhFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) + _RS arrMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS arrArea(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS arrDr(myNr) CHARACTER*(*) arrName _RL myTime + INTEGER myIter INTEGER myThid -C#ifdef ALLOW_BALANCE_FLUXES -C === Local variables ==== - INTEGER bi,bj,I,J,K - _RL tmpVal - _RL theMean - _RL theVol - _RL tmpVol - CHARACTER*(max_len_mbuf) msgbuf +C !LOCAL VARIABLES: + INTEGER bi, bj, i, j, k + _RL volTile(nSx,nSy), sumTile(nSx,nSy) + _RL tmpVol, volGlob, sumGlob, theMean + _RL meanCorr + CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP - theMean=0. - theVol=0. - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO K=1,myNr - DO J=1,sNy - DO I=1,sNx - tmpVal=arr(I,J,K,bi,bj) - IF (arrMask(I,J,K,bi,bj).NE.0.) THEN - tmpVol = arrArea(I,J,bi,bj)*arrhFac(I,J,K,bi,bj)*arrDr(K) - theVol = theVol + tmpVol - theMean = theMean + tmpVol*tmpVal - ENDIF + volTile(bi,bj) = 0. _d 0 + sumTile(bi,bj) = 0. _d 0 + IF ( arrDr(1).GE.zeroRS ) THEN +C-- do (arrhFac) weighted average to apply uniform correction + DO k=1,myNr + DO j=1,sNy + DO i=1,sNx + tmpVol = arrArea(i,j,bi,bj)*arrMask(i,j,bi,bj) + & * arrhFac(i,j,k,bi,bj)*arrDr(k) + volTile(bi,bj) = volTile(bi,bj) + tmpVol + sumTile(bi,bj) = sumTile(bi,bj) + tmpVol*arrFld(i,j,k,bi,bj) + ENDDO ENDDO ENDDO - ENDDO + ELSE +C- do simple average to apply (arrhFac) weighted correction + DO k=1,myNr + DO j=1,sNy + DO i=1,sNx + tmpVol = arrArea(i,j,bi,bj)*arrMask(i,j,bi,bj) + & * ABS(arrDr(k)) + volTile(bi,bj) = volTile(bi,bj) + & + tmpVol*arrhFac(i,j,k,bi,bj) + sumTile(bi,bj) = sumTile(bi,bj) + & + tmpVol*arrFld(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF ENDDO ENDDO - _GLOBAL_SUM_RL(theVol,myThid) - _GLOBAL_SUM_RL(theMean,myThid) - - IF (theVol.GT.0.) THEN - theMean=theMean/theVol + CALL GLOBAL_SUM_TILE_RL( volTile, volGlob, myThid ) + CALL GLOBAL_SUM_TILE_RL( sumTile, sumGlob, myThid ) + IF ( volGlob.GT.zeroRL ) THEN + meanCorr = sumGlob/volGlob DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO K=1,myNr - DO J=1,sNy - DO I=1,sNx - IF (arrMask(I,J,K,bi,bj).NE.0.) THEN - arr(I,J,K,bi,bj) = arr(I,J,K,bi,bj) - theMean - ENDIF + IF ( arrDr(1).GE.zeroRS ) THEN +C-- apply uniform correction + DO k=1,myNr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( arrhFac(i,j,k,bi,bj).NE.zeroRS ) THEN + arrFld(i,j,k,bi,bj) = arrFld(i,j,k,bi,bj) - meanCorr + ENDIF + ENDDO ENDDO ENDDO - ENDDO + ELSE +C- apply (arrhFac) weighted correction + DO k=1,myNr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( arrMask(i,j,bi,bj).NE.zeroRS ) THEN + arrFld(i,j,k,bi,bj) = arrFld(i,j,k,bi,bj) + & - meanCorr*arrhFac(i,j,k,bi,bj) + ENDIF + ENDDO + ENDDO + ENDDO +C- end type correction selection + ENDIF ENDDO ENDDO - + ELSE + meanCorr = 0. _d 0 ENDIF -C Print the global mean to standard output, this is a measure for -C the drift of the array arr +C Print the global mean to standard output, this is a measure +C of the magnitude of the correction to array arrFld IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgbuf,'(a,a,a,e24.17)') - & 'REMOVE_MEAN_RL: Global mean of ', - & arrName, ' = ', theMean - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + IF ( arrDr(1).GE.zeroRS ) THEN + theMean = meanCorr + WRITE(msgBuf,'(3A,1PE21.14,A,I10)') + & 'REMOVE_MEAN_RL: Global mean of ', arrName, ' = ', + & theMean, ' @ it=', myIter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ELSE + theMean = 0. _d 0 + IF ( globalArea.GT.zeroRL ) theMean = sumGlob/globalArea + WRITE(msgBuf,'(3A,2(1PE21.14,A),I10)') + & 'REMOVE_MEAN_RL: ', arrName, ' Global mean= ', + & theMean, ', remove: ', meanCorr, ' @ it=', myIter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF _END_MASTER( myThid ) ENDIF -C#endif /* ALLOW_BALANCE_FLUXES */ RETURN END +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: REMOVE_MEAN_RS C !INTERFACE: SUBROUTINE REMOVE_MEAN_RS( - I myNr, arr, arrMask, arrhFac, arrArea, arrDr, - I arrName, myTime, - I myThid ) + I myNr, + U arrFld, + I arrhFac, arrMask, arrArea, arrDr, + I arrName, myTime, myIter, myThid ) C !DESCRIPTION: \bv -C /==========================================================\ -C | SUBROUTINE REMOVE_MEAN_RS | -C | o Calculate mean of global array "_RS arr" and substract | -C | it from the array | -C \==========================================================/ +C Correct for global-mean imbalance of global "_RS" array "arrFld" +C (i.e., output arrFld has zero mean): +C Apply either (if arrDr(1) > 0) uniform correction +C or (if arrDr(1) < 0) a correction scaled by "arrhFac" weight. +C The global mean imbalance is computed as area (arrArea), mask +C (arrMask) and thickness (arrDr) weighted, as well as thickness +C factor (arrhFac) weighted (1rst case) or not (2nd case). +C Comment: currently this S/R is only applied to 2-D field. C \ev +C !USES: IMPLICIT NONE - C === Global data === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" +#include "GRID.h" -C === Functions ==== - LOGICAL DIFFERENT_MULTIPLE - EXTERNAL DIFFERENT_MULTIPLE - -C === Routine arguments === +C !INPUT/OUTPUT PARAMETERS: +C myNr :: third dimension of field to correct +C arrFld :: field array to correct for imbalance +C arrhFac :: same size as arrFld ; thickness factor (1rst case) +C :: or correction scaling factor (2nd case) +C arrMask :: 2-D mask for global mean calculation +C arrArea :: 2-D grid-cell area for global mean calculation +C arrDr :: myNr long vector (level thickness) +C arrName :: name of field to correct +C myTime :: Current time in simulation +C myIter :: Current iteration number in simulation +C myThid :: my Thread ID number INTEGER myNr - _RS arr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) - _RS arrMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) + _RS arrFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) _RS arrhFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,myNr,nSx,nSy) + _RS arrMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS arrArea(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS arrDr(myNr) CHARACTER*(*) arrName _RL myTime + INTEGER myIter INTEGER myThid -C#ifdef ALLOW_BALANCE_FLUXES -C === Local variables ==== - INTEGER bi,bj,I,J,K - _RS tmpVal - _RS theMean - _RS theVol - _RS tmpVol - CHARACTER*(max_len_mbuf) msgbuf +C !LOCAL VARIABLES: + INTEGER bi, bj, i, j, k + _RL volTile(nSx,nSy), sumTile(nSx,nSy) + _RL tmpVol, volGlob, sumGlob, theMean + _RS meanCorr + CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP - theMean=0. - theVol=0. - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO K=1,myNr - DO J=1,sNy - DO I=1,sNx - tmpVal=arr(I,J,K,bi,bj) - IF (arrMask(I,J,K,bi,bj).NE.0.) THEN - tmpVol = arrArea(I,J,bi,bj)*arrhFac(I,J,K,bi,bj)*arrDr(K) - theVol = theVol + tmpVol - theMean = theMean + tmpVol*tmpVal - ENDIF + volTile(bi,bj) = 0. _d 0 + sumTile(bi,bj) = 0. _d 0 + IF ( arrDr(1).GE.zeroRS ) THEN +C-- do (arrhFac) weighted average to apply uniform correction + DO k=1,myNr + DO j=1,sNy + DO i=1,sNx + tmpVol = arrArea(i,j,bi,bj)*arrMask(i,j,bi,bj) + & * arrhFac(i,j,k,bi,bj)*arrDr(k) + volTile(bi,bj) = volTile(bi,bj) + tmpVol + sumTile(bi,bj) = sumTile(bi,bj) + tmpVol*arrFld(i,j,k,bi,bj) + ENDDO ENDDO ENDDO - ENDDO + ELSE +C- do simple average to apply (arrhFac) weighted correction + DO k=1,myNr + DO j=1,sNy + DO i=1,sNx + tmpVol = arrArea(i,j,bi,bj)*arrMask(i,j,bi,bj) + & * ABS(arrDr(k)) + volTile(bi,bj) = volTile(bi,bj) + & + tmpVol*arrhFac(i,j,k,bi,bj) + sumTile(bi,bj) = sumTile(bi,bj) + & + tmpVol*arrFld(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF ENDDO ENDDO - _GLOBAL_SUM_RS(theVol,myThid) - _GLOBAL_SUM_RS(theMean,myThid) - - IF (theVol.GT.0.) THEN - theMean=theMean/theVol + CALL GLOBAL_SUM_TILE_RL( volTile, volGlob, myThid ) + CALL GLOBAL_SUM_TILE_RL( sumTile, sumGlob, myThid ) + IF ( volGlob.GT.zeroRL ) THEN + meanCorr = sumGlob/volGlob DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO K=1,myNr - DO J=1,sNy - DO I=1,sNx - IF (arrMask(I,J,K,bi,bj).NE.0.) THEN - arr(I,J,K,bi,bj) = arr(I,J,K,bi,bj) - theMean - ENDIF + IF ( arrDr(1).GE.zeroRS ) THEN +C-- apply uniform correction + DO k=1,myNr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( arrhFac(i,j,k,bi,bj).NE.zeroRS ) THEN + arrFld(i,j,k,bi,bj) = arrFld(i,j,k,bi,bj) - meanCorr + ENDIF + ENDDO ENDDO ENDDO - ENDDO + ELSE +C- apply (arrhFac) weighted correction + DO k=1,myNr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( arrMask(i,j,bi,bj).NE.zeroRS ) THEN + arrFld(i,j,k,bi,bj) = arrFld(i,j,k,bi,bj) + & - meanCorr*arrhFac(i,j,k,bi,bj) + ENDIF + ENDDO + ENDDO + ENDDO +C- end type correction selection + ENDIF ENDDO ENDDO - + ELSE + meanCorr = 0. _d 0 ENDIF -C Print the global mean to standard output, this is a measure for -C the drift of the array arr +C Print the global mean to standard output, this is a measure +C of the magnitude of the correction to array arrFld IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgbuf,'(a,a,a,e24.17)') - & 'REMOVE_MEAN_RS: Global mean of ', - & arrName, ' = ', theMean - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + IF ( arrDr(1).GE.zeroRS ) THEN + theMean = meanCorr + WRITE(msgBuf,'(3A,1PE21.14,A,I10)') + & 'REMOVE_MEAN_RS: Global mean of ', arrName, ' = ', + & theMean, ' @ it=', myIter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ELSE + theMean = 0. _d 0 + IF ( globalArea.GT.zeroRL ) theMean = sumGlob/globalArea + WRITE(msgBuf,'(3A,2(1PE21.14,A),I10)') + & 'REMOVE_MEAN_RS: ', arrName, ' Global mean= ', + & theMean, ', remove: ', meanCorr, ' @ it=', myIter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF _END_MASTER( myThid ) ENDIF -C#endif /* ALLOW_BALANCE_FLUXES */ RETURN END diff --git a/model/src/reset_nlfs_vars.F b/model/src/reset_nlfs_vars.F index e9142c7b33..8ef741daf5 100644 --- a/model/src/reset_nlfs_vars.F +++ b/model/src/reset_nlfs_vars.F @@ -24,7 +24,6 @@ SUBROUTINE RESET_NLFS_VARS( myTime, myIter, myThid ) #include "SURFACE.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C myTime :: Current time in simulation C myIter :: Current iteration number in simulation C myThid :: my Thread Id number @@ -34,9 +33,10 @@ SUBROUTINE RESET_NLFS_VARS( myTime, myIter, myThid ) C !LOCAL VARIABLES: #ifdef NONLIN_FRSURF -C Local variables -C i,j,k,bi,bj :: loop counter - INTEGER i,j,bi,bj +#ifndef DISABLE_RSTAR_CODE +C i, j, :: loop counter +C bi, bj :: tile indices + INTEGER i, j, bi, bj CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -44,7 +44,6 @@ SUBROUTINE RESET_NLFS_VARS( myTime, myIter, myThid ) DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) -#ifndef DISABLE_RSTAR_CODE IF ( fluidIsAir .AND. select_rStar.GE.1 ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -58,12 +57,12 @@ SUBROUTINE RESET_NLFS_VARS( myTime, myIter, myThid ) ENDDO ENDDO ENDIF -#endif /* DISABLE_RSTAR_CODE */ C- end bi,bj loop ENDDO ENDDO +#endif /* DISABLE_RSTAR_CODE */ #endif /* NONLIN_FRSURF */ RETURN diff --git a/model/src/salt_integrate.F b/model/src/salt_integrate.F index 14dc28e5cc..b734f0e10a 100644 --- a/model/src/salt_integrate.F +++ b/model/src/salt_integrate.F @@ -59,9 +59,8 @@ SUBROUTINE SALT_INTEGRATE( # include "GAD.h" # include "GAD_SOM_VARS.h" #endif -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -137,6 +136,11 @@ SUBROUTINE SALT_INTEGRATE( #ifdef ALLOW_ADAMSBASHFORTH_3 INTEGER m2 #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C kkey :: tape key (level and tile dependent) + INTEGER tkey, kkey +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| iterNb = myIter @@ -166,16 +170,7 @@ SUBROUTINE SALT_INTEGRATE( #endif #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itdkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C- Apply AB on S : @@ -220,15 +215,17 @@ SUBROUTINE SALT_INTEGRATE( ENDDO ENDDO ENDDO -CADJ STORE wFld(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE salt(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte +#endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE wFld(:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE salt(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # ifdef ALLOW_ADAMSBASHFORTH_3 -CADJ STORE gsNm(:,:,:,bi,bj,1) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE gsNm(:,:,:,bi,bj,2) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE gsNm(:,:,:,bi,bj,1) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE gsNm(:,:,:,bi,bj,2) = comlev1_bibj, key=tkey, byte=isbyte # else -CADJ STORE gsNm1(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE gsNm1(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # endif -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL CALL CALC_3D_DIFFUSIVITY( @@ -236,6 +233,9 @@ SUBROUTINE SALT_INTEGRATE( I GAD_SALINITY, useGMredi, useKPP, O kappaRk, I myThid ) +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE kappaRk = comlev1_bibj, key = tkey, byte = isbyte +# endif #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */ #ifndef DISABLE_MULTIDIM_ADVECTION @@ -251,7 +251,8 @@ SUBROUTINE SALT_INTEGRATE( C disable this section of code. #ifdef GAD_ALLOW_TS_SOM_ADV # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE som_S = comlev1_bibj, key=itdkey, byte=isbyte +C- Note: inefficient storage, storing nSx*nSy times the full som_S array +CADJ STORE som_S = comlev1_bibj, key=tkey, byte=isbyte # endif IF ( saltSOM_Advection ) THEN # ifdef ALLOW_DEBUG @@ -286,25 +287,20 @@ SUBROUTINE SALT_INTEGRATE( calcAdvection = saltAdvection .AND. .NOT.saltMultiDimAdvec DO k=Nr,1,-1 #ifdef ALLOW_AUTODIFF_TAMC - kkey = (itdkey-1)*Nr + k + kkey = k + (tkey-1)*Nr #endif kM1 = MAX(1,k-1) kUp = 1+MOD(k+1,2) kDown= 1+MOD(k,2) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fVer(:,:,:) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gS_loc(:,:,k) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE fVer(:,:,:) = comlev1_bibj_k, key=kkey, kind = isbyte +CADJ STORE gS_loc(:,:,k) = comlev1_bibj_k, key=kkey, kind = isbyte # ifdef ALLOW_ADAMSBASHFORTH_3 -CADJ STORE gsNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gsNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, -CADJ & kind = isbyte +CADJ STORE gsNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, kind = isbyte +CADJ STORE gsNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, kind = isbyte # else -CADJ STORE gsNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE gsNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, kind = isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ CALL CALC_ADV_FLOW( @@ -406,6 +402,9 @@ SUBROUTINE SALT_INTEGRATE( ENDIF #ifdef NONLIN_FRSURF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gS_loc(:,:,k) = comlev1_bibj_k, key = kkey, kind = isbyte +# endif IF (nonlinFreeSurf.GT.0) THEN CALL FREESURF_RESCALE_G( I bi, bj, k, @@ -414,10 +413,8 @@ SUBROUTINE SALT_INTEGRATE( IF ( AdamsBashforthGs ) THEN #ifdef ALLOW_ADAMSBASHFORTH_3 # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE gsNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gsNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, -CADJ & kind = isbyte +CADJ STORE gsNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, kind=isbyte +CADJ STORE gsNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, kind=isbyte # endif CALL FREESURF_RESCALE_G( I bi, bj, k, @@ -428,6 +425,9 @@ SUBROUTINE SALT_INTEGRATE( U gsNm(1-OLx,1-OLy,1,bi,bj,2), I myThid ) #else +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gsNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, kind = isbyte +# endif CALL FREESURF_RESCALE_G( I bi, bj, k, U gsNm1(1-OLx,1-OLy,1,bi,bj), @@ -442,6 +442,9 @@ SUBROUTINE SALT_INTEGRATE( #ifdef ALLOW_DOWN_SLOPE IF ( useDOWN_SLOPE ) THEN +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE recip_hFac = comlev1_bibj, key = tkey, kind = isbyte +# endif IF ( usingPCoords ) THEN CALL DWNSLP_APPLY( I GAD_SALINITY, bi, bj, kSurfC, @@ -469,17 +472,18 @@ SUBROUTINE SALT_INTEGRATE( C-- Implicit vertical advection & diffusion +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gS_loc(:,:,:) = comlev1_bibj, key = tkey, byte = isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef INCLUDE_IMPLVERTADV_CODE IF ( saltImplVertAdv .OR. implicitDiffusion ) THEN C to recover older (prior to 2016-10-05) results: c IF ( saltImplVertAdv ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE kappaRk(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE gS_loc(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE wFld(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE salt(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE recip_hFac(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE wFld(:,:,:) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE salt(:,:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE recip_hFac(:,:,:) = comlev1_bibj, key = tkey, byte = isbyte +# endif /* ALLOW_AUTODIFF_TAMC */ CALL GAD_IMPLICIT_R( I saltImplVertAdv, saltVertAdvScheme, GAD_SALINITY, I dTtracerLev, kappaRk, recip_hFac, wFld, @@ -490,10 +494,6 @@ SUBROUTINE SALT_INTEGRATE( #else /* INCLUDE_IMPLVERTADV_CODE */ IF ( implicitDiffusion ) THEN #endif /* INCLUDE_IMPLVERTADV_CODE */ -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE kappaRk(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE gS_loc(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, I GAD_SALINITY, kappaRk, recip_hFac, diff --git a/model/src/seawater.F b/model/src/seawater.F index 174f6168e4..e9e67c9e26 100644 --- a/model/src/seawater.F +++ b/model/src/seawater.F @@ -27,7 +27,7 @@ _RL FUNCTION SW_PTMP (S,T,P,PR) C ================================================================== C SUBROUTINE SW_PTMP C ================================================================== -C S :: salinity [psu (PSS-78) ] +C S :: salinity [ (PSS-78) ] C T :: temperature [degree C (IPTS-68)] C P :: pressure [db] C PR :: Reference pressure [db] diff --git a/model/src/set_defaults.F b/model/src/set_defaults.F index 1838b9336a..c4d5eb2672 100644 --- a/model/src/set_defaults.F +++ b/model/src/set_defaults.F @@ -118,6 +118,7 @@ SUBROUTINE SET_DEFAULTS( C- viscosity and diffusivity default value: viscAh = 0. _d 3 smag3D_coeff = 1. _d -2 + smag3D_diffCoeff = 0. _d 0 viscAhGrid = 0. _d 0 viscAhGridMin = 0. _d 0 viscAhGridMax = 1. _d 21 @@ -135,6 +136,7 @@ SUBROUTINE SET_DEFAULTS( sideDragFactor = 2. _d 0 bottomDragLinear = 0. bottomDragQuadratic = 0. + zRoughBot = 0. _d 0 selectBotDragQuadr = -1 viscA4 = 0. _d 11 viscA4Grid = 0. _d 0 @@ -175,6 +177,7 @@ SUBROUTINE SET_DEFAULTS( buoyancyRelation = 'OCEANIC' selectP_inEOS_Zc = UNSET_I smoothAbsFuncRange = 0. _d 0 + sIceLoadFac = 1. _d 0 hFacMin = 1. _d 0 hFacMinDrDefault = 0. _d 0 implicitIntGravWave = .FALSE. @@ -262,7 +265,7 @@ SUBROUTINE SET_DEFAULTS( salt_EvPrRn = 0. temp_addMass = UNSET_RL salt_addMass = UNSET_RL - balanceEmPmR = .FALSE. + selectBalanceEmPmR = UNSET_I balanceQnet = .FALSE. balancePrintMean = .FALSE. balanceThetaClimRelax = .FALSE. @@ -280,15 +283,15 @@ SUBROUTINE SET_DEFAULTS( C-- Elliptic solver parameters cg2dMaxIters = 150 + cg2dMinItersNSA = 0 cg2dTargetResidual = 1. _d -7 cg2dTargetResWunit = -1. - cg2dChkResFreq = 1 cg2dUseMinResSol = UNSET_I cg2dpcOffDFac = 0.51 _d 0 cg2dPreCondFreq = 1 cg3dMaxIters = 150 cg3dTargetResidual = 1. _d -7 - cg3dChkResFreq = 1 + useNSACGSolver = .FALSE. useSRCGSolver = .FALSE. C-- Time stepping parameters @@ -384,12 +387,14 @@ SUBROUTINE SET_DEFAULTS( vVelInitFile = ' ' pSurfInitFile = ' ' pLoadFile = ' ' + geoPotAnomFile = ' ' addMassFile = ' ' eddyPsiXFile = ' ' eddyPsiYFile = ' ' geothermalFile = ' ' lambdaThetaFile = ' ' lambdaSaltFile = ' ' + wghtBalanceFile = ' ' mdsioLocalDir = ' ' adTapeDir = ' ' the_run_name = ' ' diff --git a/model/src/set_parms.F b/model/src/set_parms.F index 79a7db6795..7972467e55 100644 --- a/model/src/set_parms.F +++ b/model/src/set_parms.F @@ -35,7 +35,7 @@ SUBROUTINE SET_PARMS( myThid ) C !LOCAL VARIABLES: CHARACTER*(MAX_LEN_MBUF) msgBuf - INTEGER k + INTEGER errCount, k _RL tmpVar CEOP @@ -49,6 +49,7 @@ SUBROUTINE SET_PARMS( myThid ) #endif /* ALLOW_OFFLINE */ _BEGIN_MASTER(myThid) + errCount = 0 C-- On/Off flags for each terms of the momentum equation nonHydrostatic = momStepping .AND. nonHydrostatic @@ -69,27 +70,26 @@ SUBROUTINE SET_PARMS( myThid ) calc_wVelocity = momStepping .OR. exactConserv #ifndef ALLOW_3D_VISCAH - IF ( viscAhDfile.NE.' ' .OR. viscAhZfile.NE.' ' ) THEN + IF ( viscAhDfile.NE.' ' .OR. viscAhZfile.NE.' ' ) THEN WRITE(msgBuf,'(2A)') 'SET_PARMS: ', & 'viscAhDfile and viscAhZfile cannot be used with' CALL PRINT_ERROR( msgBuf, myThid ) WRITE(msgBuf,'(2A)') 'SET_PARMS: ', & '"#undef ALLOW_3D_VISCAH" in MOM_COMMON_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SET_PARMS' -c errCount = errCount + 1 - ENDIF + errCount = errCount + 1 + ENDIF #endif #ifndef ALLOW_3D_VISCA4 - IF ( viscA4Dfile.NE.' ' .OR. viscA4Zfile.NE.' ' ) THEN + IF ( viscA4Dfile.NE.' ' .OR. viscA4Zfile.NE.' ' ) THEN WRITE(msgBuf,'(2A)') 'SET_PARMS: ', & 'viscA4Dfile and viscA4Zfile cannot be used with' CALL PRINT_ERROR( msgBuf, myThid ) WRITE(msgBuf,'(2A)') 'SET_PARMS: ', & '"#undef ALLOW_3D_VISCA4" in MOM_COMMON_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SET_PARMS' - ENDIF + errCount = errCount + 1 + ENDIF #endif #ifdef ALLOW_MOM_COMMON @@ -120,14 +120,15 @@ SUBROUTINE SET_PARMS( myThid ) useHarmonicVisc = momViscosity .AND. useHarmonicVisc useBiharmonicVisc = momViscosity .AND. useBiharmonicVisc #endif /* ALLOW_MOM_COMMON */ - IF ( bottomDragQuadratic.EQ.0. .OR. .NOT.momViscosity ) - & selectBotDragQuadr = -1 + IF ( ( bottomDragQuadratic.EQ.0. .AND. zRoughBot.EQ.0. ) + & .OR. .NOT.momViscosity ) selectBotDragQuadr = -1 C-- Free-surface & pressure method uniformFreeSurfLev = usingZCoords C- Note: comment line below to revert to full-cell hydrostatic-pressure C calculation in surface grid-cell below ice-shelf uniformFreeSurfLev = usingZCoords .AND. .NOT.useShelfIce + & .AND. topoFile.EQ.' ' IF ( selectNHfreeSurf.NE.0 .AND. & ( .NOT.nonHydrostatic .OR. usingPCoords & .OR. .NOT.exactConserv @@ -158,6 +159,7 @@ SUBROUTINE SET_PARMS( myThid ) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) ENDIF + useAbsVorticity = vectorInvariantMomentum .AND. useAbsVorticity C-- Momentum viscosity on/off flag. IF ( momViscosity ) THEN vfFacMom = 1. _d 0 @@ -241,7 +243,7 @@ SUBROUTINE SET_PARMS( myThid ) WRITE(msgBuf,'(A,I9,A)') 'SET_PARMS: selectP_inEOS_Zc=', & selectP_inEOS_Zc, ' : invalid selection' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SET_PARMS' + errCount = errCount + 1 ELSEIF ( .NOT.nonHydrostatic ) THEN selectP_inEOS_Zc = MIN( selectP_inEOS_Zc, 2 ) ENDIF @@ -250,7 +252,7 @@ SUBROUTINE SET_PARMS( myThid ) WRITE(msgBuf,'(A,I9,2A)') 'SET_PARMS: selectP_inEOS_Zc=', & selectP_inEOS_Zc, ' : invalid with eosType=', eosType CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SET_PARMS' + errCount = errCount + 1 ENDIF ELSE selectP_inEOS_Zc = -1 @@ -290,7 +292,24 @@ SUBROUTINE SET_PARMS( myThid ) ENDIF #endif /* ALLOW_LONGSTEP */ -C-- After this point, main model parameters are not supposed to be modified. + IF ( OLx.LE.0 .OR. OLy.LE.0 ) THEN +C-- Overlap-size will be checked later in CONFIG_CHECK. This minimal +C check here is just to set-up the model grid (INI_GRID) safely. + WRITE(msgBuf,'(2A)') 'SET_PARMS: ', + & 'model unusable with no overlap (OLx,OLy = 0)' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + + IF ( errCount.GE.1 ) THEN + WRITE(msgBuf,'(A,I3,A)') + & 'SET_PARMS: detected', errCount,' fatal error(s)' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R SET_PARMS' + ENDIF + +C-- After this point, main model parameters are not supposed to be modified. WRITE(msgBuf,'(A,A)') 'SET_PARMS: done' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) diff --git a/model/src/set_ref_state.F b/model/src/set_ref_state.F index ed9cd26623..7340681d11 100644 --- a/model/src/set_ref_state.F +++ b/model/src/set_ref_state.F @@ -28,16 +28,16 @@ SUBROUTINE SET_REF_STATE( #include "EOS.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == +C myThid :: my Thread Id number INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == -C msgBuf :: Informational/error message buffer +C msgBuf :: Informational/error message buffer +C pRefIntF :: reference pressure at level interface CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER k, ks, stdUnit - _RL rHalf(2*Nr+1), pRefLocF(Nr+1) - _RL rhoRef(Nr), tLoc(Nr) + _RL rHalf(2*Nr+1), pRefIntF(Nr+1) + _RL tLoc(Nr) _RL pLoc, rhoUp, rhoDw, rhoLoc _RL ddPI, conv_theta2T, thetaLoc C-- @@ -54,15 +54,17 @@ SUBROUTINE SET_REF_STATE( stdUnit = standardMessageUnit DO k=1,Nr - rhoRef(k) = 0. - dBdrRef(k) = 0. - pRef4EOS(k) = 0. - rHalf(2*k-1) = rF(k) + rUnit2z(k) = 1. _d 0 + z2rUnit(k) = 1. _d 0 + rhoRef(k) = rhoConst + dBdrRef(k) = 0. _d 0 + pRef4EOS(k) = 0. _d 0 rHalf(2*k) = rC(k) ENDDO - rHalf(2*Nr+1) = rF(Nr+1) DO k=1,Nr+1 + pRefIntF(k) = 0. _d 0 + rHalf(2*k-1) = rF(k) rVel2wUnit(k) = 1. _d 0 wUnit2rVel(k) = 1. _d 0 ENDDO @@ -81,7 +83,7 @@ SUBROUTINE SET_REF_STATE( C-- Oceanic: define reference pressure/geo-potential vertical scale: IF ( buoyancyRelation.EQ.'OCEANIC' ) THEN phiRef(1) = top_Pres*recip_rhoConst - pRefLocF(1) = top_Pres + pRefIntF(1) = top_Pres IF ( gravityFile.EQ.' ' ) THEN DO k=1,Nr phiRef(2*k) = phiRef(1) @@ -89,11 +91,11 @@ SUBROUTINE SET_REF_STATE( phiRef(2*k+1) = phiRef(1) & + (rF(k+1)-rF(1))*gravity*gravitySign c pRef4EOS(k) = rhoConst*phiRef(2*k) -c pRefLocF(k+1) = rhoConst*phiRef(2*k+1) +c pRefIntF(k+1) = rhoConst*phiRef(2*k+1) C note: just to get the same previous machine truncation: - pRef4EOS(k) = pRefLocF(1) + pRef4EOS(k) = pRefIntF(1) & + rhoConst*(rC(k) - rF(1))*gravity*gravitySign - pRefLocF(k+1) = pRefLocF(1) + pRefIntF(k+1) = pRefIntF(1) & + rhoConst*(rF(k+1)-rF(1))*gravity*gravitySign ENDDO ELSEIF ( integr_GeoPot.EQ.1 ) THEN @@ -102,7 +104,7 @@ SUBROUTINE SET_REF_STATE( & + halfRL*drF(k)*gravity*gravFacC(k) phiRef(2*k+1) = phiRef(2*k-1) + drF(k)*gravity*gravFacC(k) pRef4EOS(k) = rhoConst*phiRef(2*k) - pRefLocF(k+1) = rhoConst*phiRef(2*k+1) + pRefIntF(k+1) = rhoConst*phiRef(2*k+1) ENDDO ELSE phiRef(2) = phiRef(1) + drC(1)*gravity*gravFacF(1) @@ -115,7 +117,7 @@ SUBROUTINE SET_REF_STATE( phiRef(2*k+1) = phiRef(2*k) + drC(k+1)*gravity*gravFacF(k+1) DO k=1,Nr pRef4EOS(k) = rhoConst*phiRef(2*k) - pRefLocF(k+1) = rhoConst*phiRef(2*k+1) + pRefIntF(k+1) = rhoConst*phiRef(2*k+1) ENDDO ENDIF ELSEIF ( buoyancyRelation.EQ.'OCEANICP' ) THEN @@ -125,7 +127,10 @@ SUBROUTINE SET_REF_STATE( & - recip_rhoConst*( rC(k) - rF(Nr+1) ) phiRef(2*k-1) = phiRef(2*Nr+1) & - recip_rhoConst*( rF(k) - rF(Nr+1) ) + pRef4EOS(k) = rC(k) + pRefIntF(k) = rF(k) ENDDO + pRefIntF(Nr+1) = rF(Nr+1) c ELSEIF (buoyancyRelation .EQ. 'ATMOSPHERIC') THEN C phiRef is computed later (see below) ENDIF @@ -176,7 +181,7 @@ SUBROUTINE SET_REF_STATE( belowCritNb = 5 maxIterNb = 10*Nr CALL FIND_HYD_PRESS_1D( - O pRef4EOS, pRefLocF, + O pRef4EOS, pRefIntF, U rhoRef, I tRef, sRef, maxResid, I belowCritNb, maxIterNb, myThid ) @@ -185,7 +190,7 @@ SUBROUTINE SET_REF_STATE( C-- Compute reference stratification: N^2 = -(g/rho_c) * d.rho/dz @ const. p dBdrRef(1) = 0. _d 0 DO k=2,Nr - pLoc = pRefLocF(k) + pLoc = pRefIntF(k) CALL FIND_RHO_SCALAR( I tRef(k-1), sRef(k-1), pLoc, O rhoUp, myThid ) @@ -206,18 +211,23 @@ SUBROUTINE SET_REF_STATE( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| ELSEIF ( buoyancyRelation.EQ.'OCEANICP' ) THEN -C-- Compute reference density profile +C-- Compute reference density profile (from tRef,sRef): DO k=1,Nr - pLoc = rC(k) + pLoc = pRef4EOS(k) CALL FIND_RHO_SCALAR( I tRef(k), sRef(k), pLoc, O rhoRef(k), myThid ) +C- set units convertion factor @ level center: +C z2rUnit = gravity*rhoRef : dr [Pa] = dz [m] * z2rUnit +C rUnit2z = 1/z2rUnit : dz [m] = dr [Pa] * rUnit2z + z2rUnit(k) = gravity*rhoRef(k) + rUnit2z(k) = 1. _d 0 / z2rUnit(k) ENDDO C-- Compute reference stratification: -d.alpha/dp @ constant p dBdrRef(1) = 0. _d 0 DO k=1,Nr+1 - pLoc = rF(k) + pLoc = pRefIntF(k) IF ( k.GE.2 ) CALL FIND_RHO_SCALAR( I tRef(k-1), sRef(k-1), pLoc, O rhoDw, myThid ) @@ -256,12 +266,27 @@ SUBROUTINE SET_REF_STATE( & * ddPI*recip_drC(k) ENDDO +C-- Set units convertion factor @ level center: +C z2rUnit = gravity/alpha : dr [Pa] = dz [m] * z2rUnit +C rUnit2z = alpha/gravity : dz [m] = dr [Pa] * rUnit2z + DO k=1,Nr + pRef4EOS(k) = rC(k) + thetaLoc = tRef(k) + IF ( thetaLoc.GT.0. _d 0 .AND. rC(k).GT.0. _d 0 ) THEN + conv_theta2T = (rC(k)/atm_Po)**atm_kappa + z2rUnit(k) = gravity + & * rC(k)/(atm_Rd*conv_theta2T*thetaLoc) + rUnit2z(k) = 1. _d 0 / z2rUnit(k) + ENDIF + ENDDO + C-- Units convertion factor for vertical velocity: C wUnit2rVel = gravity/alpha : rVel [Pa/s] = wSpeed [m/s] * wUnit2rVel C rVel2wUnit = alpha/gravity : wSpeed [m/s] = rVel [Pa/s] * rVel2wUnit C with alpha = 1/rhoRef = (R.T/p) (ideal gas) C note: wUnit2rVel & rVel2wUnit replace horiVertRatio & recip_horiVertRatio DO k=1,Nr+1 + pRefIntF(k) = rF(k) IF ( k.EQ.1 ) THEN thetaLoc = tRef(k) ELSEIF ( k.GT.Nr ) THEN @@ -369,7 +394,7 @@ SUBROUTINE SET_REF_STATE( IF ( selectP_inEOS_Zc.GE.1 ) THEN C- write (to binary file) Hyd-Pressure used in EOS: CALL WRITE_GLVEC_RL( 'PRef4EOS',' ',pRef4EOS, Nr, -1, myThid ) -c CALL WRITE_GLVEC_RL( 'PRefLocF',' ',pRefLocF,Nr+1,-1, myThid ) +c CALL WRITE_GLVEC_RL( 'PRefIntF',' ',pRefIntF,Nr+1,-1, myThid ) ENDIF IF ( buoyancyRelation.EQ.'ATMOSPHERIC' ) THEN WRITE(msgBuf,'(A)') ' ' diff --git a/model/src/solve_for_pressure.F b/model/src/solve_for_pressure.F index fc0242bed9..00e0ae90ec 100644 --- a/model/src/solve_for_pressure.F +++ b/model/src/solve_for_pressure.F @@ -32,6 +32,9 @@ SUBROUTINE SOLVE_FOR_PRESSURE( myTime, myIter, myThid ) #ifdef ALLOW_CD_CODE #include "CD_CODE_VARS.h" #endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_PARAMS.h" +#endif C === Functions ==== LOGICAL DIFFERENT_MULTIPLE @@ -270,43 +273,47 @@ SUBROUTINE SOLVE_FOR_PRESSURE( myTime, myIter, myThid ) nIterMin = cg2dUseMinResSol - 1 c CALL TIMER_START('CG2D [SOLVE_FOR_PRESSURE]',myThid) #ifdef DISCONNECTED_TILES -C-- Call the not-self-adjoint version of cg2d +C-- Call the disconnected-tile (no EXCH) version of cg2d CALL CG2D_EX0( U cg2d_b, cg2d_x, O firstResidual, minResidualSq, lastResidual, U numIters, nIterMin, I myThid ) #else /* not DISCONNECTED_TILES = default */ -#ifdef ALLOW_CG2D_NSA -C-- Call the not-self-adjoint version of cg2d - CALL CG2D_NSA( + IF ( useSRCGSolver ) THEN +C-- Call the single reduce CG solver +#ifdef ALLOW_SRCG + CALL CG2D_SR( U cg2d_b, cg2d_x, O firstResidual, minResidualSq, lastResidual, U numIters, nIterMin, I myThid ) -#else /* not ALLOW_CG2D_NSA = default */ -#ifdef ALLOW_SRCG - IF ( useSRCGSolver ) THEN -C-- Call the single reduce CG solver - CALL CG2D_SR( +#endif /* ALLOW_SRCG */ +#ifdef ALLOW_CG2D_NSA + ELSEIF ( useNSACGSolver ) THEN +C-- Call the not-self-adjoint version of cg2d + CALL CG2D_NSA( U cg2d_b, cg2d_x, O firstResidual, minResidualSq, lastResidual, U numIters, nIterMin, I myThid ) +#endif ELSE -#else - IF (.TRUE.) THEN C-- Call the default CG solver -#endif /* ALLOW_SRCG */ CALL CG2D( U cg2d_b, cg2d_x, O firstResidual, minResidualSq, lastResidual, U numIters, nIterMin, I myThid ) ENDIF -#endif /* ALLOW_CG2D_NSA */ #endif /* DISCONNECTED_TILES */ _EXCH_XY_RL( cg2d_x, myThid ) +#ifdef ALLOW_AUTODIFF +#ifndef ALLOW_TAPENADE + IF ( .NOT. useNSACGSolver .AND. cg2dFullAdjoint ) + & CALL CG2D_STORE( cg2d_x, .TRUE., myThid ) +#endif /* ALLOW_TAPENADE */ +#endif c CALL TIMER_STOP ('CG2D [SOLVE_FOR_PRESSURE]',myThid) #ifdef ALLOW_DEBUG diff --git a/model/src/solve_pentadiagonal.F b/model/src/solve_pentadiagonal.F index 2e50d5ce0a..7290be90f4 100644 --- a/model/src/solve_pentadiagonal.F +++ b/model/src/solve_pentadiagonal.F @@ -1,4 +1,8 @@ +#include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: SOLVE_PENTADIAGONAL @@ -291,6 +295,9 @@ SUBROUTINE SOLVE_PENTADIAGONAL( #else /* ndef SOLVE_DIAGONAL_KINNER */ +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT loctape_solvepenta = COMMON, Nr +#endif C-- Init. + copy to temp. array DO k=1,Nr DO j=1-OLy,sNy+OLy @@ -304,86 +311,95 @@ SUBROUTINE SOLVE_PENTADIAGONAL( ENDDO ENDDO -CADJ loop = sequential DO k=1,Nr C-- Forward sweep (starting from top) - - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -c DO j=jMin,jMax -c DO i=iMin,iMax - - IF (k.EQ.1) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE d5d_prime(:,:,k) = loctape_solvepenta, key = k +CADJ STORE e5d_prime(:,:,k) = loctape_solvepenta, key = k +CADJ STORE y5d_prime(:,:,k) = loctape_solvepenta, key = k +#endif + IF ( k .EQ. 1 ) THEN C- just copy terms - c5d_prime(i,j,k) = c5d(i,j,k) - d5d_prime(i,j,k) = d5d(i,j,k) - e5d_prime(i,j,k) = e5d(i,j,k) - y5d_prime(i,j,k) = y5d_m1(i,j,k) - ELSEIF (k.EQ.2) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + c5d_prime(i,j,k) = c5d(i,j,k) + d5d_prime(i,j,k) = d5d(i,j,k) + e5d_prime(i,j,k) = e5d(i,j,k) + y5d_prime(i,j,k) = y5d_m1(i,j,k) + ENDDO + ENDDO + ELSEIF ( k .EQ. 2 ) THEN C- subtract one term - c5d_prime(i,j,k) = c5d(i,j,k) - & -b5d(i,j,k)*d5d_prime(i,j,k-1) - d5d_prime(i,j,k) = d5d(i,j,k) - & -b5d(i,j,k)*e5d_prime(i,j,k-1) - e5d_prime(i,j,k) = e5d(i,j,k) - y5d_prime(i,j,k) = y5d_m1(i,j,k) - & -b5d(i,j,k)*y5d_prime(i,j,k-1) - ELSE + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + tmpVar = b5d(i,j,k) + c5d_prime(i,j,k) = c5d(i,j,k) - tmpVar*d5d_prime(i,j,k-1) + d5d_prime(i,j,k) = d5d(i,j,k) - tmpVar*e5d_prime(i,j,k-1) + e5d_prime(i,j,k) = e5d(i,j,k) + y5d_prime(i,j,k) = y5d_m1(i,j,k) - tmpVar*y5d_prime(i,j,k-1) + ENDDO + ENDDO + ELSE C- subtract two terms - c5d_prime(i,j,k) = c5d(i,j,k) - & -a5d(i,j,k)*e5d_prime(i,j,k-2) - & -(b5d(i,j,k)-a5d(i,j,k)*d5d_prime(i,j,k-2)) - & *d5d_prime(i,j,k-1) - d5d_prime(i,j,k) = d5d(i,j,k) - & -(b5d(i,j,k)-a5d(i,j,k)*d5d_prime(i,j,k-2)) - & *e5d_prime(i,j,k-1) - e5d_prime(i,j,k) = e5d(i,j,k) - y5d_prime(i,j,k) = y5d_m1(i,j,k) - & -a5d(i,j,k)*y5d_prime(i,j,k-2) - & -(b5d(i,j,k)-a5d(i,j,k)*d5d_prime(i,j,k-2)) - & *y5d_prime(i,j,k-1) - ENDIF + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + tmpVar = b5d(i,j,k)-a5d(i,j,k)*d5d_prime(i,j,k-2) + c5d_prime(i,j,k) = c5d(i,j,k) - tmpVar*d5d_prime(i,j,k-1) + & -a5d(i,j,k)*e5d_prime(i,j,k-2) + d5d_prime(i,j,k) = d5d(i,j,k) - tmpVar*e5d_prime(i,j,k-1) + e5d_prime(i,j,k) = e5d(i,j,k) + y5d_prime(i,j,k) = y5d_m1(i,j,k) - tmpVar*y5d_prime(i,j,k-1) + & -a5d(i,j,k)*y5d_prime(i,j,k-2) + ENDDO + ENDDO + ENDIF C- normalization - tmpVar = c5d_prime(i,j,k) - IF ( tmpVar.NE.0. _d 0 ) THEN - recVar = 1. _d 0 / tmpVar - d5d_prime(i,j,k) = d5d_prime(i,j,k)*recVar - e5d_prime(i,j,k) = e5d_prime(i,j,k)*recVar - y5d_prime(i,j,k) = y5d_prime(i,j,k)*recVar - ELSE - d5d_prime(i,j,k) = 0. _d 0 - e5d_prime(i,j,k) = 0. _d 0 - y5d_prime(i,j,k) = 0. _d 0 - errCode = 1 - ENDIF - + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + tmpVar = c5d_prime(i,j,k) + IF ( tmpVar.NE.0. _d 0 ) THEN + recVar = 1. _d 0 / tmpVar + d5d_prime(i,j,k) = d5d_prime(i,j,k)*recVar + e5d_prime(i,j,k) = e5d_prime(i,j,k)*recVar + y5d_prime(i,j,k) = y5d_prime(i,j,k)*recVar + ELSE + d5d_prime(i,j,k) = 0. _d 0 + e5d_prime(i,j,k) = 0. _d 0 + y5d_prime(i,j,k) = 0. _d 0 + errCode = 1 + ENDIF ENDDO ENDDO C- end k-loop ENDDO -CADJ loop = sequential C-- Backward sweep (starting from bottom) DO k=Nr,1,-1 - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -c DO j=jMin,jMax -c DO i=iMin,iMax - IF (k.EQ.Nr) THEN + IF ( k .EQ. Nr ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx y5d(i,j,k) = y5d_prime(i,j,k) - ELSEIF (k.EQ.Nr-1) THEN + ENDDO + ENDDO + ELSEIF ( k .EQ. Nr-1 ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx y5d(i,j,k) = y5d_prime(i,j,k) & - y5d(i,j,k+1)*d5d_prime(i,j,k) - ELSE + ENDDO + ENDDO + ELSE + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx y5d(i,j,k) = y5d_prime(i,j,k) & - y5d(i,j,k+1)*d5d_prime(i,j,k) & - y5d(i,j,k+2)*e5d_prime(i,j,k) - ENDIF + ENDDO ENDDO - ENDDO -C- end k-loop + ENDIF +C- k-loop ENDDO #endif /* SOLVE_DIAGONAL_KINNER */ diff --git a/model/src/solve_tridiagonal.F b/model/src/solve_tridiagonal.F index 4abb8d0a00..5e3c0fb950 100644 --- a/model/src/solve_tridiagonal.F +++ b/model/src/solve_tridiagonal.F @@ -222,36 +222,38 @@ SUBROUTINE SOLVE_TRIDIAGONAL( C-- Forward sweep DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -c DO j=jMin,jMax -c DO i=iMin,iMax - IF ( k.EQ.1 ) THEN - IF ( b3d(i,j,1).NE.0. _d 0 ) THEN - recVar = 1. _d 0 / b3d(i,j,1) - c3d_prime(i,j,1) = c3d(i,j,1)*recVar - y3d_prime(i,j,1) = y3d_m1(i,j,1)*recVar - ELSE - c3d_prime(i,j,1) = 0. _d 0 - y3d_prime(i,j,1) = 0. _d 0 - errCode = 1 - ENDIF - ELSE - tmpVar = b3d(i,j,k) - a3d(i,j,k)*c3d_prime(i,j,k-1) - IF ( tmpVar .NE. 0. _d 0 ) THEN - recVar = 1. _d 0 / tmpVar - c3d_prime(i,j,k) = c3d(i,j,k)*recVar - y3d_prime(i,j,k) = ( y3d_m1(i,j,k) - & - a3d(i,j,k)*y3d_prime(i,j,k-1) - & )*recVar - ELSE - c3d_prime(i,j,k) = 0. _d 0 - y3d_prime(i,j,k) = 0. _d 0 - errCode = 1 - ENDIF - ENDIF + IF ( k .EQ. 1 ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( b3d(i,j,1).NE.0. _d 0 ) THEN + recVar = 1. _d 0 / b3d(i,j,1) + c3d_prime(i,j,1) = c3d(i,j,1)*recVar + y3d_prime(i,j,1) = y3d_m1(i,j,1)*recVar + ELSE + c3d_prime(i,j,1) = 0. _d 0 + y3d_prime(i,j,1) = 0. _d 0 + errCode = 1 + ENDIF + ENDDO ENDDO - ENDDO + ELSE + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + tmpVar = b3d(i,j,k) - a3d(i,j,k)*c3d_prime(i,j,k-1) + IF ( tmpVar .NE. 0. _d 0 ) THEN + recVar = 1. _d 0 / tmpVar + c3d_prime(i,j,k) = c3d(i,j,k)*recVar + y3d_prime(i,j,k) = ( y3d_m1(i,j,k) + & - a3d(i,j,k)*y3d_prime(i,j,k-1) + & )*recVar + ELSE + c3d_prime(i,j,k) = 0. _d 0 + y3d_prime(i,j,k) = 0. _d 0 + errCode = 1 + ENDIF + ENDDO + ENDDO + ENDIF C- end k-loop ENDDO @@ -259,18 +261,20 @@ SUBROUTINE SOLVE_TRIDIAGONAL( CADJ loop = sequential C-- Backward sweep DO k=Nr,1,-1 - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -c DO j=jMin,jMax -c DO i=iMin,iMax - IF ( k.EQ.Nr ) THEN + IF ( k.EQ.Nr ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx y3d(i,j,k) = y3d_prime(i,j,k) - ELSE + ENDDO + ENDDO + ELSE + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx y3d(i,j,k) = y3d_prime(i,j,k) & - c3d_prime(i,j,k)*y3d(i,j,k+1) - ENDIF + ENDDO ENDDO - ENDDO + ENDIF C- end k-loop ENDDO diff --git a/model/src/swfrac.F b/model/src/swfrac.F index 4a41112ecf..6d2c8d87fa 100644 --- a/model/src/swfrac.F +++ b/model/src/swfrac.F @@ -62,7 +62,7 @@ SUBROUTINE SWFRAC( #ifdef ALLOW_CAL c _RL fac c LOGICAL first, changed -c INTEGER count0, count1 +c INTEGER count0, count1, year0, year1 c INTEGER jerl(12) c DATA jerl / 2 , 2 , 2 , 3 , 3 , 3 , 4 , 4 , 4 , 4 , 3 , 2 / #endif /* ALLOW_CAL */ @@ -85,7 +85,7 @@ SUBROUTINE SWFRAC( C make more sense to first think about a regionally varying C water type before implementing a time dependence. CML CALL cal_GetMonthsRec( -CML O fac, first, changed, count0, count1, +CML O fac, first, changed, count0, count1, year0, year1, CML I myTime, myIter, myThid ) CML jwtype=jerl(count0) CML) diff --git a/model/src/temp_integrate.F b/model/src/temp_integrate.F index 41a8daae77..ac0674447e 100644 --- a/model/src/temp_integrate.F +++ b/model/src/temp_integrate.F @@ -62,9 +62,8 @@ SUBROUTINE TEMP_INTEGRATE( #ifdef ALLOW_TIMEAVE # include "TIMEAVE_STATV.h" #endif -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -144,6 +143,11 @@ SUBROUTINE TEMP_INTEGRATE( #ifdef ALLOW_TIMEAVE LOGICAL useVariableK #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C kkey :: tape key (level and tile dependent) + INTEGER tkey, kkey +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -174,16 +178,7 @@ SUBROUTINE TEMP_INTEGRATE( #endif #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itdkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C- Apply AB on T : @@ -228,15 +223,17 @@ SUBROUTINE TEMP_INTEGRATE( ENDDO ENDDO ENDDO -CADJ STORE wFld(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte +#endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE wFld(:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # ifdef ALLOW_ADAMSBASHFORTH_3 -CADJ STORE gtNm(:,:,:,bi,bj,1) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE gtNm(:,:,:,bi,bj,2) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE gtNm(:,:,:,bi,bj,1) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE gtNm(:,:,:,bi,bj,2) = comlev1_bibj, key=tkey, byte=isbyte # else -CADJ STORE gtNm1(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE gtNm1(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # endif -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef INCLUDE_CALC_DIFFUSIVITY_CALL CALL CALC_3D_DIFFUSIVITY( @@ -244,6 +241,9 @@ SUBROUTINE TEMP_INTEGRATE( I GAD_TEMPERATURE, useGMredi, useKPP, O kappaRk, I myThid ) +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE kappaRk = comlev1_bibj, key = tkey, kind = isbyte +# endif #endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */ #ifndef DISABLE_MULTIDIM_ADVECTION @@ -259,7 +259,8 @@ SUBROUTINE TEMP_INTEGRATE( C disable this section of code. #ifdef GAD_ALLOW_TS_SOM_ADV # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE som_T = comlev1_bibj, key=itdkey, byte=isbyte +C- Note: inefficient storage, storing nSx*nSy times the full som_T array +CADJ STORE som_T = comlev1_bibj, key=tkey, byte=isbyte # endif IF ( tempSOM_Advection ) THEN # ifdef ALLOW_DEBUG @@ -294,25 +295,20 @@ SUBROUTINE TEMP_INTEGRATE( calcAdvection = tempAdvection .AND. .NOT.tempMultiDimAdvec DO k=Nr,1,-1 #ifdef ALLOW_AUTODIFF_TAMC - kkey = (itdkey-1)*Nr + k + kkey = k + (tkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ kM1 = MAX(1,k-1) kUp = 1+MOD(k+1,2) kDown= 1+MOD(k,2) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fVer(:,:,:) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gT_loc(:,:,k) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE fVer(:,:,:) = comlev1_bibj_k, key=kkey, kind = isbyte +CADJ STORE gT_loc(:,:,k) = comlev1_bibj_k, key=kkey, kind = isbyte # ifdef ALLOW_ADAMSBASHFORTH_3 -CADJ STORE gtNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gtNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE gtNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, kind = isbyte +CADJ STORE gtNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, kind = isbyte # else -CADJ STORE gtNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE gtNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, kind = isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ CALL CALC_ADV_FLOW( @@ -414,6 +410,9 @@ SUBROUTINE TEMP_INTEGRATE( ENDIF #ifdef NONLIN_FRSURF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gT_loc(:,:,k) = comlev1_bibj_k, key = kkey, kind = isbyte +# endif IF (nonlinFreeSurf.GT.0) THEN CALL FREESURF_RESCALE_G( I bi, bj, k, @@ -422,10 +421,8 @@ SUBROUTINE TEMP_INTEGRATE( IF ( AdamsBashforthGt ) THEN #ifdef ALLOW_ADAMSBASHFORTH_3 # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE gtNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte -CADJ STORE gtNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, -CADJ & byte=isbyte, kind = isbyte +CADJ STORE gtNm(:,:,k,bi,bj,1) = comlev1_bibj_k, key=kkey, kind=isbyte +CADJ STORE gtNm(:,:,k,bi,bj,2) = comlev1_bibj_k, key=kkey, kind=isbyte # endif CALL FREESURF_RESCALE_G( I bi, bj, k, @@ -436,6 +433,9 @@ SUBROUTINE TEMP_INTEGRATE( U gtNm(1-OLx,1-OLy,1,bi,bj,2), I myThid ) #else +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gtNm1(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, kind = isbyte +# endif CALL FREESURF_RESCALE_G( I bi, bj, k, U gtNm1(1-OLx,1-OLy,1,bi,bj), @@ -450,6 +450,9 @@ SUBROUTINE TEMP_INTEGRATE( #ifdef ALLOW_DOWN_SLOPE IF ( useDOWN_SLOPE ) THEN +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE recip_hFac = comlev1_bibj, key = tkey, kind = isbyte +# endif IF ( usingPCoords ) THEN CALL DWNSLP_APPLY( I GAD_TEMPERATURE, bi, bj, kSurfC, @@ -477,16 +480,17 @@ SUBROUTINE TEMP_INTEGRATE( C-- Implicit vertical advection & diffusion +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gT_loc (:,:,:) = comlev1_bibj, key = tkey, byte = isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef INCLUDE_IMPLVERTADV_CODE IF ( tempImplVertAdv .OR. implicitDiffusion ) THEN C to recover older (prior to 2016-10-05) results: c IF ( tempImplVertAdv ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE kappaRk(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE gT_loc(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE wFld(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE recip_hFac(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte +CADJ STORE wFld(:,:,:) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE recip_hFac(:,:,:) = comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL GAD_IMPLICIT_R( I tempImplVertAdv, tempVertAdvScheme, GAD_TEMPERATURE, @@ -498,10 +502,6 @@ SUBROUTINE TEMP_INTEGRATE( #else /* INCLUDE_IMPLVERTADV_CODE */ IF ( implicitDiffusion ) THEN #endif /* INCLUDE_IMPLVERTADV_CODE */ -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE kappaRk(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE gT_loc(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ CALL IMPLDIFF( I bi, bj, iMin, iMax, jMin, jMax, I GAD_TEMPERATURE, kappaRk, recip_hFac, diff --git a/model/src/the_main_loop.F b/model/src/the_main_loop.F index b451a73a3c..a4caf30de4 100644 --- a/model/src/the_main_loop.F +++ b/model/src/the_main_loop.F @@ -175,7 +175,8 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) # ifdef ALLOW_OFFLINE # include "OFFLINE.h" # endif -# if (defined ALLOW_CG2D_NSA) || (defined NONLIN_FRSURF) +# if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) # include "CG2D.h" # endif # ifdef ALLOW_DIVIDED_ADJOINT @@ -184,19 +185,21 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) # endif # endif +C-- keep tamc.h here without ALLOW_AUTODIFF_TAMC for ALLOW_TAMC_CHECKPOINTING # include "tamc.h" -# ifdef ALLOW_GGL90 -# include "GGL90.h" -# endif -# ifdef ALLOW_PROFILES -# include "PROFILES_SIZE.h" -# include "profiles.h" -# endif -# ifdef ALLOW_ECCO -# include "ecco_cost.h" -# endif - +# ifdef ALLOW_GGL90 +# include "GGL90.h" +# endif +# ifdef ALLOW_PROFILES +# include "PROFILES_SIZE.h" +# include "profiles.h" +# endif +# ifdef ALLOW_ECCO +# include "ecco_cost.h" +# endif +C it is important that this file is included after SEAICE_SIZE.h +# include "AUTODIFF_STORE.h" # endif /* undef ALLOW_OPENAD */ # ifdef ALLOW_CTRL @@ -211,6 +214,35 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) # endif #endif /* ALLOW_AUTODIFF */ + +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# include "GMREDI_TAVE.h" +# endif +# ifdef ALLOW_KPP +# include "KPP.h" +c# include "KPP_PARAMS.h" +# endif +# ifdef ALLOW_CTRL +# include "optim.h" +# endif +# ifdef ALLOW_TIMEAVE +# include "TIMEAVE_STATV.h" +# endif +# ifdef ALLOW_EXF +# include "EXF_PARAM.h" +# include "EXF_INTERP_PARAM.h" +# endif +# ifdef ALLOW_DOWN_SLOPE +# include "DWNSLP_SIZE.h" +# include "DWNSLP_VARS.h" +# endif +# ifdef ALLOW_PTRACERS +# include "PTRACERS_PARAMS.h" +# endif +#endif /* ALLOW_TAPENADE */ + c************************************** C !INPUT/OUTPUT PARAMETERS: @@ -236,6 +268,18 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) #ifdef STORE_LOADEDREC_TEST INTEGER bi,bj #endif /* STORE_LOADEDREC_TEST */ +#ifdef ALLOW_AUTODIFF +# ifdef ALLOW_TAMC_CHECKPOINTING + INTEGER ilev_1 + INTEGER ilev_2, max_lev2 +# ifndef AUTODIFF_2_LEVEL_CHECKPOINT + INTEGER ilev_3, max_lev3 +# endif +# ifdef AUTODIFF_4_LEVEL_CHECKPOINT + INTEGER ilev_4, max_lev4 +# endif +# endif /* ALLOW_TAMC_CHECKPOINTING */ +#endif /* ALLOW_AUTODIFF */ CEOP #ifdef ALLOW_DEBUG @@ -244,75 +288,72 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC c-- Initialize storage for the cost function evaluation. -CADJ INIT dummytape = common, 1 -c-- Initialize storage for the outermost loop. +c--------------------------------------------------------- +c-- Initialize storage for the initialisation phase. # ifdef ALLOW_AUTODIFF_WHTAPEIO -CADJ INIT tapelev_init = common, 1 +CADJ INIT tapelev_init = COMMON, 1 # else -CADJ INIT tapelev_init = USER -CADJ INIT tapelev_ini_bibj = USER -CADJ INIT tapelev_ini_bibj_k = USER +CADJ INIT tapelev_init = USER # endif -# ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -CADJ INIT onetape = USER -# endif +c-- this tape is never used +cCADJ INIT tapelev_ini_bibj = USER +# ifdef INCLUDE_CONVECT_INI_CALL +c-- currently only used in convective_adjustement_ini.F +CADJ INIT tapelev_ini_bibj_k = COMMON, nSx*nSy*Nr +# endif +# if (defined ALLOW_GENTIM2D_CONTROL || defined ALLOW_ECCO) +c-- exclusive tape for variables with suffix "_dummy" +CADJ INIT dummytape = COMMON, 1 # endif +c-- Initialize storage for the outermost loop. # ifdef ALLOW_TAMC_CHECKPOINTING # if (defined (AUTODIFF_2_LEVEL_CHECKPOINT)) CADJ INIT tapelev2 = USER +CADJ INIT tapelvi2 = USER,'adi' # elif (defined (AUTODIFF_4_LEVEL_CHECKPOINT)) CADJ INIT tapelev4 = USER +CADJ INIT tapelvi4 = USER,'adi' # else CADJ INIT tapelev3 = USER +CADJ INIT tapelvi3 = USER,'adi' # endif # endif #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF nIter0 = NINT( (startTime-baseTime)/deltaTClock ) - ikey_dynamics = 1 #endif #ifdef ALLOW_AUTODIFF_TAMC + ikey_dynamics = 1 +# ifdef ALLOW_GENTIM2D_CONTROL +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +# endif # ifdef NONLIN_FRSURF -CADJ STORE hFacC = tapelev_init, key = 1 +CADJ STORE hFacC = tapelev_init, key = 1 CADJ STORE recip_hFacC = tapelev_init, key = 1 # endif -#endif - -#ifdef ALLOW_OPENAD -# ifdef ALLOW_THETA0_CONTROL -c$openad INDEPENDENT(xx_theta_dummy) -# endif -# ifdef ALLOW_SALT0_CONTROL -c$openad INDEPENDENT(xx_salt_dummy) +# ifdef ALLOW_SHELFICE +CADJ STORE shelficeLoadAnomaly = tapelev_init, key=1, kind=isbyte # endif -# ifdef ALLOW_HFLUX0_CONTROL -c$openad INDEPENDENT(xx_hflux0) +# ifdef ALLOW_STREAMICE +CADJ STORE H_streamice = tapelev_init, key=1 +CADJ STORE B_glen = tapelev_init, key=1 # endif -# ifdef ALLOW_SFLUX0_CONTROL -c$openad INDEPENDENT(xx_sflux0) -# endif -# ifdef ALLOW_TAUU0_CONTROL -c$openad INDEPENDENT(xx_tauu0) -# endif -# ifdef ALLOW_TAUV0_CONTROL -c$openad INDEPENDENT(xx_tauv0) +# ifdef ALLOW_DIC +CADJ STORE co2atmos = tapelev_init, key = 1 +CADJ STORE alpha = tapelev_init, key = 1 # endif +#endif + +#ifdef ALLOW_OPENAD # ifdef ALLOW_DIFFKR_CONTROL c$openad INDEPENDENT(xx_diffkr_dummy) # endif # ifdef ALLOW_KAPGM_CONTROL c$openad INDEPENDENT(xx_kapgm) # endif -# ifdef ALLOW_TR10_CONTROL -c$openad INDEPENDENT(xx_tr1) -# endif -# ifdef ALLOW_HFLUXM_CONTROL -c$openad INDEPENDENT(xx_hfluxm) -# endif # ifdef ALLOW_GENARR2D_CONTROL cphc$openad INDEPENDENT(xx_genarr2d) c$openad INDEPENDENT(xx_genarr2d_dummy) @@ -334,15 +375,6 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) CALL TIMER_START('INITIALISE_VARIA [THE_MAIN_LOOP]', myThid) CALL INITIALISE_VARIA( myThid ) CALL TIMER_STOP ('INITIALISE_VARIA [THE_MAIN_LOOP]', myThid) -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -cph: avoid renewed call of initialise_varia in recomputation loop -cph: in some circumstances -CADJ STORE sbar_gen,tbar_gen = onetape -# endif -# endif -#endif #ifdef ALLOW_SHOWFLOPS CALL TIMER_START('SHOWFLOPS_INIT [THE_MAIN_LOOP]', myThid) @@ -369,8 +401,12 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) # ifdef ALLOW_TAMC_CHECKPOINTING c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +# ifdef AUTODIFF_4_LEVEL_CHECKPOINT max_lev4=nTimeSteps/(nchklev_1*nchklev_2*nchklev_3)+1 +# endif +# ifndef AUTODIFF_2_LEVEL_CHECKPOINT max_lev3=nTimeSteps/(nchklev_1*nchklev_2)+1 +# endif max_lev2=nTimeSteps/nchklev_1+1 c************************************** @@ -383,66 +419,68 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) do ilev_4 = 1,nchklev_4 if(ilev_4.le.max_lev4) then c************************************** -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 4 , 0, myThid ) -#endif +# endif CALL AUTODIFF_STORE( myThid ) #include "checkpoint_lev4_directives.h" CALL AUTODIFF_RESTORE( myThid ) -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 4 , 1, myThid ) -#endif +# endif c************************************** c-- Initialise storage for the middle loop. CADJ INIT tapelev3 = USER +CADJ INIT tapelvi3 = USER,'adi' # endif /* AUTODIFF_4_LEVEL_CHECKPOINT */ # ifndef AUTODIFF_2_LEVEL_CHECKPOINT do ilev_3 = 1,nchklev_3 if(ilev_3.le.max_lev3) then c************************************** -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 3 , 0, myThid ) -#endif +# endif CALL AUTODIFF_STORE( myThid ) #include "checkpoint_lev3_directives.h" CALL AUTODIFF_RESTORE( myThid ) -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 3 , 1, myThid ) -#endif +# endif c************************************** c-- Initialise storage for the middle loop. CADJ INIT tapelev2 = USER +CADJ INIT tapelvi2 = USER,'adi' # endif /* AUTODIFF_2_LEVEL_CHECKPOINT */ do ilev_2 = 1,nchklev_2 if(ilev_2.le.max_lev2) then c************************************** -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 2 , 0, myThid ) -#endif +# endif CALL AUTODIFF_STORE( myThid ) #include "checkpoint_lev2_directives.h" CALL AUTODIFF_RESTORE( myThid ) -#ifdef ALLOW_AUTODIFF_WHTAPEIO +# ifdef ALLOW_AUTODIFF_WHTAPEIO CALL AUTODIFF_WHTAPEIO_SYNC( 2 , 1, myThid ) -#endif +# endif c************************************** -# endif /* ALLOW_TAMC_CHECKPOINTING */ +# endif /* ALLOW_TAMC_CHECKPOINTING */ -# ifdef ALLOW_AUTODIFF_TAMC +# ifdef ALLOW_AUTODIFF_TAMC c************************************** c-- Initialize storage for the innermost loop. c-- Always check common block sizes for the checkpointing! c-- CADJ INIT comlev1 = COMMON,nchklev_1 -CADJ INIT comlev1_bibj = COMMON,nchklev_1*nSx*nSy*nthreads_chkpt -CADJ INIT comlev1_bibj_k = COMMON,nchklev_1*nSx*nSy*Nr*nthreads_chkpt -c-- -# ifdef ALLOW_CTRL -CADJ INIT ctrltape = COMMON,1 -# endif +CADJ INIT comlev1_bibj = COMMON,nchklev_1*nSx*nSy +CADJ INIT comlev1_bibj_k = COMMON,nchklev_1*nSx*nSy*Nr +# ifdef ALLOW_BLING +CADJ INIT comlev1_bibj_ijk = COMMON, +CADJ & nchklev_1*nSx*nSy*Nr*(2*OLy+sNy)*(2*OLx+sNx) +# endif c-- # ifdef ALLOW_KPP CADJ INIT comlev1_kpp = COMMON,nchklev_1*nSx*nSy @@ -450,114 +488,109 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) # endif /* ALLOW_KPP */ c-- # ifdef ALLOW_GMREDI -CADJ INIT comlev1_gmredi_k_gad -CADJ & = COMMON,nchklev_1*nSx*nSy*Nr*nthreads_chkpt*maxpass +CADJ INIT comlev1_gmredi_k_gad = COMMON,nchklev_1*nSx*nSy*Nr*maxpass +cCADJ INIT comlev1_gmredi_slope = COMMON,nchklev_1*nSx*nSy*Nr*3 # endif /* ALLOW_GMREDI */ c-- # ifdef ALLOW_PTRACERS CADJ INIT comlev1_bibj_ptracers = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*PTRACERS_num +CADJ & nchklev_1*nSx*nSy*PTRACERS_num CADJ INIT comlev1_bibj_k_ptracers = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*PTRACERS_num*Nr +CADJ & nchklev_1*nSx*nSy*PTRACERS_num*Nr # endif /* ALLOW_PTRACERS */ c-- -# ifndef DISABLE_MULTIDIM_ADVECTION -CADJ INIT comlev1_bibj_gad = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*maxpass -CADJ INIT comlev1_bibj_k_gad = COMMON, -CADJ & nchklev_1*nSx*nSy*Nr*nthreads_chkpt*maxpass -CADJ INIT comlev1_bibj_k_gad_pass = COMMON, -CADJ & nchklev_1*nSx*nSy*Nr*nthreads_chkpt*maxpass*maxpass -# endif /* DISABLE_MULTIDIM_ADVECTION */ -c-- # ifdef ALLOW_MOM_COMMON # ifndef AUTODIFF_DISABLE_LEITH CADJ INIT comlev1_mom_ijk_loop -CADJ & = COMMON,nchklev_1* -CADJ & (sNx+2*OLx)*nSx*(sNy+2*OLy)*nSy*Nr*nthreads_chkpt +CADJ & = COMMON,nchklev_1*(sNx+2*OLx)*nSx*(sNy+2*OLy)*nSy*Nr # endif /* AUTODIFF_DISABLE_LEITH */ # endif /* ALLOW_MOM_COMMON */ c-- -# if (defined (ALLOW_EXF) && defined (ALLOW_BULKFORMULAE)) -CADJ INIT comlev1_exf_1 -CADJ & = COMMON,nchklev_1*sNx*nSx*sNy*nSy*nthreads_chkpt -CADJ INIT comlev1_exf_2 -CADJ & = COMMON,niter_bulk*nchklev_1*sNx*nSx*sNy*nSy*nthreads_chkpt +# if (defined ALLOW_EXF && defined ALLOW_BULKFORMULAE) +CADJ INIT comlev1_exf_1 = COMMON,nchklev_1*sNx*nSx*sNy*nSy +CADJ INIT comlev1_exf_2 = COMMON,niter_bulk*nchklev_1*sNx*nSx*sNy*nSy # endif /* ALLOW_BULKFORMULAE */ c-- # ifdef ALLOW_SEAICE -# ifdef SEAICE_ALLOW_DYNAMICS +# ifdef SEAICE_CGRID CADJ INIT comlev1_dynsol = COMMON,nchklev_1*MPSEUDOTIMESTEPS # ifdef SEAICE_LSR_ADJOINT_ITER CADJ INIT comlev1_lsr = COMMON,nchklev_1*MPSEUDOTIMESTEPS*SOLV_MAX_FIXED CADJ INIT comlev1_bibj_lsr = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*MPSEUDOTIMESTEPS*SOLV_MAX_FIXED +CADJ & nchklev_1*nSx*nSy*MPSEUDOTIMESTEPS*SOLV_MAX_FIXED # else /* make the common blocks smaller to reduce memory footprint */ -CADJ INIT comlev1_lsr = COMMON,nchklev_1*MPSEUDOTIMESTEPS -CADJ INIT comlev1_bibj_lsr = COMMON, -CADJ & nSx*nSy*nthreads_chkpt*nchklev_1*MPSEUDOTIMESTEPS +CADJ INIT comlev1_lsr = COMMON, nchklev_1*MPSEUDOTIMESTEPS +CADJ INIT comlev1_bibj_lsr = COMMON,nSx*nSy*nchklev_1*MPSEUDOTIMESTEPS # endif # endif # ifdef SEAICE_ALLOW_EVP -CADJ INIT comlev1_evp = COMMON,nEVPstepMax*nchklev_1 -CADJ INIT comlev1_bibj_evp = COMMON, -CADJ & nSx*nSy*nthreads_chkpt*nEVPstepMax*nchklev_1 +CADJ INIT comlev1_evp = COMMON, nEVPstepMax*nchklev_1 +CADJ INIT comlev1_bibj_evp = COMMON,nSx*nSy*nEVPstepMax*nchklev_1 # endif CML# ifdef SEAICE_MULTICATEGORY -CMLCADJ INIT comlev1_multdim -CMLCADJ & = COMMON,nchklev_1*nSx*nSy*nthreads_chkpt*nitd +CMLCADJ INIT comlev1_multdim = COMMON,nchklev_1*nSx*nSy*nitd CML# endif # ifndef DISABLE_MULTIDIM_ADVECTION CADJ INIT comlev1_bibj_k_gadice = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*maxpass +CADJ & nchklev_1*nSx*nSy*maxpass CADJ INIT comlev1_bibj_k_gadice_pass = COMMON, -CADJ & nchklev_1*nSx*nSy*nthreads_chkpt*maxpass*maxpass +CADJ & nchklev_1*nSx*nSy*maxpass*maxcube # endif /* DISABLE_MULTIDIM_ADVECTION */ -# endif /* ALLOW_SEAICE */ +# endif /* ALLOW_SEAICE */ c-- # ifdef ALLOW_THSICE -CADJ INIT comlev1_thsice_1 = COMMON, -CADJ & nchklev_1*sNx*nSx*sNy*nSy*nthreads_chkpt -CADJ INIT comlev1_thsice_2 = COMMON, -CADJ & nchklev_1*sNx*nSx*sNy*nSy*nlyr*nthreads_chkpt -CADJ INIT comlev1_thsice_3 = COMMON, -CADJ & nchklev_1*sNx*nSx*sNy*nSy*MaxTsf*nthreads_chkpt -CADJ INIT comlev1_thsice_4 = COMMON, -CADJ & nchklev_1*nSx*nSy*maxpass*nthreads_chkpt -CADJ INIT comlev1_thsice_5 = COMMON, -CADJ & nchklev_1*sNx*nSx*sNy*nSy*MaxTsf*(niter_bulk+1)*nthreads_chkpt -CADJ INIT comlev1_thsice_s4t = COMMON, -CADJ & nchklev_1*nSx*nSy*maxtsf*nthreads_chkpt +C Tape for thsice_advection, which is called for thSIce_nAdv (=5) +C different variables (thSIce_nAdv is set in THSICE_SIZE.h) +CADJ INIT comlev1_thsice_adv = COMMON, +CADJ & nchklev_1*nSx*nSy*maxcube*thSIce_nAdv +CADJ INIT comlev1_thsice_nlyr = COMMON,nchklev_1*nSx*nSy*nlyr +CADJ INIT comlev1_thsice_s4t = COMMON,nchklev_1*nSx*nSy*MaxTsf +# if (defined ALLOW_EXF && defined ALLOW_BULKFORMULAE) +C These tapes are only used within thsice_get_exf.F +CADJ INIT comlev1_thsice_exf = COMMON, +CADJ & nchklev_1*nSx*nSy*(MaxTsf+1) +CADJ INIT comlev1_thsice_exf_niter = COMMON, +CADJ & nchklev_1*nSx*nSy*(MaxTsf+1)*niter_bulk +CADJ INIT comlev1_thsice_exf_ij = COMMON, +CADJ & nchklev_1*nSx*nSy*(MaxTsf+1)*niter_bulk*sNx*sNy +# endif # endif /* ALLOW_THSICE */ c-- # ifdef ALLOW_STREAMICE -CADJ INIT comlev1_stream_nl = COMMON,nchklev_1*streamice_max_nl +CADJ INIT comlev1_stream_nl = COMMON,nchklev_1*streamice_max_nl CADJ INIT comlev1_stream_front = COMMON,nchklev_1*4 CADJ INIT comlev1_stream_ij CADJ & = COMMON,nchklev_1*4*(sNx+2)*nSx*(sNy+2)*nSy -CADJ INIT comlev1_stream_hybrid -CADJ & = COMMON,nchklev_1*sNx*nSx*sNy*nSy*Nr*nthreads_chkpt +CADJ INIT comlev1_stream_hybrid = COMMON,nchklev_1*sNx*nSx*sNy*nSy*Nr # endif c-- # ifdef ALLOW_CG2D_NSA -CADJ INIT comlev1_cg2d -CADJ & = COMMON,nchklev_1*nthreads_chkpt -CADJ INIT comlev1_cg2d_iter -CADJ & = COMMON,nchklev_1*nthreads_chkpt*numItersMax +CADJ INIT comlev1_cg2d = COMMON,nchklev_1 +CADJ INIT comlev1_cg2d_iter = COMMON,nchklev_1*numItersMax # endif -# endif /* ALLOW_AUTODIFF_TAMC */ +# endif /* ALLOW_AUTODIFF_TAMC */ c-- c************************************** -#ifdef STORE_LOADEDREC_TEST +# ifdef STORE_LOADEDREC_TEST DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) loadedRec(bi,bj) = 0 ENDDO ENDDO -#endif /* STORE_LOADEDREC_TEST */ - -#ifdef ALLOW_TAMC_CHECKPOINTING +# endif /* STORE_LOADEDREC_TEST */ + +# if ( defined ALLOW_AUTODIFF_TAMC && defined ALLOW_OFFLINE ) +C The following statement forces TAF to store wVel correctly in some +C outer checkpoint levels in some cases when it does not do it +C automatically (similar to TICES in seaice_reg_ridge.F). This is a +C TAF bug and this statement can probably be removed again, once +C this bug is fixed (but it does not hurt, either). +# ifndef AUTODIFF_USE_STORE_RESTORE +CADJ INCOMPLETE wVel +# endif +# endif +# ifdef ALLOW_TAMC_CHECKPOINTING do ilev_1 = 1,nchklev_1 @@ -565,12 +598,12 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) c-- choice of the 3-tupel ( nchklev_1, nchklev_2, nchklev_3 ). iloop = (ilev_2 - 1)*nchklev_1 + ilev_1 -# ifndef AUTODIFF_2_LEVEL_CHECKPOINT +# ifndef AUTODIFF_2_LEVEL_CHECKPOINT & + (ilev_3 - 1)*nchklev_2*nchklev_1 -# endif -# ifdef AUTODIFF_4_LEVEL_CHECKPOINT +# endif +# ifdef AUTODIFF_4_LEVEL_CHECKPOINT & + (ilev_4 - 1)*nchklev_3*nchklev_2*nchklev_1 -# endif +# endif if ( iloop .le. nTimeSteps ) then @@ -595,10 +628,14 @@ SUBROUTINE THE_MAIN_LOOP( myTime, myIter, myThid ) C-- Reset the model iteration counter and the model time. myIter = nIter0 + (iloop-1) myTime = startTime + deltaTClock*(iloop-1) -# ifndef ALLOW_OPENAD +# ifdef ALLOW_AUTODIFF_TAMC +# ifdef ALLOW_TAMC_CHECKPOINTING ikey_dynamics = ilev_1 +# else + ikey_dynamics = iloop +# endif # endif -#endif +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_ECCO IF ( useECCO ) then diff --git a/model/src/the_model_main.F b/model/src/the_model_main.F index a3a773fc08..176be292ad 100644 --- a/model/src/the_model_main.F +++ b/model/src/the_model_main.F @@ -468,6 +468,7 @@ C/\ | | | | |-CD_CODE_WRITE_PICKUP :: Write CD-code pickups (see pkg/cd_code) C/\ | | | | |-OBCS_WRITE_PICKUP :: Write OBCS pickups (see pkg/obcs) C/\ | | | | |-GGL90_WRITE_PICKUP :: Write GGL90 pickups (see pkg/ggl90) +C/\ | | | | |-GMREDI_WRITE_PICKUP :: Write GMREDI pickups (see pkg/gmredi) C/\ | | | | |-BBL_WRITE_PICKUP :: Write BBL pickups (see pkg/bbl) C/\ | | | | |-CHEAPAML_WRITE_PICKUP :: Write CheapAML pickups (pkg/cheapaml) C/\ | | | | |-FLT_WRITE_PICKUP :: Write Floats pickups (see pkg/flt) @@ -475,7 +476,7 @@ C/\ | | | | |-GCHEM_WRITE_PICKUP :: Write Geo-Chem pickups (see pkg/gchem) C/\ | | | | |-SEAICE_WRITE_PICKUP :: Write SeaIce pickups (see pkg/seaice) C/\ | | | | |-STREAMICE_WRITE_PICKUP :: Write StreamIce pickups (pkg/streamice) -C/\ | | | | |-SHELFICE_WRITE_PICKUP :: Write ShelfIce pickups (pkg/shelfice) +C/\ | | | | |-SHELFICE_WRITE_PICKUP :: Write ShelfIce pickups (pkg/shelfice) C/\ | | | | |-THSICE_WRITE_PICKUP :: Write ThSIce pickups (see pkg/thsice) C/\ | | | | |-LAND_WRITE_PICKUP :: Write Land pickups (see pkg/land) C/\ | | | | |-ATM_PHYS_WRITE_PICKUP :: Write Atm-Phys pickups (pkg/atm_phys) @@ -483,6 +484,7 @@ C/\ | | | | |-FIZHI_WRITE_VEGTILES :: Write Fizhi VegTiles (see pkg/fizhi) C/\ | | | | |-FIZHI_WRITE_DATETIME :: Write Fizhi DateTime (see pkg/fizhi) C/\ | | | | |-CPL_WRITE_PICKUP :: Write Coupling-Interface pickups +C/\ | | | | |-ECCO_WRITE_PICKUP :: Write ECCO pickups (see pkg/ecco) C/\ | | | | |-MYPACKAGE_WRITE_PICKUP :: Write pkg/mypackage pickups C/\ | | | | C/\ | | | |-WRITE_PICKUP :: Write main model pickup files. @@ -580,7 +582,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) #include "PARAMS.h" #include "DYNVARS.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" #endif #ifdef ALLOW_CTRL @@ -658,7 +660,9 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL COST_DEPENDENT_INIT ( myThid ) # endif -# if ( defined (ALLOW_TANGENTLINEAR_RUN) ) +# if defined( ALLOW_TANGENTLINEAR_RUN ) + +# ifndef ALLOW_TAPENADE # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('G_THE_MAIN_LOOP',myThid) @@ -667,8 +671,13 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL G_THE_MAIN_LOOP ( myTime, myIter, myThid ) CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',myThid) -# elif ( defined (ALLOW_ADJOINT_RUN) || \ - defined (ALLOW_ECCO_OPTIMIZATION) ) +# endif /* ndef ALLOW_TAPENADE */ + +# elif defined( ALLOW_ADJOINT_RUN ) + +# ifdef ALLOW_TAPENADE + CALL THE_MAIN_LOOP_B( myTime, myIter, myThid ) +# else /* ALLOW_TAPENADE */ # ifdef ALLOW_DIVIDED_ADJOINT C-- The following assumes the TAF option '-pure' @@ -699,6 +708,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL ADTHE_MAIN_LOOP ( myThid ) CALL TIMER_STOP ('ADTHE_MAIN_LOOP [ADJOINT RUN]', myThid) # endif /* ALLOW_DIVIDED_ADJOINT */ +# endif /* ALLOW_TAPENADE */ # else /* forward run only within AD setting */ @@ -713,7 +723,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) # endif /* forward run only within AD setting */ # ifdef ALLOW_CTRL -# ifndef EXCLUDE_CTRL_PACK +# ifndef EXCLUDE_CTRL_PACK IF ( useCTRL ) THEN IF ( lastdiva .AND. doMainPack ) THEN CALL TIMER_START('CTRL_PACK [THE_MODEL_MAIN]',myThid) @@ -727,8 +737,8 @@ SUBROUTINE THE_MODEL_MAIN(myThid) ENDIF ENDIF ENDIF -# endif /* EXCLUDE_CTRL_PACK */ -# endif +# endif /* EXCLUDE_CTRL_PACK */ +# endif /* ALLOW_CTRL */ # ifdef ALLOW_GRDCHK IF ( useGrdchk .AND. lastdiva ) THEN diff --git a/model/src/thermodynamics.F b/model/src/thermodynamics.F index 82ad05492e..2ddd4b6044 100644 --- a/model/src/thermodynamics.F +++ b/model/src/thermodynamics.F @@ -15,6 +15,9 @@ # include "KPP_OPTIONS.h" # endif #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: THERMODYNAMICS @@ -49,8 +52,9 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) #endif #ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "EOS.h" # ifdef ALLOW_KPP # include "KPP.h" @@ -66,6 +70,12 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) # endif #endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GENERIC_ADVDIFF +# include "GAD_SOM_VARS.h" +# endif +#endif /* ALLOW_TAPENADE */ + C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myTime :: Current time in simulation @@ -101,6 +111,10 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) _RL wrTime _RL trAdvCFL(3,nSx,nSy) # endif /* ALLOW_MONITOR */ +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) + INTEGER tkey +#endif CEOP #ifdef ALLOW_DEBUG @@ -119,11 +133,8 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) #ifdef ALLOW_AUTODIFF_TAMC C-- dummy statement to end declaration part - ikey = 1 - itdkey = 1 -#endif /* ALLOW_AUTODIFF_TAMC */ + tkey = 1 -#ifdef ALLOW_AUTODIFF_TAMC C-- HPF directive to help TAMC CHPF$ INDEPENDENT #endif /* ALLOW_AUTODIFF_TAMC */ @@ -165,16 +176,7 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itdkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C-- Set up work arrays with valid (i.e. not NaN) values @@ -281,26 +283,23 @@ SUBROUTINE THERMODYNAMICS(myTime, myIter, myThid) C- Apply AB on T,S : moved inside TEMP/SALT_INTEGRATE #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE recip_hFacNew(:,:,:) = comlev1_bibj , key=itdkey, byte=isbyte -CADJ STORE uFld (:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE vFld (:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE wFld (:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE recip_hFacNew(:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE uFld (:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE vFld (:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE wFld (:,:,:) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # ifdef ALLOW_SALT_PLUME -CADJ STORE saltPlumeFlux(:,:,bi,bj) = -CADJ & comlev1_bibj, key=itdkey,kind = isbyte -CADJ STORE saltPlumeDepth(:,:,bi,bj) = -CADJ & comlev1_bibj, key=itdkey,kind = isbyte +CADJ STORE saltPlumeFlux(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE saltPlumeDepth(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte # endif -# if ((defined NONLIN_FRSURF) || (defined ALLOW_DEPTH_CONTROL)) && (defined ALLOW_GMREDI) -# ifdef GM_NON_UNITY_DIAGONAL -CADJ STORE kux(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE kvy(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte -# endif +# if (defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL) \ + && defined ALLOW_GMREDI +CADJ STORE kux(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE kvy(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # ifdef GM_EXTRA_DIAGONAL -CADJ STORE kuz(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte -CADJ STORE kvz(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte +CADJ STORE kuz(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE kvz(:,:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # endif # endif #endif /* ALLOW_AUTODIFF_TAMC */ diff --git a/model/src/tracers_correction_step.F b/model/src/tracers_correction_step.F index 720cede0ac..7e4e3e8e23 100644 --- a/model/src/tracers_correction_step.F +++ b/model/src/tracers_correction_step.F @@ -4,7 +4,7 @@ CBOP C !ROUTINE: TRACERS_CORRECTION_STEP C !INTERFACE: - SUBROUTINE TRACERS_CORRECTION_STEP(myTime, myIter, myThid) + SUBROUTINE TRACERS_CORRECTION_STEP( myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE TRACERS_CORRECTION_STEP @@ -27,9 +27,14 @@ SUBROUTINE TRACERS_CORRECTION_STEP(myTime, myIter, myThid) #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD.h" #endif +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +# endif +#endif /* ALLOW_TAPENADE */ C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C myTime :: Current time in simulation C myIter :: Current iteration number in simulation C myThid :: my Thread Id number @@ -39,10 +44,11 @@ SUBROUTINE TRACERS_CORRECTION_STEP(myTime, myIter, myThid) #ifdef ALLOW_GENERIC_ADVDIFF C !LOCAL VARIABLES: -C == Local variables + INTEGER bi, bj +#ifdef ALLOW_OPPS INTEGER iMin,iMax INTEGER jMin,jMax - INTEGER bi, bj +#endif CEOP #ifdef ALLOW_NONHYDROSTATIC @@ -94,22 +100,23 @@ SUBROUTINE TRACERS_CORRECTION_STEP(myTime, myIter, myThid) DO bi=myBxLo(myThid),myBxHi(myThid) C-- Convectively adjust new fields to be statically stable - iMin = 1 - iMax = sNx - jMin = 1 - jMax = sNy #ifdef ALLOW_OPPS IF ( useOPPS ) THEN + iMin = 1 + iMax = sNx + jMin = 1 + jMax = sNy CALL OPPS_INTERFACE( I bi, bj, iMin, iMax, jMin, jMax, I myTime, myIter, myThid ) - ELSEIF ( cAdjFreq .NE. 0. ) THEN -#else /* ALLOW_OPPS */ - IF ( cAdjFreq .NE. 0. ) THEN + ENDIF #endif /* ALLOW_OPPS */ +#ifdef INCLUDE_CONVECT_CALL + IF ( .NOT. useOPPS .AND. cAdjFreq .NE. 0. ) THEN CALL CONVECTIVE_ADJUSTMENT( I bi, bj, myTime, myIter, myThid ) ENDIF +#endif /* INCLUDE_CONVECT_CALL */ #ifdef ALLOW_MATRIX IF (useMATRIX) diff --git a/model/src/turnoff_model_io.F b/model/src/turnoff_model_io.F index 406db38f4e..219369a94f 100644 --- a/model/src/turnoff_model_io.F +++ b/model/src/turnoff_model_io.F @@ -32,6 +32,10 @@ SUBROUTINE TURNOFF_MODEL_IO( seqFlag, myThid ) #ifdef ALLOW_OBCS # include "OBCS_PARAMS.h" #endif +#ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +#endif C !INPUT/OUTPUT PARAMETERS: C seqFlag :: flag that indicates where this S/R is called from: @@ -81,6 +85,11 @@ SUBROUTINE TURNOFF_MODEL_IO( seqFlag, myThid ) IF ( useOBCS ) OBCS_monitorFreq = 0. #endif +#ifdef ALLOW_ECCO +C- should call a S/R ECCO_TURNOFF_IO (like SEAICE) to reset this flag + IF ( useECCO ) ecco_output_sterGloH = .FALSE. +#endif + C-- Disable SBO output useSBO = .FALSE. diff --git a/model/src/update_masks_etc.F b/model/src/update_masks_etc.F index cf79a9e557..efbe28875f 100644 --- a/model/src/update_masks_etc.F +++ b/model/src/update_masks_etc.F @@ -3,6 +3,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif C-- File update_masks_etc.F: C-- Contents @@ -69,7 +72,8 @@ SUBROUTINE UPDATE_MASKS_ETC( myThid ) CHARACTER*(MAX_LEN_MBUF) suff Cml( INTEGER Im1, Jm1 - _RL hFacCtmp, hFacCtmp2 + _RL hFacCtmp +Cml _RL hFacCtmp2 _RL hFacMnSz Cml) CEOP @@ -83,11 +87,7 @@ SUBROUTINE UPDATE_MASKS_ETC( myThid ) DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx C o Non-dimensional distance between grid bound. and domain lower_R bound. -#ifdef ALLOW_DEPTH_CONTROL - hFacCtmp = (rF(K)-xx_r_low(I,J,bi,bj))*recip_drF(K) -#else - hFacCtmp = (rF(K)-R_low(I,J,bi,bj))*recip_drF(K) -#endif /* ALLOW_DEPTH_CONTROL */ + hFacCtmp = ( rF(K) - xx_r_low(I,J,bi,bj) )*recip_drF(K) Cml IF ( hFacCtmp .LE. 0. _d 0 ) THEN CmlC IF ( hFacCtmp .LT. 0.5*hfacMnSz ) THEN Cml hFacCtmp2 = 0. _d 0 @@ -239,9 +239,7 @@ SUBROUTINE UPDATE_MASKS_ETC( myThid ) ENDDO ENDDO ENDDO -#if ( defined (ALLOW_AUTODIFF) && \ - defined (ALLOW_AUTODIFF_MONITOR) && \ - defined (ALLOW_DEPTH_CONTROL) ) +#if ( defined ALLOW_AUTODIFF && defined ALLOW_AUTODIFF_MONITOR ) C Include call to a dummy routine. Its adjoint will be called at the proper C place in the adjoint code. The adjoint routine will print out adjoint C values if requested. The location of the call is important, it has to be @@ -250,9 +248,7 @@ SUBROUTINE UPDATE_MASKS_ETC( myThid ) Cml CALL DUMMY_IN_HFAC( 'S', 0, myThid ) #endif CALL EXCH_UV_XYZ_RS(hFacW,hFacS,.FALSE.,myThid) -#if ( defined (ALLOW_AUTODIFF) && \ - defined (ALLOW_AUTODIFF_MONITOR) && \ - defined (ALLOW_DEPTH_CONTROL) ) +#if ( defined ALLOW_AUTODIFF && defined ALLOW_AUTODIFF_MONITOR ) C Include call to a dummy routine. Its adjoint will be called at the proper C place in the adjoint code. The adjoint routine will print out adjoint C values if requested. The location of the call is important, it has to be diff --git a/model/src/update_r_star.F b/model/src/update_r_star.F index 10c5f749a6..14a018e77e 100644 --- a/model/src/update_r_star.F +++ b/model/src/update_r_star.F @@ -48,8 +48,8 @@ SUBROUTINE UPDATE_R_STAR( useLatest, myTime, myIter, myThid ) IF (useLatest) THEN DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx # ifndef DISABLE_RSTAR_CODE C-- Update the fractional thickness hFacC , hFacW & hFacS (& "recip_hFac") : hFacC(i,j,k,bi,bj) = h0FacC(i,j,k,bi,bj) @@ -82,8 +82,8 @@ SUBROUTINE UPDATE_R_STAR( useLatest, myTime, myIter, myThid ) ELSE DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx # ifndef DISABLE_RSTAR_CODE C-- Update the fractional thickness hFacC , hFacW & hFacS (& C"recip_hFac") : @@ -96,19 +96,19 @@ SUBROUTINE UPDATE_R_STAR( useLatest, myTime, myIter, myThid ) #endif C #ifdef USE_MASK_AND_NO_IF - recip_hFacC(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) - & / ( _hFacC(i,j,k,bi,bj) + (1.-maskC(i,j,k,bi,bj)) ) - recip_hFacW(i,j,k,bi,bj) = maskW(i,j,k,bi,bj) - & / ( _hFacW(i,j,k,bi,bj) + (1.-maskW(i,j,k,bi,bj)) ) - recip_hFacS(i,j,k,bi,bj) = maskS(i,j,k,bi,bj) - & / ( _hFacS(i,j,k,bi,bj) + (1.-maskS(i,j,k,bi,bj)) ) + recip_hFacC(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) / + & ( _hFacC(i,j,k,bi,bj) + (oneRS - maskC(i,j,k,bi,bj)) ) + recip_hFacW(i,j,k,bi,bj) = maskW(i,j,k,bi,bj) / + & ( _hFacW(i,j,k,bi,bj) + (oneRS - maskW(i,j,k,bi,bj)) ) + recip_hFacS(i,j,k,bi,bj) = maskS(i,j,k,bi,bj) / + & ( _hFacS(i,j,k,bi,bj) + (oneRS - maskS(i,j,k,bi,bj)) ) #else - IF (maskC(i,j,k,bi,bj).NE.0.) - & recip_hFacC(i,j,k,bi,bj) = 1. _d 0 / _hFacC(i,j,k,bi,bj) - IF (maskW(i,j,k,bi,bj).NE.0.) - & recip_hFacW(i,j,k,bi,bj) = 1. _d 0 / _hFacW(i,j,k,bi,bj) - IF (maskS(i,j,k,bi,bj).NE.0.) - & recip_hFacS(i,j,k,bi,bj) = 1. _d 0 / _hFacS(i,j,k,bi,bj) + IF ( maskC(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacC(i,j,k,bi,bj) = oneRS / _hFacC(i,j,k,bi,bj) + IF ( maskW(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacW(i,j,k,bi,bj) = oneRS / _hFacW(i,j,k,bi,bj) + IF ( maskS(i,j,k,bi,bj).NE.zeroRS ) + & recip_hFacS(i,j,k,bi,bj) = oneRS / _hFacS(i,j,k,bi,bj) #endif ENDDO ENDDO diff --git a/model/src/update_sigma.F b/model/src/update_sigma.F index 3a89e91c37..8e8124eec5 100644 --- a/model/src/update_sigma.F +++ b/model/src/update_sigma.F @@ -27,7 +27,6 @@ SUBROUTINE UPDATE_SIGMA( etaHc, myTime, myIter, myThid ) #include "SURFACE.h" c#ifdef ALLOW_AUTODIFF_TAMC c# include "tamc.h" -c# include "tamc_keys.h" c#endif C !INPUT/OUTPUT PARAMETERS: @@ -65,29 +64,12 @@ SUBROUTINE UPDATE_SIGMA( etaHc, myTime, myIter, myThid ) DO bi=myBxLo(myThid), myBxHi(myThid) c#ifdef ALLOW_AUTODIFF_TAMC -c act1 = bi - myBxLo(myThid) -c max1 = myBxHi(myThid) - myBxLo(myThid) + 1 -c act2 = bj - myByLo(myThid) -c max2 = myByHi(myThid) - myByLo(myThid) + 1 -c act3 = myThid - 1 -c max3 = nTx*nTy -c act4 = ikey_dynamics - 1 -c idynkey = (act1 + 1) + act2*max1 -c & + act3*max1*max2 -c & + act4*max1*max2*max3 +c tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy c#endif /* ALLOW_AUTODIFF_TAMC */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| c#ifdef ALLOW_OBCS -c# ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE rStarFacC(:,:,bi,bj) = -cCADJ & comlev1_bibj, key = idynkey, byte = isbyte -cCADJ STORE rStarFacS(:,:,bi,bj) = -cCADJ & comlev1_bibj, key = idynkey, byte = isbyte -cCADJ STORE rStarFacW(:,:,bi,bj) = -cCADJ & comlev1_bibj, key = idynkey, byte = isbyte -c# endif /* ALLOW_AUTODIFF_TAMC */ cC-- Apply OBC to rStar_Factor_W,S before updating hFacW,S c IF (useOBCS) THEN c CALL OBCS_APPLY_R_STAR( diff --git a/model/src/write_grid.F b/model/src/write_grid.F index ed6b732f0e..59eb23e110 100644 --- a/model/src/write_grid.F +++ b/model/src/write_grid.F @@ -90,6 +90,10 @@ SUBROUTINE WRITE_GRID( CALL WRITE_FLD_XY_RS( 'DYG',' ',dyG,-1,myThid) CALL WRITE_FLD_XY_RS( 'DXC',' ',dxC,-1,myThid) CALL WRITE_FLD_XY_RS( 'DYC',' ',dyC,-1,myThid) + CALL WRITE_FLD_XY_RS( 'DXF',' ',dxF,-1,myThid) + CALL WRITE_FLD_XY_RS( 'DYF',' ',dyF,-1,myThid) + CALL WRITE_FLD_XY_RS( 'DXV',' ',dxV,-1,myThid) + CALL WRITE_FLD_XY_RS( 'DYU',' ',dyU,-1,myThid) IF ( usingCurvilinearGrid .OR. rotateGrid ) THEN CALL WRITE_FLD_XY_RS( 'AngleCS',' ',angleCosC,-1,myThid) CALL WRITE_FLD_XY_RS( 'AngleSN',' ',angleSinC,-1,myThid) diff --git a/model/src/write_pickup.F b/model/src/write_pickup.F index c77fff67db..582134d550 100644 --- a/model/src/write_pickup.F +++ b/model/src/write_pickup.F @@ -23,14 +23,12 @@ SUBROUTINE WRITE_PICKUP( #include "PARAMS.h" #include "RESTART.h" #include "DYNVARS.h" +#include "NH_VARS.h" #include "SURFACE.h" #include "FFIELDS.h" #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD.h" #endif -#ifdef ALLOW_NONHYDROSTATIC -# include "NH_VARS.h" -#endif #ifdef ALLOW_MNC # include "MNC_PARAMS.h" #endif @@ -133,6 +131,7 @@ SUBROUTINE WRITE_PICKUP( IF (j.LE.listDim) wrFldList(j) = 'Salt ' C--- write 3-D fields for AB-restart #ifdef ALLOW_ADAMSBASHFORTH_3 + m1 = 1 + MOD(myIter+1,2) m2 = 1 + MOD( myIter ,2) IF ( momStepping ) THEN @@ -222,7 +221,26 @@ SUBROUTINE WRITE_PICKUP( ENDIF ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS +C-- Quasi-Hydrostatic Adams-Bashforth variables: + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN + IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN + j = j + 1 + CALL WRITE_REC_3D_RL( fn,fp, Nr, QHydGwNm(1-OLx,1-OLy,1,1,1,m1), + & -j, myIter, myThid ) + IF (j.LE.listDim) wrFldList(j) = 'QH_GwNm1' + ENDIF + IF ( beta_AB.NE.0. ) THEN + j = j + 1 + CALL WRITE_REC_3D_RL( fn,fp, Nr, QHydGwNm(1-OLx,1-OLy,1,1,1,m2), + & -j, myIter, myThid ) + IF (j.LE.listDim) wrFldList(j) = 'QH_GwNm2' + ENDIF + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + #else /* ALLOW_ADAMSBASHFORTH_3 */ + IF ( momStepping ) THEN j = j + 1 CALL WRITE_REC_3D_RL( fn, fp, Nr, guNm1, -j, myIter, myThid ) @@ -254,6 +272,15 @@ SUBROUTINE WRITE_PICKUP( IF (j.LE.listDim) wrFldList(j) = 'GwNm1 ' ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_QHYD_STAGGER_TS +C-- Quasi-Hydrostatic Adams-Bashforth variables: + IF ( quasiHydrostatic .AND. staggerTimeStep ) THEN + j = j + 1 + CALL WRITE_REC_3D_RL( fn,fp, Nr, QHydGwNm, -j, myIter, myThid ) + IF (j.LE.listDim) wrFldList(j) = 'QH_GwNm1' + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + #endif /* ALLOW_ADAMSBASHFORTH_3 */ C- write Full Pressure for EOS in pressure: @@ -269,6 +296,17 @@ SUBROUTINE WRITE_PICKUP( IF (j.LE.listDim) wrFldList(j) = 'Phi_NHyd' ENDIF #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +C- With synchronous time-stepping, Smag-3D diffusivity is lagging by 1 time-step +C (i.e., used before being updated meaning field is from previous time-step calc) +C --> needs to be stored in pickup file + IF ( smag3D_diffCoeff.GT.zeroRL .AND. .NOT.staggerTimeStep ) THEN + j = j + 1 + CALL WRITE_REC_3D_RL( fn, fp, Nr, smag3D_diffK, + & -j, myIter, myThid ) + IF (j.LE.listDim) wrFldList(j) = 'SmagDiff' + ENDIF +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ #ifdef ALLOW_ADDFLUID C- write mass source/sink of fluid (but not needed if selectAddFluid=-1) IF ( selectAddFluid.NE.0 ) THEN @@ -293,6 +331,12 @@ SUBROUTINE WRITE_PICKUP( nj = -( n3D*(Nr-1) + j ) CALL WRITE_REC_3D_RL( fn, fp, 1 , etaN, nj, myIter, myThid ) IF (j.LE.listDim) wrFldList(j) = 'EtaN ' + IF ( usingPCoords .AND. useSEAICE ) THEN + j = j + 1 + nj = -( n3D*(Nr-1) + j ) + CALL WRITE_REC_3D_RL( fn, fp, 1, phiHydLow, nj,myIter,myThid ) + IF (j.LE.listDim) wrFldList(j) = 'Phi_rLow' + ENDIF #ifdef ALLOW_NONHYDROSTATIC IF ( selectNHfreeSurf.GE.1 ) THEN j = j + 1 diff --git a/optim/Makefile b/optim/Makefile index be907d9aac..26b46232d9 100644 --- a/optim/Makefile +++ b/optim/Makefile @@ -4,7 +4,7 @@ # # started: Patrick Heimbach heimbach@mit.edu 19-Jun-2000 # -# changed: +# changed: # #*********************************************************************** @@ -28,13 +28,13 @@ CPP = cat $< | /lib/cpp -P -traditional # CPP = cat $< | /usr/ccs/lib/cpp INCLUDEDIRS = -I. \ - -I../verification/natl_box_adjoint/build/ + -I../verification/tutorial_global_oce_optim/build/ LIBDIRS = -L. \ -L../lsopt/ LIBS = -llsopt_ecco \ - -lblas1 + -lblas # OPTMODE is either equal to OFFLINE or ONLINE OPTMODE = OFFLINE @@ -52,6 +52,7 @@ CPPFLAGS = -DREAL_BYTE=4 \ # FORTRAN compiler and its flags. # default is (Linux) FC = f77 +FFLAGS = -fconvert=big-endian -fimplicit-none # ifort compilers #FC = ifort diff --git a/optim/README b/optim/README.md similarity index 53% rename from optim/README rename to optim/README.md index d7b66b2de5..50384d94d0 100644 --- a/optim/README +++ b/optim/README.md @@ -1,9 +1,60 @@ +This directory contains code to compile the optimization routine +`optim.x`. +Note, that there is an alternative optimization package [optim_m1qn3]( +https://github.com/mjlosch/optim_m1qn3) that is based on the latest +(and last) version of +[m1qn3](https://who.rocq.inria.fr/Jean-Charles.Gilbert/modulopt/optimization-routines/m1qn3/m1qn3.html). + +`optim.x` requires the library `lsopt_ecco` and the BLAS library +`blas`. The build procedure is a two step process (first build +`lsopt_ecco` and then `optim.x` ) and by no means foolproof. It +requires that you modify the sample Makefile in this directory and in +`../lsopt`: + +1. both here and in `../lsopt` adjust the compiler and compiler flags + in the Makefiles. Using the same compiler and flags as for building + the "mitgcmuv_ad" executable is probably the best guess. The + default works for a standard Ubuntu system, but not e.g. for a Mac. + +2. add the path to the build directory where you have built your + mitgcmuv_ad. This is necessary for the Makefile to pull the size of + the control vector and other things. + +3. compile like this: +``` +cd ../lsopt +make +cd ../optim +make +``` + +The default setting in `lsopt/Makefile` and `optim/Makefile` can be +used on an Ubuntu system (last tested on Ubuntu 20.04.3 LTS with gcc +9.3.0) to compile `lsopt` and `optim` after running the +`tutorial_global_oce_optim` like this: + +``` +cd MITgcm/verification +./testreport -t tutorial_global_oce_optim -adm -ncad -devel +cd ../lsopt +make +cd ../optim +make +``` +because `INCLUDEDIRS` points to `../verification/tutorial_global_oce_optim/build/`. + +This is the content of the old README. It describes some sort of +interface, i.e. the header of the control and gradient vectors written +and read by the `mitgcmuv_ad` (and "optim.x"), see `optim_readdata.F` +and `optim_writedata.F`. More details can be found in the [online +manual](https://mitgcm.org/documentation) (Chapter 10). +``` c expid - experiment name c optimcycle - optimization no. c missing value - missing value identifier (usually -9999.) c ig - global start index x (zonal) -c jg - global start index y (medid.) +c jg - global start index y (merid.) c nsx - no. of x-subgrids c nsy - no. of y-subgrids @@ -26,7 +77,7 @@ c * 102: initial sali. c * 103: heat flux c * 104: freshwater flux c * 105: u stress (zonal) -c * 106: v stress (meri.) +c * 106: v stress (merid.) integer ncvarindex ( maxcvars ) c ncvarrecs - no. of records in control vector @@ -48,7 +99,7 @@ c ncvarxmax - no. of x-points in subgrid (zonal) c = snx integer ncvarxmax ( maxcvars ) -c ncvarymax - no. of y-points in subgrid (meri.) +c ncvarymax - no. of y-points in subgrid (merid.) c = sny integer ncvarymax ( maxcvars ) @@ -68,3 +119,5 @@ c * = 'c' : (center,center) c * = 's' : (center,south) c * = 'w' : (west,center) character*(1) ncvargrd(maxcvars) + +``` diff --git a/pkg/admtlm/admtlm_bypassad.F b/pkg/admtlm/admtlm_bypassad.F index 6389d0c5c3..e36384cfe5 100644 --- a/pkg/admtlm/admtlm_bypassad.F +++ b/pkg/admtlm/admtlm_bypassad.F @@ -41,6 +41,9 @@ subroutine admtlm_bypassad( myThid ) double precision fac character*(80) fnamegeneric + _RL tmpfld2d (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) + _RL tmpfld3d (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + C ============================================== C declare external procedures and functions C ============================================== diff --git a/pkg/admtlm/admtlm_driver.F b/pkg/admtlm/admtlm_driver.F index 6ef17abd3d..48fc5678b5 100644 --- a/pkg/admtlm/admtlm_driver.F +++ b/pkg/admtlm/admtlm_driver.F @@ -24,7 +24,9 @@ SUBROUTINE ADMTLM_DRIVER( myThid ) #include "DYNVARS.h" #ifdef ALLOW_ADMTLM -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "ctrl.h" # include "optim.h" #endif diff --git a/pkg/admtlm/admtlm_dsvd.F b/pkg/admtlm/admtlm_dsvd.F index 913a35f77e..dcf4100c60 100644 --- a/pkg/admtlm/admtlm_dsvd.F +++ b/pkg/admtlm/admtlm_dsvd.F @@ -140,7 +140,9 @@ subroutine admtlm_dsvd ( mythid ) #include "EEPARAMS.h" #include "PARAMS.h" #ifdef ALLOW_ADMTLM -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "ctrl.h" # include "optim.h" # include "cost.h" diff --git a/pkg/admtlm/admtlm_dsvd2model.F b/pkg/admtlm/admtlm_dsvd2model.F index c18c1789ca..6d33db3557 100644 --- a/pkg/admtlm/admtlm_dsvd2model.F +++ b/pkg/admtlm/admtlm_dsvd2model.F @@ -7,33 +7,13 @@ subroutine admtlm_dsvd2model( & first, postprocev, mythid ) c ================================================================== -c SUBROUTINE ctrl_unpack +c SUBROUTINE admtlm_dsvd2model c ================================================================== c -c o Unpack the control vector such that the land points are filled -c in. -c -c started: Christian Eckert eckert@mit.edu 10-Mar-2000 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - Transferred some filename declarations -c from here to namelist in ctrl_init -c -c Patrick Heimbach heimbach@mit.edu 16-Jun-2000 -c - single file name convention with or without -c ALLOW_ECCO_OPTIMIZATION -C -c Armin Koehl akoehl@ucsd.edu 05-Dec-2000 -c - single processor reads global parameter file -c and writes multiple xx* and adxx* files -c -c G Gebbie gebbie@mit.edu 18-Mar-2003 -c - open boundary packing -c -c heimbach@mit.edu totally restructured 28-Oct-2003 +c o Unpack the control vector such that the land points are filled in. c c ================================================================== -c SUBROUTINE ctrl_unpack +c SUBROUTINE admtlm_dsvd2model c ================================================================== implicit none @@ -104,10 +84,6 @@ subroutine admtlm_dsvd2model( c == end of interface == -#ifndef ALLOW_ECCO_OPTIMIZATION - fmin = 0. _d 0 -#endif - c-- Initialise nbuffGlobal = 0 diff --git a/pkg/admtlm/admtlm_model2dsvd.F b/pkg/admtlm/admtlm_model2dsvd.F index 6ff38c35fb..5a1362b5ac 100644 --- a/pkg/admtlm/admtlm_model2dsvd.F +++ b/pkg/admtlm/admtlm_model2dsvd.F @@ -7,29 +7,14 @@ subroutine admtlm_model2dsvd( & first, preprocev, mythid ) c ================================================================== -c SUBROUTINE ctrl_pack +c SUBROUTINE admtlm_model2dsvd c ================================================================== c c o Compress the control vector such that only ocean points are c written to file. c -c started: Christian Eckert eckert@mit.edu 10-Mar=2000 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - Transferred some filename declarations -c from here to namelist in ctrl_init -c -c Patrick Heimbach heimbach@mit.edu 16-Jun-2000 -c - single file name convention with or without -c ALLOW_ECCO_OPTIMIZATION -c -c G. Gebbie, added open boundary control packing, -c gebbie@mit.edu 18 -Mar- 2003 -c -c heimbach@mit.edu totally restructured 28-Oct-2003 -c c ================================================================== -c SUBROUTINE ctrl_pack +c SUBROUTINE admtlm_model2dsvd c ================================================================== implicit none @@ -62,8 +47,6 @@ subroutine admtlm_model2dsvd( #ifndef EXCLUDE_CTRL_PACK c == local variables == - _RL fcloc - integer i, j, k integer ii integer il @@ -90,10 +73,6 @@ subroutine admtlm_model2dsvd( c == end of interface == -#ifndef ALLOW_ECCO_OPTIMIZATION - fmin = 0. _d 0 -#endif - c-- Tiled files are used. doglobalread = .false. @@ -155,7 +134,6 @@ subroutine admtlm_model2dsvd( c >>> Initialise control vector for optimcycle=0 <<< lxxadxx = .TRUE. ictrlgrad = 1 - fcloc = fmin write(cfile(1:128),'(4a,i4.4)') & ctrlname(1:9),'_',yctrlid(1:10), & yctrlpospack, optimcycle @@ -164,7 +142,6 @@ subroutine admtlm_model2dsvd( c >>> Write gradient vector <<< lxxadxx = .FALSE. ictrlgrad = 2 - fcloc = fc write(cfile(1:128),'(4a,i4.4)') & costname(1:9),'_',yctrlid(1:10), & yctrlpospack, optimcycle diff --git a/pkg/aim_v23/aim_do_physics.F b/pkg/aim_v23/aim_do_physics.F index 165ace9f64..fbd6817c13 100644 --- a/pkg/aim_v23/aim_do_physics.F +++ b/pkg/aim_v23/aim_do_physics.F @@ -101,16 +101,6 @@ SUBROUTINE AIM_DO_PHYSICS( myTime, myIter, myThid ) ENDDO ENDDO -#ifdef OLD_THSICE_CALL_SEQUENCE -#ifdef ALLOW_THSICE - IF ( useThSIce ) THEN -C- do sea-ice advection before setting any surface BC. - CALL THSICE_DO_ADVECT( - I bi, bj, myTime, myIter, myThid ) - ENDIF -#endif /* ALLOW_THSICE */ -#endif /* OLD_THSICE_CALL_SEQUENCE */ - C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C- Physics package needs to know time of year as a fraction @@ -196,15 +186,11 @@ SUBROUTINE AIM_DO_PHYSICS( myTime, myIter, myThid ) #ifdef ALLOW_THSICE IF ( useThSIce ) THEN - -#ifndef OLD_THSICE_CALL_SEQUENCE C-- Exchange fields that are advected by seaice dynamics CALL THSICE_DO_EXCH( myThid ) C- do sea-ice advection after sea-ice thermodynamics CALL THSICE_DO_ADVECT( I 0, 0, myTime, myIter, myThid ) -#endif /* ndef OLD_THSICE_CALL_SEQUENCE */ - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) C- Slab Ocean : step forward ocean mixed-layer temp. & salinity @@ -214,22 +200,12 @@ SUBROUTINE AIM_DO_PHYSICS( myTime, myIter, myThid ) I bi, bj, myTime, myIter, myThid ) ENDDO ENDDO - ENDIF #endif /* ALLOW_THSICE */ C-- do exchanges for AIM related quantities: _EXCH_XY_RL( aim_drag, myThid ) -#ifdef OLD_THSICE_CALL_SEQUENCE -#ifdef ALLOW_THSICE - IF (useThSIce) THEN -C-- Exchange fields that are advected by seaice dynamics - CALL THSICE_DO_EXCH( myThid ) - ENDIF -#endif -#endif /* OLD_THSICE_CALL_SEQUENCE */ - #ifdef COMPONENT_MODULE IF ( useCoupler ) THEN CALL ATM_STORE_MY_DATA( myTime, myIter, myThid ) diff --git a/pkg/atm2d/ATM2D_OPTIONS.h b/pkg/atm2d/ATM2D_OPTIONS.h index c0719ca182..89f194f25b 100644 --- a/pkg/atm2d/ATM2D_OPTIONS.h +++ b/pkg/atm2d/ATM2D_OPTIONS.h @@ -6,18 +6,29 @@ #ifdef ALLOW_ATM2D C Package-specific Options & Macros go here -C- allow single grid-point debugging write to standard-output -#define ALLOW_DBUG_ATM2D - C turn on MPI or not #undef ATM2D_MPI_ON +C- allow single grid-point debugging write to standard-output +#define ALLOW_DBUG_ATM2D + #define JBUGI 89 #define JBUGJ 43 +C- undocumented options: +#undef CLM +#undef CLM35 +#undef CPL_CHEM +#undef CPL_NEM +#undef CPL_OCEANCO2 +#undef CPL_TEM +#undef DATA4TEM +#undef IPCC_EMI +#undef ML_2D +#undef NCEPWIND +#undef OCEAN_3D +#undef ORBITAL_FOR +#undef PREDICTED_AEROSOL + #endif /* ALLOW_ATM2D */ #endif /* ATM2D_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/atm2d/ATM2D_VARS.h b/pkg/atm2d/ATM2D_VARS.h index 13b565993f..0f242c894c 100644 --- a/pkg/atm2d/ATM2D_VARS.h +++ b/pkg/atm2d/ATM2D_VARS.h @@ -204,7 +204,7 @@ C These are the fluxes actually passed to the ocean model (w/some unit/sign _RL pass_slp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! slp anomaly -> ocean (pascals) _RL pass_pCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! atmos pCO2 -> ocean (parts by volume, i.e. ppmv*1e-6) _RL pass_sIceLoad(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! seaice mass loading -> ocean - _RL sFluxFromIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! upward salt flux->ocean (psu.kg/m^2/s) + _RL sFluxFromIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) ! upward salt flux->ocean (g/m^2/s) COMMON/ICE_FLUXES_PASS/ netSW, sFlx, dTsurf, pass_prcAtm, snowPrc @@ -278,4 +278,3 @@ C Variables passed from ocean model _RL sssFromOcn(1:sNx,1:sNy) _RL oFluxCO2(1:sNx,1:sNy) ! flux of CO2 from ocean DIC etc. package (mol/m2/s) _RL mlDepth(1:sNx,1:sNy) ! at present, simply the depth of top ocean grid cell (m) - diff --git a/pkg/atm2d/OCNVARS.h b/pkg/atm2d/OCNVARS.h index bdb7cc88e7..f27b42c51b 100644 --- a/pkg/atm2d/OCNVARS.h +++ b/pkg/atm2d/OCNVARS.h @@ -8,7 +8,7 @@ C landMask_ocn :: Atmosphere land mask (=1 : full land grid-point; C =0 : full ocean grid-point); C OcMxlD_ocn ::- Ocean mixed-layer depths on ocean grid (m) C SST_ocn :: Sea surface temperature on ocean grid ( oC). -C SSS_ocn :: Sea surface temperature on ocean grid (psu). +C SSS_ocn :: Sea surface salinity on ocean grid (g/kg). C vSq_ocn :: Sea surface velocity square on ocean grid (m2/s2) C fluxCO2_ocn :: flux of CO2 from ocn->Atm on ocean grid (mol/m2/s) C atmSLPr_ocn :: Sea Level atmos. pressure on ocean grid (Pa) diff --git a/pkg/atm_compon_interf/ATMCPL.h b/pkg/atm_compon_interf/ATMCPL.h index edf9a0184a..6366609c84 100644 --- a/pkg/atm_compon_interf/ATMCPL.h +++ b/pkg/atm_compon_interf/ATMCPL.h @@ -135,7 +135,7 @@ C-- fields sent from OCN to ATM: C- COMMON /ATM_CPL2ATM_R/ C ocMxlD :: Ocean mixed-layer depth (m). ocMxlD==0. => land. C SSTocn :: Ocean surface temperature (oC). Undefined data for land points. -C SSSocn :: Ocean surface salinity (psu). Undefined data for land points. +C SSSocn :: Ocean surface salinity (g/kg). Undefined data for land points. C vSqocn :: Ocean surface velocity square (m2/s2). COMMON /ATM_CPL2ATM_R/ & ocMxlD, SSTocn, SSSocn, vSqocn diff --git a/pkg/atm_compon_interf/atm_apply_import.F b/pkg/atm_compon_interf/atm_apply_import.F index 07a27e7bef..5c978b753b 100644 --- a/pkg/atm_compon_interf/atm_apply_import.F +++ b/pkg/atm_compon_interf/atm_apply_import.F @@ -132,7 +132,9 @@ SUBROUTINE ATM_APPLY_IMPORT( IF ( useImportSST ) THEN DO j=1,sNy DO i=1,sNx + IF ( ocMxlD(i,j,bi,bj) .GT. 0. ) THEN atmSST(i,j) = SSTocn(i,j,bi,bj)+celsius2K + ENDIF ENDDO ENDDO ENDIF diff --git a/pkg/atm_compon_interf/atm_get_atmconfig.F b/pkg/atm_compon_interf/atm_get_atmconfig.F index 199732deef..32a8ec3eb2 100644 --- a/pkg/atm_compon_interf/atm_get_atmconfig.F +++ b/pkg/atm_compon_interf/atm_get_atmconfig.F @@ -55,6 +55,17 @@ SUBROUTINE ATM_GET_ATMCONFIG( ENDDO ENDDO + IF ( useAtm_Phys ) THEN +C- Since pkg/atm_phys does not currently handle land (but only swamp), +C set landMask to an intermediate value (here half) to (by)pass the check +C in ATM_CHECK_CPLCONFIG : + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + landMask(i,j,bi,bj) = 0.5 _d 0 + ENDDO + ENDDO + ENDIF + #ifdef ALLOW_AIM IF ( useAIM ) THEN DO j=1-OLy,sNy+OLy diff --git a/pkg/atm_ocn_coupler/ATMVARS.h b/pkg/atm_ocn_coupler/ATMVARS.h index 58180ea1c9..cd4a705046 100644 --- a/pkg/atm_ocn_coupler/ATMVARS.h +++ b/pkg/atm_ocn_coupler/ATMVARS.h @@ -10,7 +10,7 @@ C =0 : full ocean grid-point); C-- fields send to ATM: C OcMxlD_atm :: Ocean mixed-layer depths on atmos. grid (m) C SST_atm :: Sea surface temperature on atmos. grid ( oC). -C SSS_atm :: Sea surface temperature on atmos. grid (psu). +C SSS_atm :: Sea surface salinity on atmos. grid (g/kg). C vSq_atm :: Sea surface velocity square on atmos. grid (m2/s2) C- optionally sent: C fluxCO2_atm :: flux of CO2 from ocn->Atm on atmos. grid (mol/m2/s) diff --git a/pkg/atm_ocn_coupler/OCNVARS.h b/pkg/atm_ocn_coupler/OCNVARS.h index 95795e788f..c4a8a51b77 100644 --- a/pkg/atm_ocn_coupler/OCNVARS.h +++ b/pkg/atm_ocn_coupler/OCNVARS.h @@ -10,7 +10,7 @@ C =0 : full ocean grid-point); C-- fields received from OCN: C OcMxlD_ocn ::- Ocean mixed-layer depths on ocean grid (m) C SST_ocn :: Sea surface temperature on ocean grid ( oC). -C SSS_ocn :: Sea surface temperature on ocean grid (psu). +C SSS_ocn :: Sea surface salinity on ocean grid (g/kg). C vSq_ocn :: Sea surface velocity square on ocean grid (m2/s2) C- optionally received: C fluxCO2_ocn :: flux of CO2 from ocn->Atm on ocean grid (mol/m2/s) diff --git a/pkg/autodiff/AUTODIFF.h b/pkg/autodiff/AUTODIFF.h index 2e3c201d8e..0bdd8fa96a 100644 --- a/pkg/autodiff/AUTODIFF.h +++ b/pkg/autodiff/AUTODIFF.h @@ -5,7 +5,7 @@ INTEGER tapeFileUnit, tapeFileUnitS(4) COMMON /AUTODIFF_WHTAPEIO_L/ & tapeConcatIO, tapeSingleCpuIO, tapeBufferIO - logical tapeConcatIO, tapeSingleCpuIO, tapeBufferIO + LOGICAL tapeConcatIO, tapeSingleCpuIO, tapeBufferIO #endif c ad dump record number (used only if dumpAdByRec is true) @@ -16,56 +16,3 @@ c ad dump record number (used only if dumpAdByRec is true) COMMON /AUTODIFF_DUMP_AD_REC/ & dumpAdRecMn, dumpAdRecDy, dumpAdRecSi, & dumpAdRecEt - - INTEGER ilev_1 - INTEGER ilev_2 - INTEGER ilev_3 - INTEGER ilev_4 - INTEGER max_lev2 - INTEGER max_lev3 - INTEGER max_lev4 - INTEGER NDV3D, NDV2D, NEXF1, NEXF2, NCTRL1, NOB, NSI -#ifdef ALLOW_ADAMSBASHFORTH_3 - PARAMETER (NDV3D = 14) -#else - PARAMETER (NDV3D = 10) -#endif - PARAMETER (NDV2D = 22) - PARAMETER (NEXF1 = 23) - PARAMETER (NEXF2 = 24) - PARAMETER (NCTRL1 = 20) - PARAMETER (NOB = 20) - PARAMETER (NSI = 19) - _RL StoreDynVars3D - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,NDV3D) - _RL StoreDynVars2D - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NDV2D) - _RL StoreEXF1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NEXF1) - _RL StoreEXF2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NEXF2) - _RL StoreCTRLS1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NCTRL1) - _RL StoreOBCSN(1-OLx:sNx+OLx,Nr,nSx,nSy,NOB) - _RL StoreOBCSS(1-OLx:sNx+OLx,Nr,nSx,nSy,NOB) - _RL StoreOBCSE(1-OLy:sNy+OLy,Nr,nSx,nSy,NOB) - _RL StoreOBCSW(1-OLy:sNy+OLy,Nr,nSx,nSy,NOB) - _RL StoreSEAICE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NSI) - - COMMON /AUTODIFF_STORE_DYN/ - & StoreDynVars3D, - & StoreDynVars2D - COMMON /AUTODIFF_STORE_EXF_FLUX/ - & StoreEXF1 - COMMON /AUTODIFF_STORE_EXF_ATMOS/ - & StoreEXF2 - COMMON /AUTODIFF_STORE_CTRL/ - & StoreCTRLS1 - COMMON /AUTODIFF_STORE_OBCSN/ - & StoreOBCSN - COMMON /AUTODIFF_STORE_OBCSS/ - & StoreOBCSS - COMMON /AUTODIFF_STORE_OBCSE/ - & StoreOBCSE - COMMON /AUTODIFF_STORE_OBCSW/ - & StoreOBCSW - COMMON /AUTODIFF_STORE_SEAICE/ - & StoreSEAICE - diff --git a/pkg/autodiff/AUTODIFF_OPTIONS.h b/pkg/autodiff/AUTODIFF_OPTIONS.h index 930669eed5..a6057dbe44 100644 --- a/pkg/autodiff/AUTODIFF_OPTIONS.h +++ b/pkg/autodiff/AUTODIFF_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: AUTODIFF_OPTIONS.h C !INTERFACE: @@ -10,11 +15,6 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef AUTODIFF_OPTIONS_H -#define AUTODIFF_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_AUTODIFF #ifdef ECCO_CPPOPTIONS_H @@ -26,34 +26,61 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). +C o Include/exclude code in order to automatically differentiate MITgcm code +C using TAF (Transformation of Algorithms in Fortran, http://www.FastOpt.de) +C or using TAMC (Tangent Linear & Adjoint Model Compiler, needs both defined): #define ALLOW_AUTODIFF_TAMC +#undef AUTODIFF_TAMC_COMPATIBILITY C >>> Checkpointing as handled by TAMC #define ALLOW_TAMC_CHECKPOINTING C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#define ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level -c#undef AUTODIFF_2_LEVEL_CHECKPOINT +#undef AUTODIFF_2_LEVEL_CHECKPOINT C extend to 4-level checkpointing -c#undef AUTODIFF_4_LEVEL_CHECKPOINT +#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO -#undef AUTODIFF_USE_MDSFINDUNITS -#undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO +C and related to above: +#undef ALLOW_INIT_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o To remove part of MOM_CALC_VISC (better name would be: MOM_DISABLE_*) +#undef AUTODIFF_DISABLE_LEITH +#undef AUTODIFF_DISABLE_REYNOLDS_SCALE -C o write separate tape files for each ptracer -#undef AUTODIFF_PTRACERS_SPLIT_FILES +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/pkg/autodiff/AUTODIFF_PARAMS.h b/pkg/autodiff/AUTODIFF_PARAMS.h index 2d46ad8f95..58a3b40415 100644 --- a/pkg/autodiff/AUTODIFF_PARAMS.h +++ b/pkg/autodiff/AUTODIFF_PARAMS.h @@ -11,15 +11,22 @@ C here. Notes describing the parameters can also be found here. CEOP C-- COMMON /AUTODIFF_PARM_L/ Logical valued parameters used by the pkg. -C inAdMode :: enable approximate computation in backward sweep -C inAdTrue :: value of inAdMode flag during backward sweep -C inAdFalse :: value of inAdMode flag during forward sweep -C inAdExact :: get an exact adjoint (no approximation) - LOGICAL inAdMode, inAdTrue, inAdFalse, inAdExact +C inAdMode :: F:= in forward simulation, T:= in backward sweep, +C set/unset in autodiff_inadmode_set/unset_ad.F +C inAdExact :: get an exact adjoint (no approximation), default = .TRUE. +C if .FALSE. it implies useApproxAdvectionInAdMode = .TRUE. +C useApproxAdvectionInAdMode :: use different (but stable) advection in AD; +C only implemented for flux limited DST3 (33); default=.FALSE. + LOGICAL inAdMode, inAdExact + LOGICAL useApproxAdvectionInAdMode C- Logical flags for turning off parts of the code in adjoint mode -C SEAICEuseFREEDRIFTswitchInAd :: switch on/off Free-Drift in adjoint mode (def=F) -C SEAICEuseDYNAMICSswitchInAd :: switch on/off seaice Dyn in adjoint mode (def=F) +C SEAICEuseFREEDRIFTswitchInAd :: switch on/off Free-Drift +C in adjoint mode (def=F) +C SEAICEuseDYNAMICSswitchInAd :: switch on/off seaice Dyn +C in adjoint mode (def=F) +C cg2dFullAdjoint :: use the full hand written adjoint of cg2d instead of +C the approximate lineared form (def=F) LOGICAL useKPPinAdMode, useKPPinFwdMode LOGICAL useGMRediInAdMode, useGMRediInFwdMode LOGICAL useSEAICEinAdMode, useSEAICEinFwdMode @@ -27,14 +34,15 @@ C SEAICEuseDYNAMICSswitchInAd :: switch on/off seaice Dyn in adjoint mode ( LOGICAL useSALT_PLUMEinAdMode, useSALT_PLUMEInFwdMode LOGICAL SEAICEuseFREEDRIFTswitchInAd, SEAICEuseFREEDRIFTinFwdMode LOGICAL SEAICEuseDYNAMICSswitchInAd, SEAICEuseDYNAMICSinFwdMode - LOGICAL useSmoothCorrel2DinAdMode, useSmoothCorrel2DinFwdMode + LOGICAL cg2dFullAdjoint C- Logical for ad dump format (if true then write all records C to one file per variable; else write one file per record) LOGICAL dumpAdByRec COMMON /AUTODIFF_PARM_L/ - & inAdMode, inAdTrue, inAdFalse, inAdExact, + & inAdMode, inAdExact, + & useApproxAdvectionInAdMode, & useKPPinAdMode, useKPPinFwdMode, & useGMRediInAdMode, useGMRediInFwdMode, & useSEAICEinAdMode, useSEAICEinFwdMode, @@ -42,7 +50,7 @@ C to one file per variable; else write one file per record) & useSALT_PLUMEinAdMode, useSALT_PLUMEInFwdMode, & SEAICEuseFREEDRIFTswitchInAd, SEAICEuseFREEDRIFTinFwdMode, & SEAICEuseDYNAMICSswitchInAd, SEAICEuseDYNAMICSinFwdMode, - & useSmoothCorrel2DinAdMode, useSmoothCorrel2DinFwdMode, + & cg2dFullAdjoint, & dumpAdByRec C-- COMMON /AUTODIFF_PARM_I/ Integer valued parameters used by the pkg. @@ -62,13 +70,14 @@ C >= 1 (and useSEAICEinAdMode) : omit pieces of seaice thermo adjoint & dumpAdVarExch, mon_AdVarExch, SEAICEapproxLevInAd C-- COMMON /AUTODIFF_PARM_R/ "Real" valued parameters used by the pkg. -C viscFacInAd :: viscosity factor for adjoint +C viscFacInAd :: viscosity factor for adjoint +C viscFacInFw :: viscosity factor for forward model C SIregFacInAd :: Factor for over shoots in AD C SIregFacInFw :: Factor for over shoots in FW - _RL viscFacInAd + _RL viscFacInAd, viscFacInFw _RL SIregFacInAd, SIregFacInFw COMMON /AUTODIFF_PARM_R/ - & viscFacInAd, SIregFacInAd, SIregFacInFw + & viscFacInAd, viscFacInFw, SIregFacInAd, SIregFacInFw C-- COMMON /AUTODIFF_PARM_C/ Character valued parameters used by the pkg. diff --git a/pkg/autodiff/AUTODIFF_STORE.h b/pkg/autodiff/AUTODIFF_STORE.h new file mode 100644 index 0000000000..0d58c46064 --- /dev/null +++ b/pkg/autodiff/AUTODIFF_STORE.h @@ -0,0 +1,62 @@ +C--- Fields need in autodiff_store.F and autodiff_restore.F + +#ifdef AUTODIFF_USE_STORE_RESTORE + INTEGER NDV3D +# ifdef ALLOW_ADAMSBASHFORTH_3 + PARAMETER (NDV3D = 14) +# else + PARAMETER (NDV3D = 10) +# endif + _RL StoreDynVars3D + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,NDV3D) + COMMON /AUTODIFF_STORE_DYN3D/ StoreDynVars3D + + INTEGER NDV2D + PARAMETER (NDV2D = 22) + _RL StoreDynVars2D + & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NDV2D) + COMMON /AUTODIFF_STORE_DYN2D/ StoreDynVars2D + +# ifdef ALLOW_EXF + INTEGER NEXF1, NEXF2 + PARAMETER (NEXF1 = 23) + PARAMETER (NEXF2 = 24) + _RL StoreEXF1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NEXF1) + COMMON /AUTODIFF_STORE_EXF_FLUX/ + & StoreEXF1 + _RL StoreEXF2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NEXF2) + COMMON /AUTODIFF_STORE_EXF_ATMOS/ + & StoreEXF2 + + INTEGER NCTRL1 + PARAMETER (NCTRL1 = 20) + _RL StoreCTRLS1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NCTRL1) + COMMON /AUTODIFF_STORE_CTRL/ + & StoreCTRLS1 +# endif + +# ifdef ALLOW_SEAICE + INTEGER NSI + PARAMETER (NSI = 16+nITD) + _RL StoreSEAICE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,NSI) + COMMON /AUTODIFF_STORE_SEAICE/ + & StoreSEAICE +# endif +#endif /* AUTODIFF_USE_STORE_RESTORE */ + +#if ( defined ALLOW_OBCS && defined AUTODIFF_USE_STORE_RESTORE_OBCS ) + INTEGER NOB + PARAMETER (NOB = 20) + _RL StoreOBCSN(1-OLx:sNx+OLx,Nr,nSx,nSy,NOB) + COMMON /AUTODIFF_STORE_OBCSN/ + & StoreOBCSN + _RL StoreOBCSS(1-OLx:sNx+OLx,Nr,nSx,nSy,NOB) + COMMON /AUTODIFF_STORE_OBCSS/ + & StoreOBCSS + _RL StoreOBCSE(1-OLy:sNy+OLy,Nr,nSx,nSy,NOB) + COMMON /AUTODIFF_STORE_OBCSE/ + & StoreOBCSE + _RL StoreOBCSW(1-OLy:sNy+OLy,Nr,nSx,nSy,NOB) + COMMON /AUTODIFF_STORE_OBCSW/ + & StoreOBCSW +#endif diff --git a/pkg/autodiff/active_file_ad.F b/pkg/autodiff/active_file_ad.F index 04ecfb5138..c150e01f19 100644 --- a/pkg/autodiff/active_file_ad.F +++ b/pkg/autodiff/active_file_ad.F @@ -27,6 +27,9 @@ C - added active file handling of xz-/yz-arrays C changed: tsmith@oden.utexas.edu 22-Oct-2019 C - added 1D vectors +C changed: ou.wang@jpl.nasa.gov 24-Aug-2022 +C - added helper S/R capable of handling +C active_var_file containing directory names C ================================================================== C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -89,24 +92,18 @@ subroutine adactive_read_xy( INTEGER myIter, myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = 1 useCurrentDir = .FALSE. @@ -178,24 +175,18 @@ subroutine adactive_read_xyz( INTEGER myIter, myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -267,24 +258,18 @@ subroutine adactive_read_xz( INTEGER myIter, myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -356,24 +341,18 @@ subroutine adactive_read_yz( INTEGER myIter, myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -444,7 +423,8 @@ subroutine adactive_read_1d( INTEGER iRec INTEGER myIter, myThid LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !FUNCTIONS: INTEGER ILNBLNK @@ -452,14 +432,13 @@ subroutine adactive_read_1d( C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname + CHARACTER*(MAX_LEN_FNAM) fname INTEGER il CEOP adpref = 'ad' il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + WRITE(fname,'(2A)') adpref, active_var_file(1:il) CALL ACTIVE_READ_1D_RL( & fname, adactive_var, active_var_length, @@ -521,23 +500,16 @@ subroutine adactive_write_xy( INTEGER myIter, myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = 1 globalFile = .FALSE. useCurrentDir = .FALSE. @@ -602,23 +574,16 @@ subroutine adactive_write_xyz( INTEGER myIter, myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -683,23 +648,16 @@ subroutine adactive_write_xz( INTEGER myIter, myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -764,23 +722,16 @@ subroutine adactive_write_yz( INTEGER myIter, myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -855,14 +806,13 @@ subroutine adactive_write_1d( C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname + CHARACTER*(MAX_LEN_FNAM) fname INTEGER il CEOP adpref = 'ad' il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + WRITE(fname,'(2A)') adpref, active_var_file(1:il) CALL ACTIVE_WRITE_1D_RL( & fname, adactive_var, active_var_length, diff --git a/pkg/autodiff/active_file_control.F b/pkg/autodiff/active_file_control.F index f12e75cbfe..a60c5c2be3 100644 --- a/pkg/autodiff/active_file_control.F +++ b/pkg/autodiff/active_file_control.F @@ -84,18 +84,13 @@ SUBROUTINE ACTIVE_READ_3D_RL( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER i,j,k INTEGER jRec INTEGER prec - INTEGER il LOGICAL w_globFile _RS dummyRS(1) _RL active_data_t(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) @@ -105,11 +100,6 @@ SUBROUTINE ACTIVE_READ_3D_RL( prec = ctrlprec jRec = -ABS(iRec) - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname,'(A)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN @@ -136,6 +126,8 @@ SUBROUTINE ACTIVE_READ_3D_RL( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_FIELD( I adfname, prec, globalFile, useCurrentDir, I 'RL', Nr, 1, myNr, @@ -268,18 +260,13 @@ SUBROUTINE ACTIVE_READ_3D_RS( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER i,j,k INTEGER jRec INTEGER prec - INTEGER il LOGICAL w_globFile _RS active_data_t(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL dummyRL(1) @@ -289,11 +276,6 @@ SUBROUTINE ACTIVE_READ_3D_RS( prec = ctrlprec jRec = -ABS(iRec) - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname,'(A)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN @@ -320,6 +302,8 @@ SUBROUTINE ACTIVE_READ_3D_RS( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_FIELD( I adfname, prec, globalFile, useCurrentDir, I 'RS', Nr, 1, myNr, @@ -452,7 +436,7 @@ SUBROUTINE ACTIVE_READ_1D_RL( C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER i, bi, bj INTEGER jRec INTEGER prec @@ -472,10 +456,6 @@ SUBROUTINE ACTIVE_READ_1D_RL( C ioUnit = 0 => open, read, and close the file... see mdsio_readvec_loc ioUnit = 0 - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname,'(A)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN @@ -495,6 +475,10 @@ SUBROUTINE ACTIVE_READ_1D_RL( DO i = 1, active_var_length active_data_t(i) = 0. _d 0 ENDDO + + adpref = 'ad' + il = ILNBLNK( activeVar_file ) + WRITE(adfname,'(2A)') adpref, activeVar_file(1:il) IF ( myProcId.EQ.0 ) THEN CALL MDS_WRITEVEC_LOC( I adfname, prec, ioUnit, @@ -617,7 +601,7 @@ SUBROUTINE ACTIVE_READ_1D_RS( C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER i, bi, bj INTEGER jRec INTEGER prec @@ -637,10 +621,6 @@ SUBROUTINE ACTIVE_READ_1D_RS( C ioUnit = 0 => open, read, and close the file... see mdsio_readvec_loc ioUnit = 0 - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname,'(A)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN @@ -660,6 +640,10 @@ SUBROUTINE ACTIVE_READ_1D_RS( DO i = 1, active_var_length active_data_t(i) = 0. _d 0 ENDDO + + adpref = 'ad' + il = ILNBLNK( activeVar_file ) + WRITE(adfname,'(2A)') adpref, activeVar_file(1:il) IF ( myProcId.EQ.0 ) THEN CALL MDS_WRITEVEC_LOC( I adfname, prec, ioUnit, diff --git a/pkg/autodiff/active_file_control_slice.F b/pkg/autodiff/active_file_control_slice.F index 1c3725a458..3f0a9661db 100644 --- a/pkg/autodiff/active_file_control_slice.F +++ b/pkg/autodiff/active_file_control_slice.F @@ -82,17 +82,12 @@ SUBROUTINE ACTIVE_READ_XZ_RL( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER i,k INTEGER prec - INTEGER il LOGICAL w_globFile _RS dummyRS(1) _RL active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy) @@ -101,18 +96,13 @@ SUBROUTINE ACTIVE_READ_XZ_RL( C force 64-bit io prec = ctrlprec - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname(1:80),'(80a)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN C Read the active variable from file. CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_var, dummyRS, I iRec, myThid ) @@ -130,9 +120,11 @@ SUBROUTINE ACTIVE_READ_XZ_RL( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_SEC_XZ( I adfname, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -145,7 +137,7 @@ SUBROUTINE ACTIVE_READ_XZ_RL( CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_data_t, dummyRS, I iRec, myThid ) @@ -165,7 +157,7 @@ SUBROUTINE ACTIVE_READ_XZ_RL( w_globFile = .FALSE. CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, w_globFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -187,7 +179,7 @@ SUBROUTINE ACTIVE_READ_XZ_RL( C Read the active variable from file. CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_var, dummyRS, I iRec, myThid ) ENDIF @@ -258,17 +250,12 @@ SUBROUTINE ACTIVE_READ_XZ_RS( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER i,k INTEGER prec - INTEGER il LOGICAL w_globFile _RS active_data_t(1-OLx:sNx+OLx,myNr,nSx,nSy) _RL dummyRL(1) @@ -277,18 +264,13 @@ SUBROUTINE ACTIVE_READ_XZ_RS( C force 64-bit io prec = ctrlprec - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname(1:80),'(80a)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN C Read the active variable from file. CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_var, I iRec, myThid ) @@ -306,9 +288,11 @@ SUBROUTINE ACTIVE_READ_XZ_RS( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_SEC_XZ( I adfname, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -321,7 +305,7 @@ SUBROUTINE ACTIVE_READ_XZ_RS( CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_data_t, I iRec, myThid ) @@ -341,7 +325,7 @@ SUBROUTINE ACTIVE_READ_XZ_RS( w_globFile = .FALSE. CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, w_globFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -363,7 +347,7 @@ SUBROUTINE ACTIVE_READ_XZ_RS( C Read the active variable from file. CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_var, I iRec, myThid ) ENDIF @@ -433,17 +417,12 @@ SUBROUTINE ACTIVE_READ_YZ_RL( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER j,k INTEGER prec - INTEGER il LOGICAL w_globFile _RS dummyRS(1) _RL active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy) @@ -452,18 +431,13 @@ SUBROUTINE ACTIVE_READ_YZ_RL( C force 64-bit io prec = ctrlprec - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname(1:80),'(80a)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN C Read the active variable from file. CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_var, dummyRS, I iRec, myThid ) @@ -481,9 +455,11 @@ SUBROUTINE ACTIVE_READ_YZ_RL( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_SEC_YZ( I adfname, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -496,7 +472,7 @@ SUBROUTINE ACTIVE_READ_YZ_RL( CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_data_t, dummyRS, I iRec, myThid ) @@ -516,7 +492,7 @@ SUBROUTINE ACTIVE_READ_YZ_RL( w_globFile = .FALSE. CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, w_globFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -538,7 +514,7 @@ SUBROUTINE ACTIVE_READ_YZ_RL( C Read the active variable from file. CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_var, dummyRS, I iRec, myThid ) ENDIF @@ -609,17 +585,12 @@ SUBROUTINE ACTIVE_READ_YZ_RS( INTEGER myOptimIter INTEGER myThid -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) adfname + CHARACTER*(MAX_LEN_FNAM) adfname INTEGER bi,bj INTEGER j,k INTEGER prec - INTEGER il LOGICAL w_globFile _RS active_data_t(1-OLy:sNy+OLy,myNr,nSx,nSy) _RL dummyRL(1) @@ -628,18 +599,13 @@ SUBROUTINE ACTIVE_READ_YZ_RS( C force 64-bit io prec = ctrlprec - adpref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(adfname(1:80),'(80a)') ' ' - WRITE(adfname(1:il+2),'(2A)') adpref, activeVar_file(1:il) - C >>>>>>>>>>>>>>>>>>> FORWARD RUN <<<<<<<<<<<<<<<<<<< IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN C Read the active variable from file. CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_var, I iRec, myThid ) @@ -657,9 +623,11 @@ SUBROUTINE ACTIVE_READ_YZ_RS( ENDDO ENDDO + adpref = 'ad' + CALL ADD_PREFIX( adpref, activeVar_file, adfname ) CALL MDS_WRITE_SEC_YZ( I adfname, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -672,7 +640,7 @@ SUBROUTINE ACTIVE_READ_YZ_RS( CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_data_t, I iRec, myThid ) @@ -692,7 +660,7 @@ SUBROUTINE ACTIVE_READ_YZ_RS( w_globFile = .FALSE. CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, w_globFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -714,7 +682,7 @@ SUBROUTINE ACTIVE_READ_YZ_RS( C Read the active variable from file. CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_var, I iRec, myThid ) ENDIF @@ -793,7 +761,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RL( IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_var, dummyRS, I iRec, myOptimIter, myThid ) ENDIF @@ -803,7 +771,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RL( CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_data_t, dummyRS, I iRec, myThid ) @@ -821,7 +789,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RL( ENDDO CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -831,7 +799,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RL( IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_var, dummyRS, I iRec, myOptimIter, myThid ) ENDIF @@ -910,7 +878,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RS( IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_var, I iRec, myOptimIter, myThid ) ENDIF @@ -920,7 +888,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RS( CALL MDS_READ_SEC_XZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_data_t, I iRec, myThid ) @@ -938,7 +906,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RS( ENDDO CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -948,7 +916,7 @@ SUBROUTINE ACTIVE_WRITE_XZ_RS( IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN CALL MDS_WRITE_SEC_XZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_var, I iRec, myOptimIter, myThid ) ENDIF @@ -1027,7 +995,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RL( IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_var, dummyRS, I iRec, myOptimIter, myThid ) ENDIF @@ -1037,7 +1005,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RL( CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, O active_data_t, dummyRS, I iRec, myThid ) @@ -1055,7 +1023,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RL( ENDDO CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_data_t, dummyRS, I iRec, myOptimIter, myThid ) @@ -1065,7 +1033,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RL( IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RL', myNr, + I 'RL', myNr, 1, myNr, I active_var, dummyRS, I iRec, myOptimIter, myThid ) ENDIF @@ -1144,7 +1112,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RS( IF (theSimulationMode .EQ. FORWARD_SIMULATION) THEN CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_var, I iRec, myOptimIter, myThid ) ENDIF @@ -1154,7 +1122,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RS( CALL MDS_READ_SEC_YZ( I activeVar_file, prec, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, O dummyRL, active_data_t, I iRec, myThid ) @@ -1172,7 +1140,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RS( ENDDO CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_data_t, I iRec, myOptimIter, myThid ) @@ -1182,7 +1150,7 @@ SUBROUTINE ACTIVE_WRITE_YZ_RS( IF (theSimulationMode .EQ. TANGENT_SIMULATION) THEN CALL MDS_WRITE_SEC_YZ( I activeVar_file, prec, globalFile, useCurrentDir, - I 'RS', myNr, + I 'RS', myNr, 1, myNr, I dummyRL, active_var, I iRec, myOptimIter, myThid ) ENDIF diff --git a/pkg/autodiff/active_file_g.F b/pkg/autodiff/active_file_g.F index 0545acc244..a1e4def38d 100644 --- a/pkg/autodiff/active_file_g.F +++ b/pkg/autodiff/active_file_g.F @@ -82,22 +82,15 @@ subroutine g_active_read_xy( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = 1 useCurrentDir = .FALSE. @@ -170,22 +163,15 @@ subroutine g_active_read_xyz( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -258,22 +244,15 @@ subroutine g_active_read_xz( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -346,22 +325,15 @@ subroutine g_active_read_yz( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .FALSE. @@ -440,14 +412,13 @@ subroutine g_active_read_1d( C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname + CHARACTER*(MAX_LEN_FNAM) fname INTEGER il CEOP pref = 'g_' il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + WRITE(fname,'(2A)') pref, active_var_file(1:il) CALL ACTIVE_READ_1D_RL( & active_var_file, active_var, active_var_length, @@ -511,23 +482,16 @@ subroutine g_active_write_xy( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = 1 globalFile = .FALSE. useCurrentDir = .FALSE. @@ -594,23 +558,16 @@ subroutine g_active_write_xyz( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -677,23 +634,16 @@ subroutine g_active_write_xz( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -760,23 +710,16 @@ subroutine g_active_write_yz( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .FALSE. @@ -852,14 +795,13 @@ subroutine g_active_write_1d( C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname + CHARACTER*(MAX_LEN_FNAM) fname INTEGER il CEOP pref = 'g_' il = ILNBLNK( active_var_file ) - WRITE(fname,'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + WRITE(fname,'(2A)') pref, active_var_file(1:il) CALL ACTIVE_WRITE_1D_RL( & active_var_file, active_var, active_var_length, diff --git a/pkg/autodiff/active_file_gen_ad.F b/pkg/autodiff/active_file_gen_ad.F index 2d2a6c8cab..f8baf8fed5 100644 --- a/pkg/autodiff/active_file_gen_ad.F +++ b/pkg/autodiff/active_file_gen_ad.F @@ -88,20 +88,13 @@ SUBROUTINE adACTIVE_READ_GEN_RL( INTEGER myThid _RL dummy, addummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName CEOP pref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) IF ( arrShape.EQ.'XY' ) THEN @@ -205,20 +198,13 @@ SUBROUTINE adACTIVE_READ_GEN_RS( INTEGER myThid _RS dummy, addummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName CEOP pref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) IF ( arrShape.EQ.'XY' ) THEN @@ -312,22 +298,15 @@ SUBROUTINE adACTIVE_WRITE_GEN_RL( INTEGER myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: C globalFile :: used for writing global (if =T) or tiled files CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName LOGICAL globalFile CEOP pref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) globalFile = .FALSE. IF ( arrShape.EQ.'XY' ) THEN @@ -422,22 +401,15 @@ SUBROUTINE adACTIVE_WRITE_GEN_RS( INTEGER myThid _RS dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: C globalFile :: used for writing global (if =T) or tiled files CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName LOGICAL globalFile CEOP pref = 'ad' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) globalFile = .FALSE. IF ( arrShape.EQ.'XY' ) THEN diff --git a/pkg/autodiff/active_file_gen_g.F b/pkg/autodiff/active_file_gen_g.F index 3316a1091b..a08f3ccda7 100644 --- a/pkg/autodiff/active_file_gen_g.F +++ b/pkg/autodiff/active_file_gen_g.F @@ -75,20 +75,13 @@ SUBROUTINE g_ACTIVE_READ_GEN_RL( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName CEOP pref = 'g_' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) IF ( arrShape.EQ.'XY' ) THEN @@ -191,20 +184,13 @@ SUBROUTINE g_ACTIVE_READ_GEN_RS( INTEGER myThid _RS dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName CEOP pref = 'g_' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) IF ( arrShape.EQ.'XY' ) THEN @@ -300,22 +286,15 @@ SUBROUTINE g_ACTIVE_WRITE_GEN_RL( INTEGER myThid _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: C globalFile :: used for writing global (if =T) or tiled files CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName LOGICAL globalFile CEOP pref = 'g_' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) globalFile = .FALSE. IF ( arrShape.EQ.'XY' ) THEN @@ -412,22 +391,15 @@ SUBROUTINE g_ACTIVE_WRITE_GEN_RS( INTEGER myThid _RS dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: C globalFile :: used for writing global (if =T) or tiled files CHARACTER*(2) pref - CHARACTER*(80) fName - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fName LOGICAL globalFile CEOP pref = 'g_' - il = ILNBLNK( activeVar_file ) - WRITE(fName(1:80),'(A)') ' ' - WRITE(fName(1:2+il),'(2A)') pref, activeVar_file(1:il) + CALL ADD_PREFIX( pref, activeVar_file, fName ) globalFile = .FALSE. IF ( arrShape.EQ.'XY' ) THEN diff --git a/pkg/autodiff/active_file_loc_ad.F b/pkg/autodiff/active_file_loc_ad.F index 55ac9174c0..bf200d9e02 100644 --- a/pkg/autodiff/active_file_loc_ad.F +++ b/pkg/autodiff/active_file_loc_ad.F @@ -85,24 +85,18 @@ subroutine adactive_read_xy_loc( INTEGER myIter,myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = 1 useCurrentDir = .TRUE. @@ -174,24 +168,18 @@ subroutine adactive_read_xyz_loc( INTEGER myIter,myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -263,24 +251,18 @@ subroutine adactive_read_xz_loc( INTEGER myIter,myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -352,24 +334,18 @@ subroutine adactive_read_yz_loc( INTEGER myIter,myThid LOGICAL doglobalread LOGICAL lAdInit - _RL dummy, addummy ! Tags for IO: ctrl input and adjoint (gradient) output - -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, addummy C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -405,7 +381,6 @@ subroutine adactive_write_xy_loc( & ) #endif - C !DESCRIPTION: \bv C ================================================================== C SUBROUTINE adactive_write_xy_loc @@ -434,23 +409,16 @@ subroutine adactive_write_xy_loc( INTEGER myIter,myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = 1 globalFile = .FALSE. useCurrentDir = .TRUE. @@ -487,7 +455,6 @@ subroutine adactive_write_xyz_loc( & ) #endif - C !DESCRIPTION: \bv C ================================================================== C SUBROUTINE adactive_write_xyz_loc @@ -516,23 +483,16 @@ subroutine adactive_write_xyz_loc( INTEGER myIter,myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. @@ -597,23 +557,16 @@ subroutine adactive_write_xz_loc( INTEGER myIter,myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. @@ -650,7 +603,6 @@ subroutine adactive_write_yz_loc( & ) #endif - C !DESCRIPTION: \bv C ================================================================== C SUBROUTINE adactive_write_yz_loc @@ -679,23 +631,16 @@ subroutine adactive_write_yz_loc( INTEGER myIter,myThid _RL dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) adpref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP adpref = 'ad' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') adpref, active_var_file(1:il) + CALL ADD_PREFIX( adpref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. diff --git a/pkg/autodiff/active_file_loc_g.F b/pkg/autodiff/active_file_loc_g.F index 1cb6eaf216..d658a01ce5 100644 --- a/pkg/autodiff/active_file_loc_g.F +++ b/pkg/autodiff/active_file_loc_g.F @@ -75,22 +75,15 @@ subroutine g_active_read_xy_loc( LOGICAL lAdInit _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = 1 useCurrentDir = .TRUE. @@ -160,22 +153,15 @@ subroutine g_active_read_xyz_loc( LOGICAL lAdInit _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -245,22 +231,15 @@ subroutine g_active_read_xz_loc( LOGICAL lAdInit _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -330,22 +309,15 @@ subroutine g_active_read_yz_loc( LOGICAL lAdInit _RL dummy, g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr useCurrentDir = .TRUE. @@ -408,23 +380,16 @@ subroutine g_active_write_xy_loc( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = 1 globalFile = .FALSE. useCurrentDir = .TRUE. @@ -488,23 +453,16 @@ subroutine g_active_write_xyz_loc( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. @@ -568,23 +526,16 @@ subroutine g_active_write_xz_loc( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. @@ -648,23 +599,16 @@ subroutine g_active_write_yz_loc( _RL dummy _RL g_dummy -C !FUNCTIONS: - INTEGER ILNBLNK - EXTERNAL ILNBLNK - C !LOCAL VARIABLES: CHARACTER*(2) pref - CHARACTER*(80) fname - INTEGER il + CHARACTER*(MAX_LEN_FNAM) fname INTEGER myNr LOGICAL globalFile LOGICAL useCurrentDir CEOP pref = 'g_' - il = ILNBLNK( active_var_file ) - WRITE(fname(1:80),'(A)') ' ' - WRITE(fname(1:2+il),'(2A)') pref, active_var_file(1:il) + CALL ADD_PREFIX( pref, active_var_file, fname ) myNr = Nr globalFile = .FALSE. useCurrentDir = .TRUE. diff --git a/pkg/autodiff/adcommon.h b/pkg/autodiff/adcommon.h index 2290cb57d5..1ab8d61c58 100644 --- a/pkg/autodiff/adcommon.h +++ b/pkg/autodiff/adcommon.h @@ -7,212 +7,225 @@ C-- heimbach@mit.edu 11-Jan-2001 #ifdef ALLOW_AUTODIFF_MONITOR - common /addynvars_r/ - & adetan, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, + COMMON /adDYNVARS_R/ + & adEtaN, + & adUvel, adVvel, adWvel, + & adTheta, adSalt, + & adGu, adGv, #ifdef ALLOW_ADAMSBASHFORTH_3 - & adgunm, adgvnm, adgtnm, adgsnm + & adGuNm, adGvNm, adGtNm, adGsNm #else - & adgunm1, adgvnm1, adgtnm1, adgsnm1 + & adGuNm1, adGvNm1, adGtNm1, adGsNm1 #endif - _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL adEtaN(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adGu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adGv(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adSalt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adTheta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adUvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adVvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adWvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_ADAMSBASHFORTH_3 - _RL adgtnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL adgsnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL adgunm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL adgvnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) + _RL adGtNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL adGsNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL adGuNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL adGvNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) #else - _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL adGtNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adGsNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adGuNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adGvNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif -#ifdef USE_OLD_EXTERNAL_FORCING -c common /addynvars_old/ -c & adgt, adgs -c _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -c _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - - common /addynvars_r_2/ - & adetah - _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + COMMON /adDYNVARS_R_2/ + & adEtaH + _RL adEtaH(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ALLOW_AUTODIFF_MONITOR_DIAG - common /addynvars_diag/ - & adtotphihyd, adrhoinsitu - _RL adrhoinsitu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtotphihyd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) +C Special Care: more forward vars in FWD common block ; check TAF AD-code ! + COMMON /adDYNVARS_DIAG/ + & adRhoInSitu, adTotPhihyd + _RL adRhoInSitu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adTotPhiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + +#ifdef ALLOW_DIFFKR_CONTROL + COMMON /adDYNVARS_DIFFKR/ + & adDiffKr + _RL adDiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif #ifdef ALLOW_CD_CODE - common /addynvars_cd/ - & aduveld, advveld, - & adetanm1, - & adunm1, advnm1 - _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adetanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + COMMON /adDYNVARS_CD/ + & adUvelD, adVvelD, + & adEtaNm1, + & adUnm1, adVnm1 + _RL adUvelD(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adVvelD(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adEtaNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adUnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adVnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - COMMON /adffields_fu/ adfu - COMMON /adffields_fv/ adfv - COMMON /adffields_Qnet/ adQnet - COMMON /adffields_Qsw/ adQsw - COMMON /adffields_EmPmR/ adEmPmR - COMMON /adffields_saltFlux/ adsaltFlux - COMMON /adffields_SST/ adSST - COMMON /adffields_SSS/ adSSS - COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax - COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax - _RS adfu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adfv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adFFIELDS_fu/ adFu + COMMON /adFFIELDS_fv/ adFv + COMMON /adFFIELDS_Qnet/ adQnet + COMMON /adFFIELDS_Qsw/ adQsw + COMMON /adFFIELDS_EmPmR/ adEmPmR + COMMON /adFFIELDS_saltFlux/ adSaltFlux + COMMON /adFFIELDS_SST/ adSST + COMMON /adFFIELDS_SSS/ adSSS + COMMON /adFFIELDS_lambdaThetaClimRelax/ adLambdaThetaClimRelax + COMMON /adFFIELDS_lambdaSaltClimRelax/ adLambdaSaltClimRelax + _RS adFu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adFv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS adQnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS adQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS adEmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adSaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS adSST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS adSSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaThetaClimRelax + _RS adLambdaThetaClimRelax & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaSaltClimRelax + _RS adLambdaSaltClimRelax & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ATMOSPHERIC_LOADING - COMMON /adffields_pload/ adpload - COMMON /adffields_sIceLoad/ adsIceLoad - _RS adpload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adFFIELDS_pload/ adPload + COMMON /adFFIELDS_sIceLoad/ adSIceLoad + _RS adPload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adSIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif - -#ifdef ALLOW_DIFFKR_CONTROL - COMMON /ADDYNVARS_DIFFKR/ - & addiffKr - _RL addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#ifdef ALLOW_EDDYPSI_CONTROL + _RS adEddyPsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS adEddyPsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + COMMON /adFFIELDS_eddyPsi_RS/ adEddyPsiX, adEddyPsiY #endif + #ifdef ALLOW_KAPGM_CONTROL - COMMON /ADCTRL_FIELDS_KAPGM/ - & adkapgm - _RL adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + COMMON /adGM_INP_K3D_GM/ + & adKapGM + _RL adKapGM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif #ifdef ALLOW_KAPREDI_CONTROL - COMMON /ADCTRL_FIELDS_KAPREDI/ - & adkapredi - _RL adkapredi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + COMMON /adGM_INP_K3D_REDI/ + & adKapRedi + _RL adKapRedi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif #ifdef ALLOW_BOTTOMDRAG_CONTROL - COMMON /ADCTRL_FIELDS_BOTTOMDRAG/ - & adbottomdragfld - _RL adbottomdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - _RS adEddyPsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS adEddyPsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - common /adeddypsiffields/ adeddypsix, adeddypsiy + COMMON /adCTRL_FIELDS_BOTTOMDRAG/ + & adBottomDragFld + _RL adBottomDragFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #ifdef ALLOW_EXF - _RL adhflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adsflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_hsflux_r/ adhflux, adsflux + _RL adustress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL advstress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_stress_r/ adustress, advstress - _RL adustress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL advstress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_stress_r/ adustress, advstress + _RL adwspeed(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_wspeed_r/ adwspeed - _RL adwspeed(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_wspeed_r/ adwspeed + _RL aduwind (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL advwind (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_atm_wind_r/ aduwind, advwind -# ifdef ALLOW_RUNOFF - _RL adrunoff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adrunoff0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adrunoff1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /exfl_runoff_r_ad/ adrunoff, adrunoff0, adrunoff1 -# endif + _RL adhflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adsflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_netflux_r/ adhflux, adsflux # ifdef ALLOW_ATM_TEMP - _RL adatemp (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adaqh (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adhs (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adhl (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adlwflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adevap (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adprecip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adsnowprecip(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_atm_temp_r/ adatemp, adaqh, adhs, adhl, + _RL adatemp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adaqh (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adhs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adhl (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adlwflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adevap (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adprecip (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adsnowprecip(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_atm_temp_r/ adatemp, adaqh, adhs, adhl, & adlwflux, adevap, adprecip, adsnowprecip -# ifdef SHORTWAVE_HEATING - _RL adswflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - common /adexf_swflux_r/ adswflux -# endif # endif /* ALLOW_ATM_TEMP */ - - _RL aduwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL advwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_atm_wind_r/ aduwind, advwind - +# if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) + _RL adswflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_swflux_r/ adswflux +# endif # ifdef ALLOW_DOWNWARD_RADIATION - _RL adswdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adlwdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_rad_down_r/ adswdown, adlwdown + _RL adswdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adlwdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_rad_down_r/ adswdown, adlwdown +# endif + +# ifdef ALLOW_RUNOFF + _RL adrunoff (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adrunoff0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adrunoff1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /exfl_runoff_r_ad/ adrunoff, adrunoff0, adrunoff1 # endif + # ifdef ALLOW_CLIMSST_RELAXATION - _RL adclimsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_clim_sst_r/ adclimsst + _RL adclimsst(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_clim_sst_r/ adclimsst # endif # ifdef ALLOW_CLIMSSS_RELAXATION - _RL adclimsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adexf_clim_sss_r/ adclimsss + _RL adclimsss(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adexf_clim_sss_r/ adclimsss # endif #endif /* ALLOW_EXF */ #ifdef ALLOW_SEAICE - _RL adarea (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adheff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adhsnow (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL aduice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL advice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /adseaice_dynvars_1/ + _RL adarea (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adheff (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adhsnow (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL aduice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL advice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adSEAICE_DYNVARS_1/ & adarea, adheff, adhsnow, aduice, advice # ifdef SEAICE_VARIABLE_SALINITY _RL adhsalt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - common /seaice_salinity_r/ adhsalt + COMMON /adSEAICE_SALINITY_R/ adhsalt # endif #endif /* ALLOW_SEAICE */ #ifdef ALLOW_GGL90 - _RL adggl90tke (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adggl90diffkr (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - common /adggl90_fields/ adggl90tke, adggl90diffkr + _RL adGGL90TKE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +c _RL adGGL90viscArU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) +c _RL adGGL90viscArV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) +c _RL adGGL90diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) + COMMON /adGGL90_FIELDS/ adGGL90TKE +c & , adGGL90viscArU, adGGL90viscArV, adGGL90diffKr #endif #ifdef ALLOW_DEPTH_CONTROL - _RL adr_low_control(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adhfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - _RL adhfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - _RL adhfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - _RL adrecip_hfacc(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - _RL adrecip_hfacs(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - _RL adrecip_hfacw(1-olx:snx+olx,1-oly:sny+oly,1:nr,nsx,nsy) - common /adgrid_r/ adr_low_control, - & adrecip_hfacc, adrecip_hfacw, adrecip_hfacs - common /adgrid_r_c/ adhfacc - common /adgrid_r_s/ adhfacs - common /adgrid_r_w/ adhfacw +C Special Care: more forward vars in FWD common block ; check TAF AD-code ! + _RS adhfacc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adhfacs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adhfacw(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adrecip_hfacc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adrecip_hfacs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adrecip_hfacw(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy) + _RS adr_low (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS adrecip_rcol(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adGRID_VAR_RS/ + & adhfacc, adhfacw, adhfacs, + & adrecip_hfacc, adrecip_hfacw, adrecip_hfacs, + & adr_low, adrecip_rcol #endif /* ALLOW_DEPTH_CONTROL */ +#ifdef ALLOW_SHELFICE +C Special Care: more forward vars in FWD common block ; check TAF AD-code ! + _RL adshelficeforcings(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshelficeforcingt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshelficemass (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshicdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshidragquadfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshitranscoeffs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adshitranscoefft (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /adSHELFICE_FIELDS_RL/ adshelficemass, + & adshelficeforcingt, adshelficeforcings, adshitranscoefft, + & adshitranscoeffs, adshicdragfld, adshidragquadfld +#endif + #endif /* ALLOW_AUTODIFF_MONITOR */ diff --git a/pkg/autodiff/add_prefix.F b/pkg/autodiff/add_prefix.F new file mode 100644 index 0000000000..4efe834829 --- /dev/null +++ b/pkg/autodiff/add_prefix.F @@ -0,0 +1,50 @@ +#include "AUTODIFF_OPTIONS.h" + +CBOP +C !ROUTINE: ADD_PREFIX +C !INTERFACE: + SUBROUTINE ADD_PREFIX( prefix, actvarf, fname ) + +C !DESCRIPTION: \bv +C ================================================================== +C SUBROUTINE ADD_PREFIX +C ================================================================== +C o Helper S/R to add 2 character prefix to file-name +C started: ou.wang@jpl.nasa.gov 24-Aug-2022 +C ================================================================== +C \ev + +C !USES: + IMPLICIT NONE + +C !INPUT/OUTPUT PARAMETERS: +C prefix :: (input) 2 character prefix to add +C actvarf :: (input) active-variable file-name +C fname :: (output) file-name with added prefix + CHARACTER*(2) prefix + CHARACTER*(*) actvarf + CHARACTER*(*) fname + +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER il, ic, l +CEOP + + il = ILNBLNK( actvarf ) + ic = 0 + IF ( il .GT. 0 .AND. (il+2) .LE. LEN(fname) ) THEN + l = il + DO WHILE ( ic .EQ. 0 .AND. l .GE. 1 ) + IF ( actvarf(l:l) .EQ. '/' ) ic = l + l = l -1 + ENDDO + ELSE + STOP 'ABNORMAL END: S/R ADD_PREFIX' + ENDIF + WRITE(fname,'(3A)') actvarf(1:ic), prefix, actvarf(ic+1:il) + + RETURN + END diff --git a/pkg/autodiff/addummy_for_etan.F b/pkg/autodiff/addummy_for_etan.F index 0ce8112ac5..9b6b619f9c 100644 --- a/pkg/autodiff/addummy_for_etan.F +++ b/pkg/autodiff/addummy_for_etan.F @@ -14,7 +14,7 @@ SUBROUTINE ADDUMMY_FOR_ETAN( myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* -C | SUBROUTINE ADDUMMY_FOR_ETAN | +C | SUBROUTINE ADDUMMY_FOR_ETAN | C *==========================================================* C Extract adjoint variable for sea level height C from TAMC/TAF-generated @@ -33,7 +33,7 @@ SUBROUTINE ADDUMMY_FOR_ETAN( myTime, myIter, myThid ) C C Created: Tim Smith, tsmith@ices.utexas.edu, Sept 12 2018 C *==========================================================* -C | SUBROUTINE ADDUMMY_FOR_ETAN | +C | SUBROUTINE ADDUMMY_FOR_ETAN | C *==========================================================* C \ev @@ -50,13 +50,11 @@ SUBROUTINE ADDUMMY_FOR_ETAN( myTime, myIter, myThid ) #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#ifdef ALLOW_OPENAD -# include "DYNVARS.h" -# include "FFIELDS.h" -#endif -#include "AUTODIFF_PARAMS.h" #ifdef ALLOW_AUTODIFF_MONITOR -c#include "GRID.h" +# ifdef ALLOW_OPENAD +# include "DYNVARS.h" +# endif +# include "AUTODIFF_PARAMS.h" # include "AUTODIFF.h" # ifndef ALLOW_OPENAD # include "adcommon.h" @@ -73,8 +71,6 @@ SUBROUTINE ADDUMMY_FOR_ETAN( myTime, myIter, myThid ) C myThid :: Thread number for this instance of the routine. _RL myTime INTEGER myIter -C _RL myTime -C INTEGER myIter INTEGER myThid #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) @@ -85,67 +81,35 @@ SUBROUTINE ADDUMMY_FOR_ETAN( myTime, myIter, myThid ) EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -c == local variables == +C == local variables == C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer - CHARACTER*(10) suff - CHARACTER*(MAX_LEN_MBUF) msgBuf -#ifdef ALLOW_OPENAD - _RL var2Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif +c CHARACTER*(10) suff +c CHARACTER*(MAX_LEN_MBUF) msgBuf + _RS dumRS(1) + LOGICAL doDump CEOP - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN - - CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + doDump = DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) -c increment ad dump record number (used only if dumpAdByRec is true) - dumpAdRecEt=dumpAdRecEt+1 -c#ifdef ALLOW_DEBUG -c IF ( debugMode ) print*,'dumpAdRecEt',dumpAdRecEt -c#endif - -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF + IF ( doDump ) THEN +C increment ad dump record number (used only if dumpAdByRec is true) +C could be just dumpAdRecEt=dumpAdRecMn+1 ???? + dumpAdRecEt = dumpAdRecEt + 1 + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF -C----------------------------------------------------------------------- #ifndef ALLOW_OPENAD -C----------------------------------------------------------------------- - - IF ( dumpAdByRec ) THEN - CALL WRITE_REC_XY_RL ( 'ADJetan', - & adEtaN, dumpAdRecEt, myIter, myThid) - ELSE - CALL WRITE_FLD_XY_RL ( 'ADJetan.', suff, - & adEtaN, myIter, myThid ) - ENDIF - -C----------------------------------------------------------------------- + CALL DUMP_ADJ_XY(dumRS, adetan, 'ADJetan ', 'ADJetan.', + & 12, doDump, dumpAdRecEt, myTime, myIter,myThid) #else /* ndef ALLOW_OPENAD */ -C----------------------------------------------------------------------- - - IF ( dumpAdByRec ) THEN - var2Du = etaN%d - CALL WRITE_REC_XY_RL ( 'ADJetan', - & var2Du, dumpAdRecEt, myIter, myThid) - ELSE - var2Du = etaN%d - CALL WRITE_FLD_XY_RL ( 'ADJetan.', suff, - & var2Du, myIter, myThid ) - ENDIF - -C----------------------------------------------------------------------- + CALL DUMP_ADJ_XY(dumRS, etaN%d, 'ADJetan ', 'ADJetan.', + & 12, doDump, dumpAdRecEt, myTime, myIter,myThid) #endif /* ndef ALLOW_OPENAD */ -C----------------------------------------------------------------------- -C-- NOW NMC output + IF ( doDump ) THEN +C-- NOW NMC output #ifndef ALLOW_OPENAD #ifdef ALLOW_MNC IF ( useMNC .AND. autodiff_mnc ) THEN diff --git a/pkg/autodiff/addummy_in_dynamics.F b/pkg/autodiff/addummy_in_dynamics.F index 53479883a3..e9249f2500 100644 --- a/pkg/autodiff/addummy_in_dynamics.F +++ b/pkg/autodiff/addummy_in_dynamics.F @@ -61,7 +61,7 @@ SUBROUTINE ADDUMMY_IN_DYNAMICS( myTime, myIter, myThid ) C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer CHARACTER*(10) suff - CHARACTER*(MAX_LEN_MBUF) msgBuf +c CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_AUTODIFF_MONITOR_DIAG _RL var3Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RS dumRS(1) diff --git a/pkg/autodiff/addummy_in_stepping.F b/pkg/autodiff/addummy_in_stepping.F index c7bd70cbac..62b1a144fe 100644 --- a/pkg/autodiff/addummy_in_stepping.F +++ b/pkg/autodiff/addummy_in_stepping.F @@ -8,6 +8,15 @@ #ifdef ALLOW_DIAGNOSTICS # include "DIAG_OPTIONS.h" #endif +#ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +#endif +#ifdef ALLOW_GGL90 +# include "GGL90_OPTIONS.h" +#endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif #include "AD_CONFIG.h" CBOP @@ -42,13 +51,19 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#ifdef ALLOW_OPENAD -# include "DYNVARS.h" -# include "FFIELDS.h" -#endif -#include "AUTODIFF_PARAMS.h" #ifdef ALLOW_AUTODIFF_MONITOR -c#include "GRID.h" +# ifdef ALLOW_OPENAD +C- Note: Since OpenAD uses modules, the ordering of included headers matters +# include "DYNVARS.h" +# include "FFIELDS.h" +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# endif +# ifdef ALLOW_GGL90 +# include "GGL90.h" +# endif +# endif /* ALLOW_OPENAD */ +# include "AUTODIFF_PARAMS.h" # include "AUTODIFF.h" # ifndef ALLOW_OPENAD # include "adcommon.h" @@ -79,27 +94,30 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -c == local variables == +C == local variables == C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer - CHARACTER*(10) suff +c CHARACTER*(10) suff c CHARACTER*(MAX_LEN_MBUF) msgBuf +#ifdef ALLOW_MNC _RL var2Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL var2Dv(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL var3Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL var3Dv(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif _RS dumRS(1) _RL dumRL(1) LOGICAL doExch -#ifdef ALLOW_DIAGNOSTICS - LOGICAL modelEnd -#endif + LOGICAL doDump CEOP +C--- Do dump? + doDump = DIFFERENT_MULTIPLE( adjDumpFreq, myTime, deltaTClock ) + C--- Test for adexch based on dumpAdVarExch flag - doExch = DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) + doExch = doDump #ifdef ALLOW_DIAGNOSTICS - doExch = doExch .OR. useDiag4AdjOutp + doExch = doDump .OR. useDiag4AdjOutp #endif doExch = doExch .AND. ( dumpAdVarExch.EQ.1 ) @@ -125,16 +143,10 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) call adexch_xyz_rl( myThid,addiffkr ) # endif # ifdef ALLOW_KAPGM_CONTROL - call adexch_xyz_rl( myThid,adkapgm ) + call adexch_xyz_rl( myThid, adKapGM ) # endif # ifdef ALLOW_KAPREDI_CONTROL - call adexch_xyz_rl( myThid,adkapredi ) -# endif -# ifdef ALLOW_SST0_CONTROL - call adexch_xy_rl( myThid,adsst ) -# endif -# ifdef ALLOW_SSS0_CONTROL - call adexch_xy_rl( myThid,adsss ) + call adexch_xyz_rl( myThid, adKapRedi ) # endif # ifdef ALLOW_BOTTOMDRAG_CONTROL call adexch_xy_rl( myThid,adbottomdragfld) @@ -147,9 +159,18 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) CALL ADEXCH_3D_RL( adwVel, Nr, myThid ) CALL ADEXCH_UV_3D_RL( aduVel,advVel, .TRUE., Nr, myThid ) # endif +C There are rare cases when adexch_uv_xy_rs and adexch_xy_rs are not +C generated by TAF and then the following lines will lead to an +C error in the link step, for example, when there are no 2D forcing +C fields controls. We should have a cpp flag for that that is +C automatically defined if any 2D forcing controls are defined. As a +C hack we use an excluding cpp-flag that needs to be defined if this +C problem occurs +#ifndef AUTODIFF_EXCLUDE_ADEXCH_RS CALL ADEXCH_UV_XY_RS( adFu, adFv, .TRUE., myThid ) CALL ADEXCH_XY_RS( adQnet, myThid ) CALL ADEXCH_XY_RS( adEmPmR, myThid ) +#endif # ifdef ALLOW_EDDYPSI_CONTROL CALL ADEXCH_UV_XYZ_RS( adEddyPsiX, adEddyPsiY, .TRUE., myThid ) # endif @@ -162,658 +183,245 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) # ifdef ALLOW_KAPREDI_CONTROL CALL ADEXCH_3D_RL( adKapRedi, Nr, myThid ) # endif -# ifdef ALLOW_SST0_CONTROL - CALL ADEXCH_XY_RS( adSST, myThid ) -# endif -# ifdef ALLOW_SSS0_CONTROL - CALL ADEXCH_XY_RS( adSSS, myThid ) -# endif # ifdef ALLOW_BOTTOMDRAG_CONTROL CALL ADEXCH_3D_RL( adBottomDragFld, 1 , myThid ) # endif +# ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + CALL ADEXCH_XY_RL( adshiTransCoeffT, myThid ) + CALL ADEXCH_XY_RL( adshiTransCoeffS, myThid ) +# else + CALL ADEXCH_XY_RL( adshiCDragFld, myThid ) +# endif +# endif #endif /* AUTODIFF_TAMC_COMPATIBILITY */ #endif /* ALLOW_OPENAD */ ENDIF +C======================================================================= +C-- Dump AD-variable to binary files and fill diagnostics +C======================================================================= + IF ( doDump ) THEN +C Increment ad dump record number (used only if dumpAdByRec is true) + dumpAdRecMn = dumpAdRecMn + 1 + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF + +#ifndef ALLOW_OPENAD +C======================== +C-- TAF AD-variables: +C======================== C----------------------------------------------------------------------- -C--- Output adj variables in diagnostics +C--- State variables C----------------------------------------------------------------------- -#ifdef ALLOW_DIAGNOSTICS - IF ( useDiag4AdjOutp ) THEN + CALL DUMP_ADJ_XYZ(dumRS, adTheta, 'ADJtheta', 'ADJtheta.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) -C --- 1. Grab modelEnd, necessary input for diagnostics routines - modelEnd = myTime.EQ.endTime .OR. myIter.EQ.nEndIter - CALL DIAGNOSTICS_SWITCH_ONOFF( myTime, myIter, myThid ) + CALL DUMP_ADJ_XYZ(dumRS, adSalt, 'ADJsalt ', 'ADJsalt.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) - IF ( dumpAdVarExch.EQ.2 ) THEN -C --- 2. Fill up diagnostics from local copy (after exch) + CALL DUMP_ADJ_XYZ(dumRS, adWvel, 'ADJwvel ', 'ADJwvel.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) -# ifdef ALLOW_OPENAD - CALL COPY_ADVAR_OUTP( dumRS, theta%d,var3Du, Nr, 12, myThid ) -# else - CALL COPY_ADVAR_OUTP( dumRS, adTheta,var3Du, Nr, 12, myThid ) -# endif - CALL DIAGNOSTICS_FILL( var3Du, 'ADJtheta', 0,Nr,0,1,1,myThid ) -# ifdef ALLOW_OPENAD - CALL COPY_ADVAR_OUTP( dumRS, salt%d, var3Du, Nr, 12, myThid ) -# else - CALL COPY_ADVAR_OUTP( dumRS, adSalt, var3Du, Nr, 12, myThid ) -# endif - CALL DIAGNOSTICS_FILL( var3Du, 'ADJsalt ', 0,Nr,0,1,1,myThid ) - -# ifdef ALLOW_OPENAD - CALL COPY_ADVAR_OUTP( dumRS, wVel%d, var3Du, Nr, 12, myThid ) -# else - CALL COPY_ADVAR_OUTP( dumRS, adwVel, var3Du, Nr, 12, myThid ) -# endif - CALL DIAGNOSTICS_FILL( var3Du, 'ADJwvel ', 0,Nr,0,1,1,myThid ) + CALL DUMP_ADJ_XYZ_UV( + & dumRS, adUvel, 'ADJuvel ', 'ADJuvel.', + & dumRS, adVvel, 'ADJvvel ', 'ADJvvel.', + & 34, doDump, dumpAdRecMn, myTime, myIter,myThid) -# ifdef ALLOW_OPENAD - CALL COPY_AD_UV_OUTP( dumRS, dumRS, uVel%d, vVel%d, - & var3Du, var3Dv, Nr, 34, myThid ) -# else - CALL COPY_AD_UV_OUTP( dumRS, dumRS, aduVel, advVel, - & var3Du, var3Dv, Nr, 34, myThid ) +C----------------------------------------------------------------------- +C--- Surface Forcing +C----------------------------------------------------------------------- + IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN + CALL DUMP_ADJ_XY_UV( + & adFu, dumRL, 'ADJtaux ', 'ADJtaux.', + & adFv, dumRL, 'ADJtauy ', 'ADJtauy.', + & 33, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(adQnet, dumRL, 'ADJqnet ', 'ADJqnet.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(adEmPmR, dumRL, 'ADJempmr', 'ADJempr.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) + +# ifdef SHORTWAVE_HEATING + CALL DUMP_ADJ_XY(adQsw, dumRL, 'ADJqsw ', 'ADJqsw.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) # endif - CALL DIAGNOSTICS_FILL( var3Du, 'ADJuvel ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( var3Dv, 'ADJvvel ', 0,Nr,0,1,1,myThid ) - - ELSE -C --- 3. Fill up diagnostics directly - -# ifdef ALLOW_OPENAD -C - OpenAD - CALL DIAGNOSTICS_FILL( theta%d,'ADJtheta', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( salt%d, 'ADJsalt ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( wVel%d, 'ADJwvel ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( uVel%d, 'ADJuvel ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( vVel%d, 'ADJvvel ', 0,Nr,0,1,1,myThid ) -# else /* ALLOW_OPENAD */ -C - TAF - CALL DIAGNOSTICS_FILL( adTheta,'ADJtheta', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( adSalt, 'ADJsalt ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( adwVel, 'ADJwvel ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( aduVel, 'ADJuvel ', 0,Nr,0,1,1,myThid ) - CALL DIAGNOSTICS_FILL( advVel, 'ADJvvel ', 0,Nr,0,1,1,myThid ) -# endif /* ALLOW_OPENAD */ - ENDIF - -C --- 4. Write the fields out - CALL DIAGNOSTICS_WRITE_ADJ( modelEnd, myTime, myIter, myThid ) ENDIF -#endif /* ALLOW_DIAGNOSTICS */ C----------------------------------------------------------------------- +C---Various packages and parameters +C----------------------------------------------------------------------- +# ifdef ALLOW_BOTTOMDRAG_CONTROL + CALL DUMP_ADJ_XY(dumRS, adBottomDragFld, + & 'ADJbtdrg','ADJbottomdrag.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_GGL90 + CALL DUMP_ADJ_XYZ(dumRS, adGGL90TKE, 'ADJtke90', 'ADJggl90tke.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_DIFFKR_CONTROL + CALL DUMP_ADJ_XYZ(dumRS, adDiffKr, 'ADJdifkr', 'ADJdiffkr.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_KAPGM_CONTROL + CALL DUMP_ADJ_XYZ(dumRS, adKapGM, 'ADJkapgm', 'ADJkapgm.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_KAPREDI_CONTROL + CALL DUMP_ADJ_XYZ(dumRS, adKapRedi, 'ADJkapre', 'ADJkapredi.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN - - CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) +# ifdef ALLOW_EDDYPSI_CONTROL + CALL DUMP_ADJ_XYZ_UV( + & adEddyPsiX,dumRL,'ADJepsix','ADJeddipsix.', + & adEddyPsiY,dumRL,'ADJepsiy','ADJeddipsiy.', + & 33, doDump, dumpAdRecMn, myTime, myIter, myThid) +# endif +# ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + CALL DUMP_ADJ_XY(dumRS, adshiTransCoeffT, + & 'ADJshict','ADJshict.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(dumRS, adshiTransCoeffS, + & 'ADJshics','ADJshict.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# else + CALL DUMP_ADJ_XY(dumRS, adshiCDragFld, + & 'ADJshicd','ADJshicd.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# endif -c increment ad dump record number (used only if dumpAdByRec is true) - dumpAdRecMn=dumpAdRecMn+1 -c#ifdef ALLOW_DEBUG -c IF ( debugMode ) print*,'dumpAdRecMn',dumpAdRecMn -c#endif - -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF +# ifdef ALLOW_DEPTH_CONTROL + CALL DUMP_ADJ_XYZ( + & adhfacc,dumRL,'ADJhFacC','ADJhFacC.', + & 11, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ_UV( + & adhfacw,dumRL,'ADJhFacW','ADJhFacW.', + & adhfacs,dumRL,'ADJhFacS','ADJhFacS.', + & 33, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ( + & adrecip_hfacc,dumRL,'ADJrhFcC','ADJrecip_hFacC.', + & 11, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ_UV( + & adrecip_hfacw,dumRL,'ADJrhFcW','ADJrecip_hFacW.', + & adrecip_hfacs,dumRL,'ADJrhFcS','ADJrecip_hFacS.', + & 33, doDump, dumpAdRecMn, myTime, myIter, myThid) +# endif /* ALLOW_DEPTH_CONTROL */ +#else /* ALLOW_OPENAD */ +C======================== +C-- OpenAD AD-variable: +C======================== C----------------------------------------------------------------------- -#ifndef ALLOW_OPENAD +C--- State variables C----------------------------------------------------------------------- + CALL DUMP_ADJ_XYZ(dumRS, theta%d, 'ADJtheta', 'ADJtheta.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) - IF ( ( dumpAdVarExch.NE.2 ).AND.(.NOT.dumpAdByRec) ) THEN - CALL WRITE_FLD_XYZ_RL( 'ADJtheta.', suff, - & adTheta, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'ADJsalt.', suff, - & adSalt, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'ADJuvel.', suff, - & aduVel, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'ADJvvel.', suff, - & advVel, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'ADJwvel.', suff, - & adwVel, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - CALL WRITE_FLD_XY_RS('ADJtaux.',suff, adFu, myIter, myThid ) - CALL WRITE_FLD_XY_RS('ADJtauy.',suff, adFv, myIter, myThid ) - CALL WRITE_FLD_XY_RS('ADJqnet.',suff, adQnet,myIter,myThid ) - CALL WRITE_FLD_XY_RS('ADJempr.',suff,adEmPmR,myIter,myThid ) -#ifdef SHORTWAVE_HEATING - CALL WRITE_FLD_XY_RS('ADJqsw.', suff, adQsw,myIter, myThid ) -#endif - ENDIF - -#ifdef ALLOW_GGL90 -c CALL WRITE_FLD_XYZ_RL ( 'ADJggl90diffkr.',suff, -c & adGGL90DiffKr, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'ADJggl90tke.', suff, - & adGGL90TKE, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - CALL WRITE_FLD_XYZ_RL( 'ADJdiffkr.', suff, - & adDiffKr, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - CALL WRITE_FLD_XYZ_RL( 'ADJkapgm.', suff, - & adKapGM, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - CALL WRITE_FLD_XYZ_RL( 'ADJkapredi.', suff, - & adKapRedi, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - CALL WRITE_FLD_XYZ_RS( 'ADJeddypsix.', suff, - & adEddyPsiX, myIter, myThid ) - CALL WRITE_FLD_XYZ_RS( 'ADJeddypsiy.', suff, - & adEddyPsiY, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - CALL WRITE_FLD_XY_RS( 'ADJsst.',suff, adSST, myIter, myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL WRITE_FLD_XY_RS( 'ADJsss.',suff, adSSS, myIter, myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - CALL WRITE_FLD_XY_RL ( 'ADJbottomdrag.', suff, - & adBottomDragFld, myIter, myThid ) -#endif + CALL DUMP_ADJ_XYZ(dumRS, salt%d, 'ADJsalt ', 'ADJsalt.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) - ELSEIF ( ( dumpAdVarExch.NE.2 ).AND.(dumpAdByRec) ) THEN - - CALL WRITE_REC_XYZ_RL( 'ADJtheta', - & adTheta, dumpAdRecMn, myIter,myThid ) - CALL WRITE_REC_XYZ_RL( 'ADJsalt', - & adSalt, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XYZ_RL( 'ADJuvel', - & aduVel, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XYZ_RL( 'ADJvvel', - & advVel, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XYZ_RL( 'ADJwvel', - & adwVel, dumpAdRecMn, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - CALL WRITE_REC_XY_RS('ADJtaux', - & adFu, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XY_RS('ADJtauy', - & adFv, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XY_RS('ADJqnet', - & adQnet,dumpAdRecMn, myIter,myThid ) - CALL WRITE_REC_XY_RS('ADJempr', - & adEmPmR,dumpAdRecMn, myIter,myThid ) -#ifdef SHORTWAVE_HEATING - CALL WRITE_REC_XY_RS('ADJqsw', - & adQsw,dumpAdRecMn, myIter, myThid ) -#endif - ENDIF + CALL DUMP_ADJ_XYZ(dumRS, wvel%d, 'ADJwvel ', 'ADJwvel.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) -#ifdef ALLOW_GGL90 -c CALL WRITE_REC_XYZ_RL ( 'ADJggl90diffkr', -c & adGGL90DiffKr, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XYZ_RL( 'ADJggl90tke', - & adGGL90TKE, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - CALL WRITE_REC_XYZ_RL( 'ADJdiffkr', - & adDiffKr, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - CALL WRITE_REC_XYZ_RL( 'ADJkapgm', - & adKapGM, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - CALL WRITE_REC_XYZ_RL( 'ADJkapredi', - & adKapRedi, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - CALL WRITE_REC_XYZ_RS( 'ADJeddypsix', - & adEddyPsiX, dumpAdRecMn, myIter, myThid ) - CALL WRITE_REC_XYZ_RS( 'ADJeddypsiy', - & adEddyPsiY, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - CALL WRITE_REC_XY_RS( 'ADJsst', - & adSST, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL WRITE_REC_XY_RS( 'ADJsss', - & adSSS, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - CALL WRITE_REC_XY_RL ( 'ADJbottomdrag', - & adBottomDragFld, dumpAdRecMn, myIter, myThid ) -#endif - - ELSE -C case dumpAdVarExch = 2 - CALL COPY_ADVAR_OUTP( dumRS, adTheta,var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJtheta.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJtheta', - & var3Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, adSalt, var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJsalt.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJsalt', - & var3Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_AD_UV_OUTP( dumRS, dumRS, aduVel, advVel, - & var3Du, var3Dv, Nr, 34, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJuvel.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJuvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJvvel.', - & suff, var3Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJvvel', - & var3Dv, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, adwVel, var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJwvel.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJwvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - CALL COPY_AD_UV_OUTP( adFu, adFv, dumRL, dumRL, - & var2Du, var2Dv, 1, 33, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJtaux.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJtaux', - & var2Du,dumpAdRecMn, myIter,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJtauy.', - & suff,var2Dv,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJtauy', - & var2Dv,dumpAdRecMn, myIter,myThid ) - CALL COPY_ADVAR_OUTP( adQnet, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJqnet.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJqnet', - & var2Du,dumpAdRecMn, myIter,myThid ) - CALL COPY_ADVAR_OUTP( adEmPmR,dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJempr.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJempr', - & var2Du,dumpAdRecMn, myIter,myThid ) -#ifdef SHORTWAVE_HEATING - CALL COPY_ADVAR_OUTP( adQsw, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJqsw.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJqsw', - & var2Du,dumpAdRecMn, myIter,myThid ) -#endif - ENDIF -#ifdef ALLOW_GGL90 - CALL COPY_ADVAR_OUTP( dumRS,adGGL90TKE,var3Du,Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJggl90tke.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJggl90tke', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, adDiffKr,var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJdiffkr.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJdiffkr', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, adKapGM, var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJkapgm.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJkapgm', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - CALL COPY_ADVAR_OUTP( dumRS,adKapRedi,var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJkapredi.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJkapredi', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - CALL COPY_AD_UV_OUTP( adEddyPsiX, adEddyPsiY, dumRL, dumRL, - & var3Du, var3Dv, Nr, 33, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJeddypsix.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJeddypsix', - & var3Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJeddypsiy.', - & suff, var3Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJeddypsiy', - & var3Dv, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - CALL COPY_ADVAR_OUTP( adSST, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJsst.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJsst', - & var2Du,dumpAdRecMn, myIter,myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL COPY_ADVAR_OUTP( adSSS, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJsss.', - & suff,var2Du,myIter,myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJsss', - & var2Du,dumpAdRecMn, myIter,myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, adBottomDragFld, - & var2Du, 1, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJbottomdrag.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJbottomdrag', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif -C end if dumpAdVarExch = 2 - ENDIF + CALL DUMP_ADJ_XYZ_UV( + & dumRS, uvel%d, 'ADJuvel ', 'ADJuvel.', + & dumRS, vvel%d, 'ADJvvel ', 'ADJvvel.', + & 34, doDump, dumpAdRecMn, myTime, myIter,myThid) C----------------------------------------------------------------------- -#else /* ndef ALLOW_OPENAD */ +C--- Surface Forcing C----------------------------------------------------------------------- - - IF ( ( dumpAdVarExch.NE.2 ).AND.(.NOT.dumpAdByRec) ) THEN - var3Du = theta%d - CALL WRITE_FLD_XYZ_RL( 'ADJtheta.', suff, - & var3Du, myIter, myThid ) - var3Du = salt%d - CALL WRITE_FLD_XYZ_RL( 'ADJsalt.', suff, - & var3Du, myIter, myThid ) - var3Du = uVel%d - CALL WRITE_FLD_XYZ_RL( 'ADJuvel.', suff, - & var3Du, myIter, myThid ) - var3Du = vVel%d - CALL WRITE_FLD_XYZ_RL( 'ADJvvel.', suff, - & var3Du, myIter, myThid ) - var3Du = wVel%d - CALL WRITE_FLD_XYZ_RL( 'ADJwvel.', suff, - & var3Du, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - var2Du = Fu%d - CALL WRITE_FLD_XY_RS( 'ADJtaux.', suff, - & var2Du, myIter, myThid ) - var2Du = Fv%d - CALL WRITE_FLD_XY_RS( 'ADJtauy.', suff, - & var2Du, myIter, myThid ) - var2Du = Qnet%d - CALL WRITE_FLD_XY_RS( 'ADJqnet.', suff, - & var2Du, myIter, myThid ) - var2Du = EmPmR%d - CALL WRITE_FLD_XY_RS( 'ADJempr.', suff, - & var2Du, myIter, myThid ) -#ifdef SHORTWAVE_HEATING -cc var2Du = Qsw%d -cc CALL WRITE_FLD_XY_RS( 'ADJqsw.', suff, -cc & var2Du, myIter, myThid ) -#endif - ENDIF - -#ifdef ALLOW_GGL90 -c CALL WRITE_FLD_XYZ_RL ( 'ADJggl90diffkr.',suff, -c & adGGL90DiffKr, myIter, myThid ) -cc var3Du = GGL90TKE%d -cc CALL WRITE_FLD_XYZ_RL( 'ADJggl90tke.', suff, -cc & var3Du, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - var3Du = DiffKr%d - CALL WRITE_FLD_XYZ_RL( 'ADJdiffkr.', suff, - & var3Du, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - var3Du = KapGM%d - CALL WRITE_FLD_XYZ_RL( 'ADJkapgm.', suff, - & var3Du, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - var3Du = KapRedi%d - CALL WRITE_FLD_XYZ_RL( 'ADJkapredi.', suff, - & var3Du, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - var3Du = EddyPsiX%d - CALL WRITE_FLD_XYZ_RS( 'ADJeddypsix.', suff, - & var3Du, myIter, myThid ) - var3Du = EddyPsiY%d - CALL WRITE_FLD_XYZ_RS( 'ADJeddypsiy.', suff, - & var3Du, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - var2Du = sst%d - CALL WRITE_FLD_XY_RS ( 'ADJsst.', suff, - & var2Du, myIter, myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - var2Du = sss%d - CALL WRITE_FLD_XY_RS ( 'ADJsss.', suff, - & var2Du, myIter, myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - var2Du = BottomDragFld%d - CALL WRITE_FLD_XY_RL ( 'ADJbottomdrag.', suff, - & var2Du, myIter, myThid ) -#endif - - ELSEIF ( ( dumpAdVarExch.NE.2 ).AND.(dumpAdByRec) ) THEN - - var3Du = theta%d - CALL WRITE_REC_XYZ_RL( 'ADJtheta', - & var3Du, dumpAdRecMn, myIter,myThid ) - var3Du = salt%d - CALL WRITE_REC_XYZ_RL( 'ADJsalt', - & var3Du, dumpAdRecMn, myIter, myThid ) - var3Du = uVel%d - CALL WRITE_REC_XYZ_RL( 'ADJuvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - var3Du = vVel%d - CALL WRITE_REC_XYZ_RL( 'ADJvvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - var3Du = wVel%d - CALL WRITE_REC_XYZ_RL( 'ADJwvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - var2Du = fu%d - CALL WRITE_REC_XY_RS( 'ADJtaux', - & var2Du, dumpAdRecMn, myIter, myThid ) - var2Du = fv%d - CALL WRITE_REC_XY_RS( 'ADJtauy', - & var2Du, dumpAdRecMn, myIter, myThid ) - var2Du = Qnet%d - CALL WRITE_REC_XY_RS( 'ADJqnet', - & var2Du, dumpAdRecMn, myIter, myThid ) - var2Du = EmPmR%d - CALL WRITE_REC_XY_RS( 'ADJempr', - & var2Du, dumpAdRecMn, myIter, myThid ) -#ifdef SHORTWAVE_HEATING -cc var2Du = Qsw%d -cc CALL WRITE_REC_XY_RS( 'ADJqsw', -cc & var2Du, dumpAdRecMn, myIter, myThid ) -#endif - ENDIF - -#ifdef ALLOW_GGL90 -c CALL WRITE_REC_XYZ_RL ( 'ADJggl90diffkr', -c & adGGL90DiffKr, dumpAdRecMn, myIter, myThid ) -cc var3Du = GGL90TKE%d -cc CALL WRITE_REC_XYZ_RL( 'ADJggl90tke', -cc & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - var3Du = Diffkr%d - CALL WRITE_REC_XYZ_RL( 'ADJdiffkr', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - var3Du = KapGM%d - CALL WRITE_REC_XYZ_RL( 'ADJkapgm', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - var3Du = KapRedi%d - CALL WRITE_REC_XYZ_RL( 'ADJkapredi', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - var3Du = EddyPsiX%d - CALL WRITE_REC_XYZ_RS( 'ADJeddypsix', - & var3Du, dumpAdRecMn, myIter, myThid ) - var3Du = EddyPsiY%d - CALL WRITE_REC_XYZ_RS( 'ADJeddypsiy', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - var2Du = sst%d - CALL WRITE_REC_XY_RS( 'ADJsst', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - var2Du = sss%d - CALL WRITE_REC_XY_RS( 'ADJsss', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - var2Du = BottomDragFld%d - CALL WRITE_REC_XY_RL ( 'ADJbottomdrag', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif - - ELSE -C case dumpAdVarExch = 2 - - CALL COPY_ADVAR_OUTP( dumRS, theta%d,var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJtheta.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJtheta', - & var3Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, salt%d, var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJsalt.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJsalt', - & var3Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_AD_UV_OUTP( dumRS, dumRS, uVel%d, vVel%d, - & var3Du, var3Dv, Nr, 34, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJuvel.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJuvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJvvel.', - & suff, var3Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJvvel', - & var3Dv, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, wVel%d, var3Du, Nr, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJwvel.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJwvel', - & var3Du, dumpAdRecMn, myIter, myThid ) - - IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN - CALL COPY_AD_UV_OUTP( Fu%d, Fv%d, dumRL, dumRL, - & var2Du, var2Dv, 1, 33, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJtaux.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJtaux', - & var2Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJtauy.', - & suff, var2Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJtauy', - & var2Dv, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( Qnet%d, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJqnet.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJqnet', - & var2Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( EmPmR%d,dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJempr.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJempr', - & var2Du, dumpAdRecMn, myIter, myThid ) -#ifdef SHORTWAVE_HEATING -cc CALL COPY_ADVAR_OUTP( Qsw%d, dumRL, var2Du, 1, 11, myThid ) -cc IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJqsw.', -cc & suff,var2Du,myIter,myThid ) -cc IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJqsw', -cc & var2Du,dumpAdRecMn, myIter,myThid ) -#endif - ENDIF -#ifdef ALLOW_GGL90 -cc CALL COPY_ADVAR_OUTP( dumRS,GGL90TKE%d,var3Du,Nr, 12,myThid ) -cc IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJggl90tke.', -cc & suff, var3Du, myIter, myThid ) -cc IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJggl90tke', -cc & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_DIFFKR_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, DiffKr%d,var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJdiffkr.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJdiffkr', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPGM_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, KapGM%d, var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJkapgm.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJkapgm', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - CALL COPY_ADVAR_OUTP( dumRS,KapRedi%d,var3Du, Nr, 12,myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJkapredi.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJkapredi', - & var3Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_EDDYPSI_CONTROL - CALL COPY_AD_UV_OUTP( EddyPsiX%d, EddyPsiY%d, dumRL, dumRL, - & var3Du, var3Dv, Nr, 33, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJeddypsix.', - & suff, var3Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJeddypsix', - & var3Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XYZ_RL( 'ADJeddypsiy.', - & suff, var3Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XYZ_RL( 'ADJeddypsiy', - & var3Dv, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SST0_CONTROL - CALL COPY_ADVAR_OUTP( SST%d, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJsst.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJsst', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL COPY_ADVAR_OUTP( SSS%d, dumRL, var2Du, 1, 11, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJsss.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJsss', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - CALL COPY_ADVAR_OUTP( dumRS, BottomDragFld%d, - & var2Du, 1, 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJbottomdrag.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJbottomdrag', - & var2Du, dumpAdRecMn, myIter, myThid ) -#endif - -C end if dumpAdVarExch = 2 - ENDIF + IF ( .NOT. useSEAICE .AND. .NOT. useEXF ) THEN + CALL DUMP_ADJ_XY_UV( + & Fu%d, dumRL, 'ADJtaux ', 'ADJtaux.', + & Fv%d, dumRL, 'ADJtauy ', 'ADJtauy.', + & 33, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(Qnet%d, dumRL, 'ADJqnet ', 'ADJqnet.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(EmPmR%d, dumRL, 'ADJempmr', 'ADJempr.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) + +# ifdef SHORTWAVE_HEATING +C Commented out since only works when Qsw is active +c CALL DUMP_ADJ_XY(Qsw%d, dumRL, 'ADJqsw ', 'ADJqsw.', +c & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif + ENDIF C----------------------------------------------------------------------- -#endif /* ndef ALLOW_OPENAD */ +C---Various packages and parameters C----------------------------------------------------------------------- +# ifdef ALLOW_BOTTOMDRAG_CONTROL + CALL DUMP_ADJ_XY(dumRS, BottomDragFld%d, + & 'ADJbtdrg','ADJbottomdrag.', + & 11, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_GGL90 + CALL DUMP_ADJ_XYZ(dumRS, GGL90TKE%d, 'ADJtke90', 'ADJggl90tke.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_DIFFKR_CONTROL + CALL DUMP_ADJ_XYZ(dumRS, DiffKr%d, 'ADJdifkr', 'ADJdiffkr.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# if ( defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM ) + CALL DUMP_ADJ_XYZ(dumRS, GM_inpK3dGM%d, 'ADJkapgm', 'ADJkapgm.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# if ( defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI ) + CALL DUMP_ADJ_XYZ(dumRS, GM_inpK3dRedi%d, 'ADJkapre', + & 'ADJkapredi.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif -C-- NOW NMC output +# ifdef ALLOW_EDDYPSI_CONTROL + CALL DUMP_ADJ_XYZ_UV( + & EddyPsiX%d,dumRL,'ADJepsix','ADJeddipsix.', + & EddyPsiY%d,dumRL,'ADJepsiy','ADJeddipsiy.', + & 33, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + CALL DUMP_ADJ_XY(dumRS, shiTransCoeffT%d, + & 'ADJshict','ADJshict.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) + CALL DUMP_ADJ_XY(dumRS, shiTransCoeffS%d, + & 'ADJshics','ADJshict.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# else + CALL DUMP_ADJ_XY(dumRS, shiCDragFld%d, + & 'ADJshicd','ADJshicd.', + & 12, doDump, dumpAdRecMn, myTime, myIter,myThid) +# endif +# endif + +# ifdef ALLOW_DEPTH_CONTROL + CALL DUMP_ADJ_XYZ( + & hFacC%d,dumRL,'ADJhFacC','ADJhFacC.', + & 11, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ_UV( + & hFacW%d,dumRL,'ADJhFacW','ADJhFacW.', + & hFacS%d,dumRL,'ADJhFacS','ADJhFacS.', + & 33, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ( + & recip_hFacC%d,dumRL,'ADJrhFcC','ADJrecip_hFacC.', + & 11, doDump, dumpAdRecMn, myTime, myIter, myThid) + CALL DUMP_ADJ_XYZ_UV( + & recip_hFacW%d,dumRL,'ADJrhFcW','ADJrecip_hFacW.', + & recip_hFacS%d,dumRL,'ADJrhFcS','ADJrecip_hFacS.', + & 33, doDump, dumpAdRecMn, myTime, myIter, myThid) +# endif /* ALLOW_DEPTH_CONTROL */ + +#endif /* ALLOW_OPENAD */ +C======================================================================= +C-- Dump TAF AD-variable to NetCdF files +C======================================================================= + IF ( doDump ) THEN #ifndef ALLOW_OPENAD #ifdef ALLOW_MNC IF (useMNC .AND. autodiff_mnc) THEN @@ -845,14 +453,6 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) CALL MNC_CW_RL_W('D','adstate',0,0,'adFu', var2Du, myThid) CALL MNC_CW_RL_W('D','adstate',0,0,'adFv', var2Dv, myThid) -#ifdef ALLOW_SST0_CONTROL - CALL COPY_ADVAR_OUTP( adSST, dumRL, var2Du, 1, 11, myThid ) - CALL MNC_CW_RL_W('D','adstate',0,0,'adSST', var2Du, myThid) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL COPY_ADVAR_OUTP( adSSS, dumRL, var2Du, 1, 11, myThid ) - CALL MNC_CW_RL_W('D','adstate',0,0,'adSSS', var2Du, myThid) -#endif #ifdef ALLOW_BOTTOMDRAG_CONTROL CALL COPY_ADVAR_OUTP( dumRS, adBottomDragFld, & var2Du, 1, 12, myThid ) @@ -887,12 +487,6 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) CALL MNC_CW_RS_W('D','adstate',0,0,'adFu', adfu, myThid) CALL MNC_CW_RS_W('D','adstate',0,0,'adFv', adfv, myThid) -#ifdef ALLOW_SST0_CONTROL - CALL MNC_CW_RS_W('D','adstate',0,0,'adSST', adsst, myThid) -#endif -#ifdef ALLOW_SSS0_CONTROL - CALL MNC_CW_RS_W('D','adstate',0,0,'adSSS', adsss, myThid) -#endif #ifdef ALLOW_BOTTOMDRAG_CONTROL CALL MNC_CW_RL_W('D','adstate',0,0, & 'adBottomDrag', adbottomdragfld, myThid) @@ -903,11 +497,22 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) #endif #ifdef ALLOW_KAPGM_CONTROL CALL MNC_CW_RL_W('D','adstate',0,0, - & 'adkapgm', adkapgm, myThid) + & 'adkapgm', adKapGM, myThid) #endif #ifdef ALLOW_KAPREDI_CONTROL CALL MNC_CW_RL_W('D','adstate',0,0, - & 'adkapredi', adkapredi, myThid) + & 'adkapredi', adKapRedi, myThid) +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + CALL MNC_CW_RL_W('D','adstate',0,0, + & 'adshict', adshiTransCoeffT, myThid) + CALL MNC_CW_RL_W('D','adstate',0,0, + & 'adshics', adshiTransCoeffS, myThid) +# else + CALL MNC_CW_RL_W('D','adstate',0,0, + & 'adshicd', adshiCDragFld, myThid) +# endif #endif ENDIF C endif mnc @@ -915,10 +520,13 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) #endif /* ALLOW_MNC */ #endif /* ALLOW_OPENAD */ -#ifdef ALLOW_EXF -cph IF ( useEXF ) CALL EXF_AD_DUMP( myTime, myIter, myThid ) -#endif + CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF + +C======================================================================= +C-- Output AD-variable & fill Diagnostics with pkg specific interface +C======================================================================= #ifdef ALLOW_SEAICE IF ( useSEAICE ) & CALL SEAICE_AD_DUMP( myTime, myIter, myThid ) @@ -929,10 +537,6 @@ SUBROUTINE ADDUMMY_IN_STEPPING( myTime, myIter, myThid ) & CALL PTRACERS_AD_DUMP( myTime, myIter, myThid ) #endif - CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) - - ENDIF - #endif /* ALLOW_AUTODIFF_MONITOR */ #endif /* ALLOW_ADJOINT_RUN */ diff --git a/pkg/autodiff/adjoint_ecco b/pkg/autodiff/adjoint_ecco deleted file mode 100644 index b15398b486..0000000000 --- a/pkg/autodiff/adjoint_ecco +++ /dev/null @@ -1,243 +0,0 @@ -SHELL = /bin/tcsh -RM = rm -f -LOC = $(PWD) -TAMC = /data43/tamc/tamc -DEST = . -SOURCE_CODE = ../bin -BASE = .. -AMCFLAGS = -e -adjoint - - -DIFF_FLAGS = -module objfunc \ - -input 'xx_theta xx_salt \ - xx_hfl xx_sfl xx_tauu xx_tauv ' \ - -output 'fc' - -AMCFLAG = $(AMCFLAGS) $(DIFF_FLAGS) -l list_uv -admark ad - - -# Source files for the MITgcmUV -SRC_MODEL = $(BASE)/packages/autodiff/read_write.flow \ - $(BASE)/packages/autodiff/read_write_fld.flow \ - $(BASE)/packages/autodiff/read_write_rec.flow \ - $(BASE)/packages/autodiff/cg2d.flow \ - $(BASE)/packages/autodiff/initialisation.flow \ - $(BASE)/packages/autodiff/diags.flow \ - $(BASE)/packages/autodiff/eesupp.flow \ - $(BASE)/packages/autodiff/active_file.flow \ - $(BASE)/packages/autodiff/write_state.flow \ - $(BASE)/packages/autodiff/exch_ad.flow \ - $(BASE)/packages/autodiff/global_sum_ad.flow \ - $(BASE)/packages/autodiff/mdsio.flow \ - \ - $(SOURCE_CODE)/exch_ad.f \ - $(SOURCE_CODE)/global_sum_ad.f \ - $(SOURCE_CODE)/active_file_ad.f \ - \ - $(SOURCE_CODE)/calc_buoyancy.f \ - $(SOURCE_CODE)/calc_common_factors.f \ - $(SOURCE_CODE)/calc_diffusivity.f \ - $(SOURCE_CODE)/calc_div_ghat.f \ - $(SOURCE_CODE)/calc_grad_eta_surf.f \ - $(SOURCE_CODE)/calc_gs.f \ - $(SOURCE_CODE)/calc_gt.f \ - $(SOURCE_CODE)/calc_isoslopes.f \ - $(SOURCE_CODE)/calc_mom_rhs.f \ - $(SOURCE_CODE)/calc_phi_hyd.f \ - $(SOURCE_CODE)/comm_stats.f \ - $(SOURCE_CODE)/config_summary.f \ - $(SOURCE_CODE)/convect.f \ - $(SOURCE_CODE)/correction_step.f \ - $(SOURCE_CODE)/different_multiple.f \ - $(SOURCE_CODE)/do_gterm_blocking_exchanges.f \ - $(SOURCE_CODE)/do_the_model_io.f \ - $(SOURCE_CODE)/dynamics.f \ - $(SOURCE_CODE)/external_forcing.f \ - $(SOURCE_CODE)/find_rho.f \ - $(SOURCE_CODE)/freeze.f \ - $(SOURCE_CODE)/get_offline_fields.f \ - $(SOURCE_CODE)/impldiff.f \ - $(SOURCE_CODE)/ini_cartesian_grid.f \ - $(SOURCE_CODE)/ini_cg2d.f \ - $(SOURCE_CODE)/ini_communication_patterns.f \ - $(SOURCE_CODE)/ini_cori.f \ - $(SOURCE_CODE)/ini_depths.f \ - $(SOURCE_CODE)/ini_fields.f \ - $(SOURCE_CODE)/ini_forcing.f \ - $(SOURCE_CODE)/ini_grid.f \ - $(SOURCE_CODE)/ini_masks_etc.f \ - $(SOURCE_CODE)/ini_predictor.f \ - $(SOURCE_CODE)/ini_procs.f \ - $(SOURCE_CODE)/ini_salt.f \ - $(SOURCE_CODE)/ini_spherical_polar_grid.f \ - $(SOURCE_CODE)/ini_theta.f \ - $(SOURCE_CODE)/ini_threading_environment.f \ - $(SOURCE_CODE)/ini_uvel.f \ - $(SOURCE_CODE)/ini_vertical_grid.f \ - $(SOURCE_CODE)/ini_vvel.f \ - $(SOURCE_CODE)/initialise_varia.f \ - $(SOURCE_CODE)/load_external_fields.f \ - $(SOURCE_CODE)/modeldata_example.f \ - $(SOURCE_CODE)/plot_field.f \ - $(SOURCE_CODE)/solve_for_pressure.f \ - $(SOURCE_CODE)/state_summary.f \ - $(SOURCE_CODE)/timeaver_1fld_xyz.f \ - $(SOURCE_CODE)/timeaver_2fld_xyz.f \ - $(SOURCE_CODE)/timeaver_final_xy.f \ - $(SOURCE_CODE)/timeaver_final_xyz.f \ - $(SOURCE_CODE)/timeaver_ini_xy.f \ - $(SOURCE_CODE)/timeaver_ini_xyz.f \ - $(SOURCE_CODE)/timeaver_inter_xy.f \ - $(SOURCE_CODE)/timeaver_inter_xyz.f \ - $(SOURCE_CODE)/timestep.f \ - \ - $(SOURCE_CODE)/cost_averagesfields.f \ - $(SOURCE_CODE)/cost_averagesfinal.f \ - $(SOURCE_CODE)/cost_averagesflags.f \ - $(SOURCE_CODE)/cost_averagesinit.f \ - $(SOURCE_CODE)/cost_final.f \ - $(SOURCE_CODE)/cost_forcing.f \ - $(SOURCE_CODE)/cost_geoid.f \ - $(SOURCE_CODE)/cost_heatflux.f \ - $(SOURCE_CODE)/cost_hyd.f \ - $(SOURCE_CODE)/cost_initvaria.f \ - $(SOURCE_CODE)/cost_merstress.f \ - $(SOURCE_CODE)/cost_readers.f \ - $(SOURCE_CODE)/cost_readsstfields.f \ - $(SOURCE_CODE)/cost_readtopex.f \ - $(SOURCE_CODE)/cost_readtopexmean.f \ - $(SOURCE_CODE)/cost_salt.f \ - $(SOURCE_CODE)/cost_saltflux.f \ - $(SOURCE_CODE)/cost_ssh.f \ - $(SOURCE_CODE)/cost_theta.f \ - $(SOURCE_CODE)/cost_zonstress.f \ - \ - $(SOURCE_CODE)/ctrl_getheatflux.f \ - $(SOURCE_CODE)/ctrl_getmerstress.f \ - $(SOURCE_CODE)/ctrl_getrec.f \ - $(SOURCE_CODE)/ctrl_getsaltflux.f \ - $(SOURCE_CODE)/ctrl_getzonstress.f \ - $(SOURCE_CODE)/ctrl_map.f \ - $(SOURCE_CODE)/ctrl_state2xxall.f \ - $(SOURCE_CODE)/ctrl_state2xxhfl.f \ - $(SOURCE_CODE)/ctrl_state2xxsalt.f \ - $(SOURCE_CODE)/ctrl_state2xxsfl.f \ - $(SOURCE_CODE)/ctrl_state2xxtauu.f \ - $(SOURCE_CODE)/ctrl_state2xxtauv.f \ - $(SOURCE_CODE)/ctrl_state2xxtheta.f \ - $(SOURCE_CODE)/ctrl_xx2stateall.f \ - $(SOURCE_CODE)/ctrl_xx2statehfl.f \ - $(SOURCE_CODE)/ctrl_xx2statesalt.f \ - $(SOURCE_CODE)/ctrl_xx2statesfl.f \ - $(SOURCE_CODE)/ctrl_xx2statetauu.f \ - $(SOURCE_CODE)/ctrl_xx2statetauv.f \ - $(SOURCE_CODE)/ctrl_xx2statetheta.f \ - \ - $(SOURCE_CODE)/ecco_main.f \ - \ - $(SOURCE_CODE)/ymds_daily.f \ - $(SOURCE_CODE)/ymds_integrate.f \ - $(SOURCE_CODE)/ymds_monthly.f \ - $(SOURCE_CODE)/ymds_postdaily.f \ - $(SOURCE_CODE)/ymds_postmonthly.f \ - $(SOURCE_CODE)/ymds_poststep.f \ - $(SOURCE_CODE)/ymds_postyearly.f \ - $(SOURCE_CODE)/ymds_predaily.f \ - $(SOURCE_CODE)/ymds_premonthly.f \ - $(SOURCE_CODE)/ymds_prestep.f \ - $(SOURCE_CODE)/ymds_preyearly.f \ - $(SOURCE_CODE)/ymds_step.f \ - $(SOURCE_CODE)/ymds_yearly.f \ - \ - $(SOURCE_CODE)/exf_bulkcdn.f \ - $(SOURCE_CODE)/exf_bulkqsat.f \ - $(SOURCE_CODE)/exf_bulkrhn.f \ - $(SOURCE_CODE)/exf_getffields.f \ - $(SOURCE_CODE)/exf_getffieldsrec.f \ - $(SOURCE_CODE)/exf_getforcing.f \ - $(SOURCE_CODE)/exf_getsaltclim.f \ - $(SOURCE_CODE)/exf_getsaltclimlambda.f \ - $(SOURCE_CODE)/exf_getsaltclimrec.f \ - $(SOURCE_CODE)/exf_getsssclim.f \ - $(SOURCE_CODE)/exf_getsssclimlambda.f \ - $(SOURCE_CODE)/exf_getsssclimrec.f \ - $(SOURCE_CODE)/exf_getsstclim.f \ - $(SOURCE_CODE)/exf_getsstclimlambda.f \ - $(SOURCE_CODE)/exf_getsstclimrec.f \ - $(SOURCE_CODE)/exf_getsurfacefluxes.f \ - $(SOURCE_CODE)/exf_gettempclim.f \ - $(SOURCE_CODE)/exf_gettempclimlambda.f \ - $(SOURCE_CODE)/exf_gettempclimrec.f \ - $(SOURCE_CODE)/exf_mapfields.f \ - $(SOURCE_CODE)/exf_readatmprecip.f \ - $(SOURCE_CODE)/exf_readatmqh.f \ - $(SOURCE_CODE)/exf_readatmtemp.f \ - $(SOURCE_CODE)/exf_readheatflux.f \ - $(SOURCE_CODE)/exf_readlwflux.f \ - $(SOURCE_CODE)/exf_readmerstress.f \ - $(SOURCE_CODE)/exf_readmerwind.f \ - $(SOURCE_CODE)/exf_readsaltclim.f \ - $(SOURCE_CODE)/exf_readsaltflux.f \ - $(SOURCE_CODE)/exf_readsssclim.f \ - $(SOURCE_CODE)/exf_readsstclim.f \ - $(SOURCE_CODE)/exf_readswflux.f \ - $(SOURCE_CODE)/exf_readtempclim.f \ - $(SOURCE_CODE)/exf_readzonstress.f \ - $(SOURCE_CODE)/exf_readzonwind.f \ - $(SOURCE_CODE)/exf_relaxsalt.f \ - $(SOURCE_CODE)/exf_relaxsss.f \ - $(SOURCE_CODE)/exf_relaxsst.f \ - $(SOURCE_CODE)/exf_relaxtheta.f \ - $(SOURCE_CODE)/exf_swapffields.f \ - \ - $(SOURCE_CODE)/cal_addtime.f \ - $(SOURCE_CODE)/cal_checkdate.f \ - $(SOURCE_CODE)/cal_compdates.f \ - $(SOURCE_CODE)/cal_convdate.f \ - $(SOURCE_CODE)/cal_copydate.f \ - $(SOURCE_CODE)/cal_daysformonth.f \ - $(SOURCE_CODE)/cal_dayspermonth.f \ - $(SOURCE_CODE)/cal_fulldate.f \ - $(SOURCE_CODE)/cal_getdate.f \ - $(SOURCE_CODE)/cal_getmonthsrec.f \ - $(SOURCE_CODE)/cal_intdays.f \ - $(SOURCE_CODE)/cal_intmonths.f \ - $(SOURCE_CODE)/cal_intsteps.f \ - $(SOURCE_CODE)/cal_intyears.f \ - $(SOURCE_CODE)/cal_isleap.f \ - $(SOURCE_CODE)/cal_monthsforyear.f \ - $(SOURCE_CODE)/cal_monthsperyear.f \ - $(SOURCE_CODE)/cal_nstepday.f \ - $(SOURCE_CODE)/cal_numints.f \ - $(SOURCE_CODE)/cal_printdate.f \ - $(SOURCE_CODE)/cal_printerror.f \ - $(SOURCE_CODE)/cal_stepsforday.f \ - $(SOURCE_CODE)/cal_stepsperday.f \ - $(SOURCE_CODE)/cal_subdates.f \ - $(SOURCE_CODE)/cal_timeinterval.f \ - $(SOURCE_CODE)/cal_timepassed.f \ - $(SOURCE_CODE)/cal_timestamp.f \ - $(SOURCE_CODE)/cal_toseconds.f \ - $(SOURCE_CODE)/cal_weekday.f \ - \ - $(SOURCE_CODE)/sphere.f - - - -#-------------------------------------------------------- -# rules -#-------------------------------------------------------- - -adcode: - cd $(DEST) ; cat $(SRC_MODEL) >! tamc_code_ecco.f -admodel: - cd $(DEST) ; $(TAMC) $(TAMCFLAG) tamc_code_ecco.f > tamc_ecco.prot & -adchange: - adjoint_ecco_sed.com >! tamc_code_ecco_sed_ad.f ; \ - cp ../model/src/adjoint_model.F \ - ../model/src/adjoint_model_template.F ; \ - cat tamc_code_ecco_sed_ad.f >> ../model/src/adjoint_model.F -adrestore: - mv ../model/src/adjoint_model_template.F \ - ../model/src/adjoint_model.F -adall: adcode admodel diff --git a/pkg/autodiff/adread_adwrite.F b/pkg/autodiff/adread_adwrite.F index afb444cde2..3f4cb56dbc 100644 --- a/pkg/autodiff/adread_adwrite.F +++ b/pkg/autodiff/adread_adwrite.F @@ -5,14 +5,23 @@ C ================================================================== C -C ad_read_write.F: routines to handle the I/O of the TAMC generated -C code. All files are direct access files. +C adread_adwrite.F: routines to handle the I/O of the TAF/TAMC +C generated code. All files are direct access files. C Routines: -C o ADREAD - Read data from file. -C o ADWRITE - Write data to file. +C o ADREAD - Read RL/RS data from file. +C o ADWRITE - Write RL/RS data to file. C +C Note on short real variables (when _RS expands to real*4): +C ADREAD/ADWRITE handles this case properly as in F77 only addresses +C are passed to the subroutine. The size-parameter determines +C correctly how the passed array var is passed to +C MDS_READ/WRITE_TAPE. Some compiler/flag combinations that check +C for subroutine argument consistency will complain about a real*4 +C array being passed to a real*8 array, but this can be avoided by +C adding this file to the list of NOOPTFILES with appropriate +C NOOPTFLAGS in the build-options file. C -C The following input veriables are used throughout in the argument +C The following input variables are used throughout in the argument C lists: C C name - character @@ -42,9 +51,9 @@ C For further details on this see the TAMC Users Manual, Appendix B, C User defined Storage Subroutines. C -C TAMC does not provide the two leading arguments myThid and myIter -C when compiling the MITgcmUV code. Instead the is a sed script avail- -C able that does change the TAMC-generated adjoint code. +C TAF does not provide the leading argument myThid when compiling +C the MITgcmUV code. Instead there is a sed script available that +C changes the TAF-generated adjoint code. C C Only the master thread is allowed to write data and only gobal C model arrays are allowed to be written be the subsequent routines. @@ -55,7 +64,7 @@ C ================================================================== CBOP -C !ROUTINE: adread +C !ROUTINE: ADREAD C !INTERFACE: SUBROUTINE ADREAD( I myThid, @@ -66,8 +75,7 @@ SUBROUTINE ADREAD( O var, I size, I length, - I irec - & ) + I irec ) C !DESCRIPTION: \bv C ================================================================== @@ -75,7 +83,7 @@ SUBROUTINE ADREAD( C ================================================================== C o Read direct access file. C A call to this routine implies an open-read-close sequence -C since it uses the MITgcmUV i/o routine MDSREADVECTOR. Only +C since it uses the MITgcmUV i/o routine MDS_READ_TAPE. Only C the master thread reads the data. Otherwise each thread would C read from file. C started: Christian Eckert eckert@mit.edu 30-Jun-1999 @@ -91,12 +99,15 @@ SUBROUTINE ADREAD( #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "ctrl.h" -#include "optim.h" +#ifdef ALLOW_CTRL +# include "ctrl.h" +# include "optim.h" +#endif +C- OpenAD: this header is not converted to a module --> go after the others #include "AUTODIFF.h" C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == +C myThid :: number of the thread or instance of the program. C name :: extended tape name. C len :: number of characters in name. C tid :: tape identifier. @@ -104,25 +115,22 @@ SUBROUTINE ADREAD( C var :: values to be stored. C size :: size in bytes of the type of variable var. C length :: dimension of the variable stored on the tape. -C myThid :: number of the thread or instance of the program. C irec :: record number to be written. - INTEGER myThid CHARACTER*(*) name INTEGER len INTEGER tid INTEGER vid + real*8 var(*) INTEGER size INTEGER length INTEGER irec - real*8 var(*) C !FUNCTIONS: INTEGER ILNBLNK EXTERNAL ILNBLNK C !LOCAL VARIABLES: -C == local variables == CHARACTER*(MAX_LEN_FNAM) fname CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER filePrec @@ -180,41 +188,38 @@ SUBROUTINE ADREAD( #ifdef ALLOW_AUTODIFF_WHTAPEIO IF ( useWHTapeIO ) THEN -cc if (n2d*length2d.EQ.length) then +cc IF (n2d*length2d.EQ.length) THEN DO i2d=1,n2d - if (tapeFileUnit.EQ.0) THEN + IF (tapeFileUnit.EQ.0) THEN jrec=irec - else + ELSE tapeFileCounter=tapeFileCounter+1 jrec=tapeFileCounter+tapeMaxCounter*(irec-1) - if (tapeFileCounter.GT.tapeMaxCounter) stop - endif + IF (tapeFileCounter.GT.tapeMaxCounter) THEN + WRITE(msgBuf,'(A,2I5)') + & 'ADREAD: tapeFileCounter > tapeMaxCounter ', + & tapeFileCounter, tapeMaxCounter + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'for file ', fname(1:lenLoc) + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R ADREAD' + ENDIF + ENDIF j2d=(i2d-1)*length2d+1 - call mds_read_whalos(fname,lenLoc,filePrec,tapeFileUnit, + CALL MDS_READ_WHALOS(fname,lenLoc,filePrec,tapeFileUnit, & 1,var(j2d),jrec,tapeSingleCpuIO,tapeBufferIO,myThid) ENDDO -cc else -C The other case actually does not (and should not) occur within the main loop, -C where we only store global arrays (i.e. with i,j,bi,bj indices) to disk. -C At init and final time it is always be possible to recompute or store in -C memory without much trouble or computational cost. -C -C Presently there are three instances where non-global arrays are stored to disk: -C (a) the one instance when onetape is used, to store myTime, which is of no effect. -C In the_main_loop, we switch onetape to memory tape if ALLOW_AUTODIFF_WHTAPEIO -C (b) the two instances when tapelev_ini_bibj_k is used (in convective -C _adjustment_ini.F and cost_drifter.F) are disabled at compile time if -C ALLOW_AUTODIFF_WHTAPEIO. So is the definition of tapelev_ini_bibj_k, -C which is not supported with ALLOW_AUTODIFF_WHTAPEIO (side-note: -C tapelev_ini_bibj_k is likely unsafe with mdsreadvector/mdsreadvector) -C -C The issue could be revisited if needed. -C But for now we stop if any otehr instance is met. +cc ELSE +C The other case actually does not (and should not) occur within the +C main loop, where we only store global arrays (i.e. with i,j,bi,bj +C indices) to disk. At init and final time it is always possible to +C recompute or store in memory without much trouble or computational +C cost. cc WRITE(msgBuf,'(3A)') -cc & 'ADWRITE: ',name,'was not saved to tape.' +cc & 'ADREAD: ', name, ' was not saved to tape.' cc CALL PRINT_ERROR( msgBuf, myThid ) -cc STOP 'ABNORMAL END: S/R ADWRITE' -cc endif +cc STOP 'ABNORMAL END: S/R ADREAD' +cc ENDIF ELSE #else @@ -252,7 +257,7 @@ SUBROUTINE ADREAD( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: adwrite +C !ROUTINE: ADWRITE C !INTERFACE: SUBROUTINE ADWRITE( I myThid, @@ -263,8 +268,7 @@ SUBROUTINE ADWRITE( I var, I size, I length, - I irec - & ) + I irec ) C !DESCRIPTION: \bv C ================================================================== @@ -272,7 +276,7 @@ SUBROUTINE ADWRITE( C ================================================================== C o Write to direct access file. C A call to this routine implies an open-read-close sequence -C since it uses the MITgcmUV i/o routine MDSREADVECTOR. Only +C since it uses the MITgcmUV i/o routine MDS_WRITE_TAPE. Only C the master thread writes the data. Otherwise each thread would C write to file. This would result in an excessive waste of C disk space. @@ -289,12 +293,15 @@ SUBROUTINE ADWRITE( #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "ctrl.h" -#include "optim.h" +#ifdef ALLOW_CTRL +# include "ctrl.h" +# include "optim.h" +#endif +C- OpenAD: this header is not converted to a module --> go after the others #include "AUTODIFF.h" C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == +C myThid :: number of the thread or instance of the program. C name :: extended tape name. C len :: number of characters in name. C tid :: tape identifier. @@ -302,25 +309,22 @@ SUBROUTINE ADWRITE( C var :: values to be stored. C size :: size in bytes of the type of variable var. C length :: dimension of the variable stored on the tape. -C myThid :: number of the thread or instance of the program. C irec :: record number to be written. - INTEGER myThid CHARACTER*(*) name INTEGER len INTEGER tid INTEGER vid + real*8 var(*) INTEGER size INTEGER length INTEGER irec - real*8 var(*) C !FUNCTIONS: INTEGER ILNBLNK EXTERNAL ILNBLNK C !LOCAL VARIABLES: -C == local variables == CHARACTER*(MAX_LEN_FNAM) fname CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER filePrec @@ -379,35 +383,54 @@ SUBROUTINE ADWRITE( #ifdef ALLOW_AUTODIFF_WHTAPEIO IF ( useWHTapeIO ) THEN -cc if (n2d*length2d.EQ.length) then +cc IF (n2d*length2d.EQ.length) THEN DO i2d=1,n2d - if (tapeFileUnit.EQ.0) THEN + IF (tapeFileUnit.EQ.0) THEN jrec=irec - else - tapeFileCounter=tapeFileCounter+1 - jrec=tapeFileCounter+tapeMaxCounter*(irec-1) - if (tapeFileCounter.GT.tapeMaxCounter) then - write(msgBuf,'(A,2I5)') - & 'ADWRITE: tapeFileCounter > tapeMaxCounter ', - & tapeFileCounter, tapeMaxCounter - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) - write(msgBuf,'(2A)') 'for file ', fname(1:lenLoc) - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) - STOP 'in S/R ADWRITE' - endif - endif + ELSE + tapeFileCounter = tapeFileCounter+1 + jrec = tapeFileCounter+tapeMaxCounter*(irec-1) + IF ( tapeFileCounter.GT.tapeMaxCounter ) THEN + WRITE(msgBuf,'(2A,I6,A,I6,A)') 'ADWRITE: ', + & 'tapeFileCounter (=',tapeFileCounter, + & ') > tapeMaxCounter (= nWh =', tapeMaxCounter, ')' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(3A)') 'ADWRITE: ', + & ' for file: ', fname(1:lenLoc) + CALL PRINT_ERROR( msgBuf, myThid ) +C Here, we cannot determine how many tapeFiles we need, so we print +C this rather unspecific instruction. + WRITE(msgBuf,'(2A)') 'ADWRITE: ', + & '==> Need to increase "nWh" in: MDSIO_BUFF_WH.h' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'ADWRITE: Tip to find lowest', + & ' allowed "nWh": setting debugLevel >= 3' + CALL PRINT_ERROR( msgBuf , myThid ) + WRITE(msgBuf,'(2A)') 'ADWRITE: will report ', + & '"tapeFileCounter" to STDOUT (can grep for)' + CALL PRINT_ERROR( msgBuf , myThid ) + STOP 'ABNORMAL END: S/R ADWRITE' + ENDIF +#ifdef ALLOW_DEBUG + IF ( debugLevel.GE.debLevC ) THEN +C Print tapeFileCounter to help find minimum tapeMaxCounter=nWh value + WRITE(msgBuf,'(A,I6)') 'ADWRITE: tapeFileCounter =', + & tapeFileCounter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF +#endif + ENDIF j2d=(i2d-1)*length2d+1 - call mds_write_whalos(fname,lenLoc,filePrec,tapeFileUnit, + CALL MDS_WRITE_WHALOS(fname,lenLoc,filePrec,tapeFileUnit, & 1,var(j2d),jrec,tapeSingleCpuIO,tapeBufferIO,myThid) ENDDO -cc else -cc write(msgBuf,'(3A)') +cc ELSE +cc WRITE(msgBuf,'(3A)') cc & 'ADWRITE: ',fname(1:lenLoc),'was not read from tape.' -cc call print_message( msgBuf, errorMessageUnit, +cc CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, cc & SQUEEZE_RIGHT , myThid) -cc endif +cc ENDIF ELSE #else diff --git a/pkg/autodiff/adread_adwrite_i.F b/pkg/autodiff/adread_adwrite_i.F new file mode 100644 index 0000000000..9901c29c0b --- /dev/null +++ b/pkg/autodiff/adread_adwrite_i.F @@ -0,0 +1,249 @@ +#include "AUTODIFF_OPTIONS.h" + +C ================================================================== +C +C adread_adwrite_i.F: routines to handle the I/O of the TAF/TAMC +C code for integer fields. All files are direct +C generated code or integer fields. All files +C are direct access files. +C Routines: +C o ADREAD_I - Read INT data from file. +C o ADWRITE_I - Write INT data to file. +C +C see adread_adwrite.F for more explanation. +C +C The following input variables are used throughout in the argument +C lists: +C +C name - character +C On entry, name is the extended tape name. +C len - integer +C On entry, len is the number of characters in name. +C tid - integer +C On entry, tid identifies the tape. +C vid - integer +C On entry, vid identifies the variable to be stored on +C the tape. +C var - real array of dimension length +C On entry, var contains the values to be stored. +C var must not be changed. +C size - integer +C On entry, size is the size in bytes of the type of +C variable var. +C length - integer +C On entry, length is the dimension of the variable +C stored on the tape. +C irec - integer +C On entry, irec is the record number to be written. +C myThid - integer +C On entry, myThid is the number of the thread or +C instance of the program. +C +C For further details on this see the TAMC Users Manual, Appendix B, +C User defined Storage Subroutines. +C +C TAF does not provide the leading argument myThid when compiling +C the MITgcmUV code. Instead there is a sed script available that +C changes the TAF-generated adjoint code. +C +C Only the master thread is allowed to write data and only gobal +C model arrays are allowed to be written be the subsequent routines. +C Tiled data are to be stored in common blocks. This implies that at +C least a two level checkpointing for the adjoint code has to be +C available. +C +C ================================================================== + +CBOP +C !ROUTINE: ADREAD_I +C !INTERFACE: + SUBROUTINE ADREAD_I( + I myThid, + I name, + I len, + I tid, + I vid, + O ivar, + I size, + I length, + I irec ) + +C !DESCRIPTION: \bv +C ================================================================== +C SUBROUTINE ADREAD_I +C ================================================================== +C o read from direct access file, INTEGER version. +C The strategy is to read an real*8 field with ADREAD resl*8 version +C and convert to INTEGER +C ================================================================== +C SUBROUTINE ADREAD_I +C ================================================================== +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C myThid :: number of the thread or instance of the program. +C name :: extended tape name. +C len :: number of characters in name. +C tid :: tape identifier. +C vid :: identifies the variable to be stored on tape. +C ivar :: values to be stored. +C size :: size in bytes of the type of variable var. +C length :: dimension of the variable stored on the tape. +C irec :: record number to be written. + INTEGER myThid + CHARACTER*(*) name + INTEGER len + INTEGER tid + INTEGER vid + INTEGER ivar(*) + INTEGER size + INTEGER length + INTEGER irec + +C !LOCAL VARIABLES: + INTEGER k, lsize, length2d +C 2D fields only + PARAMETER ( length2d = (sNx+2*OLx)*(sNy+2*OLy)*nSx*nSy ) + real*8 var(length2d) + CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + +#ifdef ALLOW_DEBUG + IF ( debugMode ) CALL DEBUG_ENTER('ADREAD_I',myThid) +#endif + + IF ( length .GT. length2d ) THEN + WRITE(msgBuf,'(A,I9,A,I9)') + & 'ADREAD_I: length = ', length,' > length2d = ', length2d + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R ADREAD_I' + ENDIF + lsize = 8 + CALL ADREAD( + I myThid, + I name, + I len, + I tid, + I vid, + O var, + I lsize, + I length, + I irec ) + + DO k = 1,length + ivar(k) = NINT(var(k)) + ENDDO + +#ifdef ALLOW_DEBUG + IF ( debugMode ) CALL DEBUG_LEAVE('ADREAD_I',myThid) +#endif + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: ADWRITE_I +C !INTERFACE: + SUBROUTINE ADWRITE_I( + I myThid, + I name, + I len, + I tid, + I vid, + I ivar, + I size, + I length, + I irec ) + +C !DESCRIPTION: \bv +C ================================================================== +C SUBROUTINE ADWRITE_I +C ================================================================== +C o Write to direct access file, INTEGER version. +C The strategy is to convert field to real*8 and use the +C ADWRITE real*8 version. +C ================================================================== +C SUBROUTINE ADWRITE_I +C ================================================================== +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C myThid :: number of the thread or instance of the program. +C name :: extended tape name. +C len :: number of characters in name. +C tid :: tape identifier. +C vid :: identifies the variable to be stored on tape. +C ivar :: values to be stored. +C size :: size in bytes of the type of variable var. +C length :: dimension of the variable stored on the tape. +C irec :: record number to be written. + INTEGER myThid + CHARACTER*(*) name + INTEGER len + INTEGER tid + INTEGER vid + INTEGER ivar(*) + INTEGER size + INTEGER length + INTEGER irec + +C !LOCAL VARIABLES: + INTEGER k, lsize, length2d + PARAMETER ( length2d = (sNx+2*OLx)*(sNy+2*OLy)*nSx*nSy ) + real*8 var(length2d) + CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + +#ifdef ALLOW_DEBUG + IF ( debugMode ) CALL DEBUG_ENTER('ADWRITE_I',myThid) +#endif + + IF ( length .GT. length2d ) THEN + WRITE(msgBuf,'(A,I9,A,I9)') + & 'ADWRITE_I: length = ',length,' > length2d = ',length2d + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R ADWRITE_I' + ENDIF + + DO k = 1,length +C no automatic conversion +c var(k) = DFLOAT(ivar(k)) +C let compiler do the type conversion + var(k) = ivar(k) + ENDDO + + lsize = 8 + CALL ADWRITE( + I myThid, + I name, + I len, + I tid, + I vid, + I var, + I lsize, + I length, + I irec ) + +#ifdef ALLOW_DEBUG + IF ( debugMode ) CALL DEBUG_LEAVE('ADWRITE_I',myThid) +#endif + + RETURN + END diff --git a/pkg/autodiff/autodiff_inadmode.flow b/pkg/autodiff/autodiff_inadmode.flow index 1dcedc73e4..afdd0cd62d 100644 --- a/pkg/autodiff/autodiff_inadmode.flow +++ b/pkg/autodiff/autodiff_inadmode.flow @@ -1,10 +1,10 @@ C /==========================================================\ C | SUBROUTINE AUTODIFF_INADMODE_SET | C \==========================================================/ -cadj SUBROUTINE autodiff_inadmode_set INPUT = 1 +cadj SUBROUTINE autodiff_inadmode_set INPUT = 1,2,3 cadj SUBROUTINE autodiff_inadmode_set OUTPUT = cadj SUBROUTINE autodiff_inadmode_set ACTIVE = -cadj SUBROUTINE autodiff_inadmode_set DEPEND = 1 +cadj SUBROUTINE autodiff_inadmode_set DEPEND = 1,2,3 cadj SUBROUTINE autodiff_inadmode_set REQUIRED cadj SUBROUTINE autodiff_inadmode_set INFLUENCED cadj SUBROUTINE autodiff_inadmode_set ADNAME = @@ -15,10 +15,10 @@ CADJ & g_autodiff_inadmode_set C /==========================================================\ C | SUBROUTINE AUTODIFF_INADMODE_UNSET | C \==========================================================/ -cadj SUBROUTINE autodiff_inadmode_unset INPUT = 1 +cadj SUBROUTINE autodiff_inadmode_unset INPUT = 1,2,3 cadj SUBROUTINE autodiff_inadmode_unset OUTPUT = cadj SUBROUTINE autodiff_inadmode_unset ACTIVE = -cadj SUBROUTINE autodiff_inadmode_unset DEPEND = 1 +cadj SUBROUTINE autodiff_inadmode_unset DEPEND = 1,2,3 cadj SUBROUTINE autodiff_inadmode_unset REQUIRED cadj SUBROUTINE autodiff_inadmode_unset INFLUENCED cadj SUBROUTINE autodiff_inadmode_unset ADNAME = diff --git a/pkg/autodiff/autodiff_inadmode_set.F b/pkg/autodiff/autodiff_inadmode_set.F index 9f555dc98b..a272be2f4a 100644 --- a/pkg/autodiff/autodiff_inadmode_set.F +++ b/pkg/autodiff/autodiff_inadmode_set.F @@ -1,18 +1,23 @@ #include "AUTODIFF_OPTIONS.h" - SUBROUTINE AUTODIFF_INADMODE_SET( myThid ) + SUBROUTINE AUTODIFF_INADMODE_SET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE AUTODIFF_INADMODE_SET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid RETURN diff --git a/pkg/autodiff/autodiff_inadmode_set_ad.F b/pkg/autodiff/autodiff_inadmode_set_ad.F index f4442f47ea..249e85acf5 100644 --- a/pkg/autodiff/autodiff_inadmode_set_ad.F +++ b/pkg/autodiff/autodiff_inadmode_set_ad.F @@ -3,11 +3,12 @@ # include "CTRL_OPTIONS.h" #endif - SUBROUTINE ADAUTODIFF_INADMODE_SET( myThid ) + SUBROUTINE ADAUTODIFF_INADMODE_SET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE ADAUTODIFF_INADMODE_SET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" @@ -21,22 +22,39 @@ SUBROUTINE ADAUTODIFF_INADMODE_SET( myThid ) #ifdef ALLOW_CTRL #include "ctrl.h" #endif +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid + +C !LOCAL VARIABLES: CHARACTER*(MAX_LEN_MBUF) msgBuf - inAdMode = inAdTrue +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS + IF ( useDiag4AdjOutp ) THEN + CALL DIAGNOSTICS_SWITCH_ONOFF( myTime, myIter, myThid ) + ENDIF +# endif /* ALLOW_DIAGNOSTICS */ +#endif /* ALLOW_AUTODIFF_MONITOR */ + + inAdMode = .TRUE. useKPP = useKPPinAdMode useGMRedi = useGMRediInAdMode useSEAICE = useSEAICEinAdMode useGGL90 = useGGL90inAdMode useSALT_PLUME = useSALT_PLUMEinAdMode -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) - ctrlSmoothCorrel2D = useSmoothCorrel2DinAdMode -#endif #ifdef ALLOW_SEAICE IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN SEAICEuseFREEDRIFT = .NOT.SEAICEuseFREEDRIFTinFwdMode @@ -80,14 +98,6 @@ SUBROUTINE ADAUTODIFF_INADMODE_SET( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) - WRITE(msgBuf,'(A,L5)') - & 'S/R ADAUTODIFF_INADMODE_SET: ctrlSmoothCorrel2D =', - & ctrlSmoothCorrel2D - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, myThid ) -#endif - #ifdef ALLOW_SEAICE IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN WRITE(msgBuf,'(2A,L5)') 'S/R ADAUTODIFF_INADMODE_SET: ', diff --git a/pkg/autodiff/autodiff_inadmode_set_g.F b/pkg/autodiff/autodiff_inadmode_set_g.F index 2fae3e6f3a..838d01d45a 100644 --- a/pkg/autodiff/autodiff_inadmode_set_g.F +++ b/pkg/autodiff/autodiff_inadmode_set_g.F @@ -1,10 +1,11 @@ #include "AUTODIFF_OPTIONS.h" - SUBROUTINE G_AUTODIFF_INADMODE_SET( myThid ) + SUBROUTINE G_AUTODIFF_INADMODE_SET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE G_ADAUTODIFF_INADMODE_SET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" @@ -12,11 +13,14 @@ SUBROUTINE G_AUTODIFF_INADMODE_SET( myThid ) #include "PARAMS.h" #include "AUTODIFF_PARAMS.h" -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid -cph inAdmode = inAdTrue inAdmode = .FALSE. RETURN diff --git a/pkg/autodiff/autodiff_inadmode_unset.F b/pkg/autodiff/autodiff_inadmode_unset.F index 011f6782b9..194bee5bb9 100644 --- a/pkg/autodiff/autodiff_inadmode_unset.F +++ b/pkg/autodiff/autodiff_inadmode_unset.F @@ -1,18 +1,23 @@ #include "AUTODIFF_OPTIONS.h" - SUBROUTINE AUTODIFF_INADMODE_UNSET( myThid ) + SUBROUTINE AUTODIFF_INADMODE_UNSET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE AUTODIFF_INADMODE_UNSET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid RETURN diff --git a/pkg/autodiff/autodiff_inadmode_unset_ad.F b/pkg/autodiff/autodiff_inadmode_unset_ad.F index 98bda33d80..8361b52e54 100644 --- a/pkg/autodiff/autodiff_inadmode_unset_ad.F +++ b/pkg/autodiff/autodiff_inadmode_unset_ad.F @@ -3,11 +3,12 @@ # include "CTRL_OPTIONS.h" #endif - SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myThid ) + SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE ADAUTODIFF_INADMODE_UNSET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" @@ -21,22 +22,45 @@ SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myThid ) #ifdef ALLOW_CTRL #include "ctrl.h" #endif +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid + +C !LOCAL VARIABLES: CHARACTER*(MAX_LEN_MBUF) msgBuf - inAdMode = inAdFalse +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS + LOGICAL modelEnd +C --- Write the fields out here + IF ( useDiag4AdjOutp ) THEN +C --- Grab modelEnd, necessary input for diagnostics routines + modelEnd = myTime.EQ.startTime .OR. myIter.EQ.nIter0 + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + CALL DIAGNOSTICS_WRITE_ADJ( modelEnd, myTime, myIter, myThid ) + CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF +# endif /* ALLOW_DIAGNOSTICS */ +#endif /* ALLOW_AUTODIFF_MONITOR */ + + inAdMode = .FALSE. useKPP = useKPPinFwdMode useGMRedi = useGMRediInFwdMode useSEAICE = useSEAICEinFwdMode useGGL90 = useGGL90inFwdMode useSALT_PLUME = useSALT_PLUMEinFwdMode -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) - ctrlSmoothCorrel2D = useSmoothCorrel2DinFwdMode -#endif #ifdef ALLOW_SEAICE IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN SEAICEuseFREEDRIFT = SEAICEuseFREEDRIFTinFwdMode @@ -49,7 +73,7 @@ SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myThid ) C SIregFacInFw = UNSET_RL by default, so we need to check this here IF ( SIregFacInFw .NE. UNSET_RL ) SINegFac = SIregFacInFw #endif /* ALLOW_SEAICE */ - viscFacAdj=1. _d 0 + viscFacAdj=viscFacInFw IF ( debugLevel.GE.debLevC ) THEN WRITE(msgBuf,'(A,L5)') @@ -79,14 +103,6 @@ SUBROUTINE ADAUTODIFF_INADMODE_UNSET( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) - WRITE(msgBuf,'(A,L5)') - & 'S/R ADAUTODIFF_INADMODE_UNSET: ctrlSmoothCorrel2D =', - & ctrlSmoothCorrel2D - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, myThid ) -#endif - #ifdef ALLOW_SEAICE IF ( SEAICEuseFREEDRIFTswitchInAd ) THEN WRITE(msgBuf,'(2A,L5)') 'S/R ADAUTODIFF_INADMODE_UNSET: ', diff --git a/pkg/autodiff/autodiff_inadmode_unset_g.F b/pkg/autodiff/autodiff_inadmode_unset_g.F index 0b012e6ce5..70016d7213 100644 --- a/pkg/autodiff/autodiff_inadmode_unset_g.F +++ b/pkg/autodiff/autodiff_inadmode_unset_g.F @@ -1,10 +1,11 @@ #include "AUTODIFF_OPTIONS.h" - SUBROUTINE G_AUTODIFF_INADMODE_UNSET( myThid ) + SUBROUTINE G_AUTODIFF_INADMODE_UNSET( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE G_AUTODIFF_INADMODE_UNSET C *==========================================================* +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" @@ -12,11 +13,14 @@ SUBROUTINE G_AUTODIFF_INADMODE_UNSET( myThid ) #include "PARAMS.h" #include "AUTODIFF_PARAMS.h" -C == Routine arguments == -C myThid :: my Thread Id number +C !INPUT/OUTPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter INTEGER myThid -cph inAdMode = inAdFalse inAdMode = .FALSE. RETURN diff --git a/pkg/autodiff/autodiff_ini_model_io.F b/pkg/autodiff/autodiff_ini_model_io.F index 455f4ba0e2..161459818e 100644 --- a/pkg/autodiff/autodiff_ini_model_io.F +++ b/pkg/autodiff/autodiff_ini_model_io.F @@ -47,9 +47,14 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid ) EXTERNAL ILNBLNK C !LOCAL VARIABLES: +#ifndef HAVE_SYSTEM CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif CHARACTER*(MAX_LEN_FNAM) namBuf - INTEGER iL, pIL, myLev + INTEGER iL, pIL +#ifdef ALLOW_AUTODIFF_WHTAPEIO + INTEGER myLev +#endif CEOP c initialize ad dump record number (used only if dumpAdByRec is true) @@ -137,7 +142,7 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid ) & 'coordinates','XC YC RC iter', myThid) CALL MNC_CW_ADD_VNAME('adS', 'Cen_xy_Hn__C__t', 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adS','units','[cost]/[psu]', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('adS','units','[cost]/[g/kg]', myThid) CALL MNC_CW_ADD_VATTR_TEXT('adS','long_name', & 'adjoint salinity', myThid) CALL MNC_CW_ADD_VATTR_TEXT('adS', @@ -189,26 +194,6 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid ) CALL MNC_CW_ADD_VATTR_TEXT('adFv', & 'coordinates','XC YC RC iter', myThid) -#ifdef ALLOW_SST0_CONTROL - CALL MNC_CW_ADD_VNAME( 'adSST', 'Cen_xy_Hn__-__t', 3,4, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSST', - & 'units','[cost]/[degC]', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSST','long_name', - & 'adjoint sea_surface_temperature', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSST', - & 'coordinates','XC YC RC iter', myThid) -#endif - -#ifdef ALLOW_SSS0_CONTROL - CALL MNC_CW_ADD_VNAME( 'adSSS', 'Cen_xy_Hn__-__t', 3,4, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSSS', - & 'units','[cost]/[psu]', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSSS','long_name', - & 'adjoint sea_surface_salinity', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('adSSS', - & 'coordinates','XC YC RC iter', myThid) -#endif - #ifdef ALLOW_BOTTOMDRAG_CONTROL CALL MNC_CW_ADD_VNAME('adBottomDrag', 'Cen_xy_Hn__-__t', & 3,4, myThid) @@ -365,7 +350,7 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid ) # ifdef ALLOW_CLIMSSS_RELAXATION CALL MNC_CW_ADD_VNAME('adclimsss', 'Cen_xy_Hn__-__t', 3,4, myThid) CALL MNC_CW_ADD_VATTR_TEXT('adclimsss', - & 'units','[cost]/[ppt]', myThid) + & 'units','[cost]/[g/kg]', myThid) CALL MNC_CW_ADD_VATTR_TEXT('adclimsss','long_name', & 'adjoint sea surface salinity', myThid) CALL MNC_CW_ADD_VATTR_TEXT('adclimsss', @@ -400,7 +385,7 @@ SUBROUTINE AUTODIFF_INI_MODEL_IO( myThid ) CALL MNC_CW_ADD_VATTR_TEXT('adhsnow', & 'coordinates','XC YC RC iter', myThid) c -# ifdef SEAICE_ALLOW_DYNAMICS +# ifdef SEAICE_CGRID CALL MNC_CW_ADD_VNAME('aduice', 'U_xy_Hn__-__t', 3,4, myThid) CALL MNC_CW_ADD_VATTR_TEXT('aduice', & 'units','[cost]/[m/s]', myThid) diff --git a/pkg/autodiff/autodiff_init_varia.F b/pkg/autodiff/autodiff_init_varia.F index 3a71ea3548..b7b392fdfc 100644 --- a/pkg/autodiff/autodiff_init_varia.F +++ b/pkg/autodiff/autodiff_init_varia.F @@ -35,7 +35,9 @@ SUBROUTINE AUTODIFF_INIT_VARIA( myThid ) C bi,bj :: tile indices C i,j,k :: Loop counters INTEGER bi, bj +#ifdef ALLOW_EP_FLUX INTEGER i, j, k +#endif CEOP C-- Scalar fields @@ -49,8 +51,8 @@ SUBROUTINE AUTODIFF_INIT_VARIA( myThid ) C- 3D arrays #ifdef ALLOW_EP_FLUX DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx EfluxY(i,j,k,bi,bj) = 0. EfluxP(i,j,k,bi,bj) = 0. ENDDO @@ -58,22 +60,6 @@ SUBROUTINE AUTODIFF_INIT_VARIA( myThid ) ENDDO #endif -#if (defined (ALLOW_AUTODIFF_INIT_OLD) && defined (ECCO_CTRL_DEPRECATED)) -C- 2D arrays - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx -#ifdef EXACT_CONSERV - dEtaHdt(i,j,bi,bj) = 0. _d 0 - PmEpR(i,j,bi,bj) = 0. _d 0 -cph hDivFlow(i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_EXF - EmPmR(i,j,bi,bj) = 0. _d 0 -#endif - ENDDO - ENDDO -#endif - ENDDO ENDDO diff --git a/pkg/autodiff/autodiff_readparms.F b/pkg/autodiff/autodiff_readparms.F index 9e0b737f48..0a4a6f72bb 100644 --- a/pkg/autodiff/autodiff_readparms.F +++ b/pkg/autodiff/autodiff_readparms.F @@ -1,4 +1,7 @@ #include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_MOM_COMMON +# include "MOM_COMMON_OPTIONS.h" +#endif /* ALLOW_MOM_COMMON */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP 0 @@ -16,6 +19,13 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) #include "EEPARAMS.h" #include "PARAMS.h" #include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_GENERIC_ADVDIFF +# include "GAD.h" +#endif/* ALLOW_GENERIC_ADVDIFF */ +#ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE_PARAMS.h" +#endif /* ALLOW_SEAICE */ C !INPUT PARAMETERS: INTEGER myThid @@ -29,16 +39,24 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit INTEGER errCount +#ifdef ALLOW_GENERIC_ADVDIFF + LOGICAL validAdvScheme +#endif /* ALLOW_GENERIC_ADVDIFF */ +C retired parameter + INTEGER nRetired + LOGICAL useSmoothCorrel2DinAdMode NAMELIST /AUTODIFF_PARM01/ & dumpAdVarExch, mon_AdVarExch, & dumpAdByRec, + & useApproxAdvectionInAdMode, & useKPPinAdMode, useGGL90inAdMode, & useGMRediInAdMode, useSALT_PLUMEinAdMode, & useSEAICEinAdMode, useSmoothCorrel2DinAdMode, - & inAdExact, SEAICEapproxLevInAd, viscFacInAd, - & SIregFacInAd, SIregFacInFw, - & SEAICEuseFREEDRIFTswitchInAd, SEAICEuseDYNAMICSswitchInAd + & inAdExact, SEAICEapproxLevInAd, + & viscFacInAd, viscFacInFw, SIregFacInAd, SIregFacInFw, + & SEAICEuseFREEDRIFTswitchInAd, SEAICEuseDYNAMICSswitchInAd, + & cg2dFullAdjoint IF ( .NOT.useAUTODIFF ) THEN C- pkg AUTODIFF is not used @@ -66,8 +84,11 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) useSEAICEinAdMode = .TRUE. useGGL90inAdMode = .TRUE. useSALT_PLUMEinAdMode = .TRUE. + cg2dFullAdjoint = .FALSE. inAdExact = .TRUE. + useApproxAdvectionInAdMode = .FALSE. SEAICEapproxLevInAd = 0 + viscFacInFw = 1. _d 0 viscFacInAd = 1. _d 0 SIregFacInAd = UNSET_RL SIregFacInFw = UNSET_RL @@ -75,7 +96,7 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) C-- pkg/seaice related switches SEAICEuseFREEDRIFTswitchInAd = .FALSE. SEAICEuseDYNAMICSswitchInAd = .FALSE. - useSmoothCorrel2DinAdMode = .TRUE. + useSmoothCorrel2DinAdMode = .TRUE. WRITE(msgBuf,'(A)') 'AUTODIFF_READPARMS: opening data.autodiff' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, @@ -98,13 +119,17 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) CLOSE(iUnit,STATUS='DELETE') #endif /* SINGLE_DISK_IO */ -C-- Flag for approximate adjoint - IF ( inAdExact ) THEN - inAdTrue = .FALSE. - inAdFalse = .FALSE. - ELSE - inAdTrue = .TRUE. - inAdFalse = .FALSE. +C-- Flags for approximate adjoint. Flag inAdMode is set/unset in +C autodiff_inadmode_set/unset_ad.F. Wherever inAdMode is used it requires +C using inAdExact or useApproxAdvectionInAdMode along with it. + IF ( .NOT.inAdExact ) THEN +C reset to recover old behavior, in case that is ever needed + useApproxAdvectionInAdMode = .TRUE. + WRITE(msgBuf,'(A)') '**WARNING** AUTODIFF_READPARMS: '// + & 'resetting useApproxAdvectionInAdMode to .TRUE., '// + & 'because inAdExact=.FALSE.' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) ENDIF inAdMode = .FALSE. @@ -123,6 +148,9 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) useGGL90inAdMode = useGGL90inAdMode .AND. useGGL90 useSALT_PLUMEinAdMode = useSALT_PLUMEinAdMode .AND. useSALT_PLUME +C set this parameter to something we want to be able specify in a namelist + viscFacAdj = viscFacInFw + #ifdef ALLOW_SEAICE c level of approximation in seaice thermodynamics adjoint if (useSEAICEinFwdMode.AND.(.NOT.useSEAICEinAdMode)) @@ -131,7 +159,24 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) & SEAICEapproxLevInAd=MAX(SEAICEapproxLevInAd,0) #endif -C-- Print out some kee parameters : +C- Retired parameters + nRetired = 0 + IF ( .NOT. useSmoothCorrel2DinAdMode ) THEN + nRetired = nRetired + 1 + WRITE(msgBuf,'(A,A)') + & 'S/R AUTODIFF_READPARMS: "useSmoothCorrel2DinAdMode" ', + & 'is no longer allowed in file "data.autodiff"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'S/R AUTODIFF_READPARMS: use "pkg/smooth" instead' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( nRetired .GT. 0 ) THEN + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R AUTODIFF_READPARMS' + ENDIF + +C-- Print out some key parameters : WRITE(msgBuf,'(A)') '// ===================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) @@ -143,6 +188,11 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) & SQUEEZE_RIGHT, myThid ) CALL WRITE_0D_L( inAdExact, INDEX_NONE, & 'inAdExact =', ' /* get an exact adjoint (no approximation) */') + CALL WRITE_0D_L( useApproxAdvectionInAdMode, INDEX_NONE, + & 'useApproxAdvectionInAdMode =',' /* approximate AD-advection */') + CALL WRITE_0D_L( cg2dFullAdjoint, INDEX_NONE, + & 'cg2dFullAdjoint =', + & ' /* use full hand written cg2d adjoint (no approximation) */') CALL WRITE_0D_L( useKPPinAdMode, INDEX_NONE, & 'useKPPinAdMode =', ' /* use KPP in adjoint mode */') CALL WRITE_0D_L( useGMRediInAdMode, INDEX_NONE, @@ -169,6 +219,8 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) & 'dumpAdVarExch =', ' /* control adexch before dumpinp */') CALL WRITE_0D_I( mon_AdVarExch, INDEX_NONE, & 'mon_AdVarExch =', ' /* control adexch before monitor */') + CALL WRITE_0D_RL( viscFacInFw, INDEX_NONE, + & 'viscFacInFw =', ' /* viscosity factor for forward model */') CALL WRITE_0D_RL( viscFacInAd, INDEX_NONE, & 'viscFacInAd =', ' /* viscosity factor for adjoint */') CALL WRITE_0D_RL( SIregFacInAd, INDEX_NONE, @@ -180,6 +232,39 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) & SQUEEZE_RIGHT, myThid ) C-- Check parameters : + IF ( viscFacInAd .NE. 1. _d 0 .OR. viscFacInFw .NE. 1. _d 0 ) THEN +#ifndef AUTODIFF_ALLOW_VISCFACADJ + WRITE(msgBuf,'(2A)') 'AUTODIFF_READPARMS: ', + &'To use viscFacInFw/viscFacInAd, define AUTODIFF_ALLOW_VISCFACADJ' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif /* AUTODIFF_ALLOW_VISCFACADJ */ +#if (!defined ALLOW_3D_VISCAH && !defined ALLOW_3D_VISCA4) + WRITE(msgBuf,'(2A)') 'AUTODIFF_READPARMS: ', + & 'To use viscFacInFw/viscFacInAd, '// + & 'define ALLOW_3D_VISCA4 and/or ALLOW_3D_VISCA4' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif /* ALLOW_3D_VISCA */ +#ifdef ALLOW_3D_VISCAH + IF ( viscAhDfile .EQ. ' ' .AND. viscAhZfile .EQ. ' ' ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** AUTODIFF_READPARMS: ', + & 'For viscFacInFw/viscFacInAd to have any effect, '// + & 'specify at least one of viscAh[D/Z]file' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF +#endif /* ALLOW_3D_VISCAH */ +#ifdef ALLOW_3D_VISCA4 + IF ( viscA4Dfile .EQ. ' ' .AND. viscA4Zfile .EQ. ' ' ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** AUTODIFF_READPARMS: ', + & 'For viscFacInFw/viscFacInAd to have any effect, '// + & 'specify at least one of viscA4[D/Z]file' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF +#endif /* ALLOW_3D_VISCA4 */ + ENDIF #ifdef ALLOW_SEAICE IF ( SEAICEuseFREEDRIFTswitchInAd .AND. .NOT.useSEAICE ) THEN WRITE(msgBuf,'(2A)') 'AUTODIFF_READPARMS: ', @@ -198,6 +283,65 @@ SUBROUTINE AUTODIFF_READPARMS( myThid ) SEAICEuseDYNAMICSswitchInAd = .FALSE. #endif /* ALLOW_SEAICE */ + IF ( useApproxAdvectionInAdMode ) THEN +#ifdef ALLOW_GENERIC_ADVDIFF +C so far this only works for flux limited DST3 scheme + validAdvScheme = .FALSE. + validAdvScheme = validAdvScheme + & .OR. tempAdvScheme.EQ.ENUM_DST3_FLUX_LIMIT + & .OR. saltAdvScheme.EQ.ENUM_DST3_FLUX_LIMIT +#ifdef ALLOW_SEAICE + IF ( useSEAICE ) validAdvScheme = validAdvScheme + & .OR. SEAICEadvScheme .EQ.ENUM_DST3_FLUX_LIMIT + & .OR. SEAICEadvSchArea.EQ.ENUM_DST3_FLUX_LIMIT + & .OR. SEAICEadvSchHeff.EQ.ENUM_DST3_FLUX_LIMIT + & .OR. SEAICEadvSchSnow.EQ.ENUM_DST3_FLUX_LIMIT + & .OR. SEAICEadvSchSalt.EQ.ENUM_DST3_FLUX_LIMIT +#endif /* ALLOW_SEAICE */ + IF ( .NOT. validAdvScheme ) THEN + WRITE(msgBuf,'(3A)') 'AUTODIFF_READPARMS: ', + & 'useApproxAdvectionInAdMode = .TRUE. ', + & 'only makes sense if at least ' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2,A)') 'AUTODIFF_READPARMS: ', + & 'one advection scheme is ', ENUM_DST3_FLUX_LIMIT, + & '. Current settings are:' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'tempAdvScheme = ', tempAdvScheme + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'saltAdvScheme = ', saltAdvScheme + CALL PRINT_ERROR( msgBuf, myThid ) +#ifdef ALLOW_SEAICE + IF ( useSEAICE ) THEN + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'SEAICEadvScheme = ', SEAICEadvScheme + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'SEAICEadvSchArea = ', SEAICEadvSchArea + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'SEAICEadvSchHeff = ', SEAICEadvSchHeff + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'SEAICEadvSchSnow = ', SEAICEadvSchSnow + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I2)') 'AUTODIFF_READPARMS: ', + & 'SEAICEadvSchSalt = ', SEAICEadvSchSalt + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF +#endif /* ALLOW_SEAICE */ + errCount = errCount + 1 + ENDIF +#else + WRITE(msgBuf,'(2A)') 'AUTODIFF_READPARMS: ', + & 'useApproxAdvectionInAdMode=.TRUE. without pkg/generic_advdiff' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif /* ALLOW_GENERIC_ADVDIFF */ + ENDIF + IF ( errCount.GE.1 ) THEN WRITE(msgBuf,'(A,I3,A)') & 'AUTODIFF_READPARMS: detected', errCount,' fatal error(s)' diff --git a/pkg/autodiff/autodiff_restore.F b/pkg/autodiff/autodiff_restore.F index 499a14d6b9..1bbcbd1923 100644 --- a/pkg/autodiff/autodiff_restore.F +++ b/pkg/autodiff/autodiff_restore.F @@ -14,35 +14,34 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) -c ================================================================== -c SUBROUTINE autodiff_restore -c ================================================================== -c -c packing for checkpoint storage -c -c started: Matt Mazloff mmazloff@mit.edu 03-May-2007 -c -c ================================================================== -c SUBROUTINE autodiff_restore -c ================================================================== +C ================================================================== +C SUBROUTINE autodiff_restore +C ================================================================== +C +C packing for checkpoint storage +C +C started: Matt Mazloff mmazloff@mit.edu 03-May-2007 +C +C ================================================================== +C SUBROUTINE autodiff_restore +C ================================================================== IMPLICIT NONE -c == global variables == +C == global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -c************************************** -c These includes are needed for -c AD-checkpointing. -c They provide the fields to be stored. +C************************************** +C These includes are needed for +C AD-checkpointing. +C They provide the fields to be stored. -# include "GRID.h" -# include "DYNVARS.h" -# include "FFIELDS.h" -# include "SURFACE.h" -# include "AUTODIFF.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "SURFACE.h" #ifdef ALLOW_OBCS # include "OBCS_FIELDS.h" @@ -62,33 +61,30 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) # include "ctrl.h" # include "CTRL_OBCS.h" #endif +C it is important that this file is included after SEAICE_SIZE.h +#include "AUTODIFF_STORE.h" -c == routine arguments == -c note: under the multi-threaded model myIter and -c myTime are local variables passed around as routine -c arguments. Although this is fiddly it saves the need to -c impose additional synchronisation points when they are -c updated. -c myThid - thread number for this instance of the routine. +C == routine arguments == +C myThid :: my Thread Id number INTEGER myThid #ifdef ALLOW_AUTODIFF_TAMC -c == local variables == - - INTEGER bi,bj - INTEGER I,J,K - -c-- == end of interface == +C == local variables == +#if ( defined AUTODIFF_USE_STORE_RESTORE || \ + ( defined ALLOW_OBCS && defined AUTODIFF_USE_STORE_RESTORE_OBCS )) + INTEGER bi, bj + INTEGER I, J, K +#endif +C-- == end of interface == #ifdef ALLOW_DEBUG IF ( debugMode ) CALL DEBUG_ENTER('AUTODIFF_RESTORE',myThid) #endif +#ifdef AUTODIFF_USE_STORE_RESTORE C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - -#ifndef AUTODIFF_USE_OLDSTORE_2D C- 2D arrays DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx @@ -122,9 +118,12 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) #endif ENDDO ENDDO -#endif /* AUTODIFF_USE_OLDSTORE_2D */ + ENDDO + ENDDO -#ifndef AUTODIFF_USE_OLDSTORE_3D +C-- Over all tiles + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) C- 3D arrays DO K=1,Nr DO J=1-OLy,sNy+OLy @@ -155,8 +154,6 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) ENDDO ENDDO ENDDO -#endif /* AUTODIFF_USE_OLDSTORE_3D */ - ENDDO ENDDO @@ -251,60 +248,57 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) ENDDO ENDDO ENDDO +#endif /* ALLOW_EXF */ +#ifdef ALLOW_SEAICE C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) C- 2D arrays DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx -# ifdef ALLOW_UWIND_CONTROL - xx_uwind0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,1) - xx_uwind1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,2) -# endif -# ifdef ALLOW_VWIND_CONTROL - xx_vwind0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,3) - xx_vwind1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,4) -# endif -# ifdef ALLOW_ATEMP_CONTROL - xx_atemp0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,5) - xx_atemp1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,6) -# endif -# ifdef ALLOW_AQH_CONTROL - xx_aqh0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,7) - xx_aqh1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,8) -# endif -# ifdef ALLOW_PRECIP_CONTROL - xx_precip0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,9) - xx_precip1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,10) -# endif -# ifdef ALLOW_SNOWPRECIP_CONTROL - xx_snowprecip0(I,J,bi,bj)= StoreCTRLS1(I,J,bi,bj,11) - xx_snowprecip1(I,J,bi,bj)= StoreCTRLS1(I,J,bi,bj,12) -# endif -# ifdef ALLOW_SWFLUX_CONTROL - xx_swflux0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,13) - xx_swflux1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,14) -# endif -# ifdef ALLOW_SWDOWN_CONTROL - xx_swdown0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,15) - xx_swdown1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,16) -# endif -# ifdef ALLOW_LWDOWN_CONTROL - xx_lwdown0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,17) - xx_lwdown1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,18) -# endif -# ifdef ALLOW_APRESSURE_CONTROL - xx_apressure0(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,19) - xx_apressure1(I,J,bi,bj) = StoreCTRLS1(I,J,bi,bj,20) + AREA (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 1) + HEFF (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 2) + HSNOW (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 3) + RUNOFF(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 4) + UICE (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 5) + VICE (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 6) + ZETA (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 7) + ETA (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 8) +# ifdef SEAICE_CGRID + dwatn(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj, 9) +# ifdef SEAICE_ALLOW_BOTTOMDRAG + cbotc(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,10) +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ + stressDivergenceX(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,11) + stressDivergenceY(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,12) +# endif /* SEAICE_CGRID */ +# ifdef SEAICE_ALLOW_EVP + seaice_sigma1 (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,13) + seaice_sigma2 (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,14) + seaice_sigma12 (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,15) +# endif /* SEAICE_ALLOW_EVP */ +# ifdef SEAICE_VARIABLE_SALINITY + HSALT (I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,16) # endif ENDDO ENDDO +C-- this 3D array comes last because it has a variable size nITD + DO K=1,nITD + DO J=1-OLy,sNy+OLy + DO I=1-OLx,sNx+OLx + TICES(I,J,K,bi,bj) = StoreSEAICE(I,J,bi,bj,16+K) + ENDDO + ENDDO + ENDDO +C ENDDO ENDDO -#endif /* ALLOW_EXF */ +#endif /* ALLOW_SEAICE */ -#ifdef ALLOW_OBCS +#endif /* AUTODIFF_USE_STORE_RESTORE */ + +#if ( defined ALLOW_OBCS && defined AUTODIFF_USE_STORE_RESTORE_OBCS ) # ifdef ALLOW_OBCS_NORTH C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) @@ -452,60 +446,14 @@ SUBROUTINE AUTODIFF_RESTORE( myThid ) ENDDO ENDDO # endif /* ALLOW_OBCS_WEST */ -#endif /* ALLOW_OBCS */ - -#ifdef ALLOW_SEAICE -C-- Over all tiles - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) -C- 2D arrays - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - AREA(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,1) - HEFF(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,2) - HSNOW(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,3) -CML TICE(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,4) - RUNOFF(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,5) -# ifdef SEAICE_CGRID - stressDivergenceX(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,14) - stressDivergenceY(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,15) -# endif -# ifdef SEAICE_MULTICATEGORY -cph moved to seaice_ad_check_lev because of extra dim. MULTDIM -cph TICES(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,6) -# endif - UICE(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,7) - VICE(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,8) - ZETA(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,9) - ETA(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,10) -# ifdef SEAICE_CGRID - dwatn(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,11) -# ifdef SEAICE_ALLOW_BOTTOMDRAG - cbotc(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,12) -# endif /* SEAICE_ALLOW_BOTTOMDRAG */ -CML seaicemasku(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,12) -CML seaicemaskv(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,13) -# endif /* SEAICE_CGRID */ -# ifdef SEAICE_ALLOW_EVP - seaice_sigma1(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,16) - seaice_sigma2(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,17) - seaice_sigma12(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,18) -# endif /* SEAICE_ALLOW_EVP */ -# ifdef SEAICE_VARIABLE_SALINITY - HSALT(I,J,bi,bj) = StoreSEAICE(I,J,bi,bj,19) -# endif - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_SEAICE */ +#endif /* ALLOW_OBCS & AUTODIFF_USE_STORE_RESTORE_OBCS */ #ifdef ALLOW_DEBUG IF ( debugMode ) CALL DEBUG_LEAVE('AUTODIFF_RESTORE',myThid) #endif #endif /* ALLOW_AUTODIFF_TAMC */ -c************************************** +C************************************** RETURN END diff --git a/pkg/autodiff/autodiff_store.F b/pkg/autodiff/autodiff_store.F index d18271053b..7349b4592e 100644 --- a/pkg/autodiff/autodiff_store.F +++ b/pkg/autodiff/autodiff_store.F @@ -14,35 +14,34 @@ SUBROUTINE AUTODIFF_STORE( myThid ) -c ================================================================== -c SUBROUTINE autodiff_store -c ================================================================== -c -c packing for checkpoint storage -c -c started: Matt Mazloff mmazloff@mit.edu 03-May-2007 -c -c ================================================================== -c SUBROUTINE autodiff_store -c ================================================================== +C ================================================================== +C SUBROUTINE autodiff_store +C ================================================================== +C +C packing for checkpoint storage +C +C started: Matt Mazloff mmazloff@mit.edu 03-May-2007 +C +C ================================================================== +C SUBROUTINE autodiff_store +C ================================================================== IMPLICIT NONE -c == global variables == +C == global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -c************************************** -c These includes are needed for -c AD-checkpointing. -c They provide the fields to be stored. +C************************************** +C These includes are needed for +C AD-checkpointing. +C They provide the fields to be stored. #include "GRID.h" #include "DYNVARS.h" #include "FFIELDS.h" #include "SURFACE.h" -#include "AUTODIFF.h" #ifdef ALLOW_OBCS # include "OBCS_FIELDS.h" @@ -62,33 +61,31 @@ SUBROUTINE AUTODIFF_STORE( myThid ) # include "ctrl.h" # include "CTRL_OBCS.h" #endif +C it is important that this file is included after SEAICE_SIZE.h +#include "AUTODIFF_STORE.h" -c == routine arguments == -c note: under the multi-threaded model myIter and -c myTime are local variables passed around as routine -c arguments. Although this is fiddly it saves the need to -c impose additional synchronisation points when they are -c updated. -c myThid - thread number for this instance of the routine. +C == routine arguments == +C myThid :: my Thread Id number INTEGER myThid #ifdef ALLOW_AUTODIFF_TAMC -c == local variables == - - INTEGER bi,bj - INTEGER I,J,K +C == local variables == +#if ( defined AUTODIFF_USE_STORE_RESTORE || \ + ( defined ALLOW_OBCS && defined AUTODIFF_USE_STORE_RESTORE_OBCS )) + INTEGER bi, bj + INTEGER I, J, K +#endif -c-- == end of interface == +C-- == end of interface == #ifdef ALLOW_DEBUG IF ( debugMode ) CALL DEBUG_ENTER('AUTODIFF_STORE',myThid) #endif +#ifdef AUTODIFF_USE_STORE_RESTORE C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - -#ifndef AUTODIFF_USE_OLDSTORE_2D C- 2D arrays DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx @@ -132,9 +129,12 @@ SUBROUTINE AUTODIFF_STORE( myThid ) #endif ENDDO ENDDO -#endif /* AUTODIFF_USE_OLDSTORE_2D */ + ENDDO + ENDDO -#ifndef AUTODIFF_USE_OLDSTORE_3D +C-- Over all tiles + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) C- 3D arrays DO K=1,Nr DO J=1-OLy,sNy+OLy @@ -165,8 +165,6 @@ SUBROUTINE AUTODIFF_STORE( myThid ) ENDDO ENDDO ENDDO -#endif /* AUTODIFF_USE_OLDSTORE_3D */ - ENDDO ENDDO @@ -291,90 +289,70 @@ SUBROUTINE AUTODIFF_STORE( myThid ) ENDDO ENDDO ENDDO +#endif /* ALLOW_EXF */ +#ifdef ALLOW_SEAICE C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) C- 2D arrays DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx -# ifdef ALLOW_UWIND_CONTROL - StoreCTRLS1(I,J,bi,bj,1) = xx_uwind0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,2) = xx_uwind1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,1) = 0.0 - StoreCTRLS1(I,J,bi,bj,2) = 0.0 -# endif -# ifdef ALLOW_VWIND_CONTROL - StoreCTRLS1(I,J,bi,bj,3) = xx_vwind0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,4) = xx_vwind1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,3) = 0.0 - StoreCTRLS1(I,J,bi,bj,4) = 0.0 -# endif -# ifdef ALLOW_ATEMP_CONTROL - StoreCTRLS1(I,J,bi,bj,5) = xx_atemp0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,6) = xx_atemp1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,5) = 0.0 - StoreCTRLS1(I,J,bi,bj,6) = 0.0 -# endif -# ifdef ALLOW_AQH_CONTROL - StoreCTRLS1(I,J,bi,bj,7) = xx_aqh0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,8) = xx_aqh1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,7) = 0.0 - StoreCTRLS1(I,J,bi,bj,8) = 0.0 -# endif -# ifdef ALLOW_PRECIP_CONTROL - StoreCTRLS1(I,J,bi,bj,9) = xx_precip0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,10) = xx_precip1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,9) = 0.0 - StoreCTRLS1(I,J,bi,bj,10) = 0.0 -# endif -# ifdef ALLOW_SNOWPRECIP_CONTROL - StoreCTRLS1(I,J,bi,bj,11) = xx_snowprecip0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,12) = xx_snowprecip1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,11) = 0.0 - StoreCTRLS1(I,J,bi,bj,12) = 0.0 -# endif -# ifdef ALLOW_SWFLUX_CONTROL - StoreCTRLS1(I,J,bi,bj,13) = xx_swflux0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,14) = xx_swflux1(I,J,bi,bj) -# else - StoreCTRLS1(I,J,bi,bj,13) = 0.0 - StoreCTRLS1(I,J,bi,bj,14) = 0.0 -# endif -# ifdef ALLOW_SWDOWN_CONTROL - StoreCTRLS1(I,J,bi,bj,15) = xx_swdown0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,16) = xx_swdown1(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 1) = AREA(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 2) = HEFF(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 3) = HSNOW(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 4) = RUNOFF(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 5) = UICE(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 6) = VICE(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 7) = ZETA(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 8) = ETA(I,J,bi,bj) +# ifdef SEAICE_CGRID + StoreSEAICE(I,J,bi,bj, 9) = dwatn(I,J,bi,bj) +# ifdef SEAICE_ALLOW_BOTTOMDRAG + StoreSEAICE(I,J,bi,bj,10) = cbotc(I,J,bi,bj) +# else + StoreSEAICE(I,J,bi,bj,10) = 0.0 +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ + StoreSEAICE(I,J,bi,bj,11) = stressDivergenceX(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj,12) = stressDivergenceY(I,J,bi,bj) # else - StoreCTRLS1(I,J,bi,bj,15) = 0.0 - StoreCTRLS1(I,J,bi,bj,16) = 0.0 -# endif -# ifdef ALLOW_LWDOWN_CONTROL - StoreCTRLS1(I,J,bi,bj,17) = xx_lwdown0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,18) = xx_lwdown1(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj, 9) = 0.0 + StoreSEAICE(I,J,bi,bj,10) = 0.0 + StoreSEAICE(I,J,bi,bj,11) = 0.0 + StoreSEAICE(I,J,bi,bj,12) = 0.0 +# endif /* SEAICE_CGRID */ +# ifdef SEAICE_ALLOW_EVP + StoreSEAICE(I,J,bi,bj,13) = seaice_sigma1(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj,14) = seaice_sigma2(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj,15) = seaice_sigma12(I,J,bi,bj) # else - StoreCTRLS1(I,J,bi,bj,17) = 0.0 - StoreCTRLS1(I,J,bi,bj,18) = 0.0 -# endif -# ifdef ALLOW_APRESSURE_CONTROL - StoreCTRLS1(I,J,bi,bj,19) = xx_apressure0(I,J,bi,bj) - StoreCTRLS1(I,J,bi,bj,20) = xx_apressure1(I,J,bi,bj) + StoreSEAICE(I,J,bi,bj,13) = 0.0 + StoreSEAICE(I,J,bi,bj,14) = 0.0 + StoreSEAICE(I,J,bi,bj,15) = 0.0 +# endif /* SEAICE_ALLOW_EVP */ +# ifdef SEAICE_VARIABLE_SALINITY + StoreSEAICE(I,J,bi,bj,16) = HSALT(I,J,bi,bj) # else - StoreCTRLS1(I,J,bi,bj,19) = 0.0 - StoreCTRLS1(I,J,bi,bj,20) = 0.0 + StoreSEAICE(I,J,bi,bj,16) = 0.0 # endif ENDDO ENDDO +C-- this 3D array comes last because it has a variable size nITD + DO K=1,nITD + DO J=1-OLy,sNy+OLy + DO I=1-OLx,sNx+OLx + StoreSEAICE(I,J,bi,bj,16+K) = TICES(I,J,K,bi,bj) + ENDDO + ENDDO + ENDDO +C ENDDO ENDDO -#endif /* ALLOW_EXF */ +#endif /* ALLOW_SEAICE */ -#ifdef ALLOW_OBCS +#endif /* AUTODIFF_USE_STORE_RESTORE */ + +#if ( defined ALLOW_OBCS && defined AUTODIFF_USE_STORE_RESTORE_OBCS ) # ifdef ALLOW_OBCS_NORTH C-- Over all tiles DO bj = myByLo(myThid), myByHi(myThid) @@ -558,73 +536,14 @@ SUBROUTINE AUTODIFF_STORE( myThid ) ENDDO ENDDO # endif /* ALLOW_OBCS_WEST */ -#endif /* ALLOW_OBCS */ - -#ifdef ALLOW_SEAICE -C-- Over all tiles - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) -C- 2D arrays - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - StoreSEAICE(I,J,bi,bj,1) = AREA(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,2) = HEFF(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,3) = HSNOW(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,4) = 0.0 - StoreSEAICE(I,J,bi,bj,5) = RUNOFF(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,6) = 0.0 -# ifdef SEAICE_CGRID - StoreSEAICE(I,J,bi,bj,14) = stressDivergenceX(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,15) = stressDivergenceY(I,J,bi,bj) -# else - StoreSEAICE(I,J,bi,bj,14) = 0.0 - StoreSEAICE(I,J,bi,bj,15) = 0.0 -# endif - StoreSEAICE(I,J,bi,bj,7) = UICE(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,8) = VICE(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,9) = ZETA(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,10) = ETA(I,J,bi,bj) -# ifdef SEAICE_CGRID - StoreSEAICE(I,J,bi,bj,11) = dwatn(I,J,bi,bj) -# ifdef SEAICE_ALLOW_BOTTOMDRAG - StoreSEAICE(I,J,bi,bj,12) = cbotc(I,J,bi,bj) -# else - StoreSEAICE(I,J,bi,bj,12) = 0.0 -# endif /* SEAICE_ALLOW_BOTTOMDRAG */ -CML StoreSEAICE(I,J,bi,bj,12) = seaicemasku(I,J,bi,bj) -CML StoreSEAICE(I,J,bi,bj,13) = seaicemaskv(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,13) = 0.0 -# else - StoreSEAICE(I,J,bi,bj,11) = 0.0 - StoreSEAICE(I,J,bi,bj,12) = 0.0 - StoreSEAICE(I,J,bi,bj,13) = 0.0 -# endif /* SEAICE_CGRID */ -# ifdef SEAICE_ALLOW_EVP - StoreSEAICE(I,J,bi,bj,16) = seaice_sigma1(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,17) = seaice_sigma2(I,J,bi,bj) - StoreSEAICE(I,J,bi,bj,18) = seaice_sigma12(I,J,bi,bj) -# else - StoreSEAICE(I,J,bi,bj,16) = 0.0 - StoreSEAICE(I,J,bi,bj,17) = 0.0 - StoreSEAICE(I,J,bi,bj,18) = 0.0 -# endif /* SEAICE_ALLOW_EVP */ -# ifdef SEAICE_VARIABLE_SALINITY - StoreSEAICE(I,J,bi,bj,19) = HSALT(I,J,bi,bj) -# else - StoreSEAICE(I,J,bi,bj,19) = 0.0 -# endif - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_SEAICE */ +#endif /* ALLOW_OBCS & AUTODIFF_USE_STORE_RESTORE_OBCS */ #ifdef ALLOW_DEBUG IF ( debugMode ) CALL DEBUG_LEAVE('AUTODIFF_STORE',myThid) #endif #endif /* ALLOW_AUTODIFF_TAMC */ -c************************************** +C************************************** RETURN END diff --git a/pkg/autodiff/autodiff_whtapeio_sync.F b/pkg/autodiff/autodiff_whtapeio_sync.F index b41558d4c5..583d33c3ad 100644 --- a/pkg/autodiff/autodiff_whtapeio_sync.F +++ b/pkg/autodiff/autodiff_whtapeio_sync.F @@ -19,7 +19,9 @@ subroutine autodiff_whtapeio_sync( myLev, myStep, myThid ) # include "AUTODIFF.h" #endif #ifdef ALLOW_WHIO_3D -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "MDSIO_BUFF_WH.h" #endif diff --git a/pkg/autodiff/cg2d.flow b/pkg/autodiff/cg2d.flow index 49b3400067..64758050de 100644 --- a/pkg/autodiff/cg2d.flow +++ b/pkg/autodiff/cg2d.flow @@ -1,21 +1,34 @@ C---------------------------------------- C subroutine cg2d C---------------------------------------- -CADJ SUBROUTINE cg2d ADNAME = cg2d_sad +CADJ SUBROUTINE cg2d ADNAME = cg2d_mad CADJ SUBROUTINE cg2d FTLNAME = cg2d CADJ SUBROUTINE cg2d INPUT = 1,2, 6,7,8 CADJ SUBROUTINE cg2d OUTPUT = 2,3,4,5,6,7 CADJ SUBROUTINE cg2d ACTIVE = 1,2 CADJ SUBROUTINE cg2d DEPEND = 6,7,8 -CADJ SUBROUTINE cg2d COMMON CG2D_I_R INPUT = 1,2,3,4,5,6,7,8 +CADJ SUBROUTINE cg2d COMMON CG2D_I_RS INPUT = 1,2,3,4,5,6 +CADJ SUBROUTINE cg2d COMMON CG2D_I_RS DEPEND = 1,2,3,4,5,6 C---------------------------------------- C subroutine cg2d_sr C---------------------------------------- -CADJ SUBROUTINE cg2d_sr ADNAME = cg2d_sad +CADJ SUBROUTINE cg2d_sr ADNAME = cg2d_mad CADJ SUBROUTINE cg2d_sr FTLNAME = cg2d_sr CADJ SUBROUTINE cg2d_sr INPUT = 1,2, 6,7,8 CADJ SUBROUTINE cg2d_sr OUTPUT = 2,3,4,5,6,7 CADJ SUBROUTINE cg2d_sr ACTIVE = 1,2 CADJ SUBROUTINE cg2d_sr DEPEND = 6,7,8 -CADJ SUBROUTINE cg2d_sr COMMON CG2D_I_R INPUT = 1,2,3,4,5,6,7,8 +CADJ SUBROUTINE cg2d_sr COMMON CG2D_I_RS INPUT = 1,2,3,4,5,6 +CADJ SUBROUTINE cg2d_sr COMMON CG2D_I_RS DEPEND = 1,2,3,4,5,6 + +C---------------------------------------- +C subroutine cg2d_store +C---------------------------------------- +CADJ SUBROUTINE cg2d_store INPUT = 1,2,3 +CADJ SUBROUTINE cg2d_store OUTPUT = 1 +CADJ SUBROUTINE cg2d_store ACTIVE = +CADJ SUBROUTINE cg2d_store DEPEND = 2,3 + +CADJ COMMON cg2d_i_rs ADNAME = adcg2d_i_rs +CADJ COMMON cg2d_i_rs FTLNAME = g_cg2d_i_rs diff --git a/pkg/autodiff/cg2d_mad.F b/pkg/autodiff/cg2d_mad.F new file mode 100644 index 0000000000..ca311d070a --- /dev/null +++ b/pkg/autodiff/cg2d_mad.F @@ -0,0 +1,332 @@ +#include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif + +C-- File cg2d_mad.F: Code for hand-written (manual) adjoint of cg2d +C-- Contents +C-- CG2D_MAD - computes the adjoint of cg2d +C-- CG2D_STORE - saves input field to or restores from a common block + +CBOP +C !ROUTINE: CG2D_MAD +C !INTERFACE: + SUBROUTINE CG2D_MAD( + U cg2d_b_ad, + U cg2d_x_ad, + U numIters, nIterMin, + I myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE CG2D_MAD +C | o Manual ADjoint version of CG2D, the two-dimensional +C | grid problem conjugate-gradient inverter. +C *==========================================================* +C | This routine is called from solve_for_pressure_ad that +C | is generated by TAF/TAMC. We want a self-adjoint cg2d +C | to avoid too many complications, so we provide flow +C | directives in cg2d.flow and add the missing AD +C | contributions manually (hence the name mad=Manuad ADjoint). +C | +C | This routine calls cg2d with reversed order of argumgent +C | cg2d_x_ad and cg2d_b_ad, and sets dependendcies to zero +C | that a non-self-adjoint cg2d would have produced. +C | In addition, when runtime parameter cg2dFullAdjoint = T, +C | it computes sensitivities to matrix coefficients. This +C | makes it the full adjoint of cg2d, only if cg2d converges +C | completely. Otherwise it is an excellent approximation. +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +C === Global data === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) +# include "CG2D.h" +#endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "AUTODIFF_PARAMS.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C cg2d_b_ad :: Adjoint of source term (on input = 0) +C cg2d_x_ad :: Adjoint of the solution +C firstResidual :: the initial residual before any iterations +C minResidualSq :: the lowest residual reached (squared) +C lastResidual :: the actual residual reached +C numIters :: Inp: the maximum number of iterations allowed +C Out: the actual number of iterations used +C nIterMin :: Inp: decide to store (if >=0) or not (if <0) lowest res. sol. +C Out: iteration number corresponding to lowest residual +C myThid :: Thread on which I am working. + _RL cg2d_b_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL cg2d_x_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +c _RL firstResidual, minResidualSq, lastResidual + INTEGER numIters + INTEGER nIterMin + INTEGER myThid + +#ifdef ALLOW_AUTODIFF_TAMC +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) +C directly imported from TAF-generated code, make sure that they are +C consistent with what is found in S/R update_cg2d_ad + _RS aW2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS aS2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS aC2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS pW_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS pS_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS pC_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /ADCG2D_I_RS/ + & aW2d_ad, aS2d_ad, aC2d_ad, pW_ad, pS_ad, pC_ad +#endif /* NONLIN_FRSURF or ALLOW_DEPTH_CONTROL */ + +C !LOCAL VARIABLES: +C === Local variables === +C bi,bj :: tile indices +C i,j :: Loop counters +C cg2d_x :: local copy of cg2d_x to be restored from "tape" + INTEGER i,j,bi,bj + _RL firstResidual, minResidualSq, lastResidual +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) + INTEGER numItersFwd, nIterMinFwd + _RL recip_cg2dNorm + _RL cg2d_x(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif + CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + +C-- mark output of cg2d as being called from here + IF ( debugLevel .GE. debLevZero ) THEN + _BEGIN_MASTER( myThid ) + WRITE(standardMessageUnit,'(A)') + & ' Calling cg2d from S/R CG2D_MAD' + _END_MASTER( myThid ) + ENDIF + +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) +C make local copies because we need them later + numItersFwd = numIters + nIterMinFwd = nIterMin +#endif + +#ifdef ALLOW_SRCG + IF ( useSRCGSolver ) THEN +C-- Call the single reduce CG solver + CALL CG2D_SR( + U cg2d_x_ad, cg2d_b_ad, + O firstResidual, minResidualSq, lastResidual, + U numIters, nIterMin, + I myThid ) + ELSE +#else + IF (.TRUE.) THEN +#endif /* ALLOW_SRCG */ +C-- Call the default CG solver + CALL CG2D( + U cg2d_x_ad, cg2d_b_ad, + O firstResidual, minResidualSq, lastResidual, + U numIters, nIterMin, + I myThid ) + ENDIF + +CML CALL ADEXCH_XY_RL( cg2d_b_ad, myThid ) +CML _EXCH_XY_RL( cg2d_b_ad, myThid ) + +C cg2d_x_ad is reset to zero, because we assume that the solution of +C the self-adjoint solver does not depend in the intial conditions +C so that no sensitivities should be passed back to the caller. + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + cg2d_x_ad(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + +C-- dump CG2D output +C Since there is no clean way in importing myTime into this routine, +C we just call it every timestep but only for a higher debugLevel + IF ( debugLevel .GE. debLevC ) THEN + _BEGIN_MASTER( myThid ) + WRITE(msgBuf,'(A30,1PE23.14)') + & 'CG2D_MAD cg2d_init_res =',firstResidual + CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1) + WRITE(msgBuf,'(A37,2I8)') + & 'CG2D_MAD: cg2d_iters(min,last) =', nIterMin, numIters + CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1) + IF ( minResidualSq.GE.0. ) THEN + minResidualSq = SQRT(minResidualSq) + WRITE(msgBuf,'(A30,1PE23.14)') + & 'CG2D_MAD: cg2d_min_res =',minResidualSq + CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1) + ENDIF + WRITE(msgBuf,'(A30,1PE23.14)') + & 'CG2D_MAD: cg2d_last_res =',lastResidual + CALL PRINT_MESSAGE(msgBuf,standardMessageUnit,SQUEEZE_RIGHT,1) + _END_MASTER( myThid ) + ENDIF + +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) + recip_cg2dNorm = 1.0 _d 0 + IF ( cg2dNorm .NE. 0. _d 0 ) THEN + recip_cg2dNorm = 1./cg2dNorm + ENDIF + + IF ( cg2dFullAdjoint ) THEN +C restore cg2d_x + CALL CG2D_STORE( cg2d_x, .FALSE., myThid ) + +C Compute derivative of coefficient matrix. + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1,sNy + DO i=1,sNx + aC2d_ad(i,j,bi,bj) = aC2d_ad(i,j,bi,bj) + & - cg2d_b_ad(i,j,bi,bj) * cg2d_x(i,j,bi,bj) + & * recip_cg2dNorm + aW2d_ad(i, j,bi,bj) = aW2d_ad(i,j,bi,bj) + & - cg2d_b_ad(i,j,bi,bj) * cg2d_x(i-1,j,bi,bj) + & * recip_cg2dNorm + aW2d_ad(i+1,j,bi,bj) = aW2d_ad(i+1,j,bi,bj) + & - cg2d_b_ad(i,j,bi,bj) * cg2d_x(i+1,j,bi,bj) + & * recip_cg2dNorm + aS2d_ad(i,j, bi,bj) = aS2d_ad(i,j,bi,bj) + & - cg2d_b_ad(i,j,bi,bj) * cg2d_x(i,j-1,bi,bj) + & * recip_cg2dNorm + aS2d_ad(i,j+1,bi,bj) = aS2d_ad(i,j+1,bi,bj) + & - cg2d_b_ad(i,j,bi,bj) * cg2d_x(i,j+1,bi,bj) + & * recip_cg2dNorm +C The sensitivities of preconditioner are something like +C pC_ad = pC_ad + cg2d_z_ad * cg2d_r +C and similar (cg2d_z = preconditioner * cg2d_r). That is, when the +C solver has converged, cg2d_r -> 0 and pC_ad -> 0, unless cg2d_z_ad +C is large, which would mean an instability. Therefore we set the +C preconditioner adjoint to zero. This also reflects the fact, that +C in an ideal world, the preconditioner does not have any effect on +C the solution, but only on the rate of convergence. + pW_ad(i,j,bi,bj) = 0. _d 0 + pS_ad(i,j,bi,bj) = 0. _d 0 + pC_ad(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ELSE +C Initialise AD fields to zero for an adjoint neglecting the +C contributions from the matrix coefficients (default for now). + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + aW2d_ad(i,j,bi,bj) = 0. _d 0 + aS2d_ad(i,j,bi,bj) = 0. _d 0 + aC2d_ad(i,j,bi,bj) = 0. _d 0 + pW_ad (i,j,bi,bj) = 0. _d 0 + pS_ad (i,j,bi,bj) = 0. _d 0 + pC_ad (i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +#endif /* NONLIN_FRSURF or ALLOW_DEPTH_CONTROL */ +#endif /* ALLOW_AUTODIFF_TAMC */ + + RETURN + END + +C--------1---------2---------3---------4---------5---------6---------7-- + +CBOP +C !ROUTINE: CG2D_STORE +C !INTERFACE: + SUBROUTINE CG2D_STORE( + U cg2d_x, + I doStore, + I myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE CG2D_STORE +C | o Hand written tape routine +C *==========================================================* +C | This routine is called from solve_for_pressure to +C | to force TAF to store cg2d_x +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +C === Global data === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C cg2d_x :: The solution to be stored and restored +C doStore :: Store or restore based on the logical +C myThid :: Thread on which I am working. + _RL cg2d_x(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + LOGICAL doStore + INTEGER myThid + +#ifdef ALLOW_AUTODIFF_TAMC +#if ( defined NONLIN_FRSURF || defined ALLOW_DEPTH_CONTROL ) + _RL cg2d_tape(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,nchklev_1) + COMMON /CG2D_TAPE_RL/ cg2d_tape + +C !LOCAL VARIABLES: +C === Local variables === +C bi,bj :: tile indices +C i,j :: Loop counters + INTEGER i,j,bi,bj +CEOP + +C-- mark output of cg2d as being called from here + IF ( debugLevel .GE. debLevZero ) THEN + _BEGIN_MASTER( myThid ) + WRITE(standardMessageUnit,'(A,L1)') + & ' Calling CG2D_STORE with doStore = ', doStore + WRITE(standardMessageUnit,'(A,I6)') + & ' Calling CG2D_STORE with ikey_dynamics=', ikey_dynamics + _END_MASTER( myThid ) + ENDIF + + IF ( doStore ) THEN +C Save input cg2d_x to local common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + cg2d_tape(i,j,bi,bj,ikey_dynamics) = cg2d_x(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSE +C Restore output cg2d_x from local common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + cg2d_x(i,j,bi,bj) = cg2d_tape(i,j,bi,bj,ikey_dynamics) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +#endif /* NONLIN_FRSURF or ALLOW_DEPTH_CONTROL */ +#endif /* ALLOW_AUTODIFF_TAMC */ + + RETURN + END diff --git a/pkg/autodiff/cg2d_sad.F b/pkg/autodiff/cg2d_sad.F deleted file mode 100644 index 530c8902fb..0000000000 --- a/pkg/autodiff/cg2d_sad.F +++ /dev/null @@ -1,126 +0,0 @@ -#include "AUTODIFF_OPTIONS.h" - -CBOP -C !ROUTINE: CG2D_SAD -C !INTERFACE: - SUBROUTINE CG2D_SAD( - U cg2d_b_ad, cg2d_x_ad, - U numIters, nIterMin, - I myThid ) -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE CG2D_SAD -C | o Self-ADjoint version of CG2D, the two-dimensional -C | grid problem conjugate-gradient inverter. -C *==========================================================* -C | This routine is called from solve_for_pressure_ad that -C | is generated by TAF/TAMC. We want a self-adjoint cg2d -C | to avoid too many complications, so we provide flow -C | directives in cg2d.flow and fake it here. -C | This routine calls cg2d with reversed order of argumgent -C | cg2d_x_ad and cg2d_b_ad, and sets dependendcies to zero -C | that a non-self-adjoint cg2d would have produced. -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE -C === Global data === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" - -C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === -C cg2d_b :: The source term or "right hand side" (output: normalised RHS) -C cg2d_x :: The solution (input: first guess) -C firstResidual :: the initial residual before any iterations -C minResidualSq :: the lowest residual reached (squared) -C lastResidual :: the actual residual reached -C numIters :: Inp: the maximum number of iterations allowed -C Out: the actual number of iterations used -C nIterMin :: Inp: decide to store (if >=0) or not (if <0) lowest res. sol. -C Out: iteration number corresponding to lowest residual -C myThid :: Thread on which I am working. - _RL cg2d_b_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL cg2d_x_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -c _RL firstResidual, minResidualSq, lastResidual - INTEGER numIters - INTEGER nIterMin - INTEGER myThid - -#ifdef ALLOW_AUTODIFF_TAMC -#ifdef NONLIN_FRSURF -C directly imported from TAF-generated code, make sure that they are -C consistent with what is found in S/R update_cg2d_ad - _RL aW2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL aS2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL aC2d_ad(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pW_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pS_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pC_ad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - COMMON /CG2D_I_R_AD/ - & aW2d_ad, aS2d_ad, aC2d_ad, pW_ad, pS_ad, pC_ad -#endif /* NONLIN_FRSURF */ - -C !LOCAL VARIABLES: -C === Local variables === -C bi,bj :: tile indices -C i,j :: Loop counters - INTEGER i,j,bi,bj - _RL firstResidual, minResidualSq, lastResidual -CEOP - -C-- mark output of cg2d as being called from here - IF ( debugLevel .GE. debLevZero ) THEN - _BEGIN_MASTER( myThid ) - WRITE(standardmessageunit,'(A)') - & ' Calling cg2d from S/R CG2D_SAD' - _END_MASTER( myThid ) - ENDIF -#ifdef ALLOW_SRCG - IF ( useSRCGSolver ) THEN -C-- Call the single reduce CG solver - CALL CG2D_SR( - U cg2d_x_ad, cg2d_b_ad, - O firstResidual, minResidualSq, lastResidual, - U numIters, nIterMin, - I myThid ) - ELSE -#else - IF (.TRUE.) THEN -#endif /* ALLOW_SRCG */ -C-- Call the default CG solver - CALL CG2D( - U cg2d_x_ad, cg2d_b_ad, - O firstResidual, minResidualSq, lastResidual, - U numIters, nIterMin, - I myThid ) - ENDIF - -C Initialise AD fields to zero. They will not have any effect on -C the solution, because we fake the AD code of cg2d. - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -#ifdef NONLIN_FRSURF - aW2d_ad (i,j,bi,bj) = 0. _d 0 - aS2d_ad (i,j,bi,bj) = 0. _d 0 - aC2d_ad (i,j,bi,bj) = 0. _d 0 - pW_ad (i,j,bi,bj) = 0. _d 0 - pS_ad (i,j,bi,bj) = 0. _d 0 - pC_ad (i,j,bi,bj) = 0. _d 0 -#endif /* NONLIN_FRSURF */ -C Here, cg2d_x_ad is also reset to zero, because we assume that the -C solution of the self-adjoint solver does not depend in the intial -C conditions so that no sensitivities should be passed back to the caller. - cg2d_x_ad(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_AUTODIFF_TAMC */ - - RETURN - END diff --git a/pkg/autodiff/check_lev1_dir_forcing.h b/pkg/autodiff/check_lev1_dir_forcing.h new file mode 100644 index 0000000000..12aeccb873 --- /dev/null +++ b/pkg/autodiff/check_lev1_dir_forcing.h @@ -0,0 +1,114 @@ +C +C store directives for checkpoint level 1 AFTER surface forcing +C has been read +C +C We store surface forcing fields --- if required --- to avoid +C calling load_fields_driver in forward_step_ad. Many of these +C directives are only necessary in specific cases, for example with +C pkg/seaice of pkg/shelfice, but since there are many potential +C cases where these stores may become necessary, we just add them +C here for all forcing fields under the sun. TAF will pick the +C correct directives as they become necessary. +C +CADJ STORE sst = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE sss = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE qnet = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE empmr = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE saltflux = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE fu, fv = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SHORTWAVE_HEATING +CADJ STORE qsw = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ATMOSPHERIC_LOADING +CADJ STORE pload = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_EXF +CADJ STORE uwind = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE vwind = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE wspeed = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE sh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE hflux = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE sflux = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE ustress = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE vstress = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_ATM_TEMP +CADJ STORE atemp = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE aqh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE hs = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE hl = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE lwflux = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE evap = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE precip = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE snowprecip = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SHORTWAVE_HEATING +CADJ STORE swflux = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif +# ifdef ALLOW_DOWNWARD_RADIATION +CADJ STORE swdown = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE lwdown = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ATMOSPHERIC_LOADING +CADJ STORE apressure = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_RUNOFF +CADJ STORE runoff = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_RUNOFTEMP +CADJ STORE runoftemp = comlev1, key = ikey_dynamics, kind = isbyte +# endif +#ifdef ALLOW_SALTFLX +CADJ STORE saltflx = comlev1, key = ikey_dynamics, kind = isbyte +#endif +# ifdef EXF_SEAICE_FRACTION +CADJ STORE exf_iceFraction=comlev1,key=ikey_dynamics, kind = isbyte +# endif +# ifdef EXF_ALLOW_TIDES +CADJ STORE tidePot = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_CLIMSST_RELAXATION +CADJ STORE climsst = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_CLIMSSS_RELAXATION +CADJ STORE climsss = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_CLIMSTRESS_RELAXATION +CADJ STORE climustr = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE climvstr = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif /* ALLOW_EXF */ +#ifdef ALLOW_GEOTHERMAL_FLUX +CADJ STORE geothermalFlux = comlev1, key=ikey_dynamics, kind=isbyte +#endif +# ifdef ALLOW_BLING +CADJ STORE wind = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE atmosP = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE silica = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE fIce = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE inputFe = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE apco2 = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_BLING */ +# ifdef ALLOW_DIC +CADJ STORE wind = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE atmosP = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE silicaSurf = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE fIce = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE inputFe = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE PAR = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE CHL = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_DIC */ +# ifdef ALLOW_CFC +CADJ STORE pisVel = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE atmosP = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE fIce = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_CFC */ +# ifdef ALLOW_CTRL +# ifdef ALLOW_GENTIM2D_CONTROL +C in some cases this also requires storing the surface control +C variables because they are used by packages, e.g. shelfice +CADJ STORE xx_gentim2d = comlev1, key = ikey_dynamics, kind = isbyte +# else +C there is no equivalent to xx_gentim2d for deprecated code so we just +C omit it here +# endif +# endif /* ALLOW_CTRL */ diff --git a/pkg/autodiff/check_lev1_dir_ocephys.h b/pkg/autodiff/check_lev1_dir_ocephys.h new file mode 100644 index 0000000000..fb6e89960c --- /dev/null +++ b/pkg/autodiff/check_lev1_dir_ocephys.h @@ -0,0 +1,195 @@ +C +C Store directives for checkpoint level 1 AFTER do_oceanic_phys +C has been called +C +C This block of store directives is for variables that have been +C computed in do_oceanics_phys. Storing them here avoids calling +C do_oceanic_phys again in forward_step_ad, which should improve +C performance because expensive parts of the model are not +C recomputed (e.g. seaice). +C +CADJ STORE EmPmR = comlev1, key = ikey_dynamics, kind = isbyte +#ifdef EXACT_CONSERV +CADJ STORE PmEpR = comlev1, key = ikey_dynamics, kind = isbyte +#endif +CADJ STORE qsw = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE surfaceForcingU= comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE surfaceForcingV= comlev1, key = ikey_dynamics, kind = isbyte +#ifdef ATMOSPHERIC_LOADING +CADJ STORE phi0surf = comlev1, key = ikey_dynamics, kind = isbyte +#endif +CADJ STORE sIceLoad = comlev1, key = ikey_dynamics, kind = isbyte + +#ifdef ALLOW_OBCS +CADJ STORE salt, theta = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBNs = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_OBCS_STEVENS +CADJ STORE OBNtStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBNsStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBNvStevens = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_STEVENS */ +# endif /* ALLOW_OBCS_NORTH */ + +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBSs = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_OBCS_STEVENS +CADJ STORE OBStStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBSsStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBSvStevens = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_STEVENS */ +# endif /* ALLOW_OBCS_SOUTH */ + +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBEs = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_OBCS_STEVENS +CADJ STORE OBEtStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBEsStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBEuStevens = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_STEVENS */ +# endif /* ALLOW_OBCS_EAST */ + +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBWs = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_OBCS_STEVENS +CADJ STORE OBWtStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBWsStevens = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBWuStevens = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_STEVENS */ +# endif /* ALLOW_OBCS_WEST */ + +# ifdef ALLOW_PTRACERS +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNptr = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_NORTH */ +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSptr = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_SOUTH */ +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEptr = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_EAST */ +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWptr = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_OBCS_WEST */ +# endif /* ALLOW_PTRACERS */ + +# ifdef ALLOW_SEAICE +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBNa = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBNsn = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE OBNsl = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif /* ALLOW_OBCS_NORTH */ +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBSa = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBSsn = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE OBSsl = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif /* ALLOW_OBCS_SOUTH */ +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBEa = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBEsn = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE OBEsl = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif /* ALLOW_OBCS_EAST */ +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWh = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBWa = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE OBWsn = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE OBWsl = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# endif /* ALLOW_OBCS_WEST */ +# endif /* ALLOW_SEAICE */ +#endif /* ALLOW_OBCS */ + +#ifdef ALLOW_DEPTH_CONTROL +CADJ STORE hFacC, hFacS, hFacW +CADJ & = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE recip_hFacC, recip_hFacS, recip_hFacW +CADJ & = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE surfaceForcingU, surfaceForcingV = +CADJ & comlev1, key = ikey_dynamics, kind = isbyte +#endif + +cph the following needed to be moved here from do_oceanic_physics +cph to be visible down the road + +CADJ STORE rhoInSitu = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE surfaceForcingS= comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE surfaceForcingT= comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE IVDConvCount = comlev1, key = ikey_dynamics, kind = isbyte +#ifdef ALLOW_KPP +CADJ STORE adjustColdSST_diag = comlev1, key = ikey_dynamics, +CADJ & kind = isbyte +#endif +#ifdef ALLOW_PTRACERS +CADJ STORE surfaceForcingPTr = comlev1, key = ikey_dynamics, +CADJ & kind = isbyte +#endif + +#ifdef ALLOW_GMREDI +CADJ STORE Kwx = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE Kwy = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE Kwz = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef GM_BOLUS_ADVEC +CADJ STORE GM_PsiX = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE GM_PsiY = comlev1, key = ikey_dynamics, kind = isbyte +# endif +#endif + +#ifdef ALLOW_KPP +CADJ STORE KPPghat = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE KPPfrac = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE KPPdiffKzS = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE KPPdiffKzT = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_SALT_PLUME +CADJ STORE KPPplumefrac = comlev1, key = ikey_dynamics, kind = isbyte +# endif +#endif + +#ifdef ALLOW_GGL90 +CADJ STORE GGL90diffKr = comlev1, key = ikey_dynamics, kind = isbyte +#endif + +#ifdef ALLOW_SALT_PLUME +CADJ STORE SaltPlumeDepth = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE saltPlumeFlux = comlev1, key = ikey_dynamics, kind = isbyte +#endif + +#ifdef ALLOW_DOWN_SLOPE +CADJ STORE DWNSLP_deepK = comlev1, key = ikey_dynamics +CADJ STORE DWNSLP_Transp = comlev1, key = ikey_dynamics, kind = isbyte +#endif + +#ifdef ALLOW_SHELFICE +CADJ STORE kTopC =comlev1, key = ikey_dynamics +CADJ STORE shelficeForcingT=comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE shelficeForcingS=comlev1, key = ikey_dynamics, kind = isbyte +#endif /* ALLOW_SHELFICE */ + +#if (defined NONLIN_FRSURF) || (defined ALLOW_DEPTH_CONTROL) +CADJ STORE theta,salt = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE etaH = comlev1, key = ikey_dynamics, kind = isbyte +# ifdef ALLOW_CD_CODE +CADJ STORE etaNm1 = comlev1, key = ikey_dynamics, kind = isbyte +# endif +# ifdef ALLOW_PTRACERS +CADJ STORE pTracer = comlev1, key = ikey_dynamics, kind = isbyte +# endif /* ALLOW_PTRACERS */ +#endif /* NONLIN_FRSURF or ALLOW_DEPTH_CONTROL */ +#ifdef NONLIN_FRSURF +# ifndef DISABLE_RSTAR_CODE +CADJ STORE rStarExpC = comlev1, key = ikey_dynamics, kind = isbyte +# endif +#endif diff --git a/pkg/autodiff/checkpoint_lev1_directives.h b/pkg/autodiff/checkpoint_lev1_directives.h index d69c603b4a..260c4e77e1 100644 --- a/pkg/autodiff/checkpoint_lev1_directives.h +++ b/pkg/autodiff/checkpoint_lev1_directives.h @@ -24,6 +24,12 @@ CADJ STORE gtNm1, gsNm1 = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE guNm1, gvNm1 = comlev1, key = ikey_dynamics, kind = isbyte #endif +#if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) +CADJ STORE aW2d,aS2d,aC2d= comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE pW, pS, pC = comlev1, key = ikey_dynamics, kind = isbyte +#endif + #ifdef NONLIN_FRSURF CADJ STORE hFac_surfC = comlev1, key = ikey_dynamics, kind = isbyte @@ -33,9 +39,6 @@ CADJ STORE hfac_surfNm1C = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE hfac_surfNm1W = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE hfac_surfNm1S = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE aW2d,aS2d,aC2d= comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE pW, pS, pC = comlev1, key = ikey_dynamics, kind = isbyte - CADJ STORE theta, salt = comlev1, key = ikey_dynamics,kind = isbyte CADJ STORE uVel, vVel = comlev1, key = ikey_dynamics,kind = isbyte @@ -66,10 +69,6 @@ CADJ STORE theta, salt = comlev1, key = ikey_dynamics,kind = isbyte # include "ggl90_ad_check_lev1_dir.h" #endif -#ifdef ALLOW_ECCO -# include "ecco_ad_check_lev1_dir.h" -#endif - #ifdef ALLOW_EXF # include "exf_ad_check_lev1_dir.h" #endif /* ALLOW_EXF undef */ @@ -119,6 +118,7 @@ CADJ STORE pLoad1 = comlev1, key = ikey_dynamics, kind = isbyte #endif #ifdef ALLOW_SEAICE +CADJ STORE phiHydLow = comlev1, key = ikey_dynamics, kind = isbyte # include "seaice_ad_check_lev1_dir.h" #endif @@ -138,10 +138,6 @@ CADJ STORE pLoad1 = comlev1, key = ikey_dynamics, kind = isbyte # include "offline_ad_check_lev1_dir.h" #endif /* ALLOW_OFFLINE */ -#ifdef ALLOW_GCHEM -# include "gchem_ad_check_lev1_dir.h" -#endif - #ifdef ALLOW_PTRACERS # include "ptracers_ad_check_lev1_dir.h" #endif @@ -178,7 +174,7 @@ CADJ STORE cMeanThetaUVel = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE cMeanThetaVVel = comlev1, key = ikey_dynamics, kind = isbyte #endif -#if (defined (ALLOW_COST_ATLANTIC) || defined (ALLOW_COST_ATLANTIC_HEAT)) +#ifdef ALLOW_COST_ATLANTIC_HEAT CADJ STORE theta = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE uVel = comlev1, key = ikey_dynamics, kind = isbyte CADJ STORE vVel = comlev1, key = ikey_dynamics, kind = isbyte @@ -188,17 +184,4 @@ CADJ STORE vVel = comlev1, key = ikey_dynamics, kind = isbyte # ifdef ALLOW_DOWN_SLOPE CADJ STORE ETA, ZETA = comlev1, key = ikey_dynamics, kind = isbyte # endif -C Note: code under option ALLOW_HFLUXM_CONTROL or ANNUAL_BALANCE is not -C standard MITgcm code (-> untested and not maintained). -# ifdef ALLOW_HFLUXM_CONTROL -CADJ STORE Qnetm = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE ETA, ZETA = comlev1, key = ikey_dynamics, kind = isbyte -# endif -# ifdef ANNUAL_BALANCE -CADJ STORE balance_itcount = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE atmfw_tilesum = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE qnet_tilesum = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE qnet_corr = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE empmr_corr = comlev1, key = ikey_dynamics, kind = isbyte -# endif /* ANNUAL_BALANCE */ #endif diff --git a/pkg/autodiff/checkpoint_lev2_directives.h b/pkg/autodiff/checkpoint_lev2_directives.h index 0ae178ef03..bdfc70f26f 100644 --- a/pkg/autodiff/checkpoint_lev2_directives.h +++ b/pkg/autodiff/checkpoint_lev2_directives.h @@ -3,7 +3,12 @@ c store directives for checkpoint level 2 c c created: heimbach@mit.edu 10-Jan-2002 c -#ifdef AUTODIFF_USE_OLDSTORE_2D +#ifdef AUTODIFF_USE_STORE_RESTORE +c +CADJ STORE StoreDynVars2D = tapelev2, key = ilev_2 +CADJ STORE StoreDynVars3D = tapelev2, key = ilev_2 +c +#else c CADJ STORE etan = tapelev2, key = ilev_2 #ifndef EXCLUDE_FFIELDS_LOAD @@ -40,14 +45,6 @@ CADJ STORE dEtaHdt = tapelev2, key = ilev_2 CADJ STORE PmEpR = tapelev2, key = ilev_2 #endif c -#else /* ndef AUTODIFF_USE_OLDSTORE_2D */ -c -CADJ STORE StoreDynVars2D = tapelev2, key = ilev_2 -c -#endif /* AUTODIFF_USE_OLDSTORE_2D */ -c -#ifdef AUTODIFF_USE_OLDSTORE_3D -c #ifdef ALLOW_ADAMSBASHFORTH_3 CADJ STORE gtnm = tapelev2, key = ilev_2 CADJ STORE gsnm = tapelev2, key = ilev_2 @@ -66,11 +63,7 @@ CADJ STORE vvel = tapelev2, key = ilev_2 CADJ STORE wvel = tapelev2, key = ilev_2 CADJ STORE totphihyd = tapelev2, key = ilev_2 c -#else /* ndef AUTODIFF_USE_OLDSTORE_3D */ -c -CADJ STORE StoreDynVars3D = tapelev2, key = ilev_2 -c -#endif /* AUTODIFF_USE_OLDSTORE_3D */ +#endif /* AUTODIFF_USE_STORE_RESTORE */ CADJ STORE phi0surf = tapelev2, key = ilev_2 CADJ STORE saltflux = tapelev2, key = ilev_2 @@ -98,10 +91,13 @@ CADJ STORE rstardhcdt,rstardhsdt,rstardhwdt CADJ & = tapelev2, key = ilev_2 # endif +#endif /* NONLIN_FRSURF */ + +#if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) CADJ STORE aW2d, aS2d, aC2d = tapelev2, key = ilev_2 CADJ STORE pc, ps, pw = tapelev2, key = ilev_2 - -#endif /* NONLIN_FRSURF */ +#endif #ifdef ALLOW_CD_CODE # include "cd_code_ad_check_lev2_dir.h" @@ -111,10 +107,6 @@ CADJ STORE pc, ps, pw = tapelev2, key = ilev_2 # include "ggl90_ad_check_lev2_dir.h" #endif -#ifdef ALLOW_ECCO -# include "ecco_ad_check_lev2_dir.h" -#endif - #ifdef ALLOW_EXF # include "exf_ad_check_lev2_dir.h" #endif /* ALLOW_EXF */ @@ -136,6 +128,7 @@ CADJ STORE pc, ps, pw = tapelev2, key = ilev_2 #endif #ifdef ALLOW_SEAICE +CADJ STORE phiHydLow = tapelev2, key = ilev_2 # include "seaice_ad_check_lev2_dir.h" #endif /* ALLOW_SEAICE */ @@ -159,10 +152,6 @@ CADJ STORE pc, ps, pw = tapelev2, key = ilev_2 # include "offline_ad_check_lev2_dir.h" #endif /* ALLOW_OFFLINE */ -#ifdef ALLOW_GCHEM -# include "gchem_ad_check_lev2_dir.h" -#endif - #ifdef ALLOW_CFC # include "cfc_ad_check_lev2_dir.h" #endif @@ -200,22 +189,3 @@ CADJ STORE cMeanThetaVVel = tapelev2, key = ilev_2 #ifdef ALLOW_COST_TRACER CADJ STORE objf_tracer = tapelev2, key = ilev_2 #endif - -#ifdef ALLOW_COST_TRANSPORT -CADJ STORE objf_transport = tapelev2, key = ilev_2 -#endif - -#ifdef ALLOW_HFLUXM_CONTROL -CADJ STORE qnetm = tapelev2, key = ilev_2 -#endif - -#ifdef ALLOW_SEAICE -cph temporary for HD -# ifdef ANNUAL_BALANCE -CADJ STORE balance_itcount = tapelev2, key = ilev_2 -CADJ STORE atmfw_tilesum = tapelev2, key = ilev_2 -CADJ STORE qnet_tilesum = tapelev2, key = ilev_2 -CADJ STORE empmr_corr = tapelev2, key = ilev_2 -CADJ STORE qnet_corr = tapelev2, key = ilev_2 -# endif /* ANNUAL_BALANCE */ -#endif diff --git a/pkg/autodiff/checkpoint_lev3_directives.h b/pkg/autodiff/checkpoint_lev3_directives.h index 89baf3a14d..026b4fe2ca 100644 --- a/pkg/autodiff/checkpoint_lev3_directives.h +++ b/pkg/autodiff/checkpoint_lev3_directives.h @@ -3,7 +3,12 @@ c store directives for checkpoint level 3 c c created: heimbach@mit.edu 10-Jan-2002 c -#ifdef AUTODIFF_USE_OLDSTORE_2D +#ifdef AUTODIFF_USE_STORE_RESTORE +c +CADJ STORE StoreDynVars2D = tapelev3, key = ilev_3 +CADJ STORE StoreDynVars3D = tapelev3, key = ilev_3 +c +#else c CADJ STORE etan = tapelev3, key = ilev_3 #ifndef EXCLUDE_FFIELDS_LOAD @@ -40,14 +45,6 @@ CADJ STORE dEtaHdt = tapelev3, key = ilev_3 CADJ STORE PmEpR = tapelev3, key = ilev_3 #endif c -#else /* ndef AUTODIFF_USE_OLDSTORE_2D */ -c -CADJ STORE StoreDynVars2D = tapelev3, key = ilev_3 -c -#endif /* AUTODIFF_USE_OLDSTORE_2D */ -c -#ifdef AUTODIFF_USE_OLDSTORE_3D -c #ifdef ALLOW_ADAMSBASHFORTH_3 CADJ STORE gtnm = tapelev3, key = ilev_3 CADJ STORE gsnm = tapelev3, key = ilev_3 @@ -66,11 +63,7 @@ CADJ STORE vvel = tapelev3, key = ilev_3 CADJ STORE wvel = tapelev3, key = ilev_3 CADJ STORE totphihyd = tapelev3, key = ilev_3 c -#else /* ndef AUTODIFF_USE_OLDSTORE_3D */ -c -CADJ STORE StoreDynVars3D = tapelev3, key = ilev_3 -c -#endif /* AUTODIFF_USE_OLDSTORE_3D */ +#endif /* AUTODIFF_USE_STORE_RESTORE */ CADJ STORE phi0surf = tapelev3, key = ilev_3 CADJ STORE saltflux = tapelev3, key = ilev_3 @@ -98,10 +91,13 @@ CADJ STORE rstardhcdt,rstardhsdt,rstardhwdt CADJ & = tapelev3, key = ilev_3 # endif +#endif /* NONLIN_FRSURF */ + +#if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) CADJ STORE aW2d, aS2d, aC2d = tapelev3, key = ilev_3 CADJ STORE pc, ps, pw = tapelev3, key = ilev_3 - -#endif /* NONLIN_FRSURF */ +#endif #ifdef ALLOW_CD_CODE # include "cd_code_ad_check_lev3_dir.h" @@ -111,10 +107,6 @@ CADJ STORE pc, ps, pw = tapelev3, key = ilev_3 # include "ggl90_ad_check_lev3_dir.h" #endif -#ifdef ALLOW_ECCO -# include "ecco_ad_check_lev3_dir.h" -#endif - #ifdef ALLOW_EXF # include "exf_ad_check_lev3_dir.h" #endif /* ALLOW_EXF */ @@ -136,6 +128,7 @@ CADJ STORE pc, ps, pw = tapelev3, key = ilev_3 #endif #ifdef ALLOW_SEAICE +CADJ STORE phiHydLow = tapelev3, key = ilev_3 # include "seaice_ad_check_lev3_dir.h" #endif /* ALLOW_SEAICE */ @@ -159,10 +152,6 @@ CADJ STORE pc, ps, pw = tapelev3, key = ilev_3 # include "offline_ad_check_lev3_dir.h" #endif /* ALLOW_OFFLINE */ -#ifdef ALLOW_GCHEM -# include "gchem_ad_check_lev3_dir.h" -#endif - #ifdef ALLOW_CFC # include "cfc_ad_check_lev3_dir.h" #endif @@ -200,22 +189,3 @@ CADJ STORE cMeanThetaVVel = tapelev3, key = ilev_3 #ifdef ALLOW_COST_TRACER CADJ STORE objf_tracer = tapelev3, key = ilev_3 #endif - -#ifdef ALLOW_COST_TRANSPORT -CADJ STORE objf_transport = tapelev3, key = ilev_3 -#endif - -#ifdef ALLOW_HFLUXM_CONTROL -CADJ STORE qnetm = tapelev3, key = ilev_3 -#endif - -#ifdef ALLOW_SEAICE -cph temporary for HD -# ifdef ANNUAL_BALANCE -CADJ STORE balance_itcount = tapelev3, key = ilev_3 -CADJ STORE atmfw_tilesum = tapelev3, key = ilev_3 -CADJ STORE qnet_tilesum = tapelev3, key = ilev_3 -CADJ STORE empmr_corr = tapelev3, key = ilev_3 -CADJ STORE qnet_corr = tapelev3, key = ilev_3 -# endif /* ANNUAL_BALANCE */ -#endif diff --git a/pkg/autodiff/checkpoint_lev4_directives.h b/pkg/autodiff/checkpoint_lev4_directives.h index 31abfdce7a..1de973c3e1 100644 --- a/pkg/autodiff/checkpoint_lev4_directives.h +++ b/pkg/autodiff/checkpoint_lev4_directives.h @@ -3,7 +3,12 @@ c store directives for checkpoint level 4 c c created: heimbach@mit.edu 10-Jan-2002 c -#ifdef AUTODIFF_USE_OLDSTORE_2D +#ifdef AUTODIFF_USE_STORE_RESTORE +c +CADJ STORE StoreDynVars2D = tapelev4, key = ilev_4 +CADJ STORE StoreDynVars3D = tapelev4, key = ilev_4 +c +#else c CADJ STORE etan = tapelev4, key = ilev_4 #ifndef EXCLUDE_FFIELDS_LOAD @@ -40,14 +45,6 @@ CADJ STORE dEtaHdt = tapelev4, key = ilev_4 CADJ STORE PmEpR = tapelev4, key = ilev_4 #endif c -#else /* ndef AUTODIFF_USE_OLDSTORE_2D */ -c -CADJ STORE StoreDynVars2D = tapelev4, key = ilev_4 -c -#endif /* AUTODIFF_USE_OLDSTORE_2D */ -c -#ifdef AUTODIFF_USE_OLDSTORE_3D -c #ifdef ALLOW_ADAMSBASHFORTH_3 CADJ STORE gtnm = tapelev4, key = ilev_4 CADJ STORE gsnm = tapelev4, key = ilev_4 @@ -66,11 +63,7 @@ CADJ STORE vvel = tapelev4, key = ilev_4 CADJ STORE wvel = tapelev4, key = ilev_4 CADJ STORE totphihyd = tapelev4, key = ilev_4 c -#else /* ndef AUTODIFF_USE_OLDSTORE_3D */ -c -CADJ STORE StoreDynVars3D = tapelev4, key = ilev_4 -c -#endif /* AUTODIFF_USE_OLDSTORE_3D */ +#endif /* AUTODIFF_USE_STORE_RESTORE */ CADJ STORE phi0surf = tapelev4, key = ilev_4 CADJ STORE saltflux = tapelev4, key = ilev_4 @@ -98,10 +91,13 @@ CADJ STORE rstardhcdt,rstardhsdt,rstardhwdt CADJ & = tapelev4, key = ilev_4 # endif +#endif /* NONLIN_FRSURF */ + +#if (defined ALLOW_CG2D_NSA || defined NONLIN_FRSURF || \ + defined ALLOW_DEPTH_CONTROL) CADJ STORE aW2d, aS2d, aC2d = tapelev4, key = ilev_4 CADJ STORE pc, ps, pw = tapelev4, key = ilev_4 - -#endif /* NONLIN_FRSURF */ +#endif #ifdef ALLOW_CD_CODE # include "cd_code_ad_check_lev4_dir.h" @@ -111,10 +107,6 @@ CADJ STORE pc, ps, pw = tapelev4, key = ilev_4 # include "ggl90_ad_check_lev4_dir.h" #endif -#ifdef ALLOW_ECCO -# include "ecco_ad_check_lev4_dir.h" -#endif - #ifdef ALLOW_EXF # include "exf_ad_check_lev4_dir.h" #endif /* ALLOW_EXF */ @@ -136,6 +128,7 @@ CADJ STORE pc, ps, pw = tapelev4, key = ilev_4 #endif #ifdef ALLOW_SEAICE +CADJ STORE phiHydLow = tapelev4, key = ilev_4 # include "seaice_ad_check_lev4_dir.h" #endif /* ALLOW_SEAICE */ @@ -159,10 +152,6 @@ CADJ STORE pc, ps, pw = tapelev4, key = ilev_4 # include "offline_ad_check_lev4_dir.h" #endif /* ALLOW_OFFLINE */ -#ifdef ALLOW_GCHEM -# include "gchem_ad_check_lev4_dir.h" -#endif - #ifdef ALLOW_CFC # include "cfc_ad_check_lev4_dir.h" #endif @@ -200,22 +189,3 @@ CADJ STORE cMeanThetaVVel = tapelev4, key = ilev_4 #ifdef ALLOW_COST_TRACER CADJ STORE objf_tracer = tapelev4, key = ilev_4 #endif - -#ifdef ALLOW_COST_TRANSPORT -CADJ STORE objf_transport = tapelev4, key = ilev_4 -#endif - -#ifdef ALLOW_HFLUXM_CONTROL -CADJ STORE qnetm = tapelev4, key = ilev_4 -#endif - -#ifdef ALLOW_SEAICE -cph temporary for HD -# ifdef ANNUAL_BALANCE -CADJ STORE balance_itcount = tapelev4, key = ilev_4 -CADJ STORE atmfw_tilesum = tapelev4, key = ilev_4 -CADJ STORE qnet_tilesum = tapelev4, key = ilev_4 -CADJ STORE empmr_corr = tapelev4, key = ilev_4 -CADJ STORE qnet_corr = tapelev4, key = ilev_4 -# endif /* ANNUAL_BALANCE */ -#endif diff --git a/pkg/autodiff/common.flow b/pkg/autodiff/common.flow index 8be17fb818..189a0bc9e9 100644 --- a/pkg/autodiff/common.flow +++ b/pkg/autodiff/common.flow @@ -7,6 +7,9 @@ c$taf COMMON dynvars_r2 FTLNAME = g_dynvars_r2 c$taf COMMON dynvars_diag ADNAME = addynvars_diag c$taf COMMON dynvars_diag FTLNAME = g_dynvars_diag +c$taf COMMON dynvars_diffkr ADNAME = addynvars_diffkr +c$taf COMMON dynvars_diffkr FTLNAME = g_dynvars_diffkr + c$taf COMMON dynvars_cd ADNAME = addynvars_cd c$taf COMMON dynvars_cd FTLNAME = g_dynvars_cd @@ -43,11 +46,17 @@ c$taf COMMON ffields_lambdaThetaClimRelax FTLNAME = g_ffields_lambdaThetaClimRel c$taf COMMON ffields_lambdaSaltClimRelax ADNAME = adffields_lambdaSaltClimRelax c$taf COMMON ffields_lambdaSaltClimRelax FTLNAME = g_ffields_lambdaSaltClimRelax -c$taf COMMON eddypsiffield ADNAME = adeddypsiffield -c$taf COMMON eddypsiffield FTLNAME = g_eddypsiffield +c$taf COMMON ffields_eddypsi_rs ADNAME = adffields_eddypsi_rs +c$taf COMMON ffields_eddypsi_rs FTLNAME = g_ffields_eddypsi_rs + +C c$taf COMMON grid_rl ADNAME = adgrid_rl +C c$taf COMMON grid_rl FTLNAME = g_grid_rl + +C c$taf COMMON grid_rs ADNAME = adgrid_rs +C c$taf COMMON grid_rs FTLNAME = g_grid_rs -c$taf COMMON exf_hsflux_r ADNAME = adexf_hsflux_r -c$taf COMMON exf_hsflux_r FTLNAME = g_exf_hsflux_r +c$taf COMMON grid_var_rs ADNAME = adgrid_var_rs +c$taf COMMON grid_var_rs FTLNAME = g_grid_var_rs c$taf COMMON exf_stress_r ADNAME = adexf_stress_r c$taf COMMON exf_stress_r FTLNAME = g_exf_stress_r @@ -55,15 +64,18 @@ c$taf COMMON exf_stress_r FTLNAME = g_exf_stress_r c$taf COMMON exf_wspeed_r ADNAME = adexf_wspeed_r c$taf COMMON exf_wspeed_r FTLNAME = g_exf_wspeed_r +c$taf COMMON exf_atm_wind_r ADNAME = adexf_atm_wind_r +c$taf COMMON exf_atm_wind_r FTLNAME = g_exf_atm_wind_r + +c$taf COMMON exf_netflux_r ADNAME = adexf_netflux_r +c$taf COMMON exf_netflux_r FTLNAME = g_exf_netflux_r + c$taf COMMON exf_atm_temp_r ADNAME = adexf_atm_temp_r c$taf COMMON exf_atm_temp_r FTLNAME = g_exf_atm_temp_r c$taf COMMON exf_swflux_r ADNAME = adexf_swflux_r c$taf COMMON exf_swflux_r FTLNAME = g_exf_swflux_r -c$taf COMMON exf_atm_wind_r ADNAME = adexf_atm_wind_r -c$taf COMMON exf_atm_wind_r FTLNAME = g_exf_atm_wind_r - c$taf COMMON exf_rad_down_r ADNAME = adexf_rad_down_r c$taf COMMON exf_rad_down_r FTLNAME = g_exf_rad_down_r @@ -73,32 +85,22 @@ c$taf COMMON exf_clim_sst_r FTLNAME = g_exf_clim_sst_r c$taf COMMON exf_clim_sss_r ADNAME = adexf_clim_sss_r c$taf COMMON exf_clim_sss_r FTLNAME = g_exf_clim_sss_r -c$taf COMMON seaice_dynvars_1 ADNAME = adseaice_dynvars_1 -c$taf COMMON seaice_dynvars_1 FTLNAME = g_seaice_dynvars_1 +c$taf COMMON seaice_dynvars_1 ADNAME = adseaice_dynvars_1 +c$taf COMMON seaice_dynvars_1 FTLNAME = g_seaice_dynvars_1 +c$taf COMMON seaice_salinity_r ADNAME = adseaice_salinity_r +c$taf COMMON seaice_salinity_r FTLNAME = g_seaice_salinity_r + +c$taf COMMON shelfice_fields_rl ADNAME = adshelfice_fields_rl +c$taf COMMON shelfice_fields_rl FTLNAME = g_shelfice_fields_rl c$taf COMMON ggl90_fields ADNAME = adggl90_fields c$taf COMMON ggl90_fields FTLNAME = g_ggl90_fields -c$taf COMMON dynvars_diffkr ADNAME = addynvars_diffkr -c$taf COMMON dynvars_diffkr FTLNAME = g_dynvars_diffkr - -c$taf COMMON ctrl_fields_kapgm ADNAME = adctrl_fields_kapgm -c$taf COMMON ctrl_fields_kapgm FTLNAME = g_ctrl_fields_kapgm +c$taf COMMON GM_INP_K3D_GM ADNAME = adGM_INP_K3D_GM +c$taf COMMON GM_INP_K3D_GM FTLNAME = g_GM_INP_K3D_GM -c$taf COMMON ctrl_fields_kapredi ADNAME = adctrl_fields_kapredi -c$taf COMMON ctrl_fields_kapredi FTLNAME = g_ctrl_fields_kapredi +c$taf COMMON GM_INP_K3D_REDI ADNAME = adGM_INP_K3D_REDI +c$taf COMMON GM_INP_K3D_REDI FTLNAME = g_GM_INP_K3D_REDI c$taf COMMON ctrl_fields_bottomdrag ADNAME = adctrl_fields_bottomdrag c$taf COMMON ctrl_fields_bottomdrag FTLNAME = g_ctrl_fields_bottomdrag - -c$taf COMMON grid_r ADNAME = adgrid_r -c$taf COMMON grid_r FTLNAME = g_grid_r - -c$taf COMMON grid_r_c ADNAME = adgrid_r_c -c$taf COMMON grid_r_c FTLNAME = g_grid_r_c - -c$taf COMMON grid_r_s ADNAME = adgrid_r_s -c$taf COMMON grid_r_s FTLNAME = g_grid_r_s - -c$taf COMMON grid_r_w ADNAME = adgrid_r_w -c$taf COMMON grid_r_w FTLNAME = g_grid_r_w diff --git a/pkg/autodiff/data.autodiff b/pkg/autodiff/data.autodiff deleted file mode 100644 index 3bbe366712..0000000000 --- a/pkg/autodiff/data.autodiff +++ /dev/null @@ -1,8 +0,0 @@ - -# -# ************************* -# Automatic differentiation -# ************************* - &AUTODIFF - using_autodiff=.true., - / diff --git a/pkg/autodiff/dump_adj_xy.F b/pkg/autodiff/dump_adj_xy.F new file mode 100644 index 0000000000..b7a15eb5bc --- /dev/null +++ b/pkg/autodiff/dump_adj_xy.F @@ -0,0 +1,145 @@ +#include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif +#include "AD_CONFIG.h" + +CBOP +C !ROUTINE: DUMP_ADJ_XY +C !INTERFACE: + SUBROUTINE DUMP_ADJ_XY( + I var2DRS, var2DRL, diagName, dumpName, vType, + I doDump, dumpAdRec, myTime, myIter, myThid ) + +C !DESCRIPTION: +C Helper subroutine to dump to file and fill corresponding diagnostics +C for 2-D single variable given the millions of autodiff options + +C !USES: + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ + +C !INPUT/OUTPUT PARAMETERS: +C var2DRS ( RS ) :: input 2-D AD-variable field +C var2DRL ( RL ) :: input 2-D AD-variable field +C diagName ( C ) :: diagnostics name +C dumpName ( C ) :: output file prefix +C vType ( Int ) :: type of AD-variable (select which ADEXCH to use) +C vType (1rst digit): +C = 1,3 : process RS input field ; = 2,4 : process RL input field +C = 1,2 : without sign. ; = 3,4 : with sign. +C vType (2nd digit) = 10 : A-grid location (i.e., grid-cell center) +C = 20 : B-grid location (i.e., grid-cell corner) +C doDump ( L ) :: do write field to file +C dumpAdRec (I) :: record number in file +C myTime :: time counter for this thread +C myIter :: iteration counter for this thread +C myThid :: Thread number for this instance of the routine. + _RS var2DRS(*) + _RL var2DRL(*) + CHARACTER*(8) diagName + CHARACTER*(*) dumpName + INTEGER vType + LOGICAL doDump + INTEGER dumpAdRec + _RL myTime + INTEGER myIter + INTEGER myThid + +#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) +#ifdef ALLOW_AUTODIFF_MONITOR + +C !LOCAL VARIABLES: +C suff :: Hold suffix part of a filename +C var2Dc ( RL ) :: copy of input field + CHARACTER*(10) suff + _RL var2Dc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +CEOP + +C----------------------------------------------------------------------- +C--- Output adj variables in diagnostics +C----------------------------------------------------------------------- + +C --- 1. Write out dump fields + IF ( doDump ) THEN + +C-- Set suffix for this set of data files. + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(suff,'(I10.10)') myIter + ELSE + CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) + ENDIF + + IF ( dumpAdVarExch.EQ.2 ) THEN + +C-- Copy first + CALL COPY_ADVAR_OUTP( var2DRS, var2DRL, + & var2Dc, 1, vType, myThid ) + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RL( dumpName, var2Dc, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RL( dumpName, suff, var2Dc, + & myIter, myThid ) + ENDIF + + ELSE ! dumpAdVarExch.eq.2 + +C-- Write directly + IF ( MOD(vType,2).NE.1 ) THEN + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RL( dumpName, var2DRL, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RL( dumpName, suff, var2DRL, + & myIter, myThid ) + ENDIF + ELSE ! is RL + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RS( dumpName, var2DRS, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RS( dumpName, suff, var2DRS, + & myIter, myThid ) + ENDIF + ENDIF + + ENDIF + ENDIF + +C --- 2. Fill diagnostics +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiag4AdjOutp .AND. diagName.NE.'- None -' ) THEN + IF ( dumpAdVarExch.EQ.2 ) THEN + IF ( .NOT.doDump ) + & CALL COPY_ADVAR_OUTP( var2DRS, var2DRL, + & var2Dc, 1, vType, myThid ) + CALL DIAGNOSTICS_FILL( var2Dc, diagName, 0,1, 0,1,1, myThid ) + ELSE + IF ( MOD(vType,2).NE.1 ) THEN + CALL DIAGNOSTICS_FILL( var2DRL, diagName, + & 0, 1, 0, 1, 1, myThid ) + ELSE + CALL DIAGNOSTICS_FILL_RS( var2DRS, diagName, + & 0, 1, 0, 1, 1, myThid ) + ENDIF + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#endif /* ALLOW_AUTODIFF_MONITOR */ +#endif /* ALLOW_ADJOINT_RUN */ + + RETURN + END diff --git a/pkg/autodiff/dump_adj_xy_uv.F b/pkg/autodiff/dump_adj_xy_uv.F new file mode 100644 index 0000000000..f5cb4b6b68 --- /dev/null +++ b/pkg/autodiff/dump_adj_xy_uv.F @@ -0,0 +1,175 @@ +#include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif +#include "AD_CONFIG.h" + +CBOP +C !ROUTINE: DUMP_ADJ_XY_UV +C !INTERFACE: + SUBROUTINE DUMP_ADJ_XY_UV( + I u2DRS, u2DRL, uDiagName, uDumpName, + I v2DRS, v2DRL, vDiagName, vDumpName, + I vType, doDump, dumpAdRec, myTime, myIter, myThid ) + +C !DESCRIPTION: +C Helper subroutine to dump to file and fill corresponding diagnostics +C for 2-D 2-component vector field given the millions of autodiff options + +C !USES: + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ + +C !INPUT/OUTPUT PARAMETERS: +C u2DRS ( RS ) :: input 2-D, u-component AD-variable field +C u2DRL ( RL ) :: input 2-D, u-component AD-variable field +C uDiagName (C ) :: u-component diagnostics name +C uDumpName (C ) :: u-component output file prefix +C v2DRS ( RS ) :: input 2-D, v-component AD-variable field +C v2DRL ( RL ) :: input 2-D, v-component AD-variable field +C vDiagName (C ) :: v-component diagnostics name +C vDumpName (C ) :: v-component output file prefix +C vType ( Int ) :: type of AD-variable (select which ADEXCH to use) +C vType (1rst digit): +C = 1,3 : process RS input field ; = 2,4 : process RL input field +C = 1,2 : without sign. ; = 3,4 : with sign. +C vType (2nd digit) = 10 : A-grid location (i.e., grid-cell center) +C = 20 : B-grid location (i.e., grid-cell corner) +C = 30 : C-grid location ; = 40 : D-grid location +C doDump ( L ) :: do write field to file +C dumpAdRec (I ) :: record number in file +C myTime :: time counter for this thread +C myIter :: iteration counter for this thread +C myThid :: Thread number for this instance of the routine. + _RS u2DRS(*) + _RL u2DRL(*) + _RS v2DRS(*) + _RL v2DRL(*) + CHARACTER*(8) uDiagName + CHARACTER*(8) vDiagName + CHARACTER*(*) uDumpName + CHARACTER*(*) vDumpName + INTEGER vType + LOGICAL doDump + INTEGER dumpAdRec + _RL myTime + INTEGER myIter + INTEGER myThid + +#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) +#ifdef ALLOW_AUTODIFF_MONITOR + +C !LOCAL VARIABLES: +C suff :: Hold suffix part of a filename +C uCopy ( RL ) :: copy of u-component input field +C vCopy ( RL ) :: copy of v-component input field + CHARACTER*(10) suff + _RL uCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +CEOP + +C----------------------------------------------------------------------- +C--- Output adj variables in diagnostics +C----------------------------------------------------------------------- + +C --- 1. Write out dump fields + IF ( doDump ) THEN + +C-- Set suffix for this set of data files. + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(suff,'(I10.10)') myIter + ELSE + CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) + ENDIF + + IF ( dumpAdVarExch.EQ.2 ) THEN + +C-- Copy first + CALL COPY_AD_UV_OUTP( u2DRS, v2DRS, u2DRL, v2DRL, + & uCopy, vCopy, 1, vType, myThid ) + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RL( uDumpName, uCopy, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XY_RL( vDumpName, vCopy, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RL( uDumpName, suff, uCopy, + & myIter, myThid ) + CALL WRITE_FLD_XY_RL( vDumpName, suff, vCopy, + & myIter, myThid ) + ENDIF + + ELSE ! dumpAdVarExch.eq.2 + +C-- Write directly + IF ( MOD(vType,2).NE.1 ) THEN + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RL( uDumpName, u2DRL, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XY_RL( vDumpName, v2DRL, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RL( uDumpName, suff, u2DRL, + & myIter, myThid ) + CALL WRITE_FLD_XY_RL( vDumpName, suff, v2DRL, + & myIter, myThid ) + ENDIF + ELSE ! is RL + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XY_RS( uDumpName, u2DRS, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XY_RS( vDumpName, v2DRS, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XY_RS( uDumpName, suff, u2DRS, + & myIter, myThid ) + CALL WRITE_FLD_XY_RS( vDumpName, suff, v2DRS, + & myIter, myThid ) + ENDIF + ENDIF + + ENDIF + ENDIF + +C --- 2. Fill diagnostics +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiag4AdjOutp .AND. uDiagName.NE.'- None -' + & .AND. vDiagName.NE.'- None -' ) THEN + IF ( dumpAdVarExch.EQ.2 ) THEN + IF ( .NOT.doDump ) + & CALL COPY_AD_UV_OUTP( u2DRS, v2DRS, u2DRL, v2DRL, + & uCopy, vCopy, 1, vType, myThid ) + CALL DIAGNOSTICS_FILL( uCopy, uDiagName, 0,1, 0,1,1, myThid ) + CALL DIAGNOSTICS_FILL( vCopy, vDiagName, 0,1, 0,1,1, myThid ) + ELSE + IF ( MOD(vType,2).NE.1 ) THEN + CALL DIAGNOSTICS_FILL( u2DRL, uDiagName, + & 0, 1, 0, 1, 1, myThid ) + CALL DIAGNOSTICS_FILL( v2DRL, vDiagName, + & 0, 1, 0, 1, 1, myThid ) + ELSE + CALL DIAGNOSTICS_FILL_RS( u2DRS, uDiagName, + & 0, 1, 0, 1, 1, myThid ) + CALL DIAGNOSTICS_FILL_RS( v2DRS, vDiagName, + & 0, 1, 0, 1, 1, myThid ) + ENDIF + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#endif /* ALLOW_AUTODIFF_MONITOR */ +#endif /* ALLOW_ADJOINT_RUN */ + + RETURN + END diff --git a/pkg/autodiff/dump_adj_xyz.F b/pkg/autodiff/dump_adj_xyz.F new file mode 100644 index 0000000000..e58fa0ea28 --- /dev/null +++ b/pkg/autodiff/dump_adj_xyz.F @@ -0,0 +1,146 @@ +#include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif +#include "AD_CONFIG.h" + +CBOP +C !ROUTINE: DUMP_ADJ_XYZ +C !INTERFACE: + SUBROUTINE DUMP_ADJ_XYZ( + I var3DRS, var3DRL, diagName, dumpName, vType, + I doDump, dumpAdRec, myTime, myIter, myThid ) + +C !DESCRIPTION: +C Helper subroutine to dump to file and fill corresponding diagnostics +C for 3-D single variable given the millions of autodiff options + +C !USES: +C !USES: + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ + +C !INPUT/OUTPUT PARAMETERS: +C var3DRS ( RS ) :: input 3-D AD-variable field +C var3DRL ( RL ) :: input 3-D AD-variable field +C diagName ( C ) :: diagnostics name +C dumpName ( C ) :: output file prefix +C vType ( Int ) :: type of AD-variable (select which ADEXCH to use) +C vType (1rst digit): +C = 1,3 : process RS input field ; = 2,4 : process RL input field +C = 1,2 : without sign. ; = 3,4 : with sign. +C vType (2nd digit) = 10 : A-grid location (i.e., grid-cell center) +C = 20 : B-grid location (i.e., grid-cell corner) +C doDump ( L ) :: do write field to file +C dumpAdRec (I) :: record number in file +C myTime :: time counter for this thread +C myIter :: iteration counter for this thread +C myThid :: Thread number for this instance of the routine. + _RS var3DRS(*) + _RL var3DRL(*) + CHARACTER*(8) diagName + CHARACTER*(*) dumpName + INTEGER vType + LOGICAL doDump + INTEGER dumpAdRec + _RL myTime + INTEGER myIter + INTEGER myThid + +#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) +#ifdef ALLOW_AUTODIFF_MONITOR + +C !LOCAL VARIABLES: +C suff :: Hold suffix part of a filename +C var3Dc ( RL ) :: copy of input field + CHARACTER*(10) suff + _RL var3Dc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +CEOP + +C----------------------------------------------------------------------- +C--- Output adj variables in diagnostics +C----------------------------------------------------------------------- + +C --- 1. Write out dump fields + IF ( doDump ) THEN + +C-- Set suffix for this set of data files. + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(suff,'(I10.10)') myIter + ELSE + CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) + ENDIF + + IF ( dumpAdVarExch.EQ.2 ) THEN + +C-- Copy first + CALL COPY_ADVAR_OUTP( var3DRS, var3DRL, + & var3Dc, Nr, vType, myThid ) + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RL( dumpName, var3Dc, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RL( dumpName, suff, var3Dc, + & myIter, myThid ) + ENDIF + + ELSE ! dumpAdVarExch.eq.2 + +C-- Write directly + IF ( MOD(vType,2).NE.1 ) THEN + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RL( dumpName, var3DRL, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RL( dumpName, suff, var3DRL, + & myIter, myThid ) + ENDIF + ELSE ! is RL + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RS( dumpName, var3DRS, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RS( dumpName, suff, var3DRS, + & myIter, myThid ) + ENDIF + ENDIF + + ENDIF + ENDIF + +C --- 2. Fill diagnostics +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiag4AdjOutp .AND. diagName.NE.'- None -' ) THEN + IF ( dumpAdVarExch.EQ.2 ) THEN + IF ( .NOT.doDump ) + & CALL COPY_ADVAR_OUTP( var3DRS, var3DRL, + & var3Dc, Nr, vType, myThid ) + CALL DIAGNOSTICS_FILL( var3Dc, diagName, 0,Nr,0,1,1, myThid ) + ELSE + IF ( MOD(vType,2).NE.1 ) THEN + CALL DIAGNOSTICS_FILL( var3DRL, diagName, + & 0, Nr, 0, 1, 1, myThid ) + ELSE + CALL DIAGNOSTICS_FILL_RS( var3DRS, diagName, + & 0, Nr, 0, 1, 1, myThid ) + ENDIF + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#endif /* ALLOW_AUTODIFF_MONITOR */ +#endif /* ALLOW_ADJOINT_RUN */ + + RETURN + END diff --git a/pkg/autodiff/dump_adj_xyz_uv.F b/pkg/autodiff/dump_adj_xyz_uv.F new file mode 100644 index 0000000000..0d624a9fb4 --- /dev/null +++ b/pkg/autodiff/dump_adj_xyz_uv.F @@ -0,0 +1,175 @@ +#include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif +#include "AD_CONFIG.h" + +CBOP +C !ROUTINE: DUMP_ADJ_XYZ_UV +C !INTERFACE: + SUBROUTINE DUMP_ADJ_XYZ_UV( + I u3DRS, u3DRL, uDiagName, uDumpName, + I v3DRS, v3DRL, vDiagName, vDumpName, + I vType, doDump, dumpAdRec, myTime, myIter, myThid ) + +C !DESCRIPTION: +C Helper subroutine to dump to file and fill corresponding diagnostics +C for 3-D 2-component vector field given the millions of autodiff options + +C !USES: + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "AUTODIFF_PARAMS.h" +#ifdef ALLOW_AUTODIFF_MONITOR +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif +#endif /* ALLOW_AUTODIFF_MONITOR */ + +C !INPUT/OUTPUT PARAMETERS: +C u3DRS ( RS ) :: input 3-D, u-component AD-variable field +C u3DRL ( RL ) :: input 3-D, u-component AD-variable field +C uDiagName (C ) :: u-component diagnostics name +C uDumpName (C ) :: u-component output file prefix +C v3DRS ( RS ) :: input 3-D, v-component AD-variable field +C v3DRL ( RL ) :: input 3-D, v-component AD-variable field +C vDiagName (C ) :: v-component diagnostics name +C vDumpName (C ) :: v-component output file prefix +C vType ( Int ) :: type of AD-variable (select which ADEXCH to use) +C vType (1rst digit): +C = 1,3 : process RS input field ; = 2,4 : process RL input field +C = 1,2 : without sign. ; = 3,4 : with sign. +C vType (2nd digit) = 10 : A-grid location (i.e., grid-cell center) +C = 20 : B-grid location (i.e., grid-cell corner) +C = 30 : C-grid location ; = 40 : D-grid location +C doDump ( L ) :: do write field to file +C dumpAdRec (I ) :: record number in file +C myTime :: time counter for this thread +C myIter :: iteration counter for this thread +C myThid :: Thread number for this instance of the routine. + _RS u3DRS(*) + _RL u3DRL(*) + _RS v3DRS(*) + _RL v3DRL(*) + CHARACTER*(8) uDiagName + CHARACTER*(8) vDiagName + CHARACTER*(*) uDumpName + CHARACTER*(*) vDumpName + INTEGER vType + LOGICAL doDump + INTEGER dumpAdRec + _RL myTime + INTEGER myIter + INTEGER myThid + +#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) +#ifdef ALLOW_AUTODIFF_MONITOR + +C !LOCAL VARIABLES: +C suff :: Hold suffix part of a filename +C uCopy ( RL ) :: copy of u-component input field +C vCopy ( RL ) :: copy of v-component input field + CHARACTER*(10) suff + _RL uCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL vCopy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +CEOP + +C----------------------------------------------------------------------- +C--- Output adj variables in diagnostics +C----------------------------------------------------------------------- + +C --- 1. Write out dump fields + IF ( doDump ) THEN + +C-- Set suffix for this set of data files. + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(suff,'(I10.10)') myIter + ELSE + CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) + ENDIF + + IF ( dumpAdVarExch.EQ.2 ) THEN + +C-- Copy first + CALL COPY_AD_UV_OUTP( u3DRS, v3DRS, u3DRL, v3DRL, + & uCopy, vCopy, Nr, vType, myThid ) + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RL( uDumpName, uCopy, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XYZ_RL( vDumpName, vCopy, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RL( uDumpName, suff, uCopy, + & myIter, myThid ) + CALL WRITE_FLD_XYZ_RL( vDumpName, suff, vCopy, + & myIter, myThid ) + ENDIF + + ELSE ! dumpAdVarExch.eq.2 + +C-- Write directly + IF ( MOD(vType,2).NE.1 ) THEN + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RL( uDumpName, u3DRL, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XYZ_RL( vDumpName, v3DRL, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RL( uDumpName, suff,u3DRL, + & myIter, myThid ) + CALL WRITE_FLD_XYZ_RL( vDumpName, suff,v3DRL, + & myIter, myThid ) + ENDIF + ELSE ! is RL + IF ( dumpAdByRec ) THEN + CALL WRITE_REC_XYZ_RS( uDumpName, u3DRS, dumpAdRec, + & myIter, myThid ) + CALL WRITE_REC_XYZ_RS( uDumpName, v3DRS, dumpAdRec, + & myIter, myThid ) + ELSE + CALL WRITE_FLD_XYZ_RS( uDumpName, suff, u3DRS, + & myIter, myThid ) + CALL WRITE_FLD_XYZ_RS( vDumpName, suff, v3DRS, + & myIter, myThid ) + ENDIF + ENDIF + + ENDIF + ENDIF + +C --- 2. Fill diagnostics +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiag4AdjOutp .AND. uDiagName.NE.'- None -' + & .AND. vDiagName.NE.'- None -' ) THEN + IF ( dumpAdVarExch.EQ.2 ) THEN + IF ( .NOT.doDump ) + & CALL COPY_AD_UV_OUTP( u3DRS, v3DRS, u3DRL, v3DRL, + & uCopy, vCopy, Nr, vType, myThid ) + CALL DIAGNOSTICS_FILL( uCopy, uDiagName, 0,Nr,0,1,1, myThid ) + CALL DIAGNOSTICS_FILL( vCopy, vDiagName, 0,Nr,0,1,1, myThid ) + ELSE + IF ( MOD(vType,2).NE.1 ) THEN + CALL DIAGNOSTICS_FILL( u3DRL, uDiagName, + & 0, Nr, 0, 1, 1, myThid ) + CALL DIAGNOSTICS_FILL( v3DRL, vDiagName, + & 0, Nr, 0, 1, 1, myThid ) + ELSE + CALL DIAGNOSTICS_FILL_RS( u3DRS, uDiagName, + & 0, Nr, 0, 1, 1, myThid ) + CALL DIAGNOSTICS_FILL_RS( v3DRS, vDiagName, + & 0, Nr, 0, 1, 1, myThid ) + ENDIF + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#endif /* ALLOW_AUTODIFF_MONITOR */ +#endif /* ALLOW_ADJOINT_RUN */ + + RETURN + END diff --git a/pkg/autodiff/g_common.h b/pkg/autodiff/g_common.h index 2153817212..96a0d3fa39 100644 --- a/pkg/autodiff/g_common.h +++ b/pkg/autodiff/g_common.h @@ -8,87 +8,78 @@ C-- heimbach@mit.edu 11-Jan-2001 #ifdef ALLOW_AUTODIFF_MONITOR -#include "PACKAGES_CONFIG.h" - -#ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_OPTIONS.h" -#endif - - common /g_dynvars_r/ - & g_etan, - & g_uvel, g_vvel, g_wvel, - & g_theta, g_salt, - & g_gu, g_gv, g_gt, g_gs, + COMMON /g_DYNVARS_R/ + & g_EtaN, + & g_Uvel, g_Vvel, g_Wvel, + & g_Theta, g_Salt, + & g_Gu, g_Gv, g_Gt, g_Gs, #ifdef ALLOW_ADAMSBASHFORTH_3 - & g_gunm, g_gvnm, g_gtnm, g_gsnm + & g_GuNm, g_GvNm, g_GtNm, g_GsNm #else - & g_gunm1, g_gvnm1, g_gtnm1, g_gsnm1 + & g_GuNm1, g_GvNm1, g_GtNm1, g_GsNm1 #endif - _RL g_etan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_gs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_salt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_theta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_uvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_wvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL g_Etan(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_Gs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Gt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Gu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Gv(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Salt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Theta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Uvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Vvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Wvel(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_ADAMSBASHFORTH_3 - _RL g_gtnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL g_gsnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL g_gunm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) - _RL g_gvnm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy,2) + _RL g_GtNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL g_GsNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL g_GuNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) + _RL g_GvNm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy,2) #else - _RL g_gtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL g_GtNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_GsNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_GuNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_GvNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - common /g_dynvars_r_2/ - & g_etah - _RL g_etah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + COMMON /g_DYNVARS_R_2/ + & g_EtaH + _RL g_EtaH(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ALLOW_AUTODIFF_MONITOR_DIAG - common /g_dynvars_diag/ - & g_totphihyd, g_rhoinsitu - _RL g_rhoinsitu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_totphihyd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) +C Special Care: more forward vars in FWD common block ; check TAF TL-code ! + COMMON /g_DYNVARS_DIAG/ + & g_RhoInSitu, g_TotPhiHyd + _RL g_RhoInSitu(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_TotPhiHyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif -#ifdef ALLOW_CD_CODE - common /g_dynvars_cd/ - & g_uveld, g_vveld, - & g_etanm1, - & g_unm1, g_vnm1 - _RL g_uveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_etanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_unm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) +#ifdef ALLOW_DIFFKR_CONTROL + COMMON /g_DYNVARS_DIFFKR/ + & g_diffKr + _RL g_diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif -#ifdef ALLOW_AUTODIFF_MONITOR_PHIHYD -cph this is a tricky one since TAF exctracts it from a -cph larger common block, so be careful - common /g_dynvars_diag/ g_totphihyd - _RL g_totphihyd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) +#ifdef ALLOW_CD_CODE + COMMON /g_DYNVARS_CD/ + & g_UvelD, g_VvelD, + & g_EtaNm1, + & g_Unm1, g_Vnm1 + _RL g_UvelD(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_VvelD(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_EtaNm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_Unm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL g_Vnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - COMMON /g_ffields_fu/ g_fu - COMMON /g_ffields_fv/ g_fv - COMMON /g_ffields_Qnet/ g_Qnet - COMMON /g_ffields_Qsw/ g_Qsw - COMMON /g_ffields_EmPmR/ g_EmPmR - COMMON /g_ffields_saltFlux/ g_saltFlux - COMMON /g_ffields_SST/ g_SST - COMMON /g_ffields_SSS/ g_SSS - COMMON /g_ffields_lambdaThetaClimRelax/ g_lambdaThetaClimRelax - COMMON /g_ffields_lambdaSaltClimRelax/ g_lambdaSaltClimRelax + COMMON /g_FFIELDS_fu/ g_fu + COMMON /g_FFIELDS_fv/ g_fv + COMMON /g_FFIELDS_Qnet/ g_Qnet + COMMON /g_FFIELDS_Qsw/ g_Qsw + COMMON /g_FFIELDS_EmPmR/ g_EmPmR + COMMON /g_FFIELDS_saltFlux/ g_saltFlux + COMMON /g_FFIELDS_SST/ g_SST + COMMON /g_FFIELDS_SSS/ g_SSS + COMMON /g_FFIELDS_lambdaThetaClimRelax/ g_lambdaThetaClimRelax + COMMON /g_FFIELDS_lambdaSaltClimRelax/ g_lambdaSaltClimRelax _RS g_fu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS g_fv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS g_Qnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -103,80 +94,92 @@ cph larger common block, so be careful & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ATMOSPHERIC_LOADING - COMMON /g_ffields_pload/ g_pload - COMMON /g_ffields_sIceLoad/ g_sIceLoad + COMMON /g_FFIELDS_pload/ g_pload + COMMON /g_FFIELDS_sIceLoad/ g_sIceLoad _RS g_pload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS g_sIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif -#ifdef ALLOW_DIFFKR_CONTROL - COMMON /G_DYNVARS_DIFFKR/ - & g_diffKr - _RL g_diffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif #ifdef ALLOW_KAPGM_CONTROL - COMMON /G_CTRL_FIELDS_KAPGM/ + COMMON /g_GM_INP_K3D_GM/ & g_kapgm _RL g_kapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif #ifdef ALLOW_KAPREDI_CONTROL - COMMON /G_CTRL_FIELDS_KAPREDI/ + COMMON /g_GM_INP_K3D_REDI/ & g_kapredi _RL g_kapredi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif #ifdef ALLOW_BOTTOMDRAG_CONTROL - COMMON /G_CTRL_FIELDS_BOTTOMDRAG/ + COMMON /g_CTRL_FIELDS_BOTTOMDRAG/ & g_bottomdragfld _RL g_bottomdragfld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #ifdef ALLOW_EXF - _RL g_hflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_sflux(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_hsflux_r/ g_hflux, g_sflux - _RL g_ustress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_vstress(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_stress_r/ g_ustress, g_vstress + _RL g_ustress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_vstress(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_stress_r/ g_ustress, g_vstress + _RL g_uwind (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_vwind (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_atm_wind_r/ g_uwind, g_vwind + _RL g_hflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_sflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_netflux_r/ g_hflux, g_sflux # ifdef ALLOW_ATM_TEMP - _RL g_atemp (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_aqh (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_hs (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_hl (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_lwflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_evap (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_precip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_snowprecip(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_atm_temp_r/ g_atemp, g_aqh, g_hs, g_hl, + _RL g_atemp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_aqh (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_hs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_hl (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_lwflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_evap (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_precip (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_snowprecip(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_atm_temp_r/ g_atemp, g_aqh, g_hs, g_hl, & g_lwflux, g_evap, g_precip, g_snowprecip # endif /* ALLOW_ATM_TEMP */ - - _RL g_uwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_vwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_atm_wind_r/ g_uwind, g_vwind - +# if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) + _RL g_swflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_swflux_r/ g_swflux +# endif # ifdef ALLOW_DOWNWARD_RADIATION - _RL g_swdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_lwdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_rad_down_r/ g_swdown, g_lwdown + _RL g_swdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_lwdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_rad_down_r/ g_swdown, g_lwdown # endif # ifdef ALLOW_CLIMSST_RELAXATION - _RL g_climsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_clim_sst_r/ g_climsst + _RL g_climsst(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_clim_sst_r/ g_climsst # endif # ifdef ALLOW_CLIMSSS_RELAXATION - _RL g_climsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_exf_clim_sss_r/ g_climsss + _RL g_climsss(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_exf_clim_sss_r/ g_climsss # endif #endif /* ALLOW_EXF */ #ifdef ALLOW_SEAICE - _RL g_area (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_heff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_hsnow (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_uice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_vice (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /g_seaice_dynvars_1/ + _RL g_area (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_heff (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_hsnow (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_uice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL g_vice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /g_SEAICE_DYNVARS_1/ & g_area, g_heff, g_hsnow, g_uice, g_vice #endif +#ifdef ALLOW_DEPTH_CONTROL + _RS g_hfacc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_hfacs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_hfacw(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_recip_hfacc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_recip_hfacs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_recip_hfacw(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nr,nSx,nSy) + _RS g_r_low (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS g_recip_rcol(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + common /g_grid_var_rs/ + & g_hfacc, g_hfacw, g_hfacs, + & g_recip_hfacc, g_recip_hfacw, g_recip_hfacs, + & g_r_low, g_recip_rcol +#endif /* ALLOW_DEPTH_CONTROL */ + #endif /* ALLOW_AUTODIFF_MONITOR */ diff --git a/pkg/autodiff/g_dummy_in_stepping.F b/pkg/autodiff/g_dummy_in_stepping.F index 9d7bab54d8..ca034f1e98 100644 --- a/pkg/autodiff/g_dummy_in_stepping.F +++ b/pkg/autodiff/g_dummy_in_stepping.F @@ -113,11 +113,6 @@ subroutine g_dummy_in_stepping( myTime, myIter, myThid ) cph CALL WRITE_FLD_XY_RL( 'G_J_sst.',suff, g_sst, myIter, myThid ) cph CALL WRITE_FLD_XY_RL( 'G_J_sss.',suff, g_sss, myIter, myThid ) -#ifdef ALLOW_AUTODIFF_MONITOR_PHIHYD - CALL WRITE_FLD_XYZ_RL( - & 'G_Jphihyd.',suff, g_totphihyd, myIter, myThid ) -#endif - C-- Reread IO error counter endIOErrCount = IO_ERRCOUNT(myThid) diff --git a/pkg/autodiff/myactivefunction.F b/pkg/autodiff/myactivefunction.F index e1255121b7..d6aaad479b 100644 --- a/pkg/autodiff/myactivefunction.F +++ b/pkg/autodiff/myactivefunction.F @@ -3,7 +3,7 @@ CBOP C !INTERFACE: - _RL FUNCTION myActiveFunction ( mytmp3d, mythid ) + _RL FUNCTION myActiveFunction ( mytmp3d, myThid ) C !DESCRIPTION: \bv C *==========================================================* C *==========================================================* @@ -17,18 +17,13 @@ _RL FUNCTION myActiveFunction ( mytmp3d, mythid ) #include "PARAMS.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C myThid - Thread number for this instance of the routine. C myIter - Iteration number C myTime - Current time of simulation ( s ) _RL mytmp3d(sNx,sNy,Nr,nSx,nSy) INTEGER myThid - INTEGER myIter C !LOCAL VARIABLES: - -c == external == - CEOP myActiveFunction = 1.0 diff --git a/pkg/autodiff/myactivefunction_ad.F b/pkg/autodiff/myactivefunction_ad.F index be30fb5763..dcdc2a08f0 100644 --- a/pkg/autodiff/myactivefunction_ad.F +++ b/pkg/autodiff/myactivefunction_ad.F @@ -3,8 +3,8 @@ CBOP C !INTERFACE: - SUBROUTINE admyActiveFunction ( - & mytmp3d, mythid, admytmp3d,admyactivetmp ) + SUBROUTINE admyActiveFunction( + & mytmp3d, myThid, admytmp3d, admyactivetmp ) C !DESCRIPTION: \bv C *==========================================================* C *==========================================================* @@ -18,7 +18,6 @@ SUBROUTINE admyActiveFunction ( #include "PARAMS.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C myThid - Thread number for this instance of the routine. C myIter - Iteration number C myTime - Current time of simulation ( s ) @@ -26,12 +25,8 @@ SUBROUTINE admyActiveFunction ( _RL admytmp3d(sNx,sNy,Nr,nSx,nSy) _RL admyactivetmp INTEGER myThid - INTEGER myIter C !LOCAL VARIABLES: - -c == external == - CEOP cph Do nothing and nothing will be done diff --git a/pkg/autodiff/tamc.h b/pkg/autodiff/tamc.h index 91402c6fc5..b489c32d0e 100644 --- a/pkg/autodiff/tamc.h +++ b/pkg/autodiff/tamc.h @@ -1,20 +1,20 @@ -C ================================================================ -C HEADER TAMC -C ================================================================ -C -C o Header for the use of the Tangent Linear and Adjoint Model -C Compiler (TAMC). -C -C started: Christian Eckert eckert@mit.edu 04-Feb-1999 -C changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -C - New parameter nlevchk_0 for dimensionalising -C common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -C - nhreads_chkpt was declared at the wrong place -C - new keys, separate for different packages - -C ================================================================ -C HEADER TAMC -C ================================================================ +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP #ifdef ALLOW_AUTODIFF_TAMC These lines are here to deliberately cause a compile-time error. @@ -24,8 +24,8 @@ C ================================================================ You need to place you own copy of tamc.h in the include path for the model (e.g., where your SIZE.h is), and comment out these lines. In particular the parameters nchklev_1/2/3 (and possibly also maxpass - and maxcube in case you are using ptracers or cubed sphere grid) - need to be set correctly. + and maxcube in case you are using seaice passive tracers or cubed sphere + grid) need to be set correctly. C TAMC checkpointing parameters: C ============================== @@ -34,53 +34,35 @@ C The checkpointing parameters have to be consistent with other model C parameters and variables. This has to be checked before the model is C run. C -C nyears_chkpt :: Number of calendar years affected by the assimilation -C experiment; nyears_chkpt has to be at least equal to -C the result of cal_IntYears(mythid). -C nmonths_chkpt :: Number of months per year; nmonth_chkpt has to be at -C least equal to nmonthyear. -C ndays_chkpt :: Number of days per month; nday_chkpt has to be at least -C equal to nmaxdaymonth. -C nsteps_chkpt :: Number of steps per day; nsteps_chkpt has to be at -C least equal to cal_nStepDay(mythid) -C ncheck_chkpt :: Number of innermost checkpoints. -C -C ngeom_chkpt :: Geometry factor. -C nthreads_chkpt :: Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 5 ) - integer nchklev_2 - parameter( nchklev_2 = 2 ) -c parameter( nchklev_2 = 150 ) - integer nchklev_3 - parameter( nchklev_3 = 3 ) -c parameter( nchklev_3 = 150 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 5 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 2 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 3 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) - integer nchklev_1 - parameter( nchklev_1 = 5 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ @@ -88,42 +70,26 @@ C TAMC keys: C ========== C C The keys are used for storing and reading data of the reference -C trajectory. -C -C The convention used here is: -C ikey_ -C -C which means that this key is used in routine for reading -C and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte - PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers #ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, ikppkey, iptrkey + PARAMETER( maxcube = 2 ) #ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter diff --git a/pkg/autodiff/tamc_keys.h b/pkg/autodiff/tamc_keys.h deleted file mode 100644 index af148a51bf..0000000000 --- a/pkg/autodiff/tamc_keys.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifdef ALLOW_AUTODIFF_TAMC -C *==========================================================* -C | tamc_keys.h keys required by TAMC for record computation | -C *==========================================================* - integer key, ikey - common /tamckeys/ key, ikey -#ifdef ALLOW_CG2D_NSA - integer icg2dkey - common /tamckeys_cg2d/ icg2dkey -#endif /* ALLOW_CG2D_NSA */ -#endif /* ALLOW_AUTODIFF_TAMC */ diff --git a/pkg/bbl/bbl_description.tex b/pkg/bbl/README.md similarity index 59% rename from pkg/bbl/bbl_description.tex rename to pkg/bbl/README.md index f00150ae73..ee4e708cd0 100644 --- a/pkg/bbl/bbl_description.tex +++ b/pkg/bbl/README.md @@ -1,15 +1,15 @@ -Package ``BBL'' is a simple bottom boundary layer scheme. The initial +Package `BBL` is a simple bottom boundary layer scheme. The initial motivation is to allow dense water that forms on the continental shelf around Antarctica (High Salinity Shelf Water) in the CS510 configuration to sink to the bottom of the model domain and to become a source of Antarctic Bottom Water. The bbl package aims to address the following two limitations of package down_slope: -(i) In pkg/down_slope, dense water cannot flow down-slope unless there is a +(i) In `pkg/down_slope`, dense water cannot flow down-slope unless there is a step, i.e., a change of vertical level in the bathymetry. In pkg/bbl, dense water can flow even on a slight incline or flat bottom. -(ii) In pkg/down_slope, dense water is diluted as it flows into grid cells +(ii) In `pkg/down_slope`, dense water is diluted as it flows into grid cells whose thickness depends on model configuration, typically much thicker than a bottom boundary layer. In pkg/bbl, dense water is contained in a thin sub-layer and hence able to preserve its tracer properties. @@ -18,47 +18,43 @@ thk = hFacC(kBot) * drF(kBot), -with properties tracer, and density rho is divided in two sub-levels: +with properties `tracer`, and density `rho` is divided in two sub-levels: -1. A bottom boundary layer with T/S tracer properties bbl_tracer, -density bbl_rho, and thickness bbl_eta. +1. A bottom boundary layer with T/S tracer properties `bbl_tracer`, +density `bbl_rho`, and thickness `bbl_eta`. -2. A residual thickness - - resThk = thk - bbl_eta - -with tracer properties +2. A residual thickness `resThk = thk - bbl_eta` with tracer properties resTracer = ( tracer * thk - bbl_tracer * bbl_eta ) / resThk -such that the volume integral of bbl_tracer and resTracer is consistent with +such that the volume integral of `bbl_tracer` and `resTracer` is consistent with the Tracer properties of bottommost wet grid cell. -The bottom boundary layer properties bbl_tracer evolve as follows: +The bottom boundary layer properties `bbl_tracer` evolve as follows: -I. Vertical entrainment between BBL and residual volume of bottommost wet cell: +I. Vertical detrainment between BBL and residual volume of bottommost wet cell: -(i) If bbl_rho > Rho , the T/S properties of the BBL are entrained into -the residual volume with a vertical velocity bbl_wvel such that: +(i) If `bbl_rho > rho` , the T/S properties of the BBL are detrained into +the residual volume with a vertical velocity `bbl_wvel` such that: bbl_eta(T+deltaT) = max( 0, bbl_eta(T) - bbl_wvel * deltaT ) -(ii) If rho >= bbl_rho or bbl_eta(T) = 0 then set bbl_tracer = Tracer +(ii) If `rho >= bbl_rho` or `bbl_eta(T) = 0` then set `bbl_tracer = Tracer` Above operations do not change tracer properties of bottommost wet cell. II. Horizontal exchange between adjacent bottom boundary layer cells when heavy BBL water is above or at the same level as lighter BBL water. The -strength of horizontal exchange is controlled by velocity parameter bbl_hvel. +strength of horizontal exchange is controlled by velocity parameter `bbl_hvel`. -(i) Replenish thickness of donor cell, bbl_eta(d), if needed: +(i) Replenish thickness of donor cell, `bbl_eta(d)`, if needed: IF bbl_tracer(d) .EQ. Tracer(d) .AND. bbl_eta(d) .LT. bbl_initEta THEN bbl_eta(d) = min ( bbl_initEta, Thk(d) ) ENDIF -(ii) Heavy water flowing out of a cell lowers bbl_eta(d) in donor cell and -increases bbl_eta(r) in receiving cell. The volume transport dVol out +(ii) Heavy water flowing out of a cell lowers `bbl_eta(d)` in donor cell and +increases `bbl_eta(r)` in receiving cell. The volume transport `dVol` out of the donor cell is: dVol = min( bbl_eta(d) * rA(d) / 2, @@ -66,7 +62,7 @@ d(x/y)G * bbl_eta(d) * bbl_hvel * deltaT ) (iii) Compute and accumulate tracer tendencies for donor and receiving cell. -These will be applied to the model's tracer quantities by bbl_tendency_apply. +These will be applied to the model's tracer quantities by `bbl_tendency_apply`. bbl_tend = dVol * (bbl_tracer(d) - resTracer(r)) / deltaT @@ -74,8 +70,8 @@ bbl_tendTracer(r) = bbl_tendTracer(r) + bbl_tend / rA(r) / thk(r) -(iv) Adjust pbl thickness and tracer properties. - +(iv) Adjust bbl thickness and tracer properties. + bbl_eta(d,T+deltaT) = bbl_eta(d,T) - dVol / rA(d) IF bbl_eta(d) .LT. 0.0001 THEN bbl_eta(d) = 0.0 @@ -85,15 +81,24 @@ bbl_eta(r,T+deltaT) = bbl_eta(r,T) + dVol / rA(r) bbl_tracer(r,T+deltaT) = ( dVol * bbl_tracer(d,T) + - bbl_eta(r,T) * rA(r) * bbl_tracer(r,T) ) / - ( bbl_eta(r,T+deltaT) * rA(r) ) + bbl_eta(r,T) * rA(r) * bbl_tracer(r,T) ) / + ( bbl_eta(r,T+deltaT) * rA(r) ) Note that horizontal exchange is carried out in following order: + 1. Meridional bbl exchange at northern edge. 2. Meridional bbl exchange inside tile. 3. Zonal bbl exchange at eastern edge. 4. Zonal bbl exchange inside tile. + The northern and eastern edge computations need to be done before computations inside the tile in order to avoid edge artifacts. Note that different tiling will produce slightly different results as order of computations does matters. + +Some key limitations of package as it stands: + +- Detrainment and horizontal transport velocities (`bbl_wvel` and `bbl_hvvel`) are + prescribed rather than computed. +- There is no provision for entrainment (negative `bbl_wvel`). +- bbl depth (`bbl_eta`) cannot be thicker than thickness of bottommost wet grid cell. diff --git a/pkg/bbl/bbl_diagnostics_init.F b/pkg/bbl/bbl_diagnostics_init.F index 98ae0547b8..72a2cce1a4 100644 --- a/pkg/bbl/bbl_diagnostics_init.F +++ b/pkg/bbl/bbl_diagnostics_init.F @@ -49,7 +49,7 @@ SUBROUTINE BBL_DIAGNOSTICS_INIT( myThid ) diagName = 'BBLsalt ' diagTitle = 'Bottom boundary layer salinity' - diagUnits = 'psu ' + diagUnits = 'g/kg ' diagCode = 'SM M1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) @@ -70,7 +70,7 @@ SUBROUTINE BBL_DIAGNOSTICS_INIT( myThid ) diagName = 'BBLtendS' diagTitle = 'Bottom salt tendency due to BBL' - diagUnits = 'psu/s ' + diagUnits = 'g/kg/s ' diagCode = 'SM M1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) diff --git a/pkg/bling/BLING_OPTIONS.h b/pkg/bling/BLING_OPTIONS.h index a112008859..0fd83ab254 100644 --- a/pkg/bling/BLING_OPTIONS.h +++ b/pkg/bling/BLING_OPTIONS.h @@ -6,7 +6,7 @@ #ifdef ALLOW_BLING C Package-specific Options & Macros go here -C BLING+Nitrogen is the default model. It's a version +C BLING+Nitrogen is the default model. It is a version C of BLING with 8 tracers and 3 phyto classes. C For the original 6-tracer model of Galbraith et al (2010), C define USE_BLING_V1 - but note the different order of tracers in data.ptracers @@ -69,11 +69,11 @@ C Simplify some parts of the code that are problematic when using the adjoint C For adjoint safe, do not call bling_dvm #ifdef BLING_ADJOINT_SAFE -#undef USE_BLING_DVM +# undef USE_BLING_DVM #endif C ABIOTIC OPTIONS -C Compile Munhoven (2013)'s "Solvesaphe" package for pH/pCO2 +C Compile "Solvesaphe" package (Munhoven 2013) for pH/pCO2 C can still select Follows et al (2006) solver in data.bling, C but will use solvesaphe dissociation coefficient options. #undef CARBONCHEM_SOLVESAPHE @@ -90,9 +90,10 @@ C When calculating the fraction of sinking organic matter, use model biomass dia C Assume different nutrient limitations for small and large phytoplankton. #define SIZE_DEP_LIM +C-- Undocumented Options: +#undef MULT_NUT_LIM +#undef USE_ATMOSCO2 +#undef USE_EXFCO2 + #endif /* ALLOW_BLING */ #endif /* BLING_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/bling/bling_airseaflux.F b/pkg/bling/bling_airseaflux.F index 27533e70a8..341d7b7cf9 100644 --- a/pkg/bling/bling_airseaflux.F +++ b/pkg/bling/bling_airseaflux.F @@ -109,10 +109,14 @@ SUBROUTINE BLING_AIRSEAFLUX( _RL ttemp _RL stemp _RL oCnew +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) + INTEGER tkey +#endif CEOP #ifdef ALLOW_AUTODIFF_TAMC - itdkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy + tkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy #endif C---------------------------------------------------------------------- @@ -174,7 +178,7 @@ SUBROUTINE BLING_AIRSEAFLUX( c pCO2 solver... #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ph(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE ph(:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif C$TAF LOOP = parallel diff --git a/pkg/bling/bling_bio.F b/pkg/bling/bling_bio.F index d5ae20d15e..c8e2ddb193 100644 --- a/pkg/bling/bling_bio.F +++ b/pkg/bling/bling_bio.F @@ -200,10 +200,14 @@ SUBROUTINE BLING_BIO( _RL tmp_p_diaz_ML _RL tmp_ML #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) + INTEGER tkey +#endif CEOP #ifdef ALLOW_AUTODIFF_TAMC - itdkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy + tkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy #endif c --------------------------------------------------------------------- @@ -539,8 +543,8 @@ SUBROUTINE BLING_BIO( c Separate loop for adjoint stores #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE Phy_sm_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_lg_local = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE Phy_sm_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_lg_local = comlev1_bibj, key=tkey, kind=isbyte #endif DO k=1,Nr @@ -944,5 +948,4 @@ SUBROUTINE BLING_BIO( #endif /* ALLOW_BLING */ RETURN - END diff --git a/pkg/bling/bling_bio_nitrogen.F b/pkg/bling/bling_bio_nitrogen.F index 45a6a4fa94..d387959867 100644 --- a/pkg/bling/bling_bio_nitrogen.F +++ b/pkg/bling/bling_bio_nitrogen.F @@ -332,10 +332,15 @@ SUBROUTINE BLING_BIO_NITROGEN( _RL mu_sm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL mu_lg(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) +C ijkkey :: tape key (depends on i,j,k indices and tiles) + INTEGER tkey, ijkkey +#endif CEOP #ifdef ALLOW_AUTODIFF_TAMC - itdkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy + tkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy #endif C Initialize output and diagnostics @@ -483,6 +488,10 @@ SUBROUTINE BLING_BIO_NITROGEN( U mld, I bi, bj, imin, imax, jmin, jmax, I myTime, myIter, myThid) +# ifdef ALLOW_AUTODIFF_TAMC +C save result of s/r bling_mixedlayer to avoid calling it in AD-code +CADJ STORE mld = comlev1_bibj, key=tkey, kind=isbyte +# endif #endif C Phytoplankton mixing @@ -493,9 +502,9 @@ SUBROUTINE BLING_BIO_NITROGEN( #ifdef ML_MEAN_PHYTO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE Phy_sm_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_lg_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_diaz_local = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE Phy_sm_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_lg_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_diaz_local = comlev1_bibj, key=tkey, kind=isbyte #endif DO j=jmin,jmax DO i=imin,imax @@ -559,6 +568,11 @@ SUBROUTINE BLING_BIO_NITROGEN( U irr_inst, irr_eff, I bi, bj, imin, imax, jmin, jmax, I myTime, myIter, myThid ) +#ifdef ALLOW_AUTODIFF_TAMC +C save results of s/r bling_light to avoid calling it in AD-code +CADJ STORE irr_inst = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE irr_eff = comlev1_bibj, key=tkey, kind=isbyte +#endif C phytoplankton photoadaptation to local light level C This represents the fact that phytoplankton cells are adapted @@ -914,8 +928,8 @@ SUBROUTINE BLING_BIO_NITROGEN( #if ( ( defined SIZE_DEP_LIM ) || ( defined USE_SIBLING ) ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE Phy_sm_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_lg_local = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE Phy_sm_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_lg_local = comlev1_bibj, key=tkey, kind=isbyte #endif DO k=1,Nr DO j=jmin,jmax @@ -959,9 +973,9 @@ SUBROUTINE BLING_BIO_NITROGEN( C Separate loop for adjoint stores #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE Phy_sm_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_lg_local = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE Phy_diaz_local = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE Phy_sm_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_lg_local = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Phy_diaz_local = comlev1_bibj, key=tkey, kind=isbyte #endif DO k=1,Nr @@ -1116,6 +1130,16 @@ SUBROUTINE BLING_BIO_NITROGEN( ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C these stores avoid recomputing the previous loop, but avoiding +C that may not be necessary +CADJ STORE N_spm = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE P_spm = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE Fe_spm = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE don_prod = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE n_recycle = comlev1_bibj, key = tkey, kind = isbyte +#endif + C --------------------------------------------------------------------- C Remineralization C In general, the flux at the bottom of a grid cell should equal @@ -1143,6 +1167,17 @@ SUBROUTINE BLING_BIO_NITROGEN( #endif DO k=1,Nr +#ifdef ALLOW_AUTODIFF_TAMC + ijkkey = k + ( (i-1) + (j-1) * (2*OLx+sNx) ) * Nr + & + (tkey - 1) * (2*OLx+sNx) * (2*OLy+sNy) * Nr +CADJ STORE PONflux_u = comlev1_bibj_ijk, key = ijkkey, kind = isbyte +CADJ STORE POPflux_u = comlev1_bibj_ijk, key = ijkkey, kind = isbyte +CADJ STORE PFEflux_u = comlev1_bibj_ijk, key = ijkkey, kind = isbyte +CADJ STORE CaCO3flux_u = comlev1_bibj_ijk, key = ijkkey, kind = isbyte +# ifdef USE_SIBLING +CADJ STORE PONflux_u = comlev1_bibj_ijk, key = ijkkey, kind = isbyte +# endif +#endif C Initialization here helps taf @@ -1397,7 +1432,9 @@ SUBROUTINE BLING_BIO_NITROGEN( ENDDO ENDDO ENDDO - +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE N_reminp = comlev1_bibj, key=tkey, kind=isbyte +#endif C----------------------------------------------------------- C remineralization from diel vertical migration #ifdef USE_BLING_DVM @@ -1583,7 +1620,7 @@ SUBROUTINE BLING_BIO_NITROGEN( C Sum up the total organic flux to be transported by DVM - do k = 1, nr + do k = 1, Nr fdvmn_vint = fdvmn_vint + N_dvm(i,j,k) * drf(k) fdvmp_vint = fdvmp_vint + P_dvm(i,j,k) * drf(k) fdvmfe_vint = fdvmfe_vint + Fe_dvm(i,j,k) * drf(k) @@ -1598,7 +1635,7 @@ SUBROUTINE BLING_BIO_NITROGEN( Fe_remindvm(i,j,1) = fdvmfe_vint * (1 - dvm(i,j,1)) / & (epsln + drf(1)) - do k = 2, nr + do k = 2, Nr N_remindvm(i,j,k) = fdvmn_vint * & (dvm(i,j,k-1) - dvm(i,j,k)) / (epsln + drf(k)) P_remindvm(i,j,k) = fdvmp_vint * diff --git a/pkg/bling/bling_carbon_chem.F b/pkg/bling/bling_carbon_chem.F index 3649b7bcc5..64a31ae8f2 100644 --- a/pkg/bling/bling_carbon_chem.F +++ b/pkg/bling/bling_carbon_chem.F @@ -45,7 +45,7 @@ subroutine CALC_PCO2( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) INTEGER donewt INTEGER inewtonmax INTEGER ibrackmax @@ -359,7 +359,7 @@ subroutine CALC_PCO2_APPROX( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) _RL t, s, pt, sit, ta _RL pCO2surfloc, diclocal, pHlocal _RL fflocal, btlocal, stlocal, ftlocal @@ -504,7 +504,7 @@ subroutine CARBON_COEFFS( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) C OUTPUT C IMPORTANT: Some words about units - (JCO, 4/4/1999) C - Models carry tracers in mol/m^3 (on a per volume basis) @@ -640,8 +640,8 @@ subroutine CARBON_COEFFS( ak1(i,j,bi,bj)=10.**(-1. _d 0*(3670.7 _d 0*invtk - & 62.008 _d 0 + 9.7944 _d 0*dlogtk - & 0.0118 _d 0 * s + 0.000116 _d 0*s2)) - ak2(i,j,bi,bj)=10.**(-1. _d 0*(1394.7 _d 0*invtk+ 4.777 _d 0- - & 0.0184 _d 0*s + 0.000118 _d 0*s2)) + ak2(i,j,bi,bj)=10.**(-1. _d 0*(1394.7 _d 0*invtk +4.777 _d 0 + & -0.0184 _d 0*s + 0.000118 _d 0*s2)) C------------------------------------------------------------------------ C kb = [H][BO2]/[HBO2] C Millero p.669 (1995) using data from dickson (1990) @@ -793,7 +793,7 @@ subroutine CARBON_COEFFS_PRESSURE_DEP( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) C OUTPUT C IMPORTANT: Some words about units - (JCO, 4/4/1999) C - Models carry tracers in mol/m^3 (on a per volume basis) @@ -966,10 +966,10 @@ subroutine CARBON_COEFFS_PRESSURE_DEP( C k2 = [H][CO3]/[HCO3] C Millero p.664 (1995) using Mehrbach et al. data on seawater scale C Both on seawater pH scale - ak1(i,j,bi,bj)=10**(-1*(3670.7*invtk - + ak1(i,j,bi,bj)=10.**(-1.*(3670.7*invtk - & 62.008 + 9.7944*dlogtk - & 0.0118 * s + 0.000116*s2)) - ak2(i,j,bi,bj)=10**(-1*(1394.7*invtk + 4.777 - + ak2(i,j,bi,bj)=10.**(-1.*(1394.7*invtk + 4.777 - & 0.0184*s + 0.000118*s2)) C NOW PRESSURE DEPENDENCE: c Following Takahashi (1981) GEOSECS report - quoting Culberson and @@ -1258,8 +1258,8 @@ subroutine CARBON_COEFFS_PRESSURE_DEP( & + (-0.00588d0 + 0.0001845d0*t)*zdum*zdum) & / (188.93d0*(t + 273.15d0)) - Ksp_TP_Calc(i,j,bi,bj) = Ksp_T_Calc*10**(xvalue) - Ksp_TP_Arag(i,j,bi,bj) = Ksp_T_Arag*10**(xvalue) + Ksp_TP_Calc(i,j,bi,bj) = Ksp_T_Calc*10.**(xvalue) + Ksp_TP_Arag(i,j,bi,bj) = Ksp_T_Arag*10.**(xvalue) C------------------------------------------------------------------------ else diff --git a/pkg/bling/bling_description.txt b/pkg/bling/bling_description.txt index 7959b597e2..3bb24fdc97 100644 --- a/pkg/bling/bling_description.txt +++ b/pkg/bling/bling_description.txt @@ -1,120 +1,120 @@ -The "BLING" package is adapted from the Biogeochemistry with Light, Iron, Nutrient and Gas model developed at GFDL by Eric Galbraith and collaborators. Several subroutines, such as air-sea exchange and carbonate chemistry, are adapted from the "DIC" package. It is compatible with the MITgcm adjoint. - -N-BLING, with nitrogen cycling, is the default code. It includes 8 tracers: DIC, ALK, O2, NO3, PO4, Fe, DON, DOP (in that order in data.ptracers). Prognostic tracers for silica and phytoplankton biomass are optional. - -The original 6-tracer BLING code (Galbraith et al., 2010) can be compiled by defining the flag USE_BLING_V1. The tracers in data.ptracers must then be specified in the following order: DIC, ALK, O2, PO4, Fe, DOP. - - - -For more information see: -------------------------- - -Galbraith, E.D., Gnanadesikan, A., Dunne, J. and Hiscock, M. 2010. Regional impacts of iron-light colimitation in a global biogeochemical model. Biogeosciences, 7, 1043-1064. - -http://www.gfdl.noaa.gov/simplified-ocean-biogeochemistry-bling - -https://sites.google.com/site/blingmodel/ - - - -Below are the notes from the file generic_BLING.v2.F90: -------------------------------------------------------- - -Biogeochemistry with Light, Iron, Nutrient and Gas version two (BLINGv2) includes an implicit ecological model of growth limitation by light, temperature, nitrogen, phosphorus and iron, and simulates organic and O2 pools. - -BLINGv2 differs from blingv0 by including a nitrogen cycle (with N2 fixation and denitrification) and flexible N:P stoichiometry. The iron limitation is now treated slightly differently, in order to be consistent with P. In addition, the phytoplankton biomass is now treated as a non-advected tracer (i.e. a diagnostic tracer in GFDL parlance) for the purpose of calculating uptake, which relaxes the strict assumption of balanced growth. There is also a subgridscale sediment parameterization, to capture fine-scale bathymetric features in particle remineralization, and a diel vertical migrator (DVM) parameterization for export and remineralization. In addition, there are numerous small changes and re-tunings. - -Food web processing in the euphotic zone is handled following the empirical relationships discussed by Dunne et al.(2005). O2 equilibria and gas exchange follow OCMIP2 protocols. - -BLING is a biogeochemistry tool, with ecosystem-like behaviour, rather than a full-complexity ecosystem model. It takes certain computational shortcuts in order to represent well-known features of ecosystems, but without having to resolve the ecosystem components explicitly. Most importantly, living and particulate organic matter is not subject to advection and mixing due to ocean circulation. Particular caution should be applied when interpreting small-scale behaviour (scales of advection per week) and the detailed timing of growth in dynamic environments, such as during spring blooms. - -Additional functionality comes from an optional carbon cycle that is non-interactive, i.e. does not change the core bling behaviour, as well as tracers including radiocarbon (14c), d13C (13c), a decomposition of carbon components by gas exchange and remineralization (carbon_pre), a nutrient source tagging module (nut_source) that uses a global pycnocline (pyc_ave), a decomposition of oxygen as preformed and total (o2_pre) as well as photosynthetic, and a decomposition of phosphate and nitrate as preformed and remineralized (nut_pre). All of this - and more! - is found in the module BLING_extras. - -This model is available for public use. The current version is blingv2. The version number refers to the core model behaviour; additional tracers exist in different iterations of the module. There is not yet a publication. blingv0 can be referenced as: -Galbraith, E.D., Gnanadesikan, A., Dunne, J. and Hiscock, M. 2010. Regional impacts of iron-light colimitation in a global biogeochemical model. Biogeosciences, 7, 1043-1064. - -All parameter values are as described in this paper. Note that this reference is only for the core model components, and does not include any of the additional functionalities, which remain undocumented. Please contact Eric Galbraith (eric.galbraith@mcgill.ca) for more information. - - - - - - - -Notes on running BLING in MITgcm: ---------------------------------- - -(See the example in MITgcm_contrib/verification_other/global_oce_biogeo_bling) - -1) make sure that you have the current BLING code: -in your pkg/bling directory -type: -cvs update - -2) in your code folder, add these to packages.conf: -gchem -ptracers -bling - -3) in your code folder, copy pkg/bling/BLING_OPTIONS.h -and define / undef options - -4) in your run folder, add -data.gchem (useBLING=.TRUE.) -data.ptracers (specify ICS for ptracers) -data.bling (specify atm pCO2, silica field, iron atm deposition field) -You can find examples of these files in MITgcm_contrib/verification_other/global_oce_biogeo_bling/input/ - -5) in your run folder, update -data.pkg (usePTRACERS=.TRUE., useGCHEM=.TRUE.) -and if you use it -data.obcs or data.rbcs (specify OBCS for ptracers) - - - - - - -BLING-specific options (to be specified in BLING_OPTIONS.h): ------------------------------------------------------------- - -BLING_NO_NEG -When biogeochemical tracer fields become negative (which can happen when advecting fields with low values and high spatial gradients), change negative values to small positive values before nutrient limitations are calculated in bling_production. - -ML_MEAN_LIGHT -Assume that phytoplankton in the mixed layer experience the average light over the mixed layer (as in original BLING model) - -ML_MEAN_PHYTO -Assume that phytoplankton are homogenized in the mixed layer - -ADVECT_PHYTO -Adds a prognostic tracer for total phytoplankton biomass - -BLING_ADJOINT_SAFE -Simplify some parts of the code that are problematic when using the adjoint - -USE_QSW -Determine PAR from shortwave radiation Qsw (instead of based on location & time) - - - - -Notes on BLING_ADJOINT SAFE: - -- minimum value for Pc_m and Pc_m_diaz -- FreeFe and pfeflux_l are not set to 0 when anoxic -- using fixed wsink0 rather than variable wsink in organic Fe adsorption calculation -- no benthic denitrification -- no DVM - - - - - - - - - - - - +The "BLING" package is adapted from the Biogeochemistry with Light, Iron, Nutrient and Gas model developed at GFDL by Eric Galbraith and collaborators. Several subroutines, such as air-sea exchange and carbonate chemistry, are adapted from the "DIC" package. It is compatible with the MITgcm adjoint. + +N-BLING, with nitrogen cycling, is the default code. It includes 8 tracers: DIC, ALK, O2, NO3, PO4, Fe, DON, DOP (in that order in data.ptracers). Prognostic tracers for silica and phytoplankton biomass are optional. + +The original 6-tracer BLING code (Galbraith et al., 2010) can be compiled by defining the flag USE_BLING_V1. The tracers in data.ptracers must then be specified in the following order: DIC, ALK, O2, PO4, Fe, DOP. + + + +For more information see: +------------------------- + +Galbraith, E.D., Gnanadesikan, A., Dunne, J. and Hiscock, M. 2010. Regional impacts of iron-light colimitation in a global biogeochemical model. Biogeosciences, 7, 1043-1064. + +http://www.gfdl.noaa.gov/simplified-ocean-biogeochemistry-bling + +https://sites.google.com/site/blingmodel/ + + + +Below are the notes from the file generic_BLING.v2.F90: +------------------------------------------------------- + +Biogeochemistry with Light, Iron, Nutrient and Gas version two (BLINGv2) includes an implicit ecological model of growth limitation by light, temperature, nitrogen, phosphorus and iron, and simulates organic and O2 pools. + +BLINGv2 differs from blingv0 by including a nitrogen cycle (with N2 fixation and denitrification) and flexible N:P stoichiometry. The iron limitation is now treated slightly differently, in order to be consistent with P. In addition, the phytoplankton biomass is now treated as a non-advected tracer (i.e. a diagnostic tracer in GFDL parlance) for the purpose of calculating uptake, which relaxes the strict assumption of balanced growth. There is also a subgridscale sediment parameterization, to capture fine-scale bathymetric features in particle remineralization, and a diel vertical migrator (DVM) parameterization for export and remineralization. In addition, there are numerous small changes and re-tunings. + +Food web processing in the euphotic zone is handled following the empirical relationships discussed by Dunne et al.(2005). O2 equilibria and gas exchange follow OCMIP2 protocols. + +BLING is a biogeochemistry tool, with ecosystem-like behaviour, rather than a full-complexity ecosystem model. It takes certain computational shortcuts in order to represent well-known features of ecosystems, but without having to resolve the ecosystem components explicitly. Most importantly, living and particulate organic matter is not subject to advection and mixing due to ocean circulation. Particular caution should be applied when interpreting small-scale behaviour (scales of advection per week) and the detailed timing of growth in dynamic environments, such as during spring blooms. + +Additional functionality comes from an optional carbon cycle that is non-interactive, i.e. does not change the core bling behaviour, as well as tracers including radiocarbon (14c), d13C (13c), a decomposition of carbon components by gas exchange and remineralization (carbon_pre), a nutrient source tagging module (nut_source) that uses a global pycnocline (pyc_ave), a decomposition of oxygen as preformed and total (o2_pre) as well as photosynthetic, and a decomposition of phosphate and nitrate as preformed and remineralized (nut_pre). All of this - and more! - is found in the module BLING_extras. + +This model is available for public use. The current version is blingv2. The version number refers to the core model behaviour; additional tracers exist in different iterations of the module. There is not yet a publication. blingv0 can be referenced as: +Galbraith, E.D., Gnanadesikan, A., Dunne, J. and Hiscock, M. 2010. Regional impacts of iron-light colimitation in a global biogeochemical model. Biogeosciences, 7, 1043-1064. + +All parameter values are as described in this paper. Note that this reference is only for the core model components, and does not include any of the additional functionalities, which remain undocumented. Please contact Eric Galbraith (eric.galbraith@mcgill.ca) for more information. + + + + + + + +Notes on running BLING in MITgcm: +--------------------------------- + +(See the example in MITgcm_contrib/verification_other/global_oce_biogeo_bling) + +1) make sure that you have the current BLING code: +in your pkg/bling directory +type: +cvs update + +2) in your code folder, add these to packages.conf: +gchem +ptracers +bling + +3) in your code folder, copy pkg/bling/BLING_OPTIONS.h +and define / undef options + +4) in your run folder, add +data.gchem (useBLING=.TRUE.) +data.ptracers (specify ICS for ptracers) +data.bling (specify atm pCO2, silica field, iron atm deposition field) +You can find examples of these files in MITgcm_contrib/verification_other/global_oce_biogeo_bling/input/ + +5) in your run folder, update +data.pkg (usePTRACERS=.TRUE., useGCHEM=.TRUE.) +and if you use it +data.obcs or data.rbcs (specify OBCS for ptracers) + + + + + + +BLING-specific options (to be specified in BLING_OPTIONS.h): +------------------------------------------------------------ + +BLING_NO_NEG +When biogeochemical tracer fields become negative (which can happen when advecting fields with low values and high spatial gradients), change negative values to small positive values before nutrient limitations are calculated in bling_production. + +ML_MEAN_LIGHT +Assume that phytoplankton in the mixed layer experience the average light over the mixed layer (as in original BLING model) + +ML_MEAN_PHYTO +Assume that phytoplankton are homogenized in the mixed layer + +ADVECT_PHYTO +Adds a prognostic tracer for total phytoplankton biomass + +BLING_ADJOINT_SAFE +Simplify some parts of the code that are problematic when using the adjoint + +USE_QSW +Determine PAR from shortwave radiation Qsw (instead of based on location & time) + + + + +Notes on BLING_ADJOINT SAFE: + +- minimum value for Pc_m and Pc_m_diaz +- FreeFe and pfeflux_l are not set to 0 when anoxic +- using fixed wsink0 rather than variable wsink in organic Fe adsorption calculation +- no benthic denitrification +- no DVM + + + + + + + + + + + + diff --git a/pkg/bling/bling_light.F b/pkg/bling/bling_light.F index b1aa70e193..3f1588733c 100644 --- a/pkg/bling/bling_light.F +++ b/pkg/bling/bling_light.F @@ -72,10 +72,6 @@ SUBROUTINE BLING_LIGHT( _RL irr_eff (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) C === Local variables === - _RL solar, albedo - _RL dayfrac, yday, delta - _RL lat, sun1, dayhrs - _RL cosz, frac, fluxi _RL atten _RL irr_surf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef ML_MEAN_LIGHT @@ -84,6 +80,10 @@ SUBROUTINE BLING_LIGHT( _RL tmp_ML #endif #ifndef USE_QSW + _RL solar, albedo + _RL dayfrac, yday, delta + _RL lat, sun1, dayhrs + _RL cosz, frac, fluxi _RL sfac (1-OLy:sNy+OLy) #endif #ifdef PHYTO_SELF_SHADING @@ -95,14 +95,18 @@ SUBROUTINE BLING_LIGHT( _RL atten_bg _RL irr_rd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL irr_bg (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (tile dependent) + INTEGER tkey #endif +#endif /* PHYTO_SELF_SHADING */ INTEGER i,j,k LOGICAL QSW_underice CEOP #ifdef PHYTO_SELF_SHADING # ifdef ALLOW_AUTODIFF_TAMC - itdkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy + tkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy # endif /* ALLOW_AUTODIFF_TAMC */ #endif /* PHYTO_SELF_SHADING */ @@ -167,7 +171,7 @@ SUBROUTINE BLING_LIGHT( sfac(j) = MAX(1. _d -5,fluxi) ENDDO !j -#endif +#endif /* ndef USE_QSW */ c --------------------------------------------------------------------- c instantaneous light, mixed layer averaged light @@ -204,8 +208,8 @@ SUBROUTINE BLING_LIGHT( #ifdef PHYTO_SELF_SHADING # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE irr_bg = comlev1_bibj, key=itdkey, kind=isbyte -CADJ STORE irr_rd = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE irr_bg = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE irr_rd = comlev1_bibj, key=tkey, kind=isbyte # endif /* ALLOW_AUTODIFF_TAMC */ #endif /* PHYTO_SELF_SHADING */ diff --git a/pkg/bling/bling_main.F b/pkg/bling/bling_main.F index 1048664c0e..bb62bde97d 100644 --- a/pkg/bling/bling_main.F +++ b/pkg/bling/bling_main.F @@ -116,13 +116,16 @@ SUBROUTINE BLING_MAIN( PTR_DIC, PTR_ALK, PTR_O2, _RL G_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif #endif +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER tkey +#endif CEOP c----------------------------------------------------------- c Initialize local variables #ifdef ALLOW_AUTODIFF_TAMC - itdkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy + tkey = bi + (bj - 1)*nSx + (ikey_dynamics - 1)*nSx*nSy #endif DO j=jmin,jmax DO i=imin,imax @@ -165,7 +168,7 @@ SUBROUTINE BLING_MAIN( PTR_DIC, PTR_ALK, PTR_O2, I myTime, myIter, myThid) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ph(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, kind=isbyte +CADJ STORE ph(:,:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif c----------------------------------------------------------- @@ -193,6 +196,9 @@ SUBROUTINE BLING_MAIN( PTR_DIC, PTR_ALK, PTR_O2, #endif U G_DIC, G_ALK, G_O2, G_FE, U G_PO4, G_DOP, G_NO3, G_DON, +#ifdef USE_SIBLING + U G_SI, +#endif I bi, bj, imin, imax, jmin, jmax, I myTime, myIter, myThid) #else @@ -208,7 +214,7 @@ SUBROUTINE BLING_MAIN( PTR_DIC, PTR_ALK, PTR_O2, C Calculate river runoff source C Tracers are already diluted by freswater input, P-E+R C This accounts for tracer concentration in river runoff -C no input south of 60S (it's ice melt) +C no input south of 60S (it is ice melt) #ifdef ALLOW_EXF DO j=jmin,jmax diff --git a/pkg/bling/bling_mixedlayer.F b/pkg/bling/bling_mixedlayer.F index d075167e41..ae8b07bd26 100644 --- a/pkg/bling/bling_mixedlayer.F +++ b/pkg/bling/bling_mixedlayer.F @@ -1,7 +1,10 @@ #include "BLING_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP - subroutine BLING_MIXEDLAYER( + SUBROUTINE BLING_MIXEDLAYER( U sumMLDepth, I bi, bj, imin, imax, jmin, jmax, I myTime, myIter, myThid) @@ -25,10 +28,9 @@ subroutine BLING_MIXEDLAYER( #include "BLING_VARS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS_PARAMS.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" #endif - C === Routine arguments === C bi,bj :: tile indices C iMin,iMax :: computation domain: 1rst index range @@ -56,11 +58,18 @@ subroutine BLING_MIXEDLAYER( _RL blg_minstra(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL blg_str2 (Nr) _RL blg_str2max - integer blgI,blgJ + INTEGER blgI,blgJ +#endif + INTEGER i,j,k +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ijkkey, ikey, kkey #endif - integer i,j,k CEOP +#ifdef ALLOW_AUTODIFF_TAMC + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + ikey = (ikey-1)*Nr +#endif /* ALLOW_AUTODIFF_TAMC */ # ifndef BLING_USE_THRESHOLD_MLD c --------------------------------------------------------------------- c Mixed layer depth initialization @@ -115,14 +124,18 @@ subroutine BLING_MIXEDLAYER( CMM Strat at k is on bottom of cell C % 1. find min(drho/dz) - DO j=jmin,jmax - DO i=imin,imax - DO k = 1,NR - IF(blg_stra(i,j,k).LT.blg_minstra(i,j)) + DO k = 1,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = ikey + k +CADJ STORE blg_minstra = comlev1_bibj_k, key = kkey +#endif + DO j=jmin,jmax + DO i=imin,imax + IF(blg_stra(i,j,k).LT.blg_minstra(i,j)) & blg_minstra(i,j) = blg_stra(i,j,k) - ENDDO - ENDDO ENDDO + ENDDO + ENDDO CMM NOW LOOP TO GET MLD DO j=jmin,jmax @@ -133,7 +146,7 @@ subroutine BLING_MIXEDLAYER( IF (blg_minstra(i,j).LT. 0. _d 0) THEN C % 3. find the index of minimum stratification blgI = 3 - DO k = NR,1,-1 + DO k = Nr,1,-1 IF (blg_stra(i,j,k).EQ.blg_minstra(i,j)) blgI = k ENDDO C %if deep enough see strat starts before pynocline @@ -142,6 +155,11 @@ subroutine BLING_MIXEDLAYER( CMM Only look up blg_str2max = -999 DO k = 3,blgI +#ifdef ALLOW_AUTODIFF_TAMC + ijkkey = ikey * (2*OLx+sNx) * (2*OLy+sNy) + & + ( (j-1)*(2*OLx+sNx) + (i-1) ) + k +CADJ STORE blg_str2max = comlev1_bibj_ijk, key = ijkkey +#endif CMM blg_str2 will be in cell center blg_str2(k) = (blg_stra(i,j,k-1) -blg_stra(i,j,k)) & *recip_drF(k) @@ -150,7 +168,7 @@ subroutine BLING_MIXEDLAYER( IF (blg_str2(k).GT.blg_str2max) & blg_str2max = blg_str2(k) ENDDO - DO k = NR,1,-1 + DO k = Nr,1,-1 IF (blg_str2(k).EQ.blg_str2max) blgJ = k ENDDO @@ -226,4 +244,3 @@ subroutine BLING_MIXEDLAYER( RETURN END - diff --git a/pkg/bling/bling_sgs.F b/pkg/bling/bling_sgs.F index 03525b70c5..e45c022f24 100644 --- a/pkg/bling/bling_sgs.F +++ b/pkg/bling/bling_sgs.F @@ -1,7 +1,7 @@ #include "BLING_OPTIONS.h" CBOP - subroutine BLING_SGS( + SUBROUTINE BLING_SGS( I bi, bj, imin, imax, jmin, jmax, I myTime, myIter, myThid) @@ -22,9 +22,6 @@ subroutine BLING_SGS( #include "BLING_VARS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS_PARAMS.h" -#ifdef ALLOW_AUTODIFF -# include "tamc.h" -#endif C === Routine arguments === C bi,bj :: tile indices @@ -59,9 +56,9 @@ subroutine BLING_SGS( c Note that the remineralization of particle flux intercepting the subgridscale c sediment is implicit in the reminp terms. -#ifdef use_sgs_sed +c#ifdef use_sgs_sed c!! -#endif +c#endif c --------------------------------------------------------------------- diff --git a/pkg/bling/bling_solvesaphe.F b/pkg/bling/bling_solvesaphe.F index 59f8429421..f50c1dbcf2 100644 --- a/pkg/bling/bling_solvesaphe.F +++ b/pkg/bling/bling_solvesaphe.F @@ -248,7 +248,7 @@ SUBROUTINE CALC_PCO2_SOLVESAPHE( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) _RL t, s, z_po4tot, z_siltot, z_alktot _RL z_pco2, z_dictot, pHlocal _RL z_co3 @@ -2076,4 +2076,4 @@ SUBROUTINE SOLVE_AT_GENERAL_SEC(p_alktot, p_dictot, RETURN END C END FUNCTION SOLVE_AT_GENERAL_SEC -C ========================================================================= \ No newline at end of file +C ========================================================================= diff --git a/pkg/cal/cal_getmonthsrec.F b/pkg/cal/cal_getmonthsrec.F index 1ce5228af5..1efb80772d 100644 --- a/pkg/cal/cal_getmonthsrec.F +++ b/pkg/cal/cal_getmonthsrec.F @@ -2,7 +2,7 @@ subroutine cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O month0, month1, year0, year1, I mytime, myiter, mythid & ) @@ -20,7 +20,7 @@ subroutine cal_GetMonthsRec( c modified (10 --> nmonthyear-2, 12 --> nmonthyear). c c changed: Patrick Heimbach heimbach@mit.edu 15-Jun-2000 -c - fixed bug for count1 = nmonthyear +c - fixed bug for month1 = nmonthyear c c ================================================================== c SUBROUTINE cal_GetMonthsRec @@ -37,8 +37,10 @@ subroutine cal_GetMonthsRec( _RL fac logical first logical changed - integer count0 - integer count1 + integer month0 + integer month1 + integer year0 + integer year1 _RL mytime integer myiter integer mythid @@ -60,7 +62,8 @@ subroutine cal_GetMonthsRec( integer startofmonth(4) integer endofmonth(4) integer difftime(4) - integer present + integer presentmonth + integer presentyear integer previous integer next integer prevcount @@ -87,14 +90,15 @@ subroutine cal_GetMonthsRec( c Determine the current date and the current month. call cal_GetDate( myiter, mytime, currentdate, mythid ) - present = mod(currentdate(1)/100,100) + presentyear = currentdate(1)/10000 + presentmonth = mod(currentdate(1)/100,100) startofmonth_1 = (currentdate(1)/100)*100 + 1 startofmonth_2 = 0 call cal_FullDate( startofmonth_1, startofmonth_2, & startofmonth, mythid ) endofmonth_1 = (currentdate(1)/100)*100 + - & ndaymonth(present,currentdate(3)) + & ndaymonth(presentmonth,currentdate(3)) endofmonth_2 = 235959 call cal_FullDate( endofmonth_1, endofmonth_2, & endofmonth, mythid ) @@ -106,7 +110,7 @@ subroutine cal_GetMonthsRec( & mod(currentdate(2)/100,100)*secondsperminute + & mod(currentdate(2),100) & ) - midsecs = float(ndaymonth(present,currentdate(3))* + midsecs = float(ndaymonth(presentmonth,currentdate(3))* & secondsperday/2) call cal_TimeInterval( midsecs, 'secs', midtime, mythid ) @@ -129,8 +133,10 @@ subroutine cal_GetMonthsRec( if ( currentsecs .lt. midsecs ) then - count0 = mod(present+nmonthyear-2,nmonthyear)+1 - prevcount = count0 + month0 = mod(presentmonth+nmonthyear-2,nmonthyear)+1 + year0 = presentyear + if (month0 .EQ. 12) year0 = year0 - 1 + prevcount = month0 shifttime(1) = -shifttime(1) call cal_AddTime( startofmonth, shifttime, middate0, mythid ) @@ -147,7 +153,8 @@ subroutine cal_GetMonthsRec( call cal_TimeInterval( midsecs_np, 'secs', midtime, mythid ) call cal_AddTime( tempDate, midtime, middate0, mythid ) - count1 = present + month1 = presentmonth + year1 = presentyear middate1(1) = middate(1) middate1(2) = middate(2) @@ -156,12 +163,13 @@ subroutine cal_GetMonthsRec( else - count0 = present + month0 = presentmonth + year0 = presentyear if ( prevsecs .lt. midsecs ) then - prevcount = mod(present+nmonthyear-2,nmonthyear)+1 + prevcount = mod(presentmonth+nmonthyear-2,nmonthyear)+1 else - prevcount = present + prevcount = presentmonth endif middate0(1) = middate(1) @@ -169,8 +177,9 @@ subroutine cal_GetMonthsRec( middate0(3) = middate(3) middate0(4) = middate(4) - count1 = mod(present+1,nmonthyear) - if ( count1 .EQ. 0 ) count1 = nmonthyear + month1 = mod(presentmonth, nmonthyear) + 1 + year1 = presentyear + if ( month1 .EQ. 1 ) year1 = year1 + 1 call cal_AddTime( endofmonth, shifttime, middate1, mythid ) middate1_1 = (middate1(1)/100)*100 + 1 @@ -190,7 +199,8 @@ subroutine cal_GetMonthsRec( call cal_ToSeconds( difftime, diffsecs, mythid ) c Set counters, switches, and the linear interpolation factor. - if ( (.not. first) .and. (prevcount .ne. count0) ) then +c only check month, not year, as it will always change + if ( (.not. first) .and. (prevcount .ne. month0) ) then changed = .true. else changed = .false. diff --git a/pkg/cal/data.cal b/pkg/cal/data.cal deleted file mode 100644 index 85c5239943..0000000000 --- a/pkg/cal/data.cal +++ /dev/null @@ -1,9 +0,0 @@ -# -# ******************* -# Calendar Parameters -# ******************* - &CAL_NML - TheCalendar='gregorian', - startDate_1=19920601, - startDate_2=60000, - & diff --git a/pkg/cfc/cfc_fields_load.F b/pkg/cfc/cfc_fields_load.F index f6bf5cd857..cfac039416 100644 --- a/pkg/cfc/cfc_fields_load.F +++ b/pkg/cfc/cfc_fields_load.F @@ -5,6 +5,9 @@ #ifdef ALLOW_THSICE # include "THSICE_OPTIONS.h" #endif /* ALLOW_THSICE */ +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: CFC12_FORCING @@ -74,7 +77,7 @@ SUBROUTINE CFC_FIELDS_LOAD ( CALL GET_PERIODIC_INTERVAL( O intimeP, intime0, intime1, bWght, aWght, I CFC_forcingCycle, CFC_forcingPeriod, - I deltaTclock, myTime, myThid ) + I deltaTClock, myTime, myThid ) bi = myBxLo(myThid) bj = myByLo(myThid) @@ -219,7 +222,7 @@ SUBROUTINE CFC_FIELDS_LOAD ( #ifdef ALLOW_THSICE DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - FIce(I,J,bi,bj) = iceMask(i,j,bi,bj) + FIce(i,j,bi,bj) = iceMask(i,j,bi,bj) ENDDO ENDDO #endif /* ALLOW_THSICE */ @@ -227,7 +230,7 @@ SUBROUTINE CFC_FIELDS_LOAD ( #ifdef ALLOW_SEAICE DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - FIce(I,J,bi,bj) = AREA(I,J,bi,bj) + FIce(i,j,bi,bj) = AREA(i,j,bi,bj) ENDDO ENDDO #endif /* ALLOW_SEAICE */ diff --git a/pkg/cheapaml/CHEAPAML_OPTIONS.h b/pkg/cheapaml/CHEAPAML_OPTIONS.h index 6e5bb6342d..c5e175e930 100644 --- a/pkg/cheapaml/CHEAPAML_OPTIONS.h +++ b/pkg/cheapaml/CHEAPAML_OPTIONS.h @@ -1,17 +1,26 @@ -C Options file for CheapAML package -C Use this file for selecting options within the CheapAML package - #ifndef CHEAPAML_OPTIONS_H #define CHEAPAML_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: CHEAPAML_OPTIONS.h +C !INTERFACE: +C #include "CHEAPAML_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for CheapAML package +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_CHEAPAML C Place CPP define/undef flag here +C to reproduce old results, with inconsistent wind location, +C grid-cell center and grid-cell edges (C-grid). +#undef INCONSISTENT_WIND_LOCATION + #endif /* ALLOW_CHEAPAML */ #endif /* CHEAPAML_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/cost/COST_OPTIONS.h b/pkg/cost/COST_OPTIONS.h index b16c76fcbe..6a06aad094 100644 --- a/pkg/cost/COST_OPTIONS.h +++ b/pkg/cost/COST_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: COST_OPTIONS.h C !INTERFACE: @@ -10,11 +15,6 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef COST_OPTIONS_H -#define COST_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_COST #ifdef ECCO_CPPOPTIONS_H @@ -26,50 +26,24 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C >>> Use the EGM-96 geoid error covariance. -#undef ALLOW_EGM96_ERROR_COV -#undef ALLOW_READ_EGM_DATA +#undef ALLOW_COST_STATE_FINAL +#undef ALLOW_COST_VECTOR + C >>> Cost function contributions -#undef ALLOW_HFLUX_COST_CONTRIBUTION -#undef ALLOW_SFLUX_COST_CONTRIBUTION -#undef ALLOW_USTRESS_COST_CONTRIBUTION -#undef ALLOW_VSTRESS_COST_CONTRIBUTION -#undef ALLOW_THETA_COST_CONTRIBUTION -#undef ALLOW_SALT_COST_CONTRIBUTION -#undef ALLOW_SST_COST_CONTRIBUTION -#undef ALLOW_SSS_COST_CONTRIBUTION -#undef ALLOW_SSH_COST_CONTRIBUTION -#undef ALLOW_CTDT_COST_CONTRIBUTION -#undef ALLOW_CTDS_COST_CONTRIBUTION -#undef ALLOW_COST_ATLANTIC #undef ALLOW_COST_ATLANTIC_HEAT +#undef ALLOW_COST_ATLANTIC_HEAT_DOMASS #undef ALLOW_COST_TEST +#undef ALLOW_COST_DEPTH #undef ALLOW_COST_TSQUARED #undef ALLOW_COST_TRACER -C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost -C function terms. -C > In data.ecco, this requires the specification of data file (name, -C frequency, etc.), bar file name for corresp. model average, standard -C error file name, etc. -C > In addition, adding such cost terms requires editing ecco_cost.h to -C increase NGENCOST, and editing cost_gencost_customize.F to implement -C the actual model average (i.e. the bar file content). -#undef ALLOW_GENCOST_CONTRIBUTION -C >>> free form version of GENCOST: allows one to use otherwise defined -C elements (e.g. psbar and and topex data) while taking advantage of the -C cost function/namelist slots that can be made available using -C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION -C simply switches off tests that check whether all of the gencost -C elements (e.g. gencost_barfile and gencost_datafile) are specified -C in data.ecco. -C > While this option increases flexibility within the gencost framework, -C it implies more room for error, so it should be used cautiously, and -C with good knowledge of the rest of pkg/ecco. -C > It requires providing a specific cost function routine, and editing -C cost_gencost_all.F accordingly. -#undef ALLOW_GENCOST_FREEFORM +C List these options here: +#undef ALLOW_COST_TEMP +#undef ALLOW_COST_HFLUXM +#undef ALLOW_DIC_COST +#undef ALLOW_THSICE_COST_TEST +#undef ALLOW_COST_SHELFICE C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/pkg/cost/COST_TAP_ADJ.h b/pkg/cost/COST_TAP_ADJ.h new file mode 100644 index 0000000000..a880c0bb6c --- /dev/null +++ b/pkg/cost/COST_TAP_ADJ.h @@ -0,0 +1,28 @@ +C ================================================================== +C HEADER COST_TAP_ADJ +C ================================================================== + + COMMON /COST_R_B/ + & fcb + _RL fcb + +#ifdef ALLOW_COST_STATE_FINAL + COMMON /COST_STATE_FINAL_R_B/ + & objf_state_finalb + _RL objf_state_finalb (sNx,sNy,nSx,nSy,4*Nr+1) +#endif + +#ifdef ALLOW_COST_VECTOR + COMMON /COST_VECTOR_R_B/ + & objf_vectorb + _RL objf_vectorb(sNx,nSx,nSy) +#endif + +#ifdef ALLOW_DIC + COMMON /DIC_COST_CTRL_B/ + & totcostb + _RL totcostb +#endif +C ================================================================== +C END OF HEADER COST_TAP_ADJ +C ================================================================== diff --git a/pkg/cost/cost.h b/pkg/cost/cost.h index 31d54708e3..718f0c0df7 100644 --- a/pkg/cost/cost.h +++ b/pkg/cost/cost.h @@ -46,34 +46,28 @@ C tile_fc :: Final cost function contribution from this tile & objf_tracer, & objf_entropy, & objf_t_misfit, -#ifdef ALLOW_COST_TRANSPORT - & objf_transport, -#endif #ifdef ALLOW_COST_DEPTH & objf_depth, #endif & objf_eflux -cHFLUXM_CONTROL +#ifdef ALLOW_COST_HFLUXM & ,objf_hflux_tut & ,objf_temp_tut -cHFLUXM_CONTROL - - _RL objf_atl (nsx,nsy) - _RL objf_test (nsx,nsy) - _RL objf_tracer (nsx,nsy) - _RL objf_entropy (nsx,nsy) - _RL objf_t_misfit (nsx,nsy) - _RL objf_eflux (nsx,nsy) -#ifdef ALLOW_COST_TRANSPORT - _RL objf_transport (nsx,nsy) #endif + + _RL objf_atl (nSx,nSy) + _RL objf_test (nSx,nSy) + _RL objf_tracer (nSx,nSy) + _RL objf_entropy (nSx,nSy) + _RL objf_t_misfit (nSx,nSy) + _RL objf_eflux (nSx,nSy) #ifdef ALLOW_COST_DEPTH - _RL objf_depth (nsx,nsy) + _RL objf_depth (nSx,nSy) +#endif +#ifdef ALLOW_COST_HFLUXM + _RL objf_hflux_tut (nSx,nSy) + _RL objf_temp_tut (nSx,nSy) #endif -cHFLUXM_CONTROL - _RL objf_hflux_tut (nsx,nsy) - _RL objf_temp_tut (nsx,nsy) -cHFLUXM_CONTROL common /cost_param_r/ & lastinterval @@ -83,13 +77,13 @@ cHFLUXM_CONTROL common /cost_state_final_r/ & objf_state_final cph _RL objf_state_final (snx,sny,nsx,nsy) - _RL objf_state_final (snx,sny,nsx,nsy,4*Nr+1) + _RL objf_state_final (sNx,sNy,nSx,nSy,4*Nr+1) #endif #ifdef ALLOW_COST_VECTOR common /cost_vector_r/ & objf_vector - _RL objf_vector (snx,nsx,nsy) + _RL objf_vector (sNx,nSx,nSy) #endif common /cost_aux_r/ @@ -103,17 +97,14 @@ cph _RL objf_state_final (snx,sny,nsx,nsy) & multSalt, & multUvel, & multVvel, -#ifdef ALLOW_COST_TRANSPORT - & mult_transport, -#endif #ifdef ALLOW_COST_DEPTH & mult_depth, #endif & multEtan -cHFLUXM_CONTROL +#ifdef ALLOW_COST_HFLUXM & ,mult_hflux_tut & ,mult_temp_tut -cHFLUXM_CONTROL +#endif _RL mult_atl _RL mult_test @@ -126,16 +117,13 @@ cHFLUXM_CONTROL _RL multUvel _RL multVvel _RL multEtan -#ifdef ALLOW_COST_TRANSPORT - _RL mult_transport -#endif #ifdef ALLOW_COST_DEPTH _RL mult_depth #endif -cHFLUXM_CONTROL +#ifdef ALLOW_COST_HFLUXM _RL mult_hflux_tut _RL mult_temp_tut -cHFLUXM_CONTROL +#endif #ifdef ALLOW_COST_TEST common /cost_test_i/ @@ -161,4 +149,3 @@ cHFLUXM_CONTROL c ================================================================== c END OF HEADER COST c ================================================================== - diff --git a/pkg/cost/cost_accumulate_mean.F b/pkg/cost/cost_accumulate_mean.F index 911b886922..6c5b6b47c8 100644 --- a/pkg/cost/cost_accumulate_mean.F +++ b/pkg/cost/cost_accumulate_mean.F @@ -1,11 +1,9 @@ #include "COST_OPTIONS.h" - subroutine cost_accumulate_mean( myThid ) + SUBROUTINE cost_accumulate_mean( myThid ) C *==========================================================* -C | subroutine cost_accumulate_mean | +C | SUBROUTINE cost_accumulate_mean | C | o accumulate mean state for cost evalualtion | -C *==========================================================* -C | | C *==========================================================* IMPLICIT NONE @@ -20,29 +18,19 @@ subroutine cost_accumulate_mean( myThid ) C == Routine arguments == C myThid - Thread number for this instance of the routine. - integer bi, bj - integer myThid + INTEGER bi, bj + INTEGER myThid #ifdef ALLOW_COST C == Local variables - _RL thetaRef - - integer i, j, k - integer ig, jg - integer itlo,ithi - integer jtlo,jthi - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + INTEGER i, j, k C-- Calculate cost function on tile of this instance - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1, Nr - do j=1,sNy - do i=1,sNx + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k = 1, Nr + DO j=1,sNy + DO i=1,sNx cMeanTheta(i,j,k,bi,bj) = cMeanTheta(i,j,k,bi,bj) & + theta(i,j,k,bi,bj) & /lastinterval*deltaTClock @@ -65,11 +53,11 @@ subroutine cost_accumulate_mean( myThid ) & /2.*vvel(i,j,k,bi,bj) & *maskS(i,j,k,bi,bj)*maskC(i,j,k,bi,bj) & /lastinterval*deltaTClock - end do - end do - end do - end do - end do + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif diff --git a/pkg/cost/cost_ad_diff.list b/pkg/cost/cost_ad_diff.list index 56942d7432..fb9c2c8f42 100644 --- a/pkg/cost/cost_ad_diff.list +++ b/pkg/cost/cost_ad_diff.list @@ -1,9 +1,10 @@ cost_accumulate_mean.f cost_final.f -cost_init_varia.f -cost_tile.f -cost_test.f -cost_tracer.f +cost_init_varia.f +cost_tile.f +cost_test.f +cost_tracer.f cost_atlantic_heat.f -cost_vector.f +cost_depth.f +cost_vector.f cost_state_final.f diff --git a/pkg/cost/cost_atlantic_heat.F b/pkg/cost/cost_atlantic_heat.F index edb291ec27..e47db44614 100644 --- a/pkg/cost/cost_atlantic_heat.F +++ b/pkg/cost/cost_atlantic_heat.F @@ -179,8 +179,6 @@ subroutine cost_atlantic_heat( myThid ) end if end do - -#if ( !defined (ALLOW_ECCO) || !defined (ALLOW_COST_ATLANTIC) ) #ifdef ALLOW_COST_ATLANTIC_HEAT_DOMASS objf_atl(bi,bj) = & sum*1.E-6 @@ -188,7 +186,6 @@ subroutine cost_atlantic_heat( myThid ) objf_atl(bi,bj) = & sum*HeatCapacity_Cp*rhoConst/petawatt #endif -#endif c-- end of bi,bj loop end do diff --git a/pkg/cost/cost_check.F b/pkg/cost/cost_check.F index e1b934ac4d..fb2f3a479f 100644 --- a/pkg/cost/cost_check.F +++ b/pkg/cost/cost_check.F @@ -1,11 +1,11 @@ #include "COST_OPTIONS.h" SUBROUTINE COST_CHECK( myThid ) -C /==========================================================\ +C *==========================================================* C | SUBROUTINE CTRK_CHECK | C | o Validate basic package setup and inter-package | C | dependencies. | -C \==========================================================/ +C *==========================================================* IMPLICIT NONE C === Global variables === @@ -14,99 +14,44 @@ SUBROUTINE COST_CHECK( myThid ) #include "PARAMS.h" C === Routine arguments === -C myThid - Number of this instance +C myThid :: my Thread Id number INTEGER myThid C === Local variables === -C msgBuf - Informational/error meesage buffer +C nRetired :: Counter used to trap gracefully "retired" option & parameters +C msgBuf :: Informational/error message buffer + INTEGER nRetired CHARACTER*(MAX_LEN_MBUF) msgBuf + _BEGIN_MASTER(myThid) + nRetired = 0 + WRITE(msgBuf,'(A)') 'COST_CHECK: #define ALLOW_COST' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) -#ifdef ALLOW_ECCO + & SQUEEZE_RIGHT, myThid ) -#if ((defined (ALLOW_HFLUX_CONTROL) && \ - !defined (ALLOW_HFLUX_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_HFLUX_CONTROL) && \ - defined (ALLOW_HFLUX_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_HFLUX_CONTROL & ALLOW_HFLUX_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#elif ((defined (ALLOW_ATEMP_CONTROL) && \ - !defined (ALLOW_ATEMP_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_ATEMP_CONTROL) && \ - defined (ALLOW_ATEMP_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_ATEMP_CONTROL & ALLOW_ATEMP_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' +#ifdef ALLOW_COST_TRANSPORT + WRITE(msgBuf,'(2A)') 'COST_CHECK: ', + & 'ALLOW_COST_TRANSPORT not allowed anymore in COST_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 #endif - -#if ((defined (ALLOW_SFLUX_CONTROL) && \ - !defined (ALLOW_SFLUX_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_SFLUX_CONTROL) && \ - defined (ALLOW_SFLUX_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_SFLUX_CONTROL & ALLOW_SFLUX_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#elif ((defined (ALLOW_AQH_CONTROL) && \ - !defined (ALLOW_AQH_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_AQH_CONTROL) && \ - defined (ALLOW_AQH_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_AQH_CONTROL & ALLOW_AQH_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' +#ifdef ALLOW_COST_ATLANTIC + WRITE(msgBuf,'(2A)') 'COST_CHECK: ', + & 'ALLOW_COST_ATLANTIC not allowed anymore in COST_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 #endif -#if ((defined (ALLOW_USTRESS_CONTROL) && \ - !defined (ALLOW_USTRESS_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_USTRESS_CONTROL) && \ - defined (ALLOW_USTRESS_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_USTRESS_CONTROL & ALLOW_USTRESS_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#elif ((defined (ALLOW_UWIND_CONTROL) && \ - !defined (ALLOW_UWIND_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_UWIND_CONTROL) && \ - defined (ALLOW_UWIND_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_UWIND_CONTROL & ALLOW_UWIND_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#endif - -#if ((defined (ALLOW_VSTRESS_CONTROL) && \ - !defined (ALLOW_VSTRESS_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_VSTRESS_CONTROL) && \ - defined (ALLOW_VSTRESS_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_VSTRESS_CONTROL & ALLOW_VSTRESS_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#elif ((defined (ALLOW_VWIND_CONTROL) && \ - !defined (ALLOW_VWIND_COST_CONTRIBUTION)) || \ - (!defined (ALLOW_VWIND_CONTROL) && \ - defined (ALLOW_VWIND_COST_CONTRIBUTION))) -c WRITE(msgBuf,'(A,A)') -c & 'Must have both ', -c & 'ALLOW_VWIND_CONTROL & ALLOW_VWIND_COST_CONTRIBUTION' -c CALL PRINT_ERROR( msgBuf , 1) -cph STOP 'ABNORMAL END: S/R COST_CHECK' -#endif + IF ( nRetired .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') 'S/R COST_CHECK: ', + & 'retired compile-time options need to be undefined' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R COST_CHECK' + ENDIF -#endif /* ALLOW_ECCO */ + _END_MASTER(myThid) - return - end + RETURN + END diff --git a/pkg/cost/cost_dependent_init.F b/pkg/cost/cost_dependent_init.F index 854a4b5c4f..44b04eed73 100644 --- a/pkg/cost/cost_dependent_init.F +++ b/pkg/cost/cost_dependent_init.F @@ -1,6 +1,6 @@ #include "COST_OPTIONS.h" - subroutine cost_dependent_init( mythid ) + subroutine cost_dependent_init( myThid ) c ================================================================== c SUBROUTINE cost_dependent_init @@ -14,34 +14,29 @@ subroutine cost_dependent_init( mythid ) c SUBROUTINE cost_dependent_init c ================================================================== - implicit none + IMPLICIT NONE c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" - #include "cost.h" #include "adcost.h" +#ifdef ALLOW_TAPENADE +# include "COST_TAP_ADJ.h" +#endif c == routine arguments == - - integer mythid + integer myThid c == local variables == - - integer i,j,k +#if ( defined ALLOW_COST_VECTOR || defined ALLOW_COST_STATE_FINAL ) + integer i +#endif +#ifdef ALLOW_COST_STATE_FINAL + integer j, k +#endif integer bi,bj - integer itlo,ithi - integer jtlo,jthi - -c == external functions == - c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) #ifdef ALLOW_OPENAD fc%v = 0.0 @@ -51,6 +46,10 @@ subroutine cost_dependent_init( mythid ) #ifdef ALLOW_AUTODIFF +#ifdef ALLOW_TAPENADE + fcb = 1.0 +#endif + #ifdef ALLOW_OPENAD adfc = 1.0 #else @@ -59,27 +58,26 @@ subroutine cost_dependent_init( mythid ) endif #endif - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) #ifdef ALLOW_COST_VECTOR - do i=1,sNx - objf_vector(i,bi,bj) = 0. _d 0 - adobjf_vector(i,bi,bj) = 1. _d 0 - end do + do i=1,sNx + objf_vector(i,bi,bj) = 0. _d 0 + adobjf_vector(i,bi,bj) = 1. _d 0 + enddo #endif #ifdef ALLOW_COST_STATE_FINAL - do j=1,sNy - do i=1,sNx - do k=1,4*Nr + do k=1,4*Nr+1 + do j=1,sNy + do i=1,sNx objf_state_final(i,j,bi,bj,k) = 0. _d 0 enddo - objf_state_final(i,j,bi,bj,4*Nr+1) = 0. _d 0 + enddo + enddo cph No init. of cost_state_final here, cph because we need it in ADM*TLM - end do - end do #endif - enddo + enddo enddo #endif /* ALLOW_AUTODIFF */ diff --git a/pkg/cost/cost_depth.F b/pkg/cost/cost_depth.F index e4cb19be92..269528ff40 100644 --- a/pkg/cost/cost_depth.F +++ b/pkg/cost/cost_depth.F @@ -1,8 +1,16 @@ #include "COST_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif - subroutine cost_depth( myThid ) +CBOP +C !ROUTINE: COST_DEPTH +C !INTERFACE: + SUBROUTINE COST_DEPTH( myThid ) + +C !DESCRIPTION: \bv C /==========================================================\ -C | subroutine cost_depth | +C | SUBROUTINE COST_DEPTH | C | o this routine computes the cost function for the tiles | C | of this processor | C |==========================================================| @@ -10,41 +18,93 @@ subroutine cost_depth( myThid ) C | Notes | C | ===== | C \==========================================================/ +C \ev + +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" -#include "PARAMS.h" -#include "DYNVARS.h" #include "GRID.h" - #include "cost.h" +#ifdef ALLOW_GENARR2D_CONTROL +# include "CTRL_SIZE.h" +# include "CTRL_GENARR.h" +#endif +C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myThid - Thread number for this instance of the routine. - integer bi, bj - integer myThid + INTEGER myThid #ifdef ALLOW_COST_DEPTH -C == Local variables - - INTEGER I, J, K - - character*(max_len_mbuf) msgbuf +C !LOCAL VARIABLES: +C == Local variables == + INTEGER bi,bj,i,j +#ifdef ALLOW_GENARR2D_CONTROL + INTEGER iarr + INTEGER igen + _RL xx_depth(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#else + _RL dr_low +#endif +CEOP +#ifdef ALLOW_GENARR2D_CONTROL + DO bj=myByLo(mythid),myByHi(mythid) + DO bi=myBxLo(mythid),myBxHi(mythid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_depth(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO +C-- use generic 2D control variable infrastructure to set xx_depth + igen = 0 + DO iarr = 1, maxCtrlArr2D + IF ( xx_genarr2d_weight(iarr).NE.' ' .AND. + & xx_genarr2d_file(iarr)(1:8).EQ.'xx_depth') igen = iarr + ENDDO + IF ( igen .GT. 0 ) THEN + CALL CTRL_MAP_GENARR2D( xx_depth, igen, myThid ) + ENDIF +C-- Calculate cost function on tile of this instance + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j=1,sNy + DO i=1,sNx + IF ( maskInC(i,j,bi,bj) .NE. 0. ) THEN + objf_depth(bi,bj) = objf_depth(bi,bj) + & + 0.5 _d 0 * xx_depth(i,j,bi,bj)*xx_depth(i,j,bi,bj) + ENDIF + END DO + END DO + END DO + END DO +#else C-- Calculate cost function on tile of this instance DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) - DO J=1,sNy - DO I=1,sNx - IF ( maskC(I,J,1,BI,BJ) .NE. 0. ) THEN - objf_depth(BI,BJ) = objf_depth(BI,BJ) + R_low(I,J,BI,BJ) + DO j=1,sNy + DO i=1,sNx + IF ( maskInC(i,j,bi,bj) .NE. 0. ) THEN +#ifdef ALLOW_DEPTH_CONTROL +C This is just a test and does not make too much sense, because +C R_low is recomputed after xx_r_low is set to "R_low + +C xx_depth_file" so that dr_low is not the incremenent that would +C make sense here. + dr_low = xx_r_low(i,j,bi,bj) - R_low(i,j,bi,bj) + objf_depth(bi,bj) = objf_depth(bi,bj) + & + 0.5 _d 0 *dr_low*dr_low +#endif ENDIF END DO END DO END DO END DO +#endif /* ALLOW_GENARR2D_CONTROL */ #endif /* ALLOW_COST_DEPTH */ RETURN diff --git a/pkg/cost/cost_final.F b/pkg/cost/cost_final.F index 64102a8aeb..7fe5d6a5c6 100644 --- a/pkg/cost/cost_final.F +++ b/pkg/cost/cost_final.F @@ -46,25 +46,23 @@ SUBROUTINE COST_FINAL( myThid ) INTEGER bi,bj _RL glob_fc, loc_fc #ifdef ALLOW_PROFILES - integer num_file,num_var + INTEGER num_file,num_var #endif - character*(MAX_LEN_MBUF) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf c == end of interface == #ifdef ALLOW_SEAICE - if (useSEAICE) CALL SEAICE_COST_FINAL (myThid) + IF (useSEAICE) CALL SEAICE_COST_FINAL( myThid ) #endif #ifdef ALLOW_SHELFICE - CALL SHELFICE_COST_FINAL (myThid) + IF (useShelfice) CALL SHELFICE_COST_FINAL (myThid) #endif -c print *, 'ph-1 in thsice_cost_final' #ifdef ALLOW_THSICE IF (useThSIce) CALL THSICE_COST_FINAL (myThid) #endif -c print *, 'ph-3 in thsice_cost_final' #ifdef ALLOW_ECCO IF (useECCO) CALL ECCO_COST_FINAL (myThid) @@ -92,8 +90,8 @@ SUBROUTINE COST_FINAL( myThid ) # endif #ifdef ALLOW_COST_HFLUXM -cgf : to compile previous line user is expected to provide cost_hflux.F CALL COST_HFLUX (myThid) +cgf : to compile previous line user is expected to provide cost_hflux.F #endif #ifdef ALLOW_COST_TEMP @@ -101,9 +99,13 @@ SUBROUTINE COST_FINAL( myThid ) cgf : to compile previous line user is expected to provide cost_temp.F #endif - write(msgBuf,'(A,D22.15)') ' early fc = ', fc - call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) +#ifdef ALLOW_COST_DEPTH + CALL COST_DEPTH( myThid ) +#endif + + WRITE(msgBuf,'(A,D22.15)') ' early fc = ', fc + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) c-- Sum up all contributions. loc_fc = 0. @@ -111,30 +113,28 @@ SUBROUTINE COST_FINAL( myThid ) DO bi = myBxLo(myThid), myBxHi(myThid) #ifdef ALLOW_COST_TEST - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_test(bi,bj) = ', objf_test(bi,bj) + WRITE(standardMessageUnit,'(A,D22.15)') + & ' --> objf_test(bi,bj) = ', objf_test(bi,bj) #endif #ifdef ALLOW_COST_TRACER - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_tracer(bi,bj) = ', objf_tracer(bi,bj) + WRITE(standardMessageUnit,'(A,D22.15)') + & ' --> objf_tracer(bi,bj) = ', objf_tracer(bi,bj) #endif -#if ( !defined (ALLOW_ECCO) || !defined (ALLOW_COST_ATLANTIC) ) -# ifdef ALLOW_COST_ATLANTIC_HEAT - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_atl(bi,bj) = ', objf_atl(bi,bj) -# endif +#ifdef ALLOW_COST_ATLANTIC_HEAT + WRITE(standardMessageUnit,'(A,D22.15)') + & ' --> objf_atl(bi,bj) = ', objf_atl(bi,bj) #endif #ifdef ALLOW_COST_TEMP - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_temp_tut(bi,bj) = ', objf_temp_tut(bi,bj) + WRITE(standardMessageUnit,'(A,D22.15)') + & ' --> objf_temp_tut(bi,bj) = ', objf_temp_tut(bi,bj) #endif #ifdef ALLOW_COST_HFLUXM - write(standardmessageunit,'(A,D22.15)') + WRITE(standardMessageUnit,'(A,D22.15)') & ' --> objf_hflux_tut(bi,bj) = ', objf_hflux_tut(bi,bj) #endif -#ifdef ALLOW_COST_TRANSPORT - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_transport(bi,bj) = ', objf_transport(bi,bj) +#ifdef ALLOW_COST_DEPTH + WRITE(standardMessageUnit,'(A,D22.15)') + & ' --> objf_depth(bi,bj) = ', objf_depth(bi,bj) #endif tile_fc(bi,bj) = tile_fc(bi,bj) @@ -144,13 +144,8 @@ SUBROUTINE COST_FINAL( myThid ) #ifdef ALLOW_COST_TRACER & + mult_tracer * objf_tracer(bi,bj) #endif -#if ( !defined (ALLOW_ECCO) || !defined (ALLOW_COST_ATLANTIC) ) -# ifdef ALLOW_COST_ATLANTIC_HEAT +#ifdef ALLOW_COST_ATLANTIC_HEAT & + mult_atl * objf_atl(bi,bj) -# endif -#endif -#ifdef ALLOW_COST_TRANSPORT - & + mult_transport * objf_transport(bi,bj) #endif #ifdef ALLOW_COST_TEMP & + mult_temp_tut * objf_temp_tut(bi,bj) @@ -158,17 +153,20 @@ SUBROUTINE COST_FINAL( myThid ) #ifdef ALLOW_COST_HFLUXM & + mult_hflux_tut * objf_hflux_tut(bi,bj) #endif +#ifdef ALLOW_COST_DEPTH + & + mult_depth * objf_depth(bi,bj) +#endif #ifdef ALLOW_PROFILES - if (.NOT.useECCO) then - do num_file=1,NFILESPROFMAX - do num_var=1,NVARMAX - tile_fc(bi,bj) = tile_fc(bi,bj) + IF (.NOT.useECCO) THEN + DO num_file=1,NFILESPROFMAX + DO num_var=1,NVARMAX + tile_fc(bi,bj) = tile_fc(bi,bj) & + mult_profiles(num_file,num_var) & *objf_profiles(num_file,num_var,bi,bj) - enddo - enddo - endif + ENDDO + ENDDO + ENDIF #endif loc_fc = loc_fc + tile_fc(bi,bj) @@ -176,9 +174,9 @@ SUBROUTINE COST_FINAL( myThid ) ENDDO ENDDO - write(msgBuf,'(A,D22.15)') ' local fc = ', loc_fc - call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + WRITE(msgBuf,'(A,D22.15)') ' local fc = ', loc_fc + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) c-- Do global summation. CALL GLOBAL_SUM_TILE_RL( tile_fc, glob_fc, myThid ) @@ -196,9 +194,9 @@ SUBROUTINE COST_FINAL( myThid ) fc = totcost #endif - write(msgBuf,'(A,D22.15)') ' global fc = ', fc - call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + WRITE(msgBuf,'(A,D22.15)') ' global fc = ', fc + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) c-- to avoid re-write of output in reverse checkpointing loops, c-- switch off output flag : @@ -206,5 +204,5 @@ SUBROUTINE COST_FINAL( myThid ) #endif /* ALLOW_COST */ - return - end + RETURN + END diff --git a/pkg/cost/cost_init_varia.F b/pkg/cost/cost_init_varia.F index dc571167db..aede2abda8 100644 --- a/pkg/cost/cost_init_varia.F +++ b/pkg/cost/cost_init_varia.F @@ -25,40 +25,23 @@ SUBROUTINE COST_INIT_VARIA( mythid ) #include "EEPARAMS.h" #include "SIZE.h" - #include "cost.h" c == routine arguments == - integer mythid c == local variables == - integer i,j,k integer bi,bj - integer itlo,ithi - integer jtlo,jthi - -c == external functions == - c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) c-- Initialize the tiled cost function contributions. - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) tile_fc(bi,bj) = 0. _d 0 -#if ( !defined (ALLOW_ECCO) || !defined (ALLOW_COST_ATLANTIC) ) objf_atl(bi,bj) = 0. _d 0 -#endif objf_test(bi,bj) = 0. _d 0 objf_tracer(bi,bj) = 0. _d 0 -#ifdef ALLOW_COST_TRANSPORT - objf_transport(bi,bj) = 0. _d 0 -#endif #ifdef ALLOW_COST_DEPTH objf_depth(bi,bj) = 0. _d 0 #endif @@ -94,8 +77,8 @@ SUBROUTINE COST_INIT_VARIA( mythid ) end do end do #endif - enddo - enddo + ENDDO + ENDDO #ifdef ALLOW_SEAICE call seaice_cost_init_varia( mythid ) diff --git a/pkg/cost/cost_readparms.F b/pkg/cost/cost_readparms.F index dc875bd37a..8d9d59ca85 100644 --- a/pkg/cost/cost_readparms.F +++ b/pkg/cost/cost_readparms.F @@ -36,18 +36,15 @@ subroutine cost_readparms( mythid ) c-- Read the namelist input. namelist /cost_nml/ - & mult_atl, mult_test, mult_tracer - & , multTheta, multSalt, multUvel, multVvel, multEtan -#ifdef ALLOW_COST_TRANSPORT - & , mult_transport -#endif + & mult_atl, mult_test, mult_tracer, + & multTheta, multSalt, multUvel, multVvel, multEtan, #ifdef ALLOW_COST_DEPTH - & , mult_depth + & mult_depth, +#endif +#ifdef ALLOW_COST_HFLUXM + & mult_temp_tut, mult_hflux_tut, #endif - & , lastinterval -cHFLUXM_CONTROL - & , mult_temp_tut, mult_hflux_tut -cHFLUXM_CONTROL + & lastinterval _BEGIN_MASTER( myThid ) @@ -60,16 +57,13 @@ subroutine cost_readparms( mythid ) multUvel = 0. _d 0 multVvel = 0. _d 0 multEtan = 0. _d 0 -#ifdef ALLOW_COST_TRANSPORT - mult_transport = 0. _d 0 -#endif #ifdef ALLOW_COST_DEPTH mult_depth = 0. _d 0 #endif -cHFLUXM_CONTROL +#ifdef ALLOW_COST_HFLUXM mult_temp_tut = 0. _d 0 mult_hflux_tut = 0. _d 0 -cHFLUXM_CONTROL +#endif c-- 30*24*3600 = 2592000 = 1 model month lastinterval = 2592000. @@ -96,9 +90,9 @@ subroutine cost_readparms( mythid ) CLOSE(iUnit,STATUS='DELETE') #endif /* SINGLE_DISK_IO */ - IF ( MOD(lastinterval,deltaTclock) .GT. 0. ) + IF ( MOD(lastinterval,deltaTClock) .GT. 0. ) & lastinterval = MAX( - & INT(lastinterval/deltaTclock-1)*deltaTclock,deltaTclock) + & INT(lastinterval/deltaTClock-1)*deltaTClock,deltaTClock) #if (defined ALLOW_COST_HFLUXM) || (defined ALLOW_COST_TEMP) c-- get the weights for the cost functions diff --git a/pkg/cost/cost_tile.F b/pkg/cost/cost_tile.F index 73d2265947..e06283855a 100644 --- a/pkg/cost/cost_tile.F +++ b/pkg/cost/cost_tile.F @@ -77,7 +77,9 @@ subroutine cost_tile( mytime, myiter, myThid ) #include "GRID.h" #include "cost.h" #ifdef ALLOW_AUTODIFF -# include "tamc.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # include "PTRACERS_FIELDS.h" @@ -141,10 +143,6 @@ subroutine cost_tile( mytime, myiter, myThid ) CALL COST_TRACER( bi, bj, myThid ) #endif -#ifdef ALLOW_COST_TRANSPORT - CALL COST_TRANSPORT( bi, bj, myTime, myIter, myThid ) -#endif /* ALLOW_COST_TRANSPORT */ - ENDDO ENDDO diff --git a/pkg/cost/cost_tracer.F b/pkg/cost/cost_tracer.F index 8ed0858528..1741abe6dc 100644 --- a/pkg/cost/cost_tracer.F +++ b/pkg/cost/cost_tracer.F @@ -33,31 +33,24 @@ subroutine cost_tracer( bi, bj, myThid ) integer myThid #ifdef ALLOW_COST_TRACER +#ifdef ALLOW_PTRACERS C == Local variables - _RL thetaRef _RL locfc - integer i, j, k - integer ig, jg - -ce some reference temperature - thetaRef = 24.0D0 locfc = 0. _d 0 - k=1 DO j=1,sNy DO i=1,sNx -#ifdef ALLOW_PTRACERS locfc = locfc + hFacC(i,j,k,bi,bj)* & lambdaTr1ClimRelax*ptracer(i,j,k,bi,bj,1)* & rA(i,j,bi,bj)*drF(k)*dTtracerLev(k) -#endif ENDDO ENDDO objf_tracer(bi,bj) = objf_tracer(bi,bj) + locfc +#endif /* ALLOW_PTRACERS */ #endif /* ALLOW_COST_TRACER */ RETURN diff --git a/pkg/ctrl/CTRL_FIELDS.h b/pkg/ctrl/CTRL_FIELDS.h index 9e67d28727..c0c1cb7891 100644 --- a/pkg/ctrl/CTRL_FIELDS.h +++ b/pkg/ctrl/CTRL_FIELDS.h @@ -16,16 +16,6 @@ C *==============================================================* C \ev CEOP -#ifdef ALLOW_KAPGM_CONTROL - COMMON /CTRL_FIELDS_KAPGM/ - & kapGM - _RL kapGM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - COMMON /CTRL_FIELDS_KAPREDI/ - & kapRedi - _RL kapRedi (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif #ifdef ALLOW_BOTTOMDRAG_CONTROL COMMON /CTRL_FIELDS_BOTTOMDRAG/ & bottomDragFld diff --git a/pkg/ctrl/CTRL_GENARR.h b/pkg/ctrl/CTRL_GENARR.h index b054ca5a40..06e393d333 100644 --- a/pkg/ctrl/CTRL_GENARR.h +++ b/pkg/ctrl/CTRL_GENARR.h @@ -15,13 +15,13 @@ C ================================================================== CHARACTER*(MAX_LEN_FNAM) xx_genarr3d_file(maxCtrlArr3D) CHARACTER*(MAX_LEN_FNAM) xx_genarr2d_weight(maxCtrlArr2D) CHARACTER*(MAX_LEN_FNAM) xx_genarr3d_weight(maxCtrlArr3D) - CHARACTER*(MAX_LEN_FNAM) + CHARACTER*(MAX_LEN_FNAM) & xx_genarr2d_preproc(maxCtrlProc,maxCtrlArr2D) - CHARACTER*(MAX_LEN_FNAM) + CHARACTER*(MAX_LEN_FNAM) & xx_genarr3d_preproc(maxCtrlProc,maxCtrlArr3D) - CHARACTER*(MAX_LEN_FNAM) + CHARACTER*(MAX_LEN_FNAM) & xx_genarr2d_preproc_c(maxCtrlProc,maxCtrlArr2D) - CHARACTER*(MAX_LEN_FNAM) + CHARACTER*(MAX_LEN_FNAM) & xx_genarr3d_preproc_c(maxCtrlProc,maxCtrlArr3D) COMMON /CONTROLFILES_RARR/ @@ -75,20 +75,12 @@ C ================================================================== common /controlaux_gencost_r/ & objf_gentim2d, num_gentim2d, mult_gentim2d, -#ifdef ECCO_CTRL_DEPRECATED - & objf_gentim2dm, objf_gentim2dsmoo, num_gentim2dm, -#endif /* ECCO_CTRL_DEPRECATED */ & objf_genarr2d, num_genarr2d, mult_genarr2d, & objf_genarr3d, num_genarr3d, mult_genarr3d _RL objf_gentim2d(nsx,nsy,maxCtrlTim2D) _RL num_gentim2d(nsx,nsy,maxCtrlTim2D) _RL mult_gentim2d(maxCtrlTim2D) -#ifdef ECCO_CTRL_DEPRECATED - _RL objf_gentim2dm(nsx,nsy,maxCtrlTim2D) - _RL objf_gentim2dsmoo(nsx,nsy,maxCtrlTim2D) - _RL num_gentim2dm(nsx,nsy,maxCtrlTim2D) -#endif /* ECCO_CTRL_DEPRECATED */ _RL objf_genarr2d(nsx,nsy,maxCtrlArr2D) _RL num_genarr2d(nsx,nsy,maxCtrlArr2D) _RL mult_genarr2d(maxCtrlArr2D) @@ -118,9 +110,9 @@ C ================================================================== & xx_gentim2d1, & xx_gentim2d, & wgentim2d - _RL + _RL & xx_gentim2d0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy,maxCtrlTim2D) - _RL + _RL & xx_gentim2d1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy,maxCtrlTim2D) _RL & xx_gentim2d(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy,maxCtrlTim2D) diff --git a/pkg/ctrl/CTRL_OBCS.h b/pkg/ctrl/CTRL_OBCS.h index ae78c0e5fc..b36e62050f 100644 --- a/pkg/ctrl/CTRL_OBCS.h +++ b/pkg/ctrl/CTRL_OBCS.h @@ -1,23 +1,33 @@ -c ================================================================== -c HEADER AVERAGES -c ================================================================== -c -c o Header for obcs ctrl weights -c -c ================================================================== -c HEADER AVERAGES -c ================================================================== +CBOP +C !ROUTINE: CTRL_OBCS.h +C !INTERFACE: +C #include "CTRL_OBCS.h" - _RL objf_obcsn(nsx,nsy), objf_obcss(nsx,nsy) - _RL objf_obcsw(nsx,nsy), objf_obcse(nsx,nsy) - _RL objf_obcsvol, objf_ageos(nsx,nsy) +C !DESCRIPTION: +C *================================================================* +C | CTRL_OBCS.h +C | o Header file for OBCS Control and related weights +C *================================================================* +CEOP + +C-- IMPORTANT NOTE: The declaration of parameter "nobcs" has been moved +C from SIZE.h. If you encounter compile time errors related to "nobcs", +C make sure that your SIZE.h does not contain any declaration of this +C parameter. +C-- + INTEGER nobcs + PARAMETER ( nobcs = 4 ) + + _RL objf_obcsn(nSx,nSy), objf_obcss(nSx,nSy) + _RL objf_obcsw(nSx,nSy), objf_obcse(nSx,nSy) + _RL objf_obcsvol, objf_ageos(nSx,nSy) _RL mult_obcsn, mult_obcss _RL mult_obcsw, mult_obcse _RL mult_obcsvol, mult_ageos - _RL num_obcsn(nsx,nsy), num_obcss(nsx,nsy) - _RL num_obcsw(nsx,nsy), num_obcse(nsx,nsy) - _RL num_obcsvol, num_ageos(nsx,nsy) - common /ecco_cost_weights_obcs/ + _RL num_obcsn(nSx,nSy), num_obcss(nSx,nSy) + _RL num_obcsw(nSx,nSy), num_obcse(nSx,nSy) + _RL num_obcsvol, num_ageos(nSx,nSy) + COMMON /ecco_cost_weights_obcs/ & objf_obcsn, objf_obcss, objf_obcsw, objf_obcse, & objf_obcsvol, objf_ageos, & mult_obcsn, mult_obcss, mult_obcsw, mult_obcse, @@ -25,130 +35,131 @@ c ================================================================== & num_obcsn, num_obcss, num_obcsw, num_obcse, & num_obcsvol, num_ageos - common /ih_modes/ modesv - _RL modesv (nr,nr,nr) - common /ctrl_dummy_obcs/ - & xx_obcsn_dummy - & , xx_obcss_dummy - & , xx_obcsw_dummy - & , xx_obcse_dummy + COMMON /ih_modes/ modesv + _RL modesv (Nr,Nr,Nr) + COMMON /ctrl_dummy_obcs/ + & xx_obcsn_dummy, + & xx_obcss_dummy, + & xx_obcsw_dummy, + & xx_obcse_dummy _RL xx_obcsn_dummy _RL xx_obcss_dummy _RL xx_obcsw_dummy _RL xx_obcse_dummy - common /controlfiles_c_obcs/ - & xx_obcsn_file - & , xx_obcss_file - & , xx_obcsw_file - & , xx_obcse_file - character*(MAX_LEN_FNAM) xx_obcsn_file - character*(MAX_LEN_FNAM) xx_obcss_file - character*(MAX_LEN_FNAM) xx_obcsw_file - character*(MAX_LEN_FNAM) xx_obcse_file - common /controltimes_r_obcs/ - & xx_obcsnperiod - & , xx_obcssperiod - & , xx_obcswperiod - & , xx_obcseperiod + COMMON /controlfiles_c_obcs/ + & xx_obcsn_file, + & xx_obcss_file, + & xx_obcsw_file, + & xx_obcse_file + CHARACTER*(MAX_LEN_FNAM) xx_obcsn_file + CHARACTER*(MAX_LEN_FNAM) xx_obcss_file + CHARACTER*(MAX_LEN_FNAM) xx_obcsw_file + CHARACTER*(MAX_LEN_FNAM) xx_obcse_file + COMMON /controltimes_r_obcs/ + & xx_obcsnperiod, + & xx_obcssperiod, + & xx_obcswperiod, + & xx_obcseperiod _RL xx_obcsnperiod _RL xx_obcssperiod _RL xx_obcswperiod _RL xx_obcseperiod - common /controltimes_i_obcs/ - & xx_obcsnstartdate1 - & , xx_obcsnstartdate2 - & , xx_obcssstartdate1 - & , xx_obcssstartdate2 - & , xx_obcswstartdate1 - & , xx_obcswstartdate2 - & , xx_obcsestartdate1 - & , xx_obcsestartdate2 - & , xx_obcsnstartdate - & , xx_obcssstartdate - & , xx_obcswstartdate - & , xx_obcsestartdate - integer xx_obcsnstartdate1 - integer xx_obcsnstartdate2 - integer xx_obcssstartdate1 - integer xx_obcssstartdate2 - integer xx_obcswstartdate1 - integer xx_obcswstartdate2 - integer xx_obcsestartdate1 - integer xx_obcsestartdate2 - integer xx_obcsnstartdate(4) - integer xx_obcssstartdate(4) - integer xx_obcswstartdate(4) - integer xx_obcsestartdate(4) - character*( 80) fname_obcsn(3) - character*( 80) fname_obcss(3) - character*( 80) fname_obcsw(3) - character*( 80) fname_obcse(3) - common /controlvars_i_obcsn/ + COMMON /controltimes_i_obcs/ + & xx_obcsnstartdate1, + & xx_obcsnstartdate2, + & xx_obcssstartdate1, + & xx_obcssstartdate2, + & xx_obcswstartdate1, + & xx_obcswstartdate2, + & xx_obcsestartdate1, + & xx_obcsestartdate2, + & xx_obcsnstartdate, + & xx_obcssstartdate, + & xx_obcswstartdate, + & xx_obcsestartdate + INTEGER xx_obcsnstartdate1 + INTEGER xx_obcsnstartdate2 + INTEGER xx_obcssstartdate1 + INTEGER xx_obcssstartdate2 + INTEGER xx_obcswstartdate1 + INTEGER xx_obcswstartdate2 + INTEGER xx_obcsestartdate1 + INTEGER xx_obcsestartdate2 + INTEGER xx_obcsnstartdate(4) + INTEGER xx_obcssstartdate(4) + INTEGER xx_obcswstartdate(4) + INTEGER xx_obcsestartdate(4) + COMMON /controlvars_i_obcsn/ & nwetobcsn, & nwetobcsnglo - integer nwetobcsn ( nsx,nsy,nr,nobcs ) - integer nwetobcsnglo ( nr,nobcs ) - common /controlvars_i_obcss/ + INTEGER nwetobcsn ( nSx,nSy,Nr,nobcs ) + INTEGER nwetobcsnglo ( Nr,nobcs ) + COMMON /controlvars_i_obcss/ & nwetobcss, & nwetobcssglo - integer nwetobcss ( nsx,nsy,nr,nobcs ) - integer nwetobcssglo ( nr,nobcs ) - common /controlvars_i_obcsw/ + INTEGER nwetobcss ( nSx,nSy,Nr,nobcs ) + INTEGER nwetobcssglo ( Nr,nobcs ) + COMMON /controlvars_i_obcsw/ & nwetobcsw, & nwetobcswglo - integer nwetobcsw ( nsx,nsy,nr,nobcs ) - integer nwetobcswglo ( nr,nobcs ) - common /controlvars_i_obcse/ + INTEGER nwetobcsw ( nSx,nSy,Nr,nobcs ) + INTEGER nwetobcswglo ( Nr,nobcs ) + COMMON /controlvars_i_obcse/ & nwetobcse, & nwetobcseglo - integer nwetobcse ( nsx,nsy,nr,nobcs ) - integer nwetobcseglo ( nr,nobcs ) + INTEGER nwetobcse ( nSx,nSy,Nr,nobcs ) + INTEGER nwetobcseglo ( Nr,nobcs ) -#if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || defined (ALLOW_OBCSN_CONTROL)) - common /ecco_cost_weights_obcsn/ +C This is moved from ecco_local_params.h, because it is the only +C parameter used (by obcs ctrl parameters) + COMMON /ecco_data_errfile/ + & data_errfile + CHARACTER*(MAX_LEN_FNAM) data_errfile + +#if ( defined ALLOW_OBCSN_COST_CONTRIBUTION || defined ALLOW_OBCSN_CONTROL ) + COMMON /ecco_cost_weights_obcsn/ & wobcsn, wobcsnLev - _RL wobcsn ( nr,nobcs) - _RL wobcsnLev (1-olx:snx+olx,nr,nsx,nsy,nobcs) - common /controlaux_obcsn_r/ + _RL wobcsn ( Nr,nobcs) + _RL wobcsnLev (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + COMMON /controlaux_obcsn_r/ & xx_obcsn0, & xx_obcsn1 - _RL xx_obcsn0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) - _RL xx_obcsn1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) + _RL xx_obcsn0 (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + _RL xx_obcsn1 (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) #endif -#if (defined (ALLOW_OBCSS_COST_CONTRIBUTION) || defined (ALLOW_OBCSS_CONTROL)) - common /ecco_cost_weights_obcss/ +#if ( defined ALLOW_OBCSS_COST_CONTRIBUTION || defined ALLOW_OBCSS_CONTROL ) + COMMON /ecco_cost_weights_obcss/ & wobcss, wobcssLev - _RL wobcss ( nr,nobcs) - _RL wobcssLev (1-olx:snx+olx,nr,nsx,nsy,nobcs) - common /controlaux_obcss_r/ + _RL wobcss ( Nr,nobcs) + _RL wobcssLev (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + COMMON /controlaux_obcss_r/ & xx_obcss0, & xx_obcss1 - _RL xx_obcss0 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) - _RL xx_obcss1 (1-Olx:sNx+Olx,Nr,nSx,nSy,nobcs) + _RL xx_obcss0 (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + _RL xx_obcss1 (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) #endif -#if (defined (ALLOW_OBCSW_COST_CONTRIBUTION) || defined (ALLOW_OBCSW_CONTROL)) - common /ecco_cost_weights_obcsw/ +#if ( defined ALLOW_OBCSW_COST_CONTRIBUTION || defined ALLOW_OBCSW_CONTROL ) + COMMON /ecco_cost_weights_obcsw/ & wobcsw, wobcswLev - _RL wobcsw ( nr,nobcs) - _RL wobcswLev (1-oly:sny+oly,nr,nsx,nsy,nobcs) - common /controlaux_obcsw_r/ + _RL wobcsw ( Nr,nobcs) + _RL wobcswLev (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) + COMMON /controlaux_obcsw_r/ & xx_obcsw0, & xx_obcsw1 - _RL xx_obcsw0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) - _RL xx_obcsw1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) + _RL xx_obcsw0 (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) + _RL xx_obcsw1 (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) #endif -#if (defined (ALLOW_OBCSE_COST_CONTRIBUTION) || defined (ALLOW_OBCSE_CONTROL)) - common /ecco_cost_weights_obcse/ +#if ( defined ALLOW_OBCSE_COST_CONTRIBUTION || defined ALLOW_OBCSE_CONTROL ) + COMMON /ecco_cost_weights_obcse/ & wobcse, wobcseLev - _RL wobcse ( nr,nobcs) - _RL wobcseLev (1-oly:sny+oly,nr,nsx,nsy,nobcs) - common /controlaux_obcse_r/ + _RL wobcse ( Nr,nobcs) + _RL wobcseLev (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) + COMMON /controlaux_obcse_r/ & xx_obcse0, & xx_obcse1 - _RL xx_obcse0 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) - _RL xx_obcse1 (1-Oly:sNy+Oly,Nr,nSx,nSy,nobcs) + _RL xx_obcse0 (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) + _RL xx_obcse1 (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) #endif - diff --git a/pkg/ctrl/CTRL_OPTIONS.h b/pkg/ctrl/CTRL_OPTIONS.h index e075a0962e..a9ee249ca8 100644 --- a/pkg/ctrl/CTRL_OPTIONS.h +++ b/pkg/ctrl/CTRL_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: CTRL_OPTIONS.h C !INTERFACE: @@ -10,11 +15,6 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef CTRL_OPTIONS_H -#define CTRL_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_CTRL #ifdef ECCO_CPPOPTIONS_H @@ -26,51 +26,68 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -#undef EXCLUDE_CTRL_PACK +C o I/O and pack settings +#undef CTRL_SET_PREC_32 +C This option is only relevant (for pack/unpack) with OBCS_CONTROL: #undef ALLOW_NONDIMENSIONAL_CONTROL_IO - -C >>> Initial values. -#undef ALLOW_THETA0_CONTROL -#undef ALLOW_SALT0_CONTROL -#undef ALLOW_UVEL0_CONTROL -#undef ALLOW_VVEL0_CONTROL -#undef ALLOW_TR10_CONTROL -#undef ALLOW_TAUU0_CONTROL -#undef ALLOW_TAUV0_CONTROL -#undef ALLOW_SFLUX0_CONTROL -#undef ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_PRECIP_CONTROL +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_PACKUNPACK_METHOD2 +#undef CTRL_DO_PACK_UNPACK_ONLY +#undef CTRL_PACK_PRECISE +#undef CTRL_UNPACK_PRECISE +#undef CTRL_DELZNORM +#undef ALLOW_CTRL_WETV C >>> Other Control. -#undef ALLOW_DIFFKR_CONTROL +C Allows for GMREDI controls #undef ALLOW_KAPGM_CONTROL #undef ALLOW_KAPREDI_CONTROL +C Allows for Vertical Diffusivity controls +#undef ALLOW_DIFFKR_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL - -C >>> Backward compatibility option (before checkpoint 65p) -#undef ALLOW_KAPGM_CONTROL_OLD -#undef ALLOW_KAPREDI_CONTROL_OLD +#undef ALLOW_DIC_CONTROL + +C Allows bathymetry as a control vector +C Note: keep this Option separated from generic control since this control +C involves many new dependencies that we would like to avoid in general. +#undef ALLOW_DEPTH_CONTROL +#ifdef ALLOW_DEPTH_CONTROL +C Only relevant within DEPTH_CONTROL code: +# define USE_SMOOTH_MIN +# undef ALLOW_HFACC_CONTROL +# undef ALLOW_HFACC3D_CONTROL +#endif /* ALLOW_DEPTH_CONTROL */ C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL -#undef ALLOW_GENTIM2D_CONTROL +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL +# undef ALLOW_UVEL0_CONTROL +# undef ALLOW_VVEL0_CONTROL +# undef CTRL_SET_OLD_MAXCVARS_30 +# undef CTRL_SET_OLD_MAXCVARS_40 + +C >>> Open boundaries +#ifdef ALLOW_OBCS +C Control of Open-Boundaries is meaningless without compiling pkg/obcs +C Note: Make sure that corresponding OBCS N/S/W/E Option is defined +# define ALLOW_OBCSN_CONTROL +# define ALLOW_OBCSS_CONTROL +# define ALLOW_OBCSW_CONTROL +# define ALLOW_OBCSE_CONTROL +# undef ALLOW_OBCS_CONTROL_MODES +#endif /* ALLOW_OBCS */ + +C o Set ALLOW_OBCS_CONTROL (Do not edit/modify): +#if (defined (ALLOW_OBCSN_CONTROL) || \ + defined (ALLOW_OBCSS_CONTROL) || \ + defined (ALLOW_OBCSW_CONTROL) || \ + defined (ALLOW_OBCSE_CONTROL)) +# define ALLOW_OBCS_CONTROL +#endif + +C o Impose bounds on controls +#undef ALLOW_ADCTRLBOUND C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions @@ -82,19 +99,16 @@ C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this C to the other the time variable atmospheric controls. #undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL -C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) -C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. -#undef ALLOW_SMOOTH_CORREL2D -C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) -C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. -#undef ALLOW_SMOOTH_CORREL3D - -C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) -#undef ALLOW_CTRL_SMOOTH -C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +C Note: this flag turns on extra smoothing code in ctrl_get_gen.F which +C is inconsistent with the Weaver and Courtier, 2001 algorithm, and +C should probably not be used. The corresponding 3D flag applied only +C to deprecated code that is now removed. At some point we will remove +C this flag and associated code as well. +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of Smooth_Correl2D) #undef ALLOW_SMOOTH_CTRL2D -C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) -#undef ALLOW_SMOOTH_CTRL3D + +C o Print more debug info to STDOUT +#undef ALLOW_CTRL_DEBUG C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/pkg/ctrl/adctrl_bound.F b/pkg/ctrl/adctrl_bound.F index 875d4dd836..c187826d4d 100644 --- a/pkg/ctrl/adctrl_bound.F +++ b/pkg/ctrl/adctrl_bound.F @@ -11,7 +11,7 @@ C !INTERFACE: SUBROUTINE ADCTRL_BOUND_3D( U fieldCur, adjFieldCur, - I maskFld3d, boundsVec, myThid ) + I mask3D, boundsVec, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -28,9 +28,9 @@ SUBROUTINE ADCTRL_BOUND_3D( #include "EEPARAMS.h" C !INPUT/OUTPUT PARAMETERS: - _RL fieldCur (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL adjFieldCur(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RS maskFld3d (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL fieldCur (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL adjFieldCur(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS mask3D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL boundsVec(5) INTEGER myThid @@ -63,7 +63,7 @@ SUBROUTINE ADCTRL_BOUND_3D( DO k = 1,Nr DO j = 1,sNy DO i = 1,sNx - IF (maskFld3d(i,j,k,bi,bj).NE.0.) THEN + IF (mask3D(i,j,k,bi,bj).NE.0.) THEN xCur=fieldCur(i,j,k,bi,bj) adxCur=adjFieldCur(i,j,k,bi,bj) IF ( (xCur.GT.x2).AND.(adxCur.LT.0.) ) THEN @@ -101,7 +101,7 @@ SUBROUTINE ADCTRL_BOUND_3D( C !INTERFACE: SUBROUTINE ADCTRL_BOUND_2D( U fieldCur, adjFieldCur, - I maskFld3d, boundsVec, myThid ) + I mask2D, boundsVec, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -118,9 +118,9 @@ SUBROUTINE ADCTRL_BOUND_2D( #include "EEPARAMS.h" C !INPUT/OUTPUT PARAMETERS: - _RL fieldCur (1-Olx:sNx+Olx,1-Oly:sNy+Oly, nSx,nSy) - _RL adjFieldCur(1-Olx:sNx+Olx,1-Oly:sNy+Oly, nSx,nSy) - _RS maskFld3d (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL fieldCur (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL adjFieldCur(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL boundsVec(5) INTEGER myThid @@ -152,7 +152,7 @@ SUBROUTINE ADCTRL_BOUND_2D( DO j = 1,sNy DO i = 1,sNx - IF (maskFld3d(i,j,1,bi,bj).NE.0.) THEN + IF (mask2D(i,j,bi,bj).NE.0.) THEN xCur=fieldCur(i,j,bi,bj) adxCur=adjFieldCur(i,j,bi,bj) IF ( (xCur.GT.x2).AND.(adxCur.LT.0.) ) THEN diff --git a/pkg/ctrl/ctrl.h b/pkg/ctrl/ctrl.h index 441c902a74..ecf1a17a17 100644 --- a/pkg/ctrl/ctrl.h +++ b/pkg/ctrl/ctrl.h @@ -27,13 +27,8 @@ c ================================================================== cph ctrlprec will be set to 32 for ECCO to reduce I/O cph but jeopardizes some gradient checks, so should be cph set to 64 by default. -cph Need to put this in namelist at some point! integer ctrlprec -#ifdef CTRL_SET_PREC_32 - parameter ( ctrlprec = 32 ) -#else - parameter ( ctrlprec = 64 ) -#endif + common /controlparams_i/ ctrlprec #ifdef ALLOW_ADMTLM integer admtlmrec @@ -50,19 +45,23 @@ cph Need to put this in namelist at some point! _RL delZexp _RL forcingPrecond -C doInitXX :: at iter 0 only, set ctrls to 0 and write to xx*000.data -C doMainPack :: pack adxx*data files into ecco_cost_* file (usually for optim.x) -C doMainUnpack :: unpack ecco_ctrl_* file (usually from optim.x) into xx_*data files -C doPackDiag :: output diag_pack*/diag_unpack* files during ctrl_pack/ctrl_unpack -C doSinglePrecTapelev :: reduce precision of ad tape files to float32 (only used in pkg/autodiff ...) -C ctrlSmoothCorrel2D :: use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) -C ctrlSmoothCorrel3D :: use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) -C ctrlUseGen :: use generic control approach rather than old codes from pkg/ecco + common /controlparams_c/ + & ctrlDir + + CHARACTER*(MAX_LEN_FNAM) ctrlDir + +C doInitXX :: at iter 0 only, set ctrls to 0 and write +C to xx*000.data +C doMainPack :: pack adxx*data files into ecco_cost_* file +C (usually for optim.x) +C doMainUnpack :: unpack ecco_ctrl_* file (usually from optim.x) +C into xx_*data files +C doPackDiag :: output diag_pack*/diag_unpack* files during +C ctrl_pack/ctrl_unpack +C doSinglePrecTapelev :: reduce precision of ad tape files to float32 +C (only used in pkg/autodiff ...) common /controlvars_l / - & ctrlSmoothCorrel2D, - & ctrlSmoothCorrel3D, - & ctrlUseGen, & doInitXX, & doAdmTlm, & doPackDiag, @@ -73,8 +72,6 @@ C ctrlUseGen :: use generic control approach rather than old c & doSinglePrecTapelev, & doAdmtlmBypassAD - logical ctrlSmoothCorrel2D, ctrlSmoothCorrel3D - logical ctrlUseGen logical doInitXX logical doAdmTlm logical doPackDiag @@ -113,23 +110,23 @@ C ctrlUseGen :: use generic control approach rather than old c integer ncvarxmax ( maxcvars ) integer ncvarymax ( maxcvars ) integer ncvarnrmax ( maxcvars ) - integer nwetctile ( nsx,nsy,nr ) - integer nwetstile ( nsx,nsy,nr ) - integer nwetwtile ( nsx,nsy,nr ) - integer nwetvtile ( nsx,nsy,nr ) - integer nwetcglobal ( nr ) - integer nwetsglobal ( nr ) - integer nwetwglobal ( nr ) - integer nwetvglobal ( nr ) + integer nwetctile ( nSx,nSy,Nr ) + integer nwetstile ( nSx,nSy,Nr ) + integer nwetwtile ( nSx,nSy,Nr ) + integer nwetvtile ( nSx,nSy,Nr ) + integer nwetcglobal ( Nr ) + integer nwetsglobal ( Nr ) + integer nwetwglobal ( Nr ) + integer nwetvglobal ( Nr ) integer nbuffglobal -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE common /controlvars_i_shifwflx/ & nwetitile, nwetiglobal, filenWetiGlobal - integer nwetitile ( nsx,nsy,nr ) - integer nwetiglobal ( nr ) - integer filenWetiGlobal(nr) -#endif /* ALLOW_SHIFWFLX_CONTROL */ + integer nwetitile ( nSx,nSy,Nr ) + integer nwetiglobal ( Nr ) + integer filenWetiGlobal(Nr) +#endif /* ALLOW_SHELFICE */ common /controlvars_c/ & ncvargrd @@ -169,10 +166,10 @@ C ctrlUseGen :: use generic control approach rather than old c integer filensx integer filensy integer filek - integer filenWetcGlobal(nr) - integer filenWetsGlobal(nr) - integer filenWetwGlobal(nr) - integer filenWetvGlobal(nr) + integer filenWetcGlobal(Nr) + integer filenWetsGlobal(Nr) + integer filenWetwGlobal(Nr) + integer filenWetvGlobal(Nr) integer filencvarindex(maxcvars) integer filencvarrecs(maxcvars) integer filencvarxmax(maxcvars) @@ -191,18 +188,8 @@ C ctrlUseGen :: use generic control approach rather than old c c Define unit weight as a placeholder common /ctrl_weights_unit_r/ - & wunit, - & wareaunit - _RL wunit (nr,nsx,nsy) - _RL wareaunit (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - -cph common /controlvars_r/ -cph & tmpfld2d -cph & , tmpfld3d - _RL tmpfld2d - & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL tmpfld3d - & (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + & wunit + _RL wunit (Nr,nSx,nSy) common /packnames_c/ & yadmark, @@ -235,94 +222,13 @@ cph & , tmpfld3d double precision phtmpadmtlm(maxn) #endif -#ifdef ECCO_CTRL_DEPRECATED - _RL num_zero_mean (nsx,nsy) - _RL objf_zero_mean (nsx,nsy) - _RL objf_zero_smoo (nsx,nsy) - common /ctrl_zero_r/ num_zero_mean, - & objf_zero_mean, objf_zero_smoo -#endif - -#ifndef ALLOW_ECCO - common /ctrl_weights_atmos_r/ - & whflux, - & wsflux, - & wtauu, - & wtauv, - & watemp, - & waqh, - & wprecip, - & wswflux, - & wswdown, - & wuwind, - & wvwind, - & wlwflux, - & wlwdown, - & wevap, - & wsnowprecip, - & wapressure, - & wrunoff, - & wsst, - & wsss - _RL whflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wsflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wtauu (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wtauv (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL watemp (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL waqh (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wprecip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wswflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wswdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wuwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wvwind (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wlwflux (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wlwdown (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wevap (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wsnowprecip (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wapressure(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wrunoff (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wsst (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wsss (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -#endif - c Control variables: c ================== c -c xx_theta - control vector temperature part. -c xx_salt - control vector salt part. -c xx_hflux - control vector surface heat flux part. -c xx_sflux - control vector surface salt flux part. -c xx_tauu - control vector zonal wind stress part. -c xx_tauv - control vector meridional wind stress part. -cph( -c xx_... are to be replaced by tmpfld2d/3d throughout the code; -c control variables are written to / read from active files -c TAMC sees xx_..._dummy - #ifdef ALLOW_OPENAD C common /controlvars_r_openad/ & xx_place_holder -# ifdef ECCO_CTRL_DEPRECATED - & , xx_theta - & , xx_salt - & , xx_uvel - & , xx_vvel - & , xx_etan -# ifdef ALLOW_DIFFKR_CONTROL - & , xx_diffkr -# endif -# ifdef ALLOW_KAPGM_CONTROL - & , xx_kapgm -# endif -# ifdef ALLOW_TR10_CONTROL - & , xx_tr1 -# endif -# ifdef ALLOW_HFLUXM_CONTROL - & , xx_hfluxm -# endif -# endif /* ECCO_CTRL_DEPRECATED */ - # ifdef ALLOW_GENARR2D_CONTROL & , xx_genarr2d # endif @@ -330,683 +236,18 @@ C & , xx_genarr3d # endif C -# ifdef ECCO_CTRL_DEPRECATED - _RL xx_theta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xx_salt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xx_uvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xx_vvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xx_etan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# ifdef ALLOW_DIFFKR_CONTROL - _RL xx_diffkr(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -# endif -# ifdef ALLOW_KAPGM_CONTROL - _RL xx_kapgm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -# endif -# ifdef ALLOW_TR10_CONTROL - _RL xx_tr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -# endif -# ifdef ALLOW_HFLUXM_CONTROL - _RL xx_hfluxm(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# endif /* ECCO_CTRL_DEPRECATED */ - _RL xx_place_holder # ifdef ALLOW_GENARR2D_CONTROL - _RL xx_genarr2d(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy, + _RL xx_genarr2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy, & maxCtrlArr2D) # endif # ifdef ALLOW_GENARR3D_CONTROL - _RL xx_genarr3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy, + _RL xx_genarr3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy, & maxCtrlArr3D) # endif #endif - -c Auxiliary storage arrays for the control variables: -c =================================================== -c -c xx_hflux0 - heat flux record before current date. -c xx_hflux1 - heat flux record after current date -c xx_sflux0 - salt flux record before current date. -c xx_sflux1 - salt flux record after current date. -c xx_tauu0 - zonal wind stress record before current date. -c xx_tauu1 - zonal wind stress record after current date. -c xx_tauv0 - meridional wind stress record before current date. -c xx_tauv1 - meridional wind stress record after current date. - -#ifdef ECCO_CTRL_DEPRECATED -# if (defined (ALLOW_HFLUX_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_HFLUX0_CONTROL))) - common /controlaux_hflux_r/ - & xx_hflux0, - & xx_hflux1 -# elif (defined (ALLOW_ATEMP_CONTROL)) - common /controlaux_atemp_r/ - & xx_atemp0, - & xx_atemp1 -# endif - -# if (defined (ALLOW_SFLUX_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_SFLUX0_CONTROL))) - common /controlaux_swflux_r/ - & xx_sflux0, - & xx_sflux1 -# elif (defined (ALLOW_AQH_CONTROL)) - common /controlaux_aqh_r/ - & xx_aqh0, - & xx_aqh1 -# endif - -# if (defined (ALLOW_ATM_MEAN_CONTROL)) - common /controlaux_atm_mean_r/ - & xx_atemp_mean, - & xx_aqh_mean, - & xx_uwind_mean, - & xx_vwind_mean, - & xx_precip_mean, - & xx_swdown_mean -# endif - -# if (defined (ALLOW_USTRESS_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_TAUU0_CONTROL))) - common /controlaux_ustress_r/ - & xx_tauu0, - & xx_tauu1 -# endif - -# if (defined (ALLOW_UWIND_CONTROL)) - common /controlaux_uwind_r/ - & xx_uwind0, - & xx_uwind1 -# endif - -# if (defined (ALLOW_VSTRESS_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_TAUV0_CONTROL))) - common /controlaux_vstress_r/ - & xx_tauv0, - & xx_tauv1 -# endif - -# if (defined (ALLOW_VWIND_CONTROL)) - common /controlaux_vwind_r/ - & xx_vwind0, - & xx_vwind1 -# endif - -# if (defined (ALLOW_PRECIP_CONTROL)) - common /controlaux_precip_r/ - & xx_precip0, - & xx_precip1 -# endif - -# if (defined (ALLOW_SWFLUX_CONTROL)) - common /controlaux_swflux_r/ - & xx_swflux0, - & xx_swflux1 -# endif - -# if (defined (ALLOW_SWDOWN_CONTROL)) - common /controlaux_swdown_r/ - & xx_swdown0, - & xx_swdown1 -# endif - -# if (defined (ALLOW_LWFLUX_CONTROL)) - common /controlaux_lwflux_r/ - & xx_lwflux0, - & xx_lwflux1 -# endif - -# if (defined (ALLOW_LWDOWN_CONTROL)) - common /controlaux_lwdown_r/ - & xx_lwdown0, - & xx_lwdown1 -# endif - -# if (defined (ALLOW_EVAP_CONTROL)) - common /controlaux_evap_r/ - & xx_evap0, - & xx_evap1 -# endif - -# if (defined (ALLOW_SNOWPRECIP_CONTROL)) - common /controlaux_snowprecip_r/ - & xx_snowprecip0, - & xx_snowprecip1 -# endif - -# if (defined (ALLOW_APRESSURE_CONTROL)) - common /controlaux_apressure_r/ - & xx_apressure0, - & xx_apressure1 -# endif - -# if (defined (ALLOW_RUNOFF_CONTROL)) - common /controlaux_runoff_r/ - & xx_runoff0, - & xx_runoff1 -# endif - -# if (defined (ALLOW_SST_CONTROL)) - common /controlaux_sst_r/ - & xx_sst0, - & xx_sst1 -# endif -# if (defined (ALLOW_SSS_CONTROL)) - common /controlaux_sss_r/ - & xx_sss0, - & xx_sss1 -# endif - -# ifdef ALLOW_SHIFWFLX_CONTROL - common /controlaux_shifwflx_r/ - & xx_shifwflx0, - & xx_shifwflx1 - _RL xx_shifwflx0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_shifwflx1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif /* ALLOW_SHIFWFLX_CONTROL */ - -# if (defined (ALLOW_HFLUX_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_HFLUX0_CONTROL))) - _RL xx_hflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_hflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# elif (defined (ALLOW_ATEMP_CONTROL)) - _RL xx_atemp0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_atemp1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_SFLUX_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_SFLUX0_CONTROL))) - _RL xx_sflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_sflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# elif (defined (ALLOW_AQH_CONTROL)) - _RL xx_aqh0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_aqh1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_USTRESS_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_TAUU0_CONTROL))) - _RL xx_tauu0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_tauu1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_UWIND_CONTROL)) - _RL xx_uwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_uwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_VSTRESS_CONTROL) || (defined (ALLOW_OPENAD) && defined (ALLOW_TAUV0_CONTROL))) - _RL xx_tauv0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_tauv1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_VWIND_CONTROL)) - _RL xx_vwind0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_vwind1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -#if (defined (ALLOW_PRECIP_CONTROL)) - _RL xx_precip0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_precip1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -#if (defined (ALLOW_SWFLUX_CONTROL)) - _RL xx_swflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_swflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -#endif -# if (defined (ALLOW_SWDOWN_CONTROL)) - _RL xx_swdown0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_swdown1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_LWFLUX_CONTROL)) - _RL xx_lwflux0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_lwflux1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_LWDOWN_CONTROL)) - _RL xx_lwdown0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_lwdown1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_EVAP_CONTROL)) - _RL xx_evap0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_evap1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_SNOWPRECIP_CONTROL)) - _RL xx_snowprecip0 - & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_snowprecip1 - & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_APRESSURE_CONTROL)) - _RL xx_apressure0 - & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_apressure1 - & (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_RUNOFF_CONTROL)) - _RL xx_runoff0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_runoff1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_SST_CONTROL)) - _RL xx_sst0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_sst1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_SSS_CONTROL)) - _RL xx_sss0 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_sss1 (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -# if (defined (ALLOW_ATM_MEAN_CONTROL)) - _RL xx_atemp_mean (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_aqh_mean (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_uwind_mean (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_vwind_mean (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_precip_mean(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_swdown_mean(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -# endif -#endif /* ECCO_CTRL_DEPRECATED */ - -#ifdef ECCO_CTRL_DEPRECATED -c Files where the control variables are stored: -c ============================================= -c -c xx_theta_file - control vector temperature part. -c xx_salt_file - control vector salinity part. -c xx_hflux_file - control vector surface heat flux file. -c xx_sflux_file - control vector surface salt flux file. -c xx_tauu_file - control vector zonal wind stress file. -c xx_tauv_file - control vector meridional wind stress file. - common /controlfiles_c/ - & xx_theta_file - & , xx_salt_file - & , xx_hflux_file - & , xx_sflux_file - & , xx_tauu_file - & , xx_tauv_file - & , xx_atemp_file - & , xx_aqh_file - & , xx_precip_file - & , xx_swflux_file - & , xx_swdown_file - & , xx_lwflux_file - & , xx_lwdown_file - & , xx_evap_file - & , xx_snowprecip_file - & , xx_apressure_file - & , xx_runoff_file - & , xx_uwind_file - & , xx_vwind_file - & , xx_atemp_mean_file - & , xx_aqh_mean_file - & , xx_precip_mean_file - & , xx_swdown_mean_file - & , xx_uwind_mean_file - & , xx_vwind_mean_file - & , xx_diffkr_file - & , xx_kapgm_file - & , xx_kapredi_file - & , xx_tr1_file - & , xx_sst_file - & , xx_sss_file - & , xx_depth_file - & , xx_efluxy_file - & , xx_efluxp_file - & , xx_bottomdrag_file - & , xx_edtaux_file - & , xx_edtauy_file - & , xx_uvel_file - & , xx_vvel_file - & , xx_etan_file - & , xx_relaxsst_file - & , xx_relaxsss_file - & , xx_theta_ini_fin_file - & , xx_salt_ini_fin_file - & , xx_siarea_file - & , xx_siheff_file - & , xx_sihsnow_file - & , xx_gen2d_file - & , xx_gen3d_file -cHFLUXM_CONTROL - & , xx_hfluxm_file -cHFLUXM_CONTROL - & , xx_shifwflx_file - - character*(MAX_LEN_FNAM) xx_theta_file - character*(MAX_LEN_FNAM) xx_salt_file - character*(MAX_LEN_FNAM) xx_hflux_file - character*(MAX_LEN_FNAM) xx_sflux_file - character*(MAX_LEN_FNAM) xx_tauu_file - character*(MAX_LEN_FNAM) xx_tauv_file - character*(MAX_LEN_FNAM) xx_atemp_file - character*(MAX_LEN_FNAM) xx_aqh_file - character*(MAX_LEN_FNAM) xx_precip_file - character*(MAX_LEN_FNAM) xx_swflux_file - character*(MAX_LEN_FNAM) xx_swdown_file - character*(MAX_LEN_FNAM) xx_lwflux_file - character*(MAX_LEN_FNAM) xx_lwdown_file - character*(MAX_LEN_FNAM) xx_evap_file - character*(MAX_LEN_FNAM) xx_snowprecip_file - character*(MAX_LEN_FNAM) xx_apressure_file - character*(MAX_LEN_FNAM) xx_runoff_file - character*(MAX_LEN_FNAM) xx_uwind_file - character*(MAX_LEN_FNAM) xx_vwind_file - character*(MAX_LEN_FNAM) xx_atemp_mean_file - character*(MAX_LEN_FNAM) xx_aqh_mean_file - character*(MAX_LEN_FNAM) xx_precip_mean_file - character*(MAX_LEN_FNAM) xx_swdown_mean_file - character*(MAX_LEN_FNAM) xx_uwind_mean_file - character*(MAX_LEN_FNAM) xx_vwind_mean_file - character*(MAX_LEN_FNAM) xx_diffkr_file - character*(MAX_LEN_FNAM) xx_kapgm_file - character*(MAX_LEN_FNAM) xx_kapredi_file - character*(MAX_LEN_FNAM) xx_tr1_file - character*(MAX_LEN_FNAM) xx_sst_file - character*(MAX_LEN_FNAM) xx_sss_file - character*(MAX_LEN_FNAM) xx_depth_file - character*(MAX_LEN_FNAM) xx_efluxy_file - character*(MAX_LEN_FNAM) xx_efluxp_file - character*(MAX_LEN_FNAM) xx_bottomdrag_file - character*(MAX_LEN_FNAM) xx_edtaux_file - character*(MAX_LEN_FNAM) xx_edtauy_file - character*(MAX_LEN_FNAM) xx_uvel_file - character*(MAX_LEN_FNAM) xx_vvel_file - character*(MAX_LEN_FNAM) xx_etan_file - character*(MAX_LEN_FNAM) xx_relaxsst_file - character*(MAX_LEN_FNAM) xx_relaxsss_file - character*(MAX_LEN_FNAM) xx_theta_ini_fin_file - character*(MAX_LEN_FNAM) xx_salt_ini_fin_file - character*(MAX_LEN_FNAM) xx_siarea_file - character*(MAX_LEN_FNAM) xx_siheff_file - character*(MAX_LEN_FNAM) xx_sihsnow_file - character*(MAX_LEN_FNAM) xx_gen2d_file - character*(MAX_LEN_FNAM) xx_gen3d_file -cHFLUXM_CONTROL - character*(MAX_LEN_FNAM) xx_hfluxm_file -cHFLUXM_CONTROL - character*(MAX_LEN_FNAM) xx_shifwflx_file - -c Calendar information for the control variables: -c =============================================== -c -c xx_${varname}period - sampling interval for the ${varname} control -c part in seconds -c special cases for ifdef ALLOW_CAL (in anology to pkg/exf): -c xx_${varname}period = -12. : control parameter is the seasonal cycle -c xx_${varname}period = 0. : control parameter is constant in time -c -c The naming convention follows mostly that of the exf-pkg. A few -c examples follow: -c xx_atempperiod - sampling interval for the atmospheric surface -c temperature control part. -c ... -c xx_hfluxperiod - sampling interval for the heat flux control part. -c xx_sfluxperiod - sampling interval for the salt flux control part. -c xx_tauuperiod - sampling interval for the zonal wind -c stress control part. -c xx_tauvperiod - sampling interval for the meridional wind -c stress control part. -c ... - - common /controltimes_r/ - & xx_hfluxperiod - & , xx_sfluxperiod - & , xx_tauuperiod - & , xx_tauvperiod - & , xx_atempperiod - & , xx_aqhperiod - & , xx_precipperiod - & , xx_swfluxperiod - & , xx_swdownperiod - & , xx_lwfluxperiod - & , xx_lwdownperiod - & , xx_evapperiod - & , xx_snowprecipperiod - & , xx_apressureperiod - & , xx_runoffperiod - & , xx_uwindperiod - & , xx_vwindperiod - & , xx_sstperiod - & , xx_sssperiod - & , xx_shifwflxperiod - _RL xx_hfluxperiod - _RL xx_sfluxperiod - _RL xx_tauuperiod - _RL xx_tauvperiod - _RL xx_atempperiod - _RL xx_aqhperiod - _RL xx_precipperiod - _RL xx_swfluxperiod - _RL xx_swdownperiod - _RL xx_lwfluxperiod - _RL xx_lwdownperiod - _RL xx_evapperiod - _RL xx_snowprecipperiod - _RL xx_apressureperiod - _RL xx_runoffperiod - _RL xx_uwindperiod - _RL xx_vwindperiod - _RL xx_sstperiod - _RL xx_sssperiod - _RL xx_shifwflxperiod - - common /ctrl_param_trend_removal/ - & xx_hflux_remo_intercept, xx_hflux_remo_slope, - & xx_sflux_remo_intercept, xx_sflux_remo_slope, - & xx_tauu_remo_intercept, xx_tauu_remo_slope, - & xx_tauv_remo_intercept, xx_tauv_remo_slope, - & xx_atemp_remo_intercept, xx_atemp_remo_slope, - & xx_aqh_remo_intercept, xx_aqh_remo_slope, - & xx_precip_remo_intercept, xx_precip_remo_slope, - & xx_swflux_remo_intercept, xx_swflux_remo_slope, - & xx_swdown_remo_intercept, xx_swdown_remo_slope, - & xx_lwflux_remo_intercept, xx_lwflux_remo_slope, - & xx_lwdown_remo_intercept, xx_lwdown_remo_slope, - & xx_evap_remo_intercept, xx_evap_remo_slope, - & xx_snowprecip_remo_intercept, - & xx_snowprecip_remo_slope, - & xx_apressure_remo_intercept, - & xx_apressure_remo_slope, - & xx_sst_remo_intercept, xx_sst_remo_slope, - & xx_sss_remo_intercept, xx_sss_remo_slope, - & xx_runoff_remo_intercept, xx_runoff_remo_slope, - & xx_uwind_remo_intercept, xx_uwind_remo_slope, - & xx_vwind_remo_intercept, xx_vwind_remo_slope, - & xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope - - _RL xx_hflux_remo_intercept, xx_hflux_remo_slope - _RL xx_sflux_remo_intercept, xx_sflux_remo_slope - _RL xx_tauu_remo_intercept, xx_tauu_remo_slope - _RL xx_tauv_remo_intercept, xx_tauv_remo_slope - _RL xx_atemp_remo_intercept, xx_atemp_remo_slope - _RL xx_aqh_remo_intercept, xx_aqh_remo_slope - _RL xx_precip_remo_intercept, xx_precip_remo_slope - _RL xx_swflux_remo_intercept, xx_swflux_remo_slope - _RL xx_swdown_remo_intercept, xx_swdown_remo_slope - _RL xx_lwflux_remo_intercept, xx_lwflux_remo_slope - _RL xx_lwdown_remo_intercept, xx_lwdown_remo_slope - _RL xx_evap_remo_intercept, xx_evap_remo_slope - _RL xx_snowprecip_remo_intercept - _RL xx_snowprecip_remo_slope - _RL xx_apressure_remo_intercept - _RL xx_apressure_remo_slope - _RL xx_sst_remo_intercept, xx_sst_remo_slope - _RL xx_sss_remo_intercept, xx_sss_remo_slope - _RL xx_runoff_remo_intercept, xx_runoff_remo_slope - _RL xx_uwind_remo_intercept, xx_uwind_remo_slope - _RL xx_vwind_remo_intercept, xx_vwind_remo_slope - _RL xx_shifwflx_remo_intercept,xx_shifwflx_remo_slope - -c xx_hfluxstartdate - start date for the heat flux control part. -c xx_sfluxstartdate - start date for the salt flux control part. -c xx_tauustartdate - start date for the zonal wind stress -c control part. -c xx_tauvstartdate - start date for the meridional wind stress -c control part. - - common /controltimes_i/ - & xx_hfluxstartdate1 - & , xx_hfluxstartdate2 - & , xx_sfluxstartdate1 - & , xx_sfluxstartdate2 - & , xx_tauustartdate1 - & , xx_tauustartdate2 - & , xx_tauvstartdate1 - & , xx_tauvstartdate2 - & , xx_atempstartdate1 - & , xx_atempstartdate2 - & , xx_aqhstartdate1 - & , xx_aqhstartdate2 - & , xx_precipstartdate1 - & , xx_precipstartdate2 - & , xx_swfluxstartdate1 - & , xx_swfluxstartdate2 - & , xx_swdownstartdate1 - & , xx_swdownstartdate2 - & , xx_snowprecipstartdate1 - & , xx_snowprecipstartdate2 - & , xx_lwfluxstartdate1 - & , xx_lwfluxstartdate2 - & , xx_lwdownstartdate1 - & , xx_lwdownstartdate2 - & , xx_evapstartdate1 - & , xx_evapstartdate2 - & , xx_apressurestartdate1 - & , xx_apressurestartdate2 - & , xx_runoffstartdate1 - & , xx_runoffstartdate2 - & , xx_uwindstartdate1 - & , xx_uwindstartdate2 - & , xx_vwindstartdate1 - & , xx_vwindstartdate2 - & , xx_sststartdate1 - & , xx_sststartdate2 - & , xx_sssstartdate1 - & , xx_sssstartdate2 - & , xx_hfluxstartdate - & , xx_sfluxstartdate - & , xx_tauustartdate - & , xx_tauvstartdate - & , xx_atempstartdate - & , xx_aqhstartdate - & , xx_precipstartdate - & , xx_swfluxstartdate - & , xx_swdownstartdate - & , xx_uwindstartdate - & , xx_snowprecipstartdate - & , xx_lwfluxstartdate - & , xx_lwdownstartdate - & , xx_evapstartdate - & , xx_apressurestartdate - & , xx_runoffstartdate - & , xx_vwindstartdate - & , xx_sststartdate - & , xx_sssstartdate - & , xx_shifwflxstartdate1 - & , xx_shifwflxstartdate2 - & , xx_shifwflxstartdate - integer xx_hfluxstartdate1 - integer xx_hfluxstartdate2 - integer xx_sfluxstartdate1 - integer xx_sfluxstartdate2 - integer xx_tauustartdate1 - integer xx_tauustartdate2 - integer xx_tauvstartdate1 - integer xx_tauvstartdate2 - integer xx_atempstartdate1 - integer xx_atempstartdate2 - integer xx_aqhstartdate1 - integer xx_aqhstartdate2 - integer xx_precipstartdate1 - integer xx_precipstartdate2 - integer xx_swfluxstartdate1 - integer xx_swfluxstartdate2 - integer xx_swdownstartdate1 - integer xx_swdownstartdate2 - integer xx_snowprecipstartdate1 - integer xx_snowprecipstartdate2 - integer xx_lwfluxstartdate1 - integer xx_lwfluxstartdate2 - integer xx_lwdownstartdate1 - integer xx_lwdownstartdate2 - integer xx_evapstartdate1 - integer xx_evapstartdate2 - integer xx_apressurestartdate1 - integer xx_apressurestartdate2 - integer xx_runoffstartdate1 - integer xx_runoffstartdate2 - integer xx_uwindstartdate1 - integer xx_uwindstartdate2 - integer xx_vwindstartdate1 - integer xx_vwindstartdate2 - integer xx_sststartdate1 - integer xx_sststartdate2 - integer xx_sssstartdate1 - integer xx_sssstartdate2 - integer xx_shifwflxstartdate1 - integer xx_shifwflxstartdate2 - - integer xx_hfluxstartdate(4) - integer xx_sfluxstartdate(4) - integer xx_tauustartdate(4) - integer xx_tauvstartdate(4) - integer xx_atempstartdate(4) - integer xx_aqhstartdate(4) - integer xx_precipstartdate(4) - integer xx_swfluxstartdate(4) - integer xx_swdownstartdate(4) - integer xx_snowprecipstartdate(4) - integer xx_lwfluxstartdate(4) - integer xx_lwdownstartdate(4) - integer xx_evapstartdate(4) - integer xx_apressurestartdate(4) - integer xx_runoffstartdate(4) - integer xx_uwindstartdate(4) - integer xx_vwindstartdate(4) - integer xx_sststartdate(4) - integer xx_sssstartdate(4) - integer xx_shifwflxstartdate(4) - - character*( 80) fname_theta(3) - character*( 80) fname_salt(3) - character*( 80) fname_hflux(3) - character*( 80) fname_sflux(3) - character*( 80) fname_tauu(3) - character*( 80) fname_tauv(3) - character*( 80) fname_atemp(3) - character*( 80) fname_aqh(3) - character*( 80) fname_precip(3) - character*( 80) fname_swflux(3) - character*( 80) fname_swdown(3) - character*( 80) fname_snowprecip(3) - character*( 80) fname_lwflux(3) - character*( 80) fname_lwdown(3) - character*( 80) fname_evap(3) - character*( 80) fname_apressure(3) - character*( 80) fname_runoff(3) - character*( 80) fname_uwind(3) - character*( 80) fname_vwind(3) - character*( 80) fname_atemp_mean(3) - character*( 80) fname_aqh_mean(3) - character*( 80) fname_precip_mean(3) - character*( 80) fname_swdown_mean(3) - character*( 80) fname_uwind_mean(3) - character*( 80) fname_vwind_mean(3) - character*( 80) fname_diffkr(3) - character*( 80) fname_kapgm(3) - character*( 80) fname_kapredi(3) - character*( 80) fname_tr1(3) - character*( 80) fname_sst(3) - character*( 80) fname_sss(3) - character*( 80) fname_depth(3) - character*( 80) fname_hfacc(3) - character*( 80) fname_efluxy(3) - character*( 80) fname_efluxp(3) - character*( 80) fname_bottomdrag(3) - character*( 80) fname_edtaux(3) - character*( 80) fname_edtauy(3) - character*( 80) fname_uvel(3) - character*( 80) fname_vvel(3) - character*( 80) fname_etan(3) - character*( 80) fname_relaxsst(3) - character*( 80) fname_relaxsss(3) - character*( 80) fname_siarea(3) - character*( 80) fname_siheff(3) - character*( 80) fname_sihsnow(3) - character*( 80) fname_gen2d(3) - character*( 80) fname_gen3d(3) -cHFLUXM_CONTROL - character*( 80) fname_hfluxm(3) -cHFLUXM_CONTROL - character*( 80) fname_shifwflx(3) - -#endif /* ECCO_CTRL_DEPRECATED */ - c ================================================================== c END OF HEADER CONTROLVARS ctrl.h c ================================================================== - diff --git a/pkg/ctrl/ctrl_ad_diff.list b/pkg/ctrl/ctrl_ad_diff.list index c431f047d4..8a540dc959 100644 --- a/pkg/ctrl/ctrl_ad_diff.list +++ b/pkg/ctrl/ctrl_ad_diff.list @@ -3,20 +3,18 @@ ctrl_cost_gen.f ctrl_depth_ini.f ctrl_get_gen.f ctrl_get_gen_rec.f +ctrl_get_mask.f ctrl_init_rec.f ctrl_init_variables.f -ctrl_map_ini.f -ctrl_map_ini_ecco.f -ctrl_map_ini_gen.f ctrl_map_ini_genarr.f ctrl_map_ini_gentim2d.f ctrl_map_forcing.f +ctrl_map_genarr.f ctrl_map_gentim2d.f -ctrl_smooth.f ctrl_getobcse.f ctrl_getobcsn.f ctrl_getobcss.f ctrl_getobcsw.f ctrl_init_obcs_variables.f -ctrl_getrec.f ctrl_swapffields.f +ctrl_toolbox.f diff --git a/pkg/ctrl/ctrl_bound.F b/pkg/ctrl/ctrl_bound.F index 73f0d3f4cd..3883be8801 100644 --- a/pkg/ctrl/ctrl_bound.F +++ b/pkg/ctrl/ctrl_bound.F @@ -13,7 +13,7 @@ C !INTERFACE: SUBROUTINE CTRL_BOUND_3D( U fieldCur, - I maskFld3d, boundsVec, myThid ) + I mask3D, boundsVec, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | started: Gael Forget gforget@mit.edu 20-Aug-2007 @@ -29,8 +29,8 @@ SUBROUTINE CTRL_BOUND_3D( #include "EEPARAMS.h" C !INPUT/OUTPUT PARAMETERS: - _RL fieldCur (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RS maskFld3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL fieldCur(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS mask3D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL boundsVec(5) INTEGER myThid @@ -46,7 +46,7 @@ SUBROUTINE CTRL_BOUND_3D( DO k = 1,Nr DO j = 1,sNy DO i = 1,sNx - IF (maskFld3d(i,j,k,bi,bj).NE.0.) THEN + IF (mask3D(i,j,k,bi,bj).NE.0.) THEN IF (fieldCur(i,j,k,bi,bj).GT.boundsVec(4)) THEN fieldCur(i,j,k,bi,bj)=boundsVec(4) ENDIF @@ -73,7 +73,7 @@ SUBROUTINE CTRL_BOUND_3D( C !INTERFACE: SUBROUTINE CTRL_BOUND_2D( U fieldCur, - I maskFld3d, boundsVec, myThid ) + I mask2D, boundsVec, myThid ) C !DESCRIPTION: \bv C *==========================================================* C | started: Gael Forget gforget@mit.edu 20-Aug-2007 @@ -89,8 +89,8 @@ SUBROUTINE CTRL_BOUND_2D( #include "EEPARAMS.h" C !INPUT/OUTPUT PARAMETERS: - _RL fieldCur (1-Olx:sNx+Olx,1-Oly:sNy+Oly, nSx,nSy) - _RS maskFld3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL fieldCur(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL boundsVec(5) INTEGER myThid @@ -105,7 +105,7 @@ SUBROUTINE CTRL_BOUND_2D( DO j = 1-OLy,sNy+OLy DO i = 1-OLx,sNx+OLx - IF (maskFld3d(i,j,1,bi,bj).NE.0.) THEN + IF (mask2D(i,j,bi,bj).NE.0.) THEN IF (fieldCur(i,j,bi,bj).GT.boundsVec(4)) THEN fieldCur(i,j,bi,bj)=boundsVec(4) ENDIF diff --git a/pkg/ctrl/ctrl_bound.flow b/pkg/ctrl/ctrl_bound.flow index dc69ef8114..ee7cc5a136 100644 --- a/pkg/ctrl/ctrl_bound.flow +++ b/pkg/ctrl/ctrl_bound.flow @@ -1,19 +1,18 @@ c---------------------------------------- c subroutine ctrl_bound_3D c---------------------------------------- -cadj SUBROUTINE ctrl_bound_3D FTLNAME = ctrl_bound_3D +cadj SUBROUTINE ctrl_bound_3D FTLNAME = ctrl_bound_3D_tl cadj SUBROUTINE ctrl_bound_3D ADNAME = adctrl_bound_3D cadj SUBROUTINE ctrl_bound_3D INPUT = 1,2,3,4 -cadj SUBROUTINE ctrl_bound_3D OUTPUT = -cadj SUBROUTINE ctrl_bound_3D ACTIVE = 1 +cadj SUBROUTINE ctrl_bound_3D OUTPUT = 1 +cadj SUBROUTINE ctrl_bound_3D ACTIVE = 1 cadj SUBROUTINE ctrl_bound_3D DEPEND = 1,2,3,4 c---------------------------------------- c subroutine ctrl_bound_2D c---------------------------------------- -cadj SUBROUTINE ctrl_bound_2D FTLNAME = ctrl_bound_2D +cadj SUBROUTINE ctrl_bound_2D FTLNAME = ctrl_bound_2D_tl cadj SUBROUTINE ctrl_bound_2D ADNAME = adctrl_bound_2D cadj SUBROUTINE ctrl_bound_2D INPUT = 1,2,3,4 -cadj SUBROUTINE ctrl_bound_2D OUTPUT = -cadj SUBROUTINE ctrl_bound_2D ACTIVE = 1 +cadj SUBROUTINE ctrl_bound_2D OUTPUT = 1 +cadj SUBROUTINE ctrl_bound_2D ACTIVE = 1 cadj SUBROUTINE ctrl_bound_2D DEPEND = 1,2,3,4 - diff --git a/pkg/ctrl/ctrl_bound_tl.F b/pkg/ctrl/ctrl_bound_tl.F new file mode 100644 index 0000000000..c433267086 --- /dev/null +++ b/pkg/ctrl/ctrl_bound_tl.F @@ -0,0 +1,73 @@ +#include "CTRL_OPTIONS.h" +C- note: although we just need CPP_EEOPTIONS.h here, prefer to +C include the same option-file above as in the AD version. + +C-- File ctrl_bound_tl.F: +C-- Contents +C-- o CTRL_BOUND_3D_TL +C-- o CTRL_BOUND_2D_TL + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_BOUND_3D_TL +C !INTERFACE: + SUBROUTINE CTRL_BOUND_3D_TL( + U fieldCur, fieldCur_tl, + I mask3D, boundsVec, myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | o tangent linear version of S/R CTRL_BOUND_3D. Call +C | S/R CTRL_BOUND_3D to apply specified bounds to control +C | variable, but leave tangent linear variable alone +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: + _RL fieldCur (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL fieldCur_tl(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS mask3D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL boundsVec(5) + INTEGER myThid + + CALL CTRL_BOUND_3D(fieldCur,mask3D,boundsVec,myThid) + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C +C !ROUTINE: CTRL_BOUND_2D_TL +C !INTERFACE: + SUBROUTINE CTRL_BOUND_2D_TL( + U fieldCur, fieldCur_tl, + I mask2D, boundsVec, myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | o tangent linear version of S/R CTRL_BOUND_2D. Call +C | S/R CTRL_BOUND_2D to apply specified bounds to control +C | variable, but leave tangent linear variable alone +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: + _RL fieldCur (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL fieldCur_tl(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL boundsVec(5) + INTEGER myThid + + CALL CTRL_BOUND_2D(fieldCur,mask2D,boundsVec,myThid) + + RETURN + END diff --git a/pkg/ctrl/ctrl_check.F b/pkg/ctrl/ctrl_check.F index cc3e763684..71e7377fbb 100644 --- a/pkg/ctrl/ctrl_check.F +++ b/pkg/ctrl/ctrl_check.F @@ -1,15 +1,32 @@ #include "CTRL_OPTIONS.h" +#include "AD_CONFIG.h" +#ifdef ALLOW_ECCO +# include "ECCO_OPTIONS.h" +#endif +#ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +#endif #ifdef ALLOW_EXF # include "EXF_OPTIONS.h" #endif -#include "AD_CONFIG.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif +CBOP +C !ROUTINE: CTRL_CHECK +C !INTERFACE: SUBROUTINE CTRL_CHECK( myThid ) -C *==========================================================* + +C !DESCRIPTION: \bv +C *================================================================= C | SUBROUTINE CTRK_CHECK -C | o Validate basic package setup and inter-package +C | o Validate basic ctrl package setup and inter-package C | dependencies. -C *==========================================================* +C *================================================================= +C \ev + +C !USES: IMPLICIT NONE C === Global variables === @@ -23,235 +40,513 @@ SUBROUTINE CTRL_CHECK( myThid ) #include "CTRL_SIZE.h" #include "CTRL_GENARR.h" -C === Routine arguments === -C myThid - Number of this instance +C !INPUT/OUTPUT PARAMETERS: +C myThid :: my Thread Id number INTEGER myThid -C === Local variables === -C msgBuf - Informational/error message buffer - CHARACTER*(MAX_LEN_MBUF) msgBuf - LOGICAL solve4Stress +#if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK +#endif -#ifndef ALLOW_OPENAD -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) - integer iarr +C !LOCAL VARIABLES: +C msgBuf :: Informational/error message buffer + CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER errCount +#if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENARR3D_CONTROL || defined ALLOW_GENTIM2D_CONTROL ) + INTEGER iarr #endif +#if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENARR3D_CONTROL ) + INTEGER k2 #endif +#if ( defined ALLOW_GENARR3D_CONTROL && defined ALLOW_PTRACERS ) + INTEGER iLen, iPtr, ascii_1 +#endif +#ifdef ECCO_CTRL_DEPRECATED + INTEGER ioUnit + CHARACTER*(16) w_sfx +#endif +CEOP + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - WRITE(msgBuf,'(A)') 'CTRL_CHECK: #define ALLOW_CTRL' + _BEGIN_MASTER(myThid) + errCount = 0 + + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & ' --> Starts to check CTRL set-up' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -C Can not have both atmos. state and flux field as control - #ifdef ALLOW_TANGENTLINEAR_RUN - if ( yadmark .NE. 'g_' ) then - WRITE(msgBuf,'(A)') + IF ( yadmark .NE. 'g_' ) THEN + WRITE(msgBuf,'(A)') & 'yadmark very likely wrong in data.ctrl for case ' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') & 'ALLOW_TANGENTLINEAR_RUN; should be g_ ' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF #endif -#if (!defined (ALLOW_GENARR2D_CONTROL) && !defined (ALLOW_GENARR3D_CONTROL) && !defined (ALLOW_GENTIM2D_CONTROL)) - if (ctrlUseGen) then - WRITE(msgBuf,'(2A)') 'CTRL_CHECK : ', - & 'Cannot ctrlUseGen unless ALLOW_GEN*_CONTROL is defined ' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif +#ifdef ALLOW_GENTIM2D_CONTROL + IF ( .NOT.useCAL ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ', + & 'ALLOW_GENTIM2D_CONTROL is' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** ', + & ' unsafe without calendar package (currently: useCAL=F)' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF #endif #ifndef ALLOW_OPENAD #ifdef ALLOW_GENARR2D_CONTROL - do iarr = 1, maxCtrlArr2D - if (((xx_genarr2d_weight(iarr).NE.' ').AND. + DO iarr = 1, maxCtrlArr2D + IF (((xx_genarr2d_weight(iarr).NE.' ').AND. & (xx_genarr2d_file(iarr).EQ.' ')).OR. & ((xx_genarr2d_weight(iarr).EQ.' ').AND. - & (xx_genarr2d_file(iarr).NE.' '))) then - WRITE(msgBuf,'(3A)') 'CTRL_CHECK : ', + & (xx_genarr2d_file(iarr).NE.' '))) THEN + WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ', & 'Cannot define xx_genarr2d_weight or xx_genarr2d_file ', & 'separately' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif - enddo -#endif + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDDO +#endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL - do iarr = 1, maxCtrlArr3D - if (((xx_genarr3d_weight(iarr).NE.' ').AND. + DO iarr = 1, maxCtrlArr3D + IF (((xx_genarr3d_weight(iarr).NE.' ').AND. & (xx_genarr3d_file(iarr).EQ.' ')).OR. & ((xx_genarr3d_weight(iarr).EQ.' ').AND. - & (xx_genarr3d_file(iarr).NE.' '))) then - WRITE(msgBuf,'(3A)') 'CTRL_CHECK : ', + & (xx_genarr3d_file(iarr).NE.' '))) THEN + WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ', & 'Cannot define xx_genarr3d_weight or xx_genarr3d_file ', & 'separately' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif - enddo -#endif + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDDO +# ifdef ALLOW_PTRACERS +C Check for valid gen-ctrl file name that mactch a ptracer index + IF ( usePTRACERS ) THEN + DO iarr = 1, maxCtrlArr3D + iLen = ILNBLNK(xx_genarr3d_file(iarr)) + IF ( iLen.EQ.7 .AND. + & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN + ascii_1 = ICHAR( xx_genarr3d_file(iarr)(7:7) ) +C character 0 to 9 <-> 48 to 57 + IF ( ascii_1.GE.49 .AND. ascii_1.LE.57 ) THEN + READ(xx_genarr3d_file(iarr)(7:7),*) iPtr + WRITE(msgBuf,'(2A,I4,A)') 'CTRL_CHECK: ', + & 'pTracer #', iPtr, ' in Gen-CTRL' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ELSE + WRITE(msgBuf,'(4A)') 'CTRL_CHECK: ', + & 'Gen-CTRL file "', xx_genarr3d_file(iarr)(1:iLen), '"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I3,A)') 'CTRL_CHECK: <-- ', + & 'do not match any pTr number (ascii=', ascii_1, ')' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDIF + ENDDO + ENDIF +# endif /* ALLOW_PTRACERS */ +#endif /* ALLOW_GENARR3D_CONTROL */ #ifdef ALLOW_GENTIM2D_CONTROL - do iarr = 1, maxCtrlTim2D - if (((xx_gentim2d_weight(iarr).NE.' ').AND. + DO iarr = 1, maxCtrlTim2D + IF (((xx_gentim2d_weight(iarr).NE.' ').AND. & (xx_gentim2d_file(iarr).EQ.' ')).OR. & ((xx_gentim2d_weight(iarr).EQ.' ').AND. - & (xx_gentim2d_file(iarr).NE.' '))) then - WRITE(msgBuf,'(3A)') 'CTRL_CHECK : ', + & (xx_gentim2d_file(iarr).NE.' '))) THEN + WRITE(msgBuf,'(3A)') 'CTRL_CHECK: ', & 'Cannot define xx_gentim2d_weight or xx_gentim2d_file ', & 'separately' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif - enddo -#endif + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDDO +#endif /* ALLOW_GENTIM2D_CONTROL */ -#endif /* ALLOW_OPENAD */ +#endif /* ndef ALLOW_OPENAD */ #ifdef ALLOW_DIFFKR_CONTROL C- to use DIFFKR_CONTROL, needs to define ALLOW_3D_DIFFKR in CPP_OPTIONS.h -#ifndef ALLOW_3D_DIFFKR - WRITE(msgBuf,'(A)') - & 'Needs to define ALLOW_3D_DIFFKR to use DIFFKR_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif -#endif /* ALLOW_DIFFKR_CONTROL */ - -#if (defined (ALLOW_HFLUX_CONTROL) && defined (ALLOW_ATEMP_CONTROL)) - WRITE(msgBuf,'(A)') - & 'Cannot have both ALLOW_HFLUX_CONTROL & ALLOW_ATEMP_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif - -#if (defined (ALLOW_SFLUX_CONTROL) && defined (ALLOW_AQH_CONTROL)) - WRITE(msgBuf,'(A)') - & 'Cannot have both ALLOW_SFLUX_CONTROL & ALLOW_AQH_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif - -#ifdef ALLOW_ATEMP_CONTROL -#ifndef ALLOW_ATM_TEMP +# ifndef ALLOW_3D_DIFFKR WRITE(msgBuf,'(A)') - & 'ALLOW_ATEMP_CONTROL used without ALLOW_ATM_TEMP' + & 'Needs to define ALLOW_3D_DIFFKR to use DIFFKR_CONTROL' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif -#endif + errCount = errCount + 1 +# endif +#endif /* ALLOW_DIFFKR_CONTROL */ -#ifdef ALLOW_AQH_CONTROL -#ifndef ALLOW_ATM_TEMP +#ifdef ALLOW_KAPGM_CONTROL +C- to use KAPGM_CONTROL, needs to define GM_READ_K3D_GM in GMREDI_OPTIONS.h +# ifndef GM_READ_K3D_GM WRITE(msgBuf,'(A)') - & 'ALLOW_AQH_CONTROL used without ALLOW_ATM_TEMP' + & 'Needs to define GM_READ_K3D_GM to use KAPGM_CONTROL' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif -#endif - -#if ( defined ALLOW_UWIND_CONTROL || defined ALLOW_VWIND_CONTROL ) -#ifdef ALLOW_EXF - IF ( .NOT.useEXF .OR. .NOT.useAtmWind ) THEN -#endif - WRITE(msgBuf,'(3A)') 'CTRL_CHECK : ', - & 'ALLOW_U / VWIND_CONTROL used without exf & ', - & 'useAtmWind will have no effect ' - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#if ( defined ALLOW_USTRESS_CONTROL || defined ALLOW_VSTRESS_CONTROL ) -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN - WRITE(msgBuf,'(3A)') 'CTRL_CHECK : ', - & 'ALLOW_U / VSTRESS_CONTROL used with exf & ', - & 'useAtmWind will have no effect ' - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) - ENDIF -#endif -#endif + errCount = errCount + 1 +# endif +#endif /* ALLOW_KAPGM_CONTROL */ -#ifdef ALLOW_SEAICE -C pkg/seaice requires a particular set of control parameters -C which in turn require a particular set of input fields -# if ( defined ALLOW_HFLUX_CONTROL || defined ALLOW_SFLUX_CONTROL ) +#ifdef ALLOW_KAPREDI_CONTROL +C- to use KAPREDI_CONTROL, needs to define GM_READ_K3D_REDI in GMREDI_OPTIONS.h +# ifndef GM_READ_K3D_REDI WRITE(msgBuf,'(A)') - & 'The SEAICE adjoint does not allow the surface fluxes' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') ' ALLOW_HFLUX_CONTROL' + & 'Needs to define GM_READ_K3D_REDI to use KAPREDI_CONTROL' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') ' ALLOW_SFLUX_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'to be control variables' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -# endif -# if ( defined ALLOW_USTRESS_CONTROL || defined ALLOW_VSTRESS_CONTROL ) - if ( useAtmWind ) then - solve4Stress = .TRUE. - else -# ifdef ALLOW_BULK_LARGEYEAGER04 - solve4Stress = wspeedfile .NE. ' ' -# else - solve4Stress = .FALSE. -# endif - endif - if (.NOT.solve4Stress) then - WRITE(msgBuf,'(A)') - & 'The SEAICE adjoint does not allow the surface fluxes' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') ' ALLOW_USTRESS_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') ' ALLOW_VSTRESS_CONTROL' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'to be control variables' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'except if wspeedfile is specified' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'and ifdef ALLOW_BULK_LARGEYEAGER04' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' - endif + errCount = errCount + 1 # endif -#endif /* ALLOW_SEAICE */ +#endif /* ALLOW_KAPREDI_CONTROL */ #ifndef ALLOW_PACKUNPACK_METHOD2 # ifndef EXCLUDE_CTRL_PACK - IF ( useSingleCpuIO ) THEN + IF ( useSingleCpuIO ) THEN WRITE(msgBuf,'(3A)') '** WARNING ** CTRL_CHECK: ', & 'relying on mdsio_gl.F to pack/unpack the control', & 'vector is unsafe when useSingleCpuIO is true.' - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - ENDIF + ENDIF # endif -#endif +#endif /* ndef ALLOW_PACKUNPACK_METHOD2 */ #ifdef ALLOW_PACKUNPACK_METHOD2 -#ifndef EXCLUDE_CTRL_PACK -#if (defined (ALLOW_OBCSN_CONTROL) || \ - defined (ALLOW_OBCSS_CONTROL) || \ - defined (ALLOW_OBCSW_CONTROL) || \ - defined (ALLOW_OBCSE_CONTROL)) - WRITE(msgBuf,'(2A)') +# ifndef EXCLUDE_CTRL_PACK +# ifdef ALLOW_OBCS_CONTROL + WRITE(msgBuf,'(2A)') & 'ALLOW_PACKUNPACK_METHOD2 does not work with', & 'open boundary controls (see verif/obcs_ctrl).' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_CHECK' -#endif -#endif + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +# endif +# endif /* ndef EXCLUDE_CTRL_PACK */ +#endif /* ALLOW_PACKUNPACK_METHOD2 */ + +#ifdef ALLOW_HFLUXM_CONTROL + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & 'CPP-flag ALLOW_HFLUXM_CONTROL has been retired.' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & 'tutorial_global_oce_optim, which was the only experiment' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & 'that used this flag, now uses the generic control xx_qnet' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & 'to achieve the same thing.' + CALL PRINT_ERROR( msgBuf, myThid ) +C For now only print the error message, but do not increase the +C error count so that the model does not stop as along as we have to +C put up with the OpenAD version of tutorial_global_oce_optim + errCount = errCount + 1 +#endif /* ALLOW_HFLUXM_CONTROL */ + +#ifdef ALLOW_GENARR2D_CONTROL +c Warn user: doscaling must be true to do log10 ctrl + DO iarr = 1, maxCtrlArr2D + DO k2 = 1, maxCtrlProc + IF ( (xx_genarr2d_preproc(k2,iarr).EQ.'noscaling') .AND. + & (xx_genarr2d_preproc_c(k2,iarr).EQ.'log10ctrl') ) THEN + WRITE(msgBuf,'(A)') + & 'CTRL_CHECK: conflicting preproc_c & preproc flags ' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I2,A)') + & 'log10ctrl and noscaling set for xx_genarr2d(',iarr,').' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +C STOP 'ABNORMAL END: S/R CTRL_CHECK' + ENDIF + ENDDO + ENDDO +# ifdef ALLOW_SHELFICE +# ifdef SHI_ALLOW_GAMMAFRICT +C Cannot have shiTransCoeffT/S as control variables in gammafrict form + DO iarr = 1, maxCtrlArr2D + IF ( (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicoeff')) THEN + WRITE(msgBuf,'(2A,I2,A)') + & 'shiTransCoeffT or S set as control variable for ', + & 'xx_genarr2d(', iarr,'). ' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') + & 'Cannot use shiTransCoeffT/S when SHI_ALLOW_GAMMAFRICT ', + & 'is defined' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +C STOP 'ABNORMAL END: S/R CTRL_CHECK' + ENDIF + ENDDO +# else +C Cannot have shiCDrag as control variable without gammafrict form +C this could be changed to control cdrag for momentum equation only, +C but is probably not what the user wants or expects. + DO iarr = 1, maxCtrlArr2D + IF ( (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag')) THEN + WRITE(msgBuf,'(2A,I2,A)') + & 'shiCDrag set as control variable for ', + & 'xx_genarr2d(', iarr,'). ' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') + & 'Cannot use shiCDrag when SHI_ALLOW_GAMMAFRICT ', + & 'is NOT defined' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +C STOP 'ABNORMAL END: S/R CTRL_CHECK' + ENDIF + ENDDO +# endif /* SHI_ALLOW_GAMMAFRICT */ +# endif /* ALLOW_SHELFICE */ +#endif /* ALLOW_GENARR2D_CONTROL */ + +#ifdef ALLOW_GENARR3D_CONTROL +c Warn user: doscaling must be true to do log10 ctrl + DO iarr = 1, maxCtrlArr3D + DO k2 = 1, maxCtrlProc + IF ( (xx_genarr3d_preproc(k2,iarr).EQ.'noscaling') .AND. + & (xx_genarr3d_preproc_c(k2,iarr).EQ.'log10ctrl') ) THEN + WRITE(msgBuf,'(A)') + & 'CTRL_CHECK: conflicting preproc_c & preproc flags ' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I2,A)') + & 'log10ctrl and noscaling set for xx_genarr2d(',iarr,'). ' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +C STOP 'ABNORMAL END: S/R CTRL_CHECK' + ENDIF + ENDDO + ENDDO #endif +#ifdef ECCO_CTRL_DEPRECATED + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: CPP-flag ECCO_CTRL_DEPRECATED', + & ' is no longer available.' + CALL PRINT_ERROR( msgBuf, myThid ) + ioUnit = errorMessageUnit + w_sfx = '** WARNING ** : ' + WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ', + & 'Along with ECCO_CTRL_DEPRECATED a long list' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ', + & ' of CPP-flags have no effect anymore:' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +C---- long list starts + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_APRESSURE_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_APRESSURE_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_AQH_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ARGO_SALT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ARGO_THETA_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ATEMP_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ATM_MEAN_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_AUTODIFF_INIT_OLD' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BOTTOMDRAG_CONTROL_NONGENERIC' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BOTTOMDRAG_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_BP_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTDS_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTDT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_CTRL_SMOOTH' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DAILYSCAT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DAILYSST_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_diffkr_COST_CONTRIBUTION' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DIFFKR_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DRIFTER_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_DRIFTW_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ECCO_DIAGNOSTIC_RUN' +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ECCO_FORWARD_RUN' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EDDYPSI_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EFLUXY0_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EGM96_ERROR_COV' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EGM96_ERROR_DIAG' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_ETAN0_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EVAP_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_EVAP_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_GEN2D_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_GEN3D_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_GRADIENT_CHECK' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_HFLUX_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_IESTAU_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_KAPGM_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_KAPREDI_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWDOWN_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWDOWN_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWFLUX_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_LWFLUX_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_MEAN_HFLUX_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_NEW_SSH_COST' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_NO_DYNAMICS' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_PRECIP_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_PRECIP_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_READ_EGM_DATA' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RELAXSSS_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RELAXSST_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RUNOFF_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_RUNOFF_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SALT0_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SALT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SCAT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SFLUX_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SMOOTH_BC_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SMOOTH_CTRL3D' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SNOWPRECIP_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SNOWPRECIP_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SPH_PROJECTION' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_ERSANOM_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_GFOANOM_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_MEAN_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_TOT' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSH_TPANOM_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSHV4_COST' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSS_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SSS_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SST_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SST_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_STEPPING_CALL' + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_STRESS_MEAN_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWDOWN_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWDOWN_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWFLUX_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_SWFLUX_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_THETA0_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_THETA_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_TMI_SST_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_TRANSPORT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_USTRESS_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UVEL0_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UWIND_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_UWIND_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VSTRESS_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VVEL0_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VWIND_CONTROL' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_VWIND_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_XBT_COST_CONTRIBUTION' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +c WRITE(msgBuf,'(2A)') w_sfx, 'ALLOW_YMDS_TREE' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_HFLUX_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_SALT_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_SFLUX_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_SSH_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_SST_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_THETA_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_USTRESS_COST_CONTRIBUTION' +c WRITE(msgBuf,'(2A)') w_sfx, 'APPLY_VSTRESS_COST_CONTRIBUTION' + WRITE(msgBuf,'(2A)') w_sfx, 'DISABLE_CTRL_THETA_LIMIT' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') w_sfx, 'GENERIC_BAR_MONTH' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +C---- long list ends + WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_CHECK: ', + & 'end of CPP-flag list that have no effect anymore.' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + errCount = errCount + 1 +#endif /* ECCO_CTRL_DEPRECATED */ + + IF ( errCount.GE.1 ) THEN + WRITE(msgBuf,'(A,I3,A)') + & 'CTRL_CHECK: detected', errCount,' fatal error(s)' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R CTRL_CHECK' + ENDIF + + WRITE(msgBuf,'(2A)') 'CTRL_CHECK: ', + & ' <-- Ends Normally' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') ' ' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + _END_MASTER(myThid) + RETURN END diff --git a/pkg/ctrl/ctrl_cost_driver.F b/pkg/ctrl/ctrl_cost_driver.F index b4dd6052e0..bec5ca359d 100644 --- a/pkg/ctrl/ctrl_cost_driver.F +++ b/pkg/ctrl/ctrl_cost_driver.F @@ -2,10 +2,6 @@ subroutine ctrl_cost_driver( myThid ) -c ================================================================== -c SUBROUTINE ctrl_cost_driver -c ================================================================== -c c ================================================================== c SUBROUTINE ctrl_cost_driver c ================================================================== @@ -39,17 +35,22 @@ subroutine ctrl_cost_driver( myThid ) integer endrec #endif -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) +#if ( defined ALLOW_GENTIM2D_CONTROL || defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENARR3D_CONTROL ) integer iarr logical dodimensionalcost integer k2 #endif +#if ( defined ALLOW_GENTIM2D_CONTROL || defined ALLOW_GENARR2D_CONTROL ) + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RS mask3D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif c == end of interface == c-- Evaluate the individual cost function contributions. - #ifdef ALLOW_GENTIM2D_CONTROL do iarr = 1, maxCtrlTim2D @@ -70,19 +71,19 @@ subroutine ctrl_cost_driver( myThid ) endif endif enddo + +C --- Get appropriate mask for field + call ctrl_get_mask2D(xx_gentim2d_file(iarr),mask2D,myThid) + call ctrl_cost_gen2d ( & startrec, endrec, & xx_gentim2d_file(iarr),xx_gentim2d_dummy(iarr), & xx_gentim2d_period(iarr), - & wgentim2d(1-Olx,1-Oly,1,1,iarr), + & wgentim2d(1-OLx,1-OLy,1,1,iarr), & dodimensionalcost, & num_gentim2d(1,1,iarr), & objf_gentim2d(1,1,iarr), -#ifdef ECCO_CTRL_DEPRECATED - & zeroRL, num_gentim2dm(1,1,iarr), objf_gentim2dm(1,1,iarr), - & objf_gentim2dsmoo(1,1,iarr), zeroRL, zeroRL, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, myThid ) + & mask2D, myThid ) endif enddo @@ -98,24 +99,23 @@ subroutine ctrl_cost_driver( myThid ) endif enddo +C --- Get appropriate mask for field + call ctrl_get_mask2D(xx_genarr2d_file(iarr),mask2D,myThid) + if (xx_genarr2d_weight(iarr).NE.' ') then call ctrl_cost_gen2d ( & 1,1, & xx_genarr2d_file(iarr),xx_genarr2d_dummy(iarr), - & zeroRL, wgenarr2d(1-Olx,1-Oly,1,1,iarr), + & zeroRL, wgenarr2d(1-OLx,1-OLy,1,1,iarr), & dodimensionalcost, & num_genarr2d(1,1,iarr), objf_genarr2d(1,1,iarr), -#ifdef ECCO_CTRL_DEPRECATED - & zeroRL, num_zero_mean, objf_zero_mean, - & objf_zero_smoo, zeroRL, zeroRL, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, myThid ) + & mask2D, myThid ) + endif enddo #endif - #ifdef ALLOW_GENARR3D_CONTROL do iarr = 1, maxCtrlArr3D @@ -126,13 +126,16 @@ subroutine ctrl_cost_driver( myThid ) endif enddo +C --- Get appropriate mask for field + call ctrl_get_mask3D(xx_genarr3d_file(iarr),mask3D,myThid) + if (xx_genarr3d_weight(iarr).NE.' ') then call ctrl_cost_gen3d ( & xx_genarr3d_file(iarr),xx_genarr3d_dummy(iarr), - & wgenarr3d(1-Olx,1-Oly,1,1,1,iarr), + & wgenarr3d(1-OLx,1-OLy,1,1,1,iarr), & dodimensionalcost, & num_genarr3d(1,1,iarr), objf_genarr3d(1,1,iarr), - & maskC, myThid ) + & mask3D, myThid ) endif enddo @@ -140,6 +143,5 @@ subroutine ctrl_cost_driver( myThid ) #endif - - return + return end diff --git a/pkg/ctrl/ctrl_cost_gen.F b/pkg/ctrl/ctrl_cost_gen.F index 637154d7b0..342d7f8e83 100644 --- a/pkg/ctrl/ctrl_cost_gen.F +++ b/pkg/ctrl/ctrl_cost_gen.F @@ -3,12 +3,7 @@ c --- ctrl_cost_gen3d c ---------------------------------------------------------------- -c ---------------------------------------------------------------- - #include "CTRL_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP @@ -24,17 +19,8 @@ subroutine ctrl_cost_gen2d( I dodimensionalcost, O num_gen_anom, O objf_gen_anom, -#ifdef ECCO_CTRL_DEPRECATED - I xx_gen_wmean, - O num_gen_mean, - O objf_gen_mean, - O objf_gen_smoo, - I xx_gen_remo_intercept, - I xx_gen_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - I xx_gen_mask, - I myThid - & ) + I xx_gen_mask2D, + I myThid ) C !DESCRIPTION: \bv C Generic routine for all 2D control penalty terms @@ -49,9 +35,6 @@ subroutine ctrl_cost_gen2d( #include "PARAMS.h" #include "GRID.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif #ifdef ALLOW_CTRL # include "ctrl.h" # include "optim.h" @@ -64,20 +47,11 @@ subroutine ctrl_cost_gen2d( character*(MAX_LEN_FNAM) xx_gen_file _RL xx_gen_dummy _RL xx_gen_period - _RL xx_gen_weight(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL xx_gen_weight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) logical dodimensionalcost - _RL num_gen_anom(nsx,nsy) - _RL objf_gen_anom(nsx,nsy) -#ifdef ECCO_CTRL_DEPRECATED - _RL xx_gen_wmean - _RL num_gen_mean(nsx,nsy) - _RL num_gen_smoo(nsx,nsy) - _RL objf_gen_mean(nsx,nsy) - _RL objf_gen_smoo(nsx,nsy) - _RL xx_gen_remo_intercept - _RL xx_gen_remo_slope -#endif /* ECCO_CTRL_DEPRECATED */ - _RS xx_gen_mask(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL num_gen_anom(nSx,nSy) + _RL objf_gen_anom(nSx,nSy) + _RS xx_gen_mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) integer myThid #ifdef ALLOW_CTRL @@ -85,28 +59,25 @@ subroutine ctrl_cost_gen2d( c == local variables == integer bi,bj - integer i,j,kk + integer i, j integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax integer nrec integer irec - integer ilfld + integer ilfld,ilDir _RL fctile - _RL fctilem _RL tmpx _RL lengthscale -#ifdef ECCO_CTRL_DEPRECATED - _RL xx_mean(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -#endif /* ECCO_CTRL_DEPRECATED */ + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) logical doglobalread logical ladinit - character*(80) fnamefld + character*(MAX_LEN_FNAM) fnamefld c == external functions == @@ -115,14 +86,14 @@ subroutine ctrl_cost_gen2d( CEOP - jtlo = mybylo(myThid) - jthi = mybyhi(myThid) - itlo = mybxlo(myThid) - ithi = mybxhi(myThid) + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx lengthscale = 1. _d 0 @@ -130,13 +101,26 @@ subroutine ctrl_cost_gen2d( doglobalread = .false. ladinit = .false. -c Number of records to be used. +c-- Number of records to be used. nrec = endrec-startrec+1 +c-- Find ctrlDir length + ilDir=ilnblnk( ctrlDir ) + + do bj = jtlo,jthi + do bi = itlo,ithi + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + enddo + enddo + enddo + enddo + if (optimcycle .ge. 0) then ilfld=ilnblnk( xx_gen_file ) - write(fnamefld(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilfld),'.',optimcycle + write(fnamefld,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_gen_file(1:ilfld),'.',optimcycle endif c-- >>> Loop 1 to compute mean forcing: @@ -144,23 +128,11 @@ subroutine ctrl_cost_gen2d( do bi = itlo,ithi num_gen_anom(bi,bj) = 0. _d 0 objf_gen_anom(bi,bj) = 0. _d 0 -#ifdef ECCO_CTRL_DEPRECATED - do j = jmin,jmax - do i = imin,imax - xx_mean(i,j,bi,bj) = 0. _d 0 - enddo - enddo - num_gen_mean(bi,bj) = 0. _d 0 - num_gen_smoo(bi,bj) = 0. _d 0 - objf_gen_mean(bi,bj) = 0. _d 0 - objf_gen_smoo(bi,bj) = 0. _d 0 -#endif /* ECCO_CTRL_DEPRECATED */ enddo enddo -#ifndef ECCO_CTRL_DEPRECATED c-- >>> Loop over records. - do irec = 1,nrec + do irec = startrec,endrec #ifdef ALLOW_AUTODIFF call active_read_xy( @@ -175,11 +147,10 @@ subroutine ctrl_cost_gen2d( do bi = itlo,ithi c-- Determine the weights to be used. - kk = 1 fctile = 0. _d 0 do j = jmin,jmax do i = imin,imax - if (xx_gen_mask(i,j,kk,bi,bj) .ne. 0. _d 0) then + if (xx_gen_mask2D(i,j,bi,bj) .ne. 0. _d 0) then tmpx = tmpfld2d(i,j,bi,bj) IF ( dodimensionalcost ) THEN @@ -203,198 +174,6 @@ subroutine ctrl_cost_gen2d( c-- End of loop over records. enddo -#else /* ECCO_CTRL_DEPRECATED */ - - IF ( dodimensionalcost ) THEN - do irec = 1,nrec - -#ifdef ALLOW_AUTODIFF - call active_read_xy( - & fnamefld, tmpfld2d, irec, doglobalread, - & ladinit, optimcycle, myThid, xx_gen_dummy ) -#else - CALL READ_REC_XY_RL( fnamefld, tmpfld2d, iRec, 1, myThid ) -#endif - -c-- Loop over this thread tiles. - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_mean(i,j,bi,bj) = xx_mean(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) - & - ( xx_gen_remo_intercept + - & xx_gen_remo_slope*(irec-1)*xx_gen_period ) - enddo - enddo - enddo - enddo - - enddo - - if ( xx_gen_wmean .NE. 0. ) then - do bj = jtlo,jthi - do bi = itlo,ithi -c-- Determine the weights to be used. - kk = 1 - fctilem = 0. _d 0 - do j = jmin,jmax - do i = imin,imax - xx_mean(i,j,bi,bj) - & = xx_mean(i,j,bi,bj)/float(nrec) - tmpx = xx_mean(i,j,bi,bj)/xx_gen_wmean - if (xx_gen_mask(i,j,kk,bi,bj) .ne. 0. _d 0) then -#ifdef ALLOW_ECCO - if ( ABS(R_low(i,j,bi,bj)) .LT. 100. _d 0) - & tmpx = tmpx*ABS(R_low(i,j,bi,bj))/100. _d 0 - fctilem = fctilem + cosphi(i,j,bi,bj)*tmpx*tmpx - if ( cosphi(i,j,bi,bj) .ne. 0. _d 0) - & num_gen_mean(bi,bj) = num_gen_mean(bi,bj) + 1. _d 0 -#else - fctilem = fctilem + tmpx*tmpx - num_gen_mean(bi,bj) = num_gen_mean(bi,bj) + 1. _d 0 -#endif - endif - enddo - enddo - objf_gen_mean(bi,bj) = objf_gen_mean(bi,bj) + fctilem - enddo - enddo - endif - ENDIF !IF ( dodimensionalcost ) THEN - -c-- >>> Loop 2 over records. - do irec = 1,nrec - -#ifdef ALLOW_AUTODIFF - call active_read_xy( - & fnamefld, tmpfld2d, irec, doglobalread, - & ladinit, optimcycle, myThid, xx_gen_dummy ) -#else - CALL READ_REC_XY_RL( fnamefld, tmpfld2d, iRec, 1, myThid ) -#endif - -c-- Loop over this thread tiles. - do bj = jtlo,jthi - do bi = itlo,ithi - -c-- Determine the weights to be used. - kk = 1 - fctile = 0. _d 0 - do j = jmin,jmax - do i = imin,imax - if (xx_gen_mask(i,j,kk,bi,bj) .ne. 0. _d 0) then - - IF ( dodimensionalcost ) THEN - tmpx = tmpfld2d(i,j,bi,bj) - & - xx_mean(i,j,bi,bj) - & - ( xx_gen_remo_intercept + - & xx_gen_remo_slope*(irec-1)*xx_gen_period ) -#ifdef ALLOW_ECCO - if ( ABS(R_low(i,j,bi,bj)) .LT. 100. _d 0 ) - & tmpx = tmpx*ABS(R_low(i,j,bi,bj))/100. _d 0 - fctile = fctile + xx_gen_weight(i,j,bi,bj)*tmpx*tmpx - & * cosphi(i,j,bi,bj) -#else - fctile = fctile + xx_gen_weight(i,j,bi,bj)*tmpx*tmpx -#endif - ELSE !IF ( dodimensionalcost ) THEN - tmpx = tmpfld2d(i,j,bi,bj) - fctile = fctile + tmpx*tmpx - ENDIF !IF ( dodimensionalcost ) THEN -#ifdef ALLOW_ECCO - if ( xx_gen_weight(i,j,bi,bj) - & *cosphi(i,j,bi,bj) .ne. 0. _d 0 ) -#else - if ( xx_gen_weight(i,j,bi,bj) .ne. 0. _d 0 ) -#endif - & num_gen_anom(bi,bj) = num_gen_anom(bi,bj) - & + 1. _d 0 - - endif - - enddo - enddo - - objf_gen_anom(bi,bj) = objf_gen_anom(bi,bj) + fctile - - enddo - enddo - -c-- End of loop over records. - enddo - - IF ( dodimensionalcost ) THEN -#ifdef ALLOW_SMOOTH_BC_COST_CONTRIBUTION - -c-- >>> Loop 2 over records. - do irec = 1,nrec - -#ifdef ALLOW_AUTODIFF - call active_read_xy( - & fnamefld, tmpfld2d, irec, doglobalread, - & ladinit, optimcycle, myThid, xx_gen_dummy ) -#else - CALL READ_REC_XY_RL( fnamefld, tmpfld2d, iRec, 1, myThid ) -#endif - - _EXCH_XY_RL(tmpfld2d, myThid) - -c-- Loop over this thread tiles. - do bj = jtlo,jthi - do bi = itlo,ithi - -c-- Determine the weights to be used. - kk = 1 - fctile = 0. _d 0 - do j = jmin,jmax - do i = imin,imax - if (xx_gen_mask(i,j,kk,bi,bj) .ne. 0. _d 0) then - tmpx = - & ( tmpfld2d(i+2,j,bi,bj)-tmpfld2d(i+1,j,bi,bj) ) - & *maskW(i+1,j,kk,bi,bj)*maskW(i+2,j,kk,bi,bj) - & + ( tmpfld2d(i+1,j,bi,bj)-tmpfld2d(i,j,bi,bj) ) - & *maskW(i+1,j,kk,bi,bj) - & + ( tmpfld2d(i,j+2,bi,bj)-tmpfld2d(i,j+1,bi,bj) ) - & *maskS(i,j+1,kk,bi,bj)*maskS(i,j+2,kk,bi,bj) - & + ( tmpfld2d(i,j+1,bi,bj)-tmpfld2d(i,j,bi,bj) ) - & *maskS(i,j+1,kk,bi,bj) -#ifdef ALLOW_ECCO - if ( ABS(R_low(i,j,bi,bj)) .LT. 100. _d 0 ) - & tmpx = tmpx*ABS(R_low(i,j,bi,bj))/100. _d 0 - fctile = fctile - & + xx_gen_weight(i,j,bi,bj)*cosphi(i,j,bi,bj) -#else - fctile = fctile - & + xx_gen_weight(i,j,bi,bj) -#endif - * *0.0161 _d 0*lengthscale/4.0 _d 0 - & *tmpx*tmpx -#ifdef ALLOW_ECCO - if ( xx_gen_weight(i,j,bi,bj)*cosphi(i,j,bi,bj) - & .ne. 0. _d 0 ) -#else - if ( xx_gen_weight(i,j,bi,bj) .ne. 0. _d 0 ) -#endif - & num_gen_smoo(bi,bj) = num_gen_smoo(bi,bj) - & + 1. _d 0 - endif - enddo - enddo - - objf_gen_smoo(bi,bj) = objf_gen_smoo(bi,bj) + fctile - - enddo - enddo - -c-- End of loop over records. - enddo - -#endif /* ALLOW_SMOOTH_BC_COST_CONTRIBUTION */ - ENDIF !IF ( dodimensionalcost ) THEN - -#endif /* ECCO_CTRL_DEPRECATED */ - #endif /* ALLOW_CTRL */ return @@ -412,8 +191,7 @@ subroutine ctrl_cost_gen3d( O num_gen, O objf_gen, I xx_gen_mask, - I myThid - & ) + I myThid ) C !DESCRIPTION: \bv C Generic routine for all 3D control penalty terms @@ -428,9 +206,6 @@ subroutine ctrl_cost_gen3d( #include "PARAMS.h" #include "GRID.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif #ifdef ALLOW_CTRL # include "ctrl.h" # include "optim.h" @@ -440,11 +215,11 @@ subroutine ctrl_cost_gen3d( character*(MAX_LEN_FNAM) xx_gen_file _RL xx_gen_dummy - _RL xx_gen_weight(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL xx_gen_weight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) logical dodimensionalcost - _RL num_gen(nsx,nsy) - _RL objf_gen(nsx,nsy) - _RS xx_gen_mask(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL num_gen(nSx,nSy) + _RL objf_gen(nSx,nSy) + _RS xx_gen_mask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER myThid #ifdef ALLOW_CTRL @@ -458,14 +233,15 @@ subroutine ctrl_cost_gen3d( integer jmin,jmax integer imin,imax integer irec - integer ilfld + integer ilfld,ilDir _RL tmpx logical doglobalread logical ladinit + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - character*(80) fnamefld + character*(MAX_LEN_FNAM) fnamefld c == external functions == @@ -474,23 +250,38 @@ subroutine ctrl_cost_gen3d( CEOP - jtlo = mybylo(myThid) - jthi = mybyhi(myThid) - itlo = mybxlo(myThid) - ithi = mybxhi(myThid) + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c-- Read state record from global file. doglobalread = .false. ladinit = .false. +c-- Find ctrlDir length + ilDir=ilnblnk( ctrlDir ) + + do bj = jtlo,jthi + do bi = itlo,ithi + do k = 1,Nr + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + enddo + enddo + enddo + enddo + enddo + if (optimcycle .ge. 0) then ilfld = ilnblnk( xx_gen_file ) - write(fnamefld(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilfld),'.',optimcycle + write(fnamefld,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_gen_file(1:ilfld),'.',optimcycle endif c-- >>> Loop 1 to compute mean forcing: @@ -504,21 +295,21 @@ subroutine ctrl_cost_gen3d( irec = 1 #ifdef ALLOW_AUTODIFF - call active_read_xyz( fnamefld, tmpfld3d, irec, doglobalread, - & ladinit, optimcycle, myThid - & , xx_gen_dummy ) + call active_read_xyz( + & fnamefld, tmpfld3d, irec, doglobalread, + & ladinit, optimcycle, myThid, xx_gen_dummy ) #else - CALL READ_REC_XYZ_RL( fnamefld, tmpfld3d, iRec, 1, myThid ) + CALL READ_REC_XYZ_RL( fnamefld, tmpfld3d, iRec, 1, myThid ) #endif -c-- Loop over this thread tiles. - do bj = jtlo,jthi - do bi = itlo,ithi +c-- Loop over this thread tiles. + do bj = jtlo,jthi + do bi = itlo,ithi - num_gen(bi,bj) = 0. _d 0 - objf_gen(bi,bj) = 0. _d 0 + num_gen(bi,bj) = 0. _d 0 + objf_gen(bi,bj) = 0. _d 0 - do k = 1,nr + do k = 1,Nr do j = jmin,jmax do i = imin,imax if (xx_gen_mask(i,j,k,bi,bj) .ne. 0. _d 0) then @@ -535,13 +326,12 @@ subroutine ctrl_cost_gen3d( endif enddo enddo - enddo - enddo + enddo + enddo -#endif +#endif /* ALLOW_CTRL */ return end - diff --git a/pkg/ctrl/ctrl_depth_ini.F b/pkg/ctrl/ctrl_depth_ini.F index 6dec6d5e8b..6cd7a61cce 100644 --- a/pkg/ctrl/ctrl_depth_ini.F +++ b/pkg/ctrl/ctrl_depth_ini.F @@ -1,135 +1,79 @@ #include "CTRL_OPTIONS.h" CBOP -C !ROUTINE: ctrl_depth_ini +C !ROUTINE: CTRL_DEPTH_INI + C !INTERFACE: - subroutine ctrl_depth_ini( mythid ) + SUBROUTINE CTRL_DEPTH_INI( mythid ) C !DESCRIPTION: \bv c *================================================================= c | SUBROUTINE ctrl_depth_ini c | Add the depth part of the control vector to the model state -c | and update the tile halos. -c | The control vector is defined in the header file "ctrl.h". c *================================================================= C \ev C !USES: - implicit none - -c == global variables == + IMPLICIT NONE #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" #include "CTRL_SIZE.h" -#include "ctrl.h" -#include "ctrl_dummy.h" -#include "optim.h" +#ifdef ALLOW_GENARR2D_CONTROL +# include "CTRL_GENARR.h" +#endif -C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == +C !INPUT PARAMETERS: integer mythid -#ifdef ALLOW_DEPTH_CONTROL -C !LOCAL VARIABLES: -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il +C !OUTPUT PARAMETERS: - logical equal - logical doglobalread - logical ladinit - - character*( 80) fnamedepth - character*(max_len_mbuf) msgbuf - - _RL fac +#ifdef ALLOW_DEPTH_CONTROL +C !FUNCTIONS: -c == external == - integer ilnblnk - external ilnblnk +C !LOCAL VARIABLES: -c == end of interface == + INTEGER bi,bj + INTEGER i,j +#ifdef ALLOW_GENARR2D_CONTROL + INTEGER iarr + INTEGER igen +#endif + CHARACTER*(MAX_LEN_MBUF) msgbuf CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - equal = .true. - - if ( equal ) then - fac = 1. _d 0 - else - fac = 0. _d 0 - endif - - write(standardmessageunit,'(21x,a)') - & 'ctrl_depth_ini: ctrl update R_low,' - write(standardmessageunit,'(21x,a)') - & ' adding the control vector.' - -C Re-initialize hFacC, so that TAMC/TAF can see it -C Once hFacC is the control variable, and not its anomaly -C this will be no longer necessary - do bj = jtlo,jthi - do bi = itlo,ithi - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx - tmpfld2d(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - -C-- - do bj = jtlo,jthi - do bi = itlo,ithi - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx - xx_r_low(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - - il=ilnblnk( xx_depth_file ) - write(fnamedepth(1:80),'(2a,i10.10)') - & xx_depth_file(1:il),'.',optimcycle - call active_read_xy( fnamedepth, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_depth_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_r_low(i,j,bi,bj) = r_low(i,j,bi,bj) - & + fac*tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo - -c-- Update the tile edges. - - _EXCH_XY_RL( xx_r_low, myThid ) - + WRITE(msgBuf,'(A,A)') 'CTRL_DEPTH_INI: ctrl update R_low, ', + & 'adding the control vector.' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + +C In contrast to other control variable starting with xx_, this +C variable not an increment, but a full replacement of R_low, see +C also GRID.h. This is necessary because TAF gets confused if we do +C not do it like this. + DO bj=myByLo(mythid),myByHi(mythid) + DO bi=myBxLo(mythid),myBxHi(mythid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_r_low(i,j,bi,bj) = R_low(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +#ifdef ALLOW_GENARR2D_CONTROL +C-- use generic 2D control variable infrastructure to set xx_r_low + igen = 0 + DO iarr = 1, maxCtrlArr2D + IF ( xx_genarr2d_weight(iarr).NE.' ' .AND. + & xx_genarr2d_file(iarr)(1:8).EQ.'xx_depth') igen = iarr + ENDDO + IF ( igen .GT. 0 ) THEN + CALL CTRL_MAP_GENARR2D( xx_r_low, igen, myThid ) + ENDIF +#else + STOP 'ALLOW_DEPTH_CONTROL only works with ALLOW_GENARR2D_CONTROL' +#endif /* ALLOW_GENARR2D_CONTROL */ #endif /* ALLOW_DEPTH_CONTROL */ return end - diff --git a/pkg/ctrl/ctrl_get_gen.F b/pkg/ctrl/ctrl_get_gen.F index e582f0370e..3109913d91 100644 --- a/pkg/ctrl/ctrl_get_gen.F +++ b/pkg/ctrl/ctrl_get_gen.F @@ -5,8 +5,7 @@ subroutine ctrl_get_gen( I genmask, genfld, xx_gen0, xx_gen1, xx_gen_dummy, I xx_gen_remo_intercept, xx_gen_remo_slope, I genweight, - I mytime, myiter, mythid - & ) + I myTime, myIter, myThid ) c ================================================================== c SUBROUTINE ctrl_get_gen @@ -26,40 +25,32 @@ subroutine ctrl_get_gen( #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "GRID.h" -#include "CTRL_SIZE.h" #include "ctrl.h" -#include "ctrl_dummy.h" #include "optim.h" -#ifdef ALLOW_EXF -# include "EXF_FIELDS.h" -#endif c == routine arguments == - - character*(80) fnamegeneric character*(MAX_LEN_FNAM) xx_gen_file integer xx_genstartdate(4) _RL xx_genperiod - _RS genmask(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL genfld(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_gen0(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xx_gen1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RS genmask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL genfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL xx_gen0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL xx_gen1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL xx_gen_dummy _RL xx_gen_remo_intercept _RL xx_gen_remo_slope - _RL genweight(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL genweight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL myTime + integer myIter + integer myThid - _RL mytime - integer myiter - integer mythid +c == external functions == + integer ilnblnk + external ilnblnk c == local variables == - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi + integer i,j integer jmin,jmax integer imin,imax integer ilgen @@ -75,13 +66,10 @@ subroutine ctrl_get_gen( logical doglobalread logical ladinit - character*(80) fnamegen -#ifdef ALLOW_SMOOTH -#ifdef ALLOW_SMOOTH_CTRL2D - _RS dummyRS(1) -#endif + character*(MAX_LEN_FNAM) fnamegen +#if ( defined ALLOW_SMOOTH && defined ALLOW_SMOOTH_CTRL2D ) + character*(MAX_LEN_FNAM) fnamegeneric #endif -#ifndef ECCO_CTRL_DEPRECATED character*(MAX_LEN_FNAM) xx_tauu_file character*(MAX_LEN_FNAM) xx_tauv_file character*(MAX_LEN_FNAM) xx_aqh_file @@ -89,38 +77,25 @@ subroutine ctrl_get_gen( character*(MAX_LEN_FNAM) xx_precip_file character*(MAX_LEN_FNAM) xx_lwdown_file character*(MAX_LEN_FNAM) xx_swdown_file -#endif - -c == external functions == - integer ilnblnk - external ilnblnk + INTEGER il c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx + jmin = 1-OLy + jmax = sNy+OLy + imin = 1-OLx + imax = sNx+OLx c-- Now, read the control vector. doglobalread = .false. ladinit = .false. + il =ilnblnk( ctrlDir ) - if ( (optimcycle .ge. 0).AND.(.NOT.ctrlUseGen) ) then - ilgen=ilnblnk( xx_gen_file ) - write(fnamegen(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilgen), '.', optimcycle - endif - - if ( (optimcycle .ge. 0).AND.ctrlUseGen ) then + if ( optimcycle .ge. 0 ) then ilgen=ilnblnk( xx_gen_file ) - write(fnamegen(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilgen),'.effective.',optimcycle + write(fnamegen,'(2a,i10.10)') + & ctrlDir(1:il)//xx_gen_file(1:ilgen),'.effective.',optimcycle endif c-- Get the counters, flags, and the interpolation factor. @@ -128,7 +103,7 @@ subroutine ctrl_get_gen( I xx_genstartdate, xx_genperiod, O genfac, genfirst, genchanged, O gencount0,gencount1, - I mytime, myiter, mythid ) + I myTime, myIter, mythid ) if ( genfirst ) then cc#ifdef ALLOW_OPENAD @@ -150,25 +125,17 @@ subroutine ctrl_get_gen( #endif cc#endif /* ALLOW_OPENAD */ -#ifdef ECCO_CTRL_DEPRECATED -#ifdef ALLOW_CTRL_SMOOTH - if ( xx_gen_file .EQ. xx_tauu_file .OR. - & xx_gen_file .EQ. xx_tauv_file ) - & call ctrl_smooth(xx_gen1,genmask,myThid) -#endif -#endif - #ifdef ALLOW_SMOOTH #ifdef ALLOW_SMOOTH_CTRL2D if (useSMOOTH) call smooth2D(xx_gen1,genmask,1,mythid) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilgen),'.smooth.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,xx_gen1,dummyRS,gencount1,optimcycle,mythid) + write(fnamegeneric,'(2a,i10.10)') + & ctrlDir(1:il)//xx_gen_file(1:ilgen),'.smooth.',optimcycle + CALL WRITE_REC_3D_RL( fnamegeneric, ctrlprec, 1, + & xx_gen1, gencount1, optimcycle, mythid ) #endif /* ALLOW_SMOOTH_CTRL2D */ #endif /* ALLOW_SMOOTH */ - endif + endif if (( genfirst ) .or. ( genchanged )) then call CTRL_SWAPFFIELDS( xx_gen0, xx_gen1, mythid ) @@ -186,21 +153,14 @@ subroutine ctrl_get_gen( CALL READ_REC_XY_RL( fnamegen, xx_gen1, gencount1, 1, myThid ) #endif cc#endif /* ALLOW_OPENAD */ -#ifdef ECCO_CTRL_DEPRECATED -#ifdef ALLOW_CTRL_SMOOTH - if ( xx_gen_file .EQ. xx_tauu_file .OR. - & xx_gen_file .EQ. xx_tauv_file ) - & call ctrl_smooth(xx_gen1,genmask,myThid) -#endif -#endif #ifdef ALLOW_SMOOTH #ifdef ALLOW_SMOOTH_CTRL2D if (useSMOOTH) call smooth2D(xx_gen1,genmask,1,mythid) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_gen_file(1:ilgen),'.smooth.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,xx_gen1,dummyRS,gencount0,optimcycle,mythid) + write(fnamegeneric,'(2a,i10.10)') + & ctrlDir(1:il)//xx_gen_file(1:ilgen),'.smooth.',optimcycle + CALL WRITE_REC_3D_RL( fnamegeneric, ctrlprec, 1, + & xx_gen1, gencount0, optimcycle, mythid ) #endif /* ALLOW_SMOOTH_CTRL2D */ #endif /* ALLOW_SMOOTH */ @@ -211,7 +171,6 @@ subroutine ctrl_get_gen( cph this flag ported from the SIO code cph Initial wind stress adjustments are too vigorous. -#ifndef ECCO_CTRL_DEPRECATED xx_tauu_file = 'xx_tauu' xx_tauv_file = 'xx_tauv' xx_aqh_file = 'xx_aqh' @@ -219,7 +178,6 @@ subroutine ctrl_get_gen( xx_precip_file = 'xx_precip' xx_lwdown_file = 'xx_lwdown' xx_swdown_file = 'xx_swdown' -#endif if ( gencount0 .LE. 2 .AND. ( #ifdef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL @@ -247,51 +205,22 @@ subroutine ctrl_get_gen( cph doCtrlUpdate = .TRUE. if ( doCtrlUpdate ) then cph) -CMLCML( -CMLCML hack until if find something better for the masks -CML if ( xx_gen_file(1:11) .eq. 'xx_shifwflx' ) then -CML do bj = jtlo,jthi -CML do bi = itlo,ithi -CMLc-- Calculate mask for tracer cells (0 => land, 1 => water). -CML do j = 1,sny -CML do i = 1,snx -CML genfld(i,j,bi,bj) = genfld (i,j,bi,bj) -CML & + gensign*genfac *xx_gen0(i,j,bi,bj) -CML & + gensign*(1. _d 0 - genfac)*xx_gen1(i,j,bi,bj) -CML if ( ksurfc(i,j,bi,bj) .ne. nr+1 ) then -CML genfld(i,j,bi,bj) = -CML & ( genfld (i,j,bi,bj) - -CML & ( xx_gen_remo_intercept + -CML & xx_gen_remo_slope*(mytime-starttime) ) ) -CML else -CML genfld(i,j,bi,bj) = 0. _d 0 -CML endif -CML enddo -CML enddo -CML enddo -CML enddo -CML else -CMLCML) - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) c-- Calculate mask for tracer cells (0 => land, 1 => water). - k = 1 - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx genfld(i,j,bi,bj) = genfld (i,j,bi,bj) & + gensign*genfac *xx_gen0(i,j,bi,bj) & + gensign*(1. _d 0 - genfac)*xx_gen1(i,j,bi,bj) genfld(i,j,bi,bj) = - & genmask(i,j,k,bi,bj)*( genfld (i,j,bi,bj) - + & genmask(i,j,bi,bj)*( genfld (i,j,bi,bj) - & ( xx_gen_remo_intercept + - & xx_gen_remo_slope*(mytime-starttime) ) ) + & xx_gen_remo_slope*(myTime-starttime) ) ) enddo enddo enddo - enddo -CMLCML) -CML endif -CMLCML) + enddo cph( endif cph) diff --git a/pkg/ctrl/ctrl_get_gen_rec.F b/pkg/ctrl/ctrl_get_gen_rec.F index 0792f96e97..d6ed4437d8 100644 --- a/pkg/ctrl/ctrl_get_gen_rec.F +++ b/pkg/ctrl/ctrl_get_gen_rec.F @@ -69,6 +69,9 @@ subroutine ctrl_get_gen_rec( c integer startrec + integer year0 + integer year1 + logical lArgErr #else C Declarations for code, adapted from external_fields_load, @@ -109,7 +112,7 @@ subroutine ctrl_get_gen_rec( C Jan. through Dec. call cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, I mytime, myiter, mythid & ) elseif ( fldperiod .eq. 0. _d 0 ) then @@ -130,8 +133,7 @@ subroutine ctrl_get_gen_rec( c call cal_TimePassed( fldstartdate, modelstartdate, c & difftime, mythid ) c call cal_ToSeconds ( difftime, fldsecs, mythid ) -c startrec = int((modelstart + startTime - fldsecs)/ -c & fldperiod) + 1 +c startrec = int((modelstart - fldsecs)/fldperiod) + 1 C Determine the flux record just before mycurrentdate. call cal_TimePassed( fldstartdate, mydate, difftime, diff --git a/pkg/ctrl/ctrl_get_mask.F b/pkg/ctrl/ctrl_get_mask.F new file mode 100644 index 0000000000..fb3e18fed2 --- /dev/null +++ b/pkg/ctrl/ctrl_get_mask.F @@ -0,0 +1,144 @@ +#include "CTRL_OPTIONS.h" +#ifdef ALLOW_EXF +# include "EXF_OPTIONS.h" +#endif + +C-- File ctrl_get_mask.F: +C-- Contents: +C-- o CTRL_GET_MASK3D +C-- o CTRL_GET_MASK2D + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: CTRL_GET_MASK3D +C !INTERFACE: + SUBROUTINE CTRL_GET_MASK3D( + I xx_filename, + U mask3D, + I myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_GET_MASK3D +C | o A simple routine to return the correct 3D mask for each ctrl +C | variable +C | o Only important for a few cases: e.g. +C | - uvel/vvel need maskW/S rather than maskC +C | - in shelfice domain, need special 2D masks +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" + +C !INPUT/OUTPUT PARAMETERS: + CHARACTER*(MAX_LEN_FNAM) xx_filename + _RS mask3D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + +C --- Initial velocity +#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (xx_filename(1:7).EQ.'xx_uvel') THEN + CALL CTRL_CPRSRS(maskW,Nr,mask3D,Nr,myThid) + ELSEIF (xx_filename(1:7).EQ.'xx_vvel') THEN + CALL CTRL_CPRSRS(maskS,Nr,mask3D,Nr,myThid) + ELSE +#else + IF (.TRUE.) THEN +#endif +C --- Set to maskC by default + CALL CTRL_CPRSRS(maskC, Nr, mask3D, Nr, myThid) + ENDIF + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +C !ROUTINE: CTRL_GET_MASK2D +C !INTERFACE: + SUBROUTINE CTRL_GET_MASK2D( + I xx_filename, + U mask2D, + I myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_GET_MASK2D +C | o A simple routine to return the correct 2D mask for each ctrl +C | variable. +C | o 2D mask is in XY plane +C | o Only important for a few cases: e.g. +C | - uvel/vvel need maskW/S rather than maskC +C | - in shelfice domain, need special 2D masks +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif +#ifdef ALLOW_EXF +# include "EXF_PARAM.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: + CHARACTER*(MAX_LEN_FNAM) xx_filename + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER myThid + +C !LOCAL VARIABLES: + LOGICAL iAmDone +CEOP + + iAmDone = .FALSE. + +C --- Shelfice +#ifdef ALLOW_SHELFICE + IF ((xx_filename(1:11).EQ.'xx_shicoeff').OR. + & (xx_filename(1:11).EQ.'xx_shicdrag').OR. + & (xx_filename(1:11).EQ.'xx_shifwflx')) THEN + CALL CTRL_CPRSRS(maskSHI, Nr, mask2D, 1, myThid) + iAmDone = .TRUE. + ENDIF +#endif + +C --- Wind stress. Wind speed always uses maskC +#ifndef ALLOW_ROTATE_UV_CONTROLS +# ifdef ALLOW_EXF + IF (stressIsOnCgrid) THEN +# endif + IF (xx_filename(1:7).EQ.'xx_tauu') THEN + CALL CTRL_CPRSRS(maskW, Nr, mask2D, 1, myThid) + iAmDone = .TRUE. + ELSEIF (xx_filename(1:7).EQ.'xx_tauv') THEN + CALL CTRL_CPRSRS(maskS, Nr, mask2D, 1, myThid) + iAmDone = .TRUE. + ENDIF +# ifdef ALLOW_EXF + ENDIF +# endif +#endif + +C --- Set to maskC by default, if not set + IF (.NOT.iAmDone) CALL CTRL_CPRSRS(maskC, Nr, mask2D, 1, myThid) + + RETURN + END diff --git a/pkg/ctrl/ctrl_getobcse.F b/pkg/ctrl/ctrl_getobcse.F index 6cd5ecbb93..bf8b0b832b 100644 --- a/pkg/ctrl/ctrl_getobcse.F +++ b/pkg/ctrl/ctrl_getobcse.F @@ -4,10 +4,7 @@ #endif subroutine ctrl_getobcse( - I mytime, - I myiter, - I mythid - & ) + I myTime, myIter, myThid ) c ================================================================== c SUBROUTINE ctrl_getobcse @@ -41,70 +38,62 @@ subroutine ctrl_getobcse( #endif /* ALLOW_OBCSE_CONTROL */ c == routine arguments == - _RL mytime - integer myiter - integer mythid + _RL myTime + integer myIter + integer myThid #ifdef ALLOW_OBCSE_CONTROL -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi integer jtlo,jthi integer jmin,jmax - integer imin,imax integer ilobcse integer iobcs - - _RL dummy _RL obcsefac logical obcsefirst logical obcsechanged integer obcsecount0 integer obcsecount1 integer ip1 - -cgg _RL maskyz (1-oly:sny+oly,nr,nsx,nsy) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) - +cgg _RL maskyz (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) logical doglobalread logical ladinit - - character*(80) fnameobcse - + character*(MAX_LEN_FNAM) fnameobcse #ifdef ALLOW_OBCS_CONTROL_MODES integer nk,nz - _RL tmpz (nr,nsx,nsy) + _RL tmpz (Nr,nSx,nSy) _RL stmp #endif - -c == external functions == - - integer ilnblnk - external ilnblnk - + integer ilDir c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) + jmin = 1-OLy + jmax = sNy+OLy ip1 = 0 c-- Now, read the control vector. doglobalread = .false. ladinit = .false. +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + if (optimcycle .ge. 0) then ilobcse=ilnblnk( xx_obcse_file ) - write(fnameobcse(1:80),'(2a,i10.10)') - & xx_obcse_file(1:ilobcse), '.', optimcycle + write(fnameobcse,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_obcse_file(1:ilobcse), '.', optimcycle endif c-- Get the counters, flags, and the interpolation factor. @@ -112,7 +101,7 @@ subroutine ctrl_getobcse( I xx_obcsestartdate, xx_obcseperiod, O obcsefac, obcsefirst, obcsechanged, O obcsecount0,obcsecount1, - I mytime, myiter, mythid ) + I myTime, myIter, myThid ) do iobcs = 1,nobcs @@ -163,7 +152,7 @@ subroutine ctrl_getobcse( enddo endif #endif - do k = 1,nr + do k = 1,Nr do j = jmin,jmax xx_obcse1(j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj) cgg & * maskyz (j,k,bi,bj) @@ -178,7 +167,7 @@ subroutine ctrl_getobcse( do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax - do k = 1,nr + do k = 1,Nr xx_obcse0(j,k,bi,bj,iobcs) = xx_obcse1(j,k,bi,bj,iobcs) tmpfldyz (j,k,bi,bj) = 0. _d 0 enddo @@ -232,7 +221,7 @@ subroutine ctrl_getobcse( enddo endif #endif - do k = 1,nr + do k = 1,Nr do j = jmin,jmax xx_obcse1 (j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj) cgg & * maskyz (j,k,bi,bj) @@ -246,8 +235,8 @@ subroutine ctrl_getobcse( do bj = jtlo,jthi do bi = itlo,ithi c-- Calculate mask for tracer cells (0 => land, 1 => water). - do k = 1,nr - do j = 1,sny + do k = 1,Nr + do j = 1,sNy i = OB_Ie(j,bi,bj) IF ( i.EQ.OB_indexNone ) i = 1 if (iobcs .EQ. 1) then diff --git a/pkg/ctrl/ctrl_getobcsn.F b/pkg/ctrl/ctrl_getobcsn.F index 143f8c46ad..a59c1c2eb7 100644 --- a/pkg/ctrl/ctrl_getobcsn.F +++ b/pkg/ctrl/ctrl_getobcsn.F @@ -4,10 +4,7 @@ #endif subroutine ctrl_getobcsn( - I mytime, - I myiter, - I mythid - & ) + I myTime, myIter, myThid ) c ================================================================== c SUBROUTINE ctrl_getobcsn @@ -17,8 +14,8 @@ subroutine ctrl_getobcsn( c to dyn. fields c c started: heimbach@mit.edu, 29-Aug-2001 -c c modified: gebbie@mit.edu, 18-Mar-2003 +c c ================================================================== c SUBROUTINE ctrl_getobcsn c ================================================================== @@ -42,75 +39,64 @@ subroutine ctrl_getobcsn( #endif /* ALLOW_OBCSN_CONTROL */ c == routine arguments == - _RL mytime - integer myiter - integer mythid + _RL myTime + integer myIter + integer myThid #ifdef ALLOW_OBCSN_CONTROL -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi integer jtlo,jthi - integer jmin,jmax integer imin,imax integer ilobcsn integer iobcs integer jp1 - - _RL dummy _RL obcsnfac logical obcsnfirst logical obcsnchanged integer obcsncount0 integer obcsncount1 - -cgg _RL maskxz (1-olx:snx+olx,nr,nsx,nsy) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) - +cgg _RL maskxz (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) logical doglobalread logical ladinit - - character*(80) fnameobcsn - + character*(MAX_LEN_FNAM) fnameobcsn #ifdef ALLOW_OBCS_CONTROL_MODES integer nk,nz - _RL tmpz (nr,nsx,nsy) + _RL tmpz (Nr,nSx,nSy) _RL stmp #endif - -c == external functions == - - integer ilnblnk - external ilnblnk - + integer ilDir c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) -cgg jmin = 1-oly -cgg jmax = sny+oly + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) cgg imin = 1-olx cgg imax = snx+olx - - jmin = 1 - jmax = sny imin = 1 - imax = snx + imax = sNx jp1 = 0 c-- Now, read the control vector. doglobalread = .false. ladinit = .false. +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + if (optimcycle .ge. 0) then ilobcsn=ilnblnk( xx_obcsn_file ) - write(fnameobcsn(1:80),'(2a,i10.10)') - & xx_obcsn_file(1:ilobcsn), '.', optimcycle + write(fnameobcsn,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_obcsn_file(1:ilobcsn), '.', optimcycle endif c-- Get the counters, flags, and the interpolation factor. @@ -118,9 +104,10 @@ subroutine ctrl_getobcsn( I xx_obcsnstartdate, xx_obcsnperiod, O obcsnfac, obcsnfirst, obcsnchanged, O obcsncount0,obcsncount1, - I mytime, myiter, mythid ) + I myTime, myIter, myThid ) do iobcs = 1,nobcs + if ( obcsnfirst ) then call active_read_xz( fnameobcsn, tmpfldxz, & (obcsncount0-1)*nobcs+iobcs, @@ -168,7 +155,7 @@ subroutine ctrl_getobcsn( enddo endif #endif - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcsn1(i,k,bi,bj,iobcs) = tmpfldxz (i,k,bi,bj) cgg & * maskxz (i,k,bi,bj) @@ -182,7 +169,7 @@ subroutine ctrl_getobcsn( do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcsn0(i,k,bi,bj,iobcs) = xx_obcsn1(i,k,bi,bj,iobcs) tmpfldxz (i,k,bi,bj) = 0. _d 0 @@ -237,7 +224,7 @@ subroutine ctrl_getobcsn( enddo endif #endif - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcsn1 (i,k,bi,bj,iobcs) = tmpfldxz (i,k,bi,bj) cgg & * maskxz (i,k,bi,bj) @@ -245,16 +232,15 @@ subroutine ctrl_getobcsn( enddo enddo enddo - endif c-- Add control to model variable. do bj = jtlo,jthi do bi = itlo,ithi c-- Calculate mask for tracer cells (0 => land, 1 => water). - do k = 1,nr - do i = 1,snx - j = OB_Jn(I,bi,bj) + do k = 1,Nr + do i = 1,sNx + j = OB_Jn(i,bi,bj) IF ( j.EQ.OB_indexNone ) j = 1 if (iobcs .EQ. 1) then OBNt(i,k,bi,bj) = OBNt (i,k,bi,bj) diff --git a/pkg/ctrl/ctrl_getobcss.F b/pkg/ctrl/ctrl_getobcss.F index ac70494a7e..7e2636494c 100644 --- a/pkg/ctrl/ctrl_getobcss.F +++ b/pkg/ctrl/ctrl_getobcss.F @@ -4,10 +4,7 @@ #endif subroutine ctrl_getobcss( - I mytime, - I myiter, - I mythid - & ) + I myTime, myIter, myThid ) c ================================================================== c SUBROUTINE ctrl_getobcss @@ -17,7 +14,6 @@ subroutine ctrl_getobcss( c to dyn. fields c c started: heimbach@mit.edu, 29-Aug-2001 -c c new flags: gebbie@mit.edu, 25 Jan 2003. c c ================================================================== @@ -43,70 +39,62 @@ subroutine ctrl_getobcss( #endif /* ALLOW_OBCSS_CONTROL */ c == routine arguments == - _RL mytime - integer myiter - integer mythid + _RL myTime + integer myIter + integer myThid #ifdef ALLOW_OBCSS_CONTROL -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi integer jtlo,jthi - integer jmin,jmax integer imin,imax integer ilobcss integer iobcs - - _RL dummy _RL obcssfac logical obcssfirst logical obcsschanged integer obcsscount0 integer obcsscount1 integer jp1 - -cgg _RL maskxz (1-olx:snx+olx,nr,nsx,nsy) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) - +cgg _RL maskxz (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) logical doglobalread logical ladinit - - character*(80) fnameobcss - + character*(MAX_LEN_FNAM) fnameobcss #ifdef ALLOW_OBCS_CONTROL_MODES integer nk,nz - _RL tmpz (nr,nsx,nsy) + _RL tmpz (Nr,nSx,nSy) _RL stmp #endif - -c == external functions == - - integer ilnblnk - external ilnblnk - + integer ilDir c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) + imin = 1-OLx + imax = sNx+OLx jp1 = 1 c-- Now, read the control vector. doglobalread = .false. ladinit = .false. +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + if (optimcycle .ge. 0) then ilobcss=ilnblnk( xx_obcss_file ) - write(fnameobcss(1:80),'(2a,i10.10)') - & xx_obcss_file(1:ilobcss), '.', optimcycle + write(fnameobcss,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_obcss_file(1:ilobcss), '.', optimcycle endif c-- Get the counters, flags, and the interpolation factor. @@ -114,9 +102,10 @@ subroutine ctrl_getobcss( I xx_obcssstartdate, xx_obcssperiod, O obcssfac, obcssfirst, obcsschanged, O obcsscount0,obcsscount1, - I mytime, myiter, mythid ) + I myTime, myIter, myThid ) do iobcs = 1,nobcs + if ( obcssfirst ) then call active_read_xz( fnameobcss, tmpfldxz, & (obcsscount0-1)*nobcs+iobcs, @@ -164,7 +153,7 @@ subroutine ctrl_getobcss( enddo endif #endif - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcss1(i,k,bi,bj,iobcs) = tmpfldxz (i,k,bi,bj) cgg & * maskxz (i,k,bi,bj) @@ -178,7 +167,7 @@ subroutine ctrl_getobcss( do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcss0(i,k,bi,bj,iobcs) = xx_obcss1(i,k,bi,bj,iobcs) tmpfldxz (i,k,bi,bj) = 0. _d 0 @@ -233,7 +222,7 @@ subroutine ctrl_getobcss( enddo endif #endif - do k = 1,nr + do k = 1,Nr do i = imin,imax xx_obcss1 (i,k,bi,bj,iobcs) = tmpfldxz (i,k,bi,bj) cgg & * maskxz (i,k,bi,bj) @@ -247,9 +236,9 @@ subroutine ctrl_getobcss( do bj = jtlo,jthi do bi = itlo,ithi c-- Calculate mask for tracer cells (0 => land, 1 => water). - do k = 1,nr - do i = 1,snx - j = OB_Js(I,bi,bj) + do k = 1,Nr + do i = 1,sNx + j = OB_Js(i,bi,bj) IF ( j.EQ.OB_indexNone ) j = 1 if (iobcs .EQ. 1) then OBSt(i,k,bi,bj) = OBSt (i,k,bi,bj) diff --git a/pkg/ctrl/ctrl_getobcsw.F b/pkg/ctrl/ctrl_getobcsw.F index 4d91a6fb93..2bbefe8443 100644 --- a/pkg/ctrl/ctrl_getobcsw.F +++ b/pkg/ctrl/ctrl_getobcsw.F @@ -4,10 +4,7 @@ #endif subroutine ctrl_getobcsw( - I mytime, - I myiter, - I mythid - & ) + I myTime, myIter, myThid ) c ================================================================== c SUBROUTINE ctrl_getobcsw @@ -17,8 +14,8 @@ subroutine ctrl_getobcsw( c to dyn. fields c c started: heimbach@mit.edu, 29-Aug-2001 -c c modified: gebbie@mit.edu, 18-Mar-2003 +c c ================================================================== c SUBROUTINE ctrl_getobcsw c ================================================================== @@ -42,70 +39,62 @@ subroutine ctrl_getobcsw( #endif /* ALLOW_OBCSW_CONTROL */ c == routine arguments == - _RL mytime - integer myiter - integer mythid + _RL myTime + integer myIter + integer myThid #ifdef ALLOW_OBCSW_CONTROL -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi integer jtlo,jthi integer jmin,jmax - integer imin,imax integer ilobcsw integer iobcs integer ip1 - - _RL dummy _RL obcswfac logical obcswfirst logical obcswchanged integer obcswcount0 integer obcswcount1 - -cgg _RL maskyz (1-oly:sny+oly,nr,nsx,nsy) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) - +cgg _RL maskyz (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) logical doglobalread logical ladinit - - character*(80) fnameobcsw - + character*(MAX_LEN_FNAM) fnameobcsw #ifdef ALLOW_OBCS_CONTROL_MODES integer nk,nz - _RL tmpz (nr,nsx,nsy) + _RL tmpz (Nr,nSx,nSy) _RL stmp #endif - -c == external functions == - - integer ilnblnk - external ilnblnk - + integer ilDir c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) + jmin = 1-OLy + jmax = sNy+OLy ip1 = 1 c-- Now, read the control vector. doglobalread = .false. ladinit = .false. +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + if (optimcycle .ge. 0) then ilobcsw=ilnblnk( xx_obcsw_file ) - write(fnameobcsw(1:80),'(2a,i10.10)') - & xx_obcsw_file(1:ilobcsw), '.', optimcycle + write(fnameobcsw,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_obcsw_file(1:ilobcsw), '.', optimcycle endif c-- Get the counters, flags, and the interpolation factor. @@ -113,9 +102,10 @@ subroutine ctrl_getobcsw( I xx_obcswstartdate, xx_obcswperiod, O obcswfac, obcswfirst, obcswchanged, O obcswcount0,obcswcount1, - I mytime, myiter, mythid ) + I myTime, myIter, myThid ) do iobcs = 1,nobcs + if ( obcswfirst ) then call active_read_yz( fnameobcsw, tmpfldyz, & (obcswcount0-1)*nobcs+iobcs, @@ -163,7 +153,7 @@ subroutine ctrl_getobcsw( enddo endif #endif - do k = 1,nr + do k = 1,Nr do j = jmin,jmax xx_obcsw1(j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj) cgg & * maskyz (j,k,bi,bj) @@ -177,7 +167,7 @@ subroutine ctrl_getobcsw( do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do j = jmin,jmax xx_obcsw0(j,k,bi,bj,iobcs) = xx_obcsw1(j,k,bi,bj,iobcs) tmpfldyz (j,k,bi,bj) = 0. _d 0 @@ -232,7 +222,7 @@ subroutine ctrl_getobcsw( enddo endif #endif - do k = 1,nr + do k = 1,Nr do j = jmin,jmax xx_obcsw1 (j,k,bi,bj,iobcs) = tmpfldyz (j,k,bi,bj) cgg & * maskyz (j,k,bi,bj) @@ -246,8 +236,8 @@ subroutine ctrl_getobcsw( do bj = jtlo, jthi do bi = itlo, ithi c-- Calculate mask for tracer cells (0 => land, 1 => water). - do k = 1,nr - do j = 1,sny + do k = 1,Nr + do j = 1,sNy i = OB_Iw(j,bi,bj) IF ( i.EQ.OB_indexNone ) i = 1 if (iobcs .EQ. 1) then diff --git a/pkg/ctrl/ctrl_getrec.F b/pkg/ctrl/ctrl_getrec.F deleted file mode 100644 index 51a6653209..0000000000 --- a/pkg/ctrl/ctrl_getrec.F +++ /dev/null @@ -1,397 +0,0 @@ -#include "CTRL_OPTIONS.h" - - subroutine ctrl_GetRec( - I thefield, - O fac, - O first, - O changed, - O count0, - O count1, - I mytime, - I myiter, - I mythid - & ) - -c ================================================================== -c SUBROUTINE ctrl_GetRec -c ================================================================== -c -c o Get flags, counters, and the linear interpolation factor for a -c given control vector contribution. -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c -c changed: Christian Eckert eckert@mit.edu 14-Jan-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c Christian Eckert eckert@mit.edu 24-Feb-2000 -c -c - Changed Routine names (package prefix: ecco_) -c -c ================================================================== -c SUBROUTINE ctrl_GetRec -c ================================================================== - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "ctrl.h" -#include "CTRL_OBCS.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif - -c == routine arguments == - - character*(*) thefield - _RL fac - logical first - logical changed - integer count0 - integer count1 - _RL mytime - integer myiter - integer mythid - -c == local variables == - -#ifdef ALLOW_CAL - - integer mydate(4) - integer previousdate(4) - integer difftime(4) - - integer fldcount - _RL fldsecs - integer prevfldcount - _RL prevfldsecs - integer flddate(4) - - integer fldstartdate(4) - _RL fldperiod - - logical lArgErr - - character*(max_len_mbuf) msgBuf -CML#ifdef ECCO_VERBOSE -CML character*(max_len_mbuf) msgbuf -CML#endif - -c == end of interface == - - write(msgBuf,'(A)') - & 'Oops, I thought that this routine is never used.' - call print_error( msgBuf , 1) - write(msgBuf,'(A)') - & 'To continue, remove the stop statement from ctrl_getrec.F' - call print_error( msgBuf , 1) - write(msgBuf,'(A)') - & 'or use s/r ctrl_get_gen_rec instead.' - call print_error( msgBuf , 1) - stop 'ABNORMAL END: S/R CTRL_GETREC' - - lArgErr = .true. - fldperiod = 0. - -c Map the field parameters. - - if ( thefield .eq. 'xx_obcsn' ) then - call cal_CopyDate( - I xx_obcsnstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_obcsnperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_obcss' ) then - call cal_CopyDate( - I xx_obcssstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_obcssperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_obcsw' ) then - call cal_CopyDate( - I xx_obcswstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_obcswperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_obcse' ) then - call cal_CopyDate( - I xx_obcsestartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_obcseperiod - lArgErr = .false. -c -#ifdef ECCO_CTRL_DEPRECATED - else if ( thefield .eq. 'xx_hflux' ) then - call cal_CopyDate( - I xx_hfluxstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_hfluxperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_atemp' ) then - call cal_CopyDate( - I xx_atempstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_atempperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_sflux' ) then - call cal_CopyDate( - I xx_sfluxstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_sfluxperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_aqh' ) then - call cal_CopyDate( - I xx_aqhstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_aqhperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_precip' ) then - call cal_CopyDate( - I xx_precipstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_precipperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_swflux' ) then - call cal_CopyDate( - I xx_swfluxstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_swfluxperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_swdown' ) then - call cal_CopyDate( - I xx_swdownstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_swdownperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_lwflux' ) then - call cal_CopyDate( - I xx_lwfluxstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_lwfluxperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_lwdown' ) then - call cal_CopyDate( - I xx_lwdownstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_lwdownperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_evap' ) then - call cal_CopyDate( - I xx_evapstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_evapperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_snowprecip' ) then - call cal_CopyDate( - I xx_snowprecipstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_snowprecipperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_apressure' ) then - call cal_CopyDate( - I xx_apressurestartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_apressureperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_runoff' ) then - call cal_CopyDate( - I xx_runoffstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_runoffperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_tauu' ) then - call cal_CopyDate( - I xx_tauustartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_tauuperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_uwind' ) then - call cal_CopyDate( - I xx_uwindstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_uwindperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_tauv' ) then - call cal_CopyDate( - I xx_tauvstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_tauvperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_vwind' ) then - call cal_CopyDate( - I xx_vwindstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_vwindperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_sst' ) then - call cal_CopyDate( - I xx_sststartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_sstperiod - lArgErr = .false. -c - else if ( thefield .eq. 'xx_sss' ) then - call cal_CopyDate( - I xx_sssstartdate, - O fldstartdate, - I mythid - & ) - fldperiod = xx_sssperiod - lArgErr = .false. -#endif /* ECCO_CTRL_DEPRECATED */ - endif - -c-- Check the field argument. - if ( lArgErr ) then - print*,' The subroutine *ctrl_GetRec* has been called' - print*,' with an illegal field specification.' - stop ' ... stopped in ctrl_GetRec.' - endif - -c-- Determine the current date. - call cal_GetDate( myiter, mytime, mydate, mythid ) - -c Determine the flux record just before mycurrentdate. - call cal_TimePassed( fldstartdate, mydate, difftime, - & mythid ) - call cal_ToSeconds( difftime, fldsecs, mythid ) -cgg Added a 0.5 safety net. - fldsecs = int((fldsecs+0.5)/fldperiod)*fldperiod - fldcount = int((fldsecs+0.5)/fldperiod) + 1 - -c Set switches for reading new records. - first = ((mytime - modelstart) .lt. 0.5*modelstep) - - if ( first) then - changed = .false. - else - call cal_GetDate( myiter-1, mytime-modelstep, - & previousdate, mythid ) - - call cal_TimePassed( fldstartdate, previousdate, - & difftime, mythid ) - call cal_ToSeconds( difftime, prevfldsecs, mythid ) -cgg Added a 0.5 safety net. - prevfldsecs = int((prevfldsecs+0.5)/fldperiod)*fldperiod - prevfldcount = int((prevfldsecs+0.5)/fldperiod) + 1 - - if (fldcount .ne. prevfldcount) then - changed = .true. - else - changed = .false. - endif - endif - - count0 = fldcount - count1 = fldcount + 1 - - call cal_TimeInterval( fldsecs, 'secs', difftime, mythid ) - call cal_AddTime( fldstartdate, difftime, flddate, mythid ) - call cal_TimePassed( flddate, mydate, difftime, mythid ) - call cal_ToSeconds( difftime, fldsecs, mythid ) - -c Weight belonging to irec for linear interpolation purposes. -c Note: The weight as chosen here is 1. - fac of the "old" -c MITgcm estimation program. - fac = 1. - fldsecs/fldperiod - -#ifdef ECCO_VERBOSE -c Do some printing for the protocol. - _BEGIN_MASTER( mythid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - & ' ctrl_getrec: thefield: ', - & thefield - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,2x,l2,2x,l2,2x,D15.8)') - & ' first, changed, fac:', - & first, changed, fac - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i4,i4)') - & ' count0, count1:', - & count0, count1 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - _END_MASTER( mythid ) -#endif - -#endif /* ALLOW_CAL */ - - return - end diff --git a/pkg/ctrl/ctrl_hfacc_ini.F b/pkg/ctrl/ctrl_hfacc_ini.F index 3cd68b09bb..3f7507afff 100644 --- a/pkg/ctrl/ctrl_hfacc_ini.F +++ b/pkg/ctrl/ctrl_hfacc_ini.F @@ -3,7 +3,7 @@ CBOP C !ROUTINE: ctrl_hfacc_ini C !INTERFACE: - subroutine ctrl_hfacc_ini( mythid ) + subroutine ctrl_hfacc_ini( myThid ) C !DESCRIPTION: \bv c *================================================================= @@ -28,7 +28,7 @@ subroutine ctrl_hfacc_ini( mythid ) C !INPUT/OUTPUT PARAMETERS: c == routine arguments == - integer mythid + integer myThid #ifdef ALLOW_HFACC_CONTROL C !LOCAL VARIABLES: @@ -46,10 +46,14 @@ subroutine ctrl_hfacc_ini( mythid ) logical doglobalread logical ladinit - character*( 80) fnamehfacc + character*(MAX_LEN_FNAM) fnamehfacc character*(max_len_mbuf) msgbuf _RL fac + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + + integer ilDir c == external == integer ilnblnk @@ -58,18 +62,21 @@ subroutine ctrl_hfacc_ini( mythid ) c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) + jmin = 1-OLy + jmax = sNy+OLy + imin = 1-OLx + imax = sNx+OLx doglobalread = .false. ladinit = .false. +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + equal = .true. if ( equal ) then @@ -78,14 +85,24 @@ subroutine ctrl_hfacc_ini( mythid ) fac = 0. _d 0 endif + do bj = jtlo,jthi + do bi = itlo,ithi + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + enddo + enddo + enddo + enddo + Cml write(msgbuf,'(a)') Cml & 'ctrl_hfacc_ini: Re-initialising hFacC,' Cml call print_message( msgbuf, standardmessageunit, -Cml & SQUEEZE_RIGHT , mythid) +Cml & SQUEEZE_RIGHT , myThid) Cml write(msgbuf,'(a)') Cml & ' adding the control vector.' Cml call print_message( msgbuf, standardmessageunit, -Cml & SQUEEZE_RIGHT , mythid) +Cml & SQUEEZE_RIGHT , myThid) write(standardmessageunit,'(21x,a)') & 'ctrl_hfacc_ini: Re-initialising hFacC,' write(standardmessageunit,'(21x,a)') @@ -96,7 +113,7 @@ subroutine ctrl_hfacc_ini( mythid ) C this will be no longer necessary do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do j = jmin,jmax do i = imin,imax hFacC(i,j,k,bi,bj) = 0. @@ -113,15 +130,15 @@ subroutine ctrl_hfacc_ini( mythid ) C-- il=ilnblnk( xx_hfacc_file ) - write(fnamehfacc(1:80),'(2a,i10.10)') - & xx_hfacc_file(1:il),'.',optimcycle + write(fnamehfacc,'(2a,i10.10)') + & ctrlDir(1:ilDir)//xx_hfacc_file(1:il),'.',optimcycle #ifdef ALLOW_HFACC3D_CONTROL call active_read_xyz( fnamehfacc, tmpfld3d, 1, & doglobalread, ladinit, optimcycle, - & mythid, xx_hfacc_dummy ) + & myThid, xx_hfacc_dummy ) do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do j = jmin,jmax do i = imin,imax hFacC(i,j,k,bi,bj) = hFacC(i,j,k,bi,bj) + @@ -134,7 +151,7 @@ subroutine ctrl_hfacc_ini( mythid ) #else /* ALLOW_HFACC3D_CONTROL undefined */ call active_read_xy( fnamehfacc, tmpfld2d, 1, & doglobalread, ladinit, optimcycle, - & mythid, xx_hfacc_dummy ) + & myThid, xx_hfacc_dummy ) do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax diff --git a/pkg/ctrl/ctrl_init.F b/pkg/ctrl/ctrl_init.F index ad9770c6d7..03272edcfb 100644 --- a/pkg/ctrl/ctrl_init.F +++ b/pkg/ctrl/ctrl_init.F @@ -1,7 +1,4 @@ #include "CTRL_OPTIONS.h" -#ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" -#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -30,14 +27,10 @@ subroutine ctrl_init( myThid ) # include "ctrl.h" # include "CTRL_GENARR.h" # include "CTRL_OBCS.h" -# include "optim.h" #endif #ifdef ALLOW_CAL # include "cal.h" #endif -#ifdef ALLOW_EXF -# include "EXF_PARAM.h" -#endif #ifdef ALLOW_DIC_CONTROL # include "DIC_CTRL.h" #endif @@ -50,16 +43,7 @@ subroutine ctrl_init( myThid ) integer bi,bj integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ivar - integer startrec - integer endrec - integer diffrec - integer iarr _RL dummy _RL loctmp3d (1-olx:snx+olx,1-oly:sny+oly,Nr,nsx,nsy) @@ -70,27 +54,28 @@ subroutine ctrl_init( myThid ) EXTERNAL MDS_RECLEN #endif +#if ( defined ALLOW_GENTIM2D_CONTROL || \ + defined ALLOW_GENARR2D_CONTROL || \ + defined ALLOW_GENARR3D_CONTROL ) + INTEGER iarr + CHARACTER*(1) ncvargrdtmp +#endif #ifdef ALLOW_GENTIM2D_CONTROL CHARACTER*(MAX_LEN_FNAM) fnamegen INTEGER ilgen, k2, diffrecFull, endrecFull + INTEGER diffrec, startrec, endrec +#elif ( defined ALLOW_OBCS_CONTROL ) + INTEGER diffrec, startrec, endrec #endif c == external == - +#ifdef ALLOW_GENTIM2D_CONTROL integer ilnblnk external ilnblnk +#endif c == end of interface == - jtlo = mybylo(myThid) - jthi = mybyhi(myThid) - itlo = mybxlo(myThid) - ithi = mybxhi(myThid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx - c-- Set default values. do ivar = 1,maxcvars ncvarindex(ivar) = -1 @@ -125,220 +110,6 @@ subroutine ctrl_init( myThid ) _BARRIER -#ifdef ECCO_CTRL_DEPRECATED - -c-- ===================== -c-- Initial state fields. -c-- ===================== - -cph( -cph index 7-10 reserved for atmos. state, -cph index 11-14 reserved for open boundaries, -cph index 15-16 reserved for mixing coeff. -cph index 17 reserved for passive tracer TR1 -cph index 18,19 reserved for sst, sss -cph index 20 for hFacC -cph index 21-22 for efluxy, efluxp -cph index 23 for bottom drag -cph index 24 -cph index 25-26 for edtaux, edtauy -cph index 27-29 for uvel0, vvel0, etan0 -cph index 30-31 for generic 2d, 3d field -cph index 32 reserved for precip (atmos. state) -cph index 33 reserved for swflux (atmos. state) -cph index 34 reserved for swdown (atmos. state) -cph 35 lwflux -cph 36 lwdown -cph 37 evap -cph 38 snowprecip -cph 39 apressure -cph 40 runoff -cph 41 seaice SIAREA -cph 42 seaice SIHEFF -cph 43 seaice SIHSNOW -cph 44 gmredi kapredi -cph 45 shelfice shifwflx -cph 47-52 mean atmos. state -cph) - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_THETA0_CONTROL -c-- Initial state temperature contribution. - call ctrl_init_ctrlvar ( - & xx_theta_file, 1, 101, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_THETA0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SALT0_CONTROL -c-- Initial state salinity contribution. - call ctrl_init_ctrlvar ( - & xx_salt_file, 2, 102, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_SALT0_CONTROL */ - -c-- =========================== -c-- Surface flux contributions. -c-- =========================== - -c---------------------------------------------------------------------- -c-- -#if (defined (ALLOW_HFLUX_CONTROL)) -c-- Heat flux. - call ctrl_init_rec ( xx_hflux_file, - I xx_hfluxstartdate1, xx_hfluxstartdate2, xx_hfluxperiod, 1, - O xx_hfluxstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_hflux_file, 3, 103, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_ATEMP_CONTROL)) -c-- Atmos. temperature - call ctrl_init_rec ( xx_atemp_file, - I xx_atempstartdate1, xx_atempstartdate2, xx_atempperiod, 1, - O xx_atempstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_atemp_file, 7, 107, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_HFLUX0_CONTROL)) -c-- initial forcing only - call ctrl_init_ctrlvar ( - & xx_hflux_file, 3, 103, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_HFLUX_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#if (defined (ALLOW_SFLUX_CONTROL)) -c-- Salt flux. - call ctrl_init_rec ( xx_sflux_file, - I xx_sfluxstartdate1, xx_sfluxstartdate2, xx_sfluxperiod, 1, - O xx_sfluxstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_sflux_file, 4, 104, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_AQH_CONTROL)) -c-- Atmos. humidity - call ctrl_init_rec ( xx_aqh_file, - I xx_aqhstartdate1, xx_aqhstartdate2, xx_aqhperiod, 1, - O xx_aqhstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_aqh_file, 8, 108, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_SFLUX0_CONTROL)) -c-- initial forcing only - call ctrl_init_ctrlvar ( - & xx_sflux_file, 4, 104, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SFLUX_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif -#if (defined (ALLOW_USTRESS_CONTROL)) -c-- Zonal wind stress. - call ctrl_init_rec ( xx_tauu_file, - I xx_tauustartdate1, xx_tauustartdate2, xx_tauuperiod, 1, - O xx_tauustartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_tauu_file, 5, 105, diffrec, startrec, endrec, -#ifndef ALLOW_ROTATE_UV_CONTROLS - & snx, sny, 1, 'w', 'xy', myThid ) -#else - & snx, sny, 1, 'c', 'xy', myThid ) -#endif - -#elif (defined (ALLOW_TAUU0_CONTROL)) -c-- initial forcing only - call ctrl_init_ctrlvar ( - & xx_tauu_file, 5, 105, 1, 1, 1, - & snx, sny, 1, 'w', 'xy', myThid ) - -#endif /* ALLOW_USTRESS_CONTROL */ -#ifdef ALLOW_EXF - ENDIF -#endif - -#if (defined (ALLOW_UWIND_CONTROL)) -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif -c-- Zonal wind speed. - call ctrl_init_rec ( xx_uwind_file, - I xx_uwindstartdate1, xx_uwindstartdate2, xx_uwindperiod, 1, - O xx_uwindstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_uwind_file, 9, 109, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif /* ALLOW_UWIND_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif -#if (defined (ALLOW_VSTRESS_CONTROL)) -c-- Meridional wind stress. - call ctrl_init_rec ( xx_tauv_file, - I xx_tauvstartdate1, xx_tauvstartdate2, xx_tauvperiod, 1, - O xx_tauvstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_tauv_file, 6, 106, diffrec, startrec, endrec, -#ifndef ALLOW_ROTATE_UV_CONTROLS - & snx, sny, 1, 's', 'xy', myThid ) -#else - & snx, sny, 1, 'c', 'xy', myThid ) -#endif - -#elif (defined (ALLOW_TAUV0_CONTROL)) -c-- initial forcing only - call ctrl_init_ctrlvar ( - & xx_tauv_file, 6, 106, 1, 1, 1, - & snx, sny, 1, 's', 'xy', myThid ) - -#endif /* ALLOW_VSTRESS_CONTROL */ -#ifdef ALLOW_EXF - ENDIF -#endif - -#if (defined (ALLOW_VWIND_CONTROL)) -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif -c-- Meridional wind speed. - call ctrl_init_rec ( xx_vwind_file, - I xx_vwindstartdate1, xx_vwindstartdate2, xx_vwindperiod, 1, - O xx_vwindstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_vwind_file, 10, 110, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif /* ALLOW_VWIND_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - c-- =========================== c-- Open boundary contributions. c-- =========================== @@ -425,409 +196,28 @@ subroutine ctrl_init( myThid ) c This code is compatible with partial cells #endif -#ifdef ECCO_CTRL_DEPRECATED - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_DIFFKR_CONTROL - call ctrl_init_ctrlvar ( - & xx_diffkr_file, 15, 115, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_DIFFKR_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_KAPGM_CONTROL - call ctrl_init_ctrlvar ( - & xx_kapgm_file, 16, 116, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_KAPGM_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_TR10_CONTROL - call ctrl_init_ctrlvar ( - & xx_tr1_file, 17, 117, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_TR10_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#if (defined (ALLOW_SST_CONTROL)) - call ctrl_init_rec ( xx_sst_file, - I xx_sststartdate1, xx_sststartdate2, xx_sstperiod, 1, - O xx_sststartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_sst_file, 18, 118, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_SST0_CONTROL)) - call ctrl_init_ctrlvar ( - & xx_sst_file, 18, 118, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SST_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#if (defined (ALLOW_SSS_CONTROL)) - call ctrl_init_rec ( xx_sss_file, - I xx_sssstartdate1, xx_sssstartdate2, xx_sssperiod, 1, - O xx_sssstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_sss_file, 19, 119, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#elif (defined (ALLOW_SSS0_CONTROL)) - call ctrl_init_ctrlvar ( - & xx_sss_file, 19, 119, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SSS0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_DEPTH_CONTROL - call ctrl_init_ctrlvar ( - & xx_depth_file, 20, 120, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_DEPTH_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EFLUXY0_CONTROL - call ctrl_init_ctrlvar ( - & xx_efluxy_file, 21, 121, 1, 1, 1, - & snx, sny, nr, 's', '3d', myThid ) -#endif /* ALLOW_EFLUXY0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EFLUXP0_CONTROL - call ctrl_init_ctrlvar ( - & xx_efluxp_file, 22, 122, 1, 1, 1, - & snx, sny, nr, 'v', '3d', myThid ) -#endif /* ALLOW_EFLUXP0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_BOTTOMDRAG_CONTROL_NONGENERIC - call ctrl_init_ctrlvar ( - & xx_bottomdrag_file, 23, 123, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_BOTTOMDRAG_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_HFLUXM_CONTROL - call ctrl_init_ctrlvar ( - & xx_hfluxm_file, 24, 124, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_HFLUXM_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EDDYPSI_CONTROL - call ctrl_init_ctrlvar ( - & xx_edtaux_file, 25, 125, 1, 1, 1, - & snx, sny, nr, 'w', '3d', myThid ) - - call ctrl_init_ctrlvar ( - & xx_edtauy_file, 26, 126, 1, 1, 1, - & snx, sny, nr, 's', '3d', myThid ) -#endif /* ALLOW_EDDYPSI_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_UVEL0_CONTROL - call ctrl_init_ctrlvar ( - & xx_uvel_file, 27, 127, 1, 1, 1, - & snx, sny, nr, 'w', '3d', myThid ) -#endif /* ALLOW_UVEL0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_VVEL0_CONTROL - call ctrl_init_ctrlvar ( - & xx_vvel_file, 28, 128, 1, 1, 1, - & snx, sny, nr, 's', '3d', myThid ) -#endif /* ALLOW_VVEL0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_ETAN0_CONTROL - call ctrl_init_ctrlvar ( - & xx_etan_file, 29, 129, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_VVEL0_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_GEN2D_CONTROL - call ctrl_init_ctrlvar ( - & xx_gen2d_file, 30, 130, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_GEN2D_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_GEN3D_CONTROL - call ctrl_init_ctrlvar ( - & xx_gen3d_file, 31, 131, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_GEN3D_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_PRECIP_CONTROL -c-- Atmos. precipitation - call ctrl_init_rec ( xx_precip_file, - I xx_precipstartdate1, xx_precipstartdate2, xx_precipperiod,1, - O xx_precipstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_precip_file, 32, 132, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_PRECIP_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SWFLUX_CONTROL -c-- Atmos. swflux - call ctrl_init_rec ( xx_swflux_file, - I xx_swfluxstartdate1, xx_swfluxstartdate2, xx_swfluxperiod, 1, - O xx_swfluxstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_swflux_file, 33, 133, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SWFLUX_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SWDOWN_CONTROL -c-- Atmos. swdown - call ctrl_init_rec ( xx_swdown_file, - I xx_swdownstartdate1, xx_swdownstartdate2, xx_swdownperiod, 1, - O xx_swdownstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_swdown_file, 34, 134, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SWDOWN_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_LWFLUX_CONTROL -c-- Atmos. lwflux - call ctrl_init_rec ( xx_lwflux_file, - I xx_lwfluxstartdate1, xx_lwfluxstartdate2, xx_lwfluxperiod, 1, - O xx_lwfluxstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_lwflux_file, 35, 135, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_LWFLUX_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_LWDOWN_CONTROL -c-- Atmos. lwdown - call ctrl_init_rec ( xx_lwdown_file, - I xx_lwdownstartdate1, xx_lwdownstartdate2, xx_lwdownperiod, 1, - O xx_lwdownstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_lwdown_file, 36, 136, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_LWDOWN_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_EVAP_CONTROL -c-- Atmos. evap - call ctrl_init_rec ( xx_evap_file, - I xx_evapstartdate1, xx_evapstartdate2, xx_evapperiod, 1, - O xx_evapstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_evap_file, 37, 137, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_EVAP_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SNOWPRECIP_CONTROL -c-- Atmos. snowprecip - call ctrl_init_rec ( xx_snowprecip_file, - I xx_snowprecipstartdate1, xx_snowprecipstartdate2, - I xx_snowprecipperiod, 1, - O xx_snowprecipstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_snowprecip_file, 38, 138, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_SNOWPRECIP_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_APRESSURE_CONTROL -c-- Atmos. apressure - call ctrl_init_rec ( xx_apressure_file, - I xx_apressurestartdate1, xx_apressurestartdate2, - I xx_apressureperiod, 1, - O xx_apressurestartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_apressure_file, 39, 139, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) - -#endif /* ALLOW_APRESSURE_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_RUNOFF_CONTROL -c-- Atmos. runoff - call ctrl_init_rec ( xx_runoff_file, - I xx_runoffstartdate1, xx_runoffstartdate2, xx_runoffperiod, 1, - O xx_runoffstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_runoff_file, 40, 140, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_RUNOFF_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SIAREA_CONTROL -C-- so far there are no xx_siareastartdate1, etc., so we need to fudge it. -CML call ctrl_init_rec ( xx_siarea_file, -CML I xx_siareastartdate1, xx_siareastartdate2, xx_siareaperiod, 1, -CML O xx_siareastartdate, diffrec, startrec, endrec, -CML I myThid ) - startrec = 1 - endrec = 1 - diffrec = endrec - startrec + 1 - call ctrl_init_ctrlvar ( - & xx_siarea_file, 41, 141, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_siarea_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SIHEFF_CONTROL -C-- so far there are no xx_siheffstartdate1, etc., so we need to fudge it. -CML call ctrl_init_rec ( xx_siheff_file, -CML I xx_siheffstartdate1, xx_siheffstartdate2, xx_siheffperiod, 1, -CML O xx_siheffstartdate, diffrec, startrec, endrec, -CML I myThid ) - startrec = 1 - endrec = 1 - diffrec = endrec - startrec + 1 - call ctrl_init_ctrlvar ( - & xx_siheff_file, 42, 142, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_siheff_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_SIHSNOW_CONTROL -C-- so far there are no xx_sihsnowstartdate1, etc., so we need to fudge it. -CML call ctrl_init_rec ( xx_sihsnow_file, -CML I xx_sihsnowstartdate1, xx_sihsnowstartdate2, xx_sihsnowperiod, 1, -CML O xx_sihsnowstartdate, diffrec, startrec, endrec, -CML I myThid ) - startrec = 1 - endrec = 1 - diffrec = endrec - startrec + 1 - call ctrl_init_ctrlvar ( - & xx_sihsnow_file, 43, 143, diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) -#endif /* ALLOW_sihsnow_CONTROL */ - - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_KAPREDI_CONTROL - call ctrl_init_ctrlvar ( - & xx_kapredi_file, 44, 144, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) -#endif /* ALLOW_KAPREDI_CONTROL */ - -c---------------------------------------------------------------------- -c---------------------------------------------------------------------- - -#ifdef ALLOW_SHIFWFLX_CONTROL -c-- freshwater flux underneath ice-shelves - call ctrl_init_rec ( xx_shifwflx_file, - I xx_shifwflxstartdate1, xx_shifwflxstartdate2, - I xx_shifwflxperiod, 1, - O xx_shifwflxstartdate, diffrec, startrec, endrec, - I myThid ) - call ctrl_init_ctrlvar ( - & xx_shifwflx_file, 45, 145, diffrec, startrec, endrec, - & snx, sny, 1, 'i', 'xy', myThid ) -#endif /* ALLOW_SHIFWFLX_CONTROL */ - -c---------------------------------------------------------------------- -c-- -#ifdef ALLOW_ATM_MEAN_CONTROL -# ifdef ALLOW_ATEMP_CONTROL - call ctrl_init_ctrlvar ( - & xx_atemp_mean_file, 47, 147, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -# ifdef ALLOW_AQH_CONTROL - call ctrl_init_ctrlvar ( - & xx_aqh_mean_file, 48, 148, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -# ifdef ALLOW_UWIND_CONTROL - call ctrl_init_ctrlvar ( - & xx_uwind_mean_file, 49, 149, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -# ifdef ALLOW_VWIND_CONTROL - call ctrl_init_ctrlvar ( - & xx_vwind_mean_file, 50, 150, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -# ifdef ALLOW_PRECIP_CONTROL - call ctrl_init_ctrlvar ( - & xx_precip_mean_file,51, 151, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -# ifdef ALLOW_SWDOWN_CONTROL - call ctrl_init_ctrlvar ( - & xx_swdown_mean_file,52, 152, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) -# endif -#endif /* ALLOW_ATM_MEAN_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - c---------------------------------------------------------------------- c-- #ifdef ALLOW_GENARR2D_CONTROL do iarr = 1, maxCtrlArr2D -#ifndef ALLOW_OPENAD + ncvargrdtmp='c' +# ifdef ALLOW_SHELFICE +C Under iceshelf, use maskSHI for these + if ((xx_genarr2d_file(iarr)(1:11).eq.'xx_shicoeff').or. + & (xx_genarr2d_file(iarr)(1:11).eq.'xx_shicdrag')) then + ncvargrdtmp='i' + endif +# endif + +# ifndef ALLOW_OPENAD if (xx_genarr2d_weight(iarr).NE.' ') & call ctrl_init_ctrlvar ( -#else +# else call ctrl_init_ctrlvar ( -#endif +# endif & xx_genarr2d_file(iarr)(1:MAX_LEN_FNAM), & 100+iarr, 200+iarr, 1, 1, 1, - & snx, sny, 1, 'c', 'xy', myThid ) + & snx, sny, 1, ncvargrdtmp, 'xy', myThid ) enddo #endif /* ALLOW_GENARR2D_CONTROL */ @@ -836,6 +226,7 @@ subroutine ctrl_init( myThid ) c-- #ifdef ALLOW_GENARR3D_CONTROL do iarr = 1, maxCtrlArr3D + ncvargrdtmp='c' #ifndef ALLOW_OPENAD if (xx_genarr3d_weight(iarr).NE.' ') & call ctrl_init_ctrlvar ( @@ -844,7 +235,7 @@ subroutine ctrl_init( myThid ) #endif & xx_genarr3d_file(iarr)(1:MAX_LEN_FNAM), & 200+iarr, 300+iarr, 1, 1, 1, - & snx, sny, nr, 'c', '3d', myThid ) + & snx, sny, nr, ncvargrdtmp, '3d', myThid ) enddo #endif /* ALLOW_GENARR3D_CONTROL */ @@ -859,13 +250,23 @@ subroutine ctrl_init( myThid ) xx_gentim2d_startdate2(iarr)=startdate_2 endif #endif + ncvargrdtmp='c' +# ifdef ALLOW_SHELFICE +C Under iceshelf, use maskSHI for these + if (xx_gentim2d_file(iarr)(1:11).eq.'xx_shifwflx') + & ncvargrdtmp='i' +# endif + if (xx_gentim2d_file(iarr)(1:5).eq.'xx_fu') + & ncvargrdtmp='w' + if (xx_gentim2d_file(iarr)(1:5).eq.'xx_fv') + & ncvargrdtmp='s' call ctrl_init_rec ( xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), - I xx_gentim2d_startdate1(iarr), - I xx_gentim2d_startdate2(iarr), - I xx_gentim2d_period(iarr), + I xx_gentim2d_startdate1(iarr), + I xx_gentim2d_startdate2(iarr), + I xx_gentim2d_period(iarr), I 1, - O xx_gentim2d_startdate(1,iarr), + O xx_gentim2d_startdate(1,iarr), O diffrec, startrec, endrec, I myThid ) C @@ -900,7 +301,7 @@ subroutine ctrl_init( myThid ) & fnamegen(1:MAX_LEN_FNAM), & 300+iarr, 400+iarr, & diffrecFull, startrec, endrecFull, - & snx, sny, 1, 'c', 'xy', myThid ) + & snx, sny, 1, ncvargrdtmp, 'xy', myThid ) C ilgen=ilnblnk( xx_gentim2d_file(iarr) ) write(fnamegen(1:MAX_LEN_FNAM),'(2a)') @@ -909,13 +310,14 @@ subroutine ctrl_init( myThid ) & fnamegen(1:MAX_LEN_FNAM), & 300+iarr, 400+iarr, & diffrecFull, startrec, endrecFull, - & snx, sny, 1, 'c', 'xy', myThid ) + & snx, sny, 1, ncvargrdtmp, 'xy', myThid ) C +C The length of adxx-files needs to be 1:endrec call ctrl_init_ctrlvar ( & xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), & 300+iarr, 400+iarr, - & diffrec, startrec, endrec, - & snx, sny, 1, 'c', 'xy', myThid ) + & endrec, 1, endrec, + & snx, sny, 1, ncvargrdtmp, 'xy', myThid ) C #ifndef ALLOW_OPENAD endif @@ -924,13 +326,11 @@ subroutine ctrl_init( myThid ) enddo #endif /* ALLOW_GENTIM2D_CONTROL */ -c---------------------------------------------------------------------- c---------------------------------------------------------------------- call ctrl_init_wet( myThid ) c---------------------------------------------------------------------- -c---------------------------------------------------------------------- #ifdef ALLOW_DIC_CONTROL do i = 1, dic_n_control @@ -939,38 +339,6 @@ subroutine ctrl_init( myThid ) #endif c---------------------------------------------------------------------- -c---------------------------------------------------------------------- - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wareaunit (i,j,bi,bj) = 1.0 -#ifndef ALLOW_ECCO - whflux (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wsflux (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wtauu (i,j,bi,bj) = maskW(i,j,1,bi,bj) - wtauv (i,j,bi,bj) = maskS(i,j,1,bi,bj) - watemp (i,j,bi,bj) = maskC(i,j,1,bi,bj) - waqh (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wprecip (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wswflux (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wswdown (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wuwind (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wvwind (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wlwflux (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wlwdown (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wevap (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wsnowprecip(i,j,bi,bj) = maskC(i,j,1,bi,bj) - wapressure(i,j,bi,bj) = maskC(i,j,1,bi,bj) - wrunoff (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wsst (i,j,bi,bj) = maskC(i,j,1,bi,bj) - wsss (i,j,bi,bj) = maskC(i,j,1,bi,bj) -#endif - enddo - enddo - enddo - enddo _BARRIER diff --git a/pkg/ctrl/ctrl_init_ctrlvar.F b/pkg/ctrl/ctrl_init_ctrlvar.F index 879205dadd..f4b336bf19 100644 --- a/pkg/ctrl/ctrl_init_ctrlvar.F +++ b/pkg/ctrl/ctrl_init_ctrlvar.F @@ -50,10 +50,10 @@ subroutine ctrl_init_ctrlvar( character ncvargrd_loc*1 character whichxyz*2 integer mythid - integer il + integer il,ilDir c == local variables == - character*( 80) fname(3), gfname + character*(MAX_LEN_FNAM) fname(3), gfname character*(MAX_LEN_MBUF) msgBuf logical exst, g_exst @@ -76,7 +76,8 @@ subroutine ctrl_init_ctrlvar( cph add following flag to make pack/unpack only less error-prone #ifndef CTRL_DO_PACK_UNPACK_ONLY - call ctrl_set_fname( xx_fname, fname, mythid ) + ilDir=ilnblnk( ctrlDir ) + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_fname, fname, mythid ) c _BEGIN_MASTER( mythid ) inquire( file='costfinal', exist=exst ) diff --git a/pkg/ctrl/ctrl_init_obcs_variables.F b/pkg/ctrl/ctrl_init_obcs_variables.F index b472da0bb2..ed0befe65f 100644 --- a/pkg/ctrl/ctrl_init_obcs_variables.F +++ b/pkg/ctrl/ctrl_init_obcs_variables.F @@ -1,6 +1,6 @@ #include "CTRL_OPTIONS.h" - subroutine ctrl_init_obcs_variables( mythid ) + subroutine ctrl_init_obcs_variables( myThid ) c ================================================================== c SUBROUTINE ctrl_init_obcs_variables @@ -23,43 +23,26 @@ subroutine ctrl_init_obcs_variables( mythid ) #include "SIZE.h" #include "PARAMS.h" c#include "GRID.h" - #include "ctrl.h" #include "CTRL_OBCS.h" c == routine arguments == + integer myThid - integer mythid - +#ifdef ALLOW_OBCS c == local variables == - integer bi,bj integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ntmp - integer ivarindex integer iobcs c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx - #ifdef ALLOW_OBCSN_CONTROL do iobcs = 1, nobcs - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do i = imin,imax + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) + do k = 1,Nr + do i = 1-OLx, sNx+OLx xx_obcsn0(i,k,bi,bj,iobcs) = 0. _d 0 xx_obcsn1(i,k,bi,bj,iobcs) = 0. _d 0 enddo @@ -71,10 +54,10 @@ subroutine ctrl_init_obcs_variables( mythid ) #ifdef ALLOW_OBCSS_CONTROL do iobcs = 1, nobcs - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do i = imin,imax + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) + do k = 1,Nr + do i = 1-OLx, sNx+OLx xx_obcss0(i,k,bi,bj,iobcs) = 0. _d 0 xx_obcss1(i,k,bi,bj,iobcs) = 0. _d 0 enddo @@ -86,10 +69,10 @@ subroutine ctrl_init_obcs_variables( mythid ) #ifdef ALLOW_OBCSW_CONTROL do iobcs = 1, nobcs - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) + do k = 1,Nr + do j = 1-OLy, sNy+OLy xx_obcsw0(j,k,bi,bj,iobcs) = 0. _d 0 xx_obcsw1(j,k,bi,bj,iobcs) = 0. _d 0 enddo @@ -101,10 +84,10 @@ subroutine ctrl_init_obcs_variables( mythid ) #ifdef ALLOW_OBCSE_CONTROL do iobcs = 1, nobcs - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) + do k = 1,Nr + do j = 1-OLy, sNy+OLy xx_obcse0(j,k,bi,bj,iobcs) = 0. _d 0 xx_obcse1(j,k,bi,bj,iobcs) = 0. _d 0 enddo @@ -113,6 +96,7 @@ subroutine ctrl_init_obcs_variables( mythid ) enddo enddo #endif +#endif /* ALLOW_OBCS */ return end diff --git a/pkg/ctrl/ctrl_init_rec.F b/pkg/ctrl/ctrl_init_rec.F index 6d4bd86456..55d82f1899 100644 --- a/pkg/ctrl/ctrl_init_rec.F +++ b/pkg/ctrl/ctrl_init_rec.F @@ -58,6 +58,7 @@ subroutine ctrl_init_rec( integer i #ifdef ALLOW_CAL integer difftime(4) + INTEGER modelBaseDate(4) _RL diffsecs #endif /* ALLOW_CAL */ character*(max_len_mbuf) msgbuf @@ -90,15 +91,16 @@ subroutine ctrl_init_rec( endrec = 1*nfac else # ifdef ALLOW_CAL + call cal_FullDate( startdate_1, startdate_2, + & modelBaseDate , mythid ) call cal_FullDate( fldstartdate1, fldstartdate2, & fldstartdate , mythid ) - call cal_TimePassed( fldstartdate, modelstartdate, + call cal_TimePassed( modelBaseDate, fldstartdate, & difftime, mythid ) call cal_ToSeconds ( difftime, diffsecs, mythid ) - startrec = int((modelstart + startTime - diffsecs)/ - & fldperiod) + 1 - endrec = int((modelend + startTime - diffsecs + modelstep/2)/ - & fldperiod) + 2 + startrec = int((modelstart - diffsecs)/fldperiod) + 1 + endrec = int((modelend - diffsecs + modelstep/2) + & /fldperiod) + 2 if ( nfac .ne. 1 ) then c This is the case of obcs. startrec = (startrec - 1)*nfac + 1 @@ -124,4 +126,3 @@ subroutine ctrl_init_rec( return end - diff --git a/pkg/ctrl/ctrl_init_variables.F b/pkg/ctrl/ctrl_init_variables.F index 84cbc72c0e..4a4638e3ae 100644 --- a/pkg/ctrl/ctrl_init_variables.F +++ b/pkg/ctrl/ctrl_init_variables.F @@ -1,9 +1,17 @@ #include "CTRL_OPTIONS.h" +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +# endif +#endif /* ALLOW_TAPENADE */ - subroutine ctrl_init_variables( myThid ) - +CBOP +C !ROUTINE: CTRL_INIT_VARIABLES +C !INTERFACE: + SUBROUTINE CTRL_INIT_VARIABLES( myThid ) +C !DESCRIPTION: \bv c ================================================================== -c SUBROUTINE ctrl_init_variables +c SUBROUTINE CTRL_INIT_VARIABLES c ================================================================== c c o Set parts of the vector of control variables and initialize the @@ -12,13 +20,12 @@ subroutine ctrl_init_variables( myThid ) c started: heimbach@mit.edu 25-Mar-2002 c c ================================================================== -c SUBROUTINE ctrl_init_variables +c SUBROUTINE CTRL_INIT_VARIABLES c ================================================================== - - implicit none - -c == global variables == - +C \ev +C !USES: + IMPLICIT NONE +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -29,414 +36,117 @@ subroutine ctrl_init_variables( myThid ) # include "CTRL_GENARR.h" #endif -c == routine arguments == +#ifdef ALLOW_TAPENADE +# include "DYNVARS.h" +# ifdef ALLOW_GMREDI +# include "GMREDI.h" +# endif +# ifdef ALLOW_CTRL +# include "optim.h" +# include "ctrl_dummy.h" +# endif +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +# endif +# ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +# endif +# ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +# endif +# ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE.h" +# endif +#endif /* ALLOW_TAPENADE */ - integer myThid +C !INPUT/OUTPUT PARAMETERS: +C == Routine arguments == +C myThid :: Thread number for this instance of the routine. + INTEGER myThid #ifdef ALLOW_CTRL -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ntmp - integer ivarindex - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - -#ifdef ECCO_CTRL_DEPRECATED - do bj = jtlo,jthi - do bi = itlo,ithi - num_zero_mean(bi,bj) = 0. _d 0 - objf_zero_mean(bi,bj) = 0. _d 0 - objf_zero_smoo(bi,bj) = 0. _d 0 - enddo - enddo -#endif - -#ifdef ALLOW_HFLUX_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_hflux0(i,j,bi,bj) = 0. _d 0 - xx_hflux1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SFLUX_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_sflux0(i,j,bi,bj) = 0. _d 0 - xx_sflux1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_USTRESS_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_tauu0(i,j,bi,bj) = 0. _d 0 - xx_tauu1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_VSTRESS_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_tauv0(i,j,bi,bj) = 0. _d 0 - xx_tauv1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_UWIND_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_uwind0(i,j,bi,bj) = 0. _d 0 - xx_uwind1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_VWIND_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_vwind0(i,j,bi,bj) = 0. _d 0 - xx_vwind1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_ATEMP_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_atemp0(i,j,bi,bj) = 0. _d 0 - xx_atemp1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_AQH_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_aqh0(i,j,bi,bj) = 0. _d 0 - xx_aqh1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_PRECIP_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_precip0(i,j,bi,bj) = 0. _d 0 - xx_precip1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SWFLUX_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_swflux0(i,j,bi,bj) = 0. _d 0 - xx_swflux1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SWDOWN_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_swdown0(i,j,bi,bj) = 0. _d 0 - xx_swdown1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_LWFLUX_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_lwflux0(i,j,bi,bj) = 0. _d 0 - xx_lwflux1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_LWDOWN_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_lwdown0(i,j,bi,bj) = 0. _d 0 - xx_lwdown1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_EVAP_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_evap0(i,j,bi,bj) = 0. _d 0 - xx_evap1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SNOWPRECIP_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_snowprecip0(i,j,bi,bj) = 0. _d 0 - xx_snowprecip1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_APRESSURE_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_apressure0(i,j,bi,bj) = 0. _d 0 - xx_apressure1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_RUNOFF_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_runoff0(i,j,bi,bj) = 0. _d 0 - xx_runoff1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SST_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_sst0(i,j,bi,bj) = 0. _d 0 - xx_sst1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SSS_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_sss0(i,j,bi,bj) = 0. _d 0 - xx_sss1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo +C !LOCAL VARIABLES: +C == Local variables + INTEGER bi,bj + INTEGER k +#ifdef ALLOW_BOTTOMDRAG_CONTROL + INTEGER i,j #endif +c == end of interface == +CEOP -#ifdef ALLOW_SHIFWFLX_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - xx_shifwflx0(i,j,bi,bj) = 0. _d 0 - xx_shifwflx1(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_INIT_VARIABLES',myThid) #endif #ifdef ALLOW_BOTTOMDRAG_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx bottomDragFld(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO #endif -#ifdef ALLOW_ATM_MEAN_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_ATEMP_CONTROL - xx_atemp_mean (i,j,bi,bj) = 0. _d 0 -# endif -# ifdef ALLOW_AQH_CONTROL - xx_aqh_mean (i,j,bi,bj) = 0. _d 0 -# endif -# ifdef ALLOW_UWIND_CONTROL - xx_uwind_mean (i,j,bi,bj) = 0. _d 0 -# endif -# ifdef ALLOW_VWIND_CONTROL - xx_vwind_mean (i,j,bi,bj) = 0. _d 0 -# endif -# ifdef ALLOW_PRECIP_CONTROL - xx_precip_mean(i,j,bi,bj) = 0. _d 0 -# endif -# ifdef ALLOW_SWDOWN_CONTROL - xx_swdown_mean(i,j,bi,bj) = 0. _d 0 -# endif - enddo - enddo - enddo - enddo -#endif /* ALLOW_ATM_MEAN_CONTROL */ - #ifdef ALLOW_OBCS_CONTROL IF (useOBCS) CALL CTRL_INIT_OBCS_VARIABLES( myThid ) #endif C-- Map the control variables onto the model state. C- Needs to be called after few {PKG}_init_varia (e.g., PTRACERS_INIT_VARIA) - IF ( .NOT. ctrlUseGen ) THEN -# ifdef ALLOW_ECCO -# ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_ECCO',myThid) -# endif - CALL CTRL_MAP_INI_ECCO( myThid ) -# else -# ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI',myThid) -# endif - CALL CTRL_MAP_INI( myThid ) -# endif - ENDIF !IF ( .NOT. ctrlUseGen ) THEN - - IF ( ctrlUseGen ) THEN #if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL)) +# ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_GENARR',myThid) +# endif CALL CTRL_MAP_INI_GENARR( myThid ) #endif #ifdef ALLOW_GENTIM2D_CONTROL +# ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_CALL('CTRL_MAP_INI_GENTIM2D',myThid) +# endif CALL CTRL_MAP_INI_GENTIM2D( myThid ) #endif #ifdef ALLOW_GENTIM2D_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do k=1,maxCtrlTim2D + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k=1,maxCtrlTim2D objf_gentim2d(bi,bj,k) = 0. _d 0 num_gentim2d(bi,bj,k) = 0. _d 0 -#ifdef ECCO_CTRL_DEPRECATED - num_gentim2dm(bi,bj,k) = 0. _d 0 - objf_gentim2dm(bi,bj,k) = 0. _d 0 - objf_gentim2dsmoo(bi,bj,k) = 0. _d 0 -#endif /* ECCO_CTRL_DEPRECATED */ - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO #endif #ifdef ALLOW_GENARR2D_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do k=1,maxCtrlArr2D + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k=1,maxCtrlArr2D objf_genarr2d(bi,bj,k) = 0. _d 0 num_genarr2d(bi,bj,k) = 0. _d 0 - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO #endif #ifdef ALLOW_GENARR3D_CONTROL - do bj = jtlo,jthi - do bi = itlo,ithi - do k=1,maxCtrlArr3D + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k=1,maxCtrlArr3D objf_genarr3d(bi,bj,k) = 0. _d 0 num_genarr3d(bi,bj,k) = 0. _d 0 - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO #endif - ENDIF !IF ( .NOT. ctrlUseGen ) THEN -#ifdef ALLOW_SEAICE - CALL SEAICE_CTRL_MAP_INI( myThid ) +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_INIT_VARIABLES',myThid) #endif - #endif /* ALLOW_CTRL */ RETURN diff --git a/pkg/ctrl/ctrl_init_wet.F b/pkg/ctrl/ctrl_init_wet.F index 25b8706f62..880ba3940e 100644 --- a/pkg/ctrl/ctrl_init_wet.F +++ b/pkg/ctrl/ctrl_init_wet.F @@ -1,6 +1,6 @@ #include "CTRL_OPTIONS.h" - subroutine ctrl_init_wet( mythid ) + subroutine ctrl_init_wet( myThid ) c ================================================================== c SUBROUTINE ctrl_init_wet @@ -20,13 +20,13 @@ subroutine ctrl_init_wet( mythid ) #ifdef ALLOW_OBCS_CONTROL # include "OBCS_GRID.h" #endif -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE # include "SHELFICE.h" -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_SHELFICE */ c == routine arguments == - integer mythid + integer myThid c == local variables == @@ -37,30 +37,32 @@ subroutine ctrl_init_wet( mythid ) integer jmin,jmax integer imin,imax integer ntmp2(4) - integer iobcs integer nwetc3d integer nwettmp -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE integer ntmpshi #endif #ifdef ALLOW_OBCS_CONTROL + integer iobcs integer ntmpob(nobcs) + character*(MAX_LEN_FNAM) ymaskobcs #endif +#ifdef ALLOW_EFLUXP0_CONTROL _RL dummy +#endif /* ALLOW_EFLUXP0_CONTROL */ _RS dummyRS - character*(80) ymaskobcs character*(max_len_mbuf) msgbuf c-- Set loop ranges. - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c-- Determine the number of wet points in each tile: c-- maskc, masks, and maskw. @@ -68,12 +70,12 @@ subroutine ctrl_init_wet( mythid ) c-- Initialise the counters. do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr nwetctile(bi,bj,k) = 0 nwetstile(bi,bj,k) = 0 nwetwtile(bi,bj,k) = 0 nwetvtile(bi,bj,k) = 0 -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE nwetitile(bi,bj,k) = 0 #endif enddo @@ -84,7 +86,7 @@ subroutine ctrl_init_wet( mythid ) c-- Initialise obcs counters. do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do iobcs = 1,nobcs #ifdef ALLOW_OBCSN_CONTROL nwetobcsn(bi,bj,k,iobcs) = 0 @@ -107,7 +109,7 @@ subroutine ctrl_init_wet( mythid ) c-- Count wet points on each tile. do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr + do k = 1,Nr do j = jmin,jmax do i = imin,imax c-- Center mask. @@ -128,12 +130,12 @@ subroutine ctrl_init_wet( mythid ) nwetvtile(bi,bj,k) = nwetvtile(bi,bj,k) + 1 endif #endif -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE c-- Ice shelf mask. if (maskSHI(i,j,k,bi,bj) .eq. 1.) then nwetitile(bi,bj,k) = nwetitile(bi,bj,k) + 1 endif -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_SHELFICE */ enddo enddo enddo @@ -145,7 +147,7 @@ subroutine ctrl_init_wet( mythid ) c-- mask conventions are adopted from obcs_apply_ts, obcs_apply_uv ymaskobcs = 'maskobcsn' call ctrl_mask_set_xz( 0, OB_indexNone, OB_Jn, - & nwetobcsn, ymaskobcs, mythid ) + & nwetobcsn, ymaskobcs, myThid ) #endif #ifdef ALLOW_OBCSS_CONTROL @@ -153,7 +155,7 @@ subroutine ctrl_init_wet( mythid ) c-- mask conventions are adopted from obcs_apply_ts, obcs_apply_uv ymaskobcs = 'maskobcss' call ctrl_mask_set_xz( 1, OB_indexNone, OB_Js, - & nwetobcss, ymaskobcs, mythid ) + & nwetobcss, ymaskobcs, myThid ) #endif #ifdef ALLOW_OBCSW_CONTROL @@ -161,7 +163,7 @@ subroutine ctrl_init_wet( mythid ) c-- mask conventions are adopted from obcs_apply_ts, obcs_apply_uv ymaskobcs = 'maskobcsw' call ctrl_mask_set_yz( 1, OB_indexNone, OB_Iw, - & nwetobcsw, ymaskobcs, mythid ) + & nwetobcsw, ymaskobcs, myThid ) #endif #ifdef ALLOW_OBCSE_CONTROL @@ -169,103 +171,89 @@ subroutine ctrl_init_wet( mythid ) c-- mask conventions are adopted from obcs_apply_ts, obcs_apply_uv ymaskobcs = 'maskobcse' call ctrl_mask_set_yz( 0, OB_indexNone, OB_Ie, - & nwetobcse, ymaskobcs, mythid ) + & nwetobcse, ymaskobcs, myThid ) #endif - _BEGIN_MASTER( mythid ) + _BEGIN_MASTER( myThid ) c-- Determine the total number of control variables. nvartype = 0 nvarlength = 0 do i = 1,maxcvars c - if ( ncvarindex(i) .ne. -1 ) then - nvartype = nvartype + 1 - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,ncvarnrmax(i) - if ( ncvargrd(i) .eq. 'c' ) then - nvarlength = nvarlength + - & ncvarrecs(i)*nwetctile(bi,bj,k) - else if ( ncvargrd(i) .eq. 's' ) then - nvarlength = nvarlength + - & ncvarrecs(i)*nwetstile(bi,bj,k) - else if ( ncvargrd(i) .eq. 'w' ) then - nvarlength = nvarlength + - & ncvarrecs(i)*nwetwtile(bi,bj,k) - else if ( ncvargrd(i) .eq. 'v' ) then - nvarlength = nvarlength + - & ncvarrecs(i)*nwetvtile(bi,bj,k) -#ifdef ALLOW_SHIFWFLX_CONTROL + if ( ncvarindex(i) .ne. -1 ) then + nvartype = nvartype + 1 + do bj = jtlo,jthi + do bi = itlo,ithi + do k = 1,ncvarnrmax(i) + if ( ncvargrd(i) .eq. 'c' ) then + nvarlength = nvarlength + ncvarrecs(i)*nwetctile(bi,bj,k) + else if ( ncvargrd(i) .eq. 's' ) then + nvarlength = nvarlength + ncvarrecs(i)*nwetstile(bi,bj,k) + else if ( ncvargrd(i) .eq. 'w' ) then + nvarlength = nvarlength + ncvarrecs(i)*nwetwtile(bi,bj,k) + else if ( ncvargrd(i) .eq. 'v' ) then + nvarlength = nvarlength + ncvarrecs(i)*nwetvtile(bi,bj,k) +#ifdef ALLOW_SHELFICE c-- Ice shelf mask. - else if ( ncvargrd(i) .eq. 'i') then - nvarlength = nvarlength + - & ncvarrecs(i)*nwetitile(bi,bj,k) -#endif /* ALLOW_SHIFWFLX_CONTROL */ - else if ( ncvargrd(i) .eq. 'm' ) then + else if ( ncvargrd(i) .eq. 'i') then + nvarlength = nvarlength + ncvarrecs(i)*nwetitile(bi,bj,k) +#endif /* ALLOW_SHELFICE */ + else if ( ncvargrd(i) .eq. 'm' ) then #ifdef ALLOW_OBCS_CONTROL - do iobcs = 1, nobcs + do iobcs = 1, nobcs cgg This overcounts the number of o.b. control points by a factor of "nobcs". cgg As an ad-hoc solution I have divided by nobcs everywhere. - if ( i .eq. 11 ) then #ifdef ALLOW_OBCSN_CONTROL - nvarlength = nvarlength + - & (ncvarrecs(i)/nobcs) - & *nwetobcsn(bi,bj,k,iobcs) + if ( i .eq. 11 ) nvarlength = nvarlength + & + nwetobcsn(bi,bj,k,iobcs)*(ncvarrecs(i)/nobcs) #endif - else if ( i .eq. 12 ) then #ifdef ALLOW_OBCSS_CONTROL - nvarlength = nvarlength + - & (ncvarrecs(i)/nobcs) - & *nwetobcss(bi,bj,k,iobcs) + if ( i .eq. 12 ) nvarlength = nvarlength + & + nwetobcss(bi,bj,k,iobcs)*(ncvarrecs(i)/nobcs) #endif - else if ( i .eq. 13 ) then #ifdef ALLOW_OBCSW_CONTROL - nvarlength = nvarlength + - & (ncvarrecs(i)/nobcs) - & *nwetobcsw(bi,bj,k,iobcs) + if ( i .eq. 13 ) nvarlength = nvarlength + & + nwetobcsw(bi,bj,k,iobcs)*(ncvarrecs(i)/nobcs) #endif - else if ( i .eq. 14 ) then #ifdef ALLOW_OBCSE_CONTROL - nvarlength = nvarlength + - & (ncvarrecs(i)/nobcs) - & *nwetobcse(bi,bj,k,iobcs) -#endif - end if - enddo -#endif - else - print*,'ctrl_init: invalid grid location' - print*,' control variable = ',ncvarindex(i) - print*,' grid location = ',ncvargrd(i) - stop ' ... stopped in ctrl_init' - endif - enddo - enddo + if ( i .eq. 14 ) nvarlength = nvarlength + & + nwetobcse(bi,bj,k,iobcs)*(ncvarrecs(i)/nobcs) +#endif enddo - endif +#endif + else + print*,'ctrl_init_wet: invalid grid location' + print*,' control variable = ',ncvarindex(i) + print*,' grid location = ',ncvargrd(i) + stop ' ... stopped in ctrl_init_wet' + endif + enddo + enddo + enddo + endif enddo cph( write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 1: nvarlength = ', nvarlength call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 2: surface wet C = ', nwetctile(1,1,1) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 3: surface wet W = ', nwetwtile(1,1,1) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 4: surface wet S = ', nwetstile(1,1,1) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 4a:surface wet V = ', nwetvtile(1,1,1) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) nwetc3d = 0 do k = 1, Nr @@ -274,13 +262,13 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 5: 3D wet points = ', nwetc3d call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) do i = 1, maxcvars write(msgbuf,'(a,2x,I3,2x,I10)') & 'ctrl-wet 6: no recs for i = ', i, ncvarrecs(i) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) end do nwettmp = @@ -292,7 +280,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 7: flux ', nwettmp call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) nwettmp = & 2*nwetc3d + @@ -303,7 +291,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 8: atmos ', nwettmp call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #ifdef ALLOW_OBCSN_CONTROL write(msgbuf,'(a,2x,4I10)') @@ -311,7 +299,7 @@ subroutine ctrl_init_wet( mythid ) & , nwetobcsn(1,1,1,1), nwetobcsn(1,1,1,2) & , nwetobcsn(1,1,1,3), nwetobcsn(1,1,1,4) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSS_CONTROL write(msgbuf,'(a,2x,4I10)') @@ -319,7 +307,7 @@ subroutine ctrl_init_wet( mythid ) & , nwetobcss(1,1,1,1), nwetobcss(1,1,1,2) & , nwetobcss(1,1,1,3), nwetobcss(1,1,1,4) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSW_CONTROL write(msgbuf,'(a,2x,4I10)') @@ -327,7 +315,7 @@ subroutine ctrl_init_wet( mythid ) & , nwetobcsw(1,1,1,1), nwetobcsw(1,1,1,2) & , nwetobcsw(1,1,1,3), nwetobcsw(1,1,1,4) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSE_CONTROL write(msgbuf,'(a,2x,4I10)') @@ -335,31 +323,31 @@ subroutine ctrl_init_wet( mythid ) & , nwetobcse(1,1,1,1), nwetobcse(1,1,1,2) & , nwetobcse(1,1,1,3), nwetobcse(1,1,1,4) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif cph) write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) CALL GLOBAL_SUM_INT( nvarlength, myThid ) write(msgbuf,'(a,2x,I3,2x,I10)') - & 'ctrl-wet 13: global nvarlength for Nr =', nr, nvarlength + & 'ctrl-wet 13: global nvarlength for Nr =', Nr, nvarlength call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) c c Summation of wet point counters c - do k = 1, nr + do k = 1, Nr ntmp2(1)=0 do bj=1,nSy @@ -400,16 +388,16 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,4(2x,I10))') & 'ctrl-wet 14: global nWet C/S/W/V k=', k, ntmp2 call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) enddo write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) - do k = 1, nr + do k = 1, Nr #ifdef ALLOW_OBCSN_CONTROL do iobcs = 1, nobcs @@ -425,7 +413,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,4(2x,I10))') & 'ctrl-wet 15a: global obcsN T,S,U,V k=', k, ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSS_CONTROL do iobcs = 1, nobcs @@ -441,7 +429,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,4(2x,I10))') & 'ctrl-wet 15b: global obcsS T,S,U,V k=', k, ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSW_CONTROL do iobcs = 1, nobcs @@ -457,7 +445,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,4(2x,I10))') & 'ctrl-wet 15c: global obcsW T,S,U,V k=', k, ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSE_CONTROL do iobcs = 1, nobcs @@ -473,7 +461,7 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,4(2x,I10))') & 'ctrl-wet 15d: global obcsE T,S,U,V k=', k, ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif enddo @@ -481,69 +469,69 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #ifdef ALLOW_OBCSN_CONTROL do iobcs = 1, nobcs ntmpob(iobcs)=0 - do k = 1, nr + do k = 1, Nr ntmpob(iobcs)=ntmpob(iobcs)+nwetobcsnglo(k,iobcs) enddo enddo write(msgbuf,'(a,4(2x,I10))') & 'ctrl-wet 16a: global SUM(K) obcsN T,S,U,V ', ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSS_CONTROL do iobcs = 1, nobcs ntmpob(iobcs)=0 - do k = 1, nr + do k = 1, Nr ntmpob(iobcs)=ntmpob(iobcs)+nwetobcssglo(k,iobcs) enddo enddo write(msgbuf,'(a,4(2x,I10))') & 'ctrl-wet 16b: global SUM(K) obcsS T,S,U,V ', ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSW_CONTROL do iobcs = 1, nobcs ntmpob(iobcs)=0 - do k = 1, nr + do k = 1, Nr ntmpob(iobcs)=ntmpob(iobcs)+nwetobcswglo(k,iobcs) enddo enddo write(msgbuf,'(a,4(2x,I10))') & 'ctrl-wet 16c: global SUM(K) obcsW T,S,U,V ', ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif #ifdef ALLOW_OBCSE_CONTROL do iobcs = 1, nobcs ntmpob(iobcs)=0 - do k = 1, nr + do k = 1, Nr ntmpob(iobcs)=ntmpob(iobcs)+nwetobcseglo(k,iobcs) enddo enddo write(msgbuf,'(a,4(2x,I10))') & 'ctrl-wet 16d: global SUM(K) obcsE T,S,U,V ', ntmpob call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE write(msgbuf,'(a,2x,I10)') & 'ctrl-wet 17a:surface wet I = ', nwetitile(1,1,1) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) - do k = 1, nr + do k = 1, Nr ntmpshi=0 do bj=1,nSy do bi=1,nSx @@ -559,62 +547,63 @@ subroutine ctrl_init_wet( mythid ) write(msgbuf,'(a,2x,I3,2x,I10)') & 'ctrl-wet 17b: global nWet I k=', k, ntmpshi call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) enddo ntmpshi=0 - do k = 1, nr + do k = 1, Nr ntmpshi=ntmpshi+nWetiGlobal(k) enddo write(msgbuf,'(a,2x,I10)') - & 'ctrl-wet 17c: global SUM(K) shifwflx ', ntmpshi + & 'ctrl-wet 17c: global SUM(K) shelfice ', ntmpshi call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a)') & 'ctrl-wet -------------------------------------------------' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif write(msgbuf,'(a,2x,I10)') - & 'ctrl_init: no. of control variables: ', nvartype + & 'ctrl_init_wet: no. of control variables: ', nvartype call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,2x,I10)') - & 'ctrl_init: control vector length: ', nvarlength + & 'ctrl_init_wet: control vector length: ', nvarlength call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) - _END_MASTER( mythid ) + _END_MASTER( myThid ) #ifdef ALLOW_AUTODIFF c write masks and weights to files to be read by a master process c c#ifdef REAL4_IS_SLOW C leave this commented out (in case of problems with ACTIVE_WRITE_GEN_RS) -c call active_write_xyz( 'maskCtrlC', maskC, 1, 0, mythid, dummy) -c call active_write_xyz( 'maskCtrlW', maskW, 1, 0, mythid, dummy) -c call active_write_xyz( 'maskCtrlS', maskS, 1, 0, mythid, dummy) +c call active_write_xyz( 'maskCtrlC', maskC, 1, 0, myThid, dummy) +c call active_write_xyz( 'maskCtrlW', maskW, 1, 0, myThid, dummy) +c call active_write_xyz( 'maskCtrlS', maskS, 1, 0, myThid, dummy) c#else CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlC', maskC, 'XY', Nr, - I 1, .FALSE., 0, mythid, dummyRS ) + I 1, .FALSE., 0, myThid, dummyRS ) CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlW', maskW, 'XY', Nr, - I 1, .FALSE., 0, mythid, dummyRS ) + I 1, .FALSE., 0, myThid, dummyRS ) CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlS', maskS, 'XY', Nr, - I 1, .FALSE., 0, mythid, dummyRS ) + I 1, .FALSE., 0, myThid, dummyRS ) c#endif -#if (defined (ALLOW_EFLUXP0_CONTROL)) - call active_write_xyz( 'maskhFacV', hFacV, 1, 0, mythid, dummy) +#ifdef ALLOW_EFLUXP0_CONTROL + call active_write_xyz( 'maskhFacV', hFacV, 1, 0, myThid, dummy) #endif -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE c#ifdef REAL4_IS_SLOW -c call active_write_xyz( 'maskCtrlI', maskSHI, 1, 0, mythid, dummy) +c call active_write_xyz( 'maskCtrlI', maskSHI, 1, 0, myThid, dummy) c#else CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlI', maskSHI, 'XY', Nr, - I 1, .FALSE., 0, mythid, dummyRS ) + I 1, .FALSE., 0, myThid, dummyRS ) c#endif #endif + #endif /* ALLOW_AUTODIFF */ RETURN diff --git a/pkg/ctrl/ctrl_local_params.h b/pkg/ctrl/ctrl_local_params.h index 31babe69cd..902da5fc97 100644 --- a/pkg/ctrl/ctrl_local_params.h +++ b/pkg/ctrl/ctrl_local_params.h @@ -12,60 +12,6 @@ c xx_hflux_file - control vector surface heat flux file. c xx_sflux_file - control vector surface salt flux file. c xx_tauu_file - control vector zonal wind stress file. c xx_tauv_file - control vector meridional wind stress file. - common /controlfiles_c/ - & xx_theta_file - & , xx_salt_file - & , xx_hflux_file - & , xx_sflux_file - & , xx_tauu_file - & , xx_tauv_file - & , xx_atemp_file - & , xx_aqh_file - & , xx_precip_file - & , xx_swflux_file - & , xx_swdown_file - & , xx_lwflux_file - & , xx_lwdown_file - & , xx_evap_file - & , xx_snowprecip_file - & , xx_apressure_file - & , xx_runoff_file - & , xx_uwind_file - & , xx_vwind_file - & , xx_atemp_mean_file - & , xx_aqh_mean_file - & , xx_precip_mean_file - & , xx_swdown_mean_file - & , xx_uwind_mean_file - & , xx_vwind_mean_file - & , xx_diffkr_file - & , xx_kapgm_file - & , xx_kapredi_file - & , xx_tr1_file - & , xx_sst_file - & , xx_sss_file - & , xx_depth_file - & , xx_efluxy_file - & , xx_efluxp_file - & , xx_bottomdrag_file - & , xx_edtaux_file - & , xx_edtauy_file - & , xx_uvel_file - & , xx_vvel_file - & , xx_etan_file - & , xx_relaxsst_file - & , xx_relaxsss_file - & , xx_theta_ini_fin_file - & , xx_salt_ini_fin_file - & , xx_siarea_file - & , xx_siheff_file - & , xx_sihsnow_file - & , xx_gen2d_file - & , xx_gen3d_file -cHFLUXM_CONTROL - & , xx_hfluxm_file -cHFLUXM_CONTROL - & , xx_shifwflx_file character*(MAX_LEN_FNAM) xx_theta_file character*(MAX_LEN_FNAM) xx_salt_file @@ -107,10 +53,10 @@ cHFLUXM_CONTROL character*(MAX_LEN_FNAM) xx_uvel_file character*(MAX_LEN_FNAM) xx_vvel_file character*(MAX_LEN_FNAM) xx_etan_file - character*(MAX_LEN_FNAM) xx_relaxsst_file - character*(MAX_LEN_FNAM) xx_relaxsss_file - character*(MAX_LEN_FNAM) xx_theta_ini_fin_file - character*(MAX_LEN_FNAM) xx_salt_ini_fin_file +CML character*(MAX_LEN_FNAM) xx_relaxsst_file +CML character*(MAX_LEN_FNAM) xx_relaxsss_file +CML character*(MAX_LEN_FNAM) xx_theta_ini_fin_file +CML character*(MAX_LEN_FNAM) xx_salt_ini_fin_file character*(MAX_LEN_FNAM) xx_siarea_file character*(MAX_LEN_FNAM) xx_siheff_file character*(MAX_LEN_FNAM) xx_sihsnow_file @@ -143,27 +89,6 @@ c xx_tauvperiod - sampling interval for the meridional wind c stress control part. c ... - common /controltimes_r/ - & xx_hfluxperiod - & , xx_sfluxperiod - & , xx_tauuperiod - & , xx_tauvperiod - & , xx_atempperiod - & , xx_aqhperiod - & , xx_precipperiod - & , xx_swfluxperiod - & , xx_swdownperiod - & , xx_lwfluxperiod - & , xx_lwdownperiod - & , xx_evapperiod - & , xx_snowprecipperiod - & , xx_apressureperiod - & , xx_runoffperiod - & , xx_uwindperiod - & , xx_vwindperiod - & , xx_sstperiod - & , xx_sssperiod - & , xx_shifwflxperiod _RL xx_hfluxperiod _RL xx_sfluxperiod _RL xx_tauuperiod @@ -185,29 +110,6 @@ c ... _RL xx_sssperiod _RL xx_shifwflxperiod - common /ctrl_param_trend_removal/ - & xx_hflux_remo_intercept, xx_hflux_remo_slope, - & xx_sflux_remo_intercept, xx_sflux_remo_slope, - & xx_tauu_remo_intercept, xx_tauu_remo_slope, - & xx_tauv_remo_intercept, xx_tauv_remo_slope, - & xx_atemp_remo_intercept, xx_atemp_remo_slope, - & xx_aqh_remo_intercept, xx_aqh_remo_slope, - & xx_precip_remo_intercept, xx_precip_remo_slope, - & xx_swflux_remo_intercept, xx_swflux_remo_slope, - & xx_swdown_remo_intercept, xx_swdown_remo_slope, - & xx_lwflux_remo_intercept, xx_lwflux_remo_slope, - & xx_lwdown_remo_intercept, xx_lwdown_remo_slope, - & xx_evap_remo_intercept, xx_evap_remo_slope, - & xx_snowprecip_remo_intercept, - & xx_snowprecip_remo_slope, - & xx_apressure_remo_intercept, - & xx_apressure_remo_slope, - & xx_sst_remo_intercept, xx_sst_remo_slope, - & xx_sss_remo_intercept, xx_sss_remo_slope, - & xx_runoff_remo_intercept, xx_runoff_remo_slope, - & xx_uwind_remo_intercept, xx_uwind_remo_slope, - & xx_vwind_remo_intercept, xx_vwind_remo_slope, - & xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope _RL xx_hflux_remo_intercept, xx_hflux_remo_slope _RL xx_sflux_remo_intercept, xx_sflux_remo_slope @@ -239,67 +141,6 @@ c control part. c xx_tauvstartdate - start date for the meridional wind stress c control part. - common /controltimes_i/ - & xx_hfluxstartdate1 - & , xx_hfluxstartdate2 - & , xx_sfluxstartdate1 - & , xx_sfluxstartdate2 - & , xx_tauustartdate1 - & , xx_tauustartdate2 - & , xx_tauvstartdate1 - & , xx_tauvstartdate2 - & , xx_atempstartdate1 - & , xx_atempstartdate2 - & , xx_aqhstartdate1 - & , xx_aqhstartdate2 - & , xx_precipstartdate1 - & , xx_precipstartdate2 - & , xx_swfluxstartdate1 - & , xx_swfluxstartdate2 - & , xx_swdownstartdate1 - & , xx_swdownstartdate2 - & , xx_snowprecipstartdate1 - & , xx_snowprecipstartdate2 - & , xx_lwfluxstartdate1 - & , xx_lwfluxstartdate2 - & , xx_lwdownstartdate1 - & , xx_lwdownstartdate2 - & , xx_evapstartdate1 - & , xx_evapstartdate2 - & , xx_apressurestartdate1 - & , xx_apressurestartdate2 - & , xx_runoffstartdate1 - & , xx_runoffstartdate2 - & , xx_uwindstartdate1 - & , xx_uwindstartdate2 - & , xx_vwindstartdate1 - & , xx_vwindstartdate2 - & , xx_sststartdate1 - & , xx_sststartdate2 - & , xx_sssstartdate1 - & , xx_sssstartdate2 - & , xx_hfluxstartdate - & , xx_sfluxstartdate - & , xx_tauustartdate - & , xx_tauvstartdate - & , xx_atempstartdate - & , xx_aqhstartdate - & , xx_precipstartdate - & , xx_swfluxstartdate - & , xx_swdownstartdate - & , xx_uwindstartdate - & , xx_snowprecipstartdate - & , xx_lwfluxstartdate - & , xx_lwdownstartdate - & , xx_evapstartdate - & , xx_apressurestartdate - & , xx_runoffstartdate - & , xx_vwindstartdate - & , xx_sststartdate - & , xx_sssstartdate - & , xx_shifwflxstartdate1 - & , xx_shifwflxstartdate2 - & , xx_shifwflxstartdate integer xx_hfluxstartdate1 integer xx_hfluxstartdate2 integer xx_sfluxstartdate1 @@ -341,28 +182,27 @@ c control part. integer xx_shifwflxstartdate1 integer xx_shifwflxstartdate2 - integer xx_hfluxstartdate(4) - integer xx_sfluxstartdate(4) - integer xx_tauustartdate(4) - integer xx_tauvstartdate(4) - integer xx_atempstartdate(4) - integer xx_aqhstartdate(4) - integer xx_precipstartdate(4) - integer xx_swfluxstartdate(4) - integer xx_swdownstartdate(4) - integer xx_snowprecipstartdate(4) - integer xx_lwfluxstartdate(4) - integer xx_lwdownstartdate(4) - integer xx_evapstartdate(4) - integer xx_apressurestartdate(4) - integer xx_runoffstartdate(4) - integer xx_uwindstartdate(4) - integer xx_vwindstartdate(4) - integer xx_sststartdate(4) - integer xx_sssstartdate(4) - integer xx_shifwflxstartdate(4) +CML integer xx_hfluxstartdate(4) +CML integer xx_sfluxstartdate(4) +CML integer xx_tauustartdate(4) +CML integer xx_tauvstartdate(4) +CML integer xx_atempstartdate(4) +CML integer xx_aqhstartdate(4) +CML integer xx_precipstartdate(4) +CML integer xx_swfluxstartdate(4) +CML integer xx_swdownstartdate(4) +CML integer xx_snowprecipstartdate(4) +CML integer xx_lwfluxstartdate(4) +CML integer xx_lwdownstartdate(4) +CML integer xx_evapstartdate(4) +CML integer xx_apressurestartdate(4) +CML integer xx_runoffstartdate(4) +CML integer xx_uwindstartdate(4) +CML integer xx_vwindstartdate(4) +CML integer xx_sststartdate(4) +CML integer xx_sssstartdate(4) +CML integer xx_shifwflxstartdate(4) c ================================================================== -c END OF HEADER CONTROLVARS ctrl.h +c END OF HEADER CONTROLVARS ctrl_local_params.h c ================================================================== - diff --git a/pkg/ctrl/ctrl_map_forcing.F b/pkg/ctrl/ctrl_map_forcing.F index 6cc52ab2e9..46250f6f0f 100644 --- a/pkg/ctrl/ctrl_map_forcing.F +++ b/pkg/ctrl/ctrl_map_forcing.F @@ -29,6 +29,9 @@ SUBROUTINE CTRL_MAP_FORCING( myTime, myIter, myThid ) #include "CTRL_GENARR.h" #include "ctrl_dummy.h" #include "optim.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +#endif #ifdef ALLOW_AUTODIFF #include "AUTODIFF_MYFIELDS.h" #endif @@ -42,281 +45,52 @@ SUBROUTINE CTRL_MAP_FORCING( myTime, myIter, myThid ) INTEGER myIter INTEGER myThid +C !FUNCTIONS: + C !LOCAL VARIABLES: C == Local variables == - integer bi,bj - integer i,j - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax -#ifndef ALLOW_OPENAD #ifdef ALLOW_GENTIM2D_CONTROL - integer iarr - _RL tmpUE(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL tmpVN(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL tmpUX(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL tmpVY(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + INTEGER bi,bj + INTEGER i,j #endif +#ifndef ALLOW_OPENAD +#ifdef ALLOW_GENTIM2D_CONTROL + INTEGER iarr + _RL tmpUE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL tmpVN(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL tmpUX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL tmpVY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif - -#if (defined ALLOW_TAUU0_CONTROL) || (defined ALLOW_TAUV0_CONTROL) ||\ - (defined ALLOW_SFLUX0_CONTROL) || (defined ALLOW_HFLUX0_CONTROL) ||\ - (defined ALLOW_SSS_CONTROL) || (defined ALLOW_SST_CONTROL) ||\ - (defined ALLOW_HFLUXM_CONTROL) - integer il - logical doglobalread - logical ladinit - - character*( 80) fnametauu - character*( 80) fnametauv - character*( 80) fnamesflux - character*( 80) fnamehflux - character*( 80) fnamesss - character*( 80) fnamesst -cHFLUXM_CONTROL - character*( 80) fnamehfluxm -cHFLUXM_CONTROL - -c == external == - integer ilnblnk - external ilnblnk #endif c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx - -#if (defined ALLOW_TAUU0_CONTROL) || (defined ALLOW_TAUV0_CONTROL) ||\ - (defined ALLOW_SFLUX0_CONTROL) || (defined ALLOW_HFLUX0_CONTROL) ||\ - (defined ALLOW_SSS_CONTROL) || (defined ALLOW_SST_CONTROL) ||\ - (defined ALLOW_HFLUXM_CONTROL) - - doglobalread = .false. - ladinit = .false. - - IF ( myIter .EQ. nIter0 ) THEN - -#ifdef ALLOW_TAUU0_CONTROL -c-- tauu0. - il=ilnblnk( xx_tauu_file ) - write(fnametauu(1:80),'(2a,i10.10)') - & xx_tauu_file(1:il),'.',optimcycle - call active_read_xy ( fnametauu, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_tauu_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_OPENAD - fu(i,j,bi,bj) = fu(i,j,bi,bj) + - & xx_tauu0(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) -#else - fu(i,j,bi,bj) = fu(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_TAUV0_CONTROL -c-- tauv0. - il=ilnblnk( xx_tauv_file ) - write(fnametauv(1:80),'(2a,i10.10)') - & xx_tauv_file(1:il),'.',optimcycle - call active_read_xy ( fnametauv, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_tauv_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_OPENAD - fv(i,j,bi,bj) = fv(i,j,bi,bj) + - & xx_tauv0(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) -#else - fv(i,j,bi,bj) = fv(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SFLUX0_CONTROL -c-- sflux0. - il=ilnblnk( xx_sflux_file ) - write(fnamesflux(1:80),'(2a,i10.10)') - & xx_sflux_file(1:il),'.',optimcycle - call active_read_xy ( fnamesflux, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sflux_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_OPENAD - empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + - & xx_sflux0(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) -#else - empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_HFLUX0_CONTROL -c-- hflux0. - il=ilnblnk( xx_hflux_file ) - write(fnamehflux(1:80),'(2a,i10.10)') - & xx_hflux_file(1:il),'.',optimcycle - call active_read_xy ( fnamehflux, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_hflux_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_OPENAD - qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + - & xx_hflux0(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) -#else - qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SSS_CONTROL -c-- sss0. - il=ilnblnk( xx_sss_file ) - write(fnamesss(1:80),'(2a,i10.10)') - & xx_sss_file(1:il),'.',optimcycle - call active_read_xy ( fnamesss, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sss_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - sss(i,j,bi,bj) = sss(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SST_CONTROL -c-- sst0. - il=ilnblnk( xx_sst_file ) - write(fnamesst(1:80),'(2a,i10.10)') - & xx_sst_file(1:il),'.',optimcycle - call active_read_xy ( fnamesst, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sst_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_HFLUXM_CONTROL -c-- hfluxm. - il=ilnblnk( xx_hfluxm_file ) - write(fnamehfluxm(1:80),'(2a,i10.10)') - & xx_hfluxm_file(1:il),'.',optimcycle - call active_read_xy ( fnamehfluxm, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_hfluxm_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -# ifdef ALLOW_OPENAD - Qnetm(i,j,bi,bj) = Qnetm(i,j,bi,bj) + - & xx_hfluxm(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) -#else - Qnetm(i,j,bi,bj) = Qnetm(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_TAUU0_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) - CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) -#endif -#ifdef ALLOW_SFLUX0_CONTROL - _EXCH_XY_RS(EmPmR, myThid ) -#endif -#ifdef ALLOW_HFLUX0_CONTROL - _EXCH_XY_RS(Qnet, myThid ) -#endif -#ifdef ALLOW_SST_CONTROL - _EXCH_XY_RS(SST, myThid ) -#endif -#ifdef ALLOW_SSS_CONTROL - _EXCH_XY_RS(SSS, myThid ) -#endif -#ifdef ALLOW_HFLUXM_CONTROL - _EXCH_XY_RS(Qnetm, myThid ) -#endif - - ENDIF !IF ( myIter .EQ. nIter0 ) THEN - -#endif - #ifndef ALLOW_OPENAD #ifdef ALLOW_GENTIM2D_CONTROL - IF ( ctrlUseGen ) THEN - do bj = mybylo(mythid),mybyhi(mythid) - do bi = mybxlo(mythid),mybxhi(mythid) - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx - tmpUE(i,j,bi,bj) = 0. _d 0 - tmpVN(i,j,bi,bj) = 0. _d 0 - tmpUX(i,j,bi,bj) = 0. _d 0 - tmpVY(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + tmpUE(i,j,bi,bj) = 0. _d 0 + tmpVN(i,j,bi,bj) = 0. _d 0 + tmpUX(i,j,bi,bj) = 0. _d 0 + tmpVY(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),mybxhi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy DO i = 1,sNx DO iarr = 1, maxCtrlTim2D - if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fe') tmpUE - & (i,j,bi,bj)=tmpUE(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fn') tmpVN - & (i,j,bi,bj)=tmpVN(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fe') tmpUE + & (i,j,bi,bj)=tmpUE(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fn') tmpVN + & (i,j,bi,bj)=tmpVN(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) ENDDO ENDDO ENDDO @@ -326,51 +100,69 @@ SUBROUTINE CTRL_MAP_FORCING( myTime, myIter, myThid ) _EXCH_XY_RL(tmpUE,myThid) _EXCH_XY_RL(tmpVN,myThid) CALL rotate_uv2en_rl(tmpUX,tmpVY,tmpUE,tmpVN, - & .FALSE.,.TRUE.,.TRUE.,1,mythid) + & .FALSE.,.TRUE.,.TRUE.,1,myThid) DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),mybxhi(myThid) - DO j = 1,sny - DO i = 1,snx + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx fu(i,j,bi,bj)=fu(i,j,bi,bj)+tmpUX(i,j,bi,bj) fv(i,j,bi,bj)=fv(i,j,bi,bj)+tmpVY(i,j,bi,bj) DO iarr = 1, maxCtrlTim2D - if (xx_gentim2d_file(iarr)(1:7).EQ.'xx_qnet') Qnet - & (i,j,bi,bj)=Qnet(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_empmr') EmPmR - & (i,j,bi,bj)=EmPmR(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_qsw') Qsw - & (i,j,bi,bj)=Qsw(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sst') SST - & (i,j,bi,bj)=SST(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sss') SSS - & (i,j,bi,bj)=SSS(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_pload') pLoad - & (i,j,bi,bj)=pLoad(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:11).EQ.'xx_saltflux') saltFlux - & (i,j,bi,bj)=saltFlux(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fu') fu - & (i,j,bi,bj)=fu(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) - if (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fv') fv - & (i,j,bi,bj)=fv(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:7).EQ.'xx_qnet') Qnet + & (i,j,bi,bj)=Qnet(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:8).EQ.'xx_empmr') EmPmR + & (i,j,bi,bj)=EmPmR(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:6).EQ.'xx_qsw') Qsw + & (i,j,bi,bj)=Qsw(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sst') SST + & (i,j,bi,bj)=SST(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:6).EQ.'xx_sss') SSS + & (i,j,bi,bj)=SSS(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:8).EQ.'xx_pload') pLoad + & (i,j,bi,bj)=pLoad(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:11).EQ.'xx_saltflux') saltFlux + & (i,j,bi,bj)=saltFlux(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fu') fu + & (i,j,bi,bj)=fu(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:5).EQ.'xx_fv') fv + & (i,j,bi,bj)=fv(i,j,bi,bj)+xx_gentim2d(i,j,bi,bj,iarr) + ENDDO ENDDO ENDDO ENDDO ENDDO - ENDDO - - CALL EXCH_XY_RS( Qnet , myThid ) - CALL EXCH_XY_RS( EmPmR , myThid ) - CALL EXCH_XY_RS( Qsw , myThid ) - CALL EXCH_XY_RS( SST , myThid ) - CALL EXCH_XY_RS( SSS , myThid ) - CALL EXCH_XY_RS( pLoad , myThid ) - CALL EXCH_XY_RS( saltFlux , myThid ) - CALL EXCH_UV_XY_RS( fu, fv, .TRUE., myThid ) - ENDIF !IF (ctrlUseGen) then -#endif + CALL EXCH_XY_RS( Qnet , myThid ) + CALL EXCH_XY_RS( EmPmR , myThid ) + CALL EXCH_XY_RS( Qsw , myThid ) + CALL EXCH_XY_RS( SST , myThid ) + CALL EXCH_XY_RS( SSS , myThid ) + CALL EXCH_XY_RS( pLoad , myThid ) + CALL EXCH_XY_RS( saltFlux , myThid ) + CALL EXCH_UV_XY_RS( fu, fv, .TRUE., myThid ) + +#ifdef ALLOW_STREAMICE + IF ( useStreamice ) THEN + DO iarr = 1, maxCtrlTim2D + IF (xx_gentim2d_file(iarr)(1:17).EQ.'xx_bdot_streamice') THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + bdot_streamice(i,j,bi,bj) = xx_gentim2d(i,j,bi,bj,iarr) + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_XY_RL( bdot_streamice, myThid ) + ENDIF + ENDDO + ENDIF #endif +#endif /* ALLOW_GENTIM2D_CONTROL */ +#endif /* ndef ALLOW_OPENAD */ + RETURN END diff --git a/pkg/ctrl/ctrl_map_genarr.F b/pkg/ctrl/ctrl_map_genarr.F new file mode 100644 index 0000000000..686f842448 --- /dev/null +++ b/pkg/ctrl/ctrl_map_genarr.F @@ -0,0 +1,417 @@ +#include "CTRL_OPTIONS.h" + +C-- File ctrl_map_genarr.F: Generic arrays control vector +C-- Contents: +C-- o CTRL_MAP_GENARR2D +C-- o CTRL_MAP_GENARR3D + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: CTRL_MAP_GENARR2D +C !INTERFACE: + SUBROUTINE CTRL_MAP_GENARR2D( fld, iarr, myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_GENARR2D +C | Add the generic 2D-arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" + +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "optim.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" + +C !INPUT/OUTPUT PARAMETERS: + _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER iarr + INTEGER myThid + +#ifdef ALLOW_GENARR2D_CONTROL +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j + INTEGER numsmo, k2 + LOGICAL dowc01 + LOGICAL dosmooth + LOGICAL doscaling + LOGICAL dolog10ctrl + _RL log10initval + _RL ln10 + _RL xx_gen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + CHARACTER*(MAX_LEN_FNAM) fnamegenIn + CHARACTER*(MAX_LEN_FNAM) fnamegenOut + CHARACTER*(MAX_LEN_FNAM) fnamebase + INTEGER ilgen + LOGICAL doglobalread + LOGICAL ladinit + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER ilDir +CEOP + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_GENARR2D', myThid ) +#endif +C-- Now, read the control vector. + doglobalread = .FALSE. + ladinit = .FALSE. + +#ifndef ALLOW_TAPENADE + CALL CTRL_ASSIGN(xx_gen, 1, zeroRL, myThid) +#endif + + dosmooth=.FALSE. + dowc01 = .FALSE. + doscaling=.TRUE. + dolog10ctrl=.FALSE. + log10initval=0. _d 0 + ln10 = LOG(10. _d 0) + + numsmo = 1 + DO k2 = 1, maxCtrlProc + IF ( xx_genarr2d_preproc(k2,iarr).EQ.'WC01' ) THEN + dowc01 = .TRUE. + IF (xx_genarr2d_preproc_i(k2,iarr).NE.0) + & numsmo = xx_genarr2d_preproc_i(k2,iarr) + ENDIF + IF ( (.NOT.dowc01).AND. + & (xx_genarr2d_preproc(k2,iarr).EQ.'smooth') ) THEN + dosmooth = .TRUE. + IF (xx_genarr2d_preproc_i(k2,iarr).NE.0) + & numsmo = xx_genarr2d_preproc_i(k2,iarr) + ENDIF + IF ( xx_genarr2d_preproc(k2,iarr).EQ.'noscaling' ) THEN + doscaling = .FALSE. + ENDIF + IF (xx_genarr2d_preproc_c(k2,iarr).EQ.'log10ctrl') THEN +C fld := log10(xx_gen) +C with initial guess for xx_gen set to log10initval +C passed to data.ctrl, (default = 0.0) + dolog10ctrl=.TRUE. + log10initval = xx_genarr2d_preproc_r(k2,iarr) + ENDIF + ENDDO + + fnamebase = xx_genarr2d_file(iarr) + ilgen = ILNBLNK( fnamebase ) +C Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + WRITE(fnamegenIn,'(2A,I10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.',optimcycle + WRITE(fnamegenOut,'(2A,I10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.effective.',optimcycle + + CALL READ_REC_3D_RL( xx_genarr2d_weight(iarr), ctrlprec, 1, + & wgenarr2d(1-OLx,1-OLy,1,1,iarr), 1, 1, myThid ) + +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenIn, xx_gen, 1, doglobalread, + & ladinit, optimcycle, myThid, xx_genarr2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenIn, xx_gen, 1, 1, myThid) +#endif + +C --- Get appropriate mask for ctrl variable + CALL CTRL_GET_MASK2D(xx_genarr2d_file(iarr), mask2D, myThid) + +C --- Do any smoothing +#ifdef ALLOW_SMOOTH + IF (useSMOOTH) THEN + IF (dowc01) CALL SMOOTH_CORREL2D(xx_gen,mask2D,numsmo,myThid) + IF (dosmooth) CALL SMOOTH2D(xx_gen,mask2D,numsmo,myThid) + ENDIF +#endif + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + IF (doscaling) THEN + DO j = 1,sNy + DO i = 1,sNx +C scale param adjustment + IF ( wgenarr2d(i,j,bi,bj,iarr).GT.0. ) THEN + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) + & / SQRT( wgenarr2d(i,j,bi,bj,iarr) ) + IF (dolog10ctrl) THEN + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) + log10initval +c xx_gen(i,j,bi,bj) = 10.0 ** xx_gen(i,j,bi,bj) +C this is faster, especially if log(10) has been evaluated before +c xx_gen(i,j,bi,bj) = EXP(LOG(10.0) * xx_gen(i,j,bi,bj)) + xx_gen(i,j,bi,bj) = EXP(ln10 * xx_gen(i,j,bi,bj)) + ENDIF ! dolog10ctrls + ELSE + xx_gen(i,j,bi,bj) = 0. _d 0 + ENDIF + ENDDO + ENDDO + ENDIF ! doscaling +C add to model parameter +C or in case of log10ctrl, fld = 10^(xx_gen) + IF (dolog10ctrl) THEN + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,bi,bj) = xx_gen(i,j,bi,bj)*mask2D(i,j,bi,bj) + ENDDO + ENDDO + ELSE + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,bi,bj) = fld(i,j,bi,bj) + & + xx_gen(i,j,bi,bj)*mask2D(i,j,bi,bj) + ENDDO + ENDDO + ENDIF ! dolog10ctrls + ENDDO + ENDDO + +C avoid param out of [boundsVec(1) boundsVec(4)] + CALL CTRL_BOUND_2D(fld,mask2D,xx_genarr2d_bounds(1,iarr),myThid) + + CALL EXCH_XY_RL( fld, myThid ) + +#ifdef ALLOW_TAPENADE +C$AD DO-NOT-DIFF +#endif + CALL WRITE_REC_3D_RL( fnamegenOut, ctrlprec, 1, + & fld, 1, optimcycle, myThid ) +#ifdef ALLOW_TAPENADE +C$AD END-DO-NOT-DIFF +#endif + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_GENARR2D', myThid ) +#endif +#endif /* ALLOW_GENARR2D_CONTROL */ + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: CTRL_MAP_GENARR3D +C !INTERFACE: + SUBROUTINE CTRL_MAP_GENARR3D( fld, iarr, myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_GENARR3D +C | Add the generic 3D-arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" + +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "optim.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" + +C !INPUT/OUTPUT PARAMETERS: + _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER iarr + INTEGER myThid + +#ifdef ALLOW_OPENAD + STOP 'ABNORMAL END: CTRL_MAP_GENARR3D is empty' +#else /* ALLOW_OPENAD */ +#ifdef ALLOW_GENARR3D_CONTROL +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k + INTEGER numsmo,k2 + LOGICAL dowc01 + LOGICAL dosmooth + LOGICAL doscaling + LOGICAL dolog10ctrl + _RL log10initval + _RL ln10 + _RL xx_gen(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + CHARACTER*(MAX_LEN_FNAM) fnamegenIn + CHARACTER*(MAX_LEN_FNAM) fnamegenOut + CHARACTER*(MAX_LEN_FNAM) fnamebase + INTEGER ilgen + LOGICAL doglobalread + LOGICAL ladinit + _RS mask3D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER ilDir +CEOP + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_GENARR3D', myThid ) +#endif +C-- Now, read the control vector. + doglobalread = .FALSE. + ladinit = .FALSE. +#ifndef ALLOW_TAPENADE + CALL CTRL_ASSIGN(xx_gen, Nr, zeroRL, myThid) +#endif + dosmooth=.FALSE. + dowc01 = .FALSE. + doscaling=.TRUE. + dolog10ctrl=.FALSE. + log10initval=0. _d 0 + ln10 = LOG(10. _d 0) + + numsmo = 1 + DO k2 = 1, maxCtrlProc + IF ( xx_genarr3d_preproc(k2,iarr).EQ.'WC01' ) THEN + dowc01 = .TRUE. + IF (xx_genarr3d_preproc_i(k2,iarr).NE.0) + & numsmo = xx_genarr3d_preproc_i(k2,iarr) + ENDIF + IF ( (.NOT.dowc01).AND. + & (xx_genarr3d_preproc(k2,iarr).EQ.'smooth') ) THEN + dosmooth = .TRUE. + IF (xx_genarr3d_preproc_i(k2,iarr).NE.0) + & numsmo = xx_genarr3d_preproc_i(k2,iarr) + ENDIF + IF (xx_genarr3d_preproc(k2,iarr).EQ.'noscaling') THEN + doscaling = .FALSE. + ENDIF + IF (xx_genarr3d_preproc_c(k2,iarr).EQ.'log10ctrl') THEN +C fld := log10(xx_gen) +C with initial guess for xx_gen set to log10initval +C passed to data.ctrl, (default = 0.0) + dolog10ctrl=.TRUE. + log10initval = xx_genarr3d_preproc_r(k2,iarr) + ENDIF + ENDDO + + fnamebase = xx_genarr3d_file(iarr) + ilgen = ILNBLNK( fnamebase ) +C Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + WRITE(fnamegenIn,'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.',optimcycle + WRITE(fnamegenOut,'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.effective.',optimcycle + + CALL READ_REC_3D_RL( xx_genarr3d_weight(iarr), ctrlprec, Nr, + & wgenarr3d(1-OLx,1-OLy,1,1,1,iarr), 1, 1, myThid ) + +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XYZ( fnamegenIn, xx_gen, 1, doglobalread, + & ladinit, optimcycle, myThid, xx_genarr3d_dummy(iarr) ) +#else + CALL READ_REC_XYZ_RL( fnamegenIn, xx_gen, 1, 1, myThid) +#endif + +C --- Get appropriate mask for ctrl variable + CALL CTRL_GET_MASK3D(xx_genarr3d_file(iarr), mask3D, myThid) + +C --- Do any smoothing +#ifdef ALLOW_SMOOTH + IF (useSMOOTH) THEN + IF (dowc01) CALL SMOOTH_CORREL3D( xx_gen, numsmo, myThid ) + IF (dosmooth) CALL SMOOTH3D( xx_gen, numsmo, myThid ) + ENDIF +#endif + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + IF (doscaling) THEN +C scale param adjustment + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + IF ( wgenarr3d(i,j,k,bi,bj,iarr).GT.0. ) THEN + xx_gen(i,j,k,bi,bj) = xx_gen(i,j,k,bi,bj) + & / SQRT( wgenarr3d(i,j,k,bi,bj,iarr) ) + IF (dolog10ctrl) THEN + xx_gen(i,j,k,bi,bj) = xx_gen(i,j,k,bi,bj) + log10initval +c xx_gen(i,j,k,bi,bj) = 10.0 ** xx_gen(i,j,k,bi,bj) +C this is faster, especially if log(10) has been evaluated before +c xx_gen(i,j,k,bi,bj) = EXP(LOG(10.0) * xx_gen(i,j,k,bi,bj)) + xx_gen(i,j,k,bi,bj) = EXP(ln10 * xx_gen(i,j,k,bi,bj)) + ENDIF + ELSE + xx_gen(i,j,k,bi,bj) = 0. _d 0 + ENDIF + ENDDO + ENDDO + ENDDO +C doscaling + ENDIF +C add to model parameter +C or in case of log10ctrl, fld = 10^(xx_gen) + IF ( dolog10ctrl ) THEN + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,k,bi,bj) = xx_gen(i,j,k,bi,bj)*mask3D(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ELSE + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj) + & + xx_gen(i,j,k,bi,bj)*mask3D(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF +C end bi/bj-loops + ENDDO + ENDDO + +C avoid param out of [boundsVec(1) boundsVec(4)] + CALL CTRL_BOUND_3D(fld,mask3D,xx_genarr3d_bounds(1,iarr),myThid) + +C The tile exchange for xx_uvel and xx_vvel will be +C done in CTRL_MAP_INI_GENARR.F when both +C xx_uvel and xx_vvel are read in. + IF (xx_genarr3d_file(iarr)(1:7).NE.'xx_uvel'.AND. + & xx_genarr3d_file(iarr)(1:7).NE.'xx_vvel') + & CALL EXCH_XYZ_RL( fld, myThid ) + +#ifdef ALLOW_TAPENADE +C$AD DO-NOT-DIFF +#endif + CALL WRITE_REC_3D_RL( fnamegenOut, ctrlprec, Nr, + & fld, 1, optimcycle, myThid ) +#ifdef ALLOW_TAPENADE +C$AD END-DO-NOT-DIFF +#endif + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_GENARR3D', myThid ) +#endif +#endif /* ALLOW_GENARR3D_CONTROL */ +#endif /* ALLOW_OPENAD */ + + RETURN + END diff --git a/pkg/ctrl/ctrl_map_gentim2d.F b/pkg/ctrl/ctrl_map_gentim2d.F index 0e2a3349c0..b8b5086f7e 100644 --- a/pkg/ctrl/ctrl_map_gentim2d.F +++ b/pkg/ctrl/ctrl_map_gentim2d.F @@ -9,6 +9,7 @@ SUBROUTINE CTRL_MAP_GENTIM2D( C *=============================================================* C | S/R CTRL_MAP_GENTIM2D C *=============================================================* +C \ev C !USES: IMPLICIT NONE @@ -17,139 +18,132 @@ SUBROUTINE CTRL_MAP_GENTIM2D( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "FFIELDS.h" -#include "DYNVARS.h" #include "GRID.h" #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" #include "ctrl_dummy.h" -#include "optim.h" #ifdef ALLOW_AUTODIFF #include "AUTODIFF_MYFIELDS.h" #endif C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === -C myIter :: iteration counter for this thread -C myTime :: time counter for this thread -C myThid :: thread number for this instance of the routine. +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number _RL myTime INTEGER myIter INTEGER myThid +#ifdef ALLOW_GENTIM2D_CONTROL C !LOCAL VARIABLES: C == Local variables == - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical equal - logical doglobalread - logical ladinit - character*( 80) fnamegeneric - - _RL fac - _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + INTEGER bi, bj + INTEGER i, j + INTEGER iarr + _RL xx_gentim2d_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CHARACTER*(MAX_LEN_MBUF) msgBuf - _RL LOCsumTile(nSx,nSy), LOCsumGlob, genprecipGloH - -c == external == - integer ilnblnk - external ilnblnk + _RL LOCsumTile(nSx,nSy), LOCsumGlob CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_GENTIM2D_CONTROL C-- generic - user-defined control vars DO iarr = 1, maxCtrlTim2D - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d_loc(I,J,bi,bj) = 0. _d 0 + IF (xx_gentim2d_weight(iarr).NE.' ') THEN + + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d_loc(i,j,bi,bj) = 0. _d 0 + ENDDO ENDDO ENDDO ENDDO - ENDDO -C - if (xx_gentim2d_weight(iarr).NE.' ') - & CALL CTRL_GET_GEN ( - I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), + + CALL CTRL_GET_MASK2D( xx_gentim2d_file(iarr), mask2D, myThid ) + CALL CTRL_GET_GEN ( + I xx_gentim2d_file(iarr), I xx_gentim2d_startdate(1,iarr), I xx_gentim2d_period(iarr), - I maskC, + I mask2D, O xx_gentim2d_loc, - I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), - I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), + I xx_gentim2d0(1-OLx,1-OLy,1,1,iarr), + I xx_gentim2d1(1-OLx,1-OLy,1,1,iarr), I xx_gentim2d_dummy(iarr), I zeroRL, zeroRL, - I wgentim2d(1-Olx,1-Oly,1,1,iarr), - I mytime, myiter, mythid ) -C - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sNy - do i = 1,sNx - if (xx_gentim2d_cumsum(iarr)) then - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) - & +xx_gentim2d_loc(i,j,bi,bj) - else - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) - endif - enddo - enddo - enddo - enddo -C - if (xx_gentim2d_glosum(iarr)) then - - LOCsumGlob=0. _d 0 - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - LOCsumTile(bi,bj)=0. _d 0 - do j = 1,sNy - do i = 1,sNx - LOCsumTile(bi,bj)=LOCsumTile(bi,bj)+ - & maskC(i,j,1,bi,bj)*rA(i,j,bi,bj) - & *xx_gentim2d(i,j,bi,bj,iarr) - enddo - enddo - enddo - enddo - - CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d(I,J,bi,bj,iarr) = - & LOCsumGlob/globalArea*maskC(i,j,1,bi,bj) + I wgentim2d(1-OLx,1-OLy,1,1,iarr), + I myTime, myIter, myThid ) + + IF (xx_gentim2d_cumsum(iarr)) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) + & + xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO ENDDO ENDDO - ENDDO - ENDDO + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + + IF (xx_gentim2d_glosum(iarr)) THEN + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + LOCsumTile(bi,bj)=0. _d 0 + DO j = 1,sNy + DO i = 1,sNx + LOCsumTile(bi,bj) = LOCsumTile(bi,bj) + & + xx_gentim2d(i,j,bi,bj,iarr)*rA(i,j,bi,bj) + & *maskC(i,j,1,bi,bj)*maskInC(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) + + LOCsumGlob = LOCsumGlob/globalArea + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d(i,j,bi,bj,iarr) = + & LOCsumGlob*maskC(i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN - if (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') then + WRITE(msgBuf,'(A,I6,A,1PE21.14)') + & ' iter=', myIter, ' ; genprecipGloH= ', + & LOCsumGlob*rhoConstFresh*recip_rhoConst*deltaTClock + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) - genprecipGloH=LOCsumGlob/globalArea - & *rhoConstFresh*recip_rhoConst*deltaTClock - WRITE(msgBuf,'(A,I6,A,1PE21.14)') - & ' iter=', myiter, ' ; genprecipGloH= ', genprecipGloH - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, myThid ) + ENDIF !IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN - endif !if (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') then + ENDIF !IF (xx_gentim2d_glosum(iarr)) THEN - endif !if (xx_gentim2d_glosum(iarr)) then + ENDIF !IF (xx_gentim2d_weight(iarr).NE.' ') THEN ENDDO !DO iarr = 1, maxCtrlTim2D diff --git a/pkg/ctrl/ctrl_map_ini.F b/pkg/ctrl/ctrl_map_ini.F deleted file mode 100644 index 00f73a59bf..0000000000 --- a/pkg/ctrl/ctrl_map_ini.F +++ /dev/null @@ -1,623 +0,0 @@ -#include "CTRL_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: ctrl_map_ini -C !INTERFACE: - subroutine ctrl_map_ini( mythid ) - -C !DESCRIPTION: \bv -c *================================================================= -c | SUBROUTINE ctrl_map_ini -c | Add the temperature, salinity, and diffusivity parts of the -c | control vector to the model state and update the tile halos. -c | The control vector is defined in the header file "ctrl.h". -c *================================================================= -C \ev - -C !USES: - implicit none - -#ifdef ECCO_CTRL_DEPRECATED -c == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "CTRL_FIELDS.h" -# include "CTRL_GENARR.h" -# include "ctrl_dummy.h" -# include "optim.h" -# ifdef ALLOW_ECCO -# include "ecco_cost.h" -# else -# include "ctrl_weights.h" -# endif -#endif -#ifdef ALLOW_PTRACERS -# include "PTRACERS_SIZE.h" -c#include "PTRACERS_PARAMS.h" -# include "PTRACERS_FIELDS.h" -#endif -#endif /* ECCO_CTRL_DEPRECATED */ - -C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == - integer mythid - -#ifdef ECCO_CTRL_DEPRECATED - -C !LOCAL VARIABLES: -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - - logical equal - logical doglobalread - logical ladinit - - character*( 80) fnamegeneric - - _RL fac - _RL tmptest - -c == external == - integer ilnblnk - external ilnblnk - -c == end of interface == -CEOP - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - equal = .true. - - if ( equal ) then - fac = 1. _d 0 - else - fac = 0. _d 0 - endif - -#ifdef ALLOW_THETA0_CONTROL -c-- Temperature field. - il=ilnblnk( xx_theta_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_theta_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_theta_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) - IF (abs(tmpfld3d(i,j,k,bi,bj)).gt. - $ 2.0/sqrt(wtheta(k,bi,bj))) - $ tmpfld3d(i,j,k,bi,bj)= - $ sign(2.0/sqrt(wtheta(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) -#endif - theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + - & fac*tmpfld3d(i,j,k,bi,bj) -#ifndef DISABLE_CTRL_THETA_LIMIT - if(theta(i,j,k,bi,bj).lt.-2.0) - & theta(i,j,k,bi,bj)= -2.0 -#endif - enddo - enddo - enddo - enddo - enddo - -#endif - -#ifdef ALLOW_SALT0_CONTROL -c-- Temperature field. - il=ilnblnk( xx_salt_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_salt_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_salt_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) - IF (abs(tmpfld3d(i,j,k,bi,bj)).gt. - $ 2.0/sqrt(wsalt(k,bi,bj))) - $ tmpfld3d(i,j,k,bi,bj)= - $ sign(2.0/sqrt(wsalt(k,bi,bj)),tmpfld3d(i,j,k,bi,bj)) -#endif - salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + - & fac*tmpfld3d(i,j,k,bi,bj) - - enddo - enddo - enddo - enddo - enddO -#endif - -#ifdef ALLOW_TR10_CONTROL -#ifdef ALLOW_PTRACERS -c-- Temperature field. - il=ilnblnk( xx_tr1_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_tr1_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_tr1_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) + - & fac*xx_tr1(i,j,k,bi,bj) + - & fac*tmpfld3d(i,j,k,bi,bj) -#else - ptracer(i,j,k,bi,bj,1) = ptracer(i,j,k,bi,bj,1) + - & fac*tmpfld3d(i,j,k,bi,bj) -#endif - enddo - enddo - enddo - enddo - enddo -#endif -#endif - -#ifdef ALLOW_SST0_CONTROL -c-- sst0. - il=ilnblnk( xx_sst_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_sst_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sst_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -cph sst(i,j,bi,bj) = sst(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) - theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj) - & + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SSS0_CONTROL -c-- sss0. - il=ilnblnk( xx_sss_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_sss_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sss_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -cph sss(i,j,bi,bj) = sss(i,j,bi,bj) + tmpfld2d(i,j,bi,bj) - salt(i,j,1,bi,bj) = salt(i,j,1,bi,bj) - & + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_AUTODIFF -#ifdef ALLOW_DIFFKR_CONTROL -c-- diffkr. - il=ilnblnk( xx_diffkr_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_diffkr_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_diffkr_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -#endif -#endif - -#ifdef ALLOW_AUTODIFF -#ifdef ALLOW_KAPGM_CONTROL -c-- kapgm. - il=ilnblnk( xx_kapgm_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_kapgm_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_kapgm_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - kapGM(i,j,k,bi,bj) = kapGM(i,j,k,bi,bj) + - & xx_kapgm(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) -#else - kapGM(i,j,k,bi,bj) = kapGM(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) -#endif - enddo - enddo - enddo - enddo - enddo -#endif -#endif - -#ifdef ALLOW_AUTODIFF -#ifdef ALLOW_KAPREDI_CONTROL -c-- kapredi. - il=ilnblnk( xx_kapredi_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_kapredi_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_kapredi_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - kapRedi(i,j,k,bi,bj) = kapRedi(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -#endif -#endif - -#ifdef ALLOW_EFLUXY0_CONTROL -c-- y-component EP-flux field. - il=ilnblnk( xx_efluxy_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_efluxy_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_efluxy_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - EfluxY(i,j,k,bi,bj) = EfluxY(i,j,k,bi,bj) - & - fac*tmpfld3d(i,j,k,bi,bj) - & *maskS(i,j,k,bi,bj) -cph EfluxY(i,j,k,bi,bj) = EfluxY(i,j,k,bi,bj) -cph & - rSphere*cosFacU(J,bi,bj) -cph & *fac*tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_EFLUXP0_CONTROL -c-- p-component EP-flux field. - il=ilnblnk( xx_efluxp_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_efluxp_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_efluxp_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - EfluxP(i,j,k,bi,bj) = EfluxP(i,j,k,bi,bj) - & + fCori(i,j,bi,bj) - & *fac*tmpfld3d(i,j,k,bi,bj) - & *hFacV(i,j,k,bi,bj) -cph EfluxP(i,j,k,bi,bj) = EfluxP(i,j,k,bi,bj) -cph & + fCori(i,j,bi,bj) -cph & *rSphere*cosFacU(J,bi,bj) -cph & *fac*tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_BOTTOMDRAG_CONTROL_NONGENERIC -c-- bottom drag - il=ilnblnk( xx_bottomdrag_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_bottomdrag_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_bottomdrag_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - bottomDragFld(i,j,bi,bj) = bottomDragFld(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_EDDYPSI_CONTROL -c-- zonal eddy streamfunction : eddyPsiX - il=ilnblnk( xx_edtaux_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_edtaux_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_edtaux_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - eddyPsiX(i,j,k,bi,bj) = eddyPsiX(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -c-- meridional eddy streamfunction : eddyPsiY - il=ilnblnk( xx_edtauy_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_edtauy_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_edtauy_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - eddyPsiY(i,j,k,bi,bj) = eddyPsiY(i,j,k,bi,bj) + - & tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_UVEL0_CONTROL -c-- initial zonal velocity - il=ilnblnk( xx_uvel_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_uvel_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_uvel_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) + - & fac*xx_uvel(i,j,k,bi,bj) -#else - uVel(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) + - & fac*tmpfld3d(i,j,k,bi,bj) -#endif - enddo - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_VVEL0_CONTROL -c-- initial merid. velocity - il=ilnblnk( xx_vvel_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_vvel_file(1:il),'.',optimcycle - call active_read_xyz( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_vvel_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) + - & fac*xx_vvel(i,j,k,bi,bj) -#else - vVel(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) + - & fac*tmpfld3d(i,j,k,bi,bj) -#endif - enddo - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_ETAN0_CONTROL -c-- initial Eta. - il=ilnblnk( xx_etan_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_etan_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_etan_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - etaN(i,j,bi,bj) = etaN(i,j,bi,bj) + - & fac*xx_etan(i,j,bi,bj) -#else - etaN(i,j,bi,bj) = etaN(i,j,bi,bj) + - & fac*tmpfld2d(i,j,bi,bj) - etaH(i,j,bi,bj) = etaH(i,j,bi,bj) + - & fac*tmpfld2d(i,j,bi,bj) -#endif - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_RELAXSST_CONTROL -c-- SST relaxation coefficient. - il=ilnblnk( xx_relaxsst_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_relaxsst_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_relaxsst_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - lambdaThetaClimRelax(i,j,bi,bj) = - & lambdaThetaClimRelax(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_RELAXSSS_CONTROL -c-- SSS relaxation coefficient. - il=ilnblnk( xx_relaxsss_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_relaxsss_file(1:il),'.',optimcycle - call active_read_xy ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_relaxsss_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - lambdaSaltClimRelax(i,j,bi,bj) = - & lambdaSaltClimRelax(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -c-- Update the tile edges. - -#if (defined (ALLOW_THETA0_CONTROL) || defined (ALLOW_SST0_CONTROL)) - _EXCH_XYZ_RL( theta, mythid ) -#endif -#if (defined (ALLOW_SALT0_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - _EXCH_XYZ_RL( salt, mythid ) -#endif -#ifdef ALLOW_TR10_CONTROL -#ifdef ALLOW_PTRACERS - _EXCH_XYZ_RL(pTracer(1-Olx,1-Oly,1,1,1,1),myThid) -#endif -#endif - -#ifdef ALLOW_AUTODIFF -# ifdef ALLOW_DIFFKR_CONTROL - _EXCH_XYZ_RL( diffKr, mythid) -# endif -# ifdef ALLOW_KAPGM_CONTROL - _EXCH_XYZ_RL( kapGM, mythid) -# endif -# ifdef ALLOW_KAPREDI_CONTROL - _EXCH_XYZ_RL( kapRedi, mythid) -# endif -#endif - -#ifdef ALLOW_EFLUXY0_CONTROL - _EXCH_XYZ_RL( EfluxY, mythid ) -#endif -#ifdef ALLOW_EFLUXP0_CONTROL - _EXCH_XYZ_RL( EfluxP, mythid ) -#endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - _EXCH_XY_RL( bottomDragFld, mythid ) -#endif - -#ifdef ALLOW_EDDYPSI_CONTROL - CALL EXCH_UV_XYZ_RS(eddyPsiX,eddyPsiY,.TRUE.,myThid) -#endif - -#ifdef ALLOW_UVEL0_CONTROL - _EXCH_XYZ_RL( uVel, mythid) -#endif - -#ifdef ALLOW_VVEL0_CONTROL - _EXCH_XYZ_RL( vVel, mythid) -#endif - -#ifdef ALLOW_ETAN0_CONTROL - _EXCH_XY_RL( etaN, mythid ) - _EXCH_XY_RL( etaH, mythid ) -#endif - -#ifdef ALLOW_RELAXSST_CONTROL - _EXCH_XY_RS( lambdaThetaClimRelax, mythid ) -#endif - -#ifdef ALLOW_RELAXSSS_CONTROL - _EXCH_XY_RS( lambdaThetaClimRelax, mythid ) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - - RETURN - END diff --git a/pkg/ctrl/ctrl_map_ini_ecco.F b/pkg/ctrl/ctrl_map_ini_ecco.F deleted file mode 100644 index 24b21cf97c..0000000000 --- a/pkg/ctrl/ctrl_map_ini_ecco.F +++ /dev/null @@ -1,308 +0,0 @@ -#include "CTRL_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif - - subroutine ctrl_map_ini_ecco( mythid ) - -c ================================================================== -c SUBROUTINE ctrl_map_ini_ecco -c ================================================================== -c -c o Add the temperature and salinity etc. parts of the control vector to -c the model state and params and update the tile edges. -c o The control vector is defined in the header file "ctrl.h". -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c -c changed: Christian Eckert eckert@mit.edu 23-Feb-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c o rewritten: Gael Forget gforget@mit.edu 09-Feb-2008 -c - Introduce a generic routine (ctrl_map_ini_gen.F) -c handling individual ctrl vector terms -c -c ================================================================== -c SUBROUTINE ctrl_map_ini_ecco -c ================================================================== - - implicit none - -#ifdef ECCO_CTRL_DEPRECATED -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "CTRL_FIELDS.h" -# include "CTRL_GENARR.h" -# include "ctrl_dummy.h" -# include "optim.h" -#endif -#ifdef ALLOW_ECCO -# include "ecco_cost.h" -#endif -#endif /* ECCO_CTRL_DEPRECATED */ - -c == routine arguments == - - integer mythid - -#ifdef ECCO_CTRL_DEPRECATED -#ifdef ALLOW_ECCO -c == local variables == - - _RL fac - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - _RL boundsVec(5) - integer paramSmooth - - logical doglobalread - logical ladinit - - character*( 80) fnamegeneric - character*(MAX_LEN_FNAM) suff - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - -c-- only do interior, and exchange at the end - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - fac = 1. _d 0 - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - tmpfld2d(i,j,bi,bj) = 1. - enddo - enddo - enddo - enddo - _EXCH_XY_RL( tmpfld2d, mythid) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - tmpfld3d(i,j,k,bi,bj)=1. - enddo - enddo - enddo - enddo - enddo - _EXCH_XYZ_RL( tmpfld3d, mythid) - -#ifdef ALLOW_THETA0_CONTROL -c-- Temperature field. - boundsVec(1)=-2. - boundsVec(2)=-1.9 - boundsVec(3)=39. - boundsVec(4)=40. - boundsVec(5)=5. - paramSmooth=1 - call ctrl_map_ini_gen3D(xx_theta_file, 'wthetaLev', - & xx_theta_dummy, boundsVec, theta, maskc, paramSmooth, - & mythid ) - _EXCH_XYZ_RL( theta, mythid) -#endif - -#ifdef ALLOW_SALT0_CONTROL -c-- Salinity field. - boundsVec(1)=29. - boundsVec(2)=29.5 - boundsVec(3)=40.5 - boundsVec(4)=41. - boundsVec(5)=5. - paramSmooth=1 - call ctrl_map_ini_gen3D(xx_salt_file, 'wsaltLev', - & xx_salt_dummy, boundsVec, salt, maskc, paramSmooth, - & mythid ) - _EXCH_XYZ_RL( salt, mythid) -#endif - -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - boundsVec(1)=0. - boundsVec(2)=0. - boundsVec(3)=0. - boundsVec(4)=0. - boundsVec(5)=0. - paramSmooth=0 -c-- initial zonal velocity - call ctrl_map_ini_gen3D(xx_uvel_file, 'wuvel', - & xx_uvel_dummy, boundsVec, uvel, maskw, paramSmooth, - & mythid ) -c-- initial merid. velocity - call ctrl_map_ini_gen3D(xx_vvel_file, 'wvvel', - & xx_vvel_dummy, boundsVec, vvel, masks, paramSmooth, - & mythid ) -c-- eschange UV: - CALL EXCH_UV_XYZ_RS(uvel,vvel,.TRUE.,myThid) -#endif - -#ifdef ALLOW_ETAN0_CONTROL -c-- initial Eta. - boundsVec(1)=0. - boundsVec(2)=0. - boundsVec(3)=0. - boundsVec(4)=0. - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen2D(xx_etan_file, 'wetan', - & xx_etan_dummy, boundsVec, etan, maskc, paramSmooth, - & mythid ) - _EXCH_XY_RL( etan, mythid) -#endif - -#ifdef ALLOW_RELAXSST_CONTROL -c-- SST relaxation coefficient. - boundsVec(1)=0. - boundsVec(2)=0. - boundsVec(3)=0. - boundsVec(4)=0. - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen2D(xx_relaxsst_file, 'wrelaxsst', - & xx_relaxsst_dummy, boundsVec, - & lambdaThetaClimRelax, maskc, paramSmooth, mythid ) - _EXCH_XY_RS( lambdaThetaClimRelax, mythid) -#endif - -#ifdef ALLOW_RELAXSSS_CONTROL -c-- SSS relaxation coefficient. - boundsVec(1)=0. - boundsVec(2)=0. - boundsVec(3)=0. - boundsVec(4)=0. - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen2D(xx_relaxsss_file, 'wrelaxsss', - & xx_relaxsss_dummy, boundsVec, - & lambdaSaltClimRelax, maskc, paramSmooth, mythid ) - _EXCH_XY_RS( lambdaSaltClimRelax, mythid) -#endif - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - boundsVec(1)=0. - boundsVec(2)=1. _d -4 - boundsVec(3)=0.9 _d -2 - boundsVec(4)=1. _d -2 - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen2D(xx_bottomdrag_file, 'wbottomdrag', - & xx_bottomdrag_dummy, boundsVec, bottomDragFld, maskc, - & paramSmooth, mythid ) - _EXCH_XY_RL( bottomDragFld, mythid) -#endif - -#ifdef ALLOW_EDDYPSI_CONTROL - boundsVec(1)=-0.4 - boundsVec(2)=-0.3 - boundsVec(3)=0.3 - boundsVec(4)=0.4 - boundsVec(5)=0. - paramSmooth=0 -c-- zonal eddy streamfunction : eddyPsiX - call ctrl_map_ini_gen3D(xx_edtaux_file, 'wedtauxFld', - & xx_edtaux_dummy, boundsVec, eddyPsiX, maskw, paramSmooth, - & mythid ) -c-- meridional eddy streamfunction : eddyPsiY - call ctrl_map_ini_gen3D(xx_edtauy_file, 'wedtauyFld', - & xx_edtauy_dummy, boundsVec, eddyPsiY, masks, paramSmooth, - & mythid ) -c-- exchange UV: - CALL EXCH_UV_XYZ_RS(eddyPsiX,eddyPsiY,.TRUE.,myThid) -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - boundsVec(1)=1. _d -6 - boundsVec(2)=2. _d -6 - boundsVec(3)=4. _d -4 - boundsVec(4)=5. _d -4 - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen3D(xx_diffkr_file, 'wdiffkrFld', - & xx_diffkr_dummy, boundsVec, diffKr, maskc, paramSmooth, - & mythid ) - _EXCH_XYZ_RL( diffKr, mythid ) -#endif - -#ifdef ALLOW_KAPGM_CONTROL - boundsVec(1)=1. _d 2 - boundsVec(2)=2. _d 2 - boundsVec(3)=0.9 _d 4 - boundsVec(4)=1. _d 4 - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen3D(xx_kapgm_file, 'wkapgmFld', - & xx_kapgm_dummy, boundsVec, kapGM, maskC, paramSmooth, - & mythid ) - _EXCH_XYZ_RL( kapGM, mythid ) -#endif - -#ifdef ALLOW_KAPREDI_CONTROL - boundsVec(1)=1. _d 2 - boundsVec(2)=2. _d 2 - boundsVec(3)=0.9 _d 4 - boundsVec(4)=1.0 _d 4 - boundsVec(5)=0. - paramSmooth=1 - call ctrl_map_ini_gen3D(xx_kapredi_file, 'wkaprediFld', - & xx_kapredi_dummy, boundsVec, kapRedi, maskC, paramSmooth, - & mythid ) - _EXCH_XYZ_RL( kapRedi, mythid ) -#endif - -#ifdef ALLOW_GENTIM2D_CONTROL - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do k = 1,maxCtrlTim2D - do j = 1,sNy - do i = 1,sNx - xx_gentim2d(i,j,bi,bj,k)=0. _d 0 - enddo - enddo - enddo - enddo - enddo -#endif - -#endif /* ALLOW_ECCO */ -#endif /* ECCO_CTRL_DEPRECATED */ - - return - end diff --git a/pkg/ctrl/ctrl_map_ini_gen.F b/pkg/ctrl/ctrl_map_ini_gen.F deleted file mode 100644 index a6517673ec..0000000000 --- a/pkg/ctrl/ctrl_map_ini_gen.F +++ /dev/null @@ -1,422 +0,0 @@ -#include "CTRL_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - - subroutine ctrl_map_ini_gen3D(xxFileCur, wFileCur, xxDummyCur, - & boundsVec, paramFld3d, maskFld3d, paramSmooth, mythid ) - -c ================================================================== -c SUBROUTINE ctrl_map_ini_gen3D -c ================================================================== -c -c started: Gael Forget gforget@mit.edu 8-Feb-2008 -c -c - Generetic routine for an individual 3D control term -c (to be called from ctrl_map_ini in a loop e.g.) -c -c ================================================================== -c SUBROUTINE ctrl_map_ini_gen3D -c ================================================================== - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "CTRL_GENARR.h" -# include "ctrl_dummy.h" -# include "optim.h" -#endif -#ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF */ - -c == routine arguments == - - integer mythid - character*(*) wFileCur,xxFileCur - _RL boundsVec(5),tmpMax,xxDummyCur - - _RL wFld3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xxFld3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL paramFld3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RS maskFld3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - integer paramSmooth - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - - logical doglobalread - logical ladinit - - character*( 80) fnamegeneric - _RS dummyRS(1) - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - -#ifdef ALLOW_AUTODIFF_TAMC - act3 = myThid - 1 - max3 = nTx*nTy - act4 = 0 - ikey = (act3 + 1) + act4*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) -c-- only do interior, and exchange outside - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO k = 1,nr - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xxFld3d(i,j,k,bi,bj)=0. _d 0 - wFld3d(i,j,k,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO - - CALL MDS_READ_FIELD(wFileCur,ctrlprec,.FALSE.,'RL', - & nR,1,nR,wFld3d,dummyRS,1,mythid) - _EXCH_XYZ_RL( wFld3d, mythid ) - - il=ilnblnk( xxFileCur ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.',optimcycle -#ifdef ALLOW_AUTODIFF - call active_read_xyz( fnamegeneric, xxFld3d, 1, - & doglobalread, ladinit, optimcycle, mythid, xxDummyCur ) -#else - CALL READ_REC_XYZ_RL( fnamegeneric, xxFld3d, 1, 1, myThid ) -#endif - - IF ( .NOT.ctrlSmoothCorrel3D ) THEN - -c avoid xx larger than boundsVec(5) X uncertainty - if ( boundsVec(5).GT.0. ) then - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - if ( (maskFld3d(i,j,k,bi,bj).NE.0.).AND. - & (wFld3d(i,j,k,bi,bj).GT.0.) ) then - tmpMax=boundsVec(5)/sqrt(wFld3d(i,j,k,bi,bj)) - if ( abs(xxFld3d(i,j,k,bi,bj)).GT.tmpMax ) then - xxFld3d(i,j,k,bi,bj)=sign(tmpMax,xxFld3d(i,j,k,bi,bj)) - else - xxFld3d(i,j,k,bi,bj)=xxFld3d(i,j,k,bi,bj) - endif - endif - enddo - enddo - enddo - enddo - enddo - endif - -#ifdef ALLOW_SMOOTH -# ifdef ALLOW_SMOOTH_CTRL3D - if (useSMOOTH) call smooth3D(xxFld3d,paramSmooth,mythid) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.smooth.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',nr,1,nr,xxFld3d,dummyRS,1,optimcycle,mythid) -# endif -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - paramFld3d(i,j,k,bi,bj) = paramFld3d(i,j,k,bi,bj) - & + xxFld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - - ELSE !IF ( .NOT.ctrlSmoothCorrel3D ) THEN - -#ifdef ALLOW_SMOOTH -c apply Weaver And Courtier correlation operator - if ( paramSmooth.NE.0 .AND. useSMOOTH ) then - call smooth_correl3d(xxFld3d,paramSmooth,mythid) - endif -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c scale param adjustment - if ( (maskFld3d(i,j,k,bi,bj).NE.0.) - & .AND. (wFld3d(i,j,k,bi,bj).GT.0.) ) then - xxFld3d(i,j,k,bi,bj)=xxFld3d(i,j,k,bi,bj) - & /sqrt( wFld3d(i,j,k,bi,bj) ) - else - xxFld3d(i,j,k,bi,bj)=0. - endif - paramFld3d(i,j,k,bi,bj) = paramFld3d(i,j,k,bi,bj) - & + xxFld3d(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - - ENDIF !IF ( .NOT.ctrlSmoothCorrel3D ) THEN - -c avoid param out of [boundsVec(1) boundsVec(4)] - CALL CTRL_BOUND_3D(paramFld3d,maskFld3d,boundsVec,myThid) - - IF ( ctrlSmoothCorrel3D ) THEN - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.effective.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',nr,1,nr,paramFld3d,dummyRS,1,optimcycle,mythid) - ENDIF - - RETURN - END - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - - subroutine ctrl_map_ini_gen2D(xxFileCur, wFileCur, xxDummyCur, - & boundsVec, paramFld2d, maskFld3d, paramSmooth, mythid ) - -c ================================================================== -c SUBROUTINE ctrl_map_ini_gen2D -c ================================================================== -c -c started: Gael Forget gforget@mit.edu 8-Feb-2008 -c -c - Generetic routine for an individual 2D control term -c (to be called from ctrl_map_ini in a loop e.g.) -c -c ================================================================== -c SUBROUTINE ctrl_map_ini_gen3D -c ================================================================== - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -# include "optim.h" -#endif -#ifdef ALLOW_AUTODIFF -#include "tamc.h" -#include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF */ - -c == routine arguments == - - integer mythid - character*(*) wFileCur,xxFileCur - _RL boundsVec(5),tmpMax,xxDummyCur - - _RL wFld2d(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xxFld2d(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL paramFld2d(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RS maskFld3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - integer paramSmooth - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - - logical doglobalread - logical ladinit - - character*( 80) fnamegeneric - _RS dummyRS(1) - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - -#ifdef ALLOW_AUTODIFF_TAMC - act3 = myThid - 1 - max3 = nTx*nTy - act4 = 0 - ikey = (act3 + 1) + act4*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) -c-- only do interior, and exchange outside - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xxFld2d(i,j,bi,bj)=0. _d 0 - wFld2d(i,j,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - - CALL MDS_READ_FIELD(wFileCur,ctrlprec,.FALSE.,'RL', - & 1,1,1,wFld2d,dummyRS,1,mythid) - _EXCH_XY_RL( wFld2d, mythid ) - - il=ilnblnk( xxFileCur ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.',optimcycle -#ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegeneric, xxFld2d, 1, - & doglobalread, ladinit, optimcycle, mythid, xxDummyCur ) -#else - CALL READ_REC_XY_RL( fnamegeneric, xxFld2d, 1, 1, myThid ) -#endif - - IF ( .NOT.ctrlSmoothCorrel2D ) THEN - -c avoid xx larger than boundsVec(5) X uncertainty - if ( boundsVec(5).GT.0.) then - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if ( (maskFld3d(i,j,1,bi,bj).NE.0.).AND. - & (wFld2d(i,j,bi,bj).GT.0.) ) then - tmpMax=boundsVec(5)/sqrt(wFld2d(i,j,bi,bj)) - if ( abs(xxFld2d(i,j,bi,bj)).GT.tmpMax ) then - xxFld2d(i,j,bi,bj)=sign(tmpMax,xxFld2d(i,j,bi,bj)) - else - xxFld2d(i,j,bi,bj)=xxFld2d(i,j,bi,bj) - endif - endif - enddo - enddo - enddo - enddo - endif - -#ifdef ALLOW_SMOOTH -# ifdef ALLOW_SMOOTH_CTRL2D - if (useSMOOTH) call smooth2d(xxFld2d,maskFld3d,paramSmooth,mythid) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.smooth.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,xxFld2d,dummyRS,1,optimcycle,mythid) -# endif -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - paramFld2d(i,j,bi,bj) = paramFld2d(i,j,bi,bj) - & + xxFld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo - - ELSE !IF ( .NOT.ctrlSmoothCorrel2D ) THEN - -#ifdef ALLOW_SMOOTH -c apply Weaver And Courtier correlation operator - if ( paramSmooth.NE.0 .AND. useSMOOTH ) then - call smooth_correl2d(xxFld2d,maskFld3d,paramSmooth,mythid) - endif -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c scale param adjustment - if ( (maskFld3d(i,j,1,bi,bj).NE.0.) - & .AND. (wFld2d(i,j,bi,bj).GT.0.) ) then - xxFld2d(i,j,bi,bj)=xxFld2d(i,j,bi,bj) - & /sqrt( wFld2d(i,j,bi,bj) ) - else - xxFld2d(i,j,bi,bj)=0. - endif - paramFld2d(i,j,bi,bj) = paramFld2d(i,j,bi,bj) - & + xxFld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo - - ENDIF !IF ( .NOT.ctrlSmoothCorrel2D ) THEN - - CALL CTRL_BOUND_2D(paramFld2d,maskFld3d,boundsVec,myThid) - - IF ( ctrlSmoothCorrel2D ) THEN - write(fnamegeneric(1:80),'(2a,i10.10)') - & xxFileCur(1:il),'.effective.',optimcycle - CALL MDS_WRITE_FIELD(fnamegeneric,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,paramFld2d,dummyRS,1,optimcycle,mythid) - endif - - RETURN - END diff --git a/pkg/ctrl/ctrl_map_ini_genarr.F b/pkg/ctrl/ctrl_map_ini_genarr.F index 99ca7a09cd..c89d17d93e 100644 --- a/pkg/ctrl/ctrl_map_ini_genarr.F +++ b/pkg/ctrl/ctrl_map_ini_genarr.F @@ -2,6 +2,18 @@ #ifdef ALLOW_GMREDI # include "GMREDI_OPTIONS.h" #endif +#ifdef ALLOW_SEAICE +# include "SEAICE_OPTIONS.h" +#endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif +#ifdef ALLOW_DIC +# include "DIC_OPTIONS.h" +#endif CBOP C !ROUTINE: CTRL_MAP_INI_GENARR @@ -33,66 +45,225 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) #include "ctrl_dummy.h" #include "CTRL_FIELDS.h" #include "CTRL_GENARR.h" +#ifdef ALLOW_GMREDI +# include "GMREDI.h" +#endif #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" +# include "PTRACERS_PARAMS.h" # include "PTRACERS_FIELDS.h" #endif +#ifdef ALLOW_SEAICE +# include "SEAICE_SIZE.h" +# include "SEAICE.h" +#endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +#endif +#if (defined ALLOW_DIC && defined DIC_BIOTIC) +# include "DIC_VARS.h" +#endif C !INPUT/OUTPUT PARAMETERS: C == routine arguments == INTEGER myThid +#if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK +#endif + C !LOCAL VARIABLES: C == local variables == #if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL)) - integer iarr + INTEGER iarr #endif #ifdef ALLOW_GENARR2D_CONTROL - integer igen_etan,igen_bdrag,igen_geoth + INTEGER igen_etan, igen_bdrag, igen_geoth +# ifdef ALLOW_SEAICE + INTEGER igen_siarea, igen_siheff +# endif +# ifdef ALLOW_SHELFICE + INTEGER igen_shiCoeffT, igen_shiCoeffS, igen_shiCDrag + INTEGER i, j, bi, bj +# ifdef SHI_ALLOW_GAMMAFRICT + INTEGER k2 + LOGICAL dragThermoEqualMom +# endif +# endif +#ifdef ALLOW_STREAMICE + INTEGER igen_b_glen, igen_h_streamice +# endif +# if (defined ALLOW_DIC && defined DIC_BIOTIC) + INTEGER igen_alpha +# endif #endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL - integer igen_theta0, igen_salt0 - integer igen_kapgm, igen_kapredi, igen_diffkr -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - integer igen_uvel0, igen_vvel0 -#endif + INTEGER igen_theta0, igen_salt0 + INTEGER igen_kapgm, igen_kapredi, igen_diffkr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + INTEGER igen_uvel0, igen_vvel0 +# endif +# ifdef ALLOW_PTRACERS + INTEGER iPtr, iLen + INTEGER igen_ptr(PTRACERS_num) +# endif #endif /* ALLOW_GENARR3D_CONTROL */ CEOP +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_INI_GENARR', myThid ) +#endif #ifdef ALLOW_GENARR2D_CONTROL - C-- generic 2D control variables igen_etan=0 igen_bdrag=0 igen_geoth=0 +#ifdef ALLOW_SEAICE + igen_siarea=0 + igen_siheff=0 +#endif +#ifdef ALLOW_SHELFICE + igen_shiCoeffT=0 + igen_shiCoeffS=0 + igen_shiCDrag=0 +#endif +#ifdef ALLOW_STREAMICE + igen_b_glen=0 + igen_h_streamice=0 +#endif DO iarr = 1, maxCtrlArr2D - if (xx_genarr2d_weight(iarr).NE.' ') then - if (xx_genarr2d_file(iarr)(1:7).EQ.'xx_etan') + IF (xx_genarr2d_weight(iarr).NE.' ') THEN + IF (xx_genarr2d_file(iarr)(1:7).EQ.'xx_etan') & igen_etan=iarr - if (xx_genarr2d_file(iarr)(1:13).EQ.'xx_bottomdrag') + IF (xx_genarr2d_file(iarr)(1:13).EQ.'xx_bottomdrag') & igen_bdrag=iarr - if (xx_genarr2d_file(iarr)(1:13).EQ.'xx_geothermal') + IF (xx_genarr2d_file(iarr)(1:13).EQ.'xx_geothermal') & igen_geoth=iarr - endif +#ifdef ALLOW_SEAICE + IF (xx_genarr2d_file(iarr)(1:9).EQ.'xx_siarea') + & igen_siarea=iarr + IF (xx_genarr2d_file(iarr)(1:9).EQ.'xx_siheff') + & igen_siheff=iarr +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoefft') + & igen_shiCoeffT=iarr + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoeffs') + & igen_shiCoeffS=iarr +# else + IF (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag') + & igen_shiCDrag=iarr +# endif +#endif +#ifdef ALLOW_STREAMICE + IF (xx_genarr2d_file(iarr)(1:9).EQ.'xx_b_glen') + & igen_b_glen=iarr + IF (xx_genarr2d_file(iarr)(1:14).EQ.'xx_h_streamice') + & igen_h_streamice=iarr +#endif +#if (defined ALLOW_DIC && defined DIC_BIOTIC) + IF (xx_genarr2d_file(iarr)(1:11).EQ.'xx_alpha') + & igen_alpha=iarr +#endif + ENDIF ENDDO - if (igen_etan.GT.0) then - call ctrl_map_genarr2d(etaN,igen_etan,myThid) - endif + IF (igen_etan.GT.0) THEN + CALL CTRL_MAP_GENARR2D( etaN, igen_etan, myThid ) + ENDIF #ifdef ALLOW_BOTTOMDRAG_CONTROL - if (igen_bdrag.GT.0) - & call ctrl_map_genarr2d(bottomDragFld,igen_bdrag,myThid) + IF (igen_bdrag.GT.0) + & CALL CTRL_MAP_GENARR2D( bottomDragFld, igen_bdrag, myThid ) #endif #ifdef ALLOW_GEOTHERMAL_FLUX - if (igen_geoth.GT.0) - & call ctrl_map_genarr2d(geothermalFlux,igen_geoth,myThid) + IF (igen_geoth.GT.0) + & CALL CTRL_MAP_GENARR2D( geothermalFlux, igen_geoth, myThid ) +#endif + +#ifdef ALLOW_SEAICE + IF (igen_siarea.GT.0) + & CALL CTRL_MAP_GENARR2D(AREA,igen_siarea,myThid) + IF (igen_siheff.GT.0) + & CALL CTRL_MAP_GENARR2D(HEFF,igen_siheff,myThid) +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (igen_shiCoeffT.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffT,igen_shiCoeffT,myThid) + + IF (igen_shiCoeffS.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffS,igen_shiCoeffS,myThid) + +C-- xx_shiCoeffS not used, but shiCoeffT is adjusted by xx_shicoefft + IF ((igen_shiCoeffS.EQ.0).AND.(igen_shiCoeffT.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffS(i,j,bi,bj) = + & SHELFICEsaltToHeatRatio*shiTransCoeffT(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C-- xx_shiCoeffT not used, but shiCoeffS is adjusted by xx_shicoeffs + ELSEIF ((igen_shiCoeffT.EQ.0).AND.(igen_shiCoeffS.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffT(i,j,bi,bj) = + & shiTransCoeffS(i,j,bi,bj)/SHELFICEsaltToHeatRatio + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# else /* SHI_ALLOW_GAMMAFRICT */ + dragThermoEqualMom = .FALSE. + IF (igen_shiCDrag.GT.0) THEN + CALL CTRL_MAP_GENARR2D(shiCDragFld,igen_shiCDrag,myThid) +C-- Set drag coefficient used in momentum equal to thermodynamic, +C-- u* drag coefficient + DO k2 = 1, maxCtrlProc + IF (xx_genarr2d_preproc_c(k2,igen_shiCDrag)(1:3).EQ.'mom') + & dragThermoEqualMom = .TRUE. + ENDDO + ENDIF + IF (dragThermoEqualMom) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiDragQuadFld(i,j,bi,bj) = shiCDragFld(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# endif /* SHI_ALLOW_GAMMAFRICT */ +#endif /* ALLOW_SHELFICE */ +#ifdef ALLOW_STREAMICE + IF (igen_b_glen.GT.0) + & CALL CTRL_MAP_GENARR2D( B_glen, igen_b_glen, myThid ) + IF (igen_h_streamice.GT.0) + & CALL CTRL_MAP_GENARR2D( H_streamice, igen_h_streamice, myThid ) +#endif /* ALLOW_STREAMICE */ +#if (defined ALLOW_DIC && defined DIC_BIOTIC) + IF (igen_alpha.GT.0) + & CALL CTRL_MAP_GENARR2D( alpha, igen_alpha, myThid ) #endif #endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL - C-- generic 3D control variables igen_theta0=0 @@ -100,395 +271,87 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) igen_kapgm=0 igen_kapredi=0 igen_diffkr=0 -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) igen_uvel0=0 igen_vvel0=0 -#endif +# endif +# ifdef ALLOW_PTRACERS + DO iPtr = 1, PTRACERS_num + igen_ptr(iPtr) = 0 + ENDDO +# endif /* ALLOW_PTRACERS */ DO iarr = 1, maxCtrlArr3D - if (xx_genarr3d_weight(iarr).NE.' ') then - if (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') + IF (xx_genarr3d_weight(iarr).NE.' ') THEN + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') & igen_theta0=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') & igen_salt0=iarr - if (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') & igen_kapgm=iarr - if (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') + IF (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') & igen_kapredi=iarr - if (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') + IF (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') & igen_diffkr=iarr -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') & igen_uvel0=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') & igen_vvel0=iarr -#endif - endif - ENDDO - - if (igen_theta0.GT.0) - & call ctrl_map_genarr3d(theta,igen_theta0,myThid) - if (igen_salt0.GT.0) - & call ctrl_map_genarr3d(salt,igen_salt0,myThid) -#ifdef ALLOW_KAPGM_CONTROL - if (igen_kapgm.GT.0) - & call ctrl_map_genarr3d(kapgm,igen_kapgm,myThid) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - if (igen_kapredi.GT.0) - & call ctrl_map_genarr3d(kapredi,igen_kapredi,myThid) -#endif -#ifdef ALLOW_3D_DIFFKR - if (igen_diffkr.GT.0) - & call ctrl_map_genarr3d(diffkr,igen_diffkr,myThid) -#endif -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if (igen_uvel0.GT.0 .and. igen_vvel0.GT.0) then - call ctrl_map_genarr3d(uvel,igen_uvel0,myThid) - call ctrl_map_genarr3d(vvel,igen_vvel0,myThid) - CALL EXCH_UV_XYZ_RL(uvel,vvel,.TRUE.,myThid) - endif -#endif - -#endif /* ALLOW_GENARR3D_CONTROL */ - - RETURN - END - -C--------------------------- - -C !ROUTINE: CTRL_MAP_GENARR2D -C !INTERFACE: - SUBROUTINE CTRL_MAP_GENARR2D( fld, iarr, myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_GENARR2D -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - _RL fld (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - INTEGER iarr - INTEGER myThid - -#ifdef ALLOW_GENARR2D_CONTROL - -C !LOCAL VARIABLES: -C == local variables == - integer bi,bj - integer i,j - integer jmin,jmax - integer imin,imax - integer numsmo, k2 - logical dowc01 - logical dosmooth - logical doscaling - _RL xx_gen (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RS dummyRS(1) - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamebase - INTEGER ILNBLNK - EXTERNAL ILNBLNK - integer ilgen - logical doglobalread - logical ladinit -CEOP - -c-- Now, read the control vector. - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xx_gen(i,j,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO +# endif +# ifdef ALLOW_PTRACERS + IF ( usePTRACERS ) THEN + iLen = ILNBLNK(xx_genarr3d_file(iarr)) + IF ( iLen.EQ.7 .AND. + & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN + READ(xx_genarr3d_file(iarr)(7:7),*) iPtr + IF ( iPtr.GE.1 .AND. iPtr.LE.PTRACERS_numInUse ) + & igen_ptr(iPtr) = iarr + ENDIF + ENDIF +# endif /* ALLOW_PTRACERS */ + ENDIF ENDDO - dosmooth=.false. - dowc01 = .false. - doscaling=.true. - - numsmo=1 - do k2 = 1, maxCtrlProc - if (xx_genarr2d_preproc(k2,iarr).EQ.'WC01') then - dowc01=.TRUE. - if (xx_genarr2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr2d_preproc_i(k2,iarr) - endif - if ((.NOT.dowc01).AND. - & (xx_genarr2d_preproc(k2,iarr).EQ.'smooth')) then - dosmooth=.TRUE. - if (xx_genarr2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr2d_preproc_i(k2,iarr) - endif - if (xx_genarr2d_preproc(k2,iarr).EQ.'noscaling') then - doscaling=.FALSE. - endif - enddo - - fnamebase = xx_genarr2d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - - CALL MDS_READ_FIELD(xx_genarr2d_weight(iarr),ctrlprec,.FALSE., - & 'RL',1,1,1,wgenarr2d(1-Olx,1-Oly,1,1,iarr),dummyRS,1,mythid) - -#ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegenIn, xx_gen, 1, doglobalread, - & ladinit, optimcycle, mythid, xx_genarr2d_dummy(iarr) ) -#else - CALL READ_REC_XY_RL( fnamegenIn, xx_gen, 1, 1, myThid) -#endif - -#ifdef ALLOW_SMOOTH - IF (useSMOOTH) THEN - IF (dowc01) call smooth_correl2d(xx_gen,maskC,numsmo,mythid) - IF (dosmooth) call smooth2d(xx_gen,maskC,numsmo,mythid) - ENDIF -#endif - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx -c scale param adjustment - if ( (maskC(i,j,1,bi,bj).NE.0.).AND. - & (wgenarr2d(i,j,bi,bj,iarr).GT.0.) ) then - IF (doscaling) then - xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) - & /sqrt( wgenarr2d(i,j,bi,bj,iarr) ) - ENDIF - else - xx_gen(i,j,bi,bj)=0. - endif -c add to model parameter - fld(i,j,bi,bj)=fld(i,j,bi,bj)+xx_gen(i,j,bi,bj) - enddo - enddo - enddo - enddo - -c avoid param out of [boundsVec(1) boundsVec(4)] - CALL CTRL_BOUND_2D(fld,maskC,xx_genarr2d_bounds(1,iarr),myThid) - - CALL EXCH_XY_RL( fld, mythid ) - - CALL MDS_WRITE_FIELD(fnamegenOut,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,fld,dummyRS,1,optimcycle,mythid) - -#endif /* ALLOW_GENARR2D_CONTROL */ - - RETURN - END - -C--------------------------- - -C !ROUTINE: CTRL_MAP_GENARR3D -C !INTERFACE: - SUBROUTINE CTRL_MAP_GENARR3D( fld, iarr, myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_GENARR3D -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - _RL fld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - INTEGER iarr - INTEGER myThid - -#ifdef ALLOW_GENARR3D_CONTROL - -C !LOCAL VARIABLES: -C == local variables == - integer bi,bj - integer i,j,k - integer numsmo,k2 - logical dowc01 - logical dosmooth - logical doscaling - _RL xx_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RS dummyRS(1) - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamebase - INTEGER ILNBLNK - EXTERNAL ILNBLNK - integer ilgen - logical doglobalread - logical ladinit -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - _RL localmask (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif -CEOP - -c-- Now, read the control vector. - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO k = 1,nr - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xx_gen(i,j,k,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO + IF (igen_theta0.GT.0) + & CALL CTRL_MAP_GENARR3D( theta, igen_theta0, myThid ) + IF (igen_salt0.GT.0) + & CALL CTRL_MAP_GENARR3D( salt, igen_salt0, myThid ) +# if ( defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM ) + IF (igen_kapgm.GT.0) + & CALL CTRL_MAP_GENARR3D( GM_inpK3dGM, igen_kapgm, myThid ) +# endif +# if ( defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI ) + IF (igen_kapredi.GT.0) + & CALL CTRL_MAP_GENARR3D( GM_inpK3dRedi, igen_kapredi, myThid ) +# endif +# if ( defined ALLOW_DIFFKR_CONTROL && defined ALLOW_3D_DIFFKR ) + IF (igen_diffkr.GT.0) + & CALL CTRL_MAP_GENARR3D( diffKr, igen_diffkr, myThid ) +# endif + +# ifdef ALLOW_PTRACERS +CADJ loop = parallel + DO iPtr = 1, PTRACERS_num + IF ( igen_ptr(iPtr).GT.0 ) THEN + CALL CTRL_MAP_GENARR3D( pTracer(1-OLx,1-OLy,1,1,1,iPtr), + & igen_ptr(iPtr), myThid ) + ENDIF ENDDO +# endif /* ALLOW_PTRACERS */ - dosmooth=.false. - dowc01 = .false. - doscaling=.true. - - numsmo=1 - do k2 = 1, maxCtrlProc - if (xx_genarr3d_preproc(k2,iarr).EQ.'WC01') then - dowc01=.TRUE. - if (xx_genarr3d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr3d_preproc_i(k2,iarr) - endif - if ((.NOT.dowc01).AND. - & (xx_genarr3d_preproc(k2,iarr).EQ.'smooth')) then - dosmooth=.TRUE. - if (xx_genarr3d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr3d_preproc_i(k2,iarr) - endif - if (xx_genarr3d_preproc(k2,iarr).EQ.'noscaling') then - doscaling=.FALSE. - endif - enddo - - fnamebase = xx_genarr3d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - - CALL MDS_READ_FIELD(xx_genarr3d_weight(iarr),ctrlprec,.FALSE., - & 'RL',nR,1,nR,wgenarr3d(1-Olx,1-Oly,1,1,1,iarr),dummyRS,1,mythid) - -#ifdef ALLOW_AUTODIFF - call active_read_xyz( fnamegenIn, xx_gen, 1, doglobalread, - & ladinit, optimcycle, mythid, xx_genarr3d_dummy(iarr) ) -#else - CALL READ_REC_XYZ_RL( fnamegenIn, xx_gen, 1, 1, myThid) -#endif - -#ifdef ALLOW_SMOOTH - IF (useSMOOTH) THEN - IF (dowc01) call smooth_correl3d(xx_gen,numsmo,mythid) - IF (dosmooth) call smooth3d(xx_gen,numsmo,mythid) +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (igen_uvel0.GT.0 .AND. igen_vvel0.GT.0) THEN + CALL CTRL_MAP_GENARR3D( uVel, igen_uvel0, myThid ) + CALL CTRL_MAP_GENARR3D( vVel, igen_vvel0, myThid ) + CALL EXCH_UV_XYZ_RL( uVel, vVel, .TRUE., myThid ) ENDIF -#endif +# endif -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) -c-- set local mask - call ecco_zero(localmask,Nr,zeroRL,myThid) - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') then - call ecco_cprsrl(maskW,nr,localmask,nr,myThid) - else if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') then - call ecco_cprsrl(maskS,nr,localmask,nr,myThid) - else - call ecco_cprsrl(maskC,nr,localmask,nr,myThid) - endif -#endif - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,nr - DO j = 1,sNy - DO i = 1,sNx -c scale param adjustment -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if ( (localmask(i,j,k,bi,bj).NE.0.).AND. -#else - if ( (maskC(i,j,k,bi,bj).NE.0.).AND. -#endif - & (wgenarr3d(i,j,k,bi,bj,iarr).GT.0.) ) then - IF (doscaling) then - xx_gen(i,j,k,bi,bj)=xx_gen(i,j,k,bi,bj) - & /sqrt( wgenarr3d(i,j,k,bi,bj,iarr) ) - ENDIF - else - xx_gen(i,j,k,bi,bj)=0. - endif -c add to model parameter - fld(i,j,k,bi,bj)=fld(i,j,k,bi,bj)+xx_gen(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo +#endif /* ALLOW_GENARR3D_CONTROL */ -c avoid param out of [boundsVec(1) boundsVec(4)] -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - CALL CTRL_BOUND_3D(fld,localmask, - & xx_genarr3d_bounds(1,iarr),myThid) -#else - CALL CTRL_BOUND_3D(fld,maskC,xx_genarr3d_bounds(1,iarr),myThid) +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_INI_GENARR', myThid ) #endif -C The tile exchange for xx_uvel and xx_vvel will be -C done in CTRL_MAP_INI_GENARR.F when both -C xx_uvel and xx_vvel are read in. - if (xx_genarr3d_file(iarr)(1:7).NE.'xx_uvel'.AND. - & xx_genarr3d_file(iarr)(1:7).NE.'xx_vvel') - & CALL EXCH_XYZ_RL( fld, mythid ) - - CALL MDS_WRITE_FIELD(fnamegenOut,ctrlprec,.FALSE.,.FALSE., - & 'RL',nr,1,nr,fld,dummyRS,1,optimcycle,mythid) - -#endif /* ALLOW_GENARR3D_CONTROL */ - RETURN END diff --git a/pkg/ctrl/ctrl_map_ini_gentim2d.F b/pkg/ctrl/ctrl_map_ini_gentim2d.F index 0d54bab661..ccbfbae2d7 100644 --- a/pkg/ctrl/ctrl_map_ini_gentim2d.F +++ b/pkg/ctrl/ctrl_map_ini_gentim2d.F @@ -9,10 +9,10 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) C !DESCRIPTION: \bv -C *================================================================= +C *================================================================ C | SUBROUTINE CTRL_MAP_INI_GENTIM2D C | Dimensionalize and preprocess time variable controls. -C *================================================================= +C *================================================================ C \ev C !USES: @@ -34,8 +34,8 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) # include "PTRACERS_SIZE.h" # include "PTRACERS_FIELDS.h" #endif -#ifdef ALLOW_AUTODIFF -#include "tamc.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -43,18 +43,25 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) INTEGER myThid #ifdef ALLOW_GENTIM2D_CONTROL +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + C !LOCAL VARIABLES: C == local variables == integer iarr integer numsmo - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamegenTmp - character*(80) fnamebase +C Tapenade requires these 4 variables to be declared as arrays of +C size maxCtrlTim2D. If declared as scalars, it does not store their +C temporary values in the do loop during reverse pass. + character*(MAX_LEN_FNAM) fnamegenIn(1:maxCtrlTim2D) + character*(MAX_LEN_FNAM) fnamegenOut(1:maxCtrlTim2D) + character*(MAX_LEN_FNAM) fnamegenTmp(1:maxCtrlTim2D) + character*(MAX_LEN_FNAM) fnamebase(1:maxCtrlTim2D) integer startrec integer endrec integer diffrec - integer irec, jrec, krec + integer iRec, jrec, kRec, lRec integer replicated_nrec integer replicated_ntimes logical doglobalread @@ -62,29 +69,38 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) logical dowc01 logical dosmooth logical doscaling - _RL xx_gen(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RS dummyRS(1) + _RL xx_gen(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ALLOW_ECCO - _RL xx_gen_tmp(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL xx_gen_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) integer nyearsINT - _RL nyearsRL + _RL recip_nyearsRL #endif integer bi,bj integer i,j,k2 - INTEGER ILNBLNK - EXTERNAL ILNBLNK integer ilgen + integer ilDir CEOP -c-- Now, read the control vector. +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ + +C-- Now, read the control vector. doglobalread = .false. ladinit = .false. +C Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy,sNy+OLy DO i = 1-OLx,sNx+OLx xx_gen(i,j,bi,bj)=0. _d 0 +#ifdef ALLOW_ECCO + xx_gen_tmp(i,j,bi,bj)=0. _d 0 +#endif ENDDO ENDDO ENDDO @@ -101,8 +117,9 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) if (xx_gentim2d_weight(iarr).NE.' ') then #endif - fnamebase = xx_gentim2d_file(iarr) - call ctrl_init_rec ( fnamebase, + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase(iarr) = xx_gentim2d_file(iarr)(1:ilgen) + call ctrl_init_rec ( fnamebase(iarr), I xx_gentim2d_startdate1(iarr), I xx_gentim2d_startdate2(iarr), I xx_gentim2d_period(iarr), @@ -111,207 +128,317 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) O diffrec, startrec, endrec, I myThid ) +C From CTRL_INIT_REC one gets [start,end,diff]rec. +C Below, file xx_*.$iter.data is read in from records startrec to endrec, +C followed by a write to file xx_*.effective.$iter.data of record 1 to diffrec +C (see TAF-generated S/R ctrl_map_ini_gentim2dmd). + +#ifdef ALLOW_CTRL_DEBUG +C Note: In the "md" (i.e. TAF modified) version of this fwd S/R, DEBUG calls and +C print statements are removed. See "Automatic Differentiation" chap. in the doc + write(*,*) 'AA: iarr,xx_gentim2d_startdate(1,iarr): ', + & iarr,xx_gentim2d_startdate(1,iarr) +#endif dosmooth=.false. dowc01 = .false. doscaling=.true. numsmo=1 do k2 = 1, maxCtrlProc - if (xx_gentim2d_preproc(k2,iarr).EQ.'WC01') then - dowc01=.TRUE. - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_gentim2d_preproc_i(k2,iarr) - endif - if ((.NOT.dowc01).AND. + if (xx_gentim2d_preproc(k2,iarr).EQ.'WC01') then + dowc01=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if ((.NOT.dowc01).AND. & (xx_gentim2d_preproc(k2,iarr).EQ.'smooth')) then - dosmooth=.TRUE. - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_gentim2d_preproc_i(k2,iarr) - endif - if (xx_gentim2d_preproc(k2,iarr).EQ.'noscaling') then - doscaling=.FALSE. - endif + dosmooth=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if (xx_gentim2d_preproc(k2,iarr).EQ.'noscaling') then + doscaling=.FALSE. + endif enddo - fnamebase = xx_gentim2d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - write(fnamegenTmp(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.tmp.',optimcycle + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase(iarr) = xx_gentim2d_file(iarr)(1:ilgen) + write(fnamegenIn(iarr),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(iarr)(1:ilgen),'.',optimcycle + write(fnamegenOut(iarr),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(iarr)(1:ilgen), + & '.effective.',optimcycle + write(fnamegenTmp(iarr),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(iarr)(1:ilgen),'.tmp.',optimcycle -c-- docycle +C-- docycle replicated_nrec=diffrec replicated_ntimes=0 do k2 = 1, maxCtrlProc if (xx_gentim2d_preproc(k2,iarr).EQ.'docycle') then - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then - replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) - replicated_ntimes= - & int(float(diffrec)/float(replicated_nrec)) - if (replicated_ntimes*replicated_nrec.LT.diffrec) - & replicated_ntimes=replicated_ntimes+1 - if (replicated_ntimes*replicated_nrec.GT.diffrec) - & replicated_ntimes=replicated_ntimes-1 - endif + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif endif enddo +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AD:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec, endrec, diffrec, + & replicated_nrec,replicated_ntimes +#endif DO jrec = 1, replicated_ntimes+1 - DO irec = 1, replicated_nrec -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=replicated_nrec*(jrec-1)+iRec + lRec=startrec+iRec-1 + IF (kRec.LE.endrec) THEN +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenIn(iarr) ) + write(*,*) 'AE: iarr,[i,j,k,l]rec: ',iarr,iRec,jrec,lRec + write(*,*) 'AF: fnamegenIn: ', fnamegenIn(iarr)(1:ilgen) #endif - krec=replicated_nrec*(jrec-1)+irec - IF (krec.LE.endrec) THEN +C fnamegenIn is xx_*.$iter.data, so the required access records starts at +C startrec+iRec-1 instead of iRec in the read call below. In adjoint mode, S/R +C ADACTIVE_READ_XY reads adxx_*.$iter.data in reverse order, with required +C access from endrec back to startrec. This requires creating adxx_*.$iter.data +C file of size endrec, with valid gradients from records startrec to endrec +C but all zeros from 1 to startrec-1. See documentation: +C https://mitgcm.readthedocs.io/en/latest/ocean_state_est/ocean_state_est.html#ctrl-model-parameter-adjustment-capability #ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegenIn, xx_gen, irec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_READ_XY( fnamegenIn(iarr), xx_gen, lRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) #else - CALL READ_REC_XY_RL( fnamegenIn, xx_gen, iRec, 1, myThid ) + CALL READ_REC_XY_RL( fnamegenIn(iarr), xx_gen, lRec, + & 1, myThid ) #endif +C Here, we write record kRec (from 1 to diffrec) to file xx_*.effective.$iter #ifdef ALLOW_AUTODIFF - call active_write_xy( fnamegenOut, xx_gen, krec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut(iarr) ) + write(*,*) 'AG: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + write(*,*) 'AH: fnamegenOut: ', fnamegenOut(iarr)(1:ilgen) +#endif + CALL ACTIVE_WRITE_XY( fnamegenOut(iarr), xx_gen, kRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) #else - CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) + CALL WRITE_REC_XY_RL( fnamegenOut(iarr), xx_gen, kRec, + & 1 , myThid ) #endif - ENDIF - ENDDO + ENDIF + ENDDO ENDDO -c-- rmcycle +C-- rmcycle #ifdef ALLOW_ECCO - replicated_nrec=endrec + replicated_nrec=diffrec replicated_ntimes=0 do k2 = 1, maxCtrlProc if (xx_gentim2d_preproc(k2,iarr).EQ.'rmcycle') then - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then - replicated_nrec=min(endrec,xx_gentim2d_preproc_i(k2,iarr)) - replicated_ntimes= - & int(float(endrec)/float(replicated_nrec)) - if (replicated_ntimes*replicated_nrec.LT.endrec) - & replicated_ntimes=replicated_ntimes+1 - if (replicated_ntimes*replicated_nrec.GT.endrec) - & replicated_ntimes=replicated_ntimes-1 - endif + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif endif enddo -c print*,'endrec',endrec,replicated_ntimes,replicated_nrec +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AI:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec,endrec,diffrec,replicated_nrec,replicated_ntimes +#endif IF (replicated_ntimes.GT.0) THEN -c create cyclic average +C create cyclic average - nyearsINT=1+int((endrec-replicated_nrec)/replicated_nrec) - nyearsRL=float(nyearsINT) + nyearsINT=1+int((diffrec-replicated_nrec)/replicated_nrec) + recip_nyearsRL=1. _d 0/float(nyearsINT) -c print*,'nyearsINT',nyearsINT,nyearsRL +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AJ: nyears[INT,RL]: ',nyearsINT,recip_nyearsRL +#endif - DO irec = 1, replicated_nrec + DO iRec = 1, replicated_nrec - call ecco_zero(xx_gen,1,zeroRL,myThid) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gen(i,j,bi,bj) = zeroRL + ENDDO + ENDDO + ENDDO + ENDDO - do jrec=1,nyearsINT -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte + DO jrec=1,nyearsINT +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=iRec+(jrec-1)*replicated_nrec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AK: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut(iarr) ) + write(*,*) 'AL: fnamegenOut: ',fnamegenOut(iarr)(1:ilgen) #endif - krec=irec+(jrec-1)*replicated_nrec #ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegenOut, xx_gen_tmp, krec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_READ_XY( fnamegenOut(iarr), xx_gen_tmp, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) #else - CALL READ_REC_XY_RL( fnamegenOut, xx_gen_tmp, krec, - & 1, myThid ) + CALL READ_REC_XY_RL( fnamegenOut(iarr), xx_gen_tmp, kRec, + & 1, myThid ) #endif - call ecco_add(xx_gen_tmp,1,xx_gen,1,myThid) - enddo + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) + & +xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C end jrec + ENDDO - call ecco_div(xx_gen,1,nyearsRL,myThid) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) * recip_nyearsRL + ENDDO + ENDDO + ENDDO + ENDDO -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte #endif #ifdef ALLOW_AUTODIFF - call active_write_xy( fnamegenTmp, xx_gen, iRec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_WRITE_XY( fnamegenTmp(iarr), xx_gen, iRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) #else - CALL WRITE_REC_XY_RL( fnamegenTmp, xx_gen, iRec, 1, myThid ) + CALL WRITE_REC_XY_RL( fnamegenTmp(iarr), xx_gen, iRec, + & 1, myThid ) #endif - ENDDO + ENDDO -c subtract cyclic average - DO jrec = 1, replicated_ntimes+1 - DO irec = 1, replicated_nrec -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte +C subtract cyclic average + DO jrec = 1, replicated_ntimes+1 + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte #endif - krec=replicated_nrec*(jrec-1)+irec - IF (krec.LE.endrec) THEN + kRec=replicated_nrec*(jrec-1)+iRec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AM: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut(iarr) ) + write(*,*) 'AN: fnamegenOut: ',fnamegenOut(iarr)(1:ilgen) +#endif + IF (kRec.LE.diffrec) THEN #ifdef ALLOW_AUTODIFF - CALL active_read_xy( fnamegenOut, xx_gen, kRec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_READ_XY( fnamegenOut(iarr), xx_gen, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) #else - CALL READ_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) + CALL READ_REC_XY_RL( fnamegenOut(iarr), xx_gen, kRec, + & 1, myThid ) #endif #ifdef ALLOW_AUTODIFF - CALL active_read_xy( fnamegenTmp, xx_gen_tmp, iRec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_READ_XY( fnamegenTmp(iarr), xx_gen_tmp, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) #else - CALL READ_REC_XY_RL( fnamegenTmp, xx_gen_tmp, iRec, 1, myThid ) + CALL READ_REC_XY_RL( fnamegenTmp(iarr), xx_gen_tmp, iRec, + & 1, myThid ) #endif - CALL ecco_subtract(xx_gen_tmp,1,xx_gen,1,myThid) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & -xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO #ifdef ALLOW_AUTODIFF - CALL active_write_xy( fnamegenOut, xx_gen, kRec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_WRITE_XY( fnamegenOut(iarr), xx_gen, kRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) #else - CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) + CALL WRITE_REC_XY_RL( fnamegenOut(iarr), xx_gen, kRec, + & 1, myThid ) #endif - ENDIF - ENDDO - ENDDO + ENDIF + ENDDO + ENDDO ENDIF #endif /* ifdef ALLOW_ECCO */ -c-- scaling and smoothing +C-- scaling and smoothing - DO irec = 1, diffrec -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte +C The access of records startrec to endrec in xx_*.*iter was already +C done correctly above. From here, we read in xx_*.effective.$iter.data +C of size diffrec, so no more fix of record is needed from here on out. + DO iRec = 1, diffrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte #endif +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut(iarr) ) + lRec=startrec+iRec-1 + write(*,'(A,1x,A,1x,2I6)') 'AO: fnamegenOut, iRec,lRec ', + & fnamegenOut(iarr)(1:ilgen),iRec,lRec +#endif #ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegenOut, xx_gen, irec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_READ_XY( fnamegenOut(iarr), xx_gen, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) #else - CALL READ_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) + CALL READ_REC_XY_RL( fnamegenOut(iarr), xx_gen, iRec, + & 1, myThid ) #endif #ifndef ALLOW_OPENAD jrec=1 +C Not clear which record to use for timevariable weights ; +C For now, just assumes records from startrec to endrec are available in file do k2 = 1, maxCtrlProc - if (xx_gentim2d_preproc(k2,iarr).EQ.'variaweight') jrec=irec + if (xx_gentim2d_preproc(k2,iarr).EQ.'variaweight') then + jrec=startrec+iRec-1 + endif enddo - CALL MDS_READ_FIELD( xx_gentim2d_weight(iarr),ctrlprec, - & .FALSE.,'RL',1,1,1,wgentim2d(1-Olx,1-Oly,1,1,iarr), - & dummyRS,jrec,myThid ) + CALL READ_REC_3D_RL( xx_gentim2d_weight(iarr), ctrlprec, 1, + & wgentim2d(1-OLx,1-OLy,1,1,iarr), jrec, 1, myThid ) + +C-- Get appropriate mask + call ctrl_get_mask2D(xx_gentim2d_file(iarr), mask2D, myThid) #ifdef ALLOW_SMOOTH IF (useSMOOTH) THEN - IF (dowc01) call smooth_correl2d(xx_gen,maskC,numsmo,mythid) - IF (dosmooth) call smooth2d(xx_gen,maskC,numsmo,mythid) + IF (dowc01) call smooth_correl2d(xx_gen,mask2D,numsmo,myThid) + IF (dosmooth) call smooth2d(xx_gen,mask2D,numsmo,myThid) ENDIF #endif /* ALLOW_SMOOTH */ @@ -319,14 +446,14 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) DO bi=myBxLo(myThid), myBxHi(myThid) DO j = 1,sNy DO i = 1,sNx - if ((maskC(i,j,1,bi,bj).NE.0.).AND. - & (wgentim2d(i,j,bi,bj,iarr).GT.0.)) then - IF (doscaling) then - xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) - & /sqrt(wgentim2d(i,j,bi,bj,iarr)) - ENDIF ! IF (doscaling) then + if ((mask2D(i,j,bi,bj).NE.0.).AND. + & (wgentim2d(i,j,bi,bj,iarr).GT.0.)) then + IF (doscaling) then + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & /sqrt(wgentim2d(i,j,bi,bj,iarr)) + ENDIF ! IF (doscaling) then else - xx_gen(i,j,bi,bj)=0. _d 0 + xx_gen(i,j,bi,bj)=0. _d 0 endif ENDDO ENDDO @@ -334,28 +461,36 @@ SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) ENDDO #endif /* ALLOW_OPENAD */ - CALL CTRL_BOUND_2D(xx_gen,maskC, + CALL CTRL_BOUND_2D(xx_gen,mask2D, & xx_gentim2d_bounds(1,iarr),myThid) CALL EXCH_XY_RL ( xx_gen , myThid ) +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut(iarr) ) + write(*,'(A,1x,I6,1x,A)') + & 'AQ: iRec,fnamegenOut: ',iRec,fnamegenOut(iarr)(1:ilgen) +#endif #ifdef ALLOW_AUTODIFF - call active_write_xy( fnamegenOut, xx_gen, irec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) + CALL ACTIVE_WRITE_XY( fnamegenOut(iarr), xx_gen, iRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) #else - CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) + CALL WRITE_REC_XY_RL( fnamegenOut(iarr), xx_gen, iRec, + & 1, myThid ) #endif - -c-- end irec loop +C-- end iRec loop ENDDO #ifndef ALLOW_OPENAD endif #endif -c-- end iarr loop +C-- end iarr loop ENDDO +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ #endif /* ALLOW_GENTIM2D_CONTROL */ RETURN diff --git a/pkg/ctrl/ctrl_mask_set_xz.F b/pkg/ctrl/ctrl_mask_set_xz.F index 1b9e9718bb..f722897e5d 100644 --- a/pkg/ctrl/ctrl_mask_set_xz.F +++ b/pkg/ctrl/ctrl_mask_set_xz.F @@ -1,7 +1,7 @@ #include "CTRL_OPTIONS.h" subroutine ctrl_mask_set_xz( - & jp1, jNone, OB_J, nwetobcs, ymaskobcs, mythid ) + & jp1, jNone, OB_J, nwetobcs, ymaskobcs, myThid ) c ================================================================== c SUBROUTINE ctrl_mask_set_xz @@ -28,10 +28,10 @@ subroutine ctrl_mask_set_xz( c == routine arguments == integer jp1, jNone - integer OB_J (1-olx:snx+olx,nsx,nsy) - integer nwetobcs (nsx,nsy,nr,nobcs) - character*(80) ymaskobcs - integer mythid + integer OB_J (1-OLx:sNx+OLx,nSx,nSy) + integer nwetobcs (nSx,nSy,Nr,nobcs) + character*(MAX_LEN_FNAM) ymaskobcs + integer myThid c == local variables == @@ -39,23 +39,14 @@ subroutine ctrl_mask_set_xz( integer i,j,k integer itlo,ithi integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ntmp - integer ivarindex integer iobcs integer il - integer errio - integer startrec - integer endrec - integer difftime(4) - _RL diffsecs _RL dummy - _RL maskxz (1-olx:snx+olx,nr,nsx,nsy,nobcs) - _RL gg (1-olx:snx+olx,nr,nsx,nsy) + _RL maskxz (1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + _RL gg (1-OLx:sNx+OLx,Nr,nSx,nSy) - character*( 80) fname + character*(MAX_LEN_FNAM) fname c == external == @@ -64,14 +55,10 @@ subroutine ctrl_mask_set_xz( c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) _BEGIN_MASTER( myThid ) @@ -79,9 +66,9 @@ subroutine ctrl_mask_set_xz( c-- mask conventions are adopted from obcs_apply_ts, obcs_apply_uv do iobcs = 1,nobcs do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do i = 1-olx,snx+olx + do bi = itlo,ithi + do k = 1,Nr + do i = 1-OLx,sNx+OLx maskxz(i,k,bi,bj,iobcs) = 0. _d 0 enddo enddo @@ -92,8 +79,8 @@ subroutine ctrl_mask_set_xz( do iobcs = 1,nobcs do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do i = imin,imax + do k = 1,Nr + do i = 1,sNx j = OB_J(i,bi,bj) if ( j .NE. jNone ) then c-- South mask for T, S, V @@ -119,24 +106,23 @@ subroutine ctrl_mask_set_xz( #ifdef ALLOW_AUTODIFF il=ilnblnk( ymaskobcs ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') ymaskobcs + write(fname,'(a)') ymaskobcs do iobcs = 1,nobcs do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do i = imin,imax + do k = 1,Nr + do i = 1,sNx gg(i,k,bi,bj) = maskxz(i,k,bi,bj,iobcs) enddo enddo enddo enddo - call active_write_xz( fname, gg, iobcs, 0, mythid, dummy ) + call active_write_xz( fname, gg, iobcs, 0, myThid, dummy ) enddo #endif - _END_MASTER( mythid ) + _END_MASTER( myThid ) return end diff --git a/pkg/ctrl/ctrl_mask_set_yz.F b/pkg/ctrl/ctrl_mask_set_yz.F index cabd92da22..c10a9b02bf 100644 --- a/pkg/ctrl/ctrl_mask_set_yz.F +++ b/pkg/ctrl/ctrl_mask_set_yz.F @@ -1,7 +1,7 @@ #include "CTRL_OPTIONS.h" subroutine ctrl_mask_set_yz( - & ip1, iNone, OB_I, nwetobcs, ymaskobcs, mythid ) + & ip1, iNone, OB_I, nwetobcs, ymaskobcs, myThid ) c ================================================================== c SUBROUTINE ctrl_mask_set_yz @@ -28,10 +28,10 @@ subroutine ctrl_mask_set_yz( c == routine arguments == integer ip1, iNone - integer OB_I (1-oly:sny+oly,nsx,nsy) - integer nwetobcs (nsx,nsy,nr,nobcs) - character*(80) ymaskobcs - integer mythid + integer OB_I (1-OLy:sNy+OLy,nSx,nSy) + integer nwetobcs (nSx,nSy,Nr,nobcs) + character*(MAX_LEN_FNAM) ymaskobcs + integer myThid c == local variables == @@ -39,23 +39,14 @@ subroutine ctrl_mask_set_yz( integer i,j,k integer itlo,ithi integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ntmp - integer ivarindex integer iobcs integer il - integer errio - integer startrec - integer endrec - integer difftime(4) - _RL diffsecs _RL dummy - _RL maskyz (1-oly:sny+oly,nr,nsx,nsy,nobcs) - _RL gg (1-oly:sny+oly,nr,nsx,nsy) + _RL maskyz (1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) + _RL gg (1-OLy:sNy+OLy,Nr,nSx,nSy) - character*( 80) fname + character*(MAX_LEN_FNAM) fname c == external == @@ -64,14 +55,10 @@ subroutine ctrl_mask_set_yz( c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) _BEGIN_MASTER( myThid ) @@ -81,8 +68,8 @@ subroutine ctrl_mask_set_yz( do iobcs = 1,nobcs do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do j = 1-oly,sny+oly + do k = 1,Nr + do j = 1-OLy,sNy+OLy maskyz(j,k,bi,bj,iobcs) = 0. _d 0 enddo enddo @@ -93,8 +80,8 @@ subroutine ctrl_mask_set_yz( do iobcs = 1,nobcs do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax + do k = 1,Nr + do j = 1,sNy i = OB_I(j,bi,bj) if ( i .NE. iNone ) then c-- West mask for T, S, U on East/West boundaries. @@ -120,24 +107,23 @@ subroutine ctrl_mask_set_yz( #ifdef ALLOW_AUTODIFF il=ilnblnk( ymaskobcs ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') ymaskobcs + write(fname,'(a)') ymaskobcs do iobcs = 1,nobcs do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax + do k = 1,Nr + do j = 1,sNy gg(j,k,bi,bj) = maskyz(j,k,bi,bj,iobcs) enddo enddo enddo enddo - call active_write_yz( fname, gg, iobcs, 0, mythid, dummy) + call active_write_yz( fname, gg, iobcs, 0, myThid, dummy) enddo #endif - _END_MASTER( mythid ) + _END_MASTER( myThid ) return end diff --git a/pkg/ctrl/ctrl_pack.F b/pkg/ctrl/ctrl_pack.F index 6c9b157de5..00c767ef70 100644 --- a/pkg/ctrl/ctrl_pack.F +++ b/pkg/ctrl/ctrl_pack.F @@ -2,9 +2,6 @@ #ifdef ALLOW_COST # include "COST_OPTIONS.h" #endif -#ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" -#endif #ifdef ALLOW_ECCO # include "ECCO_OPTIONS.h" #endif @@ -56,62 +53,57 @@ subroutine ctrl_pack( first, mythid ) #ifdef ALLOW_COST # include "cost.h" #endif -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -# include "ecco_cost.h" -#else -# include "ctrl_weights.h" -#endif -#ifdef ALLOW_EXF -# include "EXF_PARAM.h" -#endif c == routine arguments == logical first integer mythid #ifndef EXCLUDE_CTRL_PACK -c == external == +c == external functions == + integer ilnblnk external ilnblnk c == local variables == - _RL fcloc - - integer i, j, k - integer ii - integer il - integer irec - integer ig,jg - integer ivartype -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - integer iobcs -#endif -#if (defined ALLOW_GENARR2D_CONTROL) || (defined ALLOW_GENARR3D_CONTROL) || (defined ALLOW_GENTIM2D_CONTROL) -C- Provided we set the file name just before calling ctrl_set_pack, -C the same local file name variable can be used for different variables. -C This is how GENARR2/3D_CONTROL is implemented (+ provides an example) - integer iarr - character*(80) fname_local(3) -#endif - logical doglobalread logical ladinit - integer cbuffindex logical lxxadxx + integer i, k +c integer ig,jg + integer ivartype integer cunit integer ictrlgrad + _RL fcloc character*(128) cfile - character*( 80) weighttype + integer ilDir -c == end of interface == - -#ifndef ALLOW_ECCO_OPTIMIZATION - fmin = 0. _d 0 +#ifdef ALLOW_OBCS + character*(MAX_LEN_FNAM) weighttype + integer iobcs + character*(MAX_LEN_FNAM) fname_obcsn(3) + character*(MAX_LEN_FNAM) fname_obcss(3) + character*(MAX_LEN_FNAM) fname_obcsw(3) + character*(MAX_LEN_FNAM) fname_obcse(3) +#endif +#if (defined ALLOW_GENARR2D_CONTROL) \ + || (defined ALLOW_GENARR3D_CONTROL) \ + || (defined ALLOW_GENTIM2D_CONTROL) +C- Provided we set the file name just before calling ctrl_set_pack, +C the same local file name variable can be used for different variables. +C This is how GENARR2/3D_CONTROL is implemented (+ provides an example) + integer iarr + character*(MAX_LEN_FNAM) fname_local(3) +#endif +#if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENTIM2D_CONTROL ) +C 9 character limit set by set_(un)pack + character*( 9) mskNameForSetPack #endif +c == end of interface == + c-- Tiled files are used. doglobalread = .false. @@ -121,60 +113,24 @@ subroutine ctrl_pack( first, mythid ) c-- Initialise global buffer index nbuffglobal = 0 +c-- Initialise local cost function value + fcloc = zeroRL + +c-- Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + c-- Assign file names. -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - call ctrl_set_fname(xx_obcsn_file, fname_obcsn, mythid) - call ctrl_set_fname(xx_obcss_file, fname_obcss, mythid) - call ctrl_set_fname(xx_obcsw_file, fname_obcsw, mythid) - call ctrl_set_fname(xx_obcse_file, fname_obcse, mythid) -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - -#ifdef ECCO_CTRL_DEPRECATED - call ctrl_set_fname(xx_theta_file, fname_theta, mythid) - call ctrl_set_fname(xx_salt_file, fname_salt, mythid) - call ctrl_set_fname(xx_hflux_file, fname_hflux, mythid) - call ctrl_set_fname(xx_sflux_file, fname_sflux, mythid) - call ctrl_set_fname(xx_tauu_file, fname_tauu, mythid) - call ctrl_set_fname(xx_tauv_file, fname_tauv, mythid) - call ctrl_set_fname(xx_atemp_file, fname_atemp, mythid) - call ctrl_set_fname(xx_aqh_file, fname_aqh, mythid) - call ctrl_set_fname(xx_precip_file, fname_precip, mythid) - call ctrl_set_fname(xx_swflux_file, fname_swflux, mythid) - call ctrl_set_fname(xx_swdown_file, fname_swdown, mythid) - call ctrl_set_fname(xx_lwflux_file, fname_lwflux, mythid) - call ctrl_set_fname(xx_lwdown_file, fname_lwdown, mythid) - call ctrl_set_fname(xx_evap_file, fname_evap, mythid) - call ctrl_set_fname(xx_snowprecip_file, fname_snowprecip, mythid) - call ctrl_set_fname(xx_apressure_file, fname_apressure, mythid) - call ctrl_set_fname(xx_runoff_file, fname_runoff, mythid) - call ctrl_set_fname(xx_uwind_file, fname_uwind, mythid) - call ctrl_set_fname(xx_vwind_file, fname_vwind, mythid) - call ctrl_set_fname(xx_diffkr_file, fname_diffkr, mythid) - call ctrl_set_fname(xx_kapgm_file, fname_kapgm, mythid) - call ctrl_set_fname(xx_kapredi_file, fname_kapredi, mythid) - call ctrl_set_fname(xx_tr1_file, fname_tr1, mythid) - call ctrl_set_fname(xx_sst_file, fname_sst, mythid) - call ctrl_set_fname(xx_sss_file, fname_sss, mythid) - call ctrl_set_fname(xx_depth_file, fname_depth, mythid) - call ctrl_set_fname(xx_efluxy_file, fname_efluxy, mythid) - call ctrl_set_fname(xx_efluxp_file, fname_efluxp, mythid) - call ctrl_set_fname(xx_bottomdrag_file, fname_bottomdrag, mythid) - call ctrl_set_fname(xx_edtaux_file, fname_edtaux, mythid) - call ctrl_set_fname(xx_edtauy_file, fname_edtauy, mythid) - call ctrl_set_fname(xx_uvel_file, fname_uvel, mythid) - call ctrl_set_fname(xx_vvel_file, fname_vvel, mythid) - call ctrl_set_fname(xx_etan_file, fname_etan, mythid) - call ctrl_set_fname(xx_relaxsst_file, fname_relaxsst, mythid) - call ctrl_set_fname(xx_relaxsss_file, fname_relaxsss, mythid) - call ctrl_set_fname(xx_siarea_file, fname_siarea, mythid) - call ctrl_set_fname(xx_siheff_file, fname_siheff, mythid) - call ctrl_set_fname(xx_sihsnow_file, fname_sihsnow, mythid) - call ctrl_set_fname(xx_shifwflx_file, fname_shifwflx, mythid) -cHFLUXM_CONTROL - call ctrl_set_fname(xx_hfluxm_file, fname_hfluxm, mythid) -cHFLUXM_CONTROL -#endif /* ECCO_CTRL_DEPRECATED */ +#ifdef ALLOW_OBCS + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcsn_file, + & fname_obcsn, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcss_file, + & fname_obcss, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcsw_file, + & fname_obcsw, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcse_file, + & fname_obcse, mythid) +#endif c-- Only the master thread will do I/O. _BEGIN_MASTER( mythid ) @@ -183,7 +139,7 @@ subroutine ctrl_pack( first, mythid ) c >>> Initialise control vector for optimcycle=0 <<< lxxadxx = .TRUE. ictrlgrad = 1 - fcloc = fmin + fcloc = zeroRL write(cfile(1:128),'(4a,i4.4)') & ctrlname(1:9),'_',yctrlid(1:10), & yctrlpospack, optimcycle @@ -198,8 +154,6 @@ subroutine ctrl_pack( first, mythid ) # else fcloc = fc # endif -#else - fcloc = zeroRL #endif write(cfile(1:128),'(4a,i4.4)') & costname(1:9),'_',yctrlid(1:10), @@ -221,42 +175,38 @@ subroutine ctrl_pack( first, mythid ) write(cunit) nvarlength write(cunit) yctrlid write(cunit) optimCycle -#ifdef ALLOW_COST - write(cunit) fc -#else - write(cunit) zeroRL -#endif + write(cunit) fcloc C place holder of obsolete variable iG write(cunit) 1 C place holder of obsolete variable jG write(cunit) 1 - write(cunit) nsx - write(cunit) nsy - write(cunit) (nWetcGlobal(k), k=1,nr) - write(cunit) (nWetsGlobal(k), k=1,nr) - write(cunit) (nWetwGlobal(k), k=1,nr) + write(cunit) nSx + write(cunit) nSy + write(cunit) (nWetcGlobal(k), k=1,Nr) + write(cunit) (nWetsGlobal(k), k=1,Nr) + write(cunit) (nWetwGlobal(k), k=1,Nr) #ifdef ALLOW_CTRL_WETV - write(cunit) (nWetvGlobal(k), k=1,nr) + write(cunit) (nWetvGlobal(k), k=1,Nr) #endif -#ifdef ALLOW_SHIFWFLX_CONTROL - write(cunit) (nWetiGlobal(k), k=1,nr) +#ifdef ALLOW_SHELFICE + write(cunit) (nWetiGlobal(k), k=1,Nr) c write(cunit) nWetiGlobal(1) #endif -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS #ifdef ALLOW_OBCSN_CONTROL - write(cunit) ((nWetobcsnGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs) + write(cunit) ((nWetobcsnGlo(k,iobcs), k=1,Nr),iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSS_CONTROL - write(cunit) ((nWetobcssGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs) + write(cunit) ((nWetobcssGlo(k,iobcs), k=1,Nr),iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSW_CONTROL - write(cunit) ((nWetobcswGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs) + write(cunit) ((nWetobcswGlo(k,iobcs), k=1,Nr),iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSE_CONTROL - write(cunit) ((nWetobcseGlo(k,iobcs), k=1,nr),iobcs= 1,nobcs) + write(cunit) ((nWetobcseGlo(k,iobcs), k=1,Nr),iobcs= 1,nobcs) +#endif #endif -#endif /* ALLOW_CTRL and ALLOW_OBCS */ write(cunit) (ncvarindex(i), i=1,maxcvars) write(cunit) (ncvarrecs(i), i=1,maxcvars) @@ -272,524 +222,95 @@ subroutine ctrl_pack( first, mythid ) _BARRIER #endif -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS #ifdef ALLOW_OBCSN_CONTROL ivartype = 11 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcsn" + write(weighttype,'(a)') 'wobcsn' call ctrl_set_pack_xz( - & cunit, ivartype, fname_obcsn(ictrlgrad), "maskobcsn", + & cunit, ivartype, fname_obcsn(ictrlgrad), 'maskobcsn', & weighttype, wobcsn, lxxadxx, mythid) #endif #ifdef ALLOW_OBCSS_CONTROL ivartype = 12 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcss" + write(weighttype,'(a)') 'wobcss' call ctrl_set_pack_xz( - & cunit, ivartype, fname_obcss(ictrlgrad), "maskobcss", + & cunit, ivartype, fname_obcss(ictrlgrad), 'maskobcss', & weighttype, wobcss, lxxadxx, mythid) #endif #ifdef ALLOW_OBCSW_CONTROL ivartype = 13 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcsw" + write(weighttype,'(a)') 'wobcsw' call ctrl_set_pack_yz( - & cunit, ivartype, fname_obcsw(ictrlgrad), "maskobcsw", + & cunit, ivartype, fname_obcsw(ictrlgrad), 'maskobcsw', & weighttype, wobcsw, lxxadxx, mythid) #endif #ifdef ALLOW_OBCSE_CONTROL ivartype = 14 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcse" + write(weighttype,'(a)') 'wobcse' call ctrl_set_pack_yz( - & cunit, ivartype, fname_obcse(ictrlgrad), "maskobcse", + & cunit, ivartype, fname_obcse(ictrlgrad), 'maskobcse', & weighttype, wobcse, lxxadxx, mythid) #endif -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - ivartype = 1 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wthetaLev" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_theta(ictrlgrad), "maskCtrlC", - & weighttype, wtheta, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SALT0_CONTROL - ivartype = 2 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsaltLev" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_salt(ictrlgrad), "maskCtrlC", - & weighttype, wsalt, lxxadxx, mythid) -#endif - -#if (defined (ALLOW_HFLUX_CONTROL) || defined (ALLOW_HFLUX0_CONTROL)) - ivartype = 3 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "whflux" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_hflux(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#if (defined (ALLOW_SFLUX_CONTROL) || defined (ALLOW_SFLUX0_CONTROL)) - ivartype = 4 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsflux" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_sflux(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL)) -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif - ivartype = 5 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtauu" - call ctrl_set_pack_xy( -#ifndef ALLOW_ROTATE_UV_CONTROLS - & cunit, ivartype, forcingPrecond, - & fname_tauu(ictrlgrad), "maskCtrlW", -#else - & cunit, ivartype, forcingPrecond, - & fname_tauu(ictrlgrad), "maskCtrlC", -#endif - & weighttype, lxxadxx, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif - ivartype = 6 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtauv" - call ctrl_set_pack_xy( -#ifndef ALLOW_ROTATE_UV_CONTROLS - & cunit, ivartype, forcingPrecond, - & fname_tauv(ictrlgrad), "maskCtrlS", -#else - & cunit, ivartype, forcingPrecond, - & fname_tauv(ictrlgrad), "maskCtrlC", -#endif - & weighttype, lxxadxx, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_ATEMP_CONTROL - ivartype = 7 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "watemp" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_atemp(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_AQH_CONTROL - ivartype = 8 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "waqh" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_aqh(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_UWIND_CONTROL -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif - ivartype = 9 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wuwind" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_uwind(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_VWIND_CONTROL -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif - ivartype = 10 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wvwind" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_vwind(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - ivartype = 15 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wdiffkr" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_diffkr(ictrlgrad), "maskCtrlC", - & weighttype, wdiffkr, lxxadxx, mythid) -#endif - -#ifdef ALLOW_KAPGM_CONTROL - ivartype = 16 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wkapgm" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_kapgm(ictrlgrad), "maskCtrlC", - & weighttype, wkapgm, lxxadxx, mythid) -#endif - -#ifdef ALLOW_TR10_CONTROL - ivartype = 17 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtr1" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_tr1(ictrlgrad), "maskCtrlC", - & weighttype, wunit, lxxadxx, mythid) -#endif - -#if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL)) - ivartype = 18 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsst" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_sst(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - ivartype = 19 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsss" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_sss(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_DEPTH_CONTROL - ivartype = 20 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wdepth" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_depth(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif /* ALLOW_DEPTH_CONTROL */ - -#ifdef ALLOW_EFLUXY0_CONTROL - ivartype = 21 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wefluxy0" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_efluxy(ictrlgrad), "maskCtrlS", - & weighttype, wunit, lxxadxx, mythid) -#endif - -#ifdef ALLOW_EFLUXP0_CONTROL - ivartype = 22 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wefluxp0" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_efluxp(ictrlgrad), "maskhFacV", - & weighttype, wunit, lxxadxx, mythid) -#endif - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - ivartype = 23 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wbottomdrag" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_bottomdrag(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_HFLUXM_CONTROL - ivartype = 24 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "whfluxm" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_hfluxm(ictrlgrad), "maskCtrlC", - & weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_EDDYPSI_CONTROL - ivartype = 25 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wedtaux" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_edtaux(ictrlgrad), "maskCtrlW", - & weighttype, wedtaux, lxxadxx, mythid) - - ivartype = 26 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wedtauy" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_edtauy(ictrlgrad), "maskCtrlS", - & weighttype, wedtauy, lxxadxx, mythid) -#endif - -#ifdef ALLOW_UVEL0_CONTROL - ivartype = 27 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wuvel" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_uvel(ictrlgrad), "maskCtrlW", - & weighttype, wuvel, lxxadxx, mythid) -#endif - -#ifdef ALLOW_VVEL0_CONTROL - ivartype = 28 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wvvel" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_vvel(ictrlgrad), "maskCtrlS", - & weighttype, wvvel, lxxadxx, mythid) -#endif - -#ifdef ALLOW_ETAN0_CONTROL - ivartype = 29 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wetan" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_etan(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_RELAXSST_CONTROL - ivartype = 30 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrelaxsst" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_relaxsst(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_RELAXSSS_CONTROL - ivartype = 31 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrelaxsss" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_relaxsss(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_PRECIP_CONTROL - ivartype = 32 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wprecip" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_precip(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SWFLUX_CONTROL - ivartype = 33 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wswflux" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_swflux(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SWDOWN_CONTROL - ivartype = 34 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wswdown" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_swdown(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_LWFLUX_CONTROL - ivartype = 35 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wlwflux" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_lwflux(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_LWDOWN_CONTROL - ivartype = 36 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wlwdown" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_lwdown(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_EVAP_CONTROL - ivartype = 37 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wevap" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_evap(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SNOWPRECIP_CONTROL - ivartype = 38 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsnowprecip" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_snowprecip(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_APRESSURE_CONTROL - ivartype = 39 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wapressure" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_apressure(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_RUNOFF_CONTROL - ivartype = 40 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrunoff" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_runoff(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SIAREA_CONTROL - ivartype = 41 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_siarea(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SIHEFF_CONTROL - ivartype = 42 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_siheff(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SIHSNOW_CONTROL - ivartype = 43 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_sihsnow(ictrlgrad), - & "maskCtrlC", weighttype, lxxadxx, mythid) -#endif - -#ifdef ALLOW_KAPREDI_CONTROL - ivartype = 44 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wkapredi" - call ctrl_set_pack_xyz( - & cunit, ivartype, fname_kapredi(ictrlgrad), "maskCtrlC", - & weighttype, wkapredi, lxxadxx, mythid) -#endif - -#ifdef ALLOW_SHIFWFLX_CONTROL - ivartype = 45 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wshifwflx" - call ctrl_set_pack_xy( - & cunit, ivartype, forcingPrecond, - & fname_shifwflx(ictrlgrad), - & "maskCtrlI", weighttype, lxxadxx, mythid) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ +#endif /* ALLOW_OBCS */ #ifdef ALLOW_GENARR2D_CONTROL do iarr = 1, maxCtrlArr2D if (xx_genarr2d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_genarr2d_file(iarr), + mskNameForSetPack='maskCtrlC' +# ifdef ALLOW_SHELFICE + if ((xx_genarr2d_file(iarr)(1:11).eq.'xx_shicoeff').or. + & (xx_genarr2d_file(iarr)(1:11).eq.'xx_shicdrag')) then + mskNameForSetPack='maskCtrlI' + endif +# endif + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_genarr2d_file(iarr), O fname_local, mythid ) ivartype = 100+iarr -cc write(weighttype(1:80),'(80a)') ' ' -cc write(weighttype(1:80),'(a)') "wunit" +cc write(weighttype,'(a)') 'wunit' call ctrl_set_pack_xy( & cunit, ivartype, genarr2dPrecond(iarr), - & fname_local(ictrlgrad), "maskCtrlC", + & fname_local(ictrlgrad), mskNameForSetPack, & xx_genarr2d_weight(iarr), & lxxadxx, mythid) endif enddo -#endif +#endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL do iarr = 1, maxCtrlArr3D if (xx_genarr3d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_genarr3d_file(iarr), + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_genarr3d_file(iarr), O fname_local, mythid ) ivartype = 200+iarr -cc write(weighttype(1:80),'(80a)') ' ' -cc write(weighttype(1:80),'(a)') "wunit" +cc write(weighttype,'(a)') 'wunit' call ctrl_set_pack_xyz( - & cunit, ivartype, fname_local(ictrlgrad), "maskCtrlC", + & cunit, ivartype, fname_local(ictrlgrad), 'maskCtrlC', & xx_genarr3d_weight(iarr), & wunit, lxxadxx, mythid) endif enddo -#endif +#endif /* ALLOW_GENARR3D_CONTROL */ #ifdef ALLOW_GENTIM2D_CONTROL do iarr = 1, maxCtrlTim2D if (xx_gentim2d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_gentim2d_file(iarr), + mskNameForSetPack='maskCtrlC' +# ifdef ALLOW_SHELFICE + if (xx_gentim2d_file(iarr)(1:11).eq.'xx_shifwflx') + & mskNameForSetPack='maskCtrlI' +# endif + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_gentim2d_file(iarr), O fname_local, mythid ) ivartype = 300+iarr -cc write(weighttype(1:80),'(80a)') ' ' -cc write(weighttype(1:80),'(a)') "wunit" +cc write(weighttype,'(a)') 'wunit' call ctrl_set_pack_xy( & cunit, ivartype, gentim2dPrecond(iarr), - & fname_local(ictrlgrad), "maskCtrlC", + & fname_local(ictrlgrad), mskNameForSetPack, & xx_gentim2d_weight(iarr), & lxxadxx, mythid) endif enddo -#endif +#endif /* ALLOW_GENTIM2D_CONTROL */ #ifdef ALLOW_PACKUNPACK_METHOD2 _BEGIN_MASTER( mythid ) diff --git a/pkg/ctrl/ctrl_readparms.F b/pkg/ctrl/ctrl_readparms.F index 8e83de0f2d..20927cd0e7 100644 --- a/pkg/ctrl/ctrl_readparms.F +++ b/pkg/ctrl/ctrl_readparms.F @@ -1,22 +1,26 @@ #include "CTRL_OPTIONS.h" #include "AD_CONFIG.h" - - subroutine ctrl_readparms( mythid ) - -c ================================================================== -c SUBROUTINE ctrl_readparms -c ================================================================== -c -c o read ctrl parameters -c -c ================================================================== -c SUBROUTINE ctrl_readparms -c ================================================================== - - implicit none - -c == global variables == - +C-- File ctrl_readparms.F: +C-- Contents +C-- o CTRL_READPARMS +C-- o CTRL_SET_RETIRED_PARMS +C-- o CTRL_CHECK_RETIRED_PARMS + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_READPARMS +C !INTERFACE: + SUBROUTINE CTRL_READPARMS( myThid ) + +C !DESCRIPTION: +C ================================================================== +C o read ctrl parameters +C ================================================================== + +C !USES: + IMPLICIT NONE + +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -25,52 +29,39 @@ subroutine ctrl_readparms( mythid ) # include "ctrl.h" # include "CTRL_GENARR.h" # include "CTRL_OBCS.h" -# ifndef ECCO_CTRL_DEPRECATED -# include "ctrl_local_params.h" -# endif +# include "ctrl_local_params.h" #endif #ifdef ALLOW_AUTODIFF #include "AUTODIFF_PARAMS.h" #endif -c == routine arguments == - - integer mythid +C !INPUT/OUTPUT PARAMETERS: + INTEGER myThid -c == local variables == +C == EXTERNAL FUNCTIONS == + INTEGER ILNBLNK + EXTERNAL ILNBLNK - integer bi,bj - integer i,j,k - integer ntmp - integer ivarindex - integer iUnit - integer iobcs - integer il - integer errio - integer startrec - integer endrec - integer difftime(4) - _RL diffsecs - _RL dummy - - character*(80) ymaskobcs - character*(max_len_prec) record - character*(max_len_mbuf) msgbuf - - integer nwetc3d +C !LOCAL VARIABLES: + INTEGER iUnit + INTEGER nRetired + CHARACTER*(MAX_LEN_MBUF) msgBuf #if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) - integer iarr,jarr + INTEGER iarr,jarr #endif - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - -c-- Read the namelist input. - namelist /ctrl_nml/ + CHARACTER*(MAX_LEN_FNAM) namBuf + INTEGER IL +#ifdef HAVE_SYSTEM + INTEGER pIL +#endif +C retired parameters (others are in ctrl_local_params.h) + LOGICAL ctrlUseGen + LOGICAL ctrlSmoothCorrel3D + LOGICAL ctrlSmoothCorrel2D +CEOP + +C-- Read the namelist input. + NAMELIST /CTRL_NML/ & xx_theta_file, xx_salt_file, & xx_hflux_file, xx_hflux_remo_intercept, xx_hflux_remo_slope, & xx_hfluxstartdate1, xx_hfluxstartdate2, xx_hfluxperiod, @@ -137,17 +128,17 @@ subroutine ctrl_readparms( mythid ) & doMainUnpack, doMainPack, & doSinglePrecTapelev, & doAdmtlmBypassAD, - & delZexp, forcingPrecond + & delZexp, forcingPrecond, ctrlprec, ctrlDir cHFLUXM_CONTROL & ,xx_hfluxm_file cHFLUXM_CONTROL - namelist /ctrl_packnames/ + NAMELIST /CTRL_PACKNAMES/ & yadmark, yctrlid, yctrlposunpack, yctrlpospack, & ctrlname, costname, scalname, maskname, metaname #if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) - namelist /ctrl_nml_genarr/ + NAMELIST /CTRL_NML_GENARR/ & xx_genarr2d_file, xx_genarr3d_file, xx_gentim2d_file, & xx_genarr2d_weight, xx_genarr3d_weight, xx_gentim2d_weight, & xx_genarr2d_bounds, xx_genarr3d_bounds, xx_gentim2d_bounds, @@ -176,7 +167,7 @@ subroutine ctrl_readparms( mythid ) _BEGIN_MASTER( myThid ) -c-- Set default values. +C-- Set default values. doInitXX = .TRUE. #ifdef ALLOW_SMOOTH_CORREL3D ctrlSmoothCorrel3D = .TRUE. @@ -188,11 +179,7 @@ subroutine ctrl_readparms( mythid ) #else ctrlSmoothCorrel2D = .FALSE. #endif -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) ctrlUseGen = .TRUE. -#else - ctrlUseGen = .FALSE. -#endif #ifdef ALLOW_ADMTLM doAdmTlm = .TRUE. #else @@ -213,9 +200,19 @@ subroutine ctrl_readparms( mythid ) delZexp = 0. forcingPrecond = 1. _d 0 +#ifdef CTRL_SET_PREC_32 +C for backward compatibility set default value to 32 if this +C flag is defined + ctrlprec = 32 +#else + ctrlprec = 64 +#endif + + ctrlDir = ' ' + xx_theta_file = 'xx_theta' xx_salt_file = 'xx_salt' -c + xx_gen2d_file = 'xx_gen2d' xx_gen3d_file = 'xx_gen3d' @@ -228,8 +225,8 @@ subroutine ctrl_readparms( mythid ) write(xx_genarr2d_file(iarr)(15:MAX_LEN_FNAM),'(a)') ' ' #endif write(xx_genarr2d_weight(iarr)(1:MAX_LEN_FNAM),'(a)') ' ' - genarr2dPrecond(iarr) = 1. _d 0 - mult_genarr2d(iarr) = 1. _d 0 + genarr2dPrecond(iarr) = 1. _d 0 + mult_genarr2d(iarr) = 1. _d 0 do jarr = 1, 5 xx_genarr2d_bounds(jarr,iarr) = 0. _d 0 enddo @@ -240,7 +237,7 @@ subroutine ctrl_readparms( mythid ) xx_genarr2d_preproc_r(jarr,iarr) = 0. _d 0 enddo enddo -c + do iarr = 1, maxCtrlArr3D write(xx_genarr3d_file(iarr)(1:MAX_LEN_FNAM),'(a)') ' ' #ifdef ALLOW_OPENAD @@ -249,8 +246,8 @@ subroutine ctrl_readparms( mythid ) write(xx_genarr3d_file(iarr)(15:MAX_LEN_FNAM),'(a)') ' ' #endif write(xx_genarr3d_weight(iarr)(1:MAX_LEN_FNAM),'(a)') ' ' - genarr3dPrecond(iarr) = 1. _d 0 - mult_genarr3d(iarr) = 1. _d 0 + genarr3dPrecond(iarr) = 1. _d 0 + mult_genarr3d(iarr) = 1. _d 0 do jarr = 1, 5 xx_genarr3d_bounds(jarr,iarr) = 0. _d 0 enddo @@ -261,7 +258,7 @@ subroutine ctrl_readparms( mythid ) xx_genarr3d_preproc_r(jarr,iarr) = 0. _d 0 enddo enddo -c + do iarr = 1, maxCtrlTim2D write(xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM),'(a)') ' ' #ifdef ALLOW_OPENAD @@ -288,192 +285,126 @@ subroutine ctrl_readparms( mythid ) enddo enddo #endif -c - xx_hfluxstartdate1 = 0 - xx_hfluxstartdate2 = 0 - xx_hfluxperiod = 0. _d 0 - xx_hflux_file = 'xx_hfl' - xx_hflux_remo_intercept = 0. _d 0 - xx_hflux_remo_slope = 0. _d 0 -c - xx_sfluxstartdate1 = 0 - xx_sfluxstartdate2 = 0 - xx_sfluxperiod = 0. _d 0 - xx_sflux_file = 'xx_sfl' - xx_sflux_remo_intercept = 0. _d 0 - xx_sflux_remo_slope = 0. _d 0 -c - xx_tauustartdate1 = 0 - xx_tauustartdate2 = 0 - xx_tauuperiod = 0. _d 0 - xx_tauu_file = 'xx_tauu' - xx_tauu_remo_intercept = 0. _d 0 - xx_tauu_remo_slope = 0. _d 0 -c - xx_tauvstartdate1 = 0 - xx_tauvstartdate2 = 0 - xx_tauvperiod = 0. _d 0 - xx_tauv_file = 'xx_tauv' - xx_tauv_remo_intercept = 0. _d 0 - xx_tauv_remo_slope = 0. _d 0 -c - xx_atempstartdate1 = 0 - xx_atempstartdate2 = 0 - xx_atempperiod = 0. _d 0 - xx_atemp_file = 'xx_atemp' - xx_atemp_mean_file = 'xx_atemp_mean' - xx_atemp_remo_intercept = 0. _d 0 - xx_atemp_remo_slope = 0. _d 0 -c - xx_aqhstartdate1 = 0 - xx_aqhstartdate2 = 0 - xx_aqhperiod = 0. _d 0 - xx_aqh_file = 'xx_aqh' - xx_aqh_mean_file = 'xx_aqh_mean' - xx_aqh_remo_intercept = 0. _d 0 - xx_aqh_remo_slope = 0. _d 0 -c - xx_precipstartdate1 = 0 - xx_precipstartdate2 = 0 - xx_precipperiod = 0. _d 0 - xx_precip_file = 'xx_precip' - xx_precip_mean_file = 'xx_precip_mean' - xx_precip_remo_intercept = 0. _d 0 - xx_precip_remo_slope = 0. _d 0 -c - xx_swfluxstartdate1 = 0 - xx_swfluxstartdate2 = 0 - xx_swfluxperiod = 0. _d 0 - xx_swflux_file = 'xx_swflux' - xx_swflux_remo_intercept = 0. _d 0 - xx_swflux_remo_slope = 0. _d 0 -c - xx_swdownstartdate1 = 0 - xx_swdownstartdate2 = 0 - xx_swdownperiod = 0. _d 0 - xx_swdown_file = 'xx_swdown' - xx_swdown_mean_file = 'xx_swdown_mean' - xx_swdown_remo_intercept = 0. _d 0 - xx_swdown_remo_slope = 0. _d 0 -c - xx_lwfluxstartdate1 = 0 - xx_lwfluxstartdate2 = 0 - xx_lwfluxperiod = 0. _d 0 - xx_lwflux_file = 'xx_lwflux' - xx_lwflux_remo_intercept = 0. _d 0 - xx_lwflux_remo_slope = 0. _d 0 -c - xx_lwdownstartdate1 = 0 - xx_lwdownstartdate2 = 0 - xx_lwdownperiod = 0. _d 0 - xx_lwdown_file = 'xx_lwdown' - xx_lwdown_remo_intercept = 0. _d 0 - xx_lwdown_remo_slope = 0. _d 0 -c - xx_evapstartdate1 = 0 - xx_evapstartdate2 = 0 - xx_evapperiod = 0. _d 0 - xx_evap_file = 'xx_evap' - xx_evap_remo_intercept = 0. _d 0 - xx_evap_remo_slope = 0. _d 0 -c - xx_snowprecipstartdate1 = 0 - xx_snowprecipstartdate2 = 0 - xx_snowprecipperiod = 0. _d 0 - xx_snowprecip_file = 'xx_snowprecip' - xx_snowprecip_remo_intercept = 0. _d 0 - xx_snowprecip_remo_slope = 0. _d 0 -c - xx_apressurestartdate1 = 0 - xx_apressurestartdate2 = 0 - xx_apressureperiod = 0. _d 0 - xx_apressure_file = 'xx_apressure' - xx_apressure_remo_intercept = 0. _d 0 - xx_apressure_remo_slope = 0. _d 0 -c - xx_runoffstartdate1 = 0 - xx_runoffstartdate2 = 0 - xx_runoffperiod = 0. _d 0 - xx_runoff_file = 'xx_runoff' - xx_runoff_remo_intercept = 0. _d 0 - xx_runoff_remo_slope = 0. _d 0 -c - xx_uwindstartdate1 = 0 - xx_uwindstartdate2 = 0 - xx_uwindperiod = 0. _d 0 - xx_uwind_file = 'xx_uwind' - xx_uwind_mean_file = 'xx_uwind_mean' - xx_uwind_remo_intercept = 0. _d 0 - xx_uwind_remo_slope = 0. _d 0 -c - xx_vwindstartdate1 = 0 - xx_vwindstartdate2 = 0 - xx_vwindperiod = 0. _d 0 - xx_vwind_file = 'xx_vwind' - xx_vwind_mean_file = 'xx_vwind_mean' - xx_vwind_remo_intercept = 0. _d 0 - xx_vwind_remo_slope = 0. _d 0 -c + xx_obcsnstartdate1 = 0 xx_obcsnstartdate2 = 0 xx_obcsnperiod = 0. _d 0 xx_obcsn_file = 'xx_obcsn' -c + xx_obcssstartdate1 = 0 xx_obcssstartdate2 = 0 xx_obcssperiod = 0. _d 0 xx_obcss_file = 'xx_obcss' -c + xx_obcswstartdate1 = 0 xx_obcswstartdate2 = 0 xx_obcswperiod = 0. _d 0 xx_obcsw_file = 'xx_obcsw' -c + xx_obcsestartdate1 = 0 xx_obcsestartdate2 = 0 xx_obcseperiod = 0. _d 0 xx_obcse_file = 'xx_obcse' -c - xx_sststartdate1 = 0 - xx_sststartdate2 = 0 - xx_sstperiod = 0. _d 0 - xx_sst_file = 'xx_sst' - xx_sst_remo_intercept = 0. _d 0 - xx_sst_remo_slope = 0. _d 0 -c - xx_sssstartdate1 = 0 - xx_sssstartdate2 = 0 - xx_sssperiod = 0. _d 0 - xx_sss_file = 'xx_sss' - xx_sss_remo_intercept = 0. _d 0 - xx_sss_remo_slope = 0. _d 0 -c - xx_shifwflxstartdate1 = 0 - xx_shifwflxstartdate2 = 0 - xx_shifwflxperiod = 0. _d 0 - xx_shifwflx_file = 'xx_shifwflx' - xx_shifwflx_remo_intercept=0. _d 0 - xx_shifwflx_remo_slope = 0. _d 0 -c - xx_diffkr_file = 'xx_diffkr' - xx_kapgm_file = 'xx_kapgm' - xx_kapredi_file = 'xx_kapredi' - xx_tr1_file = 'xx_ptr' - xx_depth_file = 'xx_depth' - xx_efluxy_file = 'xx_efluxy' - xx_efluxp_file = 'xx_efluxp' - xx_bottomdrag_file = 'xx_bottomdrag' - xx_edtaux_file = 'xx_edtaux' - xx_edtauy_file = 'xx_edtauy' - xx_uvel_file = 'xx_uvel' - xx_vvel_file = 'xx_vvel' - xx_etan_file = 'xx_etan' - xx_siarea_file = 'xx_siarea' - xx_siheff_file = 'xx_siheff' - xx_sihsnow_file = 'xx_sihsnow' + +C retired parameters + + CALL CTRL_SET_RETIRED_PARMS(xx_hfluxstartdate1, + I xx_hfluxstartdate2, xx_hfluxperiod, xx_hflux_file, + I xx_hflux_file, xx_hflux_remo_intercept, + I xx_hflux_remo_slope , myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_sfluxstartdate1, + I xx_sfluxstartdate2, xx_sfluxperiod, xx_sflux_file, + I xx_sflux_file, xx_sflux_remo_intercept, + I xx_sflux_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_tauustartdate1,xx_tauustartdate2, + I xx_tauuperiod, xx_tauu_file, xx_tauu_file, + I xx_tauu_remo_intercept, xx_tauu_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_tauvstartdate1,xx_tauvstartdate2, + I xx_tauvperiod, xx_tauv_file, xx_tauv_file, + I xx_tauv_remo_intercept, xx_tauv_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_atempstartdate1, + I xx_atempstartdate2, xx_atempperiod, xx_atemp_file, + I xx_atemp_mean_file, xx_atemp_remo_intercept, + I xx_atemp_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_aqhstartdate1, xx_aqhstartdate2, + I xx_aqhperiod, xx_aqh_file, xx_aqh_mean_file, + I xx_aqh_remo_intercept, xx_aqh_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_precipstartdate1, + I xx_precipstartdate2, xx_precipperiod, xx_precip_file, + I xx_precip_mean_file, xx_precip_remo_intercept, + I xx_precip_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_sfluxstartdate1, + I xx_sfluxstartdate2, xx_sfluxperiod, xx_sflux_file, + I xx_sflux_file, xx_sflux_remo_intercept,xx_sflux_remo_slope, + I myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_swdownstartdate1, + I xx_swdownstartdate2, xx_swdownperiod, xx_swdown_file, + I xx_swdown_mean_file, xx_swdown_remo_intercept, + I xx_swdown_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_lwfluxstartdate1, + I xx_lwfluxstartdate2, xx_lwfluxperiod, xx_lwflux_file, + I xx_lwflux_file, xx_lwflux_remo_intercept, + I xx_lwflux_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_lwdownstartdate1, + I xx_lwdownstartdate2, xx_lwdownperiod, xx_lwdown_file, + I xx_lwdown_file, xx_lwdown_remo_intercept, + I xx_lwdown_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_evapstartdate1,xx_evapstartdate2, + I xx_evapperiod, xx_evap_file, xx_evap_file, + I xx_evap_remo_intercept, xx_evap_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_snowprecipstartdate1, + I xx_snowprecipstartdate2, xx_snowprecipperiod, + I xx_snowprecip_file, xx_snowprecip_file, + I xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope, + I myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_apressurestartdate1, + I xx_apressurestartdate2, xx_apressureperiod, + I xx_apressure_file, xx_apressure_file, + I xx_apressure_remo_intercept, xx_apressure_remo_slope, + I myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_runoffstartdate1, + I xx_runoffstartdate2, xx_runoffperiod, xx_runoff_file, + I xx_runoff_file, xx_runoff_remo_intercept, + I xx_runoff_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_uwindstartdate1, + I xx_uwindstartdate2, xx_uwindperiod, xx_uwind_file, + I xx_uwind_file, xx_uwind_remo_intercept,xx_uwind_remo_slope, + I myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_vwindstartdate1, + I xx_vwindstartdate2, xx_vwindperiod, xx_vwind_file, + I xx_vwind_file, xx_vwind_remo_intercept,xx_vwind_remo_slope, + I myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_sststartdate1, xx_sststartdate2, + I xx_sstperiod, xx_sst_file, xx_sst_file, + I xx_sst_remo_intercept, xx_sst_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_sssstartdate1, xx_sssstartdate2, + I xx_sssperiod, xx_sss_file, xx_sss_file, + I xx_sss_remo_intercept, xx_sss_remo_slope, myThid ) + CALL CTRL_SET_RETIRED_PARMS(xx_shifwflxstartdate1, + I xx_shifwflxstartdate2, xx_shifwflxperiod, xx_shifwflx_file, + I xx_shifwflx_file, xx_shifwflx_remo_intercept, + I xx_shifwflx_remo_slope, myThid ) + + xx_diffkr_file = ' ' + xx_kapgm_file = ' ' + xx_kapredi_file = ' ' + xx_tr1_file = ' ' + xx_depth_file = ' ' + xx_efluxy_file = ' ' + xx_efluxp_file = ' ' + xx_bottomdrag_file = ' ' + xx_edtaux_file = ' ' + xx_edtauy_file = ' ' + xx_uvel_file = ' ' + xx_vvel_file = ' ' + xx_etan_file = ' ' + xx_siarea_file = ' ' + xx_siheff_file = ' ' + xx_sihsnow_file = ' ' cHFLUXM_CONTROL - xx_hfluxm_file = 'xx_hfluxm' + xx_hfluxm_file = ' ' cHFLUXM_CONTROL +C end retired parameters #ifdef ALLOW_TANGENTLINEAR_RUN yadprefix = 'g_' @@ -491,7 +422,7 @@ subroutine ctrl_readparms( mythid ) maskname = ' ' metaname = ' ' -c-- Next, read the cost data file. +C-- Next, read the cost data file. WRITE(msgBuf,'(A)') 'CTRL_READPARMS: opening data.ctrl' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) @@ -518,16 +449,392 @@ subroutine ctrl_readparms( mythid ) CLOSE(iUnit,STATUS='DELETE') #endif /* SINGLE_DISK_IO */ -#ifdef ALLOW_AUTODIFF -c allow for switching off correl2d in adjoint - useSmoothCorrel2DinFwdMode = ctrlSmoothCorrel2D - useSmoothCorrel2DinAdMode = - & useSmoothCorrel2DinAdMode .AND. ctrlSmoothCorrel2D +C-- Create ctrlDir if necessary + IF ( ctrlDir .NE. ' ' ) THEN + IL = ILNBLNK( ctrlDir ) +C append "/", if necessary + IF ( IL.LT.MAX_LEN_FNAM .AND. ctrlDir(IL:IL).NE.'/' ) THEN + namBuf(1:IL) = ctrlDir(1:IL) + WRITE(ctrlDir(1:IL+1),'(2A)') namBuf(1:IL),'/' + ENDIF +#ifdef HAVE_SYSTEM +C create directory + IL = ILNBLNK( ctrlDir ) -1 + WRITE(namBuf,'(2A)') ' mkdir -p ', ctrlDir(1:IL) + pIL = 1 + ILNBLNK( namBuf ) + WRITE(standardMessageUnit,'(3A)') + & '==> SYSTEM CALL (from CTRL_READPARMS): >', + & namBuf(1:pIL), '<' + CALL SYSTEM( namBuf(1:pIL) ) +#else + WRITE(msgBuf,'(2A)') '** WARNING ** CTRL_READPARMS: ', + & 'cannot call mkdir -> please create ctrlDir manually' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) #endif + ENDIF + + IF (ctrlDir .NE. ' ') THEN + WRITE(msgBuf,'(2A)') + & 'read-write ctrl files from ', ctrlDir(1:IL) + ELSE + WRITE(msgBuf,'(A)') + & 'read-write ctrl files from current run directory' + ENDIF + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + +C-- Check retired parameters + nRetired = 0 + IF ( ctrlSmoothCorrel2D ) THEN + WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ', + & 'ctrlSmoothCorrel2D no longer allowed in file "data.ctrl"' + CALL PRINT_ERROR( msgBuf, myThid ) +#ifdef ALLOW_SMOOTH_CORREL2D + WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ', + & ' nor is ALLOW_SMOOTH_CORREL2D allowed to be defined.' + CALL PRINT_ERROR( msgBuf, myThid ) +#endif + WRITE(msgBuf,'(A)') + & 'S/R CTRL_READPARMS: Please use the smooth-pkg instead' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + IF ( ctrlSmoothCorrel3D ) THEN + WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ', + & 'ctrlSmoothCorrel3D no longer allowed in file "data.ctrl"' + CALL PRINT_ERROR( msgBuf, myThid ) +#ifdef ALLOW_SMOOTH_CORREL3D + WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ', + & ' nor is ALLOW_SMOOTH_CORREL3D allowed to be defined.' + CALL PRINT_ERROR( msgBuf, myThid ) +#endif + WRITE(msgBuf,'(A)') + & 'S/R CTRL_READPARMS: Please use the smooth-pkg instead' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + IF ( .NOT. ctrlUseGen ) THEN + WRITE(msgBuf,'(A,A)') + & 'S/R CTRL_READPARMS: ctrlUseGen', + & ' is no longer allowed in file "data.ctrl"' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_hflux', + I xx_hfluxstartdate1, xx_hfluxstartdate2, + I xx_hfluxperiod, xx_hflux_file, ' ', + I xx_hflux_remo_intercept, xx_hflux_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sflux', + I xx_sfluxstartdate1, xx_sfluxstartdate2, + I xx_sfluxperiod, xx_sflux_file, ' ', + I xx_sflux_remo_intercept,xx_sflux_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tauu', + I xx_tauustartdate1, xx_tauustartdate2, + I xx_tauuperiod, xx_tauu_file, ' ', + I xx_tauu_remo_intercept, xx_tauu_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tauv', + I xx_tauvstartdate1,xx_tauvstartdate2, + I xx_tauvperiod, xx_tauv_file, ' ', + I xx_tauv_remo_intercept, xx_tauv_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_atemp', + I xx_atempstartdate1, xx_atempstartdate2, + I xx_atempperiod, xx_atemp_file, xx_atemp_mean_file, + I xx_atemp_remo_intercept, xx_atemp_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_aqh', + I xx_aqhstartdate1, xx_aqhstartdate2, + I xx_aqhperiod, xx_aqh_file, xx_aqh_mean_file, + I xx_aqh_remo_intercept, xx_aqh_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_precip', + I xx_precipstartdate1, xx_precipstartdate2, + I xx_precipperiod, xx_precip_file, xx_precip_mean_file, + I xx_precip_remo_intercept, xx_precip_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sflux', + I xx_sfluxstartdate1, xx_sfluxstartdate2, + I xx_sfluxperiod, xx_sflux_file, ' ', + I xx_sflux_remo_intercept,xx_sflux_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS('xx_swdown', + I xx_swdownstartdate1, xx_swdownstartdate2, + I xx_swdownperiod, xx_swdown_file, xx_swdown_mean_file, + I xx_swdown_remo_intercept, xx_swdown_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS('xx_lwflux', + I xx_lwfluxstartdate1, xx_lwfluxstartdate2, + I xx_lwfluxperiod, xx_lwflux_file, ' ', + I xx_lwflux_remo_intercept, xx_lwflux_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS('xx_lwdown', + I xx_lwdownstartdate1, xx_lwdownstartdate2, + I xx_lwdownperiod, xx_lwdown_file, ' ', + I xx_lwdown_remo_intercept, xx_lwdown_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_evap', + I xx_evapstartdate1, xx_evapstartdate2, + I xx_evapperiod, xx_evap_file, ' ', + I xx_evap_remo_intercept, xx_evap_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_snowprecip', + I xx_snowprecipstartdate1, xx_snowprecipstartdate2, + I xx_snowprecipperiod, xx_snowprecip_file, ' ', + I xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_apressure', + I xx_apressurestartdate1, xx_apressurestartdate2, + I xx_apressureperiod, xx_apressure_file, ' ', + I xx_apressure_remo_intercept, xx_apressure_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_runoff', + I xx_runoffstartdate1, xx_runoffstartdate2, + I xx_runoffperiod, xx_runoff_file, ' ', + I xx_runoff_remo_intercept, xx_runoff_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_uwind', + I xx_uwindstartdate1, xx_uwindstartdate2, + I xx_uwindperiod, xx_uwind_file, ' ', + I xx_uwind_remo_intercept,xx_uwind_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_vwind', + I xx_vwindstartdate1, xx_vwindstartdate2, + I xx_vwindperiod, xx_vwind_file, ' ', + I xx_vwind_remo_intercept,xx_vwind_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sst', + I xx_sststartdate1, xx_sststartdate2, + I xx_sstperiod, xx_sst_file, ' ', + I xx_sst_remo_intercept, xx_sst_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_sss', + I xx_sssstartdate1, xx_sssstartdate2, + I xx_sssperiod, xx_sss_file, ' ', + I xx_sss_remo_intercept, xx_sss_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_shifwflx', + I xx_shifwflxstartdate1, xx_shifwflxstartdate2, + I xx_shifwflxperiod, xx_shifwflx_file, ' ', + I xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_diffkr_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_diffkr_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_kapgm_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_kapgm_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_kapredi_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_kapredi_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_tr1_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_tr1_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_depth_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_depth_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_efluxy_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_efluxy_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_efluxp_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_efluxp_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_bottomdrag_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_bottomdrag_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_edtaux_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_edtaux_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_edtauy_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_edtauy_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_uvel_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_uvel_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_vvel_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_vvel_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_etan_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_etan_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + CALL CTRL_CHECK_RETIRED_PARMS( 'xx_hfluxm_file', + I UNSET_I, UNSET_I, UNSET_RL, xx_hfluxm_file, ' ', + I UNSET_RL, UNSET_RL, + U nRetired, + I myThid ) + + IF ( nRetired .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') 'S/R CTRL_READPARMS: ', + & 'Error reading parameter file "data.ctrl"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I3,A)') 'S/R CTRL_READPARMS: ', nRetired, + & ' out of date parameters were found in namelist CTRL_NML' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R CTRL_READPARMS' + ENDIF _END_MASTER( myThid ) _BARRIER - return - end + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_SET_RETIRED_PARMS +C !INTERFACE: + SUBROUTINE CTRL_SET_RETIRED_PARMS( + I xx_startdate1, + I xx_startdate2, + I xx_period, + I xx_file, + I xx_mean_file, + I xx_remo_intercept, + I xx_remo_slope, + I myThid ) + +C !DESCRIPTION: +C ================================================================== +C o set some retired parameters +C ================================================================== + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER xx_startdate1, xx_startdate2 + _RL xx_period + CHARACTER*(*) xx_file, xx_mean_file + _RL xx_remo_intercept, xx_remo_slope + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + xx_startdate1 = UNSET_I + xx_startdate2 = UNSET_I + xx_period = UNSET_RL + xx_remo_intercept = UNSET_RL + xx_remo_slope = UNSET_RL + xx_file = ' ' + xx_mean_file = ' ' + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_CHECK_RETIRED_PARMS +C !INTERFACE: + SUBROUTINE CTRL_CHECK_RETIRED_PARMS( + I xx_name, + I xx_startdate1, + I xx_startdate2, + I xx_period, + I xx_file, + I xx_mean_file, + I xx_remo_intercept, + I xx_remo_slope, + U nRetired, + I myThid ) + +C !DESCRIPTION: +C ================================================================== +C o check some retired parameter values +C ================================================================== + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: + CHARACTER*(*) xx_name + INTEGER xx_startdate1, xx_startdate2 + _RL xx_period + CHARACTER*(*) xx_file, xx_mean_file + _RL xx_remo_intercept, xx_remo_slope + INTEGER nRetired + INTEGER myThid + +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER il + CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + + IF ( xx_startdate1 .NE. UNSET_I + & .OR. xx_startdate2 .NE. UNSET_I + & .OR. xx_period .NE. UNSET_RL + & .OR. xx_remo_intercept .NE. UNSET_RL + & .OR. xx_remo_slope .NE. UNSET_RL + & .OR. xx_file .NE. ' ' + & .OR. xx_mean_file .NE. ' ' ) THEN + il = ILNBLNK(xx_name) + WRITE(msgBuf,'(A,A,A)') + & 'S/R CTRL_READPARMS: ', xx_name(1:il), + & '* is no longer allowed in file "data.ctrl"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'S/R CTRL_READPARMS: use generic controls instead' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + + RETURN + END diff --git a/pkg/ctrl/ctrl_set_fname.F b/pkg/ctrl/ctrl_set_fname.F index 0f2131cea2..4fbcee3dbc 100644 --- a/pkg/ctrl/ctrl_set_fname.F +++ b/pkg/ctrl/ctrl_set_fname.F @@ -1,67 +1,63 @@ -C #include "CTRL_OPTIONS.h" - subroutine ctrl_set_fname( xx_fname, fname, mythid ) +CBOP +C !ROUTINE: CTRL_SET_FNAME +C !INTERFACE: + SUBROUTINE CTRL_SET_FNAME( xx_fname, fname, myThid ) -c ================================================================== -c SUBROUTINE ctrl_set_fname -c ================================================================== -c -c o get filename for control variable and adjoint thereof -c o initialise adjoint field -c -c started: heimbach@mit.edu, 16-Aug-2001 -c -c ================================================================== +C !DESCRIPTION: +C ================================================================== +C SUBROUTINE CTRL_SET_FNAME +C ================================================================== +C o get filename for control variable and adjoint thereof +C started: heimbach@mit.edu, 16-Aug-2001 +C ================================================================== - implicit none - -c == global variables == +C !USES: + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "GRID.h" - #include "ctrl.h" #include "optim.h" -c == routine arguments == - - character*(MAX_LEN_FNAM) xx_fname - character*( 80) fname(3) - integer mythid - -c == local variables == - - integer ii - integer il - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - -c-- Only the master thread will do I/O. - _BEGIN_MASTER( mythid ) - - il=ilnblnk( xx_fname ) - - write(fname(1)(1:80),'(80a)') ' ' - write(fname(2)(1:80),'(80a)') ' ' - write(fname(3)(1:80),'(80a)') ' ' - - if ( il .GT. 0 .AND. il .LE. 80 ) then - write(fname(1)(1:80),'(2a,i10.10)') - & xx_fname(1:il) ,'.', optimcycle - write(fname(2)(1:80),'(3a,i10.10)') - & yadprefix, xx_fname(1:il), '.', optimcycle - write(fname(3)(1:80),'(3a,i10.10)') - & 'hn', xx_fname(1:il), '.', optimcycle - endif - - _END_MASTER( mythid ) - - end +C !INPUT/OUTPUT PARAMETERS + CHARACTER*(*) xx_fname + CHARACTER*(MAX_LEN_FNAM) fname(3) + INTEGER myThid + +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER il, ic, l +CEOP + + il = ILNBLNK( xx_fname ) + + IF ( il .GT. 0 .AND. (il+13) .LE. MAX_LEN_FNAM ) THEN + ic = 0 + l = il + DO WHILE ( ic .EQ. 0 .AND. l .GE. 1 ) + IF ( xx_fname(l:l) .EQ. '/' ) ic = l + l = l -1 + ENDDO + + WRITE(fname(1),'(2A,I10.10)') + & xx_fname(1:il), '.', optimcycle + WRITE(fname(2),'(4A,I10.10)') + & xx_fname(1:ic), yadprefix, xx_fname(ic+1:il), '.', + & optimcycle + WRITE(fname(3),'(4A,I10.10)') + & xx_fname(1:ic), 'hn', xx_fname(ic+1:il), '.', + & optimcycle + + ELSE + STOP 'ABNORMAL END: S/R CTRL_SET_FNAME' + ENDIF + + RETURN + END diff --git a/pkg/ctrl/ctrl_set_globfld_xy.F b/pkg/ctrl/ctrl_set_globfld_xy.F index e1634f1906..ed08f5c820 100644 --- a/pkg/ctrl/ctrl_set_globfld_xy.F +++ b/pkg/ctrl/ctrl_set_globfld_xy.F @@ -32,23 +32,20 @@ subroutine ctrl_set_globfld_xy( c == routine arguments == - character*( 80) fname + character*(MAX_LEN_FNAM) fname integer ivartype integer myThid c == local variables == integer bi,bj - integer ip,jp integer i,j,k integer itlo,ithi integer jtlo,jthi - integer jmin,jmax - integer imin,imax integer irec,nrec_nl _RL globfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) + _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) c == external == @@ -58,16 +55,12 @@ subroutine ctrl_set_globfld_xy( jthi = myByHi(myThid) itlo = myBxLo(myThid) ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx c Initialise temporary file do bj = jtlo,jthi do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx globfld2d(i,j,bi,bj) = 0. _d 0 enddo enddo @@ -76,9 +69,9 @@ subroutine ctrl_set_globfld_xy( c Initialise temporary file do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax + do k = 1,Nr + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx globfld3d(i,j,k,bi,bj) = 0. _d 0 enddo enddo diff --git a/pkg/ctrl/ctrl_set_globfld_xyz.F b/pkg/ctrl/ctrl_set_globfld_xyz.F index ebcbd751a8..f4949cab71 100644 --- a/pkg/ctrl/ctrl_set_globfld_xyz.F +++ b/pkg/ctrl/ctrl_set_globfld_xyz.F @@ -27,54 +27,40 @@ subroutine ctrl_set_globfld_xyz( c == routine arguments == - character*( 80) fname + character*(MAX_LEN_FNAM) fname integer ivartype integer myThid c == local variables == integer bi,bj - integer ip,jp integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax integer irec - _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) + _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) c == external == c == end of interface == - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - c Initialise temporary file - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx globfld3d(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO - do irec = 1, ncvarrecs(ivartype) + DO irec = 1, ncvarrecs(ivartype) CALL WRITE_REC_3D_RL( fname, ctrlprec, Nr, & globfld3d, & irec, optimcycle, myThid ) - enddo + ENDDO RETURN END diff --git a/pkg/ctrl/ctrl_set_globfld_xz.F b/pkg/ctrl/ctrl_set_globfld_xz.F index ead97a3fab..6e71c4c800 100644 --- a/pkg/ctrl/ctrl_set_globfld_xz.F +++ b/pkg/ctrl/ctrl_set_globfld_xz.F @@ -1,110 +1,97 @@ -C #include "CTRL_OPTIONS.h" - subroutine ctrl_set_globfld_xz( + SUBROUTINE ctrl_set_globfld_xz( I fname, ivartype, myThid ) -c ================================================================== -c SUBROUTINE ctrl_set_globfld_xz -c ================================================================== -c -c o initialise field -c -c started: heimbach@mit.edu, 16-Aug-2001 -c -c changed: heimbach@mit.edu 17-Jun-2003 -c merged changes from Armin to replace write of -c nr * globfld2d by 1 * globfld3d -c (ad hoc fix to speed up global I/O) -c -c ================================================================== - - implicit none +C ================================================================== +C SUBROUTINE ctrl_set_globfld_xz +C ================================================================== +C +C o initialise field +C +C started: heimbach@mit.edu, 16-Aug-2001 +C +C changed: heimbach@mit.edu 17-Jun-2003 +C merged changes from Armin to replace write of +C nr * globfld2d by 1 * globfld3d +C (ad hoc fix to speed up global I/O) +C +C ================================================================== -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" - #include "ctrl.h" #include "optim.h" -c == routine arguments == - - character*( 80) fname - integer ivartype - integer myThid - -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec,nrec_nl - - _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL globfldxz(1-OLx:sNx+OLx,nr,nSx,nSy) - -c == external == - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - -c Initialise temporary file - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do i = imin,imax +C == routine arguments == + CHARACTER*(MAX_LEN_FNAM) fname + INTEGER ivartype + INTEGER myThid + +C == local variables == + INTEGER bi, bj + INTEGER i, j, k + INTEGER irec, nrec_nl +c _RS dummyRS(1) + _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL globfldxz(1-OLx:sNx+OLx,Nr,nSx,nSy) + +C == end of interface == + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) +C Initialise temporary file + DO k = 1,Nr + DO i = 1-OLx,sNx+OLx globfldxz(i,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -c Initialise temporary file - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax + ENDDO + ENDDO +C Initialise temporary file + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx globfld3d(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO - if ( useSingleCPUio ) then + IF ( useSingleCPUio ) THEN C MDSWRITEFIELDXZ does not know about useSingleCPUio, so the faster C method that works for .not.useSingleCPUio cannot be used nrec_nl = 0 - else - nrec_nl = int(ncvarrecs(ivartype)/Ny) - endif + ELSE + nrec_nl = INT(ncvarrecs(ivartype)/Ny) + ENDIF - do irec = 1, nrec_nl + DO irec = 1, nrec_nl CALL WRITE_REC_3D_RL( fname, ctrlprec, Nr, & globfld3d, & irec, optimcycle, myThid ) - enddo - - do irec = nrec_nl*Ny+1, ncvarrecs(ivartype) - CALL MDSWRITEFIELDXZ( fname, ctrlprec, .FALSE., 'RL', - & Nr, globfldxz, - & irec, optimcycle, myThid ) - enddo + ENDDO + + DO irec = nrec_nl*Ny+1, ncvarrecs(ivartype) +C-- Call directly MDS_WRITE_SEC_XZ (instead of indirectly via MDSWRITEFIELDXZ) +C --> expect zero difference. +C In this call, value "False" is passed to 3rd arg "globalFile" +C and value "False" is passed to 4th arg "useCurrentDir," +c CALL MDS_WRITE_SEC_XZ( fname, ctrlprec, .FALSE., .FALSE., +c I 'RL', Nr, 1, Nr, globfldxz, dummyRS, +c I irec, optimcycle, myThid ) + +C-- The only difference here (vs initial MDSWRITEFIELDXZ call) is that, +C in WRITE_REC_XZ_RL, argument "globalFile" is not set to FALSE but is +C instead taken from RD_WR_SEC common block (but currently set to FALSE +C in ini_model_io.F if using OBCS) + CALL WRITE_REC_XZ_RL( fname, ctrlprec, + I Nr, globfldxz, + I irec, optimcycle, myThid ) + ENDDO RETURN END diff --git a/pkg/ctrl/ctrl_set_globfld_yz.F b/pkg/ctrl/ctrl_set_globfld_yz.F index 12e0efec6d..233cef7300 100644 --- a/pkg/ctrl/ctrl_set_globfld_yz.F +++ b/pkg/ctrl/ctrl_set_globfld_yz.F @@ -1,110 +1,97 @@ -C #include "CTRL_OPTIONS.h" - subroutine ctrl_set_globfld_yz( + SUBROUTINE ctrl_set_globfld_yz( I fname, ivartype, myThid ) -c ================================================================== -c SUBROUTINE ctrl_set_globfld_yz -c ================================================================== -c -c o initialise field -c -c started: heimbach@mit.edu, 16-Aug-2001 -c -c changed: heimbach@mit.edu 17-Jun-2003 -c merged changes from Armin to replace write of -c nr * globfld2d by 1 * globfld3d -c (ad hoc fix to speed up global I/O) -c -c ================================================================== - - implicit none +C ================================================================== +C SUBROUTINE ctrl_set_globfld_yz +C ================================================================== +C +C o initialise field +C +C started: heimbach@mit.edu, 16-Aug-2001 +C +C changed: heimbach@mit.edu 17-Jun-2003 +C merged changes from Armin to replace write of +C nr * globfld2d by 1 * globfld3d +C (ad hoc fix to speed up global I/O) +C +C ================================================================== -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" - #include "ctrl.h" #include "optim.h" -c == routine arguments == - - character*( 80) fname - integer ivartype - integer myThid - -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec,nrec_nl - - _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL globfldyz(1-OLy:sNy+OLy,nr,nSx,nSy) - -c == external == - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - -c Initialise temporary file - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax +C == routine arguments == + CHARACTER*(MAX_LEN_FNAM) fname + INTEGER ivartype + INTEGER myThid + +C == local variables == + INTEGER bi, bj + INTEGER i, j, k + INTEGER irec, nrec_nl +c _RS dummyRS(1) + _RL globfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL globfldyz(1-OLy:sNy+OLy,Nr,nSx,nSy) + +C == end of interface == + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) +C Initialise temporary file + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy globfldyz(j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -c Initialise temporary file - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax + ENDDO + ENDDO +C Initialise temporary file + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx globfld3d(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO - if ( useSingleCPUio ) then + IF ( useSingleCPUio ) THEN C MDSWRITEFIELDYZ does not know about useSingleCPUio, so the faster C method that works for .not.useSingleCPUio cannot be used nrec_nl = 0 - else - nrec_nl = int(ncvarrecs(ivartype)/Nx) - endif + ELSE + nrec_nl = INT(ncvarrecs(ivartype)/Nx) + ENDIF - do irec = 1, nrec_nl + DO irec = 1, nrec_nl CALL WRITE_REC_3D_RL( fname, ctrlprec, Nr, & globfld3d, & irec, optimcycle, myThid ) - enddo - - do irec = nrec_nl*Nx+1, ncvarrecs(ivartype) - CALL MDSWRITEFIELDYZ( fname, ctrlprec, .FALSE., 'RL', - & Nr, globfldyz, - & irec, optimcycle, myThid ) - enddo + ENDDO + + DO irec = nrec_nl*Nx+1, ncvarrecs(ivartype) +C-- Call directly MDS_WRITE_SEC_YZ (instead of indirectly via MDSWRITEFIELDYZ) +C --> expect zero difference. +C In this call, value "False" is passed to 3rd arg "globalFile" +C and value "False" is passed to 4th arg "useCurrentDir," +c CALL MDS_WRITE_SEC_YZ( fname, ctrlprec, .FALSE., .FALSE., +c I 'RL', Nr, 1, Nr, globfldyz, dummyRS, +c I irec, optimcycle, myThid ) + +C-- The only difference here (vs initial MDSWRITEFIELDYZ call) is that, +C in WRITE_REC_YZ_RL, argument "globalFile" is not set to FALSE but is +C instead taken from RD_WR_SEC common block (but currently set to FALSE +C in ini_model_io.F if using OBCS) + CALL WRITE_REC_YZ_RL( fname, ctrlprec, + I Nr, globfldyz, + I irec, optimcycle, myThid ) + ENDDO RETURN END diff --git a/pkg/ctrl/ctrl_set_pack_xy.F b/pkg/ctrl/ctrl_set_pack_xy.F index 784b09b11b..68fb162a7d 100644 --- a/pkg/ctrl/ctrl_set_pack_xy.F +++ b/pkg/ctrl/ctrl_set_pack_xy.F @@ -3,7 +3,7 @@ subroutine ctrl_set_pack_xy( & cunit, ivartype, precondScalar, & fname, masktype, weighttype, - & lxxadxx, mythid) + & lxxadxx, mythid ) c ================================================================== c SUBROUTINE ctrl_set_pack_xy @@ -31,67 +31,65 @@ subroutine ctrl_set_pack_xy( integer cunit integer ivartype _RL precondScalar - character*( 80) fname, fnameGlobal + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype + character*(MAX_LEN_FNAM) weighttype logical lxxadxx integer mythid #ifndef EXCLUDE_CTRL_PACK -# ifndef ALLOW_PACKUNPACK_METHOD2 -c == local variables == +c == external == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj - integer ip,jp integer i,j,k - integer ii - integer il - integer irec,nrec_nl + integer ii, irec + integer cbuffindex + real*4 cbuff( sNx*nSx*nPx*sNy*nSy*nPy ) + character*(MAX_LEN_FNAM) cfile2, cfile3 +C======================================================================== +# ifndef ALLOW_PACKUNPACK_METHOD2 + integer ip,jp + integer nrec_nl integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - - integer cbuffindex - - _RL globmsk ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - _RL weightfld2d( snx,nsx,npx,sny,nsy,npy ) -#endif - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*( 80) weightname - + _RL globmsk ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - real*4 globfldtmp2( snx,nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,sny,nsy,npy ) - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - + real*4 globfldtmp2( sNx,nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,sNy,nSy,nPy ) +# else /* ALLOW_PACKUNPACK_METHOD2 */ + integer il + _RL msk3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + real*8 msk2d_buf (sNx,sNy,nSx,nSy) + real*8 msk2d_buf_glo(Nx,Ny) + real*8 fld2d_buf (sNx,sNy,nSx,nSy) + real*8 fld2d_buf_glo(Nx,Ny) + _RL fld2dDim (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL fld2dNodim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL dummy +# endif /* ALLOW_PACKUNPACK_METHOD2 */ c == end of interface == +# ifndef ALLOW_PACKUNPACK_METHOD2 jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx nbuffglobal = nbuffglobal + 1 - doPackOld = (.NOT.ctrlSmoothCorrel2D).AND.(.NOT.ctrlUseGen) c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -114,25 +112,23 @@ subroutine ctrl_set_pack_xy( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_pack_nonout_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_pack_dimout_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_pack_nonout_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_pack_dimout_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = FLOAT(snx*nsx*npx*sny*nsy*npy*4) + reclen = FLOAT(sNx*nSx*nPx*sNy*nSy*nPy*4) call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -141,31 +137,6 @@ subroutine ctrl_set_pack_xy( & access='direct', recl=reclen ) endif -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (weighttype.NE.' ') then - il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) - call MDSREADFIELD_2D_GL( - & weightname, ctrlprec, 'RL', - & 1, weightfld2d, 1, mythid) - else - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - weightfld2d(i,bi,ip,j,bj,jp) = 1. _d 0 - enddo - enddo - enddo - enddo - enddo - enddo - endif -#endif - call MDSREADFIELD_3D_GL( & masktype, ctrlprec, 'RL', & Nr, globmsk, 1, mythid) @@ -173,171 +144,119 @@ subroutine ctrl_set_pack_xy( nrec_nl=int(ncvarrecs(ivartype)/Nr) do irec = 1, nrec_nl - call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', - & Nr, globfld3d, irec, mythid) - do k = 1, Nr - irectrue = (irec-1)*nr + k + call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', + & Nr, globfld3d, irec, mythid) + do k = 1, Nr + irectrue = (irec-1)*Nr + k #ifndef ALLOW_ADMTLM - write(cunit) ncvarindex(ivartype) - write(cunit) 1 - write(cunit) 1 + write(cunit) ncvarindex(ivartype) + write(cunit) 1 + write(cunit) 1 #endif - cbuffindex = 0 - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - if (globmsk(i,bi,ip,j,bj,jp,1) .ne. 0. ) then - cbuffindex = cbuffindex + 1 + cbuffindex = 0 + do jp = 1,nPy + do bj = jtlo,jthi + do j = jmin,jmax + do ip = 1,nPx + do bi = itlo,ithi + do i = imin,imax + if (globmsk(i,bi,ip,j,bj,jp,1) .ne. 0. ) then + cbuffindex = cbuffindex + 1 cph( - globfldtmp3(i,bi,ip,j,bj,jp) = - & globfld3d(i,bi,ip,j,bj,jp,k) + globfldtmp3(i,bi,ip,j,bj,jp) = + & globfld3d(i,bi,ip,j,bj,jp,k) cph) - IF ( doPackOld ) THEN -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) * - & sqrt(weightfld2d(i,bi,ip,j,bj,jp)) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) / - & sqrt(weightfld2d(i,bi,ip,j,bj,jp)) - & * PrecondScalar - endif -#else - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & * PrecondScalar - endif -#endif - ELSE ! IF ( doPackOld ) THEN - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & * PrecondScalar - endif - ENDIF !IF ( doPackOld ) THEN + if (lxxadxx) then + cbuff(cbuffindex) = + & globfld3d(i,bi,ip,j,bj,jp,k) + & / PrecondScalar + else + cbuff(cbuffindex) = + & globfld3d(i,bi,ip,j,bj,jp,k) + & * PrecondScalar + endif cph( - globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) + globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) cph) #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - phtmpadmtlm(nveccount) = cbuff(cbuffindex) + nveccount = nveccount + 1 + phtmpadmtlm(nveccount) = cbuff(cbuffindex) #endif - endif - enddo - enddo - enddo - enddo + endif enddo enddo + enddo + enddo + enddo + enddo c --> check cbuffindex. - if ( cbuffindex .gt. 0) then + if ( cbuffindex .gt. 0) then #ifndef ALLOW_ADMTLM - write(cunit) cbuffindex - write(cunit) 1 + write(cunit) cbuffindex + write(cunit) 1 cph#endif - write(cunit) (cbuff(ii), ii=1,cbuffindex) + write(cunit) (cbuff(ii), ii=1,cbuffindex) #endif - endif + endif c - if ( doPackDiag ) then - write(cunit2,rec=irectrue) globfldtmp2 - write(cunit3,rec=irectrue) globfldtmp3 - endif + if ( doPackDiag ) then + write(cunit2,rec=irectrue) globfldtmp2 + write(cunit3,rec=irectrue) globfldtmp3 + endif c - enddo + enddo c c -- end of irec loop -- enddo do irec = nrec_nl*Nr+1, ncvarrecs(ivartype) - call MDSREADFIELD_2D_GL( fname, ctrlprec, 'RL', + call MDSREADFIELD_2D_GL( fname, ctrlprec, 'RL', & 1, globfld3d(1,1,1,1,1,1,1), irec, mythid) #ifndef ALLOW_ADMTLM - write(cunit) ncvarindex(ivartype) - write(cunit) 1 - write(cunit) 1 + write(cunit) ncvarindex(ivartype) + write(cunit) 1 + write(cunit) 1 #endif - do k = 1, 1 - irectrue = irec - cbuffindex = 0 - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then - cbuffindex = cbuffindex + 1 + do k = 1, 1 + irectrue = irec + cbuffindex = 0 + do jp = 1,nPy + do bj = jtlo,jthi + do j = jmin,jmax + do ip = 1,nPx + do bi = itlo,ithi + do i = imin,imax + if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then + cbuffindex = cbuffindex + 1 cph( - globfldtmp3(i,bi,ip,j,bj,jp) = - & globfld3d(i,bi,ip,j,bj,jp,k) + globfldtmp3(i,bi,ip,j,bj,jp) = + & globfld3d(i,bi,ip,j,bj,jp,k) cph) - IF ( doPackOld ) THEN -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) * - & sqrt(weightfld2d(i,bi,ip,j,bj,jp)) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) / - & sqrt(weightfld2d(i,bi,ip,j,bj,jp)) - & * PrecondScalar - endif -#else - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & * PrecondScalar - endif -#endif - ELSE !IF ( doPackOld ) THEN - if (lxxadxx) then - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & / PrecondScalar - else - cbuff(cbuffindex) = - & globfld3d(i,bi,ip,j,bj,jp,k) - & * PrecondScalar - endif - ENDIF !IF ( doPackOld ) THEN + if (lxxadxx) then + cbuff(cbuffindex) = + & globfld3d(i,bi,ip,j,bj,jp,k) + & / PrecondScalar + else + cbuff(cbuffindex) = + & globfld3d(i,bi,ip,j,bj,jp,k) + & * PrecondScalar + endif cph( - globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) + globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) cph) #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - phtmpadmtlm(nveccount) = cbuff(cbuffindex) + nveccount = nveccount + 1 + phtmpadmtlm(nveccount) = cbuff(cbuffindex) #endif - endif - enddo - enddo - enddo - enddo + endif enddo enddo + enddo + enddo + enddo + enddo c --> check cbuffindex. if ( cbuffindex .gt. 0) then #ifndef ALLOW_ADMTLM @@ -365,62 +284,10 @@ subroutine ctrl_set_pack_xy( _END_MASTER( mythid ) -# else -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer ii - integer il - integer irec - integer itlo,ithi - integer jtlo,jthi - - integer cbuffindex - - _RL msk3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 msk2d_buf(sNx,sNy,nSx,nSy) - real*8 msk2d_buf_glo(Nx,Ny) - - _RL fld2d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - real*8 fld2d_buf(sNx,sNy,nSx,nSy) - real*8 fld2d_buf_glo(Nx,Ny) - - _RL fld2dDim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - _RL fld2dNodim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - - _RL wei2d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*(80) weightname - _RL delZnorm - character*(80) cfile2, cfile3 - _RL dummy - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == +# else /* ALLOW_PACKUNPACK_METHOD2 */ c-- part 1: preliminary reads and definitions - doPackOld = (.NOT.ctrlSmoothCorrel2D).AND.(.NOT.ctrlUseGen) - -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO -#ifdef ALLOW_AUTODIFF - call active_read_xy(weighttype, wei2d, 1, - & .FALSE., .FALSE., 0 , mythid, dummy) -#else - CALL READ_REC_XY_RL( weighttype, wei2d, 1, 1, myThid ) -#endif -#endif - #ifdef ALLOW_AUTODIFF call active_read_xyz(masktype, msk3d, 1, & .FALSE., .FALSE., 0 , mythid, dummy) @@ -429,15 +296,13 @@ subroutine ctrl_set_pack_xy( #endif if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' il = ilnblnk( fname ) if ( lxxadxx ) then - write(cfile2(1:80),'(2a)') fname(1:il),'.pack_ctrl_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.pack_ctrl_dim' + write(cfile2,'(2a)') fname(1:il),'.pack_ctrl_adim' + write(cfile3,'(2a)') fname(1:il),'.pack_ctrl_dim' else - write(cfile2(1:80),'(2a)') fname(1:il),'.pack_grad_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.pack_grad_dim' + write(cfile2,'(2a)') fname(1:il),'.pack_grad_adim' + write(cfile3,'(2a)') fname(1:il),'.pack_grad_dim' endif endif @@ -458,35 +323,13 @@ subroutine ctrl_set_pack_xy( fld2dDim(i,j,bi,bj)=0. _d 0 fld2dNodim(i,j,bi,bj)=0. _d 0 else - IF ( .NOT.doPackOld ) THEN if (lxxadxx) then - fld2dNodim(i,j,bi,bj) = - & fld2dDim(i,j,bi,bj) / PrecondScalar + fld2dNodim(i,j,bi,bj) = + & fld2dDim(i,j,bi,bj) / PrecondScalar else - fld2dNodim(i,j,bi,bj) = + fld2dNodim(i,j,bi,bj) = & fld2dDim(i,j,bi,bj) * PrecondScalar endif - ELSE !IF ( .NOT.doPackOld ) THEN -# ifndef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (lxxadxx) then - fld2dNodim(i,j,bi,bj) = fld2dDim(i,j,bi,bj) - & / PrecondScalar - else - fld2dNodim(i,j,bi,bj) = fld2dDim(i,j,bi,bj) - & * PrecondScalar - endif -# else - if (lxxadxx) then - fld2dNodim(i,j,bi,bj) = - & fld2dDim(i,j,bi,bj) * sqrt(wei2d(i,j,bi,bj)) - & / PrecondScalar - else - fld2dNodim(i,j,bi,bj) = - & fld2dDim(i,j,bi,bj) / sqrt(wei2d(i,j,bi,bj)) - & * PrecondScalar - endif -# endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ENDIF !IF ( .NOT.doPackOld ) THEN endif ENDDO ENDDO @@ -567,4 +410,3 @@ subroutine ctrl_set_pack_xy( return end - diff --git a/pkg/ctrl/ctrl_set_pack_xyz.F b/pkg/ctrl/ctrl_set_pack_xyz.F index 77d57298ea..1f4a66baaf 100644 --- a/pkg/ctrl/ctrl_set_pack_xyz.F +++ b/pkg/ctrl/ctrl_set_pack_xyz.F @@ -2,7 +2,7 @@ subroutine ctrl_set_pack_xyz( & cunit, ivartype, fname, masktype, weighttype, - & weightfld, lxxadxx, mythid) + & weightfld, lxxadxx, mythid ) c ================================================================== c SUBROUTINE ctrl_set_pack_xyz @@ -34,64 +34,70 @@ subroutine ctrl_set_pack_xyz( integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype - _RL weightfld( nr,nsx,nsy ) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nSx,nSy ) logical lxxadxx integer mythid #ifndef EXCLUDE_CTRL_PACK -# ifndef ALLOW_PACKUNPACK_METHOD2 -c == local variables == +c == external == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj - integer ip,jp integer i,j,k - integer ii - integer irec + integer ii, irec + integer cbuffindex + real*4 cbuff( sNx*nSx*nPx*sNy*nSy*nPy ) + character*(MAX_LEN_FNAM) cfile2, cfile3 +C======================================================================== +# ifndef ALLOW_PACKUNPACK_METHOD2 + integer ip,jp integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - - integer cbuffindex - - _RL globmsk ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) + _RL globmsk ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) #ifdef CTRL_PACK_PRECISE integer il - character*(80) weightname - _RL weightfld3d( snx,nsx,npx,sny,nsy,npy,nr ) + character*(MAX_LEN_FNAM) weightname + _RL weightfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) #endif - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - real*4 globfldtmp2( snx,nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,sny,nsy,npy ) - + real*4 globfldtmp2( sNx,nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,sNy,nSy,nPy ) _RL delZnorm integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - +# else /* ALLOW_PACKUNPACK_METHOD2 */ + integer il + _RL msk3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + real*8 msk2d_buf(sNx,sNy,nSx,nSy) + real*8 msk2d_buf_glo(Nx,Ny) + real*8 fld2d_buf(sNx,sNy,nSx,nSy) + real*8 fld2d_buf_glo(Nx,Ny) + _RL fld3dDim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL fld3dNodim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#ifdef CTRL_PACK_PRECISE + _RL wei3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + _RL delZnorm + _RL dummy +# endif /* ALLOW_PACKUNPACK_METHOD2 */ c == end of interface == +# ifndef ALLOW_PACKUNPACK_METHOD2 jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx - - doPackOld = (.NOT.ctrlSmoothCorrel3D).AND.(.NOT.ctrlUseGen) + imax = sNx #ifdef CTRL_DELZNORM delZnorm = 0. @@ -101,7 +107,7 @@ subroutine ctrl_set_pack_xyz( #endif c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -124,25 +130,23 @@ subroutine ctrl_set_pack_xyz( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_pack_nonout_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_pack_dimout_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_pack_nonout_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_pack_dimout_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = FLOAT(snx*nsx*npx*sny*nsy*npy*4) + reclen = FLOAT(sNx*nSx*nPx*sNy*nSy*nPy*4) call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -154,13 +158,12 @@ subroutine ctrl_set_pack_xyz( #ifdef CTRL_PACK_PRECISE if (weighttype.NE.' ') then il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_3D_GL( & weightname, ctrlprec, 'RL', & Nr, weightfld3d, 1, mythid) else - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -184,149 +187,77 @@ subroutine ctrl_set_pack_xyz( do irec = 1, ncvarrecs(ivartype) - call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', - & Nr, globfld3d, irec, mythid) + call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', + & Nr, globfld3d, irec, mythid) #ifndef ALLOW_ADMTLM - write(cunit) ncvarindex(ivartype) - write(cunit) 1 - write(cunit) 1 + write(cunit) ncvarindex(ivartype) + write(cunit) 1 + write(cunit) 1 #endif - do k = 1, nr - irectrue = (irec-1)*nr + k - if ( doZscalePack ) then - delZnorm = (delR(1)/delR(k))**delZexp - else - delZnorm = 1. _d 0 - endif - cbuffindex = 0 - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then - cbuffindex = cbuffindex + 1 -cph( - globfldtmp3(i,bi,ip,j,bj,jp) = - & globfld3d(i,bi,ip,j,bj,jp,k) -cph) - IF ( doPackOld ) THEN -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (lxxadxx) then - cbuff(cbuffindex) = 1/delZnorm - & * globfld3d(i,bi,ip,j,bj,jp,k) -# ifdef CTRL_PACK_PRECISE - & * sqrt(weightfld3d(i,bi,ip,j,bj,jp,k)) -# else - & * sqrt(weightfld(k,bi,bj)) -# endif - else - cbuff(cbuffindex) = delZnorm - & * globfld3d(i,bi,ip,j,bj,jp,k) -# ifdef CTRL_PACK_PRECISE - & / sqrt(weightfld3d(i,bi,ip,j,bj,jp,k)) -# else - & / sqrt(weightfld(k,bi,bj)) -# endif - endif + do k = 1, Nr + irectrue = (irec-1)*Nr + k + if ( doZscalePack ) then + delZnorm = (delR(1)/delR(k))**delZexp + else + delZnorm = 1. _d 0 + endif + cbuffindex = 0 + do jp = 1,nPy + do bj = jtlo,jthi + do j = jmin,jmax + do ip = 1,nPx + do bi = itlo,ithi + do i = imin,imax + if (globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then + cbuffindex = cbuffindex + 1 cph( - globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) + globfldtmp3(i,bi,ip,j,bj,jp) = + & globfld3d(i,bi,ip,j,bj,jp,k) cph) -#else /* ALLOW_NONDIMENSIONAL_CONTROL_IO undef */ - cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) -#endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ELSE !IF ( doPackOld ) THEN - cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) - ENDIF !IF ( doPackOld ) THEN + cbuff(cbuffindex) = globfld3d(i,bi,ip,j,bj,jp,k) #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - phtmpadmtlm(nveccount) = cbuff(cbuffindex) + nveccount = nveccount + 1 + phtmpadmtlm(nveccount) = cbuff(cbuffindex) #endif - endif - enddo - enddo - enddo - enddo + endif enddo enddo + enddo + enddo + enddo + enddo c --> check cbuffindex. - if ( cbuffindex .gt. 0) then + if ( cbuffindex .gt. 0) then #ifndef ALLOW_ADMTLM - write(cunit) cbuffindex - write(cunit) k + write(cunit) cbuffindex + write(cunit) k cph#endif - write(cunit) (cbuff(ii), ii=1,cbuffindex) + write(cunit) (cbuff(ii), ii=1,cbuffindex) #endif - endif + endif c - if ( doPackDiag ) then - write(cunit2,rec=irectrue) globfldtmp2 - write(cunit3,rec=irectrue) globfldtmp3 - endif + if ( doPackDiag ) then + write(cunit2,rec=irectrue) globfldtmp2 + write(cunit3,rec=irectrue) globfldtmp3 + endif c - enddo + enddo c c -- end of irec loop -- enddo if ( doPackDiag ) then - close ( cunit2 ) - close ( cunit3 ) + close ( cunit2 ) + close ( cunit3 ) endif _END_MASTER( mythid ) -# else -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer ii - integer il - integer irec - integer itlo,ithi - integer jtlo,jthi - - integer cbuffindex - - _RL msk3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 msk2d_buf(sNx,sNy,nSx,nSy) - real*8 msk2d_buf_glo(Nx,Ny) - - _RL fld3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 fld2d_buf(sNx,sNy,nSx,nSy) - real*8 fld2d_buf_glo(Nx,Ny) - - _RL fld3dDim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL fld3dNodim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - -#ifdef CTRL_PACK_PRECISE - _RL wei3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) -#endif - - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*(80) weightname - _RL delZnorm - character*(80) cfile2, cfile3 - _RL dummy - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == +# else /* ALLOW_PACKUNPACK_METHOD2 */ c-- part 1: preliminary reads and definitions - doPackOld = (.NOT.ctrlSmoothCorrel3D).AND.(.NOT.ctrlUseGen) - #ifdef CTRL_PACK_PRECISE #ifdef ALLOW_AUTODIFF call active_read_xyz(weighttype, wei3d, 1, @@ -344,15 +275,13 @@ subroutine ctrl_set_pack_xyz( #endif if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' il = ilnblnk( fname ) if ( lxxadxx ) then - write(cfile2(1:80),'(2a)') fname(1:il),'.pack_ctrl_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.pack_ctrl_dim' + write(cfile2,'(2a)') fname(1:il),'.pack_ctrl_adim' + write(cfile3,'(2a)') fname(1:il),'.pack_ctrl_dim' else - write(cfile2(1:80),'(2a)') fname(1:il),'.pack_grad_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.pack_grad_dim' + write(cfile2,'(2a)') fname(1:il),'.pack_grad_adim' + write(cfile3,'(2a)') fname(1:il),'.pack_grad_dim' endif endif @@ -361,124 +290,100 @@ subroutine ctrl_set_pack_xyz( do irec = 1, ncvarrecs(ivartype) c-- 2.1: - call READ_REC_3D_RL( fname, ctrlprec, + CALL READ_REC_3D_RL( fname, ctrlprec, & Nr, fld3dDim, irec, 0, mythid) c-- 2.2: normalize field if needed - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO k=1,Nr - if ( doZscalePack ) then - delZnorm = (delR(1)/delR(k))**delZexp - else - delZnorm = 1. _d 0 - endif - DO j=1,sNy - DO i=1,sNx - if (msk3d(i,j,k,bi,bj).EQ.0. _d 0) then - fld3dDim(i,j,k,bi,bj)=0. _d 0 - fld3dNodim(i,j,k,bi,bj)=0. _d 0 - else - IF ( .NOT.doPackOld ) THEN - fld3dNodim(i,j,k,bi,bj)=fld3dDim(i,j,k,bi,bj) - ELSE !IF ( .NOT.doPackOld ) THEN -# ifndef ALLOW_NONDIMENSIONAL_CONTROL_IO - fld3dNodim(i,j,k,bi,bj) = fld3dDim(i,j,k,bi,bj) -# else - if (lxxadxx) then - fld3dNodim(i,j,k,bi,bj) = - & fld3dDim(i,j,k,bi,bj) / delZnorm -# ifdef CTRL_PACK_PRECISE - & * sqrt(wei3d(i,j,k,bi,bj)) -# else - & * sqrt(weightfld(k,bi,bj)) -# endif + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + if ( doZscalePack ) then + delZnorm = (delR(1)/delR(k))**delZexp + else + delZnorm = 1. _d 0 + endif + DO j=1,sNy + DO i=1,sNx + if (msk3d(i,j,k,bi,bj).EQ.0. _d 0) then + fld3dDim(i,j,k,bi,bj)=0. _d 0 + fld3dNodim(i,j,k,bi,bj)=0. _d 0 else - fld3dNodim(i,j,k,bi,bj) = - & fld3dDim(i,j,k,bi,bj) * delZnorm -# ifdef CTRL_PACK_PRECISE - & / sqrt(wei3d(i,j,k,bi,bj)) -# else - & / sqrt(weightfld(k,bi,bj)) -# endif + fld3dNodim(i,j,k,bi,bj)=fld3dDim(i,j,k,bi,bj) endif -# endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ENDIF !IF ( .NOT.doPackOld ) THEN - endif + ENDDO ENDDO ENDDO ENDDO ENDDO - ENDDO c-- 2.3: - if ( doPackDiag ) then + if ( doPackDiag ) then c error: twice the same one - call WRITE_REC_3D_RL( cfile2, ctrlprec, - & Nr, fld3dNodim, irec, 0, mythid) - call WRITE_REC_3D_RL( cfile3, ctrlprec, - & Nr, fld3dDim, irec, 0, mythid) - endif + call WRITE_REC_3D_RL( cfile2, ctrlprec, + & Nr, fld3dNodim, irec, 0, mythid) + call WRITE_REC_3D_RL( cfile3, ctrlprec, + & Nr, fld3dDim, irec, 0, mythid) + endif c-- 2.4: array -> buffer -> global buffer -> global file #ifndef ALLOW_ADMTLM - _BEGIN_MASTER( mythid ) - IF ( myProcId .eq. 0 ) THEN - write(cunit) ncvarindex(ivartype) - write(cunit) 1 - write(cunit) 1 - ENDIF - _END_MASTER( mythid ) - _BARRIER + _BEGIN_MASTER( mythid ) + IF ( myProcId .eq. 0 ) THEN + write(cunit) ncvarindex(ivartype) + write(cunit) 1 + write(cunit) 1 + ENDIF + _END_MASTER( mythid ) + _BARRIER #endif - do k = 1, nr + do k = 1, Nr CALL MDS_PASS_R8toRL( fld2d_buf, fld3dNodim, - & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) + & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) CALL BAR2( myThid ) CALL GATHER_2D_R8( fld2d_buf_glo, fld2d_buf, - & Nx,Ny,.FALSE.,.TRUE.,myThid) + & Nx,Ny,.FALSE.,.TRUE.,myThid) CALL BAR2( myThid ) CALL MDS_PASS_R8toRL( msk2d_buf, msk3d, - & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) + & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) CALL BAR2( myThid ) CALL GATHER_2D_R8( msk2d_buf_glo, msk2d_buf, - & Nx,Ny,.FALSE.,.TRUE.,myThid) + & Nx,Ny,.FALSE.,.TRUE.,myThid) CALL BAR2( myThid ) _BEGIN_MASTER( mythid ) cbuffindex = 0 IF ( myProcId .eq. 0 ) THEN - DO j=1,Ny + DO j=1,Ny DO i=1,Nx - if (msk2d_buf_glo(i,j) .ne. 0. ) then - cbuffindex = cbuffindex + 1 - cbuff(cbuffindex) = fld2d_buf_glo(i,j) + if (msk2d_buf_glo(i,j) .ne. 0. ) then + cbuffindex = cbuffindex + 1 + cbuff(cbuffindex) = fld2d_buf_glo(i,j) #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - phtmpadmtlm(nveccount) = cbuff(cbuffindex) + nveccount = nveccount + 1 + phtmpadmtlm(nveccount) = cbuff(cbuffindex) #endif - endif + endif ENDDO - ENDDO + ENDDO #ifndef ALLOW_ADMTLM - if ( cbuffindex .gt. 0) then + if ( cbuffindex .gt. 0) then write(cunit) cbuffindex write(cunit) k write(cunit) (cbuff(ii), ii=1,cbuffindex) - endif + endif #endif ENDIF _END_MASTER( mythid ) _BARRIER - enddo + enddo enddo # endif /* ALLOW_PACKUNPACK_METHOD2 */ diff --git a/pkg/ctrl/ctrl_set_pack_xz.F b/pkg/ctrl/ctrl_set_pack_xz.F index 75374cbb81..299b45f865 100644 --- a/pkg/ctrl/ctrl_set_pack_xz.F +++ b/pkg/ctrl/ctrl_set_pack_xz.F @@ -38,10 +38,10 @@ subroutine ctrl_set_pack_xz( integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype - _RL weightfld( nr,nobcs ) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nobcs ) logical lxxadxx integer mythid @@ -61,18 +61,18 @@ subroutine ctrl_set_pack_xz( integer cbuffindex integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - - real*4 cbuff ( snx*nsx*npx*nsy*npy ) - real*4 globfldtmp2( snx,nsx,npx,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,nsy,npy ) - _RL globfldxz ( snx,nsx,npx,nsy,npy,nr ) - _RL globfld3d ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globmskxz ( snx,nsx,npx,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) cfile2, cfile3 + + real*4 cbuff ( sNx*nSx*nPx*nSy*nPy ) + real*4 globfldtmp2( sNx,nSx,nPx,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,nSy,nPy ) + _RL globfldxz ( sNx,nSx,nPx,nSy,nPy,Nr ) + _RL globfld3d ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globmskxz ( sNx,nSx,nPx,nSy,nPy,Nr,nobcs ) #ifdef CTRL_PACK_PRECISE integer il - character*(80) weightname - _RL weightfldxz( snx,nsx,npx,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) weightname + _RL weightfldxz( sNx,nSx,nPx,nSy,nPy,Nr,nobcs ) c == external == @@ -83,16 +83,16 @@ subroutine ctrl_set_pack_xz( c == end of interface == jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do ip = 1,nPx @@ -111,7 +111,7 @@ subroutine ctrl_set_pack_xz( enddo enddo c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -131,25 +131,23 @@ subroutine ctrl_set_pack_xz( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_pack_nonout_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_pack_dimout_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_pack_nonout_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_pack_dimout_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = snx*nsx*npx*nsy*npy*4 + reclen = sNx*nSx*nPx*nSy*nPy*4 call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -164,8 +162,7 @@ subroutine ctrl_set_pack_xz( & Nr, globmskxz(1,1,1,1,1,1,iobcs), iobcs, mythid) #ifdef CTRL_PACK_PRECISE il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_XZ_GL( & weightname, ctrlprec, 'RL', & Nr, weightfldxz(1,1,1,1,1,1,iobcs), iobcs, mythid) @@ -181,23 +178,23 @@ subroutine ctrl_set_pack_xz( endif do irec = 1, nrec_nl call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', - & nr, globfld3d, irec, mythid) - do j=1,sny - iobcs= mod((irec-1)*sny+j-1,nobcs)+1 + & Nr, globfld3d, irec, mythid) + do j=1,sNy + iobcs= mod((irec-1)*sNy+j-1,nobcs)+1 write(cunit) ncvarindex(ivartype) write(cunit) 1 write(cunit) 1 - do k = 1,nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + do k = 1,Nr + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = 0 do jp = 1,nPy do bj = jtlo,jthi do ip = 1,nPx do bi = itlo,ithi do i = imin,imax - jj=mod((j-1)*nr+k-1,sny)+1 - kk=int((j-1)*nr+K-1)/sny+1 + jj=mod((j-1)*Nr+k-1,sNy)+1 + kk=int((j-1)*Nr+K-1)/sNy+1 if (globmskxz(i,bi,ip,bj,jp,k,iobcs) .ne. 0. ) then cbuffindex = cbuffindex + 1 cph( @@ -258,13 +255,13 @@ subroutine ctrl_set_pack_xz( iobcs= mod(irec-1,nobcs)+1 call MDSREADFIELD_XZ_GL( fname, ctrlprec, 'RL', - & nr, globfldxz, irec, mythid) + & Nr, globfldxz, irec, mythid) write(cunit) ncvarindex(ivartype) write(cunit) 1 write(cunit) 1 - do k = 1,nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + do k = 1,Nr + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = 0 do jp = 1,nPy do bj = jtlo,jthi @@ -331,7 +328,3 @@ subroutine ctrl_set_pack_xz( return end - - - - diff --git a/pkg/ctrl/ctrl_set_pack_yz.F b/pkg/ctrl/ctrl_set_pack_yz.F index fa8e494428..3a5c6d84d4 100644 --- a/pkg/ctrl/ctrl_set_pack_yz.F +++ b/pkg/ctrl/ctrl_set_pack_yz.F @@ -38,10 +38,10 @@ subroutine ctrl_set_pack_yz( integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype - _RL weightfld( nr,nobcs ) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nobcs ) logical lxxadxx integer mythid @@ -61,18 +61,18 @@ subroutine ctrl_set_pack_yz( integer cbuffindex integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - - real*4 cbuff ( nsx*npx*sny*nsy*npy ) - real*4 globfldtmp2( nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( nsx,npx,sny,nsy,npy ) - _RL globfldyz ( nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globmskyz ( nsx,npx,sny,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) cfile2, cfile3 + + real*4 cbuff ( nSx*nPx*sNy*nSy*nPy ) + real*4 globfldtmp2( nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( nSx,nPx,sNy,nSy,nPy ) + _RL globfldyz ( nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globmskyz ( nSx,nPx,sNy,nSy,nPy,Nr,nobcs ) #ifdef CTRL_PACK_PRECISE integer il - character*(80) weightname - _RL weightfldyz( nsx,npx,sny,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) weightname + _RL weightfldyz( nSx,nPx,sNy,nSy,nPy,Nr,nobcs ) c == external == @@ -83,16 +83,16 @@ subroutine ctrl_set_pack_yz( c == end of interface == jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -111,7 +111,7 @@ subroutine ctrl_set_pack_yz( enddo enddo c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -131,25 +131,23 @@ subroutine ctrl_set_pack_yz( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_pack_nonout_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_pack_dimout_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_pack_nonout_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_pack_dimout_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = nsx*npx*sny*nsy*npy*4 + reclen = nSx*nPx*sNy*nSy*nPy*4 call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -164,8 +162,7 @@ subroutine ctrl_set_pack_yz( & Nr, globmskyz(1,1,1,1,1,1,iobcs), iobcs,mythid) #ifdef CTRL_PACK_PRECISE il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_YZ_GL( & weightname, ctrlprec, 'RL', & Nr, weightfldyz(1,1,1,1,1,1,iobcs), iobcs, mythid) @@ -183,25 +180,25 @@ subroutine ctrl_set_pack_yz( c Need to solve for what iobcs would have been. call MDSREADFIELD_3D_GL( fname, ctrlprec, 'RL', - & nr, globfld3D, irec, mythid) + & Nr, globfld3D, irec, mythid) - do i=1,snx - iobcs= mod((irec-1)*snx+i-1,nobcs)+1 + do i=1,sNx + iobcs= mod((irec-1)*sNx+i-1,nobcs)+1 write(cunit) ncvarindex(ivartype) write(cunit) 1 write(cunit) 1 - do k = 1,nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + do k = 1,Nr + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = 0 do jp = 1,nPy do bj = jtlo,jthi do ip = 1,nPx do bi = itlo,ithi do j = jmin,jmax - ii=mod ( (i-1)*nr*sny+(k-1)*sny+j-1 , snx ) + 1 - jj=mod( ((i-1)*nr*sny+(k-1)*sny+j-1)/snx , sny ) + 1 - kk=int((i-1)*nr*sny+(k-1)*sny+j-1)/(snx*sny) + 1 + ii=mod ( (i-1)*Nr*sNy+(k-1)*sNy+j-1 , sNx ) + 1 + jj=mod( ((i-1)*Nr*sNy+(k-1)*sNy+j-1)/sNx , sNy ) + 1 + kk=int((i-1)*Nr*sNy+(k-1)*sNy+j-1)/(sNx*sNy) + 1 if (globmskyz(bi,ip,j,bj,jp,k,iobcs) .ne. 0. ) then cbuffindex = cbuffindex + 1 cph( @@ -262,13 +259,13 @@ subroutine ctrl_set_pack_yz( iobcs= mod(irec-1,nobcs)+1 call MDSREADFIELD_YZ_GL( fname, ctrlprec, 'RL', - & nr, globfldyz, irec, mythid) + & Nr, globfldyz, irec, mythid) write(cunit) ncvarindex(ivartype) write(cunit) 1 write(cunit) 1 - do k = 1,nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + do k = 1,Nr + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = 0 do jp = 1,nPy do bj = jtlo,jthi diff --git a/pkg/ctrl/ctrl_set_unpack_xy.F b/pkg/ctrl/ctrl_set_unpack_xy.F index 5ca0c24fa5..3322aba4de 100644 --- a/pkg/ctrl/ctrl_set_unpack_xy.F +++ b/pkg/ctrl/ctrl_set_unpack_xy.F @@ -3,7 +3,7 @@ subroutine ctrl_set_unpack_xy( & lxxadxx, cunit, ivartype, PrecondScalar, & fname, masktype, weighttype, - & nwetglobal, mythid) + & nwetglobal, mythid ) c ================================================================== c SUBROUTINE ctrl_set_unpack_xy @@ -32,67 +32,66 @@ subroutine ctrl_set_unpack_xy( integer cunit integer ivartype _RL precondScalar - character*( 80) fname + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype - integer nwetglobal(nr) + character*(MAX_LEN_FNAM) weighttype + integer nwetglobal(Nr) integer mythid #ifndef EXCLUDE_CTRL_PACK -# ifndef ALLOW_PACKUNPACK_METHOD2 -c == local variables == +c == external == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj - integer ip,jp integer i,j,k - integer ii - integer il - integer irec,nrec_nl + integer ii, irec + integer cbuffindex + real*4 cbuff( sNx*nSx*nPx*sNy*nSy*nPy ) + character*(MAX_LEN_FNAM) cfile2, cfile3 +C======================================================================== +# ifndef ALLOW_PACKUNPACK_METHOD2 + integer ip,jp + integer nrec_nl integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - - integer cbuffindex - - _RL globmsk ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - _RL weightfld2d( snx,nsx,npx,sny,nsy,npy ) -#endif - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*( 80) weightname - - integer reclen,irectrue + _RL globmsk ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - real*4 globfldtmp2( snx,nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,sny,nsy,npy ) - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - + real*4 globfldtmp2( sNx,nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,sNy,nSy,nPy ) +# else /* ALLOW_PACKUNPACK_METHOD2 */ + integer il + _RL msk3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + real*8 msk2d_buf(sNx,sNy,nSx,nSy) + real*8 msk2d_buf_glo(Nx,Ny) + real*8 fld2d_buf(sNx,sNy,nSx,nSy) + real*8 fld2d_buf_glo(Nx,Ny) + _RL fld2dDim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL fld2dNodim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL dummy +# endif /* ALLOW_PACKUNPACK_METHOD2 */ c == end of interface == +# ifndef ALLOW_PACKUNPACK_METHOD2 + jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx nbuffGlobal = nbuffGlobal + 1 - doPackOld = (.NOT.ctrlSmoothCorrel2D).AND.(.NOT.ctrlUseGen) c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -115,25 +114,23 @@ subroutine ctrl_set_unpack_xy( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_nondim_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_dimens_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_nondim_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_dimens_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = FLOAT(snx*nsx*npx*sny*nsy*npy*4) + reclen = FLOAT(sNx*nSx*nPx*sNy*nSy*nPy*4) call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -142,31 +139,6 @@ subroutine ctrl_set_unpack_xy( & access='direct', recl=reclen ) endif -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (weighttype.NE.' ') then - il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) - call MDSREADFIELD_2D_GL( - & weightname, ctrlprec, 'RL', - & 1, weightfld2d, 1, mythid) - else - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - weightfld2d(i,bi,ip,j,bj,jp) = 1. _d 0 - enddo - enddo - enddo - enddo - enddo - enddo - endif -#endif - call MDSREADFIELD_3D_GL( & masktype, ctrlprec, 'RL', & Nr, globmsk, 1, mythid) @@ -174,7 +146,7 @@ subroutine ctrl_set_unpack_xy( nrec_nl=int(ncvarrecs(ivartype)/Nr) do irec = 1, nrec_nl do k = 1,Nr - irectrue = (irec-1)*nr + k + irectrue = (irec-1)*Nr + k #ifndef ALLOW_ADMTLM read(cunit) filencvarindex(ivartype) if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) @@ -228,23 +200,6 @@ subroutine ctrl_set_unpack_xy( & phtmpadmtlm(nveccount) cph) #endif - IF ( doPackOld ) THEN - if ( lxxadxx ) then - globfld3d(i,bi,ip,j,bj,jp,k) = - & globfld3d(i,bi,ip,j,bj,jp,k) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - & / sqrt(weightfld2d(i,bi,ip,j,bj,jp)) -#endif - & * precondScalar - else - globfld3d(i,bi,ip,j,bj,jp,k) = - & globfld3d(i,bi,ip,j,bj,jp,k) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - & * sqrt(weightfld2d(i,bi,ip,j,bj,jp)) -#endif - & / precondScalar - endif - ELSE !IF ( doPackOld ) THEN if ( lxxadxx ) then globfld3d(i,bi,ip,j,bj,jp,k) = & globfld3d(i,bi,ip,j,bj,jp,k) @@ -254,7 +209,6 @@ subroutine ctrl_set_unpack_xy( & globfld3d(i,bi,ip,j,bj,jp,k) & / precondScalar endif - ENDIF !IF ( doPackOld ) THEN else globfld3d(i,bi,ip,j,bj,jp,k) = 0. _d 0 endif @@ -338,23 +292,6 @@ subroutine ctrl_set_unpack_xy( & phtmpadmtlm(nveccount) cph) #endif - IF ( doPackOld ) THEN - if ( lxxadxx ) then - globfld3d(i,bi,ip,j,bj,jp,k) = - & globfld3d(i,bi,ip,j,bj,jp,k) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - & / sqrt(weightfld2d(i,bi,ip,j,bj,jp)) -#endif - & * precondScalar - else - globfld3d(i,bi,ip,j,bj,jp,k) = - & globfld3d(i,bi,ip,j,bj,jp,k) -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - & * sqrt(weightfld2d(i,bi,ip,j,bj,jp)) -#endif - & / precondScalar - endif - ELSE !IF ( doPackOld ) THEN if ( lxxadxx ) then globfld3d(i,bi,ip,j,bj,jp,k) = & globfld3d(i,bi,ip,j,bj,jp,k) @@ -364,7 +301,6 @@ subroutine ctrl_set_unpack_xy( & globfld3d(i,bi,ip,j,bj,jp,k) & / precondScalar endif - ENDIF !IF ( doPackOld ) THEN else globfld3d(i,bi,ip,j,bj,jp,k) = 0. _d 0 endif @@ -399,62 +335,10 @@ subroutine ctrl_set_unpack_xy( _END_MASTER( mythid ) -# else -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer ii - integer il - integer irec - integer itlo,ithi - integer jtlo,jthi - - integer cbuffindex - - _RL msk3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 msk2d_buf(sNx,sNy,nSx,nSy) - real*8 msk2d_buf_glo(Nx,Ny) - - _RL fld2d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - real*8 fld2d_buf(sNx,sNy,nSx,nSy) - real*8 fld2d_buf_glo(Nx,Ny) - - _RL fld2dDim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - _RL fld2dNodim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - - _RL wei2d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*(80) weightname - _RL delZnorm - character*(80) cfile2, cfile3 - _RL dummy - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == +# else /* ALLOW_PACKUNPACK_METHOD2 */ c-- part 1: preliminary reads and definitions - doPackOld = (.NOT.ctrlSmoothCorrel2D).AND.(.NOT.ctrlUseGen) - -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO -#ifdef ALLOW_AUTODIFF - call active_read_xy(weighttype, wei2d, 1, - & .FALSE., .FALSE., 0 , mythid, dummy) -#else - CALL READ_REC_XY_RL( weighttype, wei2d, 1, 1, myThid ) -#endif -#endif - #ifdef ALLOW_AUTODIFF call active_read_xyz(masktype, msk3d, 1, & .FALSE., .FALSE., 0 , mythid, dummy) @@ -463,15 +347,13 @@ subroutine ctrl_set_unpack_xy( #endif if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' il = ilnblnk( fname ) if ( lxxadxx ) then - write(cfile2(1:80),'(2a)') fname(1:il),'.unpack_ctrl_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.unpack_ctrl_dim' + write(cfile2,'(2a)') fname(1:il),'.unpack_ctrl_adim' + write(cfile3,'(2a)') fname(1:il),'.unpack_ctrl_dim' else - write(cfile2(1:80),'(2a)') fname(1:il),'.unpack_grad_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.unpack_grad_dim' + write(cfile2,'(2a)') fname(1:il),'.unpack_grad_adim' + write(cfile3,'(2a)') fname(1:il),'.unpack_grad_dim' endif endif @@ -552,7 +434,6 @@ subroutine ctrl_set_unpack_xy( enddo !do k = 1, 1 - c-- 2.2: normalize field if needed DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) @@ -566,7 +447,6 @@ subroutine ctrl_set_unpack_xy( nveccount = nveccount + 1 fld2dNodim(i,j,bi,bj)=phtmpadmtlm(nveccount) #endif - IF ( .NOT.doPackOld ) THEN if (lxxadxx) then fld2dDim(i,j,bi,bj) = & fld2dNodim(i,j,bi,bj) * precondScalar @@ -574,27 +454,6 @@ subroutine ctrl_set_unpack_xy( fld2dDim(i,j,bi,bj) = & fld2dNodim(i,j,bi,bj) / precondScalar endif - ELSE !IF ( .NOT.doPackOld ) THEN -# ifndef ALLOW_NONDIMENSIONAL_CONTROL_IO - if (lxxadxx) then - fld2dDim(i,j,bi,bj) = fld2dNodim(i,j,bi,bj) - & * precondScalar - else - fld2dDim(i,j,bi,bj) = fld2dNodim(i,j,bi,bj) - & / precondScalar - endif -# else - if (lxxadxx) then - fld2dDim(i,j,bi,bj) = - & fld2dNodim(i,j,bi,bj) / sqrt(wei2d(i,j,bi,bj)) - & * precondScalar - else - fld2dDim(i,j,bi,bj) = - & fld2dNodim(i,j,bi,bj) * sqrt(wei2d(i,j,bi,bj)) - & / precondScalar - endif -# endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ENDIF !IF ( .NOT.doPackOld ) THEN endif ENDDO ENDDO @@ -620,4 +479,3 @@ subroutine ctrl_set_unpack_xy( return end - diff --git a/pkg/ctrl/ctrl_set_unpack_xyz.F b/pkg/ctrl/ctrl_set_unpack_xyz.F index 2f68e78741..7e11df9e72 100644 --- a/pkg/ctrl/ctrl_set_unpack_xyz.F +++ b/pkg/ctrl/ctrl_set_unpack_xyz.F @@ -2,7 +2,7 @@ subroutine ctrl_set_unpack_xyz( & lxxadxx, cunit, ivartype, fname, masktype, weighttype, - & weightfld, nwetglobal, mythid) + & weightfld, nwetglobal, mythid ) c ================================================================== c SUBROUTINE ctrl_set_unpack_xyz @@ -34,64 +34,71 @@ subroutine ctrl_set_unpack_xyz( logical lxxadxx integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character*( 9) masktype - character*( 80) weighttype - _RL weightfld( nr,nsx,nsy ) - integer nwetglobal(nr) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nSx,nSy ) + integer nwetglobal(Nr) integer mythid #ifndef EXCLUDE_CTRL_PACK -# ifndef ALLOW_PACKUNPACK_METHOD2 -c == local variables == +c == external == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj - integer ip,jp integer i,j,k - integer ii - integer irec + integer ii, irec + integer cbuffindex + real*4 cbuff( sNx*nSx*nPx*sNy*nSy*nPy ) + character*(MAX_LEN_FNAM) cfile2, cfile3 +C======================================================================== +# ifndef ALLOW_PACKUNPACK_METHOD2 + integer ip,jp integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - - integer cbuffindex - - _RL globmsk ( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) + _RL globmsk ( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) #ifdef CTRL_UNPACK_PRECISE integer il - character*(80) weightname - _RL weightfld3d( snx,nsx,npx,sny,nsy,npy,nr ) + character*(MAX_LEN_FNAM) weightname + _RL weightfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) #endif - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - real*4 globfldtmp2( snx,nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,sny,nsy,npy ) - - character*(128) cfile - + real*4 globfldtmp2( sNx,nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,sNy,nSy,nPy ) _RL delZnorm integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk +# else /* ALLOW_PACKUNPACK_METHOD2 */ + integer il + _RL msk3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + real*8 msk2d_buf(sNx,sNy,nSx,nSy) + real*8 msk2d_buf_glo(Nx,Ny) + real*8 fld2d_buf(sNx,sNy,nSx,nSy) + real*8 fld2d_buf_glo(Nx,Ny) + _RL fld3dDim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL fld3dNodim(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#ifdef CTRL_UNPACK_PRECISE + _RL wei3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + _RL delZnorm + _RL dummy +# endif /* ALLOW_PACKUNPACK_METHOD2 */ +c == end of interface == -cc == end of interface == +# ifndef ALLOW_PACKUNPACK_METHOD2 jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx #ifdef CTRL_DELZNORM delZnorm = 0. @@ -100,10 +107,8 @@ subroutine ctrl_set_unpack_xyz( enddo #endif - doPackOld = (.NOT.ctrlSmoothCorrel3D).AND.(.NOT.ctrlUseGen) - c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -126,50 +131,47 @@ subroutine ctrl_set_unpack_xyz( _BEGIN_MASTER( mythid ) #ifdef CTRL_DELZNORM - do k = 1, nr - print *, 'ph-delznorm ', k, delZnorm, delR(k) - print *, 'ph-weight ', weightfld(k,1,1) + do k = 1, Nr + print *, 'ph-delznorm ', k, delZnorm, delR(k) + print *, 'ph-weight ', weightfld(k,1,1) enddo #endif if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' - if ( lxxadxx ) then - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + if ( lxxadxx ) then + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_nondim_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_dimens_ctrl_', & ivartype, '_', optimcycle, '.bin' - else - write(cfile2(1:80),'(a,I3.3,a,I4.4,a)') + else + write(cfile2,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_nondim_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I3.3,a,I4.4,a)') + write(cfile3,'(a,I3.3,a,I4.4,a)') & 'diag_unpack_dimens_grad_', & ivartype, '_', optimcycle, '.bin' - endif - - reclen = FLOAT(snx*nsx*npx*sny*nsy*npy*4) - call mdsfindunit( cunit2, mythid ) - open( cunit2, file=cfile2, status='unknown', - & access='direct', recl=reclen ) - call mdsfindunit( cunit3, mythid ) - open( cunit3, file=cfile3, status='unknown', - & access='direct', recl=reclen ) + endif + + reclen = FLOAT(sNx*nSx*nPx*sNy*nSy*nPy*4) + call mdsfindunit( cunit2, mythid ) + open( cunit2, file=cfile2, status='unknown', + & access='direct', recl=reclen ) + call mdsfindunit( cunit3, mythid ) + open( cunit3, file=cfile3, status='unknown', + & access='direct', recl=reclen ) endif #ifdef CTRL_UNPACK_PRECISE if (weighttype.NE.' ') then il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_3D_GL( & weightname, ctrlprec, 'RL', & Nr, weightfld3d, 1, mythid) else - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -193,169 +195,100 @@ subroutine ctrl_set_unpack_xyz( do irec = 1, ncvarrecs(ivartype) #ifndef ALLOW_ADMTLM - read(cunit) filencvarindex(ivartype) - if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) - & then - print *, 'ctrl_set_unpack_xyz:WARNING: wrong ncvarindex ', + read(cunit) filencvarindex(ivartype) + if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) then + print *, 'ctrl_set_unpack_xyz:WARNING: wrong ncvarindex ', & filencvarindex(ivartype), ncvarindex(ivartype) - STOP 'in S/R ctrl_set_unpack_xyz' - endif - read(cunit) filej - read(cunit) filei + STOP 'in S/R ctrl_set_unpack_xyz' + endif + read(cunit) filej + read(cunit) filei #endif /* ALLOW_ADMTLM */ - do k = 1, Nr - irectrue = (irec-1)*nr + k - if ( doZscaleUnpack ) then - delZnorm = (delR(1)/delR(k))**delZexp - else - delZnorm = 1. _d 0 - endif - cbuffindex = nwetglobal(k) - if ( cbuffindex .gt. 0 ) then + do k = 1, Nr + irectrue = (irec-1)*Nr + k + if ( doZscaleUnpack ) then + delZnorm = (delR(1)/delR(k))**delZexp + else + delZnorm = 1. _d 0 + endif + cbuffindex = nwetglobal(k) + if ( cbuffindex .gt. 0 ) then #ifndef ALLOW_ADMTLM - read(cunit) filencbuffindex - if (filencbuffindex .NE. cbuffindex) then - print *, 'WARNING: wrong cbuffindex ', - & filencbuffindex, cbuffindex - STOP 'in S/R ctrl_set_unpack_xyz' - endif - read(cunit) filek - if (filek .NE. k) then - print *, 'WARNING: wrong k ', - & filek, k - STOP 'in S/R ctrl_set_unpack_xyz' - endif + read(cunit) filencbuffindex + if (filencbuffindex .NE. cbuffindex) then + print *, 'WARNING: wrong cbuffindex ', + & filencbuffindex, cbuffindex + STOP 'in S/R ctrl_set_unpack_xyz' + endif + read(cunit) filek + if (filek .NE. k) then + print *, 'WARNING: wrong k ', + & filek, k + STOP 'in S/R ctrl_set_unpack_xyz' + endif cph#endif /* ALLOW_ADMTLM */ - read(cunit) (cbuff(ii), ii=1,cbuffindex) + read(cunit) (cbuff(ii), ii=1,cbuffindex) #endif /* ALLOW_ADMTLM */ - endif + endif c - cbuffindex = 0 - do jp = 1,nPy - do bj = jtlo,jthi - do j = jmin,jmax - do ip = 1,nPx - do bi = itlo,ithi - do i = imin,imax - if ( globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then - cbuffindex = cbuffindex + 1 - globfld3d(i,bi,ip,j,bj,jp,k) = cbuff(cbuffindex) + cbuffindex = 0 + do jp = 1,nPy + do bj = jtlo,jthi + do j = jmin,jmax + do ip = 1,nPx + do bi = itlo,ithi + do i = imin,imax + if ( globmsk(i,bi,ip,j,bj,jp,k) .ne. 0. ) then + cbuffindex = cbuffindex + 1 + globfld3d(i,bi,ip,j,bj,jp,k) = cbuff(cbuffindex) cph( - globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) + globfldtmp2(i,bi,ip,j,bj,jp) = cbuff(cbuffindex) cph) #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - globfld3d(i,bi,ip,j,bj,jp,k) = - & phtmpadmtlm(nveccount) + nveccount = nveccount + 1 + globfld3d(i,bi,ip,j,bj,jp,k) = phtmpadmtlm(nveccount) cph( - globfldtmp2(i,bi,ip,j,bj,jp) = - & phtmpadmtlm(nveccount) + globfldtmp2(i,bi,ip,j,bj,jp) = phtmpadmtlm(nveccount) cph) #endif - IF ( doPackOld ) THEN -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO - if ( lxxadxx ) then - globfld3d(i,bi,ip,j,bj,jp,k) = delZnorm - & * globfld3d(i,bi,ip,j,bj,jp,k) -# ifdef CTRL_UNPACK_PRECISE - & / sqrt(weightfld3d(i,bi,ip,j,bj,jp,k)) -# else - & / sqrt(weightfld(k,bi,bj)) -# endif - else - globfld3d(i,bi,ip,j,bj,jp,k) = 1/delZnorm - & * globfld3d(i,bi,ip,j,bj,jp,k) -# ifdef CTRL_UNPACK_PRECISE - & * sqrt(weightfld3d(i,bi,ip,j,bj,jp,k)) -# else - & * sqrt(weightfld(k,bi,bj)) -# endif - endif -#endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ENDIF !IF ( doPackOld ) THEN - else - globfld3d(i,bi,ip,j,bj,jp,k) = 0. _d 0 - endif + else + globfld3d(i,bi,ip,j,bj,jp,k) = 0. _d 0 + endif cph( - globfldtmp3(i,bi,ip,j,bj,jp) = - & globfld3d(i,bi,ip,j,bj,jp,k) + globfldtmp3(i,bi,ip,j,bj,jp) = + & globfld3d(i,bi,ip,j,bj,jp,k) cph) - enddo - enddo - enddo - enddo enddo enddo + enddo + enddo + enddo + enddo c - if ( doPackDiag ) then - write(cunit2,rec=irectrue) globfldtmp2 - write(cunit3,rec=irectrue) globfldtmp3 - endif + if ( doPackDiag ) then + write(cunit2,rec=irectrue) globfldtmp2 + write(cunit3,rec=irectrue) globfldtmp3 + endif c - enddo + enddo - call MDSWRITEFIELD_3D_GL( fname, ctrlprec, 'RL', - & Nr, globfld3d, - & irec, optimcycle, mythid) + call MDSWRITEFIELD_3D_GL( fname, ctrlprec, 'RL', + & Nr, globfld3d, + & irec, optimcycle, mythid) enddo if ( doPackDiag ) then - close ( cunit2 ) - close ( cunit3 ) + close ( cunit2 ) + close ( cunit3 ) endif _END_MASTER( mythid ) -# else -c == local variables == - - integer bi,bj - integer ip,jp - integer i,j,k - integer ii - integer il - integer irec - integer itlo,ithi - integer jtlo,jthi - - integer cbuffindex - - _RL msk3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 msk2d_buf(sNx,sNy,nSx,nSy) - real*8 msk2d_buf_glo(Nx,Ny) - - _RL fld3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - real*8 fld2d_buf(sNx,sNy,nSx,nSy) - real*8 fld2d_buf_glo(Nx,Ny) - - _RL fld3dDim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL fld3dNodim(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - -#ifdef CTRL_UNPACK_PRECISE - _RL wei3d(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) -#endif - - real*4 cbuff ( snx*nsx*npx*sny*nsy*npy ) - - character*(80) weightname - _RL delZnorm - character*(80) cfile2, cfile3 - _RL dummy - - LOGICAL doPackOld - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == +# else /* ALLOW_PACKUNPACK_METHOD2 */ c-- part 1: preliminary reads and definitions - doPackOld = (.NOT.ctrlSmoothCorrel3D).AND.(.NOT.ctrlUseGen) - #ifdef CTRL_UNPACK_PRECISE #ifdef ALLOW_AUTODIFF call active_read_xyz(weighttype, wei3d, 1, @@ -373,16 +306,14 @@ subroutine ctrl_set_unpack_xyz( #endif if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' - il = ilnblnk( fname ) - if ( lxxadxx ) then - write(cfile2(1:80),'(2a)') fname(1:il),'.unpack_ctrl_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.unpack_ctrl_dim' - else - write(cfile2(1:80),'(2a)') fname(1:il),'.unpack_grad_adim' - write(cfile3(1:80),'(2a)') fname(1:il),'.unpack_grad_dim' - endif + il = ilnblnk( fname ) + if ( lxxadxx ) then + write(cfile2,'(2a)') fname(1:il),'.unpack_ctrl_adim' + write(cfile3,'(2a)') fname(1:il),'.unpack_ctrl_dim' + else + write(cfile2,'(2a)') fname(1:il),'.unpack_grad_adim' + write(cfile3,'(2a)') fname(1:il),'.unpack_grad_dim' + endif endif c-- part 2: loop over records @@ -392,62 +323,60 @@ subroutine ctrl_set_unpack_xyz( c-- 2.1: array <- buffer <- global buffer <- global file #ifndef ALLOW_ADMTLM - _BEGIN_MASTER( mythid ) - IF ( myProcId .eq. 0 ) THEN - read(cunit) filencvarindex(ivartype) - if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) - & then - print *, 'ctrl_set_unpack_xyz:WARNING: wrong ncvarindex ', - & filencvarindex(ivartype), ncvarindex(ivartype) - STOP 'in S/R ctrl_set_unpack_xyz' - endif - read(cunit) filej - read(cunit) filei - ENDIF - _END_MASTER( mythid ) - _BARRIER + _BEGIN_MASTER( mythid ) + IF ( myProcId .eq. 0 ) THEN + read(cunit) filencvarindex(ivartype) + if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) then + print *, 'ctrl_set_unpack_xyz:WARNING: wrong ncvarindex ', + & filencvarindex(ivartype), ncvarindex(ivartype) + STOP 'in S/R ctrl_set_unpack_xyz' + endif + read(cunit) filej + read(cunit) filei + ENDIF + _END_MASTER( mythid ) + _BARRIER #endif /* ALLOW_ADMTLM */ - do k = 1, nr + do k = 1, Nr CALL MDS_PASS_R8toRL( msk2d_buf, msk3d, - & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) + & 0, 0, 1, k, Nr, 0, 0, .FALSE., myThid ) CALL BAR2( myThid ) CALL GATHER_2D_R8( msk2d_buf_glo, msk2d_buf, - & Nx,Ny,.FALSE.,.TRUE.,myThid) + & Nx,Ny,.FALSE.,.TRUE.,myThid) CALL BAR2( myThid ) _BEGIN_MASTER( mythid ) - cbuffindex = nwetglobal(k) + cbuffindex = nwetglobal(k) IF ( myProcId .eq. 0 ) THEN #ifndef ALLOW_ADMTLM - if ( cbuffindex .gt. 0) then + if ( cbuffindex .gt. 0) then read(cunit) filencbuffindex read(cunit) filek if (filencbuffindex .NE. cbuffindex) then - print *, 'WARNING: wrong cbuffindex ', - & filencbuffindex, cbuffindex - STOP 'in S/R ctrl_set_unpack_xyz' + print *, 'WARNING: wrong cbuffindex ', + & filencbuffindex, cbuffindex + STOP 'in S/R ctrl_set_unpack_xyz' endif if (filek .NE. k) then - print *, 'WARNING: wrong k ', - & filek, k - STOP 'in S/R ctrl_set_unpack_xyz' + print *, 'WARNING: wrong k ', filek, k + STOP 'in S/R ctrl_set_unpack_xyz' endif read(cunit) (cbuff(ii), ii=1,cbuffindex) - endif + endif #endif - cbuffindex = 0 - DO j=1,Ny + cbuffindex = 0 + DO j=1,Ny DO i=1,Nx - if (msk2d_buf_glo(i,j) .ne. 0. ) then - cbuffindex = cbuffindex + 1 - fld2d_buf_glo(i,j) = cbuff(cbuffindex) - endif + if (msk2d_buf_glo(i,j) .ne. 0. ) then + cbuffindex = cbuffindex + 1 + fld2d_buf_glo(i,j) = cbuff(cbuffindex) + endif ENDDO - ENDDO + ENDDO ENDIF _END_MASTER( mythid ) @@ -455,77 +384,52 @@ subroutine ctrl_set_unpack_xyz( CALL BAR2( myThid ) CALL SCATTER_2D_R8( fld2d_buf_glo, fld2d_buf, - & Nx,Ny,.FALSE.,.TRUE.,myThid) + & Nx,Ny,.FALSE.,.TRUE.,myThid) CALL BAR2( myThid ) CALL MDS_PASS_R8toRL( fld2d_buf, fld3dNodim, - & 0, 0, 1, k, Nr, 0, 0, .TRUE., myThid ) + & 0, 0, 1, k, Nr, 0, 0, .TRUE., myThid ) - enddo !do k = 1, nr + enddo !do k = 1, Nr c-- 2.2: normalize field if needed - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO k=1,Nr - if ( doZscalePack ) then - delZnorm = (delR(1)/delR(k))**delZexp - else - delZnorm = 1. _d 0 - endif - DO j=1,sNy - DO i=1,sNx - if (msk3d(i,j,k,bi,bj).EQ.0. _d 0) then - fld3dDim(i,j,k,bi,bj)=0. _d 0 - fld3dNodim(i,j,k,bi,bj)=0. _d 0 - else + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + if ( doZscalePack ) then + delZnorm = (delR(1)/delR(k))**delZexp + else + delZnorm = 1. _d 0 + endif + DO j=1,sNy + DO i=1,sNx + if (msk3d(i,j,k,bi,bj).EQ.0. _d 0) then + fld3dDim(i,j,k,bi,bj)=0. _d 0 + fld3dNodim(i,j,k,bi,bj)=0. _d 0 + else #ifdef ALLOW_ADMTLM - nveccount = nveccount + 1 - fld3dNodim(i,j,k,bi,bj)=phtmpadmtlm(nveccount) + nveccount = nveccount + 1 + fld3dNodim(i,j,k,bi,bj)=phtmpadmtlm(nveccount) #endif - IF ( .NOT.doPackOld ) THEN - fld3dDim(i,j,k,bi,bj)=fld3dNodim(i,j,k,bi,bj) - ELSE !IF ( .NOT.doPackOld ) THEN -# ifndef ALLOW_NONDIMENSIONAL_CONTROL_IO - fld3dDim(i,j,k,bi,bj) = fld3dNodim(i,j,k,bi,bj) -# else - if (lxxadxx) then - fld3dDim(i,j,k,bi,bj) = - & fld3dNodim(i,j,k,bi,bj) * delZnorm -# ifdef CTRL_UNPACK_PRECISE - & / sqrt(wei3d(i,j,k,bi,bj)) -# else - & / sqrt(weightfld(k,bi,bj)) -# endif - else - fld3dDim(i,j,k,bi,bj) = - & fld3dNodim(i,j,k,bi,bj) / delZnorm -# ifdef CTRL_UNPACK_PRECISE - & * sqrt(wei3d(i,j,k,bi,bj)) -# else - & * sqrt(weightfld(k,bi,bj)) -# endif + fld3dDim(i,j,k,bi,bj)=fld3dNodim(i,j,k,bi,bj) endif -# endif /* ALLOW_NONDIMENSIONAL_CONTROL_IO */ - ENDIF !IF ( .NOT.doPackOld ) THEN - endif + ENDDO ENDDO ENDDO ENDDO ENDDO - ENDDO c-- 2.3: - if ( doPackDiag ) then -c error: twice the same one - call WRITE_REC_3D_RL( cfile2, ctrlprec, - & Nr, fld3dNodim, irec, 0, mythid) - call WRITE_REC_3D_RL( cfile3, ctrlprec, - & Nr, fld3dDim, irec, 0, mythid) - endif + if ( doPackDiag ) then +c error: twice the same one + call WRITE_REC_3D_RL( cfile2, ctrlprec, + & Nr, fld3dNodim, irec, 0, mythid) + call WRITE_REC_3D_RL( cfile3, ctrlprec, + & Nr, fld3dDim, irec, 0, mythid) + endif c-- 2.4: - call WRITE_REC_3D_RL( fname, ctrlprec, - & Nr, fld3dDim, irec, 0, mythid) - + call WRITE_REC_3D_RL( fname, ctrlprec, + & Nr, fld3dDim, irec, 0, mythid) enddo !do irec = 1, ncvarrecs(ivartype) @@ -534,4 +438,3 @@ subroutine ctrl_set_unpack_xyz( return end - diff --git a/pkg/ctrl/ctrl_set_unpack_xz.F b/pkg/ctrl/ctrl_set_unpack_xz.F index 4e2a1db940..caa18cf607 100644 --- a/pkg/ctrl/ctrl_set_unpack_xz.F +++ b/pkg/ctrl/ctrl_set_unpack_xz.F @@ -37,11 +37,11 @@ subroutine ctrl_set_unpack_xz( integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character* (9) masktype - character*( 80) weighttype - _RL weightfld( nr,nobcs ) - integer nwetglobal(nr,nobcs) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nobcs ) + integer nwetglobal(Nr,nobcs) integer mythid #ifndef EXCLUDE_CTRL_PACK @@ -61,21 +61,21 @@ subroutine ctrl_set_unpack_xz( integer cbuffindex - real*4 cbuff ( snx*nsx*npx*nsy*npy ) - real*4 globfldtmp2( snx,nsx,npx,nsy,npy ) - real*4 globfldtmp3( snx,nsx,npx,nsy,npy ) - _RL globfldxz( snx,nsx,npx,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globmskxz( snx,nsx,npx,nsy,npy,nr,nobcs ) + real*4 cbuff ( sNx*nSx*nPx*nSy*nPy ) + real*4 globfldtmp2( sNx,nSx,nPx,nSy,nPy ) + real*4 globfldtmp3( sNx,nSx,nPx,nSy,nPy ) + _RL globfldxz( sNx,nSx,nPx,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globmskxz( sNx,nSx,nPx,nSy,nPy,Nr,nobcs ) integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 + character*(MAX_LEN_FNAM) cfile2, cfile3 #ifdef CTRL_UNPACK_PRECISE integer il - character*(80) weightname - _RL weightfldxz( snx,nsx,npx,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) weightname + _RL weightfldxz( sNx,nSx,nPx,nSy,nPy,Nr,nobcs ) c == external == @@ -86,18 +86,18 @@ subroutine ctrl_set_unpack_xz( cc == end of interface == jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx lxxadxx = .TRUE. c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do ip = 1,nPx @@ -116,7 +116,7 @@ subroutine ctrl_set_unpack_xz( enddo enddo c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -136,25 +136,23 @@ subroutine ctrl_set_unpack_xz( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_nondim_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_dimens_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_nondim_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_dimens_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = snx*nsx*npx*nsy*npy*4 + reclen = sNx*nSx*nPx*nSy*nPy*4 call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -169,8 +167,7 @@ subroutine ctrl_set_unpack_xz( & Nr, globmskxz(1,1,1,1,1,1,iobcs), iobcs,mythid) #ifdef CTRL_UNPACK_PRECISE il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_XZ_GL( & weightname, ctrlprec, 'RL', & Nr, weightfldxz(1,1,1,1,1,1,iobcs), iobcs, mythid) @@ -186,8 +183,8 @@ subroutine ctrl_set_unpack_xz( endif do irec = 1, nrec_nl c And now back-calculate what iobcs should be. - do j=1,sny - iobcs= mod((irec-1)*sny+j-1,nobcs)+1 + do j=1,sNy + iobcs= mod((irec-1)*sNy+j-1,nobcs)+1 read(cunit) filencvarindex(ivartype) if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) @@ -199,7 +196,7 @@ subroutine ctrl_set_unpack_xz( read(cunit) filej read(cunit) filei do k = 1, Nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = nwetglobal(k,iobcs) if ( cbuffindex .gt. 0 ) then read(cunit) filencbuffindex @@ -218,8 +215,8 @@ subroutine ctrl_set_unpack_xz( endif cbuffindex = 0 - jj=mod((j-1)*nr+k-1,sny)+1 - kk=int((j-1)*nr+k-1)/sny+1 + jj=mod((j-1)*Nr+k-1,sNy)+1 + kk=int((j-1)*Nr+k-1)/sNy+1 do jp = 1,nPy do bj = jtlo,jthi do ip = 1,nPx @@ -286,7 +283,7 @@ subroutine ctrl_set_unpack_xz( read(cunit) filej read(cunit) filei do k = 1, Nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = nwetglobal(k,iobcs) if ( cbuffindex .gt. 0 ) then read(cunit) filencbuffindex @@ -360,7 +357,3 @@ subroutine ctrl_set_unpack_xz( return end - - - - diff --git a/pkg/ctrl/ctrl_set_unpack_yz.F b/pkg/ctrl/ctrl_set_unpack_yz.F index 11ddd16946..a3ddf60fd7 100644 --- a/pkg/ctrl/ctrl_set_unpack_yz.F +++ b/pkg/ctrl/ctrl_set_unpack_yz.F @@ -37,11 +37,11 @@ subroutine ctrl_set_unpack_yz( integer cunit integer ivartype - character*( 80) fname + character*(MAX_LEN_FNAM) fname character* (9) masktype - character*( 80) weighttype - _RL weightfld( nr,nobcs ) - integer nwetglobal(nr,nobcs) + character*(MAX_LEN_FNAM) weighttype + _RL weightfld( Nr,nobcs ) + integer nwetglobal(Nr,nobcs) integer mythid #ifndef EXCLUDE_CTRL_PACK @@ -61,21 +61,21 @@ subroutine ctrl_set_unpack_yz( integer cbuffindex - real*4 cbuff ( nsx*npx*sny*nsy*npy ) - real*4 globfldtmp2( nsx,npx,sny,nsy,npy ) - real*4 globfldtmp3( nsx,npx,sny,nsy,npy ) - _RL globfldyz( nsx,npx,sny,nsy,npy,nr ) - _RL globfld3d( snx,nsx,npx,sny,nsy,npy,nr ) - _RL globmskyz( nsx,npx,sny,nsy,npy,nr,nobcs ) + real*4 cbuff ( nSx*nPx*sNy*nSy*nPy ) + real*4 globfldtmp2( nSx,nPx,sNy,nSy,nPy ) + real*4 globfldtmp3( nSx,nPx,sNy,nSy,nPy ) + _RL globfldyz( nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globfld3d( sNx,nSx,nPx,sNy,nSy,nPy,Nr ) + _RL globmskyz( nSx,nPx,sNy,nSy,nPy,Nr,nobcs ) integer reclen, irectrue integer cunit2, cunit3 - character*(80) cfile2, cfile3 + character*(MAX_LEN_FNAM) cfile2, cfile3 #ifdef CTRL_UNPACK_PRECISE integer il - character*(80) weightname - _RL weightfldyz( nsx,npx,sny,nsy,npy,nr,nobcs ) + character*(MAX_LEN_FNAM) weightname + _RL weightfldyz( nSx,nPx,sNy,nSy,nPy,Nr,nobcs ) c == external == @@ -86,18 +86,18 @@ subroutine ctrl_set_unpack_yz( cc == end of interface == jtlo = 1 - jthi = nsy + jthi = nSy itlo = 1 - ithi = nsx + ithi = nSx jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx lxxadxx = .TRUE. c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -116,7 +116,7 @@ subroutine ctrl_set_unpack_yz( enddo enddo c Initialise temporary file - do k = 1,nr + do k = 1,Nr do jp = 1,nPy do bj = jtlo,jthi do j = jmin,jmax @@ -136,25 +136,23 @@ subroutine ctrl_set_unpack_yz( _BEGIN_MASTER( mythid ) if ( doPackDiag ) then - write(cfile2(1:80),'(80a)') ' ' - write(cfile3(1:80),'(80a)') ' ' if ( lxxadxx ) then - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_nondim_ctrl_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_dimens_ctrl_', & ivartype, '_', optimcycle, '.bin' else - write(cfile2(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile2,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_nondim_grad_', & ivartype, '_', optimcycle, '.bin' - write(cfile3(1:80),'(a,I2.2,a,I4.4,a)') + write(cfile3,'(a,I2.2,a,I4.4,a)') & 'diag_unpack_dimens_grad_', & ivartype, '_', optimcycle, '.bin' endif - reclen = nsx*npx*sny*nsy*npy*4 + reclen = nSx*nPx*sNy*nSy*nPy*4 call mdsfindunit( cunit2, mythid ) open( cunit2, file=cfile2, status='unknown', & access='direct', recl=reclen ) @@ -169,8 +167,7 @@ subroutine ctrl_set_unpack_yz( & Nr, globmskyz(1,1,1,1,1,1,iobcs), iobcs, mythid) #ifdef CTRL_UNPACK_PRECISE il=ilnblnk( weighttype) - write(weightname(1:80),'(80a)') ' ' - write(weightname(1:80),'(a)') weighttype(1:il) + write(weightname,'(a)') weighttype(1:il) call MDSREADFIELD_YZ_GL( & weightname, ctrlprec, 'RL', & Nr, weightfldyz(1,1,1,1,1,1,iobcs), iobcs, mythid) @@ -186,8 +183,8 @@ subroutine ctrl_set_unpack_yz( endif do irec = 1, nrec_nl c And now back-calculate what iobcs should be. - do i=1,snx - iobcs= mod((irec-1)*snx+i-1,nobcs)+1 + do i=1,sNx + iobcs= mod((irec-1)*sNx+i-1,nobcs)+1 read(cunit) filencvarindex(ivartype) if (filencvarindex(ivartype) .NE. ncvarindex(ivartype)) @@ -199,7 +196,7 @@ subroutine ctrl_set_unpack_yz( read(cunit) filej read(cunit) filei do k = 1, Nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = nwetglobal(k,iobcs) if ( cbuffindex .gt. 0 ) then read(cunit) filencbuffindex @@ -222,9 +219,9 @@ subroutine ctrl_set_unpack_yz( do j = jmin,jmax do ip = 1,nPx do bi = itlo,ithi - ii=mod((i-1)*nr*sny+(k-1)*sny+j-1,snx)+1 - jj=mod(((i-1)*nr*sny+(k-1)*sny+j-1)/snx,sny)+1 - kk=int((i-1)*nr*sny+(k-1)*sny+j-1)/(snx*sny)+1 + ii=mod((i-1)*Nr*sNy+(k-1)*sNy+j-1,sNx)+1 + jj=mod(((i-1)*Nr*sNy+(k-1)*sNy+j-1)/sNx,sNy)+1 + kk=int((i-1)*Nr*sNy+(k-1)*sNy+j-1)/(sNx*sNy)+1 if ( globmskyz(bi,ip,j,bj,jp,k,iobcs) .ne. 0. ) then cbuffindex = cbuffindex + 1 globfld3d(ii,bi,ip,jj,bj,jp,kk) = @@ -286,7 +283,7 @@ subroutine ctrl_set_unpack_yz( read(cunit) filej read(cunit) filei do k = 1, Nr - irectrue = (irec-1)*nobcs*nr + (iobcs-1)*nr + k + irectrue = (irec-1)*nobcs*Nr + (iobcs-1)*Nr + k cbuffindex = nwetglobal(k,iobcs) if ( cbuffindex .gt. 0 ) then read(cunit) filencbuffindex diff --git a/pkg/ctrl/ctrl_smooth.F b/pkg/ctrl/ctrl_smooth.F deleted file mode 100644 index 725bab0077..0000000000 --- a/pkg/ctrl/ctrl_smooth.F +++ /dev/null @@ -1,84 +0,0 @@ -#include "CPP_EEOPTIONS.h" - - SUBROUTINE CTRL_SMOOTH ( - U fld, - I mask, myThid ) - -c Apply horizontal smoothing to global _RL 2-D array - - IMPLICIT NONE - -#include "SIZE.h" -#include "EEPARAMS.h" - -c input/output -c fld : 2-D array to be smoothed - _RL fld ( 1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy ) - _RS mask( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy ) - INTEGER myThid - -c local -c bi, bj : array indices -c k : vertical index used for masking - integer k, bi, bj - integer i, j, im1, ip1, jm1, jp1 - _RL tempVar - _RL fld_tmp( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) - - integer imin , imax , jmin , jmax - parameter(imin=2-OLx, imax=sNx+OLx-1, jmin=2-OLy, jmax=sNy+OLy-1) - _RL p0 , p5 , p25 , p125 , p0625 - parameter( p0=0. _d 0 , p5=0.5 _d 0 , p25=0.25 _d 0 ) - parameter( p125=0.125 _d 0 , p0625=0.0625 _d 0 ) - - k = 1 - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - - DO j = jmin, jmax - jm1 = j-1 - jp1 = j+1 - DO i = imin, imax - im1 = i-1 - ip1 = i+1 - tempVar = - & p25 * mask(i ,j ,k,bi,bj) + - & p125 * ( mask(im1,j ,k,bi,bj) + - & mask(ip1,j ,k,bi,bj) + - & mask(i ,jm1,k,bi,bj) + - & mask(i ,jp1,k,bi,bj) ) + - & p0625 * ( mask(im1,jm1,k,bi,bj) + - & mask(im1,jp1,k,bi,bj) + - & mask(ip1,jm1,k,bi,bj) + - & mask(ip1,jp1,k,bi,bj) ) - IF ( tempVar .GE. p25 ) THEN - fld_tmp(i,j) = ( - & p25 * fld(i ,j,bi,bj )*mask(i ,j ,k,bi,bj) + - & p125 *(fld(im1,j ,bi,bj )*mask(im1,j ,k,bi,bj) + - & fld(ip1,j ,bi,bj )*mask(ip1,j ,k,bi,bj) + - & fld(i ,jm1,bi,bj)*mask(i ,jm1,k,bi,bj) + - & fld(i ,jp1,bi,bj)*mask(i ,jp1,k,bi,bj))+ - & p0625*(fld(im1,jm1,bi,bj)*mask(im1,jm1,k,bi,bj) + - & fld(im1,jp1,bi,bj)*mask(im1,jp1,k,bi,bj) + - & fld(ip1,jm1,bi,bj)*mask(ip1,jm1,k,bi,bj) + - & fld(ip1,jp1,bi,bj)*mask(ip1,jp1,k,bi,bj))) - & / tempVar - ELSE - fld_tmp(i,j) = fld(i,j,bi,bj) - ENDIF - ENDDO - ENDDO - -c transfer smoothed field to output array - DO j = jmin, jmax - DO i = imin, imax - fld(i,j,bi,bj) = fld_tmp(i,j) - ENDDO - ENDDO - -C- end bi,bj loop. - ENDDO - ENDDO - - RETURN - END diff --git a/pkg/ctrl/ctrl_summary.F b/pkg/ctrl/ctrl_summary.F index 659754f507..f5922b1a43 100644 --- a/pkg/ctrl/ctrl_summary.F +++ b/pkg/ctrl/ctrl_summary.F @@ -18,6 +18,7 @@ subroutine ctrl_Summary( mythid ) #include "EEPARAMS.h" #include "SIZE.h" +#include "PARAMS.h" #ifdef ALLOW_CAL # include "cal.h" @@ -34,29 +35,30 @@ subroutine ctrl_Summary( mythid ) #endif c == routine arguments == - integer mythid -c == local variables == +c == external == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj - integer i,k + integer k integer il - integer timeint(4) integer nwetcenter integer nwetsouth integer nwetwest character*(max_len_mbuf) msgbuf -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) +#if (defined (ALLOW_GENARR2D_CONTROL) \ + || defined (ALLOW_GENARR3D_CONTROL) \ + || defined (ALLOW_GENTIM2D_CONTROL)) INTEGER iarr, jarr #endif - -c == external == - - integer ilnblnk - external ilnblnk +#if ( defined ALLOW_GENTIM2D_CONTROL && defined ALLOW_CAL ) + integer i, timeint(4) +#endif c == end of interface == @@ -123,248 +125,9 @@ subroutine ctrl_Summary( mythid ) enddo enddo -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Initial state temperature contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control variable index: ',ncvarindex(1) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_SALT0_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Initial state salinity contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control variable index: ',ncvarindex(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_HFLUX_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Heat flux contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control variable index: ',ncvarindex(3) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - il = ilnblnk(xx_hflux_file) - call cal_TimeInterval( xx_hfluxperiod, 'secs', timeint, mythid ) - - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') - &' Heat flux contribution starts at: ', - & (xx_hfluxstartdate(i), i=1,2), - & dayofweek(xx_hfluxstartdate(4)),'.' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6)') - &' Heat flux contribution period is: ', - & (timeint(i), i=1,2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Heat flux contribution is read from file: ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a,a)') - &' >> ',xx_hflux_file(1:il),' <<' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_SFLUX_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Salt flux contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control varibale index: ',ncvarindex(4) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - il = ilnblnk(xx_sflux_file) - call cal_TimeInterval( xx_sfluxperiod, 'secs', timeint, mythid ) - - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') - &' Salt flux contribution starts at: ', - & (xx_sfluxstartdate(i), i=1,2), - & dayofweek(xx_sfluxstartdate(4)),'.' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6)') - &' Salt flux contribution period is: ', - & (timeint(i), i=1,2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Salt flux contribution is read from file: ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a,a)') - &' >> ',xx_sflux_file(1:il),' <<' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_USTRESS_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Zonal wind stress contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control variable index: ',ncvarindex(5) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - il = ilnblnk(xx_tauu_file) - call cal_TimeInterval( xx_tauuperiod, 'secs', timeint, mythid ) - - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') - &' Zonal wind stress contribution starts at: ', - & (xx_tauustartdate(i), i=1,2), - & dayofweek(xx_tauustartdate(4)),'.' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6)') - &' Zonal wind stress contribution period is: ', - & (timeint(i), i=1,2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Zonal wind stress contribution is read from file: ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a,a)') - &' >> ',xx_tauu_file(1:il),' <<' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_VSTRESS_CONTROL - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Meridional wind stress contribution:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i5.4)') - &' Control variable index: ',ncvarindex(6) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - il = ilnblnk(xx_tauv_file) - call cal_TimeInterval( xx_tauvperiod, 'secs', timeint, mythid ) - - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6,1x,a,a)') - &' Merid. wind stress contribution starts at: ', - & (xx_hfluxstartdate(i), i=1,2), - & dayofweek(xx_hfluxstartdate(4)),'.' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i9.8,i7.6)') - &' Merid. wind stress contribution period is: ', - & (timeint(i), i=1,2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Merid. wind stress contribution is read from file: ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a,a)') - &' >> ',xx_tauv_file(1:il),' <<' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - - -#ifdef ALLOW_SMOOTH -#ifdef ECCO_CTRL_DEPRECATED - - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - write(msgbuf,'(a)') - &' Settings of diffusion based correlation operators:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' --------------------------------------------------' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - write(msgbuf,'(a,L5,a)') - &' ctrlSmoothCorrel3D = ',ctrlSmoothCorrel3D, - &' /* use 3D controls correlation */' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - write(msgbuf,'(a,L5,a)') - &' ctrlSmoothCorrel2D = ',ctrlSmoothCorrel2D, - &' /* use 2D controls correlation */' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - -#ifdef ALLOW_AUTODIFF - if (ctrlSmoothCorrel2D.AND..NOT.useSmoothCorrel2DinAdMode) then -c allow for switching off correl2d in adjoint - write(msgbuf,'(a,L5,a)') - &' useSmoothCorrel2DinAdMode = ',useSmoothCorrel2DinAdMode, - &' /* use in adjoint mode */' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - endif -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ -#endif /* ALLOW_SMOOTH */ - - -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) +#if (defined (ALLOW_GENARR2D_CONTROL) \ + || defined (ALLOW_GENARR3D_CONTROL) \ + || defined (ALLOW_GENTIM2D_CONTROL)) write(msgbuf,'(a)') ' ' call print_message( msgbuf, standardmessageunit, @@ -381,11 +144,6 @@ subroutine ctrl_Summary( mythid ) call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) write(msgbuf,'(a,L5,a)') - &' ctrlUseGen = ',ctrlUseGen, - &' /* use generic controls */' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - #ifdef ALLOW_GENARR2D_CONTROL do iarr = 1, maxCtrlArr2D @@ -395,34 +153,41 @@ subroutine ctrl_Summary( mythid ) &' -> 2D control, genarr2d no. ',iarr, &' is in use' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_genarr2d_file(iarr) ) write(msgbuf,'(a,a)') &' file = ',xx_genarr2d_file(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_genarr2d_weight(iarr) ) write(msgbuf,'(a,a)') &' weight = ',xx_genarr2d_weight(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' index = ', 100+iarr + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' ncvarindex = ', ncvarindex(100+iarr) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) - do jarr=1,maxCtrlProc - if (xx_genarr2d_preproc(jarr,iarr).NE.' ') then - il = ilnblnk(xx_genarr2d_preproc(jarr,iarr)) - write(msgbuf,'(a,a)') ' preprocess = ', + do jarr=1,maxCtrlProc + if (xx_genarr2d_preproc(jarr,iarr).NE.' ') then + il = ilnblnk(xx_genarr2d_preproc(jarr,iarr)) + write(msgbuf,'(a,a)') ' preprocess = ', & xx_genarr2d_preproc(jarr,iarr)(1:il) - call print_message( msgbuf, standardmessageunit, + call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) - endif - enddo + endif + enddo endif enddo #endif - #ifdef ALLOW_GENARR3D_CONTROL do iarr = 1, maxCtrlArr3D if (xx_genarr3d_weight(iarr).NE.' ') then @@ -431,28 +196,36 @@ subroutine ctrl_Summary( mythid ) &' -> 3d control, genarr3d no. ',iarr, &' is in use' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_genarr3d_file(iarr) ) write(msgbuf,'(a,a)') &' file = ',xx_genarr3d_file(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_genarr3d_weight(iarr) ) write(msgbuf,'(a,a)') &' weight = ',xx_genarr3d_weight(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' index = ', 200+iarr + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' ncvarindex = ', ncvarindex(200+iarr) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) - do jarr=1,maxCtrlProc - if (xx_genarr3d_preproc(jarr,iarr).NE.' ') then - il = ilnblnk(xx_genarr3d_preproc(jarr,iarr)) - write(msgbuf,'(a,a)') ' preprocess = ', - & xx_genarr3d_preproc(jarr,iarr)(1:il) - call print_message( msgbuf, standardmessageunit, + do jarr=1,maxCtrlProc + if (xx_genarr3d_preproc(jarr,iarr).NE.' ') then + il = ilnblnk(xx_genarr3d_preproc(jarr,iarr)) + write(msgbuf,'(a,a)') ' preprocess = ', + & xx_genarr3d_preproc(jarr,iarr)(1:il) + call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) - endif - enddo + endif + enddo endif enddo @@ -466,61 +239,71 @@ subroutine ctrl_Summary( mythid ) &' -> time variable 2D control, gentim2d no. ',iarr, &' is in use' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_gentim2d_file(iarr) ) write(msgbuf,'(a,a)') &' file = ',xx_gentim2d_file(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) il = ILNBLNK( xx_gentim2d_weight(iarr) ) write(msgbuf,'(a,a)') &' weight = ',xx_gentim2d_weight(iarr)(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' index = ', 300+iarr + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i5.4)') + &' ncvarindex = ', ncvarindex(300+iarr) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) #ifdef ALLOW_CAL - call cal_TimeInterval( xx_gentim2d_period(iarr), - & 'secs', timeint, mythid ) - write(msgbuf,'(a,i9.8,i7.6)') - &' period = ',(timeint(i), i=1,2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + if ( useCAL ) then + call cal_TimeInterval( xx_gentim2d_period(iarr), + & 'secs', timeint, mythid ) + write(msgbuf,'(a,i9.8,i7.6)') + & ' period = ',(timeint(i), i=1,2) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) + endif #endif - do jarr=1,maxCtrlProc - if (xx_gentim2d_preproc(jarr,iarr).NE.' ') then - il = ilnblnk(xx_gentim2d_preproc(jarr,iarr)) - write(msgbuf,'(a,a)') ' preprocess = ', - & xx_gentim2d_preproc(jarr,iarr)(1:il) - call print_message( msgbuf, standardmessageunit, + do jarr=1,maxCtrlProc + if (xx_gentim2d_preproc(jarr,iarr).NE.' ') then + il = ilnblnk(xx_gentim2d_preproc(jarr,iarr)) + write(msgbuf,'(a,a)') ' preprocess = ', + & xx_gentim2d_preproc(jarr,iarr)(1:il) + call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) C if (xx_gentim2d_preproc_c(jarr,iarr).NE.' ') then - il = ilnblnk(xx_gentim2d_preproc_c(jarr,iarr)) - write(msgbuf,'(a,a)') ' param. (text)= ', - & xx_gentim2d_preproc_c(jarr,iarr)(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + il = ilnblnk(xx_gentim2d_preproc_c(jarr,iarr)) + write(msgbuf,'(a,a)') ' param. (text)= ', + & xx_gentim2d_preproc_c(jarr,iarr)(1:il) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) endif C if (xx_gentim2d_preproc_i(jarr,iarr).NE.0) then - write(msgbuf,'(a,i6)') ' param. (int.)= ', - & xx_gentim2d_preproc_i(jarr,iarr) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i6)') ' param. (int.)= ', + & xx_gentim2d_preproc_i(jarr,iarr) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) endif C if (xx_gentim2d_preproc_r(jarr,iarr).NE.0. _d 0) then - write(msgbuf,'(a,e10.3)') ' param. (real)= ', - & xx_gentim2d_preproc_r(jarr,iarr) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,e10.3)') ' param. (real)= ', + & xx_gentim2d_preproc_r(jarr,iarr) + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , mythid) endif - endif - enddo + endif + enddo endif enddo @@ -551,4 +334,3 @@ subroutine ctrl_Summary( mythid ) return end - diff --git a/pkg/ctrl/ctrl_toolbox.F b/pkg/ctrl/ctrl_toolbox.F new file mode 100644 index 0000000000..0f1f1a0a48 --- /dev/null +++ b/pkg/ctrl/ctrl_toolbox.F @@ -0,0 +1,195 @@ +#include "CTRL_OPTIONS.h" + +C-- File ctrl_toolbox.F: Routines to handle basic operations common in pkg/ctrl +C-- Note: basically same as ecco_toolbox routines, but copied here for package +C-- independence (pkg/ecco doesn't work with openad) +C-- Contents +C-- o CTRL_ASSIGN +C-- o CTRL_CPRLRL +C-- o CTRL_CPRSRL +C-- o CTRL_CPRSRS + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_ASSIGN +C !INTERFACE: + SUBROUTINE CTRL_ASSIGN( fld, nnzloc, fill_value, myThid ) +C !DESCRIPTION: \bv +C fill a field with fill_value +C \ev + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER nnzloc + _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + _RL fill_value + INTEGER myThid + +#ifdef ALLOW_CTRL +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k +CEOP + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k = 1,nnzloc + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fld(i,j,k,bi,bj) = fill_value + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + +#endif /* ALLOW_CTRL */ + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_CPRLRL +C !INTERFACE: + SUBROUTINE CTRL_CPRLRL( + I fldIn, nzIn, fldOut, nzOut, + I myThid ) + +C !DESCRIPTION: \bv +C copy a field (RL) to another array (RL) +C \ev + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nzOut + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + INTEGER myThid + +#ifdef ALLOW_CTRL +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k +CEOP + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k = 1,nzOut + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + +#endif /* ALLOW_CTRL */ + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_CPRSRL +C !INTERFACE: + SUBROUTINE CTRL_CPRSRL( + I fldIn, nzIn, fldOut, nzOut, + I myThid ) + +C !DESCRIPTION: \bv +C copy a field to another array, switching from _RS to _RL +C \ev + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nzOut + _RS fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + INTEGER myThid + +#ifdef ALLOW_CTRL +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k +CEOP + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k = 1,nzOut + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + +#endif /* ALLOW_CTRL */ + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: CTRL_CPRSRS +C !INTERFACE: + SUBROUTINE CTRL_CPRSRS( + I fldIn, nzIn, fldOut, nzOut, + I myThid ) + +C !DESCRIPTION: \bv +C copy a field (RS) to another array (RS) +C \ev + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nzOut + _RS fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RS fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + INTEGER myThid + +#ifdef ALLOW_CTRL +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k +CEOP + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k = 1,nzOut + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + +#endif /* ALLOW_CTRL */ + + RETURN + END diff --git a/pkg/ctrl/ctrl_unpack.F b/pkg/ctrl/ctrl_unpack.F index f04fec65e9..50de61a058 100644 --- a/pkg/ctrl/ctrl_unpack.F +++ b/pkg/ctrl/ctrl_unpack.F @@ -2,9 +2,6 @@ #ifdef ALLOW_COST # include "COST_OPTIONS.h" #endif -#ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" -#endif #ifdef ALLOW_ECCO # include "ECCO_OPTIONS.h" #endif @@ -60,14 +57,6 @@ subroutine ctrl_unpack( first, mythid ) #ifdef ALLOW_COST # include "cost.h" #endif -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -# include "ecco_cost.h" -#else -# include "ctrl_weights.h" -#endif -#ifdef ALLOW_EXF -# include "EXF_PARAM.h" -#endif c == routine arguments == @@ -75,115 +64,78 @@ subroutine ctrl_unpack( first, mythid ) integer mythid #ifndef EXCLUDE_CTRL_PACK -c == external == +c == external functions == + integer ilnblnk external ilnblnk c == local variables == - integer i, j, k - integer ii - integer il - integer irec + integer i, k integer ivartype integer ictrlgrad -#if (defined ALLOW_GENARR2D_CONTROL) || (defined ALLOW_GENARR3D_CONTROL) || (defined ALLOW_GENTIM2D_CONTROL) + integer cunit + logical lxxadxx + character*(128) cfile + integer ilDir + +#if (defined ALLOW_GENARR2D_CONTROL) \ + || (defined ALLOW_GENARR3D_CONTROL) \ + || (defined ALLOW_GENTIM2D_CONTROL) C- Provided we set the file name just before calling ctrl_set_unpack, C the same local file name variable can be used for different variables. C This is how GENARR2/3D_CONTROL is implemented (+ provides an example) integer iarr - character*(80) fname_local(3) + character*(MAX_LEN_FNAM) fname_local(3) +#endif +#if ( defined ALLOW_GENARR2D_CONTROL || defined ALLOW_GENTIM2D_CONTROL ) + integer nwettmp(Nr) + character*( 9) mskNameForSetUnpack #endif - integer cbuffindex - integer cunit - - character*(128) cfile - character*( 80) weighttype - - logical lxxadxx - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS + character*(MAX_LEN_FNAM) weighttype + character*(MAX_LEN_FNAM) fname_obcsn(3) + character*(MAX_LEN_FNAM) fname_obcss(3) + character*(MAX_LEN_FNAM) fname_obcsw(3) + character*(MAX_LEN_FNAM) fname_obcse(3) cgg( Add OBCS mask names. #ifdef ALLOW_OBCSN_CONTROL - integer filenWetobcsnGlo(nr,nobcs) + integer filenWetobcsnGlo(Nr,nobcs) #endif #ifdef ALLOW_OBCSS_CONTROL - integer filenWetobcssGlo(nr,nobcs) + integer filenWetobcssGlo(Nr,nobcs) #endif #ifdef ALLOW_OBCSW_CONTROL - integer filenWetobcswGlo(nr,nobcs) + integer filenWetobcswGlo(Nr,nobcs) #endif #ifdef ALLOW_OBCSE_CONTROL - integer filenWetobcseGlo(nr,nobcs) + integer filenWetobcseGlo(Nr,nobcs) #endif integer iobcs cgg) -#endif /* ALLOW_CTRL and ALLOW_OBCS */ +#endif /* ALLOW_OBCS */ c == end of interface == -#ifndef ALLOW_ECCO_OPTIMIZATION - fmin = 0. _d 0 -#endif - c-- Initialise nbuffGlobal = 0 +c-- Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + c-- Assign file names. -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - call ctrl_set_fname(xx_obcsn_file, fname_obcsn, mythid) - call ctrl_set_fname(xx_obcss_file, fname_obcss, mythid) - call ctrl_set_fname(xx_obcsw_file, fname_obcsw, mythid) - call ctrl_set_fname(xx_obcse_file, fname_obcse, mythid) -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - -#ifdef ECCO_CTRL_DEPRECATED - call ctrl_set_fname(xx_theta_file, fname_theta, mythid) - call ctrl_set_fname(xx_salt_file, fname_salt, mythid) - call ctrl_set_fname(xx_hflux_file, fname_hflux, mythid) - call ctrl_set_fname(xx_sflux_file, fname_sflux, mythid) - call ctrl_set_fname(xx_tauu_file, fname_tauu, mythid) - call ctrl_set_fname(xx_tauv_file, fname_tauv, mythid) - call ctrl_set_fname(xx_atemp_file, fname_atemp, mythid) - call ctrl_set_fname(xx_aqh_file, fname_aqh, mythid) - call ctrl_set_fname(xx_precip_file, fname_precip, mythid) - call ctrl_set_fname(xx_swflux_file, fname_swflux, mythid) - call ctrl_set_fname(xx_swdown_file, fname_swdown, mythid) - call ctrl_set_fname(xx_lwflux_file, fname_lwflux, mythid) - call ctrl_set_fname(xx_lwdown_file, fname_lwdown, mythid) - call ctrl_set_fname(xx_evap_file, fname_evap, mythid) - call ctrl_set_fname(xx_snowprecip_file, fname_snowprecip, mythid) - call ctrl_set_fname(xx_apressure_file, fname_apressure, mythid) - call ctrl_set_fname(xx_runoff_file, fname_runoff, mythid) - call ctrl_set_fname(xx_uwind_file, fname_uwind, mythid) - call ctrl_set_fname(xx_vwind_file, fname_vwind, mythid) - call ctrl_set_fname(xx_diffkr_file, fname_diffkr, mythid) - call ctrl_set_fname(xx_kapgm_file, fname_kapgm, mythid) - call ctrl_set_fname(xx_kapredi_file, fname_kapredi, mythid) - call ctrl_set_fname(xx_tr1_file, fname_tr1, mythid) - call ctrl_set_fname(xx_sst_file, fname_sst, mythid) - call ctrl_set_fname(xx_sss_file, fname_sss, mythid) - call ctrl_set_fname(xx_depth_file, fname_depth, mythid) - call ctrl_set_fname(xx_efluxy_file, fname_efluxy, mythid) - call ctrl_set_fname(xx_efluxp_file, fname_efluxp, mythid) - call ctrl_set_fname(xx_bottomdrag_file, fname_bottomdrag, mythid) - call ctrl_set_fname(xx_edtaux_file, fname_edtaux, mythid) - call ctrl_set_fname(xx_edtauy_file, fname_edtauy, mythid) - call ctrl_set_fname(xx_uvel_file, fname_uvel, mythid) - call ctrl_set_fname(xx_vvel_file, fname_vvel, mythid) - call ctrl_set_fname(xx_etan_file, fname_etan, mythid) - call ctrl_set_fname(xx_relaxsst_file, fname_relaxsst, mythid) - call ctrl_set_fname(xx_relaxsss_file, fname_relaxsss, mythid) - call ctrl_set_fname(xx_siarea_file, fname_siarea, mythid) - call ctrl_set_fname(xx_siheff_file, fname_siheff, mythid) - call ctrl_set_fname(xx_sihsnow_file, fname_sihsnow, mythid) - call ctrl_set_fname(xx_shifwflx_file, fname_shifwflx, mythid) -cHFLUXM_CONTROL - call ctrl_set_fname(xx_hfluxm_file, fname_hfluxm, mythid) -cHFLUXM_CONTROL -#endif /* ECCO_CTRL_DEPRECATED */ +#ifdef ALLOW_OBCS + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcsn_file, + & fname_obcsn, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcss_file, + & fname_obcss, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcsw_file, + & fname_obcsw, mythid) + call ctrl_set_fname(ctrlDir(1:ilDir)//xx_obcse_file, + & fname_obcse, mythid) +#endif c-- Only the master thread will do I/O. _BEGIN_MASTER( mythid ) @@ -197,7 +149,7 @@ subroutine ctrl_unpack( first, mythid ) write(cfile(1:128),'(4a,i4.4)') & ctrlname(1:9),'_',yctrlid(1:10), & yctrlposunpack(1:4), optimcycle - write(standardMessageUnit,*) 'ph-pack: unpacking ', + write(standardMessageUnit,*) 'ph-pack: unpacking ', & ctrlname(1:9) else c >>> Write gradient vector <<< @@ -206,7 +158,7 @@ subroutine ctrl_unpack( first, mythid ) write(cfile(1:128),'(4a,i4.4)') & costname(1:9),'_',yctrlid(1:10), & yctrlposunpack(1:4), optimcycle - write(standardMessageUnit,*) 'ph-pack: unpacking ', + write(standardMessageUnit,*) 'ph-pack: unpacking ', & costname(1:9) endif @@ -232,37 +184,37 @@ subroutine ctrl_unpack( first, mythid ) read(cunit) fileJg read(cunit) filensx read(cunit) filensy - read(cunit) (filenWetcGlobal(k), k=1,nr) - read(cunit) (filenWetsGlobal(k), k=1,nr) - read(cunit) (filenWetwGlobal(k), k=1,nr) + read(cunit) (filenWetcGlobal(k), k=1,Nr) + read(cunit) (filenWetsGlobal(k), k=1,Nr) + read(cunit) (filenWetwGlobal(k), k=1,Nr) #ifdef ALLOW_CTRL_WETV - read(cunit) (filenWetvGlobal(k), k=1,nr) + read(cunit) (filenWetvGlobal(k), k=1,Nr) #endif -#ifdef ALLOW_SHIFWFLX_CONTROL - read(cunit) (filenWetiGlobal(k), k=1,nr) +#ifdef ALLOW_SHELFICE + read(cunit) (filenWetiGlobal(k), k=1,Nr) c read(cunit) filenWetiGlobal(1) #endif -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS cgg( Add OBCS mask information to the header. #ifdef ALLOW_OBCSN_CONTROL read(cunit) ((filenWetobcsnGlo(k,iobcs), - & k=1,nr), iobcs= 1,nobcs) + & k=1,Nr), iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSS_CONTROL read(cunit) ((filenWetobcssGlo(k,iobcs), - & k=1,nr), iobcs= 1,nobcs) + & k=1,Nr), iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSW_CONTROL read(cunit) ((filenWetobcswGlo(k,iobcs), - & k=1,nr), iobcs= 1,nobcs) + & k=1,Nr), iobcs= 1,nobcs) #endif #ifdef ALLOW_OBCSE_CONTROL read(cunit) ((filenWetobcseGlo(k,iobcs), - & k=1,nr), iobcs= 1,nobcs) + & k=1,Nr), iobcs= 1,nobcs) #endif cgg) -#endif /* ALLOW_CTRL and ALLOW_OBCS */ +#endif /* ALLOW_OBCS */ read(cunit) (filencvarindex(i), i=1,maxcvars) read(cunit) (filencvarrecs(i), i=1,maxcvars) @@ -278,12 +230,12 @@ subroutine ctrl_unpack( first, mythid ) print *, 'WARNING: wrong nvarlength ', & filenvarlength, nvarlength STOP 'in S/R ctrl_unpack' - else if ( filensx .NE. nsx .OR. filensy .NE. nsy ) then - print *, 'WARNING: wrong nsx or nsy ', - & filensx, nsx, filensy, nsy + else if ( filensx .NE. nSx .OR. filensy .NE. nSy ) then + print *, 'WARNING: wrong nSx or nSy ', + & filensx, nSx, filensy, nSy STOP 'in S/R ctrl_unpack' endif - do k = 1, nr + do k = 1, Nr if ( filenWetcGlobal(k) .NE. nWetcGlobal(k) .OR. & filenWetsGlobal(k) .NE. nWetsGlobal(k) .OR. & filenWetwGlobal(k) .NE. nWetwGlobal(k) .OR. @@ -292,20 +244,20 @@ subroutine ctrl_unpack( first, mythid ) STOP endif end do -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE do k=1,1 if ( filenWetiGlobal(k) .NE. nWetiGlobal(k) ) then print *, 'WARNING: wrong nWetiGlobal for k = ', k STOP endif enddo -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_SHELFICE */ -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS cgg( Lets also check the OBCS mask info in the header. #ifdef ALLOW_OBCSN_CONTROL do iobcs = 1, nobcs - do k = 1, nr + do k = 1, Nr if (filenWetobcsnGlo(k,iobcs) .NE. & nWetobcsnGlo(k,iobcs)) then print *, 'WARNING: OBCSN wrong nWet?Global for k = ', k @@ -316,7 +268,7 @@ subroutine ctrl_unpack( first, mythid ) #endif #ifdef ALLOW_OBCSS_CONTROL do iobcs = 1, nobcs - do k = 1, nr + do k = 1, Nr if (filenWetobcssGlo(k,iobcs) .NE. & nWetobcssGlo(k,iobcs)) then print *, 'WARNING: OBCSS wrong nWet?Global for k = ', k @@ -327,7 +279,7 @@ subroutine ctrl_unpack( first, mythid ) #endif #ifdef ALLOW_OBCSW_CONTROL do iobcs = 1, nobcs - do k = 1, nr + do k = 1, Nr if (filenWetobcswGlo(k,iobcs) .NE. & nWetobcswGlo(k,iobcs)) then print *, 'WARNING: OBCSW wrong nWet?Global for k = ', k @@ -338,7 +290,7 @@ subroutine ctrl_unpack( first, mythid ) #endif #ifdef ALLOW_OBCSE_CONTROL do iobcs = 1, nobcs - do k = 1, nr + do k = 1, Nr if (filenWetobcseGlo(k,iobcs) .NE. & nWetobcseGlo(k,iobcs)) then print *, 'WARNING: OBCSE wrong nWet?Global for k = ', k @@ -348,7 +300,7 @@ subroutine ctrl_unpack( first, mythid ) end do #endif cgg) End OBCS mask check. -#endif /* ALLOW_CTRL and ALLOW_OBCS */ +#endif /* ALLOW_OBCS */ #endif /* ndef ALLOW_ADMTLM */ @@ -360,524 +312,111 @@ subroutine ctrl_unpack( first, mythid ) c---------------------------------------------------------------------- -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#ifdef ALLOW_OBCS #ifdef ALLOW_OBCSN_CONTROL ivartype = 11 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcsn" + write(weighttype,'(a)') 'wobcsn' call ctrl_set_unpack_xz( - & cunit, ivartype, fname_obcsn(ictrlgrad), "maskobcsn", + & cunit, ivartype, fname_obcsn(ictrlgrad), 'maskobcsn', & weighttype, wobcsn, nWetobcsnGlo, mythid) #endif #ifdef ALLOW_OBCSS_CONTROL ivartype = 12 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcss" + write(weighttype,'(a)') 'wobcss' call ctrl_set_unpack_xz( - & cunit, ivartype, fname_obcss(ictrlgrad), "maskobcss", + & cunit, ivartype, fname_obcss(ictrlgrad), 'maskobcss', & weighttype, wobcss, nWetobcssGlo, mythid) #endif #ifdef ALLOW_OBCSW_CONTROL ivartype = 13 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcsw" + write(weighttype,'(a)') 'wobcsw' call ctrl_set_unpack_yz( - & cunit, ivartype, fname_obcsw(ictrlgrad), "maskobcsw", + & cunit, ivartype, fname_obcsw(ictrlgrad), 'maskobcsw', & weighttype, wobcsw, nWetobcswGlo, mythid) #endif #ifdef ALLOW_OBCSE_CONTROL ivartype = 14 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wobcse" + write(weighttype,'(a)') 'wobcse' call ctrl_set_unpack_yz( - & cunit, ivartype, fname_obcse(ictrlgrad), "maskobcse", + & cunit, ivartype, fname_obcse(ictrlgrad), 'maskobcse', & weighttype, wobcse, nWetobcseGlo, mythid) #endif -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - ivartype = 1 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wthetaLev" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_theta(ictrlgrad), "maskCtrlC", - & weighttype, wtheta, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SALT0_CONTROL - ivartype = 2 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsaltLev" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_salt(ictrlgrad), "maskCtrlC", - & weighttype, wsalt, nwetcglobal, mythid) -#endif - -#if (defined (ALLOW_HFLUX_CONTROL) || defined (ALLOW_HFLUX0_CONTROL)) - ivartype = 3 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "whflux" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_hflux(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#if (defined (ALLOW_SFLUX_CONTROL) || defined (ALLOW_SFLUX0_CONTROL)) - ivartype = 4 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsflux" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_sflux(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL)) -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif - ivartype = 5 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtauu" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, -#ifndef ALLOW_ROTATE_UV_CONTROLS - & fname_tauu(ictrlgrad), "maskCtrlW", - & weighttype, nwetwglobal, mythid) -#else - & fname_tauu(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) -#ifdef ALLOW_EXF - IF ( .NOT.useAtmWind ) THEN -#endif - ivartype = 6 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtauv" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, -#ifndef ALLOW_ROTATE_UV_CONTROLS - & fname_tauv(ictrlgrad), "maskCtrlS", - & weighttype, nwetsglobal, mythid) -#else - & fname_tauv(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_ATEMP_CONTROL - ivartype = 7 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "watemp" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_atemp(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_AQH_CONTROL - ivartype = 8 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "waqh" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_aqh(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_UWIND_CONTROL -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif - ivartype = 9 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wuwind" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_uwind(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_VWIND_CONTROL -#ifdef ALLOW_EXF - IF ( useAtmWind ) THEN -#endif - ivartype = 10 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wvwind" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_vwind(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#ifdef ALLOW_EXF - ENDIF -#endif -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - ivartype = 15 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wdiffkr" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_diffkr(ictrlgrad), "maskCtrlC", - & weighttype, wdiffkr, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_KAPGM_CONTROL - ivartype = 16 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wkapgm" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_kapgm(ictrlgrad), "maskCtrlC", - & weighttype, wkapgm, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_TR10_CONTROL - ivartype = 17 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wtr1" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_tr1(ictrlgrad), "maskCtrlC", - & weighttype, wunit, nwetcglobal, mythid) -#endif - -#if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL)) - ivartype = 18 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsst" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_sst(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - ivartype = 19 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsss" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_sss(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_DEPTH_CONTROL - ivartype = 20 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wdepth" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_depth(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif /* ALLOW_DEPTH_CONTROL */ - -#ifdef ALLOW_EFLUXY0_CONTROL - ivartype = 21 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wefluxy0" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_efluxy(ictrlgrad), "maskCtrlS", - & weighttype, wefluxy, nwetsglobal, mythid) -#endif - -#ifdef ALLOW_EFLUXP0_CONTROL - ivartype = 22 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wefluxp0" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_efluxp(ictrlgrad), "maskhFacV", - & weighttype, wefluxp, nwetvglobal, mythid) -#endif - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - ivartype = 23 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wbottomdrag" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_bottomdrag(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_HFLUXM_CONTROL - ivartype = 24 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "whfluxm" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_hfluxm(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_EDDYPSI_CONTROL - ivartype = 25 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wedtaux" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_edtaux(ictrlgrad), "maskCtrlW", - & weighttype, wedtaux, nwetwglobal, mythid) - - ivartype = 26 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wedtauy" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_edtauy(ictrlgrad), "maskCtrlS", - & weighttype, wedtauy, nwetsglobal, mythid) -#endif - -#ifdef ALLOW_UVEL0_CONTROL - ivartype = 27 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wuvel" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_uvel(ictrlgrad), "maskCtrlW", - & weighttype, wuvel, nwetwglobal, mythid) -#endif - -#ifdef ALLOW_VVEL0_CONTROL - ivartype = 28 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wvvel" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_vvel(ictrlgrad), "maskCtrlS", - & weighttype, wvvel, nwetsglobal, mythid) -#endif - -#ifdef ALLOW_ETAN0_CONTROL - ivartype = 29 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wetan" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_etan(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_RELAXSST_CONTROL - ivartype = 30 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrelaxsst" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_relaxsst(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_RELAXSSS_CONTROL - ivartype = 31 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrelaxsss" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_relaxsss(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_PRECIP_CONTROL - ivartype = 32 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wprecip" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_precip(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SWFLUX_CONTROL - ivartype = 33 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wswflux" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_swflux(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SWDOWN_CONTROL - ivartype = 34 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wswdown" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_swdown(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_LWFLUX_CONTROL - ivartype = 35 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wlwflux" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_lwflux(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_LWDOWN_CONTROL - ivartype = 36 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wlwdown" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_lwdown(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_EVAP_CONTROL - ivartype = 37 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wevap" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_evap(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SNOWPRECIP_CONTROL - ivartype = 38 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wsnowprecip" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_snowprecip(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_APRESSURE_CONTROL - ivartype = 39 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wapressure" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_apressure(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_RUNOFF_CONTROL - ivartype = 40 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wrunoff" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_runoff(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SIAREA_CONTROL - ivartype = 41 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_siarea(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SIHEFF_CONTROL - ivartype = 42 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_siheff(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SIHSNOW_CONTROL - ivartype = 43 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_sihsnow(ictrlgrad), "maskCtrlC", - & weighttype, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_KAPREDI_CONTROL - ivartype = 44 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wkapredi" - call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_kapredi(ictrlgrad), "maskCtrlC", - & weighttype, wkapredi, nwetcglobal, mythid) -#endif - -#ifdef ALLOW_SHIFWFLX_CONTROL - ivartype = 45 - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wshifwflx" - call ctrl_set_unpack_xy( - & lxxadxx, cunit, ivartype, forcingPrecond, - & fname_shifwflx(ictrlgrad), "maskCtrlI", - & weighttype, nwetiglobal, mythid) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ +#endif /* ALLOW_OBCS */ #ifdef ALLOW_GENARR2D_CONTROL do iarr = 1, maxCtrlArr2D if (xx_genarr2d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_genarr2d_file(iarr), + mskNameForSetUnpack='maskCtrlC' + DO k=1,Nr + nwettmp(k) = nwetcglobal(k) + ENDDO +# ifdef ALLOW_SHELFICE + if ((xx_genarr2d_file(iarr)(1:11).eq.'xx_shicoeff').or. + & (xx_genarr2d_file(iarr)(1:11).eq.'xx_shicdrag')) then + mskNameForSetUnpack='maskCtrlI' + DO k=1,Nr + nwettmp(k) = nwetiglobal(k) + ENDDO + endif +# endif + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_genarr2d_file(iarr), O fname_local, mythid ) ivartype = 100+iarr -cc write(weighttype(1:80),'(80a)') ' ' -cc write(weighttype(1:80),'(a)') "wunit" +cc write(weighttype,'(a)') ' ' +cc write(weighttype,'(a)') 'wunit' call ctrl_set_unpack_xy( & lxxadxx, cunit, ivartype, genarr2dPrecond(iarr), - & fname_local(ictrlgrad), "maskCtrlC", + & fname_local(ictrlgrad), mskNameForSetUnpack, & xx_genarr2d_weight(iarr), - & nwetcglobal, mythid) + & nwettmp, mythid) endif enddo -#endif +#endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL do iarr = 1, maxCtrlArr3D if (xx_genarr3d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_genarr3d_file(iarr), + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_genarr3d_file(iarr), O fname_local, mythid ) ivartype = 200+iarr - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" +c write(weighttype,'(a)') ' ' +c write(weighttype,'(a)') 'wunit' call ctrl_set_unpack_xyz( lxxadxx, cunit, ivartype, - & fname_local(ictrlgrad), "maskCtrlC", + & fname_local(ictrlgrad), 'maskCtrlC', & xx_genarr3d_weight(iarr), & wunit, nwetcglobal, mythid) endif enddo -#endif +#endif /* ALLOW_GENARR3D_CONTROL */ #ifdef ALLOW_GENTIM2D_CONTROL do iarr = 1, maxCtrlTim2D if (xx_gentim2d_weight(iarr).NE.' ') then - call ctrl_set_fname( xx_gentim2d_file(iarr), + mskNameForSetUnpack='maskCtrlC' + DO k=1,Nr + nwettmp(k) = nwetcglobal(k) + ENDDO +# ifdef ALLOW_SHELFICE + if (xx_gentim2d_file(iarr)(1:11).eq.'xx_shifwflx') then + mskNameForSetUnpack='maskCtrlI' + DO k=1,Nr + nwettmp(k) = nwetiglobal(k) + ENDDO + endif +# endif + call ctrl_set_fname( ctrlDir(1:ilDir)//xx_gentim2d_file(iarr), O fname_local, mythid ) ivartype = 300+iarr - write(weighttype(1:80),'(80a)') ' ' - write(weighttype(1:80),'(a)') "wunit" +c write(weighttype,'(a)') ' ' +c write(weighttype,'(a)') 'wunit' call ctrl_set_unpack_xy( & lxxadxx, cunit, ivartype, gentim2dPrecond(iarr), - & fname_local(ictrlgrad), "maskCtrlC", + & fname_local(ictrlgrad), mskNameForSetUnpack, & xx_gentim2d_weight(iarr), - & nwetcglobal, mythid) + & nwettmp, mythid) endif enddo -#endif +#endif /* ALLOW_GENTIM2D_CONTROL */ #ifdef ALLOW_PACKUNPACK_METHOD2 _BEGIN_MASTER( mythid ) diff --git a/pkg/ctrl/ctrl_weights.h b/pkg/ctrl/ctrl_weights.h deleted file mode 100644 index 6db6a81278..0000000000 --- a/pkg/ctrl/ctrl_weights.h +++ /dev/null @@ -1,25 +0,0 @@ -c Define dummy weights as a placeholder - common /ctrl_weights_dummy_r/ - & wtheta, wsalt, - & wuvvel, wetan, wuvel, wvvel, - & wdiffkr, wkapgm, wkapredi, - & wedtaux, wedtauy - - _RL wtheta ( nr,nsx,nsy ) - _RL wsalt ( nr,nsx,nsy ) - _RL wuvvel ( nr,nsx,nsy ) - _RL wuvel ( nr,nsx,nsy ) - _RL wvvel ( nr,nsx,nsy ) - _RL wetan ( snx,sny,nsx,nsy ) - _RL wdiffkr ( nr,nsx,nsy ) - _RL wkapgm ( nr,nsx,nsy ) - _RL wkapredi ( nr,nsx,nsy ) - _RL wedtaux ( nr,nsx,nsy ) - _RL wedtauy ( nr,nsx,nsy ) - -#if (defined (ALLOW_COST_HFLUXM) || defined (ALLOW_HFLUXM_CONTROL)) -c whfluxm - weight for heat flux. - common /cost_weights_r/ whfluxm - _RL whfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#endif - diff --git a/pkg/ctrl/data.ctrl b/pkg/ctrl/data.ctrl deleted file mode 100644 index a8ec260886..0000000000 --- a/pkg/ctrl/data.ctrl +++ /dev/null @@ -1,38 +0,0 @@ -# -# -# ********************* -# ECCO controlvariables -# ********************* - &CTRLVARS - xx_theta_file='xx_theta', - xx_salt_file='xx_salt', - xx_hfluxstartdate1=19920601, - xx_hfluxstartdate2=60000, - xx_hfluxperiod=864000.0, - xx_hfl_file='xx_hfl', - xx_sfluxstartdate1=19920601, - xx_sfluxstartdate2=60000, - xx_sfluxperiod=864000.0, - xx_sfl_file='xx_sfl', - xx_tauustartdate1=19920601, - xx_tauustartdate2=60000, - xx_tauuperiod=864000.0, - xx_tauu_file='xx_tauu', - xx_tauvstartdate1=19920601, - xx_tauvstartdate2=60000, - xx_tauvperiod=864000.0, - xx_tauv_file='xx_tauv', - / -# -# ********************* -# names for ctrl_pack/unpack -# ********************* - &PACKNAMES - yadmark='ad', - ctrlname='ecco_ctrl', - costname='ecco_cost', - scalname='ecco_scal', - maskname='ecco_mask', - metaname='ecco_meta', - / - diff --git a/pkg/ctrl/optim_readparms.F b/pkg/ctrl/optim_readparms.F index f39aef61ce..b26fb71daa 100644 --- a/pkg/ctrl/optim_readparms.F +++ b/pkg/ctrl/optim_readparms.F @@ -1,9 +1,7 @@ #include "CTRL_OPTIONS.h" - subroutine optim_readparms( - I mythid - & ) + I mythid ) c ================================================================== c SUBROUTINE optim_readparms @@ -22,35 +20,22 @@ subroutine optim_readparms( implicit none c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" - #include "optim.h" c == routine arguments == - integer mythid c == local variables == - - integer errio - integer il integer iUnit c this is a dummy parameter that is never used; it is introduced here c so that we can have compatible namelists between mitgmcuv_ad and c optim.x compiled from optim_m1qn3 _RL dfminFrac - - character*(max_len_prec) record character*(max_len_mbuf) msgbuf -c == external == - - integer ilnblnk - external ilnblnk - c == end of interface == c-- Optimization parameters. @@ -66,7 +51,8 @@ subroutine optim_readparms( _BEGIN_MASTER(myThid) C- Track pkg activation status: C print a (weak) warning if data.optim is found - CALL PACKAGES_UNUSED_MSG( 'useCTRL', ' ', ' ' ) + CALL PACKAGES_UNUSED_MSG( 'useCTRL', + I 'OPTIM_READPARMS', 'optim' ) _END_MASTER(myThid) RETURN ENDIF @@ -113,6 +99,5 @@ subroutine optim_readparms( _BARRIER - return - end - + RETURN + END diff --git a/pkg/debug/write_fullarray_rl.F b/pkg/debug/write_fullarray_rl.F index a5a7043762..64623b5cff 100644 --- a/pkg/debug/write_fullarray_rl.F +++ b/pkg/debug/write_fullarray_rl.F @@ -16,8 +16,11 @@ SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize, C | can write local array (with no bi,bj) corresponding to C | tile biArg,bjArg C | or global array (with bi,bj) (called with biArg=bjArg=0) -C | Warning: does not explicitly do the byte-swapping -C | (=> write little-endian binary file). +C | Warning: +C | 1) does not explicitly do the byte-swapping unless +C | specified by compiler option. +C | 2) ignores writeBinaryPrec and just write output with +C | same precision as input array (float32/float64) C *==========================================================* C \ev C !USES: @@ -35,7 +38,7 @@ SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize, INTEGER iRec INTEGER myIter INTEGER myThid - _RL fld(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSize,nSx,nSy) + _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy) C !FUNCTIONS: C == Functions == @@ -60,11 +63,11 @@ SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize, CALL MDSFINDUNIT( dUnit, myThid ) C-- file precision has to match array type (no copy to buffer) -#ifdef RL_IS_REAL4 - filePrec = precFloat32 -#else +c#ifdef RL_IS_REAL4 +c filePrec = precFloat32 +c#else filePrec = precFloat64 -#endif +c#endif IF ( biArg.EQ.0 .AND. bjArg.EQ.0 ) THEN C-- Write full global array: @@ -84,18 +87,18 @@ SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize, c OPEN( dUnit, file=fullName, status='unknown', c & form='unformatted') c WRITE(dUnit) ((( fld(i,j,k,bi,bj), -c & i=1-Olx,sNx+Olx), -c & j=1-Oly,sNy+Oly), +c & i=1-OLx,sNx+OLx), +c & j=1-OLy,sNy+OLy), c & k=1,kSize) length_of_rec = MDS_RECLEN( - & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid ) + & filePrec, (sNx+2*OLx)*(sNy+2*OLy), myThid ) OPEN( dUnit, file=fullName, status='unknown', & access='direct', recl=length_of_rec ) DO k = 1,kSize kRec = k + (iRec-1)*kSize WRITE(dUnit,rec=kRec) (( fld(i,j,k,bi,bj), - & i=1-Olx,sNx+Olx), - & j=1-Oly,sNy+Oly ) + & i=1-OLx,sNx+OLx), + & j=1-OLy,sNy+OLy ) ENDDO CLOSE(dUnit) @@ -118,18 +121,18 @@ SUBROUTINE WRITE_FULLARRAY_RL( fnam, fld, kSize, c OPEN( dUnit, file=fullName, status='unknown', c & form='unformatted') c WRITE(dUnit) ((( fld(i,j,k,1,1), -c & i=1-Olx,sNx+Olx), -c & j=1-Oly,sNy+Oly), +c & i=1-OLx,sNx+OLx), +c & j=1-OLy,sNy+OLy), c & k=1,kSize) length_of_rec = MDS_RECLEN( - & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid ) + & filePrec, (sNx+2*OLx)*(sNy+2*OLy), myThid ) OPEN( dUnit, file=fullName, status='unknown', & access='direct', recl=length_of_rec ) DO k = 1,kSize kRec = k + (iRec-1)*kSize WRITE(dUnit,rec=kRec) (( fld(i,j,k,1,1), - & i=1-Olx,sNx+Olx), - & j=1-Oly,sNy+Oly ) + & i=1-OLx,sNx+OLx), + & j=1-OLy,sNy+OLy ) ENDDO CLOSE(dUnit) diff --git a/pkg/debug/write_fullarray_rs.F b/pkg/debug/write_fullarray_rs.F index 79264977db..5cb8f6084b 100644 --- a/pkg/debug/write_fullarray_rs.F +++ b/pkg/debug/write_fullarray_rs.F @@ -16,8 +16,11 @@ SUBROUTINE WRITE_FULLARRAY_RS( fnam, fld, kSize, C | can write local array (with no bi,bj) corresponding to C | tile biArg,bjArg C | or global array (with bi,bj) (called with biArg=bjArg=0) -C | Warning: does not explicitly do the byte-swapping -C | (=> write little-endian binary file). +C | Warning: +C | 1) does not explicitly do the byte-swapping unless +C | specified by compiler option. +C | 2) ignores writeBinaryPrec and just write output with +C | same precision as input array (float32/float64) C *==========================================================* C \ev C !USES: @@ -35,7 +38,7 @@ SUBROUTINE WRITE_FULLARRAY_RS( fnam, fld, kSize, INTEGER iRec INTEGER myIter INTEGER myThid - _RS fld(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSize,nSx,nSy) + _RS fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize,nSx,nSy) C !FUNCTIONS: C == Functions == @@ -84,18 +87,18 @@ SUBROUTINE WRITE_FULLARRAY_RS( fnam, fld, kSize, c OPEN( dUnit, file=fullName, status='unknown', c & form='unformatted') c WRITE(dUnit) ((( fld(i,j,k,bi,bj), -c & i=1-Olx,sNx+Olx), -c & j=1-Oly,sNy+Oly), +c & i=1-OLx,sNx+OLx), +c & j=1-OLy,sNy+OLy), c & k=1,kSize) length_of_rec = MDS_RECLEN( - & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid ) + & filePrec, (sNx+2*OLx)*(sNy+2*OLy), myThid ) OPEN( dUnit, file=fullName, status='unknown', & access='direct', recl=length_of_rec ) DO k = 1,kSize kRec = k + (iRec-1)*kSize WRITE(dUnit,rec=kRec) (( fld(i,j,k,bi,bj), - & i=1-Olx,sNx+Olx), - & j=1-Oly,sNy+Oly ) + & i=1-OLx,sNx+OLx), + & j=1-OLy,sNy+OLy ) ENDDO CLOSE(dUnit) @@ -118,18 +121,18 @@ SUBROUTINE WRITE_FULLARRAY_RS( fnam, fld, kSize, c OPEN( dUnit, file=fullName, status='unknown', c & form='unformatted') c WRITE(dUnit) ((( fld(i,j,k,1,1), -c & i=1-Olx,sNx+Olx), -c & j=1-Oly,sNy+Oly), +c & i=1-OLx,sNx+OLx), +c & j=1-OLy,sNy+OLy), c & k=1,kSize) length_of_rec = MDS_RECLEN( - & filePrec, (sNx+2*Olx)*(sNy+2*Oly), myThid ) + & filePrec, (sNx+2*OLx)*(sNy+2*OLy), myThid ) OPEN( dUnit, file=fullName, status='unknown', & access='direct', recl=length_of_rec ) DO k = 1,kSize kRec = k + (iRec-1)*kSize WRITE(dUnit,rec=kRec) (( fld(i,j,k,1,1), - & i=1-Olx,sNx+Olx), - & j=1-Oly,sNy+Oly ) + & i=1-OLx,sNx+OLx), + & j=1-OLy,sNy+OLy ) ENDDO CLOSE(dUnit) diff --git a/pkg/diagnostics/DIAGNOSTICS.h b/pkg/diagnostics/DIAGNOSTICS.h index 2b89a6a3ec..a73705532a 100644 --- a/pkg/diagnostics/DIAGNOSTICS.h +++ b/pkg/diagnostics/DIAGNOSTICS.h @@ -100,7 +100,7 @@ C fnames(n) :: output file name for output stream # n C fflags(n) :: character string with per-file flags C :: 1rst: file precision ('R','D' or ' ' to use default outp prec) C :: 2nd: 'I'; integrate vertically ; 'P': interpolate vertically -C :: 3rd: 'h'; cumulate thickness weighted field (if permitted) +C :: 3rd: 'h'; multiply by hFac (if permitted) when filled C useMissingValue :: put MissingValue where mask = 0 (NetCDF output only) _RL freq(numLists), phase(numLists) diff --git a/pkg/diagnostics/DIAGNOSTICS_SIZE.h b/pkg/diagnostics/DIAGNOSTICS_SIZE.h index 9104ddaf46..a30a5dabb9 100644 --- a/pkg/diagnostics/DIAGNOSTICS_SIZE.h +++ b/pkg/diagnostics/DIAGNOSTICS_SIZE.h @@ -22,7 +22,6 @@ C and "diagSt_size" (statistics-diags) since values here are deliberately small PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) PARAMETER( diagSt_size = 10*Nr ) - CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/pkg/diagnostics/diagnostics_main_init.F b/pkg/diagnostics/diagnostics_main_init.F index 73b191a869..cab51c3960 100644 --- a/pkg/diagnostics/diagnostics_main_init.F +++ b/pkg/diagnostics/diagnostics_main_init.F @@ -110,7 +110,7 @@ SUBROUTINE DIAGNOSTICS_MAIN_INIT( myThid ) sTitle = ' Absolute Salinity ' ELSE tUnit4c= 'degC' - sUnit5c= 'psu ' + sUnit5c= 'g/kg ' c tTitle = 'Potential Temperature' sTitle = ' Salinity ' ENDIF @@ -917,6 +917,15 @@ SUBROUTINE DIAGNOSTICS_MAIN_INIT( myThid ) # endif /* ALLOW_GMREDI */ #endif /* ALLOW_EDDYPSI */ +#ifdef INCLUDE_SOUNDSPEED_CALC_CODE + diagName = 'CSound ' + diagTitle = 'Speed of sound in seawater' + diagUnits = 'm/s ' + diagCode = 'SMR MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif + #ifdef ALLOW_AUTODIFF C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C Adjoint state variables @@ -960,11 +969,97 @@ SUBROUTINE DIAGNOSTICS_MAIN_INIT( myThid ) diagName = 'ADJsalt ' diagTitle = 'dJ/dSalt: Sensitivity to salinity' - diagUnits = 'dJ/psu ' + diagUnits = DIAGS_MK_UNITS( 'dJ/('//sUnit5c//')', myThid ) + diagCode = 'SMRA MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +C-- surface fluxes: + diagName = 'ADJtaux ' + diagTitle = 'dJ/dTaux: Senstivity to zonal surface wind stress' + diagUnits = 'dJ/(N/m^2) ' + diagCode = 'UU A U1 ' + diagMate = diagNum + 2 + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJtauy ' + diagTitle = 'dJ/dTauy: Sensitivity to merid. surface wind stress' + diagUnits = 'dJ/(N/m^2) ' + diagCode = 'VV A U1 ' + diagMate = diagNum + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJempmr' + diagTitle = 'dJ/dEmPmR: Sensitivity to net surface Fresh-Water' + & //' flux into the ocean' + diagUnits = 'dJ/(kg/m^2/s) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJqnet' + diagTitle = 'dJ/dQnet: Sensitivity to net surface heat flux' + & //'into the ocean' + diagUnits = 'dJ/(W/m^2) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJqsw' + diagTitle = 'dJ/dQsw: Sensitivitiy to net Short-Wave radiation' + diagUnits = 'dJ/(W/m^2) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJsst' + diagTitle = 'dJ/dSST: Sensitivity to Sea Surface Temperature' + diagUnits = 'dJ/K' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJsss' + diagTitle = 'dJ/dSSS: Sensitivity to Sea Surface Salinity' + diagUnits = DIAGS_MK_UNITS( 'dJ/('//sUnit5c//')', myThid ) + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +C Miscellanious + diagName = 'ADJbtdrg' + diagTitle = 'dJ/dCd: Sensitivity to bottom drag coefficient' + diagUnits = 'dJ/d()' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJdifkr' + diagTitle = 'dJ/dKr: Sensitivity to vertical diffusivity' + diagUnits = 'dJ/d(m^2/s))' diagCode = 'SMRA MR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'ADJepsix' + diagTitle = 'dJ/dEddyPsiX: Sensitivity to zonal eddy' + & //'streamfunction' + diagUnits = 'dJ/(m^2/s) ' + diagCode = 'UURA UR ' + diagMate = diagNum + 2 + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJepsiy' + diagTitle = 'dJ/dEddyPsiY: Sensitivity to meridional eddy' + & //'streamfunction' + diagUnits = 'dJ/(m^2/s) ' + diagCode = 'VVRA UR ' + diagMate = diagNum + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) #endif /* ALLOW_AUTODIFF */ RETURN diff --git a/pkg/diagnostics/diagnostics_out.F b/pkg/diagnostics/diagnostics_out.F index 723506066f..a32eb0999f 100644 --- a/pkg/diagnostics/diagnostics_out.F +++ b/pkg/diagnostics/diagnostics_out.F @@ -125,23 +125,23 @@ SUBROUTINE DIAGNOSTICS_OUT( C a) find the time of the previous multiple of output freq: timeRec(1) = myTime-deltaTClock*0.5 _d 0 timeRec(1) = (timeRec(1)-phase(listId))/freq(listId) - i = INT( timeRec(1) ) - IF ( timeRec(1).LT.0. ) THEN - tmpLoc = FLOAT(i) - IF ( timeRec(1).NE.tmpLoc ) i = i - 1 + tmpLoc = DINT( timeRec(1) ) + IF ( timeRec(1).LT.zeroRL ) THEN + IF ( timeRec(1).NE.tmpLoc ) tmpLoc = tmpLoc - 1. _d 0 ENDIF - timeRec(1) = phase(listId) + freq(listId)*FLOAT(i) -c if ( listId.eq.2 ) write(0,*) 'f',i,timeRec(1)/deltaTClock + timeRec(1) = phase(listId) + freq(listId)*tmpLoc +c WRITE(0,'(3I5,A,2F17.4)') myProcId, myThid, listId, +c & ' f ', tmpLoc, timeRec(1)/deltaTClock timeRec(1) = MAX( timeRec(1), startTime ) C b) round off to nearest multiple of time-step: timeRec(1) = (timeRec(1)-baseTime)/deltaTClock - i = NINT( timeRec(1) ) + tmpLoc = DNINT( timeRec(1) ) C if just half way, NINT will return the next time-step: correct this - tmpLoc = FLOAT(i) - 0.5 _d 0 - IF ( timeRec(1).EQ.tmpLoc ) i = i - 1 - timeRec(1) = baseTime + deltaTClock*FLOAT(i) -c if ( listId.eq.2 ) write(0,*) i,timeRec(1)/deltaTClock + IF ( (timeRec(1)+halfRL).EQ.tmpLoc ) tmpLoc = tmpLoc - 1. _d 0 + timeRec(1) = baseTime + deltaTClock*tmpLoc +c WRITE(0,'(3I5,A,2F17.4)') myProcId, myThid, listId, +c & ' ', tmpLoc, timeRec(1)/deltaTClock ENDIF C-- Convert time to iteration number (debug) c DO i=1,nTimRec diff --git a/pkg/diagnostics/diagnostics_sum_levels.F b/pkg/diagnostics/diagnostics_sum_levels.F index 4457dea554..7ec93e552b 100644 --- a/pkg/diagnostics/diagnostics_sum_levels.F +++ b/pkg/diagnostics/diagnostics_sum_levels.F @@ -82,8 +82,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( DO k = 1,nlevels(listId) kLev = NINT(levs(k,listId)) - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 tmpFld(i,j) = tmpFld(i,j) + fld3d(i,j,kLev,bi,bj) ENDDO ENDDO @@ -105,8 +105,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( ELSE tmpFac = drF(kLev) ENDIF - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 tmpFld(i,j) = tmpFld(i,j) & + tmpFac*fld3d(i,j,kLev,bi,bj) ENDDO @@ -129,8 +129,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( ELSE tmpFac = drF(kLev) ENDIF - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 tmpFld(i,j) = tmpFld(i,j) & + tmpFac*fld3d(i,j,kLev,bi,bj) & *hFacC(i,j,kLev,bi,bj) @@ -145,8 +145,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( ELSE tmpFac = drF(kLev) ENDIF - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 tmpFld(i,j) = tmpFld(i,j) & + tmpFac*fld3d(i,j,kLev,bi,bj) & *hFacW(i,j,kLev,bi,bj) @@ -161,8 +161,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( ELSE tmpFac = drF(kLev) ENDIF - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 tmpFld(i,j) = tmpFld(i,j) & + tmpFac*fld3d(i,j,kLev,bi,bj) & *hFacS(i,j,kLev,bi,bj) @@ -177,8 +177,8 @@ SUBROUTINE DIAGNOSTICS_SUM_LEVELS( ELSE tmpFac = drF(kLev) ENDIF - DO j = 2-OLy,sNy+OLy - DO i = 2-OLx,sNx+OLx + DO j = 1,sNy+1 + DO i = 1,sNx+1 hFacLoc = MIN( & hFacW( i, j, kLev,bi,bj), & hFacW( i,j-1,kLev,bi,bj), diff --git a/pkg/diagnostics/diagnostics_write_adj.F b/pkg/diagnostics/diagnostics_write_adj.F index d178d37f41..09dbce73ed 100644 --- a/pkg/diagnostics/diagnostics_write_adj.F +++ b/pkg/diagnostics/diagnostics_write_adj.F @@ -15,7 +15,7 @@ SUBROUTINE DIAGNOSTICS_WRITE_ADJ ( C Arguments Description C ---------------------- C modelStart :: true if call at start of model run. -C :: (this is the adjoint's modelEnd) +C :: (this is the adjoint s modelEnd) C myTime :: Current time of simulation ( s ) C myIter :: Current Iteration Number C myThid :: my Thread Id number diff --git a/pkg/diagnostics/diagstats_mnc_out.F b/pkg/diagnostics/diagstats_mnc_out.F index f9f425314b..dad2ce69ca 100644 --- a/pkg/diagnostics/diagstats_mnc_out.F +++ b/pkg/diagnostics/diagstats_mnc_out.F @@ -50,7 +50,7 @@ SUBROUTINE DIAGSTATS_MNC_OUT( INTEGER im, ix, iv, ist PARAMETER ( iv = nStats - 2 , im = nStats - 1 , ix = nStats ) INTEGER i, j, k - CHARACTER*(MAX_LEN_MBUF) tnam + CHARACTER*(MAX_LEN_FNAM) tnam CHARACTER*(3) stat_typ(5) INTEGER ILNBLNK EXTERNAL ILNBLNK diff --git a/pkg/dic/DIC_LOAD.h b/pkg/dic/DIC_LOAD.h index df13325aae..5b6bff91b9 100644 --- a/pkg/dic/DIC_LOAD.h +++ b/pkg/dic/DIC_LOAD.h @@ -4,37 +4,44 @@ C chlinput :: chlorophyll climatology input field [mg/m3] COMMON /DIC_LOAD_I/ DIC_ldRec COMMON /DIC_LOAD_RS/ - & dicwind0, dicwind1, ice0, ice1, atmosp0, - & atmosp1, silica0, silica1 + & dicwind0, dicwind1, ice0, ice1, atmosp0, atmosp1, + & silicaSurf0, silicaSurf1 +#ifdef DIC_CALCITE_SAT + & , silicaDeep0, silicaDeep1 +#endif #ifdef READ_PAR - & ,par0, par1 + & , par0, par1 #endif #ifdef ALLOW_FE - & ,feinput0,feinput1 + & , feinput0, feinput1 #endif #ifdef LIGHT_CHL - & ,chlinput + & , chlinput #endif INTEGER DIC_ldRec(nSx,nSy) - _RS dicwind0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS dicwind1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS ice0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS ice1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS atmosp0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS atmosp1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS silica0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS silica1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS dicwind0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS dicwind1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS ice0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS ice1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS atmosp0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS atmosp1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS silicaSurf0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS silicaSurf1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef DIC_CALCITE_SAT + _RS silicaDeep0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS silicaDeep1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif #ifdef READ_PAR - _RS par0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS par1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS par0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS par1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #ifdef ALLOW_FE - _RS feinput0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS feinput1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS feinput0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS feinput1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif #ifdef LIGHT_CHL - _RS chlinput (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS chlinput (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif CEH3 ;;; Local Variables: *** diff --git a/pkg/dic/DIC_OPTIONS.h b/pkg/dic/DIC_OPTIONS.h index c738e81098..80bfd4591d 100644 --- a/pkg/dic/DIC_OPTIONS.h +++ b/pkg/dic/DIC_OPTIONS.h @@ -3,6 +3,18 @@ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: DIC_OPTIONS.h +C !INTERFACE: +C #include "DIC_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for pkg "dic": +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_DIC C Package-specific Options & Macros go here @@ -38,7 +50,7 @@ C put back bugs related to Water-Vapour in carbonate chemistry & air-sea fluxes #undef WATERVAP_BUG C dissolution only below saturation horizon following method by Karsten Friis -#undef CAR_DISS +#undef DIC_CALCITE_SAT C Include self-shading effect by phytoplankton #undef LIGHT_CHL @@ -46,9 +58,8 @@ C Include self-shading effect by phytoplankton C Include iron sediment source using DOP flux #undef SEDFE +C For Adjoint built +#undef DIC_AD_SAFE + #endif /* ALLOW_DIC */ #endif /* DIC_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/dic/DIC_VARS.h b/pkg/dic/DIC_VARS.h index e59b387b31..0153791497 100644 --- a/pkg/dic/DIC_VARS.h +++ b/pkg/dic/DIC_VARS.h @@ -8,31 +8,70 @@ C *==========================================================* C AtmospCO2 :: Atmospheric pCO2 (atm). C AtmosP :: Atmospheric Pressure loaded from file (atm). -C pH :: surface ocean pH (acidity) for pCO2 -C calculations. +C pH :: surface ocean pH (acidity) for pCO2 calculations. C pCO2 :: surface ocean partial pressure of CO2 (atm). C FluxCO2 :: Air-sea flux of CO2 (mol/m2/s). C wind :: Wind speed loaded from file for air-sea C flux calculations (m/s). -C FIce :: Fraction of sea ice cover loaded from file +C fIce :: Fraction of sea ice cover loaded from file C (or set by thice/seaice) C for air-sea flux calculations. -C Silica :: Surface ocean concentration of silicate for -C pCO2 calculations. Read in from file (mol/m3). C Kwexch_Pre :: Common part of piston velocity used for C for air-sea CO2 and O2 flux calculations. +C silicaSurf :: Surface ocean concentration of silicate for +C pCO2 calculations. Read in from file (mol/m3). +C zca :: Scale depth for CaCO3 remineralization [m] +C useCalciteSaturation :: Dissolve calcium carbonate only below saturation +C horizon (needs DIC_CALCITE_SAT to be defined) +C calcOmegaCalciteFreq :: Frequency at which 3D calcite saturation state, +C omegaC, is updated (s). +C nIterCO3 :: Number of iterations of the Follows 3D pH solver to +C calculate deep carbonate ion concenetration (no +C effect when using the Munhoven/SolveSapHe solvers). +C KierRateK :: Rate constant (%) for calcite dissolution from +C Kier (1980) Geochem. Cosmochem. Acta. +C KierRateExp :: Rate exponent for calcite dissolution from +C Kier (1980) Geochem. Cosmochem. Acta. +C WsinkPIC :: sinking speed (m/s) of particulate inorganic carbon for +C calculation of calcite dissolution through the watercolumn +C selectCalciteBottomRemin :: to either remineralize in bottom or top layer +C if flux reaches bottom layer; =0 : bottom, =1 : top + COMMON /CARBON_NEEDS/ & AtmospCO2, AtmosP, pH, pCO2, FluxCO2, - & wind, FIce, Silica, Kwexch_Pre + & wind, fIce, Kwexch_Pre, silicaSurf, + & zca, calcOmegaCalciteFreq, + & KierRateK, KierRateExp, WsinkPIC, + & selectCalciteBottomRemin, nIterCO3, + & useCalciteSaturation + _RL AtmospCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL AtmosP(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pH(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL pCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL pH(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL FluxCO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL wind(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL FIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL Silica(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL fIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL Kwexch_Pre(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL silicaSurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL zca + _RL calcOmegaCalciteFreq + _RL KierRateK + _RL KierRateExp + _RL WsinkPIC + INTEGER selectCalciteBottomRemin + INTEGER nIterCO3 + LOGICAL useCalciteSaturation + +#ifdef DIC_CALCITE_SAT +C silicaDeep :: 3D-field of silicate concentration for pH and +C carbonate calculations. Read in from file (mol/m3). +C omegaC :: Local saturation state with respect to calcite + COMMON /DIC_CALCITE_SAT_FIELDS/ + & silicaDeep, omegaC + _RL silicaDeep(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL omegaC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif C Store dissociation and carbon chemistry coefficients for C pCO2 solvers (see carbon_chem.F). @@ -197,6 +236,7 @@ C DIC_atmospFile :: file name of atmospheric pressure C DIC_iceFile :: file name of seaice fraction C DIC_ironFile :: file name of aeolian iron flux C DIC_silicaFile :: file name of surface silica +C DIC_deepSilicaFile :: file name of 3D silica fields C DIC_parFile :: file name of photosynthetically available radiation (PAR) C DIC_chlaFile :: file name of chlorophyll climatology C DIC_forcingPeriod :: periodic forcing parameter specific for dic (seconds) @@ -212,19 +252,21 @@ C dic_int3 :: start timestep C dic_int4 :: timestep between file entries C dic_pCO2 :: atmospheric pCO2 to be read from data.dic COMMON /DIC_FILENAMES/ - & DIC_windFile, DIC_atmospFile, DIC_iceFile, - & DIC_ironFile, DIC_silicaFile, DIC_parFile, - & DIC_chlaFile, + & DIC_windFile, DIC_atmospFile, DIC_silicaFile, + & DIC_deepSilicaFile, + & DIC_iceFile, DIC_parFile, + & DIC_chlaFile, DIC_ironFile, & DIC_forcingPeriod, DIC_forcingCycle, & dic_pCO2, dic_int1, dic_int2, dic_int3, dic_int4 CHARACTER*(MAX_LEN_FNAM) DIC_windFile CHARACTER*(MAX_LEN_FNAM) DIC_atmospFile - CHARACTER*(MAX_LEN_FNAM) DIC_iceFile - CHARACTER*(MAX_LEN_FNAM) DIC_ironFile CHARACTER*(MAX_LEN_FNAM) DIC_silicaFile + CHARACTER*(MAX_LEN_FNAM) DIC_deepSilicaFile + CHARACTER*(MAX_LEN_FNAM) DIC_iceFile CHARACTER*(MAX_LEN_FNAM) DIC_parFile CHARACTER*(MAX_LEN_FNAM) DIC_chlaFile + CHARACTER*(MAX_LEN_FNAM) DIC_ironFile _RL DIC_forcingPeriod _RL DIC_forcingCycle _RL dic_pCO2 @@ -238,40 +280,6 @@ C *==========================================================* C | o Biological Carbon Variables C *==========================================================* -C For averages of the output using TIMEAVE -C BIOave :: biological productivity [mol P/m3/s] -C CARave :: carbonate changes due to biological productivity -C and remineralization [mol C/m3/s] -C SURave :: tendency of DIC due to air-sea exchange -C and virtual flux [mol C/m3/s] -C SUROave :: tendency of O2 due to air-sea exchange [mol O2/m3/s] -C pCO2ave :: surface ocean pCO2 [uatm] -C pHave :: surface ocean pH -C fluxCO2ave :: Air-sea flux of CO2 [mol C/m2/s] -C omegaCave :: Local saturation state with respect to calcite -C pfluxave :: changes to PO4 due to flux and remineralization [mol P/m3/s] -C epfluxave :: export flux of PO4 through each layer [mol P/m2/s] -C cfluxave :: carbonate changes due to flux and remineralization [mol C/m3/s] -C DIC_timeAve :: period over which DIC averages are calculated [s] - - COMMON /BIOTIC_TAVE/ - & BIOave, CARave, SURave, SUROave, pCO2ave, pHave, - & fluxCO2ave, omegaCave, pfluxave, epfluxave, cfluxave, - & DIC_timeAve - - _RL BIOave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL CARave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL SURave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL SUROave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pCO2ave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL pHave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL fluxCO2ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL OmegaCave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL pfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL epfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL cfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL DIC_timeAve(nSx,nSy) - C Values for biotic biogeochemistry C (many set in data.dic, defaults to values in dic_readparms.F) C par :: photosynthetically active radiation (light available @@ -281,7 +289,6 @@ C alphaUniform :: read in alphaUniform to fill in 2d array alpha C rain_ratio :: inorganic/organic particulate carbon rain ratio (PIC/POC) C rainRatioUniform :: read in rainRatioUniform to fill in 2d array rain_ratio C InputFe :: aeolian deposition of TOTAL IRON in dust [mol/m2/s] -C omegaC :: Local saturation state with respect to calcite C CHL :: chlorophyll climatology data for self-shading effect [mg/m3] C Kpo4, KFE, lit0 :: half saturation constants for phosphate [mol P/m3], C iron [mol Fe/m3] and light [W/m2] @@ -290,7 +297,6 @@ C zcrit :: Minimum Depth (m) over which biological activity is compu C nlev :: level index just below -zcrit C KRemin :: remineralization power law coeffient C KDOPremin :: DOP remineralization rate [1/s] -C zca :: scale depth for CaCO3 remineralization [m] C R_op, R_cp :: stochiometric ratios of nutrients C R_NP, R_FeP :: stochiometric ratios of nutrients C (assumption of stoichometry of plankton and @@ -317,15 +323,14 @@ C cfeload :: not used (legacy adjoint param) C QSW_underice :: is Qsw is masked by ice fraction? COMMON /BIOTIC_NEEDS/ - & par, alpha, rain_ratio, InputFe, omegaC, CHL, + & par, alpha, rain_ratio, InputFe, CHL, & Kpo4, DOPfraction, zcrit, KRemin, - & KDOPremin,zca,R_op,R_cp,R_NP, R_FeP, + & KDOPremin, R_op, R_cp, R_NP, R_FeP, & O2crit, alpfe, KScav, ligand_stab, ligand_tot, KFE, & freefemax, fesedflux_pcm, FeIntSec, & parfrac, k0, kchl, lit0, & alphaUniform, rainRatioUniform, & nlev, QSW_underice - c & alphamax, alphamin, c & calpha, crain_ratio, cInputFe, calpfe, feload, cfeload, @@ -333,14 +338,12 @@ c & calpha, crain_ratio, cInputFe, calpfe, feload, cfeload, _RL alpha(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL rain_ratio(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL InputFe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL omegaC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL CHL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL Kpo4 _RL DOPfraction _RL zcrit _RL KRemin _RL KDOPremin - _RL zca _RL R_op _RL R_cp _RL R_NP @@ -352,7 +355,7 @@ c & calpha, crain_ratio, cInputFe, calpfe, feload, cfeload, _RL KScav _RL ligand_stab _RL ligand_tot - _RL KFe + _RL KFe _RL freefemax _RL k0, kchl, parfrac, lit0 _RL alphaUniform @@ -367,8 +370,42 @@ c _RL feload(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER nlev LOGICAL QSW_underice -#endif /* DIC_BIOTIC */ -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** +#ifdef ALLOW_TIMEAVE +C For time-averages output using TIMEAVE pkg: +C Note: Although some of the Time-Ave arrays are for A-Biotic fields, all these +C arrays are only used + filled within ifdef DIC_BIOTIC code, so we keep +C them only if DIC_BIOTIC is defined. +C BIOave :: biological productivity [mol P/m3/s] +C CARave :: carbonate changes due to biological productivity +C and remineralization [mol C/m3/s] +C SURave :: tendency of DIC due to air-sea exchange +C and virtual flux [mol C/m3/s] +C SUROave :: tendency of O2 due to air-sea exchange [mol O2/m3/s] +C pCO2ave :: surface ocean pCO2 [uatm] +C pHave :: surface ocean pH +C fluxCO2ave :: Air-sea flux of CO2 [mol C/m2/s] +C pfluxave :: changes to PO4 due to flux and remineralization [mol P/m3/s] +C epfluxave :: export flux of PO4 through each layer [mol P/m2/s] +C cfluxave :: carbonate changes due to flux and remineralization [mol C/m3/s] +C DIC_timeAve :: period over which DIC averages are calculated [s] + + COMMON /BIOTIC_TAVE/ + & BIOave, CARave, SURave, SUROave, pCO2ave, pHave, + & fluxCO2ave, pfluxave, epfluxave, cfluxave, + & DIC_timeAve + + _RL BIOave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL CARave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL SURave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL SUROave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL pCO2ave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL pHave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL fluxCO2ave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL pfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL epfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL cfluxave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL DIC_timeAve(nSx,nSy) +#endif /* ALLOW_TIMEAVE */ + +#endif /* DIC_BIOTIC */ diff --git a/pkg/dic/alk_surfforcing.F b/pkg/dic/alk_surfforcing.F index 062e12b29a..9500cdc681 100644 --- a/pkg/dic/alk_surfforcing.F +++ b/pkg/dic/alk_surfforcing.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE ALK_SURFFORCING( PTR_ALK , GALK, I bi,bj,imin,imax,jmin,jmax, - I myIter,myTime,myThid) + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate the alkalinity change due to freshwater flux @@ -23,15 +23,15 @@ SUBROUTINE ALK_SURFFORCING( PTR_ALK , GALK, #include "DIC_VARS.h" C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time -C bi,bj :: tile indices C PTR_ALK :: alkalinity field - INTEGER myIter, myThid - _RL myTime +C bi,bj :: tile indices +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER iMin,iMax,jMin,jMax, bi, bj + _RL myTime + INTEGER myIter, myThid C !OUTPUT PARAMETERS: ================================================== C GALK :: tendency term of alkalinity diff --git a/pkg/dic/bio_export.F b/pkg/dic/bio_export.F index 20b76d64f5..4aeb9ef1d5 100644 --- a/pkg/dic/bio_export.F +++ b/pkg/dic/bio_export.F @@ -10,7 +10,7 @@ SUBROUTINE BIO_EXPORT( PTR_PO4 , #endif O bioac, I bi,bj,iMin,iMax,jMin,jMax, - I myIter,myTime,myThid) + I myTime, myIter, myThid ) c !DESCRIPTION: C Calculate biological activity and export @@ -28,24 +28,24 @@ SUBROUTINE BIO_EXPORT( PTR_PO4 , #endif C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time C PTR_PO4 :: phosphate tracer field C PTR_FE :: iron tracer field - INTEGER myIter - _RL myTime - INTEGER myThid +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number _RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #ifdef ALLOW_FE _RL PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif INTEGER iMin, iMax, jMin, jMax, bi, bj + _RL myTime + INTEGER myIter + INTEGER myThid C !OUTPUT PARAMETERS: ================================================== C bioac :: biological productivity (will be split C between export and dissolved pool) - _RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR) + _RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #if (defined ALLOW_PTRACERS && defined DIC_BIOTIC) @@ -60,8 +60,8 @@ SUBROUTINE BIO_EXPORT( PTR_PO4 , #ifdef ALLOW_FE _RL tmpfe #endif -#ifdef AD_SAFE - _RL thx, thy, theps, thaux +#ifdef DIC_AD_SAFE + _RL thx, thy, thaux #endif CEOP @@ -125,13 +125,11 @@ SUBROUTINE BIO_EXPORT( PTR_PO4 , #else tmpfe=PTR_FE(i,j,k) #endif -#ifdef AD_SAFE +#ifdef DIC_AD_SAFE thx = tmppo4/(tmppo4+KPO4) thy = tmpfe/(tmpfe+KFE) c thx = PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4) c thy = PTR_FE(i,j,k)/(PTR_FE(i,j,k)+KFE) -c theps = 1. _d -6 -c thaux = tanh( (thx-thy)/theps ) thaux = tanh( (thx-thy)*1. _d 6 ) nutlimit= ( 1. _d 0 - thaux ) * thx * 0.5 _d 0 & + ( 1. _d 0 + thaux ) * thy * 0.5 _d 0 diff --git a/pkg/dic/calcite_saturation.F b/pkg/dic/calcite_saturation.F index 8dea6a92ef..4b08ea9650 100644 --- a/pkg/dic/calcite_saturation.F +++ b/pkg/dic/calcite_saturation.F @@ -6,10 +6,12 @@ C !INTERFACE: ========================================================== SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, I bi,bj,imin,imax,jmin,jmax, - I myIter,myTime,myThid ) + I myTime, myIter, myThid ) C !DESCRIPTION: -C Calculate carbonate fluxes +C Calculate carbonate fluxes: +C - determine carbonate ion concentration through full domain +C - calculate calcite saturation state C !USES: =============================================================== IMPLICIT NONE @@ -21,59 +23,52 @@ SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, #include "DIC_VARS.h" C !INPUT PARAMETERS: =================================================== -C myIter :: current timestep C myTime :: current time +C myIter :: current timestep C myThid :: thread number _RL PTR_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER imin, imax, jmin, jmax, bi, bj - INTEGER myIter _RL myTime + INTEGER myIter INTEGER myThid C !OUTPUT PARAMETERS: =================================================== -#ifdef DIC_BIOTIC +#if ( defined DIC_BIOTIC && defined DIC_CALCITE_SAT ) C !LOCAL VARIABLES: ==================================================== C i,j,k :: loop indices INTEGER i,j,k LOGICAL debugPrt - _RL carbonate + _RL carbonate(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL calcium - _RL silicaTEST + _RL sitlocal _RL po4local _RL diclocal _RL alklocal - _RL pCO2local - _RL pHlocal + _RL pCO2local(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL pHlocal(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL locTemp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL locSalt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER CO3ITER - INTEGER CO3ITERmax CEOP -Cmick................................................... -c write(6,*)'myIter ',myIter,' CALLED CALCITEcd_SATURATION' -c write(6,*)'WARNING calcite_sat needs 3d silica & H0 set=7.9' -c write(6,*)' - & Fixed first guess of deep pH to 7.9' -Cmick.................................................... - DO k=1,Nr -c determine carbonate ion concentration through full domain -c determine calcite saturation state DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx locTemp(i,j) = theta(i,j,k,bi,bj) locSalt(i,j) = salt (i,j,k,bi,bj) + carbonate(i,j) = 0. _d 0 + pCO2local(i,j) = 0. _d 0 + pHlocal(i,j) = 0. _d 0 ENDDO ENDDO #ifdef CARBONCHEM_SOLVESAPHE #ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL( - & 'DIC_COEFFS_DEEP',myThid) + IF (debugMode) CALL DEBUG_CALL( 'DIC_COEFFS_DEEP',myThid ) #endif C Calculate carbon coefficients CALL DIC_COEFFS_SURF( @@ -87,8 +82,8 @@ SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, I k,myThid) #else #ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL( - & 'CARBON_COEFFS_PRESSURE_DEP',myThid) + IF (debugMode) CALL DEBUG_CALL( + & 'CARBON_COEFFS_PRESSURE_DEP',myThid) #endif CALL CARBON_COEFFS_PRESSURE_DEP( I locTemp, locSalt, @@ -100,86 +95,80 @@ SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, DO j=jmin,jmax DO i=imin,imax - IF ( maskC(i,j,k,bi,bj).EQ.oneRS ) THEN + IF ( maskC(i,j,k,bi,bj).EQ.oneRS ) THEN #ifdef CARBONCHEM_SOLVESAPHE - calcium = cat(i,j,bi,bj) +C calcium concentration already calculated in S/R DIC_COEFFS_SURF + calcium = cat(i,j,bi,bj) #else - calcium = 1.028 _d -2*salt(i,j,k,bi,bj)/35. _d 0 + calcium = 1.028 _d -2*salt(i,j,k,bi,bj)/35. _d 0 #endif -c 30 micromol = 0.03 mol m-3 - silicaTEST = 0.03 _d 0 - po4local = PTR_PO4(i,j,k) - diclocal = PTR_DIC(i,j,k) - alklocal = PTR_ALK(i,j,k) -Cmick - TEMPORARY!!!!! -Cmick silica = fixed -Cmick silica = fixed +C SilicaDeep filled with constant value of 0.03 mol/m3 unless +C DIC_deepSilicaFile provided. + sitlocal = silicaDeep(i,j,k,bi,bj) + po4local = PTR_PO4(i,j,k) + diclocal = PTR_DIC(i,j,k) + alklocal = PTR_ALK(i,j,k) #ifdef CARBONCHEM_SOLVESAPHE - IF ( selectPHsolver.GT.0 ) THEN + IF ( selectPHsolver.GT.0 ) THEN C Use Munhoven (2013) Solvesaphe routine to calculate pH and pCO2 #ifdef ALLOW_DEBUG - IF (debugPrt) CALL DEBUG_CALL('AHINI_FOR_AT',myThid) + IF (debugPrt) CALL DEBUG_CALL('AHINI_FOR_AT',myThid) #endif C call AHINI_FOR_AT to get better initial guess of pH CALL AHINI_FOR_AT(alklocal*permil, I diclocal*permil, I bt(i,j,bi,bj), - O pHlocal, + O pHlocal(i,j), I i,j,k,bi,bj,myIter,myThid ) #ifdef ALLOW_DEBUG - IF (debugPrt) CALL DEBUG_CALL('CALC_PCO2_SOLVESAPHE',myThid) + IF (debugPrt) CALL DEBUG_CALL('CALC_PCO2_SOLVESAPHE',myThid) #endif CALL CALC_PCO2_SOLVESAPHE( I locTemp(i,j), locSalt(i,j), I diclocal, po4local, - I silicaTEST,alklocal, - U pHlocal,pCO2local,carbonate, + I sitlocal, alklocal, + U pHlocal(i,j), pCO2local(i,j), carbonate(i,j), I i,j,k,bi,bj, debugPrt,myIter,myThid ) - debugPrt = .FALSE. - ELSE + +C- convert carbonate to mol kg^-1-SW for calculation of saturation state + carbonate(i,j) = carbonate(i,j)*permil + ELSE C Use the original Follows et al. (2006) solver #endif /* CARBONCHEM_SOLVESAPHE */ #ifdef ALLOW_DEBUG IF (debugPrt) CALL DEBUG_CALL('CALC_PCO2_APPROX',myThid) #endif - pHlocal = 7.9 _d 0 -Cmick -DEC 04 -Cmick- NOW ITERATE pH SOLVER AT DEPTH ONLY -Cmick TO ENSURE ACCURATE ESTIMATE OF CO3 AT DEPTH -Cmick - NOTE Si STILL USING A UNIFORM DUMMY VALUE - CO3itermax = 10 -Cmick - SO NOW WE ITERATE, UPDATING THE ESTIMATE OF pH and CO3-- -Cmick - SINCE WE CALL THIS FOR DEEP OCEAN INFREQUENTLY (MONTHLY?) -CMIKC - CAN AFFORD TO MAKE SEVERAL ITERATIONS... - DO CO3iter = 1, CO3itermax + pHlocal(i,j) = 7.9 _d 0 + +C Since we start cold with an arbitrary pH, we must iterate pH solver +C to ensure accurate estimate of co3 at depth +C Because we may call this for deep ocean infrequently can afford to make +C several iterations + + DO CO3iter = 1, nIterCO3 CALL CALC_PCO2_APPROX( I locTemp(i,j), locSalt(i,j), I diclocal, po4local, - I silicaTEST,alklocal, + I sitlocal, alklocal, I ak1(i,j,bi,bj),ak2(i,j,bi,bj), I ak1p(i,j,bi,bj),ak2p(i,j,bi,bj),ak3p(i,j,bi,bj), I aks(i,j,bi,bj),akb(i,j,bi,bj),akw(i,j,bi,bj), I aksi(i,j,bi,bj),akf(i,j,bi,bj), I ak0(i,j,bi,bj), fugf(i,j,bi,bj), ff(i,j,bi,bj), I bt(i,j,bi,bj),st(i,j,bi,bj),ft(i,j,bi,bj), - U pHlocal,pCO2local,carbonate, + U pHlocal(i,j), pCO2local(i,j), carbonate(i,j), I i,j,k,bi,bj,myIter,myThid ) - -c........................................................ -c if(i .eq. 76 .and. j .eq. 36 .and. k .eq. 15) then -c write(6,*)'Iteration, pH = ',CO3iter,pHlocal -c endif -c........................................................ ENDDO #ifdef CARBONCHEM_SOLVESAPHE - ENDIF + ENDIF #endif /* CARBONCHEM_SOLVESAPHE */ - omegaC(i,j,k,bi,bj) = calcium * carbonate / - & Ksp_TP_Calc(i,j,bi,bj) + omegaC(i,j,k,bi,bj) = calcium * carbonate(i,j) + & / Ksp_TP_Calc(i,j,bi,bj) + debugPrt = .FALSE. Cmick................................................... c if(omegaC(i,j,k,bi,bj) .eq. 0.) then @@ -187,7 +176,7 @@ SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, c write(6,*)'i,j,k,KS,CO3,pHCa,T,S,hfacc,omega', c & i,j,k, c & Ksp_TP_Calc(i,j,bi,bj), -c & carbonate,calcium,pHlocal, +c & carbonate(i,j), calcium, pHlocal(i,j), c & locTemp(i,j), locSalt(i,j), c & hfacc(i,j,k,bi,bj),omegaC(i,j,k,bi,bj) c write(6,*)'Ksp_TP_Calc', @@ -205,16 +194,33 @@ SUBROUTINE CALCITE_SATURATION( PTR_DIC, PTR_ALK, PTR_PO4, c & bt(i,j,bi,bj),st(i,j,bi,bj),ft(i,j,bi,bj) c end if Cmick.................................................... - ELSE - omegaC(i,j,k,bi,bj) = 0. _d 0 - ENDIF + ELSE +C- else (case maskC = 0 , dry point) + omegaC(i,j,k,bi,bj) = 0. _d 0 + ENDIF ENDDO ENDDO +C Fill up some diagnostics of deep pH, pCO2, and carbonate local arrays +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(pHlocal ,'DIC3DPH ',k,1,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(pCO2local,'DIC3DPCO',k,1,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(carbonate,'DIC3DCO3',k,1,2,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + C- end k loop ENDDO -#endif /* DIC_BIOTIC */ +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(omegaC ,'OMEGAC ',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(silicaDeep,'DIC3DSIT',0,Nr,1,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#endif /* DIC_BIOTIC and DIC_CALCITE_SAT */ RETURN END diff --git a/pkg/dic/car_flux.F b/pkg/dic/car_flux.F index ebb75bb1d2..cc3168d004 100644 --- a/pkg/dic/car_flux.F +++ b/pkg/dic/car_flux.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE CAR_FLUX( CAR_S, cflux, I bi,bj,imin,imax,jmin,jmax, - I myIter,myTime,myThid) + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate carbonate fluxes @@ -21,15 +21,15 @@ SUBROUTINE CAR_FLUX( CAR_S, cflux, #include "DIC_VARS.h" C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time C CAR_S :: carbonate source - INTEGER myIter - _RL myTime - INTEGER myThid +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number _RL CAR_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER imin, imax, jmin, jmax, bi, bj + _RL myTime + INTEGER myIter + INTEGER myThid C !OUTPUT PARAMETERS: =================================================== C cflux :: carbonate flux @@ -46,7 +46,7 @@ SUBROUTINE CAR_FLUX( CAR_S, cflux, c flux_u, flux_l :: flux through upper and lower interfaces c reminFac :: abbreviation c zbase :: depth of bottom of current productive layer - INTEGER I,J,k, ko, kop1 + INTEGER i,j,k, ko, kop1 _RL zbase _RL caexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL reminFac @@ -64,12 +64,12 @@ SUBROUTINE CAR_FLUX( CAR_S, cflux, C-- If no layer below initial layer (because of bottom or C-- topography), then remineralize in here IF (k.EQ.Nr) THEN - cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k) + cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k) ELSEIF ( _hFacC(i,j,k+1,bi,bj).EQ.0. _d 0 ) THEN - cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k) + cflux(i,j,k)=cflux(i,j,k) + CAR_S(i,j,k) ELSE C- flux out of layer k - caexport(i,j) = CAR_S(i,j,k)*drF(k) * _hFacC(i,j,k,bi,bj) + caexport(i,j) = CAR_S(i,j,k)*drF(k) * _hFacC(i,j,k,bi,bj) ENDIF ENDIF ENDDO @@ -91,7 +91,7 @@ SUBROUTINE CAR_FLUX( CAR_S, cflux, #ifndef NONLIN_FRSURF C For the linear free surface, hFacC can be omitted, buying another C performance increase of a factor of six on a vector computer. -C For now this is not implemented via run time flags, in order to +C For now this is not implemented via run time flags, in order to C avoid making this code too complicated. depth_l = -rF(ko) + drF(ko) reminFac = exp(-(depth_l-zbase)/zca) @@ -106,7 +106,7 @@ SUBROUTINE CAR_FLUX( CAR_S, cflux, #endif /* NONLIN_FRSURF */ flux_l = caexport(i,j)*reminFac & *maskC(i,j,kop1,bi,bj) -C +C cflux(i,j,ko)=cflux(i,j,ko) + (flux_u(i,j)-flux_l) & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj) C-- Store flux through upper layer for the next k-level diff --git a/pkg/dic/car_flux_omega_top.F b/pkg/dic/car_flux_omega_top.F index 8a2a6f7823..7c614ae0d0 100644 --- a/pkg/dic/car_flux_omega_top.F +++ b/pkg/dic/car_flux_omega_top.F @@ -1,12 +1,12 @@ #include "DIC_OPTIONS.h" CBOP -C !ROUTINE: CAR_FLUX +C !ROUTINE: CAR_FLUX_OMEGA_TOP C !INTERFACE: ========================================================== SUBROUTINE CAR_FLUX_OMEGA_TOP( bioac, cflux, I bi,bj,imin,imax,jmin,jmax, - I myIter,myTime,myThid) + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate carbonate fluxes @@ -23,72 +23,68 @@ SUBROUTINE CAR_FLUX_OMEGA_TOP( bioac, cflux, #include "DIC_VARS.h" C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time C bioac :: biological productivity - INTEGER myIter +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number + _RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + INTEGER imin, imax, jmin, jmax, bi, bj _RL myTime + INTEGER myIter INTEGER myThid - _RL bioac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - INTEGER imin, imax, jmin, jmax, bi, bj C !OUTPUT PARAMETERS: =================================================== C cflux :: carbonate flux _RL cflux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) -#ifdef ALLOW_PTRACERS -#ifdef DIC_BIOTIC - +#if ( defined DIC_BIOTIC && defined DIC_CALCITE_SAT ) C !LOCAL VARIABLES: ==================================================== C i,j,k :: loop indices -c ko :: loop-within-loop index -c caexport :: flux of carbonate from base each "productive" -c layer -c depth_u, depth_l :: depths of upper and lower interfaces -c flux_u, flux_l :: flux through upper and lower interfaces +C ko :: loop-within-loop index +C caexport :: flux of carbonate from base each "productive" +C layer +C depth_u, depth_l :: depths of upper and lower interfaces +C flux_u, flux_l :: flux through upper and lower interfaces _RL caexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - INTEGER I,J,k, ko, kBottom + INTEGER i,j,k, ko, kBottom _RL flux_u, flux_l -c variables for calcium carbonate dissolution +C variables for calcium carbonate dissolution _RL KierRate _RL DissolutionRate - _RL WsinkPIC - INTEGER iflx _RL dumrate -c diagnostics +C diagnostics c _RL exp_tot c _RL flx_tot c integer knum c _RL omeg_bot c _RL tmp - CEOP - -c flag to either remineralize in bottom or top layer if flux -c reaches bottom layer 0=bottom, 1=top - iflx=1 -c set some nominal particulate sinking rate -c try 100m/day - WsinkPIC = 100. _d 0/86400. _d 0 -c calculate carbonate flux from base of each nlev +C initialize fluxes + flux_u = 0. _d 0 + flux_l = 0. _d 0 + +C to either remineralize in bottom or top layer if flux reaches bottom layer +C selectCalciteBottomRemin =0 : in bottom layer, =1 : in top layer +C set some nominal particulate sinking rate, try 100m/day: +C WsinkPIC = 100. _d 0/86400. _d 0 +C calculate carbonate flux from base of each nlev DO j=jmin,jmax DO i=imin,imax c exp_tot=0 - do k=1,nR + do k=1,Nr cflux(i,j,k)=0. _d 0 enddo - + kBottom = kLowC(i,j,bi,bj) - + DO k=1,nLev if (hFacC(i,j,k,bi,bj).gt.0. _d 0) then caexport(i,j)= R_CP*rain_ratio(i,j,bi,bj)*bioac(i,j,k)* & (1. _d 0-DOPfraction)*drF(k)*hFacC(i,j,k,bi,bj) c exp_tot=exp_tot+caexport(i,j) -c calculate flux to each layer from base of k +C calculate flux to each layer from base of k Do ko=k+1,Nr if (hFacC(i,j,ko,bi,bj).gt.0. _d 0) then if (ko .eq. k+1) then @@ -97,75 +93,74 @@ SUBROUTINE CAR_FLUX_OMEGA_TOP( bioac, cflux, flux_u = flux_l endif - - C flux through lower face of cell if (omegaC(i,j,ko,bi,bj) .gt. 1. _d 0) then flux_l = flux_u -c if at bottom, remineralize remaining flux +C if at bottom, remineralize remaining flux if (ko.eq.kBottom) then - if (iflx.eq.1) then -c ... at surface + if (selectCalciteBottomRemin.EQ.1) then +C ... at surface cflux(i,j,1)=cflux(i,j,1)+ & ( (flux_l)/(drF(1)*hFacC(i,j,1,bi,bj)) ) else -c ... at bottom +C ... at bottom flux_l=0. _d 0 endif endif else -c if dissolution, then use rate from Kier (1980) Geochem. Cosmochem. Acta -c Kiers dissolution rate in % per day - KierRate = 7.177 _d 0* - & ((1. _d 0-omegaC(i,j,ko,bi,bj))**4.54 _d 0) -c convert to per s -c Karsten finds Kier value not in 0/0 after all... therefore drop 100 factor +C if dissolution, then use rate from Kier (1980) Geochem. Cosmochem. Acta +C Kiers dissolution rate in % per day + KierRate = KierRateK* + & ((1. _d 0-omegaC(i,j,ko,bi,bj))**KierRateExp) +C convert to per s +C Karsten finds Kier value not in 0/0 after all... therefore drop 100 factor c DissolutionRate = KierRate/(100.0*86400.0) DissolutionRate = KierRate/(86400. _d 0) c flux_l = flux_u*(1.0-DissolutionRate*drF(k)/WsinkPIC) -c Karstens version -c - gives NaNs (because using kierrate, not dissolution rate)??? +C Karstens version +C - gives NaNs (because using kierrate, not dissolution rate)??? c flux_l = flux_u*(1.0-KierRate)**(drF(k)/WsinkPIC) -c MICKS NEW VERSION... based on vertical sinking/remin balance +C MICKS NEW VERSION... based on vertical sinking/remin balance dumrate = -1. _d 0*DissolutionRate*drF(ko)* & hFacC(i,j,ko,bi,bj)/WsinkPIC flux_l = flux_u*exp(dumrate) -c TEST ............................ +C TEST ............................ c if(i .eq. 76 .and. j .eq. 36)then c write(6,*)'k,flux_l/flux_u',ko,(flux_l/flux_u) c write(6,*)'K, KierRate, drF(k), drF(ko), WsinkPIC,OmegaC' c write(6,*)ko,KierRate,drF(k),drF(ko),WsinkPIC, c & omegaC(i,j,ko,bi,bj) c endif -c TEST ............................ -c no flux to ocean bottom +C TEST ............................ +C no flux to ocean bottom if (ko.eq.kBottom) & flux_l=0. _d 0 endif -c flux divergence +C flux divergence cflux(i,j,ko)=cflux(i,j,ko) + & ( (flux_u-flux_l)/(drF(ko)*hFacC(i,j,ko,bi,bj)) ) -c TEST ............................ +C TEST ............................ c if(i .eq. 76 .and. j .eq. 36)then c write(6,*)'k,flux_l/flux_u',ko,(flux_l/flux_u) c write(6,*)'k,flux_l,cflux ',ko,flux_l,cflux(i,j,ko) c endif -c TEST ............................ +C TEST ............................ else -c if no layer below initial layer, remineralize +C if no layer below initial layer, remineralize if (ko.eq.k+1) then - if (iflx.eq.1.and.omegaC(i,j,k,bi,bj) .gt. 1. _d 0) then -c ... at surface + if ( selectCalciteBottomRemin.EQ.1 .AND. + & omegaC(i,j,k,bi,bj) .GT. 1. _d 0 ) then +C ... at surface cflux(i,j,1)=cflux(i,j,1) & +bioac(i,j,k)*(1. _d 0-DOPfraction)* & R_CP*rain_ratio(i,j,bi,bj) & *drF(k)*hFacC(i,j,k,bi,bj)/ & (drF(1)*hFacC(i,j,1,bi,bj) ) else -c ... at bottom +C ... at bottom cflux(i,j,k)=cflux(i,j,k) & +bioac(i,j,k)*(1. _d 0-DOPfraction)* & R_CP*rain_ratio(i,j,bi,bj) @@ -176,7 +171,7 @@ SUBROUTINE CAR_FLUX_OMEGA_TOP( bioac, cflux, endif ENDDO -c diagnostic +C diagnostic c flx_tot=0 c k=0 c do k=1,nR @@ -193,11 +188,10 @@ SUBROUTINE CAR_FLUX_OMEGA_TOP( bioac, cflux, c & omeg_bot, exp_tot, flx_tot, exp_tot-flx_tot c endif c endif -c end diagnostic +C end diagnostic ENDDO ENDDO c -#endif -#endif +#endif /* DIC_BIOTIC and DIC_CALCITE_SAT */ RETURN END diff --git a/pkg/dic/carbon_chem.F b/pkg/dic/carbon_chem.F index a091ec4635..84caded39f 100644 --- a/pkg/dic/carbon_chem.F +++ b/pkg/dic/carbon_chem.F @@ -46,7 +46,7 @@ SUBROUTINE CALC_PCO2( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) INTEGER donewt INTEGER inewtonmax INTEGER ibrackmax @@ -366,7 +366,7 @@ SUBROUTINE CALC_PCO2_APPROX( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) _RL t, s, pt, sit, ta _RL pCO2surfloc, diclocal, pHlocal _RL fflocal, btlocal, stlocal, ftlocal @@ -497,7 +497,7 @@ SUBROUTINE CARBON_COEFFS( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) C OUTPUT C IMPORTANT: Some words about units - (JCO, 4/4/1999) C - Models carry tracers in mol/m^3 (on a per volume basis) @@ -797,7 +797,7 @@ SUBROUTINE CARBON_COEFFS_PRESSURE_DEP( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) C OUTPUT C IMPORTANT: Some words about units - (JCO, 4/4/1999) C - Models carry tracers in mol/m^3 (on a per volume basis) diff --git a/pkg/dic/dic_ad_check_lev1_dir.h b/pkg/dic/dic_ad_check_lev1_dir.h index f7d98f8178..92ad75ce06 100644 --- a/pkg/dic/dic_ad_check_lev1_dir.h +++ b/pkg/dic/dic_ad_check_lev1_dir.h @@ -1,30 +1,27 @@ #ifdef ALLOW_DIC C common CARBON_NEEDS -CADJ STORE pH = comlev1, key = ikey_dynamics -CADJ STORE fice = comlev1, key = ikey_dynamics -CADJ STORE silica = comlev1, key = ikey_dynamics -CADJ STORE atmospco2 = comlev1, key = ikey_dynamics +CADJ STORE pH = comlev1, key = ikey_dynamics +CADJ STORE pCO2 = comlev1, key = ikey_dynamics +CADJ STORE fIce = comlev1, key = ikey_dynamics +CADJ STORE silicaSurf = comlev1, key = ikey_dynamics +CADJ STORE atmosPCO2 = comlev1, key = ikey_dynamics + +CADJ STORE gsm_s = comlev1, key = ikey_dynamics +CADJ STORE co2atmos = comlev1, key = ikey_dynamics +CADJ STORE total_atmos_carbon = comlev1, key = ikey_dynamics C common dic_load -CADJ STORE dicwind0,dicwind1 = comlev1, key = ikey_dynamics -CADJ STORE ice0,ice1 = comlev1, key = ikey_dynamics -CADJ STORE atmosp0,atmosp1 = comlev1, key = ikey_dynamics -CADJ STORE silica0,silica1 = comlev1, key = ikey_dynamics +CADJ STORE dicwind0, dicwind1 = comlev1, key = ikey_dynamics +CADJ STORE ice0, ice1 = comlev1, key = ikey_dynamics +CADJ STORE atmosp0, atmosp1 = comlev1, key = ikey_dynamics +CADJ STORE silicaSurf0, silicaSurf1 = comlev1, key = ikey_dynamics #ifdef ALLOW_FE -CADJ STORE feinput0,feinput1 = comlev1, key = ikey_dynamics +CADJ STORE feinput0, feinput1 = comlev1, key = ikey_dynamics #endif -CADJ STORE gsm_s = comlev1, key = ikey_dynamics -CADJ STORE co2atmos,pco2 = comlev1, key = ikey_dynamics -CADJ STORE total_atmos_carbon = comlev1, key = ikey_dynamics - -#ifdef DIC_BIOTIC -CADJ STORE omegaC = comlev1, key = ikey_dynamics -#endif #ifdef ALLOW_COST -CADJ STORE totcost = comlev1, key = ikey_dynamics +CADJ STORE totcost = comlev1, key = ikey_dynamics #endif #endif /* ALLOW_DIC */ - diff --git a/pkg/dic/dic_ad_check_lev2_dir.h b/pkg/dic/dic_ad_check_lev2_dir.h index 7d24c1c338..10d341aaa3 100644 --- a/pkg/dic/dic_ad_check_lev2_dir.h +++ b/pkg/dic/dic_ad_check_lev2_dir.h @@ -1,30 +1,27 @@ #ifdef ALLOW_DIC C common CARBON_NEEDS -CADJ STORE pH = tapelev2, key = ilev_2 -CADJ STORE fice = tapelev2, key = ilev_2 -CADJ STORE silica = tapelev2, key = ilev_2 -CADJ STORE atmospco2 = tapelev2, key = ilev_2 +CADJ STORE pH = tapelev2, key = ilev_2 +CADJ STORE pCO2 = tapelev2, key = ilev_2 +CADJ STORE fIce = tapelev2, key = ilev_2 +CADJ STORE silicaSurf = tapelev2, key = ilev_2 +CADJ STORE atmosPCO2 = tapelev2, key = ilev_2 + +CADJ STORE gsm_s = tapelev2, key = ilev_2 +CADJ STORE co2atmos = tapelev2, key = ilev_2 +CADJ STORE total_atmos_carbon = tapelev2, key = ilev_2 C common dic_load -CADJ STORE dicwind0,dicwind1 = tapelev2, key = ilev_2 -CADJ STORE ice0,ice1 = tapelev2, key = ilev_2 -CADJ STORE atmosp0,atmosp1 = tapelev2, key = ilev_2 -CADJ STORE silica0,silica1 = tapelev2, key = ilev_2 +CADJ STORE dicwind0, dicwind1 = tapelev2, key = ilev_2 +CADJ STORE ice0, ice1 = tapelev2, key = ilev_2 +CADJ STORE atmosp0, atmosp1 = tapelev2, key = ilev_2 +CADJ STORE silicaSurf0, silicaSurf1 = tapelev2, key = ilev_2 #ifdef ALLOW_FE -CADJ STORE feinput0,feinput1 = tapelev2, key = ilev_2 +CADJ STORE feinput0, feinput1 = tapelev2, key = ilev_2 #endif -CADJ STORE gsm_s = tapelev2, key = ilev_2 -CADJ STORE co2atmos,pco2 = tapelev2, key = ilev_2 -CADJ STORE total_atmos_carbon = tapelev2, key = ilev_2 - -#ifdef DIC_BIOTIC -CADJ STORE omegaC = tapelev2, key = ilev_2 -#endif #ifdef ALLOW_COST -CADJ STORE totcost = tapelev2, key = ilev_2 +CADJ STORE totcost = tapelev2, key = ilev_2 #endif #endif /* ALLOW_DIC */ - diff --git a/pkg/dic/dic_ad_check_lev3_dir.h b/pkg/dic/dic_ad_check_lev3_dir.h index e741ecc32b..bd1317c450 100644 --- a/pkg/dic/dic_ad_check_lev3_dir.h +++ b/pkg/dic/dic_ad_check_lev3_dir.h @@ -1,30 +1,27 @@ #ifdef ALLOW_DIC C common CARBON_NEEDS -CADJ STORE pH = tapelev3, key = ilev_3 -CADJ STORE fice = tapelev3, key = ilev_3 -CADJ STORE silica = tapelev3, key = ilev_3 -CADJ STORE atmospco2 = tapelev3, key = ilev_3 +CADJ STORE pH = tapelev3, key = ilev_3 +CADJ STORE pCO2 = tapelev3, key = ilev_3 +CADJ STORE fIce = tapelev3, key = ilev_3 +CADJ STORE silicaSurf = tapelev3, key = ilev_3 +CADJ STORE atmosPCO2 = tapelev3, key = ilev_3 + +CADJ STORE gsm_s = tapelev3, key = ilev_3 +CADJ STORE co2atmos = tapelev3, key = ilev_3 +CADJ STORE total_atmos_carbon = tapelev3, key = ilev_3 C common dic_load -CADJ STORE dicwind0,dicwind1 = tapelev3, key = ilev_3 -CADJ STORE ice0,ice1 = tapelev3, key = ilev_3 -CADJ STORE atmosp0,atmosp1 = tapelev3, key = ilev_3 -CADJ STORE silica0,silica1 = tapelev3, key = ilev_3 +CADJ STORE dicwind0, dicwind1 = tapelev3, key = ilev_3 +CADJ STORE ice0, ice1 = tapelev3, key = ilev_3 +CADJ STORE atmosp0, atmosp1 = tapelev3, key = ilev_3 +CADJ STORE silicaSurf0, silicaSurf1 = tapelev3, key = ilev_3 #ifdef ALLOW_FE -CADJ STORE feinput0,feinput1 = tapelev3, key = ilev_3 +CADJ STORE feinput0, feinput1 = tapelev3, key = ilev_3 #endif -CADJ STORE gsm_s = tapelev3, key = ilev_3 -CADJ STORE co2atmos,pco2 = tapelev3, key = ilev_3 -CADJ STORE total_atmos_carbon = tapelev3, key = ilev_3 - -#ifdef DIC_BIOTIC -CADJ STORE omegaC = tapelev3, key = ilev_3 -#endif #ifdef ALLOW_COST -CADJ STORE totcost = tapelev3, key = ilev_3 +CADJ STORE totcost = tapelev3, key = ilev_3 #endif #endif /* ALLOW_DIC */ - diff --git a/pkg/dic/dic_ad_check_lev4_dir.h b/pkg/dic/dic_ad_check_lev4_dir.h index 4004afb7bf..c0430c6f27 100644 --- a/pkg/dic/dic_ad_check_lev4_dir.h +++ b/pkg/dic/dic_ad_check_lev4_dir.h @@ -1,30 +1,27 @@ #ifdef ALLOW_DIC C common CARBON_NEEDS -CADJ STORE pH = tapelev4, key = ilev_4 -CADJ STORE fice = tapelev4, key = ilev_4 -CADJ STORE silica = tapelev4, key = ilev_4 -CADJ STORE atmospco2 = tapelev4, key = ilev_4 +CADJ STORE pH = tapelev4, key = ilev_4 +CADJ STORE pCO2 = tapelev4, key = ilev_4 +CADJ STORE fIce = tapelev4, key = ilev_4 +CADJ STORE silicaSurf = tapelev4, key = ilev_4 +CADJ STORE atmosPCO2 = tapelev4, key = ilev_4 + +CADJ STORE gsm_s = tapelev4, key = ilev_4 +CADJ STORE co2atmos = tapelev4, key = ilev_4 +CADJ STORE total_atmos_carbon = tapelev4, key = ilev_4 C common dic_load -CADJ STORE dicwind0,dicwind1 = tapelev4, key = ilev_4 -CADJ STORE ice0,ice1 = tapelev4, key = ilev_4 -CADJ STORE atmosp0,atmosp1 = tapelev4, key = ilev_4 -CADJ STORE silica0,silica1 = tapelev4, key = ilev_4 +CADJ STORE dicwind0, dicwind1 = tapelev4, key = ilev_4 +CADJ STORE ice0, ice1 = tapelev4, key = ilev_4 +CADJ STORE atmosp0, atmosp1 = tapelev4, key = ilev_4 +CADJ STORE silicaSurf0, silicaSurf1 = tapelev4, key = ilev_4 #ifdef ALLOW_FE -CADJ STORE feinput0,feinput1 = tapelev4, key = ilev_4 +CADJ STORE feinput0, feinput1 = tapelev4, key = ilev_4 #endif -CADJ STORE gsm_s = tapelev4, key = ilev_4 -CADJ STORE co2atmos,pco2 = tapelev4, key = ilev_4 -CADJ STORE total_atmos_carbon = tapelev4, key = ilev_4 - -#ifdef DIC_BIOTIC -CADJ STORE omegaC = tapelev4, key = ilev_4 -#endif #ifdef ALLOW_COST -CADJ STORE totcost = tapelev4, key = ilev_4 +CADJ STORE totcost = tapelev4, key = ilev_4 #endif #endif /* ALLOW_DIC */ - diff --git a/pkg/dic/dic_biotic_diags.F b/pkg/dic/dic_biotic_diags.F index d7dc788fd1..7091c182c8 100644 --- a/pkg/dic/dic_biotic_diags.F +++ b/pkg/dic/dic_biotic_diags.F @@ -57,8 +57,6 @@ SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid ) CALL TIMEAVE_NORMALIZE(pHave,DIC_timeAve, 1 , & bi,bj,myThid) CALL TIMEAVE_NORMALIZE(fluxCO2ave,DIC_timeAve, 1 , - & bi,bj,myThid) - CALL TIMEAVE_NORMALIZE(OmegaCave, DIC_timeAve, Nr , & bi,bj,myThid) CALL TIMEAVE_NORMALIZE(pfluxave,DIC_timeAve, Nr , & bi,bj,myThid) @@ -88,8 +86,6 @@ SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid ) CALL WRITE_FLD_XY_RL('DIC_pCO2tave.',suff,pCO2ave, & myIter,myThid) CALL WRITE_FLD_XY_RL('DIC_fluxCO2ave.',suff,fluxCO2ave, - & myIter,myThid) - CALL WRITE_FLD_XYZ_RL('DIC_OmegaCtave.',suff,OmegaCave, & myIter,myThid) CALL WRITE_FLD_XYZ_RL('DIC_pfluxtave.',suff,pfluxave, & myIter,myThid) @@ -125,8 +121,6 @@ SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid ) CALL MNC_CW_RL_W( & pf,'dic_tave',0,0,'dic_fluxCO2_ave',fluxCO2ave,myThid) CALL MNC_CW_RL_W( - & pf,'dic_tave',0,0,'dic_OmegaC_ave',OmegaCave,myThid) - CALL MNC_CW_RL_W( & pf,'dic_tave',0,0,'dic_pflux_ave',pfluxave,myThid) CALL MNC_CW_RL_W( & pf,'dic_tave',0,0,'dic_epflux_ave',epfluxave,myThid) @@ -145,7 +139,6 @@ SUBROUTINE DIC_BIOTIC_DIAGS( myTime, myIter, myThid ) CALL TIMEAVE_RESET(pCO2ave,1,bi,bj,myThid) CALL TIMEAVE_RESET(pHave,1,bi,bj,myThid) CALL TIMEAVE_RESET(fluxCO2ave,1,bi,bj,myThid) - CALL TIMEAVE_RESET(OmegaCave,Nr,bi,bj,myThid) CALL TIMEAVE_RESET(pfluxave,Nr,bi,bj,myThid) CALL TIMEAVE_RESET(epfluxave,Nr,bi,bj,myThid) CALL TIMEAVE_RESET(cfluxave,Nr,bi,bj,myThid) diff --git a/pkg/dic/dic_biotic_forcing.F b/pkg/dic/dic_biotic_forcing.F index e73514a6c0..f7c1934e65 100644 --- a/pkg/dic/dic_biotic_forcing.F +++ b/pkg/dic/dic_biotic_forcing.F @@ -13,7 +13,7 @@ SUBROUTINE DIC_BIOTIC_FORCING( U PTR_FE, #endif I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) C !DESCRIPTION: C updates all the tracers for the effects of air-sea exchange, biological @@ -38,8 +38,8 @@ SUBROUTINE DIC_BIOTIC_FORCING( c PTR_O2 :: oxygen C PTR_FE :: iron c bi, bj :: current tile indices -C myIter :: current timestep C myTime :: current time +C myIter :: current timestep C myThid :: thread number _RL PTR_DIC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -52,12 +52,14 @@ SUBROUTINE DIC_BIOTIC_FORCING( _RL PTR_FE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif INTEGER bi, bj, iMin, iMax, jMin, jMax - INTEGER myIter _RL myTime + INTEGER myIter INTEGER myThid -#ifdef ALLOW_PTRACERS #ifdef DIC_BIOTIC +C !FUNCTIONS: ==================================================== + LOGICAL DIFFERENT_MULTIPLE + EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: ==================================================== C i,j,k :: loop indices @@ -98,9 +100,6 @@ SUBROUTINE DIC_BIOTIC_FORCING( _RL freefe(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif INTEGER i,j,k -#ifdef CAR_DISS - INTEGER nCALCITEstep -#endif #ifdef ALLOW_FE # ifdef SEDFE INTEGER kBottom @@ -161,7 +160,7 @@ SUBROUTINE DIC_BIOTIC_FORCING( I PTR_DIC, PTR_ALK, PTR_PO4, O SURC, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) C alkalinity air-sea interaction #ifdef ALLOW_DEBUG @@ -171,7 +170,7 @@ SUBROUTINE DIC_BIOTIC_FORCING( I PTR_ALK, O SURA, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) #ifdef ALLOW_O2 C oxygen air-sea interaction @@ -182,7 +181,7 @@ SUBROUTINE DIC_BIOTIC_FORCING( I PTR_O2, O SURO, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) #endif #ifdef ALLOW_FE @@ -201,23 +200,23 @@ SUBROUTINE DIC_BIOTIC_FORCING( IF (debugMode) CALL DEBUG_CALL('BIO_EXPORT',myThid) #endif CALL BIO_EXPORT( - I PTR_PO4, + I PTR_PO4, #ifdef ALLOW_FE - I PTR_FE, + I PTR_FE, #endif - O BIOac, - I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + O BIOac, + I bi, bj, iMin, iMax, jMin, jMax, + I myTime, myIter, myThid ) C flux of po4 from layers with biological activity #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('PHOS_FLUX',myThid) #endif CALL PHOS_FLUX( - I BIOac, - U pflux, exportflux, - I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I BIOac, + U pflux, exportflux, + I bi, bj, iMin, iMax, jMin, jMax, + I myTime, myIter, myThid ) C- Carbonate sink DO k=1,Nr @@ -230,21 +229,22 @@ SUBROUTINE DIC_BIOTIC_FORCING( ENDDO C carbonate -#ifdef CAR_DISS -C dissolution only below saturation horizon -C code following method by Karsten Friis - nCALCITEstep = 3600 - IF(myIter .lt. (nIter0+5) .or. - & mod(myIter,nCALCITEstep) .eq. 0)THEN +#ifdef DIC_CALCITE_SAT + IF ( useCalciteSaturation ) THEN +C calcite dissolution occurs only below saturation horizon +C code following method by Karsten Friis +C could be expensive, so find out if it is time to update the omega calcite +C field (requires 3-d computation of pH). + IF ( DIFFERENT_MULTIPLE( calcOmegaCalciteFreq, myTime, + & deltaTClock ) ) THEN #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CALCITE_SATURATION',myThid) #endif CALL CALCITE_SATURATION( I PTR_DIC, PTR_ALK, PTR_PO4, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) ENDIF - #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CAR_FLUX_OMEGA_TOP',myThid) #endif @@ -252,18 +252,22 @@ SUBROUTINE DIC_BIOTIC_FORCING( I BIOac, O cflux, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) -#else -C old OCMIP way + I myTime, myIter, myThid ) + ELSE +#endif /* DIC_CALCITE_SAT */ +C calcite dissolution occurs according to a power law scaled by zca +C code follwing the old OCMIP way #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CAR_FLUX',myThid) #endif - CALL CAR_FLUX( + CALL CAR_FLUX( I CAR_S, U cflux, I bi, bj, iMin, iMax, jMin, jMax, - I myIter, myTime, myThid ) -#endif + I myTime, myIter, myThid ) +#ifdef DIC_CALCITE_SAT + ENDIF +#endif /* DIC_CALCITE_SAT */ C add all tendencies for PO4, DOP, ALK, DIC DO k=1,Nr @@ -388,8 +392,6 @@ SUBROUTINE DIC_BIOTIC_FORCING( & BIOac(i,j,k)*deltaTClock CARave(i,j,k,bi,bj) =CARave(i,j,k,bi,bj)+ & CAR(i,j,k)*deltaTClock - OmegaCave(i,j,k,bi,bj)=OmegaCave(i,j,k,bi,bj)+ - & OmegaC(i,j,k,bi,bj)*deltaTClock pfluxave(i,j,k,bi,bj) =pfluxave(i,j,k,bi,bj) + & pflux(i,j,k)*deltaTClock epfluxave(i,j,k,bi,bj)=epfluxave(i,j,k,bi,bj) + @@ -440,7 +442,6 @@ SUBROUTINE DIC_BIOTIC_FORCING( #endif #endif /* DIC_BIOTIC */ -#endif /* ALLOW_PTRACERS */ RETURN END diff --git a/pkg/dic/dic_biotic_init.F b/pkg/dic/dic_biotic_init.F index 3c33753f1a..4aafe9b8dc 100644 --- a/pkg/dic/dic_biotic_init.F +++ b/pkg/dic/dic_biotic_init.F @@ -38,7 +38,6 @@ SUBROUTINE DIC_BIOTIC_INIT( myThid ) CALL TIMEAVE_RESET(pCO2ave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(pHave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(fluxCO2ave, 1, bi, bj, myThid) - CALL TIMEAVE_RESET(OmegaCave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(pfluxave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(epfluxave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(cfluxave, Nr, bi, bj, myThid) diff --git a/pkg/dic/dic_diagnostics_init.F b/pkg/dic/dic_diagnostics_init.F index ba140c0c46..3236668461 100644 --- a/pkg/dic/dic_diagnostics_init.F +++ b/pkg/dic/dic_diagnostics_init.F @@ -1,4 +1,4 @@ -#include "GCHEM_OPTIONS.h" +#include "DIC_OPTIONS.h" C !INTERFACE: ========================================================== SUBROUTINE DIC_DIAGNOSTICS_INIT(myThid ) @@ -78,6 +78,43 @@ SUBROUTINE DIC_DIAGNOSTICS_INIT(myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#ifdef DIC_CALCITE_SAT + diagName = 'DIC3DSIT' + diagTitle = 'Three dimensional silicate concentration (mol/m3)' + diagUnits = 'mol/m3 ' + diagCode = 'SMRP MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'OMEGAC ' + diagTitle = 'Carbonate saturation' + diagUnits = 'mol eq/m3/s ' + diagCode = 'SMRP MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'DIC3DPH ' + diagTitle = 'Three dimensional pH (dimensionless)' + diagUnits = 'dimensionless ' + diagCode = 'SM P MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'DIC3DPCO' + diagTitle = 'Three dimensional CO2 partial pressure (atm)' + diagUnits = 'atm ' + diagCode = 'SMRP MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'DIC3DCO3' + diagTitle = 'Three dimensional carbonate concentration (mol/m3)' + diagUnits = 'mol/m3 ' + diagCode = 'SMRP MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif /* DIC_CALCITE_SAT */ + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #endif /* ALLOW_DIAGNOSTICS */ diff --git a/pkg/dic/dic_fields_load.F b/pkg/dic/dic_fields_load.F index 1beb1264c6..e154c9b466 100644 --- a/pkg/dic/dic_fields_load.F +++ b/pkg/dic/dic_fields_load.F @@ -5,7 +5,7 @@ C !INTERFACE: ========================================================== SUBROUTINE DIC_FIELDS_LOAD ( - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) C !DESCRIPTION: C Read in fields needed for CO2,O2 fluxterms, silica for pH calculation @@ -20,11 +20,11 @@ SUBROUTINE DIC_FIELDS_LOAD ( #include "DIC_LOAD.h" C !INPUT PARAMETERS: =================================================== -C myIter :: current timestep C myTime :: current time +C myIter :: current timestep C myThid :: thread number - INTEGER myIter _RL myTime + INTEGER myIter INTEGER myThid #ifdef ALLOW_DIC @@ -33,6 +33,9 @@ SUBROUTINE DIC_FIELDS_LOAD ( INTEGER bi, bj, i, j INTEGER intimeP, intime0, intime1 _RL aWght,bWght +#ifdef DIC_CALCITE_SAT + INTEGER k +#endif #ifdef READ_PAR CHARACTER*(MAX_LEN_MBUF) msgBuf #endif @@ -98,11 +101,19 @@ SUBROUTINE DIC_FIELDS_LOAD ( & myIter,myThid ) ENDIF IF ( DIC_silicaFile .NE. ' ' ) THEN - CALL READ_REC_XY_RS( DIC_silicaFile,silica0,intime0, + CALL READ_REC_XY_RS( DIC_silicaFile,silicaSurf0,intime0, + & myIter,myThid ) + CALL READ_REC_XY_RS( DIC_silicaFile,silicaSurf1,intime1, & myIter,myThid ) - CALL READ_REC_XY_RS( DIC_silicaFile,silica1,intime1, + ENDIF +#ifdef DIC_CALCITE_SAT + IF ( DIC_deepSilicaFile .NE. ' ' ) THEN + CALL READ_REC_XYZ_RS( DIC_deepSilicaFile,silicaDeep0,intime0, + & myIter,myThid ) + CALL READ_REC_XYZ_RS( DIC_deepSilicaFile,silicaDeep1,intime1, & myIter,myThid ) ENDIF +#endif IF ( DIC_iceFile .NE. ' ' ) THEN CALL READ_REC_XY_RS( DIC_iceFile,ice0,intime0, & myIter,myThid ) @@ -138,8 +149,14 @@ SUBROUTINE DIC_FIELDS_LOAD ( _EXCH_XY_RS(dicwind1, myThid ) _EXCH_XY_RS(atmosp0, myThid ) _EXCH_XY_RS(atmosp1, myThid ) - _EXCH_XY_RS(silica0, myThid ) - _EXCH_XY_RS(silica1, myThid ) + _EXCH_XY_RS(silicaSurf0, myThid ) + _EXCH_XY_RS(silicaSurf1, myThid ) +#ifdef DIC_CALCITE_SAT + IF ( DIC_deepSilicaFile .NE. ' ' ) THEN + _EXCH_XYZ_RS(silicaDeep0, myThid ) + _EXCH_XYZ_RS(silicaDeep1, myThid ) + ENDIF +#endif _EXCH_XY_RS(ice0, myThid ) _EXCH_XY_RS(ice1, myThid ) #ifdef READ_PAR @@ -173,6 +190,7 @@ SUBROUTINE DIC_FIELDS_LOAD ( & + aWght*dicwind1(i,j,bi,bj) ENDDO ENDDO + C calculate piston velocity C QQ: note - we should have wind speed variance in here C QQ also need to check units, and conversion factors @@ -187,15 +205,42 @@ SUBROUTINE DIC_FIELDS_LOAD ( ENDDO ENDDO ENDIF +#endif +#ifdef DIC_CALCITE_SAT + IF ( useCalciteSaturation .AND. + & DIC_deepSilicaFile .NE. ' ' ) THEN + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + silicaDeep(i,j,k,bi,bj) = bWght*silicaDeep0(i,j,k,bi,bj) + & + aWght*silicaDeep1(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF #endif IF ( DIC_silicaFile .NE. ' ' ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - SILICA(i,j,bi,bj) = bWght*silica0(i,j,bi,bj) - & + aWght*silica1(i,j,bi,bj) +C If file provided for surface silicate, read it in + silicaSurf(i,j,bi,bj) = bWght*silicaSurf0(i,j,bi,bj) + & + aWght*silicaSurf1(i,j,bi,bj) ENDDO ENDDO +#ifndef ALLOW_AUTODIFF +#ifdef DIC_CALCITE_SAT + ELSEIF ( DIC_deepSilicaFile .NE. ' ' ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +C If no surface silicate file but deep (3d) silicate provided, use top level + silicaSurf(i,j,bi,bj) = bWght*silicaDeep0(i,j,1,bi,bj) + & + aWght*silicaDeep1(i,j,1,bi,bj) + ENDDO + ENDDO +#endif /* DIC_CALCITE_SAT */ +#endif /* not ALLOW_AUTODIFF */ ENDIF + IF ( DIC_iceFile .NE. ' ' ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -214,11 +259,11 @@ SUBROUTINE DIC_FIELDS_LOAD ( ENDDO ENDDO ELSE - WRITE(msgBuf,'(2A)') + WRITE(msgBuf,'(2A)') & ' DIC_FIELDS_LOAD: You need to provide ', & ' a file if you want to use READ_PAR' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R DIC_FIELDS_LOAD' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R DIC_FIELDS_LOAD' ENDIF #endif #ifdef LIGHT_CHL diff --git a/pkg/dic/dic_ini_forcing.F b/pkg/dic/dic_ini_forcing.F index 28f0de2881..fd3be33b7e 100644 --- a/pkg/dic/dic_ini_forcing.F +++ b/pkg/dic/dic_ini_forcing.F @@ -28,6 +28,9 @@ SUBROUTINE DIC_INI_FORCING( myThid ) c !LOCAL VARIABLES: =================================================== INTEGER bi,bj,i,j +#ifdef DIC_CALCITE_SAT + INTEGER k +#endif #if (defined (READ_PAR) && defined (USE_QSW)) CHARACTER*(MAX_LEN_MBUF) msgBuf #endif @@ -42,8 +45,8 @@ SUBROUTINE DIC_INI_FORCING( myThid ) CALL LEF_ZERO( dicwind1,myThid ) CALL LEF_ZERO( atmosp0,myThid ) CALL LEF_ZERO( atmosp1,myThid ) - CALL LEF_ZERO( silica0,myThid ) - CALL LEF_ZERO( silica1,myThid ) + CALL LEF_ZERO( silicaSurf0, myThid ) + CALL LEF_ZERO( silicaSurf1, myThid ) CALL LEF_ZERO( ice0,myThid ) CALL LEF_ZERO( ice1,myThid ) #ifdef READ_PAR @@ -57,6 +60,20 @@ SUBROUTINE DIC_INI_FORCING( myThid ) #ifdef LIGHT_CHL CALL LEF_ZERO( chlinput,myThid ) #endif +#ifdef DIC_CALCITE_SAT + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + silicaDeep0(i,j,k,bi,bj) = 0. _d 0 + silicaDeep1(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +#endif #ifdef READ_PAR #ifdef USE_QSW @@ -68,28 +85,40 @@ SUBROUTINE DIC_INI_FORCING( myThid ) #endif #endif -c set reasonable values to those that need at least something +C set reasonable values to those that need at least something DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - WIND(i,j,bi,bj) = 5. _d 0*maskC(i,j,1,bi,bj) - AtmosP(i,j,bi,bj) = 1. _d 0*maskC(i,j,1,bi,bj) - SILICA(i,j,bi,bj) = 7.6838 _d -3*maskC(i,j,1,bi,bj) - FIce(i,j,bi,bj) = 0. _d 0 - FluxCO2(i,j,bi,bj)= 0. _d 0 + WIND(i,j,bi,bj) = 5. _d 0*maskC(i,j,1,bi,bj) + AtmosP(i,j,bi,bj) = 1. _d 0*maskC(i,j,1,bi,bj) + silicaSurf(i,j,bi,bj) = 7.6838 _d -3*maskC(i,j,1,bi,bj) + fIce(i,j,bi,bj) = 0. _d 0 + FluxCO2(i,j,bi,bj) = 0. _d 0 #ifdef READ_PAR - PAR(i,j,bi,bj) = 100. _d 0*maskC(i,j,1,bi,bj) + PAR(i,j,bi,bj) = 100. _d 0*maskC(i,j,1,bi,bj) #endif #ifdef LIGHT_CHL C If the chlorophyll climatology is not provided, use this default value. - CHL(i,j,bi,bj) = 1. _d -2*maskC(i,j,1,bi,bj) + CHL(i,j,bi,bj) = 1. _d -2*maskC(i,j,1,bi,bj) #endif #ifdef ALLOW_FE - InputFe(i,j,bi,bj)= 1. _d -11*maskC(i,j,1,bi,bj) + InputFe(i,j,bi,bj) = 1. _d -11*maskC(i,j,1,bi,bj) #endif ENDDO ENDDO +#ifdef DIC_CALCITE_SAT + IF ( useCalciteSaturation ) THEN + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + silicaDeep(i,j,k,bi,bj) = 3. _d -2*maskC(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF +#endif +C- end bi,bj loops ENDDO ENDDO diff --git a/pkg/dic/dic_init_fixed.F b/pkg/dic/dic_init_fixed.F index 5cec3dab33..c494f90a3f 100644 --- a/pkg/dic/dic_init_fixed.F +++ b/pkg/dic/dic_init_fixed.F @@ -26,8 +26,10 @@ SUBROUTINE DIC_INIT_FIXED( myThid ) #ifdef ALLOW_DIC INTEGER k - CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit +#ifdef DIC_BIOTIC + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -62,7 +64,7 @@ SUBROUTINE DIC_INIT_FIXED( myThid ) C Set other constant/flag IF ( dic_int1.EQ.2 ) THEN - CALL MDSFINDUNIT( iUnit, mythid ) + CALL MDSFINDUNIT( iUnit, myThid ) OPEN(UNIT=iUnit,FILE='co2atmos.dat',STATUS='old') DO k=1,dic_int2 READ(iUnit,*) co2atmos(k) diff --git a/pkg/dic/dic_init_varia.F b/pkg/dic/dic_init_varia.F index 6b0c1101f2..1e9d9b2fd9 100644 --- a/pkg/dic/dic_init_varia.F +++ b/pkg/dic/dic_init_varia.F @@ -27,8 +27,12 @@ SUBROUTINE DIC_INIT_VARIA( myThid ) CEOP #ifdef ALLOW_DIC +#ifdef DIC_BIOTIC INTEGER i,j, bi,bj +# ifdef DIC_CALCITE_SAT INTEGER k +# endif +#endif c CHARACTER*(MAX_LEN_MBUF) msgBuf C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -58,6 +62,7 @@ SUBROUTINE DIC_INIT_VARIA( myThid ) rain_ratio(i,j,bi,bj) = rainRatioUniform ENDDO ENDDO +#ifdef DIC_CALCITE_SAT DO k = 1, Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -65,6 +70,7 @@ SUBROUTINE DIC_INIT_VARIA( myThid ) ENDDO ENDDO ENDDO +#endif /* DIC_CALCITE_SAT */ ENDDO ENDDO #endif /* DIC_BIOTIC */ diff --git a/pkg/dic/dic_mnc_init.F b/pkg/dic/dic_mnc_init.F index 74620443b9..deef61e4d8 100644 --- a/pkg/dic/dic_mnc_init.F +++ b/pkg/dic/dic_mnc_init.F @@ -15,6 +15,7 @@ SUBROUTINE DIC_MNC_INIT( myThid ) #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" +#include "DIC_VARS.h" C !INPUT PARAMETERS: C myThid :: thread number @@ -75,13 +76,6 @@ SUBROUTINE DIC_MNC_INIT( myThid ) CALL MNC_CW_ADD_VATTR_TEXT('dic_fluxCO2_ave','description', & '', myThid) - CALL MNC_CW_ADD_VNAME( - & 'dic_OmegaC_ave', 'Cen_xy_Hn__C__t', 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT( - & 'dic_OmegaC_ave','units','--', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('dic_OmegaC_ave','description', - & '', myThid) - CALL MNC_CW_ADD_VNAME( & 'dic_pflux_ave', 'Cen_xy_Hn__C__t', 4,5, myThid) CALL MNC_CW_ADD_VATTR_TEXT( @@ -103,7 +97,6 @@ SUBROUTINE DIC_MNC_INIT( myThid ) CALL MNC_CW_ADD_VATTR_TEXT('dic_cflux_ave','description', & '', myThid) - ENDIF #endif /* ALLOW_MNC */ diff --git a/pkg/dic/dic_readparms.F b/pkg/dic/dic_readparms.F index 8f1da7e8d9..3558ed4d0f 100644 --- a/pkg/dic/dic_readparms.F +++ b/pkg/dic/dic_readparms.F @@ -73,13 +73,33 @@ SUBROUTINE DIC_READPARMS( myThid ) C =1 :: use the GENERAL solver from Munhoven (2013); C =2 :: use SEC solver from Munhoven (2013); C =3 :: use FAST solver from Munhoven (2013); +C useCalciteSaturation :: dissolve calcium carbonate below the calcite +C saturation horizon following method by Karsten Friis +C calcOmegaCalciteFreq :: Frequency that 3d calcite saturation state, omegaC, +C is calculated. +C nIterCO3 :: Number of iterations of the Follows 3D pH solver to +C calculate deep carbonate ion concenetration (no +C effect when using the Munhoven/SolveSapHe solvers). +C KierRateK :: Rate constant (%) for calcite dissolution from +C Kier (1980) Geochem. Cosmochem. Acta. +C KierRateExp :: Rate exponent for calcite dissolution from +C Kier (1980) Geochem. Cosmochem. Acta. +C WsinkPIC :: sinking speed (m/s) of particulate inorganic carbon +C for calcite dissolution through the watercolumn +C selectCalciteBottomRemin :: to either remineralize in bottom or top layer +C if flux reaches bottom layer: =0 : bottom, =1 : top +C zca :: scale depth for CaCO3 remineralization power law (m) C---- NAMELIST /ABIOTIC_PARMS/ & permil, Pa2Atm, & selectBTconst, selectFTconst, & selectHFconst, selectK1K2const, - & selectPHsolver + & selectPHsolver, + & useCalciteSaturation, calcOmegaCalciteFreq, + & nIterCO3, KierRateK, KierRateExp, + & WsinkPIC, selectCalciteBottomRemin, + & zca #ifdef DIC_BIOTIC C-- Biotic dic parameters: @@ -92,7 +112,6 @@ SUBROUTINE DIC_READPARMS( myThid ) C O2crit :: critical oxygen level (mol/m3) C R_OP, R_CP :: stochiometric ratios C R_NP, R_FeP -C zca :: scale depth for CaCO3 remineralization (m) CC Parameters for light/nutrient limited bioac C parfrac :: fraction of Qsw that is PAR C k0 :: light attentuation coefficient (1/m) @@ -115,7 +134,7 @@ SUBROUTINE DIC_READPARMS( myThid ) NAMELIST /BIOTIC_PARMS/ & DOPfraction, KDOPRemin, KRemin, zcrit, - & O2crit, R_OP, R_CP, R_NP, R_FeP, zca, + & O2crit, R_OP, R_CP, R_NP, R_FeP, & parfrac, k0, lit0, KPO4, KFE, kchl, & alpfe, fesedflux_pcm, FeIntSec, freefemax, & KScav, ligand_stab, ligand_tot, @@ -123,9 +142,9 @@ SUBROUTINE DIC_READPARMS( myThid ) #endif NAMELIST /DIC_FORCING/ - & DIC_windFile, DIC_atmospFile, DIC_iceFile, - & DIC_ironFile, DIC_silicaFile, DIC_parFile, - & DIC_chlaFile, + & DIC_windFile, DIC_atmospFile, DIC_silicaFile, + & DIC_deepSilicaFile, DIC_iceFile, DIC_parFile, + & DIC_chlaFile, DIC_ironFile, & DIC_forcingPeriod, DIC_forcingCycle, & dic_int1, dic_int2, dic_int3, dic_int4, dic_pCO2 @@ -141,6 +160,23 @@ SUBROUTINE DIC_READPARMS( myThid ) selectHFconst = UNSET_I selectK1K2const = UNSET_I selectPHsolver = UNSET_I + useCalciteSaturation = .FALSE. +C-- Parameters used in Calcite Saturation calculation (useCalciteSaturation=T): +C set calcite saturation calculation to every timestep - could be expensive + calcOmegaCalciteFreq = deltaTClock +C number of iterations for the Follows 3d pH solver + nIterCO3 = 10 +C set some nominal particulate sinking rate (m/s); try 100m/day: +C flag to either remineralize in bottom or top layer if flux +C reaches bottom layer 0=bottom, 1=top + selectCalciteBottomRemin = 1 + WsinkPIC = 100. _d 0/86400. _d 0 +C Kier rate exponent for calcite (4.2 for aragonite) + KierRateExp = 4.54 _d 0 +C Kier dissolution rate constant (%/day) + KierRateK = 7.177 _d 0 +C-- setting default values for Calcite Saturation params ends here. + zca = 3500. _d 0 #ifdef DIC_BIOTIC DOPfraction = 0.67 _d 0 @@ -152,7 +188,6 @@ SUBROUTINE DIC_READPARMS( myThid ) R_CP = 117. _d 0 R_NP = 16. _d 0 R_FeP = 0.000468 _d 0 - zca = 3500. _d 0 parfrac = 0.4 _d 0 k0 = 0.02 _d 0 kchl = 0.02 _d 0 @@ -169,19 +204,20 @@ SUBROUTINE DIC_READPARMS( myThid ) alphaUniform = 2. _d -3/(360. _d 0 * 86400. _d 0) rainRatioUniform = 7. _d -2 #endif - DIC_windFile = ' ' - DIC_atmospFile= ' ' - DIC_iceFile = ' ' - DIC_ironFile = ' ' - DIC_silicaFile= ' ' - DIC_parFile = ' ' - DIC_chlaFile = ' ' + DIC_windFile = ' ' + DIC_atmospFile = ' ' + DIC_silicaFile = ' ' + DIC_deepSilicaFile = ' ' + DIC_iceFile = ' ' + DIC_parFile = ' ' + DIC_chlaFile = ' ' + DIC_ironFile = ' ' dic_int1 = 0 dic_int2 = 0 dic_int3 = 0 dic_int4 = 0 dic_pCO2 = 278. _d -6 -c default periodic forcing to same as for physics +C default periodic forcing to same as for physics DIC_forcingPeriod = externForcingPeriod DIC_forcingCycle = externForcingCycle @@ -346,6 +382,25 @@ SUBROUTINE DIC_READPARMS( myThid ) & ' /* Ref. density to convert mol/m3 to mol/kg */') CALL WRITE_0D_RL( Pa2Atm, INDEX_NONE,'Pa2Atm =', & ' /* Atmosph. pressure conversion coeff (to Atm) */') + CALL WRITE_0D_RL( zca, INDEX_NONE,'zca =', + & ' /* Scale depth for CaCO3 remineralization (m) */') + CALL WRITE_0D_L( useCalciteSaturation, INDEX_NONE, + & 'useCalciteSaturation =', + & ' /* Flag for omegaC calculation on/off */') + IF ( useCalciteSaturation ) THEN + CALL WRITE_0D_RL( calcOmegaCalciteFreq, INDEX_NONE, + & 'calcOmegaCalciteFreq =', + & ' /* Frequency of calcite saturation calculation (s) */') + CALL WRITE_0D_RL( KierRateK, INDEX_NONE, 'KierRateK =', + & ' /* Rate constant for calcite dissolution (%/day) */') + CALL WRITE_0D_RL( KierRateExp, INDEX_NONE, 'KierRateExp =', + & ' /* Rate exponent for calcite dissolution */') + CALL WRITE_0D_RL( WsinkPIC, INDEX_NONE, 'WsinkPIC =', + & ' /* Sinking speed of particulate inorganic carbon (m/s) */') + CALL WRITE_0D_I( selectCalciteBottomRemin, INDEX_NONE, + & 'selectCalciteBottomRemin =', + & ' /* Remineralize CO3 bottom flux: =0: here, =1: top layer */') + ENDIF #ifdef DIC_BIOTIC C- namelist BIOTIC_PARMS @@ -367,8 +422,6 @@ SUBROUTINE DIC_READPARMS( myThid ) & ' /* Stochiometric ratio R_NP */') CALL WRITE_0D_RL( R_FeP, INDEX_NONE,'R_FeP =', & ' /* Stochiometric ratio R_FeP */') - CALL WRITE_0D_RL( zca, INDEX_NONE,'zca =', - & ' /* Scale depth for CaCO3 remineralization (m) */') CALL WRITE_0D_RL( parfrac, INDEX_NONE,'parfrac =', & ' /* Fraction of Qsw that is PAR */') CALL WRITE_0D_RL( k0, INDEX_NONE,'k0 =', @@ -408,16 +461,20 @@ SUBROUTINE DIC_READPARMS( myThid ) & ' /* File name of wind speeds */') CALL WRITE_0D_C( DIC_atmospFile, -1,INDEX_NONE,'DIC_atmospFile=', & ' /* File name of atmospheric pressure*/') + CALL WRITE_0D_C( DIC_silicaFile, -1,INDEX_NONE, + & 'DIC_silicaFile=',' /* File name of surface silica */') + IF ( useCalciteSaturation ) THEN + CALL WRITE_0D_C( DIC_deepSilicaFile, -1,INDEX_NONE, + & 'DIC_deepSilicaFile=',' /* File name of 3d silica field */') + ENDIF CALL WRITE_0D_C( DIC_iceFile, -1, INDEX_NONE, 'DIC_iceFile =', & ' /* File name of seaice fraction */') - CALL WRITE_0D_C( DIC_ironFile, -1, INDEX_NONE, 'DIC_ironFile =', - & ' /* File name of aeolian iron flux */') - CALL WRITE_0D_C( DIC_silicaFile, -1,INDEX_NONE,'DIC_silicaFile=', - & ' /* File name of surface silica */') CALL WRITE_0D_C( DIC_parFile, -1,INDEX_NONE,'DIC_parFile=', & ' /* File name of photosynthetically available radiation */') CALL WRITE_0D_C( DIC_chlaFile, -1,INDEX_NONE,'DIC_chlaFile=', & ' /* File name of chlorophyll climatology */') + CALL WRITE_0D_C( DIC_ironFile, -1, INDEX_NONE, 'DIC_ironFile =', + & ' /* File name of aeolian iron flux */') CALL WRITE_0D_RL( DIC_forcingPeriod, & INDEX_NONE,'DIC_forcingPeriod =', & ' /* Periodic forcing parameter specific for DIC (s) */') @@ -506,6 +563,44 @@ SUBROUTINE DIC_READPARMS( myThid ) ENDIF #endif /* CARBONCHEM_SOLVESAPHE */ +#ifdef DIC_CALCITE_SAT +C Issue a soft message if a deepSilicaFile is supplied +C but will not be used because useCalciteSaturation is FALSE + IF ( DIC_deepSilicaFile .NE. ' ' .AND. + & .NOT. useCalciteSaturation ) THEN + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'to use: DIC_deepSilicaFile (3d silicate input)' + CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid) + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'needs: "useCalciteSaturation=.TRUE." in "data.dic"' + CALL PRINT_MESSAGE(msgBuf,iUnit,SQUEEZE_RIGHT,myThid) + ENDIF +#else +C Issue an error and stop if useCalciteSaturation is TRUE but +C DIC_CALCITE_SATURATION code is not compiled + IF ( useCalciteSaturation ) THEN + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'to enable: useCalciteSaturation' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'needs: "#define DIC_CALCITE_SAT" in "DIC_OPTIONS.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + +C Issue an error and stop if deepSilicaFile is supplied but +C DIC_CALCITE_SATURATION code is not compiled + IF ( DIC_deepSilicaFile .NE. ' ' ) THEN + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'to use: DIC_deepSilicaFile (3d silicate input)' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'DIC_READPARMS: ', + & 'needs: "#define DIC_CALCITE_SAT" in "DIC_OPTIONS.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif /* DIC_CALCITE_SAT */ + IF ( errCount.GE.1 ) THEN WRITE(msgBuf,'(A,I3,A)') & 'DIC_READPARMS: detected', errCount,' fatal error(s)' diff --git a/pkg/dic/dic_set_control.F b/pkg/dic/dic_set_control.F index 5cfb150675..4d17524bec 100644 --- a/pkg/dic/dic_set_control.F +++ b/pkg/dic/dic_set_control.F @@ -34,64 +34,14 @@ SUBROUTINE DIC_SET_CONTROL( myThid ) #ifdef ALLOW_CTRL cph#ifdef DIC_BIOTIC C == Local arguments == +#ifdef ALLOW_DIC_CONTROL INTEGER bi, bj INTEGER i, j - INTEGER il - LOGICAL doglobalread - LOGICAL ladinit - LOGICAL equal - CHARACTER*( 80) fnamegen2d - _RL fac -c == external == - INTEGER ILNBLNK - EXTERNAL ILNBLNK +#endif c == end of interface == CEOP - doglobalread = .FALSE. - ladinit = .FALSE. - - equal = .TRUE. - - IF ( equal ) THEN - fac = 1. _d 0 - ELSE - fac = 0. _d 0 - ENDIF - - print*,'QQ alpha before', alpha(20,10,1,1) - -#ifdef ALLOW_GEN2D_CONTROL - il=ILNBLNK( xx_gen2d_file ) - WRITE(fnamegen2d(1:80),'(2a,i10.10)') - & xx_gen2d_file(1:il),'.',optimcycle - CALL ACTIVE_READ_XY( fnamegen2d, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_gen2d_dummy ) - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j = 1, sNy - DO i = 1, sNx - alpha (i,j,bi,bj) = alpha(i,j,bi,bj) - & + fac*tmpfld2d(i,j,bi,bj) - ENDDO - ENDDO - ENDDO - ENDDO -cswd -- QQ limits! -cph IF (alpha(i,j,bi,bj).GT.alphamax) THEN -cph alpha(i,j,bi,bj)=alphamax -cph ENDIF -cph IF (alpha(i,j,bi,bj).LT.alphamin) THEN -cph alpha(i,j,bi,bj)=alphamin -cph ENDIF -cswd -- QQ limits - print*,'QQ - preturb alpha', alpha(20,10,1,1), - & tmpfld2d(20,10,1,1) -#endif /* ALLOW_GEN2D_CONTROL */ - #ifdef ALLOW_DIC_CONTROL DO bj=myByLo(myThid),myByHi(myThid) diff --git a/pkg/dic/dic_solvesaphe.F b/pkg/dic/dic_solvesaphe.F index 13fde5740c..e39ee45ed6 100644 --- a/pkg/dic/dic_solvesaphe.F +++ b/pkg/dic/dic_solvesaphe.F @@ -248,7 +248,7 @@ SUBROUTINE CALC_PCO2_SOLVESAPHE( C pt = inorganic phosphate (mol/^3) C sit = inorganic silicate (mol/^3) C t = temperature (degrees C) -C s = salinity (PSU) +C s = salinity (g/kg) _RL t, s, z_po4tot, z_siltot, z_alktot _RL z_pco2, z_dictot, pHlocal _RL z_co3 @@ -843,7 +843,7 @@ SUBROUTINE DIC_COEFFS_SURF( Ksp_TP_Calc(i,j,bi,bj) = 10. _d 0**(-171.9065 _d 0 & - 0.077993 _d 0*t_k - & + 2839.319 _d 0*inv_t_k + 71.595 _d 0*dlog_t_k + & + 2839.319 _d 0*inv_t_k + 71.595 _d 0*LOG10(t_k) & + ( -0.77712 _d 0 + 0.0028426 _d 0*t_k & + 178.34 _d 0*inv_t_k)*sqrts & - 0.07711 _d 0*s + 0.0041249 _d 0*s_15) @@ -857,7 +857,7 @@ SUBROUTINE DIC_COEFFS_SURF( Ksp_TP_Arag(i,j,bi,bj) = 10. _d 0**(-171.945 _d 0 & - 0.077993 _d 0*t_k - & + 2903.293 _d 0*inv_t_k + 71.595 _d 0*dlog_t_k + & + 2903.293 _d 0*inv_t_k + 71.595 _d 0*LOG10(t_k) & + ( -0.068393 _d 0 + 0.0017276 _d 0*t_k & + 88.135 _d 0*inv_t_k)*sqrts & - 0.10018 _d 0*s + 0.0059415 _d 0*s_15) diff --git a/pkg/dic/dic_surfforcing.F b/pkg/dic/dic_surfforcing.F index 18287916e4..2330feec27 100644 --- a/pkg/dic/dic_surfforcing.F +++ b/pkg/dic/dic_surfforcing.F @@ -1,12 +1,15 @@ #include "DIC_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: DIC_SURFFORCING C !INTERFACE: ========================================================== SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, - I bi,bj,iMin,iMax,jMin,jMax, - I myIter,myTime,myThid) + I bi, bj, iMin, iMax, jMin, jMax, + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate the carbon air-sea flux terms @@ -21,21 +24,24 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, #include "GRID.h" #include "FFIELDS.h" #include "DIC_VARS.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep +C PTR_CO2 :: DIC tracer field C myTime :: current time -c PTR_CO2 :: DIC tracer field - INTEGER myIter, myThid - _RL myTime +C myIter :: current timestep +C myThid :: thread number _RL PTR_CO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_ALK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL PTR_PO4(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER iMin,iMax,jMin,jMax, bi, bj + _RL myTime + INTEGER myIter, myThid C !OUTPUT PARAMETERS: =================================================== -c GDC :: tendency due to air-sea exchange +C GDC :: tendency due to air-sea exchange _RL GDC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef ALLOW_DIC @@ -60,14 +66,15 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, #ifdef ALLOW_OLD_VIRTUALFLUX _RL VirtualFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER tkey +#endif CEOP -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc - - kLev=1 + kLev = 1 -cc if coupled to atmsopheric model, use the -cc Co2 value passed from the coupler +cC if coupled to atmsopheric model, use the +cC Co2 value passed from the coupler c#ifndef USE_ATMOSCO2 cC PRE-INDUSTRIAL STEADY STATE pCO2 = 278.0 ppmv c DO j=1-OLy,sNy+OLy @@ -79,58 +86,55 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, C ================================================================= C determine inorganic carbon chem coefficients - DO j=jMin,jMax - DO i=iMin,iMax - + DO j=jMin,jMax + DO i=iMin,iMax #ifdef DIC_BIOTIC cQQQQ check ptracer numbers #ifdef DIC_BOUNDS - surfalk(i,j) = max(0.4 _d 0, - & min(10. _d 0,PTR_ALK(i,j,klev))) - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j) = max(1.0 _d -11, - & min(1. _d -1,PTR_PO4(i,j,klev))) - & * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = MAX( 0.4 _d 0, + & MIN( 10. _d 0, PTR_ALK(i,j,klev) ) ) + & * maskC(i,j,kLev,bi,bj) + surfphos(i,j) = MAX( 1.0 _d -11, + & MIN( 1. _d -1, PTR_PO4(i,j,klev) ) ) + & * maskC(i,j,kLev,bi,bj) #else - surfalk(i,j) = PTR_ALK(i,j,klev) - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j) = PTR_PO4(i,j,klev) - & * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = PTR_ALK(i,j,klev)*maskC(i,j,kLev,bi,bj) + surfphos(i,j) = PTR_PO4(i,j,klev)*maskC(i,j,kLev,bi,bj) #endif #else /* DIC_BIOTIC */ - surfalk(i,j) = 2.366595 _d 0 * salt(i,j,kLev,bi,bj)/gsm_s - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j) = 5.1225 _d -4 * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = 2.366595 _d 0 * salt(i,j,kLev,bi,bj)/gsm_s + & * maskC(i,j,kLev,bi,bj) + surfphos(i,j) = 5.1225 _d -4 * maskC(i,j,kLev,bi,bj) #endif /* DIC_BIOTIC */ -C FOR NON-INTERACTIVE Si - surfsi(i,j) = SILICA(i,j,bi,bj) * maskC(i,j,kLev,bi,bj) +C for non-interactive Si + surfsi(i,j) = silicaSurf(i,j,bi,bj)*maskC(i,j,kLev,bi,bj) #ifdef DIC_BOUNDS - surftemp(i,j) = max(-4. _d 0, - & min(50. _d 0, theta(i,j,kLev,bi,bj))) - surfsalt(i,j) = max(4. _d 0, - & min(50. _d 0, salt(i,j,kLev,bi,bj))) - surfdic(i,j) = max(0.4 _d 0, - & min(10. _d 0, PTR_CO2(i,j,kLev))) + surftemp(i,j) = MAX( -4. _d 0, + & MIN( 50. _d 0, theta(i,j,kLev,bi,bj) ) ) + surfsalt(i,j) = MAX( 4. _d 0, + & MIN( 50. _d 0, salt(i,j,kLev,bi,bj) ) ) + surfdic(i,j) = MAX( 0.4 _d 0, + & MIN( 10. _d 0, PTR_CO2(i,j,kLev) ) ) #else - surftemp(i,j) = theta(i,j,kLev,bi,bj) - surfsalt(i,j) = salt(i,j,kLev,bi,bj) - surfdic(i,j) = PTR_CO2(i,j,kLev) + surftemp(i,j) = theta(i,j,kLev,bi,bj) + surfsalt(i,j) = salt(i,j,kLev,bi,bj) + surfdic(i,j) = PTR_CO2(i,j,kLev) #endif - ENDDO - ENDDO + ENDDO + ENDDO #ifdef CARBONCHEM_SOLVESAPHE #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('DIC_COEFFS_SURF',myThid) #endif - CALL DIC_COEFFS_SURF( + CALL DIC_COEFFS_SURF( I surftemp,surfsalt, I bi,bj,iMin,iMax,jMin,jMax,myThid) #else /* CARBONCHEM_SOLVESAPHE */ #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('CARBON_COEFFS',myThid) #endif - CALL CARBON_COEFFS( + CALL CARBON_COEFFS( I surftemp,surfsalt, I bi,bj,iMin,iMax,jMin,jMax,myThid) #endif /* CARBONCHEM_SOLVESAPHE */ @@ -151,15 +155,18 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, C Pre-compute part of exchange coefficient: pisvel*(1-fice) C Schmidt number is accounted for later - pisvel(i,j)=0.337 _d 0 *wind(i,j,bi,bj)**2/3.6 _d 5 - Kwexch_Pre(i,j,bi,bj) = pisvel(i,j) - & * (1. _d 0 - FIce(i,j,bi,bj)) - + pisvel(i,j) = 0.337 _d 0 *wind(i,j,bi,bj)**2/3.6 _d 5 + Kwexch_Pre(i,j,bi,bj) = pisvel(i,j) + & * (1. _d 0 - fIce(i,j,bi,bj)) ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE pH(:,:,bi,bj) = comlev1_bibj, key = tkey, kind = isbyte +#endif debugPrt = debugMode -c pCO2 solver... +C pCO2 solver... C$TAF LOOP = parallel DO j=jMin,jMax C$TAF LOOP = parallel @@ -214,39 +221,40 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, IF ( maskC(i,j,kLev,bi,bj).NE.0. _d 0 ) THEN C calculate SCHMIDT NO. for CO2 - SchmidtNoDIC(i,j) = + SchmidtNoDIC(i,j) = & sca1 & + sca2 * theta(i,j,kLev,bi,bj) & + sca3 * theta(i,j,kLev,bi,bj)*theta(i,j,kLev,bi,bj) & + sca4 * theta(i,j,kLev,bi,bj)*theta(i,j,kLev,bi,bj) & *theta(i,j,kLev,bi,bj) -c make sure Schmidt number is not negative (will happen if temp>39C) - SchmidtNoDIC(i,j)=max(1.0 _d -2, SchmidtNoDIC(i,j)) +C make sure Schmidt number is not negative (will happen if temp>39C) + SchmidtNoDIC(i,j) = MAX( 1.0 _d -2, SchmidtNoDIC(i,j) ) C Determine surface flux (FDIC) C first correct pCO2at for surface atmos pressure - pCO2sat(i,j) = + pCO2sat(i,j) = & AtmosP(i,j,bi,bj)*AtmospCO2(i,j,bi,bj) C then account for Schmidt number - Kwexch(i,j) = Kwexch_Pre(i,j,bi,bj) - & / sqrt(SchmidtNoDIC(i,j)/660.0 _d 0) + Kwexch(i,j) = Kwexch_Pre(i,j,bi,bj) + & / SQRT(SchmidtNoDIC(i,j)/660.0 _d 0) #ifdef WATERVAP_BUG C Calculate flux in terms of DIC units using K0, solubility C Flux = Vp * ([CO2sat] - [CO2]) C CO2sat = K0*pCO2atmos*P/P0 C Converting pCO2 to [CO2] using ff, as in CALC_PCO2 - FluxCO2(i,j,bi,bj) = + FluxCO2(i,j,bi,bj) = & Kwexch(i,j)*( & ak0(i,j,bi,bj)*pCO2sat(i,j) - & ff(i,j,bi,bj)*pCO2(i,j,bi,bj) & ) #else + C Corrected by Val Bennington Nov 2010 per G.A. McKinley s finding C of error in application of water vapor correction -c Flux = kw*rho*(ff*pCO2atm-k0*FugFac*pCO2ocean) - FluxCO2(i,j,bi,bj) = +C Flux = kw*rho*(ff*pCO2atm-k0*FugFac*pCO2ocean) + FluxCO2(i,j,bi,bj) = & Kwexch(i,j)*( & ff(i,j,bi,bj)*pCO2sat(i,j) - & pCO2(i,j,bi,bj)*fugf(i,j,bi,bj) @@ -254,44 +262,43 @@ SUBROUTINE DIC_SURFFORCING( PTR_CO2 , PTR_ALK, PTR_PO4, GDC, #endif ELSE - FluxCO2(i,j,bi,bj) = 0. _d 0 + FluxCO2(i,j,bi,bj) = 0. _d 0 ENDIF C convert flux (mol kg-1 m s-1) to (mol m-2 s-1) - FluxCO2(i,j,bi,bj) = FluxCO2(i,j,bi,bj)/permil + FluxCO2(i,j,bi,bj) = FluxCO2(i,j,bi,bj)/permil #ifdef ALLOW_OLD_VIRTUALFLUX - IF (maskC(i,j,kLev,bi,bj).NE.0. _d 0) THEN -c calculate virtual flux -c EminusPforV = dS/dt*(1/Sglob) + IF (maskC(i,j,kLev,bi,bj).NE.0. _d 0) THEN +C calculate virtual flux +C EminusPforV = dS/dt*(1/Sglob) C NOTE: Be very careful with signs here! C Positive EminusPforV => loss of water to atmos and increase C in salinity. Thus, also increase in other surface tracers C (i.e. positive virtual flux into surface layer) C ...so here, VirtualFLux = dC/dt! VirtualFlux(i,j)=gsm_DIC*surfaceForcingS(i,j,bi,bj)/gsm_s -c OR -c let virtual flux be zero -c VirtualFlux(i,j)=0.d0 -c - ELSE +C OR +C let virtual flux be zero +C VirtualFlux(i,j)=0.d0 + ELSE VirtualFlux(i,j)=0. _d 0 - ENDIF + ENDIF #endif /* ALLOW_OLD_VIRTUALFLUX */ - ENDDO - ENDDO + ENDDO + ENDDO C update tendency - DO j=jMin,jMax - DO i=iMin,iMax + DO j=jMin,jMax + DO i=iMin,iMax GDC(i,j)= recip_drF(kLev)*recip_hFacC(i,j,kLev,bi,bj) & *(FluxCO2(i,j,bi,bj) #ifdef ALLOW_OLD_VIRTUALFLUX & + VirtualFlux(i,j) #endif & ) - ENDDO - ENDDO + ENDDO + ENDDO #endif /* ALLOW_DIC */ - RETURN - END + RETURN + END diff --git a/pkg/dic/dic_surfforcing_init.F b/pkg/dic/dic_surfforcing_init.F index 8aaf0366fa..af4208f655 100644 --- a/pkg/dic/dic_surfforcing_init.F +++ b/pkg/dic/dic_surfforcing_init.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE DIC_SURFFORCING_INIT( - I myThid) + I myThid ) C !DESCRIPTION: C Calculate first guess of pH @@ -48,25 +48,20 @@ SUBROUTINE DIC_SURFFORCING_INIT( INTEGER iprt,jprt LOGICAL debugPrt LOGICAL pH_isLoaded - C msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc - - kLev=1 + kLev = 1 CALL DIC_INI_ATMOS( startTime, nIter0, myThid ) -ccccccccccccccccccccccccccccccccccccccccc - IF ( periodicExternalForcing ) THEN +C ================================================================= -c read in silica field - CALL LEF_ZERO( silica0,myThid ) - CALL LEF_ZERO( silica1,myThid ) + IF ( periodicExternalForcing ) THEN -C-- Now calculate whether it is time to update the forcing arrays +C read in surface silica field +C-- Get reccord number and weight for time interpolation: CALL GET_PERIODIC_INTERVAL( O intimeP, intime0, intime1, bWght, aWght, I externForcingCycle, externForcingPeriod, @@ -80,10 +75,19 @@ SUBROUTINE DIC_SURFFORCING_INIT( _END_MASTER(myThid) IF ( DIC_silicaFile .NE. ' ' ) THEN - CALL READ_REC_XY_RS( DIC_silicaFile,silica0,intime0, + CALL READ_REC_XY_RS( DIC_silicaFile,silicaSurf0,intime0, & nIter0,myThid ) - CALL READ_REC_XY_RS( DIC_silicaFile,silica1,intime1, + CALL READ_REC_XY_RS( DIC_silicaFile,silicaSurf1,intime1, & nIter0,myThid ) +#ifndef ALLOW_AUTODIFF +#ifdef DIC_CALCITE_SAT + ELSEIF ( DIC_deepSilicaFile .NE. ' ' ) THEN + CALL READ_REC_XYZ_RS( DIC_deepSilicaFile, silicaDeep0, + & intime0, nIter0, myThid ) + CALL READ_REC_XYZ_RS( DIC_deepSilicaFile, silicaDeep1, + & intime1, nIter0, myThid ) +#endif /* DIC_CALCITE_SAT */ +#endif /* ndef ALLOW_AUTODIFF */ ENDIF c#ifdef ALLOW_OFFLINE @@ -93,23 +97,40 @@ SUBROUTINE DIC_SURFFORCING_INIT( c ENDIF c#endif - _EXCH_XY_RS(silica0, myThid ) - _EXCH_XY_RS(silica1, myThid ) + _EXCH_XY_RS(silicaSurf0, myThid ) + _EXCH_XY_RS(silicaSurf1, myThid ) IF ( DIC_silicaFile .NE. ' ' ) THEN DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - SILICA(i,j,bi,bj)= bWght*silica0(i,j,bi,bj) - & + aWght*silica1(i,j,bi,bj) +C If file provided for surface silicate, read it in + silicaSurf(i,j,bi,bj) = bWght*silicaSurf0(i,j,bi,bj) + & + aWght*silicaSurf1(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO +#ifndef ALLOW_AUTODIFF +#ifdef DIC_CALCITE_SAT + ELSEIF ( DIC_deepSilicaFile .NE. ' ' ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +C If no surface silicate file but deep (3d) silicate provided, use top level + silicaSurf(i,j,bi,bj) = bWght*silicaDeep0(i,j,kLev,bi,bj) + & + aWght*silicaDeep1(i,j,kLev,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +#endif /* DIC_CALCITE_SAT */ +#endif /* ndef ALLOW_AUTODIFF */ ENDIF -c end periodicExternalForcing +C end periodicExternalForcing ENDIF C ================================================================= @@ -169,35 +190,34 @@ SUBROUTINE DIC_SURFFORCING_INIT( C determine inorganic carbon chem coefficients DO j=jMin,jMax DO i=iMin,iMax - #ifdef DIC_BIOTIC #ifdef DIC_BOUNDS - surfalk(i,j) = max(0.4 _d 0, - & min(10. _d 0,PTRACER(i,j,kLev,bi,bj,2))) - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j) = max(1.0 _d -11, - & min(1. _d -1,PTRACER(i,j,kLev,bi,bj,3))) - & * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = MAX( 0.4 _d 0, + & MIN( 10. _d 0, PTRACER(i,j,kLev,bi,bj,2) ) ) + & * maskC(i,j,kLev,bi,bj) + surfphos(i,j) = MAX( 1.0 _d -11, + & MIN( 1. _d -1, PTRACER(i,j,kLev,bi,bj,3) ) ) + & * maskC(i,j,kLev,bi,bj) #else - surfalk(i,j) = PTRACER(i,j,kLev,bi,bj,2) - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j)= PTRACER(i,j,kLev,bi,bj,3) - & * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = PTRACER(i,j,kLev,bi,bj,2) + & * maskC(i,j,kLev,bi,bj) + surfphos(i,j) = PTRACER(i,j,kLev,bi,bj,3) + & * maskC(i,j,kLev,bi,bj) #endif #else /* DIC_BIOTIC */ - surfalk(i,j) = 2.366595 _d 0 *salt(i,j,kLev,bi,bj)/35. _d 0 - & * maskC(i,j,kLev,bi,bj) - surfphos(i,j)= 5.1225 _d -4 * maskC(i,j,kLev,bi,bj) + surfalk(i,j) = 2.366595 _d 0 *salt(i,j,kLev,bi,bj)/35. _d 0 + & * maskC(i,j,kLev,bi,bj) + surfphos(i,j) = 5.1225 _d -4 * maskC(i,j,kLev,bi,bj) #endif /* DIC_BIOTIC */ -C FOR NON-INTERACTIVE Si - surfsi(i,j) = Silica(i,j,bi,bj) * maskC(i,j,kLev,bi,bj) +C for non-interactive Si + surfsi(i,j) = silicaSurf(i,j,bi,bj)*maskC(i,j,kLev,bi,bj) #ifdef DIC_BOUNDS - surftemp(i,j) = max(-4. _d 0, - & min(50. _d 0, theta(i,j,kLev,bi,bj))) - surfsalt(i,j) = max(4. _d 0, - & min(50. _d 0, salt(i,j,kLev,bi,bj))) - surfdic(i,j) = max(0.4 _d 0, - & min(10. _d 0, PTRACER(i,j,kLev,bi,bj,1))) + surftemp(i,j) = MAX( -4. _d 0, + & MIN( 50. _d 0, theta(i,j,kLev,bi,bj) ) ) + surfsalt(i,j) = MAX( 4. _d 0, + & MIN( 50. _d 0, salt(i,j,kLev,bi,bj) ) ) + surfdic(i,j) = MAX( 0.4 _d 0, + & MIN( 10. _d 0, PTRACER(i,j,kLev,bi,bj,1) ) ) #else surftemp(i,j) = theta(i,j,kLev,bi,bj) surfsalt(i,j) = salt(i,j,kLev,bi,bj) @@ -221,6 +241,7 @@ SUBROUTINE DIC_SURFFORCING_INIT( CALL CARBON_COEFFS( I surftemp,surfsalt, I bi,bj,iMin,iMax,jMin,jMax,myThid) + #endif /* CARBONCHEM_SOLVESAPHE */ C==================================================================== @@ -235,7 +256,7 @@ SUBROUTINE DIC_SURFFORCING_INIT( #endif debugPrt = debugMode -c first approximation +C first approximation C$TAF LOOP = parallel DO j=jMin,jMax C$TAF LOOP = parallel @@ -304,7 +325,7 @@ SUBROUTINE DIC_SURFFORCING_INIT( ENDDO #ifdef ALLOW_DEBUG - IF (debugMode) THEN + IF (debugMode) THEN iprt = MIN(20,sNx) jprt = MIN(20,sNy) WRITE(msgBuf,'(4(A,F9.6),2(A,F11.8),A,F9.6)') @@ -324,11 +345,11 @@ SUBROUTINE DIC_SURFFORCING_INIT( c & ' PO4 ' ,surfphos(iprt,jprt), c & ' SiT ' ,surfsi(iprt,jprt), c & ' ALK ' ,surfalk(iprt,jprt) -c CALL DEBUG_MSG(msgBuf,myThid) - ENDIF +c CALL DEBUG_MSG(msgBuf,myThid) + ENDIF #endif -C ENDIF (.NOT.pH_isLoaded) +C end if-block (.NOT.pH_isLoaded) ENDIF C end bi,bj loops ENDDO diff --git a/pkg/dic/fe_chem.F b/pkg/dic/fe_chem.F index d25b8d970d..0c8887e279 100644 --- a/pkg/dic/fe_chem.F +++ b/pkg/dic/fe_chem.F @@ -43,7 +43,7 @@ SUBROUTINE Fe_CHEM( INTEGER i,j,k _RL lig, FeL _RL tmpfe -#ifdef AD_SAFE +#if ( defined MINFE && defined DIC_AD_SAFE ) _RL thx, thy, theps #endif @@ -90,7 +90,7 @@ SUBROUTINE Fe_CHEM( freefe(i,j,k) = 0. _d 0 ENDIF #ifdef MINFE -#ifdef AD_SAFE +#ifdef DIC_AD_SAFE thx=freefe(i,j,k) thy=freefemax theps=1. _d -8 diff --git a/pkg/dic/o2_surfforcing.F b/pkg/dic/o2_surfforcing.F index 6e3b3e7bfa..9e7e4a7cc0 100644 --- a/pkg/dic/o2_surfforcing.F +++ b/pkg/dic/o2_surfforcing.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, I bi,bj,iMin,iMax,jMin,jMax, - I myIter, myTime, myThid ) + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate the oxygen air-sea flux terms @@ -22,13 +22,13 @@ SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, #include "DIC_VARS.h" c !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time C PTR_O2 :: oxygen tracer field - _RL myTime +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number _RL PTR_O2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER iMin,iMax,jMin,jMax, bi, bj + _RL myTime INTEGER myIter, myThid c !OUTPUT PARAMETERS: =================================================== @@ -41,7 +41,7 @@ SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, C !LOCAL VARIABLES: =================================================== C I, J, K - Loop counters - INTEGER I,J,K + INTEGER i,j,k C Solubility relation coefficients _RL SchmidtNoO2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL O2sat(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -60,8 +60,7 @@ SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, _RL oCnew CEOP - - K=1 + k=1 C calculate SCHMIDT NO. for O2 DO j=jmin,jmax @@ -106,12 +105,11 @@ SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, C Determine flux, inc. correction for local atmos surface pressure FluxO2(i,j) = Kwexch(i,j)* & (AtmosP(i,j,bi,bj)*O2sat(i,j) - & - PTR_O2(i,j,K)) + & - PTR_O2(i,j,k)) ELSE FluxO2(i,j) = 0. _d 0 ENDIF - END DO END DO @@ -119,13 +117,12 @@ SUBROUTINE O2_SURFFORCING( PTR_O2, SGO2, DO j=jmin,jmax DO i=imin,imax SGO2(i,j)= FluxO2(i,j) - & *recip_drF(K) * recip_hFacC(i,j,K,bi,bj) + & *recip_drF(k) * recip_hFacC(i,j,k,bi,bj) ENDDO ENDDO #endif #endif - RETURN END diff --git a/pkg/dic/phos_flux.F b/pkg/dic/phos_flux.F index 2f434e6ccc..b57ae51ca2 100644 --- a/pkg/dic/phos_flux.F +++ b/pkg/dic/phos_flux.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, I bi,bj,imin,imax,jmin,jmax, - I myIter,myTime,myThid) + I myTime, myIter, myThid ) C !DESCRIPTION: C Calculate the PO4 flux to depth from bio activity @@ -21,15 +21,15 @@ SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, #include "DIC_VARS.h" C !INPUT PARAMETERS: =================================================== -C myThid :: thread number -C myIter :: current timestep -C myTime :: current time C BIOac :: biological productivity - INTEGER myIter - _RL myTime - INTEGER myThid +C myTime :: current time +C myIter :: current timestep +C myThid :: thread number _RL BIOac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER imin, imax, jmin, jmax, bi, bj + _RL myTime + INTEGER myIter + INTEGER myThid C !OUTPUT PARAMETERS: =================================================== C pflux :: changes to PO4 due to flux and reminerlization @@ -47,7 +47,7 @@ SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, c flux_u, flux_l :: flux through upper and lower interfaces c reminFac :: abbreviation c zbase :: depth of bottom of current productive layer - INTEGER I,J,k, ko, kop1 + INTEGER i,j,k, ko, kop1 _RL zbase _RL bexport(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL reminFac @@ -65,7 +65,7 @@ SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, C-- If no layer below initial layer (because of bottom or C-- topography), then remineralize in here IF (k.EQ.Nr) THEN - pflux(i,j,k)=pflux(i,j,k)+BIOac(i,j,k)*(1. _d 0-DOPfraction) + pflux(i,j,k)=pflux(i,j,k)+BIOac(i,j,k)*(1. _d 0-DOPfraction) ELSEIF (hFacC(i,j,k+1,bi,bj).EQ.0. _d 0) THEN pflux(i,j,k)=pflux(i,j,k)+BIOac(i,j,k)*(1. _d 0-DOPfraction) ELSE @@ -93,11 +93,11 @@ SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, #ifndef NONLIN_FRSURF C For the linear free surface, hFacC can be omitted, buying another C performance increase of a factor of six on a vector computer. -C For now this is not implemented via run time flags, in order to +C For now this is not implemented via run time flags, in order to C avoid making this code too complicated. depth_l = -rF(ko) + drF(ko) C reminFac = (depth_l/zbase)**(-Kremin) -C The following form does the same, but is faster +C The following form does the same, but is faster reminFac = exp(-Kremin*log(depth_l/zbase)) #endif DO j=jmin,jmax @@ -107,12 +107,12 @@ SUBROUTINE PHOS_FLUX( BIOac, pflux, exportflux, #ifdef NONLIN_FRSURF depth_l = -rF(ko) + drF(ko) * _hFacC(i,j,ko,bi,bj) C reminFac = (depth_l/zbase)**(-Kremin) -C The following form does the same, but is faster +C The following form does the same, but is faster reminFac = exp(-Kremin*log(depth_l/zbase)) #endif flux_l = bexport(i,j)*reminFac & *maskC(i,j,kop1,bi,bj) -C +C pflux(i,j,ko)=pflux(i,j,ko) + (flux_u(i,j)-flux_l) & *recip_drF(ko) * _recip_hFacC(i,j,ko,bi,bj) exportflux(i,j,ko)=exportflux(i,j,ko)+flux_u(i,j) diff --git a/pkg/down_slope/dwnslp_apply.F b/pkg/down_slope/dwnslp_apply.F index 8b162c7f85..929653a040 100644 --- a/pkg/down_slope/dwnslp_apply.F +++ b/pkg/down_slope/dwnslp_apply.F @@ -68,9 +68,9 @@ SUBROUTINE DWNSLP_APPLY( C === Local variables === C msgBuf :: Informational/error message buffer INTEGER k - INTEGER n,ijd,ijs,kshelf + INTEGER n,ijd,ijs,kshelf,kDeep _RL gTrLoc(0:Nr) - _RL tmpFld + _RL dTrac(1:Nr) INTEGER upward LOGICAL onOffFlag @@ -123,6 +123,7 @@ SUBROUTINE DWNSLP_APPLY( ENDIF #endif /* ALLOW_DIAGNOSTICS */ +#ifndef TARGET_NEC_SX IF ( DWNSLP_ioUnit.GT.0 ) THEN _BEGIN_MASTER(myThid) WRITE(DWNSLP_ioUnit,'(A,I8,3I4)') @@ -131,58 +132,59 @@ SUBROUTINE DWNSLP_APPLY( & ' kDp Tr_Dp Gt_Dp Tr_Sh Gt_Sh' _END_MASTER(myThid) ENDIF +#endif DO n=1,DWNSLP_NbSite(bi,bj) IF (DWNSLP_deepK(n,bi,bj).NE.0) THEN C- detect density gradient along the slope => Downsloping flow - ijd = DWNSLP_ijDeep(n,bi,bj) ijs = ijd + DWNSLP_shVsD(n,bi,bj) kshelf = kBottom(ijs,bi,bj) - tmpFld = tracer(ijs,kshelf) + kDeep = DWNSLP_deepK(n,bi,bj) +C- precomute vertical tracer differences to help TAF + DO k=kshelf,kDeep+upward,-upward + dTrac(k) = tracer(ijd,k-upward)-tracer(ijd,k) + ENDDO + dTrac(kDeep) = tracer(ijs,kshelf)-tracer(ijd,kDeep) C- downsloping flow (in) & upward return flow : - DO k=DWNSLP_deepK(n,bi,bj),kshelf,upward + DO k=kshelf,kDeep,-upward gTrLoc(k) = DWNSLP_Transp(n,bi,bj) - & *( tmpFld - tracer(ijd,k) ) + & * dTrac(k) & *recip_drF(k)*recip_hFac(ijd,k) & *recip_rA_arg(ijd,bi,bj) gTracer(ijd,k) = gTracer(ijd,k) + gTrLoc(k) - tmpFld = tracer(ijd,k) ENDDO C- downsloping flow (out) & return flow to the shelf - k = kshelf - gTrLoc(0) = DWNSLP_Transp(n,bi,bj) - & *( tmpFld - tracer(ijs,k) ) + k = kshelf + gTrLoc(0) = DWNSLP_Transp(n,bi,bj) + & * ( tracer(ijd,k)-tracer(ijs,k) ) & *recip_drF(k)*recip_hFac(ijs,k) & *recip_rA_arg(ijs,bi,bj) - gTracer(ijs,k) = gTracer(ijs,k) + gTrLoc(0) + gTracer(ijs,k) = gTracer(ijs,k) + gTrLoc(0) +#ifndef TARGET_NEC_SX +C- skip within do-loop write statement when compiling on a vector computer IF ( DWNSLP_ioUnit.GT.0 ) THEN _BEGIN_MASTER(myThid) - k=DWNSLP_deepK(n,bi,bj) + k = kDeep WRITE(DWNSLP_ioUnit,'(2I4,I6,2I8,I4,1P4E14.6)') & bi,bj,n,ijd,ijs,k, - & tracer(ijd,k), - & deltaTLev(k)*DWNSLP_Transp(n,bi,bj) - & *recip_drF(k)*recip_hFac(ijd,k) - & *recip_rA_arg(ijd,bi,bj)* - & (tracer(ijs,kshelf)-tracer(ijd,k)), - & tracer(ijs,kshelf), - & deltaTLev(k)*DWNSLP_Transp(n,bi,bj) - & *recip_drF(kshelf)*recip_hFac(ijs,kshelf) - & *recip_rA_arg(ijs,bi,bj)* - & (tmpFld-tracer(ijs,kshelf)) + & tracer(ijd,k), deltaTLev(k)*gTrLoc(k), + & tracer(ijs,kshelf), deltaTLev(k)*gTrLoc(0) _END_MASTER(myThid) ENDIF +#endif ENDIF ENDDO +#ifndef TARGET_NEC_SX IF ( DWNSLP_ioUnit.GT.0 ) THEN _BEGIN_MASTER(myThid) WRITE(DWNSLP_ioUnit,*) _END_MASTER(myThid) ENDIF +#endif #ifdef ALLOW_DIAGNOSTICS IF ( doDiagDwnSlpTend ) diff --git a/pkg/down_slope/dwnslp_diagnostics_init.F b/pkg/down_slope/dwnslp_diagnostics_init.F index da54d269be..87c0fc9409 100644 --- a/pkg/down_slope/dwnslp_diagnostics_init.F +++ b/pkg/down_slope/dwnslp_diagnostics_init.F @@ -82,7 +82,7 @@ SUBROUTINE DWNSLP_DIAGNOSTICS_INIT( myThid ) diagSufx = GAD_DIAG_SUFX( GAD_TEMPERATURE, myThid ) #endif diagName = 'DSLP'//diagSufx - diagTitle = ' Pot.Temp. tendency from Down-Slope package' + diagTitle = 'Pot.Temp. tendency from Down-Slope package' diagUnits = 'K/s ' diagCode = 'SMR MR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, @@ -92,8 +92,8 @@ SUBROUTINE DWNSLP_DIAGNOSTICS_INIT( myThid ) diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid ) #endif diagName = 'DSLP'//diagSufx - diagTitle = ' Salinity tendency from Down-Slope package' - diagUnits = 'psu/s ' + diagTitle = 'Salinity tendency from Down-Slope package' + diagUnits = 'g/kg/s ' diagCode = 'SMR MR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) diff --git a/pkg/ebm/ebm_area_t.F b/pkg/ebm/ebm_area_t.F index 0f130c9067..70c265902a 100644 --- a/pkg/ebm/ebm_area_t.F +++ b/pkg/ebm/ebm_area_t.F @@ -1,4 +1,7 @@ #include "EBM_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP 0 C !ROUTINE: EBM_AREA_T @@ -25,7 +28,6 @@ SUBROUTINE EBM_AREA_T( myTime, myIter, myThid ) #endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: diff --git a/pkg/ebm/ebm_atmosphere.F b/pkg/ebm/ebm_atmosphere.F index fe95fbac8e..62153f07e6 100644 --- a/pkg/ebm/ebm_atmosphere.F +++ b/pkg/ebm/ebm_atmosphere.F @@ -1,4 +1,7 @@ #include "EBM_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP 0 C !ROUTINE: EBM_ATMOSPHERE @@ -36,7 +39,6 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) #include "EBM.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: @@ -52,7 +54,8 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) INTEGER i, j, bi, bj INTEGER no_so #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iebmkey +C ikey :: tape key (tile dependent) + INTEGER ikey #endif /* ALLOW_AUTODIFF_TAMC */ _RL ReCountX(1-OLy:sNy+OLy,nSy) @@ -83,20 +86,11 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iebmkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ - DO j=1-oLy,sNy+oLy - DO i=1-oLx,sNx+oLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx S(i,j,bj) = 0.0 P2(i,j,bj) = 0.0 P4(i,j,bj) = 0.0 @@ -129,7 +123,7 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) ENDIF ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ReCountX(:,bj) = comlev1_bibj, key=iebmkey, byte=isbyte +CADJ STORE ReCountX(:,bj) = comlev1_bibj, key=ikey, byte=isbyte #endif c===================================================== @@ -141,7 +135,7 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) T_var(3) = SIN(latBnd(2)*deg2rad)**3 - SIN(latBnd(1)*deg2rad)**3 T_var(4) = SIN(latBnd(3)*deg2rad)**3 - SIN(latBnd(2)*deg2rad)**3 #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE T_var(:) = comlev1_bibj, key=iebmkey, byte=isbyte +CADJ STORE T_var(:) = comlev1_bibj, key=ikey, byte=isbyte #endif c---------------------------------------- @@ -176,8 +170,8 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) c----------------------------------------------------------- #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE T35(:) = comlev1_bibj, key=iebmkey, byte=isbyte -CADJ STORE DTDy35(:) = comlev1_bibj, key=iebmkey, byte=isbyte +CADJ STORE T35(:) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE DTDy35(:) = comlev1_bibj, key=ikey, byte=isbyte #endif DO no_so = 1, 2 IF ( DTDy35(no_so).NE.0. .AND. T35(no_so).NE.0. ) THEN @@ -230,9 +224,9 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE S(:,:,bj) = comlev1_bibj, key=iebmkey, byte=isbyte -CADJ STORE P2(:,:,bj) = comlev1_bibj, key=iebmkey, byte=isbyte -CADJ STORE P4(:,:,bj) = comlev1_bibj, key=iebmkey, byte=isbyte +CADJ STORE S(:,:,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE P2(:,:,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE P4(:,:,bj) = comlev1_bibj, key=ikey, byte=isbyte #endif c DO j=1,sNy @@ -298,7 +292,7 @@ SUBROUTINE EBM_ATMOSPHERE ( myTime, myIter, myThid ) ENDIF #endif c Freshwater Flux = Div(atmospheric moisture transport) -c--- conversion of E-P from kg/(s m^2) -> m/s -> psu/s: 1e-3*35/delZ(1) +c--- conversion of E-P from kg/(s m^2) -> m/s -> g/kg/s: 1e-3*35/delZ(1) #ifdef EBM_VERSION_1BASIN EmPmR(i,j,bi,bj) = -1. _d -3*Fw35(no_so) & *(-0.8454 _d 5*S(i,j,bj)**14 + 0.5367 _d 5*S(i,j,bj)**13 diff --git a/pkg/ebm/ebm_zonalmean.F b/pkg/ebm/ebm_zonalmean.F index 3c1e4cb888..00b3716bae 100644 --- a/pkg/ebm/ebm_zonalmean.F +++ b/pkg/ebm/ebm_zonalmean.F @@ -1,4 +1,7 @@ #include "EBM_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP 0 C !ROUTINE: EBM_ZONALMEAN @@ -25,7 +28,6 @@ SUBROUTINE EBM_ZONALMEAN( myTime, myIter, myThid ) #endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: diff --git a/pkg/ecco/ECCO.h b/pkg/ecco/ECCO.h new file mode 100644 index 0000000000..8fa3acad5e --- /dev/null +++ b/pkg/ecco/ECCO.h @@ -0,0 +1,336 @@ +CBOP +C !ROUTINE: ECCO.h +C !INTERFACE: +C #include ECCO.h + +C !DESCRIPTION: \bv +C ================================================================== +C ECCO.h +C o Main header file for the ECCO pkg. +C started: Christian Eckert eckert@mit.edu 23-Feb-1999 +C ================================================================== +C \ev +CEOP + +C Version of the release and versions of used packages: +C ===================================================== +C +C eccoVersion - ecco release version. +C usesCalendarVersion - version of the calendar that has to +C be used. +C usesExternalForcingVersion - version of the external forcing that +C has to be used. +C usesAdjointSupportVersion - version of the adjoint support routines +C that have to be used. +C usesOptimizationVersion - version of the oof-line optimization +C that has to be used. + + CHARACTER*(5) eccoVersion + CHARACTER*(5) eccoUsesCalVersion + CHARACTER*(5) eccoUsesExfVersion + CHARACTER*(5) eccoUsesAdsuppVersion + CHARACTER*(5) eccoUsesOptimVersion + + PARAMETER( eccoVersion = '0.1.0' ) + PARAMETER( eccoUsesCalVersion = '0.1.4' ) + PARAMETER( eccoUsesExfVersion = '0.1.1' ) + PARAMETER( eccoUsesAdsuppVersion = '0.1.0' ) + PARAMETER( eccoUsesOptimVersion = '2.1.0' ) + +C Experiment name: +C ================ + + COMMON /ECCO_C/ + & expId + CHARACTER*(10) expId + +C Integration information: +C ======================== +C +C nyears - number of calendar years that are affected by the +C current integration. + + COMMON /ECCO_I/ + & nyears, nmonths, ndays, numsteps, + & eccoiter, ecco_prevcall + INTEGER nyears + INTEGER nmonths + INTEGER ndays + INTEGER numsteps + INTEGER eccoiter + INTEGER ecco_prevcall + +C Averaging counters: +C =================== +C +C sum1day :: counter for the daily averaging +C sum1mon :: counter for the monthly averaging +C dayrec :: number of averaged surface pressure records. +C monrec :: number of averaged theta and salinity records. + + COMMON /AVERAGE_I/ + & sum1day,sum1mon,sum1year, + & dayrec,monrec,yearrec + INTEGER sum1day + INTEGER sum1mon + INTEGER sum1year + INTEGER dayrec + INTEGER monrec + INTEGER yearrec + +C Flags used in the model-data comparison: +C ======================================== +C +C using_ers :: flag that indicates the use of ERS data + + COMMON /ECCO_COST_DATA_FLAGS/ + & using_mdt, + & using_tpj, + & using_topex, + & using_ers, + & using_gfo, + & using_cost_altim, + & using_cost_sst, + & using_cost_seaice, + & using_cost_transp + LOGICAL using_mdt + LOGICAL using_tpj + LOGICAL using_topex + LOGICAL using_ers + LOGICAL using_gfo + LOGICAL using_cost_altim + LOGICAL using_cost_sst + LOGICAL using_cost_seaice + LOGICAL using_cost_transp + +C Record counters relevant for the cost function evaluation. +C ========================================================== +C +C nyearsrec:: number of yearly records that will be generated by +C the current model integration. +C nmonsrec :: number of monthly records that will be generated by +C the current model integration. +C ndaysrec :: number of daily records that will be generated by +C the current model integration. + + COMMON /ECCO_I/ + & nyearsrec, + & nmonsrec, + & ndaysrec + INTEGER nyearsrec + INTEGER nmonsrec + INTEGER ndaysrec + + COMMON /ECCO_R/ + & m_eta, m_UE, m_VN, m_bp, + & trVol, trHeat, trSalt, + & eccoVol_0, frame + _RL m_eta (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + _RL m_UE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL m_VN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL m_bp (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + _RL trVol (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL trHeat (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL trSalt (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL eccoVol_0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL frame (1-OLx:sNx+OLx,1-OLy:sNy+OLy ) + +#ifdef ALLOW_PSBAR_STERIC + COMMON /ECCO_R2/ + & sterGloH, + & VOLsumGlob_0, VOLsumGlob, + & RHOsumGlob_0, RHOsumGlob + _RL sterGloH + _RL VOLsumGlob_0, VOLsumGlob, RHOsumGlob_0, RHOsumGlob +#endif + +#ifdef ATMOSPHERIC_LOADING +#ifdef ALLOW_IB_CORR + COMMON /ECCO_R3/ + & m_bp_nopabar, + & m_eta_dyn + _RL m_bp_nopabar(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + _RL m_eta_dyn (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#endif + +C Two runtime parameters related to outputting sterGloH +C ecco_output_sterGloH :: output sterGloH at each time step if true +C ecco_keepTSeriesOutp_open :: keep the sterGloH file open if true + COMMON /ECCO_L/ + & ecco_output_sterGloH, ecco_keepTSeriesOutp_open + LOGICAL ecco_output_sterGloH, ecco_keepTSeriesOutp_open + +C file precision + COMMON /PREC_TYPE_COST/ + & cost_iprec + INTEGER cost_iprec + +C empty pre/post-processing : +C ========================= + COMMON /ECCO_NOGENCOST_C/ + & no_preproc, + & no_preproc_c, + & no_posproc, + & no_posproc_c, + & clim_preproc, + & anom_preproc + CHARACTER*(MAX_LEN_FNAM) no_preproc(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) no_preproc_c(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) no_posproc(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) no_posproc_c(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) clim_preproc(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) anom_preproc(NGENPPROC) + + COMMON /ECCO_NOGENCOST_R/ + & no_preproc_r, no_posproc_r + _RL no_preproc_r(NGENPPROC) + _RL no_posproc_r(NGENPPROC) + + COMMON /ECCO_NOGENCOST_I/ + & no_preproc_i, no_posproc_i, clim_preproc_i + INTEGER no_preproc_i(NGENPPROC) + INTEGER no_posproc_i(NGENPPROC) + INTEGER clim_preproc_i(NGENPPROC) + +C gencost common blocs: +C ===================== + +#ifdef ALLOW_GENCOST_CONTRIBUTION +C objf_gencost :: gencost user defined contribution + COMMON /ECCO_GENCOST_CTRL/ + & gencost_dummy + _RL gencost_dummy(NGENCOST) + + COMMON /ECCO_GENCOST_R_1/ + & objf_gencost, num_gencost, mult_gencost, gencost_storefld, + & gencost_barfld, gencost_modfld, gencost_weight, + & gencost_mskCsurf, gencost_mskWsurf, gencost_mskSsurf, + & gencost_mskVertical, +#ifdef ALLOW_GENCOST3D + & gencost_bar3d, gencost_mod3d, gencost_wei3d, + & gencost_mskC, gencost_mskW, gencost_mskS, +#endif + & gencost_refPressure, gencost_sigmaLow, gencost_sigmaHigh, + & gencost_tanhScale, + & gencost_spmin, gencost_spmax, gencost_spzero, + & gencost_period, gencost_preproc_r, gencost_posproc_r, + & gencost_wei1d, gencost_1ddata + + _RL objf_gencost(nSx,nSy,NGENCOST) + _RL num_gencost(nSx,nSy,NGENCOST) + _RL mult_gencost(NGENCOST) + _RL gencost_spmin(NGENCOST) + _RL gencost_spmax(NGENCOST) + _RL gencost_spzero(NGENCOST) + _RL gencost_period(NGENCOST) + _RL gencost_storefld(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_barfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_modfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_weight(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_mskCsurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_mskWsurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_mskSsurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & nSx,nSy,NGENCOST) + _RL gencost_mskVertical(Nr,NGENCOST) + _RL gencost_sigmaLow(NGENCOST) + _RL gencost_sigmaHigh(NGENCOST) + _RL gencost_refPressure(NGENCOST) + _RL gencost_tanhScale(NGENCOST) +#ifdef ALLOW_GENCOST3D + _RL gencost_bar3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) + _RL gencost_mod3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) + _RL gencost_wei3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) + _RL gencost_mskC(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) + _RL gencost_mskW(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) + _RL gencost_mskS(1-OLx:sNx+OLx,1-OLy:sNy+OLy, + & Nr,nSx,nSy,NGENCOST3D) +#endif + _RL gencost_preproc_r(NGENPPROC,NGENCOST) + _RL gencost_posproc_r(NGENPPROC,NGENCOST) + _RL gencost_wei1d(NGENCOST) + _RL gencost_1ddata(N1DDATA, NGENCOST) + +C gencost_kLev_select :: selected vertical level of a 3D model field to use +C to compute a cost term contribution (default = 1). +C Note: currently only used in drifter velocity cost + + COMMON /ECCO_GENCOST_I_1/ + & gencost_nrec, gencost_nrecperiod, + & gencost_flag, gencost_outputlevel, + & gencost_startdate1, gencost_startdate2, + & gencost_enddate1, gencost_enddate2, + & gencost_startdate, gencost_enddate, + & gencost_pointer3d, gencost_smooth2Ddiffnbt, + & gencost_preproc_i, gencost_posproc_i, + & gencost_msk_pointer3d, gencost_itracer, + & gencost_kLev_select + + INTEGER gencost_nrec(NGENCOST) + INTEGER gencost_nrecperiod(NGENCOST) + INTEGER gencost_flag(NGENCOST) + INTEGER gencost_outputlevel(NGENCOST) + INTEGER gencost_startdate1(NGENCOST) + INTEGER gencost_startdate2(NGENCOST) + INTEGER gencost_startdate(4,NGENCOST) + INTEGER gencost_enddate1(NGENCOST) + INTEGER gencost_enddate2(NGENCOST) + INTEGER gencost_enddate(4,NGENCOST) + INTEGER gencost_pointer3d(NGENCOST) + INTEGER gencost_smooth2Ddiffnbt(NGENCOST) + INTEGER gencost_preproc_i(NGENPPROC,NGENCOST) + INTEGER gencost_posproc_i(NGENPPROC,NGENCOST) + INTEGER gencost_msk_pointer3d(NGENCOST) + INTEGER gencost_itracer(NGENCOST) + INTEGER gencost_kLev_select(NGENCOST) + + COMMON /ECCO_GENCOST_L_1/ + & gencost_timevaryweight, gencost_barskip, + & using_gencost, gencost_is3d, gencost_msk_is3d, + & gencost_is1d, gencost_useDensityMask + LOGICAL using_gencost(NGENCOST) + LOGICAL gencost_is3d(NGENCOST) + LOGICAL gencost_is1d(NGENCOST) + LOGICAL gencost_msk_is3d(NGENCOST) + LOGICAL gencost_useDensityMask(NGENCOST) + LOGICAL gencost_timevaryweight(NGENCOST) + LOGICAL gencost_barskip(NGENCOST) + + COMMON /ECCO_GENCOST_C/ + & gencost_name, + & gencost_scalefile, + & gencost_errfile, + & gencost_datafile, + & gencost_barfile, + & gencost_avgperiod, + & gencost_preproc, + & gencost_preproc_c, + & gencost_posproc, + & gencost_posproc_c, + & gencost_mask + CHARACTER*(MAX_LEN_FNAM) gencost_name(NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_scalefile(NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_errfile(NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_datafile(NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_barfile(NGENCOST) + CHARACTER*(5) gencost_avgperiod(NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_preproc(NGENPPROC,NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_posproc_c(NGENPPROC,NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_posproc(NGENPPROC,NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_preproc_c(NGENPPROC,NGENCOST) + CHARACTER*(MAX_LEN_FNAM) gencost_mask(NGENCOST) + +#endif /* ALLOW_GENCOST_CONTRIBUTION */ + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/ecco/ECCO_OPTIONS.h b/pkg/ecco/ECCO_OPTIONS.h index 27085078b7..b27dcf229b 100644 --- a/pkg/ecco/ECCO_OPTIONS.h +++ b/pkg/ecco/ECCO_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef ECCO_OPTIONS_H +#define ECCO_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: ECCO_OPTIONS.h C !INTERFACE: @@ -10,11 +15,6 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef ECCO_OPTIONS_H -#define ECCO_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_ECCO #ifdef ECCO_CPPOPTIONS_H @@ -26,61 +26,65 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C-- Package-specific Options & Macros go here -C allow for generic cost function and integral terms +C o Allow for generic cost function and integral terms with pkg/ecco: #define ALLOW_GENCOST_CONTRIBUTION -C allow for 3 dimensional generic terms +C o Allow for 3 dimensional generic cost terms with pkg/ecco: #define ALLOW_GENCOST3D - -C include global mean steric sea level correction +C Note regarding GENCOST usage: +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ECCO_SIZE.h to +C increase NGENCOST/NGENCOST3D, and editing cost_gencost_customize.F to +C implement the actual model average (i.e. the bar file content). +# undef ALLOW_GENCOST_1D +# undef ALLOW_GENCOST_SSTV4_OUTPUT + +C o Allow Open-Boundary cost contributions +#ifdef ALLOW_OBCS +C Open-Boundary cost is meaningless without compiling pkg/obcs +C Note: Make sure that coresponding OBCS N/S/W/E Option is defined +# define ALLOW_OBCSN_COST_CONTRIBUTION +# define ALLOW_OBCSS_COST_CONTRIBUTION +# define ALLOW_OBCSW_COST_CONTRIBUTION +# define ALLOW_OBCSE_COST_CONTRIBUTION +# undef OBCS_AGEOS_COST_CONTRIBUTION +# undef OBCS_VOLFLUX_COST_CONTRIBUTION +# undef BAROTROPIC_OBVEL_CONTROL +#endif /* ALLOW_OBCS */ + +C o Set ALLOW_OBCS_COST_CONTRIBUTION (Do not edit/modify): +#if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSE_COST_CONTRIBUTION)) +# define ALLOW_OBCS_COST_CONTRIBUTION +#endif + +C o Include global mean steric sea level correction #undef ALLOW_PSBAR_STERIC -C allow for near-shore and high-latitude altimetry +#ifdef ATMOSPHERIC_LOADING +C Apply inverse barometer correction +# define ALLOW_IB_CORR +#endif +C o Allow for near-shore and high-latitude altimetry #undef ALLOW_SHALLOW_ALTIMETRY #undef ALLOW_HIGHLAT_ALTIMETRY -C allow for In-Situ Profiles cost function contribution +C o Allow for In-Situ Profiles cost function contribution #undef ALLOW_PROFILES_CONTRIBUTION -C cost function output format +C o Cost function output format #undef ALLOW_ECCO_OLD_FC_PRINT -C re-activate deprecated codes (just in case ... but not recommended) -#undef ECCO_CTRL_DEPRECATED - - - -C-- real options? - -C include dump of snap shots for checks -#undef ALLOW_SNAPSHOTS - -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< -c#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< - -#undef ALLOW_ECCO_OPTIMIZATION - -C generate more text in STDOUT.0000 +C o Generate more text in STDOUT #undef ECCO_VERBOSE +#undef ALLOW_ECCO_DEBUG -C allow cost function term for sigmaR -#undef ALLOW_SIGMAR_COST_CONTRIBUTION - - - - -C-- fake options (only used to be printed in S/R ECCO_SUMMARY): - -C allow ??? -#define ALLOW_ECCO_FORWARD_RUN -#undef ALLOW_ECCO_DIAGNOSTIC_RUN -C Just do a "dry" run ( useful for testing ). -#undef ALLOW_NO_DYNAMICS -C Use the Yearly-Monthly-Daily-Stepping call tree. -#undef ALLOW_YMDS_TREE -C Do not call stepping -#define ALLOW_STEPPING_CALL -C Projection onto Spherical Harmonics -#undef ALLOW_SPH_PROJECTION +C-- partially retired options (i.e., only used to set default switch): +# undef ALLOW_SSH_COST_CONTRIBUTION +# undef ALLOW_SST_COST_CONTRIBUTION +# undef ALLOW_SEAICE_COST_CONTRIBUTION C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/pkg/ecco/ECCO_SIZE.h b/pkg/ecco/ECCO_SIZE.h new file mode 100644 index 0000000000..8c19aeaae8 --- /dev/null +++ b/pkg/ecco/ECCO_SIZE.h @@ -0,0 +1,37 @@ +CBOP +C !ROUTINE: ECCO_SIZE.h +C !INTERFACE: +C #include ECCO_SIZE.h + +C !DESCRIPTION: \bv +C ================================================================== +C ECCO_SIZE.h +C ================================================================== +C Contains ECCO cost-term array dimension +C \ev +CEOP + +C Number of User Cost terms: +C ============================= + INTEGER NUSERCOST + PARAMETER ( NUSERCOST=10 ) + +C Number of Generic Cost terms: +C ============================= + INTEGER NGENCOST + PARAMETER ( NGENCOST=30 ) + + INTEGER NGENCOST3D +#ifdef ALLOW_GENCOST3D + PARAMETER ( NGENCOST3D=6 ) +#else + PARAMETER ( NGENCOST3D=0 ) +#endif + + INTEGER NGENPPROC + PARAMETER ( NGENPPROC=10 ) + + INTEGER N1DDATA + PARAMETER ( N1DDATA=300 ) + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/ecco/cost_averages_bar_directives.h b/pkg/ecco/cost_averages_bar_directives.h deleted file mode 100644 index 8a16cc7f85..0000000000 --- a/pkg/ecco/cost_averages_bar_directives.h +++ /dev/null @@ -1,37 +0,0 @@ -c -c store directives for cost_averagesfields -c xx_..._mean_dummy -c -c created: heimbach@mit.edu 4-Mar-2003 -c -CADJ STORE xx_psbar_mean_dummy = onetape -CADJ STORE xx_tbar_mean_dummy = onetape -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -CADJ STORE xx_sigmaRbar_mean_dummy = onetape -#endif -CADJ STORE xx_sbar_mean_dummy = onetape -CADJ STORE xx_tbar_daily_mean_dummy = onetape -CADJ STORE xx_sbar_daily_mean_dummy = onetape -CADJ STORE xx_sstbar_mean_dummy = onetape -CADJ STORE xx_ubar_mean_dummy = onetape -CADJ STORE xx_vbar_mean_dummy = onetape -CADJ STORE xx_wbar_mean_dummy = onetape -CADJ STORE xx_taux_mean_dummy = onetape -CADJ STORE xx_tauy_mean_dummy = onetape -CADJ STORE xx_hflux_mean_dummy = onetape -CADJ STORE xx_sflux_mean_dummy = onetape -CADJ STORE xx_atemp_mean_dummy = onetape -CADJ STORE xx_aqh_mean_dummy = onetape -CADJ STORE xx_precip_mean_dummy = onetape -CADJ STORE xx_swflux_mean_dummy = onetape -CADJ STORE xx_swdown_mean_dummy = onetape -CADJ STORE xx_uwind_mean_dummy = onetape -CADJ STORE xx_vwind_mean_dummy = onetape -CADJ STORE xx_smrareabar_mean_dummy = onetape -CADJ STORE xx_smrsstbar_mean_dummy = onetape -CADJ STORE xx_smrsssbar_mean_dummy = onetape -CADJ STORE xx_iestaubar_mean_dummy = onetape -#ifdef ALLOW_PROFILES -CADJ STORE profiles_dummy = tapelev_init, key = 1 -#endif - diff --git a/pkg/ecco/cost_averagesfields.F b/pkg/ecco/cost_averagesfields.F index 4aea7a6d5e..b69def02ba 100644 --- a/pkg/ecco/cost_averagesfields.F +++ b/pkg/ecco/cost_averagesfields.F @@ -1,13 +1,4 @@ #include "ECCO_OPTIONS.h" -#ifdef ALLOW_OBCS -# include "OBCS_OPTIONS.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif subroutine cost_averagesfields( mytime, mythid ) @@ -38,31 +29,9 @@ subroutine cost_averagesfields( mytime, mythid ) #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#include "GRID.h" -#include "CG2D.h" -#ifndef ECCO_CTRL_DEPRECATED -# include "ecco.h" -#else -# include "ecco_cost.h" -# ifdef ALLOW_CTRL -# include "optim.h" -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -# include "CTRL_GENARR.h" -# endif -# ifdef ALLOW_EXF -# include "EXF_FIELDS.h" -# endif -# ifdef ALLOW_SEAICE -# include "SEAICE_SIZE.h" -# include "SEAICE.h" -# include "SEAICE_COST.h" -# endif -#endif +#include "ECCO_SIZE.h" +#include "ECCO.h" c == routine arguments == @@ -72,18 +41,6 @@ subroutine cost_averagesfields( mytime, mythid ) c == local variables == integer myiter -#ifdef ECCO_CTRL_DEPRECATED - integer bi,bj - integer i,j - integer ig,jg - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer ilps, ils,ilt - integer locdayrec - logical intmp -#endif integer k logical first logical startofday @@ -104,59 +61,11 @@ subroutine cost_averagesfields( mytime, mythid ) integer genrec(NGENCOST) integer kk #endif -#if (defined (ALLOW_CTRL) && \ - defined (ALLOW_GENTIM2D_CONTROL) && \ - defined (ALLOW_PSBAR_GENPRECIP)) - _RL genprecipGloH - INTEGER iarr -#endif - -#ifdef ECCO_CTRL_DEPRECATED - - character*(128) fnamepsbar - character*(128) fnametbar - character*(128) fnamesbar - character*(128) fnameubar - character*(128) fnamevbar - character*(128) fnamewbar - character*(128) fnametauxbar - character*(128) fnametauybar - - _RL etanLeads (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - -#ifdef ALLOW_PSBAR_STERIC - Real*8 sterGloH - CHARACTER*(MAX_LEN_MBUF) msgBuf -#endif - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION - _RL iestau(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL c0mm,prmm,salmm,vtmm,tmpmm,vsmm,vpmm,vstpmm - _RL csmm(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nr,nsx,nsy) - _RL SW_TEMP -#endif c == external functions == - integer ilnblnk - external ilnblnk -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION - external SW_TEMP -#endif - c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx - -#endif /* ECCO_CTRL_DEPRECATED */ - myiter = niter0 + INT((mytime-starttime)/deltaTClock+0.5) c-- Get the time flags and record numbers for the time averaging. @@ -184,505 +93,7 @@ subroutine cost_averagesfields( mytime, mythid ) O sum1gen, genrec, I myiter, mythid ) call cost_gencost_customize( mythid ) -#endif - -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_SSH_COST_CONTRIBUTION - IF (using_cost_altim) THEN -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric psbar',myThid) -#endif - -#ifdef ALLOW_PSBAR_STERIC - sterGloH=VOLsumGlob_0/globalArea - & *(1. _d 0 - RHOsumGlob/RHOsumGlob_0) - - WRITE(msgBuf,'(A,I6,A,1PE21.14)') - & ' iter=', myiter, ' ; sterGloH= ', sterGloH - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, myThid ) -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -#if (defined (ALLOW_CTRL) && \ - defined (ALLOW_GENTIM2D_CONTROL) && \ - defined (ALLOW_PSBAR_GENPRECIP)) - genprecipGloH=0. _d 0 - do iarr = 1, maxCtrlTim2D - if (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') - & genprecipGloH=xx_gentim2d(i,j,bi,bj,iarr) - & *rhoConstFresh*recip_rhoConst*deltaTClock - enddo -#endif - - etanLeads(i,j,bi,bj)=etan(i,j,bi,bj) -#ifdef ALLOW_SEAICE - & +sIceLoad(i,j,bi,bj)*recip_rhoConst -#endif -#ifdef ALLOW_PSBAR_STERIC - & +sterGloH -#endif -#if (defined (ALLOW_CTRL) && \ - defined (ALLOW_GENTIM2D_CONTROL) && \ - defined (ALLOW_PSBAR_GENPRECIP)) - & +genprecipGloH -#endif - enddo - enddo - enddo - enddo - call cost_averagesgeneric( - & psbarfile, - & psbar, etanLeads, xx_psbar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) - ENDIF -#endif - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric sigmaRbar',myThid) -#endif - call cost_averagesgeneric( - & sigmaRbarfile, - & sigmaRbar, sigmaRfield, xx_sigmaRbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, nr, mythid ) -#endif /* ALLOW_SIGMAR_COST_CONTRIBUTION */ - -#if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDT_COST_CONTRIBUTION) || \ - defined (ALLOW_XBT_COST_CONTRIBUTION) || \ - defined (ALLOW_ARGO_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric tbar',myThid) -#endif - call cost_averagesgeneric( - & tbarfile, - & tbar, theta, xx_tbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, nr, mythid ) -#else -#ifdef ALLOW_SST_COST_CONTRIBUTION - call cost_averagesgeneric( - & tbarfile, - & tbar, theta(1-Olx,1-Oly,1,1,1), xx_tbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, 1, mythid ) -#endif -#endif - -#ifdef ALLOW_DAILYSST_COST_CONTRIBUTION - IF (using_cost_sst) THEN -cph#ifdef ALLOW_SEAICE_COST_AREASST -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric sstbar',myThid) -#endif - call cost_averagesgeneric( - & sstbarfile, - & sstbar, theta(1-Olx,1-Oly,1,1,1), xx_sstbar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) - ENDIF ! IF (using_cost_sst) THEN -#endif - -#if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDS_COST_CONTRIBUTION) || \ - defined (ALLOW_ARGO_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric sbar',myThid) -#endif - call cost_averagesgeneric( - & sbarfile, - & sbar, salt, xx_sbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, nr, mythid ) -#else -#ifdef ALLOW_SSS_COST_CONTRIBUTION - call cost_averagesgeneric( - & sbarfile, - & sbar, salt(1-Olx,1-Oly,1,1,1), xx_sbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, 1, mythid ) -#endif -#endif - -#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION - call cost_averagesgeneric( - & wbarfile, - & wbar, wvel, xx_wbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, nr, mythid ) -#endif - -#if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -cph There is a mismatch between the cost_drifer and the -cph cost_obcs usage of ubar, vbar. -cph cost_obcs refers to monthly means, cost_drifer to total mean. -cph Needs to be updated for cost_obcs!!!. -c-- Next, do the averages for velocitty. - if (first.or.startofmonth) then - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - ubar(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) - vbar(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - else if (last .or. endofmonth) then - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - ubar(i,j,k,bi,bj) = (ubar (i,j,k,bi,bj) + - & uVel(i,j,k,bi,bj) )/ - & float(sum1mon) - vbar(i,j,k,bi,bj) = (vbar (i,j,k,bi,bj) + - & vVel(i,j,k,bi,bj) )/ - & float(sum1mon) - enddo - enddo - enddo - enddo - enddo - -c-- Save ubar and vbar. - if (optimcycle .ge. 0) then - ils=ilnblnk( ubarfile ) - write(fnameubar,'(2a,i10.10)') ubarfile(1:ils),'.', - & optimcycle - write(fnamevbar,'(2a,i10.10)') vbarfile(1:ils),'.', - & optimcycle - endif - call active_write_xyz( fnameubar, ubar, monrec, optimcycle, - & mythid, xx_ubar_mean_dummy) - - call active_write_xyz( fnamevbar, vbar, monrec, optimcycle, - & mythid, xx_vbar_mean_dummy) - -ce , myiter, mytime ) - - else if ( ( inmonth ) .and. - & .not. (first .or. startofmonth) .and. - & .not. (last .or. endofmonth ) ) then -c-- Accumulate ubar and vbar. - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - ubar(i,j,k,bi,bj) = ubar (i,j,k,bi,bj) + - & uVel (i,j,k,bi,bj) - vbar(i,j,k,bi,bj) = vbar (i,j,k,bi,bj) + - & vVel (i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - else - stop ' ... stopped in cost_averagesfields; ubar part.' - endif - -#endif - - IF (using_cost_scat) THEN -#ifdef ALLOW_SCAT_COST_CONTRIBUTION -c-- Next, do the averages for velocitty. - if (first.or. startofmonth) then - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - tauxbar(i,j,bi,bj) = ustress(i,j,bi,bj) - tauybar(i,j,bi,bj) = vstress(i,j,bi,bj) - enddo - enddo - enddo - enddo - else if (last .or. endofmonth) then - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - tauxbar(i,j,bi,bj) = (tauxbar (i,j,bi,bj) + - & ustress(i,j,bi,bj) )/ - & float(sum1mon) - tauybar(i,j,bi,bj) = (tauybar (i,j,bi,bj) + - & vstress(i,j,bi,bj) )/ - & float(sum1mon) - enddo - enddo - enddo - enddo - -c-- Save ubar and vbar. - if (optimcycle .ge. 0) then - ils=ilnblnk( tauxbarfile ) - write(fnametauxbar,'(2a,i10.10)') tauxbarfile(1:ils),'.', - & optimcycle - ils=ilnblnk( tauybarfile ) - write(fnametauybar,'(2a,i10.10)') tauybarfile(1:ils),'.', - & optimcycle - endif - - call active_write_xy( fnametauxbar, tauxbar, monrec, optimcycle, - & mythid, xx_taux_mean_dummy) - - call active_write_xy( fnametauybar, tauybar, monrec, optimcycle, - & mythid, xx_tauy_mean_dummy) - - - else if ( .not. (first.or. startofmonth) .and. - & .not. (last .or. endofmonth) ) then -c-- Accumulate ubar and vbar. - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - tauxbar(i,j,bi,bj) = tauxbar (i,j,bi,bj) + - & ustress (i,j,bi,bj) - tauybar(i,j,bi,bj) = tauybar (i,j,bi,bj) + - & vstress (i,j,bi,bj) - enddo - enddo - enddo - enddo - else - stop ' ... stopped in cost_averagesfields; tauxbar part.' - endif - -#else -#ifdef ALLOW_DAILYSCAT_COST_CONTRIBUTION - call cost_averagesgeneric( - & tauxbarfile, - & tauxbar, ustress, xx_taux_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) - call cost_averagesgeneric( - & tauybarfile, - & tauybar, vstress, xx_tauy_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) -#endif -#endif - ENDIF ! IF (using_cost_scat) THEN - -#ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION -cph: this is one mean over whole integration: -c intmp = (.NOT. first) .and. (.NOT. last) -c call cost_averagesgeneric( -c & hfluxmeanbarfile, -c & hfluxmeanbar, qnet, xx_hflux_mean_dummy, -c & first, last, .false., .false., intmp, -c & ntimesteps, 1, 1, mythid ) -cph: switch to annual means: -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric hfluxmeanbar',myThid) -#endif - call cost_averagesgeneric( - & hfluxmeanbarfile, - & hfluxmeanbar, qnet, xx_hflux_mean_dummy, - & first, last, startofyear, endofyear, inyear, - & sum1year, yearrec, 1, mythid ) -#endif - -#ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION -cph: these are annual means -# ifndef ALLOW_SEAICE -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric sfluxmeanbar',myThid) -#endif - call cost_averagesgeneric( - & sfluxmeanbarfile, - & sfluxmeanbar, empmr, xx_sflux_mean_dummy, - & first, last, startofyear, endofyear, inyear, - & sum1year, yearrec, 1, mythid ) -# else -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric sfluxmeanbar',myThid) -#endif - call cost_averagesgeneric( - & sfluxmeanbarfile, - & sfluxmeanbar, frWtrAtm, xx_sflux_mean_dummy, - & first, last, startofyear, endofyear, inyear, - & sum1year, yearrec, 1, mythid ) -# endif -#endif - -#ifdef ALLOW_BP_COST_CONTRIBUTION - IF (using_cost_bp) call cost_averagesgeneric( - & bpbarfile, - & bpbar, phiHydLow, xx_bpbar_mean_dummy, - & first, last, startofmonth, endofmonth, inmonth, - & sum1mon, monrec, 1, mythid ) -#endif - -#ifdef ALLOW_SEAICE - if (useSEAICE) then -# ifdef ALLOW_SEAICE_COST_SMR_AREA -c -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric smrareabar',myThid) -#endif - call cost_averagesgeneric( - & smrareabarfile, - & smrareabar, area, xx_smrareabar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) -c -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric smrsstbar',myThid) -#endif - call cost_averagesgeneric( - & smrsstbarfile, - & smrsstbar, theta(1-Olx,1-Oly,1,1,1), - & xx_smrsstbar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) -c -#ifdef ALLOW_DEBUG - IF ( debugMode ) - & CALL DEBUG_CALL('cost_averagesgeneric smrsssbar',myThid) -#endif - call cost_averagesgeneric( - & smrsssbarfile, - & smrsssbar, salt(1-Olx,1-Oly,1,1,1), - & xx_smrsssbar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) -c -# endif - endif -#endif /* ALLOW_SEAICE */ - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION -cmm First need to determine sound speed for each cell - c0mm=1402.392 - prmm = 0.0 - salmm = 0.0 - vtmm = 0.0 - tmpmm = 0.0 - vsmm = 0.0 - vpmm = 0.0 - vstpmm = 0.0 - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - iestau(i,j,bi,bj) = 0.0 - enddo - enddo - enddo - enddo - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - csmm(i,j,k,bi,bj) = 0.0 - enddo - enddo - enddo - enddo - enddo - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - if (hFacC(i,j,k,bi,bj).gt.0.0) then - prmm = totPhiHyd(i,j,k,bi,bj)/gravity - & -rC(k) - tmpmm = SW_TEMP(SALT(i,j,k,bi,bj), - & THETA(i,j,k,bi,bj),prmm,0. _d 0) - prmm = rhoConst*( - & totPhiHyd(i,j,k,bi,bj) - & -rC(k)*gravity ) -cmm convert pressure to kg/cm^2 for compliance with aog_vsdg script - prmm = prmm*0.0001/gravity - salmm = SALT(i,j,k,bi,bj) - vtmm = (5.01109398873-(0.0550946843172 - & - 0.000221535969240*tmpmm)*tmpmm)*tmpmm - vsmm=(1.32952290781 + 0.000128955756844*salmm)*salmm - vpmm=(0.156059257041 + (0.0000244998688441 - & - 0.00000000883392332513*prmm)*prmm)*prmm - vstpmm=-0.0127562783426*tmpmm*salmm - & + 0.00635191613389*tmpmm*prmm - & + 0.0000000265484716608*tmpmm*tmpmm*prmm*prmm - & - 0.00000159349479045*tmpmm*prmm*prmm - & + 0.000000000522116437235*tmpmm*prmm*prmm*prmm - & - 0.000000438031096213*tmpmm*tmpmm*tmpmm*prmm - & - 0.00000000161674495909*salmm*salmm*prmm*prmm - & + 0.0000968403156410*tmpmm*tmpmm*salmm - & + 0.00000485639620015*tmpmm*salmm*salmm*prmm - & - 0.000340597039004*tmpmm*salmm*prmm - csmm(i,j,k,bi,bj) = c0mm+vtmm+vsmm+vpmm+vstpmm - endif - enddo - enddo - enddo - enddo - enddo -CMM now integrate to get round trip travel time - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - if (csmm(i,j,k,bi,bj).ne.0.0) then - iestau(i,j,bi,bj) = iestau(i,j,bi,bj) - & + 2*drF(k)*hFacC(i,j,k,bi,bj) - & /csmm(i,j,k,bi,bj) - if (k.eq.1) then - iestau(i,j,bi,bj) = iestau(i,j,bi,bj) - & + 2*etaN(i,j,bi,j) - & /csmm(i,j,k,bi,bj) - endif - endif - enddo - enddo - enddo - enddo - enddo -cmm accumulate average - call cost_averagesgeneric( - & iestaubarfile, - & iestaubar, iestau(1-Olx,1-Oly,1,1), - & xx_iestaubar_mean_dummy, - & first, last, startofday, endofday, inday, - & sum1day, dayrec, 1, mythid ) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - -#ifdef ALLOW_GENCOST_CONTRIBUTION do k = 1, NGENCOST if ( (using_gencost(k)).AND.(.NOT.gencost_barskip(k)) ) then if ( .NOT.gencost_is3d(k) ) then @@ -712,56 +123,6 @@ subroutine cost_averagesfields( mytime, mythid ) end do #endif /* ALLOW_GENCOST_CONTRIBUTION */ -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION -c-- Currently hard-coded Florida Strait transport for 1x1 deg. -c-- ECCO-GODAE version 1,2,3 -c-- Next, do the averages for velocitty. -cph For some funny reason cal only increments dayrec at the end -cph of the day, i.e. for endofday.EQ.T -cph Should fix/change this at some point. -cph In the mean time increment ad hoc during day - locdayrec = 0 - if (last .or. endofday) then - locdayrec = dayrec - else - locdayrec = dayrec+1 - endif - do bj = jtlo,jthi - do bi = itlo,ithi - if (first.or.startofday) - & transpbar(locdayrec,bi,bj) = 0. _d 0 - do k = 1,nr - do j = jmin,jmax - jg = myYGlobalLo-1+(bj-1)*sNy+j - do i = imin,imax - ig = myXGlobalLo-1+(bi-1)*sNx+i - if ( jg.EQ.106 .AND. ig.GE.280 .AND. ig.LE.285 ) then - transpbar(locdayrec,bi,bj) = transpbar(locdayrec,bi,bj) - & +vVel(i,j,k,bi,bj) - & *_dxG(i,j,bi,bj)*drF(k)*_hFacS(i,j,k,bi,bj) - endif - enddo - enddo - enddo - if (last .or. endofday) then - transpbar(locdayrec,bi,bj) = - & transpbar(locdayrec,bi,bj)/float(sum1day) - endif - enddo - enddo -#endif - -c#ifdef ALLOW_COST_ATLANTIC -c-- Compute meridional heat transport -c call timer_start('cost_atlantic [ECCO SPIN-DOWN]', mythid) -c call cost_atlantic( mytime, myiter,mythid ) -c call timer_stop ('cost_atlantic [ECCO SPIN-DOWN]', mythid) -c#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_DEBUG IF ( debugMode ) CALL DEBUG_LEAVE('cost_averagesfields',myThid) #endif diff --git a/pkg/ecco/cost_averagesgeneric.F b/pkg/ecco/cost_averagesgeneric.F index dd5bd65008..2fe1dc5228 100644 --- a/pkg/ecco/cost_averagesgeneric.F +++ b/pkg/ecco/cost_averagesgeneric.F @@ -4,7 +4,7 @@ subroutine cost_averagesgeneric( & localbarfile, & localbar, localfld, xx_localbar_mean_dummy, & first, last, startofloc, endofloc, inloc, - & sum1loc, locrec, nnz, mythid ) + & sum1loc, locrec, nnz, myThid ) c ================================================================== c SUBROUTINE cost_averagesgeneric @@ -25,18 +25,19 @@ subroutine cost_averagesgeneric( #include "PARAMS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - integer mythid + integer myThid integer nnz integer locrec integer sum1loc - _RL localbar(1-olx:snx+olx,1-oly:sny+oly,nnz,nsx,nsy) - _RL localfld(1-olx:snx+olx,1-oly:sny+oly,nnz,nsx,nsy) + _RL localbar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnz,nSx,nSy) + _RL localfld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnz,nSx,nSy) _RL xx_localbar_mean_dummy logical first @@ -73,39 +74,39 @@ subroutine cost_averagesgeneric( #ifdef ALLOW_ECCO_DEBUG write(msgbuf,'(a)') '>> entering' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) il=ilnblnk( localbarfile ) write(msgbuf,'(a,a)') & 'cost_averagesgeneric, file : ',localbarfile(1:il) call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,5L5)') & 'cost_averagesgeneric, logicals : ', & first, last, startofloc, endofloc, inloc call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a,3i5)') & 'cost_averagesgeneric, integers : ', & sum1loc, locrec, nnz call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) write(msgbuf,'(a)') '<< leaving' call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT , myThid) #endif - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx if (startofloc .and. endofloc) then c-- Save snapshot at every time step @@ -121,17 +122,16 @@ subroutine cost_averagesgeneric( enddo enddo c-- Save ...bar on file. - write(fname(1:128),'(80a)') ' ' il=ilnblnk( localbarfile ) write(fname,'(2a,i10.10)') & localbarfile(1:il), '.', eccoiter #ifdef ALLOW_AUTODIFF if ( nnz .EQ. 1 ) then call active_write_xy( fname, localbar, locrec, eccoiter, - & mythid, xx_localbar_mean_dummy ) + & myThid, xx_localbar_mean_dummy ) else call active_write_xyz( fname, localbar, locrec, eccoiter, - & mythid, xx_localbar_mean_dummy ) + & myThid, xx_localbar_mean_dummy ) endif #else if ( nnz .EQ. 1 ) then @@ -171,17 +171,16 @@ subroutine cost_averagesgeneric( enddo enddo c-- Save ...bar on file. - write(fname(1:128),'(80a)') ' ' il=ilnblnk( localbarfile ) write(fname,'(2a,i10.10)') & localbarfile(1:il), '.', eccoiter #ifdef ALLOW_AUTODIFF if ( nnz .EQ. 1 ) then call active_write_xy( fname, localbar, locrec, eccoiter, - & mythid, xx_localbar_mean_dummy ) + & myThid, xx_localbar_mean_dummy ) else call active_write_xyz( fname, localbar, locrec, eccoiter, - & mythid, xx_localbar_mean_dummy ) + & myThid, xx_localbar_mean_dummy ) endif #else if ( nnz .EQ. 1 ) then @@ -212,4 +211,3 @@ subroutine cost_averagesgeneric( return end - diff --git a/pkg/ecco/cost_averagesinit.F b/pkg/ecco/cost_averagesinit.F index 521c1c98d1..ee1153f45d 100644 --- a/pkg/ecco/cost_averagesinit.F +++ b/pkg/ecco/cost_averagesinit.F @@ -1,10 +1,4 @@ #include "ECCO_OPTIONS.h" -#ifdef ALLOW_SEAICE -# include "SEAICE_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif subroutine cost_averagesinit( mythid ) @@ -33,16 +27,8 @@ subroutine cost_averagesinit( mythid ) #include "EEPARAMS.h" #include "SIZE.h" - -#include "ecco_cost.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -#endif +#include "ECCO_SIZE.h" +#include "ECCO.h" c == routine arguments == @@ -51,27 +37,22 @@ subroutine cost_averagesinit( mythid ) c == local variables == integer bi,bj - integer i,j,k,kk - integer itlo,ithi - integer jtlo,jthi integer jmin,jmax integer imin,imax - integer irec +#ifdef ALLOW_GENCOST_CONTRIBUTION + integer i,j,k,kk +#endif c == end of interface == c-- Set the loop ranges. - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) jmin = 1 jmax = sny imin = 1 imax = snx - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = mybylo(mythid), mybyhi(mythid) + do bi = mybxlo(mythid), mybxhi(mythid) #ifdef ALLOW_GENCOST_CONTRIBUTION do k=1,NGENCOST @@ -94,209 +75,11 @@ subroutine cost_averagesinit( mythid ) enddo enddo enddo -#endif -#endif - -#ifdef ALLOW_SSH_COST_CONTRIBUTION -c-- Initialise surface pressure average. - do j = jmin,jmax - do i = imin,imax - psbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - - xx_psbar_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_BP_COST_CONTRIBUTION -c-- Initialise surface pressure average. - do j = jmin,jmax - do i = imin,imax - bpbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - - xx_bpbar_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION -c-- Initialize roundtrip travel time average - do j = jmin,jmax - do i = imin,imax - iestaubar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_iestaubar_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -c-- Initialise sigmaR average (3d). - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - sigmaRbar(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - xx_sigmaRbar_mean_dummy = 0. _d 0 - nnzsigmaRbar = nr -#endif - -#if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDT_COST_CONTRIBUTION) || \ - defined (ALLOW_XBT_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -c-- Initialise temperature average (3d). - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - tbar(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - xx_tbar_mean_dummy = 0. _d 0 - nnztbar = nr -#else -#ifdef ALLOW_SST_COST_CONTRIBUTION -c-- Initialise temperature average (2d). - k = 1 - do j = jmin,jmax - do i = imin,imax - tbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_tbar_mean_dummy = 0. _d 0 - nnztbar = 1 -#endif -#endif - -#ifdef ALLOW_DAILYSST_COST_CONTRIBUTION -cph#ifdef ALLOW_SEAICE_COST_AREASST -c-- Initialise temperature average (2d). - do j = jmin,jmax - do i = imin,imax - sstbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_sstbar_mean_dummy = 0. _d 0 -#endif - -#if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDS_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -c-- Initialise salt average. - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - sbar(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - xx_sbar_mean_dummy = 0. _d 0 - nnzsbar = nr -#else -#ifdef ALLOW_SSS_COST_CONTRIBUTION -c-- Initialise salinity average (2d). - k = 1 - do j = jmin,jmax - do i = imin,imax - sbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_sbar_mean_dummy = 0. _d 0 - nnzsbar = 1 -#endif -#endif - -#if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -c-- Initialise uvel, vvel average. - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - ubar(i,j,k,bi,bj) = 0. _d 0 - vbar(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - xx_ubar_mean_dummy = 0. _d 0 - xx_vbar_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION -c-- Initialise uvel, vvel average. - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - wbar(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - xx_wbar_mean_dummy = 0. _d 0 -#endif - -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) -c-- Initialise salinity average (2d). - do j = jmin,jmax - do i = imin,imax - tauxbar(i,j,bi,bj) = 0. _d 0 - tauybar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_taux_mean_dummy = 0. _d 0 - xx_tauy_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION -c-- Initialise salinity average (2d). - do j = jmin,jmax - do i = imin,imax - hfluxmeanbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_hflux_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION -c-- Initialise salinity average (2d). - do j = jmin,jmax - do i = imin,imax - sfluxmeanbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_sflux_mean_dummy = 0. _d 0 -#endif - -#ifdef ALLOW_SEAICE - -# ifdef ALLOW_SEAICE_COST_SMR_AREA -c-- Initialise salinity average (2d). - do j = jmin,jmax - do i = imin,imax - smrareabar(i,j,bi,bj) = 0. _d 0 - smrsstbar(i,j,bi,bj) = 0. _d 0 - smrsssbar(i,j,bi,bj) = 0. _d 0 - enddo - enddo - xx_smrareabar_mean_dummy = 0. _d 0 - xx_smrsstbar_mean_dummy = 0. _d 0 - xx_smrsssbar_mean_dummy = 0. _d 0 -# endif - -#endif - -#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION - do irec = 1, ndaysrec - transpbar(irec,bi,bj) = 0. _d 0 - enddo -#endif +#endif /* ALLOW_GENCOST3D */ +#endif /* ALLOW_GENCOST_CONTRIBUTION */ enddo enddo return end - diff --git a/pkg/ecco/cost_bp_read.F b/pkg/ecco/cost_bp_read.F index 04591aee36..4ab1c7b115 100644 --- a/pkg/ecco/cost_bp_read.F +++ b/pkg/ecco/cost_bp_read.F @@ -3,7 +3,7 @@ subroutine cost_bp_read( I localobsfile, localstartdate, O localobs, localmask, - I irec,myThid) + I irec, myThid ) c ================================================================== c SUBROUTINE cost_bp_read @@ -30,11 +30,11 @@ subroutine cost_bp_read( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco_cost.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - character*(MAX_LEN_FNAM) localobsfile integer localstartdate(4) _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -43,47 +43,31 @@ subroutine cost_bp_read( integer myThid #ifdef ALLOW_ECCO +c == external functions == + integer ilnblnk + external ilnblnk c == local variables == - integer bi,bj integer i,j,k - integer itlo,ithi - integer jtlo,jthi integer jmin,jmax integer imin,imax integer nobs - integer bprec - integer beginbp - integer beginrun - INTEGER beginlocal, beginmodel, obsrec - _RL spval - _RL vartile - cnew( integer il integer mody, modm integer iyear, imonth - character*(80) fnametmp + character*(MAX_LEN_FNAM) fnametmp logical exst cnew) -c == external functions == - - integer ilnblnk - external ilnblnk - c == end of interface == parameter (spval = -998. ) ce --> there is certainly a better place for this. - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) jmin = 1 jmax = sNy imin = 1 @@ -102,11 +86,11 @@ subroutine cost_bp_read( imonth = 1 + MOD(modm-1+irec-1,12) il=ilnblnk(localobsfile) - write(fnametmp(1:80),'(2a,i4)') + write(fnametmp,'(2a,i4)') & localobsfile(1:il), '_', iyear inquire( file=fnametmp, exist=exst ) if (.NOT. exst) then - write(fnametmp(1:80),'(a)') localobsfile(1:il) + write(fnametmp,'(a)') localobsfile(1:il) imonth = obsrec endif @@ -114,8 +98,8 @@ subroutine cost_bp_read( CALL READ_REC_3D_RL( fnametmp, cost_iprec, 1, & localobs, imonth, 0, myThid ) else - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) do j = jmin,jmax do i = imin,imax localobs(i,j,bi,bj) = spval @@ -127,8 +111,8 @@ subroutine cost_bp_read( nobs = 0 - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) k = 1 do j = jmin,jmax do i = imin,imax diff --git a/pkg/ecco/cost_forcing.F b/pkg/ecco/cost_forcing.F deleted file mode 100644 index 6ff93e5994..0000000000 --- a/pkg/ecco/cost_forcing.F +++ /dev/null @@ -1,415 +0,0 @@ -#include "ECCO_OPTIONS.h" - - - subroutine cost_forcing( mythid ) - -c ================================================================== -c SUBROUTINE cost_forcing -c ================================================================== -c -c o Evaluate cost function contributions of surface flux forcing. -c Now, these are heat flux, salt flux, zonal and meridional wind -c stress. -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c -c changed: Christian Eckert eckert@mit.edu 25-Feb-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c ================================================================== -c SUBROUTINE cost_forcing -c ================================================================== - - implicit none - -c == global variables == - -#ifdef ECCO_CTRL_DEPRECATED -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" - -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif -#ifdef ALLOW_ECCO -# include "ecco_cost.h" -#endif -#ifdef ALLOW_EXF -# include "EXF_PARAM.h" -#endif -#endif - -c == routine arguments == - - integer mythid - -c == local variables == - -#if (defined (ALLOW_ECCO) && defined (ALLOW_CTRL)&& defined (ECCO_CTRL_DEPRECATED)) - - integer startrec - integer endrec - -#ifndef ALLOW_EXF - LOGICAL useAtmWind - PARAMETER ( useAtmWind = .TRUE. ) -#endif - - logical dodimensionalcost2D - -c == end of interface == - - dodimensionalcost2D=.NOT.ctrlSmoothCorrel2D - -c-- Evaluate the individual cost function contributions. - -#if (defined (ALLOW_HFLUX_COST_CONTRIBUTION) && \ - defined (ALLOW_HFLUX_CONTROL)) -c-- Heat flux contribution to the cost function. - startrec = ncvarrecstart(3) - endrec = ncvarrecsend(3) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_hflux_file, xx_hflux_dummy, xx_hfluxperiod, - & whflux, dodimensionalcost2D, - & num_hflux, - & objf_hflux, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_hflux, num_hfluxm, - & objf_hfluxm, objf_hfluxsmoo, - & xx_hflux_remo_intercept, xx_hflux_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#elif (defined (ALLOW_ATEMP_COST_CONTRIBUTION) && \ - defined (ALLOW_ATEMP_CONTROL)) - if (.NOT.ctrlUseGen) then -c-- Atmos. temp. contribution to the cost function. - startrec = ncvarrecstart(7) - endrec = ncvarrecsend(7) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_atemp_file, xx_atemp_dummy, xx_atempperiod, - & watemp, dodimensionalcost2D, - & num_atemp, - & objf_atemp, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_atemp, num_atempm, - & objf_atempm, objf_atempsmoo, - & xx_atemp_remo_intercept, xx_atemp_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - endif -#endif - -#if (defined (ALLOW_SFLUX_COST_CONTRIBUTION) && \ - defined (ALLOW_SFLUX_CONTROL)) -c-- Salt flux contribution to the cost function. - startrec = ncvarrecstart(4) - endrec = ncvarrecsend(4) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_sflux_file, xx_sflux_dummy, xx_sfluxperiod, - & wsflux, dodimensionalcost2D, - & num_sflux, - & objf_sflux, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_sflux, num_sfluxm, - & objf_sfluxm, objf_sfluxsmoo, - & xx_sflux_remo_intercept, xx_sflux_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#elif (defined (ALLOW_AQH_COST_CONTRIBUTION) && \ - defined (ALLOW_AQH_CONTROL)) - if (.NOT.ctrlUseGen) then -c-- Specific humidity contribution to the cost function. - startrec = ncvarrecstart(8) - endrec = ncvarrecsend(8) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_aqh_file, xx_aqh_dummy, xx_aqhperiod, - & waqh, dodimensionalcost2D, - & num_aqh, - & objf_aqh, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_aqh, num_aqhm, - & objf_aqhm, objf_aqhsmoo, - & xx_aqh_remo_intercept, xx_aqh_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - endif -#endif - -#if (defined (ALLOW_USTRESS_COST_CONTRIBUTION )&& \ - defined (ALLOW_USTRESS_CONTROL)) - IF ( (.NOT.useAtmWind).AND.(.NOT.ctrlUseGen) ) THEN -c-- Zonal wind stress contribution to the cost function. - startrec = ncvarrecstart(5) - endrec = ncvarrecsend(5) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_tauu_file, xx_tauu_dummy, xx_tauuperiod, - & wtauu, dodimensionalcost2D, - & num_tauu, - & objf_tauu, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_tau, num_tauum, - & objf_tauum, objf_tauusmoo, - & xx_tauu_remo_intercept, xx_tauu_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskW, mythid ) - ENDIF -#endif - -#if (defined (ALLOW_UWIND_COST_CONTRIBUTION )&& \ - defined (ALLOW_UWIND_CONTROL)) - IF ( useAtmWind ) THEN -c-- Zonal wind speed contribution to the cost function. - startrec = ncvarrecstart(9) - endrec = ncvarrecsend(9) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_uwind_file, xx_uwind_dummy, xx_uwindperiod, - & wuwind, dodimensionalcost2D, - & num_uwind, - & objf_uwind, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_wind, num_uwindm, - & objf_uwindm, objf_uwindsmoo, - & xx_uwind_remo_intercept, xx_uwind_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - ENDIF -#endif - -#if (defined (ALLOW_VSTRESS_COST_CONTRIBUTION) && \ - defined (ALLOW_VSTRESS_CONTROL)) - IF ( (.NOT.useAtmWind).AND.(.NOT.ctrlUseGen) ) THEN -c-- Meridional wind stress contribution to the cost function. - startrec = ncvarrecstart(6) - endrec = ncvarrecsend(6) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_tauv_file, xx_tauv_dummy, xx_tauvperiod, - & wtauv, dodimensionalcost2D, - & num_tauv, - & objf_tauv, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_tau, num_tauvm, - & objf_tauvm, objf_tauvsmoo, - & xx_tauv_remo_intercept, xx_tauv_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskS, mythid ) - ENDIF -#endif - -#if (defined (ALLOW_VWIND_COST_CONTRIBUTION) && \ - defined (ALLOW_VWIND_CONTROL)) - IF ( useAtmWind ) THEN -c-- Meridional wind speed contribution to the cost function. - startrec = ncvarrecstart(10) - endrec = ncvarrecsend(10) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_vwind_file, xx_vwind_dummy, xx_vwindperiod, - & wvwind, dodimensionalcost2D, - & num_vwind, - & objf_vwind, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_wind, num_vwindm, - & objf_vwindm, objf_vwindsmoo, - & xx_vwind_remo_intercept, xx_vwind_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - ENDIF -#endif - -#if (defined (ALLOW_PRECIP_COST_CONTRIBUTION) && \ - defined (ALLOW_PRECIP_CONTROL)) - if (.NOT.ctrlUseGen) then -c-- Atmos. precip. contribution to the cost function. - startrec = ncvarrecstart(32) - endrec = ncvarrecsend(32) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_precip_file, xx_precip_dummy, xx_precipperiod, - & wprecip, dodimensionalcost2D, - & num_precip, - & objf_precip, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_precip, num_precipm, - & objf_precipm, objf_precipsmoo, - & xx_precip_remo_intercept, xx_precip_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - endif -#endif - -#if (defined (ALLOW_SWFLUX_COST_CONTRIBUTION) && \ - defined (ALLOW_SWFLUX_CONTROL)) -c-- Atmos. swflux. contribution to the cost function. - startrec = ncvarrecstart(33) - endrec = ncvarrecsend(33) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_swflux_file, xx_swflux_dummy, xx_swfluxperiod, - & wswflux, dodimensionalcost2D, - & num_swflux, - & objf_swflux, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_swflux, num_swfluxm, - & objf_swfluxm, objf_swfluxsmoo, - & xx_swflux_remo_intercept, xx_swflux_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#if (defined (ALLOW_SWDOWN_COST_CONTRIBUTION) && \ - defined (ALLOW_SWDOWN_CONTROL)) - if (.NOT.ctrlUseGen) then -c-- Atmos. swdown. contribution to the cost function. - startrec = ncvarrecstart(34) - endrec = ncvarrecsend(34) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_swdown_file, xx_swdown_dummy, xx_swdownperiod, - & wswdown, dodimensionalcost2D, - & num_swdown, - & objf_swdown, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_swdown, num_swdownm, - & objf_swdownm, objf_swdownsmoo, - & xx_swdown_remo_intercept, xx_swdown_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - endif -#endif - -#if (defined (ALLOW_LWFLUX_COST_CONTRIBUTION) && \ - defined (ALLOW_LWFLUX_CONTROL)) -c-- Atmos. lwflux. contribution to the cost function. - startrec = ncvarrecstart(35) - endrec = ncvarrecsend(35) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_lwflux_file, xx_lwflux_dummy, xx_lwfluxperiod, - & wlwflux, dodimensionalcost2D, - & num_lwflux, - & objf_lwflux, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_lwflux, num_lwfluxm, - & objf_lwfluxm, objf_lwfluxsmoo, - & xx_lwflux_remo_intercept, xx_lwflux_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#if (defined (ALLOW_LWDOWN_COST_CONTRIBUTION) && \ - defined (ALLOW_LWDOWN_CONTROL)) - if (.NOT.ctrlUseGen) then -c-- Atmos. lwdown. contribution to the cost function. - startrec = ncvarrecstart(36) - endrec = ncvarrecsend(36) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_lwdown_file, xx_lwdown_dummy, xx_lwdownperiod, - & wlwdown, dodimensionalcost2D, - & num_lwdown, - & objf_lwdown, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_lwdown, num_lwdownm, - & objf_lwdownm, objf_lwdownsmoo, - & xx_lwdown_remo_intercept, xx_lwdown_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) - endif -#endif - -#if (defined (ALLOW_EVAP_COST_CONTRIBUTION) && \ - defined (ALLOW_EVAP_CONTROL)) -c-- Atmos. evap. contribution to the cost function. - startrec = ncvarrecstart(37) - endrec = ncvarrecsend(37) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_evap_file, xx_evap_dummy, xx_evapperiod, - & wevap, dodimensionalcost2D, - & num_evap, - & objf_evap, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_evap, num_evapm, - & objf_evapm, objf_evapsmoo, - & xx_evap_remo_intercept, xx_evap_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#if (defined (ALLOW_SNOWPRECIP_COST_CONTRIBUTION) && \ - defined (ALLOW_SNOWPRECIP_CONTROL)) -c-- Atmos. snowprecip. contribution to the cost function. - startrec = ncvarrecstart(38) - endrec = ncvarrecsend(38) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_snowprecip_file, xx_snowprecip_dummy, xx_snowprecipperiod, - & wsnowprecip, dodimensionalcost2D, - & num_snowprecip, - & objf_snowprecip, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_snowprecip, num_snowprecipm, - & objf_snowprecipm, objf_snowprecipsmoo, - & xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#if (defined (ALLOW_APRESSURE_COST_CONTRIBUTION) && \ - defined (ALLOW_APRESSURE_CONTROL)) -c-- Atmos. apressure. contribution to the cost function. - startrec = ncvarrecstart(39) - endrec = ncvarrecsend(39) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_apressure_file, xx_apressure_dummy, xx_apressureperiod, - & wapressure, dodimensionalcost2D, - & num_apressure, - & objf_apressure, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_apressure, num_apressurem, - & objf_apressurem, objf_apressuresmoo, - & xx_apressure_remo_intercept, xx_apressure_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#if (defined (ALLOW_RUNOFF_COST_CONTRIBUTION) && \ - defined (ALLOW_RUNOFF_CONTROL)) -c-- Atmos. runoff. contribution to the cost function. - startrec = ncvarrecstart(40) - endrec = ncvarrecsend(40) - call ctrl_cost_gen2d ( - & startrec, endrec, - & xx_runoff_file, xx_runoff_dummy, xx_runoffperiod, - & wrunoff, dodimensionalcost2D, - & num_runoff, - & objf_runoff, -#ifdef ECCO_CTRL_DEPRECATED - & wmean_runoff, num_runoffm, - & objf_runoffm, objf_runoffsmoo, - & xx_runoff_remo_intercept, xx_runoff_remo_slope, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, mythid ) -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - - return - end diff --git a/pkg/ecco/cost_gencal.F b/pkg/ecco/cost_gencal.F index 9330e7c2a2..2ae2e9cb6b 100644 --- a/pkg/ecco/cost_gencal.F +++ b/pkg/ecco/cost_gencal.F @@ -10,7 +10,6 @@ subroutine cost_gencal( O fname1, fname2, localrec, obsrec, exst, I mythid ) - C !DESCRIPTION: \bv C ================================================================== C SUBROUTINE cost_gencal @@ -32,25 +31,27 @@ subroutine cost_gencal( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - - integer mythid, irec, localstartdate(4) - _RL localperiod character*(MAX_LEN_FNAM) localbarfile character*(MAX_LEN_FNAM) localobsfile + integer irec, localstartdate(4) + _RL localperiod character*(128) fname1, fname2 integer localrec, obsrec - + logical exst + integer mythid #ifdef ALLOW_ECCO +c == external functions == + integer ilnblnk + external ilnblnk c == local variables == - c CHARACTER*(MAX_LEN_MBUF) msgBuf - integer k, il _RL daytime _RL diffsecs @@ -62,21 +63,12 @@ subroutine cost_gencal( integer yday, ymod integer md, dd, sd, ld, wd integer mody, modm - integer beginmodel, beginlocal - logical exst - -c == external functions == - - integer ilnblnk - external ilnblnk c == end of interface == - CEOP - write(fname1(1:128),'(80a)') ' ' il=ilnblnk( localbarfile ) - write(fname1(1:128),'(2a,i10.10)') + write(fname1,'(2a,i10.10)') & localbarfile(1:il),'.',eccoiter if ( localperiod.EQ.dTtracerLev(1) ) then @@ -114,12 +106,12 @@ subroutine cost_gencal( endif il=ilnblnk(localobsfile) - write(fname2(1:128),'(2a,i4)') + write(fname2,'(2a,i4)') & localobsfile(1:il), '_', yday inquire( file=fname2, exist=exst ) if (.NOT. exst) then c assume that the data set is cyclic - write(fname2(1:128),'(a)') localobsfile(1:il) + write(fname2,'(a)') localobsfile(1:il) inquire( file=fname2, exist=exst ) endif @@ -127,4 +119,3 @@ subroutine cost_gencal( RETURN END - diff --git a/pkg/ecco/cost_gencost_all.F b/pkg/ecco/cost_gencost_all.F index 4ae662c208..c515fac2de 100644 --- a/pkg/ecco/cost_gencost_all.F +++ b/pkg/ecco/cost_gencost_all.F @@ -1,6 +1,5 @@ #include "ECCO_OPTIONS.h" - subroutine cost_gencost_all( myiter, mytime, mythid ) c ================================================================== @@ -21,11 +20,9 @@ subroutine cost_gencost_all( myiter, mytime, mythid ) #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == @@ -49,10 +46,9 @@ subroutine cost_gencost_all( myiter, mytime, mythid ) do k = 1, NGENCOST - if ( (using_gencost(k)).AND.( gencost_flag(k).EQ.1 ) + if ( (using_gencost(k)).AND.( gencost_flag(k).EQ.1 ) & .AND.( .NOT.gencost_is1d(k) ) ) then - #ifdef ALLOW_DEBUG IF ( debugLevel .GE. debLevD ) THEN write(msgbuf,'(a,x,i2.2)') 'gencost #', k @@ -80,7 +76,7 @@ subroutine cost_gencost_all( myiter, mytime, mythid ) & gencost_spmin(k), gencost_spmax(k), gencost_spzero(k), & gencost_preproc(1,k), gencost_preproc_c(1,k), & gencost_preproc_i(1,k), gencost_preproc_r(1,k), - & gencost_posproc(1,k), gencost_posproc_c(1,k), + & gencost_posproc(1,k), gencost_posproc_c(1,k), & gencost_posproc_i(1,k), gencost_posproc_r(1,k), & gencost_outputlevel(k), gencost_name(k), & objf_gencost(1,1,k), num_gencost(1,1,k), @@ -93,6 +89,7 @@ subroutine cost_gencost_all( myiter, mytime, mythid ) call cost_gencost_glbmean( mythid ) call cost_gencost_boxmean( mythid ) call cost_gencost_bpv4( mythid ) + call cost_gencost_moc( mythid ) IF (using_cost_transp) call cost_gencost_transp( mythid ) IF (using_cost_altim) call cost_gencost_sshv4( mythid ) IF (using_cost_sst) call cost_gencost_sstv4( mythid ) @@ -100,4 +97,5 @@ subroutine cost_gencost_all( myiter, mytime, mythid ) #endif /* ALLOW_GENCOST_CONTRIBUTION */ + return end diff --git a/pkg/ecco/cost_gencost_assignperiod.F b/pkg/ecco/cost_gencost_assignperiod.F index 35ea690f30..0fab1cbe48 100644 --- a/pkg/ecco/cost_gencost_assignperiod.F +++ b/pkg/ecco/cost_gencost_assignperiod.F @@ -20,7 +20,8 @@ subroutine cost_gencost_assignperiod( #include "SIZE.h" #include "PARAMS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == diff --git a/pkg/ecco/cost_gencost_boxmean.F b/pkg/ecco/cost_gencost_boxmean.F index 76c473b077..c86fec25b8 100644 --- a/pkg/ecco/cost_gencost_boxmean.F +++ b/pkg/ecco/cost_gencost_boxmean.F @@ -1,6 +1,6 @@ #include "ECCO_OPTIONS.h" - subroutine cost_gencost_boxmean(mythid) + subroutine cost_gencost_boxmean( myThid ) c ================================================================== c SUBROUTINE cost_gencost_boxmean @@ -24,18 +24,18 @@ subroutine cost_gencost_boxmean(mythid) # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - integer mythid + integer myThid #ifdef ALLOW_GENCOST_CONTRIBUTION - c == local variables == integer kgen - _RL mybar(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL mybar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL mySumTile(nSx,nSy),myVolTile(nSx,nSy) _RL mySumGlo,myVolGlo @@ -44,9 +44,9 @@ subroutine cost_gencost_boxmean(mythid) _RL tmpSumGlo integer bi,bj - integer i,j,k + integer i,j integer nrecloc,irec,il,ioUnit - character*(80) myfname + character*(MAX_LEN_FNAM) myfname _RL mydummy logical doglobalread logical ladinit @@ -59,10 +59,8 @@ subroutine cost_gencost_boxmean(mythid) _RL tmpVar(1) c == external functions == - integer ilnblnk external ilnblnk - LOGICAL MASTER_CPU_THREAD EXTERNAL MASTER_CPU_THREAD @@ -79,7 +77,7 @@ subroutine cost_gencost_boxmean(mythid) ladinit = .false. mydummy=gencost_dummy(kgen) il = ilnblnk( gencost_barfile(kgen) ) - write(myfname(1:80),'(2a,i10.10)') + write(myfname,'(2a,i10.10)') & gencost_barfile(kgen)(1:il),'.',eccoiter c initialize various things to 0 @@ -103,7 +101,7 @@ subroutine cost_gencost_boxmean(mythid) #ifdef ALLOW_AUTODIFF call active_read_xy( myfname, mybar, irec, & doglobalread, ladinit, - & eccoiter, mythid, + & eccoiter, myThid, & mydummy ) #else CALL READ_REC_XY_RL( myfname, mybar, @@ -177,4 +175,5 @@ subroutine cost_gencost_boxmean(mythid) #endif /* ALLOW_GENCOST_CONTRIBUTION */ + return end diff --git a/pkg/ecco/cost_gencost_bpv4.F b/pkg/ecco/cost_gencost_bpv4.F index 8694005030..9804c03e7a 100644 --- a/pkg/ecco/cost_gencost_bpv4.F +++ b/pkg/ecco/cost_gencost_bpv4.F @@ -1,8 +1,7 @@ #include "ECCO_OPTIONS.h" subroutine cost_gencost_bpv4( - I myThid - & ) + I myThid ) c ================================================================== c SUBROUTINE cost_gencost_bpv4 @@ -28,62 +27,53 @@ subroutine cost_gencost_bpv4( #include "DYNVARS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - integer myThid #ifdef ALLOW_ECCO #ifdef ALLOW_GENCOST_CONTRIBUTION -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j - integer itlo,ithi - integer jtlo,jthi integer irec integer il - logical doglobalread logical ladinit - _RL locbpbar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL locbpdat(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL locbpmask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL locwbp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL bpdifmean ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL bpdifanom ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL bpdatmean ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL bpdatanom ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL bpcount ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL junk - - character*(80) fname - character*(80) fname4test - + character*(MAX_LEN_FNAM) fname + character*(MAX_LEN_FNAM) fname4test _RL fac _RL offset _RL offset_sum - integer k, kgen logical dosumsq - -c == external functions == - - integer ilnblnk - external ilnblnk - +#ifdef ALLOW_SMOOTH + integer k2_bp + logical exst +#endif +#ifdef ECCO_VERBOSE + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif c == end of interface == - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - kgen=0 do k=1,NGENCOST if ( (gencost_name(k).EQ.'bpv4-grace').AND. @@ -93,17 +83,28 @@ subroutine cost_gencost_bpv4( if (kgen.GT.0) then +#ifdef ALLOW_SMOOTH + k2_bp=0 + if ( useSMOOTH) then + do k = 1,ngenpproc + if (gencost_posproc(k,kgen).eq.'smooth') k2_bp=k + enddo + endif +#endif + dosumsq=.TRUE. - call ecco_zero(gencost_weight(:,:,1,1,kgen),1,zeroRL,myThid) + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,kgen), + & 1, zeroRL, myThid ) if ( gencost_errfile(kgen) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(kgen), - & gencost_weight(:,:,1,1,kgen),1,1,dosumsq,myThid) + & call ecco_readwei( gencost_errfile(kgen), + & gencost_weight(1-OLx,1-OLy,1,1,kgen), + & 1, 1, 1, dosumsq, myThid ) c-- initialise local variables cgf convert phibot from m2/s2 to cm fac = 1. _d 2 / 9.81 _d 0 - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx bpdifmean(i,j,bi,bj) = 0. _d 0 @@ -117,28 +118,27 @@ subroutine cost_gencost_bpv4( locbpmask(i,j,bi,bj) = 0. _d 0 enddo enddo - enddo - enddo + ENDDO + ENDDO doglobalread = .false. ladinit = .false. c-- map global variable to local variables - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx locwbp(i,j,bi,bj) = gencost_weight(i,j,bi,bj,kgen) enddo enddo - enddo - enddo + ENDDO + ENDDO #ifdef ALLOW_CTRL - write(fname(1:80),'(80a)') ' ' il=ilnblnk( gencost_barfile(kgen) ) - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') & gencost_barfile(kgen)(1:il),'.',eccoiter #endif @@ -146,6 +146,12 @@ subroutine cost_gencost_bpv4( c-- Mean values. c-- ============ +#ifdef ECCO_VERBOSE + WRITE(msgBuf,'(A,1x,i5,1x,i10)') + & ' bpv4, kgen, nmonsrec: ',kgen, nmonsrec + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) +#endif do irec = 1, nmonsrec c-- Compute the mean over all bpdat records. @@ -162,8 +168,19 @@ subroutine cost_gencost_bpv4( & gencost_startdate(1,kgen), & locbpdat, locbpmask, irec, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi +#ifdef ECCO_VERBOSE + il=ilnblnk( gencost_datafile(kgen) ) + WRITE(msgBuf,'(A,1x,A,1x,i10)') ' bpv4, datafile, irec: ', + & gencost_datafile(kgen)(1:il), irec + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + write(fname4test,'(2a,i4.4)') + & gencost_datafile(kgen)(1:il),'.',irec + call write_rec_xy_rl( fname4test, locbpdat, 1, 1, myThid) +#endif + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx if ( (locbpmask(i,j,bi,bj).NE. 0. _d 0).AND. @@ -176,13 +193,13 @@ subroutine cost_gencost_bpv4( endif enddo enddo - enddo - enddo + ENDDO + ENDDO enddo - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx if (bpcount(i,j,bi,bj).GT. 0. _d 0) then @@ -193,8 +210,8 @@ subroutine cost_gencost_bpv4( endif enddo enddo - enddo - enddo + ENDDO + ENDDO c-- ========== c-- Anomalies. @@ -216,8 +233,8 @@ subroutine cost_gencost_bpv4( & locbpdat, locbpmask, irec, myThid ) c-- Compute field of anomalies - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx if ( (locbpmask(i,j,bi,bj).NE. 0. _d 0).AND. @@ -233,15 +250,15 @@ subroutine cost_gencost_bpv4( endif enddo enddo - enddo - enddo + ENDDO + ENDDO c-- Remove global mean value offset = 0. _d 0 offset_sum = 0. _d 0 - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx if ( (locbpmask(i,j,bi,bj).NE. 0. _d 0).AND. @@ -251,14 +268,14 @@ subroutine cost_gencost_bpv4( endif enddo enddo - enddo - enddo + ENDDO + ENDDO _GLOBAL_SUM_RL( offset , myThid ) _GLOBAL_SUM_RL( offset_sum , myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx if ( (offset_sum.GT. 0. _d 0).AND. @@ -269,41 +286,68 @@ subroutine cost_gencost_bpv4( endif enddo enddo - enddo - enddo + ENDDO + ENDDO c-- Smooth field of anomalies if (gencost_outputlevel(kgen).GT.0) then - write(fname4test(1:80),'(1a)') 'bpdifanom_raw' + write(fname4test,'(1a)') 'bpdifanom_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & bpdifanom, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'bpdatanom_raw' + write(fname4test,'(1a)') 'bpdatanom_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & bpdatanom, irec, 1, myThid ) endif #ifdef ALLOW_SMOOTH - if ( useSMOOTH ) - & call smooth_basic2D(bpdifanom,maskc,300000. _d 0,3000,myThid) + IF ( k2_bp.GE.1 ) THEN +C- Note: Unlike all other generic-cost smoothing, original code was using +C "smooth_basic2D" with hard-coded smoothing length (3.e+5) and time +C multiplicator (3000). Keep original call (now using run-time params setting) +C when the scaling file gencost_posproc_c is missing: + il=ilnblnk( gencost_posproc_c(k2_bp,kgen) ) + inquire(file=gencost_posproc_c(k2_bp,kgen)(1:il), exist=exst) + IF ( il .gt. 1 .and. exst ) THEN + call smooth_hetero2d(bpdifanom,maskc, + & gencost_posproc_c(k2_bp,kgen), + & gencost_posproc_i(k2_bp,kgen),myThid) + ELSE + call smooth_basic2D(bpdifanom,maskInC, + & gencost_posproc_r(k2_bp,kgen), + & gencost_posproc_i(k2_bp,kgen),myThid) + ENDIF + ENDIF #endif if (gencost_outputlevel(kgen).GT.0) then #ifdef ALLOW_SMOOTH - if ( useSMOOTH ) - & call smooth_basic2D(bpdatanom,maskc,300000. _d 0,3000,myThid) + IF ( k2_bp.GE.1 ) THEN +C-- Skip second evaluation of "il" & "exst" (unchanged since first one above) +c il=ilnblnk( gencost_posproc_c(k2_bp,kgen) ) +c inquire(file=gencost_posproc_c(k2_bp,kgen)(1:il), exist=exst) + IF ( il .gt. 1 .and. exst ) THEN + call smooth_hetero2d(bpdatanom,maskc, + & gencost_posproc_c(k2_bp,kgen), + & gencost_posproc_i(k2_bp,kgen),myThid) + ELSE + call smooth_basic2D(bpdatanom,maskInC, + & gencost_posproc_r(k2_bp,kgen), + & gencost_posproc_i(k2_bp,kgen),myThid) + ENDIF + ENDIF #endif - write(fname4test(1:80),'(1a)') 'bpdifanom_smooth' + write(fname4test,'(1a)') 'bpdifanom_smooth' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & bpdifanom, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'bpdatanom_smooth' + write(fname4test,'(1a)') 'bpdatanom_smooth' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & bpdatanom, irec, 1, myThid ) endif c-- Compute cost function - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) do j = 1,sNy do i = 1,sNx c-- map to global cost variables @@ -311,15 +355,15 @@ subroutine cost_gencost_bpv4( & (locbpmask(i,j,bi,bj).NE. 0. _d 0).AND. & (maskc(i,j,1,bi,bj).NE. 0. _d 0) ) then junk = bpdifanom(i,j,bi,bj) - objf_gencost(kgen,bi,bj) = objf_gencost(kgen,bi,bj) + objf_gencost(bi,bj,kgen) = objf_gencost(bi,bj,kgen) & + junk*junk*locwbp(i,j,bi,bj) - num_gencost(kgen,bi,bj) = num_gencost(kgen,bi,bj) + num_gencost(bi,bj,kgen) = num_gencost(bi,bj,kgen) & + 1. _d 0 endif enddo enddo - enddo - enddo + ENDDO + ENDDO enddo diff --git a/pkg/ecco/cost_gencost_customize.F b/pkg/ecco/cost_gencost_customize.F index 76f44bd168..303b135922 100644 --- a/pkg/ecco/cost_gencost_customize.F +++ b/pkg/ecco/cost_gencost_customize.F @@ -29,7 +29,8 @@ subroutine cost_gencost_customize( mythid ) #include "DYNVARS.h" #include "FFIELDS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_SEAICE # include "SEAICE_SIZE.h" @@ -41,6 +42,9 @@ subroutine cost_gencost_customize( mythid ) #ifdef ALLOW_CTRL # include "CTRL_FIELDS.h" #endif +#ifdef ALLOW_GMREDI +# include "GMREDI.h" +#endif #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # include "PTRACERS_FIELDS.h" @@ -59,6 +63,7 @@ subroutine cost_gencost_customize( mythid ) integer k2,kk integer itr #endif + integer kLev #ifdef ALLOW_EXF _RL uBarC, vBarC _RL zontau (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) @@ -82,7 +87,6 @@ subroutine cost_gencost_customize( mythid ) imin = 1 imax = snx - #ifdef ALLOW_EXF c rotated to EW/NS tracer point do bj = jtlo,jthi @@ -112,36 +116,48 @@ subroutine cost_gencost_customize( mythid ) do k=1,NGENCOST itr=gencost_itracer(k) + kLev = MAX( 1, MIN( Nr, gencost_kLev_select(k) ) ) do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax do i = imin,imax - if (gencost_barfile(k)(1:5).EQ.'m_eta') then - gencost_modfld(i,j,bi,bj,k) = + if (gencost_barfile(k)(1:5).EQ.'m_eta' .and. + & gencost_barfile(k)(1:9).NE.'m_eta_dyn') then + gencost_modfld(i,j,bi,bj,k) = & m_eta(i,j,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_barfile(k)(1:9).EQ.'m_boxmean') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & gencost_storefld(i,j,bi,bj,k) elseif (gencost_barfile(k)(1:9).EQ.'m_horflux') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & gencost_storefld(i,j,bi,bj,k) elseif (gencost_barfile(k)(1:5).EQ.'m_sst') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & THETA(i,j,1,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_barfile(k)(1:5).EQ.'m_sss') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & SALT(i,j,1,bi,bj)*maskC(i,j,1,bi,bj) - elseif (gencost_barfile(k)(1:4).EQ.'m_bp') then - gencost_modfld(i,j,bi,bj,k) = - & (phiHydLow(i,j,bi,bj) -#ifdef ALLOW_PSBAR_STERIC -C add back the correction due to the global mean steric ssh change, -C i.e. sterGloH computed in ecco_phys.F (units converted from m to m2/s2) - & + sterGloH * gravity + elseif (gencost_barfile(k)(1:11).EQ.'m_drifterUE') then + gencost_modfld(i,j,bi,bj,k) = + & m_UE(i,j,kLev,bi,bj)*maskC(i,j,kLev,bi,bj) + elseif (gencost_barfile(k)(1:11).EQ.'m_drifterVN') then + gencost_modfld(i,j,bi,bj,k) = + & m_VN(i,j,kLev,bi,bj)*maskC(i,j,kLev,bi,bj) + elseif (gencost_barfile(k)(1:4).EQ.'m_bp' .and. + & gencost_barfile(k)(1:12).NE.'m_bp_nopabar') then + gencost_modfld(i,j,bi,bj,k) = + & m_bp(i,j,bi,bj)*maskC(i,j,1,bi,bj) +#ifdef ATMOSPHERIC_LOADING +#ifdef ALLOW_IB_CORR + elseif (gencost_barfile(k)(1:9).EQ.'m_eta_dyn') then + gencost_modfld(i,j,bi,bj,k) = + & m_eta_dyn(i,j,bi,bj)*maskC(i,j,1,bi,bj) + elseif (gencost_barfile(k)(1:12).EQ.'m_bp_nopabar') then + gencost_modfld(i,j,bi,bj,k) = + & m_bp_nopabar(i,j,bi,bj)*maskC(i,j,1,bi,bj) +#endif #endif - & )*maskC(i,j,1,bi,bj) - #ifdef ALLOW_GEOTHERMAL_FLUX elseif (gencost_barfile(k)(1:16).EQ.'m_geothermalflux') then gencost_modfld(i,j,bi,bj,k) = @@ -149,10 +165,10 @@ subroutine cost_gencost_customize( mythid ) #endif #ifdef ALLOW_EXF elseif (gencost_barfile(k)(1:9).EQ.'m_ustress') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & zontau(i,j,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_barfile(k)(1:9).EQ.'m_vstress') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & mertau(i,j,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_barfile(k)(1:7).EQ.'m_uwind') then gencost_modfld(i,j,bi,bj,k) = @@ -182,7 +198,7 @@ subroutine cost_gencost_customize( mythid ) elseif (gencost_barfile(k)(1:8).EQ.'m_wspeed') then gencost_modfld(i,j,bi,bj,k) = & wspeed(i,j,bi,bj)*maskC(i,j,1,bi,bj) -#endif +#endif /* ALLOW_EXF */ #ifdef ALLOW_CTRL #ifdef ALLOW_BOTTOMDRAG_CONTROL elseif (gencost_barfile(k)(1:12).EQ.'m_bottomdrag') then @@ -193,14 +209,14 @@ subroutine cost_gencost_customize( mythid ) #ifdef ALLOW_SEAICE elseif ( (gencost_name(k).EQ.'siv4-conc').OR. & (gencost_barfile(k)(1:8).EQ.'m_siarea') ) then - gencost_modfld(i,j,bi,bj,k) = - & area(i,j,bi,bj)*maskC(i,j,1,bi,bj) + gencost_modfld(i,j,bi,bj,k) = + & area(i,j,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_name(k).EQ.'siv4-deconc') then - gencost_modfld(i,j,bi,bj,k) = + gencost_modfld(i,j,bi,bj,k) = & theta(i,j,1,bi,bj)*maskC(i,j,1,bi,bj) elseif ( (gencost_name(k).EQ.'siv4-exconc').OR. - & (gencost_barfile(k)(1:8).EQ.'m_siheff') ) then - gencost_modfld(i,j,bi,bj,k) = + & (gencost_barfile(k)(1:8).EQ.'m_siheff') ) then + gencost_modfld(i,j,bi,bj,k) = & heff(i,j,bi,bj)*maskC(i,j,1,bi,bj) elseif (gencost_barfile(k)(1:9).EQ.'m_sihsnow') then gencost_modfld(i,j,bi,bj,k) = @@ -263,24 +279,24 @@ subroutine cost_gencost_customize( mythid ) enddo #endif #ifdef ALLOW_CTRL -#ifdef ALLOW_KAPGM_CONTROL +#if ( defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM ) elseif (gencost_barfile(k)(1:7).EQ.'m_kapgm') then kk=gencost_pointer3d(k) do k2=1,nr gencost_mod3d(i,j,k2,bi,bj,kk) = - & kapgm(i,j,k2,bi,bj)*maskC(i,j,k2,bi,bj) + & GM_inpK3dGM(i,j,k2,bi,bj)*maskC(i,j,k2,bi,bj) enddo #endif -#ifdef ALLOW_KAPREDI_CONTROL +#if ( defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI ) elseif (gencost_barfile(k)(1:9).EQ.'m_kapredi') then kk=gencost_pointer3d(k) do k2=1,nr gencost_mod3d(i,j,k2,bi,bj,kk) = - & kapredi(i,j,k2,bi,bj)*maskC(i,j,k2,bi,bj) + & GM_inpK3dRedi(i,j,k2,bi,bj)*maskC(i,j,k2,bi,bj) enddo #endif #endif -#endif +#endif /* ALLOW_GENCOST3D */ endif enddo @@ -291,4 +307,5 @@ subroutine cost_gencost_customize( mythid ) #endif /* ALLOW_GENCOST_CONTRIBUTION */ - end + RETURN + END diff --git a/pkg/ecco/cost_gencost_glbmean.F b/pkg/ecco/cost_gencost_glbmean.F index 953141de0e..3bc7db4857 100644 --- a/pkg/ecco/cost_gencost_glbmean.F +++ b/pkg/ecco/cost_gencost_glbmean.F @@ -1,15 +1,14 @@ #include "ECCO_OPTIONS.h" - subroutine cost_gencost_glbmean( - I mythid + I myThid & ) c ================================================================== c SUBROUTINE cost_gencost_glbmean c ================================================================== c -c o Evaluate cost function contribution of global mean time series +c o Evaluate cost function contribution of global mean time series c of OBP and SSH c c started: Ou Wang Nov-2015 @@ -29,12 +28,13 @@ subroutine cost_gencost_glbmean( #include "DYNVARS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == - integer mythid + integer myThid #ifdef ALLOW_ECCO #ifdef ALLOW_GENCOST_CONTRIBUTION @@ -52,15 +52,15 @@ subroutine cost_gencost_glbmean( logical doglobalread logical ladinit - _RL locbar(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL locbar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL locw - _RL locbarmean ( 1-olx:snx+olx, 1-oly:sny+oly, nsx, nsy ) - _RL locbaranom ( 1-olx:snx+olx, 1-oly:sny+oly, nsx, nsy ) - _RL loccount ( 1-olx:snx+olx, 1-oly:sny+oly, nsx, nsy ) + _RL locbarmean ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) + _RL locbaranom ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) + _RL loccount ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) _RL junk, junkweight - character*(80) fname + character*(MAX_LEN_FNAM) fname _RL fac _RL locbarglbmean @@ -86,16 +86,16 @@ subroutine cost_gencost_glbmean( c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) do k=1,NGENCOST kgen=0 if (((gencost_name(k).EQ.'gmbp') .OR. - & (gencost_name(k).EQ.'gmsl')) - & .AND.( gencost_is1d(k) ) + & (gencost_name(k).EQ.'gmsl')) + & .AND.( gencost_is1d(k) ) & .AND.(using_gencost(k)) ) kgen=k if (kgen.GT.0) then @@ -109,8 +109,8 @@ subroutine cost_gencost_glbmean( if(gencost_name(k).EQ.'gmbp') fac = 1. _d 2 * recip_gravity do bj = jtlo,jthi do bi = itlo,ithi - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx locbarmean(i,j,bi,bj) = 0. _d 0 locbaranom(i,j,bi,bj) = 0. _d 0 loccount(i,j,bi,bj) = 0. _d 0 @@ -149,17 +149,16 @@ subroutine cost_gencost_glbmean( C now remove the time-mean from the data do irec = 1, locnrec - if(locmask(irec).EQ.1. _d 0) then - dataglbmean(irec) = dataglbmean(irec) + if(locmask(irec).EQ.1. _d 0) then + dataglbmean(irec) = dataglbmean(irec) & - meandataglbmean endif enddo c-- #ifdef ALLOW_CTRL - write(fname(1:80),'(80a)') ' ' il=ilnblnk( gencost_barfile(kgen) ) - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') & gencost_barfile(kgen)(1:il),'.',eccoiter #endif @@ -172,13 +171,13 @@ subroutine cost_gencost_glbmean( if(locmask(irec) .NE. 0. _d 0) then c-- Compute the mean over all bpdat records. call active_read_xy( fname, locbar, irec, doglobalread, - & ladinit, eccoiter, mythid, + & ladinit, eccoiter, myThid, & gencost_dummy(kgen) ) do bj = jtlo,jthi do bi = itlo,ithi - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx if ( maskc(i,j,1,bi,bj).NE. 0. _d 0 ) then locbarmean(i,j,bi,bj) = locbarmean(i,j,bi,bj) + & fac*locbar(i,j,bi,bj) @@ -194,8 +193,8 @@ subroutine cost_gencost_glbmean( do bj = jtlo,jthi do bi = itlo,ithi - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx if (loccount(i,j,bi,bj).GT. 0. _d 0) then locbarmean(i,j,bi,bj) = & locbarmean(i,j,bi,bj)/loccount(i,j,bi,bj) @@ -214,14 +213,14 @@ subroutine cost_gencost_glbmean( if(locmask(irec) .NE. 0. _d 0) then call active_read_xy( fname, locbar, irec, doglobalread, - & ladinit, eccoiter, mythid, + & ladinit, eccoiter, myThid, & gencost_dummy(kgen) ) c-- Compute field of anomalies do bj = jtlo,jthi do bi = itlo,ithi - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx if ( maskc(i,j,1,bi,bj).NE. 0. _d 0) then locbaranom(i,j,bi,bj) = & fac*locbar(i,j,bi,bj) - locbarmean(i,j,bi,bj) @@ -239,10 +238,10 @@ subroutine cost_gencost_glbmean( do bj = jtlo,jthi do bi = itlo,ithi - do j = 1,sny - do i = 1,snx + do j = 1,sNy + do i = 1,sNx if ( maskc(i,j,1,bi,bj).NE. 0. _d 0) then - locbarglbmean = locbarglbmean + + locbarglbmean = locbarglbmean + & RA(i,j,bi,bj)*locbaranom(i,j,bi,bj) locbarglbmean_sum = locbarglbmean_sum + RA(i,j,bi,bj) endif @@ -251,8 +250,8 @@ subroutine cost_gencost_glbmean( enddo enddo - _GLOBAL_SUM_RL( locbarglbmean , mythid ) - _GLOBAL_SUM_RL( locbarglbmean_sum , mythid ) + _GLOBAL_SUM_RL( locbarglbmean , myThid ) + _GLOBAL_SUM_RL( locbarglbmean_sum , myThid ) IF ( MASTER_CPU_THREAD(myThid) .AND. & ( locmask(irec) .NE. 0. _d 0 ) .AND. @@ -263,8 +262,8 @@ subroutine cost_gencost_glbmean( & + junk*junk*junkweight num_gencost(1,1,kgen) = num_gencost(1,1,kgen) & + 1. _d 0 - - WRITE(msgBuf,'(A,i6,2e16.5)') gencost_name(kgen)(1:10),irec, + + WRITE(msgBuf,'(A,i6,2e16.5)') gencost_name(kgen)(1:10),irec, & locbarglbmean/locbarglbmean_sum, dataglbmean(irec) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) diff --git a/pkg/ecco/cost_gencost_moc.F b/pkg/ecco/cost_gencost_moc.F new file mode 100644 index 0000000000..148fd170ab --- /dev/null +++ b/pkg/ecco/cost_gencost_moc.F @@ -0,0 +1,278 @@ +#include "ECCO_OPTIONS.h" + + subroutine cost_gencost_moc(myThid) + +c ================================================================== +c SUBROUTINE cost_gencost_moc +c ================================================================== +c +c o Evaluate cost function contributions from MOC defined: +c +c MOC_max = max_k { cumsum_k { zonally integrated meridional volume transport } } +c +c o mybar loads trVol from barfile, which is masked by S/W edge mask +c these masks denote the latitude line for taking zonal integral +c +c ================================================================== +c SUBROUTINE cost_gencost_moc +c ================================================================== + + implicit none + +c == global variables == + +#include "EEPARAMS.h" +#include "SIZE.h" +#include "PARAMS.h" +#include "GRID.h" +#ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +#endif + +c == routine arguments == + integer myThid + +#ifdef ALLOW_GENCOST_CONTRIBUTION + +c == local variables == + + integer nrecloc, ioUnit + + _RL mybar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL gencost_mskTemporal + _RL tmpVar(1), dummyRL + _RS dummyRS(1) + _RL tmpCumSumTile(Nr,nSx,nSy) + _RL tmpNumTile(nSx,nSy) + _RL tmpCumSumGlo(Nr) + _RL tmpTile(nSx,nSy) + _RL myTempMax + + character*(MAX_LEN_FNAM) mybarfile + character*(MAX_LEN_MBUF) msgbuf + character*(128) fname0 + + integer kgen, kg3 + integer bi,bj + integer i,j,k + integer itlo,ithi + integer jtlo,jthi + integer imin, imax + integer jmin, jmax + integer irec + integer il + integer kmax + logical doglobalread + logical ladinit + logical exst + +c == external functions == + + integer ilnblnk + external ilnblnk + +c == end of interface == + + jtlo = myByLo(myThid) + jthi = myByHi(myThid) + itlo = myBxLo(myThid) + ithi = myBxHi(myThid) + imin = 1 + imax = sNx + jmin = 1 + jmax = sNy + +CADJ INIT tapelev_moc = common, Nr + + do kgen=1,NGENCOST + kg3 = gencost_pointer3d(kgen) + +c-- detect the relevant gencost indices + if ( (gencost_name(kgen)(1:3).EQ.'moc').AND. + & (using_gencost(kgen)) ) then + + write(msgbuf,'(A)') 'Inside cost_gencost_moc ...' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + il=ilnblnk(gencost_barfile(kgen)) + write(msgbuf,'(A,i4,A,A)') 'Cost ',kgen, + & ': ',gencost_barfile(kgen)(1:il) + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + +c=============== PART 0: initilization =================== + +c-- local variables + + doglobalread = .false. + ladinit = .false. + dummyRL = gencost_dummy(kgen) + nrecloc=gencost_nrec(kgen) + il=ilnblnk(gencost_barfile(kgen)) + write(mybarfile,'(2a,i10.10)') + & gencost_barfile(kgen)(1:il),'.',eccoiter + +c-- Initialize to zero + DO bj = jtlo,jthi + DO bi = itlo,ithi + do k = 1, Nr + tmpCumSumTile(k,bi,bj) = 0. _d 0 + enddo + tmpNumTile(bi,bj) = 0. _d 0 + ENDDO + ENDDO +c model mask[W,S]: already included in transp calc in ecco_phys + nrecloc=gencost_nrec(kgen) + +c=============== PART 1: main loop =================== + do irec = 1,nrecloc + +c-- Read barfile +#ifdef ALLOW_AUTODIFF + call active_read_xyz( mybarfile, mybar, irec, + & doglobalread, ladinit, + & eccoiter, myThid, + & dummyRL ) +#else + call READ_REC_XYZ_RL( mybarfile, mybar, irec, + & 1, myThid ) +#endif /* ALLOW_AUTODIFF */ + +c-- Initialize after read + + DO bj = jtlo,jthi + DO bi = itlo,ithi + do k = 1, Nr + tmpCumSumTile(k,bi,bj) = 0. _d 0 + enddo + tmpNumTile(bi,bj) = 0. _d 0 + ENDDO + ENDDO + +c-- Temporal mask + il = ilnblnk(gencost_mask(kgen)) + write(fname0(1:128),'(2A)') + & gencost_mask(kgen)(1:il),'T' + inquire( file=fname0(1:il+1), exist=exst ) + + if ( (.NOT.exst).OR.(gencost_mask(kgen).EQ.' ') + & ) then + + write(msgBuf,'(3A)') '**Warning: temporal msk file: ', + & fname0(1:il+1), ' not found, using 1/nrecloc' + CALL PRINT_MESSAGE(msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + gencost_mskTemporal=nrecloc + gencost_mskTemporal=1. _d 0 / gencost_mskTemporal + else + + write(msgBuf,'(2A)') 'Using temporal msk from file: ', + & fname0(1:il+1) + CALL PRINT_MESSAGE(msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + ioUnit = 0 + CALL MDS_READVEC_LOC( fname0, cost_iprec, ioUnit, 'RL', + & 1, tmpVar, dummyRS, 0, 0, irec, myThid ) + gencost_mskTemporal = tmpVar(1) + endif + +c=============== PART 2: Cost Computation =================== +c-- Compute cost only if nonzero temporal mask + if ( gencost_mskTemporal .ne. 0 ) then + + if ( myProcId .EQ. 0 ) num_gencost(1,1,kgen)= + & num_gencost(1,1,kgen)+gencost_mskTemporal + +c=============== PART 2.1: Cumulative sum =================== +c Take cumulative sum of my bar from bottom up +c i.e. compute the streamfunction (assuming mybar = trvol) +c + DO bj = jtlo,jthi + DO bi = itlo,ithi + do k = Nr, 1, -1 + do j = jmin,jmax + do i = imin,imax + tmpCumSumTile(k,bi,bj)=tmpCumSumTile(k,bi,bj) - + & mybar(i,j,k,bi,bj)*gencost_mskTemporal + + tmpNumTile(bi,bj)= + & tmpNumTile(bi,bj)+1. _d 0 + enddo + enddo + if( k .lt. Nr ) then + tmpCumSumTile(k,bi,bj)=tmpCumSumTile(k,bi,bj) + + & tmpCumSumTile(k+1,bi,bj) + endif + enddo + ENDDO + ENDDO + +c-- Compute global sum at each level + do k = Nr, 1, -1 + DO bj = jtlo,jthi + DO bi = itlo,ithi + tmpTile(bi,bj) = tmpCumSumTile(k,bi,bj) + ENDDO + ENDDO + tmpCumSumGlo(k) = 0. _d 0 + CALL GLOBAL_SUM_TILE_RL(tmpTile, tmpCumSumGlo(k), myThid ) + enddo + +c=============== PART 2.2: Get max val =================== +c-- Find maximum in global cumulative sum + + myTempMax = tmpCumSumGlo(1) + kmax = 1 + + do k = 2, Nr +CADJ STORE myTempMax = tapelev_moc, key = k + if( myTempMax < tmpCumSumGlo(k) ) then + myTempMax = tmpCumSumGlo(k) + kmax = k + endif + enddo + + WRITE(msgBuf,'(2A,I3,A,1PE21.14,A,I2)') + & 'moc cost ',gencost_barfile(kgen)(1:il), + & irec,' ', myTempMax, 'kmax: ',kmax + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + +c=============== PART 2.3: Save to obj =================== +c-- Add MOC contribution to actual objective function variable +c Note: using global values, so only want to store in +c one processors obj function value + + if ( myProcId .EQ. 0 ) objf_gencost(1,1,kgen)= + & objf_gencost(1,1,kgen)+myTempMax + +c============= Done with cost computation ===================== + + else ! mskTemporal == 0 + + WRITE(msgBuf,'(A,I3,A,I3)') + & 'gencost_mskTemporal = 0, irec: ',irec, ' / ', + & nrecloc + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + endif ! mskTemporal /=0 + enddo ! irec=1->nrecloc + +c-- Print out what actually is used as cost function + WRITE(msgBuf,'(A,1PE21.14)') 'moc fc: ', + & objf_gencost(1,1,kgen) + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + endif ! gencost_name(kgen)=moc + enddo ! kgen=1->NGENCOST + +#endif /* ALLOW_GENCOST_CONTRIBUTION */ + + return + end diff --git a/pkg/ecco/cost_gencost_seaicev4.F b/pkg/ecco/cost_gencost_seaicev4.F index 63f7bf88df..2891892994 100644 --- a/pkg/ecco/cost_gencost_seaicev4.F +++ b/pkg/ecco/cost_gencost_seaicev4.F @@ -1,4 +1,14 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_SEAICE +# include "SEAICE_OPTIONS.h" +#endif + +C-- File cost_gencost_seaicev4.F: +C-- Contents +C-- o COST_GENCOST_SEAICEV4 +C-- o GET_EXCONC_DECONC + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| subroutine cost_gencost_seaicev4(myThid) @@ -24,13 +34,14 @@ subroutine cost_gencost_seaicev4(myThid) # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_SIZE.h" -# include "SEAICE_COST.h" -# include "SEAICE_PARAMS.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif +c#ifdef ALLOW_SEAICE +c# include "SEAICE_SIZE.h" +c# include "SEAICE_COST.h" +c# include "SEAICE_PARAMS.h" +c#endif c == routine arguments == integer myThid @@ -40,8 +51,6 @@ subroutine cost_gencost_seaicev4(myThid) c == local variables == - integer nnzsiv4, nnzbar - parameter (nnzsiv4 = 1 , nnzbar = 1) integer nrecloc integer localstartdate(4) @@ -67,11 +76,7 @@ subroutine cost_gencost_seaicev4(myThid) integer igen_conc, igen_deconc, igen_exconc integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax + integer k integer irec, jrec integer il, k2 integer localrec @@ -83,13 +88,12 @@ subroutine cost_gencost_seaicev4(myThid) character*(MAX_LEN_FNAM) preproc(NGENPPROC) character*(MAX_LEN_FNAM) preproc_c(NGENPPROC) - _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzsiv4,nSx,nSy) - _RL localtmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzsiv4,nSx,nSy) - _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzsiv4,nSx,nSy) - _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzsiv4,nSx,nSy) - _RL difmask1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzsiv4,nSx,nSy) + _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) + _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) + _RL localtmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) + _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) + _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) + _RL difmask1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1,nSx,nSy) character*(128) fname0, fname0w, fname1 @@ -103,15 +107,6 @@ subroutine cost_gencost_seaicev4(myThid) c == end of interface == - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - c=============== PART 0: initilization =================== c-- detect the relevant gencost indices @@ -131,8 +126,8 @@ subroutine cost_gencost_seaicev4(myThid) if (igen_conc.NE.0) then c-- initialize objf and num: - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) objf_gencost(bi,bj,igen_conc) = 0. _d 0 num_gencost(bi,bj,igen_conc) = 0. _d 0 if(igen_deconc.ne.0) then @@ -180,11 +175,15 @@ subroutine cost_gencost_seaicev4(myThid) if (preproc(k2).EQ.'nosumsq') dosumsq=.FALSE. enddo -c-- initialize arrays, copy maskC to localmask +c-- initialize arrays, copy 2D maskInC to 2D localmask; this means +c that sea ice cost function contributions on open boundary points +c are masked out, probably something that eccov4 can live +c with. Alternatively, on has to copy the first level of maskC to +c localmask explicitly. call ecco_zero(localobs,1,spzeroloc,myThid) call ecco_zero(localweight,1,zeroRL,myThid) - call ecco_zero(localmask,Nr,zeroRL,myThid) - call ecco_cprsrl(maskC,Nr,localmask,Nr,myThid) + call ecco_zero(localmask,1,zeroRL,myThid) + call ecco_cprsrl(maskInC,localmask,1,1,myThid) c=============== PART 1: main loop =================== if ( .NOT. ( localobsfile.EQ.' ' ) ) then @@ -201,21 +200,21 @@ subroutine cost_gencost_seaicev4(myThid) call cost_gencal(areabarfile,gencost_errfile(igen_conc), & jrec, localstartdate, localperiod, fname1, & fname0w, localrec, obsrec, exst, myThid) - call ecco_zero(localweight,nnzsiv4,zeroRL,myThid) + call ecco_zero(localweight,1,zeroRL,myThid) #ifdef SEAICECOST_JPL fname0w=gencost_errfile(igen_conc) call ecco_readwei(fname0w,localweight,localrec, - & nnzsiv4,dosumsq,myThid) + & 1,1,dosumsq,myThid) call ecco_readwei(gencost_errfile(igen_deconc), - & gencost_weight(1,1,1,1,igen_deconc),localrec, - & nnzsiv4,dosumsq,myThid) + & gencost_weight(1-OLx,1-OLy,1,1,igen_deconc),localrec, + & 1,1,dosumsq,myThid) call ecco_readwei(gencost_errfile(igen_exconc), - & gencost_weight(1,1,1,1,igen_exconc),localrec, - & nnzsiv4,dosumsq,myThid) + & gencost_weight(1-OLx,1-OLy,1,1,igen_exconc),localrec, + & 1,1,dosumsq,myThid) #else if ( (localrec. GT. 0).AND.(obsrec .GT. 0).AND.(exst) ) then call ecco_readwei(fname0w,localweight,localrec, - & nnzsiv4,dosumsq,myThid) + & 1,1,dosumsq,myThid) else WRITE(standardMessageUnit,'(A)') & 'siv4cost WARNING: ALL WEIGHTS ZEROS! NO CONTRIBUTION' @@ -226,16 +225,16 @@ subroutine cost_gencost_seaicev4(myThid) c--------- PART 1.2 read barfiles ------------------ c==================================================== c-- set all bars to zeros: - call ecco_zero(areabar,nnzbar,zeroRL,myThid) - call ecco_zero(deconcbar,nnzbar,zeroRL,myThid) - call ecco_zero(exconcbar,nnzbar,zeroRL,myThid) + call ecco_zero(areabar,1,zeroRL,myThid) + call ecco_zero(deconcbar,1,zeroRL,myThid) + call ecco_zero(exconcbar,1,zeroRL,myThid) c--1.2.A sea-ice concentration barfile exst=.FALSE. call cost_gencal(areabarfile,gencost_datafile(igen_conc), & irec,localstartdate,localperiod,fname1, & fname0,localrec,obsrec,exst,myThid) - call cost_genread(fname1,areabar,localtmp,irec,nnzbar, + call cost_genread(fname1,areabar,localtmp,irec,1,1, & nrecloc,preproc,preproc_c,preproc_i,preproc_r, & dummy,myThid) @@ -245,9 +244,10 @@ subroutine cost_gencost_seaicev4(myThid) call cost_gencal(deconcbarfile,gencost_datafile(igen_conc), & irec,localstartdate,localperiod,fname1, & fname0,localrec,obsrec,exst,myThid) - call cost_genread(fname1,deconcbar,localtmp,irec,nnzbar, - & nrecloc,preproc,preproc_c,preproc_i,preproc_r, - & dummy,myThid) + call cost_genread(fname1,deconcbar,localtmp, + & irec,1,1, + & nrecloc,preproc,preproc_c,preproc_i,preproc_r, + & dummy,myThid) endif c--1.2.C heff as proxy for exconc barfile, need igen_conc and igen_exconc @@ -256,18 +256,19 @@ subroutine cost_gencost_seaicev4(myThid) call cost_gencal(exconcbarfile,gencost_datafile(igen_conc), & irec,localstartdate,localperiod,fname1, & fname0,localrec,obsrec,exst,myThid) - call cost_genread(fname1,exconcbar,localtmp,irec,nnzbar, - & nrecloc,preproc,preproc_c,preproc_i,preproc_r, - & dummy,myThid) + call cost_genread(fname1,exconcbar,localtmp, + & irec,1,1, + & nrecloc,preproc,preproc_c,preproc_i,preproc_r, + & dummy,myThid) endif c==================================================== c--------- PART 1.3 read data -------------------- c==================================================== c-- initialize to spzerloc = -9999. - call ecco_zero(localobs,nnzsiv4,spzeroloc,myThid) + call ecco_zero(localobs,1,spzeroloc,myThid) if ( (localrec .GT. 0).AND.(obsrec .GT. 0).AND.(exst) ) then - CALL READ_REC_3D_RL( fname0, cost_iprec, nnzsiv4, + CALL READ_REC_3D_RL( fname0, cost_iprec, 1, & localobs, localrec, 0, myThid ) else il=ilnblnk( fname0 ) @@ -280,38 +281,38 @@ subroutine cost_gencost_seaicev4(myThid) c--------- PART 1.4 Cost calculation ------------- c==================================================== c compute obs minus bar (localdif) and mask (difmask) - call ecco_zero(localdif,nnzsiv4,zeroRL,myThid) - call ecco_zero(difmask,nnzsiv4,zeroRL,myThid) + call ecco_zero(localdif,1,zeroRL,myThid) + call ecco_zero(difmask,1,zeroRL,myThid) call ecco_diffmsk( - I areabar, nnzbar, localobs, nnzsiv4, localmask, - I spminloc, spmaxloc, spzeroloc, + I areabar, localobs, localmask, + I 1, 1, spminloc, spmaxloc, spzeroloc, O localdif, difmask, I myThid ) c---1.4.A area term: call ecco_addcost( - I localdif,localweight,difmask,nnzsiv4,dosumsq, + I localdif,localweight,difmask,1,1,dosumsq, O objf_gencost(1,1,igen_conc),num_gencost(1,1,igen_conc), I myThid) c---1.4.B defficient ice term: (old: sst term, new: deconc) c Add ice: model_A==0 but obs_A > 0, calc enthalpy E: if(igen_deconc.ne.0) then - call ecco_zero(difmask1,nnzsiv4,zeroRL,myThid) - call ecco_zero(localdif,nnzsiv4,zeroRL,myThid) - call ecco_zero(localtmp,nnzsiv4,zeroRL,myThid) + call ecco_zero(difmask1,1,zeroRL,myThid) + call ecco_zero(localdif,1,zeroRL,myThid) + call ecco_zero(localtmp,1,zeroRL,myThid) call get_exconc_deconc( - I localobs,nnzsiv4,areabar,exconcbar,deconcbar,nnzbar, + I localobs,1,areabar,exconcbar,deconcbar,1, I difmask,'de', O localdif,difmask1,localtmp, I myThid ) #ifdef SEAICECOST_JPL - call ecco_cp(gencost_weight(1,1,1,1,igen_deconc),nnzsiv4, - O localtmp,nnzsiv4,myThid) + call ecco_cp( gencost_weight(1-OLx,1-OLy,1,1,igen_deconc), + O localtmp,1,1,myThid) #endif call ecco_addcost( - I localdif,localtmp,difmask1,nnzsiv4,dosumsq, + I localdif,localtmp,difmask1,1,1,dosumsq, O objf_gencost(1,1,igen_deconc),num_gencost(1,1,igen_deconc), I myThid) endif @@ -319,21 +320,21 @@ subroutine cost_gencost_seaicev4(myThid) c---1.4.C excessive ice term: (old: heff and sst term, new: exconc) c Removing ice: model_A > 0 but obs_A==0, calc enthalpy E: if(igen_deconc.ne.0 .and. igen_exconc.ne.0) then - call ecco_zero(difmask1,nnzsiv4,zeroRL,myThid) - call ecco_zero(localdif,nnzsiv4,zeroRL,myThid) - call ecco_zero(localtmp,nnzsiv4,zeroRL,myThid) + call ecco_zero(difmask1,1,zeroRL,myThid) + call ecco_zero(localdif,1,zeroRL,myThid) + call ecco_zero(localtmp,1,zeroRL,myThid) call get_exconc_deconc( - I localobs,nnzsiv4,areabar,exconcbar,deconcbar,nnzbar, + I localobs,1,areabar,exconcbar,deconcbar,1, I difmask,'ex', O localdif,difmask1,localtmp, I myThid ) #ifdef SEAICECOST_JPL - call ecco_cp(gencost_weight(1,1,1,1,igen_exconc),nnzsiv4, - O localtmp,nnzsiv4,myThid) + call ecco_cp( gencost_weight(1-OLx,1-OLy,1,1,igen_exconc), + O localtmp,1,1,myThid) #endif call ecco_addcost( - I localdif,localtmp,difmask1,nnzsiv4,dosumsq, + I localdif,localtmp,difmask1,1,1,dosumsq, O objf_gencost(1,1,igen_exconc),num_gencost(1,1,igen_exconc), I myThid) endif @@ -347,12 +348,10 @@ subroutine cost_gencost_seaicev4(myThid) #endif /* ALLOW_SEAICE */ RETURN - end + END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#include "ECCO_OPTIONS.h" - subroutine get_exconc_deconc( I localobs,nnzobs,concbar,exconcbar,deconcbar,nnzbar, I localmask,flag_exconc_deconc, @@ -378,7 +377,8 @@ subroutine get_exconc_deconc( # include "SEAICE_PARAMS.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == @@ -396,15 +396,11 @@ subroutine get_exconc_deconc( character*2 flag_exconc_deconc -#ifdef ALLOW_GENCOST_CONTRIBUTION #ifdef ALLOW_SEAICE +#ifdef ALLOW_GENCOST_CONTRIBUTION c == local variables == integer bi,bj - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax integer i,j,k C- jmc: params SEAICE_freeze has been retired; set it locally until someone @@ -436,15 +432,6 @@ subroutine get_exconc_deconc( const1=HeatCapacity_Cp*rhoNil*drF(1) const2=SEAICE_lhFusion*SEAICE_rhoIce - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - c intialize call ecco_zero(localfld,nnzobs,zeroRL,myThid) call ecco_zero(localfldmsk,nnzobs,zeroRL,myThid) @@ -460,11 +447,11 @@ subroutine get_exconc_deconc( c E_target = -(HEFF_target*SEAICE_lhFusion*SEAICE_rhoIce) c cost=(Model-data)^2 if(flag_exconc_deconc.EQ.'de') then - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx if ( (concbar(i,j,k,bi,bj) .LE. 0.).AND. & (localobs(i,j,k,bi,bj) .GT. 0.) ) then @@ -496,11 +483,11 @@ subroutine get_exconc_deconc( c cost(Model-data)^2 if(flag_exconc_deconc.EQ.'ex') then - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx if ((localobs(i,j,k,bi,bj) .LE. SEAICE_cutoff_area).AND. & (exconcbar(i,j,k,bi,bj) .GT. SEAICE_cutoff_heff)) then @@ -529,5 +516,3 @@ subroutine get_exconc_deconc( #endif /* ALLOW_SEAICE */ RETURN END - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/ecco/cost_gencost_sshv4.F b/pkg/ecco/cost_gencost_sshv4.F index c06a4c5d85..ef555a3e60 100644 --- a/pkg/ecco/cost_gencost_sshv4.F +++ b/pkg/ecco/cost_gencost_sshv4.F @@ -1,8 +1,7 @@ #include "ECCO_OPTIONS.h" subroutine cost_gencost_sshv4( - I myThid - & ) + I myThid ) c ================================================================== c SUBROUTINE cost_gencost_sshv4 @@ -12,12 +11,13 @@ subroutine cost_gencost_sshv4( c c started: Gael Forget, Oct-2009 c -c working assumption for the time mean dynamic topography (MDT) constraint: -c the various SLA data sets (tp, ers, gfo) have been consistenty cross-referenced, -c as done in the RADS data sets. We do not need to know the reference dynamic -c topography (or SSH/Geoid). Simply it is assumed that the biases -c between instruments have been taken care of. This is only a matter -c for the MDT constraint, not for SLA constraints (see below). +c working assumption for the time mean dynamic topography (MDT) +c constraint: the various SLA data sets (tp, ers, gfo) have been +c consistenty cross-referenced, as done in the RADS data sets. We +c do not need to know the reference dynamic topography (or +c SSH/Geoid). Simply it is assumed that the biases between +c instruments have been taken care of. This is only a matter for +c the MDT constraint, not for SLA constraints (see below). c cgf 1) there are a few hardcoded numbers that will eventually be put in common cgf blocks/namelists @@ -40,14 +40,14 @@ subroutine cost_gencost_sshv4( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_SMOOTH # include "SMOOTH.h" #endif c == routine arguments == - integer myThid #ifdef ALLOW_GENCOST_CONTRIBUTION @@ -55,6 +55,8 @@ subroutine cost_gencost_sshv4( c == functions == LOGICAL MASTER_CPU_THREAD EXTERNAL MASTER_CPU_THREAD + INTEGER ILNBLNK + EXTERNAL ILNBLNK c == local variables == @@ -66,6 +68,9 @@ subroutine cost_gencost_sshv4( integer imin,imax integer irec,jrec,krec integer ilps + integer nrec_year, nrec_total, nrec_mdt_ref +c introduce use_mon to switch from using daily to monthly data if true + logical use_mon logical doglobalread logical ladinit @@ -73,7 +78,7 @@ subroutine cost_gencost_sshv4( c mapping to gencost integer igen_mdt, igen_lsc, igen_gmsl integer igen_tp, igen_ers, igen_gfo - integer igen_etaday + integer igen_etagcm _RL spval, factor _RL offset @@ -97,7 +102,7 @@ subroutine cost_gencost_sshv4( _RL tpma(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL ersma(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL gfoma(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL etaday(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL etagcm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) character*(MAX_LEN_FNAM) mdtfi, tpfi, ersfi, gfofi integer tpsta(4), erssta(4), gfosta(4) @@ -144,31 +149,38 @@ subroutine cost_gencost_sshv4( _RL anom_psMgfoobs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL anom_gfoobs(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - integer mdt_y0,mdt_y1,year,day + integer mdt_y0,mdt_y1,year integer num0 _RL junk,junkweight - integer ndaysave - _RL ndaysaveRL + integer nrecsave integer k2, k2_mdt, k2_lsc logical dosumsq - character*(80) fname - character*(80) fname4test + character*(MAX_LEN_FNAM) fname + character*(MAX_LEN_FNAM) fname4test character*(MAX_LEN_MBUF) msgbuf LOGICAL doReference LOGICAL useEtaMean -c == external functions == - - integer ilnblnk - external ilnblnk - c == end of interface == +C- Initialise (again) gencost_weight + DO k = 1, NGENCOST + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + gencost_weight(i,j,bi,bj,k) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + jtlo = myByLo(myThid) jthi = myByHi(myThid) itlo = myBxLo(myThid) @@ -185,7 +197,7 @@ subroutine cost_gencost_sshv4( igen_gfo=0 igen_lsc=0 igen_gmsl=0 - igen_etaday=0 + igen_etagcm=0 do k=1,NGENCOST if (gencost_name(k).EQ.'sshv4-mdt') igen_mdt=k if (gencost_name(k).EQ.'sshv4-tp') igen_tp=k @@ -197,32 +209,62 @@ subroutine cost_gencost_sshv4( k2_mdt=0 k2_lsc=0 - do k2 = 1, NGENPPROC + if (igen_mdt.GT.0) then + do k2 = 1, NGENPPROC if (gencost_posproc(k2,igen_mdt).EQ.'smooth') k2_mdt=k2 + enddo + endif + if (igen_lsc.GT.0) then + do k2 = 1, NGENPPROC if (gencost_posproc(k2,igen_lsc).EQ.'smooth') k2_lsc=k2 - enddo + enddo + endif + write(msgbuf,'(a,2(1x,i5))') + & 'sshv4: k2_[mdt,lsc]: ', k2_mdt, k2_lsc + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) dosumsq = .TRUE. - call ecco_zero(gencost_weight(:,:,1,1,igen_mdt),1,zeroRL,myThid) - call ecco_zero(gencost_weight(:,:,1,1,igen_lsc),1,zeroRL,myThid) - call ecco_zero(gencost_weight(:,:,1,1,igen_tp),1,zeroRL,myThid) - call ecco_zero(gencost_weight(:,:,1,1,igen_ers),1,zeroRL,myThid) - call ecco_zero(gencost_weight(:,:,1,1,igen_gfo),1,zeroRL,myThid) - if ( gencost_errfile(igen_mdt) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(igen_mdt), - & gencost_weight(:,:,1,1,igen_mdt),1,1,dosumsq,myThid) - if ( gencost_errfile(igen_lsc) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(igen_lsc), - & gencost_weight(:,:,1,1,igen_lsc),1,1,dosumsq,myThid) - if ( gencost_errfile(igen_tp) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(igen_tp), - & gencost_weight(:,:,1,1,igen_tp),1,1,dosumsq,myThid) - if ( gencost_errfile(igen_ers) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(igen_ers), - & gencost_weight(:,:,1,1,igen_ers),1,1,dosumsq,myThid) - if ( gencost_errfile(igen_gfo) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(igen_gfo), - & gencost_weight(:,:,1,1,igen_gfo),1,1,dosumsq,myThid) + if (igen_mdt.GT.0) then + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,igen_mdt), + & 1, zeroRL, myThid ) + if ( gencost_errfile(igen_mdt) .NE. ' ' ) + & call ecco_readwei( gencost_errfile(igen_mdt), + & gencost_weight(1-OLx,1-OLy,1,1,igen_mdt), + & 1, 1, 1, dosumsq, myThid ) + endif + if (igen_lsc.GT.0) then + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,igen_lsc), + & 1, zeroRL, myThid ) + if ( gencost_errfile(igen_lsc) .NE. ' ' ) + & call ecco_readwei( gencost_errfile(igen_lsc), + & gencost_weight(1-OLx,1-OLy,1,1,igen_lsc), + & 1, 1, 1, dosumsq, myThid ) + endif + if (igen_tp.GT.0) then + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,igen_tp), + & 1, zeroRL, myThid ) + if ( gencost_errfile(igen_tp) .NE. ' ' ) + & call ecco_readwei( gencost_errfile(igen_tp), + & gencost_weight(1-OLx,1-OLy,1,1,igen_tp), + & 1, 1, 1, dosumsq, myThid ) + endif + if (igen_ers.GT.0) then + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,igen_ers), + & 1, zeroRL, myThid ) + if ( gencost_errfile(igen_ers) .NE. ' ' ) + & call ecco_readwei( gencost_errfile(igen_ers), + & gencost_weight(1-OLx,1-OLy,1,1,igen_ers), + & 1, 1, 1, dosumsq, myThid ) + endif + if (igen_gfo.GT.0) then + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,igen_gfo), + & 1, zeroRL, myThid ) + if ( gencost_errfile(igen_gfo) .NE. ' ' ) + & call ecco_readwei( gencost_errfile(igen_gfo), + & gencost_weight(1-OLx,1-OLy,1,1,igen_gfo), + & 1, 1, 1, dosumsq, myThid ) + endif c switch for excluding global mean useEtaMean=.TRUE. @@ -232,16 +274,48 @@ subroutine cost_gencost_sshv4( call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , myThid) +C Check to determine use_mon and nrec_year. Check all igen_[tp,ers,gfo] +C in case some of the data files are not defined. + use_mon = .FALSE. + IF ( igen_tp.GT.0 ) use_mon = use_mon .OR. + & gencost_avgperiod(igen_tp) .EQ.'month' .OR. + & gencost_avgperiod(igen_tp) .EQ.'MONTH' + IF ( igen_ers.GT.0 ) use_mon = use_mon .OR. + & gencost_avgperiod(igen_ers) .EQ.'month' .OR. + & gencost_avgperiod(igen_ers) .EQ.'MONTH' + IF ( igen_gfo.GT.0 ) use_mon = use_mon .OR. + & gencost_avgperiod(igen_gfo).EQ.'month' .OR. + & gencost_avgperiod(igen_gfo).EQ.'MONTH' + c minimum number of observations to consider re-referenced MDT - num0=100 + nrec_year=366 + nrec_total=ndaysrec + IF (use_mon) THEN + num0=3 + nrec_mdt_ref=12 + nrec_year=12 + nrec_total=nmonsrec + else + num0=100 + nrec_mdt_ref=365 + endif + + write(msgbuf,'(a,L5,2(1x,i10),2(1x,i5))') + & ' sshv4: use_mon, nrec_year, nrec_total, num0, nrec_mdt_ref: ', + & use_mon, nrec_year, nrec_total, num0, nrec_mdt_ref + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) c determine whether or not to re-reference c-- not only model period has to fall within the mdt period -c-- but that there has to be at least 365 days of model run -c-- so for short model run, this will always get set to FALSE +c-- but that there has to be at least 365 days (or 12 months) of model +c-- run so for short model run, this will always get set to FALSE +C Note also the hard-coded years 1992,2011 here that should be +c removed at some point in the future if the reference MDT start +c date no longer falls between 1992 and 2011 doReference=.FALSE. - if ((modelstartdate(1).GT.1992*10000).AND. + IF ((modelstartdate(1).GT.1992*10000).AND. & (modelstartdate(1).LT.2011*10000).AND. - & (ndaysrec.GE.365)) doReference=.TRUE. + & (nrec_total.GE.nrec_mdt_ref)) doReference=.TRUE. write(msgbuf,'(a,l)') ' sshv4:re-reference MDT=',doReference call print_message( msgbuf, standardmessageunit, @@ -271,6 +345,8 @@ subroutine cost_gencost_sshv4( mdtfi=gencost_datafile(igen_mdt)(1:ilps) call cal_CopyDate(gencost_startdate(1,igen_mdt),mdtsta,myThid) call cal_CopyDate(gencost_enddate(1,igen_mdt), mdtend, myThid) + if (gencost_barfile(igen_mdt)(1:5).EQ.'m_eta') + & igen_etagcm=igen_mdt endif c tpfi, tpsta, tpper if (igen_tp.GT.0) then @@ -279,7 +355,7 @@ subroutine cost_gencost_sshv4( call cal_CopyDate(gencost_startdate(1,igen_tp),tpsta,myThid) tpper=gencost_period(igen_tp) if (gencost_barfile(igen_tp)(1:5).EQ.'m_eta') - & igen_etaday=igen_tp + & igen_etagcm=igen_tp endif c ersfi, erssta, ersper if (igen_ers.GT.0) then @@ -288,7 +364,7 @@ subroutine cost_gencost_sshv4( call cal_CopyDate(gencost_startdate(1,igen_ers),erssta,myThid) ersper=gencost_period(igen_ers) if (gencost_barfile(igen_ers)(1:5).EQ.'m_eta') - & igen_etaday=igen_ers + & igen_etagcm=igen_ers endif c gfofi, gfosta, gfoper if (igen_gfo.GT.0) then @@ -297,12 +373,17 @@ subroutine cost_gencost_sshv4( call cal_CopyDate(gencost_startdate(1,igen_gfo),gfosta,myThid) gfoper=gencost_period(igen_gfo) if (gencost_barfile(igen_gfo)(1:5).EQ.'m_eta') - & igen_etaday=igen_gfo + & igen_etagcm=igen_gfo endif c mdt_y0, mdt_y1 - mdt_y0=mdtsta(1)/10000 - mdt_y1=mdtend(1)/10000 +C in the case the model run is within the valid mdt years, +C we use the max/min check below to get the bound instead of +C basing on mdt years alone. +c mdt_y0=mdtsta(1)/10000 +c mdt_y1=mdtend(1)/10000 + mdt_y0=max(mdtsta(1)/10000,modelstartdate(1)/10000) + mdt_y1=min(mdtend(1)/10000,modelenddate(1)/10000) write(msgbuf,'(a,i8,a,i8)') & 'mdt[start,end]date(1): ', mdtsta(1), ',', mdtend(1) @@ -317,10 +398,9 @@ subroutine cost_gencost_sshv4( doglobalread = .false. ladinit = .false. - write(fname(1:80),'(80a)') ' ' - ilps=ilnblnk( gencost_barfile(igen_etaday) ) - write(fname(1:80),'(2a,i10.10)') - & gencost_barfile(igen_etaday)(1:ilps),'.',eccoiter + ilps=ilnblnk( gencost_barfile(igen_etagcm) ) + write(fname,'(2a,i10.10)') + & gencost_barfile(igen_etagcm)(1:ilps),'.',eccoiter cgf ======================================================= cgf PART 1: @@ -330,11 +410,14 @@ subroutine cost_gencost_sshv4( cgf mean_slaobs_mdt from mdt. cgf x At this point, mdt is the inferred SLA reference field. cgf x From there on, mdt+sla will be directly comparable to -cgf the model SSH (etaday). +cgf the model SSH (etagcm). cgf ======================================================= c-- Read mean field and mask + write(msgbuf,'(a,l)') ' sshv4:using_mdt=',using_mdt + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) if (using_mdt) & CALL READ_REC_3D_RL( mdtfi, cost_iprec, 1, & mdtob, 1, 1, myThid ) @@ -346,12 +429,12 @@ subroutine cost_gencost_sshv4( do bi = itlo,ithi do j = jmin,jmax do i = imin,imax - if ( (maskC(i,j,1,bi,bj) .eq. 0.).OR. + if ( (maskInC(i,j,bi,bj) .EQ. 0.).OR. #ifndef ALLOW_SHALLOW_ALTIMETRY & (R_low(i,j,bi,bj).GT.-200.).OR. #endif - & (mdtob(i,j,bi,bj) .lt. spval ).OR. - & (mdtob(i,j,bi,bj) .eq. 0. _d 0) ) then + & (mdtob(i,j,bi,bj) .LT. spval ).OR. + & (mdtob(i,j,bi,bj) .EQ. 0. _d 0) ) then mdtma(i,j,bi,bj) = 0. _d 0 mdtob(i,j,bi,bj) = 0. _d 0 else @@ -377,7 +460,7 @@ subroutine cost_gencost_sshv4( enddo do year=mdt_y0,mdt_y1 - do day=1,366 + do irec=1,nrec_year do bj = jtlo,jthi do bi = itlo,ithi @@ -394,47 +477,75 @@ subroutine cost_gencost_sshv4( enddo enddo +#ifdef ECCO_VERBOSE + write(msgbuf,'(a,3(1x,l))') ' sshv4:using_[tpj,ers,gfo]: ', + & using_tpj, using_ers, using_gfo + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) +#endif if (using_tpj) - & call cost_sla_read_yd( tpfi, tpsta, + & call cost_sla_read_yd( tpfi, tpsta, use_mon, & tpob, tpma, - & year, day, myThid ) + & year, irec, myThid ) if (using_ers) - & call cost_sla_read_yd( ersfi, erssta, + & call cost_sla_read_yd( ersfi, erssta, use_mon, & ersob, ersma, - & year, day, myThid ) + & year, irec, myThid ) if (using_gfo) - & call cost_sla_read_yd( gfofi, gfosta, + & call cost_sla_read_yd( gfofi, gfosta, use_mon, & gfoob, gfoma, - & year, day, myThid ) + & year, irec, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + if (igen_tp .GT. 0) then + do bj = jtlo,jthi + do bi = itlo,ithi + do j = jmin,jmax + do i = imin,imax if ( tpma(i,j,bi,bj)*mdtma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_tp) .NE. 0. ) then mean_slaobs_mdt(i,j,bi,bj)= mean_slaobs_mdt(i,j,bi,bj)+ & tpob(i,j,bi,bj) mean_slaobs_NUM(i,j,bi,bj)= mean_slaobs_NUM(i,j,bi,bj)+1. _d 0 endif + enddo + enddo + enddo + enddo + endif + if (igen_ers .GT. 0) then + do bj = jtlo,jthi + do bi = itlo,ithi + do j = jmin,jmax + do i = imin,imax if ( ersma(i,j,bi,bj)*mdtma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_ers) .NE. 0. ) then mean_slaobs_mdt(i,j,bi,bj)= mean_slaobs_mdt(i,j,bi,bj)+ & ersob(i,j,bi,bj) mean_slaobs_NUM(i,j,bi,bj)= mean_slaobs_NUM(i,j,bi,bj)+1. _d 0 endif + enddo + enddo + enddo + enddo + endif + if (igen_gfo .GT. 0) then + do bj = jtlo,jthi + do bi = itlo,ithi + do j = jmin,jmax + do i = imin,imax if ( gfoma(i,j,bi,bj)*mdtma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_gfo) .NE. 0. ) then mean_slaobs_mdt(i,j,bi,bj)= mean_slaobs_mdt(i,j,bi,bj)+ & gfoob(i,j,bi,bj) mean_slaobs_NUM(i,j,bi,bj)= mean_slaobs_NUM(i,j,bi,bj)+1. _d 0 endif + enddo enddo enddo enddo - enddo + endif - enddo !do day=1,366 + enddo !do irec=1,nrec_year enddo !do year=mdt_y0,mdt_y1 do bj = jtlo,jthi @@ -457,23 +568,27 @@ subroutine cost_gencost_sshv4( c-- smooth mean_slaobs_mdt: - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'sla2mdt_raw' + if (igen_mdt.GT.0) then + if (gencost_outputlevel(igen_mdt).GT.0) then + write(fname4test,'(1a)') 'sla2mdt_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & mean_slaobs_mdt, 1, 1, myThid ) - endif + endif #ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.(k2_mdt.GT.0) ) - & call smooth_hetero2d(mean_slaobs_mdt,maskc, + if ( useSMOOTH.AND.(k2_mdt.GT.0) ) then + call smooth_hetero2d(mean_slaobs_mdt,maskInC, & gencost_posproc_c(k2_mdt,igen_mdt), & gencost_posproc_i(k2_mdt,igen_mdt),myThid) -#endif - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'sla2mdt_smooth' - CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, - & mean_slaobs_mdt, 1, 1, myThid ) + if (gencost_outputlevel(igen_mdt).GT.0) then + write(fname4test,'(1a)') 'sla2mdt_smooth' + CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, + & mean_slaobs_mdt, 1, 1, myThid ) + endif + endif +#endif +c endif igen_mdt .gt. 0 endif c-- re-reference mdt: @@ -493,12 +608,12 @@ subroutine cost_gencost_sshv4( enddo cgf ======================================================= -cgf PART 2: compute sample means of etaday-slaobs over the -cgf period that is covered by the model (i.e. etaday). -cgf x for all SLA data sets together: mean_psMssh_all, mean_psMssh_all_MSK, -cgf and offset will be used in PART 3 (MDT cost term). -cgf x for each SLA data individually. mean_psMtpobs, mean_psMtpobs_MS, etc. -cgf will be used in PART 4&5 (SLA cost terms). +cgf PART 2: compute sample means of etagcm-slaobs over the +cgf period that is covered by the model (i.e. etagcm). +cgf x for all SLA data sets together: mean_psMssh_all, mean_psMssh_all_MSK, +cgf and offset will be used in PART 3 (MDT cost term). +cgf x for each SLA data individually. mean_psMtpobs, mean_psMtpobs_MS, etc. +cgf will be used in PART 4&5 (SLA cost terms). cgf ======================================================= do bj = jtlo,jthi @@ -527,19 +642,27 @@ subroutine cost_gencost_sshv4( offset = 0. _d 0 offset_sum = 0. _d 0 - do irec = 1, ndaysrec +#ifdef ECCO_VERBOSE + write(msgbuf,'(a,3(1x,i6))') + & 'sshv4: before entering irec loop, n[mon,day]srec,nrec_total: ', + & nmonsrec,ndaysrec,nrec_total + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) +#endif + + do irec = 1, nrec_total #ifdef ALLOW_AUTODIFF - call active_read_xy( fname, etaday, irec, doglobalread, + call active_read_xy( fname, etagcm, irec, doglobalread, & ladinit, eccoiter, myThid, - & gencost_dummy(igen_etaday) ) + & gencost_dummy(igen_etagcm) ) #else - CALL READ_REC_XY_RL( fname, etaday, iRec, 1, myThid ) + CALL READ_REC_XY_RL( fname, etagcm, iRec, 1, myThid ) #endif if (.NOT.useEtaMean) - & CALL REMOVE_MEAN_RL( 1, etaday, maskInC, maskInC, rA, drF, - & 'etaday', 0. _d 0, myThid ) + & CALL REMOVE_MEAN_RL( 1, etagcm, maskInC, maskInC, rA, drF, + & 'etagcm', zeroRL, 1, myThid ) do bj = jtlo,jthi do bi = itlo,ithi @@ -557,17 +680,17 @@ subroutine cost_gencost_sshv4( enddo if (using_tpj) - & call cost_sla_read( tpfi, tpsta, tpper, + & call cost_sla_read( tpfi, tpsta, tpper, use_mon, & zeroRL, zeroRL, & tpob, tpma, & irec, myThid ) if (using_ers) - & call cost_sla_read( ersfi, erssta, ersper, + & call cost_sla_read( ersfi, erssta, ersper, use_mon, & zeroRL, zeroRL, & ersob, ersma, & irec, myThid ) if (using_gfo) - & call cost_sla_read( gfofi, gfosta, gfoper, + & call cost_sla_read( gfofi, gfosta, gfoper, use_mon, & zeroRL, zeroRL, & gfoob, gfoma, & irec, myThid ) @@ -577,43 +700,49 @@ subroutine cost_gencost_sshv4( do j = jmin,jmax do i = imin,imax psmean(i,j,bi,bj) = psmean(i,j,bi,bj) + - & etaday(i,j,bi,bj) / float(ndaysrec) - if ( tpma(i,j,bi,bj)* + & etagcm(i,j,bi,bj) / float(nrec_total) + if ( igen_tp .GT. 0 ) then + if ( tpma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_tp) .NE. 0. ) then mean_slaobs_model(i,j,bi,bj)= & mean_slaobs_model(i,j,bi,bj)+tpob(i,j,bi,bj) mean_psMtpobs(i,j,bi,bj) = & mean_psMtpobs(i,j,bi,bj) + - & etaday(i,j,bi,bj)-tpob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-tpob(i,j,bi,bj) mean_psMtpobs_NUM(i,j,bi,bj) = & mean_psMtpobs_NUM(i,j,bi,bj) + 1. _d 0 + endif endif - if ( ersma(i,j,bi,bj)* + if ( igen_ers .GT. 0 ) then + if ( ersma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_ers) .NE. 0. ) then mean_slaobs_model(i,j,bi,bj)= & mean_slaobs_model(i,j,bi,bj)+ersob(i,j,bi,bj) mean_psMersobs(i,j,bi,bj) = & mean_psMersobs(i,j,bi,bj) + - & etaday(i,j,bi,bj)-ersob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-ersob(i,j,bi,bj) mean_psMersobs_NUM(i,j,bi,bj) = & mean_psMersobs_NUM(i,j,bi,bj) + 1. _d 0 + endif endif - if ( gfoma(i,j,bi,bj)* + if ( igen_gfo .GT. 0 ) then + if ( gfoma(i,j,bi,bj)* & gencost_weight(i,j,bi,bj,igen_gfo) .NE. 0. ) then mean_slaobs_model(i,j,bi,bj)= & mean_slaobs_model(i,j,bi,bj)+gfoob(i,j,bi,bj) mean_psMgfoobs(i,j,bi,bj) = & mean_psMgfoobs(i,j,bi,bj) + - & etaday(i,j,bi,bj)-gfoob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-gfoob(i,j,bi,bj) mean_psMgfoobs_NUM(i,j,bi,bj) = & mean_psMgfoobs_NUM(i,j,bi,bj) + 1. _d 0 + endif endif enddo enddo enddo enddo -c-- END loop over records for the first time. +c-- END loop over irec records for the first time. enddo call ecco_zero(num0array,1,oneRL,myThid) @@ -709,9 +838,9 @@ subroutine cost_gencost_sshv4( _GLOBAL_SUM_RL( offset , myThid ) _GLOBAL_SUM_RL( offset_sum , myThid ) -catn--- add warning that written mean_slaobs_model is all zero -c due to having less data points that hardcoded num0 - num0total=0. _d 0 +C -- add warning that written mean_slaobs_model is all zero +c due to having less data points that hardcoded num0 + num0total=0. _d 0 do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax @@ -721,7 +850,7 @@ subroutine cost_gencost_sshv4( enddo enddo enddo - if(num0total.lt.1. _d 0) then + if(num0total.LT.1. _d 0) then write(msgbuf,'(A,i5,A)') & '** WARNING ** S/R COST_GENCOST_SSHV4: There are <',num0,' pts' call print_message( msgbuf, errormessageunit, @@ -735,9 +864,9 @@ subroutine cost_gencost_sshv4( call print_message( msgbuf, errormessageunit, & SQUEEZE_RIGHT , myThid) endif -catn------- - if (offset_sum .eq. 0.0) then + if (igen_gmsl.GT.0) then + if (offset_sum .EQ. 0.0) then if (gencost_outputlevel(igen_gmsl).GT.0) then _BEGIN_MASTER( myThid ) write(msgbuf,'(a)') ' sshv4: offset_sum = zero!' @@ -745,8 +874,8 @@ subroutine cost_gencost_sshv4( & SQUEEZE_RIGHT , myThid) _END_MASTER( myThid ) endif -c stop ' ... stopped in cost_ssh.' - else +c stop ' ... stopped in cost_ssh.' + else if (gencost_outputlevel(igen_gmsl).GT.0) then _BEGIN_MASTER( myThid ) write(msgbuf,'(a,2d22.15)') ' sshv4:offset,sum=', @@ -755,10 +884,16 @@ subroutine cost_gencost_sshv4( & SQUEEZE_RIGHT , myThid) _END_MASTER( myThid ) endif + endif +c endif igen_gmsl .gt. 0 endif c-- Compute (average) offset - offset = offset / offset_sum + if ( offset_sum.NE.0. _d 0 ) then + offset = offset / offset_sum + else + offset = 0. _d 0 + endif c-- subtract offset from mean_psMssh_all and psmean do bj = jtlo,jthi @@ -794,61 +929,53 @@ subroutine cost_gencost_sshv4( enddo enddo enddo - enddo + enddo c-- smooth mean_psMssh_all - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'mdtdiff_raw' - CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, - & mean_psMssh_all, 1, 1, myThid ) - endif - -#ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.(k2_mdt.GT.0) ) - & call smooth_hetero2d(mean_psMssh_all,maskc, - & gencost_posproc_c(k2_mdt,igen_mdt), - & gencost_posproc_i(k2_mdt,igen_mdt),myThid) -#endif - - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'mdtdiff_smooth' + if (igen_mdt.GT.0) then + if (gencost_outputlevel(igen_mdt).GT.0) then + write(fname4test,'(1a)') 'mdtdiff_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & mean_psMssh_all, 1, 1, myThid ) - endif - - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'sla2model_raw' + write(fname4test,'(1a)') 'sla2model_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & mean_slaobs_model, 1, 1, myThid ) - endif + endif #ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.(k2_mdt.GT.0) ) - & call smooth_hetero2d(mean_slaobs_model,maskc, + if ( useSMOOTH.AND.(k2_mdt.GT.0) ) then + call smooth_hetero2d(mean_psMssh_all,maskInC, + & gencost_posproc_c(k2_mdt,igen_mdt), + & gencost_posproc_i(k2_mdt,igen_mdt),myThid) + call smooth_hetero2d(mean_slaobs_model,maskInC, & gencost_posproc_c(k2_mdt,igen_mdt), & gencost_posproc_i(k2_mdt,igen_mdt),myThid) -#endif - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'sla2model_smooth' - CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, - & mean_slaobs_model, 1, 1, myThid ) - endif + if (gencost_outputlevel(igen_mdt).GT.0) then + write(fname4test,'(1a)') 'mdtdiff_smooth' + CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, + & mean_psMssh_all, 1, 1, myThid ) + write(fname4test,'(1a)') 'sla2model_smooth' + CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, + & mean_slaobs_model, 1, 1, myThid ) + endif + endif +#endif cgf at this point: -cgf 1) mean_psMssh_all is the sample mean , +cgf 1) mean_psMssh_all is the sample mean , cgf to which a smoothing filter has been applied. -cgf 2) mean_psMtpobs is the (unsmoothed) sample mean . +cgf 2) mean_psMtpobs is the (unsmoothed) sample mean . cgf And similarly for ers and gfo, each treated separately. cgf ======================================================= cgf PART 3: compute MDT cost term cgf ======================================================= - do bj = jtlo,jthi + do bj = jtlo,jthi do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + do j = jmin,jmax + do i = imin,imax if (mean_psMssh_all_MSK(i,j,bi,bj).NE.0. _d 0) then junk = mean_psMssh_all(i,j,bi,bj) junkweight = gencost_weight(i,j,bi,bj,igen_mdt) @@ -859,38 +986,55 @@ subroutine cost_gencost_sshv4( endif objf_gencost(bi,bj,igen_mdt) = objf_gencost(bi,bj,igen_mdt) & + junk*junk*junkweight - if ( junkweight .ne. 0. ) num_gencost(bi,bj,igen_mdt) = + if ( junkweight .NE. 0. ) num_gencost(bi,bj,igen_mdt) = & num_gencost(bi,bj,igen_mdt) + 1. _d 0 diagnosfld(i,j,bi,bj) = junk*junk*junkweight - enddo enddo + enddo enddo - enddo + enddo - if (gencost_outputlevel(igen_mdt).GT.0) then - write(fname4test(1:80),'(1a)') 'misfits_mdt' + if (gencost_outputlevel(igen_mdt).GT.0) then + write(fname4test,'(1a)') 'misfits_mdt' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & diagnosfld, 1, 1, myThid ) + endif +c endif igen_mdt .gt. 0 endif cgf ======================================================= cgf PART 4: compute smooth SLA cost term cgf ======================================================= - ndaysave=35 - ndaysaveRL=ndaysave + if (use_mon) then + nrecsave=1 + else + nrecsave=35 + endif -catn add a warning if have less nrecday than the hardcoded 35days - tempinteger=ndaysrec-ndaysave+1 - if(tempinteger.lt.1) then +C add a warning if nrec_total is less than the hardcoded nrecsave + tempinteger=nrec_total-nrecsave+1 +#ifdef ECCO_VERBOSE + write(msgbuf,'(A,i5,1x,i5,1x,i5)') + & 'sshv4: nrec[save,_total],tempinteger', + & nrecsave,nrec_total,tempinteger +#endif + if(tempinteger.LT.1) then write(msgbuf,'(A,i5)') - & '** WARNING ** S/R COST_GENCOST_SSHV4: There are < ',ndaysave - call print_message( msgbuf, errormessageunit, - & SQUEEZE_RIGHT , myThid) - write(msgbuf,'(A)') + & '** WARNING ** S/R COST_GENCOST_SSHV4: There are < ',nrecsave + call print_message( msgbuf, errormessageunit, + & SQUEEZE_RIGHT , myThid) + if (use_mon) then + write(msgbuf,'(A)') + & ' months required to calculate running mean tp+ers+gfo.' + call print_message( msgbuf, errormessageunit, + & SQUEEZE_RIGHT , myThid) + else + write(msgbuf,'(A)') & ' days required to calculate running mean tp+ers+gfo.' - call print_message( msgbuf, errormessageunit, - & SQUEEZE_RIGHT , myThid) + call print_message( msgbuf, errormessageunit, + & SQUEEZE_RIGHT , myThid) + endif write(msgbuf,'(A)') & 'PART 4 in cost_gencost_sshv4 is skipped entirely, and there' call print_message( msgbuf, errormessageunit, @@ -900,9 +1044,8 @@ subroutine cost_gencost_sshv4( call print_message( msgbuf, errormessageunit, & SQUEEZE_RIGHT , myThid) endif -catn ----------- - do irec = 1, ndaysrec-ndaysave+1 + do irec = 1, nrec_total-nrecsave+1 do bj = jtlo,jthi do bi = itlo,ithi @@ -919,24 +1062,24 @@ subroutine cost_gencost_sshv4( enddo enddo -c PART 4.1: compute running sample average over ndaysave +c PART 4.1: compute running sample average over nrecsave c ------------------------------------------------------ - do jrec=1,ndaysave + do jrec=1,nrecsave krec=irec+jrec-1 #ifdef ALLOW_AUTODIFF - call active_read_xy( fname, etaday, krec, doglobalread, + call active_read_xy( fname, etagcm, krec, doglobalread, & ladinit, eccoiter, myThid, - & gencost_dummy(igen_etaday) ) + & gencost_dummy(igen_etagcm) ) #else - CALL READ_REC_XY_RL( fname, etaday, kRec, 1, myThid ) + CALL READ_REC_XY_RL( fname, etagcm, kRec, 1, myThid ) #endif if (.NOT.useEtaMean) - & CALL REMOVE_MEAN_RL( 1, etaday, maskInC, maskInC, rA, drF, - & 'etaday', 0. _d 0, myThid ) + & CALL REMOVE_MEAN_RL( 1, etagcm, maskInC, maskInC, rA, drF, + & 'etagcm', zeroRL, 1, myThid ) do bj = jtlo,jthi do bi = itlo,ithi @@ -954,17 +1097,17 @@ subroutine cost_gencost_sshv4( enddo if (using_tpj) - & call cost_sla_read( tpfi, tpsta, tpper, + & call cost_sla_read( tpfi, tpsta, tpper, use_mon, & zeroRL, zeroRL, & tpob, tpma, & krec, myThid ) if (using_ers) - & call cost_sla_read( ersfi, erssta, ersper, + & call cost_sla_read( ersfi, erssta, ersper, use_mon, & zeroRL, zeroRL, & ersob, ersma, & krec, myThid ) if (using_gfo) - & call cost_sla_read( gfofi, gfosta, gfoper, + & call cost_sla_read( gfofi, gfosta, gfoper, use_mon, & zeroRL, zeroRL, & gfoob, gfoma, & krec, myThid ) @@ -976,37 +1119,37 @@ subroutine cost_gencost_sshv4( if ( tpma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj) & .NE.0. ) then anom_psMslaobs(i,j,bi,bj)= anom_psMslaobs(i,j,bi,bj)+ - & etaday(i,j,bi,bj)-tpob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-tpob(i,j,bi,bj) & -mean_psMslaobs(i,j,bi,bj) anom_slaobs(i,j,bi,bj)= anom_slaobs(i,j,bi,bj)+ & tpob(i,j,bi,bj) anom_psMslaobs_NUM(i,j,bi,bj)= & anom_psMslaobs_NUM(i,j,bi,bj)+1. _d 0 - if ( (2*jrec.EQ.ndaysave).OR.(2*jrec-1.EQ.ndaysave) ) + if ( (2*jrec.EQ.nrecsave).OR.(2*jrec-1.EQ.nrecsave) ) & anom_psMslaobs_MSK(i,j,bi,bj) = 1. _d 0 endif if ( ersma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj) & .NE.0. ) then anom_psMslaobs(i,j,bi,bj)= anom_psMslaobs(i,j,bi,bj)+ - & etaday(i,j,bi,bj)-ersob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-ersob(i,j,bi,bj) & -mean_psMslaobs(i,j,bi,bj) anom_slaobs(i,j,bi,bj)= anom_slaobs(i,j,bi,bj)+ & ersob(i,j,bi,bj) anom_psMslaobs_NUM(i,j,bi,bj)= & anom_psMslaobs_NUM(i,j,bi,bj)+1. _d 0 - if ( (2*jrec.EQ.ndaysave).OR.(2*jrec-1.EQ.ndaysave) ) + if ( (2*jrec.EQ.nrecsave).OR.(2*jrec-1.EQ.nrecsave) ) & anom_psMslaobs_MSK(i,j,bi,bj) = 1. _d 0 endif if ( gfoma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj) & .NE.0. ) then anom_psMslaobs(i,j,bi,bj)= anom_psMslaobs(i,j,bi,bj)+ - & etaday(i,j,bi,bj)-gfoob(i,j,bi,bj) + & etagcm(i,j,bi,bj)-gfoob(i,j,bi,bj) & -mean_psMslaobs(i,j,bi,bj) anom_slaobs(i,j,bi,bj)= anom_slaobs(i,j,bi,bj)+ & gfoob(i,j,bi,bj) anom_psMslaobs_NUM(i,j,bi,bj)= & anom_psMslaobs_NUM(i,j,bi,bj)+1. _d 0 - if ( (2*jrec.EQ.ndaysave).OR.(2*jrec-1.EQ.ndaysave) ) + if ( (2*jrec.EQ.nrecsave).OR.(2*jrec-1.EQ.nrecsave) ) & anom_psMslaobs_MSK(i,j,bi,bj) = 1. _d 0 endif enddo @@ -1014,7 +1157,7 @@ subroutine cost_gencost_sshv4( enddo enddo - enddo !do jrec=1,ndaysave + enddo !do jrec=1,nrecsave do bj = jtlo,jthi do bi = itlo,ithi @@ -1045,6 +1188,7 @@ subroutine cost_gencost_sshv4( slaoffset_sum = 0. _d 0 slaoffset_weight = 0. _d 0 + if (igen_lsc.GT.0) then do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax @@ -1055,8 +1199,10 @@ subroutine cost_gencost_sshv4( slaoffset=slaoffset+RA(i,j,bi,bj)* & anom_psMslaobs(i,j,bi,bj) slaoffset_sum=slaoffset_sum+RA(i,j,bi,bj) -c Of interest is the total weight for an average of N indep sample (not the area weighted average of weight) -c Since slaoffset is itself area weighted, however, the total weight is only approx the simple weight sum : +C Of interest is the total weight for an average of N +C indep sample (not the area weighted average of weight) +C Since slaoffset is itself area weighted, however, the +C total weight is only approx the simple weight sum: slaoffset_weight=slaoffset_weight+ & gencost_weight(i,j,bi,bj,igen_lsc) endif @@ -1069,28 +1215,35 @@ subroutine cost_gencost_sshv4( _GLOBAL_SUM_RL( slaoffset_weight , myThid ) _GLOBAL_SUM_RL( slaoffset_sum , myThid ) - if (slaoffset_sum .eq. 0.0) then - if (gencost_outputlevel(igen_gmsl).GT.0) then - _BEGIN_MASTER( myThid ) - write(msgbuf,'(a)') ' sshv4: slaoffset_sum = zero!' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , myThid) - _END_MASTER( myThid ) - endif + if (igen_gmsl.GT.0) then + if (slaoffset_sum .EQ. 0.0) then + if (gencost_outputlevel(igen_gmsl).GT.0) then + _BEGIN_MASTER( myThid ) + write(msgbuf,'(a)') ' sshv4: slaoffset_sum = zero!' + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) + _END_MASTER( myThid ) + endif c stop ' ... stopped in cost_ssh.' - else - if (gencost_outputlevel(igen_gmsl).GT.0) then - _BEGIN_MASTER( myThid ) - write(msgbuf,'(a,3d22.15)') ' sshv4:slaoffset,sum,weight=', - & slaoffset,slaoffset_sum,slaoffset_weight - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , myThid) - _END_MASTER( myThid ) + else + if (gencost_outputlevel(igen_gmsl).GT.0) then + _BEGIN_MASTER( myThid ) + write(msgbuf,'(a,3d22.15)') ' sshv4:slaoffset,sum,weight=', + & slaoffset,slaoffset_sum,slaoffset_weight + call print_message( msgbuf, standardmessageunit, + & SQUEEZE_RIGHT , myThid) + _END_MASTER( myThid ) + endif endif - endif +c endif igen_gmsl .gt. 0 + endif c-- Compute (average) slaoffset - slaoffset = slaoffset / slaoffset_sum + if (slaoffset_sum.NE.0. _d 0) then + slaoffset = slaoffset / slaoffset_sum + else + slaoffset = 0. _d 0 + endif c-- Subtract slaoffset from anom_psMslaobs do bj = jtlo,jthi @@ -1117,35 +1270,33 @@ subroutine cost_gencost_sshv4( c ---------------------------------------- if (gencost_outputlevel(igen_lsc).GT.0) then - write(fname4test(1:80),'(1a)') 'sladiff_raw' + write(fname4test,'(1a)') 'sladiff_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_psMslaobs, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_raw' + write(fname4test,'(1a)') 'slaobs_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_slaobs, irec, 1, myThid ) endif #ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.(k2_lsc.GT.0) ) - & call smooth_hetero2d(anom_psMslaobs,maskc, + if ( useSMOOTH.AND.(k2_lsc.GT.0) ) then + call smooth_hetero2d(anom_psMslaobs,maskInC, & gencost_posproc_c(k2_lsc,igen_lsc), & gencost_posproc_i(k2_lsc,igen_lsc),myThid) -#endif - - if (gencost_outputlevel(igen_lsc).GT.0) then -#ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.(k2_lsc.GT.0) ) - & call smooth_hetero2d(anom_slaobs,maskc, + call smooth_hetero2d(anom_slaobs,maskInC, & gencost_posproc_c(k2_lsc,igen_lsc), & gencost_posproc_i(k2_lsc,igen_lsc),myThid) -#endif - write(fname4test(1:80),'(1a)') 'sladiff_smooth' - CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, - & anom_psMslaobs, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_smooth' - CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, - & anom_slaobs, irec, 1, myThid ) + + if (gencost_outputlevel(igen_lsc).GT.0) then + write(fname4test,'(1a)') 'sladiff_smooth' + CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, + & anom_psMslaobs, irec, 1, myThid ) + write(fname4test,'(1a)') 'slaobs_smooth' + CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, + & anom_slaobs, irec, 1, myThid ) + endif endif +#endif c PART 4.3: compute cost function term c ------------------------------------ @@ -1175,20 +1326,23 @@ subroutine cost_gencost_sshv4( enddo enddo - if (gencost_outputlevel(igen_lsc).GT.0) then - write(fname4test(1:80),'(1a)') 'sladiff_subsample' + if (gencost_outputlevel(igen_lsc).GT.0) then + write(fname4test,'(1a)') 'sladiff_subsample' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_psMslaobs_SUB, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_subsample' + write(fname4test,'(1a)') 'slaobs_subsample' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_slaobs_SUB, irec, 1, myThid ) + endif + +c endif igen_lsc .gt. 0 endif c PART 4.4: compute cost function term for global mean sea level c -------------------------------------------------------------- - IF ( ( MASTER_CPU_THREAD(myThid).AND.(igen_gmsl.NE.0) ).AND. - & ( slaoffset_sum.GT.0.25 _d 0 * globalArea ) ) THEN + IF ( MASTER_CPU_THREAD(myThid) .AND. ( igen_gmsl.GT.0 ) + & .AND. ( slaoffset_sum.GT.0.25 _d 0 * globalArea ) ) THEN junk=slaoffset junkweight=1. _d 0 objf_gencost(1,1,igen_gmsl) = objf_gencost(1,1,igen_gmsl) @@ -1203,19 +1357,19 @@ subroutine cost_gencost_sshv4( cgf ======================================================= c time associated with this ndaysrec mean - krec = irec + (ndaysave/2) + krec = irec + (nrecsave/2) #ifdef ALLOW_AUTODIFF - call active_read_xy( fname, etaday, krec, doglobalread, + call active_read_xy( fname, etagcm, krec, doglobalread, & ladinit, eccoiter, myThid, - & gencost_dummy(igen_etaday) ) + & gencost_dummy(igen_etagcm) ) #else - CALL READ_REC_XY_RL( fname, etaday, kRec, 1, myThid ) + CALL READ_REC_XY_RL( fname, etagcm, kRec, 1, myThid ) #endif if (.NOT.useEtaMean) - & CALL REMOVE_MEAN_RL( 1, etaday, maskInC, maskInC, rA, drF, - & 'etaday', 0. _d 0, myThid ) + & CALL REMOVE_MEAN_RL( 1, etagcm, maskInC, maskInC, rA, drF, + & 'etagcm', zeroRL, 1, myThid ) do bj = jtlo,jthi do bi = itlo,ithi @@ -1233,17 +1387,17 @@ subroutine cost_gencost_sshv4( enddo if (using_tpj) - & call cost_sla_read( tpfi, tpsta, tpper, + & call cost_sla_read( tpfi, tpsta, tpper, use_mon, & zeroRL, zeroRL, & tpob, tpma, & krec, myThid ) if (using_ers) - & call cost_sla_read( ersfi, erssta, ersper, + & call cost_sla_read( ersfi, erssta, ersper, use_mon, & zeroRL, zeroRL, & ersob, ersma, & krec, myThid ) if (using_gfo) - & call cost_sla_read( gfofi, gfosta, gfoper, + & call cost_sla_read( gfofi, gfosta, gfoper, use_mon, & zeroRL, zeroRL, & gfoob, gfoma, & krec, myThid ) @@ -1270,7 +1424,7 @@ subroutine cost_gencost_sshv4( if ( tpma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj).NE.0. ) & then anom_psMtpobs(i,j,bi,bj)= - & etaday(i,j,bi,bj) - tpob(i,j,bi,bj) + & etagcm(i,j,bi,bj) - tpob(i,j,bi,bj) & - mean_psMslaobs(i,j,bi,bj) - slaoffset & - anom_psMslaobs(i,j,bi,bj) anom_tpobs(i,j,bi,bj)=tpob(i,j,bi,bj) - slaoffset @@ -1279,7 +1433,7 @@ subroutine cost_gencost_sshv4( if ( ersma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj).NE.0. ) & then anom_psMersobs(i,j,bi,bj)= - & etaday(i,j,bi,bj) - ersob(i,j,bi,bj) + & etagcm(i,j,bi,bj) - ersob(i,j,bi,bj) & - mean_psMslaobs(i,j,bi,bj) - slaoffset & - anom_psMslaobs(i,j,bi,bj) anom_ersobs(i,j,bi,bj)=ersob(i,j,bi,bj) - slaoffset @@ -1288,7 +1442,7 @@ subroutine cost_gencost_sshv4( if ( gfoma(i,j,bi,bj)*mean_psMslaobs_MSK(i,j,bi,bj).NE.0. ) & then anom_psMgfoobs(i,j,bi,bj)= - & etaday(i,j,bi,bj) - gfoob(i,j,bi,bj) + & etagcm(i,j,bi,bj) - gfoob(i,j,bi,bj) & - mean_psMslaobs(i,j,bi,bj) - slaoffset & - anom_psMslaobs(i,j,bi,bj) anom_gfoobs(i,j,bi,bj)=gfoob(i,j,bi,bj) - slaoffset @@ -1299,33 +1453,39 @@ subroutine cost_gencost_sshv4( enddo enddo - if (gencost_outputlevel(igen_tp).GT.0) then - write(fname4test(1:80),'(1a)') 'sladiff_tp_raw' + if ( igen_tp .GT. 0 ) then + if (gencost_outputlevel(igen_tp).GT.0) then + write(fname4test,'(1a)') 'sladiff_tp_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_psMtpobs, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_tp_raw' + write(fname4test,'(1a)') 'slaobs_tp_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_tpobs, irec, 1, myThid ) + endif endif - if (gencost_outputlevel(igen_ers).GT.0) then - write(fname4test(1:80),'(1a)') 'sladiff_ers_raw' + if ( igen_ers .GT. 0 ) then + if (gencost_outputlevel(igen_ers).GT.0) then + write(fname4test,'(1a)') 'sladiff_ers_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_psMersobs, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_ers_raw' + write(fname4test,'(1a)') 'slaobs_ers_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_ersobs, irec, 1, myThid ) + endif endif - if (gencost_outputlevel(igen_gfo).GT.0) then - write(fname4test(1:80),'(1a)') 'sladiff_gfo_raw' + if ( igen_gfo .GT. 0 ) then + if (gencost_outputlevel(igen_gfo).GT.0) then + write(fname4test,'(1a)') 'sladiff_gfo_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_psMgfoobs, irec, 1, myThid ) - write(fname4test(1:80),'(1a)') 'slaobs_gfo_raw' + write(fname4test,'(1a)') 'slaobs_gfo_raw' CALL WRITE_REC_3D_RL( fname4test, precFloat32, 1, & anom_gfoobs, irec, 1, myThid ) + endif endif - + if ( igen_tp .GT. 0 ) then do bj = jtlo,jthi do bi = itlo,ithi do j = jmin,jmax @@ -1337,9 +1497,19 @@ subroutine cost_gencost_sshv4( junk = anom_psMtpobs(i,j,bi,bj) objf_gencost(bi,bj,igen_tp) = & objf_gencost(bi,bj,igen_tp)+junk*junk*junkweight - if ( junkweight .ne. 0. ) + if ( junkweight .NE. 0. ) & num_gencost(bi,bj,igen_tp) = & num_gencost(bi,bj,igen_tp) + 1. _d 0 + enddo + enddo + enddo + enddo + endif + if ( igen_ers .GT. 0 ) then + do bj = jtlo,jthi + do bi = itlo,ithi + do j = jmin,jmax + do i = imin,imax c-- The array ersobs contains SSH anomalies. junkweight = mean_psMslaobs_MSK(i,j,bi,bj) & *gencost_weight(i,j,bi,bj,igen_ers) @@ -1347,9 +1517,19 @@ subroutine cost_gencost_sshv4( junk = anom_psMersobs(i,j,bi,bj) objf_gencost(bi,bj,igen_ers) = & objf_gencost(bi,bj,igen_ers)+junk*junk*junkweight - if ( junkweight .ne. 0. ) + if ( junkweight .NE. 0. ) & num_gencost(bi,bj,igen_ers) = & num_gencost(bi,bj,igen_ers) + 1. _d 0 + enddo + enddo + enddo + enddo + endif + if ( igen_gfo .GT. 0 ) then + do bj = jtlo,jthi + do bi = itlo,ithi + do j = jmin,jmax + do i = imin,imax c-- The array gfoobs contains SSH anomalies. junkweight = mean_psMslaobs_MSK(i,j,bi,bj) & *gencost_weight(i,j,bi,bj,igen_gfo) @@ -1357,15 +1537,16 @@ subroutine cost_gencost_sshv4( junk = anom_psMgfoobs(i,j,bi,bj) objf_gencost(bi,bj,igen_gfo) = & objf_gencost(bi,bj,igen_gfo)+junk*junk*junkweight - if ( junkweight .ne. 0. ) + if ( junkweight .NE. 0. ) & num_gencost(bi,bj,igen_gfo) = & num_gencost(bi,bj,igen_gfo) + 1. _d 0 - enddo + enddo enddo enddo enddo + endif - enddo + enddo !do irec = 1, nrec_total-nrecsave+1 #endif /* ifdef ALLOW_GENCOST_CONTRIBUTION */ diff --git a/pkg/ecco/cost_gencost_sstv4.F b/pkg/ecco/cost_gencost_sstv4.F index 1710049243..42b95e54d5 100644 --- a/pkg/ecco/cost_gencost_sstv4.F +++ b/pkg/ecco/cost_gencost_sstv4.F @@ -29,7 +29,8 @@ subroutine cost_gencost_sstv4( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_SMOOTH # include "SMOOTH.h" @@ -71,8 +72,8 @@ subroutine cost_gencost_sstv4( integer k2, k2_lsc - character*(80) fname - character*(80) fname2 + character*(MAX_LEN_FNAM) fname + character*(MAX_LEN_FNAM) fname2 #ifdef ALLOW_ECCO_DEBUG character*(MAX_LEN_MBUF) msgBuf @@ -133,14 +134,18 @@ subroutine cost_gencost_sstv4( c ------ dosumsq=.TRUE. - call ecco_zero(gencost_weight(:,:,1,1,kgen),1,zeroRL,myThid) - call ecco_zero(gencost_weight(:,:,1,1,kgen_lsc),1,zeroRL,myThid) + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,kgen), + & 1, zeroRL, myThid ) + call ecco_zero( gencost_weight(1-OLx,1-OLy,1,1,kgen_lsc), + & 1, zeroRL, myThid ) if ( gencost_errfile(kgen) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(kgen), - & gencost_weight(:,:,1,1,kgen),1,1,dosumsq,myThid) + & call ecco_readwei( gencost_errfile(kgen), + & gencost_weight(1-OLx,1-OLy,1,1,kgen), + & 1, 1, 1, dosumsq, myThid ) if ( gencost_errfile(kgen_lsc) .NE. ' ' ) - & call ecco_readwei(gencost_errfile(kgen_lsc), - & gencost_weight(:,:,1,1,kgen_lsc),1,1,dosumsq,myThid) + & call ecco_readwei( gencost_errfile(kgen_lsc), + & gencost_weight(1-OLx,1-OLy,1,1,kgen_lsc), + & 1, 1, 1, dosumsq, myThid ) call cal_FullDate(19920101,0,locstartdate,myThid) @@ -148,9 +153,8 @@ subroutine cost_gencost_sstv4( doglobalread = .false. ladinit = .false. - write(fname(1:80),'(80a)') ' ' ilps=ilnblnk( gencost_barfile(kgen) ) - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') & gencost_barfile(kgen)(1:ilps),'.',eccoiter spval = gencost_spmin(kgen) @@ -214,7 +218,7 @@ subroutine cost_gencost_sstv4( localrec = int(diffsecs/86400.) + 1 il=ilnblnk(gencost_datafile(kgen)) - write(fname2(1:80),'(2a,i4)') + write(fname2,'(2a,i4)') & gencost_datafile(kgen)(1:il), '_', yday inquire( file=fname2, exist=exst ) @@ -284,29 +288,29 @@ subroutine cost_gencost_sstv4( c ---------------------------------------- #ifdef ALLOW_GENCOST_SSTV4_OUTPUT - write(fname2(1:80),'(1a)') 'sstdiff_raw' + write(fname2,'(1a)') 'sstdiff_raw' CALL WRITE_REC_3D_RL( fname2, precFloat32, 1, & anom_sst, irec, 1, myThid ) - write(fname2(1:80),'(1a)') 'sstobs_raw' + write(fname2,'(1a)') 'sstobs_raw' CALL WRITE_REC_3D_RL( fname2, precFloat32, 1, & obs_sst, irec, 1, myThid ) #endif if ( useSMOOTH.AND.(k2_lsc.GT.0) ) - & call smooth_hetero2d(anom_sst,maskc, + & call smooth_hetero2d(anom_sst,maskInC, & gencost_posproc_c(k2_lsc,kgen_lsc), & gencost_posproc_i(k2_lsc,kgen_lsc),myThid) #ifdef ALLOW_GENCOST_SSTV4_OUTPUT if ( useSMOOTH.AND.(k2_lsc.GT.0) ) - & call smooth_hetero2d(obs_sst,maskc, + & call smooth_hetero2d(obs_sst,maskInC, & gencost_posproc_c(k2_lsc,kgen_lsc), & gencost_posproc_i(k2_lsc,kgen_lsc),myThid) - write(fname2(1:80),'(1a)') 'sstdiff_smooth' + write(fname2,'(1a)') 'sstdiff_smooth' CALL WRITE_REC_3D_RL( fname2, precFloat32, 1, & anom_sst, irec, 1, myThid ) - write(fname2(1:80),'(1a)') 'sstobs_smooth' + write(fname2,'(1a)') 'sstobs_smooth' CALL WRITE_REC_3D_RL( fname2, precFloat32, 1, & obs_sst, irec, 1, myThid ) #endif @@ -321,12 +325,12 @@ subroutine cost_gencost_sstv4( junk = anom_sst(i,j,bi,bj) junkweight = gencost_weight(i,j,bi,bj,kgen_lsc)* & maskc(i,j,1,bi,bj) - objf_gencost(kgen_lsc,bi,bj) = - & objf_gencost(kgen_lsc,bi,bj) + objf_gencost(bi,bj,kgen_lsc) = + & objf_gencost(bi,bj,kgen_lsc) & +junk*junk*junkweight/ndaysaveRL if ( (junkweight.GT.0.).AND.(nb_sst(i,j,bi,bj).GT.0.) ) - & num_gencost(kgen_lsc,bi,bj) = - & num_gencost(kgen_lsc,bi,bj) + 1. _d 0 /ndaysaveRL + & num_gencost(bi,bj,kgen_lsc) = + & num_gencost(bi,bj,kgen_lsc) + 1. _d 0 /ndaysaveRL enddo enddo enddo @@ -369,7 +373,7 @@ subroutine cost_gencost_sstv4( localrec = int(diffsecs/86400.) + 1 il=ilnblnk(gencost_datafile(kgen)) - write(fname2(1:80),'(2a,i4)') + write(fname2,'(2a,i4)') & gencost_datafile(kgen)(1:il), '_', yday inquire( file=fname2, exist=exst ) @@ -418,7 +422,7 @@ subroutine cost_gencost_sstv4( enddo #ifdef ALLOW_GENCOST_SSTV4_OUTPUT - write(fname2(1:80),'(1a)') 'sstdiff_point' + write(fname2,'(1a)') 'sstdiff_point' CALL WRITE_REC_3D_RL( fname2, precFloat32, 1, & anom_sst, irec, 1, myThid ) #endif @@ -432,11 +436,11 @@ subroutine cost_gencost_sstv4( junk = anom_sst(i,j,bi,bj) junkweight = gencost_weight(i,j,bi,bj,kgen)* & maskc(i,j,1,bi,bj)*msk_sst(i,j,bi,bj) - objf_gencost(kgen,bi,bj) = - & objf_gencost(kgen,bi,bj)+junk*junk*junkweight + objf_gencost(bi,bj,kgen) = + & objf_gencost(bi,bj,kgen)+junk*junk*junkweight if (junkweight.GT.0.) - & num_gencost(kgen,bi,bj) = - & num_gencost(kgen,bi,bj) + 1. _d 0 + & num_gencost(bi,bj,kgen) = + & num_gencost(bi,bj,kgen) + 1. _d 0 enddo enddo enddo diff --git a/pkg/ecco/cost_gencost_transp.F b/pkg/ecco/cost_gencost_transp.F index d9e5ad7094..edb74d7b71 100644 --- a/pkg/ecco/cost_gencost_transp.F +++ b/pkg/ecco/cost_gencost_transp.F @@ -1,21 +1,15 @@ #include "ECCO_OPTIONS.h" - subroutine cost_gencost_transp(mythid) + SUBROUTINE COST_GENCOST_TRANSP( myThid ) -c ================================================================== -c SUBROUTINE cost_gencost_transp -c ================================================================== -c -c o Evaluate cost function contributions of section transport. -c -c ================================================================== -c SUBROUTINE cost_gencost_boxmean -c ================================================================== +C ================================================================== +C SUBROUTINE COST_GENCOST_TRANSP +C ================================================================== +C o Evaluate cost function contributions of section transport. - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -24,83 +18,64 @@ subroutine cost_gencost_transp(mythid) # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - integer mythid +C == routine arguments == + INTEGER myThid #ifdef ALLOW_GENCOST_CONTRIBUTION +C == external functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK -c == local variables == - - integer nnzobs, nnzbar - parameter (nnzbar = Nr, nnzobs = Nr) - integer nrecloc, localrec - integer localstartdate(4) +C == local variables == + INTEGER nrecloc, localrec + INTEGER localstartdate(4) - _RL myobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL mybar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL localdif (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL difmask (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL localweight(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL localtmp (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) + _RL myobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL mybar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdif(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localtmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL dummy,facCost,facNum -c- facNum is 1 divided by the number of tiles in SIZE dot h - parameter ( facNum = 1./float(nPx) ) + _RL dummy, facCost, facNum _RL localperiod _RL spminloc, spmaxloc, spzeroloc - - _RL tmpMeanTile(nSx,nSy),tmpNumTile(nSx,nSy) - _RL tmpMeanGlo,tmpNumGlo - - character*(MAX_LEN_FNAM) mybarfile - character*(MAX_LEN_FNAM) myobsfile - - integer kgen(NGENCOST3D) - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer obsrec,irec,jrec - integer il,k2 - integer icount,icount_transp - logical dosumsq, dovarwei, doreadobs - - integer preproc_i(NGENPPROC) + _RL tmpMeanTile(nSx,nSy), tmpNumTile(nSx,nSy) + _RL tmpMeanGlo, tmpNumGlo + + INTEGER kgen(NGENCOST3D) + INTEGER bi, bj + INTEGER k + INTEGER obsrec, irec + INTEGER il,k2 + INTEGER icount, icount_transp + LOGICAL dosumsq, dovarwei, doreadobs + LOGICAL exst + + INTEGER preproc_i(NGENPPROC) _RL preproc_r(NGENPPROC) - character*(MAX_LEN_FNAM) preproc(NGENPPROC) - character*(MAX_LEN_FNAM) preproc_c(NGENPPROC) - - - logical doglobalread - logical ladinit - character*(MAX_LEN_MBUF) msgbuf - character*(128) fname1, fname0 + CHARACTER*(MAX_LEN_FNAM) mybarfile + CHARACTER*(MAX_LEN_FNAM) preproc(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) preproc_c(NGENPPROC) + CHARACTER*(MAX_LEN_MBUF) msgBuf + CHARACTER*(128) fname1, fname0 +C == end of interface == - logical exst +C=============== PART 0: initilization =================== -c == external functions == +C- facNum is 1 divided by the number of tiles in SIZE dot h + facNum = nSx*nPx + facNum = 1. _d 0 / facNum - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - -c=============== PART 0: initilization =================== - -c-- detect the relevant gencost indices +C-- detect the relevant gencost indices do k=1,NGENCOST3D kgen(k)=0 enddo -c-- write a report of how many transport costs +C-- write a report of how many transport costs write(msgbuf,'(A)') 'Inside cost_gencost_transp:' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) @@ -111,7 +86,7 @@ subroutine cost_gencost_transp(mythid) & (using_gencost(k)) ) then icount_transp=icount_transp+1 kgen(icount_transp)=k - il=ilnblnk(gencost_barfile(kgen(icount_transp))) + il=ILNBLNK(gencost_barfile(kgen(icount_transp))) write(msgbuf,'(A,i4,A,A)') 'Cost ',kgen(icount_transp), & ': ',gencost_barfile(kgen(icount_transp))(1:il) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, @@ -120,29 +95,30 @@ subroutine cost_gencost_transp(mythid) endif enddo -c-- write a report of how many transport costs +C-- write a report of how many transport costs do icount=1,icount_transp - if (kgen(icount).NE.0) then + if (kgen(icount).NE.0) then -c ======== +C ======== -c-- initialize objf and num: - DO bj=jtlo,jthi - DO bi=itlo,ithi +C-- initialize objf and num: + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) objf_gencost(bi,bj,kgen(icount))=0. _d 0 num_gencost(bi,bj,kgen(icount))=0. _d 0 ENDDO ENDDO -c-- Initialise local variables. +C-- Initialise local variables. nrecloc=0 nrecloc=gencost_nrec(kgen(icount)) -c-- only enters if there is at least 1 record +C-- only enters if there is at least 1 record if(nrecloc.gt.0) then - facCost=1. _d 0 / float(nrecloc) + facCost = nrecloc + facCost = 1. _d 0 / facCost localperiod=0. localperiod=gencost_period(kgen(icount)) @@ -151,8 +127,8 @@ subroutine cost_gencost_transp(mythid) spmaxloc=gencost_spmax(kgen(icount)) spzeroloc=gencost_spzero(kgen(icount)) -c prefer to have preproc match nosumsq but can not seem to get syntax -c to work for comparison of characters so match dosumsq for now. +C prefer to have preproc match nosumsq but can not seem to get syntax +C to work for comparison of characters so match dosumsq for now. dosumsq=.FALSE. dovarwei=.FALSE. do k2 = 1, NGENPPROC @@ -164,110 +140,107 @@ subroutine cost_gencost_transp(mythid) if (preproc(k2)(1:7).EQ.'dosumsq') dosumsq=.TRUE. enddo -c-- report of dosumsq flag to make sure it is false - il=ilnblnk(gencost_name(kgen(icount))) - write(msgbuf,'(3A,L5,2A)') +C-- report of dosumsq flag to make sure it is false + il=ILNBLNK(gencost_name(kgen(icount))) + write(msgBuf,'(3A,L5,2A)') & 'Cost ',gencost_name(kgen(icount))(1:il), & ' dosumsq: ',dosumsq,' preproc(1): ',preproc(1)(1:7) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -c-- set mybarfile +C-- set mybarfile mybarfile=gencost_barfile(kgen(icount)) -c-- set obsfile if defined. Not use for now. send warning +C-- set obsfile if defined. Not use for now. send warning doreadobs=.FALSE. if( .not. gencost_datafile(kgen(icount)).eq.' ') then c doreadobs=.TRUE. - write(msgbuf,'(A)') + write(msgBuf,'(A)') & '**WARNING** S/R COST_GENCOST_TRANSP: gencost_datafile ' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(A)') + write(msgBuf,'(A)') & 'are currently ignored. Adjust the S/R to add code.' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) endif -c model mask[W,S]: already included in transp calc in ecco_phys +C model mask[W,S]: already included in transp calc in ecco_phys -c--------- PART 0.1 read weights -------------------- +C--------- PART 0.1 read weights -------------------- -c-- read mask in gencost_mask -c-- for now, assume non-time-variable mask +C-- read mask in gencost_mask +C-- for now, assume non-time-variable mask -c=============== PART 1: main loop =================== +C=============== PART 1: main loop =================== do irec = 1,nrecloc -c--------- PART 1.1 read barfiles ------------------ +C--------- PART 1.1 read barfiles ------------------ -c-- set all bars to zeros: +C-- set all bars to zeros: call ecco_zero(mybar,Nr,zeroRL,myThid) -c gencost_mask and fname0 are dummy, get fname1 from mybarfile +C gencost_mask and fname0 are dummy, get fname1 from mybarfile exst=.FALSE. call ecco_zero(localtmp,Nr,zeroRL,myThid) call cost_gencal(mybarfile,gencost_mask(kgen(icount)), & irec,localstartdate,localperiod,fname1, - & fname0,localrec,obsrec,exst,mythid) - call cost_genread(fname1,mybar,localtmp,irec,nnzbar, + & fname0,localrec,obsrec,exst,myThid) + call cost_genread(fname1,mybar,localtmp,irec,Nr,Nr, & nrecloc,preproc,preproc_c,preproc_i,preproc_r, - & dummy,mythid) + & dummy,myThid) +C--------- PART 1.2 read data -------------------- -c--------- PART 1.2 read data -------------------- - -c-- ignore for now, but use doreadobs flag if needed -c-- be careful of recomputation when put inside if-end block +C-- ignore for now, but use doreadobs flag if needed +C-- be careful of recomputation when put inside if-end block c if(doreadobs) then call ecco_zero(myobs,Nr,zeroRL,myThid) c endif +C--------- PART 1.3 Cost calculation ------------- -c--------- PART 1.3 Cost calculation ------------- - - -c-- keep total at each irec to print out for time-series - DO bj = jtlo,jthi - DO bi = itlo,ithi - tmpMeanTile(bi,bj) = 0. _d 0 - tmpNumTile(bi,bj) = 0. _d 0 - ENDDO +C-- keep total at each irec to print out for time-series + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + tmpMeanTile(bi,bj) = 0. _d 0 + tmpNumTile(bi,bj) = 0. _d 0 + ENDDO ENDDO -c compute obs minus bar (localdif) and mask (difmask) -c note localtmp is set to 1. - call ecco_zero(localtmp,nnzobs,oneRL,mythid) - call ecco_zero(localdif,nnzobs,zeroRL,mythid) - call ecco_zero(difmask,nnzobs,zeroRL,mythid) +C compute obs minus bar (localdif) and mask (difmask) +C note localtmp is set to 1. + call ecco_zero(localtmp,Nr,oneRL,myThid) + call ecco_zero(localdif,Nr,zeroRL,myThid) + call ecco_zero(difmask,Nr,zeroRL,myThid) -c take care to set sp[min,max,zero]loc carefully to not -c filter out signal. Can consider skip diffmsk step +C take care to set sp[min,max,zero]loc carefully to not +C filter out signal. Can consider skip diffmsk step call ecco_diffmsk( - I mybar, nnzbar, myobs, nnzobs, localtmp, - I spminloc, spmaxloc, spzeroloc, + I mybar, myobs, localtmp, + I Nr, Nr,spminloc, spmaxloc, spzeroloc, O localdif, difmask, I myThid ) - call ecco_zero(localtmp,nnzobs,oneRL,mythid) + call ecco_zero(localtmp,Nr,oneRL,myThid) call ecco_addcost( - I localdif,localtmp,difmask,nnzobs,dosumsq, + I localdif,localtmp,difmask,Nr,Nr,dosumsq, O tmpMeanTile,tmpNumTile, - I mythid) + I myThid) -cc either use ecco_diffmsk and ecco_addcost from above or simplify -cc to call below. For now keep syntax consistent with gencost -c call ecco_zero(localtmp,nnzobs,oneRL,mythid) +cC either use ecco_diffmsk and ecco_addcost from above or simplify +cC to call below. For now keep syntax consistent with gencost +c call ecco_zero(localtmp,Nr,oneRL,myThid) c call ecco_addcost( -c I mybar,localtmp,localtmp,nnzobs,dosumsq, +c I mybar,localtmp,localtmp,Nr,Nr,dosumsq, c O tmpMeanTile,tmpNumTile, -c I mythid) +c I myThid) -c global sums for display of time series -c note tmpNumGlo is the constant total wet points in the gencost_mask[W,S] +C global sums for display of time series +C note tmpNumGlo is the constant total wet points in the gencost_mask[W,S] tmpMeanGlo = 0. _d 0 tmpNumGlo = 0. _d 0 - il=ilnblnk(gencost_barfile(kgen(icount))) + il=ILNBLNK(gencost_barfile(kgen(icount))) CALL GLOBAL_SUM_TILE_RL( tmpMeanTile, tmpMeanGlo, myThid ) CALL GLOBAL_SUM_TILE_RL( tmpNumTile, tmpNumGlo, myThid ) WRITE(msgBuf,'(2A,I3,A,1PE21.14,1PE21.14)') @@ -276,32 +249,32 @@ subroutine cost_gencost_transp(mythid) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -c sum that is actually be used in cost function - DO bj = jtlo,jthi - DO bi = itlo,ithi - objf_gencost(bi,bj,kgen(icount))= - & objf_gencost(bi,bj,kgen(icount))+tmpMeanTile(bi,bj) - ENDDO +C sum that is actually be used in cost function + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + objf_gencost(bi,bj,kgen(icount))= + & objf_gencost(bi,bj,kgen(icount))+tmpMeanTile(bi,bj) + ENDDO ENDDO enddo !irec -c-- last step: -c-- divide by number of record to get mean transport: -c-- make num_gencost equals number of months/days used - do bj = jtlo,jthi - do bi = itlo,ithi - objf_gencost(bi,bj,kgen(icount))= - & objf_gencost(bi,bj,kgen(icount))*facCost - num_gencost(bi,bj,kgen(icount))=nrecloc*facNum - enddo - enddo +C-- last step: +C-- divide by number of record to get mean transport: +C-- make num_gencost equals number of months/days used + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + objf_gencost(bi,bj,kgen(icount))= + & objf_gencost(bi,bj,kgen(icount))*facCost + num_gencost(bi,bj,kgen(icount))=nrecloc*facNum + ENDDO + ENDDO endif !if (nrecloc.gt.0) - endif !if (kgen.NE.0) + endif !if (kgen.NE.0) enddo !icount_transp #endif /* ALLOW_GENCOST_CONTRIBUTION */ RETURN - end + END diff --git a/pkg/ecco/cost_generic.F b/pkg/ecco/cost_generic.F index d5ec9d8c28..6cdc782a6e 100644 --- a/pkg/ecco/cost_generic.F +++ b/pkg/ecco/cost_generic.F @@ -1,5 +1,10 @@ #include "ECCO_OPTIONS.h" +C-- File cost_generic.F: Generic cost function routines +C-- Contents +C-- o cost_generic +C-- o cost_genloop + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: cost_generic @@ -22,10 +27,9 @@ subroutine cost_generic( C \ev C !USES: - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -34,14 +38,11 @@ subroutine cost_generic( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: integer myIter integer myThid integer nnzbar, nnzobs @@ -74,32 +75,21 @@ subroutine cost_generic( character*(MAX_LEN_FNAM) outname #ifdef ALLOW_ECCO - -c == local variables == - +C !LOCAL VARIABLES: integer bi,bj,k2 - integer itlo,ithi - integer jtlo,jthi logical domean, doanom - _RL localdifmean1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL localdifmean2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - c-- Initialise local variables. - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) objf_local(bi,bj) = 0. _d 0 num_local(bi,bj) = 0. _d 0 - enddo - enddo + ENDDO + ENDDO call ecco_zero(localdifmean1,Nr,zeroRL,myThid) call ecco_zero(localdifmean2,Nr,zeroRL,myThid) @@ -147,11 +137,13 @@ subroutine cost_generic( #endif /* ALLOW_ECCO */ - return - end - -C-------------- + RETURN + END +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: cost_genloop +C !INTERFACE: subroutine cost_genloop( & localdifmeanIn,localdifmeanOut, addVariaCost, & nnzbar, localbarfile, dummy, @@ -171,10 +163,9 @@ subroutine cost_genloop( C \ev C !USES: - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -183,14 +174,11 @@ subroutine cost_genloop( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" -#endif -#ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: integer myIter integer myThid integer nnzbar, nnzobs @@ -223,21 +211,23 @@ subroutine cost_genloop( character*(MAX_LEN_FNAM) outname logical addVariaCost - _RL localdifmeanIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL localdifmeanOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdifmeanIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdifmeanOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_ECCO +C !FUNCTIONS: + integer ilnblnk + external ilnblnk -c == local variables == - +C !LOCAL VARIABLES: integer bi,bj - integer itlo,ithi - integer jtlo,jthi + integer i,j,k integer irec, jrec integer il, k2 integer localrec, obsrec integer nrecloop, nrecclim, k2smooth logical domean, doanom, dovarwei, doclim, dosmooth, dosumsq + logical dooffset, domaskmindepth _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) @@ -248,22 +238,21 @@ subroutine cost_genloop( _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL localdifmsk (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL localdifsum (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL localdifnum (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdifmsk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdifsum(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL localdifnum(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + +#ifdef ALLOW_SMOOTH + _RL tmpfld2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif _RL fac + _RL topomin character*(128) fname1, fname2, fname3 - character*200 msgbuf logical exst - -c == external functions == - - integer ilnblnk - external ilnblnk - CEOP call ecco_zero(localbar,Nr,zeroRL,myThid) @@ -284,6 +273,8 @@ subroutine cost_genloop( doanom=.FALSE. dovarwei=.FALSE. dosmooth=.FALSE. + dooffset=.FALSE. + domaskmindepth=.FALSE. k2smooth=1 doclim=.FALSE. nrecclim=nrecloc @@ -294,6 +285,11 @@ subroutine cost_genloop( if (preproc(k2).EQ.'anom') doanom=.TRUE. if (preproc(k2).EQ.'variaweight') dovarwei=.TRUE. if (preproc(k2).EQ.'nosumsq') dosumsq=.FALSE. + if (preproc(k2).EQ.'offset') dooffset=.TRUE. + if (preproc(k2).EQ.'mindepth') then + domaskmindepth=.TRUE. + topomin = preproc_r(k2) + endif if (posproc(k2).EQ.'smooth') then dosmooth=.TRUE. k2smooth=k2 @@ -307,16 +303,57 @@ subroutine cost_genloop( endif enddo -c-- Assign mask - if ( ylocmask .EQ. 'C' .OR. ylocmask .EQ. 'c' ) then - call ecco_cprsrl(maskC,nr,localmask,nr,myThid) - elseif ( ylocmask .EQ. 'S' .OR. ylocmask .EQ. 's' ) then - call ecco_cprsrl(maskS,nr,localmask,nr,myThid) - elseif ( ylocmask .EQ. 'W' .OR. ylocmask .EQ. 'w' ) then - call ecco_cprsrl(maskW,nr,localmask,nr,myThid) - else - STOP 'cost_generic: wrong ylocmask' - endif +C-- Assign mask, write explicitly to include overlaps and +C avoid exchange later (e.g. in smooth routine), note that +C the routine ecco_cprsrl does not copy overlaps + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + + IF ( ylocmask .EQ. 'C' .OR. ylocmask .EQ. 'c' ) THEN + DO k = 1, Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + localmask(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + + ELSEIF ( ylocmask .EQ. 'S' .OR. ylocmask .EQ. 's' ) THEN + + DO k = 1, Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + localmask(i,j,k,bi,bj) = maskS(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + + ELSEIF ( ylocmask .EQ. 'W' .OR. ylocmask .EQ. 'w' ) THEN + + DO k = 1, Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + localmask(i,j,k,bi,bj) = maskW(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + + ELSE + CALL ECCO_ERROR('COST_GENLOOP', 'wrong ylocmask', myThid) + ENDIF + +#ifdef ALLOW_SMOOTH +C Set 2D Mask for 2D smooth routine + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + mask2D(i,j,bi,bj) = localmask(i,j,1,bi,bj) + tmpFld2D(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO +#endif +C-- end bi/bj loop for setting masks + ENDDO + ENDDO c-- set nrecloop to nrecloc nrecloop=nrecloc @@ -334,10 +371,10 @@ subroutine cost_genloop( call cost_gencal(localbarfile, localerrfile, & jrec, localstartdate, localperiod, fname1, & fname3, localrec, obsrec, exst, myThid ) - call ecco_zero(localweight,nnzobs,zeroRL,myThid) + call ecco_zero(localweight,Nr,zeroRL,myThid) if ( (localrec .GT. 0).AND.(obsrec .GT. 0).AND.(exst) ) & call ecco_readwei(fname3,localweight, - & localrec,nnzobs,dosumsq,myThid) + & localrec,Nr,nnzobs,dosumsq,myThid) c-- determine records and file names exst=.FALSE. @@ -346,53 +383,76 @@ subroutine cost_genloop( & fname2, localrec, obsrec, exst, myThid ) c-- load model average and observed average - call ecco_zero(localbar,nnzbar,zeroRL,myThid) - call cost_genread( fname1, localbar, localtmp, irec, nnzbar, + call ecco_zero(localbar,Nr,zeroRL,myThid) + call cost_genread( fname1, localbar, localtmp, irec, Nr, nnzbar, & nrecloc, preproc, preproc_c, preproc_i, preproc_r, & dummy, myThid ) - call ecco_mult(localbar,nnzbar,fac,myThid) + call ecco_mult(localbar,fac,Nr,nnzbar,myThid) - call ecco_zero(localobs,nnzobs,spzeroloc,myThid) - if ( (localrec .GT. 0).AND.(obsrec .GT. 0).AND.(exst) ) - & CALL READ_REC_3D_RL( fname2, cost_iprec, nnzobs, + call ecco_zero(localobs,Nr,spzeroloc,myThid) + if ( (localrec .GT. 0).AND.(obsrec .GT. 0).AND.(exst) ) then + CALL READ_REC_LEV_RL( fname2, cost_iprec, Nr, 1, nnzobs, & localobs, localrec, 1, myThid ) + endif c-- Compute masked model-data difference - call ecco_diffmsk( localbar, nnzbar, localobs, nnzobs, - & localmask, spminloc, spmaxloc, spzeroloc, + call ecco_diffmsk( localbar, localobs, localmask, + & Nr, nnzobs, spminloc, spmaxloc, spzeroloc, & localdif, difmask, myThid ) - if ( doanom ) call ecco_subtract( localdifmeanIn, - & nnzobs, localdif, nnzobs, myThid ) + if ( domaskmindepth ) call ecco_maskmindepth( + & difmask, Nr, nnzobs, topomin, myThid ) - if ( domean.OR.doanom ) - & call ecco_addmask(localdif,difmask, nnzobs,localdifsum, - & localdifnum, nnzobs,myThid) + if ( doanom ) call ecco_subtract( localdif, + & localdifmeanIn, Nr, nnzobs, myThid ) + + if ( domean.OR.doanom ) call ecco_addmask( + & localdif, difmask, localdifsum, + & localdifnum, Nr, nnzobs, myThid ) if (addVariaCost) then #ifdef ALLOW_SMOOTH - if ( useSMOOTH.AND.dosmooth.AND. - & (nnzbar.EQ.1).AND.(nnzobs.EQ.1) ) - & call smooth_hetero2d(localdif,maskc, - & posproc_c(k2smooth),posproc_i(k2smooth),myThid) + IF ( useSMOOTH.AND.dosmooth.AND. + & (nnzbar.EQ.1).AND.(nnzobs.EQ.1) ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + tmpFld2D(i,j,bi,bj) = localdif(i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + CALL SMOOTH_HETERO2D(tmpFld2D,mask2D, + & posproc_c(k2smooth),posproc_i(k2smooth),myThid) + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + localdif(i,j,1,bi,bj) = tmpFld2D(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF #endif c-- Compute normalized model-obs cost function - call ecco_addcost( - I localdif, localweight, difmask, nnzobs, dosumsq, + call ecco_addcost( + I localdif, localweight, difmask, Nr, nnzobs, dosumsq, U objf_local, num_local, I myThid & ) c-- output model-data difference to disk - if ( outlev.GT.0 ) then + if ( outlev.GT.0 ) then il=ilnblnk(outname) write(fname3(1:128),'(2a)') 'misfit_', outname(1:il) if ( nnzobs.EQ.1 ) CALL & WRITE_REC_XY_RL( fname3, localdif,irec, eccoiter, myThid ) - if ( nnzobs.EQ.nr ) CALL + if ( nnzobs.EQ.Nr ) CALL & WRITE_REC_XYZ_RL( fname3, localdif,irec, eccoiter, myThid ) - endif + endif endif @@ -400,16 +460,26 @@ subroutine cost_genloop( c-- End of loop over obsfile records. call ecco_zero(localdifmeanOut,Nr,zeroRL,myThid) - call ecco_cp(localdifsum,nnzobs,localdifmeanOut,nnzobs,myThid) - call ecco_divfield(localdifmeanOut,nnzobs,localdifnum,myThid) - call ecco_cp(localdifnum,nnzobs,localdifmsk,nnzobs,myThid) - call ecco_divfield(localdifmsk,nnzobs,localdifnum,myThid) + call ecco_cp (localdifsum,localdifmeanOut,Nr,nnzobs,myThid) + call ecco_divfield(localdifmeanOut,localdifnum,Nr,nnzobs,myThid) + call ecco_cp (localdifnum,localdifmsk,Nr,nnzobs,myThid) + call ecco_divfield(localdifmsk,localdifnum,Nr,nnzobs,myThid) + + if (dooffset) then + il=ilnblnk(localbarfile) + call ecco_offset( + I localbarfile(1:il), + U localdifmeanOut, + I localdifmsk,Nr,nnzobs,myThid) + endif if ( domean ) then c-- Compute normalized model-obs cost function call ecco_addcost( - I localdifmeanOut, localweight, localdifmsk, nnzobs, dosumsq, - U objf_local, num_local, myThid) + I localdifmeanOut, localweight, localdifmsk, + I Nr, nnzobs, dosumsq, + U objf_local, num_local, + I myThid ) c-- output model-data difference to disk if ( outlev.GT.0 ) then @@ -417,7 +487,7 @@ subroutine cost_genloop( write(fname3(1:128),'(2a)') 'misfit_', outname(1:il) if ( nnzobs.EQ.1 ) CALL & WRITE_REC_XY_RL(fname3,localdifmeanOut,1,eccoiter,myThid) - if ( nnzobs.EQ.nr ) CALL + if ( nnzobs.EQ.Nr ) CALL & WRITE_REC_XYZ_RL(fname3,localdifmeanOut,1,eccoiter,myThid) endif endif @@ -426,7 +496,7 @@ subroutine cost_genloop( write(fname3(1:128),'(2a)') 'weight_', outname(1:il) if ( nnzobs.EQ.1 ) CALL & WRITE_REC_XY_RL( fname3, localweight,irec, eccoiter, myThid ) - if ( nnzobs.EQ.nr ) CALL + if ( nnzobs.EQ.Nr ) CALL & WRITE_REC_XYZ_RL( fname3, localweight,irec, eccoiter, myThid ) endif diff --git a/pkg/ecco/cost_genread.F b/pkg/ecco/cost_genread.F index dac38e6f37..aaacc4b131 100644 --- a/pkg/ecco/cost_genread.F +++ b/pkg/ecco/cost_genread.F @@ -9,6 +9,7 @@ subroutine cost_genread( O active_var, O active_tmp, I iRec, + I nz, I nnzbar, I nrecloc, I preproc, @@ -16,8 +17,7 @@ subroutine cost_genread( I preproc_i, I preproc_r, I dummy, - I myThid - & ) + I myThid ) C !DESCRIPTION: \bv C reads and pre-processes bar file records @@ -26,61 +26,83 @@ subroutine cost_genread( C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: +C == Routine arguments == C myThid: thread number for this instance CHARACTER*(*) active_var_file - _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL active_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nz,nSx,nSy) + _RL active_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nz,nSx,nSy) INTEGER iRec - INTEGER myThid - INTEGER nnzbar, nrecloc + INTEGER nz, nnzbar, nrecloc + CHARACTER*(MAX_LEN_FNAM) preproc(NGENPPROC) + CHARACTER*(MAX_LEN_FNAM) preproc_c(NGENPPROC) + INTEGER preproc_i(NGENPPROC) + _RL preproc_r(NGENPPROC) _RL dummy - character*(MAX_LEN_FNAM) preproc(NGENPPROC) - character*(MAX_LEN_FNAM) preproc_c(NGENPPROC) - integer preproc_i(NGENPPROC) - _RL preproc_r(NGENPPROC) + INTEGER myThid #ifdef ALLOW_ECCO - -c == local variables == - - integer nyearsINT - _RL nyearsRL - integer iyear, imon +C !LOCAL VARIABLES: +C == Local variables == + INTEGER nyearsINT + _RL recip_nyearsRL + INTEGER iyear, imon + INTEGER i,j,k,bi,bj CEOP - if ( preproc(1) .EQ. 'clim') then + IF ( preproc(1) .EQ. 'clim') THEN c-- Loop over month - nyearsINT=int((nrecloc-irec)/preproc_i(1))+1 - nyearsRL=float(nyearsINT) - - call ecco_zero(active_tmp,nnzbar,zeroRL,myThid) - - do iyear=1,nyearsINT - imon=irec+(iyear-1)*preproc_i(1) - call ecco_readbar( active_var_file, active_var, - & imon, nnzbar, dummy, mythid ) - call ecco_add(active_var,nnzbar,active_tmp,nnzbar,myThid) - enddo - - call ecco_div(active_tmp,nnzbar,nyearsRL,myThid) - call ecco_cp(active_tmp,nnzbar,active_var,nnzbar,myThid) - else - call ecco_readbar( active_var_file, active_var, - & irec, nnzbar, dummy, mythid ) - endif + nyearsINT=int((nrecloc-irec)/preproc_i(1))+1 + recip_nyearsRL = nyearsINT + recip_nyearsRL = 1. _d 0/recip_nyearsRL + + CALL ECCO_ZERO( active_var, nz, zeroRL, myThid ) + CALL ECCO_ZERO( active_tmp, nz, zeroRL, myThid ) + DO iyear=1,nyearsINT + imon=irec+(iyear-1)*preproc_i(1) + CALL ECCO_READBAR( active_var_file, active_var, + & imon, nz, nnzbar, dummy, myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nnzbar + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + active_tmp(i,j,k,bi,bj) = active_tmp(i,j,k,bi,bj) + & + active_var(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nnzbar + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + active_var(i,j,k,bi,bj) = active_tmp(i,j,k,bi,bj) + & * recip_nyearsRL + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + ELSE + CALL ECCO_READBAR( active_var_file, active_var, + & irec, nz, nnzbar, dummy, myThid ) + ENDIF #endif /* ALLOW_ECCO */ RETURN END - diff --git a/pkg/ecco/cost_hyd.F b/pkg/ecco/cost_hyd.F deleted file mode 100644 index 4a2895ae7b..0000000000 --- a/pkg/ecco/cost_hyd.F +++ /dev/null @@ -1,424 +0,0 @@ -#include "ECCO_OPTIONS.h" -#ifdef ALLOW_SEAICE -# include "SEAICE_OPTIONS.h" -#endif - - subroutine cost_hyd( myiter, mytime, mythid ) - -c ================================================================== -c SUBROUTINE cost_hyd -c ================================================================== -c -c o Evaluate cost function contributions of temperature, salt, and -c sea surface temperature contributions. -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c -c changed: Christian Eckert eckert@mit.edu 25-Feb-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c ================================================================== -c SUBROUTINE cost_hyd -c ================================================================== - - implicit none - -c == global variables == -#ifdef ECCO_CTRL_DEPRECATED -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "cal.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "ctrl_dummy.h" -#include "ecco_cost.h" -#ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -#endif -#endif - -c == routine arguments == - - integer myiter - _RL mytime - integer mythid - -#ifdef ECCO_CTRL_DEPRECATED -c == local variables == - character*(max_len_mbuf) msgbuf - - integer nnzbar - integer nnzobs - integer nrecloc - integer nmonsloc - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL localperiod - - logical dodimensionalcost2D, dodimensionalcost3D - -c == end of interface == - - dodimensionalcost2D=.NOT.ctrlSmoothCorrel2D - dodimensionalcost3D=.NOT.ctrlSmoothCorrel3D - - IF (using_cost_sst) THEN -#if (defined (ALLOW_SST_COST_CONTRIBUTION)) - write(msgbuf,'(a)') 'ph-cost call cost_sst' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = nnztbar - nnzobs = 1 - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, sstdatfile, ssterrfile, mult_sst, - & nmonsloc, nmonsloc, sststartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, sstdatfile, objf_sst, num_sst, - & myiter, mytime, mythid ) -c -#elif (defined (ALLOW_DAILYSST_COST_CONTRIBUTION)) -c - write(msgbuf,'(a)') 'ph-cost call cost_sst' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = 1 - nnzobs = 1 - nrecloc = ndaysrec - spminloc = -2. - spmaxloc = 40. - spzeroloc = 0. - localperiod = 86400. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, sstbarfile, xx_sstbar_mean_dummy, - & nnzobs, sstdatfile, ssterrfile, mult_sst, - & nrecloc, nmonsloc, sststartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, sstdatfile, objf_sst, num_sst, - & myiter, mytime, mythid ) -cph call cost_sst ( myiter, mytime, mythid ) -#endif - ENDIF - -#ifdef ALLOW_ARGO_THETA_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_argo_theta' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, argotfile, temperrfile, mult_argot, - & nmonsloc, nmonsloc, argotstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, argotfile, objf_argot, num_argot, - & myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_CTDT_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_ctdt' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, ctdtfile, temperrfile, mult_ctdt, - & nmonsloc, nmonsloc, ctdtstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, ctdtfile, objf_ctdt, num_ctdt, - & myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_XBT_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_xbt' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, xbtfile, temperrfile, mult_xbt, - & nmonsloc, nmonsloc, xbtstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, xbtfile, objf_xbt, num_xbt, - & myiter, mytime, mythid ) -#endif - - IF (using_cost_sst) THEN -#ifdef ALLOW_TMI_SST_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_tmi' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = nnztbar - nnzobs = 1 - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, tmidatfile, ssterrfile, mult_tmi, - & nmonsloc, nmonsloc, tmistartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, tmidatfile, objf_tmi, num_tmi, - & myiter, mytime, mythid ) -cph call cost_tmi( myiter, mytime, mythid ) -#endif - ENDIF - -#ifdef ALLOW_SSS_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_sss' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = nnzsbar - nnzobs = 1 - spminloc = 20. - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, sbarfile, xx_sbar_mean_dummy, - & nnzobs, sssdatfile, ssterrfile, mult_sss, - & nmonsloc, nmonsloc, sssstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, sssdatfile, objf_sss, num_sss, - & myiter, mytime, mythid ) -cph call cost_sss ( myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_CTDS_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_ctds' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = 20. - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, sbarfile, xx_sbar_mean_dummy, - & nnzobs, ctdsfile, salterrfile, mult_ctds, - & nmonsloc, nmonsloc, ctdsstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, ctdsfile, objf_ctds, num_ctds, - & myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_ARGO_SALT_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_argo_salt' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = 20. - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, sbarfile, xx_sbar_mean_dummy, - & nnzobs, argosfile, salterrfile, mult_argos, - & nmonsloc, nmonsloc, argosstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & no_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, argosfile, objf_argos, num_argos, - & myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_THETA0_COST_CONTRIBUTION - if (.NOT.ctrlUseGen) then - write(msgbuf,'(a)') 'ph-cost call cost_theta0' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - call ctrl_cost_gen3d ( xx_theta_file, - & xx_theta_dummy, wthetaLev, dodimensionalcost3D, - & num_temp0, objf_temp0, maskC, myThid ) - endif -#endif - -#ifdef ALLOW_SALT0_COST_CONTRIBUTION - if (.NOT.ctrlUseGen) then - write(msgbuf,'(a)') 'ph-cost call cost_salt0' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - call ctrl_cost_gen3d ( xx_salt_file, - & xx_salt_dummy, wsaltLev, dodimensionalcost3D, - & num_salt0, objf_salt0, maskC, myThid ) - endif -#endif - -#ifdef ALLOW_THETA_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_theta' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = -1.8 - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, tbarfile, xx_tbar_mean_dummy, - & nnzobs, tdatfile, temperrfile, mult_temp, - & nmonsloc, nmonsloc, modelstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & clim_preproc, no_preproc_c, clim_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, tdatfile, objf_temp, num_temp, - & myiter, mytime, mythid ) -#endif - -#ifdef ALLOW_SALT_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_salt' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = Nr - nnzobs = Nr - spminloc = 25. - spmaxloc = 40. - spzeroloc = 0. - localperiod = 0. - nmonsloc=nmonsrec - call cost_generic( - & nnzbar, sbarfile, xx_sbar_mean_dummy, - & nnzobs, sdatfile, salterrfile, mult_salt, - & nmonsloc, nmonsloc, modelstartdate, localperiod, - & 'C', spminloc, spmaxloc, spzeroloc, - & clim_preproc, no_preproc_c, clim_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, sdatfile, objf_salt, num_salt, - & myiter, mytime, mythid ) -#endif - -c#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -c write(msgbuf,'(a)') 'ph-cost call cost_sigmar' -c call print_message( msgbuf, standardmessageunit, -c & SQUEEZE_RIGHT , mythid) -c call cost_sigmar ( myiter, mytime, mythid ) -c#endif - -c#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION -c write(msgbuf,'(a)') 'ph-cost call cost_gen_transport' -c call print_message( msgbuf, standardmessageunit, -c & SQUEEZE_RIGHT , mythid) -c call cost_gen_transport ( myiter, mytime, mythid ) -c#endif - -#ifdef ALLOW_ETAN0_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_etan0' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - call ctrl_cost_gen2d ( - & 1,1,xx_etan_file,xx_etan_dummy,zeroRL, - & wetan, dodimensionalcost2D, num_etan0, objf_etan0, -#ifdef ECCO_CTRL_DEPRECATED - & zeroRL, num_zero_mean, objf_zero_mean, - & objf_zero_smoo, zeroRL, zeroRL, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, myThid ) -#endif - -#ifdef ALLOW_UVEL0_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_uvel0' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - call ctrl_cost_gen3d ( - & xx_uvel_file,xx_uvel_dummy, wuvel3d, dodimensionalcost3D, - & num_uvel0, objf_uvel0, maskW, myThid ) -#endif -#ifdef ALLOW_VVEL0_COST_CONTRIBUTION - write(msgbuf,'(a)') 'ph-cost call cost_vvel0' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - call ctrl_cost_gen3d ( - & xx_vvel_file,xx_vvel_dummy, wvvel3d, dodimensionalcost3D, - & num_vvel0, objf_vvel0, maskS, myThid ) -#endif - -#ifdef ALLOW_SEAICE_COST_SMR_AREA -# ifdef ALLOW_SEAICE_COST_AREASST -cph this block out of date; -cph similar call moved to seaice_cost_driver and -cph and extended using I. Fenty SST, SSS extensions - - write(msgbuf,'(a)') 'ph-cost call seaice_cost_areasst' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = 1 - nnzobs = 1 - nrecloc = ndaysrec - spminloc = 0. - spmaxloc = 1. - spzeroloc = -9999. - localperiod = 86400. - call seaice_cost_areasst( - & nnzbar, smrareabarfile, smrareabar, xx_smrareabar_mean_dummy, - & nnzobs, smrareadatfile, smrareadat, mult_smrarea, - & nrecloc, smrareastartdate, localperiod, - & maskC, wsmrarea, - & spminloc, spmaxloc, spzeroloc, - & objf_smrarea, num_smrarea, - & myiter, mytime, mythid ) - - write(msgbuf,'(a,1P2E18.10)') - & 'ph-cost seaice_cost_areasst ', - & objf_smrarea(1,1), num_smrarea(1,1) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - -# endif /* ALLOW_SEAICE_COST_AREASST */ -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - - end diff --git a/pkg/ecco/cost_internal_params.F b/pkg/ecco/cost_internal_params.F deleted file mode 100644 index e1ea0f73ed..0000000000 --- a/pkg/ecco/cost_internal_params.F +++ /dev/null @@ -1,121 +0,0 @@ -#include "ECCO_OPTIONS.h" - - - subroutine cost_internal_params( myiter, mytime, mythid ) - -c ================================================================== -c SUBROUTINE cost_internal_params -c ================================================================== -c -c o Evaluate cost function contributions of internal parameters adjustments. -c -c started: Gael Forget 17-Aug-2007 -c -c ================================================================== -c SUBROUTINE cost_internal_params -c ================================================================== - - implicit none - -c == global variables == -#ifdef ECCO_CTRL_DEPRECATED -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" - -#ifdef ALLOW_CAL -# include "cal.h" -#endif - -#ifdef ALLOW_ECCO -# include "ecco_cost.h" -#endif - -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif -#endif - -c == routine arguments == - - integer myiter - _RL mytime - integer mythid - -#ifdef ECCO_CTRL_DEPRECATED - - logical dodimensionalcost2D, dodimensionalcost3D - -c == end of interface == - - dodimensionalcost2D=.NOT.ctrlSmoothCorrel2D - dodimensionalcost3D=.NOT.ctrlSmoothCorrel3D - -c-- Eddy stress penalty term -#ifdef ALLOW_EDDYPSI_COST_CONTRIBUTION - call timer_start('cost_tau_eddy [ECCO SPIN-DOWN]', mythid) - call ctrl_cost_gen3d ( xx_edtaux_file, - & xx_edtaux_dummy, wedtauxFld, dodimensionalcost3D, - & num_zero_mean, objf_eddytau, maskC, myThid ) - call ctrl_cost_gen3d ( - & xx_edtauy_file,xx_edtauy_dummy, wedtauyFld, - & num_zero_mean, objf_eddytau, maskC, myThid ) - call timer_stop ('cost_tau_eddy [ECCO SPIN-DOWN]', mythid) -#endif - _BARRIER - - if (.NOT.ctrlUseGen) then - -c-- GM coeffs penalty term -#ifdef ALLOW_diffkr_COST_CONTRIBUTION - call timer_start('cost_kapgm [ECCO SPIN-DOWN]', mythid) - call ctrl_cost_gen3d ( xx_kapgm_file, - & xx_kapgm_dummy, wkapgmFld, dodimensionalcost3D, - & num_kapgm, objf_kapgm, maskC, myThid ) - call timer_stop ('cost_kapgm [ECCO SPIN-DOWN]', mythid) -#endif - _BARRIER - -c-- REDI coeffs penalty term -#ifdef ALLOW_KAPREDI_COST_CONTRIBUTION - call timer_start('cost_kapredi [ECCO SPIN-DOWN]', mythid) - call ctrl_cost_gen3d ( xx_kapredi_file, - & xx_kapredi_dummy, wkaprediFld, dodimensionalcost3D, - & num_kapredi, objf_kapredi, maskC, myThid ) - call timer_stop ('cost_kapredi [ECCO SPIN-DOWN]', mythid) -#endif - _BARRIER - -c-- DIFFKR coeffs penalty term -#ifdef ALLOW_DIFFKR_COST_CONTRIBUTION - call timer_start('cost_diffkr [ECCO SPIN-DOWN]', mythid) - call ctrl_cost_gen3d ( xx_diffkr_file, - & xx_diffkr_dummy, wdiffkrFld, dodimensionalcost3D, - & num_diffkr, objf_diffkr, maskC, myThid ) - call timer_stop ('cost_diffkr [ECCO SPIN-DOWN]', mythid) -#endif - _BARRIER - - endif !if (.NOT.ctrlUseGen) then - -c-- Bottom Drag penalty term -#ifdef ALLOW_BOTTOMDRAG_COST_CONTRIBUTION - call timer_start('cost_bottomdrag [ECCO SPIN-DOWN]', mythid) - call ctrl_cost_gen2d ( 1, 1, xx_bottomdrag_file, - & xx_bottomdrag_dummy, zeroRL, wbottomdrag, - & dodimensionalcost2D, num_bottomdrag, objf_bottomdrag, -#ifdef ECCO_CTRL_DEPRECATED - & zeroRL, num_zero_mean, objf_zero_mean, - & objf_zero_smoo, zeroRL, zeroRL, -#endif /* ECCO_CTRL_DEPRECATED */ - & maskC, myThid ) - call timer_stop ('cost_bottomdrag [ECCO SPIN-DOWN]', mythid) -#endif - _BARRIER - -#endif - - end diff --git a/pkg/ecco/cost_obcs_ageos.F b/pkg/ecco/cost_obcs_ageos.F index b90482a158..5b767c5c75 100644 --- a/pkg/ecco/cost_obcs_ageos.F +++ b/pkg/ecco/cost_obcs_ageos.F @@ -57,6 +57,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) defined (ALLOW_OBCS) && \ defined (ALLOW_ECCO)) +#ifdef OBCS_AGEOS_COST_CONTRIBUTION c == local variables == integer bi,bj @@ -77,21 +78,21 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) _RL fctile _RL fcthread - _RL rholoc (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL xzgrdrho(1-olx:snx+olx,Nr,nsx,nsy) - _RL yzgrdrho(1-oly:sny+oly,Nr,nsx,nsy) - _RL xzdvel1 (1-olx:snx+olx,nr,nsx,nsy) - _RL xzdvel2 (1-olx:snx+olx,nr,nsx,nsy) - _RL yzdvel1 (1-oly:sny+oly,nr,nsx,nsy) - _RL yzdvel2 (1-oly:sny+oly,nr,nsx,nsy) - _RL maskxzageos (1-olx:snx+olx,nr,nsx,nsy) - _RL maskyzageos (1-oly:sny+oly,nr,nsx,nsy) + _RL rholoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL xzgrdrho(1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL yzgrdrho(1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL xzdvel1 (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL xzdvel2 (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL yzdvel1 (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL yzdvel2 (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL maskxzageos (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL maskyzageos (1-OLy:sNy+OLy,Nr,nSx,nSy) _RL dummy - character*(80) fnametheta - character*(80) fnamesalt - character*(80) fnameuvel - character*(80) fnamevvel + character*(MAX_LEN_FNAM) fnametheta + character*(MAX_LEN_FNAM) fnamesalt + character*(MAX_LEN_FNAM) fnameuvel + character*(MAX_LEN_FNAM) fnamevvel logical doglobalread logical ladinit @@ -105,21 +106,19 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + jtlo = myByLo(mythid) + jthi = myByHi(mythid) + itlo = myBxLo(mythid) + ithi = myBxHi(mythid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c-- Read tiled data. doglobalread = .false. ladinit = .false. -#ifdef OBCS_AGEOS_COST_CONTRIBUTION - #ifdef ECCO_VERBOSE _BEGIN_MASTER( mythid ) write(msgbuf,'(a)') ' ' @@ -133,20 +132,20 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) _END_MASTER( mythid ) -#endif +#endif /* ECCO_VERBOSE */ if (optimcycle .ge. 0) then iltheta = ilnblnk( tbarfile ) - write(fnametheta(1:80),'(2a,i10.10)') + write(fnametheta,'(2a,i10.10)') & tbarfile(1:iltheta),'.',optimcycle ilsalt = ilnblnk( sbarfile ) - write(fnamesalt(1:80),'(2a,i10.10)') + write(fnamesalt,'(2a,i10.10)') & sbarfile(1:ilsalt),'.',optimcycle iluvel = ilnblnk( ubarfile ) - write(fnameuvel(1:80),'(2a,i10.10)') + write(fnameuvel,'(2a,i10.10)') & ubarfile(1:iluvel),'.',optimcycle ilvvel = ilnblnk( vbarfile ) - write(fnamevvel(1:80),'(2a,i10.10)') + write(fnamevvel,'(2a,i10.10)') & vbarfile(1:ilvvel),'.',optimcycle endif @@ -156,14 +155,14 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) cgg Code safe: always initialize to zero. do bj = jtlo,jthi do bi = itlo,ithi - do k = 1,nr - do i = 1-olx,snx+olx + do k = 1,Nr + do i = 1-OLx,sNx+OLx maskxzageos(i,k,bi,bj) = 0. _d 0 xzdvel1(i,k,bi,bj) = 0. _d 0 xzdvel2(i,k,bi,bj) = 0. _d 0 xzgrdrho(i,k,bi,bj) = 0. _d 0 enddo - do j = 1-oly,sny+oly + do j = 1-OLy,sNy+OLy maskyzageos(j,k,bi,bj) = 0. _d 0 yzdvel1(j,k,bi,bj) = 0. _d 0 yzdvel2(j,k,bi,bj) = 0. _d 0 @@ -175,8 +174,8 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) do bj = jtlo,jthi do bi = itlo,ithi - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx + do j = 1-OLy,sNy+OLy + do i = 1-OLx,sNx+OLx rholoc(i,j,bi,bj) = 0. _d 0 enddo enddo @@ -215,7 +214,6 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) _EXCH_XYZ_RL(tbar,myThid) _EXCH_XYZ_RL(sbar,myThid) - do bj = jtlo,jthi do bi = itlo,ithi @@ -223,7 +221,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) jp1 = 0 cgg Make a mask for the velocity shear comparison. - do k = 1,nr-1 + do k = 1,Nr-1 do i = imin, imax j = OB_Jn(i,bi,bj) cgg All these points need to be wet. @@ -239,7 +237,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo - do k = 1,nr + do k = 1,Nr C-- jmc: both calls below are wrong if more than 1 tile => stop here IF ( bi.NE.1 .OR. bj.NE.1 ) @@ -292,7 +290,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) jp1 = 1 cgg Make a mask for the velocity shear comparison. - do k = 1,nr-1 + do k = 1,Nr-1 do i = imin, imax j = OB_Js(i,bi,bj) if ( j.eq.OB_indexNone ) then @@ -308,7 +306,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo - do k = 1,nr + do k = 1,Nr C-- jmc: both calls below are wrong if more than 1 tile => stop here IF ( bi.NE.1 .OR. bj.NE.1 ) @@ -355,13 +353,13 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo c-- End of loop over layers. -#endif +#endif /* ALLOW_OBCSS_CONTROL */ #ifdef ALLOW_OBCSW_CONTROL ip1 = 1 cgg Make a mask for the velocity shear comparison. - do k = 1,nr-1 + do k = 1,Nr-1 do j = jmin, jmax i = OB_Iw(j,bi,bj) cgg All these points need to be wet. @@ -377,7 +375,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo - do k = 1,nr + do k = 1,Nr IF ( bi.NE.1 .OR. bj.NE.1 ) & STOP 'COST_OBCS_AGEOS wrong with more than 1 tile/proc' @@ -422,13 +420,13 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo c-- End of loop over layers. -#endif +#endif /* ALLOW_OBCSW_CONTROL */ #ifdef ALLOW_OBCSE_CONTROL ip1 = 0 cgg Make a mask for the velocity shear comparison. - do k = 1,nr-1 + do k = 1,Nr-1 do j = jmin, jmax i = OB_Ie(j,bi,bj) if ( i.eq.OB_indexNone ) then @@ -444,7 +442,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo - do k = 1,nr + do k = 1,Nr IF ( bi.NE.1 .OR. bj.NE.1 ) & STOP 'COST_OBCS_AGEOS wrong with more than 1 tile/proc' @@ -490,7 +488,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) enddo enddo c-- End of loop over layers. -#endif +#endif /* ALLOW_OBCSE_CONTROL */ fcthread = fcthread + fctile objf_ageos(bi,bj) = objf_ageos(bi,bj) + fctile @@ -512,7 +510,7 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) write(msgbuf,'(a)') ' ' call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) -#endif +#endif /* ECCO_VERBOSE */ enddo enddo @@ -535,12 +533,12 @@ subroutine cost_obcs_ageos( myiter, mytime, mythid ) write(msgbuf,'(a)') ' ' call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) -#endif +#endif /* ECCO_VERBOSE */ enddo c-- End of loop over records. -#endif +#endif /* OBCS_AGEOS_COST_CONTRIBUTION */ #endif /* ALLOW_CTRL, ALLOW_OBCS and ALLOW_ECCO */ diff --git a/pkg/ecco/cost_obcse.F b/pkg/ecco/cost_obcse.F index 275ed3319b..f6c5cb26b1 100644 --- a/pkg/ecco/cost_obcse.F +++ b/pkg/ecco/cost_obcse.F @@ -11,8 +11,7 @@ subroutine cost_obcse( I mytime, I startrec, I endrec, - I mythid - & ) + I mythid ) C !DESCRIPTION: \bv c ================================================================== @@ -31,7 +30,6 @@ subroutine cost_obcse( implicit none c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -53,12 +51,11 @@ subroutine cost_obcse( C !INPUT/OUTPUT PARAMETERS: c == routine arguments == - integer myiter _RL mytime - integer mythid integer startrec integer endrec + integer mythid #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) @@ -70,49 +67,33 @@ subroutine cost_obcse( C !LOCAL VARIABLES: c == local variables == - integer bi,bj integer j,k - integer itlo,ithi - integer jtlo,jthi integer jmin,jmax - integer imin,imax integer irec - integer il integer iobcs -c integer i, ip1 integer nrec integer ilfld integer igg - _RL fctile _RL fcthread _RL dummy _RL gg _RL tmpx cgg( - _RL tmpfield (1-oly:sny+oly,nr,nsx,nsy) - _RL maskyz (1-oly:sny+oly,nr,nsx,nsy) - - character*(80) fnamefld - + _RL tmpfield (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL maskyz (1-OLy:sNy+OLy,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fnamefld logical doglobalread logical ladinit - #ifdef ECCO_VERBOSE character*(MAX_LEN_MBUF) msgbuf #endif c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) jmin = 1 - jmax = sny - imin = 1 - imax = snx + jmax = sNy c-- Read tiled data. doglobalread = .false. @@ -144,7 +125,7 @@ subroutine cost_obcse( if (optimcycle .ge. 0) then ilfld=ilnblnk( xx_obcse_file ) - write(fnamefld(1:80),'(2a,i10.10)') + write(fnamefld,'(2a,i10.10)') & xx_obcse_file(1:ilfld), '.', optimcycle endif @@ -166,8 +147,8 @@ subroutine cost_obcse( & mythid, dummy ) c-- Loop over this thread s tiles. - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) c-- Determine the weights to be used. fctile = 0. _d 0 diff --git a/pkg/ecco/cost_obcsn.F b/pkg/ecco/cost_obcsn.F index 0c90dfd23f..c1502a9dfa 100644 --- a/pkg/ecco/cost_obcsn.F +++ b/pkg/ecco/cost_obcsn.F @@ -11,8 +11,7 @@ subroutine cost_obcsn( I mytime, I startrec, I endrec, - I mythid - & ) + I mythid ) C !DESCRIPTION: \bv c ================================================================== @@ -31,7 +30,6 @@ subroutine cost_obcsn( implicit none c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -53,12 +51,11 @@ subroutine cost_obcsn( C !INPUT/OUTPUT PARAMETERS: c == routine arguments == - integer myiter _RL mytime - integer mythid integer startrec integer endrec + integer mythid #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) @@ -70,47 +67,32 @@ subroutine cost_obcsn( C !LOCAL VARIABLES: c == local variables == - integer bi,bj integer i,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax integer imin,imax integer irec integer iobcs -c integer j, jp1 integer nrec integer ilfld integer igg - _RL fctile _RL fcthread _RL dummy _RL gg _RL tmpx - _RL tmpfield (1-olx:snx+olx,nr,nsx,nsy) - _RL maskxz (1-olx:snx+olx,nr,nsx,nsy) - - character*(80) fnamefld - + _RL tmpfield (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL maskxz (1-OLx:sNx+OLx,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fnamefld logical doglobalread logical ladinit - #ifdef ECCO_VERBOSE character*(MAX_LEN_MBUF) msgbuf #endif c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny imin = 1 - imax = snx + imax = sNx c-- Read tiled data. doglobalread = .false. @@ -142,7 +124,7 @@ subroutine cost_obcsn( if (optimcycle .ge. 0) then ilfld=ilnblnk( xx_obcsn_file ) - write(fnamefld(1:80),'(2a,i10.10)') + write(fnamefld,'(2a,i10.10)') & xx_obcsn_file(1:ilfld), '.', optimcycle endif @@ -164,8 +146,8 @@ subroutine cost_obcsn( & mythid, dummy ) c-- Loop over this thread s tiles. - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) c-- Determine the weights to be used. fctile = 0. _d 0 diff --git a/pkg/ecco/cost_obcss.F b/pkg/ecco/cost_obcss.F index abc2343750..37b946c9d1 100644 --- a/pkg/ecco/cost_obcss.F +++ b/pkg/ecco/cost_obcss.F @@ -11,8 +11,7 @@ subroutine cost_obcss( I mytime, I startrec, I endrec, - I mythid - & ) + I mythid ) C !DESCRIPTION: \bv c ================================================================== @@ -31,7 +30,6 @@ subroutine cost_obcss( implicit none c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -53,12 +51,11 @@ subroutine cost_obcss( C !INPUT/OUTPUT PARAMETERS: c == routine arguments == - integer myiter _RL mytime - integer mythid integer startrec integer endrec + integer mythid #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) @@ -70,47 +67,32 @@ subroutine cost_obcss( C !LOCAL VARIABLES: c == local variables == - integer bi,bj integer i,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax integer imin,imax integer irec integer iobcs -c integer j, jp1 integer nrec integer ilfld integer igg - _RL fctile _RL fcthread _RL dummy _RL gg _RL tmpx - _RL tmpfield (1-olx:snx+olx,nr,nsx,nsy) - _RL maskxz (1-olx:snx+olx,nr,nsx,nsy) - - character*(80) fnamefld - + _RL tmpfield (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL maskxz (1-OLx:sNx+OLx,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fnamefld logical doglobalread logical ladinit - #ifdef ECCO_VERBOSE character*(MAX_LEN_MBUF) msgbuf #endif c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny imin = 1 - imax = snx + imax = sNx c-- Read tiled data. doglobalread = .false. @@ -142,7 +124,7 @@ subroutine cost_obcss( if (optimcycle .ge. 0) then ilfld=ilnblnk( xx_obcss_file ) - write(fnamefld(1:80),'(2a,i10.10)') + write(fnamefld,'(2a,i10.10)') & xx_obcss_file(1:ilfld), '.', optimcycle endif @@ -164,10 +146,9 @@ subroutine cost_obcss( & doglobalread, ladinit, 0, & mythid, dummy ) - c-- Loop over this thread s tiles. - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) c-- Determine the weights to be used. fctile = 0. _d 0 diff --git a/pkg/ecco/cost_obcsvol.F b/pkg/ecco/cost_obcsvol.F index 824ad059e0..f5d0a50754 100644 --- a/pkg/ecco/cost_obcsvol.F +++ b/pkg/ecco/cost_obcsvol.F @@ -8,8 +8,7 @@ subroutine cost_obcsvol( I mytime, I startrec, I endrec, - I mythid - & ) + I mythid ) c ================================================================== c SUBROUTINE cost_obcsvol @@ -47,17 +46,21 @@ subroutine cost_obcsvol( #endif c == routine arguments == - integer myiter _RL mytime - integer mythid integer startrec integer endrec + integer mythid #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) -c == local variables == +#ifdef OBCS_VOLFLUX_COST_CONTRIBUTION +#ifdef BAROTROPIC_OBVEL_CONTROL +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi @@ -69,52 +72,40 @@ subroutine cost_obcsvol( integer nrec integer ilfld integer igg - _RL fctile _RL sumvol _RL gg _RL tmpx _RL tmpy _RL wobcsvol - character*(80) fnamefldn - character*(80) fnameflds - character*(80) fnamefldw - character*(80) fnameflde - + character*(MAX_LEN_FNAM) fnamefldn + character*(MAX_LEN_FNAM) fnameflds + character*(MAX_LEN_FNAM) fnamefldw + character*(MAX_LEN_FNAM) fnameflde #if (defined ALLOW_OBCSN_CONTROL || defined ALLOW_OBCSS_CONTROL) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) #endif #if (defined ALLOW_OBCSE_CONTROL || defined ALLOW_OBCSW_CONTROL) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - logical doglobalread logical ladinit - #ifdef ECCO_VERBOSE character*(MAX_LEN_MBUF) msgbuf #endif -c == external functions == - - integer ilnblnk - external ilnblnk - c == end of interface == -#ifdef OBCS_VOLFLUX_COST_CONTRIBUTION -#ifdef BAROTROPIC_OBVEL_CONTROL - stop 's/r cost_obcsvol needs to be fixed' - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + jtlo = myByLo(mythid) + jthi = myByHi(mythid) + itlo = myBxLo(mythid) + ithi = myBxHi(mythid) jmin = 1 - jmax = sny + jmax = sNy imin = 1 - imax = snx + imax = sNx c-- Read tiled data. doglobalread = .false. @@ -152,22 +143,22 @@ subroutine cost_obcsvol( if (optimcycle .ge. 0) then #ifdef ALLOW_OBCSN_CONTROL ilfld=ilnblnk( xx_obcsn_file ) - write(fnamefldn(1:80),'(2a,i10.10)') + write(fnamefldn,'(2a,i10.10)') & xx_obcsn_file(1:ilfld),'.', optimcycle #endif #ifdef ALLOW_OBCSS_CONTROL ilfld=ilnblnk( xx_obcss_file ) - write(fnameflds(1:80),'(2a,i10.10)') + write(fnameflds,'(2a,i10.10)') & xx_obcss_file(1:ilfld),'.',optimcycle #endif #ifdef ALLOW_OBCSW_CONTROL ilfld=ilnblnk( xx_obcsw_file ) - write(fnamefldw(1:80),'(2a,i10.10)') + write(fnamefldw,'(2a,i10.10)') & xx_obcsw_file(1:ilfld),'.',optimcycle #endif #ifdef ALLOW_OBCSE_CONTROL ilfld=ilnblnk( xx_obcse_file ) - write(fnameflde(1:80),'(2a,i10.10)') + write(fnameflde,'(2a,i10.10)') & xx_obcse_file(1:ilfld),'.',optimcycle #endif else @@ -365,8 +356,8 @@ subroutine cost_obcsvol( _GLOBAL_SUM_RL( sumvol, mythid ) objf_obcsvol = wobcsvol * sumvol* sumvol -#endif -#endif +#endif /* BAROTROPIC_OBVEL_CONTROL */ +#endif /* OBCS_VOLFLUX_COST_CONTRIBUTION */ #endif /* ALLOW_CTRL and ALLOW_OBCS */ diff --git a/pkg/ecco/cost_obcsw.F b/pkg/ecco/cost_obcsw.F index df82d9220e..e346f9d2b7 100644 --- a/pkg/ecco/cost_obcsw.F +++ b/pkg/ecco/cost_obcsw.F @@ -11,8 +11,7 @@ subroutine cost_obcsw( I mytime, I startrec, I endrec, - I mythid - & ) + I mythid ) C !DESCRIPTION: \bv c ================================================================== @@ -31,7 +30,6 @@ subroutine cost_obcsw( implicit none c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -53,12 +51,11 @@ subroutine cost_obcsw( C !INPUT/OUTPUT PARAMETERS: c == routine arguments == - integer myiter _RL mytime - integer mythid integer startrec integer endrec + integer mythid #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) @@ -70,47 +67,32 @@ subroutine cost_obcsw( C !LOCAL VARIABLES: c == local variables == - integer bi,bj integer j,k - integer itlo,ithi - integer jtlo,jthi integer jmin,jmax - integer imin,imax integer irec integer iobcs -c integer i, ip1 integer nrec integer ilfld integer igg - _RL fctile _RL fcthread _RL dummy _RL gg _RL tmpx - _RL tmpfield (1-oly:sny+oly,nr,nsx,nsy) - _RL maskyz (1-oly:sny+oly,nr,nsx,nsy) - - character*(80) fnamefld - + _RL tmpfield (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL maskyz (1-OLy:sNy+OLy,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fnamefld logical doglobalread logical ladinit - #ifdef ECCO_VERBOSE character*(MAX_LEN_MBUF) msgbuf #endif c == end of interface == CEOP - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) jmin = 1 - jmax = sny - imin = 1 - imax = snx + jmax = sNy c-- Read tiled data. doglobalread = .false. @@ -142,7 +124,7 @@ subroutine cost_obcsw( if (optimcycle .ge. 0) then ilfld=ilnblnk( xx_obcsw_file ) - write(fnamefld(1:80),'(2a,i10.10)') + write(fnamefld,'(2a,i10.10)') & xx_obcsw_file(1:ilfld), '.', optimcycle endif @@ -164,8 +146,8 @@ subroutine cost_obcsw( & mythid, dummy ) c-- Loop over this thread s tiles. - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) c-- Determine the weights to be used. fctile = 0. _d 0 diff --git a/pkg/ecco/cost_sla_read.F b/pkg/ecco/cost_sla_read.F index 0533f0b116..1777997647 100644 --- a/pkg/ecco/cost_sla_read.F +++ b/pkg/ecco/cost_sla_read.F @@ -1,6 +1,7 @@ #include "ECCO_OPTIONS.h" - subroutine cost_sla_read( sla_file, sla_startdate, sla_period, + subroutine cost_sla_read( + I sla_file, sla_startdate, sla_period, use_mon, I sla_intercept, sla_slope, O sla_obs, sla_mask, I irec, myThid ) @@ -13,6 +14,8 @@ subroutine cost_sla_read( sla_file, sla_startdate, sla_period, c c started: Gael Forget 20-Oct-2009 c +c Apr-2023: argument use_mon, switches read daily to monthly if true +c c ================================================================== c SUBROUTINE cost_sla_read c ================================================================== @@ -27,15 +30,27 @@ subroutine cost_sla_read( sla_file, sla_startdate, sla_period, #include "GRID.h" #include "cal.h" -#include "ecco_cost.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" c == routine arguments == - +C use_mon :: switch from using daily to monthly data if true + character*(MAX_LEN_FNAM) sla_file + integer sla_startdate(4) + _RL sla_period + logical use_mon + _RL sla_intercept + _RL sla_slope + _RL sla_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL sla_mask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) integer irec integer myThid -c == local variables == +c == external functions == + integer ilnblnk + external ilnblnk +c == local variables == integer bi,bj integer i,j,k integer itlo,ithi @@ -46,34 +61,21 @@ subroutine cost_sla_read( sla_file, sla_startdate, sla_period, integer difftime(4) integer tempDate_1 integer middate(4) - integer noffset _RL diffsecs _RL spval _RL factor - - integer sla_startdate(4) - _RL sla_period - _RL sla_intercept - _RL sla_slope - _RL sla_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) - _RL sla_mask (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) - character*(MAX_LEN_FNAM) sla_file - cnew( integer il - _RL daytime - integer dayiter - integer daydate(4) - integer yday, ymod + _RL obstime + integer obsiter + integer obsdate(4) + integer yobs, ymod integer md, dd, sd, ld, wd - character*(80) fnametmp + character*(MAX_LEN_FNAM) fnametmp logical exst cnew) - -c == external functions == - - integer ilnblnk - external ilnblnk + integer mody, modm + _RL daysperavgperiod c == end of interface == @@ -89,83 +91,95 @@ subroutine cost_sla_read( sla_file, sla_startdate, sla_period, factor = 0.01 spval = -9990. + IF (use_mon) THEN + daysperavgperiod = 30.5 + mody = modelstartdate(1)/10000 + modm = modelstartdate(1)/100 - mody*100 + yobs = mody + INT((modm-1+irec-1)/12) + sshrec = 1 + MOD(modm-1+irec-1,12) + + ELSE + + daysperavgperiod = 1.0 c select data record to read - daytime = FLOAT(secondsperday*(irec-1)) + modelstart - dayiter = hoursperday*(irec-1)+modeliter0 - call cal_getdate( dayiter, daytime, daydate, myThid ) - call cal_convdate( daydate,yday,md,dd,sd,ld,wd,myThid ) - ymod = sla_startdate(1)/10000 - - if ( ymod .GE. yday ) then - call cal_FullDate( sla_startdate(1), 0, middate, myThid) - else - tempDate_1 = yday*10000+100+1 - call cal_FullDate( tempDate_1, 0, middate, myThid) - endif - - call cal_TimePassed( middate, daydate, difftime, myThid ) - call cal_ToSeconds( difftime, diffsecs, myThid ) -c sshrec = floor(diffsecs/sla_period) + 1 - sshrec = int(diffsecs/sla_period) + 1 + obstime = FLOAT(secondsperday*(irec-1)) + modelstart + obsiter = hoursperday*(irec-1)+modeliter0 + call cal_getdate( obsiter, obstime, obsdate, myThid ) + call cal_convdate( obsdate,yobs,md,dd,sd,ld,wd,myThid ) + ymod = sla_startdate(1)/10000 + + IF ( ymod .GE. yobs ) THEN + call cal_FullDate( sla_startdate(1), 0, middate, myThid) + ELSE + tempDate_1 = yobs*10000+100+1 + call cal_FullDate( tempDate_1, 0, middate, myThid) + ENDIF + + call cal_TimePassed( middate, obsdate, difftime, myThid ) + call cal_ToSeconds( difftime, diffsecs, myThid ) +c sshrec = floor(diffsecs/sla_period) + 1 + sshrec = int(diffsecs/sla_period) + 1 + ENDIF !use_mon il=ilnblnk(sla_file) - write(fnametmp(1:80),'(2a,i4)') - & sla_file(1:il), '_', yday + WRITE(fnametmp,'(2a,i4)') + & sla_file(1:il), '_', yobs inquire( file=fnametmp, exist=exst ) c read data: - if ( (sshrec .GT. 0).AND.(exst) ) then + IF ( (sshrec .GT. 0).AND.(exst) ) THEN CALL READ_REC_3D_RL( fnametmp, cost_iprec, 1, & sla_obs, sshrec, 1, myThid ) - else - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + ELSE + DO bj = jtlo,jthi + DO bi = itlo,ithi + DO j = jmin,jmax + DO i = imin,imax sla_obs(i,j,bi,bj) = spval - enddo - enddo - enddo - enddo - endif + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF c mask data: - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj = jtlo,jthi + DO bi = itlo,ithi k = 1 - do j = jmin,jmax - do i = imin,imax - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then + DO j = jmin,jmax + DO i = imin,imax + IF (_hFacC(i,j,k,bi,bj) .EQ. 0.) THEN sla_mask(i,j,bi,bj) = 0. _d 0 - else + ELSE sla_mask(i,j,bi,bj) = 1. _d 0 - endif - if (sla_obs(i,j,bi,bj) .le. spval) then + ENDIF + IF (sla_obs(i,j,bi,bj) .LE. spval) THEN sla_mask(i,j,bi,bj) = 0. _d 0 - endif - if (abs(sla_obs(i,j,bi,bj)) .lt. 1.d-8 ) then + ENDIF + IF (abs(sla_obs(i,j,bi,bj)) .LT. 1.d-8 ) THEN sla_mask(i,j,bi,bj) = 0. _d 0 - endif + ENDIF #ifndef ALLOW_SHALLOW_ALTIMETRY - if ( R_low(i,j,bi,bj) .GT. -200. ) then + IF ( R_low(i,j,bi,bj) .GT. -200. ) THEN sla_mask(i,j,bi,bj) = 0. _d 0 - endif + ENDIF #endif #ifndef ALLOW_HIGHLAT_ALTIMETRY - if ( abs(YC(i,j,bi,bj)) .GT. 66. ) then + IF ( abs(YC(i,j,bi,bj)) .GT. 66. ) THEN sla_mask(i,j,bi,bj) = 0. _d 0 - endif + ENDIF #endif sla_mask(i,j,bi,bj) = sla_mask(i,j,bi,bj)*frame(i,j) sla_obs(i,j,bi,bj) = sla_mask(i,j,bi,bj)*factor* & ( sla_obs(i,j,bi,bj) - - & ( sla_intercept + sla_slope*irec*hoursperday ) ) - enddo - enddo - enddo - enddo + & ( sla_intercept + sla_slope*irec*hoursperday + & *daysperavgperiod ) ) + ENDDO + ENDDO + ENDDO + ENDDO RETURN END diff --git a/pkg/ecco/cost_sla_read_yd.F b/pkg/ecco/cost_sla_read_yd.F index 6eb5330dc3..a1c66f26ea 100644 --- a/pkg/ecco/cost_sla_read_yd.F +++ b/pkg/ecco/cost_sla_read_yd.F @@ -1,10 +1,9 @@ #include "ECCO_OPTIONS.h" - subroutine cost_sla_read_yd( sla_file, sla_startdate, -c I sla_startdate, sla_period, -c I sla_intercept, sla_slope, + subroutine cost_sla_read_yd( + I sla_file, sla_startdate, use_mon, O sla_obs, sla_mask, - I year,day, myThid ) + I year, irec, myThid ) c ================================================================== c SUBROUTINE cost_sla_read_yd @@ -14,6 +13,8 @@ subroutine cost_sla_read_yd( sla_file, sla_startdate, c c started: Gael Forget 20-Oct-2009 c +c Apr-2023: argument use_mon, switches read daily to monthly if true +c c ================================================================== c SUBROUTINE cost_sla_read_yd c ================================================================== @@ -28,55 +29,40 @@ subroutine cost_sla_read_yd( sla_file, sla_startdate, #include "GRID.h" #include "cal.h" -#include "ecco_cost.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" c == routine arguments == - - integer year,day +C use_mon :: switch from using daily to monthly data if true + character*(MAX_LEN_FNAM) sla_file + integer sla_startdate(4) + logical use_mon + _RL sla_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL sla_mask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + integer year, irec integer myThid - integer sla_startdate(4) - _RL sla_period - _RL sla_intercept - _RL sla_slope - _RL sla_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) - _RL sla_mask (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) - character*(MAX_LEN_FNAM) sla_file +c == external functions == + integer ilnblnk + external ilnblnk + integer cal_IsLeap + external cal_IsLeap c == local variables == - integer bi,bj integer i,j,k integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - integer sshrec - integer difftime(4) - integer middate(4) - integer noffset - _RL diffsecs _RL spval _RL factor - cnew( integer il - _RL daytime - integer dayiter - integer daydate(4) - integer yday, ymod - integer md, dd, sd, ld, wd - character*(80) fnametmp + character*(MAX_LEN_FNAM) fnametmp logical exst cnew) - -c == external functions == - - integer ilnblnk - external ilnblnk - - integer cal_IsLeap - external cal_IsLeap + logical read_rec c == end of interface == @@ -92,74 +78,84 @@ subroutine cost_sla_read_yd( sla_file, sla_startdate, factor = 0.01 spval = -9990. - if ( (day.GE.1).AND.( ( - & (cal_IsLeap(year,myThid).eq.2).AND.(day.LE.366) - & ).OR.(day.LE.365) ) ) then - - il=ilnblnk(sla_file) - - write(fnametmp(1:80),'(2a,i4)') + read_rec=.FALSE. + IF (use_mon) THEN + IF ( (irec.GE.1).AND.(irec.LE.12 ) ) THEN + read_rec = .TRUE. + ENDIF + ELSE + + IF ( (irec.GE.1).AND.( ( + & (cal_IsLeap(year,myThid).EQ.2).AND.(irec.LE.366) + & ).OR.(irec.LE.365) ) ) THEN + read_rec = .TRUE. + ENDIF + ENDIF + + IF (read_rec) THEN + il=ilnblnk(sla_file) + WRITE(fnametmp,'(2a,i4)') & sla_file(1:il), '_', year - inquire( file=fnametmp, exist=exst ) - if (.NOT. exst) then - stop - endif - - CALL READ_REC_3D_RL( fnametmp, cost_iprec, 1, - & sla_obs, day, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax - - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - sla_mask(i,j,bi,bj) = 0. _d 0 - else - sla_mask(i,j,bi,bj) = 1. _d 0 - endif - if (sla_obs(i,j,bi,bj) .le. spval) then - sla_mask(i,j,bi,bj) = 0. _d 0 - endif - if (abs(sla_obs(i,j,bi,bj)) .lt. 1.d-8 ) then - sla_mask(i,j,bi,bj) = 0. _d 0 - endif + inquire( file=fnametmp, exist=exst ) + IF (.NOT. exst) THEN + STOP + ENDIF + + CALL READ_REC_3D_RL( fnametmp, cost_iprec, 1, + & sla_obs, irec, 1, myThid ) + + DO bj = jtlo,jthi + DO bi = itlo,ithi + k = 1 + DO j = jmin,jmax + DO i = imin,imax + + IF (_hFacC(i,j,k,bi,bj) .EQ. 0.) THEN + sla_mask(i,j,bi,bj) = 0. _d 0 + ELSE + sla_mask(i,j,bi,bj) = 1. _d 0 + ENDIF + IF (sla_obs(i,j,bi,bj) .LE. spval) THEN + sla_mask(i,j,bi,bj) = 0. _d 0 + ENDIF + IF (abs(sla_obs(i,j,bi,bj)) .LT. 1.d-8 ) THEN + sla_mask(i,j,bi,bj) = 0. _d 0 + ENDIF #ifndef ALLOW_SHALLOW_ALTIMETRY - if ( R_low(i,j,bi,bj) .GT. -200. ) then - sla_mask(i,j,bi,bj) = 0. _d 0 - endif + IF ( R_low(i,j,bi,bj) .GT. -200. ) THEN + sla_mask(i,j,bi,bj) = 0. _d 0 + ENDIF #endif #ifndef ALLOW_HIGHLAT_ALTIMETRY - if ( abs(YC(i,j,bi,bj)) .GT. 66. ) then - sla_mask(i,j,bi,bj) = 0. _d 0 - endif + IF ( abs(YC(i,j,bi,bj)) .GT. 66. ) THEN + sla_mask(i,j,bi,bj) = 0. _d 0 + ENDIF #endif - sla_mask(i,j,bi,bj) = sla_mask(i,j,bi,bj)*frame(i,j) - sla_obs(i,j,bi,bj) = sla_mask(i,j,bi,bj)*factor* - & sla_obs(i,j,bi,bj) - - enddo - enddo - enddo - enddo - - else !if ( (day.GE.1).AND... - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - sla_obs(i,j,bi,bj) = 0. _d 0 - sla_mask(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - - endif !if ( (day.GE.1).AND... + sla_mask(i,j,bi,bj) = sla_mask(i,j,bi,bj)*frame(i,j) + sla_obs(i,j,bi,bj) = sla_mask(i,j,bi,bj)*factor* + & sla_obs(i,j,bi,bj) + + ENDDO + ENDDO + ENDDO + ENDDO + + ELSE !IF ( (irec.GE.1).AND... + + DO bj = jtlo,jthi + DO bi = itlo,ithi + DO j = jmin,jmax + DO i = imin,imax + sla_obs(i,j,bi,bj) = 0. _d 0 + sla_mask(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + + ENDIF !IF ( (irec.GE.1).AND... RETURN END diff --git a/pkg/ecco/cost_ssh.F b/pkg/ecco/cost_ssh.F deleted file mode 100644 index 0bf603ced9..0000000000 --- a/pkg/ecco/cost_ssh.F +++ /dev/null @@ -1,399 +0,0 @@ -#include "ECCO_OPTIONS.h" - - subroutine cost_ssh( - I myIter, - I myTime, - I myThid - & ) - -c ================================================================== -c SUBROUTINE cost_ssh -c ================================================================== -c -c o Evaluate cost function contribution of sea surface height. -c using of geoid error covariances requires regular model grid -c -c started: Detlef Stammer, Ralf Giering Jul-1996 -c -c changed: Christian Eckert eckert@mit.edu 25-Feb-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c changed: Ralf Giering Ralf.Giering@FastOpt.de 12-Jun-2001 -c -c - totally rewrite for parallel processing -c -c ================================================================== -c SUBROUTINE cost_ssh -c ================================================================== - - implicit none - -c == global variables == - -#ifdef ALLOW_SSH_COST_CONTRIBUTION -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "ecco_cost.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "ctrl_dummy.h" -#include "optim.h" -#include "DYNVARS.h" -#ifdef ALLOW_PROFILES -# include "PROFILES_SIZE.h" -# include "profiles.h" -#endif -#endif - -c == routine arguments == - - integer myIter - _RL myTime - integer myThid - -#ifdef ALLOW_SSH_COST_CONTRIBUTION -c == local variables == - - integer bi,bj - integer i,j - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec - integer ilps - - logical doglobalread - logical ladinit - - _RL offset - _RL costmean - _RL offset_sum - _RL psmean ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) - _RL wwwtp ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) - _RL wwwers ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) - _RL wwwgfo ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) - _RL junk - - character*(80) fname - character*(MAX_LEN_MBUF) msgbuf - -c == external functions == - - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Initialise local variables. - costmean = 0. _d 0 - - do j = jmin, jmax - do i = imin, imax - wwwtp(i,j) = 0. _d 0 - wwwers(i,j) = 0. _d 0 - wwwgfo(i,j) = 0. _d 0 - enddo - enddo - -c-- First, read tiled data. - doglobalread = .false. - ladinit = .false. - - write(fname(1:80),'(80a)') ' ' - ilps=ilnblnk( psbarfile ) - write(fname(1:80),'(2a,i10.10)') - & psbarfile(1:ilps),'.',optimcycle - -c-- ============ -c-- Mean values. -c-- ============ - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - psmean(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - -c-- Read mean field and generate mask -c-- Convert mean ssh from cm to m -#ifdef ALLOW_SSH_MEAN_COST_CONTRIBUTION - CALL READ_REC_3D_RL( mdtdatfile, cost_iprec, 1, - & mdt, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - mdtmask(i,j,bi,bj)=maskC(i,j,1,bi,bj) - if (mdt(i,j,bi,bj) .lt. -9990. _d 0) then - mdtmask(i,j,bi,bj) = 0. _d 0 - endif - if ( R_low(i,j,bi,bj) .GT. -200. ) then - mdtmask(i,j,bi,bj) = 0. _d 0 - endif - mdt(i,j,bi,bj) = mdt(i,j,bi,bj)* - & mdtmask(i,j,bi,bj)*0.01 _d 0 - enddo - enddo - enddo - enddo -#endif /* ALLOW_SSH_MEAN_COST_CONTRIBUTION */ - -c-- Loop over records for the first time. - do irec = 1, ndaysrec - -c-- Compute the mean over all psbar records. - call active_read_xy( fname, psbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_psbar_mean_dummy ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - psmean(i,j,bi,bj) = psmean(i,j,bi,bj) + - & psbar(i,j,bi,bj)/ - & float(ndaysrec) - enddo - enddo - enddo - enddo - - enddo - -c-- Compute and remove offset for current tile and sum over all -c-- tiles of this instance. - offset = 0. _d 0 - offset_sum = 0. _d 0 - -c-- Sum over this thread tiles. - do bj = jtlo,jthi - do bi = itlo,ithi - do j = 1,sNy - do i = 1,sNx - offset = offset + - & mdtmask(i,j,bi,bj)*cosphi(i,j,bi,bj)* - & (mdt(i,j,bi,bj) - psmean(i,j,bi,bj)) - offset_sum = offset_sum + - & mdtmask(i,j,bi,bj)*cosphi(i,j,bi,bj) - enddo - enddo - enddo - enddo - -c-- Do a global summation. - _GLOBAL_SUM_RL( offset , myThid ) - _GLOBAL_SUM_RL( offset_sum , myThid ) - - if (offset_sum .eq. 0.0) then - _BEGIN_MASTER( myThid ) - write(msgbuf,'(a)') ' cost_ssh: offset_sum = zero!' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , myThid) - _END_MASTER( myThid ) -cph stop ' ... stopped in cost_ssh.' - else - _BEGIN_MASTER( myThid ) - write(msgbuf,'(a,d22.15)') - & ' cost_ssh: offset_sum = ',offset_sum - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , myThid) - _END_MASTER( myThid ) - endif - - offset = offset / offset_sum - -#ifdef ALLOW_PROFILES - if ( usePROFILES ) then - do bj = jtlo,jthi - do bi = itlo,ithi - do j = 1,sNy - do i = 1,sNx - prof_etan_mean(i,j,bi,bj)=offset+psmean(i,j,bi,bj) - enddo - enddo - enddo - enddo - _EXCH_XY_RL( prof_etan_mean, myThid ) - endif -#endif - -#ifdef ALLOW_SSH_MEAN_COST_CONTRIBUTION -#ifndef ALLOW_SSH_TOT -c-- ========== -c-- Mean -c-- ========== -c-- compute mean ssh difference cost contribution - objf_hmean = 0. _d 0 - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - junk = psmean(i,j,bi,bj) - mdt(i,j,bi,bj) + offset - objf_hmean = objf_hmean + junk*junk - & * wp(i,j,bi,bj)*mdtmask(i,j,bi,bj) - if ( wp(i,j,bi,bj)*mdtmask(i,j,bi,bj) .ne. 0. ) - & num_hmean = num_hmean + 1.D0 - enddo - enddo - enddo - enddo - CALL GLOBAL_SUM_R8 ( objf_hmean, myThid ) - CALL GLOBAL_SUM_R8 ( num_hmean, myThid ) -#endif /* ALLOW_SSH_TOT */ -#endif /* ALLOW_SSH_MEAN_COST_CONTRIBUTION */ - -c-- ========== -c-- Anomalies. -c-- ========== - -c-- Loop over records for the second time. - do irec = 1, ndaysrec - - call active_read_xy( fname, psbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_psbar_mean_dummy ) - -#ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION - call cost_sla_read( topexfile, topexstartdate, topexperiod, - & topexintercept, topexslope, - & tpobs, tpmask, - & irec, myThid ) -#endif - -#ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION - call cost_sla_read( ersfile, ersstartdate, ersperiod, - & ersintercept, ersslope, - & ersobs, ersmask, - & irec, myThid ) -#endif - -#ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION - call cost_sla_read( gfofile, gfostartdate, gfoperiod, - & gfointercept, gfoslope, - & gfoobs, gfomask, - & irec, myThid ) -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - -#ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION - do j = jmin,jmax - do i = imin,imax -c-- The array psobs contains SSH anomalies. - wwwtp(i,j) = wtp(i,j,bi,bj) *cosphi(i,j,bi,bj) -#ifndef ALLOW_SSH_TOT - junk = ((psbar(i,j,bi,bj) - psmean(i,j,bi,bj)) - - & tpobs(i,j,bi,bj)) - & *tpmask(i,j,bi,bj) - objf_tp(bi,bj) = objf_tp(bi,bj) - & + junk*junk*wwwtp(i,j) - if ( wwwtp(i,j)*junk .ne. 0. ) - & num_tp(bi,bj) = num_tp(bi,bj) + 1. _d 0 -#else - if (mdtmask(i,j,bi,bj)*tpmask(i,j,bi,bj) - & *wp(i,j,bi,bj)*wwwtp(i,j) .ne.0.) then - junk = ( psbar(i,j,bi,bj) - - & (tpobs(i,j,bi,bj)+mdt(i,j,bi,bj)-offset) ) - objf_tp(bi,bj) = objf_tp(bi,bj) - & +junk*junk/( 1/wp(i,j,bi,bj)+1/wwwtp(i,j) ) - num_tp(bi,bj) = num_tp(bi,bj) + 1. _d 0 - endif -#endif /* ALLOW_SSH_TOT */ - enddo - enddo -#endif - -#ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION - do j = jmin,jmax - do i = imin,imax -c-- The array ersobs contains SSH anomalies. - wwwers(i,j) = wers(i,j,bi,bj)*cosphi(i,j,bi,bj) -#ifndef ALLOW_SSH_TOT - junk = ((psbar(i,j,bi,bj) - psmean(i,j,bi,bj)) - - & ersobs(i,j,bi,bj)) - & *ersmask(i,j,bi,bj) - objf_ers(bi,bj) = objf_ers(bi,bj) - & + junk*junk*wwwers(i,j) - if ( wwwers(i,j)*junk .ne. 0. ) - & num_ers(bi,bj) = num_ers(bi,bj) + 1. _d 0 -#else - if (mdtmask(i,j,bi,bj)*ersmask(i,j,bi,bj) - & *wp(i,j,bi,bj)*wwwers(i,j) .ne.0.) then - junk = ( psbar(i,j,bi,bj) - - & (ersobs(i,j,bi,bj)+mdt(i,j,bi,bj)-offset) ) - objf_ers(bi,bj) = objf_ers(bi,bj) - & +junk*junk/( 1/wp(i,j,bi,bj)+1/wwwers(i,j) ) - num_ers(bi,bj) = num_ers(bi,bj) + 1. _d 0 - endif -#endif /* ALLOW_SSH_TOT */ - enddo - enddo -#endif - -#ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION - do j = jmin,jmax - do i = imin,imax -c-- The array gfoobs contains SSH anomalies. - wwwgfo(i,j) = wgfo(i,j,bi,bj)*cosphi(i,j,bi,bj) -#ifndef ALLOW_SSH_TOT - junk = ((psbar(i,j,bi,bj) - psmean(i,j,bi,bj)) - - & gfoobs(i,j,bi,bj)) - & *gfomask(i,j,bi,bj) - objf_gfo(bi,bj) = objf_gfo(bi,bj) - & + junk*junk*wwwgfo(i,j) - if ( wwwgfo(i,j)*junk .ne. 0. ) - & num_gfo(bi,bj) = num_gfo(bi,bj) + 1. _d 0 -#else - if (mdtmask(i,j,bi,bj)*gfomask(i,j,bi,bj) - & *wp(i,j,bi,bj)*wwwgfo(i,j) .ne.0.) then - junk = ( psbar(i,j,bi,bj) - - & (gfoobs(i,j,bi,bj)+mdt(i,j,bi,bj)-offset) ) - objf_gfo(bi,bj) = objf_gfo(bi,bj) - & +junk*junk/( 1/wp(i,j,bi,bj)+1/wwwgfo(i,j) ) - num_gfo(bi,bj) = num_gfo(bi,bj) + 1. _d 0 - endif -#endif /* ALLOW_SSH_TOT */ - enddo - enddo -#endif - - enddo - enddo - - enddo -c-- End of second loop over records. - - do bj = jtlo,jthi - do bi = itlo,ithi - objf_h(bi,bj) = objf_h(bi,bj) + - & objf_tp(bi,bj) + objf_ers(bi,bj) + objf_gfo(bi,bj) - num_h(bi,bj) = num_h(bi,bj) + - & num_tp(bi,bj) + num_ers(bi,bj) + num_gfo(bi,bj) - enddo - enddo - -#endif /* ifdef ALLOW_SSH_COST_CONTRIBUTION */ - - RETURN - END diff --git a/pkg/ecco/ecco.h b/pkg/ecco/ecco.h deleted file mode 100644 index 66052dc567..0000000000 --- a/pkg/ecco/ecco.h +++ /dev/null @@ -1,343 +0,0 @@ -c ================================================================== -c HEADER ECCO -c ================================================================== -c -c o Header for the ECCO project. -c -c started: Christian Eckert eckert@mit.edu 23-Feb-1999 -c -c changed: Christian Eckert eckert@mit.edu -c -c -c ================================================================== -c HEADER ECCO -c ================================================================== - -c Version of the release and versions of used packages: -c ===================================================== -c -c eccoVersion - ecco release version. -c usesCalendarVersion - version of the calendar that has to -c be used. -c usesExternalForcingVersion - version of the external forcing that -c has to be used. -c usesAdjointSupportVersion - version of the adjoint support routines -c that have to be used. -c usesOptimizationVersion - version of the oof-line optimization -c that has to be used. - - character*(5) eccoVersion - character*(5) eccoUsesCalVersion - character*(5) eccoUsesExfVersion - character*(5) eccoUsesAdsuppVersion - character*(5) eccoUsesOptimVersion - - parameter( eccoVersion = '0.1.0' ) - parameter( eccoUsesCalVersion = '0.1.4' ) - parameter( eccoUsesExfVersion = '0.1.1' ) - parameter( eccoUsesAdsuppVersion = '0.1.0' ) - parameter( eccoUsesOptimVersion = '2.1.0' ) - - -c Experiment name: -c ================ - - common /ecco_c/ - & expId - character*(10) expId - - -c Integration information: -c ======================== -c -c nyears - number of calendar years that are affected by the -c current integration. - - common /ecco_i/ - & nyears, nmonths, ndays, numsteps, - & eccoiter, ecco_prevcall - integer nyears - integer nmonths - integer ndays - integer numsteps - integer eccoiter - integer ecco_prevcall - -c Averaging counters: -c =================== -c -c sum1day - counter for the daily averaging -c sum1mon - counter for the monthly averaging -c dayrec - number of averaged surface pressure records. -c monrec - number of averaged theta and salinity records. - - common /average_i/ - & sum1day,sum1mon,sum1year, - & dayrec,monrec,yearrec - integer sum1day - integer sum1mon - integer sum1year - integer dayrec - integer monrec - integer yearrec - -c Flags used in the model-data comparison: -c ======================================== -c -c using_ers - flag that indicates the use of ERS data - - common /ecco_cost_data_flags/ - & using_mdt, - & using_tpj, - & using_topex, - & using_ers, - & using_gfo, - & using_cost_altim, - & using_cost_bp, - & using_cost_sst, - & using_cost_scat, - & using_cost_seaice - & ,using_cost_transp - logical using_mdt - logical using_tpj - logical using_topex - logical using_ers - logical using_gfo - logical using_cost_altim - logical using_cost_bp - logical using_cost_sst - logical using_cost_scat - logical using_cost_seaice - logical using_cost_transp - -c Record counters relevant for the cost function evaluation. -c ========================================================== -c -c nyearsrec - number of yearly records that will be generated by -c the current model integration. -c nmonsrec - number of monthly records that will be generated by -c the current model integration. -c ndaysrec - number of daily records that will be generated by -c the current model integration. - - common /ecco_i/ - & nyearsrec, - & nmonsrec, - & ndaysrec - integer nyearsrec - integer nmonsrec - integer ndaysrec - - common /ecco_r/ - & m_eta,m_UE,m_VN, -#ifdef ALLOW_PSBAR_STERIC - & sterGloH, -#endif - & trVol, trHeat, trSalt, - & VOLsumGlob_0, VOLsumGlob, - & RHOsumGlob_0, RHOsumGlob, - & frame, cosphi, eccoVol_0 - _RL VOLsumGlob_0, VOLsumGlob, RHOsumGlob_0, RHOsumGlob - _RL frame (1-olx:snx+olx,1-oly:sny+oly ) - _RL cosphi (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL m_eta(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#ifdef ALLOW_PSBAR_STERIC - _RL sterGloH -#endif - _RL m_UE (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL m_VN (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL trVol(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL trHeat(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL trSalt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL eccoVol_0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - -c file precision and field type - common /prec_type_cost/ - & cost_iprec, - & cost_yftype - - integer cost_iprec - character*(2) cost_yftype - -c Number of User Cost terms: -c ============================= - INTEGER NUSERCOST - PARAMETER ( NUSERCOST=10 ) - -c Number of Generic Cost terms: -c ============================= - INTEGER NGENCOST - PARAMETER ( NGENCOST=30 ) - - INTEGER NGENCOST3D -#ifdef ALLOW_GENCOST3D - PARAMETER ( NGENCOST3D=6 ) -#else - PARAMETER ( NGENCOST3D=0 ) -#endif - - INTEGER NGENPPROC - PARAMETER ( NGENPPROC=10 ) - - INTEGER N1DDATA - PARAMETER ( N1DDATA=300 ) - -c empty pre/post-processing : -c ========================= - common /ecco_nogencost_c/ - & no_preproc, - & no_preproc_c, - & no_posproc, - & no_posproc_c, - & clim_preproc, - & anom_preproc - character*(MAX_LEN_FNAM) no_preproc(NGENPPROC) - character*(MAX_LEN_FNAM) no_preproc_c(NGENPPROC) - character*(MAX_LEN_FNAM) no_posproc(NGENPPROC) - character*(MAX_LEN_FNAM) no_posproc_c(NGENPPROC) - character*(MAX_LEN_FNAM) clim_preproc(NGENPPROC) - character*(MAX_LEN_FNAM) anom_preproc(NGENPPROC) - - common /ecco_nogencost_r/ - & no_preproc_r, no_posproc_r - _RL no_preproc_r(NGENPPROC) - _RL no_posproc_r(NGENPPROC) - - common /ecco_nogencost_i/ - & no_preproc_i, no_posproc_i, clim_preproc_i - integer no_preproc_i(NGENPPROC) - integer no_posproc_i(NGENPPROC) - integer clim_preproc_i(NGENPPROC) - -c gencost common blocs: -c ===================== - -#ifdef ALLOW_GENCOST_CONTRIBUTION -c objf_gencost - gencost user defined contribution - common /ecco_gencost_ctrl/ - & gencost_dummy - _RL gencost_dummy(NGENCOST) - - common /ecco_gencost_r_1/ - & objf_gencost, num_gencost, mult_gencost, gencost_storefld, - & gencost_barfld, gencost_modfld, gencost_weight, - & gencost_mskCsurf, gencost_mskWsurf, gencost_mskSsurf, - & gencost_mskVertical, -#ifdef ALLOW_GENCOST3D - & gencost_bar3d, gencost_mod3d, gencost_wei3d, - & gencost_mskC, gencost_mskW, gencost_mskS, -#endif - & gencost_spmin, gencost_spmax, gencost_spzero, - & gencost_period, gencost_preproc_r, gencost_posproc_r, - & gencost_wei1d, gencost_1ddata - - _RL objf_gencost(nsx,nsy,NGENCOST) - _RL num_gencost(nsx,nsy,NGENCOST) - _RL mult_gencost(NGENCOST) - _RL gencost_spmin(NGENCOST) - _RL gencost_spmax(NGENCOST) - _RL gencost_spzero(NGENCOST) - _RL gencost_period(NGENCOST) - _RL gencost_storefld(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_barfld(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_modfld(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_weight(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_mskCsurf(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_mskWsurf(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_mskSsurf(1-olx:snx+olx,1-oly:sny+oly, - & nsx,nsy,NGENCOST) - _RL gencost_mskVertical(nr,NGENCOST) -#ifdef ALLOW_GENCOST3D - _RL gencost_bar3d(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) - _RL gencost_mod3d(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) - _RL gencost_wei3d(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) - _RL gencost_mskC(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) - _RL gencost_mskW(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) - _RL gencost_mskS(1-olx:snx+olx,1-oly:sny+oly, - & nr,nsx,nsy,NGENCOST3D) -#endif - _RL gencost_preproc_r(NGENPPROC,NGENCOST) - _RL gencost_posproc_r(NGENPPROC,NGENCOST) - _RL gencost_wei1d(NGENCOST) - _RL gencost_1ddata(N1DDATA, NGENCOST) - - common /ecco_gencost_i_1/ - & gencost_nrec, gencost_nrecperiod, - & gencost_flag, gencost_outputlevel, - & gencost_startdate1, gencost_startdate2, - & gencost_enddate1, gencost_enddate2, - & gencost_startdate, gencost_enddate, - & gencost_pointer3d, gencost_smooth2Ddiffnbt, - & gencost_preproc_i, gencost_posproc_i, - & gencost_msk_pointer3d, gencost_itracer - - integer gencost_nrec(NGENCOST) - integer gencost_nrecperiod(NGENCOST) - integer gencost_flag(NGENCOST) - integer gencost_outputlevel(NGENCOST) - integer gencost_startdate1(NGENCOST) - integer gencost_startdate2(NGENCOST) - integer gencost_startdate(4,NGENCOST) - integer gencost_enddate1(NGENCOST) - integer gencost_enddate2(NGENCOST) - integer gencost_enddate(4,NGENCOST) - integer gencost_pointer3d(NGENCOST) - integer gencost_smooth2Ddiffnbt(NGENCOST) - integer gencost_preproc_i(NGENPPROC,NGENCOST) - integer gencost_posproc_i(NGENPPROC,NGENCOST) - integer gencost_msk_pointer3d(NGENCOST) - integer gencost_itracer(NGENCOST) - - common /ecco_gencost_l_1/ - & gencost_timevaryweight, gencost_barskip, - & using_gencost, gencost_is3d, gencost_msk_is3d, - & gencost_is1d - LOGICAL using_gencost(NGENCOST) - LOGICAL gencost_is3d(NGENCOST) - LOGICAL gencost_is1d(NGENCOST) - LOGICAL gencost_msk_is3d(NGENCOST) - LOGICAL gencost_timevaryweight(NGENCOST) - LOGICAL gencost_barskip(NGENCOST) - - common /ecco_gencost_c/ - & gencost_name, - & gencost_scalefile, - & gencost_errfile, - & gencost_datafile, - & gencost_barfile, - & gencost_avgperiod, - & gencost_preproc, - & gencost_preproc_c, - & gencost_posproc, - & gencost_posproc_c, - & gencost_mask - character*(MAX_LEN_FNAM) gencost_name(NGENCOST) - character*(MAX_LEN_FNAM) gencost_scalefile(NGENCOST) - character*(MAX_LEN_FNAM) gencost_errfile(NGENCOST) - character*(MAX_LEN_FNAM) gencost_datafile(NGENCOST) - character*(MAX_LEN_FNAM) gencost_barfile(NGENCOST) - character*(5) gencost_avgperiod(NGENCOST) - character*(MAX_LEN_FNAM) gencost_preproc(NGENPPROC,NGENCOST) - character*(MAX_LEN_FNAM) gencost_posproc_c(NGENPPROC,NGENCOST) - character*(MAX_LEN_FNAM) gencost_posproc(NGENPPROC,NGENCOST) - character*(MAX_LEN_FNAM) gencost_preproc_c(NGENPPROC,NGENCOST) - character*(MAX_LEN_FNAM) gencost_mask(NGENCOST) - -#endif /* ALLOW_GENCOST_CONTRIBUTION */ - -c ================================================================== -c END OF HEADER ECCO -c ================================================================== - - diff --git a/pkg/ecco/ecco_ad_check_lev1_dir.h b/pkg/ecco/ecco_ad_check_lev1_dir.h deleted file mode 100644 index 665d36f8b3..0000000000 --- a/pkg/ecco/ecco_ad_check_lev1_dir.h +++ /dev/null @@ -1,55 +0,0 @@ -c -c store directives for checkpoint level 1 -c - -#ifdef ALLOW_ECCO_BARSTORES - -#ifdef ALLOW_ECCO - -CADJ STORE tbar = comlev1, key=ikey_dynamics, kind=isbyte -cccCADJ STORE tbar_daily = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE sbar = comlev1, key=ikey_dynamics, kind=isbyte -cccCADJ STORE sbar_daily = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE ubar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vbar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE wbar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE psbar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE bpbar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE sstbar = comlev1, key=ikey_dynamics, kind=isbyte - -CADJ STORE xx_tbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sbar_mean_dummy = dummytape, key=1, kind=isbyte -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -CADJ STORE xx_sigmaRbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif -CADJ STORE xx_ubar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_vbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_wbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_psbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_bpbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sstbar_mean_dummy = dummytape, key=1, kind=isbyte -cccCADJ STORE xx_sssbar_mean_dummy = dummytape, key=1, kind=isbyte - -#ifdef ALLOW_GENCOST_CONTRIBUTION -CADJ STORE gencost_barfld = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE gencost_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_GENCOST_CONTRIBUTION */ - -#endif /* ALLOW_ECCO */ - -#ifdef ALLOW_PROFILES -CADJ STORE profiles_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_PROFILES */ - -#ifdef ALLOW_SEAICE -CADJ STORE smrareabar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE smrsstbar = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE smrsssbar = comlev1, key=ikey_dynamics, kind=isbyte - -CADJ STORE xx_smrareabar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsstbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsssbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_SEAICE */ - -#endif /* ALLOW_ECCO_BARSTORES */ - diff --git a/pkg/ecco/ecco_ad_check_lev2_dir.h b/pkg/ecco/ecco_ad_check_lev2_dir.h deleted file mode 100644 index 533007b5fa..0000000000 --- a/pkg/ecco/ecco_ad_check_lev2_dir.h +++ /dev/null @@ -1,63 +0,0 @@ -c -c store directives for checkpoint level 2 -c - -#ifdef ALLOW_COST_ATLANTIC -CADJ STORE theta = tapelev2, key=ilev_2 -CADJ STORE vVel = tapelev2, key=ilev_2 -# ifdef NONLIN_FRSURF -CADJ STORE hFacS = tapelev2, key=ilev_2 -# endif -#endif - -#ifdef ALLOW_ECCO_BARSTORES - -#ifdef ALLOW_ECCO - -CADJ STORE tbar = tapelev2, key=ilev_2 -cccCADJ STORE tbar_daily = tapelev2, key=ilev_2 -CADJ STORE sbar = tapelev2, key=ilev_2 -cccCADJ STORE sbar_daily = tapelev2, key=ilev_2 -CADJ STORE ubar = tapelev2, key=ilev_2 -CADJ STORE vbar = tapelev2, key=ilev_2 -CADJ STORE wbar = tapelev2, key=ilev_2 -CADJ STORE psbar = tapelev2, key=ilev_2 -CADJ STORE bpbar = tapelev2, key=ilev_2 -CADJ STORE sstbar = tapelev2, key=ilev_2 - -CADJ STORE xx_tbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sbar_mean_dummy = dummytape, key=1, kind=isbyte -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -CADJ STORE xx_sigmaRbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif -CADJ STORE xx_ubar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_vbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_wbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_psbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_bpbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sstbar_mean_dummy = dummytape, key=1, kind=isbyte -cccCADJ STORE xx_sssbar_mean_dummy = dummytape, key=1, kind=isbyte - -#ifdef ALLOW_GENCOST_CONTRIBUTION -CADJ STORE gencost_barfld = tapelev2, key=ilev_2 -CADJ STORE gencost_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_GENCOST_CONTRIBUTION */ - -#endif /* ALLOW_ECCO */ - -#ifdef ALLOW_PROFILES -CADJ STORE profiles_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_PROFILES */ - -#ifdef ALLOW_SEAICE -CADJ STORE smrareabar = tapelev2, key=ilev_2 -CADJ STORE smrsstbar = tapelev2, key=ilev_2 -CADJ STORE smrsssbar = tapelev2, key=ilev_2 - -CADJ STORE xx_smrareabar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsstbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsssbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_SEAICE */ - -#endif /* ALLOW_ECCO_BARSTORES */ - diff --git a/pkg/ecco/ecco_ad_check_lev3_dir.h b/pkg/ecco/ecco_ad_check_lev3_dir.h deleted file mode 100644 index 4b9ea806a3..0000000000 --- a/pkg/ecco/ecco_ad_check_lev3_dir.h +++ /dev/null @@ -1,63 +0,0 @@ -c -c store directives for checkpoint level 3 -c - -#ifdef ALLOW_COST_ATLANTIC -CADJ STORE theta = tapelev3, key=ilev_3 -CADJ STORE vVel = tapelev3, key=ilev_3 -# ifdef NONLIN_FRSURF -CADJ STORE hFacS = tapelev3, key=ilev_3 -# endif -#endif - -#ifdef ALLOW_ECCO_BARSTORES - -#ifdef ALLOW_ECCO - -CADJ STORE tbar = tapelev3, key=ilev_3 -cccCADJ STORE tbar_daily = tapelev3, key=ilev_3 -CADJ STORE sbar = tapelev3, key=ilev_3 -cccCADJ STORE sbar_daily = tapelev3, key=ilev_3 -CADJ STORE ubar = tapelev3, key=ilev_3 -CADJ STORE vbar = tapelev3, key=ilev_3 -CADJ STORE wbar = tapelev3, key=ilev_3 -CADJ STORE psbar = tapelev3, key=ilev_3 -CADJ STORE bpbar = tapelev3, key=ilev_3 -CADJ STORE sstbar = tapelev3, key=ilev_3 - -CADJ STORE xx_tbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sbar_mean_dummy = dummytape, key=1, kind=isbyte -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -CADJ STORE xx_sigmaRbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif -CADJ STORE xx_ubar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_vbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_wbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_psbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_bpbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sstbar_mean_dummy = dummytape, key=1, kind=isbyte -cccCADJ STORE xx_sssbar_mean_dummy = dummytape, key=1, kind=isbyte - -#ifdef ALLOW_GENCOST_CONTRIBUTION -CADJ STORE gencost_barfld = tapelev3, key=ilev_3 -CADJ STORE gencost_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_GENCOST_CONTRIBUTION */ - -#endif /* ALLOW_ECCO */ - -#ifdef ALLOW_PROFILES -CADJ STORE profiles_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_PROFILES */ - -#ifdef ALLOW_SEAICE -CADJ STORE smrareabar = tapelev3, key=ilev_3 -CADJ STORE smrsstbar = tapelev3, key=ilev_3 -CADJ STORE smrsssbar = tapelev3, key=ilev_3 - -CADJ STORE xx_smrareabar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsstbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsssbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_SEAICE */ - -#endif /* ALLOW_ECCO_BARSTORES */ - diff --git a/pkg/ecco/ecco_ad_check_lev4_dir.h b/pkg/ecco/ecco_ad_check_lev4_dir.h deleted file mode 100644 index eb4f279cd2..0000000000 --- a/pkg/ecco/ecco_ad_check_lev4_dir.h +++ /dev/null @@ -1,63 +0,0 @@ -c -c store directives for checkpoint level 4 -c - -#ifdef ALLOW_COST_ATLANTIC -CADJ STORE theta = tapelev4, key=ilev_4 -CADJ STORE vVel = tapelev4, key=ilev_4 -# ifdef NONLIN_FRSURF -CADJ STORE hFacS = tapelev4, key=ilev_4 -# endif -#endif - -#ifdef ALLOW_ECCO_BARSTORES - -#ifdef ALLOW_ECCO - -CADJ STORE tbar = tapelev4, key=ilev_4 -cccCADJ STORE tbar_daily = tapelev4, key=ilev_4 -CADJ STORE sbar = tapelev4, key=ilev_4 -cccCADJ STORE sbar_daily = tapelev4, key=ilev_4 -CADJ STORE ubar = tapelev4, key=ilev_4 -CADJ STORE vbar = tapelev4, key=ilev_4 -CADJ STORE wbar = tapelev4, key=ilev_4 -CADJ STORE psbar = tapelev4, key=ilev_4 -CADJ STORE bpbar = tapelev4, key=ilev_4 -CADJ STORE sstbar = tapelev4, key=ilev_4 - -CADJ STORE xx_tbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sbar_mean_dummy = dummytape, key=1, kind=isbyte -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -CADJ STORE xx_sigmaRbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif -CADJ STORE xx_ubar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_vbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_wbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_psbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_bpbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_sstbar_mean_dummy = dummytape, key=1, kind=isbyte -cccCADJ STORE xx_sssbar_mean_dummy = dummytape, key=1, kind=isbyte - -#ifdef ALLOW_GENCOST_CONTRIBUTION -CADJ STORE gencost_barfld = tapelev4, key=ilev_4 -CADJ STORE gencost_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_GENCOST_CONTRIBUTION */ - -#endif /* ALLOW_ECCO */ - -#ifdef ALLOW_PROFILES -CADJ STORE profiles_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_PROFILES */ - -#ifdef ALLOW_SEAICE -CADJ STORE smrareabar = tapelev4, key=ilev_4 -CADJ STORE smrsstbar = tapelev4, key=ilev_4 -CADJ STORE smrsssbar = tapelev4, key=ilev_4 - -CADJ STORE xx_smrareabar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsstbar_mean_dummy = dummytape, key=1, kind=isbyte -CADJ STORE xx_smrsssbar_mean_dummy = dummytape, key=1, kind=isbyte -#endif /* ALLOW_SEAICE */ - -#endif /* ALLOW_ECCO_BARSTORES */ - diff --git a/pkg/ecco/ecco_ad_diff.list b/pkg/ecco/ecco_ad_diff.list index a78e0917e2..d7dfcb0aa6 100644 --- a/pkg/ecco/ecco_ad_diff.list +++ b/pkg/ecco/ecco_ad_diff.list @@ -1,11 +1,11 @@ cost_averagesgeneric.f -cost_averagesfields.f -cost_averagesflags.f -cost_averagesinit.f +cost_averagesfields.f +cost_averagesflags.f +cost_averagesinit.f cost_bp_read.f -cost_forcing.f cost_generic.f cost_gencost_all.f +cost_gencost_moc.f cost_gencost_assignperiod.f cost_gencost_customize.f cost_gencost_sshv4.f @@ -17,21 +17,19 @@ cost_gencost_glbmean.f cost_gencost_transp.f cost_gencal.f cost_genread.f -cost_hyd.f cost_sla_read.f cost_sla_read_yd.f -cost_ssh.f -cost_internal_params.f -cost_obcs.f -cost_obcsn.f -cost_obcss.f -cost_obcsw.f -cost_obcse.f -cost_obcs_ageos.f +cost_obcs.f +cost_obcsn.f +cost_obcss.f +cost_obcsw.f +cost_obcse.f +cost_obcs_ageos.f cost_obcsvol.f ecco_cost_driver.f ecco_cost_final.f ecco_cost_init_varia.f ecco_init_varia.f +ecco_read_pickup.f ecco_phys.f ecco_toolbox.f diff --git a/pkg/ecco/ecco_check.F b/pkg/ecco/ecco_check.F index 7584c04564..ba52c3f7df 100644 --- a/pkg/ecco/ecco_check.F +++ b/pkg/ecco/ecco_check.F @@ -1,4 +1,7 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif C-- File ecco_check.F: C-- Contents @@ -37,42 +40,40 @@ SUBROUTINE ECCO_CHECK( myThid ) C myThid - Number of this instances INTEGER myThid +c == external functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + C === Local variables === C msgBuf - Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_GENCOST_CONTRIBUTION - INTEGER igen_etaday, il, k2, ioUnit + INTEGER igen_etagcm, il + INTEGER igen_tp, igen_ers, igen_gfo, use_mon_int, use_day_int LOGICAL exst - CHARACTER*(128) tempfile,tempfile1 + CHARACTER*(128) tempfile INTEGER icount_transp #endif - INTEGER bi, bj, i, j, k - integer nRetired - -c == external functions == - - integer ilnblnk - external ilnblnk + INTEGER nRetired DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do k = 1,nr - do j = 1-OLy,sNy+OLy - do i = 1-OLx,sNx+OLx + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx eccoVol_0(i,j,k,bi,bj)= & hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) - enddo - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO _BEGIN_MASTER(myThid) c ============ retired compile option checks - - nRetired = 0 + nRetired = 0 #ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', @@ -84,12 +85,20 @@ SUBROUTINE ECCO_CHECK( myThid ) #endif #ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', - & 'ALLOW_MEAN_HFLUX_COST_CONTRIBUTION has no', + & 'ALLOW_MEAN_SFLUX_COST_CONTRIBUTION has no', & 'effect since cost_mean_saltflux has been retired' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid ) nRetired = nRetired + 1 #endif +#ifdef ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION + WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', + & 'ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION has no', + & 'effect since cost_ssh_globmean has been retired' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT , myThid ) + nRetired = nRetired + 1 +#endif #ifdef ALLOW_NEW_SSH_COST WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', & 'ALLOW_NEW_SSH_COST has no', @@ -114,6 +123,13 @@ SUBROUTINE ECCO_CHECK( myThid ) & SQUEEZE_RIGHT , myThid ) nRetired = nRetired + 1 #endif +#ifdef ALLOW_BP_COST_CONTRIBUTION + WRITE(msgBuf,'(3A)') 'ECCO_CHECK:', + & ' "ALLOW_BP_COST_CONTRIBUTION" has been removed', + & ' since cost_bp has been retired' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 +#endif #ifdef ALLOW_SCAT_COST_CONTRIBUTION WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', & 'ALLOW_SCAT_COST_CONTRIBUTION has no', @@ -213,17 +229,17 @@ SUBROUTINE ECCO_CHECK( myThid ) IF ( nRetired .GT. 0 ) THEN WRITE(msgBuf,'(2A)') 'S/R ECCO_CHECK: ', - & ' retired compile-time options need to be undefined' + & ' retired compile-time options need to be removed' CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R ECCO_CHECK' ENDIF c ============ retired run-time parameter checks - - nRetired = 0 + nRetired = 0 #ifdef ALLOW_GENCOST_CONTRIBUTION - do k=1,NGENCOST + DO k=1,NGENCOST IF (gencost_scalefile(k).NE.' ') THEN WRITE(msgBuf,'(3A)') '** WARNING ** ECCO_CHECK:', & 'gencost_scalefile has been retired; ', @@ -264,6 +280,7 @@ SUBROUTINE ECCO_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'S/R ECCO_CHECK: ', & ' retired run-time options were found in data.ecco' CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R ECCO_CHECK' ENDIF @@ -272,51 +289,16 @@ SUBROUTINE ECCO_CHECK( myThid ) _END_MASTER(myThid) -c ============ check for missing data files - -#ifdef ALLOW_BP_COST_CONTRIBUTION - CALL ECCO_CHECK_FILES( using_cost_bp,'bp', - & bpdatfile, bpstartdate(1), myThid ) -#endif -#ifdef ALLOW_SST_COST_CONTRIBUTION - CALL ECCO_CHECK_FILES( using_cost_sst,'sst', - & sstdatfile, sststartdate(1), myThid ) -#endif -#ifdef ALLOW_TMI_SST_COST_CONTRIBUTION - CALL ECCO_CHECK_FILES( using_cost_sst,'sst', - & tmidatfile, tmistartdate(1), myThid ) -#endif -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) - CALL ECCO_CHECK_FILES( using_cost_scat,'scat', - & scatxdatfile, scatxstartdate(1), myThid ) - CALL ECCO_CHECK_FILES( using_cost_scat,'scat', - & scatydatfile, scatystartdate(1), myThid ) -#endif - -c ============ deprecated codes related checks - -#if (defined (ALLOW_TRANSPORT_COST_CONTRIBUTION) || \ - defined (ALLOW_NEW_SSH_COST)) - IF ( ndaysrec .GT. maxNumDays ) THEN - WRITE(msgBuf,'(2A,2I10)') - & 'ECCO_CHECK: for ALLOW_TRANSPORT_COST_CONTRIBUTION: ', - & 'ndaysrec > maxNumDays in ecco_cost.h ', - & ndaysrec, maxNumDays - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , myThid ) - CALL PRINT_ERROR( msgBuf , myThid ) - STOP 'ABNORMAL END: S/R ECCO_CHECK' - ENDIF -#endif - c ============ generic cost function related checks #ifdef ALLOW_GENCOST_CONTRIBUTION icount_transp=0 - do k=1,NGENCOST + igen_tp = 0 + igen_ers = 0 + igen_gfo = 0 + DO k=1,NGENCOST - if (gencost_pointer3d(k).GT.NGENCOST3D) then + IF (gencost_pointer3d(k).GT.NGENCOST3D) THEN WRITE(msgBuf,'(2A)') & 'ECCO_CHECK: too many 3D cost terms; please', & 'increase NGENCOST3D and recompile.' @@ -324,9 +306,9 @@ SUBROUTINE ECCO_CHECK( myThid ) & SQUEEZE_RIGHT , myThid ) CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif + ENDIF - if (gencost_msk_pointer3d(k).GT.NGENCOST3D) then + IF (gencost_msk_pointer3d(k).GT.NGENCOST3D) THEN WRITE(msgBuf,'(2A)') & 'ECCO_CHECK: too many 3D msk terms; please', & 'increase NGENCOST3D and recompile.' @@ -334,48 +316,57 @@ SUBROUTINE ECCO_CHECK( myThid ) & SQUEEZE_RIGHT , myThid ) CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif + ENDIF - if ( gencost_datafile(k) .ne. ' ' ) then + IF ( gencost_datafile(k) .NE. ' ' ) THEN CALL ECCO_CHECK_FILES( using_gencost(k), 'gencost', & gencost_datafile(k), gencost_startdate1(k), myThid ) c-- - if ( (gencost_preproc(1,k).EQ.'variaweight').AND. - & ( gencost_errfile(k) .NE. ' ' ) ) then + IF ( (gencost_preproc(1,k).EQ.'variaweight').AND. + & ( gencost_errfile(k) .NE. ' ' ) ) THEN CALL ECCO_CHECK_FILES( using_gencost(k), 'gencost', & gencost_errfile(k), gencost_startdate1(k), myThid ) - elseif ( gencost_errfile(k) .NE. ' ' ) then - il = ilnblnk(gencost_errfile(k)) + ELSEIF ( gencost_errfile(k) .NE. ' ' ) THEN + il = ILNBLNK(gencost_errfile(k)) inquire( file=gencost_errfile(k)(1:il), exist=exst ) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: missing error file', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif - endif + ENDIF + ENDIF c altimetry related checks - if (gencost_name(k).EQ.'sshv4-tp') using_tpj=using_gencost(k) - if (gencost_name(k).EQ.'sshv4-ers') using_ers=using_gencost(k) - if (gencost_name(k).EQ.'sshv4-gfo') using_gfo=using_gencost(k) - if (gencost_name(k).EQ.'sshv4-mdt') using_mdt=using_gencost(k) + IF (gencost_name(k).EQ.'sshv4-tp') THEN + igen_tp = k + using_tpj = using_gencost(k) + ENDIF + IF (gencost_name(k).EQ.'sshv4-ers') THEN + igen_ers = k + using_ers = using_gencost(k) + ENDIF + IF (gencost_name(k).EQ.'sshv4-gfo') THEN + igen_gfo = k + using_gfo = using_gencost(k) + ENDIF + IF (gencost_name(k).EQ.'sshv4-mdt') using_mdt=using_gencost(k) c seaice related checks - if (gencost_name(k).EQ.'siv4-conc') + IF (gencost_name(k).EQ.'siv4-conc') & using_cost_seaice=using_gencost(k) - if (gencost_name(k).EQ.'siv4-deconc') + IF (gencost_name(k).EQ.'siv4-deconc') & using_cost_seaice=using_gencost(k) - if (gencost_name(k).EQ.'siv4-exconc') + IF (gencost_name(k).EQ.'siv4-exconc') & using_cost_seaice=using_gencost(k) -catn-- put stop statement if use old siv4 names: - if (gencost_name(k).EQ.'siv4-sst') then +catn-- put STOP statement if use old siv4 names: + IF (gencost_name(k).EQ.'siv4-sst') THEN WRITE(msgBuf,'(2A)') & 'ECCO_CHECK: OLD seaice gencost_name siv4-sst is retired,', & ' NEW name is siv4-deconc' @@ -383,8 +374,8 @@ SUBROUTINE ECCO_CHECK( myThid ) & SQUEEZE_RIGHT , myThid ) CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif - if (gencost_name(k).EQ.'siv4-vol') then + ENDIF + IF (gencost_name(k).EQ.'siv4-vol') THEN WRITE(msgBuf,'(2A)') & 'ECCO_CHECK: OLD seaice gencost_name siv4-vol is retired,', & ' NEW name is siv4-exconc' @@ -392,123 +383,126 @@ SUBROUTINE ECCO_CHECK( myThid ) & SQUEEZE_RIGHT , myThid ) CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif + ENDIF c-atn add another block for cost that do not need datafile but c should have checks for other things: c here, separate into different gencost_flag block - else !if ( gencost_datafile(k) .ne. ' ' ) then + ELSE !if ( gencost_datafile(k) .NE. ' ' ) THEN c---------------- block -1 ---------------------------- c block -1: cost ssh-[mdt,lsc,amsre-lsc] do not need datafile c but need errfile. at the moment do not accomodate variaweight. - if(gencost_flag(k).eq. -1) then - if(gencost_errfile(k) .ne. ' ') then - il = ilnblnk(gencost_errfile(k)) + IF (gencost_flag(k).EQ. -1) THEN + IF (gencost_errfile(k) .NE. ' ') THEN + il = ILNBLNK(gencost_errfile(k)) inquire( file=gencost_errfile(k)(1:il), exist=exst ) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: missing error file', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif - elseif(.not.(gencost_name(k).eq.'sshv4-gmsl')) then + ENDIF + ELSEIF(.NOT.(gencost_name(k).EQ.'sshv4-gmsl')) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: error file not defined', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif + ENDIF c---------------- block -3 ---------------------------- c-- boxmean: require [err,bar]file, can have datafile, not checked here c-- also not checked for variwei at the moment - elseif(gencost_flag(k) .eq. -3 ) then + ELSEIF(gencost_flag(k) .EQ. -3 ) THEN WRITE(msgBuf,'(A,i3,L5)') & 'entering boxmean/horflux check,k,using_gencost(k): ,', & k,using_gencost(k) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , myThid) - if(gencost_errfile(k) .ne. ' ') then + IF (gencost_errfile(k) .NE. ' ') THEN WRITE(msgBuf,'(3A)') 'S/R ECCO_CHECK: boxmean now ', & ' uses gencost_mask instead of gencost_errfile --', & ' please update data.ecco accordingly' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif + ENDIF - if(gencost_mask(k) .eq. ' ') then + IF (gencost_mask(k) .EQ. ' ') THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: gencost_mask is', & ' undefined so ',gencost_name(k)(1:il), & ' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif + ENDIF - if ((gencost_mask(k) .ne. ' ').AND. - & (gencost_barfile(k)(1:9).EQ.'m_boxmean')) then - il = ilnblnk(gencost_mask(k)) - write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'C' + IF ((gencost_mask(k) .NE. ' ').AND. + & (gencost_barfile(k)(1:9).EQ.'m_boxmean')) THEN + il = ILNBLNK(gencost_mask(k)) + WRITE(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'C' inquire( file=tempfile(1:il+1), exist=exst ) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: missing mask C file', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif - endif + ENDIF + ENDIF - if ((gencost_mask(k) .ne. ' ').AND. - & (gencost_barfile(k)(1:9).EQ.'m_horflux')) then - il = ilnblnk(gencost_mask(k)) - write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'W' + IF ((gencost_mask(k) .NE. ' ').AND. + & (gencost_barfile(k)(1:9).EQ.'m_horflux')) THEN + il = ILNBLNK(gencost_mask(k)) + WRITE(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'W' inquire( file=tempfile(1:il+1), exist=exst ) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: missing mask W file', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif + ENDIF c - il = ilnblnk(gencost_mask(k)) - write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'S' + il = ILNBLNK(gencost_mask(k)) + WRITE(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'S' inquire( file=tempfile(1:il+1), exist=exst ) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: missing mask S file', & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif - endif + ENDIF + ENDIF c-- check barfile, make sure character m_[theta,salt] match exactly c-- (upper/lower-case matters) in cost_gencost_customize - if (.not.( + IF (.NOT.( & (gencost_barfile(k)(1:15).EQ.'m_boxmean_theta').OR. & (gencost_barfile(k)(1:13).EQ.'m_boxmean_eta').OR. & (gencost_barfile(k)(1:14).EQ.'m_boxmean_salt').OR. & (gencost_barfile(k)(1:17).EQ.'m_boxmean_ptracer').OR. + & (gencost_barfile(k)(1:13).EQ.'m_boxmean_vol').OR. + & (gencost_barfile(k)(1:16).EQ.'m_boxmean_shifwf').OR. + & (gencost_barfile(k)(1:16).EQ.'m_boxmean_shihtf').OR. & (gencost_barfile(k)(1:13).EQ.'m_horflux_vol') - & )) then + & )) THEN using_gencost(k)=.FALSE. - il=ilnblnk(gencost_barfile(k)) + il=ILNBLNK(gencost_barfile(k)) WRITE(msgBuf,'(3A)') & '** WARNING ** S/R ECCO_CHECK: barfile ', & gencost_barfile(k)(1:il),': has no matched model var.' @@ -517,18 +511,19 @@ SUBROUTINE ECCO_CHECK( myThid ) WRITE(msgBuf,'(A)') 'Edit cost_gencost_customize to fix. ' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(2A)') gencost_name(k)(1:il),' is switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - endif !barfile + ENDIF !barfile c---------------- block -4 ---------------------------- c-- transs: require [mask,bar][W,S]file, can have datafile, but c-- not checked here. also not checked for variwei at the moment - elseif ( gencost_flag(k).eq. -4 ) then + ELSEIF ( (gencost_flag(k).EQ. -4) .OR. + & (gencost_flag(k).EQ. -5) ) THEN WRITE(msgBuf,'(A,i3,L5)') - & 'ecco_check for gencost transp; k,using_gencost(k): ,', + & 'ecco_check for gencost transp & moc; k,using_gencost(k): ,', & k,using_gencost(k) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , myThid) @@ -538,17 +533,18 @@ SUBROUTINE ECCO_CHECK( myThid ) C TBD: Write a more consistent transport objective function C --- - if (gencost_barfile(k)(1:7).eq.'m_trVol') then + IF ((gencost_barfile(k)(1:7).EQ.'m_trVol').AND. + & (gencost_flag(k).EQ.-4)) THEN WRITE(msgBuf,'(A)') - & '** WARNING ** ECCO_CHECK: cost_gencost_transp.F not tested.' + & '** WARNING ** ECCO_CHECK: cost_gencost_transp.F not tested' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') & ' See m_horflux_vol via cost_gencost_boxmean.F.' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - elseif( (gencost_barfile(k)(1:8).eq.'m_trHeat').or. - & (gencost_barfile(k)(1:8).eq.'m_trSalt') ) then + ELSEIF( (gencost_barfile(k)(1:8).EQ.'m_trHeat').OR. + & (gencost_barfile(k)(1:8).EQ.'m_trSalt') ) THEN WRITE(msgBuf,'(2A)') & '** WARNING ** ECCO_CHECK: m_tr[Heat,Salt] to be used with', & ' caution because:' @@ -566,22 +562,22 @@ SUBROUTINE ECCO_CHECK( myThid ) & ' (3) diffusion components not included' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - endif + ENDIF C --- C Note to user: use gencost_mask not errfile C --- - if(gencost_errfile(k) .ne. ' ') then - WRITE(msgBuf,'(3A)') 'S/R ECCO_CHECK: transp now ', - & ' uses gencost_mask instead of gencost_errfile --', + IF (gencost_errfile(k) .NE. ' ') THEN + WRITE(msgBuf,'(3A)') 'S/R ECCO_CHECK: transp & moc now ', + & ' use gencost_mask instead of gencost_errfile --', & ' please update data.ecco accordingly' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R ECCO_CHECK' - endif + ENDIF - if(gencost_mask(k) .eq. ' ') then + IF (gencost_mask(k) .EQ. ' ') THEN using_gencost(k)=.FALSE. - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(4A)') & '** WARNING ** ECCO_CHECK_FILES: gencost_mask is', & ' undefined so ',gencost_name(k)(1:il), @@ -589,58 +585,58 @@ SUBROUTINE ECCO_CHECK( myThid ) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - else + ELSE c-- West ---------------------- - il = ilnblnk(gencost_mask(k)) - write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'W' + il = ILNBLNK(gencost_mask(k)) + WRITE(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'W' inquire( file=tempfile(1:il+1), exist=exst ) - write(msgBuf,'(2A,L5)') 'ecco_check file, exst: ', + WRITE(msgBuf,'(2A,L5)') 'ecco_check file, exst: ', & tempfile(1:il+1),exst CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , myThid) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. WRITE(msgBuf,'(2A)') & '** WARNING ** ECCO_CHECK_FILES: missing mask file: ', & tempfile(1:il+1) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(3A)') & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif + ENDIF c-- South -------------------- - il = ilnblnk(gencost_mask(k)) - write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'S' + il = ILNBLNK(gencost_mask(k)) + WRITE(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'S' inquire( file=tempfile(1:il+1), exist=exst ) - write(msgBuf,'(2A,L5)') 'ecco_check file, exst: ', + WRITE(msgBuf,'(2A,L5)') 'ecco_check file, exst: ', & tempfile(1:il+1),exst CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , myThid) - if (.NOT.exst) then + IF (.NOT.exst) THEN using_gencost(k)=.FALSE. WRITE(msgBuf,'(2A)') & '** WARNING ** ECCO_CHECK_FILES: missing mask file: ', & tempfile(1:il+1) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(3A)') & ' so ',gencost_name(k)(1:il),' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) - endif - endif ! gencost_mask.eq.' ' + ENDIF + ENDIF ! gencost_mask.EQ.' ' c-- check barfile, make sure character m_tr[Vol,Heat,Salt] match exactly c-- (upper/lower-case matters) in cost_gencost_customize - if(.not.( (gencost_barfile(k)(1:7).EQ.'m_trVol') .OR. + IF(.NOT.( (gencost_barfile(k)(1:7).EQ.'m_trVol') .OR. & (gencost_barfile(k)(1:8).EQ.'m_trHeat').OR. - & (gencost_barfile(k)(1:8).EQ.'m_trSalt') )) then + & (gencost_barfile(k)(1:8).EQ.'m_trSalt') )) THEN using_gencost(k)=.FALSE. - il=ilnblnk(gencost_barfile(k)) + il=ILNBLNK(gencost_barfile(k)) WRITE(msgBuf,'(3A)') & '** WARNING ** S/R ECCO_CHECK: barfile ', & gencost_barfile(k)(1:il),': has no matched model var.' @@ -649,14 +645,15 @@ SUBROUTINE ECCO_CHECK( myThid ) WRITE(msgBuf,'(A)') 'Edit cost_gencost_customize to fix. ' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - il = ilnblnk(gencost_name(k)) + il = ILNBLNK(gencost_name(k)) WRITE(msgBuf,'(2A)') gencost_name(k)(1:il),' is switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - endif !barfile + ENDIF !barfile c-- set using_cost_transp - if(using_gencost(k)) icount_transp=icount_transp+1 - if(icount_transp.gt.0) using_cost_transp = .TRUE. + IF ((using_gencost(k)).AND.(gencost_flag(k).EQ.-4)) + & icount_transp=icount_transp+1 + IF (icount_transp.GT.0) using_cost_transp = .TRUE. c-- final report to make sure using_cost_transp is set correctly WRITE(msgBuf,'(2A,i3,L5)') & 'ecco_check: gencost transp; icount_transp,', @@ -664,38 +661,92 @@ SUBROUTINE ECCO_CHECK( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , myThid) - endif !gencost_flag + ENDIF !gencost_flag - endif !if ( gencost_datafile(k) .ne. ' ' ) then - enddo + ENDIF !if ( gencost_datafile(k) .NE. ' ' ) THEN + ENDDO -c check that one of the used gencost term defines etaday (needed in sshv4) +c check that one of the used gencost term defines etagcm (needed in sshv4) IF ( (using_tpj ).OR.(using_ers).OR.(using_gfo) & .OR.(using_mdt) ) using_cost_altim = .TRUE. - igen_etaday=0 - do k=1,NGENCOST - if ( (gencost_barfile(k)(1:5).EQ.'m_eta').AND. - & (using_gencost(k)) ) igen_etaday=k - enddo + igen_etagcm=0 + DO k=1,NGENCOST + IF ( (gencost_barfile(k)(1:5).EQ.'m_eta').AND. + & (using_gencost(k)) ) igen_etagcm=k + ENDDO - if ((igen_etaday.EQ.0).AND.(using_cost_altim)) then + IF ((igen_etagcm.EQ.0).AND.(using_cost_altim)) THEN c warn user as we override using_cost_altim using_cost_altim = .FALSE. WRITE(msgBuf,'(2A)') & '** WARNING ** S/R ECCO_CHECK: missing file: ', - & ' for altimeter data so cost gets switched off' + & 'for altimeter data so cost gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT, myThid ) - else + ELSE c print result to screen - write(msgbuf,'(a,i3)') - & 'etaday defined by gencost ',igen_etaday - call print_message( msgbuf, standardmessageunit, + WRITE(msgbuf,'(a,i3)') + & 'etagcm defined by gencost ',igen_etagcm + CALL print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , myThid) - endif + ENDIF +C If more than one within the data set [tp,ers,gfo] are present, they must have +C the same avgperiod, e.g., day or month. Here we check for inconsistency: + IF (using_cost_altim) THEN + use_mon_int = 0 + use_day_int = 0 + IF ( using_tpj ) THEN + IF (gencost_avgperiod(igen_tp) .EQ.'month' .OR. + & gencost_avgperiod(igen_tp) .EQ.'MONTH') THEN + use_mon_int = use_mon_int + 1 + ELSE + use_day_int = use_day_int + 1 + ENDIF + ENDIF + IF ( using_ers ) THEN + IF (gencost_avgperiod(igen_ers) .EQ.'month' .OR. + & gencost_avgperiod(igen_ers) .EQ.'MONTH') THEN + use_mon_int = use_mon_int + 1 + ELSE + use_day_int = use_day_int + 1 + ENDIF + ENDIF + IF ( using_gfo ) THEN + IF (gencost_avgperiod(igen_gfo).EQ.'month' .OR. + & gencost_avgperiod(igen_gfo).EQ.'MONTH' ) THEN + use_mon_int = use_mon_int + 1 + ELSE + use_day_int = use_day_int + 1 + ENDIF + ENDIF + IF ( use_mon_int .GT. 0 .AND. use_day_int .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') + & 'ECCO_CHECK: cost sshv4: data set TP/ERS/GFO must be all ', + & 'daily or monthly, but cannot be mixed.' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R ECCO_CHECK' + ENDIF + ENDIF + +#endif /* ALLOW_GENCOST_CONTRIBUTION */ + +C ============ other pkg/ecco related checks + _BEGIN_MASTER(myThid) + +#ifndef ALLOW_PSBAR_STERIC + IF (ecco_output_sterGloH) THEN + WRITE(msgBuf,'(3A)') 'ECCO_CHECK:', + & ' Cannot set ecco_output_sterGloH to TRUE', + & ' with #undef ALLOW_PSBAR_STERIC' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R ECCO_CHECK' + ENDIF #endif + _END_MASTER(myThid) RETURN END @@ -718,7 +769,8 @@ SUBROUTINE ECCO_CHECK_FILES( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "ecco.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" #ifdef ALLOW_CAL # include "cal.h" #endif @@ -727,21 +779,20 @@ SUBROUTINE ECCO_CHECK_FILES( C myThid - Number of this instances INTEGER myThid LOGICAL using_cost_local - character*(*) localname - character*(MAX_LEN_FNAM) localobsfile - integer localstartdate1 + CHARACTER*(*) localname + CHARACTER*(MAX_LEN_FNAM) localobsfile + INTEGER localstartdate1 + +c == external functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK C === Local variables === C msgBuf - Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER irec, mody, modm, yday, locy, il LOGICAL exst, singleFileTest, yearlyFileTest - character*(128) fname - -c == external functions == - - integer ilnblnk - external ilnblnk + CHARACTER*(128) fname c == end of interface == @@ -778,14 +829,14 @@ SUBROUTINE ECCO_CHECK_FILES( locy = localstartdate1/10000 il=ilnblnk(localobsfile) - write(fname(1:128),'(2a,i4)') + WRITE(fname(1:128),'(2a,i4)') & localobsfile(1:il), '_', yday inquire( file=fname, exist=exst ) IF ( (.NOT.exst).AND.(yday.GE.locy) ) THEN c warn user as we override using_cost_local WRITE(msgBuf,'(5A)') - & '** WARNING ** ECCO_CHECK_FILES: missing',fname, + & '** WARNING ** ECCO_CHECK_FILES: missing ',fname, & ' so ',localname,' gets switched off' CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, & SQUEEZE_RIGHT , myThid) diff --git a/pkg/ecco/ecco_cost.h b/pkg/ecco/ecco_cost.h index 4dbed6fe39..b8d907ba9f 100644 --- a/pkg/ecco/ecco_cost.h +++ b/pkg/ecco/ecco_cost.h @@ -11,1466 +11,9 @@ c ================================================================== c HEADER AVERAGES c ================================================================== -#include "ecco.h" - -#ifdef ECCO_CTRL_DEPRECATED - -c Number of days: (hard-coded to set up some vector dimensions -c ============================= -c 22 years: 8050 - INTEGER maxNumDays - PARAMETER ( maxNumDays = 8050 ) - -c Number of levels -c ================ - common /ecco_cost_i/ - & nnztbar, - & nnzsbar -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & ,nnzsigmaRbar -#endif - integer nnztbar - integer nnzsbar -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - integer nnzsigmaRbar -#endif - -c Number of sshv4cost Cost terms: -c ============================= - INTEGER NSSHV4COST - PARAMETER ( NSSHV4COST=5 ) - -c Averaged Fields: -c ================ -c -c tbar - contains the averaged temperature field after the call -c to subroutine POST_MONTHLY. Before, it accumulates the -c intantaneous temperatures. -c sbar - contains the averaged salinity field after the call -c to subroutine POST_MONTHLY. Before, it accumulates the -c intantaneous salinities. -c sigmaRbar - contains the averaged sigmaR field after the call -c to subroutine POST_MONTHLY. Before, it accumulates the -c intantaneous sigmaR. -c psbar - contains the averaged surface pressure field after the call -c to subroutine POST_DAILY. Before, it accumulates the -c intantaneous surface pressure field. -c ubar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. -c vbar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. -c tauxbar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. -c tauybar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. -c hfluxmeanbar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. -c sfluxmeanbar - contains the averaged zonal velocity component for the -c whole integration period. Before, it accumulates the -c intantaneous field. - - common /averages_r/ - & tbar, - & sbar, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRbar, -#endif - & sstbar, - & psbar, - & bpbar, - & iestaubar, - & ubar, - & vbar, - & wbar, - & tauxbar, - & tauybar, - & hfluxmeanbar, - & sfluxmeanbar, - & Slmean, - & Tlmean, - & wlmean, - & Sfmean, - & Tfmean, - & sbar_gen, - & tbar_gen, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRbar_gen, -#endif - & wfmean - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL sigmaRbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL sigmaRbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif -#if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDT_COST_CONTRIBUTION) || \ - defined (ALLOW_XBT_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_COST_TRANSPORT) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) - _RL tbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else -#ifdef ALLOW_SST_COST_CONTRIBUTION - _RL tbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL tbar -#endif -#endif -#ifdef GENERIC_BAR_MONTH - _RL tbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL sbar_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else - _RL tbar_gen - _RL sbar_gen -#endif - -#ifdef ALLOW_DAILYSST_COST_CONTRIBUTION -cph#ifdef ALLOW_SEAICE_COST_AREASST - _RL sstbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL sstbar -#endif - -#if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDS_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_COST_TRANSPORT) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) - _RL sbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else -#ifdef ALLOW_SSS_COST_CONTRIBUTION - _RL sbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL sbar -#endif -#endif - -#ifdef ALLOW_SSH_COST_CONTRIBUTION - _RL psbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL psbar -#endif - -#ifdef ALLOW_BP_COST_CONTRIBUTION - _RL bpbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL bpbar -#endif - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION - _RL iestaubar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL iestaubar -#endif - -#if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \ - defined (ALLOW_COST_TRANSPORT) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) - _RL ubar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL vbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else - _RL ubar - _RL vbar -#endif - -#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION - _RL wbar (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else - _RL wbar -#endif - -#ifdef ALLOW_DRIFT_COST_CONTRIBUTION - _RL Tlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL Slmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL Tfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL Sfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else - _RL Tlmean - _RL Slmean - _RL Tfmean - _RL Sfmean -#endif - -#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION - _RL wlmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wfmean(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#else - _RL wlmean - _RL wfmean -#endif - -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) - _RL tauxbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tauybar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL tauxbar - _RL tauybar -#endif - -#ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION - _RL hfluxmeanbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL hfluxmeanbar -#endif - -#ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION - _RL sfluxmeanbar (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) -#else - _RL sfluxmeanbar -#endif - - - common /averages_c/ - & tbarfile, - & sbarfile, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRbarfile, -#endif - & sstbarfile, - & psbarfile, - & bpbarfile, - & iestaubarfile, - & ubarfile, - & vbarfile, - & wbarfile, - & tauxbarfile, - & tauybarfile, - & hfluxmeanbarfile, - & sfluxmeanbarfile, - & costTranspDataFile - character*(MAX_LEN_FNAM) tbarfile - character*(MAX_LEN_FNAM) sbarfile -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRbarfile -#endif - character*(MAX_LEN_FNAM) sstbarfile - character*(MAX_LEN_FNAM) psbarfile - character*(MAX_LEN_FNAM) bpbarfile - character*(MAX_LEN_FNAM) iestaubarfile - character*(MAX_LEN_FNAM) ubarfile - character*(MAX_LEN_FNAM) vbarfile - character*(MAX_LEN_FNAM) wbarfile - character*(MAX_LEN_FNAM) tauxbarfile - character*(MAX_LEN_FNAM) tauybarfile - character*(MAX_LEN_FNAM) hfluxmeanbarfile - character*(MAX_LEN_FNAM) sfluxmeanbarfile - character*(MAX_LEN_FNAM) costTranspDataFile - -#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION - common /averages_transp_r/ - & transpbar - & , transpobs - & , wtransp - _RL transpbar(maxNumDays,nsx,nsy) - _RL transpobs(maxNumDays) - _RL wtransp(maxNumDays) -#endif - -c ================================================================== -c END OF HEADER AVERAGES -c ================================================================== - - - -c ================================================================== -c HEADER COST -c ================================================================== -c -c o Header for model-data comparison. -c -c The individual cost function contributions are multiplied by -c factors mult_"var" which allow to switch off these contributions -c without removing them in the adjoint code. This is useful for -c doing tests with the adjoint and perhaps useful in assimilation -c experiments where individual contributions are successively -c switched on. For future applications it would be better to place -c the initialisation of the multipliers somewhere else, for example -c in a namelist, which is read in at the start of the model. -c -c started: Christian Eckert eckert@mit.edu 24-Feb-1999 -c -c changed: Christian Eckert eckert@mit.edu -c -c -c ================================================================== -c HEADER COST -c ================================================================== - - -c The cost function, its contributions, and multipliers: -c ====================================================== -c -c fc - Final cost function. -c objf_hflux - Heat flux contribution. -c objf_sflux - Salt flux contribution. -c objf_tauu - Zonal wind stress contribution. -c objf_tauv - Meridional wind stress contribution. -c objf_hfluxm - time-mean Heat flux contribution. -c objf_sfluxm - time-mean Salt flux contribution. -c objf_tauum - time-mean Zonal wind stress contribution. -c objf_tauvm - time-mean Meridional wind stress contribution. -c objf_hfluxmm - Global time-mean Heat flux contribution. -c objf_sfluxmm - Global time-mean Salt flux contribution. -c objf_hmean - Mean sea surface height contribution. -c objf_h - Residual sea surface height contribution. -c objf_tp - Residual sea surface height contribution from T/P -c objf_ers - Residual sea surface height contribution from T/P -c objf_gfo - Residual sea surface height contribution from T/P -c objf_temp - Temperature contribution. -c objf_salt - Salinity contribution. -c objf_sigmaR - sigmaR contribution. -c objf_temp0 - Initial conditions Temperature contribution. -c objf_salt0 - Initial conditions Salinity contribution. -c objf_sst - Sea surface temperature contribution. -c objf_tmi - Sea surface temperature contribution. -c objf_sss - Sea surface salinity contribution. -c objf_ctdt - Temperature measurements from Woce CTD -c objf_ctds - Salinity measurements from Woce CTD -c objf_ctdtclim - Temperature measurements from Woce CTD without timetag -c objf_ctdsclim - Salinity measurements from Woce CTD without timetag -c objf_xbt - XBT temperature data -c objf_argot - ARGO temperature profiles -c objf_argos - ARGO salt profiles -c objf_usercost - user defined cost contribution -c objf_scatxm - time-mean zonal SCAT contribution -c objf_scatym - time-mean meridional SCAT contribution -c objf_scatx - zonal SCAT contribution -c objf_scaty - meridional SCAT contribution -c objf_kapgm - kappa GM contribution -c objf_kapredi - kappa REDI contribution -c objf_diffkr - diffusion contribution -c objf_theta_ini_fin - final vs. initial theta misfit -c objf_salt_ini_fin - final vs. initial salt misfit -c objf_eddytau - eddy streamfunction contribution -c objf_bottomdrag - bottom drag contribution -c -c mult_"var" - multipliers for the individual cost -c function contributions. - - common /ecco_cost_objf/ - & objf_hflux, objf_hfluxm, objf_hfluxmm, objf_hfluxsmoo, - & objf_sflux, objf_sfluxm, objf_sfluxmm, objf_sfluxsmoo, - & objf_tauu, objf_tauum, objf_tauusmoo, - & objf_tauv, objf_tauvm, objf_tauvsmoo, - & objf_hmean, - & objf_h, objf_tp, objf_ers, objf_gfo, - & objf_sshv4cost, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & objf_sigmaR, -#endif - & objf_temp, objf_salt, - & objf_temp0, objf_salt0, - & objf_temp0smoo, objf_salt0smoo, - & objf_etan0, objf_uvel0, objf_vvel0, - & objf_sst, objf_tmi, objf_sss, - & objf_bp, objf_ies, - & objf_usercost, - & objf_ctdt, objf_ctds, - & objf_ctdtclim, objf_ctdsclim, - & objf_xbt, objf_argot, objf_argos, - & objf_drift, objf_tdrift, objf_sdrift, objf_wdrift, - & objf_scatx, objf_scaty, objf_scatxm, objf_scatym, - & objf_atemp, objf_atempm, objf_atempsmoo, - & objf_aqh, objf_aqhm, objf_aqhsmoo, - & objf_precip, objf_precipm, objf_precipsmoo, - & objf_swflux, objf_swfluxm, objf_swfluxsmoo, - & objf_swdown, objf_swdownm, objf_swdownsmoo, - & objf_snowprecip, objf_snowprecipm, objf_snowprecipsmoo, - & objf_lwflux, objf_lwfluxm, objf_lwfluxsmoo, - & objf_lwdown, objf_lwdownm, objf_lwdownsmoo, - & objf_evap, objf_evapm, objf_evapsmoo, - & objf_apressure, objf_apressurem, objf_apressuresmoo, - & objf_runoff, objf_runoffm, objf_runoffsmoo, - & objf_uwind, objf_uwindm, objf_uwindsmoo, - & objf_vwind, objf_vwindm, objf_vwindsmoo, - & objf_curmtr, - & objf_kapgm, - & objf_kapredi, - & objf_diffkr, - & objf_theta_ini_fin, objf_salt_ini_fin, - & objf_eddytau, - & objf_bottomdrag, - & objf_transp - - _RL objf_hflux (nsx,nsy) - _RL objf_hfluxm (nsx,nsy) - _RL objf_hfluxmm - _RL objf_hfluxsmoo (nsx,nsy) - _RL objf_sflux (nsx,nsy) - _RL objf_sfluxm (nsx,nsy) - _RL objf_sfluxmm - _RL objf_sfluxsmoo (nsx,nsy) - _RL objf_tauu (nsx,nsy) - _RL objf_tauum (nsx,nsy) - _RL objf_tauusmoo (nsx,nsy) - _RL objf_tauv (nsx,nsy) - _RL objf_tauvm (nsx,nsy) - _RL objf_tauvsmoo (nsx,nsy) - _RL objf_hmean - _RL objf_h (nsx,nsy) - _RL objf_tp (nsx,nsy) - _RL objf_ers (nsx,nsy) - _RL objf_gfo (nsx,nsy) - _RL objf_sshv4cost(NSSHV4COST,nsx,nsy) -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL objf_sigmaR(nsx,nsy) -#endif - _RL objf_temp (nsx,nsy) - _RL objf_salt (nsx,nsy) - _RL objf_temp0(nsx,nsy) - _RL objf_salt0(nsx,nsy) - _RL objf_temp0smoo(nsx,nsy) - _RL objf_salt0smoo(nsx,nsy) - _RL objf_etan0(nsx,nsy) - _RL objf_uvel0(nsx,nsy) - _RL objf_vvel0(nsx,nsy) - _RL objf_sst (nsx,nsy) - _RL objf_tmi (nsx,nsy) - _RL objf_sss (nsx,nsy) - _RL objf_bp (nsx,nsy) - _RL objf_ies (nsx,nsy) - _RL objf_ctdt (nsx,nsy) - _RL objf_ctds (nsx,nsy) - _RL objf_ctdtclim (nsx,nsy) - _RL objf_ctdsclim (nsx,nsy) - _RL objf_xbt (nsx,nsy) - _RL objf_argot(nsx,nsy) - _RL objf_usercost(NUSERCOST,nsx,nsy) - _RL objf_argos(nsx,nsy) - _RL objf_drift(nsx,nsy) - _RL objf_tdrift(nsx,nsy) - _RL objf_sdrift(nsx,nsy) - _RL objf_wdrift(nsx,nsy) - _RL objf_scatx(nsx,nsy) - _RL objf_scaty(nsx,nsy) - _RL objf_scatxm(nsx,nsy) - _RL objf_scatym(nsx,nsy) - _RL objf_atemp(nsx,nsy) - _RL objf_aqh (nsx,nsy) - _RL objf_precip(nsx,nsy) - _RL objf_swflux(nsx,nsy) - _RL objf_swdown(nsx,nsy) - _RL objf_snowprecip(nsx,nsy) - _RL objf_lwflux(nsx,nsy) - _RL objf_lwdown(nsx,nsy) - _RL objf_evap(nsx,nsy) - _RL objf_apressure(nsx,nsy) - _RL objf_runoff(nsx,nsy) - _RL objf_uwind(nsx,nsy) - _RL objf_vwind(nsx,nsy) - _RL objf_atempm(nsx,nsy) - _RL objf_aqhm (nsx,nsy) - _RL objf_precipm(nsx,nsy) - _RL objf_swfluxm(nsx,nsy) - _RL objf_swdownm(nsx,nsy) - _RL objf_snowprecipm(nsx,nsy) - _RL objf_lwfluxm(nsx,nsy) - _RL objf_lwdownm(nsx,nsy) - _RL objf_evapm(nsx,nsy) - _RL objf_apressurem(nsx,nsy) - _RL objf_runoffm(nsx,nsy) - _RL objf_uwindm(nsx,nsy) - _RL objf_vwindm(nsx,nsy) - _RL objf_atempsmoo(nsx,nsy) - _RL objf_aqhsmoo (nsx,nsy) - _RL objf_precipsmoo(nsx,nsy) - _RL objf_swfluxsmoo(nsx,nsy) - _RL objf_swdownsmoo(nsx,nsy) - _RL objf_snowprecipsmoo(nsx,nsy) - _RL objf_lwfluxsmoo(nsx,nsy) - _RL objf_lwdownsmoo(nsx,nsy) - _RL objf_evapsmoo(nsx,nsy) - _RL objf_apressuresmoo(nsx,nsy) - _RL objf_runoffsmoo(nsx,nsy) - _RL objf_uwindsmoo(nsx,nsy) - _RL objf_vwindsmoo(nsx,nsy) - _RL objf_curmtr(nsx,nsy) - _RL objf_kapgm(nsx,nsy) - _RL objf_kapredi(nsx,nsy) - _RL objf_diffkr(nsx,nsy) - _RL objf_theta_ini_fin(nsx,nsy) - _RL objf_salt_ini_fin(nsx,nsy) - _RL objf_eddytau(nsx,nsy) - _RL objf_bottomdrag(nsx,nsy) - _RL objf_transp - - common /ecco_cost_num/ - & num_hflux, - & num_hfluxm, - & num_hfluxmm, - & num_sflux, - & num_sfluxm, - & num_sfluxmm, - & num_tauu, - & num_tauum, - & num_tauv, - & num_tauvm, - & num_hmean, - & num_h, - & num_tp, - & num_ers, - & num_gfo, - & num_sshv4cost, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & num_sigmaR, -#endif - & num_temp, - & num_salt, - & num_temp0, - & num_salt0, - & num_etan0, - & num_uvel0, - & num_vvel0, - & num_sst, - & num_tmi, - & num_sss, - & num_bp, - & num_ies, - & num_ctdt, - & num_ctds, - & num_ctdtclim, - & num_ctdsclim, - & num_xbt, - & num_argot, - & num_argos, - & num_usercost, - & num_drift, - & num_tdrift, - & num_sdrift, - & num_wdrift, - & num_scatx, - & num_scaty, - & num_scatxm, - & num_scatym, - & num_atemp, - & num_aqh, - & num_precip, - & num_swflux, - & num_swdown, - & num_snowprecip, - & num_lwflux, - & num_lwdown, - & num_evap, - & num_apressure, - & num_runoff, - & num_uwind, - & num_vwind, - & num_atempm, - & num_aqhm, - & num_precipm, - & num_swfluxm, - & num_swdownm, - & num_snowprecipm, - & num_lwfluxm, - & num_lwdownm, - & num_evapm, - & num_apressurem, - & num_runoffm, - & num_uwindm, - & num_vwindm, - & num_curmtr, - & num_kapgm, - & num_kapredi, - & num_diffkr, - & num_theta_ini_fin, - & num_salt_ini_fin, - & num_eddytau, - & num_bottomdrag, - & num_transp - - _RL num_hflux (nsx,nsy) - _RL num_hfluxm (nsx,nsy) - _RL num_hfluxmm(nsx,nsy) - _RL num_sflux (nsx,nsy) - _RL num_sfluxm (nsx,nsy) - _RL num_sfluxmm(nsx,nsy) - _RL num_tauu (nsx,nsy) - _RL num_tauum (nsx,nsy) - _RL num_tauv (nsx,nsy) - _RL num_tauvm (nsx,nsy) - _RL num_hmean - _RL num_h (nsx,nsy) - _RL num_tp (nsx,nsy) - _RL num_ers (nsx,nsy) - _RL num_gfo (nsx,nsy) - _RL num_sshv4cost(NSSHV4COST,nsx,nsy) -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL num_sigmaR (nsx,nsy) -#endif - _RL num_temp (nsx,nsy) - _RL num_salt (nsx,nsy) - _RL num_temp0(nsx,nsy) - _RL num_salt0(nsx,nsy) - _RL num_etan0(nsx,nsy) - _RL num_uvel0(nsx,nsy) - _RL num_vvel0(nsx,nsy) - _RL num_sst (nsx,nsy) - _RL num_tmi (nsx,nsy) - _RL num_sss (nsx,nsy) - _RL num_bp (nsx,nsy) - _RL num_ies (nsx,nsy) - _RL num_ctdt (nsx,nsy) - _RL num_ctds (nsx,nsy) - _RL num_ctdtclim (nsx,nsy) - _RL num_ctdsclim (nsx,nsy) - _RL num_xbt (nsx,nsy) - _RL num_argot(nsx,nsy) - _RL num_argos(nsx,nsy) - _RL num_usercost(NUSERCOST,nsx,nsy) - _RL num_drift(nsx,nsy) - _RL num_tdrift(nsx,nsy) - _RL num_sdrift(nsx,nsy) - _RL num_wdrift(nsx,nsy) - _RL num_scatx(nsx,nsy) - _RL num_scaty(nsx,nsy) - _RL num_scatxm(nsx,nsy) - _RL num_scatym(nsx,nsy) - _RL num_atemp(nsx,nsy) - _RL num_aqh (nsx,nsy) - _RL num_precip(nsx,nsy) - _RL num_swflux(nsx,nsy) - _RL num_swdown(nsx,nsy) - _RL num_snowprecip(nsx,nsy) - _RL num_lwflux(nsx,nsy) - _RL num_lwdown(nsx,nsy) - _RL num_evap(nsx,nsy) - _RL num_apressure(nsx,nsy) - _RL num_runoff(nsx,nsy) - _RL num_uwind(nsx,nsy) - _RL num_vwind(nsx,nsy) - _RL num_atempm(nsx,nsy) - _RL num_aqhm (nsx,nsy) - _RL num_precipm(nsx,nsy) - _RL num_swfluxm(nsx,nsy) - _RL num_swdownm(nsx,nsy) - _RL num_snowprecipm(nsx,nsy) - _RL num_lwfluxm(nsx,nsy) - _RL num_lwdownm(nsx,nsy) - _RL num_evapm(nsx,nsy) - _RL num_apressurem(nsx,nsy) - _RL num_runoffm(nsx,nsy) - _RL num_uwindm(nsx,nsy) - _RL num_vwindm(nsx,nsy) - _RL num_curmtr(nsx,nsy) - _RL num_kapgm(nsx,nsy) - _RL num_kapredi(nsx,nsy) - _RL num_diffkr(nsx,nsy) - _RL num_theta_ini_fin(nsx,nsy) - _RL num_salt_ini_fin(nsx,nsy) - _RL num_eddytau(nsx,nsy) - _RL num_bottomdrag(nsx,nsy) - _RL num_transp - - common /ecco_cost_aux_r/ - & mult_hflux, - & mult_sflux, - & mult_hfluxmm, - & mult_sfluxmm, - & mult_tauu, - & mult_tauv, - & mult_hmean, - & mult_h, - & mult_tp, - & mult_ers, - & mult_gfo, - & mult_sshv4cost, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & mult_sigmaR, -#endif - & mult_temp, - & mult_salt, - & mult_temp0, - & mult_salt0, - & mult_etan0, - & mult_uvel0, - & mult_vvel0, - & mult_sst, - & mult_tmi, - & mult_sss, - & mult_bp, - & mult_ies, - & mult_ctdt, - & mult_ctds, - & mult_ctdtclim, - & mult_ctdsclim, - & mult_xbt, - & mult_argot, - & mult_argos, - & mult_usercost, - & mult_drift, - & mult_tdrift, - & mult_sdrift, - & mult_wdrift, - & mult_scatx, - & mult_scaty, - & mult_atemp, - & mult_aqh, - & mult_precip, - & mult_swflux, - & mult_swdown, - & mult_snowprecip, - & mult_lwflux, - & mult_lwdown, - & mult_evap, - & mult_apressure, - & mult_runoff, - & mult_uwind, - & mult_vwind, - & mult_curmtr, - & mult_kapgm, - & mult_kapredi, - & mult_diffkr, - & mult_ini_fin, - & mult_edtau, - & mult_bottomdrag, - & mult_smooth_ic, - & mult_smooth_bc, - & mult_transp - _RL mult_hflux - _RL mult_sflux - _RL mult_hfluxmm - _RL mult_sfluxmm - _RL mult_tauu - _RL mult_tauv - _RL mult_hmean - _RL mult_h - _RL mult_tp - _RL mult_ers - _RL mult_gfo - _RL mult_sshv4cost(NSSHV4COST) -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL mult_sigmaR -#endif - _RL mult_temp - _RL mult_salt - _RL mult_temp0 - _RL mult_salt0 - _RL mult_etan0 - _RL mult_uvel0 - _RL mult_vvel0 - _RL mult_sst - _RL mult_tmi - _RL mult_sss - _RL mult_bp - _RL mult_ies - _RL mult_ctdt - _RL mult_ctds - _RL mult_ctdtclim - _RL mult_ctdsclim - _RL mult_xbt - _RL mult_argot - _RL mult_argos - _RL mult_usercost(NUSERCOST) - _RL mult_drift - _RL mult_tdrift - _RL mult_sdrift - _RL mult_wdrift - _RL mult_scatx - _RL mult_scaty - _RL mult_atemp - _RL mult_aqh - _RL mult_precip - _RL mult_swflux - _RL mult_swdown - _RL mult_snowprecip - _RL mult_lwflux - _RL mult_lwdown - _RL mult_evap - _RL mult_apressure - _RL mult_runoff - _RL mult_uwind - _RL mult_vwind - _RL mult_curmtr - _RL mult_kapgm - _RL mult_kapredi - _RL mult_diffkr - _RL mult_ini_fin - _RL mult_edtau - _RL mult_bottomdrag - _RL mult_smooth_ic - _RL mult_smooth_bc - _RL mult_transp - -c Data files for the weights used in the cost function: -c ===================================================== -c -c hflux_errfile - heat flux error. -c sflux_errfile - salt flux error. -c tauu_errfile - zonal wind stress error. -c tauum_errfile - zonal wind stress error. -c tauv_errfile - meridional wind stress error. -c tauvm_errfile - meridional wind stress error. -c tscatx_errfile - zonal wind stress error. -c tscaty_errfile - meridional wind stress error. -c data_errfile - weights for theta, salt, and SST -c geoid_errfile - geoid error. -c geoid_covariancefile - geoid error covariance. -c ssh_errfile - sea surface height error. -c ctdt_errfile - CTD temperature error. -c ctds_errfile - CTD salinity error. -c drift_errfile - drifter error. -c salterrfile - representation error due unresolved eddies -c temperrfile - representation error due unresolved eddies -c sigmaRerrfile - representation error due unresolved eddies -c velerrfile - representation error - - common /ecco_cost_c/ - & hflux_errfile, - & hfluxm_errfile, - & sflux_errfile, - & sfluxm_errfile, - & tauu_errfile, - & tauum_errfile, - & tauv_errfile, - & tauvm_errfile, - & scatx_errfile, - & scaty_errfile, - & data_errfile, - & geoid_errfile, - & geoid_covariancefile, - & ssh_errfile, - & tp_errfile, - & ers_errfile, - & gfo_errfile, - & sshv4cost_scalefile, - & sshv4cost_errfile, - & ctdt_errfile, - & ctds_errfile, - & drift_errfile, - & udrifterrfile, - & vdrifterrfile, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRerrfile, -#endif - & salterrfile, - & temperrfile, - & velerrfile, - & salt0errfile, - & temp0errfile, - & etan0errfile, - & uvel0errfile, - & vvel0errfile, - & vel0errfile, - & ssterrfile, - & ssserrfile, - & bperrfile, - & ieserrfile, - & atemp_errfile, - & aqh_errfile, - & precip_errfile, - & swflux_errfile, - & swdown_errfile, - & snowprecip_errfile, - & lwflux_errfile, - & lwdown_errfile, - & evap_errfile, - & apressure_errfile, - & runoff_errfile, - & edtau_errfile, - & kapgm_errfile, - & kapredi_errfile, - & diffkr_errfile, - & bottomdrag_errfile, - & usercost_errfile, - & uwind_errfile, - & vwind_errfile - character*(MAX_LEN_FNAM) hflux_errfile - character*(MAX_LEN_FNAM) sflux_errfile - character*(MAX_LEN_FNAM) tauu_errfile - character*(MAX_LEN_FNAM) tauv_errfile - character*(MAX_LEN_FNAM) hfluxm_errfile - character*(MAX_LEN_FNAM) sfluxm_errfile - character*(MAX_LEN_FNAM) tauum_errfile - character*(MAX_LEN_FNAM) tauvm_errfile - character*(MAX_LEN_FNAM) scatx_errfile - character*(MAX_LEN_FNAM) scaty_errfile - character*(MAX_LEN_FNAM) data_errfile - character*(MAX_LEN_FNAM) geoid_errfile - character*(MAX_LEN_FNAM) geoid_covariancefile - character*(MAX_LEN_FNAM) ssh_errfile - character*(MAX_LEN_FNAM) tp_errfile - character*(MAX_LEN_FNAM) ers_errfile - character*(MAX_LEN_FNAM) gfo_errfile - character*(MAX_LEN_FNAM) sshv4cost_scalefile(NSSHV4COST) - character*(MAX_LEN_FNAM) sshv4cost_errfile(NSSHV4COST) - character*(MAX_LEN_FNAM) ctdt_errfile - character*(MAX_LEN_FNAM) ctds_errfile - character*(MAX_LEN_FNAM) drift_errfile - character*(MAX_LEN_FNAM) udrifterrfile - character*(MAX_LEN_FNAM) vdrifterrfile -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRerrfile -#endif - character*(MAX_LEN_FNAM) salterrfile - character*(MAX_LEN_FNAM) temperrfile - character*(MAX_LEN_FNAM) velerrfile - character*(MAX_LEN_FNAM) salt0errfile - character*(MAX_LEN_FNAM) temp0errfile - character*(MAX_LEN_FNAM) etan0errfile - character*(MAX_LEN_FNAM) uvel0errfile - character*(MAX_LEN_FNAM) vvel0errfile - character*(MAX_LEN_FNAM) vel0errfile - character*(MAX_LEN_FNAM) ssterrfile - character*(MAX_LEN_FNAM) ssserrfile - character*(MAX_LEN_FNAM) bperrfile - character*(MAX_LEN_FNAM) ieserrfile - character*(MAX_LEN_FNAM) atemp_errfile - character*(MAX_LEN_FNAM) aqh_errfile - character*(MAX_LEN_FNAM) precip_errfile - character*(MAX_LEN_FNAM) swflux_errfile - character*(MAX_LEN_FNAM) swdown_errfile - character*(MAX_LEN_FNAM) snowprecip_errfile - character*(MAX_LEN_FNAM) lwflux_errfile - character*(MAX_LEN_FNAM) lwdown_errfile - character*(MAX_LEN_FNAM) evap_errfile - character*(MAX_LEN_FNAM) apressure_errfile - character*(MAX_LEN_FNAM) runoff_errfile - character*(MAX_LEN_FNAM) edtau_errfile - character*(MAX_LEN_FNAM) kapgm_errfile - character*(MAX_LEN_FNAM) kapredi_errfile - character*(MAX_LEN_FNAM) diffkr_errfile - character*(MAX_LEN_FNAM) bottomdrag_errfile - character*(MAX_LEN_FNAM) usercost_errfile(NUSERCOST) - character*(MAX_LEN_FNAM) uwind_errfile - character*(MAX_LEN_FNAM) vwind_errfile - - -c Arrays where the weights are stored: -c ==================================== -c -c cosphi - cosine of latitude. -c whflux - weight for heat flux. -c wsflux - weight for salt flux. -c wtauu - weight for zonal wind stress. -c wtauu - weight for meridional wind stress. -c wscatx - weight for zonal scat stress. -c wscaty - weight for meridional scat stress. -c wtheta - weight for temperature. -c wtheta2 - representation error due to unresolved eddies -c wsst - weight for sea surface temperature. -c wsss - weight for sea surface salinity. -c wsalt - weight for salinity. -c wsalt2 - representation error due to unresolved eddies -c wsigmaR - weight for sigmaR -c wsigmaR2 - representation error due to unresolved eddies -c wtp - weight for TOPEX/POSEIDON data. -c wers - weight for ERS data. -c wp - weight for geoid. -c wctdt - weight for CTD temperature. -c wctds - weight for CTD salinity. -c wudrift - weight for mean zonal velocity from drifters. -c wvdrift - weight for mean meridional velocity from drifters. -c wetan - weight for etan0 - - common /ecco_cost_weights_r/ - & whflux,wsflux,wtauu,wtauv, - & watemp,waqh,wprecip,wsnowprecip, - & wswflux,wswdown,wlwflux,wlwdown, - & wevap,wapressure,wrunoff, - & wbottomdrag, - & wuwind,wvwind, - & wscatx,wscaty, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & wsigmaR,wsigmaR2,wsigmaRLev, -#endif - & wtheta,wtheta2,wthetaLev, - & wsalt,wsalt2,wsaltLev, - & wdiffkr,wdiffkr2,wdiffkrFld, - & wkapgm,wkapgm2,wkapgmFld, - & wkapredi,wkapredi2,wkaprediFld, - & wedtaux,wedtaux2,wedtauxFld, - & wedtauy,wedtauy2,wedtauyFld, - & wsst,wsss,wbp, wies, - & wtp,wers,wgfo, - & wp,wsshv4, - & wctdt,wctds, - & wudrift,wvdrift, - & whfluxmm,wsfluxmm, - & wcurrent,wcurrent2, - & wcurrentLev,wbaro,wetan, - & wuvel,wvvel - - _RL whflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL whfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL whfluxmm(1-olx:snx+olx,1-oly:sny+oly) - _RL wsflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsfluxm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsfluxmm(1-olx:snx+olx,1-oly:sny+oly) - _RL wtauu (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtauv (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtauum (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtauvm (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wscatx (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wscaty (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL watemp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL waqh (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wprecip (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wswflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wswdown (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsnowprecip (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wlwflux (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wlwdown (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wevap (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wapressure(1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wrunoff (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wbottomdrag (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wuwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wvwind (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtheta ( nr,nsx,nsy) - _RL wsalt ( nr,nsx,nsy) - _RL wtheta2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wsalt2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wthetaLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wsaltLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL wsigmaR ( nr,nsx,nsy) - _RL wsigmaR2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wsigmaRLev(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - _RL wuvel ( nr,nsx,nsy) - _RL wvvel ( nr,nsx,nsy) - _RL wsst (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsss (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wbp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wies (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsshv4 (1-olx:snx+olx,1-oly:sny+oly,NSSHV4COST,nsx,nsy) - _RL wers (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wgfo (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wp (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wctdt ( nr,nsx,nsy) - _RL wctds ( nr,nsx,nsy) - _RL wudrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wvdrift (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wcurrent( nr,nsx,nsy) - _RL wcurrent2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wcurrentLev (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wbaro - _RL wdiffkr ( nr,nsx,nsy) - _RL wdiffkr2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wdiffkrFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wkapgm ( nr,nsx,nsy) - _RL wkapgm2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wkapgmFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wkapredi ( nr,nsx,nsy) - _RL wkapredi2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wkaprediFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wedtaux ( nr,nsx,nsy) - _RL wedtaux2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wedtauxFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wedtauy ( nr,nsx,nsy) - _RL wedtauy2 (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wedtauyFld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wetan (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - -#if (defined (ALLOW_UVEL0_COST_CONTRIBUTION) || defined (ALLOW_UVEL0_CONTROL)) -#if (defined (ALLOW_VVEL0_COST_CONTRIBUTION) || defined (ALLOW_VVEL0_CONTROL)) -c wuvel3d - weight for uvel0 -c wvvel3d - weight for vvel0 -c - common /ecco_cost_weights_vel_r/ - & wuvel3d, wvvel3d -c - _RL wuvel3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL wvvel3d(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif -#endif - - common /ecco_cost_weights_0_r/ - & whflux0, wsflux0, wtau0, - & watemp0, waqh0, wprecip0, wsnowprecip0, wwind0, - & wswflux0, wswdown0, wlwflux0, wlwdown0, - & wevap0, wapressure0, wrunoff0, wkapredi0, - & wbottomdrag0,wdiffkr0, wkapgm0, wedtau0 - _RL whflux0 - _RL wsflux0 - _RL wtau0 - _RL watemp0 - _RL waqh0 - _RL wprecip0 - _RL wswflux0 - _RL wswdown0 - _RL wsnowprecip0 - _RL wlwflux0 - _RL wlwdown0 - _RL wevap0 - _RL wapressure0 - _RL wrunoff0 - _RL wbottomdrag0 - _RL wwind0 - _RL wdiffkr0 - _RL wkapgm0 - _RL wkapredi0 - _RL wedtau0 - - common /ecco_cost_weights_mean_r/ - & wmean_hflux, wmean_sflux, wmean_tau, - & wmean_atemp, wmean_aqh, - & wmean_precip, wmean_snowprecip, wmean_wind, - & wmean_swflux, wmean_swdown, wmean_lwflux, wmean_lwdown, - & wmean_evap, wmean_apressure, wmean_runoff - _RL wmean_hflux - _RL wmean_sflux - _RL wmean_tau - _RL wmean_atemp - _RL wmean_aqh - _RL wmean_precip - _RL wmean_swflux - _RL wmean_swdown - _RL wmean_snowprecip - _RL wmean_lwflux - _RL wmean_lwdown - _RL wmean_evap - _RL wmean_apressure - _RL wmean_runoff - _RL wmean_wind - - common /ecco_cost_weights_2_r/ - & whflux2,wsflux2,wtauu2,wtauv2 - _RL whflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wsflux2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtauu2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL wtauv2 (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - -c Arrays that contain observations for the model-data comparison: -c =============================================================== -c -c sigmaRdat - reference sigmaR data. -c tdat - reference temperature data. -c scatxdat - reference zonal wind stress. -c scatydat - reference meridional wind stress. -c sstdat - reference sea surface temperature data. -c tmidat - reference TMI sea surface temperature data. -c sssdat - reference sea surface temperature data. -c bpdat - bottom pressure from time-varying GRACE. -c iesdat - roundtrip travel time from IES -c tauxmask - mask for reference wind stress data. -c tauymask - mask for reference wind stress data. -c scatxmask - mask for scat wind stress data. -c scatymask - mask for scat wind stress data. -c sstmask - mask for reference sea surface temperature data. -c tmimask - mask for reference sea surface temperature data. -c sssmask - mask for reference sea surface temperature data. -c sdat - reference salinity data. -c mdt - reference mean sea surface height data. -c mdtmask - mask for reference mean sea surface height data. -c tpobs - TOPEX/POSEIDON data. -c tpmask - mask for TOPEX/POSEIDON data. -c ersobs - ERS data. -c ersmask - mask for ERS data. -c ctdtobs - CTD temperature data -c ctdsobs - CTD salinity data -c xbtobs - XBT data -c argot - ARGO temperature data -c argos - ARGO salt data -c udriftdat - drifters zonal velocities -c vdriftdat - drifters meridional velocities - - common /ecco_cost_data_r/ -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRdat, -#endif - & tdat, - & scatxdat, - & scatydat, - & bpdat, - & iesdat, - & sstmask, - & tmimask, - & sssmask, - & bpmask, - & iesmask, - & tauxmask, - & tauymask, - & scatxmask, - & scatymask, - & sdat, - & mdt, - & mdtmask, - & tpobs, - & tpmask, - & ersobs, - & ersmask, - & gfoobs, - & gfomask, - & ctdtobs, - & ctdsobs, - & xbtobs, - & argotobs, - & argosobs, - & udriftdat, - & vdriftdat, - & curmtruobs, - & curmtrvobs - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL sigmaRdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - _RL tdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL scatxdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL scatydat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL bpdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL iesdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tauxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tauymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL scatxmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL scatymask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL sstmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tmimask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL sssmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL bpmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL iesmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL sdat (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL mdt (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL mdtmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tpobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL tpmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL ersobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL ersmask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL gfoobs (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL gfomask (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL ctdtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL ctdsobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xbtobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL argotobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL argosobs (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL udriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL vdriftdat (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) - _RL curmtruobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL curmtrvobs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - - -c Files that contain obervations: -c =============================== -c -C sigmaRdatfile - reference data file for sigmaR -c tdatfile - reference data file for temperature. -c sdatfile - reference data file for salinity. -c scatxdatfile - reference data file for zonal wind stress. -c scatydatfile - reference data file for meridional wind stress. -c sstdatfile - reference data file for sea surface temperature. -c tmidatfile - reference data file for TMI sea surface temperature. -c mdtdatfile - reference data file for mean sea surface height. -c topexfile - reference data file for sea surface height data -c (TOPEX/POSEIDON). -c ersfile - reference data file for sea surface height data -c (ERS). -c ctdtfile, ctdsfile- reference data file for temperature and salinity -c from CTD -c ctdtclimfile, ctdsclimfile- reference data file for temperature -c and salinity from CTD with out timetag -c xbtfile - reference data file for xbt -c ARGOtfile - reference data file for ARGO -c ARGOsfile - reference data file for ARGO -c driftfile - reference data file for drifter mean velocities - - common /ecco_cost_data_c/ -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRdatfile, -#endif - & tdatfile, - & sdatfile, - & scatxdatfile, - & scatydatfile, - & sstdatfile, - & tmidatfile, - & sssdatfile, - & bpdatfile, - & iesdatfile, - & mdtdatfile, - & topexfile, - & ersfile, - & gfofile, - & ctdtfile, - & ctdsfile, - & ctdtclimfile, - & ctdsclimfile, - & xbtfile, - & argotfile, - & argosfile, - & udriftfile, - & vdriftfile, - & usercost_datafile, - & curmtrufile, - & curmtrvfile - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRdatfile -#endif - character*(MAX_LEN_FNAM) tdatfile - character*(MAX_LEN_FNAM) sdatfile - character*(MAX_LEN_FNAM) scatxdatfile - character*(MAX_LEN_FNAM) scatydatfile - character*(MAX_LEN_FNAM) sstdatfile - character*(MAX_LEN_FNAM) tmidatfile - character*(MAX_LEN_FNAM) sssdatfile - character*(MAX_LEN_FNAM) bpdatfile - character*(MAX_LEN_FNAM) iesdatfile - character*(MAX_LEN_FNAM) mdtdatfile - character*(MAX_LEN_FNAM) topexfile - character*(MAX_LEN_FNAM) ersfile - character*(MAX_LEN_FNAM) gfofile - character*(MAX_LEN_FNAM) ctdtfile - character*(MAX_LEN_FNAM) ctdsfile - character*(MAX_LEN_FNAM) ctdtclimfile - character*(MAX_LEN_FNAM) ctdsclimfile - character*(MAX_LEN_FNAM) xbtfile - character*(MAX_LEN_FNAM) argotfile - character*(MAX_LEN_FNAM) argosfile - character*(MAX_LEN_FNAM) argofile - character*(MAX_LEN_FNAM) usercost_datafile(NUSERCOST) - character*(MAX_LEN_FNAM) udriftfile - character*(MAX_LEN_FNAM) vdriftfile - character*(MAX_LEN_FNAM) curmtrufile - character*(MAX_LEN_FNAM) curmtrvfile - -c Calendar information for the observations: -c ========================================== -c -c sststartdate - start date of the sea surface temperature data. -c tmistartdate - start date of the sea surface temperature data. -c topexstartdate - start date of the sea surface height data. -c ersstartdate - start date of the sea surface height data. -c sshperiod - sampling interval for the sea surface height data. - - common /ecco_cost_data_times_i/ - & scatxstartdate, - & scatystartdate, - & sststartdate, - & argotstartdate, - & argosstartdate, - & tmistartdate, - & sssstartdate, - & bpstartdate, - & iesstartdate, - & topexstartdate, - & ersstartdate, - & gfostartdate, - & mdtstartdate, - & mdtenddate - integer scatxstartdate(4) - integer scatystartdate(4) - integer sststartdate(4) - integer argotstartdate(4) - integer argosstartdate(4) - integer tmistartdate(4) - integer sssstartdate(4) - integer bpstartdate(4) - integer iesstartdate(4) - integer topexstartdate(4) - integer ersstartdate(4) - integer gfostartdate(4) - integer mdtstartdate(4) - integer mdtenddate(4) - - common /ecco_cost_data_aux_i/ - & tmistartdate1, - & tmistartdate2, - & sststartdate1, - & sststartdate2, - & sssstartdate1, - & sssstartdate2, - & bpstartdate1, - & bpstartdate2, - & iesstartdate1, - & iesstartdate2, - & argotstartdate1, - & argotstartdate2, - & argosstartdate1, - & argosstartdate2, - & topexstartdate1, - & topexstartdate2, - & ersstartdate1, - & ersstartdate2, - & gfostartdate1, - & gfostartdate2, - & scatstartdate1, - & scatstartdate2, - & mdtstartdate1, - & mdtstartdate2, - & mdtenddate1, - & mdtenddate2 - - integer tmistartdate1 - integer tmistartdate2 - integer sststartdate1 - integer sststartdate2 - integer sssstartdate1 - integer sssstartdate2 - integer bpstartdate1 - integer bpstartdate2 - integer iesstartdate1 - integer iesstartdate2 - integer argotstartdate1 - integer argotstartdate2 - integer argosstartdate1 - integer argosstartdate2 - integer topexstartdate1 - integer topexstartdate2 - integer ersstartdate1 - integer ersstartdate2 - integer gfostartdate1 - integer gfostartdate2 - integer scatstartdate1 - integer scatstartdate2 - integer mdtstartdate1 - integer mdtstartdate2 - integer mdtenddate1 - integer mdtenddate2 - - common /ecco_cost_data_times_r/ - & topexperiod, - & ersperiod, - & gfoperiod, - & scatperiod - _RL topexperiod - _RL ersperiod - _RL gfoperiod - _RL scatperiod - - common /ecco_cost_data_detrend/ - & topexintercept, - & ersintercept, - & gfointercept, - & topexslope, - & ersslope, - & gfoslope - _RL topexintercept - _RL ersintercept - _RL gfointercept - _RL topexslope - _RL ersslope - _RL gfoslope - -cgf factor to convert sshv4cost_errfile in m - common /ecco_cost_errfactor/ - & sshv4cost_errfactor - _RL sshv4cost_errfactor(NSSHV4COST) - -#ifdef ALLOW_SSH_COST_CONTRIBUTION - common /ecco_ssh_daymask_r/ - & tpTimeMask, ersTimeMask, gfoTimeMask - _RL tpTimeMask(maxNumDays) - _RL ersTimeMask(maxNumDays) - _RL gfoTimeMask(maxNumDays) -#endif - - common /ecco_ssh_daymask_c/ - & tpTimeMaskFile, ersTimeMaskFile, gfoTimeMaskFile - character*(MAX_LEN_FNAM) tpTimeMaskFile - character*(MAX_LEN_FNAM) ersTimeMaskFile - character*(MAX_LEN_FNAM) gfoTimeMaskFile - -#endif /* ECCO_CTRL_DEPRECATED */ +#include "ECCO_SIZE.h" +#include "ECCO.h" c ================================================================== c END OF HEADER COST c ================================================================== - - diff --git a/pkg/ecco/ecco_cost_driver.F b/pkg/ecco/ecco_cost_driver.F index 64eea5b0ad..0f58ab9139 100644 --- a/pkg/ecco/ecco_cost_driver.F +++ b/pkg/ecco/ecco_cost_driver.F @@ -1,4 +1,9 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_TAPENADE +# ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +# endif +#endif subroutine ecco_cost_driver( myTime, myIter, myThid ) @@ -19,16 +24,12 @@ subroutine ecco_cost_driver( myTime, myIter, myThid ) #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef ALLOW_SSH_COST_CONTRIBUTION -# ifdef ALLOW_PROFILES -# include "PROFILES_SIZE.h" -# include "profiles.h" -# endif -# endif +#ifdef ALLOW_TAPENADE +# include "CTRL_SIZE.h" +# include "ctrl.h" +# include "CTRL_GENARR.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif c == routine arguments == @@ -36,94 +37,6 @@ subroutine ecco_cost_driver( myTime, myIter, myThid ) integer myIter _RL myTime -#ifdef ECCO_CTRL_DEPRECATED - -c-- Compute the cost function contribution of the boundary forcing, -c-- i.e. heat flux, salt flux, zonal and meridional wind stress. -#ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('cost_forcing',myThid) -#endif - call timer_start('cost_forcing [ECCO SPIN-DOWN]', myThid) - call cost_forcing( myThid ) - call timer_stop ('cost_forcing [ECCO SPIN-DOWN]', myThid) -cph( -c-- Compute cost function contribution of wind stress observations. -c#ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION -c call cost_mean_heatflux( myIter, myTime, myThid ) -c# ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE objf_hfluxmm = tapelev_init, key=1 -c# endif -c#endif - -c-- Compute cost function contribution of wind stress observations. -c#ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION -c call cost_mean_saltflux( myIter, myTime, myThid ) -c# ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE objf_sfluxmm = tapelev_init, key=1 -c# endif -c#endif -cph) - -c-- Compute cost function contribution of SSH. -#ifdef ALLOW_SSH_COST_CONTRIBUTION - IF (using_cost_altim) THEN -# ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('cost_ssh',myThid) -# endif -c# if (defined(ALLOW_NEW_SSH_COST)) -c call timer_start('cost_ssh_new [ECCO SPIN-DOWN]', myThid) -c call cost_ssh_new( myIter, myTime, myThid ) -c call timer_stop ('cost_ssh_new [ECCO SPIN-DOWN]', myThid) -c# elif (!defined (ALLOW_GENCOST_SSHV4)) - call timer_start('cost_ssh [ECCO SPIN-DOWN]', myThid) - call cost_ssh( myIter, myTime, myThid ) - call timer_stop ('cost_ssh [ECCO SPIN-DOWN]', myThid) -c# endif - ENDIF !IF (using_cost_altim) THEN -# ifdef ALLOW_AUTODIFF_TAMC -# ifdef ALLOW_PROFILES -CADJ STORE prof_etan_mean = tapelev_init, key=1 -# endif -# endif -#endif - -#ifdef ALLOW_BP_COST_CONTRIBUTION -c-- Compute bottom pressure cost - IF (using_cost_bp) THEN - call timer_start('cost_bp [ECCO SPIN-DOWN]', myThid) - call cost_generic( - & 1, bpfile, xx_bpbar_mean_dummy, - & 1, bpdatfile, bperrfile, mult_bp, - & nmonsrec, nmonsrec, bpstartdate, 0. _d 0, - & 'C', -1. _d 2, 1. _d 2, 0. _d 0, - & anom_preproc, no_preproc_c, no_preproc_i, no_preproc_r, - & no_posproc, no_posproc_c, no_posproc_i, no_posproc_r, - & 0, bpdatfile, objf_bp, num_bp, - & myiter, mytime, mythid ) - call timer_stop ('cost_bp [ECCO SPIN-DOWN]', myThid) - no_preproc(1)=' ' - ENDIF -#endif - -c-- Compute cost function contribution of Temperature and Salinity. -#ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('cost_hyd',myThid) -#endif - call timer_start('cost_hyd [ECCO SPIN-DOWN]', myThid) - call cost_hyd( myIter, myTime, myThid ) - call timer_stop ('cost_hyd [ECCO SPIN-DOWN]', myThid) - -#ifdef ALLOW_SEAICE -#ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL('seaice_cost_driver',myThid) -#endif - IF ( useSeaice) THEN - call timer_start('seaice_cost_driver [ECCO SPIN-DOWN]', myThid) - call seaice_cost_driver( myIter, myTime, myThid ) - call timer_stop ('seaice_cost_driver [ECCO SPIN-DOWN]', myThid) - ENDIF -#endif - #ifdef ALLOW_OBCS_COST_CONTRIBUTION #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('cost_obcs',myThid) @@ -133,77 +46,6 @@ subroutine ecco_cost_driver( myTime, myIter, myThid ) call timer_stop ('cost_obcs [ECCO SPIN-DOWN]', myThid) #endif -c#ifdef ALLOW_CURMTR_COST_CONTRIBUTION -c#ifdef ALLOW_DEBUG -c IF (debugMode) CALL DEBUG_CALL('cost_curmtr',myThid) -c#endif -c call timer_start('cost_curmtr [ECCO SPIN-DOWN]', myThid) -c call cost_curmtr( myIter, myTime, myThid ) -c call timer_stop ('cost_curmtr [ECCO SPIN-DOWN]', myThid) -c#endif - -c-- Compute cost function contribution of drifter velocities. -c#ifdef ALLOW_DRIFTER_COST_CONTRIBUTION -c#ifndef ALLOW_AUTODIFF_WHTAPEIO -c#ifdef ALLOW_DEBUG -c IF (debugMode) CALL DEBUG_CALL('cost_drifter',myThid) -c#endif -c call timer_start('cost_drifter [ECCO SPIN-DOWN]', myThid) -c call cost_drifter( myIter, myTime, myThid ) -c call timer_stop ('cost_drifter [ECCO SPIN-DOWN]', myThid) -c#endif -c#endif - -c-- Compute cost function contribution of wind stress observations. -c#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ -c defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) -c#ifdef ALLOW_DEBUG -c IF (debugMode) CALL DEBUG_CALL('cost_scat',myThid) -c#endif -c IF (using_cost_scat) THEN -c call timer_start('cost_scat [ECCO SPIN-DOWN]', myThid) -c call cost_scat( myIter, myTime, myThid ) -c call timer_stop ('cost_scat [ECCO SPIN-DOWN]', myThid) -c ENDIF -c#endif - -c-- Compute cost function contribution of drift between the first -c and the last year. -c#ifdef ALLOW_DRIFT_COST_CONTRIBUTION -c#ifdef ALLOW_DEBUG -c IF (debugMode) CALL DEBUG_CALL('cost_drift',myThid) -c#endif -c call timer_start('cost_drift [ECCO SPIN-DOWN]', myThid) -c call cost_drift( myIter, myTime, myThid ) -c call timer_stop ('cost_drift [ECCO SPIN-DOWN]', myThid) -c#endif -c#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION -c#ifdef ALLOW_DEBUG -c IF (debugMode) CALL DEBUG_CALL('cost_driftw',myThid) -c#endif -c call timer_start('cost_driftw [ECCO SPIN-DOWN]', myThid) -c call cost_driftw( myIter, myTime, myThid ) -c call timer_stop ('cost_driftw [ECCO SPIN-DOWN]', myThid) -c#endif -c _BARRIER - -c-- Compute initial vs. final T/S deviation -c#ifdef ALLOW_COST_INI_FIN -c call timer_start('cost_ini_fin [ECCO SPIN-DOWN]', myThid) -c call cost_theta_ini_fin( myIter, myTime, myThid ) -c call cost_salt_ini_fin( myIter, myTime, myThid ) -c call timer_stop ('cost_ini_fin [ECCO SPIN-DOWN]', myThid) -c#endif -c _BARRIER - -c-- Internal Parameter controls cost terms: - call timer_start('cost_internal_params [ECCO SPIN-DOWN]', myThid) - call cost_internal_params( myIter, myTime, myThid ) - call timer_stop ('cost_internal_params [ECCO SPIN-DOWN]', myThid) - _BARRIER - -#endif /* ECCO_CTRL_DEPRECATED */ - c-- Compute user defined cost function contributions (elaborate) call timer_start('cost_gencost_all [ECCO SPIN-DOWN]', myThid) call cost_gencost_all( myIter, myTime, myThid ) @@ -220,5 +62,5 @@ subroutine ecco_cost_driver( myTime, myIter, myThid ) ENDIF #endif - return - end + RETURN + END diff --git a/pkg/ecco/ecco_cost_final.F b/pkg/ecco/ecco_cost_final.F index b073a83da5..072d8124c6 100644 --- a/pkg/ecco/ecco_cost_final.F +++ b/pkg/ecco/ecco_cost_final.F @@ -3,7 +3,7 @@ # include "CTRL_OPTIONS.h" #endif - subroutine ecco_cost_final( mythid ) + subroutine ecco_cost_final( myThid ) c ================================================================== c SUBROUTINE cost_final @@ -27,18 +27,17 @@ subroutine ecco_cost_final( mythid ) # include "cost.h" #endif #ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -# include "ecco_cost.h" -# else -# include "ecco.h" -# endif +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_CTRL # include "ctrl.h" # include "optim.h" # include "CTRL_SIZE.h" # include "CTRL_GENARR.h" -# include "CTRL_OBCS.h" +# ifdef ALLOW_OBCS +# include "CTRL_OBCS.h" +# endif /* ALLOW_OBCS */ #endif #ifdef ALLOW_PROFILES # include "PROFILES_SIZE.h" @@ -47,20 +46,19 @@ subroutine ecco_cost_final( mythid ) c == routine arguments == - integer mythid + integer myThid C === Functions ==== LOGICAL MASTER_CPU_THREAD EXTERNAL MASTER_CPU_THREAD + INTEGER ILNBLNK + EXTERNAL ILNBLNK c == local variables == integer bi,bj - integer itlo,ithi - integer jtlo,jthi integer ifc - integer totnum - integer num_file,num_var + integer num_var #ifndef ALLOW_PROFILES integer NFILESPROFMAX @@ -76,40 +74,10 @@ subroutine ecco_cost_final( mythid ) #endif _RL locfc -#ifdef ECCO_CTRL_DEPRECATED - _RL f_temp0, f_salt0, f_temp0smoo, f_salt0smoo - _RL f_etan0, f_uvel0, f_vvel0 - _RL f_temp, f_salt - _RL f_uwind, f_vwind - _RL f_atemp, f_aqh, f_precip - _RL f_swflux, f_swdown - _RL f_lwflux, f_lwdown - _RL f_uwindm, f_vwindm - _RL f_atempm, f_aqhm, f_precipm - _RL f_swfluxm, f_swdownm - _RL f_lwfluxm, f_lwdownm - _RL f_uwindsmoo, f_vwindsmoo - _RL f_atempsmoo, f_aqhsmoo, f_precipsmoo - _RL f_swfluxsmoo, f_swdownsmoo - _RL f_lwfluxsmoo, f_lwdownsmoo - _RL f_tauu, f_tauv, f_hflux, f_sflux - _RL f_tauum, f_tauvm, f_hfluxm, f_sfluxm - _RL f_tauusmoo, f_tauvsmoo, f_hfluxsmoo, f_sfluxsmoo - _RL f_hfluxmm, f_sfluxmm, f_hfluxmm2, f_sfluxmm2 - _RL f_sst, f_tmi, f_sss, f_bp, f_atl, f_ctdt, f_ctds - _RL f_drifter, f_xbt, f_tdrift, f_sdrift, f_wdrift - _RL f_ssh , f_tp, f_ers, f_gfo - _RL f_argot, f_argos, f_ctdtclim, f_ctdsclim - _RL f_scatx, f_scaty, f_scatxm, f_scatym - _RL f_ageos, f_curmtr - _RL f_ini_fin - _RL f_kapgm, f_kapredi, f_diffkr - _RL f_eddytau, f_bottomdrag - _RL f_transp, f_ies -#endif /* ECCO_CTRL_DEPRECATED */ - _RL f_gencost(NGENCOST) - _RL f_obcsn, f_obcss, f_obcsw, f_obcse +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) + _RL f_obcsn, f_obcss, f_obcsw, f_obcse, f_ageos +#endif #ifdef ALLOW_PROFILES _RL f_profiles(NFILESPROFMAX,NVARMAX) _RL f_profiles_mean(NVARMAX) @@ -123,35 +91,12 @@ subroutine ecco_cost_final( mythid ) #ifdef ALLOW_GENARR3D_CONTROL _RL f_genarr3d(maxCtrlArr3D) #endif - -#ifdef ECCO_CTRL_DEPRECATED - _RL no_temp0, no_salt0, no_temp, no_salt - _RL no_etan0, no_uvel0, no_vvel0 - _RL no_uwind, no_vwind - _RL no_atemp, no_aqh, no_precip, no_swflux, no_swdown - _RL no_lwflux, no_lwdown - _RL no_uwindm, no_vwindm - _RL no_atempm, no_aqhm, no_precipm, no_swfluxm, no_swdownm - _RL no_lwfluxm, no_lwdownm - _RL no_tauu, no_tauv, no_hflux, no_sflux - _RL no_tauum, no_tauvm, no_hfluxm, no_sfluxm - _RL no_hfluxmm, no_sfluxmm - _RL no_sst, no_tmi, no_sss, no_bp, no_atl, no_ctdt, no_ctds - _RL no_drifter, no_xbt, no_tdrift, no_sdrift, no_wdrift - _RL no_ssh, no_tp, no_ers, no_gfo - _RL no_argot, no_argos, no_ctdtclim, no_ctdsclim - _RL no_scatx, no_scaty, no_scatxm, no_scatym - _RL no_ageos, no_curmtr - _RL no_ini_fin - _RL no_kapgm, no_kapredi, no_diffkr - _RL no_eddytau, no_bottomdrag - _RL no_hmean - _RL no_transp, no_ies -#endif /* ECCO_CTRL_DEPRECATED */ - _RL no_gencost(NGENCOST) - _RL no_obcsn, no_obcss, no_obcsw, no_obcse +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) + _RL no_obcsn, no_obcss, no_obcsw, no_obcse, no_ageos +#endif #ifdef ALLOW_PROFILES + integer num_file _RL no_profiles(NFILESPROFMAX,NVARMAX) _RL no_profiles_mean(NVARMAX) #endif @@ -169,112 +114,20 @@ subroutine ecco_cost_final( mythid ) character*(MAX_LEN_MBUF) msgBuf INTEGER IL -C Functions - INTEGER ILNBLNK c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - ifc = 30 locfc = 0. _d 0 -#ifdef ECCO_CTRL_DEPRECATED - f_temp = 0. _d 0 - f_salt = 0. _d 0 - f_temp0 = 0. _d 0 - f_salt0 = 0. _d 0 - f_temp0smoo = 0. _d 0 - f_salt0smoo = 0. _d 0 - f_etan0 = 0. _d 0 - f_uvel0 = 0. _d 0 - f_vvel0 = 0. _d 0 - f_tauu = 0. _d 0 - f_tauum = 0. _d 0 - f_tauusmoo = 0. _d 0 - f_tauv = 0. _d 0 - f_tauvm = 0. _d 0 - f_tauvsmoo = 0. _d 0 - f_hflux = 0. _d 0 - f_hfluxm = 0. _d 0 - f_hfluxsmoo = 0. _d 0 - f_hfluxmm = 0. _d 0 - f_hfluxmm2 = 0. _d 0 - f_sflux = 0. _d 0 - f_sfluxsmoo = 0. _d 0 - f_sfluxm = 0. _d 0 - f_sfluxmm = 0. _d 0 - f_sfluxmm2 = 0. _d 0 - f_uwind = 0. _d 0 - f_vwind = 0. _d 0 - f_atemp = 0. _d 0 - f_aqh = 0. _d 0 - f_precip = 0. _d 0 - f_swflux = 0. _d 0 - f_swdown = 0. _d 0 - f_lwflux = 0. _d 0 - f_lwdown = 0. _d 0 - f_uwindm = 0. _d 0 - f_vwindm = 0. _d 0 - f_atempm = 0. _d 0 - f_aqhm = 0. _d 0 - f_precipm = 0. _d 0 - f_swfluxm = 0. _d 0 - f_swdownm = 0. _d 0 - f_lwfluxm = 0. _d 0 - f_lwdownm = 0. _d 0 - f_uwindsmoo = 0. _d 0 - f_vwindsmoo = 0. _d 0 - f_atempsmoo = 0. _d 0 - f_aqhsmoo = 0. _d 0 - f_precipsmoo = 0. _d 0 - f_swfluxsmoo = 0. _d 0 - f_swdownsmoo = 0. _d 0 - f_lwfluxsmoo = 0. _d 0 - f_lwdownsmoo = 0. _d 0 - f_ssh = 0. _d 0 - f_tp = 0. _d 0 - f_ers = 0. _d 0 - f_gfo = 0. _d 0 - f_sst = 0. _d 0 - f_tmi = 0. _d 0 - f_sss = 0. _d 0 - f_bp = 0. _d 0 - f_atl = 0. _d 0 - f_ctdt = 0. _d 0 - f_ctds = 0. _d 0 - f_ctdtclim = 0. _d 0 - f_ctdsclim = 0. _d 0 - f_xbt = 0. _d 0 - f_argot = 0. _d 0 - f_argos = 0. _d 0 - f_drifter = 0. _d 0 - f_sdrift = 0. _d 0 - f_tdrift = 0. _d 0 - f_wdrift = 0. _d 0 - f_scatx = 0. _d 0 - f_scaty = 0. _d 0 - f_scatxm = 0. _d 0 - f_scatym = 0. _d 0 - f_curmtr = 0. _d 0 - f_ageos = 0. _d 0 - f_ini_fin = 0. _d 0 - f_kapgm = 0. _d 0 - f_kapredi = 0. _d 0 - f_diffkr = 0. _d 0 - f_eddytau = 0. _d 0 - f_bottomdrag = 0. _d 0 - f_transp = 0. _d 0 - f_ies = 0. _d 0 -#endif /* ECCO_CTRL_DEPRECATED */ +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) f_obcsn = 0. _d 0 f_obcss = 0. _d 0 f_obcsw = 0. _d 0 f_obcse = 0. _d 0 + f_ageos = 0. _d 0 +#endif #ifdef ALLOW_PROFILES do num_file=1,NFILESPROFMAX do num_var=1,NVARMAX @@ -306,82 +159,13 @@ subroutine ecco_cost_final( mythid ) enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - no_temp = 0. _d 0 - no_salt = 0. _d 0 - no_temp0 = 0. _d 0 - no_salt0 = 0. _d 0 - no_etan0 = 0. _d 0 - no_uvel0 = 0. _d 0 - no_vvel0 = 0. _d 0 - no_tauu = 0. _d 0 - no_tauum = 0. _d 0 - no_tauv = 0. _d 0 - no_tauvm = 0. _d 0 - no_hflux = 0. _d 0 - no_hfluxm = 0. _d 0 - no_hfluxmm = 0. _d 0 - no_sflux = 0. _d 0 - no_sfluxm = 0. _d 0 - no_sfluxmm = 0. _d 0 - no_uwind = 0. _d 0 - no_vwind = 0. _d 0 - no_atemp = 0. _d 0 - no_aqh = 0. _d 0 - no_precip = 0. _d 0 - no_swflux = 0. _d 0 - no_swdown = 0. _d 0 - no_lwflux = 0. _d 0 - no_lwdown = 0. _d 0 - no_uwindm = 0. _d 0 - no_vwindm = 0. _d 0 - no_atempm = 0. _d 0 - no_aqhm = 0. _d 0 - no_precipm = 0. _d 0 - no_swfluxm = 0. _d 0 - no_swdownm = 0. _d 0 - no_lwfluxm = 0. _d 0 - no_lwdownm = 0. _d 0 - no_ssh = 0. _d 0 - no_tp = 0. _d 0 - no_ers = 0. _d 0 - no_gfo = 0. _d 0 - no_sst = 0. _d 0 - no_tmi = 0. _d 0 - no_sss = 0. _d 0 - no_bp = 0. _d 0 - no_atl = 0. _d 0 - no_ctdt = 0. _d 0 - no_ctds = 0. _d 0 - no_ctdtclim = 0. _d 0 - no_ctdsclim = 0. _d 0 - no_xbt = 0. _d 0 - no_argot = 0. _d 0 - no_argos = 0. _d 0 - no_drifter = 0. _d 0 - no_sdrift = 0. _d 0 - no_tdrift = 0. _d 0 - no_wdrift = 0. _d 0 - no_scatx = 0. _d 0 - no_scaty = 0. _d 0 - no_scatxm = 0. _d 0 - no_scatym = 0. _d 0 +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) no_obcsn = 0. _d 0 no_obcss = 0. _d 0 no_obcsw = 0. _d 0 no_obcse = 0. _d 0 - no_curmtr = 0. _d 0 no_ageos = 0. _d 0 - no_ini_fin = 0. _d 0 - no_kapgm = 0. _d 0 - no_kapredi = 0. _d 0 - no_diffkr = 0. _d 0 - no_eddytau = 0. _d 0 - no_bottomdrag = 0. _d 0 - no_transp = 0. _d 0 - no_ies = 0. _d 0 -#endif /* ECCO_CTRL_DEPRECATED */ - +#endif #ifdef ALLOW_PROFILES do num_file=1,NFILESPROFMAX do num_var=1,NVARMAX @@ -414,90 +198,16 @@ subroutine ecco_cost_final( mythid ) #endif c-- Sum up all contributions. - do bj = jtlo,jthi - do bi = itlo,ithi - - tile_fc(bi,bj) = tile_fc(bi,bj) -#ifdef ECCO_CTRL_DEPRECATED - & + mult_temp * objf_temp(bi,bj) - & + mult_salt * objf_salt(bi,bj) - & + mult_temp0 * ( objf_temp0(bi,bj) - & +mult_smooth_ic*objf_temp0smoo(bi,bj) ) - & + mult_salt0 * ( objf_salt0(bi,bj) - & +mult_smooth_ic*objf_salt0smoo(bi,bj) ) - & + mult_etan0 * objf_etan0(bi,bj) - & + mult_uvel0 * objf_uvel0(bi,bj) - & + mult_vvel0 * objf_vvel0(bi,bj) - & + mult_sst * objf_sst(bi,bj) - & + mult_tmi * objf_tmi(bi,bj) - & + mult_sss * objf_sss(bi,bj) - & + mult_bp * objf_bp(bi,bj) - & + mult_ies * objf_ies(bi,bj) - & + mult_tauu * ( objf_tauu(bi,bj)+objf_tauum(bi,bj) - & +mult_smooth_bc*objf_tauusmoo(bi,bj) ) - & + mult_tauv * ( objf_tauv(bi,bj)+objf_tauvm(bi,bj) - & +mult_smooth_bc*objf_tauvsmoo(bi,bj) ) - & + mult_hflux * ( objf_hflux(bi,bj) - & +mult_smooth_bc*objf_hfluxsmoo(bi,bj) ) - & + mult_sflux * ( objf_sflux(bi,bj) - & +mult_smooth_bc*objf_sfluxsmoo(bi,bj) ) - & + mult_h * ( mult_tp * objf_tp(bi,bj) - & + mult_ers * objf_ers(bi,bj) - & + mult_gfo * objf_gfo(bi,bj) ) -#if ( defined (ALLOW_COST) && defined (ALLOW_COST_ATLANTIC) ) - & + mult_atl * objf_atl(bi,bj) -#endif - & + mult_ctdt * objf_ctdt(bi,bj) - & + mult_ctds * objf_ctds(bi,bj) - & + mult_ctdtclim* objf_ctdtclim(bi,bj) - & + mult_ctdsclim* objf_ctdsclim(bi,bj) - & + mult_xbt * objf_xbt(bi,bj) - & + mult_argot * objf_argot(bi,bj) - & + mult_argos * objf_argos(bi,bj) - & + mult_drift * objf_drift(bi,bj) - & + mult_sdrift * objf_sdrift(bi,bj) - & + mult_tdrift * objf_tdrift(bi,bj) - & + mult_wdrift * objf_wdrift(bi,bj) - & + mult_scatx * objf_scatx(bi,bj) - & + mult_scaty * objf_scaty(bi,bj) - & + mult_scatx * objf_scatxm(bi,bj) - & + mult_scaty * objf_scatym(bi,bj) - & + mult_uwind * ( objf_uwind(bi,bj)+objf_uwindm(bi,bj) - & +mult_smooth_bc*objf_uwindsmoo(bi,bj) ) - & + mult_vwind * ( objf_vwind(bi,bj)+objf_vwindm(bi,bj) - & +mult_smooth_bc*objf_vwindsmoo(bi,bj) ) - & + mult_atemp * ( objf_atemp(bi,bj)+objf_atempm(bi,bj) - & +mult_smooth_bc*objf_atempsmoo(bi,bj) ) - & + mult_aqh * ( objf_aqh(bi,bj)+objf_aqhm(bi,bj) - & +mult_smooth_bc*objf_aqhsmoo(bi,bj) ) - & + mult_precip * ( objf_precip(bi,bj)+objf_precipm(bi,bj) - & +mult_smooth_bc*objf_precipsmoo(bi,bj) ) - & + mult_swflux * ( objf_swflux(bi,bj)+objf_swfluxm(bi,bj) - & +mult_smooth_bc*objf_swfluxsmoo(bi,bj) ) - & + mult_swdown * ( objf_swdown(bi,bj)+objf_swdownm(bi,bj) - & +mult_smooth_bc*objf_swdownsmoo(bi,bj) ) - & + mult_lwflux * ( objf_lwflux(bi,bj)+objf_lwfluxm(bi,bj) - & +mult_smooth_bc*objf_lwfluxsmoo(bi,bj) ) - & + mult_lwdown * ( objf_lwdown(bi,bj)+objf_lwdownm(bi,bj) - & +mult_smooth_bc*objf_lwdownsmoo(bi,bj) ) - & + mult_curmtr * objf_curmtr(bi,bj) - & + mult_kapgm * objf_kapgm(bi,bj) - & + mult_kapredi * objf_kapredi(bi,bj) - & + mult_diffkr * objf_diffkr(bi,bj) - & + mult_ini_fin *(objf_theta_ini_fin(bi,bj) + - & objf_salt_ini_fin(bi,bj)) - & + mult_edtau * objf_eddytau(bi,bj) - & + mult_bottomdrag * objf_bottomdrag(bi,bj) - -#endif /* ECCO_CTRL_DEPRECATED */ + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) tile_fc(bi,bj) = tile_fc(bi,bj) & + mult_obcsn * objf_obcsn(bi,bj) & + mult_obcss * objf_obcss(bi,bj) & + mult_obcsw * objf_obcsw(bi,bj) & + mult_obcse * objf_obcse(bi,bj) -# ifdef ECCO_CTRL_DEPRECATED +# ifdef OBCS_AGEOS_COST_CONTRIBUTION & + mult_ageos * objf_ageos(bi,bj) # endif #endif @@ -544,96 +254,12 @@ subroutine ecco_cost_final( mythid ) enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - f_temp = f_temp + objf_temp(bi,bj) - f_salt = f_salt + objf_salt(bi,bj) - f_temp0 = f_temp0 + objf_temp0(bi,bj) - f_salt0 = f_salt0 + objf_salt0(bi,bj) - f_temp0smoo = f_temp0smoo + objf_temp0smoo(bi,bj) - f_salt0smoo = f_salt0smoo + objf_salt0smoo(bi,bj) - f_etan0 = f_etan0 + objf_etan0(bi,bj) - f_uvel0 = f_uvel0 + objf_uvel0(bi,bj) - f_vvel0 = f_vvel0 + objf_vvel0(bi,bj) - f_tauu = f_tauu + objf_tauu(bi,bj) - f_tauum = f_tauum + objf_tauum(bi,bj) - f_tauusmoo = f_tauusmoo + objf_tauusmoo(bi,bj) - f_tauv = f_tauv + objf_tauv(bi,bj) - f_tauvm = f_tauvm + objf_tauvm(bi,bj) - f_tauvsmoo = f_tauvsmoo + objf_tauvsmoo(bi,bj) - f_hflux = f_hflux + objf_hflux(bi,bj) - f_hfluxsmoo = f_hfluxsmoo + objf_hfluxsmoo(bi,bj) - f_sflux = f_sflux + objf_sflux(bi,bj) - f_sfluxsmoo = f_sfluxsmoo + objf_sfluxsmoo(bi,bj) - f_uwind = f_uwind + objf_uwind(bi,bj) - f_vwind = f_vwind + objf_vwind(bi,bj) - f_atemp = f_atemp + objf_atemp(bi,bj) - f_aqh = f_aqh + objf_aqh(bi,bj) - f_precip = f_precip + objf_precip(bi,bj) - f_swflux = f_swflux + objf_swflux(bi,bj) - f_swdown = f_swdown + objf_swdown(bi,bj) - f_lwflux = f_lwflux + objf_lwflux(bi,bj) - f_lwdown = f_lwdown + objf_lwdown(bi,bj) - f_uwindm = f_uwindm + objf_uwindm(bi,bj) - f_vwindm = f_vwindm + objf_vwindm(bi,bj) - f_atempm = f_atempm + objf_atempm(bi,bj) - f_aqhm = f_aqhm + objf_aqhm(bi,bj) - f_precipm = f_precipm + objf_precipm(bi,bj) - f_swfluxm = f_swfluxm + objf_swfluxm(bi,bj) - f_swdownm = f_swdownm + objf_swdownm(bi,bj) - f_lwfluxm = f_lwfluxm + objf_lwfluxm(bi,bj) - f_lwdownm = f_lwdownm + objf_lwdownm(bi,bj) - f_uwindsmoo = f_uwindsmoo + objf_uwindsmoo(bi,bj) - f_vwindsmoo = f_vwindsmoo + objf_vwindsmoo(bi,bj) - f_atempsmoo = f_atempsmoo + objf_atempsmoo(bi,bj) - f_aqhsmoo = f_aqhsmoo + objf_aqhsmoo(bi,bj) - f_precipsmoo = f_precipsmoo + objf_precipsmoo(bi,bj) - f_swfluxsmoo = f_swfluxsmoo + objf_swfluxsmoo(bi,bj) - f_swdownsmoo = f_swdownsmoo + objf_swdownsmoo(bi,bj) - f_lwfluxsmoo = f_lwfluxsmoo + objf_lwfluxsmoo(bi,bj) - f_lwdownsmoo = f_lwdownsmoo + objf_lwdownsmoo(bi,bj) - f_ssh = f_ssh + objf_h(bi,bj) - f_tp = f_tp + objf_tp(bi,bj) - f_ers = f_ers + objf_ers(bi,bj) - f_gfo = f_gfo + objf_gfo(bi,bj) - f_sst = f_sst + objf_sst(bi,bj) - f_tmi = f_tmi + objf_tmi(bi,bj) - f_sss = f_sss + objf_sss(bi,bj) - f_bp = f_bp + objf_bp(bi,bj) - f_ies = f_ies + objf_ies(bi,bj) -#if ( defined (ALLOW_COST) && defined (ALLOW_COST_ATLANTIC) ) - f_atl = f_atl + objf_atl(bi,bj) -#endif - f_ctdt = f_ctdt + objf_ctdt(bi,bj) - f_ctds = f_ctds + objf_ctds(bi,bj) - f_ctdtclim = f_ctdtclim + objf_ctdtclim(bi,bj) - f_ctdsclim = f_ctdsclim + objf_ctdsclim(bi,bj) - f_xbt = f_xbt + objf_xbt(bi,bj) - f_argot = f_argot + objf_argot(bi,bj) - f_argos = f_argos + objf_argos(bi,bj) - f_drifter = f_drifter + objf_drift(bi,bj) - f_sdrift = f_sdrift + objf_sdrift(bi,bj) - f_tdrift = f_tdrift + objf_tdrift(bi,bj) - f_wdrift = f_wdrift + objf_wdrift(bi,bj) - f_scatx = f_scatx + objf_scatx(bi,bj) - f_scaty = f_scaty + objf_scaty(bi,bj) - f_scatxm = f_scatxm + objf_scatxm(bi,bj) - f_scatym = f_scatym + objf_scatym(bi,bj) - f_curmtr = f_curmtr + objf_curmtr(bi,bj) - f_kapgm = f_kapgm + objf_kapgm(bi,bj) - f_kapredi = f_kapredi + objf_kapredi(bi,bj) - f_diffkr = f_diffkr + objf_diffkr(bi,bj) - f_ini_fin = f_ini_fin + - & objf_theta_ini_fin(bi,bj) + objf_salt_ini_fin(bi,bj) - f_eddytau = f_eddytau + objf_eddytau(bi,bj) - f_bottomdrag = f_bottomdrag + objf_bottomdrag(bi,bj) -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) f_obcsn = f_obcsn + objf_obcsn(bi,bj) f_obcss = f_obcss + objf_obcss(bi,bj) f_obcsw = f_obcsw + objf_obcsw(bi,bj) f_obcse = f_obcse + objf_obcse(bi,bj) -# ifdef ECCO_CTRL_DEPRECATED +# ifdef OBCS_AGEOS_COST_CONTRIBUTION f_ageos = f_ageos + objf_ageos(bi,bj) # endif #endif @@ -674,81 +300,14 @@ subroutine ecco_cost_final( mythid ) enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - no_temp = no_temp + num_temp(bi,bj) - no_salt = no_salt + num_salt(bi,bj) - no_temp0 = no_temp0 + num_temp0(bi,bj) - no_salt0 = no_salt0 + num_salt0(bi,bj) - no_etan0 = no_etan0 + num_etan0(bi,bj) - no_uvel0 = no_uvel0 + num_uvel0(bi,bj) - no_vvel0 = no_vvel0 + num_vvel0(bi,bj) - no_tauu = no_tauu + num_tauu(bi,bj) - no_tauum = no_tauum + num_tauum(bi,bj) - no_tauv = no_tauv + num_tauv(bi,bj) - no_tauvm = no_tauvm + num_tauvm(bi,bj) - no_hflux= no_hflux + num_hflux(bi,bj) - no_hfluxmm = no_hfluxmm + num_hfluxmm(bi,bj) - no_sflux= no_sflux + num_sflux(bi,bj) - no_sfluxmm = no_sfluxmm + num_sfluxmm(bi,bj) - no_atemp = no_atemp + num_atemp(bi,bj) - no_aqh = no_aqh + num_aqh(bi,bj) - no_precip = no_precip + num_precip(bi,bj) - no_swflux = no_swflux + num_swflux(bi,bj) - no_swdown = no_swdown + num_swdown(bi,bj) - no_lwflux = no_lwflux + num_lwflux(bi,bj) - no_lwdown = no_lwdown + num_lwdown(bi,bj) - no_uwind = no_uwind + num_uwind(bi,bj) - no_vwind = no_vwind + num_vwind(bi,bj) - no_atempm = no_atempm + num_atempm(bi,bj) - no_aqhm = no_aqhm + num_aqhm(bi,bj) - no_precipm = no_precipm + num_precipm(bi,bj) - no_swfluxm = no_swfluxm + num_swfluxm(bi,bj) - no_swdownm = no_swdownm + num_swdownm(bi,bj) - no_lwfluxm = no_lwfluxm + num_lwfluxm(bi,bj) - no_lwdownm = no_lwdownm + num_lwdownm(bi,bj) - no_uwindm = no_uwindm + num_uwindm(bi,bj) - no_vwindm = no_vwindm + num_vwindm(bi,bj) - no_ssh = no_ssh + num_h(bi,bj) - no_tp = no_tp + num_tp(bi,bj) - no_ers = no_ers + num_ers(bi,bj) - no_gfo = no_gfo + num_gfo(bi,bj) - no_sst = no_sst + num_sst(bi,bj) - no_tmi = no_tmi + num_tmi(bi,bj) - no_sss = no_sss + num_sss(bi,bj) - no_bp = no_bp + num_bp(bi,bj) - no_ies = no_ies + num_ies(bi,bj) - no_ctdt = no_ctdt + num_ctdt(bi,bj) - no_ctds = no_ctds + num_ctds(bi,bj) - no_ctdtclim = no_ctdtclim + num_ctdtclim(bi,bj) - no_ctdsclim = no_ctdsclim + num_ctdsclim(bi,bj) - no_xbt = no_xbt + num_xbt(bi,bj) - no_argot = no_argot + num_argot(bi,bj) - no_argos = no_argos + num_argos(bi,bj) - no_drifter = no_drifter + num_drift(bi,bj) - no_sdrift = no_sdrift + num_sdrift(bi,bj) - no_tdrift = no_tdrift + num_tdrift(bi,bj) - no_wdrift = no_wdrift + num_wdrift(bi,bj) - no_scatx = no_scatx + num_scatx(bi,bj) - no_scaty = no_scaty + num_scaty(bi,bj) - no_scatxm = no_scatxm + num_scatxm(bi,bj) - no_scatym = no_scatym + num_scatym(bi,bj) - no_curmtr = no_curmtr + num_curmtr(bi,bj) - no_ageos = no_ageos + num_ageos(bi,bj) - no_kapgm = no_kapgm + num_kapgm(bi,bj) - no_kapredi = no_kapredi + num_kapredi(bi,bj) - no_diffkr = no_diffkr + num_diffkr(bi,bj) - no_ini_fin = no_ini_fin + - & num_theta_ini_fin(bi,bj) + num_salt_ini_fin(bi,bj) - no_eddytau = no_eddytau + num_eddytau(bi,bj) - no_bottomdrag = no_bottomdrag + num_bottomdrag(bi,bj) - -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) no_obcsn = no_obcsn + num_obcsn(bi,bj) no_obcss = no_obcss + num_obcss(bi,bj) no_obcse = no_obcse + num_obcse(bi,bj) no_obcsw = no_obcsw + num_obcsw(bi,bj) +# ifdef OBCS_AGEOS_COST_CONTRIBUTION + no_ageos = no_ageos + num_ageos(bi,bj) +# endif #endif #ifdef ALLOW_PROFILES do num_file=1,NFILESPROFMAX @@ -787,8 +346,9 @@ subroutine ecco_cost_final( mythid ) enddo #endif - enddo - enddo +C- end bi,bj loops + ENDDO + ENDDO c local copy used in print statements, for c which we always want to do the global sum. @@ -801,95 +361,14 @@ subroutine ecco_cost_final( mythid ) #endif c-- Do global summation for each part of the cost function - -#ifdef ECCO_CTRL_DEPRECATED - _GLOBAL_SUM_RL( f_temp , myThid ) - _GLOBAL_SUM_RL( f_salt , myThid ) - _GLOBAL_SUM_RL( f_temp0, myThid ) - _GLOBAL_SUM_RL( f_salt0, myThid ) - _GLOBAL_SUM_RL( f_temp0smoo, myThid ) - _GLOBAL_SUM_RL( f_salt0smoo, myThid ) - _GLOBAL_SUM_RL( f_etan0, myThid ) - _GLOBAL_SUM_RL( f_uvel0, myThid ) - _GLOBAL_SUM_RL( f_vvel0, myThid ) - _GLOBAL_SUM_RL( f_tauu , myThid ) - _GLOBAL_SUM_RL( f_tauum , myThid ) - _GLOBAL_SUM_RL( f_tauusmoo , myThid ) - _GLOBAL_SUM_RL( f_tauv , myThid ) - _GLOBAL_SUM_RL( f_tauvm , myThid ) - _GLOBAL_SUM_RL( f_tauvsmoo , myThid ) - _GLOBAL_SUM_RL( f_hflux , myThid ) - _GLOBAL_SUM_RL( f_hfluxmm , myThid ) - _GLOBAL_SUM_RL( f_hfluxsmoo , myThid ) - _GLOBAL_SUM_RL( f_sflux , myThid ) - _GLOBAL_SUM_RL( f_sfluxsmoo , myThid ) - _GLOBAL_SUM_RL( f_uwind , myThid ) - _GLOBAL_SUM_RL( f_vwind , myThid ) - _GLOBAL_SUM_RL( f_atemp , myThid ) - _GLOBAL_SUM_RL( f_aqh , myThid ) - _GLOBAL_SUM_RL( f_precip , myThid ) - _GLOBAL_SUM_RL( f_swflux , myThid ) - _GLOBAL_SUM_RL( f_swdown , myThid ) - _GLOBAL_SUM_RL( f_lwflux , myThid ) - _GLOBAL_SUM_RL( f_lwdown , myThid ) - _GLOBAL_SUM_RL( f_uwindm , myThid ) - _GLOBAL_SUM_RL( f_vwindm , myThid ) - _GLOBAL_SUM_RL( f_atempm , myThid ) - _GLOBAL_SUM_RL( f_aqhm , myThid ) - _GLOBAL_SUM_RL( f_precipm , myThid ) - _GLOBAL_SUM_RL( f_swfluxm , myThid ) - _GLOBAL_SUM_RL( f_swdownm , myThid ) - _GLOBAL_SUM_RL( f_lwfluxm , myThid ) - _GLOBAL_SUM_RL( f_lwdownm , myThid ) - _GLOBAL_SUM_RL( f_uwindsmoo , myThid ) - _GLOBAL_SUM_RL( f_vwindsmoo , myThid ) - _GLOBAL_SUM_RL( f_atempsmoo , myThid ) - _GLOBAL_SUM_RL( f_aqhsmoo , myThid ) - _GLOBAL_SUM_RL( f_precipsmoo , myThid ) - _GLOBAL_SUM_RL( f_swfluxsmoo , myThid ) - _GLOBAL_SUM_RL( f_swdownsmoo , myThid ) - _GLOBAL_SUM_RL( f_lwfluxsmoo , myThid ) - _GLOBAL_SUM_RL( f_lwdownsmoo , myThid ) - _GLOBAL_SUM_RL( f_ssh , myThid ) - _GLOBAL_SUM_RL( f_tp , myThid ) - _GLOBAL_SUM_RL( f_ers , myThid ) - _GLOBAL_SUM_RL( f_gfo , myThid ) - _GLOBAL_SUM_RL( f_sst , myThid ) - _GLOBAL_SUM_RL( f_tmi , myThid ) - _GLOBAL_SUM_RL( f_sss , myThid ) - _GLOBAL_SUM_RL( f_bp , myThid ) - _GLOBAL_SUM_RL( f_ies , myThid ) - _GLOBAL_SUM_RL( f_atl , myThid ) - _GLOBAL_SUM_RL( f_ctdt , myThid ) - _GLOBAL_SUM_RL( f_ctds , myThid ) - _GLOBAL_SUM_RL( f_ctdtclim , myThid ) - _GLOBAL_SUM_RL( f_ctdsclim , myThid ) - _GLOBAL_SUM_RL( f_xbt , myThid ) - _GLOBAL_SUM_RL( f_argot , myThid ) - _GLOBAL_SUM_RL( f_argos , myThid ) - _GLOBAL_SUM_RL( f_drifter , myThid ) - _GLOBAL_SUM_RL( f_sdrift , myThid ) - _GLOBAL_SUM_RL( f_tdrift , myThid ) - _GLOBAL_SUM_RL( f_wdrift , myThid ) - _GLOBAL_SUM_RL( f_scatx , myThid ) - _GLOBAL_SUM_RL( f_scaty , myThid ) - _GLOBAL_SUM_RL( f_scatxm , myThid ) - _GLOBAL_SUM_RL( f_scatym , myThid ) - _GLOBAL_SUM_RL( f_curmtr , myThid ) - _GLOBAL_SUM_RL( f_ageos , myThid ) - _GLOBAL_SUM_RL( f_kapgm , myThid ) - _GLOBAL_SUM_RL( f_kapredi, myThid ) - _GLOBAL_SUM_RL( f_diffkr , myThid ) - _GLOBAL_SUM_RL( f_ini_fin , myThid ) - _GLOBAL_SUM_RL( f_eddytau , myThid ) - _GLOBAL_SUM_RL( f_bottomdrag , myThid ) -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) _GLOBAL_SUM_RL( f_obcsn , myThid ) _GLOBAL_SUM_RL( f_obcss , myThid ) _GLOBAL_SUM_RL( f_obcsw , myThid ) _GLOBAL_SUM_RL( f_obcse , myThid ) +# ifdef OBCS_AGEOS_COST_CONTRIBUTION + _GLOBAL_SUM_RL( f_ageos , myThid ) +# endif #endif #ifdef ALLOW_PROFILES do num_file=1,NFILESPROFMAX @@ -922,80 +401,14 @@ subroutine ecco_cost_final( mythid ) enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - _GLOBAL_SUM_RL( no_temp , myThid ) - _GLOBAL_SUM_RL( no_salt , myThid ) - _GLOBAL_SUM_RL( no_temp0, myThid ) - _GLOBAL_SUM_RL( no_salt0, myThid ) - _GLOBAL_SUM_RL( no_etan0, myThid ) - _GLOBAL_SUM_RL( no_uvel0, myThid ) - _GLOBAL_SUM_RL( no_vvel0, myThid ) - _GLOBAL_SUM_RL( no_tauu , myThid ) - _GLOBAL_SUM_RL( no_tauum , myThid ) - _GLOBAL_SUM_RL( no_tauv , myThid ) - _GLOBAL_SUM_RL( no_tauvm , myThid ) - _GLOBAL_SUM_RL( no_hflux , myThid ) - _GLOBAL_SUM_RL( no_hfluxmm , myThid ) - _GLOBAL_SUM_RL( no_sflux , myThid ) - _GLOBAL_SUM_RL( no_sfluxmm , myThid ) - _GLOBAL_SUM_RL( no_uwind , myThid ) - _GLOBAL_SUM_RL( no_vwind , myThid ) - _GLOBAL_SUM_RL( no_atemp , myThid ) - _GLOBAL_SUM_RL( no_aqh , myThid ) - _GLOBAL_SUM_RL( no_precip , myThid ) - _GLOBAL_SUM_RL( no_swflux , myThid ) - _GLOBAL_SUM_RL( no_swdown , myThid ) - _GLOBAL_SUM_RL( no_lwflux , myThid ) - _GLOBAL_SUM_RL( no_lwdown , myThid ) - _GLOBAL_SUM_RL( no_uwindm , myThid ) - _GLOBAL_SUM_RL( no_vwindm , myThid ) - _GLOBAL_SUM_RL( no_atempm , myThid ) - _GLOBAL_SUM_RL( no_aqhm , myThid ) - _GLOBAL_SUM_RL( no_precipm , myThid ) - _GLOBAL_SUM_RL( no_swfluxm , myThid ) - _GLOBAL_SUM_RL( no_swdownm , myThid ) - _GLOBAL_SUM_RL( no_lwfluxm , myThid ) - _GLOBAL_SUM_RL( no_lwdownm , myThid ) - _GLOBAL_SUM_RL( no_ssh , myThid ) - _GLOBAL_SUM_RL( no_tp , myThid ) - _GLOBAL_SUM_RL( no_ers , myThid ) - _GLOBAL_SUM_RL( no_gfo , myThid ) - _GLOBAL_SUM_RL( no_sst , myThid ) - _GLOBAL_SUM_RL( no_tmi , myThid ) - _GLOBAL_SUM_RL( no_sss , myThid ) - _GLOBAL_SUM_RL( no_bp , myThid ) - _GLOBAL_SUM_RL( no_ies , myThid ) - _GLOBAL_SUM_RL( no_atl , myThid ) - _GLOBAL_SUM_RL( no_ctdt , myThid ) - _GLOBAL_SUM_RL( no_ctds , myThid ) - _GLOBAL_SUM_RL( no_ctdtclim , myThid ) - _GLOBAL_SUM_RL( no_ctdsclim , myThid ) - _GLOBAL_SUM_RL( no_xbt , myThid ) - _GLOBAL_SUM_RL( no_argot , myThid ) - _GLOBAL_SUM_RL( no_argos , myThid ) - _GLOBAL_SUM_RL( no_drifter , myThid ) - _GLOBAL_SUM_RL( no_sdrift , myThid ) - _GLOBAL_SUM_RL( no_tdrift , myThid ) - _GLOBAL_SUM_RL( no_wdrift , myThid ) - _GLOBAL_SUM_RL( no_scatx , myThid ) - _GLOBAL_SUM_RL( no_scaty , myThid ) - _GLOBAL_SUM_RL( no_scatxm , myThid ) - _GLOBAL_SUM_RL( no_scatym , myThid ) - _GLOBAL_SUM_RL( no_curmtr , myThid ) - _GLOBAL_SUM_RL( no_ageos , myThid ) - _GLOBAL_SUM_RL( no_kapgm , myThid ) - _GLOBAL_SUM_RL( no_kapredi , myThid ) - _GLOBAL_SUM_RL( no_diffkr , myThid ) - _GLOBAL_SUM_RL( no_ini_fin , myThid ) - _GLOBAL_SUM_RL( no_eddytau , myThid ) - _GLOBAL_SUM_RL( no_bottomdrag , myThid ) -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) _GLOBAL_SUM_RL( no_obcsn , myThid ) _GLOBAL_SUM_RL( no_obcss , myThid ) _GLOBAL_SUM_RL( no_obcsw , myThid ) _GLOBAL_SUM_RL( no_obcse , myThid ) +# ifdef OBCS_AGEOS_COST_CONTRIBUTION + _GLOBAL_SUM_RL( no_ageos , myThid ) +# endif #endif #ifdef ALLOW_PROFILES do num_file=1,NFILESPROFMAX @@ -1028,168 +441,7 @@ subroutine ecco_cost_final( mythid ) enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - write(standardmessageunit,'(A,D22.15)') - & ' --> f_temp =',f_temp - write(standardmessageunit,'(A,D22.15)') - & ' --> f_salt =',f_salt - write(standardmessageunit,'(A,D22.15)') - & ' --> f_temp0 =',f_temp0 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_salt0 =',f_salt0 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_temp0smoo =',f_temp0smoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_salt0smoo =',f_salt0smoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_etan0 =',f_etan0 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_uvel0 =',f_uvel0 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_vvel0 =',f_vvel0 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sst =',f_sst - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tmi =',f_tmi - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sss =',f_sss - write(standardmessageunit,'(A,D22.15)') - & ' --> f_bp =',f_bp - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ies =',f_ies - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ssh =',f_ssh - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tp =',f_tp - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ers =',f_ers - write(standardmessageunit,'(A,D22.15)') - & ' --> f_gfo =',f_gfo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauu =',f_tauu - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauum =',f_tauum - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauusmoo =',f_tauusmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauv =',f_tauv - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauvm =',f_tauvm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tauvsmoo =',f_tauvsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_hflux =',f_hflux - write(standardmessageunit,'(A,D22.15)') - & ' --> f_hfluxmm =',f_hfluxmm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_hfluxsmoo =',f_hfluxsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sflux =',f_sflux - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sfluxmm =',f_sfluxmm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sfluxsmoo =',f_sfluxsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_uwind =',f_uwind - write(standardmessageunit,'(A,D22.15)') - & ' --> f_vwind =',f_vwind - write(standardmessageunit,'(A,D22.15)') - & ' --> f_atemp =',f_atemp - write(standardmessageunit,'(A,D22.15)') - & ' --> f_aqh =',f_aqh - write(standardmessageunit,'(A,D22.15)') - & ' --> f_precip =',f_precip - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swflux =',f_swflux - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swdown =',f_swdown - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwflux =',f_lwflux - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwdown =',f_lwdown - write(standardmessageunit,'(A,D22.15)') - & ' --> f_uwindm =',f_uwindm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_vwindm =',f_vwindm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_atempm =',f_atempm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_aqhm =',f_aqhm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_precipm =',f_precipm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swfluxm =',f_swfluxm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwfluxm =',f_lwfluxm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swdownm =',f_swdownm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwdownm =',f_lwdownm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_uwindsmoo =',f_uwindsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_vwindsmoo =',f_vwindsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_atempsmoo =',f_atempsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_aqhsmoo =',f_aqhsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_precipsmoo =',f_precipsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swfluxsmoo =',f_swfluxsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwfluxsmoo =',f_lwfluxsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_swdownsmoo =',f_swdownsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_lwdownsmoo =',f_lwdownsmoo - write(standardmessageunit,'(A,D22.15)') - & ' --> f_atl =',f_atl - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ctdt =',f_ctdt - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ctds =',f_ctds - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ctdtclim=',f_ctdtclim - write(standardmessageunit,'(A,D22.15)') - & ' --> f_ctdsclim=',f_ctdsclim - write(standardmessageunit,'(A,D22.15)') - & ' --> f_xbt =',f_xbt - write(standardmessageunit,'(A,D22.15)') - & ' --> f_argot =',f_argot - write(standardmessageunit,'(A,D22.15)') - & ' --> f_argos =',f_argos - write(standardmessageunit,'(A,D22.15)') - & ' --> f_drifter =',f_drifter - write(standardmessageunit,'(A,D22.15)') - & ' --> f_tdrift =',f_tdrift - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sdrift =',f_sdrift - write(standardmessageunit,'(A,D22.15)') - & ' --> f_wdrift =',f_wdrift - write(standardmessageunit,'(A,D22.15)') - & ' --> f_scatx =',f_scatx - write(standardmessageunit,'(A,D22.15)') - & ' --> f_scaty =',f_scaty - write(standardmessageunit,'(A,D22.15)') - & ' --> f_scatxm =',f_scatxm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_scatym =',f_scatym - write(standardmessageunit,'(A,D22.15)') - & ' --> f_curmtr =',f_curmtr - write(standardmessageunit,'(A,D22.15)') - & ' --> f_kapgm =',f_kapgm - write(standardmessageunit,'(A,D22.15)') - & ' --> f_kapredi =',f_kapredi - write(standardmessageunit,'(A,D22.15)') - & ' --> f_diffkr =',f_diffkr - write(standardmessageunit,'(A,D22.15)') - & ' --> f_eddytau =', f_eddytau - write(standardmessageunit,'(A,D22.15)') - & ' --> f_bottomdrag =', f_bottomdrag -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) write(standardmessageunit,'(A,D22.15)') & ' --> f_obcsn =',f_obcsn write(standardmessageunit,'(A,D22.15)') @@ -1198,7 +450,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_obcsw =',f_obcsw write(standardmessageunit,'(A,D22.15)') & ' --> f_obcse =',f_obcse -# ifdef ECCO_CTRL_DEPRECATED +# ifdef OBCS_AGEOS_COST_CONTRIBUTION write(standardmessageunit,'(A,D22.15)') & ' --> f_ageos =',f_ageos # endif @@ -1212,7 +464,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_profiles =',f_profiles(num_file,num_var), & num_file, num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo enddo @@ -1222,7 +474,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_profiles_mean =',f_profiles_mean(num_var), & num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo endif @@ -1234,7 +486,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_gencost =',f_gencost(num_var), & num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo #endif @@ -1245,7 +497,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_gentim2d =',f_gentim2d(num_var), & num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo #endif @@ -1256,7 +508,7 @@ subroutine ecco_cost_final( mythid ) & ' --> f_genarr2d =',f_genarr2d(num_var), & num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo #endif @@ -1267,38 +519,13 @@ subroutine ecco_cost_final( mythid ) & ' --> f_genarr3d =',f_genarr3d(num_var), & num_var call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) endif enddo #endif -#ifdef ECCO_CTRL_DEPRECATED - c-- Each process has calculated the global part for itself. - glofc = glofc - & + mult_hmean*objf_hmean - no_hmean = num_hmean - -cph( -cph this is from annual mean misfits; -cph simple sums and squares needed to be taken at annual intervals - f_hfluxmm = f_hfluxmm + objf_hfluxmm - f_hfluxmm2 = mult_hfluxmm*f_hfluxmm -c - f_sfluxmm = f_sfluxmm + objf_sfluxmm - f_sfluxmm2 = mult_sfluxmm*f_sfluxmm -c - f_transp = mult_transp*objf_transp - - no_transp = num_transp -cph) - glofc = glofc - & + f_hfluxmm2 + f_sfluxmm2 - & + f_transp - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifndef ALLOW_COST cgf this sum is now done in cost_final if allow_cost fc = fc + glofc @@ -1309,20 +536,10 @@ subroutine ecco_cost_final( mythid ) C only master thread of master CPU open and write to file IF ( MASTER_CPU_THREAD(myThid) ) THEN -#ifdef ECCO_CTRL_DEPRECATED - write(standardmessageunit,'(A,D22.15)') - & ' --> f_hfluxmm2 =',f_hfluxmm2 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_sfluxmm2 =',f_sfluxmm2 - write(standardmessageunit,'(A,D22.15)') - & ' --> f_transp =',f_transp - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_hmean =',objf_hmean -#endif /* ECCO_CTRL_DEPRECATED */ write(msgBuf,'(A,D22.15)') & ' --> fc =', locfc call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) write(cfname,'(A,i4.4)') 'costfunction',eccoiter open(unit=ifc,file=cfname) @@ -1333,180 +550,7 @@ subroutine ecco_cost_final( mythid ) write(ifc,'(A,2D22.15)') #endif & 'fc =', locfc, 0. -#ifdef ECCO_CTRL_DEPRECATED - write(ifc,'(A,2D22.15)') - & 'f_temp =', f_temp, no_temp - write(ifc,'(A,2D22.15)') - & 'f_salt =', f_salt, no_salt - write(ifc,'(A,2D22.15)') - & 'f_temp0 =', f_temp0, no_temp0 - write(ifc,'(A,2D22.15)') - & 'f_salt0 =', f_salt0, no_salt0 - write(ifc,'(A,2D22.15)') - & 'f_temp0smoo =', f_temp0smoo, no_temp0 - write(ifc,'(A,2D22.15)') - & 'f_salt0smoo =', f_salt0smoo, no_salt0 - write(ifc,'(A,2D22.15)') - & 'f_etan0 =', f_etan0, no_etan0 - write(ifc,'(A,2D22.15)') - & 'f_uvel0 =', f_uvel0, no_uvel0 - write(ifc,'(A,2D22.15)') - & 'f_vvel0 =', f_vvel0, no_vvel0 - write(ifc,'(A,2D22.15)') - & 'f_tauu =', f_tauu, no_tauu - write(ifc,'(A,2D22.15)') - & 'f_tauum =', f_tauum, no_tauum - write(ifc,'(A,2D22.15)') - & 'f_tauusmoo =', f_tauusmoo, no_tauu - write(ifc,'(A,2D22.15)') - & 'f_tauv =', f_tauv, no_tauv - write(ifc,'(A,2D22.15)') - & 'f_tauvm =', f_tauvm, no_tauvm - write(ifc,'(A,2D22.15)') - & 'f_tauvsmoo =', f_tauvsmoo, no_tauv - write(ifc,'(A,2D22.15)') - & 'f_hflux =', f_hflux, no_hflux - write(ifc,'(A,2D22.15)') - & 'f_hfluxm =', f_hfluxm, no_hfluxm - write(ifc,'(A,2D22.15)') - & 'f_hfluxmm =', f_hfluxmm, no_hfluxmm - write(ifc,'(A,2D22.15)') - & 'f_hfluxmm2 =', f_hfluxmm2, mult_hfluxmm - write(ifc,'(A,2D22.15)') - & 'f_hfluxsmoo =', f_hfluxsmoo, no_hflux - write(ifc,'(A,2D22.15)') - & 'f_sflux =', f_sflux, no_sflux - write(ifc,'(A,2D22.15)') - & 'f_sfluxm =', f_sfluxm, no_sfluxm - write(ifc,'(A,2D22.15)') - & 'f_sfluxmm =', f_sfluxmm, no_sfluxmm - write(ifc,'(A,2D22.15)') - & 'f_sfluxmm2 =', f_sfluxmm2, mult_sfluxmm - write(ifc,'(A,2D22.15)') - & 'f_sfluxsmoo =', f_sfluxsmoo, no_sflux - write(ifc,'(A,2D22.15)') - & 'f_uwind =', f_uwind, no_uwind - write(ifc,'(A,2D22.15)') - & 'f_vwind =', f_vwind, no_vwind - write(ifc,'(A,2D22.15)') - & 'f_atemp =', f_atemp, no_atemp - write(ifc,'(A,2D22.15)') - & 'f_aqh =', f_aqh, no_aqh - write(ifc,'(A,2D22.15)') - & 'f_precip =', f_precip, no_precip - write(ifc,'(A,2D22.15)') - & 'f_swflux =', f_swflux, no_swflux - write(ifc,'(A,2D22.15)') - & 'f_lwflux =', f_lwflux, no_lwflux - write(ifc,'(A,2D22.15)') - & 'f_swdown =', f_swdown, no_swdown - write(ifc,'(A,2D22.15)') - & 'f_lwdown =', f_lwdown, no_lwdown - write(ifc,'(A,2D22.15)') - & 'f_uwindm =', f_uwindm, no_uwindm - write(ifc,'(A,2D22.15)') - & 'f_vwindm =', f_vwindm, no_vwindm - write(ifc,'(A,2D22.15)') - & 'f_atempm =', f_atempm, no_atempm - write(ifc,'(A,2D22.15)') - & 'f_aqhm =', f_aqhm, no_aqhm - write(ifc,'(A,2D22.15)') - & 'f_precipm =', f_precipm, no_precipm - write(ifc,'(A,2D22.15)') - & 'f_swfluxm =', f_swfluxm, no_swfluxm - write(ifc,'(A,2D22.15)') - & 'f_lwfluxm =', f_lwfluxm, no_lwfluxm - write(ifc,'(A,2D22.15)') - & 'f_swdownm =', f_swdownm, no_swdownm - write(ifc,'(A,2D22.15)') - & 'f_lwdownm =', f_lwdownm, no_lwdownm - write(ifc,'(A,2D22.15)') - & 'f_uwindsmoo =', f_uwindsmoo, no_uwind - write(ifc,'(A,2D22.15)') - & 'f_vwindsmoo =', f_vwindsmoo, no_vwind - write(ifc,'(A,2D22.15)') - & 'f_atempsmoo =', f_atempsmoo, no_atemp - write(ifc,'(A,2D22.15)') - & 'f_aqhsmoo =', f_aqhsmoo, no_aqh - write(ifc,'(A,2D22.15)') - & 'f_precipsmoo =', f_precipsmoo, no_precip - write(ifc,'(A,2D22.15)') - & 'f_swfluxsmoo =', f_swfluxsmoo, no_swflux - write(ifc,'(A,2D22.15)') - & 'f_lwfluxsmoo =', f_lwfluxsmoo, no_lwflux - write(ifc,'(A,2D22.15)') - & 'f_swdownsmoo =', f_swdownsmoo, no_swdown - write(ifc,'(A,2D22.15)') - & 'f_lwdownsmoo =', f_lwdownsmoo, no_lwdown - write(ifc,'(A,2D22.15)') - & 'f_ssh =', f_ssh, no_ssh - write(ifc,'(A,2D22.15)') - & 'f_tp =', f_tp, no_tp - write(ifc,'(A,2D22.15)') - & 'f_ers =', f_ers, no_ers - write(ifc,'(A,2D22.15)') - & 'f_gfo =', f_gfo, no_gfo - write(ifc,'(A,2D22.15)') - & 'f_sst =', f_sst, no_sst - write(ifc,'(A,2D22.15)') - & 'f_tmi =', f_tmi, no_tmi - write(ifc,'(A,2D22.15)') - & 'f_sss =', f_sss, no_sss - write(ifc,'(A,2D22.15)') - & 'f_bp =', f_bp, no_bp - write(ifc,'(A,2D22.15)') - & 'f_ies =', f_ies, no_ies - write(ifc,'(A,2D22.15)') - & 'f_atl =', f_atl, no_atl - write(ifc,'(A,2D22.15)') - & 'f_ctdt =', f_ctdt, no_ctdt - write(ifc,'(A,2D22.15)') - & 'f_ctds =', f_ctds, no_ctds - write(ifc,'(A,2D22.15)') - & 'f_ctdtclim =', f_ctdtclim, no_ctdtclim - write(ifc,'(A,2D22.15)') - & 'f_ctdsclim =', f_ctdsclim, no_ctdsclim - write(ifc,'(A,2D22.15)') - & 'f_xbt =', f_xbt, no_xbt - write(ifc,'(A,2D22.15)') - & 'f_argot =', f_argot, no_argot - write(ifc,'(A,2D22.15)') - & 'f_argos =', f_argos, no_argos - write(ifc,'(A,2D22.15)') - & 'objf_hmean =', objf_hmean, no_hmean - write(ifc,'(A,2D22.15)') - & 'f_drifter =', f_drifter, no_drifter - write(ifc,'(A,2D22.15)') - & 'f_sdrift =', f_sdrift, no_sdrift - write(ifc,'(A,2D22.15)') - & 'f_tdrift =', f_tdrift, no_tdrift - write(ifc,'(A,2D22.15)') - & 'f_wdrift =', f_wdrift, no_wdrift - write(ifc,'(A,2D22.15)') - & 'f_scatx =', f_scatx, no_scatx - write(ifc,'(A,2D22.15)') - & 'f_scaty =', f_scaty, no_scaty - write(ifc,'(A,2D22.15)') - & 'f_scatxm =', f_scatxm, no_scatxm - write(ifc,'(A,2D22.15)') - & 'f_scatym =', f_scatym, no_scatym - write(ifc,'(A,2D22.15)') - & 'f_kapgm =', f_kapgm, no_kapgm - write(ifc,'(A,2D22.15)') - & 'f_kapredi =', f_kapredi, no_kapredi - write(ifc,'(A,2D22.15)') - & 'f_diffkr =', f_diffkr, no_diffkr - write(ifc,'(A,2D22.15)') - & 'f_ini_fin =', f_ini_fin, no_ini_fin - write(ifc,'(A,2D22.15)') - & 'f_eddytau =', f_eddytau, no_eddytau - write(ifc,'(A,2D22.15)') - & 'f_bottomdrag =', f_bottomdrag, no_bottomdrag - write(ifc,'(A,2D22.15)') - & 'f_transp =', f_transp, no_transp -#endif /* ECCO_CTRL_DEPRECATED */ - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) +#if (defined ALLOW_CTRL && defined ALLOW_OBCS) write(ifc,'(A,2D22.15)') & 'f_obcsn =', f_obcsn, no_obcsn write(ifc,'(A,2D22.15)') @@ -1515,7 +559,7 @@ subroutine ecco_cost_final( mythid ) & 'f_obcsw =', f_obcsw, no_obcsw write(ifc,'(A,2D22.15)') & 'f_obcse =', f_obcse, no_obcse -# ifdef ECCO_CTRL_DEPRECATED +# ifdef OBCS_AGEOS_COST_CONTRIBUTION write(ifc,'(A,2D22.15)') & 'f_ageos =', f_ageos, no_ageos # endif @@ -1605,26 +649,21 @@ subroutine ecco_cost_final( mythid ) ENDIF -c#ifdef ECCO_CTRL_DEPRECATED -c call cost_trans_merid( mythid ) -c call cost_trans_zonal( mythid ) -c#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ECCO_VERBOSE write(msgBuf,'(a,D22.15)') & ' cost_Final: final cost function = ',locfc call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) write(msgBuf,'(a)') ' ' call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) write(msgBuf,'(a)') & ' cost function evaluation finished.' call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) write(msgBuf,'(a)') ' ' call print_message( msgBuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) + & SQUEEZE_RIGHT, myThid ) #endif return diff --git a/pkg/ecco/ecco_cost_init_barfiles.F b/pkg/ecco/ecco_cost_init_barfiles.F index ea9804bb2d..fa6752fe08 100644 --- a/pkg/ecco/ecco_cost_init_barfiles.F +++ b/pkg/ecco/ecco_cost_init_barfiles.F @@ -1,8 +1,5 @@ #include "ECCO_OPTIONS.h" #include "AD_CONFIG.h" -#ifdef ALLOW_SEAICE -# include "SEAICE_OPTIONS.h" -#endif #ifdef ALLOW_CTRL # include "CTRL_OPTIONS.h" #endif @@ -31,11 +28,8 @@ subroutine ecco_cost_init_barfiles( mythid ) #include "PARAMS.h" #ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -# include "ecco_cost.h" -# else -# include "ecco.h" -# endif +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_CTRL # include "optim.h" @@ -43,9 +37,6 @@ subroutine ecco_cost_init_barfiles( mythid ) # include "ctrl.h" # include "ctrl_dummy.h" #endif -#ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -#endif c == routine arguments == @@ -60,58 +51,15 @@ subroutine ecco_cost_init_barfiles( mythid ) integer jmin,jmax integer imin,imax - integer ilps, ils, ilt, irec + integer ilt, irec #ifdef ALLOW_GENCOST_CONTRIBUTION character*(128) fname_gencostbar character*(128) adfname_gencostbar #endif /* ALLOW_GENCOST_CONTRIBUTION */ -#ifndef ALLOW_CTRL - _RL tmpfld2d (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL tmpfld2d (1-olx:snx+olx,1-oly:sny+oly, nsx,nsy) _RL tmpfld3d (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#ifdef ECCO_CTRL_DEPRECATED - character*(128) fnamepsbar - character*(128) fnametbar - character*(128) fnamesbar - character*(128) fnamesstbar - character*(128) fnameubar - character*(128) fnamevbar - character*(128) fnamewbar - character*(128) fnametauxbar - character*(128) fnametauybar - character*(128) fnamehfluxmeanbar - character*(128) fnamesfluxmeanbar - character*(128) fnamebpbar - character*(128) fnamesmrareabar - character*(128) fnamesmrsstbar - character*(128) fnamesmrsssbar - character*(128) fnameiestaubar -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(128) fnamesigmaRbar -#endif - character*(128) adfnamepsbar - character*(128) adfnametbar - character*(128) adfnamesbar - character*(128) adfnamesstbar - character*(128) adfnameubar - character*(128) adfnamevbar - character*(128) adfnamewbar - character*(128) adfnametauxbar - character*(128) adfnametauybar - character*(128) adfnamehfluxmeanbar - character*(128) adfnamesfluxmeanbar - character*(128) adfnamebpbar - character*(128) adfnamesmrareabar - character*(128) adfnamesmrsstbar - character*(128) adfnamesmrsssbar -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(128) adfnamesigmaRbar -#endif - character*(128) adfnameiestaubar -#endif /* ECCO_CTRL_DEPRECATED */ c == external functions == @@ -150,311 +98,6 @@ subroutine ecco_cost_init_barfiles( mythid ) enddo enddo -#ifdef ECCO_CTRL_DEPRECATED -# -#ifdef ALLOW_SSH_COST_CONTRIBUTION - IF (using_cost_altim) THEN -c-- Save psbar on file. - ilps=ilnblnk( psbarfile ) - write(fnamepsbar,'(2a,i10.10)') - & psbarfile(1:ilps), '.', eccoiter - write(adfnamepsbar,'(3a,i10.10)') - & yadprefix, psbarfile(1:ilps), '.', eccoiter - - do irec = 1, ndaysrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamepsbar, tmpfld2d, irec, - & eccoiter,mythid, xx_psbar_mean_dummy ) -#endif - enddo - ENDIF -#endif /* ALLOW_SSH_COST_CONTRIBUTION */ - -#ifdef ALLOW_BP_COST_CONTRIBUTION - IF (using_cost_bp) THEN -c-- Save bpbar on file. - ilps=ilnblnk( bpbarfile ) - write(fnamebpbar,'(2a,i10.10)') - & bpbarfile(1:ilps), '.', eccoiter - write(adfnamebpbar,'(3a,i10.10)') - & yadprefix, bpbarfile(1:ilps), '.', eccoiter - - do irec = 1, nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamebpbar, tmpfld2d, irec, - & eccoiter,mythid, xx_bpbar_mean_dummy ) -#endif - enddo - ENDIF ! IF (using_cost_bp) THEN -#endif - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -c-- Save sigmaRbar on file. - ilt=ilnblnk( sigmaRbarfile ) - write(fnamesigmaRbar,'(2a,i10.10)') - & sigmaRbarfile(1:ilt), '.', eccoiter - write(adfnamesigmaRbar,'(3a,i10.10)') - & yadprefix, sigmaRbarfile(1:ilt), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xyz( adfnamesigmaRbar, tmpfld3d, irec, - & eccoiter, mythid, xx_sigmaRbar_mean_dummy ) -#endif - enddo -#endif - -#if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDTCLIM_COST_CONTRIBUTION) || \ - defined (ALLOW_XBT_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -c-- Save tbar on file. - ilt=ilnblnk( tbarfile ) - write(fnametbar,'(2a,i10.10)') - & tbarfile(1:ilt), '.', eccoiter - write(adfnametbar,'(3a,i10.10)') - & yadprefix, tbarfile(1:ilt), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xyz( adfnametbar, tmpfld3d, irec, - & eccoiter, mythid, xx_tbar_mean_dummy ) -#endif - enddo -#else -#ifdef ALLOW_SST_COST_CONTRIBUTION -c-- Save tbar on file. - ilt=ilnblnk( tbarfile ) - write(fnametbar,'(2a,i10.10)') - & tbarfile(1:ilt), '.', eccoiter - write(adfnametbar,'(3a,i10.10)') - & yadprefix, tbarfile(1:ilt), '.', eccoiter - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnametbar, tmpfld2d, irec, - & eccoiter, mythid, xx_tbar_mean_dummy ) -#endif - enddo -#endif -#endif - -#ifdef ALLOW_DAILYSST_COST_CONTRIBUTION - IF (using_cost_sst) THEN -cph#ifdef ALLOW_SEAICE_COST_AREASST -c-- Save tbar on file. - ilt=ilnblnk( sstbarfile ) - write(fnamesstbar,'(2a,i10.10)') - & sstbarfile(1:ilt), '.', eccoiter - write(adfnamesstbar,'(3a,i10.10)') - & yadprefix, sstbarfile(1:ilt), '.', eccoiter - do irec = 1,ndaysrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamesstbar, tmpfld2d, irec, - & eccoiter, mythid, xx_sstbar_mean_dummy ) -#endif - enddo - ENDIF ! IF (using_cost_sst) THEN -#endif - -#if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDS_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDSCLIM_COST_CONTRIBUTION) || \ - defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -c-- Save sbar. - ils=ilnblnk( sbarfile ) - write(fnamesbar,'(2a,i10.10)') - & sbarfile(1:ils), '.', eccoiter - write(adfnamesbar,'(3a,i10.10)') - & yadprefix, sbarfile(1:ils), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xyz( adfnamesbar, tmpfld3d, irec, - & eccoiter, mythid, xx_sbar_mean_dummy) -#endif - enddo -#else -#ifdef ALLOW_SST_COST_CONTRIBUTION -c-- Save sbar. - ils=ilnblnk( sbarfile ) - write(fnamesbar,'(2a,i10.10)') - & sbarfile(1:ils), '.', eccoiter - write(adfnamesbar,'(3a,i10.10)') - & yadprefix, sbarfile(1:ils), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamesbar, tmpfld2d, irec, - & eccoiter, mythid, xx_sbar_mean_dummy) -#endif - enddo -#endif -#endif - -#if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCS_COST_CONTRIBUTION)) -cph There is a mismatch between the cost_drifer and the -cph cost_obcs usage of ubar, vbar. -cph cost_obcs refers to monthly means, cost_drifer to total mean. -cph Needs to be updated for cost_drifer. - -c-- Save ubar and vbar. - ils=ilnblnk( ubarfile ) - write(fnameubar,'(2a,i10.10)') - & ubarfile(1:ils), '.', eccoiter - write(fnamevbar,'(2a,i10.10)') - & vbarfile(1:ils), '.', eccoiter - write(adfnameubar,'(3a,i10.10)') - & yadprefix, ubarfile(1:ils), '.', eccoiter - write(adfnamevbar,'(3a,i10.10)') - & yadprefix, vbarfile(1:ils), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xyz( adfnameubar, tmpfld3d, irec, - & eccoiter, mythid, xx_ubar_mean_dummy) - call active_write_xyz( adfnamevbar, tmpfld3d, irec, - & eccoiter, mythid, xx_vbar_mean_dummy) -#endif - enddo -#endif - -#ifdef ALLOW_DRIFTW_COST_CONTRIBUTION -c-- Save wbar - ils=ilnblnk( wbarfile ) - write(fnamewbar,'(2a,i10.10)') - & wbarfile(1:ils), '.', eccoiter - write(adfnamewbar,'(3a,i10.10)') - & yadprefix, wbarfile(1:ils), '.', eccoiter - - do irec = 1,nmonsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xyz( adfnamewbar, tmpfld3d, irec, - & eccoiter, mythid, xx_wbar_mean_dummy) -#endif - enddo -#endif - - IF (using_cost_scat) THEN -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) -c-- Save tauxbar, tauybar on file. - ilps=ilnblnk( tauxbarfile ) - write(fnametauxbar,'(2a,i10.10)') - & tauxbarfile(1:ilps), '.', eccoiter - write(adfnametauxbar,'(3a,i10.10)') - & yadprefix, tauxbarfile(1:ilps), '.', eccoiter - ilps=ilnblnk( tauybarfile ) - write(fnametauybar,'(2a,i10.10)') - & tauybarfile(1:ilps), '.', eccoiter - write(adfnametauybar,'(3a,i10.10)') - & yadprefix, tauybarfile(1:ilps), '.', eccoiter - -#ifdef ALLOW_SCAT_COST_CONTRIBUTION - do irec = 1, nmonsrec -#else - do irec = 1, ndaysrec -#endif -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnametauxbar, tmpfld2d, irec, - & eccoiter,mythid, xx_taux_mean_dummy ) - call active_write_xy( adfnametauybar, tmpfld2d, irec, - & eccoiter,mythid, xx_tauy_mean_dummy ) -#endif - enddo -#endif - ENDIF ! IF (using_cost_scat) THEN - -#ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION -c-- Save hfluxmeanbar on file. - ilps=ilnblnk( hfluxmeanbarfile ) - write(fnamehfluxmeanbar,'(2a,i10.10)') - & hfluxmeanbarfile(1:ilps), '.', eccoiter - write(adfnamehfluxmeanbar,'(3a,i10.10)') - & yadprefix, hfluxmeanbarfile(1:ilps), '.', eccoiter - - do irec = 1, nyearsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamehfluxmeanbar, tmpfld2d, irec, - & eccoiter,mythid, xx_hflux_mean_dummy ) -#endif - enddo -#endif - -#ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION -c-- Save sfluxmeanbar on file. - ilps=ilnblnk( sfluxmeanbarfile ) - write(fnamesfluxmeanbar,'(2a,i10.10)') - & sfluxmeanbarfile(1:ilps), '.', eccoiter - write(adfnamesfluxmeanbar,'(3a,i10.10)') - & yadprefix, sfluxmeanbarfile(1:ilps), '.', eccoiter - - do irec = 1, nyearsrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamesfluxmeanbar, tmpfld2d, irec, - & eccoiter,mythid, xx_sflux_mean_dummy ) -#endif - enddo -#endif - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION - ilps=ilnblnk( iestaubarfile ) - write(fnameiestaubar,'(2a,i10.10)') - & iestaubarfile(1:ilps), '.', eccoiter - write(adfnameiestaubar,'(3a,i10.10)') - & yadprefix, iestaubarfile(1:ilps), '.', eccoiter - do irec = 1, ndaysrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnameiestaubar, tmpfld2d, irec, - & eccoiter,mythid, xx_iestaubar_mean_dummy ) -#endif - enddo - -#endif - -#endif /* ECCO_CTRL_DEPRECATED */ - -#ifdef ALLOW_SEAICE - if (useSEAICE) then - -#ifdef ALLOW_SEAICE_COST_SMR_AREA -c initialize smr area bar - ilps=ilnblnk( smrareabarfile ) - write(fnamesmrareabar,'(2a,i10.10)') - & smrareabarfile(1:ilps), '.', eccoiter - write(adfnamesmrareabar,'(3a,i10.10)') - & yadprefix, smrareabarfile(1:ilps), '.', eccoiter -c initialize smr sst bar - ilps=ilnblnk( smrsstbarfile ) - write(fnamesmrsstbar,'(2a,i10.10)') - & smrsstbarfile(1:ilps), '.', eccoiter - write(adfnamesmrsstbar,'(3a,i10.10)') - & yadprefix, smrsstbarfile(1:ilps), '.', eccoiter -c initialize smr sss bar - ilps=ilnblnk( smrsssbarfile ) - write(fnamesmrsssbar,'(2a,i10.10)') - & smrsssbarfile(1:ilps), '.', eccoiter - write(adfnamesmrsssbar,'(3a,i10.10)') - & yadprefix, smrsssbarfile(1:ilps), '.', eccoiter - - do irec = 1, ndaysrec -#ifdef ALLOW_ADJOINT_RUN - call active_write_xy( adfnamesmrareabar, tmpfld2d, irec, - & eccoiter,mythid, xx_smrareabar_mean_dummy ) - call active_write_xy( adfnamesmrsstbar, tmpfld3d, irec, - & eccoiter,mythid, xx_smrsstbar_mean_dummy ) - call active_write_xy( adfnamesmrsssbar, tmpfld3d, irec, - & eccoiter,mythid, xx_smrsssbar_mean_dummy ) -#endif - enddo -#endif /* ALLOW_SEAICE_COST_SMR_AREA */ - - endif -#endif /* ALLOW_SEAICE */ - #ifdef ALLOW_GENCOST_CONTRIBUTION c-- Save gencost_barfile on file. do k=1,NGENCOST @@ -486,4 +129,3 @@ subroutine ecco_cost_init_barfiles( mythid ) return end - diff --git a/pkg/ecco/ecco_cost_init_fixed.F b/pkg/ecco/ecco_cost_init_fixed.F index a764b1c673..95c2f6953f 100644 --- a/pkg/ecco/ecco_cost_init_fixed.F +++ b/pkg/ecco/ecco_cost_init_fixed.F @@ -1,7 +1,10 @@ #include "ECCO_OPTIONS.h" #include "AD_CONFIG.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif - subroutine ecco_cost_init_fixed( mythid ) + subroutine ecco_cost_init_fixed( myThid ) c ================================================================== c SUBROUTINE ecco_cost_init_fixed @@ -39,11 +42,8 @@ subroutine ecco_cost_init_fixed( mythid ) #include "cal.h" #endif #ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -# include "ecco_cost.h" -# else -# include "ecco.h" -# endif +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_CTRL # include "optim.h" @@ -51,24 +51,20 @@ subroutine ecco_cost_init_fixed( mythid ) c == routine arguments == - integer mythid + integer myThid c == local variables == integer k logical exst - _RL dummy - integer tempDate1(4) - integer tempDate2(4) - integer gwunit - integer il, ilo,ihi - character*(max_len_mbuf) msgbuf - integer irec _RL missingObsFlag PARAMETER ( missingObsFlag = 1. _d 23 ) +#ifdef ALLOW_GENCOST_1D + character*(MAX_LEN_MBUF) msgBuf + integer ilo, ihi, irec, gwunit +#endif #ifdef ALLOW_GENCOST_CONTRIBUTION - integer bi,bj - integer i,j,kk,k2 + integer k2 #endif c == external functions == @@ -96,80 +92,19 @@ subroutine ecco_cost_init_fixed( mythid ) c-- The number of monthly and daily averages generated by the c-- current model integration. - nyearsrec = cal_IntYears( mythid ) - nmonsrec = cal_IntMonths( mythid ) - ndaysrec = cal_IntDays( mythid ) + nyearsrec = cal_IntYears( myThid ) + nmonsrec = cal_IntMonths( myThid ) + ndaysrec = cal_IntDays( myThid ) _BEGIN_MASTER( myThid ) -#ifdef ECCO_CTRL_DEPRECATED - -c-- Get the complete dates of the ... -c-- ... TMI data. - if ( tmidatfile .ne. ' ' ) - & call cal_FullDate( tmistartdate1, tmistartdate2, - & tmistartdate, mythid ) -c-- ... SST data. - if ( sstdatfile .ne. ' ' ) - & call cal_FullDate( sststartdate1, sststartdate2, - & sststartdate, mythid ) -c-- ... SSS data. - if ( sssdatfile .ne. ' ' ) - & call cal_FullDate( sssstartdate1, sssstartdate2, - & sssstartdate, mythid ) -c-- ... BP data. - if ( bpdatfile .ne. ' ' ) - & call cal_FullDate( bpstartdate1, bpstartdate2, - & bpstartdate, mythid ) -c-- ... IES data. - if ( iesdatfile .ne. ' ' ) - & call cal_FullDate( iesstartdate1, iesstartdate2, - & iesstartdate, mythid ) -#ifdef ALLOW_SSH_MEAN_COST_CONTRIBUTION -c-- ... mdt data. - if ( mdtdatfile .ne. ' ' ) - & call cal_FullDate( mdtstartdate1, mdtstartdate2, - & mdtstartdate, mythid ) -c-- ... mdt data. - if ( mdtdatfile .ne. ' ' ) - & call cal_FullDate( mdtenddate1, mdtenddate2, - & mdtenddate, mythid ) -#endif /* ALLOW_SSH_MEAN_COST_CONTRIBUTION */ -c-- ... T/P data. - if ( topexfile .ne. ' ' ) - & call cal_FullDate( topexstartdate1, topexstartdate2, - & topexstartdate, mythid ) -c-- ... ERS data. - if ( ersfile .ne. ' ' ) - & call cal_FullDate( ersstartdate1, ersstartdate2, - & ersstartdate, mythid ) -c-- ... GFO data. - if ( gfofile .ne. ' ' ) - & call cal_FullDate( gfostartdate1, gfostartdate2, - & gfostartdate, mythid ) -c-- ... SCAT data. - if ( scatxdatfile .ne. ' ' ) - & call cal_FullDate( scatstartdate1, scatstartdate2, - & scatxstartdate, mythid ) - if ( scatydatfile .ne. ' ' ) - & call cal_FullDate( scatstartdate1, scatstartdate2, - & scatystartdate, mythid ) -c-- ... ARGO data. - if ( argotfile .ne. ' ' ) - & call cal_FullDate( argotstartdate1, argotstartdate2, - & argotstartdate, mythid ) - if ( argosfile .ne. ' ' ) - & call cal_FullDate( argosstartdate1, argotstartdate2, - & argosstartdate, mythid ) -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_GENCOST_CONTRIBUTION do k = 1, NGENCOST -c-- skip averaging when several cost terms use the +c-- skip averaging when several cost terms use the c same barfile or when barfile is undefined gencost_barskip(k)=.FALSE. - if ( gencost_barfile(k).EQ.' ' ) + if ( gencost_barfile(k).EQ.' ' ) & gencost_barskip(k)=.TRUE. do k2 = 1,k-1 if ( gencost_barfile(k2).EQ.gencost_barfile(k) ) @@ -209,10 +144,10 @@ subroutine ecco_cost_init_fixed( mythid ) if (gencost_startdate1(k).GT.0) then call cal_FullDate( & gencost_startdate1(k), gencost_startdate2(k), - & gencost_startdate(1,k), mythid ) + & gencost_startdate(1,k), myThid ) else call cal_CopyDate(modelStartDate, - & gencost_startdate(1,k),mythid) + & gencost_startdate(1,k),myThid) gencost_startdate1(k)=startdate_1 gencost_startdate2(k)=startdate_2 endif @@ -220,10 +155,10 @@ subroutine ecco_cost_init_fixed( mythid ) if (gencost_enddate1(k).GT.0) then call cal_FullDate( & gencost_enddate1(k), gencost_enddate2(k), - & gencost_enddate(1,k), mythid ) + & gencost_enddate(1,k), myThid ) else call cal_CopyDate(modelEndDate, - & gencost_enddate(1,k),mythid) + & gencost_enddate(1,k),myThid) endif #ifdef ALLOW_GENCOST_1D @@ -266,7 +201,7 @@ subroutine ecco_cost_init_fixed( mythid ) enddo !do k = 1, NGENCOST #endif /* ALLOW_GENCOST_CONTRIBUTION */ - _END_MASTER( mythid ) + _END_MASTER( myThid ) #endif /* ALLOW_CAL */ @@ -274,7 +209,7 @@ subroutine ecco_cost_init_fixed( mythid ) c-- Get the weights that are to be used for the individual cost c-- function contributions. - call ecco_cost_weights( mythid ) + call ecco_cost_weights( myThid ) c-- Initialise adjoint of monthly mean files calculated c-- in cost_averagesfields (and their ad...). @@ -288,129 +223,16 @@ subroutine ecco_cost_init_fixed( mythid ) cph!!! inquire( file='costfinal', exist=exst ) if ( .NOT. exst) then - call ecco_cost_init_barfiles( mythid ) + call ecco_cost_init_barfiles( myThid ) endif #endif -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION - do irec = 1, ndaysrec - wtransp(irec) = 0. _d 0 - transpobs(irec) = 0. _d 0 - enddo - - if ( costTranspDataFile .NE. ' ' ) then - _BEGIN_MASTER(myThid) - ilo = ifnblnk(costTranspDataFile) - ihi = ilnblnk(costTranspDataFile) - CALL OPEN_COPY_DATA_FILE( - I costTranspDataFile(ilo:ihi), - I 'ECCO_COST_INIT_FIXED', - O gwunit, - I myThid ) - do irec = 1, ndaysrec -c-- read daily transport time series -c-- 1st: transport in m/s -c-- 2nd: date in YYYYMMDD -c-- 3rd: uncertainty in m/s - read(gwunit,*) transpobs(irec), dummy, wtransp(irec) -c-- convert std.dev. to weight - if ( wtransp(irec) .NE. 0. ) - & wtransp(irec) =1.0/(wtransp(irec)*wtransp(irec)) -c-- set weight to zero for missing values - if ( transpobs(irec) .EQ. missingObsFlag ) - & wtransp(irec) = 0. _d 0 - enddo - _END_MASTER(myThid) - _BARRIER - endif -#endif /* ALLOW_TRANSPORT_COST_CONTRIBUTION */ - -#ifdef ALLOW_NEW_SSH_COST - -c-- Read flags for picking SSH time averages - do irec = 1, ndaysrec - tpTimeMask(irec) = 1. _d 0 - ersTimeMask(irec) = 1. _d 0 - gfoTimeMask(irec) = 1. _d 0 - enddo -c - _BEGIN_MASTER(myThid) -c -#ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION - if ( tpTimeMaskFile .NE. ' ' ) then - ilo = ifnblnk(tpTimeMaskFile) - ihi = ilnblnk(tpTimeMaskFile) - CALL OPEN_COPY_DATA_FILE( - I tpTimeMaskFile(ilo:ihi), - I 'cost_ssh tp', - O gwunit, - I myThid ) - do irec = 1, ndaysrec - read(gwunit,*) tpTimeMask(irec) - enddo - endif -#endif -c -#ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION - if ( ersTimeMaskFile .NE. ' ' ) then - ilo = ifnblnk(ersTimeMaskFile) - ihi = ilnblnk(ersTimeMaskFile) - CALL OPEN_COPY_DATA_FILE( - I ersTimeMaskFile(ilo:ihi), - I 'cost_ssh ers', - O gwunit, - I myThid ) - do irec = 1, ndaysrec - read(gwunit,*) ersTimeMask(irec) - enddo - endif -#endif -c -#ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION - if ( gfoTimeMaskFile .NE. ' ' ) then - ilo = ifnblnk(gfoTimeMaskFile) - ihi = ilnblnk(gfoTimeMaskFile) - CALL OPEN_COPY_DATA_FILE( - I gfoTimeMaskFile(ilo:ihi), - I 'cost_ssh gfo', - O gwunit, - I myThid ) - do irec = 1, ndaysrec - read(gwunit,*) gfoTimeMask(irec) - enddo - endif -#endif -c - do irec = 1, ndaysrec - if ( - & ( tpTimeMask(irec).NE.0. .AND. tpTimeMask(irec).NE.1. ) .OR. - & ( ersTimeMask(irec).NE.0. .AND. ersTimeMask(irec).NE.1. ) .OR. - & ( ersTimeMask(irec).NE.0. .AND. ersTimeMask(irec).NE.1. ) ) - & then - WRITE(msgBuf,'(2A,I10)') - & 'ecco_cost_init_fixed: (SSH)TimeMask not 0. or 1. ', - & 'for irec (=day) ', irec - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , myThid ) - CALL PRINT_ERROR( msgBuf , myThid ) - STOP 'ABNORMAL END: S/R ECCO_COST_INIT_FIXED' - endif - enddo -c - _END_MASTER(myThid) - _BARRIER -#endif /* ALLOW_NEW_SSH_COST */ - -#endif /* ECCO_CTRL_DEPRECATED */ - c-- Summarize the cost function setup. - _BEGIN_MASTER( mythid ) - call ecco_summary( mythid ) - call ecco_cost_summary( mythid ) - _END_MASTER( mythid ) + _BEGIN_MASTER( myThid ) + call ecco_summary( myThid ) + _END_MASTER( myThid ) _BARRIER - end + RETURN + END diff --git a/pkg/ecco/ecco_cost_init_varia.F b/pkg/ecco/ecco_cost_init_varia.F index d0018eae2a..7ae8a1e287 100644 --- a/pkg/ecco/ecco_cost_init_varia.F +++ b/pkg/ecco/ecco_cost_init_varia.F @@ -1,39 +1,27 @@ #include "ECCO_OPTIONS.h" #include "AD_CONFIG.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif - subroutine ecco_cost_init_varia( mythid ) - -c ================================================================== -c SUBROUTINE ecco_cost_init_varia -c ================================================================== -c -c o Initialise the variable cost function part. -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c changed: Christian Eckert eckert@mit.edu 18-Apr-2000 -c - Restructured the code in order to create a package -c for the MITgcmUV. -c heimbach@mit.edu 05-Nov-2003 Now ecco part of cost -c -c ================================================================== -c SUBROUTINE ecco_cost_init_varia -c ================================================================== +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: ECCO_COST_INIT_VARIA - implicit none +C !INTERFACE: + SUBROUTINE ECCO_COST_INIT_VARIA( myThid ) -c == global variables == +C !DESCRIPTION: +c o Initialise the variable cost function part. +C !USES: + IMPLICIT NONE +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" - -#ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -# include "ecco_cost.h" -# else -# include "ecco.h" -# endif -#endif +#include "ECCO_SIZE.h" +#include "ECCO.h" #ifdef ALLOW_CTRL # include "CTRL_OBCS.h" #endif @@ -41,37 +29,18 @@ subroutine ecco_cost_init_varia( mythid ) # include "cost.h" #endif -c == routine arguments == - - integer mythid +C !INPUT/OUTPUT PARAMETERS: + INTEGER myThid -c == local variables == +C !LOCAL VARIABLES: + INTEGER bi, bj + INTEGER i, j, k +C LOGICAL exst +CEOP - integer bi,bj - integer itlo,ithi - integer jtlo,jthi - integer imin, imax - integer jmin, jmax - integer i,j,k - integer num_file,num_var - - logical exst - -c == external functions == - -c == end of interface == - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-OLy - jmax = sny+OLy - imin = 1-OLx - imax = snx+OLy - -c-- Initialise adjoint of monthly mean files calculated -c-- in cost_averagesfields (and their ad...). - call cost_averagesinit( mythid ) +C-- Initialise adjoint of monthly mean files calculated +C-- in cost_averagesfields (and their ad...). + CALL COST_AVERAGESINIT( myThid ) _BARRIER #ifndef ALLOW_TANGENTLINEAR_RUN @@ -79,287 +48,56 @@ subroutine ecco_cost_init_varia( mythid ) cph The following init. shoud not be applied if in the middle cph of a divided adjoint run cph) -c inquire( file='costfinal', exist=exst ) -c if ( .NOT. exst) then -c call ecco_cost_init_barfiles( mythid ) -c endif +c INQUIRE( FILE='costfinal', EXIST=exst ) +c IF ( .NOT. exst) THEN +c CALL ECCO_COST_INIT_BARFILES( myThid ) +c ENDIF #endif -c-- Initialize the tiled cost function contributions. - do bj = jtlo,jthi - do bi = itlo,ithi -#ifdef ECCO_CTRL_DEPRECATED - objf_hflux(bi,bj) = 0. _d 0 - objf_hfluxm(bi,bj) = 0. _d 0 - objf_sflux(bi,bj) = 0. _d 0 - objf_sfluxm(bi,bj) = 0. _d 0 - objf_tauu(bi,bj) = 0. _d 0 - objf_tauum(bi,bj) = 0. _d 0 - objf_tauv(bi,bj) = 0. _d 0 - objf_tauvm(bi,bj) = 0. _d 0 - objf_temp(bi,bj) = 0. _d 0 - objf_salt(bi,bj) = 0. _d 0 - objf_temp0(bi,bj) = 0. _d 0 - objf_salt0(bi,bj) = 0. _d 0 - objf_temp0smoo(bi,bj) = 0. _d 0 - objf_salt0smoo(bi,bj) = 0. _d 0 - objf_etan0(bi,bj) = 0. _d 0 - objf_uvel0(bi,bj) = 0. _d 0 - objf_vvel0(bi,bj) = 0. _d 0 - objf_tmi(bi,bj) = 0. _d 0 - objf_sst(bi,bj) = 0. _d 0 - objf_sss(bi,bj) = 0. _d 0 - objf_bp(bi,bj) = 0. _d 0 - objf_h(bi,bj) = 0. _d 0 - objf_tp(bi,bj) = 0. _d 0 - objf_ers(bi,bj) = 0. _d 0 - objf_gfo(bi,bj) = 0. _d 0 - objf_ctdt(bi,bj) = 0. _d 0 - objf_ctds(bi,bj) = 0. _d 0 - objf_ctdtclim(bi,bj) = 0. _d 0 - objf_ctdsclim(bi,bj) = 0. _d 0 - objf_xbt(bi,bj) = 0. _d 0 - objf_argot(bi,bj) = 0. _d 0 - objf_argos(bi,bj) = 0. _d 0 - objf_drift(bi,bj) = 0. _d 0 - objf_wdrift(bi,bj) = 0. _d 0 - objf_sdrift(bi,bj) = 0. _d 0 - objf_tdrift(bi,bj) = 0. _d 0 - objf_scatx(bi,bj) = 0. _d 0 - objf_scaty(bi,bj) = 0. _d 0 - objf_scatxm(bi,bj) = 0. _d 0 - objf_scatym(bi,bj) = 0. _d 0 - objf_atemp(bi,bj) = 0. _d 0 - objf_aqh(bi,bj) = 0. _d 0 - objf_precip(bi,bj) = 0. _d 0 - objf_swflux(bi,bj) = 0. _d 0 - objf_swdown(bi,bj) = 0. _d 0 - objf_lwflux(bi,bj) = 0. _d 0 - objf_lwdown(bi,bj) = 0. _d 0 - objf_uwind(bi,bj) = 0. _d 0 - objf_vwind(bi,bj) = 0. _d 0 -#if ( defined (ALLOW_COST) && defined (ALLOW_COST_ATLANTIC) ) - objf_atl(bi,bj) = 0. _d 0 -#endif - objf_curmtr(bi,bj) = 0. _d 0 - objf_diffkr(bi,bj) = 0. _d 0 - objf_kapgm(bi,bj) = 0. _d 0 - objf_kapredi(bi,bj) = 0. _d 0 - objf_theta_ini_fin(bi,bj) = 0. _d 0 - objf_salt_ini_fin(bi,bj) = 0. _d 0 - objf_eddytau(bi,bj) = 0. _d 0 - objf_bottomdrag(bi,bj) = 0. _d 0 - do k=1,NUSERCOST - objf_usercost(k,bi,bj) = 0. _d 0 - enddo - do k=1,NSSHV4COST - objf_sshv4cost(k,bi,bj) = 0. _d 0 - enddo - num_hflux(bi,bj) = 0. _d 0 - num_hfluxm(bi,bj) = 0. _d 0 - num_hfluxmm(bi,bj) = 0. _d 0 - num_sflux(bi,bj) = 0. _d 0 - num_sfluxm(bi,bj) = 0. _d 0 - num_sfluxmm(bi,bj) = 0. _d 0 - num_tauu(bi,bj) = 0. _d 0 - num_tauum(bi,bj) = 0. _d 0 - num_tauv(bi,bj) = 0. _d 0 - num_tauvm(bi,bj) = 0. _d 0 - num_temp(bi,bj) = 0. _d 0 - num_salt(bi,bj) = 0. _d 0 - num_temp0(bi,bj) = 0. _d 0 - num_salt0(bi,bj) = 0. _d 0 - num_etan0(bi,bj) = 0. _d 0 - num_uvel0(bi,bj) = 0. _d 0 - num_vvel0(bi,bj) = 0. _d 0 - num_tmi(bi,bj) = 0. _d 0 - num_sst(bi,bj) = 0. _d 0 - num_sss(bi,bj) = 0. _d 0 - num_bp(bi,bj) = 0. _d 0 - num_h(bi,bj) = 0. _d 0 - num_tp(bi,bj) = 0. _d 0 - num_ers(bi,bj) = 0. _d 0 - num_gfo(bi,bj) = 0. _d 0 - num_ctdt(bi,bj) = 0. _d 0 - num_ctds(bi,bj) = 0. _d 0 - num_ctdtclim(bi,bj) = 0. _d 0 - num_ctdsclim(bi,bj) = 0. _d 0 - num_xbt(bi,bj) = 0. _d 0 - num_argot(bi,bj) = 0. _d 0 - num_argos(bi,bj) = 0. _d 0 - num_drift(bi,bj) = 0. _d 0 - num_wdrift(bi,bj) = 0. _d 0 - num_sdrift(bi,bj) = 0. _d 0 - num_tdrift(bi,bj) = 0. _d 0 - num_scatx(bi,bj) = 0. _d 0 - num_scaty(bi,bj) = 0. _d 0 - num_scatxm(bi,bj) = 0. _d 0 - num_scatym(bi,bj) = 0. _d 0 - num_atemp(bi,bj) = 0. _d 0 - num_aqh(bi,bj) = 0. _d 0 - num_precip(bi,bj) = 0. _d 0 - num_swflux(bi,bj) = 0. _d 0 - num_swdown(bi,bj) = 0. _d 0 - num_lwflux(bi,bj) = 0. _d 0 - num_lwdown(bi,bj) = 0. _d 0 - num_uwind(bi,bj) = 0. _d 0 - num_vwind(bi,bj) = 0. _d 0 - num_curmtr(bi,bj) = 0. _d 0 - num_diffkr(bi,bj) = 0. _d 0 - num_kapgm(bi,bj) = 0. _d 0 - num_kapredi(bi,bj) = 0. _d 0 - num_eddytau(bi,bj) = 0. _d 0 - num_bottomdrag(bi,bj) = 0. _d 0 - do k=1,NUSERCOST - num_usercost(k,bi,bj) = 0. _d 0 - enddo - do k=1,NSSHV4COST - num_sshv4cost(k,bi,bj) = 0. _d 0 - enddo - num_theta_ini_fin(bi,bj) = 0. _d 0 - num_salt_ini_fin(bi,bj) = 0. _d 0 -#endif /* ECCO_CTRL_DEPRECATED */ +C-- Initialize the tiled cost function contributions. + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) #ifdef ALLOW_GENCOST_CONTRIBUTION - do k=1,NGENCOST - objf_gencost(bi,bj,k) = 0. _d 0 - num_gencost(bi,bj,k) = 0. _d 0 - enddo + DO k=1,NGENCOST + objf_gencost(bi,bj,k) = 0. _d 0 + num_gencost(bi,bj,k) = 0. _d 0 + ENDDO #endif #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - objf_obcsn(bi,bj) = 0. _d 0 - objf_obcss(bi,bj) = 0. _d 0 - objf_obcsw(bi,bj) = 0. _d 0 - objf_obcse(bi,bj) = 0. _d 0 - objf_ageos(bi,bj) = 0. _d 0 - num_obcsn(bi,bj) = 0. _d 0 - num_obcss(bi,bj) = 0. _d 0 - num_obcsw(bi,bj) = 0. _d 0 - num_obcse(bi,bj) = 0. _d 0 - num_ageos(bi,bj) = 0. _d 0 -#endif - - do j = jmin,jmax - do i = imin,imax - frame(i,j) = 1. _d 0 - cosphi(i,j,bi,bj) = 1. _d 0 - enddo - enddo - - enddo - enddo - -#ifdef ECCO_CTRL_DEPRECATED - - k = 1 - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_SSH_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - mdtmask(i,j,bi,bj) = 0. _d 0 - else - mdtmask(i,j,bi,bj) = 1. _d 0 - endif - mdt(i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - tpmask(i,j,bi,bj) = 0. _d 0 - else - tpmask(i,j,bi,bj) = 1. _d 0 - endif - tpobs(i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - ersmask(i,j,bi,bj) = 0. _d 0 - else - ersmask(i,j,bi,bj) = 1. _d 0 - endif - ersobs(i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - gfomask(i,j,bi,bj) = 0. _d 0 - else - gfomask(i,j,bi,bj) = 1. _d 0 - endif - gfoobs(i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_TMI_SST_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - tmimask(i,j,bi,bj) = 0. _d 0 - else - tmimask(i,j,bi,bj) = 1. _d 0 - endif -#endif -#ifdef ALLOW_SST_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - sstmask(i,j,bi,bj) = 0. _d 0 - else - sstmask(i,j,bi,bj) = 1. _d 0 - endif -#endif -#ifdef ALLOW_SSS_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - sssmask(i,j,bi,bj) = 0. _d 0 - else - sssmask(i,j,bi,bj) = 1. _d 0 - endif -#endif -#ifdef ALLOW_BP_COST_CONTRIBUTION - if (_hFacC(i,j,k,bi,bj) .eq. 0.) then - bpmask(i,j,bi,bj) = 0. _d 0 - else - bpmask(i,j,bi,bj) = 1. _d 0 - endif - bpdat(i,j,bi,bj) = 0. _d 0 -#endif - enddo - enddo - enddo - enddo - -#ifdef GENERIC_BAR_MONTH - do bj = jtlo,jthi - do bi = itlo,ithi - do k =1,Nr - do j = jmin,jmax - do i = imin,imax - tbar_gen(i,j,k,bi,bj) = 0. _d 0 - sbar_gen(i,j,k,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo - enddo -#endif - -c-- Initialise the "global" parts of the cost function. - _BEGIN_MASTER( mythid ) - objf_hmean = 0. _d 0 - objf_hfluxmm = 0. _d 0 - objf_sfluxmm = 0. _d 0 - objf_transp = 0. _d 0 - num_hmean = 0. _d 0 - num_transp = 0. _d 0 - _END_MASTER( mythid ) - -#endif /* ECCO_CTRL_DEPRECATED */ - -c-- Initialise the "global" parts of the cost function. + objf_obcsn(bi,bj) = 0. _d 0 + objf_obcss(bi,bj) = 0. _d 0 + objf_obcsw(bi,bj) = 0. _d 0 + objf_obcse(bi,bj) = 0. _d 0 + objf_ageos(bi,bj) = 0. _d 0 + num_obcsn(bi,bj) = 0. _d 0 + num_obcss(bi,bj) = 0. _d 0 + num_obcsw(bi,bj) = 0. _d 0 + num_obcse(bi,bj) = 0. _d 0 + num_ageos(bi,bj) = 0. _d 0 +#endif + + ENDDO + ENDDO + + _BEGIN_MASTER( myThid ) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + frame(i,j) = 1. _d 0 + ENDDO + ENDDO + _END_MASTER( myThid ) + +C-- Initialise the "global" parts of the cost function. #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - _BEGIN_MASTER( mythid ) + _BEGIN_MASTER( myThid ) objf_obcsvol = 0. _d 0 num_obcsvol = 0. _d 0 - _END_MASTER( mythid ) + _END_MASTER( myThid ) #endif _BARRIER - return - end - + RETURN + END diff --git a/pkg/ecco/ecco_cost_summary.F b/pkg/ecco/ecco_cost_summary.F deleted file mode 100644 index 3bbc6a9af7..0000000000 --- a/pkg/ecco/ecco_cost_summary.F +++ /dev/null @@ -1,322 +0,0 @@ -#include "ECCO_OPTIONS.h" - - - subroutine ecco_cost_summary( mythid ) - -c ================================================================== -c SUBROUTINE ecco_cost_summary -c ================================================================== -c -c o Summarize the cost function related parts of the ECCO release. -c -c started: Christian Eckert eckert@mit.edu 30-Jun-1999 -c -c changed: Christian Eckert eckert@mit.edu 25-Feb-2000 -c -c - Restructured the code in order to create a package -c for the MITgcmUV. -c -c ================================================================== -c SUBROUTINE ecco_cost_summary -c ================================================================== - - implicit none - -c == global variables == - -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -#include "EEPARAMS.h" -#include "SIZE.h" -#include "ecco_cost.h" -#ifdef ALLOW_CTRL -# include "CTRL_OBCS.h" -#endif -#endif - -c == routine arguments == - - integer mythid - -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -c == local variables == - - integer il - - character*(max_len_mbuf) msgbuf - -c == external == - - integer ilnblnk - external ilnblnk - -c == end of interface == - - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &'// =======================================================' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &'// ECCO cost function configuration >>> START <<<' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &'// =======================================================' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - write(msgbuf,'(a)') - &' Multipliers for the indivdual cost function contributions:' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Net heat flux: ',mult_hflux - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Salt flux: ',mult_sflux - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Zonal wind stress: ',mult_tauu - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Meridional wind stress: ',mult_tauv - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Mean sea surface height: ',mult_hmean - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Sea surface height anomalies: ',mult_h - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Temperature Lev.: ',mult_temp - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Salinity Lev.: ',mult_salt - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Temperature ini.: ',mult_temp0 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Salinity ini.: ',mult_salt0 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Sea level ini.: ',mult_etan0 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' zonal velocity ini.: ',mult_uvel0 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' merid velocity ini.: ',mult_vvel0 - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' TMI Sea surface temperature: ',mult_tmi - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Sea surface temperature: ',mult_sst - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Sea surface salinity: ',mult_sss - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' CTD temperature: ',mult_ctdt - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' CTD salinity: ',mult_ctds - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' CTD clim temperature: ',mult_ctdtclim - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' CTD clim salinity: ',mult_ctdsclim - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' XBT Temperature: ',mult_xbt - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' ARGO Temperature: ',mult_argot - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' ARGO Salt: ',mult_argos - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' drifter velocities: ',mult_drift - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' drift between last and 1st year:',mult_tdrift - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' drift between last and 1st year:',mult_sdrift - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' Ageostrophic bdy flow: ',mult_ageos - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#ifdef ALLOW_CTRL - write(msgbuf,'(a,e10.3)') - &' OB North: ',mult_obcsn - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' OB South: ',mult_obcss - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' OB West: ',mult_obcsw - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e10.3)') - &' OB East: ',mult_obcse - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - - il = ilnblnk(tdatfile) - write(msgbuf,'(a,a)') - &' Temperature data are read from: ',tdatfile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - il = ilnblnk(sdatfile) - write(msgbuf,'(a,a)') - &' Salinity data are read from: ',sdatfile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - -#ifdef ALLOW_SSH_MEAN_COST_CONTRIBUTION - write(msgbuf,'(A,L5)') - & ' using_cost_altim[T=mdt,F=no]: ',using_cost_altim - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - if (using_cost_altim) then - il = ilnblnk(mdtdatfile) - write(msgbuf,'(a,a)') - & ' MDT is read from: ',mdtdatfile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i10,i8)') - & ' MDT startdate are: ', - & mdtstartdate(1), - & mdtstartdate(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i10,i8)') - & ' MDT enddate are: ', - & mdtenddate(1), - & mdtenddate(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - endif -#endif /* ALLOW_SSH_MEAN_COST_CONTRIBUTION */ - -#ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION - if (using_tpj) then - il = ilnblnk(topexfile) - write(msgbuf,'(a,a)') - & ' T/P data are read from: ',topexfile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i10,i8)') - & ' T/P start date is: ', - & topexstartdate(1), - & topexstartdate(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e18.11)') - & ' T/P sampling period is: ', - & topexperiod - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - endif -#endif /* ALLOW_SSH_TPANOM_COST_CONTRIBUTION */ - -#ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION - if (using_ers) then - il = ilnblnk(ersfile) - write(msgbuf,'(a,a)') - & ' ERS data are read from: ',ersfile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i10,i8)') - & ' ERS start date is: ', - & ersstartdate(1), - & ersstartdate(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e18.11)') - & ' ERS sampling period is: ', - & ersperiod - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - endif -#endif /* ALLOW_SSH_ERSANOM_COST_CONTRIBUTION */ - -#ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION - if (using_gfo) then - il = ilnblnk(gfofile) - write(msgbuf,'(a,a)') - & ' GFO data are read from: ',gfofile(1:il) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,i10,i8)') - & ' GFO start date is: ', - & gfostartdate(1), - & gfostartdate(2) - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,e18.11)') - & ' GFO sampling period is: ', - & gfoperiod - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - endif -#endif /* ALLOW_SSH_GFOANOM_COST_CONTRIBUTION */ - -#endif /* ALLOW_ECCO and ECCO_CTRL_DEPRECATED */ - - return - end - diff --git a/pkg/ecco/ecco_cost_weights.F b/pkg/ecco/ecco_cost_weights.F index 850c6f768c..c0bfb337ca 100644 --- a/pkg/ecco/ecco_cost_weights.F +++ b/pkg/ecco/ecco_cost_weights.F @@ -31,18 +31,15 @@ subroutine ecco_cost_weights( myThid ) c == global variables == -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" #include "GRID.h" - -#include "ecco_cost.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" #ifdef ALLOW_CTRL -# include "ctrl.h" # include "CTRL_OBCS.h" #endif -#endif c == routine arguments == @@ -50,39 +47,19 @@ subroutine ecco_cost_weights( myThid ) c == local variables == -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax +#ifdef ALLOW_OBCS + integer k integer gwUnit - integer irec,nnz integer ilo,ihi integer iobcs - integer num_var - - _RL factor + _RL ratio _RL wti(nr) _RL wsi(nr) _RL wui(nr) _RL wvi(nr) - _RL whflux0m - _RL wsflux0m - _RL wtau0m - _RL ratio _RL dummy - _RS dummyRS - _RL wsshv4tmp ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy ) - - logical lwtheta2InUse - logical lwsalt2InUse - logical lwthetaLevInUse - logical lwsaltLevInUse - logical exst +#endif c == external == @@ -93,123 +70,14 @@ subroutine ecco_cost_weights( myThid ) c == end of interface == - lwtheta2InUse = .false. - lwsalt2InUse = .false. - lwthetaLevInUse = .false. - lwsaltLevInUse = .false. - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - -c-- Initialize background weights - whflux0m = whflux0 - wsflux0m = wsflux0 - wtau0m = wtau0 - c-- Initialize variance (weight) fields. +#ifdef ALLOW_OBCS do k = 1,nr wti(k) = 0. _d 0 wsi(k) = 0. _d 0 wui(k) = 0. _d 0 wvi(k) = 0. _d 0 enddo - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - whflux (i,j,bi,bj) = 0. _d 0 - whfluxm (i,j,bi,bj) = 0. _d 0 - wsflux (i,j,bi,bj) = 0. _d 0 - wsfluxm (i,j,bi,bj) = 0. _d 0 - wtauu (i,j,bi,bj) = 0. _d 0 - wtauum (i,j,bi,bj) = 0. _d 0 - wtauv (i,j,bi,bj) = 0. _d 0 - wtauvm (i,j,bi,bj) = 0. _d 0 - watemp (i,j,bi,bj) = 0. _d 0 - waqh (i,j,bi,bj) = 0. _d 0 - wprecip (i,j,bi,bj) = 0. _d 0 - wswflux (i,j,bi,bj) = 0. _d 0 - wswdown (i,j,bi,bj) = 0. _d 0 - wsnowprecip (i,j,bi,bj) = 0. _d 0 - wlwflux (i,j,bi,bj) = 0. _d 0 - wlwdown (i,j,bi,bj) = 0. _d 0 - wevap (i,j,bi,bj) = 0. _d 0 - wapressure(i,j,bi,bj) = 0. _d 0 - wrunoff (i,j,bi,bj) = 0. _d 0 - wuwind (i,j,bi,bj) = 0. _d 0 - wvwind (i,j,bi,bj) = 0. _d 0 - wsst (i,j,bi,bj) = 0. _d 0 - wsss (i,j,bi,bj) = 0. _d 0 - wtp (i,j,bi,bj) = 0. _d 0 - wers (i,j,bi,bj) = 0. _d 0 - wgfo (i,j,bi,bj) = 0. _d 0 - wetan (i,j,bi,bj) = 0. _d 0 - do num_var=1,NSSHV4COST - wsshv4 (i,j,num_var,bi,bj) = 0. _d 0 - enddo - wp (i,j,bi,bj) = 0. _d 0 - wudrift (i,j,bi,bj) = 0. _d 0 - wvdrift (i,j,bi,bj) = 0. _d 0 -cph( - whflux2 (i,j,bi,bj) = 0. _d 0 - wsflux2 (i,j,bi,bj) = 0. _d 0 - wtauu2 (i,j,bi,bj) = 0. _d 0 - wtauv2 (i,j,bi,bj) = 0. _d 0 -cph) - wbottomdrag (i,j,bi,bj) = wbottomdrag0 - enddo - enddo - enddo - enddo - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,Nr - wtheta (k,bi,bj) = 0. _d 0 - wsalt (k,bi,bj) = 0. _d 0 - wuvel (k,bi,bj) = 0. _d 0 - wvvel (k,bi,bj) = 0. _d 0 - wctdt (k,bi,bj) = 0. _d 0 - wctds (k,bi,bj) = 0. _d 0 - wdiffkr(k,bi,bj) = wdiffkr0 - wkapgm (k,bi,bj) = wkapgm0 - wkapredi (k,bi,bj) = wkapredi0 - wedtaux(k,bi,bj) = wedtau0 - wedtauy(k,bi,bj) = wedtau0 - do j = jmin,jmax - do i = imin,imax - wtheta2 (i,j,k,bi,bj) = 0. _d 0 - wsalt2 (i,j,k,bi,bj) = 0. _d 0 - wdiffkr2(i,j,k,bi,bj) = wdiffkr0 - wkapgm2 (i,j,k,bi,bj) = wkapgm0 - wkapredi2 (i,j,k,bi,bj) = wkapredi0 - wedtaux2(i,j,k,bi,bj) = wedtau0 - wedtauy2(i,j,k,bi,bj) = wedtau0 - wthetaLev (i,j,k,bi,bj) = 0. _d 0 - wsaltLev (i,j,k,bi,bj) = 0. _d 0 - wdiffkrFld(i,j,k,bi,bj) = wdiffkr0 - wkapgmFld (i,j,k,bi,bj) = wkapgm0 - wkaprediFld (i,j,k,bi,bj) = wkapredi0 - wedtauxFld(i,j,k,bi,bj) = wedtau0 - wedtauyFld(i,j,k,bi,bj) = wedtau0 -#if (defined (ALLOW_UVEL0_COST_CONTRIBUTION) || defined (ALLOW_UVEL0_CONTROL)) -#if (defined (ALLOW_VVEL0_COST_CONTRIBUTION) || defined (ALLOW_VVEL0_CONTROL)) - wuvel3d(i,j,k,bi,bj) = 0. _d 0 - wvvel3d(i,j,k,bi,bj) = 0. _d 0 -#endif -#endif - enddo - enddo - enddo - enddo - enddo - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) #if (defined (ALLOW_OBCS_COST_CONTRIBUTION) || \ defined (ALLOW_OBCS_CONTROL)) @@ -235,43 +103,6 @@ subroutine ecco_cost_weights( myThid ) enddo #endif -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - -c-- Build area weighting matrix used in the cost function -c-- contributions. - -c-- Define frame. - do j = jmin,jmax - do i = imin,imax -c-- North/South and West/East edges set to zero. -cph if ( (j .lt. 1) .or. (j .gt. sNy) .or. -cph & (i .lt. 1) .or. (i .gt. sNx) ) then -cph frame(i,j) = 0. _d 0 -cph else - frame(i,j) = 1. _d 0 -cph endif - enddo - enddo - -c-- First account for the grid used. - if (usingCartesianGrid) then - factor = 0. _d 0 - else if (usingSphericalPolarGrid) then - factor = 1. _d 0 - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -cds cosphi(i,j,bi,bj) = cos(yc(i,j,bi,bj)*deg2rad*factor)* -cds & frame(i,j) - cosphi(i,j,bi,bj) = frame(i,j) - enddo - enddo - enddo - enddo - c-- Read error information and set up weight matrices. _BEGIN_MASTER(myThid) ilo = ifnblnk(data_errfile) @@ -287,7 +118,7 @@ subroutine ecco_cost_weights( myThid ) read(gwUnit,*) ratio #if (defined (ALLOW_OBCS_COST_CONTRIBUTION) || defined (ALLOW_OBCS_CONTROL)) - & , wbaro + & , dummy #endif do k = 1,nr read(gwUnit,*) wti(k), wsi(k) @@ -306,1831 +137,72 @@ subroutine ecco_cost_weights( myThid ) _BARRIER - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - -c indices are inconsistent with ecco_cost.h declaration -c wsfluxmm(bi,bj) = 1. -c whfluxmm(bi,bj) = 1. - -c-- The "classic" state estimation tool wastes memory here; -c-- as long as there is not more information available there -c-- is no need to add the zonal and meridional directions. - do k = 1,nr - wtheta(k,bi,bj) = wti(k) - wsalt (k,bi,bj) = wsi(k) - wcurrent(k,bi,bj) = wvi(k) -c-- - if (wtheta(k,bi,bj) .ne. 0.) then - wtheta(k,bi,bj) = ratio/wtheta(k,bi,bj)/wtheta(k,bi,bj) - else - wtheta(k,bi,bj) = 0.0 _d 0 - endif - if (wsalt(k,bi,bj) .ne. 0.) then - wsalt(k,bi,bj) = ratio/wsalt(k,bi,bj)/wsalt(k,bi,bj) - else - wsalt(k,bi,bj) = 0.0 _d 0 - endif - enddo - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) - do k = 1,nr -#ifdef ALLOW_OBCSN_COST_CONTRIBUTION - wobcsn(k,1) = wti(k) - wobcsn(k,2) = wsi(k) - wobcsn(k,3) = wvi(k) - wobcsn(k,4) = wvi(k) -#endif -#ifdef ALLOW_OBCSS_COST_CONTRIBUTION - wobcss(k,1) = wti(k) - wobcss(k,2) = wsi(k) - wobcss(k,3) = wvi(k) - wobcss(k,4) = wvi(k) -#endif -#ifdef ALLOW_OBCSW_COST_CONTRIBUTION - wobcsw(k,1) = wti(k) - wobcsw(k,2) = wsi(k) - wobcsw(k,3) = wvi(k) - wobcsw(k,4) = wvi(k) -#endif -#ifdef ALLOW_OBCSE_COST_CONTRIBUTION - wobcse(k,1) = wti(k) - wobcse(k,2) = wsi(k) - wobcse(k,3) = wvi(k) - wobcse(k,4) = wvi(k) -#endif - enddo -#endif /* ALLOW_CTRL and OBCS */ - - enddo - enddo - -#if (defined (ALLOW_SALT0_COST_CONTRIBUTION) || \ - defined (ALLOW_SALT0_CONTROL) || \ - defined (ALLOW_WSALTLEV)) - lwsaltLevInUse = .true. - if ( salt0errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( salt0errfile, cost_iprec, Nr, - & wsaltLev, 1, 1, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if ( wsaltLev(i,j,k,bi,bj).eq.0 ) then - wsaltLev(i,j,k,bi,bj) = 0. _d 0 - else - wsaltLev(i,j,k,bi,bj)=frame(i,j)*maskC(i,j,k,bi,bj)/ - $ ( wsaltLev(i,j,k,bi,bj)*wsaltLev(i,j,k,bi,bj) ) - endif - enddo - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - wsaltLev(i,j,k,bi,bj)= - $ wsalt(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - endif - call active_write_xyz( 'wsaltLev', wsaltLev, - & 1, 0, myThid, dummy) - _EXCH_XYZ_RL( wsaltLev, myThid ) -#endif - -#if (defined (ALLOW_THETA0_COST_CONTRIBUTION) || \ - defined (ALLOW_THETA0_CONTROL) || \ - defined (ALLOW_WTHETALEV)) - lwthetaLevInUse = .true. - if ( temp0errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( temp0errfile, cost_iprec, Nr, - & wthetaLev, 1, 1, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if ( wthetaLev(i,j,k,bi,bj).eq.0 ) then - wthetaLev(i,j,k,bi,bj) = 0. _d 0 - else - wthetaLev(i,j,k,bi,bj)=frame(i,j)*maskC(i,j,k,bi,bj)/ - $ ( wthetaLev(i,j,k,bi,bj)*wthetaLev(i,j,k,bi,bj) ) - endif - enddo - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - wthetaLev(i,j,k,bi,bj)= - $ wtheta(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - endif - call active_write_xyz( 'wthetaLev', wthetaLev, - & 1, 0, myThid, dummy) - _EXCH_XYZ_RL( wthetaLev, myThid ) -#endif - -#if (defined (ALLOW_ARGO_SALT_COST_CONTRIBUTION) || \ - defined (ALLOW_SSS_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDS_COST_CONTRIBUTION)|| \ - defined (ALLOW_CTDSCLIM_COST_CONTRIBUTION)) - - lwsalt2InUse = .true. - if ( salterrfile .NE. ' ' ) then - CALL READ_REC_3D_RL( salterrfile, cost_iprec, Nr, - & wsalt2, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wsalt(k,bi,bj).eq.0. .or. - $ wsalt2(i,j,k,bi,bj).eq.0.) then - wsalt2(i,j,k,bi,bj) = 0. _d 0 - else - wsalt2(i,j,k,bi,bj)=frame(i,j)*maskC(i,j,k,bi,bj)/ - $ ( wsalt2(i,j,k,bi,bj)*wsalt2(i,j,k,bi,bj) ) - endif - enddo - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - wsalt2(i,j,k,bi,bj)= - $ wsalt(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - endif - _EXCH_XYZ_RL( wsalt2, myThid ) -#endif - -#if (defined (ALLOW_ARGO_THETA_COST_CONTRIBUTION) || \ - defined (ALLOW_SST_COST_CONTRIBUTION) || \ - defined (ALLOW_TMI_SST_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSST_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDT_COST_CONTRIBUTION) || \ - defined (ALLOW_CTDTCLIM_COST_CONTRIBUTION) || \ - defined (ALLOW_XBT_COST_CONTRIBUTION)) - - lwtheta2InUse = .true. - if ( temperrfile .NE. ' ' ) then - CALL READ_REC_3D_RL( temperrfile, cost_iprec, Nr, - & wtheta2, 1, 1, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wtheta(k,bi,bj).eq.0. .or. - $ wtheta2(i,j,k,bi,bj).eq.0.) then - wtheta2(i,j,k,bi,bj) = 0. _d 0 - else - wtheta2(i,j,k,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - $ ( wtheta2(i,j,k,bi,bj)*wtheta2(i,j,k,bi,bj) ) - endif - enddo - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax - if (wtheta(k,bi,bj).eq.0 ) then - wtheta2(i,j,k,bi,bj) = 0. _d 0 - else - wtheta2(i,j,k,bi,bj) = - $ wtheta(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - endif - enddo - enddo - enddo - enddo - enddo - endif - _EXCH_XYZ_RL( wtheta2, myThid ) -#endif - -#if (defined (ALLOW_SST_COST_CONTRIBUTION) || defined (ALLOW_SST_CONTROL)) - if ( ( using_cost_sst ).AND.( ssterrfile .NE. ' ' ) ) - & CALL READ_REC_3D_RL( ssterrfile, cost_iprec, 1, - & wsst, 1, 1, myThid ) -#endif -#if (defined (ALLOW_SSS_COST_CONTRIBUTION) || defined (ALLOW_SSS_CONTROL)) - if ( ssserrfile .NE. ' ' ) - & CALL READ_REC_3D_RL( ssserrfile, cost_iprec, 1, - & wsss, 1, 1, myThid ) -#endif - - k = 1 - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -#if (defined (ALLOW_SST_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSST_COST_CONTRIBUTION) || \ - defined (ALLOW_SST_CONTROL)) - IF ( using_cost_sst ) THEN - if ( ssterrfile .NE. ' ' ) then -cgf use specific weights for sst - if (wsst(i,j,bi,bj).ne.0) - & wsst(i,j,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - & ( wsst(i,j,bi,bj)*wsst(i,j,bi,bj) ) - else -cgf use general hydrography weights - if ( lwtheta2InUse ) then - wsst(i,j,bi,bj) = wtheta2(i,j,k,bi,bj) - elseif ( lwthetaLevInUse ) then - wsst(i,j,bi,bj) = wthetaLev(i,j,k,bi,bj) - else - wsst(i,j,bi,bj) = - & wtheta(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - endif - endif - ENDIF ! IF ( using_cost_sst ) THEN -#endif - -#if (defined (ALLOW_SSS_COST_CONTRIBUTION) || defined (ALLOW_SSS_CONTROL)) - if ( ssserrfile .NE. ' ' ) then -cgf use specific weights for sss - if (wsss(i,j,bi,bj).ne.0) - & wsss(i,j,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - & ( wsss(i,j,bi,bj)*wsss(i,j,bi,bj) ) - - else -cgf use general hydrography weights - if ( lwsalt2InUse ) then - wsss(i,j,bi,bj) = wsalt2(i,j,k,bi,bj) - elseif ( lwsaltLevInUse ) then - wsss(i,j,bi,bj) = wsaltLev(i,j,k,bi,bj) - else - wsss(i,j,bi,bj) = - & wsalt(k,bi,bj)*frame(i,j)*maskC(i,j,k,bi,bj) - endif - endif -#endif - enddo - enddo - enddo - enddo -#if (defined (ALLOW_SST_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSST_COST_CONTRIBUTION) || \ - defined (ALLOW_SST_CONTROL)) - IF (using_cost_sst) - & call active_write_xy_loc( 'wsst', wsst, 1, 0, myThid, dummy) -#endif -#if (defined (ALLOW_SSS_COST_CONTRIBUTION) || defined (ALLOW_SSS_CONTROL)) - call active_write_xy_loc( 'wsss', wsss, 1, 0, myThid, dummy) -#endif - - IF (using_cost_altim) THEN - -#if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_COST_CONTRIBUTION) ) -#ifdef ALLOW_EGM96_ERROR_DIAG -c-- Read egm-96 geoid covariance. Data in units of meters. - nnz = 1 - irec = 1 - if ( geoid_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( geoid_errfile, cost_iprec, nnz, - & wp, irec, 1, myThid ) -c-- Set all tile edges to zero. - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wp(i,j,bi,bj) = wp(i,j,bi,bj)*frame(i,j) -cph-indonesian( - if ( xC(i,j,bi,bj) .GT. 120. .AND. - & xC(i,j,bi,bj) .LT. 130. .AND. - & yC(i,j,bi,bj) .GT. -10. .AND. - & yC(i,j,bi,bj) .LT. 10. ) then - wp(i,j,bi,bj) = wp(i,j,bi,bj)*100. - endif -cph-indonesian) - enddo - enddo - enddo - enddo - endif -#else - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wp(i,j,bi,bj) = frame(i,j) - enddo - enddo - enddo - enddo -#endif -#endif - -#ifdef ALLOW_SSH_COST_CONTRIBUTION -c-- Read SSH anomaly rms field. Data in units of centimeters. - nnz = 1 - irec = 1 - if ( ssh_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( ssh_errfile, cost_iprec, nnz, - & wtp, irec, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax -c-- Unit conversion to meters. ERS error is set to -c-- T/P error + 5cm - if (maskC(i,j,k,bi,bj) .eq. 0.) then - wtp (i,j,bi,bj) = 0. _d 0 - wers(i,j,bi,bj) = 0. _d 0 - wgfo(i,j,bi,bj) = 0. _d 0 - else - wtp (i,j,bi,bj) = ( wtp(i,j,bi,bj) * 0.01 * 0.5 ) - & *frame(i,j) - wers(i,j,bi,bj) = ( wtp(i,j,bi,bj) + 0.05 ) - & *frame(i,j) - wgfo(i,j,bi,bj) = wers(i,j,bi,bj) - endif - enddo - enddo - enddo - enddo - endif - -c-- overwrite T/P error field, if available: - if ( tp_errfile .NE. ' ' ) - & CALL READ_REC_3D_RL( tp_errfile, cost_iprec, nnz, - & wtp, irec, 1, myThid ) - -c-- overwrite ERS error field, if available: - if ( ers_errfile .NE. ' ' ) - & CALL READ_REC_3D_RL( ers_errfile, cost_iprec, nnz, - & wers, irec, 1, myThid ) - -c-- overwrite GFO error field, if available: - if ( gfo_errfile .NE. ' ' ) - & CALL READ_REC_3D_RL( gfo_errfile, cost_iprec, nnz, - & wgfo, irec, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax - if (maskC(i,j,k,bi,bj) .eq. 0.) then - if ( tp_errfile .NE. ' ' ) - & wtp (i,j,bi,bj) = 0. _d 0 - if ( ers_errfile .NE. ' ' ) - & wers(i,j,bi,bj) = 0. _d 0 - if ( gfo_errfile .NE. ' ' ) - & wgfo(i,j,bi,bj) = 0. _d 0 - else -c-- convert from cm to m and set to 0.1m for missing values. - if ( tp_errfile .NE. ' ' ) then - wtp (i,j,bi,bj) = wtp (i,j,bi,bj) * 0.01 * frame(i,j) -cph should not be necessary for T/P and Jason -cph if ( wtp (i,j,bi,bj) .EQ. 0. ) -cph & wtp (i,j,bi,bj) = 0.1 * frame(i,j) - endif - if ( ers_errfile .NE. ' ' ) then - wers(i,j,bi,bj) = wers(i,j,bi,bj) * 0.01 * frame(i,j) - if ( wers(i,j,bi,bj) .EQ. 0. ) - & wers(i,j,bi,bj) = 0.1 * frame(i,j) - endif - if ( gfo_errfile .NE. ' ' ) then - wgfo(i,j,bi,bj) = wgfo(i,j,bi,bj) * 0.01 * frame(i,j) - if ( wgfo(i,j,bi,bj) .EQ. 0. ) - & wgfo(i,j,bi,bj) = 0.1 * frame(i,j) - endif - endif - enddo - enddo - enddo - enddo - -cph-indonesian( - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax - if ( xC(i,j,bi,bj) .GT. 120. .AND. - & xC(i,j,bi,bj) .LT. 130. .AND. - & yC(i,j,bi,bj) .GT. -10. .AND. - & yC(i,j,bi,bj) .LT. 10. ) then - wtp(i,j,bi,bj) = wtp(i,j,bi,bj)*100. - wers(i,j,bi,bj) = wers(i,j,bi,bj)*100. - wgfo(i,j,bi,bj) = wgfo(i,j,bi,bj)*100. - endif - enddo - enddo - enddo - enddo -cph-indonesian) - -#endif /* ALLOW_SSH_COST_CONTRIBUTION */ - -#ifdef ALLOW_SSHV4_COST - - do num_var=1,NSSHV4COST - - if ( sshv4cost_errfile(num_var) .NE. ' ' ) then -c-- read error standard deviation - CALL READ_REC_3D_RL( sshv4cost_errfile(num_var), cost_iprec, 1, - & wsshv4tmp, 1, 1, myThid ) -c-- convert to units of meters - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wsshv4tmp(i,j,bi,bj)=wsshv4tmp(i,j,bi,bj) - & *sshv4cost_errfactor(num_var) - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wsshv4tmp(i,j,bi,bj)=0. _d 0 - enddo - enddo - enddo - enddo - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if (wsshv4tmp(i,j,bi,bj).ne.0) then - wsshv4tmp(i,j,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - & ( wsshv4tmp(i,j,bi,bj)* wsshv4tmp(i,j,bi,bj) ) - wsshv4(i,j,num_var,bi,bj)=wsshv4tmp(i,j,bi,bj) - endif - enddo - enddo - enddo - enddo - - call active_write_xy_loc( 'wsshv4', wsshv4tmp, - & num_var, 0, myThid, dummy) - - enddo - -#endif - ENDIF !IF (using_cost_altim) THEN - -#ifdef ALLOW_BP_COST_CONTRIBUTION - IF (using_cost_bp) THEN - if ( bperrfile .NE. ' ' ) - & CALL READ_REC_3D_RL( bperrfile, cost_iprec, 1, - & wbp, 1, 1, myThid) - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if (wbp(i,j,bi,bj).ne.0) - & wbp(i,j,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - & ( wbp(i,j,bi,bj)* wbp(i,j,bi,bj) ) - enddo - enddo - enddo - enddo - - call active_write_xy_loc( 'wbp', wbp, 1, 0, myThid, dummy) - ENDIF ! IF (using_cost_bp) THEN -#endif - -#ifdef ALLOW_IESTAU_COST_CONTRIBUTION - if ( ieserrfile .NE. ' ' ) - & CALL READ_REC_3D_RL( ieserrfile, cost_iprec, 1, - & wies, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if (wies(i,j,bi,bj).ne.0) - & wies(i,j,bi,bj)= frame(i,j)*maskC(i,j,k,bi,bj)/ - & ( wies(i,j,bi,bj)* wies(i,j,bi,bj) ) - enddo - enddo - enddo - enddo - - call active_write_xy_loc( 'wies', wies, 1, 0, myThid, dummy) -#endif - -c-- Read zonal wind stress variance. -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) - IF (using_cost_scat) THEN - - nnz = 1 - irec = 1 - if ( scatx_errfile .NE. ' ' ) - & CALL READ_REC_3D_RL( scatx_errfile, cost_iprec, nnz, - & wscatx, irec, 1, myThid ) - if ( scaty_errfile .NE. ' ' ) - & CALL READ_REC_3D_RL( scaty_errfile,cost_iprec, nnz, - & wscaty, irec, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wscatx(i,j,bi,bj) .lt. -9900.) then - wscatx(i,j,bi,bj) = 0. _d 0 - endif - wscatx(i,j,bi,bj) = wscatx(i,j,bi,bj) - wscatx(i,j,bi,bj) = max(wscatx(i,j,bi,bj),wtau0) - wscatx(i,j,bi,bj) = wscatx(i,j,bi,bj)*maskw(i,j,k,bi,bj) - & *frame(i,j) - if (wscaty(i,j,bi,bj) .lt. -9900.) then - wscaty(i,j,bi,bj) = 0. _d 0 - endif - wscaty(i,j,bi,bj) = wscaty(i,j,bi,bj) - wscaty(i,j,bi,bj) = max(wscaty(i,j,bi,bj),wtau0) - wscaty(i,j,bi,bj) = wscaty(i,j,bi,bj)*masks(i,j,k,bi,bj) - & *frame(i,j) - enddo - enddo - enddo - enddo - - ENDIF ! IF (using_cost_scat) THEN -#endif - -c-- Read zonal wind stress variance. -#if (defined (ALLOW_STRESS_MEAN_COST_CONTRIBUTION)) - nnz = 1 - irec = 1 -cph call mdsreadfield( tauum_errfile, cost_iprec, cost_yftype, -cph & nnz, wtauum, irec, myThid ) -cph call mdsreadfield( tauvm_errfile, cost_iprec, cost_yftype, -cph & nnz, wtauvm, irec, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wtauum(i,j,bi,bj) .lt. -9900.) then - wtauum(i,j,bi,bj) = 0. _d 0 - endif - wtauum(i,j,bi,bj) = max(wtauum(i,j,bi,bj),wtau0m) - & *frame(i,j) -c-- Test for missing values. - if (wtauvm(i,j,bi,bj) .lt. -9900.) then - wtauvm(i,j,bi,bj) = 0. _d 0 - endif - wtauvm(i,j,bi,bj) = max(wtauvm(i,j,bi,bj),wtau0m) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_USTRESS_COST_CONTRIBUTION) || defined (ALLOW_USTRESS_CONTROL)) - nnz = 1 -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( tauu_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( tauu_errfile, cost_iprec, nnz, - & wtauu, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wtauu(i,j,bi,bj) .lt. -9900.) then - wtauu(i,j,bi,bj) = 0. _d 0 - endif - wtauu(i,j,bi,bj) = max(wtauu(i,j,bi,bj),wtau0) -#ifndef ALLOW_ROTATE_UV_CONTROLS - wtauu(i,j,bi,bj) = wtauu(i,j,bi,bj)*maskw(i,j,k,bi,bj) - & *frame(i,j) -cph( - wtauu2(i,j,bi,bj) = wtau0*maskW(i,j,k,bi,bj)*frame(i,j) -cph) -#else - wtauu(i,j,bi,bj) = wtauu(i,j,bi,bj)*maskc(i,j,k,bi,bj) - & *frame(i,j) - wtauu2(i,j,bi,bj) = wtau0*maskc(i,j,k,bi,bj)*frame(i,j) -#endif - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_UWIND_COST_CONTRIBUTION) || defined (ALLOW_UWIND_CONTROL)) - nnz = 1 -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( uwind_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( uwind_errfile, cost_iprec, nnz, - & wuwind, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - k = 1 - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wuwind(i,j,bi,bj) .lt. -9900.) then - wuwind(i,j,bi,bj) = 0. _d 0 - endif - wuwind(i,j,bi,bj) = wuwind(i,j,bi,bj) - wuwind(i,j,bi,bj) = max(wuwind(i,j,bi,bj),wwind0) - wuwind(i,j,bi,bj) = wuwind(i,j,bi,bj)*maskc(i,j,k,bi,bj) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -c-- Read meridional wind stress variance. -#if (defined (ALLOW_VSTRESS_COST_CONTRIBUTION) || defined (ALLOW_VSTRESS_CONTROL)) - nnz = 1 -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - - if ( tauv_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( tauv_errfile, cost_iprec, nnz, - & wtauv, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wtauv(i,j,bi,bj) .lt. -9900.) then - wtauv(i,j,bi,bj) = 0. _d 0 - endif - wtauv(i,j,bi,bj) = max(wtauv(i,j,bi,bj),wtau0) -#ifndef ALLOW_ROTATE_UV_CONTROLS - wtauv(i,j,bi,bj) = wtauv(i,j,bi,bj)*masks(i,j,k,bi,bj) - & *frame(i,j) -cph( - wtauv2(i,j,bi,bj) = wtau0*maskS(i,j,k,bi,bj)*frame(i,j) -cph) -#else - wtauv(i,j,bi,bj) = wtauv(i,j,bi,bj)*maskc(i,j,k,bi,bj) - & *frame(i,j) - wtauv2(i,j,bi,bj) = wtau0*maskc(i,j,k,bi,bj)*frame(i,j) -#endif - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_VWIND_COST_CONTRIBUTION) || defined (ALLOW_VWIND_CONTROL)) - nnz = 1 -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - - if ( vwind_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( vwind_errfile, cost_iprec, nnz, - & wvwind, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wvwind(i,j,bi,bj) .lt. -9900.) then - wvwind(i,j,bi,bj) = 0. _d 0 - endif - wvwind(i,j,bi,bj) = wvwind(i,j,bi,bj) - wvwind(i,j,bi,bj) = max(wvwind(i,j,bi,bj),wwind0) - wvwind(i,j,bi,bj) = wvwind(i,j,bi,bj)*maskc(i,j,k,bi,bj) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_HFLUX_COST_CONTRIBUTION) || defined (ALLOW_HFLUX_CONTROL)) -c-- Read heat flux flux variance. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( hflux_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( hflux_errfile, cost_iprec, nnz, - & whflux, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (whflux(i,j,bi,bj) .lt. -9900.) then - whflux(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of W/m**2. - whflux(i,j,bi,bj) = whflux(i,j,bi,bj)/3. - whflux(i,j,bi,bj) = max(whflux(i,j,bi,bj),whflux0) - & *frame(i,j) - whfluxm(i,j,bi,bj) = max(whfluxm(i,j,bi,bj),whflux0m) - & *frame(i,j) -cph( - whflux2(i,j,bi,bj) = whflux0*frame(i,j) -cph) - enddo - enddo - enddo - enddo -#elif (defined (ALLOW_ATEMP_COST_CONTRIBUTION) || defined (ALLOW_ATEMP_CONTROL)) -c-- Read atmos. temp. variance. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( atemp_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( atemp_errfile, cost_iprec, nnz, - & watemp, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (watemp(i,j,bi,bj) .lt. -9900.) then - watemp(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of W/m**2?? should be in degC or degK - watemp(i,j,bi,bj) = watemp(i,j,bi,bj) - watemp(i,j,bi,bj) = max(watemp(i,j,bi,bj),watemp0) - & *frame(i,j) - enddo - enddo - enddo - enddo - -#endif - -#if (defined (ALLOW_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SFLUX_CONTROL)) -c-- Read salt flux variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( sflux_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( sflux_errfile, cost_iprec, nnz, - & wsflux, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wsflux(i,j,bi,bj) .lt. -9900.) then - wsflux(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wsflux(i,j,bi,bj) = wsflux(i,j,bi,bj) / 3. - wsflux(i,j,bi,bj) = max(wsflux(i,j,bi,bj),wsflux0) - & *frame(i,j) - wsfluxm(i,j,bi,bj) = max(wsfluxm(i,j,bi,bj),wsflux0m) - & *frame(i,j) -cph( - wsflux2(i,j,bi,bj) = wsflux0*frame(i,j) -cph) - enddo - enddo - enddo - enddo -#elif (defined (ALLOW_AQH_COST_CONTRIBUTION) || defined (ALLOW_AQH_CONTROL)) -c-- Secific humid. variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( aqh_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( aqh_errfile, cost_iprec, nnz, - & waqh, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (waqh(i,j,bi,bj) .lt. -9900.) then - waqh(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - waqh(i,j,bi,bj) = waqh(i,j,bi,bj) - waqh(i,j,bi,bj) = max(waqh(i,j,bi,bj),waqh0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_PRECIP_COST_CONTRIBUTION) || defined (ALLOW_PRECIP_CONTROL)) -c-- Atmos. precipitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( precip_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( precip_errfile, cost_iprec, nnz, - & wprecip, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wprecip(i,j,bi,bj) .lt. -9900.) then - wprecip(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wprecip(i,j,bi,bj) = wprecip(i,j,bi,bj) - wprecip(i,j,bi,bj) = max(wprecip(i,j,bi,bj),wprecip0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_SWFLUX_COST_CONTRIBUTION) || defined (ALLOW_SWFLUX_CONTROL)) -c-- Atmos. swfluxitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( swflux_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( swflux_errfile, cost_iprec, nnz, - & wswflux, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wswflux(i,j,bi,bj) .lt. -9900.) then - wswflux(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wswflux(i,j,bi,bj) = wswflux(i,j,bi,bj) - wswflux(i,j,bi,bj) = max(wswflux(i,j,bi,bj),wswflux0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_SWDOWN_COST_CONTRIBUTION) || defined (ALLOW_SWDOWN_CONTROL)) -c-- Atmos. swdownitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( swdown_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( swdown_errfile, cost_iprec, nnz, - & wswdown, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wswdown(i,j,bi,bj) .lt. -9900.) then - wswdown(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wswdown(i,j,bi,bj) = wswdown(i,j,bi,bj) - wswdown(i,j,bi,bj) = max(wswdown(i,j,bi,bj),wswdown0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_LWFLUX_COST_CONTRIBUTION) || defined (ALLOW_LWFLUX_CONTROL)) -c-- Atmos. lwfluxitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( lwflux_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( lwflux_errfile, cost_iprec, nnz, - & wlwflux, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wlwflux(i,j,bi,bj) .lt. -9900.) then - wlwflux(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wlwflux(i,j,bi,bj) = wlwflux(i,j,bi,bj) - wlwflux(i,j,bi,bj) = max(wlwflux(i,j,bi,bj),wlwflux0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_LWDOWN_COST_CONTRIBUTION) || defined (ALLOW_LWDOWN_CONTROL)) -c-- Atmos. lwdownitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( lwdown_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( lwdown_errfile, cost_iprec, nnz, - & wlwdown ,irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wlwdown(i,j,bi,bj) .lt. -9900.) then - wlwdown(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wlwdown(i,j,bi,bj) = wlwdown(i,j,bi,bj) - wlwdown(i,j,bi,bj) = max(wlwdown(i,j,bi,bj),wlwdown0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_SNOWPRECIP_COST_CONTRIBUTION) || defined (ALLOW_SNOWPRECIP_CONTROL)) -c-- Atmos. snowprecipitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( snowprecip_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( snowprecip_errfile, cost_iprec, nnz, - & wsnowprecip, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wsnowprecip(i,j,bi,bj) .lt. -9900.) then - wsnowprecip(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wsnowprecip(i,j,bi,bj) = wsnowprecip(i,j,bi,bj) - wsnowprecip(i,j,bi,bj) = - & max(wsnowprecip(i,j,bi,bj),wsnowprecip0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_EVAP_COST_CONTRIBUTION) || defined (ALLOW_EVAP_CONTROL)) -c-- Atmos. evapitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( evap_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( evap_errfile, cost_iprec, nnz, - & wevap, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wevap(i,j,bi,bj) .lt. -9900.) then - wevap(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wevap(i,j,bi,bj) = wevap(i,j,bi,bj) - wevap(i,j,bi,bj) = max(wevap(i,j,bi,bj),wevap0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_APRESSURE_COST_CONTRIBUTION) || defined (ALLOW_APRESSURE_CONTROL)) -c-- Atmos. apressureitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( apressure_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( apressure_errfile, cost_iprec, nnz, - & wapressure, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wapressure(i,j,bi,bj) .lt. -9900.) then - wapressure(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wapressure(i,j,bi,bj) = wapressure(i,j,bi,bj) - wapressure(i,j,bi,bj) = - & max(wapressure(i,j,bi,bj),wapressure0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_RUNOFF_COST_CONTRIBUTION) || defined (ALLOW_RUNOFF_CONTROL)) -c-- Atmos. runoffitation variance. Second read: data in units of m/s. - nnz = 1 -c-- First record in data file: mean field. -c-- Second record in data file: rms field. -ce irec = 2 -ce( due to Patrick processing: - irec = 1 -ce) - if ( runoff_errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( runoff_errfile, cost_iprec, nnz, - & wrunoff, irec, 1, myThid ) - endif - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wrunoff(i,j,bi,bj) .lt. -9900.) then - wrunoff(i,j,bi,bj) = 0. _d 0 - endif -c-- Data are in units of m/s. - wrunoff(i,j,bi,bj) = wrunoff(i,j,bi,bj) - wrunoff(i,j,bi,bj) = max(wrunoff(i,j,bi,bj),wrunoff0) - & *frame(i,j) - enddo - enddo - enddo - enddo -#endif - -#if (defined (ALLOW_BOTTOMDRAG_COST_CONTRIBUTION) || defined (ALLOW_BOTTOMDRAG_CONTROL)) - if ( bottomdrag_errfile .NE. ' ' ) then - - CALL READ_REC_3D_RL( bottomdrag_errfile, cost_iprec, nnz, - & wbottomdrag, irec, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wbottomdrag(i,j,bi,bj) .lt. -9900.) then - wbottomdrag(i,j,bi,bj) = 0. _d 0 - endif - enddo - enddo - enddo - enddo - - endif -#endif - -#if (defined (ALLOW_DIFFKR_COST_CONTRIBUTION) || defined (ALLOW_DIFFKR_CONTROL)) - if ( diffkr_errfile .NE. ' ' ) then - - CALL READ_REC_3D_RL( diffkr_errfile, cost_iprec, Nr, - & wdiffkr2, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wdiffkr2(i,j,k,bi,bj) .lt. -9900.) then - wdiffkr2(i,j,k,bi,bj) = 0. _d 0 - endif - enddo - enddo - enddo - enddo - enddo - - endif -#endif - -#if (defined (ALLOW_KAPGM_COST_CONTRIBUTION) || defined (ALLOW_KAPGM_CONTROL)) - if ( kapgm_errfile .NE. ' ' ) then - - CALL READ_REC_3D_RL( kapgm_errfile, cost_iprec, Nr, - & wkapgm2, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wkapgm2(i,j,k,bi,bj) .lt. -9900.) then - wkapgm2(i,j,k,bi,bj) = 0. _d 0 - endif - enddo - enddo - enddo - enddo - enddo - - endif -#endif - -#if (defined (ALLOW_KAPREDI_COST_CONTRIBUTION) || defined (ALLOW_KAPREDI_CONTROL)) - if ( kapredi_errfile .NE. ' ' ) then - - CALL READ_REC_3D_RL( kapredi_errfile, cost_iprec, Nr, - & wkapredi2, 1, 1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wkapredi2(i,j,k,bi,bj) .lt. -9900.) then - wkapredi2(i,j,k,bi,bj) = 0. _d 0 - endif - enddo - enddo - enddo - enddo - enddo - - endif -#endif - -#if ( defined (ALLOW_EDDYPSI_COST_CONTRIBUTION) || defined (ALLOW_EDDYPSI_CONTROL) ) - if ( edtau_errfile .NE. ' ' ) then - - CALL READ_REC_3D_RL( edtau_errfile, cost_iprec, Nr, - & wedtaux2, 1 ,1, myThid ) - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if (wedtaux2(i,j,k,bi,bj) .lt. -9900.) then - wedtaux2(i,j,k,bi,bj) = 0. _d 0 - endif - wedtauy2(i,j,k,bi,bj)=wedtaux2(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - - endif -#endif - -#if (defined (ALLOW_ETAN0_COST_CONTRIBUTION) || defined (ALLOW_ETAN0_CONTROL)) - if ( etan0errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( etan0errfile, cost_iprec, 1, - & wetan, 1, 1, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if ( wetan(i,j,bi,bj).eq.0 ) then - wetan(i,j,bi,bj) = 0. _d 0 - else - wetan(i,j,bi,bj)=frame(i,j)*maskC(i,j,1,bi,bj)/ - $ ( wetan(i,j,bi,bj)*wetan(i,j,bi,bj) ) - endif - enddo - enddo - enddo - enddo -! else -! do bj = jtlo,jthi -! do bi = itlo,ithi -! do j = jmin,jmax -! do i = imin,imax -! wetan(i,j,bi,bj)= -! $ wetan(i,j,bi,bj)*frame(i,j)*maskC(i,j,1,bi,bj) -! enddo -! enddo -! enddo -! enddo - endif - call active_write_xy( 'wetan', wetan, - & 1, 0, myThid, dummy) - _EXCH_XY_RL( wetan, myThid ) -#endif - -#if (defined (ALLOW_UVEL0_COST_CONTRIBUTION) || defined (ALLOW_UVEL0_CONTROL)) -#if (defined (ALLOW_VVEL0_COST_CONTRIBUTION) || defined (ALLOW_VVEL0_CONTROL)) - - if ( uvel0errfile .NE. ' ' .AND. vvel0errfile .NE. ' ' ) then - CALL READ_REC_3D_RL( uvel0errfile, cost_iprec, Nr, - & wuvel3d, 1, 1, myThid ) - CALL READ_REC_3D_RL( vvel0errfile, cost_iprec, Nr, - & wvvel3d, 1, 1, myThid ) - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - do j = jmin,jmax - do i = imin,imax -c-- Test for missing values. - if ( wuvel3d(i,j,k,bi,bj).eq.0 ) then - wuvel3d(i,j,k,bi,bj) = 0. _d 0 - else - wuvel3d(i,j,k,bi,bj)=frame(i,j)*maskW(i,j,k,bi,bj)/ - $ ( wuvel3d(i,j,k,bi,bj)*wuvel3d(i,j,k,bi,bj) ) - endif - if ( wvvel3d(i,j,k,bi,bj).eq.0 ) then - wvvel3d(i,j,k,bi,bj) = 0. _d 0 - else - wvvel3d(i,j,k,bi,bj)=frame(i,j)*maskS(i,j,k,bi,bj)/ - $ ( wvvel3d(i,j,k,bi,bj)*wvvel3d(i,j,k,bi,bj) ) - endif - enddo - enddo - enddo - enddo - enddo - endif - call active_write_xyz( 'wuvel', wuvel3d, - & 1, 0, myThid, dummy) - call active_write_xyz( 'wvvel', wvvel3d, - & 1, 0, myThid, dummy) - _EXCH_XYZ_RL( wuvel3d, myThid ) - _EXCH_XYZ_RL( wvvel3d, myThid ) -#endif -#endif - -c-- Units have to be checked! - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if (wtp(i,j,bi,bj) .ne. 0.) then - wtp (i,j,bi,bj) = 1./wtp(i,j,bi,bj)/wtp(i,j,bi,bj) - endif - if (wers(i,j,bi,bj) .ne. 0.) then - wers(i,j,bi,bj) = 1./wers(i,j,bi,bj)/wers(i,j,bi,bj) - endif - if (wgfo(i,j,bi,bj) .ne. 0.) then - wgfo(i,j,bi,bj) = 1./wgfo(i,j,bi,bj)/wgfo(i,j,bi,bj) - endif - if (wp(i,j,bi,bj) .ne. 0.) then - wp(i,j,bi,bj) = 1./wp(i,j,bi,bj)/wp(i,j,bi,bj) - endif - if (wtauu(i,j,bi,bj) .ne. 0.) then - wtauu(i,j,bi,bj) = 1./wtauu(i,j,bi,bj)/wtauu(i,j,bi,bj) - else - wtauu(i,j,bi,bj) = 0.0 _d 0 - endif - if (wtauum(i,j,bi,bj) .ne. 0.) then - wtauum(i,j,bi,bj) = - & 1./wtauum(i,j,bi,bj)/wtauum(i,j,bi,bj) - else - wtauum(i,j,bi,bj) = 0.0 _d 0 - endif - if (wscatx(i,j,bi,bj) .ne. 0.) then - wscatx(i,j,bi,bj) = - & 1./wscatx(i,j,bi,bj)/wscatx(i,j,bi,bj) - else - wscatx(i,j,bi,bj) = 0.0 _d 0 - endif - if (wtauv(i,j,bi,bj) .ne. 0.) then - wtauv(i,j,bi,bj) = 1./wtauv(i,j,bi,bj)/wtauv(i,j,bi,bj) - else - wtauv(i,j,bi,bj) = 0.0 _d 0 - endif - if (wtauvm(i,j,bi,bj) .ne. 0.) then - wtauvm(i,j,bi,bj) = - & 1./wtauvm(i,j,bi,bj)/wtauvm(i,j,bi,bj) - else - wtauvm(i,j,bi,bj) = 0.0 _d 0 - endif - if (wscaty(i,j,bi,bj) .ne. 0.) then - wscaty(i,j,bi,bj) = - & 1./wscaty(i,j,bi,bj)/wscaty(i,j,bi,bj) - else - wscaty(i,j,bi,bj) = 0.0 _d 0 - endif - if (whflux(i,j,bi,bj) .ne. 0.) then - whflux(i,j,bi,bj) = - & 1./whflux(i,j,bi,bj)/whflux(i,j,bi,bj) - else - whflux(i,j,bi,bj) = 0.0 _d 0 - endif - if (whfluxm(i,j,bi,bj) .ne. 0.) then - whfluxm(i,j,bi,bj) = - & 1./whfluxm(i,j,bi,bj)/whfluxm(i,j,bi,bj) - else - whfluxm(i,j,bi,bj) = 0.0 _d 0 - endif - if (wsflux(i,j,bi,bj) .ne. 0.) then - wsflux(i,j,bi,bj) = - & 1./wsflux(i,j,bi,bj)/wsflux(i,j,bi,bj) - else - wsflux(i,j,bi,bj) = 0.0 _d 0 - endif - if (wsfluxm(i,j,bi,bj) .ne. 0.) then - wsfluxm(i,j,bi,bj) = - & 1./wsfluxm(i,j,bi,bj)/wsfluxm(i,j,bi,bj) - else - wsfluxm(i,j,bi,bj) = 0.0 _d 0 - endif - if (wuwind(i,j,bi,bj) .ne. 0.) then - wuwind(i,j,bi,bj) = - & 1./wuwind(i,j,bi,bj)/wuwind(i,j,bi,bj) - else - wuwind(i,j,bi,bj) = 0.0 _d 0 - endif - if (wvwind(i,j,bi,bj) .ne. 0.) then - wvwind(i,j,bi,bj) = - & 1./wvwind(i,j,bi,bj)/wvwind(i,j,bi,bj) - else - wvwind(i,j,bi,bj) = 0.0 _d 0 - endif - if (watemp(i,j,bi,bj) .ne. 0.) then - watemp(i,j,bi,bj) = - & 1./watemp(i,j,bi,bj)/watemp(i,j,bi,bj) - else - watemp(i,j,bi,bj) = 0.0 _d 0 - endif - if (waqh(i,j,bi,bj) .ne. 0.) then - waqh(i,j,bi,bj) = - & 1./waqh(i,j,bi,bj)/waqh(i,j,bi,bj) - else - waqh(i,j,bi,bj) = 0.0 _d 0 - endif - if (wprecip(i,j,bi,bj) .ne. 0.) then - wprecip(i,j,bi,bj) = - & 1./wprecip(i,j,bi,bj)/wprecip(i,j,bi,bj) - else - wprecip(i,j,bi,bj) = 0.0 _d 0 - endif - if (wswflux(i,j,bi,bj) .ne. 0.) then - wswflux(i,j,bi,bj) = - & 1./wswflux(i,j,bi,bj)/wswflux(i,j,bi,bj) - else - wswflux(i,j,bi,bj) = 0.0 _d 0 - endif - if (wswdown(i,j,bi,bj) .ne. 0.) then - wswdown(i,j,bi,bj) = - & 1./wswdown(i,j,bi,bj)/wswdown(i,j,bi,bj) - else - wswdown(i,j,bi,bj) = 0.0 _d 0 - endif - if (wlwflux(i,j,bi,bj) .ne. 0.) then - wlwflux(i,j,bi,bj) = - & 1./wlwflux(i,j,bi,bj)/wlwflux(i,j,bi,bj) - else - wlwflux(i,j,bi,bj) = 0.0 _d 0 - endif - if (wlwdown(i,j,bi,bj) .ne. 0.) then - wlwdown(i,j,bi,bj) = - & 1./wlwdown(i,j,bi,bj)/wlwdown(i,j,bi,bj) - else - wlwdown(i,j,bi,bj) = 0.0 _d 0 - endif - if (wevap(i,j,bi,bj) .ne. 0.) then - wevap(i,j,bi,bj) = - & 1./wevap(i,j,bi,bj)/wevap(i,j,bi,bj) - else - wevap(i,j,bi,bj) = 0.0 _d 0 - endif - if (wsnowprecip(i,j,bi,bj) .ne. 0.) then - wsnowprecip(i,j,bi,bj) = - & 1./wsnowprecip(i,j,bi,bj)/wsnowprecip(i,j,bi,bj) - else - wsnowprecip(i,j,bi,bj) = 0.0 _d 0 - endif - if (wapressure(i,j,bi,bj) .ne. 0.) then - wapressure(i,j,bi,bj) = - & 1./wapressure(i,j,bi,bj)/wapressure(i,j,bi,bj) - else - wapressure(i,j,bi,bj) = 0.0 _d 0 - endif - if (wrunoff(i,j,bi,bj) .ne. 0.) then - wrunoff(i,j,bi,bj) = - & 1./wrunoff(i,j,bi,bj)/wrunoff(i,j,bi,bj) - else - wrunoff(i,j,bi,bj) = 0.0 _d 0 - endif - if (wbottomdrag(i,j,bi,bj) .ne. 0.) then - wbottomdrag(i,j,bi,bj) = - & 1./wbottomdrag(i,j,bi,bj)/wbottomdrag(i,j,bi,bj) - else - wbottomdrag(i,j,bi,bj) = 0.0 _d 0 - endif - -c the following makes no sense inside i,j loop -c if (wsfluxmm(bi,bj).ne.0.) -c & wsfluxmm(bi,bj) = 1./wsfluxmm(bi,bj)*wsfluxmm(bi,bj) -c if (whfluxmm(bi,bj).ne.0.) -c & whfluxmm(bi,bj) = 1./whfluxmm(bi,bj)*whfluxmm(bi,bj) - -cph( - if (whflux2(i,j,bi,bj) .ne. 0.) then - whflux2(i,j,bi,bj) = - & 1./whflux2(i,j,bi,bj)/whflux2(i,j,bi,bj) - else - whflux2(i,j,bi,bj) = 0.0 _d 0 - endif - if (wsflux2(i,j,bi,bj) .ne. 0.) then - wsflux2(i,j,bi,bj) = - & 1./wsflux2(i,j,bi,bj)/wsflux2(i,j,bi,bj) - else - wsflux2(i,j,bi,bj) = 0.0 _d 0 - endif - if (wtauu2(i,j,bi,bj) .ne. 0.) then - wtauu2(i,j,bi,bj) = - & 1./wtauu2(i,j,bi,bj)/wtauu2(i,j,bi,bj) - else - wtauu2(i,j,bi,bj) = 0.0 _d 0 - endif - if (wtauv2(i,j,bi,bj) .ne. 0.) then - wtauv2(i,j,bi,bj) = - & 1./wtauv2(i,j,bi,bj)/wtauv2(i,j,bi,bj) - else - wtauv2(i,j,bi,bj) = 0.0 _d 0 - endif -cph) - enddo - enddo - -#if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS)) -#ifdef ALLOW_OBCS_COST_CONTRIBUTION - do iobcs = 1,nobcs - do k = 1,nr -#ifdef ALLOW_OBCSN_COST_CONTRIBUTION - if (wobcsn(k,iobcs) .ne. 0.) then - wobcsn(k,iobcs) = - & ratio/wobcsn(k,iobcs)/wobcsn(k,iobcs) - else - wobcsn(k,iobcs) = 0.0 _d 0 - endif -#endif -#ifdef ALLOW_OBCSS_COST_CONTRIBUTION - if (wobcss(k,iobcs) .ne. 0.) then - wobcss(k,iobcs) = - & ratio/wobcss(k,iobcs)/wobcss(k,iobcs) - else - wobcss(k,iobcs) = 0.0 _d 0 - endif -#endif -#ifdef ALLOW_OBCSW_COST_CONTRIBUTION - if (wobcsw(k,iobcs) .ne. 0.) then - wobcsw(k,iobcs) = - & ratio/wobcsw(k,iobcs)/wobcsw(k,iobcs) - else - wobcsw(k,iobcs) = 0.0 _d 0 - endif -#endif -#ifdef ALLOW_OBCSE_COST_CONTRIBUTION - if (wobcse(k,iobcs) .ne. 0.) then - wobcse(k,iobcs) = - & ratio/wobcse(k,iobcs)/wobcse(k,iobcs) - else - wobcse(k,iobcs) = 0.0 _d 0 - endif -#endif - enddo - enddo -#endif /* ALLOW_OBCS_COST_CONTRIBUTION */ -#endif /* ALLOW_CTRL and ALLOW_OBCS */ - - enddo - enddo - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nr - if (wdiffkr(k,bi,bj) .ne. 0.) then - wdiffkr(k,bi,bj) = 1./wdiffkr(k,bi,bj)/wdiffkr(k,bi,bj) - else - wdiffkr(k,bi,bj) = 0.0 _d 0 - endif - if (wkapgm(k,bi,bj) .ne. 0.) then - wkapgm(k,bi,bj) = 1./wkapgm(k,bi,bj)/wkapgm(k,bi,bj) - else - wkapgm(k,bi,bj) = 0.0 _d 0 - endif - if (wkapredi(k,bi,bj) .ne. 0.) then - wkapredi(k,bi,bj) = 1./wkapredi(k,bi,bj)/wkapredi(k,bi,bj) - else - wkapredi(k,bi,bj) = 0.0 _d 0 - endif - if (wedtaux(k,bi,bj) .ne. 0.) then - wedtaux(k,bi,bj) = 1./wedtaux(k,bi,bj)/wedtaux(k,bi,bj) - else - wedtaux(k,bi,bj) = 0.0 _d 0 - endif - if (wedtauy(k,bi,bj) .ne. 0.) then - wedtauy(k,bi,bj) = 1./wedtauy(k,bi,bj)/wedtauy(k,bi,bj) - else - wedtauy(k,bi,bj) = 0.0 _d 0 - endif - do j = jmin,jmax - do i = imin,imax - if (wdiffkr2(i,j,k,bi,bj) .ne. 0.) then - wdiffkr2(i,j,k,bi,bj) = frame(i,j)/ - & wdiffkr2(i,j,k,bi,bj)/wdiffkr2(i,j,k,bi,bj) - else - wdiffkr2(i,j,k,bi,bj) = 0.0 _d 0 - endif - wdiffkrFld(i,j,k,bi,bj) = wdiffkr2(i,j,k,bi,bj) -c - if (wkapgm2(i,j,k,bi,bj) .ne. 0.) then - wkapgm2(i,j,k,bi,bj) = frame(i,j)/ - & wkapgm2(i,j,k,bi,bj)/wkapgm2(i,j,k,bi,bj) - else - wkapgm2(i,j,k,bi,bj) = 0.0 _d 0 - endif - wkapgmFld(i,j,k,bi,bj) = wkapgm2(i,j,k,bi,bj) -c - if (wkapredi2(i,j,k,bi,bj) .ne. 0.) then - wkapredi2(i,j,k,bi,bj) = frame(i,j)/ - & wkapredi2(i,j,k,bi,bj)/wkapredi2(i,j,k,bi,bj) - else - wkapredi2(i,j,k,bi,bj) = 0.0 _d 0 - endif - wkaprediFld(i,j,k,bi,bj) = wkapredi2(i,j,k,bi,bj) -c - if (wedtaux2(i,j,k,bi,bj) .ne. 0.) then - wedtaux2(i,j,k,bi,bj) = frame(i,j)/ - & wedtaux2(i,j,k,bi,bj)/wedtaux2(i,j,k,bi,bj) - else - wedtaux2(i,j,k,bi,bj) = 0.0 _d 0 - endif - wedtauxFld(i,j,k,bi,bj) = wedtaux2(i,j,k,bi,bj) -c - if (wedtauy2(i,j,k,bi,bj) .ne. 0.) then - wedtauy2(i,j,k,bi,bj) = frame(i,j)/ - & wedtauy2(i,j,k,bi,bj)/wedtauy2(i,j,k,bi,bj) - else - wedtauy2(i,j,k,bi,bj) = 0.0 _d 0 - endif - wedtauyFld(i,j,k,bi,bj) = wedtauy2(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - -c -c write masks and weights to files to be read by a master process -c -c#ifdef REAL4_IS_SLOW -C leave this commented out (in case of problems with ACTIVE_WRITE_GEN_RS) -c call active_write_xyz_loc( 'maskCtrlC', maskC, -c & 1, 0, myThid, dummy) -c call active_write_xyz_loc( 'maskCtrlW', maskW, -c & 1, 0, myThid, dummy) -c call active_write_xyz_loc( 'maskCtrlS', maskS, -c & 1, 0, myThid, dummy) -c#else - CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlC', maskC, 'XY', Nr, - I 1, .TRUE., 0, myThid, dummyRS ) - CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlW', maskW, 'XY', Nr, - I 1, .TRUE., 0, myThid, dummyRS ) - CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlS', maskS, 'XY', Nr, - I 1, .TRUE., 0, myThid, dummyRS ) -c#endif - -#if (defined (ALLOW_HFLUX_COST_CONTRIBUTION) || defined (ALLOW_HFLUX_CONTROL)) - call active_write_xy_loc( 'whflux', whflux, 1, 0, myThid, dummy) - call active_write_xy_loc( 'whflux2', whflux2, 1, 0, myThid, dummy) -#elif (defined (ALLOW_ATEMP_COST_CONTRIBUTION) || defined (ALLOW_ATEMP_CONTROL)) - call active_write_xy_loc( 'watemp', watemp, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SFLUX_CONTROL)) - call active_write_xy_loc( 'wsflux', wsflux, 1, 0, myThid, dummy) - call active_write_xy_loc( 'wsflux2', wsflux2, 1, 0, myThid, dummy) -#elif (defined (ALLOW_AQH_COST_CONTRIBUTION) || defined (ALLOW_AQH_CONTROL)) - call active_write_xy_loc( 'waqh', waqh, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_PRECIP_COST_CONTRIBUTION) || defined (ALLOW_PRECIP_CONTROL)) - call active_write_xy_loc( 'wprecip', wprecip, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_SWFLUX_COST_CONTRIBUTION) || defined (ALLOW_SWFLUX_CONTROL)) - call active_write_xy_loc( 'wswflux', wswflux, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_SWDOWN_COST_CONTRIBUTION) || defined (ALLOW_SWDOWN_CONTROL)) - call active_write_xy_loc( 'wswdown', wswdown, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_LWFLUX_COST_CONTRIBUTION) || defined (ALLOW_LWFLUX_CONTROL)) - call active_write_xy_loc( 'wlwflux', wlwflux, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_LWDOWN_COST_CONTRIBUTION) || defined (ALLOW_LWDOWN_CONTROL)) - call active_write_xy_loc( 'wlwdown', wlwdown, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_EVAP_COST_CONTRIBUTION) || defined (ALLOW_EVAP_CONTROL)) - call active_write_xy_loc( 'wevap', wevap, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_SNOWPRECIP_COST_CONTRIBUTION) || defined (ALLOW_SNOWPRECIP_CONTROL)) - call active_write_xy_loc( 'wsnowprecip', wsnowprecip, - & 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_APRESSURE_COST_CONTRIBUTION) || defined (ALLOW_APRESSURE_CONTROL)) - call active_write_xy_loc( 'wapressure', wapressure, - & 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_RUNOFF_COST_CONTRIBUTION) || defined (ALLOW_RUNOFF_CONTROL)) - call active_write_xy_loc( 'wrunoff', wrunoff, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_USTRESS_COST_CONTRIBUTION) || defined (ALLOW_USTRESS_CONTROL)) - call active_write_xy_loc( 'wtauu', wtauu, 1, 0, myThid, dummy) - call active_write_xy_loc( 'wtauu2', wtauu2, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_UWIND_COST_CONTRIBUTION) || defined (ALLOW_UWIND_CONTROL)) - call active_write_xy_loc( 'wuwind', wuwind, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_VSTRESS_COST_CONTRIBUTION) || defined (ALLOW_VSTRESS_CONTROL)) - call active_write_xy_loc( 'wtauv', wtauv, 1, 0, myThid, dummy) - call active_write_xy_loc( 'wtauv2', wtauv2, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_VWIND_COST_CONTRIBUTION) || defined (ALLOW_VWIND_CONTROL)) - call active_write_xy_loc( 'wvwind', wvwind, 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_KAPGM_COST_CONTRIBUTION) || defined (ALLOW_KAPGM_CONTROL)) - call active_write_xyz( 'wkapgmFld',wkapgmFld, - & 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_KAPREDI_COST_CONTRIBUTION) || defined (ALLOW_KAPREDI_CONTROL)) - call active_write_xyz( 'wkaprediFld',wkaprediFld, - & 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_DIFFKR_COST_CONTRIBUTION) || defined (ALLOW_DIFFKR_CONTROL)) - call active_write_xyz( 'wdiffkrFld',wdiffkrFld, - & 1, 0, myThid, dummy) -#endif - -#if ( defined (ALLOW_EDDYPSI_COST_CONTRIBUTION) || defined (ALLOW_EDDYPSI_CONTROL) ) - call active_write_xyz( 'wedtauxFld',wedtauxFld, - & 1, 0, myThid, dummy) - call active_write_xyz( 'wedtauyFld',wedtauyFld, - & 1, 0, myThid, dummy) -#endif - -#if (defined (ALLOW_BOTTOMDRAG_COST_CONTRIBUTION) || defined (ALLOW_BOTTOMDRAG_CONTROL)) - call active_write_xy_loc( 'wbottomdrag', wbottomdrag - & , 1, 0, myThid, dummy) -#endif - -#endif /* ALLOW_ECCO and ECCO_CTRL_DEPRECATED */ + do k = 1,nr +# ifdef ALLOW_OBCSN_COST_CONTRIBUTION + wobcsn(k,1) = wti(k) + wobcsn(k,2) = wsi(k) + wobcsn(k,3) = wvi(k) + wobcsn(k,4) = wvi(k) +# endif +# ifdef ALLOW_OBCSS_COST_CONTRIBUTION + wobcss(k,1) = wti(k) + wobcss(k,2) = wsi(k) + wobcss(k,3) = wvi(k) + wobcss(k,4) = wvi(k) +# endif +# ifdef ALLOW_OBCSW_COST_CONTRIBUTION + wobcsw(k,1) = wti(k) + wobcsw(k,2) = wsi(k) + wobcsw(k,3) = wvi(k) + wobcsw(k,4) = wvi(k) +# endif +# ifdef ALLOW_OBCSE_COST_CONTRIBUTION + wobcse(k,1) = wti(k) + wobcse(k,2) = wsi(k) + wobcse(k,3) = wvi(k) + wobcse(k,4) = wvi(k) +# endif + enddo + +# ifdef ALLOW_OBCS_COST_CONTRIBUTION + do iobcs = 1,nobcs + do k = 1,nr +# ifdef ALLOW_OBCSN_COST_CONTRIBUTION + if (wobcsn(k,iobcs) .ne. 0.) then + wobcsn(k,iobcs) = + & ratio/wobcsn(k,iobcs)/wobcsn(k,iobcs) + else + wobcsn(k,iobcs) = 0.0 _d 0 + endif +# endif +# ifdef ALLOW_OBCSS_COST_CONTRIBUTION + if (wobcss(k,iobcs) .ne. 0.) then + wobcss(k,iobcs) = + & ratio/wobcss(k,iobcs)/wobcss(k,iobcs) + else + wobcss(k,iobcs) = 0.0 _d 0 + endif +# endif +# ifdef ALLOW_OBCSW_COST_CONTRIBUTION + if (wobcsw(k,iobcs) .ne. 0.) then + wobcsw(k,iobcs) = + & ratio/wobcsw(k,iobcs)/wobcsw(k,iobcs) + else + wobcsw(k,iobcs) = 0.0 _d 0 + endif +# endif +# ifdef ALLOW_OBCSE_COST_CONTRIBUTION + if (wobcse(k,iobcs) .ne. 0.) then + wobcse(k,iobcs) = + & ratio/wobcse(k,iobcs)/wobcse(k,iobcs) + else + wobcse(k,iobcs) = 0.0 _d 0 + endif +# endif + enddo + enddo +# endif /* ALLOW_OBCS_COST_CONTRIBUTION */ +#endif /* ALLOW_OBCS */ RETURN END diff --git a/pkg/ecco/ecco_diagnostics_init.F b/pkg/ecco/ecco_diagnostics_init.F new file mode 100644 index 0000000000..de948fc030 --- /dev/null +++ b/pkg/ecco/ecco_diagnostics_init.F @@ -0,0 +1,101 @@ +#include "ECCO_OPTIONS.h" + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP 0 +C !ROUTINE: ECCO_DIAGNOSTICS_INIT + +C !INTERFACE: + SUBROUTINE ECCO_DIAGNOSTICS_INIT( myThid ) + +C !DESCRIPTION: +C Initialize list of all available diagnostics + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "EEPARAMS.h" +#include "SIZE.h" +#include "PARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: +C myThid :: my Thread Id number + INTEGER myThid +CEOP + +#ifdef ALLOW_DIAGNOSTICS +C !FUNCTIONS: + CHARACTER*(16) DIAGS_MK_UNITS + EXTERNAL DIAGS_MK_UNITS + +C !LOCAL VARIABLES: +C diagNum :: diagnostics number in the (long) list of available diag. +C diagMate :: diag. mate number in the (long) list of available diag. +C diagName :: local short name (8c) of a diagnostics +C diagCode :: local parser field with characteristics of the diagnostics +C cf head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT +C diagUnits :: local string (16c): physical units of a diagnostic field +C diagTitle :: local string (80c): description of field in diagnostic + INTEGER diagNum +c INTEGER diagMate + CHARACTER*8 diagName + CHARACTER*16 diagCode + CHARACTER*16 diagUnits + CHARACTER*(80) diagTitle + CHARACTER*2 rUnit2c + + IF ( usingPCoords ) THEN + rUnit2c= 'Pa' + ELSE + rUnit2c= 'm ' + ENDIF + + diagName = 'SSH ' + diagTitle = 'Dynamic Sea Surface Height Anomaly' + diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid ) + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'SSHIBC ' + diagTitle = + I 'Inverted Barometer (IB) Correction to Sea Surface Height' + diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid ) + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'SSHNOIBC' + diagTitle = 'Sea Surface Height Anomaly without IB ' + I //'Correction (=SSH+SSHIBC)' + diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid ) + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'STERICHT' + diagTitle = 'Steric Sea Surface Height Anomaly (=SSH-OBP)' + diagUnits = DIAGS_MK_UNITS( rUnit2c, myThid ) + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'OBP ' + diagTitle = 'Ocean Bottom Pressure' + diagUnits = 'm ' + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'OBPGMAP ' + diagTitle = 'Ocean Bottom Pressure ' + I //'Including Global Mean Atmospheric Pressure' + diagUnits = 'm ' + diagCode = 'SM M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +#endif /* ALLOW_DIAGNOSTICS */ + + RETURN + END diff --git a/pkg/ecco/ecco_init_fixed.F b/pkg/ecco/ecco_init_fixed.F new file mode 100644 index 0000000000..ccc3785058 --- /dev/null +++ b/pkg/ecco/ecco_init_fixed.F @@ -0,0 +1,42 @@ +#include "ECCO_OPTIONS.h" + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: ECCO_INIT_FIXED + +C !INTERFACE: + SUBROUTINE ECCO_INIT_FIXED( myThid ) + +C !DESCRIPTION: +C Initialize ECCO variables that are kept fixed during the run. + +C !USES: + IMPLICIT NONE +#include "EEPARAMS.h" +#include "SIZE.h" +#include "PARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: +C myThid :: my Thread Id number + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +C-- Initialise ecco-specific cost function. This needs to preceed +C the call ctrl_init in order to provide the weight files +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_CALL('ECCO_COST_INIT_FIXED',myThid) +#endif + CALL ECCO_COST_INIT_FIXED( myThid ) + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL ECCO_DIAGNOSTICS_INIT( myThid ) + ENDIF +#endif + + RETURN + END diff --git a/pkg/ecco/ecco_init_varia.F b/pkg/ecco/ecco_init_varia.F index 1432ca6e8e..03a8ddc43c 100644 --- a/pkg/ecco/ecco_init_varia.F +++ b/pkg/ecco/ecco_init_varia.F @@ -1,57 +1,70 @@ #include "ECCO_OPTIONS.h" -#include "AD_CONFIG.h" - subroutine ecco_init_varia( mythid ) + SUBROUTINE ECCO_INIT_VARIA( myThid ) -c ================================================================== -c SUBROUTINE ecco_init_varia -c ================================================================== -c -c o Initialise ecco variables. -c -c ================================================================== -c SUBROUTINE ecco_cost_init_varia -c ================================================================== +C ================================================================== +C SUBROUTINE ecco_init_varia +C ================================================================== +C +C o Initialise ecco variables. +C +C ================================================================== +C SUBROUTINE ecco_cost_init_varia +C ================================================================== - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" +#include "PARAMS.h" #include "GRID.h" - -#include "ecco_cost.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" #ifdef ALLOW_COST # include "cost.h" #endif -c == routine arguments == - - integer mythid - -c == local variables == +C == routine arguments == + INTEGER myThid -c == external functions == +C == local variables == -c == end of interface == +C == end of interface == #ifdef ALLOW_PSBAR_STERIC - RHOsumGlob_0=0. _d 0 - VOLsumGlob_0=0. _d 0 -#endif - - CALL ECCO_PHYS( myThid ) +# ifndef ALLOW_AUTODIFF + _BEGIN_MASTER(myThid) +# endif + RHOsumGlob_0 = 0. _d 0 + VOLsumGlob_0 = 0. _d 0 +# ifndef ALLOW_AUTODIFF + _END_MASTER(myThid) +# endif + IF ( .NOT. ( startTime .EQ. baseTime .AND. nIter0 .EQ. 0 + & .AND. pickupSuff .EQ. ' ') ) THEN + CALL ECCO_READ_PICKUP ( nIter0, myThid ) + ENDIF +#endif /* ALLOW_PSBAR_STERIC */ + + CALL ECCO_PHYS( startTime, -1, myThid ) #ifdef ALLOW_PSBAR_STERIC - RHOsumGlob_0=RHOsumGlob - VOLsumGlob_0=VOLsumGlob +C RHO/VOLsumGlob_0 are zeros if S/R ECCO_READ_PICKUP is not called +C or pickup files (pickup_ecco.*.data/meta) do not exist. Assign +C RHO/VOLsumGlob calculated in S/R ECCO_PHYS to RHO/VOLsumGlob_0. + _BEGIN_MASTER(myThid) + IF ( RHOsumGlob_0 .EQ. 0. _d 0 .AND. + & VOLsumGlob_0 .EQ. 0. _d 0 ) THEN + RHOsumGlob_0 = RHOsumGlob + VOLsumGlob_0 = VOLsumGlob + ENDIF + _END_MASTER(myThid) #endif CALL ECCO_COST_INIT_VARIA( myThid ) _BARRIER - return - end - + RETURN + END diff --git a/pkg/ecco/ecco_local_params.h b/pkg/ecco/ecco_local_params.h index 43737ab4dc..c08298774a 100644 --- a/pkg/ecco/ecco_local_params.h +++ b/pkg/ecco/ecco_local_params.h @@ -1,33 +1,12 @@ -c ================================================================== -c HEADER ECCO_legacy -c ================================================================== +C ================================================================== +C HEADER ECCO_legacy +C ================================================================== INTEGER NSSHV4COST PARAMETER ( NSSHV4COST=5 ) - common /averages_c/ - & tbarfile, - & sbarfile, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRbarfile, -#endif - & sstbarfile, - & psbarfile, - & bpbarfile, - & iestaubarfile, - & ubarfile, - & vbarfile, - & wbarfile, - & tauxbarfile, - & tauybarfile, - & hfluxmeanbarfile, - & sfluxmeanbarfile, - & costTranspDataFile character*(MAX_LEN_FNAM) tbarfile character*(MAX_LEN_FNAM) sbarfile -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRbarfile -#endif character*(MAX_LEN_FNAM) sstbarfile character*(MAX_LEN_FNAM) psbarfile character*(MAX_LEN_FNAM) bpbarfile @@ -41,81 +20,6 @@ c ================================================================== character*(MAX_LEN_FNAM) sfluxmeanbarfile character*(MAX_LEN_FNAM) costTranspDataFile -#ifdef ALLOW_TRANSPORT_COST_CONTRIBUTION - common /averages_transp_r/ - & transpbar - & , transpobs - & , wtransp - _RL transpbar(maxNumDays,nsx,nsy) - _RL transpobs(maxNumDays) - _RL wtransp(maxNumDays) -#endif - - common /ecco_cost_aux_r/ - & mult_hflux, - & mult_sflux, - & mult_hfluxmm, - & mult_sfluxmm, - & mult_tauu, - & mult_tauv, - & mult_hmean, - & mult_h, - & mult_tp, - & mult_ers, - & mult_gfo, - & mult_sshv4cost, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & mult_sigmaR, -#endif - & mult_temp, - & mult_salt, - & mult_temp0, - & mult_salt0, - & mult_etan0, - & mult_uvel0, - & mult_vvel0, - & mult_sst, - & mult_tmi, - & mult_sss, - & mult_bp, - & mult_ies, - & mult_ctdt, - & mult_ctds, - & mult_ctdtclim, - & mult_ctdsclim, - & mult_xbt, - & mult_argot, - & mult_argos, - & mult_usercost, - & mult_drift, - & mult_tdrift, - & mult_sdrift, - & mult_wdrift, - & mult_scatx, - & mult_scaty, - & mult_atemp, - & mult_aqh, - & mult_precip, - & mult_swflux, - & mult_swdown, - & mult_snowprecip, - & mult_lwflux, - & mult_lwdown, - & mult_evap, - & mult_apressure, - & mult_runoff, - & mult_uwind, - & mult_vwind, - & mult_curmtr, - & mult_kapgm, - & mult_kapredi, - & mult_diffkr, - & mult_ini_fin, - & mult_edtau, - & mult_bottomdrag, - & mult_smooth_ic, - & mult_smooth_bc, - & mult_transp _RL mult_hflux _RL mult_sflux _RL mult_hfluxmm @@ -128,9 +32,6 @@ c ================================================================== _RL mult_ers _RL mult_gfo _RL mult_sshv4cost(NSSHV4COST) -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - _RL mult_sigmaR -#endif _RL mult_temp _RL mult_salt _RL mult_temp0 @@ -167,92 +68,32 @@ c ================================================================== _RL mult_lwdown _RL mult_evap _RL mult_apressure - _RL mult_runoff +c _RL mult_runoff _RL mult_uwind _RL mult_vwind _RL mult_curmtr _RL mult_kapgm _RL mult_kapredi _RL mult_diffkr - _RL mult_ini_fin +c _RL mult_ini_fin _RL mult_edtau _RL mult_bottomdrag _RL mult_smooth_ic _RL mult_smooth_bc _RL mult_transp - - common /ecco_cost_c/ - & hflux_errfile, - & hfluxm_errfile, - & sflux_errfile, - & sfluxm_errfile, - & tauu_errfile, - & tauum_errfile, - & tauv_errfile, - & tauvm_errfile, - & scatx_errfile, - & scaty_errfile, - & data_errfile, - & geoid_errfile, - & geoid_covariancefile, - & ssh_errfile, - & tp_errfile, - & ers_errfile, - & gfo_errfile, - & sshv4cost_scalefile, - & sshv4cost_errfile, - & ctdt_errfile, - & ctds_errfile, - & drift_errfile, - & udrifterrfile, - & vdrifterrfile, -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRerrfile, -#endif - & salterrfile, - & temperrfile, - & velerrfile, - & salt0errfile, - & temp0errfile, - & etan0errfile, - & uvel0errfile, - & vvel0errfile, - & vel0errfile, - & ssterrfile, - & ssserrfile, - & bperrfile, - & ieserrfile, - & atemp_errfile, - & aqh_errfile, - & precip_errfile, - & swflux_errfile, - & swdown_errfile, - & snowprecip_errfile, - & lwflux_errfile, - & lwdown_errfile, - & evap_errfile, - & apressure_errfile, - & runoff_errfile, - & edtau_errfile, - & kapgm_errfile, - & kapredi_errfile, - & diffkr_errfile, - & bottomdrag_errfile, - & usercost_errfile, - & uwind_errfile, - & vwind_errfile character*(MAX_LEN_FNAM) hflux_errfile character*(MAX_LEN_FNAM) sflux_errfile character*(MAX_LEN_FNAM) tauu_errfile character*(MAX_LEN_FNAM) tauv_errfile - character*(MAX_LEN_FNAM) hfluxm_errfile - character*(MAX_LEN_FNAM) sfluxm_errfile - character*(MAX_LEN_FNAM) tauum_errfile - character*(MAX_LEN_FNAM) tauvm_errfile +c character*(MAX_LEN_FNAM) hfluxm_errfile +c character*(MAX_LEN_FNAM) sfluxm_errfile +c character*(MAX_LEN_FNAM) tauum_errfile +c character*(MAX_LEN_FNAM) tauvm_errfile character*(MAX_LEN_FNAM) scatx_errfile character*(MAX_LEN_FNAM) scaty_errfile - character*(MAX_LEN_FNAM) data_errfile +C moved to OBCS_CTRL.h because this file is used for obcs-ctrl parameters +c character*(MAX_LEN_FNAM) data_errfile character*(MAX_LEN_FNAM) geoid_errfile character*(MAX_LEN_FNAM) geoid_covariancefile character*(MAX_LEN_FNAM) ssh_errfile @@ -261,14 +102,11 @@ c ================================================================== character*(MAX_LEN_FNAM) gfo_errfile character*(MAX_LEN_FNAM) sshv4cost_scalefile(NSSHV4COST) character*(MAX_LEN_FNAM) sshv4cost_errfile(NSSHV4COST) - character*(MAX_LEN_FNAM) ctdt_errfile - character*(MAX_LEN_FNAM) ctds_errfile - character*(MAX_LEN_FNAM) drift_errfile +c character*(MAX_LEN_FNAM) ctdt_errfile +c character*(MAX_LEN_FNAM) ctds_errfile +c character*(MAX_LEN_FNAM) drift_errfile character*(MAX_LEN_FNAM) udrifterrfile character*(MAX_LEN_FNAM) vdrifterrfile -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRerrfile -#endif character*(MAX_LEN_FNAM) salterrfile character*(MAX_LEN_FNAM) temperrfile character*(MAX_LEN_FNAM) velerrfile @@ -292,7 +130,7 @@ c ================================================================== character*(MAX_LEN_FNAM) lwdown_errfile character*(MAX_LEN_FNAM) evap_errfile character*(MAX_LEN_FNAM) apressure_errfile - character*(MAX_LEN_FNAM) runoff_errfile +c character*(MAX_LEN_FNAM) runoff_errfile character*(MAX_LEN_FNAM) edtau_errfile character*(MAX_LEN_FNAM) kapgm_errfile character*(MAX_LEN_FNAM) kapredi_errfile @@ -302,12 +140,6 @@ c ================================================================== character*(MAX_LEN_FNAM) uwind_errfile character*(MAX_LEN_FNAM) vwind_errfile - common /ecco_cost_weights_0_r/ - & whflux0, wsflux0, wtau0, - & watemp0, waqh0, wprecip0, wsnowprecip0, wwind0, - & wswflux0, wswdown0, wlwflux0, wlwdown0, - & wevap0, wapressure0, wrunoff0, wkapredi0, - & wbottomdrag0,wdiffkr0, wkapgm0, wedtau0 _RL whflux0 _RL wsflux0 _RL wtau0 @@ -321,7 +153,7 @@ c ================================================================== _RL wlwdown0 _RL wevap0 _RL wapressure0 - _RL wrunoff0 +c _RL wrunoff0 _RL wbottomdrag0 _RL wwind0 _RL wdiffkr0 @@ -329,12 +161,6 @@ c ================================================================== _RL wkapredi0 _RL wedtau0 - common /ecco_cost_weights_mean_r/ - & wmean_hflux, wmean_sflux, wmean_tau, - & wmean_atemp, wmean_aqh, - & wmean_precip, wmean_snowprecip, wmean_wind, - & wmean_swflux, wmean_swdown, wmean_lwflux, wmean_lwdown, - & wmean_evap, wmean_apressure, wmean_runoff _RL wmean_hflux _RL wmean_sflux _RL wmean_tau @@ -348,42 +174,9 @@ c ================================================================== _RL wmean_lwdown _RL wmean_evap _RL wmean_apressure - _RL wmean_runoff +c _RL wmean_runoff _RL wmean_wind - common /ecco_cost_data_c/ -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - & sigmaRdatfile, -#endif - & tdatfile, - & sdatfile, - & scatxdatfile, - & scatydatfile, - & sstdatfile, - & tmidatfile, - & sssdatfile, - & bpdatfile, - & iesdatfile, - & mdtdatfile, - & topexfile, - & ersfile, - & gfofile, - & ctdtfile, - & ctdsfile, - & ctdtclimfile, - & ctdsclimfile, - & xbtfile, - & argotfile, - & argosfile, - & udriftfile, - & vdriftfile, - & usercost_datafile, - & curmtrufile, - & curmtrvfile - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION - character*(MAX_LEN_FNAM) sigmaRdatfile -#endif character*(MAX_LEN_FNAM) tdatfile character*(MAX_LEN_FNAM) sdatfile character*(MAX_LEN_FNAM) scatxdatfile @@ -404,70 +197,26 @@ c ================================================================== character*(MAX_LEN_FNAM) xbtfile character*(MAX_LEN_FNAM) argotfile character*(MAX_LEN_FNAM) argosfile - character*(MAX_LEN_FNAM) argofile character*(MAX_LEN_FNAM) usercost_datafile(NUSERCOST) character*(MAX_LEN_FNAM) udriftfile character*(MAX_LEN_FNAM) vdriftfile character*(MAX_LEN_FNAM) curmtrufile character*(MAX_LEN_FNAM) curmtrvfile - common /ecco_cost_data_times_i/ - & scatxstartdate, - & scatystartdate, - & sststartdate, - & argotstartdate, - & argosstartdate, - & tmistartdate, - & sssstartdate, - & bpstartdate, - & iesstartdate, - & topexstartdate, - & ersstartdate, - & gfostartdate, - & mdtstartdate, - & mdtenddate - integer scatxstartdate(4) - integer scatystartdate(4) - integer sststartdate(4) - integer argotstartdate(4) - integer argosstartdate(4) - integer tmistartdate(4) - integer sssstartdate(4) - integer bpstartdate(4) - integer iesstartdate(4) - integer topexstartdate(4) - integer ersstartdate(4) - integer gfostartdate(4) - integer mdtstartdate(4) - integer mdtenddate(4) - - common /ecco_cost_data_aux_i/ - & tmistartdate1, - & tmistartdate2, - & sststartdate1, - & sststartdate2, - & sssstartdate1, - & sssstartdate2, - & bpstartdate1, - & bpstartdate2, - & iesstartdate1, - & iesstartdate2, - & argotstartdate1, - & argotstartdate2, - & argosstartdate1, - & argosstartdate2, - & topexstartdate1, - & topexstartdate2, - & ersstartdate1, - & ersstartdate2, - & gfostartdate1, - & gfostartdate2, - & scatstartdate1, - & scatstartdate2, - & mdtstartdate1, - & mdtstartdate2, - & mdtenddate1, - & mdtenddate2 +c integer scatxstartdate(4) +c integer scatystartdate(4) +c integer sststartdate(4) +c integer argotstartdate(4) +c integer argosstartdate(4) +c integer tmistartdate(4) +c integer sssstartdate(4) +c integer bpstartdate(4) +c integer iesstartdate(4) +c integer topexstartdate(4) +c integer ersstartdate(4) +c integer gfostartdate(4) +c integer mdtstartdate(4) +c integer mdtenddate(4) integer tmistartdate1 integer tmistartdate2 @@ -496,23 +245,11 @@ c ================================================================== integer mdtenddate1 integer mdtenddate2 - common /ecco_cost_data_times_r/ - & topexperiod, - & ersperiod, - & gfoperiod, - & scatperiod _RL topexperiod _RL ersperiod _RL gfoperiod _RL scatperiod - common /ecco_cost_data_detrend/ - & topexintercept, - & ersintercept, - & gfointercept, - & topexslope, - & ersslope, - & gfoslope _RL topexintercept _RL ersintercept _RL gfointercept @@ -520,16 +257,12 @@ c ================================================================== _RL ersslope _RL gfoslope - common /ecco_cost_errfactor/ - & sshv4cost_errfactor _RL sshv4cost_errfactor(NSSHV4COST) - common /ecco_ssh_daymask_c/ - & tpTimeMaskFile, ersTimeMaskFile, gfoTimeMaskFile character*(MAX_LEN_FNAM) tpTimeMaskFile character*(MAX_LEN_FNAM) ersTimeMaskFile character*(MAX_LEN_FNAM) gfoTimeMaskFile -c ================================================================== -c END OF HEADER ECCO_legacy -c ================================================================== +C ================================================================== +C END OF HEADER ECCO_legacy +C ================================================================== diff --git a/pkg/ecco/ecco_phys.F b/pkg/ecco/ecco_phys.F index 8e1b8846d3..72729bc2ac 100644 --- a/pkg/ecco/ecco_phys.F +++ b/pkg/ecco/ecco_phys.F @@ -1,50 +1,60 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif - subroutine ecco_phys( mythid ) +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: ECCO_PHYS -c ================================================================== -c SUBROUTINE ecco_phys -c ================================================================== -c -c ================================================================== -c SUBROUTINE ecco_phys -c ================================================================== +C !INTERFACE: + SUBROUTINE ECCO_PHYS( myTime, myIter, myThid ) - implicit none +C !DESCRIPTION: +C Compute some derived quantities and averages +C for GenCost and ECCO cost function. +C !USES: + IMPLICIT NONE c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" +#include "GRID.h" #include "DYNVARS.h" #include "FFIELDS.h" -#include "GRID.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # include "PTRACERS_FIELDS.h" #endif +#if (defined ALLOW_GENCOST_CONTRIBUTION) && (defined ALLOW_SHELFICE) +# include "SHELFICE.h" +#endif -c == routine arguments == - - integer mythid - -c == local variables == - - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax +C !INPUT PARAMETERS: +C myTime :: Current time in simulation +C myIter :: Current time-step number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter, myThid + +C !LOCAL VARIABLES: +C bi, bj :: tile indices +C i, j, k :: loop indices + INTEGER bi, bj + INTEGER i, j, k #ifdef ALLOW_GENCOST_CONTRIBUTION - integer kgen, kgen3d, itr + INTEGER kgen, kgen3d, itr _RL areavolTile(nSx,nSy), areavolGlob _RL tmpfld, tmpvol, tmpmsk, tmpmsk2, tmpmskW, tmpmskS + _RL tmp_sigmsk, tmpsig, tmpsig_lower, tmpsig_upper #endif -c- note defined with overlap here, not needed, but more efficient +C- note: defined with overlap here, not needed, but more efficient _RL trVolW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL trVolS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL trHeatW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -52,110 +62,242 @@ subroutine ecco_phys( mythid ) _RL trSaltW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL trSaltS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL tmpfac + _RL sIceLoadFacLoc #ifdef ATMOSPHERIC_LOADING - _RL sIceLoadFac +#ifdef ALLOW_IB_CORR + _RL ploadbar, AREAsumGlob, PLOADsumGlob + _RL AREAsumTile(nSx,nSy), PLOADsumTile(nSx,nSy) + _RL m_eta_ib(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL sterht (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif +#endif + _RL rhoLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_PSBAR_STERIC - _RL RHOInSituLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL VOLsumTile(nSx,nSy),RHOsumTile(nSx,nSy) + _RL VOLsumTile(nSx,nSy), RHOsumTile(nSx,nSy) + _RL VOLsumGlob_1, RHOsumGlob_1 +c CHARACTER*(MAX_LEN_MBUF) msgBuf #endif +C Mload :: total mass load (kg/m**2) +c _RL Mload(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +CEOP -c need to include halos for find_rho_2d - iMin = 1-OLx - iMax = sNx+OLx - jMin = 1-OLy - jMax = sNy+OLy - -#ifdef ALLOW_PSBAR_STERIC + tmpfac = recip_rhoConst*recip_gravity + sIceLoadFacLoc = zeroRL + IF ( useRealFreshWaterFlux ) sIceLoadFacLoc = recip_rhoConst DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - do k = 1,nr + IF ( myIter .EQ. -1 ) THEN + DO k = 1,Nr CALL FIND_RHO_2D( - I iMin, iMax, jMin, jMax, k, + I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, I theta(1-OLx,1-OLy,k,bi,bj), I salt (1-OLx,1-OLy,k,bi,bj), - O RHOInSituLoc(1-OLx,1-OLy,k,bi,bj), + O rhoLoc(1-OLx,1-OLy,k,bi,bj), I k, bi, bj, myThid ) - enddo - enddo - enddo + ENDDO + ELSE + DO k = 1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + rhoLoc(i,j,k,bi,bj) = rhoInSitu(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDIF + ENDDO + ENDDO +#ifdef ALLOW_PSBAR_STERIC DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - RHOsumTile(bi,bj)=0. _d 0 - VOLsumTile(bi,bj)=0. _d 0 - VOLsumGlob=0. _d 0 - RHOsumGlob=0. _d 0 - do k = 1,nr - do j = 1,sNy - do i = 1,sNx - RHOsumTile(bi,bj)=RHOsumTile(bi,bj)+ - & (rhoConst+RHOInSituLoc(i,j,k,bi,bj))* - & hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) - VOLsumTile(bi,bj)=VOLsumTile(bi,bj)+ - & hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) - enddo - enddo - enddo - enddo - enddo - CALL GLOBAL_SUM_TILE_RL( VOLsumTile, VOLsumGlob, myThid ) - CALL GLOBAL_SUM_TILE_RL( RHOsumTile, RHOsumGlob, myThid ) - RHOsumGlob=RHOsumGlob/VOLsumGlob - - if (RHOsumGlob_0.GT.0. _d 0) then - sterGloH=VOLsumGlob_0/globalArea + RHOsumTile(bi,bj) = 0. _d 0 + VOLsumTile(bi,bj) = 0. _d 0 + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + RHOsumTile(bi,bj) = RHOsumTile(bi,bj) + & + ( rhoConst + rhoLoc(i,j,k,bi,bj) ) + & *hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) + VOLsumTile(bi,bj) = VOLsumTile(bi,bj) + & + hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL GLOBAL_SUM_TILE_RL( VOLsumTile, VOLsumGlob_1, myThid ) + CALL GLOBAL_SUM_TILE_RL( RHOsumTile, RHOsumGlob_1, myThid ) + +# ifndef ALLOW_AUTODIFF + _BEGIN_MASTER(myThid) +# endif + VOLsumGlob = VOLsumGlob_1 + RHOsumGlob = RHOsumGlob_1/VOLsumGlob + + IF (RHOsumGlob_0.GT.0. _d 0) THEN + sterGloH = VOLsumGlob_0/globalArea & *(1. _d 0 - RHOsumGlob/RHOsumGlob_0) - else - sterGloH=0. _d 0 - endif + ELSE + sterGloH = 0. _d 0 + ENDIF c WRITE(msgBuf,'(A,1PE21.14)') ' sterGloH= ', sterGloH -c CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, +c CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, c & SQUEEZE_RIGHT, myThid ) +# ifndef ALLOW_AUTODIFF + _END_MASTER(myThid) + _BARRIER +# endif -#endif +#endif /* ALLOW_PSBAR_STERIC */ #ifdef ATMOSPHERIC_LOADING - sIceLoadFac=zeroRL - IF ( useRealFreshWaterFlux ) sIceLoadFac=recip_rhoConst -#endif +#ifdef ALLOW_IB_CORR + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + PLOADsumTile(bi,bj) = 0. _d 0 + AREAsumTile(bi,bj) = 0. _d 0 + DO j = 1,sNy + DO i = 1,sNx + PLOADsumTile(bi,bj) = PLOADsumTile(bi,bj) + & + pLoad(i,j,bi,bj) + & *maskC(i,j,1,bi,bj)*rA(i,j,bi,bj) + AREAsumTile(bi,bj) = AREAsumTile(bi,bj) + & + maskC(i,j,1,bi,bj)*rA(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + CALL GLOBAL_SUM_TILE_RL( AREAsumTile, AREAsumGlob, myThid ) + CALL GLOBAL_SUM_TILE_RL( PLOADsumTile, PLOADsumGlob, myThid ) + ploadbar = PLOADsumGlob/AREAsumGlob +#endif /* ALLOW_IB_CORR */ +#endif /* ATMOSPHERIC_LOADING */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - m_eta(i,j,bi,bj)= - & etan(i,j,bi,bj) -#ifdef ATMOSPHERIC_LOADING - & +sIceLoad(i,j,bi,bj)*sIceLoadFac -#endif + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + +C calculate total sea level including inverse barometer (IB) effect if +C there is air pressure forcing + m_eta(i,j,bi,bj) = + & ( etaN(i,j,bi,bj) + & + sIceLoad(i,j,bi,bj)*sIceLoadFacLoc #ifdef ALLOW_PSBAR_STERIC - & +sterGloH -#endif - enddo - enddo - enddo - enddo +C apply Greatbatch correction + & + sterGloH +#endif /* ALLOW_PSBAR_STERIC */ + & ) * maskC(i,j,1,bi,bj) + +C Model equivalent of ocean bottom pressure gauge data (in m^2/s^2) +C that are NOT corrected for global ocean mean atmospheric pressure variations +C = Ocean mass + sea-ice & snow load + air-pressure load + Greatbatch corr. +C (all terms on RHS are converted to m^2/s^2). It is +C essentially Mload (as in pkg/sbo/sbo_calc.F) plus air-pressure load + m_bp(i,j,bi,bj) = + & ( etaN(i,j,bi,bj) +c & + Ro_surf(i,j,bi.bj) + & - R_low(i,j,bi,bj) +#ifdef ALLOW_PSBAR_STERIC +C add back the correction due to the global mean steric ssh change, +C i.e. sterGloH computed above (units converted from m to m2/s2) + & + sterGloH +#endif /* ALLOW_PSBAR_STERIC */ + & ) * gravity +C sIceLoad in kg/m^2 + & + sIceLoad(i,j,bi,bj) * gravity * sIceLoadFacLoc +C pLoad in N/m^2 + & + pLoad(i,j,bi,bj) * recip_rhoConst + ENDDO + ENDDO +C integrate rho_anomaly through water column + DO k = 1, Nr + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + m_bp(i,j,bi,bj) = m_bp(i,j,bi,bj) + & + rhoLoc(i,j,k,bi,bj)*drF(k)*hFacC(i,j,k,bi,bj) + & * gravity * recip_rhoConst + ENDDO + ENDDO + ENDDO + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + m_bp(i,j,bi,bj) = m_bp(i,j,bi,bj) * maskC(i,j,1,bi,bj) + ENDDO + ENDDO + +#ifdef ATMOSPHERIC_LOADING +#ifdef ALLOW_IB_CORR + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx +C calculate IB correction m_eta_ib (in m) + m_eta_ib(i,j,bi,bj) = + & ( ploadbar - pLoad(i,j,bi,bj) )*tmpfac + & * maskC(i,j,1,bi,bj) +C calculte dynamic sea level for comparison with altimetry data (in m) + m_eta_dyn(i,j,bi,bj) = + & ( m_eta(i,j,bi,bj) - m_eta_ib(i,j,bi,bj) ) + & * maskC(i,j,1,bi,bj) + +C calculate GRACE-equvivalent ocean bottom pressure (in m2/s2) +C by removing global ocean mean atmospheric pressure variations + m_bp_nopabar(i,j,bi,bj) = + & ( m_bp(i,j,bi,bj) + & - ploadbar * recip_rhoConst + & ) * maskC(i,j,1,bi,bj) +C calculate steric height +C (in m; = m_eta_dyn - (m_bp_nopabr * recip_gravity + R_low)) +C R_low (<0) is Depth in m. + sterht(i,j,bi,bj) = m_eta_dyn(i,j,bi,bj) + & - ( m_bp_nopabar(i,j,bi,bj) * recip_gravity +c & - Ro_surf(i,j,bi,bj) + & + R_low(i,j,bi,bj) ) + ENDDO + ENDDO +#endif /* ALLOW_IB_CORR */ +#endif /* ATMOSPHERIC_LOADING */ + ENDDO + ENDDO + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics .AND. myIter.GE.0 ) THEN + CALL DIAGNOSTICS_FILL( m_eta, 'SSHNOIBC', 0,1, 0,1,1, myThid ) + CALL DIAGNOSTICS_SCALE_FILL( m_bp, recip_gravity, 1, + & 'OBPGMAP ', 0,1, 0,1,1, myThid ) +#ifdef ATMOSPHERIC_LOADING +#ifdef ALLOW_IB_CORR + CALL DIAGNOSTICS_FILL( m_eta_ib, + & 'SSHIBC ', 0,1, 0,1,1, myThid ) + CALL DIAGNOSTICS_FILL( m_eta_dyn, + & 'SSH ', 0,1, 0,1,1, myThid ) + CALL DIAGNOSTICS_FILL( sterht, + & 'STERICHT', 0,1, 0,1,1, myThid ) + CALL DIAGNOSTICS_SCALE_FILL( m_bp_nopabar, recip_gravity, 1, + & 'OBP ', 0,1, 0,1,1, myThid ) +#endif /* ALLOW_IB_CORR */ +#endif /* ATMOSPHERIC_LOADING */ + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - do k = 1,nr - do j = 1,sNy - do i = 1,sNx - m_UE(i,j,k,bi,bj)=0. _d 0 - m_VN(i,j,k,bi,bj)=0. _d 0 - enddo - enddo - enddo - enddo - enddo + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + m_UE(i,j,k,bi,bj) = 0. _d 0 + m_VN(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO CALL ROTATE_UV2EN_RL( U uVel, vVel, m_UE, m_VN, - I .TRUE., .TRUE., .FALSE., Nr, mythid ) - + I .TRUE., .TRUE., .FALSE., Nr, myThid ) c-- trVol : volume flux --- [m^3/sec] (order of 10^6 = 1 Sv) c-- trHeat: heat transport --- [Watt] (order of 1.E15 = PW) @@ -164,158 +306,263 @@ subroutine ecco_phys( mythid ) c-- ( 1ppt = 1000*[mass(salt)]/[mass(seawater)] ) c-- init - call ecco_zero(trVol,Nr,zeroRL,myThid) - call ecco_zero(trHeat,Nr,zeroRL,myThid) - call ecco_zero(trSalt,Nr,zeroRL,myThid) + CALL ECCO_ZERO( trVol, Nr, zeroRL, myThid ) + CALL ECCO_ZERO( trHeat, Nr, zeroRL, myThid ) + CALL ECCO_ZERO( trSalt, Nr, zeroRL, myThid ) #ifdef ALLOW_GENCOST_CONTRIBUTION - do kgen=1,NGENCOST +cts --- +c First: Fill the following SCALAR masks & weights for each (i,j,k,bi,bj) grid cell +c tmpvol - 3D cell volume +c tmpmsk - mask for the gencost_barfile field (e.g. theta) +c Either: expand from 2D mask gencost_mskCsurf across nonzero +c entries of gencost_mskVertical (Nr x NGENCOST array) +c or +c copy from 3D mask gencost_mskC +cts --- + DO kgen=1,NGENCOST - itr = gencost_itracer(kgen) + itr = gencost_itracer(kgen) - call ecco_zero(gencost_storefld(1-OLx,1-OLy,1,1,kgen), - & 1,zeroRL,myThid) + CALL ECCO_ZERO( gencost_storefld(1-OLx,1-OLy,1,1,kgen), + & 1, zeroRL, myThid ) - do bj=myByLo(myThid),myByHi(myThid) - do bi=myBxLo(myThid),myBxHi(myThid) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) areavolTile(bi,bj)=0. _d 0 - enddo - enddo - areavolGlob=0. _d 0 - - do bj=myByLo(myThid),myByHi(myThid) - do bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sNy - do i = 1,sNx + ENDDO + ENDDO + areavolGlob=0. _d 0 + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx c--------- - do k = 1,nr + DO k = 1,Nr tmpvol=hFacC(i,j,k,bi,bj)*drF(k)*rA(i,j,bi,bj) -c + tmpmsk=0. _d 0 - if (.NOT.gencost_msk_is3d(kgen)) then - tmpmsk=gencost_mskCsurf(i,j,bi,bj,kgen)* - & gencost_mskVertical(k,kgen) + IF (.NOT.gencost_msk_is3d(kgen)) THEN + tmpmsk=gencost_mskCsurf(i,j,bi,bj,kgen)* + & gencost_mskVertical(k,kgen) #ifdef ALLOW_GENCOST3D - else - kgen3d=gencost_msk_pointer3d(kgen) - tmpmsk=gencost_mskC(i,j,k,bi,bj,kgen3d) -#endif - endif + ELSE + kgen3d=gencost_msk_pointer3d(kgen) + tmpmsk=gencost_mskC(i,j,k,bi,bj,kgen3d) +#endif /* ALLOW_GENCOST3D */ + ENDIF + +C ---- If density mask is enabled, use it here ---- + IF ( maskC(i,j,k,bi,bj).EQ.oneRS .AND. + & gencost_useDensityMask(kgen) ) THEN +C - first, calculate the scalar density + CALL FIND_RHO_SCALAR( + I theta(i,j,k,bi,bj), + I salt(i,j,k,bi,bj), + I gencost_refPressure(kgen), + O tmpsig, + I myThid ) +C - subtract 1000 to get sigma + tmpsig = tmpsig - 1000. _d 0 +C - now, tmpmsk is sigmoid times this value + tmpsig_lower = 0.5 + 0.5*tanh(gencost_tanhScale(kgen) + & *(tmpsig-gencost_sigmaLow(kgen))) + tmpsig_upper = 0.5 - 0.5*tanh(gencost_tanhScale(kgen) + & *(tmpsig-gencost_sigmaHigh(kgen))) +C - update mask value based on the sigmoid function + tmp_sigmsk = tmpsig_lower*tmpsig_upper + tmpmsk = tmpmsk*tmp_sigmsk + ENDIF +C ---- end of density mask (but tmpmsk is used below) + +cts --- +c Now: at each (i,j,k,bi,bj) fill the SCALAR variables +c tmpfld - from 3D field theta, salt, ptracer +c or +c from 2D field with eta, shelfice c +c tmpmsk2 - 1 or 0 weighting for areavolTile +cts --- tmpfld=0. _d 0 tmpmsk2=0. _d 0 - if (gencost_barfile(kgen)(1:15).EQ.'m_boxmean_theta') then - tmpfld=theta(i,j,k,bi,bj) - if (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 - elseif (gencost_barfile(kgen)(1:14).EQ.'m_boxmean_salt') - & then - tmpfld=salt(i,j,k,bi,bj) - if (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 + IF (gencost_barfile(kgen)(1:15).EQ.'m_boxmean_theta') THEN + tmpfld=theta(i,j,k,bi,bj) + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 + ELSEIF (gencost_barfile(kgen)(1:14).EQ.'m_boxmean_salt') + & THEN + tmpfld=salt(i,j,k,bi,bj) + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 + ELSEIF (gencost_barfile(kgen)(1:13).EQ.'m_boxmean_vol') THEN + tmpfld=1. _d 0 + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 #ifdef ALLOW_PTRACERS - elseif (gencost_barfile(kgen)(1:17).EQ.'m_boxmean_ptracer') - & then - tmpfld=pTracer(i,j,k,bi,bj,itr) - if (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 -#endif - endif + ELSEIF (gencost_barfile(kgen)(1:17).EQ.'m_boxmean_ptracer') + & THEN + tmpfld=pTracer(i,j,k,bi,bj,itr) + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 +#endif /* ALLOW_PTRACERS */ + ENDIF + +cts --- +c Fill 3D field +c gencost_store - masked field of interest * grid cell volume +c note: this accumulates along z dim c +c Fill tile field (1 val per tile) +c areavolTile - volume of each tile, this gets summed to a global +c value +cts --- gencost_storefld(i,j,bi,bj,kgen) = & gencost_storefld(i,j,bi,bj,kgen) & +tmpmsk*tmpfld*tmpvol areavolTile(bi,bj)=areavolTile(bi,bj) & +tmpmsk2*eccoVol_0(i,j,k,bi,bj) + + ENDDO ! Ends do k=1,Nr + + tmpmsk = 0. _d 0 + tmpfld = 0. _d 0 + tmpmsk2 = 0. _d 0 + IF (gencost_barfile(kgen)(1:13).EQ.'m_boxmean_eta') THEN + tmpmsk=maskC(i,j,1,bi,bj)*gencost_mskCsurf(i,j,bi,bj,kgen) + tmpfld = m_eta(i,j,bi,bj) +#if (defined ATMOSPHERIC_LOADING) && (defined ALLOW_IB_CORR) + IF (gencost_barfile(kgen)(1:17).EQ.'m_boxmean_eta_dyn') THEN + tmpfld = m_eta_dyn(i,j,bi,bj) + ENDIF +#endif + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 + ENDIF +#ifdef ALLOW_SHELFICE +cts --- +c Shelfice: +c Simply accumulate shelfice FWF or HF into tmpfld here +c This will fill gencost_storefld with this value *rA +c For FreshWaterFlux +c gencost_storefld = shelficefreshwaterflux / rho * rA +c = [kg/m^2/s] / [kg/m^3] * [m^2] +c = [m^3/s] c - enddo -c--------- - tmpmsk=maskC(i,j,1,bi,bj)*gencost_mskCsurf(i,j,bi,bj,kgen) - tmpfld=0. _d 0 - tmpmsk2=0. _d 0 - if (gencost_barfile(kgen)(1:13).EQ.'m_boxmean_eta') then - tmpfld=m_eta(i,j,bi,bj) - if (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 - endif +c For heatflux +c gencost_storefld = shelficeheatflux * rA +c = [W/m^2] *[m^2] +c = [W] +cts --- + IF((gencost_barfile(kgen)(1:16).EQ.'m_boxmean_shifwf').OR. + & (gencost_barfile(kgen)(1:16).EQ.'m_boxmean_shihtf')) THEN + + tmpmsk=maskSHI(i,j,1,bi,bj)* + & gencost_mskCsurf(i,j,bi,bj,kgen) + + IF (gencost_barfile(kgen)(11:16).EQ.'shifwf') THEN + tmpfld=shelficeFreshWaterFlux(i,j,bi,bj) / rhoConstFresh + ELSEIF (gencost_barfile(kgen)(11:16).EQ.'shihtf') THEN + tmpfld=shelficeHeatFlux(i,j,bi,bj) + ENDIF + IF (tmpmsk.NE.0. _d 0) tmpmsk2=1. _d 0 + ENDIF +#endif /* ALLOW_SHELFICE */ + +cts --- +c Fill 2D field +c gencost_store - masked field of interest * rA c - gencost_storefld(i,j,bi,bj,kgen) = +c Fill tile field (1 val per tile) +c areavolTile - total rA on each tile for mskC != 0 +cts --- + gencost_storefld(i,j,bi,bj,kgen) = & gencost_storefld(i,j,bi,bj,kgen) & +tmpmsk*tmpfld*rA(i,j,bi,bj) - areavolTile(bi,bj)=areavolTile(bi,bj) + areavolTile(bi,bj)=areavolTile(bi,bj) & +tmpmsk2*rA(i,j,bi,bj) c--------- - do k = 1,nr -c + DO k = 1,Nr + tmpmskW=0. _d 0 tmpmskS=0. _d 0 - if (.NOT.gencost_msk_is3d(kgen)) then + IF (.NOT.gencost_msk_is3d(kgen)) THEN tmpmskW=gencost_mskWsurf(i,j,bi,bj,kgen) & *gencost_mskVertical(k,kgen) tmpmskS=gencost_mskSsurf(i,j,bi,bj,kgen) & *gencost_mskVertical(k,kgen) #ifdef ALLOW_GENCOST3D - else + ELSE kgen3d=gencost_msk_pointer3d(kgen) tmpmskW=gencost_mskW(i,j,k,bi,bj,kgen3d) tmpmskS=gencost_mskS(i,j,k,bi,bj,kgen3d) -#endif - endif +#endif /* ALLOW_GENCOST3D */ + ENDIF tmpmskW=tmpmskW*hFacW(i,j,k,bi,bj)*dyG(i,j,bi,bj)*drF(k) tmpmskS=tmpmskS*hFacS(i,j,k,bi,bj)*dxG(i,j,bi,bj)*drF(k) -c - if (gencost_barfile(kgen)(1:13).EQ.'m_horflux_vol') then + + IF (gencost_barfile(kgen)(1:13).EQ.'m_horflux_vol') THEN gencost_storefld(i,j,bi,bj,kgen) = & gencost_storefld(i,j,bi,bj,kgen) & +uVel(i,j,k,bi,bj)*tmpmskW & +vVel(i,j,k,bi,bj)*tmpmskS ! Only compute tr[Vol,Heat,Salt] if necessary, use - ! gencost_mask[W/S] rather than old msktrVol - elseif ( gencost_barfile(kgen)(1:7).eq.'m_trVol' .or. - & gencost_barfile(kgen)(1:8).eq.'m_trHeat'.or. - & gencost_barfile(kgen)(1:8).eq.'m_trSalt' ) then + ! gencost_mask[W/S] rather than old msktrVol + ELSEIF ( gencost_barfile(kgen)(1:7).EQ.'m_trVol' .OR. + & gencost_barfile(kgen)(1:8).EQ.'m_trHeat'.OR. + & gencost_barfile(kgen)(1:8).EQ.'m_trSalt' ) THEN - trVolW(i,j,k) = + trVolW(i,j,k) = & uVel(i,j,k,bi,bj)*tmpmskW & *maskInW(i,j,bi,bj) - trVolS(i,j,k) = + trVolS(i,j,k) = & vVel(i,j,k,bi,bj)*tmpmskS & *maskInS(i,j,bi,bj) - trHeatW(i,j,k) = trVolW(i,j,k) + trHeatW(i,j,k) = trVolW(i,j,k) & *(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))*halfRL & *HeatCapacity_Cp*rhoConst - trHeatS(i,j,k) = trVolS(i,j,k) + trHeatS(i,j,k) = trVolS(i,j,k) & *(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))*halfRL & *HeatCapacity_Cp*rhoConst - trSaltW(i,j,k) = trVolW(i,j,k) + trSaltW(i,j,k) = trVolW(i,j,k) & *(salt(i,j,k,bi,bj)+salt(i-1,j,k,bi,bj))*halfRL & *rhoConst/1000. - trSaltS(i,j,k) = trVolS(i,j,k) + trSaltS(i,j,k) = trVolS(i,j,k) & *(salt(i,j,k,bi,bj)+salt(i,j-1,k,bi,bj))*halfRL & *rhoConst/1000. c now summing - trVol(i,j,k,bi,bj)=trVolW(i,j,k)+trVolS(i,j,k) - trHeat(i,j,k,bi,bj)=trHeatW(i,j,k)+trHeatS(i,j,k) - trSalt(i,j,k,bi,bj)=trSaltW(i,j,k)+trSaltS(i,j,k) + trVol(i,j,k,bi,bj)=trVolW(i,j,k)+trVolS(i,j,k) + trHeat(i,j,k,bi,bj)=trHeatW(i,j,k)+trHeatS(i,j,k) + trSalt(i,j,k,bi,bj)=trSaltW(i,j,k)+trSaltS(i,j,k) - endif - enddo + ENDIF +C end k-loop + ENDDO c--------- - enddo - enddo - enddo - enddo - - if (gencost_barfile(kgen)(1:9).EQ.'m_boxmean') then + ENDDO + ENDDO + ENDDO + ENDDO + +cts --- +c Divide all values in gencost_storefld by +c areavolGlob: scalar representing global volume of +c quantity of interest. +c +c Note: for shelfice, do not take this final average to make +c comparable to shelfice_cost_final. +cts --- + IF ( gencost_barfile(kgen)(1:9).EQ.'m_boxmean' .AND. + & gencost_barfile(kgen)(11:13).NE.'shi' .AND. + & gencost_barfile(kgen)(11:13).NE.'vol' ) THEN CALL GLOBAL_SUM_TILE_RL( areavolTile, areavolGlob, myThid ) - CALL ecco_div( gencost_storefld(1-OLx,1-OLy,1,1,kgen), - & 1, areavolGlob, myThid ) - endif + CALL ECCO_DIV( gencost_storefld(1-OLx,1-OLy,1,1,kgen), + & areavolGlob, 1, 1, myThid ) + ENDIF - enddo +C end kgen-loop + ENDDO #endif /* ALLOW_GENCOST_CONTRIBUTION */ - - return - end + RETURN + END diff --git a/pkg/ecco/ecco_read_pickup.F b/pkg/ecco/ecco_read_pickup.F new file mode 100644 index 0000000000..0068400ede --- /dev/null +++ b/pkg/ecco/ecco_read_pickup.F @@ -0,0 +1,104 @@ +#include "ECCO_OPTIONS.h" + +CBOP +C !ROUTINE: ECCO_READ_PICKUP +C !INTERFACE: + SUBROUTINE ECCO_READ_PICKUP( myIter, myThid ) + +C !DESCRIPTION: \bv +C *================================================================* +C | SUBROUTINE ECCO_READ_PICKUP +C | o read ecco pickups +C *================================================================* +C \ev + +C !USES: + IMPLICIT NONE +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" + +C !INPUT/OUTPUT PARAMETERS: +C myThid :: my Thread Id number + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_PSBAR_STERIC +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + CHARACTER*(MAX_LEN_FNAM) fn, fntmp + CHARACTER*(10) suff + CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER prec, IL, ioUnit + LOGICAL exst + _RL tmparr(2), dummyRS(1) +CEOP + +C-- Suffix for pickup files + IF (pickupSuff.EQ.' ') THEN + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(suff,'(I10.10)') myIter + ELSE + CALL RW_GET_SUFFIX( suff, startTime, myIter, myThid ) + ENDIF + ELSE + WRITE(suff,'(A10)') pickupSuff + ENDIF + + _BEGIN_MASTER(myThid) + + WRITE(fn,'(A,A10)') 'pickup_ecco.', suff +c#ifdef ALLOW_MDSIO +c useCurrentDir = .FALSE. +c CALL MDS_CHECK4FILE( +c I fn, '.data', 'ECCO_READ_PICKUP', +c O filNam, fileExist, +c I useCurrentDir, myThid ) +c#endif +C- Check first for global file with simple name (ie. fn) + INQUIRE( file=fn, exist=exst ) + IF ( .NOT.exst ) THEN +C- Check for global file with ".data" suffix + IL = ILNBLNK( fn ) + WRITE(fntmp,'(2A)') fn(1:IL),'.data' + INQUIRE( file=fntmp, exist=exst ) + ENDIF + + IF (exst) THEN + ioUnit = 0 + prec = precFloat64 +#ifdef ALLOW_MDSIO + CALL MDS_READVEC_LOC( fn, prec, ioUnit, 'RL', + & 2, tmparr, dummyRS, 0, 0, 1, myThid ) +#else + STOP 'ABNORMAL END: S/R ECCO_READ_PICKUP: Needs MDSIO pkg' +#endif + VOLsumGlob_0 = tmparr(1) + RHOsumGlob_0 = tmparr(2) + ELSE + WRITE(msgBuf,'(2A)') 'ECCO_READ_PICKUP: ', + & fn(1:IL)//' and '//fntmp(1:iL+5)//' not provided.' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A,I10)') 'ECCO_READ_PICKUP: ', + & 'sterGloH is referenced to its value at time step:', nIter0 + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + + _END_MASTER(myThid) + +#endif /* ALLOW_PSBAR_STERIC */ + + RETURN + END diff --git a/pkg/ecco/ecco_readparms.F b/pkg/ecco/ecco_readparms.F index df10f39a13..9756eb724a 100644 --- a/pkg/ecco/ecco_readparms.F +++ b/pkg/ecco/ecco_readparms.F @@ -1,6 +1,9 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif - subroutine ecco_readparms( myThid ) + SUBROUTINE ECCO_READPARMS( myThid ) c ================================================================== c SUBROUTINE ecco_readparms @@ -13,22 +16,18 @@ subroutine ecco_readparms( myThid ) c SUBROUTINE ecco_readparms c ================================================================== - implicit none + IMPLICIT NONE c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" #include "PARAMS.h" #ifdef ALLOW_ECCO -# ifdef ECCO_CTRL_DEPRECATED -# include "ecco_cost.h" -# else -# include "ecco.h" -# include "ecco_local_params.h" -# endif +# include "ECCO_SIZE.h" +# include "ECCO.h" +# include "ecco_local_params.h" #endif #ifdef ALLOW_CTRL # include "CTRL_OBCS.h" @@ -38,14 +37,17 @@ subroutine ecco_readparms( myThid ) #endif c == routine arguments == + INTEGER myThid - integer myThid +c == external functions == + INTEGER ilnblnk + EXTERNAL ilnblnk c == local variables == C msgBuf - Informational/error message buffer C iUnit - Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf - INTEGER k, k2, iUnit, num_file, num_var + INTEGER k, k2, iUnit #ifdef ALLOW_GENCOST_CONTRIBUTION INTEGER IL, kk, gencost_k3d, gencost_msk_k3d, ioUnit CHARACTER*(128) tempfile @@ -54,13 +56,10 @@ subroutine ecco_readparms( myThid ) #endif Catn-- retired parameters - character*(MAX_LEN_FNAM) topexmeanfile - integer nRetired - -c == external functions == - - integer ilnblnk - external ilnblnk + INTEGER nRetired + CHARACTER*(2) cost_yftype + CHARACTER*(MAX_LEN_FNAM) topexmeanfile + LOGICAL using_cost_bp, using_cost_scat c == end of interface == @@ -163,8 +162,9 @@ subroutine ecco_readparms( myThid ) & wmean_swflux, wmean_swdown, wmean_wind, & wmean_lwflux, wmean_lwdown, wmean_evap, & wmean_snowprecip, wmean_apressure, - & cost_iprec, cost_yftype - & ,topexmeanfile + & cost_iprec, ecco_output_sterGloH, + & ecco_keepTSeriesOutp_open, + & cost_yftype, topexmeanfile #ifdef ALLOW_GENCOST_CONTRIBUTION namelist /ecco_gencost_nml/ @@ -175,6 +175,7 @@ subroutine ecco_readparms( myThid ) & gencost_scalefile, & gencost_errfile, & gencost_itracer, + & gencost_kLev_select, & gencost_preproc, & gencost_preproc_c, & gencost_preproc_i, @@ -199,6 +200,11 @@ subroutine ecco_readparms( myThid ) & gencost_is1d, & gencost_is3d, & gencost_msk_is3d, + & gencost_useDensityMask, + & gencost_refPressure, + & gencost_sigmaLow, + & gencost_sigmaHigh, + & gencost_tanhScale, & gencost_timevaryweight, & mult_gencost #endif /* ALLOW_GENCOST_CONTRIBUTION */ @@ -214,6 +220,7 @@ subroutine ecco_readparms( myThid ) ENDIF _BEGIN_MASTER( myThid ) + nRetired = 0 c-- Set default values. @@ -233,22 +240,11 @@ subroutine ecco_readparms( myThid ) c- set default to false using_cost_transp=.FALSE. -#ifdef ALLOW_BP_COST_CONTRIBUTION - using_cost_bp=.TRUE. -#else - using_cost_bp=.FALSE. -#endif #ifdef ALLOW_SST_COST_CONTRIBUTION using_cost_sst=.TRUE. #else using_cost_sst=.FALSE. #endif -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) - using_cost_scat=.TRUE. -#else - using_cost_scat=.FALSE. -#endif c other run time parameters data_errfile = ' ' @@ -377,8 +373,8 @@ subroutine ecco_readparms( myThid ) kapredi_errfile = ' ' diffkr_errfile = ' ' do k=1,NUSERCOST - usercost_datafile(k) = ' ' - usercost_errfile(k) = ' ' + usercost_datafile(k) = ' ' + usercost_errfile(k) = ' ' enddo do k=1,NSSHV4COST sshv4cost_scalefile(k) = ' ' @@ -447,15 +443,15 @@ subroutine ecco_readparms( myThid ) #endif mult_curmtr = 0. _d 0 mult_kapgm = 0. _d 0 - mult_kapredi = 0. _d 0 + mult_kapredi = 0. _d 0 mult_diffkr = 0. _d 0 mult_edtau = 0. _d 0 mult_bottomdrag = 0. _d 0 do k=1,NUSERCOST - mult_usercost(k) = 0. _d 0 + mult_usercost(k) = 0. _d 0 enddo do k=1,NSSHV4COST - mult_sshv4cost(k) = 0. _d 0 + mult_sshv4cost(k) = 0. _d 0 enddo mult_smooth_ic = 0. _d 0 mult_smooth_bc = 0. _d 0 @@ -473,7 +469,7 @@ subroutine ecco_readparms( myThid ) wwind0 = 0. _d 0 wdiffkr0 = 1. _d 0 wkapgm0 = 1. _d 0 - wkapredi0 = 1. _d 0 + wkapredi0 = 1. _d 0 wedtau0 = 1. _d 0 whflux0 = 0. _d 0 wsflux0 = 0. _d 0 @@ -494,16 +490,19 @@ subroutine ecco_readparms( myThid ) wmean_sflux = 0. _d 0 wmean_tau = 0. _d 0 cost_iprec = precFloat32 - cost_yftype = 'RL' + ecco_output_sterGloH = .FALSE. + ecco_keepTSeriesOutp_open = .FALSE. -Catn-- retired parameters - topexmeanfile = ' ' - nRetired = 0 +C-- retired parameters + cost_yftype = 'RL' + topexmeanfile = ' ' + using_cost_bp = .FALSE. + using_cost_scat = .FALSE. c-- Next, read the data.ecco file. WRITE(msgBuf,'(A)') 'ECCO_READPARMS: opening data.ecco' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) CALL OPEN_COPY_DATA_FILE( I 'data.ecco', 'ECCO_READPARMS', @@ -515,15 +514,29 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A)') & 'ECCO_READPARMS: finished reading #1: ecco_cost_nml' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) C-- Check parameters: - IF ( cost_yftype.NE.'RL' ) THEN - STOP 'ABNORMAL END: S/R ECCO_READPARMS: invalid cost_yftype' - ENDIF -Catn -- retired parameters - IF ( topexmeanfile .NE. ' ' ) THEN +C- retired parameters: + IF ( cost_yftype.NE.'RL' ) THEN + WRITE(msgBuf,'(2A)') 'S/R ECCO_READPARMS: ', + & '"cost_yftype" is no longer allowed in file "data.ecco"' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + IF ( using_cost_bp ) THEN + WRITE(msgBuf,'(2A)') 'S/R ECCO_READPARMS: ', + & '"using_cost_bp" is no longer allowed in file "data.ecco"' + CALL PRINT_ERROR( msgBuf, myThid ) + nRetired = nRetired + 1 + ENDIF + IF ( using_cost_scat ) THEN + WRITE(msgBuf,'(2A)') 'S/R ECCO_READPARMS: ', + & '"using_cost_scat" is no longer allowed in file "data.ecco"' + CALL PRINT_ERROR( msgBuf, myThid ) nRetired = nRetired + 1 + ENDIF + IF ( topexmeanfile .NE. ' ' ) THEN WRITE(msgBuf,'(A,A)') & 'S/R ECCO_READPARMS: "topexmeanfile" ', & 'is no longer allowed in file "data.ecco"' @@ -531,15 +544,16 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A)') & 'S/R ECCO_READPARMS: set "mdtdatfile" instead' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R ECCO_READPARMS' + nRetired = nRetired + 1 ENDIF IF ( nRetired .GT. 0 ) THEN WRITE(msgBuf,'(2A)') 'S/R ECCO_READPARMS: ', & 'Error reading parameter file "data.ecco"' CALL PRINT_ERROR( msgBuf, myThid ) WRITE(msgBuf,'(A)') - & 'some out of date parameters were found in the namelist' + & 'some out-of-date parameters were found in the namelist(s)' CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R ECCO_READPARMS' ENDIF @@ -595,6 +609,7 @@ subroutine ecco_readparms( myThid ) gencost_outputlevel(k)= 0 gencost_errfile(k) = ' ' gencost_itracer(k) = 1 + gencost_kLev_select(k)= 1 gencost_mask(k) = ' ' gencost_barfile(k) = ' ' gencost_spmin(k) = 0. _d 0 @@ -604,8 +619,13 @@ subroutine ecco_readparms( myThid ) mult_gencost(k) = 1. _d 0 gencost_is1d(k) = .FALSE. gencost_is3d(k) = .FALSE. + gencost_useDensityMask(k) = .FALSE. + gencost_refPressure(k) = 0. _d 0 + gencost_sigmaLow(k) = 0. _d 0 + gencost_sigmaHigh(k) = 1. _d 3 + gencost_tanhScale(k) = 1. _d 5 gencost_pointer3d(k) = 0 - gencost_msk_is3d = .FALSE. + gencost_msk_is3d(k) = .FALSE. gencost_msk_pointer3d(k) = 0 c boxmean/horflux masks call ecco_zero(gencost_mskCsurf(1-OLx,1-OLy,1,1,k), @@ -614,7 +634,7 @@ subroutine ecco_readparms( myThid ) & 1,zeroRL,myThid) call ecco_zero(gencost_mskSsurf(1-OLx,1-OLy,1,1,k), & 1,zeroRL,myThid) - do k2 = 1,nr + do k2 = 1,Nr gencost_mskVertical(k2,k)= 1. _d 0 enddo c deprecated: @@ -641,7 +661,7 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A)') & 'ECCO_READPARMS: finished reading #2: ecco_gencost_nml' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) gencost_k3d=1 gencost_msk_k3d=1 @@ -672,7 +692,7 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A,I3,3A,L5)') 'gencost k_boxmean/horflux=', & k,' ',gencost_name(k)(1:il),': ',using_gencost(k) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) if ( gencost_msk_is3d(k) ) then gencost_msk_pointer3d(k)=gencost_msk_k3d @@ -687,7 +707,17 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A,i3,3A,L5)') 'gencost k_transp=', & k,' ',gencost_name(k)(1:il),': ',using_gencost(k) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) + +cts moc cost function using gencost framework + elseif ( gencost_name(k)(1:3).EQ.'moc' ) then + gencost_flag(k)=-5 + using_gencost(k)=.TRUE. + il=ilnblnk(gencost_name(k)) + WRITE(msgBuf,'(A,i2,2A,L5)') 'gencost k_moc=', + & k,gencost_name(k)(1:il),': ',using_gencost(k) + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) c pre-specified generic cost terms that create their own barfile elseif ( @@ -727,7 +757,8 @@ subroutine ecco_readparms( myThid ) kk=gencost_msk_pointer3d(k) if ( ( gencost_mask(k) .NE. ' ' ).AND. & (gencost_flag(k).EQ.-3 .or. - & gencost_flag(k).eq.-4 ) ) then + & gencost_flag(k).eq.-4 .or. + & gencost_flag(k).eq.-5 ) ) then c il = ilnblnk(gencost_mask(k)) write(tempfile(1:128),'(2A)') gencost_mask(k)(1:il),'C' @@ -828,10 +859,10 @@ subroutine ecco_readparms( myThid ) & 'ERROR in ECCO_READPARMS: for gencost',k, & ' ',gencost_name(k)(1:il) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) STOP & 'ECCO_READPARMS: gencost_avgperiod not properly set' - end if + endif if ( gencost_spmin(k) .EQ. 0. _d 0 .AND. & gencost_spmax(k) .EQ. 0. _d 0 ) then @@ -840,7 +871,7 @@ subroutine ecco_readparms( myThid ) & 'ERROR in ECCO_READPARMS: for gencost',k, & ' ',gencost_name(k)(1:il) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) STOP & 'ECCO_READPARMS: gencost_spmin, gencost_spmax not set' endif @@ -851,7 +882,7 @@ subroutine ecco_readparms( myThid ) & 'ERROR in ECCO_READPARMS: for gencost',k, & ' ',gencost_name(k)(1:il) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) STOP & 'ECCO_READPARMS: gencost_spzero not set' endif @@ -876,7 +907,7 @@ subroutine ecco_readparms( myThid ) & 'ERROR in ECCO_READPARMS: for gencost',k, & ' ',gencost_name(k)(1:il) CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) STOP & 'ECCO_READPARMS: gencost_avgperiod not properly set' endif @@ -902,7 +933,7 @@ subroutine ecco_readparms( myThid ) WRITE(msgBuf,'(A)') & 'ECCO_READPARMS: done' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) _BARRIER diff --git a/pkg/ecco/ecco_summary.F b/pkg/ecco/ecco_summary.F index bae4caca26..db309cf210 100644 --- a/pkg/ecco/ecco_summary.F +++ b/pkg/ecco/ecco_summary.F @@ -8,14 +8,6 @@ SUBROUTINE ECCO_SUMMARY( mythid ) c c o Summarize the setup of the ECCO release. c -#ifdef ECCO_CTRL_DEPRECATED -c started: Christian Eckert eckert@mit.edu 29-Feb-1999 -c -c - Introduced to create a package for the MITgcmUV. -c -c changed: Christian Eckert eckert@mit.edu -#endif -c c ================================================================== c SUBROUTINE ecco_summary c ================================================================== @@ -25,11 +17,8 @@ SUBROUTINE ECCO_SUMMARY( mythid ) c == global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "ecco.h" - -#ifdef ALLOW_CTRL -# include "optim.h" -#endif +#include "ECCO_SIZE.h" +#include "ECCO.h" c == routine arguments == c integer mythid - thread number for this instance of the routine. @@ -64,713 +53,6 @@ SUBROUTINE ECCO_SUMMARY( mythid ) call print_message( msgbuf, standardmessageunit, & SQUEEZE_RIGHT , mythid) -#ifdef ECCO_CTRL_DEPRECATED - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - &'ECCO version: ',eccoversion - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &'Packages used: ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - &'Calendar version: ',eccoUsesCalVersion - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - &'External Forcing version: ',eccoUsesExfVersion - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - &'Adjoint support version: ',eccoUsesAdsuppVersion - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a,a)') - &'Optimization version: ',eccoUsesOptimVersion - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - -c-- For each CPP option state if it is enabled or disabled. -c-- ======================================================= - -#ifdef ALLOW_ECCO_FORWARD_RUN - write(msgbuf,'(a)') - &'// ALLOW_ECCO_FORWARD_RUN: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ECCO_FORWARD_RUN: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_ECCO_DIAGNOSTIC_RUN - write(msgbuf,'(a)') - &'// ALLOW_ECCO_DIAGNOSTIC_RUN: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ECCO_DIAGNOSTIC_RUN: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_ADJOINT_RUN - write(msgbuf,'(a)') - &'// ALLOW_ADJOINT_RUN: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ADJOINT_RUN: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_GRADIENT_CHECK - write(msgbuf,'(a)') - &'// ALLOW_GRADIENT_CHECK: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_GRADIENT_CHECK: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_ECCO_OPTIMIZATION - write(msgbuf,'(a)') - &'// ALLOW_ECCO_OPTIMIZATION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ECCO_OPTIMIZATION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_NO_DYNAMICS -c-- Just do a "dry" run ( useful for testing ). - write(msgbuf,'(a)') - &'// ALLOW_NO_DYNAMICS: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_NO_DYNAMICS: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_YMDS_TREE -c-- Use the Yearly-Monthly-Daily-Stepping call tree. - write(msgbuf,'(a)') - &'// ALLOW_YMDS_TREE: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_YMDS_TREE: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_STEPPING_CALL -c-- Do not call stepping. - write(msgbuf,'(a)') - &'// ALLOW_STEPPING_CALL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_STEPPING_CALL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO -c-- Use non-dimensional vector of controls as input. - write(msgbuf,'(a)') - &'// ALLOW_NONDIMENSIONAL_CONTROL_IO: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_NONDIMENSIONAL_CONTROL_IO: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_EGM96_ERROR_COV -c-- Read the EGM error covariance from file. - write(msgbuf,'(a)') - &'// ALLOW_EGM96_ERROR_COV: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_EGM96_ERROR_COV: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_READ_EGM_DATA -c-- Read the EGM data from file. - write(msgbuf,'(a)') - &'// ALLOW_READ_EGM_DATA: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_READ_EGM_DATA: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#if (defined (ALLOW_SCAT_COST_CONTRIBUTION) || \ - defined (ALLOW_DAILYSCAT_COST_CONTRIBUTION) ) -c-- Use NSCAT data for getting the weights. - write(msgbuf,'(a)') - &'// ALLOW_SCAT_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SCAT_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_HFLUX_COST_CONTRIBUTION -c-- Include code to use the heat flux contribution. - write(msgbuf,'(a)') - &'// ALLOW_HFLUX_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_HFLUX_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SFLUX_COST_CONTRIBUTION -c-- Include code to use the salt flux contribution. - write(msgbuf,'(a)') - &'// ALLOW_SFLUX_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SFLUX_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_USTRESS_COST_CONTRIBUTION -c-- Include code to use the zonal wind stress contribution. - write(msgbuf,'(a)') - &'// ALLOW_USTRESS_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_USTRESS_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_VSTRESS_COST_CONTRIBUTION -c-- Include code to use the meridional wind stress contribution. - write(msgbuf,'(a)') - &'// ALLOW_VSTRESS_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_VSTRESS_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SIGMAR_COST_CONTRIBUTION -c-- Enable testing of the 3d sigmaR field contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// ALLOW_SIGMAR_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SIGMAR_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_THETA_COST_CONTRIBUTION -c-- Enable testing of the 3d temperature field contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// ALLOW_THETA_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_THETA_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SST_COST_CONTRIBUTION -c-- Enable testing of the sea surface temperature contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// ALLOW_SST_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SST_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SALT_COST_CONTRIBUTION -c-- Enable testing of the 3d salinity field contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// ALLOW_SALT_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SALT_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SSH_COST_CONTRIBUTION -c-- Enable testing of the sea surface height contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// ALLOW_SSH_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SSH_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_HFLUX_COST_CONTRIBUTION -c-- Enable testing of the heat flux contribution to the -c-- cost function. - write(msgbuf,'(a)') - &'// APPLY_HFLUX_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_HFLUX_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_SFLUX_COST_CONTRIBUTION -c-- Enable testing of the salt flux contribution to the -c-- cost function. - write(msgbuf,'(a)') - &'// APPLY_SFLUX_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_SFLUX_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_USTRESS_COST_CONTRIBUTION -c-- Enable testing of the zonal wind stress contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_USTRESS_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_USTRESS_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_VSTRESS_COST_CONTRIBUTION -c-- Enable testing of the meridional wind stress contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_VSTRESS_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_VSTRESS_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_THETA_COST_CONTRIBUTION -c-- Enable testing of the initial state temperature contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_THETA_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_THETA_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_SALT_COST_CONTRIBUTION -c-- Enable testing of the initial state salinity contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_SALT_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_SALT_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_SST_COST_CONTRIBUTION -c-- Enable testing of the sea surface temperature contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_SST_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_SST_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef APPLY_SSH_COST_CONTRIBUTION -c-- Enable testing of the sea surface height contribution -c-- to the cost function. - write(msgbuf,'(a)') - &'// APPLY_SSH_COST_CONTRIBUTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// APPLY_SSH_COST_CONTRIBUTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SPH_PROJECTION -c-- Use projection onto spherical harmonics for the evaluation of -c-- the cost function contribution of the mean sea surface elevation. - write(msgbuf,'(a)') - &'// ALLOW_SPH_PROJECTION: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SPH_PROJECTION: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_THETA0_CONTROL -c-- Initial state temperature used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_THETA0_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_THETA0_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SALT0_CONTROL -c-- Initial state salinity used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_SALT0_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SALT0_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_ETAN0_CONTROL -c-- Initial state sealevel used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_ETAN0_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ETAN0_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_UVEL0_CONTROL -c-- Initial state velocity used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_UVEL0_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_UVEL0_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#ifdef ALLOW_VVEL0_CONTROL -c-- Initial state velocity used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_VVEL0_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_VVEL0_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_HFLUX_CONTROL -c-- Surface heat flux used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_HFLUX_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_HFLUX_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SFLUX_CONTROL -c-- Short wave radiative flux used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_SFLUX_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SFLUX_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_USTRESS_CONTROL -c-- Zonal wind stress used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_USTRESS_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_USTRESS_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_VSTRESS_CONTROL -c-- Meridional wind stress used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_VSTRESS_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_VSTRESS_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SWFLUX_CONTROL -c-- Short wave radiative flux used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_SWFLUX_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SWFLUX_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_SWDOWN_CONTROL -c-- Short wave radiative flux used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_SWDOWN_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_SWDOWN_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_ATEMP_CONTROL -c-- Atmospheric Temperature used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_ATEMP_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_ATEMP_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_AQH_CONTROL -c-- Specific humidity used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_AQH_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_AQH_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_UWIND_CONTROL -c-- Zonal winds used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_UWIND_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_UWIND_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_VWIND_CONTROL -c-- Meridional winds used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_VWIND_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_VWIND_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_PRECIP_CONTROL -c-- Precipitation used as part of the control vector. - write(msgbuf,'(a)') - &'// ALLOW_PRECIP_CONTROL: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_PRECIP_CONTROL: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_AUTODIFF_TAMC -c-- Enable automatic differentiation of the ECCO code. - write(msgbuf,'(a)') - &'// ALLOW_AUTODIFF_TAMC: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_AUTODIFF_TAMC: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -#ifdef ALLOW_TAMC_CHECKPOINTING -c-- Checkpointing as handled by TAMC. - write(msgbuf,'(a)') - &'// ALLOW_TAMC_CHECKPOINTING: defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#else - write(msgbuf,'(a)') - &'// ALLOW_TAMC_CHECKPOINTING: NOT defined' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif - -c-- General summary. -c write(msgbuf,'(a)') -c &' ' -c call print_message( msgbuf, standardmessageunit, -c & SQUEEZE_RIGHT , mythid) -c write(msgbuf,'(a,2x,a10)') -c &' Experiment name:',expId -c call print_message( msgbuf, standardmessageunit, -c & SQUEEZE_RIGHT , mythid) - -#ifdef ALLOW_AUTODIFF_TAMC -c-- Generation of adjoint code. - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Generation of adjoint code for the ECCO setup is enabled' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') -#else -c-- Generation of adjoint code not enabled. - write(msgbuf,'(a)') - &' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - write(msgbuf,'(a)') - &' Generation of adjoint code for the ECCO setup is not enabled' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) -#endif -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_GENCOST_CONTRIBUTION msgunit=standardmessageunit c-- @@ -841,6 +123,9 @@ SUBROUTINE ECCO_SUMMARY( mythid ) write(msgbuf,'(a,i2)') ' gencost_outputlevel = ', & gencost_outputlevel(k) call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) + write(msgbuf,'(a,i2)') ' gencost_kLev_select = ', + & gencost_kLev_select(k) + call print_message( msgbuf, msgunit, SQUEEZE_RIGHT , mythid) c if (gencost_is3d(k)) then write(msgbuf,'(a,i2)') ' gencost_pointer3d = ', diff --git a/pkg/ecco/ecco_toolbox.F b/pkg/ecco/ecco_toolbox.F index 8714a62058..bd898f4979 100644 --- a/pkg/ecco/ecco_toolbox.F +++ b/pkg/ecco/ecco_toolbox.F @@ -1,81 +1,66 @@ #include "ECCO_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif C-- File ecco_toolbox.F: Routines to handle basic operations common in ecco. C-- Contents -C-- o ecco_zero -C-- o ecco_cp -C-- o ecco_cprsrl -C-- o ecco_diffmsk -C-- o ecco_diffanommsk -C-- o ecco_obsmsk -C-- o ecco_addcost -C-- o ecco_add -C-- o ecco_subtract -C-- o ecco_addmask -C-- o ecco_div -C-- o ecco_divfield -C-- o ecco_mult -C-- o ecco_multfield -C-- o ecco_readbar -C-- o ecco_readwei +C-- o ECCO_ZERO +C-- o ECCO_CP +C-- o ECCO_CPRSRL +C-- o ECCO_DIFFMSK +C-- o ECCO_ADDCOST +C-- o ECCO_ADD (currently not used) +C-- o ECCO_SUBTRACT +C-- o ECCO_ADDMASK +C-- o ECCO_DIV +C-- o ECCO_DIVFIELD +C-- o ECCO_MULT +C-- o ECCO_MULTFIELD (currently not used) +C-- o ECCO_MASKMINDEPTH +C-- o ECCO_OFFSET +C-- o ECCO_READBAR +C-- o ECCO_READWEI +C-- o ECCO_ERROR C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_zero +C !ROUTINE: ECCO_ZERO C !INTERFACE: - subroutine ecco_zero( fld, nnzloc, zeroloc, myThid ) + SUBROUTINE ECCO_ZERO( fld, nzIn, zeroLoc, myThid ) C !DESCRIPTION: \bv -C fill a field with zeroloc +C fill a field with zeroLoc C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn INTEGER myThid - INTEGER nnzloc - _RL zeroloc - _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL zeroLoc #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzloc - do j = jmin,jmax - do i = imin,imax - fld(i,j,k,bi,bj) = zeroloc - enddo - enddo - enddo - enddo - enddo + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nzIn + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fld(i,j,k,bi,bj) = zeroLoc + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -84,14 +69,13 @@ subroutine ecco_zero( fld, nnzloc, zeroloc, myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_diffmsk +C !ROUTINE: ECCO_DIFFMSK C !INTERFACE: - subroutine ecco_diffmsk( - I localbar, nnzbar, localobs, nnzobs, localmask, - I spminloc, spmaxloc, spzeroloc, - O localdif, difmask, - I myThid - & ) + SUBROUTINE ECCO_DIFFMSK( + I localBar, localObs, localMask, + I nzIn, nLev, spMinLoc, spMaxLoc, spzeroLoc, + O localDif, difMask, + I myThid ) C !DESCRIPTION: \bv C compute masked difference between model and observations @@ -100,73 +84,47 @@ subroutine ecco_diffmsk( C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzobs, nnzbar - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - - _RL spminloc, spmaxloc, spzeroloc + _RL localBar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL localObs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL localMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL spMinLoc, spMaxLoc, spzeroLoc +C !OUTPUT PARAMETERS: + _RL localDif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL difMask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax -#ifdef ECCO_CTRL_DEPRECATED - difmask(i,j,k,bi,bj) = cosphi(i,j,bi,bj)* - & localmask(i,j,k,bi,bj) -#else - difmask(i,j,k,bi,bj) = localmask(i,j,k,bi,bj) -#endif - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - difmask(i,j,k,bi,bj) = 0. _d 0 - endif - localdif(i,j,k,bi,bj) = difmask(i,j,k,bi,bj)* - & (localbar(i,j,k,bi,bj)-localobs(i,j,k,bi,bj)) - enddo - enddo - enddo - enddo - enddo +c-- Determine the model-data difference mask + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_DIFFMSK', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + difMask(i,j,k,bi,bj) = localMask(i,j,k,bi,bj) + IF ( localObs(i,j,k,bi,bj) .LT. spMinLoc .OR. + & localObs(i,j,k,bi,bj) .GT. spMaxLoc .OR. + & localObs(i,j,k,bi,bj) .EQ. spzeroLoc ) THEN + difMask(i,j,k,bi,bj) = 0. _d 0 + ENDIF + localDif(i,j,k,bi,bj) = difMask(i,j,k,bi,bj)* + & (localBar(i,j,k,bi,bj)-localObs(i,j,k,bi,bj)) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -175,94 +133,48 @@ subroutine ecco_diffmsk( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_diffanommsk +C !ROUTINE: ECCO_CP C !INTERFACE: - subroutine ecco_diffanommsk( - I localbar, localbarmean, nnzbar, - I localobs, localobsmean, nnzobs, - I localmask, - I spminloc, spmaxloc, spzeroloc, - O localdif, difmask, - I myThid - & ) + SUBROUTINE ECCO_CP( + I fldIn, + U fldOut, + I nzIn, nlev, myThid ) C !DESCRIPTION: \bv -C compute masked difference between time-anomaly model and observations +C copy a field to another array C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzobs, nnzbar - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL localbarmean (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localobsmean (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - - _RL spminloc, spmaxloc, spzeroloc + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax -#ifdef ECCO_CTRL_DEPRECATED - difmask(i,j,k,bi,bj) = cosphi(i,j,bi,bj)* - & localmask(i,j,k,bi,bj) -#else - difmask(i,j,k,bi,bj) = localmask(i,j,k,bi,bj) -#endif - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - difmask(i,j,k,bi,bj) = 0. _d 0 - endif - localdif(i,j,k,bi,bj) = difmask(i,j,k,bi,bj)* - & ( (localbar(i,j,k,bi,bj)-localbarmean(i,j,k,bi,bj)) - & -(localobs(i,j,k,bi,bj)-localobsmean(i,j,k,bi,bj)) ) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_CP', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -271,89 +183,48 @@ subroutine ecco_diffanommsk( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_obsmsk +C !ROUTINE: ECCO_CPRSRL C !INTERFACE: - subroutine ecco_obsmsk( - I localbar, nnzbar, localobs, nnzobs, localmask, - I spminloc, spmaxloc, spzeroloc, - O localout, obsmask, - I myThid - & ) + SUBROUTINE ECCO_CPRSRL( + I fldIn, + U fldOut, + I nzIn, nlev, myThid ) C !DESCRIPTION: \bv -C mask (model) fieds if observation is out-of-bound or missing. +C copy a field to another array, switching from _RS to _RL C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzobs, nnzbar - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL localout (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL obsmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - - _RL spminloc, spmaxloc, spzeroloc + _RS fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax -#ifdef ECCO_CTRL_DEPRECATED - obsmask(i,j,k,bi,bj) = cosphi(i,j,bi,bj)* - & localmask(i,j,k,bi,bj) -#else - obsmask(i,j,k,bi,bj) = localmask(i,j,k,bi,bj) -#endif - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - obsmask(i,j,k,bi,bj) = 0. _d 0 - endif - localout(i,j,k,bi,bj) = obsmask(i,j,k,bi,bj)* - & localbar(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_CPRSRL', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -362,70 +233,69 @@ subroutine ecco_obsmsk( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_cp +C !ROUTINE: ECCO_ADDCOST C !INTERFACE: - subroutine ecco_cp( - I fldIn, nzIn, fldOut, nzOut, - I myThid - & ) + SUBROUTINE ECCO_ADDCOST( + I localDif, localWeight, difMask, nzIn, nLev, doSumSq, + U objf_local, num_local, + I myThid ) C !DESCRIPTION: \bv -C copy a field to another array +C adds to a cost function term C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT PARAMETERS: + INTEGER nzIn, nLev + LOGICAL doSumSq INTEGER myThid - INTEGER nzOut, nzIn - - _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + _RL localDif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL localWeight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL difMask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) +C !OUTPUT PARAMETERS: + _RL objf_local (nSx,nSy) + _RL num_local (nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k + _RL localwww + _RL localcost + _RL junk CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nzOut - do j = jmin,jmax - do i = imin,imax - fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + localwww = 0. _d 0 + + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_ADDCOST', + & 'nLev > nzIn not allowed.', myThid ) +c-- Compute normalized model-obs cost function + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + localcost = 0. _d 0 + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + localwww = localWeight(i,j,k,bi,bj) * difMask(i,j,k,bi,bj) + junk = localDif(i,j,k,bi,bj) + IF ( doSumSq ) THEN + localcost = localcost + junk*junk*localwww + ELSE + localcost = localcost + junk*localwww + ENDIF + IF ( localwww .NE. 0. ) + & num_local(bi,bj) = num_local(bi,bj) + 1. _d 0 + ENDDO + ENDDO + ENDDO + objf_local(bi,bj) = objf_local(bi,bj) + localcost + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -434,70 +304,48 @@ subroutine ecco_cp( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_cprsrl +C !ROUTINE: ECCO_ADD C !INTERFACE: - subroutine ecco_cprsrl( - I fldIn, nzIn, fldOut, nzOut, - I myThid - & ) + SUBROUTINE ECCO_ADD( + U fldOut, + I fldIn, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C copy a field to another array, switching from _RS to _RL +C add a field (fldIn) to another field (fldOut) C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nzOut, nzIn - - _RS fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nzOut - do j = jmin,jmax - do i = imin,imax - fldOut(i,j,k,bi,bj) = fldIn(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_ADD', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) + & + fldIn (i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -506,94 +354,53 @@ subroutine ecco_cprsrl( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_addcost +C !ROUTINE: ECCO_SUBTRACT C !INTERFACE: - subroutine ecco_addcost( - I localdif, localweight, difmask, nnzobs, dosumsq, - U objf_local, num_local, - I myThid - & ) + SUBROUTINE ECCO_SUBTRACT( + U fldOut, + I fldIn, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C adds to a cost function term +C subtract a field (fldIn) from another field (fldOut) C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzobs - - _RL localdif (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localweight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL difmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - - _RL objf_local(nSx,nSy) - _RL num_local(nSx,nSy) - - logical dosumsq + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - - _RL localwww - _RL localcost - _RL junk - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - localwww = 0. _d 0 - -c-- Compute normalized model-obs cost function - do bj = jtlo,jthi - do bi = itlo,ithi - localcost = 0. _d 0 - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localwww = localweight(i,j,k,bi,bj) - & * difmask(i,j,k,bi,bj) - junk = localdif(i,j,k,bi,bj) - if(dosumsq) then - localcost = localcost + junk*junk*localwww - else - localcost = localcost + junk*localwww - endif - if ( localwww .ne. 0. ) - & num_local(bi,bj) = num_local(bi,bj) + 1. _d 0 - enddo - enddo - enddo - objf_local(bi,bj) = objf_local(bi,bj) + localcost - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_SUBTRACT', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) + & - fldIn (i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -602,71 +409,55 @@ subroutine ecco_addcost( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_add +C !ROUTINE: ECCO_ADDMASK C !INTERFACE: - subroutine ecco_add( - I fldIn, nzIn, fldOut, nzOut, - I myThid - & ) + SUBROUTINE ECCO_ADDMASK( + I fldIn, fldInmask, + U fldOut, fldOutnum, + I nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C add a field (fldIn) to another field (fldOut) +C add a field to another array only grids where the mask is non-zero. +C Also increase the counter by one one those girds. C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nzOut, nzIn - - _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldInmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldOutnum (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nzOut - do j = jmin,jmax - do i = imin,imax - fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) - & + fldIn(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_ADDMASK', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + IF ( fldInmask(i,j,k,bi,bj) .NE. 0. _d 0 ) THEN + fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) + & + fldIn (i,j,k,bi,bj) + fldOutnum(i,j,k,bi,bj) = fldOutnum(i,j,k,bi,bj) + 1. _d 0 + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -675,70 +466,50 @@ subroutine ecco_add( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_subtract +C !ROUTINE: ECCO_DIV C !INTERFACE: - subroutine ecco_subtract( - I fldIn, nzIn, fldOut, nzOut, - I myThid - & ) - + SUBROUTINE ECCO_DIV( + U fld, + I numerLoc, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C subtract a field (fldIn) from another field (fldOut) +C divide a field with RL constant C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nzOut, nzIn - - _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL numerLoc #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k + _RL recip_num CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nzOut - do j = jmin,jmax - do i = imin,imax - fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) - & - fldIn(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_DIV', + & 'nLev > nzIn not allowed.', myThid ) + IF ( numerLoc .NE. 0. _d 0 ) THEN + recip_num = 1. _d 0 / numerLoc + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj) * recip_num + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF #endif /* ALLOW_ECCO */ @@ -747,78 +518,48 @@ subroutine ecco_subtract( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_addmask +C !ROUTINE: ECCO_DIVFIELD C !INTERFACE: - subroutine ecco_addmask( - I fldIn, fldInmask, nzIn, fldOut, fldOutnum, - I nzOut, myThid - & ) - + SUBROUTINE ECCO_DIVFIELD( fld, fldDenom, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C add a field to another array only grids where the mask is non-zero. -C Also increase the counter by one one those girds. +C divide a field by another field C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nzOut, nzIn - - _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldInmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) - _RL fldOut (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) - _RL fldOutnum (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzOut,nSx,nSy) + _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldDenom(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Determine the model-data difference mask - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nzOut - do j = jmin,jmax - do i = imin,imax - if(fldInmask(i,j,k,bi,bj) .NE. 0. _d 0) then - fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj) - & + fldIn(i,j,k,bi,bj) - fldOutnum(i,j,k,bi,bj) = fldOutnum(i,j,k,bi,bj) - & + 1. _d 0 - endif - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_DIVFIELD', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + IF ( fldDenom(i,j,k,bi,bj) .NE. 0. _d 0 ) THEN + fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj)/fldDenom(i,j,k,bi,bj) + ELSE + fld(i,j,k,bi,bj) = 0. _d 0 + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -827,60 +568,46 @@ subroutine ecco_addmask( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_div +C !ROUTINE: ECCO_MULT C !INTERFACE: - subroutine ecco_div( fld, nnzloc, numerloc, myThid ) + SUBROUTINE ECCO_MULT( + U fld, + I multLoc, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C divide a field with RL constant +C multiply a field with RL constant C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzloc - _RL numerloc - _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + _RL multLoc + _RL fld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzloc - do j = jmin,jmax - do i = imin,imax - fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj)/numerloc - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR('ECCO_MULT', + & 'nLev > nzIn not allowed.', myThid) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj)*multLoc + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -889,65 +616,46 @@ subroutine ecco_div( fld, nnzloc, numerloc, myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_divfield +C !ROUTINE: ECCO_MULTFIELD C !INTERFACE: - subroutine ecco_divfield( fld, nnzloc, flddenom, myThid ) + SUBROUTINE ECCO_MULTFIELD( + U fldOut, + I fldIn, nzIn, nLev, myThid ) C !DESCRIPTION: \bv -C divide a field by another field +C multiply a field by another field, fldOut is updated on output C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzloc - _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) - _RL flddenom (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + _RL fldOut(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL fldIn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzloc - do j = jmin,jmax - do i = imin,imax - if(flddenom(i,j,k,bi,bj) .NE. 0. _d 0) then - fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj)/ - & flddenom(i,j,k,bi,bj) - else - fld(i,j,k,bi,bj) = 0. _d 0 - endif - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_MULTFIELD', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + fldOut(i,j,k,bi,bj) = fldOut(i,j,k,bi,bj)*fldIn(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -956,60 +664,49 @@ subroutine ecco_divfield( fld, nnzloc, flddenom, myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_mult +C !ROUTINE: ECCO_MASKMINDEPTH C !INTERFACE: - subroutine ecco_mult( fld, nnzloc, multloc, myThid ) + SUBROUTINE ECCO_MASKMINDEPTH( + U difMask, + I nzIn, nLev, topoMin, myThid ) C !DESCRIPTION: \bv -C multiply a field with RL constant +C set difMask to zero where topography is shallower that topoMin C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" +#include "GRID.h" -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: + INTEGER nzIn, nLev INTEGER myThid - INTEGER nnzloc - _RL multloc - _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + _RL difMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL topoMin #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzloc - do j = jmin,jmax - do i = imin,imax - fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj)*multloc - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_MASMINDEPTH', + & 'nLev > nzIn not allowed.', myThid ) + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + IF ( R_low(i,j,bi,bj) .GT. topoMin ) THEN + DO k = 1,nLev + difMask(i,j,k,bi,bj) = zeroRL + ENDDO + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ @@ -1018,78 +715,111 @@ subroutine ecco_mult( fld, nnzloc, multloc, myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_multfield +C !ROUTINE: ECCO_OFFSET C !INTERFACE: - subroutine ecco_multfield( fld, nnzloc, fld2, myThid ) + SUBROUTINE ECCO_OFFSET( + I fName, + U fld, + I difMask, nzIn, nLev, + I myThid ) + C !DESCRIPTION: \bv -C multiply a field by another field, fld2 is updated on output +C remove mean of masked field C \ev C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" -c == routine arguments == - +C !INPUT/OUTPUT PARAMETERS: INTEGER myThid - INTEGER nnzloc - _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) - _RL fld2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzloc,nSx,nSy) + INTEGER nzIn, nLev + CHARACTER*(*) fName + _RL fld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) + _RL difMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj,i,j,k + _RL volTile(nSx,nSy), sumTile(nSx,nSy) + _RL tmpVol, volGlob, sumGlob + _RL theMean + CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzloc - do j = jmin,jmax - do i = imin,imax - fld2(i,j,k,bi,bj) = fld(i,j,k,bi,bj)* - & fld2(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo + IF ( nLev .GT. nzIn ) CALL ECCO_ERROR( 'ECCO_OFFSET', + & 'nLev > nzIn not allowed.', myThid ) +c-- Compute the mean + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + volTile(bi,bj) = 0. _d 0 + sumTile(bi,bj) = 0. _d 0 + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + tmpVol = difMask(i,j,k,bi,bj) + volTile(bi,bj) = volTile(bi,bj) + tmpVol + sumTile(bi,bj) = sumTile(bi,bj) + tmpVol*fld(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + + CALL GLOBAL_SUM_TILE_RL( volTile, volGlob, myThid ) + CALL GLOBAL_SUM_TILE_RL( sumTile, sumGlob, myThid ) + + IF ( volGlob.GT.zeroRL ) THEN + theMean = sumGlob/volGlob + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx + IF (difMask(i,j,k,bi,bj) .NE. 0. _d 0) THEN + fld(i,j,k,bi,bj) = fld(i,j,k,bi,bj) - theMean + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + ELSE + theMean = 0. _d 0 + ENDIF + +C Print the global mean to standard output + _BEGIN_MASTER( myThid ) + WRITE(msgBuf,'(3A,1PE21.14)') + & 'ecco_offset: # of nonzero constributions to mean of ', + & fname, ' = ', volGlob + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(3A,1PE21.14)') + & 'ecco_offset: Global mean of ', + & fname, ' = ', theMean + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + _END_MASTER( myThid ) #endif /* ALLOW_ECCO */ RETURN END + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_readbar +C !ROUTINE: ECCO_READBAR C !INTERFACE: - subroutine ecco_readbar( + SUBROUTINE ECCO_READBAR( I active_var_file, O active_var, - I iRec, - I nnzbar, + I iRec, nzIn, nLev, I dummy, - I myThid - & ) + I myThid ) C !DESCRIPTION: \bv C reads one record from averaged time series ("bar file") @@ -1098,59 +828,78 @@ subroutine ecco_readbar( C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - -C active_var_file: filename -C active_var: array -C iRec: record number +C !INPUT/OUTPUT PARAMETERS: +C active_var_file :: filename +C active_var :: array +C iRec :: record number +C nzIn :: size of active_var +C nLev :: number vertical levels used CHARACTER*(*) active_var_file - _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - INTEGER iRec + INTEGER iRec, nzIn, nLev INTEGER myThid - INTEGER nnzbar + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) _RL dummy #ifdef ALLOW_ECCO - -c == local variables == - - LOGICAL doglobalread +C !LOCAL VARIABLES: + LOGICAL doGlobalRead LOGICAL lAdInit - + INTEGER i,j,bi,bj + _RL tmpFld2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP - doglobalread = .false. - ladinit = .false. + doGlobalRead = .FALSE. + lAdInit = .FALSE. #ifdef ALLOW_AUTODIFF - if ( nnzbar .EQ. 1 ) then - call active_read_xy( active_var_file, active_var, - & irec, doglobalread, - & ladinit, eccoiter, myThid, + IF ( nLev .EQ. 1 ) THEN + CALL ACTIVE_READ_XY( active_var_file, tmpFld2D, + & iRec, doGlobalRead, + & lAdInit, eccoiter, myThid, & dummy ) - else - call active_read_xyz( active_var_file, active_var, - & irec, doglobalread, - & ladinit, eccoiter, myThid, + ELSEIF ( nLev .EQ. Nr .AND. nzIn .EQ. Nr ) THEN + CALL ACTIVE_READ_XYZ( active_var_file, active_var, + & iRec, doGlobalRead, + & lAdInit, eccoiter, myThid, & dummy ) - endif + ELSE + WRITE(msgBuf,'(A,I3,A)') 'nLev = ',nLev,' should not happen' + CALL ECCO_ERROR( 'ECCO_READBAR', msgBuf, myThid ) + ENDIF #else - if ( nnzbar .EQ. 1 ) then - CALL READ_REC_XY_RL( active_var_file, active_var, - & iRec, 1, myThid ) - else - CALL READ_REC_XYZ_RL( active_var_file, active_var, - & iRec, 1, myThid ) - endif + IF ( nLev .EQ. 1 ) THEN + CALL READ_REC_XY_RL( active_var_file, tmpFld2D, + & iRec, 1, myThid ) + ELSEIF ( nLev .EQ. Nr .AND. nzIn .EQ. Nr ) THEN + CALL READ_REC_XYZ_RL( active_var_file, active_var, + & iRec, 1, myThid ) + ELSE + WRITE(msgBuf,'(A,I3,A)') 'nLev = ',nLev,' should not happen' + CALL ECCO_ERROR( 'ECCO_READBAR', msgBuf, myThid ) + ENDIF #endif + IF ( nLev .EQ. 1 ) THEN + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + active_var(i,j,1,bi,bj) = tmpFld2D(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + #endif /* ALLOW_ECCO */ RETURN @@ -1158,16 +907,14 @@ subroutine ecco_readbar( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: ecco_readwei +C !ROUTINE: ECCO_READWEI C !INTERFACE: - subroutine ecco_readwei( - I localerr_file, - O localweight, - I iRec, - I nnzbar, - I dosumsq, - I myThid - & ) + SUBROUTINE ECCO_READWEI( + I localErr_file, + O localWeight, + I iRec, nzIn, nLev, + I doSumSq, + I myThid ) C !DESCRIPTION: \bv C reads uncertainty field and compute weight as squared inverse @@ -1176,74 +923,93 @@ subroutine ecco_readwei( C !USES: IMPLICIT NONE -C == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif -c == routine arguments == - -C localerr_file: filename -C localweight: array -C iRec: record number - CHARACTER*(*) localerr_file - _RL localweight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - INTEGER iRec +C !INPUT/OUTPUT PARAMETERS: +C localErr_file :: filename +C localWeight :: array +C iRec :: record number + CHARACTER*(*) localErr_file + INTEGER iRec, nzIn, nLev + LOGICAL doSumSq INTEGER myThid - INTEGER nnzbar - LOGICAL dosumsq + _RL localWeight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nzIn,nSx,nSy) #ifdef ALLOW_ECCO - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k CEOP - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - CALL READ_REC_3D_RL( localerr_file, cost_iprec, nnzbar, - & localweight, iRec, 1, myThid ) + CALL READ_REC_LEV_RL( localErr_file, cost_iprec, nzIn, 1, nLev, + & localWeight, iRec, 1, myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO j = jmin,jmax - DO i = imin,imax - DO k = 1,nnzbar + DO k = 1,nLev + DO j = 1,sNy + DO i = 1,sNx c-- Test for missing values. - if (localweight(i,j,k,bi,bj) .lt. -9900.) then - localweight(i,j,k,bi,bj) = 0. _d 0 + IF (localWeight(i,j,k,bi,bj) .LT. -9900.) THEN + localWeight(i,j,k,bi,bj) = 0. _d 0 c-- Convert to weight - elseif ( localweight(i,j,k,bi,bj).ne.0. .AND. dosumsq ) then - localweight(i,j,k,bi,bj) = - & oneRL/localweight(i,j,k,bi,bj)/localweight(i,j,k,bi,bj) - elseif ( localweight(i,j,k,bi,bj).ne.0. ) then - localweight(i,j,k,bi,bj) = - & oneRL/localweight(i,j,k,bi,bj) - endif - enddo - enddo - enddo - enddo - enddo + ELSEIF ( localWeight(i,j,k,bi,bj).NE.0. .AND. doSumSq ) THEN + localWeight(i,j,k,bi,bj) = + & oneRL/localWeight(i,j,k,bi,bj)/localWeight(i,j,k,bi,bj) + ELSEIF ( localWeight(i,j,k,bi,bj).NE.0. ) THEN + localWeight(i,j,k,bi,bj) = + & oneRL/localWeight(i,j,k,bi,bj) + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ECCO */ RETURN END +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: ECCO_ERROR +C !INTERFACE: + SUBROUTINE ECCO_ERROR( srName, errMsg, myThid ) +C !DESCRIPTION: \bv +C prints error messages and stops +C \ev + +C !USES: + IMPLICIT NONE + +C == Global variables == +#include "SIZE.h" +#include "EEPARAMS.h" + +C !INPUT/OUTPUT PARAMETERS: +C srName :: name of caller +C errMsg :: error message to be printed + CHARACTER*(*) srName, errMsg + INTEGER myThid + +#ifdef ALLOW_ECCO +C !LOCAL VARIABLES: + CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + + WRITE(msgBuf,'(A,A,A)') srName, ': ', errMsg + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R ECCO_ERROR' + +#endif /* ALLOW_ECCO */ + + RETURN + END diff --git a/pkg/ecco/ecco_write_pickup.F b/pkg/ecco/ecco_write_pickup.F new file mode 100644 index 0000000000..8adb382a06 --- /dev/null +++ b/pkg/ecco/ecco_write_pickup.F @@ -0,0 +1,65 @@ +#include "ECCO_OPTIONS.h" + +CBOP +C !ROUTINE: ECCO_WRITE_PICKUP +C !INTERFACE: + SUBROUTINE ECCO_WRITE_PICKUP( permPickup, suff, + I myTime, myIter, myThid ) + +C !DESCRIPTION: \bv +C *================================================================* +C | SUBROUTINE ECCO_WRITE_PICKUP +C | o write ecco pickups +C *================================================================* +C \ev + +C !USES: + IMPLICIT NONE +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "ECCO_SIZE.h" +#include "ECCO.h" + +C !INPUT/OUTPUT PARAMETERS: +C permPickup :: write a permanent pickup +C suff :: suffix for pickup file (eg. ckptA or 0000000010) +C myTime :: Current time in simulation +C myIter :: Current iteration number in simulation +C myThid :: My Thread Id number + LOGICAL permPickup + CHARACTER*(*) suff + _RL myTime + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_PSBAR_STERIC +C !LOCAL VARIABLES: + CHARACTER*(MAX_LEN_FNAM) fn +c CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER prec, ioUnit + _RL tmparr(2), dummyRS(1) +CEOP + + WRITE(fn,'(A,A10)') 'pickup_ecco.',suff + IF ( fn .NE. ' ' ) THEN + ioUnit = 0 + prec = precFloat64 + + tmparr(1) = VOLsumGlob_0 + tmparr(2) = RHOsumGlob_0 +#ifdef ALLOW_MDSIO + CALL MDS_WRITEVEC_LOC( + I fn, prec, ioUnit, + I 'RL', 2, tmparr, dummyRS, + I 0, 0, 1, myIter, myThid ) +#else + STOP 'ABNORMAL END: S/R ECCO_WRITE_PICKUP: Needs MDSIO pkg' +#endif + ENDIF + +#endif /* ALLOW_PSBAR_STERIC */ + + RETURN + END diff --git a/pkg/ecco/stergloh_output.F b/pkg/ecco/stergloh_output.F new file mode 100644 index 0000000000..23aa2d5f20 --- /dev/null +++ b/pkg/ecco/stergloh_output.F @@ -0,0 +1,129 @@ +#include "ECCO_OPTIONS.h" + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: STERGLOH_OUTPUT + +C !INTERFACE: + SUBROUTINE STERGLOH_OUTPUT( myTime, myIter, myThid ) + +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE STERGLOH_OUTPUT +C | o Ouput the global steric height change (Greatbatch correction) +C *==========================================================* + +C !USES: + IMPLICIT NONE +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +#endif + +C !INPUT PARAMETERS: +C myTime :: my time in simulation ( s ) +C myIter :: my Iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_ECCO +#ifdef ALLOW_PSBAR_STERIC + +C !FUNCTIONS: +c LOGICAL DIFFERENT_MULTIPLE +c EXTERNAL DIFFERENT_MULTIPLE + +C-- Local variables shared by S/R within this file (stergloh_output.F) +C IOunit_outpFile :: IO-unit of binary output file + INTEGER IOunit_outpFile + COMMON /STERGLOH_OUTPUT_LOCAL/ IOunit_outpFile + +C !LOCAL VARIABLES: +C fName :: output file name +C msgBuf :: Informational/error message buffer + CHARACTER*(10) suff + CHARACTER*(MAX_LEN_FNAM) fName + CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER irecord + INTEGER ioUnit + _RL tmpVar(1) + _RS dummyRS(1) + +C----------------------------------------------------------------- +C Save the global mean steric heigt change at every time step +C----------------------------------------------------------------- + + IF ( ecco_output_sterGloH ) THEN + irecord = myIter - nIter0 + 1 + +#ifdef ALLOW_MDSIO + IF ( rwSuffixType.EQ.0 ) THEN + WRITE(fName,'(A,I10.10)') 'sterGloH_global.', nIter0 + ELSE + CALL RW_GET_SUFFIX( suff, startTime, nIter0, myThid ) + WRITE(fName,'(A,A)') 'sterGloH_global.', suff + ENDIF + + IF ( ecco_keepTSeriesOutp_open ) THEN + IF ( myIter .EQ. nIter0 ) THEN +C- to open new IO unit and keep it open + ioUnit = -1 + ELSE +C- to write to already open IO unit + ioUnit = IOunit_outpFile + ENDIF +C- skip writing meta file (unless last time to write to file) + IF ( myIter .NE. nEndIter ) irecord = -irecord + ELSE +C- to open new IO unit, write and close it all within same call + ioUnit = 0 + ENDIF + + tmpVar(1) = sterGloH + CALL MDS_WRITEVEC_LOC( + I fName, precFloat64, ioUnit, + I 'RL', 1, tmpVar, dummyRS, + I 0, 0, irecord, myIter, myThid ) + + IF ( ecco_keepTSeriesOutp_open ) THEN +C- multi-threaded: only master-thread save IO-unit to shared variable +C (in common block) and close open file (after last write) + _BEGIN_MASTER(myThid) + IF ( myIter .EQ. nIter0 ) THEN +C- save for next write to same file: + IOunit_outpFile = ioUnit + ENDIF + IF ( myIter .EQ. nEndIter .AND. ioUnit .GT. 0 ) THEN +C- after last write, close IO-unit: + IF ( debugLevel.GE.debLevC ) THEN + WRITE(msgBuf,'(A,I8,3A)') + & ' STERGLOH_OUTPUT: close ioUnit=', ioUnit, + & ', file: ', fName(1:26), '.data' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + CLOSE( ioUnit ) + ELSEIF ( myIter .EQ. nEndIter .AND. debugMode ) THEN + WRITE(msgBuf,'(2A,I10,A)') + & ' STERGLOH_OUTPUT: no file to close', + & ' (ioUnit=', ioUnit, ' )' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + _END_MASTER(myThid) + ENDIF + +#endif /* ALLOW_MDSIO */ + ENDIF + +#endif /* ALLOW_PSBAR_STERIC */ +#endif /* ALLOW_ECCO */ + + RETURN + END diff --git a/pkg/exch2/exch2_rl1_cube_b.F b/pkg/exch2/exch2_rl1_cube_b.F new file mode 100644 index 0000000000..45b29cea22 --- /dev/null +++ b/pkg/exch2/exch2_rl1_cube_b.F @@ -0,0 +1,65 @@ +#include "CPP_EEOPTIONS.h" + +CBOP +C !ROUTINE: EXCH2_RL1_CUBE_B + +C !INTERFACE: + SUBROUTINE EXCH2_RL1_CUBE_B( + U array, arrayb, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + +C !DESCRIPTION: +C Scalar field (1 component) AD-Exchange: +C Tile-edge overlap-region of a 1 component scalar field is added to +C corresponding near-edge interior data point and then zero out. + +C !USES: + IMPLICIT NONE + +C == Global data == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + +C !INPUT/OUTPUT PARAMETERS: +C array :: Array with edges to exchange. +C signOption :: Flag controlling whether field sign depends on orientation +C :: (signOption not yet implemented but needed for SM exch) +C fieldCode :: field code (position on staggered grid) +C myOLw,myOLe :: West and East overlap region sizes. +C myOLs,myOLn :: South and North overlap region sizes. +C exchWidthX :: Width of data regi exchanged in X. +C exchWidthY :: Width of data region exchanged in Y. +C cornerMode :: halo-corner-region treatment: update/ignore corner region +C myThid :: Thread number of this instance of S/R EXCH... + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNZ, nSx, nSy) + _RL arrayb(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNZ, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + CALL EXCH2_RL1_CUBE_AD( + U arrayb, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + RETURN + END diff --git a/pkg/exch2/exch2_rl2_cube_b.F b/pkg/exch2/exch2_rl2_cube_b.F new file mode 100644 index 0000000000..c55e5f6d38 --- /dev/null +++ b/pkg/exch2/exch2_rl2_cube_b.F @@ -0,0 +1,72 @@ +#include "CPP_EEOPTIONS.h" + +CBOP +C !ROUTINE: EXCH2_RL2_CUBE_B + +C !INTERFACE: + SUBROUTINE EXCH2_RL2_CUBE_B( + U array1, array1b, + U array2, array2b, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + +C !DESCRIPTION: +C Two components vector field AD-Exchange: +C Tile-edge overlap-region of a 2 component vector field is added to +C corresponding near-edge interior data point and then zero out. + +C !USES: + IMPLICIT NONE + +C == Global data == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + +C !INPUT/OUTPUT PARAMETERS: +C array1 :: 1rst component array with edges to exchange. +C array2 :: 2nd component array with edges to exchange. +C signOption :: Flag controlling whether vector is signed. +C fieldCode :: field code (position on staggered grid) +C myOLw,myOLe :: West and East overlap region sizes. +C myOLs,myOLn :: South and North overlap region sizes. +C exchWidthX :: Width of data region exchanged in X. +C exchWidthY :: Width of data region exchanged in Y. +C cornerMode :: halo-corner-region treatment: update/ignore corner region +C myThid :: Thread number of this instance of S/R EXCH... + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array1(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array2(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array1b(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array2b(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + CALL EXCH2_RL2_CUBE_AD( + U array1b, array2b, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + RETURN + END diff --git a/pkg/exch2/exch2_rs1_cube_b.F b/pkg/exch2/exch2_rs1_cube_b.F new file mode 100644 index 0000000000..550d800121 --- /dev/null +++ b/pkg/exch2/exch2_rs1_cube_b.F @@ -0,0 +1,65 @@ +#include "CPP_EEOPTIONS.h" + +CBOP +C !ROUTINE: EXCH2_RS1_CUBE_B + +C !INTERFACE: + SUBROUTINE EXCH2_RS1_CUBE_B( + U array, arrayb, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + +C !DESCRIPTION: +C Scalar field (1 component) AD-Exchange: +C Tile-edge overlap-region of a 1 component scalar field is added to +C corresponding near-edge interior data point and then zero out. + +C !USES: + IMPLICIT NONE + +C == Global data == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + +C !INPUT/OUTPUT PARAMETERS: +C array :: Array with edges to exchange. +C signOption :: Flag controlling whether field sign depends on orientation +C :: (signOption not yet implemented but needed for SM exch) +C fieldCode :: field code (position on staggered grid) +C myOLw,myOLe :: West and East overlap region sizes. +C myOLs,myOLn :: South and North overlap region sizes. +C exchWidthX :: Width of data regi exchanged in X. +C exchWidthY :: Width of data region exchanged in Y. +C cornerMode :: halo-corner-region treatment: update/ignore corner region +C myThid :: Thread number of this instance of S/R EXCH... + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNZ, nSx, nSy) + _RS arrayb(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNZ, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + CALL EXCH2_RS1_CUBE_AD( + U arrayb, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + RETURN + END diff --git a/pkg/exch2/exch2_rs2_cube_b.F b/pkg/exch2/exch2_rs2_cube_b.F new file mode 100644 index 0000000000..40ccb264fe --- /dev/null +++ b/pkg/exch2/exch2_rs2_cube_b.F @@ -0,0 +1,72 @@ +#include "CPP_EEOPTIONS.h" + +CBOP +C !ROUTINE: EXCH2_RS2_CUBE_B + +C !INTERFACE: + SUBROUTINE EXCH2_RS2_CUBE_B( + U array1, array1b, + U array2, array2b, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + +C !DESCRIPTION: +C Two components vector field AD-Exchange: +C Tile-edge overlap-region of a 2 component vector field is added to +C corresponding near-edge interior data point and then zero out. + +C !USES: + IMPLICIT NONE + +C == Global data == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + +C !INPUT/OUTPUT PARAMETERS: +C array1 :: 1rst component array with edges to exchange. +C array2 :: 2nd component array with edges to exchange. +C signOption :: Flag controlling whether vector is signed. +C fieldCode :: field code (position on staggered grid) +C myOLw,myOLe :: West and East overlap region sizes. +C myOLs,myOLn :: South and North overlap region sizes. +C exchWidthX :: Width of data region exchanged in X. +C exchWidthY :: Width of data region exchanged in Y. +C cornerMode :: halo-corner-region treatment: update/ignore corner region +C myThid :: Thread number of this instance of S/R EXCH... + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array1(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array2(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array1b(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array2b(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + +C !LOCAL VARIABLES: +CEOP + CALL EXCH2_RS2_CUBE_AD( + U array1b, array2b, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + RETURN + END diff --git a/pkg/exch2/exch2_rs_rl_12_d.F b/pkg/exch2/exch2_rs_rl_12_d.F new file mode 100644 index 0000000000..c172648fb6 --- /dev/null +++ b/pkg/exch2/exch2_rs_rl_12_d.F @@ -0,0 +1,204 @@ +#include "CPP_EEOPTIONS.h" + +C-- File exch2_rs_rl_12_d.F: Tapenade Tangent Linear EXCH2 routines +C-- Contents +C-- o EXCH2_RS1_CUBE_D( +C-- o EXCH2_RL1_CUBE_D( +C-- o EXCH2_RS2_CUBE_D( +C-- o EXCH2_RL2_CUBE_D( + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH2_RS1_CUBE_D( + U array, arrayd, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS arrayd(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH2_RS1_CUBE( + U array, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + CALL EXCH2_RS1_CUBE( + U arrayd, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH2_RL1_CUBE_D( + U array, arrayd, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL arrayd(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH2_RL1_CUBE( + U array, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + CALL EXCH2_RL1_CUBE( + U arrayd, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH2_RS2_CUBE_D( + U array1, array1d, + U array2, array2d, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RS array1(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array1d(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array2(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RS array2d(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH2_RS2_CUBE( + U array1, array2, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + + CALL EXCH2_RS2_CUBE( + U array1d, array2d, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + SUBROUTINE EXCH2_RL2_CUBE_D( + U array1, array1d, + U array2, array2d, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "W2_EXCH2_SIZE.h" +#include "W2_EXCH2_TOPOLOGY.h" +#include "W2_EXCH2_BUFFER.h" + + INTEGER myOLw, myOLe, myOLs, myOLn, myNz + _RL array1(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array1d(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array2(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + _RL array2d(1-myOLw:sNx+myOLe, + & 1-myOLs:sNy+myOLn, + & myNz, nSx, nSy) + + LOGICAL signOption + CHARACTER*2 fieldCode + INTEGER exchWidthX + INTEGER exchWidthY + INTEGER cornerMode + INTEGER myThid + + CALL EXCH2_RL2_CUBE( + U array1, array2, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + + CALL EXCH2_RL2_CUBE( + U array1d, array2d, + I signOption, fieldCode, + I myOLw, myOLe, myOLs, myOLn, myNz, + I exchWidthX, exchWidthY, + I cornerMode, myThid ) + + END diff --git a/pkg/exch2/exch2_uv_3d_rx.template b/pkg/exch2/exch2_uv_3d_rx.template index 229ff5a82b..9f1032a45f 100644 --- a/pkg/exch2/exch2_uv_3d_rx.template +++ b/pkg/exch2/exch2_uv_3d_rx.template @@ -87,7 +87,7 @@ C--- using CubedSphereExchange: & exch2_isSedge(myTile) .EQ. 1 ) THEN DO k=1,myNz C Uphi(sNx+1, 0,k,bi,bj)= vPhi(sNx+1, 1,k,bi,bj) - DO j=1-olx,0 + DO j=1-OLx,0 Uphi(sNx+1, j,k,bi,bj)= vPhi(sNx+(1-j), 1,k,bi,bj) ENDDO ENDDO @@ -97,7 +97,7 @@ C Uphi(sNx+1, 0,k,bi,bj)= vPhi(sNx+1, 1,k,bi,bj) & exch2_isNedge(myTile) .EQ. 1 ) THEN DO k=1,myNz C Uphi(sNx+1,sNy+1,k,bi,bj)=-vPhi(sNx+1,sNy+1,k,bi,bj) - DO j=1,olx + DO j=1,OLx Uphi(sNx+1,sNy+j,k,bi,bj)=-vPhi(sNx+j,sNy+1,k,bi,bj) ENDDO ENDDO @@ -107,7 +107,7 @@ C Uphi(sNx+1,sNy+1,k,bi,bj)=-vPhi(sNx+1,sNy+1,k,bi,bj) & exch2_isNedge(myTile) .EQ. 1 ) THEN DO k=1,myNz C Uphi(sNx+1,sNy+1,k,bi,bj)= vPhi(sNx+1,sNy+1,k,bi,bj) - DO j=1,olx + DO j=1,OLx Uphi(sNx+1,sNy+j,k,bi,bj)= vPhi(sNx+j,sNy+1,k,bi,bj) ENDDO ENDDO @@ -135,8 +135,10 @@ C Zero SW corner points ENDDO ENDDO #endif + IF ( OLx.GE.2 .AND. OLy.GE.2 ) THEN uPhi(0,0,k,bi,bj)=vPhi(1,0,k,bi,bj) vPhi(0,0,k,bi,bj)=uPhi(0,1,k,bi,bj) + ENDIF ENDDO ENDIF @@ -156,12 +158,14 @@ C Zero NW corner points ENDDO ENDDO #endif - IF ( withSigns ) THEN + IF ( OLx.GE.2 .AND. OLy.GE.2 ) THEN + IF ( withSigns ) THEN uPhi(0,sNy+1,k,bi,bj)=-vPhi(1,sNy+2,k,bi,bj) vPhi(0,sNy+2,k,bi,bj)=-uPhi(0,sNy,k,bi,bj) - ELSE + ELSE uPhi(0,sNy+1,k,bi,bj)= vPhi(1,sNy+2,k,bi,bj) vPhi(0,sNy+2,k,bi,bj)= uPhi(0,sNy,k,bi,bj) + ENDIF ENDIF ENDDO ENDIF @@ -182,12 +186,14 @@ C Zero SE corner points ENDDO ENDDO #endif - IF ( withSigns ) THEN + IF ( OLx.GE.2 .AND. OLy.GE.2 ) THEN + IF ( withSigns ) THEN uPhi(sNx+2,0,k,bi,bj)=-vPhi(sNx,0,k,bi,bj) vPhi(sNx+1,0,k,bi,bj)=-uPhi(sNx+2,1,k,bi,bj) - ELSE + ELSE uPhi(sNx+2,0,k,bi,bj)= vPhi(sNx,0,k,bi,bj) vPhi(sNx+1,0,k,bi,bj)= uPhi(sNx+2,1,k,bi,bj) + ENDIF ENDIF ENDDO ENDIF @@ -208,8 +214,10 @@ C Zero NE corner points ENDDO ENDDO #endif + IF ( OLx.GE.2 .AND. OLy.GE.2 ) THEN uPhi(sNx+2,sNy+1,k,bi,bj)=vPhi(sNx,sNy+2,k,bi,bj) vPhi(sNx+1,sNy+2,k,bi,bj)=uPhi(sNx+2,sNy,k,bi,bj) + ENDIF ENDDO ENDIF diff --git a/pkg/exf/EXF_CONSTANTS.h b/pkg/exf/EXF_CONSTANTS.h index ac20d52c18..ea3eb354c1 100644 --- a/pkg/exf/EXF_CONSTANTS.h +++ b/pkg/exf/EXF_CONSTANTS.h @@ -107,7 +107,10 @@ C sstExtrapol :: extrapolation coeff from 1rst 2 levels up to surface C snow_emissivity :: longwave snow emissivity [-] (with pkg thsice/seaice) C-- to evaluate turbulent transfert coefficients: C cdrag_[n] :: n = 1,2,3 coefficients used to evaluate -C drag coefficient +C drag coefficient, +C For Large and Yeager (2009): extra coefficient n = 8 and +C cdragMax :: maximum drag coefficient ... +C umax :: ... at maximum wind C cstanton_[n] :: n = 1,2 coefficients used to evaluate C the Stanton number (stable/unstable cond.) C cdalton :: coefficient used to evaluate the Dalton number @@ -139,7 +142,7 @@ C snow_emissivity :: longwave snow emissivity [-] (with pkg thsice/seaice) _RL gamma_blk _RL saltsat _RL sstExtrapol - _RL cdrag_1, cdrag_2, cdrag_3 + _RL cdrag_1, cdrag_2, cdrag_3, cdrag_8, cdragMax, umax _RL cstanton_1, cstanton_2 _RL cdalton _RL zolmin @@ -170,7 +173,7 @@ C snow_emissivity :: longwave snow emissivity [-] (with pkg thsice/seaice) & gamma_blk, & saltsat, & sstExtrapol, - & cdrag_1, cdrag_2, cdrag_3, + & cdrag_1, cdrag_2, cdrag_3, cdrag_8, cdragMax, umax, & cstanton_1, cstanton_2, & cdalton, & zolmin, @@ -185,4 +188,3 @@ C snow_emissivity :: longwave snow emissivity [-] (with pkg thsice/seaice) & ocean_emissivity, & ice_emissivity, & snow_emissivity - diff --git a/pkg/exf/EXF_FIELDS.h b/pkg/exf/EXF_FIELDS.h index 17ee0c41ec..542a7be134 100644 --- a/pkg/exf/EXF_FIELDS.h +++ b/pkg/exf/EXF_FIELDS.h @@ -105,11 +105,9 @@ C Input or input/output field C C runoftemp :: Temperature of runoff in deg C C -C saltflx :: Net upward salt flux in psu.kg/m^2/s +C saltflx :: Net upward salt flux in (g/kg).kg/m^2/s = g/m^2/s C > 0 for decrease in SSS. C Typical origin: salty sea-ice formation / melting. -C Units: when salinity (unit= psu) is expressed -C in g/kg, saltflx unit becomes g/m^2/s. C C swdown :: Downward shortwave radiation in W/m^2 C > 0 for increase in theta (ocean warming) @@ -239,10 +237,10 @@ C sh :: wind-speed [m/s] (always larger than uMin) #endif #ifdef ALLOW_DOWNWARD_RADIATION - COMMON /exf_rad_down_r/ - & swdown, lwdown, swdown0, swdown1, lwdown0, lwdown1 + COMMON /exf_rad_down_r/ swdown, lwdown _RL swdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL lwdown (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /exfl_rad_down_r/ swdown0, swdown1, lwdown0, lwdown1 _RL swdown0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL swdown1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL lwdown0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -338,4 +336,3 @@ C zen_fsol_daily :: incoming solar radiation (daily mean) _RL climvstr0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL climvstr1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif - diff --git a/pkg/exf/EXF_OPTIONS.h b/pkg/exf/EXF_OPTIONS.h index 975addc080..c5874c11eb 100644 --- a/pkg/exf/EXF_OPTIONS.h +++ b/pkg/exf/EXF_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: EXF_OPTIONS.h C !INTERFACE: @@ -10,11 +15,6 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef EXF_OPTIONS_H -#define EXF_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_EXF #ifdef ECCO_CPPOPTIONS_H @@ -98,12 +98,12 @@ C >>> EXF_SEAICE_FRACTION <<< C If defined, seaice fraction can be read-in from files (areaMaskFile) C C >>> ALLOW_CLIMSST_RELAXATION <<< -C Allow the relaxation to a monthly climatology of sea surface -C temperature, e.g. the Reynolds climatology. +C Allow the relaxation of surface level temperature to SST (climatology), +C e.g. the Reynolds climatology. C C >>> ALLOW_CLIMSSS_RELAXATION <<< -C Allow the relaxation to a monthly climatology of sea surface -C salinity, e.g. the Levitus climatology. +C Allow the relaxation of surface level salinity to SSS (climatology), +C e.g. the Levitus climatology. C C >>> USE_EXF_INTERPOLATION <<< C Allows to provide input field on arbitrary Lat-Lon input grid @@ -172,7 +172,10 @@ C- Bulk formulae related flags. #ifdef ALLOW_ATM_TEMP C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP # define ALLOW_BULKFORMULAE +C use Large and Yeager (2004) modification to Large and Pond bulk formulae # undef ALLOW_BULK_LARGEYEAGER04 +C use drag formulation of Large and Yeager (2009), Climate Dyn., 33, pp 341-364 +# undef ALLOW_DRAG_LARGEYEAGER09 # undef EXF_READ_EVAP # ifndef ALLOW_BULKFORMULAE C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to @@ -203,7 +206,7 @@ C unless to reproduce old results (obtained with inconsistent old code) # define EXF_LWDOWN_WITH_EMISSIVITY #endif -C- Relaxation to monthly climatologies. +C- Surface level relaxation to prescribed fields (e.g., climatologies) #define ALLOW_CLIMSST_RELAXATION #define ALLOW_CLIMSSS_RELAXATION @@ -228,6 +231,10 @@ C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole # define EXF_IREAD_USE_GLOBAL_POINTER #endif +C- Not recommended (not tested nor maintained) and un-documented Options: +#undef ALLOW_BULK_OFFLINE +#undef ALLOW_CLIMSTRESS_RELAXATION + #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_EXF */ #endif /* EXF_OPTIONS_H */ diff --git a/pkg/exf/EXF_PARAM.h b/pkg/exf/EXF_PARAM.h index 4063369684..a0fe9d20c5 100644 --- a/pkg/exf/EXF_PARAM.h +++ b/pkg/exf/EXF_PARAM.h @@ -44,29 +44,44 @@ C twoDigitYear :: when set, use 2-digit year extension YR C instead of _YEAR for useExfYearlyFields C useOBCSYearlyFields :: when reading Open-Boundary values, assume yearly C climatology (def=false) -C readStressOnAgrid :: read wind-streess located on model-grid, A-grid position -C rotateStressOnAgrid :: rotate from zonal/meridional components to U/V components -C readStressOnCgrid :: read wind-streess located on model-grid, C-grid position +C readStressOnAgrid :: read wind-streess located on model-grid, +C A-grid position +C rotateStressOnAgrid:: rotate from zonal/meridional components to +C U/V components +C readStressOnCgrid :: read wind-streess located on model-grid, C-grid +C position C stressIsOnCgrid :: ustress & vstress are positioned on Arakawa C-grid C useAtmWind :: use wind vector (uwind/vwind) to compute C the wind stress (ustress/vstress) C useRelativeWind :: Subtract U/VVEL or U/VICE from U/VWIND before C computing U/VSTRESS C noNegativeEvap :: prevent negative evap (= sea-surface condensation) -C useStabilityFct_overIce :: over sea-ice, compute turbulent transfert -C coeff. function of stability (like over -C open ocean) rather than using fixed Coeff. -C diags_opOceWeighted :: weight surface flux diagnostics with open-ocean fraction +C useStabilityFct_overIce :: over sea-ice, compute turbulent transfert +C coeff. function of stability (like over +C open ocean) rather than using fixed Coeff. +C diags_opOceWeighted:: weight surface flux diagnostics with open-ocean +C fraction C useExfZenAlbedo :: ocean albedo (direct part) may vary C with zenith angle (see select_ZenAlbedo) -C select_ZenAlbedo :: switch to different methods to compute albedo (direct part) +C select_ZenAlbedo :: switch to different methods to compute albedo +C (direct part) C :: 0 just use exf_albedo C :: 1 use daily mean albedo from exf_zenithangle_table.F C :: 2 use daily mean albedo computed as in pkg/aim_v23 C :: 3 use daily variable albedo -C useExfZenIncoming :: compute incoming solar radiation along with zenith angle -C exf_debugLev :: select message printing to STDOUT (e.g., when read rec) +C useExfZenIncoming :: compute incoming solar radiation along with +C zenith angle +C exf_debugLev :: select message printing to STDOUT (e.g., when +C read rec) C exf_monFreq :: Monitor Frequency (s) for EXF +C exf_adjMonFreq :: Monitor Frequency (s) for AD exf variables +C exf_adjMonSelect :: select group of exf AD-variables to monitor +C =0 : none +C =1 : ocean forcing fu, fv, qnet, empmr (default) +C =2 : + atmospheric forcing fields (u/vwind, +C atemp, lwdown, precip, etc.) +C =3 : + derived forcing fields (u/vstress, +C h/sflux, wspeed) LOGICAL useExfCheckRange LOGICAL useExfYearlyFields, twoDigitYear @@ -87,6 +102,8 @@ C exf_monFreq :: Monitor Frequency (s) for EXF INTEGER exf_debugLev _RL exf_monFreq + _RL exf_adjMonFreq + INTEGER exf_adjMonSelect C Drag coefficient scaling factor _RL exf_scal_BulkCdn @@ -483,7 +500,7 @@ C- File names. & useStabilityFct_overIce, diags_opOceWeighted COMMON /EXF_PARAM_I/ - & select_ZenAlbedo, exf_debugLev, + & select_ZenAlbedo, exf_debugLev, exf_adjMonSelect, & hfluxstartdate1, hfluxstartdate2, & atempstartdate1, atempstartdate2, & aqhstartdate1, aqhstartdate2, @@ -517,7 +534,7 @@ C- File names. & siobWstartdate1, siobWstartdate2 COMMON /EXF_PARAM_R/ - & repeatPeriod, exf_monFreq, + & repeatPeriod, exf_monFreq, exf_adjMonFreq, & exf_scal_BulkCdn, windstressmax, & hfluxconst, hfluxRepCycle, & hfluxperiod, hfluxStartTime, diff --git a/pkg/exf/exf_ad_check_lev1_dir.h b/pkg/exf/exf_ad_check_lev1_dir.h index 31ea093075..953a04388f 100644 --- a/pkg/exf/exf_ad_check_lev1_dir.h +++ b/pkg/exf/exf_ad_check_lev1_dir.h @@ -4,6 +4,9 @@ c c created: heimbach@mit.edu 10-Jan-2002 c #ifdef ALLOW_EXF +C most of these fields are here for safety only, because it should +C always be possible to save the field hflux instead of hflux0 and +C hflux1 in the innermost checkpoint level CADJ STORE hflux0 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE hflux1 = comlev1, key=ikey_dynamics, kind=isbyte @@ -74,16 +77,6 @@ CADJ STORE climsss1 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE climsst0 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE climsst1 = comlev1, key=ikey_dynamics, kind=isbyte # endif -# ifdef ALLOW_CLIMSALT_RELAXATION -cph not used so far -cphCADJ STORE climsalt0 = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE climsalt1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_CLIMTEMP_RELAXATION -cph not used so far -cphCADJ STORE climtemp0 = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE climtemp1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif # ifdef ATMOSPHERIC_LOADING CADJ STORE apressure0 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE apressure1 = comlev1, key=ikey_dynamics, kind=isbyte @@ -102,81 +95,4 @@ CADJ STORE areamask0 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE areamask1 = comlev1, key=ikey_dynamics, kind=isbyte # endif -# ifdef ALLOW_HFLUX_CONTROL -CADJ STORE xx_hflux0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_hflux1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SFLUX_CONTROL -CADJ STORE xx_sflux0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_sflux1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_USTRESS_CONTROL -CADJ STORE xx_tauu0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_tauu1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_VSTRESS_CONTROL -CADJ STORE xx_tauv0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_tauv1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_UWIND_CONTROL -CADJ STORE xx_uwind0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_uwind1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_VWIND_CONTROL -CADJ STORE xx_vwind0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_vwind1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_ATEMP_CONTROL -CADJ STORE xx_atemp0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_atemp1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_AQH_CONTROL -CADJ STORE xx_aqh0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_aqh1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_PRECIP_CONTROL -CADJ STORE xx_precip0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_precip1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SWFLUX_CONTROL -CADJ STORE xx_swflux0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_swflux1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SWDOWN_CONTROL -CADJ STORE xx_swdown0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_swdown1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SNOWPRECIP_CONTROL -CADJ STORE xx_snowprecip0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_snowprecip1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_LWFLUX_CONTROL -CADJ STORE xx_lwflux0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_lwflux1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_LWDOWN_CONTROL -CADJ STORE xx_lwdown0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_lwdown1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_EVAP_CONTROL -CADJ STORE xx_evap0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_evap1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_APRESSURE_CONTROL -CADJ STORE xx_apressure0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_apressure1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_RUNOFF_CONTROL -CADJ STORE xx_runoff0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_runoff1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SST_CONTROL -CADJ STORE xx_sst0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_sst1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_SSS_CONTROL -CADJ STORE xx_sss0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_sss1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif - #endif /* ALLOW_EXF */ diff --git a/pkg/exf/exf_ad_check_lev2_dir.h b/pkg/exf/exf_ad_check_lev2_dir.h index fcc9ce1b3f..774795648f 100644 --- a/pkg/exf/exf_ad_check_lev2_dir.h +++ b/pkg/exf/exf_ad_check_lev2_dir.h @@ -1,37 +1,81 @@ #ifdef ALLOW_EXF -CADJ STORE StoreEXF1 = tapelev2, key = ilev_2 -CADJ STORE StoreEXF2 = tapelev2, key = ilev_2 -CADJ STORE StoreCTRLS1 = tapelev2, key = ilev_2 - # ifdef EXF_SEAICE_FRACTION CADJ STORE areamask0 = tapelev2, key = ilev_2 CADJ STORE areamask1 = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_HFLUX_CONTROL -CADJ STORE xx_hflux0 = tapelev2, key = ilev_2 -CADJ STORE xx_hflux1 = tapelev2, key = ilev_2 +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreEXF1 = tapelev2, key = ilev_2 +CADJ STORE StoreEXF2 = tapelev2, key = ilev_2 +CADJ STORE StoreCTRLS1 = tapelev2, key = ilev_2 +#else +CADJ STORE hflux0 = tapelev2, key = ilev_2 +CADJ STORE hflux1 = tapelev2, key = ilev_2 +CADJ STORE sflux0 = tapelev2, key = ilev_2 +CADJ STORE sflux1 = tapelev2, key = ilev_2 +CADJ STORE ustress0 = tapelev2, key = ilev_2 +CADJ STORE ustress1 = tapelev2, key = ilev_2 +CADJ STORE vstress0 = tapelev2, key = ilev_2 +CADJ STORE vstress1 = tapelev2, key = ilev_2 +CADJ STORE wspeed0 = tapelev2, key = ilev_2 +CADJ STORE wspeed1 = tapelev2, key = ilev_2 +# ifdef SHORTWAVE_HEATING +CADJ STORE swflux0 = tapelev2, key = ilev_2 +CADJ STORE swflux1 = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_SFLUX_CONTROL -CADJ STORE xx_sflux0 = tapelev2, key = ilev_2 -CADJ STORE xx_sflux1 = tapelev2, key = ilev_2 +# ifdef ALLOW_RUNOFF +CADJ STORE runoff0 = tapelev2, key = ilev_2 +CADJ STORE runoff1 = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_USTRESS_CONTROL -CADJ STORE xx_tauu0 = tapelev2, key = ilev_2 -CADJ STORE xx_tauu1 = tapelev2, key = ilev_2 +# ifdef ATMOSPHERIC_LOADING +CADJ STORE apressure0=tapelev2, key = ilev_2 +CADJ STORE apressure1=tapelev2, key = ilev_2 +CADJ STORE siceload = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_VSTRESS_CONTROL -CADJ STORE xx_tauv0 = tapelev2, key = ilev_2 -CADJ STORE xx_tauv1 = tapelev2, key = ilev_2 +# ifdef ALLOW_CLIMSSS_RELAXATION +CADJ STORE climsss0 = tapelev2, key = ilev_2 +CADJ STORE climsss1 = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_SST_CONTROL -CADJ STORE xx_sst0 = tapelev2, key = ilev_2 -CADJ STORE xx_sst1 = tapelev2, key = ilev_2 +# ifdef ALLOW_CLIMSST_RELAXATION +CADJ STORE climsst0 = tapelev2, key = ilev_2 +CADJ STORE climsst1 = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_SSS_CONTROL -CADJ STORE xx_sss0 = tapelev2, key = ilev_2 -CADJ STORE xx_sss1 = tapelev2, key = ilev_2 +# ifdef ALLOW_SALTFLX +CADJ STORE saltflx0 = tapelev2, key = ilev_2 +CADJ STORE saltflx1 = tapelev2, key = ilev_2 # endif - +# ifdef ALLOW_ATM_TEMP +CADJ STORE aqh0 = tapelev2, key = ilev_2 +CADJ STORE aqh1 = tapelev2, key = ilev_2 +CADJ STORE atemp0 = tapelev2, key = ilev_2 +CADJ STORE atemp1 = tapelev2, key = ilev_2 +CADJ STORE precip0 = tapelev2, key = ilev_2 +CADJ STORE precip1 = tapelev2, key = ilev_2 +CADJ STORE lwflux0 = tapelev2, key = ilev_2 +CADJ STORE lwflux1 = tapelev2, key = ilev_2 +CADJ STORE snowprecip0 = tapelev2, key = ilev_2 +CADJ STORE snowprecip1 = tapelev2, key = ilev_2 +# ifdef ALLOW_READ_TURBFLUXES +CADJ STORE hs0 = tapelev2, key = ilev_2 +CADJ STORE hs1 = tapelev2, key = ilev_2 +CADJ STORE hl0 = tapelev2, key = ilev_2 +CADJ STORE hl1 = tapelev2, key = ilev_2 +# endif +# ifdef EXF_READ_EVAP +CADJ STORE evap0 = tapelev2, key = ilev_2 +CADJ STORE evap1 = tapelev2, key = ilev_2 +# endif /* EXF_READ_EVAP */ +# ifdef ALLOW_DOWNWARD_RADIATION +CADJ STORE swdown0 = tapelev2, key = ilev_2 +CADJ STORE swdown1 = tapelev2, key = ilev_2 +CADJ STORE lwdown0 = tapelev2, key = ilev_2 +CADJ STORE lwdown1 = tapelev2, key = ilev_2 +# endif +# endif /* ALLOW_ATM_TEMP */ +CADJ STORE uwind0 = tapelev2, key = ilev_2 +CADJ STORE uwind1 = tapelev2, key = ilev_2 +CADJ STORE vwind0 = tapelev2, key = ilev_2 +CADJ STORE vwind1 = tapelev2, key = ilev_2 +#endif /* AUTODIFF_USE_STORE_RESTORE */ #endif /* ALLOW_EXF */ diff --git a/pkg/exf/exf_ad_check_lev3_dir.h b/pkg/exf/exf_ad_check_lev3_dir.h index cedea29a83..1394e274bd 100644 --- a/pkg/exf/exf_ad_check_lev3_dir.h +++ b/pkg/exf/exf_ad_check_lev3_dir.h @@ -1,37 +1,81 @@ #ifdef ALLOW_EXF -CADJ STORE StoreEXF1 = tapelev3, key = ilev_3 -CADJ STORE StoreEXF2 = tapelev3, key = ilev_3 -CADJ STORE StoreCTRLS1 = tapelev3, key = ilev_3 - # ifdef EXF_SEAICE_FRACTION CADJ STORE areamask0 = tapelev3, key = ilev_3 CADJ STORE areamask1 = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_HFLUX_CONTROL -CADJ STORE xx_hflux0 = tapelev3, key = ilev_3 -CADJ STORE xx_hflux1 = tapelev3, key = ilev_3 +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreEXF1 = tapelev3, key = ilev_3 +CADJ STORE StoreEXF2 = tapelev3, key = ilev_3 +CADJ STORE StoreCTRLS1 = tapelev3, key = ilev_3 +#else +CADJ STORE hflux0 = tapelev3, key = ilev_3 +CADJ STORE hflux1 = tapelev3, key = ilev_3 +CADJ STORE sflux0 = tapelev3, key = ilev_3 +CADJ STORE sflux1 = tapelev3, key = ilev_3 +CADJ STORE ustress0 = tapelev3, key = ilev_3 +CADJ STORE ustress1 = tapelev3, key = ilev_3 +CADJ STORE vstress0 = tapelev3, key = ilev_3 +CADJ STORE vstress1 = tapelev3, key = ilev_3 +CADJ STORE wspeed0 = tapelev3, key = ilev_3 +CADJ STORE wspeed1 = tapelev3, key = ilev_3 +# ifdef SHORTWAVE_HEATING +CADJ STORE swflux0 = tapelev3, key = ilev_3 +CADJ STORE swflux1 = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_SFLUX_CONTROL -CADJ STORE xx_sflux0 = tapelev3, key = ilev_3 -CADJ STORE xx_sflux1 = tapelev3, key = ilev_3 +# ifdef ALLOW_RUNOFF +CADJ STORE runoff0 = tapelev3, key = ilev_3 +CADJ STORE runoff1 = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_USTRESS_CONTROL -CADJ STORE xx_tauu0 = tapelev3, key = ilev_3 -CADJ STORE xx_tauu1 = tapelev3, key = ilev_3 +# ifdef ATMOSPHERIC_LOADING +CADJ STORE apressure0=tapelev3, key = ilev_3 +CADJ STORE apressure1=tapelev3, key = ilev_3 +CADJ STORE siceload = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_VSTRESS_CONTROL -CADJ STORE xx_tauv0 = tapelev3, key = ilev_3 -CADJ STORE xx_tauv1 = tapelev3, key = ilev_3 +# ifdef ALLOW_CLIMSSS_RELAXATION +CADJ STORE climsss0 = tapelev3, key = ilev_3 +CADJ STORE climsss1 = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_SST_CONTROL -CADJ STORE xx_sst0 = tapelev3, key = ilev_3 -CADJ STORE xx_sst1 = tapelev3, key = ilev_3 +# ifdef ALLOW_CLIMSST_RELAXATION +CADJ STORE climsst0 = tapelev3, key = ilev_3 +CADJ STORE climsst1 = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_SSS_CONTROL -CADJ STORE xx_sss0 = tapelev3, key = ilev_3 -CADJ STORE xx_sss1 = tapelev3, key = ilev_3 +# ifdef ALLOW_SALTFLX +CADJ STORE saltflx0 = tapelev3, key = ilev_3 +CADJ STORE saltflx1 = tapelev3, key = ilev_3 # endif - +# ifdef ALLOW_ATM_TEMP +CADJ STORE aqh0 = tapelev3, key = ilev_3 +CADJ STORE aqh1 = tapelev3, key = ilev_3 +CADJ STORE atemp0 = tapelev3, key = ilev_3 +CADJ STORE atemp1 = tapelev3, key = ilev_3 +CADJ STORE precip0 = tapelev3, key = ilev_3 +CADJ STORE precip1 = tapelev3, key = ilev_3 +CADJ STORE lwflux0 = tapelev3, key = ilev_3 +CADJ STORE lwflux1 = tapelev3, key = ilev_3 +CADJ STORE snowprecip0 = tapelev3, key = ilev_3 +CADJ STORE snowprecip1 = tapelev3, key = ilev_3 +# ifdef ALLOW_READ_TURBFLUXES +CADJ STORE hs0 = tapelev3, key = ilev_3 +CADJ STORE hs1 = tapelev3, key = ilev_3 +CADJ STORE hl0 = tapelev3, key = ilev_3 +CADJ STORE hl1 = tapelev3, key = ilev_3 +# endif +# ifdef EXF_READ_EVAP +CADJ STORE evap0 = tapelev3, key = ilev_3 +CADJ STORE evap1 = tapelev3, key = ilev_3 +# endif /* EXF_READ_EVAP */ +# ifdef ALLOW_DOWNWARD_RADIATION +CADJ STORE swdown0 = tapelev3, key = ilev_3 +CADJ STORE swdown1 = tapelev3, key = ilev_3 +CADJ STORE lwdown0 = tapelev3, key = ilev_3 +CADJ STORE lwdown1 = tapelev3, key = ilev_3 +# endif +# endif /* ALLOW_ATM_TEMP */ +CADJ STORE uwind0 = tapelev3, key = ilev_3 +CADJ STORE uwind1 = tapelev3, key = ilev_3 +CADJ STORE vwind0 = tapelev3, key = ilev_3 +CADJ STORE vwind1 = tapelev3, key = ilev_3 +#endif /* AUTODIFF_USE_STORE_RESTORE */ #endif /* ALLOW_EXF */ diff --git a/pkg/exf/exf_ad_check_lev4_dir.h b/pkg/exf/exf_ad_check_lev4_dir.h index daeedb7171..5020eac4ce 100644 --- a/pkg/exf/exf_ad_check_lev4_dir.h +++ b/pkg/exf/exf_ad_check_lev4_dir.h @@ -1,37 +1,81 @@ #ifdef ALLOW_EXF -CADJ STORE StoreEXF1 = tapelev4, key = ilev_4 -CADJ STORE StoreEXF2 = tapelev4, key = ilev_4 -CADJ STORE StoreCTRLS1 = tapelev4, key = ilev_4 - # ifdef EXF_SEAICE_FRACTION CADJ STORE areamask0 = tapelev4, key = ilev_4 CADJ STORE areamask1 = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_HFLUX_CONTROL -CADJ STORE xx_hflux0 = tapelev4, key = ilev_4 -CADJ STORE xx_hflux1 = tapelev4, key = ilev_4 +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreEXF1 = tapelev4, key = ilev_4 +CADJ STORE StoreEXF2 = tapelev4, key = ilev_4 +CADJ STORE StoreCTRLS1 = tapelev4, key = ilev_4 +#else +CADJ STORE hflux0 = tapelev4, key = ilev_4 +CADJ STORE hflux1 = tapelev4, key = ilev_4 +CADJ STORE sflux0 = tapelev4, key = ilev_4 +CADJ STORE sflux1 = tapelev4, key = ilev_4 +CADJ STORE ustress0 = tapelev4, key = ilev_4 +CADJ STORE ustress1 = tapelev4, key = ilev_4 +CADJ STORE vstress0 = tapelev4, key = ilev_4 +CADJ STORE vstress1 = tapelev4, key = ilev_4 +CADJ STORE wspeed0 = tapelev4, key = ilev_4 +CADJ STORE wspeed1 = tapelev4, key = ilev_4 +# ifdef SHORTWAVE_HEATING +CADJ STORE swflux0 = tapelev4, key = ilev_4 +CADJ STORE swflux1 = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_SFLUX_CONTROL -CADJ STORE xx_sflux0 = tapelev4, key = ilev_4 -CADJ STORE xx_sflux1 = tapelev4, key = ilev_4 +# ifdef ALLOW_RUNOFF +CADJ STORE runoff0 = tapelev4, key = ilev_4 +CADJ STORE runoff1 = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_USTRESS_CONTROL -CADJ STORE xx_tauu0 = tapelev4, key = ilev_4 -CADJ STORE xx_tauu1 = tapelev4, key = ilev_4 +# ifdef ATMOSPHERIC_LOADING +CADJ STORE apressure0=tapelev4, key = ilev_4 +CADJ STORE apressure1=tapelev4, key = ilev_4 +CADJ STORE siceload = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_VSTRESS_CONTROL -CADJ STORE xx_tauv0 = tapelev4, key = ilev_4 -CADJ STORE xx_tauv1 = tapelev4, key = ilev_4 +# ifdef ALLOW_CLIMSSS_RELAXATION +CADJ STORE climsss0 = tapelev4, key = ilev_4 +CADJ STORE climsss1 = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_SST_CONTROL -CADJ STORE xx_sst0 = tapelev4, key = ilev_4 -CADJ STORE xx_sst1 = tapelev4, key = ilev_4 +# ifdef ALLOW_CLIMSST_RELAXATION +CADJ STORE climsst0 = tapelev4, key = ilev_4 +CADJ STORE climsst1 = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_SSS_CONTROL -CADJ STORE xx_sss0 = tapelev4, key = ilev_4 -CADJ STORE xx_sss1 = tapelev4, key = ilev_4 +# ifdef ALLOW_SALTFLX +CADJ STORE saltflx0 = tapelev4, key = ilev_4 +CADJ STORE saltflx1 = tapelev4, key = ilev_4 # endif - +# ifdef ALLOW_ATM_TEMP +CADJ STORE aqh0 = tapelev4, key = ilev_4 +CADJ STORE aqh1 = tapelev4, key = ilev_4 +CADJ STORE atemp0 = tapelev4, key = ilev_4 +CADJ STORE atemp1 = tapelev4, key = ilev_4 +CADJ STORE precip0 = tapelev4, key = ilev_4 +CADJ STORE precip1 = tapelev4, key = ilev_4 +CADJ STORE lwflux0 = tapelev4, key = ilev_4 +CADJ STORE lwflux1 = tapelev4, key = ilev_4 +CADJ STORE snowprecip0 = tapelev4, key = ilev_4 +CADJ STORE snowprecip1 = tapelev4, key = ilev_4 +# ifdef ALLOW_READ_TURBFLUXES +CADJ STORE hs0 = tapelev4, key = ilev_4 +CADJ STORE hs1 = tapelev4, key = ilev_4 +CADJ STORE hl0 = tapelev4, key = ilev_4 +CADJ STORE hl1 = tapelev4, key = ilev_4 +# endif +# ifdef EXF_READ_EVAP +CADJ STORE evap0 = tapelev4, key = ilev_4 +CADJ STORE evap1 = tapelev4, key = ilev_4 +# endif /* EXF_READ_EVAP */ +# ifdef ALLOW_DOWNWARD_RADIATION +CADJ STORE swdown0 = tapelev4, key = ilev_4 +CADJ STORE swdown1 = tapelev4, key = ilev_4 +CADJ STORE lwdown0 = tapelev4, key = ilev_4 +CADJ STORE lwdown1 = tapelev4, key = ilev_4 +# endif +# endif /* ALLOW_ATM_TEMP */ +CADJ STORE uwind0 = tapelev4, key = ilev_4 +CADJ STORE uwind1 = tapelev4, key = ilev_4 +CADJ STORE vwind0 = tapelev4, key = ilev_4 +CADJ STORE vwind1 = tapelev4, key = ilev_4 +#endif /* AUTODIFF_USE_STORE_RESTORE */ #endif /* ALLOW_EXF */ diff --git a/pkg/exf/exf_ad_diff.list b/pkg/exf/exf_ad_diff.list index 3d6857865c..d611fd0d34 100644 --- a/pkg/exf/exf_ad_diff.list +++ b/pkg/exf/exf_ad_diff.list @@ -6,6 +6,7 @@ exf_getclim.f exf_getffields.f exf_getffieldrec.f exf_getforcing.f +exf_getmonthsrec.f exf_getsurfacefluxes.f exf_getyearlyfieldname.f exf_interp.f diff --git a/pkg/exf/exf_ad_dump.F b/pkg/exf/exf_ad_dump.F deleted file mode 100644 index 82ada25d0c..0000000000 --- a/pkg/exf/exf_ad_dump.F +++ /dev/null @@ -1,159 +0,0 @@ -#include "EXF_OPTIONS.h" -#include "AD_CONFIG.h" - -CBOP -C !ROUTINE: exf_ad_dump -C !INTERFACE: - SUBROUTINE EXF_AD_DUMP( myTime, myIter, myThid ) - -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE exf_ad_dump | -C *==========================================================* -C Extract adjoint variable from TAMC/TAF-generated -C adjoint common blocks, contained in adcommon.h -C and write fields to file; -C Make sure common blocks in adcommon.h are up-to-date -C w.r.t. current adjoint code. -C *==========================================================* -C | SUBROUTINE exf_ad_dump | -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE - -C == Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "EXF_PARAM.h" -#ifdef ALLOW_MNC -#include "MNC_PARAMS.h" -#endif -#include "GRID.h" -#ifdef ALLOW_AUTODIFF_MONITOR -# include "adcommon.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myTime :: time counter for this thread -C myIter :: iteration counter for this thread -C myThid :: Thread number for this instance of the routine. - _RL myTime - INTEGER myIter - INTEGER myThid - -#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) -#ifdef ALLOW_AUTODIFF_MONITOR - -C !FUNCTIONS: - LOGICAL DIFFERENT_MULTIPLE - EXTERNAL DIFFERENT_MULTIPLE - INTEGER IO_ERRCOUNT - EXTERNAL IO_ERRCOUNT - -C !LOCAL VARIABLES: -c == local variables == -C suff :: Hold suffix part of a filename -C msgBuf :: Error message buffer - CHARACTER*(10) suff -c CHARACTER*(MAX_LEN_MBUF) msgBuf - -c == end of interface == -CEOP - - CALL TIMER_START('I/O (WRITE) [EXF_AD_DUMP]', myThid ) - - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN - -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF -C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run -C ==>> is very very very nasty !!! -c writeBinaryPrec = writeStatePrec -C <<== If you really want to mess-up with this at your own risk, -C <<== uncomment the line above - - CALL WRITE_REC_3D_RL( - & 'ADJhflux.'//suff, writeBinaryPrec, 1, - & adhflux, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJsflux.'//suff, writeBinaryPrec, 1, - & adsflux, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJustress.'//suff, writeBinaryPrec, 1, - & adustress, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJvstress.'//suff, writeBinaryPrec, 1, - & advstress, 1, myIter, myThid ) - -# ifdef ALLOW_ATM_TEMP - CALL WRITE_REC_3D_RL( - & 'ADJatemp.'//suff, writeBinaryPrec, 1, - & adatemp, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJaqh.'//suff, writeBinaryPrec, 1, - & adaqh, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJlwflux.'//suff, writeBinaryPrec, 1, - & adlwflux, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJprecip.'//suff, writeBinaryPrec, 1, - & adprecip, 1, myIter, myThid ) -# endif -# ifdef ALLOW_RUNOFF - CALL WRITE_REC_3D_RL( - & 'ADJrunoff.'//suff, writeBinaryPrec, 1, - & adrunoff, 1, myIter, myThid ) -# endif -# ifdef ALLOW_ATM_WIND - IF ( useAtmWind ) THEN - CALL WRITE_REC_3D_RL( - & 'ADJuwind.'//suff, writeBinaryPrec, 1, - & aduwind, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJvwind.'//suff, writeBinaryPrec, 1, - & advwind, 1, myIter, myThid ) - ENDIF -# endif -# ifdef ALLOW_DOWNWARD_RADIATION - CALL WRITE_REC_3D_RL( - & 'ADJswdown.'//suff, writeBinaryPrec, 1, - & adswdown, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJlwdown.'//suff, writeBinaryPrec, 1, - & adlwdown, 1, myIter, myThid ) -# endif -# ifdef ATMOSPHERIC_LOADING -cph CALL WRITE_REC_3D_RL( -cph & 'ADJapressure.'//suff, writeBinaryPrec, 1, -cph & adapressure, 1, myIter, myThid ) -# endif -# if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) -cph CALL WRITE_REC_3D_RL( -cph & 'ADJswflux.'//suff, writeBinaryPrec, 1, -cph & adswflux, 1, myIter, myThid ) -# endif -# if defined(ALLOW_ATM_TEMP) || defined(EXF_READ_EVAP) -cph CALL WRITE_REC_3D_RL( -cph & 'ADJevap.'//suff, writeBinaryPrec, 1, -cph & adevap, 1, myIter, myThid ) -# endif - - ENDIF - - CALL TIMER_STOP( 'I/O (WRITE) [EXF_AD_DUMP]', myThid ) - -#endif /* ALLOW_AUTODIFF_MONITOR */ -#endif /* ALLOW_ADJOINT_RUN */ - - RETURN - END diff --git a/pkg/exf/exf_adjoint_snapshots.F b/pkg/exf/exf_adjoint_snapshots.F index 1ca6ce518f..50001b8861 100644 --- a/pkg/exf/exf_adjoint_snapshots.F +++ b/pkg/exf/exf_adjoint_snapshots.F @@ -1,36 +1,44 @@ #include "EXF_OPTIONS.h" - subroutine EXF_ADJOINT_SNAPSHOTS( iwhen, mytime, myiter, myThid ) - IMPLICIT NONE -C /==========================================================\ +CBOP +C !ROUTINE: EXF_ADJOINT_SNAPSHOTS +C !INTERFACE: + SUBROUTINE EXF_ADJOINT_SNAPSHOTS( + I iwhen, myTime, myIter, myThid ) + +C !DESCRIPTION: \bv +C *==========================================================* C | SUBROUTINE EXF_ADJOINT_SNAPSHOTS | -C |==========================================================| -C == Global variables === +C *==========================================================* +C Forward version of EXF Adjoint-variable output subroutine: +C does nothing to forward variables version (empty S/R) but +C argument list matters (for ADM and TLM version and calls) +C *==========================================================* +C | SUBROUTINE EXF_ADJOINT_SNAPSHOTS | +C *==========================================================* +C \ev +C !USES: + IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -C == Routine arguments == -C myThid - Thread number for this instance of the routine. - integer iwhen - integer myThid - integer myiter - _RL mytime - -#ifdef ALLOW_AUTODIFF_MONITOR - call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) - - call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) -#endif - - end - - - - - - - - - +C !INPUT/OUTPUT PARAMETERS: +C iwhen :: indicates where this S/R is called from +C myIter :: Iteration counter for this thread +C myTime :: Time counter for this thread +C myThid :: Thread number for this instance of the routine. + INTEGER iwhen + _RL myTime + INTEGER myIter + INTEGER myThid + +C !LOCAL VARIABLES: +C msgBuf :: Error message buffer +c CHARACTER*(MAX_LEN_MBUF) msgBuf +CEOP + + RETURN + END diff --git a/pkg/exf/exf_adjoint_snapshots__g.F b/pkg/exf/exf_adjoint_snapshots__g.F index 395ef78b21..acc5705006 100644 --- a/pkg/exf/exf_adjoint_snapshots__g.F +++ b/pkg/exf/exf_adjoint_snapshots__g.F @@ -1,29 +1,32 @@ #include "EXF_OPTIONS.h" #include "AD_CONFIG.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP -C !ROUTINE: g_exf_adjoint_snapshots +C !ROUTINE: G_EXF_ADJOINT_SNAPSHOTS C !INTERFACE: - SUBROUTINE g_exf_adjoint_snapshots( - & iwhen, myTime, myIter, myThid ) + SUBROUTINE G_EXF_ADJOINT_SNAPSHOTS( + I iwhen, myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* -C | SUBROUTINE g_exf_adjoint_snapshots | +C | SUBROUTINE G_EXF_ADJOINT_SNAPSHOTS | C *==========================================================* -C Extract tangent linear variable from TAMC/TAF-generated +C Tangent-Linear version of EXF Adjoint-variable output S/R: +C extract tangent linear variable from TAMC/TAF-generated C tangent linear common blocks, contained in g_common.h C and write fields to file; C Make sure common blocks in g_common.h are up-to-date C w.r.t. current adjoint code. C *==========================================================* -C | SUBROUTINE g_exf_adjoint_snapshots | +C | SUBROUTINE G_EXF_ADJOINT_SNAPSHOTS | C *==========================================================* C \ev C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" @@ -34,9 +37,9 @@ SUBROUTINE g_exf_adjoint_snapshots( #endif C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myIter :: iteration counter for this thread -C myTime :: time counter for this thread +C iwhen :: indicates where this S/R is called from +C myIter :: Iteration counter for this thread +C myTime :: Time counter for this thread C myThid :: Thread number for this instance of the routine. INTEGER iwhen _RL myTime @@ -51,7 +54,6 @@ SUBROUTINE g_exf_adjoint_snapshots( EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -C == local variables == C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer CHARACTER*(10) suff diff --git a/pkg/exf/exf_adjoint_snapshots_ad.F b/pkg/exf/exf_adjoint_snapshots_ad.F index c7a6207879..c400f03075 100644 --- a/pkg/exf/exf_adjoint_snapshots_ad.F +++ b/pkg/exf/exf_adjoint_snapshots_ad.F @@ -3,30 +3,33 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif CBOP -C !ROUTINE: adexf_adjoint_snapshots +C !ROUTINE: ADEXF_ADJOINT_SNAPSHOTS C !INTERFACE: - SUBROUTINE adexf_adjoint_snapshots( - & iwhen, myTime, myIter, myThid ) + SUBROUTINE ADEXF_ADJOINT_SNAPSHOTS( + I iwhen, myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* -C | SUBROUTINE adexf_adjoint_snapshots | +C | SUBROUTINE ADEXF_ADJOINT_SNAPSHOTS | C *==========================================================* -C Extract adjoint variable from TAMC/TAF-generated +C Adjoint version of EXF Adjoint-variable output subroutine: +C extract adjoint variable from TAMC/TAF-generated C adjoint common blocks, contained in adcommon.h C and write fields to file; C Make sure common blocks in adcommon.h are up-to-date C w.r.t. current adjoint code. C *==========================================================* -C | SUBROUTINE adexf_adjoint_snapshots | +C | SUBROUTINE ADEXF_ADJOINT_SNAPSHOTS | C *==========================================================* C \ev C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" @@ -41,18 +44,22 @@ SUBROUTINE adexf_adjoint_snapshots( # include "AUTODIFF_PARAMS.h" # include "AUTODIFF.h" # include "adcommon.h" +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif #endif -#endif +#endif /* ALLOW_AUTODIFF */ C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == +C iwhen :: indicates where this S/R is called from C myTime :: time counter for this thread C myIter :: iteration counter for this thread C myThid :: Thread number for this instance of the routine. - integer iwhen + INTEGER iwhen _RL myTime - integer myIter - integer myThid + INTEGER myIter + INTEGER myThid #if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) #ifdef ALLOW_AUTODIFF_MONITOR @@ -62,185 +69,109 @@ SUBROUTINE adexf_adjoint_snapshots( EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -c == local variables == C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer - CHARACTER*(10) suff - CHARACTER*(MAX_LEN_MBUF) msgBuf +c CHARACTER*(10) suff +c CHARACTER*(MAX_LEN_MBUF) msgBuf + _RS dumRS(1) + _RL dumRL(1) INTEGER dumpAdRecEx + LOGICAL doDump CEOP - CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) - - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN - -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF -C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run -C ==>> is very very very nasty !!! -c writeBinaryPrec = writeStatePrec -C <<== If you really want to mess-up with this at your own risk, -C <<== uncomment the line above - -c determine ad dump record number (used only if dumpAdByRec is true) - IF (useSeaice.AND.(iWhen.EQ.3)) THEN - dumpAdRecEx=dumpAdRecMn+1 - ELSE - dumpAdRecEx=dumpAdRecMn - ENDIF +C----------------------------------------------------------------------- +C--- do dump? +C----------------------------------------------------------------------- + doDump = DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) + IF ( doDump ) THEN +c determine ad dump record number (used only if dumpAdByRec is true) + IF (useSeaice.AND.(iWhen.EQ.3)) THEN + dumpAdRecEx=dumpAdRecMn+1 + ELSE + dumpAdRecEx=dumpAdRecMn + ENDIF c#ifdef ALLOW_DEBUG c IF ( debugMode ) print*,'dumpAdRecEx',dumpAdRecEx c#endif - - IF (.NOT.dumpAdByRec) THEN - - IF ( iwhen .EQ.1 ) THEN - - CALL WRITE_FLD_XY_RL ( 'ADJustress.', - & suff, adustress, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJvstress.', - & suff, advstress, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJhflux.', - & suff, adhflux, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJsflux.', - & suff, adsflux, myIter, myThid) - - ELSEIF ( iwhen .EQ.2 ) THEN - -# ifdef ALLOW_ATM_TEMP - CALL WRITE_FLD_XY_RL ( 'ADJatemp.', - & suff, adatemp, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJaqh.', - & suff, adaqh, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJprecip.', - & suff, adprecip, myIter, myThid) -# endif -# ifdef ALLOW_RUNOFF - CALL WRITE_FLD_XY_RL ( 'ADJrunoff.', - & suff, adrunoff, myIter, myThid) -# endif -# ifdef ALLOW_ATM_WIND - IF ( useAtmWind ) THEN - CALL WRITE_FLD_XY_RL ( 'ADJuwind.', - & suff, aduwind, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJvwind.', - & suff, advwind, myIter, myThid) + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) ENDIF -# endif -# ifdef ALLOW_DOWNWARD_RADIATION - CALL WRITE_FLD_XY_RL ( 'ADJswdown.', - & suff, adswdown, myIter, myThid) - CALL WRITE_FLD_XY_RL ( 'ADJlwdown.', - & suff, adlwdown, myIter, myThid) -# endif -# ifdef ALLOW_CLIMSST_RELAXATION - CALL WRITE_FLD_XY_RL ( 'ADJclimsst.', - & suff, adclimsst, myIter, myThid) -# endif -# ifdef ALLOW_CLIMSSS_RELAXATION - CALL WRITE_FLD_XY_RL ( 'ADJclimsss.', - & suff, adclimsss, myIter, myThid) -# endif - - ELSEIF ( iwhen .EQ.3 ) THEN - - CALL WRITE_FLD_XY_RS ( 'ADJtaux.',suff, adfu, myIter, myThid) - CALL WRITE_FLD_XY_RS ( 'ADJtauy.',suff, adfv, myIter, myThid) - CALL WRITE_FLD_XY_RS ( 'ADJqnet.',suff, adqnet, myIter, myThid) - CALL WRITE_FLD_XY_RS ( 'ADJempr.',suff, adempmr, myIter, myThid) -#ifdef SHORTWAVE_HEATING - CALL WRITE_FLD_XY_RS ( 'ADJqsw.',suff, adqsw, myIter, myThid) -#endif - - ENDIF - ELSEIF ( dumpAdRecEx .GT. 0 ) THEN + IF ( iwhen .EQ.1 ) THEN - IF ( iwhen .EQ.1 ) THEN + CALL DUMP_ADJ_XY_UV( + & dumRS, adustress, 'ADJustrs', 'ADJustress.', + & dumRS, advstress, 'ADJvstrs', 'ADJvstress.', + & 34, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adhflux, 'ADJhflux', 'ADJhflux.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adsflux, 'ADJsflux', 'ADJsflux.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) - CALL WRITE_REC_XY_RL ( 'ADJustress', - & adustress, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJvstress', - & advstress, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJhflux', - & adhflux, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJsflux', - & adsflux, dumpAdRecEx, myIter, myThid) - - ELSEIF ( iwhen .EQ.2 ) THEN + ELSEIF ( iwhen .EQ.2 ) THEN # ifdef ALLOW_ATM_TEMP - CALL WRITE_REC_XY_RL ( 'ADJatemp', - & adatemp, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJaqh', - & adaqh, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJprecip', - & adprecip, dumpAdRecEx, myIter, myThid) + CALL DUMP_ADJ_XY( dumRS, adatemp, 'ADJatemp', 'ADJatemp.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adaqh, 'ADJaqh ', 'ADJaqh.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adprecip, 'ADJpreci', 'ADJprecip.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) # endif # ifdef ALLOW_RUNOFF - CALL WRITE_REC_XY_RL ( 'ADJrunoff', - & adrunoff, dumpAdRecEx, myIter, myThid) -# endif -# ifdef ALLOW_ATM_WIND - IF ( useAtmWind ) THEN - CALL WRITE_REC_XY_RL ( 'ADJuwind', - & aduwind, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJvwind', - & advwind, dumpAdRecEx, myIter, myThid) - ENDIF -# endif + CALL DUMP_ADJ_XY( dumRS, adrunoff, 'ADJroff ', 'ADJrunoff.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) +# endif + IF ( useAtmWind ) THEN + CALL DUMP_ADJ_XY( dumRS, aduwind, 'ADJuwind', 'ADJuwind.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, advwind, 'ADJvwind', 'ADJvwind.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + ENDIF # ifdef ALLOW_DOWNWARD_RADIATION - CALL WRITE_REC_XY_RL ( 'ADJswdown', - & adswdown, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RL ( 'ADJlwdown', - & adlwdown, dumpAdRecEx, myIter, myThid) + CALL DUMP_ADJ_XY( dumRS, adswdown, 'ADJswdn ', 'ADJswdown.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adlwdown, 'ADJlwdn ', 'ADJlwdown.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) # endif # ifdef ALLOW_CLIMSST_RELAXATION - CALL WRITE_REC_XY_RL ( 'ADJclimsst', - & adclimsst, dumpAdRecEx, myIter, myThid) + CALL DUMP_ADJ_XY( dumRS, adclimsst, 'ADJclsst', 'ADJclimsst.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) # endif # ifdef ALLOW_CLIMSSS_RELAXATION - CALL WRITE_REC_XY_RL ( 'ADJclimsss', - & adclimsss, dumpAdRecEx, myIter, myThid) + CALL DUMP_ADJ_XY( dumRS, adclimsss, 'ADJclsst', 'ADJclimsss.', + & 12, doDump, dumpAdRecEx, myTime, myIter, myThid ) # endif - ELSEIF ( iwhen .EQ.3 ) THEN - - CALL WRITE_REC_XY_RS ( 'ADJtaux', - & adfu, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RS ( 'ADJtauy', - & adfv, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RS ( 'ADJqnet', - & adqnet, dumpAdRecEx, myIter, myThid) - CALL WRITE_REC_XY_RS ( 'ADJempr', - & adempmr, dumpAdRecEx, myIter, myThid) -#ifdef SHORTWAVE_HEATING - CALL WRITE_REC_XY_RS ( 'ADJqsw', - & adqsw, dumpAdRecEx, myIter, myThid) -#endif + ELSEIF ( iwhen .EQ.3 ) THEN - ENDIF + CALL DUMP_ADJ_XY_UV( + & adFu, dumRL, 'ADJtaux ', 'ADJtaux.', + & adFv, dumRL, 'ADJtauy ', 'ADJtauy.', + & 33, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY(adQnet, dumRL, 'ADJqnet ', 'ADJqnet.', + & 11, doDump, dumpAdRecEx, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY(adEmPmR, dumRL, 'ADJempmr', 'ADJempr.', + & 11, doDump, dumpAdRecEx, myTime, myIter, myThid ) +# ifdef SHORTWAVE_HEATING + CALL DUMP_ADJ_XY(adQsw, dumRL, 'ADJqsw ', 'ADJqsw.', + & 11, doDump, dumpAdRecEx, myTime, myIter, myThid ) +# endif - ENDIF + ENDIF + IF ( doDump ) THEN #ifdef ALLOW_MNC IF (useMNC .AND. autodiff_mnc) THEN - IF ( iwhen.EQ.1 ) THEN -c + IF ( iwhen.EQ.1 ) THEN + CALL MNC_CW_SET_UDIM('adexf', -1, myThid) CALL MNC_CW_RL_W_S('D','adexf',0,0,'T',myTime,myThid) CALL MNC_CW_SET_UDIM('adexf', 0, myThid) CALL MNC_CW_I_W_S('I','adexf',0,0,'iter',myIter,myThid) CALL MNC_CW_RL_W_S('D','adexf',0,0,'model_time',myTime, & myThid) -c + CALL MNC_CW_RL_W('D','adexf',0,0,'adustress', & adustress, myThid) CALL MNC_CW_RL_W('D','adexf',0,0,'advstress', @@ -249,7 +180,7 @@ SUBROUTINE adexf_adjoint_snapshots( & adhflux, myThid) CALL MNC_CW_RL_W('D','adexf',0,0,'adsflux', & adsflux, myThid) - ELSEIF ( iwhen.EQ.2 ) THEN + ELSEIF ( iwhen.EQ.2 ) THEN # ifdef ALLOW_ATM_TEMP CALL MNC_CW_RL_W('D','adexf',0,0,'adatemp', & adatemp, myThid) @@ -262,14 +193,12 @@ SUBROUTINE adexf_adjoint_snapshots( CALL MNC_CW_RL_W('D','adexf',0,0,'adrunoff', & adrunoff, myThid) # endif -# ifdef ALLOW_ATM_WIND - IF ( useAtmWind ) THEN - CALL MNC_CW_RL_W('D','adexf',0,0,'aduwind', - & aduwind, myThid) - CALL MNC_CW_RL_W('D','adexf',0,0,'advwind', - & advwind, myThid) - ENDIF -# endif + IF ( useAtmWind ) THEN + CALL MNC_CW_RL_W('D','adexf',0,0,'aduwind', + & aduwind, myThid) + CALL MNC_CW_RL_W('D','adexf',0,0,'advwind', + & advwind, myThid) + ENDIF # ifdef ALLOW_DOWNWARD_RADIATION CALL MNC_CW_RL_W('D','adexf',0,0,'adswdown', & adswdown, myThid) @@ -284,20 +213,19 @@ SUBROUTINE adexf_adjoint_snapshots( CALL MNC_CW_RL_W('D','adexf',0,0,'adclimsss', & adclimsss, myThid) # endif -c - ENDIF + + ENDIF ENDIF #endif /* ALLOW_MNC */ + CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) ENDIF #ifdef ALLOW_MONITOR CALL ADEXF_MONITOR ( iwhen, myTime, myIter, myThid ) #endif - CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) - #endif /* ALLOW_AUTODIFF_MONITOR */ #endif /* ALLOW_ADJOINT_RUN */ diff --git a/pkg/exf/exf_bulkformulae.F b/pkg/exf/exf_bulkformulae.F index 0349b2a231..d1bf5c0cfc 100644 --- a/pkg/exf/exf_bulkformulae.F +++ b/pkg/exf/exf_bulkformulae.F @@ -213,15 +213,14 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) _RL ztln ! = log(zth/zref) _RL tmpbulk _RL recip_rhoConstFresh - INTEGER ksrf, ksrfp1 + INTEGER ks, kl INTEGER iter C solve4Stress :: if F, by-pass momentum turb. flux (wind-stress) calculation LOGICAL solve4Stress _RL windStress ! surface wind-stress (@ grid cell center) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER ikey_1 - INTEGER ikey_2 + INTEGER ikey, ikey_1, ikey_2 #endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -236,7 +235,15 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) #endif ENDIF -C-- Set surface parameters : + IF ( usingPCoords ) THEN + ks = Nr + kl = Nr-1 + ELSE + ks = 1 + kl = 2 + ENDIF + +C-- Set surface parameters : zwln = LOG(hu/zref) ztln = LOG(ht/zref) czol = hu*karman*gravity_mks @@ -254,26 +261,15 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) CHPF$ INDEPENDENT #endif DO bi = myBxLo(myThid),myBxHi(myThid) - ksrf = 1 - ksrfp1 = 2 + +#ifdef ALLOW_AUTODIFF_TAMC + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +#endif DO j = 1,sNy DO i = 1,sNx #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*act1 - & + sNx*sNy*max1*act2 - & + sNx*sNy*max1*max2*act3 - & + sNx*sNy*max1*max2*max3*act4 + ikey_1 = i + (j-1)*sNx + (ikey-1)*sNx*sNy #endif #ifdef ALLOW_AUTODIFF @@ -284,11 +280,11 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) C- Pot. Temp and saturated specific humidity IF ( atemp(i,j,bi,bj) .NE. 0. _d 0 ) THEN C- Surface Temp. - Tsf = theta(i,j,ksrf,bi,bj) + cen2kel + Tsf = theta(i,j,ks,bi,bj) + cen2kel IF ( Nr.GE.2 .AND. sstExtrapol.GT.0. _d 0 ) THEN SSTtmp = sstExtrapol - & *( theta(i,j,ksrf,bi,bj)-theta(i,j,ksrfp1,bi,bj) ) - & * maskC(i,j,ksrfp1,bi,bj) + & *( theta(i,j,ks,bi,bj)-theta(i,j,kl,bi,bj) ) + & * maskC(i,j,kl,bi,bj) Tsf = Tsf + MAX( SSTtmp, 0. _d 0 ) ENDIF @@ -316,8 +312,18 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) #endif /* ALLOW_AUTODIFF_TAMC */ C-- Wind speed wsm = sh(i,j,bi,bj) +#ifdef ALLOW_DRAG_LARGEYEAGER09 +C Large and Yeager (2009), Climate Dynamics, equation 11a/b + tmpbulk = cdrag_1/wsm + cdrag_2 + cdrag_3*wsm + & + cdrag_8 * wsm**6 + tmpbulk = exf_scal_BulkCdn * ( + & ( halfRL - SIGN(halfRL, wsm-umax) )*tmpbulk + & + ( halfRL + SIGN(halfRL, wsm-umax) )*cdragMax + & ) +#else tmpbulk = exf_scal_BulkCdn * & ( cdrag_1/wsm + cdrag_2 + cdrag_3*wsm ) +#endif rdn(i,j) = SQRT(tmpbulk) ustar(i,j) = rdn(i,j)*wsm ELSE @@ -357,13 +363,8 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) C--- iterate with psi-functions to find transfer coefficients #ifdef ALLOW_AUTODIFF_TAMC - ikey_2 = i - & + sNx*(j-1) - & + sNx*sNy*(iter-1) - & + sNx*sNy*niter_bulk*act1 - & + sNx*sNy*niter_bulk*max1*act2 - & + sNx*sNy*niter_bulk*max1*max2*act3 - & + sNx*sNy*niter_bulk*max1*max2*max3*act4 + ikey_2 = i + (j-1)*sNx + (iter-1)*sNx*sNy + & + (ikey-1)*sNx*sNy*niter_bulk CADJ STORE rdn (i,j) = comlev1_exf_2, key = ikey_2 CADJ STORE ustar (i,j) = comlev1_exf_2, key = ikey_2 CADJ STORE qstar (i,j) = comlev1_exf_2, key = ikey_2 @@ -434,8 +435,18 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) usm = MAX(usn, umin) C- Update the 10m, neutral stability transfer coefficients (momentum) +#ifdef ALLOW_DRAG_LARGEYEAGER09 +C Large and Yeager (2009), J.Clim equation 11a/b + tmpbulk = cdrag_1/usm + cdrag_2 + cdrag_3*usm + & + cdrag_8 * usm**6 + tmpbulk = exf_scal_BulkCdn * ( + & ( halfRL - SIGN(halfRL, usm-umax) )*tmpbulk + & + ( halfRL + SIGN(halfRL, usm-umax) )*cdragMax + & ) +#else tmpbulk = exf_scal_BulkCdn * & ( cdrag_1/usm + cdrag_2 + cdrag_3*usm ) +#endif rdn(i,j) = SQRT(tmpbulk) #ifdef ALLOW_BULK_LARGEYEAGER04 rd(i,j) = rdn(i,j)/(exf_one + rdn(i,j)*dzTmp) @@ -473,12 +484,7 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) IF ( atemp(i,j,bi,bj) .NE. 0. _d 0 ) THEN #ifdef ALLOW_AUTODIFF_TAMC - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*act1 - & + sNx*sNy*max1*act2 - & + sNx*sNy*max1*max2*act3 - & + sNx*sNy*max1*max2*max3*act4 + ikey_1 = i + (j-1)*sNx + (ikey-1)*sNx*sNy CADJ STORE qstar(i,j) = comlev1_exf_1, key = ikey_1 CADJ STORE tstar(i,j) = comlev1_exf_1, key = ikey_1 CADJ STORE tau (i,j) = comlev1_exf_1, key = ikey_1 @@ -495,7 +501,13 @@ SUBROUTINE EXF_BULKFORMULAE( myTime, myIter, myThid ) C but older version was using rhonil instead: c evap(i,j,bi,bj) = -recip_rhonil*tau(i,j)*qstar(i,j) #endif - IF ( useAtmWind ) THEN + IF ( useAtmWind .AND. useRelativeWind ) THEN + tmpbulk = tau(i,j)*rd(i,j) + ustress(i,j,bi,bj) = tmpbulk* ( uwind(i,j,bi,bj) - + & 0.5 _d 0 * (uVel(i,j,ks,bi,bj)+uVel(i+1,j,ks,bi,bj)) ) + vstress(i,j,bi,bj) = tmpbulk* ( vwind(i,j,bi,bj) - + & 0.5 _d 0 * (vVel(i,j,ks,bi,bj)+vVel(i,j+1,ks,bi,bj)) ) + ELSEIF ( useAtmWind ) THEN c ustress(i,j,bi,bj) = tau(i,j)*rd(i,j)*ws*cw(i,j,bi,bj) c vstress(i,j,bi,bj) = tau(i,j)*rd(i,j)*ws*sw(i,j,bi,bj) C- jmc: below is how it should be written ; different from above when diff --git a/pkg/exf/exf_check.F b/pkg/exf/exf_check.F index 101a1f37d4..588f5be95f 100644 --- a/pkg/exf/exf_check.F +++ b/pkg/exf/exf_check.F @@ -90,7 +90,9 @@ SUBROUTINE EXF_CHECK( myThid ) CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF - IF ( repeatPeriod.NE.0. ) THEN + IF ( repeatPeriod.NE.0. .AND. (OBCSNperiod.GE.0 .OR. + & OBCSSperiod.GE.0 .OR. OBCSWperiod.GE.0 .OR. + & OBCSEperiod.GE.0)) THEN C- Note: should check all siob{N,S,E,W}repCycle (not just default repeatPeriod) WRITE(msgBuf,'(2A)') 'EXF_CHECK: ', & 'useOBCSYearlyFields not implemented for repeatPeriod <> 0' @@ -112,14 +114,6 @@ SUBROUTINE EXF_CHECK( myThid ) CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF - IF ( useRelativeWind .AND. - & ( uwindfile .EQ. ' ' .OR. uwindperiod.EQ.0. .OR. - & vwindfile .EQ. ' ' .OR. vwindperiod.EQ.0. ) ) THEN - WRITE(msgBuf,'(2A)') 'EXF_CHECK: useRelativeWind ', - & 'requires to update u/vwind' - CALL PRINT_ERROR( msgBuf, myThid ) - errCount = errCount + 1 - ENDIF ENDIF IF ( .NOT.useAtmWind ) THEN diff --git a/pkg/exf/exf_check_range.F b/pkg/exf/exf_check_range.F index e5176b1f43..9c5df07bf2 100644 --- a/pkg/exf/exf_check_range.F +++ b/pkg/exf/exf_check_range.F @@ -11,6 +11,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C == global variables == #include "EEPARAMS.h" #include "SIZE.h" +#include "PARAMS.h" #include "GRID.h" #include "EXF_PARAM.h" @@ -23,7 +24,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) INTEGER myIter, myThid C == local variables == - INTEGER i, j, bi, bj + INTEGER i, j, ks, bi, bj INTEGER exferr C == end of interface == @@ -34,6 +35,8 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) _BARRIER _BEGIN_MASTER( myThid ) + ks = 1 + IF ( usingPCoords ) ks = Nr c DO bj = myByLo(myThid), myByHi(myThid) c DO bi = myBxLo(myThid), myBxHi(myThid) DO bj = 1, nSy @@ -49,7 +52,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Heat flux. IF ( ( hflux(i,j,bi,bj) .GT. 1600. .OR. & hflux(i,j,bi,bj) .LT. -500. ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: hflux out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, hflux(i,j,bi,bj) @@ -58,7 +61,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Freshwater flux. IF ( ABS(sflux(i,j,bi,bj)) .GT. 1.E-6 .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: sflux out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, sflux(i,j,bi,bj) @@ -67,7 +70,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Zonal wind stress. IF ( ABS(ustress(i,j,bi,bj)) .GT. 2.7 .AND. - & maskW(i,j,1,bi,bj) .NE. 0. ) THEN + & maskW(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: ustress out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, ustress(i,j,bi,bj) @@ -76,7 +79,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Meridional wind stress. IF ( ABS(vstress(i,j,bi,bj)) .GT. 2.3 .AND. - & maskS(i,j,1,bi,bj) .NE. 0. ) THEN + & maskS(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: vstress out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, vstress(i,j,bi,bj) @@ -86,7 +89,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) IF ( useAtmWind ) THEN C zonal wind speed IF ( ABS(uwind(i,j,bi,bj)) .GT. 100. .AND. - & maskW(i,j,1,bi,bj) .NE. 0. ) THEN + & maskW(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: uwind out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, uwind(i,j,bi,bj) @@ -95,7 +98,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C zonal wind speed IF ( ABS(vwind(i,j,bi,bj)) .GT. 100. .AND. - & maskS(i,j,1,bi,bj) .NE. 0. ) THEN + & maskS(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: vwind out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, vwind(i,j,bi,bj) @@ -106,7 +109,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C wind speed modulus IF ( ( wspeed(i,j,bi,bj) .LT. 0. .OR. & wspeed(i,j,bi,bj) .GT. 100. ) .AND. - & maskS(i,j,1,bi,bj) .NE. 0. ) THEN + & maskS(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: wspeed out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, wspeed(i,j,bi,bj) @@ -117,7 +120,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C 2-m air temperature IF ( (atemp(i,j,bi,bj) .LT. 183 .OR. & atemp(i,j,bi,bj) .GT. 343 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(2A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: atemp + exf_offset_atemp ', & 'out of range for bi,bj,i,j,it= ', @@ -128,7 +131,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C 2-m specific humidity IF ( (aqh(i,j,bi,bj) .LT. 0. .OR. & aqh(i,j,bi,bj) .GT. 0.1 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: aqh out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, aqh(i,j,bi,bj) @@ -138,7 +141,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C precipitation rate IF ( (precip(i,j,bi,bj) .LT. 0. .OR. & precip(i,j,bi,bj) .GT. 2.E-6 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: precip out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, precip(i,j,bi,bj) @@ -148,7 +151,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C snow IF ( (snowprecip(i,j,bi,bj) .LT. 0. .OR. & snowprecip(i,j,bi,bj) .GT. 2.E-6 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(2A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: snowprecip out of range ', & 'for bi,bj,i,j,it= ', @@ -161,7 +164,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Short wave radiative flux. IF ( (swflux(i,j,bi,bj) .GT. 1. .OR. & swflux(i,j,bi,bj) .LT. -1000. ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: swflux out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, swflux(i,j,bi,bj) @@ -173,7 +176,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Runoff. IF ( (runoff(i,j,bi,bj) .LT. 0. .OR. & runoff(i,j,bi,bj) .GT. 1.E-6 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: runoff out of range for bi,bj,i,j,it= ', & bi, bj, i, j, myIter, runoff(i,j,bi,bj) @@ -191,7 +194,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) C Runoff temperature. IF ( (runoftemp(i,j,bi,bj) .LT. -2. .OR. & runoff(i,j,bi,bj) .GT. 36 ) .AND. - & maskC(i,j,1,bi,bj) .NE. 0. ) THEN + & maskC(i,j,ks,bi,bj) .NE. 0. ) THEN WRITE(standardMessageUnit,'(A,5(1X,I6),2X,D22.15)') & 'EXF WARNING: runoftemp out of range at bi,bj,i,j,it= ', & bi, bj, i, j, myIter, runoff(i,j,bi,bj) @@ -213,6 +216,7 @@ SUBROUTINE EXF_CHECK_RANGE( myTime, myIter, myThid ) STOP 'ABNORMAL END: S/R EXF_CHECK_RANGE' ENDIF _END_MASTER( myThid ) + _BARRIER RETURN END diff --git a/pkg/exf/exf_diagnostics_init.F b/pkg/exf/exf_diagnostics_init.F index 2623f85666..5ca5f818ca 100644 --- a/pkg/exf/exf_diagnostics_init.F +++ b/pkg/exf/exf_diagnostics_init.F @@ -35,6 +35,9 @@ SUBROUTINE EXF_DIAGNOSTICS_INIT( myThid ) C diagUnits :: local string (16c): physical units of a diagnostic field C diagTitle :: local string (80c): description of field in diagnostic INTEGER diagNum +#ifdef ALLOW_AUTODIFF + INTEGER diagMate +#endif CHARACTER*8 diagName CHARACTER*16 diagCode CHARACTER*16 diagUnits @@ -128,6 +131,20 @@ SUBROUTINE EXF_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'EXFurelw' + diagTitle = 'zonal relative 10-m wind speed, >0 eastward' + diagUnits = 'm/s ' + diagCode = 'UM U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'EXFvrelw' + diagTitle = 'meridional relative 10-m wind speed, >0 northward' + diagUnits = 'm/s ' + diagCode = 'VM U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'EXFwspee' diagTitle = '10-m wind speed modulus ( >= 0 )' diagUnits = 'm/s ' @@ -200,11 +217,116 @@ SUBROUTINE EXF_DIAGNOSTICS_INIT( myThid ) diagName = 'EXFsalfx' diagTitle = 'upward salt flux, > 0 decreases salinity' - diagUnits = 'psu.kg/m^2/s ' + diagUnits = 'g/m^2/s ' diagCode = 'SM U1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#ifdef ALLOW_AUTODIFF +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C Adjoint state variables + diagName = 'ADJustrs' + diagTitle = 'dJ/dustress: Senstivity to zonal surface wind stress' + diagUnits = 'dJ/(N/m^2) ' + IF ( stressIsOnCgrid ) THEN + diagCode = 'UU A U1 ' + ELSE + diagCode = 'UM A U1 ' + ENDIF + diagMate = diagNum + 2 + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJvstrs' + diagTitle = 'dJ/dvstrs: Sensitivity to merid. surface wind stress' + diagUnits = 'dJ/(N/m^2) ' + IF ( stressIsOnCgrid ) THEN + diagCode = 'VV A U1 ' + ELSE + diagCode = 'VM A U1 ' + ENDIF + diagMate = diagNum + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJhflux' + diagTitle = 'dJ/dhflux: Sensitivity to upward heat flux' + diagUnits = 'dJ/(W/m^2) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJsflux' + diagTitle = 'dJ/dhflux: Sensitivity to upward fresh water flux' + diagUnits = 'dJ/(m/s) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJatemp' + diagTitle = 'dJ/datemp: Sensitivity to atmos. surface temperature' + diagUnits = 'dJ/K ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJpreci' + diagTitle = 'dJ/daqh: Sensitivity to precipitation' + diagUnits = 'dJ/(m/s) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJroff ' + diagTitle = 'dJ/daqh: Sensitivity to river runoff' + diagUnits = 'dJ/(m/s) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJswdn ' + diagTitle = 'dJ/dswdown: Sensitivity to downward SW radiation' + diagUnits = 'dJ/(W/m^2) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJlwdn ' + diagTitle = 'dJ/dlwdown: Sensitivity to downward LW radiation' + diagUnits = 'dJ/(W/m^2) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJuwind' + diagTitle = 'dJ/duwind: Senstivity to zonal 10-m wind speed' + diagUnits = 'dJ/d(m/s) ' + diagCode = 'UM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJvwind' + diagTitle = 'dJ/dvwind: Senstivity to meridional 10-m wind speed' + diagUnits = 'dJ/d(m/s) ' + diagCode = 'VM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJclsst' + diagTitle = 'dJ/dclimsst: Sensitivity to restoring SST' + diagUnits = 'dJ/K ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJclsss' + diagTitle = 'dJ/dclimsss: Sensitivity to restoring SSS' + diagUnits = 'dJ/(g/kg) ' + diagCode = 'SM A U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +#endif /* ALLOW_AUTODIFF */ #endif /* ALLOW_DIAGNOSTICS */ RETURN diff --git a/pkg/exf/exf_getclim.F b/pkg/exf/exf_getclim.F index 2d3e5a5276..da8e3ec62b 100644 --- a/pkg/exf/exf_getclim.F +++ b/pkg/exf/exf_getclim.F @@ -4,6 +4,9 @@ #endif #ifdef ALLOW_ECCO # include "ECCO_OPTIONS.h" +#endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" #endif SUBROUTINE EXF_GETCLIM( @@ -37,8 +40,8 @@ SUBROUTINE EXF_GETCLIM( #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" +#include "PARAMS.h" #ifdef ALLOW_BULK_OFFLINE -# include "PARAMS.h" # include "DYNVARS.h" #endif #include "EXF_PARAM.h" @@ -46,13 +49,8 @@ SUBROUTINE EXF_GETCLIM( #include "EXF_INTERP_SIZE.h" #include "EXF_INTERP_PARAM.h" #include "EXF_FIELDS.h" -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -# ifdef ALLOW_ECCO -# include "ecco_cost.h" -# endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" #endif c == routine arguments == @@ -65,10 +63,16 @@ SUBROUTINE EXF_GETCLIM( c == local variables == - INTEGER bi, bj, i, j + INTEGER ks +#if (defined ALLOW_CLIMSST_RELAXATION || defined ALLOW_BULK_OFFLINE ) + INTEGER i, j, bi, bj +#endif c == end of interface == + ks = 1 + IF ( usingPCoords ) ks = Nr + #ifdef ALLOW_CLIMSST_RELAXATION c Get values of climatological sst fields. CALL EXF_SET_FLD( @@ -83,6 +87,10 @@ SUBROUTINE EXF_GETCLIM( #endif I myTime, myIter, myThid ) +#ifdef ALLOW_AUTODIFF_TAMC +C this avoids storing climsst0/1 +CADJ STORE climsst = comlev1, key=ikey_dynamics, kind=isbyte +#endif DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy @@ -94,20 +102,9 @@ SUBROUTINE EXF_GETCLIM( ENDDO ENDDO ENDDO - c-- Update the tile edges. _EXCH_XY_RL(climsst, myThid) -#endif - -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) -# ifdef ALLOW_SST_CONTROL - CALL CTRL_GET_GEN ( - & xx_sst_file, xx_sststartdate, xx_sstperiod, - & maskc, climsst, xx_sst0, xx_sst1, xx_sst_dummy, - & xx_sst_remo_intercept, xx_sst_remo_slope, - & wsst, myTime, myIter, myThid ) -# endif -#endif +#endif /* ALLOW_CLIMSST_RELAXATION */ #ifdef ALLOW_CLIMSSS_RELAXATION c Get values of climatological sss fields. @@ -122,21 +119,10 @@ SUBROUTINE EXF_GETCLIM( I climsss_nlon, climsss_nlat, xC, yC, climsss_interpMethod, #endif I myTime, myIter, myThid ) - c-- Update the tile edges. _EXCH_XY_RL(climsss, myThid) #endif -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) -# ifdef ALLOW_SSS_CONTROL - CALL CTRL_GET_GEN ( - & xx_sss_file, xx_sssstartdate, xx_sssperiod, - & maskc, climsss, xx_sss0, xx_sss1, xx_sss_dummy, - & xx_sss_remo_intercept, xx_sss_remo_slope, - & wsss, myTime, myIter, myThid ) -# endif -#endif - #ifdef ALLOW_CLIMSTRESS_RELAXATION c Get values of climatological ustr fields. CALL EXF_SET_UV ( @@ -172,25 +158,25 @@ SUBROUTINE EXF_GETCLIM( # ifdef ALLOW_CLIMSST_RELAXATION IF ( climsstfile .NE. ' ' .AND. & climsstperiod .NE. 0. ) - & theta(i,j,1,bi,bj) = climsst(i,j,bi,bj) + & theta(i,j,ks,bi,bj) = climsst(i,j,bi,bj) # endif # ifdef ALLOW_CLIMSSS_RELAXATION IF ( climsssfile .NE. ' ' .AND. & climsssperiod .NE. 0. ) - & salt(i,j,1,bi,bj) = climsss(i,j,bi,bj) + & salt(i,j,ks,bi,bj) = climsss(i,j,bi,bj) # endif # ifdef ALLOW_CLIMSTRESS_RELAXATION IF ( climustrfile .NE. ' ' .AND. & climustrperiod .NE. 0. ) - & uvel(i,j,1,bi,bj) = climustr(i,j,bi,bj) + & uVel(i,j,ks,bi,bj) = climustr(i,j,bi,bj) IF ( climvstrfile .NE. ' ' .AND. & climvstrperiod .NE. 0. ) - & vvel(i,j,1,bi,bj) = climvstr(i,j,bi,bj) + & vVel(i,j,ks,bi,bj) = climvstr(i,j,bi,bj) # endif - IF ( myIter .EQ. niter0 ) THEN - IF ( maskC(i,j,1,bi,bj) .NE. 0. .AND. - & theta(i,j,1,bi,bj) .EQ. 0. ) THEN - print *, 'ph-warn-exf-clim ', i, j, theta(i,j,1,bi,bj) + IF ( myIter .EQ. nIter0 ) THEN + IF ( maskC(i,j,ks,bi,bj) .NE. 0. .AND. + & theta(i,j,ks,bi,bj) .EQ. 0. ) THEN + print *, 'ph-warn-exf-clim ', i, j, theta(i,j,ks,bi,bj) cph STOP 'in exf_getclim' ENDIF ENDIF diff --git a/pkg/exf/exf_getffield_start.F b/pkg/exf/exf_getffield_start.F index 932e29bd23..03b1ee4773 100644 --- a/pkg/exf/exf_getffield_start.F +++ b/pkg/exf/exf_getffield_start.F @@ -77,7 +77,8 @@ SUBROUTINE EXF_GETFFIELD_START( ENDIF C-- Convert start-date to start_time (case using Calendar) - IF ( useCAL .AND. fld_period.GT.0. ) THEN + IF ( useCAL .AND. (fld_period.GT.0. .OR. + & (fld_period.EQ.-1. .AND. .NOT.useYearlyFields)) ) THEN #ifdef ALLOW_CAL CALL CAL_FULLDATE( fld_startdate1, fld_startdate2, & date_array, myThid ) diff --git a/pkg/exf/exf_getffields.F b/pkg/exf/exf_getffields.F index 8df39f44a5..8ad67df1a2 100644 --- a/pkg/exf/exf_getffields.F +++ b/pkg/exf/exf_getffields.F @@ -4,6 +4,9 @@ #endif #ifdef ALLOW_ECCO # include "ECCO_OPTIONS.h" +#endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" #endif SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) @@ -45,8 +48,8 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) # include "CTRL_GENARR.h" # endif #endif -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -# include "ecco_cost.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" #endif C == routine arguments == @@ -140,22 +143,6 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) #endif /* USE_EXF_INTERPOLATION */ I myTime, myIter, myThid ) - IF (useRelativeWind) THEN -C Subtract UVEL and VVEL from UWIND and VWIND. - DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx - uwind(i,j,bi,bj) = uwind(i,j,bi,bj) - 0.5 _d 0 - & * (uVel(i,j,1,bi,bj)+uVel(i+1,j,1,bi,bj)) - vwind(i,j,bi,bj) = vwind(i,j,bi,bj) - 0.5 _d 0 - & * (vVel(i,j,1,bi,bj)+vVel(i,j+1,1,bi,bj)) - ENDDO - ENDDO - ENDDO - ENDDO - ENDIF - ELSE DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) @@ -318,6 +305,12 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) #endif I myTime, myIter, myThid ) C Take care of case where total precip is not defined +#ifdef ALLOW_AUTODIFF_TAMC +# ifdef ALLOW_ATM_TEMP +CADJ STORE precip = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE snowprecip = comlev1, key=ikey_dynamics, kind=isbyte +# endif +#endif IF ( snowPrecipFile .NE. ' ' ) THEN DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) @@ -489,195 +482,8 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) ENDIF #endif -# if (!defined (ALLOW_ECCO) || defined (ECCO_CTRL_DEPRECATED)) - -C-- Control variables for atmos. state -#ifdef ALLOW_CTRL - IF (.NOT.ctrlUseGen) THEN - -#ifdef ALLOW_ATEMP_CONTROL - CALL CTRL_GET_GEN ( - & xx_atemp_file, xx_atempstartdate, xx_atempperiod, - & maskc, atemp, xx_atemp0, xx_atemp1, xx_atemp_dummy, - & xx_atemp_remo_intercept, xx_atemp_remo_slope, - & watemp, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_AQH_CONTROL - CALL CTRL_GET_GEN ( - & xx_aqh_file, xx_aqhstartdate, xx_aqhperiod, - & maskc, aqh, xx_aqh0, xx_aqh1, xx_aqh_dummy, - & xx_aqh_remo_intercept, xx_aqh_remo_slope, - & waqh, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_PRECIP_CONTROL - CALL CTRL_GET_GEN ( - & xx_precip_file, xx_precipstartdate, xx_precipperiod, - & maskc, precip, xx_precip0, xx_precip1, xx_precip_dummy, - & xx_precip_remo_intercept, xx_precip_remo_slope, - & wprecip, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_SWDOWN_CONTROL - CALL CTRL_GET_GEN ( - & xx_swdown_file, xx_swdownstartdate, xx_swdownperiod, - & maskc, swdown, xx_swdown0, xx_swdown1, xx_swdown_dummy, - & xx_swdown_remo_intercept, xx_swdown_remo_slope, - & wswdown, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_LWDOWN_CONTROL - CALL CTRL_GET_GEN ( - & xx_lwdown_file, xx_lwdownstartdate, xx_lwdownperiod, - & maskc, lwdown, xx_lwdown0, xx_lwdown1, xx_lwdown_dummy, - & xx_lwdown_remo_intercept, xx_lwdown_remo_slope, - & wlwdown, myTime, myIter, myThid ) -#endif - - ENDIF !if (.NOT.ctrlUseGen) then - -#ifdef ALLOW_SWFLUX_CONTROL - CALL CTRL_GET_GEN ( - & xx_swflux_file, xx_swfluxstartdate, xx_swfluxperiod, - & maskc, swflux, xx_swflux0, xx_swflux1, xx_swflux_dummy, - & xx_swflux_remo_intercept, xx_swflux_remo_slope, - & wswflux, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_LWFLUX_CONTROL - CALL CTRL_GET_GEN ( - & xx_lwflux_file, xx_lwfluxstartdate, xx_lwfluxperiod, - & maskc, lwflux, xx_lwflux0, xx_lwflux1, xx_lwflux_dummy, - & xx_lwflux_remo_intercept, xx_lwflux_remo_slope, - & wswflux, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_EVAP_CONTROL - CALL CTRL_GET_GEN ( - & xx_evap_file, xx_evapstartdate, xx_evapperiod, - & maskc, evap, xx_evap0, xx_evap1, xx_evap_dummy, - & xx_evap_remo_intercept, xx_evap_remo_slope, - & wevap, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_SNOWPRECIP_CONTROL - CALL CTRL_GET_GEN ( - & xx_snowprecip_file, xx_snowprecipstartdate, - & xx_snowprecipperiod, - & maskc, snowprecip, xx_snowprecip0, xx_snowprecip1, - & xx_snowprecip_dummy, - & xx_snowprecip_remo_intercept, xx_snowprecip_remo_slope, - & wsnowprecip, myTime, myIter, myThid ) -#endif - -#ifdef ALLOW_APRESSURE_CONTROL - CALL CTRL_GET_GEN ( - & xx_apressure_file, xx_apressurestartdate, - & xx_apressureperiod, - & maskc, apressure, xx_apressure0, xx_apressure1, - & xx_apressure_dummy, - & xx_apressure_remo_intercept, xx_apressure_remo_slope, - & wapressure, myTime, myIter, myThid ) -#endif - - IF ( useAtmWind ) THEN -#ifndef ALLOW_ROTATE_UV_CONTROLS - -#ifdef ALLOW_UWIND_CONTROL - CALL CTRL_GET_GEN ( - & xx_uwind_file, xx_uwindstartdate, xx_uwindperiod, - & maskc, uwind, xx_uwind0, xx_uwind1, xx_uwind_dummy, - & xx_uwind_remo_intercept, xx_uwind_remo_slope, - & wuwind, myTime, myIter, myThid ) -#endif /* ALLOW_UWIND_CONTROL */ - -#ifdef ALLOW_VWIND_CONTROL - CALL CTRL_GET_GEN ( - & xx_vwind_file, xx_vwindstartdate, xx_vwindperiod, - & maskc, vwind, xx_vwind0, xx_vwind1, xx_vwind_dummy, - & xx_vwind_remo_intercept, xx_vwind_remo_slope, - & wvwind, myTime, myIter, myThid ) -#endif /* ALLOW_VWIND_CONTROL */ - -#else - -#if defined(ALLOW_UWIND_CONTROL) && defined(ALLOW_VWIND_CONTROL) - CALL CTRL_GET_GEN ( - & xx_uwind_file, xx_uwindstartdate, xx_uwindperiod, - & maskc, tmpUE, xx_uwind0, xx_uwind1, xx_uwind_dummy, - & xx_uwind_remo_intercept, xx_uwind_remo_slope, - & wuwind, myTime, myIter, myThid ) - - CALL CTRL_GET_GEN ( - & xx_vwind_file, xx_vwindstartdate, xx_vwindperiod, - & maskc, tmpVN, xx_vwind0, xx_vwind1, xx_vwind_dummy, - & xx_vwind_remo_intercept, xx_vwind_remo_slope, - & wvwind, myTime, myIter, myThid ) - - CALL ROTATE_UV2EN_RL(tmpUX,tmpVY,tmpUE,tmpVN, - & .FALSE.,.FALSE.,.TRUE.,1,myThid) - - DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx - uwind(i,j,bi,bj)=uwind(i,j,bi,bj)+tmpUX(i,j,bi,bj) - vwind(i,j,bi,bj)=vwind(i,j,bi,bj)+tmpVY(i,j,bi,bj) - ENDDO - ENDDO - ENDDO - ENDDO -#endif - -#endif /* ALLOW_ROTATE_UV_CONTROLS */ - ENDIF - -#ifdef ALLOW_ATM_MEAN_CONTROL - DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx -# ifdef ALLOW_ATEMP_CONTROL - atemp(i,j,bi,bj) =atemp(i,j,bi,bj) +xx_atemp_mean(i,j,bi,bj) -# endif -# ifdef ALLOW_AQH_CONTROL - aqh(i,j,bi,bj) =aqh(i,j,bi,bj) +xx_aqh_mean(i,j,bi,bj) -# endif -# ifdef ALLOW_PRECIP_CONTROL - precip(i,j,bi,bj)=precip(i,j,bi,bj)+xx_precip_mean(i,j,bi,bj) -# endif -# ifdef ALLOW_SWDOWN_CONTROL - swdown(i,j,bi,bj)=swdown(i,j,bi,bj)+xx_swdown_mean(i,j,bi,bj) -# endif -# ifdef ALLOW_UWIND_CONTROL - uwind(i,j,bi,bj) =uwind(i,j,bi,bj) +xx_uwind_mean(i,j,bi,bj) -# endif -# ifdef ALLOW_VWIND_CONTROL - vwind(i,j,bi,bj) =vwind(i,j,bi,bj) +xx_vwind_mean(i,j,bi,bj) -# endif - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_ATM_MEAN_CONTROL */ - -cdm transferred from exf_init_runoff.F -cdm functionality needs to be checked before turning on -cdm #ifdef ALLOW_RUNOFF_CONTROL -cdm CALL CTRL_GET_GEN ( -cdm & xx_runoff_file, xx_runoffstartdate, xx_runoffperiod, -cdm & maskc, runoff, xx_runoff0, xx_runoff1, xx_runoff_dummy, -cdm & xx_runoff_remo_intercept, xx_runoff_remo_slope, -cdm & wrunoff, 0., 0., myThid ) -cdm #endif - -#endif /* ALLOW_CTRL */ - -#endif /* undef ALLOW_ECCO) || def ECCO_CTRL_DEPRECATED */ - #if (defined (ALLOW_CTRL) && defined (ALLOW_GENTIM2D_CONTROL)) - IF ( useCTRL.AND.ctrlUseGen ) THEN + IF ( useCTRL ) THEN DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy @@ -692,6 +498,9 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) & xx_gentim2d(i,j,bi,bj,iarr) IF (xx_gentim2d_file(iarr)(1:9).EQ.'xx_precip') & precip(i,j,bi,bj)=precip(i,j,bi,bj)+ + & xx_gentim2d(i,j,bi,bj,iarr) + IF (xx_gentim2d_file(iarr)(1:13).EQ.'xx_snowprecip') + & snowprecip(i,j,bi,bj)=snowprecip(i,j,bi,bj)+ & xx_gentim2d(i,j,bi,bj,iarr) IF (xx_gentim2d_file(iarr)(1:9).EQ.'xx_lwflux') & lwflux(i,j,bi,bj)=lwflux(i,j,bi,bj)+ @@ -766,7 +575,7 @@ SUBROUTINE EXF_GETFFIELDS( myTime, myIter, myThid ) ENDDO #endif /* ALLOW_ROTATE_UV_CONTROLS */ - ENDIF !if (ctrlUseGen) then + ENDIF !if (useCTRL) then #endif RETURN diff --git a/pkg/exf/exf_getforcing.F b/pkg/exf/exf_getforcing.F index 3fdc5adbe8..7989a9c17b 100644 --- a/pkg/exf/exf_getforcing.F +++ b/pkg/exf/exf_getforcing.F @@ -129,6 +129,10 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" #endif +#ifdef ALLOW_TAPENADE +# include "EXF_INTERP_SIZE.h" +# include "EXF_INTERP_PARAM.h" +#endif /* ALLOW_TAPENADE */ C !INPUT/OUTPUT PARAMETERS: C == routine arguments == @@ -139,21 +143,13 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) C !LOCAL VARIABLES: C == local variables == INTEGER bi,bj - INTEGER i,j,k + INTEGER i,j,ks C == end of interface == CEOP C Get values of climatological fields. CALL EXF_GETCLIM( myTime, myIter, myThid ) -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef ALLOW_ATM_TEMP -CADJ STORE precip0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE precip1 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE snowprecip0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE snowprecip1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -#endif C Get the surface forcing fields. CALL EXF_GETFFIELDS( myTime, myIter, myThid ) IF ( .NOT.useAtmWind ) THEN @@ -163,37 +159,84 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) ENDIF #ifdef ALLOW_AUTODIFF_TAMC +C Store fields after reading them so that we do not need to save +C their 0/1 levels to comlev1. Not all fields are required here (in +C most cases only u/vwind or u/vstress, aqh, atemp, precip, +C snowprecip, runoff), but we have directives for all potential +C candidates here. +CADJ STORE ustress = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE vstress = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE uwind = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE vwind = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE wspeed = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef ALLOW_ATM_TEMP +CADJ STORE aqh = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE atemp = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE precip = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE lwflux = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE swflux = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE snowprecip = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef ALLOW_READ_TURBFLUXES +CADJ STORE hs = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE hl = comlev1, key=ikey_dynamics, kind=isbyte +# endif /* ALLOW_READ_TURBFLUXES */ +# ifdef EXF_READ_EVAP +CADJ STORE evap = comlev1, key=ikey_dynamics, kind=isbyte +# endif /* EXF_READ_EVAP */ +# ifdef ALLOW_DOWNWARD_RADIATION +CADJ STORE swdown = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE lwdown = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# else /* ALLOW_ATM_TEMP undef */ +# ifdef SHORTWAVE_HEATING +CADJ STORE swflux = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# endif /* ALLOW_ATM_TEMP */ +# ifdef ATMOSPHERIC_LOADING +CADJ STORE apressure = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# ifdef ALLOW_RUNOFF +CADJ STORE runoff = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# ifdef ALLOW_SALTFLX +CADJ STORE saltflx = comlev1, key=ikey_dynamics, kind=isbyte +# endif +# ifdef EXF_SEAICE_FRACTION +CADJ STORE areamask = comlev1, key=ikey_dynamics, kind=isbyte +# endif +#endif /* ALLOW_AUTODIFF_TAMC */ + +#ifdef ALLOW_AUTODIFF # ifdef ALLOW_AUTODIFF_MONITOR CALL EXF_ADJOINT_SNAPSHOTS( 2, myTime, myIter, myThid ) # endif -#endif +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_DOWNWARD_RADIATION C Set radiative fluxes CALL EXF_RADIATION( myTime, myIter, myThid ) #endif -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ustress = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vstress = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE uwind = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vwind = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE wspeed = comlev1, key=ikey_dynamics, kind=isbyte -#endif C Set wind fields CALL EXF_WIND( myTime, myIter, myThid ) #ifdef ALLOW_ATM_TEMP # ifdef ALLOW_BULKFORMULAE # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ustress = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vstress = comlev1, key=ikey_dynamics, kind=isbyte +C Here we probably only need to store uwind, vwind, wstress but we +C keep the other fields for the paranoid AD-modeller CADJ STORE uwind = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vwind = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE wspeed = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE ustress = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE vstress = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE wstress = comlev1, key=ikey_dynamics, kind=isbyte # endif C Compute turbulent fluxes (and surface stress) from bulk formulae CALL EXF_BULKFORMULAE( myTime, myIter, myThid ) +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE evap = comlev1, key=ikey_dynamics, kind=isbyte +# endif # endif /* ALLOW_BULKFORMULAE */ #endif /* ALLOW_ATM_TEMP */ @@ -202,35 +245,36 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) #ifdef ALLOW_ATM_TEMP C compute hflux & sflux from multiple components - DO j = 1,sNy - DO i = 1,sNx -C Net surface heat flux. - hflux(i,j,bi,bj) = - & - hs(i,j,bi,bj) - & - hl(i,j,bi,bj) - & + lwflux(i,j,bi,bj) + DO j = 1,sNy + DO i = 1,sNx +C Net surface heat flux. + hflux(i,j,bi,bj) = + & - hs(i,j,bi,bj) + & - hl(i,j,bi,bj) + & + lwflux(i,j,bi,bj) #ifndef SHORTWAVE_HEATING - & + swflux(i,j,bi,bj) + & + swflux(i,j,bi,bj) #endif C fresh-water flux from Precipitation and Evaporation. - sflux(i,j,bi,bj) = evap(i,j,bi,bj) - precip(i,j,bi,bj) - ENDDO - ENDDO + sflux(i,j,bi,bj) = evap(i,j,bi,bj) - precip(i,j,bi,bj) + ENDDO + ENDDO #endif /* ALLOW_ATM_TEMP */ C Apply runoff, masks and exchanges - k = 1 - DO j = 1,sNy - DO i = 1,sNx + ks = 1 + IF ( usingPCoords ) ks = Nr + DO j = 1,sNy + DO i = 1,sNx #ifdef ALLOW_RUNOFF - sflux(i,j,bi,bj) = sflux(i,j,bi,bj) - runoff(i,j,bi,bj) + sflux(i,j,bi,bj) = sflux(i,j,bi,bj) - runoff(i,j,bi,bj) #endif - hflux(i,j,bi,bj) = hflux(i,j,bi,bj)*maskC(i,j,k,bi,bj) - sflux(i,j,bi,bj) = sflux(i,j,bi,bj)*maskC(i,j,k,bi,bj) - ENDDO - ENDDO - + hflux(i,j,bi,bj) = hflux(i,j,bi,bj)*maskC(i,j,ks,bi,bj) + sflux(i,j,bi,bj) = sflux(i,j,bi,bj)*maskC(i,j,ks,bi,bj) + ENDDO ENDDO + + ENDDO ENDDO C Update the tile edges: needed for some EXF fields involved in horizontal @@ -239,9 +283,9 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) c _EXCH_XY_RL(hflux, myThid) c _EXCH_XY_RL(sflux, myThid) IF ( stressIsOnCgrid ) THEN - CALL EXCH_UV_XY_RL( ustress, vstress, .TRUE., myThid ) + CALL EXCH_UV_XY_RL( ustress, vstress, .TRUE., myThid ) ELSE - CALL EXCH_UV_AGRID_3D_RL(ustress, vstress, .TRUE., 1, myThid) + CALL EXCH_UV_AGRID_3D_RL(ustress, vstress, .TRUE., 1, myThid) ENDIF #ifdef SHORTWAVE_HEATING c _EXCH_XY_RL(swflux, myThid) @@ -258,12 +302,12 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) IF ( useExfCheckRange .AND. & ( myIter.EQ.nIter0 .OR. exf_debugLev.GE.debLevC ) ) THEN - CALL EXF_CHECK_RANGE( myTime, myIter, myThid ) + CALL EXF_CHECK_RANGE( myTime, myIter, myThid ) ENDIF #ifdef ALLOW_AUTODIFF # ifdef ALLOW_AUTODIFF_MONITOR - CALL EXF_ADJOINT_SNAPSHOTS( 1, myTime, myIter, myThid ) + CALL EXF_ADJOINT_SNAPSHOTS( 1, myTime, myIter, myThid ) # endif #endif /* ALLOW_AUTODIFF */ @@ -276,8 +320,8 @@ SUBROUTINE EXF_GETFORCING( myTime, myIter, myThid ) C Therefore, we DO it exactly here: DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j = 1-oLy,sNy+oLy - DO i = 1-oLx,sNx+oLx + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx hflux(i,j,bi,bj) = hflux(i,j,bi,bj) + swflux(i,j,bi,bj) ENDDO ENDDO diff --git a/pkg/exf/exf_getmonthsrec.F b/pkg/exf/exf_getmonthsrec.F new file mode 100644 index 0000000000..54ba9300d0 --- /dev/null +++ b/pkg/exf/exf_getmonthsrec.F @@ -0,0 +1,75 @@ +#include "EXF_OPTIONS.h" + +CBOP +C !ROUTINE: EXF_GetMonthsRec +C !INTERFACE: + SUBROUTINE EXF_GetMonthsRec( + I fldStartTime, useFldYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) + +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE EXF_GetMonthsRec +C | o Get flags, counters, and the linear interpolation +C | factor for a given field for the case of monthly, +C | interannual forcing +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +C == Global variables == + +C !INPUT PARAMETERS: +C fldStartTime :: time in seconds of first fld record from the +C beginning of the model integration or, if +C usefldyearlyfields, from the beginning of year +C useFldYearlyFields :: when set, use yearly forcing files +C myTime :: current time in simulation +C myIter :: current iteration number in simulation +C myThid :: my thread identification number + _RL fldStartTime + LOGICAL useFldYearlyFields + _RL myTime + INTEGER myIter + INTEGER myThid + +C !OUTPUT PARAMETERS: +C fac :: weight of record count0 for linear interpolation purposes +C first :: model initialization flag: read two forcing records +C changed :: flag indicating that a new forcing record must be read +C count0 :: record number for forcing field preceding myTime +C count1 :: record number for forcing field following myTime +C year0 :: year of forcing file for record preceding myTime +C year1 :: year of forcing file for record following myTime + _RL fac + LOGICAL first, changed + INTEGER count0, count1, year0, year1 + +#ifdef ALLOW_EXF +#ifdef ALLOW_CAL +C !LOCAL VARIABLES: + INTEGER startDate(4) + INTEGER yy, mm, dd, ss, lp, wd +CEOP + + CALL cal_GetMonthsRec( + O fac, first, changed, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) + IF (.NOT.useFldYearlyFields) THEN + CALL CAL_GETDATE( 0, fldStartTime, startDate, myThid ) + CALL CAL_CONVDATE( startDate, yy, mm, dd, ss, lp, wd, myThid ) + count0 = (year0-yy)*12 + count0 - mm + 1 + count1 = (year1-yy)*12 + count1 - mm + 1 + year0 = 0 + year1 = 0 + ENDIF + +#endif /* ALLOW_CAL */ +#endif /* ALLOW_EXF */ + + RETURN + END diff --git a/pkg/exf/exf_getsurfacefluxes.F b/pkg/exf/exf_getsurfacefluxes.F index bae0491081..09f4a17423 100644 --- a/pkg/exf/exf_getsurfacefluxes.F +++ b/pkg/exf/exf_getsurfacefluxes.F @@ -6,14 +6,17 @@ # include "ECCO_OPTIONS.h" #endif - subroutine exf_GetSurfaceFluxes( +CBOP +C !ROUTINE: EXF_GETSURFACEFLUXES +C !INTERFACE: + SUBROUTINE EXF_GETSURFACEFLUXES( I mytime, I myiter, I mythid & ) - +C !DESCRIPTION: \bv c ================================================================== -c SUBROUTINE exf_GetSurfaceFluxes +c SUBROUTINE EXF_GETSURFACEFLUXES c ================================================================== c c o Mid-level routine for enabling the use of flux fields as control @@ -31,12 +34,13 @@ subroutine exf_GetSurfaceFluxes( c mods for pkg/seaice: menemenlis@jpl.nasa.gov 20-Dec-2002 c c ================================================================== -c SUBROUTINE exf_GetSurfaceFluxes +c SUBROUTINE EXF_GETSURFACEFLUXES c ================================================================== +C \ev +C !USES: + IMPLICIT NONE - implicit none - -c == global variables == +C == Global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -50,62 +54,60 @@ subroutine exf_GetSurfaceFluxes( # include "ctrl_dummy.h" # include "CTRL_GENARR.h" #endif -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -# include "ecco_cost.h" -#endif - -c == routine arguments == +C !INPUT/OUTPUT PARAMETERS: +C == Routine arguments == +C myTime :: Current time in simulation +C myIter :: Current iteration number in simulation +C myThid :: Thread number for this instance of the routine. _RL mytime - integer myiter - integer mythid - -c == global variables == + INTEGER myiter + INTEGER mythid +C !LOCAL VARIABLES: +C == Local variables #ifdef ALLOW_CTRL - -#ifdef ALLOW_ROTATE_UV_CONTROLS +# ifdef ALLOW_ROTATE_UV_CONTROLS _RL tmpUE(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) _RL tmpVN(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) _RL tmpUX(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) _RL tmpVY(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -#endif +# endif #ifdef ALLOW_GENTIM2D_CONTROL - integer iarr + INTEGER iarr #endif #if (defined (ALLOW_ROTATE_UV_CONTROLS) || defined (ALLOW_GENTIM2D_CONTROL)) - integer i,j,bi,bj + INTEGER i,j,bi,bj #endif - -c == end of interface == +CEOP #ifdef ALLOW_ROTATE_UV_CONTROLS if ( useCTRL ) then - do bj = mybylo(mythid),mybyhi(mythid) - do bi = mybxlo(mythid),mybxhi(mythid) - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx + DO bj = mybylo(mythid),mybyhi(mythid) + DO bi = mybxlo(mythid),mybxhi(mythid) + DO j = 1-oly,sny+oly + DO i = 1-olx,snx+olx tmpUE(i,j,bi,bj) = 0. _d 0 tmpVN(i,j,bi,bj) = 0. _d 0 tmpUX(i,j,bi,bj) = 0. _d 0 tmpVY(i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO endif #endif #if (defined (ALLOW_CTRL) && \ defined (ALLOW_GENTIM2D_CONTROL)) - if ( useCTRL.AND.ctrlUseGen) then - DO bj = myByLo(myThid),myByHi(myThid) - DO bi = myBxLo(myThid),mybxhi(myThid) - DO j = 1,sNy - DO i = 1,sNx - do iarr = 1, maxCtrlTim2D + IF ( useCTRL) THEN + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),mybxhi(myThid) + DO j = 1,sNy + DO i = 1,sNx + DO iarr = 1, maxCtrlTim2D #ifndef ALLOW_ROTATE_UV_CONTROLS if (xx_gentim2d_file(iarr)(1:7).EQ.'xx_tauu') & ustress(i,j,bi,bj)=ustress(i,j,bi,bj)+ @@ -121,105 +123,49 @@ subroutine exf_GetSurfaceFluxes( & tmpVN(i,j,bi,bj)=tmpVN(i,j,bi,bj) & +xx_gentim2d(i,j,bi,bj,iarr) #endif - enddo + if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_hflux') + & hflux(i,j,bi,bj)=hflux(i,j,bi,bj)+ + & xx_gentim2d(i,j,bi,bj,iarr) + if (xx_gentim2d_file(iarr)(1:8).EQ.'xx_sflux') + & sflux(i,j,bi,bj)=sflux(i,j,bi,bj)+ + & xx_gentim2d(i,j,bi,bj,iarr) + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - endif !if (ctrlUseGen) then -#endif - -#if (!defined (ALLOW_ECCO) || defined (ECCO_CTRL_DEPRECATED)) - -#ifdef ALLOW_HFLUX_CONTROL - call ctrl_get_gen ( - & xx_hflux_file, xx_hfluxstartdate, xx_hfluxperiod, - & maskc, hflux, xx_hflux0, xx_hflux1, xx_hflux_dummy, - & xx_hflux_remo_intercept, xx_hflux_remo_slope, - & whflux, mytime, myiter, mythid ) -#endif - -#ifdef ALLOW_SFLUX_CONTROL - call ctrl_get_gen ( - & xx_sflux_file, xx_sfluxstartdate, xx_sfluxperiod, - & maskc, sflux, xx_sflux0, xx_sflux1, xx_sflux_dummy, - & xx_sflux_remo_intercept, xx_sflux_remo_slope, - & wsflux, mytime, myiter, mythid ) + ENDIF !if (useCTRL) then #endif - IF ( .NOT.useAtmWind ) THEN - - IF ( .NOT.ctrlUseGen ) THEN -#ifndef ALLOW_ROTATE_UV_CONTROLS - -#ifdef ALLOW_USTRESS_CONTROL - call ctrl_get_gen ( - & xx_tauu_file, xx_tauustartdate, xx_tauuperiod, - & maskw, ustress, xx_tauu0, xx_tauu1, xx_tauu_dummy, - & xx_tauu_remo_intercept, xx_tauu_remo_slope, - & wtauu, mytime, myiter, mythid ) -#endif - -#ifdef ALLOW_VSTRESS_CONTROL - call ctrl_get_gen ( - & xx_tauv_file, xx_tauvstartdate, xx_tauvperiod, - & masks, vstress, xx_tauv0, xx_tauv1, xx_tauv_dummy, - & xx_tauv_remo_intercept, xx_tauv_remo_slope, - & wtauv, mytime, myiter, mythid ) -#endif - -#else - -#if (defined (ALLOW_USTRESS_CONTROL) && defined (ALLOW_VSTRESS_CONTROL)) - - call ctrl_get_gen ( - & xx_tauu_file, xx_tauustartdate, xx_tauuperiod, - & maskc, tmpUE, xx_tauu0, xx_tauu1, xx_tauu_dummy, - & xx_tauu_remo_intercept, xx_tauu_remo_slope, - & wtauu, mytime, myiter, mythid ) - - call ctrl_get_gen ( - & xx_tauv_file, xx_tauvstartdate, xx_tauvperiod, - & maskc, tmpVN, xx_tauv0, xx_tauv1, xx_tauv_dummy, - & xx_tauv_remo_intercept, xx_tauv_remo_slope, - & wtauv, mytime, myiter, mythid ) - -#endif /* ALLOW_USTRESS_CONTROL and ALLOW_VSTRESS_CONTROL */ - -#endif /* ALLOW_ROTATE_UV_CONTROLS */ - ENDIF ! (.NOT.ctrlUseGen) - -#else IF ( (useCTRL).AND.(.NOT.useAtmWind) ) THEN -#endif /* undef ALLOW_ECCO || def ECCO_CTRL_DEPRECATED */ #ifdef ALLOW_ROTATE_UV_CONTROLS _EXCH_XY_RL(tmpUE,myThid) _EXCH_XY_RL(tmpVN,myThid) - call rotate_uv2en_rl(tmpUX,tmpVY,tmpUE,tmpVN, + CALL ROTATE_UV2EN_RL(tmpUX,tmpVY,tmpUE,tmpVN, & .FALSE.,stressIsOnCgrid,.TRUE.,1,mythid) IF ( stressIsOnCgrid ) THEN CALL EXCH_UV_XY_RL( tmpUX, tmpVY, .TRUE., myThid ) ELSE CALL EXCH_UV_AGRID_3D_RL( tmpUX, tmpVY, .TRUE., 1, myThid) - ENDIF + ENDIF - do bj = mybylo(mythid),mybyhi(mythid) - do bi = mybxlo(mythid),mybxhi(mythid) - do j = 1-oly,sny+oly - do i = 1-olx,snx+olx + DO bj = mybylo(mythid),mybyhi(mythid) + DO bi = mybxlo(mythid),mybxhi(mythid) + DO j = 1-oly,sny+oly + DO i = 1-olx,snx+olx ustress(i,j,bi,bj)=ustress(i,j,bi,bj)+tmpUX(i,j,bi,bj) vstress(i,j,bi,bj)=vstress(i,j,bi,bj)+tmpVY(i,j,bi,bj) - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO #endif /* ALLOW_ROTATE_UV_CONTROLS */ ENDIF !( .NOT.useAtmWind ) #endif /* ALLOW_CTRL */ - end + END diff --git a/pkg/exf/exf_getyearlyfieldname.F b/pkg/exf/exf_getyearlyfieldname.F index 26c8cba86a..3b8a925130 100644 --- a/pkg/exf/exf_getyearlyfieldname.F +++ b/pkg/exf/exf_getyearlyfieldname.F @@ -1,63 +1,62 @@ #include "EXF_OPTIONS.h" - subroutine exf_GetYearlyFieldName( - I useYearlyFields, twoDigitYear, genperiod, year, genfile, - O genfileout, - I mytime, myiter, mythid ) - -c ================================================================== -c SUBROUTINE exf_GetYearlyFieldName -c ================================================================== -c -c o Determine actual name of forcing file including year extension -c -c started: Martin Losch 24-Jan-2008 -c -c ================================================================== - - implicit none -c == global variables == +CBOP +C !ROUTINE: exf_GetYearlyFieldName -c == routine arguments == - -c input +C !INTERFACE: + SUBROUTINE exf_GetYearlyFieldName( + I useYearlyFields, twoDigitYear, genperiod, year, genfile, + O genfileout, + I myTime, myIter, myThid ) + +C !DESCRIPTION: +C ================================================================== +C o Determine actual name of forcing file including year extension +C +C started: Martin Losch 24-Jan-2008 +C ================================================================== + +C !USES: + IMPLICIT NONE +C == Global variables === + +C !INPUT PARAMETERS: + LOGICAL useYearlyFields + LOGICAL twoDigitYear _RL genperiod - logical useYearlyFields - logical twoDigitYear - character*(128) genfile - integer year - _RL mytime - integer myiter - integer mythid -c output - character*(128) genfileout + INTEGER year + CHARACTER*(128) genfile + _RL myTime + INTEGER myIter + INTEGER myThid -#ifdef ALLOW_EXF -c == local variables == - - integer yearLoc - integer il - -c == external == - - integer ilnblnk - external ilnblnk +C !OUTPUT PARAMETERS: + CHARACTER*(128) genfileout -c == end of interface == - - if (useYearlyFields.and.genperiod.gt.0) then -c Complete filename with YR or _YEAR extension - il = ilnblnk( genfile ) - if (twoDigitYear) then +#ifdef ALLOW_EXF +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + INTEGER yearLoc + INTEGER il +CEOP + + IF ( useYearlyFields .AND. genperiod.NE.-12 ) THEN +C Complete filename with YR or _YEAR extension + il = ILNBLNK( genfile ) + IF ( twoDigitYear) THEN yearLoc = year-1900 - if (year.ge.2000) yearLoc = year-2000 - write(genfileout(1:128),'( a,i2.2)') genfile(1:il),yearLoc - else - write(genfileout(1:128),'(2a,i4.4)') genfile(1:il),'_',year - endif - else + IF ( year.GE.2000 ) yearLoc = year - 2000 + WRITE(genfileout(1:128),'(A,I2.2)') genfile(1:il), yearLoc + ELSE + WRITE(genfileout(1:128),'(2A,I4.4)') genfile(1:il), '_', year + ENDIF + ELSE genfileout = genfile - endif -#endif /* ALLOW_EXF */ - return - end + ENDIF + +#endif /* ALLOW_EXF */ + RETURN + END diff --git a/pkg/exf/exf_init_varia.F b/pkg/exf/exf_init_varia.F index 2c56e02f50..631f10e4a7 100644 --- a/pkg/exf/exf_init_varia.F +++ b/pkg/exf/exf_init_varia.F @@ -27,8 +27,8 @@ SUBROUTINE EXF_INIT_VARIA( myThid ) #include "EXF_INTERP_SIZE.h" #include "EXF_INTERP_PARAM.h" #include "EXF_FIELDS.h" +#include "PARAMS.h" #ifdef ALLOW_BULK_OFFLINE -# include "PARAMS.h" # include "DYNVARS.h" #endif @@ -37,9 +37,12 @@ SUBROUTINE EXF_INIT_VARIA( myThid ) INTEGER myThid C !LOCAL VARIABLES: - INTEGER i,j,bi,bj + INTEGER i,j,ks,bi,bj CEOP + ks = 1 + IF ( usingPCoords ) ks = Nr + C-- Initialise to zero intermediate fields (in common block) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) @@ -458,26 +461,26 @@ SUBROUTINE EXF_INIT_VARIA( myThid ) # ifdef ALLOW_CLIMSST_RELAXATION IF ( climsstfile .NE. ' ' .AND. & climsstperiod .EQ. 0. ) - & theta(i,j,1,bi,bj) = climsst(i,j,bi,bj) + & theta(i,j,ks,bi,bj) = climsst(i,j,bi,bj) # endif # ifdef ALLOW_CLIMSSS_RELAXATION IF ( climsssfile .NE. ' ' .AND. & climsssperiod .EQ. 0. ) - & salt(i,j,1,bi,bj) = climsss(i,j,bi,bj) + & salt(i,j,ks,bi,bj) = climsss(i,j,bi,bj) # endif # ifdef ALLOW_CLIMSTRESS_RELAXATION IF ( climustrfile .NE. ' ' .AND. & climustrperiod .EQ. 0. ) - & uvel(i,j,1,bi,bj) = climustr(i,j,bi,bj) + & uVel(i,j,ks,bi,bj) = climustr(i,j,bi,bj) IF ( climvstrfile .NE. ' ' .AND. & climvstrperiod .EQ. 0. ) - & vvel(i,j,1,bi,bj) = climvstr(i,j,bi,bj) + & vVel(i,j,ks,bi,bj) = climvstr(i,j,bi,bj) # endif - IF ( maskC(i,j,1,bi,bj) .NE. 0. .AND. - & theta(i,j,1,bi,bj) .EQ. 0. ) then - print *, 'ph-warn-exf-init ', i, j, theta(i,j,1,bi,bj) + IF ( maskC(i,j,ks,bi,bj) .NE. 0. .AND. + & theta(i,j,ks,bi,bj) .EQ. 0. ) THEN + PRINT *, 'ph-warn-exf-init ', i, j, theta(i,j,ks,bi,bj) cph STOP 'in exf_init' - endif + ENDIF ENDDO ENDDO ENDDO diff --git a/pkg/exf/exf_interp_read.F b/pkg/exf/exf_interp_read.F index f7f027943b..e11c48d613 100644 --- a/pkg/exf/exf_interp_read.F +++ b/pkg/exf/exf_interp_read.F @@ -130,8 +130,8 @@ SUBROUTINE EXF_INTERP_READ( CALL MDSFINDUNIT( ioUnit, myThid ) length_of_rec=MDS_RECLEN( filePrec, nx_in*ny_in, myThid ) - OPEN( ioUnit, file=infile, status='old', access='direct', - & recl=length_of_rec ) + OPEN( ioUnit, file=infile, status='old', _READONLY_ACTION + & access='direct', recl=length_of_rec ) IF ( filePrec .EQ. 32 ) THEN #ifdef EXF_INTERP_USE_DYNALLOC READ(ioUnit,rec=irecord) buffer_r4 diff --git a/pkg/exf/exf_mapfields.F b/pkg/exf/exf_mapfields.F index daed6931fc..9392a86aab 100644 --- a/pkg/exf/exf_mapfields.F +++ b/pkg/exf/exf_mapfields.F @@ -63,7 +63,6 @@ SUBROUTINE EXF_MAPFIELDS( myTime, myIter, myThid ) #include "EXF_FIELDS.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -81,25 +80,20 @@ SUBROUTINE EXF_MAPFIELDS( myTime, myIter, myThid ) INTEGER jmin, jmax PARAMETER ( imin = 1-OLx , imax = sNx+OLx ) PARAMETER ( jmin = 1-OLy , jmax = sNy+OLy ) +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey +#endif CEOP C-- set surface level index: ks = 1 + IF ( usingPCoords ) ks = Nr DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C Heat flux. @@ -338,7 +332,7 @@ SUBROUTINE EXF_MAPFIELDS( myTime, myIter, myThid ) #ifdef ALLOW_SALTFLX DO j = jmin,jmax DO i = imin,imax - saltFlux(I,J,bi,bj) = saltflx(I,J,bi,bj) + saltFlux(i,j,bi,bj) = saltflx(i,j,bi,bj) ENDDO ENDDO #endif @@ -348,8 +342,8 @@ SUBROUTINE EXF_MAPFIELDS( myTime, myIter, myThid ) DO i = imin,imax exf_iceFraction(i,j,bi,bj) = & exf_outscal_areamask*areamask(i,j,bi,bj) - exf_iceFraction(I,J,bi,bj) = - & MIN( MAX(exf_iceFraction(I,J,bi,bj),zeroRS), oneRS ) + exf_iceFraction(i,j,bi,bj) = + & MIN( MAX(exf_iceFraction(i,j,bi,bj),zeroRS), oneRS ) ENDDO ENDDO #endif diff --git a/pkg/exf/exf_monitor.F b/pkg/exf/exf_monitor.F index 174c3ff9ce..44f2f4f9d9 100644 --- a/pkg/exf/exf_monitor.F +++ b/pkg/exf/exf_monitor.F @@ -198,7 +198,7 @@ SUBROUTINE EXF_MONITOR( ENDIF # endif #endif -#ifdef EXF_SALTFLX +#ifdef ALLOW_SALTFLX IF ( saltflxfile .NE. ' ' ) THEN CALL MON_WRITESTATS_RL( 1, saltflx,'_saltflx', & maskInC, maskInC, rA , drF, dummyRL, myThid ) diff --git a/pkg/exf/exf_monitor_ad.F b/pkg/exf/exf_monitor_ad.F index 248a2651d7..6cda457604 100644 --- a/pkg/exf/exf_monitor_ad.F +++ b/pkg/exf/exf_monitor_ad.F @@ -55,13 +55,21 @@ SUBROUTINE ADEXF_MONITOR( #ifdef ALLOW_MNC INTEGER k #endif + LOGICAL printMonitorHeader - IF ( DIFFERENT_MULTIPLE(adjmonitorFreq,myTime,deltaTClock) ) THEN + IF ( exf_adjMonSelect .GT. 0 .AND. + & DIFFERENT_MULTIPLE(exf_adjMonFreq,myTime,deltaTClock) ) THEN - IF ( MASTER_CPU_IO(myThid) ) THEN + IF ( MASTER_CPU_IO(myThid) ) THEN C-- only the master thread is allowed to switch On/Off mon_write_stdout C & mon_write_mnc (since it is the only thread that uses those flags): + printMonitorHeader = ( iwhen .EQ. 3 ) + & .OR. ( iwhen .EQ. 1 .AND. exf_adjMonSelect .GE. 3 ) + & .OR. ( iwhen .EQ. 2 .AND. exf_adjMonSelect .GE. 2 ) + + IF ( printMonitorHeader ) THEN + IF (monitor_stdio) THEN mon_write_stdout = .TRUE. ELSE @@ -97,14 +105,16 @@ SUBROUTINE ADEXF_MONITOR( CALL PRINT_MESSAGE(msgBuf, mon_ioUnit, SQUEEZE_RIGHT, 1) ENDIF -C-- endif master cpu io +C-- endif printMonitorHeader ENDIF +C-- endif master cpu io + ENDIF CALL MON_SET_PREF('ad_exf',myThid) CALL MON_OUT_I ('_tsnumber', myIter,mon_string_none,myThid) CALL MON_OUT_RL('_time_sec', myTime,mon_string_none,myThid) - IF ( iwhen .EQ.1 ) THEN + IF ( iwhen .EQ. 1 .AND. exf_adjMonSelect .GE. 3 ) THEN C Print some statistics about input forcing fields IF ( stressIsOnCgrid ) THEN @@ -122,47 +132,53 @@ SUBROUTINE ADEXF_MONITOR( & maskInC, maskInC, rA , drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, adsflux, '_adsflux', & maskInC, maskInC, rA , drF, dummyRL, myThid ) +#ifdef SHORTWAVE_HEATING + CALL MON_WRITESTATS_RL( 1, adswflux, '_adswflux', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) +#endif CALL MON_WRITESTATS_RL( 1, adwspeed, '_adwspeed', & maskInC, maskInC, rA , drF, dummyRL, myThid ) - ELSEIF ( iwhen .EQ.2 ) THEN + ELSEIF ( iwhen .EQ. 2 .AND. exf_adjMonSelect .GE. 2 ) THEN -#ifdef ALLOW_ATM_WIND - IF ( useAtmWind ) THEN - CALL MON_WRITESTATS_RL( 1, aduwind, '_aduwind', - & maskInC, maskInC, rA , drF, dummyRL, myThid ) - CALL MON_WRITESTATS_RL( 1, advwind, '_advwind', - & maskInC, maskInC, rA , drF, dummyRL, myThid ) - ENDIF -#endif /* ALLOW_ATM_WIND */ + IF ( useAtmWind ) THEN + CALL MON_WRITESTATS_RL( 1, aduwind, '_aduwind', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) + CALL MON_WRITESTATS_RL( 1, advwind, '_advwind', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) + ENDIF #ifdef ALLOW_ATM_TEMP CALL MON_WRITESTATS_RL( 1, adatemp, '_adatemp', & maskInC, maskInC, rA , drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, adaqh, '_adaqh', - & maskInC, maskInC, rA , drF, dummyRL, myThid ) - CALL MON_WRITESTATS_RL( 1, adlwflux, '_adlwflux', & maskInC, maskInC, rA , drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, adprecip, '_adprecip', & maskInC, maskInC, rA , drF, dummyRL, myThid ) + IF ( lwfluxfile.NE.' ' .OR. lwdownfile.EQ.' ' ) THEN + CALL MON_WRITESTATS_RL( 1, adlwflux, '_adlwflux', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) + ENDIF #endif /* ALLOW_ATM_TEMP */ -#if defined(ALLOW_ATM_TEMP) && defined(SHORTWAVE_HEATING) - CALL MON_WRITESTATS_RL( 1, adswflux, '_adswflux', +#if defined(ALLOW_ATM_TEMP) || defined(SHORTWAVE_HEATING) + IF ( swfluxfile.NE.' ' .OR. swdownfile.EQ.' ' ) THEN + CALL MON_WRITESTATS_RL( 1, adswflux, '_adswflux', & maskInC, maskInC, rA , drF, dummyRL, myThid ) + ENDIF #endif #ifdef ALLOW_DOWNWARD_RADIATION + CALL MON_WRITESTATS_RL( 1, adlwdown, '_adlwdown', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, adswdown, '_adswdown', & maskInC, maskInC, rA , drF, dummyRL, myThid ) - CALL MON_WRITESTATS_RL( 1, adlwdown, '_adlwdown', +#endif +#ifdef ALLOW_RUNOFF + CALL MON_WRITESTATS_RL( 1, adrunoff, '_adrunoff', & maskInC, maskInC, rA , drF, dummyRL, myThid ) #endif #ifdef ATMOSPHERIC_LOADING cph CALL MON_WRITESTATS_RL( 1,adapressure,'_adapressure', cph & maskInC, maskInC, rA , drF, dummyRL, myThid ) #endif -#ifdef ALLOW_RUNOFF - CALL MON_WRITESTATS_RL( 1, adrunoff, '_adrunoff', - & maskInC, maskInC, rA , drF, dummyRL, myThid ) -#endif #ifdef EXF_SEAICE_FRACTION cph CALL MON_WRITESTATS_RL( 1, areamask,'_areamask', cph & maskInC, maskInC, rA , drF, dummyRL, myThid ) @@ -182,23 +198,29 @@ SUBROUTINE ADEXF_MONITOR( cph & maskInS, maskInS, rAs, drF, dummyRL, myThid ) #endif - ELSEIF ( iwhen .EQ.3 ) THEN + ELSEIF ( iwhen .EQ. 3 ) THEN CALL MON_WRITESTATS_RS( 1, adfu, '_adfu', & maskInC, maskInC, rA , drF, dummyRL, myThid ) CALL MON_WRITESTATS_RS( 1, adfv, '_adfv', & maskInC, maskInC, rA , drF, dummyRL, myThid ) - CALL MON_WRITESTATS_RS( 1, adqnet, '_adqnet', + CALL MON_WRITESTATS_RS( 1, adqnet, '_adqnet', & maskInC, maskInC, rA , drF, dummyRL, myThid ) - CALL MON_WRITESTATS_RS( 1, adempmr, '_adempmr', + CALL MON_WRITESTATS_RS( 1, adempmr, '_adempmr', & maskInC, maskInC, rA , drF, dummyRL, myThid ) +#ifdef SHORTWAVE_HEATING + CALL MON_WRITESTATS_RS( 1, adqsw, '_adqsw', + & maskInC, maskInC, rA , drF, dummyRL, myThid ) +#endif - ENDIF + ENDIF - IF ( MASTER_CPU_IO(myThid) ) THEN + IF ( MASTER_CPU_IO(myThid) ) THEN C-- only the master thread is allowed to switch On/Off mon_write_stdout C & mon_write_mnc (since it is the only thread that uses those flags): + IF ( printMonitorHeader ) THEN + IF ( mon_write_stdout ) THEN WRITE(msgBuf,'(2A)') '// ===========================', & '============================' @@ -215,8 +237,10 @@ SUBROUTINE ADEXF_MONITOR( mon_write_stdout = .FALSE. mon_write_mnc = .FALSE. -C-- endif master cpu io +C-- endif printMonitorHeader ENDIF +C-- endif master cpu io + ENDIF C endif different multiple ENDIF diff --git a/pkg/exf/exf_radiation.F b/pkg/exf/exf_radiation.F index 54d5ceba81..3b0a8e3834 100644 --- a/pkg/exf/exf_radiation.F +++ b/pkg/exf/exf_radiation.F @@ -1,7 +1,4 @@ #include "EXF_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif SUBROUTINE EXF_RADIATION( myTime, myIter, myThid ) @@ -28,9 +25,6 @@ SUBROUTINE EXF_RADIATION( myTime, myIter, myThid ) #include "EXF_PARAM.h" #include "EXF_FIELDS.h" #include "EXF_CONSTANTS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif C == routine arguments == @@ -60,6 +54,10 @@ SUBROUTINE EXF_RADIATION( myTime, myIter, myThid ) #ifdef ALLOW_ATM_TEMP ks = 1 kl = 2 + IF ( usingPCoords ) THEN + ks = Nr + kl = Nr-1 + ENDIF IF ( lwfluxfile .EQ. ' ' .AND. lwdownfile .NE. ' ' ) THEN C Loop over tiles. @@ -137,7 +135,7 @@ SUBROUTINE EXF_RADIATION( myTime, myIter, myThid ) #ifdef ALLOW_ZENITHANGLE IF ( useExfZenAlbedo .OR. useExfZenIncoming ) THEN CALL EXF_ZENITHANGLE(myTime, myIter, myThid) -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF ELSE DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) diff --git a/pkg/exf/exf_readparms.F b/pkg/exf/exf_readparms.F index 12d14f68ec..3c7658e318 100644 --- a/pkg/exf/exf_readparms.F +++ b/pkg/exf/exf_readparms.F @@ -70,14 +70,16 @@ SUBROUTINE EXF_READPARMS( myThid ) & exf_iceCd, exf_iceCe, exf_iceCh, & exf_scal_BulkCdn, climtempfreeze, useExfCheckRange, & exf_iprec , exf_iprec_obcs , exf_yftype, - & exf_verbose , exf_debugLev , exf_monFreq, + & exf_verbose , exf_debugLev , exf_monFreq, + & exf_adjMonFreq, exf_adjMonSelect, & useExfYearlyFields, twoDigitYear, & readStressOnAgrid, rotateStressOnAgrid, readStressOnCgrid, & useAtmWind, useRelativeWind , noNegativeEvap, & useStabilityFct_overIce, diags_opOceWeighted, & select_ZenAlbedo, useExfZenIncoming, & hu, ht, umin, atmrho, atmcp, cen2kel, gravity_mks, - & cdrag_1, cdrag_2, cdrag_3, cstanton_1, cstanton_2, cdalton, + & cdrag_1, cdrag_2, cdrag_3, cdrag_8, cdragMax, umax, + & cstanton_1, cstanton_2, cdalton, & flamb, flami, zolmin, zref, & cvapor_fac, cvapor_exp, cvapor_fac_ice, cvapor_exp_ice, & humid_fac, gamma_blk, saltsat, sstExtrapol, psim_fac @@ -300,6 +302,8 @@ SUBROUTINE EXF_READPARMS( myThid ) exf_verbose = .FALSE. exf_debugLev = debugLevel exf_monFreq = monitorFreq + exf_adjMonFreq = adjMonitorFreq + exf_adjMonSelect = 1 useExfCheckRange = .TRUE. select_ZenAlbedo = 0 useExfZenIncoming = .FALSE. @@ -339,6 +343,15 @@ SUBROUTINE EXF_READPARMS( myThid ) cdrag_1 = 0.0027000 _d 0 cdrag_2 = 0.0001420 _d 0 cdrag_3 = 0.0000764 _d 0 +#ifdef ALLOW_DRAG_LARGEYEAGER09 + cdrag_8 = -3.1480700 _d -13 + cdragMax = 2.34 _d -03 + umax = 33. _d 0 +#else + cdrag_8 = UNSET_RL + cdragMax = UNSET_RL + umax = UNSET_RL +#endif cstanton_1 = 0.0327 _d 0 cstanton_2 = 0.0180 _d 0 cdalton = 0.0346 _d 0 diff --git a/pkg/exf/exf_set_fld.F b/pkg/exf/exf_set_fld.F index 640251a52d..3afc49d928 100644 --- a/pkg/exf/exf_set_fld.F +++ b/pkg/exf/exf_set_fld.F @@ -129,7 +129,19 @@ SUBROUTINE EXF_SET_FLD( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +#endif /* ALLOW_CAL */ + ELSEIF ( useCal .AND. fldperiod .EQ. -1.) THEN +C- fldPeriod=-1 means fields are monthly means. +C With useExfYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month fldStartTime falls in. +#ifdef ALLOW_CAL + CALL EXF_GetMonthsRec( + I fldStartTime, useExfYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, I myTime, myIter, myThid ) #endif /* ALLOW_CAL */ ELSEIF ( fldPeriod .LT. 0. ) THEN @@ -155,7 +167,7 @@ SUBROUTINE EXF_SET_FLD( & ' myIter, count0, count1:', myIter, count0, count1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - WRITE(msgBuf,'(2A,2(L2,2X),E16.9)') 'EXF_SET_FLD: ', + WRITE(msgBuf,'(2A,2(L2,2X),F21.17)') 'EXF_SET_FLD: ', & ' first, changed, fac: ', first, changed, fac CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) diff --git a/pkg/exf/exf_set_uv.F b/pkg/exf/exf_set_uv.F index 5719bdabec..e01df965aa 100644 --- a/pkg/exf/exf_set_uv.F +++ b/pkg/exf/exf_set_uv.F @@ -151,7 +151,19 @@ SUBROUTINE EXF_SET_UV( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +#endif /* ALLOW_CAL */ + ELSEIF ( useCAL .AND. uVecPeriod .EQ. -1.) THEN +#ifdef ALLOW_CAL +C- uVecPeriod=-1 means fields are monthly means. +C With useExfYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month uVecStartTime falls in. + CALL EXF_GetMonthsRec( + I uVecStartTime, useExfYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, I myTime, myIter, myThid ) #endif /* ALLOW_CAL */ ELSEIF ( uVecPeriod .LT. 0. ) THEN @@ -176,7 +188,7 @@ SUBROUTINE EXF_SET_UV( & ' myIter, count0, count1:', myIter, count0, count1 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - WRITE(msgBuf,'(2A,2(L2,2X),E16.9)') 'EXF_SET_UV: ', + WRITE(msgBuf,'(2A,2(L2,2X),F21.17)') 'EXF_SET_UV: ', & ' first, changed, fac: ', first, changed, fac CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) diff --git a/pkg/exf/exf_summary.F b/pkg/exf/exf_summary.F index 3f0a3015d7..a0ed750331 100644 --- a/pkg/exf/exf_summary.F +++ b/pkg/exf/exf_summary.F @@ -113,6 +113,9 @@ SUBROUTINE EXF_SUMMARY( myThid ) & ' /* select EXF-debug printing level */') CALL WRITE_0D_RL( exf_monFreq, INDEX_NONE, 'exf_monFreq =', & ' /* EXF monitor frequency [ s ] */') + CALL WRITE_0D_I( exf_adjMonSelect, INDEX_NONE, + & 'exf_adjMonSelect =', + & ' /* select group of exf AD-variables to monitor */') CALL WRITE_0D_RL( repeatPeriod, INDEX_NONE, 'repeatPeriod =', & ' /* period for cycling forcing dataset [ s ] */') CALL WRITE_0D_RL( climtempfreeze, INDEX_NONE,'climTempFreeze=', @@ -155,17 +158,23 @@ SUBROUTINE EXF_SUMMARY( myThid ) CALL WRITE_0D_RL( sstExtrapol, INDEX_NONE, 'sstExtrapol =', & ' /* extrapolation coeff from lev. 1 & 2 to surf [-] */') CALL WRITE_0D_RL( cdrag_1, INDEX_NONE, 'cDrag_1 =', - & ' /* coef used in drag calculation [?] */') + & ' /* coef used in drag calculation [m/s] */') CALL WRITE_0D_RL( cdrag_2, INDEX_NONE, 'cDrag_2 =', - & ' /* coef used in drag calculation [?] */') + & ' /* coef used in drag calculation [-] */') CALL WRITE_0D_RL( cdrag_3, INDEX_NONE, 'cDrag_3 =', - & ' /* coef used in drag calculation [?] */') + & ' /* coef used in drag calculation [s/m] */') + CALL WRITE_0D_RL( cdrag_8, INDEX_NONE, 'cDrag_8 =', + & ' /* coef used in drag calculation [(s/m)^6] */') + CALL WRITE_0D_RL( cdragMax, INDEX_NONE, 'cDragMax =', + & ' /* maximum drag (Large and Yeager, 2009) [-] */') + CALL WRITE_0D_RL( umax, INDEX_NONE, 'umax =', + & ' /* at maximum wind (Large and Yeager, 2009) [m/s] */') CALL WRITE_0D_RL( cstanton_1, INDEX_NONE, 'cStanton_1 =', - & ' /* coef used in Stanton number calculation [?] */') + & ' /* coef used in Stanton number calculation [-] */') CALL WRITE_0D_RL( cstanton_2, INDEX_NONE, 'cStanton_2 =', - & ' /* coef used in Stanton number calculation [?] */') + & ' /* coef used in Stanton number calculation [-] */') CALL WRITE_0D_RL( cdalton, INDEX_NONE, 'cDalton =', - & ' /* coef used in Dalton number calculation [?] */') + & ' /* Dalton number [-] */') CALL WRITE_0D_RL( exf_scal_BulkCdn, INDEX_NONE, & 'exf_scal_BulkCdn=', & ' /* Drag coefficient scaling factor [-] */') @@ -876,7 +885,8 @@ SUBROUTINE EXF_FLD_SUMMARY( CALL PRINT_MESSAGE( blkLin, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) ENDIF - IF ( fld_period.GT.0. ) THEN + IF ( fld_period.GT.0. .OR. + & (fld_period.EQ.-1. .AND. .NOT.useYearlyFields) ) THEN WRITE(tmpBuf,'(3A)') ' ', fld_fullName, ' starts at' WRITE(msgBuf,'(A,F12.0)') tmpBuf(1:jL), fld_start_time CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, diff --git a/pkg/exf/exf_wind.F b/pkg/exf/exf_wind.F index 1769b17ec4..32fb65f8a4 100644 --- a/pkg/exf/exf_wind.F +++ b/pkg/exf/exf_wind.F @@ -29,10 +29,10 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) #include "EXF_PARAM.h" #include "EXF_FIELDS.h" #include "EXF_CONSTANTS.h" +#include "DYNVARS.h" #ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" #endif #ifdef ALLOW_GENTIM2D_CONTROL # include "ctrl.h" @@ -52,8 +52,10 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) C == local variables == INTEGER bi,bj - INTEGER i,j - _RL wsLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER i,j,ks + _RL urelw(1:sNx,1:sNy) + _RL vrelw(1:sNx,1:sNy) + _RL wsLoc(1:sNx,1:sNy) _RL wsSq #ifdef ALLOW_BULKFORMULAE _RL usSq, recip_sqrtRhoA, ustar @@ -67,31 +69,30 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) #ifdef ALLOW_GENTIM2D_CONTROL INTEGER iarr #endif +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey +#endif C == end of interface == C-- Use atmospheric state to compute surface fluxes. + ks = 1 + IF ( usingPCoords ) ks = Nr + C Loop over tiles. DO bj = myByLo(myThid),myByHi(myThid) DO bi = myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C-- Initialise DO j = 1,sNy DO i = 1,sNx wsLoc(i,j) = 0. _d 0 + urelw(i,j) = uwind(i,j,bi,bj) + vrelw(i,j) = vwind(i,j,bi,bj) cw(i,j,bi,bj) = 0. _d 0 sw(i,j,bi,bj) = 0. _d 0 sh(i,j,bi,bj) = 0. _d 0 @@ -99,9 +100,27 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) ENDDO ENDDO + IF (useRelativeWind) THEN +C Subtract uVel and vVel from uwind and vwind. + DO j = 1,sNy + DO i = 1,sNx + urelw(i,j) = uwind(i,j,bi,bj) - 0.5 _d 0 + & * (uVel(i,j,ks,bi,bj)+uVel(i+1,j,ks,bi,bj)) + vrelw(i,j) = vwind(i,j,bi,bj) - 0.5 _d 0 + & * (vVel(i,j,ks,bi,bj)+vVel(i,j+1,ks,bi,bj)) + ENDDO + ENDDO +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL( urelw,'EXFurelw',0,1,3,bi,bj,myThid ) + CALL DIAGNOSTICS_FILL( vrelw,'EXFvrelw',0,1,3,bi,bj,myThid ) + ENDIF +#endif + ENDIF + #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uwind (:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE vwind (:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE urelw (:,:) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE vrelw (:,:) = comlev1_bibj, key=ikey, byte=isbyte CADJ STORE wspeed(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte #endif @@ -110,12 +129,12 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) C-- Wind speed and direction. DO j = 1,sNy DO i = 1,sNx - wsSq = uwind(i,j,bi,bj)*uwind(i,j,bi,bj) - & + vwind(i,j,bi,bj)*vwind(i,j,bi,bj) + wsSq = urelw(i,j)*urelw(i,j) + & + vrelw(i,j)*vrelw(i,j) IF ( wsSq .NE. 0. _d 0 ) THEN wsLoc(i,j) = SQRT(wsSq) - cw(i,j,bi,bj) = uwind(i,j,bi,bj)/wsLoc(i,j) - sw(i,j,bi,bj) = vwind(i,j,bi,bj)/wsLoc(i,j) + cw(i,j,bi,bj) = urelw(i,j)/wsLoc(i,j) + sw(i,j,bi,bj) = vrelw(i,j)/wsLoc(i,j) ELSE wsLoc(i,j) = 0. _d 0 cw(i,j,bi,bj) = 0. _d 0 @@ -173,7 +192,7 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) recip_sqrtRhoA = 1. _d 0 / SQRT(atmrho) DO j = 1,sNy DO i = 1,sNx -C check for zero wStress to please AD tools +C check for zero wStress to please AD tools IF ( wStress(i,j,bi,bj) .LE. 0. _d 0 ) THEN ustar = 0. _d 0 wsloc(i,j) = 0. _d 0 @@ -259,12 +278,22 @@ SUBROUTINE EXF_WIND( myTime, myIter, myThid ) DO j = 1,sNy DO i = 1,sNx wsm = sh(i,j,bi,bj) +# ifdef ALLOW_DRAG_LARGEYEAGER09 +C Large and Yeager (2009), Climate Dynamics, equation 11a/b + tmpbulk = cdrag_1/wsm + cdrag_2 + cdrag_3*wsm + & + cdrag_8 * wsm**6 + tmpbulk = exf_scal_BulkCdn * ( + & ( halfRL - SIGN(halfRL, wsm-umax) )*tmpbulk + & + ( halfRL + SIGN(halfRL, wsm-umax) )*cdragMax + & ) +# else tmpbulk = exf_scal_BulkCdn & * ( cdrag_1/wsm + cdrag_2 + cdrag_3*wsm ) +# endif ustress(i,j,bi,bj) = atmrho*tmpbulk*wspeed(i,j,bi,bj) - & * uwind(i,j,bi,bj) + & * urelw(i,j) vstress(i,j,bi,bj) = atmrho*tmpbulk*wspeed(i,j,bi,bj) - & * vwind(i,j,bi,bj) + & * vrelw(i,j) ENDDO ENDDO c#else /* ALLOW_ATM_WIND */ diff --git a/pkg/fizhi/FIZHI_OPTIONS.h b/pkg/fizhi/FIZHI_OPTIONS.h index 1778821f9d..6feaf97c1c 100644 --- a/pkg/fizhi/FIZHI_OPTIONS.h +++ b/pkg/fizhi/FIZHI_OPTIONS.h @@ -12,6 +12,11 @@ C use fixed day in the year: C use new version of S/R GETPWHERE #define TRY_NEW_GETPWHERE +C Compiler and Processor specific code +#undef FIZHI_F77_COMPIL +#undef FIZHI_CRAY +#undef FIZHI_SGI + #endif /* ALLOW_FIZHI */ #endif /* FIZHI_OPTIONS_H */ diff --git a/pkg/fizhi/fizhi_init_vegsurftiles.F b/pkg/fizhi/fizhi_init_vegsurftiles.F index ac4f853a94..7c312ad120 100644 --- a/pkg/fizhi/fizhi_init_vegsurftiles.F +++ b/pkg/fizhi/fizhi_init_vegsurftiles.F @@ -38,7 +38,7 @@ subroutine fizhi_init_vegsurftiles(globalArr,xsize,ysize, INTEGER MDS_RECLEN CEOP C !LOCAL VARIABLES: - CHARACTER*80 fn + CHARACTER(MAX_LEN_FNAM) fn integer ihour integer i,j,n integer bislot,bjslot,iunit diff --git a/pkg/fizhi/fizhi_moist.F b/pkg/fizhi/fizhi_moist.F index eb300f17ab..9ae7288e9b 100644 --- a/pkg/fizhi/fizhi_moist.F +++ b/pkg/fizhi/fizhi_moist.F @@ -238,7 +238,6 @@ subroutine moistio (ndmoist,istrip,npcs, enddo enddo - C Set up the array of indeces of subcloud levels for the gathering C ---------------------------------------------------------------- indx = 0 @@ -604,7 +603,6 @@ subroutine moistio (ndmoist,istrip,npcs, endif enddo - C End of subcloud layer depth loop (iloop) num = num+nindeces(nsubcl) @@ -831,7 +829,6 @@ subroutine moistio (ndmoist,istrip,npcs, enddo enddo - endif C ********************************************************************** @@ -1064,7 +1061,6 @@ subroutine moistio (ndmoist,istrip,npcs, cldlsp_lw(i,j,L) = (nlwcld*cldlsp_lw(i,j,L) + cldlsp)/(nlwcld+1) cldras_lw(i,j,L) = (nlwcld*cldras_lw(i,j,L) + cldras)/(nlwcld+1) - C Compute Time-averaged Cloud and Water Amounts for Shortwave Radiation C --------------------------------------------------------------------- watnow = cldwater(i,j,L) @@ -1087,7 +1083,6 @@ subroutine moistio (ndmoist,istrip,npcs, cldlsp_sw(i,j,L) = (nswcld*cldlsp_sw(i,j,L) + cldlsp)/(nswcld+1) cldras_sw(i,j,L) = (nswcld*cldras_sw(i,j,L) + cldras)/(nswcld+1) - C Compute Instantaneous Low-Mid-High Maximum Overlap Cloud Fractions C ---------------------------------------------------------------------- @@ -1117,7 +1112,6 @@ subroutine moistio (ndmoist,istrip,npcs, enddo enddo - C ********************************************************************** C *** Fill Cloud Top Pressure and Temperature Diagnostic *** C ********************************************************************** @@ -1459,11 +1453,11 @@ function random_numbx(iseed) integer iseed real *8 seed,port_rand _RL random_numbx -#ifdef CRAY +#ifdef FIZHI_CRAY _RL ranf random_numbx = ranf() #else -#ifdef SGI +#ifdef FIZHI_SGI _RL rand random_numbx = rand() #else @@ -1477,10 +1471,10 @@ subroutine random_seedx (iseed) implicit none integer iseed real *8 port_rand -#ifdef CRAY +#ifdef FIZHI_CRAY call ranset (iseed) #else -#ifdef SGI +#ifdef FIZHI_SGI integer*4 seed seed = iseed call srand (seed) @@ -1541,7 +1535,7 @@ SUBROUTINE CLOUD(nn,lng, LENC, K, NLTOP, nlayr, IC, RASALF C RAS works on the first LENC of the lng soundings C passed. This allows working on pieces of the world C say for multitasking, without declaring temporary arrays -C and copying the data to and from them. This is an f77 +C and copying the data to and from them. This is a F77 C version. An F90 version would have to allow more C flexibility in the argument declarations. Obviously C (LENC<=lng). @@ -1661,8 +1655,8 @@ SUBROUTINE CLOUD(nn,lng, LENC, K, NLTOP, nlayr, IC, RASALF C Explicit Inline Directives C -------------------------- -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (qsat) #endif #endif @@ -1749,7 +1743,6 @@ SUBROUTINE CLOUD(nn,lng, LENC, K, NLTOP, nlayr, IC, RASALF 3703 CONTINUE ENDIF - DO 70 I=1,LENC HOL(I,IC) = TX2(I) QS1(I) = ALF(I,IC) + BET(I,IC)*POI(I,IC) @@ -2337,7 +2330,6 @@ SUBROUTINE ACRITN ( lng,PL,PLB,ACR ) . .25574, .20347, .17254, .15260, .16756, . .09916, .10360, .05880/ - do L=1,lma-1 do i=1,lng if( pl(i).ge.p(L) .and. @@ -2405,8 +2397,8 @@ SUBROUTINE RNEVP(NN,IRUN,NLAY,TL,QL,RAIN,PL,CLFRAC,SP,DP,PLKE, C Explicit Inline Directives C -------------------------- -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (qsat) #endif #endif @@ -2628,8 +2620,8 @@ subroutine srclouds (th,q,plk,pl,plke,cloud,cldwat,irun,irise, C Explicit Inline Directives C -------------------------- -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (qsat) #endif #endif diff --git a/pkg/fizhi/fizhi_readwrite_vegtiles.F b/pkg/fizhi/fizhi_readwrite_vegtiles.F index f0be3dbf75..a720d796a3 100644 --- a/pkg/fizhi/fizhi_readwrite_vegtiles.F +++ b/pkg/fizhi/fizhi_readwrite_vegtiles.F @@ -40,7 +40,7 @@ SUBROUTINE FIZHI_WRITE_VEGTILES(fn,pickupflg,myTime,myIter,myThid) C !LOCAL VARIABLES: CHARACTER*1 prec CHARACTER*80 bnam - character*(80) dataFName + character*(MAX_LEN_FNAM) dataFName integer ilst integer i,k,n integer ig,jg,tn,iunit @@ -118,7 +118,7 @@ SUBROUTINE FIZHI_WRITE_VEGTILES(fn,pickupflg,myTime,myIter,myThid) tn = (jG - 1)*(nPx*nSx) + iG #endif /* ALLOW_EXCH2 */ - write(dataFname(1:80),'(a,2a,i3.3,a,i3.3,a)') + write(dataFname,'(a,2a,i3.3,a,i3.3,a)') & 'pickup_vegtiles.',fn(1:ilst),'.',iG,'.',jG,'.data' open( iUnit, file=dataFName, status='unknown', & access='direct', recl=length_of_rec ) @@ -313,7 +313,7 @@ SUBROUTINE FIZHI_READ_VEGTILES(Iter,prec,myThid) CHARACTER*80 fn CHARACTER*80 bnam integer ilst - character*(80) dataFName + character*(MAX_LEN_FNAM) dataFName integer i,k,n integer ig,jg,tn,iunit integer length_of_rec @@ -373,9 +373,9 @@ SUBROUTINE FIZHI_READ_VEGTILES(Iter,prec,myThid) tn = (jG - 1)*(nPx*nSx) + iG #endif /* ALLOW_EXCH2 */ - write(dataFname(1:80),'(2a,i3.3,a,i3.3,a)') + write(dataFname,'(2a,i3.3,a,i3.3,a)') & fn(1:ilst),'.',iG,'.',jG,'.data' - print *,' Opening ',dataFName + print *,' Opening ',dataFName(1:ilst+13) open( iUnit, file=dataFName, status='old', & access='direct', recl=length_of_rec ) diff --git a/pkg/fizhi/fizhi_swrad.F b/pkg/fizhi/fizhi_swrad.F index 156d88f211..5bd67b9f81 100644 --- a/pkg/fizhi/fizhi_swrad.F +++ b/pkg/fizhi/fizhi_swrad.F @@ -756,8 +756,8 @@ subroutine sorad(m,n,ndim,np,pl,ta,wa,oa,co2, c-----Explicit Inline Directives -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (expmn) #endif #endif @@ -803,7 +803,6 @@ subroutine sorad(m,n,ndim,np,pl,ta,wa,oa,co2, enddo enddo - do k= 1, np do j= 1, n do i= 1, m @@ -829,7 +828,6 @@ subroutine sorad(m,n,ndim,np,pl,ta,wa,oa,co2, enddo enddo - c-----scale cloud optical thickness in each layer from taucld (with c cloud amount fcld) to tauclb and tauclf (with cloud amount cc). c tauclb is the scaled optical thickness for beam radiation and @@ -1021,7 +1019,6 @@ subroutine cldscale (m,n,ndim,np,cosz,fcld,taucld,ict,icb, #include "cai-dat.h" save caib,caif - c-----clouds within each of the high, middle, and low clouds are c assumed maximally overlapped, and the cloud cover (cc) c for a group is the maximum cloud cover of all the layers @@ -1216,8 +1213,8 @@ subroutine solir (m,n,ndim,np,wh,taucld,tauclb,tauclf,reff, c-----Explicit Inline Directives -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (deledd) cfpp$ expand (sagpol) cfpp$ expand (expmn) @@ -1640,8 +1637,8 @@ subroutine soluv (m,n,ndim,np,oh,dp,taucld,tauclb,tauclf,reff, c-----Explicit Inline Directives -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (deledd) cfpp$ expand (sagpol) #endif @@ -1969,8 +1966,8 @@ subroutine deledd(tau,ssc,g0,csm,rr,tt,td) c-----Explicit Inline Directives -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (expmn) #endif #endif @@ -2093,8 +2090,8 @@ subroutine sagpol(tau,ssc,g0,rll,tll) c-----Explicit Inline Directives -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (expmn) #endif #endif diff --git a/pkg/fizhi/fizhi_turb.F b/pkg/fizhi/fizhi_turb.F index 3fa9eaf539..2e7a94640f 100644 --- a/pkg/fizhi/fizhi_turb.F +++ b/pkg/fizhi/fizhi_turb.F @@ -256,8 +256,8 @@ SUBROUTINE TURBIO (im,jm,nlay,istrip,nymd,nhms,bi,bj, qbeg nmonf(n) = mod(n,10000)/100 ndayf(n) = mod(n,100) -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (qsat) #endif #endif @@ -1795,7 +1795,6 @@ SUBROUTINE TRBFLX (NN,TH,THV,SH,U,V,QQ,PL,PLE,PLK,PLKE,DPSTR, ENDDO ENDDO - C NEW CODE FOR MOIST BOUNDARY LAYER - NEW CALCULATION OF DTHV IF(ITER.EQ.1) THEN @@ -3219,7 +3218,7 @@ SUBROUTINE PSI(VZZ,VZH,VPSIM,VPSIH,IRUN,VX,VXS,VY,VYS,IFLAG) 9014 CONTINUE IF(IBIT.LE.0) GO TO 300 indx = 0 -#ifdef CRAY +#ifdef FIZHI_CRAY CDIR$ NOVECTOR #endif DO 9016 I = 1,IRUN @@ -3230,7 +3229,7 @@ SUBROUTINE PSI(VZZ,VZH,VPSIM,VPSIH,IRUN,VX,VXS,VY,VYS,IFLAG) ARG1(indx) = VZH(I) ENDIF 9016 CONTINUE -#ifdef CRAY +#ifdef FIZHI_CRAY CDIR$ VECTOR #endif diff --git a/pkg/fizhi/fizhi_utils.F b/pkg/fizhi/fizhi_utils.F index 778f6e029b..9c3b5d8097 100644 --- a/pkg/fizhi/fizhi_utils.F +++ b/pkg/fizhi/fizhi_utils.F @@ -242,7 +242,6 @@ SUBROUTINE QSAT (TT,P,Q,DQDT,LDQDT) parameter ( bw5 = +3.532421810e-10 * esfac ) parameter ( bw6 = -7.090244804e-13 * esfac ) - c ******************************************************** c *** Polynomial Coefficients WRT Ice (Lowe, 1977) **** c *** (Valid +0 C to -50 C) **** @@ -264,13 +263,11 @@ SUBROUTINE QSAT (TT,P,Q,DQDT,LDQDT) parameter ( bi5 = +2.158542548e-09 * esfac ) parameter ( bi6 = +7.131097725e-12 * esfac ) - c ******************************************************** c *** Polynomial Coefficients WRT Ice **** c *** Starr and Cox (1985) (Valid -40 C to -70 C) **** c ******************************************************** - parameter ( d0 = 0.535098336e+01 * esfac ) parameter ( d1 = 0.401390832e+00 * esfac ) parameter ( d2 = 0.129690326e-01 * esfac ) @@ -287,7 +284,6 @@ SUBROUTINE QSAT (TT,P,Q,DQDT,LDQDT) parameter ( e5 = 0.916466531e-09 * esfac ) parameter ( e6 = 0.210844486e-11 * esfac ) - c ******************************************************** c *** Polynomial Coefficients WRT Ice **** c *** Starr and Cox (1985) (Valid -65 C to -95 C) **** @@ -374,8 +370,8 @@ subroutine vqsat (tt,p,q,dqdt,ldqdt,n) integer i,n logical ldqdt _RL tt(n), p(n), q(n), dqdt(n) -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (qsat) #endif #endif @@ -475,7 +471,6 @@ subroutine pstbitint(b,a,ib,ia,irun,l,k) return end - subroutine pstbmpit(b,a,ib,ia,irun,l,k) implicit none integer ib,ia,L,k,irun,Lena,offset @@ -741,7 +736,6 @@ subroutine chpprm(nymd,nhms,mxchps,nchp,chlt,ityp,alai, & vgroca(ntyps), vgrotd(ntyps), & vgrdrs(ntyps), vgz2 (ntyps) - data vgz0 / 1 2.6530, 2.6530, 2.6530, 2.6530, 2.6530, 2.6530, 2.6530, 1 2.6530, 2.6530, 2.6530, 2.6530, 2.6530, @@ -765,7 +759,6 @@ subroutine chpprm(nymd,nhms,mxchps,nchp,chlt,ityp,alai, 1 0.0112, 0.0112, 0.0112, 0.0112, 0.0112 & / - data vgrd / 1 285.87, 285.87, 285.87, 285.87, 285.87, 285.87, 285.87, 1 285.87, 285.87, 285.87, 285.87, 285.87, @@ -812,7 +805,6 @@ subroutine chpprm(nymd,nhms,mxchps,nchp,chlt,ityp,alai, 1 1.0, 1.0, 1.0, 1.0, 1.0 & / - data vgdd / 1 27.37, 27.37, 27.37, 27.37, 27.37, 27.37, 27.37, 1 27.37, 27.37, 27.37, 27.37, 27.37, @@ -836,7 +828,6 @@ subroutine chpprm(nymd,nhms,mxchps,nchp,chlt,ityp,alai, 1 0.0001, 0.0001, 0.0001, 0.0001, 0.0001 & / - data vgrf11 /0.10,0.10,0.07,0.105,0.10,0.10,.001,.001,.001,.001/ data vgrf12 /0.16,0.16,0.16,0.360,0.16,0.16,.001,.001,.001,.001/ diff --git a/pkg/fizhi/update_earth_exports.F b/pkg/fizhi/update_earth_exports.F index a858ca8671..67b929a339 100644 --- a/pkg/fizhi/update_earth_exports.F +++ b/pkg/fizhi/update_earth_exports.F @@ -548,7 +548,6 @@ SUBROUTINE SIBALB ( AVISDR, ANIRDR, AVISDF, ANIRDF, & 0.2547, 0.2548, 5*0.2549 & / - DATA (BTIDR (I, 1, 7), I = 1, 14) /14*0./ DATA (BTIDR (I, 2, 7), I = 1, 14) /14*0./ @@ -643,8 +642,8 @@ SUBROUTINE SIBALB ( AVISDR, ANIRDR, AVISDF, ANIRDF, & .65, .38, .65, .38 & / -#ifdef CRAY -#ifdef f77 +#ifdef FIZHI_CRAY +#ifdef FIZHI_F77_COMPIL cfpp$ expand (coeff) #endif #endif diff --git a/pkg/flt/data.flt b/pkg/flt/data.flt deleted file mode 100644 index c895f9409a..0000000000 --- a/pkg/flt/data.flt +++ /dev/null @@ -1,11 +0,0 @@ -# -# ********************* -# Float Namelist -# ********************* - &FLT_NML - flt_int_traj = 3600., - flt_int_prof = 432000., - flt_noise = 0.0, - flt_file = 'float_pos', - / - diff --git a/pkg/gchem/gchem_ad_check_lev1_dir.h b/pkg/gchem/gchem_ad_check_lev1_dir.h deleted file mode 100644 index eac84a7fbf..0000000000 --- a/pkg/gchem/gchem_ad_check_lev1_dir.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef GCHEM_ADD2TR_TENDENCY -CADJ STORE gchemTendency = comlev1, key = ikey_dynamics -#endif /* GCHEM_ADD2TR_TENDENCY */ diff --git a/pkg/gchem/gchem_ad_check_lev2_dir.h b/pkg/gchem/gchem_ad_check_lev2_dir.h deleted file mode 100644 index f8726e5bb7..0000000000 --- a/pkg/gchem/gchem_ad_check_lev2_dir.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef GCHEM_ADD2TR_TENDENCY -CADJ STORE gchemTendency = tapelev2, key = ilev_2 -#endif /* GCHEM_ADD2TR_TENDENCY */ diff --git a/pkg/gchem/gchem_ad_check_lev3_dir.h b/pkg/gchem/gchem_ad_check_lev3_dir.h deleted file mode 100644 index 4c518d828a..0000000000 --- a/pkg/gchem/gchem_ad_check_lev3_dir.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef GCHEM_ADD2TR_TENDENCY -CADJ STORE gchemTendency = tapelev3, key = ilev_3 -#endif /* GCHEM_ADD2TR_TENDENCY */ diff --git a/pkg/gchem/gchem_ad_check_lev4_dir.h b/pkg/gchem/gchem_ad_check_lev4_dir.h deleted file mode 100644 index 995142be92..0000000000 --- a/pkg/gchem/gchem_ad_check_lev4_dir.h +++ /dev/null @@ -1,3 +0,0 @@ -#ifdef GCHEM_ADD2TR_TENDENCY -CADJ STORE gchemTendency = tapelev4, key = ilev_4 -#endif /* GCHEM_ADD2TR_TENDENCY */ diff --git a/pkg/gchem/gchem_calc_tendency.F b/pkg/gchem/gchem_calc_tendency.F index 4d08711103..a9ea0dc676 100644 --- a/pkg/gchem/gchem_calc_tendency.F +++ b/pkg/gchem/gchem_calc_tendency.F @@ -69,7 +69,10 @@ SUBROUTINE GCHEM_CALC_TENDENCY( ENDDO ENDDO ENDDO -C + +#ifdef ALLOW_AUTODIFF + IF ( useGCHEM ) THEN +#endif C Here is the place for code to compute bio-geochemical C tendency terms (sometimes referred to as source-minus-sink C terms). The tendencies are stored on gchemTendency, as show @@ -126,6 +129,9 @@ SUBROUTINE GCHEM_CALC_TENDENCY( C end of tile-loops ENDDO ENDDO +#ifdef ALLOW_AUTODIFF + ENDIF +#endif #endif /* GCHEM_ADD2TR_TENDENCY */ RETURN diff --git a/pkg/gchem/gchem_check.F b/pkg/gchem/gchem_check.F index 267f4535a1..d4ced887dc 100644 --- a/pkg/gchem/gchem_check.F +++ b/pkg/gchem/gchem_check.F @@ -138,7 +138,7 @@ SUBROUTINE GCHEM_CHECK( myThid ) IF ( errCount.GE.1 ) THEN WRITE(msgBuf,'(A,I3,A)') - & 'GCEHM_CHECK: detected', errCount,' fatal error(s)' + & 'GCHEM_CHECK: detected', errCount,' fatal error(s)' CALL PRINT_ERROR( msgBuf, myThid ) CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R GCHEM_CHECK' diff --git a/pkg/gchem/gchem_diagnostics_init.F b/pkg/gchem/gchem_diagnostics_init.F index 6f3b151035..b719144566 100644 --- a/pkg/gchem/gchem_diagnostics_init.F +++ b/pkg/gchem/gchem_diagnostics_init.F @@ -45,7 +45,7 @@ SUBROUTINE GCHEM_DIAGNOSTICS_INIT( myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Define diagnostics Names : - DO iTrc=1,gchem_sepFTr_num + DO iTrc=1,MIN( gchem_sepFTr_num, PTRACERS_num ) C- Set default name & tracer Units: WRITE(locName,'(A,I4.4,A)') 'Tracer ',iTrc trcUnits = '(kg/kg)' diff --git a/pkg/gchem/gchem_fields_load.F b/pkg/gchem/gchem_fields_load.F index a0f1874fbb..2aa84d99d6 100644 --- a/pkg/gchem/gchem_fields_load.F +++ b/pkg/gchem/gchem_fields_load.F @@ -5,7 +5,7 @@ C !INTERFACE: ========================================================== SUBROUTINE GCHEM_FIELDS_LOAD ( - I myTime, myIter, myThid) + I myTime, myIter, myThid ) C !DESCRIPTION: C calls routines which read in fields needed for any tracer experiment @@ -32,7 +32,7 @@ SUBROUTINE GCHEM_FIELDS_LOAD ( cccccccccccccccccccccccccc #ifdef ALLOW_DIC IF ( useDIC ) THEN - CALL DIC_FIELDS_LOAD (myIter,myTime,myThid) + CALL DIC_FIELDS_LOAD( myTime, myIter, myThid ) ENDIF #endif diff --git a/pkg/gchem/gchem_forcing_sep.F b/pkg/gchem/gchem_forcing_sep.F index a2989645f6..40b84ebcb7 100644 --- a/pkg/gchem/gchem_forcing_sep.F +++ b/pkg/gchem/gchem_forcing_sep.F @@ -100,7 +100,6 @@ SUBROUTINE GCHEM_FORCING_SEP( myTime, myIter, myThid ) CALL GCHEM_SURFMEAN(salt,gsm_s,myThid) CALL GCHEM_SURFMEAN( & pTracer(1-OLx,1-OLy,1,1,1,1), gsm_dic, myThid ) - print*,'mean surface dic', gsm_dic,gsm_s CALL GCHEM_SURFMEAN( & pTracer(1-OLx,1-OLy,1,1,1,2), gsm_alk, myThid ) # ifndef ALLOW_AUTODIFF @@ -116,7 +115,6 @@ SUBROUTINE GCHEM_FORCING_SEP( myTime, myIter, myThid ) CALL GCHEM_SURFMEAN(salt,gsm_s,myThid) CALL GCHEM_SURFMEAN( & pTracer(1-OLx,1-OLy,1,1,1,iDIC), gsm_dic, myThid ) - print*,'mean surface dic', gsm_dic,gsm_s CALL GCHEM_SURFMEAN( & pTracer(1-OLx,1-OLy,1,1,1,iALK), gsm_alk, myThid ) c ENDIF @@ -156,7 +154,7 @@ SUBROUTINE GCHEM_FORCING_SEP( myTime, myIter, myThid ) & pTracer(1-OLx,1-OLy,1,bi,bj,5), & pTracer(1-OLx,1-OLy,1,bi,bj,6), & bi, bj, iMin, iMax, jMin, jMax, - & myIter, myTime, myThid ) + & myTime, myIter, myThid ) #else #ifdef ALLOW_O2 CALL DIC_BIOTIC_FORCING( pTracer(1-OLx,1-OLy,1,bi,bj,1), @@ -165,14 +163,14 @@ SUBROUTINE GCHEM_FORCING_SEP( myTime, myIter, myThid ) & pTracer(1-OLx,1-OLy,1,bi,bj,4), & pTracer(1-OLx,1-OLy,1,bi,bj,5), & bi, bj, iMin, iMax, jMin, jMax, - & myIter, myTime, myThid ) + & myTime, myIter, myThid ) #else CALL DIC_BIOTIC_FORCING( pTracer(1-OLx,1-OLy,1,bi,bj,1), & pTracer(1-OLx,1-OLy,1,bi,bj,2), & pTracer(1-OLx,1-OLy,1,bi,bj,3), & pTracer(1-OLx,1-OLy,1,bi,bj,4), & bi, bj, iMin, iMax, jMin, jMax, - & myIter, myTime, myThid ) + & myTime, myIter, myThid ) #endif #endif # ifndef ALLOW_AUTODIFF diff --git a/pkg/generic_advdiff/gad_advection.F b/pkg/generic_advdiff/gad_advection.F index 3b46f8b787..9f5eeb053d 100644 --- a/pkg/generic_advdiff/gad_advection.F +++ b/pkg/generic_advdiff/gad_advection.F @@ -9,7 +9,7 @@ C !INTERFACE: ========================================================== SUBROUTINE GAD_ADVECTION( - I implicitAdvection, advectionScheme, vertAdvecScheme, + I implicitAdvection, advectionSchArg, vertAdvecSchArg, I trIdentity, deltaTLev, I uFld, vFld, wFld, tracer, O gTracer, @@ -42,8 +42,10 @@ SUBROUTINE GAD_ADVECTION( #include "GRID.h" #include "GAD.h" #ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" +# include "AUTODIFF_PARAMS.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # endif @@ -55,8 +57,8 @@ SUBROUTINE GAD_ADVECTION( C !INPUT PARAMETERS: =================================================== C implicitAdvection :: implicit vertical advection (later on) -C advectionScheme :: advection scheme to use (Horizontal plane) -C vertAdvecScheme :: advection scheme to use (vertical direction) +C advectionSchArg :: advection scheme to use (Horizontal plane) +C vertAdvecSchArg :: advection scheme to use (vertical direction) C trIdentity :: tracer identifier C uFld :: Advection velocity field, zonal component C vFld :: Advection velocity field, meridional component @@ -67,7 +69,7 @@ SUBROUTINE GAD_ADVECTION( C myIter :: iteration number C myThid :: thread number LOGICAL implicitAdvection - INTEGER advectionScheme, vertAdvecScheme + INTEGER advectionSchArg, vertAdvecSchArg INTEGER trIdentity _RL deltaTLev(Nr) _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -83,6 +85,9 @@ SUBROUTINE GAD_ADVECTION( C gTracer :: tendency array _RL gTracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef DISABLE_MULTIDIM_ADVECTION + STOP 'GAD_ADVECTION is empty with DISABLE_MULTIDIM_ADVECTION' +#else /* DISABLE_MULTIDIM_ADVECTION */ C !FUNCTIONS: ========================================================== #ifdef ALLOW_DIAGNOSTICS CHARACTER*4 GAD_DIAG_SUFX @@ -100,6 +105,8 @@ SUBROUTINE GAD_ADVECTION( C i,j,k :: loop indices C kUp :: index into 2 1/2D array, toggles between 1 and 2 C kDown :: index into 2 1/2D array, toggles between 2 and 1 +C advectionScheme:: local copy of routine argument advectionSchArg +C vertAdvecScheme:: local copy of routine argument vertAdvecSchArg C xA,yA :: areas of X and Y face of tracer cells C uTrans,vTrans :: 2-D arrays of volume transports at U,V points C rTrans :: 2-D arrays of volume transports at W points @@ -128,14 +135,18 @@ SUBROUTINE GAD_ADVECTION( _RS maskLocS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER iMinUpd,iMaxUpd,jMinUpd,jMaxUpd INTEGER i,j,k,kUp,kDown + INTEGER advectionScheme, vertAdvecScheme _RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL uTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rTrans (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rTransKp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifndef ALLOW_AUTODIFF + LOGICAL usePPMvertAdv, usePQMvertAdv _RL rTran3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL afr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#endif _RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL afx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL afy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -155,7 +166,13 @@ SUBROUTINE GAD_ADVECTION( LOGICAL N_edge, S_edge, E_edge, W_edge #ifdef ALLOW_AUTODIFF_TAMC C msgBuf :: Informational/error message buffer +C dkey :: tape key (direction dependent) CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER dkey +# ifdef GAD_MULTIDIM_COMPRESSIBLE +C ijkey :: tape key (depends on indices i,j, and direction) + INTEGER ijkey +# endif #endif #ifdef ALLOW_EXCH2 INTEGER myTile @@ -167,28 +184,21 @@ SUBROUTINE GAD_ADVECTION( #endif /* ALLOW_DIAGNOSTICS */ CEOP +C make local copies to be tampered with if necessary + advectionScheme = advectionSchArg + vertAdvecScheme = vertAdvecSchArg #ifdef ALLOW_AUTODIFF_TAMC - act0 = trIdentity - max0 = maxpass - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igadkey = act0 - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - IF (trIdentity.GT.maxpass) THEN - WRITE(msgBuf,'(A,2I3)') - & 'GAD_ADVECTION: maxpass < trIdentity ', - & maxpass, trIdentity - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GAD_ADVECTION' - ENDIF + IF ( inAdMode .AND. useApproxAdvectionInAdMode ) THEN +C In AD-mode, we change non-linear, potentially unstable AD advection +C schemes to linear schemes with more stability. So far only DST3 with +C flux limiting is replaced by DST3 without flux limiting, but any +C combination is possible. + IF ( advectionSchArg.EQ.ENUM_DST3_FLUX_LIMIT ) + & advectionScheme = ENUM_DST3 + IF ( vertAdvecSchArg.EQ.ENUM_DST3_FLUX_LIMIT ) + & vertAdvecScheme = ENUM_DST3 +C here is room for more advection schemes as this becomes necessary + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_DIAGNOSTICS @@ -197,13 +207,13 @@ SUBROUTINE GAD_ADVECTION( doDiagAdvY = .FALSE. doDiagAdvR = .FALSE. IF ( useDiagnostics ) THEN - diagSufx = GAD_DIAG_SUFX( trIdentity, myThid ) - diagName = 'ADVx'//diagSufx - doDiagAdvX = DIAGNOSTICS_IS_ON( diagName, myThid ) - diagName = 'ADVy'//diagSufx - doDiagAdvY = DIAGNOSTICS_IS_ON( diagName, myThid ) - diagName = 'ADVr'//diagSufx - doDiagAdvR = DIAGNOSTICS_IS_ON( diagName, myThid ) + diagSufx = GAD_DIAG_SUFX( trIdentity, myThid ) + diagName = 'ADVx'//diagSufx + doDiagAdvX = DIAGNOSTICS_IS_ON( diagName, myThid ) + diagName = 'ADVy'//diagSufx + doDiagAdvY = DIAGNOSTICS_IS_ON( diagName, myThid ) + diagName = 'ADVr'//diagSufx + doDiagAdvR = DIAGNOSTICS_IS_ON( diagName, myThid ) ENDIF #endif /* ALLOW_DIAGNOSTICS */ @@ -238,9 +248,6 @@ SUBROUTINE GAD_ADVECTION( C-- Set tile-specific parameters for horizontal fluxes IF (useCubedSphereExchange) THEN npass = 3 -#ifdef ALLOW_AUTODIFF_TAMC - IF ( npass.GT.maxcube ) STOP 'maxcube needs to be = 3' -#endif #ifdef ALLOW_EXCH2 myTile = W2_myTileList(bi,bj) nCFace = exch2_myFace(myTile) @@ -264,35 +271,47 @@ SUBROUTINE GAD_ADVECTION( W_edge = .FALSE. ENDIF +#ifdef ALLOW_AUTODIFF_TAMC + IF ( npass.GT.maxcube ) THEN + WRITE(msgBuf,'(A,2(I3,A))') 'S/R GAD_ADVECTION: npass =', + & npass, ' >', maxcube, ' = maxcube, ==> check "tamc.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GAD_ADVECTION' + ENDIF +C Define local tapes. Using local tapes makes it necessary to recompute +C the forward routine (once) in AD-mode, but saves a lot of memory. +CADJ INIT loctape_gad_adv = COMMON, 1 +CADJ INIT loctape_gad_adv_k = COMMON, Nr +CADJ INIT loctape_gad_adv_k_pass = COMMON, maxcube*Nr +# ifdef GAD_MULTIDIM_COMPRESSIBLE +CADJ INIT loctape_gad_adv_ijk_pass +CADJ & = COMMON, maxcube*Nr*(sNx+2*OLx)*nSx*(sNy+2*OLy)*nSy +# endif +#endif C-- Start of k loop for horizontal fluxes DO k=1,Nr -#ifdef ALLOW_AUTODIFF_TAMC - kkey = (igadkey-1)*Nr + k -CADJ STORE tracer(:,:,k,bi,bj) = -CADJ & comlev1_bibj_k_gad, key=kkey, kind=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ C-- Get temporary terms used by tendency routines - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx xA(i,j) = _dyG(i,j,bi,bj)*deepFacC(k) & *drF(k)*_hFacW(i,j,k,bi,bj) yA(i,j) = _dxG(i,j,bi,bj)*deepFacC(k) & *drF(k)*_hFacS(i,j,k,bi,bj) + ENDDO ENDDO - ENDDO C-- Calculate "volume transports" through tracer cell faces. C anelastic: scaled by rhoFacC (~ mass transport) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx uTrans(i,j) = uFld(i,j,k)*xA(i,j)*rhoFacC(k) vTrans(i,j) = vFld(i,j,k)*yA(i,j)*rhoFacC(k) + ENDDO ENDDO - ENDDO C-- Make local copy of tracer array and mask West & South - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx localTij(i,j) = tracer(i,j,k,bi,bj) #ifdef GAD_MULTIDIM_COMPRESSIBLE localVol(i,j) = rA(i,j,bi,bj)*deepFac2C(k) @@ -306,51 +325,46 @@ SUBROUTINE GAD_ADVECTION( maskLocW(i,j) = _maskW(i,j,k,bi,bj) maskLocS(i,j) = _maskS(i,j,k,bi,bj) #endif /* ALLOW_OBCS */ + ENDDO ENDDO - ENDDO - IF (useCubedSphereExchange) THEN + IF (useCubedSphereExchange) THEN withSigns = .FALSE. CALL FILL_CS_CORNER_UV_RS( & withSigns, maskLocW,maskLocS, bi,bj, myThid ) - ENDIF + ENDIF C-- Multiple passes for different directions on different tiles C-- For cube need one pass for each of red, green and blue axes. - DO ipass=1,npass + DO ipass=1,npass #ifdef ALLOW_AUTODIFF_TAMC - passkey = ipass - & + (k-1) *maxpass - & + (igadkey-1)*maxpass*Nr - IF (npass .GT. maxpass) THEN - STOP 'GAD_ADVECTION: npass > maxcube. check tamc.h' - ENDIF -#endif /* ALLOW_AUTODIFF_TAMC */ + dkey = ipass + (k-1) * maxcube +#endif - interiorOnly = .FALSE. - overlapOnly = .FALSE. - IF (useCubedSphereExchange) THEN + interiorOnly = .FALSE. + overlapOnly = .FALSE. + IF (useCubedSphereExchange) THEN C- CubedSphere : pass 3 times, with partial update of local tracer field - IF (ipass.EQ.1) THEN - overlapOnly = MOD(nCFace,3).EQ.0 - interiorOnly = MOD(nCFace,3).NE.0 - calc_fluxes_X = nCFace.EQ.6 .OR. nCFace.EQ.1 .OR. nCFace.EQ.2 - calc_fluxes_Y = nCFace.EQ.3 .OR. nCFace.EQ.4 .OR. nCFace.EQ.5 - ELSEIF (ipass.EQ.2) THEN - overlapOnly = MOD(nCFace,3).EQ.2 - interiorOnly = MOD(nCFace,3).EQ.1 - calc_fluxes_X = nCFace.EQ.2 .OR. nCFace.EQ.3 .OR. nCFace.EQ.4 - calc_fluxes_Y = nCFace.EQ.5 .OR. nCFace.EQ.6 .OR. nCFace.EQ.1 - ELSE - interiorOnly = .TRUE. - calc_fluxes_X = nCFace.EQ.5 .OR. nCFace.EQ.6 - calc_fluxes_Y = nCFace.EQ.2 .OR. nCFace.EQ.3 - ENDIF - ELSE + IF (ipass.EQ.1) THEN + overlapOnly = MOD(nCFace,3).EQ.0 + interiorOnly = MOD(nCFace,3).NE.0 + calc_fluxes_X = nCFace.EQ.6 .OR. nCFace.EQ.1 .OR. nCFace.EQ.2 + calc_fluxes_Y = nCFace.EQ.3 .OR. nCFace.EQ.4 .OR. nCFace.EQ.5 + ELSEIF (ipass.EQ.2) THEN + overlapOnly = MOD(nCFace,3).EQ.2 + interiorOnly = MOD(nCFace,3).EQ.1 + calc_fluxes_X = nCFace.EQ.2 .OR. nCFace.EQ.3 .OR. nCFace.EQ.4 + calc_fluxes_Y = nCFace.EQ.5 .OR. nCFace.EQ.6 .OR. nCFace.EQ.1 + ELSE + interiorOnly = .TRUE. + calc_fluxes_X = nCFace.EQ.5 .OR. nCFace.EQ.6 + calc_fluxes_Y = nCFace.EQ.2 .OR. nCFace.EQ.3 + ENDIF + ELSE C- not CubedSphere - calc_fluxes_X = MOD(ipass,2).EQ.1 - calc_fluxes_Y = .NOT.calc_fluxes_X - ENDIF + calc_fluxes_X = MOD(ipass,2).EQ.1 + calc_fluxes_Y = .NOT.calc_fluxes_X + ENDIF C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- X direction @@ -362,204 +376,216 @@ SUBROUTINE GAD_ADVECTION( af(i,j) = 0. ENDDO ENDDO -# ifndef DISABLE_MULTIDIM_ADVECTION -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -CADJ STORE af(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -# endif #endif /* ALLOW_AUTODIFF */ - IF (calc_fluxes_X) THEN + IF (calc_fluxes_X) THEN C- Do not compute fluxes if C a) needed in overlap only C and b) the overlap of myTile are not cube-face Edges - IF ( .NOT.overlapOnly .OR. N_edge .OR. S_edge ) THEN + IF ( .NOT.overlapOnly .OR. N_edge .OR. S_edge ) THEN C- Internal exchange for calculations in X - IF ( overlapOnly ) THEN - CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., - & localTij, bi,bj, myThid ) - ENDIF + IF ( overlapOnly ) THEN + CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., + & localTij, bi,bj, myThid ) + ENDIF C- Advective flux in X #ifndef ALLOW_AUTODIFF - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - af(i,j) = 0. - ENDDO - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + af(i,j) = 0. + ENDDO + ENDDO #else /* ALLOW_AUTODIFF */ -# ifndef DISABLE_MULTIDIM_ADVECTION -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte # endif #endif /* ALLOW_AUTODIFF */ - IF ( advectionScheme.EQ.ENUM_UPWIND_1RST - & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN - CALL GAD_DST2U1_ADV_X( bi,bj,k, advectionScheme, .TRUE., - I deltaTLev(k),uTrans,uFld(1-OLx,1-OLy,k), localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN - CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), - I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN - CALL GAD_DST3_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), - I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN - CALL GAD_DST3FL_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), - I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, - O af, myThid ) + IF ( advectionScheme.EQ.ENUM_UPWIND_1RST + & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN + CALL GAD_DST2U1_ADV_X( bi,bj,k, advectionScheme, .TRUE., + I deltaTLev(k),uTrans,uFld(1-OLx,1-OLy,k), localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN + CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), + I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_DST3 ) THEN + CALL GAD_DST3_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), + I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + CALL GAD_DST3FL_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), + I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, + O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN - CALL GAD_OS7MP_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), - I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT) THEN - CALL GAD_PPM_ADV_X( advectionScheme, bi, bj, k , .TRUE., - I deltaTLev(k), uFld(1-OLx,1-OLy,k), uTrans, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN - CALL GAD_PQM_ADV_X( advectionScheme, bi, bj, k , .TRUE., - I deltaTLev(k), uFld(1-OLx,1-OLy,k), uTrans, localTij, - O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN + CALL GAD_OS7MP_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), + I uTrans, uFld(1-OLx,1-OLy,k), maskLocW, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT ) THEN + CALL GAD_PPM_ADV_X( advectionScheme, bi, bj, k , .TRUE., + I deltaTLev(k), uFld(1-OLx,1-OLy,k), uTrans, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT ) THEN + CALL GAD_PQM_ADV_X( advectionScheme, bi, bj, k , .TRUE., + I deltaTLev(k), uFld(1-OLx,1-OLy,k), uTrans, localTij, + O af, myThid ) #endif /* ndef ALLOW_AUTODIFF */ - ELSE - STOP 'GAD_ADVECTION: adv. scheme incompatibale with multi-dim' - ENDIF + ELSE + STOP 'GAD_ADVECTION: adv. scheme incompatible with multi-dim' + ENDIF #ifdef ALLOW_OBCS - IF ( useOBCS ) THEN + IF ( useOBCS ) THEN C- replace advective flux with 1st order upwind scheme estimate - CALL OBCS_U1_ADV_TRACER( .TRUE., trIdentity, bi, bj, k, - I maskLocW, uTrans, localTij, - U af, myThid ) - ENDIF + CALL OBCS_U1_ADV_TRACER( .TRUE., trIdentity, bi, bj, k, + I maskLocW, uTrans, localTij, + U af, myThid ) + ENDIF #endif /* ALLOW_OBCS */ C- Internal exchange for next calculations in Y - IF ( overlapOnly .AND. ipass.EQ.1 ) THEN - CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., - & localTij, bi,bj, myThid ) - ENDIF + IF ( overlapOnly .AND. ipass.EQ.1 ) THEN + CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., + & localTij, bi,bj, myThid ) + ENDIF C- Advective flux in X : done - ENDIF + ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE af = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif C- Update the local tracer field where needed: C use "maksInC" to prevent updating tracer field in OB regions -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef GAD_MULTIDIM_COMPRESSIBLE -CADJ STORE localVol(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -# endif -#endif /* ALLOW_AUTODIFF_TAMC */ C update in overlap-Only - IF ( overlapOnly ) THEN - iMinUpd = 1-OLx+1 - iMaxUpd = sNx+OLx-1 + IF ( overlapOnly ) THEN + iMinUpd = 1-OLx+1 + iMaxUpd = sNx+OLx-1 C- notes: these 2 lines below have no real effect (because recip_hFac=0 C in corner region) but safer to keep them. - IF ( W_edge ) iMinUpd = 1 - IF ( E_edge ) iMaxUpd = sNx + IF ( W_edge ) iMinUpd = 1 + IF ( E_edge ) iMaxUpd = sNx - IF ( S_edge ) THEN - DO j=1-OLy,0 - DO i=iMinUpd,iMaxUpd + IF ( S_edge ) THEN +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif + DO j=1-OLy,0 + DO i=iMinUpd,iMaxUpd #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key=ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i+1,j)-af(i,j) - & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i+1,j)-af(i,j) + & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO - ENDIF - IF ( N_edge ) THEN - DO j=sNy+1,sNy+OLy - DO i=iMinUpd,iMaxUpd + ENDDO + ENDDO + ENDIF + IF ( N_edge ) THEN +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif + DO j=sNy+1,sNy+OLy + DO i=iMinUpd,iMaxUpd #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key=ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i+1,j)-af(i,j) - & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i+1,j)-af(i,j) + & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO - ENDIF + ENDDO + ENDDO + ENDIF - ELSE + ELSE +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif C do not only update the overlap - jMinUpd = 1-OLy - jMaxUpd = sNy+OLy - IF ( interiorOnly .AND. S_edge ) jMinUpd = 1 - IF ( interiorOnly .AND. N_edge ) jMaxUpd = sNy - DO j=jMinUpd,jMaxUpd - DO i=1-OLx+1,sNx+OLx-1 + jMinUpd = 1-OLy + jMaxUpd = sNy+OLy + IF ( interiorOnly .AND. S_edge ) jMinUpd = 1 + IF ( interiorOnly .AND. N_edge ) jMaxUpd = sNy + DO j=jMinUpd,jMaxUpd + DO i=1-OLx+1,sNx+OLx-1 #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key=ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i+1,j) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( uTrans(i+1,j) - uTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i+1,j)-af(i,j) - & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i+1,j)-af(i,j) + & -tracer(i,j,k,bi,bj)*(uTrans(i+1,j)-uTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO + ENDDO + ENDDO C- keep advective flux (for diagnostics) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - afx(i,j) = af(i,j) - ENDDO - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + afx(i,j) = af(i,j) + ENDDO + ENDDO C- end if/else update overlap-Only - ENDIF + ENDIF C-- End of X direction - ENDIF + ENDIF C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Y direction @@ -571,209 +597,223 @@ SUBROUTINE GAD_ADVECTION( af(i,j) = 0. ENDDO ENDDO -# ifndef DISABLE_MULTIDIM_ADVECTION -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -CADJ STORE af(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -# endif #endif /* ALLOW_AUTODIFF */ - IF (calc_fluxes_Y) THEN + IF (calc_fluxes_Y) THEN C- Do not compute fluxes if C a) needed in overlap only C and b) the overlap of myTile are not cube-face edges - IF ( .NOT.overlapOnly .OR. E_edge .OR. W_edge ) THEN + IF ( .NOT.overlapOnly .OR. E_edge .OR. W_edge ) THEN C- Internal exchange for calculations in Y - IF ( overlapOnly ) THEN - CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., - & localTij, bi,bj, myThid ) - ENDIF + IF ( overlapOnly ) THEN + CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., + & localTij, bi,bj, myThid ) + ENDIF C- Advective flux in Y #ifndef ALLOW_AUTODIFF - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - af(i,j) = 0. - ENDDO - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + af(i,j) = 0. + ENDDO + ENDDO #else /* ALLOW_AUTODIFF */ -#ifndef DISABLE_MULTIDIM_ADVECTION -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -#endif +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +# endif #endif /* ALLOW_AUTODIFF */ - IF ( advectionScheme.EQ.ENUM_UPWIND_1RST - & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN - CALL GAD_DST2U1_ADV_Y( bi,bj,k, advectionScheme, .TRUE., - I deltaTLev(k),vTrans,vFld(1-OLx,1-OLy,k), localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN - CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), - I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN - CALL GAD_DST3_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), - I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN - CALL GAD_DST3FL_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), - I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, - O af, myThid ) + IF ( advectionScheme.EQ.ENUM_UPWIND_1RST + & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN + CALL GAD_DST2U1_ADV_Y( bi,bj,k, advectionScheme, .TRUE., + I deltaTLev(k),vTrans,vFld(1-OLx,1-OLy,k), localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN + CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), + I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_DST3 ) THEN + CALL GAD_DST3_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), + I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + CALL GAD_DST3FL_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), + I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, + O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN - CALL GAD_OS7MP_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), - I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT) THEN - CALL GAD_PPM_ADV_Y(advectionScheme, bi, bj, k , .TRUE., - I deltaTLev(k), vFld(1-OLX,1-OLy,k), vTrans, localTij, - O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN - CALL GAD_PQM_ADV_Y(advectionScheme, bi, bj, k , .TRUE., - I deltaTLev(k), vFld(1-OLX,1-OLy,k), vTrans, localTij, - O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN + CALL GAD_OS7MP_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), + I vTrans, vFld(1-OLx,1-OLy,k), maskLocS, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT ) THEN + CALL GAD_PPM_ADV_Y( advectionScheme, bi, bj, k , .TRUE., + I deltaTLev(k), vFld(1-OLX,1-OLy,k), vTrans, localTij, + O af, myThid ) + ELSEIF ( advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT ) THEN + CALL GAD_PQM_ADV_Y( advectionScheme, bi, bj, k , .TRUE., + I deltaTLev(k), vFld(1-OLX,1-OLy,k), vTrans, localTij, + O af, myThid ) #endif /* ndef ALLOW_AUTODIFF */ - ELSE - STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim' - ENDIF + ELSE + STOP 'GAD_ADVECTION: adv. scheme incompatible with mutli-dim' + ENDIF #ifdef ALLOW_OBCS - IF ( useOBCS ) THEN + IF ( useOBCS ) THEN C- replace advective flux with 1st order upwind scheme estimate - CALL OBCS_U1_ADV_TRACER( .FALSE., trIdentity, bi, bj, k, - I maskLocS, vTrans, localTij, - U af, myThid ) - ENDIF + CALL OBCS_U1_ADV_TRACER( .FALSE., trIdentity, bi, bj, k, + I maskLocS, vTrans, localTij, + U af, myThid ) + ENDIF #endif /* ALLOW_OBCS */ C- Internal exchange for next calculations in X - IF ( overlapOnly .AND. ipass.EQ.1 ) THEN - CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., - & localTij, bi,bj, myThid ) - ENDIF + IF ( overlapOnly .AND. ipass.EQ.1 ) THEN + CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., + & localTij, bi,bj, myThid ) + ENDIF C- Advective flux in Y : done - ENDIF + ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE af = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif C- Update the local tracer field where needed: C use "maksInC" to prevent updating tracer field in OB regions -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef GAD_MULTIDIM_COMPRESSIBLE -CADJ STORE localVol(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gad_pass, key=passkey, kind=isbyte -# endif -#endif /* ALLOW_AUTODIFF_TAMC */ C update in overlap-Only - IF ( overlapOnly ) THEN - jMinUpd = 1-OLy+1 - jMaxUpd = sNy+OLy-1 + IF ( overlapOnly ) THEN + jMinUpd = 1-OLy+1 + jMaxUpd = sNy+OLy-1 C- notes: these 2 lines below have no real effect (because recip_hFac=0 C in corner region) but safer to keep them. - IF ( S_edge ) jMinUpd = 1 - IF ( N_edge ) jMaxUpd = sNy + IF ( S_edge ) jMinUpd = 1 + IF ( N_edge ) jMaxUpd = sNy - IF ( W_edge ) THEN - DO j=jMinUpd,jMaxUpd - DO i=1-OLx,0 + IF ( W_edge ) THEN +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey, kind = isbyte +#endif + DO j=jMinUpd,jMaxUpd + DO i=1-OLx,0 #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key = ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i,j+1)-af(i,j) - & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i,j+1)-af(i,j) + & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO - ENDIF - IF ( E_edge ) THEN - DO j=jMinUpd,jMaxUpd - DO i=sNx+1,sNx+OLx + ENDDO + ENDDO + ENDIF + IF ( E_edge ) THEN +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey +CADJ & , kind = isbyte +#endif + DO j=jMinUpd,jMaxUpd + DO i=sNx+1,sNx+OLx #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key=ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i,j+1)-af(i,j) - & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i,j+1)-af(i,j) + & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO - ENDIF + ENDDO + ENDDO + ENDIF - ELSE + ELSE +#if defined ALLOW_AUTODIFF_TAMC && defined GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE localTij = loctape_gad_adv_k_pass, key = dkey +CADJ & , kind = isbyte +#endif C do not only update the overlap - iMinUpd = 1-OLx - iMaxUpd = sNx+OLx - IF ( interiorOnly .AND. W_edge ) iMinUpd = 1 - IF ( interiorOnly .AND. E_edge ) iMaxUpd = sNx - DO j=1-OLy+1,sNy+OLy-1 - DO i=iMinUpd,iMaxUpd + iMinUpd = 1-OLx + iMaxUpd = sNx+OLx + IF ( interiorOnly .AND. W_edge ) iMinUpd = 1 + IF ( interiorOnly .AND. E_edge ) iMaxUpd = sNx + DO j=1-OLy+1,sNy+OLy-1 + DO i=iMinUpd,iMaxUpd #ifdef GAD_MULTIDIM_COMPRESSIBLE - tmpTrac = localTij(i,j)*localVol(i,j) - & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) - & *maskInC(i,j,bi,bj) - localVol(i,j) = localVol(i,j) - & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) - & *maskInC(i,j,bi,bj) - localTij(i,j) = tmpTrac/localVol(i,j) +# ifdef ALLOW_AUTODIFF_TAMC + ijkey = i + ((j-1) + (dkey-1)*(sNy+2*OLy))*(sNx+2*OLx) +CADJ STORE localVol(i,j) = loctape_gad_adv_ijk_pass, key=ijkey +CADJ & , kind = isbyte +# endif + tmpTrac = localTij(i,j)*localVol(i,j) + & -deltaTLev(k)*( af(i,j+1) - af(i,j) ) + & *maskInC(i,j,bi,bj) + localVol(i,j) = localVol(i,j) + & -deltaTLev(k)*( vTrans(i,j+1) - vTrans(i,j) ) + & *maskInC(i,j,bi,bj) + localTij(i,j) = tmpTrac/localVol(i,j) #else /* GAD_MULTIDIM_COMPRESSIBLE */ - localTij(i,j) = localTij(i,j) - & -deltaTLev(k)*recip_rhoFacC(k) - & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) - & *( af(i,j+1)-af(i,j) - & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) - & )*maskInC(i,j,bi,bj) + localTij(i,j) = localTij(i,j) + & -deltaTLev(k)*recip_rhoFacC(k) + & *_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj)*recip_deepFac2C(k) + & *( af(i,j+1)-af(i,j) + & -tracer(i,j,k,bi,bj)*(vTrans(i,j+1)-vTrans(i,j)) + & )*maskInC(i,j,bi,bj) #endif /* GAD_MULTIDIM_COMPRESSIBLE */ - ENDDO - ENDDO + ENDDO + ENDDO C- keep advective flux (for diagnostics) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - afy(i,j) = af(i,j) - ENDDO - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + afy(i,j) = af(i,j) + ENDDO + ENDDO C end if/else update overlap-Only - ENDIF + ENDIF C-- End of Y direction - ENDIF + ENDIF C-- End of ipass loop - ENDDO + ENDDO - IF ( implicitAdvection ) THEN + IF ( implicitAdvection ) THEN C- explicit advection is done ; store tendency in gTracer: #ifdef GAD_MULTIDIM_COMPRESSIBLE STOP 'GAD_ADVECTION: missing code for implicitAdvection' @@ -784,7 +824,7 @@ SUBROUTINE GAD_ADVECTION( & ( localTij(i,j) - tracer(i,j,k,bi,bj) )/deltaTLev(k) ENDDO ENDDO - ELSE + ELSE C- horizontal advection done; store intermediate result in 3D array: DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -794,34 +834,34 @@ SUBROUTINE GAD_ADVECTION( localT3d(i,j,k) = localTij(i,j) ENDDO ENDDO - ENDIF + ENDIF #ifdef ALLOW_DIAGNOSTICS - IF ( doDiagAdvX ) THEN - diagName = 'ADVx'//diagSufx - CALL DIAGNOSTICS_FILL( afx, diagName, k,1, 2,bi,bj, myThid ) - ENDIF - IF ( doDiagAdvY ) THEN - diagName = 'ADVy'//diagSufx - CALL DIAGNOSTICS_FILL( afy, diagName, k,1, 2,bi,bj, myThid ) - ENDIF + IF ( doDiagAdvX ) THEN + diagName = 'ADVx'//diagSufx + CALL DIAGNOSTICS_FILL( afx, diagName, k,1, 2,bi,bj, myThid ) + ENDIF + IF ( doDiagAdvY ) THEN + diagName = 'ADVy'//diagSufx + CALL DIAGNOSTICS_FILL( afy, diagName, k,1, 2,bi,bj, myThid ) + ENDIF #ifdef ALLOW_LAYERS - IF ( useLayers ) THEN - CALL LAYERS_FILL(afx,trIdentity,'AFX',k,1,2,bi,bj,myThid) - CALL LAYERS_FILL(afy,trIdentity,'AFY',k,1,2,bi,bj,myThid) - ENDIF + IF ( useLayers ) THEN + CALL LAYERS_FILL(afx,trIdentity,'AFX',k,1,2,bi,bj,myThid) + CALL LAYERS_FILL(afy,trIdentity,'AFY',k,1,2,bi,bj,myThid) + ENDIF #endif /* ALLOW_LAYERS */ #endif /* ALLOW_DIAGNOSTICS */ #ifdef ALLOW_DEBUG - IF ( debugLevel .GE. debLevC + IF ( debugLevel .GE. debLevC & .AND. trIdentity.EQ.GAD_TEMPERATURE & .AND. k.LE.3 .AND. myIter.EQ.1+nIter0 & .AND. nPx.EQ.1 .AND. nPy.EQ.1 & .AND. useCubedSphereExchange ) THEN CALL DEBUG_CS_CORNER_UV( ' afx,afy from GAD_ADVECTION', & afx,afy, k, standardMessageUnit,bi,bj,myThid ) - ENDIF + ENDIF #endif /* ALLOW_DEBUG */ C-- End of K loop for horizontal fluxes @@ -832,10 +872,14 @@ SUBROUTINE GAD_ADVECTION( IF ( .NOT.implicitAdvection ) THEN #ifndef ALLOW_AUTODIFF - IF (vertAdvecScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PPM_WENO_LIMIT) THEN -C-- PPM-style vertical advection + usePPMvertAdv = vertAdvecScheme.EQ.ENUM_PPM_NULL_LIMIT + & .OR. vertAdvecScheme.EQ.ENUM_PPM_MONO_LIMIT + & .OR. vertAdvecScheme.EQ.ENUM_PPM_WENO_LIMIT + usePQMvertAdv = vertAdvecScheme.EQ.ENUM_PQM_NULL_LIMIT + & .OR. vertAdvecScheme.EQ.ENUM_PQM_MONO_LIMIT + & .OR. vertAdvecScheme.EQ.ENUM_PQM_WENO_LIMIT + IF ( usePPMvertAdv .OR. usePQMvertAdv ) THEN +C-- PPM-style or PQM-style vertical advection DO k=1,Nr IF (k.EQ.1) THEN C-- vertical transport: surface @@ -855,47 +899,40 @@ SUBROUTINE GAD_ADVECTION( ENDDO ENDIF ENDDO + IF ( usePPMvertAdv ) THEN C-- calc. PPM vertical flux data - CALL GAD_PPM_ADV_R( vertAdvecScheme, bi, bj, - I deltaTLev, wFld, rTran3d, localT3d, - O afr, myThid ) - ENDIF - - IF (vertAdvecScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN -C-- PQM-style vertical advection - DO k=1,Nr - IF (k.EQ.1) THEN -C-- vertical transport: surface - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - rTran3d(i,j,k) = 0. _d 0 - ENDDO - ENDDO - ELSE -C-- vertical transport: interior - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - rTran3d(i,j,k) = wFld(i,j,k)*rA(i,j,bi,bj) - & *deepFac2F(k)*rhoFacF(k) - & *maskC(i,j,k-1,bi,bj) - ENDDO - ENDDO + CALL GAD_PPM_ADV_R( vertAdvecScheme, bi, bj, + I deltaTLev, wFld, rTran3d, localT3d, + O afr, myThid ) ENDIF - ENDDO + IF ( usePQMvertAdv ) THEN C-- calc. PQM vertical flux data - CALL GAD_PQM_ADV_R( vertAdvecScheme, bi, bj, - I deltaTLev, wFld, rTran3d, localT3d, - O afr, myThid ) + CALL GAD_PQM_ADV_R( vertAdvecScheme, bi, bj, + I deltaTLev, wFld, rTran3d, localT3d, + O afr, myThid ) + ENDIF +C-- end PPM / PQM style vertical advection ENDIF #endif /* ndef ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE localT3d = loctape_gad_adv, key=1, kind = isbyte + +# ifdef GAD_MULTIDIM_COMPRESSIBLE +CADJ STORE locVol3d = loctape_gad_adv, key=1, kind = isbyte +# endif /* GAD_MULTIDIM_COMPRESSIBLE */ +#endif +#ifdef ALLOW_AUTODIFF + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + fVerT(i,j,1) = 0. + fVerT(i,j,2) = 0. + ENDDO + ENDDO +#endif + C-- Start of k loop for vertical flux DO k=Nr,1,-1 -#ifdef ALLOW_AUTODIFF_TAMC - kkey = (igadkey-1)*Nr + (Nr-k+1) -#endif /* ALLOW_AUTODIFF_TAMC */ C-- kUp Cycles through 1,2 to point to w-layer above C-- kDown Cycles through 2,1 to point to w-layer below kUp = 1+MOD(k+1,2) @@ -904,8 +941,11 @@ SUBROUTINE GAD_ADVECTION( IF (k.EQ.Nr) kp1Msk=0. #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE rtrans(:,:) = -CADJ & comlev1_bibj_k_gad, key=kkey, kind=isbyte +C This directive suppresses a warning and hence makes a store +C directive unnecessary. Before inserting this directive, the store +C directive did not resolve a warning about a potential conflict due +C to the incomplete variable rtrans. +CADJ INCOMPLETE rtrans #endif C-- Compute Vertical transport @@ -940,68 +980,53 @@ SUBROUTINE GAD_ADVECTION( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cphmultiCADJ STORE localT3d(:,:,k) -cphmultiCADJ & = comlev1_bibj_k_gad, key=kkey, kind=isbyte -cphmultiCADJ STORE rTrans(:,:) -cphmultiCADJ & = comlev1_bibj_k_gad, key=kkey, kind=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ - C- Compute vertical advective flux in the interior: IF ( vertAdvecScheme.EQ.ENUM_UPWIND_1RST & .OR. vertAdvecScheme.EQ.ENUM_DST2 ) THEN - CALL GAD_DST2U1_ADV_R( bi,bj,k, advectionScheme, + CALL GAD_DST2U1_ADV_R( bi,bj,k, advectionScheme, I deltaTLev(k),rTrans,wFld(1-OLx,1-OLy,k),localT3d, O fVerT(1-OLx,1-OLy,kUp), myThid ) - ELSEIF( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN - CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k), + ELSEIF ( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT ) THEN + CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld(1-OLx,1-OLy,k), localT3d, O fVerT(1-OLx,1-OLy,kUp), myThid ) - ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 ) THEN - CALL GAD_DST3_ADV_R( bi,bj,k, deltaTLev(k), + ELSEIF (vertAdvecScheme.EQ.ENUM_DST3) THEN + CALL GAD_DST3_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld(1-OLx,1-OLy,k), localT3d, O fVerT(1-OLx,1-OLy,kUp), myThid ) - ELSEIF( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN - CALL GAD_DST3FL_ADV_R( bi,bj,k, deltaTLev(k), + ELSEIF ( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + CALL GAD_DST3FL_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld(1-OLx,1-OLy,k), localT3d, O fVerT(1-OLx,1-OLy,kUp), myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (vertAdvecScheme.EQ.ENUM_OS7MP ) THEN - CALL GAD_OS7MP_ADV_R( bi,bj,k, deltaTLev(k), + ELSEIF ( vertAdvecScheme.EQ.ENUM_OS7MP ) THEN + CALL GAD_OS7MP_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld(1-OLx,1-OLy,k), localT3d, O fVerT(1-OLx,1-OLy,kUp), myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PPM_WENO_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & vertAdvecScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN + ELSEIF ( usePPMvertAdv .OR. usePQMvertAdv ) THEN C- copy level from 3d flux data - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - fVerT(i,j,kUp) = afr(i,j,k) - ENDDO + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + fVerT(i,j,kUp) = afr(i,j,k) ENDDO + ENDDO #endif /* ndef ALLOW_AUTODIFF */ ELSE - STOP 'GAD_ADVECTION: adv. scheme incompatibale with mutli-dim' + STOP 'GAD_ADVECTION: adv. scheme incompatible with mutli-dim' ENDIF C- end Surface/Interior if bloc ENDIF #ifdef ALLOW_AUTODIFF_TAMC -cphmultiCADJ STORE rTrans(:,:) -cphmultiCADJ & = comlev1_bibj_k_gad, key=kkey, kind=isbyte -cphmultiCADJ STORE rTranskp(:,:) -cphmultiCADJ & = comlev1_bibj_k_gad, key=kkey, kind=isbyte +CADJ STORE rtrans = loctape_gad_adv_k, key = k, kind = isbyte +CADJ STORE rtransKp = loctape_gad_adv_k, key = k, kind = isbyte cph --- following storing of fVerT is critical for correct cph --- gradient with multiDimAdvection cph --- Without it, kDown component is not properly recomputed cph --- This is a TAF bug (and no warning available) -CADJ STORE fVerT(:,:,:) -CADJ & = comlev1_bibj_k_gad, key=kkey, kind=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +CADJ STORE fVerT(:,:,:) = loctape_gad_adv_k, key = k, kind = isbyte +#endif C-- Divergence of vertical fluxes #ifdef GAD_MULTIDIM_COMPRESSIBLE @@ -1048,14 +1073,14 @@ SUBROUTINE GAD_ADVECTION( #ifdef ALLOW_DIAGNOSTICS IF ( doDiagAdvR ) THEN - diagName = 'ADVr'//diagSufx - CALL DIAGNOSTICS_FILL( fVerT(1-OLx,1-OLy,kUp), - & diagName, k,1, 2,bi,bj, myThid ) + diagName = 'ADVr'//diagSufx + CALL DIAGNOSTICS_FILL( fVerT(1-OLx,1-OLy,kUp), + & diagName, k,1, 2,bi,bj, myThid ) ENDIF #ifdef ALLOW_LAYERS IF ( useLayers ) THEN - CALL LAYERS_FILL( fVerT(1-OLx,1-OLy,kUp), trIdentity, - & 'AFR', k, 1, 2,bi,bj, myThid) + CALL LAYERS_FILL( fVerT(1-OLx,1-OLy,kUp), trIdentity, + & 'AFR', k, 1, 2,bi,bj, myThid) ENDIF #endif /* ALLOW_LAYERS */ #endif /* ALLOW_DIAGNOSTICS */ @@ -1064,6 +1089,7 @@ SUBROUTINE GAD_ADVECTION( ENDDO C-- end of if not.implicitAdvection block ENDIF +#endif /* DISABLE_MULTIDIM_ADVECTION */ RETURN END diff --git a/pkg/generic_advdiff/gad_calc_rhs.F b/pkg/generic_advdiff/gad_calc_rhs.F index 2c0256b1b6..dce75a6ece 100644 --- a/pkg/generic_advdiff/gad_calc_rhs.F +++ b/pkg/generic_advdiff/gad_calc_rhs.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GAD_CALC_RHS @@ -10,7 +13,7 @@ SUBROUTINE GAD_CALC_RHS( I uTrans, vTrans, rTrans, rTransKp1, I diffKh, diffK4, KappaR, diffKr4, TracerN, TracAB, I deltaTLev, trIdentity, - I advectionScheme, vertAdvecScheme, + I advectionSchArg, vertAdvecSchArg, I calcAdvection, implicitAdvection, applyAB_onTracer, I trUseDiffKr4, trUseGMRedi, trUseKPP, trUseSmolHack, O fZon, fMer, @@ -71,8 +74,8 @@ SUBROUTINE GAD_CALC_RHS( C TracAB :: current tracer field (@ time-step n if applying AB on gTr C or extrapolated fwd in time to n+1/2 if applying AB on Tr) C trIdentity :: tracer identifier (required for KPP,GM) -C advectionScheme :: advection scheme to use (Horizontal plane) -C vertAdvecScheme :: advection scheme to use (Vertical direction) +C advectionSchArg :: advection scheme to use (Horizontal plane) +C vertAdvecSchArg :: advection scheme to use (Vertical direction) C calcAdvection :: =False if Advec computed with multiDim scheme C implicitAdvection:: =True if vertical Advec computed implicitly C applyAB_onTracer :: apply Adams-Bashforth on Tracer (rather than on gTr) @@ -102,7 +105,7 @@ SUBROUTINE GAD_CALC_RHS( _RL TracAB (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL deltaTLev(Nr) INTEGER trIdentity - INTEGER advectionScheme, vertAdvecScheme + INTEGER advectionSchArg, vertAdvecSchArg LOGICAL calcAdvection LOGICAL implicitAdvection, applyAB_onTracer LOGICAL trUseDiffKr4, trUseGMRedi, trUseKPP, trUseSmolHack @@ -127,12 +130,15 @@ SUBROUTINE GAD_CALC_RHS( C !LOCAL VARIABLES: ==================================================== C i,j :: loop indices +C advectionScheme :: local copy of routine argument advectionSchArg +C vertAdvecScheme :: local copy of routine argument vertAdvecSchArg C df4 :: used for storing del^2 T for bi-harmonic term C af :: advective flux C df :: diffusive flux C localT :: local copy of tracer field C locABT :: local copy of (AB-extrapolated) tracer field INTEGER i,j + INTEGER advectionScheme, vertAdvecScheme _RS maskLocW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS maskLocS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL df4 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -150,11 +156,32 @@ SUBROUTINE GAD_CALC_RHS( #endif CEOP +C make local copies to be tampered with if necessary + advectionScheme = advectionSchArg + vertAdvecScheme = vertAdvecSchArg #ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT gad_local_tape = COMMON, 1 +C This store directive just suppresses a recomputation warning. +C TAF generates an extra field with or without this directive. +CADJ STORE fvert = gad_local_tape +#endif C-- only the kUp part of fverT is set in this subroutine C-- the kDown is still required fVerT(1,1,kDown) = fVerT(1,1,kDown) -#endif +C + IF ( inAdMode .AND. useApproxAdvectionInAdMode ) THEN +C In AD-mode, we change non-linear, potentially unstable AD advection +C schemes to linear schemes with more stability. So far only DST3 with +C flux limiting is replaced by DST3 without flux limiting, but any +C combination is possible. + IF ( advectionSchArg.EQ.ENUM_DST3_FLUX_LIMIT ) + & advectionScheme = ENUM_DST3 + IF ( vertAdvecSchArg.EQ.ENUM_DST3_FLUX_LIMIT ) + & vertAdvecScheme = ENUM_DST3 +C here is room for more advection schemes as this becomes necessary + ENDIF +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_DIAGNOSTICS C-- Set diagnostic suffix for the current tracer @@ -197,8 +224,20 @@ SUBROUTINE GAD_CALC_RHS( C-- Pre-calculate del^2 T if bi-harmonic coefficient is non-zero IF (diffK4 .NE. 0.) THEN +#ifdef ALLOW_AUTODIFF_TAMC +C These store directives suppress two recomputation warnings and +C avoid the corresponding recomputations of fZon, fMer at the cost +C of only four extra local 2D-fields. +CADJ STORE localT = gad_local_tape +#endif CALL GAD_GRAD_X(bi,bj,k,xA,localT,fZon,myThid) +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE localT = gad_local_tape +#endif CALL GAD_GRAD_Y(bi,bj,k,yA,localT,fMer,myThid) +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE fZon, fMer = gad_local_tape +#endif CALL GAD_DEL2(bi,bj,k,fZon,fMer,df4,myThid) ENDIF @@ -211,7 +250,7 @@ SUBROUTINE GAD_CALC_RHS( C- Advective flux in X IF (calcAdvection) THEN - IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN + IF ( advectionScheme.EQ.ENUM_CENTERED_2ND ) THEN CALL GAD_C2_ADV_X( bi,bj,k, uTrans, locABT, af, myThid ) ELSEIF ( advectionScheme.EQ.ENUM_UPWIND_1RST & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN @@ -228,35 +267,26 @@ SUBROUTINE GAD_CALC_RHS( #endif /* ALLOW_OBCS */ ENDDO ENDDO - IF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN + IF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), I uTrans, uFld, maskLocW, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN CALL GAD_U3_ADV_X( bi,bj,k, uTrans, maskLocW, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN + ELSEIF ( advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN CALL GAD_C4_ADV_X( bi,bj,k, uTrans, maskLocW, locABT, O af, myThid ) -#ifdef ALLOW_AUTODIFF - ELSEIF( advectionScheme.EQ.ENUM_DST3 .OR. - & (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT .AND. inAdMode) - & ) THEN -cph This block is to trick the adjoint: -cph If inAdExact=.FALSE., we want to use DST3 -cph with limiters in forward, but without limiters in reverse. -#else /* ALLOW_AUTODIFF */ - ELSEIF( advectionScheme.EQ.ENUM_DST3 ) THEN -#endif /* ALLOW_AUTODIFF */ + ELSEIF ( advectionScheme.EQ.ENUM_DST3 ) THEN CALL GAD_DST3_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), I uTrans, uFld, maskLocW, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), I uTrans, uFld, maskLocW, locABT, O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_X( bi,bj,k, .TRUE., deltaTLev(k), I uTrans, uFld, maskLocW, locABT, O af, myThid ) @@ -314,7 +344,7 @@ SUBROUTINE GAD_CALC_RHS( IF ( trUseGMRedi ) THEN CALL GMREDI_XTRANSPORT( I trIdentity, bi, bj, k, iMin, iMax+1, jMin, jMax, - I xA, TracerN, + I xA, maskUp, TracerN, U df, I myThid ) ENDIF @@ -351,7 +381,7 @@ SUBROUTINE GAD_CALC_RHS( C- Advective flux in Y IF (calcAdvection) THEN - IF (advectionScheme.EQ.ENUM_CENTERED_2ND) THEN + IF ( advectionScheme.EQ.ENUM_CENTERED_2ND ) THEN CALL GAD_C2_ADV_Y( bi,bj,k, vTrans, locABT, af, myThid ) ELSEIF ( advectionScheme.EQ.ENUM_UPWIND_1RST & .OR. advectionScheme.EQ.ENUM_DST2 ) THEN @@ -368,35 +398,26 @@ SUBROUTINE GAD_CALC_RHS( #endif /* ALLOW_OBCS */ ENDDO ENDDO - IF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN + IF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), I vTrans, vFld, maskLocS, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_UPWIND_3RD ) THEN CALL GAD_U3_ADV_Y( bi,bj,k, vTrans, maskLocS, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_CENTERED_4TH) THEN + ELSEIF ( advectionScheme.EQ.ENUM_CENTERED_4TH ) THEN CALL GAD_C4_ADV_Y( bi,bj,k, vTrans, maskLocS, locABT, O af, myThid ) -#ifdef ALLOW_AUTODIFF - ELSEIF( advectionScheme.EQ.ENUM_DST3 .OR. - & (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT .AND. inAdMode) - & ) THEN -cph This block is to trick the adjoint: -cph If inAdExact=.FALSE., we want to use DST3 -cph with limiters in forward, but without limiters in reverse. -#else /* ALLOW_AUTODIFF */ - ELSEIF( advectionScheme.EQ.ENUM_DST3 ) THEN -#endif /* ALLOW_AUTODIFF */ + ELSEIF ( advectionScheme.EQ.ENUM_DST3 ) THEN CALL GAD_DST3_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), I vTrans, vFld, maskLocS, locABT, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), I vTrans, vFld, maskLocS, locABT, O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_Y( bi,bj,k, .TRUE., deltaTLev(k), I vTrans, vFld, maskLocS, locABT, O af, myThid ) @@ -454,7 +475,7 @@ SUBROUTINE GAD_CALC_RHS( IF ( trUseGMRedi ) THEN CALL GMREDI_YTRANSPORT( I trIdentity, bi, bj, k, iMin, iMax, jMin, jMax+1, - I yA, TracerN, + I yA, maskUp, TracerN, U df, I myThid ) ENDIF @@ -494,40 +515,31 @@ SUBROUTINE GAD_CALC_RHS( #endif IF ( applyAB_onTracer ) THEN C- Compute vertical advective flux in the interior using TracAB: - IF (vertAdvecScheme.EQ.ENUM_CENTERED_2ND) THEN + IF ( vertAdvecScheme.EQ.ENUM_CENTERED_2ND ) THEN CALL GAD_C2_ADV_R( bi,bj,k, rTrans, TracAB, af, myThid ) ELSEIF ( vertAdvecScheme.EQ.ENUM_UPWIND_1RST & .OR. vertAdvecScheme.EQ.ENUM_DST2 ) THEN CALL GAD_DST2U1_ADV_R( bi,bj,k,vertAdvecScheme,deltaTLev(k), I rTrans, wFld, TracAB, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracAB, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_UPWIND_3RD ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_UPWIND_3RD ) THEN CALL GAD_U3_ADV_R( bi,bj,k, rTrans, TracAB, af, myThid ) ELSEIF (vertAdvecScheme.EQ.ENUM_CENTERED_4TH) THEN CALL GAD_C4_ADV_R( bi,bj,k, rTrans, TracAB, af, myThid ) -#ifdef ALLOW_AUTODIFF - ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 .OR. - & (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT .AND. inAdMode) - & ) THEN -cph This block is to trick the adjoint: -cph If inAdExact=.FALSE., we want to use DST3 -cph with limiters in forward, but without limiters in reverse. -#else /* ALLOW_AUTODIFF */ - ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 ) THEN -#endif /* ALLOW_AUTODIFF */ + ELSEIF ( vertAdvecScheme.EQ.ENUM_DST3 ) THEN CALL GAD_DST3_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracAB, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracAB, O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (vertAdvecScheme.EQ.ENUM_OS7MP ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracAB, O af, myThid ) @@ -537,40 +549,31 @@ SUBROUTINE GAD_CALC_RHS( ENDIF ELSE C- Compute vertical advective flux in the interior using TracerN: - IF (vertAdvecScheme.EQ.ENUM_CENTERED_2ND) THEN + IF ( vertAdvecScheme.EQ.ENUM_CENTERED_2ND ) THEN CALL GAD_C2_ADV_R( bi,bj,k, rTrans, TracerN, af, myThid ) ELSEIF ( vertAdvecScheme.EQ.ENUM_UPWIND_1RST & .OR. vertAdvecScheme.EQ.ENUM_DST2 ) THEN CALL GAD_DST2U1_ADV_R( bi,bj,k,vertAdvecScheme,deltaTLev(k), I rTrans, wFld, TracerN, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_FLUX_LIMIT) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracerN, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_UPWIND_3RD ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_UPWIND_3RD ) THEN CALL GAD_U3_ADV_R( bi,bj,k, rTrans, TracerN, af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_CENTERED_4TH) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_CENTERED_4TH ) THEN CALL GAD_C4_ADV_R( bi,bj,k, rTrans, TracerN, af, myThid ) -#ifdef ALLOW_AUTODIFF - ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 .OR. - & (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT .AND. inAdMode) - & ) THEN -cph This block is to trick the adjoint: -cph If inAdExact=.FALSE., we want to use DST3 -cph with limiters in forward, but without limiters in reverse. -#else /* ALLOW_AUTODIFF */ ELSEIF( vertAdvecScheme.EQ.ENUM_DST3 ) THEN -#endif /* ALLOW_AUTODIFF */ CALL GAD_DST3_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracerN, O af, myThid ) - ELSEIF (vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracerN, O af, myThid ) #ifndef ALLOW_AUTODIFF - ELSEIF (vertAdvecScheme.EQ.ENUM_OS7MP ) THEN + ELSEIF ( vertAdvecScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_R( bi,bj,k, deltaTLev(k), I rTrans, wFld, TracerN, O af, myThid ) diff --git a/pkg/generic_advdiff/gad_diagnostics_init.F b/pkg/generic_advdiff/gad_diagnostics_init.F index 2c52480a4b..0098714503 100644 --- a/pkg/generic_advdiff/gad_diagnostics_init.F +++ b/pkg/generic_advdiff/gad_diagnostics_init.F @@ -186,7 +186,7 @@ SUBROUTINE GAD_DIAGNOSTICS_INIT( myThid ) ENDIF ELSE locName = 'Salinity ' - trUnits = 'psu' + trUnits = 'g/kg' ENDIF diagUnits = DIAGS_MK_UNITS( trUnits//flxUnits, myThid ) diagSufx = GAD_DIAG_SUFX( GAD_SALINITY, myThid ) diff --git a/pkg/generic_advdiff/gad_diff_x.F b/pkg/generic_advdiff/gad_diff_x.F index 25fb164e52..0d01339aec 100644 --- a/pkg/generic_advdiff/gad_diff_x.F +++ b/pkg/generic_advdiff/gad_diff_x.F @@ -22,6 +22,11 @@ SUBROUTINE GAD_DIFF_X( IMPLICIT NONE #include "SIZE.h" #include "GRID.h" +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +# include "EEPARAMS.h" +# include "PARAMS.h" +# include "DYNVARS.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -45,15 +50,34 @@ SUBROUTINE GAD_DIFF_X( INTEGER i,j CEOP - DO j=1-Oly,sNy+Oly - dfx(1-Olx,j)=0. - DO i=1-Olx+1,sNx+Olx - dfx(i,j) = -diffKh*xA(i,j) - & *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k) - & *(tracer(i,j)-tracer(i-1,j)) - & *cosFacU(j,bi,bj) - ENDDO - ENDDO +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + IF ( smag3D_diffCoeff.GT.zeroRL ) THEN + DO j=1-OLy,sNy+OLy + dfx(1-OLx,j) = 0. + DO i=1-OLx+1,sNx+OLx + dfx(i,j) = -( diffKh + & + halfRL*( smag3D_diffK(i-1,j,k,bi,bj) + & + smag3D_diffK( i, j,k,bi,bj) ) + & )*xA(i,j) + & *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k) + & *( tracer(i,j) - tracer(i-1,j) ) + & *cosFacU(j,bi,bj) + ENDDO + ENDDO + ELSE +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ + DO j=1-OLy,sNy+OLy + dfx(1-OLx,j) = 0. + DO i=1-OLx+1,sNx+OLx + dfx(i,j) = -diffKh*xA(i,j) + & *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k) + & *( tracer(i,j) - tracer(i-1,j) ) + & *cosFacU(j,bi,bj) + ENDDO + ENDDO +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + ENDIF +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ RETURN END diff --git a/pkg/generic_advdiff/gad_diff_y.F b/pkg/generic_advdiff/gad_diff_y.F index ad8c5be96f..f19a5d4f53 100644 --- a/pkg/generic_advdiff/gad_diff_y.F +++ b/pkg/generic_advdiff/gad_diff_y.F @@ -22,6 +22,11 @@ SUBROUTINE GAD_DIFF_Y( IMPLICIT NONE #include "SIZE.h" #include "GRID.h" +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +# include "EEPARAMS.h" +# include "PARAMS.h" +# include "DYNVARS.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -45,19 +50,39 @@ SUBROUTINE GAD_DIFF_Y( INTEGER i,j CEOP - DO i=1-Olx,sNx+Olx - dfy(i,1-Oly)=0. + DO i=1-OLx,sNx+OLx + dfy(i,1-OLy) = 0. ENDDO - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx,sNx+Olx - dfy(i,j) = -diffKh*yA(i,j) - & *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k) - & *(tracer(i,j)-tracer(i,j-1)) +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + IF ( smag3D_diffCoeff.GT.zeroRL ) THEN + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + dfy(i,j) = -( diffKh + & + halfRL*( smag3D_diffK(i,j-1,k,bi,bj) + & + smag3D_diffK(i, j, k,bi,bj) ) + & )*yA(i,j) + & *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k) + & *( tracer(i,j) - tracer(i,j-1) ) #ifdef ISOTROPIC_COS_SCALING - & *cosFacV(j,bi,bj) + & *cosFacV(j,bi,bj) #endif - ENDDO - ENDDO + ENDDO + ENDDO + ELSE +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + dfy(i,j) = -diffKh*yA(i,j) + & *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k) + & *( tracer(i,j) - tracer(i,j-1) ) +#ifdef ISOTROPIC_COS_SCALING + & *cosFacV(j,bi,bj) +#endif + ENDDO + ENDDO +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + ENDIF +#endif /* ALLOW_SMAG_3D_DIFFUSIVITY */ RETURN END diff --git a/pkg/generic_advdiff/gad_dst3_adv_r.F b/pkg/generic_advdiff/gad_dst3_adv_r.F index db55c11569..5d2b3ea437 100644 --- a/pkg/generic_advdiff/gad_dst3_adv_r.F +++ b/pkg/generic_advdiff/gad_dst3_adv_r.F @@ -60,7 +60,7 @@ SUBROUTINE GAD_DST3_ADV_R( _RL psiP,psiM,thetaP,thetaM _RL smallNo -c IF (inAdMode) THEN +c IF (inAdMode .AND. useApproxAdvectionInAdMode) THEN c smallNo = 1.0D-20 c ELSE smallNo = 1.0D-20 diff --git a/pkg/generic_advdiff/gad_dst3_adv_x.F b/pkg/generic_advdiff/gad_dst3_adv_x.F index 133ee909c3..a456423bdf 100644 --- a/pkg/generic_advdiff/gad_dst3_adv_x.F +++ b/pkg/generic_advdiff/gad_dst3_adv_x.F @@ -61,7 +61,7 @@ SUBROUTINE GAD_DST3_ADV_X( _RL smallNo c _RL Rjjm,Rjjp -c IF (inAdMode) THEN +c IF (inAdMode .AND. useApproxAdvectionInAdMode) THEN c smallNo = 1.0D-20 c ELSE smallNo = 1.0D-20 diff --git a/pkg/generic_advdiff/gad_dst3_adv_y.F b/pkg/generic_advdiff/gad_dst3_adv_y.F index 4ada8cb220..004aee01b0 100644 --- a/pkg/generic_advdiff/gad_dst3_adv_y.F +++ b/pkg/generic_advdiff/gad_dst3_adv_y.F @@ -60,7 +60,7 @@ SUBROUTINE GAD_DST3_ADV_Y( _RL smallNo c _RL Rjjm,Rjjp -c IF (inAdMode) THEN +c IF (inAdMode .AND. useApproxAdvectionInAdMode) THEN c smallNo = 1.0D-20 c ELSE smallNo = 1.0D-20 diff --git a/pkg/generic_advdiff/gad_dst3fl_impl_r.F b/pkg/generic_advdiff/gad_dst3fl_impl_r.F index e2aeb4c4d3..41ac6b8796 100644 --- a/pkg/generic_advdiff/gad_dst3fl_impl_r.F +++ b/pkg/generic_advdiff/gad_dst3fl_impl_r.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GAD_DST3FL_IMPL_R @@ -75,8 +78,14 @@ SUBROUTINE GAD_DST3FL_IMPL_R( _RL mskM, mskP, maskM2, maskP1 _RL Rj, Rjh, cL1, cH3, cM2, th1, th2 _RL deltaTcfl +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey +#endif CEOP +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT loctape_gad = COMMON, (sNx+2*OLx)*(sNy+2*OLy) +#endif C-- process interior interface only: IF ( k.GT.1 .AND. k.LE.Nr ) THEN @@ -96,6 +105,9 @@ SUBROUTINE GAD_DST3FL_IMPL_R( C lowFac & highFac are set such as Psi*Rj = lowFac*Rj + highFac*Rjh DO j=jMin,jMax DO i=iMin,iMax +#ifdef ALLOW_AUTODIFF_TAMC + ikey = i + (sNx+2*OLx)*(j-1) +#endif wCFL = deltaTcfl*ABS(rTrans(i,j)) & *recip_rA(i,j,bi,bj)*recip_drC(k) & *recip_deepFac2F(k)*recip_rhoFacF(k) @@ -115,6 +127,10 @@ SUBROUTINE GAD_DST3FL_IMPL_R( lowFac(i,j) = 0. _d 0 highFac(i,j)= 0. _d 0 ELSE +#ifdef ALLOW_AUTODIFF_TAMC +C These stores to local tape avoid recomputations and associated warnings +CADJ STORE Rjh, Rj = loctape_gad, key = ikey +#endif Rj = ABS(Rj) Rjh = ABS(Rjh) th1 = cL1*Rj+cH3*Rjh diff --git a/pkg/generic_advdiff/gad_fluxlimit_adv_r.F b/pkg/generic_advdiff/gad_fluxlimit_adv_r.F index 8a9ff029df..8e30732dda 100644 --- a/pkg/generic_advdiff/gad_fluxlimit_adv_r.F +++ b/pkg/generic_advdiff/gad_fluxlimit_adv_r.F @@ -5,7 +5,7 @@ C !INTERFACE: ========================================================== SUBROUTINE GAD_FLUXLIMIT_ADV_R( - I bi,bj,k,dTarg, + I bi, bj, k, dTarg, I rTrans, wFld, I tracer, O wT, @@ -32,13 +32,13 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_R( #include "PARAMS.h" C !INPUT PARAMETERS: =================================================== -C bi,bj :: tile indices +C bi, bj :: tile indices C k :: vertical level C rTrans :: vertical volume transport C wFld :: vertical flow C tracer :: tracer field C myThid :: thread number - INTEGER bi,bj,k + INTEGER bi, bj, k _RL dTarg _RL rTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL wFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -50,62 +50,65 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_R( _RL wT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) C !LOCAL VARIABLES: ==================================================== -C i,j :: loop indices +C i, j :: loop indices C kp1 :: =min( k+1 , Nr ) C km1 :: =max( k-1 , 1 ) C km2 :: =max( k-2 , 1 ) -C bi,bj :: tile indices or (1,1) depending on use +C bi, bj :: tile indices or (1,1) depending on use C Cr :: slope ratio -C Rjm,Rj,Rjp :: differences at i-1,i,i+1 +C Rjm, Rj, Rjp :: differences at k-1,k,k+1 C wLoc :: velocity, vertical component - INTEGER i,j,kp1,km1,km2 - _RL Cr,Rjm,Rj,Rjp + INTEGER i, j, kp1, km1, km2 + _RL Cr, Rjm, Rj, Rjp _RL wLoc, wCFL + _RL CrMax + PARAMETER( CrMax = 1.D+6 ) + C Statement function provides Limiter(Cr) #include "GAD_FLUX_LIMITER.h" CEOP - km2=MAX(1,k-2) - km1=MAX(1,k-1) - kp1=MIN(Nr,k+1) + km2 = MAX(1,k-2) + km1 = MAX(1,k-1) + kp1 = MIN(Nr,k+1) IF ( k.GT.Nr) THEN - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx wT(i,j) = 0. ENDDO ENDDO ELSE - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx wLoc = wFld(i,j) wCFL = ABS( wLoc*dTarg*recip_drC(k) ) - Rjp=(tracer(i,j,kp1)-tracer(i,j,k)) - & *maskC(i,j,kp1,bi,bj) - Rj= (tracer(i,j,k) -tracer(i,j,kM1)) - Rjm=(tracer(i,j,km1)-tracer(i,j,kM2)) - & *maskC(i,j,km2,bi,bj) + Rjp = (tracer(i,j,kp1)-tracer(i,j,k)) + & *maskC(i,j,kp1,bi,bj) + Rj = (tracer(i,j,k) -tracer(i,j,km1)) + Rjm = (tracer(i,j,km1)-tracer(i,j,km2)) + & *maskC(i,j,km2,bi,bj) - IF (Rj.NE.0.) THEN - IF (rTrans(i,j).LT.0.) THEN - Cr=Rjm/Rj - ELSE - Cr=Rjp/Rj - ENDIF + IF ( rTrans(i,j).LT.zeroRL ) THEN + Cr = Rjm + ELSE + Cr = Rjp + ENDIF + IF ( ABS(Rj)*CrMax .LE. ABS(Cr) ) THEN + Cr = SIGN( CrMax, Cr )*SIGN( oneRL, Rj ) ELSE - IF (rTrans(i,j).LT.0.) THEN - Cr=Rjm*1.E20 - ELSE - Cr=Rjp*1.E20 - ENDIF + Cr = Cr/Rj ENDIF - Cr=Limiter(Cr) - wT(i,j) = maskC(i,j,kM1,bi,bj)*( - & rTrans(i,j)* - & (tracer(i,j,k)+tracer(i,j,kM1))*0.5 _d 0 - & +ABS(rTrans(i,j))*((1.-Cr)+wCFL*Cr) - & *Rj*0.5 _d 0 ) + +C calculate Limiter Function: + Cr = Limiter(Cr) + + wT(i,j) = maskC(i,j,km1,bi,bj)*( + & rTrans(i,j)* + & (tracer(i,j,k)+tracer(i,j,km1))*0.5 _d 0 + & + ABS(rTrans(i,j))*( (oneRL-Cr) + wCFL*Cr ) + & *Rj*0.5 _d 0 ) ENDDO ENDDO ENDIF diff --git a/pkg/generic_advdiff/gad_fluxlimit_adv_x.F b/pkg/generic_advdiff/gad_fluxlimit_adv_x.F index ece6a138b6..db2ca0ba2f 100644 --- a/pkg/generic_advdiff/gad_fluxlimit_adv_x.F +++ b/pkg/generic_advdiff/gad_fluxlimit_adv_x.F @@ -5,7 +5,7 @@ C !INTERFACE: ========================================================== SUBROUTINE GAD_FLUXLIMIT_ADV_X( - I bi,bj,k, calcCFL, deltaTloc, + I bi, bj, k, calcCFL, deltaTloc, I uTrans, uFld, I maskLocW, tracer, O uT, @@ -27,10 +27,11 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_X( C !USES: =============================================================== IMPLICIT NONE #include "SIZE.h" +#include "EEPARAMS.h" #include "GRID.h" C !INPUT PARAMETERS: =================================================== -C bi,bj :: tile indices +C bi, bj :: tile indices C k :: vertical level C calcCFL :: =T: calculate CFL number ; =F: take uFld as CFL C deltaTloc :: local time-step (s) @@ -38,7 +39,7 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_X( C uFld :: zonal flow / CFL number C tracer :: tracer field C myThid :: thread number - INTEGER bi,bj,k + INTEGER bi, bj, k LOGICAL calcCFL _RL deltaTloc _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -52,49 +53,52 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_X( _RL uT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) C !LOCAL VARIABLES: ==================================================== -C i,j :: loop indices +C i, j :: loop indices C Cr :: slope ratio -C Rjm,Rj,Rjp :: differences at i-1,i,i+1 +C Rjm, Rj, Rjp :: differences at i-1,i,i+1 INTEGER i,j - _RL Cr,Rjm,Rj,Rjp + _RL Cr, Rjm, Rj, Rjp _RL uCFL + _RL CrMax + PARAMETER( CrMax = 1.D+6 ) + C Statement function provides Limiter(Cr) #include "GAD_FLUX_LIMITER.h" CEOP - DO j=1-Oly,sNy+Oly - uT(1-Olx,j)=0. - uT(2-Olx,j)=0. - uT(sNx+Olx,j)=0. + DO j=1-OLy,sNy+OLy + uT(1-OLx,j) = 0. _d 0 + uT(2-OLx,j) = 0. _d 0 + uT(sNx+OLx,j) = 0. _d 0 ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx+2,sNx+Olx-1 + DO j=1-OLy,sNy+OLy + DO i=1-OLx+2,sNx+OLx-1 uCFL = uFld(i,j) IF ( calcCFL ) uCFL = ABS( uFld(i,j)*deltaTloc & *recip_dxC(i,j,bi,bj)*recip_deepFacC(k) ) - Rjp=(tracer(i+1,j)-tracer( i ,j))*maskLocW(i+1,j) - Rj =(tracer( i ,j)-tracer(i-1,j))*maskLocW( i ,j) - Rjm=(tracer(i-1,j)-tracer(i-2,j))*maskLocW(i-1,j) + Rjp = (tracer(i+1,j)-tracer( i ,j))*maskLocW(i+1,j) + Rj = (tracer( i ,j)-tracer(i-1,j))*maskLocW( i ,j) + Rjm = (tracer(i-1,j)-tracer(i-2,j))*maskLocW(i-1,j) - IF (Rj.NE.0.) THEN - IF (uTrans(i,j).GT.0) THEN - Cr=Rjm/Rj - ELSE - Cr=Rjp/Rj - ENDIF + IF ( uTrans(i,j).GT.zeroRL ) THEN + Cr = Rjm + ELSE + Cr = Rjp + ENDIF + IF ( ABS(Rj)*CrMax .LE. ABS(Cr) ) THEN + Cr = SIGN( CrMax, Cr )*SIGN( oneRL, Rj ) ELSE - IF (uTrans(i,j).GT.0) THEN - Cr=Rjm*1.E20 - ELSE - Cr=Rjp*1.E20 - ENDIF + Cr = Cr/Rj ENDIF - Cr=Limiter(Cr) + +C calculate Limiter Function: + Cr = Limiter(Cr) + uT(i,j) = - & uTrans(i,j)*(Tracer(i,j)+Tracer(i-1,j))*0.5 _d 0 - & -ABS(uTrans(i,j))*((1.-Cr)+uCFL*Cr) - & *Rj*0.5 _d 0 + & uTrans(i,j)*(Tracer(i,j)+Tracer(i-1,j))*0.5 _d 0 + & - ABS(uTrans(i,j))*( (oneRL-Cr) + uCFL*Cr ) + & *Rj*0.5 _d 0 ENDDO ENDDO diff --git a/pkg/generic_advdiff/gad_fluxlimit_adv_y.F b/pkg/generic_advdiff/gad_fluxlimit_adv_y.F index d6a6d7d104..b8a40cdeb3 100644 --- a/pkg/generic_advdiff/gad_fluxlimit_adv_y.F +++ b/pkg/generic_advdiff/gad_fluxlimit_adv_y.F @@ -5,7 +5,7 @@ C !INTERFACE: ========================================================== SUBROUTINE GAD_FLUXLIMIT_ADV_Y( - I bi,bj,k, calcCFL, deltaTloc, + I bi, bj, k, calcCFL, deltaTloc, I vTrans, vFld, I maskLocS, tracer, O vT, @@ -27,10 +27,11 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_Y( C !USES: =============================================================== IMPLICIT NONE #include "SIZE.h" +#include "EEPARAMS.h" #include "GRID.h" C !INPUT PARAMETERS: =================================================== -C bi,bj :: tile indices +C bi, bj :: tile indices C k :: vertical level C calcCFL :: =T: calculate CFL number ; =F: take vFld as CFL C deltaTloc :: local time-step (s) @@ -38,7 +39,7 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_Y( C vFld :: meridional flow / CFL number C tracer :: tracer field C myThid :: thread number - INTEGER bi,bj,k + INTEGER bi, bj, k LOGICAL calcCFL _RL deltaTloc _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -52,49 +53,52 @@ SUBROUTINE GAD_FLUXLIMIT_ADV_Y( _RL vT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) C !LOCAL VARIABLES: ==================================================== -C i,j :: loop indices +C i, j :: loop indices C Cr :: slope ratio -C Rjm,Rj,Rjp :: differences at j-1,j,j+1 +C Rjm, Rj, Rjp :: differences at j-1,j,j+1 INTEGER i,j - _RL Cr,Rjm,Rj,Rjp + _RL Cr, Rjm, Rj, Rjp _RL vCFL + _RL CrMax + PARAMETER( CrMax = 1.D+6 ) + C Statement function provides Limiter(Cr) #include "GAD_FLUX_LIMITER.h" CEOP - DO i=1-Olx,sNx+Olx - vT(i,1-Oly)=0. - vT(i,2-Oly)=0. - vT(i,sNy+Oly)=0. + DO i=1-OLx,sNx+OLx + vT(i,1-OLy) = 0. _d 0 + vT(i,2-OLy) = 0. _d 0 + vT(i,sNy+OLy) = 0. _d 0 ENDDO - DO j=1-Oly+2,sNy+Oly-1 - DO i=1-Olx,sNx+Olx + DO j=1-OLy+2,sNy+OLy-1 + DO i=1-OLx,sNx+OLx vCFL = vFld(i,j) IF ( calcCFL ) vCFL = ABS( vFld(i,j)*deltaTloc & *recip_dyC(i,j,bi,bj)*recip_deepFacC(k) ) - Rjp=(tracer(i,j+1)-tracer(i, j ))*maskLocS(i,j+1) - Rj =(tracer(i, j )-tracer(i,j-1))*maskLocS(i, j ) - Rjm=(tracer(i,j-1)-tracer(i,j-2))*maskLocS(i,j-1) + Rjp = (tracer(i,j+1)-tracer(i, j ))*maskLocS(i,j+1) + Rj = (tracer(i, j )-tracer(i,j-1))*maskLocS(i, j ) + Rjm = (tracer(i,j-1)-tracer(i,j-2))*maskLocS(i,j-1) - IF (Rj.NE.0.) THEN - IF (vTrans(i,j).GT.0) THEN - Cr=Rjm/Rj - ELSE - Cr=Rjp/Rj - ENDIF + IF ( vTrans(i,j).GT.zeroRL ) THEN + Cr = Rjm + ELSE + Cr = Rjp + ENDIF + IF ( ABS(Rj)*CrMax .LE. ABS(Cr) ) THEN + Cr = SIGN( CrMax, Cr )*SIGN( oneRL, Rj ) ELSE - IF (vTrans(i,j).GT.0) THEN - Cr=Rjm*1.E20 - ELSE - Cr=Rjp*1.E20 - ENDIF + Cr = Cr/Rj ENDIF - Cr=Limiter(Cr) + +C calculate Limiter Function: + Cr = Limiter(Cr) + vT(i,j) = - & vTrans(i,j)*(Tracer(i,j)+Tracer(i,j-1))*0.5 _d 0 - & -ABS(vTrans(i,j))*((1.-Cr)+vCFL*Cr) - & *Rj*0.5 _d 0 + & vTrans(i,j)*(Tracer(i,j)+Tracer(i,j-1))*0.5 _d 0 + & - ABS(vTrans(i,j))*( (oneRL-Cr) + vCFL*Cr ) + & *Rj*0.5 _d 0 ENDDO ENDDO diff --git a/pkg/generic_advdiff/gad_fluxlimit_impl_r.F b/pkg/generic_advdiff/gad_fluxlimit_impl_r.F index 4f438d6f78..990228db49 100644 --- a/pkg/generic_advdiff/gad_fluxlimit_impl_r.F +++ b/pkg/generic_advdiff/gad_fluxlimit_impl_r.F @@ -27,10 +27,10 @@ SUBROUTINE GAD_FLUXLIMIT_IMPL_R( C !INPUT/OUTPUT PARAMETERS: C == Routine Arguments == -C bi,bj :: tile indices +C bi, bj :: tile indices C k :: vertical level -C iMin,iMax :: computation domain -C jMin,jMax :: computation domain +C iMin, iMax :: computation domain +C jMin, jMax :: computation domain C deltaTarg :: time step C rTrans :: vertical volume transport C recip_hFac :: inverse of cell open-depth factor @@ -51,29 +51,31 @@ SUBROUTINE GAD_FLUXLIMIT_IMPL_R( INTEGER myThid C == Local Variables == -C i,j :: loop indices +C i, j :: loop indices C kp1 :: =min( k+1 , Nr ) C km1 :: =max( k-1 , 1 ) C km2 :: =max( k-2 , 1 ) C Cr :: slope ratio -C Rjm,Rj,Rjp :: differences at i-1,i,i+1 +C Rjm, Rj, Rjp :: differences at k-1,k,k+1 C w_CFL :: Courant-Friedrich-Levy number C upwindFac :: upwind factor C rCenter :: centered contribution C rUpwind :: upwind contribution - INTEGER i,j,kp1,km1,km2 - _RL Cr,Rjm,Rj,Rjp, w_CFL + INTEGER i, j, kp1, km1, km2 + _RL Cr, Rjm, Rj, Rjp, w_CFL _RL upwindFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rCenter, rUpwind _RL deltaTcfl + _RL CrMax + PARAMETER( CrMax = 1.D+6 ) C Statement function provides Limiter(Cr) #include "GAD_FLUX_LIMITER.h" CEOP - km2=MAX(1,k-2) - km1=MAX(1,k-1) - kp1=MIN(Nr,k+1) + km2 = MAX(1,k-2) + km1 = MAX(1,k-1) + kp1 = MIN(Nr,k+1) C-- process interior interface only: IF ( k.GT.1 .AND. k.LE.Nr ) THEN @@ -84,22 +86,25 @@ SUBROUTINE GAD_FLUXLIMIT_IMPL_R( DO i=iMin,iMax w_CFL = deltaTcfl*rTrans(i,j)*recip_rA(i,j,bi,bj)*recip_drC(k) & *recip_deepFac2F(k)*recip_rhoFacF(k) - Rjp=(tFld(i,j,kp1)-tFld(i,j,k) )*maskC(i,j,kp1,bi,bj) - Rj =(tFld(i,j,k) -tFld(i,j,km1)) - Rjm=(tFld(i,j,km1)-tFld(i,j,km2))*maskC(i,j,km2,bi,bj) + Rjp = (tFld(i,j,kp1)-tFld(i,j,k) )*maskC(i,j,kp1,bi,bj) + Rj = (tFld(i,j,k) -tFld(i,j,km1)) + Rjm = (tFld(i,j,km1)-tFld(i,j,km2))*maskC(i,j,km2,bi,bj) - IF ( Rj.NE.0. _d 0) THEN - IF (rTrans(i,j).LT.0. _d 0) THEN - Cr=Rjm/Rj - ELSE - Cr=Rjp/Rj - ENDIF - upwindFac(i,j) = 1. _d 0 - & - Limiter(Cr) * ( 1. _d 0 + ABS(w_CFL) ) - upwindFac(i,j) = MAX( -1. _d 0, upwindFac(i,j) ) + IF ( rTrans(i,j).LT.zeroRL ) THEN + Cr = Rjm ELSE - upwindFac(i,j) = 0. _d 0 + Cr = Rjp ENDIF + IF ( ABS(Rj)*CrMax .LE. ABS(Cr) ) THEN + Cr = SIGN( CrMax, Cr )*SIGN( oneRL, Rj ) + ELSE + Cr = Cr/Rj + ENDIF + +C calculate upwind fraction using Limiter Function: + upwindFac(i,j) = 1. _d 0 + & - Limiter(Cr) * ( 1. _d 0 + ABS(w_CFL) ) + upwindFac(i,j) = MAX( -1. _d 0, upwindFac(i,j) ) ENDDO ENDDO diff --git a/pkg/generic_advdiff/gad_os7mp_adv_r.F b/pkg/generic_advdiff/gad_os7mp_adv_r.F index a6af9a7253..e1e1f953a6 100644 --- a/pkg/generic_advdiff/gad_os7mp_adv_r.F +++ b/pkg/generic_advdiff/gad_os7mp_adv_r.F @@ -53,8 +53,8 @@ SUBROUTINE GAD_OS7MP_ADV_R( kp2=MIN(Nr,k+2) kp3=MIN(Nr,k+3) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx wLoc = wFld(i,j) cfl = abs(wLoc*deltaTloc*recip_drC(k)) @@ -173,12 +173,14 @@ SUBROUTINE GAD_OS7MP_ADV_R( B = 4. _d 0*d2p1 - d2 C = d2 D = d2p1 - dp1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dp1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) A = 4. _d 0*d2m1 - d2 B = 4. _d 0*d2 - d2m1 C = d2m1 D = d2 - dm1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dm1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) c qMD = 0.5*( ( Qi + Qip ) - dp1h ) c qMD = 0.5 _d 0*( ( 2. _d 0*Qi + DelIp ) - dp1h ) c qUL = Qi + (1. _d 0-cfl)/(cfl+Eps)*DelI @@ -190,9 +192,9 @@ SUBROUTINE GAD_OS7MP_ADV_R( PhiLC = rp1h_cfl*( 1. _d 0+dm1h*recip_DelI ) C-- PhiMin = max(min(0. _d 0,PhiMD), - & min(0. _d 0,2. _d 0*rp1h_cfl,PhiLC)) + & min(min(0. _d 0,2. _d 0*rp1h_cfl),PhiLC)) PhiMax = min(max(2. _d 0/(1. _d 0-cfl),PhiMD), - & max(0. _d 0,2. _d 0*rp1h_cfl,PhiLC)) + & max(max(0. _d 0,2. _d 0*rp1h_cfl),PhiLC)) Phi = max(PhiMin,min(Phi,PhiMax)) Psi = Phi * 0.5 _d 0 * (1. _d 0 - cfl) diff --git a/pkg/generic_advdiff/gad_os7mp_adv_x.F b/pkg/generic_advdiff/gad_os7mp_adv_x.F index 60222cd8cd..83e787fc18 100644 --- a/pkg/generic_advdiff/gad_os7mp_adv_x.F +++ b/pkg/generic_advdiff/gad_os7mp_adv_x.F @@ -47,17 +47,17 @@ SUBROUTINE GAD_OS7MP_ADV_X( Eps = 1. _d -20 - DO j=1-Oly,sNy+Oly - uT(1-Olx,j)=0. _d 0 - uT(2-Olx,j)=0. _d 0 - uT(3-Olx,j)=0. _d 0 - uT(4-Olx,j)=0. _d 0 - uT(sNx+Olx-2,j)=0. _d 0 - uT(sNx+Olx-1,j)=0. _d 0 - uT(sNx+Olx,j)=0. _d 0 + DO j=1-OLy,sNy+OLy + uT(1-OLx,j)=0. _d 0 + uT(2-OLx,j)=0. _d 0 + uT(3-OLx,j)=0. _d 0 + uT(4-OLx,j)=0. _d 0 + uT(sNx+OLx-2,j)=0. _d 0 + uT(sNx+OLx-1,j)=0. _d 0 + uT(sNx+OLx,j)=0. _d 0 ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx+4,sNx+Olx-3 + DO j=1-OLy,sNy+OLy + DO i=1-OLx+4,sNx+OLx-3 uLoc = uFld(i,j) cfl = uLoc @@ -177,12 +177,14 @@ SUBROUTINE GAD_OS7MP_ADV_X( B = 4. _d 0*d2p1 - d2 C = d2 D = d2p1 - dp1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dp1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) A = 4. _d 0*d2m1 - d2 B = 4. _d 0*d2 - d2m1 C = d2m1 D = d2 - dm1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dm1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) c qMD = 0.5*( ( Qi + Qip ) - dp1h ) c qMD = 0.5 _d 0*( ( 2. _d 0*Qi + DelIp ) - dp1h ) c qUL = Qi + (1. _d 0-cfl)/(cfl+Eps)*DelI @@ -194,9 +196,9 @@ SUBROUTINE GAD_OS7MP_ADV_X( PhiLC = rp1h_cfl*( 1. _d 0+dm1h*recip_DelI ) C-- PhiMin = max( min(0. _d 0,PhiMD), - & min(0. _d 0,2. _d 0*rp1h_cfl,PhiLC) ) + & min(min(0. _d 0,2. _d 0*rp1h_cfl),PhiLC) ) PhiMax = min( max(2. _d 0/(1. _d 0-cfl),PhiMD), - & max(0. _d 0,2. _d 0*rp1h_cfl,PhiLC) ) + & max(max(0. _d 0,2. _d 0*rp1h_cfl),PhiLC) ) Phi = max(PhiMin,min(Phi,PhiMax)) Psi = Phi * 0.5 _d 0 * (1. _d 0 - cfl) diff --git a/pkg/generic_advdiff/gad_os7mp_adv_y.F b/pkg/generic_advdiff/gad_os7mp_adv_y.F index 6d0ef7cd32..6f4b408822 100644 --- a/pkg/generic_advdiff/gad_os7mp_adv_y.F +++ b/pkg/generic_advdiff/gad_os7mp_adv_y.F @@ -47,17 +47,17 @@ SUBROUTINE GAD_OS7MP_ADV_Y( Eps = 1. _d -20 - DO i=1-Olx,sNx+Olx - vT(i,1-Oly)=0. _d 0 - vT(i,2-Oly)=0. _d 0 - vT(i,3-Oly)=0. _d 0 - vT(i,4-Oly)=0. _d 0 - vT(i,sNy+Oly-2)=0. _d 0 - vT(i,sNy+Oly-1)=0. _d 0 - vT(i,sNy+Oly)=0. _d 0 + DO i=1-OLx,sNx+OLx + vT(i,1-OLy)=0. _d 0 + vT(i,2-OLy)=0. _d 0 + vT(i,3-OLy)=0. _d 0 + vT(i,4-OLy)=0. _d 0 + vT(i,sNy+OLy-2)=0. _d 0 + vT(i,sNy+OLy-1)=0. _d 0 + vT(i,sNy+OLy)=0. _d 0 ENDDO - DO j=1-Oly+4,sNy+Oly-3 - DO i=1-Olx,sNx+Olx + DO j=1-OLy+4,sNy+OLy-3 + DO i=1-OLx,sNx+OLx vLoc = vFld(i,j) cfl = vLoc @@ -177,12 +177,14 @@ SUBROUTINE GAD_OS7MP_ADV_Y( B = 4. _d 0*d2p1 - d2 C = d2 D = d2p1 - dp1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dp1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) A = 4. _d 0*d2m1 - d2 B = 4. _d 0*d2 - d2m1 C = d2m1 D = d2 - dm1h = max(min(A,B,C,D),0. _d 0)+min(max(A,B,C,D),0. _d 0) + dm1h = max(min(min(A,B),min(C,D)),0. _d 0) + & + min(max(max(A,B),max(C,D)),0. _d 0) c qMD = 0.5*( ( Qi + Qip ) - dp1h ) c qMD = 0.5 _d 0*( ( 2. _d 0*Qi + DelIp ) - dp1h ) c qUL = Qi + (1. _d 0-cfl)/(cfl+Eps)*DelI @@ -194,9 +196,9 @@ SUBROUTINE GAD_OS7MP_ADV_Y( PhiLC = rp1h_cfl*( 1. _d 0+dm1h*recip_DelI ) C-- PhiMin = max( min(0. _d 0,PhiMD), - & min(0. _d 0,2. _d 0*rp1h_cfl,PhiLC) ) + & min(min(0. _d 0,2. _d 0*rp1h_cfl),PhiLC) ) PhiMax = min( max(2. _d 0/(1. _d 0-cfl),PhiMD), - & max(0. _d 0,2. _d 0*rp1h_cfl,PhiLC) ) + & max(max(0. _d 0,2. _d 0*rp1h_cfl),PhiLC) ) Phi = max(PhiMin,min(Phi,PhiMax)) Psi = Phi * 0.5 _d 0 * (1. _d 0 - cfl) diff --git a/pkg/generic_advdiff/gad_som_adv_r.F b/pkg/generic_advdiff/gad_som_adv_r.F index 0cb633d496..7b30bf1856 100644 --- a/pkg/generic_advdiff/gad_som_adv_r.F +++ b/pkg/generic_advdiff/gad_som_adv_r.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GAD_SOM_ADV_R @@ -39,6 +42,9 @@ SUBROUTINE GAD_SOM_ADV_R( #include "PARAMS.h" #include "GRID.h" #include "GAD.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -115,6 +121,9 @@ SUBROUTINE GAD_SOM_ADV_R( CEOP #ifdef ALLOW_AUTODIFF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT somtape_r = COMMON, 1 +# endif alp(1,1,kDw) = alp(1,1,kDw) aln(1,1,kDw) = aln(1,1,kDw) fp_v(1,1,kDw) = fp_v(1,1,kDw) @@ -146,6 +155,10 @@ SUBROUTINE GAD_SOM_ADV_R( noFlowAcrossSurf = rigidLid .OR. nonlinFreeSurf.GE.1 & .OR. select_rStar.NE.0 +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xz,sm_y,sm_yz,sm_z,sm_zz +CADJ & = somtape_r, key = 1, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C--- part.1 : calculate flux for all moments DO j=jMinAdvR,jMaxAdvR diff --git a/pkg/generic_advdiff/gad_som_adv_x.F b/pkg/generic_advdiff/gad_som_adv_x.F index 4d4394f308..f1836cf114 100644 --- a/pkg/generic_advdiff/gad_som_adv_x.F +++ b/pkg/generic_advdiff/gad_som_adv_x.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GAD_SOM_ADV_X @@ -35,6 +38,9 @@ SUBROUTINE GAD_SOM_ADV_X( #include "SIZE.h" #include "EEPARAMS.h" #include "GAD.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -117,6 +123,9 @@ SUBROUTINE GAD_SOM_ADV_X( _RL fn_yz(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CEOP +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT somtape_x = COMMON, 2 +#endif recip_dT = 0. IF ( deltaTloc.GT.zeroRL ) recip_dT = 1.0 _d 0 / deltaTloc @@ -149,6 +158,10 @@ SUBROUTINE GAD_SOM_ADV_X( DO ns=1,nbStrips IF ( limiter.EQ.1 ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_x, key = ns, kind = isbyte +#endif DO j=jMinUpd(ns),jMaxUpd(ns) DO i=iMinUpd(1)-1,iMaxUpd(1)+1 C If flux-limiting transport is to be applied, place limits on @@ -167,6 +180,10 @@ SUBROUTINE GAD_SOM_ADV_X( ENDDO ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_x, key = ns, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C--- part.1 : calculate flux for all moments DO j=jMinUpd(ns),jMaxUpd(ns) @@ -218,6 +235,10 @@ SUBROUTINE GAD_SOM_ADV_X( C-- end 1rst loop on strip number "ns" c ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_x, key = ns, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- start 2nd loop on strip number "ns" c DO ns=1,nbStrips diff --git a/pkg/generic_advdiff/gad_som_adv_y.F b/pkg/generic_advdiff/gad_som_adv_y.F index bccc6b15e9..c4a70c53c3 100644 --- a/pkg/generic_advdiff/gad_som_adv_y.F +++ b/pkg/generic_advdiff/gad_som_adv_y.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GAD_SOM_ADV_Y @@ -35,6 +38,9 @@ SUBROUTINE GAD_SOM_ADV_Y( #include "SIZE.h" #include "EEPARAMS.h" #include "GAD.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -117,6 +123,9 @@ SUBROUTINE GAD_SOM_ADV_Y( _RL fn_yz(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CEOP +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT somtape_y = COMMON, 2 +#endif recip_dT = 0. IF ( deltaTloc.GT.zeroRL ) recip_dT = 1.0 _d 0 / deltaTloc @@ -149,6 +158,10 @@ SUBROUTINE GAD_SOM_ADV_Y( DO ns=1,nbStrips IF ( limiter.EQ.1 ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_y, key = ns, kind = isbyte +#endif DO j=jMinUpd(1)-1,jMaxUpd(1)+1 DO i=iMinUpd(ns),iMaxUpd(ns) C If flux-limiting transport is to be applied, place limits on @@ -167,6 +180,10 @@ SUBROUTINE GAD_SOM_ADV_Y( ENDDO ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_y, key = ns, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C--- part.1 : calculate flux for all moments DO j=jMinUpd(1),jMaxUpd(1)+1 @@ -219,6 +236,10 @@ SUBROUTINE GAD_SOM_ADV_Y( C-- end 1rst loop on strip number "ns" c ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE sm_o,sm_v,sm_x,sm_xx,sm_xy,sm_xz,sm_y,sm_yy,sm_yz,sm_z,sm_zz +CADJ & = somtape_y, key = ns, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- start 2nd loop on strip number "ns" c DO ns=1,nbStrips diff --git a/pkg/generic_advdiff/gad_som_advect.F b/pkg/generic_advdiff/gad_som_advect.F index d8a925c73d..a1a0d5a439 100644 --- a/pkg/generic_advdiff/gad_som_advect.F +++ b/pkg/generic_advdiff/gad_som_advect.F @@ -1,4 +1,7 @@ #include "GAD_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP @@ -27,6 +30,12 @@ SUBROUTINE GAD_SOM_ADVECT( #include "PARAMS.h" #include "GRID.h" #include "GAD.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# endif +#endif #ifdef ALLOW_EXCH2 #include "W2_EXCH2_SIZE.h" #include "W2_EXCH2_TOPOLOGY.h" @@ -133,6 +142,9 @@ SUBROUTINE GAD_SOM_ADVECT( LOGICAL N_edge, S_edge, E_edge, W_edge LOGICAL noFlowAcrossSurf CHARACTER*(MAX_LEN_MBUF) msgBuf +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ipasskey +#endif #ifdef ALLOW_EXCH2 INTEGER myTile #endif @@ -234,6 +246,17 @@ SUBROUTINE GAD_SOM_ADVECT( limiter = MOD(advectionScheme, 10) +#ifdef ALLOW_AUTODIFF_TAMC + IF ( npass.GT.maxcube ) THEN + WRITE(msgBuf,'(A,2(I3,A))') 'S/R GAD_SOM_ADVECT: npass =', + & npass, ' >', maxcube, ' = maxcube, ==> check "tamc.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GAD_SOM_ADVECT' + ENDIF +CADJ INIT somtape = COMMON, 1 +CADJ INIT somtape_k = COMMON, Nr +CADJ INIT somtape_k_pass = COMMON, maxcube*Nr +#endif C-- Start of k loop for horizontal fluxes DO k=1,Nr @@ -268,9 +291,18 @@ SUBROUTINE GAD_SOM_ADVECT( ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE smtr(:,:,k,bi,bj,:) = somtape_k, key=k, kind=isbyte +CADJ STORE smtr0(:,:,k) = somtape_k, key=k, kind=isbyte +CADJ STORE smVol(:,:,k) = somtape_k, key=k, kind=isbyte +CADJ STORE smcorners = somtape_k, key=k, kind=isbyte +#endif C-- Multiple passes for different directions on different tiles C-- For cube need one pass for each of red, green and blue axes. DO ipass=1,npass +#ifdef ALLOW_AUTODIFF_TAMC + ipasskey = ipass + (k-1) * maxcube +#endif /* ALLOW_AUTODIFF_TAMC */ interiorOnly = .FALSE. overlapOnly = .FALSE. @@ -296,6 +328,12 @@ SUBROUTINE GAD_SOM_ADVECT( calc_fluxes_X = MOD(ipass,2).EQ.1 calc_fluxes_Y = .NOT.calc_fluxes_X ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE smtr(:,:,k,bi,bj,:) =somtape_k_pass,key=ipasskey,kind=isbyte +CADJ STORE smtr0(:,:,k) =somtape_k_pass,key=ipasskey,kind=isbyte +CADJ STORE smVol(:,:,k) =somtape_k_pass,key=ipasskey,kind=isbyte +CADJ STORE smcorners =somtape_k_pass,key=ipasskey,kind=isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -390,7 +428,6 @@ SUBROUTINE GAD_SOM_ADVECT( C-- End of Y direction ENDIF - C-- End of ipass loop ENDDO @@ -451,6 +488,10 @@ SUBROUTINE GAD_SOM_ADVECT( IF ( .NOT.implicitAdvection ) THEN C-- Apply limiter (if any): +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE smtr(:,:,:,bi,bj,:) = somtape, key=1, kind=isbyte +CADJ STORE smtr0 = somtape, key=1, kind=isbyte +#endif CALL GAD_SOM_LIM_R( bi,bj, limiter, U smVol, U smTr0, @@ -467,6 +508,18 @@ SUBROUTINE GAD_SOM_ADVECT( C-- Start of k loop for vertical flux DO k=Nr,1,-1 +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE smtr(:,:,k,bi,bj,:) = somtape_k, key=k, kind=isbyte +CADJ STORE smtr0(:,:,k) = somtape_k, key=k, kind=isbyte +CADJ STORE smVol(:,:,k) = somtape_k, key=k, kind=isbyte +CADJ STORE alp, aln = somtape_k, key=k, kind=isbyte +CADJ STORE fp_v,fn_v,fp_o,fn_o,fp_x,fn_x,fp_y,fn_y,fp_z,fn_z +CADJ & = somtape_k, key=k, kind=isbyte +CADJ STORE fp_xx, fn_xx, fp_yy, fn_yy, fp_zz, fn_zz +CADJ & = somtape_k, key=k, kind=isbyte +CADJ STORE fp_xy, fn_xy, fp_xz, fn_xz, fp_yz, fn_yz +CADJ & = somtape_k, key=k, kind=isbyte +#endif C-- kUp Cycles through 1,2 to point to w-layer above C-- kDown Cycles through 2,1 to point to w-layer below kUp = 1+MOD(Nr-k,2) diff --git a/pkg/ggl90/GGL90.h b/pkg/ggl90/GGL90.h index 6420cbca46..1cbf94430d 100644 --- a/pkg/ggl90/GGL90.h +++ b/pkg/ggl90/GGL90.h @@ -4,13 +4,13 @@ CBOP C !ROUTINE: GGL90.h C !DESCRIPTION: \bv -C /==========================================================\ +C *==========================================================* C | GGL90.h | C | o Basic header for Garpar et al. (1990) | C | vertical mixing parameterization. Implementation | C | follows OPA implementation of Blanke+Delecuse (1993) | C | Contains all GGL90 field declarations. | -C \==========================================================/ +C *==========================================================* C----------------------------------------------------------------------- C @@ -34,19 +34,23 @@ C GGL90mixingLengthMin - Mininum mixing length C mxlMaxFlag - Flag for limiting mixing-length method (default=0) C mxlSurfFlag - Flag to force mixing near ocean surface (default= F ) C calcMeanVertShear :: calculate the mean (@ grid-cell center) of vertical -C shear compon. (instead of vert. shear of mean flow) +C shear compon. (instead of vert. shear of mean flow); +C also applies to surface stress (uStarSquare) C C useIDEMIX - turn on internal wave mixing contribution modeled by C IDEMIX version 1: C - Olbers, D. and Eden, C. (2013), J. Phys. Oceano. C doi:10.1175/JPO-D-12-0207.1 C +C useLANGMUIR - turn on the parameterization of Langmuir circulation +C by Tak, Song et al. (2022), Ocean Modelling +C C GGL90dumpFreq - analogue of dumpFreq (= default) -C GGL90taveFreq - analogue of taveFreq (= default) C GGL90mixingMaps - output to standard out (default = .FALSE.) C GGL90writeState - output to files (default = .FALSE.) C -C Time varying parameters computed by subroutine ggl90_calc +C Time varying parameters computed by subroutine ggl90_calc, defined at +C interface (wVel-like) C GGL90TKE - prognostic variable stepped forward in time ((m/s)^2) C GGL90viscAr - Vertical eddy viscosity coefficient (m^2/s) C GGL90diffKr - Vertical diffusion coefficient for heat, @@ -69,7 +73,7 @@ CEOP _RL GGL90mixingLengthMin _RL GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom _RL GGL90viscMax, GGL90diffMax - _RL GGL90dumpFreq, GGL90taveFreq + _RL GGL90dumpFreq INTEGER mxlMaxFlag COMMON /GGL90_PARMS_R/ & GGL90ck, GGL90ceps, @@ -78,7 +82,7 @@ CEOP & GGL90mixingLengthMin, & GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom, & GGL90viscMax, GGL90diffMax, - & GGL90dumpFreq, GGL90taveFreq, mxlMaxFlag + & GGL90dumpFreq, mxlMaxFlag _RL GGL90TKE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL GGL90viscArU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) @@ -90,10 +94,11 @@ CEOP LOGICAL GGL90isOn, GGL90mixingMaps, GGL90writeState LOGICAL GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear LOGICAL useIDEMIX + LOGICAL useLANGMUIR COMMON /GGL90_PARMS_L/ & GGL90isOn, GGL90mixingMaps, GGL90writeState, & GGL90_dirichlet, mxlSurfFlag, calcMeanVertShear, - & useIDEMIX + & useIDEMIX, useLANGMUIR #ifdef ALLOW_GGL90_SMOOTH COMMON /GGL90_CORNER/ mskCor @@ -101,37 +106,68 @@ CEOP #endif #ifdef ALLOW_GGL90_IDEMIX -c----------------------------------------------------------------------- -c IDEMIX parameter -c----------------------------------------------------------------------- - _RL IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma, IDEMIX_jstar - _RL IDEMIX_mu0, IDEMIX_diff_min - _RL IDEMIX_mixing_efficiency, IDEMIX_diff_max - _RL IDEMIX_frac_F_b, IDEMIX_frac_F_s -c----------------------------------------------------------------------- -c IDEMIX 3-d fields -c----------------------------------------------------------------------- - _RL IDEMIX_E (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL IDEMIX_V0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL IDEMIX_tau_d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -c----------------------------------------------------------------------- -c IDEMIX 2-d fields -c----------------------------------------------------------------------- - _RL IDEMIX_F_B(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL IDEMIX_F_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +C----------------------------------------------------------------------- +C +C IDEMIX parameters +C IDEMIX_tau_v :: time scale for vertical symmetrisation (s), def: 1d +C IDEMIX_tau_h :: time scale for horizontal symmetrisation (s), def: 10d +C IDEMIX_gamma :: scaling factor (see Olbers and Eden 2013, App) def: 1.57 +C IDEMIX_jstar :: spectral bandwidth in modes (default=10.) +C IDEMIX_mu0 :: dissipation parameter (wrong default=4/3, should be 1/3) +C IDEMIX_diff_min :: minimum diffusivity, not used (def: 1e-9) +C IDEMIX_mixing_efficiency :: used for diagnosing Osborn diff (def: 0.1666) +C IDEMIX_diff_max :: maximum Osborn diffusivity (def: 1) +C IDEMIX_frac_F_b :: scaling factor for bottom forcing (def: 1) +C IDEMIX_frac_F_s :: scaling factor for surface forcing (def: 0.2, +C because only 20% of the surface wind energy input is +C assumed to reach the interior below the mixed layer.) +C IDEMIX_tidal_file :: file containing tidal forcing +C IDEMIX_wind_file :: file containing surface wind forcing +C IDEMIX_include_GM :: include eddy contribution parameterized by GMredi +C IDEMIX_include_GM_bottom :: include eddy contribution only at the bottom +C +C----------------------------------------------------------------------- + _RL IDEMIX_tau_v, IDEMIX_tau_h, IDEMIX_gamma, IDEMIX_jstar + _RL IDEMIX_mu0, IDEMIX_diff_min + _RL IDEMIX_mixing_efficiency, IDEMIX_diff_max + _RL IDEMIX_frac_F_b, IDEMIX_frac_F_s +C----------------------------------------------------------------------- +C +C IDEMIX 3-d fields, defined at interfaces (wVel-like) +C IDEMIX_E :: total energy of internal waves +C +C IDEMIX 2-d fields +C IDEMIX_F_B :: internal wave energy bottom forcing field (e.g., tides) +C IDEMIX_F_S :: IW energy surface forcing field (e.g., wind stress) +C +C----------------------------------------------------------------------- + _RL IDEMIX_E (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL IDEMIX_F_B(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + _RL IDEMIX_F_S(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) + + COMMON /GGL90_IDEMIX_VARS/ IDEMIX_E, IDEMIX_F_b, IDEMIX_F_S - COMMON /GGL90_IDEMIX_01/ IDEMIX_E,IDEMIX_V0,IDEMIX_tau_d - & ,IDEMIX_F_b,IDEMIX_F_S - & ,IDEMIX_tau_v,IDEMIX_tau_h,IDEMIX_gamma,IDEMIX_jstar - & ,IDEMIX_mu0,IDEMIX_mixing_efficiency,IDEMIX_diff_max - & ,IDEMIX_diff_min,IDEMIX_frac_F_b, IDEMIX_frac_F_s + COMMON /GGL90_IDEMIX_R/ + & IDEMIX_tau_v, IDEMIX_tau_h, IDEMIX_gamma, IDEMIX_jstar, + & IDEMIX_mu0, IDEMIX_mixing_efficiency, IDEMIX_diff_max, + & IDEMIX_diff_min, IDEMIX_frac_F_b, IDEMIX_frac_F_s CHARACTER*(MAX_LEN_FNAM) & IDEMIX_tidal_file, IDEMIX_wind_file + COMMON /GLL90_IDEMIX_C/ + & IDEMIX_tidal_file, IDEMIX_wind_file + LOGICAL IDEMIX_include_GM, IDEMIX_include_GM_bottom - COMMON /GLL90_IMIX_02/ - & IDEMIX_tidal_file, IDEMIX_wind_file, + COMMON /GLL90_IDEMIX_L/ & IDEMIX_include_GM, IDEMIX_include_GM_bottom #endif /* ALLOW_GGL90_IDEMIX */ +#ifdef ALLOW_GGL90_LANGMUIR +C LC_Gamma :: mixing-length Amplification factor from Langmuir Circ. +C LC_num :: Value for the Langmuir number (no unit) +C LC_lambda :: vertical scale for Stokes velocity profile ( m ) + _RL LC_Gamma, LC_num, LC_lambda + COMMON /GGL90_LCPARA/ LC_Gamma, LC_num, LC_lambda +#endif /* ALLOW_GGL90_LANGMUIR */ + #endif /* ALLOW_GGL90 */ diff --git a/pkg/ggl90/GGL90_OPTIONS.h b/pkg/ggl90/GGL90_OPTIONS.h index 6432383ffc..9597ea414f 100644 --- a/pkg/ggl90/GGL90_OPTIONS.h +++ b/pkg/ggl90/GGL90_OPTIONS.h @@ -23,6 +23,17 @@ C originally implemented in OPA. C allow IDEMIX model #undef ALLOW_GGL90_IDEMIX +#ifdef ALLOW_GGL90_IDEMIX +C The cvmix version of idemix uses different regularisations for the +C Coriolis parameter, buoyancy frequency etc, when used in the denominator +# define GGL90_IDEMIX_CVMIX_VERSION +#endif + +C include Langmuir circulation parameterization +#undef ALLOW_GGL90_LANGMUIR + +C recover old bug prior to Jun 2023 +#undef GGL90_MISSING_HFAC_BUG #endif /* ALLOW_GGL90 */ #endif /* GGL90_OPTIONS_H */ diff --git a/pkg/ggl90/GGL90_TAVE.h b/pkg/ggl90/GGL90_TAVE.h deleted file mode 100644 index 5960bb8958..0000000000 --- a/pkg/ggl90/GGL90_TAVE.h +++ /dev/null @@ -1,31 +0,0 @@ -#ifdef ALLOW_GGL90 - -C *==========================================================* -C | GGL90_TAVE.h -C | o Header for GGL90 time-average output -C *==========================================================* - -#ifdef ALLOW_TIMEAVE - -C---------------------------------------------------------------- -C GGL90_timeAve - time of temporal integration (s) for each thread -C---------------------------------------------------------------- - - _RL GGL90_timeAve(nSx,nSy) - COMMON /GGL90_TAVE_COUNT/ GGL90_timeAve - -C---------------------------------------------------------------- -C GGL90*tave - Time-averaging GGL90 variables -C---------------------------------------------------------------- - - _RL GGL90TKEtave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL GGL90viscArUtave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL GGL90viscArVtave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL GGL90diffKrtave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /GGL90_TAVE_FIELDS/ - & GGL90TKEtave, GGL90diffKrtave, - & GGL90viscArUtave, GGL90viscArVtave - -#endif /* ALLOW_TIMEAVE */ - -#endif /* ALLOW_GGL90 */ diff --git a/pkg/ggl90/ggl90_ad_diff.list b/pkg/ggl90/ggl90_ad_diff.list index 0d6c530e20..934253aace 100644 --- a/pkg/ggl90/ggl90_ad_diff.list +++ b/pkg/ggl90/ggl90_ad_diff.list @@ -1,3 +1,4 @@ +ggl90_add_stokesdrift.f ggl90_calc_diff.f ggl90_calc_visc.f ggl90_calc.f diff --git a/pkg/ggl90/ggl90_add_stokesdrift.F b/pkg/ggl90/ggl90_add_stokesdrift.F new file mode 100644 index 0000000000..26c5529c76 --- /dev/null +++ b/pkg/ggl90/ggl90_add_stokesdrift.F @@ -0,0 +1,79 @@ +#include "GGL90_OPTIONS.h" + +CBOP +C !ROUTINE: GGL90_ADD_STOKESDRIFT + +C !INTERFACE: ========================================================== + SUBROUTINE GGL90_ADD_STOKESDRIFT( + O uRes, vRes, + I uFld, vFld, + I k, bi, bj, myThid ) + +C !DESCRIPTION: +C Add Stokes-drift contribution to Eulerien velocity to get residual flow + +C !USES: =============================================================== + IMPLICIT NONE +C == Global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "FFIELDS.h" +#include "GGL90.h" + +C !INPUT/OUTPUT PARAMETERS: =================================================== +C uRes, vRes :: residual flow with Stokes-drift added +C uFld, vFld :: Eulerien horizontal velocity, 2 compon. +C k :: current vertical level +C bi, bj :: current tile indices +C myThid :: my Thread Id number + _RL uRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER k, bi, bj + INTEGER myThid + +#ifdef ALLOW_GGL90_LANGMUIR +C !LOCAL VARIABLES: ==================================================== +C i, j :: loop indices +C uStar, vStar :: frictional velocity component + INTEGER i,j + _RL uStar, vStar, recip_Lasq, depthFac + _RL stokesU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL stokesV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +CEOP + + IF ( useLANGMUIR ) THEN + +C- Calculate Stokes-Drift (fct of wind-stress) +C surface Stokes-Drift velocity is just (uStar,vStar)/ LC_num^2 + recip_Lasq = 1. _d 0 / LC_num + recip_Lasq = recip_Lasq * recip_Lasq + depthFac = recip_Lasq*EXP( 4. _d 0 *PI/LC_lambda*rC(k) ) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + uStar = SIGN( SQRT(ABS(surfaceForcingU(i,j,bi,bj))), + & surfaceForcingU(i,j,bi,bj) ) + stokesU(i,j) = uStar * depthFac + vStar = SIGN( SQRT(ABS(surfaceForcingV(i,j,bi,bj))), + & surfaceForcingV(i,j,bi,bj) ) + stokesV(i,j) = vStar * depthFac + ENDDO + ENDDO + +C- Add Stokes-Drift to Eulerien velocity to get residual flow: + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + uRes(i,j) = uFld(i,j) + stokesU(i,j)*maskW(i,j,k,bi,bj) + vRes(i,j) = vFld(i,j) + stokesV(i,j)*maskS(i,j,k,bi,bj) + ENDDO + ENDDO + + ENDIF + +#endif /* ALLOW_GGL90_LANGMUIR */ + + RETURN + END diff --git a/pkg/ggl90/ggl90_calc.F b/pkg/ggl90/ggl90_calc.F index ef470f134e..d28594413c 100644 --- a/pkg/ggl90/ggl90_calc.F +++ b/pkg/ggl90/ggl90_calc.F @@ -1,4 +1,7 @@ #include "GGL90_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: GGL90_CALC @@ -13,11 +16,12 @@ SUBROUTINE GGL90_CALC( C | o Compute all GGL90 fields defined in GGL90.h | C *==========================================================* C | Equation numbers refer to | -C | Gaspar et al. (1990), JGR 95 (C9), pp 16,179 | +C | Gaspar et al. (1990), JGR 95 (C9), pp 16,179 | C | Some parts of the implementation follow Blanke and | -C | Delecuse (1993), JPO, and OPA code, in particular the | -C | computation of the | -C | mixing length = max(min(lk,depth),lkmin) | +C | Delecuse (1993), JPO, and OPA code, in particular the | +C | computation of the | +C | mixing length = max(min(lk,depth),lkmin) | +C | Note: Only call this S/R if Nr > 1 (no use if Nr=1) | C *==========================================================* C global parameters updated by ggl90_calc @@ -35,6 +39,12 @@ SUBROUTINE GGL90_CALC( #include "FFIELDS.h" #include "GRID.h" #include "GGL90.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT PARAMETERS: =================================================== C Routine arguments @@ -51,14 +61,26 @@ SUBROUTINE GGL90_CALC( #ifdef ALLOW_GGL90 +#ifdef ALLOW_DIAGNOSTICS + LOGICAL DIAGNOSTICS_IS_ON + EXTERNAL DIAGNOSTICS_IS_ON +#endif /* ALLOW_DIAGNOSTICS */ + C !LOCAL VARIABLES: ==================================================== -C Local constants C iMin,iMax,jMin,jMax :: index boundaries of computation domain -C i, j, k, kp1,km1 :: array computation indices -C kSurf, kBottom :: vertical indices of domain boundaries +C i, j, k :: array computation indices +C kSrf :: vertical index of surface level +C kTop :: index of top interface (just below surf. level) +C kBot :: index of bottom interface (just above bottom lev.) C hFac/hFacI :: fractional thickness of W-cell C explDissFac :: explicit Dissipation Factor (in [0-1]) C implDissFac :: implicit Dissipation Factor (in [0-1]) +C +C In general, all 3D variables are defined at W-points (i.e., +C between k and k-1), all 2D variables are also defined at W-points +C or at the very surface level (like uStarSquare) +C +C totalDepth :: thickness of water column (inverse of recip_Rcol) C uStarSquare :: square of friction velocity C verticalShear :: (squared) vertical shear of horizontal velocity C Nsquare :: squared buoyancy freqency @@ -69,61 +91,102 @@ SUBROUTINE GGL90_CALC( C TKEdissipation :: dissipation of TKE C GGL90mixingLength:: mixing length of scheme following Banke+Delecuse C rMixingLength:: inverse of mixing length -C totalDepth :: thickness of water column (inverse of recip_Rcol) C TKEPrandtlNumber :: here, an empirical function of the Richardson number INTEGER iMin ,iMax ,jMin ,jMax - INTEGER i, j, k, kp1, km1, kSurf, kBottom - _RL explDissFac, implDissFac - _RL uStarSquare - _RL verticalShear(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL KappaM(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL KappaH -c _RL Nsquare - _RL Nsquare(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL deltaTggl90 -c _RL SQRTTKE - _RL SQRTTKE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL RiNumber + INTEGER i, j, k + INTEGER kp1, km1 + INTEGER kSrf, kTop, kBot + INTEGER errCode + _RL deltaTloc + _RL explDissFac, implDissFac + _RL totalDepth (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uStarSquare (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL verticalShear(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL KappaM (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL KappaH +c _RL Nsquare + _RL Nsquare(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +c _RL SQRTTKE + _RL SQRTTKE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL RiNumber #ifdef ALLOW_GGL90_IDEMIX - _RL IDEMIX_RiNumber -#endif - _RL TKEdissipation - _RL tempU, tempUp, tempV, tempVp, prTemp - _RL MaxLength, tmpmlx, tmpVisc - _RL TKEPrandtlNumber (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL GGL90mixingLength(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL rMixingLength (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL mxLength_Dn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL KappaE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL totalDepth (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL GGL90visctmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) -#ifdef ALLOW_DIAGNOSTICS - _RL surf_flx_tke (1-OLx:sNx+OLx,1-OLy:sNy+OLy) -#endif /* ALLOW_DIAGNOSTICS */ -C hFac(I) :: fractional thickness of W-cell - _RL hFac + _RL IDEMIX_RiNumber +#endif + _RL TKEdissipation + _RL tempU, tempUp, tempV, tempVp, prTemp + _RL MaxLength, tmpmlx, tmpVisc + _RL TKEPrandtlNumber (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL GGL90mixingLength(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL rMixingLength (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL mxLength_Dn (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL KappaE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL GGL90visctmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #ifdef ALLOW_GGL90_IDEMIX - _RL hFacI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL hFacI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +C IDEMIX_gTKE :: dissipation of internal wave energy is a source +C of TKE and mixing (output of S/R GGL90_IDEMIX) + _RL IDEMIX_gTKE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) #endif /* ALLOW_GGL90_IDEMIX */ - _RL recip_hFacI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef ALLOW_GGL90_LANGMUIR + CHARACTER*(MAX_LEN_MBUF) msgBuf +C uStar, vStar :: frictional velocity component + _RL uStar, vStar, depthFac + _RL MLtmp, recip_Lasq, recip_LD + _RL LCmixingLength(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL stokesterm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dstokesUdR(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dstokesVdR(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif /* ALLOW_GGL90_LANGMUIR */ + _RL recip_hFacI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL hFac + _RS mskLoc +#ifdef ALLOW_GGL90_SMOOTH + _RS maskI (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif C- tri-diagonal matrix - _RL a3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL b3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL c3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - INTEGER errCode + _RL a3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL b3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL c3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +C This mixed layer model is not invariant under coordinate +C transformation to pressure coordinates, so we need these +C factors to scale the vertical (pressure) coordinates + _RL coordFac, recip_coordFac #ifdef ALLOW_GGL90_HORIZDIFF C xA, yA :: area of lateral faces C dfx, dfy :: diffusive flux across lateral faces C gTKE :: right hand side of diffusion equation - _RL xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL dfx(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL dfy(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL gTKE(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dfx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dfy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL gTKE(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif /* ALLOW_GGL90_HORIZDIFF */ #ifdef ALLOW_GGL90_SMOOTH _RL p4, p8, p16 #endif +#ifdef ALLOW_SHELFICE + INTEGER ki + _RL KE (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL cDragU (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL cDragV (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL stressU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL stressV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL kappaRX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) +#endif +#ifdef ALLOW_DIAGNOSTICS +# ifndef ALLOW_AUTODIFF + LOGICAL doDiagTKEmin + _RL recip_deltaT +# endif + _RL surf_flx_tke(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif /* ALLOW_DIAGNOSTICS */ +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C kkey :: tape key (depends on levels and tiles) + INTEGER tkey, kkey +#endif CEOP PARAMETER( iMin = 2-OLx, iMax = sNx+OLx-1 ) @@ -134,27 +197,60 @@ SUBROUTINE GGL90_CALC( p16 = 0.0625 _d 0 #endif -C set separate time step (should be deltaTtracer) - deltaTggl90 = dTtracerLev(1) + IF ( usingPCoords ) THEN + kSrf = Nr + kTop = Nr + ELSE + kSrf = 1 + kTop = 2 + ENDIF + deltaTloc = dTtracerLev(kSrf) + + coordFac = 1. _d 0 + IF ( usingPCoords) coordFac = gravity * rhoConst + recip_coordFac = 1./coordFac + +#ifdef ALLOW_AUTODIFF_TAMC + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +#endif /* ALLOW_AUTODIFF_TAMC */ - kSurf = 1 C explicit/implicit timestepping weights for dissipation explDissFac = 0. _d 0 implDissFac = 1. _d 0 - explDissFac +#ifdef ALLOW_DIAGNOSTICS +# ifndef ALLOW_AUTODIFF + doDiagTKEmin = .FALSE. +# endif + IF ( useDiagnostics ) THEN +# ifndef ALLOW_AUTODIFF + doDiagTKEmin = DIAGNOSTICS_IS_ON('GGL90Emn',myThid) +C- note: needs to explicitly increment the counter since DIAGNOSTICS_FILL +C does it only if k=1 (never the case here) + IF ( doDiagTKEmin ) + & CALL DIAGNOSTICS_COUNT('GGL90Emn',bi,bj,myThid) +# endif + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + surf_flx_tke(i,j) = 0. + ENDDO + ENDDO + ENDIF +#endif + C For nonlinear free surface and especially with r*-coordinates, the C hFacs change every timestep, so we need to update them here in the C case of using IDEMIX. - DO K=1,Nr - Km1 = MAX(K-1,1) + DO k=1,Nr + km1 = MAX(k-1,1) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx hFac = - & MIN(.5 _d 0,_hFacC(i,j,km1,bi,bj) ) + - & MIN(.5 _d 0,_hFacC(i,j,k ,bi,bj) ) - recip_hFacI(I,J,K)=0. _d 0 + & MIN( halfRS, _hFacC(i,j,km1,bi,bj) ) + & + MIN( halfRS, _hFacC(i,j,k ,bi,bj) ) + recip_hFacI(i,j,k)=0. _d 0 IF ( hFac .NE. 0. _d 0 ) - & recip_hFacI(I,J,K)=1. _d 0/hFac + & recip_hFacI(i,j,k)=1. _d 0/hFac #ifdef ALLOW_GGL90_IDEMIX hFacI(i,j,k) = hFac #endif /* ALLOW_GGL90_IDEMIX */ @@ -162,8 +258,17 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO +#ifdef ALLOW_GGL90_IDEMIX +C step forward IDEMIX_E(energy) and compute tendency for TKE, +C IDEMIX_gTKE = tau_d * IDEMIX_E**2, following Olbers and Eden (2013) + IF ( useIDEMIX) CALL GGL90_IDEMIX( + I bi, bj, hFacI, recip_hFacI, sigmaR, + O IDEMIX_gTKE, + I myTime, myIter, myThid ) +#endif /* ALLOW_GGL90_IDEMIX */ + C Initialize local fields - DO k = 1, Nr + DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx rMixingLength(i,j,k) = 0. _d 0 @@ -183,14 +288,26 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90TKE(:,:,:,bi,bj)=comlev1_bibj, key=tkey, kind=isbyte +#endif DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx KappaM(i,j) = 0. _d 0 + uStarSquare(i,j) = 0. _d 0 verticalShear(i,j) = 0. _d 0 totalDepth(i,j) = Ro_surf(i,j,bi,bj) - R_low(i,j,bi,bj) - rMixingLength(i,j,1) = 0. _d 0 +c rMixingLength(i,j,1) = 0. _d 0 mxLength_Dn(i,j,1) = GGL90mixingLengthMin - SQRTTKE(i,j,1) = SQRT( GGL90TKE(i,j,1,bi,bj) ) +#ifdef ALLOW_AUTODIFF + IF ( usingZCoords .AND. maskC(i,j,1,bi,bj).EQ.oneRS ) THEN +#endif + SQRTTKE(i,j,1) = SQRT( GGL90TKE(i,j,1,bi,bj) ) +#ifdef ALLOW_AUTODIFF + ELSE + SQRTTKE(i,j,1) = 0. _d 0 + ENDIF +#endif #ifdef ALLOW_GGL90_HORIZDIFF xA(i,j) = 0. _d 0 yA(i,j) = 0. _d 0 @@ -201,24 +318,51 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO -#ifdef ALLOW_GGL90_IDEMIX - IF ( useIDEMIX) CALL GGL90_IDEMIX( - & bi, bj, hFacI, recip_hFacI, sigmaR, myTime, myIter, myThid ) -#endif /* ALLOW_GGL90_IDEMIX */ +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN + recip_Lasq = 1. _d 0 / LC_num + recip_Lasq = recip_Lasq * recip_Lasq + recip_LD = 4. _d 0 * PI / LC_lambda + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + stokesterm(i,j) = 0. _d 0 + dstokesUdR(i,j) = 0. _d 0 + dstokesVdR(i,j) = 0. _d 0 + ENDDO + ENDDO + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + LCmixingLength(i,j,k) = GGL90mixingLengthMin + ENDDO + ENDDO + ENDDO + ENDIF +#endif DO k = 2, Nr DO j=jMin,jMax DO i=iMin,iMax - SQRTTKE(i,j,k)=SQRT( GGL90TKE(i,j,k,bi,bj) ) + mskLoc = maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) +#ifdef ALLOW_AUTODIFF + IF ( mskLoc.EQ.oneRS ) THEN +#endif + SQRTTKE(i,j,k)=SQRT( GGL90TKE(i,j,k,bi,bj) ) +#ifdef ALLOW_AUTODIFF + ELSE + SQRTTKE(i,j,k)=0. _d 0 + ENDIF +#endif C buoyancy frequency Nsquare(i,j,k) = gravity*gravitySign*recip_rhoConst - & * sigmaR(i,j,k) + & * sigmaR(i,j,k) * coordFac C vertical shear term (dU/dz)^2+(dV/dz)^2 is computed later C to save some memory C mixing length GGL90mixingLength(i,j,k) = SQRTTWO * & SQRTTKE(i,j,k)/SQRT( MAX(Nsquare(i,j,k),GGL90eps) ) + & * mskLoc ENDDO ENDDO ENDDO @@ -227,41 +371,40 @@ SUBROUTINE GGL90_CALC( IF (mxlSurfFlag) THEN DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,2)=drF(1) +#ifdef ALLOW_SHELFICE + IF ( useShelfIce ) THEN + kSrf = MAX(1,kTopC(i,j,bi,bj)) + kTop = MIN(kSrf+1,Nr) + ENDIF +#endif + GGL90mixingLength(i,j,kTop)=drF(kSrf)*recip_coordFac ENDDO ENDDO ENDIF C-- Impose upper and lower bound for mixing length -C-- Impose minimum mixing length to avoid division by zero +#ifdef ALLOW_AUTODIFF +CADJ INCOMPLETE GGL90mixingLength +#endif IF ( mxlMaxFlag .EQ. 0 ) THEN DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax - MaxLength=totalDepth(i,j) + MaxLength=totalDepth(i,j)*recip_coordFac GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), & MaxLength) ENDDO ENDDO ENDDO - DO k=2,Nr - DO j=jMin,jMax - DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MAX(GGL90mixingLength(i,j,k), - & GGL90mixingLengthMin) - rMixingLength(i,j,k) = 1. _d 0 / GGL90mixingLength(i,j,k) - ENDDO - ENDDO - ENDDO - ELSEIF ( mxlMaxFlag .EQ. 1 ) THEN DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax MaxLength=MIN(Ro_surf(i,j,bi,bj)-rF(k),rF(k)-R_low(i,j,bi,bj)) + & * recip_coordFac c MaxLength=MAX(MaxLength,20. _d 0) GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), & MaxLength) @@ -269,91 +412,372 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO - DO k=2,Nr + ELSEIF ( mxlMaxFlag .EQ. 2 ) THEN + + IF ( usingPcoords ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep, extra treatment of k=Nr for p-coordinates +C because level Nr+1 is not available DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MAX(GGL90mixingLength(i,j,k), - & GGL90mixingLengthMin) - rMixingLength(i,j,k) = 1. _d 0 / GGL90mixingLength(i,j,k) + GGL90mixingLength(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), + & GGL90mixingLengthMin+drF(Nr)*recip_coordFac) ENDDO ENDDO - ENDDO + DO k=Nr-1,2,-1 +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k+1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k+1)+drF(k)*recip_coordFac) + ENDDO + ENDDO + ENDDO +C Upward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac) + ENDDO + ENDDO + ENDDO + ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac) + ENDDO + ENDDO + ENDDO +C Upward sweep, extra treatment of k=Nr for z-coordinates +C because level Nr+1 is not available + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), + & GGL90mixingLengthMin+drF(Nr)*recip_coordFac) + ENDDO + ENDDO + DO k=Nr-1, 2,-1 +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k+1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k+1)+drF(k)*recip_coordFac) + ENDDO + ENDDO + ENDDO + ENDIF - ELSEIF ( mxlMaxFlag .EQ. 2 ) THEN + ELSEIF ( mxlMaxFlag .EQ. 3 ) THEN - DO k=2,Nr + IF ( usingPcoords ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep, extra treatment of k=Nr for p-coordinates +C because level Nr+1 is not available DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), - & GGL90mixingLength(i,j,k-1)+drF(k-1)) + mxLength_Dn(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), + & GGL90mixingLengthMin+drF(Nr)*recip_coordFac) ENDDO ENDDO - ENDDO - DO j=jMin,jMax - DO i=iMin,iMax - GGL90mixingLength(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), - & GGL90mixingLengthMin+drF(Nr)) + DO k=Nr-1,2,-1 +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE mxLength_Dn(:,:,k+1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + mxLength_Dn(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & mxLength_Dn(i,j,k+1)+drF(k)*recip_coordFac) + ENDDO + ENDDO ENDDO - ENDDO - DO k=Nr-1,2,-1 +C Upward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac) + ENDDO + ENDDO + ENDDO + ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE mxLength_Dn(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + mxLength_Dn(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & mxLength_Dn(i,j,k-1)+drF(k-1)*recip_coordFac) + ENDDO + ENDDO + ENDDO +C Upward sweep, extra treatment of k=Nr for z-coordinates +C because level Nr+1 is not available DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), - & GGL90mixingLength(i,j,k+1)+drF(k)) + GGL90mixingLength(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), + & GGL90mixingLengthMin+drF(Nr)*recip_coordFac) ENDDO ENDDO - ENDDO + DO k=Nr-1,2,-1 +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k+1)+drF(k)*recip_coordFac) + ENDDO + ENDDO + ENDDO + ENDIF + ELSE + STOP 'GGL90_CALC: Wrong mxlMaxFlag (mixing length limit)' + ENDIF +C-- Impose minimum mixing length to avoid division by zero +C and compute inverse + IF ( mxlMaxFlag.EQ.3 ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MAX(GGL90mixingLength(i,j,k), - & GGL90mixingLengthMin) - rMixingLength(i,j,k) = 1. _d 0 / GGL90mixingLength(i,j,k) + GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & mxLength_Dn(i,j,k)) +#ifdef ALLOW_AUTODIFF ENDDO ENDDO ENDDO - - ELSEIF ( mxlMaxFlag .EQ. 3 ) THEN - DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax - mxLength_Dn(i,j,k) = MIN(GGL90mixingLength(i,j,k), - & mxLength_Dn(i,j,k-1)+drF(k-1)) +#endif + tmpmlx = SQRT( GGL90mixingLength(i,j,k)*mxLength_Dn(i,j,k) ) + tmpmlx = MAX( tmpmlx, GGL90mixingLengthMin) + rMixingLength(i,j,k) = 1. _d 0 / tmpmlx ENDDO ENDDO ENDDO - DO j=jMin,jMax - DO i=iMin,iMax - GGL90mixingLength(i,j,Nr) = MIN(GGL90mixingLength(i,j,Nr), - & GGL90mixingLengthMin+drF(Nr)) - ENDDO - ENDDO - DO k=Nr-1,2,-1 + ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength = comlev1_bibj, key=tkey, kind=isbyte +#endif + DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), - & GGL90mixingLength(i,j,k+1)+drF(k)) + GGL90mixingLength(i,j,k) = MAX(GGL90mixingLength(i,j,k), + & GGL90mixingLengthMin) +#ifdef ALLOW_AUTODIFF ENDDO ENDDO ENDDO - DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax - GGL90mixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), - & mxLength_Dn(i,j,k)) - tmpmlx = SQRT( GGL90mixingLength(i,j,k)*mxLength_Dn(i,j,k) ) - tmpmlx = MAX( tmpmlx, GGL90mixingLengthMin) - rMixingLength(i,j,k) = 1. _d 0 / tmpmlx +#endif + rMixingLength(i,j,k) = 1. _d 0 / GGL90mixingLength(i,j,k) ENDDO ENDDO ENDDO + ENDIF - ELSE - STOP 'GGL90_CALC: Wrong mxlMaxFlag (mixing length limit)' +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN +C Compute the mixing length scale with Langmuir circulation. +C The calculation closely follows that for GGL90mixingLength. + IF ( mxlMaxFlag .EQ. 1 ) THEN + + DO k=2,Nr + DO j=jMin,jMax + DO i=iMin,iMax + MLtmp = (Ro_surf(i,j,bi,bj)-rF(k))*recip_coordFac + IF (GGL90mixingLength(i,j,k) .EQ. MLtmp) THEN + LCmixingLength(i,j,k) = LC_Gamma + & * GGL90mixingLength(i,j,k) + ELSE + LCmixingLength(i,j,k) = GGL90mixingLength(i,j,k) + ENDIF + ENDDO + ENDDO + ENDDO + + ELSEIF ( mxlMaxFlag .EQ. 2 ) THEN + + IF ( usingPcoords ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Upward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + MLtmp = GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac + IF (GGL90mixingLength(i,j,k) .EQ. MLtmp) THEN + LCmixingLength(i,j,k) = LC_Gamma + & * GGL90mixingLength(i,j,k) + ELSE + LCmixingLength(i,j,k) = GGL90mixingLength(i,j,k) + ENDIF + ENDDO + ENDDO + ENDDO + ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + MLtmp = GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac + IF (GGL90mixingLength(i,j,k) .EQ. MLtmp) THEN + LCmixingLength(i,j,k) = LC_Gamma + & * GGL90mixingLength(i,j,k) + ELSE + LCmixingLength(i,j,k) = GGL90mixingLength(i,j,k) + ENDIF + ENDDO + ENDDO + ENDDO + DO k=Nr-1, 2,-1 +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k+1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + LCmixingLength(i,j,k) = MIN(GGL90mixingLength(i,j,k), + & GGL90mixingLength(i,j,k+1)+drF(k)*recip_coordFac) + ENDDO + ENDDO + ENDDO + + ENDIF + + ELSEIF ( mxlMaxFlag .EQ. 3 ) THEN + + IF ( usingPcoords ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Upward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE GGL90mixingLength(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + MLtmp = GGL90mixingLength(i,j,k-1)+drF(k-1)*recip_coordFac + IF (GGL90mixingLength(i,j,k) .EQ. MLtmp) THEN + LCmixingLength(i,j,k) = LC_Gamma + & * GGL90mixingLength(i,j,k) + ELSE + LCmixingLength(i,j,k) = GGL90mixingLength(i,j,k) + ENDIF + ENDDO + ENDDO + ENDDO + ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90mixingLength(:,:,Nr) +CADJ & = comlev1_bibj, key = tkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ +C Downward sweep + DO k=2,Nr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*Nr +CADJ STORE mxLength_Dn(:,:,k-1) +CADJ & = comlev1_bibj_k, key = kkey, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ + DO j=jMin,jMax + DO i=iMin,iMax + MLtmp = mxLength_Dn(i,j,k-1)+drF(k-1)*recip_coordFac + IF (GGL90mixingLength(i,j,k) .EQ. MLtmp) THEN + LCmixingLength(i,j,k) = LC_Gamma + & * GGL90mixingLength(i,j,k) + ELSE + LCmixingLength(i,j,k) = GGL90mixingLength(i,j,k) + ENDIF + ENDDO + ENDDO + ENDDO + ENDIF + + ELSE + WRITE(msgBuf,'(A,I5,A)') + & 'GGL90_CALC: Langmuir Circ. Parameterization with mxlMaxFlag=', + & mxlMaxFlag,' not implemented' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GGL90_CALC' + ENDIF ENDIF +#endif /* ALLOW_GGL90_LANGMUIR */ C start "proper" k-loop (the code above was moved out and up to C implemement various mixing parameters efficiently) @@ -361,18 +785,18 @@ SUBROUTINE GGL90_CALC( km1 = k-1 #ifdef ALLOW_GGL90_HORIZDIFF - IF ( GGL90diffTKEh .GT. 0. _d 0 ) THEN + IF ( GGL90diffTKEh .GT. 0. _d 0 ) THEN C horizontal diffusion of TKE (requires an exchange in C do_fields_blocking_exchanges) C common factors DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx xA(i,j) = _dyG(i,j,bi,bj)*drC(k)* - & (min(.5 _d 0,_hFacW(i,j,k-1,bi,bj) ) + - & min(.5 _d 0,_hFacW(i,j,k ,bi,bj) ) ) + & (MIN(.5 _d 0,_hFacW(i,j,km1,bi,bj) ) + + & MIN(.5 _d 0,_hFacW(i,j,k ,bi,bj) ) ) yA(i,j) = _dxG(i,j,bi,bj)*drC(k)* - & (min(.5 _d 0,_hFacS(i,j,k-1,bi,bj) ) + - & min(.5 _d 0,_hFacS(i,j,k ,bi,bj) ) ) + & (MIN(.5 _d 0,_hFacS(i,j,km1,bi,bj) ) + + & MIN(.5 _d 0,_hFacS(i,j,k ,bi,bj) ) ) ENDDO ENDDO C Compute diffusive fluxes @@ -416,14 +840,33 @@ SUBROUTINE GGL90_CALC( #endif /* ALLOW_GGL90_HORIZDIFF */ C viscosity and diffusivity +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN + DO j=jMin,jMax + DO i=iMin,iMax + KappaM(i,j) = GGL90ck*LCmixingLength(i,j,k)*SQRTTKE(i,j,k) + ENDDO + ENDDO + ELSE +#endif + DO j=jMin,jMax + DO i=iMin,iMax + KappaM(i,j) = GGL90ck*GGL90mixingLength(i,j,k)*SQRTTKE(i,j,k) +#ifdef ALLOW_GGL90_LANGMUIR + ENDDO + ENDDO + ENDIF DO j=jMin,jMax DO i=iMin,iMax - KappaM(i,j) = GGL90ck*GGL90mixingLength(i,j,k)*SQRTTKE(i,j,k) - GGL90visctmp(i,j,k) = MAX(KappaM(i,j),diffKrNrS(k)) - & * maskC(i,j,k,bi,bj) +#endif + GGL90visctmp(i,j,k) = MAX( KappaM(i,j),diffKrNrS(k) + & * recip_coordFac*recip_coordFac ) + & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) C note: storing GGL90visctmp like this, and using it later to compute C GGL9rdiffKr etc. is robust in case of smoothing (e.g. see OPA) - KappaM(i,j) = MAX(KappaM(i,j),viscArNr(k)) * maskC(i,j,k,bi,bj) + KappaM(i,j) = MAX( KappaM(i,j),viscArNr(k) + & * recip_coordFac*recip_coordFac ) + & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) ENDDO ENDDO @@ -437,9 +880,10 @@ SUBROUTINE GGL90_CALC( tempV = ( vVel(i, j ,km1,bi,bj) - vVel(i, j ,k,bi,bj) ) tempVp = ( vVel(i,j+1,km1,bi,bj) - vVel(i,j+1,k,bi,bj) ) verticalShear(i,j) = ( - & ( tempU*tempU + tempUp*tempUp )*halfRL - & + ( tempV*tempV + tempVp*tempVp )*halfRL - & )*recip_drC(k)*recip_drC(k) + & ( tempU*tempU + tempUp*tempUp ) + & + ( tempV*tempV + tempVp*tempVp ) + & )*halfRL*recip_drC(k)*recip_drC(k) + & *coordFac*coordFac ENDDO ENDDO ELSE @@ -449,30 +893,85 @@ SUBROUTINE GGL90_CALC( tempU = ( ( uVel(i,j,km1,bi,bj) + uVel(i+1,j,km1,bi,bj) ) & -( uVel(i,j,k ,bi,bj) + uVel(i+1,j,k ,bi,bj) ) & )*halfRL*recip_drC(k) + & *coordFac tempV = ( ( vVel(i,j,km1,bi,bj) + vVel(i,j+1,km1,bi,bj) ) & -( vVel(i,j,k ,bi,bj) + vVel(i,j+1,k ,bi,bj) ) & )*halfRL*recip_drC(k) + & *coordFac verticalShear(i,j) = tempU*tempU + tempV*tempV ENDDO ENDDO ENDIF -C compute Prandtl number (always greater than 0) +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN +C compute (dStokesU/dz) and (dStokesV/dz) + depthFac = recip_Lasq*EXP( recip_LD*rF(k) ) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + uStar = SIGN( SQRT(ABS(surfaceForcingU(i,j,bi,bj))), + & surfaceForcingU(i,j,bi,bj) ) + dstokesUdR(i,j) = recip_LD * uStar * depthFac + vStar = SIGN( SQRT(ABS(surfaceForcingV(i,j,bi,bj))), + & surfaceForcingV(i,j,bi,bj) ) + dstokesVdR(i,j) = recip_LD * vStar * depthFac + ENDDO + ENDDO + + IF ( calcMeanVertShear ) THEN +C by averaging (@ grid-cell center) the 4 vertical shear compon @ +C U,V pos. + DO j=jMin,jMax + DO i=iMin,iMax + tempU = ( uVel( i ,j,km1,bi,bj) - uVel( i ,j,k,bi,bj) ) + tempUp = ( uVel(i+1,j,km1,bi,bj) - uVel(i+1,j,k,bi,bj) ) + tempV = ( vVel(i, j ,km1,bi,bj) - vVel(i, j ,k,bi,bj) ) + tempVp = ( vVel(i,j+1,km1,bi,bj) - vVel(i,j+1,k,bi,bj) ) + stokesterm(i,j) = ( + & ( tempU *dstokesUdR(i,j) + & +tempUp*dstokesUdR(i+1,j) ) + & +( tempV *dstokesVdR(i,j) + & +tempVp*dstokesVdR(i,j+1) ) + & )*halfRL*recip_drC(k)*coordFac*coordFac + ENDDO + ENDDO + ELSE +C from the averaged flow at grid-cell center (2 compon x 2 pos.) + DO j=jMin,jMax + DO i=iMin,iMax + tempU = ( ( uVel(i,j,km1,bi,bj) + uVel(i+1,j,km1,bi,bj) ) + & -( uVel(i,j,k ,bi,bj) + uVel(i+1,j,k ,bi,bj) ) + & )*halfRL*recip_drC(k) + & *coordFac + tempV = ( ( vVel(i,j,km1,bi,bj) + vVel(i,j+1,km1,bi,bj) ) + & -( vVel(i,j,k ,bi,bj) + vVel(i,j+1,k ,bi,bj) ) + & )*halfRL*recip_drC(k) + & *coordFac + stokesterm(i,j) = halfRL*coordFac*( + & tempU*(dstokesUdR(i,j)+dstokesUdR(i+1,j)) + & + tempV*(dstokesVdR(i,j)+dstokesVdR(i,j+1)) + & ) + ENDDO + ENDDO + ENDIF + ENDIF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE stokesterm = comlev1_bibj, key=tkey, kind=isbyte +# endif +#endif /* ALLOW_GGL90_LANGMUIR */ + +C compute Prandtl number (always greater than 1) #ifdef ALLOW_GGL90_IDEMIX IF ( useIDEMIX ) THEN DO j=jMin,jMax DO i=iMin,iMax -C account for partical cell factor in vertical shear: - verticalShear(i,j) = verticalShear(i,j) - & * recip_hFacI(i,j,k)*recip_hFacI(i,j,k) RiNumber = MAX(Nsquare(i,j,k),0. _d 0) & /(verticalShear(i,j)+GGL90eps) -CML IDEMIX_RiNumber = 1./GGL90eps IDEMIX_RiNumber = MAX( KappaM(i,j)*Nsquare(i,j,k), 0. _d 0)/ - & (GGL90eps+IDEMIX_tau_d(i,j,k,bi,bj)*IDEMIX_E(i,j,k,bi,bj)**2) - prTemp = MIN(5.*RiNumber, 6.6 _d 0*IDEMIX_RiNumber) + & ( GGL90eps + IDEMIX_gTKE(i,j,k) ) + prTemp = 6.6 _d 0 * MIN( RiNumber, IDEMIX_RiNumber ) TKEPrandtlNumber(i,j,k) = MIN(10. _d 0,prTemp) - TKEPrandtlNumber(i,j,k) = MAX( 1. _d 0,TKEPrandtlNumber(i,j,k)) + TKEPrandtlNumber(i,j,k) = MAX( oneRL,TKEPrandtlNumber(i,j,k) ) ENDDO ENDDO ELSE @@ -494,7 +993,8 @@ SUBROUTINE GGL90_CALC( DO i=iMin,iMax C diffusivity KappaH = KappaM(i,j)/TKEPrandtlNumber(i,j,k) - KappaE(i,j,k) = GGL90alpha * KappaM(i,j) * maskC(i,j,k,bi,bj) + KappaE(i,j,k) = GGL90alpha * KappaM(i,j) + & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) C dissipation term TKEdissipation = explDissFac*GGL90ceps @@ -502,7 +1002,7 @@ SUBROUTINE GGL90_CALC( & *GGL90TKE(i,j,k,bi,bj) C partial update with sum of explicit contributions GGL90TKE(i,j,k,bi,bj) = GGL90TKE(i,j,k,bi,bj) - & + deltaTggl90*( + & + deltaTloc*( & + KappaM(i,j)*verticalShear(i,j) & - KappaH*Nsquare(i,j,k) & - TKEdissipation @@ -516,21 +1016,31 @@ SUBROUTINE GGL90_CALC( DO j=jMin,jMax DO i=iMin,iMax GGL90TKE(i,j,k,bi,bj) = GGL90TKE(i,j,k,bi,bj) - & + deltaTggl90*( - & + IDEMIX_tau_d(i,j,k,bi,bj)*IDEMIX_E(i,j,k,bi,bj)**2 - & ) + & + deltaTloc*IDEMIX_gTKE(i,j,k) ENDDO ENDDO ENDIF #endif /* ALLOW_GGL90_IDEMIX */ +#ifdef ALLOW_GGL90_LANGMUIR + IF ( useLANGMUIR ) THEN +C add IDEMIX contribution to the turbulent kinetic energy + DO j=jMin,jMax + DO i=iMin,iMax + GGL90TKE(i,j,k,bi,bj) = GGL90TKE(i,j,k,bi,bj) + & + deltaTloc*(KappaM(i,j)*stokesterm(i,j)) + ENDDO + ENDDO + ENDIF +#endif /* ALLOW_GGL90_LANGMUIR */ + #ifdef ALLOW_GGL90_HORIZDIFF IF ( GGL90diffTKEh .GT. 0. _d 0 ) THEN C-- Add horiz. diffusion tendency DO j=jMin,jMax DO i=iMin,iMax GGL90TKE(i,j,k,bi,bj) = GGL90TKE(i,j,k,bi,bj) - & + gTKE(i,j)*deltaTggl90 + & + gTKE(i,j)*deltaTloc ENDDO ENDDO ENDIF @@ -538,11 +1048,21 @@ SUBROUTINE GGL90_CALC( C-- end of k loop ENDDO + IF ( usingPCoords ) THEN +C impose TKE(1) = 0. + DO j=jMin,jMax + DO i=iMin,iMax + GGL90TKE(i,j,1,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDIF -C ============================================ +C ============================================== C Implicit time step to update TKE for k=1,Nr; -C TKE(Nr+1)=0 by default -C ============================================ +C TKE(Nr+1)=0 by default; +C for pressure coordinates, this translates into +C TKE(1) = 0, TKE(Nr+1) is the surface value +C ============================================== C set up matrix C-- Lower diagonal DO j=jMin,jMax @@ -551,16 +1071,27 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO DO k=2,Nr +#ifdef GGL90_MISSING_HFAC_BUG + IF ( .NOT.useIDEMIX ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + recip_hFacI(i,j,k) = oneRS + ENDDO + ENDDO + ENDIF +#endif km1=MAX(2,k-1) DO j=jMin,jMax DO i=iMin,iMax + IF ( usingPCoords) km1=MIN(Nr,MAX(kSurfC(i,j,bi,bj)+1,k-1)) C- We keep recip_hFacC in the diffusive flux calculation, C- but no hFacC in TKE volume control C- No need for maskC(k-1) with recip_hFacC(k-1) - a3d(i,j,k) = -deltaTggl90 + a3d(i,j,k) = -deltaTloc & *recip_drF(k-1)*recip_hFacC(i,j,k-1,bi,bj) & *.5 _d 0*(KappaE(i,j, k )+KappaE(i,j,km1)) - & *recip_drC(k)*maskC(i,j,k,bi,bj) + & *recip_drC(k)*maskC(i,j,k,bi,bj)*recip_hFacI(i,j,k) + & *coordFac*coordFac ENDDO ENDDO ENDDO @@ -571,41 +1102,39 @@ SUBROUTINE GGL90_CALC( ENDDO ENDDO DO k=2,Nr + kp1=MIN(k+1,Nr) DO j=jMin,jMax DO i=iMin,iMax - kp1=MAX(1,MIN(klowC(i,j,bi,bj),k+1)) + IF ( usingZCoords ) kp1=MAX(1,MIN(klowC(i,j,bi,bj),k+1)) C- We keep recip_hFacC in the diffusive flux calculation, C- but no hFacC in TKE volume control C- No need for maskC(k) with recip_hFacC(k) - c3d(i,j,k) = -deltaTggl90 + c3d(i,j,k) = -deltaTloc & *recip_drF( k ) * recip_hFacC(i,j,k,bi,bj) & *.5 _d 0*(KappaE(i,j,k)+KappaE(i,j,kp1)) - & *recip_drC(k)*maskC(i,j,k-1,bi,bj) + & *recip_drC(k)*maskC(i,j,k-1,bi,bj)*recip_hFacI(i,j,k) + & *coordFac*coordFac ENDDO ENDDO ENDDO -#ifdef ALLOW_GGL90_IDEMIX - IF ( useIDEMIX ) THEN - DO k=2,Nr + IF (.NOT.GGL90_dirichlet) THEN +C Neumann bottom boundary condition for TKE: no flux from bottom + IF ( usingPCoords ) THEN DO j=jMin,jMax DO i=iMin,iMax - a3d(i,j,k) = a3d(i,j,k)*recip_hFacI(i,j,k) - c3d(i,j,k) = c3d(i,j,k)*recip_hFacI(i,j,k) + kBot = MIN(kSurfC(i,j,bi,bj)+1,Nr) + a3d(i,j,kBot) = 0. _d 0 ENDDO ENDDO - ENDDO - ENDIF -#endif /* ALLOW_GGL90_IDEMIX */ - - IF (.NOT.GGL90_dirichlet) THEN -C Neumann bottom boundary condition for TKE: no flux from bottom - DO j=jMin,jMax - DO i=iMin,iMax - kBottom = MAX(kLowC(i,j,bi,bj),1) - c3d(i,j,kBottom) = 0. _d 0 + ELSE + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MAX(kLowC(i,j,bi,bj),1) + c3d(i,j,kBot) = 0. _d 0 + ENDDO ENDDO - ENDDO + ENDIF ENDIF C-- Center diagonal @@ -614,46 +1143,182 @@ SUBROUTINE GGL90_CALC( DO j=jMin,jMax DO i=iMin,iMax b3d(i,j,k) = 1. _d 0 - c3d(i,j,k) - a3d(i,j,k) - & + implDissFac*deltaTggl90*GGL90ceps*SQRTTKE(i,j,k) + & + implDissFac*deltaTloc*GGL90ceps*SQRTTKE(i,j,k) & * rMixingLength(i,j,k) & * maskC(i,j,k,bi,bj)*maskC(i,j,km1,bi,bj) ENDDO ENDDO ENDDO + IF ( usingPCoords ) THEN +C impose TKE(1) = 0. + DO j=jMin,jMax + DO i=iMin,iMax + b3d(i,j,1) = 1. _d 0 + ENDDO + ENDDO + ENDIF C end set up matrix C Apply boundary condition - kp1 = MIN(Nr,kSurf+1) - DO j=jMin,jMax - DO i=iMin,iMax + IF ( calcMeanVertShear ) THEN +C by averaging (@ grid-cell center) the 4 components @ U,V pos. + DO j=jMin,jMax + DO i=iMin,iMax + tempU = surfaceForcingU( i ,j,bi,bj) + tempUp = surfaceForcingU(i+1,j,bi,bj) + tempV = surfaceForcingV(i, j ,bi,bj) + tempVp = surfaceForcingV(i,j+1,bi,bj) + uStarSquare(i,j) = SQRT( + & ( tempU*tempU + tempUp*tempUp + & + tempV*tempV + tempVp*tempVp + & )*halfRL )*recip_coordFac +C Note: adding parenthesis in 4 terms sum (-> 2 group of 2) as below: +c uStarSquare(i,j) = SQRT( +c & ( ( tempU*tempU + tempUp*tempUp ) +c & + ( tempV*tempV + tempVp*tempVp ) +c & )*halfRL )*recip_coordFac +C seems to break restart ! + ENDDO + ENDDO + ELSE + DO j=jMin,jMax + DO i=iMin,iMax C estimate friction velocity uStar from surface forcing - uStarSquare = SQRT( - & ( .5 _d 0*( surfaceForcingU(i, j, bi,bj) - & + surfaceForcingU(i+1,j, bi,bj) ) )**2 - & + ( .5 _d 0*( surfaceForcingV(i, j, bi,bj) - & + surfaceForcingV(i, j+1,bi,bj) ) )**2 - & ) -C Dirichlet surface boundary condition for TKE - GGL90TKE(i,j,kSurf,bi,bj) = maskC(i,j,kSurf,bi,bj) - & *MAX(GGL90TKEsurfMin,GGL90m2*uStarSquare) - GGL90TKE(i,j,kp1,bi,bj) = GGL90TKE(i,j,kp1,bi,bj) - & - a3d(i,j,kp1)*GGL90TKE(i,j,kSurf,bi,bj) - a3d(i,j,kp1) = 0. _d 0 + uStarSquare(i,j) = SQRT( + & ( .5 _d 0*( surfaceForcingU(i, j, bi,bj) + & + surfaceForcingU(i+1,j, bi,bj) ) )**2 + & + ( .5 _d 0*( surfaceForcingV(i, j, bi,bj) + & + surfaceForcingV(i, j+1,bi,bj) ) )**2 + & )*recip_coordFac + ENDDO ENDDO - ENDDO + ENDIF +#ifdef ALLOW_SHELFICE +C uStarSquare should not have any effect undernath iceshelves, but +C masking uStarSquare underneath ice shelf is not necessary because +C surfaceForcingU/V=0 in this case (see shelfice_forcing_surf.F) +C Instead, uStarSquare is computed from the sub-glacial drag. + IF ( useSHELFICE .AND. + & ( no_slip_shelfice .OR. SHELFICEDragLinear.NE.zeroRL + & .OR. SHELFICEselectDragQuadr.GE.0 ) + & ) THEN +C First, we need to compute an early estimate of the drag +C coefficients based ond the ocean velocity of the previous time +C step only; because kappaRU and kappaRV are not yet available, +C kappyRX is just set to horizontally constant viscosity +C coefficients. + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + stressU(i,j) = 0. _d 0 + stressV(i,j) = 0. _d 0 + ENDDO + ENDDO + DO k=1,Nr+1 + ki = MIN(k,Nr) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + kappaRX(i,j,k) = viscArNr(ki) + ENDDO + ENDDO + ENDDO + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + KE (i,j) = 0. _d 0 + uFld(i,j) = uVel(i,j,k,bi,bj) + vFld(i,j) = vVel(i,j,k,bi,bj) + ENDDO + ENDDO + CALL SHELFICE_U_DRAG_COEFF( bi, bj, k, .FALSE., + I uFld, vFld, kappaRX, KE, + O cDragU, + I myIter, myThid ) + CALL SHELFICE_V_DRAG_COEFF( bi, bj, k, .FALSE., + I uFld, vFld, kappaRX, KE, + O cDragV, + I myIter, myThid ) +C- compute explicit stress + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + stressU(i,j) = stressU(i,j) - cDragU(i,j)*uFld(i,j)*rUnit2mass + stressV(i,j) = stressV(i,j) - cDragV(i,j)*vFld(i,j)*rUnit2mass + ENDDO + ENDDO + ENDDO +C + DO j=jMin,jMax + DO i=jMin,jMax + IF ( kTopC(i,j,bi,bj) .GT. 0 ) THEN + uStarSquare(i,j) = SQRT( + & ( stressU(i,j)*stressU(i,j)+stressU(i+1,j)*stressU(i+1,j) + & + stressV(i,j)*stressV(i,j)+stressV(i,j+1)*stressV(i,j+1) + & )*halfRL )*recip_coordFac + ENDIF + ENDDO + ENDDO + ENDIF +#endif - IF (GGL90_dirichlet) THEN -C Dirichlet bottom boundary condition for TKE = GGL90TKEbottom +C Dirichlet surface boundary condition for TKE + IF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax +CML#ifdef ALLOW_SHELFICE +CML IF ( useShelfIce ) THEN +CML kSrf = MAX(kTopC(i,j,bi,bj),1) +CML kTop = kSrf +CML ENDIF +CML#endif + GGL90TKE(i,j,kSrf,bi,bj) = GGL90TKE(i,j,kSrf,bi,bj) + & - c3d(i,j,kSrf) * maskC(i,j,kSrf,bi,bj) + & *MAX(GGL90TKEsurfMin,GGL90m2*uStarSquare(i,j)) + c3d(i,j,kSrf) = 0. _d 0 + ENDDO + ENDDO + ELSE DO j=jMin,jMax DO i=iMin,iMax - kBottom = MAX(kLowC(i,j,bi,bj),1) - GGL90TKE(i,j,kBottom,bi,bj) = GGL90TKE(i,j,kBottom,bi,bj) - & - GGL90TKEbottom*c3d(i,j,kBottom) - c3d(i,j,kBottom) = 0. _d 0 +#ifdef ALLOW_SHELFICE + IF ( useShelfIce ) THEN + kSrf = MAX(1,kTopC(i,j,bi,bj)) + kTop = MIN(kSrf+1,Nr) + ENDIF +#endif + GGL90TKE(i,j,kSrf,bi,bj) = maskC(i,j,kSrf,bi,bj) + & *MAX(GGL90TKEsurfMin,GGL90m2*uStarSquare(i,j)) + GGL90TKE(i,j,kTop,bi,bj) = GGL90TKE(i,j,kTop,bi,bj) + & - a3d(i,j,kTop)*GGL90TKE(i,j,kSrf,bi,bj) + a3d(i,j,kTop) = 0. _d 0 ENDDO ENDDO ENDIF + IF (GGL90_dirichlet) THEN +C Dirichlet bottom boundary condition for TKE = GGL90TKEbottom + IF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MIN(kSurfC(i,j,bi,bj)+1,Nr) + GGL90TKE(i,j,kBot,bi,bj) = GGL90TKE(i,j,kBot,bi,bj) + & - GGL90TKEbottom*a3d(i,j,kBot) + a3d(i,j,kBot) = 0. _d 0 + ENDDO + ENDDO + ELSE + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MAX(kLowC(i,j,bi,bj),1) + GGL90TKE(i,j,kBot,bi,bj) = GGL90TKE(i,j,kBot,bi,bj) + & - GGL90TKEbottom*c3d(i,j,kBot) + c3d(i,j,kBot) = 0. _d 0 + ENDDO + ENDDO + ENDIF + ENDIF + +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90TKE(:,:,:,bi,bj)=comlev1_bibj, key=tkey, kind=isbyte +#endif C solve tri-diagonal system errCode = -1 CALL SOLVE_TRIDIAGONAL( iMin,iMax, jMin,jMax, @@ -662,108 +1327,125 @@ SUBROUTINE GGL90_CALC( O errCode, I bi, bj, myThid ) - DO k=1,Nr +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE GGL90TKE(:,:,:,bi,bj)=comlev1_bibj, key=tkey, kind=isbyte +#endif + DO k=2,Nr +#if ( defined ALLOW_DIAGNOSTICS && !defined ALLOW_AUTODIFF ) +C This diagnostics code causes extra recomputations so we skip it. + IF ( doDiagTKEmin ) THEN + DO j=1,sNy + DO i=1,sNx + surf_flx_tke(i,j) = GGL90TKE(i,j,k,bi,bj) + & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) + ENDDO + ENDDO + ENDIF +#endif DO j=jMin,jMax DO i=iMin,iMax -C impose minimum TKE to avoid numerical undershoots below zero - GGL90TKE(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) +C impose minimum TKE to avoid numerical undershoots below zero; +C level k=1 is either prescribed surface boundary condition (z-coords) or +C bottom boundary conditions, which by definition is zero + GGL90TKE(i,j,k,bi,bj) = maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) & *MAX( GGL90TKE(i,j,k,bi,bj), GGL90TKEmin ) ENDDO ENDDO +#if ( defined ALLOW_DIAGNOSTICS && !defined ALLOW_AUTODIFF ) + IF ( doDiagTKEmin ) THEN + recip_deltaT = 1. _d 0 / deltaTloc + DO j=1,sNy + DO i=1,sNx + surf_flx_tke(i,j) = (GGL90TKE(i,j,k,bi,bj)-surf_flx_tke(i,j)) + & *recip_deltaT + ENDDO + ENDDO + CALL DIAGNOSTICS_FILL( surf_flx_tke ,'GGL90Emn', + & k, 1, 2, bi, bj, myThid ) + ENDIF +#endif ENDDO C end of time step C =============================== DO k=2,Nr +#ifdef ALLOW_GGL90_SMOOTH + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + maskI(i,j) = maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) + & *mskCor(i,j,bi,bj) + GGL90visctmp(i,j,k) = GGL90visctmp(i,j,k)*mskCor(i,j,bi,bj) + ENDDO + ENDDO +#endif DO j=1,sNy DO i=1,sNx #ifdef ALLOW_GGL90_SMOOTH tmpVisc = ( - & p4 * GGL90visctmp(i ,j ,k)*mskCor(i ,j ,bi,bj) - & +p8 *( ( GGL90visctmp(i-1,j ,k)*mskCor(i-1,j ,bi,bj) - & + GGL90visctmp(i+1,j ,k)*mskCor(i+1,j ,bi,bj) ) - & + ( GGL90visctmp(i ,j-1,k)*mskCor(i ,j-1,bi,bj) - & + GGL90visctmp(i ,j+1,k)*mskCor(i ,j+1,bi,bj) ) ) - & +p16*( ( GGL90visctmp(i+1,j+1,k)*mskCor(i+1,j+1,bi,bj) - & + GGL90visctmp(i-1,j-1,k)*mskCor(i-1,j-1,bi,bj) ) - & + ( GGL90visctmp(i+1,j-1,k)*mskCor(i+1,j-1,bi,bj) - & + GGL90visctmp(i-1,j+1,k)*mskCor(i-1,j+1,bi,bj) ) ) + & p4 * GGL90visctmp(i ,j ,k) + & +p8 *( ( GGL90visctmp(i-1,j ,k) + GGL90visctmp(i+1,j ,k) ) + & + ( GGL90visctmp(i ,j-1,k) + GGL90visctmp(i ,j+1,k) ) ) + & +p16*( ( GGL90visctmp(i+1,j+1,k) + GGL90visctmp(i-1,j-1,k) ) + & + ( GGL90visctmp(i+1,j-1,k) + GGL90visctmp(i-1,j+1,k) ) ) & )/( & p4 - & +p8 *( ( maskC(i-1,j ,k,bi,bj)*mskCor(i-1,j ,bi,bj) - & + maskC(i+1,j ,k,bi,bj)*mskCor(i+1,j ,bi,bj) ) - & + ( maskC(i ,j-1,k,bi,bj)*mskCor(i ,j-1,bi,bj) - & + maskC(i ,j+1,k,bi,bj)*mskCor(i ,j+1,bi,bj) ) ) - & +p16*( ( maskC(i+1,j+1,k,bi,bj)* mskCor(i+1,j+1,bi,bj) - & + maskC(i-1,j-1,k,bi,bj)*mskCor(i-1,j-1,bi,bj) ) - & + ( maskC(i+1,j-1,k,bi,bj)*mskCor(i+1,j-1,bi,bj) - & + maskC(i-1,j+1,k,bi,bj)*mskCor(i-1,j+1,bi,bj) ) ) - & )*maskC(i,j,k,bi,bj)*mskCor(i,j,bi,bj) + & +p8 *(( maskI(i-1,j ) + maskI(i+1,j ) ) + & +( maskI(i ,j-1) + maskI(i ,j+1) ) ) + & +p16*(( maskI(i+1,j+1) + maskI(i-1,j-1) ) + & +( maskI(i+1,j-1) + maskI(i-1,j+1) ) ) + & )*maskI(i,j) #else tmpVisc = GGL90visctmp(i,j,k) #endif tmpVisc = MIN(tmpVisc/TKEPrandtlNumber(i,j,k),GGL90diffMax) + & * coordFac*coordFac GGL90diffKr(i,j,k,bi,bj)= MAX( tmpVisc , diffKrNrS(k) ) ENDDO ENDDO - ENDDO - DO k=2,Nr DO j=1,sNy DO i=1,sNx+1 #ifdef ALLOW_GGL90_SMOOTH tmpVisc = ( - & p4 *( GGL90visctmp(i-1,j ,k)*mskCor(i-1,j ,bi,bj) - & + GGL90visctmp(i ,j ,k)*mskCor(i ,j ,bi,bj) ) - & +p8 *( ( GGL90visctmp(i-1,j-1,k)*mskCor(i-1,j-1,bi,bj) - & + GGL90visctmp(i ,j-1,k)*mskCor(i ,j-1,bi,bj) ) - & + ( GGL90visctmp(i-1,j+1,k)*mskCor(i-1,j+1,bi,bj) - & + GGL90visctmp(i ,j+1,k)*mskCor(i ,j+1,bi,bj) ) ) + & p4 *( GGL90visctmp(i-1,j ,k) + GGL90visctmp(i,j ,k) ) + & +p8 *( ( GGL90visctmp(i-1,j-1,k) + GGL90visctmp(i,j-1,k) ) + & + ( GGL90visctmp(i-1,j+1,k) + GGL90visctmp(i,j+1,k) ) ) & )/( & p4 * 2. _d 0 - & +p8 *( ( maskC(i-1,j-1,k,bi,bj)*mskCor(i-1,j-1,bi,bj) - & + maskC(i ,j-1,k,bi,bj)*mskCor(i ,j-1,bi,bj) ) - & + ( maskC(i-1,j+1,k,bi,bj)*mskCor(i-1,j+1,bi,bj) - & + maskC(i ,j+1,k,bi,bj)*mskCor(i ,j+1,bi,bj) ) ) - & )*maskC(i-1,j,k,bi,bj)*mskCor(i-1,j,bi,bj) - & *maskC(i ,j,k,bi,bj)*mskCor(i ,j,bi,bj) + & +p8 *(( maskI(i-1,j-1) + maskI(i,j-1) ) + & +( maskI(i-1,j+1) + maskI(i,j+1) ) ) + & )*maskI(i-1,j) * maskI(i,j) #else - tmpVisc = _maskW(i,j,k,bi,bj) * halfRL + tmpVisc = _maskW(i,j,k-1,bi,bj) * _maskW(i,j,k,bi,bj) * halfRL & *( GGL90visctmp(i-1,j,k) - & + GGL90visctmp(i,j,k) ) + & + GGL90visctmp(i, j,k) ) #endif tmpVisc = MIN( tmpVisc , GGL90viscMax ) + & * coordFac*coordFac GGL90viscArU(i,j,k,bi,bj) = MAX( tmpVisc, viscArNr(k) ) ENDDO ENDDO - ENDDO - DO k=2,Nr DO j=1,sNy+1 DO i=1,sNx #ifdef ALLOW_GGL90_SMOOTH tmpVisc = ( - & p4 *( GGL90visctmp(i ,j-1,k)*mskCor(i ,j-1,bi,bj) - & + GGL90visctmp(i ,j ,k)*mskCor(i ,j ,bi,bj) ) - & +p8 *( ( GGL90visctmp(i-1,j-1,k)*mskCor(i-1,j-1,bi,bj) - & + GGL90visctmp(i-1,j ,k)*mskCor(i-1,j ,bi,bj) ) - & + ( GGL90visctmp(i+1,j-1,k)*mskCor(i+1,j-1,bi,bj) - & + GGL90visctmp(i+1,j ,k)*mskCor(i+1,j ,bi,bj) ) ) + & p4 *( GGL90visctmp(i ,j-1,k) + GGL90visctmp(i ,j,k) ) + & +p8 *( ( GGL90visctmp(i-1,j-1,k) + GGL90visctmp(i-1,j,k) ) + & + ( GGL90visctmp(i+1,j-1,k) + GGL90visctmp(i+1,j,k) ) ) & )/( & p4 * 2. _d 0 - & +p8 *( ( maskC(i-1,j-1,k,bi,bj)*mskCor(i-1,j-1,bi,bj) - & + maskC(i-1,j ,k,bi,bj)*mskCor(i-1,j ,bi,bj) ) - & + ( maskC(i+1,j-1,k,bi,bj)*mskCor(i+1,j-1,bi,bj) - & + maskC(i+1,j ,k,bi,bj)*mskCor(i+1,j ,bi,bj) ) ) - & )*maskC(i,j-1,k,bi,bj)*mskCor(i,j-1,bi,bj) - & *maskC(i,j ,k,bi,bj)*mskCor(i,j ,bi,bj) + & +p8 *(( maskI(i-1,j-1) + maskI(i-1,j) ) + & +( maskI(i+1,j-1) + maskI(i+1,j) ) ) + & )*maskI(i,j-1) * maskI(i,j) #else - tmpVisc = _maskS(i,j,k,bi,bj) * halfRL + tmpVisc = _maskS(i,j,k-1,bi,bj) * _maskS(i,j,k,bi,bj) * halfRL & *( GGL90visctmp(i,j-1,k) - & + GGL90visctmp(i,j,k) ) + & + GGL90visctmp(i,j, k) ) #endif tmpVisc = MIN( tmpVisc , GGL90viscMax ) + & * coordFac*coordFac GGL90viscArV(i,j,k,bi,bj) = MAX( tmpVisc, viscArNr(k) ) ENDDO ENDDO @@ -781,36 +1463,91 @@ SUBROUTINE GGL90_CALC( & 0,Nr, 1, bi, bj, myThid ) CALL DIAGNOSTICS_FILL( TKEPrandtlNumber ,'GGL90Prl', & 0,Nr, 2, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( GGL90mixingLength,'GGL90Lmx', - & 0,Nr, 2, bi, bj, myThid ) +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN + CALL DIAGNOSTICS_FILL( LCmixingLength,'GGL90Lmx', + & 0,Nr, 2, bi, bj, myThid ) + ELSE +#else + IF (.TRUE.) THEN +#endif /* ALLOW_GGL90_LANGMUIR */ + CALL DIAGNOSTICS_FILL( GGL90mixingLength,'GGL90Lmx', + & 0,Nr, 2, bi, bj, myThid ) + ENDIF - kp1 = MIN(Nr,kSurf+1) - DO j=jMin,jMax - DO i=iMin,iMax -C diagnose surface flux of TKE - surf_flx_tke(i,j) =(GGL90TKE(i,j,kSurf,bi,bj)- - & GGL90TKE(i,j,kp1,bi,bj)) - & *recip_drF(kSurf)*recip_hFacC(i,j,kSurf,bi,bj) - & *KappaE(i,j,kp1) +C avoid extra 3D diagnostics field and abuse unused field + IF ( DIAGNOSTICS_IS_ON('GGL90KN2',myThid) ) THEN + DO k=1,Nr + DO j=1,sNy + DO i=1,sNx + TKEPrandtlNumber(i,j,k) = + & GGL90diffKr(i,j,k,bi,bj) * Nsquare(i,j,k) + ENDDO + ENDDO ENDDO - ENDDO - CALL DIAGNOSTICS_FILL( surf_flx_tke,'GGL90flx', - & 0, 1, 2, bi, bj, myThid ) + CALL DIAGNOSTICS_FILL( TKEPrandtlNumber ,'GGL90KN2', + & 0, Nr, 2, bi, bj, myThid ) + ENDIF - k=kSurf - DO j=jMin,jMax - DO i=iMin,iMax + IF ( DIAGNOSTICS_IS_ON('GGL90flx',myThid) ) THEN +C diagnose surface flux of TKE + IF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax +CML#ifdef ALLOW_SHELFICE +CML IF ( useShelfIce ) THEN +CML kSrf = MAX(kTopC(i,j,bi,bj),1) +CML kTop = kSrf +CML ENDIF +CML#endif + surf_flx_tke(i,j) = + & (MAX(GGL90TKEsurfMin,GGL90m2*uStarSquare(i,j)) + & - GGL90TKE(i,j,kSrf,bi,bj) ) + & *recip_drF(kSrf)*recip_hFacC(i,j,kSrf,bi,bj) + & *KappaE(i,j,kSrf) + & *coordFac + ENDDO + ENDDO + ELSE + DO j=jMin,jMax + DO i=iMin,iMax +#ifdef ALLOW_SHELFICE + IF ( useShelfIce ) THEN + kSrf = MAX(1,kTopC(i,j,bi,bj)) + kTop = MIN(kSrf+1,Nr) + ENDIF +#endif + surf_flx_tke(i,j) =(GGL90TKE(i,j,kSrf,bi,bj)- + & GGL90TKE(i,j,kTop,bi,bj)) + & *recip_drF(kSrf)*recip_hFacC(i,j,kSrf,bi,bj) + & *KappaE(i,j,kTop) + ENDDO + ENDDO + ENDIF + CALL DIAGNOSTICS_FILL( surf_flx_tke,'GGL90flx', + & 0, 1, 2, bi, bj, myThid ) + ENDIF + + IF ( DIAGNOSTICS_IS_ON('GGL90tau',myThid) ) THEN + k=kSrf + DO j=jMin,jMax + DO i=iMin,iMax +#ifdef ALLOW_SHELFICE + IF ( useShelfIce ) k = MAX(1,kTopC(i,j,bi,bj)) +#endif C diagnose work done by the wind - surf_flx_tke(i,j) = + surf_flx_tke(i,j) = & halfRL*( surfaceForcingU(i, j,bi,bj)*uVel(i ,j,k,bi,bj) & +surfaceForcingU(i+1,j,bi,bj)*uVel(i+1,j,k,bi,bj)) & + halfRL*( surfaceForcingV(i,j, bi,bj)*vVel(i,j ,k,bi,bj) & +surfaceForcingV(i,j+1,bi,bj)*vVel(i,j+1,k,bi,bj)) + surf_flx_tke(i,j) = surf_flx_tke(i,j) *recip_coordFac + ENDDO ENDDO - ENDDO - CALL DIAGNOSTICS_FILL( surf_flx_tke,'GGL90tau', - & 0, 1, 2, bi, bj, myThid ) - + CALL DIAGNOSTICS_FILL( surf_flx_tke,'GGL90tau', + & 0, 1, 2, bi, bj, myThid ) + ENDIF +C endif useDiagnostics ENDIF #endif /* ALLOW_DIAGNOSTICS */ diff --git a/pkg/ggl90/ggl90_calc_diff.F b/pkg/ggl90/ggl90_calc_diff.F index 6fca29e3c3..58af857d32 100644 --- a/pkg/ggl90/ggl90_calc_diff.F +++ b/pkg/ggl90/ggl90_calc_diff.F @@ -1,45 +1,48 @@ #include "GGL90_OPTIONS.h" +CBOP +C !ROUTINE: GGL90_CALC_DIFF + +C !INTERFACE: SUBROUTINE GGL90_CALC_DIFF( - I bi,bj,iMin,iMax,jMin,jMax,kArg,kSize, + I bi, bj, iMin, iMax, jMin, jMax, kArg, kSize, U KappaRx, - I myThid) + I myThid ) -C /==========================================================\ +C !DESCRIPTION: +C *==========================================================* C | SUBROUTINE GGL90_CALC_DIFF | -C | o Add contrubution to net diffusivity from GGL90 mixing | -C \==========================================================/ - IMPLICIT NONE +C | o Add contribution to net diffusivity from GGL90 mixing | +C *==========================================================* +C !USES: + IMPLICIT NONE C == GLobal variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "DYNVARS.h" -#include "GRID.h" -#ifdef ALLOW_GGL90 +c#include "DYNVARS.h" +c#include "GRID.h" #include "GGL90.h" -#endif -C == Routine arguments == -C bi, bj, :: tile indices +C !INPUT/OUTPUT PARAMETERS: +C bi, bj :: current tile indices C iMin,iMax :: Range of points for which calculation is done C jMin,jMax :: Range of points for which calculation is done C kArg :: = 0 -> do the k-loop here and treat all levels C > 0 -> k-loop is done outside and treat only level k=kArg C kSize :: 3rd Dimension of the vertical diffusivity array KappaRx C KappaRx :: vertical diffusivity array -C myThid :: Instance number for this innvocation of GGL90_CALC_DIFF - - INTEGER bi,bj,iMin,iMax,jMin,jMax,kArg,kSize +C myThid :: my Thread Id number + INTEGER bi, bj, iMin, iMax, jMin, jMax, kArg, kSize _RL KappaRx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSize) INTEGER myThid #ifdef ALLOW_GGL90 - -C == Local variables == -C i,j,k :: Loop counters - INTEGER i,j,k +C !LOCAL VARIABLES: +C i, j, k :: Loop counters + INTEGER i, j, k +CEOP C-- Add Vertical diffusivity contribution from GGL90 IF ( kArg .EQ. 0 ) THEN diff --git a/pkg/ggl90/ggl90_calc_visc.F b/pkg/ggl90/ggl90_calc_visc.F index bd425f2105..f52787ecd5 100644 --- a/pkg/ggl90/ggl90_calc_visc.F +++ b/pkg/ggl90/ggl90_calc_visc.F @@ -1,57 +1,60 @@ #include "GGL90_OPTIONS.h" +CBOP +C !ROUTINE: GGL90_CALC_VISC + +C !INTERFACE: SUBROUTINE GGL90_CALC_VISC( - I bi,bj,iMin,iMax,jMin,jMax,K, - U KappaRU,KappaRV, - I myThid) + I bi, bj, iMin, iMax, jMin, jMax, k, + U KappaRU, KappaRV, + I myThid ) -CBOP +C !DESCRIPTION: C *==========================================================* C | SUBROUTINE GGL90_CALC_VISC | -C | o Add contrubution to net viscosity from GGL90 mixing | +C | o Add contribution to net viscosity from GGL90 mixing | C *==========================================================* - IMPLICIT NONE +C !USES: + IMPLICIT NONE C == GLobal variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "DYNVARS.h" -#include "GRID.h" +c#include "DYNVARS.h" +c#include "GRID.h" #include "GGL90.h" -C == Routine arguments == -C bi, bj, iMin, iMax, jMin, jMax - Range of points for which calculation -C myThid - Instance number for this innvocation of GGL90_CALC_VISC -C - INTEGER bi,bj,iMin,iMax,jMin,jMax,K - _RL KappaRU(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL KappaRV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) +C !INPUT/OUTPUT PARAMETERS: +C bi, bj :: current tile indices +C iMin,iMax :: Range of points for which calculation is done +C jMin,jMax :: Range of points for which calculation is done +C k :: current level index +C KappaRU :: vertical viscosity array for U-component +C KappaRV :: vertical viscosity array for V-component +C myThid :: my Thread Id number + INTEGER bi, bj, iMin, iMax, jMin, jMax, k + _RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER myThid -CEOP #ifdef ALLOW_GGL90 - -C == Local variables == -C I, J, K - Loop counters - INTEGER i,j - _RL p4, p8, p16 - - p4=0.25 _d 0 - p8=0.125 _d 0 - p16=0.0625 _d 0 +C !LOCAL VARIABLES: +C i, j :: Loop counters + INTEGER i, j +CEOP DO j=jMin,jMax DO i=iMin,iMax - KappaRU(i,j,k) = KappaRU(i,j,k) + - & (GGL90viscArU(i,j,k,bi,bj) - viscArNr(k) ) + KappaRU(i,j,k) = KappaRU(i,j,k) + & + ( GGL90viscArU(i,j,k,bi,bj) - viscArNr(k) ) ENDDO ENDDO DO j=jMin,jMax DO i=iMin,iMax - KappaRV(i,j,k) = KappaRV(i,j,k) + _maskS(i,j,k,bi,bj) * - & (GGL90viscArV(i,j,k,bi,bj) - viscArNr(k) ) + KappaRV(i,j,k) = KappaRV(i,j,k) + & + ( GGL90viscArV(i,j,k,bi,bj) - viscArNr(k) ) ENDDO ENDDO diff --git a/pkg/ggl90/ggl90_check.F b/pkg/ggl90/ggl90_check.F index b20cbff647..fa71053a9b 100644 --- a/pkg/ggl90/ggl90_check.F +++ b/pkg/ggl90/ggl90_check.F @@ -15,28 +15,25 @@ SUBROUTINE GGL90_CHECK( myThid ) #include "GGL90.h" C === Routine arguments === -C myThid - Number of this instance of GGL90_CHECK +C myThid :: Number of this instance of GGL90_CHECK INTEGER myThid #ifdef ALLOW_GGL90 C === Local variables === -C msgBuf - Informational/error meesage buffer +C errCount :: error counter +C msgBuf :: Informational/error message buffer + INTEGER errCount CHARACTER*(MAX_LEN_MBUF) msgBuf + _BEGIN_MASTER(myThid) + errCount = 0 + WRITE(msgBuf,'(A)') 'GGL90_CHECK: #define ALLOW_GGL90' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) -C So far, GGL90 works only with oceanic z-coordinates - IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN - WRITE(msgBuf,'(A)') - & 'GGL90 works only with buoyancyRelation = ''OCEANIC''' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' - ENDIF - -C convective adjustment might be needed even with ggl90 +C Convective adjustment might be needed even with ggl90 IF ( cAdjFreq.NE.0. .OR. ivdc_kappa.NE.0. ) THEN WRITE(msgBuf,'(A)') & 'GGL90_CHECK: Some form of convection has been enabled' @@ -50,7 +47,7 @@ SUBROUTINE GGL90_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'Horizontal diffusion of TKE and smoothing are both on' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' + errCount = errCount + 1 ENDIF #endif #else @@ -59,44 +56,85 @@ SUBROUTINE GGL90_CHECK( myThid ) & 'Define ALLOW_GGL90_HORIZDIFF in GGL90_OPTIONS.h', & ' to get diffusion of TKE' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' + errCount = errCount + 1 + ENDIF +#endif +#ifndef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR ) THEN + WRITE(msgBuf,'(2A)') + & 'Define ALLOW_GGL90_LANGMUIR in GGL90_OPTIONS.h', + & ' to use Langmuir Parameterization' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 ENDIF #endif +C GGL90 needs implicit vertical diffusion and viscosity + IF (.NOT.implicitDiffusion ) THEN + WRITE(msgBuf,'(A)') + & 'GGL90 needs implicitDiffusion to be enabled' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF (.NOT.implicitViscosity) THEN + WRITE(msgBuf,'(A)') + & 'GGL90 needs implicitViscosity to be enabled' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + +C Limitation of Langmuir Parameterization implementation: + IF ( useLANGMUIR .AND. useAbsVorticity ) THEN +c WRITE(msgBuf,'(2A)') '** WARNING ** GGL90_CHECK: ', + WRITE(msgBuf,'(2A)') 'GGL90_CHECK: ', + & 'with useAbsVorticity, missing Coriolis' + CALL PRINT_ERROR( msgBuf, myThid ) +c CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, +c & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') 'GGL90_CHECK: ', + & ' contrib from Langmuir Parameterization' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( useLANGMUIR .AND. useCDscheme ) THEN + WRITE(msgBuf,'(2A)') 'GGL90_CHECK: ', + & 'with useCDscheme, missing Coriolis' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'GGL90_CHECK: ', + & ' contrib from Langmuir Parameterization' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + +C Compatibility with the use of other pkgs: IF ( useKPP ) THEN WRITE(msgBuf,'(A)') & 'GGL90 and KPP cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' + errCount = errCount + 1 ENDIF IF ( usePP81 ) THEN WRITE(msgBuf,'(A)') & 'GGL90 and PP81 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' + errCount = errCount + 1 ENDIF IF ( useMY82 ) THEN WRITE(msgBuf,'(A)') & 'GGL90 and MY82 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' + errCount = errCount + 1 ENDIF -C GGL90 needs implicit vertical diffusion and viscosity - IF (.NOT.implicitDiffusion ) THEN - WRITE(msgBuf,'(A)') - & 'GGL90 needs implicitDiffusion to be enabled' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R GGL90_CHECK' - ENDIF - IF (.NOT.implicitViscosity) THEN - WRITE(msgBuf,'(A)') - & 'GGL90 needs implicitViscosity to be enabled' +C- Stop cleanly when error was detected + IF ( errCount.GE.1 ) THEN + WRITE(msgBuf,'(A,I3,A)') + & 'GGL90_CHECK: detected', errCount,' fatal error(s)' CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R GGL90_CHECK' ENDIF + _END_MASTER(myThid) #endif /* ALLOW_GGL90 */ diff --git a/pkg/ggl90/ggl90_diagnostics_init.F b/pkg/ggl90/ggl90_diagnostics_init.F index 8a422050a3..246e0fe62a 100644 --- a/pkg/ggl90/ggl90_diagnostics_init.F +++ b/pkg/ggl90/ggl90_diagnostics_init.F @@ -1,7 +1,7 @@ #include "GGL90_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP +CBOP C !ROUTINE: GGL90_DIAGNOSTICS_INIT C !INTERFACE: SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) @@ -51,6 +51,13 @@ SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'GGL90Emn' + diagTitle = 'rate of TKE energy added by applying GGL90TKEmin' + diagUnits = 'm^2/s^3 ' + diagCode = 'SM LR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'GGL90Lmx' diagTitle = 'Mixing length scale ' diagUnits = 'm ' @@ -79,13 +86,20 @@ SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) - diagName = 'GGL90Kr' + diagName = 'GGL90Kr ' diagTitle = 'GGL90 diffusion coefficient for temperature' diagUnits = 'm^2/s ' diagCode = 'SM LR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'GGL90KN2' + diagTitle = 'GGL90 diffusivity times buoyancy frequency' + diagUnits = 'm^2/s^3 ' + diagCode = 'SM LR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'GGL90flx' diagTitle = 'Surface flux of TKE ' diagUnits = 'm^3/s^3 ' @@ -93,7 +107,6 @@ SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) - diagName = 'GGL90tau' diagTitle = 'Work done by the wind ' diagUnits = 'm^3/s^3 ' @@ -109,6 +122,13 @@ SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'IDEMgTKE' + diagTitle = 'IDEMIX tendency: tau_d times IDEMIX_E^2' + diagUnits = 'm^2/s^3 ' + diagCode = 'SM LR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'IDEMIX_c' diagTitle = 'IDEMIX vertical group velocity ' diagUnits = 'm/s ' @@ -167,6 +187,15 @@ SUBROUTINE GGL90_DIAGNOSTICS_INIT( myThid ) #endif +#ifdef ALLOW_AUTODIFF + diagName = 'ADJtke90' + diagTitle = 'dJ/dTKE: Sensitivity to GGL90 TKE' + diagUnits = 'dJ/(m^2/s^2) ' + diagCode = 'SMRA MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif + #endif /* ALLOW_DIAGNOSTICS */ RETURN diff --git a/pkg/ggl90/ggl90_exchanges.F b/pkg/ggl90/ggl90_exchanges.F index 476c94b190..e850c740ab 100644 --- a/pkg/ggl90/ggl90_exchanges.F +++ b/pkg/ggl90/ggl90_exchanges.F @@ -21,27 +21,27 @@ SUBROUTINE GGL90_EXCHANGES( myThid ) #include "GGL90.h" C !INPUT/OUTPUT PARAMETERS: ======================================== -C == Routine arguments == -C myThid :: thread number +C myThid :: my Thread Id number INTEGER myThid #ifdef ALLOW_GGL90 C !LOCAL VARIABLES: ==================================================== -C == Local variables == CEOP -#ifdef ALLOW_GGL90_HORIZDIFF - IF (GGL90isON .AND. GGL90diffTKEh .GT. 0. _d 0) THEN -C Exchange overlaps - _EXCH_XYZ_RL(GGL90TKE,myThid) - ENDIF -#endif /* ALLOW_GGL90_HORIZDIFF */ #ifdef ALLOW_GGL90_IDEMIX - IF ( useIDEMIX ) THEN - _EXCH_XYZ_RL(IDEMIX_E,myThid) - _EXCH_XYZ_RL(IDEMIX_V0,myThid) + IF ( useIDEMIX .AND. IDEMIX_tau_h .GT. zeroRL ) THEN + _EXCH_XYZ_RL( GGL90TKE, myThid ) + _EXCH_XYZ_RL( IDEMIX_E, myThid ) + ELSEIF ( GGL90diffTKEh .GT. zeroRL ) THEN +#else /* ALLOW_GGL90_IDEMIX */ + IF ( GGL90diffTKEh .GT. zeroRL ) THEN +#endif /* ALLOW_GGL90_IDEMIX */ + _EXCH_XYZ_RL( GGL90TKE, myThid ) ENDIF -#endif + +C-- Just to check that it does not affects results: +c CALL EXCH_UV_3D_RL( GGL90viscArU, GGL90viscArV, +c I .FALSE., Nr, myThid ) #endif /* ALLOW_GGL90 */ RETURN diff --git a/pkg/ggl90/ggl90_idemix.F b/pkg/ggl90/ggl90_idemix.F index b53c1ae079..3fffc289c3 100644 --- a/pkg/ggl90/ggl90_idemix.F +++ b/pkg/ggl90/ggl90_idemix.F @@ -1,10 +1,24 @@ #include "GGL90_OPTIONS.h" +#ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" +#endif +#undef GM_EG_PROGNOSTIC + +C-- File ggl90_idemix.F: +C-- Contents +C-- o GGL90_IDEMIX +C-- o IDEMIX_gofx2 +C-- o IDEMIX_hofx1 + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: GGL90_IDEMIX C !INTERFACE: ====================================================== SUBROUTINE GGL90_IDEMIX( - I bi, bj, hFacI, recip_hFacI, sigmaR, myTime, myIter, myThid ) + I bi, bj, hFacI, recip_hFacI, sigmaR, + O gTKE, + I myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -29,8 +43,7 @@ SUBROUTINE GGL90_IDEMIX( #include "GRID.h" #ifdef ALLOW_GMREDI -#include "GMREDI_OPTIONS.h" -#include "GMREDI.h" +# include "GMREDI.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -39,59 +52,98 @@ SUBROUTINE GGL90_IDEMIX( C hFacI :: thickness factors for w-cells (interface) C with reciprocal of hFacI = recip_hFacI C sigmaR :: Vertical gradient of iso-neutral density +C gTKE :: dissipation of IW energy (output of S/R GGL90_IDEMIX) C myTime :: Current time in simulation C myIter :: Current time-step number C myThid :: My Thread Id number INTEGER bi, bj _RL hFacI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL recip_hFacI(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL sigmaR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL gTKE(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL sigmaR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_GGL90_IDEMIX -C !LOCAL VARIABLES : +C !FUNCTIONS: + _RL IDEMIX_gofx2, IDEMIX_hofx1 +#ifdef ALLOW_DIAGNOSTICS + LOGICAL DIAGNOSTICS_IS_ON + EXTERNAL DIAGNOSTICS_IS_ON +#endif /* ALLOW_DIAGNOSTICS */ + +C !LOCAL VARIABLES: C === Local variables === INTEGER iMin ,iMax ,jMin ,jMax - INTEGER i, j, k, kp1, km1, kBottom + INTEGER i, j, k, kl, kp1, km1 + INTEGER kSrf, kTop, kBot INTEGER errCode - _RL Nsquare(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL deltaTggl90 - _RL fxa,fxb,fxc,cstar - _RL dfx(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL dfy(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL IDEMIX_gofx2,IDEMIX_hofx1 - _RL delta(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL bN0(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL a3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL b3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL c3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL deltaTloc +C cstar :: vertical integral over N, eq (13) in Olbers+Eden (2013) + _RL fxa, fxb, fxc, cstar, twoOverPi, pijstar, recip_pijstar + _RL coordFac, recip_coordFac + _RL dfx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dfy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +c bN0 :: vertically integrated N + _RL bN0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL delta (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL Nsquare (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL a3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL b3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL c3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +C v0 :: mean lateral group velocity + _RL v0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +C c0 :: mean vertical group velocity, defined at interfaces (wVel-like) + _RL c0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +C tau_d :: dissipation parameter (see Olbers and Eden 2013, eq.12) + _RL tau_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL forc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL gm_forc (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifdef ALLOW_DIAGNOSTICS _RL osborn_diff(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL c0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL forc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) - _RL gm_forc(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif CEOP iMin = 2-OLx iMax = sNx+OLx-1 jMin = 2-OLy jMax = sNy+OLy-1 -C set separate time step (should be deltaTtracer) - deltaTggl90 = dTtracerLev(1) + + IF ( usingPCoords ) THEN + kSrf = Nr + kTop = Nr + ELSE + kSrf = 1 + kTop = 2 + ENDIF + deltaTloc = dTtracerLev(kSrf) + + coordFac = 1. _d 0 + IF ( usingPCoords) coordFac = gravity * rhoConst + recip_coordFac = 1./coordFac + + twoOverPi = 2. _d 0/PI + pijstar = PI*IDEMIX_jstar + recip_pijstar = 1. _d 0 / pijstar C Initialize local fields DO k = 1, Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx + gTKE(i,j,k) = 0. _d 0 Nsquare(i,j,k) = 0. _d 0 delta(i,j,k) = 0. _d 0 a3d(i,j,k) = 0. _d 0 b3d(i,j,k) = 1. _d 0 c3d(i,j,k) = 0. _d 0 - osborn_diff(i,j,k) = 0. _d 0 c0(i,j,k) = 0. _d 0 + v0(i,j,k) = 0. _d 0 + tau_d(i,j,k) = 0. _d 0 forc(i,j,k) = 0. _d 0 +#ifdef ALLOW_DIAGNOSTICS + osborn_diff(i,j,k) = 0. _d 0 +#endif ENDDO ENDDO ENDDO @@ -110,10 +162,14 @@ SUBROUTINE GGL90_IDEMIX( DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx Nsquare(i,j,k) = gravity*gravitySign*recip_rhoConst - & * sigmaR(i,j,k) - fxb = max( 1. _d -6, abs( fCori(i,j,bi,bj) )) - Nsquare(i,j,k)= max( 100.*fxb*fxb, Nsquare(i,j,k) ) + & * sigmaR(i,j,k) * coordFac +#ifdef GGL90_IDEMIX_CVMIX_VERSION + Nsquare(i,j,k)= MAX( 0. _d 0, Nsquare(i,j,k) ) +#else + fxb = MAX( 1. _d -6, ABS( fCori(i,j,bi,bj) )) + Nsquare(i,j,k)= MAX( 100.*fxb*fxb, Nsquare(i,j,k) ) & *maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) +#endif ENDDO ENDDO ENDDO @@ -124,7 +180,7 @@ SUBROUTINE GGL90_IDEMIX( DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx bN0(i,j)=bN0(i,j) - & +SQRT(Nsquare(i,j,k))*drC(k)*hFacI(i,j,k) + & +SQRT(Nsquare(i,j,k))*drC(k)*recip_coordFac*hFacI(i,j,k) ENDDO ENDDO ENDDO @@ -135,17 +191,30 @@ SUBROUTINE GGL90_IDEMIX( DO k=2,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - fxb = max( 1. _d -6, abs( fCori(i,j,bi,bj) )) - fxa = SQRT(Nsquare(i,j,k))/fxb - cstar = bN0(i,j)/(pi*IDEMIX_jstar) - c0(i,j,k)=max(0. _d 0, - & cstar*IDEMIX_gamma*IDEMIX_gofx2(fxa)) - IDEMIX_V0(i,j,k,bi,bj)=max(0. _d 0, - & cstar*IDEMIX_gamma*IDEMIX_hofx1(fxa)) - fxc = max( 1. _d 0 , fxa ) - fxc = log( fxc + sqrt( fxc*fxc -1.)) - IDEMIX_tau_d(i,j,k,bi,bj) = IDEMIX_mu0*fxb*fxc* - & (IDEMIX_jstar*pi/(GGL90eps+bN0(i,j)) )**2 +#ifdef GGL90_IDEMIX_CVMIX_VERSION + fxb = ABS( fCori(i,j,bi,bj) ) + fxa = SQRT(Nsquare(i,j,k))/(1. _d -22 + fxb) + cstar = MAX(1. _d -2, bN0(i,j)*recip_pijstar) +#else +C cstar is not limited from below (to say 1e-2), instead Nsquare is +C limited from below to (10 * max(1e-6, fCori))**2 + fxb = MAX( 1. _d -6, ABS( fCori(i,j,bi,bj) )) + fxa = SQRT(Nsquare(i,j,k))/fxb + cstar = bN0(i,j)*recip_pijstar +#endif + c0(i,j,k)=MAX(0. _d 0, + & cstar*IDEMIX_gamma*IDEMIX_gofx2(fxa,twoOverPI)) + v0(i,j,k)=MAX(0. _d 0, + & cstar*IDEMIX_gamma*IDEMIX_hofx1(fxa,twoOverPI)) +C next two lines: fxc = ACOSH( MAX(1,fxa) ) + fxc = MAX( 1. _d 0 , fxa ) + fxc = LOG( fxc + SQRT( fxc*fxc -1.)) +#ifdef GGL90_IDEMIX_CVMIX_VERSION + tau_d(i,j,k) = MAX( 1. _d -4, IDEMIX_mu0*fxb*fxc/cstar**2 ) +#else + tau_d(i,j,k) = IDEMIX_mu0*fxb*fxc + & * ( pijstar/(GGL90eps+bN0(i,j)) )**2 +#endif ENDDO ENDDO ENDDO @@ -154,12 +223,12 @@ SUBROUTINE GGL90_IDEMIX( C time steps, so limit horizontal group velocity to satisfy simple C CFL-like criterion: C tau_h V0**2 *dt/dx**2 < 0.25 <=> V0 < sqrt( 0.25 * dx**2/(dt*tau_h) ) - fxa = sqrt( 1. _d 0/( deltaTggl90 * IDEMIX_tau_h ) ) DO k=2,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - fxb = 0.5*min( _dxF(i,j,bi,bj), _dyF(i,j,bi,bj) )*fxa - IDEMIX_V0(i,j,k,bi,bj) = min( IDEMIX_V0(i,j,k,bi,bj), fxb ) + fxa = SQRT( 1. _d 0/( deltaTloc * IDEMIX_tau_h ) ) + fxb = 0.5*MIN( _dxF(i,j,bi,bj), _dyF(i,j,bi,bj) )*fxa + v0(i,j,k) = MIN( v0(i,j,k), fxb ) ENDDO ENDDO ENDDO @@ -170,30 +239,31 @@ SUBROUTINE GGL90_IDEMIX( c vertically integrated forcing #ifdef ALLOW_GMREDI - if (useGmredi) then + IF (useGmredi) THEN #ifdef GM_EG_PROGNOSTIC DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx gm_forc(i,j) = gm_forc(i,j) - & +GM_EG_diss(i,j,k,bi,bj)*drF(k)*hFacC(i,j,k,bi,bj) + & +GM_EG_diss(i,j,k,bi,bj) + & *drF(k)*recip_coordFac*hFacC(i,j,k,bi,bj) ENDDO ENDDO ENDDO -#else +#else /* GM_EG_PROGNOSTIC */ DO k=2,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx gm_forc(i,j) = gm_forc(i,j) - & +max( 0. _d 0,Kwz(i,j,k,bi,bj)*Nsquare(i,j,k) ) - & *drC(k)*hFacI(i,j,k) + & +MAX( 0. _d 0,Kwz(i,j,k,bi,bj)*Nsquare(i,j,k) ) + & *drC(k)*recip_coordFac*hFacI(i,j,k) ENDDO ENDDO ENDDO -#endif - endif +#endif /* GM_EG_PROGNOSTIC */ + ENDIF - if (IDEMIX_include_GM .and. useGmredi) then + IF (IDEMIX_include_GM .AND. useGmredi) THEN c inject locally #ifdef GM_EG_PROGNOSTIC DO k=2,Nr @@ -205,48 +275,54 @@ SUBROUTINE GGL90_IDEMIX( ENDDO ENDDO ENDDO -#else +#else /* GM_EG_PROGNOSTIC */ DO k=2,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx forc(i,j,k) = forc(i,j,k) - & +max( 0. _d 0,Kwz(i,j,k,bi,bj)*Nsquare(i,j,k) ) + & +MAX( 0. _d 0,Kwz(i,j,k,bi,bj)*Nsquare(i,j,k) ) ENDDO ENDDO ENDDO -#endif - endif +#endif /* GM_EG_PROGNOSTIC */ + ENDIF - if (IDEMIX_include_GM_bottom .and. useGmredi) then + IF (IDEMIX_include_GM_bottom .AND. useGmredi) THEN c inject at bottom box only DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - kBottom = MAX(kLowC(i,j,bi,bj),1) - forc(i,j,kbottom)=forc(i,j,kbottom) - & + gm_forc(i,j)*recip_drC(kbottom) - & *recip_hFacI(i,j,kbottom) + IF ( usingPCoords ) THEN + kBot=MIN(kSurfC(i,j,bi,bj)+1,Nr) + ELSE + kBot = MAX(kLowC(i,j,bi,bj),1) + ENDIF + forc(i,j,kBot)=forc(i,j,kBot) + & + gm_forc(i,j)*recip_drC(kBot)*coordFac + & *recip_hFacI(i,j,kBot) ENDDO ENDDO - endif -#endif + ENDIF +#endif /* ALLOW_GMREDI */ c----------------------------------------------------------------------- c horizontal diffusion of IW energy c----------------------------------------------------------------------- DO k=2,Nr + kl = k + IF ( usingPCoords ) kl = k - 1 DO j=1-OLy,sNy+OLy dfx(1-OLx,j)=0. _d 0 DO i=1-OLx+1,sNx+OLx fxa = IDEMIX_tau_h*0.5 _d 0*( - & IDEMIX_V0(i-1,j,k,bi,bj)*maskC(i-1,j,k,bi,bj) - & +IDEMIX_V0(i ,j,k,bi,bj)*maskC(i ,j,k,bi,bj)) + & v0(i-1,j,k)*maskC(i-1,j,kl,bi,bj) + & +v0(i ,j,k)*maskC(i ,j,kl,bi,bj)) dfx(i,j) = -fxa*_dyG(i,j,bi,bj)*drC(k) - & *(min(.5 _d 0,_hFacW(i,j,k-1,bi,bj) ) + - & min(.5 _d 0,_hFacW(i,j,k ,bi,bj) ) ) + & *(MIN(.5 _d 0,_hFacW(i,j,k-1,bi,bj) ) + + & MIN(.5 _d 0,_hFacW(i,j,k ,bi,bj) ) ) & *_recip_dxC(i,j,bi,bj) - & *(IDEMIX_V0(i ,j,k,bi,bj)*IDEMIX_E(i ,j,k,bi,bj) - & -IDEMIX_V0(i-1,j,k,bi,bj)*IDEMIX_E(i-1,j,k,bi,bj)) - & *maskW(i,j,k,bi,bj) ! paranoia setting + & *(v0(i ,j,k)*IDEMIX_E(i ,j,k,bi,bj) + & -v0(i-1,j,k)*IDEMIX_E(i-1,j,k,bi,bj)) + & *maskW(i,j,kl,bi,bj) ! paranoia setting ENDDO ENDDO DO i=1-OLx,sNx+OLx @@ -255,15 +331,15 @@ SUBROUTINE GGL90_IDEMIX( DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx fxa = IDEMIX_tau_h*0.5 _d 0*( - & IDEMIX_V0(i,j ,k,bi,bj)*maskC(i,j ,k,bi,bj) - & +IDEMIX_V0(i,j-1,k,bi,bj)*maskC(i,j-1,k,bi,bj) ) + & v0(i,j ,k)*maskC(i,j ,kl,bi,bj) + & +v0(i,j-1,k)*maskC(i,j-1,kl,bi,bj) ) dfy(i,j) = -fxa*_dxG(i,j,bi,bj)*drC(k) - & *(min(.5 _d 0,_hFacS(i,j,k-1,bi,bj) ) + - & min(.5 _d 0,_hFacS(i,j,k ,bi,bj) ) ) + & *(MIN(.5 _d 0,_hFacS(i,j,k-1,bi,bj) ) + + & MIN(.5 _d 0,_hFacS(i,j,k ,bi,bj) ) ) & *_recip_dyC(i,j,bi,bj) - & *(IDEMIX_V0(i,j ,k,bi,bj)*IDEMIX_E(i,j ,k,bi,bj) - & -IDEMIX_V0(i,j-1,k,bi,bj)*IDEMIX_E(i,j-1,k,bi,bj)) - & *maskS(i,j,k,bi,bj) ! paranoia setting + & *(v0(i,j ,k)*IDEMIX_E(i,j ,k,bi,bj) + & -v0(i,j-1,k)*IDEMIX_E(i,j-1,k,bi,bj)) + & *maskS(i,j,kl,bi,bj) ! paranoia setting ENDDO ENDDO c----------------------------------------------------------------------- @@ -272,10 +348,10 @@ SUBROUTINE GGL90_IDEMIX( DO j=jMin,jMax DO i=iMin,iMax IDEMIX_E(i,j,k,bi,bj) = IDEMIX_E(i,j,k,bi,bj) - & + deltaTggl90*(-recip_drC(k)*recip_rA(i,j,bi,bj) + & + deltaTloc*(-recip_drC(k)*recip_rA(i,j,bi,bj) & *recip_hFacI(i,j,k) & *((dfx(i+1,j)-dfx(i,j))+(dfy(i,j+1)-dfy(i,j)) ) ) - & *maskC(i,j,k,bi,bj) ! paranoia setting + & *maskC(i,j,kl,bi,bj) ! paranoia setting ENDDO ENDDO ENDDO ! k loop @@ -286,7 +362,7 @@ SUBROUTINE GGL90_IDEMIX( DO j=jMin,jMax DO i=iMin,iMax IDEMIX_E(i,j,k,bi,bj) = IDEMIX_E(i,j,k,bi,bj) - & + forc(i,j,k)*deltaTggl90 + & + forc(i,j,k)*deltaTloc ENDDO ENDDO ENDDO @@ -295,128 +371,149 @@ SUBROUTINE GGL90_IDEMIX( c----------------------------------------------------------------------- C delta_k = dt tau_v /drF_k (c_k+c_k+1)/2 +C delta(1) and delta(Nr) are zero by initialisation DO k=2,Nr-1 DO j=jMin,jMax DO i=iMin,iMax - delta(i,j,k) = deltaTggl90*IDEMIX_tau_v - & *recip_drF(k)*recip_hFacC(i,j,k,bi,bj) - & *.5 _d 0*(c0(i,j,k)+c0(i,j,k+1)) + delta(i,j,k) = deltaTloc*IDEMIX_tau_v + & *recip_drF(k)*coordFac*recip_hFacC(i,j,k,bi,bj) + & *.5 _d 0*(c0(i,j,k)+c0(i,j,k+1)) ENDDO ENDDO ENDDO - DO j=jMin,jMax - DO i=iMin,iMax - delta(i,j,1) = 0. _d 0 - delta(i,j,Nr) = 0. _d 0 - kBottom = MAX(kLowC(i,j,bi,bj),1) - delta(i,j,kBottom) = 0. _d 0 + IF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MIN(kSurfC(i,j,bi,bj),Nr) + delta(i,j,kBot) = 0. _d 0 + ENDDO ENDDO - ENDDO + ELSE + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MAX(kLowC(i,j,bi,bj),1) + delta(i,j,kBot) = 0. _d 0 + ENDDO + ENDDO + ENDIF C-- Lower diagonal for E_(k-1) : -delta_k-1 c_k-1/drC_k - DO j=jMin,jMax - DO i=iMin,iMax - a3d(i,j,1) = 0. _d 0 - a3d(i,j,2) = 0. _d 0 - ENDDO - ENDDO - DO k=3,Nr - km1=MAX(2,k-1) +C but leaving the contribution of c0_k-1 for later + DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax C- No need for maskC(k-1) with recip_hFacC(k-1) in delta(k-1) - a3d(i,j,k) = -delta(i,j,k-1)*c0(i,j,km1) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,k,bi,bj)!*maskC(i,j,km1,bi,bj) + a3d(i,j,k) = -delta(i,j,k-1) + & *recip_drC(k)*coordFac*recip_hFacI(i,j,k) + & *maskC(i,j,k,bi,bj) ENDDO ENDDO ENDDO C-- Upper diagonal for E_(k+1): delta_k c_k+1/drC_k +C but leaving the contribution of c0_k+1 for later DO k=2,Nr DO j=jMin,jMax DO i=iMin,iMax C- No need for maskC(k) with recip_hFacC(k) in delta(k) - kp1=MAX(1,MIN(klowC(i,j,bi,bj),k+1)) - c3d(i,j,k) = -delta(i,j,k)*c0(i,j,kp1) - & *recip_drC(k)*recip_hFacI(i,j,k) + c3d(i,j,k) = -delta(i,j,k) + & *recip_drC(k)*coordFac*recip_hFacI(i,j,k) & *maskC(i,j,k-1,bi,bj) -! & *maskC(i,j,k,bi,bj)*maskC(i,j,kp1,bi,bj) ENDDO ENDDO ENDDO - DO j=jMin,jMax ! c3d at bottom is zero - DO i=iMin,iMax - c3d(i,j,1) = 0. _d 0 - kBottom = MAX(kLowC(i,j,bi,bj),1) - c3d(i,j,kBottom) = 0. _d 0 - ENDDO - ENDDO -C-- Center diagonal +C treat bottom and surface boundaries for coeffients +C of upper and lower diagonal by masking + IF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax +C a3d at bottom is zero + kBot=MIN(kSurfC(i,j,bi,bj)+1,Nr) + a3d(i,j,kBot) = 0. _d 0 +C for p-coords, c3d is zero at the surface, too + c3d(i,j,Nr) = 0. _d 0 + ENDDO + ENDDO + ELSEIF ( usingZCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax +C c3d at bottom is zero + kBot = MAX(kLowC(i,j,bi,bj),1) + c3d(i,j,kBot) = 0. _d 0 +C for z-coords, a3d is zero at the surface (level 2), too + a3d(i,j,kTop) = 0. _d 0 + ENDDO + ENDDO + ENDIF +C For k=1 there is nothing to solve for DO j=jMin,jMax DO i=iMin,iMax - b3d(i,j,1) = 1. _d 0 +C so that both off-diagonal coefficients are zero + a3d(i,j,1) = 0. _d 0 + c3d(i,j,1) = 0. _d 0 +C and the main diagonal is one (for stability) + b3d(i,j,1) = 1. _d 0 ENDDO ENDDO + +C-- Center diagonal DO k=2,Nr - km1 = MAX(k-1,2) DO j=jMin,jMax DO i=iMin,iMax - b3d(i,j,k) = 1. _d 0 + deltaTggl90*IDEMIX_tau_d(i,j,k,bi,bj) + b3d(i,j,k) = 1. _d 0+deltaTloc*tau_d(i,j,k) & *IDEMIX_E(i,j,k,bi,bj) - & *maskC(i,j,k,bi,bj)*maskC(i,j,km1,bi,bj) -C- No need for maskC(k) with recip_hFacC(k) in delta(k) - b3d(i,j,k) = b3d(i,j,k) + delta(i,j,k)*c0(i,j,k) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,km1,bi,bj) -C- No need for maskC(k-1) with recip_hFacC(k-1) in delta(k-1) - b3d(i,j,k) = b3d(i,j,k) + delta(i,j,km1)*c0(i,j,k) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,k,bi,bj) - ENDDO + & *maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) + & - ( a3d(i,j,k) + c3d(i,j,k) ) * c0(i,j,k) + ENDDO ENDDO ENDDO -c at surface and bottom - DO j=jMin,jMax - DO i=iMin,iMax - k = MAX(kLowC(i,j,bi,bj),1) - km1 = MAX(k-1,2) - b3d(i,j,k) = 1. _d 0 + deltaTggl90*IDEMIX_tau_d(i,j,k,bi,bj) - & *IDEMIX_E(i,j,k,bi,bj) - & *maskC(i,j,k,bi,bj)*maskC(i,j,km1,bi,bj) -C- No need for maskC(k-1) with recip_hFacC(k-1) in delta(k-1) - & + delta(i,j,km1 )*c0(i,j,k) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,k,bi,bj) - k=2 - b3d(i,j,k) = 1. _d 0 + deltaTggl90*IDEMIX_tau_d(i,j,k,bi,bj) - & *IDEMIX_E(i,j,k,bi,bj) - & *maskC(i,j,k,bi,bj)*maskC(i,j,km1,bi,bj) -C- No need for maskC(k) with recip_hFacC(k) in delta(k) - & + delta(i,j,k)*c0(i,j,k) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,km1,bi,bj) - +C-- Complete computation of lower and upper diagonal after they have +C been used for the center diagonal: add the contribution of c0_k+/-1 + DO k=2,Nr + kp1=MIN(k+1,Nr) + km1=MAX(k-1,2) + DO j=jMin,jMax + DO i=iMin,iMax + a3d(i,j,k) = a3d(i,j,k)*c0(i,j,km1) + c3d(i,j,k) = c3d(i,j,k)*c0(i,j,kp1) + ENDDO ENDDO ENDDO -C Apply flux boundary condition +C-- Apply flux boundary condition + kl = kTop + IF ( usingPCoords ) kl = kTop - 1 DO j=jMin,jMax DO i=iMin,iMax - k=2 - IDEMIX_E(i,j,k,bi,bj) = IDEMIX_E(i,j,k,bi,bj) - & +deltaTggl90*IDEMIX_F_s(i,j,bi,bj) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,k,bi,bj) - k = MAX(kLowC(i,j,bi,bj),1) - IDEMIX_E(i,j,k,bi,bj) = IDEMIX_E(i,j,k,bi,bj) - & -deltaTggl90*IDEMIX_F_b(i,j,bi,bj) - & *recip_drC(k)*recip_hFacI(i,j,k) - & *maskC(i,j,k,bi,bj) + IDEMIX_E(i,j,kTop,bi,bj) = IDEMIX_E(i,j,kTop,bi,bj) + & +deltaTloc*IDEMIX_F_s(i,j,bi,bj) + & *recip_drC(kTop)*coordFac*recip_hFacI(i,j,kTop) + & *maskC(i,j,kl,bi,bj) ENDDO ENDDO + IF ( usingZCoords) THEN + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MAX(kLowC(i,j,bi,bj),1) + IDEMIX_E(i,j,kBot,bi,bj) = IDEMIX_E(i,j,kBot,bi,bj) + & -deltaTloc*IDEMIX_F_b(i,j,bi,bj) + & *recip_drC(kBot)*coordFac*recip_hFacI(i,j,kBot) + & *maskC(i,j,kBot,bi,bj) + ENDDO + ENDDO + ELSEIF ( usingPCoords ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + kBot = MIN(kSurfC(i,j,bi,bj)+1,Nr) + IDEMIX_E(i,j,kBot,bi,bj) = IDEMIX_E(i,j,kBot,bi,bj) + & -deltaTloc*IDEMIX_F_b(i,j,bi,bj) + & *recip_drC(kBot)*coordFac*recip_hFacI(i,j,kBot) + & *maskC(i,j,kBot-1,bi,bj) + ENDDO + ENDDO + ENDIF C solve tri-diagonal system errCode = -1 @@ -426,6 +523,18 @@ SUBROUTINE GGL90_IDEMIX( O errCode, I bi, bj, myThid ) +C generate TKE tendency due to dissipation of IW energy (output) + DO k=2,Nr + DO j=jMin,jMax + DO i=iMin,iMax + gTKE(i,j,k) = + & tau_d(i,j,k)*IDEMIX_E(i,j,k,bi,bj)*IDEMIX_E(i,j,k,bi,bj) +C- to reproduce older results (before adding output arguement gTKE) +c & tau_d(i,j,k)*IDEMIX_E(i,j,k,bi,bj)**2 + ENDDO + ENDDO + ENDDO + #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN c----------------------------------------------------------------------- @@ -433,33 +542,32 @@ SUBROUTINE GGL90_IDEMIX( c assuming local Osborn-Cox balance model c kept for diagnostics only c----------------------------------------------------------------------- - DO k=2,Nr - DO j=jMin,jMax - DO i=iMin,iMax - osborn_diff(i,j,k) = IDEMIX_mixing_efficiency - & *IDEMIX_tau_d(i,j,k,bi,bj) - & *IDEMIX_E(i,j,k,bi,bj)*IDEMIX_E(i,j,k,bi,bj) - & /max(1. _d -12,Nsquare(i,j,k))*maskC(i,j,k,bi,bj) - osborn_diff(i,j,k) = min(IDEMIX_diff_max,osborn_diff(i,j,k)) + IF ( DIAGNOSTICS_IS_ON('IDEMIX_K',myThid) ) THEN + DO k=2,Nr + DO j=jMin,jMax + DO i=iMin,iMax + osborn_diff(i,j,k) = IDEMIX_mixing_efficiency * gTKE(i,j,k) + & /MAX(1. _d -12,Nsquare(i,j,k))*maskC(i,j,k,bi,bj) + osborn_diff(i,j,k) = MIN(IDEMIX_diff_max,osborn_diff(i,j,k)) + ENDDO ENDDO ENDDO - ENDDO - CALL DIAGNOSTICS_FILL( IDEMIX_E ,'IDEMIX_E', - & 0,Nr, 1, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( IDEMIX_V0 ,'IDEMIX_v', - & 0,Nr, 1, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( IDEMIX_tau_d ,'IDEMIX_t', - & 0,Nr, 1, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( c0 ,'IDEMIX_c', - & 0,Nr, 2, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( osborn_diff ,'IDEMIX_K', - & 0,Nr, 2, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL( forc ,'IDEMIX_F', - & 0,Nr, 2, bi, bj, myThid ) - CALL DIAGNOSTICS_FILL(IDEMIX_F_b,'IDEM_F_b',0,1,1,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(IDEMIX_F_s,'IDEM_F_s',0,1,1,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(gm_forc,'IDEM_F_g', - & 0,1,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( osborn_diff ,'IDEMIX_K', + & 0, Nr, 2, bi, bj, myThid ) + ENDIF + CALL DIAGNOSTICS_FILL( IDEMIX_E ,'IDEMIX_E',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( gTKE , 'IDEMgTKE',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( tau_d, 'IDEMIX_t',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( v0, 'IDEMIX_v',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( c0 , 'IDEMIX_c',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( forc, 'IDEMIX_F',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(IDEMIX_F_b,'IDEM_F_b',0, 1,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(IDEMIX_F_s,'IDEM_F_s',0, 1,1,bi,bj,myThid) +# ifdef ALLOW_GMREDI + IF (useGmredi) THEN + CALL DIAGNOSTICS_FILL( gm_forc, 'IDEM_F_g',0, 1,2,bi,bj,myThid) + ENDIF +# endif ENDIF #endif /* ALLOW_DIAGNOSTICS */ @@ -470,22 +578,21 @@ SUBROUTINE GGL90_IDEMIX( #ifdef ALLOW_GGL90_IDEMIX C helper functions C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - _RL FUNCTION IDEMIX_gofx2(xx) + _RL FUNCTION IDEMIX_gofx2(xx,toPI) IMPLICIT NONE - _RL x,c,xx - _RL pi - PARAMETER( pi = 3.14159265358979323846264338327950588d0 ) + _RL xx + _RL toPI ! 2.d0/PI + _RL x,c x=MAX(3.d0,xx) - c= 1.d0-(2.d0/pi)*ASIN(1.d0/x) - IDEMIX_gofx2 = 2.d0/pi/c*0.9d0*x**(-2.d0/3.d0)*(1.-EXP(-x/4.3d0)) + c= 1.d0-toPI*ASIN(1.d0/x) + IDEMIX_gofx2 = toPI/c*0.9d0*x**(-2.d0/3.d0)*(1.-EXP(-x/4.3d0)) END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - _RL FUNCTION IDEMIX_hofx1(x) + _RL FUNCTION IDEMIX_hofx1(x,toPI) IMPLICIT NONE _RL x - _RL pi - PARAMETER( pi = 3.14159265358979323846264338327950588d0 ) - IDEMIX_hofx1 = (2.d0/pi)/(1.d0-(2.d0/pi)* - & ASIN(1.d0/MAX(1.01d0,x)))*(x-1.d0)/(x+1.d0) + _RL toPI ! 2.d0/PI + IDEMIX_hofx1 = toPI/(1.d0-toPI*ASIN(1.d0/MAX(1.01d0,x))) + & *(x-1.d0)/(x+1.d0) END #endif /* ALLOW_GGL90_IDEMIX */ diff --git a/pkg/ggl90/ggl90_init_fixed.F b/pkg/ggl90/ggl90_init_fixed.F index 02de516b15..bd47d8b30c 100644 --- a/pkg/ggl90/ggl90_init_fixed.F +++ b/pkg/ggl90/ggl90_init_fixed.F @@ -51,16 +51,17 @@ SUBROUTINE GGL90_INIT_FIXED( myThid ) mskCor(i,j,bi,bj) = 1. _d 0 ENDDO ENDDO -# ifdef ALLOW_EXCH2 +C- for now, hide this call from OpenAD: +# if ( !(defined ALLOW_OPENAD) || (defined ALLOW_EXCH2) ) IF ( useCubedSphereExchange ) THEN CALL FILL_CS_CORNER_TR_RL( 0, .FALSE., U mskCor(1-OLx,1-OLy,bi,bj), - I bi,bj, myThid ) + I bi, bj, myThid ) ENDIF # endif ENDDO ENDDO -#endif +#endif /* ALLOW_GGL90_SMOOTH */ RETURN END diff --git a/pkg/ggl90/ggl90_init_varia.F b/pkg/ggl90/ggl90_init_varia.F index a9d57c9b81..829621cc57 100644 --- a/pkg/ggl90/ggl90_init_varia.F +++ b/pkg/ggl90/ggl90_init_varia.F @@ -29,10 +29,9 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) #ifdef ALLOW_GGL90 C !LOCAL VARIABLES: C == Local variables == -C bi,bj,I,J,K,Km1 - Loop counters +C bi,bj,I,J,K - Loop counters INTEGER bi, bj - INTEGER I, J, K - INTEGER Km1 + INTEGER i, j, k CEOP C-- Over all tiles @@ -40,18 +39,17 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) DO bi = myBxLo(myThid), myBxHi(myThid) C- 3D arrays - DO K=1,Nr - Km1 = MAX(K-1,1) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - GGL90viscArU(I,J,K,bi,bj) = 0. _d 0 - GGL90viscArV(I,J,K,bi,bj) = 0. _d 0 - GGL90diffKr(I,J,K,bi,bj) = 0. _d 0 + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GGL90viscArU(i,j,k,bi,bj) = 0. _d 0 + GGL90viscArV(i,j,k,bi,bj) = 0. _d 0 + GGL90diffKr(i,j,k,bi,bj) = 0. _d 0 IF ( useIDEMIX) THEN - GGL90TKE(I,J,K,bi,bj)=GGL90eps*maskC(I,J,K,bi,bj) + GGL90TKE(i,j,k,bi,bj)=GGL90eps*maskC(i,j,k,bi,bj) ELSE CML GGL90TKE(I,J,K,bi,bj)=0. _d 0 - GGL90TKE(I,J,K,bi,bj)=GGL90TKEmin*maskC(I,J,K,bi,bj) + GGL90TKE(i,j,k,bi,bj)=GGL90TKEmin*maskC(i,j,k,bi,bj) ENDIF ENDDO ENDDO @@ -70,20 +68,18 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO K=1,Nr - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - IDEMIX_E(I,J,K,bi,bj) = 0. _d 0 - IDEMIX_V0(I,J,K,bi,bj) = 0. _d 0 - IDEMIX_tau_d(I,J,K,bi,bj) = 0. _d 0 + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IDEMIX_E(i,j,k,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - IDEMIX_F_B(I,J,bi,bj) = 0. _d 0 - IDEMIX_F_S(I,J,bi,bj) = 0. _d 0 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IDEMIX_F_B(i,j,bi,bj) = 0. _d 0 + IDEMIX_F_S(i,j,bi,bj) = 0. _d 0 ENDDO ENDDO @@ -98,8 +94,8 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IDEMIX_F_b(i,j,bi,bj) = -MAX(0. _d 0, & MIN(1. _d 0,IDEMIX_F_b(i,j,bi,bj))) C fraction that enters IW field @@ -117,8 +113,8 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) _EXCH_XY_RL(IDEMIX_F_s,myThid) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IDEMIX_F_s(i,j,bi,bj) = MAX(0. _d 0, & MIN(1. _d 0,IDEMIX_F_s(i,j,bi,bj))) C fraction that leaves mixed layer @@ -141,11 +137,11 @@ SUBROUTINE GGL90_INIT_VARIA( myThid ) _EXCH_XYZ_RL(GGL90TKE,myThid) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO K=1,Nr - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - GGL90TKE(I,J,K,bi,bj) = MAX(GGL90TKE(I,J,K,bi,bj), - & GGL90TKEmin)*maskC(I,J,K,bi,bj) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GGL90TKE(i,j,k,bi,bj) = MAX(GGL90TKE(i,j,k,bi,bj), + & GGL90TKEmin)*maskC(i,j,k,bi,bj) ENDDO ENDDO ENDDO diff --git a/pkg/ggl90/ggl90_output.F b/pkg/ggl90/ggl90_output.F index 7a2fedf308..917e5f07db 100644 --- a/pkg/ggl90/ggl90_output.F +++ b/pkg/ggl90/ggl90_output.F @@ -42,7 +42,6 @@ SUBROUTINE GGL90_OUTPUT( myTime, myIter, myThid ) #include "EEPARAMS.h" #include "PARAMS.h" #include "GGL90.h" -#include "GGL90_TAVE.h" C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == @@ -62,10 +61,6 @@ SUBROUTINE GGL90_OUTPUT( myTime, myIter, myThid ) C !LOCAL VARIABLES: C == Local variables == CHARACTER*(10) suff -#ifdef ALLOW_TIMEAVE - INTEGER bi, bj - _RL DDTT -#endif CEOP C---------------------------------------------------------------- @@ -97,96 +92,6 @@ SUBROUTINE GGL90_OUTPUT( myTime, myIter, myThid ) ENDIF -C---------------------------------------------------------------- -C Do GGL90 time averaging. -C---------------------------------------------------------------- - -#ifdef ALLOW_TIMEAVE - IF ( GGL90taveFreq .GT. 0. _d 0 ) THEN - - IF ( myIter.EQ.nIter0 ) THEN -C Initialize averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( GGL90viscArUtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90viscArVtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90diffKrtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90TKEtave, Nr, bi, bj, myThid ) - GGL90_timeAve(bi,bj) = 0. - ENDDO - ENDDO - - ELSE -C Cumulate GGL90 fields (for Time Average) - DDTT = deltaTClock - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_CUMULATE( GGL90viscArUtave, GGL90viscArU, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( GGL90viscArVtave, GGL90viscArV, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( GGL90diffKrtave, GGL90diffKr, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( GGL90TKEtave, GGL90TKE, - & Nr, DDTT, bi, bj, myThid ) -C Keep record of how much time has been integrated over - GGL90_timeAve(bi,bj) = GGL90_timeAve(bi,bj)+DDTT - ENDDO - ENDDO - ENDIF - -C Dump files and restart average computation if needed - IF ( myIter.NE.nIter0 .AND. - & DIFFERENT_MULTIPLE(GGL90taveFreq,myTime,deltaTClock) - & ) THEN - -C Normalize by integrated time - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_NORMALIZE( GGL90viscArUtave, - & GGL90_timeAve, Nr, bi, bj, myThid ) - CALL TIMEAVE_NORMALIZE( GGL90viscArVtave, - & GGL90_timeAve, Nr, bi, bj, myThid ) - CALL TIMEAVE_NORMALIZE( GGL90diffKrtave, - & GGL90_timeAve, Nr, bi, bj, myThid ) - CALL TIMEAVE_NORMALIZE( GGL90TKEtave, - & GGL90_timeAve, Nr, bi, bj, myThid ) - ENDDO - ENDDO - -C Write each snap-shot as a new file - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF - CALL WRITE_FLD_XYZ_RL( 'GGL90viscArU-T.', suff, - & GGL90viscArUtave, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'GGL90viscArV-T.', suff, - & GGL90viscArVtave, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'GGL90diffKr-T.', suff, - & GGL90diffKrTave, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'GGL90TKE-T.', suff, - & GGL90TKETave, myIter, myThid ) - -C Reset averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( GGL90viscArUtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90viscArVtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90diffKrtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( GGL90TKEtave, Nr, bi, bj, myThid ) - GGL90_timeAve(bi,bj) = 0. - ENDDO - ENDDO - -C- end dump-files block - ENDIF - -C- end if GGL90taveFreq > 0 - ENDIF -#endif /* ALLOW_TIMEAVE */ - #endif /* ALLOW_GGL90 */ RETURN diff --git a/pkg/ggl90/ggl90_readparms.F b/pkg/ggl90/ggl90_readparms.F index 5f3462522f..cf19fc54f5 100644 --- a/pkg/ggl90/ggl90_readparms.F +++ b/pkg/ggl90/ggl90_readparms.F @@ -40,6 +40,9 @@ SUBROUTINE GGL90_READPARMS( myThid ) C iUnit - Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER errIO, iUnit, iL +C retired variables + INTEGER nRetired + _RL GGL90taveFreq C-- GGL90 vertical mixing parameters NAMELIST /GGL90_PARM01/ @@ -50,12 +53,13 @@ SUBROUTINE GGL90_READPARMS( myThid ) & GGL90TKEmin, GGL90TKEsurfMin, GGL90TKEbottom, & GGL90mixingLengthMin, mxlMaxFlag, mxlSurfFlag, & GGL90viscMax, GGL90diffMax, GGL90TKEFile, - & GGL90_dirichlet, calcMeanVertShear, useIDEMIX + & GGL90_dirichlet, calcMeanVertShear, useIDEMIX, + & useLANGMUIR #ifdef ALLOW_GGL90_IDEMIX -c----------------------------------------------------------------------- -c IDEMIX -c----------------------------------------------------------------------- +C----------------------------------------------------------------------- +C IDEMIX +C----------------------------------------------------------------------- NAMELIST /GGL90_PARM02/ & IDEMIX_tau_v, IDEMIX_tau_h, IDEMIX_gamma, IDEMIX_jstar, & IDEMIX_mu0,IDEMIX_tidal_file,IDEMIX_wind_file, @@ -63,6 +67,15 @@ SUBROUTINE GGL90_READPARMS( myThid ) & IDEMIX_diff_min, IDEMIX_frac_F_b, IDEMIX_frac_F_s, & IDEMIX_include_GM,IDEMIX_include_GM_bottom #endif /* ALLOW_GGL90_IDEMIX */ + +#ifdef ALLOW_GGL90_LANGMUIR +C----------------------------------------------------------------------- +C Langmuir circulation +C----------------------------------------------------------------------- + NAMELIST /GGL90_PARM03/ + & LC_Gamma, LC_num, LC_lambda +#endif /* ALLOW_GGL90_LANGMUIR*/ + CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -89,7 +102,7 @@ SUBROUTINE GGL90_READPARMS( myThid ) C-- set default TKE vertical mixing parameters GGL90dumpFreq = dumpFreq - GGL90taveFreq = taveFreq + GGL90taveFreq = UNSET_RL GGL90mixingMaps = .FALSE. GGL90writeState = .FALSE. GGL90ck = 0.1 _d 0 @@ -111,20 +124,24 @@ SUBROUTINE GGL90_READPARMS( myThid ) GGL90_dirichlet = .TRUE. calcMeanVertShear = .FALSE. useIDEMIX = .FALSE. + useLANGMUIR = .FALSE. #ifdef ALLOW_GGL90_IDEMIX C----------------------------------------------------------------------- C set default parameter for IDEMIX C----------------------------------------------------------------------- - IDEMIX_tau_v = 1.0*86400.0 _d 0 +C New (and different from Olbers and Eden, 20130) parameter default +C values for tau_v, jstar, mu0 according to Pollmann et al. (2017): + IDEMIX_tau_v = 2.0*86400.0 _d 0 IDEMIX_tau_h = 10.0*86400.0 _d 0 IDEMIX_gamma = 1.57 _d 0 - IDEMIX_jstar = 10.0 _d 0 - IDEMIX_mu0 = 4.0 _d 0/3.0 _d 0 + IDEMIX_jstar = 5.0 _d 0 + IDEMIX_mu0 = 1.0 _d 0/3.0 _d 0 IDEMIX_mixing_efficiency = 0.1666 _d 0 IDEMIX_diff_max = 1.0 _d 0 IDEMIX_diff_min = 1.0 _d -9 IDEMIX_frac_F_b = 1.0 _d 0 +C only approx. 20% of near inertial wind power input reaches IDEMIX IDEMIX_frac_F_s = 0.2 _d 0 C IDEMIX_tidal_file = 'tidal_energy.bin' C IDEMIX_wind_file = 'wind_energy.bin' @@ -134,6 +151,15 @@ SUBROUTINE GGL90_READPARMS( myThid ) IDEMIX_include_GM_bottom = .FALSE. #endif /* ALLOW_GGL90_IDEMIX */ +#ifdef ALLOW_GGL90_LANGMUIR +C----------------------------------------------------------------------- +C set default parameter for LANGMUIR +C----------------------------------------------------------------------- + LC_Gamma = 1.0 _d 1 + LC_num = 3.2 _d -1 + LC_lambda = 4.0 _d 1 +#endif /* ALLOW_GGL90_LANGMUIR */ + C----------------------------------------------------------------------- C define some non-dimensional constants and C the vertical mixing coefficients in m-k-s units @@ -147,19 +173,10 @@ SUBROUTINE GGL90_READPARMS( myThid ) READ( UNIT=iUnit, NML=GGL90_PARM01 ) c READ( UNIT=iUnit, NML=GGL90_PARM01, IOSTAT=errIO ) IF ( errIO .LT. 0 ) THEN - WRITE(msgBuf,'(A)') - & 'S/R GGL90_READPARMS' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'Error reading numerical model ' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'parameter file "data.ggl90"' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'Problem in namelist GGL90_PARM01' - CALL PRINT_ERROR( msgBuf , 1) - STOP 'ABNORMAL END: S/R GGL90_READPARMS' + WRITE(msgBuf,'(A)') + & 'S/R GGL90_READPARMS, Problem reading NML GGL90_PARM01' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GGL90_READPARMS' ENDIF WRITE(msgBuf,'(A)') & ' GGL90_READPARMS: read GGL90_PARM01 : OK' @@ -176,17 +193,8 @@ SUBROUTINE GGL90_READPARMS( myThid ) c READ( UNIT=iUnit, NML=GGL90_PARM02, IOSTAT=errIO ) IF ( errIO .LT. 0 ) THEN WRITE(msgBuf,'(A)') - & 'S/R GGL90_READPARMS' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'Error reading numerical model ' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'parameter file "data.ggl90"' - CALL PRINT_ERROR( msgBuf , 1) - WRITE(msgBuf,'(A)') - & 'Problem in namelist GGL90_PARM02' - CALL PRINT_ERROR( msgBuf , 1) + & 'S/R GGL90_READPARMS, Problem reading NML GGL90_PARM02' + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R GGL90_READPARMS' ENDIF WRITE(msgBuf,'(A)') @@ -196,6 +204,27 @@ SUBROUTINE GGL90_READPARMS( myThid ) ENDIF #endif /* ALLOW_GGL90_IDEMIX */ +#ifdef ALLOW_GGL90_LANGMUIR + IF (useLANGMUIR) THEN + WRITE(msgBuf,'(A)') + & ' GGL90_READPARMS ; starts to read GGL90_PARM03' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + READ( UNIT=iUnit, NML=GGL90_PARM03 ) +c READ( UNIT=iUnit, NML=GGL90_PARM03, IOSTAT=errIO ) + IF ( errIO .LT. 0 ) THEN + WRITE(msgBuf,'(A)') + & 'S/R GGL90_READPARMS, Problem reading NML GGL90_PARM03' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GGL90_READPARMS' + ENDIF + WRITE(msgBuf,'(A)') + & ' GGL90_READPARMS: read GGL90_PARM03 : OK' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF +#endif /* ALLOW_GGL90_LANGMUIR */ + #ifdef SINGLE_DISK_IO CLOSE(iUnit) #else @@ -254,6 +283,28 @@ SUBROUTINE GGL90_READPARMS( myThid ) STOP 'ABNORMAL END: S/R GGL90_READPARMS' ENDIF +C- Retired parameters + nRetired = 0 + IF ( GGL90taveFreq .NE. UNSET_RL ) THEN + nRetired = nRetired + 1 + WRITE(msgBuf,'(A,A)') + & 'S/R GGL90_READPARMS: "GGL90taveFreq" ', + & 'is no longer allowed in file "data.ggl90"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'S/R GGL90_READPARMS: use diagnostics variables instead' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( nRetired .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') 'S/R GGL90_READPARMS: ', + & 'Error reading parameter file "data.ggl90"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'some out of date parameters were found in the namelist' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GGL90_READPARMS' + ENDIF + C-- print TKE vertical mixing parameters to stdout for better debugging WRITE(msgBuf,'(A)') &'// =======================================================' @@ -272,39 +323,39 @@ SUBROUTINE GGL90_READPARMS( myThid ) CALL WRITE_0D_RL( GGL90taveFreq, INDEX_NONE,'GGL90taveFreq =', &' /* GGL90 averaging interval ( s ). */') CALL WRITE_0D_L(GGL90mixingMaps,INDEX_NONE, - & 'GGL90mixingMAPS =', ' /* GGL90 IO flag. */') + & 'GGL90mixingMAPS =', ' /* GGL90 IO flag */') CALL WRITE_0D_L(GGL90writeState,INDEX_NONE, - & 'GGL90writeState =', ' /* GGL90 IO flag. */') + & 'GGL90writeState =', ' /* GGL90 IO flag */') CALL WRITE_0D_RL( GGL90ck, INDEX_NONE,'GGL90ck =', - &' /* GGL90 viscosity parameter. */') + &' /* GGL90 viscosity parameter */') CALL WRITE_0D_RL( GGL90ceps, INDEX_NONE,'GGL90ceps =', - &' /* GGL90 dissipation parameter. */') + &' /* GGL90 dissipation parameter */') CALL WRITE_0D_RL( GGL90alpha, INDEX_NONE,'GGL90alpha =', - &' /* GGL90 TKE diffusivity parameter. */') + &' /* GGL90 TKE diffusivity parameter */') CALL WRITE_0D_RL( GGL90m2, INDEX_NONE,'GGL90m2 =', - &' /* GGL90 wind stress to vertical stress ratio. */') + &' /* GGL90 wind stress to vertical stress ratio */') CALL WRITE_0D_RL( GGL90TKEmin, INDEX_NONE,'GGL90TKEmin =', - &' /* GGL90 minimum kinetic energy ( m^2/s^2 ). */') + &' /* GGL90 minimum kinetic energy ( m^2/s^2 ) */') CALL WRITE_0D_RL( GGL90TKEsurfMin, INDEX_NONE, & 'GGL90TKEsurfMin =', - &' /* GGL90 minimum surface kinetic energy ( m^2/s^2 ). */') + &' /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */') CALL WRITE_0D_RL( GGL90TKEbottom, INDEX_NONE, & 'GGL90TKEbottom =', - & ' /* GGL90 bottom kinetic energy ( m^2/s^2 ). */') + & ' /* GGL90 bottom kinetic energy ( m^2/s^2 ) */') CALL WRITE_0D_RL( GGL90viscMax, INDEX_NONE,'GGL90viscMax =', - & ' /* GGL90 upper limit for viscosity ( m^2/s ). */') + & ' /* GGL90 upper limit for viscosity (m^2/s ) */') CALL WRITE_0D_RL( GGL90diffMax, INDEX_NONE,'GGL90diffMax =', - & ' /* GGL90 upper limit for diffusivity ( m^2/s ). */') + & ' /* GGL90 upper limit for diffusivity (m^2/s ) */') CALL WRITE_0D_RL( GGL90diffTKEh, INDEX_NONE,'GGL90diffTKEh =', - & ' /* GGL90 horizontal diffusivity for TKE ( m^2/s ). */') + & ' /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */') CALL WRITE_0D_RL( GGL90mixingLengthMin, INDEX_NONE, & 'GGL90mixingLengthMin =', - & ' /* GGL90 minimum mixing length ( m ). */') + & ' /* GGL90 minimum mixing length (m) */') CALL WRITE_0D_I(mxlMaxFlag, INDEX_NONE, 'mxlMaxFlag =', & ' /* Flag for limiting mixing-length method */') CALL WRITE_0D_L(mxlSurfFlag,INDEX_NONE, & 'mxlSurfFlag =', - & ' /* GGL90 flag for near surface mixing. */') + & ' /* GGL90 flag for near surface mixing */') CALL WRITE_0D_L( calcMeanVertShear, INDEX_NONE, & 'calcMeanVertShear =', & ' /* calc Mean of Vert.Shear (vs shear of Mean flow) */') @@ -314,13 +365,12 @@ SUBROUTINE GGL90_READPARMS( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) CALL WRITE_0D_L(GGL90_dirichlet,INDEX_NONE, - & 'GGL90writeState =', ' /* GGL90 Boundary condition flag. */') + & 'GGL90_dirichlet =', ' /* GGL90 Boundary condition flag */') + #ifdef ALLOW_GGL90_IDEMIX -c----------------------------------------------------------------------- -c----------------------------------------------------------------------- CALL WRITE_0D_L(useIDEMIX,INDEX_NONE, 'useIDEMIX =', & ' /* turn on IDEMIX contribution. */') -C + IF ( useIDEMIX ) THEN CALL WRITE_0D_RL( IDEMIX_tau_v, INDEX_NONE,'IDEMIX_tau_v =', & ' /* IDEMIX vertical group speed parameter. */') @@ -354,6 +404,21 @@ SUBROUTINE GGL90_READPARMS( myThid ) & 'IDEMIX_wind_file =', ' /* file name of wind energy field */') ENDIF #endif /* ALLOW_GGL90_IDEMIX */ + +#ifdef ALLOW_GGL90_LANGMUIR + CALL WRITE_0D_L(useLANGMUIR,INDEX_NONE, 'useLANGMUIR =', + & ' /* turn on Langmuir circulation effect. */') + + IF ( useLANGMUIR ) THEN + CALL WRITE_0D_RL( LC_Gamma, INDEX_NONE,'LC_Gamma =', + & ' /* Mix-Length Amplification fac. from Langmuir Circ. (>=1) */') + CALL WRITE_0D_RL( LC_num, INDEX_NONE,'LC_num =', + & ' /* Value for the Langmuir number (no units) */') + CALL WRITE_0D_RL( LC_lambda, INDEX_NONE,'LC_lambda =', + & ' /* Vertical scale for Stokes velocity ( m ) */') + ENDIF +#endif /* ALLOW_GGL90_LANGMUIR */ + WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, diff --git a/pkg/gmredi/GMREDI.h b/pkg/gmredi/GMREDI.h index 1925299adc..0148347dbd 100644 --- a/pkg/gmredi/GMREDI.h +++ b/pkg/gmredi/GMREDI.h @@ -17,13 +17,14 @@ C GM_ExtraDiag :: select extra diagnostics C GM_InMomAsStress :: apply GM as a stress in momentum Eq. C GM_MNC :: C GM_MDSIO :: -C GM_useK3D :: use the 3 dimensional calculation for K -C GM_K3D_beta_eq_0 :: Ignores the beta term when calculating grad(q) -C GM_K3D_ThickSheet:: Use a thick PV sheet -C GM_K3D_surfK :: Imposes a constant K in the surface layer -C GM_K3D_constRedi :: Imposes a constant K for the Redi isoneutral diffusivity -C GM_K3D_use_constK:: Imposes a constant K for the eddy transport -C GM_K3D_smooth :: Expand PV closure in terms of baroclinic modes (=.FALSE. for debugging only!) +C GM_useBatesK3d :: use Bates etal (2014) calculation for 3-d K +C GM_Bates_beta_eq_0 :: Ignores the beta term when calculating grad(q) +C GM_Bates_ThickSheet:: Use a thick PV sheet +C GM_Bates_surfK :: Imposes a constant K in the surface layer +C GM_Bates_constRedi :: Imposes a constant K for the Redi diffusivity +C GM_Bates_use_constK:: Imposes a constant K for the eddy transport +C GM_Bates_smooth :: Expand PV closure in terms of baroclinic modes +C (=.FALSE. for debugging only!) C GM_useLeithQG :: add Leith QG viscosity to GMRedi tensor LOGICAL GM_AdvForm LOGICAL GM_AdvSeparate @@ -33,29 +34,31 @@ C GM_useLeithQG :: add Leith QG viscosity to GMRedi tensor LOGICAL GM_InMomAsStress LOGICAL GM_MNC LOGICAL GM_MDSIO - LOGICAL GM_useK3D - LOGICAL GM_K3D_ThickSheet - LOGICAL GM_K3D_surfK - LOGICAL GM_K3D_constRedi - LOGICAL GM_K3D_use_constK - LOGICAL GM_K3D_beta_eq_0 - LOGICAL GM_K3D_smooth + LOGICAL GM_useBatesK3d + LOGICAL GM_Bates_ThickSheet + LOGICAL GM_Bates_surfK + LOGICAL GM_Bates_constRedi + LOGICAL GM_Bates_use_constK + LOGICAL GM_Bates_beta_eq_0 + LOGICAL GM_Bates_smooth LOGICAL GM_useLeithQG COMMON /GM_PARAMS_L/ & GM_AdvForm, GM_AdvSeparate, & GM_useBVP, GM_useSubMeso, & GM_ExtraDiag, GM_MNC, GM_MDSIO, & GM_InMomAsStress, - & GM_useK3D, GM_K3D_smooth, GM_K3D_use_constK, - & GM_K3D_beta_eq_0, GM_K3D_ThickSheet, - & GM_K3D_surfK, GM_K3D_constRedi, GM_useLeithQG + & GM_useBatesK3d, GM_Bates_smooth, + & GM_Bates_use_constK, GM_Bates_beta_eq_0, + & GM_Bates_ThickSheet, GM_Bates_surfK, + & GM_Bates_constRedi, + & GM_useLeithQG C-- GM/Redi Integer-type parameters C GM_BVP_modeNumber :: vertical mode number used for speed "c" in BVP transport -C GM_K3D_NModes :: number of vertical modes used for calculating Xi in K3D +C GM_Bates_NModes :: number of vertical modes used for calculating Xi in GM_BatesK3d INTEGER GM_BVP_modeNumber - INTEGER GM_K3D_NModes - PARAMETER (GM_K3D_NModes=6) + INTEGER GM_Bates_NModes + PARAMETER (GM_Bates_NModes=6) COMMON /GM_PARAMS_I/ & GM_BVP_modeNumber @@ -65,21 +68,21 @@ C GM_iso2dFile :: input file for 2.D horiz scaling of Isopycnal diffusivity C GM_iso1dFile :: input file for 1.D vert. scaling of Isopycnal diffusivity C GM_bol2dFile :: input file for 2.D horiz scaling of Thickness diffusivity C GM_bol1dFile :: input file for 1.D vert. scaling of Thickness diffusivity -C GM_isopycK3dFile :: input file for 3.D GM_isopycK -C GM_background_K3dFile :: input file for 3.D GM_background_K +C GM_K3dRediFile :: input file for background 3.D Isopycal(Redi) diffusivity +C GM_K3dGMFile :: input file for background 3.D Thickness (GM) diffusivity CHARACTER*(40) GM_taper_scheme CHARACTER*(MAX_LEN_FNAM) GM_iso2dFile CHARACTER*(MAX_LEN_FNAM) GM_iso1dFile CHARACTER*(MAX_LEN_FNAM) GM_bol2dFile CHARACTER*(MAX_LEN_FNAM) GM_bol1dFile - CHARACTER*(MAX_LEN_FNAM) GM_isopycK3dFile - CHARACTER*(MAX_LEN_FNAM) GM_background_K3dFile + CHARACTER*(MAX_LEN_FNAM) GM_K3dRediFile + CHARACTER*(MAX_LEN_FNAM) GM_K3dGMFile COMMON /GM_PARAMS_C/ & GM_taper_scheme, & GM_iso2dFile, GM_iso1dFile, & GM_bol2dFile, GM_bol1dFile, - & GM_isopycK3dFile, GM_background_K3dFile + & GM_K3dRediFile, GM_K3dGMFile C-- COMMON /GM_PARAMS_R/ GM/Redi real-type parameters C GM_isopycK :: Isopycnal diffusivity [m^2/s] (Redi-tensor) @@ -88,6 +91,7 @@ C GM_maxSlope :: maximum slope (tapering/clipping) [-] C GM_Kmin_horiz :: minimum horizontal diffusivity [m^2/s] C GM_Small_Number :: epsilon used in computing the slope C GM_slopeSqCutoff :: slope^2 cut-off value +C GM_Scrit, GM_Sd :: parameter for 'dm95' & 'ldd97' tapering fct C- Transition layer thickness definition: C GM_facTrL2dz :: minimum Trans. Layer Thick. as a factor of local dz C GM_facTrL2ML :: maximum Trans. Layer Thick. as a factor of Mix-Layer Depth @@ -99,82 +103,87 @@ C subMeso_Ceff :: efficiency coefficient of Mixed-Layer Eddies [-] C subMeso_invTau :: inverse of mixing time-scale in sub-meso parameteriz. [s^-1] C subMeso_LfMin :: minimum value for length-scale "Lf" [m] C subMeso_Lmax :: maximum horizontal grid-scale length [m] -C Variable K with PV diffusion parameters: -C GM_K3D_gamma :: mixing efficiency for 3D eddy diffusivity [-] -C GM_K3D_b1 :: an empirically determined constant of O(1) -C GM_K3D_EadyMinDepth :: upper depth for Eady calculation -C GM_K3D_EadyMaxDepth :: lower depth for Eady calculation -C GM_maxK3D :: Upper bound on the diffusivity -C GM_K3D_constK :: Constant diffusivity to use when GM_useK3D=.TRUE. and -C GM_K3D_use_constK=.TRUE. and/or GM_K3D_constRedi=.TRUE. -C GM_K3D_Rmax :: Upper bound on the length scale used for calculating urms -C GM_K3D_Rmin :: Lower bound on the length scale used for calculating the eddy radius -C GM_K3D_minCori :: minimum value for f (to stop things blowing up near the equator) -C GM_K3D_minN2 :: minimum value for the square of the buoyancy frequency -C GM_K3D_surfMinDepth :: minimum value for the depth of the surface layer -C GM_K3D_vecFreq :: Frequency at which to update the baroclinic modes -C GM_K3D_minRenorm:: minimum value for the renormalisation factor -C GM_K3D_maxRenorm:: maximum value for the renormalisation factor - +C- Variable K parameters for Visbeck etal (1997) scheme: +C- Variable K parameters for PV diffusion based, Bates etal (2014) scheme: +C GM_Bates_gamma :: mixing efficiency for 3D eddy diffusivity [-] +C GM_Bates_b1 :: an empirically determined constant of O(1) +C GM_Bates_EadyMinDepth :: upper depth for Eady calculation +C GM_Bates_EadyMaxDepth :: lower depth for Eady calculation +C GM_Bates_Lambda :: +C GM_Bates_smallK :: +C GM_Bates_maxK :: Upper bound on the diffusivity +C GM_Bates_constK :: Constant diffusivity to use when GM_useBatesK3d=T and +C GM_Bates_use_constK=T and/or GM_Bates_constRedi=T +C GM_Bates_maxC :: +C GM_Bates_Rmax :: Length scale upper bound used for calculating urms +C GM_Bates_Rmin :: Length scale lower bound for calc. the eddy radius +C GM_Bates_minCori :: minimum value for f (prevents Pb near the equator) +C GM_Bates_minN2 :: minimum value for the square of the buoyancy frequency +C GM_Bates_surfMinDepth :: minimum value for the depth of the surface layer +C GM_Bates_vecFreq :: Frequency at which to update the baroclinic modes +C GM_Bates_minRenorm :: minimum value for the renormalisation factor +C GM_Bates_maxRenorm :: maximum value for the renormalisation factor _RL GM_isopycK _RL GM_background_K _RL GM_maxSlope _RL GM_Kmin_horiz _RL GM_Small_Number _RL GM_slopeSqCutoff - _RL GM_Visbeck_alpha - _RL GM_Visbeck_length - _RL GM_Visbeck_depth - _RL GM_Visbeck_minDepth - _RL GM_Visbeck_maxSlope - _RL GM_Visbeck_minVal_K - _RL GM_Visbeck_maxVal_K - _RL GM_K3D_gamma - _RL GM_K3D_b1 - _RL GM_K3D_EadyMinDepth - _RL GM_K3D_EadyMaxDepth - _RL GM_K3D_Lambda - _RL GM_K3D_smallK - _RL GM_K3D_maxC - _RL GM_maxK3D - _RL GM_K3D_constK - _RL GM_K3D_Rmax - _RL GM_K3D_Rmin - _RL GM_K3D_minCori - _RL GM_K3D_minN2 - _RL GM_K3D_surfMinDepth - _RL GM_K3D_vecFreq - _RL GM_K3D_minRenorm - _RL GM_K3D_maxRenorm + _RL GM_Scrit, GM_Sd _RL GM_facTrL2dz _RL GM_facTrL2ML _RL GM_maxTransLay - _RL GM_Scrit - _RL GM_Sd _RL GM_BVP_cMin _RL subMeso_Ceff _RL subMeso_invTau _RL subMeso_LfMin _RS subMeso_Lmax + _RL GM_Visbeck_alpha + _RL GM_Visbeck_length + _RL GM_Visbeck_depth + _RL GM_Visbeck_minDepth + _RL GM_Visbeck_maxSlope + _RL GM_Visbeck_minVal_K + _RL GM_Visbeck_maxVal_K + _RL GM_Bates_gamma + _RL GM_Bates_b1 + _RL GM_Bates_EadyMinDepth + _RL GM_Bates_EadyMaxDepth + _RL GM_Bates_Lambda + _RL GM_Bates_smallK + _RL GM_Bates_maxK + _RL GM_Bates_constK + _RL GM_Bates_maxC + _RL GM_Bates_Rmax + _RL GM_Bates_Rmin + _RL GM_Bates_minCori + _RL GM_Bates_minN2 + _RL GM_Bates_surfMinDepth + _RL GM_Bates_vecFreq + _RL GM_Bates_minRenorm + _RL GM_Bates_maxRenorm COMMON /GM_PARAMS_RL/ - & GM_isopycK, GM_background_K, - & GM_maxSlope, - & GM_Kmin_horiz, - & GM_Small_Number, GM_slopeSqCutoff, - & GM_Visbeck_alpha, GM_Visbeck_length, - & GM_Visbeck_depth, - & GM_Visbeck_minDepth, GM_Visbeck_maxSlope, - & GM_Visbeck_minVal_K, GM_Visbeck_maxVal_K, - & GM_K3D_gamma, GM_K3D_b1, GM_K3D_EadyMinDepth, - & GM_K3D_EadyMaxDepth, GM_K3D_Lambda, - & GM_K3D_smallK, GM_K3D_maxC, - & GM_maxK3D, GM_K3D_minCori, GM_K3D_minN2, - & GM_K3D_surfMinDepth, GM_K3D_Rmax, GM_K3D_Rmin, - & GM_K3D_constK, GM_K3D_vecFreq, - & GM_K3D_minRenorm, GM_K3D_maxRenorm, - & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay, - & GM_Scrit, GM_Sd, GM_BVP_cMin, - & subMeso_Ceff, subMeso_invTau, subMeso_LfMin + & GM_isopycK, GM_background_K, + & GM_maxSlope, + & GM_Kmin_horiz, + & GM_Small_Number, GM_slopeSqCutoff, + & GM_Scrit, GM_Sd, + & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay, + & GM_BVP_cMin, + & subMeso_Ceff, subMeso_invTau, subMeso_LfMin, + & GM_Visbeck_alpha, GM_Visbeck_length, + & GM_Visbeck_depth, + & GM_Visbeck_minDepth, GM_Visbeck_maxSlope, + & GM_Visbeck_minVal_K, GM_Visbeck_maxVal_K, + & GM_Bates_gamma, GM_Bates_b1, + & GM_Bates_EadyMinDepth, GM_Bates_EadyMaxDepth, + & GM_Bates_Lambda, GM_Bates_smallK, GM_Bates_maxK, + & GM_Bates_constK, GM_Bates_maxC, + & GM_Bates_Rmax, GM_Bates_Rmin, + & GM_Bates_minCori, GM_Bates_minN2, + & GM_Bates_surfMinDepth, GM_Bates_vecFreq, + & GM_Bates_minRenorm, GM_Bates_maxRenorm + COMMON /GM_PARAMS_RS/ & subMeso_Lmax @@ -203,6 +212,17 @@ C GM_bolFac1d :: 1.D vert. scaling factor [-] of Thickness diffusivity COMMON /GM_COEFFICIENTS/ & GM_isoFac2d, GM_bolFac2d, GM_isoFac1d, GM_bolFac1d +#ifdef GM_READ_K3D_REDI +C-- COMMON /GM_INP_K3D_REDI/ 3.D background isopycnal (Redi) diffusiv. [m^2/s] + COMMON /GM_INP_K3D_REDI/ GM_inpK3dRedi + _RL GM_inpK3dRedi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +#ifdef GM_READ_K3D_GM +C-- COMMON /GM_INP_K3D_GM/ 3.D background thickness (GM) diffusivity [m^2/s] + COMMON /GM_INP_K3D_GM/ GM_inpK3dGM + _RL GM_inpK3dGM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C--- GM/Redi tensor elements @@ -213,19 +233,14 @@ C Kwz :: K_33 element of GM/Redi tensor, Z direction at W point _RL Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /GM_Wtensor/ Kwx,Kwy,Kwz + COMMON /GM_Wtensor/ Kwx, Kwy, Kwz -#ifdef GM_NON_UNITY_DIAGONAL C Horizontal part of the tensor C Kux :: K_11 element of GM/Redi tensor, X direction at U point C Kvy :: K_22 element of GM/Redi tensor, Y direction at V point _RL Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /GM_HorTensor/ Kux,Kvy -#else - _RL Kux,Kvy - PARAMETER(Kux=1.,Kvy=1.) -#endif + COMMON /GM_HorTensor/ Kux, Kvy #ifdef GM_EXTRA_DIAGONAL C First/second rows of tensor corresponds to U/V points @@ -233,10 +248,10 @@ C Kuz :: K_13 element of GM/Redi tensor, Z direction at U point C Kvz :: K_23 element of GM/Redi tensor, Z direction at V point _RL Kuz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /GM_UVtensor/ Kuz,Kvz + COMMON /GM_UVtensor/ Kuz, Kvz #else - _RL Kuz,Kvz - PARAMETER(Kuz=1.,Kvz=1.) + _RL Kuz, Kvz + PARAMETER( Kuz=1., Kvz=1. ) #endif #ifdef GM_BOLUS_ADVEC @@ -244,34 +259,36 @@ C GM advection formulation: bolus velocities are derived from 2 C streamfunctions PsiX and PsiY : _RL GM_PsiX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL GM_PsiY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /GM_BOLUS/ GM_PsiX,GM_PsiY + COMMON /GM_BOLUS/ GM_PsiX, GM_PsiY #endif #ifdef GM_VISBECK_VARIABLE_K -C GM mixing/stirring coefficient (spatially variable in horizontal -C for Visbeck et al. parameterization) +C GM mixing/stirring coefficient (spatially variable in horizontal) +C for Visbeck et al. parameterization _RL VisbeckK(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) COMMON /GM_Visbeck/ VisbeckK #endif -#ifdef GM_K3D -C K3D :: The three dimensional eddy mixing coeffixint [m**2/s] -C modesC :: First baroclinic mode at the centre of a tracer cell [-] -C modesW :: First N baroclinic mode at the western face of a tracer cell [-] -C modesS :: First N baroclinic mode at the southern face of a tracer cell [-] -C Rdef :: Deformation radius [m] -C gradf :: gradient of the Coriolis paramater at a cell centre, 1/(m*s) - - _RL K3D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr,nSx,nSy) - _RL modesC(1,1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr,nSx,nSy) - _RL modesW(GM_K3D_NModes,1-Olx:sNx+Olx, - & 1-Oly:sNy+Oly,1:Nr,nSx,nSy) - _RL modesS(GM_K3D_NModes,1-Olx:sNx+Olx, - & 1-Oly:sNy+Oly,1:Nr,nSx,nSy) - _RL Rdef(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - _RL gradf(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) +#ifdef GM_BATES_K3D +C GM_BatesK3d :: The 3-d eddy mixing coefficient from Bates etal [m**2/s] +C modesC :: First baroclinic mode at the centre of a tracer cell [-] +C modesW :: First N baroclinic mode at the western face of a cell [-] +C modesS :: First N baroclinic mode at the southern face of a cell [-] +C Rdef :: Deformation radius [m] +C gradf :: gradient of Coriolis paramater at a cell centre, 1/(m*s) - COMMON /GM_K3D/ K3D, modesC, modesW, modesS, Rdef, gradf + _RL GM_BatesK3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL modesC (1,1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL modesW(GM_Bates_NModes, + & 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL modesS(GM_Bates_NModes, + & 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL Rdef (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL gradf (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /GM_BATES_K/ + & GM_BatesK3d, + & modesC, modesW, modesS, + & Rdef, gradf #endif #ifdef ALLOW_GM_LEITH_QG diff --git a/pkg/gmredi/GMREDI_OPTIONS.h b/pkg/gmredi/GMREDI_OPTIONS.h index 74f9b82823..0a764f5e2e 100644 --- a/pkg/gmredi/GMREDI_OPTIONS.h +++ b/pkg/gmredi/GMREDI_OPTIONS.h @@ -1,11 +1,20 @@ -C CPP options file for GM/Redi package -C Use this file for selecting options within the GM/Redi package - #ifndef GMREDI_OPTIONS_H #define GMREDI_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: GMREDI_OPTIONS.h +C !INTERFACE: +C #include "GMREDI_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for GM/Redi package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_GMREDI C Package-specific Options & Macros go here @@ -18,16 +27,21 @@ C #define GM_EXCLUDE_AC02_TAP C #define GM_EXCLUDE_TAPERING C #define GM_EXCLUDE_SUBMESO +C Allows to read-in background 3-D Redi and GM diffusivity coefficients +C Note: need these to be defined for use as control (pkg/ctrl) parameters +#undef GM_READ_K3D_REDI +#undef GM_READ_K3D_GM + C This allows to use Visbeck et al formulation to compute K_GM+Redi #undef GM_VISBECK_VARIABLE_K C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi C (which depends on tapering scheme) #undef OLD_VISBECK_CALC -C This allows the Bates et al formulation to calculate the +C This allows the Bates et al formulation to calculate the C bolus transport and K for Redi -#undef GM_K3D -#undef GM_K3D_PASSIVE +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE C This allows the leading diagonal (top two rows) to be non-unity C (a feature required when tapering adiabatically). @@ -47,9 +61,9 @@ C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport C Allow QG Leith variable viscosity to be added to GMRedi coefficient #undef ALLOW_GM_LEITH_QG +C Related to Adjoint-code: +#undef GM_AUTODIFF_EXCESSIVE_STORE +#undef GMREDI_MASK_SLOPES + #endif /* ALLOW_GMREDI */ #endif /* GMREDI_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/gmredi/gmredi_ad_diff.list b/pkg/gmredi/gmredi_ad_diff.list index b3c0331359..e8793b2b62 100644 --- a/pkg/gmredi/gmredi_ad_diff.list +++ b/pkg/gmredi/gmredi_ad_diff.list @@ -9,3 +9,4 @@ gmredi_slope_limit.f gmredi_slope_psi.f gmredi_xtransport.f gmredi_ytransport.f +gmredi_calc_qgleith.f diff --git a/pkg/gmredi/gmredi_k3d.F b/pkg/gmredi/gmredi_calc_bates_k.F similarity index 73% rename from pkg/gmredi/gmredi_k3d.F rename to pkg/gmredi/gmredi_calc_bates_k.F index 3cca74ac90..3b51650c41 100644 --- a/pkg/gmredi/gmredi_k3d.F +++ b/pkg/gmredi/gmredi_calc_bates_k.F @@ -1,16 +1,16 @@ #include "GMREDI_OPTIONS.h" -C !ROUTINE: GMREDI_K3D +C !ROUTINE: GMREDI_CALC_BATES_K C !INTERFACE: - SUBROUTINE GMREDI_K3D( - I iMin, iMax, jMin, jMax, - I sigmaX, sigmaY, sigmaR, - I bi, bj, myTime, myThid ) + SUBROUTINE GMREDI_CALC_BATES_K( + I iMin, iMax, jMin, jMax, + I sigmaX, sigmaY, sigmaR, + I bi, bj, myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* -C | SUBROUTINE GMREDI_K3D -C | o Calculates the 3D diffusivity as per Bates et al. (2013) +C | SUBROUTINE GMREDI_CALC_BATES_K +C | o Calculates the 3D diffusivity as per Bates et al. (2014) C *==========================================================* C \ev @@ -28,17 +28,20 @@ SUBROUTINE GMREDI_K3D( C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C bi, bj :: tile indices +C myTime :: Current time in simulation +C myIter :: Current iteration number in simulation C myThid :: My Thread Id. number INTEGER iMin,iMax,jMin,jMax - _RL sigmaX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL sigmaY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL sigmaR(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) + _RL sigmaX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL sigmaY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL sigmaR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) INTEGER bi, bj _RL myTime + INTEGER myIter INTEGER myThid -#ifdef GM_K3D +#ifdef GM_BATES_K3D C === Functions ==== LOGICAL DIFFERENT_MULTIPLE @@ -55,10 +58,10 @@ SUBROUTINE GMREDI_K3D( C kLow_C :: Local version of the index of deepest wet grid cell on tracer grid C kLow_U :: Local version of the index of deepest wet grid cell on U grid C kLow_V :: Local version of the index of deepest wet grid cell on V grid - INTEGER surfk(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - INTEGER kLow_C(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - INTEGER kLow_U(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - INTEGER kLow_V(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + INTEGER surfk(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER kLow_C(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER kLow_U(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER kLow_V(1-OLx:sNx+OLx,1-OLy:sNy+OLy) C N2loc :: local N**2 C slope :: local slope @@ -66,20 +69,20 @@ SUBROUTINE GMREDI_K3D( C deltaH :: local thickness of Eady integration (m) C g_reciprho_sq :: (gravity*recip_rhoConst)**2 C M4loc :: local M**4 -C maxDRhoDz :: maximum value of d(rho)/dz (derived from GM_K3D_minN2) +C maxDRhoDz :: maximum value of d(rho)/dz (derived from GM_Bates_minN2) C sigx :: local d(rho)/dx C sigy :: local d(rho)/dy C sigz :: local d(rho)/dz C hsurf :: local surface layer depth C small :: a small number (to avoid floating point exceptions) - _RL N2loc(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) + _RL N2loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL slope - _RL slopeC(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) + _RL slopeC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL Req - _RL deltaH(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL deltaH(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL g_reciprho_sq - _RL M4loc(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL M4onN2(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) + _RL M4loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL M4onN2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL maxDRhoDz _RL sigx, sigy, sigz _RL hsurf, mskp1 @@ -97,24 +100,24 @@ SUBROUTINE GMREDI_K3D( C BVint :: The vertical integral of N (m/s) C ubar :: Zonal velocity on a tracer point (m/s) C Ubaro :: Barotropic velocity (m/s) - _RL dfdy( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL dfdx( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL dummy( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL Rurms( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL RRhines(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL Rmix( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL N2( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL N2W( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL N2S( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL N( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL BVint( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL Ubaro( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL ubar( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - - _RL tmpU( 1-Olx:sNx+Olx,1-Oly:sNy+Oly ) - _RL tmpV( 1-Olx:sNx+Olx,1-Oly:sNy+Oly ) - _RL uFldX( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr ) - _RL vFldY( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr ) + _RL dfdy( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dfdx( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dummy( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL Rurms( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL RRhines(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL Rmix( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL N2( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL N2W( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL N2S( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL N( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL BVint( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL Ubaro( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL ubar( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + + _RL tmpU( 1-OLx:sNx+OLx,1-OLy:sNy+OLy ) + _RL tmpV( 1-OLx:sNx+OLx,1-OLy:sNy+OLy ) + _RL uFldX( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr ) + _RL vFldY( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr ) C Rmid :: Rossby radius (m) C KPV :: Diffusivity (m**2/s) @@ -131,21 +134,21 @@ SUBROUTINE GMREDI_K3D( C coriU :: As fCoriU, but limited C coriV :: As fCoriV, but limited C surfkz :: Depth of surface layer (in r units) - _RL Rmid(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL KPV(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL Kdqdy(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL Kdqdx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL SlopeX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL SlopeY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL dSigmaDx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL dSigmaDy(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL tfluxX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL tfluxY(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL coriU(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL coriV(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL fCoriU(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL fCoriV(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL surfkz(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL Rmid(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL KPV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL Kdqdy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL Kdqdx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL SlopeX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL SlopeY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL dSigmaDx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL dSigmaDy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL tfluxX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL tfluxY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL coriU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL coriV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL fCoriU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL fCoriV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL surfkz(1-OLx:sNx+OLx,1-OLy:sNy+OLy) C centreX,centreY :: used for calculating averages at centre of cell C numerator,denominator :: of the renormalisation factor @@ -162,17 +165,17 @@ SUBROUTINE GMREDI_K3D( C RenormV :: renormalisation factor at the southern face of a cell _RL centreX, centreY _RL numerator, denominator - _RL uInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL vInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL KdqdxInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL KdqdyInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL uKdqdyInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL vKdqdxInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL uXiyInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL vXixInt(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL Renorm(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL RenormU(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL RenormV(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL uInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL KdqdxInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL KdqdyInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uKdqdyInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vKdqdxInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uXiyInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vXixInt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL Renorm(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL RenormU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL RenormV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) C gradqx :: Potential vorticity gradient in x direction C gradqy :: Potential vorticity gradient in y direction @@ -187,22 +190,22 @@ SUBROUTINE GMREDI_K3D( C vstar :: The eddy induced velocity in the y direction C Xix :: Xi in the x direction (m/s**2) C Xiy :: Xi in the y direction (m/s**2) - _RL gradqx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL gradqy(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL XimX(GM_K3D_NModes,1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL XimY(GM_K3D_NModes,1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL cDopp(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL umc( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) - _RL eady( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL urms( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) - _RL supp( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) - _RL ustar(1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) - _RL vstar(1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) - _RL Xix( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL Xiy( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) -#ifdef GM_K3D_PASSIVE + _RL gradqx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL gradqy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL XimX(GM_Bates_NModes,1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL XimY(GM_Bates_NModes,1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL cDopp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL umc( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) + _RL eady( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL urms( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) + _RL supp( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) + _RL ustar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) + _RL vstar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) + _RL Xix( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL Xiy( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) +#ifdef GM_BATES_PASSIVE C psistar :: eddy induced streamfunction in the y direction - _RL psistar(1-Olx:sNx+Olx,1-Oly:sNy+Oly,1:Nr) + _RL psistar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr) #endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -212,40 +215,40 @@ SUBROUTINE GMREDI_K3D( C ====================================== small = TINY(zeroRL) update_modes=.FALSE. - IF ( DIFFERENT_MULTIPLE(GM_K3D_vecFreq,myTime,deltaTClock) ) + IF ( DIFFERENT_MULTIPLE(GM_Bates_vecFreq,myTime,deltaTClock) ) & update_modes=.TRUE. - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx kLow_C(i,j) = kLowC(i,j,bi,bj) ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx kLow_U(i,j) = MIN( kLow_C(i,j), kLow_C(i-1,j) ) ENDDO ENDDO - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx kLow_V(i,j) = MIN( kLow_C(i,j), kLow_C(i,j-1) ) ENDDO ENDDO C Dummy values for the edges. This does not affect the results C but avoids problems when solving for the eigenvalues. - i=1-Olx - DO j=1-Oly,sNy+Oly + i=1-OLx + DO j=1-OLy,sNy+OLy kLow_U(i,j) = 0 ENDDO - j=1-Oly - DO i=1-Olx,sNx+Olx + j=1-OLy + DO i=1-OLx,sNx+OLx kLow_V(i,j) = 0 ENDDO g_reciprho_sq = (gravity*recip_rhoConst)**2 C Gradient of Coriolis - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx dfdx(i,j) = ( fCori(i,j,bi,bj)-fCori(i-1,j,bi,bj) ) & *recip_dxC(i,j,bi,bj) dfdy(i,j) = ( fCori(i,j,bi,bj)-fCori(i,j-1,bi,bj) ) @@ -255,41 +258,41 @@ SUBROUTINE GMREDI_K3D( C Coriolis at U and V points enforcing a minimum value so C that it is defined at the equator - DO j=1-Oly,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx C Not limited fCoriU(i,j)= op5*( fCori(i,j,bi,bj)+fCori(i-1,j,bi,bj) ) C Limited so that the inverse is defined at the equator - coriU(i,j) = SIGN( MAX( ABS(fCoriU(i,j)),GM_K3D_minCori ), + coriU(i,j) = SIGN( MAX( ABS(fCoriU(i,j)),GM_Bates_minCori ), & fCoriU(i,j) ) ENDDO ENDDO - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx C Not limited fCoriV(i,j)= op5*( fCori(i,j,bi,bj)+fCori(i,j-1,bi,bj) ) C Limited so that the inverse is defined at the equator - coriV(i,j) = SIGN( MAX( ABS(fCoriV(i,j)),GM_K3D_minCori ), + coriV(i,j) = SIGN( MAX( ABS(fCoriV(i,j)),GM_Bates_minCori ), & fCoriV(i,j) ) ENDDO ENDDO C Some dummy values at the edges - i=1-Olx - DO j=1-Oly,sNy+Oly + i=1-OLx + DO j=1-OLy,sNy+OLy fCoriU(i,j)= fCori(i,j,bi,bj) - coriU(i,j) = SIGN( MAX( ABS(fCori(i,j,bi,bj)),GM_K3D_minCori ), + coriU(i,j) = SIGN( MAX( ABS(fCori(i,j,bi,bj)),GM_Bates_minCori ), & fCori(i,j,bi,bj) ) ENDDO - j=1-Oly - DO i=1-Olx,sNx+Olx + j=1-OLy + DO i=1-OLx,sNx+OLx fCoriV(i,j)= fCori(i,j,bi,bj) - coriV(i,j) = SIGN( MAX( ABS(fCori(i,j,bi,bj)),GM_K3D_minCori ), + coriV(i,j) = SIGN( MAX( ABS(fCori(i,j,bi,bj)),GM_Bates_minCori ), & fCori(i,j,bi,bj) ) ENDDO C Zeroing some cumulative fields - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx eady(i,j) = zeroRL BVint(i,j) = zeroRL Ubaro(i,j) = zeroRL @@ -297,16 +300,16 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx slopeC(i,j,k)=zeroRL ENDDO ENDDO ENDDO C initialise remaining 2d variables - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Rurms(i,j)=zeroRL RRhines(i,j)=zeroRL Rmix(i,j)=zeroRL @@ -314,11 +317,11 @@ SUBROUTINE GMREDI_K3D( ENDDO C initialise remaining 3d variables DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - N2loc(i,j,k)=GM_K3D_minN2 - N2W(i,j,k) = GM_K3D_minN2 - N2S(i,j,k) = GM_K3D_minN2 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + N2loc(i,j,k)=GM_Bates_minN2 + N2W(i,j,k) = GM_Bates_minN2 + N2S(i,j,k) = GM_Bates_minN2 M4loc(i,j,k)=zeroRL M4onN2(i,j,k)=zeroRL urms(i,j,k)=zeroRL @@ -336,8 +339,8 @@ SUBROUTINE GMREDI_K3D( #ifdef ALLOW_EDDYPSI IF (GM_InMomAsStress) THEN DO k=1,Nr - DO i = 1-olx,snx+olx - DO j = 1-oly,sny+oly + DO i = 1-OLx,sNx+OLx + DO j = 1-OLy,sNy+OLy uFldX(i,j,k) = uEulerMean(i,j,k,bi,bj) vFldY(i,j,k) = vEulerMean(i,j,k,bi,bj) ENDDO @@ -346,8 +349,8 @@ SUBROUTINE GMREDI_K3D( ELSE #endif DO k=1,Nr - DO i = 1-olx,snx+olx - DO j = 1-oly,sny+oly + DO i = 1-OLx,sNx+OLx + DO j = 1-OLy,sNy+OLy uFldX(i,j,k) = uVel(i,j,k,bi,bj) vFldY(i,j,k) = vVel(i,j,k,bi,bj) ENDDO @@ -362,16 +365,16 @@ SUBROUTINE GMREDI_K3D( C 1) go from C grid velocity points to A grid velocity points C 2) go from model grid directions to east/west directions DO k = 1,Nr - DO i = 1-Olx,sNx+Olx - j=sNy+Oly + DO i = 1-OLx,sNx+OLx + j=sNy+OLy tmpU(i,j)=zeroRL tmpV(i,j)=zeroRL ENDDO - DO j = 1-Oly,sNy+Oly-1 - i=sNx+Olx + DO j = 1-OLy,sNy+OLy-1 + i=sNx+OLx tmpU(i,j)=zeroRL tmpV(i,j)=zeroRL - DO i = 1-Olx,sNx+Olx-1 + DO i = 1-OLx,sNx+OLx-1 tmpU(i,j) = 0.5 _d 0 & *( uFldX(i+1,j,k) + uFldX(i,j,k) ) tmpV(i,j) = 0.5 _d 0 @@ -382,8 +385,8 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO C Rotation - DO j = 1-oly,sny+oly - DO i = 1-olx,snx+olx + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx ubar(i,j,k) = & angleCosC(i,j,bi,bj)*tmpU(i,j) & -angleSinC(i,j,bi,bj)*tmpV(i,j) @@ -395,15 +398,15 @@ SUBROUTINE GMREDI_K3D( C and the dividing by the depth of the water column C Note that Ubaro is at the C-point. DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Ubaro(i,j) = Ubaro(i,j) + & drF(k)*hfacC(i,j,k,bi,bj)*ubar(i,j,k) ENDDO ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (kLow_C(i,j).GT.0) THEN C The minus sign is because r_Low<0 Ubaro(i,j) = -Ubaro(i,j)/r_Low(i,j,bi,bj) @@ -415,23 +418,23 @@ SUBROUTINE GMREDI_K3D( C Enforce a minimum N2 C Mask N2, so it is zero at bottom DO k=2,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx N2(i,j,k) = -gravity*recip_rhoConst*sigmaR(i,j,k) - N2(i,j,k) = MAX(N2(i,j,k),GM_K3D_minN2)*maskC(i,j,k,bi,bj) + N2(i,j,k) = MAX(N2(i,j,k),GM_Bates_minN2)*maskC(i,j,k,bi,bj) N(i,j,k) = SQRT(N2(i,j,k)) ENDDO ENDDO ENDDO C N2(k=1) is always zero - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx N2(i,j,1) = zeroRL N(i,j,1) = zeroRL ENDDO ENDDO C Calculate the minimum drho/dz - maxDRhoDz = -rhoConst*GM_K3D_minN2/gravity + maxDRhoDz = -rhoConst*GM_Bates_minN2/gravity C Integrate the buoyancy frequency vertically using the trapezoidal method. C Assume that N(z=-H)=0 @@ -439,8 +442,8 @@ SUBROUTINE GMREDI_K3D( kp1 = min(k+1,Nr) mskp1 = oneRL IF ( k.EQ.Nr ) mskp1 = zeroRL - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx BVint(i,j) = BVint(i,j) + hFacC(i,j,k,bi,bj)*drF(k) & *op5*(N(i,j,k)+mskp1*N(i,j,kp1)) ENDDO @@ -457,8 +460,8 @@ SUBROUTINE GMREDI_K3D( O Rmid, modesC(:,:,:,:,bi,bj)) C Calculate the Rossby Radius - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx Req = SQRT(BVint(i,j)/(2. _d 0*pi*gradf(i,j,bi,bj))) Rdef(i,j,bi,bj) = MIN(Rmid(i,j),Req) ENDDO @@ -467,8 +470,8 @@ SUBROUTINE GMREDI_K3D( C Average dsigma/dx and dsigma/dy onto the centre points DO k=1,Nr - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 dSigmaDx(i,j,k) = op5*(sigmaX(i,j,k)+sigmaX(i+1,j,k)) dSigmaDy(i,j,k) = op5*(sigmaY(i,j,k)+sigmaY(i,j+1,k)) ENDDO @@ -484,8 +487,8 @@ SUBROUTINE GMREDI_K3D( mskp1 = oneRL IF ( k.EQ.Nr ) mskp1 = zeroRL - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 M4loc(i,j,k) = g_reciprho_sq*( dSigmaDx(i,j,k)**2 & +dSigmaDy(i,j,k)**2 ) N2loc(i,j,k) = op5*(N2(i,j,k)+mskp1*N2(i,j,kp1)) @@ -493,15 +496,15 @@ SUBROUTINE GMREDI_K3D( ENDDO C The bottom of the grid cell is shallower than the top C integration level, so, advance the depth. - IF (-rF(k+1) .LE. GM_K3D_EadyMinDepth) CYCLE + IF (-rF(k+1) .LE. GM_Bates_EadyMinDepth) CYCLE C Do not bother going any deeper since the top of the C cell is deeper than the bottom integration level - IF (-rF(k).GE.GM_K3D_EadyMaxDepth) EXIT + IF (-rF(k).GE.GM_Bates_EadyMaxDepth) EXIT C We are in the integration depth range - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 IF ( (kLow_C(i,j).GE.k) .AND. & (-hMixLayer(i,j,bi,bj).LE.-rC(k)) ) THEN @@ -521,8 +524,8 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx C If the minimum depth for the integration is deeper than the ocean C bottom OR the mixed layer is deeper than the maximum depth of C integration, we set the Eady growth rate to something small @@ -544,11 +547,11 @@ SUBROUTINE GMREDI_K3D( C ====================================== C Calculate the diffusivity C ====================================== - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx-1 + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx-1 C Calculate the Visbeck velocity - Rurms(i,j) = MIN(Rdef(i,j,bi,bj),GM_K3D_Rmax) - urms(i,j,1) = GM_K3D_Lambda*eady(i,j)*Rurms(i,j) + Rurms(i,j) = MIN(Rdef(i,j,bi,bj),GM_Bates_Rmax) + urms(i,j,1) = GM_Bates_Lambda*eady(i,j)*Rurms(i,j) C Set the bottom urms to zero k=kLow_C(i,j) IF (k.GT.0) urms(i,j,k) = 0.0 @@ -558,15 +561,15 @@ SUBROUTINE GMREDI_K3D( C Calculate the estimated length scale Rmix(i,j) = MIN(Rdef(i,j,bi,bj), RRhines(i,j)) - Rmix(i,j) = MAX(Rmix(i,j),GM_K3D_Rmin) + Rmix(i,j) = MAX(Rmix(i,j),GM_Bates_Rmin) C Calculate the Doppler shifted long Rossby wave speed C Ubaro is at the C-point. cDopp(i,j) = Ubaro(i,j) & - gradf(i,j,bi,bj)*Rdef(i,j,bi,bj)*Rdef(i,j,bi,bj) -C Limit the wave speed to the namelist variable GM_K3D_maxC - IF (ABS(cDopp(i,j)).GT.GM_K3D_maxC) THEN - cDopp(i,j) = MAX(GM_K3D_maxC, cDopp(i,j)) +C Limit the wave speed to the namelist variable GM_Bates_maxC + IF (ABS(cDopp(i,j)).GT.GM_Bates_maxC) THEN + cDopp(i,j) = MAX(GM_Bates_maxC, cDopp(i,j)) ENDIF ENDDO @@ -579,25 +582,28 @@ SUBROUTINE GMREDI_K3D( C Calculate the diffusivity (on the mass grid) DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (k.LE.kLow_C(i,j)) THEN IF (deltaH(i,j).EQ.zeroRL) THEN - K3D(i,j,k,bi,bj) = GM_K3D_smallK + GM_BatesK3d(i,j,k,bi,bj) = GM_Bates_smallK ELSE IF (urms(i,j,k).EQ.0.0) THEN - K3D(i,j,k,bi,bj) = GM_K3D_smallK + GM_BatesK3d(i,j,k,bi,bj) = GM_Bates_smallK ELSE umc(i,j,k) =ubar(i,j,k) - cDopp(i,j) - supp(i,j,k)=1./(1.+GM_K3D_b1*umc(i,j,k)**2/urms(i,j,1)**2) + supp(i,j,k) = 1./ + & ( 1. + GM_Bates_b1*umc(i,j,k)**2/urms(i,j,1)**2 ) C 2*Rmix gives the diameter - K3D(i,j,k,bi,bj) = GM_K3D_gamma*urms(i,j,k) + GM_BatesK3d(i,j,k,bi,bj) = GM_Bates_gamma*urms(i,j,k) & *2.*Rmix(i,j)*supp(i,j,k) ENDIF C Enforce lower and upper bounds on the diffusivity - K3D(i,j,k,bi,bj) = MIN(K3D(i,j,k,bi,bj),GM_maxK3D) - K3D(i,j,k,bi,bj) = MAX(K3D(i,j,k,bi,bj),GM_K3D_smallK) + GM_BatesK3d(i,j,k,bi,bj) = + & MIN( GM_BatesK3d(i,j,k,bi,bj), GM_Bates_maxK ) + GM_BatesK3d(i,j,k,bi,bj) = + & MAX( GM_BatesK3d(i,j,k,bi,bj), GM_Bates_smallK ) ENDIF ENDIF ENDDO @@ -612,17 +618,17 @@ SUBROUTINE GMREDI_K3D( C for the mixed layer depth. C Enforce a minimum surface layer depth - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - surfkz(i,j) = MIN(-GM_K3D_surfMinDepth,-hMixLayer(i,j,bi,bj)) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + surfkz(i,j) = MIN(-GM_Bates_surfMinDepth,-hMixLayer(i,j,bi,bj)) surfkz(i,j) = MAX(surfkz(i,j),R_low(i,j,bi,bj)) IF(maskC(i,j,1,bi,bj).EQ.0.0) surfkz(i,j)=0.0 surfk(i,j) = 0 ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (rF(k).GT.surfkz(i,j) .AND. surfkz(i,j).GE.rF(k+1)) & surfk(i,j) = k ENDDO @@ -630,15 +636,15 @@ SUBROUTINE GMREDI_K3D( ENDDO C Calculate the isopycnal slope - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 SlopeX(i,j,1) = zeroRL SlopeY(i,j,1) = zeroRL ENDDO ENDDO DO k=2,Nr - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx IF(surfk(i,j).GE.kLowC(i,j,bi,bj)) THEN C If the surface layer is thinner than the water column C the set the slope to zero to avoid problems. @@ -670,8 +676,8 @@ SUBROUTINE GMREDI_K3D( C These may be altered later depending on namelist options. C Enforce a zero slope bottom boundary condition for the bottom most cells (k=Nr) k=Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx C Zonal gradient of PV stretching term: at the western cell face tfluxX(i,j,k) = -fCoriU(i,j)*SlopeX(i,j,k) & *recip_drF(k)*recip_hFacW(i,j,k,bi,bj) @@ -681,15 +687,15 @@ SUBROUTINE GMREDI_K3D( C Use the interior diffusivity. Note: if we are using a C constant diffusivity KPV is overwritten later - KPV(i,j,k) = K3D(i,j,k,bi,bj) + KPV(i,j,k) = GM_BatesK3d(i,j,k,bi,bj) ENDDO ENDDO C Calculate gradients of PV stretching term and PV diffusivity: for other cells (k no smoothing C May only be done with a constant K, otherwise the C integral constraint is violated. DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Xix(i,j,k) = -maskW(i,j,k,bi,bj)*KPV(i,j,k)*gradqx(i,j,k) Xiy(i,j,k) = -maskS(i,j,k,bi,bj)*KPV(i,j,k)*gradqy(i,j,k) ENDDO @@ -847,25 +853,25 @@ SUBROUTINE GMREDI_K3D( C Calculate the eigenvectors at the West face of a cell IF (update_modes) THEN CALL GMREDI_CALC_EIGS( - I iMin,iMax,jMin,jMax,bi,bj,N2W,myThid, - I kLow_U,maskW(:,:,:,bi,bj), - I hfacW(:,:,:,bi,bj),recip_hfacW(:,:,:,bi,bj), - I rLowW(:,:,bi,bj),GM_K3D_NModes,.FALSE., - O dummy,modesW(:,:,:,:,bi,bj)) + I iMin,iMax,jMin,jMax,bi,bj, N2W, myThid, + I kLow_U, maskW(:,:,:,bi,bj), + I hfacW(:,:,:,bi,bj), recip_hfacW(:,:,:,bi,bj), + I rLowW(:,:,bi,bj), GM_Bates_NModes, .FALSE., + O dummy, modesW(:,:,:,:,bi,bj) ) ENDIF C Calculate Xi_m at the west face of a cell - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes XimX(m,i,j) = zeroRL ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes Kdqdx(i,j,k) = KPV(i,j,k)*gradqx(i,j,k) XimX(m,i,j) = XimX(m,i,j) & - maskW(i,j,k,bi,bj)*drF(k)*hfacW(i,j,k,bi,bj) @@ -877,16 +883,16 @@ SUBROUTINE GMREDI_K3D( C Calculate Xi in the X direction at the west face DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Xix(i,j,k) = zeroRL ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes Xix(i,j,k) = Xix(i,j,k) & + maskW(i,j,k,bi,bj)*XimX(m,i,j)*modesW(m,i,j,k,bi,bj) ENDDO @@ -899,24 +905,24 @@ SUBROUTINE GMREDI_K3D( C Calculate the eigenvectors at the West face of a cell IF (update_modes) THEN CALL GMREDI_CALC_EIGS( - I iMin,iMax,jMin,jMax,bi,bj,N2S,myThid, - I kLow_V,maskS(:,:,:,bi,bj), - I hfacS(:,:,:,bi,bj),recip_hfacS(:,:,:,bi,bj), - I rLowS(:,:,bi,bj), GM_K3D_NModes, .FALSE., - O dummy,modesS(:,:,:,:,bi,bj)) + I iMin,iMax,jMin,jMax,bi,bj, N2S, myThid, + I kLow_V, maskS(:,:,:,bi,bj), + I hfacS(:,:,:,bi,bj), recip_hfacS(:,:,:,bi,bj), + I rLowS(:,:,bi,bj), GM_Bates_NModes, .FALSE., + O dummy, modesS(:,:,:,:,bi,bj) ) ENDIF - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes XimY(m,i,j) = zeroRL ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes Kdqdy(i,j,k) = KPV(i,j,k)*gradqy(i,j,k) XimY(m,i,j) = XimY(m,i,j) & - drF(k)*hfacS(i,j,k,bi,bj) @@ -928,16 +934,16 @@ SUBROUTINE GMREDI_K3D( C Calculate Xi for Y direction at the south face DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Xiy(i,j,k) = zeroRL ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - DO m=1,GM_K3D_NModes + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + DO m=1,GM_Bates_NModes Xiy(i,j,k) = Xiy(i,j,k) & + maskS(i,j,k,bi,bj)*XimY(m,i,j)*modesS(m,i,j,k,bi,bj) ENDDO @@ -945,12 +951,12 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO -C ENDIF (.NOT. GM_K3D_smooth) +C ENDIF (.NOT. GM_Bates_smooth) ENDIF C Calculate the renormalisation factor - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx uInt(i,j)=zeroRL vInt(i,j)=zeroRL KdqdyInt(i,j)=zeroRL @@ -965,8 +971,8 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 centreX = op5*(uVel(i,j,k,bi,bj)+uVel(i+1,j,k,bi,bj)) centreY = op5*(Kdqdy(i,j,k) +Kdqdy(i,j+1,k) ) C For the numerator @@ -999,8 +1005,8 @@ SUBROUTINE GMREDI_K3D( ENDDO ENDDO - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 IF (kLowC(i,j,bi,bj).GT.0) THEN numerator = & (uKdqdyInt(i,j)-uInt(i,j)*KdqdyInt(i,j)/R_low(i,j,bi,bj)) @@ -1015,15 +1021,15 @@ SUBROUTINE GMREDI_K3D( C We also enforce a maximum renormalisation factor. IF (denominator.GT.small) THEN Renorm(i,j) = ABS(numerator/denominator) - Renorm(i,j) = MAX(Renorm(i,j),GM_K3D_minRenorm) - Renorm(i,j) = MIN(Renorm(i,j),GM_K3D_maxRenorm) + Renorm(i,j) = MAX(Renorm(i,j),GM_Bates_minRenorm) + Renorm(i,j) = MIN(Renorm(i,j),GM_Bates_maxRenorm) ENDIF ENDIF ENDDO ENDDO C Now put it back on to the velocity grids - DO j=1-Oly+1,sNy+Oly-1 - DO i=1-Olx+1,sNx+Olx-1 + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 RenormU(i,j) = op5*(Renorm(i-1,j)+Renorm(i,j)) RenormV(i,j) = op5*(Renorm(i,j-1)+Renorm(i,j)) ENDDO @@ -1031,8 +1037,8 @@ SUBROUTINE GMREDI_K3D( C Calculate the eddy induced velocity in the X direction at the west face DO k=1,Nr - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx ustar(i,j,k) = -RenormU(i,j)*Xix(i,j,k)/coriU(i,j) ENDDO ENDDO @@ -1040,8 +1046,8 @@ SUBROUTINE GMREDI_K3D( C Calculate the eddy induced velocity in the Y direction at the south face DO k=1,Nr - DO j=1-Oly+1,sNy+Oly - DO i=1-Olx+1,sNx+Olx + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx vstar(i,j,k) = -RenormV(i,j)*Xiy(i,j,k)/coriV(i,j) ENDDO ENDDO @@ -1050,16 +1056,16 @@ SUBROUTINE GMREDI_K3D( C ====================================== C Calculate the eddy induced overturning streamfunction C ====================================== -#ifdef GM_K3D_PASSIVE +#ifdef GM_BATES_PASSIVE k=Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx psistar(i,j,Nr) = -hfacS(i,j,k,bi,bj)*drF(k)*vstar(i,j,k) ENDDO ENDDO DO k=Nr-1,1,-1 - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx psistar(i,j,k) = psistar(i,j,k+1) & - hfacS(i,j,k,bi,bj)*drF(k)*vstar(i,j,k) ENDDO @@ -1070,15 +1076,15 @@ SUBROUTINE GMREDI_K3D( IF (GM_AdvForm) THEN k=Nr - DO j=1-Oly+1,sNy+1 - DO i=1-Olx+1,sNx+1 + DO j=1-OLy+1,sNy+1 + DO i=1-OLx+1,sNx+1 GM_PsiX(i,j,k,bi,bj) = -hfacW(i,j,k,bi,bj)*drF(k)*ustar(i,j,k) GM_PsiY(i,j,k,bi,bj) = -hfacS(i,j,k,bi,bj)*drF(k)*vstar(i,j,k) ENDDO ENDDO DO k=Nr-1,1,-1 - DO j=1-Oly+1,sNy+1 - DO i=1-Olx+1,sNx+1 + DO j=1-OLy+1,sNy+1 + DO i=1-OLx+1,sNx+1 GM_PsiX(i,j,k,bi,bj) = GM_PsiX(i,j,k+1,bi,bj) & - hfacW(i,j,k,bi,bj)*drF(k)*ustar(i,j,k) GM_PsiY(i,j,k,bi,bj) = GM_PsiY(i,j,k+1,bi,bj) @@ -1093,7 +1099,8 @@ SUBROUTINE GMREDI_K3D( #ifdef ALLOW_DIAGNOSTICS C Diagnostics IF ( useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL(K3D, 'GM_K3D ',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL( GM_BatesK3d, 'GM_BaK ', + I 0, Nr, 1, bi, bj, myThid ) CALL DIAGNOSTICS_FILL(KPV, 'GM_KPV ',0,Nr,2,bi,bj,myThid) CALL DIAGNOSTICS_FILL(urms, 'GM_URMS ',0,Nr,2,bi,bj,myThid) CALL DIAGNOSTICS_FILL(Rdef, 'GM_RDEF ',0, 1,1,bi,bj,myThid) @@ -1125,19 +1132,19 @@ SUBROUTINE GMREDI_K3D( CALL DIAGNOSTICS_FILL(M4onN2, 'GM_M4_N2',0,Nr,2,bi,bj,myThid) CALL DIAGNOSTICS_FILL(slopeC, 'GM_SLOPE',0,Nr,2,bi,bj,myThid) CALL DIAGNOSTICS_FILL(Renorm, 'GM_RENRM',0, 1,2,bi,bj,myThid) -#ifdef GM_K3D_PASSIVE +#ifdef GM_BATES_PASSIVE CALL DIAGNOSTICS_FILL(psistar,'GM_PSTAR',0,Nr,2,bi,bj,myThid) #endif ENDIF #endif -C For the Redi diffusivity, we set K3D to a constant if -C GM_K3D_constRedi=.TRUE. - IF (GM_K3D_constRedi) THEN +C For the Redi diffusivity, we set GM_BatesK3d to a constant if +C GM_Bates_constRedi=.TRUE. + IF (GM_Bates_constRedi) THEN DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - K3D(i,j,k,bi,bj) = GM_K3D_constK + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_BatesK3d(i,j,k,bi,bj) = GM_Bates_constK ENDDO ENDDO ENDDO @@ -1145,9 +1152,10 @@ SUBROUTINE GMREDI_K3D( #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) - & CALL DIAGNOSTICS_FILL(K3D, 'GM_K3D_T',0,Nr,1,bi,bj,myThid) + & CALL DIAGNOSTICS_FILL( GM_BatesK3d, 'GM_BaK_T', + I 0, Nr, 1, bi, bj, myThid ) #endif -#endif /* GM_K3D */ +#endif /* GM_BATES_K3D */ RETURN END diff --git a/pkg/gmredi/gmredi_calc_eigs.F b/pkg/gmredi/gmredi_calc_eigs.F index 6d348de964..90032f08fb 100644 --- a/pkg/gmredi/gmredi_calc_eigs.F +++ b/pkg/gmredi/gmredi_calc_eigs.F @@ -34,16 +34,16 @@ SUBROUTINE GMREDI_CALC_EIGS( INTEGER bi, bj INTEGER myThid INTEGER nmodes - INTEGER kLow(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL mask(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL hfac(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL recip_hfac(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL rlow(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL N2( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL Rmid(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL vec(nmodes,1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - -#ifdef GM_K3D + INTEGER kLow(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL mask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL hfac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL recip_hfac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL rlow(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL N2( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL Rmid(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vec(nmodes,1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + +#ifdef GM_BATES_K3D C !LOCAL VARIABLES: C == Local variables == INTEGER i,j,k,kk,m @@ -63,10 +63,10 @@ SUBROUTINE GMREDI_CALC_EIGS( C eigval :: Vector containing the eigenvalues INTEGER info INTEGER idx - _RL a3d( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL b3d( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL c3d( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL val( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL a3d( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL b3d( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL c3d( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL val( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL eigR(Nr),eigI(Nr),vecs(Nr,Nr),dummy(1,Nr),work(Nr*Nr) _RL array(Nr,Nr) _RL eigval(0:nmodes) @@ -78,18 +78,18 @@ SUBROUTINE GMREDI_CALC_EIGS( C c1 :: intN0/pi C nEigs :: number of eigenvalues/vectors to calculate _RL drNr - _RL BuoyFreq(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr+1) - _RL intN(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL intN0(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL c1(1-Olx:sNx+Olx,1-Oly:sNy+Oly) - INTEGER nEigs(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL BuoyFreq(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr+1) + _RL intN(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL intN0(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL c1(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER nEigs(1-OLx:sNx+OLx,1-OLy:sNy+OLy) # endif C small :: a small number (used to avoid floating point exceptions) C vecint :: vertical integral of eigenvector and/or square of eigenvector C fCori2 :: square of the Coriolis parameter _RL small - _RL vecint(nmodes,1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL fCori2(1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL vecint(nmodes,1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL fCori2(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CHARACTER*(MAX_LEN_MBUF) msgBuf small = TINY(zeroRL) @@ -102,8 +102,8 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nmodes vec(m,i,j,k) = zeroRL ENDDO @@ -154,8 +154,8 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (kLow(i,j).GT.0) THEN DO kk=1,Nr DO k=1,Nr @@ -178,20 +178,20 @@ SUBROUTINE GMREDI_CALC_EIGS( CALL DGEEV('N','V',Nr,array,Nr,eigR,eigI,dummy,1, & vecs,Nr,work,Nr*Nr,info) IF( info.LT.0 ) THEN - WRITE(msgBuf,'(A,x,2(A1,I2),A1,x,A,I4)') + WRITE(msgBuf,'(A,x,2(A1,I2),A1,x,A,I4)') & 'GMREDI_CALC_EIGS problem with arguments for DGEEV at', & '(',i,',',j,')', 'error code =',info CALL PRINT_ERROR( msgBuf , myThid ) - + ELSEIF(info.GT.0 ) THEN - WRITE(msgBuf,'(A,x,2(A1,I2),A1,x,A,I4)') + WRITE(msgBuf,'(A,x,2(A1,I2),A1,x,A,I4)') & 'GMREDI_CALC_EIGS problems with eigensolver DGEEV at', & '(',i,',',j,')', 'error code =',info CALL PRINT_ERROR( msgBuf , myThid ) - + ENDIF -C Find the second largest eigenvalue (the Rossby radius) +C Find the second largest eigenvalue (the Rossby radius) C and the first M baroclinic modes (eigenvectors) DO m=0,nmodes eigval(m) = -HUGE(zeroRL) @@ -230,8 +230,8 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (kLow(i,j).GT.2 .AND. val(i,j).NE.zeroRL) THEN Rmid(i,j) = 1.0/(SQRT(ABS(val(i,j)))+small) ELSE @@ -240,17 +240,17 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO ENDDO -# else +# else DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx BuoyFreq(i,j,k) = mask(i,j,k)*SQRT(N2(i,j,k)) ENDDO ENDDO ENDDO k=Nr+1 - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx BuoyFreq(i,j,k) = zeroRL ENDDO ENDDO @@ -261,46 +261,46 @@ SUBROUTINE GMREDI_CALC_EIGS( k=Nr C drNr is like drC(Nr+1)/2 drNr = rC(Nr)-rF(Nr+1) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx intN(i,j,k) = op5*BuoyFreq(i,j,k)*drNr ENDDO ENDDO DO k=Nr-1,1,-1 - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - intN(i,j,k) = intN(i,j,k+1) - & + drC(k)*( op25*BuoyFreq(i,j,k+2) + op5*BuoyFreq(i,j,k) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + intN(i,j,k) = intN(i,j,k+1) + & + drC(k)*( op25*BuoyFreq(i,j,k+2) + op5*BuoyFreq(i,j,k) & + op25*BuoyFreq(i,j,k+1) ) ENDDO ENDDO ENDDO - + C intN integrates to z=rC(1). We want to integrate to z=0. C Assume that N(0)=0 and N(1)=0. C drC(1) is like half a grid cell. - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx - intN0(i,j) = intN(i,j,1) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + intN0(i,j) = intN(i,j,1) & + drC(1)*op5*BuoyFreq(i,j,2) ENDDO ENDDO - - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx c1(i,j) = intN0(i,j)/pi Rmid(i,j) = c1(i,j)/ABS(fCori(i,j,bi,bj)) ENDDO - ENDDO + ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx nEigs(i,j) = MIN(klow(i,j),nmodes) ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (mask(i,j,k).NE.0.0) THEN DO m=1,nEigs(i,j) vec(m,i,j,k) = -COS(intN(i,j,k)/(m*c1(i,j))) @@ -310,34 +310,34 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO ENDDO -C The WKB approximation for the baroclinic mode does not always +C The WKB approximation for the baroclinic mode does not always C integrate to zero so we adjust it. - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nEigs(i,j) vecint(m,i,j) = zeroRL ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nEigs(i,j) vecint(m,i,j) = vecint(m,i,j) + hfac(i,j,k)*vec(m,i,j,k)*drF(k) ENDDO ENDDO ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nEigs(i,j) vecint(m,i,j) = vecint(m,i,j)/(-rlow(i,j)+small) ENDDO ENDDO ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nEigs(i,j) vec(m,i,j,k) = vec(m,i,j,k) - vecint(m,i,j) ENDDO @@ -347,8 +347,8 @@ SUBROUTINE GMREDI_CALC_EIGS( # endif C Normalise the eigenvectors - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nmodes vecint(m,i,j) = zeroRL ENDDO @@ -356,10 +356,10 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nmodes - vecint(m,i,j) = vecint(m,i,j) + + vecint(m,i,j) = vecint(m,i,j) + & mask(i,j,k)*drF(k)*hfac(i,j,k) & *vec(m,i,j,k)*vec(m,i,j,k) ENDDO @@ -367,8 +367,8 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO ENDDO - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nmodes vecint(m,i,j) = SQRT(vecint(m,i,j)) ENDDO @@ -376,8 +376,8 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDDO DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx DO m=1,nmodes vec(m,i,j,k) = vec(m,i,j,k)/(vecint(m,i,j)+small) ENDDO @@ -388,7 +388,7 @@ SUBROUTINE GMREDI_CALC_EIGS( # ifdef ALLOW_DIAGNOSTICS C Diagnostics IF ( useDiagnostics.AND.writediag ) THEN -# ifdef HAVE_LAPACK +# ifdef HAVE_LAPACK CALL DIAGNOSTICS_FILL(a3d, 'GM_A3D ',0,Nr,0,1,1,myThid) CALL DIAGNOSTICS_FILL(b3d, 'GM_B3D ',0,Nr,0,1,1,myThid) CALL DIAGNOSTICS_FILL(c3d, 'GM_C3D ',0,Nr,0,1,1,myThid) @@ -396,7 +396,7 @@ SUBROUTINE GMREDI_CALC_EIGS( ENDIF # endif -#endif /* GM_K3D */ +#endif /* GM_BATES_K3D */ RETURN END diff --git a/pkg/gmredi/gmredi_calc_psi_b.F b/pkg/gmredi/gmredi_calc_psi_b.F index 1a3d61421f..a119ed6ade 100644 --- a/pkg/gmredi/gmredi_calc_psi_b.F +++ b/pkg/gmredi/gmredi_calc_psi_b.F @@ -36,14 +36,11 @@ SUBROUTINE GMREDI_CALC_PSI_B( #ifdef ALLOW_CTRL # include "CTRL_FIELDS.h" #endif - #ifdef ALLOW_AUTODIFF_TAMC -#include "tamc.h" -#include "tamc_keys.h" +# include "tamc.h" #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == _RL sigmaX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL sigmaY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL sigmaR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) @@ -57,9 +54,14 @@ SUBROUTINE GMREDI_CALC_PSI_B( #ifdef GM_BOLUS_ADVEC C !LOCAL VARIABLES: -C == Local variables == INTEGER i,j,k, km1 - _RL half_K +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C kkey :: tape key (depends on levels and tiles) + INTEGER tkey, kkey +#endif + _RL halfSign + _RL rDepth, half_K _RL SlopeX(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dSigmaDrW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -70,66 +72,66 @@ SUBROUTINE GMREDI_CALC_PSI_B( C- Initialization : <= done in S/R gmredi_init #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igmkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC # ifdef GM_VISBECK_VARIABLE_K -CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=igmkey, byte=isbyte +CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte # endif #endif IF (GM_AdvForm) THEN +C change sign of vertical Sigma gradient to match stratification sign + halfSign = halfRL*gravitySign + DO k=2,Nr - km1 = k-1 + km1 = k-1 #ifdef ALLOW_AUTODIFF - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - SlopeX(i,j) = 0. _d 0 - SlopeY(i,j) = 0. _d 0 - dSigmaDrW(i,j) = 0. _d 0 - dSigmaDrS(i,j) = 0. _d 0 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + SlopeX(i,j) = 0. _d 0 + SlopeY(i,j) = 0. _d 0 + dSigmaDrW(i,j) = 0. _d 0 + dSigmaDrS(i,j) = 0. _d 0 + ENDDO ENDDO - ENDDO #endif C Gradient of Sigma below U and V points - DO j=1-OLy,sNy+OLy - DO i=1-OLx+1,sNx+OLx - SlopeX(i,j)=op5*( sigmaX(i,j,km1)+sigmaX(i,j,k) ) - & *maskW(i,j,k,bi,bj) - dSigmaDrW(i,j)=op5*( sigmaR(i-1,j,k)+sigmaR(i,j,k) ) - & *maskW(i,j,k,bi,bj) + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx + SlopeX(i,j) = ( sigmaX(i,j,km1)+sigmaX(i,j,k) )*halfRL + & *maskW(i,j,km1,bi,bj)*maskW(i,j,k,bi,bj) + dSigmaDrW(i,j) = ( sigmaR(i-1,j,k)+sigmaR(i,j,k) )*halfSign + & *maskW(i,j,km1,bi,bj)*maskW(i,j,k,bi,bj) + ENDDO ENDDO - ENDDO - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx,sNx+OLx - SlopeY(i,j)=op5*( sigmaY(i,j,km1)+sigmaY(i,j,k) ) - & *maskS(i,j,k,bi,bj) - dSigmaDrS(i,j)=op5*( sigmaR(i,j-1,k)+sigmaR(i,j,k) ) - & *maskS(i,j,k,bi,bj) + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + SlopeY(i,j) = ( sigmaY(i,j,km1)+sigmaY(i,j,k) )*halfRL + & *maskS(i,j,km1,bi,bj)*maskS(i,j,k,bi,bj) + dSigmaDrS(i,j) = ( sigmaR(i,j-1,k)+sigmaR(i,j,k) )*halfSign + & *maskS(i,j,km1,bi,bj)*maskS(i,j,k,bi,bj) + ENDDO ENDDO - ENDDO +C set "rDepth" (= depth from the surface, in rUnit) for 'ldd97' tapering + IF ( usingZcoords ) THEN + rDepth = rF(1) - rF(k) + ELSE + rDepth = rF(k) - rF(Nr+1) + ENDIF C Calculate slopes , taper and/or clip - CALL GMREDI_SLOPE_PSI( - O taperX, taperY, - U SlopeX, SlopeY, - U dSigmaDrW, dSigmaDrS, - I ldd97_LrhoW, ldd97_LrhoS, rF(k), k, - I bi, bj, myThid ) + CALL GMREDI_SLOPE_PSI( + O taperX, taperY, + U SlopeX, SlopeY, + U dSigmaDrW, dSigmaDrS, + I ldd97_LrhoW, ldd97_LrhoS, rDepth, k, + I bi, bj, myThid ) #ifdef ALLOW_AUTODIFF_TAMC - kkey = (igmkey-1)*Nr + k + kkey = k + (tkey-1)*Nr CADJ STORE SlopeX(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE SlopeY(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE taperX(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte @@ -137,70 +139,68 @@ SUBROUTINE GMREDI_CALC_PSI_B( #endif /* ALLOW_AUTODIFF_TAMC */ C- Compute the 2 stream-function Components ( GM bolus vel.) - half_K = GM_background_K +C Note: since SlopeX,Y have been masked, no needs to mask again GM_PsiX,Y + half_K = GM_background_K & *(GM_bolFac1d(km1)+GM_bolFac1d(k))*op25 - DO j=1-OLy,sNy+OLy - DO i=1-OLx+1,sNx+OLx + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx GM_PsiX(i,j,k,bi,bj) = SlopeX(i,j)*taperX(i,j) -#ifdef ALLOW_KAPGM_CONTROL -# ifdef ALLOW_KAPGM_CONTROL_OLD - & *( kapGM(i,j,k,bi,bj) -# else - & *( op25*( kapGM(i-1,j,km1,bi,bj)+kapGM(i,j,km1,bi,bj) - & + kapGM(i-1,j,k,bi,bj)+kapGM(i,j,k,bi,bj)) -# endif +#ifdef GM_READ_K3D_GM + & *( op25 + & *( GM_inpK3dGM(i-1,j,km1,bi,bj)+GM_inpK3dGM(i,j,km1,bi,bj) + & + GM_inpK3dGM(i-1,j,k,bi,bj)+GM_inpK3dGM(i,j,k,bi,bj) ) #else & *( half_K & *(GM_bolFac2d(i-1,j,bi,bj)+GM_bolFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj)) + & + op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op25*( GM_LeithQG_K(i-1,j,km1,bi,bj) - & + GM_LeithQG_K( i ,j,km1,bi,bj) - & + GM_LeithQG_K(i-1,j,k,bi,bj) - & + GM_LeithQG_K( i ,j,k,bi,bj) ) + & + op25*( GM_LeithQG_K(i-1,j,km1,bi,bj) + & + GM_LeithQG_K( i ,j,km1,bi,bj) + & + GM_LeithQG_K(i-1,j,k,bi,bj) + & + GM_LeithQG_K( i ,j,k,bi,bj) ) #endif - & )*maskW(i,j,k,bi,bj) + & ) +c & *maskW(i,j,km1,bi,bj)*maskW(i,j,k,bi,bj) #ifdef ALLOW_EDDYPSI & +eddyPsiX(i,j,k,bi,bj)*maskW(i,j,k,bi,bj) #endif + ENDDO ENDDO - ENDDO - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx,sNx+OLx - GM_PsiY(i,j,k,bi,bj) = SlopeY(i,j)*taperY(i,j) -#ifdef ALLOW_KAPGM_CONTROL -# ifdef ALLOW_KAPGM_CONTROL_OLD - & *( kapGM(i,j,k,bi,bj) -# else - & *( op25*( kapGM(i,j-1,km1,bi,bj)+kapGM(i,j,km1,bi,bj) - & + kapGM(i,j-1,k,bi,bj)+kapGM(i,j,k,bi,bj)) -# endif + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_PsiY(i,j,k,bi,bj) = SlopeY(i,j)*taperY(i,j) +#ifdef GM_READ_K3D_GM + & *( op25 + & *( GM_inpK3dGM(i,j-1,km1,bi,bj)+GM_inpK3dGM(i,j,km1,bi,bj) + & + GM_inpK3dGM(i,j-1,k,bi,bj)+GM_inpK3dGM(i,j,k,bi,bj) ) #else & *( half_K & *(GM_bolFac2d(i,j-1,bi,bj)+GM_bolFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj)) + & + op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op25*( GM_LeithQG_K(i,j-1,km1,bi,bj) - & + GM_LeithQG_K(i, j ,km1,bi,bj) - & + GM_LeithQG_K(i,j-1,k,bi,bj) - & + GM_LeithQG_K(i, j ,k,bi,bj) ) + & + op25*( GM_LeithQG_K(i,j-1,km1,bi,bj) + & + GM_LeithQG_K(i, j ,km1,bi,bj) + & + GM_LeithQG_K(i,j-1,k,bi,bj) + & + GM_LeithQG_K(i, j ,k,bi,bj) ) #endif - & )*maskS(i,j,k,bi,bj) + & ) +c & *maskS(i,j,km1,bi,bj)*maskS(i,j,k,bi,bj) #ifdef ALLOW_EDDYPSI & +eddyPsiY(i,j,k,bi,bj)*maskS(i,j,k,bi,bj) #endif + ENDDO ENDDO - ENDDO C----- end of loop on level k ENDDO +C end if GM_AdvForm block ENDIF #endif /* GM_BOLUS_ADVEC */ #endif /* ALLOW_GMREDI */ diff --git a/pkg/gmredi/gmredi_calc_psi_bvp.F b/pkg/gmredi/gmredi_calc_psi_bvp.F index e729f0a896..e6aa26ff04 100644 --- a/pkg/gmredi/gmredi_calc_psi_bvp.F +++ b/pkg/gmredi/gmredi_calc_psi_bvp.F @@ -107,9 +107,9 @@ SUBROUTINE GMREDI_CALC_PSI_BVP( DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx sigmaX_W = op5*( sigmaX(i,j,km1)+sigmaX(i,j,k) ) - & *maskW(i,j,k,bi,bj) + & *maskW(i,j,km1,bi,bj)*maskW(i,j,k,bi,bj) dSigmaDrW = op5*( sigmaR(i-1,j,k)+sigmaR(i,j,k) ) - & *maskW(i,j,k,bi,bj) + & *maskW(i,j,km1,bi,bj)*maskW(i,j,k,bi,bj) wkb_cW(i,j) = wkb_cW(i,j) & + SQRT(MAX( -dSigmaDrW, 0. _d 0 )) @@ -136,7 +136,8 @@ SUBROUTINE GMREDI_CALC_PSI_BVP( km1 = k-1 DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - IF ( maskW(i,j,k,bi,bj).NE.0. ) THEN + IF ( maskW(i,j,km1,bi,bj).NE.zeroRS .AND. + & maskW(i,j, k, bi,bj).NE.zeroRS ) THEN c2 = MAX( wkb_cW(i,j)*wkb_cW(i,j), GM_BVP_cHat2Min ) GM_a3d(i,j,k) = -c2*recip_drC(k) & *recip_drF(km1)*recip_hFacW(i,j,km1,bi,bj) @@ -186,9 +187,9 @@ SUBROUTINE GMREDI_CALC_PSI_BVP( DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx sigmaY_W = op5*( sigmaY(i,j,km1)+sigmaY(i,j,k) ) - & *maskS(i,j,k,bi,bj) + & *maskS(i,j,km1,bi,bj)*maskS(i,j,k,bi,bj) dSigmaDrS = op5*( sigmaR(i,j-1,k)+sigmaR(i,j,k) ) - & *maskS(i,j,k,bi,bj) + & *maskS(i,j,km1,bi,bj)*maskS(i,j,k,bi,bj) wkb_cS(i,j) = wkb_cS(i,j) & + SQRT(MAX( -dSigmaDrS, 0. _d 0 )) @@ -208,7 +209,8 @@ SUBROUTINE GMREDI_CALC_PSI_BVP( km1 = k-1 DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - IF ( maskS(i,j,k,bi,bj).NE.0. ) THEN + IF ( maskS(i,j,km1,bi,bj).NE.zeroRS .AND. + & maskS(i,j, k, bi,bj).NE.zeroRS ) THEN c2 = MAX( wkb_cS(i,j)*wkb_cS(i,j), GM_BVP_cHat2Min ) GM_a3d(i,j,k) = -c2*recip_drC(k) & *recip_drF(km1)*recip_hFacS(i,j,km1,bi,bj) diff --git a/pkg/gmredi/gmredi_calc_qgleith.F b/pkg/gmredi/gmredi_calc_qgleith.F index 151783a1a3..ceaff8bf5e 100644 --- a/pkg/gmredi/gmredi_calc_qgleith.F +++ b/pkg/gmredi/gmredi_calc_qgleith.F @@ -44,8 +44,6 @@ SUBROUTINE GMREDI_CALC_QGLEITH( #ifdef ALLOW_MOM_COMMON C !LOCAL VARIABLES: ==================================================== - _RL deepFac3 - _RL L3 _RS hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS r_hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -60,23 +58,21 @@ SUBROUTINE GMREDI_CALC_QGLEITH( _RL vrtDy(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL grdVrt, grdDiv _RL leithQG2fac + _RL deepFac3, L3, sqarg C i,j,k :: Loop counters INTEGER i,j,k CEOP C-- Initialise terms - IF (useFullLeith) THEN -C Uses correct calculation for gradients, but might not work on cube sphere - leithQG2fac = (viscC2LeithQG/pi)**6 - ELSE -C Uses approximate gradients, but works on cube sphere. No reason to use this -C unless `useFullLeith` fails for your setup. - leithQG2fac = (viscC2LeithQG/pi)**3 - ENDIF - - grdVrt = 0. _d 0 - grdDiv = 0. _d 0 + IF (useFullLeith) THEN +C Uses correct calculation for gradients, but might not work on cube sphere + leithQG2fac = (viscC2LeithQG/pi)**6 + ELSE +C Uses approximate gradients, but works on cube sphere. No reason to use this +C unless `useFullLeith` fails for your setup. + leithQG2fac = (viscC2LeithQG/pi)**3 + ENDIF DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -177,7 +173,7 @@ SUBROUTINE GMREDI_CALC_QGLEITH( & *maskInS(i,j,bi,bj) #endif C Average d/dx of stretching onto V-points to match vrtDX - & + halfRL*halfRL* + & + halfRL*halfRL* & ((stretching(i+1,j)-stretching(i,j)) & *recip_dxC(i+1,j,bi,bj)*recip_deepFacC(k) & + (stretching(i,j)-stretching(i-1,j)) @@ -186,9 +182,9 @@ SUBROUTINE GMREDI_CALC_QGLEITH( & *recip_dxC(i,j-1,bi,bj)*recip_deepFacC(k) & + (stretching(i,j-1)-stretching(i-1,j-1)) & *recip_dxC(i-1,j-1,bi,bj)*recip_deepFacC(k) - & )*maskS(i,j,k,bi,bj) + & )*maskS(i,j,k,bi,bj) #ifdef ALLOW_OBCS - & *maskInS(i,j,bi,bj) + & *maskInS(i,j,bi,bj) #endif ENDDO ENDDO @@ -202,7 +198,7 @@ SUBROUTINE GMREDI_CALC_QGLEITH( & *maskInW(i,j,bi,bj) #endif C Average d/dy of stretching onto U-points to match vrtDy - & + halfRL*halfRL* + & + halfRL*halfRL* & ((stretching(i,j+1)-stretching(i,j)) & *recip_dyC(i,j+1,bi,bj)*recip_deepFacC(k) & + (stretching(i,j)-stretching(i,j-1)) @@ -211,9 +207,9 @@ SUBROUTINE GMREDI_CALC_QGLEITH( & *recip_dyC(i-1,j+1,bi,bj)*recip_deepFacC(k) & + (stretching(i-1,j)-stretching(i-1,j-1)) & *recip_dyC(i-1,j,bi,bj)*recip_deepFacC(k) - & )*maskW(i,j,k,bi,bj) + & )*maskW(i,j,k,bi,bj) #ifdef ALLOW_OBCS - & *maskInW(i,j,bi,bj) + & *maskInW(i,j,bi,bj) #endif ENDDO ENDDO @@ -238,7 +234,14 @@ SUBROUTINE GMREDI_CALC_QGLEITH( & + (divDy(i,j+1)*divDy(i,j+1) & + divDy(i,j)*divDy(i,j) ) ) - LeithQG_K(i,j,k) = SQRT(leithQG2fac*(grdVrt+grdDiv))*L3 + sqarg = leithQG2fac*(grdVrt+grdDiv) +#ifdef ALLOW_AUTODIFF +C avoid derivative of SQRT(0) + IF (sqarg .GT. 0. _d 0) sqarg = SQRT(sqarg) +#else + sqarg = SQRT(sqarg) +#endif + LeithQG_K(i,j,k) = sqarg*L3 ELSE C but this approximation will work on cube (and differs by as much as 4X) diff --git a/pkg/gmredi/gmredi_calc_tensor.F b/pkg/gmredi/gmredi_calc_tensor.F index b16b2b7e0b..4c3f85fcbd 100644 --- a/pkg/gmredi/gmredi_calc_tensor.F +++ b/pkg/gmredi/gmredi_calc_tensor.F @@ -45,11 +45,9 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == C bi, bj :: tile indices C myTime :: Current time in simulation C myIter :: Current iteration number in simulation @@ -68,8 +66,9 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef ALLOW_GMREDI C !LOCAL VARIABLES: -C == Local variables == +C maskFk :: 2-D mask for vertical interface k (between level k-1 & k) INTEGER i,j,k + _RS maskFk(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeX(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dSigmaDx(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -80,7 +79,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( _RL ldd97_LrhoC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL ldd97_LrhoW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL ldd97_LrhoS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL Cspd, LrhoInf, LrhoSup, fCoriLoc + _RL Cspd, LrhoInf, LrhoSup, fCoriLoc, rDepth _RL Kgm_tmp, isopycK, bolus_K INTEGER kLow_W (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -99,8 +98,9 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef OLD_VISBECK_CALC _RL Ssq(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #else - _RL dSigmaH, dSigmaR - _RL Sloc, M2loc + INTEGER ks + _RL dSigmaH, dSigmaR, Sloc, rTop +c _RL M2loc #endif _RL recipMaxSlope _RL deltaH, integrDepth @@ -116,20 +116,16 @@ SUBROUTINE GMREDI_CALC_TENSOR( _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif #endif /* ALLOW_DIAGNOSTICS */ +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C kkey :: tape key (depends on levels and tiles) + INTEGER tkey, kkey +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igmkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_DIAGNOSTICS @@ -177,7 +173,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO i=1-OLx+1,sNx+OLx kLow_W(i,j) = MIN(kLowC(i-1,j,bi,bj),kLowC(i,j,bi,bj)) fCoriLoc = op5*(fCori(i-1,j,bi,bj)+fCori(i,j,bi,bj)) - IF (fCoriLoc.NE.0.) THEN + IF ( fCoriLoc.NE.zeroRL ) THEN ldd97_LrhoW(i,j) = Cspd/ABS(fCoriLoc) ELSE ldd97_LrhoW(i,j) = LrhoSup @@ -194,7 +190,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO i=1-OLx,sNx+OLx kLow_S(i,j) = MIN(kLowC(i,j-1,bi,bj),kLowC(i,j,bi,bj)) fCoriLoc = op5*(fCori(i,j-1,bi,bj)+fCori(i,j,bi,bj)) - IF (fCoriLoc.NE.0.) THEN + IF ( fCoriLoc.NE.zeroRL ) THEN ldd97_LrhoS(i,j) = Cspd/ABS(fCoriLoc) ELSE ldd97_LrhoS(i,j) = LrhoSup @@ -230,10 +226,8 @@ SUBROUTINE GMREDI_CALC_TENSOR( Kwx(i,j,k,bi,bj) = 0. _d 0 Kwy(i,j,k,bi,bj) = 0. _d 0 Kwz(i,j,k,bi,bj) = 0. _d 0 -# ifdef GM_NON_UNITY_DIAGONAL Kux(i,j,k,bi,bj) = 0. _d 0 Kvy(i,j,k,bi,bj) = 0. _d 0 -# endif # ifdef GM_EXTRA_DIAGONAL Kuz(i,j,k,bi,bj) = 0. _d 0 Kvz(i,j,k,bi,bj) = 0. _d 0 @@ -270,18 +264,16 @@ SUBROUTINE GMREDI_CALC_TENSOR( ENDDO ENDIF -#ifdef GM_K3D - IF (GM_useK3D) THEN -C Calculate the 3D diffusivity as per Bates et al. (2013) - CALL TIMER_START('GMREDI_K3D [GMREDI_CALC_TENSOR]', +#ifdef GM_BATES_K3D + IF (GM_useBatesK3d) THEN +C Calculate the 3D diffusivity as per Bates et al. (JPO, 2014) + CALL TIMER_START('GMREDI_CALC_BATES_K [GMREDI_CALC_TENSOR]', & myThid) - - CALL GMREDI_K3D( + CALL GMREDI_CALC_BATES_K( I iMin, iMax, jMin, jMax, I sigmaX, sigmaY, sigmaR, - I bi, bj, myTime, myThid) - - CALL TIMER_STOP('GMREDI_K3D [GMREDI_CALC_TENSOR]', + I bi, bj, myTime, myIter, myThid ) + CALL TIMER_STOP('GMREDI_CALC_BATES_K [GMREDI_CALC_TENSOR]', & myThid) ENDIF #endif @@ -289,16 +281,16 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef ALLOW_GM_LEITH_QG # ifdef ALLOW_AUTODIFF DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - GM_LeithQG_K(i,j,k,bi,bj) = 0. _d 0 - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_LeithQG_K(i,j,k,bi,bj) = 0. _d 0 ENDDO + ENDDO ENDDO # endif IF ( GM_useLeithQG ) THEN C Use Leith QG viscosity in GMRedi scheme - CALL GMREDI_CALC_QGLEITH( + CALL GMREDI_CALC_QGLEITH( O GM_LeithQG_K(1-OLx,1-OLy,1,bi,bj), I bi, bj, myTime, myIter, myThid ) ENDIF @@ -309,9 +301,9 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO k=Nr,2,-1 -#ifdef ALLOW_AUTODIFF DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx +#ifdef ALLOW_AUTODIFF SlopeX(i,j) = 0. _d 0 SlopeY(i,j) = 0. _d 0 dSigmaDx(i,j) = 0. _d 0 @@ -319,31 +311,32 @@ SUBROUTINE GMREDI_CALC_TENSOR( dSigmaDr(i,j) = 0. _d 0 SlopeSqr(i,j) = 0. _d 0 taperFct(i,j) = 0. _d 0 +#endif /* ALLOW_AUTODIFF */ + maskFk(i,j) = maskC(i,j,k-1,bi,bj)*maskC(i,j,k,bi,bj) ENDDO ENDDO -#endif /* ALLOW_AUTODIFF */ DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 C Gradient of Sigma at rVel points dSigmaDx(i,j)=op25*( sigmaX(i+1,j,k-1)+sigmaX(i,j,k-1) & +sigmaX(i+1,j, k )+sigmaX(i,j, k ) - & )*maskC(i,j,k,bi,bj) + & )*maskFk(i,j) dSigmaDy(i,j)=op25*( sigmaY(i,j+1,k-1)+sigmaY(i,j,k-1) & +sigmaY(i,j+1, k )+sigmaY(i,j, k ) - & )*maskC(i,j,k,bi,bj) + & )*maskFk(i,j) c dSigmaDr(i,j)=sigmaR(i,j,k) ENDDO ENDDO #ifdef GM_VISBECK_VARIABLE_K #ifndef OLD_VISBECK_CALC - IF ( GM_Visbeck_alpha.GT.0. .AND. + IF ( GM_Visbeck_alpha.GT.zeroRL .AND. & -rC(k-1).LT.GM_Visbeck_depth ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - dSigmaDr(i,j) = MIN( sigmaR(i,j,k), 0. _d 0 ) + dSigmaDr(i,j) = MAX( gravitySign*sigmaR(i,j,k), zeroRL ) ENDDO ENDDO @@ -355,22 +348,28 @@ SUBROUTINE GMREDI_CALC_TENSOR( C compute depth average from surface down to the bottom or C GM_Visbeck_depth, whatever is the shallower. + rTop = rF(1) DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( maskC(i,j,k,bi,bj).NE.0. ) THEN - integrDepth = -rC( kLowC(i,j,bi,bj) ) + IF ( maskFk(i,j).NE.zeroRS ) THEN + ks = kSurfC(i,j,bi,bj) +C- If dry-cell @ top (e.g., under ice-shelf), integrate over Visbeck_depth +C as relative to top solid BC (as below) or stop integral if deeper (in +C absolute sense) than Visbeck_depth (just comment "rTop =" line below): + rTop = Ro_surf(i,j,bi,bj) + integrDepth = rTop - rC( kLowC(i,j,bi,bj) ) C- in 2 steps to avoid mix of RS & RL type in min fct. arguments integrDepth = MIN( integrDepth, GM_Visbeck_depth ) C- to recover "old-visbeck" form with Visbeck_minDepth = Visbeck_depth integrDepth = MAX( integrDepth, GM_Visbeck_minDepth ) C Distance between level center above and the integration depth - deltaH = integrDepth + rC(k-1) + deltaH = integrDepth - rTop + rC(k-1) C If negative then we are below the integration level C (cannot be the case with 2 conditions on maskC & -rC(k-1)) C If positive we limit this to the distance from center above deltaH = MIN( deltaH, drC(k) ) C Now we convert deltaH to a non-dimensional fraction - deltaH = deltaH/( integrDepth+rC(1) ) + deltaH = deltaH/( integrDepth - rTop + rC(ks) ) C-- compute: ( M^2 * S )^1/2 (= S*N since S=M^2/N^2 ) C a 5 points average gives a more "homogeneous" formulation @@ -381,25 +380,23 @@ SUBROUTINE GMREDI_CALC_TENSOR( & + dSigmaDr(i,j-1) & + dSigmaDr(i,j+1) & )/( 4. _d 0 - & + maskC(i-1,j,k,bi,bj) - & + maskC(i+1,j,k,bi,bj) - & + maskC(i,j-1,k,bi,bj) - & + maskC(i,j+1,k,bi,bj) + & + maskFk(i-1,j) + & + maskFk(i+1,j) + & + maskFk(i,j-1) + & + maskFk(i,j+1) & ) dSigmaH = dSigmaDx(i,j)*dSigmaDx(i,j) & + dSigmaDy(i,j)*dSigmaDy(i,j) IF ( dSigmaH .GT. 0. _d 0 ) THEN dSigmaH = SQRT( dSigmaH ) C- compute slope, limited by GM_Visbeck_maxSlope: - IF ( -dSigmaR.GT.dSigmaH*recipMaxSlope ) THEN - Sloc = dSigmaH / ( -dSigmaR ) + IF ( dSigmaR.GT.dSigmaH*recipMaxSlope ) THEN + Sloc = dSigmaH / dSigmaR ELSE Sloc = GM_Visbeck_maxSlope ENDIF - M2loc = gravity*recip_rhoConst*dSigmaH -c SNloc = SQRT( Sloc*M2loc ) - N2loc = -gravity*recip_rhoConst*dSigmaR -c N2loc = -gravity*recip_rhoConst*dSigmaDr(i,j) +c M2loc = gravity*recip_rhoConst*dSigmaH + N2loc = gravity*recip_rhoConst*dSigmaR IF ( N2loc.GT.0. _d 0 ) THEN SNloc = Sloc*SQRT(N2loc) ELSE @@ -417,22 +414,32 @@ SUBROUTINE GMREDI_CALC_TENSOR( ENDIF #endif /* ndef OLD_VISBECK_CALC */ #endif /* GM_VISBECK_VARIABLE_K */ +C Z-Coords: change sign of vertical Sigma gradient (always downward) +C to match stratification sign (i.e., positive if stratified) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - dSigmaDr(i,j)=sigmaR(i,j,k) + dSigmaDr(i,j) = gravitySign*sigmaR(i,j,k) ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC - kkey = (igmkey-1)*Nr + k + kkey = k + (tkey-1)*Nr CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# ifndef GM_EXCLUDE_FM07_TAP CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# endif #endif /* ALLOW_AUTODIFF_TAMC */ +C set "rDepth" (= depth from the surface, in rUnit) for 'ldd97' tapering + IF ( usingZcoords ) THEN + rDepth = rF(1) - rF(k) + ELSE + rDepth = rF(k) - rF(Nr+1) + ENDIF C Calculate slopes for use in tensor, taper and/or clip CALL GMREDI_SLOPE_LIMIT( O SlopeX, SlopeY, @@ -440,18 +447,20 @@ SUBROUTINE GMREDI_CALC_TENSOR( U hTransLay, baseSlope, recipLambda, U dSigmaDr, I dSigmaDx, dSigmaDy, - I ldd97_LrhoC, locMixLayer, rF, + I ldd97_LrhoC, locMixLayer, rDepth, rF, I kLowC(1-OLx,1-OLy,bi,bj), - I k, bi, bj, myTime, myIter, myThid ) + I 3, k, bi, bj, myTime, myIter, myThid ) +#ifdef GMREDI_MASK_SLOPES DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 C Mask Iso-neutral slopes - SlopeX(i,j)=SlopeX(i,j)*maskC(i,j,k,bi,bj) - SlopeY(i,j)=SlopeY(i,j)*maskC(i,j,k,bi,bj) - SlopeSqr(i,j)=SlopeSqr(i,j)*maskC(i,j,k,bi,bj) + SlopeX(i,j) = SlopeX(i,j)*maskFk(i,j) + SlopeY(i,j) = SlopeY(i,j)*maskFk(i,j) + SlopeSqr(i,j) = SlopeSqr(i,j)*maskFk(i,j) ENDDO ENDDO +#endif #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE SlopeX(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte @@ -461,12 +470,14 @@ SUBROUTINE GMREDI_CALC_TENSOR( CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -C Components of Redi/GM tensor +C Components of Redi/GM tensor, first step with just the slope: +C P-Coords: since slope comp. have same sign as in Z-coord, need to +C flip sign of extra-diagonal component (see manual sec. 8.4.1.2.4) DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - Kwx(i,j,k,bi,bj)= SlopeX(i,j)*taperFct(i,j) - Kwy(i,j,k,bi,bj)= SlopeY(i,j)*taperFct(i,j) - Kwz(i,j,k,bi,bj)= SlopeSqr(i,j)*taperFct(i,j) + Kwx(i,j,k,bi,bj) = -gravitySign*SlopeX(i,j)*taperFct(i,j) + Kwy(i,j,k,bi,bj) = -gravitySign*SlopeY(i,j)*taperFct(i,j) + Kwz(i,j,k,bi,bj) = SlopeSqr(i,j)*taperFct(i,j) ENDDO ENDDO @@ -477,29 +488,29 @@ SUBROUTINE GMREDI_CALC_TENSOR( C- note (jmc) : moved here since only used in VISBECK_VARIABLE_K C but do not know if *taperFct (or **2 ?) is necessary - Ssq(i,j)=SlopeSqr(i,j)*taperFct(i,j) + Ssq(i,j)=SlopeSqr(i,j)*taperFct(i,j) C-- Depth average of M^2/N^2 * N C Calculate terms for mean Richardson number C which is used in the "variable K" parameterisaton. C Distance between interface above layer and the integration depth - deltaH=abs(GM_Visbeck_depth)-abs(rF(k)) + deltaH=abs(GM_Visbeck_depth)-abs(rF(k)) C If positive we limit this to the layer thickness - integrDepth = drF(k) - deltaH=min(deltaH,integrDepth) + integrDepth = drF(k) + deltaH=min(deltaH,integrDepth) C If negative then we are below the integration level - deltaH=max(deltaH, 0. _d 0) + deltaH=max(deltaH, 0. _d 0) C Now we convert deltaH to a non-dimensional fraction - deltaH=deltaH/GM_Visbeck_depth - - IF ( Ssq(i,j).NE.0. .AND. dSigmaDr(i,j).NE.0. ) THEN - N2loc = -gravity*recip_rhoConst*dSigmaDr(i,j) - SNloc = SQRT(Ssq(i,j)*N2loc ) - VisbeckK(i,j,bi,bj) = VisbeckK(i,j,bi,bj) - & +deltaH*GM_Visbeck_alpha - & *GM_Visbeck_length*GM_Visbeck_length*SNloc - ENDIF + deltaH=deltaH/GM_Visbeck_depth + + IF ( Ssq(i,j).NE.0. .AND. dSigmaDr(i,j).NE.0. ) THEN + N2loc = gravity*recip_rhoConst*dSigmaDr(i,j) + SNloc = SQRT(Ssq(i,j)*N2loc ) + VisbeckK(i,j,bi,bj) = VisbeckK(i,j,bi,bj) + & +deltaH*GM_Visbeck_alpha + & *GM_Visbeck_length*GM_Visbeck_length*SNloc + ENDIF ENDDO ENDDO @@ -511,10 +522,10 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef GM_VISBECK_VARIABLE_K #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=igmkey, byte=isbyte +CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif - IF ( GM_Visbeck_alpha.GT.0. ) THEN -C- Limit range that KapGM can take + IF ( GM_Visbeck_alpha.GT.zeroRL ) THEN +C- Limit range that Kappa-GM can take DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 VisbeckK(i,j,bi,bj)= @@ -523,23 +534,19 @@ SUBROUTINE GMREDI_CALC_TENSOR( ENDDO ENDDO ENDIF -cph( NEW #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=igmkey, byte=isbyte +CADJ STORE VisbeckK(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif -cph) #endif /* GM_VISBECK_VARIABLE_K */ -C- express the Tensor in term of Diffusivity (= m**2 / s ) +C Update components of Redi/GM tensor, second step: multiply by Diffusivity DO k=1,Nr #ifdef ALLOW_AUTODIFF_TAMC - kkey = (igmkey-1)*Nr + k -# if (defined (GM_NON_UNITY_DIAGONAL) || \ - defined (GM_VISBECK_VARIABLE_K)) +C to avoid few minor recomputations (with KAPREDI_CONTROL, KAPGM_CONTROL ?) + kkey = k + (tkey-1)*Nr CADJ STORE Kwx(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE Kwy(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE Kwz(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -# endif #endif km1 = MAX(k-1,1) isopycK = GM_isopycK @@ -548,21 +555,15 @@ SUBROUTINE GMREDI_CALC_TENSOR( & *(GM_bolFac1d(km1)+GM_bolFac1d(k))*op5 DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - Kgm_tmp = kapRedi(i,j,k,bi,bj) -# else - Kgm_tmp = op5*(kapRedi(i,j,k,bi,bj)+kapRedi(i,j,km1,bi,bj)) -# endif +#ifdef GM_READ_K3D_REDI + Kgm_tmp = op5*( GM_inpK3dRedi(i,j,km1,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else Kgm_tmp = isopycK*GM_isoFac2d(i,j,bi,bj) #endif -#ifdef ALLOW_KAPGM_CONTROL -# ifdef ALLOW_KAPGM_CONTROL_OLD - & + GM_skewflx*kapGM(i,j,k,bi,bj) -# else - & + GM_skewflx*op5*(kapGM(i,j,k,bi,bj)+kapGM(i,j,km1,bi,bj)) -# endif +#ifdef GM_READ_K3D_GM + & + GM_skewflx*op5*( GM_inpK3dGM(i,j,km1,bi,bj) + & + GM_inpK3dGM(i,j,k,bi,bj) ) #else & + GM_skewflx*bolus_K*GM_bolFac2d(i,j,bi,bj) #endif @@ -570,23 +571,20 @@ SUBROUTINE GMREDI_CALC_TENSOR( & + VisbeckK(i,j,bi,bj)*(1. _d 0 + GM_skewflx) #endif #ifdef ALLOW_GM_LEITH_QG - & + op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i,j,km1,bi,bj) ) + & + op5*( GM_LeithQG_K(i,j,km1,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) ) & *(1. _d 0 + GM_skewflx) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & + op5*(K3D(i,j,k,bi,bj)+K3D(i,j,km1,bi,bj)) - & *(1. _d 0 + GM_skewflx) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*( GM_BatesK3d(i,j,km1,bi,bj) + & + GM_BatesK3d(i,j,k,bi,bj) ) + & *(1. _d 0 + GM_skewflx) #endif Kwx(i,j,k,bi,bj)= Kgm_tmp*Kwx(i,j,k,bi,bj) Kwy(i,j,k,bi,bj)= Kgm_tmp*Kwy(i,j,k,bi,bj) -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - Kwz(i,j,k,bi,bj)= ( kapRedi(i,j,k,bi,bj) -# else - Kwz(i,j,k,bi,bj)= ( op5*(kapRedi(i,j,k,bi,bj) - & +kapRedi(i,j,km1,bi,bj)) -# endif +#ifdef GM_READ_K3D_REDI + Kwz(i,j,k,bi,bj)= ( op5*( GM_inpK3dRedi(i,j,km1,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else Kwz(i,j,k,bi,bj)= ( isopycK*GM_isoFac2d(i,j,bi,bj) #endif @@ -594,11 +592,12 @@ SUBROUTINE GMREDI_CALC_TENSOR( & + VisbeckK(i,j,bi,bj) #endif #ifdef ALLOW_GM_LEITH_QG - & + op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i,j,km1,bi,bj) ) + & + op5*( GM_LeithQG_K(i,j,km1,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) ) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & + op5*(K3D(i,j,k,bi,bj)+K3D(i,j,km1,bi,bj)) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*( GM_BatesK3d(i,j,km1,bi,bj) + & + GM_BatesK3d(i,j,k,bi,bj) ) #endif & )*Kwz(i,j,k,bi,bj) ENDDO @@ -626,23 +625,23 @@ SUBROUTINE GMREDI_CALC_TENSOR( I myThid ) ELSE #endif -#ifndef GM_K3D_PASSIVE - IF (.NOT. GM_useK3D) THEN +#ifndef GM_BATES_PASSIVE + IF ( .NOT.GM_useBatesK3d ) THEN #endif -C If using GM_K3D PsiX and PsiY are calculated in gmredi_k3d +C If using BatesK3d PsiX and PsiY are calculated in GMREDI_CALC_BATES_K CALL GMREDI_CALC_PSI_B( I bi, bj, iMin, iMax, jMin, jMax, I sigmaX, sigmaY, sigmaR, I ldd97_LrhoW, ldd97_LrhoS, I myThid ) -#ifndef GM_K3D_PASSIVE +#ifndef GM_BATES_PASSIVE ENDIF #endif #ifdef GM_BOLUS_BVP ENDIF #endif ENDIF -#endif +#endif /* GM_BOLUS_ADVEC */ #ifndef GM_EXCLUDE_SUBMESO IF ( GM_useSubMeso .AND. GM_AdvForm ) THEN @@ -693,7 +692,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( maskp1 = 1. _d 0 IF (k.GE.Nr) maskp1 = 0. _d 0 #ifdef ALLOW_AUTODIFF_TAMC - kkey = (igmkey-1)*Nr + k + kkey = k + (tkey-1)*Nr #endif C Gradient of Sigma at U points @@ -706,21 +705,27 @@ SUBROUTINE GMREDI_CALC_TENSOR( & )*_maskW(i,j,k,bi,bj) dSigmaDr(i,j)=op25*( sigmaR(i-1,j, k )+sigmaR(i,j, k ) & +(sigmaR(i-1,j,kp1)+sigmaR(i,j,kp1))*maskp1 - & )*_maskW(i,j,k,bi,bj) + & )*_maskW(i,j,k,bi,bj)*gravitySign ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte -CADJ STORE locMixLayer(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# ifndef GM_EXCLUDE_FM07_TAP CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# endif #endif /* ALLOW_AUTODIFF_TAMC */ +C set "rDepth" (= depth from the surface, in rUnit) for 'ldd97' tapering + IF ( usingZcoords ) THEN + rDepth = rF(1) - rC(k) + ELSE + rDepth = rC(k) - rF(Nr+1) + ENDIF C Calculate slopes for use in tensor, taper and/or clip CALL GMREDI_SLOPE_LIMIT( O SlopeX, SlopeY, @@ -728,12 +733,11 @@ SUBROUTINE GMREDI_CALC_TENSOR( U hTransLay, baseSlope, recipLambda, U dSigmaDr, I dSigmaDx, dSigmaDy, - I ldd97_LrhoW, locMixLayer, rC, + I ldd97_LrhoW, locMixLayer, rDepth, rC, I kLow_W, - I k, bi, bj, myTime, myIter, myThid ) + I 1, k, bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE SlopeSqr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ @@ -742,24 +746,21 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 Kux(i,j,k,bi,bj) = -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - & ( kapRedi(i,j,k,bi,bj) -# else - & ( op5*(kapRedi(i,j,k,bi,bj)+kapRedi(i-1,j,k,bi,bj)) -# endif +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i-1,j,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj)) + & + op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*(GM_LeithQG_K(i,j,k,bi,bj)+GM_LeithQG_K(i-1,j,k,bi,bj)) + & + op5*(GM_LeithQG_K(i-1,j,k,bi,bj)+GM_LeithQG_K(i,j,k,bi,bj)) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i-1,j,k,bi,bj)) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*(GM_BatesK3d(i-1,j,k,bi,bj)+GM_BatesK3d(i,j,k,bi,bj)) #endif & )*taperFct(i,j) ENDDO @@ -781,45 +782,45 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE SlopeX(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte -CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( GM_ExtraDiag ) THEN DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - Kuz(i,j,k,bi,bj) = -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - & ( kapRedi(i,j,k,bi,bj) -# else - & ( op5*(kapRedi(i,j,k,bi,bj)+kapRedi(i-1,j,k,bi,bj)) -# endif + Kuz(i,j,k,bi,bj) = -gravitySign* +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i-1,j,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif -#ifdef ALLOW_KAPGM_CONTROL -# ifdef ALLOW_KAPGM_CONTROL_OLD - & - GM_skewflx*kapGM(i,j,k,bi,bj) -# else - & - GM_skewflx*op5*(kapGM(i,j,k,bi,bj)+kapGM(i-1,j,k,bi,bj)) -# endif +#ifdef GM_READ_K3D_GM + & - GM_skewflx*op5*( GM_inpK3dGM(i-1,j,k,bi,bj) + & + GM_inpK3dGM(i,j,k,bi,bj) ) #else & - GM_skewflx*GM_background_K*GM_bolFac1d(k) & *op5*(GM_bolFac2d(i-1,j,bi,bj)+GM_bolFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj))*GM_advect + & + op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj))*GM_advect #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i-1,j,k,bi,bj) )*GM_advect + & + op5*( GM_LeithQG_K(i-1,j,k,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) )*GM_advect #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i-1,j,k,bi,bj))*GM_advect +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*( GM_BatesK3d(i-1,j,k,bi,bj) + & + GM_BatesK3d(i,j,k,bi,bj) )*GM_advect #endif & )*SlopeX(i,j)*taperFct(i,j) ENDDO ENDDO +c ELSE +c DO j=1-OLy+1,sNy+OLy-1 +c DO i=1-OLx+1,sNx+OLx-1 +c Kuz(i,j,k,bi,bj) = 0. _d 0 +c ENDDO +c ENDDO ENDIF #endif /* GM_EXTRA_DIAGONAL */ @@ -829,28 +830,25 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO j=1,sNy DO i=1,sNx+1 C store in tmp1k Kuz_Redi -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - tmp1k(i,j) = ( kapRedi(i,j,k,bi,bj) -# else - tmp1k(i,j) = ( op5*(kapRedi(i-1,j,k,bi,bj) - & +kapRedi(i,j,k,bi,bj)) -# endif + tmp1k(i,j) = -gravitySign* +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i-1,j,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else - tmp1k(i,j) = ( GM_isopycK*GM_isoFac1d(k) + & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i-1,j,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj)) + & + op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i-1,j,k,bi,bj) ) + & + op5*( GM_LeithQG_K(i-1,j,k,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) ) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i-1,j,k,bi,bj)) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*(GM_BatesK3d(i-1,j,k,bi,bj)+GM_BatesK3d(i,j,k,bi,bj)) #endif - & )*SlopeX(i,j)*taperFct(i,j) + & )*SlopeX(i,j)*taperFct(i,j) ENDDO ENDDO DO j=1,sNy @@ -858,19 +856,19 @@ SUBROUTINE GMREDI_CALC_TENSOR( C- Vertical gradients interpolated to U points dTdz = ( & +recip_drC(k)* - & ( maskC(i-1,j,k,bi,bj)* + & ( maskC(i-1,j,km1,bi,bj)*maskC(i-1,j,k,bi,bj)* & (theta(i-1,j,km1,bi,bj)-theta(i-1,j,k,bi,bj)) - & +maskC( i ,j,k,bi,bj)* + & +maskC( i ,j,km1,bi,bj)*maskC( i ,j,k,bi,bj)* & (theta( i ,j,km1,bi,bj)-theta( i ,j,k,bi,bj)) & ) & +recip_drC(kp1)* - & ( maskC(i-1,j,kp1,bi,bj)* + & ( maskC(i-1,j,k,bi,bj)*maskC(i-1,j,kp1,bi,bj)* & (theta(i-1,j,k,bi,bj)-theta(i-1,j,kp1,bi,bj)) - & +maskC( i ,j,kp1,bi,bj)* + & +maskC( i ,j,k,bi,bj)*maskC( i ,j,kp1,bi,bj)* & (theta( i ,j,k,bi,bj)-theta( i ,j,kp1,bi,bj)) & ) ) * 0.25 _d 0 - tmp1k(i,j) = dyG(i,j,bi,bj)*drF(k) - & * _hFacW(i,j,k,bi,bj) + tmp1k(i,j) = dyG(i,j,bi,bj) * deepFacC(k) + & * drF(k) * _hFacW(i,j,k,bi,bj) & * tmp1k(i,j) * dTdz ENDDO ENDDO @@ -922,7 +920,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( maskp1 = 1. _d 0 IF (k.GE.Nr) maskp1 = 0. _d 0 #ifdef ALLOW_AUTODIFF_TAMC - kkey = (igmkey-1)*Nr + k + kkey = k + (tkey-1)*Nr #endif DO j=1-OLy+1,sNy+OLy-1 @@ -934,7 +932,7 @@ SUBROUTINE GMREDI_CALC_TENSOR( & *_maskS(i,j,k,bi,bj) dSigmaDr(i,j)=op25*( sigmaR(i,j-1, k )+sigmaR(i,j, k ) & +(sigmaR(i,j-1,kp1)+sigmaR(i,j,kp1))*maskp1 - & )*_maskS(i,j,k,bi,bj) + & )*_maskS(i,j,k,bi,bj)*gravitySign ENDDO ENDDO @@ -942,11 +940,19 @@ SUBROUTINE GMREDI_CALC_TENSOR( CADJ STORE dSigmaDx(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDy(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE dSigmaDr(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# ifndef GM_EXCLUDE_FM07_TAP CADJ STORE baseSlope(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE hTransLay(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte CADJ STORE recipLambda(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +# endif #endif /* ALLOW_AUTODIFF_TAMC */ +C set "rDepth" (= depth from the surface, in rUnit) for 'ldd97' tapering + IF ( usingZcoords ) THEN + rDepth = rF(1) - rC(k) + ELSE + rDepth = rC(k) - rF(Nr+1) + ENDIF C Calculate slopes for use in tensor, taper and/or clip CALL GMREDI_SLOPE_LIMIT( O SlopeX, SlopeY, @@ -954,41 +960,34 @@ SUBROUTINE GMREDI_CALC_TENSOR( U hTransLay, baseSlope, recipLambda, U dSigmaDr, I dSigmaDx, dSigmaDy, - I ldd97_LrhoS, locMixLayer, rC, + I ldd97_LrhoS, locMixLayer, rDepth, rC, I kLow_S, - I k, bi, bj, myTime, myIter, myThid ) + I 2, k, bi, bj, myTime, myIter, myThid ) -cph( #ifdef ALLOW_AUTODIFF_TAMC -cph( -CADJ STORE taperfct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte -cph) +CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -cph) #ifdef GM_NON_UNITY_DIAGONAL c IF ( GM_nonUnitDiag ) THEN DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 Kvy(i,j,k,bi,bj) = -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - & ( kapRedi(i,j,k,bi,bj) -# else - & ( op5*(kapRedi(i,j,k,bi,bj)+kapRedi(i,j-1,k,bi,bj)) -# endif +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i,j-1,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj)) + & + op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*(GM_LeithQG_K(i,j,k,bi,bj)+GM_LeithQG_K(i,j-1,k,bi,bj)) + & + op5*(GM_LeithQG_K(i,j-1,k,bi,bj)+GM_LeithQG_K(i,j,k,bi,bj)) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i,j-1,k,bi,bj)) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*(GM_BatesK3d(i,j-1,k,bi,bj)+GM_BatesK3d(i,j,k,bi,bj)) #endif & )*taperFct(i,j) ENDDO @@ -1010,45 +1009,45 @@ SUBROUTINE GMREDI_CALC_TENSOR( #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE SlopeY(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte -CADJ STORE taperFct(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( GM_ExtraDiag ) THEN DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - Kvz(i,j,k,bi,bj) = -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - & ( kapRedi(i,j,k,bi,bj) -# else - & ( op5*(kapRedi(i,j,k,bi,bj)+kapRedi(i,j-1,k,bi,bj)) -# endif + Kvz(i,j,k,bi,bj) = -gravitySign* +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i,j-1,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif -#ifdef ALLOW_KAPGM_CONTROL -# ifdef ALLOW_KAPGM_CONTROL_OLD - & - GM_skewflx*kapGM(i,j,k,bi,bj) -# else - & - GM_skewflx*op5*(kapGM(i,j,k,bi,bj)+kapGM(i,j-1,k,bi,bj)) -# endif +#ifdef GM_READ_K3D_GM + & - GM_skewflx*op5*( GM_inpK3dGM(i,j-1,k,bi,bj) + & + GM_inpK3dGM(i,j,k,bi,bj) ) #else & - GM_skewflx*GM_background_K*GM_bolFac1d(k) & *op5*(GM_bolFac2d(i,j-1,bi,bj)+GM_bolFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj))*GM_advect + & + op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj))*GM_advect #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i,j-1,k,bi,bj) )*GM_advect + & + op5*( GM_LeithQG_K(i,j-1,k,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) )*GM_advect #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i,j-1,k,bi,bj))*GM_advect +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*( GM_BatesK3d(i,j-1,k,bi,bj) + & + GM_BatesK3d(i,j,k,bi,bj) )*GM_advect #endif & )*SlopeY(i,j)*taperFct(i,j) ENDDO ENDDO +c ELSE +c DO j=1-OLy+1,sNy+OLy-1 +c DO i=1-OLx+1,sNx+OLx-1 +c Kvz(i,j,k,bi,bj) = 0. _d 0 +c ENDDO +c ENDDO ENDIF #endif /* GM_EXTRA_DIAGONAL */ @@ -1058,28 +1057,25 @@ SUBROUTINE GMREDI_CALC_TENSOR( DO j=1,sNy+1 DO i=1,sNx C store in tmp1k Kvz_Redi -#ifdef ALLOW_KAPREDI_CONTROL -# ifdef ALLOW_KAPREDI_CONTROL_OLD - tmp1k(i,j) = ( kapRedi(i,j,k,bi,bj) -# else - tmp1k(i,j) = ( op5*(kapRedi(i,j-1,k,bi,bj) - & +kapRedi(i,j,k,bi,bj)) -# endif + tmp1k(i,j) = -gravitySign* +#ifdef GM_READ_K3D_REDI + & ( op5*( GM_inpK3dRedi(i,j-1,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) #else - tmp1k(i,j) = ( GM_isopycK*GM_isoFac1d(k) + & ( GM_isopycK*GM_isoFac1d(k) & *op5*(GM_isoFac2d(i,j-1,bi,bj)+GM_isoFac2d(i,j,bi,bj)) #endif #ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj)) + & + op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj)) #endif #ifdef ALLOW_GM_LEITH_QG - & +op5*( GM_LeithQG_K(i,j,k,bi,bj) - & + GM_LeithQG_K(i,j-1,k,bi,bj) ) + & + op5*( GM_LeithQG_K(i,j-1,k,bi,bj) + & + GM_LeithQG_K(i,j,k,bi,bj) ) #endif -#if ((defined GM_K3D) && ! (defined GM_K3D_PASSIVE)) - & +op5*(K3D(i,j,k,bi,bj)+K3D(i,j-1,k,bi,bj)) +#if ((defined GM_BATES_K3D) && ! (defined GM_BATES_PASSIVE)) + & + op5*(GM_BatesK3d(i,j-1,k,bi,bj)+GM_BatesK3d(i,j,k,bi,bj)) #endif - & )*SlopeY(i,j)*taperFct(i,j) + & )*SlopeY(i,j)*taperFct(i,j) ENDDO ENDDO DO j=1,sNy+1 @@ -1087,19 +1083,19 @@ SUBROUTINE GMREDI_CALC_TENSOR( C- Vertical gradients interpolated to U points dTdz = ( & +recip_drC(k)* - & ( maskC(i,j-1,k,bi,bj)* + & ( maskC(i,j-1,km1,bi,bj)*maskC(i,j-1,k,bi,bj)* & (theta(i,j-1,km1,bi,bj)-theta(i,j-1,k,bi,bj)) - & +maskC(i, j ,k,bi,bj)* + & +maskC(i, j ,km1,bi,bj)*maskC(i, j ,k,bi,bj)* & (theta(i, j ,km1,bi,bj)-theta(i, j ,k,bi,bj)) & ) & +recip_drC(kp1)* - & ( maskC(i,j-1,kp1,bi,bj)* + & ( maskC(i,j-1,kp1,bi,bj)*maskC(i,j-1,k,bi,bj)* & (theta(i,j-1,k,bi,bj)-theta(i,j-1,kp1,bi,bj)) - & +maskC(i, j ,kp1,bi,bj)* + & +maskC(i, j ,kp1,bi,bj)*maskC(i, j ,k,bi,bj)* & (theta(i, j ,k,bi,bj)-theta(i, j ,kp1,bi,bj)) & ) ) * 0.25 _d 0 - tmp1k(i,j) = dxG(i,j,bi,bj)*drF(k) - & * _hFacS(i,j,k,bi,bj) + tmp1k(i,j) = dxG(i,j,bi,bj) * deepFacC(k) + & * drF(k) * _hFacS(i,j,k,bi,bj) & * tmp1k(i,j) * dTdz ENDDO ENDDO @@ -1112,9 +1108,44 @@ SUBROUTINE GMREDI_CALC_TENSOR( #endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */ +#ifndef GM_NON_UNITY_DIAGONAL + DO k=1,Nr + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + Kux(i,j,k,bi,bj) = ( +#ifdef GM_READ_K3D_REDI + & op5*( GM_inpK3dRedi(i-1,j,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) +#else + & GM_isopycK +#endif +#ifdef GM_VISBECK_VARIABLE_K + & + op5*(VisbeckK(i-1,j,bi,bj)+VisbeckK(i,j,bi,bj)) +#endif + & ) + ENDDO + ENDDO + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + Kvy(i,j,k,bi,bj) = ( +#ifdef GM_READ_K3D_REDI + & op5*( GM_inpK3dRedi(i,j-1,k,bi,bj) + & + GM_inpK3dRedi(i,j,k,bi,bj) ) +#else + & GM_isopycK +#endif +#ifdef GM_VISBECK_VARIABLE_K + & + op5*(VisbeckK(i,j-1,bi,bj)+VisbeckK(i,j,bi,bj)) +#endif + & ) + ENDDO + ENDDO + ENDDO +#endif /* ndef GM_NON_UNITY_DIAGONAL */ + #ifdef ALLOW_TIMEAVE C-- Time-average - IF ( taveFreq.GT.0. ) THEN + IF ( taveFreq.GT.zeroRL ) THEN CALL TIMEAVE_CUMULATE( GM_Kwx_T, Kwx, Nr, & deltaTClock, bi, bj, myThid ) @@ -1195,9 +1226,15 @@ SUBROUTINE GMREDI_CALC_TENSOR_DUMMY( DO k=1,Nr DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - Kwx(i,j,k,bi,bj) = 0.0 - Kwy(i,j,k,bi,bj) = 0.0 - Kwz(i,j,k,bi,bj) = 0.0 + Kwx(i,j,k,bi,bj) = 0. _d 0 + Kwy(i,j,k,bi,bj) = 0. _d 0 + Kwz(i,j,k,bi,bj) = 0. _d 0 + Kux(i,j,k,bi,bj) = 0. _d 0 + Kvy(i,j,k,bi,bj) = 0. _d 0 +# ifdef GM_EXTRA_DIAGONAL + Kuz(i,j,k,bi,bj) = 0. _d 0 + Kvz(i,j,k,bi,bj) = 0. _d 0 +# endif ENDDO ENDDO ENDDO diff --git a/pkg/gmredi/gmredi_calc_urms.F b/pkg/gmredi/gmredi_calc_urms.F index 5605366935..fdc00a2f8a 100644 --- a/pkg/gmredi/gmredi_calc_urms.F +++ b/pkg/gmredi/gmredi_calc_urms.F @@ -10,7 +10,7 @@ SUBROUTINE GMREDI_CALC_URMS( C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE GMREDI_CALC_URMS -C | o Calculate the vertical structure of the rms eddy +C | o Calculate the vertical structure of the rms eddy C | velocity based on baroclinic modal decomposition C *==========================================================* C \ev @@ -30,30 +30,30 @@ SUBROUTINE GMREDI_CALC_URMS( INTEGER iMin,iMax,jMin,jMax INTEGER bi, bj INTEGER myThid - _RL N2( 1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL urms(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - -#ifdef GM_K3D + _RL N2( 1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL urms(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + +#ifdef GM_BATES_K3D C !LOCAL VARIABLES: C == Local variables == INTEGER i,j,k C bbs :: bottom boundary condition (set to zero for now) C const :: a constant for each water column - _RL bbc( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) - _RL const( 1-Olx:sNx+Olx,1-Oly:sNy+Oly) + _RL bbc( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL const( 1-OLx:sNx+OLx,1-OLy:sNy+OLy) C Constant zero bottom boundary condition - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx bbc(i,j) = zeroRL ENDDO ENDDO C Fit urms to the first baroclinic mode using the SBC and BBC C We need at least two cells to do this - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx k = kLowC(i,j,bi,bj) IF (k.GT.2) THEN const(i,j) = (urms(i,j,k)-urms(i,j,1)) @@ -62,13 +62,13 @@ SUBROUTINE GMREDI_CALC_URMS( const(i,j) = zeroRL ENDIF ENDDO - ENDDO + ENDDO DO k=2,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx IF (k.LT.kLowC(i,j,bi,bj)) THEN - urms(i,j,k) = urms(i,j,1) + + urms(i,j,k) = urms(i,j,1) + & const(i,j)*(modesC(1,i,j,k,bi,bj)-modesC(1,i,j,1,bi,bj)) ELSE urms(i,j,k)=zeroRL @@ -78,14 +78,13 @@ SUBROUTINE GMREDI_CALC_URMS( ENDDO C Land, so, we fill with zeros - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx if (kLowC(i,j,bi,bj).EQ.0) urms(i,j,1) = zeroRL ENDDO ENDDO - -#endif /* GM_K3D */ +#endif /* GM_BATES_K3D */ RETURN END diff --git a/pkg/gmredi/gmredi_check.F b/pkg/gmredi/gmredi_check.F index ef8c8d4839..bc7514bb5c 100644 --- a/pkg/gmredi/gmredi_check.F +++ b/pkg/gmredi/gmredi_check.F @@ -13,7 +13,6 @@ SUBROUTINE GMREDI_CHECK( myThid ) C | SUBROUTINE GMREDI_CHECK C | o Check consistency with model configuration C *==========================================================* -C *==========================================================* C \ev C !USES: @@ -33,16 +32,18 @@ SUBROUTINE GMREDI_CHECK( myThid ) #endif C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C myThid :: my Thread Id number INTEGER myThid #ifdef ALLOW_GMREDI +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + C !LOCAL VARIABLES: -C === Local variables === C msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf - INTEGER errCount + INTEGER iL, errCount CEOP #ifdef ALLOW_PTRACERS INTEGER iTr @@ -138,6 +139,29 @@ SUBROUTINE GMREDI_CHECK( myThid ) errCount = errCount + 1 ENDIF +#ifndef GM_READ_K3D_REDI + IF ( GM_K3dRediFile.NE.' ' ) THEN + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: GM_K3dRediFile is set in data.gmredi' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: without #define GM_READ_K3D_REDI' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif +#ifndef GM_READ_K3D_GM + IF ( GM_K3dGMFile.NE.' ' ) THEN + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: GM_K3dGMFile is set in data.gmredi' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: without #define GM_READ_K3D_GM' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif + #ifndef GM_VISBECK_VARIABLE_K C Make sure we are not trying to use something that is unavailable IF ( GM_Visbeck_alpha.NE.0. ) THEN @@ -164,50 +188,69 @@ SUBROUTINE GMREDI_CHECK( myThid ) ENDIF #endif -#ifdef GM_K3D +#ifdef GM_BATES_K3D # ifndef HAVE_LAPACK - WRITE(msgBuf, '(A)') - & 'Must use CPP option HAVE_LAPACK when using GM_K3D' - CALL PRINT_ERROR( msgBuf, myThid ) - errCount = errCount + 1 +c IF ( GM_useBatesK3d ) THEN + WRITE(msgBuf, '(A)') + & 'Must use CPP option HAVE_LAPACK when using BatesK3d' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +c ENDIF # endif - - IF ( GM_useK3D) THEN - CALL WRITE_0D_L( GM_useK3D, INDEX_NONE, - & 'GM_useK3D =', ' /* if TRUE => use K3D for diffusivity */') - IF ( GM_K3D_use_constK ) THEN - CALL WRITE_0D_L( GM_K3D_use_constK, INDEX_NONE, - & 'GM_K3D_use_constK =', - & ' /* if TRUE => Uses a constant K for'// + IF ( GM_useBatesK3d ) THEN + CALL WRITE_0D_L( GM_useBatesK3d, INDEX_NONE, + & 'GM_useBatesK3d =', + & ' /* if TRUE => use BatesK3d for GM diffusivity */') + IF ( GM_Bates_use_constK ) THEN + CALL WRITE_0D_L( GM_Bates_use_constK, INDEX_NONE, + & 'GM_Bates_use_constK =', + & ' /* if TRUE => Uses a constant K for'// & ' the eddy transport closure */') - CALL WRITE_0D_L( GM_K3D_smooth, INDEX_NONE, - & 'GM_K3D_smooth =', + CALL WRITE_0D_L( GM_Bates_smooth, INDEX_NONE, + & 'GM_Bates_smooth =', & ' /* if TRUE => Expands in terms of baroclinic modes */') - IF ( GM_K3D_smooth ) THEN - CALL WRITE_0D_I( GM_K3D_NModes, INDEX_NONE, - & 'GM_K3D_NModes =', + IF ( GM_Bates_smooth ) THEN + CALL WRITE_0D_I( GM_Bates_NModes, INDEX_NONE, + & 'GM_Bates_NModes =', & ' /* Number of modes for expansion */') ENDIF ELSE - CALL WRITE_0D_I( GM_K3D_NModes, INDEX_NONE, - & 'GM_K3D_NModes =', + CALL WRITE_0D_I( GM_Bates_NModes, INDEX_NONE, + & 'GM_Bates_NModes =', & ' /* Number of modes for expansion */') ENDIF ENDIF -C Make sure that we use K3D with the advective form only. +C Make sure that we use BatesK3d with the advective form only. C The skew form is not presently supported. - IF ( GM_useK3D .AND. .NOT. GM_AdvForm) THEN - WRITE(msgBuf,'(A)') - & 'GMREDI_CHECK: GM_useK3D=.TRUE. but GM_AdvForm=.FALSE.' + IF ( GM_useBatesK3d .AND. .NOT.GM_AdvForm ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: ', + & 'GM_useBatesK3d=.TRUE. but GM_AdvForm=.FALSE.' CALL PRINT_ERROR( msgBuf, myThid ) WRITE(msgBuf,'(A)') - & 'GMREDI_CHECK: To use GM_useK3D set GM_AdvForm=.TRUE.' + & 'GMREDI_CHECK: To use BatesK3d set GM_AdvForm=.TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF + IF ( GM_useBatesK3d .AND. deepAtmosphere ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: GM_useBatesK3d', + & ' not yet fixed for deep geometry (deepAtmosphere=T)' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF -#endif /* GM_K3D */ +#else /* GM_BATES_K3D */ +C Make sure we are not trying to use something that is unavailable + IF ( GM_useBatesK3d ) THEN + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: GM_useBatesK3d is set to True in data.gmredi' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'GMREDI_CHECK: without #define GM_BATES_K3D' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif /* GM_BATES_K3D */ #ifndef GM_EXTRA_DIAGONAL C Make sure we are not trying to use some arrays that are unavailable @@ -283,17 +326,12 @@ SUBROUTINE GMREDI_CHECK( myThid ) IF ( GM_InMomAsStress ) THEN #ifdef ALLOW_EDDYPSI - IF (.NOT. GM_AdvForm) THEN - WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: ', - & 'GM_InMomAsStress=.TRUE. but GM_AdvForm=.FALSE.' - CALL PRINT_ERROR( msgBuf, myThid ) - errCount = errCount + 1 - ENDIF - IF (.NOT. GM_useK3D) THEN - WRITE(msgBuf,'(3A)') - & 'GMREDI_CHECK: Using GM_InMomAsStress and not', - & ' GM_useK3D. GM_InMomAsStress=.true. has only been', - & ' tested with GM_K3D=.true.' + IF ( .NOT.GM_useBatesK3d ) THEN + WRITE(msgBuf,'(3A)') 'GMREDI_CHECK: ', + & 'Using GM_InMomAsStress and not GM_useBatesK3d. ', + & 'GM_InMomAsStress=T has only been tested with BatesK3d' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) ENDIF #else /* ALLOW_EDDYPSI */ WRITE(msgBuf,'(2A)') @@ -310,6 +348,88 @@ SUBROUTINE GMREDI_CHECK( myThid ) errCount = errCount + 1 ENDIF + IF ( usingPcoords ) THEN +C- Some GM pieces of code have not been fixed to work in Pressure-coordinates + IF ( GM_taper_scheme.EQ.'fm07' .OR. + & GM_taper_scheme.EQ.'stableGmAdjTap' ) THEN + iL = ILNBLNK(GM_taper_scheme) + WRITE(msgBuf,'(3A)') 'GMREDI_CHECK: GM_taper_scheme "', + & GM_taper_scheme(1:iL), '" not yet fixed for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_useBVP ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: GM_useBVP', + & ' code not yet fixed for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_Visbeck_alpha.NE.zeroRL ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: Visbeck', + & 'scheme not yet fixed for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_useBatesK3d ) THEN + WRITE(msgBuf,'(2A,I3)') '** WARNING ** GMREDI_CHECK: ', + & 'GM_useBatesK3d potentially unsafe with P-Coordinate' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( GM_useLeithQG ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: GM_useLeithQG', + & ' code not yet fixed for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_useSubMeso ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: GM_useSubMeso', + & ' not yet fixed for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDIF + + IF ( useShelfIce .OR. topoFile.NE.' ' ) THEN +C- Some GM options are likely to not work when some dry grid cells are found +C near the top (e.g., under ice-shelf). This might change as more pieces of +C code get fixed (e.g., once Mixed-Layer depth is fixed) but for now safer +C to just stop here if it is the case. + IF ( GM_taper_scheme.EQ.'ldd97' .OR. + & GM_taper_scheme.EQ.'fm07' ) THEN + iL = ILNBLNK(GM_taper_scheme) + WRITE(msgBuf,'(3A)') 'GMREDI_CHECK: GM_taper_scheme "', + & GM_taper_scheme(1:iL), '" not yet fixed for dry cell @ top' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_useSubMeso ) THEN + WRITE(msgBuf,'(2A)') 'GMREDI_CHECK: GM_useSubMeso', + & ' not yet fixed for dry cell @ top' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( GM_useBatesK3d ) THEN + WRITE(msgBuf,'(2A,I3)') '** WARNING ** GMREDI_CHECK: ', + & 'GM_useBatesK3d potentially unsafe with dry cell @ top' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( GM_Visbeck_alpha.NE.zeroRL ) THEN + WRITE(msgBuf,'(2A,I3)') '** Warning ** GMREDI_CHECK: ', + & 'Visbeck scheme not fully tested with dry cell @ top' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( GM_useLeithQG ) THEN + WRITE(msgBuf,'(2A,I3)') '** Warning ** GMREDI_CHECK: ', + & 'GM_useLeithQG not fully tested with dry cell @ top' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF +C- end special check for dry cell @ top + ENDIF + #ifdef ALLOW_PTRACERS IF ( GM_AdvForm .AND. .NOT.GM_AdvSeparate & .AND. usePTRACERS ) THEN diff --git a/pkg/gmredi/gmredi_diagnostics_fill.F b/pkg/gmredi/gmredi_diagnostics_fill.F index 647a06ff3d..468bda2d7f 100644 --- a/pkg/gmredi/gmredi_diagnostics_fill.F +++ b/pkg/gmredi/gmredi_diagnostics_fill.F @@ -1,15 +1,22 @@ #include "GMREDI_OPTIONS.h" -CStartOfInterface +CBOP +C !ROUTINE: GMREDI_DIAGNOSTICS_FILL +C !INTERFACE: SUBROUTINE GMREDI_DIAGNOSTICS_FILL( - I bi, bj, myThid ) + I bi, bj, myThid ) + +C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE GMREDI_DIAGNOSTICS_FILL C | o fill GM-Redi diagnostics C *==========================================================* -C | note: formerly was part of S/R GMREDI_CALC_TENSOR +C | Note: formerly was part of S/R GMREDI_CALC_TENSOR C | and was isolated in this S/R for TAF reasons C *==========================================================* +C \ev + +C !USES: IMPLICIT NONE C == Global variables == @@ -19,19 +26,21 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( #include "GRID.h" #include "GMREDI.h" -C == Routine arguments == -C +C !INPUT/OUTPUT PARAMETERS: +C bi, bj :: tile indices +C myThid :: my Thread Id number INTEGER bi,bj INTEGER myThid + +#ifdef ALLOW_GMREDI #ifdef ALLOW_DIAGNOSTICS +C !FUNCTIONS: LOGICAL DIAGNOSTICS_IS_ON EXTERNAL DIAGNOSTICS_IS_ON #endif /* ALLOW_DIAGNOSTICS */ -CEndOfInterface +CEOP -#ifdef ALLOW_GMREDI - -C == Local variables == +C !LOCAL VARIABLES: #ifdef ALLOW_EDDYPSI INTEGER i,j,k _RL tmpfld3dloc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) @@ -39,7 +48,6 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN @@ -48,10 +56,8 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( CALL DIAGNOSTICS_FILL(VisbeckK,'GM_VisbK',0,1,1,bi,bj,myThid) ENDIF #endif -#ifdef GM_NON_UNITY_DIAGONAL CALL DIAGNOSTICS_FILL(Kux,'GM_Kux ',0,Nr,1,bi,bj,myThid) CALL DIAGNOSTICS_FILL(Kvy,'GM_Kvy ',0,Nr,1,bi,bj,myThid) -#endif #ifdef GM_EXTRA_DIAGONAL IF ( GM_ExtraDiag ) THEN CALL DIAGNOSTICS_FILL(Kuz,'GM_Kuz ',0,Nr,1,bi,bj,myThid) @@ -71,8 +77,8 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( #ifdef ALLOW_EDDYPSI IF ( DIAGNOSTICS_IS_ON('GMEdTauX',myThid) ) THEN DO k = 1, Nr - DO j = 1, sny - DO i = 1, snx + DO j = 1, sNy + DO i = 1, sNx tmpfld3dloc(i,j,k,bi,bj) = & 0.5*rhoConst*fCori(i,j,bi,bj)* & Kwy(i,j,k,bi,bj) @@ -85,8 +91,8 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( c IF ( DIAGNOSTICS_IS_ON('GMEdTauY',myThid) ) THEN DO k = 1, Nr - DO j = 1, sny - DO i = 1, snx + DO j = 1, sNy + DO i = 1, sNx tmpfld3dloc(i,j,k,bi,bj) = & -0.5*rhoConst*fCori(i,j,bi,bj)* & Kwx(i,j,k,bi,bj) @@ -97,9 +103,9 @@ SUBROUTINE GMREDI_DIAGNOSTICS_FILL( & 0,Nr,1,bi,bj,myThid) ENDIF #endif /* ALLOW_EDDYPSI */ -#ifdef GM_K3D - IF (GM_useK3D) THEN - CALL DIAGNOSTICS_FILL(K3D, 'GM_K3D ',0,Nr,0,1,1,myThid) +#ifdef GM_BATES_K3D + IF (GM_useBatesK3d) THEN + CALL DIAGNOSTICS_FILL(GM_BatesK3d,'GM_BaK ',0,Nr,0,1,1,myThid) ENDIF #endif diff --git a/pkg/gmredi/gmredi_diagnostics_impl.F b/pkg/gmredi/gmredi_diagnostics_impl.F index 51e90ff327..63c454556b 100644 --- a/pkg/gmredi/gmredi_diagnostics_impl.F +++ b/pkg/gmredi/gmredi_diagnostics_impl.F @@ -58,7 +58,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_IMPL( & *(theta(i,j,k,bi,bj)-theta(i,j,k-1,bi,bj)) & * maskC(i,j,k,bi,bj)*maskC(i,j,k-1,bi,bj) tmpVar(i,j) = tmpVar(i,j)*Kwz(i,j,k,bi,bj) - & *rA(i,j,bi,bj) + & *rA(i,j,bi,bj)*deepFac2F(k) ENDDO ENDDO CALL DIAGNOSTICS_FILL( tmpVar, 'GM_KwzTz', diff --git a/pkg/gmredi/gmredi_diagnostics_init.F b/pkg/gmredi/gmredi_diagnostics_init.F index 733b1117c9..fea88c304d 100644 --- a/pkg/gmredi/gmredi_diagnostics_init.F +++ b/pkg/gmredi/gmredi_diagnostics_init.F @@ -251,8 +251,8 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) #endif -#ifdef GM_K3D - diagName = 'GM_K3D ' +#ifdef GM_BATES_K3D + diagName = 'GM_BaK ' diagTitle = '3D diffusivity' diagUnits = 'm**2/s ' diagCode = 'SM P MR ' @@ -268,7 +268,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) - diagName = 'GM_K3D_T' + diagName = 'GM_BaK_T' diagTitle = '3D Redi diffusivity' diagUnits = 'm**2/s ' diagCode = 'SM P MR ' @@ -360,7 +360,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) diagName = 'GM_RURMS' diagTitle = - I 'Mixing length for calculating u_rms: MIN(Rdef,GM_K3D_Rmax)' + I 'Mixing length for calculating u_rms: MIN(Rdef,Bates_Rmax)' diagUnits = 'm ' diagCode = 'SM P M1 ' diagMate = diagNum @@ -384,7 +384,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) diagName = 'GM_SUPP' - diagTitle = 'Suppression Factor for K3D' + diagTitle = 'Suppression Factor for BatesK3d' diagUnits = 'none ' diagCode = 'SM P MR ' diagMate = diagNum @@ -457,7 +457,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) diagName = 'GM_TFLXX' diagTitle = 'Zonal thickness flux' - diagUnits = '1/(m*s) ' + diagUnits = '1/(m*s) ' diagCode = 'UU MR ' diagMate = diagNum CALL DIAGNOSTICS_ADDTOLIST( diagNum, @@ -543,7 +543,7 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) -#ifdef GM_K3D_PASSIVE +#ifdef GM_BATES_PASSIVE diagName = 'GM_PSTAR' diagTitle = 'Diagnosed bolus streamfunction: V component' diagUnits = 'm**2/s ' @@ -564,6 +564,21 @@ SUBROUTINE GMREDI_DIAGNOSTICS_INIT( myThid ) #endif c ENDIF +# ifdef ALLOW_AUTODIFF + diagName = 'ADJkapgm' + diagTitle = 'dJ/dKgm: Sensitivity to GM Intensity' + diagUnits = 'dJ/d[m^2/s]' + diagCode = 'SMRA MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJkapre' + diagTitle = 'dJ/dKredi: Sensitivity to Redi Coefficient' + diagUnits = 'dJ/d[m^2/s]' + diagCode = 'SMRA MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +# endif #endif /* ALLOW_DIAGNOSTICS */ diff --git a/pkg/gmredi/gmredi_init_fixed.F b/pkg/gmredi/gmredi_init_fixed.F index f31fe39485..4a8cfab63f 100644 --- a/pkg/gmredi/gmredi_init_fixed.F +++ b/pkg/gmredi/gmredi_init_fixed.F @@ -42,8 +42,8 @@ SUBROUTINE GMREDI_INIT_FIXED( myThid ) C-- Initialize arrays in common blocks : DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-Oly,sNy+OLy - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx GM_isoFac2d(i,j,bi,bj) = 1. _d 0 GM_bolFac2d(i,j,bi,bj) = 1. _d 0 ENDDO @@ -83,6 +83,51 @@ SUBROUTINE GMREDI_INIT_FIXED( myThid ) C- Everyone else must wait for arrays to be loaded _BARRIER +#ifdef GM_READ_K3D_REDI +C-- Initialize 3-D Isopycnal diffusivity in common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_inpK3dRedi(i,j,k,bi,bj) = GM_isopycK + & *GM_isoFac1d(k)*GM_isoFac2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +C-- Read 3-D Isopycnal diffusivity from file + IF ( GM_K3dRediFile .NE. ' ' ) THEN + CALL READ_FLD_XYZ_RL( GM_K3dRediFile, ' ', + & GM_inpK3dRedi, 0, myThid ) + CALL EXCH_XYZ_RL( GM_inpK3dRedi, myThid ) + CALL WRITE_FLD_XYZ_RL( 'KapRedi', ' ', GM_inpK3dRedi, 0, myThid ) + ENDIF +#endif +#ifdef GM_READ_K3D_GM +C-- Initialize 3-D Thickness diffusivity in common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_inpK3dGM(i,j,k,bi,bj) = GM_background_K + & *GM_bolFac1d(k)*GM_bolFac2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +C-- Read 3-D Thickness diffusivity from file + IF ( GM_K3dGMFile .NE. ' ' ) THEN + CALL READ_FLD_XYZ_RL( GM_K3dGMFile, ' ', + & GM_inpK3dGM, 0, myThid ) + CALL EXCH_XYZ_RL( GM_inpK3dGM, myThid ) + CALL WRITE_FLD_XYZ_RL( 'KapGM', ' ', GM_inpK3dGM, 0, myThid ) + ENDIF +#endif + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_MNC diff --git a/pkg/gmredi/gmredi_init_varia.F b/pkg/gmredi/gmredi_init_varia.F index f274f33efb..47d6f09316 100644 --- a/pkg/gmredi/gmredi_init_varia.F +++ b/pkg/gmredi/gmredi_init_varia.F @@ -1,4 +1,7 @@ #include "GMREDI_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: GMREDI_INIT_VARIA @@ -24,35 +27,88 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) #include "GMREDI_TAVE.h" C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === C myThid :: my Thread Id number INTEGER myThid CEOP #ifdef ALLOW_GMREDI - C !LOCAL VARIABLES: -C === Local variables === INTEGER i,j,k,bi,bj +C-- Initialise again 3-D control variables (AD-compiler need to see this) +#if (defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI ) +C-- Initialize 3-D Isopycnal diffusivity in common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_inpK3dRedi(i,j,k,bi,bj) = GM_isopycK + & *GM_isoFac1d(k)*GM_isoFac2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +#endif /* ALLOW_KAPREDI_CONTROL and GM_READ_K3D_REDI */ +#if (defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM ) +C-- Initialize 3-D Thickness diffusivity in common block + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + GM_inpK3dGM(i,j,k,bi,bj) = GM_background_K + & *GM_bolFac1d(k)*GM_bolFac2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO +#endif /* ALLOW_KAPGM_CONTROL and GM_READ_K3D_GM */ + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#ifdef ALLOW_AUTODIFF +C- Note: To simplify dependency & avoid recomputations, when compiling +C pkg/autodiff, we always call GMREDI_INIT_VARIA to initialise control +C variables (as done above) without condition on useGMRedi. +C Therefore, in this case, the "If useGMRedi" is added back here: + IF ( useGMRedi ) THEN +#endif + +#if (defined ALLOW_KAPREDI_CONTROL && defined GM_READ_K3D_REDI ) +C-- Read (again) 3-D Isopycnal diffusivity from file + IF ( GM_K3dRediFile .NE. ' ' ) THEN + CALL READ_FLD_XYZ_RL( GM_K3dRediFile, ' ', + & GM_inpK3dRedi, 0, myThid ) + CALL EXCH_XYZ_RL( GM_inpK3dRedi, myThid ) + ENDIF +#endif /* ALLOW_KAPREDI_CONTROL and GM_READ_K3D_REDI */ +#if (defined ALLOW_KAPGM_CONTROL && defined GM_READ_K3D_GM ) +C-- Read (again) 3-D Thickness diffusivity from file + IF ( GM_K3dGMFile .NE. ' ' ) THEN + CALL READ_FLD_XYZ_RL( GM_K3dGMFile, ' ', + & GM_inpK3dGM, 0, myThid ) + CALL EXCH_XYZ_RL( GM_inpK3dGM, myThid ) + ENDIF +#endif /* ALLOW_KAPGM_CONTROL and GM_READ_K3D_GM */ + DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) C Initialize arrays in common blocks : DO k=1,Nr - DO j=1-Oly,sNy+OLy - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx Kwx(i,j,k,bi,bj) = 0. _d 0 Kwy(i,j,k,bi,bj) = 0. _d 0 Kwz(i,j,k,bi,bj) = 0. _d 0 + Kux(i,j,k,bi,bj) = 0. _d 0 + Kvy(i,j,k,bi,bj) = 0. _d 0 #ifdef GM_EXTRA_DIAGONAL Kuz(i,j,k,bi,bj) = 0. _d 0 Kvz(i,j,k,bi,bj) = 0. _d 0 #endif -#ifdef GM_NON_UNITY_DIAGONAL - Kux(i,j,k,bi,bj) = 0. _d 0 - Kvy(i,j,k,bi,bj) = 0. _d 0 -#endif #ifdef GM_BOLUS_ADVEC GM_PsiX(i,j,k,bi,bj) = 0. _d 0 GM_PsiY(i,j,k,bi,bj) = 0. _d 0 @@ -63,8 +119,8 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) #ifdef ALLOW_GM_LEITH_QG GM_LeithQG_K(i,j,k,bi,bj) = 0. _d 0 #endif -#ifdef GM_K3D - K3D(i,j,k,bi,bj) = 0. _d 0 +#ifdef GM_BATES_K3D + GM_BatesK3d(i,j,k,bi,bj) = 0. _d 0 #endif ENDDO ENDDO @@ -89,6 +145,7 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) ENDDO ENDDO +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- write GM scaling factors to file: IF ( GM_iso1dFile .NE. ' ' ) THEN CALL WRITE_GLVEC_RS( 'GM_isoFac1d', ' ', GM_isoFac1d, @@ -104,25 +161,23 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) IF ( GM_bol2dFile .NE. ' ' ) THEN CALL WRITE_FLD_XY_RS( 'GM_bolFac2d',' ',GM_bolFac2d,-1,myThid ) ENDIF -#endif /* ALLOW_GMREDI */ - -#ifdef GM_K3D +#ifdef GM_BATES_K3D IF (.NOT.( startTime.EQ.baseTime .AND. nIter0.EQ.0 & .AND. pickupSuff.EQ.' ' )) THEN - IF (GM_useK3D) CALL GMREDI_READ_PICKUP( niter0, myThid ) + IF (GM_useBatesK3d) CALL GMREDI_READ_PICKUP( nIter0, myThid ) ENDIF #endif -#ifdef GM_K3D +#ifdef GM_BATES_K3D C This is put here, but really should be in gmredi_init_fixed.F. The problem is that C fCori, fCoriCos, etc are not initialized when gmredi_init_fixed.F is called. To be fixed. C Computing beta = df/dy IF ( selectCoriMap.EQ.1 ) THEN DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx gradf(i,j,bi,bj) = beta ENDDO ENDDO @@ -131,8 +186,8 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) ELSEIF ( selectCoriMap.EQ.2 ) THEN DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx gradf(i,j,bi,bj) = recip_rSphere*fCoriCos(i,j,bi,bj) ENDDO ENDDO @@ -141,8 +196,8 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) ELSE DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-Oly+1,sNy+Oly-1 - DO i=1-Olx+1,sNx+Olx-1 + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 gradf(i,j,bi,bj) = .5 _d 0*angleSinC(i,j,bi,bj)*( & (fCori(i+1,j,bi,bj)-fCori(i ,j,bi,bj))*recip_dxC(i+1,j,bi,bj) & +(fCori(i ,j,bi,bj)-fCori(i-1,j,bi,bj))*recip_dxC(i,j,bi,bj) ) @@ -156,7 +211,12 @@ SUBROUTINE GMREDI_INIT_VARIA( myThid ) ENDDO ENDIF CALL EXCH_XY_RL( gradf, myThid) +#endif /* GM_BATES_K3D */ + +#ifdef ALLOW_AUTODIFF + ENDIF #endif +#endif /* ALLOW_GMREDI */ RETURN END diff --git a/pkg/gmredi/gmredi_output.F b/pkg/gmredi/gmredi_output.F index 14734ca02f..dbf0a19670 100644 --- a/pkg/gmredi/gmredi_output.F +++ b/pkg/gmredi/gmredi_output.F @@ -26,7 +26,6 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) #include "GMREDI_TAVE.h" C !INPUT PARAMETERS: -C == Routine arguments == C myTime :: Current time of simulation ( s ) C myIter :: Iteration number C myThid :: my Thread Id number @@ -41,11 +40,7 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -C == Local variables == -#if ( defined (ALLOW_TIMEAVE) || \ - defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) CHARACTER*(10) suff -#endif #ifdef ALLOW_TIMEAVE INTEGER bi, bj #endif @@ -53,8 +48,6 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) CHARACTER*(1) pf #endif -#if ( defined (GM_NON_UNITY_DIAGONAL) || defined (GM_EXTRA_DIAGONAL) ) - IF ( DIFFERENT_MULTIPLE(diagFreq,myTime,deltaTClock) & ) THEN @@ -64,10 +57,8 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) ELSE CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) ENDIF -#ifdef GM_NON_UNITY_DIAGONAL CALL WRITE_FLD_XYZ_RL( 'GM_Kux.',suff,Kux,myIter,myThid) CALL WRITE_FLD_XYZ_RL( 'GM_Kvy.',suff,Kvy,myIter,myThid) -#endif #ifdef GM_EXTRA_DIAGONAL IF (GM_ExtraDiag) THEN CALL WRITE_FLD_XYZ_RL( 'GM_Kuz.',suff,Kuz,myIter,myThid) @@ -87,10 +78,8 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) CALL MNC_CW_RL_W_S('D','gm_inst',0,0,'T',myTime,myThid) CALL MNC_CW_SET_UDIM('gm_inst', 0, myThid) CALL MNC_CW_I_W_S('I','gm_inst',0,0,'iter',myIter,myThid) -#ifdef GM_NON_UNITY_DIAGONAL CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kux',Kux,myThid) CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kvy',Kvy,myThid) -#endif #ifdef GM_EXTRA_DIAGONAL IF (GM_ExtraDiag) THEN CALL MNC_CW_RL_W(pf,'gm_inst',0,0,'Kuz',Kuz,myThid) @@ -98,12 +87,10 @@ SUBROUTINE GMREDI_OUTPUT( myTime, myIter, myThid ) ENDIF #endif ENDIF -#endif +#endif /* ALLOW_MNC */ ENDIF -#endif /* GM_NON_UNITY_DIAGONAL || GM_EXTRA_DIAGONAL */ - #ifdef ALLOW_TIMEAVE C Dump files and restart average computation if needed IF ( DIFFERENT_MULTIPLE( taveFreq, myTime, deltaTClock ) diff --git a/pkg/gmredi/gmredi_read_pickup.F b/pkg/gmredi/gmredi_read_pickup.F index deeb56f311..909be5ff17 100644 --- a/pkg/gmredi/gmredi_read_pickup.F +++ b/pkg/gmredi/gmredi_read_pickup.F @@ -23,7 +23,7 @@ SUBROUTINE GMREDI_READ_PICKUP( myIter, myThid ) INTEGER myIter INTEGER myThid -#ifdef GM_K3D +#ifdef GM_BATES_K3D C !LOCAL VARIABLES: C fn :: character buffer for creating filename @@ -150,7 +150,7 @@ SUBROUTINE GMREDI_READ_PICKUP( myIter, myThid ) ENDDO C Western Mode - DO n=1,GM_K3D_NModes + DO n=1,GM_Bates_NModes WRITE(fieldname, '(A,I2.2,A)') 'mode',n,'W' CALL READ_MFLDS_3D_RL( fieldname, vec, & nm, fp, Nr, myIter, myThid ) @@ -169,7 +169,7 @@ SUBROUTINE GMREDI_READ_PICKUP( myIter, myThid ) ENDDO C Southern Mode - DO n=1,GM_K3D_NModes + DO n=1,GM_Bates_NModes WRITE(fieldname, '(A,I2.2,A)') 'mode',n,'S' CALL READ_MFLDS_3D_RL( fieldname, vec, & nm, fp, Nr, myIter, myThid ) @@ -225,7 +225,7 @@ SUBROUTINE GMREDI_READ_PICKUP( myIter, myThid ) C-- Update overlap regions: C CALL EXCH_3D_RL( myPa_StatScal1, Nr, myThid ) -#endif /* GM_K3D */ +#endif /* GM_BATES_K3D */ RETURN END diff --git a/pkg/gmredi/gmredi_readparms.F b/pkg/gmredi/gmredi_readparms.F index ba2754de36..7bd534aa12 100644 --- a/pkg/gmredi/gmredi_readparms.F +++ b/pkg/gmredi/gmredi_readparms.F @@ -33,8 +33,14 @@ SUBROUTINE GMREDI_READPARMS( myThid ) C === Local variables === C msgBuf :: Informational/error message buffer C iUnit :: Work variable for IO unit number +C nRetired :: Counter used to trap "retired" parameters in namelist. +C GM_isopycK3dFile :: input file for 3.D GM_isopycK +C GM_background_K3dFile :: input file for 3.D GM_background_K CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER iUnit + INTEGER nRetired + CHARACTER*(MAX_LEN_FNAM) GM_isopycK3dFile + CHARACTER*(MAX_LEN_FNAM) GM_background_K3dFile CEOP C-- GM/Redi parameter @@ -47,31 +53,34 @@ SUBROUTINE GMREDI_READPARMS( myThid ) & GM_background_K, & GM_iso2dFile, GM_iso1dFile, & GM_bol2dFile, GM_bol1dFile, - & GM_background_K3dFile, - & GM_isopycK3dFile, + & GM_K3dRediFile, GM_K3dGMFile, + & GM_background_K3dFile, GM_isopycK3dFile, & GM_taper_scheme, & GM_maxSlope, & GM_Kmin_horiz, & GM_Small_Number, GM_slopeSqCutoff, + & GM_Scrit, GM_Sd, + & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay, + & GM_UseBVP, GM_BVP_cMin, GM_BVP_ModeNumber, + & GM_useSubMeso, subMeso_Ceff, subMeso_invTau, + & subMeso_LfMin, subMeso_Lmax, & GM_Visbeck_alpha, GM_Visbeck_length, & GM_Visbeck_depth, & GM_Visbeck_minDepth, GM_Visbeck_maxSlope, & GM_Visbeck_minVal_K, GM_Visbeck_maxVal_K, - & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay, - & GM_Scrit, GM_Sd, - & GM_MNC, - & GM_UseBVP, GM_BVP_cMin, GM_BVP_ModeNumber, - & GM_useSubMeso, subMeso_Ceff, subMeso_invTau, - & subMeso_LfMin, subMeso_Lmax, GM_K3D_b1, - & GM_K3D_gamma, GM_useK3D, GM_K3D_vecFreq, - & GM_K3D_EadyMinDepth, GM_K3D_EadyMaxDepth, - & GM_K3D_Lambda, GM_K3D_smallK, GM_K3D_surfK, - & GM_K3D_maxC, GM_K3D_minCori, GM_K3D_minN2, - & GM_K3D_surfMinDepth, GM_maxK3D, GM_K3D_Rmax, - & GM_K3D_constK, GM_K3D_use_constK, GM_K3D_smooth, - & GM_K3D_beta_eq_0, GM_K3D_Rmin, GM_K3D_ThickSheet, - & GM_K3D_constRedi, GM_K3D_minRenorm, - & GM_K3D_maxRenorm, GM_useLeithQG + & GM_useBatesK3d, GM_Bates_smooth, GM_Bates_use_constK, + & GM_Bates_beta_eq_0, GM_Bates_ThickSheet, + & GM_Bates_surfK, GM_Bates_constRedi, + & GM_Bates_gamma, GM_Bates_b1, + & GM_Bates_EadyMinDepth, GM_Bates_EadyMaxDepth, + & GM_Bates_Lambda, GM_Bates_smallK, GM_Bates_maxK, + & GM_Bates_constK, GM_Bates_maxC, + & GM_Bates_Rmax, GM_Bates_Rmin, + & GM_Bates_minCori, GM_Bates_minN2, + & GM_Bates_surfMinDepth, GM_Bates_vecFreq, + & GM_Bates_minRenorm, GM_Bates_maxRenorm, + & GM_useLeithQG, + & GM_MNC C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -108,23 +117,14 @@ SUBROUTINE GMREDI_READPARMS( myThid ) GM_iso1dFile = ' ' GM_bol2dFile = ' ' GM_bol1dFile = ' ' - GM_background_K3dFile = ' ' - GM_isopycK3dFile = ' ' + GM_K3dRediFile = ' ' + GM_K3dGMFile = ' ' GM_useLeithQG = .FALSE. C-- Default values GM/Redi I/O control c GM_dumpFreq = -1. c GM_taveFreq = -1. -C-- Default values Visbeck - GM_Visbeck_alpha = 0. _d 0 - GM_Visbeck_length = 200. _d 3 - GM_Visbeck_depth = 1000. _d 0 - GM_Visbeck_minDepth = 0. _d 0 - GM_Visbeck_maxSlope = UNSET_RL - GM_Visbeck_minVal_K = 0. _d 0 - GM_Visbeck_maxVal_K = 2500. _d 0 - C-- Default values BVP GM_UseBVP = .FALSE. GM_BVP_ModeNumber = 1 @@ -137,31 +137,45 @@ SUBROUTINE GMREDI_READPARMS( myThid ) subMeso_Ceff = 7.0 _d -2 subMeso_Lmax = 110. _d +3 -C-- Default values for K3D - GM_useK3D = .FALSE. - GM_K3D_beta_eq_0 = .TRUE. - GM_K3D_use_constK= .FALSE. - GM_K3D_ThickSheet= .FALSE. - GM_K3D_smooth = .TRUE. - GM_K3D_surfK = .FALSE. - GM_K3D_constRedi = .FALSE. - GM_K3D_constK = 1000.0 - GM_K3D_gamma = 1.0 - GM_K3D_b1 = 4.0 - GM_K3D_EadyMinDepth = 50.0 - GM_K3D_EadyMaxDepth = 1000.0 - GM_K3D_Lambda = 1.0 - GM_K3D_smallK = 100.0 - GM_K3D_maxC = 0.15 - GM_maxK3D = 20e3 - GM_K3D_Rmin = 30e3 - GM_K3D_Rmax = 75e3 - GM_K3D_minCori = zeroRL - GM_K3D_minN2 = 1.0e-8 - GM_K3D_surfMinDepth = 100.0 - GM_K3D_vecFreq = 2592000.0 - GM_K3D_minRenorm = oneRL - GM_K3D_maxRenorm = 20.0 +C-- Default values Visbeck + GM_Visbeck_alpha = 0. _d 0 + GM_Visbeck_length = 200. _d 3 + GM_Visbeck_depth = 1000. _d 0 + GM_Visbeck_minDepth = 0. _d 0 + GM_Visbeck_maxSlope = UNSET_RL + GM_Visbeck_minVal_K = 0. _d 0 + GM_Visbeck_maxVal_K = 2500. _d 0 + +C-- Default values for BatesK3d + GM_useBatesK3d = .FALSE. + GM_Bates_smooth = .TRUE. + GM_Bates_use_constK= .FALSE. + GM_Bates_beta_eq_0 = .TRUE. + GM_Bates_ThickSheet= .FALSE. + GM_Bates_surfK = .FALSE. + GM_Bates_constRedi = .FALSE. + GM_Bates_gamma = 1.0 + GM_Bates_b1 = 4.0 + GM_Bates_EadyMinDepth = 50.0 + GM_Bates_EadyMaxDepth = 1000. + GM_Bates_Lambda = 1.0 + GM_Bates_smallK = 100. + GM_Bates_maxK = 20. _d 3 + GM_Bates_constK = 1000. + GM_Bates_maxC = 0.15 _d 0 + GM_Bates_Rmax = 75. _d 3 + GM_Bates_Rmin = 30. _d 3 + GM_Bates_minCori = zeroRL + GM_Bates_minN2 = 1. _d -8 + GM_Bates_surfMinDepth = 100. + GM_Bates_vecFreq = 2592000. + GM_Bates_minRenorm = oneRL + GM_Bates_maxRenorm = 20. + +C-- Initialise retired parameters to unlikely value + nRetired = 0 + GM_background_K3dFile = ' ' + GM_isopycK3dFile = ' ' WRITE(msgBuf,'(A)') ' GM_READPARMS: opening data.gmredi' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, @@ -221,6 +235,37 @@ SUBROUTINE GMREDI_READPARMS( myThid ) #endif GM_MDSIO = (.NOT. GM_MNC) .OR. outputTypesInclusive +C Check for retired parameters + IF ( GM_background_K3dFile .NE. ' ' ) THEN + nRetired = nRetired+1 + WRITE(msgBuf,'(2A)') 'S/R GMREDI_READPARMS: ', + & '"GM_background_K3dFile" has been replaced by "GM_K3dGMFile"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'S/R GMREDI_READPARMS: ', + & 'and is no longer allowed in file "data.gmredi"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( GM_isopycK3dFile .NE. ' ' ) THEN + nRetired = nRetired+1 + WRITE(msgBuf,'(2A)') 'S/R GMREDI_READPARMS: ', + & '"GM_isopycK3dFile" has been replaced by "GM_K3dRediFile"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'S/R GMREDI_READPARMS: ', + & 'and is no longer allowed in file "data.gmredi"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + + IF ( nRetired .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') 'S/R GMREDI_READPARMS: ', + & 'Error reading parameter file "data.gmredi":' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(I4,A)') nRetired, + & ' out of date parameters were found in the namelist' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R GMREDI_READPARMS' + ENDIF + _END_MASTER(myThid) C-- Everyone else must wait for the parameters to be loaded diff --git a/pkg/gmredi/gmredi_residual_flow.F b/pkg/gmredi/gmredi_residual_flow.F index e53b48e199..baf41d08c6 100644 --- a/pkg/gmredi/gmredi_residual_flow.F +++ b/pkg/gmredi/gmredi_residual_flow.F @@ -44,13 +44,17 @@ SUBROUTINE GMREDI_RESIDUAL_FLOW( C i, j, k :: loop indices INTEGER i, j, k INTEGER kp1 - _RL maskp1 + _RL maskp1, flipSign4LHCoord _RL delPsi #ifdef ALLOW_EDDYPSI _RL ustar, vstar #endif CEOP +C Since bolus transport is computed as curl of stream-function, needs to +C flip sign when using Left-Handed Coordinate system such as P-coordinate + flipSign4LHCoord = -gravitySign + IF ( GM_AdvForm .AND. .NOT.GM_AdvSeparate & .AND. .NOT.GM_InMomAsStress ) THEN @@ -61,28 +65,33 @@ SUBROUTINE GMREDI_RESIDUAL_FLOW( DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - delPsi = GM_PsiX(i,j,kp1,bi,bj)*maskp1 - & - GM_PsiX(i,j, k, bi,bj) + delPsi = GM_PsiX(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiX(i,j, k, bi,bj)*deepFacF(k) uFld(i,j,k) = uFld(i,j,k) & + delPsi*recip_drF(k)*_recip_hFacW(i,j,k,bi,bj) + & *recip_deepFacC(k)*flipSign4LHCoord ENDDO ENDDO DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - delPsi = GM_PsiY(i,j,kp1,bi,bj)*maskp1 - & - GM_PsiY(i,j, k, bi,bj) + delPsi = GM_PsiY(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiY(i,j, k, bi,bj)*deepFacF(k) vFld(i,j,k) = vFld(i,j,k) & + delPsi*recip_drF(k)*_recip_hFacS(i,j,k,bi,bj) + & *recip_deepFacC(k)*flipSign4LHCoord ENDDO ENDDO +C deep-model: simplify FacF / Fac2F (from dx,y / rA) to: 1/FacF DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 delPsi = ( dyG(i+1,j,bi,bj)*GM_PsiX(i+1,j,k,bi,bj) & -dyG( i ,j,bi,bj)*GM_PsiX( i ,j,k,bi,bj) & +dxG(i,j+1,bi,bj)*GM_PsiY(i,j+1,k,bi,bj) & -dxG(i, j ,bi,bj)*GM_PsiY(i, j ,k,bi,bj) - & )*maskC(i,j,k,bi,bj) - wFld(i,j,k) = wFld(i,j,k) + delPsi*recip_rA(i,j,bi,bj) + & ) + wFld(i,j,k) = wFld(i,j,k) + & + delPsi*recip_rA(i,j,bi,bj) + & *recip_deepFacF(k)*flipSign4LHCoord ENDDO ENDDO @@ -100,17 +109,19 @@ SUBROUTINE GMREDI_RESIDUAL_FLOW( DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - delPsi = GM_PsiX(i,j,kp1,bi,bj)*maskp1 - & - GM_PsiX(i,j, k, bi,bj) + delPsi = GM_PsiX(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiX(i,j, k, bi,bj)*deepFacF(k) ustar = delPsi*recip_drF(k)*_recip_hFacW(i,j,k,bi,bj) + & *recip_deepFacC(k)*flipSign4LHCoord uEulerMean(i,j,k,bi,bj) = uVel(i,j,k,bi,bj) - ustar ENDDO ENDDO DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - delPsi = GM_PsiY(i,j,kp1,bi,bj)*maskp1 - & - GM_PsiY(i,j, k, bi,bj) + delPsi = GM_PsiY(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiY(i,j, k, bi,bj)*deepFacF(k) vstar = delPsi*recip_drF(k)*_recip_hFacS(i,j,k,bi,bj) + & *recip_deepFacC(k)*flipSign4LHCoord vEulerMean(i,j,k,bi,bj) = vVel(i,j,k,bi,bj) - vstar ENDDO ENDDO diff --git a/pkg/gmredi/gmredi_rtransport.F b/pkg/gmredi/gmredi_rtransport.F index 60b1b4c7bc..814b245b95 100644 --- a/pkg/gmredi/gmredi_rtransport.F +++ b/pkg/gmredi/gmredi_rtransport.F @@ -35,7 +35,6 @@ SUBROUTINE GMREDI_RTRANSPORT( #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # endif @@ -64,6 +63,11 @@ SUBROUTINE GMREDI_RTRANSPORT( C !LOCAL VARIABLES: C i, j :: Loop counters INTEGER i, j +#ifdef ALLOW_AUTODIFF_TAMC +C kkey :: tape key (depends on levels, tiles, and tracers) + INTEGER kkey + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif _RL dTdx (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dTdy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef GM_BOLUS_ADVEC @@ -71,25 +75,16 @@ SUBROUTINE GMREDI_RTRANSPORT( #endif #ifdef ALLOW_AUTODIFF_TAMC - act0 = trIdentity - 1 - max0 = maxpass - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igadkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - kkey = (igadkey-1)*Nr + k - if (trIdentity.GT.maxpass) then - print *, 'ph-pass gmredi_rtrans ', maxpass, trIdentity - STOP 'maxpass seems smaller than trIdentity' - endif + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = trIdentity + (kkey-1)*maxpass + kkey = k + (kkey-1)*Nr + IF (trIdentity.GT.maxpass) THEN + WRITE(msgBuf,'(A,2I5)') + & 'GMREDI_RTRANSPORT: trIdentity > maxpass ', + & trIdentity, maxpass + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GMREDI_RTRANSPORT' + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ C Surface flux is zero @@ -99,34 +94,32 @@ SUBROUTINE GMREDI_RTRANSPORT( DO j=jMin,jMax DO i=iMin,iMax dTdx(i,j) = op5*( - & +op5*(_maskW(i+1,j,k,bi,bj) - & *_recip_dxC(i+1,j,bi,bj)* - & (Tracer(i+1,j,k)-Tracer(i,j,k)) - & +_maskW(i,j,k,bi,bj) - & *_recip_dxC(i,j,bi,bj)* - & (Tracer(i,j,k)-Tracer(i-1,j,k)) ) - & +op5*(_maskW(i+1,j,k-1,bi,bj) - & *_recip_dxC(i+1,j,bi,bj)* - & (Tracer(i+1,j,k-1)-Tracer(i,j,k-1)) - & +_maskW(i,j,k-1,bi,bj) - & *_recip_dxC(i,j,bi,bj)* - & (Tracer(i,j,k-1)-Tracer(i-1,j,k-1)) ) - & ) + & op5*recip_deepFacC(k) + & *( _maskW(i+1,j,k,bi,bj)*_recip_dxC(i+1,j,bi,bj) + & *( Tracer(i+1,j,k) - Tracer( i ,j,k) ) + & + _maskW( i ,j,k,bi,bj) *_recip_dxC(i,j,bi,bj) + & *( Tracer( i ,j,k) - Tracer(i-1,j,k) ) + & ) + & +op5*recip_deepFacC(k-1) + & *( _maskW(i+1,j,k-1,bi,bj)*_recip_dxC(i+1,j,bi,bj) + & *( Tracer(i+1,j,k-1) - Tracer( i ,j,k-1) ) + & +_maskW( i ,j,k-1,bi,bj)*_recip_dxC( i ,j,bi,bj) + & *( Tracer( i ,j,k-1) - Tracer(i-1,j,k-1) ) + & ) ) dTdy(i,j) = op5*( - & +op5*(_maskS(i,j,k,bi,bj) - & *_recip_dyC(i,j,bi,bj)* - & (Tracer(i,j,k)-Tracer(i,j-1,k)) - & +_maskS(i,j+1,k,bi,bj) - & *_recip_dyC(i,j+1,bi,bj)* - & (Tracer(i,j+1,k)-Tracer(i,j,k)) ) - & +op5*(_maskS(i,j,k-1,bi,bj) - & *_recip_dyC(i,j,bi,bj)* - & (Tracer(i,j,k-1)-Tracer(i,j-1,k-1)) - & +_maskS(i,j+1,k-1,bi,bj) - & *_recip_dyC(i,j+1,bi,bj)* - & (Tracer(i,j+1,k-1)-Tracer(i,j,k-1)) ) - & ) + & op5*recip_deepFacC(k) + & *( _maskS(i,j+1,k,bi,bj)*_recip_dyC(i,j+1,bi,bj) + & *( Tracer(i,j+1,k) - Tracer(i,j,k) ) + & + _maskS(i, j ,k,bi,bj)*_recip_dyC(i, j ,bi,bj) + & *( Tracer(i,j,k) - Tracer(i,j-1,k) ) + & ) + & +op5*recip_deepFacC(k-1) + & *( _maskS(i,j+1,k-1,bi,bj)*_recip_dyC(i,j+1,bi,bj) + & *( Tracer(i,j+1,k-1) - Tracer(i,j,k-1) ) + & + _maskS(i, j ,k-1,bi,bj)*_recip_dyC(i, j ,bi,bj) + & *( Tracer(i,j,k-1) - Tracer(i,j-1,k-1) ) + & ) ) ENDDO ENDDO @@ -143,7 +136,7 @@ SUBROUTINE GMREDI_RTRANSPORT( DO j=jMin,jMax DO i=iMin,iMax df(i,j) = df(i,j) - & - _rA(i,j,bi,bj)*maskInC(i,j,bi,bj) + & - _rA(i,j,bi,bj)*deepFac2F(k)*maskInC(i,j,bi,bj) & *( LS_Kwx(i,j,k,bi,bj)*dTdx(i,j) & + LS_Kwy(i,j,k,bi,bj)*dTdy(i,j) )*maskUp(i,j) ENDDO @@ -153,7 +146,7 @@ SUBROUTINE GMREDI_RTRANSPORT( DO j=jMin,jMax DO i=iMin,iMax df(i,j) = df(i,j) - & - _rA(i,j,bi,bj)*maskInC(i,j,bi,bj) + & - _rA(i,j,bi,bj)*deepFac2F(k)*maskInC(i,j,bi,bj) & *( Kwx(i,j,k,bi,bj)*dTdx(i,j) & + Kwy(i,j,k,bi,bj)*dTdy(i,j) )*maskUp(i,j) ENDDO @@ -165,13 +158,17 @@ SUBROUTINE GMREDI_RTRANSPORT( #ifdef GM_BOLUS_ADVEC IF (GM_AdvForm .AND. GM_AdvSeparate & .AND. .NOT.GM_InMomAsStress) THEN +C Since bolus transport is computed as curl of stream-function, needs to +C flip sign when using Left-Handed Coordinate system such as P-coordinate +c flipSign4LHCoord = -gravitySign DO j=jMin,jMax DO i=iMin,iMax - rTrans(i,j) = + rTrans(i,j) = -gravitySign*( & dyG(i+1,j,bi,bj)*GM_PsiX(i+1,j,k,bi,bj) & -dyG( i ,j,bi,bj)*GM_PsiX( i ,j,k,bi,bj) & +dxG(i,j+1,bi,bj)*GM_PsiY(i,j+1,k,bi,bj) & -dxG(i, j ,bi,bj)*GM_PsiY(i, j ,k,bi,bj) + & )*deepFacF(k) ENDDO ENDDO #ifdef GM_AUTODIFF_EXCESSIVE_STORE @@ -181,9 +178,9 @@ SUBROUTINE GMREDI_RTRANSPORT( DO j=jMin,jMax DO i=iMin,iMax df(i,j) = df(i,j) - & +rTrans(i,j)*op5 - & *(Tracer(i,j,k)+Tracer(i,j,k-1)) - & *maskInC(i,j,bi,bj)*maskUp(i,j) + & + rTrans(i,j)*op5 + & *( Tracer(i,j,k) + Tracer(i,j,k-1) ) + & *maskInC(i,j,bi,bj)*maskUp(i,j) ENDDO ENDDO ENDIF @@ -191,17 +188,8 @@ SUBROUTINE GMREDI_RTRANSPORT( c IF (.NOT.implicitDiffusion) THEN C This vertical diffusion term is currently implemented -C by adding the VisbeckK*Kwz diffusivity to KappaRT/S +C by adding the Kwz diffusivity to KappaRT/S C See calc_diffusivity.F and calc_gt.F (calc_gs.F) -c DO j=jMin,jMax -c DO i=iMin,iMax -c df(i,j) = df(i,j) - _rA(i,j,bi,bj) -c & *maskUp(i,j)*VisbeckK(i,j,bi,bj)*Kwz(i,j,k,bi,bj) -c & *recip_drC(k)*rkfac -c & *(Tracer(i,j,k-1)-Tracer(i,j,k)) -c & *maskInC(i,j,bi,bj) -c ENDDO -c ENDDO c ENDIF ENDIF diff --git a/pkg/gmredi/gmredi_slope_limit.F b/pkg/gmredi/gmredi_slope_limit.F index 897df49dd0..11e7e5421a 100644 --- a/pkg/gmredi/gmredi_slope_limit.F +++ b/pkg/gmredi/gmredi_slope_limit.F @@ -12,8 +12,8 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( U hTransLay, baseSlope, recipLambda, U dSigmaDr, I dSigmaDx, dSigmaDy, - I Lrho, hMixLay, depthZ, kLow, - I k, bi, bj, myTime, myIter, myThid ) + I Lrho, hMixLay, rDepth, depthZ, kLow, + I kPos, k, bi, bj, myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -21,15 +21,16 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( C | o Calculate slopes for use in GM/Redi tensor C *==========================================================* C | On entry: -C | dSigmaDr contains the d/dz Sigma +C | dSigmaDr contains the downward d/dz Sigma C | dSigmaDx/Dy contains X/Y gradients of sigma -C | depthZ contains the depth (< 0 !) [m] C | Lrho C | hMixLay mixed layer depth (> 0) +C | rDepth depth (> 0) in r-Unit from the surface +C | depthZ contains the depth (< 0 !) [m] C U hTransLay transition layer depth (> 0) C U baseSlope, recipLambda, C | On exit: -C | dSigmaDr contains the effective dSig/dz +C | dSigmaDr contains the effective downward dSig/dz C | SlopeX/Y contains X/Y slopes C | SlopeSqr contains Sx^2+Sy^2 C | taperFct contains tapering funct. value ; @@ -50,17 +51,17 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( #include "PARAMS.h" #ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ -C == Routine arguments == C !INPUT PARAMETERS: C dSigmaDx :: zonal gradient of density C dSigmaDy :: meridional gradient of density C Lrho :: C hMixLay :: mixed layer thickness (> 0) [m] +C rDepth :: depth (> 0) in r-Unit from the surface C depthZ :: model discretized depth (< 0) [m] C kLow :: bottom level index 2-D array +C kPos :: grid-cell location: 1,2,3 : at U,V,W location C k :: level index C bi, bj :: tile indices C myTime :: time in simulation @@ -74,7 +75,7 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( C hTransLay :: depth of the base of the transition layer (> 0) [m] C baseSlope :: slope at the the base of the transition layer C recipLambda :: Slope vertical gradient at Trans. Layer Base (=recip.Lambda) -C dSigmaDr :: vertical gradient of density +C dSigmaDr :: downward gradient of neutral density _RL SlopeX (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeY (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeSqr (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -87,55 +88,75 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( _RL dSigmaDy (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL Lrho (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL hMixLay (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL rDepth _RS depthZ(*) INTEGER kLow (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - INTEGER k, bi,bj + INTEGER kPos, k, bi, bj _RL myTime INTEGER myIter INTEGER myThid -CEOP #ifdef ALLOW_GMREDI - C !LOCAL VARIABLES: -C == Local variables == -#ifdef GMREDI_WITH_STABLE_ADJOINT - _RL slopeSqTmp,slopeTmp,slopeMax -#endif - _RL dSigmMod(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL SlopeMod(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL dRdSigmaLtd(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL tmpFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL locVar(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL f1,Smod,f2,Rnondim - _RL maxSlopeSqr _RL fpi PARAMETER( fpi = PI ) - INTEGER i,j + INTEGER i, j + _RL f1, Smod, f2, Rnondim + _RL maxSlopeSqr + _RL convSlopeUnit, loc_rMaxSlope + _RL dSigmMod (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL dRdSigmaLtd(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL tmpFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifndef GM_EXCLUDE_FM07_TAP _RL dTransLay, rLambMin, DoverLamb _RL taperFctLoc, taperFctHat _RL minTransLay - + _RL SlopeMod(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL locVar (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif +#ifdef GMREDI_WITH_STABLE_ADJOINT + _RL slopeSqTmp, slopeTmp, slopeMax +c# ifdef ALLOW_AUTODIFF_TAMC +c INTEGER ikey +c# endif +#endif C- need to put this one in GM namelist : _RL GM_bigSlope GM_bigSlope = 1. _d +02 +CEOP + + IF (kPos.EQ.3 ) THEN + GM_bigSlope = GM_bigSlope*wUnit2rVel(k) + maxSlopeSqr = GM_maxSlope*GM_maxSlope + & *wUnit2rVel(k)*wUnit2rVel(k) + convSlopeUnit = rVel2wUnit(k) + ELSE + GM_bigSlope = GM_bigSlope*z2rUnit(k) + maxSlopeSqr = GM_maxSlope*GM_maxSlope + & *z2rUnit(k)*z2rUnit(k) + convSlopeUnit = rUnit2z(k) + ENDIF + loc_rMaxSlope = GM_rMaxSlope*convSlopeUnit #ifdef ALLOW_AUTODIFF_TAMC -C TAF thinks for some reason that depthZ is an active variable. +C TAF thinks for some reason that rDepth is an active variable. C While this does not make the adjoint code wrong, the resulting C code inhibits vectorization in some cases so we tell TAF here -C that depthZ is actually a passive grid variable that needs no adjoint -CADJ PASSIVE depthz - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 +C that rDepth is actually a passive grid variable that needs no adjoint +CADJ PASSIVE rDepth +C Without this store directive, TAF generates an extra field anyway +C so we do it here explicitly with a local tape and live without the +C corresponding warning. +CADJ INIT loctape_gm = COMMON, 1 +CADJ STORE dSigmaDr = loctape_gm +C +C Alternatively one can use a global tape, to be defined in +C the_main_loop.F. This option is still here but commented out with +C "c" (also in the_main_loop.F), in case we decide to go for larger +C memory overhead and fewer recomputations +c ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +c ikey = kPos + (k - 1 + (ikey - 1)*Nr)*3 +cCADJ STORE dSigmaDr = comlev1_gmredi_slope, key=ikey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO j=1-OLy+1,sNy+OLy-1 @@ -162,7 +183,7 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( DO i=1-OLx+1,sNx+OLx-1 tmpFld(i,j) = dSigmaDx(i,j)*dSigmaDx(i,j) & + dSigmaDy(i,j)*dSigmaDy(i,j) - IF ( tmpFld(i,j) .EQ. 0. ) THEN + IF ( tmpFld(i,j) .EQ. zeroRL ) THEN dSigmMod(i,j) = 0. _d 0 ELSE dSigmMod(i,j) = SQRT( tmpFld(i,j) ) @@ -170,50 +191,34 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE dSigmMod(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE dSigmaDr(:,:) = comlev1_bibj, key=ikey, byte=isbyte -#endif - DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF (dSigmMod(i,j) .NE. 0.) THEN - tmpFld(i,j) = -dSigmMod(i,j)*GM_rMaxSlope - IF ( dSigmaDr(i,j) .GE. tmpFld(i,j) ) + IF ( dSigmMod(i,j) .NE. zeroRL ) THEN + tmpFld(i,j) = dSigmMod(i,j)*loc_rMaxSlope + IF ( dSigmaDr(i,j) .LE. tmpFld(i,j) ) & dSigmaDr(i,j) = tmpFld(i,j) ENDIF ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE slopeX(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE slopeY(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE dSigmaDr(:,:) = comlev1_bibj, key=ikey, byte=isbyte -#endif - DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF (dSigmMod(i,j) .EQ. 0.) THEN + IF ( dSigmMod(i,j) .EQ. zeroRL ) THEN SlopeX(i,j) = 0. _d 0 SlopeY(i,j) = 0. _d 0 ELSE dRdSigmaLtd(i,j) = 1. _d 0/( dSigmaDr(i,j) ) - SlopeX(i,j)=-dSigmaDx(i,j)*dRdSigmaLtd(i,j) - SlopeY(i,j)=-dSigmaDy(i,j)*dRdSigmaLtd(i,j) + SlopeX(i,j) = dSigmaDx(i,j)*dRdSigmaLtd(i,j) + SlopeY(i,j) = dSigmaDy(i,j)*dRdSigmaLtd(i,j) ENDIF ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE slopeX(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE slopeY(:,:) = comlev1_bibj, key=ikey, byte=isbyte -#endif - DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - SlopeSqr(i,j)=SlopeX(i,j)*SlopeX(i,j) - & +SlopeY(i,j)*SlopeY(i,j) - taperFct(i,j)=1. _d 0 + SlopeSqr(i,j) = SlopeX(i,j)*SlopeX(i,j) + & + SlopeY(i,j)*SlopeY(i,j) + taperFct(i,j) = 1. _d 0 ENDDO ENDDO @@ -240,15 +245,15 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( taperFct(i,j) = 0. _d 0 ELSE C- Above bottom: - IF ( dSigmaDr(i,j).GE. -GM_Small_Number ) - & dSigmaDr(i,j) = -GM_Small_Number + IF ( dSigmaDr(i,j).LE. GM_Small_Number ) + & dSigmaDr(i,j) = GM_Small_Number tmpFld(i,j) = dSigmaDx(i,j)*dSigmaDx(i,j) & + dSigmaDy(i,j)*dSigmaDy(i,j) - IF ( tmpFld(i,j).GT.0. ) THEN + IF ( tmpFld(i,j).GT.zeroRL ) THEN locVar(i,j) = SQRT( tmpFld(i,j) ) SlopeX (i,j) = dSigmaDx(i,j)/locVar(i,j) SlopeY (i,j) = dSigmaDy(i,j)/locVar(i,j) - SlopeMod(i,j) = -locVar(i,j)/dSigmaDr(i,j) + SlopeMod(i,j) = locVar(i,j)/dSigmaDr(i,j) taperFct(i,j) = 1. _d 0 ELSE SlopeX (i,j) = 0. _d 0 @@ -283,18 +288,18 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( C-- note: do not catch the 1rst level/interface (k=kLow) above the bottom C since no baseSlope has yet been stored (= 0); but might fit C well into transition layer criteria (if locally not stratified) - ELSEIF ( dTransLay+hMixLay(i,j)+depthZ(k) .GE. 0. ) THEN + ELSEIF ( dTransLay+hMixLay(i,j)+depthZ(k) .GE. zeroRL ) THEN C- Found the transition Layer : set depth of base of Transition layer hTransLay(i,j) = -depthZ(k+1) C and compute inverse length scale "1/Lambda" from slope vert. grad - IF ( baseSlope(i,j).GT.0. ) THEN + IF ( baseSlope(i,j).GT.zeroRL ) THEN recipLambda(i,j) = recipLambda(i,j) & / MIN( baseSlope(i,j), GM_maxSlope ) ELSE recipLambda(i,j) = 0. _d 0 ENDIF C slope^2 & Kwz should remain > 0 : prevent too large negative D/lambda - IF ( hMixLay(i,j)+depthZ(k+1).LT.0. ) THEN + IF ( hMixLay(i,j)+depthZ(k+1).LT.zeroRL ) THEN rLambMin = 1. _d 0 /( hMixLay(i,j)+depthZ(k+1) ) recipLambda(i,j) = MAX( recipLambda(i,j), rLambMin ) ENDIF @@ -383,7 +388,7 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( #endif /* GM_EXCLUDE_FM07_TAP */ - ELSE IF (GM_taper_scheme.EQ.'ac02') THEN + ELSEIF (GM_taper_scheme.EQ.'ac02') THEN #ifdef GM_EXCLUDE_AC02_TAP @@ -395,32 +400,34 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( C compute the true slope (no approximation) C but still neglect Kxy & Kyx (assumed to be zero) - maxSlopeSqr = GM_maxSlope*GM_maxSlope DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - dRdSigmaLtd(i,j)= - & dSigmaDx(i,j)*dSigmaDx(i,j) - & + dSigmaDy(i,j)*dSigmaDy(i,j) - & + dSigmaDr(i,j)*dSigmaDr(i,j) + dRdSigmaLtd(i,j) = ( dSigmaDx(i,j)*dSigmaDx(i,j) + & + dSigmaDy(i,j)*dSigmaDy(i,j) + & )*convSlopeUnit*convSlopeUnit + & + dSigmaDr(i,j)*dSigmaDr(i,j) taperFct(i,j) = 1. _d 0 - IF (dRdSigmaLtd(i,j).NE.0.) THEN - dRdSigmaLtd(i,j)=1. _d 0 - & / ( dRdSigmaLtd(i,j) ) - SlopeSqr(i,j)=(dSigmaDx(i,j)*dSigmaDx(i,j) - & +dSigmaDy(i,j)*dSigmaDy(i,j))*dRdSigmaLtd(i,j) - SlopeX(i,j)=-dSigmaDx(i,j) - & *dRdSigmaLtd(i,j)*dSigmaDr(i,j) - SlopeY(i,j)=-dSigmaDy(i,j) - & *dRdSigmaLtd(i,j)*dSigmaDr(i,j) -cph T11(i,j)=(dSigmaDr(i,j)**2)*dRdSigmaLtd(i,j) + IF ( dRdSigmaLtd(i,j).NE.zeroRL ) THEN + dRdSigmaLtd(i,j) = 1. _d 0 / ( dRdSigmaLtd(i,j) ) + SlopeSqr(i,j) = ( dSigmaDx(i,j)*dSigmaDx(i,j) + & + dSigmaDy(i,j)*dSigmaDy(i,j) + & )*dRdSigmaLtd(i,j) + SlopeX(i,j) = dSigmaDx(i,j) + & *dRdSigmaLtd(i,j)*dSigmaDr(i,j) + SlopeY(i,j) = dSigmaDy(i,j) + & *dRdSigmaLtd(i,j)*dSigmaDr(i,j) + ELSE + SlopeSqr(i,j) = 0. _d 0 + SlopeX(i,j) = 0. _d 0 + SlopeY(i,j) = 0. _d 0 ENDIF -#ifndef ALLOWW_AUTODIFF_TAMC +#ifndef ALLOW_AUTODIFF_TAMC cph-- this part does not adjoint well IF ( SlopeSqr(i,j) .GT. maxSlopeSqr .AND. & SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN taperFct(i,j) = maxSlopeSqr/SlopeSqr(i,j) - ELSE IF ( SlopeSqr(i,j) .GT. GM_slopeSqCutoff ) THEN + ELSEIF ( SlopeSqr(i,j) .GE. GM_slopeSqCutoff ) THEN taperFct(i,j) = 0. _d 0 ENDIF #endif @@ -440,53 +447,52 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( C---------------------------------------------------------------------- C- Compute the slope, no clipping, but avoid reverse slope in negatively -C stratified (Sigma_Z > 0) region : +C stratified (dSigmaDr < 0) region : #ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE dSigmaDr(:,:) = comlev1_bibj, key=ikey, byte=isbyte +C Without this store directive, TAF generates an extra field anyway +C so we do it here explicitly with a local tape and live without the +C corresponding warning. +CADJ STORE dSigmaDr = loctape_gm #endif DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( dSigmaDr(i,j) .NE. 0. ) THEN - IF (dSigmaDr(i,j).GE.(-GM_Small_Number)) - & dSigmaDr(i,j) = -GM_Small_Number + IF ( dSigmaDr(i,j) .NE. zeroRL ) THEN + IF ( dSigmaDr(i,j) .LE. GM_Small_Number ) + & dSigmaDr(i,j) = GM_Small_Number ENDIF ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE dSigmaDx(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE dSigmaDy(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE dSigmaDr(:,:) = comlev1_bibj, key=ikey, byte=isbyte -#endif - DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( dSigmaDr(i,j) .EQ. 0. ) THEN - IF ( dSigmaDx(i,j) .NE. 0. ) THEN + IF ( dSigmaDr(i,j) .EQ. zeroRL ) THEN + IF ( dSigmaDx(i,j) .NE. zeroRL ) THEN SlopeX(i,j) = SIGN( GM_bigSlope, dSigmaDx(i,j) ) ELSE SlopeX(i,j) = 0. _d 0 ENDIF - IF ( dSigmaDy(i,j) .NE. 0. ) THEN + IF ( dSigmaDy(i,j) .NE. zeroRL ) THEN SlopeY(i,j) = SIGN( GM_bigSlope, dSigmaDy(i,j) ) ELSE SlopeY(i,j) = 0. _d 0 ENDIF ELSE dRdSigmaLtd(i,j) = 1. _d 0 / dSigmaDr(i,j) - SlopeX(i,j)=-dSigmaDx(i,j)*dRdSigmaLtd(i,j) - SlopeY(i,j)=-dSigmaDy(i,j)*dRdSigmaLtd(i,j) -c SlopeX(i,j) = -dSigmaDx(i,j)/dSigmaDr(i,j) -c SlopeY(i,j) = -dSigmaDy(i,j)/dSigmaDr(i,j) + SlopeX(i,j) = dSigmaDx(i,j)*dRdSigmaLtd(i,j) + SlopeY(i,j) = dSigmaDy(i,j)*dRdSigmaLtd(i,j) +c SlopeX(i,j) = dSigmaDx(i,j)/dSigmaDr(i,j) +c SlopeY(i,j) = dSigmaDy(i,j)/dSigmaDr(i,j) ENDIF ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -cnostore CADJ STORE slopeX(:,:) = comlev1_bibj, key=ikey, byte=isbyte -cnostore CADJ STORE slopeY(:,:) = comlev1_bibj, key=ikey, byte=isbyte +cCADJ STORE slopeX(:,:) = comlev1_gmredi_slope, key=ikey, byte=isbyte +cCADJ STORE slopeY(:,:) = comlev1_gmredi_slope, key=ikey, byte=isbyte +CADJ STORE SlopeX = loctape_gm +CADJ STORE SlopeY = loctape_gm #endif DO j=1-OLy+1,sNy+OLy-1 @@ -494,9 +500,17 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( SlopeSqr(i,j) = SlopeX(i,j)*SlopeX(i,j) & +SlopeY(i,j)*SlopeY(i,j) taperFct(i,j) = 1. _d 0 - IF ( SlopeSqr(i,j) .GT. GM_slopeSqCutoff ) THEN - slopeSqr(i,j) = GM_slopeSqCutoff - taperFct(i,j) = 0. _d 0 +#ifdef ALLOW_AUTODIFF_TAMC + ENDDO + ENDDO +cCADJ STORE SlopeSqr = comlev1_gmredi_slope, key=ikey, byte=isbyte +CADJ STORE SlopeSqr = loctape_gm + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 +#endif + IF ( SlopeSqr(i,j) .GE. GM_slopeSqCutoff ) THEN + slopeSqr(i,j) = GM_slopeSqCutoff + taperFct(i,j) = 0. _d 0 ENDIF ENDDO ENDDO @@ -506,13 +520,12 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( IF (GM_taper_scheme.EQ.'linear') THEN C- Simplest adiabatic tapering = Smax/Slope (linear) - maxSlopeSqr = GM_maxSlope*GM_maxSlope DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( SlopeSqr(i,j) .EQ. 0. ) THEN + IF ( SlopeSqr(i,j) .EQ. zeroRL ) THEN taperFct(i,j) = 1. _d 0 - ELSE IF ( SlopeSqr(i,j) .GT. maxSlopeSqr .AND. + ELSEIF ( SlopeSqr(i,j) .GT. maxSlopeSqr .AND. & SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN taperFct(i,j) = SQRT(maxSlopeSqr / SlopeSqr(i,j)) slopeSqr(i,j) = MIN( slopeSqr(i,j),GM_bigSlope*GM_bigSlope ) @@ -524,13 +537,12 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( ELSEIF (GM_taper_scheme.EQ.'gkw91') THEN C- Gerdes, Koberle and Willebrand, Clim. Dyn. 1991 - maxSlopeSqr = GM_maxSlope*GM_maxSlope DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( SlopeSqr(i,j) .EQ. 0. ) THEN + IF ( SlopeSqr(i,j) .EQ. zeroRL ) THEN taperFct(i,j) = 1. _d 0 - ELSE IF ( SlopeSqr(i,j) .GT. maxSlopeSqr .AND. + ELSEIF ( SlopeSqr(i,j) .GT. maxSlopeSqr .AND. & SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN taperFct(i,j) = maxSlopeSqr/SlopeSqr(i,j) ENDIF @@ -544,11 +556,11 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF ( SlopeSqr(i,j) .EQ. 0. ) THEN + IF ( SlopeSqr(i,j) .EQ. zeroRL ) THEN taperFct(i,j) = 1. _d 0 - ELSE IF ( SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN - Smod=SQRT(SlopeSqr(i,j)) - taperFct(i,j)=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) + ELSEIF ( SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN + Smod = SQRT(SlopeSqr(i,j))*convSlopeUnit + taperFct(i,j) = op5*( oneRL + TANH( (GM_Scrit-Smod)/GM_Sd ) ) ENDIF ENDDO ENDDO @@ -559,18 +571,19 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - IF (SlopeSqr(i,j) .EQ. 0.) THEN + IF ( SlopeSqr(i,j) .EQ. zeroRL ) THEN taperFct(i,j) = 1. _d 0 ELSEIF ( SlopeSqr(i,j) .LT. GM_slopeSqCutoff ) THEN - Smod=SQRT(SlopeSqr(i,j)) - f1=op5*( 1. _d 0 + tanh( (GM_Scrit-Smod)/GM_Sd )) - Rnondim= -depthZ(k)/(Lrho(i,j)*Smod) + Smod = SQRT(SlopeSqr(i,j)) + f1 = op5*( oneRL + & + TANH( (GM_Scrit-Smod*convSlopeUnit)/GM_Sd ) ) + Rnondim = rDepth/(Lrho(i,j)*Smod) IF ( Rnondim.GE.1. _d 0 ) THEN f2 = 1. _d 0 ELSE - f2 = op5*( 1. _d 0 + SIN( fpi*(Rnondim-op5) )) + f2 = op5*( 1. _d 0 + SIN( fpi*(Rnondim-op5) ) ) ENDIF - taperFct(i,j)=f1*f2 + taperFct(i,j) = f1*f2 ENDIF ENDDO @@ -578,36 +591,48 @@ SUBROUTINE GMREDI_SLOPE_LIMIT( ELSEIF (GM_taper_scheme.EQ.'stableGmAdjTap') THEN -#ifndef GMREDI_WITH_STABLE_ADJOINT - - STOP 'Need to compile wth "#define GMREDI_WITH_STABLE_ADJOINT"' - -#else /* GMREDI_WITH_STABLE_ADJOINT */ +#ifdef GMREDI_WITH_STABLE_ADJOINT -c special choice for adjoint/optimization of parameters -c (~ strong clipping, reducing non linearity of kw=f(K)) +C special choice for adjoint/optimization of parameters +C (~ strong clipping, reducing non linearity of kw=f(K)) +C this variable could be relaced by the runtime parameter GM_maxSlope slopeMax= 2. _d -3 -CADJ STORE SlopeX(:,:) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE SlopeY(:,:) = comlev1_bibj, key=ikey, byte=isbyte +# ifdef ALLOW_AUTODIFF_TAMC +cCADJ STORE SlopeX(:,:) = comlev1_gmredi_slope, key=ikey, byte=isbyte +cCADJ STORE SlopeY(:,:) = comlev1_gmredi_slope, key=ikey, byte=isbyte +CADJ STORE SlopeX = loctape_gm +CADJ STORE SlopeY = loctape_gm +#endif + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + slopeSqTmp = SlopeX(i,j)*SlopeX(i,j) + & + SlopeY(i,j)*SlopeY(i,j) - DO j=1-OLy,sNy+OLy - DO i=1-OLx+1,sNx+OLx - slopeSqTmp=SlopeX(i,j)*SlopeX(i,j) - & +SlopeY(i,j)*SlopeY(i,j) - IF ( slopeSqTmp .GT. slopeMax**2 ) then - slopeTmp=sqrt(slopeSqTmp) - SlopeX(i,j)=SlopeX(i,j)*slopeMax/slopeTmp - SlopeY(i,j)=SlopeY(i,j)*slopeMax/slopeTmp + slopeTmp = SQRT(slopeSqTmp) + SlopeX(i,j) = SlopeX(i,j)*slopeMax/slopeTmp + SlopeY(i,j) = SlopeY(i,j)*slopeMax/slopeTmp ENDIF + ENDDO + ENDDO + +C move the assignment of SlopeSqr to its own do-loop block from the do-loop +C block above to reduce TAF recomputations. The assignment of taperFct is +C also moved to keep the original order of operations. + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 SlopeSqr(i,j) = SlopeX(i,j)*SlopeX(i,j) - & +SlopeY(i,j)*SlopeY(i,j) + & + SlopeY(i,j)*SlopeY(i,j) taperFct(i,j) = 1. _d 0 ENDDO ENDDO +#else /* GMREDI_WITH_STABLE_ADJOINT */ + + STOP 'Need to compile wth "#define GMREDI_WITH_STABLE_ADJOINT"' + #endif /* GMREDI_WITH_STABLE_ADJOINT */ ELSEIF (GM_taper_scheme.NE.' ') THEN diff --git a/pkg/gmredi/gmredi_slope_psi.F b/pkg/gmredi/gmredi_slope_psi.F index efb6c95d7e..f8f18da365 100644 --- a/pkg/gmredi/gmredi_slope_psi.F +++ b/pkg/gmredi/gmredi_slope_psi.F @@ -3,27 +3,34 @@ # include "AUTODIFF_OPTIONS.h" #endif -CStartOfInterface +CBOP +C !ROUTINE: GMREDI_SLOPE_PSI +C !INTERFACE: SUBROUTINE GMREDI_SLOPE_PSI( O taperX, taperY, U SlopeX, SlopeY, - U dSigmaDrW,dSigmaDrS, - I LrhoW, LrhoS, depthZ, K, - I bi,bj, myThid ) -C /==========================================================\ + U dSigmaDrW, dSigmaDrS, + I LrhoW, LrhoS, rDepth, k, + I bi, bj, myThid ) +C !DESCRIPTION: \bv +C *==========================================================* C | SUBROUTINE GMREDI_SLOPE_PSI | -C | o Calculate slopes for use in GM/Redi tensor | -C |==========================================================| +C | o Calculate slopes for use in GM advective form | +C *==========================================================* C | On entry: | -C | dSigmaDrW,S contains the d/dz Sigma | -C | SlopeX/Y contains X/Y gradients of sigma | -C | depthZ contains the depth (< 0 !) [m] | +C | dSigmaDrW,S contains the -d/dz Sigma if Z-coords | +C | but d/dp Sigma if P-coords | +C | SlopeX/Y contains X/Y gradients of sigma | +C | rDepth depth (> 0) in r-Unit from the surface | C | On exit: | -C | dSigmaDrW,S contains the effective dSig/dz | -C | SlopeX/Y contains X/Y slopes | -C | taperFct contains tapering funct. value ; | -C | = 1 when using no tapering | -C \==========================================================/ +C | dSigmaDrW,S contains the effective dSig/dz | +C | SlopeX/Y contains X/Y slopes | +C | taperFct contains tapering funct. value ; | +C | = 1 when using no tapering | +C *==========================================================* +C \ev + +C !USES: IMPLICIT NONE C == Global variables == @@ -31,14 +38,11 @@ SUBROUTINE GMREDI_SLOPE_PSI( #include "EEPARAMS.h" #include "GMREDI.h" #include "PARAMS.h" - #ifdef ALLOW_AUTODIFF_TAMC -#include "tamc.h" -#include "tamc_keys.h" +# include "tamc.h" #endif /* ALLOW_AUTODIFF_TAMC */ -C == Routine arguments == -C +C !INPUT/OUTPUT PARAMETERS: _RL taperX(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL taperY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL SlopeX(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -47,41 +51,45 @@ SUBROUTINE GMREDI_SLOPE_PSI( _RL dSigmaDrS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL LrhoW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL LrhoS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RS depthZ - INTEGER K,bi,bj,myThid -CEndOfInterface + _RL rDepth + INTEGER k,bi,bj,myThid #ifdef ALLOW_GMREDI #ifdef GM_BOLUS_ADVEC -C == Local variables == +C !LOCAL VARIABLES: _RL dSigmaDrLtd(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL f1,Smod,f2,Rnondim + _RL f1, Smod, f2, Rnondim _RL maxSlopeSqr _RL slopeCutoff + _RL loc_maxSlope, loc_rMaxSlope _RL fpi - PARAMETER(fpi=3.141592653589793047592d0) - INTEGER i,j + PARAMETER( fpi = PI ) + INTEGER i, j #ifdef GMREDI_WITH_STABLE_ADJOINT - _RL slopeTmpSpec,slopeMaxSpec + _RL slopeMaxSpec +#endif +#ifdef ALLOW_AUTODIFF_TAMC +C kkey :: tape key (depends on levels and tiles) + INTEGER kkey #endif +CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| slopeCutoff = SQRT( GM_slopeSqCutoff ) +C- Note regarding slopeCutoff: current code by-passes the reduction of taper +C fct when slope is larger than "slopeCutoff", and this is not very safe ! +C However, with default GM_Small_Number (=1.E-20) and default value of +C GM_slopeSqCutoff (=1.E+48), this is unlikely to occur as it would require +C |sigmaX/Y| > 1.e+4 + + loc_maxSlope = GM_maxSlope*wUnit2rVel(k) + loc_rMaxSlope = GM_rMaxSlope*rVel2wUnit(k) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igmkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 - kkey = (igmkey-1)*Nr + k + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = k + (kkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ IF (GM_taper_scheme.EQ.'orig' .OR. @@ -109,8 +117,8 @@ SUBROUTINE GMREDI_SLOPE_PSI( C- Cox 1987 "Slope clipping" DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - dSigmaDrLtd(i,j) = -(GM_Small_Number+ - & ABS(SlopeX(i,j))*GM_rMaxSlope) + dSigmaDrLtd(i,j) = GM_Small_Number + & + ABS(SlopeX(i,j))*loc_rMaxSlope ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC @@ -119,7 +127,7 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - IF (dSigmaDrW(i,j).GE.dSigmaDrLtd(i,j)) + IF (dSigmaDrW(i,j).LE.dSigmaDrLtd(i,j)) & dSigmaDrW(i,j) = dSigmaDrLtd(i,j) ENDDO ENDDO @@ -128,7 +136,7 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - SlopeX(i,j) = -SlopeX(i,j)/dSigmaDrW(i,j) + SlopeX(i,j) = SlopeX(i,j)/dSigmaDrW(i,j) taperX(i,j) = 1. _d 0 ENDDO ENDDO @@ -144,8 +152,8 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif /* ALLOW_AUTODIFF */ DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - dSigmaDrLtd(i,j) = -(GM_Small_Number+ - & ABS(SlopeY(i,j))*GM_rMaxSlope) + dSigmaDrLtd(i,j) = GM_Small_Number + & + ABS(SlopeY(i,j))*loc_rMaxSlope ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC @@ -154,7 +162,7 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - IF (dSigmaDrS(i,j).GE.dSigmaDrLtd(i,j)) + IF (dSigmaDrS(i,j).LE.dSigmaDrLtd(i,j)) & dSigmaDrS(i,j) = dSigmaDrLtd(i,j) ENDDO ENDDO @@ -163,7 +171,7 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - SlopeY(i,j) = -SlopeY(i,j)/dSigmaDrS(i,j) + SlopeY(i,j) = SlopeY(i,j)/dSigmaDrS(i,j) taperY(i,j) = 1. _d 0 ENDDO ENDDO @@ -188,34 +196,34 @@ SUBROUTINE GMREDI_SLOPE_PSI( #endif C- Compute the slope, no clipping, but avoid reverse slope in negatively -C stratified (Sigma_Z > 0) region : +C stratified (dSigmaDr < 0) region : DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - IF (dSigmaDrW(i,j).GE.-GM_Small_Number) - & dSigmaDrW(i,j) = -GM_Small_Number + IF (dSigmaDrW(i,j).LE.GM_Small_Number) + & dSigmaDrW(i,j) = GM_Small_Number ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE dsigmadrW(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE dsigmaDrW(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - SlopeX(i,j) = -SlopeX(i,j)/dSigmaDrW(i,j) + SlopeX(i,j) = SlopeX(i,j)/dSigmaDrW(i,j) taperX(i,j) = 1. _d 0 ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE slopex(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE slopeX(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif IF (GM_taper_scheme.NE.'stableGmAdjTap') THEN - DO j=1-OLy,sNy+OLy - DO i=1-OLx+1,sNx+OLx - IF ( ABS(SlopeX(i,j)) .GE. slopeCutoff ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx + IF ( ABS(SlopeX(i,j)) .GE. slopeCutoff ) THEN SlopeX(i,j) = SIGN(slopeCutoff,SlopeX(i,j)) taperX(i,j) = 0. _d 0 - ENDIF + ENDIF + ENDDO ENDDO - ENDDO ENDIF #ifdef ALLOW_AUTODIFF_TAMC @@ -225,31 +233,31 @@ SUBROUTINE GMREDI_SLOPE_PSI( DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - IF (dSigmaDrS(i,j).GE.-GM_Small_Number) - & dSigmaDrS(i,j) = -GM_Small_Number + IF (dSigmaDrS(i,j).LE.GM_Small_Number) + & dSigmaDrS(i,j) = GM_Small_Number ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE dsigmadrS(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE dsigmaDrS(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - SlopeY(i,j) = -SlopeY(i,j)/dSigmaDrS(i,j) + SlopeY(i,j) = SlopeY(i,j)/dSigmaDrS(i,j) taperY(i,j) = 1. _d 0 ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE slopey(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE slopeY(:,:) = comlev1_bibj_k, key=kkey, byte=isbyte #endif IF (GM_taper_scheme.NE.'stableGmAdjTap') THEN - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx,sNx+OLx - IF ( ABS(SlopeY(i,j)) .GE. slopeCutoff ) THEN + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + IF ( ABS(SlopeY(i,j)) .GE. slopeCutoff ) THEN SlopeY(i,j) = SIGN(slopeCutoff,SlopeY(i,j)) taperY(i,j) = 0. _d 0 - ENDIF + ENDIF + ENDDO ENDDO - ENDDO ENDIF C- Compute the tapering function for the GM+Redi tensor : @@ -265,37 +273,40 @@ SUBROUTINE GMREDI_SLOPE_PSI( DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx Smod = ABS(SlopeX(i,j)) - IF ( Smod .GT. GM_maxSlope .AND. - & Smod .LT. slopeCutoff ) - & taperX(i,j)=GM_maxSlope/(Smod+GM_Small_Number) + IF ( Smod .GT. loc_maxSlope .AND. + & Smod .LT. slopeCutoff ) + & taperX(i,j) = loc_maxSlope/(Smod+GM_Small_Number) ENDDO ENDDO DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx Smod = ABS(SlopeY(i,j)) - IF ( Smod .GT. GM_maxSlope .AND. - & Smod .LT. slopeCutoff ) - & taperY(i,j)=GM_maxSlope/(Smod+GM_Small_Number) + IF ( Smod .GT. loc_maxSlope .AND. + & Smod .LT. slopeCutoff ) + & taperY(i,j) = loc_maxSlope/(Smod+GM_Small_Number) ENDDO ENDDO - ELSEIF (GM_taper_scheme.EQ.'gkw91') THEN + ELSEIF ( GM_taper_scheme.EQ.'gkw91' .OR. + & GM_taper_scheme.EQ.'ac02' ) THEN C- Gerdes, Koberle and Willebrand, Clim. Dyn. 1991 - maxSlopeSqr = GM_maxSlope*GM_maxSlope + maxSlopeSqr = loc_maxSlope*loc_maxSlope DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - IF ( ABS(SlopeX(i,j)) .GT. GM_maxSlope .AND. - & ABS(SlopeX(i,j)) .LT. slopeCutoff ) - & taperX(i,j)=maxSlopeSqr/ + Smod = ABS(SlopeX(i,j)) + IF ( Smod .GT. loc_maxSlope .AND. + & Smod .LT. slopeCutoff ) + & taperX(i,j) = maxSlopeSqr/ & ( SlopeX(i,j)*SlopeX(i,j) + GM_Small_Number ) ENDDO ENDDO DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - IF ( ABS(SlopeY(i,j)) .GT. GM_maxSlope .AND. - & ABS(SlopeY(i,j)) .LT. slopeCutoff ) - & taperY(i,j)=maxSlopeSqr/ + Smod = ABS(SlopeY(i,j)) + IF ( Smod .GT. loc_maxSlope .AND. + & Smod .LT. slopeCutoff ) + & taperY(i,j) = maxSlopeSqr/ & ( SlopeY(i,j)*SlopeY(i,j) + GM_Small_Number ) ENDDO ENDDO @@ -305,14 +316,14 @@ SUBROUTINE GMREDI_SLOPE_PSI( C- Danabasoglu and McWilliams, J. Clim. 1995 DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - Smod = ABS(SlopeX(i,j)) - taperX(i,j)=op5*( 1. _d 0 + TANH( (GM_Scrit-Smod)/GM_Sd )) + Smod = ABS(SlopeX(i,j))*rVel2wUnit(k) + taperX(i,j) = op5*( oneRL + TANH( (GM_Scrit-Smod)/GM_Sd )) ENDDO ENDDO DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - Smod = ABS(SlopeY(i,j)) - taperY(i,j)=op5*( 1. _d 0 + TANH( (GM_Scrit-Smod)/GM_Sd )) + Smod = ABS(SlopeY(i,j))*rVel2wUnit(k) + taperY(i,j) = op5*( oneRL + TANH( (GM_Scrit-Smod)/GM_Sd )) ENDDO ENDDO @@ -324,18 +335,19 @@ SUBROUTINE GMREDI_SLOPE_PSI( DO i=1-OLx+1,sNx+OLx Smod = ABS(SlopeX(i,j)) IF ( Smod .LT. slopeCutoff ) THEN - f1=op5*( 1. _d 0 + TANH( (GM_Scrit-Smod)/GM_Sd )) - IF (Smod.NE.0.) THEN - Rnondim = -depthZ/(LrhoW(i,j)*Smod) + f1 = op5*( oneRL + & + TANH( (GM_Scrit-Smod*rVel2wUnit(k))/GM_Sd ) ) + IF ( Smod.NE.zeroRL ) THEN + Rnondim = rDepth/( LrhoW(i,j)*Smod ) ELSE - Rnondim = 1. + Rnondim = 1. _d 0 ENDIF - IF ( Rnondim.GE.1. _d 0 ) THEN + IF ( Rnondim.GE.oneRL ) THEN f2 = 1. _d 0 ELSE - f2 = op5*( 1. _d 0 + SIN( fpi*(Rnondim-op5) )) + f2 = op5*( oneRL + SIN( fpi*(Rnondim-op5) )) ENDIF - taperX(i,j)=f1*f2 + taperX(i,j) = f1*f2 ENDIF ENDDO ENDDO @@ -344,18 +356,19 @@ SUBROUTINE GMREDI_SLOPE_PSI( DO i=1-OLx,sNx+OLx Smod = ABS(SlopeY(i,j)) IF ( Smod .LT. slopeCutoff ) THEN - f1=op5*( 1. _d 0 + TANH( (GM_Scrit-Smod)/GM_Sd )) - IF (Smod.NE.0.) THEN - Rnondim = -depthZ/(LrhoS(i,j)*Smod) + f1 = op5*( oneRL + & + TANH( (GM_Scrit-Smod*rVel2wUnit(k))/GM_Sd ) ) + IF ( Smod.NE.zeroRL ) THEN + Rnondim = rDepth/( LrhoS(i,j)*Smod ) ELSE - Rnondim = 1. + Rnondim = 1. _d 0 ENDIF - IF ( Rnondim.GE.1. _d 0 ) THEN + IF ( Rnondim.GE.oneRL ) THEN f2 = 1. _d 0 ELSE - f2 = op5*( 1. _d 0 + SIN( fpi*(Rnondim-op5) )) + f2 = op5*( oneRL + SIN( fpi*(Rnondim-op5) )) ENDIF - taperY(i,j)=f1*f2 + taperY(i,j) = f1*f2 ENDIF ENDDO ENDDO @@ -378,24 +391,24 @@ SUBROUTINE GMREDI_SLOPE_PSI( DO j=1-OLy,sNy+OLy DO i=1-OLx+1,sNx+OLx - slopeTmpSpec=ABS(SlopeX(i,j)) - IF ( slopeTmpSpec .GT. slopeMaxSpec ) then - SlopeX(i,j)=5.*SlopeX(i,j)*slopeMaxSpec/slopeTmpSpec - ELSE - SlopeX(i,j)=5.*SlopeX(i,j) - ENDIF - taperX(i,j)=1. + Smod = ABS(SlopeX(i,j)) + IF ( Smod .GT. slopeMaxSpec ) THEN + SlopeX(i,j) = 5.*SlopeX(i,j)*slopeMaxSpec/Smod + ELSE + SlopeX(i,j) = 5.*SlopeX(i,j) + ENDIF + taperX(i,j) = 1. ENDDO ENDDO DO j=1-OLy+1,sNy+OLy DO i=1-OLx,sNx+OLx - slopeTmpSpec=ABS(SlopeY(i,j)) - IF ( slopeTmpSpec .GT. slopeMaxSpec ) then - SlopeY(i,j)=5.*SlopeY(i,j)*slopeMaxSpec/slopeTmpSpec - ELSE - SlopeY(i,j)=5.*SlopeY(i,j) - ENDIF - taperY(i,j)=1. + Smod = ABS(SlopeY(i,j)) + IF ( Smod .GT. slopeMaxSpec ) THEN + SlopeY(i,j) = 5.*SlopeY(i,j)*slopeMaxSpec/Smod + ELSE + SlopeY(i,j) = 5.*SlopeY(i,j) + ENDIF + taperY(i,j) = 1. ENDDO ENDDO #endif /* GMREDI_WITH_STABLE_ADJOINT */ diff --git a/pkg/gmredi/gmredi_write_pickup.F b/pkg/gmredi/gmredi_write_pickup.F index 9e9383c6ee..968621a414 100644 --- a/pkg/gmredi/gmredi_write_pickup.F +++ b/pkg/gmredi/gmredi_write_pickup.F @@ -32,7 +32,7 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, C !OUTPUT PARAMETERS: ================================================== C none -#ifdef GM_K3D +#ifdef GM_BATES_K3D C === Functions ==== INTEGER ILNBLNK @@ -53,14 +53,14 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, _RL timList(1) CHARACTER*(MAX_LEN_FNAM) fn INTEGER listDim, nWrFlds - PARAMETER( listDim = 2+2*GM_K3D_NModes ) + PARAMETER( listDim = 2+2*GM_Bates_NModes ) CHARACTER*(8) wrFldList(listDim) CHARACTER*(MAX_LEN_MBUF) msgBuf - _RL vec(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL vec(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) CHARACTER*(8) fieldname CEOP - IF (.NOT. GM_useK3D) RETURN + IF ( .NOT.GM_useBatesK3d ) RETURN lChar = ILNBLNK(suff) IF ( lChar.EQ.0 ) THEN @@ -77,8 +77,8 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx vec(i,j,k,bi,bj) = modesC(1,i,j,k,bi,bj) ENDDO ENDDO @@ -92,12 +92,12 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, IF (m.LE.listDim) wrFldList(m) = fieldname C Western Mode - DO n=1,GM_K3D_NModes + DO n=1,GM_Bates_NModes DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx vec(i,j,k,bi,bj) = modesW(n,i,j,k,bi,bj) ENDDO ENDDO @@ -112,12 +112,12 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, ENDDO C Southern Mode - DO n=1,GM_K3D_NModes + DO n=1,GM_Bates_NModes DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx vec(i,j,k,bi,bj) = modesS(n,i,j,k,bi,bj) ENDDO ENDDO @@ -142,7 +142,7 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, & Rdef, nm, myIter, myThid ) fieldname = 'Rdef' IF (m.LE.listDim) wrFldList(m) = fieldname - + nWrFlds = m IF ( nWrFlds.GT.listDim ) THEN WRITE(msgBuf,'(2A,I5,A)') 'GMREDI_WRITE_PICKUP: ', @@ -172,7 +172,7 @@ SUBROUTINE GMREDI_WRITE_PICKUP( permPickup, #endif /* ALLOW_MDSIO */ C-------------------------- -#endif /* GM_K3D */ +#endif /* GM_BATES_K3D */ RETURN END diff --git a/pkg/gmredi/gmredi_xtransport.F b/pkg/gmredi/gmredi_xtransport.F index fe3b10c633..15f76aa2dd 100644 --- a/pkg/gmredi/gmredi_xtransport.F +++ b/pkg/gmredi/gmredi_xtransport.F @@ -2,9 +2,6 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif CBOP C !ROUTINE: GMREDI_XTRANSPORT @@ -12,7 +9,7 @@ SUBROUTINE GMREDI_XTRANSPORT( I trIdentity, bi, bj, k, I iMin, iMax, jMin, jMax, - I xA, Tracer, + I xA, maskFk, Tracer, U df, I myThid ) @@ -32,32 +29,30 @@ SUBROUTINE GMREDI_XTRANSPORT( #include "PARAMS.h" #include "GRID.h" #include "GMREDI.h" -#ifdef ALLOW_CTRL -# include "CTRL_FIELDS.h" -#endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # endif #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: -C trIdentity :: tracer Id number -C bi, bj :: current tile indices -C k :: current level index -C iMin,iMax :: Range of 1rst index where results will be set -C jMin,jMax :: Range of 2nd index where results will be set -C xA :: Area of X face -C Tracer :: 3D Tracer field -C df :: Diffusive flux component work array. -C myThid :: my Thread Id number +C trIdentity :: tracer Id number +C bi, bj :: current tile indices +C k :: current level index +C iMin,iMax :: Range of 1rst index where results will be set +C jMin,jMax :: Range of 2nd index where results will be set +C xA :: Area of X face +C maskFk :: 2-D mask for vertical interface k (between level k-1 & k) +C Tracer :: 3D Tracer field +C df :: Diffusive flux component work array. +C myThid :: my Thread Id number INTEGER trIdentity INTEGER bi, bj, k INTEGER iMin, iMax, jMin, jMax - _RS xA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RS maskFk(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL df (1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER myThid @@ -65,17 +60,17 @@ SUBROUTINE GMREDI_XTRANSPORT( #ifdef ALLOW_GMREDI C !LOCAL VARIABLES: -C i, j :: Loop counters +C i, j :: Loop counters INTEGER i, j #if ( defined (GM_EXTRA_DIAGONAL) || defined (GM_BOLUS_ADVEC) ) INTEGER kp1 + _RL maskp1 #endif #ifdef GM_EXTRA_DIAGONAL INTEGER km1 _RL dTdz (1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif #ifdef GM_BOLUS_ADVEC - _RL maskp1 _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef ALLOW_DIAGNOSTICS LOGICAL DIAGNOSTICS_IS_ON @@ -83,36 +78,30 @@ SUBROUTINE GMREDI_XTRANSPORT( _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif #endif /* GM_BOLUS_ADVEC */ +#ifdef ALLOW_AUTODIFF_TAMC +C kkey :: tape key (depends on levels and tiles) + INTEGER kkey + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif #ifdef ALLOW_AUTODIFF_TAMC - act0 = trIdentity - 1 - max0 = maxpass - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igadkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - kkey = (igadkey-1)*Nr + k - if (trIdentity.GT.maxpass) then - print *, 'ph-pass gmredi_xtrans ', maxpass, trIdentity - STOP 'maxpass seems smaller than trIdentity' - endif + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = trIdentity + (kkey-1)*maxpass + kkey = k + (kkey-1)*Nr + IF (trIdentity.GT.maxpass) THEN + WRITE(msgBuf,'(A,2I5)') + & 'GMREDI_XTRANSPORT: trIdentity > maxpass ', + & trIdentity, maxpass + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GMREDI_XTRANSPORT' + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ IF (useGMRedi) THEN #ifdef ALLOW_AUTODIFF_TAMC -# ifdef GM_NON_UNITY_DIAGONAL CADJ STORE Kux(:,:,k,bi,bj) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte -# endif # ifdef GM_EXTRA_DIAGONAL CADJ STORE Kuz(:,:,k,bi,bj) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte @@ -124,82 +113,77 @@ SUBROUTINE GMREDI_XTRANSPORT( DO i=iMin,iMax df(i,j) = df(i,j) & -xA(i,j) -#ifdef GM_NON_UNITY_DIAGONAL & *Kux(i,j,k,bi,bj) -#else -#ifdef ALLOW_KAPREDI_CONTROL - & *(kapRedi(i,j,k,bi,bj) -#else - & *(GM_isopycK -#endif -#ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i-1,j,bi,bj)) -#endif - & ) -#endif /* GM_NON_UNITY_DIAGONAL */ - & *_recip_dxC(i,j,bi,bj) - & *(Tracer(i,j,k)-Tracer(i-1,j,k)) + & *_recip_dxC(i,j,bi,bj)*recip_deepFacC(k) + & *( Tracer(i,j,k) - Tracer(i-1,j,k) ) ENDDO ENDDO #ifdef GM_EXTRA_DIAGONAL - IF (GM_ExtraDiag) THEN + IF ( GM_ExtraDiag ) THEN km1 = MAX(k-1,1) kp1 = MIN(k+1,Nr) - C- Vertical gradients interpolated to U points +C Note: no real needs for masking out with maskp1 when k=Nr since the Tracer +C difference is already zero (k=kp1 in this case); but cleaner for +C AD-code to ensure exactly zero contribution to Tracer AD var. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - dTdz(i,j) = op5*( - & +op5*recip_drC(k)* - & ( maskC(i-1,j,k,bi,bj)* - & (Tracer(i-1,j,km1)-Tracer(i-1,j,k)) - & +maskC( i ,j,k,bi,bj)* - & (Tracer( i ,j,km1)-Tracer( i ,j,k)) - & ) - & +op5*recip_drC(kp1)* - & ( maskC(i-1,j,kp1,bi,bj)* - & (Tracer(i-1,j,k)-Tracer(i-1,j,kp1)) - & +maskC( i ,j,kp1,bi,bj)* - & (Tracer( i ,j,k)-Tracer( i ,j,kp1)) - & ) ) - + dTdz(i,j) = op5*( + & +op5*recip_drC(k)* + & ( maskFk(i-1,j)* + & ( Tracer(i-1,j,km1)-Tracer(i-1,j,k) ) + & +maskFk( i ,j)* + & ( Tracer( i ,j,km1)-Tracer( i ,j,k) ) + & ) + & +op5*recip_drC(kp1)* + & ( maskC(i-1,j,k,bi,bj)*maskC(i-1,j,kp1,bi,bj)*maskp1* + & ( Tracer(i-1,j,k)-Tracer(i-1,j,kp1) ) + & +maskC( i ,j,k,bi,bj)*maskC( i ,j,kp1,bi,bj)*maskp1* + & ( Tracer( i ,j,k)-Tracer( i ,j,kp1) ) + & ) ) ENDDO ENDDO #ifdef GM_AUTODIFF_EXCESSIVE_STORE -CADJ STORE dtdz(:,:) = +CADJ STORE dTdz(:,:) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte #endif C- Off-diagonal components of horizontal flux DO j=jMin,jMax DO i=iMin,iMax - df(i,j) = df(i,j) - xA(i,j)*Kuz(i,j,k,bi,bj)*dTdz(i,j) + df(i,j) = df(i,j) - xA(i,j)*Kuz(i,j,k,bi,bj)*dTdz(i,j) ENDDO ENDDO ENDIF #endif /* GM_EXTRA_DIAGONAL */ #ifdef GM_BOLUS_ADVEC - IF (GM_AdvForm .AND. GM_AdvSeparate - & .AND. .NOT.GM_InMomAsStress) THEN + IF ( GM_AdvForm .AND. GM_AdvSeparate + & .AND. .NOT.GM_InMomAsStress ) THEN +C Since bolus transport is computed as curl of stream-function, needs to +C flip sign when using Left-Handed Coordinate system such as P-coordinate +c flipSign4LHCoord = -gravitySign kp1 = MIN(k+1,Nr) - maskp1 = 1. - IF (k.GE.Nr) maskp1 = 0. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - uTrans(i,j) = dyG(i,j,bi,bj)*( GM_PsiX(i,j,kp1,bi,bj)*maskp1 - & -GM_PsiX(i,j,k,bi,bj) ) - & *maskW(i,j,k,bi,bj) + uTrans(i,j) = -gravitySign*dyG(i,j,bi,bj) + & *( GM_PsiX(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiX(i,j, k ,bi,bj)*deepFacF(k) + & )*maskW(i,j,k,bi,bj) ENDDO ENDDO #ifdef GM_AUTODIFF_EXCESSIVE_STORE -CADJ STORE utrans(:,:) = +CADJ STORE uTrans(:,:) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte #endif DO j=jMin,jMax DO i=iMin,iMax df(i,j) = df(i,j) - & +uTrans(i,j)*op5*(Tracer(i,j,k)+Tracer(i-1,j,k)) + & + uTrans(i,j)*op5*( Tracer(i,j,k) + Tracer(i-1,j,k) ) ENDDO ENDDO ENDIF @@ -207,18 +191,18 @@ SUBROUTINE GMREDI_XTRANSPORT( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_DIAGNOSTICS - IF ( useDiagnostics - & .AND. DIAGNOSTICS_IS_ON('GM_ubT ', myThid ) - & .AND. trIdentity.EQ.1 ) THEN + IF ( useDiagnostics .AND. trIdentity.EQ.1 .AND. + & DIAGNOSTICS_IS_ON( 'GM_ubT ', myThid ) ) THEN kp1 = MIN(k+1,Nr) - maskp1 = 1. - IF (k.GE.Nr) maskp1 = 0. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - tmp1k(i,j) = dyG(i,j,bi,bj)*( GM_PsiX(i,j,kp1,bi,bj)*maskp1 - & -GM_PsiX(i,j,k,bi,bj) ) - & *maskW(i,j,k,bi,bj) - & *op5*(Tracer(i,j,k)+Tracer(i-1,j,k)) + tmp1k(i,j) = -gravitySign*dyG(i,j,bi,bj) + & *( GM_PsiX(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiX(i,j, k ,bi,bj)*deepFacF(k) + & )*maskW(i,j,k,bi,bj) + & *op5*( Tracer(i,j,k) + Tracer(i-1,j,k) ) ENDDO ENDDO CALL DIAGNOSTICS_FILL(tmp1k,'GM_ubT ', k,1,2,bi,bj,myThid) diff --git a/pkg/gmredi/gmredi_ytransport.F b/pkg/gmredi/gmredi_ytransport.F index 47fe81ba6e..3697941a7a 100644 --- a/pkg/gmredi/gmredi_ytransport.F +++ b/pkg/gmredi/gmredi_ytransport.F @@ -2,16 +2,14 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif +CBOP C !ROUTINE: GMREDI_YTRANSPORT C !INTERFACE: SUBROUTINE GMREDI_YTRANSPORT( I trIdentity, bi, bj, k, I iMin, iMax, jMin, jMax, - I yA, Tracer, + I yA, maskFk, Tracer, U df, I myThid ) @@ -31,32 +29,30 @@ SUBROUTINE GMREDI_YTRANSPORT( #include "PARAMS.h" #include "GRID.h" #include "GMREDI.h" -#ifdef ALLOW_CTRL -# include "CTRL_FIELDS.h" -#endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # endif #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: -C trIdentity :: tracer Id number -C bi, bj :: current tile indices -C k :: current level index -C iMin,iMax :: Range of 1rst index where results will be set -C jMin,jMax :: Range of 2nd index where results will be set -C yA :: Area of Y face -C Tracer :: 3D Tracer field -C df :: Diffusive flux component work array. -C myThid :: my Thread Id number +C trIdentity :: tracer Id number +C bi, bj :: current tile indices +C k :: current level index +C iMin,iMax :: Range of 1rst index where results will be set +C jMin,jMax :: Range of 2nd index where results will be set +C yA :: Area of Y face +C maskFk :: 2-D mask for vertical interface k (between level k-1 & k) +C Tracer :: 3D Tracer field +C df :: Diffusive flux component work array. +C myThid :: my Thread Id number INTEGER trIdentity INTEGER bi, bj, k INTEGER iMin, iMax, jMin, jMax _RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RS maskFk(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL Tracer(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) _RL df (1-OLx:sNx+OLx,1-OLy:sNy+OLy) INTEGER myThid @@ -64,17 +60,17 @@ SUBROUTINE GMREDI_YTRANSPORT( #ifdef ALLOW_GMREDI C !LOCAL VARIABLES: -C i, j :: Loop counters +C i, j :: Loop counters INTEGER i, j #if ( defined (GM_EXTRA_DIAGONAL) || defined (GM_BOLUS_ADVEC) ) INTEGER kp1 + _RL maskp1 #endif #ifdef GM_EXTRA_DIAGONAL INTEGER km1 _RL dTdz(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif #ifdef GM_BOLUS_ADVEC - _RL maskp1 _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef ALLOW_DIAGNOSTICS LOGICAL DIAGNOSTICS_IS_ON @@ -82,36 +78,30 @@ SUBROUTINE GMREDI_YTRANSPORT( _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif #endif /* GM_BOLUS_ADVEC */ +#ifdef ALLOW_AUTODIFF_TAMC +C kkey :: tape key (depends on levels and tiles) + INTEGER kkey + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif #ifdef ALLOW_AUTODIFF_TAMC - act0 = trIdentity - 1 - max0 = maxpass - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igadkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - kkey = (igadkey-1)*Nr + k - if (trIdentity.GT.maxpass) then - print *, 'ph-pass gmredi_ytrans ', maxpass, trIdentity - STOP 'maxpass seems smaller than trIdentity' - endif + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = trIdentity + (kkey-1)*maxpass + kkey = k + (kkey-1)*Nr + IF (trIdentity.GT.maxpass) THEN + WRITE(msgBuf,'(A,2I5)') + & 'GMREDI_YTRANSPORT: trIdentity > maxpass ', + & trIdentity, maxpass + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R GMREDI_YTRANSPORT' + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ IF (useGMRedi) THEN #ifdef ALLOW_AUTODIFF_TAMC -# ifdef GM_NON_UNITY_DIAGONAL CADJ STORE Kvy(:,:,k,bi,bj) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte -# endif # ifdef GM_EXTRA_DIAGONAL CADJ STORE Kvz(:,:,k,bi,bj) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte @@ -123,100 +113,96 @@ SUBROUTINE GMREDI_YTRANSPORT( DO i=iMin,iMax df(i,j) = df(i,j) & -yA(i,j) -#ifdef GM_NON_UNITY_DIAGONAL & *Kvy(i,j,k,bi,bj) -#else -#ifdef ALLOW_KAPREDI_CONTROL - & *(kapRedi(i,j,k,bi,bj) -#else - & *(GM_isopycK -#endif -#ifdef GM_VISBECK_VARIABLE_K - & +op5*(VisbeckK(i,j,bi,bj)+VisbeckK(i,j-1,bi,bj)) -#endif - & ) -#endif /* GM_NON_UNITY_DIAGONAL */ - & *_recip_dyC(i,j,bi,bj) - & *(Tracer(i,j,k)-Tracer(i,j-1,k)) + & *_recip_dyC(i,j,bi,bj)*recip_deepFacC(k) + & *( Tracer(i,j,k) - Tracer(i,j-1,k) ) ENDDO ENDDO #ifdef GM_EXTRA_DIAGONAL - IF (GM_ExtraDiag) THEN + IF ( GM_ExtraDiag ) THEN km1 = MAX(k-1,1) kp1 = MIN(k+1,Nr) - C- Vertical gradients interpolated to V points +C Note: no real needs for masking out with maskp1 when k=Nr since the Tracer +C difference is already zero (k=kp1 in this case); but cleaner for +C AD-code to ensure exactly zero contribution to Tracer AD var. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - dTdz(i,j) = op5*( - & +op5*recip_drC(k)* - & ( maskC(i,j-1,k,bi,bj)* - & (Tracer(i,j-1,km1)-Tracer(i,j-1,k)) - & +maskC(i, j ,k,bi,bj)* - & (Tracer(i, j ,km1)-Tracer(i, j ,k)) - & ) - & +op5*recip_drC(kp1)* - & ( maskC(i,j-1,kp1,bi,bj)* - & (Tracer(i,j-1,k)-Tracer(i,j-1,kp1)) - & +maskC(i, j ,kp1,bi,bj)* - & (Tracer(i, j ,k)-Tracer(i, j ,kp1)) - & ) ) + dTdz(i,j) = op5*( + & +op5*recip_drC(k)* + & ( maskFk(i,j-1)* + & ( Tracer(i,j-1,km1)-Tracer(i,j-1,k) ) + & +maskFk(i, j )* + & ( Tracer(i, j ,km1)-Tracer(i, j ,k) ) + & ) + & +op5*recip_drC(kp1)* + & ( maskC(i,j-1,k,bi,bj)*maskC(i,j-1,kp1,bi,bj)*maskp1* + & ( Tracer(i,j-1,k)-Tracer(i,j-1,kp1) ) + & +maskC(i, j ,k,bi,bj)*maskC(i, j ,kp1,bi,bj)*maskp1* + & ( Tracer(i, j ,k)-Tracer(i, j ,kp1) ) + & ) ) ENDDO ENDDO #ifdef GM_AUTODIFF_EXCESSIVE_STORE -CADJ STORE dtdz(:,:) = +CADJ STORE dTdz(:,:) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte #endif C- Off-diagonal components of horizontal flux DO j=jMin,jMax DO i=iMin,iMax - df(i,j) = df(i,j) - yA(i,j)*Kvz(i,j,k,bi,bj)*dTdz(i,j) - + df(i,j) = df(i,j) - yA(i,j)*Kvz(i,j,k,bi,bj)*dTdz(i,j) ENDDO ENDDO ENDIF #endif /* GM_EXTRA_DIAGONAL */ #ifdef GM_BOLUS_ADVEC - IF (GM_AdvForm .AND. GM_AdvSeparate - & .AND. .NOT.GM_InMomAsStress) THEN + IF ( GM_AdvForm .AND. GM_AdvSeparate + & .AND. .NOT.GM_InMomAsStress ) THEN +C Since bolus transport is computed as curl of stream-function, needs to +C flip sign when using Left-Handed Coordinate system such as P-coordinate +c flipSign4LHCoord = -gravitySign kp1 = MIN(k+1,Nr) - maskp1 = 1. - IF (k.GE.Nr) maskp1 = 0. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - vTrans(i,j) = dxG(i,j,bi,bj)*( GM_PsiY(i,j,kp1,bi,bj)*maskp1 - & -GM_PsiY(i,j,k,bi,bj) ) - & *maskS(i,j,k,bi,bj) + vTrans(i,j) = -gravitySign*dxG(i,j,bi,bj) + & *( GM_PsiY(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiY(i,j, k, bi,bj)*deepFacF(k) + & )*maskS(i,j,k,bi,bj) ENDDO ENDDO #ifdef GM_AUTODIFF_EXCESSIVE_STORE -CADJ STORE vtrans(:,:) = +CADJ STORE vTrans(:,:) = CADJ & comlev1_gmredi_k_gad, key=kkey, byte=isbyte #endif DO j=jMin,jMax DO i=iMin,iMax df(i,j) = df(i,j) - & +vTrans(i,j)*op5*(Tracer(i,j,k)+Tracer(i,j-1,k)) + & + vTrans(i,j)*op5*( Tracer(i,j,k) + Tracer(i,j-1,k) ) ENDDO ENDDO ENDIF -#ifdef ALLOW_DIAGNOSTICS C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - IF ( useDiagnostics - & .AND. DIAGNOSTICS_IS_ON('GM_vbT ', myThid ) - & .AND. trIdentity.EQ.1 ) THEN + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics .AND. trIdentity.EQ.1 .AND. + & DIAGNOSTICS_IS_ON( 'GM_vbT ', myThid ) ) THEN kp1 = MIN(k+1,Nr) - maskp1 = 1. - IF (k.GE.Nr) maskp1 = 0. + maskp1 = 1. _d 0 + IF (k.GE.Nr) maskp1 = 0. _d 0 DO j=jMin,jMax DO i=iMin,iMax - tmp1k(i,j) = dxG(i,j,bi,bj)*( GM_PsiY(i,j,kp1,bi,bj)*maskp1 - & -GM_PsiY(i,j,k,bi,bj) ) - & *maskS(i,j,k,bi,bj) - & *op5*(Tracer(i,j,k)+Tracer(i,j-1,k)) + tmp1k(i,j) = -gravitySign*dxG(i,j,bi,bj) + & *( GM_PsiY(i,j,kp1,bi,bj)*deepFacF(kp1)*maskp1 + & - GM_PsiY(i,j, k, bi,bj)*deepFacF(k) + & )*maskS(i,j,k,bi,bj) + & *op5*( Tracer(i,j,k) + Tracer(i,j-1,k) ) ENDDO ENDDO CALL DIAGNOSTICS_FILL(tmp1k,'GM_vbT ', k,1,2,bi,bj,myThid) diff --git a/pkg/grdchk/grdchk.h b/pkg/grdchk/GRDCHK.h similarity index 72% rename from pkg/grdchk/grdchk.h rename to pkg/grdchk/GRDCHK.h index ec389deb8a..b731ae7411 100644 --- a/pkg/grdchk/grdchk.h +++ b/pkg/grdchk/GRDCHK.h @@ -1,21 +1,20 @@ -c ================================================================== -c HEADER GRADIENT_CHECK -c ================================================================== -c -c o Header for doing gradient checks with the ECCO ocean state -c estimation tool. -c -c started: Christian Eckert eckert@mit.edu 01-Mar-2000 -c -c changed: Christian Eckert eckert@mit.edu -c heimbach@mit.edu 24-Feb-2003 -c -c -c ================================================================== -c HEADER GRADIENT_CHECK -c ================================================================== +C ================================================================== +C HEADER GRADIENT_CHECK +C ================================================================== +C +C o Header for doing gradient checks with the ECCO ocean state +C estimation tool. +C +C started: Christian Eckert eckert@mit.edu 01-Mar-2000 +C +C changed: Christian Eckert eckert@mit.edu +C heimbach@mit.edu 24-Feb-2003 +C +C ================================================================== +C HEADER GRADIENT_CHECK +C ================================================================== -c maxgrdchecks - maximum number of gradient checks done per tile. +C maxgrdchecks :: maximum number of gradient checks done per tile. integer maxgrdchecks parameter ( maxgrdchecks = 4000 ) @@ -59,7 +58,7 @@ c maxgrdchecks - maximum number of gradient checks done per tile. integer jdep integer obcsglo integer recglo - integer iwetsum(nsx,nsy,0:nr) + integer iwetsum(nSx,nSy,0:Nr) common /grdchk_r/ & fcrmem, fcppmem, fcpmmem, @@ -86,7 +85,11 @@ c maxgrdchecks - maximum number of gradient checks done per tile. & ichkmem, icompmem, itestmem, ierrmem, icglomem integer ncvarcomp integer maxncvarcomps - integer nwettile( nsx,nsy,nr,nobcs ) +#ifdef ALLOW_OBCS_CONTROL + integer nwettile( nSx,nSy,Nr,nobcs ) +#else + integer nwettile( nSx,nSy,Nr, 1 ) +#endif integer irecmem ( maxgrdchecks ) integer bjmem ( maxgrdchecks ) integer bimem ( maxgrdchecks ) @@ -103,14 +106,10 @@ c maxgrdchecks - maximum number of gradient checks done per tile. #ifdef ALLOW_OBCS_CONTROL common /grdchk_obcs_mask_r/ & grdchk_maskxz, grdchk_maskyz - _RL grdchk_maskxz(1-olx:snx+olx,nr,nsx,nsy,nobcs) - _RL grdchk_maskyz(1-oly:sny+oly,nr,nsx,nsy,nobcs) + _RL grdchk_maskxz(1-OLx:sNx+OLx,Nr,nSx,nSy,nobcs) + _RL grdchk_maskyz(1-OLy:sNy+OLy,Nr,nSx,nSy,nobcs) #endif - - -c ================================================================== -c END OF HEADER GRADIENT_CHECK -c ================================================================== - - +C ================================================================== +C END OF HEADER GRADIENT_CHECK +C ================================================================== diff --git a/pkg/grdchk/grdchk_check.F b/pkg/grdchk/grdchk_check.F index d5c75ce4be..105455f499 100644 --- a/pkg/grdchk/grdchk_check.F +++ b/pkg/grdchk/grdchk_check.F @@ -23,7 +23,11 @@ SUBROUTINE GRDCHK_CHECK( myThid ) #include "SIZE.h" #include "GRID.h" #include "ctrl.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" C == routine arguments == diff --git a/pkg/grdchk/grdchk_get_obcs_mask.F b/pkg/grdchk/grdchk_get_obcs_mask.F index 9ad3a1cc23..cbdf6cf511 100644 --- a/pkg/grdchk/grdchk_get_obcs_mask.F +++ b/pkg/grdchk/grdchk_get_obcs_mask.F @@ -25,39 +25,32 @@ subroutine grdchk_get_obcs_mask( mythid ) #include "SIZE.h" #include "GRID.h" #include "ctrl.h" -#include "CTRL_OBCS.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" c == routine arguments == - integer mythid -#if (defined (ALLOW_GRDCHK) && defined (ALLOW_OBCS_CONTROL)) +#if (defined ALLOW_GRDCHK && defined ALLOW_OBCS_CONTROL) c == local variables == - integer bi,bj integer i,j,k - integer irec,iobcs + integer iobcs integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - _RL dummy - #if (defined ALLOW_OBCSN_CONTROL || defined ALLOW_OBCSS_CONTROL) _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) #endif #if (defined ALLOW_OBCSE_CONTROL || defined ALLOW_OBCSW_CONTROL) _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) #endif - - character*( 80) fname - -c == external == - - integer ilnblnk - external ilnblnk + character*(MAX_LEN_FNAM) fname c == end of interface == @@ -74,8 +67,7 @@ subroutine grdchk_get_obcs_mask( mythid ) if ( grdchkvarindex .EQ. 11 ) then #ifdef ALLOW_OBCSN_CONTROL - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') 'maskobcsn' + write(fname,'(a)') 'maskobcsn' c do iobcs = 1,nobcs call active_read_xz( fname, tmpfldxz, iobcs, @@ -97,8 +89,7 @@ subroutine grdchk_get_obcs_mask( mythid ) else if ( grdchkvarindex .EQ. 12 ) then #ifdef ALLOW_OBCSS_CONTROL - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') 'maskobcss' + write(fname,'(a)') 'maskobcss' c do iobcs = 1,nobcs call active_read_xz( fname, tmpfldxz, iobcs, @@ -120,8 +111,7 @@ subroutine grdchk_get_obcs_mask( mythid ) else if ( grdchkvarindex .EQ. 13 ) then #ifdef ALLOW_OBCSW_CONTROL - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') 'maskobcsw' + write(fname,'(a)') 'maskobcsw' c do iobcs = 1,nobcs call active_read_yz( fname, tmpfldyz, iobcs, @@ -143,8 +133,7 @@ subroutine grdchk_get_obcs_mask( mythid ) else if ( grdchkvarindex .EQ. 14 ) then #ifdef ALLOW_OBCSE_CONTROL - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(a)') 'maskobcse' + write(fname,'(a)') 'maskobcse' c do iobcs = 1,nobcs call active_read_yz( fname, tmpfldyz, iobcs, diff --git a/pkg/grdchk/grdchk_get_position.F b/pkg/grdchk/grdchk_get_position.F index d081d29af9..53c5fe62b9 100644 --- a/pkg/grdchk/grdchk_get_position.F +++ b/pkg/grdchk/grdchk_get_position.F @@ -33,11 +33,17 @@ subroutine grdchk_get_position( mythid ) # include "OBCS_GRID.h" #endif #include "ctrl.h" -#include "CTRL_OBCS.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" c == routine arguments == + integer mythid +#ifdef ALLOW_GRDCHK +c == local variables == integer icvrec integer jtile integer itile @@ -47,17 +53,9 @@ subroutine grdchk_get_position( mythid ) integer jtilepos integer itest integer ierr - integer mythid - -#ifdef ALLOW_GRDCHK -c == local variables == - - integer iG,jG integer bi,bj integer i,j,k integer iobcs -c integer biwrk,bjwrk - integer iproc, jproc integer iwrk, jwrk, kwrk integer iobcswrk integer irec, irecwrk @@ -68,10 +66,8 @@ subroutine grdchk_get_position( mythid ) integer icomptest integer nobcsmax integer pastit - _RL wetlocal - logical ltmp c == end of interface == jtlo = 1 @@ -114,7 +110,11 @@ subroutine grdchk_get_position( mythid ) c-- set max loop index for obcs multiplicities if ( ncvargrd(grdchkvarindex) .eq. 'm' ) then +#ifdef ALLOW_OBCS_CONTROL nobcsmax = nobcs +#else + print *, 'S/R grdchk_get_position: Ooops!' +#endif else nobcsmax = 1 endif @@ -133,8 +133,6 @@ subroutine grdchk_get_position( mythid ) cph-print & irec, bj, bi, k cph) if ( ierr .ne. 0 ) then - icvrec = irec - do j = jwrk, ncvarymax(grdchkvarindex) do i = iwrk, ncvarxmax(grdchkvarindex) if (ierr .ne. 0) then @@ -153,14 +151,14 @@ subroutine grdchk_get_position( mythid ) icomptest = icomptest + 1 endif wetlocal = _maskW(i,j,k,bi,bj) -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE c-- Ice shelf mask. else if ( ncvargrd(grdchkvarindex) .eq. 'i' ) then if ( maskSHI(i,j,k,bi,bj) .gt. 0.) then icomptest = icomptest + 1 endif wetlocal = maskSHI(i,j,k,bi,bj) -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_SHELFICE */ else if ( ncvargrd(grdchkvarindex) .eq. 'm' ) then if ( grdchkvarindex .EQ. 11 ) then #ifdef ALLOW_OBCSN_CONTROL diff --git a/pkg/grdchk/grdchk_getadxx.F b/pkg/grdchk/grdchk_getadxx.F index bbb9934b28..5a895bb41b 100644 --- a/pkg/grdchk/grdchk_getadxx.F +++ b/pkg/grdchk/grdchk_getadxx.F @@ -12,8 +12,7 @@ subroutine grdchk_getadxx( I jtilepos, I xx_comp, I ierr, - I mythid - & ) + I mythid ) c ================================================================== c SUBROUTINE grdchk_getadxx @@ -34,18 +33,21 @@ subroutine grdchk_getadxx( #include "EEPARAMS.h" #include "SIZE.h" +C CTRL_SIZE.h must be included before GRDCHK.h #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" -#include "CTRL_OBCS.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif #include "optim.h" -#include "grdchk.h" +#include "GRDCHK.h" c == routine arguments == - integer icvrec - integer jtile integer itile + integer jtile integer layer integer itilepos integer jtilepos @@ -54,34 +56,27 @@ subroutine grdchk_getadxx( integer mythid #ifdef ALLOW_GRDCHK -c == local variables == +c-- == external == + integer ilnblnk + external ilnblnk +c == local variables == integer iarr - integer il + integer il, ilDir integer dumiter _RL dumtime _RL dummy - logical doglobalread logical ladinit - #if (defined ALLOW_OBCSN_CONTROL || defined ALLOW_OBCSS_CONTROL) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) #endif #if (defined ALLOW_OBCSE_CONTROL || defined ALLOW_OBCSW_CONTROL) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - _RL loctmp2d (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL loctmp3d (1-olx:snx+olx,1-oly:sny+oly,Nr,nsx,nsy) - - character*(80) fname - - integer i,j,k - -c-- == external == - - integer ilnblnk - external ilnblnk + _RL loctmp2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL loctmp3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fname c-- == end of interface == @@ -89,370 +84,47 @@ subroutine grdchk_getadxx( ladinit = .false. dumiter = 0 dumtime = 0. _d 0 +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) if ( grdchkvarindex .eq. 0 ) then STOP 'GRDCHK INDEX 0 NOT ALLOWED' -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - else if ( grdchkvarindex .eq. 1 ) then - il=ilnblnk( xx_theta_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_theta_file(1:il),'.',optimcycle -#endif /* ALLOW_THETA0_CONTROL */ - -#ifdef ALLOW_SALT0_CONTROL - else if ( grdchkvarindex .eq. 2 ) then - il=ilnblnk( xx_salt_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_salt_file(1:il),'.',optimcycle -#endif /* ALLOW_SALT0_CONTROL */ - -#ifdef ALLOW_UVEL0_CONTROL - else if ( grdchkvarindex .eq. 27 ) then - il=ilnblnk( xx_uvel_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uvel_file(1:il),'.',optimcycle -#endif /* ALLOW_UVEL0_CONTROL */ - -#ifdef ALLOW_VVEL0_CONTROL - else if ( grdchkvarindex .eq. 28 ) then - il=ilnblnk( xx_vvel_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vvel_file(1:il),'.',optimcycle -#endif /* ALLOW_VVEL0_CONTROL */ - -#ifdef ALLOW_HFLUX_CONTROL - else if ( grdchkvarindex .eq. 3 ) then - il=ilnblnk( xx_hflux_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hflux_file(1:il),'.',optimcycle -#endif /* ALLOW_HFLUX_CONTROL */ - -#ifdef ALLOW_SFLUX_CONTROL - else if ( grdchkvarindex .eq. 4 ) then - il=ilnblnk( xx_sflux_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sflux_file(1:il),'.',optimcycle -#endif /* ALLOW_SFLUX_CONTROL */ - -#if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL)) - else if ( grdchkvarindex .eq. 5 ) then - il=ilnblnk( xx_tauu_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauu_file(1:il),'.',optimcycle -#endif /* ALLOW_USTRESS_CONTROL */ - -#if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) - else if ( grdchkvarindex .eq. 6 ) then - il=ilnblnk( xx_tauv_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauv_file(1:il),'.',optimcycle -#endif /* ALLOW_VSTRESS_CONTROL */ - -#ifdef ALLOW_ATEMP_CONTROL - else if ( grdchkvarindex .eq. 7 ) then - il=ilnblnk( xx_atemp_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_atemp_file(1:il),'.',optimcycle -#endif /* ALLOW_ATEMP_CONTROL */ - -#ifdef ALLOW_AQH_CONTROL - else if ( grdchkvarindex .eq. 8 ) then - il=ilnblnk( xx_aqh_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_aqh_file(1:il),'.',optimcycle -#endif /* ALLOW_AQH_CONTROL */ - -#ifdef ALLOW_UWIND_CONTROL - else if ( grdchkvarindex .eq. 9 ) then - il=ilnblnk( xx_uwind_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uwind_file(1:il),'.',optimcycle -#endif /* ALLOW_UWIND_CONTROL */ - -#ifdef ALLOW_VWIND_CONTROL - else if ( grdchkvarindex .eq. 10 ) then - il=ilnblnk( xx_vwind_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vwind_file(1:il),'.',optimcycle -#endif /* ALLOW_VWIND_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_OBCSN_CONTROL else if ( grdchkvarindex .eq. 11 ) then il=ilnblnk( xx_obcsn_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsn_file(1:il),'.',optimcycle #endif /* ALLOW_OBCSN_CONTROL */ #ifdef ALLOW_OBCSS_CONTROL else if ( grdchkvarindex .eq. 12 ) then il=ilnblnk( xx_obcss_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcss_file(1:il),'.',optimcycle #endif /* ALLOW_OBCSS_CONTROL */ #ifdef ALLOW_OBCSW_CONTROL else if ( grdchkvarindex .eq. 13 ) then il=ilnblnk( xx_obcsw_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsw_file(1:il),'.',optimcycle #endif /* ALLOW_OBCSW_CONTROL */ #ifdef ALLOW_OBCSE_CONTROL else if ( grdchkvarindex .eq. 14 ) then il=ilnblnk( xx_obcse_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcse_file(1:il),'.',optimcycle #endif /* ALLOW_OBCSE_CONTROL */ -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_DIFFKR_CONTROL - else if ( grdchkvarindex .eq. 15 ) then - il=ilnblnk( xx_diffkr_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_diffkr_file(1:il),'.',optimcycle -#endif /* ALLOW_DIFFKR_CONTROL */ - -#ifdef ALLOW_KAPGM_CONTROL - else if ( grdchkvarindex .eq. 16 ) then - il=ilnblnk( xx_kapgm_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapgm_file(1:il),'.',optimcycle -#endif /* ALLOW_KAPGM_CONTROL */ - -#ifdef ALLOW_KAPREDI_CONTROL - else if ( grdchkvarindex .eq. 44 ) then - il=ilnblnk( xx_kapredi_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapredi_file(1:il),'.',optimcycle -#endif /* ALLOW_KAPREDI_CONTROL */ - -#ifdef ALLOW_TR10_CONTROL - else if ( grdchkvarindex .eq. 17 ) then - il=ilnblnk( xx_tr1_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tr1_file(1:il),'.',optimcycle -#endif /* ALLOW_TR10_CONTROL */ - -#if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL)) - else if ( grdchkvarindex .eq. 18 ) then - il=ilnblnk( xx_sst_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sst_file(1:il),'.',optimcycle -#endif /* ALLOW_SST0_CONTROL */ - -#if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - else if ( grdchkvarindex .eq. 19 ) then - il=ilnblnk( xx_sss_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sss_file(1:il),'.',optimcycle -#endif /* ALLOW_SSS0_CONTROL */ - -#ifdef ALLOW_DEPTH_CONTROL - else if ( grdchkvarindex .eq. 20 ) then - il=ilnblnk( xx_depth_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_depth_file(1:il),'.',optimcycle -#endif /* ALLOW_DEPTH_CONTROL */ - -#ifdef ALLOW_EFLUXY0_CONTROL - else if ( grdchkvarindex .eq. 21 ) then - il=ilnblnk( xx_efluxy_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxy_file(1:il),'.',optimcycle -#endif /* ALLOW_EFLUXY0_CONTROL */ - -#ifdef ALLOW_EFLUXP0_CONTROL - else if ( grdchkvarindex .eq. 22 ) then - il=ilnblnk( xx_efluxp_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxp_file(1:il),'.',optimcycle -#endif /* ALLOW_EFLUXP0_CONTROL */ - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - else if ( grdchkvarindex .eq. 23 ) then - il=ilnblnk( xx_bottomdrag_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_bottomdrag_file(1:il),'.',optimcycle -#endif /* ALLOW_HFLUXM_CONTROL */ - -#ifdef ALLOW_HFLUXM_CONTROL - else if ( grdchkvarindex .eq. 24 ) then - il=ilnblnk( xx_hfluxm_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hfluxm_file(1:il),'.',optimcycle -#endif /* ALLOW_HFLUXM_CONTROL */ - -#ifdef ALLOW_GEN2D_CONTROL - else if ( grdchkvarindex .eq. 30 ) then - il=ilnblnk( xx_gen2d_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen2d_file(1:il),'.',optimcycle -#endif /* ALLOW_GEN2D_CONTROL */ - -#ifdef ALLOW_GEN3D_CONTROL - else if ( grdchkvarindex .eq. 31 ) then - il=ilnblnk( xx_gen3d_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen3d_file(1:il),'.',optimcycle -#endif /* ALLOW_GEN3D_CONTROL */ - -#ifdef ALLOW_PRECIP_CONTROL - else if ( grdchkvarindex .eq. 32 ) then - il=ilnblnk( xx_precip_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_precip_file(1:il),'.',optimcycle -#endif /* ALLOW_PRECIP_CONTROL */ - -#ifdef ALLOW_SWFLUX_CONTROL - else if ( grdchkvarindex .eq. 33 ) then - il=ilnblnk( xx_swflux_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swflux_file(1:il),'.',optimcycle -#endif /* ALLOW_SWFLUX_CONTROL */ - -#ifdef ALLOW_SWDOWN_CONTROL - else if ( grdchkvarindex .eq. 34 ) then - il=ilnblnk( xx_swdown_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swdown_file(1:il),'.',optimcycle -#endif /* ALLOW_SWDOWN_CONTROL */ - -#ifdef ALLOW_LWFLUX_CONTROL - else if ( grdchkvarindex .eq. 35 ) then - il=ilnblnk( xx_lwflux_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwflux_file(1:il),'.',optimcycle -#endif /* ALLOW_LWFLUX_CONTROL */ - -#ifdef ALLOW_LWDOWN_CONTROL - else if ( grdchkvarindex .eq. 36 ) then - il=ilnblnk( xx_lwdown_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwdown_file(1:il),'.',optimcycle -#endif /* ALLOW_LWDOWN_CONTROL */ - -#ifdef ALLOW_EVAP_CONTROL - else if ( grdchkvarindex .eq. 37 ) then - il=ilnblnk( xx_evap_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_evap_file(1:il),'.',optimcycle -#endif /* ALLOW_EVAP_CONTROL */ - -#ifdef ALLOW_SNOWPRECIP_CONTROL - else if ( grdchkvarindex .eq. 38 ) then - il=ilnblnk( xx_snowprecip_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_snowprecip_file(1:il),'.',optimcycle -#endif /* ALLOW_SNOWPRECIP_CONTROL */ - -#ifdef ALLOW_APRESSURE_CONTROL - else if ( grdchkvarindex .eq. 39 ) then - il=ilnblnk( xx_apressure_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_apressure_file(1:il),'.',optimcycle -#endif /* ALLOW_APRESSURE_CONTROL */ - -#ifdef ALLOW_RUNOFF_CONTROL - else if ( grdchkvarindex .eq. 40 ) then - il=ilnblnk( xx_runoff_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_runoff_file(1:il),'.',optimcycle -#endif /* ALLOW_RUNOFF_CONTROL */ - -#ifdef ALLOW_SIAREA_CONTROL - else if ( grdchkvarindex .eq. 41 ) then - il=ilnblnk( xx_siarea_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siarea_file(1:il),'.',optimcycle -#endif /* ALLOW_SIAREA_CONTROL */ - -#ifdef ALLOW_SIHEFF_CONTROL - else if ( grdchkvarindex .eq. 42 ) then - il=ilnblnk( xx_siheff_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siheff_file(1:il),'.',optimcycle -#endif /* ALLOW_SIHEFF_CONTROL */ - -#ifdef ALLOW_SIHSNOW_CONTROL - else if ( grdchkvarindex .eq. 43 ) then - il=ilnblnk( xx_sihsnow_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sihsnow_file(1:il),'.',optimcycle -#endif /* ALLOW_SIHSNOW_CONTROL */ - -#ifdef ALLOW_SHIFWFLX_CONTROL - else if ( grdchkvarindex .eq. 45 ) then - il=ilnblnk( xx_shifwflx_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_shifwflx_file(1:il),'.',optimcycle -#endif /* ALLOW_SHIFWFLX_CONTROL */ - -#ifdef ALLOW_ETAN0_CONTROL - else if ( grdchkvarindex .eq. 29 ) then - il=ilnblnk( xx_etan_file ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_etan_file(1:il),'.',optimcycle -#endif /* ALLOW_ETAN0_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_GENARR2D_CONTROL else if ( grdchkvarindex .ge. 101 .and. & grdchkvarindex .le. 100+maxCtrlArr2D ) then do iarr = 1, maxCtrlArr2D if ( grdchkvarindex .eq. 100+iarr ) then il=ilnblnk( xx_genarr2d_file(iarr) ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr2d_file(iarr)(1:il),'.',optimcycle endif enddo @@ -464,8 +136,7 @@ subroutine grdchk_getadxx( do iarr = 1, maxCtrlArr3D if ( grdchkvarindex .eq. 200+iarr ) then il=ilnblnk( xx_genarr3d_file(iarr) ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr3d_file(iarr)(1:il),'.',optimcycle endif enddo @@ -477,8 +148,7 @@ subroutine grdchk_getadxx( do iarr = 1, maxCtrlTim2D if ( grdchkvarindex .eq. 300+iarr ) then il=ilnblnk( xx_gentim2d_file(iarr) ) - write(fname(1:80),'(80a)') ' ' - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_gentim2d_file(iarr)(1:il),'.',optimcycle endif enddo diff --git a/pkg/grdchk/grdchk_getxx.F b/pkg/grdchk/grdchk_getxx.F index b28548cc49..50a7d67d9f 100644 --- a/pkg/grdchk/grdchk_getxx.F +++ b/pkg/grdchk/grdchk_getxx.F @@ -40,8 +40,11 @@ subroutine grdchk_getxx( #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" -#include "CTRL_OBCS.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" #include "optim.h" c == routine arguments == @@ -62,7 +65,7 @@ subroutine grdchk_getxx( #ifdef ALLOW_GRDCHK c == local variables == - integer il + integer il, ilDir integer dumiter _RL dumtime _RL dummy @@ -72,15 +75,15 @@ subroutine grdchk_getxx( logical ladinit #if (defined ALLOW_OBCSN_CONTROL || defined ALLOW_OBCSS_CONTROL) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) #endif #if (defined ALLOW_OBCSE_CONTROL || defined ALLOW_OBCSW_CONTROL) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - _RL loctmp2d (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL loctmp3d (1-olx:snx+olx,1-oly:sny+oly,Nr,nsx,nsy) + _RL loctmp2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL loctmp3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - character*(80) fname + character*(MAX_LEN_FNAM) fname c-- == external == @@ -93,167 +96,21 @@ subroutine grdchk_getxx( ladinit = .false. dumiter = 0 dumtime = 0. _d 0 - write(fname(1:80),'(80a)') ' ' +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + write(fname,'(a)') ' ' if ( grdchkvarindex .eq. 0 ) then STOP 'GRDCHK INDEX 0 NOT ALLOWED' -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - else if ( grdchkvarindex .eq. 1 ) then - il=ilnblnk( xx_theta_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_theta_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_theta_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_THETA0_CONTROL */ - -#ifdef ALLOW_SALT0_CONTROL - else if ( grdchkvarindex .eq. 2 ) then - il=ilnblnk( xx_salt_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_salt_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_salt_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SALT0_CONTROL */ - -#ifdef ALLOW_UVEL0_CONTROL - else if ( grdchkvarindex .eq. 27 ) then - il=ilnblnk( xx_uvel_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uvel_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_uvel_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_UVEL0_CONTROL */ - -#ifdef ALLOW_VVEL0_CONTROL - else if ( grdchkvarindex .eq. 28 ) then - il=ilnblnk( xx_vvel_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vvel_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_vvel_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VVEL0_CONTROL */ - -#ifdef ALLOW_HFLUX_CONTROL - else if ( grdchkvarindex .eq. 3 ) then - il=ilnblnk( xx_hflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_hflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_HFLUX_CONTROL */ - -#ifdef ALLOW_SFLUX_CONTROL - else if ( grdchkvarindex .eq. 4 ) then - il=ilnblnk( xx_sflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SFLUX_CONTROL */ - -#if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL)) - else if ( grdchkvarindex .eq. 5 ) then - il=ilnblnk( xx_tauu_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauu_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tauu_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_USTRESS_CONTROL */ - -#if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) - else if ( grdchkvarindex .eq. 6 ) then - il=ilnblnk( xx_tauv_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauv_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tauv_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VSTRESS_CONTROL */ - -#ifdef ALLOW_ATEMP_CONTROL - else if ( grdchkvarindex .eq. 7 ) then - il=ilnblnk( xx_atemp_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_atemp_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_atemp_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_ATEMP_CONTROL */ - -#ifdef ALLOW_AQH_CONTROL - else if ( grdchkvarindex .eq. 8 ) then - il=ilnblnk( xx_aqh_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_aqh_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_aqh_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_AQH_CONTROL */ - -#ifdef ALLOW_UWIND_CONTROL - else if ( grdchkvarindex .eq. 9 ) then - il=ilnblnk( xx_uwind_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uwind_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_uwind_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_UWIND_CONTROL */ - -#ifdef ALLOW_VWIND_CONTROL - else if ( grdchkvarindex .eq. 10 ) then - il=ilnblnk( xx_vwind_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vwind_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_vwind_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VWIND_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_OBCSN_CONTROL else if ( grdchkvarindex .eq. 11 ) then il=ilnblnk( xx_obcsn_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsn_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcsn_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSN_CONTROL */ @@ -262,10 +119,10 @@ subroutine grdchk_getxx( else if ( grdchkvarindex .eq. 12 ) then il=ilnblnk( xx_obcss_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcss_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcss_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSS_CONTROL */ @@ -274,10 +131,10 @@ subroutine grdchk_getxx( else if ( grdchkvarindex .eq. 13 ) then il=ilnblnk( xx_obcsw_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsw_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcsw_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSW_CONTROL */ @@ -286,344 +143,14 @@ subroutine grdchk_getxx( else if ( grdchkvarindex .eq. 14 ) then il=ilnblnk( xx_obcse_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcse_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcse_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSE_CONTROL */ -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_DIFFKR_CONTROL - else if ( grdchkvarindex .eq. 15 ) then - il=ilnblnk( xx_diffkr_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_diffkr_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_diffkr_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_DIFFKR_CONTROL */ - -#ifdef ALLOW_KAPGM_CONTROL - else if ( grdchkvarindex .eq. 16 ) then - il=ilnblnk( xx_kapgm_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapgm_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_kapgm_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_KAPGM_CONTROL */ - -#ifdef ALLOW_KAPREDI_CONTROL - else if ( grdchkvarindex .eq. 44 ) then - il=ilnblnk( xx_kapredi_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapredi_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_kapredi_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_KAPREDI_CONTROL */ - -#ifdef ALLOW_TR10_CONTROL - else if ( grdchkvarindex .eq. 17 ) then - il=ilnblnk( xx_tr1_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tr1_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tr1_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_TR10_CONTROL */ - -#if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL)) - else if ( grdchkvarindex .eq. 18 ) then - il=ilnblnk( xx_sst_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sst_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sst_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SST0_CONTROL */ - -#if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - else if ( grdchkvarindex .eq. 19 ) then - il=ilnblnk( xx_sss_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sss_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sss_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SSS0_CONTROL */ - -#ifdef ALLOW_DEPTH_CONTROL - else if ( grdchkvarindex .eq. 20 ) then - il=ilnblnk( xx_depth_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_depth_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_depth_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_DEPTH_CONTROL */ - -#ifdef ALLOW_EFLUXY0_CONTROL - else if ( grdchkvarindex .eq. 21 ) then - il=ilnblnk( xx_efluxy_file ) - write(fname(1:80),'(80a)') ' ' - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxy_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_efluxy_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EFLUXY0_CONTROL */ - -#ifdef ALLOW_EFLUXP0_CONTROL - else if ( grdchkvarindex .eq. 22 ) then - il=ilnblnk( xx_efluxp_file ) - write(fname(1:80),'(80a)') ' ' - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxp_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_efluxp_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EFLUXP0_CONTROL */ - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - else if ( grdchkvarindex .eq. 23 ) then - il=ilnblnk( xx_bottomdrag_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_bottomdrag_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_bottomdrag_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_BOTTOMDRAG_CONTROL */ - -#ifdef ALLOW_HFLUXM_CONTROL - else if ( grdchkvarindex .eq. 24 ) then - il=ilnblnk( xx_hfluxm_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hfluxm_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_hfluxm_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_HFLUXM_CONTROL */ - -#ifdef ALLOW_GEN2D_CONTROL - else if ( grdchkvarindex .eq. 30 ) then - il=ilnblnk( xx_gen2d_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen2d_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_gen2d_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_GEN2D_CONTROL */ - -#ifdef ALLOW_GEN3D_CONTROL - else if ( grdchkvarindex .eq. 31 ) then - il=ilnblnk( xx_gen3d_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen3d_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_gen3d_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_GEN3D_CONTROL */ - -#ifdef ALLOW_PRECIP_CONTROL - else if ( grdchkvarindex .eq. 32 ) then - il=ilnblnk( xx_precip_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_precip_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_precip_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_PRECIP_CONTROL */ - -#ifdef ALLOW_SWFLUX_CONTROL - else if ( grdchkvarindex .eq. 33 ) then - il=ilnblnk( xx_swflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_swflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SWFLUX_CONTROL */ - -#ifdef ALLOW_SWDOWN_CONTROL - else if ( grdchkvarindex .eq. 34 ) then - il=ilnblnk( xx_swdown_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swdown_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_swdown_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SWDOWN_CONTROL */ - -#ifdef ALLOW_LWFLUX_CONTROL - else if ( grdchkvarindex .eq. 35 ) then - il=ilnblnk( xx_lwflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_lwflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_LWFLUX_CONTROL */ - -#ifdef ALLOW_LWDOWN_CONTROL - else if ( grdchkvarindex .eq. 36 ) then - il=ilnblnk( xx_lwdown_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwdown_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_lwdown_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_LWDOWN_CONTROL */ - -#ifdef ALLOW_EVAP_CONTROL - else if ( grdchkvarindex .eq. 37 ) then - il=ilnblnk( xx_evap_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_evap_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_evap_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EVAP_CONTROL */ - -#ifdef ALLOW_SNOWPRECIP_CONTROL - else if ( grdchkvarindex .eq. 38 ) then - il=ilnblnk( xx_snowprecip_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_snowprecip_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_snowprecip_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SNOWPRECIP_CONTROL */ - -#ifdef ALLOW_APRESSURE_CONTROL - else if ( grdchkvarindex .eq. 39 ) then - il=ilnblnk( xx_apressure_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_apressure_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_apressure_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_APRESSURE_CONTROL */ - -#ifdef ALLOW_RUNOFF_CONTROL - else if ( grdchkvarindex .eq. 40 ) then - il=ilnblnk( xx_runoff_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_runoff_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_runoff_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_RUNOFF_CONTROL */ - -#ifdef ALLOW_SIAREA_CONTROL - else if ( grdchkvarindex .eq. 41 ) then - il=ilnblnk( xx_siarea_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siarea_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_siarea_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIAREA_CONTROL */ - -#ifdef ALLOW_SIHEFF_CONTROL - else if ( grdchkvarindex .eq. 42 ) then - il=ilnblnk( xx_siheff_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siheff_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_siheff_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIHEFF_CONTROL */ - -#ifdef ALLOW_SIHSNOW_CONTROL - else if ( grdchkvarindex .eq. 43 ) then - il=ilnblnk( xx_sihsnow_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sihsnow_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sihsnow_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIHSNOW_CONTROL */ - -#ifdef ALLOW_SHIFWFLX_CONTROL - else if ( grdchkvarindex .eq. 45 ) then - il=ilnblnk( xx_shifwflx_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_shifwflx_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_shifwflx_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SHIFWFLX_CONTROL */ - -#ifdef ALLOW_ETAN0_CONTROL - else if ( grdchkvarindex .eq. 29 ) then - il=ilnblnk( xx_etan_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_etan_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_etan_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_ETAN0_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_GENARR2D_CONTROL else if ( grdchkvarindex .ge. 101 .and. & grdchkvarindex .le. 100+maxCtrlArr2D ) then @@ -631,10 +158,10 @@ subroutine grdchk_getxx( if ( grdchkvarindex .eq. 100+iarr ) then il=ilnblnk( xx_genarr2d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr2d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_genarr2d_file(iarr)(1:il),'.',optimcycle end if endif @@ -648,10 +175,10 @@ subroutine grdchk_getxx( if ( grdchkvarindex .eq. 200+iarr ) then il=ilnblnk( xx_genarr3d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr3d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_genarr3d_file(iarr)(1:il),'.',optimcycle end if endif @@ -665,10 +192,10 @@ subroutine grdchk_getxx( if ( grdchkvarindex .eq. 300+iarr ) then il=ilnblnk( xx_gentim2d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_gentim2d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_gentim2d_file(iarr)(1:il),'.',optimcycle end if endif diff --git a/pkg/grdchk/grdchk_init.F b/pkg/grdchk/grdchk_init.F index 42932232bd..c01df50d70 100644 --- a/pkg/grdchk/grdchk_init.F +++ b/pkg/grdchk/grdchk_init.F @@ -27,27 +27,24 @@ subroutine grdchk_init( mythid ) #include "SIZE.h" #include "GRID.h" #include "ctrl.h" -#include "CTRL_OBCS.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" c == routine arguments == - integer mythid #ifdef ALLOW_GRDCHK c == local variables == - integer bi,bj - integer i,j,k - integer irec + integer k, iobcs integer itlo,ithi integer jtlo,jthi integer jmin,jmax integer imin,imax - - integer itest,iobcs - integer icomptest - + integer nobcsmax c == end of interface == jtlo = 1 @@ -61,11 +58,17 @@ subroutine grdchk_init( mythid ) _BEGIN_MASTER( mythid ) +#ifdef ALLOW_OBCS_CONTROL + nobcsmax = nobcs +#else + nobcsmax = 1 +#endif + c-- initialise do bj = jtlo,jthi do bi = itlo,ithi do k = 1,ncvarnrmax(grdchkvarindex) - do iobcs = 1, nobcs + do iobcs = 1, nobcsmax nwettile(bi,bj,k,iobcs) = 0 enddo enddo @@ -106,7 +109,7 @@ subroutine grdchk_init( mythid ) enddo enddo enddo -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_SHELFICE else if ( ncvargrd(grdchkvarindex) .eq. 'i' ) then do bj = jtlo,jthi do bi = itlo,ithi @@ -115,12 +118,12 @@ subroutine grdchk_init( mythid ) enddo enddo enddo -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_SHELFICE */ else if ( ncvargrd(grdchkvarindex) .eq. 'm' ) then do bj = jtlo,jthi do bi = itlo,ithi do k = 1,ncvarnrmax(grdchkvarindex) - do iobcs = 1, nobcs + do iobcs = 1, nobcsmax if ( grdchkvarindex .eq. 11 ) then #ifdef ALLOW_OBCSN_CONTROL nwettile(bi,bj,k,iobcs) = @@ -164,7 +167,7 @@ subroutine grdchk_init( mythid ) do bj = jtlo,jthi do bi = itlo,ithi do k = 1,ncvarnrmax(grdchkvarindex) - do iobcs = 1, nobcs + do iobcs = 1, nobcsmax ncvarcomp = ncvarcomp + nwettile(bi,bj,k,iobcs) maxncvarcomps = maxncvarcomps + & ncvarxmax(grdchkvarindex)* diff --git a/pkg/grdchk/grdchk_loc.F b/pkg/grdchk/grdchk_loc.F index 097a41f923..8174bd7618 100644 --- a/pkg/grdchk/grdchk_loc.F +++ b/pkg/grdchk/grdchk_loc.F @@ -3,46 +3,48 @@ # include "CTRL_OPTIONS.h" #endif - subroutine grdchk_loc( - I icomp, - I ichknum, - O icvrec, - O itile, - O jtile, - O layer, - O obcspos, - O itilepos, - O jtilepos, - O icglom1, - O itest, - O ierr, - I mythid - & ) +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: GRDCHK_LOC -c ================================================================== -c SUBROUTINE grdchk_loc -c ================================================================== -c -c o Get the location of a given component of the control vector for -c the current process. -c -c started: Christian Eckert eckert@mit.edu 04-Apr-2000 -c continued: heimbach@mit.edu: 13-Jun-2001 -c -c ================================================================== -c SUBROUTINE grdchk_loc -c ================================================================== +C !INTERFACE: + SUBROUTINE GRDCHK_LOC( + I icomp, + I ichknum, + O icvrec, + O itile, + O jtile, + O layer, + O obcspos, + O itilepos, + O jtilepos, + O icglom1, + O itest, + O ierr, + I myThid ) - implicit none - -c == global variables == +C !DESCRIPTION: +C ================================================================== +C SUBROUTINE GRDCHK_LOC +C ================================================================== +C o Get the location of a given component of the control vector for +C the current process. +C started: Christian Eckert eckert@mit.edu 04-Apr-2000 +C continued: heimbach@mit.edu: 13-Jun-2001 +C ================================================================== +C !USES: + IMPLICIT NONE +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" #include "ctrl.h" -#include "CTRL_OBCS.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" #ifdef ALLOW_OBCS # include "OBCS_GRID.h" #endif @@ -50,55 +52,39 @@ subroutine grdchk_loc( # include "SHELFICE.h" #endif /* ALLOW_SHELFICE */ -c == routine arguments == - - integer icomp - integer ichknum - integer icvrec - integer jtile - integer itile - integer layer - integer obcspos - integer itilepos - integer jtilepos - integer itest - integer ierr - integer mythid +C !INPUT/OUTPUT PARAMETERS: + INTEGER icomp + INTEGER ichknum + INTEGER icvrec + INTEGER jtile + INTEGER itile + INTEGER layer + INTEGER obcspos + INTEGER itilepos + INTEGER jtilepos + INTEGER itest + INTEGER ierr + INTEGER myThid #ifdef ALLOW_GRDCHK -c == local variables == - - integer bi,bj - integer i,j,k - integer itmp,jtmp - integer iobcs -c integer biwrk,bjwrk - integer iwrk, jwrk, kwrk - integer iobcswrk - integer irec, irecwrk - integer icglo, icglom1 - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer icomptest - integer icomploc - integer nobcsmax - -c == end of interface == - - jtlo = 1 - jthi = nsy - itlo = 1 - ithi = nsx - jmin = 1 - jmax = sny - imin = 1 - imax = snx +C !LOCAL VARIABLES: + INTEGER bi,bj + INTEGER i,j,k + INTEGER itmp,jtmp + INTEGER iobcs +c INTEGER biwrk,bjwrk + INTEGER iwrk, jwrk, kwrk +c INTEGER iobcswrk + INTEGER irec, irecwrk + INTEGER icglo, icglom1 + INTEGER icomptest + INTEGER icomploc + INTEGER nobcsmax +CEOP - _BEGIN_MASTER( mythid ) + _BEGIN_MASTER( myThid ) -c initialise parameters +C initialise parameters ierr = -5 icglom1 = 0 icomploc= 0 @@ -107,54 +93,59 @@ subroutine grdchk_loc( print *, 'ph-test icomp, ncvarcomp, ichknum ', & icomp, ncvarcomp, ichknum cph) - if ( icomp .gt. 0 ) then - if ( icomp .le. ncvarcomp ) then -c-- A valid component of the control variable has been selected. - if ( ichknum .EQ. 1 ) then - itest = 0 - icomptest = 0 - irecwrk = 1 -c bjwrk = 1 -c biwrk = 1 - kwrk = 1 - iobcswrk = 1 - jwrk = 1 - iwrk = 1 - icglo = 0 - else - itest = itestmem (ichknum-1) - icomptest = icompmem (ichknum-1) - irecwrk = irecmem (ichknum-1) -c bjwrk = bjmem (ichknum-1) -c biwrk = bimem (ichknum-1) - kwrk = klocmem (ichknum-1) - iobcswrk = iobcsmem (ichknum-1) - icglo = icglomem (ichknum-1) - jwrk = jlocmem (ichknum-1) - iwrk = ilocmem (ichknum-1) - iwrk = iwrk + 1 - end if + IF ( icomp .GT. 0 ) THEN + IF ( icomp .LE. ncvarcomp ) THEN +C-- A valid component of the control variable has been selected. + IF ( ichknum .EQ. 1 ) THEN + itest = 0 + icomptest = 0 + irecwrk = 1 +c bjwrk = 1 +c biwrk = 1 + kwrk = 1 +c iobcswrk = 1 + jwrk = 1 + iwrk = 1 + icglo = 0 + ELSE + itest = itestmem (ichknum-1) + icomptest = icompmem (ichknum-1) + irecwrk = irecmem (ichknum-1) +c bjwrk = bjmem (ichknum-1) +c biwrk = bimem (ichknum-1) + kwrk = klocmem (ichknum-1) +c iobcswrk = iobcsmem (ichknum-1) + icglo = icglomem (ichknum-1) + jwrk = jlocmem (ichknum-1) + iwrk = ilocmem (ichknum-1) + iwrk = iwrk + 1 + ENDIF -c-- set max loop index for obcs multiplicities - if ( ncvargrd(grdchkvarindex) .eq. 'm' ) then - nobcsmax = nobcs - else - nobcsmax = 1 - endif +C-- set max loop index for obcs multiplicities + IF ( ncvargrd(grdchkvarindex) .EQ. 'm' ) THEN +#ifdef ALLOW_OBCS_CONTROL + nobcsmax = nobcs +#else + print *, 'S/R grdchk_loc: Ooops!' +#endif + ELSE + nobcsmax = 1 + ENDIF cph( cph-print print *, 'ph-grd _loc: icomp, ichknum ', cph-print & icomp, ichknum, ncvarcomp cpj) -c-- Start to loop over records. - do irec = irecwrk, ncvarrecs(grdchkvarindex) -cph do iobcs = iobcswrk, nobcsmax +C-- Start to loop over records. + DO irec = irecwrk, ncvarrecs(grdchkvarindex) +c do iobcs = iobcswrk, nobcsmax iobcs = MOD((irec-1),nobcsmax) + 1 -c do bj = bjwrk, jthi -c do bi = biwrk, ithi - bj = jLocTile - bi = iLocTile - do k = kwrk, ncvarnrmax(grdchkvarindex) +c do bj = bjwrk, nSy +c do bi = biwrk, nSx + bj = jLocTile + bi = iLocTile + + DO k = kwrk, ncvarnrmax(grdchkvarindex) icglo = icglo + nwettile(bi,bj,k,iobcs) icglom1 = icglo - nwettile(bi,bj,k,iobcs) cph( @@ -163,19 +154,19 @@ subroutine grdchk_loc( cph-print print *, 'ph-grd _loc: icglo ', cph-print & k, icglo, icglom1, iwetsum(bi,bj,k) cpj) - if ( (ierr .ne. 0) .and. - & (icomp .gt. icglom1 .AND. icomp .LE. icglo) ) then + IF ( (ierr .NE. 0) .AND. + & (icomp .GT. icglom1 .AND. icomp .LE. icglo) ) THEN cph -cph if ( (ierr .ne. 0) .and. -cph & (icomp .gt. +cph if ( (ierr .NE. 0) .AND. +cph & (icomp .GT. cph & (iobcs-1)*iwetsum(bi,bj,nr)+iwetsum(bi,bj,k-1)) -cph & .and. -cph & (icomp .le. +cph & .AND. +cph & (icomp .LE. cph & (iobcs-1)*iwetsum(bi,bj,nr)+iwetsum(bi,bj,k))) then cph - if ( icomptest .EQ. 0 ) then + IF ( icomptest .EQ. 0 ) THEN icomptest = icglom1 - endif + ENDIF icomploc = icomp icvrec = irec itile = bi @@ -183,79 +174,79 @@ subroutine grdchk_loc( cph( cph-print print *, 'ph-grd irec, bj, bi, k ', irec, bj, bi, k cpj) - do j = jwrk, ncvarymax(grdchkvarindex) - do i = iwrk, ncvarxmax(grdchkvarindex) - if (ierr .ne. 0) then - if ( ncvargrd(grdchkvarindex) .eq. 'c' ) then - if ( maskC(i,j,k,bi,bj) .gt. 0.) then + DO j = jwrk, ncvarymax(grdchkvarindex) + DO i = iwrk, ncvarxmax(grdchkvarindex) + IF (ierr .NE. 0) THEN + IF ( ncvargrd(grdchkvarindex) .EQ. 'c' ) THEN + IF ( maskC(i,j,k,bi,bj) .GT. 0.) THEN icomptest = icomptest + 1 itmp = i jtmp = j - endif - else if ( ncvargrd(grdchkvarindex) .eq. 's' ) then - if ( _maskS(i,j,k,bi,bj) .gt. 0.) then + ENDIF + ELSEIF ( ncvargrd(grdchkvarindex) .EQ. 's' ) THEN + IF ( _maskS(i,j,k,bi,bj) .GT. 0.) THEN icomptest = icomptest + 1 itmp = i jtmp = j - endif - else if ( ncvargrd(grdchkvarindex) .eq. 'w' ) then - if ( _maskW(i,j,k,bi,bj) .gt. 0.) then + ENDIF + ELSEIF ( ncvargrd(grdchkvarindex) .EQ. 'w' ) THEN + IF ( _maskW(i,j,k,bi,bj) .GT. 0.) THEN icomptest = icomptest + 1 itmp = i jtmp = j - endif -#ifdef ALLOW_SHIFWFLX_CONTROL - else if ( ncvargrd(grdchkvarindex) .eq. 'i' ) then - if ( maskSHI(i,j,k,bi,bj) .gt. 0.) then + ENDIF +#ifdef ALLOW_SHELFICE + ELSEIF ( ncvargrd(grdchkvarindex) .EQ. 'i' ) THEN + IF ( maskSHI(i,j,k,bi,bj) .GT. 0.) THEN icomptest = icomptest + 1 itmp = i jtmp = j - endif -#endif /* ALLOW_SHIFWFLX_CONTROL */ - else if ( ncvargrd(grdchkvarindex) .eq. 'm' ) then - if ( grdchkvarindex .EQ. 11 ) then + ENDIF +#endif /* ALLOW_SHELFICE */ + ELSEIF ( ncvargrd(grdchkvarindex) .EQ. 'm' ) THEN + IF ( grdchkvarindex .EQ. 11 ) THEN #ifdef ALLOW_OBCSN_CONTROL - if ( grdchk_maskxz(i,k,bi,bj,iobcs) .gt. 0. - & .and. j.eq. OB_Jn(I,bi,bj) ) then + IF ( grdchk_maskxz(i,k,bi,bj,iobcs) .GT. 0. + & .AND. j.EQ. OB_Jn(i,bi,bj) ) THEN icomptest = icomptest + 1 itmp = i - jtmp = OB_Jn(I,bi,bj) - endif + jtmp = OB_Jn(i,bi,bj) + ENDIF #endif - else if ( grdchkvarindex .EQ. 12 ) then + ELSEIF ( grdchkvarindex .EQ. 12 ) THEN #ifdef ALLOW_OBCSS_CONTROL - if ( grdchk_maskxz(i,k,bi,bj,iobcs) .gt. 0. - & .and. j.eq. OB_Js(I,bi,bj) ) then + IF ( grdchk_maskxz(i,k,bi,bj,iobcs) .GT. 0. + & .AND. j.EQ. OB_Js(i,bi,bj) ) THEN icomptest = icomptest + 1 itmp = i - jtmp = OB_Js(I,bi,bj) - endif + jtmp = OB_Js(i,bi,bj) + ENDIF #endif - else if ( grdchkvarindex .EQ. 13 ) then + ELSEIF ( grdchkvarindex .EQ. 13 ) THEN #ifdef ALLOW_OBCSW_CONTROL - if ( grdchk_maskyz(j,k,bi,bj,iobcs) .gt. 0. - & .and. i.eq. OB_Iw(J,bi,bj) ) then + IF ( grdchk_maskyz(j,k,bi,bj,iobcs) .GT. 0. + & .AND. i.EQ. OB_Iw(j,bi,bj) ) THEN icomptest = icomptest + 1 - itmp = OB_Iw(J,bi,bj) + itmp = OB_Iw(j,bi,bj) jtmp = j - endif + ENDIF #endif - else if ( grdchkvarindex .EQ. 14 ) then + ELSEIF ( grdchkvarindex .EQ. 14 ) THEN #ifdef ALLOW_OBCSE_CONTROL - if ( grdchk_maskyz(j,k,bi,bj,iobcs) .gt. 0. - & .and. i.eq. OB_Ie(J,bi,bj) ) then + IF ( grdchk_maskyz(j,k,bi,bj,iobcs) .GT. 0. + & .AND. i.EQ. OB_Ie(j,bi,bj) ) THEN icomptest = icomptest + 1 - itmp = OB_Ie(J,bi,bj) + itmp = OB_Ie(j,bi,bj) jtmp = j - endif + ENDIF #endif - endif - endif + ENDIF + ENDIF cph( cph-print print *, 'ph-grd icomp, icomptest, icomploc, i, j ', cph-print & icomp, icomptest, icomploc, i, j cpj) - if ( icomploc .eq. icomptest ) then + IF ( icomploc .EQ. icomptest ) THEN itilepos = itmp jtilepos = jtmp layer = k @@ -266,68 +257,70 @@ subroutine grdchk_loc( print *, 'ph-grd -->hit<-- ', itmp,jtmp,k,iobcs goto 1234 cph) - endif - endif - enddo + ENDIF + ENDIF + ENDDO iwrk = 1 - enddo + ENDDO jwrk = 1 - else if (ierr .NE. 0) then - if (icomptest .EQ. icomp-1) then + ELSEIF (ierr .NE. 0) THEN + IF (icomptest .EQ. icomp-1) THEN icomptest = icomptest - else + ELSE icomptest = icomptest + nwettile(bi,bj,k,iobcs) - endif + ENDIF cph( cph-print print *, 'ph-grd after loop icomptest, icomploc, k ', cph-print & icomptest, icomploc, k cph) - iwrk = 1 - jwrk = 1 - else -c - endif -c-- End of loop over k - enddo - kwrk = 1 -c-- End of loop over bi -c enddo -c biwrk = 1 -c-- End of loop over bj + iwrk = 1 + jwrk = 1 + ENDIF + +C-- End of loop over k + ENDDO + kwrk = 1 +C-- End of loop over bi c enddo -c bjwrk = 1 -c-- End of loop over iobcs -cph enddo -cph iobcswrk = 1 -c-- End of loop over irec records. - enddo -c - else - if ( icomp .gt. maxncvarcomps ) then -c-- Such a component does not exist. - ierr = -4 - icvrec = -1 - jtile = -1 - itile = -1 - layer = -1 - obcspos = -1 - jtilepos = -1 - itilepos = -1 - else -c-- The component is a land point. - ierr = -3 - icvrec = -1 - jtile = -1 - itile = -1 - layer = -1 - obcspos = -1 - jtilepos = -1 - itilepos = -1 - endif - endif - else - if ( icomp .lt. 0 ) then -c-- Such a component does not exist. +c biwrk = 1 +C-- End of loop over bj +c enddo +c bjwrk = 1 +C-- End of loop over iobcs +c enddo +c iobcswrk = 1 +C-- End of loop over irec records. + ENDDO + + ELSE +C-- else icomp > ncvarcomp + IF ( icomp .GT. maxncvarcomps ) THEN +C-- Such a component does not exist. + ierr = -4 + icvrec = -1 + jtile = -1 + itile = -1 + layer = -1 + obcspos = -1 + jtilepos = -1 + itilepos = -1 + ELSE +C-- The component is a land point. + ierr = -3 + icvrec = -1 + jtile = -1 + itile = -1 + layer = -1 + obcspos = -1 + jtilepos = -1 + itilepos = -1 + ENDIF +C-- End if/else block icomp =< ncvarcomp + ENDIF + ELSE +C-- else not( icomp > 0 ) + IF ( icomp .LT. 0 ) THEN +C-- Such a component does not exist. ierr = -2 icvrec = -1 jtile = -1 @@ -336,8 +329,8 @@ subroutine grdchk_loc( obcspos = -1 jtilepos = -1 itilepos = -1 - else -c-- Component zero. + ELSE +C-- Component zero. ierr = -1 icvrec = -1 jtile = -1 @@ -346,16 +339,17 @@ subroutine grdchk_loc( obcspos = -1 jtilepos = -1 itilepos = -1 - endif - endif + ENDIF +C-- End if/else block icomp > 0 + ENDIF - 1234 continue + 1234 CONTINUE - _END_MASTER( mythid ) + _END_MASTER( myThid ) _BARRIER #endif /* ALLOW_GRDCHK */ - return - end + RETURN + END diff --git a/pkg/grdchk/grdchk_main.F b/pkg/grdchk/grdchk_main.F index 59d7dc2488..2aec055bfc 100644 --- a/pkg/grdchk/grdchk_main.F +++ b/pkg/grdchk/grdchk_main.F @@ -80,18 +80,24 @@ SUBROUTINE GRDCHK_MAIN( myThid ) #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "grdchk.h" #include "cost.h" -#include "ctrl.h" #include "g_cost.h" +#include "ctrl.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" + +#ifdef ALLOW_TAPENADE +# include "COST_TAP_TLM.h" +#endif C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == INTEGER myThid #ifdef ALLOW_GRDCHK C !LOCAL VARIABLES: -C == local variables == INTEGER myIter _RL myTime INTEGER bi, bj @@ -128,7 +134,6 @@ SUBROUTINE GRDCHK_MAIN( myThid ) _RL tmpplot1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL tmpplot2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL tmpplot3(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -C == end of interface == CEOP ioUnit = standardMessageUnit @@ -160,6 +165,14 @@ SUBROUTINE GRDCHK_MAIN( myThid ) ierr_grdchk = 0 adxxmemo = 0. ftlxxmemo = 0. + +#ifdef ALLOW_TAPENADE +C-- forward run with unperturbed control vector + myTime = startTime + myIter = nIter0 + CALL THE_MAIN_LOOP( myTime, myIter, myThid ) +#endif + #if (defined (ALLOW_ADMTLM)) fcref = objf_state_final(idep,jdep,1,1,1) #elif (defined (ALLOW_OPENAD)) @@ -281,7 +294,7 @@ SUBROUTINE GRDCHK_MAIN( myThid ) C-- 2. perform tangent linear run myTime = startTime myIter = nIter0 -#ifdef ALLOW_ADMTLM +# ifdef ALLOW_ADMTLM DO k=1,4*Nr+1 DO j=1,sNy DO i=1,sNx @@ -289,16 +302,25 @@ SUBROUTINE GRDCHK_MAIN( myThid ) ENDDO ENDDO ENDDO -#else +# else g_fc = 0. -#endif - +# endif + +# ifdef ALLOW_TAPENADE + CALL THE_MAIN_LOOP_D( myTime, myIter, myThid ) +# ifdef ALLOW_ADMTLM + ftlxxmemo = objf_state_finald(idep,jdep,1,1,1) +# else + ftlxxmemo = fcd +# endif +# else /* ALLOW_TAPENADE */ CALL G_THE_MAIN_LOOP( myTime, myIter, myThid ) -#ifdef ALLOW_ADMTLM +# ifdef ALLOW_ADMTLM ftlxxmemo = g_objf_state_final(idep,jdep,1,1,1) -#else +# else ftlxxmemo = g_fc -#endif +# endif +# endif /* ALLOW_TAPENADE */ C-- 3. reset control vector CALL GRDCHK_SETXX( icvrec, TANGENT_SIMULATION, @@ -332,7 +354,7 @@ SUBROUTINE GRDCHK_MAIN( myThid ) CALL THE_MAIN_LOOP( myTime, myIter, myThid ) #endif -#if (defined (ALLOW_ADMTLM)) +#ifdef ALLOW_ADMTLM fcpertplus = objf_state_final(idep,jdep,1,1,1) #elif (defined (ALLOW_OPENAD)) fcpertplus = fc%v diff --git a/pkg/grdchk/grdchk_print.F b/pkg/grdchk/grdchk_print.F index 2cb1ba3cf8..06015f6071 100644 --- a/pkg/grdchk/grdchk_print.F +++ b/pkg/grdchk/grdchk_print.F @@ -26,7 +26,7 @@ subroutine grdchk_print( #include "SIZE.h" #include "EEPARAMS.h" -#include "grdchk.h" +#include "GRDCHK.h" c == routine arguments == diff --git a/pkg/grdchk/grdchk_readparms.F b/pkg/grdchk/grdchk_readparms.F index 85d4f2e280..8a8a78992d 100644 --- a/pkg/grdchk/grdchk_readparms.F +++ b/pkg/grdchk/grdchk_readparms.F @@ -3,7 +3,7 @@ # include "CTRL_OPTIONS.h" #endif - SUBROUTINE GRDCHK_READPARMS( mythid ) + SUBROUTINE GRDCHK_READPARMS( myThid ) c ================================================================== c SUBROUTINE grdchk_readparms @@ -18,7 +18,7 @@ SUBROUTINE GRDCHK_READPARMS( mythid ) c SUBROUTINE grdchk_readparms c ================================================================== - implicit none + IMPLICIT NONE c == global variables == @@ -27,34 +27,20 @@ SUBROUTINE GRDCHK_READPARMS( mythid ) #include "PARAMS.h" #include "ctrl.h" -#include "grdchk.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif +#include "GRDCHK.h" c == routine arguments == - - integer mythid + INTEGER myThid #ifdef ALLOW_GRDCHK c == local variables == - INTEGER iGloTile, jGloTile -c integer i,j,k -c integer bi,bj -c integer itlo,ithi -c integer jtlo,jthi -c integer jmin,jmax -c integer imin,imax - - integer errio - integer il - integer iUnit - - character*(max_len_mbuf) msgbuf - character*(max_len_prec) record - -c == external == - - integer ilnblnk - external ilnblnk + INTEGER iUnit + CHARACTER*(MAX_LEN_MBUF) msgBuf c == end of interface == @@ -89,16 +75,7 @@ SUBROUTINE GRDCHK_READPARMS( mythid ) RETURN ENDIF -c jtlo = mybylo(mythid) -c jthi = mybyhi(mythid) -c itlo = mybxlo(mythid) -c ithi = mybxhi(mythid) -c jmin = 1-oly -c jmax = sny+oly -c imin = 1-olx -c imax = snx+olx - - _BEGIN_MASTER( mythid ) + _BEGIN_MASTER( myThid ) c-- Set default values. grdchk_eps = 1. _d 0 @@ -166,9 +143,9 @@ SUBROUTINE GRDCHK_READPARMS( mythid ) ENDIF c-- Summarize the gradient check setup. - call grdchk_Summary( mythid ) + call grdchk_Summary( myThid ) - _END_MASTER( mythid ) + _END_MASTER( myThid ) _BARRIER #endif /* ALLOW_GRDCHK */ diff --git a/pkg/grdchk/grdchk_setxx.F b/pkg/grdchk/grdchk_setxx.F index 0a368e8bda..2d5a1bd659 100644 --- a/pkg/grdchk/grdchk_setxx.F +++ b/pkg/grdchk/grdchk_setxx.F @@ -13,8 +13,7 @@ subroutine grdchk_setxx( I jtilepos, I xx_comp_ref, I ierr, - I mythid - & ) + I mythid ) c ================================================================== c SUBROUTINE grdchk_setxx @@ -38,16 +37,18 @@ subroutine grdchk_setxx( #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" -#include "CTRL_OBCS.h" +#ifdef ALLOW_OBCS_CONTROL +C CTRL_OBCS.h must be included before GRDCHK.h +# include "CTRL_OBCS.h" +#endif #include "optim.h" -#include "grdchk.h" +#include "GRDCHK.h" c == routine arguments == - integer icvrec integer theSimulationMode - integer jtile integer itile + integer jtile integer layer integer itilepos integer jtilepos @@ -56,33 +57,27 @@ subroutine grdchk_setxx( integer mythid #ifdef ALLOW_GRDCHK -c == local variables == +c-- == external == + integer ilnblnk + external ilnblnk +c == local variables == integer iarr - integer i,j,k - integer il + integer il, ilDir integer dumiter _RL dumtime _RL dummy - logical doglobalread logical ladinit - #if (defined ALLOW_OBCSN_CONTROL || defined ALLOW_OBCSS_CONTROL) - _RL tmpfldxz (1-olx:snx+olx,nr,nsx,nsy) + _RL tmpfldxz (1-OLx:sNx+OLx,Nr,nSx,nSy) #endif #if (defined ALLOW_OBCSE_CONTROL || defined ALLOW_OBCSW_CONTROL) - _RL tmpfldyz (1-oly:sny+oly,nr,nsx,nsy) + _RL tmpfldyz (1-OLy:sNy+OLy,Nr,nSx,nSy) #endif - _RL loctmp2d (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL loctmp3d (1-olx:snx+olx,1-oly:sny+oly,Nr,nsx,nsy) - - character*(80) fname - -c-- == external == - - integer ilnblnk - external ilnblnk + _RL loctmp2d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL loctmp3d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + character*(MAX_LEN_FNAM) fname c-- == end of interface == @@ -90,167 +85,21 @@ subroutine grdchk_setxx( ladinit = .false. dumiter = 0 dumtime = 0. _d 0 - write(fname(1:80),'(80a)') ' ' +c Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + write(fname,'(a)') ' ' if ( grdchkvarindex .eq. 0 ) then STOP 'GRDCHK INDEX 0 NOT ALLOWED' -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_THETA0_CONTROL - else if ( grdchkvarindex .eq. 1 ) then - il=ilnblnk( xx_theta_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_theta_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_theta_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_THETA0_CONTROL */ - -#ifdef ALLOW_SALT0_CONTROL - else if ( grdchkvarindex .eq. 2 ) then - il=ilnblnk( xx_salt_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_salt_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_salt_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SALT0_CONTROL */ - -#ifdef ALLOW_UVEL0_CONTROL - else if ( grdchkvarindex .eq. 27 ) then - il=ilnblnk( xx_uvel_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uvel_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_uvel_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_UVEL0_CONTROL */ - -#ifdef ALLOW_VVEL0_CONTROL - else if ( grdchkvarindex .eq. 28 ) then - il=ilnblnk( xx_vvel_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vvel_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_vvel_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VVEL0_CONTROL */ - -#ifdef ALLOW_HFLUX_CONTROL - else if ( grdchkvarindex .eq. 3 ) then - il=ilnblnk( xx_hflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_hflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_HFLUX_CONTROL */ - -#ifdef ALLOW_SFLUX_CONTROL - else if ( grdchkvarindex .eq. 4 ) then - il=ilnblnk( xx_sflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SFLUX_CONTROL */ - -#if (defined (ALLOW_USTRESS_CONTROL) || defined (ALLOW_TAUU0_CONTROL)) - else if ( grdchkvarindex .eq. 5 ) then - il=ilnblnk( xx_tauu_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauu_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tauu_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_USTRESS_CONTROL */ - -#if (defined (ALLOW_VSTRESS_CONTROL) || defined (ALLOW_TAUV0_CONTROL)) - else if ( grdchkvarindex .eq. 6 ) then - il=ilnblnk( xx_tauv_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tauv_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tauv_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VSTRESS_CONTROL */ - -#ifdef ALLOW_ATEMP_CONTROL - else if ( grdchkvarindex .eq. 7 ) then - il=ilnblnk( xx_atemp_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_atemp_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_atemp_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_ATEMP_CONTROL */ - -#ifdef ALLOW_AQH_CONTROL - else if ( grdchkvarindex .eq. 8 ) then - il=ilnblnk( xx_aqh_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_aqh_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_aqh_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_AQH_CONTROL */ - -#ifdef ALLOW_UWIND_CONTROL - else if ( grdchkvarindex .eq. 9 ) then - il=ilnblnk( xx_uwind_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_uwind_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_uwind_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_UWIND_CONTROL */ - -#ifdef ALLOW_VWIND_CONTROL - else if ( grdchkvarindex .eq. 10 ) then - il=ilnblnk( xx_vwind_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_vwind_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_vwind_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_VWIND_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_OBCSN_CONTROL else if ( grdchkvarindex .eq. 11 ) then il=ilnblnk( xx_obcsn_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsn_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcsn_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSN_CONTROL */ @@ -259,10 +108,10 @@ subroutine grdchk_setxx( else if ( grdchkvarindex .eq. 12 ) then il=ilnblnk( xx_obcss_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcss_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcss_file(1:il),'.',optimcycle end if @@ -272,10 +121,10 @@ subroutine grdchk_setxx( else if ( grdchkvarindex .eq. 13 ) then il=ilnblnk( xx_obcsw_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcsw_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcsw_file(1:il),'.',optimcycle end if @@ -285,350 +134,15 @@ subroutine grdchk_setxx( else if ( grdchkvarindex .eq. 14 ) then il=ilnblnk( xx_obcse_file ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_obcse_file(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_obcse_file(1:il),'.',optimcycle end if #endif /* ALLOW_OBCSE_CONTROL */ -#ifdef ECCO_CTRL_DEPRECATED - -#ifdef ALLOW_DIFFKR_CONTROL - else if ( grdchkvarindex .eq. 15 ) then - il=ilnblnk( xx_diffkr_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_diffkr_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_diffkr_file(1:il),'.',optimcycle - end if - -#endif /* ALLOW_DIFFKR_CONTROL */ - -#ifdef ALLOW_KAPGM_CONTROL - else if ( grdchkvarindex .eq. 16 ) then - il=ilnblnk( xx_kapgm_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapgm_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_kapgm_file(1:il),'.',optimcycle - end if - -#endif /* ALLOW_KAPGM_CONTROL */ - -#ifdef ALLOW_KAPREDI_CONTROL - else if ( grdchkvarindex .eq. 44 ) then - il=ilnblnk( xx_kapredi_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_kapredi_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_kapredi_file(1:il),'.',optimcycle - end if - -#endif /* ALLOW_KAPREDI_CONTROL */ - -#ifdef ALLOW_TR10_CONTROL - else if ( grdchkvarindex .eq. 17 ) then - il=ilnblnk( xx_tr1_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_tr1_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_tr1_file(1:il),'.',optimcycle - end if - -#endif /* ALLOW_TR10_CONTROL */ - -#if (defined (ALLOW_SST_CONTROL) || defined (ALLOW_SST0_CONTROL)) - else if ( grdchkvarindex .eq. 18 ) then - il=ilnblnk( xx_sst_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sst_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sst_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SST0_CONTROL */ - -#if (defined (ALLOW_SSS_CONTROL) || defined (ALLOW_SSS0_CONTROL)) - else if ( grdchkvarindex .eq. 19 ) then - il=ilnblnk( xx_sss_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sss_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sss_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SSS0_CONTROL */ - -#ifdef ALLOW_DEPTH_CONTROL - else if ( grdchkvarindex .eq. 20 ) then - il=ilnblnk( xx_depth_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_depth_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_depth_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_DEPTH_CONTROL */ - -#ifdef ALLOW_EFLUXY0_CONTROL - else if ( grdchkvarindex .eq. 21 ) then - il=ilnblnk( xx_efluxy_file ) - write(fname(1:80),'(80a)') ' ' - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxy_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_efluxy_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EFLUXY0_CONTROL */ - -#ifdef ALLOW_EFLUXP0_CONTROL - else if ( grdchkvarindex .eq. 22 ) then - il=ilnblnk( xx_efluxp_file ) - write(fname(1:80),'(80a)') ' ' - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_efluxp_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_efluxp_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EFLUXP0_CONTROL */ - -#ifdef ALLOW_BOTTOMDRAG_CONTROL - else if ( grdchkvarindex .eq. 23 ) then - il=ilnblnk( xx_bottomdrag_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_bottomdrag_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_bottomdrag_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_BOTTOMDRAG_CONTROL */ - -#ifdef ALLOW_HFLUXM_CONTROL - else if ( grdchkvarindex .eq. 24 ) then - il=ilnblnk( xx_hfluxm_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_hfluxm_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_hfluxm_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_HFLUXM_CONTROL */ - -#ifdef ALLOW_GEN2D_CONTROL - else if ( grdchkvarindex .eq. 30 ) then - il=ilnblnk( xx_gen2d_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen2d_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_gen2d_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_GEN2D_CONTROL */ - -#ifdef ALLOW_GEN3D_CONTROL - else if ( grdchkvarindex .eq. 31 ) then - il=ilnblnk( xx_gen3d_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_gen3d_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_gen3d_file(1:il),'.',optimcycle - end if - -#endif /* ALLOW_GEN3D_CONTROL */ - -#ifdef ALLOW_PRECIP_CONTROL - else if ( grdchkvarindex .eq. 32 ) then - il=ilnblnk( xx_precip_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_precip_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_precip_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_PRECIP_CONTROL */ - -#ifdef ALLOW_SWFLUX_CONTROL - else if ( grdchkvarindex .eq. 33 ) then - il=ilnblnk( xx_swflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_swflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SWFLUX_CONTROL */ - -#ifdef ALLOW_SWDOWN_CONTROL - else if ( grdchkvarindex .eq. 34 ) then - il=ilnblnk( xx_swdown_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_swdown_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_swdown_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SWDOWN_CONTROL */ - -#ifdef ALLOW_LWFLUX_CONTROL - else if ( grdchkvarindex .eq. 35 ) then - il=ilnblnk( xx_lwflux_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwflux_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_lwflux_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_LWFLUX_CONTROL */ - -#ifdef ALLOW_LWDOWN_CONTROL - else if ( grdchkvarindex .eq. 36 ) then - il=ilnblnk( xx_lwdown_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_lwdown_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_lwdown_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_LWDOWN_CONTROL */ - -#ifdef ALLOW_EVAP_CONTROL - else if ( grdchkvarindex .eq. 37 ) then - il=ilnblnk( xx_evap_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_evap_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_evap_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_EVAP_CONTROL */ - -#ifdef ALLOW_SNOWPRECIP_CONTROL - else if ( grdchkvarindex .eq. 38 ) then - il=ilnblnk( xx_snowprecip_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_snowprecip_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_snowprecip_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SNOWPRECIP_CONTROL */ - -#ifdef ALLOW_APRESSURE_CONTROL - else if ( grdchkvarindex .eq. 39 ) then - il=ilnblnk( xx_apressure_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_apressure_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_apressure_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_APRESSURE_CONTROL */ - -#ifdef ALLOW_RUNOFF_CONTROL - else if ( grdchkvarindex .eq. 40 ) then - il=ilnblnk( xx_runoff_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_runoff_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_runoff_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_RUNOFF_CONTROL */ - -#ifdef ALLOW_SIAREA_CONTROL - else if ( grdchkvarindex .eq. 41 ) then - il=ilnblnk( xx_siarea_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siarea_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_siarea_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIAREA_CONTROL */ - -#ifdef ALLOW_SIHEFF_CONTROL - else if ( grdchkvarindex .eq. 42 ) then - il=ilnblnk( xx_siheff_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_siheff_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_siheff_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIHEFF_CONTROL */ - -#ifdef ALLOW_SIHSNOW_CONTROL - else if ( grdchkvarindex .eq. 43 ) then - il=ilnblnk( xx_sihsnow_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_sihsnow_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_sihsnow_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SIHSNOW_CONTROL */ - -#ifdef ALLOW_SHIFWFLX_CONTROL - else if ( grdchkvarindex .eq. 45 ) then - il=ilnblnk( xx_shifwflx_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_shifwflx_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_shifwflx_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_SHIFWFLX_CONTROL */ - -#ifdef ALLOW_ETAN0_CONTROL - else if ( grdchkvarindex .eq. 29 ) then - il=ilnblnk( xx_etan_file ) - if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') - & yadmark, xx_etan_file(1:il),'.',optimcycle - else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') - & xx_etan_file(1:il),'.',optimcycle - end if -#endif /* ALLOW_ETAN0_CONTROL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - #ifdef ALLOW_GENARR2D_CONTROL else if ( grdchkvarindex .ge. 101 .and. & grdchkvarindex .le. 100+maxCtrlArr2D ) then @@ -636,10 +150,10 @@ subroutine grdchk_setxx( if ( grdchkvarindex .eq. 100+iarr ) then il=ilnblnk( xx_genarr2d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr2d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_genarr2d_file(iarr)(1:il),'.',optimcycle end if endif @@ -653,10 +167,10 @@ subroutine grdchk_setxx( if ( grdchkvarindex .eq. 200+iarr ) then il=ilnblnk( xx_genarr3d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_genarr3d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_genarr3d_file(iarr)(1:il),'.',optimcycle end if endif @@ -670,10 +184,10 @@ subroutine grdchk_setxx( if ( grdchkvarindex .eq. 300+iarr ) then il=ilnblnk( xx_gentim2d_file(iarr) ) if ( theSimulationMode .EQ. TANGENT_SIMULATION ) then - write(fname(1:80),'(3a,i10.10)') + write(fname,'(3a,i10.10)') ctrlDir(1:ilDir)// & yadmark, xx_gentim2d_file(iarr)(1:il),'.',optimcycle else if ( theSimulationMode .EQ. FORWARD_SIMULATION ) then - write(fname(1:80),'(2a,i10.10)') + write(fname,'(2a,i10.10)') ctrlDir(1:ilDir)// & xx_gentim2d_file(iarr)(1:il),'.',optimcycle end if endif diff --git a/pkg/grdchk/grdchk_summary.F b/pkg/grdchk/grdchk_summary.F index 629801635d..7df70165fa 100644 --- a/pkg/grdchk/grdchk_summary.F +++ b/pkg/grdchk/grdchk_summary.F @@ -24,7 +24,7 @@ subroutine grdchk_Summary( #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" -#include "grdchk.h" +#include "GRDCHK.h" c == routine arguments == diff --git a/pkg/icefront/ICEFRONT.h b/pkg/icefront/ICEFRONT.h index bbfe378833..f0990acd01 100644 --- a/pkg/icefront/ICEFRONT.h +++ b/pkg/icefront/ICEFRONT.h @@ -36,7 +36,7 @@ C R_icefront - icefront depth [m] (2D) C icefrontlength - icefront horizontal length divided C by grid cell area [m/m^2] (2D) C icefront_TendT - temperature tendency (Kelvin/s) -C icefront_TendS - salinity tendency (psu/s) +C icefront_TendS - salinity tendency (g/kg/s) C C-- Constants that can be set in data.icefront, namelist /ICEFRONT_EXF_PARM02/ C SGRunOffFile - name of subglacial runoff file (kg/s) diff --git a/pkg/kl10/kl10_calc.F b/pkg/kl10/kl10_calc.F index 079544ea0e..400040382b 100644 --- a/pkg/kl10/kl10_calc.F +++ b/pkg/kl10/kl10_calc.F @@ -35,7 +35,6 @@ SUBROUTINE KL10_CALC( #include "KL10.h" c#ifdef ALLOW_AUTODIFF_TAMC c# include "tamc.h" -c# include "tamc_keys.h" c#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT PARAMETERS: =================================================== @@ -57,9 +56,11 @@ SUBROUTINE KL10_CALC( C iMin, iMax, jMin, jMax :: array computation indices INTEGER I, J, K, Km1, JJ INTEGER iMin ,iMax ,jMin ,jMax,di - _RL KLviscTmp, rhot, tempu + _RL KLviscTmp, tempu _RL b0, buoyFreqf, buoyFreqc, KLviscold,zsum,zsums - _RL rhoS(1:Nr),RS(1:Nr) +C note: rhoS(0) is never used but could be reached when evaluating +C the "DO WHILE" expression around line 106 + _RL rhoS(0:Nr), RS(1:Nr) _RL dzp,ec,ep,es,epss(-1:0),epsw(-1:0),dz,KTemp c _RL bF(1:Nr) c _RL theta_mcb(1:Nr),theta_mcb3(1:Nr) @@ -76,9 +77,7 @@ SUBROUTINE KL10_CALC( DO J=jMin,jMax DO I=iMin,iMax K=1 - CALL FIND_RHO_SCALAR(theta(I,J,K,bi,bj), salt(I,J,K,bi,bj), - & totPhiHyd(I,J,K,bi,bj),rhot,myThid ) - rhoS(1)=rhot + rhoS(1)=rhoInSitu(I,J,K,bi,bj) RS(1)=rC(1) KLeps(I-1,J-1,1,bi,bj)=0.0 @@ -88,13 +87,15 @@ SUBROUTINE KL10_CALC( KLviscAr(I,J,1,bi,bj) = viscArNr(1) KLviscold = KLviscAr(I,J,1,bi,bj) ! at previous cell center +C Fill in density profile using vertical gradient of iso-neutral density (SigmaR) +C (valid also for nonlinear EOS + remove pressure effect) + DO K=2,Nr + rhoS(K)= rhoS(K-1) + rkSign*drC(K)*SigmaR(I,J,K) + RS(K)=rC(K) + ENDDO C get sorted densities rhoS, and the array with the depths from which C the density came from, RS. DO K=2,Nr - CALL FIND_RHO_SCALAR(theta(I,J,K,bi,bj), salt(I,J,K,bi - & ,bj),totPhiHyd(I,J,K,bi,bj),rhot,myThid ) - rhoS(K)=rhot - RS(K)=rC(K) c$$$ WRITE(msgBuf, '(A,I10.10,A,E10.4,A,E10.4)') 'Hellok ', K c$$$ & -1,' ',theta(I,J,K,bi,bj),' ',rhot c$$$ CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, diff --git a/pkg/kpp/KPP_OPTIONS.h b/pkg/kpp/KPP_OPTIONS.h index 250c1375ed..c04ad60708 100644 --- a/pkg/kpp/KPP_OPTIONS.h +++ b/pkg/kpp/KPP_OPTIONS.h @@ -38,6 +38,26 @@ C estimating a surface velocity that is independent of first C level thickness in the model. #undef KPP_ESTIMATE_UREF +C o The default matching of diffusivity as described in Large et al. (1994) +C can be turned off here, which sometimes helps to remove a noise problem +C at the bottom of the mixing layer when interior mixing is noisy. This +C is documented somehow in van Roekel et al. (2018), 10.1029/2018MS001336 +C For better backward compatibility, the flags are defined as negative +#undef KPP_DO_NOT_MATCH_DIFFUSIVITIES +#ifndef KPP_DO_NOT_MATCH_DIFFUSIVITIES +C only makes sense if the diffusitivies are matched +# undef KPP_DO_NOT_MATCH_DERIVATIVES +#endif /* KPP_DO_NOT_MATCH_DIFFUSIVITIES */ + +C o Include/exclude smooth regularization at the cost of changed results. +C With this flag defined, some MAX(var,phepsi) are replaced by var+phepsi +#undef KPP_SMOOTH_REGULARISATION + +C o reduce shear mxing by shsq**2/(shsq**2+1e-16) according to +C Polzin (1996), JPO, 1409-1425), so that there will be no shear mixing +C with very small shear +#undef KPP_SCALE_SHEARMIXING + C o Include/exclude KPP non/local transport terms #define KPP_GHAT diff --git a/pkg/kpp/kpp_calc.F b/pkg/kpp/kpp_calc.F index 1abc2ece1f..9f14eb342a 100644 --- a/pkg/kpp/kpp_calc.F +++ b/pkg/kpp/kpp_calc.F @@ -6,6 +6,12 @@ # include "SALT_PLUME_OPTIONS.h" #endif +C-- File kpp_calc.F: +C-- Contents +C-- o KPP_CALC - Main KPP interface routine. +C-- o KPP_CALC_DUMMY - Dummy routine for TAMC + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: KPP_CALC @@ -21,7 +27,6 @@ SUBROUTINE KPP_CALC( C | This subroutine serves as an interface between MITGCMUV | C | code and NCOM 1-D routines in kpp_routines.F | C *==========================================================* - IMPLICIT NONE c======================================================================= c @@ -100,6 +105,7 @@ SUBROUTINE KPP_CALC( c \ev C !USES: =============================================================== + IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -117,37 +123,34 @@ SUBROUTINE KPP_CALC( #endif /* ALLOW_SHELFICE */ #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ - EXTERNAL DIFFERENT_MULTIPLE - LOGICAL DIFFERENT_MULTIPLE - C !INPUT PARAMETERS: =================================================== c Routine arguments c bi, bj :: Current tile indices c myTime :: Current time in simulation c myIter :: Current iteration number in simulation c myThid :: My Thread Id. number - INTEGER bi, bj _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_KPP +C !FUNCTIONS: + LOGICAL DIFFERENT_MULTIPLE + EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: ==================================================== c Local constants c minusone, p0, p5, p25, p125, p0625 -c imin, imax, jmin, jmax - array computation indices - +c iMin, iMax, jMin, jMax - array computation indices _RL minusone - parameter( minusone=-1.0) + PARAMETER( minusone=-1.0) _RL p0 , p5 , p25 , p125 , p0625 - parameter( p0=0.0, p5=0.5, p25=0.25, p125=0.125, p0625=0.0625 ) - integer imin ,imax ,jmin ,jmax - parameter(imin=2-OLx,imax=sNx+OLx-1,jmin=2-OLy,jmax=sNy+OLy-1) + PARAMETER( p0=0.0, p5=0.5, p25=0.25, p125=0.125, p0625=0.0625 ) + INTEGER iMin ,iMax ,jMin ,jMax + PARAMETER(iMin=2-OLx,iMax=sNx+OLx-1,jMin=2-OLy,jMax=sNy+OLy-1) c Local arrays and variables c work? (nx,ny) - horizontal working arrays @@ -170,8 +173,7 @@ SUBROUTINE KPP_CALC( c ghat (nx,ny,Nr) - nonlocal transport coefficient (s/m^2) c hbl (nx,ny) - mixing layer depth (m) c kmtj (nx,ny) - maximum number of wet levels in each column - - integer work1 ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) + INTEGER work1 ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) _RL worka ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) _RL work2 ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) _RL ustar ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) @@ -197,23 +199,15 @@ SUBROUTINE KPP_CALC( _RL TTALPHA( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nrp1 ) _RL SSBETA ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nrp1 ) cph) - integer i, j, k, kp1, km1, im1, ip1, jm1, jp1 - integer ikppkey + integer i, j, kSurf, k, kp1, km1, im1, ip1, jm1, jp1 +C ikey :: tape key (depends on tiles) + integer ikey CEOP #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikppkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #else /* ALLOW_AUTODIFF_TAMC */ - ikppkey = 0 + ikey = 0 #endif /* ALLOW_AUTODIFF_TAMC */ c Check to see if new vertical mixing coefficient should be computed now? @@ -251,13 +245,13 @@ SUBROUTINE KPP_CALC( c d(rho{k,k})/d(T(k)) (kg/m^3/C) c ssbeta (stored in vddiff(:,:,:,2) to conserve stack memory) c - salt expansion coefficient without 1/rho factor -c d(rho{k,k})/d(S(k)) (kg/m^3/PSU) +c d(rho{k,k})/d(S(k)) ((kg/m^3)/(g/kg)) c------------------------------------------------------------------------ CALL STATEKPP( O work2, dbloc, Ritop, O TTALPHA, SSBETA, - I ikppkey, bi, bj, myThid ) + I ikey, bi, bj, myThid ) DO k = 1, Nr DO j = 1-OLy, sNy+OLy @@ -308,28 +302,33 @@ SUBROUTINE KPP_CALC( ENDDO #endif /* KPP_SMOOTH_DENS */ +c surface index + kSurf = 1 DO k = 1, Nr km1 = max(1,k-1) + kp1 = min(Nr,k+1) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx c zero out dbloc over land points (so that the convective -c part of the interior mixing can be diagnosed) -CML I am not sure if the masking for dbloc and ghat (=smoothed dbloc) -CML are correct because they are defined at the bottom of the cell -CML rather than the (MITgcm-standard) top of the cell. I think it should be -CML maskC(k)*mask(k+1) for these variables. +c part of the interior mixing can be diagnosed). +c ML: Note that dbloc and ghat (=smoothed dbloc) are defined at +c the bottom of the cell rather than the (MITgcm-standard) top +c of the cell; therefore the proper masking is maskC(k)*maskC(k+1) dbloc(i,j,k) = dbloc(i,j,k) * maskC(i,j,k,bi,bj) - & * maskC(i,j,km1,bi,bj) + & * maskC(i,j,kp1,bi,bj) ghat(i,j,k) = ghat(i,j,k) * maskC(i,j,k,bi,bj) - & * maskC(i,j,km1,bi,bj) + & * maskC(i,j,kp1,bi,bj) +#ifdef ALLOW_SHELFICE + IF ( useShelfIce ) kSurf = MAX(1,kTopC(i,j,bi,bj)) +#endif /* ALLOW_SHELFICE */ Ritop(i,j,k) = Ritop(i,j,k) * maskC(i,j,k,bi,bj) - & * maskC(i,j,km1,bi,bj) - if(k.eq.nzmax(i,j,bi,bj)) then + & * maskC(i,j,kSurf,bi,bj) + IF(k.EQ.nzmax(i,j,bi,bj)) THEN dbloc(i,j,k) = p0 ghat(i,j,k) = p0 Ritop(i,j,k) = p0 - endif + ENDIF c numerator of bulk richardson number on grid levels c note: land and ocean bottom values need to be set to zero @@ -343,11 +342,11 @@ SUBROUTINE KPP_CALC( cph( cph this avoids a single or double recomp./call of statekpp #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE work2 = comlev1_kpp, key = ikppkey +CADJ STORE work2 = comlev1_kpp, key = ikey #ifdef KPP_AUTODIFF_EXCESSIVE_STORE -CADJ STORE dbloc, Ritop, ghat = comlev1_kpp, key = ikppkey -CADJ STORE vddiff = comlev1_kpp, key = ikppkey -CADJ STORE TTALPHA, SSBETA = comlev1_kpp, key = ikppkey +CADJ STORE dbloc, Ritop, ghat = comlev1_kpp, key = ikey +CADJ STORE vddiff = comlev1_kpp, key = ikey +CADJ STORE TTALPHA, SSBETA = comlev1_kpp, key = ikey #endif #endif /* ALLOW_AUTODIFF_TAMC */ cph) @@ -360,8 +359,8 @@ SUBROUTINE KPP_CALC( CMLC to remind me that this still needs to be sorted out. CML shelfIceFac = 0. _d 0 CML IF ( useShelfIce ) selfIceFac = 1. _d 0 -CML DO j = jmin, jmax -CML DO i = imin, imax +CML DO j = jMin, jMax +CML DO i = iMin, iMax CML surfForcT = surfaceForcingT(i,j,bi,bj) CML & + shelficeForcingT(i,j,bi,bj) * shelfIceFac CML surfForcS = surfaceForcingS(i,j,bi,bj) @@ -431,11 +430,11 @@ SUBROUTINE KPP_CALC( O boplume, #endif /* ALLOW_SALT_PLUME */ O dVsq, - I ikppkey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid ) + I ikey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid ) CMLcph( CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE ustar = comlev1_kpp, key = ikppkey +CMLCADJ STORE ustar = comlev1_kpp, key = ikey CML#endif CMLcph) @@ -451,10 +450,10 @@ SUBROUTINE KPP_CALC( c shsq computation DO k = 1, Nrm1 kp1 = k + 1 - DO j = jmin, jmax + DO j = jMin, jMax jm1 = j - 1 jp1 = j + 1 - DO i = imin, imax + DO i = iMin, iMax im1 = i - 1 ip1 = i + 1 shsq(i,j,k) = p5 * ( @@ -489,10 +488,15 @@ SUBROUTINE KPP_CALC( ENDDO ENDDO +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(shsq, 'KPPshsq ',0,Nr,2,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ cph( #ifdef ALLOW_AUTODIFF_TAMC #ifdef KPP_AUTODIFF_EXCESSIVE_STORE -CADJ STORE dvsq, shsq = comlev1_kpp, key = ikppkey +CADJ STORE dvsq, shsq = comlev1_kpp, key = ikey #endif #endif /* ALLOW_AUTODIFF_TAMC */ cph) @@ -523,7 +527,7 @@ SUBROUTINE KPP_CALC( I TTALPHA, SSBETA, U KPPdiffKzT(1-OLx,1-OLy,1,bi,bj), U KPPdiffKzS(1-OLx,1-OLy,1,bi,bj), - I ikppkey,1-OLx,sNx+OLx,1-OLy,sNy+OLy,bi,bj,myThid) + I ikey,1-OLx,sNx+OLx,1-OLy,sNy+OLy,bi,bj,myThid) ENDIF #endif /* ndef EXCLUDE_KPP_DOUBLEDIFF */ @@ -534,23 +538,23 @@ SUBROUTINE KPP_CALC( ENDDO ENDDO CALL KPPMIX ( - I work1, shsq, dVsq, ustar - I , maskC(1-OLx,1-OLy,1,bi,bj) - I , bo, bosol + I work1, shsq, dVsq, ustar, + I maskC(1-OLx,1-OLy,1,bi,bj), + I bo, bosol, #ifdef ALLOW_SALT_PLUME - I , boplume, SaltPlumeDepth(1-OLx,1-OLy,bi,bj) + I boplume, SaltPlumeDepth(1-OLx,1-OLy,bi,bj), #ifdef SALT_PLUME_SPLIT_BASIN - I , XC(1-OLx,1-OLy,bi,bj), YC(1-OLx,1-OLy,bi,bj) + I XC(1-OLx,1-OLy,bi,bj), YC(1-OLx,1-OLy,bi,bj), #endif /* SALT_PLUME_SPLIT_BASIN */ #endif /* ALLOW_SALT_PLUME */ - I , dbloc, Ritop, work2 - I , KPPdiffKzS(1-OLx,1-OLy,1,bi,bj) - I , KPPdiffKzT(1-OLx,1-OLy,1,bi,bj) - I , ikppkey - O , vddiff - U , ghat - O , hbl - I , bi, bj, myTime, myIter, myThid ) + I dbloc, Ritop, work2, + I KPPdiffKzS(1-OLx,1-OLy,1,bi,bj), + I KPPdiffKzT(1-OLx,1-OLy,1,bi,bj), + I ikey, + O vddiff, + U ghat, + O hbl, + I bi, bj, myTime, myIter, myThid ) c----------------------------------------------------------------------- c zero out land values and transfer to global variables @@ -558,8 +562,8 @@ SUBROUTINE KPP_CALC( DO k = 1, Nr km1 = max(1,k-1) - DO j = jmin, jmax - DO i = imin, imax + DO j = jMin, jMax + DO i = iMin, iMax KPPviscAz(i,j,k,bi,bj) = vddiff(i,j,k-1,1) * maskC(i,j,k,bi,bj) & * maskC(i,j,km1,bi,bj) KPPdiffKzS(i,j,k,bi,bj)= vddiff(i,j,k-1,2) * maskC(i,j,k,bi,bj) @@ -571,13 +575,13 @@ SUBROUTINE KPP_CALC( ENDDO ENDDO ENDDO - k = 1 - DO j = jmin, jmax - DO i = imin, imax + kSurf = 1 + DO j = jMin, jMax + DO i = iMin, iMax #ifdef ALLOW_SHELFICE - if ( useShelfIce ) k = kTopC(i,j,bi,bj) + IF ( useShelfIce ) kSurf = MAX(1,kTopC(i,j,bi,bj)) #endif /* ALLOW_SHELFICE */ - KPPhbl(i,j,bi,bj) = hbl(i,j) * maskC(i,j,k,bi,bj) + KPPhbl(i,j,bi,bj) = hbl(i,j) * maskC(i,j,kSurf,bi,bj) ENDDO ENDDO @@ -610,7 +614,7 @@ SUBROUTINE KPP_CALC( cph( cph crucial: this avoids full recomp./call of kppmix #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KPPhbl = comlev1_kpp, key = ikppkey +CADJ STORE KPPhbl = comlev1_kpp, key = ikey #endif /* ALLOW_AUTODIFF_TAMC */ cph) @@ -676,19 +680,22 @@ SUBROUTINE KPP_CALC( END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: KPP_CALC_DUMMY +C !INTERFACE: ========================================================== SUBROUTINE KPP_CALC_DUMMY( I bi, bj, myTime, myIter, myThid ) + +C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE KPP_CALC_DUMMY | C | o Compute all KPP fields defined in KPP.h | C | o Dummy routine for TAMC C *==========================================================* -C | This subroutine serves as an interface between MITGCMUV | -C | code and NCOM 1-D routines in kpp_routines.F | -C *==========================================================* - IMPLICIT NONE +C !USES: =============================================================== + IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -697,21 +704,20 @@ SUBROUTINE KPP_CALC_DUMMY( #include "GRID.h" #include "GAD.h" -c Routine arguments +C !INPUT PARAMETERS: =================================================== c bi, bj :: Current tile indices c myTime :: Current time in simulation c myIter :: Current iteration number in simulation c myThid :: My Thread Id. number - INTEGER bi, bj _RL myTime INTEGER myIter INTEGER myThid #ifdef ALLOW_KPP - -c Local constants - integer i, j, k +C !LOCAL VARIABLES: ==================================================== + INTEGER i, j, k +CEOP DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx diff --git a/pkg/kpp/kpp_diagnostics_init.F b/pkg/kpp/kpp_diagnostics_init.F index fa0356d3e1..aa67b5f4e4 100644 --- a/pkg/kpp/kpp_diagnostics_init.F +++ b/pkg/kpp/kpp_diagnostics_init.F @@ -53,7 +53,6 @@ SUBROUTINE KPP_DIAGNOSTICS_INIT( myThid ) EXTERNAL GAD_DIAG_SUFX #endif - C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diagName = 'KPPviscA' @@ -141,6 +140,20 @@ SUBROUTINE KPP_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'KPPshsq ' + diagTitle = 'Local shear (V(k-1)-V(k))^2' + diagUnits = 'm^2/s^2 ' + diagCode = 'SM P UR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'KPPdVsq ' + diagTitle = 'Shear relative to surface (V(ksrf)-V(k))**2' + diagUnits = 'm^2/s^2 ' + diagCode = 'SM P UR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + #ifndef EXCLUDE_KPP_DOUBLEDIFF diagName = 'KPPnuddt' diagTitle = 'Vertical double diffusion coefficient for heat' @@ -173,7 +186,7 @@ SUBROUTINE KPP_DIAGNOSTICS_INIT( myThid ) #endif diagName = 'KPPg'//diagSufx diagTitle = 'KPP non-local Flux of Salinity' - diagUnits = 'psu.m^3/s ' + diagUnits = 'g/kg.m^3/s ' diagCode = 'WM LR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) diff --git a/pkg/kpp/kpp_forcing_surf.F b/pkg/kpp/kpp_forcing_surf.F index da9ae19c46..002f92b825 100644 --- a/pkg/kpp/kpp_forcing_surf.F +++ b/pkg/kpp/kpp_forcing_surf.F @@ -26,7 +26,7 @@ SUBROUTINE KPP_FORCING_SURF( O boplume, #endif /* ALLOW_SALT_PLUME */ O dVsq, - I ikppkey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid ) + I ikey, iMin, iMax, jMin, jMax, bi, bj, myTime, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -55,7 +55,7 @@ SUBROUTINE KPP_FORCING_SURF( C !INPUT PARAMETERS: =================================================== C Routine arguments -C ikppkeyb - key for storing trajectory for adjoint (taf) +C ikey - key for storing trajectory for adjoint (taf) C imin, imax, jmin, jmax - array computation indices C bi, bj - array indices on which to apply calculations C myTime - Current time in simulation @@ -63,7 +63,7 @@ SUBROUTINE KPP_FORCING_SURF( C rhoSurf- density of surface layer (kg/m^3) C surfForcU units are r_unit.m/s^2 (=m^2/s^2 if r=z) C surfForcV units are r_unit.m/s^2 (=m^2/s^-2 if r=z) -C surfForcS units are r_unit.psu/s (=psu.m/s if r=z) +C surfForcS units are r_unit.g/kg/s (=g/kg.m/s if r=z) C - EmPmR * S_surf plus salinity relaxation*drF(1) C surfForcT units are r_unit.Kelvin/s (=Kelvin.m/s if r=z) C - Qnet (+Qsw) plus temp. relaxation*drF(1) @@ -86,7 +86,7 @@ SUBROUTINE KPP_FORCING_SURF( C ttalpha - thermal expansion coefficient without 1/rho factor C d(rho{k,k})/d(T(k)) (kg/m^3/C) C ssbeta - salt expansion coefficient without 1/rho factor -C d(rho{k,k})/d(S(k)) (kg/m^3/PSU) +C d(rho{k,k})/d(S(k)) ((kg/m^3)/(g/kg)) C !OUTPUT PARAMETERS: C ustar (nx,ny) - surface friction velocity (m/s) C bo (nx,ny) - surface turbulent buoyancy forcing (m^2/s^3) @@ -95,7 +95,7 @@ SUBROUTINE KPP_FORCING_SURF( C dVsq (nx,ny,Nr) - velocity shear re surface squared C at grid levels for bldepth (m^2/s^2) - INTEGER ikppkey + INTEGER ikey INTEGER iMin, iMax, jMin, jMax INTEGER bi, bj INTEGER myThid @@ -173,15 +173,15 @@ SUBROUTINE KPP_FORCING_SURF( DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx ustar(i,j) = p0 - bo (I,J) = p0 - bosol(I,J) = p0 + bo (i,j) = p0 + bosol(i,j) = p0 ENDDO ENDDO #ifdef ALLOW_SALT_PLUME DO k = 1, Nrp1 DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx - boplume(I,J,k) = p0 + boplume(i,j,k) = p0 ENDDO ENDDO ENDDO @@ -199,7 +199,7 @@ SUBROUTINE KPP_FORCING_SURF( ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store work3 = comlev1_kpp, key = ikppkey +CADJ store work3 = comlev1_kpp, key = ikey #endif epsLocSq = phepsi*phepsi*drF(1)*drF(1) epsLoc = SQRT ( p5*phepsi*drF(1) ) @@ -222,22 +222,22 @@ SUBROUTINE KPP_FORCING_SURF( CML DO j = jmin, jmax CML DO i = imin, imax CMLC rhoSurf = dRho + rhoConst > 0 always, so we are safe here -CML work3(i,j) = 1. _d 0 / rhoSurf(I,J) +CML work3(i,j) = 1. _d 0 / rhoSurf(i,j) CML ENDDO CML ENDDO DO j = jmin, jmax DO i = imin, imax - bo(I,J) = - gravity * - & ( TTALPHA(I,J,1) * (surfForcT(i,j,bi,bj)+ + bo(i,j) = - gravity * + & ( TTALPHA(i,j,1) * (surfForcT(i,j,bi,bj)+ & surfForcTice(i,j,bi,bj)) + - & SSBETA(I,J,1) * surfForcS(i,j,bi,bj) ) - & / rhoSurf(I,J) -CML & * work3(I,J) - bosol(I,J) = gravity * TTALPHA(I,J,1) * Qsw(i,j,bi,bj) * + & SSBETA(i,j,1) * surfForcS(i,j,bi,bj) ) + & / rhoSurf(i,j) +CML & * work3(i,j) + bosol(i,j) = gravity * TTALPHA(i,j,1) * Qsw(i,j,bi,bj) * & recip_Cp*recip_rhoConst - & / rhoSurf(I,J) -CML & * work3(I,J) + & / rhoSurf(i,j) +CML & * work3(i,j) ENDDO ENDDO @@ -250,12 +250,12 @@ SUBROUTINE KPP_FORCING_SURF( kp1 = k+1 DO j = jmin, jmax DO i = imin, imax - temparray(I,J) = - gravity * - & ( SSBETA(I,J,k) * SPforcS(i,j,k) + - & TTALPHA(I,J,k)* SPforcT(i,j,k) / HeatCapacity_Cp ) - & * recip_rhoConst / rhoSurf(I,J) -CML & * recip_rhoConst * work3(I,J) - boplume(I,J,kp1) = boplume(I,J,k)+temparray(I,J) + temparray(i,j) = - gravity * + & ( SSBETA(i,j,k) * SPforcS(i,j,k) + + & TTALPHA(i,j,k)* SPforcT(i,j,k) / HeatCapacity_Cp ) + & * recip_rhoConst / rhoSurf(i,j) +CML & * recip_rhoConst * work3(i,j) + boplume(i,j,kp1) = boplume(i,j,k)+temparray(i,j) ENDDO ENDDO ENDDO @@ -265,12 +265,12 @@ SUBROUTINE KPP_FORCING_SURF( C initialization has been done already and does not have to be C repeated here (and definitely not inside the i/j loops) CML DO k = 2, Nrp1 -CML boplume(I,J,k) = 0. _d 0 +CML boplume(i,j,k) = 0. _d 0 CML ENDDO - boplume(I,J,1) = - gravity * SSBETA(I,J,1) + boplume(i,j,1) = - gravity * SSBETA(i,j,1) & * SPforcS(i,j,1) - & * recip_rhoConst / rhoSurf(I,J) -CML & * recip_rhoConst * work3(I,J) + & * recip_rhoConst / rhoSurf(i,j) +CML & * recip_rhoConst * work3(i,j) ENDDO ENDDO #endif /* SALT_PLUME_VOLUME */ @@ -278,7 +278,7 @@ SUBROUTINE KPP_FORCING_SURF( #endif /* ALLOW_SALT_PLUME */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ store ustar = comlev1_kpp, key = ikppkey +CADJ store ustar = comlev1_kpp, key = ikey #endif #ifdef ALLOW_DIAGNOSTICS @@ -332,7 +332,7 @@ SUBROUTINE KPP_FORCING_SURF( kTmp = nzmax(i,j,bi,bj) DO k = Nr, 1, -1 IF ( k .LT. nzmax(i,j,bi,bj) .AND. - & maskC(I,J,k,bi,bj) .GT. 0. .AND. + & maskC(i,j,k,bi,bj) .GT. 0. .AND. & dbloc(i,j,k) * recip_drC(k+1) .GT. dB_dz ) & kTmp = k ENDDO @@ -377,8 +377,9 @@ SUBROUTINE KPP_FORCING_SURF( C zRef is set to 0.1 * hMix subject to z0 <= zRef <= drF(1) zRef(i,j) = MAX ( epsilon * zRef(i,j), z0(i,j) ) -CML with this statement the high resolution case zRef > drF(1) is ruled out - zRef(i,j) = MIN ( zRef(i,j), drF(1) ) +C with this statement the high resolution case zRef > drF(1) is ruled out +C so we comment it out +CML zRef(i,j) = MIN ( zRef(i,j), drF(1) ) C Estimate reference velocity uRef and vRef. uRef(i,j) = p5 * ( uVel(i,j,1,bi,bj) + uVel(ip1,j,1,bi,bj) ) @@ -400,6 +401,25 @@ SUBROUTINE KPP_FORCING_SURF( & vonK / tempVar2 uRef(i,j) = uRef(i,j) + ustarX * tempVar2 vRef(i,j) = vRef(i,j) + ustarY * tempVar2 + ELSEIF ( zRef(i,j) .GE. drF(1) ) THEN +C if zref > drF(1), average over zref + uRef(i,j) = uRef(i,j)*drF(1) + vRef(i,j) = vRef(i,j)*drF(1) + k = 2 + DO WHILE ( ABS(rF(k+1)) .LE. zRef(i,j) ) + uRef(i,j) = uRef(i,j) + drF(k) * p5 + & * ( uVel(i,j,k,bi,bj) + uVel(ip1,j,k,bi,bj) ) + vRef(i,j) = vRef(i,j) + drF(k) * p5 + & * ( vVel(i,j,k,bi,bj) + vVel(i,jp1,k,bi,bj) ) + k = k+1 + ENDDO +C now k should be the index of the layer into which zref reaches + uRef(i,j) = uRef(i,j) + MAX(0.,zref(i,j)-ABS(rF(k))) * p5 + & * ( uVel(i,j,k,bi,bj) + uVel(ip1,j,k,bi,bj) ) + vRef(i,j) = vRef(i,j) + MAX(0.,zref(i,j)-ABS(rF(k))) * p5 + & * ( vVel(i,j,k,bi,bj) + vVel(i,jp1,k,bi,bj) ) + uRef(i,j) = uRef(i,j)/zRef(i,j) + vRef(i,j) = vRef(i,j)/zRef(i,j) ENDIF ENDDO @@ -487,5 +507,11 @@ SUBROUTINE KPP_FORCING_SURF( #endif /* KPP_ESTIMATE_UREF */ +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(dVsq, 'KPPdVsq ',0,Nr,2,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + RETURN END diff --git a/pkg/kpp/kpp_routines.F b/pkg/kpp/kpp_routines.F index 12268fb460..8576f30125 100644 --- a/pkg/kpp/kpp_routines.F +++ b/pkg/kpp/kpp_routines.F @@ -26,21 +26,21 @@ c*********************************************************************** SUBROUTINE KPPMIX ( - I kmtj, shsq, dvsq, ustar, msk - I , bo, bosol + I kmtj, shsq, dvsq, ustar, msk, + I bo, bosol, #ifdef ALLOW_SALT_PLUME - I , boplume,SPDepth + I boplume, SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN - I , lon,lat + I lon, lat, #endif /* SALT_PLUME_SPLIT_BASIN */ #endif /* ALLOW_SALT_PLUME */ - I , dbloc, Ritop, coriol - I , diffusKzS, diffusKzT - I , ikppkey - O , diffus - U , ghat - O , hbl - I , bi, bj, myTime, myIter, myThid ) + I dbloc, Ritop, coriol, + I diffusKzS, diffusKzT, + I ikey, + O diffus, + U ghat, + O hbl, + I bi, bj, myTime, myIter, myThid ) c----------------------------------------------------------------------- c @@ -71,6 +71,7 @@ SUBROUTINE KPPMIX ( c myTime :: Current time in simulation c myIter :: Current iteration number in simulation c myThid :: My Thread Id. number +C ikey :: tape key TAF-AD simulations (depends on tiles) c kmtj (imt) - number of vertical layers on this row c msk (imt) - surface mask (=1 if water, =0 otherwise) c shsq (imt,Nr) - (local velocity shear)^2 ((m/s)^2) @@ -92,9 +93,9 @@ SUBROUTINE KPPMIX ( c where hbl(i,j) -> hbl((j-1)*sNx+i) INTEGER bi, bj _RL myTime - integer myIter - integer myThid - integer kmtj (imt ) + INTEGER myIter + INTEGER myThid + INTEGER kmtj (imt ) _RL shsq (imt,Nr) _RL dvsq (imt,Nr) _RL ustar (imt ) @@ -115,7 +116,7 @@ SUBROUTINE KPPMIX ( _RL diffusKzS(imt,Nr) _RL diffusKzT(imt,Nr) - integer ikppkey + INTEGER ikey c output c diffus (imt,1) - vertical viscosity coefficient (m^2/s) @@ -140,7 +141,7 @@ SUBROUTINE KPPMIX ( c sigma (imt ) - normalized depth (d / hbl) c Rib (imt,Nr ) - bulk Richardson number - integer kbl(imt ) + INTEGER kbl(imt ) _RL bfsfc (imt ) _RL casea (imt ) _RL stable (imt ) @@ -149,7 +150,7 @@ SUBROUTINE KPPMIX ( _RL sigma (imt ) _RL Rib (imt,Nr ) - integer i, k, md + INTEGER i, k, md c----------------------------------------------------------------------- c compute interior mixing coefficients everywhere, due to constant @@ -161,24 +162,24 @@ SUBROUTINE KPPMIX ( cph( cph these storings avoid recomp. of Ri_iwmix #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ghat = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dbloc = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE ghat = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dbloc = comlev1_kpp, key=ikey, kind=isbyte #endif cph) - call Ri_iwmix ( - I kmtj, shsq, dbloc, ghat - I , diffusKzS, diffusKzT - I , ikppkey - O , diffus, myThid ) + CALL Ri_iwmix ( + I kmtj, shsq, dbloc, ghat, + I diffusKzS, diffusKzT, + I ikey, + O diffus, myThid ) cph( cph these storings avoid recomp. of Ri_iwmix cph DESPITE TAFs 'not necessary' warning! #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE dbloc = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE shsq = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE ghat = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE diffus = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE dbloc = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE shsq = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE ghat = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE diffus = comlev1_kpp, key=ikey, kind=isbyte #endif cph) @@ -187,13 +188,13 @@ SUBROUTINE KPPMIX ( c for blmix c----------------------------------------------------------------------- - do md = 1, mdiff - do k=1,Nrp1 - do i = 1,imt - if(k.ge.kmtj(i)) diffus(i,k,md) = 0.0 - end do - end do - end do + DO md = 1, mdiff + DO k=1,Nrp1 + DO i = 1,imt + IF (k.GE.kmtj(i)) diffus(i,k,md) = 0.0 + ENDDO + ENDDO + ENDDO c----------------------------------------------------------------------- c compute boundary layer mixing coefficients: @@ -201,39 +202,39 @@ SUBROUTINE KPPMIX ( c diagnose the new boundary layer depth c----------------------------------------------------------------------- - call bldepth ( - I kmtj - I , dvsq, dbloc, Ritop, ustar, bo, bosol + CALL bldepth ( + I kmtj, + I dvsq, dbloc, Ritop, ustar, bo, bosol, #ifdef ALLOW_SALT_PLUME - I , boplume,SPDepth + I boplume, SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN - I , lon,lat + I lon, lat, #endif /* SALT_PLUME_SPLIT_BASIN */ #endif /* ALLOW_SALT_PLUME */ - I , coriol - I , ikppkey - O , hbl, bfsfc, stable, casea, kbl, Rib, sigma - I , bi, bj, myTime, myIter, myThid ) + I coriol, + I ikey, + O hbl, bfsfc, stable, casea, kbl, Rib, sigma, + I bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE hbl,bfsfc,stable,casea,kbl = comlev1_kpp, -CADJ & key=ikppkey, kind=isbyte +CADJ & key=ikey, kind=isbyte #endif c----------------------------------------------------------------------- c compute boundary layer diffusivities c----------------------------------------------------------------------- - call blmix ( - I ustar, bfsfc, hbl, stable, casea, diffus, kbl - O , dkm1, blmc, ghat, sigma, ikppkey - I , myThid ) + CALL blmix ( + I ustar, bfsfc, hbl, stable, casea, diffus, kbl, + O dkm1, blmc, ghat, sigma, ikey, + I myThid ) cph( #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE dkm1,blmc,ghat = comlev1_kpp, -CADJ & key=ikppkey, kind=isbyte +CADJ & key=ikey, kind=isbyte CADJ STORE hbl, kbl, diffus, casea = comlev1_kpp, -CADJ & key=ikppkey, kind=isbyte +CADJ & key=ikey, kind=isbyte #endif cph) @@ -241,16 +242,16 @@ SUBROUTINE KPPMIX ( c enhance diffusivity at interface kbl - 1 c----------------------------------------------------------------------- - call enhance ( - I dkm1, hbl, kbl, diffus, casea - U , ghat - O , blmc - I , myThid ) + CALL enhance ( + I dkm1, hbl, kbl, diffus, casea, + U ghat, + O blmc, + I myThid ) cph( cph avoids recomp. of enhance #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE blmc = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE blmc = comlev1_kpp, key=ikey, kind=isbyte #endif cph) @@ -260,48 +261,48 @@ SUBROUTINE KPPMIX ( c (< 1 level), diffusivity blmc can become negative. The max-s below c are a hack until this problem is properly diagnosed and fixed. c----------------------------------------------------------------------- - do k = 1, Nr - do i = 1, imt - if (k .lt. kbl(i)) then + DO k = 1, Nr + DO i = 1, imt + IF (k .LT. kbl(i)) THEN #ifdef ALLOW_SHELFICE C when there is shelfice on top (msk(i)=0), reset the boundary layer C mixing coefficients blmc to pure Ri-number based mixing - blmc(i,k,1) = max ( blmc(i,k,1)*msk(i), + blmc(i,k,1) = MAX ( blmc(i,k,1)*msk(i), & diffus(i,k,1) ) - blmc(i,k,2) = max ( blmc(i,k,2)*msk(i), + blmc(i,k,2) = MAX ( blmc(i,k,2)*msk(i), & diffus(i,k,2) ) - blmc(i,k,3) = max ( blmc(i,k,3)*msk(i), + blmc(i,k,3) = MAX ( blmc(i,k,3)*msk(i), & diffus(i,k,3) ) #endif /* not ALLOW_SHELFICE */ - diffus(i,k,1) = max ( blmc(i,k,1), viscArNr(1) ) - diffus(i,k,2) = max ( blmc(i,k,2), diffusKzS(i,Nr) ) - diffus(i,k,3) = max ( blmc(i,k,3), diffusKzT(i,Nr) ) - else + diffus(i,k,1) = MAX ( blmc(i,k,1), viscArNr(1) ) + diffus(i,k,2) = MAX ( blmc(i,k,2), diffusKzS(i,Nr) ) + diffus(i,k,3) = MAX ( blmc(i,k,3), diffusKzT(i,Nr) ) + ELSE ghat(i,k) = 0. _d 0 - endif - end do - end do + ENDIF + ENDDO + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* subroutine bldepth ( - I kmtj - I , dvsq, dbloc, Ritop, ustar, bo, bosol + I kmtj, + I dvsq, dbloc, Ritop, ustar, bo, bosol, #ifdef ALLOW_SALT_PLUME - I , boplume,SPDepth + I boplume, SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN - I , lon,lat + I lon, lat, #endif /* SALT_PLUME_SPLIT_BASIN */ #endif /* ALLOW_SALT_PLUME */ - I , coriol - I , ikppkey - O , hbl, bfsfc, stable, casea, kbl, Rib, sigma - I , bi, bj, myTime, myIter, myThid ) + I coriol, + I ikey, + O hbl, bfsfc, stable, casea, kbl, Rib, sigma, + I bi, bj, myTime, myIter, myThid ) c the oceanic planetary boundary layer depth, hbl, is determined as c the shallowest depth where the bulk Richardson number is @@ -353,9 +354,9 @@ subroutine bldepth ( c coriol : Coriolis parameter (1/s) INTEGER bi, bj _RL myTime - integer myIter - integer myThid - integer kmtj(imt) + INTEGER myIter + INTEGER myThid + INTEGER kmtj(imt) _RL dvsq (imt,Nr) _RL dbloc (imt,Nr) _RL Ritop (imt,Nr) @@ -363,7 +364,7 @@ subroutine bldepth ( _RL bo (imt) _RL bosol (imt) _RL coriol (imt) - integer ikppkey + INTEGER ikey #ifdef ALLOW_SALT_PLUME _RL boplume (imt,Nrp1) _RL SPDepth (imt) @@ -386,7 +387,7 @@ subroutine bldepth ( _RL bfsfc (imt) _RL stable (imt) _RL casea (imt) - integer kbl(imt) + INTEGER kbl(imt) _RL Rib (imt,Nr) _RL sigma (imt) @@ -398,24 +399,23 @@ subroutine bldepth ( _RL wm(imt), ws(imt) _RL worka(imt) _RL bvsq, vtsq, hekman, hmonob, hlimit, tempVar1, tempVar2 - integer i, kl + INTEGER i, kl _RL p5 , eins - parameter ( p5=0.5, eins=1.0 ) + PARAMETER ( p5=0.5, eins=1.0 ) _RL minusone - parameter ( minusone=-1.0 ) + PARAMETER ( minusone=-1.0 ) #ifdef SALT_PLUME_VOLUME - integer km, km1 + INTEGER km, km1 _RL temp #endif #ifdef ALLOW_AUTODIFF_TAMC - integer kkppkey + INTEGER kkey #endif #ifdef ALLOW_DIAGNOSTICS c KPPBFSFC - Bo+radiation absorbed to d=hbf*hbl + plume (m^2/s^3) _RL KPPBFSFC(imt,Nr) - _RL KPPRi(imt,Nr) #endif /* ALLOW_DIAGNOSTICS */ c find bulk Richardson number at every grid level until > Ricr @@ -429,46 +429,45 @@ subroutine bldepth ( c initialize hbl and kbl to bottomed out values - do i = 1, imt + DO i = 1, imt Rib(i,1) = 0. _d 0 - if (kmtj(i).LT.1) kmtj(i) = 1 kbl(i) = kmtj(i) + IF (kmtj(i).LT.1) kbl(i) = 1 kl = kbl(i) hbl(i) = -zgrid(kl) - end do + ENDDO #ifdef ALLOW_DIAGNOSTICS - do kl = 1, Nr - do i = 1, imt + DO kl = 1, Nr + DO i = 1, imt KPPBFSFC(i,kl) = 0. _d 0 - KPPRi(i,kl) = 0. _d 0 - enddo - enddo + ENDDO + ENDDO #endif /* ALLOW_DIAGNOSTICS */ - do kl = 2, Nr + DO kl = 2, Nr #ifdef ALLOW_AUTODIFF_TAMC - kkppkey = (ikppkey-1)*Nr + kl + kkey = (ikey-1)*Nr + kl #endif c compute bfsfc = sw fraction at hbf * zgrid - do i = 1, imt + DO i = 1, imt worka(i) = zgrid(kl) - end do + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp_k, key = kkppkey, kind=isbyte +CADJ store worka = comlev1_kpp_k, key = kkey, kind=isbyte #endif - call SWFRAC( + CALL SWFRAC( I imt, hbf, U worka, I myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp_k, key = kkppkey, kind=isbyte +CADJ store worka = comlev1_kpp_k, key = kkey, kind=isbyte #endif - do i = 1, imt + DO i = 1, imt c use caseA as temporary array @@ -478,34 +477,34 @@ subroutine bldepth ( bfsfc(i) = bo(i) + bosol(i)*(1. - worka(i)) - end do + ENDDO #ifdef ALLOW_SALT_PLUME c compute bfsfc = plume fraction at hbf * zgrid IF ( useSALT_PLUME ) THEN #ifndef SALT_PLUME_VOLUME - do i = 1, imt + DO i = 1, imt worka(i) = zgrid(kl) - enddo + ENDDO Ccatn: in original way: accumulate all fractions of boplume above zgrid(kl) - call SALT_PLUME_FRAC( + CALL SALT_PLUME_FRAC( I imt, hbf,SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN I lon,lat, #endif /* SALT_PLUME_SPLIT_BASIN */ U worka, I myTime, myIter, myThid) - do i = 1, imt + DO i = 1, imt bfsfc(i) = bfsfc(i) + boplume(i,1)*(worka(i)) -C km=max(1,kbl(i)-1) +C km=MAX(1,kbl(i)-1) C temp = (plumefrac(i,km)+plumefrac(i,kbl(i)))/2.0 C bfsfc(i) = bfsfc(i) + boplume(i,1)*temp - enddo + ENDDO #else /* def SALT_PLUME_VOLUME */ catn: in vol way: need to integrate down to hbl, so first locate c k level associated with this hbl, then sum up all SPforc[T,S] DO i = 1, imt - km =max(1,kbl(i)-1) - km1=max(1,kbl(i)) + km =MAX(1,kbl(i)-1) + km1=MAX(1,kbl(i)) temp = (boplume(i,km)+boplume(i,km1))*p5 bfsfc(i) = bfsfc(i) + temp ENDDO @@ -514,28 +513,28 @@ subroutine bldepth ( #endif /* ALLOW_SALT_PLUME */ #ifdef ALLOW_DIAGNOSTICS - do i = 1, imt + DO i = 1, imt KPPBFSFC(i,kl) = bfsfc(i) - enddo + ENDDO #endif /* ALLOW_DIAGNOSTICS */ - do i = 1, imt + DO i = 1, imt stable(i) = p5 + sign(p5,bfsfc(i)) sigma(i) = stable(i) + (1. - stable(i)) * epsilon - enddo + ENDDO c----------------------------------------------------------------------- c compute velocity scales at sigma, for hbl= caseA = -zgrid(kl) c----------------------------------------------------------------------- - call wscale ( + CALL wscale ( I sigma, casea, ustar, bfsfc, O wm, ws, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ store ws = comlev1_kpp_k, key = kkppkey, kind=isbyte +CADJ store ws = comlev1_kpp_k, key = kkey, kind=isbyte #endif - do i = 1, imt + DO i = 1, imt c----------------------------------------------------------------------- c compute the turbulent shear contribution to Rib @@ -544,12 +543,17 @@ subroutine bldepth ( bvsq = p5 * 1 ( dbloc(i,kl-1) / (zgrid(kl-1)-zgrid(kl ))+ 2 dbloc(i,kl ) / (zgrid(kl )-zgrid(kl+1))) +CMLC Van Roekel et al 2018 suggest this, but our solution is +CMLC probably OK, too: +CML bvsq = MAX +CML 1 ( dbloc(i,kl-1) / (zgrid(kl-1)-zgrid(kl )), +CML 2 dbloc(i,kl ) / (zgrid(kl )-zgrid(kl+1))) - if (bvsq .eq. 0. _d 0) then + IF (bvsq .EQ. 0. _d 0) THEN vtsq = 0. _d 0 - else - vtsq = -zgrid(kl) * ws(i) * sqrt(abs(bvsq)) * Vtc - endif + ELSE + vtsq = -zgrid(kl) * ws(i) * SQRT(ABS(bvsq)) * Vtc + ENDIF c compute bulk Richardson number at new level c note: Ritop needs to be zero on land and ocean bottom @@ -564,19 +568,20 @@ subroutine bldepth ( c tempVar1 = dvsq(i,kl) + vtsq - tempVar2 = max(tempVar1, phepsi) +#ifdef KPP_SMOOTH_REGULARISATION + tempVar2 = tempVar1 + phepsi +#else + tempVar2 = MAX(tempVar1, phepsi) +#endif /* KPP_SMOOTH_REGULARISATION */ Rib(i,kl) = Ritop(i,kl) / tempVar2 -#ifdef ALLOW_DIAGNOSTICS - KPPRi(i,kl) = Rib(i,kl) -#endif - end do - end do + ENDDO + ENDDO #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL DIAGNOSTICS_FILL(KPPBFSFC,'KPPbfsfc',0,Nr,2,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(KPPRi ,'KPPRi ',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(Rib ,'KPPRi ',0,Nr,2,bi,bj,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */ @@ -584,37 +589,37 @@ subroutine bldepth ( cph without this store, there is a recomputation error for cph rib in adbldepth (probably partial recomputation problem) #ifdef ALLOW_AUTODIFF_TAMC -CADJ store Rib = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store Rib = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy),Nr /) #endif cph) - do kl = 2, Nr - do i = 1, imt - if (kbl(i).eq.kmtj(i) .and. Rib(i,kl).gt.Ricr) kbl(i) = kl - end do - end do + DO kl = 2, Nr + DO i = 1, imt + IF (kbl(i).EQ.kmtj(i) .AND. Rib(i,kl).GT.Ricr) kbl(i) = kl + ENDDO + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store kbl = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store kbl = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - do i = 1, imt + DO i = 1, imt kl = kbl(i) c linearly interpolate to find hbl where Rib = Ricr - if (kl.gt.1 .and. kl.lt.kmtj(i)) then + IF (kl.GT.1 .AND. kl.LT.kmtj(i)) THEN tempVar1 = (Rib(i,kl)-Rib(i,kl-1)) hbl(i) = -zgrid(kl-1) + (zgrid(kl-1)-zgrid(kl)) * 1 (Ricr - Rib(i,kl-1)) / tempVar1 - endif - end do +C this is the MOM5 formulation, (nearly) identical results +CML hbl(i) = ((Rib(i,kl-1)-Ricr)*zgrid(kl) - +CML 1 (Rib(i,kl)-Ricr)*zgrid(kl-1))/tempVar1 + ENDIF + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store hbl = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store hbl = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif @@ -622,51 +627,49 @@ subroutine bldepth ( c find stability and buoyancy forcing for boundary layer c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt worka(i) = hbl(i) - end do + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store worka = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - call SWFRAC( + CALL SWFRAC( I imt, minusone, U worka, I myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store worka = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - do i = 1, imt + DO i = 1, imt bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) - end do + ENDDO #ifdef ALLOW_SALT_PLUME IF ( useSALT_PLUME ) THEN #ifndef SALT_PLUME_VOLUME - do i = 1, imt + DO i = 1, imt worka(i) = hbl(i) - enddo - call SALT_PLUME_FRAC( + ENDDO + CALL SALT_PLUME_FRAC( I imt,minusone,SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN I lon,lat, #endif /* SALT_PLUME_SPLIT_BASIN */ U worka, I myTime, myIter, myThid ) - do i = 1, imt + DO i = 1, imt bfsfc(i) = bfsfc(i) + boplume(i,1) * (worka(i)) -C km=max(1,kbl(i)-1) +C km=MAX(1,kbl(i)-1) C temp = (plumefrac(i,km)+plumefrac(i,kbl(i)))/2.0 C bfsfc(i) = bfsfc(i) + boplume(i,1)*temp - enddo + ENDDO #else /* def SALT_PLUME_VOLUME */ DO i = 1, imt - km =max(1,kbl(i)-1) - km1=max(1,kbl(i)) + km =MAX(1,kbl(i)-1) + km1=MAX(1,kbl(i)) temp = (boplume(i,km)+boplume(i,km1))/2.0 bfsfc(i) = bfsfc(i) + temp ENDDO @@ -674,22 +677,20 @@ subroutine bldepth ( ENDIF #endif /* ALLOW_SALT_PLUME */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ store bfsfc = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store bfsfc = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif c-- ensure bfsfc is never 0 - do i = 1, imt + DO i = 1, imt stable(i) = p5 + sign( p5, bfsfc(i) ) - bfsfc(i) = sign(eins,bfsfc(i))*max(phepsi,abs(bfsfc(i))) - end do + bfsfc(i) = sign(eins,bfsfc(i))*MAX(phepsi,ABS(bfsfc(i))) + ENDDO cph( cph added stable to store list to avoid extensive recomp. #ifdef ALLOW_AUTODIFF_TAMC -CADJ store bfsfc, stable = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store bfsfc, stable = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif cph) @@ -700,32 +701,30 @@ subroutine bldepth ( c----------------------------------------------------------------------- IF ( LimitHblStable ) THEN - do i = 1, imt - if (bfsfc(i) .gt. 0.0) then - hekman = cekman * ustar(i) / max(abs(Coriol(i)),phepsi) - hmonob = cmonob * ustar(i)*ustar(i)*ustar(i) - & / vonk / bfsfc(i) - hlimit = stable(i) * min(hekman,hmonob) - & + (stable(i)-1.) * zgrid(Nr) - hbl(i) = min(hbl(i),hlimit) - end if - end do + DO i = 1, imt + IF (bfsfc(i) .GT. 0.0) THEN + hekman = cekman * ustar(i) / MAX(ABS(Coriol(i)),phepsi) + hmonob = cmonob * ustar(i)*ustar(i)*ustar(i) + & / vonk / bfsfc(i) + hlimit = stable(i) * MIN(hekman,hmonob) + & + (stable(i)-1.) * zgrid(Nr) + hbl(i) = MIN(hbl(i),hlimit) + ENDIF + ENDDO ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ store hbl = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store hbl = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - do i = 1, imt - hbl(i) = max(hbl(i),minKPPhbl) + DO i = 1, imt + hbl(i) = MAX(hbl(i),minKPPhbl) kbl(i) = kmtj(i) - end do + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store hbl = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store hbl = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif @@ -733,63 +732,61 @@ subroutine bldepth ( c find new kbl c----------------------------------------------------------------------- - do kl = 2, Nr - do i = 1, imt - if ( kbl(i).eq.kmtj(i) .and. (-zgrid(kl)).gt.hbl(i) ) then + DO kl = 2, Nr + DO i = 1, imt + IF ( kbl(i).EQ.kmtj(i) .AND. (-zgrid(kl)).GT.hbl(i) ) THEN kbl(i) = kl - endif - end do - end do + ENDIF + ENDDO + ENDDO c----------------------------------------------------------------------- c find stability and buoyancy forcing for final hbl values c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt worka(i) = hbl(i) - end do + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store worka = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - call SWFRAC( + CALL SWFRAC( I imt, minusone, U worka, I myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ store worka = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store worka = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif - do i = 1, imt + DO i = 1, imt bfsfc(i) = bo(i) + bosol(i) * (1. - worka(i)) - end do + ENDDO #ifdef ALLOW_SALT_PLUME IF ( useSALT_PLUME ) THEN #ifndef SALT_PLUME_VOLUME - do i = 1, imt + DO i = 1, imt worka(i) = hbl(i) - enddo - call SALT_PLUME_FRAC( + ENDDO + CALL SALT_PLUME_FRAC( I imt,minusone,SPDepth, #ifdef SALT_PLUME_SPLIT_BASIN I lon,lat, #endif /* SALT_PLUME_SPLIT_BASIN */ U worka, I myTime, myIter, myThid ) - do i = 1, imt + DO i = 1, imt bfsfc(i) = bfsfc(i) + boplume(i,1) * (worka(i)) -C km=max(1,kbl(i)-1) +C km=MAX(1,kbl(i)-1) C temp = (plumefrac(i,km)+plumefrac(i,kbl(i)))/2.0 C bfsfc(i) = bfsfc(i) + boplume(i,1)*temp - enddo + ENDDO #else /* def SALT_PLUME_VOLUME */ DO i = 1, imt - km =max(1,kbl(i)-1) - km1=max(1,kbl(i)-0) + km =MAX(1,kbl(i)-1) + km1=MAX(1,kbl(i)-0) temp = (boplume(i,km)+boplume(i,km1))/2.0 bfsfc(i) = bfsfc(i) + temp ENDDO @@ -797,31 +794,30 @@ subroutine bldepth ( ENDIF #endif /* ALLOW_SALT_PLUME */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ store bfsfc = comlev1_kpp -CADJ & , key=ikppkey, kind=isbyte, +CADJ store bfsfc = comlev1_kpp, key=ikey, kind=isbyte, CADJ & shape = (/ (sNx+2*OLx)*(sNy+2*OLy) /) #endif c-- ensures bfsfc is never 0 - do i = 1, imt + DO i = 1, imt stable(i) = p5 + sign( p5, bfsfc(i) ) - bfsfc(i) = sign(eins,bfsfc(i))*max(phepsi,abs(bfsfc(i))) - end do + bfsfc(i) = sign(eins,bfsfc(i))*MAX(phepsi,ABS(bfsfc(i))) + ENDDO c----------------------------------------------------------------------- c determine caseA and caseB c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt kl = kbl(i) casea(i) = p5 + 1 sign(p5, -zgrid(kl) - p5*hwide(kl) - hbl(i)) - end do + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* @@ -835,7 +831,7 @@ subroutine wscale ( c zetahat (=vonk*sigma*hbl*bfsfc). c c note: the lookup table is only used for unstable conditions -c (zehat.le.0), in the stable domain wm (=ws) gets computed +c (zehat.LE.0), in the stable domain wm (=ws) gets computed c directly. c IMPLICIT NONE @@ -850,7 +846,7 @@ subroutine wscale ( c ustar : surface friction velocity (m/s) c bfsfc : total surface buoyancy flux (m^2/s^3) c myThid : thread number for this instance of the routine - integer myThid + INTEGER myThid _RL sigma(imt) _RL hbl (imt) _RL ustar(imt) @@ -868,7 +864,7 @@ subroutine wscale ( c zehat : = zeta * ustar**3 _RL zehat - integer iz, izp1, ju, i, jup1 + INTEGER iz, izp1, ju, i, jup1 _RL udiff, zdiff, zfrac, ufrac, fzfrac, wam _RL wbm, was, wbs, u3, tempVar @@ -877,10 +873,10 @@ subroutine wscale ( c stable formulae c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt zehat = vonk*sigma(i)*hbl(i)*bfsfc(i) - if (zehat .le. zmax) then + IF (zehat .LE. zmax) THEN zdiff = zehat - zmin C For extremely negative buoyancy forcing bfsfc, zehat and hence @@ -892,16 +888,16 @@ subroutine wscale ( C only the lower limit values of the lookup tables wmt/wst are used. C Alternatively, one can get rid of the lookup table altogether C and compute the coefficients online (done in NEMO, for example). -C zdiff = max( 0. _d 0, zehat - zmin ) - iz = int( zdiff / deltaz ) - iz = min( iz, nni ) - iz = max( iz, 0 ) +C zdiff = MAX( 0. _d 0, zehat - zmin ) + iz = INT( zdiff / deltaz ) + iz = MIN( iz, nni ) + iz = MAX( iz, 0 ) izp1 = iz + 1 udiff = ustar(i) - umin - ju = int( udiff / deltau ) - ju = min( ju, nnj ) - ju = max( ju, 0 ) + ju = INT( udiff / deltau ) + ju = MIN( ju, nnj ) + ju = MAX( ju, 0 ) jup1 = ju + 1 zfrac = zdiff / deltaz - float(iz) @@ -916,28 +912,28 @@ subroutine wscale ( wbs = fzfrac * wst(iz,ju ) + zfrac * wst(izp1,ju ) ws(i) = (1.-ufrac) * wbs + ufrac * was - else + ELSE u3 = ustar(i) * ustar(i) * ustar(i) tempVar = u3 + conc1 * zehat wm(i) = vonk * ustar(i) * u3 / tempVar ws(i) = wm(i) - endif + ENDIF - end do + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* subroutine Ri_iwmix ( I kmtj, shsq, dbloc, dblocSm, I diffusKzS, diffusKzT, - I ikppkey, + I ikey, O diffus, I myThid ) @@ -967,14 +963,14 @@ subroutine Ri_iwmix ( c diffusKzS(imt,Nr)- background vertical diffusivity for scalars (m^2/s) c diffusKzT(imt,Nr)- background vertical diffusivity for theta (m^2/s) c myThid :: My Thread Id. number - integer kmtj (imt) + INTEGER kmtj (imt) _RL shsq (imt,Nr) _RL dbloc (imt,Nr) _RL dblocSm (imt,Nr) _RL diffusKzS(imt,Nr) _RL diffusKzT(imt,Nr) - integer ikppkey - integer myThid + INTEGER ikey + INTEGER myThid c output c diffus(imt,0:Nrp1,1) vertical viscosivity coefficient (m^2/s) @@ -990,11 +986,11 @@ subroutine Ri_iwmix ( _RL Rig _RL fRi, fcon _RL ratio - integer i, ki, kp1 + INTEGER i, ki, kp1 _RL c1, c0 #ifdef ALLOW_KPP_VERTICALLY_SMOOTH - integer mr + INTEGER mr CADJ INIT kpp_ri_tape_mr = common, 1 #endif @@ -1010,70 +1006,85 @@ subroutine Ri_iwmix ( #ifdef ALLOW_AUTODIFF C break data flow dependence on diffus diffus(1,1,1) = 0.0 - do ki = 1, Nr - do i = 1, imt + DO ki = 1, Nr + DO i = 1, imt diffus(i,ki,1) = 0. diffus(i,ki,2) = 0. diffus(i,ki,3) = 0. - enddo - enddo + ENDDO + ENDDO #endif - do ki = 1, Nr - do i = 1, imt - if (kmtj(i) .LE. 1 ) then + DO ki = 1, Nr + DO i = 1, imt + IF (kmtj(i) .LE. 1 ) THEN diffus(i,ki,1) = 0. diffus(i,ki,2) = 0. - elseif (ki .GE. kmtj(i)) then + ELSEIF (ki .GE. kmtj(i)) THEN diffus(i,ki,1) = diffus(i,ki-1,1) diffus(i,ki,2) = diffus(i,ki-1,2) - else + ELSE diffus(i,ki,1) = dblocSm(i,ki) * (zgrid(ki)-zgrid(ki+1)) - & / max( Shsq(i,ki), phepsi ) +#ifdef KPP_SMOOTH_REGULARISATION + & / ( Shsq(i,ki) + phepsi**2 ) +#else + & / MAX( Shsq(i,ki), phepsi ) +#endif diffus(i,ki,2) = dbloc(i,ki) / (zgrid(ki)-zgrid(ki+1)) - endif - end do - end do + ENDIF + ENDDO + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ store diffus = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ store diffus = comlev1_kpp, key=ikey, kind=isbyte #endif c----------------------------------------------------------------------- c vertically smooth Ri #ifdef ALLOW_KPP_VERTICALLY_SMOOTH - do mr = 1, num_v_smooth_Ri + DO mr = 1, num_v_smooth_Ri #ifdef ALLOW_AUTODIFF_TAMC -CADJ store diffus(:,:,1) = kpp_ri_tape_mr -CADJ & , key=mr, shape=(/ (sNx+2*OLx)*(sNy+2*OLy),Nr+2 /) +CADJ store diffus(:,:,1) = kpp_ri_tape_mr, key=mr +CADJ & , shape=(/ (sNx+2*OLx)*(sNy+2*OLy),Nr+2 /) +CMLCADJ store diffus(:,:,2) = kpp_ri_tape_mr, key=mr +CMLCADJ & , shape=(/ (sNx+2*OLx)*(sNy+2*OLy),Nr+2 /) #endif - call z121 ( + CALL z121 ( U diffus(1,0,1), I myThid ) - end do +C it may also make sense to smooth buoyancy vertically +CML CALL z121 ( +CML U diffus(1,0,2), +CML I myThid ) + ENDDO #endif c----------------------------------------------------------------------- c after smoothing loop - do ki = 1, Nr - do i = 1, imt + DO ki = 1, Nr + DO i = 1, imt c evaluate f of Brunt-Vaisala squared for convection, store in fcon - Rig = max ( diffus(i,ki,2) , BVSQcon ) - ratio = min ( (BVSQcon - Rig) / BVSQcon, c1 ) + Rig = MAX ( diffus(i,ki,2) , BVSQcon ) + ratio = MIN ( (BVSQcon - Rig) / BVSQcon, c1 ) fcon = c1 - ratio * ratio fcon = fcon * fcon * fcon c evaluate f of smooth Ri for shear instability, store in fRi - Rig = max ( diffus(i,ki,1), c0 ) - ratio = min ( Rig / Riinfty , c1 ) + Rig = MAX ( diffus(i,ki,1), c0 ) + ratio = MIN ( Rig / Riinfty , c1 ) fRi = c1 - ratio * ratio fRi = fRi * fRi * fRi - +#ifdef KPP_SCALE_SHEARMIXING +C reduce shear mixing when there is no shear (Polzin, 1996, JPO, 1409-1425) +C importend from MOM5 code + fRi = fRi * shsq(i,ki)*shsq(i,ki) + & /(shsq(i,ki)*shsq(i,ki) + 1. _d -16) +#endif c ---------------------------------------------------------------------- c evaluate diffusivities and viscosity c mixing due to internal waves, and shear and static instability @@ -1085,35 +1096,35 @@ subroutine Ri_iwmix ( diffus(i,ki,3) = diffusKzT(i,kp1) #else /* EXCLUDE_KPP_SHEAR_MIX */ # ifdef ALLOW_AUTODIFF - if ( inAdMode ) then + IF ( inAdMode .AND. .NOT. inAdExact ) THEN diffus(i,ki,1) = viscArNr(1) diffus(i,ki,2) = diffusKzS(i,kp1) diffus(i,ki,3) = diffusKzT(i,kp1) - else + ELSE # else /* ALLOW_AUTODIFF */ - if ( .TRUE. ) then + IF ( .TRUE. ) THEN # endif /* ALLOW_AUTODIFF */ diffus(i,ki,1) = viscArNr(1) + fcon*difmcon + fRi*difm0 diffus(i,ki,2) = diffusKzS(i,kp1)+fcon*difscon+fRi*difs0 diffus(i,ki,3) = diffusKzT(i,kp1)+fcon*diftcon+fRi*dift0 - endif + ENDIF #endif /* EXCLUDE_KPP_SHEAR_MIX */ - end do - end do + ENDDO + ENDDO c ------------------------------------------------------------------------ c set surface values to 0.0 - do i = 1, imt + DO i = 1, imt diffus(i,0,1) = c0 diffus(i,0,2) = c0 diffus(i,0,3) = c0 - end do + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* @@ -1138,7 +1149,7 @@ subroutine z121 ( c------------- c v : 2-D array to be smoothed in Nrp1 direction c myThid: thread number for this instance of the routine - integer myThid + INTEGER myThid _RL v(imt,0:Nrp1) #ifdef ALLOW_KPP @@ -1146,10 +1157,10 @@ subroutine z121 ( c local _RL zwork, zflag _RL KRi_range(1:Nrp1) - integer i, k, km1, kp1 + INTEGER i, k, km1, kp1 _RL p0 , p25 , p5 , p2 - parameter ( p0 = 0.0, p25 = 0.25, p5 = 0.5, p2 = 2.0 ) + PARAMETER ( p0 = 0.0, p25 = 0.25, p5 = 0.5, p2 = 2.0 ) KRi_range(Nrp1) = p0 @@ -1161,7 +1172,7 @@ subroutine z121 ( CADJ INIT z121tape = common, Nr #endif /* ALLOW_AUTODIFF_TAMC */ - do i = 1, imt + DO i = 1, imt k = 1 #ifdef ALLOW_AUTODIFF_TAMC @@ -1169,11 +1180,11 @@ subroutine z121 ( #endif v(i,Nrp1) = v(i,Nr) - do k = 1, Nr + DO k = 1, Nr KRi_range(k) = p5 + SIGN(p5,v(i,k)) KRi_range(k) = KRi_range(k) * & ( p5 + SIGN(p5,(Riinfty-v(i,k))) ) - end do + ENDDO zwork = KRi_range(1) * v(i,1) v(i,1) = p2 * v(i,1) + @@ -1181,7 +1192,7 @@ subroutine z121 ( zflag = p2 + KRi_range(1) * KRi_range(2) v(i,1) = v(i,1) / zflag - do k = 2, Nr + DO k = 2, Nr #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE v(i,k), zwork = z121tape #endif @@ -1194,14 +1205,14 @@ subroutine z121 ( zwork = KRi_range(k) * zflag zflag = p2 + KRi_range(k)*(KRi_range(kp1)+KRi_range(km1)) v(i,k) = v(i,k) / zflag - end do + ENDDO - end do + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* @@ -1222,7 +1233,7 @@ subroutine smooth_horiz ( c k : vertical index used for masking c myThid : thread number for this instance of the routine INTEGER myThid - integer k, bi, bj + INTEGER k, bi, bj c input/output c fld : 2-D array to be smoothed @@ -1231,20 +1242,20 @@ subroutine smooth_horiz ( #ifdef ALLOW_KPP c local - integer i, j, im1, ip1, jm1, jp1 + INTEGER i, j, im1, ip1, jm1, jp1 _RL tempVar _RL fld_tmp( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy ) - integer imin , imax , jmin , jmax - parameter(imin=2-OLx, imax=sNx+OLx-1, jmin=2-OLy, jmax=sNy+OLy-1) + INTEGER iMin , iMax , jMin , jMax + PARAMETER(iMin=2-OLx, iMax=sNx+OLx-1, jMin=2-OLy, jMax=sNy+OLy-1) _RL p0 , p5 , p25 , p125 , p0625 - parameter( p0=0.0, p5=0.5, p25=0.25, p125=0.125, p0625=0.0625 ) + PARAMETER( p0=0.0, p5=0.5, p25=0.25, p125=0.125, p0625=0.0625 ) - DO j = jmin, jmax + DO j = jMin, jMax jm1 = j-1 jp1 = j+1 - DO i = imin, imax + DO i = iMin, iMax im1 = i-1 ip1 = i+1 tempVar = @@ -1276,23 +1287,23 @@ subroutine smooth_horiz ( ENDDO c transfer smoothed field to output array - DO j = jmin, jmax - DO i = imin, imax + DO j = jMin, jMax + DO i = iMin, iMax fld(i,j) = fld_tmp(i,j) ENDDO ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* subroutine blmix ( - I ustar, bfsfc, hbl, stable, casea, diffus, kbl - O , dkm1, blmc, ghat, sigma, ikppkey - I , myThid ) + I ustar, bfsfc, hbl, stable, casea, diffus, kbl, + O dkm1, blmc, ghat, sigma, ikey, + I myThid ) c mixing coefficients within boundary layer depend on surface c forcing and the magnitude and gradient of interior mixing below @@ -1319,14 +1330,14 @@ subroutine blmix ( c diffus(imt,0:Nrp1,mdiff) vertical diffusivities (m^2/s) c kbl (imt) -1 of first grid level below hbl c myThid thread number for this instance of the routine - integer myThid + INTEGER myThid _RL ustar (imt) _RL bfsfc (imt) _RL hbl (imt) _RL stable(imt) _RL casea (imt) _RL diffus(imt,0:Nrp1,mdiff) - integer kbl(imt) + INTEGER kbl(imt) c output c dkm1 (imt,mdiff) boundary layer difs at kbl-1 level @@ -1337,7 +1348,7 @@ subroutine blmix ( _RL blmc (imt,Nr,mdiff) _RL ghat (imt,Nr) _RL sigma(imt) - integer ikppkey + INTEGER ikey #ifdef ALLOW_KPP @@ -1348,79 +1359,107 @@ subroutine blmix ( _RL gat1m(imt), gat1s(imt), gat1t(imt) _RL dat1m(imt), dat1s(imt), dat1t(imt) _RL ws(imt), wm(imt) - integer i, kn, ki, kl - _RL R, dvdzup, dvdzdn, viscp - _RL difsp, diftp, visch, difsh, difth - _RL f1, sig, a1, a2, a3, delhat + INTEGER i, kn, ki, kl +#ifndef KPP_DO_NOT_MATCH_DIFFUSIVITIES +# ifndef KPP_DO_NOT_MATCH_DERIVATIVES + _RL R, dvdzup, dvdzdn +# endif + _RL delhat +#endif + _RL viscp, difsp, diftp, visch, difsh, difth + _RL f1, sig, a1, a2, a3 _RL Gm, Gs, Gt _RL tempVar _RL p0 , eins - parameter (p0=0.0, eins=1.0) + PARAMETER (p0=0.0, eins=1.0) #ifdef ALLOW_AUTODIFF_TAMC - integer kkppkey + INTEGER kkey #endif c----------------------------------------------------------------------- c compute velocity scales at hbl c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt sigma(i) = stable(i) * 1.0 + (1. - stable(i)) * epsilon - end do + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE sigma = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE sigma = comlev1_kpp, key=ikey, kind=isbyte #endif - call wscale ( + CALL wscale ( I sigma, hbl, ustar, bfsfc, O wm, ws, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wm = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE ws = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE wm = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE ws = comlev1_kpp, key=ikey, kind=isbyte #endif - do i = 1, imt - wm(i) = sign(eins,wm(i))*max(phepsi,abs(wm(i))) - ws(i) = sign(eins,ws(i))*max(phepsi,abs(ws(i))) - end do + DO i = 1, imt + wm(i) = sign(eins,wm(i))*MAX(phepsi,ABS(wm(i))) + ws(i) = sign(eins,ws(i))*MAX(phepsi,ABS(ws(i))) + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wm = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE ws = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE wm = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE ws = comlev1_kpp, key=ikey, kind=isbyte #endif - do i = 1, imt + DO i = 1, imt - kn = int(caseA(i)+phepsi) *(kbl(i) -1) + - $ (1 - int(caseA(i)+phepsi)) * kbl(i) + kn = INT(caseA(i)+phepsi) *(kbl(i) -1) + + $ (1 - INT(caseA(i)+phepsi)) * kbl(i) c----------------------------------------------------------------------- c find the interior viscosities and derivatives at hbl(i) c----------------------------------------------------------------------- +C initialise diffusivities (*h) and derivatives (*p) +#ifdef KPP_DO_NOT_MATCH_DIFFUSIVITIES + visch = 0. + difsh = 0. + difth = 0. + viscp = 0. + difsp = 0. + diftp = 0. +#else /* DO_MATCH_DIFFUSIVITIES */ +# ifdef KPP_DO_NOT_MATCH_DERIVATIVES + viscp = 0. + difsp = 0. + diftp = 0. + delhat = 0. +# else /* DO_MATCH_DERIVATIVES */ delhat = 0.5*hwide(kn) - zgrid(kn) - hbl(i) R = 1.0 - delhat / hwide(kn) dvdzup = (diffus(i,kn-1,1) - diffus(i,kn ,1)) / hwide(kn) dvdzdn = (diffus(i,kn ,1) - diffus(i,kn+1,1)) / hwide(kn+1) - viscp = 0.5 * ( (1.-R) * (dvdzup + abs(dvdzup)) + - 1 R * (dvdzdn + abs(dvdzdn)) ) +CML This is the same as: +CML viscp = (1.-R) * MAX(dvdzup,0.) + R * MAX(dvdzdn,0.) +CML why do we need that here? + viscp = 0.5 * ( (1.-R) * (dvdzup + ABS(dvdzup)) + + 1 R * (dvdzdn + ABS(dvdzdn)) ) dvdzup = (diffus(i,kn-1,2) - diffus(i,kn ,2)) / hwide(kn) dvdzdn = (diffus(i,kn ,2) - diffus(i,kn+1,2)) / hwide(kn+1) - difsp = 0.5 * ( (1.-R) * (dvdzup + abs(dvdzup)) + - 1 R * (dvdzdn + abs(dvdzdn)) ) + difsp = 0.5 * ( (1.-R) * (dvdzup + ABS(dvdzup)) + + 1 R * (dvdzdn + ABS(dvdzdn)) ) dvdzup = (diffus(i,kn-1,3) - diffus(i,kn ,3)) / hwide(kn) dvdzdn = (diffus(i,kn ,3) - diffus(i,kn+1,3)) / hwide(kn+1) - diftp = 0.5 * ( (1.-R) * (dvdzup + abs(dvdzup)) + - 1 R * (dvdzdn + abs(dvdzdn)) ) - + diftp = 0.5 * ( (1.-R) * (dvdzup + ABS(dvdzup)) + + 1 R * (dvdzdn + ABS(dvdzdn)) ) +# endif /* KPP_DO_NOT_MATCH_DERIVATIVES */ visch = diffus(i,kn,1) + viscp * delhat difsh = diffus(i,kn,2) + difsp * delhat difth = diffus(i,kn,3) + diftp * delhat +#endif /* KPP_DO_NOT_MATCH_DIFFUSIVITIES */ f1 = stable(i) * conc1 * bfsfc(i) / - & max(ustar(i)**4,phepsi) +#ifdef KPP_SMOOTH_REGULARISATION + & (ustar(i)**4 + phepsi) +#else + & MAX(ustar(i)**4,phepsi) +#endif gat1m(i) = visch / hbl(i) / wm(i) dat1m(i) = -viscp / wm(i) + f1 * visch @@ -1430,60 +1469,60 @@ subroutine blmix ( gat1t(i) = difth / hbl(i) / ws(i) dat1t(i) = -diftp / ws(i) + f1 * difth - end do + ENDDO #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE gat1m = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE gat1s = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE gat1t = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dat1m = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dat1s = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dat1t = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE gat1m = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE gat1s = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE gat1t = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dat1m = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dat1s = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dat1t = comlev1_kpp, key=ikey, kind=isbyte #endif - do i = 1, imt - dat1m(i) = min(dat1m(i),p0) - dat1s(i) = min(dat1s(i),p0) - dat1t(i) = min(dat1t(i),p0) - end do + DO i = 1, imt + dat1m(i) = MIN(dat1m(i),p0) + dat1s(i) = MIN(dat1s(i),p0) + dat1t(i) = MIN(dat1t(i),p0) + ENDDO #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE dat1m = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dat1s = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE dat1t = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE dat1m = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dat1s = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE dat1t = comlev1_kpp, key=ikey, kind=isbyte #endif - do ki = 1, Nr + DO ki = 1, Nr #ifdef ALLOW_AUTODIFF_TAMC - kkppkey = (ikppkey-1)*Nr + ki + kkey = (ikey-1)*Nr + ki #endif c----------------------------------------------------------------------- c compute turbulent velocity scales on the interfaces c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt sig = (-zgrid(ki) + 0.5 * hwide(ki)) / hbl(i) - sigma(i) = stable(i)*sig + (1.-stable(i))*min(sig,epsilon) - end do + sigma(i) = stable(i)*sig + (1.-stable(i))*MIN(sig,epsilon) + ENDDO #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE wm = comlev1_kpp_k, key = kkppkey -CADJ STORE ws = comlev1_kpp_k, key = kkppkey +CADJ STORE wm = comlev1_kpp_k, key = kkey +CADJ STORE ws = comlev1_kpp_k, key = kkey #endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE sigma = comlev1_kpp_k, key = kkppkey +CADJ STORE sigma = comlev1_kpp_k, key = kkey #endif - call wscale ( + CALL wscale ( I sigma, hbl, ustar, bfsfc, O wm, ws, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wm = comlev1_kpp_k, key = kkppkey -CADJ STORE ws = comlev1_kpp_k, key = kkppkey +CADJ STORE wm = comlev1_kpp_k, key = kkey +CADJ STORE ws = comlev1_kpp_k, key = kkey #endif c----------------------------------------------------------------------- c compute the dimensionless shape functions at the interfaces c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt sig = (-zgrid(ki) + 0.5 * hwide(ki)) / hbl(i) a1 = sig - 2. a2 = 3. - 2. * sig @@ -1506,38 +1545,41 @@ subroutine blmix ( c----------------------------------------------------------------------- tempVar = ws(i) * hbl(i) - ghat(i,ki) = (1.-stable(i)) * cg / max(phepsi,tempVar) - - end do - end do +#ifdef KPP_SMOOTH_REGULARISATION + ghat(i,ki) = (1.-stable(i)) * cg / (phepsi+tempVar) +#else + ghat(i,ki) = (1.-stable(i)) * cg / MAX(phepsi,tempVar) +#endif + ENDDO + ENDDO c----------------------------------------------------------------------- c find diffusivities at kbl-1 grid level c----------------------------------------------------------------------- - do i = 1, imt + DO i = 1, imt kl = kbl(i) sig = -zgrid(kl-1) / hbl(i) sigma(i) = stable(i) * sig - & + (1. - stable(i)) * min(sig,epsilon) - end do + & + (1. - stable(i)) * MIN(sig,epsilon) + ENDDO #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE wm = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE ws = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE wm = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE ws = comlev1_kpp, key=ikey, kind=isbyte #endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE sigma = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE sigma = comlev1_kpp, key=ikey, kind=isbyte #endif - call wscale ( + CALL wscale ( I sigma, hbl, ustar, bfsfc, O wm, ws, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE wm = comlev1_kpp, key=ikppkey, kind=isbyte -CADJ STORE ws = comlev1_kpp, key=ikppkey, kind=isbyte +CADJ STORE wm = comlev1_kpp, key=ikey, kind=isbyte +CADJ STORE ws = comlev1_kpp, key=ikey, kind=isbyte #endif - do i = 1, imt + DO i = 1, imt kl = kbl(i) sig = -zgrid(kl-1) / hbl(i) a1 = sig - 2. @@ -1549,20 +1591,20 @@ subroutine blmix ( dkm1(i,1) = hbl(i) * wm(i) * sig * (1. + sig * Gm) dkm1(i,2) = hbl(i) * ws(i) * sig * (1. + sig * Gs) dkm1(i,3) = hbl(i) * ws(i) * sig * (1. + sig * Gt) - end do + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* subroutine enhance ( - I dkm1, hbl, kbl, diffus, casea - U , ghat - O , blmc - & , myThid ) + I dkm1, hbl, kbl, diffus, casea, + U ghat, + O blmc, + & myThid ) c enhance the diffusivity at the kbl-.5 interface @@ -1578,10 +1620,10 @@ subroutine enhance ( c diffus(imt,0:Nrp1,mdiff) vertical diffusivities (m^2/s) c casea(imt) = 1 in caseA, = 0 in case B c myThid thread number for this instance of the routine - integer myThid + INTEGER myThid _RL dkm1 (imt,mdiff) _RL hbl (imt) - integer kbl (imt) + INTEGER kbl (imt) _RL diffus(imt,0:Nrp1,mdiff) _RL casea (imt) @@ -1598,35 +1640,39 @@ subroutine enhance ( c local c fraction hbl lies beteen zgrid neighbors _RL delta - integer ki, i, md + INTEGER ki, i, md _RL dkmp5, dstar - do i = 1, imt + DO i = 1, imt ki = kbl(i)-1 - if ((ki .ge. 1) .and. (ki .lt. Nr)) then + IF ((ki .ge. 1) .AND. (ki .LT. Nr)) THEN delta = (hbl(i) + zgrid(ki)) / (zgrid(ki) - zgrid(ki+1)) - do md = 1, mdiff + DO md = 1, mdiff dkmp5 = casea(i) * diffus(i,ki,md) + 1 (1.- casea(i)) * blmc (i,ki,md) +C I think that this is meant here, but I cannot be sure because there +C there is no reference for this. In MOM6/CVMix, the square is outside +C of the parentheses +CML dstar = (1.- delta**2) * dkm1(i,md) dstar = (1.- delta)**2 * dkm1(i,md) & + delta**2 * dkmp5 blmc(i,ki,md) = (1.- delta)*diffus(i,ki,md) & + delta*dstar - end do + ENDDO ghat(i,ki) = (1.- casea(i)) * ghat(i,ki) - endif - end do + ENDIF + ENDDO #endif /* ALLOW_KPP */ - return - end + RETURN + END c************************************************************************* SUBROUTINE STATEKPP ( O RHO1, DBLOC, DBSFC, TTALPHA, SSBETA, - I ikppkey, bi, bj, myThid ) + I ikey, bi, bj, myThid ) c c----------------------------------------------------------------------- c "statekpp" computes all necessary input arrays @@ -1644,7 +1690,7 @@ SUBROUTINE STATEKPP ( c ttalpha= thermal expansion coefficient without 1/rho factor c d(rho) / d(potential temperature) (kg/m^3/C) c ssbeta = salt expansion coefficient without 1/rho factor -c d(rho) / d(salinity) (kg/m^3/PSU) +c d(rho) / d(salinity) ((kg/m^3)/(g/kg)) c c see also subroutines find_rho.F find_alpha.F find_beta.F c @@ -1692,60 +1738,61 @@ SUBROUTINE STATEKPP ( _RL WORK2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL WORK3 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - INTEGER I, J, K - INTEGER ikppkey, kkppkey + INTEGER i, j, k + INTEGER ikey, kkey c calculate density, alpha, beta in surface layer, and set dbsfc to zero - kkppkey = (ikppkey-1)*Nr + 1 + kkey = (ikey-1)*Nr + 1 + k = 1 #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte -CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ STORE theta(:,:,k,bi,bj) = comlev1_kpp_k, +CADJ & key=kkey, kind=isbyte +CADJ STORE salt (:,:,k,bi,bj) = comlev1_kpp_k, +CADJ & key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ CALL FIND_RHO_2D( I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, - I theta(1-OLx,1-OLy,1,bi,bj), salt(1-OLx,1-OLy,1,bi,bj), + I theta(1-OLx,1-OLy,k,bi,bj), salt(1-OLx,1-OLy,k,bi,bj), O WORK1, - I 1, bi, bj, myThid ) + I k, bi, bj, myThid ) #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte -CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ STORE theta(:,:,k,bi,bj) = comlev1_kpp_k, +CADJ & key=kkey, kind=isbyte +CADJ STORE salt (:,:,k,bi,bj) = comlev1_kpp_k, +CADJ & key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ - call FIND_ALPHA( + CALL FIND_ALPHA( I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, 1, O WORK2, myThid ) - call FIND_BETA( + CALL FIND_BETA( I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, 1, 1, O WORK3, myThid ) - DO J = 1-OLy, sNy+OLy - DO I = 1-OLx, sNx+OLx - RHO1(I,J) = WORK1(I,J) + rhoConst - TTALPHA(I,J,1) = WORK2(I,J) - SSBETA(I,J,1) = WORK3(I,J) - DBSFC(I,J,1) = 0. - END DO - END DO + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + RHO1(i,j) = WORK1(i,j) + rhoConst + TTALPHA(i,j,1) = WORK2(i,j) + SSBETA(i,j,1) = WORK3(i,j) + DBSFC(i,j,1) = 0. + ENDDO + ENDDO c calculate alpha, beta, and gradients in interior layers CHPF$ INDEPENDENT, NEW (RHOK,RHOKM1,RHO1K,WORK1,WORK2) - DO K = 2, Nr + DO k = 2, Nr - kkppkey = (ikppkey-1)*Nr + k + kkey = (ikey-1)*Nr + k #ifdef KPP_AUTODIFF_MORE_STORE CADJ STORE theta(:,:,k,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte CADJ STORE salt (:,:,k,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ CALL FIND_RHO_2D( I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, @@ -1755,9 +1802,9 @@ SUBROUTINE STATEKPP ( #ifdef KPP_AUTODIFF_MORE_STORE CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ CALL FIND_RHO_2D( I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, @@ -1767,9 +1814,9 @@ SUBROUTINE STATEKPP ( #ifdef KPP_AUTODIFF_MORE_STORE CADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte CADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ & key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ CALL FIND_RHO_2D( I 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, @@ -1778,48 +1825,45 @@ SUBROUTINE STATEKPP ( I 1, bi, bj, myThid ) #ifdef KPP_AUTODIFF_MORE_STORE -CADJ STORE rhok (:,:) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte -CADJ STORE rhokm1(:,:) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte -CADJ STORE rho1k (:,:) = comlev1_kpp_k, -CADJ & key=kkppkey, kind=isbyte +CADJ STORE rhok (:,:) = comlev1_kpp_k, key=kkey, kind=isbyte +CADJ STORE rhokm1(:,:) = comlev1_kpp_k, key=kkey, kind=isbyte +CADJ STORE rho1k (:,:) = comlev1_kpp_k, key=kkey, kind=isbyte #endif /* KPP_AUTODIFF_MORE_STORE */ - call FIND_ALPHA( - I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, K, K, + CALL FIND_ALPHA( + I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, k, O WORK1, myThid ) - call FIND_BETA( - I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, K, K, + CALL FIND_BETA( + I bi, bj, 1-OLx, sNx+OLx, 1-OLy, sNy+OLy, k, k, O WORK2, myThid ) - DO J = 1-OLy, sNy+OLy - DO I = 1-OLx, sNx+OLx - TTALPHA(I,J,K) = WORK1 (I,J) - SSBETA(I,J,K) = WORK2 (I,J) - DBLOC(I,J,K-1) = gravity * (RHOK(I,J) - RHOKM1(I,J)) / - & (RHOK(I,J) + rhoConst) - DBSFC(I,J,K) = gravity * (RHOK(I,J) - RHO1K (I,J)) / - & (RHOK(I,J) + rhoConst) - END DO - END DO - - END DO - -c compute arrays for K = Nrp1 - DO J = 1-OLy, sNy+OLy - DO I = 1-OLx, sNx+OLx - TTALPHA(I,J,Nrp1) = TTALPHA(I,J,Nr) - SSBETA(I,J,Nrp1) = SSBETA(I,J,Nr) - DBLOC(I,J,Nr) = 0. - END DO - END DO + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + TTALPHA(i,j,k) = WORK1 (i,j) + SSBETA(i,j,k) = WORK2 (i,j) + DBLOC(i,j,k-1) = gravity * (RHOK(i,j) - RHOKM1(i,j)) / + & (RHOK(i,j) + rhoConst) + DBSFC(i,j,k) = gravity * (RHOK(i,j) - RHO1K (i,j)) / + & (RHOK(i,j) + rhoConst) + ENDDO + ENDDO + + ENDDO + +c compute arrays for k = Nrp1 + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + TTALPHA(i,j,Nrp1) = TTALPHA(i,j,Nr) + SSBETA(i,j,Nrp1) = SSBETA(i,j,Nr) + DBLOC(i,j,Nr) = 0. + ENDDO + ENDDO #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL(DBSFC ,'KPPdbsfc',0,Nr,2,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(DBLOC ,'KPPdbloc',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(DBSFC ,'KPPdbsfc',0,Nr,2,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(DBLOC ,'KPPdbloc',0,Nr,2,bi,bj,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */ @@ -1834,7 +1878,7 @@ SUBROUTINE KPP_DOUBLEDIFF ( I TTALPHA, SSBETA, U kappaRT, U kappaRS, - I ikppkey, imin, imax, jmin, jmax, bi, bj, myThid ) + I ikey, iMin, iMax, jMin, jMax, bi, bj, myThid ) c c----------------------------------------------------------------------- c "KPP_DOUBLEDIFF" adds the double diffusive contributions @@ -1842,14 +1886,14 @@ SUBROUTINE KPP_DOUBLEDIFF ( c c input: c bi, bj = array indices on which to apply calculations -c imin, imax, jmin, jmax = array boundaries -c ikppkey = key for TAMC/TAF automatic differentiation +c iMin, iMax, jMin, jMax = array boundaries +c ikey = key for TAMC/TAF automatic differentiation c myThid = thread id c c ttalpha= thermal expansion coefficient without 1/rho factor c d(rho) / d(potential temperature) (kg/m^3/C) c ssbeta = salt expansion coefficient without 1/rho factor -c d(rho) / d(salinity) (kg/m^3/PSU) +c d(rho) / d(salinity) ((kg/m^3)/(g/kg)) c output: updated c kappaRT/S :: background diffusivities for temperature and salinity c @@ -1871,7 +1915,7 @@ SUBROUTINE KPP_DOUBLEDIFF ( #endif c-------------- Routine arguments ----------------------------------------- - INTEGER ikppkey, imin, imax, jmin, jmax, bi, bj, myThid + INTEGER ikey, iMin, iMax, jMin, jMax, bi, bj, myThid _RL TTALPHA( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nrp1 ) _RL SSBETA ( 1-OLx:sNx+OLx, 1-OLy:sNy+OLy, Nrp1 ) @@ -1883,11 +1927,11 @@ SUBROUTINE KPP_DOUBLEDIFF ( C-------------------------------------------------------------------------- C C local variables -C I,J,K :: loop indices -C kkppkey :: key for TAMC/TAF automatic differentiation +C i,j,k :: loop indices +C kkey :: key for TAMC/TAF automatic differentiation C - INTEGER I, J, K - INTEGER kkppkey + INTEGER i, j, k + INTEGER kkey C alphaDT :: d\rho/d\theta * d\theta C betaDS :: d\rho/dsalt * dsalt C Rrho :: "density ratio" R_{\rho} = \alpha dT/dz / \beta dS/dz @@ -1907,60 +1951,60 @@ SUBROUTINE KPP_DOUBLEDIFF ( numol = 1.5 _d -06 rFac = 1. _d 0 / (Rrho0 - 1. _d 0 ) C - kkppkey = (ikppkey-1)*Nr + 1 + kkey = (ikey-1)*Nr + 1 CML#ifdef KPP_AUTODIFF_MORE_STORE CMLCADJ STORE theta(:,:,1,bi,bj) = comlev1_kpp_k, -CMLCADJ & key=kkppkey, kind=isbyte +CMLCADJ & key=kkey, kind=isbyte CMLCADJ STORE salt (:,:,1,bi,bj) = comlev1_kpp_k, -CMLCADJ & key=kkppkey, kind=isbyte +CMLCADJ & key=kkey, kind=isbyte CML#endif /* KPP_AUTODIFF_MORE_STORE */ - DO K = 1, Nr - Km1 = MAX(K-1,1) - DO J = 1-OLy, sNy+OLy - DO I = 1-OLx, sNx+OLx - alphaDT(I,J) = ( theta(I,J,Km1,bi,bj)-theta(I,J,K,bi,bj) ) - & * 0.5 _d 0 * ABS( TTALPHA(I,J,Km1) + TTALPHA(I,J,K) ) - betaDS(I,J) = ( salt(I,J,Km1,bi,bj)-salt(I,J,K,bi,bj) ) - & * 0.5 _d 0 * ( SSBETA(I,J,Km1) + SSBETA(I,J,K) ) - nuddt(I,J) = 0. _d 0 - nudds(I,J) = 0. _d 0 + DO k = 1, Nr + Km1 = MAX(k-1,1) + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + alphaDT(i,j) = ( theta(i,j,km1,bi,bj)-theta(i,j,k,bi,bj) ) + & * 0.5 _d 0 * ABS( TTALPHA(i,j,km1) + TTALPHA(i,j,k) ) + betaDS(i,j) = ( salt(i,j,km1,bi,bj)-salt(i,j,k,bi,bj) ) + & * 0.5 _d 0 * ( SSBETA(i,j,km1) + SSBETA(i,j,k) ) + nuddt(i,j) = 0. _d 0 + nudds(i,j) = 0. _d 0 ENDDO ENDDO - IF ( K .GT. 1 ) THEN - DO J = jMin, jMax - DO I = iMin, iMax + IF ( k .GT. 1 ) THEN + DO j = jMin, jMax + DO i = iMin, iMax Rrho = 0. _d 0 C Now we have many different cases C a. alphaDT > 0 and betaDS > 0 => salt fingering C (salinity destabilizes) - IF ( alphaDT(I,J) .GT. betaDS(I,J) - & .AND. betaDS(I,J) .GT. 0. _d 0 ) THEN - Rrho = MIN( alphaDT(I,J)/betaDS(I,J), Rrho0 ) + IF ( alphaDT(i,j) .GT. betaDS(i,j) + & .AND. betaDS(i,j) .GT. 0. _d 0 ) THEN + Rrho = MIN( alphaDT(i,j)/betaDS(i,j), Rrho0 ) C Large et al. 1994, eq. 31a -C nudds(I,J) = dsfmax * ( 1. _d 0 - (Rrho - 1. _d 0) * rFac )**3 +C nudds(i,j) = dsfmax * ( 1. _d 0 - (Rrho - 1. _d 0) * rFac )**3 nutmp = ( 1. _d 0 - (Rrho - 1. _d 0) * rFac ) - nudds(I,J) = dsfmax * nutmp * nutmp * nutmp + nudds(i,j) = dsfmax * nutmp * nutmp * nutmp C Large et al. 1994, eq. 31c - nuddt(I,J) = 0.7 _d 0 * nudds(I,J) - ELSEIF ( alphaDT(I,J) .LT. 0. _d 0 - & .AND. betaDS(I,J) .LT. 0. _d 0 - & .AND.alphaDT(I,J) .GT. betaDS(I,J) ) THEN + nuddt(i,j) = 0.7 _d 0 * nudds(i,j) + ELSEIF ( alphaDT(i,j) .LT. 0. _d 0 + & .AND. betaDS(i,j) .LT. 0. _d 0 + & .AND.alphaDT(i,j) .GT. betaDS(i,j) ) THEN C b. alphaDT < 0 and betaDS < 0 => semi-convection, diffusive convection C (temperature destabilizes) C for Rrho >= 1 the water column is statically unstable and we never C reach this point - Rrho = alphaDT(I,J)/betaDS(I,J) + Rrho = alphaDT(i,j)/betaDS(i,j) C Large et al. 1994, eq. 32 - nuddt(I,J) = numol * 0.909 _d 0 + nuddt(i,j) = numol * 0.909 _d 0 & * exp ( 4.6 _d 0 * exp ( & - 5.4 _d 0 * ( 1. _d 0/Rrho - 1. _d 0 ) ) ) CMLC or CMLC Large et al. 1994, eq. 33 -CML nuddt(I,J) = numol * 8.7 _d 0 * Rrho**1.1 +CML nuddt(i,j) = numol * 8.7 _d 0 * Rrho**1.1 C Large et al. 1994, eqs. 34 - nudds(I,J) = nuddt(I,J) * MAX( 0.15 _d 0 * Rrho, + nudds(i,j) = nuddt(i,j) * MAX( 0.15 _d 0 * Rrho, & 1.85 _d 0 * Rrho - 0.85 _d 0 ) ELSE C Do nothing, because in this case the water colume is unstable @@ -1969,13 +2013,13 @@ SUBROUTINE KPP_DOUBLEDIFF ( ENDIF ENDDO ENDDO -C ENDIF ( K .GT. 1 ) +C ENDIF ( k .GT. 1 ) ENDIF C - DO J = 1-OLy, sNy+OLy - DO I = 1-OLx, sNx+OLx - kappaRT(I,J,K) = kappaRT(I,J,K) + nuddt(I,J) - kappaRS(I,J,K) = kappaRS(I,J,K) + nudds(I,J) + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + kappaRT(i,j,k) = kappaRT(i,j,k) + nuddt(i,j) + kappaRS(i,j,k) = kappaRS(i,j,k) + nudds(i,j) ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS @@ -1984,7 +2028,7 @@ SUBROUTINE KPP_DOUBLEDIFF ( CALL DIAGNOSTICS_FILL(nudds,'KPPnudds',k,1,2,bi,bj,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */ -C end of K-loop +C end of k-loop ENDDO #endif /* ALLOW_KPP */ diff --git a/pkg/longstep/longstep_check.F b/pkg/longstep/longstep_check.F new file mode 100644 index 0000000000..959b2407d9 --- /dev/null +++ b/pkg/longstep/longstep_check.F @@ -0,0 +1,76 @@ +#include "LONGSTEP_OPTIONS.h" + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: LONGSTEP_CHECK + +C !INTERFACE: + SUBROUTINE LONGSTEP_CHECK( myThid ) + +C !DESCRIPTION: +C Print summary of longstep parameters + +C !USES: + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "LONGSTEP_PARAMS.h" + +C !INPUT PARAMETERS: + INTEGER myThid +CEOP + +#ifdef ALLOW_LONGSTEP + +C !LOCAL VARIABLES: +C msgBuf :: message buffer + CHARACTER*(MAX_LEN_MBUF) msgBuf + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + _BEGIN_MASTER(myThid) + + WRITE(msgBuf,'(A)') 'LONGSTEP_CHECK: #define ALLOW_LONGSTEP' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + WRITE(msgBuf,'(A)') '// ===================================' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') '// longstep parameters ' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') '// ===================================' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + CALL WRITE_0D_I( LS_nIter, INDEX_NONE, + & 'LS_nIter =', + & ' /* number of dynamics steps between ptracer steps */') + CALL WRITE_0D_I( LS_whenToSample, INDEX_NONE, + & 'LS_whenToSample =', + & ' /* 0: before; 1: after TD, before DYN; 2: after */') + +#ifdef EXACT_CONSERV + IF ( (nonlinFreeSurf.GT.0 .OR. usingPCoords) + & .AND. useRealFreshWaterFlux .AND. staggerTimeStep + & .AND. LS_whenToSample.LT.2 ) THEN + WRITE(msgBuf,'(2A)') + & ' LONGSTEP: staggerTimeStep with EXACT_CONSERV,', + & ' useRealFreshWaterFlux' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') + & ' LONGSTEP: and nonlinFreeSurf or PCoords', + & ' requires LS_whenToSample=2' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R LONGSTEP_INIT_FIXED' + ENDIF +#endif /* EXACT_CONSERV */ + + _END_MASTER(myThid) + _BARRIER + +#endif /* ALLOW_LONGSTEP */ + + RETURN + END diff --git a/pkg/longstep/longstep_diagnostics_init.F b/pkg/longstep/longstep_diagnostics_init.F index 0782be52b9..c21616316c 100644 --- a/pkg/longstep/longstep_diagnostics_init.F +++ b/pkg/longstep/longstep_diagnostics_init.F @@ -68,7 +68,7 @@ SUBROUTINE LONGSTEP_DIAGNOSTICS_INIT( myThid ) diagName = 'LSsalt ' diagTitle = 'Salinity' - diagUnits = 'psu ' + diagUnits = 'g/kg ' diagCode = 'SMR MR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) @@ -147,4 +147,3 @@ SUBROUTINE LONGSTEP_DIAGNOSTICS_INIT( myThid ) RETURN END - diff --git a/pkg/longstep/longstep_forcing_surf.F b/pkg/longstep/longstep_forcing_surf.F index 0bd68f7ea7..8ae32f6da1 100644 --- a/pkg/longstep/longstep_forcing_surf.F +++ b/pkg/longstep/longstep_forcing_surf.F @@ -6,7 +6,7 @@ C !INTERFACE: ========================================================== SUBROUTINE LONGSTEP_FORCING_SURF( I bi, bj, iMin, iMax, jMin, jMax, - I myTime,myIter,myThid ) + I myTime, myIter, myThid ) C !DESCRIPTION: C Precomputes surface forcing term for pkg/ptracers. @@ -18,14 +18,16 @@ SUBROUTINE LONGSTEP_FORCING_SURF( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "GRID.h" -#include "SURFACE.h" -#include "FFIELDS.h" +c #include "GRID.h" +c #include "SURFACE.h" +c #include "FFIELDS.h" c #include "DYNVARS.h" -#include "PTRACERS_SIZE.h" -#include "PTRACERS_PARAMS.h" -#include "PTRACERS_FIELDS.h" #include "LONGSTEP.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_PARAMS.h" +# include "PTRACERS_FIELDS.h" +#endif C !INPUT PARAMETERS: =================================================== C bi,bj :: tile indices @@ -38,6 +40,7 @@ SUBROUTINE LONGSTEP_FORCING_SURF( INTEGER myThid #ifdef ALLOW_LONGSTEP +#ifdef ALLOW_PTRACERS C !LOCAL VARIABLES: ==================================================== C i,j :: loop indices @@ -154,6 +157,7 @@ SUBROUTINE LONGSTEP_FORCING_SURF( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_PTRACERS */ #endif /* ALLOW_LONGSTEP */ RETURN diff --git a/pkg/longstep/longstep_init_fixed.F b/pkg/longstep/longstep_init_fixed.F index acf4970d23..45626b9017 100644 --- a/pkg/longstep/longstep_init_fixed.F +++ b/pkg/longstep/longstep_init_fixed.F @@ -7,14 +7,13 @@ SUBROUTINE LONGSTEP_INIT_FIXED( myThid ) C !DESCRIPTION: -C Initialize longstep constant +C Initialize longstep constants C !USES: IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "LONGSTEP_PARAMS.h" C !INPUT PARAMETERS: INTEGER myThid @@ -23,31 +22,6 @@ SUBROUTINE LONGSTEP_INIT_FIXED( myThid ) #ifdef ALLOW_LONGSTEP C !LOCAL VARIABLES: - CHARACTER*(MAX_LEN_MBUF) msgBuf - -C whether to average EmPmR or PmEpR in LS_fwFlux -#ifdef EXACT_CONSERV - IF ( (nonlinFreeSurf.GT.0 .OR. usingPCoords) - & .AND. useRealFreshWaterFlux ) THEN - LS_usePmEpR = .TRUE. -C can only do LS_staggerTimeStep if staggerTimeStep - IF ( staggerTimeStep .AND. LS_whenToSample.LT.2 ) THEN - WRITE(msgBuf,'(2A)') - & ' LONGSTEP: staggerTimeStep with EXACT_CONSERV,', - & ' useRealFreshWaterFlux' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(2A)') - & ' LONGSTEP: and nonlinFreeSurf or PCoords', - & ' requires LS_whenToSample=2' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R LONGSTEP_INIT_FIXED' - ENDIF - ELSE -#else /* EXACT_CONSERV */ - IF (.TRUE.) THEN -#endif /* EXACT_CONSERV */ - LS_usePmEpR = .FALSE. - ENDIF #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN diff --git a/pkg/longstep/longstep_init_varia.F b/pkg/longstep/longstep_init_varia.F index 8648b3b9e8..d6a00986c4 100644 --- a/pkg/longstep/longstep_init_varia.F +++ b/pkg/longstep/longstep_init_varia.F @@ -51,6 +51,7 @@ SUBROUTINE LONGSTEP_INIT_VARIA( myThid ) #ifdef SHORTWAVE_HEATING CALL LONGSTEP_RESET_3D(LS_QswCount, LS_Qsw, 1, myThid) #endif + CALL LONGSTEP_RESET_3D(LS_fwFluxCount,LS_fwFlux,1,myThid) #ifdef ALLOW_GMREDI IF ( useGMRedi ) THEN CALL LONGSTEP_RESET_3D(LS_KwxCount, LS_Kwx, Nr, myThid) diff --git a/pkg/longstep/longstep_readparms.F b/pkg/longstep/longstep_readparms.F index 583ca2a4ac..e59b034732 100644 --- a/pkg/longstep/longstep_readparms.F +++ b/pkg/longstep/longstep_readparms.F @@ -14,8 +14,8 @@ SUBROUTINE LONGSTEP_READPARMS( myThid ) IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" -#include "LONGSTEP_PARAMS.h" #include "PARAMS.h" +#include "LONGSTEP_PARAMS.h" C !INPUT PARAMETERS: INTEGER myThid @@ -85,22 +85,13 @@ SUBROUTINE LONGSTEP_READPARMS( myThid ) C Now set-up any remaining parameters that result from the input C parameters -C-- Print a summary of longstep parameter values: - iUnit = standardMessageUnit - WRITE(msgBuf,'(A)') '// ===================================' - CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid ) - WRITE(msgBuf,'(A)') '// longstep parameters ' - CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid ) - WRITE(msgBuf,'(A)') '// ===================================' - CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT , myThid ) - CALL WRITE_0D_I( LS_nIter, INDEX_NONE, - & 'LS_nIter =', - & ' /* number of dynamics steps between ptracer steps */') - CALL WRITE_0D_I( LS_whenToSample, INDEX_NONE, - & 'LS_whenToSample =', - & ' /* 0: before; 1: after TD, before DYN; 2: after */') - WRITE(msgBuf,'(A)') ' -----------------------------------' - CALL PRINT_MESSAGE( msgBuf, iUnit, SQUEEZE_RIGHT, myThid ) +C whether to average EmPmR or PmEpR in LS_fwFlux +#ifdef EXACT_CONSERV + LS_usePmEpR = (nonlinFreeSurf.GT.0 .OR. usingPCoords) + & .AND. useRealFreshWaterFlux +#else /* EXACT_CONSERV */ + LS_usePmEpR = .FALSE. +#endif /* EXACT_CONSERV */ _END_MASTER(myThid) C Everyone else must wait for the parameters to be loaded @@ -110,4 +101,3 @@ SUBROUTINE LONGSTEP_READPARMS( myThid ) RETURN END - diff --git a/pkg/longstep/longstep_thermodynamics.F b/pkg/longstep/longstep_thermodynamics.F index 9090502ec5..c8b238ac5e 100644 --- a/pkg/longstep/longstep_thermodynamics.F +++ b/pkg/longstep/longstep_thermodynamics.F @@ -1,11 +1,5 @@ #include "LONGSTEP_OPTIONS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# ifdef ALLOW_GMREDI -# include "GMREDI_OPTIONS.h" -# endif -#endif /* ALLOW_AUTODIFF_TAMC */ - CBOP C !ROUTINE: LONGSTEP_THERMODYNAMICS C !INTERFACE: @@ -45,19 +39,6 @@ SUBROUTINE LONGSTEP_THERMODYNAMICS( myTime, myIter, myThid ) # include "PTRACERS_FIELDS.h" #endif -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# include "tamc_keys.h" -# include "FFIELDS.h" -# include "EOS.h" -# ifdef ALLOW_GMREDI -# include "GMREDI.h" -# endif -# ifdef ALLOW_EBM -# include "EBM.h" -# endif -#endif /* ALLOW_AUTODIFF_TAMC */ - C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == C myTime :: Current time in simulation @@ -95,28 +76,9 @@ SUBROUTINE LONGSTEP_THERMODYNAMICS( myTime, myIter, myThid ) C time for a ptracer time step? IF ( LS_doTimeStep ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -C-- dummy statement to end declaration part - ikey = 1 - itdkey = 1 -#endif /* ALLOW_AUTODIFF_TAMC */ - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itdkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - C-- Set up work arrays with valid (i.e. not NaN) values C These inital values do not alter the numerical results. They C just ensure that all memory references are to valid floating diff --git a/pkg/mdsio/MDSIO_BUFF_WH.h b/pkg/mdsio/MDSIO_BUFF_WH.h index a2c54df7e7..051bb0fd09 100644 --- a/pkg/mdsio/MDSIO_BUFF_WH.h +++ b/pkg/mdsio/MDSIO_BUFF_WH.h @@ -11,16 +11,19 @@ C *==========================================================* CEOP #ifdef ALLOW_WHIO -C-- COMMON /MDS_WH_BUFFERS/ Shared Local Buffers With Halos +C-- COMMON /MDS_WH_BUFFERS_R[8,4]/ Shared Local Buffers With Halos C Those buffers have be in common block to be shared by all threads C fld2d_procbuff_rx :: Heap storage buffer to which master thread C read-in/write-from data which all threads copy from C (during read) or copy to (during write). - COMMON /MDS_WH_BUFFERS/ + COMMON /MDS_WH_BUFFERS_R8/ fld2d_procbuff_r8 #ifndef EXCLUDE_WHIO_GLOBUFF_2D - & fld2d_globuff_r8, fld2d_globuff_r4, + & , fld2d_globuff_r8 +#endif + COMMON /MDS_WH_BUFFERS_R4/ fld2d_procbuff_r4 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r4 #endif - & fld2d_procbuff_r8, fld2d_procbuff_r4 Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) #ifndef EXCLUDE_WHIO_GLOBUFF_2D @@ -34,7 +37,7 @@ C (during read) or copy to (during write). COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh integer nWh, iWh, jWh PARAMETER (nWh=30*Nr) - COMMON /MDS_WH_BUFFERS_3D_RL/ + COMMON /MDS_WH_BUFFERS_3D_RL/ # ifdef INCLUDE_WHIO_GLOBUFF_3D & fld3d_globuff_r8, fld3d_globuff_r4, # endif diff --git a/pkg/mdsio/MDSIO_OPTIONS.h b/pkg/mdsio/MDSIO_OPTIONS.h index da5cc6b221..18ac700265 100644 --- a/pkg/mdsio/MDSIO_OPTIONS.h +++ b/pkg/mdsio/MDSIO_OPTIONS.h @@ -3,10 +3,22 @@ #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: MDSIO_OPTIONS.h +C !INTERFACE: +C #include "MDSIO_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for pkg "mdsio": +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_MDSIO C Package-specific Options & Macros go here -C Defining SAFE_IO stops the model from overwriting its own files +C- Defining SAFE_IO stops the model from overwriting its own files #undef SAFE_IO #ifdef SAFE_IO @@ -23,12 +35,14 @@ C Defining SAFE_IO stops the model from overwriting its own files #define _OLD_STATUS 'old' #endif -C I/O that includes tile halos in the files -#undef ALLOW_WHIO +C- I/O that includes tile halos in the files #ifdef ALLOW_AUTODIFF +C Only used when pkg/autodiff is compiled: # define ALLOW_WHIO # define ALLOW_WHIO_3D -#endif +# undef EXCLUDE_WHIO_GLOBUFF_2D +# undef INCLUDE_WHIO_GLOBUFF_3D +#endif /* ALLOW_AUTODIFF */ #endif /* ALLOW_MDSIO */ #endif /* MDSIO_OPTIONS_H */ diff --git a/pkg/mdsio/mdsio_ad.flow b/pkg/mdsio/mdsio_ad.flow index 4ef903ae50..4218088603 100644 --- a/pkg/mdsio/mdsio_ad.flow +++ b/pkg/mdsio/mdsio_ad.flow @@ -1,16 +1,16 @@ C---------------------------------------- C subroutine mds_read_field C---------------------------------------- -CADJ SUBROUTINE mds_read_field INPUT = 1,2,3,4,5,6,7, 10,11 -CADJ SUBROUTINE mds_read_field OUTPUT = 8,9 -CADJ SUBROUTINE mds_read_field DEPEND = 1,2,3,4,5,6,7,8,9,10,11 -CADJ SUBROUTINE mds_read_field REQUIRED +CADJ SUBROUTINE MDS_READ_FIELD INPUT = 1,2,3,4,5,6,7, 10,11 +CADJ SUBROUTINE MDS_READ_FIELD OUTPUT = 8,9 +CADJ SUBROUTINE MDS_READ_FIELD DEPEND = 1,2,3,4,5,6,7,8,9,10,11 +CADJ SUBROUTINE MDS_READ_FIELD REQUIRED C---------------------------------------- C subroutine mds_write_field C---------------------------------------- -CADJ SUBROUTINE mds_write_field INPUT = 1,2,3,4,5,6,7,8,9,10,11,12,13 -CADJ SUBROUTINE mds_write_field OUTPUT = +CADJ SUBROUTINE MDS_WRITE_FIELD INPUT = 1,2,3,4,5,6,7,8,9,10,11,12,13 +CADJ SUBROUTINE MDS_WRITE_FIELD OUTPUT = C---------------------------------------- C subroutine mds_read_rec_xz @@ -31,30 +31,30 @@ cCADJ SUBROUTINE mds_read_rec_yz REQUIRED C---------------------------------------- C subroutine mds_read_sec_xz C---------------------------------------- -CADJ SUBROUTINE mds_read_sec_xz INPUT = 1,2,3,4,5, 8,9 -CADJ SUBROUTINE mds_read_sec_xz OUTPUT = 6,7 -CADJ SUBROUTINE mds_read_sec_xz DEPEND = 1,2,3,4,5,6,7,8,9 -CADJ SUBROUTINE mds_read_sec_xz REQUIRED +CADJ SUBROUTINE MDS_READ_SEC_XZ INPUT = 1,2,3,4,5,6,7, 10,11 +CADJ SUBROUTINE MDS_READ_SEC_XZ OUTPUT = 8,9 +CADJ SUBROUTINE MDS_READ_SEC_XZ DEPEND = 1,2,3,4,5,6,7,8,9,10,11 +CADJ SUBROUTINE MDS_READ_SEC_XZ REQUIRED C---------------------------------------- C subroutine mds_read_sec_yz C---------------------------------------- -CADJ SUBROUTINE mds_read_sec_yz INPUT = 1,2,3,4,5, 8,9 -CADJ SUBROUTINE mds_read_sec_yz OUTPUT = 6,7 -CADJ SUBROUTINE mds_read_sec_yz DEPEND = 1,2,3,4,5,6,7,8,9 -CADJ SUBROUTINE mds_read_sec_yz REQUIRED +CADJ SUBROUTINE MDS_READ_SEC_YZ INPUT = 1,2,3,4,5,6,7, 10,11 +CADJ SUBROUTINE MDS_READ_SEC_YZ OUTPUT = 8,9 +CADJ SUBROUTINE MDS_READ_SEC_YZ DEPEND = 1,2,3,4,5,6,7,8,9,10,11 +CADJ SUBROUTINE MDS_READ_SEC_YZ REQUIRED C---------------------------------------- C subroutine mds_write_sec_xz C---------------------------------------- -CADJ SUBROUTINE mds_write_sec_xz INPUT = 1,2,3,4,5,6,7,8,9,10,11 -CADJ SUBROUTINE mds_write_sec_xz OUTPUT = +CADJ SUBROUTINE MDS_WRITE_SEC_XZ INPUT = 1,2,3,4,5,6,7,8,9,10,11,12,13 +CADJ SUBROUTINE MDS_WRITE_SEC_XZ OUTPUT = C---------------------------------------- C subroutine mds_write_sec_yz C---------------------------------------- -CADJ SUBROUTINE mds_write_sec_yz INPUT = 1,2,3,4,5,6,7,8,9,10,11 -CADJ SUBROUTINE mds_write_sec_yz OUTPUT = +CADJ SUBROUTINE MDS_WRITE_SEC_YZ INPUT = 1,2,3,4,5,6,7,8,9,10,11,12,13 +CADJ SUBROUTINE MDS_WRITE_SEC_YZ OUTPUT = C---------------------------------------- C subroutine mdsreadfield diff --git a/pkg/mdsio/mdsio_facef_read.F b/pkg/mdsio/mdsio_facef_read.F index d681ed9eda..2f3e2eb3a8 100644 --- a/pkg/mdsio/mdsio_facef_read.F +++ b/pkg/mdsio/mdsio_facef_read.F @@ -75,7 +75,7 @@ SUBROUTINE MDS_FACEF_READ_RS( CALL MDSFINDUNIT( dUnit, myThid ) length_of_rec = MDS_RECLEN( fPrec, (dNx+1), myThid ) - OPEN( dUnit, file=fName(1:iLen), status='old', + OPEN( dUnit, file=fName(1:iLen), status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) j = 0 jBase=(irec-1)*(dNy+1) @@ -113,7 +113,7 @@ SUBROUTINE MDS_FACEF_READ_RS( CALL MDSFINDUNIT( dUnit, myThid ) length_of_rec = MDS_RECLEN( fPrec, (sNx+1)*(sNy+1), myThid ) - OPEN( dUnit, file=fName(1:iLen), status='old', + OPEN( dUnit, file=fName(1:iLen), status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) IF ( fPrec.EQ.precFloat32 ) THEN READ(dUnit, rec=irec) ioBuf4 diff --git a/pkg/mdsio/mdsio_read_field.F b/pkg/mdsio/mdsio_read_field.F index 04900d9363..4ab4333b2b 100644 --- a/pkg/mdsio/mdsio_read_field.F +++ b/pkg/mdsio/mdsio_read_field.F @@ -267,7 +267,7 @@ SUBROUTINE MDS_READ_FIELD( C Otherwise stop program. IF ( globalFile) THEN length_of_rec = MDS_RECLEN( filePrec, xSize*ySize, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) ELSE WRITE(msgBuf,'(2A)') @@ -379,7 +379,7 @@ SUBROUTINE MDS_READ_FIELD( C If we are reading from a global file then we open it here IF (globalFile) THEN length_of_rec = MDS_RECLEN( filePrec, sNx, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ENDIF @@ -462,7 +462,7 @@ SUBROUTINE MDS_READ_FIELD( & SQUEEZE_RIGHT, myThid) ENDIF length_of_rec = MDS_RECLEN( filePrec, sNx*sNy*nNz, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ELSE diff --git a/pkg/mdsio/mdsio_read_meta.F b/pkg/mdsio/mdsio_read_meta.F index 91eb2f2b51..666b2573c9 100644 --- a/pkg/mdsio/mdsio_read_meta.F +++ b/pkg/mdsio/mdsio_read_meta.F @@ -190,7 +190,7 @@ SUBROUTINE MDS_READ_META( CALL MDSFINDUNIT( mUnit, myThid ) C- Open meta-file - OPEN( mUnit, FILE=mFileName, STATUS='old', + OPEN( mUnit, FILE=mFileName, STATUS='old', _READONLY_ACTION & FORM='formatted', IOSTAT=errIO ) c write(0,*) 'errIO=',errIO IF ( errIO .NE. 0 ) THEN diff --git a/pkg/mdsio/mdsio_read_section.F b/pkg/mdsio/mdsio_read_section.F index 142fa3e91a..6dfa3e77ed 100644 --- a/pkg/mdsio/mdsio_read_section.F +++ b/pkg/mdsio/mdsio_read_section.F @@ -15,7 +15,7 @@ SUBROUTINE MDS_READ_SEC_XZ( I filePrec, I useCurrentDir, I arrType, - I kSize, + I kSize, kLo, kHi, O fldRL, fldRS, I irecord, I myThid ) @@ -28,7 +28,9 @@ SUBROUTINE MDS_READ_SEC_XZ( C useCurrentDir(logic):: always read from the current directory (even if C "mdsioLocalDir" is set) C arrType char(2) :: which array (fldRL/RS) to read into, either "RL" or "RS" -C kSize integer :: size of third dimension, normally either 1 or Nr +C kSize integer :: size of second dimension, normally either 1 or Nr +C kLo integer :: 1rst vertical level (of array fldRL/RS) to read-in +C kHi integer :: last vertical level (of array fldRL/RS) to read-in C fldRL RL :: array to read into if arrType="RL", fldRL(:,kSize,:,:) C fldRS RS :: array to read into if arrType="RS", fldRS(:,kSize,:,:) C irecord integer :: record number to read @@ -64,7 +66,7 @@ SUBROUTINE MDS_READ_SEC_XZ( INTEGER filePrec LOGICAL useCurrentDir CHARACTER*(2) arrType - INTEGER kSize + INTEGER kSize, kLo, kHi INTEGER irecord INTEGER myThid C !OUTPUT PARAMETERS: @@ -77,16 +79,17 @@ SUBROUTINE MDS_READ_SEC_XZ( EXTERNAL ILNBLNK, MDS_RECLEN C !LOCAL VARIABLES: - CHARACTER*(MAX_LEN_FNAM) dataFName,pfName - INTEGER iG,jG,irec,bi,bj,k,dUnit,IL,pIL + CHARACTER*(MAX_LEN_FNAM) dataFName, pfName + INTEGER IL, pIL, dUnit, nLev, irec + INTEGER iG, jG, bi, bj, k, kL LOGICAL exst Real*4 r4seg(sNx) Real*8 r8seg(sNx) - LOGICAL globalFile,fileIsOpen + LOGICAL globalFile, fileIsOpen INTEGER length_of_rec - CHARACTER*(max_len_mbuf) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_EXCH2 - INTEGER tGx,tNx,tN + INTEGER tGx, tNx, tN #endif /* ALLOW_EXCH2 */ C ------------------------------------------------------------------ @@ -119,6 +122,9 @@ SUBROUTINE MDS_READ_SEC_XZ( ENDIF pIL=ILNBLNK( pfName ) +C Set number of levels to read: + nLev = kHi - kLo + 1 + C Assign a free unit number as the I/O channel for this routine CALL MDSFINDUNIT( dUnit, myThid ) @@ -153,7 +159,7 @@ SUBROUTINE MDS_READ_SEC_XZ( C If we are reading from a global file then we open it here IF (globalFile) THEN length_of_rec = MDS_RECLEN( filePrec, sNx, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ENDIF @@ -178,7 +184,7 @@ SUBROUTINE MDS_READ_SEC_XZ( & SQUEEZE_RIGHT, myThid ) ENDIF length_of_rec = MDS_RECLEN( filePrec, sNx, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ELSE @@ -201,23 +207,24 @@ SUBROUTINE MDS_READ_SEC_XZ( tGx = exch2_txXStackLo(tN) tNx = exch2_tNx(tN) #endif /* ALLOW_EXCH2 */ - DO k=1,kSize + DO k=1,nLev + kL = k + kLo - 1 IF (globalFile) THEN #ifdef ALLOW_EXCH2 C record length is sNx==tNx irec = 1 + ( tGx-1 - & + ( k-1 + (irecord-1)*kSize )*exch2_xStack_Nx + & + ( k-1 + (irecord-1)*nLev )*exch2_xStack_Nx & )/tNx #else /* ALLOW_EXCH2 */ iG = myXGlobalLo-1 + (bi-1)*sNx jG = (myYGlobalLo-1)/sNy + (bj-1) - irec=1 + INT(iG/sNx) + nSx*nPx*(k-1) - & + nSx*nPx*kSize*(irecord-1) + irec = 1 + INT(iG/sNx) + nSx*nPx*(k-1) + & + nSx*nPx*nLev*(irecord-1) #endif /* ALLOW_EXCH2 */ ELSE iG = 0 jG = 0 - irec=k + kSize*(irecord-1) + irec = k + nLev*(irecord-1) ENDIF IF (filePrec .EQ. precFloat32) THEN READ(dUnit,rec=irec) r4seg @@ -225,10 +232,10 @@ SUBROUTINE MDS_READ_SEC_XZ( CALL MDS_BYTESWAPR4(sNx,r4seg) #endif IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG4toRS_2D( sNx,oLx,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG4toRS_2D( sNx,OLx,kSize,bi,bj,kL,.TRUE., & r4seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG4toRL_2D( sNx,oLx,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG4toRL_2D( sNx,OLx,kSize,bi,bj,kL,.TRUE., & r4seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -242,10 +249,10 @@ SUBROUTINE MDS_READ_SEC_XZ( CALL MDS_BYTESWAPR8( sNx, r8seg ) #endif IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG8toRS_2D(sNx,oLx,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG8toRS_2D(sNx,OLx,kSize,bi,bj,kL,.TRUE., & r8seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG8toRL_2D(sNx,oLx,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG8toRL_2D(sNx,OLx,kSize,bi,bj,kL,.TRUE., & r8seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -292,7 +299,7 @@ SUBROUTINE MDS_READ_SEC_YZ( I filePrec, I useCurrentDir, I arrType, - I kSize, + I kSize, kLo, kHi, O fldRL, fldRS, I irecord, I myThid ) @@ -305,7 +312,9 @@ SUBROUTINE MDS_READ_SEC_YZ( C useCurrentDir(logic):: always read from the current directory (even if C "mdsioLocalDir" is set) C arrType char(2) :: which array (fldRL/RS) to read into, either "RL" or "RS" -C kSize integer :: size of third dimension, normally either 1 or Nr +C kSize integer :: size of second dimension, normally either 1 or Nr +C kLo integer :: 1rst vertical level (of array fldRL/RS) to read-in +C kHi integer :: last vertical level (of array fldRL/RS) to read-in C fldRL RL :: array to read into if arrType="RL", fldRL(:,kSize,:,:) C fldRS RS :: array to read into if arrType="RS", fldRS(:,kSize,:,:) C irecord integer :: record number to read @@ -341,7 +350,7 @@ SUBROUTINE MDS_READ_SEC_YZ( INTEGER filePrec LOGICAL useCurrentDir CHARACTER*(2) arrType - INTEGER kSize + INTEGER kSize, kLo, kHi INTEGER irecord INTEGER myThid C !OUTPUT PARAMETERS: @@ -354,16 +363,17 @@ SUBROUTINE MDS_READ_SEC_YZ( EXTERNAL ILNBLNK, MDS_RECLEN C !LOCAL VARIABLES: - CHARACTER*(MAX_LEN_FNAM) dataFName,pfName - INTEGER iG,jG,irec,bi,bj,k,dUnit,IL,pIL + CHARACTER*(MAX_LEN_FNAM) dataFName, pfName + INTEGER IL, pIL, dUnit, nLev, irec + INTEGER iG, jG, bi, bj, k, kL LOGICAL exst Real*4 r4seg(sNy) Real*8 r8seg(sNy) - LOGICAL globalFile,fileIsOpen + LOGICAL globalFile, fileIsOpen INTEGER length_of_rec - CHARACTER*(max_len_mbuf) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_EXCH2 - INTEGER tGy,tNy,tN + INTEGER tGy, tNy, tN #endif /* ALLOW_EXCH2 */ C ------------------------------------------------------------------ @@ -397,6 +407,9 @@ SUBROUTINE MDS_READ_SEC_YZ( ENDIF pIL=ILNBLNK( pfName ) +C Set number of levels to read: + nLev = kHi - kLo + 1 + C Assign a free unit number as the I/O channel for this routine CALL MDSFINDUNIT( dUnit, myThid ) @@ -431,7 +444,7 @@ SUBROUTINE MDS_READ_SEC_YZ( C If we are reading from a global file then we open it here IF (globalFile) THEN length_of_rec = MDS_RECLEN( filePrec, sNy, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ENDIF @@ -456,7 +469,7 @@ SUBROUTINE MDS_READ_SEC_YZ( & SQUEEZE_RIGHT, myThid ) ENDIF length_of_rec = MDS_RECLEN( filePrec, sNy, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ELSE @@ -479,23 +492,24 @@ SUBROUTINE MDS_READ_SEC_YZ( tGy = exch2_tyYStackLo(tN) tNy = exch2_tNy(tN) #endif /* ALLOW_EXCH2 */ - DO k=1,kSize + DO k=1,nLev + kL = k + kLo - 1 IF (globalFile) THEN #ifdef ALLOW_EXCH2 C record length is sNy==tNy irec = 1 + ( tGy-1 - & + ( k-1 + (irecord-1)*kSize )*exch2_yStack_Ny + & + ( k-1 + (irecord-1)*nLev )*exch2_yStack_Ny & )/tNy #else /* ALLOW_EXCH2 */ iG = (myXGlobalLo-1)/sNx + (bi-1) jG = myYGlobalLo-1 + (bj-1)*sNy - irec=1 + INT(jG/sNy) + nSy*nPy*(k-1) - & + nSy*nPy*kSize*(irecord-1) + irec = 1 + INT(jG/sNy) + nSy*nPy*(k-1) + & + nSy*nPy*nLev*(irecord-1) #endif /* ALLOW_EXCH2 */ ELSE iG = 0 jG = 0 - irec=k + kSize*(irecord-1) + irec = k + nLev*(irecord-1) ENDIF IF (filePrec .EQ. precFloat32) THEN READ(dUnit,rec=irec) r4seg @@ -503,10 +517,10 @@ SUBROUTINE MDS_READ_SEC_YZ( CALL MDS_BYTESWAPR4(sNy,r4seg) #endif IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG4toRS_2D( sNy,oLy,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG4toRS_2D( sNy,OLy,kSize,bi,bj,kL,.TRUE., & r4seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG4toRL_2D( sNy,oLy,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG4toRL_2D( sNy,OLy,kSize,bi,bj,kL,.TRUE., & r4seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -520,10 +534,10 @@ SUBROUTINE MDS_READ_SEC_YZ( CALL MDS_BYTESWAPR8( sNy, r8seg ) #endif IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG8toRS_2D( sNy,oLy,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG8toRS_2D( sNy,OLy,kSize,bi,bj,kL,.TRUE., & r8seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG8toRL_2D( sNy,oLy,kSize,bi,bj,k,.TRUE., + CALL MDS_SEG8toRL_2D( sNy,OLy,kSize,bi,bj,kL,.TRUE., & r8seg,fldRL ) ELSE WRITE(msgBuf,'(A)') diff --git a/pkg/mdsio/mdsio_read_tape.F b/pkg/mdsio/mdsio_read_tape.F index fdd6fbea63..a28a2954fe 100644 --- a/pkg/mdsio/mdsio_read_tape.F +++ b/pkg/mdsio/mdsio_read_tape.F @@ -128,7 +128,7 @@ SUBROUTINE MDS_READ_TAPE( & SQUEEZE_RIGHT, myThid ) ENDIF length_of_rec = MDS_RECLEN( filePrec, vec_size, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old', _READONLY_ACTION & access='direct', recl=length_of_rec ) ELSE C Otherwise stop program. @@ -193,7 +193,7 @@ SUBROUTINE MDS_READ_TAPE( globalFile = .TRUE. C- And open it here length_of_rec = MDS_RECLEN( filePrec, nSize, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old',_READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ENDIF @@ -213,7 +213,7 @@ SUBROUTINE MDS_READ_TAPE( & SQUEEZE_RIGHT, myThid ) ENDIF length_of_rec = MDS_RECLEN( filePrec, nSize, myThid ) - OPEN( dUnit, file=dataFName, status='old', + OPEN( dUnit, file=dataFName, status='old',_READONLY_ACTION & access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ELSE diff --git a/pkg/mdsio/mdsio_read_whalos.F b/pkg/mdsio/mdsio_read_whalos.F index 524846bf71..dd7c48d7c8 100644 --- a/pkg/mdsio/mdsio_read_whalos.F +++ b/pkg/mdsio/mdsio_read_whalos.F @@ -1,9 +1,9 @@ #include "MDSIO_OPTIONS.h" CBOP -C !ROUTINE: mds_read_whalos +C !ROUTINE: MDS_READ_WHALOS C !INTERFACE: - subroutine mds_read_whalos( + SUBROUTINE MDS_READ_WHALOS( I fName, I len, I filePrec, @@ -13,24 +13,20 @@ subroutine mds_read_whalos( I irec, I locSingleCPUIO, I locBufferIO, - I mythid - & ) + I myThid ) C !DESCRIPTION: \bv -c ================================================================== -c SUBROUTINE mds_read_whalos -c ================================================================== -c o Read file that includes halos. The main purpose is for -c adjoint related "tape I/O". The secondary purpose is debugging. -c ================================================================== -c SUBROUTINE mds_read_whalos -c ================================================================== +C ================================================================== +C SUBROUTINE MDS_READ_WHALOS +C o Read file that includes halos. The main purpose is for +C adjoint related "tape I/O". The secondary purpose is debugging. +C ================================================================== C \ev C !USES: - implicit none + IMPLICIT NONE -c == global variables == +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -39,81 +35,70 @@ subroutine mds_read_whalos( #endif C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == -c fName - extended tape fName. -c len - number of characters in fName. -c filePrec - number of bits per word in file (32 or 64). -c fid - file unit (its use is not implemented yet). -C n2d - size of the fldRL third dimension. -c fldRL - array to read. -c irec - record number to be written. -c mythid - number of the thread or instance of the program. - - integer mythid - character*(*) fName - integer len - integer fid - integer filePrec - integer n2d - integer irec - _RL fldRL(1-Olx:sNx+Olx,1-Oly:sNy+Oly,n2d,nSx,nSy) - logical locSingleCPUIO, locBufferIO -CEOP +C fName :: extended tape fName. +C len :: number of characters in fName. +C filePrec :: number of bits per word in file (32 or 64). +C fid :: file unit (its use is not implemented yet). +C n2d :: size of the fldRL third dimension. +C fldRL :: array to read. +C irec :: record number to be written. +C myThid :: my Thread Id number + CHARACTER*(*) fName + INTEGER len + INTEGER filePrec + INTEGER fid + INTEGER n2d + _RL fldRL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,n2d,nSx,nSy) + INTEGER irec + LOGICAL locSingleCPUIO, locBufferIO + INTEGER myThid #ifdef ALLOW_WHIO -C !LOCAL VARIABLES: -c == local variables == +C !FUNCTIONS: + INTEGER ILNBLNK + INTEGER MDS_RECLEN + EXTERNAL ILNBLNK + EXTERNAL MDS_RECLEN -C sNxWh :: x tile size with halo included -C sNyWh :: y tile size with halo included +C !LOCAL VARIABLES: +C == local parameters == +C sNxWh :: x tile size with halo included +C sNyWh :: y tile size with halo included C pocNyWh :: processor sum of sNyWh C gloNyWh :: global sum of sNyWh INTEGER sNxWh INTEGER sNyWh INTEGER procNyWh INTEGER gloNyWh - PARAMETER ( sNxWh = sNx+2*Olx ) - PARAMETER ( sNyWh = sNy+2*Oly ) + PARAMETER ( sNxWh = sNx+2*OLx ) + PARAMETER ( sNyWh = sNy+2*OLy ) PARAMETER ( procNyWh = sNyWh*nSy*nSx ) PARAMETER ( gloNyWh = procNyWh*nPy*nPx ) - - character*(MAX_LEN_FNAM) pfName - character*(MAX_LEN_MBUF) msgBuf - integer IL - integer bx,by - - integer lengthBuff, length_of_rec - integer i2d, i3d - integer i,j,k,bi,bj,ii - integer dUnit, irec2d +C == local variables == + CHARACTER*(MAX_LEN_FNAM) pfName + INTEGER IL + INTEGER lengthBuff, length_of_rec + INTEGER i, j, i2d + INTEGER dUnit, irec2d LOGICAL iAmDoingIO -cph( +#ifdef ALLOW_WHIO_3D + INTEGER js +#endif #ifdef INTEL_COMMITQQ -cph Fix on Pleiades following model crashes on disk /nobackupnfs2/ -cph reported by Yoshihiro.Nakayama@jpl.nasa.gov -cph forrtl: Device or resource busy -cph forrtl: severe (39): error during read, unit 1001, file -cph Workaround by NAS engineer Sherry.Chang@nasa.gov - logical results, commitqq +Cph Fix on Pleiades following model crashes on disk /nobackupnfs2/ +Cph reported by Yoshihiro.Nakayama@jpl.nasa.gov +Cph forrtl: Device or resource busy +Cph forrtl: severe (39): error during read, unit 1001, file +Cph Workaround by NAS engineer Sherry.Chang@nasa.gov + LOGICAL results, commitqq #endif -cph) - - - _RL fld2d(1:sNxWh,1:sNyWh,nSx,nSy) - -c == functions == - INTEGER ILNBLNK - INTEGER MDS_RECLEN - EXTERNAL ILNBLNK - EXTERNAL MDS_RECLEN - -c == end of interface == +CEOP #ifdef ALLOW_WHIO_3D writeWh=.FALSE. #endif - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN lengthBuff=sNxWh*procNyWh ELSE lengthBuff=sNxWh*gloNyWh @@ -128,7 +113,7 @@ subroutine mds_read_whalos( ENDIF IF ( iAmDoingIO ) THEN -c get the unit and open file +C get the unit and open file IL = ILNBLNK( fName ) IF ( .NOT.locSingleCpuIO ) THEN WRITE(pfName,'(2A,I3.3,A)') fName(1:IL),'.',myProcId,'.data' @@ -139,35 +124,33 @@ subroutine mds_read_whalos( ENDIF IF (fid.EQ.0) THEN CALL MDSFINDUNIT( dUnit, myThid ) - OPEN( dUnit, file=pfName, status='old', - & access='direct', recl=length_of_rec ) + OPEN( dUnit, file=pfName, status='old', _READONLY_ACTION + & access='direct', recl=length_of_rec ) ELSE dUnit=fid ENDIF ENDIF -cph( -cph NAS Pleiades fix here: #ifdef INTEL_COMMITQQ +Cph NAS Pleiades fix here: results = commitqq(dUnit) #endif -cph) - do i2d=1,n2d + DO i2d=1,n2d _BARRIER #ifdef ALLOW_WHIO_3D IF ( iAmDoingIO.AND.locBufferIO.AND.(fid.NE.0) ) THEN -c reset counter if needed +C reset counter if needed IF (jWh.EQ.nWh) jWh=0 -c increment counter +C increment counter jWh=jWh+1 -c determine current file record +C determine current file record irec2d=i2d+n2d*(irec-1) iWh=(irec2d-1)/nWh+1 -c read new chunk if needed +C read new chunk if needed IF (jWh.EQ.1) THEN - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN IF (filePrec .EQ. precFloat32) THEN READ(dUnit,rec=iWh) fld3d_procbuff_r4 ELSE @@ -183,32 +166,42 @@ subroutine mds_read_whalos( # endif ENDIF ENDIF -c copy - DO i=1,lengthBuff - j=(jWh-1)*lengthBuff+i - IF ( .NOT.locSingleCpuIO ) then - IF (filePrec .EQ. precFloat32) THEN - fld2d_procbuff_r4(i)=fld3d_procbuff_r4(j) - ELSE - fld2d_procbuff_r8(i)=fld3d_procbuff_r8(j) - ENDIF +C copy + js = (jWh-1)*lengthBuff + IF ( .NOT.locSingleCpuIO ) THEN + IF (filePrec .EQ. precFloat32) THEN + DO i=1,lengthBuff + j = js + i + fld2d_procbuff_r4(i) = fld3d_procbuff_r4(j) + ENDDO ELSE + DO i=1,lengthBuff + j = js + i + fld2d_procbuff_r8(i) = fld3d_procbuff_r8(j) + ENDDO + ENDIF + ELSE # ifdef INCLUDE_WHIO_GLOBUFF_3D - IF (filePrec .EQ. precFloat32) THEN - fld2d_globuff_r4(i)=fld3d_globuff_r4(j) - ELSE - fld2d_globuff_r8(i)=fld3d_globuff_r8(j) - ENDIF -# endif + IF (filePrec .EQ. precFloat32) THEN + DO i=1,lengthBuff + j = js + i + fld2d_globuff_r4(i) = fld3d_globuff_r4(j) + ENDDO + ELSE + DO i=1,lengthBuff + j = js + i + fld2d_globuff_r8(i) = fld3d_globuff_r8(j) + ENDDO ENDIF - ENDDO +# endif + ENDIF ELSEIF ( iAmDoingIO ) THEN -#else +#else /* ALLOW_WHIO_3D */ IF ( iAmDoingIO ) THEN -#endif +#endif /* ALLOW_WHIO_3D */ irec2d=i2d+n2d*(irec-1) - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN IF (filePrec .EQ. precFloat32) THEN READ(dUnit,rec=irec2d) fld2d_procbuff_r4 ELSE @@ -227,7 +220,7 @@ subroutine mds_read_whalos( _BARRIER IF (filePrec .EQ. precFloat32) THEN - IF ( locSingleCpuIO ) then + IF ( locSingleCpuIO ) THEN # ifndef EXCLUDE_WHIO_GLOBUFF_2D CALL SCATTER_2D_WH_R4 ( fld2d_globuff_r4, & fld2d_procbuff_r4,myThid) @@ -237,7 +230,7 @@ subroutine mds_read_whalos( CALL MDS_PASS_R4toRL( fld2d_procbuff_r4, fldRL, & OLx, OLy, 1, i2d, n2d, 0, 0, .TRUE., myThid ) ELSE - IF ( locSingleCpuIO ) then + IF ( locSingleCpuIO ) THEN # ifndef EXCLUDE_WHIO_GLOBUFF_2D CALL SCATTER_2D_WH_R8 ( fld2d_globuff_r8, & fld2d_procbuff_r8,myThid) @@ -248,13 +241,13 @@ subroutine mds_read_whalos( & OLx, OLy, 1, i2d, n2d, 0, 0, .TRUE., myThid ) ENDIF - enddo + ENDDO IF ( iAmDoingIO.AND.(fid.EQ.0) ) THEN CLOSE( dUnit ) ENDIF -#endif +#endif /* ALLOW_WHIO */ RETURN END diff --git a/pkg/mdsio/mdsio_readvec_loc.F b/pkg/mdsio/mdsio_readvec_loc.F index 62c2c4ceaa..30d194438c 100644 --- a/pkg/mdsio/mdsio_readvec_loc.F +++ b/pkg/mdsio/mdsio_readvec_loc.F @@ -177,7 +177,7 @@ SUBROUTINE MDS_READVEC_LOC( ENDIF length_of_rec = MDS_RECLEN( filePrec, nSize, myThid ) OPEN( dUnit, file=dataFname, status=_OLD_STATUS, - & access='direct', recl=length_of_rec ) + & _READONLY_ACTION access='direct', recl=length_of_rec ) fileIsOpen=.TRUE. ELSE fileIsOpen=.FALSE. diff --git a/pkg/mdsio/mdsio_rw_slice.F b/pkg/mdsio/mdsio_rw_slice.F index bc2023fc26..53a0c149e2 100644 --- a/pkg/mdsio/mdsio_rw_slice.F +++ b/pkg/mdsio/mdsio_rw_slice.F @@ -1,3 +1,4 @@ +#undef USE_OBSOLETE_MDS_RW_SLICE #include "MDSIO_OPTIONS.h" C-- File mdsio_rw_slice.F: old version of MDS_READ/WRITE_SEC_XZ/YZ S/R with @@ -54,26 +55,26 @@ SUBROUTINE MDSREADFIELDXZ( INTEGER irecord INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) IF ( arrType.EQ.'RL' ) THEN CALL MDS_READ_SEC_XZ( - I fName, filePrec, .FALSE., arrType, nNz, + I fName, filePrec, .FALSE., arrType, nNz, 1, nNz, O arr, dummyRS, I irecord, myThid ) ELSE CALL MDS_READ_SEC_XZ( - I fName, filePrec, .FALSE., arrType, nNz, + I fName, filePrec, .FALSE., arrType, nNz, 1, nNz, O dummyRL, arr, I irecord, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSREADFIELDXZ is retired' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -119,26 +120,26 @@ SUBROUTINE MDSREADFIELDYZ( INTEGER irecord INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) IF ( arrType.EQ.'RL' ) THEN CALL MDS_READ_SEC_YZ( - I fName, filePrec, .FALSE., arrType, nNz, + I fName, filePrec, .FALSE., arrType, nNz, 1, nNz, O arr, dummyRS, I irecord, myThid ) ELSE CALL MDS_READ_SEC_YZ( - I fName, filePrec, .FALSE., arrType, nNz, + I fName, filePrec, .FALSE., arrType, nNz, 1, nNz, O dummyRL, arr, I irecord, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSREADFIELDYZ is retired' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -184,26 +185,26 @@ SUBROUTINE MDSREADFIELDXZ_LOC( INTEGER irecord INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) IF ( arrType.EQ.'RL' ) THEN CALL MDS_READ_SEC_XZ( - I fName, filePrec, .TRUE., arrType, nNz, + I fName, filePrec, .TRUE., arrType, nNz, 1, nNz, O arr, dummyRS, I irecord, myThid ) ELSE CALL MDS_READ_SEC_XZ( - I fName, filePrec, .TRUE., arrType, nNz, + I fName, filePrec, .TRUE., arrType, nNz, 1, nNz, O dummyRL, arr, I irecord, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSREADFIELDXZ_LOC is empty' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -249,26 +250,26 @@ SUBROUTINE MDSREADFIELDYZ_LOC( INTEGER irecord INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) IF ( arrType.EQ.'RL' ) THEN CALL MDS_READ_SEC_YZ( - I fName, filePrec, .TRUE., arrType, nNz, + I fName, filePrec, .TRUE., arrType, nNz, 1, nNz, O arr, dummyRS, I irecord, myThid ) ELSE CALL MDS_READ_SEC_YZ( - I fName, filePrec, .TRUE., arrType, nNz, + I fName, filePrec, .TRUE., arrType, nNz, 1, nNz, O dummyRL, arr, I irecord, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSREADFIELDYZ_LOC is empty' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -299,7 +300,7 @@ SUBROUTINE MDSWRITEFIELDXZ( C myThid integer :: thread identifier C C Routine now calls MDS_WRITE_REC_XZ, just a way to add extra arguments -C to the argument list. +C to the argument list. C The 1rst new argument (useCurrentDir=.FALSE.) allows to write files to C the "mdsioLocalDir" directory (if it is set). C The 2nd new argument avoid argument array of undefined type (RL/RS). @@ -320,7 +321,7 @@ SUBROUTINE MDSWRITEFIELDXZ( INTEGER myIter INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) @@ -328,18 +329,18 @@ SUBROUTINE MDSWRITEFIELDXZ( IF ( arrType.EQ.'RL' ) THEN CALL MDS_WRITE_SEC_XZ( I fName, filePrec, globalFile, .FALSE., - I arrType, nNz, arr, dummyRS, + I arrType, nNz, 1, nNz, arr, dummyRS, I irecord, myIter, myThid ) ELSE CALL MDS_WRITE_SEC_XZ( I fName, filePrec, globalFile, .FALSE., - I arrType, nNz, dummyRL, arr, + I arrType, nNz, 1, nNz, dummyRL, arr, I irecord, myIter, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSWRITEFIELDXZ is retired' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -370,7 +371,7 @@ SUBROUTINE MDSWRITEFIELDYZ( C myThid integer :: thread identifier C C Routine now calls MDS_WRITE_REC_YZ, just a way to add extra arguments -C to the argument list. +C to the argument list. C The 1rst new argument (useCurrentDir=.FALSE.) allows to write files to C the "mdsioLocalDir" directory (if it is set). C The 2nd new argument avoid argument array of undefined type (RL/RS). @@ -391,7 +392,7 @@ SUBROUTINE MDSWRITEFIELDYZ( INTEGER myIter INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) @@ -399,18 +400,18 @@ SUBROUTINE MDSWRITEFIELDYZ( IF ( arrType.EQ.'RL' ) THEN CALL MDS_WRITE_SEC_YZ( I fName, filePrec, globalFile, .FALSE., - I arrType, nNz, arr, dummyRS, + I arrType, nNz, 1, nNz, arr, dummyRS, I irecord, myIter, myThid ) ELSE CALL MDS_WRITE_SEC_YZ( I fName, filePrec, globalFile, .FALSE., - I arrType, nNz, dummyRL, arr, + I arrType, nNz, 1, nNz, dummyRL, arr, I irecord, myIter, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSWRITEFIELDYZ is retired' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -441,7 +442,7 @@ SUBROUTINE MDSWRITEFIELDXZ_LOC( C myThid integer :: thread identifier C C Routine now calls MDS_WRITE_REC_XZ, just a way to add extra arguments -C to the argument list. +C to the argument list. C The 1rst new argument (useCurrentDir=.TRUE.) forces to ignore the C "mdsioLocalDir" parameter and to always write to the current directory. C The 2nd new argument avoid argument array of undefined type (RL/RS). @@ -462,7 +463,7 @@ SUBROUTINE MDSWRITEFIELDXZ_LOC( INTEGER myIter INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) @@ -470,18 +471,18 @@ SUBROUTINE MDSWRITEFIELDXZ_LOC( IF ( arrType.EQ.'RL' ) THEN CALL MDS_WRITE_SEC_XZ( I fName, filePrec, globalFile, .TRUE., - I arrType, nNz, arr, dummyRS, + I arrType, nNz, 1, nNz, arr, dummyRS, I irecord, myIter, myThid ) ELSE CALL MDS_WRITE_SEC_XZ( I fName, filePrec, globalFile, .TRUE., - I arrType, nNz, dummyRL, arr, + I arrType, nNz, 1, nNz, dummyRL, arr, I irecord, myIter, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSWRITEFIELDXZ_LOC is empty' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END @@ -512,7 +513,7 @@ SUBROUTINE MDSWRITEFIELDYZ_LOC( C myThid integer :: thread identifier C C Routine now calls MDS_WRITE_REC_YZ, just a way to add extra arguments -C to the argument list. +C to the argument list. C The 1rst new argument (useCurrentDir=.TRUE.) forces to ignore the C "mdsioLocalDir" parameter and to always write to the current directory. C The 2nd new argument avoid argument array of undefined type (RL/RS). @@ -533,7 +534,7 @@ SUBROUTINE MDSWRITEFIELDYZ_LOC( INTEGER myIter INTEGER myThid -#ifdef ALLOW_AUTODIFF +#ifdef USE_OBSOLETE_MDS_RW_SLICE C Local variables _RL dummyRL(1) _RS dummyRS(1) @@ -541,18 +542,18 @@ SUBROUTINE MDSWRITEFIELDYZ_LOC( IF ( arrType.EQ.'RL' ) THEN CALL MDS_WRITE_SEC_YZ( I fName, filePrec, globalFile, .TRUE., - I arrType, nNz, arr, dummyRS, + I arrType, nNz, 1, nNz, arr, dummyRS, I irecord, myIter, myThid ) ELSE CALL MDS_WRITE_SEC_YZ( I fName, filePrec, globalFile, .TRUE., - I arrType, nNz, dummyRL, arr, + I arrType, nNz, 1, nNz, dummyRL, arr, I irecord, myIter, myThid ) ENDIF -#else /* ALLOW_AUTODIFF */ +#else /* USE_OBSOLETE_MDS_RW_SLICE */ STOP 'ABNORMAL END: S/R MDSWRITEFIELDYZ_LOC is empty' -#endif /* ALLOW_AUTODIFF */ +#endif /* USE_OBSOLETE_MDS_RW_SLICE */ RETURN END diff --git a/pkg/mdsio/mdsio_write_section.F b/pkg/mdsio/mdsio_write_section.F index eb4ab4ec62..dad4c0d7f4 100644 --- a/pkg/mdsio/mdsio_write_section.F +++ b/pkg/mdsio/mdsio_write_section.F @@ -16,7 +16,7 @@ SUBROUTINE MDS_WRITE_SEC_XZ( I globalFile, I useCurrentDir, I arrType, - I kSize, + I kSize, kLo, kHi, I fldRL, fldRS, I irecord, I myIter, @@ -31,7 +31,9 @@ SUBROUTINE MDS_WRITE_SEC_XZ( C useCurrentDir logic :: always write to the current directory (even if C "mdsioLocalDir" is set) C arrType char(2) :: which array (fldRL/RS) to write, either "RL" or "RS" -C kSize integer :: size of third dimension, normally either 1 or Nr +C kSize integer :: size of second dimension: normally either 1 or Nr +C kLo integer :: 1rst vertical level (of array fldRL/RS) to write +C kHi integer :: last vertical level (of array fldRL/RS) to write C fldRL RL :: array to write if arrType="RL", fldRL(:,kSize,:,:) C fldRS RS :: array to write if arrType="RS", fldRS(:,kSize,:,:) C irecord integer :: record number to read @@ -70,7 +72,7 @@ SUBROUTINE MDS_WRITE_SEC_XZ( LOGICAL globalFile LOGICAL useCurrentDir CHARACTER*(2) arrType - INTEGER kSize + INTEGER kSize, kLo, kHi _RL fldRL(*) _RS fldRS(*) INTEGER irecord @@ -84,15 +86,16 @@ SUBROUTINE MDS_WRITE_SEC_XZ( EXTERNAL ILNBLNK, MDS_RECLEN C !LOCAL VARIABLES: - CHARACTER*(MAX_LEN_FNAM) dataFName,pfName - INTEGER iG,jG,irec,bi,bj,k,dUnit,IL,pIL + CHARACTER*(MAX_LEN_FNAM) dataFName, pfName + INTEGER IL, pIL, dUnit, nLev, irec + INTEGER iG, jG, bi, bj, k, kL Real*4 r4seg(sNx) Real*8 r8seg(sNx) INTEGER length_of_rec LOGICAL fileIsOpen - CHARACTER*(max_len_mbuf) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_EXCH2 - INTEGER tGx,tNx,tN + INTEGER tGx, tNx, tN #endif /* ALLOW_EXCH2 */ C ------------------------------------------------------------------ @@ -125,6 +128,9 @@ SUBROUTINE MDS_WRITE_SEC_XZ( ENDIF pIL=ILNBLNK( pfName ) +C Set number of levels to write: + nLev = kHi - kLo + 1 + C Assign a free unit number as the I/O channel for this routine CALL MDSFINDUNIT( dUnit, myThid ) @@ -172,30 +178,31 @@ SUBROUTINE MDS_WRITE_SEC_XZ( tGx = exch2_txXStackLo(tN) tNx = exch2_tNx(tN) #endif /* ALLOW_EXCH2 */ - DO k=1,kSize + DO k=1,nLev + kL = k + kLo - 1 IF (globalFile) THEN #ifdef ALLOW_EXCH2 C record length is sNx==tNx irec = 1 + ( tGx-1 - & + ( k-1 + (irecord-1)*kSize )*exch2_xStack_Nx + & + ( k-1 + (irecord-1)*nLev )*exch2_xStack_Nx & )/tNx #else /* ALLOW_EXCH2 */ iG = myXGlobalLo-1 + (bi-1)*sNx jG = (myYGlobalLo-1)/sNy + (bj-1) - irec=1 + INT(iG/sNx) + nSx*nPx*(k-1) - & + nSx*nPx*kSize*(irecord-1) + irec = 1 + INT(iG/sNx) + nSx*nPx*(k-1) + & + nSx*nPx*nLev*(irecord-1) #endif /* ALLOW_EXCH2 */ ELSE iG = 0 jG = 0 - irec=k + kSize*(irecord-1) + irec = k + nLev*(irecord-1) ENDIF IF (filePrec .EQ. precFloat32) THEN IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG4toRS_2D( sNx,oLx,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG4toRS_2D( sNx,OLx,kSize,bi,bj,kL,.FALSE., & r4seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG4toRL_2D( sNx,oLx,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG4toRL_2D( sNx,OLx,kSize,bi,bj,kL,.FALSE., & r4seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -209,10 +216,10 @@ SUBROUTINE MDS_WRITE_SEC_XZ( WRITE(dUnit,rec=irec) r4seg ELSEIF (filePrec .EQ. precFloat64) THEN IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG8toRS_2D( sNx,oLx,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG8toRS_2D( sNx,OLx,kSize,bi,bj,kL,.FALSE., & r8seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG8toRL_2D( sNx,oLx,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG8toRL_2D( sNx,OLx,kSize,bi,bj,kL,.FALSE., & r8seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -270,7 +277,7 @@ SUBROUTINE MDS_WRITE_SEC_YZ( I globalFile, I useCurrentDir, I arrType, - I kSize, + I kSize, kLo, kHi, I fldRL, fldRS, I irecord, I myIter, @@ -285,7 +292,9 @@ SUBROUTINE MDS_WRITE_SEC_YZ( C useCurrentDir logic :: always write to the current directory (even if C "mdsioLocalDir" is set) C arrType char(2) :: which array (fldRL/RS) to write, either "RL" or "RS" -C kSize integer :: size of third dimension, normally either 1 or Nr +C kSize integer :: size of second dimension: normally either 1 or Nr +C kLo integer :: 1rst vertical level (of array fldRL/RS) to write +C kHi integer :: last vertical level (of array fldRL/RS) to write C fldRL RL :: array to write if arrType="RL", fldRL(:,kSize,:,:) C fldRS RS :: array to write if arrType="RS", fldRS(:,kSize,:,:) C irecord integer :: record number to read @@ -324,7 +333,7 @@ SUBROUTINE MDS_WRITE_SEC_YZ( LOGICAL globalFile LOGICAL useCurrentDir CHARACTER*(2) arrType - INTEGER kSize + INTEGER kSize, kLo, kHi _RL fldRL(*) _RS fldRS(*) INTEGER irecord @@ -338,15 +347,16 @@ SUBROUTINE MDS_WRITE_SEC_YZ( EXTERNAL ILNBLNK, MDS_RECLEN C !LOCAL VARIABLES: - CHARACTER*(MAX_LEN_FNAM) dataFName,pfName - INTEGER iG,jG,irec,bi,bj,k,dUnit,IL,pIL + CHARACTER*(MAX_LEN_FNAM) dataFName, pfName + INTEGER IL, pIL, dUnit, nLev, irec + INTEGER iG, jG, bi, bj, k, kL Real*4 r4seg(sNy) Real*8 r8seg(sNy) INTEGER length_of_rec LOGICAL fileIsOpen - CHARACTER*(max_len_mbuf) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_EXCH2 - INTEGER tGy,tNy,tN + INTEGER tGy, tNy, tN #endif /* ALLOW_EXCH2 */ C ------------------------------------------------------------------ @@ -378,6 +388,9 @@ SUBROUTINE MDS_WRITE_SEC_YZ( ENDIF pIL=ILNBLNK( pfName ) +C Set number of levels to write: + nLev = kHi - kLo + 1 + C Assign a free unit number as the I/O channel for this routine CALL MDSFINDUNIT( dUnit, myThid ) @@ -425,30 +438,31 @@ SUBROUTINE MDS_WRITE_SEC_YZ( tGy = exch2_tyYStackLo(tN) tNy = exch2_tNy(tN) #endif /* ALLOW_EXCH2 */ - DO k=1,kSize + DO k=1,nLev + kL = k + kLo - 1 IF (globalFile) THEN #ifdef ALLOW_EXCH2 C record length is sNy==tNy irec = 1 + ( tGy-1 - & + ( k-1 + (irecord-1)*kSize )*exch2_yStack_Ny + & + ( k-1 + (irecord-1)*nLev )*exch2_yStack_Ny & )/tNy #else /* ALLOW_EXCH2 */ iG = (myXGlobalLo-1)/sNx + (bi-1) jG = myYGlobalLo-1 + (bj-1)*sNy - irec=1 + INT(jG/sNy) + nSy*nPy*(k-1) - & + nSy*nPy*kSize*(irecord-1) + irec = 1 + INT(jG/sNy) + nSy*nPy*(k-1) + & + nSy*nPy*nLev*(irecord-1) #endif /* ALLOW_EXCH2 */ ELSE iG = 0 jG = 0 - irec=k + kSize*(irecord-1) + irec = k + nLev*(irecord-1) ENDIF IF (filePrec .EQ. precFloat32) THEN IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG4toRS_2D( sNy,oLy,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG4toRS_2D( sNy,OLy,kSize,bi,bj,kL,.FALSE., & r4seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG4toRL_2D( sNy,oLy,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG4toRL_2D( sNy,OLy,kSize,bi,bj,kL,.FALSE., & r4seg,fldRL ) ELSE WRITE(msgBuf,'(A)') @@ -462,10 +476,10 @@ SUBROUTINE MDS_WRITE_SEC_YZ( WRITE(dUnit,rec=irec) r4seg ELSEIF (filePrec .EQ. precFloat64) THEN IF (arrType .EQ. 'RS') THEN - CALL MDS_SEG8toRS_2D( sNy,oLy,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG8toRS_2D( sNy,OLy,kSize,bi,bj,kL,.FALSE., & r8seg,fldRS ) ELSEIF (arrType .EQ. 'RL') THEN - CALL MDS_SEG8toRL_2D( sNy,oLy,kSize,bi,bj,k,.FALSE., + CALL MDS_SEG8toRL_2D( sNy,OLy,kSize,bi,bj,kL,.FALSE., & r8seg,fldRL ) ELSE WRITE(msgBuf,'(A)') diff --git a/pkg/mdsio/mdsio_write_whalos.F b/pkg/mdsio/mdsio_write_whalos.F index c35dc5fd98..06ecfa82e5 100644 --- a/pkg/mdsio/mdsio_write_whalos.F +++ b/pkg/mdsio/mdsio_write_whalos.F @@ -1,9 +1,9 @@ #include "MDSIO_OPTIONS.h" CBOP -C !ROUTINE: mds_write_whalos +C !ROUTINE: MDS_WRITE_WHALOS C !INTERFACE: - subroutine mds_write_whalos( + SUBROUTINE MDS_WRITE_WHALOS( I fName, I len, I filePrec, @@ -13,24 +13,20 @@ subroutine mds_write_whalos( I irec, I locSingleCPUIO, I locBufferIO, - I mythid - & ) + I myThid ) C !DESCRIPTION: \bv -c ================================================================== -c SUBROUTINE mds_write_whalos -c ================================================================== -c o Write file that includes halos. The main purpose is for -c adjoint related "tape I/O". The secondary purpose is debugging. -c ================================================================== -c SUBROUTINE mds_write_whalos -c ================================================================== +C ================================================================== +C SUBROUTINE MDS_WRITE_WHALOS +C o Write file that includes halos. The main purpose is for +C adjoint related "tape I/O". The secondary purpose is debugging. +C ================================================================== C \ev C !USES: - implicit none + IMPLICIT NONE -c == global variables == +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -39,72 +35,62 @@ subroutine mds_write_whalos( #endif C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == -c fName - extended tape fName. -c len - number of characters in fName. -c filePrec - number of bits per word in file (32 or 64). -c fid - file unit (its use is not implemented yet). -C n2d - size of the fldRL third dimension. -c fldRL - array to read. -c irec - record number to be written. -c mythid - number of the thread or instance of the program. - - integer mythid - character*(*) fName - integer len - integer fid - integer filePrec - integer n2d - integer irec - _RL fldRL(1-Olx:sNx+Olx,1-Oly:sNy+Oly,n2d,nSx,nSy) - logical locSingleCPUIO, locBufferIO -CEOP +C fName :: extended tape fName. +C len :: number of characters in fName. +C filePrec :: number of bits per word in file (32 or 64). +C fid :: file unit (its use is not implemented yet). +C n2d :: size of the fldRL third dimension. +C fldRL :: array to read. +C irec :: record number to be written. +C myThid :: my Thread Id number + CHARACTER*(*) fName + INTEGER len + INTEGER filePrec + INTEGER fid + INTEGER n2d + _RL fldRL(1-OLx:sNx+OLx,1-OLy:sNy+OLy,n2d,nSx,nSy) + INTEGER irec + LOGICAL locSingleCPUIO, locBufferIO + INTEGER myThid #ifdef ALLOW_WHIO -C !LOCAL VARIABLES: -c == local variables == +C !FUNCTIONS: + INTEGER ILNBLNK + INTEGER MDS_RECLEN + EXTERNAL ILNBLNK + EXTERNAL MDS_RECLEN -C sNxWh :: x tile size with halo included -C sNyWh :: y tile size with halo included +C !LOCAL VARIABLES: +C == local parameters == +C sNxWh :: x tile size with halo included +C sNyWh :: y tile size with halo included C pocNyWh :: processor sum of sNyWh C gloNyWh :: global sum of sNyWh INTEGER sNxWh INTEGER sNyWh INTEGER procNyWh INTEGER gloNyWh - PARAMETER ( sNxWh = sNx+2*Olx ) - PARAMETER ( sNyWh = sNy+2*Oly ) + PARAMETER ( sNxWh = sNx+2*OLx ) + PARAMETER ( sNyWh = sNy+2*OLy ) PARAMETER ( procNyWh = sNyWh*nSy*nSx ) PARAMETER ( gloNyWh = procNyWh*nPy*nPx ) - -C !LOCAL VARIABLES: -c == local variables == - character*(MAX_LEN_FNAM) pfName - character*(MAX_LEN_MBUF) msgBuf - integer IL - integer bx,by - - integer lengthBuff, length_of_rec - integer i2d, i3d - integer i,j,k,bi,bj,ii - integer dUnit, irec2d +C == local variables == + CHARACTER*(MAX_LEN_FNAM) pfName + INTEGER IL + INTEGER lengthBuff, length_of_rec + INTEGER i, j, i2d + INTEGER dUnit, irec2d LOGICAL iAmDoingIO - - _RL fld2d(1:sNxWh,1:sNyWh,nSx,nSy) - -c == functions == - INTEGER ILNBLNK - INTEGER MDS_RECLEN - EXTERNAL ILNBLNK - EXTERNAL MDS_RECLEN - -c == end of interface == +#ifdef ALLOW_WHIO_3D + INTEGER js +#endif +CEOP #ifdef ALLOW_WHIO_3D writeWh=.TRUE. #endif - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN lengthBuff=sNxWh*procNyWh ELSE lengthBuff=sNxWh*gloNyWh @@ -119,7 +105,7 @@ subroutine mds_write_whalos( ENDIF IF ( iAmDoingIO ) THEN -c get the unit and open file +C get the unit and open file IL = ILNBLNK( fName ) IF ( .NOT.locSingleCpuIO ) THEN WRITE(pfName,'(2A,I3.3,A)') fName(1:IL),'.',myProcId,'.data' @@ -137,13 +123,12 @@ subroutine mds_write_whalos( ENDIF ENDIF - - do i2d=1,n2d + DO i2d=1,n2d IF (filePrec .EQ. precFloat32) THEN CALL MDS_PASS_R4toRL( fld2d_procbuff_r4, fldRL, & OLx, OLy, 1, i2d, n2d, 0, 0, .FALSE., myThid ) - IF ( locSingleCpuIO ) then + IF ( locSingleCpuIO ) THEN CALL BAR2( myThid ) # ifndef EXCLUDE_WHIO_GLOBUFF_2D CALL GATHER_2D_WH_R4( fld2d_globuff_r4, @@ -153,7 +138,7 @@ subroutine mds_write_whalos( ELSE CALL MDS_PASS_R8toRL( fld2d_procbuff_r8, fldRL, & OLx, OLy, 1, i2d, n2d, 0, 0, .FALSE., myThid ) - IF ( locSingleCpuIO ) then + IF ( locSingleCpuIO ) THEN CALL BAR2( myThid ) # ifndef EXCLUDE_WHIO_GLOBUFF_2D CALL GATHER_2D_WH_R8( fld2d_globuff_r8, @@ -165,35 +150,45 @@ subroutine mds_write_whalos( _BARRIER #ifdef ALLOW_WHIO_3D IF ( iAmDoingIO.AND.locBufferIO.AND.(fid.NE.0) ) THEN -c reset counter if needed +C reset counter if needed IF (jWh.EQ.nWh) jWh=0 -c increment counter +C increment counter jWh=jWh+1 -c determine current file record +C determine current file record irec2d=i2d+n2d*(irec-1) iWh=(irec2d-1)/nWh+1 -c copy - DO i=1,lengthBuff - j=(jWh-1)*lengthBuff+i - IF ( .NOT.locSingleCpuIO ) then - IF (filePrec .EQ. precFloat32) THEN - fld3d_procbuff_r4(j)=fld2d_procbuff_r4(i) - ELSE - fld3d_procbuff_r8(j)=fld2d_procbuff_r8(i) - ENDIF +C copy + js = (jWh-1)*lengthBuff + IF ( .NOT.locSingleCpuIO ) THEN + IF (filePrec .EQ. precFloat32) THEN + DO i=1,lengthBuff + j = js + i + fld3d_procbuff_r4(j) = fld2d_procbuff_r4(i) + ENDDO ELSE + DO i=1,lengthBuff + j = js + i + fld3d_procbuff_r8(j) = fld2d_procbuff_r8(i) + ENDDO + ENDIF + ELSE # ifdef INCLUDE_WHIO_GLOBUFF_3D - IF (filePrec .EQ. precFloat32) THEN - fld3d_globuff_r4(j)=fld2d_globuff_r4(i) - ELSE - fld3d_globuff_r8(j)=fld2d_globuff_r8(i) - ENDIF -# endif + IF (filePrec .EQ. precFloat32) THEN + DO i=1,lengthBuff + j = js + i + fld3d_globuff_r4(j) = fld2d_globuff_r4(i) + ENDDO + ELSE + DO i=1,lengthBuff + j = js + i + fld3d_globuff_r8(j) = fld2d_globuff_r8(i) + ENDDO ENDIF - ENDDO -c write chunk if needed +# endif + ENDIF +C write chunk if needed IF (jWh.EQ.nWh) THEN - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN IF (filePrec .EQ. precFloat32) THEN WRITE(dUnit,rec=iWh) fld3d_procbuff_r4 ELSE @@ -211,11 +206,11 @@ subroutine mds_write_whalos( ENDIF ELSEIF ( iAmDoingIO ) THEN -#else +#else /* ALLOW_WHIO_3D */ IF ( iAmDoingIO ) THEN -#endif +#endif /* ALLOW_WHIO_3D */ irec2d=i2d+n2d*(irec-1) - IF ( .NOT.locSingleCpuIO ) then + IF ( .NOT.locSingleCpuIO ) THEN IF (filePrec .EQ. precFloat32) THEN WRITE(dUnit,rec=irec2d) fld2d_procbuff_r4 ELSE @@ -233,13 +228,13 @@ subroutine mds_write_whalos( ENDIF _BARRIER - enddo + ENDDO IF ( iAmDoingIO.AND.(fid.EQ.0) ) THEN CLOSE( dUnit ) ENDIF -#endif +#endif /* ALLOW_WHIO */ RETURN END diff --git a/pkg/mnc/MNC_COMMON.h b/pkg/mnc/MNC_COMMON.h index f5b8d7921d..87ec735495 100644 --- a/pkg/mnc/MNC_COMMON.h +++ b/pkg/mnc/MNC_COMMON.h @@ -7,7 +7,7 @@ C The following common block is the "state" for the MNC interface to C NetCDF. The intent is to keep track of the associations between C files, attributes, variables, grids, and dimensions. These C objects are roughly defined as: -C +C C a dimension: C - contains: [ name, size ] C - exists per-NetCDF-file @@ -15,22 +15,22 @@ C C a grid: C - contains *ORDERED* sets of dimensions: [ name, 1+ dim-refs ] C - exists per-NetCDF-file -C - NOTE: when created, the name and dim-refs are embedded in +C - NOTE: when created, the name and dim-refs are embedded in C the NetCDF file attributes for later retrieval -C - NOTE: grid coordinates are implemented using variables with -C special names (eg. lat, lon) and special units +C - NOTE: grid coordinates are implemented using variables with +C special names (eg. lat, lon) and special units C (eg. degree_east) -C +C C a variable: C - contains: [ name, units, 1 grid-ref, data ] C - exists per-NetCDF-file C - NOTE: is associated with *exactly* one grid -C +C C an attribute: C - contains: [ name, units, data ] C - basically, a scalar (non-grid) variable C - exists per-NetCDF-file -C +C C a NetCDF file: C - contains: [ name, 0+ attr, 0+ grid-ref, 0+ var-ref ] C @@ -43,12 +43,12 @@ C !INTERFACE: C #include "MNC_COMMON.h" C !DESCRIPTION: -C Contains the ``look-up'' tables for the MNC package. These tables +C Contains the "look-up" tables for the MNC package. These tables C contain the mappings between the various names and the NetCDF C entities. C !LOCAL VARIABLES: -C The following MNC "Internals" are implemented on a +C The following MNC "Internals" are implemented on a C PER-NetDCF-FILE basis: C . C mnc_blank_name :: (convenience) just MNC_MAX_CHAR spaces @@ -56,7 +56,7 @@ C . C mnc_f_names (fi) :: file names C mnc_g_names (gi) :: grid names <----+ C . | -C mnc_f_info (fi,-) :: isDEF, fID, Ngrid, g1,ds1,de1, +C mnc_f_info (fi,-) :: isDEF, fID, Ngrid, g1,ds1,de1, C . g2,ds2,de2, ... C . | | C mnc_fd_ind (fi,-) :: dim indicies <-------+---+ @@ -78,7 +78,7 @@ C vi :: variable index C di :: dimension index C . C . -C The following MNC "Convenience Wrapper" variables are +C The following MNC "Convenience Wrapper" variables are C implemented independently of any NetCDF files C . C mnc_cw_fgnm (f) :: file group name (or "base name") @@ -129,8 +129,8 @@ CEOP C===================================================================== COMMON /MNC_VARS_C/ - & mnc_blank_name, - & mnc_g_names, mnc_v_names, mnc_d_names, + & mnc_blank_name, + & mnc_g_names, mnc_v_names, mnc_d_names, & mnc_out_path, mnc_f_names character*(MNC_MAX_CHAR) mnc_blank_name @@ -156,8 +156,8 @@ C===================================================================== C===================================================================== COMMON /MNC_CW_VARS_C/ - & mnc_cw_gname, mnc_cw_dn, - & mnc_cw_vname, + & mnc_cw_gname, mnc_cw_dn, + & mnc_cw_vname, & mnc_cw_vtnm, mnc_cw_vinm, mnc_cw_vdnm, & mnc_cw_fgnm, & mnc_cw_vtat @@ -175,7 +175,7 @@ C Note the longer string length here C===================================================================== COMMON /MNC_CW_VARS_I/ - & mnc_cw_ndim, mnc_cw_dims, + & mnc_cw_ndim, mnc_cw_dims, & mnc_cw_is, mnc_cw_ie, & mnc_cw_vgind, mnc_cw_vfmv, mnc_cw_vmvi, mnc_cw_vnat, & mnc_cw_vbij, mnc_cw_viat, diff --git a/pkg/mom_common/MOM_COMMON_OPTIONS.h b/pkg/mom_common/MOM_COMMON_OPTIONS.h index 48affb3818..d295357b8f 100644 --- a/pkg/mom_common/MOM_COMMON_OPTIONS.h +++ b/pkg/mom_common/MOM_COMMON_OPTIONS.h @@ -21,5 +21,10 @@ C allow full 3D specification of horizontal Laplacian Viscosity C allow full 3D specification of horizontal Biharmonic Viscosity #undef ALLOW_3D_VISCA4 +C Compute bottom drag coefficents, following the logarithmic law of the wall, +C as a function of grid cell thickness and roughness length +C zRoughBot (order 0.01m), assuming a von Karman constant = 0.4. +#undef ALLOW_BOTTOMDRAG_ROUGHNESS + #endif /* ALLOW_MOM_COMMON */ #endif /* MOM_COMMON_OPTIONS_H */ diff --git a/pkg/mom_common/MOM_VISC.h b/pkg/mom_common/MOM_VISC.h index 5946bc0001..3a7905c95f 100644 --- a/pkg/mom_common/MOM_VISC.h +++ b/pkg/mom_common/MOM_VISC.h @@ -61,4 +61,13 @@ C viscA4_W :: Horizontal biharmonic viscosity for vertical momentum _RL viscA4_W(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #endif /* ALLOW_NONHYDROSTATIC */ +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS +C-- bottom drag coefficents as a function of grid cell thickness +C and roughness length + COMMON /GRID_DRAGCOEFFS_RS/ + & bottomDragCoeffW, bottomDragCoeffS + _RS bottomDragCoeffW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS bottomDragCoeffS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif + #endif /* ALLOW_MOM_COMMON */ diff --git a/pkg/mom_common/mom_calc_hdiv.F b/pkg/mom_common/mom_calc_hdiv.F index 51b10368e9..0835012287 100644 --- a/pkg/mom_common/mom_calc_hdiv.F +++ b/pkg/mom_common/mom_calc_hdiv.F @@ -17,7 +17,7 @@ SUBROUTINE MOM_CALC_HDIV( #include "PARAMS.h" #include "GRID.h" C == Routine arguments == -C myThid - Instance number for this innvocation of CALC_MOM_RHS +C myThid :: my Thread Id number INTEGER bi,bj,k,hDivScheme _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -27,6 +27,14 @@ SUBROUTINE MOM_CALC_HDIV( C == Local variables == INTEGER i,j +#ifdef ALLOW_AUTODIFF +C Initialise (again) hDiv (in case it got dropped in calling S/R): + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + hDiv(i,j)=0. _d 0 + ENDDO + ENDDO +#endif IF (hDivScheme.EQ.1) THEN DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 diff --git a/pkg/mom_common/mom_calc_hfacz.F b/pkg/mom_common/mom_calc_hfacz.F index 2b85af6b69..25045ffdd2 100644 --- a/pkg/mom_common/mom_calc_hfacz.F +++ b/pkg/mom_common/mom_calc_hfacz.F @@ -2,6 +2,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif CBOP C !ROUTINE: MOM_CALC_HFACZ @@ -22,9 +25,8 @@ SUBROUTINE MOM_CALC_HFACZ( #include "PARAMS.h" #include "GRID.h" #ifdef ALLOW_DEPTH_CONTROL -# ifdef ALLOW_AUTODIFF +# ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # endif #else /* ALLOW_DEPTH_CONTROL */ # ifdef ALLOW_EXCH2 @@ -63,6 +65,9 @@ SUBROUTINE MOM_CALC_HFACZ( _RS SMOOTHMIN_RS EXTERNAL SMOOTHMIN_RS # endif /* USE_SMOOTH_MIN */ +# ifdef ALLOW_AUTODIFF_TAMC + INTEGER kkey +# endif #else /* ALLOW_DEPTH_CONTROL */ _RS hFacZOpen INTEGER hZoption @@ -81,17 +86,8 @@ SUBROUTINE MOM_CALC_HFACZ( #ifdef ALLOW_DEPTH_CONTROL #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 - kkey = (ikey-1)*Nr + k + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = k + (kkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ DO j=1-OLy,sNy+OLy @@ -363,7 +359,7 @@ SUBROUTINE MOM_CALC_HFACZ( C Special Cubed Sphere block ends here C----------------------------------------- -C-- Calculate reciprol: +C-- Calculate reciprocal: DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx IF (hFacZ(i,j).EQ.0.) THEN diff --git a/pkg/mom_common/mom_calc_smag_3d.F b/pkg/mom_common/mom_calc_smag_3d.F index c02e49fa49..8dd53380c8 100644 --- a/pkg/mom_common/mom_calc_smag_3d.F +++ b/pkg/mom_common/mom_calc_smag_3d.F @@ -25,6 +25,9 @@ SUBROUTINE MOM_CALC_SMAG_3D( #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY +# include "DYNVARS.h" +#endif c#include "MOM_VISC.h" C !INPUT PARAMETERS: @@ -73,7 +76,7 @@ SUBROUTINE MOM_CALC_SMAG_3D( C S23 :: Squared of strain component Vyz @ above vVel INTEGER i, j INTEGER kl, n - _RL twoThird, tmpFac + _RL twoThird, tmpFac, locVisc _RL S66(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) _RL S12(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) _RL S13(1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) @@ -117,13 +120,13 @@ SUBROUTINE MOM_CALC_SMAG_3D( C Current level k --> n=1 kl = k n = 1 - tmpFac = smag3D_coeff*twoRL*SQRT(twoRL)*drF(kl)**twoThird + tmpFac = twoRL*SQRT(twoRL)*drF(kl)**twoThird C viscAh3d_00 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ grid-cell center DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 - viscAh3d_00(i,j,kl) = + locVisc = & smag3D_hLsC(i,j,bi,bj)*tmpFac*SQRT( & S66( i , j , n ) & + 0.5*( S12( i ,j+1, n )+S12(i+1,j+1, n ) @@ -133,11 +136,16 @@ SUBROUTINE MOM_CALC_SMAG_3D( & + 0.5*( S23( i , j , n )+S23( i ,j+1, n ) & +S23( i , j ,n+1)+S23( i ,j+1,n+1) ) & ) + viscAh3d_00(i,j,kl) = locVisc*smag3D_coeff +#ifdef ALLOW_SMAG_3D_DIFFUSIVITY + smag3D_diffK(i,j,kl,bi,bj) = locVisc*smag3D_diffCoeff +#endif ENDDO ENDDO C viscAh3d_12 = sqrt( S11+S22+S33+2*(S12+S13+S23) ) @ grid-cell corner + tmpFac = smag3D_coeff*tmpFac DO j=2-OLy,sNy+OLy DO i=2-OLx,sNx+OLx viscAh3d_12(i,j,kl) = diff --git a/pkg/mom_common/mom_calc_visc.F b/pkg/mom_common/mom_calc_visc.F index b224c702ea..6dcca9b62a 100644 --- a/pkg/mom_common/mom_calc_visc.F +++ b/pkg/mom_common/mom_calc_visc.F @@ -79,10 +79,9 @@ SUBROUTINE MOM_CALC_VISC( #include "EEPARAMS.h" #include "PARAMS.h" #include "MOM_VISC.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF */ +#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: C myThid :: my thread Id number @@ -107,7 +106,9 @@ SUBROUTINE MOM_CALC_VISC( _RL shiftAh, shiftA4 #endif #ifdef ALLOW_AUTODIFF_TAMC - INTEGER lockey_1, lockey_2 +C kkey :: tape key (depends on levels and tiles) +C ijkkey :: tape key (depends on i,j-indices, levels, and tiles) + INTEGER kkey, ijkkey #endif _RL smag2fac, smag4fac _RL leith2fac, leith4fac @@ -141,25 +142,18 @@ SUBROUTINE MOM_CALC_VISC( #ifdef ALLOW_LEITH_QG _RL viscAh_ZLthQG(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL viscAh_DLthQG(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL sqargQG #endif _RL viscAh_ZSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL viscAh_DSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL viscA4_ZSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL viscA4_DSmg(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL sqargAh, sqargA4, sqargAhD, sqargA4D, sqargSmag LOGICAL calcLeith, calcSmag, calcLeithQG #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 - lockey_1 = (ikey-1)*Nr + k + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = k + (kkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ C-- Set flags which are used in this S/R and elsewhere : @@ -380,12 +374,10 @@ SUBROUTINE MOM_CALC_VISC( #ifdef ALLOW_AUTODIFF_TAMC # ifndef AUTODIFF_DISABLE_LEITH - lockey_2 = i+OLx + (sNx+2*OLx)*(j+OLy-1) - & + (sNx+2*OLx)*(sNy+2*OLy)*(lockey_1-1) -CADJ STORE viscA4_ZSmg(i,j) -CADJ & = comlev1_mom_ijk_loop , key=lockey_2, byte=isbyte -CADJ STORE viscAh_ZSmg(i,j) -CADJ & = comlev1_mom_ijk_loop , key=lockey_2, byte=isbyte + ijkkey = i+OLx + (j+OLy-1)*(sNx+2*OLx) + & + (kkey-1)*(sNx+2*OLx)*(sNy+2*OLy) +CADJ STORE viscA4_ZSmg(i,j)=comlev1_mom_ijk_loop,key=ijkkey,byte=isbyte +CADJ STORE viscAh_ZSmg(i,j)=comlev1_mom_ijk_loop,key=ijkkey,byte=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -425,17 +417,38 @@ SUBROUTINE MOM_CALC_VISC( & + (divDy(i,j+1)*divDy(i,j+1) & + divDy(i,j)*divDy(i,j) ) ) - viscAh_DLth(i,j)= - & SQRT(leith2fac*grdVrt+leithD2fac*grdDiv)*L3 - viscA4_DLth(i,j)= - & SQRT(leith4fac*grdVrt+leithD4fac*grdDiv)*L5 - viscAh_DLthd(i,j)= - & SQRT(leithD2fac*grdDiv)*L3 - viscA4_DLthd(i,j)= - & SQRT(leithD4fac*grdDiv)*L5 + sqargAh = leith2fac*grdVrt+leithD2fac*grdDiv + sqargA4 = leith4fac*grdVrt+leithD4fac*grdDiv + sqargAhD = leithD2fac*grdDiv + sqargA4D = leithD4fac*grdDiv #ifdef ALLOW_LEITH_QG - viscAh_DLthQG(i,j) = - & SQRT(leithQG2fac*(grdVrt+grdDiv))*L3 + sqargQG = leithQG2fac*(grdVrt+grdDiv) +#endif + +#ifdef ALLOW_AUTODIFF +C Avoid derivative of SQRT(0) + IF (sqargAh .GT.0. _d 0) sqargAh = SQRT(sqargAh) + IF (sqargA4 .GT.0. _d 0) sqargA4 = SQRT(sqargA4) + IF (sqargAhD .GT.0. _d 0) sqargAhD = SQRT(sqargAhD) + IF (sqargA4D .GT.0. _d 0) sqargA4D = SQRT(sqargA4D) +# ifdef ALLOW_LEITH_QG + IF (sqargQG .GT.0. _d 0) sqargQG = SQRT(sqargQG) +# endif +#else /* ALLOW_AUTODIFF */ + sqargAh = SQRT(sqargAh) + sqargA4 = SQRT(sqargA4) + sqargAhD = SQRT(sqargAhD) + sqargA4D = SQRT(sqargA4D) +# ifdef ALLOW_LEITH_QG + sqargQG = SQRT(sqargQG) +# endif +#endif /* ALLOW_AUTODIFF */ + viscAh_DLth(i,j) = sqargAh * L3 + viscA4_DLth(i,j) = sqargA4 * L5 + viscAh_DLthd(i,j)= sqargAhD * L3 + viscA4_DLthd(i,j)= sqargA4D * L5 +#ifdef ALLOW_LEITH_QG + viscAh_DLthQG(i,j)=sqargQG * L3 #endif ELSEIF (calcLeith) THEN @@ -468,10 +481,16 @@ SUBROUTINE MOM_CALC_VISC( ENDIF IF (calcSmag) THEN - viscAh_DSmg(i,j)=L2 - & *SQRT(tension(i,j)**2 + sqargSmag = tension(i,j)**2 & +0.25 _d 0*(strain(i+1, j )**2+strain( i ,j+1)**2 - & +strain(i , j )**2+strain(i+1,j+1)**2)) + & +strain(i , j )**2+strain(i+1,j+1)**2) +#ifdef ALLOW_AUTODIFF +C Avoid derivative of SQRT(0) + IF (sqargSmag.GT.0. _d 0) sqargSmag = SQRT(sqargSmag) +#else + sqargSmag = SQRT(sqargSmag) +#endif + viscAh_DSmg(i,j)=L2*sqargSmag viscA4_DSmg(i,j)=smag4fac*L2*viscAh_DSmg(i,j) viscAh_DSmg(i,j)=smag2fac*viscAh_DSmg(i,j) ELSE @@ -488,10 +507,10 @@ SUBROUTINE MOM_CALC_VISC( #endif #ifdef ALLOW_3D_VISCAH & + viscAhDfld(i,j,k,bi,bj) -#ifdef ALLOW_AUTODIFF +# ifdef AUTODIFF_ALLOW_VISCFACADJ & *viscFacAdj -#endif -#endif +# endif /* AUTODIFF_ALLOW_VISCFACADJ */ +#endif /* ALLOW_3D_VISCAH */ viscAh_DMin(i,j)=MAX(viscAhGridMin*L2rdt,Uscl) viscAh_D(i,j)=MAX(viscAh_DMin(i,j),Alin) viscAh_DMax(i,j)=MIN(viscAhGridMax*L2rdt,viscAhMax) @@ -502,10 +521,10 @@ SUBROUTINE MOM_CALC_VISC( & + viscA4_DLth(i,j)+viscA4_DSmg(i,j) #ifdef ALLOW_3D_VISCA4 & + viscA4Dfld(i,j,k,bi,bj) -#ifdef ALLOW_AUTODIFF +# ifdef AUTODIFF_ALLOW_VISCFACADJ & *viscFacAdj -#endif -#endif +# endif /* AUTODIFF_ALLOW_VISCFACADJ */ +#endif /* ALLOW_3D_VISCA4 */ viscA4_DMin(i,j)=MAX(viscA4GridMin*L4rdt,U4scl) viscA4_D(i,j)=MAX(viscA4_DMin(i,j),Alin) viscA4_DMax(i,j)=MIN(viscA4GridMax*L4rdt,viscA4Max) @@ -551,17 +570,37 @@ SUBROUTINE MOM_CALC_VISC( & + (divDy(i-1,j)*divDy(i-1,j) & + divDy(i,j)*divDy(i,j) ) ) - viscAh_ZLth(i,j)= - & SQRT(leith2fac*grdVrt+leithD2fac*grdDiv)*L3 - viscA4_ZLth(i,j)= - & SQRT(leith4fac*grdVrt+leithD4fac*grdDiv)*L5 - viscAh_ZLthD(i,j)= - & SQRT(leithD2fac*grdDiv)*L3 - viscA4_ZLthD(i,j)= - & SQRT(leithD4fac*grdDiv)*L5 + sqargAh = leith2fac*grdVrt+leithD2fac*grdDiv + sqargA4 = leith4fac*grdVrt+leithD4fac*grdDiv + sqargAhD = leithD2fac*grdDiv + sqargA4D = leithD4fac*grdDiv +#ifdef ALLOW_LEITH_QG + sqargQG = leithQG2fac*(grdVrt+grdDiv) +#endif +#ifdef ALLOW_AUTODIFF +C Avoid derivative of SQRT(0) + IF (sqargAh .GT.0. _d 0) sqargAh = SQRT(sqargAh) + IF (sqargA4 .GT.0. _d 0) sqargA4 = SQRT(sqargA4) + IF (sqargAhD .GT.0. _d 0) sqargAhD = SQRT(sqargAhD) + IF (sqargA4D .GT.0. _d 0) sqargA4D = SQRT(sqargA4D) +# ifdef ALLOW_LEITH_QG + IF (sqargQG .GT.0. _d 0) sqargQG = SQRT(sqargQG) +# endif +#else /* ALLOW_AUTODIFF */ + sqargAh = SQRT(sqargAh) + sqargA4 = SQRT(sqargA4) + sqargAhD = SQRT(sqargAhD) + sqargA4D = SQRT(sqargA4D) +# ifdef ALLOW_LEITH_QG + sqargQG = SQRT(sqargQG) +# endif +#endif /* ALLOW_AUTODIFF */ + viscAh_ZLth(i,j) = sqargAh * L3 + viscA4_ZLth(i,j) = sqargA4 * L5 + viscAh_ZLthd(i,j)= sqargAhD * L3 + viscA4_ZLthd(i,j)= sqargA4D * L5 #ifdef ALLOW_LEITH_QG - viscAh_ZLthQG(i,j)= - & SQRT(leithQG2fac*(grdVrt + grdDiv))*L3 + viscAh_ZLthQG(i,j)=sqargQG * L3 #endif ELSEIF (calcLeith) THEN @@ -592,10 +631,16 @@ SUBROUTINE MOM_CALC_VISC( ENDIF IF (calcSmag) THEN - viscAh_ZSmg(i,j)=L2 - & *SQRT(strain(i,j)**2 + sqargSmag = strain(i,j)**2 & +0.25 _d 0*(tension( i , j )**2+tension( i ,j-1)**2 - & +tension(i-1, j )**2+tension(i-1,j-1)**2)) + & +tension(i-1, j )**2+tension(i-1,j-1)**2) +#ifdef ALLOW_AUTODIFF +C Avoid derivative of SQRT(0) + IF (sqargSmag.GT.0. _d 0) sqargSmag = SQRT(sqargSmag) +#else + sqargSmag = SQRT(sqargSmag) +#endif + viscAh_ZSmg(i,j)=L2*sqargSmag viscA4_ZSmg(i,j)=smag4fac*L2*viscAh_ZSmg(i,j) viscAh_ZSmg(i,j)=smag2fac*viscAh_ZSmg(i,j) ENDIF @@ -609,6 +654,9 @@ SUBROUTINE MOM_CALC_VISC( #endif #ifdef ALLOW_3D_VISCAH & + viscAhZfld(i,j,k,bi,bj) +# ifdef AUTODIFF_ALLOW_VISCFACADJ + & *viscFacAdj +# endif /* AUTODIFF_ALLOW_VISCFACADJ */ #endif viscAh_ZMin(i,j)=MAX(viscAhGridMin*L2rdt,Uscl) viscAh_Z(i,j)=MAX(viscAh_ZMin(i,j),Alin) @@ -620,6 +668,9 @@ SUBROUTINE MOM_CALC_VISC( & + viscA4_ZLth(i,j)+viscA4_ZSmg(i,j) #ifdef ALLOW_3D_VISCA4 & + viscA4Zfld(i,j,k,bi,bj) +# ifdef AUTODIFF_ALLOW_VISCFACADJ + & *viscFacAdj +# endif /* AUTODIFF_ALLOW_VISCFACADJ */ #endif viscA4_ZMin(i,j)=MAX(viscA4GridMin*L4rdt,U4scl) viscA4_Z(i,j)=MAX(viscA4_ZMin(i,j),Alin) diff --git a/pkg/mom_common/mom_common_ad_diff.list b/pkg/mom_common/mom_common_ad_diff.list index 3804ebc314..f69f9edbd2 100644 --- a/pkg/mom_common/mom_common_ad_diff.list +++ b/pkg/mom_common/mom_common_ad_diff.list @@ -18,3 +18,5 @@ mom_v_coriolis_nh.f mom_v_metric_nh.f mom_v_rviscflux.f mom_v_sidedrag.f +mom_visc_qgl_limit.f +mom_visc_qgl_stretch.f diff --git a/pkg/mom_common/mom_init_fixed.F b/pkg/mom_common/mom_init_fixed.F index 048ffff02b..9b3000b581 100644 --- a/pkg/mom_common/mom_init_fixed.F +++ b/pkg/mom_common/mom_init_fixed.F @@ -30,11 +30,18 @@ SUBROUTINE MOM_INIT_FIXED( myThid ) INTEGER i,j,k,bi,bj _RL recip_dt _RL twoThird +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS +C msgBuf :: Informational/error message buffer + INTEGER kLow + _RL hLoc + _RL recip_zRoughBot + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif k = 1 twoThird = 2. _d 0 / 3. _d 0 recip_dt = 1. _d 0 - IF ( deltaTmom.NE.0. ) recip_dt = 1. _d 0/deltaTmom + IF ( deltaTMom.NE.0. ) recip_dt = 1. _d 0/deltaTMom DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) @@ -156,6 +163,56 @@ SUBROUTINE MOM_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_3D_VISCA4 */ +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS +C-- Compute bottom drag coefficents as a function of grid cell thickness +C and roughness length, assuming von Karman constant = 0.4 + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + bottomDragCoeffW(i,j,bi,bj) = bottomDragQuadratic + bottomDragCoeffS(i,j,bi,bj) = bottomDragQuadratic + ENDDO + ENDDO + IF ( zRoughBot .GT. 0. _d 0 .AND. usingZCoords ) THEN + recip_zRoughBot = 1. _d 0 / zRoughBot + DO j=1-OLy,sNy+OLy + DO i=1-OLx+1,sNx+OLx + kLow = MIN( kLowC(i-1,j,bi,bj), kLowC(i,j,bi,bj) ) + IF ( kLow .GE. 1 ) THEN + hLoc = ( oneRL + + & 0.5*drF(kLow)*hFacW(i,j,kLow,bi,bj)*recip_zRoughBot ) + hLoc = 0.4 _d 0/LOG(hLoc) + bottomDragCoeffW(i,j,bi,bj) = hLoc*hLoc + ELSE + bottomDragCoeffW(i,j,bi,bj) = 0. _d 0 + ENDIF + ENDDO + ENDDO + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx,sNx+OLx + kLow = MIN( kLowC(i,j-1,bi,bj), kLowC(i,j,bi,bj) ) + IF ( kLow .GE. 1 ) THEN + hLoc = ( oneRL + + & 0.5*drF(kLow)*hFacS(i,j,kLow,bi,bj)*recip_zRoughBot ) + hLoc = 0.4 _d 0/LOG(hLoc) + bottomDragCoeffS(i,j,bi,bj) = hLoc*hLoc + ELSE + bottomDragCoeffS(i,j,bi,bj) = 0. _d 0 + ENDIF + ENDDO + ENDDO + ELSEIF ( zRoughBot .GT. 0. _d 0 ) THEN +C- Roughness dependent drag not yet coded for P-Coordinates + WRITE(msgBuf,'(2A)') 'MOM_INIT_FIXED: zRoughBot > 0.', + & ' not yet implemented for P-Coordinate' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R MOM_INIT_FIXED' + ENDIF + ENDDO + ENDDO +#endif /* ALLOW_BOTTOMDRAG_ROUGHNESS */ + #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL MOM_DIAGNOSTICS_INIT( myThid ) diff --git a/pkg/mom_common/mom_quasihydrostatic.F b/pkg/mom_common/mom_quasihydrostatic.F index 310a489c9e..fe255b29d8 100644 --- a/pkg/mom_common/mom_quasihydrostatic.F +++ b/pkg/mom_common/mom_quasihydrostatic.F @@ -5,10 +5,10 @@ C !INTERFACE: ========================================================== SUBROUTINE MOM_QUASIHYDROSTATIC( - I bi,bj,k, + I bi, bj, k, I uFld, vFld, - O effectiveBuoy, - I myThid ) + U effectiveBuoy, + I myTime, myIter, myThid ) C !DESCRIPTION: C *==========================================================* @@ -24,17 +24,25 @@ SUBROUTINE MOM_QUASIHYDROSTATIC( #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_QHYD_STAGGER_TS +# include "RESTART.h" +# include "NH_VARS.h" +#endif C-- == Routine arguments == C !INPUT VARIABLES: ==================================================== -C bi,bj :: tile indices +C bi, bj :: tile indices C k :: vertical level C uFld :: zonal flow C vFld :: meridional flow +C myTime :: current time in simulation +C myIter :: current iteration number C myThid :: my Thread Id number - INTEGER bi,bj,k + INTEGER bi, bj, k _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL myTime + INTEGER myIter INTEGER myThid C !OUTPUT/MODIFIED VARIABLES: ========================================== @@ -42,67 +50,103 @@ SUBROUTINE MOM_QUASIHYDROSTATIC( _RL effectiveBuoy(1-OLx:sNx+OLx,1-OLy:sNy+OLy) C !LOCAL VARIABLES: ==================================================== -C i,j :: loop indices +C i, j :: loop indices +C gWinBuoy :: vertical acceleraton term to add to buoyancy +C gw_AB :: tendency increment from Adams-Bashforth C scalingFactor :: scaling factor (from acceleration to density) INTEGER iMin,iMax,jMin,jMax PARAMETER( iMin = 0 , iMax = sNx+1 ) PARAMETER( jMin = 0 , jMax = sNy+1 ) - INTEGER i,j + INTEGER i, j + _RL gWinBuoy(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifdef ALLOW_QHYD_STAGGER_TS + _RL gw_AB (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif _RL scalingFactor CEOP - IF ( usingZCoords ) THEN + IF ( use3dCoriolis .OR. useNHMTerms ) THEN + + IF ( usingZCoords ) THEN C-- Z-coordinate case: Input is density anomaly - scalingFactor = rhoConst*gravitySign - & *recip_gravity*recip_gravFacC(k) + scalingFactor = rhoConst*gravitySign + & *recip_gravity*recip_gravFacC(k) C- to reproduce old (wrong) results: -c scalingFactor=gravitySign*recip_gravity +c scalingFactor=gravitySign*recip_gravity - ELSEIF ( fluidIsWater ) THEN + ELSEIF ( fluidIsWater ) THEN C-- P-coordinate, oceanic case: Input is specific-volume anomaly - scalingFactor = recip_rhoConst*recip_gravity -c scalingFactor = rVel2wUnit(k) <-- @ interface = wrong location -C- should use expression below (consistent with omega <-> w-velocity -C conversion) but rhoRef(k) = rho(tRef,sRef,p) is computed -C in S/R SET_REF_STATE but is not stored: -c scalingFactor = ( oneRL / rhoRef(k) )*recip_gravity +c scalingFactor = recip_rhoConst*recip_gravity +C better to use rhoRef = rho(tRef,sRef,p) and consistent with +C- omega <-> w-velocity conversion: + scalingFactor = ( oneRL / rhoRef(k) )*recip_gravity - ELSE + ELSE C-- P-coord., Ideal-Gas case: Input is virtual potential temp. anomaly C (see White & Bromley, QJRMS 1995) - scalingFactor = tRef(k)*recip_gravity + scalingFactor = tRef(k)*recip_gravity - ENDIF + ENDIF - IF ( use3dCoriolis ) THEN - DO j=jMin,jMax - DO i=iMin,iMax - effectiveBuoy(i,j)=effectiveBuoy(i,j) - & +scalingFactor* - & fCoriCos(i,j,bi,bj)* - & ( angleCosC(i,j,bi,bj)*0.5 _d 0 * - & (uFld(i,j,k,bi,bj)+uFld(i+1,j,k,bi,bj)) - & -angleSinC(i,j,bi,bj)*0.5 _d 0 * - & (vFld(i,j,k,bi,bj)+vFld(i,j+1,k,bi,bj)) - & ) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + gWinBuoy(i,j) = 0. _d 0 + ENDDO ENDDO - ENDDO - ENDIF - IF ( useNHMTerms ) THEN - DO j=jMin,jMax - DO i=iMin,iMax - effectiveBuoy(i,j)=effectiveBuoy(i,j) - & +scalingFactor* - & ( (uFld( i ,j,k,bi,bj)*uFld( i ,j,k,bi,bj) - & +uFld(i+1,j,k,bi,bj)*uFld(i+1,j,k,bi,bj)) - & + (vFld(i, j ,k,bi,bj)*vFld(i, j ,k,bi,bj) - & +vFld(i,j+1,k,bi,bj)*vFld(i,j+1,k,bi,bj)) - & )* 0.5 _d 0 * recip_rSphere*recip_deepFacC(k) + IF ( use3dCoriolis ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + gWinBuoy(i,j) = fCoriCos(i,j,bi,bj)* + & ( angleCosC(i,j,bi,bj)*halfRL + & *( uFld(i,j,k,bi,bj) + uFld(i+1,j,k,bi,bj) ) + & -angleSinC(i,j,bi,bj)*halfRL + & *( vFld(i,j,k,bi,bj) + vFld(i,j+1,k,bi,bj) ) + & ) + ENDDO + ENDDO + ENDIF + + IF ( useNHMTerms ) THEN + DO j=jMin,jMax + DO i=iMin,iMax + gWinBuoy(i,j) = gWinBuoy(i,j) + & + ( ( uFld( i ,j,k,bi,bj)*uFld( i ,j,k,bi,bj) + & + uFld(i+1,j,k,bi,bj)*uFld(i+1,j,k,bi,bj) ) + & + ( vFld(i, j ,k,bi,bj)*vFld(i, j ,k,bi,bj) + & + vFld(i,j+1,k,bi,bj)*vFld(i,j+1,k,bi,bj) ) + & )* halfRL*recip_rSphere*recip_deepFacC(k) + ENDDO + ENDDO + ENDIF + +#ifdef ALLOW_QHYD_STAGGER_TS + IF ( staggerTimeStep ) THEN +# ifdef ALLOW_ADAMSBASHFORTH_3 + CALL ADAMS_BASHFORTH3( bi, bj, k, 1, + U gWinBuoy, + U QHydGwNm, + O gw_AB, + I qHydStartAB, myIter, myThid ) +# else /* ALLOW_ADAMSBASHFORTH_3 */ + CALL ADAMS_BASHFORTH2( bi, bj, 1, 1, + U gWinBuoy, + U QHydGwNm(1-OLx,1-OLy,k,bi,bj), + O gw_AB, + I qHydStartAB, myIter, myThid ) +# endif /* ALLOW_ADAMSBASHFORTH_3 */ + ENDIF +#endif /* ALLOW_QHYD_STAGGER_TS */ + + DO j=jMin,jMax + DO i=iMin,iMax + effectiveBuoy(i,j) = effectiveBuoy(i,j) + & + scalingFactor*gWinBuoy(i,j) + ENDDO ENDDO - ENDDO + ENDIF RETURN diff --git a/pkg/mom_common/mom_u_botdrag_coeff.F b/pkg/mom_common/mom_u_botdrag_coeff.F index 7c934fe360..63d8c2b5ff 100644 --- a/pkg/mom_common/mom_u_botdrag_coeff.F +++ b/pkg/mom_common/mom_u_botdrag_coeff.F @@ -25,6 +25,9 @@ SUBROUTINE MOM_U_BOTDRAG_COEFF( #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS +# include "MOM_VISC.h" +#endif #ifdef ALLOW_CTRL # include "CTRL_FIELDS.h" #endif @@ -136,7 +139,13 @@ SUBROUTINE MOM_U_BOTDRAG_COEFF( DO i=1-OLx+1,sNx+OLx-1 IF ( (KE(i,j)+KE(i-1,j)).GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(KE(i,j)+KE(i-1,j))*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffW(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(KE(i,j)+KE(i-1,j))*dragFac ENDIF ENDDO ENDDO @@ -152,7 +161,13 @@ SUBROUTINE MOM_U_BOTDRAG_COEFF( & )*recip_hFacW(i,j,k,bi,bj)*0.25 _d 0 IF ( uSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(uSq)*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffW(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(uSq)*dragFac ENDIF ENDDO ENDDO @@ -174,7 +189,13 @@ SUBROUTINE MOM_U_BOTDRAG_COEFF( ENDIF IF ( uSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(uSq)*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffW(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(uSq)*dragFac ENDIF ENDDO ENDDO diff --git a/pkg/mom_common/mom_v_botdrag_coeff.F b/pkg/mom_common/mom_v_botdrag_coeff.F index ba2ace41e3..fa3f808030 100644 --- a/pkg/mom_common/mom_v_botdrag_coeff.F +++ b/pkg/mom_common/mom_v_botdrag_coeff.F @@ -25,6 +25,9 @@ SUBROUTINE MOM_V_BOTDRAG_COEFF( #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS +# include "MOM_VISC.h" +#endif #ifdef ALLOW_CTRL # include "CTRL_FIELDS.h" #endif @@ -136,7 +139,13 @@ SUBROUTINE MOM_V_BOTDRAG_COEFF( DO i=1-OLx,sNx+OLx-1 IF ( (KE(i,j)+KE(i,j-1)).GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(KE(i,j)+KE(i,j-1))*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffS(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(KE(i,j)+KE(i,j-1))*dragFac ENDIF ENDDO ENDDO @@ -152,7 +161,13 @@ SUBROUTINE MOM_V_BOTDRAG_COEFF( & )*recip_hFacS(i,j,k,bi,bj)*0.25 _d 0 IF ( vSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(vSq)*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffS(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(vSq)*dragFac ENDIF ENDDO ENDDO @@ -174,7 +189,13 @@ SUBROUTINE MOM_V_BOTDRAG_COEFF( ENDIF IF ( vSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + bottomDragQuadratic*SQRT(vSq)*dragFac + & + ( +#ifdef ALLOW_BOTTOMDRAG_ROUGHNESS + & bottomDragCoeffS(i,j,bi,bj) +#else + & bottomDragQuadratic +#endif + & )*SQRT(vSq)*dragFac ENDIF ENDDO ENDDO diff --git a/pkg/mom_fluxform/mom_fluxform.F b/pkg/mom_fluxform/mom_fluxform.F index 726d71360c..055d77ed17 100644 --- a/pkg/mom_fluxform/mom_fluxform.F +++ b/pkg/mom_fluxform/mom_fluxform.F @@ -29,6 +29,11 @@ #ifdef ALLOW_MOM_COMMON # include "MOM_COMMON_OPTIONS.h" #endif +#ifdef ALLOW_GGL90 +# include "GGL90_OPTIONS.h" +#endif +C- to switch back to (very) old accounting of geometry/Area factor +#undef OLD_UV_GEOM CBOP C !ROUTINE: MOM_FLUXFORM @@ -59,9 +64,13 @@ SUBROUTINE MOM_FLUXFORM( #ifdef ALLOW_MOM_COMMON # include "MOM_VISC.h" #endif +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) +# include "GGL90.h" +#endif #ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" +# ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +# endif # include "MOM_FLUXFORM.h" #endif @@ -101,19 +110,21 @@ SUBROUTINE MOM_FLUXFORM( C i,j :: loop indices C vF :: viscous flux C v4F :: bi-harmonic viscous flux -C cF :: Coriolis acceleration +C uCf,vCf :: Coriolis acceleration C mT :: Metric terms C fZon :: zonal fluxes C fMer :: meridional fluxes C fVrUp,fVrDw :: vertical viscous fluxes at interface k & k+1 INTEGER i,j #ifdef ALLOW_AUTODIFF_TAMC - INTEGER imomkey +C kkey :: tape key (depends on level and tile indices) + INTEGER kkey #endif - _RL vF(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vF(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL v4F(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL cF(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL mT(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uCf(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vCf(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL mT(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL fVrUp(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -130,14 +141,18 @@ SUBROUTINE MOM_FLUXFORM( _RS hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS h0FacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RS xA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RS yA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RS xA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RS yA(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL uFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vFld(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rTransU(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL rTransV(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) + _RL uRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif _RL KE(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL cDrag(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL viscAh_D(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -180,20 +195,8 @@ SUBROUTINE MOM_FLUXFORM( #endif /* MOM_BOUNDARY_CONSERVE */ #ifdef ALLOW_AUTODIFF_TAMC - act0 = k - 1 - max0 = Nr - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - imomkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = k + (kkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ C Initialise intermediate terms @@ -201,7 +204,8 @@ SUBROUTINE MOM_FLUXFORM( DO i=1-OLx,sNx+OLx vF(i,j) = 0. v4F(i,j) = 0. - cF(i,j) = 0. + uCf(i,j) = 0. + vCf(i,j) = 0. mT(i,j) = 0. fZon(i,j) = 0. fMer(i,j) = 0. @@ -220,6 +224,10 @@ SUBROUTINE MOM_FLUXFORM( #endif guDiss(i,j) = 0. gvDiss(i,j) = 0. +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) +c uRes(i,j) = 0. +c vRes(i,j) = 0. +#endif ENDDO ENDDO @@ -367,12 +375,9 @@ SUBROUTINE MOM_FLUXFORM( #ifdef ALLOW_AUTODIFF_TAMC # ifdef NONLIN_FRSURF # ifndef DISABLE_RSTAR_CODE -CADJ STORE dwtransc(:,:,bi,bj) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE dwtransu(:,:,bi,bj) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE dwtransv(:,:,bi,bj) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE dwtransc(:,:,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE dwtransu(:,:,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte +CADJ STORE dwtransv(:,:,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte # endif # endif /* NONLIN_FRSURF */ #endif /* ALLOW_AUTODIFF_TAMC */ @@ -598,7 +603,7 @@ SUBROUTINE MOM_FLUXFORM( C- No-slip BCs impose a drag at bottom IF ( bottomDragTerms ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_U_BOTDRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRU, KE, @@ -624,7 +629,7 @@ SUBROUTINE MOM_FLUXFORM( #ifdef ALLOW_SHELFICE IF ( useShelfIce .AND. selectImplicitDrag.EQ.0 ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL SHELFICE_U_DRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRU, KE, @@ -848,7 +853,7 @@ SUBROUTINE MOM_FLUXFORM( C- No-slip BCs impose a drag at bottom IF ( bottomDragTerms ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_V_BOTDRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRV, KE, @@ -874,7 +879,7 @@ SUBROUTINE MOM_FLUXFORM( #ifdef ALLOW_SHELFICE IF ( useShelfIce .AND. selectImplicitDrag.EQ.0 ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL SHELFICE_V_DRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRV, KE, @@ -931,43 +936,49 @@ SUBROUTINE MOM_FLUXFORM( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Coriolis term (call to CD_CODE_SCHEME has been moved to timestep.F) - IF (.NOT.useCDscheme) THEN - CALL MOM_U_CORIOLIS( bi,bj,k,vFld,cf,myThid ) - DO j=jMin,jMax - DO i=iMin,iMax - gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+fuFac*cf(i,j) - ENDDO - ENDDO -#ifdef ALLOW_DIAGNOSTICS - IF ( useDiagnostics ) - & CALL DIAGNOSTICS_FILL(cf,'Um_Cori ',k,1,2,bi,bj,myThid) + IF ( .NOT.useCDscheme ) THEN +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) + IF ( useLANGMUIR ) THEN + CALL GGL90_ADD_STOKESDRIFT( + O uRes, vRes, + I uFld, vFld, k, bi, bj, myThid ) + CALL MOM_U_CORIOLIS( bi,bj,k,vRes,uCf,myThid ) + CALL MOM_V_CORIOLIS( bi,bj,k,uRes,vCf,myThid ) + ELSE +#endif + CALL MOM_U_CORIOLIS( bi,bj,k,vFld,uCf,myThid ) + CALL MOM_V_CORIOLIS( bi,bj,k,uFld,vCf,myThid ) +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) + ENDIF #endif - CALL MOM_V_CORIOLIS( bi,bj,k,uFld,cf,myThid ) DO j=jMin,jMax DO i=iMin,iMax - gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+fvFac*cf(i,j) + gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj) + fuFac*uCf(i,j) + gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj) + fvFac*vCf(i,j) ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS - IF ( useDiagnostics ) - & CALL DIAGNOSTICS_FILL(cf,'Vm_Cori ',k,1,2,bi,bj,myThid) + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL( uCf,'Um_Cori ',k,1,2,bi,bj,myThid ) + CALL DIAGNOSTICS_FILL( vCf,'Vm_Cori ',k,1,2,bi,bj,myThid ) + ENDIF #endif ENDIF C-- 3.D Coriolis term (horizontal momentum, Eastward component: -fprime*w) IF ( use3dCoriolis ) THEN - CALL MOM_U_CORIOLIS_NH( bi,bj,k,wVel,cf,myThid ) + CALL MOM_U_CORIOLIS_NH( bi,bj,k,wVel,uCf,myThid ) DO j=jMin,jMax DO i=iMin,iMax - gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj)+fuFac*cf(i,j) + gU(i,j,k,bi,bj) = gU(i,j,k,bi,bj) + fuFac*uCf(i,j) ENDDO ENDDO IF ( usingCurvilinearGrid ) THEN C- presently, non zero angleSinC array only supported with Curvilinear-Grid - CALL MOM_V_CORIOLIS_NH( bi,bj,k,wVel,cf,myThid ) + CALL MOM_V_CORIOLIS_NH( bi,bj,k,wVel,vCf,myThid ) DO j=jMin,jMax DO i=iMin,iMax - gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj)+fvFac*cf(i,j) + gV(i,j,k,bi,bj) = gV(i,j,k,bi,bj) + fvFac*vCf(i,j) ENDDO ENDDO ENDIF diff --git a/pkg/mom_vecinv/mom_vecinv.F b/pkg/mom_vecinv/mom_vecinv.F index 22e223b4b4..7fb509aea9 100644 --- a/pkg/mom_vecinv/mom_vecinv.F +++ b/pkg/mom_vecinv/mom_vecinv.F @@ -4,6 +4,9 @@ #endif #ifdef ALLOW_MOM_COMMON # include "MOM_COMMON_OPTIONS.h" +#endif +#ifdef ALLOW_GGL90 +# include "GGL90_OPTIONS.h" #endif SUBROUTINE MOM_VECINV( @@ -41,6 +44,9 @@ SUBROUTINE MOM_VECINV( #ifdef ALLOW_MOM_COMMON # include "MOM_VISC.h" #endif +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) +# include "GGL90.h" +#endif #ifdef ALLOW_TIMEAVE # include "TIMEAVE_STATV.h" #endif @@ -49,7 +55,6 @@ SUBROUTINE MOM_VECINV( #endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C == Routine arguments == @@ -100,6 +105,10 @@ SUBROUTINE MOM_VECINV( _RS r_hFacZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) + _RL uRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vRes (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif _RL del2u (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL del2v (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dStar (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -130,7 +139,8 @@ SUBROUTINE MOM_VECINV( LOGICAL bottomDragTerms LOGICAL writeDiag #ifdef ALLOW_AUTODIFF_TAMC - INTEGER imomkey +C kkey :: tape key (depends on level and tile indices) + INTEGER kkey #endif #ifdef ALLOW_MNC @@ -148,20 +158,8 @@ SUBROUTINE MOM_VECINV( #endif #ifdef ALLOW_AUTODIFF_TAMC - act0 = k - 1 - max0 = Nr - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - imomkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = k + (kkey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ writeDiag = DIFFERENT_MULTIPLE(diagFreq, myTime, deltaTClock) @@ -200,6 +198,10 @@ SUBROUTINE MOM_VECINV( zStar(i,j) = 0. guDiss(i,j)= 0. gvDiss(i,j)= 0. +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) +c uRes(i,j) = 0. +c vRes(i,j) = 0. +#endif vort3(i,j) = 0. omega3(i,j)= 0. KE(i,j) = 0. @@ -257,18 +259,12 @@ SUBROUTINE MOM_VECINV( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ufld(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vfld(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE hFacZ(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE r_hFacZ(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE fverukm(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE fvervkm(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE ufld(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vfld(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE hFacZ(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE r_hFacZ(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE fverukm(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE fvervkm(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C note (jmc) : Dissipation and Vort3 advection do not necesary @@ -280,12 +276,9 @@ SUBROUTINE MOM_VECINV( CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vort3(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vort3bc(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vort3(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vort3bc(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C- mask vort3 and account for no-slip / free-slip BC in vort3BC: @@ -300,10 +293,8 @@ SUBROUTINE MOM_VECINV( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE vort3(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vort3bc(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE vort3(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vort3bc(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif IF (momViscosity) THEN @@ -328,10 +319,8 @@ SUBROUTINE MOM_VECINV( #endif /* NONLIN_FRSURF */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE h0FacZ(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE hFacZ(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE h0FacZ(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE hFacZ(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid) @@ -363,14 +352,10 @@ SUBROUTINE MOM_VECINV( ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hdiv(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE tension(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE strain(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE strainbc(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE hdiv(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE tension(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE strain(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE strainbc(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C-- Calculate Lateral Viscosities @@ -385,33 +370,27 @@ SUBROUTINE MOM_VECINV( IF ( useVariableVisc ) THEN C- uses vort3BC & strainBC which account for no-slip / free-slip BC #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_CALC_VISC( bi, bj, k, O viscAh_Z, viscAh_D, viscA4_Z, viscA4_D, I hDiv, vort3BC, tension, strainBC, stretching, I KE, hfacZ, myThid ) - ENDIF - #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE viscAh_Z(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE viscAh_D(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE viscA4_Z(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE viscA4_D(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -#endif +# ifndef AUTODIFF_ALLOW_VISCFACADJ +C These store directive must not be here, if you want to recompute +C these viscosity coefficients with a modified viscFacAdj = viscFacInAd +C because the store directives intentionally prevent the recomputation. +CADJ STORE viscAh_Z(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE viscAh_D(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE viscA4_Z(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE viscA4_D(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +# endif /* AUTODIFF_ALLOW_VISCFACADJ */ +#endif /* ALLOW_AUTODIFF_TAMC */ + ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hDiv(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vort3(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE hFacZ(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE hDiv(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C Calculate del^2 u and del^2 v for bi-harmonic term @@ -419,26 +398,16 @@ SUBROUTINE MOM_VECINV( CALL MOM_VI_DEL2UV(bi,bj,k,hDiv,vort3,hFacZ, O del2u,del2v, I myThid) -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE del2u(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE del2v(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -#endif CALL MOM_CALC_HDIV(bi,bj,k,2,del2u,del2v,dStar,myThid) CALL MOM_CALC_RELVORT3(bi,bj,k, & del2u,del2v,hFacZ,zStar,myThid) ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE del2u(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE del2v(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE dStar(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE zStar(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE del2u(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE del2v(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE dStar(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE zStar(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C--- Calculate dissipation terms for U and V equations @@ -476,8 +445,7 @@ SUBROUTINE MOM_VECINV( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fVerUkp(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE fVerUkp(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C-- Tendency is minus divergence of the fluxes @@ -512,8 +480,7 @@ SUBROUTINE MOM_VECINV( C- No-slip BCs impose a drag at bottom IF ( bottomDragTerms ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_U_BOTDRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRU, KE, @@ -538,8 +505,7 @@ SUBROUTINE MOM_VECINV( #ifdef ALLOW_SHELFICE IF ( useShelfIce .AND. selectImplicitDrag.EQ.0 ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL SHELFICE_U_DRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRU, KE, @@ -568,8 +534,7 @@ SUBROUTINE MOM_VECINV( ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fVerVkp(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE fVerVkp(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C-- Tendency is minus divergence of the fluxes C vert.visc.flx is scaled by deepFac2F (deep-atmos) and rhoFac (anelastic) @@ -603,8 +568,7 @@ SUBROUTINE MOM_VECINV( C- No-slip BCs impose a drag at bottom IF ( bottomDragTerms ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL MOM_V_BOTDRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRV, KE, @@ -629,8 +593,7 @@ SUBROUTINE MOM_VECINV( #ifdef ALLOW_SHELFICE IF ( useShelfIce .AND. selectImplicitDrag.EQ.0 ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE KE(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE KE(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif CALL SHELFICE_V_DRAG_COEFF( bi, bj, k, .TRUE., I uFld, vFld, kappaRV, KE, @@ -660,8 +623,7 @@ SUBROUTINE MOM_VECINV( & CALL MOM_CALC_ABSVORT3(bi,bj,k,vort3,omega3,myThid) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE omega3(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE omega3(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif C-- Horizontal Coriolis terms @@ -678,6 +640,14 @@ SUBROUTINE MOM_VECINV( CALL MOM_VI_V_CORIOLIS(bi,bj,k,selectVortScheme,useJamartMomAdv, & uFld,omega3,hFacZ,r_hFacZ, & vCf,myThid) +#if ( defined ALLOW_GGL90 && defined ALLOW_GGL90_LANGMUIR ) + ELSEIF ( useLANGMUIR ) THEN + CALL GGL90_ADD_STOKESDRIFT( + O uRes, vRes, + I uFld, vFld, k, bi, bj, myThid ) + CALL MOM_VI_CORIOLIS(bi,bj,k,uRes,vRes,hFacZ,r_hFacZ, + & uCf,vCf,myThid) +#endif ELSE CALL MOM_VI_CORIOLIS(bi,bj,k,uFld,vFld,hFacZ,r_hFacZ, & uCf,vCf,myThid) @@ -718,10 +688,8 @@ SUBROUTINE MOM_VECINV( ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ucf(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vcf(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE ucf(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vcf(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif IF (momAdvection) THEN @@ -778,10 +746,8 @@ SUBROUTINE MOM_VECINV( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ucf(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte -CADJ STORE vcf(:,:) = -CADJ & comlev1_bibj_k, key = imomkey, byte = isbyte +CADJ STORE ucf(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte +CADJ STORE vcf(:,:) = comlev1_bibj_k, key = kkey, byte = isbyte #endif IF ( writeDiag ) THEN diff --git a/pkg/monitor/MONITOR.h b/pkg/monitor/MONITOR.h index 750891dea4..d55de4e544 100644 --- a/pkg/monitor/MONITOR.h +++ b/pkg/monitor/MONITOR.h @@ -7,7 +7,7 @@ C !INTERFACE: C #include "MONITOR.h" C !DESCRIPTION: -C Contains the state (parameters) for the ``monitor'' package. +C Contains the state (parameters) for the "monitor" package. C C Monitor routines (prefixed MON\_) provide a simple set of C utilities for outputting useful runtime diagnostic diff --git a/pkg/monitor/monitor_ad.F b/pkg/monitor/monitor_ad.F index 02346229de..0d18b64911 100644 --- a/pkg/monitor/monitor_ad.F +++ b/pkg/monitor/monitor_ad.F @@ -60,7 +60,7 @@ SUBROUTINE ADMONITOR( _RS dumRS(1) _RL dumRL(1) - IF ( DIFFERENT_MULTIPLE(adjmonitorFreq,myTime,deltaTClock) ) THEN + IF ( DIFFERENT_MULTIPLE(adjMonitorFreq,myTime,deltaTClock) ) THEN IF ( MASTER_CPU_IO(myThid) ) THEN C-- only the master thread is allowed to switch On/Off mon_write_stdout @@ -178,7 +178,7 @@ SUBROUTINE ADMONITOR( ENDIF C Print the basic statistics of external forcing - IF ( monitorSelect.GE.3 ) THEN + IF ( monitorSelect.GE.4 ) THEN CALL MON_SET_PREF('ad_forcing',myThid) IF ( mon_AdVarExch.NE.2 ) THEN CALL MON_WRITESTATS_RS( 1, adQnet, '_adqnet', diff --git a/pkg/monitor/monitor_g.F b/pkg/monitor/monitor_g.F index 0180adf9a3..9cc3cf189d 100644 --- a/pkg/monitor/monitor_g.F +++ b/pkg/monitor/monitor_g.F @@ -52,11 +52,11 @@ SUBROUTINE G_MONITOR( C !LOCAL VARIABLES: CHARACTER*(MAX_LEN_MBUF) msgBuf - _RL dT +c _RL dT _RL dummyRL(6) INTEGER k - IF ( DIFFERENT_MULTIPLE(adjmonitorFreq,myTime,deltaTClock) ) THEN + IF ( DIFFERENT_MULTIPLE(adjMonitorFreq,myTime,deltaTClock) ) THEN IF ( MASTER_CPU_IO(myThid) ) THEN C-- only the master thread is allowed to switch On/Off mon_write_stdout @@ -90,7 +90,7 @@ SUBROUTINE G_MONITOR( & '=============================' CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1) WRITE(msgBuf,'(A)') - & '// Begin MONITOR dynamic field statistics' + & '// Begin TL_MONITOR dynamic field statistics' CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1) WRITE(msgBuf,'(2A)') '// ==========================', & '=============================' @@ -131,7 +131,7 @@ SUBROUTINE G_MONITOR( ENDIF C Print the basic statistics of external forcing -c IF ( monitorSelect.GE.3 ) THEN + IF ( monitorSelect.GE.4 ) THEN CALL MON_SET_PREF('g__forcing',myThid) CALL MON_WRITESTATS_RS( 1, g_Qnet, '_g_qnet', & maskInC, maskInC, rA , drF, dummyRL, myThid ) @@ -145,16 +145,16 @@ SUBROUTINE G_MONITOR( & maskInW, maskInW, rAw, drF, dummyRL, myThid ) CALL MON_WRITESTATS_RS( 1, g_fv , '_g_fv', & maskInS, maskInS, rAs, drF, dummyRL, myThid ) -c ENDIF + ENDIF C Print the numerical stablility parameters for current state - CALL MON_SET_PREF('g__g_vcfl',myThid) - dT = MAX(dTtracerLev(1),deltaTMom) - CALL MON_ADVCFL( '_g_uvel', g_uVel,recip_dxC,dT,myThid ) - CALL MON_ADVCFL( '_g_vvel', g_vVel,recip_dyC,dT,myThid ) - CALL MON_ADVCFLW( '_g_wvel',g_wVel,recip_drC,dT,myThid ) - CALL MON_ADVCFLW2('_g_W_hf',g_wVel,recip_hFacC, - & recip_drF,dT,myThid ) +c CALL MON_SET_PREF('g__g_vcfl',myThid) +c dT = MAX(dTtracerLev(1),deltaTMom) +c CALL MON_ADVCFL( '_g_uvel', g_uVel,recip_dxC,dT,myThid ) +c CALL MON_ADVCFL( '_g_vvel', g_vVel,recip_dyC,dT,myThid ) +c CALL MON_ADVCFLW( '_g_wvel',g_wVel,recip_drC,dT,myThid ) +c CALL MON_ADVCFLW2('_g_W_hf',g_wVel,recip_hFacC, +c & recip_drF,dT,myThid ) C Dynamics field monitor finish IF ( MASTER_CPU_IO(myThid) ) THEN @@ -166,7 +166,7 @@ SUBROUTINE G_MONITOR( & '=============================' CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1) WRITE(msgBuf,'(A)') - & '// End MONITOR dynamic field statistics' + & '// End TL_MONITOR dynamic field statistics' CALL PRINT_MESSAGE( msgBuf, mon_ioUnit, SQUEEZE_RIGHT , 1) WRITE(msgBuf,'(2A)') '// ==========================', & '=============================' diff --git a/pkg/my82/MY82.h b/pkg/my82/MY82.h index 23726a2918..b8ac115193 100644 --- a/pkg/my82/MY82.h +++ b/pkg/my82/MY82.h @@ -4,26 +4,26 @@ CBOP C !ROUTINE: MY82.h C !DESCRIPTION: \bv -C /==========================================================\ -C | MY82.h | -C | o Basic header for Pacanowski and Philander (1981) | +C *==========================================================* +C | MY82.h | +C | o Basic header for Mellor & Yamada (1982), level 2.0 | C | vertical mixing parameterization. | -C | Contains all MY82 field declarations. | -C \==========================================================/ +C | Contains all MY82 field declarations. | +C *==========================================================* C----------------------------------------------------------------------- C -C Constants that can be set in data.pp +C Constants that can be set in data.my82 C MYviscMax, MYdiffMax - maximum allowed viscosity, diffusivity C MYhblScale - scale the boundary length scale C RiMax - Maximum of Richardson number -C MYdumpFreq, MYtaveFreq - analogue to dumpFreq and taveFreq (=default) +C MYdumpFreq - analogue to dumpFreq (=default) C MYmixingMaps - if true, include MY diagnostic maps in STDOUT C MYwriteState - if true, write MY state to file C C Time varying parameters computed by subroutine pp_calc C MYviscAr - Vertical eddy viscosity coefficient (m^2/s) -C MYdiffKr - Vertical diffusion coefficient for heat, +C MYdiffKr - Vertical diffusion coefficient for heat, C salt and tracers (m^2/s) C C----------------------------------------------------------------------- @@ -44,12 +44,12 @@ C (M. Satoh, p.315) _RL RiMax _RL MYhblScale _RL MYviscMax, MYdiffMax - _RL MYdumpFreq, MYtaveFreq - COMMON /MY_PARMS_R/ + _RL MYdumpFreq + COMMON /MY_PARMS_R/ & alpha1, alpha2, beta1, beta2, beta3, beta4, & RiMax, MYhblScale, & MYviscMax, MYdiffMax, - & MYdumpFreq, MYtaveFreq + & MYdumpFreq _RL MYhbl (1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) _RL MYviscAr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) diff --git a/pkg/my82/MY82_TAVE.h b/pkg/my82/MY82_TAVE.h deleted file mode 100644 index 4904ec9bbf..0000000000 --- a/pkg/my82/MY82_TAVE.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifdef ALLOW_MY82 - -C *==========================================================* -C | MY82_TAVE.h -C | o Header for MY82 time-average output -C *==========================================================* - -#ifdef ALLOW_TIMEAVE -C---------------------------------------------------------------- -C MY_timeAve - time of temporal integration (s) for each thread -C---------------------------------------------------------------- - - _RL MY_timeAve(nSx,nSy) - COMMON /MY_TAVE_COUNT/ MY_timeAve - -C---------------------------------------------------------------- -C MY*tave - Time-averaging MY variables -C---------------------------------------------------------------- - - _RL MYhbltave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL MYviscArtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL MYdiffKrtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /MY_TAVE_FIELDS/ - & MYhbltave, MYviscArtave, MYdiffKrtave - -#endif /* ALLOW_TIMEAVE */ -#endif /* ALLOW_MY82 */ diff --git a/pkg/my82/my82_calc.F b/pkg/my82/my82_calc.F index 8e0acf5250..45a3c573a2 100644 --- a/pkg/my82/my82_calc.F +++ b/pkg/my82/my82_calc.F @@ -19,8 +19,8 @@ subroutine MY82_CALC( C-------------------------------------------------------------------- C global parameters updated by pp_calc -C PPviscAz - PP eddy viscosity coefficient (m^2/s) -C PPdiffKzT - PP diffusion coefficient for temperature (m^2/s) +C MYviscAz :: MY82 eddy viscosity coefficient (m^2/s) +C MYdiffKzT :: MY82 diffusion coefficient for temperature (m^2/s) C C \ev @@ -47,7 +47,6 @@ subroutine MY82_CALC( INTEGER myIter INTEGER myThid -#ifdef ALLOW_MY82 C !LOCAL VARIABLES: ==================================================== c Local constants C imin, imax, jmin, jmax - array computation indices @@ -179,7 +178,13 @@ subroutine MY82_CALC( C end third k-loop ENDDO -#endif /* ALLOW_MY82 */ +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(MYviscAr,'MYVISCAR',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(MYdiffKr,'MYDIFFKR',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(MYhbl ,'MYHBL ',0,1 ,1,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ RETURN END diff --git a/pkg/my82/my82_init_fixed.F b/pkg/my82/my82_init_fixed.F index 49977e8234..ef504ee9f8 100644 --- a/pkg/my82/my82_init_fixed.F +++ b/pkg/my82/my82_init_fixed.F @@ -8,7 +8,7 @@ SUBROUTINE MY82_INIT_FIXED( myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE MY82_INIT_FIXED -C | o Routine to initialize MY82 variables +C | o Routine to initialize MY82 variables C | that are kept fixed during the run. C *==========================================================* C \ev @@ -24,43 +24,10 @@ SUBROUTINE MY82_INIT_FIXED( myThid ) C === Routine arguments === C myThid :: my Thread Id number INTEGER myThid -CEOP C !LOCAL VARIABLES : C === Local variables === - -#ifdef ALLOW_MNC - IF (useMNC) THEN -C Define grid types for Mellor-Yamada (MY) variables - CALL MNC_CW_ADD_VNAME('MYviscAr', 'Cen_xy_Hn__C__t', - & 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYviscAr','units','m^2/s', - & myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYviscAr','long_name', - & 'MY_vertical_eddy_viscosity_coefficient', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYviscAr', - & 'coordinates','XC YC RC iter', myThid) - - CALL MNC_CW_ADD_VNAME('MYdiffKr', 'Cen_xy_Hn__C__t', - & 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYdiffKr','units','m^2/s', - & myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYdiffKr','long_name', - & 'MY_tracer_vertical_diffusion_coefficient', - & myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYdiffKr', - & 'coordinates','XC YC RC iter', myThid) - - CALL MNC_CW_ADD_VNAME('MYhbl', 'Cen_xy_Hn__-__t', - & 3,4, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYhbl','units','m', - & myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYhbl','long_name', - & 'MY_boundary_layer_depth', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('MYhbl', - & 'coordinates','XC YC iter', myThid) - ENDIF -#endif /* ALLOW_MNC */ +CEOP #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN diff --git a/pkg/my82/my82_output.F b/pkg/my82/my82_output.F index 68e1f1ce12..a0084aa352 100644 --- a/pkg/my82/my82_output.F +++ b/pkg/my82/my82_output.F @@ -41,11 +41,7 @@ SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid ) #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#ifdef ALLOW_MNC -#include "MNC_PARAMS.h" -#endif #include "MY82.h" -#include "MY82_TAVE.h" C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == @@ -56,8 +52,6 @@ SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid ) INTEGER myIter INTEGER myThid -#ifdef ALLOW_MY82 - C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE @@ -65,13 +59,6 @@ SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid ) C !LOCAL VARIABLES: C == Local variables == CHARACTER*(10) suff -#ifdef ALLOW_TIMEAVE - INTEGER bi, bj - _RL DDTT -#endif -#ifdef ALLOW_MNC - CHARACTER*(1) pf -#endif CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -84,7 +71,7 @@ SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid ) & DIFFERENT_MULTIPLE( MYdumpFreq, myTime, deltaTClock ) & ) THEN - IF (MYwriteState .AND. snapshot_mdsio) THEN + IF ( MYwriteState ) THEN C Write each snap-shot as a new file C - creates many files but for large configurations is easier to C transfer analyse a particular snap-shots @@ -101,143 +88,7 @@ SUBROUTINE MY82_OUTPUT( myTime, myIter, myThid ) & myIter,myThid) ENDIF -#ifdef ALLOW_MNC - IF (MYwriteState .AND. useMNC .AND. snapshot_mnc ) THEN - IF ( writeBinaryPrec .EQ. precFloat64 ) THEN - pf(1:1) = 'D' - ELSE - pf(1:1) = 'R' - ENDIF - CALL MNC_CW_SET_UDIM('my_state', -1, myThid) - CALL MNC_CW_RL_W_S('D','my_state',0,0,'T',myTime,myThid) - CALL MNC_CW_SET_UDIM('my_state', 0, myThid) - CALL MNC_CW_I_W_S('I','my_state',0,0,'iter',myIter,myThid) - CALL MNC_CW_RL_W(pf,'my_state',0,0, - & 'MYviscAr', MYviscAr, myThid) - CALL MNC_CW_RL_W(pf,'my_state',0,0, - & 'MYdiffKr', MYdiffKr, myThid) - CALL MNC_CW_RL_W(pf,'my_state',0,0, - & 'MYhbl', MYhbl, myThid) - ENDIF -#endif /* ALLOW_MNC */ - - ENDIF - -C---------------------------------------------------------------- -C Do MY82 time averaging. -C---------------------------------------------------------------- - -#ifdef ALLOW_TIMEAVE - IF ( MYtaveFreq.GT.0. _d 0 ) THEN - - IF ( myIter.EQ.nIter0 ) THEN -C Initialize averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( MYviscArtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( MYdiffKrtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( MYhbltave, 1 , bi, bj, myThid ) - MY_timeAve(bi,bj) = 0. - ENDDO - ENDDO - - ELSE -C Cumulate MY82 fields (for Time Average) - DDTT = deltaTClock - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_CUMULATE( MYviscArtave, MYviscAr, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( MYdiffKrtave, MYdiffKr, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( MYhbltave, MYhbl, - & 1 , DDTT, bi, bj, myThid ) -C Keep record of how much time has been integrated over - MY_timeAve(bi,bj) = MY_timeAve(bi,bj)+DDTT - ENDDO - ENDDO - ENDIF - -C Dump files and restart average computation if needed - IF ( myIter.NE.nIter0 .AND. - & DIFFERENT_MULTIPLE( MYtaveFreq, myTime, deltaTClock ) - & ) THEN - -C Normalize by integrated time - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_NORMALIZE( MYviscArtave, - & MY_timeAve, Nr, bi,bj,myThid) - CALL TIMEAVE_NORMALIZE( MYdiffKrtave, - & MY_timeAve, Nr, bi,bj,myThid) - CALL TIMEAVE_NORMALIZE( MYhbltave, - & MY_timeAve, 1 , bi,bj,myThid) - ENDDO - ENDDO - - IF (MYwriteState .AND. timeave_mdsio) THEN -C Write each snap-shot as a new file - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF - CALL WRITE_FLD_XYZ_RL('MYviscAr-T.', suff, - & MYviscArTave, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL('MYdiffKr-T.', suff, - & MYdiffKrTave, myIter, myThid ) - CALL WRITE_FLD_XY_RL( 'MYhbl-T.', suff, - & MYhblTave, myIter, myThid ) - ENDIF - -#ifdef ALLOW_MNC - IF (MYwriteState .AND. useMNC .AND. timeave_mnc) THEN - IF ( writeBinaryPrec .EQ. precFloat64 ) THEN - pf(1:1) = 'D' - ELSE - pf(1:1) = 'R' - ENDIF - CALL MNC_CW_SET_UDIM('my_timeave', -1, myThid) - CALL MNC_CW_RL_W_S('D','my_timeave',0,0,'T',myTime,myThid) - CALL MNC_CW_SET_UDIM('my_timeave', 0, myThid) - CALL MNC_CW_I_W_S('I','my_timeave',0,0,'iter',myIter,myThid) - CALL MNC_CW_RL_W(pf,'my_timeave',0,0, - & 'MYviscAr', MYviscArTave, myThid) - CALL MNC_CW_RL_W(pf,'my_timeave',0,0, - & 'MYdiffKr', MYdiffKrTave, myThid) - CALL MNC_CW_RL_W(pf,'my_timeave',0,0, - & 'MYhbl', MYhblTave, myThid) - ENDIF -#endif /* ALLOW_MNC */ - -C Reset averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( MYviscArtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( MYdiffKrtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( MYhbltave, 1 , bi, bj, myThid ) - MY_timeAve(bi,bj) = 0. - ENDDO - ENDDO - -C- end dump-files block - ENDIF - -C- end if MYtaveFreq > 0 ENDIF -#endif /* ALLOW_TIMEAVE */ - -#ifdef ALLOW_DIAGNOSTICS -C- note: should move this part to S/R MY82_CALC (like we do in pkg/ggl90) -C do not fill during call from INITIALISE_VARIA - IF ( useDiagnostics .AND. myIter.NE.nIter0 ) THEN - CALL DIAGNOSTICS_FILL(MYviscAr,'MYVISCAR',0,Nr,0,1,1,myThid) - CALL DIAGNOSTICS_FILL(MYdiffKr,'MYDIFFKR',0,Nr,0,1,1,myThid) - CALL DIAGNOSTICS_FILL(MYhbl ,'MYHBL ',0,1 ,0,1,1,myThid) - ENDIF -#endif /* ALLOW_DIAGNOSTICS */ - -#endif /* ALLOW_MY82 */ RETURN END diff --git a/pkg/my82/my82_readparms.F b/pkg/my82/my82_readparms.F index ae398ea9bf..bf747a7ff3 100644 --- a/pkg/my82/my82_readparms.F +++ b/pkg/my82/my82_readparms.F @@ -13,8 +13,8 @@ SUBROUTINE MY82_READPARMS( myThid ) IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" -#include "MY82.h" #include "PARAMS.h" +#include "MY82.h" C !INPUT PARAMETERS: =================================================== C myThid :: thread number @@ -38,8 +38,7 @@ SUBROUTINE MY82_READPARMS( myThid ) & MYhblScale, & MYdumpFreq, & MYMixingMaps, - & MYwriteState, - & MYtaveFreq + & MYwriteState C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -64,7 +63,6 @@ SUBROUTINE MY82_READPARMS( myThid ) MYhblScale = 0.1 _d 0 RiMax = 0.1950 _d 0 MYdumpFreq = dumpFreq - MYtaveFreq = taveFreq MYMixingMaps = .FALSE. MYwriteState = .FALSE. @@ -97,12 +95,12 @@ SUBROUTINE MY82_READPARMS( myThid ) C Now set-up any remaining parameters that result from the input parameters IF ( MYviscMax .LE. 0. ) THEN WRITE(msgBuf,'(A)') 'MYviscMax must be greater than zero' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R MY82_READPARMS' ENDIF IF ( MYdiffMax .LE. 0. ) THEN WRITE(msgBuf,'(A)') 'MYdiffMax must be greater than zero' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R MY82_READPARMS' ENDIF #endif /* ALLOW_MY82 */ diff --git a/pkg/mypackage/MYPACKAGE.h b/pkg/mypackage/MYPACKAGE.h index 5c7621aaeb..fa7f0bc687 100644 --- a/pkg/mypackage/MYPACKAGE.h +++ b/pkg/mypackage/MYPACKAGE.h @@ -1,4 +1,14 @@ -#ifdef ALLOW_MYPACKAGE +CBOP +C !ROUTINE: MYPACKAGE.h +C !INTERFACE: +C #include "MYPACKAGE.h" + +C !DESCRIPTION: +C *================================================================* +C | MYPACKAGE.h +C | o Header file defining "mypackage" parameters and variables +C *================================================================* +CEOP C Package flag LOGICAL myPa_MNC @@ -48,8 +58,8 @@ C- file names for initial conditions: C MYPA 3-dim. fields _RL myPa_StatScal1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL myPa_StatScal2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL myPa_StatVelU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL myPa_StatVelV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL myPa_StatVelU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL myPa_StatVelV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) COMMON /MYPA_STATE_3D/ & myPa_StatScal1, myPa_StatScal2, & myPa_StatVelU, myPa_StatVelV @@ -65,15 +75,11 @@ C MYPA 2-dim. fields #ifdef MYPACKAGE_TENDENCY _RL myPa_TendScal1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL myPa_TendScal2(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL myPa_TendVelU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL myPa_TendVelV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL myPa_TendVelU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL myPa_TendVelV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) COMMON /MYPA_TENDENCY/ & myPa_TendScal1, mypa_TendScal2, & myPa_TendVelU, mypa_TendVelV #endif /* MYPACKAGE_TENDENCY */ -#endif /* ALLOW_MYPACKAGE */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/mypackage/MYPACKAGE_OPTIONS.h b/pkg/mypackage/MYPACKAGE_OPTIONS.h index eb549ed7f3..7730d94a03 100644 --- a/pkg/mypackage/MYPACKAGE_OPTIONS.h +++ b/pkg/mypackage/MYPACKAGE_OPTIONS.h @@ -1,11 +1,20 @@ -C CPP options file for MYPACKAGE -C Use this file for selecting options within package "MyPackage" - #ifndef MYPACKAGE_OPTIONS_H #define MYPACKAGE_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: MYPACKAGE_OPTIONS.h +C !INTERFACE: +C #include "MYPACKAGE_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for pkg "mypackage": +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_MYPACKAGE C Place CPP define/undef flag here @@ -20,7 +29,3 @@ C to reduce memory storage, disable unused array with those CPP flags : #endif /* ALLOW_MYPACKAGE */ #endif /* MYPACKAGE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/mypackage/mypackage_calc_rhs.F b/pkg/mypackage/mypackage_calc_rhs.F index ff05398ad7..bd7248b422 100644 --- a/pkg/mypackage/mypackage_calc_rhs.F +++ b/pkg/mypackage/mypackage_calc_rhs.F @@ -12,10 +12,15 @@ SUBROUTINE MYPACKAGE_CALC_RHS( C !USES: =============================================================== IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" c#include "PARAMS.h" -c#include "MYPACKAGE.h" +C put following include within #ifdef in case this file is copied to local +C code dir but pkg/mypackage is not compiled (missing file MYPACKAGE.h). +c#ifdef ALLOW_MYPACKAGE +c# include "MYPACKAGE.h" +c#endif C !INPUT PARAMETERS: =================================================== C myTime :: Current time in simulation @@ -26,6 +31,7 @@ SUBROUTINE MYPACKAGE_CALC_RHS( C !OUTPUT PARAMETERS: ================================================== +#ifdef ALLOW_MYPACKAGE C !LOCAL VARIABLES: ==================================================== C bi,bj :: Tile indices INTEGER bi, bj @@ -41,5 +47,7 @@ SUBROUTINE MYPACKAGE_CALC_RHS( ENDDO ENDDO +#endif /* ALLOW_MYPACKAGE */ + RETURN END diff --git a/pkg/mypackage/mypackage_check.F b/pkg/mypackage/mypackage_check.F index 0f743086f8..567902a190 100644 --- a/pkg/mypackage/mypackage_check.F +++ b/pkg/mypackage/mypackage_check.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_CHECK C !INTERFACE: @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_CHECK( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -22,7 +23,6 @@ SUBROUTINE MYPACKAGE_CHECK( myThid ) INTEGER myThid CEOP -#ifdef ALLOW_MYPACKAGE C !LOCAL VARIABLES: C msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf @@ -31,7 +31,7 @@ SUBROUTINE MYPACKAGE_CHECK( myThid ) WRITE(msgBuf,'(A)') 'MYPACKAGE_CHECK: #define MYPACKAGE' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) C-- Print out some kee parameters : CALL WRITE_0D_L( myPa_StaV_Cgrid, INDEX_NONE, @@ -64,16 +64,14 @@ SUBROUTINE MYPACKAGE_CHECK( myThid ) C- For example, require this package to use tempStepping IF ( .NOT.tempStepping .AND. myPa_applyTendT ) THEN WRITE(msgBuf,'(A)') 'An example requirement is:' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) WRITE(msgBuf,'(A)') 'myPa_applyTendT needs tempStepping=.true.' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R MYPACKAGE_CHECK' ENDIF _END_MASTER(myThid) -#endif /* ALLOW_MYPACKAGE */ - RETURN END diff --git a/pkg/mypackage/mypackage_diagnostics_init.F b/pkg/mypackage/mypackage_diagnostics_init.F index 7df702c783..d15d4fbf50 100644 --- a/pkg/mypackage/mypackage_diagnostics_init.F +++ b/pkg/mypackage/mypackage_diagnostics_init.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_DIAGNOSTICS_INIT C !INTERFACE: @@ -12,8 +12,10 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_INIT( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" +#include "PARAMS.h" #include "MYPACKAGE.h" C !INPUT/OUTPUT PARAMETERS: @@ -23,7 +25,6 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_INIT( myThid ) #ifdef ALLOW_DIAGNOSTICS C !LOCAL VARIABLES: -C === Local variables === C diagNum :: diagnostics number in the (long) list of available diag. C diagMate :: diag. mate number in the (long) list of available diag. C diagName :: local short name (8c) of a diagnostics @@ -40,7 +41,7 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_INIT( myThid ) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -c IF ( useDiagnotics ) THEN + IF ( useDiagnostics ) THEN diagName = 'MYPaSta1' diagTitle = 'Scalar state variable 1 for package MYPACKAGE' @@ -97,7 +98,7 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_INIT( myThid ) diagName = 'MYPadSdt' diagTitle = ' Salinity tendency from package MYPACKAGE' - diagUnits = 'psu/s ' + diagUnits = 'g/kg/s ' diagCode = 'SMR MR ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) @@ -129,7 +130,7 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_INIT( myThid ) I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) CALL DIAGNOSTICS_SETKLEV( diagName, 3, myThid ) -c ENDIF + ENDIF #endif /* ALLOW_DIAGNOSTICS */ diff --git a/pkg/mypackage/mypackage_diagnostics_state.F b/pkg/mypackage/mypackage_diagnostics_state.F index 052e88f4d2..8f18680865 100644 --- a/pkg/mypackage/mypackage_diagnostics_state.F +++ b/pkg/mypackage/mypackage_diagnostics_state.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_DIAGNOSTICS_STATE C !INTERFACE: @@ -13,6 +13,7 @@ SUBROUTINE MYPACKAGE_DIAGNOSTICS_STATE( C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" diff --git a/pkg/mypackage/mypackage_init_fixed.F b/pkg/mypackage/mypackage_init_fixed.F index 9b6cc76676..b667438e12 100644 --- a/pkg/mypackage/mypackage_init_fixed.F +++ b/pkg/mypackage/mypackage_init_fixed.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_INIT_FIXED C !INTERFACE: @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_INIT_FIXED( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" @@ -23,7 +24,6 @@ SUBROUTINE MYPACKAGE_INIT_FIXED( myThid ) CEOP C !LOCAL VARIABLES: -C === Local variables === #ifdef ALLOW_MNC IF (useMNC) THEN diff --git a/pkg/mypackage/mypackage_init_varia.F b/pkg/mypackage/mypackage_init_varia.F index c05a2859f4..bcdd81dfea 100644 --- a/pkg/mypackage/mypackage_init_varia.F +++ b/pkg/mypackage/mypackage_init_varia.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_INIT_VARIA C !INTERFACE: @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_INIT_VARIA( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -23,10 +24,7 @@ SUBROUTINE MYPACKAGE_INIT_VARIA( myThid ) INTEGER myThid CEOP -#ifdef ALLOW_MYPACKAGE - C !LOCAL VARIABLES: -C === Local variables === INTEGER i,j,k,bi,bj DO bj = myByLo(myThid), myByHi(myThid) @@ -35,8 +33,8 @@ SUBROUTINE MYPACKAGE_INIT_VARIA( myThid ) C Initialize arrays in common blocks : C 3-dim. DO k=1,Nr - DO j=1-Oly,sNy+OLy - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx #ifdef MYPACKAGE_3D_STATE myPa_StatScal1(i,j,k,bi,bj) = 0. _d 0 myPa_StatScal2(i,j,k,bi,bj) = 0. _d 0 @@ -55,8 +53,8 @@ SUBROUTINE MYPACKAGE_INIT_VARIA( myThid ) C 2-dim. #ifdef MYPACKAGE_2D_STATE - DO j=1-Oly,sNy+OLy - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx myPa_Surf1(i,j,bi,bj) = 0. _d 0 myPa_Surf2(i,j,bi,bj) = 0. _d 0 ENDDO @@ -127,7 +125,5 @@ SUBROUTINE MYPACKAGE_INIT_VARIA( myThid ) C-- end start-from-iter-zero if/else block ENDIF -#endif /* ALLOW_MYPACKAGE */ - RETURN END diff --git a/pkg/mypackage/mypackage_mnc_init.F b/pkg/mypackage/mypackage_mnc_init.F index 8213224b02..8f7e23e4fe 100644 --- a/pkg/mypackage/mypackage_mnc_init.F +++ b/pkg/mypackage/mypackage_mnc_init.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_MNC_INIT C !INTERFACE: @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_MNC_INIT( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -21,7 +22,6 @@ SUBROUTINE MYPACKAGE_MNC_INIT( myThid ) INTEGER myThid CEOP -#ifdef ALLOW_MYPACKAGE #ifdef ALLOW_MNC IF (useMNC) THEN @@ -71,9 +71,6 @@ SUBROUTINE MYPACKAGE_MNC_INIT( myThid ) ENDIF #endif /* ALLOW_MNC */ -#endif /* ALLOW_MYPACKAGE */ RETURN END - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/mypackage/mypackage_read_pickup.F b/pkg/mypackage/mypackage_read_pickup.F index 51a9c5301f..4be6e35ac5 100644 --- a/pkg/mypackage/mypackage_read_pickup.F +++ b/pkg/mypackage/mypackage_read_pickup.F @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_READ_PICKUP( myIter, myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -23,7 +24,6 @@ SUBROUTINE MYPACKAGE_READ_PICKUP( myIter, myThid ) INTEGER myIter INTEGER myThid -#ifdef ALLOW_MYPACKAGE #if (defined MYPACKAGE_3D_STATE) || (defined MYPACKAGE_2D_STATE) C !LOCAL VARIABLES: @@ -195,7 +195,6 @@ SUBROUTINE MYPACKAGE_READ_PICKUP( myIter, myThid ) #endif /* MYPACKAGE_2D_STATE */ #endif /* MYPACKAGE_3D_STATE or MYPACKAGE_2D_STATE */ -#endif /* ALLOW_MYPACKAGE */ RETURN END diff --git a/pkg/mypackage/mypackage_readparms.F b/pkg/mypackage/mypackage_readparms.F index 832be10c4f..db0fdf37be 100644 --- a/pkg/mypackage/mypackage_readparms.F +++ b/pkg/mypackage/mypackage_readparms.F @@ -1,7 +1,7 @@ #include "MYPACKAGE_OPTIONS.h" C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_READPARMS C !INTERFACE: @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_READPARMS( myThid ) C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -21,8 +22,6 @@ SUBROUTINE MYPACKAGE_READPARMS( myThid ) INTEGER myThid CEOP -#ifdef ALLOW_MYPACKAGE - C !LOCAL VARIABLES: C msgBuf :: Informational/error message buffer C iUnit :: Work variable for IO unit number @@ -81,7 +80,7 @@ SUBROUTINE MYPACKAGE_READPARMS( myThid ) WRITE(msgBuf,'(A)') 'MYPACKAGE_READPARMS: opening data.mypackage' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) CALL OPEN_COPY_DATA_FILE( I 'data.mypackage', 'MYPACKAGE_READPARMS', O iUnit, @@ -92,7 +91,7 @@ SUBROUTINE MYPACKAGE_READPARMS( myThid ) WRITE(msgBuf,'(A)') & 'MYPACKAGE_READPARMS: finished reading data.mypackage' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) C Close the open data file #ifdef SINGLE_DISK_IO CLOSE(iUnit) @@ -113,7 +112,5 @@ SUBROUTINE MYPACKAGE_READPARMS( myThid ) C-- Everyone else must wait for the parameters to be loaded _BARRIER -#endif /* ALLOW_MYPACKAGE */ - RETURN END diff --git a/pkg/mypackage/mypackage_tendency_apply.F b/pkg/mypackage/mypackage_tendency_apply.F index 443f98cc36..daab2a4b7b 100644 --- a/pkg/mypackage/mypackage_tendency_apply.F +++ b/pkg/mypackage/mypackage_tendency_apply.F @@ -7,7 +7,7 @@ C-- o MYPACKAGE_TENDENCY_APPLY_S C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_U C !INTERFACE: @@ -23,6 +23,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_U( C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "GRID.h" @@ -75,7 +76,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_U( END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_V C !INTERFACE: @@ -91,6 +92,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_V( C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "GRID.h" @@ -143,7 +145,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_V( END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_T C !INTERFACE: @@ -158,6 +160,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_T( C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "GRID.h" @@ -200,7 +203,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_T( END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -CBOP 0 +CBOP C !ROUTINE: MYPACKAGE_TENDENCY_APPLY_S C !INTERFACE: @@ -215,6 +218,7 @@ SUBROUTINE MYPACKAGE_TENDENCY_APPLY_S( C !USES: IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "GRID.h" diff --git a/pkg/mypackage/mypackage_write_pickup.F b/pkg/mypackage/mypackage_write_pickup.F index f15a5eaf60..4d1a7d89fa 100644 --- a/pkg/mypackage/mypackage_write_pickup.F +++ b/pkg/mypackage/mypackage_write_pickup.F @@ -12,6 +12,7 @@ SUBROUTINE MYPACKAGE_WRITE_PICKUP( permPickup, C !USES: =============================================================== IMPLICIT NONE +C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" @@ -32,7 +33,6 @@ SUBROUTINE MYPACKAGE_WRITE_PICKUP( permPickup, C !OUTPUT PARAMETERS: ================================================== C none -#ifdef ALLOW_MYPACKAGE #if (defined MYPACKAGE_3D_STATE) || (defined MYPACKAGE_2D_STATE) C === Functions ==== @@ -140,7 +140,6 @@ SUBROUTINE MYPACKAGE_WRITE_PICKUP( permPickup, C-------------------------- #endif /* MYPACKAGE_3D_STATE or MYPACKAGE_2D_STATE */ -#endif /* ALLOW_MYPACKAGE */ RETURN END diff --git a/pkg/obcs/obcs_ad_check_lev2_dir.h b/pkg/obcs/obcs_ad_check_lev2_dir.h index 9a0ea73cf1..214cd02289 100644 --- a/pkg/obcs/obcs_ad_check_lev2_dir.h +++ b/pkg/obcs/obcs_ad_check_lev2_dir.h @@ -1,40 +1,109 @@ -#ifdef ALLOW_OBCS # -# ifdef ALLOW_OBCS_NORTH +# ifdef AUTODIFF_USE_STORE_RESTORE_OBCS +# ifdef ALLOW_OBCS_NORTH CADJ STORE StoreOBCSN = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE StoreOBCSS = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCS_EAST +CADJ STORE StoreOBCSE = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCS_WEST +CADJ STORE StoreOBCSW = tapelev2, key = ilev_2 +# endif +# else +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNu = tapelev2, key = ilev_2 +CADJ STORE OBNv = tapelev2, key = ilev_2 +CADJ STORE OBNt = tapelev2, key = ilev_2 +CADJ STORE OBNs = tapelev2, key = ilev_2 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBNu0, OBNu1 = tapelev2, key = ilev_2 +CADJ STORE OBNv0, OBNv1 = tapelev2, key = ilev_2 +CADJ STORE OBNt0, OBNt1 = tapelev2, key = ilev_2 +CADJ STORE OBNs0, OBNs1 = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCSN_CONTROL +CADJ STORE xx_obcsn0 = tapelev2, key = ilev_2 +CADJ STORE xx_obcsn1 = tapelev2, key = ilev_2 +# endif +# endif /* ALLOW_OBCS_NORTH */ +# +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSu = tapelev2, key = ilev_2 +CADJ STORE OBSv = tapelev2, key = ilev_2 +CADJ STORE OBSt = tapelev2, key = ilev_2 +CADJ STORE OBSs = tapelev2, key = ilev_2 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBSu0, OBSu1 = tapelev2, key = ilev_2 +CADJ STORE OBSv0, OBSv1 = tapelev2, key = ilev_2 +CADJ STORE OBSt0, OBSt1 = tapelev2, key = ilev_2 +CADJ STORE OBSs0, OBSs1 = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCSS_CONTROL +CADJ STORE xx_obcss0 = tapelev2, key = ilev_2 +CADJ STORE xx_obcss1 = tapelev2, key = ilev_2 +# endif +# endif /* ALLOW_OBCS_SOUTH */ +# +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEu = tapelev2, key = ilev_2 +CADJ STORE OBEv = tapelev2, key = ilev_2 +CADJ STORE OBEt = tapelev2, key = ilev_2 +CADJ STORE OBEs = tapelev2, key = ilev_2 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBEu0, OBEu1 = tapelev2, key = ilev_2 +CADJ STORE OBEv0, OBEv1 = tapelev2, key = ilev_2 +CADJ STORE OBEt0, OBEt1 = tapelev2, key = ilev_2 +CADJ STORE OBEs0, OBEs1 = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCSE_CONTROL +CADJ STORE xx_obcse0 = tapelev2, key = ilev_2 +CADJ STORE xx_obcse1 = tapelev2, key = ilev_2 +# endif +# endif /* ALLOW_OBCS_EAST */ +# +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWu = tapelev2, key = ilev_2 +CADJ STORE OBWv = tapelev2, key = ilev_2 +CADJ STORE OBWt = tapelev2, key = ilev_2 +CADJ STORE OBWs = tapelev2, key = ilev_2 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBWu0, OBWu1 = tapelev2, key = ilev_2 +CADJ STORE OBWv0, OBWv1 = tapelev2, key = ilev_2 +CADJ STORE OBWt0, OBWt1 = tapelev2, key = ilev_2 +CADJ STORE OBWs0, OBWs1 = tapelev2, key = ilev_2 +# endif +# ifdef ALLOW_OBCSW_CONTROL +CADJ STORE xx_obcsw0 = tapelev2, key = ilev_2 +CADJ STORE xx_obcsw1 = tapelev2, key = ilev_2 +# endif +# endif /* ALLOW_OBCS_WEST */ +# endif /* AUTODIFF_USE_STORE_RESTORE_OBCS */ +# # ifdef ALLOW_OBCS_STEVENS +# ifdef ALLOW_OBCS_NORTH CADJ STORE OBNtStevens = tapelev2, key = ilev_2 CADJ STORE OBNsStevens = tapelev2, key = ilev_2 CADJ STORE OBNvStevens = tapelev2, key = ilev_2 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_NORTH */ -# -# ifdef ALLOW_OBCS_SOUTH -CADJ STORE StoreOBCSS = tapelev2, key = ilev_2 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_SOUTH CADJ STORE OBStStevens = tapelev2, key = ilev_2 CADJ STORE OBSsStevens = tapelev2, key = ilev_2 CADJ STORE OBSvStevens = tapelev2, key = ilev_2 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_SOUTH */ -# -# ifdef ALLOW_OBCS_EAST -CADJ STORE StoreOBCSE = tapelev2, key = ilev_2 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_EAST CADJ STORE OBEtStevens = tapelev2, key = ilev_2 CADJ STORE OBEsStevens = tapelev2, key = ilev_2 CADJ STORE OBEuStevens = tapelev2, key = ilev_2 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_EAST */ -# -# ifdef ALLOW_OBCS_WEST -CADJ STORE StoreOBCSW = tapelev2, key = ilev_2 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_WEST CADJ STORE OBWtStevens = tapelev2, key = ilev_2 CADJ STORE OBWsStevens = tapelev2, key = ilev_2 CADJ STORE OBWuStevens = tapelev2, key = ilev_2 +# endif # endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_WEST */ # # ifdef ALLOW_PTRACERS # @@ -76,7 +145,7 @@ CADJ STORE OBNh = tapelev2, key = ilev_2 CADJ STORE OBNa = tapelev2, key = ilev_2 CADJ STORE OBNsn = tapelev2, key = ilev_2 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBNsl = tapelev2, key = ilev_2 +CADJ STORE OBNsl = tapelev2, key = ilev_2 CADJ STORE OBNsl0 = tapelev2, key = ilev_2 CADJ STORE OBNsl1 = tapelev2, key = ilev_2 #endif @@ -112,7 +181,7 @@ CADJ STORE OBEh = tapelev2, key = ilev_2 CADJ STORE OBEa = tapelev2, key = ilev_2 CADJ STORE OBEsn = tapelev2, key = ilev_2 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBEsl = tapelev2, key = ilev_2 +CADJ STORE OBEsl = tapelev2, key = ilev_2 CADJ STORE OBEsl0 = tapelev2, key = ilev_2 CADJ STORE OBEsl1 = tapelev2, key = ilev_2 #endif @@ -130,7 +199,7 @@ CADJ STORE OBWh = tapelev2, key = ilev_2 CADJ STORE OBWa = tapelev2, key = ilev_2 CADJ STORE OBWsn = tapelev2, key = ilev_2 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBWsl = tapelev2, key = ilev_2 +CADJ STORE OBWsl = tapelev2, key = ilev_2 CADJ STORE OBWsl0 = tapelev2, key = ilev_2 CADJ STORE OBWsl1 = tapelev2, key = ilev_2 #endif @@ -154,5 +223,3 @@ CADJ STORE obeeta0,obeeta1 = tapelev2, key = ilev_2 CADJ STORE obweta0,obweta1 = tapelev2, key = ilev_2 # endif # endif - -#endif /* ALLOW_OBCS */ diff --git a/pkg/obcs/obcs_ad_check_lev3_dir.h b/pkg/obcs/obcs_ad_check_lev3_dir.h index e12746e5a9..e7911267e0 100644 --- a/pkg/obcs/obcs_ad_check_lev3_dir.h +++ b/pkg/obcs/obcs_ad_check_lev3_dir.h @@ -1,40 +1,109 @@ -#ifdef ALLOW_OBCS # -# ifdef ALLOW_OBCS_NORTH +# ifdef AUTODIFF_USE_STORE_RESTORE_OBCS +# ifdef ALLOW_OBCS_NORTH CADJ STORE StoreOBCSN = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE StoreOBCSS = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCS_EAST +CADJ STORE StoreOBCSE = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCS_WEST +CADJ STORE StoreOBCSW = tapelev3, key = ilev_3 +# endif +# else +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNu = tapelev3, key = ilev_3 +CADJ STORE OBNv = tapelev3, key = ilev_3 +CADJ STORE OBNt = tapelev3, key = ilev_3 +CADJ STORE OBNs = tapelev3, key = ilev_3 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBNu0, OBNu1 = tapelev3, key = ilev_3 +CADJ STORE OBNv0, OBNv1 = tapelev3, key = ilev_3 +CADJ STORE OBNt0, OBNt1 = tapelev3, key = ilev_3 +CADJ STORE OBNs0, OBNs1 = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCSN_CONTROL +CADJ STORE xx_obcsn0 = tapelev3, key = ilev_3 +CADJ STORE xx_obcsn1 = tapelev3, key = ilev_3 +# endif +# endif /* ALLOW_OBCS_NORTH */ +# +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSu = tapelev3, key = ilev_3 +CADJ STORE OBSv = tapelev3, key = ilev_3 +CADJ STORE OBSt = tapelev3, key = ilev_3 +CADJ STORE OBSs = tapelev3, key = ilev_3 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBSu0, OBSu1 = tapelev3, key = ilev_3 +CADJ STORE OBSv0, OBSv1 = tapelev3, key = ilev_3 +CADJ STORE OBSt0, OBSt1 = tapelev3, key = ilev_3 +CADJ STORE OBSs0, OBSs1 = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCSS_CONTROL +CADJ STORE xx_obcss0 = tapelev3, key = ilev_3 +CADJ STORE xx_obcss1 = tapelev3, key = ilev_3 +# endif +# endif /* ALLOW_OBCS_SOUTH */ +# +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEu = tapelev3, key = ilev_3 +CADJ STORE OBEv = tapelev3, key = ilev_3 +CADJ STORE OBEt = tapelev3, key = ilev_3 +CADJ STORE OBEs = tapelev3, key = ilev_3 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBEu0, OBEu1 = tapelev3, key = ilev_3 +CADJ STORE OBEv0, OBEv1 = tapelev3, key = ilev_3 +CADJ STORE OBEt0, OBEt1 = tapelev3, key = ilev_3 +CADJ STORE OBEs0, OBEs1 = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCSE_CONTROL +CADJ STORE xx_obcse0 = tapelev3, key = ilev_3 +CADJ STORE xx_obcse1 = tapelev3, key = ilev_3 +# endif +# endif /* ALLOW_OBCS_EAST */ +# +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWu = tapelev3, key = ilev_3 +CADJ STORE OBWv = tapelev3, key = ilev_3 +CADJ STORE OBWt = tapelev3, key = ilev_3 +CADJ STORE OBWs = tapelev3, key = ilev_3 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBWu0, OBWu1 = tapelev3, key = ilev_3 +CADJ STORE OBWv0, OBWv1 = tapelev3, key = ilev_3 +CADJ STORE OBWt0, OBWt1 = tapelev3, key = ilev_3 +CADJ STORE OBWs0, OBWs1 = tapelev3, key = ilev_3 +# endif +# ifdef ALLOW_OBCSW_CONTROL +CADJ STORE xx_obcsw0 = tapelev3, key = ilev_3 +CADJ STORE xx_obcsw1 = tapelev3, key = ilev_3 +# endif +# endif /* ALLOW_OBCS_WEST */ +# endif /* AUTODIFF_USE_STORE_RESTORE_OBCS */ +# # ifdef ALLOW_OBCS_STEVENS +# ifdef ALLOW_OBCS_NORTH CADJ STORE OBNtStevens = tapelev3, key = ilev_3 CADJ STORE OBNsStevens = tapelev3, key = ilev_3 CADJ STORE OBNvStevens = tapelev3, key = ilev_3 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_NORTH */ -# -# ifdef ALLOW_OBCS_SOUTH -CADJ STORE StoreOBCSS = tapelev3, key = ilev_3 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_SOUTH CADJ STORE OBStStevens = tapelev3, key = ilev_3 CADJ STORE OBSsStevens = tapelev3, key = ilev_3 CADJ STORE OBSvStevens = tapelev3, key = ilev_3 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_SOUTH */ -# -# ifdef ALLOW_OBCS_EAST -CADJ STORE StoreOBCSE = tapelev3, key = ilev_3 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_EAST CADJ STORE OBEtStevens = tapelev3, key = ilev_3 CADJ STORE OBEsStevens = tapelev3, key = ilev_3 CADJ STORE OBEuStevens = tapelev3, key = ilev_3 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_EAST */ -# -# ifdef ALLOW_OBCS_WEST -CADJ STORE StoreOBCSW = tapelev3, key = ilev_3 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_WEST CADJ STORE OBWtStevens = tapelev3, key = ilev_3 CADJ STORE OBWsStevens = tapelev3, key = ilev_3 CADJ STORE OBWuStevens = tapelev3, key = ilev_3 +# endif # endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_WEST */ # # ifdef ALLOW_PTRACERS # @@ -76,7 +145,7 @@ CADJ STORE OBNh = tapelev3, key = ilev_3 CADJ STORE OBNa = tapelev3, key = ilev_3 CADJ STORE OBNsn = tapelev3, key = ilev_3 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBNsl = tapelev3, key = ilev_3 +CADJ STORE OBNsl = tapelev3, key = ilev_3 CADJ STORE OBNsl0 = tapelev3, key = ilev_3 CADJ STORE OBNsl1 = tapelev3, key = ilev_3 #endif @@ -94,7 +163,7 @@ CADJ STORE OBSh = tapelev3, key = ilev_3 CADJ STORE OBSa = tapelev3, key = ilev_3 CADJ STORE OBSsn = tapelev3, key = ilev_3 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBSsl = tapelev3, key = ilev_3 +CADJ STORE OBSsl = tapelev3, key = ilev_3 CADJ STORE OBSsl0 = tapelev3, key = ilev_3 CADJ STORE OBSsl1 = tapelev3, key = ilev_3 #endif @@ -112,7 +181,7 @@ CADJ STORE OBEh = tapelev3, key = ilev_3 CADJ STORE OBEa = tapelev3, key = ilev_3 CADJ STORE OBEsn = tapelev3, key = ilev_3 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBEsl = tapelev3, key = ilev_3 +CADJ STORE OBEsl = tapelev3, key = ilev_3 CADJ STORE OBEsl0 = tapelev3, key = ilev_3 CADJ STORE OBEsl1 = tapelev3, key = ilev_3 #endif @@ -130,7 +199,7 @@ CADJ STORE OBWh = tapelev3, key = ilev_3 CADJ STORE OBWa = tapelev3, key = ilev_3 CADJ STORE OBWsn = tapelev3, key = ilev_3 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBWsl = tapelev3, key = ilev_3 +CADJ STORE OBWsl = tapelev3, key = ilev_3 CADJ STORE OBWsl0 = tapelev3, key = ilev_3 CADJ STORE OBWsl1 = tapelev3, key = ilev_3 #endif @@ -154,5 +223,3 @@ CADJ STORE obeeta0,obeeta1 = tapelev3, key = ilev_3 CADJ STORE obweta0,obweta1 = tapelev3, key = ilev_3 # endif # endif - -#endif /* ALLOW_OBCS */ diff --git a/pkg/obcs/obcs_ad_check_lev4_dir.h b/pkg/obcs/obcs_ad_check_lev4_dir.h index 645b8e4208..10770da378 100644 --- a/pkg/obcs/obcs_ad_check_lev4_dir.h +++ b/pkg/obcs/obcs_ad_check_lev4_dir.h @@ -1,40 +1,109 @@ -#ifdef ALLOW_OBCS # -# ifdef ALLOW_OBCS_NORTH +# ifdef AUTODIFF_USE_STORE_RESTORE_OBCS +# ifdef ALLOW_OBCS_NORTH CADJ STORE StoreOBCSN = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE StoreOBCSS = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCS_EAST +CADJ STORE StoreOBCSE = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCS_WEST +CADJ STORE StoreOBCSW = tapelev4, key = ilev_4 +# endif +# else +# ifdef ALLOW_OBCS_NORTH +CADJ STORE OBNu = tapelev4, key = ilev_4 +CADJ STORE OBNv = tapelev4, key = ilev_4 +CADJ STORE OBNt = tapelev4, key = ilev_4 +CADJ STORE OBNs = tapelev4, key = ilev_4 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBNu0, OBNu1 = tapelev4, key = ilev_4 +CADJ STORE OBNv0, OBNv1 = tapelev4, key = ilev_4 +CADJ STORE OBNt0, OBNt1 = tapelev4, key = ilev_4 +CADJ STORE OBNs0, OBNs1 = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCSN_CONTROL +CADJ STORE xx_obcsn0 = tapelev4, key = ilev_4 +CADJ STORE xx_obcsn1 = tapelev4, key = ilev_4 +# endif +# endif /* ALLOW_OBCS_NORTH */ +# +# ifdef ALLOW_OBCS_SOUTH +CADJ STORE OBSu = tapelev4, key = ilev_4 +CADJ STORE OBSv = tapelev4, key = ilev_4 +CADJ STORE OBSt = tapelev4, key = ilev_4 +CADJ STORE OBSs = tapelev4, key = ilev_4 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBSu0, OBSu1 = tapelev4, key = ilev_4 +CADJ STORE OBSv0, OBSv1 = tapelev4, key = ilev_4 +CADJ STORE OBSt0, OBSt1 = tapelev4, key = ilev_4 +CADJ STORE OBSs0, OBSs1 = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCSS_CONTROL +CADJ STORE xx_obcss0 = tapelev4, key = ilev_4 +CADJ STORE xx_obcss1 = tapelev4, key = ilev_4 +# endif +# endif /* ALLOW_OBCS_SOUTH */ +# +# ifdef ALLOW_OBCS_EAST +CADJ STORE OBEu = tapelev4, key = ilev_4 +CADJ STORE OBEv = tapelev4, key = ilev_4 +CADJ STORE OBEt = tapelev4, key = ilev_4 +CADJ STORE OBEs = tapelev4, key = ilev_4 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBEu0, OBEu1 = tapelev4, key = ilev_4 +CADJ STORE OBEv0, OBEv1 = tapelev4, key = ilev_4 +CADJ STORE OBEt0, OBEt1 = tapelev4, key = ilev_4 +CADJ STORE OBEs0, OBEs1 = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCSE_CONTROL +CADJ STORE xx_obcse0 = tapelev4, key = ilev_4 +CADJ STORE xx_obcse1 = tapelev4, key = ilev_4 +# endif +# endif /* ALLOW_OBCS_EAST */ +# +# ifdef ALLOW_OBCS_WEST +CADJ STORE OBWu = tapelev4, key = ilev_4 +CADJ STORE OBWv = tapelev4, key = ilev_4 +CADJ STORE OBWt = tapelev4, key = ilev_4 +CADJ STORE OBWs = tapelev4, key = ilev_4 +# ifdef ALLOW_OBCS_PRESCRIBE +CADJ STORE OBWu0, OBWu1 = tapelev4, key = ilev_4 +CADJ STORE OBWv0, OBWv1 = tapelev4, key = ilev_4 +CADJ STORE OBWt0, OBWt1 = tapelev4, key = ilev_4 +CADJ STORE OBWs0, OBWs1 = tapelev4, key = ilev_4 +# endif +# ifdef ALLOW_OBCSW_CONTROL +CADJ STORE xx_obcsw0 = tapelev4, key = ilev_4 +CADJ STORE xx_obcsw1 = tapelev4, key = ilev_4 +# endif +# endif /* ALLOW_OBCS_WEST */ +# endif /* AUTODIFF_USE_STORE_RESTORE_OBCS */ +# # ifdef ALLOW_OBCS_STEVENS +# ifdef ALLOW_OBCS_NORTH CADJ STORE OBNtStevens = tapelev4, key = ilev_4 CADJ STORE OBNsStevens = tapelev4, key = ilev_4 CADJ STORE OBNvStevens = tapelev4, key = ilev_4 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_NORTH */ -# -# ifdef ALLOW_OBCS_SOUTH -CADJ STORE StoreOBCSS = tapelev4, key = ilev_4 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_SOUTH CADJ STORE OBStStevens = tapelev4, key = ilev_4 CADJ STORE OBSsStevens = tapelev4, key = ilev_4 CADJ STORE OBSvStevens = tapelev4, key = ilev_4 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_SOUTH */ -# -# ifdef ALLOW_OBCS_EAST -CADJ STORE StoreOBCSE = tapelev4, key = ilev_4 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_EAST CADJ STORE OBEtStevens = tapelev4, key = ilev_4 CADJ STORE OBEsStevens = tapelev4, key = ilev_4 CADJ STORE OBEuStevens = tapelev4, key = ilev_4 -# endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_EAST */ -# -# ifdef ALLOW_OBCS_WEST -CADJ STORE StoreOBCSW = tapelev4, key = ilev_4 -# ifdef ALLOW_OBCS_STEVENS +# endif +# ifdef ALLOW_OBCS_WEST CADJ STORE OBWtStevens = tapelev4, key = ilev_4 CADJ STORE OBWsStevens = tapelev4, key = ilev_4 -CADJ STORE OBWsStevens = tapelev4, key = ilev_4 +CADJ STORE OBWuStevens = tapelev4, key = ilev_4 +# endif # endif /* ALLOW_OBCS_STEVENS */ -# endif /* ALLOW_OBCS_WEST */ # # ifdef ALLOW_PTRACERS # @@ -76,7 +145,7 @@ CADJ STORE OBNh = tapelev4, key = ilev_4 CADJ STORE OBNa = tapelev4, key = ilev_4 CADJ STORE OBNsn = tapelev4, key = ilev_4 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBNsl = tapelev4, key = ilev_4 +CADJ STORE OBNsl = tapelev4, key = ilev_4 CADJ STORE OBNsl0 = tapelev4, key = ilev_4 CADJ STORE OBNsl1 = tapelev4, key = ilev_4 #endif @@ -94,7 +163,7 @@ CADJ STORE OBSh = tapelev4, key = ilev_4 CADJ STORE OBSa = tapelev4, key = ilev_4 CADJ STORE OBSsn = tapelev4, key = ilev_4 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBSsl = tapelev4, key = ilev_4 +CADJ STORE OBSsl = tapelev4, key = ilev_4 CADJ STORE OBSsl0 = tapelev4, key = ilev_4 CADJ STORE OBSsl1 = tapelev4, key = ilev_4 #endif @@ -112,7 +181,7 @@ CADJ STORE OBEh = tapelev4, key = ilev_4 CADJ STORE OBEa = tapelev4, key = ilev_4 CADJ STORE OBEsn = tapelev4, key = ilev_4 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBEsl = tapelev4, key = ilev_4 +CADJ STORE OBEsl = tapelev4, key = ilev_4 CADJ STORE OBEsl0 = tapelev4, key = ilev_4 CADJ STORE OBEsl1 = tapelev4, key = ilev_4 #endif @@ -130,7 +199,7 @@ CADJ STORE OBWh = tapelev4, key = ilev_4 CADJ STORE OBWa = tapelev4, key = ilev_4 CADJ STORE OBWsn = tapelev4, key = ilev_4 #ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE OBWsl = tapelev4, key = ilev_4 +CADJ STORE OBWsl = tapelev4, key = ilev_4 CADJ STORE OBWsl0 = tapelev4, key = ilev_4 CADJ STORE OBWsl1 = tapelev4, key = ilev_4 #endif @@ -154,5 +223,3 @@ CADJ STORE obeeta0,obeeta1 = tapelev4, key = ilev_4 CADJ STORE obweta0,obweta1 = tapelev4, key = ilev_4 # endif # endif - -#endif /* ALLOW_OBCS */ diff --git a/pkg/obcs/obcs_ad_diff.list b/pkg/obcs/obcs_ad_diff.list index 9e05f47c26..d3363c5b7d 100644 --- a/pkg/obcs/obcs_ad_diff.list +++ b/pkg/obcs/obcs_ad_diff.list @@ -21,6 +21,7 @@ obcs_init_variables.f obcs_prescribe_read.f obcs_read_pickup.f obcs_sponge.f +obcs_seaice_sponge.f obcs_balance_flow.f obcs_adjust.f orlanski_east.f diff --git a/pkg/obcs/obcs_add_tides.F b/pkg/obcs/obcs_add_tides.F index aac10406f5..646a34bc52 100644 --- a/pkg/obcs/obcs_add_tides.F +++ b/pkg/obcs/obcs_add_tides.F @@ -13,7 +13,7 @@ SUBROUTINE OBCS_ADD_TIDES( myTime, myIter, myThid ) C | o Modify OB normal flow to add tidal forcing C | NOTE that at the moment tidal forcing is applied C | only to "normal" flow. Code below should eventually -C | be augmented to also specify flow parallel to boundary. +C | be augmented to also specify flow parallel to boundary. C *==========================================================* C !USES: @@ -53,82 +53,78 @@ SUBROUTINE OBCS_ADD_TIDES( myTime, myIter, myThid ) #endif C-- Add tidal currents: - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) + DO td=1,tidalComponents + IF ( tidalPeriod(td) .GT. 0.D0 ) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_OBCS_EAST - IF ( tileHasOBE(bi,bj) ) THEN - DO k=1,Nr - DO j=1-OLy,sNy+OLy - iB = OB_Ie(j,bi,bj) - IF ( iB.NE.OB_indexNone ) THEN - DO td=1,tidalComponents - OBEu(j,k,bi,bj) = OBEu(j,k,bi,bj) + + IF ( tileHasOBE(bi,bj) ) THEN + DO k=1,Nr + DO j=1-OLy,sNy+OLy + iB = OB_Ie(j,bi,bj) + IF ( iB.NE.OB_indexNone ) THEN + OBEu(j,k,bi,bj) = OBEu(j,k,bi,bj) + & maskW(iB,j,k,bi,bj) * OBEam(j,td,bi,bj) * & COS( 2.D0 * PI * (myTime-OBEph(j,td,bi,bj)) / & tidalPeriod(td) ) + ENDIF ENDDO - ENDIF - ENDDO - ENDDO - ENDIF + ENDDO + ENDIF #endif /* ALLOW_OBCS_EAST */ #ifdef ALLOW_OBCS_WEST - IF ( tileHasOBW(bi,bj) ) THEN - DO k=1,Nr - DO j=1-OLy,sNy+OLy - iB = OB_Iw(j,bi,bj) - IF ( iB.NE.OB_indexNone ) THEN - DO td=1,tidalComponents - OBWu(j,k,bi,bj) = OBWu(j,k,bi,bj) + + IF ( tileHasOBW(bi,bj) ) THEN + DO k=1,Nr + DO j=1-OLy,sNy+OLy + iB = OB_Iw(j,bi,bj) + IF ( iB.NE.OB_indexNone ) THEN + OBWu(j,k,bi,bj) = OBWu(j,k,bi,bj) + & maskW(1+iB,j,k,bi,bj) * OBWam(j,td,bi,bj) * & COS( 2.D0 * PI * (myTime-OBWph(j,td,bi,bj)) / & tidalPeriod(td) ) + ENDIF ENDDO - ENDIF - ENDDO - ENDDO - ENDIF + ENDDO + ENDIF #endif /* ALLOW_OBCS_WEST */ #ifdef ALLOW_OBCS_NORTH - IF ( tileHasOBN(bi,bj) ) THEN - DO k=1,Nr - DO i=1-OLx,sNx+OLx - jB = OB_Jn(i,bi,bj) - IF ( jB.NE.OB_indexNone ) THEN - DO td=1,tidalComponents - OBNv(i,k,bi,bj) = OBNv(i,k,bi,bj) + + IF ( tileHasOBN(bi,bj) ) THEN + DO k=1,Nr + DO i=1-OLx,sNx+OLx + jB = OB_Jn(i,bi,bj) + IF ( jB.NE.OB_indexNone ) THEN + OBNv(i,k,bi,bj) = OBNv(i,k,bi,bj) + & maskS(i,jB,k,bi,bj) * OBNam(i,td,bi,bj) * & COS( 2.D0 * PI * (myTime-OBNph(i,td,bi,bj)) / & tidalPeriod(td) ) + ENDIF ENDDO - ENDIF - ENDDO - ENDDO - ENDIF + ENDDO + ENDIF #endif /* ALLOW_OBCS_NORTH */ #ifdef ALLOW_OBCS_SOUTH - IF ( tileHasOBS(bi,bj) ) THEN - DO k=1,Nr - DO i=1-OLx,sNx+OLx - jB = OB_Js(i,bi,bj) - IF ( jB.NE.OB_indexNone ) THEN - DO td=1,tidalComponents - OBSv(i,k,bi,bj) = OBSv(i,k,bi,bj) + + IF ( tileHasOBS(bi,bj) ) THEN + DO k=1,Nr + DO i=1-OLx,sNx+OLx + jB = OB_Js(i,bi,bj) + IF ( jB.NE.OB_indexNone ) THEN + OBSv(i,k,bi,bj) = OBSv(i,k,bi,bj) + & maskS(i,1+jB,k,bi,bj)* OBSam(i,td,bi,bj) * & COS( 2.D0 * PI * (myTime-OBSph(i,td,bi,bj)) / & tidalPeriod(td) ) + ENDIF ENDDO - ENDIF - ENDDO - ENDDO - ENDIF + ENDDO + ENDIF #endif /* ALLOW_OBCS_SOUTH */ - ENDDO + ENDDO + ENDDO + ENDIF ENDDO #ifdef ALLOW_DEBUG diff --git a/pkg/obcs/obcs_calc.F b/pkg/obcs/obcs_calc.F index 15741ad803..32ecf21433 100644 --- a/pkg/obcs/obcs_calc.F +++ b/pkg/obcs/obcs_calc.F @@ -1,4 +1,7 @@ #include "OBCS_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif /* ALLOW_CTRL */ CBOP C !ROUTINE: OBCS_CALC @@ -406,6 +409,26 @@ SUBROUTINE OBCS_CALC( futureTime, futureIter, ENDIF #endif /* ALLOW_OBCS_PRESCRIBE */ +C ------------------------------------------------------------------------------ +C read control parameter contributions here to be independent of flags +C ALLOW_OBCS_PRESCRIBE and useOBCSprescribe +#ifdef ALLOW_CTRL + IF ( useCTRL ) THEN +# ifdef ALLOW_OBCSN_CONTROL + CALL CTRL_GETOBCSN ( futureTime, futureIter, mythid ) +# endif +# ifdef ALLOW_OBCSS_CONTROL + CALL CTRL_GETOBCSS ( futureTime, futureIter, mythid ) +# endif +# ifdef ALLOW_OBCSW_CONTROL + CALL CTRL_GETOBCSW ( futureTime, futureIter, myThid ) +# endif +# ifdef ALLOW_OBCSE_CONTROL + CALL CTRL_GETOBCSE ( futureTime, futureIter, myThid ) +# endif + ENDIF +#endif /* ALLOW_CTRL */ + C ------------------------------------------------------------------------------ #ifdef ALLOW_OBCS_STEVENS diff --git a/pkg/obcs/obcs_calc_stevens.F b/pkg/obcs/obcs_calc_stevens.F index 77dc1f7fca..b4765d2590 100644 --- a/pkg/obcs/obcs_calc_stevens.F +++ b/pkg/obcs/obcs_calc_stevens.F @@ -1,7 +1,10 @@ #include "OBCS_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif #undef CHECK_BALANCE -C-- File obcs_calc_stevens.F: +C-- File obcs_calc_stevens.F: C-- Contents C-- o OBCS_CALC_STEVENS C-- o OBCS_STEVENS_CALC_TRACER_EAST @@ -78,8 +81,7 @@ SUBROUTINE OBCS_CALC_STEVENS( #include "OBCS_PTRACERS.h" #endif /* ALLOW_PTRACERS */ #ifdef ALLOW_AUTODIFF_TAMC -#include "tamc.h" -#include "tamc_keys.h" +# include "tamc.h" #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: @@ -104,7 +106,7 @@ SUBROUTINE OBCS_CALC_STEVENS( C gFacM/Z :: switch (0 or 1) that turns on restoring boundary condition C pFac :: switch that turns on/off phase velocity contribution INTEGER bi, bj - INTEGER I, J, K + INTEGER i, j, k c CHARACTER*(MAX_LEN_MBUF) msgBuf _RL cflMer (1-OLy:sNy+OLy,Nr) _RL gFacM (1-OLy:sNy+OLy,Nr) @@ -119,6 +121,9 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef ALLOW_PTRACERS c INTEGER iTracer #endif /* ALLOW_PTRACERS */ +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef CHECK_BALANCE _RL uVelLoc, vVelLoc _RL vPhase @@ -142,23 +147,14 @@ SUBROUTINE OBCS_CALC_STEVENS( DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_OBCS_EAST # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBEt(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE OBEs(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE OBEt(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte +CADJ STORE OBEs(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte # endif IF ( useStevensEast ) THEN C Eastern OB @@ -168,50 +164,50 @@ SUBROUTINE OBCS_CALC_STEVENS( #endif C compute vertical average and deviation from vertical C average for I_obe - DO J=1-OLy,sNy+OLy - I = OB_Ie(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN + DO j=1-OLy,sNy+OLy + i = OB_Ie(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN C first initialize some fields drFbar = 0. _d 0 uMerBar = 0. _d 0 - DO K=1,Nr - uMerPri(K) = 0. _d 0 + DO k=1,Nr + uMerPri(k) = 0. _d 0 ENDDO - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - uMerBar = uMerBar + uVel(I-1,J,K,bi,bj) + uMerBar = uMerBar + uVel(i-1,j,k,bi,bj) #else - uMerBar = uMerBar + OBEuStevens(J,K,bi,bj) + uMerBar = uMerBar + OBEuStevens(j,k,bi,bj) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & *drF(K)* _hFacW(I,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacW(I,J,K,bi,bj) + & *drF(k)* _hFacW(i,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacW(i,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) uMerBar = uMerBar/drFBar - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - uMerPri(K) = (uVel(I-1,J,K,bi,bj)-uMerBar) + uMerPri(k) = (uVel(i-1,j,k,bi,bj)-uMerBar) #else - uMerPri(K) = (OBEuStevens(J,K,bi,bj)-uMerBar) + uMerPri(k) = (OBEuStevens(j,k,bi,bj)-uMerBar) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & * _maskW(I,J,K,bi,bj) + & * _maskW(i,j,k,bi,bj) ENDDO C vertical average of input field drFbar = 0. _d 0 uMerBar = 0. _d 0 - DO K=1,Nr - uMerBar = uMerBar + OBEu(J,K,bi,bj) - & *drF(K)* _hFacW(I,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacW(I,J,K,bi,bj) + DO k=1,Nr + uMerBar = uMerBar + OBEu(j,k,bi,bj) + & *drF(k)* _hFacW(i,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacW(i,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) uMerBar = uMerBar/drFBar C Now the absolute velocity normal to the boundary is C uMerBar + uMerPri(K). - DO K=1,Nr - OBEu(J,K,bi,bj) = (uMerBar + uMerPri(K)) - & * _maskW(I,J,K,bi,bj) + DO k=1,Nr + OBEu(j,k,bi,bj) = (uMerBar + uMerPri(k)) + & * _maskW(i,j,k,bi,bj) CML OBEv(J,K,bi,bj) = 0. _d 0 #ifdef ALLOW_NONHYDROSTATIC - OBEw(J,K,bi,bj)=0. + OBEw(j,k,bi,bj)=0. #endif ENDDO ENDIF @@ -219,41 +215,44 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef NONLIN_FRSURF C this is a bit of a hack IF ( nonlinFreeSurf.GT.0 ) THEN - DO J=1-OLy,sNy+OLy - I = OB_Ie(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - OBEeta(J,bi,bj) = etaN(I-1,J,bi,bj) + DO j=1-OLy,sNy+OLy + i = OB_Ie(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + OBEeta(j,bi,bj) = etaN(i-1,j,bi,bj) ENDIF ENDDO ENDIF #endif /* NONLIN_FRSURF */ C Next, we compute the phase speed correction, which depends on the C tracer! - DO K=1,Nr - DO J=1-OLy,sNy+OLy - I = OB_Ie(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - cflMer(J,K) = 0.5 _d 0 * _dxC(I-1,J,bi,bj)/dTtracerLev(K) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + i = OB_Ie(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + cflMer(j,k) = 0.5 _d 0 * _dxC(i-1,j,bi,bj)/dTtracerLev(k) CML gFacM(J,K) = 0. _d 0 CML IF ( uVel(I,J,K,bi,bj) .LT. 0. _d 0 ) gFacM(J,K) = 1. _d 0 - gFacM(J,K) = ABS(MIN(SIGN(1.D0,uVel(I,J,K,bi,bj)),0.D0)) + gFacM(j,k) = ABS(MIN(SIGN(1.D0,uVel(i,j,k,bi,bj)),0.D0)) ELSE - cflMer(J,K) = 0. _d 0 - gFacM (J,K) = 0. _d 0 + cflMer(j,k) = 0. _d 0 + gFacM (j,k) = 0. _d 0 ENDIF ENDDO ENDDO +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE cflMer, gFacM = comlev1_bibj, key=ikey, kind=isbyte +# endif C theta CALL OBCS_STEVENS_CALC_TRACER_EAST( - U OBEt, - I OBEtStevens, theta, gammat, + U OBEt, + I OBEtStevens, theta, gammat, I uVel, cflMer, gFacM, pFac, aFac, I OB_Ie, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) C salinity CALL OBCS_STEVENS_CALC_TRACER_EAST( - U OBEs, + U OBEs, I OBEsStevens, salt, gammas, I uVel, cflMer, gFacM, pFac, aFac, I OB_Ie, OB_indexNone, bi, bj, @@ -265,8 +264,8 @@ SUBROUTINE OBCS_CALC_STEVENS( CML IF ( usePtracers ) THEN CML DO itracer = 1, PTRACERnumInUse CML CALL OBCS_STEVENS_CALC_TRACER_EAST( -CML O OBEptr (1-OLy,1,1,1,iTracer), -CML I OBEpStevens (1-OLy,1,1,1,iTracer), +CML O OBEptr (1-OLy,1,1,1,iTracer), +CML I OBEpStevens (1-OLy,1,1,1,iTracer), CML I pTracer(1-OLx,1-OLy,1,1,1,iTracer), gammas, CML I uVel, cflMer, gFacM, pFac, aFac, CML I OB_Ie, OB_indexNone, bi, bj, @@ -284,8 +283,8 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef ALLOW_OBCS_WEST # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBWt(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE OBWs(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE OBWt(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte +CADJ STORE OBWs(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte # endif IF ( useStevensWest ) THEN C Western OB @@ -295,50 +294,50 @@ SUBROUTINE OBCS_CALC_STEVENS( #endif C compute vertical average and deviation from vertical C average for I_obw+1 - DO J=1-OLy,sNy+OLy - I = OB_Iw(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN + DO j=1-OLy,sNy+OLy + i = OB_Iw(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN C first initialize some fields drFBar = 0. _d 0 uMerBar = 0. _d 0 - DO K=1,Nr - uMerPri(K) = 0. _d 0 + DO k=1,Nr + uMerPri(k) = 0. _d 0 ENDDO - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - uMerBar = uMerBar + uVel(I+2,J,K,bi,bj) + uMerBar = uMerBar + uVel(i+2,j,k,bi,bj) #else - uMerBar = uMerBar + OBWuStevens(J,K,bi,bj) + uMerBar = uMerBar + OBWuStevens(j,k,bi,bj) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & *drF(K)* _hFacW(I+1,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacW(I+1,J,K,bi,bj) + & *drF(k)* _hFacW(i+1,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacW(i+1,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) uMerBar = uMerBar/drFBar - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - uMerPri(K) = (uVel(I+2,J,K,bi,bj)-uMerBar) + uMerPri(k) = (uVel(i+2,j,k,bi,bj)-uMerBar) #else - uMerPri(K) = (OBWuStevens(J,K,bi,bj)-uMerBar) + uMerPri(k) = (OBWuStevens(j,k,bi,bj)-uMerBar) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & * _maskW(I+1,J,K,bi,bj) + & * _maskW(i+1,j,k,bi,bj) ENDDO C vertical average of input field drFBar = 0. _d 0 uMerBar = 0. _d 0 - DO K=1,Nr - uMerBar = uMerBar + OBWu(J,K,bi,bj) - & *drF(K)* _hFacW(I+1,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacW(I+1,J,K,bi,bj) + DO k=1,Nr + uMerBar = uMerBar + OBWu(j,k,bi,bj) + & *drF(k)* _hFacW(i+1,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacW(i+1,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) uMerBar = uMerBar/drFBar C Now the absolute velocity normal to the boundary is C uMerBar + uMerPri(K). - DO K=1,Nr - OBWu(J,K,bi,bj) = (uMerBar + uMerPri(K)) - & * _maskW(I+1,J,K,bi,bj) + DO k=1,Nr + OBWu(j,k,bi,bj) = (uMerBar + uMerPri(k)) + & * _maskW(i+1,j,k,bi,bj) CML OBWv(J,K,bi,bj) = 0. _d 0 #ifdef ALLOW_NONHYDROSTATIC - OBWw(J,K,bi,bj)=0. + OBWw(j,k,bi,bj)=0. #endif ENDDO ENDIF @@ -346,41 +345,44 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef NONLIN_FRSURF C this is a bit of a hack IF ( nonlinFreeSurf.GT.0 ) THEN - DO J=1-OLy,sNy+OLy - I = OB_Iw(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - OBWeta(J,bi,bj) = etaN(I+1,J,bi,bj) + DO j=1-OLy,sNy+OLy + i = OB_Iw(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + OBWeta(j,bi,bj) = etaN(i+1,j,bi,bj) ENDIF ENDDO ENDIF #endif /* NONLIN_FRSURF */ C Next, we compute the phase speed correction, which depends on the C tracer! - DO K=1,Nr - DO J=1-OLy,sNy+OLy - I = OB_Iw(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - cflMer(J,K) = 0.5 _d 0 * _dxC(I+2,J,bi,bj)/dTtracerLev(K) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + i = OB_Iw(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + cflMer(j,k) = 0.5 _d 0 * _dxC(i+2,j,bi,bj)/dTtracerLev(k) CML gFacM = 0. _d 0 CML IF ( uVel(I+1,J,K,bi,bj) .GT. 0. _d 0 ) gFacM = 1. _d 0 - gFacM(J,K) = ABS(MAX(SIGN(1.D0,uVel(I+1,J,K,bi,bj)),0.D0)) + gFacM(j,k) = ABS(MAX(SIGN(1.D0,uVel(i+1,j,k,bi,bj)),0.D0)) ELSE - cflMer(J,K) = 0. _d 0 - gFacM (J,K) = 0. _d 0 + cflMer(j,k) = 0. _d 0 + gFacM (j,k) = 0. _d 0 ENDIF ENDDO ENDDO +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE cflMer, gFacM = comlev1_bibj, key=ikey, kind=isbyte +# endif C theta CALL OBCS_STEVENS_CALC_TRACER_WEST( - U OBWt, - I OBWtStevens, theta, gammat, + U OBWt, + I OBWtStevens, theta, gammat, I uVel, cflMer, gFacM, pFac, aFac, I OB_Iw, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) C salinity CALL OBCS_STEVENS_CALC_TRACER_WEST( - U OBWs, + U OBWs, I OBWsStevens, salt, gammas, I uVel, cflMer, gFacM, pFac, aFac, I OB_Iw, OB_indexNone, bi, bj, @@ -395,8 +397,8 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef ALLOW_OBCS_NORTH # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBNt(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE OBNs(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE OBNt(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte +CADJ STORE OBNs(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte # endif IF ( useStevensNorth ) THEN C Northern OB @@ -406,50 +408,50 @@ SUBROUTINE OBCS_CALC_STEVENS( #endif C compute vertical average and deviation from vertical C average for J_obn - DO I=1-OLx,sNx+OLx - J = OB_Jn(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN + DO i=1-OLx,sNx+OLx + j = OB_Jn(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN C first initialize some fields drFBar = 0. _d 0 vZonBar = 0. _d 0 - DO K=1,Nr - vZonPri(K) = 0. _d 0 + DO k=1,Nr + vZonPri(k) = 0. _d 0 ENDDO - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - vZonBar = vZonBar + vVel(I,J-1,K,bi,bj) + vZonBar = vZonBar + vVel(i,j-1,k,bi,bj) #else - vZonBar = vZonBar + OBNvStevens(I,K,bi,bj) + vZonBar = vZonBar + OBNvStevens(i,k,bi,bj) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & *drF(K)* _hFacS(I,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacS(I,J,K,bi,bj) + & *drF(k)* _hFacS(i,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacS(i,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) vZonBar = vZonBar/drFBar - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - vZonPri(K) = (vVel(I,J-1,K,bi,bj)-vZonBar) + vZonPri(k) = (vVel(i,j-1,k,bi,bj)-vZonBar) #else - vZonPri(K) = (OBNvStevens(I,K,bi,bj)-vZonBar) + vZonPri(k) = (OBNvStevens(i,k,bi,bj)-vZonBar) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & * _maskS(I,J,K,bi,bj) + & * _maskS(i,j,k,bi,bj) ENDDO C vertical average of input field drFBar = 0. _d 0 vZonBar = 0. _d 0 - DO K=1,Nr - vZonBar = vZonBar + OBNv(I,K,bi,bj) - & *drF(K)* _hFacS(I,J,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacS(I,J,K,bi,bj) + DO k=1,Nr + vZonBar = vZonBar + OBNv(i,k,bi,bj) + & *drF(k)* _hFacS(i,j,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacS(i,j,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) vZonBar = vZonBar/drFBar C Now the absolute velocity normal to the boundary is C vZonBar + vZonPri(K). - DO K=1,Nr - OBNv(I,K,bi,bj) = (vZonBar + vZonPri(K)) - & * _maskS(I,J,K,bi,bj) + DO k=1,Nr + OBNv(i,k,bi,bj) = (vZonBar + vZonPri(k)) + & * _maskS(i,j,k,bi,bj) CML OBNu(I,K,bi,bj) = 0. _d 0 #ifdef ALLOW_NONHYDROSTATIC - OBNw(I,K,bi,bj)=0. + OBNw(i,k,bi,bj)=0. #endif ENDDO ENDIF @@ -457,43 +459,46 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef NONLIN_FRSURF C this is a bit of a hack IF ( nonlinFreeSurf.GT.0 ) THEN - DO I=1-OLx,sNx+OLx - J = OB_Jn(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN - OBNeta(I,bi,bj) = etaN(I,J-1,bi,bj) + DO i=1-OLx,sNx+OLx + j = OB_Jn(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN + OBNeta(i,bi,bj) = etaN(i,j-1,bi,bj) ENDIF ENDDO ENDIF #endif /* NONLIN_FRSURF */ C Next, we compute the phase speed correction, which depends on the C tracer! - DO K=1,Nr - DO I=1-OLx,sNx+OLx - J = OB_Jn(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN - cflZon(I,K) = 0.5 _d 0 * _dyC(I,J-1,bi,bj)/dTtracerLev(K) + DO k=1,Nr + DO i=1-OLx,sNx+OLx + j = OB_Jn(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN + cflZon(i,k) = 0.5 _d 0 * _dyC(i,j-1,bi,bj)/dTtracerLev(k) CML gFacZ(I,K) = 0. _d 0 CML IF ( vVel(I,J,K,bi,bj) .LT. 0. _d 0 ) gFacZ(I,K) = 1. _d 0 - gFacZ(I,K) = ABS(MIN(SIGN(1.D0,vVel(I,J,K,bi,bj)),0.D0)) + gFacZ(i,k) = ABS(MIN(SIGN(1.D0,vVel(i,j,k,bi,bj)),0.D0)) ELSE - cflZon(I,K) = 0. _d 0 - gFacZ (I,K) = 0. _d 0 + cflZon(i,k) = 0. _d 0 + gFacZ (i,k) = 0. _d 0 ENDIF ENDDO ENDDO +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE cflZon, gFacZ = comlev1_bibj, key=ikey, kind=isbyte +# endif C theta CALL OBCS_STEVENS_CALC_TRACER_NORTH( - U OBNt, + U OBNt, I OBNtStevens, theta, gammat, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_Jn, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) C salinity CALL OBCS_STEVENS_CALC_TRACER_NORTH( - U OBNs, + U OBNs, I OBNsStevens, salt, gammas, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_Jn, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -507,8 +512,8 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef ALLOW_OBCS_SOUTH # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBSt(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte -CADJ STORE OBSs(:,:,bi,bj) = comlev1_bibj, key=ikey, byte=isbyte +CADJ STORE OBSt(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte +CADJ STORE OBSs(:,:,bi,bj) = comlev1_bibj, key=ikey, kind=isbyte # endif IF ( useStevensSouth ) THEN C Southern OB @@ -518,50 +523,50 @@ SUBROUTINE OBCS_CALC_STEVENS( #endif C compute vertical average and deviation from vertical C average for J_obs+1 - DO I=1-OLx,sNx+OLx - J = OB_Js(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN + DO i=1-OLx,sNx+OLx + j = OB_Js(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN C first initialize some fields drFBar = 0. _d 0 vZonBar = 0. _d 0 - DO K=1,Nr - vZonPri(K) = 0. _d 0 + DO k=1,Nr + vZonPri(k) = 0. _d 0 ENDDO - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - vZonBar = vZonBar + vVel(I,J+2,K,bi,bj) + vZonBar = vZonBar + vVel(i,j+2,k,bi,bj) #else - vZonBar = vZonBar + OBSvStevens(I,K,bi,bj) + vZonBar = vZonBar + OBSvStevens(i,k,bi,bj) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & *drF(K)* _hFacS(I,J+1,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacS(I,J+1,K,bi,bj) + & *drF(k)* _hFacS(i,j+1,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacS(i,j+1,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) vZonBar = vZonBar/drFBar - DO K=1,Nr + DO k=1,Nr #ifdef OBCS_STEVENS_USE_INTERIOR_VELOCITY - vZonPri(K) = (vVel(I,J+2,K,bi,bj)-vZonBar) + vZonPri(k) = (vVel(i,j+2,k,bi,bj)-vZonBar) #else - vZonPri(K) = (OBSvStevens(I,K,bi,bj)-vZonBar) + vZonPri(k) = (OBSvStevens(i,k,bi,bj)-vZonBar) #endif /* OBCS_STEVENS_USE_INTERIOR_VELOCITY */ - & * _maskS(I,J+1,K,bi,bj) + & * _maskS(i,j+1,k,bi,bj) ENDDO C vertical average of input field drFBar = 0. _d 0 vZonBar = 0. _d 0 - DO K=1,Nr - vZonBar = vZonBar + OBSv(I,K,bi,bj) - & *drF(K)* _hFacS(I,J+1,K,bi,bj) - drFBar = drFBar + drF(K)* _hFacS(I,J+1,K,bi,bj) + DO k=1,Nr + vZonBar = vZonBar + OBSv(i,k,bi,bj) + & *drF(k)* _hFacS(i,j+1,k,bi,bj) + drFBar = drFBar + drF(k)* _hFacS(i,j+1,k,bi,bj) ENDDO IF ( drFBar .GT. 0. _d 0 ) vZonBar = vZonBar/drFBar C Now the absolute velocity normal to the boundary is C vZonBar + vZonPri(K). - DO K=1,Nr - OBSv(I,K,bi,bj) = (vZonBar + vZonPri(K)) - & * _maskS(I,J+1,K,bi,bj) + DO k=1,Nr + OBSv(i,k,bi,bj) = (vZonBar + vZonPri(k)) + & * _maskS(i,j+1,k,bi,bj) CML OBSu(I,K,bi,bj) = 0. _d 0 #ifdef ALLOW_NONHYDROSTATIC - OBSw(I,K,bi,bj)=0. + OBSw(i,k,bi,bj)=0. #endif ENDDO ENDIF @@ -569,43 +574,46 @@ SUBROUTINE OBCS_CALC_STEVENS( #ifdef NONLIN_FRSURF C this is a bit of a hack IF ( nonlinFreeSurf.GT.0 ) THEN - DO I=1-OLx,sNx+OLx - J = OB_Js(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN - OBSeta(I,bi,bj) = etaN(I,J+1,bi,bj) + DO i=1-OLx,sNx+OLx + j = OB_Js(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN + OBSeta(i,bi,bj) = etaN(i,j+1,bi,bj) ENDIF ENDDO ENDIF #endif /* NONLIN_FRSURF */ C Next, we compute the phase speed correction, which depends on the C tracer! - DO K=1,Nr - DO I=1-OLx,sNx+OLx - J = OB_Js(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN - cflZon(I,K) = 0.5 _d 0 * _dyC(I,J+2,bi,bj)/dTtracerLev(K) + DO k=1,Nr + DO i=1-OLx,sNx+OLx + j = OB_Js(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN + cflZon(i,k) = 0.5 _d 0 * _dyC(i,j+2,bi,bj)/dTtracerLev(k) CML gFacZ = 0. _d 0 CML IF ( vVel(I,J+1,K,bi,bj) .GT. 0. _d 0 ) gFacZ = 1. _d 0 - gFacZ(I,K) = ABS(MAX(SIGN(1.D0,vVel(I,J+1,K,bi,bj)),0.D0)) + gFacZ(i,k) = ABS(MAX(SIGN(1.D0,vVel(i,j+1,k,bi,bj)),0.D0)) ELSE - cflZon(I,K) = 0. _d 0 - gFacZ (I,K) = 0. _d 0 + cflZon(i,k) = 0. _d 0 + gFacZ (i,k) = 0. _d 0 ENDIF ENDDO ENDDO +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE cflZon, gFacZ = comlev1_bibj, key=ikey, kind=isbyte +# endif C theta CALL OBCS_STEVENS_CALC_TRACER_SOUTH( - U OBSt, + U OBSt, I OBStStevens, theta, gammat, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_Js, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) C salinity CALL OBCS_STEVENS_CALC_TRACER_SOUTH( - U OBSs, + U OBSs, I OBSsStevens, salt, gammas, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_Js, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -630,17 +638,17 @@ SUBROUTINE OBCS_CALC_STEVENS( uPhase=0. vPhase=0. uVelLoc = 0. - DO J=1-OLy,sNy+OLy + DO j=1-OLy,sNy+OLy uMerBar=0. _d 0 - DO K=1,Nr - I = OB_Ie(J,bi,bj) - IF ( I.EQ.OB_indexNone ) I = 1 - uPhase = uPhase + OBEu(J,K,bi,bj) - & *drF(k)* _hFacW(I,J,K,bi,bj)*dyG(I,J,bi,bj) - I = OB_Iw(J,bi,bj) - IF ( I.EQ.OB_indexNone ) I = 1 - vPhase = vPhase + OBWu(J,K,bi,bj) - & *drF(k)* _hFacW(I+1,J,K,bi,bj)*dyG(I+1,J,bi,bj) + DO k=1,Nr + i = OB_Ie(j,bi,bj) + IF ( i.EQ.OB_indexNone ) i = 1 + uPhase = uPhase + OBEu(j,k,bi,bj) + & *drF(k)* _hFacW(i,j,k,bi,bj)*dyG(i,j,bi,bj) + i = OB_Iw(j,bi,bj) + IF ( i.EQ.OB_indexNone ) i = 1 + vPhase = vPhase + OBWu(j,k,bi,bj) + & *drF(k)* _hFacW(i+1,j,k,bi,bj)*dyG(i+1,j,bi,bj) CML uVelLoc = uVelLoc + uMerPri(J,K) CML & *drF(k)* _hFacW(I+1,J,K,bi,bj)*dyG(I+1,J,bi,bj) CML uMerBar(J)=uMerBar(J) + uMerPri(J,K) @@ -671,9 +679,9 @@ SUBROUTINE OBCS_CALC_STEVENS( C !ROUTINE: OBCS_STEVENS_CALC_TRACER_EAST C !INTERFACE: SUBROUTINE OBCS_STEVENS_CALC_TRACER_EAST( - U OBEf, + U OBEf, I OBE_Stevens, tracer, gammaf, - I uVel, cflMer, gFacM, pFac, aFac, + I uVel, cflMer, gFacM, pFac, aFac, I OB_I, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -703,10 +711,10 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_EAST( _RL cflMer (1-OLy:sNy+OLy,Nr) _RL gFacM (1-OLy:sNy+OLy,Nr) _RL gammaf, pFac, aFac - _RL OBEf (1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL OBE_Stevens (1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL tracer (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL uVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL OBEf (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL OBE_Stevens (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL uVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_OBCS_STEVENS C !LOCAL VARIABLES: @@ -719,27 +727,27 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_EAST( _RL dtracSpace _RL dTracTime CEOP - DO K=1,Nr - DO J=1-OLy,sNy+OLy - I = OB_I(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - dTracSpace = (tracer(I-1,J,K,bi,bj)-tracer(I-2,J,K,bi,bj)) - & * _maskW(I-1,J,K,bi,bj) - dTracTime = (tracer(I-1,J,K,bi,bj)-OBE_Stevens(J,K,bi,bj)) - uPhase = cflMer(J,K) * pFac + DO k=1,Nr + DO j=1-OLy,sNy+OLy + i = OB_I(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + dTracSpace = (tracer(i-1,j,k,bi,bj)-tracer(i-2,j,k,bi,bj)) + & * _maskW(i-1,j,k,bi,bj) + dTracTime = (tracer(i-1,j,k,bi,bj)-OBE_Stevens(j,k,bi,bj)) + uPhase = cflMer(j,k) * pFac IF ( dTracSpace .NE. 0. _d 0 ) THEN - uPhase = MIN( cflMer(J,K), - & MAX( 0.D0, -cflMer(J,K)*dTracTime/dTracSpace ) + uPhase = MIN( cflMer(j,k), + & MAX( 0.D0, -cflMer(j,k)*dTracTime/dTracSpace ) & ) * pFac ENDIF C Compute the tracer tendency here, the tracer will be updated C with a simple Euler forward step in S/R obcs_apply_ts - OBEf(J,K,bi,bj) = _maskW(I,J,K,bi,bj) * ( - & - ( aFac*MAX(0.D0,uVel(I,J,K,bi,bj)) + uPhase ) - & *(tracer(I,J,K,bi,bj)-tracer(I-1,J,K,bi,bj)) - & * _recip_dxC(I,J,bi,bj) - & - gFacM(J,K) * gammaf - & * (tracer(I,J,K,bi,bj)-OBEf(J,K,bi,bj)) ) + OBEf(j,k,bi,bj) = _maskW(i,j,k,bi,bj) * ( + & - ( aFac*MAX(0.D0,uVel(i,j,k,bi,bj)) + uPhase ) + & *(tracer(i,j,k,bi,bj)-tracer(i-1,j,k,bi,bj)) + & * _recip_dxC(i,j,bi,bj) + & - gFacM(j,k) * gammaf + & * (tracer(i,j,k,bi,bj)-OBEf(j,k,bi,bj)) ) ENDIF ENDDO ENDDO @@ -752,9 +760,9 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_EAST( C !ROUTINE: OBCS_STEVENS_CALC_TRACER_WEST C !INTERFACE: SUBROUTINE OBCS_STEVENS_CALC_TRACER_WEST( - U OBWf, + U OBWf, I OBW_Stevens, tracer, gammaf, - I uVel, cflMer, gFacM, pFac, aFac, + I uVel, cflMer, gFacM, pFac, aFac, I OB_I, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -784,10 +792,10 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_WEST( _RL cflMer (1-OLy:sNy+OLy,Nr) _RL gFacM (1-OLy:sNy+OLy,Nr) _RL gammaf, pFac, aFac - _RL OBWf (1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL OBW_Stevens (1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL tracer (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL uVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL OBWf (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL OBW_Stevens (1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL uVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_OBCS_STEVENS C !LOCAL VARIABLES: @@ -801,27 +809,27 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_WEST( _RL dTracTime CEOP - DO K=1,Nr - DO J=1-OLy,sNy+OLy - I = OB_I(J,bi,bj) - IF ( I.NE.OB_indexNone ) THEN - dTracSpace = (tracer(I+2,J,K,bi,bj)-tracer(I+1,J,K,bi,bj)) - & * _maskW(I+2,J,K,bi,bj) - dTracTime = (tracer(I+1,J,K,bi,bj)-OBW_Stevens(J,K,bi,bj)) - uPhase = -cflMer(J,K) * pFac + DO k=1,Nr + DO j=1-OLy,sNy+OLy + i = OB_I(j,bi,bj) + IF ( i.NE.OB_indexNone ) THEN + dTracSpace = (tracer(i+2,j,k,bi,bj)-tracer(i+1,j,k,bi,bj)) + & * _maskW(i+2,j,k,bi,bj) + dTracTime = (tracer(i+1,j,k,bi,bj)-OBW_Stevens(j,k,bi,bj)) + uPhase = -cflMer(j,k) * pFac IF ( dTracSpace .NE. 0. _d 0 ) THEN - uPhase = MAX( -cflMer(J,K), - & MIN( 0.D0, -cflMer(J,K)*dTracTime/dTracSpace ) + uPhase = MAX( -cflMer(j,k), + & MIN( 0.D0, -cflMer(j,k)*dTracTime/dTracSpace ) & ) * pFac ENDIF C Compute the tracer tendency here, the tracer will be updated C with a simple Euler forward step in S/R obcs_apply_ts - OBWf(J,K,bi,bj) = _maskW(I+1,J,K,bi,bj) * ( - & - ( aFac*MIN(0.D0,uVel(I+1,J,K,bi,bj)) + uPhase ) - & *(tracer(I+1,J,K,bi,bj)-tracer(I,J,K,bi,bj)) - & * _recip_dxC(I+1,J,bi,bj) - & - gFacM(J,K) * gammaf - & * (tracer(I,J,K,bi,bj)-OBWf(J,K,bi,bj)) ) + OBWf(j,k,bi,bj) = _maskW(i+1,j,k,bi,bj) * ( + & - ( aFac*MIN(0.D0,uVel(i+1,j,k,bi,bj)) + uPhase ) + & *(tracer(i+1,j,k,bi,bj)-tracer(i,j,k,bi,bj)) + & * _recip_dxC(i+1,j,bi,bj) + & - gFacM(j,k) * gammaf + & * (tracer(i,j,k,bi,bj)-OBWf(j,k,bi,bj)) ) ENDIF ENDDO ENDDO @@ -834,9 +842,9 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_WEST( C !ROUTINE: OBCS_STEVENS_CALC_TRACER_NORTH C !INTERFACE: SUBROUTINE OBCS_STEVENS_CALC_TRACER_NORTH( - U OBNf, + U OBNf, I OBN_Stevens, tracer, gammaf, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_J, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -866,10 +874,10 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_NORTH( _RL cflZon (1-OLx:sNx+OLx,Nr) _RL gFacZ (1-OLx:sNx+OLx,Nr) _RL gammaf, pFac, aFac - _RL OBNf (1-Olx:sNx+Olx,Nr,nSx,nSy) - _RL OBN_Stevens (1-Olx:sNx+Olx,Nr,nSx,nSy) - _RL tracer (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL vVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL OBNf (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL OBN_Stevens (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL vVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_OBCS_STEVENS C !LOCAL VARIABLES: @@ -882,28 +890,28 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_NORTH( _RL dtracSpace _RL dTracTime CEOP - DO K=1,Nr - DO I=1-OLx,sNx+OLx - J = OB_J(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN + DO k=1,Nr + DO i=1-OLx,sNx+OLx + j = OB_J(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN C Theta first: - dTracSpace = (tracer(I,J-1,K,bi,bj)-tracer(I,J-2,K,bi,bj)) - & * _maskS(I,J-1,K,bi,bj) - dTracTime = (tracer(I,J-1,K,bi,bj)-OBN_Stevens(I,K,bi,bj)) - vPhase = cflZon(I,K) * pFac + dTracSpace = (tracer(i,j-1,k,bi,bj)-tracer(i,j-2,k,bi,bj)) + & * _maskS(i,j-1,k,bi,bj) + dTracTime = (tracer(i,j-1,k,bi,bj)-OBN_Stevens(i,k,bi,bj)) + vPhase = cflZon(i,k) * pFac IF ( dTracSpace .NE. 0. _d 0 ) THEN - vPhase = MIN( cflZon(I,K), - & MAX( 0.D0, -cflZon(I,K)*dTracTime/dTracSpace ) + vPhase = MIN( cflZon(i,k), + & MAX( 0.D0, -cflZon(i,k)*dTracTime/dTracSpace ) & ) * pFac ENDIF C Compute the tracer tendency here, the tracer will be updated C with a simple Euler forward step in S/R obcs_apply_ts - OBNf(I,K,bi,bj) = _maskS(I,J,K,bi,bj) * ( - & - ( aFac*MAX(0.D0,vVel(I,J,K,bi,bj)) + vPhase ) - & *(tracer(I,J,K,bi,bj)-tracer(I,J-1,K,bi,bj)) - & * _recip_dyC(I,J,bi,bj) - & - gFacZ(I,K) * gammaf - & * (tracer(I,J,K,bi,bj)-OBNf(I,K,bi,bj)) ) + OBNf(i,k,bi,bj) = _maskS(i,j,k,bi,bj) * ( + & - ( aFac*MAX(0.D0,vVel(i,j,k,bi,bj)) + vPhase ) + & *(tracer(i,j,k,bi,bj)-tracer(i,j-1,k,bi,bj)) + & * _recip_dyC(i,j,bi,bj) + & - gFacZ(i,k) * gammaf + & * (tracer(i,j,k,bi,bj)-OBNf(i,k,bi,bj)) ) ENDIF ENDDO ENDDO @@ -916,9 +924,9 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_NORTH( C !ROUTINE: OBCS_STEVENS_CALC_TRACER_SOUTH C !INTERFACE: SUBROUTINE OBCS_STEVENS_CALC_TRACER_SOUTH( - U OBSf, + U OBSf, I OBS_Stevens, tracer, gammaf, - I vVel, cflZon, gFacZ, pFac, aFac, + I vVel, cflZon, gFacZ, pFac, aFac, I OB_J, OB_indexNone, bi, bj, I futureTime, futureIter, I myThid ) @@ -948,10 +956,10 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_SOUTH( _RL cflZon (1-OLx:sNx+OLx,Nr) _RL gFacZ (1-OLx:sNx+OLx,Nr) _RL gammaf, pFac, aFac - _RL OBSf (1-Olx:sNx+Olx,Nr,nSx,nSy) - _RL OBS_Stevens (1-Olx:sNx+Olx,Nr,nSx,nSy) - _RL tracer (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL vVel (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL OBSf (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL OBS_Stevens (1-OLx:sNx+OLx,Nr,nSx,nSy) + _RL tracer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL vVel (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) #ifdef ALLOW_OBCS_STEVENS C !LOCAL VARIABLES: @@ -964,27 +972,27 @@ SUBROUTINE OBCS_STEVENS_CALC_TRACER_SOUTH( _RL dtracSpace _RL dTracTime CEOP - DO K=1,Nr - DO I=1-OLx,sNx+OLx - J = OB_J(I,bi,bj) - IF ( J.NE.OB_indexNone ) THEN - dTracSpace = (tracer(I,J+2,K,bi,bj)-tracer(I,J+1,K,bi,bj)) - & * _maskS(I,J+2,K,bi,bj) - dTracTime = (tracer(I,J+1,K,bi,bj)-OBS_Stevens(I,K,bi,bj)) - vPhase = -cflZon(I,K) * pFac + DO k=1,Nr + DO i=1-OLx,sNx+OLx + j = OB_J(i,bi,bj) + IF ( j.NE.OB_indexNone ) THEN + dTracSpace = (tracer(i,j+2,k,bi,bj)-tracer(i,j+1,k,bi,bj)) + & * _maskS(i,j+2,k,bi,bj) + dTracTime = (tracer(i,j+1,k,bi,bj)-OBS_Stevens(i,k,bi,bj)) + vPhase = -cflZon(i,k) * pFac IF ( dTracSpace .NE. 0. _d 0 ) THEN - vPhase = MAX( -cflZon(I,K), - & MIN( 0.D0, -cflZon(I,K)*dTracTime/dTracSpace ) + vPhase = MAX( -cflZon(i,k), + & MIN( 0.D0, -cflZon(i,k)*dTracTime/dTracSpace ) & ) * pFac ENDIF C Compute the tracer tendency here, the tracer will be updated C with a simple Euler forward step in S/R obcs_apply_ts - OBSf(I,K,bi,bj) = _maskS(I,J+1,K,bi,bj) * ( - & - ( aFac*MIN(0.D0,vVel(I,J+1,K,bi,bj)) + vPhase ) - & *(tracer(I,J+1,K,bi,bj)-tracer(I,J,K,bi,bj)) - & * _recip_dyC(I,J+1,bi,bj) - & - gFacZ(I,K) * gammaf - & * (tracer(I,J,K,bi,bj)-OBSf(I,K,bi,bj)) ) + OBSf(i,k,bi,bj) = _maskS(i,j+1,k,bi,bj) * ( + & - ( aFac*MIN(0.D0,vVel(i,j+1,k,bi,bj)) + vPhase ) + & *(tracer(i,j+1,k,bi,bj)-tracer(i,j,k,bi,bj)) + & * _recip_dyC(i,j+1,bi,bj) + & - gFacZ(i,k) * gammaf + & * (tracer(i,j,k,bi,bj)-OBSf(i,k,bi,bj)) ) ENDIF ENDDO ENDDO @@ -1033,9 +1041,9 @@ SUBROUTINE OBCS_STEVENS_SAVE_TRACERS( #ifdef ALLOW_OBCS_STEVENS C !LOCAL VARIABLES: -C bi, bj :: indices of current tile -C i,j,k :: loop indices -C Iobc,Jobc :: position-index of open boundary +C bi, bj :: indices of current tile +C i,j,k :: loop indices +C Iobc, Jobc :: position-index of open boundary INTEGER bi,bj,i,j,k,Iobc,Jobc CEOP diff --git a/pkg/obcs/obcs_check.F b/pkg/obcs/obcs_check.F index cd81d98f85..f07d837dae 100644 --- a/pkg/obcs/obcs_check.F +++ b/pkg/obcs/obcs_check.F @@ -78,9 +78,17 @@ SUBROUTINE OBCS_CHECK( myThid ) ENDIF #endif /* ALLOW_OBCS_BALANCE */ - WRITE(msgBuf,'(A)') 'OBCS_CHECK: start summary:' + WRITE(msgBuf,'(A)') + &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) - + WRITE(msgBuf,'(A)') '// OBCS_CHECK: OBCS configuration summary' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') + &'// =======================================================' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') ' ' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) +C CALL WRITE_0D_L( useOBCSprescribe, INDEX_NONE, & 'useOBCSprescribe =', ' /* prescribe OB values */') CALL WRITE_0D_L( useOBCSbalance, INDEX_NONE, @@ -101,6 +109,10 @@ SUBROUTINE OBCS_CHECK( myThid ) & 'OBCS_balanceFacW =', & ' /* Western OB Factor for balancing OB flow [-] */') ENDIF +C + CALL WRITE_0D_L( OBCSfixTopo, INDEX_NONE, + & 'OBCSfixTopo =', + & ' /* mod. topo to have zero gradient across boundaries. */') CALL WRITE_0D_RL( OBCS_uvApplyFac, INDEX_NONE, & 'OBCS_uvApplyFac =', & ' /* Factor to apply to U,V 2nd column/row */') @@ -118,10 +130,84 @@ SUBROUTINE OBCS_CHECK( myThid ) & 'OBCS_monitorFreq =', ' /* monitor output frequency [s] */') CALL WRITE_0D_I( OBCS_monSelect, INDEX_NONE, 'OBCS_monSelect =', & ' /* select group of variables to monitor */') + CALL WRITE_0D_L( OBCSprintDiags, INDEX_NONE, + & 'OBCSprintDiags =', ' /* print some OBCS diagnostics. */') +C CALL WRITE_0D_L( useOBCStides, INDEX_NONE, & 'useOBCStides =', ' /* apply tidal forcing through OB */') CALL WRITE_1D_RL( tidalPeriod, tidalComponents, INDEX_I, & 'tidalPeriod = ', ' /* (s) */') +C + CALL WRITE_0D_L( useOrlanskiNorth, INDEX_NONE, + & 'useOrlanskiNorth =', ' /* use Orlanski for northern bound. */') + CALL WRITE_0D_L( useOrlanskiSouth, INDEX_NONE, + & 'useOrlanskiSouth =', ' /* use Orlanski for southern bound. */') + CALL WRITE_0D_L( useOrlanskiEast, INDEX_NONE, + & 'useOrlanskiEast =', ' /* use Orlanski for eastern bound. */') + CALL WRITE_0D_L( useOrlanskiWest, INDEX_NONE, + & 'useOrlanskiWest =', ' /* use Orlanski for western bound. */') +C + CALL WRITE_0D_L( useStevensNorth, INDEX_NONE, + & 'useStevensNorth =', ' /* use Stevens for northern bound. */') + CALL WRITE_0D_L( useStevensSouth, INDEX_NONE, + & 'useStevensSouth =', ' /* use Stevens for southern bound. */') + CALL WRITE_0D_L( useStevensEast, INDEX_NONE, + & 'useStevensEast =', ' /* use Stevens for eastern bound. */') + CALL WRITE_0D_L( useStevensWest, INDEX_NONE, + & 'useStevensWest =', ' /* use Stevens for western bound. */') + CALL WRITE_0D_L( useStevensPhaseVel, INDEX_NONE, + & 'useStevensPhaseVel =', ' /* include phase vel. term. */') + CALL WRITE_0D_L( useStevensAdvection, INDEX_NONE, + & 'useStevensAdvection =', ' /* include advection term. */') + CALL WRITE_0D_RS( TrelaxStevens, INDEX_NONE, + & 'TrelaxStevens =', + & ' /* relaxation time scale for theta ( s ). */') + CALL WRITE_0D_RS( SrelaxStevens, INDEX_NONE, + & 'SrelaxStevens =', + & ' /* relaxation time scale for salinity ( s ). */') +C + CALL WRITE_0D_L( useOBCSsponge, INDEX_NONE, + & 'useOBCSSponge =', ' /* use sponge along boundaries */') + IF ( useOBCSSponge ) THEN + CALL WRITE_0D_L( OBCSsponge_N, INDEX_NONE, + & 'OBCSSponge_N =', ' /* use sponge for northern boundary */') + CALL WRITE_0D_L( OBCSsponge_S, INDEX_NONE, + & 'OBCSSponge_S =', ' /* use sponge for southern boundary */') + CALL WRITE_0D_L( OBCSsponge_E, INDEX_NONE, + & 'OBCSSponge_E =', ' /* use sponge for eastern boundary */') + CALL WRITE_0D_L( OBCSsponge_W, INDEX_NONE, + & 'OBCSSponge_W =', ' /* use sponge for western boundary */') + CALL WRITE_0D_L( OBCSsponge_UatNS, INDEX_NONE, + & 'OBCSSponge_UatNS =', ' /* use u-vel. sponge at N/S bound. */') + CALL WRITE_0D_L( OBCSsponge_UatEW, INDEX_NONE, + & 'OBCSSponge_UatEW =', ' /* use u-vel. sponge at E/W bound. */') + CALL WRITE_0D_L( OBCSsponge_VatNS, INDEX_NONE, + & 'OBCSSponge_VatNS =', ' /* use v-vel. sponge at N/S bound. */') + CALL WRITE_0D_L( OBCSsponge_UatEW, INDEX_NONE, + & 'OBCSSponge_VatEW =', ' /* use v-vel. sponge at E/W bound. */') + CALL WRITE_0D_L( OBCSsponge_Theta, INDEX_NONE, + & 'OBCSSponge_Theta =', ' /* use sponge for Theta. */') + CALL WRITE_0D_L( OBCSsponge_Salt, INDEX_NONE, + & 'OBCSSponge_Salt =', ' /* use sponge for salinity. */') + CALL WRITE_0D_L( useLinearSponge, INDEX_NONE, + & 'useLinearSponge =', ' /* use linear sponge. */') + CALL WRITE_0D_I( spongeThickness, INDEX_NONE, + & 'spongeThickness =', + & ' /* number grid points in sponge */') + CALL WRITE_0D_RS( Urelaxobcsinner, INDEX_NONE, + & 'Urelaxobcsinner =', + & ' /* innermost relaxation time scale, u-velocity ( s ). */') + CALL WRITE_0D_RS( Urelaxobcsbound, INDEX_NONE, + & 'Urelaxobcsbound =', + & ' /* boudnary relaxation time scale, u-velocity ( s ). */') + CALL WRITE_0D_RS( Vrelaxobcsinner, INDEX_NONE, + & 'Vrelaxobcsinner =', + & ' /* innermost relaxation time scale, v-velocity ( s ). */') + CALL WRITE_0D_RS( Vrelaxobcsbound, INDEX_NONE, + & 'Vrelaxobcsbound =', + & ' /* boundary relaxation time scale, v-velocity ( s ). */') + ENDIF +C ln = ILNBLNK(insideOBmaskFile) IF ( ln.GT.0 ) THEN CALL WRITE_0D_C( insideOBmaskFile, ln, INDEX_NONE, @@ -157,7 +243,15 @@ SUBROUTINE OBCS_CHECK( myThid ) ENDDO ENDIF - WRITE(msgBuf,'(A)') 'OBCS_CHECK: end summary.' + WRITE(msgBuf,'(A)') + &'// =======================================================' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') '// End of OBCS config. summary' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') + &'// =======================================================' + CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') ' ' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) _END_MASTER(myThid) diff --git a/pkg/obcs/obcs_exf_load.F b/pkg/obcs/obcs_exf_load.F index 22f1d1e780..b0e2d49776 100644 --- a/pkg/obcs/obcs_exf_load.F +++ b/pkg/obcs/obcs_exf_load.F @@ -287,7 +287,19 @@ SUBROUTINE OBCS_EXF_READ_XZ ( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +# endif /* ALLOW_CAL */ + ELSEIF ( useCal .AND. obcsPeriod .EQ. -1. _d 0 ) THEN +C- obcsPeriod=-1 means fields are monthly means. +C With useYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month obcsStartTime falls in. +# ifdef ALLOW_CAL + CALL EXF_GetMonthsRec( + I obcsStartTime, useYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, I myTime, myIter, myThid ) # endif /* ALLOW_CAL */ ELSEIF ( obcsPeriod .LT. 0. _d 0 ) THEN @@ -367,9 +379,21 @@ SUBROUTINE OBCS_EXF_READ_XZ ( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, I myTime, myIter, myThid ) # endif /* ALLOW_CAL */ + ELSEIF ( useCal .AND. siobPeriod .EQ. -1. _d 0 ) THEN +C- siobPeriod=-1 means fields are monthly means. +C With useYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month siobStartTime falls in. +# ifdef ALLOW_CAL + CALL EXF_GetMonthsRec( + I siobStartTime, useYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +# endif /* ALLOW_CAL */ ELSEIF ( siobPeriod .LT. 0. _d 0 ) THEN WRITE(msgBuf,'(A,1PE16.8,3A)') & 'OBCS_EXF_READ_XZ: Invalid siobPeriod=', siobPeriod, @@ -562,7 +586,19 @@ SUBROUTINE OBCS_EXF_READ_YZ ( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +# endif /* ALLOW_CAL */ + ELSEIF ( useCal .AND. obcsPeriod .EQ. -1. _d 0 ) THEN +C- obcsPeriod=-1 means fields are monthly means. +C With useYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month obcsStartTime falls in. +# ifdef ALLOW_CAL + CALL EXF_GetMonthsRec( + I obcsStartTime, useYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, I myTime, myIter, myThid ) # endif /* ALLOW_CAL */ ELSEIF ( obcsPeriod .LT. 0. _d 0 ) THEN @@ -642,9 +678,21 @@ SUBROUTINE OBCS_EXF_READ_YZ ( C records, corresponding to Jan. (rec=1) through Dec. (rec=12) CALL cal_GetMonthsRec( O fac, first, changed, - O count0, count1, + O count0, count1, year0, year1, I myTime, myIter, myThid ) # endif /* ALLOW_CAL */ + ELSEIF ( useCal .AND. siobPeriod .EQ. -1. _d 0 ) THEN +C- siobPeriod=-1 means fields are monthly means. +C With useYearlyFields=.TRUE., each yearly input file contains +C 12 monthly mean records. Otherwise, a single input file contains +C monthly mean records starting at the month siobStartTime falls in. +# ifdef ALLOW_CAL + CALL EXF_GetMonthsRec( + I siobStartTime, useYearlyFields, + O fac, first, changed, + O count0, count1, year0, year1, + I myTime, myIter, myThid ) +# endif /* ALLOW_CAL */ ELSEIF ( siobPeriod .LT. 0. _d 0 ) THEN WRITE(msgBuf,'(A,1PE16.8,3A)') & 'OBCS_EXF_READ_YZ: Invalid siobPeriod=', siobPeriod, diff --git a/pkg/obcs/obcs_prescribe_read.F b/pkg/obcs/obcs_prescribe_read.F index fa892a382a..05f4e741bf 100644 --- a/pkg/obcs/obcs_prescribe_read.F +++ b/pkg/obcs/obcs_prescribe_read.F @@ -1,4 +1,4 @@ -# include "OBCS_OPTIONS.h" +#include "OBCS_OPTIONS.h" CBOP C !ROUTINE: OBCS_PRESCRIBE_READ @@ -10,9 +10,9 @@ SUBROUTINE OBCS_PRESCRIBE_READ ( C *============================================================* C | SUBROUTINE OBCS_PRESCRIBE_READ C *============================================================* -C | read open boundary conditions from file -C | N.B.: * uses exf and cal routines for file/record handling -C | * uses ctrl routines for control variable handling +C | read open boundary conditions from file +C | N.B.: * uses exf and cal routines for file/record handling +C | * uses ctrl routines for control variable handling C *============================================================* C \ev @@ -51,26 +51,6 @@ SUBROUTINE OBCS_PRESCRIBE_READ ( cph#endif ENDIF -#ifdef ALLOW_CTRL - -# ifdef ALLOW_OBCSN_CONTROL - if (useCTRL) CALL CTRL_GETOBCSN ( myTime, myIter, mythid ) -# endif - -# ifdef ALLOW_OBCSS_CONTROL - if (useCTRL) CALL CTRL_GETOBCSS ( myTime, myIter, mythid ) -# endif - -# ifdef ALLOW_OBCSW_CONTROL - if (useCTRL) CALL CTRL_GETOBCSW ( myTime, myIter, myThid ) -# endif - -# ifdef ALLOW_OBCSE_CONTROL - if (useCTRL) CALL CTRL_GETOBCSE ( myTime, myIter, myThid ) -# endif - -#endif /* ALLOW_CTRL */ - #endif /* ALLOW_OBCS_PRESCRIBE */ RETURN diff --git a/pkg/obcs/obcs_sponge.F b/pkg/obcs/obcs_sponge.F index 83c61b75bd..5fecba40cc 100644 --- a/pkg/obcs/obcs_sponge.F +++ b/pkg/obcs/obcs_sponge.F @@ -419,10 +419,6 @@ SUBROUTINE OBCS_SPONGE_T( #include "OBCS_PARAMS.h" #include "OBCS_GRID.h" #include "OBCS_FIELDS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# include "tamc_keys.h" -#endif C == Routine arguments == C gT_arr :: the tendency array @@ -446,26 +442,9 @@ SUBROUTINE OBCS_SPONGE_T( IF ( useOBCSsponge .AND. spongeThickness.NE.0 ) THEN -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 - kkey = (ikey-1)*Nr + k -#endif /* ALLOW_AUTODIFF_TAMC */ - C Northern Open Boundary #ifdef ALLOW_OBCS_NORTH IF ( OBCSsponge_N .AND. OBCSsponge_Theta ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBNt(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO i=iMin,iMax IF ( OB_Jn(i,bi,bj).NE.OB_indexNone ) THEN DO jsl= 1,spongeThickness @@ -503,9 +482,6 @@ SUBROUTINE OBCS_SPONGE_T( C Southern Open Boundary #ifdef ALLOW_OBCS_SOUTH IF ( OBCSsponge_S .AND. OBCSsponge_Theta ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBSt(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO i=iMin,iMax IF ( OB_Js(i,bi,bj).NE.OB_indexNone ) THEN DO jsl= 1,spongeThickness @@ -543,9 +519,6 @@ SUBROUTINE OBCS_SPONGE_T( C Eastern Open Boundary #ifdef ALLOW_OBCS_EAST IF ( OBCSsponge_E .AND. OBCSsponge_Theta ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBEt(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO j=jMin,jMax IF ( OB_Ie(j,bi,bj).NE.OB_indexNone ) THEN DO isl= 1,spongeThickness @@ -583,9 +556,6 @@ SUBROUTINE OBCS_SPONGE_T( C Western Open Boundary #ifdef ALLOW_OBCS_WEST IF ( OBCSsponge_W .AND. OBCSsponge_Theta ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBWt(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO j=jMin,jMax IF ( OB_Iw(j,bi,bj).NE.OB_indexNone ) THEN DO isl= 1,spongeThickness @@ -651,10 +621,6 @@ SUBROUTINE OBCS_SPONGE_S( #include "OBCS_PARAMS.h" #include "OBCS_GRID.h" #include "OBCS_FIELDS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# include "tamc_keys.h" -#endif C == Routine arguments == C gS_arr :: the tendency array @@ -678,26 +644,9 @@ SUBROUTINE OBCS_SPONGE_S( IF ( useOBCSsponge .AND. spongeThickness.NE.0 ) THEN -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 - kkey = (ikey-1)*Nr + k -#endif /* ALLOW_AUTODIFF_TAMC */ - C Northern Open Boundary #ifdef ALLOW_OBCS_NORTH IF ( OBCSsponge_N .AND. OBCSsponge_Salt ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBNs(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO i=iMin,iMax IF ( OB_Jn(i,bi,bj).NE.OB_indexNone ) THEN DO jsl= 1,spongeThickness @@ -735,9 +684,6 @@ SUBROUTINE OBCS_SPONGE_S( C Southern Open Boundary #ifdef ALLOW_OBCS_SOUTH IF ( OBCSsponge_S .AND. OBCSsponge_Salt ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBSs(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO i=iMin,iMax IF ( OB_Js(i,bi,bj).NE.OB_indexNone ) THEN DO jsl= 1,spongeThickness @@ -775,9 +721,6 @@ SUBROUTINE OBCS_SPONGE_S( C Eastern Open Boundary #ifdef ALLOW_OBCS_EAST IF ( OBCSsponge_E .AND. OBCSsponge_Salt ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBEs(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO j=jMin,jMax IF ( OB_Ie(j,bi,bj).NE.OB_indexNone ) THEN DO isl= 1,spongeThickness @@ -815,9 +758,6 @@ SUBROUTINE OBCS_SPONGE_S( C Western Open Boundary #ifdef ALLOW_OBCS_WEST IF ( OBCSsponge_W .AND. OBCSsponge_Salt ) THEN -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE OBWs(:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte -#endif DO j=jMin,jMax IF ( OB_Iw(j,bi,bj).NE.OB_indexNone ) THEN DO isl= 1,spongeThickness diff --git a/pkg/ocn_compon_interf/CPL_TAVE.h b/pkg/ocn_compon_interf/CPL_TAVE.h index 1a501f1296..b1126a95ce 100644 --- a/pkg/ocn_compon_interf/CPL_TAVE.h +++ b/pkg/ocn_compon_interf/CPL_TAVE.h @@ -25,11 +25,11 @@ C QSWtave :: Net shortwave heat flux [W/m2, +=upward] C TXtave :: Surface stress [Pa=N/m2], zonal compon. C TYtave :: Surface stress [Pa=N/m2], merid compon. C FWtave :: Net fresh water flux (=E-P-R) [kg/m2/s, +=upward] -C SFxtave :: Salt flux (from sea-ice) [psu.kg/m2/s, +=upward] +C SFxtave :: Salt flux (from sea-ice) [g/m2/s, +=upward] C SICtave :: Sea-ice mass [kg/m2] C MXLtave :: Ocean mixed-layer depth [m] C SSTtave :: Ocean surface temperature [oC] -C SSStave :: Ocean surface salinity [psu] +C SSStave :: Ocean surface salinity [g/kg] C vSqtave :: Ocean surface velocity square [m2/s2] C aC02tave :: CO2 level in atm [parts by volume] C sWSpdtave :: Surface wind speed [m/s] diff --git a/pkg/ocn_compon_interf/OCNCPL.h b/pkg/ocn_compon_interf/OCNCPL.h index 2e8b683cdf..88c6ba3998 100644 --- a/pkg/ocn_compon_interf/OCNCPL.h +++ b/pkg/ocn_compon_interf/OCNCPL.h @@ -96,7 +96,7 @@ C COMMON /OCN_OCN2CPL_R/ C ocMxlD2cpl :: Ocean mixed-layer depth exported to coupler (m) C SSTocn2cpl :: Ocean surface temperature map exported to C coupling layer (oC). -C SSSocn2cpl :: Ocean surface salinity exported to coupler (psu) +C SSSocn2cpl :: Ocean surface salinity exported to coupler (g/kg) C vSqocn2cpl :: Ocean surface velocity square exported to C coupler (m2/s2) diff --git a/pkg/ocn_compon_interf/cpl_init_fixed.F b/pkg/ocn_compon_interf/cpl_init_fixed.F index 005dcb267b..e106632cc3 100644 --- a/pkg/ocn_compon_interf/cpl_init_fixed.F +++ b/pkg/ocn_compon_interf/cpl_init_fixed.F @@ -58,7 +58,7 @@ SUBROUTINE CPL_INIT_FIXED( myThid ) CALL MNC_CW_ADD_VNAME('SFxtave','Cen_xy_Hn__-__t',3,4,myThid) CALL MNC_CW_ADD_VATTR_TEXT('SFxtave','long_name', & 'salt flux from sea-ice', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('SFxtave','units','psu.kg/m^2/s', + CALL MNC_CW_ADD_VATTR_TEXT('SFxtave','units','g/m^2/s', & myThid) CALL MNC_CW_ADD_VNAME('SICtave','Cen_xy_Hn__-__t',3,4,myThid) @@ -79,7 +79,7 @@ SUBROUTINE CPL_INIT_FIXED( myThid ) CALL MNC_CW_ADD_VNAME('SSStave','Cen_xy_Hn__-__t',3,4,myThid) CALL MNC_CW_ADD_VATTR_TEXT('SSStave','long_name', & 'ocean surface salinity', myThid) - CALL MNC_CW_ADD_VATTR_TEXT('SSStave','units','psu', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('SSStave','units','g/kg', myThid) CALL MNC_CW_ADD_VNAME('vSqtave','Cen_xy_Hn__-__t',3,4,myThid) CALL MNC_CW_ADD_VATTR_TEXT('vSqtave','long_name', diff --git a/pkg/offline/offline_fields_load.F b/pkg/offline/offline_fields_load.F index a818afbcfa..b066a6e63e 100644 --- a/pkg/offline/offline_fields_load.F +++ b/pkg/offline/offline_fields_load.F @@ -1,4 +1,7 @@ #include "OFFLINE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: OFFLINE_FIELDS_LOAD @@ -36,7 +39,6 @@ SUBROUTINE OFFLINE_FIELDS_LOAD( myTime, myIter, myThid ) #include "FFIELDS.h" #ifdef ALLOW_GMREDI #include "GMREDI.h" -#include "GMREDI_TAVE.h" #endif #ifdef ALLOW_KPP #include "KPP.h" @@ -247,7 +249,7 @@ SUBROUTINE OFFLINE_FIELDS_LOAD( myTime, myIter, myThid ) _EXCH_XYZ_RS(gmkz0, myThid ) _EXCH_XYZ_RS(gmkz1, myThid ) ENDIF -#endif +#endif /* ALLOW_GMREDI */ IF ( ConvFile .NE. ' ' ) THEN I1=IFNBLNK(ConvFile) @@ -290,7 +292,7 @@ SUBROUTINE OFFLINE_FIELDS_LOAD( myTime, myIter, myThid ) _EXCH_XYZ_RS(kght0, myThid ) _EXCH_XYZ_RS(kght1, myThid ) ENDIF -#endif +#endif /* ALLOW_KPP */ C-- Read in 2-D fields and apply EXCH diff --git a/pkg/offline/offline_get_diffus.F b/pkg/offline/offline_get_diffus.F index a2b41bc5f8..eabf499836 100644 --- a/pkg/offline/offline_get_diffus.F +++ b/pkg/offline/offline_get_diffus.F @@ -1,9 +1,12 @@ #include "OFFLINE_OPTIONS.h" #ifdef ALLOW_DIC -#include "DIC_OPTIONS.h" +# include "DIC_OPTIONS.h" #endif #ifdef ALLOW_DARWIN -#include "DARWIN_OPTIONS.h" +# include "DARWIN_OPTIONS.h" +#endif +#ifdef ALLOW_GMREDI +# include "GMREDI_OPTIONS.h" #endif CBOP @@ -107,11 +110,15 @@ SUBROUTINE OFFLINE_GET_DIFFUS( myTime, myIter, myThid ) & + aWght*gmky1(i,j,k,bi,bj) Kwz(i,j,k,bi,bj) = bWght*gmkz0(i,j,k,bi,bj) & + aWght*gmkz1(i,j,k,bi,bj) +#ifndef GM_NON_UNITY_DIAGONAL + Kux(i,j,k,bi,bj) = GM_isopycK + Kvy(i,j,k,bi,bj) = GM_isopycK +#endif ENDDO ENDDO ENDDO ENDIF -#endif +#endif /* ALLOW_GMREDI */ #ifdef ALLOW_KPP IF ( offlineLoadKPP ) THEN DO k=1,Nr @@ -127,7 +134,7 @@ SUBROUTINE OFFLINE_GET_DIFFUS( myTime, myIter, myThid ) ENDDO ENDDO ENDIF -#endif +#endif /* ALLOW_KPP */ C-- Interpolate surface forcing #if ( (defined ALLOW_DIC) || (defined ALLOW_DARWIN) ) diff --git a/pkg/openad/OPENAD_OPTIONS.h b/pkg/openad/OPENAD_OPTIONS.h index 9f673319dc..7bf8adb2ff 100644 --- a/pkg/openad/OPENAD_OPTIONS.h +++ b/pkg/openad/OPENAD_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef OPENAD_OPTIONS_H +#define OPENAD_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + CBOP C !ROUTINE: OPENAD_OPTIONS.h C !INTERFACE: @@ -10,16 +15,14 @@ C | Control which optional features to compile in this package code. C *==================================================================* CEOP -#ifndef OPENAD_OPTIONS_H -#define OPENAD_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_OPENAD #undef ALLOW_OPENAD_ACTIVE_READ_XY #undef ALLOW_OPENAD_ACTIVE_READ_XYZ #undef ALLOW_OPENAD_ACTIVE_WRITE +#undef ALLOW_OPENAD_DIVA +#undef OAD_DEBUG + #endif /* ALLOW_OPENAD */ #endif /* OPENAD_OPTIONS_H */ diff --git a/pkg/openad/ad_s_ilnblnk.F b/pkg/openad/ad_s_ilnblnk.F index 36438fc2e6..72b016441a 100644 --- a/pkg/openad/ad_s_ilnblnk.F +++ b/pkg/openad/ad_s_ilnblnk.F @@ -4,7 +4,7 @@ C !ROUTINE: ILNBLNK C !INTERFACE: - subroutine oad_s_ILNBLNK( string, index ) + SUBROUTINE oad_s_ILNBLNK( string, index ) IMPLICIT NONE C !DESCRIPTION: @@ -16,18 +16,21 @@ subroutine oad_s_ILNBLNK( string, index ) C !INPUT PARAMETERS: C string :: string to scan CHARACTER*(*) string - integer index + INTEGER index C !LOCAL VARIABLES: -C L, LS :: Temps. used in scanning string - INTEGER L, LS +C L :: Temp. used in scanning string + INTEGER L CEOP -C - LS = LEN(string) + index = 0 - L=LS - DO while ((L.gt.0).and.(string(L:L) .eq. ' ')) - L=L-1 - end do - index = L + L = LEN(string) + DO WHILE ( L .GT. 0 ) + IF ( string(L:L) .NE. ' ' ) THEN + index = L + L = 0 + ELSE + L = L - 1 + ENDIF + ENDDO END diff --git a/pkg/openad/externalDummies.F b/pkg/openad/externalDummies.F index 6a069b653b..2d2b371855 100644 --- a/pkg/openad/externalDummies.F +++ b/pkg/openad/externalDummies.F @@ -132,7 +132,7 @@ SUBROUTINE CG2D( #endif C ########################################################### #ifdef ALLOW_STREAMICE - SUBROUTINE STREAMICE_CG_SOLVE( + SUBROUTINE STREAMICE_CG_SOLVE( U cg_Uin, ! x-velocities U cg_Vin, ! y-velocities I cg_Bu, ! force in x dir @@ -141,7 +141,7 @@ SUBROUTINE STREAMICE_CG_SOLVE( I A_uv, ! section of matrix that multiplies v and projects on u I A_vu, ! section of matrix that multiplies u and projects on v I A_vv, ! section of matrix that multiplies v and projects on v - I tolerance, + I tolerance, O iters, I maxiter, I myThid ) @@ -160,17 +160,17 @@ SUBROUTINE STREAMICE_CG_SOLVE( _RL cg_Vin (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL cg_Bu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL cg_Bv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL + _RL & A_uu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1), & A_vu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1), & A_uv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1), & A_vv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy,-1:1,-1:1) - cg_Uin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) + - & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bu(1,1,1,1) + cg_Uin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) + + & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bu(1,1,1,1) - cg_Vin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) + - & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bv(1,1,1,1) + cg_Vin(1,1,1,1) = A_uu(1,1,1,1,1,1) + A_uv(1,1,1,1,1,1) + + & A_vu(1,1,1,1,1,1) + A_vv(1,1,1,1,1,1) + cg_Bv(1,1,1,1) end subroutine #endif /* ALLOW_STREAMICE */ @@ -196,8 +196,8 @@ SUBROUTINE STREAMICE_INVERT_SURF_FORTHICK ( _RL DELTA INTEGER myThid #ifdef STREAMICE_ALLOW_DEPTH_CONTROL - H(1,1,1,1) = s(1,1,1,1) + - & R(1,1,1,1) + H(1,1,1,1) = s(1,1,1,1) + + & R(1,1,1,1) #endif end subroutine @@ -252,7 +252,7 @@ subroutine active_read_xyz( ! == global variables == #include "EEPARAMS.h" #include "SIZE.h" - CHARACTER*(80) active_var_file + CHARACTER*(*) active_var_file _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER iRec INTEGER myOptimIter @@ -281,7 +281,7 @@ subroutine active_read_xy( ! == global variables == #include "EEPARAMS.h" #include "SIZE.h" - CHARACTER*(80) active_var_file + CHARACTER*(*) active_var_file _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myOptimIter @@ -308,7 +308,7 @@ subroutine active_write_xy( ! == global variables == #include "EEPARAMS.h" #include "SIZE.h" - CHARACTER*(80) active_var_file + CHARACTER*(*) active_var_file _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myOptimIter @@ -320,4 +320,3 @@ subroutine active_write_xy( #endif /* ALLOW_OPENAD_ACTIVE_WRITE */ end subroutine C ########################################################### - diff --git a/pkg/openad/openad_dumpAdjoint.F b/pkg/openad/openad_dumpAdjoint.F index 246bf6feca..6340201f53 100644 --- a/pkg/openad/openad_dumpAdjoint.F +++ b/pkg/openad/openad_dumpAdjoint.F @@ -78,7 +78,6 @@ SUBROUTINE openad_dumpAdjoint( myTime, myIter, myThid ) # include "KPP_PARAMS.h" # endif -# include "tamc.h" # include "ctrl.h" # include "ctrl_dummy.h" # include "cost.h" @@ -117,26 +116,6 @@ SUBROUTINE openad_dumpAdjoint( myTime, myIter, myThid ) foo5=diffkr%d call write_fld_xy_rl('adjdiffkr.',suff,foo5,myIter,1) # endif -# ifdef ALLOW_HFLUX0_CONTROL - foo4=qnet%d - call write_fld_xy_rl('adjqnet.',suff,foo4,myIter,1) -# endif -# ifdef ALLOW_SFLUX0_CONTROL - foo4=empmr%d - call write_fld_xy_rl('adjempmr.',suff,foo4,myIter,1) -# endif -# ifdef ALLOW_TAUU0_CONTROL - foo4=fu%d - call write_fld_xy_rl('adjfu.',suff,foo4,myIter,1) -# endif -# ifdef ALLOW_TAUV0_CONTROL - foo4=fv%d - call write_fld_xy_rl('adjfv.',suff,foo4,myIter,1) -# endif -# ifdef ALLOW_HFLUXM_CONTROL - foo4=qnetm%d - call write_fld_xy_rl('adjhfluxm.',suff,foo4,myIter,1) -#endif ENDIF RETURN diff --git a/pkg/openad/seawater.F b/pkg/openad/seawater.F index e69cd60881..ec2db3de1e 100644 --- a/pkg/openad/seawater.F +++ b/pkg/openad/seawater.F @@ -33,7 +33,7 @@ SUBROUTINE SW_PTMP (S,T,P,PR, rv) C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === -C S :: salinity [psu (PSS-78) ] +C S :: salinity [ (PSS-78) ] C T :: temperature [degree C (IPTS-68)] C P :: pressure [db] C PR :: Reference pressure [db] diff --git a/pkg/openad/the_model_main.F b/pkg/openad/the_model_main.F index e929e5f983..6b7ddf35ac 100644 --- a/pkg/openad/the_model_main.F +++ b/pkg/openad/the_model_main.F @@ -44,15 +44,40 @@ C | | :: Kernel parameters are read from file "data" C | | :: in directory in which code executes. C | | -C | |-PACAKGES_BOOT :: Start up the optional package environment. -C | | :: Runtime selection of active packages. -C | |-PACKAGES_READPARMS :: read all packages input parameter file +C | |-PACKAGES_BOOT :: Start up the optional package environment. +C | | :: Runtime selection of active packages. +C | |-CPL_IMPORT_CPLPARMS :: Import coupling parameters from/to +C | | :: the coupler layer +C | |-PACKAGES_READPARMS :: Read each package input parameter file C | | |- ${PKG}_READPARMS C | | -C | |-INI_MODEL_IO :: Initialise Input/Ouput setting +C | |-SET_PARMS :: Finalise model parameter setting (if fct of pkg usage) C | | -C | |-INI_GRID :: Control grid array (vert. and hori.) initialisation. -C | | :: Grid arrays are held and described in GRID.h. +C | |-INI_MODEL_IO :: Initialise Input/Output setting +C | | |-MNC_INIT :: Initialise MITgcm NetCDF interface (MNC)(see pkg/mnc) +C | | |-MNC_CW_INIT :: Initialise MNC grid and variable types (see pkg/mnc) +C | | |-MON_INIT :: Initialises monitor package ( see pkg/monitor ) +C | | +C | |-INI_GRID :: Control grid array (vert. and horiz.) initialisation. +C | | | :: Grid arrays are held and described in GRID.h. +C | | |-LOAD_GRID_SPACING :: Load grid spacing (vector) from files +C | | |-INI_VERTICAL_GRID :: Set up vertical grid and coordinate +C | | |-INI_CARTESIAN_GRID :: Cartesian horiz. grid initialisation +C | | | :: (calculate grid from kernel parameters). +C | | |-INI_SPHERICAL_POLAR_GRID :: Spherical polar horiz. grid setting +C | | | :: (calculate grid from kernel parameters). +C | | |-INI_CURVILINEAR_GRID :: General orthogonal, structured horiz. grid +C | | | :: initialisation; input from raw grid files +C | | | :: (LONC.bin, LATC.bin, DXF.bin, ... ) or per +C | | | :: face file: horizGridFile(.faceXXX.bin) +C | | |-INI_CYLINDER_GRID :: Cylindrical horiz. grid setting +C | | +C | |-LOAD_REF_FILES :: Read-in reference vertical profiles (T,S,Rho) +C | |-INI_EOS :: Initialise Equation Of State (EOS) coefficients +C | |-SET_REF_STATE :: Set reference pressure/geopotential, reference +C | | :: stratification (for implicit IGW), vertical +C | | :: velocity scaling factor and anelastic ref. density +C | |-SET_GRID_FACTORS :: Set grid factors (fct of k) for deep-atmosphere C | | C | |-INI_DEPTHS :: Read (from "bathyFile") or set bathymetry/orography. C | |-INI_MASKS_ETC :: Derive horizontal and vertical cell fractions and @@ -61,129 +86,425 @@ C | |-PACKAGES_INIT_FIXED :: do all packages fixed-initialisation setting C | | |- ${PKG}_INIT_FIXED C | | -C | |-CONFIG_SUMMARY :: Provide synopsis of kernel setup. Includes -C | | :: annotated table of kernel parameter settings. +C | |-INI_GLOBAL_DOMAIN :: Initialise domain related (global) quantities. +C | |-INI_LINEAR_PHISURF :: Set ref. surface Bo_surf +C | | +C | |-INI_CORI :: Set coriolis term. zero, f-plane, beta-plane, +C | | :: sphere options are coded. +C | |-INI_CG2D :: 2D conjugate grad solver initialisation. +C | |-INI_CG3D :: 3D conjugate grad solver initialisation. C | | -C | |-PACKAGES_CHECK :: call each package configuration checking S/R +C | |-CONFIG_SUMMARY :: Provide synopsis of kernel setup. Includes +C | | :: annotated table of kernel parameter settings. +C | | +C | |-PACKAGES_CHECK :: call each package configuration checking S/R C | | |- ${PKG}_CHECK C | | -C | |-CONFIG_CHECK :: Check config and parameter consistency. +C | |-CONFIG_CHECK :: Check config and parameter consistency. +C | | +C | |-WRITE_GRID :: write grid fields to output files +C | |-CPL_EXCH_CONFIGS :: exchange config with coupler-interface C | -C |-CTRL_UNPACK :: Control vector support package. see pkg/ctrl +C |-CTRL_UNPACK :: Control vector support package. see pkg/ctrl +C |-COST_DEPENDENT_INIT :: ( see pkg/cost ) C | C |-ADTHE_MAIN_LOOP :: Derivative evaluating form of main time stepping loop C ! :: Automatically generated by TAMC/TAF. C | C |-THE_MAIN_LOOP :: Main timestepping loop routine. C | | -C | |-INITIALISE_VARIA :: Set the initial conditions for time evolving -C | | |-INI_DYNVARS :: set common block variable to zero -C | | |-INI_NH_VARS :: set common block variable to zero +C | |-INITIALISE_VARIA :: Set the initial conditions for time evolving fields +C | | | +C #ifdef ALLOW_AUTODIFF +C | | |-INI_DEPTHS \ +C | | |-CTRL_DEPTH_INI \ +C | | |-UPDATE_MASKS_ETC } ALLOW_DEPTH_CONTROL case +C | | |-UPDATE_CG2D / +C #endif +C | | |-INI_NLFS_VARS :: Initialise all Non-Lin Free-Surf arrays (SURFACE.h) +C | | |-INI_DYNVARS :: Initialise to zero all DYNVARS.h arrays +C | | |-INI_NH_VARS :: Initialise to zero all NH_VARS.h arrays +C | | |-INI_FFIELDS :: Initialise forcing fields in FFIELDS.h to zero C | | | -C | | |-INI_FIELDS :: Control initialising model fields to non-zero -C | | | |-INI_VEL,_THETA,_SALT,_PSURF, ... -C | | | |-READ_PICKUP +C | | |-INI_FIELDS :: Control initialising model fields to non-zero +C | | | |-INI_VEL :: Initialize 3D flow field. +C | | | |-INI_THETA :: Set model initial temperature field. +C | | | |-INI_SALT :: Set model initial salinity field. +C | | | |-INI_PSURF :: Set model initial free-surface height/pressure. +C | | | |-READ_PICKUP :: Read in main model pickup files to restart a run. C | | | -C | | |-INI_FORCING :: initialise forcing fields +C | | |-INI_MIXING :: Initialise diapycnal diffusivity. +C | | | +C | | |-TAUEDDY_INIT_VARIA :: Initialise eddy (bolus) streamfunction +C | | | +C | | |-INI_FORCING :: Set model initial forcing fields, either +C | | | | :: set in-line or from file as shown here: +C | | | |-READ_FLD_XY_RS(zonalWindFile) +C | | | |-READ_FLD_XY_RS(meridWindFile) +C | | | |-READ_FLD_XY_RS(surfQnetFile) +C | | | |-READ_FLD_XY_RS(EmPmRfile) +C | | | |-READ_FLD_XY_RS(thetaClimFile) +C | | | |-READ_FLD_XY_RS(saltClimFile) +C | | | |-READ_FLD_XY_RS(surfQswFile) +C | | | +C | | |-AUTODIFF_INIT_VARIA :: (see pkg/autodiff ) C | | | C | | |-PACKAGES_INIT_VARIABLES :: Does initialisation of time evolving C | | | | ${PKG}_INIT_VARIA :: package data. C | | | -C | | |-MONITOR :: Monitor state (see pkg/monitor) +C | | |-COST_INIT_VARIA :: ( see pkg/cost ) +C | | |-CONVECTIVE_ADJUSTMENT_INI :: Apply conv. adjustment to initial state +C | | | +C | | |-CALC_R_STAR :: Calculate the new level thickness factor (r* coord) +C | | |-UPDATE_R_STAR :: Update the level thickness fraction (r* coord). +C | | |-UPDATE_SIGMA :: Update the level thickness fraction (sigma-coord). +C | | |-CALC_SURF_DR :: Calculate the new surface level thickness. +C | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction. +C | | | +C | | |-UPDATE_CG2D :: Update 2D conjugate grad. for Free-Surf. +C | | | +C | | |-INTEGR_CONTINUITY :: Integrate the continuity Equation +C | | | |-INTEGRATE_FOR_W :: Integrate for vertical velocity +C | | | |-OBCS_APPLY_W :: Open boundary package (see pkg/obcs). +C | | | |-DUMMY_FOR_ETAN :: For printing adEtaN (see pkg/autodiff). +C | | | |-UPDATE_ETAH :: Update Surface height/pressure +C | | | +C | | |-CALC_R_STAR :: Calculate the new level thickness factor (r* coord) +C | | |-CALC_SURF_DR :: Calculate the new surface level thickness. +C | | | C | | |-STATE_SUMMARY :: Summarise model prognostic variables. -C | | |-DO_THE_MODEL_IO :: Standard diagnostic I/O. -C | | +C | | | +C | | |-MONITOR :: Monitor state (see pkg/monitor) +C | | | +C | | |-DO_STATEVARS_TAVE :: Time averaging package ( see pkg/timeave ). +C | | | |-TIMEAVE_STATVARS :: Accumulate main model state variables +C | | | |-PTRACERS_TIMEAVE :: Accumulate passive tracers variables +C | | | +C | | |-DO_THE_MODEL_IO :: Controlling routine for IO +C | | | |-WRITE_STATE :: Write model state variables. +C | | | |-TIMEAVE_STATV_WRITE :: Write Time averaged output (see pkg/timeave) +C | | | |-FIZHI_WRITE_STATE :: Write Fizhi pkg output (see pkg/fizhi) +C | | | |-AIM_WRITE_TAVE :: Write AIM pkg output (see pkg/aim_v23) +C | | | |-LAND_OUTPUT :: Write Land pkg output (see pkg/land) +C | | | |-OBCS_OUTPUT :: Write OBCS pkg output (see pkg/obcs) +C | | | |-GMREDI_OUTPUT :: Write GM-Redi pkg output (see pkg/gmredi) +C | | | |-KPP_OUTPUT :: Write KPP pkg output (see pkg/kpp) +C | | | |-PP81_OUTPUT :: Write PP81 pkg output (see pkg/pp81) +C | | | |-KL10_OUTPUT :: Write KL10 pkg output (see pkg/kl10) +C | | | |-MY82_OUTPUT :: Write MY82 pkg output (see pkg/my82) +C | | | |-OPPS_OUTPUT :: Write OPPS pkg output (see pkg/opps) +C | | | |-GGL90_OUTPUT :: Write GGL90 pkg output (see pkg/ggl90) +C | | | |-SBO_CALC :: Compute SBO diagnostics (see pkg/sbo) +C | | | |-SBO_OUTPUT :: Write SBO pkg output (see pkg/sbo) +C | | | |-SEAICE_OUTPUT :: Write SeaIce pkg output (see pkg/seaice) +C | | | |-SHELFICE_OUTPUT :: Write ShelfIce pkg output (see pkg/shelfice) +C | | | |-BULKF_OUTPUT :: Write Bulk-Force output (see pkg/bulK_force) +C | | | |-THSICE_OUTPUT :: Write ThSIce pkg output (see pkg/thsice) +C | | | |-PTRACERS_OUTPUT :: Write pTracers pkg output (see pkg/ptracers) +C | | | |-MATRIX_OUTPUT :: Write Matrix pkg output (see pkg/matrix) +C | | | |-GCHEM_OUTPUT :: Write Geochemistry pkg output (see pkg/gchem) +C | | | |-CPL_OUTPUT :: Write Coupler-Interface output (see +C | | | | :: pkg/atm_compon_interf, pkg/ocn_compon_interf) +C | | | |-LAYERS_CALC :: Calculate layers diagnostics (see pkg/layers) +C | | | |-LAYERS_OUTPUT :: Write Layers pkg output (see pkg/layers) +C | | | |-DIAGNOSTICS_WRITE :: Write pkg/diagnostics output +C | | | C====|>| **************************** C====|>| BEGIN MAIN TIMESTEPPING LOOP C====|>| **************************** C | |-COST_AVERAGESFIELDS :: time-averaged Cost function terms (see pkg/cost) +C | |-PROFILES_INLOOP :: ( see pkg/profiles ) +C | / +C | |-MAIN_DO_LOOP :: Open-AD case: Main timestepping loop routine +C | \ otherwise: just call FORWARD_STEP C | | C/\ | |-FORWARD_STEP :: Step forward a time-step ( AT LAST !!! ) C/\ | | | -C/\ | | |-LOAD_FIELDS_DRIVER :: control loading of input fields from files +C/\ | | |-AUTODIFF_INADMODE_UNSET :: Set/reset some adjoint flags +C/\ | | |-RESET_NLFS_VARS :: Reset some Non-Lin Free-Surf vars (Adjoint) +C/\ | | |-UPDATE_R_STAR :: Reset r-star factor variables (Adjoint) +C/\ | | |-UPDATE_SURF_DR :: Reset NLFS surface thickness vars (Adjoint) +C/\ | | | +C/\ | | |-PTRACERS_SWITCH_ONOFF :: Set/reset pTracers time-stepping switch +C/\ | | |-DIAGNOSTICS_SWITCH_ONOFF :: Activate/de-activate diagnostics +C/\ | | |-DO_STATEVARS_DIAGS ( 0 ) :: fill-up state variable diagnostics +C/\ | | | +C/\ | | |-NEST_CHILD_SETMEMO :: Nesting interface +C/\ | | |-NEST_PARENT_IO_1 :: Nesting interface +C/\ | | | +C/\ | | |-LOAD_FIELDS_DRIVER :: Control loading of input fields from files +C/\ | | | +C/\ | | |-BULKF_FORCING :: Calculate surface forcing (see pkg/bulk_force) +C/\ | | |-CHEAPAML :: Cheap AML driver ( see pkg/cheapaml ) +C/\ | | |-CTRL_MAP_FORCING :: Control vector support package. (see pkg/ctrl) +C/\ | | |-DUMMY_IN_STEPPING :: Autodiff package ( pkg/autodiff ). C/\ | | | C/\ | | |-CPL_EXPORT_MY_DATA :: Send coupling fields to coupler C/\ | | |-CPL_IMPORT_EXTERNAL_DATA :: Receive coupling fields from coupler C/\ | | | +C/\ | | |-OASIS_PUT :: Oasis coupler interface +C/\ | | |-OASIS_GET :: Oasis coupler interface +C/\ | | | +C/\ | | |-EBM_DRIVER :: Calculate EBM type atmospheric forcing (see pkg/ebm) +C/\ | | | C/\ | | |-DO_ATMOSPHERIC_PHYS :: Atmospheric physics computation +C/\ | | | | +C/\ | | | |-UPDATE_OCEAN_EXPORTS :: ( see pkg/fizhi ) +C/\ | | | |-UPDATE_EARTH_EXPORTS :: ( see pkg/fizhi ) +C/\ | | | |-UPDATE_CHEMISTRY_EXPORTS :: ( see pkg/fizhi ) +C/\ | | | |-FIZHI_WRAPPER :: ( see pkg/fizhi ) +C/\ | | | |-STEP_FIZHI_FG :: ( see pkg/fizhi ) +C/\ | | | |-FIZHI_UPDATE_TIME :: ( see pkg/fizhi ) +C/\ | | | | +C/\ | | | |-ATM_PHYS_DRIVER :: ( see pkg/atm_phys ) +C/\ | | | | +C/\ | | | |-AIM_DO_PHYSICS :: ( see pkg/aim_v23 ) C/\ | | | C/\ | | |-DO_OCEANIC_PHYS :: Oceanic (& seaice) physics computation +C/\ | | | | C/\ | | | |-OBCS_CALC :: Open boundary. package (see pkg/obcs). +C/\ | | | | +C/\ | | | |-FRAZIL_CALC_RHS :: Compute FRAZIL tendencies ( see pkg/frazil ) +C/\ | | | |-THSICE_MAIN :: Thermodynamic sea-ice driver (see pkg/thsice) +C/\ | | | |-SEAICE_MODEL :: Sea-ice model driver (see pkg/seaice ) +C/\ | | | |-SEAICE_COST_SENSI :: Sea-ice cost-function (see pkg/seaice ) +C/\ | | | |-SHELFICE_THERMODYNAMICS :: Compute ShelfIce thermo (pkg/shelfice) +C/\ | | | |-ICEFRONT_THERMODYNAMICS :: Compute IceFront thermo (pkg/icefront) +C/\ | | | | +C/\ | | | |-SALT_PLUME_DO_EXCH :: (see pkg/salt_plume ) +C/\ | | | |-FREEZE_SURFACE :: Prevent SST to fall below TFreeze +C/\ | | | |-OCN_APPLY_IMPORT :: Apply imported fields from coupler +C/\ | | | |-EXTERNAL_FORCING_SURF:: Compute appropriately dimensioned +C/\ | | | | :: surface forcing terms. +C/\ | | | |-FIND_RHO_2D @ p(k) :: Calculate [rho(T,S,p)-Rho_0] of a slice +C/\ | | | |-FIND_RHO_2D @ p(k-1) :: Calculate [rho(T,S,p)-Rho_0] of a slice +C/\ | | | |-GRAD_SIGMA :: Calculate isoneutral gradients +C/\ | | | |-CALC_IVDC :: Set Implicit Vertical Diffusivity for Convection +C/\ | | | |-CALC_OCE_MXLAYER :: Diagnose Oceanic Mixed Layer depth +C/\ | | | | +C/\ | | | |-SALT_PLUME_CALC_DEPTH :: (see pkg/salt_plume ) +C/\ | | | |-SALT_PLUME_VOLFRAC :: (see pkg/salt_plume ) +C/\ | | | |-SALT_PLUME_APPLY (Temp) :: (see pkg/salt_plume ) +C/\ | | | |-SALT_PLUME_APPLY (Salt) :: (see pkg/salt_plume ) +C/\ | | | |-SALT_PLUME_FORCING_SURF :: (see pkg/salt_plume ) +C/\ | | | |-KPP_CALC :: Compute KPP vertical mixing ( see pkg/kpp ) +C/\ | | | |-PP81_CALC :: Compute PP81 vertical mixing ( see pkg/pp81 ) +C/\ | | | |-KL10_CALC :: Compute KL10 vertical mixing ( see pkg/kl10 ) +C/\ | | | |-MY82_CALC :: Compute MY82 vertical mixing ( see pkg/kl10 ) +C/\ | | | |-GGL90_CALC :: Compute GGL90 vertical mixing (see pkg/ggl10) +C/\ | | | |-GMREDI_CALC_TENSOR :: Compute GM-Redi tensor ( see pkg/gmredi ) +C/\ | | | |-DWNSLP_CALC_FLOW :: Compute Down-Slope flow (see pkg/down_slope) +C/\ | | | |-BBL_CALC_RHS :: Compute BBL tendencies ( see pkg/bbl ) +C/\ | | | |-MYPACKAGE_CALC_RHS :: Compute mypackage tendencies (pkg/mypackage) +C/\ | | | | +C/\ | | | |-GMREDI_DO_EXCH :: ( see pkg/gmredi ) +C/\ | | | |-KPP_DO_EXCH :: ( see pkg/kpp ) +C/\ | | | |-DIAGS_RHO_G :: Compute some density related diagnostics +C/\ | | | |-DIAGS_OCEANIC_SURF_FLUX :: Diagnose oceanic surface fluxes +C/\ | | | |-SALT_PLUME_DIAGNOSTICS_FILL :: (see pkg/salt_plume ) +C/\ | | | |-ECCO_PHYS :: ( see pkg/ecco ) +C/\ | | | +C/\ | | |-STREAMICE_TIMESTEP :: ( see pkg/streamice ) C/\ | | | -C/\ | | |-GCHEM_CALC_TENDENCY :: geochemistry driver routine (see pkg/gchem) -C/\ | | | -C/\ | | |-THERMODYNAMICS :: (synchronous time-stepping) -C/\ | | | theta, salt + tracer equations driver. -C/\ | | | |-EXTERNAL_FORCING_SURF:: Accumulates appropriately dimensioned -C/\ | | | | :: forcing terms. -C/\ | | | |-GAD_ADVECTION :: Generalised advection driver (multi-dim -C/\ | | | | advection case) (see pkg/gad). -C/\ | | | |-CALC_GT :: Calculate the temperature tendency terms -C/\ | | | |-TIMESTEP_TRACER :: Step tracer field forward in time -C/\ | | | |-CALC_GS :: Calculate the salinity tendency terms -C/\ | | | |-TIMESTEP_TRACER :: Step tracer field forward in time +C/\ | | |-GCHEM_CALC_TENDENCY :: geochemistry driver routine (see pkg/gchem) +C/\ | | | +C/\ | | |-LONGSTEP_AVERAGE :: Averaging state vars ( see pkg/longstep ) +C/\ | | |-LONGSTEP_THERMODYNAMICS :: Step forward tracers ( see pkg/longstep ) +C/\ | | | +C/\ | | |-THERMODYNAMICS :: theta, salt + tracer equations driver. +C/\ | | | | (synchronous time-stepping case) +C/\ | | | |-CALC_WSURF_TR :: Compute T & S Linear-Free-Surf correction +C/\ | | | |-PTRACERS_CALC_WSURF_TR :: Compute Tracers Linear-Free-Surf correct. +C/\ | | | | +C/\ | | | |-GMREDI_RESIDUAL_FLOW :: Get the flow field used to advect tracers +C/\ | | | | +C/\ | | | |-TEMP_INTEGRATE :: Step forward Prognostic Eq for Temperature. +C/\ | | | | | +C/\ | | | | |-ADAMS_BASHFORTH3 :: Extrapolate tracer forward in time (AB-3) +C/\ | | | | |-ADAMS_BASHFORTH2 :: Extrapolate tracer forward in time (AB-2) +C/\ | | | | |-CALC_3D_DIFFUSIVITY :: set vertical diffusivity +C/\ | | | | | +C/\ | | | | |-GAD_SOM_ADVECT :: Second Order Moment (SOM) advection +C/\ | | | | |-GAD_ADVECTION :: Generalised advection driver (multi-dim +C/\ | | | | | advection case) (see pkg/gad). +C/\ | | | | |-CALC_ADV_FLOW :: set 3-D flow field to advect tracer +C/\ | | | | |-APPLY_FORCING_T :: Problem specific forcing for temperature. +C/\ | | | | |-GAD_CALC_RHS :: Calculate Advection-Diffusion tendency terms +C/\ | | | | | +C/\ | | | | |-ADAMS_BASHFORTH3 :: Extrapolate tendency forward in time (AB-3) +C/\ | | | | |-ADAMS_BASHFORTH2 :: Extrapolate tendency forward in time (AB-2) +C/\ | | | | |-FREESURF_RESCALE_G :: Re-scale Gt for free-surface height. +C/\ | | | | |-DWNSLP_APPLY :: Add pkg/down_slope tendency +C/\ | | | | | +C/\ | | | | |-TIMESTEP_TRACER :: Step tracer field forward in time +C/\ | | | | | +C/\ | | | | |-GAD_IMPLICIT_R :: Solve vertical implicit Advect-Diffus. eqn. +C/\ | | | | |-IMPLDIFF :: Solve vertical implicit diffusion equation. +C/\ | | | | |-CYCLE_AB_TRACER :: Cycle time-stepping arrays for tracer field +C/\ | | | | |-CYCLE_TRACER :: Cycle time-stepping arrays for tracer field +C/\ | | | | +C/\ | | | |-SALT_INTEGRATE :: Step forward Prognostic Eq for Salinity. +C/\ | | | | | same sequence of calls as in TEMP_INTEGRATE +C/\ | | | | C/\ | | | |-PTRACERS_INTEGRATE :: Integrate other tracer(s) (see pkg/ptracers). -C/\ | | | |-IMPLDIFF :: Solve vertical implicit diffusion equation. +C/\ | | | | | same sequence of calls as in TEMP_INTEGRATE +C/\ | | | | |-OBCS_APPLY_PTRACER :: Open boundary package for pTracers +C/\ | | | | C/\ | | | |-OBCS_APPLY_TS :: Open boundary package (see pkg/obcs ). C/\ | | | +C/\ | | |-LONGSTEP_AVERAGE :: Averaging state vars ( see pkg/longstep ) +C/\ | | |-LONGSTEP_THERMODYNAMICS :: Step forward tracers ( see pkg/longstep ) +C/\ | | | +C/\ | | |-DO_STAGGER_FIELDS_EXCHANGES :: Update overlap regions of arrays +C/\ | | | Theta & Salt (implicit IGW case) +C/\ | | | C/\ | | |-DYNAMICS :: Momentum equations driver. C/\ | | | | C/\ | | | |-CALC_GRAD_PHI_SURF :: Calculate the gradient of the surface C/\ | | | | Potential anomaly. C/\ | | | |-CALC_VISCOSITY :: Calculate net vertical viscosity +C/\ | | | |-MOM_CALC_3D_STRAIN :: Calculates the strain tensor of 3D flow field +C/\ | | | |-OBCS_COPY_UV_N :: for Stevens bndary Conditions (see pkg/obcs) +C/\ | | | | C/\ | | | |-CALC_PHI_HYD :: Integrate the hydrostatic relation. -C/\ | | | |-MOM_FLUXFORM :: Flux form mom eqn. package (pkg/mom_fluxform) -C/\ | | | |-MOM_VECINV :: Vector invariant form mom eqn (pkg/mom_vecinv) -C/\ | | | |-TIMESTEP :: Step momentum fields forward in time -C/\ | | | |-OBCS_APPLY_UV :: Open boundary package (see pkg/obcs). +C/\ | | | |-MOM_FLUXFORM :: Flux Form momentum eqn. (pkg/mom_fluxform) +C/\ | | | |-MOM_VECINV :: Vector Invariant momentum eqn (pkg/mom_vecinv) +C/\ | | | |-MOM_CALC_SMAG_3D :: Calculate Smagorinsky 3D (harmonic) viscosities +C/\ | | | |-MOM_UV_SMAG_3D :: Calculate U,V mom. tendency due to Smag 3D Visc +C/\ | | | |-TIMESTEP :: Step horizontal momentum fields forward in time +C/\ | | | | +C/\ | | | |-MOM_U_IMPLICIT_R :: Solve implicitly vertical Adv-Diffus equation. C/\ | | | |-IMPLDIFF :: Solve vertical implicit diffusion equation. -C/\ | | | |-CALC_GW :: vert. momentum tendency terms (Non-Hydrostatic) +C/\ | | | |-OBCS_SAVE_UV_N :: for Stevens bndary Conditions (see pkg/obcs) +C/\ | | | |-OBCS_APPLY_UV :: Apply Open bndary Conditions to provisional U,V +C/\ | | | |-IMPLDIFF :: (CD-Scheme) Solve vertical impl. diffus. eqn +C/\ | | | | +C/\ | | | |-CALC_GW :: Vert. momentum tendency terms (Non-Hydrostatic) +C/\ | | | | |-MOM_W_SMAG_3D :: Calculate W mom. tendency due to Smag 3D Visc +C/\ | | | |-TIMESTEP_WVEL :: Step vert mom forward in time (Non-Hydrostatic) C/\ | | | -C/\ | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction. +C/\ | | |-MNC_UPDATE_TIME :: Update MNC time record (see pkg/mnc) +C/\ | | | +C/\ | | |-UPDATE_R_STAR :: Update the level thickness fraction (r* coord). +C/\ | | |-UPDATE_SIGMA :: Update the level thickness fraction (sigma-coord). C/\ | | |-UPDATE_R_STAR :: Update the level thickness fraction. -C/\ | | |-UPDATE_CG2D :: Update 2d conjugate grad. for Free-Surf. +C/\ | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction. +C/\ | | |-UPDATE_CG2D :: Update 2D conjugate grad. for Free-Surf. +C/\ | | | +C/\ | | |-SHAP_FILT_APPLY_UV :: Apply Shapiro Filter to provisional velocity +C/\ | | |-ZONAL_FILT_APPLY_UV :: Apply Zonal Filter to provisional velocity C/\ | | | C/\ | | |-SOLVE_FOR_PRESSURE :: Find surface pressure. +C/\ | | | |-CALC_DIV_GHAT :: Form the RHS of the surface pressure eqn. C/\ | | | |-CG2D :: Two-dim pre-con. conjugate-gradient. +C/\ | | | |-PRE_CG3D :: Finish to set the RHS of the 3-D pressure eqn. C/\ | | | |-CG3D :: Three-dim pre-con. conjugate-gradient solver. +C/\ | | | |-POST_CG3D :: finalise solution of NH and Free-Surf pressure C/\ | | | C/\ | | |-MOMENTUM_CORRECTION_STEP :: Finalise momentum stepping -C/\ | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure -C/\ | | | |-CORRECTION_STEP :: Pressure correction to momentum -C/\ | | | |-OBCS_APPLY_UV :: Open boundary package (see pkg/obcs). +C/\ | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure +C/\ | | | |-CORRECTION_STEP :: Pressure correction to momentum +C/\ | | | |-OBCS_APPLY_UV :: Open boundary package (see pkg/obcs). +C/\ | | | |-SHAP_FILT_APPLY_UV :: Apply Shapiro Filter to latest velocity +C/\ | | | |-ZONAL_FILT_APPLY_UV :: Apply Zonal Filter to latest velocity +C/\ | | | +C/\ | | |-INTEGR_CONTINUITY :: Integrate continuity equation (see above) +C/\ | | | +C/\ | | |-CALC_R_STAR :: Calculate the new level thickness factor (r* coord) +C/\ | | |-CALC_SURF_DR :: Calculate the new surface level thickness. +C/\ | | | +C/\ | | |-DO_STAGGER_FIELDS_EXCHANGES :: Update overlap regions of arrays +C/\ | | | uVel,vVel & wVel (stagger-time-step case) C/\ | | | -C/\ | | |-INTEGR_CONTINUITY :: Integrate continuity equation +C/\ | | |-DO_STATEVARS_DIAGS ( 1 ) :: fill-up state variable diagnostics C/\ | | | -C/\ | | |-THERMODYNAMICS :: (staggered time-stepping) -C/\ | | | theta, salt + tracer equations driver. +C/\ | | |-THERMODYNAMICS :: theta, salt + tracer Eq. driver (see above). +C/\ | | | (staggered time-stepping case) C/\ | | | -C/\ | | |-TRACERS_CORRECTION_STEP :: Finalise tracer stepping +C/\ | | |-TRACERS_CORRECTION_STEP :: Finalise tracer stepping: +C/\ | | | | :: apply filter, conv.adjustment +C/\ | | | |-TRACERS_IIGW_CORRECTION :: apply Implicit IGW adjustment to T & S +C/\ | | | |-SHAP_FILT_APPLY_TS :: Apply Shapiro Filter to latest T & S +C/\ | | | |-ZONAL_FILT_APPLY_TS :: Apply Zonal Filter to latest T & S +C/\ | | | |-PTRACERS_ZONAL_FILT_APPLY :: Apply Zonal Filter to pTracers +C/\ | | | |-SALT_FILL :: Fill up negative Salt +C/\ | | | |-OPPS_INTERFACE :: ( see pkg/opps ) +C/\ | | | |-CONVECTIVE_ADJUSTMENT :: Apply convective adjustment +C/\ | | | |-MATRIX_STORE_TENDENCY_IMP :: ( see pkg/matrix ) C/\ | | | -C/\ | | |-GCHEM_FORCING_SEP :: tracer forcing for gchem pkg (if tracer -C/\ | | | dependent tendencies calculated separately) +C/\ | | |-LONGSTEP_AVERAGE :: Averaging state vars ( see pkg/longstep ) +C/\ | | |-LONGSTEP_THERMODYNAMICS :: Step forward tracers ( see pkg/longstep ) +C/\ | | | +C/\ | | |-GCHEM_FORCING_SEP :: Tracer forcing for gchem pkg (if tracer +C/\ | | | :: dependent tendencies calculated separately) C/\ | | | C/\ | | |-DO_FIELDS_BLOCKING_EXCHANGES :: Sync up overlap regions. C/\ | | | +C/\ | | |-DO_STATEVARS_DIAGS ( 2 ) :: fill-up state variable diagnostics +C/\ | | | +C/\ | | |-GRIDALT_UPDATE :: ( see pkg/gridalt ) +C/\ | | |-STEP_FIZHI_CORR :: ( see pkg/fizhi ) +C/\ | | | +C/\ | | |-FLT_MAIN :: Step forward Floats (see pkg/flt) +C/\ | | | +C/\ | | |-DO_STATEVARS_TAVE :: Time averaging package (see above) +C/\ | | | +C/\ | | |-NEST_PARENT_IO_2 :: Nesting interface +C/\ | | |-NEST_CHILD_TRANSP :: Nesting interface +C/\ | | | C/\ | | |-MONITOR :: Monitor package (pkg/monitor). -C/\ | | |-DO_THE_MODEL_IO :: Standard diagnostic I/O. C/\ | | | -C/\ | | |-DO_WRITE_PICKUP :: Write restart files. +C/\ | | |-COST_TILE :: ( see pkg/cost ) +C/\ | | | +C/\ | | |-DO_THE_MODEL_IO :: Controlling routine for IO (see above) +C/\ | | | +C/\ | | |-PTRACERS_RESET :: Re-initialize PTRACERS ( see pkg/ptracers ) +C/\ | | | +C/\ | | |-DO_WRITE_PICKUP :: Controlling routine for writing files to restart +C/\ | | | |-PACKAGES_WRITE_PICKUP :: Write pickup files for each package +C/\ | | | | | :: which needs it to restart +C/\ | | | | |-GAD_WRITE_PICKUP :: Write Generic AdvDiff pickups for SOM +C/\ | | | | | :: advection scheme (pkg/generic_advdiff) +C/\ | | | | |-CD_CODE_WRITE_PICKUP :: Write CD-code pickups (see pkg/cd_code) +C/\ | | | | |-OBCS_WRITE_PICKUP :: Write OBCS pickups (see pkg/obcs) +C/\ | | | | |-GGL90_WRITE_PICKUP :: Write GGL90 pickups (see pkg/ggl90) +C/\ | | | | |-BBL_WRITE_PICKUP :: Write BBL pickups (see pkg/bbl) +C/\ | | | | |-CHEAPAML_WRITE_PICKUP :: Write CheapAML pickups (pkg/cheapaml) +C/\ | | | | |-FLT_WRITE_PICKUP :: Write Floats pickups (see pkg/flt) +C/\ | | | | |-PTRACERS_WRITE_PICKUP :: Write pTracers pickups (pkg/ptracers) +C/\ | | | | |-GCHEM_WRITE_PICKUP :: Write Geo-Chem pickups (see pkg/gchem) +C/\ | | | | |-SEAICE_WRITE_PICKUP :: Write SeaIce pickups (see pkg/seaice) +C/\ | | | | |-STREAMICE_WRITE_PICKUP :: Write StreamIce pickups (pkg/streamice) +C/\ | | | | |-SHELFICE_WRITE_PICKUP :: Write ShelfIce pickups (pkg/shelfice) +C/\ | | | | |-THSICE_WRITE_PICKUP :: Write ThSIce pickups (see pkg/thsice) +C/\ | | | | |-LAND_WRITE_PICKUP :: Write Land pickups (see pkg/land) +C/\ | | | | |-ATM_PHYS_WRITE_PICKUP :: Write Atm-Phys pickups (pkg/atm_phys) +C/\ | | | | |-FIZHI_WRITE_PICKUP :: Write Fizhi pickups (see pkg/fizhi) +C/\ | | | | |-FIZHI_WRITE_VEGTILES :: Write Fizhi VegTiles (see pkg/fizhi) +C/\ | | | | |-FIZHI_WRITE_DATETIME :: Write Fizhi DateTime (see pkg/fizhi) +C/\ | | | | |-CPL_WRITE_PICKUP :: Write Coupling-Interface pickups +C/\ | | | | |-MYPACKAGE_WRITE_PICKUP :: Write pkg/mypackage pickups +C/\ | | | | +C/\ | | | |-WRITE_PICKUP :: Write main model pickup files. +C/\ | | | +C/\ | | |-AUTODIFF_INADMODE_SET :: Set/reset some adjoint flags C | | C<===|=| ************************** C<===|=| END MAIN TIMESTEPPING LOOP C<===|=| ************************** C | | -C | |-COST_AVERAGESFIELDS :: time-averaged Cost function terms (see pkg/cost) -C | |-COST_FINAL :: Cost function package. (see pkg/cost) +C | |-COST_AVERAGESFIELDS :: Time-averaged Cost function terms (see pkg/cost) +C | |-PROFILES_INLOOP :: ( see pkg/profiles ) +C | |-COST_FINAL :: Cost function package (see pkg/cost) C | -C |-CTRL_PACK :: Control vector support package. see pkg/ctrl +C |-CTRL_PACK :: Control vector support package (see pkg/ctrl) C | -C |-GRDCHK_MAIN :: Gradient check package. see pkg/grdchk +C |-GRDCHK_MAIN :: Gradient check package (see pkg/grdchk) C | C |-TIMER_PRINTALL :: Computational timing summary C | C |-COMM_STATS :: Summarise inter-proc and inter-thread communication -C :: events. +C | :: events. C \ev C CEOI @@ -273,9 +594,6 @@ SUBROUTINE THE_MODEL_MAIN(myThid) #include "DYNVARS.h" #include "FFIELDS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif #ifdef ALLOW_CTRL # include "ctrl.h" # include "optim.h" @@ -287,6 +605,10 @@ SUBROUTINE THE_MODEL_MAIN(myThid) C myThid :: Thread number for this instance of the routine. INTEGER myThid +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + C !LOCAL VARIABLES: C == Local variables == C Note: Under the multi-threaded model myIter and myTime are local @@ -300,8 +622,8 @@ SUBROUTINE THE_MODEL_MAIN(myThid) LOGICAL exst LOGICAL lastdiva C -->> OpenAD - _RL foo(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL foo2D(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + _RL foo(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL foo2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CHARACTER*(10) suff CHARACTER*(MAX_LEN_FNAM) fname C Temprarily change precision to agree with ctrlprec @@ -311,12 +633,6 @@ SUBROUTINE THE_MODEL_MAIN(myThid) INTEGER i1, i2, i3, i4, i5 #endif C <<-- OpenAD - -C !EXTERNAL VARIABLES: -c == external == - integer ilnblnk - external ilnblnk - CEOP C-- set default: @@ -333,13 +649,13 @@ SUBROUTINE THE_MODEL_MAIN(myThid) our_rev_mode%adjoint=.FALSE. our_rev_mode%switchedToCheckpoint=.FALSE. C- Initialize the tape - call oad_tape_init() + CALL OAD_TAPE_INIT() C- Initialize the checkpoint areas - call cp_init() + CALL CP_INIT() C <<-- OpenAD #ifdef ALLOW_PETSC - call streamice_initialize_petsc + CALL STREAMICE_INITIALIZE_PETSC #endif #ifdef ALLOW_DEBUG @@ -372,10 +688,10 @@ SUBROUTINE THE_MODEL_MAIN(myThid) #elif ( defined (ALLOW_AUTODIFF)) -# ifdef ALLOW_CTRL +# ifdef ALLOW_CTRL # ifndef EXCLUDE_CTRL_PACK IF (useCTRL) THEN - inquire( file='costfinal', exist=exst ) + INQUIRE( file='costfinal', exist=exst ) IF ( .NOT. exst ) THEN IF ( (optimcycle.NE.0 .OR. .NOT.doinitxx) & .AND. doMainUnpack ) THEN @@ -392,7 +708,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL COST_DEPENDENT_INIT ( myThid ) # endif -# if ( defined (ALLOW_TANGENTLINEAR_RUN) ) +# if defined( ALLOW_TANGENTLINEAR_RUN ) # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('G_THE_MAIN_LOOP',myThid) @@ -401,12 +717,11 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL G_THE_MAIN_LOOP ( myTime, myIter, myThid ) CALL TIMER_STOP ('G_THE_MAIN_LOOP [TANGENT RUN]',myThid) -# elif ( defined (ALLOW_ADJOINT_RUN) || \ - defined (ALLOW_ECCO_OPTIMIZATION) ) +# elif defined( ALLOW_ADJOINT_RUN ) # ifdef ALLOW_DIVIDED_ADJOINT C-- The following assumes the TAF option '-pure' - inquire( file='costfinal', exist=exst ) + INQUIRE( file='costfinal', exist=exst ) IF ( .NOT. exst) THEN # ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL('MDTHE_MAIN_LOOP',myThid) @@ -441,7 +756,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) CALL TIMER_START('THE_MAIN_LOOP (F) [THE_MODEL_MAIN]',myThid) our_rev_mode%plain=.FALSE. our_rev_mode%tape=.TRUE. - call timeratio() + CALL TIMERATIO() CALL OpenAD_THE_MAIN_LOOP( myTime, myIter, myThid ) CALL TIMER_STOP ('THE_MAIN_LOOP (F) [THE_MODEL_MAIN]',myThid) CALL TIMER_START('THE_MAIN_LOOP (A) [THE_MODEL_MAIN]',myThid) @@ -453,103 +768,28 @@ SUBROUTINE THE_MODEL_MAIN(myThid) IF (myProcID .EQ. 0) THEN fc%d=1.0 ENDIF - call timeratio() + CALL TIMERATIO() CALL OpenAD_THE_MAIN_LOOP( myTime, myIter, myThid ) - call timeratio() + CALL TIMERATIO() our_rev_mode%arg_store=.FALSE. our_rev_mode%arg_restore=.FALSE. our_rev_mode%plain=.TRUE. our_rev_mode%tape=.FALSE. our_rev_mode%adjoint=.FALSE. -# ifdef OAD_DEBUG -# if (defined (ALLOW_THETA0_CONTROL) && defined (ALLOW_SALT0_CONTROL)) - do i1=1-olx,snx+olx - do i2=1-oly,sny+oly - do i3=1,nr - do i4=1,nsx - do i5=1,nsy - write (standardmessageunit, - +'(A,5(I3,A),E25.17E3,A,E25.17E3)') - +'OAD: (', - +i1,',',i2,',',i3,',',i4,',',i5,') salt/theta ', - +xx_salt(i1,i2,i3,i4,i5)%d,'/',xx_theta(i1,i2,i3,i4,i5)%d - end do - end do - end do - end do - end do -# endif -# endif /* OAD_DEBUG */ C Temporarily change setting of writeBinaryPrec tmpprec = writeBinaryPrec writeBinaryPrec = ctrlprec WRITE(suff,'(I10.10)') optimcycle # ifndef ALLOW_OPENAD_ACTIVE_READ_XYZ -# ifdef ALLOW_THETA0_CONTROL - foo=xx_theta%d - il=ilnblnk( xx_theta_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_theta_file(1:il),'.' - call write_fld_xyz_rl(fname,suff,foo,myIter,1) -# endif -# ifdef ALLOW_SALT0_CONTROL - foo=xx_salt%d - il=ilnblnk( xx_salt_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_salt_file(1:il),'.' - call write_fld_xyz_rl(fname,suff,foo,myIter,1) -# endif # ifdef ALLOW_DIFFKR_CONTROL foo=diffkr%d - il=ilnblnk( xx_diffkr_file ) + il=ILNBLNK( xx_diffkr_file ) write(fname(1:MAX_LEN_FNAM),'(3a)') & 'ad',xx_diffkr_file(1:il),'.' - call write_fld_xyz_rl(fname,suff,foo,myIter,1) + CALL WRITE_FLD_XYZ_RL(fname,suff,foo,myIter,1) # endif # endif /* ALLOW_OPENAD_ACTIVE_READ_XYZ */ -# ifdef ALLOW_TAUU0_CONTROL - foo2D=fu%d - il=ilnblnk( xx_tauu_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_tauu_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif -# ifdef ALLOW_TAUV0_CONTROL - foo2D=fv%d - il=ilnblnk( xx_tauv_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_tauv_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif -# ifdef ALLOW_HFLUX0_CONTROL - foo2D=qnet%d - il=ilnblnk( xx_hflux_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_hflux_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif -# ifdef ALLOW_SFLUX0_CONTROL - foo2D=empmr%d - il=ilnblnk( xx_sflux_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_sflux_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif -# ifdef ALLOW_HFLUXM_CONTROL - foo2D=xx_hfluxm%d - il=ilnblnk( xx_hfluxm_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_hfluxm_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif -# ifdef ALLOW_ETAN0_CONTROL - foo2D=etan%d - il=ilnblnk( xx_etan_file ) - write(fname(1:MAX_LEN_FNAM),'(3a)') - & 'ad',xx_etan_file(1:il),'.' - call write_fld_xy_rl(fname,suff,foo2D,myIter,1) -# endif cc# ifdef ALLOW_GENARR2D_CONTROL cc do ik = 1, maxCtrlArr2D cc foo2d=xx_genarr2d(:,:,:,:,ik)%d @@ -594,7 +834,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) # endif /* forward run only within AD setting */ -# ifdef ALLOW_CTRL +# ifdef ALLOW_CTRL # ifndef EXCLUDE_CTRL_PACK # ifdef ALLOW_OPENAD cph-- ad hoc fix for OpenAD time stepping counter lagging one step @@ -638,7 +878,7 @@ SUBROUTINE THE_MODEL_MAIN(myThid) #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM */ #ifdef ALLOW_PETSC - call streamice_finalize_petsc + CALL STREAMICE_FINALIZE_PETSC #endif #ifdef ALLOW_MNC diff --git a/pkg/opps/OPPS.h b/pkg/opps/OPPS.h index 848889db54..33b0430fd1 100644 --- a/pkg/opps/OPPS.h +++ b/pkg/opps/OPPS.h @@ -4,44 +4,39 @@ CBOP C !ROUTINE: OPPS.h C !DESCRIPTION: \bv -C /==========================================================\ +C *==========================================================* C | OPPS.h | C | o Basic header for Paluszkiewicz and Romea (1997) | C | Ocean Penetrative Plume Scheme (OPPS) | C | Contains all OPPS field declarations. | -C \==========================================================/ +C *==========================================================* C----------------------------------------------------------------------- -C C Parameters that can be set in data.opps C -C MAX_ABE_ITERATIONS - maximum for iteration on fractional size -C (default=1) -C In the present implementation, there is no -C iteration and max_abe_iterations should -C always be 1 -C OPPSdebugLevel - sets internal debug level (default = 0) to -C produce some output for debugging -C PlumeRadius - default = 100 m -C STABILITY_THRESHOLD - threshold of vertical density difference, -C beyond which convection starts -C (default = -1.e-4 kg/m^3) -C FRACTIONAL_AREA - (initial) fractional area that plume(s) -C occupies (default = 0.1) -C MAX_FRACTIONAL_AREA - maximum of above (default = 0.8), not used -C VERTICAL_VELOCITY - initial (positive=downward) vertical -C velocity of plume (default=0.03m/s) -C ENTRAINMENT_RATE - default = - 0.05 -C e2 - 2*ENTRAINMENT_RATE (cannot be set) -C useGCMwVel - flag to replace VERTICAL_VELOCITY with -C actual vertical velocity of GCM, probably -C useless (default = .false.) -C OPPSwriteState - flag to turn on ouput (.false.) -C OPPSdumpFreq - default = dumpFreq (currently there is no -C snap-shot output) -C OPPStaveFreq - default = taveFreq -C -C OPPSconvectCount - counter for freqency of convection events +C MAX_ABE_ITERATIONS :: maximum for iteration on fractional size +C (default=1) +C In the present implementation, there is no +C iteration and max_abe_iterations should +C always be 1 +C OPPSdebugLevel :: sets internal debug level (default = 0) to +C produce some output for debugging +C PlumeRadius :: default = 100 m +C STABILITY_THRESHOLD :: threshold of vertical density difference, +C beyond which convection starts +C (default = -1.e-4 kg/m^3) +C FRACTIONAL_AREA :: (initial) fractional area that plume(s) +C occupies (default = 0.1) +C MAX_FRACTIONAL_AREA :: maximum of above (default = 0.8), not used +C VERTICAL_VELOCITY :: initial (positive=downward) vertical +C velocity of plume (default=0.03m/s) +C ENTRAINMENT_RATE :: default = - 0.05 +C e2 :: 2*ENTRAINMENT_RATE (cannot be set) +C useGCMwVel :: flag to replace VERTICAL_VELOCITY with +C actual vertical velocity of GCM, probably +C useless (default = .false.) +C OPPSdumpFreq :: default = dumpFreq (currently there is no +C snap-shot output) C----------------------------------------------------------------------- C \ev CEOP @@ -50,7 +45,7 @@ CEOP CML default values from original code CML PARAMETER(MAX_ABE_ITERATIONS=1) INTEGER OPPSdebugLevel - COMMON /OPPS_PARMS_I/ + COMMON /OPPS_PARMS_I/ & MAX_ABE_ITERATIONS, OPPSdebugLevel _RL PlumeRadius @@ -60,8 +55,7 @@ CML PARAMETER(MAX_ABE_ITERATIONS=1) _RL VERTICAL_VELOCITY _RL ENTRAINMENT_RATE _RL e2 - _RL OPPSdumpFreq - _RL OPPStaveFreq +C _RL OPPSdumpFreq CML default values from original code CML PARAMETER ( PlumeRadius = 100.D0 ) CML PARAMETER ( STABILITY_THRESHOLD = -1.E-4 ) @@ -70,23 +64,20 @@ CML PARAMETER ( MAX_FRACTIONAL_AREA = .8E0 ) CML PARAMETER ( VERTICAL_VELOCITY = .02E0 ) CML PARAMETER ( ENTRAINMENT_RATE = -.05E0 ) CML PARAMETER ( e2 = 2.E0*ENTRAINMENT_RATE ) - COMMON /OPPS_PARMS_R/ + COMMON /OPPS_PARMS_R/ & PlumeRadius, & STABILITY_THRESHOLD, & FRACTIONAL_AREA, & MAX_FRACTIONAL_AREA, & VERTICAL_VELOCITY, & ENTRAINMENT_RATE, - & e2, - & OPPSdumpFreq, OPPStaveFreq - - _RL OPPSconvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy, - & Nr,nSx,nSy) - COMMON /OPPS_FIELDS/ OPPSconvectCount + & e2 +C & , OPPSdumpFreq - LOGICAL OPPSisOn, OPPSwriteState, useGCMwVel -CML LOGICAL debug, done + LOGICAL OPPSisOn, useGCMwVel +C LOGICAL OPPSwriteState COMMON /OPPS_PARMS_L/ - & OPPSisOn, OPPSwriteState, useGCMwVel + & OPPSisOn, useGCMwVel +C & , OPPSwriteState #endif /* ALLOW_OPPS */ diff --git a/pkg/opps/OPPS_OPTIONS.h b/pkg/opps/OPPS_OPTIONS.h index 53e094cc46..2058131792 100644 --- a/pkg/opps/OPPS_OPTIONS.h +++ b/pkg/opps/OPPS_OPTIONS.h @@ -14,6 +14,9 @@ C *==========================================================* #ifdef ALLOW_OPPS C Package-specific Options & Macros go here +C allow snap-shot OPPS output +#undef ALLOW_OPPS_SNAPSHOT + C allow debugging OPPS_CALC #define ALLOW_OPPS_DEBUG diff --git a/pkg/opps/OPPS_TAVE.h b/pkg/opps/OPPS_TAVE.h deleted file mode 100644 index 03a01e2fd7..0000000000 --- a/pkg/opps/OPPS_TAVE.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifdef ALLOW_OPPS - -C *==========================================================* -C | OPPS_TAVE.h -C | o Header for OPPS time-average output -C *==========================================================* - -#ifdef ALLOW_TIMEAVE -C---------------------------------------------------------------- -C OPPS_timeAve - time of temporal integration (s) for each thread -C---------------------------------------------------------------- - - _RL OPPS_timeAve(nSx,nSy) - COMMON /OPPS_TAVE_COUNT/ OPPS_timeAve - -C---------------------------------------------------------------- -C OPPS*tave - Time-averaging OPPS variables -C---------------------------------------------------------------- - - _RL OPPSconvCountTave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /OPPS_TAVE_FIELDS/ - & OPPSconvCountTave - -#endif /* ALLOW_TIMEAVE */ - -#endif /* ALLOW_OPPS */ diff --git a/pkg/opps/opps_calc.F b/pkg/opps/opps_calc.F index ca14126f4f..45d686539c 100644 --- a/pkg/opps/opps_calc.F +++ b/pkg/opps/opps_calc.F @@ -14,6 +14,7 @@ C !INTERFACE: ====================================================== SUBROUTINE OPPS_CALC( U tracerEnv, + O OPPSconvectCount, I wVel, I kMax, nTracer, nTracerInuse, I I, J, bi, bj, myTime, myIter, myThid ) @@ -63,22 +64,25 @@ SUBROUTINE OPPS_CALC( IMPLICIT NONE -C !USES: ============================================================ +C !USES: ============================================================== #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "OPPS.h" #include "GRID.h" -C !INPUT PARAMETERS: =================================================== +C !INPUT/OUTPUT PARAMETERS: ============================================ C Routine arguments +C OPPSconvectCount :: counter for freqency of convection events C bi, bj :: array indices on which to apply calculations C myTime :: Current time in simulation - - INTEGER I, J, bi, bj, KMax, nTracer, nTracerInUse - INTEGER myThid, myIter + INTEGER KMax, nTracer, nTracerInUse + _RL tracerEnv(Nr,nTracer) + _RL OPPSconvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL wVel(Nr) + INTEGER I, J, bi, bj _RL myTime - _RL tracerEnv(Nr,nTracer),wVel(Nr) + INTEGER myThid, myIter #ifdef ALLOW_OPPS C !FUNCTIONS: ========================================================== @@ -414,8 +418,7 @@ SUBROUTINE OPPS_CALC( C count convection event in this grid cell - OPPSconvectCount(I,J,K,bi,bj) = - & OPPSconvectCount(I,J,K,bi,bj) + 1. _d 0 + OPPSconvectCount(I,J,K) = OPPSconvectCount(I,J,K) + 1. _d 0 C jump here if k = maxdepth or if level not unstable, go to next C profile point diff --git a/pkg/opps/opps_check.F b/pkg/opps/opps_check.F index 4f9ad0cc8e..62ac8e5acc 100644 --- a/pkg/opps/opps_check.F +++ b/pkg/opps/opps_check.F @@ -1,11 +1,11 @@ #include "OPPS_OPTIONS.h" SUBROUTINE OPPS_CHECK( myThid ) -C /==========================================================\ -C | SUBROUTINE OPPS_CHECK | +C *==========================================================* +C | SUBROUTINE OPPS_CHECK | C | o Validate basic package setup and inter-package | -C | dependencies. | -C \==========================================================/ +C | dependencies. | +C *==========================================================* IMPLICIT NONE C === Global variables === @@ -14,64 +14,66 @@ SUBROUTINE OPPS_CHECK( myThid ) #include "PARAMS.h" C === Routine arguments === -C myThid - Number of this instance of OPPS_CHECK +C myThid :: my Thread Id number INTEGER myThid #ifdef ALLOW_OPPS - C === Local variables === -C msgBuf - Informational/error meesage buffer +C msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf + _BEGIN_MASTER(myThid) + WRITE(msgBuf,'(A)') 'OPPS_CHECK: #define ALLOW_OPPS' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) C So far, OPPS works only with oceanic z-coordinates IF ( buoyancyRelation .NE. 'OCEANIC' ) THEN WRITE(msgBuf,'(A)') & 'OPPS works only with buoyancyRelation = ''OCEANIC''' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF C OPPS needs convection turned off (will be packaged later) - IF (cAdjFreq.NE.0. .OR. + IF ( cAdjFreq.NE.0. .OR. & ivdc_kappa.NE.0. ) THEN WRITE(msgBuf,'(A)') 'Some form of convection has been enabled' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useKPP ) THEN WRITE(msgBuf,'(A)') & 'OPPS and KPP cannot be turned on at the same time' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( usePP81 ) THEN - WRITE(msgBuf,'(A)') + WRITE(msgBuf,'(A)') & 'OPPS and PP81 cannot be turned on at the same time' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useMY82 ) THEN - WRITE(msgBuf,'(A)') + WRITE(msgBuf,'(A)') & 'OPPS and MY82 cannot be turned on at the same time' - CALL PRINT_ERROR( msgBuf , 1) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF IF ( useGGL90 ) THEN - WRITE(msgBuf,'(A)') + WRITE(msgBuf,'(A)') & 'OPPS and GGL90 cannot be turned on at the same time' CALL PRINT_ERROR( msgBuf , 1) STOP 'ABNORMAL END: S/R OPPS_CHECK' ENDIF + _END_MASTER(myThid) #endif /* ALLOW_OPPS */ - return - end + RETURN + END diff --git a/pkg/opps/opps_init.F b/pkg/opps/opps_init.F index 5cdd6ad343..dd442d458f 100644 --- a/pkg/opps/opps_init.F +++ b/pkg/opps/opps_init.F @@ -1,49 +1,58 @@ #include "OPPS_OPTIONS.h" SUBROUTINE OPPS_INIT( myThid ) -C /==========================================================\ +C *==========================================================* C | SUBROUTINE OPPS_INIT | C | o Routine to initialize OPPS parameters and variables. | -C |==========================================================| +C *==========================================================* C | Initialize OPPS parameters and variables. | -C \==========================================================/ +C *==========================================================* IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "GRID.h" #include "OPPS.h" C === Routine arguments === -C myThid - Number of this instance of MY_INIT +C myThid :: my Thread Id number INTEGER myThid -#ifdef ALLOW_OPPS - +C !LOCAL VARIABLES : C === Local variables === -C i,j,k,bi,bj - Loop counters - - INTEGER i, j, k, bi, bj +C diagNum :: diagnostics number in the (long) list of available diag. +C diagName :: local short name (8c) of a diagnostics +C diagCode :: local parser field with characteristics of the diagnostics +C cf head of S/R DIAGNOSTICS_INIT_EARLY or DIAGNOSTICS_MAIN_INIT +C diagUnits :: local string (16c): physical units of a diagnostic field +C diagTitle :: local string (80c): description of field in diagnostic + +#ifdef ALLOW_DIAGNOSTICS + INTEGER diagNum + CHARACTER*8 diagName + CHARACTER*16 diagCode + CHARACTER*16 diagUnits + CHARACTER*(80) diagTitle +#endif +CEOP C----------------------------------------------------------------------- -C Initialize OPPS variables +C Initialize OPPS variables C----------------------------------------------------------------------- - do bj = myByLo(myThid), myByHi(myThid) - do bi = myBxLo(myThid), myBxHi(myThid) - do k = 1, Nr - do j = 1-OLy, sNy+OLy - do i = 1-OLx, sNx+OLx - OPPSconvectCount(I,J,K,bi,bj) = 0. _d 0 - end do - end do - end do - end do - end do - -#endif /* ALLOW_OPPS */ - - return - end +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + diagName = 'OPPScadj' + diagTitle = 'OPPS Convective Adjustment Index [0-1] ' + diagUnits = 'fraction ' + diagCode = 'SMR LR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + + RETURN + END diff --git a/pkg/opps/opps_interface.F b/pkg/opps/opps_interface.F index 4f3442f551..df775bf475 100644 --- a/pkg/opps/opps_interface.F +++ b/pkg/opps/opps_interface.F @@ -42,20 +42,26 @@ SUBROUTINE OPPS_INTERFACE( C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == -C bi,bj,iMin,iMax,jMin,jMax,K - Loop counters -C myTime - Current time in simulation -C myIter - Current iteration in simulation -C myThid - Thread number of this instance of S/R CONVECT - INTEGER bi,bj,iMin,iMax,jMin,jMax +C bi, bj :: tile indices +C iMin, iMax, jMin, jMax :: Loop range +C myTime :: Current time in simulation +C myIter :: Current iteration in simulation +C myThid :: Thread number of this instance of S/R CONVECT + INTEGER bi, bj, iMin, iMax, jMin, jMax _RL myTime INTEGER myIter INTEGER myThid -#ifdef ALLOW_OPPS +#ifdef ALLOW_OPPS_SNAPSHOT +C !FUNCTIONS: + LOGICAL DIFFERENT_MULTIPLE + EXTERNAL DIFFERENT_MULTIPLE +#endif C !LOCAL VARIABLES: C == Local variables == -C msgBuf - Informational/error meesage buffer +C OPPSconvectCount :: counter for freqency of convection events +C msgBuf :: Informational/error message buffer INTEGER nTracer #ifdef ALLOW_PTRACERS PARAMETER( nTracer = 2+PTRACERS_num ) @@ -69,7 +75,11 @@ SUBROUTINE OPPS_INTERFACE( _RL tMinNew, tMaxNew, sMinNew, sMaxNew _RL wVelLoc(Nr) _RL tracerLoc(Nr,nTracer) + _RL OPPSconvectCount(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) CHARACTER*(MAX_LEN_MBUF) msgBuf +#ifdef ALLOW_OPPS_SNAPSHOT + CHARACTER*(10) suff +#endif CEOP C initialization @@ -87,16 +97,15 @@ SUBROUTINE OPPS_INTERFACE( sMaxNew = -1. _d 23 sMinNew = 1. _d 23 tMinNew = 1. _d 23 -C re-initialize convection counter +C Initialize convection counter DO K=1,Nr - DO J=1-Oly,sNy+Oly - DO I=1-Olx,sNx+Olx - OPPSconvectCount(I,J,K,bi,bj) = 0. _d 0 + DO J=1-OLy,sNy+OLy + DO I=1-OLx,sNx+OLx + OPPSconvectCount(I,J,K) = 0. _d 0 ENDDO ENDDO ENDDO -C DO J=jMin,jMax DO I=iMin,iMax IF ( kSurfC(I,J,bi,bj) .LE. Nr ) THEN @@ -138,8 +147,9 @@ SUBROUTINE OPPS_INTERFACE( kMax = kLowC(I,J,bi,bj) CALL OPPS_CALC( U tracerLoc, - I wVelLoc,kMax,nTracer,nTracerInUse, - I I,J,bi,bj,myTime,myIter,myThid) + O OPPSconvectCount, + I wVelLoc, kMax, nTracer, nTracerInUse, + I I, J, bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_OPPS_DEBUG IF ( OPPSdebugLevel .GE. debLevA ) THEN C determine range of temperature and salinity @@ -179,7 +189,25 @@ SUBROUTINE OPPS_INTERFACE( ENDIF ENDDO ENDDO -#endif /* ALLOW_OPPS */ + +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL( OPPSconvectCount, 'OPPScadj', + & 0 , Nr, 2, bi, bj, myThid ) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + +#ifdef ALLOW_OPPS_SNAPSHOT + IF ( DIFFERENT_MULTIPLE( dumpFreq, myTime, deltaTClock ) ) THEN +c IF (OPPSwriteState) THEN +C Write each snap-shot as a new file +C- Caution: This might not work in multi-threaded with multiple fields to write + WRITE(suff,'(I10.10)') myIter + CALL WRITE_LOCAL_RL( 'OPPSconv.', suff, Nr, OPPSconvectCount, + & bi, bj, 1, myIter, myThid ) +c ENDIF + ENDIF +#endif /* ALLOW_OPPS_SNAPSHOT */ RETURN END diff --git a/pkg/opps/opps_output.F b/pkg/opps/opps_output.F deleted file mode 100644 index 1a0f5643e5..0000000000 --- a/pkg/opps/opps_output.F +++ /dev/null @@ -1,159 +0,0 @@ -#include "OPPS_OPTIONS.h" - -CBOP -C !ROUTINE: OPPS_OUTPUT -C !INTERFACE: - SUBROUTINE OPPS_OUTPUT( myTime, myIter, myThid ) - -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE OPPS_OUTPUT -C | o Do OPPS diagnostic output. -C *========================================================== -C | The following CPP flag (MULTIPLE_RECORD_OPPS_STATE_FILES) is -C | #define/#undefed here since it is specific to this routine -C | and very user-preference specific. -C | -C | If #undefed (default) the state files are written as in all versions -C | prior to checkpoint32, where a file is created per variable, per time -C | and per tile. This *has* to be the default because most users use this -C | mode and all utilities and scripts (diagnostic) assume this form. -C | It is also robust, as explained below. -C | -C | If #defined, subsequent snap-shots are written as records in the -C | same file (no iteration number in filenames). -C | Advantages: - fewer files -C | - for small problems, is easy to copy the output around -C | Disadvantages: -C | - breaks a lot of diagnostic scripts -C | - for large or long problems this creates huge files -C | - is an unexpected, unsolicited change in behaviour which came -C | as a surprise (in c32) and inconvenience to several users -C | - can not accomodate changing the frequency of output -C | after a pickup (this is trivial in previous method -C | but needs new code and parameters in this new method) -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE -C === Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "OPPS.h" -#include "OPPS_TAVE.h" - -C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myTime :: my time in simulation ( s ) -C myIter :: my Iteration number -C myThid :: my Thread Id number - _RL myTime - INTEGER myIter - INTEGER myThid - -#ifdef ALLOW_OPPS -#ifdef ALLOW_TIMEAVE - -C !FUNCTIONS: - LOGICAL DIFFERENT_MULTIPLE - EXTERNAL DIFFERENT_MULTIPLE - -C !LOCAL VARIABLES: -C == Local variables == - CHARACTER*(10) suff - INTEGER bi, bj - _RL DDTT -#endif /* ALLOW_TIMEAVE */ -CEOP - -CMLC---------------------------------------------------------------- -CMLC Dump snapshot of OPPS variables. -CMLC---------------------------------------------------------------- -CML -CML IF ( myIter.NE.nIter0 .AND. -CML & DIFFERENT_MULTIPLE( OPPSdumpFreq, myTime, deltaTClock ) -CML & ) THEN -CML -CML if (OPPSwriteState) then -CMLC Write each snap-shot as a new file -CMLC - creates many files but for large configurations is easier to -CMLC transfer analyse a particular snap-shots -CML WRITE(suff,'(I10.10)') myIter -CML CALL WRITE_FLD_XYZ_RL('OPPSconv.',suff,OPPSconvectCount, -CML & myIter,myThid) -CML endif -CML -CML ENDIF - -C---------------------------------------------------------------- -C Do OPPS time averaging. -C---------------------------------------------------------------- - -#ifdef ALLOW_TIMEAVE - IF ( OPPStaveFreq.GT.0. _d 0 ) THEN - - IF ( myIter.EQ.nIter0 ) THEN -C Initialize averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( OPPSconvCountTave, Nr, bi, bj, myThid ) - OPPS_timeAve(bi,bj) = 0. - ENDDO - ENDDO - - ELSE -C Cumulate OPPS fields (for Time Average) - DDTT = deltaTClock - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_CUMULATE( OPPSconvCountTave, OPPSconvectCount, - & Nr, DDTT, bi, bj, myThid ) -C Keep record of how much time has been integrated over - OPPS_timeAve(bi,bj) = OPPS_timeAve(bi,bj)+DDTT - ENDDO - ENDDO - ENDIF - -C Dump files and restart average computation if needed - IF ( myIter.NE.nIter0 .AND. - & DIFFERENT_MULTIPLE( OPPStaveFreq, myTime, deltaTClock ) - & ) THEN - -C Normalize by integrated time - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_NORMALIZE( OPPSconvCountTave, - & OPPS_timeAve, Nr, bi, bj, myThid ) - ENDDO - ENDDO - -C Write each snap-shot as a new file - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF - CALL WRITE_FLD_XYZ_RL('OPPSconvtave.',suff,OPPSconvCountTave, - & myIter,myThid) - -C Reset averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( OPPSconvCountTave, Nr, bi, bj, myThid ) - OPPS_timeAve(bi,bj) = 0. - ENDDO - ENDDO - -C- end dump-files block - ENDIF - -C- end if OPPStaveFreq > 0 - ENDIF -#endif /* ALLOW_TIMEAVE */ - -#endif /* ALLOW_OPPS */ - - RETURN - END diff --git a/pkg/opps/opps_readparms.F b/pkg/opps/opps_readparms.F index b26f61f008..e6fc065084 100644 --- a/pkg/opps/opps_readparms.F +++ b/pkg/opps/opps_readparms.F @@ -41,10 +41,8 @@ SUBROUTINE OPPS_READPARMS( myThid ) & MAX_FRACTIONAL_AREA, & VERTICAL_VELOCITY, & ENTRAINMENT_RATE, - & useGCMwVel, - & OPPSdumpFreq, - & OPPStaveFreq, - & OPPSwriteState + & useGCMwVel +C & , OPPSwriteState, OPPSdumpFreq C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -72,10 +70,9 @@ SUBROUTINE OPPS_READPARMS( myThid ) MAX_FRACTIONAL_AREA = .8 _d 0 VERTICAL_VELOCITY = .03 _d 0 ENTRAINMENT_RATE = -.05 _d 0 - OPPSdumpFreq = dumpFreq - OPPStaveFreq = taveFreq - OPPSwriteState = .FALSE. useGCMwVel = .FALSE. +C OPPSdumpFreq = dumpFreq +C OPPSwriteState = .FALSE. C Open and read the data.opps file _BEGIN_MASTER(myThid) diff --git a/pkg/pkg_depend b/pkg/pkg_depend index 90dd77296e..c3cfe2df6a 100644 --- a/pkg/pkg_depend +++ b/pkg/pkg_depend @@ -28,6 +28,7 @@ ptracers +generic_advdiff matrix +ptracers -gchem gchem +ptracers dic +gchem +bling +gchem -dic cfc +gchem fizhi +gridalt +diagnostics -aim fizhi +atm_common @@ -39,6 +40,7 @@ flt +mdsio autodiff +mdsio ctrl +mdsio ecco +mdsio +cal +tapenade +autodiff grdchk +autodiff +cost +ctrl showflops +runclock diff --git a/pkg/pp81/PP81.h b/pkg/pp81/PP81.h index 2fe39ce905..8bea47b7ed 100644 --- a/pkg/pp81/PP81.h +++ b/pkg/pp81/PP81.h @@ -4,12 +4,12 @@ CBOP C !ROUTINE: PP81.h C !DESCRIPTION: \bv -C /==========================================================\ +C *==========================================================* C | PP81.h | C | o Basic header for Pacanowski and Philander (1981) | C | vertical mixing parameterization. | C | Contains all PP81 field declarations. | -C \==========================================================/ +C *==========================================================* C----------------------------------------------------------------------- C @@ -19,17 +19,16 @@ C PPviscMin, PPdiffMin - minimum viscosity/diffusivity in C surface layer. C Only used if ALLOW_PP81MOD is defined C PPviscMax - maximum allowed viscosity -C PPnu0, PPalpha - further parameters -C RiLimit - minimum Richardson number, +C PPnu0, PPalpha - further parameters +C RiLimit - minimum Richardson number, C follows from PPviscMax -C PPdumpFreq, PPtaveFreq - analogue to dumpFreq and taveFreq -C (=default) +C PPdumpFreq - analogue to dumpFreq (=default) C PPmixingMaps - if true, include PP diagnostic maps in STDOUT C PPwriteState - if true, write PP state to file C C Time varying parameters computed by subroutine pp_calc C PPviscAr - Vertical eddy viscosity coefficient (m^2/s) -C PPdiffKr - Vertical diffusion coefficient for heat, +C PPdiffKr - Vertical diffusion coefficient for heat, C salt and tracers (m^2/s) C C----------------------------------------------------------------------- @@ -37,15 +36,15 @@ C \ev CEOP INTEGER PPnRi - COMMON /PP81_PARMS_I/ + COMMON /PP81_PARMS_I/ & PPnRi _RL PPviscMin, PPdiffMin, PPviscMax _RL PPnu0, PPalpha, RiLimit - _RL PPdumpFreq, PPtaveFreq - COMMON /PP81_PARMS_R/ - & PPviscMin, PPdiffMin, PPviscMax, + _RL PPdumpFreq + COMMON /PP81_PARMS_R/ + & PPviscMin, PPdiffMin, PPviscMax, & PPnu0, PPalpha, RiLimit, - & PPdumpFreq, PPtaveFreq + & PPdumpFreq _RL PPviscAr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL PPdiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) diff --git a/pkg/pp81/PP81_TAVE.h b/pkg/pp81/PP81_TAVE.h deleted file mode 100644 index be71b3ebea..0000000000 --- a/pkg/pp81/PP81_TAVE.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifdef ALLOW_PP81 - -C *==========================================================* -C | PP81_TAVE.h -C | o Header for PP81 time-average output -C *==========================================================* - -#ifdef ALLOW_TIMEAVE -C---------------------------------------------------------------- -C PP_timeAve - time of temporal integration (s) for each thread -C---------------------------------------------------------------- - - _RL PP_timeAve(nSx,nSy) - COMMON /PP81_TAVE_COUNT/ PP_timeAve - -C---------------------------------------------------------------- -C PP*tave - Time-averaging PP variables -C---------------------------------------------------------------- - - _RL PPviscArtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL PPdiffKrtave(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - COMMON /PP81_TAVE_FIELDS/ - & PPviscArtave, PPdiffKrtave - -#endif /* ALLOW_TIMEAVE */ - -#endif /* ALLOW_PP81 */ diff --git a/pkg/pp81/pp81_calc.F b/pkg/pp81/pp81_calc.F index 955b0af8a1..cafbef48f6 100644 --- a/pkg/pp81/pp81_calc.F +++ b/pkg/pp81/pp81_calc.F @@ -33,7 +33,6 @@ subroutine PP81_CALC( #include "PP81.h" c#ifdef ALLOW_AUTODIFF_TAMC c#include "tamc.h" -c#include "tamc_keys.h" c#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT PARAMETERS: =================================================== @@ -117,6 +116,13 @@ subroutine PP81_CALC( C end K-loop ENDDO +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(PPviscAr,'PPviscAr',0,Nr,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(PPdiffKr,'PPdiffKr',0,Nr,1,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + #endif /* ALLOW_PP81 */ RETURN diff --git a/pkg/pp81/pp81_init_fixed.F b/pkg/pp81/pp81_init_fixed.F index 4945cc0820..a5982864ef 100644 --- a/pkg/pp81/pp81_init_fixed.F +++ b/pkg/pp81/pp81_init_fixed.F @@ -8,7 +8,7 @@ SUBROUTINE PP81_INIT_FIXED( myThid ) C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE PP81_INIT_FIXED -C | o Routine to initialize PP81 variables +C | o Routine to initialize PP81 variables C | that are kept fixed during the run. C *==========================================================* C \ev @@ -29,29 +29,6 @@ SUBROUTINE PP81_INIT_FIXED( myThid ) C !LOCAL VARIABLES : C === Local variables === -CML#ifdef ALLOW_MNC -CML IF (useMNC) THEN -CMLC Define grid types for Mellor-Yamada (MY) variables -CML CALL MNC_CW_ADD_VNAME('PPviscAr', 'Cen_xy_Hn__C__t', -CML & 4,5, myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPviscAr','units','m^2/s', -CML & myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPviscAr','long_name', -CML & 'MY_vertical_eddy_viscosity_coefficient', myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPviscAr', -CML & 'coordinates','XC YC RC iter', myThid) -CML -CML CALL MNC_CW_ADD_VNAME('PPdiffKr', 'Cen_xy_Hn__C__t', -CML & 4,5, myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPdiffKr','units','m^2/s', -CML & myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPdiffKr','long_name', -CML & 'MY_tracer_vertical_diffusion_coefficient', -CML & myThid) -CML CALL MNC_CW_ADD_VATTR_TEXT('PPdiffKr', -CML & 'coordinates','XC YC RC iter', myThid) -CML#endif /* ALLOW_MNC */ - #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL PP81_DIAGNOSTICS_INIT( myThid ) diff --git a/pkg/pp81/pp81_output.F b/pkg/pp81/pp81_output.F index 21f7d5f158..6455d2f1a1 100644 --- a/pkg/pp81/pp81_output.F +++ b/pkg/pp81/pp81_output.F @@ -42,7 +42,6 @@ SUBROUTINE PP81_OUTPUT( myTime, myIter, myThid ) #include "EEPARAMS.h" #include "PARAMS.h" #include "PP81.h" -#include "PP81_TAVE.h" C !INPUT/OUTPUT PARAMETERS: C == Routine arguments == @@ -62,10 +61,6 @@ SUBROUTINE PP81_OUTPUT( myTime, myIter, myThid ) C !LOCAL VARIABLES: C == Local variables == CHARACTER*(10) suff -#ifdef ALLOW_TIMEAVE - INTEGER bi, bj - _RL DDTT -#endif CEOP C---------------------------------------------------------------- @@ -91,89 +86,6 @@ SUBROUTINE PP81_OUTPUT( myTime, myIter, myThid ) ENDIF -C---------------------------------------------------------------- -C Do PP time averaging. -C---------------------------------------------------------------- - -#ifdef ALLOW_TIMEAVE - IF ( PPtaveFreq.GT.0. _d 0 ) THEN - - IF ( myIter.EQ.nIter0 ) THEN -C Initialize averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( PPviscArtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( PPdiffKrtave, Nr, bi, bj, myThid ) - PP_timeAve(bi,bj) = 0. - ENDDO - ENDDO - - ELSE -C Cumulate PP fields (for Time Average) - DDTT = deltaTClock - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_CUMULATE( PPviscArtave, PPviscAr, - & Nr, DDTT, bi, bj, myThid ) - CALL TIMEAVE_CUMULATE( PPdiffKrtave, PPdiffKr, - & Nr, DDTT, bi, bj, myThid ) -C Keep record of how much time has been integrated over - PP_timeAve(bi,bj) = PP_timeAve(bi,bj)+DDTT - ENDDO - ENDDO - ENDIF - -C Dump files and restart average computation if needed - IF ( myIter.NE.nIter0 .AND. - & DIFFERENT_MULTIPLE( PPtaveFreq, myTime, deltaTClock ) - & ) THEN - -C Normalize by integrated time - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_NORMALIZE( PPviscArtave, - & PP_timeAve, Nr, bi, bj, myThid ) - CALL TIMEAVE_NORMALIZE( PPdiffKrtave, - & PP_timeAve, Nr, bi, bj, myThid ) - ENDDO - ENDDO - -C Write each snap-shot as a new file - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF - CALL WRITE_FLD_XYZ_RL( 'PPviscAr-T.', suff, - & PPviscArTave, myIter, myThid ) - CALL WRITE_FLD_XYZ_RL( 'PPdiffKr-T.', suff, - & PPdiffKrTave, myIter, myThid ) - -C Reset averages to zero - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - CALL TIMEAVE_RESET( PPviscArtave, Nr, bi, bj, myThid ) - CALL TIMEAVE_RESET( PPdiffKrtave, Nr, bi, bj, myThid ) - PP_timeAve(bi,bj) = 0. - ENDDO - ENDDO - -C- end dump-files block - ENDIF - -C- end if PPtaveFreq > 0 - ENDIF -#endif /* ALLOW_TIMEAVE */ - -#ifdef ALLOW_DIAGNOSTICS -C- note: should move this part to S/R MY82_CALC (like we do in pkg/ggl90) -C do not fill during call from INITIALISE_VARIA - IF ( useDiagnostics .AND. myIter.NE.nIter0 ) THEN - CALL DIAGNOSTICS_FILL(PPviscAr,'PPviscAr',0,Nr,0,1,1,myThid) - CALL DIAGNOSTICS_FILL(PPdiffKr,'PPdiffKr',0,Nr,0,1,1,myThid) - ENDIF -#endif /* ALLOW_DIAGNOSTICS */ - #endif /* ALLOW_PP81 */ RETURN diff --git a/pkg/pp81/pp81_readparms.F b/pkg/pp81/pp81_readparms.F index f89ee7188f..04ad57d7ff 100644 --- a/pkg/pp81/pp81_readparms.F +++ b/pkg/pp81/pp81_readparms.F @@ -41,8 +41,7 @@ SUBROUTINE PP81_READPARMS( myThid ) & PPalpha, & PPdumpFreq, & PPMixingMaps, - & PPwriteState, - & PPtaveFreq + & PPwriteState C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -70,7 +69,6 @@ SUBROUTINE PP81_READPARMS( myThid ) PPalpha = 5. _d 0 RiLimit = UNSET_RL PPdumpFreq = dumpFreq - PPtaveFreq = taveFreq PPMixingMaps = .FALSE. PPwriteState = .FALSE. diff --git a/pkg/pp81/pp81_ri_number.F b/pkg/pp81/pp81_ri_number.F index 7847e2fd32..0abb025131 100644 --- a/pkg/pp81/pp81_ri_number.F +++ b/pkg/pp81/pp81_ri_number.F @@ -4,34 +4,27 @@ C !ROUTINE: PP81_RI_NUMBER C !INTERFACE: ========================================================== - subroutine PP81_RI_NUMBER( + SUBROUTINE PP81_RI_NUMBER( I bi, bj, K, iMin, iMax, jMin, jMax, O RiNumber, I myTime, myThid ) C !DESCRIPTION: \bv -C /==========================================================\ +C *==========================================================* C | SUBROUTINE PP81_RI_NUMBER | C | o Compute gradient Richardson number for Pacanowski and | C | Philander (1981) mixing scheme | -C \==========================================================/ - IMPLICIT NONE -c -c------------------------------------------------------------------------- - -c \ev +C *==========================================================* +C \ev C !USES: =============================================================== + IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" +#include "GRID.h" #include "DYNVARS.h" #include "PP81.h" -#include "GRID.h" -#ifdef ALLOW_AUTODIFF_TAMC -#include "tamc.h" -#include "tamc_keys.h" -#endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT PARAMETERS: =================================================== C Routine arguments @@ -130,8 +123,8 @@ subroutine PP81_RI_NUMBER( RiTmp(I,J) = RiNumber(I,J) ENDDO ENDDO - DO J=1-Oly+1,sNy+Oly-1 - DO I=1-Olx+1,sNx+Olx-1 + DO J=1-OLy+1,sNy+OLy-1 + DO I=1-OLx+1,sNx+OLx-1 RiNumber(I,J) = p5*RiTmp(I,J) & + p125*RiTmp(I-1,J) + p125*RiTmp(I+1,J) & + p125*RiTmp(I,J-1) + p125*RiTmp(I,J+1) @@ -143,4 +136,3 @@ subroutine PP81_RI_NUMBER( RETURN END - diff --git a/pkg/profiles/PROFILES_OPTIONS.h b/pkg/profiles/PROFILES_OPTIONS.h index 81f4f9f507..328e6d962f 100644 --- a/pkg/profiles/PROFILES_OPTIONS.h +++ b/pkg/profiles/PROFILES_OPTIONS.h @@ -1,21 +1,24 @@ -C CPP options file for PROFILES package -C Use this file for selecting options within the PROFILES package - #ifndef PROFILES_OPTIONS_H #define PROFILES_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +C CPP options file for PROFILES package +C Use this file for selecting options within the PROFILES package + #ifdef ALLOW_PROFILES C Package-specific Options & Macros go here -C To use file units between 9 and 99 (seems to conflict +C To use file units between 9 and 999 (seems to conflict C with NF_OPEN some times, but is needed when using g77) -# undef PROFILES_USE_MDSFINDUNITS +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define PROFILES_USE_MDSFINDUNITS + +C-- Undocumented Options: +#undef ALLOW_PROFILES_CLIMMASK +#undef ALLOW_PROFILES_EXCLUDE_CORNERS +#undef ALLOW_PROFILES_SAMPLESPLIT_COST #endif /* ALLOW_PROFILES */ #endif /* PROFILES_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/profiles/active_file_profiles_tap_adj.F b/pkg/profiles/active_file_profiles_tap_adj.F new file mode 100644 index 0000000000..fc8d7f83a4 --- /dev/null +++ b/pkg/profiles/active_file_profiles_tap_adj.F @@ -0,0 +1,142 @@ +#include "PROFILES_OPTIONS.h" + +c ================================================================== +c +c active_files_tap_adj.F: Routines to handle the I/O of the active file +c for the adjoint calculations with Tapenade. +c All files are direct access files. +c +c Routines +c o active_read_profile_b - Adjoint of active_read_profile +c o active_write_profile_b - Adjoint of active_write_profile +c +c changed: shreyasg911@gmail.com 26-Mar-2023 +c +c ================================================================== + + subroutine active_read_profile_b( + I active_num_file, + I nadactive_var, + I active_var, + I adactive_var, + I active_varnum, + I irec, + I lAdInit, + I myiter, + I bi, + I bj, + I mythid, + I dummy, + I dummyb + & ) + +C !DESCRIPTION: \bv +c ================================================================== +c SUBROUTINE active_read_profile_b +c ================================================================== +c o Adjoint of active_read_profile. +c ================================================================== + implicit none + +c == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" +#ifdef ALLOW_PROFILES +# include "PROFILES_SIZE.h" +# include "profiles.h" +#endif + +c == routine arguments == +c active_var_file: filename +c nadactive_var: integer size of adactive_var +c adactive_var: array +c irec: record number +c lAdInit: initialisation of corresponding adjoint +c variable and write to active file +c myIter: number of optimization iteration (default: 0) +c mythid: thread number for this instance + integer active_num_file, nadactive_var + _RL active_var(nadactive_var), adactive_var(nadactive_var) + integer active_varnum + integer irec + logical lAdInit + integer myiter + integer bi, bj, mythid + _RL dummy + _RL dummyb +c == end of interface == + +#ifdef ALLOW_PROFILES + + call active_read_profile_rl( fidadjoint(active_num_file,bi,bj) , + & active_num_file, + & nadactive_var, adactive_var, active_varnum, lAdInit, + & irec, prof_ind_glob(active_num_file,irec,bi,bj), + & REVERSE_SIMULATION, myiter,bi,bj, mythid) + +#endif + + end + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + + subroutine active_write_profile_b( + I active_num_file, + I nadactive_var, + I active_var, + I adactive_var, + I active_varnum, + I irec, + I myiter, + I bi, + I bj, + I mythid, + I dummy, + I dummyb + & ) + +C !DESCRIPTION: \bv +c ================================================================== +c SUBROUTINE active_write_profile_b +c ================================================================== +c o Adjoint of active_write_profile. +c ================================================================== + + implicit none + +c == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" +#ifdef ALLOW_PROFILES +# include "PROFILES_SIZE.h" +# include "profiles.h" +#endif + +c == routine arguments == +c active_var_file: filename +c nadactive_var: integer size of adactive_var +c adactive_var: array +c irec: record number +c myIter: number of optimization iteration (default: 0) +c mythid: thread number for this instance + integer active_num_file, nadactive_var + _RL active_var(nadactive_var), adactive_var(nadactive_var) + integer active_varnum + integer irec + integer myiter + integer bi, bj, mythid + _RL dummy + _RL dummyb +c == end of interface == + +#ifdef ALLOW_PROFILES + + call active_write_profile_rl( fidadjoint(active_num_file,bi,bj) , + & active_num_file, + & nadactive_var, adactive_var, active_varnum, + & irec, prof_ind_glob(active_num_file,irec,bi,bj), + & REVERSE_SIMULATION, myiter,bi,bj, mythid) + +#endif + + end diff --git a/pkg/profiles/cost_profiles.F b/pkg/profiles/cost_profiles.F index 4380285356..cef3df4532 100644 --- a/pkg/profiles/cost_profiles.F +++ b/pkg/profiles/cost_profiles.F @@ -47,7 +47,7 @@ SUBROUTINE cost_profiles( myiter, mytime, myThid ) integer optimcycle #endif character*(max_len_mbuf) msgbuf - character*(80) profilesfile, fnameequinc + character*(MAX_LEN_FNAM) profilesfile, fnameequinc integer IL, JL, err _RL objf_prof_tile (nSx,nSy) @@ -137,11 +137,11 @@ SUBROUTINE cost_profiles( myiter, mytime, myThid ) iG=bi+(myXGlobalLo-1)/sNx ! Kludge until unstructered tiles jG=bj+(myYGlobalLo-1)/sNy ! Kludge until unstructered tiles IL = ILNBLNK( profilesfiles(num_file) ) - write(profilesfile(1:80),'(1a)') + write(profilesfile,'(1a)') & profilesfiles(num_file)(1:IL) IL = ILNBLNK( profilesfile ) JL = ILNBLNK( profilesDir ) - write(fnameequinc(1:80),'(3a,i3.3,a,i3.3,a)') + write(fnameequinc,'(3a,i3.3,a,i3.3,a)') & profilesDir(1:JL),profilesfile(1:IL),'.',iG,'.',jG,'.equi.nc' c err = NF_OPEN(fnameequinc,NF_NOWRITE, @@ -416,11 +416,11 @@ SUBROUTINE cost_profiles( myiter, mytime, myThid ) iG=bi+(myXGlobalLo-1)/sNx ! Kludge until unstructered tiles jG=bj+(myYGlobalLo-1)/sNy ! Kludge until unstructered tiles IL = ILNBLNK( profilesfiles(num_file) ) - write(profilesfile(1:80),'(1a)') + write(profilesfile,'(1a)') & profilesfiles(num_file)(1:IL) IL = ILNBLNK( profilesfile ) JL = ILNBLNK( profilesDir ) - write(fnameequinc(1:80),'(3a,i3.3,a,i3.3,a)') + write(fnameequinc,'(3a,i3.3,a,i3.3,a)') & profilesDir(1:JL),profilesfile(1:IL),'.',iG,'.',jG,'.equi.nc' c err = NF_OPEN(fnameequinc,NF_NOWRITE, diff --git a/pkg/profiles/profiles_init_fixed.F b/pkg/profiles/profiles_init_fixed.F index 842aabe4c9..a5ce35955c 100644 --- a/pkg/profiles/profiles_init_fixed.F +++ b/pkg/profiles/profiles_init_fixed.F @@ -50,8 +50,8 @@ SUBROUTINE profiles_init_fixed( myThid ) _RL lat_fac, lon_fac integer prof_i, prof_j integer vec_start(2), vec_count(2), profno_div1000, kk - character*(80) profilesfile, fnamedatanc - character*(80) fnameequinc, adfnameequinc + character*(MAX_LEN_FNAM) profilesfile, fnamedatanc + character*(MAX_LEN_FNAM) fnameequinc, adfnameequinc integer IL, JL, KL, err logical exst @@ -163,7 +163,7 @@ SUBROUTINE profiles_init_fixed( myThid ) profilesfile=' ' IL = ILNBLNK( profilesfiles(num_file) ) if (IL.NE.0) then - write(profilesfile(1:80),'(1a)') + write(profilesfile,'(1a)') & profilesfiles(num_file)(1:IL) write(msgbuf,'(a)') ' ' call print_message( msgbuf, standardmessageunit, @@ -181,7 +181,7 @@ SUBROUTINE profiles_init_fixed( myThid ) c open data files and read information C=========================================================== - write(fnamedatanc(1:80),'(2a)') profilesfile(1:IL),'.nc' + write(fnamedatanc,'(2a)') profilesfile(1:IL),'.nc' err = NF_OPEN(fnamedatanc, 0, fiddata(num_file,bi,bj)) c1) read the number of profiles : @@ -669,9 +669,9 @@ SUBROUTINE profiles_init_fixed( myThid ) if (profilesDoNcOutput) then - write(fnameequinc(1:80),'(3a,i3.3,a,i3.3,a)') + write(fnameequinc,'(3a,i3.3,a,i3.3,a)') & profilesDir(1:JL),profilesfile(1:IL),'.',iG,'.',jG,'.equi.nc' - write(adfnameequinc(1:80),'(4a,i3.3,a,i3.3,a)') + write(adfnameequinc,'(4a,i3.3,a,i3.3,a)') & profilesDir(1:JL),'ad', & profilesfile(1:IL),'.',iG,'.',jG,'.equi.nc' @@ -698,9 +698,9 @@ SUBROUTINE profiles_init_fixed( myThid ) #endif else - write(fnameequinc(1:80),'(3a,i3.3,a,i3.3,a)') + write(fnameequinc,'(3a,i3.3,a,i3.3,a)') & profilesDir(1:JL),profilesfile(1:IL),'.',iG,'.',jG,'.equi.data' - write(adfnameequinc(1:80),'(4a,i3.3,a,i3.3,a)') + write(adfnameequinc,'(4a,i3.3,a,i3.3,a)') & profilesDir(1:JL),'ad', & profilesfile(1:IL),'.',iG,'.',jG,'.equi.data' @@ -873,7 +873,7 @@ SUBROUTINE profiles_init_fixed( myThid ) jG=bj+(myYGlobalLo-1)/sNy ! Kludge until unstructered tiles cgf XC grid call MDSFINDUNIT( fid , mythid ) - write(fnameequinc(1:80),'(a,i3.3,a,i3.3,a,i4.4,a,i4.4,a)') + write(fnameequinc,'(a,i3.3,a,i3.3,a,i4.4,a,i4.4,a)') & 'profilesXCincl1PointOverlap.',iG,'.',jG,'.',sNx,'.',sNy,'.data' k=MDS_RECLEN(64,(sNx+2)*(sNy+2),mythid) WRITE(standardMessageUnit,'(A,/,2A)') @@ -893,7 +893,7 @@ SUBROUTINE profiles_init_fixed( myThid ) close(fid) cgf YC grid call MDSFINDUNIT( fid , mythid ) - write(fnameequinc(1:80),'(a,i3.3,a,i3.3,a,i4.4,a,i4.4,a)') + write(fnameequinc,'(a,i3.3,a,i3.3,a,i4.4,a,i4.4,a)') & 'profilesYCincl1PointOverlap.',iG,'.',jG,'.',sNx,'.',sNy,'.data' k=MDS_RECLEN(64,(sNx+2)*(sNy+2),mythid) WRITE(standardMessageUnit,'(A,/,A)') diff --git a/pkg/profiles/profiles_init_ncfile.F b/pkg/profiles/profiles_init_ncfile.F index e9e86b4920..91df30cb05 100644 --- a/pkg/profiles/profiles_init_ncfile.F +++ b/pkg/profiles/profiles_init_ncfile.F @@ -25,7 +25,7 @@ subroutine profiles_init_ncfile(num_file,fid1,file2,fid2,length, C ==================== Routine Variables ========================== integer fid1,fid2,dimid1,dimid2,varid(10),varid0 integer myThid,bi,bj,err,vecid(2), length, Zlength - character*(80) file2 + character*(MAX_LEN_FNAM) file2 integer irec, num_var,num_file real*8 tmp_vec(Zlength+1) c == end of interface == diff --git a/pkg/profiles/profiles_interp.F b/pkg/profiles/profiles_interp.F index c68ca58d0b..8eaffa7bb1 100644 --- a/pkg/profiles/profiles_interp.F +++ b/pkg/profiles/profiles_interp.F @@ -18,7 +18,7 @@ SUBROUTINE profiles_interp( I var_cur, I itr_cur, I file_cur, - I mytime, + I myTime, I bi, I bj, I myThid @@ -36,7 +36,8 @@ SUBROUTINE profiles_interp( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_PROFILES # include "PROFILES_SIZE.h" @@ -47,8 +48,8 @@ SUBROUTINE profiles_interp( #include "PTRACERS_FIELDS.h" #endif C ==================== Routine Variables ========================== - _RL mytime - integer mythid + _RL myTime + integer myThid integer file_cur, itr_cur character*(8) var_cur #ifndef ALLOW_PROFILES diff --git a/pkg/ptracers/PTRACERS_SIZE.h b/pkg/ptracers/PTRACERS_SIZE.h index f9cb6c631c..fb5847cb04 100644 --- a/pkg/ptracers/PTRACERS_SIZE.h +++ b/pkg/ptracers/PTRACERS_SIZE.h @@ -4,7 +4,7 @@ CBOP C !ROUTINE: PTRACERS_SIZE.h C !INTERFACE: C #include PTRACERS_SIZE.h - + C !DESCRIPTION: C Contains passive tracer array size (number of tracers). @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 1 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/pkg/ptracers/ptracers_ad_check_lev2_dir.h b/pkg/ptracers/ptracers_ad_check_lev2_dir.h index ae82a6faec..20b81ab966 100644 --- a/pkg/ptracers/ptracers_ad_check_lev2_dir.h +++ b/pkg/ptracers/ptracers_ad_check_lev2_dir.h @@ -1,11 +1,2 @@ -#ifdef ALLOW_PTRACERS -# ifdef AUTODIFF_PTRACERS_SPLIT_FILES -CADJ STORE pTracer(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev2, key = ilev_2 -CADJ STORE gpTrNm1(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev2, key = ilev_2 -# else CADJ STORE pTracer = tapelev2, key = ilev_2 CADJ STORE gpTrNm1 = tapelev2, key = ilev_2 -# endif -#endif /* ALLOW_PTRACERS */ diff --git a/pkg/ptracers/ptracers_ad_check_lev3_dir.h b/pkg/ptracers/ptracers_ad_check_lev3_dir.h index 9a3dc40c6c..fe5d7e2eca 100644 --- a/pkg/ptracers/ptracers_ad_check_lev3_dir.h +++ b/pkg/ptracers/ptracers_ad_check_lev3_dir.h @@ -1,11 +1,2 @@ -#ifdef ALLOW_PTRACERS -# ifdef AUTODIFF_PTRACERS_SPLIT_FILES -CADJ STORE pTracer(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev3, key = ilev_3 -CADJ STORE gpTrNm1(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev3, key = ilev_3 -# else CADJ STORE pTracer = tapelev3, key = ilev_3 CADJ STORE gpTrNm1 = tapelev3, key = ilev_3 -# endif -#endif /* ALLOW_PTRACERS */ diff --git a/pkg/ptracers/ptracers_ad_check_lev4_dir.h b/pkg/ptracers/ptracers_ad_check_lev4_dir.h index 3f968cbd84..22e8c710bf 100644 --- a/pkg/ptracers/ptracers_ad_check_lev4_dir.h +++ b/pkg/ptracers/ptracers_ad_check_lev4_dir.h @@ -1,11 +1,2 @@ -#ifdef ALLOW_PTRACERS -# ifdef AUTODIFF_PTRACERS_SPLIT_FILES -CADJ STORE pTracer(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev4, key = ilev_4 -CADJ STORE gpTrNm1(:,:,:,:,:,1:PTRACERS_num) -CADJ & = tapelev4, key = ilev_4 -# else CADJ STORE pTracer = tapelev4, key = ilev_4 CADJ STORE gpTrNm1 = tapelev4, key = ilev_4 -# endif -#endif /* ALLOW_PTRACERS */ diff --git a/pkg/ptracers/ptracers_ad_dump.F b/pkg/ptracers/ptracers_ad_dump.F index ce337b53ef..d42ce17995 100644 --- a/pkg/ptracers/ptracers_ad_dump.F +++ b/pkg/ptracers/ptracers_ad_dump.F @@ -3,6 +3,9 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif CBOP C !ROUTINE: ptracers_ad_dump @@ -33,8 +36,14 @@ SUBROUTINE ptracers_ad_dump( myTime, myIter, myThid ) #include "PTRACERS_SIZE.h" #include "PTRACERS_PARAMS.h" #ifdef ALLOW_AUTODIFF_MONITOR +# include "AUTODIFF.h" +# include "AUTODIFF_PARAMS.h" # include "ptracers_adcommon.h" #endif +#ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +#endif C !INPUT/OUTPUT PARAMETERS: C myTime :: time counter for this thread @@ -52,44 +61,48 @@ SUBROUTINE ptracers_ad_dump( myTime, myIter, myThid ) EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer INTEGER ip - CHARACTER*(10) suff - CHARACTER*(MAX_LEN_FNAM) prefix - CHARACTER*(MAX_LEN_MBUF) msgBuf + CHARACTER*(8) diagName + CHARACTER*(MAX_LEN_FNAM) dumpName + LOGICAL doExch, doDump + _RS dumRS(1) CEOP - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN +C Handle exchange options + doDump = DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) + doExch = doDump +#ifdef ALLOW_DIAGNOSTICS + doExch = doExch.OR.useDiag4AdjOutp +#endif + IF (doExch) THEN + IF (dumpAdVarExch.EQ.1) THEN + DO ip = 1, PTRACERS_numInUse +#ifdef AUTODIFF_TAMC_COMPATIBILITY + CALL ADEXCH_XYZ_RL(myThid, adptracer(1-OLx,1-OLy,1,1,1,ip)) +#else + CALL ADEXCH_3D_RL(adptracer(1-OLx,1-OLy,1,1,1,ip), Nr, myThid) +#endif + ENDDO + ENDIF + ENDIF + IF (doDump) THEN CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) - ENDIF -C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run -C ==>> is very very very nasty !!! -c writeBinaryPrec = writeStatePrec -C <<== If you really want to mess-up with this at your own risk, -C <<== uncomment the line above - - DO ip = 1, PTRACERS_numInUse - WRITE(prefix,'(A10,A2,A1)') - & 'ADJptracer', PTRACERS_ioLabel(ip), '.' - - CALL WRITE_FLD_XYZ_RL( - & prefix, suff, - & adptracer(1-OLx,1-OLy,1,1,1,ip), 1, myThid ) + DO ip = 1, PTRACERS_numInUse + WRITE(diagName,'(A6,A2)') 'ADJptr', PTRACERS_ioLabel(ip) + WRITE(dumpName,'(A10,A2,A1)') + & 'ADJptracer', PTRACERS_ioLabel(ip), '.' - ENDDO + CALL DUMP_ADJ_XYZ( dumRS, adptracer(1-OLx,1-OLy,1,1,1,ip), + & diagName, dumpName, 12, doDump, + & dumpAdRecMn, myTime, myIter, myThid ) + ENDDO + IF (doDump) THEN CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) - ENDIF #endif /* ALLOW_AUTODIFF_MONITOR */ diff --git a/pkg/ptracers/ptracers_convect.F b/pkg/ptracers/ptracers_convect.F index a57e881693..ff72ea8207 100644 --- a/pkg/ptracers/ptracers_convect.F +++ b/pkg/ptracers/ptracers_convect.F @@ -22,7 +22,6 @@ SUBROUTINE PTRACERS_CONVECT( bi,bj,k,weightA,weightB,myThid ) #include "PTRACERS_FIELDS.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: =================================================== @@ -43,6 +42,10 @@ SUBROUTINE PTRACERS_CONVECT( bi,bj,k,weightA,weightB,myThid ) C !LOCAL VARIABLES: ==================================================== C iTracer :: tracer index INTEGER iTracer +#ifdef ALLOW_AUTODIFF_TAMC +C kkey :: tape key (depends on levels, tracer, and tiles) + INTEGER kkey +#endif CEOP C Loop over tracers @@ -50,26 +53,14 @@ SUBROUTINE PTRACERS_CONVECT( bi,bj,k,weightA,weightB,myThid ) IF ( PTRACERS_StepFwd(iTracer) ) THEN #ifdef ALLOW_AUTODIFF_TAMC - act0 = iTracer - 1 - max0 = PTRACERS_num - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iptrkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - kkey = (iptrkey-1)*Nr + k + kkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + kkey = iTracer + (kkey-1)*PTRACERS_num + kkey = (kkey-1)*Nr + k CADJ STORE pTracer(:,:,k,bi,bj,iTracer) CADJ & = comlev1_bibj_k_ptracers, key=kkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - CALL CONVECTIVELY_MIXTRACER( + CALL CONVECTIVELY_MIXTRACER( I bi,bj,k,weightA,weightB, U pTracer(1-OLx,1-OLy,1,1,1,iTracer), I myThid ) diff --git a/pkg/ptracers/ptracers_diagnostics_init.F b/pkg/ptracers/ptracers_diagnostics_init.F index 5b9edcd222..f72ee15d12 100644 --- a/pkg/ptracers/ptracers_diagnostics_init.F +++ b/pkg/ptracers/ptracers_diagnostics_init.F @@ -227,6 +227,18 @@ SUBROUTINE PTRACERS_DIAGNOSTICS_INIT( myThid ) I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) ENDIF +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +#ifdef ALLOW_AUTODIFF + WRITE(diagName,'(A6,A2)') 'ADJptr',PTRACERS_ioLabel(iTrc) + WRITE(diagTitle,'(3A)') 'sensitivity to ', + & longName(1:ilng), ' concentration' + WRITE(diagUnits,'(2A)') 'dJ/',trcUnits + diagCode = 'SMRA MR ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| ENDDO diff --git a/pkg/ptracers/ptracers_integrate.F b/pkg/ptracers/ptracers_integrate.F index 46b550f0d1..47101cbb52 100644 --- a/pkg/ptracers/ptracers_integrate.F +++ b/pkg/ptracers/ptracers_integrate.F @@ -35,7 +35,6 @@ SUBROUTINE PTRACERS_INTEGRATE( #include "GAD.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: =================================================== @@ -111,6 +110,12 @@ SUBROUTINE PTRACERS_INTEGRATE( LOGICAL calcAdvection INTEGER iterNb _RL dummy(Nr) +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C ikey :: tape key (depends on tracer and tiles) +C kkey :: tape key (depends on levels, tracer, and tiles) + INTEGER tkey, ikey, kkey +#endif #ifdef ALLOW_DIAGNOSTICS _RL gTr_trp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL recip_dt @@ -176,20 +181,8 @@ SUBROUTINE PTRACERS_INTEGRATE( #endif #ifdef ALLOW_AUTODIFF_TAMC - act0 = iTracer - 1 - max0 = PTRACERS_num - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iptrkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + ikey = iTracer + (tkey-1)*PTRACERS_num #endif /* ALLOW_AUTODIFF_TAMC */ C- Apply AB on Tracer : @@ -219,17 +212,23 @@ SUBROUTINE PTRACERS_INTEGRATE( ENDDO #endif /* ALLOW_AUTODIFF */ +C salt_integrate.F uses INCLUDE_CALC_DIFFUSIVITY_CALL +c#ifdef INCLUDE_CALC_DIFFUSIVITY_CALL CALL CALC_3D_DIFFUSIVITY( I bi, bj, iMin,iMax,jMin,jMax, I GAD_TR, I PTRACERS_useGMRedi(iTracer), PTRACERS_useKPP(iTracer), O kappaRk, I myThid) +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE kappaRk = comlev1_bibj_ptracers, key = ikey, byte = isbyte +# endif +c#endif /* INCLUDE_CALC_DIFFUSIVITY_CALL */ #ifndef DISABLE_MULTIDIM_ADVECTION #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE pTracer(:,:,:,bi,bj,iTracer) -CADJ & = comlev1_bibj_ptracers, key=iptrkey, byte=isbyte +CADJ & = comlev1_bibj_ptracers, key=ikey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef PTRACERS_ALLOW_DYN_STATE @@ -271,7 +270,7 @@ SUBROUTINE PTRACERS_INTEGRATE( & .AND. (PTRACERS_advScheme(iTracer).NE.0) DO k=Nr,1,-1 #ifdef ALLOW_AUTODIFF_TAMC - kkey = (iptrkey-1)*Nr + k + kkey = k + (ikey-1)*Nr #endif /* ALLOW_AUTODIFF_TAMC */ kM1 = MAX(1,k-1) @@ -279,12 +278,12 @@ SUBROUTINE PTRACERS_INTEGRATE( kDown= 1+MOD(k,2) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fVer(:,:,:) = comlev1_bibj_k_ptracers, -CADJ & key = kkey, byte = isbyte, kind = isbyte -CADJ STORE gTracer(:,:,k) = comlev1_bibj_k_ptracers, -CADJ & key = kkey, byte = isbyte, kind = isbyte +CADJ STORE fVer(:,:,:) = comlev1_bibj_k_ptracers, +CADJ & key = kkey, kind = isbyte +CADJ STORE gTracer(:,:,k) = comlev1_bibj_k_ptracers, +CADJ & key = kkey, kind = isbyte CADJ STORE gpTrNm1(:,:,k,bi,bj,iTracer) = comlev1_bibj_k_ptracers, -CADJ & key = kkey, byte = isbyte, kind = isbyte +CADJ & key = kkey, kind = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL CALC_ADV_FLOW( I uFld, vFld, wFld, @@ -375,17 +374,25 @@ SUBROUTINE PTRACERS_INTEGRATE( ENDIF #ifdef NONLIN_FRSURF +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gTracer(:,:,k) = comlev1_bibj_k, key = kkey, kind = isbyte +# endif C- Account for change in level thickness IF (nonlinFreeSurf.GT.0) THEN CALL FREESURF_RESCALE_G( I bi, bj, k, U gTracer, I myThid ) - IF ( PTRACERS_AdamsBashGtr(iTracer) ) - & CALL FREESURF_RESCALE_G( + IF ( PTRACERS_AdamsBashGtr(iTracer) ) THEN +# ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE gpTrNm1(:,:,k,bi,bj,iTracer) = comlev1_bibj_k_ptracers, +CADJ & key = kkey, kind = isbyte +# endif + CALL FREESURF_RESCALE_G( I bi, bj, k, U gpTrNm1(1-OLx,1-OLy,1,bi,bj,iTracer), I myThid ) + ENDIF ENDIF #endif /* NONLIN_FRSURF */ @@ -394,6 +401,11 @@ SUBROUTINE PTRACERS_INTEGRATE( #ifdef ALLOW_DOWN_SLOPE IF ( PTRACERS_useDWNSLP(iTracer) ) THEN +# ifdef ALLOW_AUTODIFF_TAMC +C Here we can store on comlev1_bibj to save memory, because +C recip_hfac is the same for all tracers +CADJ STORE recip_hfac = comlev1_bibj, key = tkey, kind = isbyte +# endif IF ( usingPCoords ) THEN CALL DWNSLP_APPLY( I GAD_TR, bi, bj, kSurfC, @@ -435,8 +447,7 @@ SUBROUTINE PTRACERS_INTEGRATE( C-- Vertical advection & diffusion (implicit) for passive tracers #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE gTracer(:,:,:) = comlev1_bibj_ptracers, -CADJ & key=iptrkey, byte=isbyte +CADJ STORE gTracer(:,:,:) = comlev1_bibj_ptracers, key=ikey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef INCLUDE_IMPLVERTADV_CODE diff --git a/pkg/ptracers/ptracers_switch_onoff.F b/pkg/ptracers/ptracers_switch_onoff.F index c915abb2f9..cfce6d48b5 100644 --- a/pkg/ptracers/ptracers_switch_onoff.F +++ b/pkg/ptracers/ptracers_switch_onoff.F @@ -30,7 +30,9 @@ SUBROUTINE PTRACERS_SWITCH_ONOFF( #ifdef ALLOW_PTRACERS C !LOCAL VARIABLES: +#ifndef ALLOW_AUTODIFF INTEGER iTracer +#endif IF ( .NOT.PTRACERS_startAllTrc ) THEN diff --git a/pkg/regrid/REGRID_OPTIONS.h b/pkg/regrid/REGRID_OPTIONS.h index c552afb360..e871548525 100644 --- a/pkg/regrid/REGRID_OPTIONS.h +++ b/pkg/regrid/REGRID_OPTIONS.h @@ -1,20 +1,28 @@ -C CPP options file for pkg REGRID -C Use this file to select options within the REGRID package - #ifndef REGRID_OPTIONS_H #define REGRID_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" +CBOP +C !ROUTINE: REGRID_OPTIONS.h +C !INTERFACE: +C #include "REGRID_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for pkg "regrid": +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + #ifdef ALLOW_REGRID C Place CPP define/undef flags here -C Currently, there are no compile-time options for the REGRID -C package. +C Currently, there are no compile-time options for the REGRID package. + +C This CPP is not set (neither def nor undef) in CPP_EEMACROS.h +C so it is set (to undef) here +#undef RL_IS_REAL4 #endif /* ALLOW_REGRID */ #endif /* REGRID_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/rw/read_rec.F b/pkg/rw/read_rec.F index 311be2d618..ccb9c305bd 100644 --- a/pkg/rw/read_rec.F +++ b/pkg/rw/read_rec.F @@ -33,7 +33,7 @@ SUBROUTINE READ_REC_XY_RS( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -92,7 +92,7 @@ SUBROUTINE READ_REC_XY_RL( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -151,7 +151,7 @@ SUBROUTINE READ_REC_XYZ_RS( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -169,7 +169,6 @@ SUBROUTINE READ_REC_XYZ_RS( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -211,7 +210,7 @@ SUBROUTINE READ_REC_XYZ_RL( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -229,7 +228,6 @@ SUBROUTINE READ_REC_XYZ_RL( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -277,7 +275,7 @@ SUBROUTINE READ_REC_3D_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -294,7 +292,6 @@ SUBROUTINE READ_REC_3D_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -341,7 +338,7 @@ SUBROUTINE READ_REC_3D_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -358,7 +355,6 @@ SUBROUTINE READ_REC_3D_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -406,7 +402,7 @@ SUBROUTINE READ_REC_LEV_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER kSiz, kLo, kHi - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -423,7 +419,6 @@ SUBROUTINE READ_REC_LEV_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -471,7 +466,7 @@ SUBROUTINE READ_REC_LEV_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER kSiz, kLo, kHi - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -488,7 +483,6 @@ SUBROUTINE READ_REC_LEV_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -533,7 +527,7 @@ SUBROUTINE READ_REC_XZ_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Olx:sNx+Olx,nNz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -562,7 +556,7 @@ SUBROUTINE READ_REC_XZ_RS( #ifdef ALLOW_MDSIO CALL MDS_READ_SEC_XZ( I fName, fPrec, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, O dummyRL, field, I iRec, myThid ) #endif @@ -595,7 +589,7 @@ SUBROUTINE READ_REC_XZ_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Olx:sNx+Olx,nNz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -624,7 +618,7 @@ SUBROUTINE READ_REC_XZ_RL( #ifdef ALLOW_MDSIO CALL MDS_READ_SEC_XZ( I fName, fPrec, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, O field, dummyRS, I iRec, myThid ) #endif @@ -657,7 +651,7 @@ SUBROUTINE READ_REC_YZ_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Oly:sNy+Oly,nNz,nSx,nSy) + _RS field(1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -674,7 +668,6 @@ SUBROUTINE READ_REC_YZ_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -687,7 +680,7 @@ SUBROUTINE READ_REC_YZ_RS( #ifdef ALLOW_MDSIO CALL MDS_READ_SEC_YZ( I fName, fPrec, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, O dummyRL, field, I iRec, myThid ) #endif @@ -720,7 +713,7 @@ SUBROUTINE READ_REC_YZ_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Oly:sNy+Oly,nNz,nSx,nSy) + _RL field(1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -737,7 +730,6 @@ SUBROUTINE READ_REC_YZ_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -750,7 +742,7 @@ SUBROUTINE READ_REC_YZ_RL( #ifdef ALLOW_MDSIO CALL MDS_READ_SEC_YZ( I fName, fPrec, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, O field, dummyRS, I iRec, myThid ) #endif diff --git a/pkg/rw/write_rec.F b/pkg/rw/write_rec.F index a3e94612c8..d1345c850c 100644 --- a/pkg/rw/write_rec.F +++ b/pkg/rw/write_rec.F @@ -96,7 +96,7 @@ SUBROUTINE WRITE_REC_XY_RS( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -118,7 +118,6 @@ SUBROUTINE WRITE_REC_XY_RS( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -160,7 +159,7 @@ SUBROUTINE WRITE_REC_XY_RL( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -182,7 +181,6 @@ SUBROUTINE WRITE_REC_XY_RL( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -224,7 +222,7 @@ SUBROUTINE WRITE_REC_XYZ_RS( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -246,7 +244,6 @@ SUBROUTINE WRITE_REC_XYZ_RS( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -288,7 +285,7 @@ SUBROUTINE WRITE_REC_XYZ_RL( fName,field,iRec,myIter,myThid ) C !INPUT/OUTPUT PARAMETERS: C Arguments CHARACTER*(*) fName - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -310,7 +307,6 @@ SUBROUTINE WRITE_REC_XYZ_RL( fName,field,iRec,myIter,myThid ) c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -357,7 +353,7 @@ SUBROUTINE WRITE_REC_3D_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -378,7 +374,6 @@ SUBROUTINE WRITE_REC_3D_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -423,7 +418,7 @@ SUBROUTINE WRITE_REC_3D_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nNz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -444,7 +439,6 @@ SUBROUTINE WRITE_REC_3D_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -490,7 +484,7 @@ SUBROUTINE WRITE_REC_LEV_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER kSiz, kLo, kHi - _RS field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -511,7 +505,6 @@ SUBROUTINE WRITE_REC_LEV_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -557,7 +550,7 @@ SUBROUTINE WRITE_REC_LEV_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER kSiz, kLo, kHi - _RL field(1-Olx:sNx+Olx,1-Oly:sNy+Oly,kSiz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,1-OLy:sNy+OLy,kSiz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -578,7 +571,6 @@ SUBROUTINE WRITE_REC_LEV_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -622,7 +614,7 @@ SUBROUTINE WRITE_REC_XZ_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Olx:sNx+Olx,nNz,nSx,nSy) + _RS field(1-OLx:sNx+OLx,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -655,7 +647,7 @@ SUBROUTINE WRITE_REC_XZ_RS( #ifdef ALLOW_MDSIO CALL MDS_WRITE_SEC_XZ( I fName, fPrec, globalFile, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, I dummyRL, field, I iRec, myIter, myThid ) #endif @@ -688,7 +680,7 @@ SUBROUTINE WRITE_REC_XZ_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Olx:sNx+Olx,nNz,nSx,nSy) + _RL field(1-OLx:sNx+OLx,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -721,7 +713,7 @@ SUBROUTINE WRITE_REC_XZ_RL( #ifdef ALLOW_MDSIO CALL MDS_WRITE_SEC_XZ( I fName, fPrec, globalFile, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, I field, dummyRS, I iRec, myIter, myThid ) #endif @@ -754,7 +746,7 @@ SUBROUTINE WRITE_REC_YZ_RS( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RS field(1-Oly:sNy+Oly,nNz,nSx,nSy) + _RS field(1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -775,7 +767,6 @@ SUBROUTINE WRITE_REC_YZ_RS( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -788,7 +779,7 @@ SUBROUTINE WRITE_REC_YZ_RS( #ifdef ALLOW_MDSIO CALL MDS_WRITE_SEC_YZ( I fName, fPrec, globalFile, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, I dummyRL, field, I iRec, myIter, myThid ) #endif @@ -821,7 +812,7 @@ SUBROUTINE WRITE_REC_YZ_RL( CHARACTER*(*) fName INTEGER fPrec INTEGER nNz - _RL field(1-Oly:sNy+Oly,nNz,nSx,nSy) + _RL field(1-OLy:sNy+OLy,nNz,nSx,nSy) INTEGER iRec INTEGER myIter INTEGER myThid @@ -842,7 +833,6 @@ SUBROUTINE WRITE_REC_YZ_RL( c CHARACTER*(MAX_LEN_FNAM) fullName CEOP - c IF (myIter.GE.0) THEN c IL=ILNBLNK( fName ) c WRITE(fullName,'(2a,i10.10)') fName(1:IL),'.',myIter @@ -855,7 +845,7 @@ SUBROUTINE WRITE_REC_YZ_RL( #ifdef ALLOW_MDSIO CALL MDS_WRITE_SEC_YZ( I fName, fPrec, globalFile, useCurrentDir, - I fType, nNz, + I fType, nNz, 1, nNz, I field, dummyRS, I iRec, myIter, myThid ) #endif diff --git a/pkg/salt_plume/SALT_PLUME.h b/pkg/salt_plume/SALT_PLUME.h index b078c30262..075717f409 100644 --- a/pkg/salt_plume/SALT_PLUME.h +++ b/pkg/salt_plume/SALT_PLUME.h @@ -38,18 +38,18 @@ C default is 1.0 C SPsalFRAC: fraction of the salt by-product of seaice growth (not melt) that C will be re-distributed vertically according to the salt_plume_frac.F C Its default is 1. (for 100% effect), and its range is [0. 1.] -C SPinflectionPoint: the inflection point of a nonlinear function +C SPinflectionPoint: the inflection point of a nonlinear function C f(AREA) controlling saltPlumeFlux. f(AREA) is a logistic curve C (sigmoid) with range [0. 1.] and f(SPinflectionPoint) == 0.5. C Usage: pkg/salt_plume activates when AREA>=SPinflectionPoint. -C To assure only narrow leads generate plumes: +C To assure only narrow leads generate plumes: C set SPinflectionPoint >= 0.8. C SPalpha :: fraction of grid volume designated to be brine, [0. 1.] C If grid cell 18km x 18km x 10m, take SPalpha=0.001 gives C volume of 0.001*drF(1)*[dx*dy] of brine. Thus SPbrineSalt C can be calc as adding SaltPlumeFlux into this fractional vol. C Default: 0.008 -> SPbrineSalt ~37 if SSS is ~32. -C SPbrineSconst :: salinity of brine pocket [psu] +C SPbrineSconst :: salinity of brine pocket (g/kg) _RL SaltPlumeCriterion, SPovershoot #ifdef SALT_PLUME_SPLIT_BASIN @@ -59,7 +59,7 @@ C SPbrineSconst :: salinity of brine pocket [psu] #endif /* SALT_PLUME_SPLIT_BASIN */ #ifdef SALT_PLUME_VOLUME & , SPbrineSconst, SPbrineSaltmax -#endif /* SALT_PLUME_VOLUME */ +#endif /* SALT_PLUME_VOLUME */ #ifdef SALT_PLUME_IN_LEADS & , SPinflectionPoint #endif /* SALT_PLUME_IN_LEADS */ @@ -74,18 +74,16 @@ C SPbrineSconst :: salinity of brine pocket [psu] C-- SALT_PLUME 2-dim. fields C SaltPlumeDepth :: depth of penetration of salt plumes C rejected during sea ice growth -C saltPlumeFlux :: Net downward salt flux in psu.kg/m^2/s -C Note: a) only used when salty sea-ice forms. -C b) units: when salinity (unit= psu) is expressed -C in g/kg, saltPlumeFlux unit becomes g/m^2/s. +C saltPlumeFlux :: Net downward salt flux in g/m^2/s +C Note: only used when salty sea-ice forms. C > 0 for increasing in SSS. C Southwest C-grid tracer point C dSPvolSurf2kLev :: downward volume frac from klev=1 associated w/ saltPlumeFlux C dSPvolBelow2kLev:: upward volume frac from grid below (RETIRED) C dSPvolkLev2Above:: upward volume frac to grid above C SPbrineVolFlux :: brine Vol associated w/ SPbrineSconst & saltPlumeFlux -C SPforcingS :: 3D forcingS associated w/ saltPlumeFlux [g/m2/s] -C SPforcingT :: 3D forcingT associated w/ saltPlumeFlux [W/m2] +C SPforcingS :: 3D forcingS associated w/ saltPlumeFlux in g/m^2/s +C SPforcingT :: 3D forcingT associated w/ saltPlumeFlux in W/m^2 C SPkBottom :: bottom kLev associated with SaltPlumeDepth _RL SaltPlumeDepth (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) diff --git a/pkg/salt_plume/salt_plume_apply.F b/pkg/salt_plume/salt_plume_apply.F index 8faae142b0..a4471b8998 100644 --- a/pkg/salt_plume/salt_plume_apply.F +++ b/pkg/salt_plume/salt_plume_apply.F @@ -61,7 +61,7 @@ SUBROUTINE SALT_PLUME_APPLY( C !LOCAL VARIABLES: C === Local variables === C msgBuf :: Informational/error message buffer -C plumetend :: forcing terms [W/m2 or kg/m2/s*psu] +C plumetend :: forcing terms [W/m2 or g/m2/s] C work :: working array CHARACTER*(MAX_LEN_MBUF) msgBuf INTEGER i, j, k @@ -191,7 +191,7 @@ SUBROUTINE SALT_PLUME_APPLY( DO i=1-OLx,sNx+OLx C IF(trIdentity.EQ.GAD_SALINITY) SurfVal=SPbrineSalt(i,j,bi,bj) IF(trIdentity.EQ.GAD_TEMPERATURE) SurfVal=tracer(i,j,1,bi,bj) -Catn: m/s*[degC,psu] +Catn: m/s*[degC,g/kg] gTr_totSurf2Below = SPbrineVolFlux(i,j,bi,bj)*SurfVal gTr_Surf2kLev = dSPvolSurf2kLev(i,j,k,bi,bj) * SurfVal dSPvolBelow2kLev = -dSPvolkLev2Above(i,j,kp1,bi,bj) @@ -202,7 +202,7 @@ SUBROUTINE SALT_PLUME_APPLY( C Note: by design, dSPvolkLev2Above already is negative gTr_kLev2Above= dSPvolkLev2Above(i,j,k,bi,bj) * work(i,j,k) -C salt: [m/s * psu * kg/m3] = [kg/s/m2 psu] = unit of saltPlumeFlux +C salt: [m/s * g/m3] = [g/s/m2] = unit of saltPlumeFlux C theta:[m/s * kg/m3 * J/kg/degC * degC] = [W/m2] plumetend(i,j,k) = ConvertFac * & ( gTr_Surf2kLev + gTr_Below2kLev + gTr_kLev2Above ) @@ -234,7 +234,7 @@ SUBROUTINE SALT_PLUME_APPLY( ELSE C ============ updating gTr ===================================== -Catn: updating tendency gTr (gS,gT); unit: [psu/s or degC/s] +Catn: updating tendency gTr (gS,gT); unit: [g/kg/s or degC/s] C WRITE(msgBuf,'(a,2e24.17)') 'b4SPap: [Tr,gTr](1,1,1,bi,bj):', C & tracer(1,1,1,bi,bj),trStar(1,1,1,bi,bj) C CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, diff --git a/pkg/salt_plume/salt_plume_calc_depth.F b/pkg/salt_plume/salt_plume_calc_depth.F index 7edff9ff97..2616e31b5c 100644 --- a/pkg/salt_plume/salt_plume_calc_depth.F +++ b/pkg/salt_plume/salt_plume_calc_depth.F @@ -30,7 +30,6 @@ SUBROUTINE SALT_PLUME_CALC_DEPTH( #include "SALT_PLUME.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: @@ -46,6 +45,9 @@ SUBROUTINE SALT_PLUME_CALC_DEPTH( _RL myTime INTEGER myIter INTEGER myThid +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey, kkey +#endif CEOP #ifdef ALLOW_SALT_PLUME @@ -61,16 +63,7 @@ SUBROUTINE SALT_PLUME_CALC_DEPTH( _RL SPIND (1-OLx:sNx+OLx,1-OLy:sNy+OLy) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C Initializing the saltplume depth to bottom topography @@ -98,13 +91,13 @@ SUBROUTINE SALT_PLUME_CALC_DEPTH( DO k = 2,Nr #ifdef ALLOW_AUTODIFF_TAMC kkey = (ikey-1)*Nr + k -CADJ STORE rhoKm1(:,:) = comlev1_bibj_k, +CADJ STORE rhoKm1(:,:) = comlev1_bibj_k, CADJ & key=kkey, byte=isbyte, kind = isbyte -CADJ STORE rhoMxL(:,:) = comlev1_bibj_k, +CADJ STORE rhoMxL(:,:) = comlev1_bibj_k, CADJ & key=kkey, byte=isbyte, kind = isbyte -CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, +CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, CADJ & key=kkey, byte=isbyte, kind = isbyte -CADJ STORE salt(:,:,k,bi,bj) = comlev1_bibj_k, +CADJ STORE salt(:,:,k,bi,bj) = comlev1_bibj_k, CADJ & key=kkey, byte=isbyte, kind = isbyte #endif C- potential density (reference level = surface level) @@ -145,7 +138,7 @@ SUBROUTINE SALT_PLUME_CALC_DEPTH( DO k=2,Nr #ifdef ALLOW_AUTODIFF_TAMC kkey = (ikey-1)*Nr + k -CADJ STORE SPIND(:,:) = comlev1_bibj_k, +CADJ STORE SPIND(:,:) = comlev1_bibj_k, CADJ & key=kkey, byte=isbyte, kind = isbyte #endif DO j=1-Oly,sNy+Oly diff --git a/pkg/salt_plume/salt_plume_diagnostics_fill.F b/pkg/salt_plume/salt_plume_diagnostics_fill.F index 0c2348ea6f..aee6502012 100644 --- a/pkg/salt_plume/salt_plume_diagnostics_fill.F +++ b/pkg/salt_plume/salt_plume_diagnostics_fill.F @@ -31,7 +31,7 @@ SUBROUTINE SALT_PLUME_DIAGNOSTICS_FILL( CALL DIAGNOSTICS_FILL( SaltPlumeDepth, & 'oceSPDep',0, 1,0,1,1,myThid ) -C- net Salt plume flux into the ocean during freezing (+=down), [psu.kg/m2/s ~ g/m2/s] +C- net Salt plume flux into the ocean during freezing (+=down), [g/m2/s] CALL DIAGNOSTICS_FILL( saltPlumeFlux, & 'oceSPflx',0, 1,0,1,1,myThid ) #ifdef SALT_PLUME_VOLUME diff --git a/pkg/salt_plume/salt_plume_forcing_surf.F b/pkg/salt_plume/salt_plume_forcing_surf.F index ac3b97a470..1f464c9f3a 100644 --- a/pkg/salt_plume/salt_plume_forcing_surf.F +++ b/pkg/salt_plume/salt_plume_forcing_surf.F @@ -58,7 +58,7 @@ SUBROUTINE SALT_PLUME_FORCING_SURF( & *theta(i,j,1,bi,bj)*rhoConst & *HeatCapacity_Cp -Cunits: surfaceForcingT [Kelvin.m/s], surfaceForcingS [psu.m/s] +Cunits: surfaceForcingT [Kelvin.m/s], surfaceForcingS [g/kg.m/s] C SPforcS1 has same unit as saltPlumeFlux [g/m2/s]=[g/kg kg/m2/s] C SPforcT1: [W/m2] surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) diff --git a/pkg/salt_plume/salt_plume_mnc_init.F b/pkg/salt_plume/salt_plume_mnc_init.F index 495167bf20..b91fa6083c 100644 --- a/pkg/salt_plume/salt_plume_mnc_init.F +++ b/pkg/salt_plume/salt_plume_mnc_init.F @@ -26,8 +26,8 @@ SUBROUTINE SALT_PLUME_MNC_INIT( myThid ) CALL MNC_CW_ADD_VNAME('saltPlumeFlux', 'Cen_xy_Hn__-__t', 3,4, & myThid) - CALL MNC_CW_ADD_VATTR_TEXT('saltPlumeFlux','units', - & 'psu.kg/m^2/s', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('saltPlumeFlux','units','g/m^2/s', + & myThid) CALL MNC_CW_ADD_VATTR_TEXT('saltPlumeFlux','description', & 'Net downward salt flux rejected during freezing', myThid) diff --git a/pkg/salt_plume/salt_plume_volfrac.F b/pkg/salt_plume/salt_plume_volfrac.F index 6aaf50cea7..71eb4e5301 100644 --- a/pkg/salt_plume/salt_plume_volfrac.F +++ b/pkg/salt_plume/salt_plume_volfrac.F @@ -11,13 +11,13 @@ SUBROUTINE SALT_PLUME_VOLFRAC( C | SUBROUTINE SALT_PLUME_VOLFRAC C | o Compute saltplume penetration. C *==========================================================* -C | Compute fraction of volume flux associated with saltplume -C | flux penetrating through the entire water columns due to +C | Compute fraction of volume flux associated with saltplume +C | flux penetrating through the entire water columns due to C | rejected salt during freezing. -C | +C | C | For example, if surface value is Saltplume0, C | and each level gets equal fraction 1/5 down to SPDepth=5, -C | SALT_PLUME_VOLFRAC will report +C | SALT_PLUME_VOLFRAC will report C | dSPvolkLev2Above[2to1,3to2,4to3,5to4,6to5] = [4/5,3/5,2/5,1/5, 0] C | dSPvolSurf2kLev [1to1,1to2,1to3,1to4,1to5] = [1/5,1/5,1/5,1/5,1/5] C | sum [into5] = 1to5 + 6to5 - 5to4 = 1/5 + 0 - 1/5 = 0 @@ -120,23 +120,23 @@ SUBROUTINE SALT_PLUME_VOLFRAC( C Now calculating dplumek, dSPvolumeUp, dSPvolSurf2kLev C units: -C Sbrine=dsb/dt*dt/(rhoConst*SPalpha*drF)[psu kg/m2/s*s/(kg/m3*m)]=[psu] +C Sbrine=dsb/dt*dt/(rhoConst*SPalpha*drF)[g/m2/s*s/(kg/m3*m)]=[g/kg] C SPplumek : fraction : unitless -C SaltPlumeFlux: dsb/dt [psu.kg/m^2/s = g/m^2/s] +C SaltPlumeFlux: dsb/dt [g/kg.kg/m^2/s = g/m^2/s] C brine_mass_flux dMb/dt = dsb/dt / Sbrine [kg/m2/s] C = dsb/dt / (dsb/dt*dt/(rhoConst*SPalpha*drF)) C = rhoConst*SPalpha*drF/dt [kg/m3 m/s]=[kg/m2/s] C dVbrine/dt = dMb/dt 1/rhoConst [m/s] -C has 2 ways to define brine properties: either provide +C has 2 ways to define brine properties: either provide C (A) SPalpha: vol frac or (B) SPbrineSalt: brine salinity. -C (A) SPalpha: can calc SPbrineSalt as fxn of dhice/dt, +C (A) SPalpha: can calc SPbrineSalt as fxn of dhice/dt, C constrained by SPbrineSaltmax: C SPbrineSalt=SaltPlumeFlux/rhoConst/SPalpha/drF(1)*dt C SPbrineSalt=min(SPbrineSalt,SPbrineSaltmax) C dMbdt = saltPlumeFlux / SPbrineSalt C = rhoConst*SPalpha*drF(1)/dt <-- a function of SPalpha -C (B) SPbrinesalt provided +C (B) SPbrinesalt provided C dMbdt = saltPlumeFlux / SPbrineSalt <-- fxn of SPbrineSalt C Assuming we go with (B) here: diff --git a/pkg/sbo/sbo_rho.F b/pkg/sbo/sbo_rho.F index 43a83eea81..d1ffb553e3 100644 --- a/pkg/sbo/sbo_rho.F +++ b/pkg/sbo/sbo_rho.F @@ -14,16 +14,16 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) C SBO_RHO - density (kg/m^3) C DPT - depth (m) C LAT - latitude north (deg) -C S - salinity (PSU) +C S - salinity (g/kg) C T - potential temperature (deg C) - + _RL DPT,LAT,S,T _RL PLAT,D,C1,P,PR,Q,X,SR,V350P,B Real*8 PI PARAMETER ( PI = 3.14159265358979323844D0 ) - + C First convert depth to pressure C Ref: Saunders, "Practical Conversion of Pressure to Depth", C J. Phys. Oceanog., April 1981. @@ -39,7 +39,7 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) C FOFONOFF,N.,1977,DEEP-SEA RES.,24,489-491 C CHECKVALUE: THETA= 36.89073 C,S=40 (IPSS-78),T0=40 DEG C, C P0=10000 DECIBARS,PR=0 DECIBARS - + PR = P P = 0. Q = PR*((((-2.1687E-16*T+1.8676E-14)*T-4.6206E-13)*P+ @@ -47,7 +47,7 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) & ((-5.4481E-14*T+8.733E-12)*T-6.7795E-10)*T+ & 1.8741E-8))*P+(-4.2393E-8*T+1.8932E-6)*(S-35.0)+ & ((6.6228E-10*T-6.836E-8)*T+8.5258E-6)*T+3.5803E-5) - + T = T + 0.5*Q P = P + 0.5*PR x = PR*((((-2.1687E-16*T+1.8676E-14)*T-4.6206E-13)*P+ @@ -55,7 +55,7 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) & ((-5.4481E-14*T+8.733E-12)*T-6.7795E-10)*T+ & 1.8741E-8))*P+(-4.2393E-8*T+1.8932E-6)*(S-35.0)+ & ((6.6228E-10*T-6.836E-8)*T+8.5258E-6)*T+3.5803E-5) - + T = T + 0.29289322*(x-Q) Q = 0.58578644*x + 0.121320344*Q x = PR*((((-2.1687E-16*T+1.8676E-14)*T-4.6206E-13)*P+ @@ -63,10 +63,10 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) & ((-5.4481E-14*T+8.733E-12)*T-6.7795E-10)*T+ & 1.8741E-8))*P+(-4.2393E-8*T+1.8932E-6)*(S-35.0)+ & ((6.6228E-10*T-6.836E-8)*T+8.5258E-6)*T+3.5803E-5) - + T = T + 1.707106781*(x-Q) Q = 3.414213562*x - 4.121320344*Q - P = P + 0.5*PR + P = P + 0.5*PR x = PR*((((-2.1687E-16*T+1.8676E-14)*T-4.6206E-13)*P+ & ((2.7759E-12*T-1.1351E-10)*(S-35.0)+ & ((-5.4481E-14*T+8.733E-12)*T-6.7795E-10)*T+ @@ -94,21 +94,21 @@ _RL FUNCTION SBO_RHO( DPT, LAT, S, T ) & (((5.3875E-9*T-8.2467E-7)*T+7.6438E-5)*T-4.0899E-3)*T & +8.24493E-1)*S + ((((6.536332E-9*T-1.120083E-6) & *T+1.001685E-4)*T-9.095290E-3)*T+6.793952E-2)*T-28.263737 - + C SPECIFIC VOLUME AT ATMOSPHERIC PRESSURE V350P = 1.0/1028.1063 x = -x*V350P/(1028.1063+x) C COMPUTE COMPRESSION TERMS - SR = ((((9.1697E-10*T+2.0816E-8)*T-9.9348E-7) * S + - & (5.2787E-8*T-6.12293E-6)*T+3.47718E-5) *P + - & (1.91075E-4 * SR + (-1.6078E-6*T-1.0981E-5)*T+2.2838E-3) * - & S + ((-5.77905E-7*T+1.16092E-4)*T+1.43713E-3)*T-0.1194975) - & *P + (((-5.3009E-4*T+1.6483E-2)*T+7.944E-2) * SR + - & ((-6.1670E-5*T+1.09987E-2)*T-0.603459)*T+54.6746) * S + + SR = ((((9.1697E-10*T+2.0816E-8)*T-9.9348E-7) * S + + & (5.2787E-8*T-6.12293E-6)*T+3.47718E-5) *P + + & (1.91075E-4 * SR + (-1.6078E-6*T-1.0981E-5)*T+2.2838E-3) * + & S + ((-5.77905E-7*T+1.16092E-4)*T+1.43713E-3)*T-0.1194975) + & *P + (((-5.3009E-4*T+1.6483E-2)*T+7.944E-2) * SR + + & ((-6.1670E-5*T+1.09987E-2)*T-0.603459)*T+54.6746) * S + & (((-5.155288E-5*T+1.360477E-2)*T-2.327105)*T+148.4206)*T - & 1930.06 - + C EVALUATE PRESSURE POLYNOMIAL B = (5.03217E-5*P+3.359406)*P+21582.27 x = x*(1.0 - P/B) + (V350P+x)*P*SR/(B*(B+SR)) diff --git a/pkg/seaice/SEAICE.h b/pkg/seaice/SEAICE.h index 21ff25eb7b..1fa0ae6fe2 100644 --- a/pkg/seaice/SEAICE.h +++ b/pkg/seaice/SEAICE.h @@ -25,17 +25,24 @@ C note: for non-zero AREA, actual ice thickness is HEFF / AREA C HSNOW :: effective snow thickness in m C at center of grid, i.e., tracer point C note: for non-zero AREA, actual snow thickness is HSNOW / AREA -C HSALT :: effective sea ice salinity in g/m^2 -C at center of grid, i.e., tracer point C \ev CEOP C-- Grid variables for seaice +C static masks (depend only on geometry) +C HEFFM :: land-sea mask at C-points (copy of maskC(k=kSrf)) +C SIMaskU/V :: land-sea mask at U/V-points (copies of maskW/S(k=kSrf)) COMMON/ARRAY/HEFFM, SIMaskU, SIMaskV _RL HEFFM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -C static masks (depend only on geometry) _RL SIMaskU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL SIMaskV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) + COMMON/ARRAYMETRIC/ k1AtC, k2AtC + _RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif + #ifdef SEAICE_CGRID COMMON/ARRAYC/ seaiceMaskU, seaiceMaskV C dynamic masks (depend on area) @@ -43,105 +50,191 @@ C dynamic masks (depend on area) _RL seaiceMaskV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C k1/2AtZ :: coefficients at C and Z points C k1/2AtC for metric terms in U/V ice equations. - COMMON/ARRAYCMETRIC/ k1AtC, k1AtZ, k2AtC, k2AtZ - _RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON/ARRAYCMETRIC/ k1AtZ, k2AtZ _RS k1AtZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS k2AtZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#else +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C UVM :: B-grid velocity-point mask COMMON/ARRAYB/ UVM _RS UVM (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C k1/2AtC/U/V :: coefficients at C, U, and V points C for metric terms in U/V ice equations. - COMMON/ARRAYBMETRIC/ - & k1AtC, k1AtU, k1AtV, k2AtC, k2AtU, k2AtV - _RS k1AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON/ARRAYBMETRIC/ k1AtU, k1AtV, k2AtU, k2AtV _RS k1AtU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS k1AtV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS k2AtC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS k2AtU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS k2AtV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif /* SEAICE_CGRID */ +#endif /* SEAICE_BGRID_DYNAMICS */ C-- Dynamical variables - COMMON/SEAICE_DYNVARS_1/AREA,HEFF,HSNOW,UICE,VICE + COMMON/SEAICE_DYNVARS_1/ + & AREA, HEFF, HSNOW, UICE, VICE + _RL AREA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL HEFF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL HSNOW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL UICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL VICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +C DWATN :: (linear) ice-ocean drag coefficient +C ( units of [rho|u|] = kg/m^2/s ) +C u/vIceNm1 :: sea ice drift velocities of previous timestep (m/s) + COMMON/SEAICE_DYNVARS_2/ + & DWATN, + & uIceNm1, vIceNm1 + _RL DWATN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL uIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + #ifdef SEAICE_ITD - & ,AREAITD,HEFFITD,HSNOWITD, - & opnWtrFrac, fw2ObyRidge + COMMON/SEAICE_DYNVARS_ITD/ + & AREAITD, HEFFITD, HSNOWITD, + & opnWtrFrac, fw2ObyRidge +C Fields for dynamic ice thickness distribution (ITD) +C AREAITD :: area classes +C HEFFITD :: ice thickenss classes (in meters) +C HSNOWITD :: snow thickness classes (in meters) +C openWtrFrac :: fraction of open water (= 1-AREA) for ridging param. +C fw2ObyRidge :: fresh water flux (kg/m^2/s) due to snow pushed into +C ocean during ridging _RL AREAITD (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) _RL HEFFITD (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) _RL HSNOWITD (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) -C fraction of open water (= 1-AREA) needed for ridging parameterization _RL opnWtrFrac (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL fw2ObyRidge(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif /* SEAICE_ITD */ - _RL AREA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL HEFF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL HSNOW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL UICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL VICE (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -C uIceC :: average of UICE between last two time steps -C vIceC :: average of VICE between last two time steps +#ifdef SEAICE_CGRID +C stressDivergenceX/Y :: div of (vert. integr.) stress tensor (N/m^2) + COMMON /SEAICE_STRESSDIV/ + & stressDivergenceX, stressDivergenceY + _RL stressDivergenceX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL stressDivergenceY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +# ifdef SEAICE_ALLOW_EVP +C-- Additional fields needed by the EVP solver: +C (vertically integrated) stress tensor, with diagonal terms sigma11/22 +C seaice_sigma1 :: sigma11+sigma22, defined at C-points (N/m) +C seaice_sigma2 :: sigma11-sigma22, defined at C-points (N/m) +C seaice_sigma12 :: off-diagonal term, defined at Z-points (N/m) + COMMON /SEAICE_EVP_FIELDS/ + & seaice_sigma1, seaice_sigma2, seaice_sigma12 + _RL seaice_sigma1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL seaice_sigma2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL seaice_sigma12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +# endif /* SEAICE_ALLOW_EVP */ +#endif + +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) +C ETA, etaZ :: shear viscosity as C-points, at Z-points (N s/m = kg/s) +C ZETA, zetaA :: bulk viscosity at C-points, at Z-points +C PRESS :: maximum vertically integrated ice strength/pressure (N/m) +C e11, e22, e12 :: components strain rate tensor (1/s) +C deltaC :: deformation rate tensor invariant, for VP sea ice +C = sqrt( (e11+e22)**2 + (1/e)*(e11-e22)**2 + 4*e12**2) ) +C FORCEX/Y :: momentum forcing +C ( units of [rho * h * u / deltaT] = kg/m/s^2 ) +C tensileStrFac :: factor k to compute the maximal tensile stress k*PRESS0 COMMON/SEAICE_DYNVARS_3/ - & ETA,etaZ,ZETA,zetaZ,PRESS, e11, e22, e12, deltaC, - & FORCEX,FORCEY, - & uIceNm1, vIceNm1 + & ETA, etaZ, ZETA, zetaZ, PRESS, tensileStrFac, + & e11, e22, e12, deltaC, + & FORCEX,FORCEY + _RL ETA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL etaZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL ZETA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL zetaZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C ice strength/pressure term _RL PRESS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL tensileStrFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C strain rate tensor _RL e11 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL e22 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL e12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -C deformation rate tensor invariant, for viscous plastic sea ice = -C sqrt[(e11**2+e22**2)*(1+1/e**2)+ 4./e**2*e12C**2 + 2*e11*e22*(1-1/e**2)) _RL deltaC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C _RL FORCEX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL FORCEY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL uIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL vIceNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) -C-- Dynamical variables - COMMON/SEAICE_DYNVARS_COST/ AREAforAtmFW, frWtrAtm - _RL AREAforAtmFW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL frWtrAtm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +C PRESS0 :: maximal compressive stress/strength (N/m) +C FORCEX/Y0 :: external momentum forcing fields (part of FORCEX/Y) +C SEAICE_zMax/zMin :: maximum/minimum bulk viscosities + COMMON/SEAICE_DYNVARS_4/ + & PRESS0, FORCEX0, FORCEY0, SEAICE_zMax, SEAICE_zMin + _RL PRESS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL FORCEX0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL FORCEY0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL SEAICE_zMax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL SEAICE_zMin(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif -#ifndef SEAICE_CGRID - COMMON/SEAICE_DYNVARS_BGRID/ AMASS, DAIRN, uIceC, vIceC - _RL AMASS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL DAIRN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL uIceC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL vIceC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#else +#ifdef SEAICE_CGRID +C seaiceMassC/U/V :: mass (ice+snow) at C/U/V-points ( kg/m^2 ) COMMON/SEAICE_DYNVARS_CGRID/ & seaiceMassC, seaiceMassU, seaiceMassV _RL seaiceMassC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL seaiceMassU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL seaiceMassV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif +# ifdef SEAICE_ALLOW_FREEDRIFT +C u/vice_fd :: free drift velocities (m/s) + COMMON /SEAICE_FD_FIELDS/ + & uice_fd, vice_fd + _RL uice_fd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vice_fd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +# endif - COMMON/SEAICE_DYNVARS_4/ - & DWATN, PRESS0, FORCEX0, FORCEY0, ZMAX, ZMIN, tensileStrFac - _RL DWATN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL PRESS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL FORCEX0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL FORCEY0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL ZMAX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL ZMIN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -C factor k to compute the maximal tensile stress from k*PRESS0, -C in analogy to the maximal compressive stress PRESS0 - _RL tensileStrFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef SEAICE_ALLOW_BOTTOMDRAG +# ifdef SEAICE_ALLOW_BOTTOMDRAG +C CbobC :: (linear) bottom drag coefficient for basals stress param. COMMON/SEAICE_BOTTOMDRAG/ CbotC _RL CbotC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif /* SEAICE_ALLOW_BOTTOMDRAG */ +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ + +# if ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV ) +C diagnostics for the JFNK and Krylov solver + INTEGER totalNewtonIters + INTEGER totalNewtonFails + INTEGER totalKrylovIters + INTEGER totalKrylovFails + INTEGER totalJFNKtimeSteps + COMMON /SEAICE_SOLVER_I/ + & totalNewtonIters, totalNewtonFails, + & totalKrylovIters, totalKrylovFails, + & totalJFNKtimeSteps +C Scalar product used in FGMRES needs a metric + INTEGER nVec + PARAMETER ( nVec=2*sNx*sNy ) + _RL scalarProductMetric( nVec, 1, nSx, nSy ) + COMMON /SEAICE_KRYLOV_RL/ scalarProductMetric +# endif /* SEAICE_ALLOW_JFNK or SEAICE_ALLOW_KRYLOV */ + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C AMASS :: sea ice mass +C DAIRN :: (linear) atmosphere-ice drag coefficient +C u/vIceC has been renamed to u/vIceC to avoid conficts with C-grid code +C uIceB :: average of UICE between last two time steps +C vIceB :: average of VICE between last two time steps + COMMON/SEAICE_DYNVARS_BGRID/ AMASS, DAIRN, uIceB, vIceB + _RL AMASS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL DAIRN (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL uIceB (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vIceB (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + + COMMON/WIND_STRESS_OCE/WINDX,WINDY +C WINDX - zonal wind stress over water at C points +C WINDY - meridional wind stress over water at C points + _RL WINDX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL WINDY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +C GWATX/Y :: geostrophic ocean velocities + COMMON/GWATXY/GWATX,GWATY + _RL GWATX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL GWATY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +C-- KGEO Level used as a proxy for geostrophic velocity. + COMMON/SEAICE_KGEO/KGEO + INTEGER KGEO (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif /* SEAICE_BGRID_DYNAMICS */ COMMON/SEAICE_REG_NEG/d_HEFFbyNEG,d_HSNWbyNEG C The change of mean ice thickness due to out-of-bounds values following @@ -156,16 +249,19 @@ C ICE/SNOW stocks tendency associated with relaxation towards observation C The change of mean ice thickness due to relaxation _RL d_HEFFbyRLX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif /* EXF_SEAICE_FRACTION */ + #ifdef SEAICE_VARIABLE_SALINITY +C HSALT :: effective sea ice salinity in g/m^2 +C at center of grid, i.e., tracer point +C saltFluxAdjust :: adjust salt flux, if HSALT < 0 (e.g. due to advection) COMMON/SEAICE_SALINITY_R/HSALT, saltFluxAdjust _RL HSALT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL saltFluxAdjust(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif /* SEAICE_VARIABLE_SALINITY */ -C saltWtrIce contains m of salty ice melted (<0) or created (>0) -C frWtrIce contains m of freshwater ice melted (<0) or created (>0) -C that is, ice due to precipitation or snow -C frWtrAtm contains freshwater flux from the atmosphere +C saltWtrIce :: contains m of salty ice melted (<0) or created (>0) +C frWtrIce :: contains m of freshwater ice melted (<0) or created (>0) +C that is, ice due to precipitation or snow COMMON/ICEFLUX/ saltWtrIce, frWtrIce _RL saltWtrIce (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL frWtrIce (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -174,82 +270,17 @@ C TICES :: Seaice/snow surface temperature for each category COMMON/MULTICATEGORY/TICES _RL TICES (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) -#if (defined (SEAICE_CGRID) && defined (SEAICE_ALLOW_FREEDRIFT)) - COMMON /SEAICE_FD_FIELDS/ - & uice_fd, vice_fd - _RL uice_fd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL vice_fd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -#if (defined (SEAICE_CGRID) && defined (SEAICE_ALLOW_EVP)) -C -C additional fields needed by the EVP solver -C -C seaice_sigma1 - sigma11+sigma22, defined at C-points -C seaice_sigma2 - sigma11-sigma22, defined at C-points -C seaice_sigma12 - off-diagonal term, defined at Z-points - COMMON /SEAICE_EVP_FIELDS/ - & seaice_sigma1, seaice_sigma2, seaice_sigma12 - _RL seaice_sigma1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL seaice_sigma2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL seaice_sigma12 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif /* SEAICE_ALLOW_EVP and SEAICE_CGRID */ - -#ifdef SEAICE_CGRID -C stressDivergenceX/Y - divergence of stress tensor - COMMON /SEAICE_STRESSDIV/ - & stressDivergenceX, stressDivergenceY - _RL stressDivergenceX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL stressDivergenceY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif /* SEAICE_CGRID */ - -#ifndef SEAICE_CGRID - COMMON/WIND_STRESS_OCE/WINDX,WINDY -C WINDX - zonal wind stress over water at C points -C WINDY - meridional wind stress over water at C points - _RL WINDX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL WINDY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - - COMMON/GWATXY/GWATX,GWATY - _RL GWATX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL GWATY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - -C-- KGEO Level used as a proxy for geostrophic velocity. - COMMON/SEAICE_KGEO/KGEO - INTEGER KGEO (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -#ifdef ALLOW_SEAICE_COST_EXPORT - _RL uHeffExportCell(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL vHeffExportCell(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL icevolMeanCell(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - COMMON /SEAICE_COST_EXPORT_R/ - & uHeffExportCell, vHeffExportCell, - & icevolMeanCell -#endif - -C SWFracB :: fraction of surface Short-Wave radiation reaching -C the bottom of ocean surface level - _RL SWFracB +C SEAICE_SWFrac :: Fraction of surface Short-Wave radiation reaching +C the bottom of ocean surface level. Currently, +C this is just a function of surface cell +C thickness, and hence a constant parameter +C computed in seaice_init_fixed.F in a given +C simulation, but in the future this variable may +C depend on variable turbidity or chlorphyll +C concentration and can change with space and time. + _RL SEAICE_SWFrac COMMON /SEAICE_SW_R/ - & SWFracB - -#if (defined SEAICE_ALLOW_JFNK) || (defined SEAICE_ALLOW_KRYLOV) -C diagnostics for the JFNK and Krylov solver - INTEGER totalNewtonIters - INTEGER totalNewtonFails - INTEGER totalKrylovIters - INTEGER totalKrylovFails - INTEGER totalJFNKtimeSteps - COMMON /SEAICE_SOLVER_I/ - & totalNewtonIters, totalNewtonFails, - & totalKrylovIters, totalKrylovFails, - & totalJFNKtimeSteps - INTEGER nVec - PARAMETER ( nVec=2*sNx*sNy ) - _RL scalarProductMetric( nVec, 1, nSx, nSy ) - COMMON /SEAICE_KRYLOV_RL/ scalarProductMetric -#endif /* SEAICE_ALLOW_JFNK or SEAICE_ALLOW_KRYLOV */ + & SEAICE_SWFrac CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** diff --git a/pkg/seaice/SEAICE_COST.h b/pkg/seaice/SEAICE_COST.h index b5519ea1f3..a5443551ad 100644 --- a/pkg/seaice/SEAICE_COST.h +++ b/pkg/seaice/SEAICE_COST.h @@ -1,123 +1,49 @@ -C /==========================================================\ +C *==========================================================* C | SEAICE_COST.h | C | o Sea ice cost terms. | -C \==========================================================/ -C -C -c objf_ice - sea-ice volume - - common /seaice_cost_objf/ - & objf_ice - & , objf_smrarea - & , objf_smrsst - & , objf_smrsss - & , objf_ice_export - _RL objf_ice (nsx,nsy) - _RL objf_smrarea (nsx,nsy) - _RL objf_smrsst (nsx,nsy) - _RL objf_smrsss (nsx,nsy) - _RL objf_ice_export (nsx,nsy) - - common /seaice_cost_aux_r/ - & num_ice - & , num_smrarea - & , num_smrsst - & , num_smrsss - & , mult_ice - & , mult_smrarea - & , mult_smrsst - & , mult_smrsss - & , mult_ice_export - & , SEAICE_clamp_salt - & , SEAICE_clamp_theta - & , SEAICE_cutoff_area - & , SEAICE_cutoff_heff - _RL num_ice (nsx,nsy) - _RL num_smrarea (nsx,nsy) - _RL num_smrsst (nsx,nsy) - _RL num_smrsss (nsx,nsy) +C *==========================================================* + +C objf_ice :: sea-ice volume + COMMON /seaice_cost_objf/ + & objf_ice, + & objf_ice_export + _RL objf_ice (nSx,nSy) + _RL objf_ice_export (nSx,nSy) + +C- SEAICE_cutoff_area & _heff :: only used in pkg/ecco GET_EXCONC_DECONC S/R + COMMON /seaice_cost_aux_r/ + & num_ice, + & mult_ice, + & mult_ice_export, + & SEAICE_cutoff_area, + & SEAICE_cutoff_heff + _RL num_ice (nSx,nSy) _RL mult_ice - _RL mult_smrarea - _RL mult_smrsst - _RL mult_smrsss _RL mult_ice_export - _RL SEAICE_clamp_salt - _RL SEAICE_clamp_theta _RL SEAICE_cutoff_area _RL SEAICE_cutoff_heff - common /seaice_cost_data_aux_i/ + COMMON /seaice_cost_data_aux_i/ & costIceStart1, & costIceStart2, & costIceEnd1, & costIceEnd2 - integer costIceStart1 - integer costIceStart2 - integer costIceEnd1 - integer costIceEnd2 + INTEGER costIceStart1 + INTEGER costIceStart2 + INTEGER costIceEnd1 + INTEGER costIceEnd2 - common /seaice_cost_data_times_r/ - & costIceStart, - & costIceEnd + COMMON /seaice_cost_data_times_r/ costIceStart, costIceEnd _RL costIceStart _RL costIceEnd -c cost_ice_flag - cost_ice flag (see cost_ice.F) - - common /ecco_cost_ice_i/ - & cost_ice_flag - integer cost_ice_flag +C cost_ice_flag :: cost_ice flag (see seaice_cost_test.F) + COMMON /seaice_cost_i/ cost_ice_flag + INTEGER cost_ice_flag -#ifdef ALLOW_SEAICE_COST_SMR_AREA - _RL smrareabar(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL smrsstbar(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL smrsssbar(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -#else - _RL smrareabar - _RL smrsstbar - _RL smrsssbar +#ifdef ALLOW_SEAICE_COST_EXPORT + _RL uHeffExportCell(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vHeffExportCell(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + COMMON /SEAICE_COST_EXPORT_R/ + & uHeffExportCell, vHeffExportCell #endif - common /seaice_cost_averages_r/ - & smrareabar, - & smrsstbar, - & smrsssbar - - _RL wsmrarea(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL wsmrarea0 - _RL wmean_smrarea - common /seaice_cost_weights_r/ - & wsmrarea - & , wsmrarea0 - & , wmean_smrarea - - _RL smrareadat(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - common /seaice_cost_data_r/ - & smrareadat - - character*(MAX_LEN_FNAM) smrarea_errfile - character*(MAX_LEN_FNAM) smrareadatfile - character*(MAX_LEN_FNAM) smrareabarfile - character*(MAX_LEN_FNAM) smrsstbarfile - character*(MAX_LEN_FNAM) smrsssbarfile - common /seaice_cost_c/ - & smrarea_errfile - & , smrareadatfile - & , smrareabarfile - & , smrsstbarfile - & , smrsssbarfile - - integer smrareastartdate(4) - integer smrareastartdate1 - integer smrareastartdate2 - common /seaice_cost_i/ - & smrareastartdate - & , smrareastartdate1 - & , smrareastartdate2 - - _RL smrareaperiod - common /seaice_cost_period_r/ - & smrareaperiod - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/seaice/SEAICE_OPTIONS.h b/pkg/seaice/SEAICE_OPTIONS.h index f472e8a8ed..b9f92251f8 100644 --- a/pkg/seaice/SEAICE_OPTIONS.h +++ b/pkg/seaice/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # define SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # define SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,58 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + C-- Use the adjointable sea-ice thermodynamic model C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. #undef SEAICE_USE_GROWTH_ADX +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #undef SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/seaice/SEAICE_PARAMS.h b/pkg/seaice/SEAICE_PARAMS.h index 83830c2400..9374dd36ad 100644 --- a/pkg/seaice/SEAICE_PARAMS.h +++ b/pkg/seaice/SEAICE_PARAMS.h @@ -34,8 +34,20 @@ C solver instead of LSR (default: false) C SEAICEuseJFNK :: If true, use Jacobi-free Newton-Krylov solver C instead of LSR (default: false) C SEAICEuseIMEX :: use IMplicit/EXplicit scheme with JFNK -C SEAICEuseTEM :: to use truncated ellipse method (see Geiger et al. +C SEAICEuseTEM :: to use the truncated ellipse method (see Geiger et al. C 1998) set this parameter to true, default is false +C SEAICEuseMCS :: to use the Mohr-Coulomb yield curve with a shear +C only flow rule (Ip et al 1991), set this parameter to +C true, default is false +C SEAICEuseMCE :: to use the Mohr-Coulomb yield curve with elliptical +C plastic potential (similarly to Hibler and Schulson +C 2000 without the elliptical cap) set this parameter +C to true, default is false +C SEAICEuseTD :: to use the teardrop yield curve (Zhang and Rothrock, +C 2005) set this parameter to true, default is false +C SEAICEusePL :: to use the parabolic lens yield curve (Zhang and +C Rothrock, 2005) set this parameter to true, +C default is false C SEAICEuseTilt :: If true then include surface tilt term in dynamics C SEAICEuseMetricTerms :: use metric terms for dynamics solver C (default = .true. ) @@ -124,8 +136,9 @@ C SEAICE_mon_mnc :: write monitor to netcdf file & SEAICEuseJFNK, SEAICEuseIMEX, SEAICEuseBDF2, & SEAICEusePicardAsPrecon, & useHibler79IceStrength, SEAICEsimpleRidging, - & SEAICEuseLinRemapITD, + & SEAICEuseLinRemapITD, SEAICEuseTD, SEAICEusePL, & SEAICEuseTEM, SEAICEuseTilt, SEAICEuseMetricTerms, + & SEAICEuseMCS, SEAICEuseMCE, & SEAICE_no_slip, SEAICE_2ndOrderBC, & SEAICE_maskRHS, SEAICEscaleSurfStress, & SEAICE_clipVelocities, SEAICEaddSnowMass, @@ -153,8 +166,9 @@ C SEAICE_mon_mnc :: write monitor to netcdf file & SEAICEuseJFNK, SEAICEuseIMEX, SEAICEuseBDF2, & SEAICEusePicardAsPrecon, & useHibler79IceStrength, SEAICEsimpleRidging, - & SEAICEuseLinRemapITD, + & SEAICEuseLinRemapITD, SEAICEuseTD, SEAICEusePL, & SEAICEuseTEM, SEAICEuseTilt, SEAICEuseMetricTerms, + & SEAICEuseMCS, SEAICEuseMCE, & SEAICE_no_slip, SEAICE_2ndOrderBC, & SEAICE_maskRHS, SEAICEscaleSurfStress, & SEAICE_clipVelocities, SEAICEaddSnowMass, @@ -195,6 +209,7 @@ C SEAICEmomStartBDF :: number of previous u/vIce time levels available C to start (or restart) BDF2 scheme. C SEAICE_JFNK_lsIter :: number of Newton iterations after which the C line search is started +C SEAICE_JFNK_lsLmax :: max. number line search iterations (default = 4) C SEAICE_JFNK_tolIter :: number of Newton iterations after which the C the tolerance is relaxed again (default = 100) C SEAICE_OLx/y :: overlaps for LSR-solver and for the @@ -254,6 +269,7 @@ C INTEGER SEAICEnEVPstarSteps INTEGER SEAICEmomStartBDF INTEGER SEAICE_JFNK_lsIter, SEAICE_JFNK_tolIter + INTEGER SEAICE_JFNK_lsLmax INTEGER SEAICE_OLx, SEAICE_OLy INTEGER SEAICEselectKEscheme, SEAICEselectVortScheme INTEGER SEAICEadvScheme @@ -279,7 +295,7 @@ C & SEAICEnEVPstarSteps, & SEAICEmomStartBDF, & SEAICE_JFNK_lsIter, SEAICE_OLx, SEAICE_OLy, - & SEAICE_JFNK_tolIter, + & SEAICE_JFNK_lsLmax, SEAICE_JFNK_tolIter, & SEAICEpresPow0, SEAICEpresPow1, & SEAICEpartFunc, SEAICEredistFunc, SEAICEridgingIterMax, & SEAICEselectKEscheme, SEAICEselectVortScheme, @@ -340,6 +356,7 @@ C JFNKgamma_lin_min/max :: tolerance parameters for linear JFNK solver C JFNKres_t :: tolerance parameter for FGMRES residual C JFNKres_tFac :: if set, JFNKres_t=JFNKres_tFac*(initial residual) C SEAICE_JFNKepsilon :: step size for the FD-gradient in s/r seaice_jacvec +C SEAICE_JFNK_lsGamma:: reduction factor for line search (default 0.5) C SEAICE_JFNKphi :: [0,1] parameter for inexact Newton Method (def = 1) C SEAICE_JFNKalpha :: (1,2] parameter for inexact Newton Method (def = 1) C SEAICE_zetaMaxFac :: factor determining the maximum viscosity (s) @@ -404,6 +421,7 @@ C SEAICEpressReplFac :: interpolator between PRESS0 and regularized PRESS C 1. (default): pure pressure replace method (PRESS) C 0. : pure Hibler (1979) method (PRESS0) C SEAICE_eccen :: sea-ice eccentricity of the elliptical yield curve +C SEAICE_eccfr :: sea-ice eccentricity of the elliptical flow rule C SEAICE_lhFusion :: latent heat of fusion for ice and snow (J/kg) C SEAICE_lhEvap :: latent heat of evaporation for water (J/kg) C SEAICE_dalton :: Dalton number (= sensible heat transfer coefficient) @@ -435,6 +453,8 @@ C SEAICE_PDF :: prescribed sea-ice distribution within grid box C SEAICEstressFactor :: factor by which ice affects wind stress (default=1) C LSR_ERROR :: sets accuracy of LSR solver C DIFF1 :: parameter used in advect.F +C SEAICEtdMU :: slope parameter for the teardrop and parabolic lens +C yield curves C SEAICE_deltaMin :: small number used to reduce singularities of Delta C SEAICE_area_max :: usually set to 1. Seeting areaMax below 1 specifies C the minimun amount of leads (1-areaMax) in the @@ -466,6 +486,8 @@ C (2007)-scheme C SEAICEmaxRaft :: regularization parameter (default=1) C SEAICEsnowFracRidge :: fraction of snow that remains on ridged C SINegFac :: SIADV over/undershoot factor in FW/Adjoint +C SEAICEmcMu :: parameter for MC yield curve for useMCE, useMCS and +C useTEM options, default is one C _RL SEAICE_deltaTtherm, SEAICE_deltaTdyn, SEAICE_deltaTevp _RL SEAICE_LSRrelaxU, SEAICE_LSRrelaxV @@ -483,7 +505,9 @@ C _RL SEAICEbasalDragK1, SEAICEbasalDragK2 _RL SEAICE_wetAlbTemp, SEAICE_waterAlbedo _RL SEAICE_strength, SEAICE_cStar, SEAICEpressReplFac - _RL SEAICE_tensilFac, SEAICE_tensilDepth, SEAICE_eccen + _RL SEAICE_tensilFac, SEAICE_tensilDepth + _RL SEAICE_eccen, SEAICE_eccfr + _RL SEAICEmcMu, SEAICEtdMU _RL SEAICE_lhFusion, SEAICE_lhEvap _RL SEAICE_dalton _RL SEAICE_iceConduct, SEAICE_snowConduct @@ -499,6 +523,7 @@ C _RL OCEAN_drag, LSR_ERROR, DIFF1 _RL SEAICEnonLinTol, JFNKres_t, JFNKres_tFac _RL JFNKgamma_lin_min, JFNKgamma_lin_max, SEAICE_JFNKepsilon + _RL SEAICE_JFNK_lsGamma _RL SEAICE_JFNKphi, SEAICE_JFNKalpha _RL SEAICE_deltaMin _RL SEAICE_area_reg, SEAICE_hice_reg @@ -537,7 +562,8 @@ C & SEAICE_cBasalStar, SEAICEbasalDragU0, & SEAICEbasalDragK1, SEAICEbasalDragK2, & SEAICE_wetAlbTemp, SEAICE_waterAlbedo, - & SEAICE_strength, SEAICE_cStar, SEAICE_eccen, + & SEAICE_strength, SEAICE_cStar, SEAICE_eccen, SEAICE_eccfr, + & SEAICEtdMU, SEAICEmcMu, & SEAICEpressReplFac, SEAICE_tensilFac, SEAICE_tensilDepth, & SEAICE_lhFusion, SEAICE_lhEvap, & SEAICE_dalton, SEAICE_cpAir, @@ -553,7 +579,7 @@ C & OCEAN_drag, LSR_ERROR, DIFF1, & SEAICEnonLinTol, JFNKres_t, JFNKres_tFac, & JFNKgamma_lin_min, JFNKgamma_lin_max, SEAICE_JFNKepsilon, - & SEAICE_JFNKphi, SEAICE_JFNKalpha, + & SEAICE_JFNK_lsGamma, SEAICE_JFNKphi, SEAICE_JFNKalpha, & SEAICE_deltaMin, SEAICE_area_reg, SEAICE_hice_reg, & SEAICE_area_floor, SEAICE_area_max, & SEAICEdiffKhArea, SEAICEdiffKhHeff, SEAICEdiffKhSnow, @@ -561,8 +587,8 @@ C & SEAICE_airTurnAngle, SEAICE_waterTurnAngle, & SEAICEgStar, SEAICEhStar, SEAICEaStar, SEAICEshearParm, & SEAICEmuRidging, SEAICEmaxRaft, SEAICE_cf, - & SEAICEsnowFracRidge, - & SINegFac + & SINegFac, + & SEAICEsnowFracRidge C-- COMMON /SEAICE_BOUND_RL/ Various bounding values C MIN_ATEMP :: minimum air temperature (deg C) diff --git a/pkg/seaice/SEAICE_SIZE.h b/pkg/seaice/SEAICE_SIZE.h index 6282449350..6bc56cff35 100644 --- a/pkg/seaice/SEAICE_SIZE.h +++ b/pkg/seaice/SEAICE_SIZE.h @@ -29,7 +29,6 @@ C- Maximum Number of tracers PARAMETER(SItrMaxNum = 3 ) #ifdef ALLOW_AUTODIFF - INTEGER iicekey INTEGER nEVPstepMax PARAMETER ( nEVPstepMax=180 ) INTEGER NMAX_TICE diff --git a/pkg/seaice/SEAICE_TRACER.h b/pkg/seaice/SEAICE_TRACER.h index d928978ba0..535bff776a 100644 --- a/pkg/seaice/SEAICE_TRACER.h +++ b/pkg/seaice/SEAICE_TRACER.h @@ -28,7 +28,7 @@ C SItrAREA - history of AREA evolution during seaice_growth & SItracer, SItrBucket, SItrHEFF, SItrAREA C SItrFromOcean0 - for new ice from ocean freeze - constant tracer value -C SItrFromOceanFrac - for new ice from ocean freeze - fraction of ocean tracer +C SItrFromOceanFrac - for new ice from ocean freeze - fraction of ocean tracer C SItrFromFlood0 - for new ice from snow flood - constant tracer value C SItrFromFloodFrac - for new ice from snow flood - fraction of ocean tracer C SItrExpand0 - for ice cover thermo. exans. - constant tracer value @@ -36,13 +36,13 @@ C SItrExpand0 - for ice cover thermo. exans. - constant tracer value & SItrFromFlood0(SItrMaxNum), SItrFromFloodFrac(SItrMaxNum), & SItrExpand0(SItrMaxNum) COMMON /SEAICE_TRACER_CONST_R/ - & SItrFromOcean0, SItrFromOceanFrac, SItrFromFlood0, + & SItrFromOcean0, SItrFromOceanFrac, SItrFromFlood0, & SItrFromFloodFrac, SItrExpand0 C SItrFile - File containing initial sea ice tracer C SItrName - tracer name ('salinity', 'age', 'one', etc.) C SItrNameLong - tracer long name -C SItrUnit - tracer unit ('psu','s','kg/kg', etc.) +C SItrUnit - tracer unit ('g/kg','s','kg/kg', etc.) C SItrMate - variable to which the tracer is associated ('HEFF','AREA',etc.) CHARACTER*(MAX_LEN_FNAM) SItrFile(SItrMaxNum) CHARACTER*(MAX_LEN_FNAM) SItrName(SItrMaxNum) diff --git a/pkg/seaice/advect.F b/pkg/seaice/advect.F index 335677c844..2dead1cc9c 100644 --- a/pkg/seaice/advect.F +++ b/pkg/seaice/advect.F @@ -72,44 +72,33 @@ SUBROUTINE ADVECT( ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT loctape_advect = COMMON, 2 +#endif DO k=1,2 -cph IF ( k .EQ. 1 ) THEN -C Prediction step -cph DO bj=myByLo(myThid),myByHi(myThid) -cph DO bi=myBxLo(myThid),myBxHi(myThid) -cph DO j=1-OLy,sNy+OLy -cph DO i=1-OLx,sNx+OLx -cph tmpFld(i,j,bi,bj) = fld(i,j,bi,bj) -cph ENDDO -cph ENDDO -cph ENDDO -cph ENDDO -cph ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE fld = loctape_advect, key = k +#endif C Backward Euler correction step DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx -cph for k=1 this is same as tmpFld = fld tmpFld(i,j,bi,bj)=HALF*(fld(i,j,bi,bj) & +fldNm1(i,j,bi,bj)) ENDDO ENDDO ENDDO ENDDO -cph ENDIF -#ifdef ALLOW_AUTODIFF_TAMC -cphCADJ STORE fld = comlev1, key = ikey_dynamics -cphCADJ STORE fldNm1 = comlev1, key = ikey_dynamics -cphCADJ STORE tmpFld = comlev1, key = ikey_dynamics - DO J=1-Oly,sNy+Oly - DO I=1-Olx,sNx+Olx +#ifdef ALLOW_AUTODIFF + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx afx(i,j) = 0. _d 0 afy(i,j) = 0. _d 0 ENDDO ENDDO -#endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* ALLOW_AUTODIFF */ C NOW GO THROUGH STANDARD CONSERVATIVE ADVECTION IF ( .NOT. SEAICEuseFluxForm ) THEN diff --git a/pkg/seaice/dynsolver.F b/pkg/seaice/dynsolver.F index 6f4649da48..49e12788f6 100644 --- a/pkg/seaice/dynsolver.F +++ b/pkg/seaice/dynsolver.F @@ -1,4 +1,7 @@ #include "SEAICE_OPTIONS.h" +#ifdef ALLOW_EXF +# include "EXF_OPTIONS.h" +#endif #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif @@ -7,8 +10,8 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) C *==========================================================* C | SUBROUTINE DYNSOLVER | -C | o Ice dynamics using LSR solver | -C | Zhang and Hibler, JGR, 102, 8691-8702, 1997 | +C | o B-grid version of ice dynamics using LSR solver | +C | Zhang and Hibler, JGR, 102, 8691-8702, 1997 | C *==========================================================* C *==========================================================* IMPLICIT NONE @@ -24,7 +27,6 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) #include "SEAICE_PARAMS.h" #include "SEAICE.h" #ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" # include "EXF_FIELDS.h" #endif #ifdef ALLOW_AUTODIFF_TAMC @@ -40,7 +42,7 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) INTEGER myThid CEndOfInterface -#ifndef SEAICE_CGRID +#ifdef SEAICE_BGRID_DYNAMICS #ifdef EXPLICIT_SSH_SLOPE #include "SURFACE.h" @@ -75,10 +77,10 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=0,sNy+1 DO i=0,sNx+1 - GWATX(I,J,bi,bj)=HALF*(uVel(i,j,KGEO(I,J,bi,bj),bi,bj) - & +uVel(i,j-1,KGEO(I,J,bi,bj),bi,bj)) - GWATY(I,J,bi,bj)=HALF*(vVel(i,j,KGEO(I,J,bi,bj),bi,bj) - & +vVel(i-1,j,KGEO(I,J,bi,bj),bi,bj)) + GWATX(i,j,bi,bj)=HALF*(uVel(i,j,KGEO(i,j,bi,bj),bi,bj) + & +uVel(i,j-1,KGEO(i,j,bi,bj),bi,bj)) + GWATY(i,j,bi,bj)=HALF*(vVel(i,j,KGEO(i,j,bi,bj),bi,bj) + & +vVel(i-1,j,KGEO(i,j,bi,bj),bi,bj)) #ifdef SEAICE_DEBUG c write(*,'(2i4,2i2,f7.1,7f12.3)') c & ,i,j,bi,bj,UVM(I,J,bi,bj) @@ -101,10 +103,10 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) ENDDO DO j=1,sNy DO i=1,sNx - AMASS(I,J,bi,bj)=RHOICE*QUART*( + AMASS(i,j,bi,bj)=RHOICE*QUART*( & HEFF(i,j ,bi,bj) + HEFF(i-1,j ,bi,bj) & +HEFF(i,j-1,bi,bj) + HEFF(i-1,j-1,bi,bj) ) - COR_ICE(I,J,bi,bj)=AMASS(I,J,bi,bj) * _fCoriG(I,J,bi,bj) + COR_ICE(i,j,bi,bj)=AMASS(i,j,bi,bj) * _fCoriG(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -118,10 +120,10 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy DO i=1,sNx - U1=QUART*(UWIND(I-1,J-1,bi,bj)+UWIND(I-1,J,bi,bj) - & +UWIND(I ,J-1,bi,bj)+UWIND(I ,J,bi,bj)) - V1=QUART*(VWIND(I-1,J-1,bi,bj)+VWIND(I-1,J,bi,bj) - & +VWIND(I ,J-1,bi,bj)+VWIND(I ,J,bi,bj)) + U1=QUART*(UWIND(i-1,j-1,bi,bj)+UWIND(i-1,j,bi,bj) + & +UWIND(i ,j-1,bi,bj)+UWIND(i ,j,bi,bj)) + V1=QUART*(VWIND(i-1,j-1,bi,bj)+VWIND(i-1,j,bi,bj) + & +VWIND(i ,j-1,bi,bj)+VWIND(i ,j,bi,bj)) AAA=U1**2+V1**2 IF ( AAA .LE. SEAICE_EPS_SQ ) THEN AAA=SEAICE_EPS @@ -129,29 +131,29 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) AAA=SQRT(AAA) ENDIF C first ocean surface stress - DAIRN(I,J,bi,bj)=RHOAIR*OCEAN_drag + DAIRN(i,j,bi,bj)=RHOAIR*OCEAN_drag & *(2.70 _d 0+0.142 _d 0*AAA+0.0764 _d 0*AAA*AAA) - WINDX(I,J,bi,bj)=DAIRN(I,J,bi,bj)* - & (COSWIN*U1-SIGN(SINWIN, _fCori(I,J,bi,bj))*V1) - WINDY(I,J,bi,bj)=DAIRN(I,J,bi,bj)* - & (SIGN(SINWIN, _fCori(I,J,bi,bj))*U1+COSWIN*V1) + WINDX(i,j,bi,bj)=DAIRN(i,j,bi,bj)* + & (COSWIN*U1-SIGN(SINWIN, _fCori(i,j,bi,bj))*V1) + WINDY(i,j,bi,bj)=DAIRN(i,j,bi,bj)* + & (SIGN(SINWIN, _fCori(i,j,bi,bj))*U1+COSWIN*V1) C now ice surface stress - IF ( YC(I,J,bi,bj) .LT. ZERO ) THEN - DAIRN(I,J,bi,bj) = - & RHOAIR*(SEAICE_drag_south*AAA*AREA(I,J,bi,bj) + IF ( YC(i,j,bi,bj) .LT. ZERO ) THEN + DAIRN(i,j,bi,bj) = + & RHOAIR*(SEAICE_drag_south*AAA*AREA(i,j,bi,bj) & +OCEAN_drag*(2.70 _d 0+0.142 _d 0*AAA - & +0.0764 _d 0*AAA*AAA)*(ONE-AREA(I,J,bi,bj))) + & +0.0764 _d 0*AAA*AAA)*(ONE-AREA(i,j,bi,bj))) ELSE - DAIRN(I,J,bi,bj) = - & RHOAIR*(SEAICE_drag*AAA*AREA(I,J,bi,bj) + DAIRN(i,j,bi,bj) = + & RHOAIR*(SEAICE_drag*AAA*AREA(i,j,bi,bj) & +OCEAN_drag*(2.70 _d 0+0.142 _d 0*AAA - & +0.0764 _d 0*AAA*AAA)*(ONE-AREA(I,J,bi,bj))) + & +0.0764 _d 0*AAA*AAA)*(ONE-AREA(i,j,bi,bj))) ENDIF - FORCEX(I,J,bi,bj)=DAIRN(I,J,bi,bj)* - & (COSWIN*U1-SIGN(SINWIN, _fCori(I,J,bi,bj))*V1) - FORCEY(I,J,bi,bj)=DAIRN(I,J,bi,bj)* - & (SIGN(SINWIN, _fCori(I,J,bi,bj))*U1+COSWIN*V1) + FORCEX(i,j,bi,bj)=DAIRN(i,j,bi,bj)* + & (COSWIN*U1-SIGN(SINWIN, _fCori(i,j,bi,bj))*V1) + FORCEY(i,j,bi,bj)=DAIRN(i,j,bi,bj)* + & (SIGN(SINWIN, _fCori(i,j,bi,bj))*U1+COSWIN*V1) ENDDO ENDDO ENDDO @@ -174,7 +176,7 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO i=1-OLx,sNx+OLx phiSurf(i,j) = phiSurf(i,j) & + ( pload(i,j,bi,bj) - & +sIceLoad(i,j,bi,bj)*gravity + & +sIceLoad(i,j,bi,bj)*gravity*sIceLoadFac & )*recip_rhoConst ENDDO ENDDO @@ -190,19 +192,19 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO j=1-OLy+1,sNy+OLy DO i=1-OLx+1,sNx+OLx C-- NOW ADD IN TILT - FORCEX(I,J,bi,bj)=FORCEX(I,J,bi,bj) - & -AMASS(I,J,bi,bj) + FORCEX(i,j,bi,bj)=FORCEX(i,j,bi,bj) + & -AMASS(i,j,bi,bj) & *( (phiSurf(i, j )-phiSurf(i-1, j ))*SIMaskU(i, j ,bi,bj) & +(phiSurf(i,j-1)-phiSurf(i-1,j-1))*SIMaskV(i,j-1,bi,bj) - & )*HALF*_recip_dxV(I,J,bi,bj) - FORCEY(I,J,bi,bj)=FORCEY(I,J,bi,bj) - & -AMASS(I,J,bi,bj) + & )*HALF*_recip_dxV(i,j,bi,bj) + FORCEY(i,j,bi,bj)=FORCEY(i,j,bi,bj) + & -AMASS(i,j,bi,bj) & *( (phiSurf( i ,j)-phiSurf( i ,j-1))*SIMaskV( i ,j,bi,bj) & +(phiSurf(i-1,j)-phiSurf(i-1,j-1))*SIMaskV(i-1,j,bi,bj) - & )*HALF*_recip_dyU(I,J,bi,bj) + & )*HALF*_recip_dyU(i,j,bi,bj) C NOW KEEP FORCEX0 - FORCEX0(I,J,bi,bj)=FORCEX(I,J,bi,bj) - FORCEY0(I,J,bi,bj)=FORCEY(I,J,bi,bj) + FORCEX0(i,j,bi,bj)=FORCEX(i,j,bi,bj) + FORCEY0(i,j,bi,bj)=FORCEY(i,j,bi,bj) ENDDO ENDDO #endif /* EXPLICIT_SSH_SLOPE */ @@ -210,29 +212,27 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO i=1-OLx,sNx+OLx #ifndef EXPLICIT_SSH_SLOPE C-- NOW ADD IN TILT - FORCEX(I,J,bi,bj)=FORCEX(I,J,bi,bj) - & -COR_ICE(I,J,bi,bj)*GWATY(I,J,bi,bj) - FORCEY(I,J,bi,bj)=FORCEY(I,J,bi,bj) - & +COR_ICE(I,J,bi,bj)*GWATX(I,J,bi,bj) + FORCEX(i,j,bi,bj)=FORCEX(i,j,bi,bj) + & -COR_ICE(i,j,bi,bj)*GWATY(i,j,bi,bj) + FORCEY(i,j,bi,bj)=FORCEY(i,j,bi,bj) + & +COR_ICE(i,j,bi,bj)*GWATX(i,j,bi,bj) C NOW KEEP FORCEX0 - FORCEX0(I,J,bi,bj)=FORCEX(I,J,bi,bj) - FORCEY0(I,J,bi,bj)=FORCEY(I,J,bi,bj) + FORCEX0(i,j,bi,bj)=FORCEX(i,j,bi,bj) + FORCEY0(i,j,bi,bj)=FORCEY(i,j,bi,bj) #endif /* EXPLICIT_SSH_SLOPE */ C-- NOW SET UP ICE PRESSURE AND VISCOSITIES - PRESS0(I,J,bi,bj)=PSTAR*HEFF(I,J,bi,bj) + PRESS0(i,j,bi,bj)=PSTAR*HEFF(i,j,bi,bj) & *EXP(-SEAICE_cStar*(ONE-AREA(i,j,bi,bj))) -CML ZMAX(I,J,bi,bj)=(5.0 _d +12/(2.0 _d +04))*PRESS0(I,J,bi,bj) - ZMAX(I,J,bi,bj)=SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj) -CML ZMIN(I,J,bi,bj)=4.0 _d +08 - ZMIN(I,J,bi,bj)=SEAICE_zetaMin - PRESS0(I,J,bi,bj)=PRESS0(I,J,bi,bj)*HEFFM(I,J,bi,bj) +CML SEAICE_zMax(I,J,bi,bj)=(5.0 _d +12/(2.0 _d +04))*PRESS0(I,J,bi,bj) + SEAICE_zMax(i,j,bi,bj)=SEAICE_zetaMaxFac*PRESS0(i,j,bi,bj) +CML SEAICE_zMin(I,J,bi,bj)=4.0 _d +08 + SEAICE_zMin(i,j,bi,bj)=SEAICE_zetaMin + PRESS0(i,j,bi,bj)=PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO -#ifdef SEAICE_ALLOW_DYNAMICS - IF ( SEAICEuseDYNAMICS ) THEN #ifdef ALLOW_AUTODIFF_TAMC @@ -251,10 +251,10 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - UICENM1(I,J,bi,bj)=UICE(I,J,bi,bj) - VICENM1(I,J,bi,bj)=VICE(I,J,bi,bj) - UICEC(I,J,bi,bj)=UICE(I,J,bi,bj) - VICEC(I,J,bi,bj)=VICE(I,J,bi,bj) + UICENM1(i,j,bi,bj)=UICE(i,j,bi,bj) + VICENM1(i,j,bi,bj)=VICE(i,j,bi,bj) + UICEB(i,j,bi,bj)=UICE(i,j,bi,bj) + VICEB(i,j,bi,bj)=VICE(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -272,10 +272,10 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - UICE(I,J,bi,bj)=HALF*(UICE(I,J,bi,bj)+UICENM1(I,J,bi,bj)) - VICE(I,J,bi,bj)=HALF*(VICE(I,J,bi,bj)+VICENM1(I,J,bi,bj)) - UICEC(I,J,bi,bj)=UICE(I,J,bi,bj) - VICEC(I,J,bi,bj)=VICE(I,J,bi,bj) + UICE(i,j,bi,bj)=HALF*(UICE(i,j,bi,bj)+UICENM1(i,j,bi,bj)) + VICE(i,j,bi,bj)=HALF*(VICE(i,j,bi,bj)+VICENM1(i,j,bi,bj)) + UICEB(i,j,bi,bj)=UICE(i,j,bi,bj) + VICEB(i,j,bi,bj)=VICE(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -287,7 +287,6 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) cdm c$taf store uice,vice = comlev1, key=ikey_dynamics ENDIF -#endif /* SEAICE_ALLOW_DYNAMICS */ #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN @@ -300,7 +299,6 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) C Calculate ocean surface stress CALL OSTRES ( COR_ICE, myThid ) -#ifdef SEAICE_ALLOW_DYNAMICS #ifdef SEAICE_ALLOW_CLIPVELS IF ( SEAICEuseDYNAMICS .AND. SEAICE_clipVelocities) THEN #ifdef ALLOW_AUTODIFF_TAMC @@ -345,8 +343,7 @@ SUBROUTINE DYNSOLVER( myTime, myIter, myThid ) ENDIF #endif /* SEAICE_ALLOW_CLIPVELS */ -#endif /* SEAICE_ALLOW_DYNAMICS */ -#endif /* NOT SEAICE_CGRID */ +#endif /* SEAICE_BGRID_DYNAMICS */ RETURN END diff --git a/pkg/seaice/lsr.F b/pkg/seaice/lsr.F index 36a1d7539d..dbbee44679 100644 --- a/pkg/seaice/lsr.F +++ b/pkg/seaice/lsr.F @@ -1,13 +1,12 @@ -#ifndef SEAICE_LSRBNEW -C for an alternative discretization of d/dx[ (zeta-eta) dV/dy] -C and d/dy[ (zeta-eta) dU/dx] uncomment this option -C#define SEAICE_TEST -#endif - #include "SEAICE_OPTIONS.h" #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifndef SEAICE_LSRBNEW +C Define this option below for an alternative discretization of +C d/dx[ (zeta-eta) dV/dy] and d/dy[ (zeta-eta) dU/dx] +# undef SEAICE_TEST +#endif CStartOfInterface SUBROUTINE lsr( ilcall, myThid ) @@ -41,8 +40,7 @@ SUBROUTINE lsr( ilcall, myThid ) INTEGER myThid CEndOfInterface -#ifndef SEAICE_CGRID -#ifdef SEAICE_ALLOW_DYNAMICS +#ifdef SEAICE_BGRID_DYNAMICS C === Local variables === C i,j,bi,bj - Loop counters @@ -169,30 +167,30 @@ SUBROUTINE lsr( ilcall, myThid ) DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 ucLoc(I,J,bi,bj) = 0.25 _d 0 * ( - & + uIceC(I+1,J,bi,bj) + uIceC(I+1,J+1,bi,bj) - & + uIceC(I ,J,bi,bj) + uIceC(I, J+1,bi,bj) ) + & + uIceB(I+1,J,bi,bj) + uIceB(I+1,J+1,bi,bj) + & + uIceB(I ,J,bi,bj) + uIceB(I, J+1,bi,bj) ) vcLoc(I,J,bi,bj) = 0.25 _d 0 * ( - & + vIceC(I+1,J,bi,bj) + vIceC(I+1,J+1,bi,bj) - & + vIceC(I ,J,bi,bj) + vIceC(I, J+1,bi,bj) ) + & + vIceB(I+1,J,bi,bj) + vIceB(I+1,J+1,bi,bj) + & + vIceB(I ,J,bi,bj) + vIceB(I, J+1,bi,bj) ) ENDDO ENDDO DO J=1-OLy,sNy+OLy-1 DO I=1-OLy,sNx+OLy-1 e11loc = 0.5 _d 0 * _recip_dxF(I,J,bi,bj) * - & (uIceC(I+1,J+1,bi,bj)+uIceC(I+1,J,bi,bj) - & -uIceC(I, J+1,bi,bj)-uIceC(I, J,bi,bj)) + & (uIceB(I+1,J+1,bi,bj)+uIceB(I+1,J,bi,bj) + & -uIceB(I, J+1,bi,bj)-uIceB(I, J,bi,bj)) & + vcLoc(I,J,bi,bj) * k2AtC(I,J,bi,bj) e22loc = 0.5 _d 0 * _recip_dyF(I,J,bi,bj) * - & (vIceC(I+1,J+1,bi,bj)+vIceC(I,J+1,bi,bj) - & -vIceC(I+1,J, bi,bj)-vIceC(I,J, bi,bj)) + & (vIceB(I+1,J+1,bi,bj)+vIceB(I,J+1,bi,bj) + & -vIceB(I+1,J, bi,bj)-vIceB(I,J, bi,bj)) & + ucLoc(I,J,bi,bj) * k1AtC(I,J,bi,bj) e12loc = 0.5 _d 0*( & 0.5 _d 0 * _recip_dyF(I,J,bi,bj) * - & (uIceC(I+1,J+1,bi,bj)+uIceC(I,J+1,bi,bj) - & -uIceC(I+1,J, bi,bj)-uIceC(I,J, bi,bj)) + & (uIceB(I+1,J+1,bi,bj)+uIceB(I,J+1,bi,bj) + & -uIceB(I+1,J, bi,bj)-uIceB(I,J, bi,bj)) & + 0.5 _d 0 * _recip_dxF(I,J,bi,bj) * - & (vIceC(I+1,J+1,bi,bj)+vIceC(I+1,J,bi,bj) - & -vIceC(I, J+1,bi,bj)-vIceC(I, J,bi,bj)) + & (vIceB(I+1,J+1,bi,bj)+vIceB(I+1,J,bi,bj) + & -vIceB(I, J+1,bi,bj)-vIceB(I, J,bi,bj)) & - vcLoc(I,J,bi,bj)*k1AtC(I,J,bi,bj) & - ucLoc(I,J,bi,bj)*k2AtC(I,J,bi,bj) ) C NOW EVALUATE VISCOSITIES @@ -206,8 +204,8 @@ SUBROUTINE lsr( ilcall, myThid ) ENDIF ZETA(I,J,bi,bj) = 0.5 _d 0*PRESS0(I,J,bi,bj)/DELT2 C NOW PUT MIN AND MAX VISCOSITIES IN - ZETA(I,J,bi,bj) = MIN(ZMAX(I,J,bi,bj),ZETA(I,J,bi,bj)) - ZETA(I,J,bi,bj) = MAX(ZMIN(I,J,bi,bj),ZETA(I,J,bi,bj)) + ZETA(I,J,bi,bj) = MIN(SEAICE_zMax(I,J,bi,bj),ZETA(I,J,bi,bj)) + ZETA(I,J,bi,bj) = MAX(SEAICE_zMin(I,J,bi,bj),ZETA(I,J,bi,bj)) C NOW SET VISCOSITIES TO ZERO AT HEFFMFLOW PTS ZETA(I,J,bi,bj) = ZETA(I,J,bi,bj)*HEFFM(I,J,bi,bj) ETA(I,J,bi,bj) = ECM2*ZETA(I,J,bi,bj) @@ -413,13 +411,13 @@ SUBROUTINE lsr( ilcall, myThid ) & * (vcLoc(I,J,bi,bj)-vcLoc(I,J-1,bi,bj)) & * _recip_dyC(I,J,bi,bj) & + (zetaV(I,J)+etaV(I,J))*k2atV(I,J,bi,bj) - & * 0.5 _d 0 * (vIceC(I,J,bi,bj)+vIceC(I+1,J,bi,bj)) + & * 0.5 _d 0 * (vIceB(I,J,bi,bj)+vIceB(I+1,J,bi,bj)) & - 0.5 _d 0 * (PRESS(I,J,bi,bj)+PRESS(I,J-1,bi,bj)) sig12(I,J) = etaV(I,J) & * (ucLoc(I,J,bi,bj)-ucLoc(I,J-1,bi,bj)) & * _recip_dyC(I,J,bi,bj) & - etaV(I,J) * k2AtV(I,J,bi,bj) - & * 0.5 _d 0 * (uIceC(I,J,bi,bj)+uIceC(I+1,J,bi,bj)) + & * 0.5 _d 0 * (uIceB(I,J,bi,bj)+uIceB(I+1,J,bi,bj)) ENDDO ENDDO DO j=0,sNy @@ -430,25 +428,25 @@ SUBROUTINE lsr( ilcall, myThid ) & * (ucLoc(I,J,bi,bj)-ucLoc(I-1,J,bi,bj)) & * _recip_dxC(I,J,bi,bj) & + (zetaU(I,J)+etaU(I,J))*k2atU(I,J,bi,bj) - & * 0.5 _d 0 * (uIceC(I,J,bi,bj)+uIceC(I,J+1,bi,bj)) + & * 0.5 _d 0 * (uIceB(I,J,bi,bj)+uIceB(I,J+1,bi,bj)) & - 0.5 _d 0 * (PRESS(I,J,bi,bj)+PRESS(I-1,J,bi,bj)) sig21(I,J) = etaU(I,J) & * (vcLoc(I,J,bi,bj)-vcLoc(I-1,J,bi,bj)) & * _recip_dxC(I,J,bi,bj) & - etaU(I,J) * k1AtU(I,J,bi,bj) - & * 0.5 _d 0 * (vIceC(I,J,bi,bj)+vIceC(I,J+1,bi,bj)) + & * 0.5 _d 0 * (vIceB(I,J,bi,bj)+vIceB(I,J+1,bi,bj)) ENDDO ENDDO DO j=1,sNy DO i=1,sNx - rhsU(I,J,bi,bj) = DRAGA(I,J,bi,bj)*vIceC(I,J,bi,bj) + rhsU(I,J,bi,bj) = DRAGA(I,J,bi,bj)*vIceB(I,J,bi,bj) & +FORCEX(I,J,bi,bj) & + ( _dyC(I, J, bi,bj) * sig11(I, J ) & - _dyC(I-1,J, bi,bj) * sig11(I-1,J ) & + _dxC(I, J, bi,bj) * sig21(I, J ) & - _dxC(I, J-1,bi,bj) * sig21(I, J-1) ) & * recip_rAz(I,J,bi,bj) * UVM(I,J,bi,bj) - rhsV(I,J,bi,bj) = - DRAGA(I,J,bi,bj)*uIceC(I,J,bi,bj) + rhsV(I,J,bi,bj) = - DRAGA(I,J,bi,bj)*uIceB(I,J,bi,bj) & +FORCEY(I,J,bi,bj) & + ( _dyC(I, J, bi,bj) * sig12(I, J ) & - _dyC(I-1,J, bi,bj) * sig12(I-1,J ) @@ -747,14 +745,14 @@ SUBROUTINE lsr( ilcall, myThid ) DO J=1-OLy,sNy+OLy-1 DO I=1-OLx,sNx+OLx-1 dVdy(I,J) = 0.5 _d 0 * ( - & ( VICEC(I+1,J+1,bi,bj) - VICEC(I+1,J ,bi,bj) ) + & ( vIceB(I+1,J+1,bi,bj) - vIceB(I+1,J ,bi,bj) ) & * _recip_dyG(I+1,J,bi,bj) - & +(VICEC(I ,J+1,bi,bj) - VICEC(I ,J ,bi,bj) ) + & +(vIceB(I ,J+1,bi,bj) - vIceB(I ,J ,bi,bj) ) & * _recip_dyG(I, J,bi,bj) ) dVdx(I,J) = 0.5 _d 0 * ( - & ( VICEC(I+1,J+1,bi,bj) - VICEC(I ,J+1,bi,bj) ) + & ( vIceB(I+1,J+1,bi,bj) - vIceB(I ,J+1,bi,bj) ) & * _recip_dxG(I,J+1,bi,bj) - & +(VICEC(I+1,J ,bi,bj) - VICEC(I ,J ,bi,bj) ) + & +(vIceB(I+1,J ,bi,bj) - vIceB(I ,J ,bi,bj) ) & * _recip_dxG(I,J, bi,bj) ) ENDDO ENDDO @@ -762,15 +760,15 @@ SUBROUTINE lsr( ilcall, myThid ) DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 vz(i,j) = quart * ( - & vicec(i,j,bi,bj) + vicec(i+1,j,bi,bj) ) + & vIceB(i,j,bi,bj) + vIceB(i+1,j,bi,bj) ) vz(i,j)= vz(i,j) + quart * ( - & vicec(i,j+1,bi,bj) + vicec(i+1,j+1,bi,bj) ) + & vIceB(i,j+1,bi,bj) + vIceB(i+1,j+1,bi,bj) ) ENDDO ENDDO #endif DO J=1,sNy DO I=1,sNx - rhsU(I,J,bi,bj)=DRAGA(I,J,bi,bj)*VICEC(I,J,bi,bj) + rhsU(I,J,bi,bj)=DRAGA(I,J,bi,bj)*vIceB(I,J,bi,bj) & +FORCEX(I,J,bi,bj) #ifdef SEAICE_TEST & + ( 0.5 _d 0 * @@ -796,18 +794,18 @@ SUBROUTINE lsr( ilcall, myThid ) & & -(etaPlusZeta(I ,J ,bi,bj)+etaPlusZeta(I ,J-1,bi,bj) & -etaPlusZeta(I-1,J-1,bi,bj)-etaPlusZeta(I-1,J ,bi,bj)) - & * VICEC(I,J,bi,bj) + & * vIceB(I,J,bi,bj) & * _tanPhiAtV(I,J,bi,bj) & * 0.5 _d 0 * _recip_dxV(I,J,bi,bj)*recip_rSphere & & -(ETAMEAN(I,J,bi,bj)+ZETAMEAN(I,J,bi,bj)) - & *(VICEC(I+1,J,bi,bj) - VICEC(I-1,J,bi,bj)) + & *(vIceB(I+1,J,bi,bj) - vIceB(I-1,J,bi,bj)) & * _tanPhiAtV(I,J,bi,bj) & * 1.0 _d 0 /( _dxG(I,J,bi,bj) + _dxG(I-1,J,bi,bj) ) & *recip_rSphere & & -ETAMEAN(I,J,bi,bj) - & *(VICEC(I+1,J,bi,bj) - VICEC(I-1,J,bi,bj)) + & *(vIceB(I+1,J,bi,bj) - vIceB(I-1,J,bi,bj)) & *TWO* _tanPhiAtV(I,J,bi,bj) & * 1.0 _d 0 /( _dxG(I,J,bi,bj) + _dxG(I-1,J,bi,bj) ) & *recip_rSphere @@ -990,14 +988,14 @@ SUBROUTINE lsr( ilcall, myThid ) DO J=1-OLy,sNy+OLy-1 DO I=1-OLx,sNx+OLx-1 dUdx(I,J) = 0.5 _d 0 * ( - & ( UICEC(I+1,J+1,bi,bj) - UICEC(I ,J+1,bi,bj) ) + & ( uIceB(I+1,J+1,bi,bj) - uIceB(I ,J+1,bi,bj) ) & * _recip_dxG(I,J+1,bi,bj) - & +(UICEC(I+1,J ,bi,bj) - UICEC(I ,J ,bi,bj) ) + & +(uIceB(I+1,J ,bi,bj) - uIceB(I ,J ,bi,bj) ) & * _recip_dxG(I,J ,bi,bj) ) dUdy(I,J) = 0.5 _d 0 * ( - & ( UICEC(I+1,J+1,bi,bj) - UICEC(I+1,J ,bi,bj) ) + & ( uIceB(I+1,J+1,bi,bj) - uIceB(I+1,J ,bi,bj) ) & * _recip_dyG(I+1,J,bi,bj) - & +(UICEC(I ,J+1,bi,bj) - UICEC(I ,J ,bi,bj) ) + & +(uIceB(I ,J+1,bi,bj) - uIceB(I ,J ,bi,bj) ) & * _recip_dyG(I, J,bi,bj) ) ENDDO ENDDO @@ -1005,15 +1003,15 @@ SUBROUTINE lsr( ilcall, myThid ) DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 uz(i,j) = quart * ( - & uicec(i,j,bi,bj) + uicec(i+1,j,bi,bj) ) + & uIceB(i,j,bi,bj) + uIceB(i+1,j,bi,bj) ) uz(i,j)= uz(i,j) + quart * ( - & uicec(i,j+1,bi,bj) + uicec(i+1,j+1,bi,bj) ) + & uIceB(i,j+1,bi,bj) + uIceB(i+1,j+1,bi,bj) ) ENDDO ENDDO #endif DO J=1,sNy DO I=1,sNx - rhsV(I,J,bi,bj)=-DRAGA(I,J,bi,bj)*UICEC(I,J,bi,bj) + rhsV(I,J,bi,bj)=-DRAGA(I,J,bi,bj)*uIceB(I,J,bi,bj) & +FORCEY(I,J,bi,bj) & #ifdef SEAICE_TEST @@ -1040,15 +1038,15 @@ SUBROUTINE lsr( ilcall, myThid ) & & +(ETA(I ,J ,bi,bj) + ETA(I ,J-1,bi,bj) & -ETA(I-1,J-1,bi,bj) - ETA(I-1,J ,bi,bj)) - & * UICEC(I,J,bi,bj) + & * uIceB(I,J,bi,bj) & * _tanPhiAtV(I,J,bi,bj) & * 0.5 _d 0 * _recip_dxV(I,J,bi,bj)*recip_rSphere & +ETAMEAN(I,J,bi,bj) * _tanPhiAtV(I,J,bi,bj) - & *(UICEC(I+1,J,bi,bj)-UICEC(I-1,J,bi,bj)) + & *(uIceB(I+1,J,bi,bj)-uIceB(I-1,J,bi,bj)) & * 0.5 _d 0 * _recip_dxV(I,J,bi,bj)*recip_rSphere & & +ETAMEAN(I,J,bi,bj)*TWO * _tanPhiAtV(I,J,bi,bj) - & *(UICEC(I+1,J,bi,bj)-UICEC(I-1,J,bi,bj)) + & *(uIceB(I+1,J,bi,bj)-uIceB(I-1,J,bi,bj)) & * 1. _d 0 /( _dxG(I,J,bi,bj) + _dxG(I-1,J,bi,bj)) & *recip_rSphere VRT1(I,J,bi,bj)= 0.5 _d 0 * ( @@ -1198,8 +1196,7 @@ SUBROUTINE lsr( ilcall, myThid ) ENDDO ENDDO -#endif /* SEAICE_ALLOW_DYNAMICS */ -#endif /* SEAICE_CGRID */ +#endif /* SEAICE_BGRID_DYNAMICS */ RETURN END diff --git a/pkg/seaice/ostres.F b/pkg/seaice/ostres.F index e9f012c3fb..3692635e55 100644 --- a/pkg/seaice/ostres.F +++ b/pkg/seaice/ostres.F @@ -23,15 +23,15 @@ SUBROUTINE ostres( COR_ICE, myThid ) INTEGER myThid CEndOfInterface -#ifndef SEAICE_CGRID +#ifdef SEAICE_BGRID_DYNAMICS C === Local variables === C i,j,bi,bj - Loop counters INTEGER i, j, bi, bj _RL SINWIN, COSWIN, SINWAT, COSWAT -#ifdef SEAICE_BICE_STRESS +# ifdef SEAICE_BICE_STRESS _RL fuIce, fvIce -#endif +# endif c introduce turning angle (default is zero) SINWIN=SIN(SEAICE_airTurnAngle*deg2rad) @@ -42,7 +42,7 @@ SUBROUTINE ostres( COR_ICE, myThid ) C-- Update overlap regions CALL EXCH_UV_XY_RL(WINDX, WINDY, .TRUE., myThid) -#ifndef SEAICE_EXTERNAL_FLUXES +# ifndef SEAICE_EXTERNAL_FLUXES C-- Interpolate wind stress (N/m^2) from South-West B-grid C to South-West C-grid for forcing ocean model. DO bj=myByLo(myThid),myByHi(myThid) @@ -58,9 +58,9 @@ SUBROUTINE ostres( COR_ICE, myThid ) ENDDO ENDDO CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid) -#endif /* ifndef SEAICE_EXTERNAL_FLUXES */ +# endif /* ifndef SEAICE_EXTERNAL_FLUXES */ -#ifdef SEAICE_BICE_STRESS +# ifdef SEAICE_BICE_STRESS C-- Compute ice-affected wind stress DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -91,8 +91,8 @@ SUBROUTINE ostres( COR_ICE, myThid ) ENDDO ENDDO CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid) -#endif /* SEAICE_BICE_STRESS */ -#endif /* not SEAICE_CGRID */ +# endif /* SEAICE_BICE_STRESS */ +#endif /* SEAICE_BCGRID_DYNAMICS */ RETURN END diff --git a/pkg/seaice/seaice_ad_check_lev1_dir.h b/pkg/seaice/seaice_ad_check_lev1_dir.h index 7a4f512c8a..ce280d1192 100644 --- a/pkg/seaice/seaice_ad_check_lev1_dir.h +++ b/pkg/seaice/seaice_ad_check_lev1_dir.h @@ -16,13 +16,7 @@ CADJ STORE salt = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE totphihyd = comlev1, key=ikey_dynamics, kind=isbyte cphCADJ STORE runoff = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE heffm = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte -# ifdef SEAICE_ALLOW_DYNAMICS -CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef SEAICE_CGRID cphCADJ STORE zeta = comlev1, key=ikey_dynamics, kind=isbyte cphCADJ STORE eta = comlev1, key=ikey_dynamics, kind=isbyte # endif @@ -31,58 +25,53 @@ cphCADJ STORE eta = comlev1, key=ikey_dynamics, kind=isbyte #ifdef SEAICE_CGRID CADJ STORE stressdivergencex = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE stressdivergencey = comlev1, key=ikey_dynamics, kind=isbyte -#endif -# ifdef SEAICE_ALLOW_DYNAMICS -# ifdef SEAICE_CGRID CADJ STORE etan = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE dwatn = comlev1, key=ikey_dynamics, kind=isbyte -#ifdef SEAICE_ALLOW_BOTTOMDRAG +# ifdef SEAICE_ALLOW_BOTTOMDRAG CADJ STORE cbotc = comlev1, key=ikey_dynamics, kind=isbyte -#endif +# endif CADJ STORE seaicemasku = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE seaicemaskv = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP CADJ STORE seaice_sigma1 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE seaice_sigma2 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE seaice_sigma12 = comlev1, key=ikey_dynamics, kind=isbyte -# endif # endif -# ifdef SEAICE_VARIABLE_SALINITY +#endif +#ifdef SEAICE_VARIABLE_SALINITY CADJ STORE hsalt = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# ifdef ALLOW_COST_ICE +#endif +#ifdef ALLOW_COST_ICE CADJ STORE objf_ice = comlev1, key=ikey_dynamics, kind=isbyte -# endif # ifdef ALLOW_SEAICE_COST_EXPORT CADJ STORE uHeffExportCell = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vHeffExportCell = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE icevolMeanCell = comlev1, key=ikey_dynamics, kind=isbyte # endif +#endif #ifdef ALLOW_OBCS # ifdef ALLOW_OBCS_EAST -CADJ STORE obeuice,obeuice0,obeuice1 = comlev1, +CADJ STORE obeuice,obeuice0,obeuice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE obevice,obevice0,obevice1 = comlev1, +CADJ STORE obevice,obevice0,obevice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte # endif # ifdef ALLOW_OBCS_NORTH -CADJ STORE obnuice,obnuice0,obnuice1 = comlev1, +CADJ STORE obnuice,obnuice0,obnuice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE obnvice,obnvice0,obnvice1 = comlev1, +CADJ STORE obnvice,obnvice0,obnvice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte # endif # ifdef ALLOW_OBCS_SOUTH -CADJ STORE obsuice,obsuice0,obsuice1 = comlev1, +CADJ STORE obsuice,obsuice0,obsuice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE obsvice,obsvice0,obsvice1 = comlev1, +CADJ STORE obsvice,obsvice0,obsvice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte # endif # ifdef ALLOW_OBCS_WEST -CADJ STORE obwuice,obwuice0,obwuice1 = comlev1, +CADJ STORE obwuice,obwuice0,obwuice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE obwvice,obwvice0,obwvice1 = comlev1, +CADJ STORE obwvice,obwvice0,obwvice1 = comlev1, CADJ & key=ikey_dynamics, kind=isbyte # endif #endif diff --git a/pkg/seaice/seaice_ad_check_lev2_dir.h b/pkg/seaice/seaice_ad_check_lev2_dir.h index d54dccfe1b..f4ce8b9a8c 100644 --- a/pkg/seaice/seaice_ad_check_lev2_dir.h +++ b/pkg/seaice/seaice_ad_check_lev2_dir.h @@ -1,23 +1,45 @@ -CADJ STORE StoreSEAICE = tapelev2, key = ilev_2 -CADJ STORE tices = tapelev2, key = ilev_2 - -#ifdef AUTODIFF_SOMETIMES_NEEDED +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreSEAICE = tapelev2, key = ilev_2 +# ifdef AUTODIFF_SOMETIMES_NEEDED CADJ STORE area = tapelev2, key = ilev_2 CADJ STORE heff = tapelev2, key = ilev_2 CADJ STORE uice = tapelev2, key = ilev_2 CADJ STORE vice = tapelev2, key = ilev_2 -#endif +# endif +#else +CADJ STORE AREA = tapelev2, key = ilev_2 +CADJ STORE HEFF = tapelev2, key = ilev_2 +CADJ STORE HSNOW = tapelev2, key = ilev_2 +CADJ STORE RUNOFF = tapelev2, key = ilev_2 +CADJ STORE UICE = tapelev2, key = ilev_2 +CADJ STORE VICE = tapelev2, key = ilev_2 +CADJ STORE TICES = tapelev2, key = ilev_2 +# ifdef SEAICE_CGRID +CADJ STORE ZETA = tapelev2, key = ilev_2 +CADJ STORE ETA = tapelev2, key = ilev_2 +CADJ STORE dwatn = tapelev2, key = ilev_2 +# ifdef SEAICE_ALLOW_BOTTOMDRAG +CADJ STORE cbotc = tapelev2, key = ilev_2 +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ +CADJ STORE stressDivergenceX = tapelev2, key = ilev_2 +CADJ STORE stressDivergenceY = tapelev2, key = ilev_2 +# ifdef SEAICE_ALLOW_EVP +CADJ STORE seaice_sigma1 = tapelev2, key = ilev_2 +CADJ STORE seaice_sigma2 = tapelev2, key = ilev_2 +CADJ STORE seaice_sigma12 = tapelev2, key = ilev_2 +# endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_CGRID */ +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE HSALT = tapelev2, key = ilev_2 +# endif +#endif /* AUTODIFF_USE_STORE_RESTORE */ #ifdef ALLOW_COST_ICE CADJ STORE objf_ice = tapelev2, key = ilev_2 -#endif -#ifdef ALLOW_SEAICE_COST_EXPORT +# ifdef ALLOW_SEAICE_COST_EXPORT CADJ STORE uHeffExportCell = tapelev2, key = ilev_2 CADJ STORE vHeffExportCell = tapelev2, key = ilev_2 -CADJ STORE icevolMeanCell = tapelev2, key = ilev_2 -#endif -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) -CADJ STORE AREAforAtmFW = tapelev2, key = ilev_2 +# endif #endif #ifdef ALLOW_OBCS @@ -44,4 +66,3 @@ CADJ STORE sitracer = tapelev2, key = ilev_2 CADJ STORE sitrarea = tapelev2, key = ilev_2 CADJ STORE sitrheff = tapelev2, key = ilev_2 #endif - diff --git a/pkg/seaice/seaice_ad_check_lev3_dir.h b/pkg/seaice/seaice_ad_check_lev3_dir.h index c78a48804a..31f5770192 100644 --- a/pkg/seaice/seaice_ad_check_lev3_dir.h +++ b/pkg/seaice/seaice_ad_check_lev3_dir.h @@ -1,24 +1,46 @@ -CADJ STORE StoreSEAICE = tapelev3, key = ilev_3 -CADJ STORE tices = tapelev3, key = ilev_3 - -#ifdef AUTODIFF_SOMETIMES_NEEDED +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreSEAICE = tapelev3, key = ilev_3 +# ifdef AUTODIFF_SOMETIMES_NEEDED CADJ STORE area = tapelev3, key = ilev_3 CADJ STORE heff = tapelev3, key = ilev_3 CADJ STORE uice = tapelev3, key = ilev_3 CADJ STORE vice = tapelev3, key = ilev_3 -#endif +# endif +#else +CADJ STORE AREA = tapelev3, key = ilev_3 +CADJ STORE HEFF = tapelev3, key = ilev_3 +CADJ STORE HSNOW = tapelev3, key = ilev_3 +CADJ STORE RUNOFF = tapelev3, key = ilev_3 +CADJ STORE UICE = tapelev3, key = ilev_3 +CADJ STORE VICE = tapelev3, key = ilev_3 +CADJ STORE TICES = tapelev3, key = ilev_3 +# ifdef SEAICE_CGRID +CADJ STORE ZETA = tapelev3, key = ilev_3 +CADJ STORE ETA = tapelev3, key = ilev_3 +CADJ STORE dwatn = tapelev3, key = ilev_3 +# ifdef SEAICE_ALLOW_BOTTOMDRAG +CADJ STORE cbotc = tapelev3, key = ilev_3 +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ +CADJ STORE stressDivergenceX = tapelev3, key = ilev_3 +CADJ STORE stressDivergenceY = tapelev3, key = ilev_3 +# ifdef SEAICE_ALLOW_EVP +CADJ STORE seaice_sigma1 = tapelev3, key = ilev_3 +CADJ STORE seaice_sigma2 = tapelev3, key = ilev_3 +CADJ STORE seaice_sigma12 = tapelev3, key = ilev_3 +# endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_CGRID */ +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE HSALT = tapelev3, key = ilev_3 +# endif +#endif /* AUTODIFF_USE_STORE_RESTORE */ #ifdef ALLOW_COST_ICE CADJ STORE objf_ice = tapelev3, key = ilev_3 #endif -#ifdef ALLOW_SEAICE_COST_EXPORT +# ifdef ALLOW_SEAICE_COST_EXPORT CADJ STORE uHeffExportCell = tapelev3, key = ilev_3 CADJ STORE vHeffExportCell = tapelev3, key = ilev_3 -CADJ STORE icevolMeanCell = tapelev3, key = ilev_3 -#endif -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) -CADJ STORE AREAforAtmFW = tapelev3, key = ilev_3 -#endif +# endif #ifdef ALLOW_OBCS # ifdef ALLOW_OBCS_EAST @@ -44,4 +66,3 @@ CADJ STORE sitracer = tapelev3, key = ilev_3 CADJ STORE sitrarea = tapelev3, key = ilev_3 CADJ STORE sitrheff = tapelev3, key = ilev_3 #endif - diff --git a/pkg/seaice/seaice_ad_check_lev4_dir.h b/pkg/seaice/seaice_ad_check_lev4_dir.h index 78609d22ba..c2989e2915 100644 --- a/pkg/seaice/seaice_ad_check_lev4_dir.h +++ b/pkg/seaice/seaice_ad_check_lev4_dir.h @@ -1,23 +1,45 @@ -CADJ STORE StoreSEAICE = tapelev4, key = ilev_4 -CADJ STORE tices = tapelev4, key = ilev_4 - -#ifdef AUTODIFF_SOMETIMES_NEEDED +#ifdef AUTODIFF_USE_STORE_RESTORE +CADJ STORE StoreSEAICE = tapelev4, key = ilev_4 +# ifdef AUTODIFF_SOMETIMES_NEEDED CADJ STORE area = tapelev4, key = ilev_4 CADJ STORE heff = tapelev4, key = ilev_4 CADJ STORE uice = tapelev4, key = ilev_4 CADJ STORE vice = tapelev4, key = ilev_4 -#endif +# endif +#else +CADJ STORE AREA = tapelev4, key = ilev_4 +CADJ STORE HEFF = tapelev4, key = ilev_4 +CADJ STORE HSNOW = tapelev4, key = ilev_4 +CADJ STORE RUNOFF = tapelev4, key = ilev_4 +CADJ STORE UICE = tapelev4, key = ilev_4 +CADJ STORE VICE = tapelev4, key = ilev_4 +CADJ STORE TICES = tapelev4, key = ilev_4 +# ifdef SEAICE_CGRID +CADJ STORE ZETA = tapelev4, key = ilev_4 +CADJ STORE ETA = tapelev4, key = ilev_4 +CADJ STORE dwatn = tapelev4, key = ilev_4 +# ifdef SEAICE_ALLOW_BOTTOMDRAG +CADJ STORE cbotc = tapelev4, key = ilev_4 +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ +CADJ STORE stressDivergenceX = tapelev4, key = ilev_4 +CADJ STORE stressDivergenceY = tapelev4, key = ilev_4 +# ifdef SEAICE_ALLOW_EVP +CADJ STORE seaice_sigma1 = tapelev4, key = ilev_4 +CADJ STORE seaice_sigma2 = tapelev4, key = ilev_4 +CADJ STORE seaice_sigma12 = tapelev4, key = ilev_4 +# endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_CGRID */ +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE HSALT = tapelev4, key = ilev_4 +# endif +#endif /* AUTODIFF_USE_STORE_RESTORE */ #ifdef ALLOW_COST_ICE CADJ STORE objf_ice = tapelev4, key = ilev_4 -#endif -#ifdef ALLOW_SEAICE_COST_EXPORT +# ifdef ALLOW_SEAICE_COST_EXPORT CADJ STORE uHeffExportCell = tapelev4, key = ilev_4 CADJ STORE vHeffExportCell = tapelev4, key = ilev_4 -CADJ STORE icevolMeanCell = tapelev4, key = ilev_4 -#endif -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) -CADJ STORE AREAforAtmFW = tapelev4, key = ilev_4 +# endif #endif #ifdef ALLOW_OBCS @@ -44,4 +66,3 @@ CADJ STORE sitracer = tapelev4, key = ilev_4 CADJ STORE sitrarea = tapelev4, key = ilev_4 CADJ STORE sitrheff = tapelev4, key = ilev_4 #endif - diff --git a/pkg/seaice/seaice_ad_diff.list b/pkg/seaice/seaice_ad_diff.list index c230a8747a..c99968e899 100644 --- a/pkg/seaice/seaice_ad_diff.list +++ b/pkg/seaice/seaice_ad_diff.list @@ -17,17 +17,11 @@ seaice_read_pickup.f seaice_solve4temp.f seaice_tracer_phys.f seaice_cost_accumulate_mean.f -seaice_cost_areasst.f -seaice_cost_concentration.f -seaice_cost_driver.f seaice_cost_export.f seaice_cost_final.f seaice_cost_init_varia.f seaice_cost_sensi.f -seaice_cost_sss.f -seaice_cost_sst.f -seaice_ctrl_map_ini.f -cost_ice_test.f +seaice_cost_test.f seaice_calc_strainrates.f seaice_calc_viscosities.f seaice_dynsolver.f diff --git a/pkg/seaice/seaice_ad_dump.F b/pkg/seaice/seaice_ad_dump.F index 935ee0cacc..610c17a354 100644 --- a/pkg/seaice/seaice_ad_dump.F +++ b/pkg/seaice/seaice_ad_dump.F @@ -3,11 +3,14 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif +#ifdef ALLOW_DIAGNOSTICS +# include "DIAG_OPTIONS.h" +#endif CBOP -C !ROUTINE: seaice_ad_dump +C !ROUTINE: SEAICE_AD_DUMP C !INTERFACE: - SUBROUTINE seaice_ad_dump( myTime, myIter, myThid ) + SUBROUTINE SEAICE_AD_DUMP( myTime, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -40,6 +43,10 @@ SUBROUTINE seaice_ad_dump( myTime, myIter, myThid ) # include "AUTODIFF_PARAMS.h" # include "AUTODIFF.h" # include "adcommon.h" +# ifdef ALLOW_DIAGNOSTICS +# include "DIAGNOSTICS_SIZE.h" +# include "DIAGNOSTICS.h" +# endif #endif C !INPUT/OUTPUT PARAMETERS: @@ -59,125 +66,90 @@ SUBROUTINE seaice_ad_dump( myTime, myIter, myThid ) EXTERNAL DIFFERENT_MULTIPLE C !LOCAL VARIABLES: -c == local variables == +C == local variables == C suff :: Hold suffix part of a filename C msgBuf :: Error message buffer - CHARACTER*(10) suff +c CHARACTER*(10) suff c CHARACTER*(MAX_LEN_MBUF) msgBuf +#ifdef ALLOW_MNC _RL var2Du(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL var2Dv(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif _RS dumRS(1) - _RL dumRL(1) + LOGICAL doExch + LOGICAL doDump CEOP - IF ( - & DIFFERENT_MULTIPLE(adjDumpFreq,myTime,deltaTClock) - & ) THEN +C--- do dump? + doDump = DIFFERENT_MULTIPLE( adjDumpFreq, myTime, deltaTClock ) - CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) +C--- Test for adexch based on dumpAdVarExch flag + doExch = doDump +#ifdef ALLOW_DIAGNOSTICS + doExch = doDump .OR. useDiag4AdjOutp +#endif + doExch = doExch .AND. ( dumpAdVarExch.EQ.1 ) -c increment ad dump record number (used only if dumpAdByRec is true) - dumpAdRecSi=dumpAdRecSi+1 -c#ifdef ALLOW_DEBUG -c IF ( debugMode ) print*,'dumpAdRecSi',dumpAdRecSi -c#endif - -C-- Set suffix for this set of data files. - IF ( rwSuffixType.EQ.0 ) THEN - WRITE(suff,'(I10.10)') myIter - ELSE - CALL RW_GET_SUFFIX( suff, myTime, myIter, myThid ) +C--- If necessary, do the exchanges + IF ( doExch ) THEN + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) +#ifdef ALLOW_OPENAD +C-- need to all the correct OpenAD EXCH S/R ; left empty for now +#else /* ALLOW_OPENAD */ + +# ifdef AUTODIFF_TAMC_COMPATIBILITY + CALL ADEXCH_XY_RL( myThid, adarea ) + CALL ADEXCH_XY_RL( myThid, adheff ) + CALL ADEXCH_XY_RL( myThid, adhsnow ) + CALL ADEXCH_UV_XYZ_RL( .TRUE., myThid, aduice,advice ) +# else + CALL ADEXCH_XY_RL( adarea, myThid ) + CALL ADEXCH_XY_RL( adheff, myThid ) + CALL ADEXCH_XY_RL( adhsnow, myThid ) + CALL ADEXCH_UV_3D_RL( aduice,advice, .TRUE., 1, myThid ) +# endif /* AUTODIFF_TAMC_COMPATIBILITY */ +#endif /* ALLOW_OPENAD */ ENDIF -C ==>> Resetting run-time parameter writeBinaryPrec in the middle of a run -C ==>> is very very very nasty !!! -c writeBinaryPrec = writeStatePrec -C <<== If you really want to mess-up with this at your own risk, -C <<== uncomment the line above - - IF ( dumpAdVarExch.EQ.1 ) THEN - CALL ADEXCH_XY_RL( adarea, myThid ) - CALL ADEXCH_XY_RL( adheff, myThid ) - CALL ADEXCH_XY_RL( adhsnow, myThid ) - CALL ADEXCH_UV_3D_RL( aduice,advice, .TRUE., 1, myThid ) - - ENDIF +C----------------------------------------------------------------------- +C--- Turn diagnostics on/off +C----------------------------------------------------------------------- +#ifdef ALLOW_DIAGNOSTICS +C This has already been done in addummy_in_stepping, +C from where this is called +CML IF ( useDiag4AdjOutp ) THEN +CML CALL DIAGNOSTICS_SWITCH_ONOFF( myTime, myIter, myThid ) +CML ENDIF +#endif - IF (dumpAdVarExch.NE.2 .AND. .NOT.dumpAdByRec) THEN - - CALL WRITE_REC_3D_RL( - & 'ADJarea.'//suff, writeBinaryPrec, - & 1, adarea, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJheff.'//suff, writeBinaryPrec, - & 1, adheff, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJhsnow.'//suff, writeBinaryPrec, - & 1, adhsnow, 1, myIter, myThid ) -# ifdef SEAICE_ALLOW_DYNAMICS -cph IF ( SEAICEuseDynamics ) THEN - CALL WRITE_REC_3D_RL( - & 'ADJuice.'//suff, writeBinaryPrec, - & 1, aduice, 1, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJvice.'//suff, writeBinaryPrec, - & 1, advice, 1, myIter, myThid ) -cph ENDIF -# endif +C----------------------------------------------------------------------- +C--- do dump? +C----------------------------------------------------------------------- + IF ( doDump ) THEN +c increment ad dump record number (used only if dumpAdByRec is true) + dumpAdRecSi=dumpAdRecSi+1 + CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) + ENDIF - ELSEIF (dumpAdVarExch.NE.2 .AND. .NOT.dumpAdByRec) THEN - - CALL WRITE_REC_3D_RL( - & 'ADJarea', writeBinaryPrec, - & 1, adarea, dumpAdRecSi, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJheff', writeBinaryPrec, - & 1, adheff, dumpAdRecSi, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJhsnow', writeBinaryPrec, - & 1, adhsnow, dumpAdRecSi, myIter, myThid ) -# ifdef SEAICE_ALLOW_DYNAMICS -cph IF ( SEAICEuseDynamics ) THEN - CALL WRITE_REC_3D_RL( - & 'ADJuice', writeBinaryPrec, - & 1, aduice, dumpAdRecSi, myIter, myThid ) - CALL WRITE_REC_3D_RL( - & 'ADJvice', writeBinaryPrec, - & 1, advice, dumpAdRecSi, myIter, myThid ) -cph ENDIF +C----------------------------------------------------------------------- +C--- Seaice state variables +C----------------------------------------------------------------------- + CALL DUMP_ADJ_XY( dumRS, adarea, 'ADJarea ', 'ADJarea.', + & 12, doDump, dumpAdRecSi, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adheff, 'ADJheff ', 'ADJheff.', + & 12, doDump, dumpAdRecSi, myTime, myIter, myThid ) + CALL DUMP_ADJ_XY( dumRS, adhsnow, 'ADJhsnow', 'ADJhsnow.', + & 12, doDump, dumpAdRecSi, myTime, myIter, myThid ) +# if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) +C IF (SEAICEuseDYNAMICS) THEN + CALL DUMP_ADJ_XY_UV( + & dumRS, aduice, 'ADJuice ', 'ADJuice.', + & dumRS, advice, 'ADJvice ', 'ADJvice.', + & 34, doDump, dumpAdRecSi, myTime, myIter, myThid) +C ENDIF # endif - ELSE -C case dumpAdVarExch = 2 - CALL COPY_ADVAR_OUTP( dumRS, adarea, var2Du, 1 , 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJarea.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJarea', - & var2Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, adheff, var2Du, 1 , 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJheff.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJheff', - & var2Du, dumpAdRecMn, myIter, myThid ) - CALL COPY_ADVAR_OUTP( dumRS, adhsnow, var2Du, 1 , 12, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJhsnow.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJhsnow', - & var2Du, dumpAdRecMn, myIter, myThid ) - -# ifdef SEAICE_ALLOW_DYNAMICS - CALL COPY_AD_UV_OUTP( dumRS, dumRS, aduice, advice, - & var2Du, var2Dv, 1, 34, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJuice.', - & suff, var2Du, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJuice', - & var2Du, dumpAdRecMn, myIter, myThid ) - IF (.NOT.dumpAdByRec) CALL WRITE_FLD_XY_RL( 'ADJvice.', - & suff, var2Dv, myIter, myThid ) - IF ( dumpAdByRec ) CALL WRITE_REC_XY_RL( 'ADJvice', - & var2Dv, dumpAdRecMn, myIter, myThid ) -# endif - ENDIF + IF ( doDump ) THEN #ifdef ALLOW_MNC IF (useMNC .AND. autodiff_mnc) THEN @@ -198,7 +170,7 @@ SUBROUTINE seaice_ad_dump( myTime, myIter, myThid ) CALL COPY_ADVAR_OUTP( dumRS, adhsnow, var2Du, 1 , 12, myThid ) CALL MNC_CW_RL_W('D','adseaice',0,0,'adhsnow', & var2Du, myThid) -# ifdef SEAICE_ALLOW_DYNAMICS +# if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) C IF (SEAICEuseDYNAMICS) THEN CALL COPY_AD_UV_OUTP( dumRS, dumRS, aduice, advice, & var2Du, var2Dv, 1, 34, myThid ) @@ -215,7 +187,7 @@ SUBROUTINE seaice_ad_dump( myTime, myIter, myThid ) & adheff, myThid) CALL MNC_CW_RL_W('D','adseaice',0,0,'adhsnow', & adhsnow, myThid) -# ifdef SEAICE_ALLOW_DYNAMICS +# if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) C IF (SEAICEuseDYNAMICS) THEN CALL MNC_CW_RL_W('D','adseaice',0,0,'aduice', & aduice, myThid) diff --git a/pkg/seaice/seaice_advdiff.F b/pkg/seaice/seaice_advdiff.F index e9e68f48df..55b5b6188f 100644 --- a/pkg/seaice/seaice_advdiff.F +++ b/pkg/seaice/seaice_advdiff.F @@ -64,7 +64,8 @@ SUBROUTINE SEAICE_ADVDIFF( INTEGER it #endif /* SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC - INTEGER itmpkey +C tkey :: tape key (depends on tiles) + INTEGER tkey #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_SITRACER _RL hEffNm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -89,39 +90,41 @@ SUBROUTINE SEAICE_ADVDIFF( _RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL recip_heff(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#if ( defined SEAICE_ITD || !defined ALLOW_GENERIC_ADVDIFF ) CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -C-- make a local copy of the velocities for compatibility with B-grid -C-- alternatively interpolate to C-points if necessary +C-- compute cell areas used by all tracers DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) -#ifndef SEAICE_CGRID /* not SEAICE_CGRID = BGRID */ + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + xA(i,j,bi,bj) = _dyG(i,j,bi,bj)*SIMaskU(i,j,bi,bj) + yA(i,j,bi,bj) = _dxG(i,j,bi,bj)*SIMaskV(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + +#ifdef SEAICE_BGRID_DYNAMICS C-- hack to ensure backward compatibility: C average B-grid seaice velocity to C-grid + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 uc(i,j,bi,bj)=.5 _d 0*(UICE(i,j,bi,bj)+UICE(i,j+1,bi,bj)) vc(i,j,bi,bj)=.5 _d 0*(VICE(i,j,bi,bj)+VICE(i+1,j,bi,bj)) ENDDO ENDDO -#endif /* SEAICE_CGRID */ -C- compute cell areas used by all tracers - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - xA(i,j,bi,bj) = _dyG(i,j,bi,bj)*SIMaskU(i,j,bi,bj) - yA(i,j,bi,bj) = _dxG(i,j,bi,bj)*SIMaskV(i,j,bi,bj) - ENDDO - ENDDO ENDDO ENDDO - -#ifndef SEAICE_CGRID C Do we need this? I am afraid so. CALL EXCH_UV_XY_RL(uc,vc,.TRUE.,myThid) -#endif /* not SEAICE_CGRID */ +#endif #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE uc = comlev1, key = ikey_dynamics, kind=isbyte @@ -135,29 +138,22 @@ SUBROUTINE SEAICE_ADVDIFF( DO bi=myBxLo(myThid),myBxHi(myThid) C--- loops on tile indices bi,bj -#ifdef ALLOW_AUTODIFF_TAMC -C Initialise for TAF +#ifdef ALLOW_AUTODIFF +C Initialise to help AD-tools DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - gFld(i,j) = 0. _d 0 + gFld(i,j) = 0. _d 0 ENDDO ENDDO +#endif C - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - itmpkey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key=itmpkey, kind=isbyte -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key=itmpkey, kind=isbyte -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key=itmpkey, kind=isbyte +#ifdef ALLOW_AUTODIFF_TAMC + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte # ifdef SEAICE_VARIABLE_SALINITY -CADJ STORE hsalt(:,:,bi,bj) = comlev1_bibj, key=itmpkey, kind=isbyte +CADJ STORE hsalt(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -441,7 +437,7 @@ SUBROUTINE SEAICE_ADVDIFF( SItrPrev(i,j,bi,bj)=SItracer(i,j,bi,bj,iTr) #endif #ifdef ALLOW_SITRACER_DEBUG_DIAG - diagArray(I,J,2+(iTr-1)*5) = SItrExt(i,j,bi,bj) + diagArray(i,j,2+(iTr-1)*5) = SItrExt(i,j,bi,bj) #endif ENDDO ENDDO @@ -473,39 +469,40 @@ SUBROUTINE SEAICE_ADVDIFF( IF (SItrMate(iTr).EQ.'HEFF') THEN DO j=1,sNy DO i=1,sNx - if (HEFF(I,J,bi,bj).GE.siEps) then - SItracer(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj)/HEFF(I,J,bi,bj) - SItrBucket(i,j,bi,bj,iTr)=0. _d 0 - else - SItracer(i,j,bi,bj,iTr)=0. _d 0 - SItrBucket(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj) - endif + IF (HEFF(i,j,bi,bj).GE.siEps) THEN + SItracer(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj)/HEFF(i,j,bi,bj) + SItrBucket(i,j,bi,bj,iTr)=0. _d 0 + ELSE + SItracer(i,j,bi,bj,iTr)=0. _d 0 + SItrBucket(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj) + ENDIF #ifdef ALLOW_SITRACER_ADVCAP C hack to try avoid 'spontaneous generation' of maxima, which supposedly would C occur less frequently if we advected SItr with uXheff instead SItrXheff with u - tmpscal1=max(SItrPrev(i,j,bi,bj), + tmpscal1=max(SItrPrev(i,j,bi,bj), & SItrPrev(i+1,j,bi,bj),SItrPrev(i-1,j,bi,bj), & SItrPrev(i,j+1,bi,bj),SItrPrev(i,j-1,bi,bj)) - tmpscal2=MAX(ZERO,SItracer(i,j,bi,bj,iTr)-tmpscal1) - SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal2 - SItrBucket(i,j,bi,bj,iTr)=SItrBucket(i,j,bi,bj,iTr) - & +tmpscal2*HEFF(I,J,bi,bj) + tmpscal2=MAX(ZERO,SItracer(i,j,bi,bj,iTr)-tmpscal1) + SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal2 + SItrBucket(i,j,bi,bj,iTr)=SItrBucket(i,j,bi,bj,iTr) + & +tmpscal2*HEFF(i,j,bi,bj) #endif C treat case of potential negative value - if (HEFF(I,J,bi,bj).GE.siEps) then - tmpscal1=MIN(0. _d 0,SItracer(i,j,bi,bj,iTr)) - SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal1 - SItrBucket(i,j,bi,bj,iTr)=SItrBucket(i,j,bi,bj,iTr) - & +HEFF(I,J,bi,bj)*tmpscal1 - endif + IF (HEFF(i,j,bi,bj).GE.siEps) THEN + tmpscal1=MIN(0. _d 0,SItracer(i,j,bi,bj,iTr)) + SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal1 + SItrBucket(i,j,bi,bj,iTr)=SItrBucket(i,j,bi,bj,iTr) + & +HEFF(i,j,bi,bj)*tmpscal1 + ENDIF #ifdef ALLOW_SITRACER_DEBUG_DIAG - diagArray(I,J,1+(iTr-1)*5)= - SItrBucket(i,j,bi,bj,iTr) - & *HEFFM(I,J,bi,bj)/SEAICE_deltaTtherm*SEAICE_rhoIce - tmpscal1= ( HEFF(I,J,bi,bj)*SItracer(i,j,bi,bj,iTr) - & + SItrBucket(i,j,bi,bj,iTr) )*HEFFM(I,J,bi,bj) - diagArray(I,J,2+(iTr-1)*5)= tmpscal1-diagArray(I,J,2+(iTr-1)*5) - diagArray(I,J,3+(iTr-1)*5)=HEFFM(i,j,bi,bj) * - & SEAICE_deltaTtherm * gFld(i,j) + diagArray(i,j,1+(iTr-1)*5)= -SItrBucket(i,j,bi,bj,iTr) + & * HEFFM(i,j,bi,bj)/SEAICE_deltaTtherm*SEAICE_rhoIce + tmpscal1= ( HEFF(i,j,bi,bj)*SItracer(i,j,bi,bj,iTr) + & + SItrBucket(i,j,bi,bj,iTr) )*HEFFM(i,j,bi,bj) + diagArray(i,j,2+(iTr-1)*5)= tmpscal1 + & - diagArray(i,j,2+(iTr-1)*5) + diagArray(i,j,3+(iTr-1)*5)= HEFFM(i,j,bi,bj) + & * SEAICE_deltaTtherm * gFld(i,j) #endif ENDDO ENDDO @@ -513,30 +510,30 @@ SUBROUTINE SEAICE_ADVDIFF( ELSE DO j=1,sNy DO i=1,sNx - if (AREA(I,J,bi,bj).GE.SEAICE_area_floor) then - SItracer(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj)/AREA(I,J,bi,bj) - else - SItracer(i,j,bi,bj,iTr)=0. _d 0 - endif + IF (AREA(i,j,bi,bj).GE.SEAICE_area_floor) THEN + SItracer(i,j,bi,bj,iTr)=SItrExt(i,j,bi,bj)/AREA(i,j,bi,bj) + ELSE + SItracer(i,j,bi,bj,iTr)=0. _d 0 + ENDIF SItrBucket(i,j,bi,bj,iTr)=0. _d 0 #ifdef ALLOW_SITRACER_ADVCAP - tmpscal1=max(SItrPrev(i,j,bi,bj), + tmpscal1=max(SItrPrev(i,j,bi,bj), & SItrPrev(i+1,j,bi,bj),SItrPrev(i-1,j,bi,bj), & SItrPrev(i,j+1,bi,bj),SItrPrev(i,j-1,bi,bj)) - tmpscal2=MAX(ZERO,SItracer(i,j,bi,bj,iTr)-tmpscal1) - SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal2 + tmpscal2=MAX(ZERO,SItracer(i,j,bi,bj,iTr)-tmpscal1) + SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal2 #endif C treat case of potential negative value - if (AREA(I,J,bi,bj).GE.SEAICE_area_floor) then + IF (AREA(i,j,bi,bj).GE.SEAICE_area_floor) THEN tmpscal1=MIN(0. _d 0,SItracer(i,j,bi,bj,iTr)) SItracer(i,j,bi,bj,iTr)=SItracer(i,j,bi,bj,iTr)-tmpscal1 - endif + ENDIF #ifdef ALLOW_SITRACER_DEBUG_DIAG - diagArray(I,J,1+(iTr-1)*5)= 0. _d 0 - diagArray(I,J,2+(iTr-1)*5)= - diagArray(I,J,2+(iTr-1)*5) - & + AREA(I,J,bi,bj)*SItracer(i,j,bi,bj,iTr)*HEFFM(I,J,bi,bj) - diagArray(I,J,3+(iTr-1)*5)=HEFFM(i,j,bi,bj) * - & SEAICE_deltaTtherm * gFld(i,j) + diagArray(i,j,1+(iTr-1)*5)= 0. _d 0 + diagArray(i,j,2+(iTr-1)*5)= - diagArray(i,j,2+(iTr-1)*5) + & + AREA(i,j,bi,bj)*SItracer(i,j,bi,bj,iTr)*HEFFM(i,j,bi,bj) + diagArray(i,j,3+(iTr-1)*5)=HEFFM(i,j,bi,bj) + & * SEAICE_deltaTtherm * gFld(i,j) #endif ENDDO ENDDO @@ -554,28 +551,28 @@ SUBROUTINE SEAICE_ADVDIFF( ENDDO #else /* not ALLOW_GENERIC_ADVDIFF */ - WRITE(msgBuf,'(2A)') + WRITE(msgBuf,'(2A)') & 'SEAICE_ADVDIFF: cannot use SEAICEmultiDimAdvection', & ' without pkg/generic_advdiff' - CALL PRINT_ERROR( msgBuf , myThid ) - WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', + CALL PRINT_ERROR( msgBuf , myThid ) + WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', & 'Re-compile with pkg "generic_advdiff" in packages.conf' - CALL PRINT_ERROR( msgBuf , myThid ) - CALL ALL_PROC_DIE( myThid ) - STOP 'ABNORMAL END: S/R SEAICE_ADVDIFF' + CALL PRINT_ERROR( msgBuf , myThid ) + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R SEAICE_ADVDIFF' #endif /* ALLOW_GENERIC_ADVDIFF */ ELSE C-- if not multiDimAdvection #ifdef SEAICE_ITD C just for safety - WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', + WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', & 'ITD with SEAICEmultiDimAdvection=.False. is not allowed,' - CALL PRINT_ERROR( msgBuf , myThid ) - WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', + CALL PRINT_ERROR( msgBuf , myThid ) + WRITE(msgBuf,'(2A)') 'SEAICE_ADVDIFF: ', & 'use a multidimensional advection scheme (in data.seaice)' - CALL PRINT_ERROR( msgBuf , myThid ) - CALL ALL_PROC_DIE( myThid ) - STOP 'ABNORMAL END: S/R SEAICE_ADVDIFF' + CALL PRINT_ERROR( msgBuf , myThid ) + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R SEAICE_ADVDIFF' #endif /* SEAICE_ITD */ IF ( SEAICEadvHEff ) THEN diff --git a/pkg/seaice/seaice_advection.F b/pkg/seaice/seaice_advection.F index 217acd23f4..8a872c899e 100644 --- a/pkg/seaice/seaice_advection.F +++ b/pkg/seaice/seaice_advection.F @@ -13,7 +13,7 @@ C !INTERFACE: ========================================================== SUBROUTINE SEAICE_ADVECTION( I tracerIdentity, - I advectionScheme, + I advectionSchArg, I uFld, vFld, uTrans, vTrans, iceFld, r_hFld, O gFld, afx, afy, I bi, bj, myTime, myIter, myThid) @@ -48,17 +48,19 @@ SUBROUTINE SEAICE_ADVECTION( #include "GRID.h" #include "SEAICE_SIZE.h" #include "SEAICE_PARAMS.h" -#include "SEAICE.h" +#include "SEAICE.h" #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD.h" #endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_PARAMS.h" +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" # endif -#endif +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_EXCH2 #include "W2_EXCH2_SIZE.h" #include "W2_EXCH2_TOPOLOGY.h" @@ -68,7 +70,7 @@ SUBROUTINE SEAICE_ADVECTION( C !INPUT PARAMETERS: =================================================== C tracerIdentity :: tracer identifier -C advectionScheme :: advection scheme to use (Horizontal plane) +C advectionSchArg :: advection scheme to use (Horizontal plane) C extensiveFld :: indicates to advect an "extensive" type of ice field C uFld :: velocity, zonal component C vFld :: velocity, meridional component @@ -81,7 +83,7 @@ SUBROUTINE SEAICE_ADVECTION( C myIter :: iteration number C myThid :: my Thread Id number INTEGER tracerIdentity - INTEGER advectionScheme + INTEGER advectionSchArg _RL uFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL uTrans(1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -110,6 +112,7 @@ SUBROUTINE SEAICE_ADVECTION( C [iMin,iMax]Upd :: loop range to update sea-ice field C [jMin,jMax]Upd :: loop range to update sea-ice field C i,j,k :: loop indices +C advectionScheme:: local copy of routine argument advectionSchArg C af :: 2-D array for horizontal advective flux C localTij :: 2-D array, temporary local copy of sea-ice fld C calc_fluxes_X :: logical to indicate to calculate fluxes in X dir @@ -128,6 +131,7 @@ SUBROUTINE SEAICE_ADVECTION( INTEGER iMin,iMax,jMin,jMax INTEGER iMinUpd,iMaxUpd,jMinUpd,jMaxUpd INTEGER i,j,k + INTEGER advectionScheme _RL af (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL localTij(1-OLx:sNx+OLx,1-OLy:sNy+OLy) LOGICAL calc_fluxes_X, calc_fluxes_Y, withSigns @@ -147,31 +151,38 @@ SUBROUTINE SEAICE_ADVECTION( LOGICAL dBug INTEGER ioUnit _RL tmpFac +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tracer and tile indices) +C dkey :: tape key (depends on direction and tkey) + INTEGER tkey, dkey +#endif CEOP +C make local copy to be tampered with if necessary + advectionScheme = advectionSchArg #ifdef ALLOW_AUTODIFF_TAMC - act0 = tracerIdentity - 1 - max0 = maxpass - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - igadkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 - if (tracerIdentity.GT.maxpass) then - WRITE(msgBuf,'(A,2I3)') - & 'SEAICE_ADVECTION: maxpass < tracerIdentity ', - & maxpass, tracerIdentity - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_ADVECTION' - endif + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + tkey = tracerIdentity + (tkey-1)*maxpass + IF (tracerIdentity.GT.maxpass) THEN + WRITE(msgBuf,'(A,2I5)') + & 'SEAICE_ADVECTION: tracerIdentity > maxpass ', + & tracerIdentity, maxpass + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SEAICE_ADVECTION' + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ +C +#ifdef ALLOW_AUTODIFF + IF ( inAdMode .AND. useApproxAdvectionInAdMode ) THEN +C In AD-mode, we change non-linear, potentially unstable AD advection +C schemes to linear schemes with more stability. So far only DST3 with +C flux limiting is replaced by DST3 without flux limiting, but any +C combination is possible. + IF ( advectionSchArg.EQ.ENUM_DST3_FLUX_LIMIT ) + & advectionScheme = ENUM_DST3 +C here is room for more advection schemes as this becomes necessary + ENDIF +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_DIAGNOSTICS C-- Set diagnostic suffix for the current tracer @@ -192,7 +203,7 @@ SUBROUTINE SEAICE_ADVECTION( C just ensure that all memory references are to valid floating C point numbers. This prevents spurious hardware signals due to C uninitialised but inert locations. -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx localTij(i,j) = 0. _d 0 @@ -203,14 +214,6 @@ SUBROUTINE SEAICE_ADVECTION( C-- Set tile-specific parameters for horizontal fluxes IF (useCubedSphereExchange) THEN nipass=3 -#ifdef ALLOW_AUTODIFF_TAMC - IF ( nipass.GT.maxcube ) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_ADVECTION: maxcube needs to be =3; check tamc.h ' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_ADVECTION' - ENDIF -#endif #ifdef ALLOW_EXCH2 myTile = W2_myTileList(bi,bj) nCFace = exch2_myFace(myTile) @@ -238,12 +241,20 @@ SUBROUTINE SEAICE_ADVECTION( iMax = sNx+OLx jMin = 1-OLy jMax = sNy+OLy +#ifdef ALLOW_AUTODIFF_TAMC + IF ( nipass.GT.maxcube ) THEN + WRITE(msgBuf,'(A,2(I3,A))') 'S/R SEAICE_ADVECTION: nipass =', + & nipass, ' >', maxcube, ' = maxcube, ==> check "tamc.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SEAICE_ADVECTION' + ENDIF +#endif /* ALLOW_AUTODIFF_TAMC */ k = 1 C-- Start of k loop for horizontal fluxes #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE iceFld = -CADJ & comlev1_bibj_k_gadice, key=igadkey, byte=isbyte +CADJ & comlev1_bibj_k_gadice, key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C Content of CALC_COMMON_FACTORS, adapted for 2D fields @@ -263,7 +274,7 @@ SUBROUTINE SEAICE_ADVECTION( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF C- Initialise Advective flux in X & Y DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -285,14 +296,7 @@ SUBROUTINE SEAICE_ADVECTION( C-- For cube need one pass for each of red, green and blue axes. DO ipass=1,nipass #ifdef ALLOW_AUTODIFF_TAMC - passkey = ipass + (igadkey-1)*maxpass - IF (nipass .GT. maxpass) THEN - WRITE(msgBuf,'(A,2I3)') - & 'SEAICE_ADVECTION: nipass > max[ass. check tamc.h ', - & nipass, maxpass - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_ADVECTION' - ENDIF + dkey = ipass + (tkey-1)*maxcube #endif /* ALLOW_AUTODIFF_TAMC */ interiorOnly = .FALSE. @@ -324,11 +328,11 @@ SUBROUTINE SEAICE_ADVECTION( C-- X direction #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte +CADJ STORE localTij(:,:) = +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte # ifndef DISABLE_MULTIDIM_ADVECTION -CADJ STORE af(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte +CADJ STORE af(:,:) = +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ C @@ -358,7 +362,7 @@ SUBROUTINE SEAICE_ADVECTION( #ifdef ALLOW_AUTODIFF_TAMC # ifndef DISABLE_MULTIDIM_ADVECTION CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -373,32 +377,32 @@ SUBROUTINE SEAICE_ADVECTION( WRITE(ioUnit,'(A,1P4E14.6)') 'ICE_adv: xFx=', af(i+1,j), & localTij(i,j), uTrans(i+1,j), af(i+1,j)/uTrans(i+1,j) ENDIF - ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_X( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, uTrans, uFld, maskLocW, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_DST3 ) THEN CALL GAD_DST3_ADV_X( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, uTrans, uFld, maskLocW, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_X( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, uTrans, uFld, maskLocW, localTij, O af, myThid ) -#ifndef ALLOW_AUTODIFF_TAMC - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN +#ifndef ALLOW_AUTODIFF + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_X( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, uTrans, uFld, maskLocW, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT ) THEN CALL GAD_PPM_ADV_X( advectionScheme, bi, bj, k , .TRUE., I SEAICE_deltaTtherm, uFld, uTrans, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT ) THEN CALL GAD_PQM_ADV_X( advectionScheme, bi, bj, k , .TRUE., I SEAICE_deltaTtherm, uFld, uTrans, localTij, O af, myThid ) @@ -540,9 +544,9 @@ SUBROUTINE SEAICE_ADVECTION( #ifdef ALLOW_AUTODIFF_TAMC # ifndef DISABLE_MULTIDIM_ADVECTION CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte CADJ STORE af(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ @@ -570,10 +574,10 @@ SUBROUTINE SEAICE_ADVECTION( cph-exch2#endif #ifdef ALLOW_AUTODIFF_TAMC -#ifndef DISABLE_MULTIDIM_ADVECTION +# ifndef DISABLE_MULTIDIM_ADVECTION CADJ STORE localTij(:,:) = -CADJ & comlev1_bibj_k_gadice_pass, key=passkey, byte=isbyte -#endif +CADJ & comlev1_bibj_k_gadice_pass, key=dkey, byte=isbyte +# endif #endif /* ALLOW_AUTODIFF_TAMC */ IF ( advectionScheme.EQ.ENUM_UPWIND_1RST @@ -587,32 +591,32 @@ SUBROUTINE SEAICE_ADVECTION( WRITE(ioUnit,'(A,1P4E14.6)') 'ICE_adv: yFx=', af(i,j+1), & localTij(i,j), vTrans(i,j+1), af(i,j+1)/vTrans(i,j+1) ENDIF - ELSEIF (advectionScheme.EQ.ENUM_FLUX_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_FLUX_LIMIT ) THEN CALL GAD_FLUXLIMIT_ADV_Y( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, vTrans, vFld, maskLocS, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3 ) THEN + ELSEIF( advectionScheme.EQ.ENUM_DST3 ) THEN CALL GAD_DST3_ADV_Y( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, vTrans, vFld, maskLocS, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN + ELSEIF ( advectionScheme.EQ.ENUM_DST3_FLUX_LIMIT ) THEN CALL GAD_DST3FL_ADV_Y( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, vTrans, vFld, maskLocS, localTij, O af, myThid ) -#ifndef ALLOW_AUTODIFF_TAMC - ELSEIF (advectionScheme.EQ.ENUM_OS7MP ) THEN +#ifndef ALLOW_AUTODIFF + ELSEIF ( advectionScheme.EQ.ENUM_OS7MP ) THEN CALL GAD_OS7MP_ADV_Y( bi,bj,k, .TRUE., I SEAICE_deltaTtherm, vTrans, vFld, maskLocS, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_PPM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PPM_WENO_LIMIT ) THEN CALL GAD_PPM_ADV_Y( advectionScheme, bi, bj, k , .TRUE., I SEAICE_deltaTtherm, vFld, vTrans, localTij, O af, myThid ) - ELSEIF (advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. - & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT) THEN + ELSEIF ( advectionScheme.EQ.ENUM_PQM_NULL_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_MONO_LIMIT .OR. + & advectionScheme.EQ.ENUM_PQM_WENO_LIMIT ) THEN CALL GAD_PQM_ADV_Y( advectionScheme, bi, bj, k , .TRUE., I SEAICE_deltaTtherm, vFld, vTrans, localTij, O af, myThid ) diff --git a/pkg/seaice/seaice_bottomdrag_coeffs.F b/pkg/seaice/seaice_bottomdrag_coeffs.F index 922638e05e..9385d3efc6 100644 --- a/pkg/seaice/seaice_bottomdrag_coeffs.F +++ b/pkg/seaice/seaice_bottomdrag_coeffs.F @@ -2,9 +2,6 @@ #ifdef ALLOW_OBCS # include "OBCS_OPTIONS.h" #endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_BOTTOMDRAG_COEFFS @@ -52,17 +49,17 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( C myTime :: Simulation time C myIter :: Simulation timestep number C myThid :: my Thread Id. number - _RL uIceLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL vIceLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL uIceLoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL vIceLoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL HEFFMLoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef SEAICE_ITD _RL HEFFITDLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) _RL AREAITDLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nITD,nSx,nSy) #else - _RL HEFFLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL HEFFLoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif - _RL AREALoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL CbotLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL AREALoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL CbotLoc (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) INTEGER iStep _RL myTime INTEGER myIter @@ -80,7 +77,13 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( _RL tmp, hActual, hCrit, recip_k1, u0sq, fac, rFac CEOP - kSrf=1 + IF (SEAICEbasalDragK2.GT.0. _d 0) THEN +C avoid this computation for a non-zero coefficient + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C some abbreviations u0sq = SEAICEbasalDragU0*SEAICEbasalDragU0 recip_k1 = 0. _d 0 @@ -94,13 +97,13 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - CbotLoc(I,J,bi,bj) = 0. _d 0 - tmpFld(I,J) = 0. _d 0 + CbotLoc(i,j,bi,bj) = 0. _d 0 + tmpFld (i,j) = 0. _d 0 ENDDO ENDDO DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 - IF ( AREALoc(I,J,bi,bj) .GT. 0.01 _d 0 ) THEN + IF ( AREALoc(i,j,bi,bj) .GT. 0.01 _d 0 ) THEN #ifdef OBCS_UVICE_OLD tmp = 0.25 _d 0*( & ( uIceLoc(i ,j,bi,bj)+uIceLoc(i+1,j,bi,bj) @@ -110,11 +113,11 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( #else /* OBCS_UVICE_OLD */ tmp = 0.25 _d 0*( & ( uIceLoc(i ,j,bi,bj)*maskInW( i ,j,bi,bj) - & + uIceLoc(i+1,J,bi,bj)*maskInW(i+1,j,bi,bj) )**2 - & + ( vIceLoc(i,j ,bi,bj)*maskInS(i, j ,bi,bj) + & + uIceLoc(i+1,j,bi,bj)*maskInW(i+1,j,bi,bj) )**2 + & + ( vIceLoc(i,j ,bi,bj)*maskInS(i,j ,bi,bj) & + vIceLoc(i,j+1,bi,bj)*maskInS(i,j+1,bi,bj) )**2 ) #endif /* OBCS_UVICE_OLD */ - tmpFld(I,J) = SEAICEbasalDragK2 / SQRT(tmp + u0sq) + tmpFld(i,j) = SEAICEbasalDragK2 / SQRT(tmp + u0sq) ENDIF ENDDO ENDDO @@ -123,18 +126,18 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( #endif /* SEAICE_ITD */ DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 - IF ( AREALoc(I,J,bi,bj) .GT. 0.01 _d 0 ) THEN + IF ( AREALoc(i,j,bi,bj) .GT. 0.01 _d 0 ) THEN CML hActual = HEFFLoc(i,j,bi,bj) CML & /SQRT( AREAITDLoc(i,j,bi,bj)**2 + area_reg_sq ) CML hActual = SQRT(hActual * hActual + hice_reg_sq) -CML hCrit = ABS(R_low(I,J,bi,bj)) * recip_k1 +CML hCrit = ABS(R_low(i,j,bi,bj)) * recip_k1 #ifdef SEAICE_ITD - hActual = HEFFITDLoc(I,J,k,bi,bj) + hActual = HEFFITDLoc(i,j,k,bi,bj) C here we do not need recip_k1, because we resolve the very thick ice - hCrit = ABS(R_low(I,J,bi,bj))*AREAITDLoc(I,J,k,bi,bj) + hCrit = ABS(R_low(i,j,bi,bj))*AREAITDLoc(i,j,k,bi,bj) #else - hActual = HEFFLoc(I,J,bi,bj) - hCrit = ABS(R_low(I,J,bi,bj))*AREALoc(I,J,bi,bj)*recip_k1 + hActual = HEFFLoc(i,j,bi,bj) + hCrit = ABS(R_low(i,j,bi,bj))*AREALoc(i,j,bi,bj)*recip_k1 #endif /* SEAICE_ITD */ C we want to have some soft maximum for better differentiability: C max(a,b;k) = ln(exp(k*a)+exp(k*b))/k @@ -142,14 +145,14 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( C max(a,0;k) = ln(exp(k*a)+1)/k C If k*a gets too large, EXP will overflow, but for the anticipated C values of hActual < 100m, and k=10, this should be very unlikely -CML CbotLoc(I,J,bi,bj) = -CML & tmpFld(I,J) * MAX( hActual - hCrit, 0. _d 0) - CbotLoc(I,J,bi,bj) = CbotLoc(I,J,bi,bj) - & + tmpFld(I,J) +CML CbotLoc(i,j,bi,bj) = +CML & tmpFld(i,j) * MAX( hActual - hCrit, 0. _d 0) + CbotLoc(i,j,bi,bj) = CbotLoc(i,j,bi,bj) + & + tmpFld(i,j) & * LOG(EXP( fac*(hActual - hCrit) ) + 1. _d 0)*rFac & * EXP( - SEAICE_cBasalStar - & *(SEAICE_area_max - AREALoc(I,J,bi,bj)) ) - & * HEFFMLoc(I,J,bi,bj) + & *(SEAICE_area_max - AREALoc(i,j,bi,bj)) ) + & * HEFFMLoc(i,j,bi,bj) ENDIF ENDDO ENDDO @@ -158,7 +161,8 @@ SUBROUTINE SEAICE_BOTTOMDRAG_COEFFS( #endif /* SEAICE_ITD */ ENDDO ENDDO - +C endif SEAICEbasalDragK2.GT.0. + ENDIF #endif /* SEAICE_ALLOW_BOTTOMDRAG */ RETURN diff --git a/pkg/seaice/seaice_budget_ocean.F b/pkg/seaice/seaice_budget_ocean.F index f3657dd645..1d59ab8ac2 100644 --- a/pkg/seaice/seaice_budget_ocean.F +++ b/pkg/seaice/seaice_budget_ocean.F @@ -1,4 +1,7 @@ #include "SEAICE_OPTIONS.h" +#ifdef ALLOW_EXF +# include "EXF_OPTIONS.h" +#endif CStartOfInterface SUBROUTINE SEAICE_BUDGET_OCEAN( @@ -25,7 +28,6 @@ SUBROUTINE SEAICE_BUDGET_OCEAN( # include "SEAICE_SIZE.h" # include "SEAICE_PARAMS.h" # ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" # include "EXF_FIELDS.h" # endif #endif @@ -79,20 +81,20 @@ SUBROUTINE SEAICE_BUDGET_OCEAN( recip_lhEvap = 1./SEAICE_lhEvap recip_rhoConstFresh = 1./rhoConstFresh - DO J=1,sNy - DO I=1,sNx - netHeatFlux(I,J) = 0. _d 0 - SWHeatFlux (I,J) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + netHeatFlux(i,j) = 0. _d 0 + SWHeatFlux (i,j) = 0. _d 0 C C MAX_TICE does not exist anly longer, lets see if it works without C tsurfLoc (I,J) = MIN(celsius2K+MAX_TICE,TSURF(I,J)) - tsurfLoc (I,J) = TSURF(I,J) + tsurfLoc (i,j) = TSURF(i,j) # ifdef ALLOW_ATM_TEMP C Is this necessary? - atempLoc (I,J) = MAX(celsius2K+MIN_ATEMP,ATEMP(I,J,bi,bj)) + atempLoc (i,j) = MAX(celsius2K+MIN_ATEMP,ATEMP(i,j,bi,bj)) # endif # ifdef ALLOW_DOWNWARD_RADIATION - lwdownLoc(I,J) = MAX(MIN_LWDOWN,LWDOWN(I,J,bi,bj)) + lwdownLoc(i,j) = MAX(MIN_LWDOWN,LWDOWN(i,j,bi,bj)) # endif ENDDO ENDDO @@ -100,11 +102,11 @@ SUBROUTINE SEAICE_BUDGET_OCEAN( C NOW DETERMINE OPEN WATER HEAT BUD. ASSUMING TSURF=WATER TEMP. C WATER ALBEDO IS ASSUMED TO BE THE CONSTANT SEAICE_waterAlbedo - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx #ifdef SEAICE_EXTERNAL_FLUXES - netHeatFlux(I,J) = Qnet(I,J,bi,bj) - SWHeatFlux (I,J) = Qsw(I,J,bi,bj) + netHeatFlux(i,j) = Qnet(i,j,bi,bj) + SWHeatFlux (i,j) = Qsw(i,j,bi,bj) #else /* SEAICE_EXTERNAL_FLUXES undefined */ C This is an example of how one could implement surface fluxes C over the ocean (if one dislikes the fluxes computed in pkg/exf). @@ -114,28 +116,28 @@ SUBROUTINE SEAICE_BUDGET_OCEAN( C diagnose them, one has to save them again as different (SI-)fields. # ifdef ALLOW_DOWNWARD_RADIATION C net upward short wave heat flux - SWHeatFlux(I,J) = (SEAICE_waterAlbedo - 1. _d 0) - & *swdown(I,J,bi,bj) + SWHeatFlux(i,j) = (SEAICE_waterAlbedo - 1. _d 0) + & *swdown(i,j,bi,bj) C lwup = emissivity*stefanBoltzmann*Tsrf^4 + (1-emissivity)*lwdown C the second terms is the reflected incoming long wave radiation C so that the net upward long wave heat flux is: - lwflux(I,J,bi,bj) = - lwdownLoc(I,J)*SEAICE_emissivity - & + D3*tsurfLoc(I,J)**4 - sstdegC = tsurfLoc(I,J) - TMELT + lwflux(i,j,bi,bj) = - lwdownLoc(i,j)*SEAICE_emissivity + & + D3*tsurfLoc(i,j)**4 + sstdegC = tsurfLoc(i,j) - TMELT C downward sensible heat - hs(I,J,bi,bj) = D1*UG(I,J)*(atempLoc(I,J)-tsurfLoc(I,J)) + hs(i,j,bi,bj) = D1*UG(i,j)*(atempLoc(i,j)-tsurfLoc(i,j)) C saturation humidity ssq = QS1*6.11 _d 0 *EXP( 17.2694 _d 0 & *sstdegC/(sstdegC+237.3 _d 0) ) C downward latent heat - hl(I,J,bi,bj) = D1W*UG(I,J)*(AQH(I,J,bi,bj)-ssq) + hl(i,j,bi,bj) = D1W*UG(i,j)*(AQH(i,j,bi,bj)-ssq) C net heat is positive upward - netHeatFlux(I,J)=SWHeatFlux(I,J) - & + lwflux(I,J,bi,bj) - & - hs(I,J,bi,bj) - hl(I,J,bi,bj) + netHeatFlux(i,j)=SWHeatFlux(i,j) + & + lwflux(i,j,bi,bj) + & - hs(i,j,bi,bj) - hl(i,j,bi,bj) C compute evaporation here again because latent heat is different C from its previous value - evap(i,j,bi,bj) = -hl(I,J,bi,bj) + evap(i,j,bi,bj) = -hl(i,j,bi,bj) & *recip_lhEvap*recip_rhoConstFresh C Salt flux from Precipitation and Evaporation. sflux(i,j,bi,bj) = evap(i,j,bi,bj) - precip(i,j,bi,bj) diff --git a/pkg/seaice/seaice_calc_ice_strength.F b/pkg/seaice/seaice_calc_ice_strength.F index 9211b9ee9c..2d8bba7ec2 100644 --- a/pkg/seaice/seaice_calc_ice_strength.F +++ b/pkg/seaice/seaice_calc_ice_strength.F @@ -45,6 +45,7 @@ SUBROUTINE SEAICE_CALC_ICE_STRENGTH( INTEGER myThid CEOP +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) C !LOCAL VARIABLES: ==================================================== C === Local variables === C i,j,k :: inner loop counters @@ -111,11 +112,11 @@ SUBROUTINE SEAICE_CALC_ICE_STRENGTH( ELSE tmpscal2=HEFF(i,j,bi,bj) ENDIF - PRESS0(I,J,bi,bj)=SEAICE_strength*tmpscal2 + PRESS0 (I,J,bi,bj) = SEAICE_strength*tmpscal2 & *EXP(-SEAICE_cStar*(SEAICE_area_max-AREA(i,j,bi,bj))) - ZMAX(I,J,bi,bj) = SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj) - ZMIN(I,J,bi,bj) = SEAICE_zetaMin - PRESS0(I,J,bi,bj)= PRESS0(I,J,bi,bj)*HEFFM(I,J,bi,bj) + SEAICE_zMax(I,J,bi,bj) = SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj) + SEAICE_zMin(I,J,bi,bj) = SEAICE_zetaMin + PRESS0 (I,J,bi,bj) = PRESS0(I,J,bi,bj)*HEFFM(I,J,bi,bj) ENDDO ENDDO #ifdef SEAICE_ITD @@ -166,11 +167,11 @@ SUBROUTINE SEAICE_CALC_ICE_STRENGTH( & * SEAICE_rhoIce/rhoConst DO j=jMin,jMax DO i=iMin,iMax - PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)/ridgingModeNorm(i,j) + PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)/ridgingModeNorm(i,j) & *tmpscal1 - ZMAX(I,J,bi,bj) = SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj) - ZMIN(I,J,bi,bj) = SEAICE_zetaMin - PRESS0(I,J,bi,bj)= PRESS0(I,J,bi,bj)*HEFFM(I,J,bi,bj) + SEAICE_zMax(I,J,bi,bj) = SEAICE_zetaMaxFac*PRESS0(I,J,bi,bj) + SEAICE_zMin(I,J,bi,bj) = SEAICE_zetaMin + PRESS0 (I,J,bi,bj) = PRESS0(I,J,bi,bj)*HEFFM(I,J,bi,bj) ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -192,6 +193,7 @@ SUBROUTINE SEAICE_CALC_ICE_STRENGTH( CML ENDDO CML ENDIF CML#endif /* SEAICE_CGRID */ +#endif /* SEAICE_CGRID or SEAICE_BGRID_DYNAMICS */ RETURN END diff --git a/pkg/seaice/seaice_calc_lhs.F b/pkg/seaice/seaice_calc_lhs.F index fca56d077c..9eea1c16a9 100644 --- a/pkg/seaice/seaice_calc_lhs.F +++ b/pkg/seaice/seaice_calc_lhs.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_CALC_LHS @@ -46,10 +43,6 @@ SUBROUTINE SEAICE_CALC_LHS( #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C myTime :: Simulation time @@ -67,7 +60,8 @@ SUBROUTINE SEAICE_CALC_LHS( _RL uIceLHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vIceLHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef SEAICE_ALLOW_JFNK +#if ( defined SEAICE_CGRID \ + && ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV ) ) C i,j,bi,bj,k :: loop indices INTEGER i,j,bi,bj INTEGER k @@ -213,7 +207,7 @@ SUBROUTINE SEAICE_CALC_LHS( ENDDO ENDDO -#endif /* SEAICE_ALLOW_JFNK */ +#endif /* SEAICE_CGRID, SEAICE_ALLOW_JFNK and KRYLOV */ RETURN END diff --git a/pkg/seaice/seaice_calc_residual.F b/pkg/seaice/seaice_calc_residual.F index 61eeb07c37..77558f21ed 100644 --- a/pkg/seaice/seaice_calc_residual.F +++ b/pkg/seaice/seaice_calc_residual.F @@ -49,7 +49,7 @@ SUBROUTINE SEAICE_CALC_RESIDUAL( _RL uIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vIceRes(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef SEAICE_ALLOW_JFNK +#if ( defined SEAICE_CGRID && defined SEAICE_ALLOW_JFNK ) C u/vIceLHS :: left hand side of momentum equations _RL uIceLHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vIceLHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -81,7 +81,7 @@ SUBROUTINE SEAICE_CALC_RESIDUAL( O DWATN, I krylovIter, myTime, myIter, myThid ) #ifdef SEAICE_ALLOW_BOTTOMDRAG - IF (SEAICEbasalDragK2.GT.0. _d 0) CALL SEAICE_BOTTOMDRAG_COEFFS( + CALL SEAICE_BOTTOMDRAG_COEFFS( I uIceLoc, vIceLoc, HEFFM, #ifdef SEAICE_ITD I HEFFITD, AREAITD, AREA, @@ -96,7 +96,8 @@ SUBROUTINE SEAICE_CALC_RESIDUAL( O e11, e22, e12, I krylovIter, myTime, myIter, myThid ) CALL SEAICE_CALC_VISCOSITIES( - I e11, e22, e12, zMin, zMax, HEFFM, press0, tensileStrFac, + I e11, e22, e12, SEAICE_zMin, SEAICE_zMax, HEFFM, press0, + I tensileStrFac, O eta, etaZ, zeta, zetaZ, press, deltaC, I krylovIter, myTime, myIter, myThid ) @@ -140,7 +141,7 @@ SUBROUTINE SEAICE_CALC_RESIDUAL( ENDDO ENDDO -#endif /* SEAICE_ALLOW_JFNK */ +#endif /* SEAICE_CGRID and SEAICE_ALLOW_JFNK */ RETURN END diff --git a/pkg/seaice/seaice_calc_rhs.F b/pkg/seaice/seaice_calc_rhs.F index bce3f2c810..2c112e2a87 100644 --- a/pkg/seaice/seaice_calc_rhs.F +++ b/pkg/seaice/seaice_calc_rhs.F @@ -47,7 +47,8 @@ SUBROUTINE SEAICE_CALC_RHS( _RL uIceRHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vIceRHS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef SEAICE_ALLOW_JFNK +#if ( defined SEAICE_CGRID \ + && ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV ) ) C i,j,bi,bj,kSrf :: loop indices INTEGER i,j,bi,bj INTEGER kSrf @@ -58,7 +59,11 @@ SUBROUTINE SEAICE_CALC_RHS( _RL areaS(1:sNx,1:sNy) CEOP - kSrf=1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C-- introduce turning angles SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad) COSWAT=COS(SEAICE_waterTurnAngle*deg2rad) @@ -112,7 +117,7 @@ SUBROUTINE SEAICE_CALC_RHS( ENDDO ENDDO -#endif /* SEAICE_ALLOW_JFNK */ +#endif /* SEAICE_CGRID, SEAICE_ALLOW_JFNK and KRYLOV */ RETURN END diff --git a/pkg/seaice/seaice_calc_strainrates.F b/pkg/seaice/seaice_calc_strainrates.F index c610bf76f8..9dfeba61eb 100644 --- a/pkg/seaice/seaice_calc_strainrates.F +++ b/pkg/seaice/seaice_calc_strainrates.F @@ -4,9 +4,6 @@ #else # define OBCS_UVICE_OLD #endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_CALC_STRAINRATES @@ -37,10 +34,6 @@ SUBROUTINE SEAICE_CALC_STRAINRATES( #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C uFld :: ice velocity, u-component @@ -64,7 +57,6 @@ SUBROUTINE SEAICE_CALC_STRAINRATES( CEOP #ifdef SEAICE_CGRID -#ifdef SEAICE_ALLOW_DYNAMICS C !LOCAL VARIABLES: C === Local variables === C i,j,bi,bj :: Loop counters @@ -172,19 +164,19 @@ SUBROUTINE SEAICE_CALC_STRAINRATES( hFacV = hFacV*( SIMaskV(i-2,j,bi,bj)*SIMaskV(i-1,j,bi,bj) & + SIMaskV(i+1,j,bi,bj)*SIMaskV(i ,j,bi,bj) ) C right hand sided dv/dx = (9*v(i,j)-v(i+1,j))/(4*dxv(i,j)-dxv(i+1,j)) -C according to a Taylor expansion to 2nd order. We assume that dxv +C according to a Taylor expansion to 2nd order. We assume that dxv C varies very slowly, so that the denominator simplifies to 3*dxv(i,j), C then dv/dx = (6*v(i,j)+3*v(i,j)-v(i+1,j))/(3*dxv(i,j)) C = 2*v(i,j)/dxv(i,j) + (3*v(i,j)-v(i+1,j))/(3*dxv(i,j)) C the left hand sided dv/dx is analogously C = - 2*v(i-1,j)/dxv(i,j) - (3*v(i-1,j)-v(i-2,j))/(3*dxv(i,j)) C the first term is the first order part, which is already added. -C For e12 we only need 0.5 of this gradient and vave = is either +C For e12 we only need 0.5 of this gradient and vave = is either C 0.5*v(i,j) or 0.5*v(i-1,j) near the boundary so that we need an C extra factor of 2. This explains the six. du/dy is analogous. C The masking is ugly, but hopefully effective. e12Loc(i,j,bi,bj) = e12Loc(i,j,bi,bj) + 0.5 _d 0 * ( - & _recip_dyU(i,j,bi,bj) * ( 6.0 _d 0 * uave(i,j) + & _recip_dyU(i,j,bi,bj) * ( 6.0 _d 0 * uave(i,j) & - uFld(i,j-2,bi,bj)*SIMaskU(i,j-1,bi,bj) & - uFld(i,j+1,bi,bj)*SIMaskU(i,j ,bi,bj) ) * hFacU & + _recip_dxV(i,j,bi,bj) * ( 6.0 _d 0 * vave(i,j) @@ -197,16 +189,15 @@ SUBROUTINE SEAICE_CALC_STRAINRATES( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF #ifdef SEAICE_DYN_STABLE_ADJOINT cgf zero out adjoint fields to stabilize pkg/seaice dyna. adjoint CALL ZERO_ADJ( 1, e11Loc, myThid) CALL ZERO_ADJ( 1, e12Loc, myThid) CALL ZERO_ADJ( 1, e22Loc, myThid) #endif -#endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* ALLOW_AUTODIFF */ -#endif /* SEAICE_ALLOW_DYNAMICS */ #endif /* SEAICE_CGRID */ RETURN END diff --git a/pkg/seaice/seaice_calc_viscosities.F b/pkg/seaice/seaice_calc_viscosities.F index 53cca0e1ed..bbacdc1223 100644 --- a/pkg/seaice/seaice_calc_viscosities.F +++ b/pkg/seaice/seaice_calc_viscosities.F @@ -15,7 +15,7 @@ SUBROUTINE SEAICE_CALC_VISCOSITIES( C | corrected ice strength P | C | (see Zhang and Hibler, JGR, 102, 8691-8702, 1997) | C *==========================================================* -C | written by Martin Losch, Mar 2006 | +C | started by Martin Losch, Mar 2006 | C *==========================================================* IMPLICIT NONE @@ -59,7 +59,7 @@ SUBROUTINE SEAICE_CALC_VISCOSITIES( _RL zetaZ (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CEndOfInterface -#if ( defined (SEAICE_CGRID) && defined (SEAICE_ALLOW_DYNAMICS) ) +#ifdef SEAICE_CGRID C === Local variables === C i,j,bi,bj - Loop counters C e11, e12, e22 - components of strain rate tensor @@ -67,11 +67,18 @@ SUBROUTINE SEAICE_CALC_VISCOSITIES( C ep - e11+e22 (abbreviation) C em - e11-e22 (abbreviation) INTEGER i, j, bi, bj - _RL recip_e2, deltaCreg, deltaCsq, deltaMinSq, tmp, ep, em - _RL e12Csq(1-OLx:sNx+OLx,1-OLy:sNy+OLy) -#ifdef SEAICE_ALLOW_TEM - _RL etaMax, etaDen -#endif /* SEAICE_ALLOW_TEM */ + _RL recip_e2, deltaCsq, deltaMinSq, tmp, ep, em, smallNbr + _RL recip_efr4, recip_efr2, oneThird, oneNinth, smallNbrSq + _RL e12Csq (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL deltaCreg (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL recip_shear(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL shearDefSq, shearDef +#ifdef SEAICE_ALLOW_TEARDROP + _RL k,ksq,x,a,ap1,etamax_TD,zetamax_TD,cyc,xma, etapr +#endif /* SEAICE_ALLOW_TEARDROP */ +#if (defined SEAICE_ALLOW_MCE || defined SEAICE_ALLOW_TEM) + _RL etaMaxFac +#endif /* SEAICE_ALLOW_MCE or SEAICE_ALLOW_TEM */ _RL sumNorm, maskZ #ifdef SEAICE_ZETA_SMOOTHREG _RL argTmp @@ -79,27 +86,40 @@ SUBROUTINE SEAICE_CALC_VISCOSITIES( CEOP C-- basic constants + oneThird = 1. _d 0 / 3. _d 0 + oneNinth = 1. _d 0 / 9. _d 0 + smallNbr = 1. _d -20 + smallNbrSq = smallNbr * smallNbr + recip_e2=0. _d 0 IF ( SEAICE_eccen .NE. 0. _d 0 ) recip_e2=ONE/(SEAICE_eccen**2) + recip_efr2=0. _d 0 + recip_efr4=0. _d 0 + IF( SEAICE_eccfr .NE. 0. _d 0) THEN + recip_efr2=ONE/(SEAICE_eccfr**2) + recip_efr4=(SEAICE_eccen**2) / (SEAICE_eccfr**4) + ENDIF deltaMinSq = SEAICE_deltaMin**2 C DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - e12Csq(i,j) = 0. _d 0 + deltaCreg (i,j) = SEAICE_deltaMin + e12Csq (i,j) = 0. _d 0 + recip_shear(i,j) = 0. _d 0 ENDDO ENDDO -#endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* ALLOW_AUTODIFF */ C need to do this beforehand for easier vectorization after C TAFization IF ( SEAICEetaZmethod .EQ. 0 ) THEN DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 tmp = 0.25 * - & ( e12(I,J ,bi,bj) + e12(I+1,J ,bi,bj) - & + e12(I,J+1,bi,bj) + e12(I+1,J+1,bi,bj) ) + & ( e12(i,j ,bi,bj) + e12(i+1,j ,bi,bj) + & + e12(i,j+1,bi,bj) + e12(i+1,j+1,bi,bj) ) e12Csq(i,j) = tmp*tmp ENDDO ENDDO @@ -108,116 +128,355 @@ SUBROUTINE SEAICE_CALC_VISCOSITIES( DO i=1-OLx+1,sNx+OLx-1 C area weighted average of the squares of e12 is more accurate C (and energy conserving) - e12Csq(i,j) = 0.25 _d 0 * recip_rA(I,J,bi,bj) * - & ( rAz(I ,J ,bi,bj)*e12(I ,J ,bi,bj)**2 - & + rAz(I+1,J ,bi,bj)*e12(I+1,J ,bi,bj)**2 - & + rAz(I ,J+1,bi,bj)*e12(I ,J+1,bi,bj)**2 - & + rAz(I+1,J+1,bi,bj)*e12(I+1,J+1,bi,bj)**2 ) + e12Csq(i,j) = 0.25 _d 0 * recip_rA(i,j,bi,bj) * + & ( rAz(i ,j ,bi,bj)*e12(i ,j ,bi,bj)**2 + & + rAz(i+1,j ,bi,bj)*e12(i+1,j ,bi,bj)**2 + & + rAz(i ,j+1,bi,bj)*e12(i ,j+1,bi,bj)**2 + & + rAz(i+1,j+1,bi,bj)*e12(i+1,j+1,bi,bj)**2 ) ENDDO ENDDO ENDIF DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) em = e11(i,j,bi,bj)-e22(i,j,bi,bj) - deltaCsq = ep*ep+recip_e2*(em*em+4. _d 0*e12Csq(i,j)) + shearDefSq = em*em + 4. _d 0 * e12Csq(i,j) +#ifdef SEAICE_DELTA_SMOOTHREG + recip_shear(i,j) = 1. _d 0 + & / SQRT( shearDefSq + smallNbrSq ) +C recip_shear(i,j) = 1. _d 0 / ( shearDef + smallNbr ) +#else +# ifdef ALLOW_AUTODIFF +C avoid sqrt of 0 + shearDef = 0. _d 0 + IF ( shearDefSq .GT. 0. _d 0 ) shearDef = SQRT(shearDefSq) +# else + shearDef = SQRT(shearDefSq) +# endif /* ALLOW_AUTODIFF */ + recip_shear(i,j) = 1. _d 0 / MAX( ShearDef, smallNbr ) +#endif /* SEAICE_DELTA_SMOOTHREG */ + ENDDO + ENDDO + +C select between different yield curves; default: elliptical yield curve + IF ( .FALSE. ) THEN +C do nothing (hack to be able add code with different cpp-flag) +#ifdef SEAICE_ALLOW_TEARDROP + ELSEIF ( SEAICEuseTD ) THEN + + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) + em = e11(i,j,bi,bj)-e22(i,j,bi,bj) +C shearDef = SQRT(em*em + 4. _d 0 * e12Csq(i,j)) + + k = ep * recip_shear(i,j) + ksq = k * k + a = tnsFac(i,j,bi,bj) + +C cyc: coordinate of the maximum point of the yield curve, +C where eI changes sign + cyc=( TWO - tnsFac(i,j,bi,bj) ) * oneThird + ap1 = a + ONE + +C handle floating point errors when k is negative and very large + IF ( k .LT. -1. _d 3 ) THEN + x = (3. _d 0 * ap1) + & * ( - 1. _d 0 + 0.125 _d 0 *(3. _d 0 * ap1 ) / ksq ) + ELSE + x = TWO * ksq + TWO *k*SQRT(ksq + 3. _d 0 * ap1 ) + ENDIF + x = (x - (6. _d 0 * ap1) ) * oneNinth + a +C original formulation of Zhang 2005: +C x = ( TWO * ksq + TWO *k*sqrt(ksq + 3. _d 0 * ap1 ) +C & - (6. _d 0 * ap1) ) * oneNinth + a + +C Teardrop yield curve: +C capping x at a is probably better that setting it to a for x>1, +C but still not ideal (because non-differentiable) +C possible alternative: log(exp(rho*x)+exp(rho*a))/rho, with rho=O(100) + x = MIN( x, a ) +C x = MAX( x,-1 _d 0 ) ! to be sure + +#ifdef SEAICE_DELTA_SMOOTHREG + zeta(i,j,bi,bj) = (x + cyc) * press0(i,j,bi,bj) + & / SIGN( SQRT(ep*ep+smallNbrSq), ep) +#else + zeta(i,j,bi,bj) = (x + cyc) * press0(i,j,bi,bj) + & / SIGN( MAX( ABS(ep),smallNbr ), ep) +#endif /* SEAICE_DELTA_SMOOTHREG */ +C original formulation of Zhang 2005 +C zeta(i,j,bi,bj) = (x + 0.5 _d 0) * press0(i,j,bi,bj) +C & / SIGN( ABS(ep) + SEAICE_deltaMin, ep) +C & / SIGN( MAX( ABS(ep),deltaMinSq ), 0.5 _d 0 * ep) + + eta(i,j,bi,bj) = -(x-a) * SQRT(ONE+x) * press0(i,j,bi,bj) + & * recip_shear(i,j) + +C define the max values for eta and zeta + etamax_TD = zMax(i,j,bi,bj) * MIN(eta(i,j,bi,bj) + & /(ABS(zeta(i,j,bi,bj)) + smallNbr), ONE) + zetamax_TD =zMax(i,j,bi,bj) * MIN(zeta(i,j,bi,bj) + & /(ABS(eta(i,j,bi,bj)) + smallNbr), ONE ) + +C apply the max values + zeta(i,j,bi,bj) = MIN(zeta(i,j,bi,bj), zetamax_TD) + eta (i,j,bi,bj) = MIN( eta(i,j,bi,bj), etamax_TD) +C original formulation of Zhang 2005 +C zeta(i,j,bi,bj) = MIN(zeta(i,j,bi,bj), zMax(i,j,bi,bj)) +C eta (i,j,bi,bj) = MIN( eta(i,j,bi,bj), zMax(i,j,bi,bj)) + +C compute the replacement pressure + press(i,j,bi,bj) = TWO * cyc * ( + & press0(i,j,bi,bj)*( ONE - SEAICEpressReplFac ) + & + SEAICEpressReplFac * ep * zeta(i,j,bi,bj) + & / SIGN(MAX(ABS(x+cyc), smallNbr), x+cyc) ) + +C reduce eta according to replacement pressure + etapr = -(x-a) * SQRT(ONE + x) * press(i,j,bi,bj)/(ONE-a) + & * recip_shear(i,j) + etapr = MIN( etapr, etamax_TD ) + eta(i,j,bi,bj) = SEAICEpressReplFac * etapr + & + eta(i,j,bi,bj) * ( ONE - SEAICEpressReplFac ) + + ENDDO ! x loop + ENDDO ! y loop + + ELSEIF ( SEAICEusePL ) THEN + + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + + ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) + k = ep * recip_shear(i,j) + a = tnsFac(i,j,bi,bj) + x = 0.5 _d 0 * (k - 1. _d 0 + a) + x = MAX( x, -1. _d 0 ) + x = MIN( x, a ) + xma = x + 0.5 _d 0 *(1. _d 0 - a ) +C compute zeta +#ifdef SEAICE_DELTA_SMOOTHREG + zeta(i,j,bi,bj) = xma * press0(i,j,bi,bj) + & / SIGN( SQRT(ep*ep + smallNbrSq) , ep) +#else + zeta(i,j,bi,bj) = xma * press0(i,j,bi,bj) + & / SIGN( MAX(ABS(ep),smallNbr) , ep) +#endif /* SEAICE_DELTA_SMOOTHREG */ +C original formulation of Zhang 2005 +C zeta(i,j,bi,bj) = (x + 0.5 _d 0) * press0(i,j,bi,bj) +C & / SIGN( ABS(ep) + SEAICE_deltaMin, ep) +C & / SIGN( MAX( ABS(ep),deltaMinSq ), 0.5 _d 0 * ep) + +C compute eta + eta(i,j,bi,bj) = -(x-a) * (ONE + x) * press0(i,j,bi,bj) + & * recip_shear(i,j) + +C maximum of eta and zeta + etamax_TD = zMax(i,j,bi,bj) * MIN(eta(i,j,bi,bj) + & /(ABS(zeta(i,j,bi,bj)) + smallNbr),ONE ) + zetamax_TD =zMax(i,j,bi,bj) * MIN(zeta(i,j,bi,bj) + & /(ABS(eta(i,j,bi,bj)) + smallNbr),ONE ) + +C apply the maxiums on zeta and eta + zeta(i,j,bi,bj) = MIN(zeta(i,j,bi,bj),zetamax_TD) + eta (i,j,bi,bj) = MIN( eta(i,j,bi,bj), etamax_TD) + +C replacement pressure + press(i,j,bi,bj) = + & ( press0(i,j,bi,bj)*( ONE - SEAICEpressReplFac ) + & + zeta(i,j,bi,bj) * ep * SEAICEpressReplFac + & / SIGN(ABS(xma) + smallNbr, xma ) ) + & * ( ONE - a ) + +C change eta according to replacement pressure + etapr = -(x-a) * (ONE + x) * press(i,j,bi,bj)/(ONE-a) + & * recip_shear(i,j) + etapr = MIN( etapr, etamax_TD ) + eta(i,j,bi,bj) = SEAICEpressReplFac * etapr + & + eta(i,j,bi,bj) * ( ONE - SEAICEpressReplFac ) + ENDDO !i loop + ENDDO !j loop +#endif /* SEAICE_ALLOW_TEARDROP */ +#ifdef SEAICE_ALLOW_MCS + ELSEIF ( SEAICEuseMCS ) THEN +C Full Mohr-Coulomb following IP et al. 1991 + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + +C compute eI = ep + ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) + +C compute zeta +#ifdef SEAICE_DELTA_SMOOTHREG + zeta(i,j,bi,bj) = press0(i,j,bi,bj)*(ONE+tnsFac(i,j,bi,bj)) + & / (TWO * SQRT(ep*ep+deltaMinSq) ) +#else + zeta(i,j,bi,bj) = press0(i,j,bi,bj)*(ONE+tnsFac(i,j,bi,bj)) + & / (TWO * MAX(ABS(ep),SEAICE_deltaMin) ) +#endif /* SEAICE_DELTA_SMOOTHREG */ + +C replacement pressure + press(i,j,bi,bj) = ( ONE - tnsFac(i,j,bi,bj) ) + & * ( press0(i,j,bi,bj) * ( ONE - SEAICEpressReplFac ) + & + SEAICEpressReplFac * TWO * zeta(i,j,bi,bj) * ABS(ep) + & / ( ONE + tnsFac(i,j,bi,bj) ) ) + +C compute eta (eMax=zMax) + eta(i,j,bi,bj) = SEAICEmcMU * (0.5 _d 0 * press(i,j,bi,bj) + & - zeta(i,j,bi,bj)*ep+press0(i,j,bi,bj)*tnsFac(i,j,bi,bj)) + & * recip_shear(i,j) + +C maximum for eta (high compressive stresses) + eta(i,j,bi,bj) = MIN(eta(i,j,bi,bj) , zMax(i,j,bi,bj)) + + ENDDO + ENDDO +#endif /* SEAICE_ALLOW_MCS */ + ELSE +C For all elliptic yield curves, the computation of deltaC and zeta +C is identical so we do it first. + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) + em = e11(i,j,bi,bj)-e22(i,j,bi,bj) + shearDefSq = em*em + 4. _d 0*e12Csq(i,j) + deltaCsq = ep*ep + recip_efr4*shearDefSq CML The old formulation does not ensure that deltaC**2 is always positive, CML but in case you need it to reproduce old results, here it is: -CML deltaCsq = +CML deltaCsq = CML & (e11(i,j,bi,bj)**2+e22(i,j,bi,bj)**2)*(ONE+recip_e2) CML & + 4. _d 0*recip_e2*e12Csq(i,j) CML & + 2. _d 0*e11(i,j,bi,bj)*e22(i,j,bi,bj)*(ONE-recip_e2) -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF C avoid sqrt of 0 - deltaC(I,J,bi,bj) = 0. _d 0 - IF ( deltaCsq .GT. 0. _d 0 ) - & deltaC(I,J,bi,bj) = SQRT(deltaCsq) + deltaC(i,j,bi,bj) = 0. _d 0 + IF ( deltaCsq .GT. 0. _d 0 ) + & deltaC(i,j,bi,bj) = SQRT(deltaCsq) #else - deltaC(I,J,bi,bj) = SQRT(deltaCsq) -#endif /* ALLOW_AUTODIFF_TAMC */ + deltaC(i,j,bi,bj) = SQRT(deltaCsq) +#endif /* ALLOW_AUTODIFF */ #ifdef SEAICE_DELTA_SMOOTHREG C smooth regularization (without max-function) of delta for C better differentiability - deltaCreg = SQRT(deltaCsq + deltaMinSq) -CML deltaCreg = deltaC(I,J,bi,bj) + SEAICE_deltaMin + deltaCreg(i,j) = SQRT(deltaCsq + deltaMinSq) +CML deltaCreg(i,j) = deltaC(i,j,bi,bj) + SEAICE_deltaMin #else - deltaCreg = MAX(deltaC(I,J,bi,bj),SEAICE_deltaMin) + deltaCreg(i,j) = MAX(deltaC(i,j,bi,bj),SEAICE_deltaMin) #endif /* SEAICE_DELTA_SMOOTHREG */ #ifdef SEAICE_ZETA_SMOOTHREG C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP - argTmp = exp(-1. _d 0/(deltaCreg*SEAICE_zetaMaxFac)) - zeta (I,J,bi,bj) = ZMAX(I,J,bi,bj) - & *(1. _d 0 - argTmp)/(1. _d 0 + argTmp) + argTmp = exp(-1. _d 0/(deltaCreg(i,j)*SEAICE_zetaMaxFac)) + zeta (i,j,bi,bj) = zMax(i,j,bi,bj) + & *(1. _d 0 - argTmp)/(1. _d 0 + argTmp) + & *(1. _d 0 + tnsFac(i,j,bi,bj) ) #else - zeta (I,J,bi,bj) = HALF*( press0(I,J,bi,bj) - & * ( 1. _d 0 + tnsFac(I,J,bi,bj) ) - & )/deltaCreg + zeta (i,j,bi,bj) = HALF*( press0(i,j,bi,bj) + & * ( 1. _d 0 + tnsFac(i,j,bi,bj) ) + & )/deltaCreg(i,j) C put min and max viscosities in - zeta (I,J,bi,bj) = MIN(ZMAX(I,J,bi,bj),zeta(I,J,bi,bj)) + zeta (i,j,bi,bj) = MIN(zMax(i,j,bi,bj),zeta(i,j,bi,bj)) #endif /* SEAICE_ZETA_SMOOTHREG */ - zeta (I,J,bi,bj) = MAX(ZMIN(I,J,bi,bj),zeta(I,J,bi,bj)) + zeta (i,j,bi,bj) = MAX(zMin(i,j,bi,bj),zeta(i,j,bi,bj)) C set viscosities to zero at HEFFM flow pts - zeta (I,J,bi,bj) = zeta(I,J,bi,bj)*HEFFM(I,J,bi,bj) - eta (I,J,bi,bj) = recip_e2*zeta(I,J,bi,bj) + zeta (i,j,bi,bj) = zeta(i,j,bi,bj)*HEFFM(i,j,bi,bj) C "replacement pressure" - press(I,J,bi,bj) = - & ( press0(I,J,bi,bj)*( 1. _d 0 - SEAICEpressReplFac ) - & + TWO*zeta(I,J,bi,bj)*deltaC(I,J,bi,bj) - & * SEAICEpressReplFac/( 1. _d 0 + tnsFac(I,J,bi,bj) ) - & ) * ( 1. _d 0 - tnsFac(I,J,bi,bj) ) -CML press(I,J,bi,bj) = press0(I,J,bi,bj) * + press(i,j,bi,bj) = + & ( press0(i,j,bi,bj)*( 1. _d 0 - SEAICEpressReplFac ) + & + TWO*zeta(i,j,bi,bj)*deltaC(i,j,bi,bj) + & * SEAICEpressReplFac/( 1. _d 0 + tnsFac(i,j,bi,bj) ) + & ) * ( 1. _d 0 - tnsFac(i,j,bi,bj) ) +CML press(i,j,bi,bj) = press0(i,j,bi,bj) * CML & ( 1. _d 0 + SEAICEpressReplFac -CML & * ( deltaC(I,J,bi,bj)/deltaCreg - 1. _d 0 ) -CML & ) * ( 1. _d 0 - tnsFac(I,J,bi,bj) ) - ENDDO - ENDDO -#ifdef SEAICE_ALLOW_TEM - IF ( SEAICEuseTEM ) THEN - DO j=1-OLy+1,sNy+OLy-1 - DO i=1-OLx+1,sNx+OLx-1 - ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) - em = e11(i,j,bi,bj)-e22(i,j,bi,bj) - etaDen = em*em + 4. _d 0 * e12Csq(i,j) - etaDen = SQRT(MAX(deltaMinSq,etaDen)) - etaMax = ( 0.5 _d 0*press(I,J,bi,bj)-zeta(I,J,bi,bj)*ep - & )/etaDen - eta(I,J,bi,bj) = MIN(eta(I,J,bi,bj),etaMax) +CML & * ( deltaC(i,j,bi,bj)/deltaCreg(i,j) - 1. _d 0 ) +CML & ) * ( 1. _d 0 - tnsFac(i,j,bi,bj) ) ENDDO ENDDO +C The elliptical yield curves differ in the way eta is computed. +#if (defined SEAICE_ALLOW_MCE) || (defined SEAICE_ALLOW_TEM) + IF ( SEAICEuseMCE .OR. SEAICEuseTEM ) THEN +C MC yield curve with non-normal flow rule (elliptical plastic potential) +C or Truncated Ellipse method with Coulombic limbs + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + ep = e11(i,j,bi,bj)+e22(i,j,bi,bj) +C compute eta: +C In principle, we need to recompute zeta here, because we need the +C unlimited version +C zetaLoc = HALF*( press0(i,j,bi,bj) +C & * ( 1. _d 0 + tnsFac(i,j,bi,bj) ) +C & )/deltaCreg(i,j) +C eta(i,j,bi,bj) = SEAICEmcMU * (0.5 * press0(i,j,bi,bj) +C & * ( 1. _d 0 - tnsFac(i,j,bi,bj) ) - zetaLoc * ep +C & + press0(i,j,bi,bj)*tnsFac(i,j,bi,bj)) / shearDef +C but in this formulation, only ep/deltaCreg(i,j) remains + eta(i,j,bi,bj) = SEAICEmcMU * HALF * press0(i,j,bi,bj) + & * ( 1. _d 0 + tnsFac(i,j,bi,bj) ) + & * ( 1. _d 0 - ep/deltaCreg(i,j) ) * recip_shear(i,j) +C compute etaMaxFac = zMax/zetaLoc + etaMaxFac = SEAICE_zetaMaxFac * 2. _d 0 * deltaCreg(i,j) + & / ( 1. _d 0 + tnsFac(i,j,bi,bj) ) +C apply maximum from Mohr-Coulomb limbs + eta(i,j,bi,bj) = eta(i,j,bi,bj) * MIN( 1. _d 0, etaMaxFac ) +C apply maximum from Elliptical formulation (to be sure) + eta(i,j,bi,bj) = + & MIN( eta(i,j,bi,bj), zMax(i,j,bi,bj)*recip_efr2 ) + ENDDO + ENDDO +C close the coulombic limbs with the ellipse for compression + IF ( SEAICEuseTEM) THEN + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + eta(i,j,bi,bj) = MIN( eta(i,j,bi,bj), + & zeta(i,j,bi,bj) * recip_efr2 ) + ENDDO + ENDDO + ENDIF + ELSE +#endif /* SEAICE_ALLOW_MCE or SEAICE_ALLOW_TEM */ +C default elliptical yield curve + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + eta(i,j,bi,bj) = zeta(i,j,bi,bj) * recip_efr2 + ENDDO + ENDDO +#if (defined SEAICE_ALLOW_MCE) || (defined SEAICE_ALLOW_TEM) +C end of elliptical yield curve options + ENDIF +#endif /* SEAICE_ALLOW_MCE or SEAICE_ALLOW_TEM */ +C end of yield curve options ENDIF -#endif /* SEAICE_ALLOW_TEM */ + C compute eta at Z-points by simple averaging DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 - sumNorm = HEFFM(I,J, bi,bj)+HEFFM(I-1,J, bi,bj) - & + HEFFM(I,J-1,bi,bj)+HEFFM(I-1,J-1,bi,bj) + sumNorm = HEFFM(i,j, bi,bj)+HEFFM(i-1,j, bi,bj) + & + HEFFM(i,j-1,bi,bj)+HEFFM(i-1,j-1,bi,bj) IF ( sumNorm.GT.0. _d 0 ) sumNorm = 1. _d 0 / sumNorm - etaZ(I,J,bi,bj) = sumNorm * - & ( eta (I,J ,bi,bj) + eta (I-1,J ,bi,bj) - & + eta (I,J-1,bi,bj) + eta (I-1,J-1,bi,bj) ) - zetaZ(I,J,bi,bj) = sumNorm * - & ( zeta(I,J ,bi,bj) + zeta(I-1,J ,bi,bj) - & + zeta(I,J-1,bi,bj) + zeta(I-1,J-1,bi,bj) ) + etaZ(i,j,bi,bj) = sumNorm * + & ( eta (i,j ,bi,bj) + eta (i-1,j ,bi,bj) + & + eta (i,j-1,bi,bj) + eta (i-1,j-1,bi,bj) ) + zetaZ(i,j,bi,bj) = sumNorm * + & ( zeta(i,j ,bi,bj) + zeta(i-1,j ,bi,bj) + & + zeta(i,j-1,bi,bj) + zeta(i-1,j-1,bi,bj) ) ENDDO ENDDO C free-slip means no lateral stress, which is best achieved by masking C eta on vorticity(=Z)-points; from now on we only need to worry C about the no-slip boundary conditions IF (.NOT.SEAICE_no_slip) THEN - DO J=1-OLy+1,sNy+OLy-1 - DO I=1-OLx+1,sNx+OLx-1 - maskZ = HEFFM(I,J, bi,bj)*HEFFM(I-1,J, bi,bj) - & * HEFFM(I,J-1,bi,bj)*HEFFM(I-1,J-1,bi,bj) - etaZ (I,J,bi,bj) = etaZ(I,J,bi,bj) * maskZ - zetaZ(I,J,bi,bj) = zetaZ(I,J,bi,bj) * maskZ + DO j=1-OLy+1,sNy+OLy-1 + DO i=1-OLx+1,sNx+OLx-1 + maskZ = HEFFM(i,j, bi,bj)*HEFFM(i-1,j, bi,bj) + & * HEFFM(i,j-1,bi,bj)*HEFFM(i-1,j-1,bi,bj) + etaZ (i,j,bi,bj) = etaZ(i,j,bi,bj) * maskZ + zetaZ(i,j,bi,bj) = zetaZ(i,j,bi,bj) * maskZ ENDDO ENDDO ENDIF ENDDO ENDDO -#endif /* SEAICE_ALLOW_DYNAMICS and SEAICE_CGRID */ +#endif /* SEAICE_CGRID */ RETURN END diff --git a/pkg/seaice/seaice_check.F b/pkg/seaice/seaice_check.F index 87ead9f545..ce8fa20de6 100644 --- a/pkg/seaice/seaice_check.F +++ b/pkg/seaice/seaice_check.F @@ -47,6 +47,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) C === Local variables === C ioUnit :: temp for writing msg unit C msgBuf :: Informational/error message buffer +C errCount :: error counter INTEGER ioUnit CHARACTER*(MAX_LEN_MBUF) msgBuf LOGICAL checkAdvSchArea, checkAdvSchHeff, checkAdvSchSnow @@ -55,16 +56,17 @@ SUBROUTINE SEAICE_CHECK( myThid ) INTEGER iTracer #endif _RL SEAICE_mcphee_max - INTEGER kSurface + INTEGER kSrf INTEGER i + INTEGER errCount INTEGER ILNBLNK EXTERNAL ILNBLNK C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN - kSurface = Nr + IF ( usingPCoords ) THEN + kSrf = Nr ELSE - kSurface = 1 + kSrf = 1 ENDIF ioUnit = errorMessageUnit @@ -75,12 +77,14 @@ SUBROUTINE SEAICE_CHECK( myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) + errCount = 0 + C-- SEAICE needs forcing_In_AB FALSE IF (tracForcingOutAB.NE.1) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' Need T,S forcing out of AB (tracForcingOutAB=1)' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF C------------------------------------------------- @@ -93,14 +97,14 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' SEAICE_areaGainFormula must be between 1 and 2' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ((SEAICE_areaLossFormula.LT.1).OR. & (SEAICE_areaLossFormula.GT.3)) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' SEAICE_areaLossFormula must be between 1 and 2' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( (.NOT.SEAICE_doOpenWaterGrowth) @@ -112,12 +116,14 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_areaGainFormula.EQ.2 and SEAICE_areaLossFormula.EQ.3' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF C-- check concistency of turbulent flux term etc. specification - SEAICE_mcphee_max=drF(kSurface)/SEAICE_deltaTtherm + SEAICE_mcphee_max=drF(kSrf)/SEAICE_deltaTtherm + IF ( usingPCoords ) SEAICE_mcphee_max + & = SEAICE_mcphee_max * recip_rhoConst * recip_gravity IF ( SEAICE_mcPheePiston .LT. 0. _d 0 .OR. & SEAICE_mcPheePiston .GT. SEAICE_mcphee_max ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', @@ -126,7 +132,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' They must lie within 0. and drF(1)/SEAICE_deltaTtherm' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( ( SEAICE_frazilFrac .LT. 0. _d 0 ) .OR. @@ -137,7 +143,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' They must lie within 0. and 1. ' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( ( SEAICE_mcPheeTaper .LT. 0. _d 0 ) .OR. @@ -146,7 +152,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SEAICE_mcPheeTaper cannot be specified ', & 'outside of the [0. 1.] range' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + errCount = errCount + 1 ENDIF IF ( SEAICE_doOpenWaterMelt .AND. @@ -157,7 +163,51 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'also set SEAICE_doOpenWaterGrowth to .TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 + ENDIF + +C check albedos + IF ( SEAICE_dryIceAlb .GT. SEAICE_drySnowAlb ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: ', + & 'SEAICE_dryIceAlb > SEAICE_drySnowAlb makes little sense' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: and leads ', + & 'to albedo = SEAICE_drySnowAlb for all snow thicknesses' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( SEAICE_wetIceAlb .GT. SEAICE_wetSnowAlb ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: ', + & 'SEAICE_wetIceAlb > SEAICE_wetSnowAlb makes little sense' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: and leads ', + & 'to albedo = SEAICE_wetSnowAlb for all snow thicknesses' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( SEAICE_dryIceAlb_south .GT. SEAICE_drySnowAlb_south ) THEN + WRITE(msgBuf,'(3A)') '** WARNING ** SEAICE_CHECK: ', + & 'SEAICE_dryIceAlb_south > SEAICE_drySnowAlb_south ', + & 'makes little sense' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: and leads ', + & 'to albedo = SEAICE_drySnowAlb_south for all snow thicknesses' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + IF ( SEAICE_wetIceAlb_south .GT. SEAICE_wetSnowAlb_south ) THEN + WRITE(msgBuf,'(3A)') '** WARNING ** SEAICE_CHECK: ', + & 'SEAICE_wetIceAlb_south > SEAICE_wetSnowAlb_south ', + & 'makes little sense' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: and leads ', + & 'to albedo = SEAICE_wetSnowAlb_south for all snow thicknesses' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) ENDIF C-- end if usePW79thermodynamics @@ -167,6 +217,15 @@ SUBROUTINE SEAICE_CHECK( myThid ) C-- check specifications of new features for testing +#ifdef ALLOW_BALANCE_FLUXES + IF ( usePW79thermodynamics .AND. selectBalanceEmPmR.EQ.2 ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', + & 'selectBalanceEmPmR=2 not yet implemented in pkg/seaice' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif + #ifdef SEAICE_DISABLE_HEATCONSFIX IF ( SEAICEheatConsFix ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', @@ -175,7 +234,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'undef SEAICE_DISABLE_HEATCONSFIX and recompile' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif @@ -187,7 +246,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'define ALLOW_SITRACER and recompile' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICE_ageTracer ) THEN @@ -197,7 +256,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'define ALLOW_SITRACER and recompile' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif @@ -215,7 +274,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SItrFromOceanFrac cannot be specified ', & 'outside of the [0. 1.] range' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + errCount = errCount + 1 ENDIF IF ( ( SItrFromFloodFrac(iTracer) .LT. 0. _d 0 ) .OR. @@ -224,7 +283,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SItrFromFloodFrac cannot be specified ', & 'outside of the [0. 1.] range' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + errCount = errCount + 1 ENDIF c IF ( (SItrName(iTracer).EQ.'salinity') .AND. @@ -233,7 +292,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) c & 'SItrName = "salinity" requires ', c & 'SItrMate = "HEFF" ' c CALL PRINT_ERROR( msgBuf, myThid ) -c STOP 'ABNORMAL END: S/R SEAICE_READPARMS' +c errCount = errCount + 1 c ENDIF IF ( (SItrName(iTracer).NE.'salinity').AND. @@ -243,7 +302,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SItrFromOceanFrac / SItrFromFloodFrac is only ', & 'available for SItrName = "salinity" (for now)' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + errCount = errCount + 1 ENDIF ENDDO @@ -342,7 +401,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & ' SEAICEadvSchSalt = ', SEAICEadvSchSalt CALL PRINT_ERROR( msgBuf, myThid ) ENDIF - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICEadvScheme.EQ.ENUM_CENTERED_2ND ) THEN C-- for now, the code does not allow to use the default advection scheme @@ -395,7 +454,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & ' SEAICEadvSchSalt = ', SEAICEadvSchSalt CALL PRINT_ERROR( msgBuf, myThid ) ENDIF - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ELSEIF ( DIFF1 .NE. 0. _d 0 ) THEN C-- for now, the code does not allow to use DIFF1 without the default @@ -406,7 +465,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A,I3)') 'SEAICE_CHECK: ', & 'not available with SEAICEadvScheme=', SEAICEadvScheme CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF C Avoid using both type of diffusion scheme (DIFF1 & SEAICEdiffKh) @@ -422,14 +481,14 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' => Cannot use both type of diffusion' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( postSolvTempIter.GT.2 .OR. postSolvTempIter .LT. 0 ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', & ' => allowed values for postSolveTempIter: 0, 1, 2' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICEpresH0 .LE. 0. _d 0 .OR. @@ -440,7 +499,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: OR SEAICEpresPow1 ', & '(integer) has been specified as negative (data.seaice)' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF C-- @@ -453,7 +512,17 @@ SUBROUTINE SEAICE_CHECK( myThid ) & ' MPSEUDOTIMESTEPS, SEAICEnonLinIterMax = ', & MPSEUDOTIMESTEPS, SEAICEnonLinIterMax CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 + ENDIF + IF ( SEAICElinearIterMax .GT. SOLV_MAX_FIXED ) THEN + WRITE(msgBuf,'(2A,I10,A,I10)') 'SEAICE_CHECK:', + & 'SEAICElinearIterMax = ', SEAICElinearIterMax, + & ' > SOLV_MAX_FIXED = ', SOLV_MAX_FIXED + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A,I10,A,I10)') 'SEAICE_CHECK:', + &'either increase SOLV_MAX_FIXED or decrease SEAICElinearIterMax' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SEAICE_LSR' ENDIF IF ( IMAX_TICE .GT. NMAX_TICE ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK:', @@ -462,22 +531,30 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A,2I4)') 'SEAICE_CHECK:', & ' NMAX_TICE, MAX_TICE = ', NMAX_TICE, IMAX_TICE CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICE_maskRHS ) THEN WRITE(msgBuf,'(A)') 'SEAICE_CHECK: SEAICE_maskRHS not allowed' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif -C-- SEAICE_ALLOW_DYNAMICS and SEAICEuseDYNAMICS -#ifndef SEAICE_ALLOW_DYNAMICS +C-- SEAICE_CGRID, SEAICE_BGRID_DYNAMICS and SEAICEuseDYNAMICS +#if ( defined SEAICE_CGRID && defined SEAICE_BGRID_DYNAMICS ) + WRITE(msgBuf,'(A,A)') + & 'SEAICE_CHECK: SEAICE_CGRID and SEAICE_BGRID_DYNAMICS ', + & 'cannot be defined at the same time.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif +#if !( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) IF (SEAICEuseDYNAMICS) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_ALLOW_DYNAMICS needed for SEAICEuseDYNAMICS' + WRITE(msgBuf,'(A,A)') + & 'SEAICE_CHECK: either SEAICE_CGRID ', + & 'or SEAICE_BGRID_DYNAMICS needed for SEAICEuseDYNAMICS = T' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif @@ -486,7 +563,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_ALLOW_MOM_ADVECTION needed for SEAICEmomAdvection' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif @@ -527,7 +604,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) #endif /* SEAICE_MULTICATEGORY */ -C-- SEAICE_ALLOW_TD_IF is obsolete: issue warning and stop. +C-- SEAICE_ALLOW_TD_IF is obsolete: issue error and stop. #ifdef SEAICE_ALLOW_TD_IF WRITE(msgBuf,'(A)') & 'SEAICE_ALLOW_TD_IF option is obsolete:' @@ -535,10 +612,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'the seaice*_IF codes are now merged into the main branch.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_ALLOW_TD_IF */ -C-- SEAICE_DO_OPEN_WATER_GROWTH is obsolete: issue warning and stop. +C-- SEAICE_DO_OPEN_WATER_GROWTH is obsolete: issue error and stop. #if defined(SEAICE_DO_OPEN_WATER_GROWTH) || \ defined(SEAICE_DO_OPEN_WATER_MELT) WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', @@ -547,10 +624,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'they are replaced with run time', & ' parameter SEAICE_doOpenWaterGrowth / Melt' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_DO_OPEN_WATER_GROWTH */ -C-- SEAICE_OCN_MELT_ACT_ON_AREA is obsolete: issue warning and stop. +C-- SEAICE_OCN_MELT_ACT_ON_AREA is obsolete: issue error and stop. #ifdef SEAICE_OCN_MELT_ACT_ON_AREA WRITE(msgBuf,'(A)') & 'SEAICE_OCN_MELT_ACT_ON_AREA option is obsolete:' @@ -558,10 +635,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'it is now done with SEAICE_areaLossFormula.EQ.1 and 2' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_OCN_MELT_ACT_ON_AREA */ -C-- FENTY_AREA_EXPANSION_CONTRACTION is obsolete: issue warning and stop. +C-- FENTY_AREA_EXPANSION_CONTRACTION is obsolete: issue error and stop. #ifdef FENTY_AREA_EXPANSION_CONTRACTION WRITE(msgBuf,'(A)') & 'FENTY_AREA_EXPANSION_CONTRACTION option is obsolete:' @@ -569,10 +646,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'it is now done with SEAICE_areaLoss(Melt)Formula.EQ.1' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_DO_OPEN_WATER_MELT */ -C-- SEAICE_AGE is obsolete: issue warning and stop. +C-- SEAICE_AGE is obsolete: issue error and stop. #ifdef SEAICE_AGE WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'SEAICE_AGE option is obsolete: ' @@ -580,10 +657,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'it now is done', & ' with SEAICE_SITRACER and siTrName=age' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_AGE */ -C-- SEAICE_SALINITY is obsolete: issue warning and stop. +C-- SEAICE_SALINITY is obsolete: issue error and stop. #ifdef SEAICE_SALINITY WRITE(msgBuf,'(A)') & 'SEAICE_SALINITY option is obsolete' @@ -591,10 +668,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'use SEAICE_VARIABLE_SALINITY instead.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_SALINITY */ -C-- SEAICE_OLD_AND_BAD_DISCRETIZATION is obsolete: issue warning and stop. +C-- SEAICE_OLD_AND_BAD_DISCRETIZATION is obsolete: issue error and stop. #ifdef SEAICE_OLD_AND_BAD_DISCRETIZATION WRITE(msgBuf,'(A)') & 'SEAICE_OLD_AND_BAD_DISCRETIZATION option is obsolete' @@ -602,7 +679,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'and has no effect.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif /* SEAICE_OLD_AND_BAD_DISCRETIZATION */ C-- pkg/seaice requires pkg/exf with following CPP options/ @@ -613,32 +690,32 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'need to define ALLOW_EXF' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #else /* ALLOW_EXF */ IF ( .NOT.useEXF ) THEN WRITE(msgBuf,'(A)') & 'S/R SEAICE_CHECK: need to set useEXF in data.pkg' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #ifndef ALLOW_ATM_TEMP WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: ', & 'need to define pkg/exf ALLOW_ATM_TEMP' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif #ifndef ALLOW_DOWNWARD_RADIATION WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: ', & 'need to define pkg/exf ALLOW_DOWNWARD_RADIATION' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 #endif #ifdef SEAICE_EXTERNAL_FLUXES # if !defined(EXF_READ_EVAP) && !defined(ALLOW_BULKFORMULAE) WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: ', & 'need to set EXF_READ_EVAP or ALLOW_BULKFORMULAE in pkg/exf' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 # endif /* !defined(EXF_READ_EVAP) && !defined(ALLOW_BULKFORMULAE) */ IF ( SEAICE_waterAlbedo .NE. UNSET_RL ) THEN WRITE(msgBuf,'(A)') @@ -647,29 +724,29 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'Set exf_albedo in data.exf EXF_NML_01 instead' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( lwfluxfile .NE. ' ' .AND. lwdownfile .EQ. ' ' ) THEN i = ILNBLNK(lwfluxfile) WRITE(msgBuf,'(A,A)') & 'lwFlux is read from lwfluxfile = ',lwfluxfile(1:i) CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') - & 'implying that lwdown = 0. For pkg/seaice to work '// + WRITE(msgBuf,'(2A)') + & 'implying that lwdown = 0. For pkg/seaice to work ', & 'properly lwdown should be read from lwdownfile!' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( swfluxfile .NE. ' ' .AND. swdownfile .EQ. ' ' ) THEN i = ILNBLNK(swfluxfile) WRITE(msgBuf,'(A,A)') & 'swFlux is read from swfluxfile = ',swfluxfile(1:i) CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') - & 'implying that swdown = 0. For pkg/seaice to work '// + WRITE(msgBuf,'(2A)') + & 'implying that swdown = 0. For pkg/seaice to work ', & 'properly swdown should be read from swdownfile!' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #else /* if undef SEAICE_EXTERNAL_FLUXES */ WRITE(msgBuf,'(3A)') 'S/R SEAICE_CHECK: ', @@ -689,7 +766,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: ', & 'needs pkg/exf useAtmWind to be true' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif #ifndef EXF_SEAICE_FRACTION @@ -697,7 +774,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: ', & 'ice-area relaxation needs #define EXF_SEAICE_FRACTION' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif #endif /* ALLOW_EXF */ @@ -714,15 +791,16 @@ SUBROUTINE SEAICE_CHECK( myThid ) CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) ENDIF -#ifdef SEAICE_ALLOW_DYNAMICS +#ifdef SEAICE_CGRID IF ( SEAICEuseDynamics ) THEN +C-- Check Overlap size: IF ( SEAICEuseJFNK ) THEN IF ( OLx.LT.3 .OR. OLy.LT.3 ) THEN WRITE(msgBuf,'(A,A)') & 'SEAICE_CHECK: cannot use JFNK-solver with', & ' overlap (OLx,OLy) smaller than 3' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ELSE IF ( OLx.LT.2 .OR. OLy.LT.2 ) THEN @@ -730,7 +808,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SEAICE_CHECK: cannot use dynamics solver with', & ' overlap (OLx,OLy) smaller than 2' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ENDIF IF ( SEAICE_OLx .GT. OLx-2 .OR. SEAICE_OLy .GT. OLy-2 .OR. @@ -742,7 +820,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'S/R SEAICE_CHECK: SEAICE_OLx/y cannot be smaller than 0 ', & 'or larger than OLx/y-2 = ', OLx-2, '/', OLy-2 CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICE_2ndOrderBC ) THEN IF ( OLx.LT.3 .OR. OLy.LT.3 ) THEN @@ -750,7 +828,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SEAICE_CHECK: SEAICE_2ndOrderBC = .TRUE. requires', & ' an overlap (OLx,OLy) of at least 3' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICE_OLx .GT. OLx-3 .OR. SEAICE_OLy .GT. OLy-3 ) THEN WRITE(msgBuf,'(A,I2,A,I2)') @@ -761,57 +839,84 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'S/R SEAICE_CHECK: with SEAICE_2ndOrderBC, SEAICE_OLx/y', & ' cannot be larger than OLx/y-3 = ', OLx-3, '/', OLy-3 CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ENDIF - ENDIF -#endif /* SEAICE_ALLOW_DYNAMICS */ -#ifdef SEAICE_ALLOW_EVP -# ifdef ALLOW_AUTODIFF_TAMC - IF ( INT(SEAICE_deltaTdyn/SEAICE_deltaTevp).GT.nEVPstepMax ) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_ALLOW_EVP: need to set nEVPstepMax to >= nEVPstep' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A,I4)') - & 'nEVPstep = INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) = ', - & INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' - ENDIF - IF ( SEAICEnEVPstarSteps.NE.UNSET_I .AND. - & SEAICEnEVPstarSteps.GT.nEVPstepMax ) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_CHECK: need to set nEVPstepMax to >= '// - & 'SEAICEnEVPstarSteps' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A,I4)') - & 'SEAICE_CHECK: SEAICEnEVPstarSteps = ', SEAICEnEVPstarSteps - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' - ENDIF -# endif - IF ( .NOT.(SEAICEuseEVPstar.OR.SEAICEuseEVPrev) - & .AND. SEAICEnEVPstarSteps.NE.UNSET_I ) THEN - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: SEAICEnEVPstarSteps is '// - & 'set, but SEAICEuseEVPstar = .FALSE.' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' - ENDIF -#else - IF ( SEAICEuseEVP ) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_CHECK: SEAICEuseEVP = .TRUE., so EVP is turned on' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') - & 'SEAICE_CHECK: by setting appropriate runtime parameters,' - CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: but cpp-flag '// - & 'SEAICE_ALLOW_EVP is not defined in SEAICE_OPTIONS.h' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' +# ifdef SEAICE_ALLOW_EVP + IF ( SEAICEuseEVP ) THEN +# ifdef ALLOW_AUTODIFF_TAMC + IF ( SEAICEnEVPstarSteps.GT.nEVPstepMax ) THEN + WRITE(msgBuf,'(2A)') + & 'SEAICE_CHECK: need to set nEVPstepMax to >= ', + & 'SEAICEnEVPstarSteps' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I4)') + & 'SEAICE_CHECK: SEAICEnEVPstarSteps = ', SEAICEnEVPstarSteps + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +# endif + IF ( .NOT.(SEAICEuseEVPstar.OR.SEAICEuseEVPrev) + & .AND. SEAICEnEVPstarSteps.NE. + & INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEnEVPstarSteps is ', + & 'set in namelist, but SEAICEuseEVPstar = .FALSE.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + ENDIF +# else /* SEAICE_ALLOW_EVP */ + IF ( SEAICEuseEVP ) THEN + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: SEAICEuseEVP = .TRUE., so EVP is turned on' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: by setting appropriate runtime parameters,' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: but cpp-flag ', + & 'SEAICE_ALLOW_EVP is not defined in SEAICE_OPTIONS.h' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +# endif /* SEAICE_ALLOW_EVP */ + +# ifdef SEAICE_ALLOW_EVP + IF ( SEAICEuseEVP .AND. (SEAICE_eccfr.NE.SEAICE_eccen) ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseEVP = .TRUE., ', + & 'so EVP is turned on by setting appropriate' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,F5.2,A,F5.2,A)') + & 'SEAICE_CHECK: runtime parameters, but SEAICE_eccfr(=', + & SEAICE_eccfr , ')/=SEAICE_eccen(=', SEAICE_eccen, ')' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)')'SEAICE_CHECK: implies a non-normal flow ', + & 'rule for the elliptical yield curve,' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: which is not implemented for EVP.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( SEAICEuseEVP .AND. + & ( SEAICEuseTD .OR. SEAICEusePL .OR. + & SEAICEuseMCE .OR. SEAICEuseMCS ) ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseMCS, ', + & 'SEAICEuseTD, SEAICEusePL, or SEAICEuseMCE = .TRUE.,' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: and SEAICEuseEVP = ', + & '.TRUE., but these non-standard rheologies' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: are not implemented for EVP' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +# endif /* SEAICE_ALLOW_EVP */ + +C SEAICEuseDynamics ENDIF -#endif +#endif /* SEAICE_CGRID */ #ifndef SEAICE_GLOBAL_3DIAG_SOLVER IF ( SEAICEuseMultiTileSolver ) THEN @@ -821,7 +926,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(2A)') ' but CPP-flag ', & 'SEAICE_GLOBAL_3DIAG_SOLVER is #undef in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_GLOBAL_3DIAG_SOLVER */ @@ -830,40 +935,91 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: SEAICE_clipVelocities = .TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: but cpp-flag '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: but cpp-flag ', & 'SEAICE_ALLOW_CLIPVELS is not defined in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_CLIPVELS */ #ifndef SEAICE_ALLOW_CLIPZETA IF ( SEAICE_evpDampC .GT. 0. _d 0 .OR. & SEAICE_zetaMin .GT. 0. _d 0 ) THEN - WRITE(msgBuf,'(A)') - & 'SEAICE_CHECK: SEAICE_evpDampC and/or SEAICE_zetaMin '// + WRITE(msgBuf,'(2A)') + & 'SEAICE_CHECK: SEAICE_evpDampC and/or SEAICE_zetaMin ', & 'are set in data.seaice' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: but cpp-flag '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: but cpp-flag ', & 'SEAICE_ALLOW_CLIPZETA is not defined in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_CLIPZETA */ -#if !defined(SEAICE_ALLOW_TEM) || !defined(SEAICE_CGRID) +#ifndef SEAICE_ALLOW_TEM IF ( SEAICEuseTEM ) THEN - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: SEAICEuseTEM requires that' + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseTEM requires ', + & 'that SEAICE_ALLOW_TEM is defined.' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') - & 'SEAICE_CHECK: SEAICE_ALLOW_TEM and SEAICE_CGRID are defined' + errCount = errCount + 1 + ENDIF +#endif +#ifndef SEAICE_ALLOW_MCE + IF ( SEAICEuseMCE ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseMCE requires ', + & 'that SEAICE_ALLOW_MCE is defined.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 + ENDIF +#endif +#ifndef SEAICE_ALLOW_MCS + IF ( SEAICEuseMCS ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseMCS requires ', + & 'that SEAICE_ALLOW_MCS is defined.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif +#ifndef SEAICE_ALLOW_TEARDROP + IF (SEAICEuseTD ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseTD requires ', + & 'that SEAICE_ALLOW_TEARDROP is defined.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + IF ( SEAICEusePL ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEusePL requires ', + & 'that SEAICE_ALLOW_TEARDROP is defined.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 ENDIF #endif -#ifndef SEAICE_CGRID -#ifdef SEAICE_TEST_ICE_STRESS_1 + i = 0 + IF ( SEAICEuseTEM ) i = i + 1 + IF ( SEAICEuseMCS ) i = i + 1 + IF ( SEAICEuseMCE ) i = i + 1 + IF ( SEAICEuseTD ) i = i + 1 + IF ( SEAICEusePL ) i = i + 1 + IF ( i .GT. 1 ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: More than one rheology ', + & 'flag = .TRUE.,' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: but only one can be .TRUE. at a time.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + +#ifdef SEAICE_BGRID_DYNAMICS + IF ( i .GE. 1 ) THEN + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: non-default rheologies ', + & 'require that SEAICE_CGRID is defined.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF + +# ifdef SEAICE_TEST_ICE_STRESS_1 WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: Only relevant for B-grid:' CALL PRINT_ERROR( msgBuf, myThid ) @@ -873,21 +1029,21 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: SEAICE_BICE_STRESS (defined by default)' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' -#endif /* SEAICE_TEST_ICE_STRESS_1 */ + errCount = errCount + 1 +# endif /* SEAICE_TEST_ICE_STRESS_1 */ IF ( SEAICEuseDYNAMICS.AND.useCubedSphereExchange ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'B-grid dynamics not working on Cubed-Sphere grid' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICEuseDYNAMICS.AND.useOBCS ) THEN WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'Open-Boundaries not implemented in B-grid dynamics' CALL PRINT_ERROR( msgBuf, myThid ) -C STOP 'ABNORMAL END: S/R SEAICE_CHECK' +C errCount = errCount + 1 ENDIF -#endif /* ndef SEAICE_CGRID */ +#endif /* SEAICE_BGRID_DYNAMICS */ C-- SEAICE_ALLOW_FREEDRIFT and SEAICEuseFREEDRIFT #ifndef SEAICE_ALLOW_FREEDRIFT @@ -895,13 +1051,13 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'need to #define SEAICE_ALLOW_FREEDRIFT for SEAICEuseFREEDRIFT' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( LSR_mixIniGuess.GE.0 ) THEN WRITE(msgBuf,'(A)') & 'need to #define SEAICE_ALLOW_FREEDRIFT to use LSR_mixIniGuess' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif @@ -910,10 +1066,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: SEAICEadvSalt = .TRUE. but cpp-flag' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'SEAICE_VARIABLE_SALINITY is undef in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_VARIABLE_SALINITY */ @@ -931,12 +1087,12 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'S/R SEAICE_CHECK: For safety we stop here. ', & 'Please unset one of the two parameters.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ELSEIF (JFNKres_t.EQ.UNSET_RL.AND.JFNKres_tFac.EQ.UNSET_RL) THEN WRITE(msgBuf,'(2A)') 'S/R SEAICE_CHECK: need to specify ', & 'JFNKres_t or JFNKres_tFac for SEAICEuseJFNK=.TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ENDIF IF ( SEAICEuseJFNK .AND. SEAICEuseEVP ) THEN @@ -944,17 +1100,17 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'S/R SEAICE_CHECK: cannot have both SEAICEuseJFNK=.TRUE.', & 'and SEAICEuseEVP=.TRUE. (i.e. SEAICE_deltaTevp > 0)' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #else IF ( SEAICEuseJFNK ) THEN WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: SEAICEuseJFNK = .TRUE. but cpp-flag' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'SEAICE_ALLOW_JFNK is undef in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_JFNK */ #ifndef SEAICE_ALLOW_KRYLOV @@ -962,30 +1118,30 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_CHECK: SEAICEuseKRYLOV = .TRUE. but cpp-flag' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'SEAICE_ALLOW_KRYLOV is undef in SEAICE_OPTIONS.h' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_KRYLOV */ IF ( SEAICEuseDynamics .AND. .NOT.SEAICEuseJFNK ) THEN IF ( SEAICEuseBDF2 ) THEN - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: SEAICEuseBDF2 = .TRUE. '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseBDF2 = .TRUE. ', & 'only allowed with SEAICEuseJFNK = .TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICEuseIMEX ) THEN - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: SEAICEuseIMEX = .TRUE. '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: SEAICEuseIMEX = .TRUE. ', & 'only allowed with SEAICEuseJFNK = .TRUE.' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF ENDIF IF ( SEAICEuseIMEX ) THEN - WRITE(msgBuf,'(A)') '** WARNING ** SEAICE_CHECK: '// - & 'SEAICEuseIMEX = .TRUE. '// + WRITE(msgBuf,'(3A)') '** WARNING ** SEAICE_CHECK: ', + & 'SEAICEuseIMEX = .TRUE. ', & 'currently has no effect, because the code is missing' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) ENDIF @@ -994,10 +1150,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A,I2)') & 'SEAICE_CHECK: SEAICEetaZmethod = ', SEAICEetaZmethod CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: ', & 'is no longer allowed; allowed values are 0 and 3' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICEpressReplFac .LT. 0. _d 0 .OR. @@ -1005,10 +1161,9 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A,I2)') & 'SEAICE_CHECK: SEAICEpressReplFac = ', SEAICEpressReplFac CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: '// - & 'cannot < 0 or > 1' + WRITE(msgBuf,'(A)') 'SEAICE_CHECK: cannot be < 0 or > 1' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF C-- Some sanity checks for SEAICEdWatMin @@ -1016,7 +1171,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A,A,F5.2,A)') 'SEAICE_CHECK: ', & 'SEAICEdWatMin (= ', SEAICEdWatMin, ') may not be < 0.' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF IF ( SEAICE_waterDrag .EQ. 0. _d 0 & .AND. SEAICEdWatMin .GT. 0. _d 0) THEN @@ -1040,7 +1195,7 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'When SEAICE_ALLOW_FREEDRIFT is defined, ', & 'SEAICE_waterDrag or SEAICE_waterDragSouth may not be zero.' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_FREEDRIFT */ @@ -1049,10 +1204,10 @@ SUBROUTINE SEAICE_CHECK( myThid ) WRITE(msgBuf,'(A,I2)') & 'SEAICE_CHECK: SEAICEbasalDragK2 = ', SEAICEbasalDragK2 CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: is greater than 0, '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: is greater than 0, ', & 'but SEAICE_ALLOW_BOTTOMDRAG is not defined' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif /* SEAICE_ALLOW_BOTTOMDRAG */ @@ -1062,17 +1217,17 @@ SUBROUTINE SEAICE_CHECK( myThid ) C advection in S/R SEAICE_ADVDIFF C If useThSice=.TRUE., do not reset it here, but issue a warning IF ( useThSice ) THEN - WRITE(msgBuf,'(A)') '** WARNING ** SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: ', & 'SEAICE_ITD is defined, but useThSice = .TRUE.' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - WRITE(msgBuf,'(A)') '** WARNING ** SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: ', & 'avoids the ice thickness distribution code.' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - WRITE(msgBuf,'(A)') '** WARNING ** SEAICE_CHECK: '// + WRITE(msgBuf,'(2A)') '** WARNING ** SEAICE_CHECK: ', & 'If you want the ITD code, set useThSice=.FALSE.' CALL PRINT_MESSAGE( msgBuf, ioUnit, SQUEEZE_RIGHT, myThid ) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, @@ -1084,16 +1239,39 @@ SUBROUTINE SEAICE_CHECK( myThid ) & 'SEAICE_CHECK: SEAICEmultiDimAdvection = ', & SEAICEmultiDimAdvection CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: is not allowed when '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: is not allowed when ', & 'SEAICE_ITD is defined' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') 'SEAICE_CHECK: use a multiDimAdvection '// + WRITE(msgBuf,'(2A)') 'SEAICE_CHECK: use a multiDimAdvection ', & 'scheme instead' CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R SEAICE_CHECK' + errCount = errCount + 1 ENDIF #endif +#ifdef ALLOW_SEAICE_COST_SMR_AREA + WRITE(msgBuf,'(2A)') + & 'SEAICE_CHECK: cpp-flag ALLOW_SEAICE_COST_SMR_AREA ', + & 'is not allowed anymore.' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') + & 'SEAICE_CHECK: Use pkg/ecco''s generic cost function instead.' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 +#endif + + IF ( errCount .GE. 1 ) THEN + WRITE(msgBuf,'(A,I3,2A)') 'SEAICE_CHECK: ', errCount, + & ' parameter/CPP-flag combinations are', + & ' inconsistent or incomplete' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I3,A)') + & 'SEAICE_CHECK: detected', errCount,' fatal error(s)' + CALL PRINT_ERROR( msgBuf, myThid ) + CALL ALL_PROC_DIE( 0 ) + STOP 'ABNORMAL END: S/R SEAICE_CHECK' + ENDIF + _END_MASTER(myThid) RETURN diff --git a/pkg/seaice/seaice_cost_accumulate_mean.F b/pkg/seaice/seaice_cost_accumulate_mean.F index 19b72f63e6..f223c3003e 100644 --- a/pkg/seaice/seaice_cost_accumulate_mean.F +++ b/pkg/seaice/seaice_cost_accumulate_mean.F @@ -1,50 +1,48 @@ #include "SEAICE_OPTIONS.h" +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: SEAICE_COST_ACCUMULATE_MEAN + +C !INTERFACE: SUBROUTINE SEAICE_COST_ACCUMULATE_MEAN( & myTime, myIter, myThid ) -C *==========================================================* -C | subroutine seaice_cost_accumulate_mean | -C | o accumulate time-mean state for cost evalualtion | -C *==========================================================* - IMPLICIT NONE +C !DESCRIPTION: +C Accumulate time-mean state for cost evalualtion + +C !USES: + IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "DYNVARS.h" #include "GRID.h" #include "SEAICE_SIZE.h" #include "SEAICE.h" #ifdef ALLOW_COST +# include "SEAICE_COST.h" # include "cost.h" #endif -C == Routine arguments == -C myThid - Thread number for this instance of the routine. +C !INPUT/OUTPUT PARAMETERS: +C myThid :: my Thread Id number _RL myTime INTEGER myIter INTEGER myThid +CEOP #ifdef ALLOW_COST #ifdef ALLOW_SEAICE_COST_EXPORT -C == Local variables - INTEGER bi, bj - INTEGER i, j - INTEGER itlo,ithi - INTEGER jtlo,jthi - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) +C !LOCAL VARIABLES: + INTEGER i, j, bi, bj IF ( myTime .GT. (EndTime - lastinterval) ) THEN C-- Calculate cost function on tile of this instance - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1,sNy DO i=1,sNx uHeffExportCell(i,j,bi,bj) = uHeffExportCell(i,j,bi,bj) @@ -65,7 +63,6 @@ SUBROUTINE SEAICE_COST_ACCUMULATE_MEAN( ENDIF #endif /* ALLOW_SEAICE_COST_EXPORT */ - #endif /* ALLOW_COST */ RETURN diff --git a/pkg/seaice/seaice_cost_areasst.F b/pkg/seaice/seaice_cost_areasst.F deleted file mode 100644 index d0a78179d9..0000000000 --- a/pkg/seaice/seaice_cost_areasst.F +++ /dev/null @@ -1,94 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_COST -#include "COST_OPTIONS.h" -#endif -#ifdef ALLOW_ECCO -#include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -#include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - - subroutine seaice_cost_areasst( - & nnzbar, localbarfile, localbar, xx_localbar_mean_dummy, - & nnzobs, localobsfile, localobs, mult_local, - & nrecloc, localstartdate, localperiod, - & localmask, localweight, - & spminloc, spmaxloc, spzeroloc, - & objf_local, num_local, - & myiter, mytime, mythid ) - -c ================================================================== -c SUBROUTINE seaice_cost_areasst -c ================================================================== -c -c o Based on cost_generic -c o in case where there is observed sea-ice we not only constrain -c model(area)=obs(area) but also model(sst)@freezing point -c -c ================================================================== -c SUBROUTINE seaice_cost_areasst -c ================================================================== - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#include "SEAICE_SIZE.h" -#include "SEAICE_PARAMS.h" -#include "SEAICE.h" -#include "SEAICE_COST.h" -#ifdef ALLOW_ECCO -# include "ecco_cost.h" -#endif -#ifdef ALLOW_CTRL -# include "optim.h" -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif - -c == routine arguments == - - integer nnzbar - integer nnzobs - integer nrecloc - integer myiter - integer mythid - integer localstartdate(4) - - _RL localbar (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL localobs (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL localweight(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL localmask (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL xx_localbar_mean_dummy - _RL mult_local - _RL mytime - _RL localperiod - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL objf_local(nsx,nsy) - _RL num_local(nsx,nsy) - - character*(MAX_LEN_FNAM) localbarfile - character*(MAX_LEN_FNAM) localobsfile - -#ifdef ALLOW_ECCO -#ifdef ALLOW_COST -c == local variables == - -#endif /* ifdef ALLOW_COST */ -#endif /* ifdef ALLOW_ECCO */ - - return - end diff --git a/pkg/seaice/seaice_cost_concentration.F b/pkg/seaice/seaice_cost_concentration.F deleted file mode 100644 index 309f5aeb83..0000000000 --- a/pkg/seaice/seaice_cost_concentration.F +++ /dev/null @@ -1,404 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_COST -# include "COST_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - - subroutine seaice_cost_concentration( - & nnzbar, localbarfile, localbar, xx_localbar_mean_dummy, - & nnzobs, localobsfile, localobs, mult_local, - & nrecloc, localstartdate, localperiod, - & localmask, localweight, - & spminloc, spmaxloc, spzeroloc, - & objf_local, num_local, - & myIter, myTime, myThid ) - - implicit none - -c ian fenty -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#ifdef ALLOW_COST -# ifdef ALLOW_CTRL -# include "optim.h" -# endif -# ifdef ALLOW_ECCO -# include "ecco.h" -# endif -# ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -# include "SEAICE_SIZE.h" -# include "SEAICE_PARAMS.h" -# endif -#endif - -c == routine arguments == - - integer nnzbar - integer nnzobs - integer nrecloc - integer myIter - integer myThid - integer localstartdate(4) - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - - _RL localweight (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef VARIABLE_SMRAREA_WEIGHT - _RL localModWeight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL areaSigma -#endif - - _RS localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL xx_localbar_mean_dummy - _RL mult_local - _RL myTime - _RL localperiod - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL objf_local(nSx,nSy) - _RL num_local(nSx,nSy) - - character*(MAX_LEN_FNAM) localbarfile - character*(MAX_LEN_FNAM) localobsfile - -#if (defined (ALLOW_ECCO) && defined (ALLOW_COST)) -#if (defined(ALLOW_SEAICE_COST_SMR_AREA) || defined(ALLOW_COST_ICE)) - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec - integer il - integer localrec - integer obsrec - - logical doglobalread - logical ladinit - - _RL spval - parameter (spval = -9999. _d 0 ) - _RL localwww - _RL localcost - _RL junk - - _RL cmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs) - - character*(128) fname1, fname2 - -cnew( - _RL daytime - _RL diffsecs - integer dayiter - integer daydate(4) - integer difftime(4) - integer middate(4) - integer yday, ymod - integer md, dd, sd, ld, wd - logical exst -cnew) - -c == external functions == - - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Initialise local variables. - - localwww = 0. _d 0 - - do bj = jtlo,jthi - do bi = itlo,ithi - objf_local(bi,bj) = 0. _d 0 - num_local(bi,bj) = 0. _d 0 - enddo - enddo - -c-- First, read tiled data. - doglobalread = .false. - ladinit = .false. - - write(fname1(1:128),'(80a)') ' ' - il=ilnblnk( localbarfile ) - write(fname1(1:128),'(2a,i10.10)') - & localbarfile(1:il),'.',optimcycle - -cph if ( .NOT. ( mult_local.EQ.0. .OR. localobsfile.EQ.' ' ) ) then - if ( .NOT. ( localobsfile.EQ.' ' ) ) then - -c-- Loop over records for the second time. - do irec = 1, nrecloc - - if ( nnzbar .EQ. 1 ) then - call active_read_xy( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - else - call active_read_xyz( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - endif - -cnew( - obsrec = irec - - daytime = FLOAT(secondsperday*(irec-1)) + modelstart - dayiter = hoursperday*(irec-1)+modeliter0 - - call cal_getdate( dayiter, daytime, daydate, myThid ) - call cal_convdate( daydate,yday,md,dd,sd,ld,wd,myThid ) - ymod = smrareastartdate(1)/10000 - -#ifdef SEAICE_DEBUG - print *,'-- Cost seaice concentration' - print *,'daydate ', daydate - print *,'localobsfile: ', localobsfile - print *,'nrecloc ', nrecloc - print *,'obsrec,daytime ', obsrec,daytime - print *,'dayiter ', dayiter - print *,'yday : ', yday - print *,'md,dd,sd ', md,dd,sd - print *,'ld,wd ', ld,wd - print *,'loclstrtdte(1) ', localstartdate(1) - print *,'ymod, yday ', ymod,yday - print *,'smrarstrtdt(1) ', smrareastartdate(1) - print *,'smrarstartdate ', smrareastartdate -#endif /* SEAICE_DEBUG */ - - if ( ymod .EQ. yday ) then - middate(1) = smrareastartdate(1) - else - middate(1) = yday*10000+100+1 - endif - middate(2) = 0 - middate(3) = modelstartdate(3) - middate(4) = modelstartdate(4) - - call cal_TimePassed( middate, daydate, difftime, myThid ) - call cal_ToSeconds( difftime, diffsecs, myThid ) - - localrec = int(diffsecs/localperiod) + 1 - -#ifdef SEAICE_DEBUG - print *,'middate(1,2) ',middate(1),middate(2) - print *,'middate(3,4) ', middate(3),middate(4) - print *,'difftime,diffsecs',difftime,diffsecs - print *,'localrec ',localrec -#endif - - il=ilnblnk(localobsfile) - write(fname2(1:128),'(2a,i4)') - & localobsfile(1:il), '_', yday - inquire( file=fname2, exist=exst ) - -#ifdef SEAICE_DEBUG - print *,'fname2',fname2 -#endif - if (.NOT. exst) then - write(fname2(1:128),'(a)') localobsfile(1:il) - localrec = obsrec -#ifdef SEAICE_DEBUG - print *,'localrec ', localrec - print *,'not exist' -#endif - endif - - if ( localrec .GT. 0 ) then - -#ifdef SEAICE_DEBUG - print *,'calling mdsreadfile',fname2,localrec -#endif - - CALL READ_REC_3D_RL( fname2, cost_iprec, nnzobs, - & localobs, localrec, 1, myThid ) - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localobs(i,j,k,bi,bj) = spval - enddo !i - enddo !j - enddo !k - enddo !bi - enddo !bi - endif !obs rec - -#ifdef VARIABLE_SMRAREA_WEIGHT - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax -cif set the new weight equal to the old weight - localModWeight(i,j,bi,bj) = - & localweight(i,j,bi,bj) - -cif as long we the weight here is not zero we can continue - if (localweight(i,j,bi,bj) .GT. 0. _d 0) THEN - -cif back out the original sigma for this location - areaSigma = 1. _d 0/sqrt(localweight(i,j,bi,bj)) - -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX - IF (localobs(i,j,k,bi,bj) .eq. 0. _d 0 ) THEN - areaSigma = areaSigma * 0.85 _d 0 - ELSEIF ((localobs(i,j,k,bi,bj).gt.0. _d 0 ) .and. - & (localobs(i,j,k,bi,bj).lt.0.15 _d 0)) THEN - areaSigma = areaSigma * 1.2 _d 0 - ELSEIF ((localobs(i,j,k,bi,bj).ge.0.15 _d 0) .and. - & (localobs(i,j,k,bi,bj).le.0.25 _d 0)) THEN - areaSigma = areaSigma * 1.1 _d 0 - ENDIF -cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccX - -cif reconstruct the weight = sigma^(-2) - localModWeight(i,j,bi,bj) = - & 1. _d 0 / (areaSigma*areaSigma) - -cif if the local weight here is somehow 0, -cif do not divide by its square root but say something -c else -c print *,'costg : localweight <= 0 ',i,j - endif - -#ifdef SEAICE_DEBUG - if ((i == SEAICE_debugPointX) .and. - & (j == SEAICE_debugPointY)) then - - print '(A,2i4,4(1x,1P2E15.3))', - & 'costg i j obs,locWeight,locModWt,areaigma ',i,j, - & localobs(i,j,k,bi,bj), localweight(i,j,bi,bj), - & localModWeight(i,j,bi,bj), - & areaSigma - endif -#endif -C seaice debug - enddo - enddo - enddo - enddo - enddo -#endif -C variable smrarea weight - -#ifdef SEAICE_DEBUG - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do i = imin,imax - do j = jmin,jmax - if (localobs(i,j,k,bi,bj) .LT. -1) THEN - print *,'obs rec date: ', -localobs(i,j,1,bi,bj) - endif - enddo - enddo - enddo - enddo - enddo -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - - localcost = 0. _d 0 - -c-- Determine the mask on weights - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - cmask(i,j,k) = cosphi(i,j,bi,bj)*localmask(i,j,k,bi,bj) - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - cmask(i,j,k) = 0. _d 0 - endif - enddo - enddo - enddo -c-- - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localwww = localweight(i,j,bi,bj)*cmask(i,j,k) - -#ifdef VARIABLE_SMRAREA_WEIGHT - localwww = localModWeight(i,j,bi,bj)*cmask(i,j,k) -#endif - - junk = ( localbar(i,j,k,bi,bj) - - & localobs(i,j,k,bi,bj) ) - localcost = localcost + junk*junk*localwww - -#ifdef SEAICE_DEBUG - if ((i == SEAICE_debugPointX) .and. - & (j == SEAICE_debugPointY)) then - - print '(A,2i4,2(1x,1P2E15.3))', - & 'costg i j bar, obs ',i,j, - & localbar(i,j,k,bi,bj), - & localobs(i,j,k,bi,bj) - - print '(A,2i4,2(1x,1P2E15.3))', - & 'costg i j bar-obs,wgt,loCost ',i,j, - & junk, - & localwww, - & junk*junk*localwww - endif -#endif - - if ( localwww .ne. 0. ) - & num_local(bi,bj) = num_local(bi,bj) + 1. _d 0 - enddo - enddo - enddo - - objf_local(bi,bj) = objf_local(bi,bj) + localcost - - enddo - enddo - - enddo -c-- End of second loop over records. - -c-- End of mult_local or localobsfile - endif - -#endif /* ifdef ALLOW_SEAICE_COST_SMR_AREA */ -#endif /* ifdef ALLOW_ECCO */ - - RETURN - END diff --git a/pkg/seaice/seaice_cost_driver.F b/pkg/seaice/seaice_cost_driver.F deleted file mode 100644 index c202061d43..0000000000 --- a/pkg/seaice/seaice_cost_driver.F +++ /dev/null @@ -1,155 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - - subroutine seaice_cost_driver( myiter, mytime, mythid ) - -c ================================================================== -c SUBROUTINE seaice_cost_driver -c ================================================================== -c -c o Evaluate cost function contributions of -c seaice observations -c -c ================================================================== -c SUBROUTINE seaice_cost_driver -c ================================================================== - - implicit none - -c == global variables == -#include "EEPARAMS.h" -#if (defined (ALLOW_ECCO) && \ - defined (ALLOW_SEAICE_COST_SMR_AREA)) -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" - -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif -#ifdef ALLOW_ECCO -# include "ecco_cost.h" -#endif -#include "SEAICE_COST.h" -#endif /* ALLOW_ECCO and ALLOW_SEAICE_COST_SMR_AREA */ - -c == routine arguments == - - integer myiter - _RL mytime - integer mythid - -#if (defined (ALLOW_ECCO) && \ - defined (ALLOW_SEAICE_COST_SMR_AREA)) - -c == local variables == - character*(max_len_mbuf) msgbuf - - integer nnzbar - integer nnzobs - integer nrecloc - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL localperiod - -c == end of interface == - - if (useSEAICE) then - - write(msgbuf,'(a)') 'ph-cost call cost_smrarea' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT , mythid) - nnzbar = 1 - nnzobs = 1 - - nrecloc = ndaysrec - spminloc = 0.0 - spmaxloc = 1.0 - spzeroloc = -1. - localperiod = 86400. - - call seaice_cost_concentration( - & nnzbar, smrareabarfile, smrareabar, xx_smrareabar_mean_dummy, - & nnzobs, smrareadatfile, smrareadat, mult_smrarea, - & nrecloc, modelstartdate, localperiod, - & maskC, wsmrarea, - & spminloc, spmaxloc, spzeroloc, - & objf_smrarea, num_smrarea, - & myiter, mytime, mythid ) - -c read the area dat file and compare against the averaged sst file - call seaice_cost_sst( - & nnzbar, smrsstbarfile, smrsstbar, xx_smrsstbar_mean_dummy, - & smrareabarfile, smrareabar, xx_smrareabar_mean_dummy, - & nnzobs, smrareadatfile, smrareadat, mult_smrsst, - & nrecloc, modelstartdate, localperiod, - & maskC, wsmrarea, - & spminloc, spmaxloc, spzeroloc, - & objf_smrsst, num_smrsst, - & myiter, mytime, mythid ) - -c read the area dat file and compare against the averaged salinity file - call seaice_cost_sss( - & nnzbar, smrsssbarfile, smrsssbar, xx_smrsssbar_mean_dummy, - & smrareabarfile, smrareabar, xx_smrareabar_mean_dummy, - & nnzobs, smrareadatfile, smrareadat, mult_smrsss, - & nrecloc, modelstartdate, localperiod, - & maskC, wsmrarea, - & spminloc, spmaxloc, spzeroloc, - & objf_smrsss, num_smrsss, - & myiter, mytime, mythid ) - - print *,' SICD cost smrarea/sst/sss ',objf_smrarea, - & objf_smrsst,objf_smrsss - print *,' SICD num points smrarea/sst/sss ',num_smrarea, - & num_smrsst,num_smrsss - -# ifndef ALLOW_SEAICE_COST_AREASST -c-- write(msgbuf,'(a)') 'ph-cost call cost_smrarea' -c-- call print_message( msgbuf, standardmessageunit, -c-- & SQUEEZE_RIGHT , mythid) -c-- nnzbar = 1 -c-- nnzobs = 1 -c--cph( -c-- nrecloc = ndaysrec -c--cph hard-coding for ECCO -c--cph nrecloc = 4383 -c--cph) -c-- spminloc = 0. -c-- spmaxloc = 1. -c-- spzeroloc = -9999. -c-- localperiod = 86400. -c-- call cost_generic( -c-- & nnzbar, smrareabarfile, smrareabar, xx_smrareabar_mean_dummy, -c-- & nnzobs, smrareadatfile, mult_smrarea, -c-- & nrecloc, nrecloc, modelstartdate, localperiod, -c-- & 'C', wsmrarea, spminloc, spmaxloc, spzeroloc, -c-- & no_preproc, no_posproc, no_scalefile, -c-- & 0, smrareadatfile, objf_smrarea, num_smrarea, -c-- & myiter, mytime, mythid ) - -c-- write(msgbuf,'(a,1P2E18.10)') -c-- & 'ph-cost smrarea ', objf_smrarea(1,1), num_smrarea(1,1) -c-- call print_message( msgbuf, standardmessageunit, -c-- & SQUEEZE_RIGHT , mythid) -# endif /* ALLOW_SEAICE_COST_AREASST */ - - endif - -#endif /* ALLOW_ECCO and ALLOW_SEAICE_COST_SMR_AREA */ - - end diff --git a/pkg/seaice/seaice_cost_final.F b/pkg/seaice/seaice_cost_final.F index 027e86cf7e..f88a3b21ac 100644 --- a/pkg/seaice/seaice_cost_final.F +++ b/pkg/seaice/seaice_cost_final.F @@ -37,8 +37,7 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) C !INPUT/OUTPUT PARAMETERS: INTEGER myThid -#ifdef ALLOW_COST -#if (defined(ALLOW_SEAICE_COST_SMR_AREA) || defined(ALLOW_COST_ICE) || defined(ALLOW_SEAICE_COST_EXPORT)) +#if (defined ALLOW_COST && defined ALLOW_COST_ICE) C ! FUNCTIONS: LOGICAL MASTER_CPU_THREAD EXTERNAL MASTER_CPU_THREAD @@ -47,13 +46,7 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) INTEGER bi, bj INTEGER ifc _RL f_ice - _RL f_smrarea - _RL f_smrsst - _RL f_smrsss _RL no_ice - _RL no_smrarea - _RL no_smrsst - _RL no_smrsss CHARACTER*23 cfname c CHARACTER*(MAX_LEN_MBUF) msgBuf CEOP @@ -61,14 +54,7 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) ifc = 30 f_ice = 0. _d 0 - f_smrarea = 0. _d 0 - f_smrsst = 0. _d 0 - f_smrsss = 0. _d 0 - no_ice = 0. _d 0 - no_smrarea = 0. _d 0 - no_smrsst = 0. _d 0 - no_smrsss = 0. _d 0 #ifdef ALLOW_SEAICE_COST_EXPORT CALL SEAICE_COST_EXPORT( myThid ) @@ -81,9 +67,6 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) tile_fc(bi,bj) = tile_fc(bi,bj) & + mult_ice_export * objf_ice_export(bi,bj) & + mult_ice * objf_ice(bi,bj) - & + mult_smrarea * objf_smrarea(bi,bj) - & + mult_smrsst * objf_smrsst(bi,bj) - & + mult_smrsss * objf_smrsss(bi,bj) ENDDO ENDDO @@ -93,23 +76,10 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) C-- Do global summation for each part of the cost function CALL GLOBAL_SUM_TILE_RL( objf_ice, f_ice, myThid ) - CALL GLOBAL_SUM_TILE_RL( objf_smrarea, f_smrarea, myThid ) - CALL GLOBAL_SUM_TILE_RL( objf_smrsst, f_smrsst, myThid ) - CALL GLOBAL_SUM_TILE_RL( objf_smrsss, f_smrsss, myThid ) - CALL GLOBAL_SUM_TILE_RL( num_ice, no_ice, myThid ) - CALL GLOBAL_SUM_TILE_RL( num_smrarea, no_smrarea, myThid ) - CALL GLOBAL_SUM_TILE_RL( num_smrsst, no_smrsst, myThid ) - CALL GLOBAL_SUM_TILE_RL( num_smrsss, no_smrsss, myThid ) WRITE(standardMessageUnit,'(A,D22.15)') & ' --> f_ice =',f_ice - WRITE(standardMessageUnit,'(A,D22.15)') - & ' --> f_smrarea =',f_smrarea - WRITE(standardMessageUnit,'(A,D22.15)') - & ' --> f_smrarea =',f_smrsst - WRITE(standardMessageUnit,'(A,D22.15)') - & ' --> f_smrarea =',f_smrsss C-- Each process has calculated the global part for itself. IF ( MASTER_CPU_THREAD(myThid) ) THEN @@ -119,16 +89,12 @@ SUBROUTINE SEAICE_COST_FINAL( myThid ) WRITE(ifc,*) 'fc =', fc WRITE(ifc,*) 'f_ice =', f_ice, no_ice - WRITE(ifc,*) 'f_smrarea =', f_smrarea, no_smrarea - WRITE(ifc,*) 'f_smrsst =', f_smrsst, no_smrsst - WRITE(ifc,*) 'f_smrsss =', f_smrsss, no_smrsss CLOSE(ifc) ENDIF -#endif /* ALLOW_SEAICE_COST_SMR_AREA */ -#endif /* ALLOW_COST */ +#endif /* ALLOW_COST and ALLOW_COST_ICE */ RETURN END diff --git a/pkg/seaice/seaice_cost_init_fixed.F b/pkg/seaice/seaice_cost_init_fixed.F index 4e31fd8d53..323c7e6522 100644 --- a/pkg/seaice/seaice_cost_init_fixed.F +++ b/pkg/seaice/seaice_cost_init_fixed.F @@ -1,5 +1,4 @@ #include "SEAICE_OPTIONS.h" -#include "AD_CONFIG.h" subroutine seaice_cost_init_fixed( mythid ) @@ -20,7 +19,6 @@ subroutine seaice_cost_init_fixed( mythid ) C == global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "GRID.h" #include "PARAMS.h" #ifdef ALLOW_COST # include "SEAICE_COST.h" @@ -32,28 +30,17 @@ subroutine seaice_cost_init_fixed( mythid ) C == routine arguments == integer mythid -#ifdef ALLOW_COST -#ifdef ALLOW_COST_ICE - +#if (defined ALLOW_COST && defined ALLOW_COST_ICE) C == local variables == integer tempDate1(4) integer tempDate2(4) - logical exst - -C == external functions == -c#ifdef ALLOW_CAL -c integer cal_IntMonths -c external cal_IntMonths -c integer cal_IntDays -c external cal_IntDays -c#endif - C == end of interface == #ifdef ALLOW_CAL _BEGIN_MASTER( myThid ) + IF ( useCAL ) THEN C-- Sea-ice cost function start and stop times in model seconds. call cal_FullDate ( costIceStart1 , costIceStart2, & tempDate1 , mythid ) @@ -74,38 +61,13 @@ subroutine seaice_cost_init_fixed( mythid ) call cal_ToSeconds ( tempDate2 , costIceEnd , mythid ) costIceEnd = costIceEnd + startTime C-- - if ( smrareadatfile .ne. ' ' ) - & call cal_FullDate( smrareastartdate1, smrareastartdate2, - & smrareastartdate, mythid ) - + ENDIF _END_MASTER( mythid ) -#endif /* ALLOW_CAL */ - -C-- Get the weights that are to be used for the individual cost -C-- function contributions. - call seaice_cost_weights( mythid ) - -C-- Initialise adjoint of monthly mean files calculated -C-- in cost_averagesfields (and their ad...). -cph( -cph The following init. shoud not be applied if in the middle -cph of a divided adjoint run -cph) -#ifndef ALLOW_TANGENTLINEAR_RUN -cph!!! and I think it needs to be seen by TAF -cph!!! for repeated TLM runs -cph!!! - inquire( file='costfinal', exist=exst ) - if ( .NOT. exst) then -cph call seaice_cost_init_barfiles( mythid ) - endif -#endif - _BARRIER -#endif /* ALLOW_COST_ICE */ -#endif /* ALLOW_COST */ +#endif /* ALLOW_CAL */ +#endif /* ALLOW_COST and ALLOW_COST_ICE */ RETURN END diff --git a/pkg/seaice/seaice_cost_init_varia.F b/pkg/seaice/seaice_cost_init_varia.F index 7ca7f6554c..be10983fa4 100644 --- a/pkg/seaice/seaice_cost_init_varia.F +++ b/pkg/seaice/seaice_cost_init_varia.F @@ -1,95 +1,54 @@ #include "SEAICE_OPTIONS.h" - subroutine seaice_cost_init_varia( mythid ) + SUBROUTINE SEAICE_COST_INIT_VARIA( myThid ) -c ================================================================== -c SUBROUTINE seaice_cost_init_varia -c ================================================================== -c -c o Initialise the variable cost function part. -c added sea-ice term: menemenlis@jpl.nasa.gov 26-Feb-2003 -c -c ================================================================== -c SUBROUTINE seaice_cost_init_varia -c ================================================================== +C ================================================================== +C SUBROUTINE SEAICE_COST_INIT_VARIA +C ================================================================== +C o Initialise the variable cost function part. +C added sea-ice term: menemenlis@jpl.nasa.gov 26-Feb-2003 +C +C ================================================================== - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" -#include "GRID.h" #ifdef ALLOW_COST # include "SEAICE_SIZE.h" -# include "SEAICE.h" # include "SEAICE_COST.h" #endif -c == routine arguments == - - integer mythid +C == routine arguments == + INTEGER myThid #ifdef ALLOW_COST -#if (defined(ALLOW_SEAICE_COST_SMR_AREA) || defined(ALLOW_COST_ICE)) - -c == local variables == - - integer bi,bj - integer itlo,ithi - integer jtlo,jthi - integer imin, imax - integer jmin, jmax - integer i,j,k - - logical exst - -c == external functions == - -c == end of interface == - jtlo = myByLo(mythid) - jthi = myByHi(mythid) - itlo = myBxLo(mythid) - ithi = myBxHi(mythid) - jmin = 1-OLy - jmax = sNy+OLy - imin = 1-OLx - imax = sNx+OLx +C == local variables == + INTEGER bi,bj +#ifdef ALLOW_SEAICE_COST_EXPORT + INTEGER i,j +#endif +C == end of interface == -c-- Initialize the tiled cost function contributions. - do bj = jtlo,jthi - do bi = itlo,ithi - objf_ice(bi,bj) = 0. _d 0 - objf_smrarea(bi,bj) = 0. _d 0 - objf_smrsst(bi,bj) = 0. _d 0 - objf_smrsss(bi,bj) = 0. _d 0 +C-- Initialize the tiled cost function contributions. + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + objf_ice(bi,bj) = 0. _d 0 objf_ice_export(bi,bj) = 0. _d 0 -c - num_ice(bi,bj) = 0. _d 0 - num_smrarea(bi,bj) = 0. _d 0 - num_smrsst(bi,bj) = 0. _d 0 - num_smrsss(bi,bj) = 0. _d 0 - enddo - enddo - - k = 1 - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax + num_ice(bi,bj) = 0. _d 0 #ifdef ALLOW_SEAICE_COST_EXPORT + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx uHeffExportCell(i,j,bi,bj) = 0. _d 0 vHeffExportCell(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO #endif - enddo - enddo - enddo - enddo + ENDDO + ENDDO - _BARRIER - -#endif -#endif +#endif /* ALLOW_COST */ - return - end + RETURN + END diff --git a/pkg/seaice/seaice_cost_sensi.F b/pkg/seaice/seaice_cost_sensi.F index a48b597e0a..65ff241c90 100644 --- a/pkg/seaice/seaice_cost_sensi.F +++ b/pkg/seaice/seaice_cost_sensi.F @@ -1,8 +1,8 @@ #include "SEAICE_OPTIONS.h" - subroutine seaice_cost_sensi( myTime, myIter, myThid ) + SUBROUTINE SEAICE_COST_SENSI( myTime, myIter, myThid ) C *==========================================================* -C | subroutine seaice_cost_sensi +C | SUBROUTINE SEAICE_COST_SENSI C | o driver for seaice sensitivity cost functions C *==========================================================* @@ -16,17 +16,18 @@ subroutine seaice_cost_sensi( myTime, myIter, myThid ) C == Routine arguments == C myThid - Thread number for this instance of the routine. _RL myTime - integer myIter - integer myThid + INTEGER myIter + INTEGER myThid #ifdef ALLOW_COST C == Local variables - CALL COST_ICE_TEST ( myTime, myIter, myThid ) + CALL SEAICE_COST_TEST ( myTime, myIter, myThid ) CALL SEAICE_COST_ACCUMULATE_MEAN ( & myTime, myIter, myThid) #endif + RETURN END diff --git a/pkg/seaice/seaice_cost_sss.F b/pkg/seaice/seaice_cost_sss.F deleted file mode 100644 index 48cf2b8f75..0000000000 --- a/pkg/seaice/seaice_cost_sss.F +++ /dev/null @@ -1,373 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_COST -# include "COST_OPTIONS.h" -#endif - -c read the area dat file and compare against the averaged salinity file - - subroutine seaice_cost_sss( - & nnzbar, localbarfile, localbar, xx_localbar_mean_dummy, - & areabarfile, areabar, xx_areabar_mean_dummy, - & nnzobs, localobsfile, localobs, mult_local, - & nrecloc, localstartdate, localperiod, - & localmask, localweight, - & spminloc, spmaxloc, spzeroloc, - & objf_local, num_local, - & myIter, myTime, myThid ) - - implicit none - -c ian fenty -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#ifdef ALLOW_COST -# ifdef ALLOW_CTRL -# include "optim.h" -# endif -# ifdef ALLOW_ECCO -# include "ecco.h" -# endif -# ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -# include "SEAICE_SIZE.h" -# include "SEAICE_PARAMS.h" -# endif -#endif - -c == routine arguments == - - integer nnzbar - integer nnzobs - integer nrecloc - integer myIter - integer myThid - integer localstartdate(4) - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL areabar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localweight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL xx_localbar_mean_dummy - _RL xx_areabar_mean_dummy - _RL mult_local - _RL myTime - _RL localperiod - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL objf_local(nSx,nSy) - _RL num_local(nSx,nSy) - - character*(MAX_LEN_FNAM) areabarfile - character*(MAX_LEN_FNAM) localbarfile - character*(MAX_LEN_FNAM) localobsfile - -#if (defined (ALLOW_ECCO) && defined (ALLOW_COST)) -#ifdef ALLOW_SEAICE_COST_SMR_AREA - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec - integer il - integer localrec - integer obsrec - - logical doglobalread - logical ladinit - - _RL spval - parameter (spval = -9999. ) - _RL localwww - _RL localcost - _RL junk - - _RL cmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs) - - character*(128) fname1, fname2,fname3 - -cnew( - _RL daytime - _RL diffsecs - integer dayiter - integer daydate(4) - integer difftime(4) - integer middate(4) - integer yday, ymod - integer md, dd, sd, ld, wd - logical exst -cnew) - -c == external functions == - - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Initialise local variables. - - localwww = 0. _d 0 - - do bj = jtlo,jthi - do bi = itlo,ithi - objf_local(bi,bj) = 0. _d 0 - num_local(bi,bj) = 0. _d 0 - enddo - enddo - -c-- First, read tiled data. - doglobalread = .false. - ladinit = .false. - - write(fname1(1:128),'(80a)') ' ' -csss - write(fname3(1:128),'(80a)') ' ' - - il=ilnblnk( localbarfile ) - write(fname1(1:128),'(2a,i10.10)') - & localbarfile(1:il),'.',optimcycle - -csss - il=ilnblnk( areabarfile ) - write(fname3(1:128),'(2a,i10.10)') - & areabarfile(1:il),'.',optimcycle - - if ( .NOT. ( localobsfile.EQ.' ' ) ) then - -c-- Loop over records for the second time. - do irec = 1, nrecloc - - if ( nnzbar .EQ. 1 ) then - call active_read_xy( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - else - call active_read_xyz( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - endif - -csss - if ( nnzbar .EQ. 1 ) then - call active_read_xy( fname3, areabar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_areabar_mean_dummy ) - else - call active_read_xyz( fname3, areabar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_areabar_mean_dummy ) - endif - -cnew( - obsrec = irec - - daytime = FLOAT(secondsperday*(irec-1)) + modelstart - dayiter = hoursperday*(irec-1)+modeliter0 - - call cal_getdate( dayiter, daytime, daydate, myThid ) - call cal_convdate( daydate,yday,md,dd,sd,ld,wd,myThid ) - ymod = smrareastartdate(1)/10000 - -#ifdef SEAICE_DEBUG - print *,'cost_seaice_sss' - print *,'daydate ', daydate - print *,'areaobsfile: ', localobsfile - print *,'nrecloc ', nrecloc - print *,'obsrec,daytime ', obsrec,daytime - print *,'dayiter ', dayiter - print *,'yday : ', yday - print *,'md,dd,sd ', md,dd,sd - print *,'ld,wd ', ld,wd - print *,'loclstrtdte(1) ', localstartdate(1) - print *,'ymod, yday ', ymod,yday - print *,'smrarstrtdt(1) ', smrareastartdate(1) - print *,'smrarstartdate ', smrareastartdate -#endif /* SEAICE_DEBUG */ - - if ( ymod .EQ. yday ) then - middate(1) = smrareastartdate(1) - else - middate(1) = yday*10000+100+1 - endif - middate(2) = 0 - middate(3) = modelstartdate(3) - middate(4) = modelstartdate(4) - - call cal_TimePassed( middate, daydate, difftime, myThid ) - call cal_ToSeconds( difftime, diffsecs, myThid ) - - localrec = int(diffsecs/localperiod) + 1 - -#ifdef SEAICE_DEBUG - print *,'middate(1,2) ',middate(1),middate(2) - print *,'middate(3,4) ', middate(3),middate(4) - print *,'difftime,diffsecs',difftime,diffsecs - print *,'localrec ',localrec -#endif - - il=ilnblnk(localobsfile) - write(fname2(1:128),'(2a,i4)') - & localobsfile(1:il), '_', yday - inquire( file=fname2, exist=exst ) - -#ifdef SEAICE_DEBUG - print *,'fname2',fname2 -#endif - if (.NOT. exst) then - write(fname2(1:128),'(a)') localobsfile(1:il) - localrec = obsrec -#ifdef SEAICE_DEBUG - print *,'localrec ', localrec - print *,'not exist' -#endif - endif - - if ( localrec .GT. 0 ) then - -#ifdef SEAICE_DEBUG - print *,'calling mdsreadfile',fname2,localrec -#endif - - CALL READ_REC_3D_RL( fname2, cost_iprec, nnzobs, - & localobs, localrec, 1, myThid ) - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localobs(i,j,k,bi,bj) = spval - enddo - enddo - enddo - enddo - enddo - endif -cnew) - -#ifdef SEAICE_DEBUG - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do i = imin,imax - do j = jmin,jmax - if (localobs(i,j,k,bi,bj) .LT. -1) THEN - print *,'obs rec date: ', -localobs(i,j,1,bi,bj) - endif - enddo - enddo - enddo - enddo - enddo -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - - localcost = 0. _d 0 - -c-- Determine the mask on weights - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - cmask(i,j,k) = cosphi(i,j,bi,bj)*localmask(i,j,k,bi,bj) - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - cmask(i,j,k) = 0. _d 0 - endif - enddo - enddo - enddo -c-- - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localwww = localweight(i,j,bi,bj)*cmask(i,j,k) - -c only accumulate cost if there is ice observed but not simulated.. - if ( localobs(i,j,k,bi,bj) .GT. 0.0 .AND. - & areabar(i,j,1,bi,bj) .LE. 0.0) then - -c if ( localobs(i,j,k,bi,bj) .GT. -c & areabar(i,j,1,bi,bj)) then - - junk = ( localbar(i,j,k,bi,bj) - SEAICE_clamp_salt ) - -c junk = localbar(i,j,k,bi,bj) - -c & ( localbar(i,j,k,bi,bj) - 1.0) - else - junk = 0.0 - endif - - localcost = localcost + junk*junk*localwww - -#ifdef SEAICE_DEBUG - if ((i == SEAICE_debugPointX) .and. - & (j == SEAICE_debugPointY)) then - - print '(A,2i4,3(1x,1P2E15.3))', - & 'costg i j sbar, abar,obs ',i,j, - & localbar(i,j,k,bi,bj), - & areabar(i,j,k,bi,bj), - & localobs(i,j,k,bi,bj) - - print '(A,2i4,2(1x,1P2E15.3))', - & 'costg i j bar-obs,wgt,loCost ',i,j, - & junk, - & localwww, - & localcost - endif -#endif - - if ( localwww .ne. 0. ) - & num_local(bi,bj) = num_local(bi,bj) + 1. _d 0 - enddo - enddo - enddo - - objf_local(bi,bj) = objf_local(bi,bj) + localcost - - enddo !/bj - enddo !/ bi - - enddo -c-- End of second loop over records. - -c-- End of mult_local or localobsfile - endif - -#endif /* ALLOW_SEAICE_COST_SMR_AREA */ -#endif /* ifdef ALLOW_COST */ - - RETURN - END diff --git a/pkg/seaice/seaice_cost_sst.F b/pkg/seaice/seaice_cost_sst.F deleted file mode 100644 index 2ea960cd02..0000000000 --- a/pkg/seaice/seaice_cost_sst.F +++ /dev/null @@ -1,369 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_COST -# include "COST_OPTIONS.h" -#endif - - subroutine seaice_cost_sst( - & nnzbar, localbarfile, localbar, xx_localbar_mean_dummy, - & areabarfile, areabar, xx_areabar_mean_dummy, - & nnzobs, localobsfile, localobs, mult_local, - & nrecloc, localstartdate, localperiod, - & localmask, localweight, - & spminloc, spmaxloc, spzeroloc, - & objf_local, num_local, - & myIter, myTime, myThid ) - - implicit none - -c ian fenty -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#ifdef ALLOW_CAL -# include "cal.h" -#endif -#ifdef ALLOW_COST -# ifdef ALLOW_CTRL -# include "optim.h" -# endif -# ifdef ALLOW_ECCO -# include "ecco.h" -# endif -# ifdef ALLOW_SEAICE -# include "SEAICE_COST.h" -# include "SEAICE_SIZE.h" -# include "SEAICE_PARAMS.h" -# endif -#endif - -c == routine arguments == - - integer nnzbar - integer nnzobs - integer nrecloc - integer myIter - integer myThid - integer localstartdate(4) - - _RL localbar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - _RL areabar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzbar,nSx,nSy) - - _RL localobs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs,nSx,nSy) - _RL localweight(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS localmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nr,nSx,nSy) - _RL xx_localbar_mean_dummy - _RL xx_areabar_mean_dummy - _RL mult_local - _RL myTime - _RL localperiod - _RL spminloc - _RL spmaxloc - _RL spzeroloc - _RL objf_local(nSx,nSy) - _RL num_local(nSx,nSy) - - character*(MAX_LEN_FNAM) areabarfile - character*(MAX_LEN_FNAM) localbarfile - character*(MAX_LEN_FNAM) localobsfile - -#if (defined (ALLOW_ECCO) && defined (ALLOW_COST)) -#ifdef ALLOW_SEAICE_COST_SMR_AREA - -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer irec - integer il - integer localrec - integer obsrec - - logical doglobalread - logical ladinit - - _RL spval - parameter (spval = -9999. ) - _RL localwww - _RL localcost - _RL junk - - _RL cmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nnzobs) - - character*(128) fname1, fname2,fname3 - -cnew( - _RL daytime - _RL diffsecs - integer dayiter - integer daydate(4) - integer difftime(4) - integer middate(4) - integer yday, ymod - integer md, dd, sd, ld, wd - logical exst -cnew) - -c == external functions == - - integer ilnblnk - external ilnblnk - -c == end of interface == - -C- jmc: params SEAICE_freeze has been retired; set it locally until someone -C who knows what this cost-cointribution means fix it. - _RL SEAICE_freeze - SEAICE_freeze = -1.96 _d 0 - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - -c-- Initialise local variables. - - localwww = 0. _d 0 - - do bj = jtlo,jthi - do bi = itlo,ithi - objf_local(bi,bj) = 0. _d 0 - num_local(bi,bj) = 0. _d 0 - enddo - enddo - -c-- First, read tiled data. - doglobalread = .false. - ladinit = .false. - - write(fname1(1:128),'(80a)') ' ' - write(fname3(1:128),'(80a)') ' ' - - il=ilnblnk( localbarfile ) - write(fname1(1:128),'(2a,i10.10)') - & localbarfile(1:il),'.',optimcycle - - il=ilnblnk( areabarfile ) - write(fname3(1:128),'(2a,i10.10)') - & areabarfile(1:il),'.',optimcycle - - if ( .NOT. ( localobsfile.EQ.' ' ) ) then - -c-- Loop over records for the second time. - do irec = 1, nrecloc - - if ( nnzbar .EQ. 1 ) then - call active_read_xy( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - else - call active_read_xyz( fname1, localbar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_localbar_mean_dummy ) - endif - - if ( nnzbar .EQ. 1 ) then - call active_read_xy( fname3, areabar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_areabar_mean_dummy ) - else - call active_read_xyz( fname3, areabar, irec, doglobalread, - & ladinit, optimcycle, myThid, - & xx_areabar_mean_dummy ) - endif - -cnew( - obsrec = irec - - daytime = FLOAT(secondsperday*(irec-1)) + modelstart - dayiter = hoursperday*(irec-1)+modeliter0 - - call cal_getdate( dayiter, daytime, daydate, myThid ) - call cal_convdate( daydate,yday,md,dd,sd,ld,wd,myThid ) - ymod = smrareastartdate(1)/10000 - -#ifdef SEAICE_DEBUG - print *,'cost_seaice_sst_r2' - print *,'daydate ', daydate - print *,'areaobsfile: ', localobsfile - print *,'nrecloc ', nrecloc - print *,'obsrec,daytime ', obsrec,daytime - print *,'dayiter ', dayiter - print *,'yday : ', yday - print *,'md,dd,sd ', md,dd,sd - print *,'ld,wd ', ld,wd - print *,'loclstrtdte(1) ', localstartdate(1) - print *,'ymod, yday ', ymod,yday - print *,'smrarstrtdt(1) ', smrareastartdate(1) - print *,'smrarstartdate ', smrareastartdate -#endif /* SEAICE_DEBUG */ - - if ( ymod .EQ. yday ) then - middate(1) = smrareastartdate(1) - else - middate(1) = yday*10000+100+1 - endif - middate(2) = 0 - middate(3) = modelstartdate(3) - middate(4) = modelstartdate(4) - - call cal_TimePassed( middate, daydate, difftime, myThid ) - call cal_ToSeconds( difftime, diffsecs, myThid ) - - localrec = int(diffsecs/localperiod) + 1 - -#ifdef SEAICE_DEBUG - print *,'middate(1,2) ',middate(1),middate(2) - print *,'middate(3,4) ', middate(3),middate(4) - print *,'difftime,diffsecs',difftime,diffsecs - print *,'localrec ',localrec -#endif - - il=ilnblnk(localobsfile) - write(fname2(1:128),'(2a,i4)') - & localobsfile(1:il), '_', yday - inquire( file=fname2, exist=exst ) - -#ifdef SEAICE_DEBUG - print *,'fname2',fname2 -#endif - if (.NOT. exst) then - write(fname2(1:128),'(a)') localobsfile(1:il) - localrec = obsrec -#ifdef SEAICE_DEBUG - print *,'localrec ', localrec - print *,'not exist' -#endif - endif - - if ( localrec .GT. 0 ) then - -#ifdef SEAICE_DEBUG - print *,'calling mdsreadfile',fname2,localrec -#endif - - CALL READ_REC_3D_RL( fname2, cost_iprec, nnzobs, - & localobs, localrec, 1, myThid ) - else - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localobs(i,j,k,bi,bj) = spval - enddo - enddo - enddo - enddo - enddo - endif -cnew) - -#ifdef SEAICE_DEBUG - do bj = jtlo,jthi - do bi = itlo,ithi - do k = 1,nnzobs - do i = imin,imax - do j = jmin,jmax - if (localobs(i,j,k,bi,bj) .LT. -1) THEN - print *,'obs rec date: ', -localobs(i,j,1,bi,bj) - endif - enddo - enddo - enddo - enddo - enddo -#endif - - do bj = jtlo,jthi - do bi = itlo,ithi - - localcost = 0. _d 0 - -c-- Determine the mask on weights - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - cmask(i,j,k) = cosphi(i,j,bi,bj)*localmask(i,j,k,bi,bj) - if ( localobs(i,j,k,bi,bj) .lt. spminloc .or. - & localobs(i,j,k,bi,bj) .gt. spmaxloc .or. - & localobs(i,j,k,bi,bj) .eq. spzeroloc ) then - cmask(i,j,k) = 0. _d 0 - endif - enddo - enddo - enddo -c-- - do k = 1,nnzobs - do j = jmin,jmax - do i = imin,imax - localwww = localweight(i,j,bi,bj)*cmask(i,j,k) - -c only accumulate cost if there is ice observed but not simulated.. - if ( localobs(i,j,k,bi,bj) .GT. 0.0 .AND. - & areabar(i,j,1,bi,bj) .LE. 0.0) then - - junk = ( localbar(i,j,k,bi,bj) - - & SEAICE_freeze + SEAICE_clamp_theta ) - - else - junk = 0.0 - endif - - localcost = localcost + junk*junk*localwww - -#ifdef SEAICE_DEBUG - if ((i == SEAICE_debugPointX) .and. - & (j == SEAICE_debugPointY)) then - - print '(A,2i4,3(1x,1P2E15.3))', - & 'costg i j tbar, abar,obs ',i,j, - & localbar(i,j,k,bi,bj), - & areabar(i,j,k,bi,bj), - & localobs(i,j,k,bi,bj) - - print '(A,2i4,2(1x,1P2E15.3))', - & 'costg i j bar-obs,wgt,loCost ',i,j, - & junk, - & localwww, - & localcost - endif -#endif - - if ( localwww .ne. 0. ) - & num_local(bi,bj) = num_local(bi,bj) + 1. _d 0 - enddo - enddo - enddo - - objf_local(bi,bj) = objf_local(bi,bj) + localcost - - enddo !/bj - enddo !/ bi - - enddo -c-- End of second loop over records. - -c-- End of mult_local or localobsfile - endif - -#endif /* ALLOW_SEAICE_COST_SMR_AREA */ -#endif /* ifdef ALLOW_COST */ - - RETURN - END diff --git a/pkg/seaice/cost_ice_test.F b/pkg/seaice/seaice_cost_test.F similarity index 94% rename from pkg/seaice/cost_ice_test.F rename to pkg/seaice/seaice_cost_test.F index b2f87810da..d1258ba429 100644 --- a/pkg/seaice/cost_ice_test.F +++ b/pkg/seaice/seaice_cost_test.F @@ -1,9 +1,9 @@ #include "SEAICE_OPTIONS.h" - subroutine cost_ice_test( mytime, myiter, mythid ) + subroutine seaice_cost_test( mytime, myiter, mythid ) c ================================================================== -c SUBROUTINE cost_ice_test +c SUBROUTINE seaice_cost_test c ================================================================== c c o Compute sea-ice cost function. The following options can be @@ -39,7 +39,7 @@ subroutine cost_ice_test( mytime, myiter, mythid ) c started: menemenlis@jpl.nasa.gov 26-Feb-2003 c c ================================================================== -c SUBROUTINE cost_ice_test +c SUBROUTINE seaice_cost_test c ================================================================== implicit none @@ -79,14 +79,18 @@ subroutine cost_ice_test( mytime, myiter, mythid ) c == end of interface == + if ( usingPCoords ) then + kSrf = Nr + else + kSrf = 1 + endif if ( myTime .GT. (endTime - lastinterval) ) then tempVar = 1. _d 0/ & ( ( 1. _d 0 + min(endTime-startTime,lastinterval) ) & / deltaTClock ) - kSrf = 1 cph( - write(standardMessageUnit,*) 'ph-ice B ', myiter, + write(standardMessageUnit,*) 'ph-ice B ', myiter, & theta(4,4,kSrf,1,1), area(4,4,1,1), heff(4,4,1,1) cph) if ( cost_ice_flag .eq. 1 ) then @@ -145,7 +149,7 @@ subroutine cost_ice_test( mytime, myiter, mythid ) objf_ice(bi,bj) = objf_ice(bi,bj) + & tempVar * rA(i,j,bi,bj) * ( & (THETA(i,j,kSrf,bi,bj) + 1.96 _d 0 ) * - & drF(1) * 3996. _d 0 * 1026. _d 0 - + & drF(kSrf) * 3996. _d 0 * 1026. _d 0 - & HEFF(i,j,bi,bj) * 334000. _d 0 * 910. _d 0 ) enddo enddo @@ -161,7 +165,7 @@ subroutine cost_ice_test( mytime, myiter, mythid ) objf_ice(bi,bj) = objf_ice(bi,bj) + & tempVar * rA(i,j,bi,bj) * ( & (THETA(i,j,kSrf,bi,bj) + 1.96 _d 0 ) * - & drF(1) * 3996. _d 0 * 1026. _d 0 ) + & drF(kSrf) * 3996. _d 0 * 1026. _d 0 ) enddo enddo enddo @@ -176,7 +180,7 @@ subroutine cost_ice_test( mytime, myiter, mythid ) objf_ice(bi,bj) = objf_ice(bi,bj) + & tempVar * rA(i,j,bi,bj) * ( & (THETA(i,j,kSrf,bi,bj) + 1.96 _d 0 ) * - & drF(1) * 3996. _d 0 * 1026. _d 0 + + & drF(kSrf) * 3996. _d 0 * 1026. _d 0 + & (TICES(i,j,1,bi,bj) - 273.15 _d 0 + 1.96 _d 0 ) * & HEFF(i,j,bi,bj) * 2090. _d 0 * 910. _d 0 - & HEFF(i,j,bi,bj) * 334000. _d 0 * 910. _d 0 - diff --git a/pkg/seaice/seaice_cost_weights.F b/pkg/seaice/seaice_cost_weights.F deleted file mode 100644 index eb2fc98cb5..0000000000 --- a/pkg/seaice/seaice_cost_weights.F +++ /dev/null @@ -1,146 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_ECCO -#include "ECCO_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -#include "CTRL_OPTIONS.h" -#endif - - subroutine seaice_cost_weights( mythid ) - -c ================================================================== -c SUBROUTINE seaice_cost_weights -c ================================================================== -c -c ================================================================== -c SUBROUTINE seaice_cost_weights -c ================================================================== - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#include "PARAMS.h" -#include "GRID.h" - -#ifdef ALLOW_CTRL -# include "ctrl.h" -#endif -#ifdef ALLOW_ECCO -# include "ecco.h" -#endif -#include "SEAICE_COST.h" - -c == routine arguments == - - integer mythid - -#ifdef ALLOW_ECCO -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer gwunit - integer irec,nnz - integer ilo,ihi - - _RL dummy - -c == external == - - integer ifnblnk - external ifnblnk - integer ilnblnk - external ilnblnk - -c == end of interface == - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1-oly - jmax = sny+oly - imin = 1-olx - imax = snx+olx - -c-- Define frame. - do j = jmin,jmax - do i = imin,imax -c-- North/South and West/East edges set to zero. - if ( (j .lt. 1) .or. (j .gt. sny) .or. - & (i .lt. 1) .or. (i .gt. snx) ) then - frame(i,j) = 0. _d 0 - else - frame(i,j) = 1. _d 0 - endif - enddo - enddo - -#ifdef ALLOW_SEAICE_COST_SMR_AREA - - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wsmrarea (i,j,bi,bj) = 0. _d 0 - enddo - enddo - enddo - enddo -c-- - nnz = 1 - irec = 1 - k = 1 - if ( smrarea_errfile .NE. ' ' ) then - IF ( cost_yftype.EQ.'RL' ) THEN - CALL READ_REC_3D_RL( smrarea_errfile, cost_iprec, nnz, - & wsmrarea, irec, 0, mythid ) - ELSE - STOP 'S/R SEAICE_COST_WEIGHTS: invalid cost_yftype' - ENDIF - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wsmrarea(i,j,bi,bj) = wsmrarea(i,j,bi,bj) - & *frame(i,j)*_hFacC(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - else - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - wsmrarea(i,j,bi,bj) = wsmrarea0 - & *frame(i,j)*_hFacC(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - endif -c-- - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - if (wsmrarea(i,j,bi,bj) .ne. 0.) - & wsmrarea(i,j,bi,bj) = - & 1./wsmrarea(i,j,bi,bj)/wsmrarea(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif /* ALLOW_SEAICE_COST_SMR_AREA */ - -#endif - - end diff --git a/pkg/seaice/seaice_ctrl_map_ini.F b/pkg/seaice/seaice_ctrl_map_ini.F deleted file mode 100644 index 78fbc6de71..0000000000 --- a/pkg/seaice/seaice_ctrl_map_ini.F +++ /dev/null @@ -1,168 +0,0 @@ -#include "SEAICE_OPTIONS.h" -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: seaice_ctrl_map_ini -C !INTERFACE: - subroutine seaice_ctrl_map_ini( mythid ) - -C !DESCRIPTION: \bv -c *================================================================= -c | SUBROUTINE seaice_ctrl_map_ini -c | Add the temperature, salinity, and diffusivity parts of the -c | control vector to the model state and update the tile halos. -c | The control vector is defined in the header file "ctrl.h". -c *================================================================= -C \ev - -C !USES: - implicit none - -c == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#include "SEAICE_SIZE.h" -#include "SEAICE.h" -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -# include "optim.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == - integer mythid - -#ifdef ALLOW_CTRL -C !LOCAL VARIABLES: -c == local variables == - - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - - logical equal - logical doglobalread - logical ladinit - - character*( 80) fnamegeneric - - _RL fac - _RL tmptest - -c == external == - integer ilnblnk - external ilnblnk - -c == end of interface == -CEOP - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - jmin = 1 - jmax = sny - imin = 1 - imax = snx - - doglobalread = .false. - ladinit = .false. - - equal = .true. - - if ( equal ) then - fac = 1. _d 0 - else - fac = 0. _d 0 - endif - -#ifdef ALLOW_SIAREA_CONTROL -c-- siarea. - il=ilnblnk( xx_siarea_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_siarea_file(1:il),'.',optimcycle - call active_read_xy( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_siarea_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - area(i,j,bi,bj) = area(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SIHEFF_CONTROL -c-- siheff. - il=ilnblnk( xx_siheff_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_siheff_file(1:il),'.',optimcycle - call active_read_xy( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_siheff_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - heff(i,j,bi,bj) = heff(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -#ifdef ALLOW_SIHSNOW_CONTROL -c-- sihsnow. - il=ilnblnk( xx_sihsnow_file ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_sihsnow_file(1:il),'.',optimcycle - call active_read_xy( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & mythid, xx_sihsnow_dummy ) - do bj = jtlo,jthi - do bi = itlo,ithi - do j = jmin,jmax - do i = imin,imax - hsnow(i,j,bi,bj) = hsnow(i,j,bi,bj) + - & tmpfld2d(i,j,bi,bj) - enddo - enddo - enddo - enddo -#endif - -c-- Update the tile edges. - -#ifdef ALLOW_SIAREA_CONTROL - _EXCH_XY_RL( area, mythid ) -#endif - -#ifdef ALLOW_SIHEFF_CONTROL - _EXCH_XY_RL( heff, mythid ) -#endif - -#ifdef ALLOW_SIHSNOW_CONTROL - _EXCH_XY_RL( hsnow, mythid ) -#endif - -#endif /* ALLOW_CTRL */ - - return - end diff --git a/pkg/seaice/seaice_diagnostics_init.F b/pkg/seaice/seaice_diagnostics_init.F index 051bd163d8..c4d5ef1ea0 100644 --- a/pkg/seaice/seaice_diagnostics_init.F +++ b/pkg/seaice/seaice_diagnostics_init.F @@ -376,7 +376,14 @@ SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid ) diagCode = 'SM U1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) - +#ifdef SEAICE_USE_GROWTH_ADX + diagName = 'SIeprflx' + diagTitle = 'heat flux adjustment associated with EmPmR' + diagUnits = 'W/m^2 ' + diagCode = 'SM U1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#else #ifndef SEAICE_DISABLE_HEATCONSFIX diagName = 'SIaaflux' diagTitle = 'conservative ocn<->seaice adv. heat flux adjust.' @@ -384,6 +391,7 @@ SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid ) diagCode = 'SM U1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif #endif diagName = 'SIhl ' @@ -702,7 +710,7 @@ SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid ) C sea ice salinity locName = 'seaice salinity' - WRITE(diagUnits,'(2A)') 'psu',flxUnits + WRITE(diagUnits,'(2A)') 'g/kg',flxUnits diagSufx = SEAICE_DIAG_SUFX( GAD_SALT, myThid ) C-- advective flux @@ -839,6 +847,54 @@ SUBROUTINE SEAICE_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_SETKLEV( diagName, nITD, myThid ) #endif +#ifdef ALLOW_AUTODIFF +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C Adjoint state variables + diagName = 'ADJarea ' + diagTitle = 'dJ/darea: Sensitivity to seaice fractional ice-cover' + diagUnits = 'dJ/(m^2/m^2) ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJheff ' + diagTitle = 'dJ/dheff: Sensitvity to seaice ice thickness' + diagUnits = 'dJ/dm ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJhsnow' + diagTitle = 'dJ/dhsnow: Sensitivity to seaice snow thickness' + diagUnits = 'dJ/dm ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJuice ' + diagTitle = 'dJ/duice: sensitivity to zonal ice velocity' + diagUnits = 'dJ/(m/s) ' +#ifdef SEAICE_CGRID + diagCode = 'UU A M1 ' +#else + diagCode = 'UZ A M1 ' +#endif + diagMate = diagNum + 2 + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) + + diagName = 'ADJvice ' + diagTitle = 'dJ/dvice: sensitivity to meridional ice velocity' + diagUnits = 'dJ/(m/s) ' +#ifdef SEAICE_CGRID + diagCode = 'VV A M1 ' +#else + diagCode = 'VZ A M1 ' +#endif + diagMate = diagNum + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid ) +#endif /* ALLOW_AUTODIFF */ #endif /* ALLOW_DIAGNOSTICS */ RETURN diff --git a/pkg/seaice/seaice_diffusion.F b/pkg/seaice/seaice_diffusion.F index 97f50bcd6d..4a2515f203 100644 --- a/pkg/seaice/seaice_diffusion.F +++ b/pkg/seaice/seaice_diffusion.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_DIFFUSION @@ -32,10 +29,6 @@ SUBROUTINE SEAICE_DIFFUSION( #include "SEAICE_PARAMS.h" CML#include "SEAICE_GRID.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT PARAMETERS: C === Routine arguments === C afx :: horizontal advective flux, x direction @@ -76,8 +69,8 @@ SUBROUTINE SEAICE_DIFFUSION( #endif C-- Tendency due to horizontal diffusion k = 1 - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx fZon (i,j) = 0. _d 0 fMer (i,j) = 0. _d 0 ENDDO @@ -87,8 +80,8 @@ SUBROUTINE SEAICE_DIFFUSION( C-- Y-direction CALL GAD_DIFF_Y(bi,bj,k,yA,diffKh,iceFld,fMer,myThid) C-- Divergence of fluxes: update scalar field - DO j=1-Oly,sNy+Oly-1 - DO i=1-Olx,sNx+Olx-1 + DO j=1-OLy,sNy+OLy-1 + DO i=1-OLx,sNx+OLx-1 gFld(i,j)= gFld(i,j) & - fac*iceMask(i,j,bi,bj)*recip_rA(i,j,bi,bj) & *( (fZon(i+1,j)-fZon(i,j)) diff --git a/pkg/seaice/seaice_do_ridging.F b/pkg/seaice/seaice_do_ridging.F index c865b88f63..e23a1f2ca9 100644 --- a/pkg/seaice/seaice_do_ridging.F +++ b/pkg/seaice/seaice_do_ridging.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_DO_RIDGING @@ -32,10 +29,6 @@ SUBROUTINE SEAICE_DO_RIDGING( #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT PARAMETERS: =================================================== C === Routine arguments === C bi, bj :: outer loop counters @@ -108,7 +101,7 @@ SUBROUTINE SEAICE_DO_RIDGING( C Hiblers "ridging function" for single category ice DO j=jMin,jMax DO i=iMin,iMax - AREA(I,J,bi,bj) = MIN(AREA(I,J,bi,bj),SEAICE_area_max) + AREA(i,j,bi,bj) = MIN(AREA(i,j,bi,bj),SEAICE_area_max) ENDDO ENDDO #else diff --git a/pkg/seaice/seaice_dynsolver.F b/pkg/seaice/seaice_dynsolver.F index 1e477e60e2..851bcdeffe 100644 --- a/pkg/seaice/seaice_dynsolver.F +++ b/pkg/seaice/seaice_dynsolver.F @@ -8,20 +8,19 @@ C !INTERFACE: SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) -C *==========================================================* -C | SUBROUTINE SEAICE_DYNSOLVER -C | o Ice dynamics using LSR solver -C | Zhang and Hibler, JGR, 102, 8691-8702, 1997 -C | or EVP explicit solver by Hunke and Dukowicz, JPO 27, -C | 1849-1867 (1997) -C *==========================================================* -C | written by Martin Losch, March 2006 -C *==========================================================* -C \ev +C !DESCRIPTION: +C *=============================================================* +C | SUBROUTINE SEAICE_DYNSOLVER | +C | C-grid version of ice dynamics using either | +C | o free drift | +C | o LSR solver, Zhang and Hibler, JGR, 102, 8691-8702, 1997 | +C | o Krylov solver, after Lemieux and Tremblay, JGR, 114, 2009 | +C | o JFNK solver, Losch et al., JCP, 257 901-911, 2014 | +C | o EVP solver, Hunke and Dukowicz, JPO 27, 1849-1867 1997 | +C *=============================================================* C !USES: IMPLICIT NONE - C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" @@ -38,7 +37,7 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) # include "tamc.h" #endif -C !INPUT/OUTPUT PARAMETERS: +C !INPUT PARAMETERS: C === Routine arguments === C myTime :: Simulation time C myIter :: Simulation timestep number @@ -46,31 +45,32 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) _RL myTime INTEGER myIter INTEGER myThid -CEOP -#ifdef SEAICE_CGRID C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE -#ifdef ALLOW_DIAGNOSTICS +#if ( defined ALLOW_DIAGNOSTICS && defined SEAICE_CGRID ) LOGICAL DIAGNOSTICS_IS_ON EXTERNAL DIAGNOSTICS_IS_ON -#endif /* ALLOW_DIAGNOSTICS */ +#endif C !LOCAL VARIABLES: -C === In Local common block === -C TAUX :: zonal wind stress over seaice at U point -C TAUY :: meridional wind stress over seaice at V point - COMMON/WIND_STRESS_ICE/TAUX,TAUY - _RL TAUX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL TAUY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C === Local variables === C i,j :: Loop counters C bi,bj :: tile counters INTEGER i, j, bi, bj - _RL phiSurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifdef SEAICE_CGRID +# ifndef ALLOW_AUTODIFF _RL mask_uice, mask_vice -#ifdef ALLOW_DIAGNOSTICS +# endif +C phiSurf :: geopotential height at sea surface (including pressure load) + _RL phiSurf(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif +C TAUX :: zonal wind stress over seaice at U point +C TAUY :: meridional wind stress over seaice at V point + _RL TAUX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL TAUY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#if ( defined ALLOW_DIAGNOSTICS && defined SEAICE_CGRID ) # ifdef ALLOW_AUTODIFF _RL strDivX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL strDivY(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -85,229 +85,222 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) LOGICAL diag_SIsigma_isOn, diag_SIshear_isOn LOGICAL diag_SIenpi_isOn, diag_SIenpot_isOn LOGICAL diag_SIpRfric_isOn, diag_SIpSfric_isOn -#endif /* ALLOW_DIAGNOSTICS */ - -C Initialise local variables in common block - IF ( myIter.EQ.nIter0 ) THEN - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - TAUX(i,j,bi,bj) = 0. _d 0 - TAUY(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - ENDIF +#endif +CEOP -# ifdef ALLOW_AUTODIFF -C Following re-initialisation breaks some "artificial" AD dependencies -C incured by IF (DIFFERENT_MULTIPLE ... statement DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - PRESS0(i,j,bi,bj) = SEAICE_strength*HEFF(i,j,bi,bj) +#if ( defined ALLOW_AUTODIFF && defined SEAICE_CGRID ) +C Following re-initialisation breaks some "artificial" AD dependencies +C incured by IF (DIFFERENT_MULTIPLE ... statement + PRESS0 (i,j,bi,bj) = SEAICE_strength*HEFF(i,j,bi,bj) & *EXP(-SEAICE_cStar*(ONE-AREA(i,j,bi,bj))) - ZMAX(i,j,bi,bj) = SEAICE_zetaMaxFac*PRESS0(i,j,bi,bj) - ZMIN(i,j,bi,bj) = SEAICE_zetaMin - PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj) - TAUX(i,j,bi,bj) = 0. _d 0 - TAUY(i,j,bi,bj) = 0. _d 0 + SEAICE_zMax(i,j,bi,bj) = SEAICE_zetaMaxFac*PRESS0(i,j,bi,bj) + SEAICE_zMin(i,j,bi,bj) = SEAICE_zetaMin + PRESS0 (i,j,bi,bj) = PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj) # ifdef SEAICE_ALLOW_FREEDRIFT uice_fd(i,j,bi,bj)= 0. _d 0 vice_fd(i,j,bi,bj)= 0. _d 0 # endif -# ifdef ALLOW_DIAGNOSTICS +#if ( defined ALLOW_DIAGNOSTICS && defined SEAICE_CGRID ) strDivX(i,j,bi,bj)= 0. _d 0 strDivY(i,j,bi,bj)= 0. _d 0 # endif +#endif /* ALLOW_AUTODIFF and SEAICE_CGRID */ +C Always initialise these local variables, needed for TAF, but also +C because they are not completely filled in S/R seaice_get_dynforcing + TAUX(i,j,bi,bj) = 0. _d 0 + TAUY(i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO -# endif /* ALLOW_AUTODIFF */ -# ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF_TAMC CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE uicenm1 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vicenm1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* ALLOW_AUTODIFF_TAMC */ +C-- interface of dynamics with atmopheric forcing fields (wind/stress) +C Call this in each time step so that we can use the surface stress +C in S/R seaice_ocean_stress + CALL SEAICE_GET_DYNFORCING ( + I uIce, vIce, AREA, SIMaskU, SIMaskV, + O TAUX, TAUY, + I myTime, myIter, myThid ) - IF ( +#ifdef SEAICE_CGRID + IF ( SEAICEuseDYNAMICS .AND. & DIFFERENT_MULTIPLE(SEAICE_deltaTdyn,myTime,SEAICE_deltaTtherm) & ) THEN -# ifdef ALLOW_AUTODIFF_TAMC -# ifdef SEAICE_ALLOW_EVP -CADJ STORE press0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE zmax = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# endif /* ALLOW_AUTODIFF_TAMC */ +#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_ALLOW_EVP) +CADJ STORE press0 = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE SEAICE_zMax = comlev1, key=ikey_dynamics, kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC and SEAICE_ALLOW_EVP */ C-- NOW SET UP MASS PER UNIT AREA AND CORIOLIS TERM - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx - seaiceMassC(i,j,bi,bj)=SEAICE_rhoIce*HEFF(i,j,bi,bj) - seaiceMassU(i,j,bi,bj)=SEAICE_rhoIce*HALF*( - & HEFF(i,j,bi,bj) + HEFF(i-1,j ,bi,bj) ) - seaiceMassV(i,j,bi,bj)=SEAICE_rhoIce*HALF*( - & HEFF(i,j,bi,bj) + HEFF(i ,j-1,bi,bj) ) - ENDDO - ENDDO - IF ( SEAICEaddSnowMass ) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy+1,sNy+OLy DO i=1-OLx+1,sNx+OLx - seaiceMassC(i,j,bi,bj)=seaiceMassC(i,j,bi,bj) - & + SEAICE_rhoSnow*HSNOW(i,j,bi,bj) - seaiceMassU(i,j,bi,bj)=seaiceMassU(i,j,bi,bj) - & + SEAICE_rhoSnow*HALF*( - & HSNOW(i,j,bi,bj) + HSNOW(i-1,j ,bi,bj) ) - - seaiceMassV(i,j,bi,bj)=seaiceMassV(i,j,bi,bj) - & + SEAICE_rhoSnow*HALF*( - & HSNOW(i,j,bi,bj) + HSNOW(i ,j-1,bi,bj) ) + seaiceMassC(i,j,bi,bj)=SEAICE_rhoIce*HEFF(i,j,bi,bj) + seaiceMassU(i,j,bi,bj)=SEAICE_rhoIce*HALF*( + & HEFF(i,j,bi,bj) + HEFF(i-1,j ,bi,bj) ) + seaiceMassV(i,j,bi,bj)=SEAICE_rhoIce*HALF*( + & HEFF(i,j,bi,bj) + HEFF(i ,j-1,bi,bj) ) ENDDO ENDDO - ENDIF + IF ( SEAICEaddSnowMass ) THEN + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx + seaiceMassC(i,j,bi,bj)=seaiceMassC(i,j,bi,bj) + & + SEAICE_rhoSnow*HSNOW(i,j,bi,bj) + seaiceMassU(i,j,bi,bj)=seaiceMassU(i,j,bi,bj) + & + SEAICE_rhoSnow*HALF*( + & HSNOW(i,j,bi,bj) + HSNOW(i-1,j ,bi,bj) ) + + seaiceMassV(i,j,bi,bj)=seaiceMassV(i,j,bi,bj) + & + SEAICE_rhoSnow*HALF*( + & HSNOW(i,j,bi,bj) + HSNOW(i ,j-1,bi,bj) ) + ENDDO + ENDDO + ENDIF + ENDDO ENDDO - ENDDO -#ifndef ALLOW_AUTODIFF - IF ( SEAICE_maskRHS ) THEN +# ifndef ALLOW_AUTODIFF + IF ( SEAICE_maskRHS ) THEN C dynamic masking of areas with no ice, not recommended C and only kept for testing purposes - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx - seaiceMaskU(i,j,bi,bj)=AREA(i,j,bi,bj)+AREA(i-1,j,bi,bj) - mask_uice=HEFFM(i,j,bi,bj)+HEFFM(i-1,j ,bi,bj) - IF ( (seaiceMaskU(i,j,bi,bj) .GT. 0. _d 0) .AND. - & (mask_uice .GT. 1.5 _d 0) ) THEN - seaiceMaskU(i,j,bi,bj) = 1. _d 0 - ELSE - seaiceMaskU(i,j,bi,bj) = 0. _d 0 - ENDIF - seaiceMaskV(i,j,bi,bj)=AREA(i,j,bi,bj)+AREA(i,j-1,bi,bj) - mask_vice=HEFFM(i,j,bi,bj)+HEFFM(i ,j-1,bi,bj) - IF ( (seaiceMaskV(i,j,bi,bj) .GT. 0. _d 0) .AND. - & (mask_vice .GT. 1.5 _d 0) ) THEN - seaiceMaskV(i,j,bi,bj) = 1. _d 0 - ELSE - seaiceMaskV(i,j,bi,bj) = 0. _d 0 - ENDIF + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx + seaiceMaskU(i,j,bi,bj)=AREA(i,j,bi,bj)+AREA(i-1,j,bi,bj) + mask_uice=HEFFM(i,j,bi,bj)+HEFFM(i-1,j ,bi,bj) + IF ( (seaiceMaskU(i,j,bi,bj) .GT. 0. _d 0) .AND. + & (mask_uice .GT. 1.5 _d 0) ) THEN + seaiceMaskU(i,j,bi,bj) = 1. _d 0 + ELSE + seaiceMaskU(i,j,bi,bj) = 0. _d 0 + ENDIF + seaiceMaskV(i,j,bi,bj)=AREA(i,j,bi,bj)+AREA(i,j-1,bi,bj) + mask_vice=HEFFM(i,j,bi,bj)+HEFFM(i ,j-1,bi,bj) + IF ( (seaiceMaskV(i,j,bi,bj) .GT. 0. _d 0) .AND. + & (mask_vice .GT. 1.5 _d 0) ) THEN + seaiceMaskV(i,j,bi,bj) = 1. _d 0 + ELSE + seaiceMaskV(i,j,bi,bj) = 0. _d 0 + ENDIF + ENDDO ENDDO ENDDO ENDDO - ENDDO - CALL EXCH_UV_XY_RL( seaiceMaskU, seaiceMaskV, .FALSE., myThid ) - ENDIF -#endif /* ndef ALLOW_AUTODIFF */ + CALL EXCH_UV_XY_RL( seaiceMaskU, seaiceMaskV, .FALSE., myThid ) + ENDIF +# endif /* ndef ALLOW_AUTODIFF */ C-- NOW SET UP FORCING FIELDS C initialise fields - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - TAUX (i,j,bi,bj)= 0. _d 0 - TAUY (i,j,bi,bj)= 0. _d 0 -#ifdef ALLOW_AUTODIFF -# ifdef SEAICE_ALLOW_EVP - stressDivergenceX(i,j,bi,bj) = 0. _d 0 - stressDivergenceY(i,j,bi,bj) = 0. _d 0 -# endif -#endif +# if (defined ALLOW_AUTODIFF && defined SEAICE_ALLOW_EVP) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + stressDivergenceX(i,j,bi,bj) = 0. _d 0 + stressDivergenceY(i,j,bi,bj) = 0. _d 0 + ENDDO ENDDO ENDDO ENDDO - ENDDO - -# ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte -# endif /* ALLOW_AUTODIFF_TAMC */ -C-- interface of dynamics with atmopheric forcing fields (wind/stress) - CALL SEAICE_GET_DYNFORCING ( - I uIce, vIce, AREA, SIMaskU, SIMaskV, - O TAUX, TAUY, - I myTime, myIter, myThid ) +# endif - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) C-- Compute surface pressure at z==0: C- use actual sea surface height for tilt computations - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - phiSurf(i,j) = Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj) - ENDDO - ENDDO -#ifdef ATMOSPHERIC_LOADING -C- add atmospheric loading and Sea-Ice loading - IF ( useRealFreshWaterFlux ) THEN + IF ( usingPCoords ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - phiSurf(i,j) = phiSurf(i,j) - & + ( pload(i,j,bi,bj) - & +sIceLoad(i,j,bi,bj)*gravity - & )*recip_rhoConst + phiSurf(i,j) = phiHydLow(i,j,bi,bj) ENDDO ENDDO - ELSE + ELSE DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - phiSurf(i,j) = phiSurf(i,j) - & + pload(i,j,bi,bj)*recip_rhoConst + phiSurf(i,j) = Bo_surf(i,j,bi,bj)*etaN(i,j,bi,bj) ENDDO ENDDO - ENDIF -#endif /* ATMOSPHERIC_LOADING */ + ENDIF +# ifdef ATMOSPHERIC_LOADING +C-- add atmospheric loading and Sea-Ice loading as it is done for phi0surf +C-- in S/R external_forcing_surf + IF ( usingZCoords ) THEN + IF ( useRealFreshWaterFlux ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + phiSurf(i,j) = phiSurf(i,j) + & + ( pload(i,j,bi,bj) + & +sIceLoad(i,j,bi,bj)*gravity*sIceLoadFac + & )*recip_rhoConst + ENDDO + ENDDO + ELSE + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + phiSurf(i,j) = phiSurf(i,j) + & + pload(i,j,bi,bj)*recip_rhoConst + ENDDO + ENDDO + ENDIF +C ELSEIF ( usingPCoords ) THEN +C The true atmospheric P-loading is not yet implemented for P-coord +C (requires time varying dP(Nr) like dP(k-bottom) with NonLin FS). + ENDIF +# endif /* ATMOSPHERIC_LOADING */ C-- basic forcing by wind stress - IF ( SEAICEscaleSurfStress ) THEN - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx - FORCEX0(i,j,bi,bj)=TAUX(i,j,bi,bj) - & * 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i-1,j,bi,bj)) - FORCEY0(i,j,bi,bj)=TAUY(i,j,bi,bj) - & * 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i,j-1,bi,bj)) + IF ( SEAICEscaleSurfStress ) THEN + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx + FORCEX0(i,j,bi,bj)=TAUX(i,j,bi,bj) + & * 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i-1,j,bi,bj)) + FORCEY0(i,j,bi,bj)=TAUY(i,j,bi,bj) + & * 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i,j-1,bi,bj)) + ENDDO ENDDO - ENDDO - ELSE - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx - FORCEX0(i,j,bi,bj)=TAUX(i,j,bi,bj) - FORCEY0(i,j,bi,bj)=TAUY(i,j,bi,bj) + ELSE + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx + FORCEX0(i,j,bi,bj)=TAUX(i,j,bi,bj) + FORCEY0(i,j,bi,bj)=TAUY(i,j,bi,bj) + ENDDO ENDDO - ENDDO - ENDIF + ENDIF - IF ( SEAICEuseTILT ) then - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx + IF ( SEAICEuseTILT ) THEN + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx C-- now add in tilt - FORCEX0(i,j,bi,bj)=FORCEX0(i,j,bi,bj) - & -seaiceMassU(i,j,bi,bj)*_recip_dxC(i,j,bi,bj) - & *( phiSurf(i,j)-phiSurf(i-1,j) ) - FORCEY0(i,j,bi,bj)=FORCEY0(i,j,bi,bj) - & -seaiceMassV(i,j,bi,bj)* _recip_dyC(i,j,bi,bj) - & *( phiSurf(i,j)-phiSurf(i,j-1) ) - ENDDO - ENDDO - ENDIF + FORCEX0(i,j,bi,bj)=FORCEX0(i,j,bi,bj) + & -seaiceMassU(i,j,bi,bj)*_recip_dxC(i,j,bi,bj) + & *( phiSurf(i,j)-phiSurf(i-1,j) ) + FORCEY0(i,j,bi,bj)=FORCEY0(i,j,bi,bj) + & -seaiceMassV(i,j,bi,bj)* _recip_dyC(i,j,bi,bj) + & *( phiSurf(i,j)-phiSurf(i,j-1) ) + ENDDO + ENDDO + ENDIF - CALL SEAICE_CALC_ICE_STRENGTH( bi, bj, myTime, myIter, myThid ) + CALL SEAICE_CALC_ICE_STRENGTH( bi, bj, myTime, myIter, myThid ) + ENDDO ENDDO - ENDDO -#ifdef SEAICE_ALLOW_DYNAMICS - IF ( SEAICEuseDYNAMICS ) THEN -#ifdef SEAICE_ALLOW_FREEDRIFT +# ifdef SEAICE_ALLOW_FREEDRIFT IF ( SEAICEuseFREEDRIFT .OR. SEAICEuseEVP & .OR. LSR_mixIniGuess.EQ.0 ) THEN CALL SEAICE_FREEDRIFT( myTime, myIter, myThid ) @@ -326,87 +319,77 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) ENDDO ENDDO ENDIF -#endif /* SEAICE_ALLOW_FREEDRIFT */ +# endif /* SEAICE_ALLOW_FREEDRIFT */ -#ifdef ALLOW_OBCS +# ifdef ALLOW_OBCS IF ( useOBCS ) THEN CALL OBCS_APPLY_UVICE( uIce, vIce, myThid ) ENDIF -#endif /* ALLOW_OBCS */ +# endif -#ifdef SEAICE_ALLOW_EVP -# ifdef ALLOW_AUTODIFF_TAMC +# ifdef SEAICE_ALLOW_EVP +# ifdef ALLOW_AUTODIFF_TAMC CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE uicenm1 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vicenm1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif /* ALLOW_AUTODIFF_TAMC */ +# endif /* ALLOW_AUTODIFF_TAMC */ IF ( SEAICEuseEVP ) THEN C Elastic-Viscous-Plastic solver, following Hunke (2001) CALL SEAICE_EVP( myTime, myIter, myThid ) ENDIF -#endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_ALLOW_EVP */ IF ( SEAICEuseLSR ) THEN C Picard solver with LSR scheme (Zhang-J/Hibler 1997), ported to a C-grid CALL SEAICE_LSR( myTime, myIter, myThid ) ENDIF -#ifdef SEAICE_ALLOW_KRYLOV -# ifdef ALLOW_AUTODIFF +# ifdef SEAICE_ALLOW_KRYLOV +# ifdef ALLOW_AUTODIFF STOP 'Adjoint does not work with Picard-Krylov solver.' -# else +# else IF ( SEAICEuseKrylov ) THEN C Picard solver with Matrix-free Krylov solver (Lemieux et al. 2008) CALL SEAICE_KRYLOV( myTime, myIter, myThid ) ENDIF -# endif /* ALLOW_AUTODIFF */ -#endif /* SEAICE_ALLOW_KRYLOV */ +# endif /* ALLOW_AUTODIFF */ +# endif /* SEAICE_ALLOW_KRYLOV */ -#ifdef SEAICE_ALLOW_JFNK -# ifdef ALLOW_AUTODIFF +# ifdef SEAICE_ALLOW_JFNK +# ifdef ALLOW_AUTODIFF STOP 'Adjoint does not work with JFNK solver.' -# else +# else IF ( SEAICEuseJFNK ) THEN C Jacobian-free Newton Krylov solver (Lemieux et al. 2010, 2012) CALL SEAICE_JFNK( myTime, myIter, myThid ) ENDIF -# endif /* ALLOW_AUTODIFF */ -#endif /* SEAICE_ALLOW_JFNK */ +# endif /* ALLOW_AUTODIFF */ +# endif /* SEAICE_ALLOW_JFNK */ -C End of IF (SEAICEuseDYNAMICS ... +C End of IF (SEAICEuseDYNAMICS and DIFFERENT_MULTIPLE ... ENDIF -#endif /* SEAICE_ALLOW_DYNAMICS */ - -C End of IF (DIFFERENT_MULTIPLE ... - ENDIF - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE stressDivergenceX = comlev1, -CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE stressDivergenceY = comlev1, -CADJ & key=ikey_dynamics, kind=isbyte -CADJ STORE DWATN = comlev1, key=ikey_dynamics, kind=isbyte -#ifdef SEAICE_ALLOW_BOTTOMDRAG -CADJ STORE CbotC = comlev1, key=ikey_dynamics, kind=isbyte -#endif /* SEAICE_ALLOW_BOTTOMDRAG */ -#endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* SEAICE_CGRID */ C Update ocean surface stress IF ( SEAICEupdateOceanStress ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE uice, vice, DWATN = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef SEAICE_CGRID +CADJ STORE stressDivergenceX = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE stressDivergenceY = comlev1, key=ikey_dynamics, kind=isbyte +# endif +#endif /* ALLOW_AUTODIFF_TAMC */ CALL SEAICE_OCEAN_STRESS ( I TAUX, TAUY, myTime, myIter, myThid ) ENDIF -#ifdef SEAICE_ALLOW_DYNAMICS #ifdef SEAICE_ALLOW_CLIPVELS IF ( SEAICEuseDYNAMICS .AND. SEAICE_clipVelocities) THEN -#ifdef ALLOW_AUTODIFF_TAMC +# ifdef ALLOW_AUTODIFF_TAMC CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +# endif /* ALLOW_AUTODIFF_TAMC */ c Put a cap on ice velocity c limit velocity to 0.40 m s-1 to avoid potential CFL violations c in open water areas (drift of zero thickness ice) @@ -424,9 +407,8 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) ENDDO ENDIF #endif /* SEAICE_ALLOW_CLIPVELS */ -#endif /* SEAICE_ALLOW_DYNAMICS */ -#ifdef ALLOW_DIAGNOSTICS +#if ( defined ALLOW_DIAGNOSTICS && defined SEAICE_CGRID ) C diagnostics related to mechanics/dynamics/momentum equations IF ( useDiagnostics .AND. SEAICEuseDYNAMICS ) THEN CALL DIAGNOSTICS_FILL(zeta ,'SIzeta ',0,1,0,1,1,myThid) @@ -476,7 +458,8 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) C but use old viscosities and pressure for the C principle stress components CML CALL SEAICE_CALC_VISCOSITIES( -CML I e11, e22, e12, zMin, zMax, HEFFM, press0, tensileStrFac, +CML I e11, e22, e12, SEAICE_zMin, SEAICE_zMax, HEFFM, press0, +CML I tensileStrFac, CML O eta, etaZ, zeta, zetaZ, press, deltaC, CML I 0, myTime, myIter, myThid ) ENDIF @@ -487,7 +470,7 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) C stress diagnostics C IF ( diag_SIsigma_isOn ) THEN -#ifdef SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP C This could go directly into EVP, but to keep a better eye on it, C I would like to keep it here. IF ( SEAICEuseEVP ) THEN @@ -512,9 +495,9 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) ENDDO ENDDO ELSE -#else +# else IF ( .TRUE. ) THEN -#endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_ALLOW_EVP */ CALL SEAICE_CALC_STRESS( I e11, e22, e12, press, zeta, eta, etaZ, O sig1, sig2, sig12, @@ -556,7 +539,7 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) & + e12(i+1,j+1,bi,bj)**2 + e12(i ,j+1,bi,bj)**2 ) C shear deformation as sqrt((e11-e22)**2 + 4*e12**2); the 4 pulled into C the average - sig1(i,j) = sqrt(sigm*sigm + sigTmp) + sig1(i,j) = SQRT(sigm*sigm + sigTmp) ENDDO ENDDO CALL DIAGNOSTICS_FILL(sig1,'SIshear ',0,1,2,bi,bj,myThid) @@ -721,11 +704,9 @@ SUBROUTINE SEAICE_DYNSOLVER( myTime, myIter, myThid ) C bi/bj-loop ENDDO ENDDO -C useDiagnostics +C useDiagnostics & SEAICEuseDYNAMICS ENDIF - -#endif /* ALLOW_DIAGNOSTICS */ -#endif /* SEAICE_CGRID */ +#endif /* ALLOW_DIAGNOSTICS and SEAICE_CGRID */ RETURN END diff --git a/pkg/seaice/seaice_evp.F b/pkg/seaice/seaice_evp.F index 94e277fd0c..08e2a890f7 100644 --- a/pkg/seaice/seaice_evp.F +++ b/pkg/seaice/seaice_evp.F @@ -51,9 +51,7 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) INTEGER myIter INTEGER myThid -#if ( defined (SEAICE_CGRID) && \ - defined (SEAICE_ALLOW_EVP) && \ - defined (SEAICE_ALLOW_DYNAMICS) ) +#if ( defined SEAICE_CGRID && defined SEAICE_ALLOW_EVP ) C === Local variables === C i,j,bi,bj :: Loop counters @@ -98,11 +96,14 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) INTEGER i, j, bi, bj INTEGER kSrf INTEGER nEVPstep, iEVPstep -#ifdef ALLOW_AUTODIFF_TAMC - INTEGER ikeyloc -#else +#ifndef ALLOW_AUTODIFF INTEGER nEVPstepMax #endif +#ifdef ALLOW_AUTODIFF_TAMC +C evpkey :: tape key (depends on evp iteration) +C tkey :: tape key (depends on tile indices and evpkey) + INTEGER evpkey, tkey +#endif _RL COSWAT _RS SINWAT @@ -180,7 +181,11 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) & .AND. DIFFERENT_MULTIPLE( SEAICE_monFreq, myTime, deltaTClock ) #endif /* ALLOW_SEAICE_EVP_RESIDUAL */ C surface level - kSrf = 1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C-- introduce turning angles SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad) COSWAT=COS(SEAICE_waterTurnAngle*deg2rad) @@ -190,16 +195,15 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) recip_ecc2 = 0. _d 0 IF ( ecc2 .NE. 0. _d 0 ) recip_ecc2=ONE/ecc2 deltaMinSq = SEAICE_deltaMin**2 -C determine number of internal time steps - nEVPstep = INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) - IF ( SEAICEnEVPstarSteps.NE.UNSET_I ) nEVPstep=SEAICEnEVPstarSteps +C copy number of internal time steps from previously defined parameter + nEVPstep = SEAICEnEVPstarSteps C SEAICE_evpAlpha = 2. * SEAICE_evpTauRelax/SEAICE_deltaTevp DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - denom1(I,J,bi,bj) = 1. _d 0 / ( SEAICE_evpAlpha + 1. _d 0 ) - denom2(I,J,bi,bj) = 1. _d 0 / ( SEAICE_evpAlpha + ecc2 ) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + denom1(i,j,bi,bj) = 1. _d 0 / ( SEAICE_evpAlpha + 1. _d 0 ) + denom2(i,j,bi,bj) = 1. _d 0 / ( SEAICE_evpAlpha + ecc2 ) ENDDO ENDDO ENDDO @@ -220,10 +224,10 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) recip_evpRevFac = recip_ecc2 DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - denom1(I,J,bi,bj) = 1. _d 0 / SEAICE_evpAlpha - denom2(I,J,bi,bj) = denom1(i,j,bi,bj) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + denom1(i,j,bi,bj) = 1. _d 0 / SEAICE_evpAlpha + denom2(i,j,bi,bj) = denom1(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -237,7 +241,7 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) betaFacP1 = betaFac + evpStarFac*recip_deltaT betaFacP1U = betaFacP1 betaFacP1V = betaFacP1 -#ifndef ALLOW_AUTODIFF_TAMC +#ifndef ALLOW_AUTODIFF nEVPstepMax = nEVPstep #endif @@ -246,34 +250,34 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx C use u/vIce as work arrays: copy previous time step to u/vIceNm1 - uIceNm1(I,J,bi,bj) = uIce(I,J,bi,bj) - vIceNm1(I,J,bi,bj) = vIce(I,J,bi,bj) + uIceNm1(i,j,bi,bj) = uIce(i,j,bi,bj) + vIceNm1(i,j,bi,bj) = vIce(i,j,bi,bj) C initialise strain rates - e11 (I,J,bi,bj) = 0. _d 0 - e22 (I,J,bi,bj) = 0. _d 0 - e12 (I,J,bi,bj) = 0. _d 0 + e11 (i,j,bi,bj) = 0. _d 0 + e22 (i,j,bi,bj) = 0. _d 0 + e12 (i,j,bi,bj) = 0. _d 0 C initialise adative-EVP-specific fields - evpAlphaC(I,J,bi,bj) = SEAICE_evpAlpha - evpAlphaZ(I,J,bi,bj) = SEAICE_evpAlpha - evpBetaU (I,J,bi,bj) = SEAICE_evpBeta - evpBetaV (I,J,bi,bj) = SEAICE_evpBeta + evpAlphaC(i,j,bi,bj) = SEAICE_evpAlpha + evpAlphaZ(i,j,bi,bj) = SEAICE_evpAlpha + evpBetaU (i,j,bi,bj) = SEAICE_evpBeta + evpBetaV (i,j,bi,bj) = SEAICE_evpBeta ENDDO ENDDO C initialise fractional areas at velocity points IF ( SEAICEscaleSurfStress ) THEN - DO J=1,sNy - DO I=1,sNx - areaW(I,J,bi,bj) = - & 0.5 _d 0*(AREA(I,J,bi,bj)+AREA(I-1,J,bi,bj)) - areaS(I,J,bi,bj) = - & 0.5 _d 0*(AREA(I,J,bi,bj)+AREA(I,J-1,bi,bj)) + DO j=1,sNy + DO i=1,sNx + areaW(i,j,bi,bj) = + & 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i-1,j,bi,bj)) + areaS(i,j,bi,bj) = + & 0.5 _d 0*(AREA(i,j,bi,bj)+AREA(i,j-1,bi,bj)) ENDDO ENDDO ELSE - DO J=1,sNy - DO I=1,sNx - areaW(I,J,bi,bj) = 1. _d 0 - areaS(I,J,bi,bj) = 1. _d 0 + DO j=1,sNy + DO i=1,sNx + areaW(i,j,bi,bj) = 1. _d 0 + areaS(i,j,bi,bj) = 1. _d 0 ENDDO ENDDO ENDIF @@ -290,7 +294,7 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - zMax (I,J,bi,bj) = _rA(I,J,bi,bj) * fac + SEAICE_zMax(i,j,bi,bj) = _rA(i,j,bi,bj) * fac ENDDO ENDDO ENDDO @@ -303,16 +307,15 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) IF (iEVPstep.LE.nEVPstep) THEN C #ifdef ALLOW_AUTODIFF_TAMC - ikeyloc = iEVPstep + - & (ikey_dynamics-1)*nEVPstepMax -CADJ STORE uice = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE vice = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE seaice_sigma1 = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE seaice_sigma2 = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE seaice_sigma12 = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE evpAlphaC = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE evpBetaU = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE evpBetaV = comlev1_evp, key = ikeyloc, byte = isbyte + evpkey = iEVPstep + (ikey_dynamics-1)*nEVPstepMax +CADJ STORE uice = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE vice = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE seaice_sigma1 = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE seaice_sigma2 = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE seaice_sigma12 = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE evpAlphaC = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE evpBetaU = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE evpBetaV = comlev1_evp, key = evpkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C C first calculate strain rates and bulk moduli/viscosities @@ -323,50 +326,41 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) I iEVPstep, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE e11 = comlev1_evp,key = ikeyloc, byte = isbyte -CADJ STORE e12 = comlev1_evp,key = ikeyloc, byte = isbyte -CADJ STORE e22 = comlev1_evp,key = ikeyloc, byte = isbyte +CADJ STORE e11 = comlev1_evp,key = evpkey, byte = isbyte +CADJ STORE e12 = comlev1_evp,key = evpkey, byte = isbyte +CADJ STORE e22 = comlev1_evp,key = evpkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikeyloc - 1 - iicekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (evpkey-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_SEAICE_EVP_RESIDUAL C save previous (p-1) iteration IF ( printResidual ) THEN DO j=1,sNy DO i=1,sNx - sig11Pm1(I,J,bi,bj) = seaice_sigma1(I,J,bi,bj) - sig22Pm1(I,J,bi,bj) = seaice_sigma2(I,J,bi,bj) - sig12Pm1(I,J,bi,bj) = seaice_sigma12(I,J,bi,bj) - uIcePm1 (I,J,bi,bj) = uIce(i,j,bi,bj) - vIcePm1 (I,J,bi,bj) = vIce(i,j,bi,bj) + sig11Pm1(i,j,bi,bj) = seaice_sigma1(i,j,bi,bj) + sig22Pm1(i,j,bi,bj) = seaice_sigma2(i,j,bi,bj) + sig12Pm1(i,j,bi,bj) = seaice_sigma12(i,j,bi,bj) + uIcePm1 (i,j,bi,bj) = uIce(i,j,bi,bj) + vIcePm1 (i,j,bi,bj) = vIce(i,j,bi,bj) ENDDO ENDDO ENDIF #endif /* ALLOW_SEAICE_EVP_RESIDUAL */ DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - seaice_div (I,J) = 0. _d 0 - seaice_tension(I,J) = 0. _d 0 - seaice_shear (I,J) = 0. _d 0 - pressC (I,J) = 0. _d 0 - e12Csq (I,J) = 0. _d 0 - zetaC (I,J) = 0. _d 0 - deltaZ (I,J) = 0. _d 0 - zetaZ (I,J,bi,bj) = 0. _d 0 - deltaC (I,J,bi,bj) = 0. _d 0 + seaice_div (i,j) = 0. _d 0 + seaice_tension(i,j) = 0. _d 0 + seaice_shear (i,j) = 0. _d 0 + pressC (i,j) = 0. _d 0 + e12Csq (i,j) = 0. _d 0 + zetaC (i,j) = 0. _d 0 + deltaZ (i,j) = 0. _d 0 + zetaZ (i,j,bi,bj) = 0. _d 0 + deltaC (i,j,bi,bj) = 0. _d 0 ENDDO ENDDO DO j=1-OLy,sNy+OLy @@ -382,8 +376,8 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO j=1-OLy+1,sNy+OLy-1 DO i=1-OLx+1,sNx+OLx-1 tmp = 0.25 * - & ( e12(I,J ,bi,bj) + e12(I+1,J ,bi,bj) - & + e12(I,J+1,bi,bj) + e12(I+1,J+1,bi,bj) ) + & ( e12(i,j ,bi,bj) + e12(i+1,j ,bi,bj) + & + e12(i,j+1,bi,bj) + e12(i+1,j+1,bi,bj) ) e12Csq(i,j) = tmp*tmp ENDDO ENDDO @@ -392,36 +386,36 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO i=1-OLx+1,sNx+OLx-1 C area weighted average of the squares of e12 is more accurate C (and energy conserving) according to Bouillon et al. 2013, eq (11) - e12Csq(i,j) = 0.25 _d 0 * recip_rA(I,J,bi,bj) * - & ( rAz(I ,J ,bi,bj)*e12(I ,J ,bi,bj)**2 - & + rAz(I+1,J ,bi,bj)*e12(I+1,J ,bi,bj)**2 - & + rAz(I ,J+1,bi,bj)*e12(I ,J+1,bi,bj)**2 - & + rAz(I+1,J+1,bi,bj)*e12(I+1,J+1,bi,bj)**2 ) + e12Csq(i,j) = 0.25 _d 0 * recip_rA(i,j,bi,bj) * + & ( rAz(i ,j ,bi,bj)*e12(i ,j ,bi,bj)**2 + & + rAz(i+1,j ,bi,bj)*e12(i+1,j ,bi,bj)**2 + & + rAz(i ,j+1,bi,bj)*e12(i ,j+1,bi,bj)**2 + & + rAz(i+1,j+1,bi,bj)*e12(i+1,j+1,bi,bj)**2 ) ENDDO ENDDO ENDIF DO j=0,sNy+1 DO i=0,sNx+1 - deltaSq = ep(I,J)**2 + recip_ecc2 * em(I,J)**2 - & + recip_ecc2 * 4. _d 0 * e12Csq(I,J) -#ifdef ALLOW_AUTODIFF_TAMC + deltaSq = ep(i,j)**2 + recip_ecc2 * em(i,j)**2 + & + recip_ecc2 * 4. _d 0 * e12Csq(i,j) +#ifdef ALLOW_AUTODIFF C avoid sqrt of 0 - deltaC(I,J,bi,bj) = 0. _d 0 + deltaC(i,j,bi,bj) = 0. _d 0 IF ( deltaSq .GT. 0. _d 0 ) - & deltaC(I,J,bi,bj) = SQRT(deltaSq) + & deltaC(i,j,bi,bj) = SQRT(deltaSq) #else - deltaC(I,J,bi,bj) = SQRT(deltaSq) -#endif /* ALLOW_AUTODIFF_TAMC */ + deltaC(i,j,bi,bj) = SQRT(deltaSq) +#endif /* ALLOW_AUTODIFF */ #ifdef SEAICE_DELTA_SMOOTHREG C smooth regularization (without max-function) of delta for C better differentiability CML deltaCreg = SQRT(deltaSq + deltaMinSq) - deltaCreg = deltaC(I,J,bi,bj) + SEAICE_deltaMin + deltaCreg = deltaC(i,j,bi,bj) + SEAICE_deltaMin #else - deltaCreg = MAX(deltaC(I,J,bi,bj),SEAICE_deltaMin) + deltaCreg = MAX(deltaC(i,j,bi,bj),SEAICE_deltaMin) #endif /* SEAICE_DELTA_SMOOTHREG */ - zetaC(I,J) = HALF*( press0(I,J,bi,bj) - & * ( 1. _d 0 + tensileStrFac(I,J,bi,bj) ) + zetaC(i,j) = HALF*( press0(i,j,bi,bj) + & * ( 1. _d 0 + tensileStrFac(i,j,bi,bj) ) & )/deltaCreg ENDDO ENDDO @@ -430,63 +424,61 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO i=0,sNx+1 CML I do not like these hidden regularisations, why do we need to CML divide by mass? - evpAlphaC(I,J,bi,bj) = SQRT(zetaC(I,J) - & * EVPcFac / MAX(seaiceMassC(I,J,bi,bj), 1.D-04) - & * recip_rA(I,J,bi,bj) ) * HEFFM(I,J,bi,bj) - evpAlphaC(I,J,bi,bj) = - & MAX(evpAlphaC(I,J,bi,bj),SEAICEaEVPalphaMin) + evpAlphaC(i,j,bi,bj) = SQRT(zetaC(i,j) + & * EVPcFac / MAX(seaiceMassC(i,j,bi,bj), 1.D-04) + & * recip_rA(i,j,bi,bj) ) * HEFFM(i,j,bi,bj) + evpAlphaC(i,j,bi,bj) = + & MAX(evpAlphaC(i,j,bi,bj),SEAICEaEVPalphaMin) ENDDO ENDDO ENDIF C compute zetaZ and deltaZ by simple averaging (following C Bouillon et al., 2013) - DO J=1,sNy+1 - DO I=1,sNx+1 - sumNorm = HEFFM(I,J, bi,bj)+HEFFM(I-1,J, bi,bj) - & + HEFFM(I,J-1,bi,bj)+HEFFM(I-1,J-1,bi,bj) + DO j=1,sNy+1 + DO i=1,sNx+1 + sumNorm = HEFFM(i,j, bi,bj)+HEFFM(i-1,j, bi,bj) + & + HEFFM(i,j-1,bi,bj)+HEFFM(i-1,j-1,bi,bj) IF ( sumNorm.GT.0. _d 0 ) sumNorm = 1. _d 0 / sumNorm - zetaZ(I,J,bi,bj) = sumNorm * - & ( zetaC(I, J) + zetaC(I-1,J-1) - & + zetaC(I-1,J) + zetaC(I, J-1) ) - deltaZ(I,J) = sumNorm * - & ( deltaC(I, J,bi,bj) + deltaC(I-1,J-1,bi,bj) - & + deltaC(I-1,J,bi,bj) + deltaC(I, J-1,bi,bj) ) + zetaZ(i,j,bi,bj) = sumNorm * + & ( zetaC(i, j) + zetaC(i-1,j-1) + & + zetaC(i-1,j) + zetaC(i, j-1) ) + deltaZ(i,j) = sumNorm * + & ( deltaC(i, j,bi,bj) + deltaC(i-1,j-1,bi,bj) + & + deltaC(i-1,j,bi,bj) + deltaC(i, j-1,bi,bj) ) ENDDO ENDDO #ifdef SEAICE_ALLOW_CLIPZETA #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE zetac = comlev1_bibj_evp, -CADJ & key = iiceloc, byte = isbyte -CADJ STORE zetaz(:,:,bi,bj) = comlev1_bibj_evp, -CADJ & key = iicekey, byte = isbyte +CADJ STORE zetac = comlev1_bibj_evp, key = tkey, byte=isbyte +CADJ STORE zetaz(:,:,bi,bj) = comlev1_bibj_evp, key = tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C regularize zeta if necessary DO j=0,sNy+1 DO i=0,sNx+1 - zetaC(I,J) = MAX(zMin(I,J,bi,bj),MIN(zMax(I,J,bi,bj) - & ,zetaC(I,J))) + zetaC(i,j) = MAX( SEAICE_zMin(i,j,bi,bj), + & MIN( SEAICE_zMax(i,j,bi,bj), zetaC(i,j) ) ) CML zetaC(I,J) = zetaC(I,J)*HEFFM(I,J,bi,bj) C C zMin, zMax are defined at C-points, make sure that they are not C masked by boundaries/land points zMaxZ = MAX( - & MAX(zMax(I, J,bi,bj),zMax(I, J-1,bi,bj)), - & MAX(zMax(I-1,J,bi,bj),zMax(I-1,J-1,bi,bj)) ) + & MAX(SEAICE_zMax(i, j,bi,bj),SEAICE_zMax(i, j-1,bi,bj)), + & MAX(SEAICE_zMax(i-1,j,bi,bj),SEAICE_zMax(i-1,j-1,bi,bj)) ) zMinZ = MAX( - & MAX(zMin(I, J,bi,bj),zMin(I, J-1,bi,bj)), - & MAX(zMin(I-1,J,bi,bj),zMin(I-1,J-1,bi,bj)) ) - zetaZ(I,J,bi,bj) = MAX(zMinZ,MIN(zMaxZ,zetaZ(I,J,bi,bj))) + & MAX(SEAICE_zMin(i, j,bi,bj),SEAICE_zMin(i, j-1,bi,bj)), + & MAX(SEAICE_zMin(i-1,j,bi,bj),SEAICE_zMin(i-1,j-1,bi,bj)) ) + zetaZ(i,j,bi,bj) = MAX(zMinZ,MIN(zMaxZ,zetaZ(i,j,bi,bj))) ENDDO ENDDO #endif /* SEAICE_ALLOW_CLIPZETA */ C recompute pressure DO j=0,sNy+1 DO i=0,sNx+1 - pressC(I,J) = - & ( press0(I,J,bi,bj) * ( 1. _d 0 - SEAICEpressReplFac ) - & + TWO*zetaC(I,J)*deltaC(I,J,bi,bj)*SEAICEpressReplFac - & /(1. _d 0 + tensileStrFac(I,J,bi,bj)) - & ) * (1. _d 0 - tensileStrFac(I,J,bi,bj)) + pressC(i,j) = + & ( press0(i,j,bi,bj) * ( 1. _d 0 - SEAICEpressReplFac ) + & + TWO*zetaC(i,j)*deltaC(i,j,bi,bj)*SEAICEpressReplFac + & /(1. _d 0 + tensileStrFac(i,j,bi,bj)) + & ) * (1. _d 0 - tensileStrFac(i,j,bi,bj)) ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS @@ -494,9 +486,9 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C save eta, zeta, and pressure for diagnostics DO j=1,sNy DO i=1,sNx - press(I,J,bi,bj) = pressC(I,J) - zeta (I,J,bi,bj) = zetaC(I,J) - eta (I,J,bi,bj) = zetaC(I,J)*recip_ecc2 + press(i,j,bi,bj) = pressC(i,j) + zeta (i,j,bi,bj) = zetaC(i,j) + eta (i,j,bi,bj) = zetaC(i,j)*recip_ecc2 ENDDO ENDDO ENDIF @@ -510,19 +502,19 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) IF ( SEAICEuseTEM ) THEN DO j=0,sNy DO i=0,sNx - etaDenC = em(I,J)**2 + 4. _d 0 * e12Csq(I,J) + etaDenC = em(i,j)**2 + 4. _d 0 * e12Csq(i,j) etaDenC = SQRT(MAX(deltaMinSq,etaDenC)) - zetaMaxC = ecc2*zetaC(I,J) - & *(deltaC(I,J,bi,bj)-ep(I,J))/etaDenC + zetaMaxC = ecc2*zetaC(i,j) + & *(deltaC(i,j,bi,bj)-ep(i,j))/etaDenC #ifdef ALLOW_DIAGNOSTICS C save new eta for diagnostics - eta(I,J,bi,bj) = MIN(zetaC(I,J),zetaMaxC)*recip_ecc2 + eta(i,j,bi,bj) = MIN(zetaC(i,j),zetaMaxC)*recip_ecc2 #endif /* ALLOW_DIAGNOSTICS */ - seaice_div (I,J) = - & ( 2. _d 0 *zetaC(I,J)*ep(I,J) - pressC(I,J) - & ) * HEFFM(I,J,bi,bj) - seaice_tension(I,J) = 2. _d 0*MIN(zetaC(I,J),zetaMaxC) - & * em(I,J) * HEFFM(I,J,bi,bj) + seaice_div (i,j) = + & ( 2. _d 0 *zetaC(i,j)*ep(i,j) - pressC(i,j) + & ) * HEFFM(i,j,bi,bj) + seaice_tension(i,j) = 2. _d 0*MIN(zetaC(i,j),zetaMaxC) + & * em(i,j) * HEFFM(i,j,bi,bj) ENDDO ENDDO DO j=1,sNy+1 @@ -536,39 +528,39 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C Averaging the squares gives more accurate viscous-plastic behavior C than squaring the averages etaDenZ = - & sumNorm * recip_rAz(I,J,bi,bj) * - & ( _rA(I ,J ,bi,bj) * em(I, J )**2 - & + _rA(I-1,J-1,bi,bj) * em(I-1,J-1)**2 - & + _rA(I-1,J ,bi,bj) * em(I-1,J )**2 - & + _rA(I ,J-1,bi,bj) * em(I, J-1)**2 ) - & + 4. _d 0*e12(I,J,bi,bj)**2 + & sumNorm * recip_rAz(i,j,bi,bj) * + & ( _rA(i ,j ,bi,bj) * em(i, j )**2 + & + _rA(i-1,j-1,bi,bj) * em(i-1,j-1)**2 + & + _rA(i-1,j ,bi,bj) * em(i-1,j )**2 + & + _rA(i ,j-1,bi,bj) * em(i, j-1)**2 ) + & + 4. _d 0*e12(i,j,bi,bj)**2 etaDenZ = SQRT(MAX(deltaMinSq,etaDenZ)) - zetaMaxZ = ecc2*zetaZ(I,J,bi,bj) * ( deltaZ(I,J) - & - sumNorm * ( ep(I,J ) + ep(I-1,J ) - & + ep(I,J-1) + ep(I-1,J-1) ) + zetaMaxZ = ecc2*zetaZ(i,j,bi,bj) * ( deltaZ(i,j) + & - sumNorm * ( ep(i,j ) + ep(i-1,j ) + & + ep(i,j-1) + ep(i-1,j-1) ) & )/etaDenZ - seaice_shear (I,J) = - & 2. _d 0*MIN(zetaZ(I,J,bi,bj),zetaMaxZ) - & * 2. _d 0*e12(I,J,bi,bj) + seaice_shear (i,j) = + & 2. _d 0*MIN(zetaZ(i,j,bi,bj),zetaMaxZ) + & * 2. _d 0*e12(i,j,bi,bj) ENDDO ENDDO ELSE #else IF (.TRUE. ) THEN #endif /* SEAICE_ALLOW_TEM */ - DO J=0,sNy - DO I=0,sNx - seaice_div (I,J) = - & ( 2. _d 0 *zetaC(I,J)*ep(I,J) - pressC(I,J) - & ) * HEFFM(I,J,bi,bj) - seaice_tension(I,J) = 2. _d 0*zetaC(I,J) - & * em(I,J) * HEFFM(I,J,bi,bj) + DO j=0,sNy + DO i=0,sNx + seaice_div (i,j) = + & ( 2. _d 0 *zetaC(i,j)*ep(i,j) - pressC(i,j) + & ) * HEFFM(i,j,bi,bj) + seaice_tension(i,j) = 2. _d 0*zetaC(i,j) + & * em(i,j) * HEFFM(i,j,bi,bj) ENDDO ENDDO - DO J=1,sNy+1 - DO I=1,sNx+1 - seaice_shear (I,J) = - & 2. _d 0*zetaZ(I,J,bi,bj)*e12(I,J,bi,bj) + DO j=1,sNy+1 + DO i=1,sNx+1 + seaice_shear (i,j) = + & 2. _d 0*zetaZ(i,j,bi,bj)*e12(i,j,bi,bj) ENDDO ENDDO ENDIF @@ -576,98 +568,94 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C first step stress equations C #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE denom1(:,:,bi,bj) = comlev1_bibj_evp, -CADJ & key=iicekey, byte=isbyte -CADJ STORE denom2(:,:,bi,bj) = comlev1_bibj_evp, -CADJ & key=iicekey, byte=isbyte +CADJ STORE denom1(:,:,bi,bj) = comlev1_bibj_evp, key=tkey, byte=isbyte +CADJ STORE denom2(:,:,bi,bj) = comlev1_bibj_evp, key=tkey, byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( useAdaptiveEVP ) THEN DO j=0,sNy DO i=0,sNx - denom1(I,J,bi,bj) = 1. _d 0 / evpAlphaC(I,J,bi,bj) - denom2(I,J,bi,bj) = denom1(I,J,bi,bj) + denom1(i,j,bi,bj) = 1. _d 0 / evpAlphaC(i,j,bi,bj) + denom2(i,j,bi,bj) = denom1(i,j,bi,bj) ENDDO ENDDO ENDIF DO j=0,sNy DO i=0,sNx C sigma1 and sigma2 are computed on C points - seaice_sigma1 (I,J,bi,bj) = ( seaice_sigma1 (I,J,bi,bj) - & * ( evpAlphaC(I,J,bi,bj) - evpRevFac ) - & + seaice_div(I,J) - & ) * denom1(I,J,bi,bj) - & *HEFFM(I,J,bi,bj) - seaice_sigma2 (I,J,bi,bj) = ( seaice_sigma2 (I,J,bi,bj) - & * ( evpAlphaC(I,J,bi,bj) - evpRevFac ) - & + seaice_tension(I,J)*recip_evpRevFac - & ) * denom2(I,J,bi,bj) - & *HEFFM(I,J,bi,bj) + seaice_sigma1 (i,j,bi,bj) = ( seaice_sigma1 (i,j,bi,bj) + & * ( evpAlphaC(i,j,bi,bj) - evpRevFac ) + & + seaice_div(i,j) + & ) * denom1(i,j,bi,bj) + & *HEFFM(i,j,bi,bj) + seaice_sigma2 (i,j,bi,bj) = ( seaice_sigma2 (i,j,bi,bj) + & * ( evpAlphaC(i,j,bi,bj) - evpRevFac ) + & + seaice_tension(i,j)*recip_evpRevFac + & ) * denom2(i,j,bi,bj) + & *HEFFM(i,j,bi,bj) #ifdef SEAICE_EVP_ELIMINATE_UNDERFLOWS C Code to avoid very small numbers that can degrade performance. C Many compilers can handle this more efficiently with the help of C a flag (copied from CICE after correspondence with Elizabeth Hunke) - seaice_sigma1(I,J,bi,bj) = SIGN(MAX( - & ABS( seaice_sigma1(I,J,bi,bj) ), SEAICE_EPS ), - & seaice_sigma1(I,J,bi,bj) ) - seaice_sigma2(I,J,bi,bj) = SIGN(MAX( - & ABS( seaice_sigma2(I,J,bi,bj) ), SEAICE_EPS ), - & seaice_sigma2(I,J,bi,bj) ) + seaice_sigma1(i,j,bi,bj) = SIGN(MAX( + & ABS( seaice_sigma1(i,j,bi,bj) ), SEAICE_EPS ), + & seaice_sigma1(i,j,bi,bj) ) + seaice_sigma2(i,j,bi,bj) = SIGN(MAX( + & ABS( seaice_sigma2(i,j,bi,bj) ), SEAICE_EPS ), + & seaice_sigma2(i,j,bi,bj) ) #endif /* SEAICE_EVP_ELIMINATE_UNDERFLOWS */ C recover sigma11 and sigma22 - sig11(I,J) = 0.5 _d 0 * - & ( seaice_sigma1(I,J,bi,bj)+seaice_sigma2(I,J,bi,bj) ) - sig22(I,J) = 0.5 _d 0 * - & ( seaice_sigma1(I,J,bi,bj)-seaice_sigma2(I,J,bi,bj) ) + sig11(i,j) = 0.5 _d 0 * + & ( seaice_sigma1(i,j,bi,bj)+seaice_sigma2(i,j,bi,bj) ) + sig22(i,j) = 0.5 _d 0 * + & ( seaice_sigma1(i,j,bi,bj)-seaice_sigma2(i,j,bi,bj) ) ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE denom2 (:,:,bi,bj) = comlev1_bibj_evp, -CADJ & key=iicekey, byte=isbyte -CADJ STORE evpAlphaZ(:,:,bi,bj) = comlev1_bibj_evp, -CADJ & key=iicekey, byte=isbyte +CADJ STORE denom2 (:,:,bi,bj) = comlev1_bibj_evp,key=tkey,byte=isbyte +CADJ STORE evpAlphaZ(:,:,bi,bj) = comlev1_bibj_evp,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C sigma12 is computed on Z points IF ( useAdaptiveEVP ) THEN DO j=1,sNy+1 DO i=1,sNx+1 - evpAlphaZ(I,J,bi,bj) = 0.25 _d 0 * - & ( evpAlphaC(I, J,bi,bj)+evpAlphaC(I-1,J-1,bi,bj) - & + evpAlphaC(I-1,J,bi,bj)+evpAlphaC(I, J-1,bi,bj) ) - denom2(I,J,bi,bj) = 1. _d 0 / evpAlphaZ(I,J,bi,bj) + evpAlphaZ(i,j,bi,bj) = 0.25 _d 0 * + & ( evpAlphaC(i, j,bi,bj)+evpAlphaC(i-1,j-1,bi,bj) + & + evpAlphaC(i-1,j,bi,bj)+evpAlphaC(i, j-1,bi,bj) ) + denom2(i,j,bi,bj) = 1. _d 0 / evpAlphaZ(i,j,bi,bj) ENDDO ENDDO ENDIF DO j=1,sNy+1 DO i=1,sNx+1 - seaice_sigma12(I,J,bi,bj) = ( seaice_sigma12(I,J,bi,bj) - & * ( evpAlphaZ(I,J,bi,bj) - evpRevFac ) - & + seaice_shear(I,J)*recip_evpRevFac - & ) * denom2(I,J,bi,bj) + seaice_sigma12(i,j,bi,bj) = ( seaice_sigma12(i,j,bi,bj) + & * ( evpAlphaZ(i,j,bi,bj) - evpRevFac ) + & + seaice_shear(i,j)*recip_evpRevFac + & ) * denom2(i,j,bi,bj) #ifdef SEAICE_EVP_ELIMINATE_UNDERFLOWS - seaice_sigma12(I,J,bi,bj) = SIGN(MAX( - & ABS( seaice_sigma12(I,J,bi,bj) ), SEAICE_EPS ), - & seaice_sigma12(I,J,bi,bj) ) + seaice_sigma12(i,j,bi,bj) = SIGN(MAX( + & ABS( seaice_sigma12(i,j,bi,bj) ), SEAICE_EPS ), + & seaice_sigma12(i,j,bi,bj) ) #endif /* SEAICE_EVP_ELIMINATE_UNDERFLOWS */ ENDDO ENDDO C C compute divergence of stress tensor C - DO J=1,sNy - DO I=1,sNx - stressDivergenceX(I,J,bi,bj) = - & ( sig11(I ,J ) * _dyF(I ,J,bi,bj) - & - sig11(I-1,J ) * _dyF(I-1,J,bi,bj) - & + seaice_sigma12(I,J+1,bi,bj) * _dxV(I,J+1,bi,bj) - & - seaice_sigma12(I,J ,bi,bj) * _dxV(I,J ,bi,bj) - & ) * recip_rAw(I,J,bi,bj) - stressDivergenceY(I,J,bi,bj) = - & ( sig22(I,J ) * _dxF(I,J ,bi,bj) - & - sig22(I,J-1) * _dxF(I,J-1,bi,bj) - & + seaice_sigma12(I+1,J,bi,bj) * _dyU(I+1,J,bi,bj) - & - seaice_sigma12(I ,J,bi,bj) * _dyU(I ,J,bi,bj) - & ) * recip_rAs(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + stressDivergenceX(i,j,bi,bj) = + & ( sig11(i ,j ) * _dyF(i ,j,bi,bj) + & - sig11(i-1,j ) * _dyF(i-1,j,bi,bj) + & + seaice_sigma12(i,j+1,bi,bj) * _dxV(i,j+1,bi,bj) + & - seaice_sigma12(i,j ,bi,bj) * _dxV(i,j ,bi,bj) + & ) * recip_rAw(i,j,bi,bj) + stressDivergenceY(i,j,bi,bj) = + & ( sig22(i,j ) * _dxF(i,j ,bi,bj) + & - sig22(i,j-1) * _dxF(i,j-1,bi,bj) + & + seaice_sigma12(i+1,j,bi,bj) * _dyU(i+1,j,bi,bj) + & - seaice_sigma12(i ,j,bi,bj) * _dyU(i ,j,bi,bj) + & ) * recip_rAs(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -687,11 +675,11 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) sig12Pm1(i,j,bi,bj) = & seaice_sigma12(i,j,bi,bj)-sig12Pm1(i,j,bi,bj) sig11Pm1(i,j,bi,bj) = - & evpAlphaC(I,J,bi,bj) * sig11Pm1(i,j,bi,bj) + & evpAlphaC(i,j,bi,bj) * sig11Pm1(i,j,bi,bj) sig22Pm1(i,j,bi,bj) = - & evpAlphaC(I,J,bi,bj) * sig22Pm1(i,j,bi,bj) + & evpAlphaC(i,j,bi,bj) * sig22Pm1(i,j,bi,bj) sig12Pm1(i,j,bi,bj) = - & evpAlphaZ(I,J,bi,bj) * sig12Pm1(i,j,bi,bj) + & evpAlphaZ(i,j,bi,bj) * sig12Pm1(i,j,bi,bj) ENDDO ENDDO IF ( .NOT. SEAICEscaleSurfStress ) THEN @@ -725,10 +713,8 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) ENDIF #endif /* ALLOW_SEAICE_EVP_RESIDUAL */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE stressDivergenceX = comlev1_evp, -CADJ & key = ikeyloc, byte = isbyte -CADJ STORE stressDivergenceY = comlev1_evp, -CADJ & key = ikeyloc, byte = isbyte +CADJ STORE stressDivergenceX = comlev1_evp, key = evpkey, byte=isbyte +CADJ STORE stressDivergenceY = comlev1_evp, key = evpkey, byte=isbyte # ifdef SEAICE_DYN_STABLE_ADJOINT Cgf zero out adjoint fields to stabilize pkg/seaice dyna. adjoint CALL ZERO_ADJ( 1, stressDivergenceX, myThid) @@ -744,7 +730,7 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) O DWATN, I iEVPstep, myTime, myIter, myThid ) #ifdef SEAICE_ALLOW_BOTTOMDRAG - IF (SEAICEbasalDragK2.GT.0. _d 0) CALL SEAICE_BOTTOMDRAG_COEFFS( + CALL SEAICE_BOTTOMDRAG_COEFFS( I uIce, vIce, HEFFM, #ifdef SEAICE_ITD I HEFFITD, AREAITD, AREA, @@ -757,8 +743,8 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C over open water, all terms that contain sea ice mass drop out and C the balance is determined by the atmosphere-ice and ice-ocean stress; C the staggering of uIce and vIce can cause stripes in the open ocean @@ -767,8 +753,8 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C over open ocean, u/vIce do not advect anything, so that the associated C error is small and most likely only confined to the ice edge but may C propagate into the ice covered regions. - locMaskU = seaiceMassU(I,J,bi,bj) - locMaskV = seaiceMassV(I,J,bi,bj) + locMaskU = seaiceMassU(i,j,bi,bj) + locMaskV = seaiceMassV(i,j,bi,bj) IF ( locMaskU .NE. 0. _d 0 ) locMaskU = 1. _d 0 IF ( locMaskV .NE. 0. _d 0 ) locMaskV = 1. _d 0 C to recover old results replace the above lines with the line below @@ -776,49 +762,49 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C locMaskV = 1. _d 0 C set up anti symmetric drag force and add in ice ocean stress C ( remember to average to correct velocity points ) - FORCEX(I,J,bi,bj)=FORCEX0(I,J,bi,bj)+ - & ( 0.5 _d 0 * ( DWATN(I,J,bi,bj)+DWATN(I-1,J,bi,bj) ) * - & COSWAT * uVel(I,J,kSrf,bi,bj) - & - SIGN(SINWAT, _fCori(I,J,bi,bj))* 0.5 _d 0 * - & ( DWATN(I ,J,bi,bj) * 0.5 _d 0 * - & (vVel(I ,J ,kSrf,bi,bj)-vIce(I ,J ,bi,bj) - & +vVel(I ,J+1,kSrf,bi,bj)-vIce(I ,J+1,bi,bj)) - & + DWATN(I-1,J,bi,bj) * 0.5 _d 0 * - & (vVel(I-1,J ,kSrf,bi,bj)-vIce(I-1,J ,bi,bj) - & +vVel(I-1,J+1,kSrf,bi,bj)-vIce(I-1,J+1,bi,bj)) - & )*locMaskU ) * areaW(I,J,bi,bj) - FORCEY(I,J,bi,bj)=FORCEY0(I,J,bi,bj)+ - & ( 0.5 _d 0 * ( DWATN(I,J,bi,bj)+DWATN(I,J-1,bi,bj) ) * - & COSWAT * vVel(I,J,kSrf,bi,bj) - & + SIGN(SINWAT, _fCori(I,J,bi,bj)) * 0.5 _d 0 * - & ( DWATN(I,J ,bi,bj) * 0.5 _d 0 * - & (uVel(I ,J ,kSrf,bi,bj)-uIce(I ,J ,bi,bj) - & +uVel(I+1,J ,kSrf,bi,bj)-uIce(I+1,J ,bi,bj)) - & + DWATN(I,J-1,bi,bj) * 0.5 _d 0 * - & (uVel(I ,J-1,kSrf,bi,bj)-uIce(I ,J-1,bi,bj) - & +uVel(I+1,J-1,kSrf,bi,bj)-uIce(I+1,J-1,bi,bj)) - & )*locMaskV ) * areaS(I,J,bi,bj) + FORCEX(i,j,bi,bj)=FORCEX0(i,j,bi,bj)+ + & ( 0.5 _d 0 * ( DWATN(i,j,bi,bj)+DWATN(i-1,j,bi,bj) ) * + & COSWAT * uVel(i,j,kSrf,bi,bj) + & - SIGN(SINWAT, _fCori(i,j,bi,bj))* 0.5 _d 0 * + & ( DWATN(i ,j,bi,bj) * 0.5 _d 0 * + & (vVel(i ,j ,kSrf,bi,bj)-vIce(i ,j ,bi,bj) + & +vVel(i ,j+1,kSrf,bi,bj)-vIce(i ,j+1,bi,bj)) + & + DWATN(i-1,j,bi,bj) * 0.5 _d 0 * + & (vVel(i-1,j ,kSrf,bi,bj)-vIce(i-1,j ,bi,bj) + & +vVel(i-1,j+1,kSrf,bi,bj)-vIce(i-1,j+1,bi,bj)) + & )*locMaskU ) * areaW(i,j,bi,bj) + FORCEY(i,j,bi,bj)=FORCEY0(i,j,bi,bj)+ + & ( 0.5 _d 0 * ( DWATN(i,j,bi,bj)+DWATN(i,j-1,bi,bj) ) * + & COSWAT * vVel(i,j,kSrf,bi,bj) + & + SIGN(SINWAT, _fCori(i,j,bi,bj)) * 0.5 _d 0 * + & ( DWATN(i,j ,bi,bj) * 0.5 _d 0 * + & (uVel(i ,j ,kSrf,bi,bj)-uIce(i ,j ,bi,bj) + & +uVel(i+1,j ,kSrf,bi,bj)-uIce(i+1,j ,bi,bj)) + & + DWATN(i,j-1,bi,bj) * 0.5 _d 0 * + & (uVel(i ,j-1,kSrf,bi,bj)-uIce(i ,j-1,bi,bj) + & +uVel(i+1,j-1,kSrf,bi,bj)-uIce(i+1,j-1,bi,bj)) + & )*locMaskV ) * areaS(i,j,bi,bj) C coriols terms - FORCEX(I,J,bi,bj)=FORCEX(I,J,bi,bj) + 0.5 _d 0*( - & seaiceMassC(I ,J,bi,bj) * _fCori(I ,J,bi,bj) - & * 0.5 _d 0*( vIce(I ,J,bi,bj)+vIce(I ,J+1,bi,bj) ) - & + seaiceMassC(I-1,J,bi,bj) * _fCori(I-1,J,bi,bj) - & * 0.5 _d 0*( vIce(I-1,J,bi,bj)+vIce(I-1,J+1,bi,bj) ) + FORCEX(i,j,bi,bj)=FORCEX(i,j,bi,bj) + 0.5 _d 0*( + & seaiceMassC(i ,j,bi,bj) * _fCori(i ,j,bi,bj) + & * 0.5 _d 0*( vIce(i ,j,bi,bj)+vIce(i ,j+1,bi,bj) ) + & + seaiceMassC(i-1,j,bi,bj) * _fCori(i-1,j,bi,bj) + & * 0.5 _d 0*( vIce(i-1,j,bi,bj)+vIce(i-1,j+1,bi,bj) ) & ) - FORCEY(I,J,bi,bj)=FORCEY(I,J,bi,bj) - 0.5 _d 0*( - & seaiceMassC(I,J ,bi,bj) * _fCori(I,J ,bi,bj) - & * 0.5 _d 0*( uIce(I,J ,bi,bj)+uIce(I+1, J,bi,bj) ) - & + seaiceMassC(I,J-1,bi,bj) * _fCori(I,J-1,bi,bj) - & * 0.5 _d 0*( uIce(I,J-1,bi,bj)+uIce(I+1,J-1,bi,bj) ) + FORCEY(i,j,bi,bj)=FORCEY(i,j,bi,bj) - 0.5 _d 0*( + & seaiceMassC(i,j ,bi,bj) * _fCori(i,j ,bi,bj) + & * 0.5 _d 0*( uIce(i,j ,bi,bj)+uIce(i+1, j,bi,bj) ) + & + seaiceMassC(i,j-1,bi,bj) * _fCori(i,j-1,bi,bj) + & * 0.5 _d 0*( uIce(i,j-1,bi,bj)+uIce(i+1,j-1,bi,bj) ) & ) ENDDO ENDDO #ifdef SEAICE_ALLOW_MOM_ADVECTION IF ( SEAICEmomAdvection ) THEN - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - gUmom(I,J) = 0. _d 0 - gVmom(I,J) = 0. _d 0 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + gUmom(i,j) = 0. _d 0 + gVmom(i,j) = 0. _d 0 ENDDO ENDDO CALL SEAICE_MOM_ADVECTION( @@ -826,10 +812,10 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) I uIce, vIce, O gUmom, gVmom, I myTime, myIter, myThid ) - DO J=1,sNy - DO I=1,sNx - FORCEX(I,J,bi,bj) = FORCEX(I,J,bi,bj) + gUmom(I,J) - FORCEY(I,J,bi,bj) = FORCEY(I,J,bi,bj) + gVmom(I,J) + DO j=1,sNy + DO i=1,sNx + FORCEX(i,j,bi,bj) = FORCEX(i,j,bi,bj) + gUmom(i,j) + FORCEY(i,j,bi,bj) = FORCEY(i,j,bi,bj) + gVmom(i,j) ENDDO ENDDO ENDIF @@ -838,52 +824,52 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C step momentum equations with ice-ocean stress term treated implicitly C IF ( useAdaptiveEVP ) THEN - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C compute and adjust parameters that are constant otherwise - evpBetaU(I,J,bi,bj) = 0.5 _d 0*(evpAlphaC(I-1,J,bi,bj) - & +evpAlphaC(I, J,bi,bj)) - evpBetaV(I,J,bi,bj) = 0.5 _d 0*(evpAlphaC(I,J-1,bi,bj) - & +evpAlphaC(I,J, bi,bj)) + evpBetaU(i,j,bi,bj) = 0.5 _d 0*(evpAlphaC(i-1,j,bi,bj) + & +evpAlphaC(i, j,bi,bj)) + evpBetaV(i,j,bi,bj) = 0.5 _d 0*(evpAlphaC(i,j-1,bi,bj) + & +evpAlphaC(i,j, bi,bj)) ENDDO ENDDO ENDIF - DO J=1,sNy - DO I=1,sNx - betaFacU = evpBetaU(I,J,bi,bj)*recip_deltaT - betaFacV = evpBetaV(I,J,bi,bj)*recip_deltaT + DO j=1,sNy + DO i=1,sNx + betaFacU = evpBetaU(i,j,bi,bj)*recip_deltaT + betaFacV = evpBetaV(i,j,bi,bj)*recip_deltaT tmp = evpStarFac*recip_deltaT betaFacP1V = betaFacV + tmp betaFacP1U = betaFacU + tmp - denomU = seaiceMassU(I,J,bi,bj)*betaFacP1U - & + 0.5 _d 0*( DWATN(I,J,bi,bj) + DWATN(I-1,J,bi,bj) ) - & * COSWAT * areaW(I,J,bi,bj) - denomV = seaiceMassV(I,J,bi,bj)*betaFacP1V - & + 0.5 _d 0*( DWATN(I,J,bi,bj) + DWATN(I,J-1,bi,bj) ) - & * COSWAT * areaS(I,J,bi,bj) + denomU = seaiceMassU(i,j,bi,bj)*betaFacP1U + & + 0.5 _d 0*( DWATN(i,j,bi,bj) + DWATN(i-1,j,bi,bj) ) + & * COSWAT * areaW(i,j,bi,bj) + denomV = seaiceMassV(i,j,bi,bj)*betaFacP1V + & + 0.5 _d 0*( DWATN(i,j,bi,bj) + DWATN(i,j-1,bi,bj) ) + & * COSWAT * areaS(i,j,bi,bj) #ifdef SEAICE_ALLOW_BOTTOMDRAG - denomU = denomU + areaW(I,J,bi,bj) - & * 0.5 _d 0*( CbotC(I,J,bi,bj) + CbotC(I-1,J,bi,bj) ) - denomV = denomV + areaS(I,J,bi,bj) - & * 0.5 _d 0*( CbotC(I,J,bi,bj) + CbotC(I,J-1,bi,bj) ) + denomU = denomU + areaW(i,j,bi,bj) + & * 0.5 _d 0*( CbotC(i,j,bi,bj) + CbotC(i-1,j,bi,bj) ) + denomV = denomV + areaS(i,j,bi,bj) + & * 0.5 _d 0*( CbotC(i,j,bi,bj) + CbotC(i,j-1,bi,bj) ) #endif /* SEAICE_ALLOW_BOTTOMDRAG */ IF ( denomU .EQ. 0. _d 0 ) denomU = 1. _d 0 IF ( denomV .EQ. 0. _d 0 ) denomV = 1. _d 0 - uIce(I,J,bi,bj) = seaiceMaskU(I,J,bi,bj) * - & ( seaiceMassU(I,J,bi,bj)*betaFacU - & * uIce(I,J,bi,bj) - & + seaiceMassU(I,J,bi,bj)*recip_deltaT*evpStarFac - & * uIceNm1(I,J,bi,bj) - & + FORCEX(I,J,bi,bj) - & + stressDivergenceX(I,J,bi,bj) ) / denomU - vIce(I,J,bi,bj) = seaiceMaskV(I,J,bi,bj) * - & ( seaiceMassV(I,J,bi,bj)*betaFacV - & * vIce(I,J,bi,bj) - & + seaiceMassV(I,J,bi,bj)*recip_deltaT*evpStarFac - & * vIceNm1(I,J,bi,bj) - & + FORCEY(I,J,bi,bj) - & + stressDivergenceY(I,J,bi,bj) ) / denomV + uIce(i,j,bi,bj) = seaiceMaskU(i,j,bi,bj) * + & ( seaiceMassU(i,j,bi,bj)*betaFacU + & * uIce(i,j,bi,bj) + & + seaiceMassU(i,j,bi,bj)*recip_deltaT*evpStarFac + & * uIceNm1(i,j,bi,bj) + & + FORCEX(i,j,bi,bj) + & + stressDivergenceX(i,j,bi,bj) ) / denomU + vIce(i,j,bi,bj) = seaiceMaskV(i,j,bi,bj) * + & ( seaiceMassV(i,j,bi,bj)*betaFacV + & * vIce(i,j,bi,bj) + & + seaiceMassV(i,j,bi,bj)*recip_deltaT*evpStarFac + & * vIceNm1(i,j,bi,bj) + & + FORCEY(i,j,bi,bj) + & + stressDivergenceY(i,j,bi,bj) ) / denomV C-- to change results of lab_sea.hb87 test exp. (only preserve 2 digits for cg2d) c uIce(i,j,bi,bj) = uIceNm1(i,j,bi,bj) c & +( uIce(i,j,bi,bj) - uIceNm1(i,j,bi,bj) ) @@ -907,8 +893,8 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uIce = comlev1_evp, key = ikeyloc, byte = isbyte -CADJ STORE vIce = comlev1_evp, key = ikeyloc, byte = isbyte +CADJ STORE uIce = comlev1_evp, key = evpkey, byte = isbyte +CADJ STORE vIce = comlev1_evp, key = evpkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL EXCH_UV_XY_RL(uIce,vIce,.TRUE.,myThid) @@ -918,14 +904,14 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) resTile(bi,bj) = 0. _d 0 - DO J=1,sNy - DO I=1,sNx - uIcePm1(I,J,bi,bj) = seaiceMaskU(I,J,bi,bj) * - & ( uIce(I,J,bi,bj)-uIcePm1(i,j,bi,bj) ) - & * evpBetaU(I,J,bi,bj) - vIcePm1(I,J,bi,bj) = seaiceMaskV(I,J,bi,bj) * - & ( vIce(I,J,bi,bj)-vIcePm1(i,j,bi,bj) ) - & * evpBetaV(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + uIcePm1(i,j,bi,bj) = seaiceMaskU(i,j,bi,bj) * + & ( uIce(i,j,bi,bj)-uIcePm1(i,j,bi,bj) ) + & * evpBetaU(i,j,bi,bj) + vIcePm1(i,j,bi,bj) = seaiceMaskV(i,j,bi,bj) * + & ( vIce(i,j,bi,bj)-vIcePm1(i,j,bi,bj) ) + & * evpBetaV(i,j,bi,bj) ENDDO ENDDO IF ( .NOT. SEAICEscaleSurfStress ) THEN @@ -933,16 +919,16 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) DO j=1,sNy DO i=1,sNx resTile(bi,bj) = resTile(bi,bj) + AREA(i,j,bi,bj) * - & ( uIcePm1(I,J,bi,bj)*uIcePm1(I,J,bi,bj) - & + vIcePm1(I,J,bi,bj)*vIcePm1(I,J,bi,bj) ) + & ( uIcePm1(i,j,bi,bj)*uIcePm1(i,j,bi,bj) + & + vIcePm1(i,j,bi,bj)*vIcePm1(i,j,bi,bj) ) ENDDO ENDDO ELSE DO j=1,sNy DO i=1,sNx resTile(bi,bj) = resTile(bi,bj) - & + uIcePm1(I,J,bi,bj)*uIcePm1(I,J,bi,bj) - & + vIcePm1(I,J,bi,bj)*vIcePm1(I,J,bi,bj) + & + uIcePm1(i,j,bi,bj)*uIcePm1(i,j,bi,bj) + & + vIcePm1(i,j,bi,bj)*vIcePm1(i,j,bi,bj) ENDDO ENDDO ENDIF @@ -974,7 +960,7 @@ SUBROUTINE SEAICE_EVP( myTime, myIter, myThid ) C end of the main time loop ENDDO -#endif /* SEAICE_ALLOW_DYNAMICS and SEAICE_CGRID and SEAICE_ALLOW_EVP */ +#endif /* SEAICE_CGRID and SEAICE_ALLOW_EVP */ RETURN END diff --git a/pkg/seaice/seaice_fgmres.F b/pkg/seaice/seaice_fgmres.F index 62be84caa4..8e0bfa5b86 100644 --- a/pkg/seaice/seaice_fgmres.F +++ b/pkg/seaice/seaice_fgmres.F @@ -523,7 +523,7 @@ SUBROUTINE SEAICE_FGMRES ( C C determine res. norm. and test for convergence C - hh(i,i,myThid) = c(i,myThid)*hh(i, i,myThid) + hh(i,i,myThid) = c(i,myThid)*hh(i, i,myThid) & + s(i,myThid)*hh(i1,i,myThid) ro = abs(rs(i1,myThid)) if (iout .gt. 0) then @@ -536,7 +536,7 @@ SUBROUTINE SEAICE_FGMRES ( CML The original code uses only im as the maximum allowed iterations, but CML I want no more than maxits iterations, so we change the code here. CML if (i .lt. im .and. (ro .gt. eps1(myThid))) goto 4 - if (i .lt. im .and. its .lt. maxits + if (i .lt. im .and. its .lt. maxits & .and. (ro .gt. eps1(myThid))) goto 4 C C now compute solution. first solve upper triangular system. diff --git a/pkg/seaice/seaice_freedrift.F b/pkg/seaice/seaice_freedrift.F index 2eaadedaff..328058d73e 100644 --- a/pkg/seaice/seaice_freedrift.F +++ b/pkg/seaice/seaice_freedrift.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP SUBROUTINE SEAICE_FREEDRIFT( myTime, myIter, myThid ) @@ -21,10 +18,6 @@ SUBROUTINE SEAICE_FREEDRIFT( myTime, myIter, myThid ) #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C === Routine arguments === C myTime :: Simulation time C myIter :: Simulation timestep number @@ -34,8 +27,7 @@ SUBROUTINE SEAICE_FREEDRIFT( myTime, myIter, myThid ) INTEGER myThid CEOP -#ifdef SEAICE_ALLOW_FREEDRIFT -#ifdef SEAICE_CGRID +#if ( defined SEAICE_CGRID && defined SEAICE_ALLOW_FREEDRIFT ) C === Local variables === INTEGER i, j, kSrf, bi, bj @@ -48,120 +40,124 @@ SUBROUTINE SEAICE_FREEDRIFT( myTime, myIter, myThid ) _RL uice_cntr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vice_cntr(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - kSrf=1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C initialize fields: C ================== - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - uice_fd(i,j,bi,bj)=0. _d 0 - vice_fd(i,j,bi,bj)=0. _d 0 - uice_cntr(i,j,bi,bj)=0. _d 0 - Vice_cntr(i,j,bi,bj)=0. _d 0 - ENDDO + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + uice_fd(i,j,bi,bj)=0. _d 0 + vice_fd(i,j,bi,bj)=0. _d 0 + uice_cntr(i,j,bi,bj)=0. _d 0 + Vice_cntr(i,j,bi,bj)=0. _d 0 ENDDO ENDDO ENDDO + ENDDO - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1,sNy - DO i=1,sNx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1,sNy + DO i=1,sNx C preliminary computations: C ========================= C air-ice stress at cell center - taux_onIce_cntr=HALF* - & (FORCEX0(i,j,bi,bj)+FORCEX0(i+1,j,bi,bj)) - tauy_onIce_cntr=HALF* - & (FORCEY0(i,j,bi,bj)+FORCEY0(i,j+1,bi,bj)) + taux_onIce_cntr=HALF* + & (FORCEX0(i,j,bi,bj)+FORCEX0(i+1,j,bi,bj)) + tauy_onIce_cntr=HALF* + & (FORCEY0(i,j,bi,bj)+FORCEY0(i,j+1,bi,bj)) C mass of ice per unit area (kg/m2) times coriolis f - mIceCor=SEAICE_rhoIce*HEFF(i,j,bi,bj)*_fCori(I,J,bi,bj) + mIceCor=SEAICE_rhoIce*HEFF(i,j,bi,bj)*_fCori(i,j,bi,bj) C ocean velocity at cell center - uvel_cntr=HALF*(uvel(i,j,kSrf,bi,bj)+uvel(i+1,j,kSrf,bi,bj)) - vvel_cntr=HALF*(vvel(i,j,kSrf,bi,bj)+vvel(i,j+1,kSrf,bi,bj)) + uvel_cntr=HALF*(uvel(i,j,kSrf,bi,bj)+uvel(i+1,j,kSrf,bi,bj)) + vvel_cntr=HALF*(vvel(i,j,kSrf,bi,bj)+vvel(i,j+1,kSrf,bi,bj)) C right hand side of free drift equation: - rhs_x= -taux_onIce_cntr -mIceCor*vvel_cntr - rhs_y= -tauy_onIce_cntr +mIceCor*uvel_cntr + rhs_x= -taux_onIce_cntr -mIceCor*vvel_cntr + rhs_y= -tauy_onIce_cntr +mIceCor*uvel_cntr C norm of angle of rhs - tmpscal1=rhs_x*rhs_x + rhs_y*rhs_y - IF ( tmpscal1.GT.ZERO ) THEN - rhs_n=SQRT( rhs_x*rhs_x + rhs_y*rhs_y ) - rhs_a=ATAN2(rhs_y,rhs_x) - ELSE - rhs_n=0. _d 0 - rhs_a=0. _d 0 - ENDIF + tmpscal1=rhs_x*rhs_x + rhs_y*rhs_y + IF ( tmpscal1.GT.ZERO ) THEN + rhs_n=SQRT( rhs_x*rhs_x + rhs_y*rhs_y ) + rhs_a=ATAN2(rhs_y,rhs_x) + ELSE + rhs_n=0. _d 0 + rhs_a=0. _d 0 + ENDIF C solve for norm: C =============== - IF ( YC(I,J,bi,bj) .LT. ZERO ) THEN - tmpscal1 = 1. _d 0 /rhoConst/SEAICE_waterDrag_south - ELSE - tmpscal1 = 1. _d 0 /rhoConst/SEAICE_waterDrag - ENDIF + IF ( YC(i,j,bi,bj) .LT. ZERO ) THEN + tmpscal1 = 1. _d 0 /rhoConst/SEAICE_waterDrag_south + ELSE + tmpscal1 = 1. _d 0 /rhoConst/SEAICE_waterDrag + ENDIF C polynomial coefficients - tmpscal2= tmpscal1*tmpscal1*mIceCor*mIceCor - tmpscal3= tmpscal1*tmpscal1*rhs_n*rhs_n + tmpscal2= tmpscal1*tmpscal1*mIceCor*mIceCor + tmpscal3= tmpscal1*tmpscal1*rhs_n*rhs_n C discriminant - tmpscal4=tmpscal2*tmpscal2+4. _d 0*tmpscal3 - IF ( tmpscal3.GT.ZERO ) THEN - sol_n=SQRT(HALF*(SQRT(tmpscal4)-tmpscal2)) - ELSE - sol_n=0. _d 0 - ENDIF + tmpscal4=tmpscal2*tmpscal2+4. _d 0*tmpscal3 + IF ( tmpscal3.GT.ZERO ) THEN + sol_n=SQRT(HALF*(SQRT(tmpscal4)-tmpscal2)) + ELSE + sol_n=0. _d 0 + ENDIF C solve for angle: C ================ - IF ( YC(I,J,bi,bj) .LT. ZERO ) THEN - tmpscal1 = SEAICE_waterDrag_south*rhoConst - ELSE - tmpscal1 = SEAICE_waterDrag*rhoConst - ENDIF - - tmpscal2= tmpscal1*sol_n*sol_n - tmpscal3= mIceCor*sol_n - - tmpscal4=tmpscal2*tmpscal2 + tmpscal3*tmpscal3 - IF ( tmpscal4.GT.ZERO ) THEN - sol_a=rhs_a-ATAN2(tmpscal3,tmpscal2) - ELSE - sol_a=0. _d 0 - ENDIF + IF ( YC(i,j,bi,bj) .LT. ZERO ) THEN + tmpscal1 = SEAICE_waterDrag_south*rhoConst + ELSE + tmpscal1 = SEAICE_waterDrag*rhoConst + ENDIF + + tmpscal2= tmpscal1*sol_n*sol_n + tmpscal3= mIceCor*sol_n + + tmpscal4=tmpscal2*tmpscal2 + tmpscal3*tmpscal3 + IF ( tmpscal4.GT.ZERO ) THEN + sol_a=rhs_a-ATAN2(tmpscal3,tmpscal2) + ELSE + sol_a=0. _d 0 + ENDIF C compute uice, vice at cell center: C ================================== - uice_cntr(i,j,bi,bj)=uvel_cntr-sol_n*COS(sol_a) - vice_cntr(i,j,bi,bj)=vvel_cntr-sol_n*SIN(sol_a) + uice_cntr(i,j,bi,bj)=uvel_cntr-sol_n*COS(sol_a) + vice_cntr(i,j,bi,bj)=vvel_cntr-sol_n*SIN(sol_a) - ENDDO ENDDO ENDDO ENDDO + ENDDO C interpolated to velocity points: C ================================ - CALL EXCH_UV_AGRID_3D_RL(uice_cntr,vice_cntr,.TRUE.,1,myThid) - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1,sNy - DO i=1,sNx - uice_fd(i,j,bi,bj)=HALF* - & (uice_cntr(i-1,j,bi,bj)+uice_cntr(i,j,bi,bj)) - vice_fd(i,j,bi,bj)=HALF* - & (vice_cntr(i,j-1,bi,bj)+vice_cntr(i,j,bi,bj)) - ENDDO + CALL EXCH_UV_AGRID_3D_RL(uice_cntr,vice_cntr,.TRUE.,1,myThid) + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1,sNy + DO i=1,sNx + uice_fd(i,j,bi,bj)=HALF* + & (uice_cntr(i-1,j,bi,bj)+uice_cntr(i,j,bi,bj)) + vice_fd(i,j,bi,bj)=HALF* + & (vice_cntr(i,j-1,bi,bj)+vice_cntr(i,j,bi,bj)) ENDDO ENDDO ENDDO + ENDDO - CALL EXCH_UV_XY_RL( uice_fd, vice_fd, .TRUE., myThid ) + CALL EXCH_UV_XY_RL( uice_fd, vice_fd, .TRUE., myThid ) C Apply masks (same/similar to seaice_evp.F/seaice_lsr.F) DO bj=myByLo(myThid),myByHi(myThid) @@ -175,7 +171,6 @@ SUBROUTINE SEAICE_FREEDRIFT( myTime, myIter, myThid ) ENDDO ENDDO -#endif /* SEAICE_CGRID */ -#endif /* SEAICE_ALLOW_FREEDRIFT */ +#endif /* SEAICE_CGRID and SEAICE_ALLOW_FREEDRIFT */ RETURN END diff --git a/pkg/seaice/seaice_get_dynforcing.F b/pkg/seaice/seaice_get_dynforcing.F index 8dce935a0d..441a4bc571 100644 --- a/pkg/seaice/seaice_get_dynforcing.F +++ b/pkg/seaice/seaice_get_dynforcing.F @@ -67,7 +67,6 @@ SUBROUTINE SEAICE_GET_DYNFORCING( INTEGER myThid CEOP -#ifdef SEAICE_CGRID C !LOCAL VARIABLES: C i,j,bi,bj :: Loop counters C ks :: vertical index of surface layer @@ -75,17 +74,20 @@ SUBROUTINE SEAICE_GET_DYNFORCING( INTEGER ks _RL COSWIN _RS SINWIN -#ifdef ALLOW_EXF - _RL U1, V1, AAA -#endif C CDAIR :: local wind stress coefficient (used twice) C oceTauX :: wind-stress over open-ocean (on Arakawa A-grid), X direction C oceTauY :: wind-stress over open-ocean (on Arakawa A-grid), Y direction _RL CDAIR (1-OLx:sNx+OLx,1-OLy:sNy+OLy) -#ifndef SEAICE_EXTERNAL_FLUXES +#ifdef ALLOW_EXF + _RL AAA + _RL uTmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL vTmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +# ifndef SEAICE_EXTERNAL_FLUXES + _RL U1, V1 _RL oceTauX(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL oceTauY(1-OLx:sNx+OLx,1-OLy:sNy+OLy) -#endif +# endif +#endif /* ALLOW_EXF */ #ifdef ALLOW_DIAGNOSTICS _RL locVar (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL locFrac @@ -93,6 +95,7 @@ SUBROUTINE SEAICE_GET_DYNFORCING( C-- surface level ks = 1 + IF ( usingPcoords ) ks = Nr C-- introduce turning angle (default is zero) SINWIN=SIN(SEAICE_airTurnAngle*deg2rad) COSWIN=COS(SEAICE_airTurnAngle*deg2rad) @@ -144,115 +147,62 @@ SUBROUTINE SEAICE_GET_DYNFORCING( # else /* SEAICE_EXTERNAL_FLUXES */ IF ( useEXF ) THEN # endif /* SEAICE_EXTERNAL_FLUXES */ -C-- Now compute ice surface stress - IF (useRelativeWind) THEN +C make local copies of wind field + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + uTmp(i,j)=uwind(i,j,bi,bj) + vTmp(i,j)=vwind(i,j,bi,bj) + ENDDO + ENDDO + IF ( useRelativeWind ) THEN +C subtract ice velocities from each component wind-speed DO j=1-OLy,sNy+OLy-1 DO i=1-OLx,sNx+OLx-1 - U1=UWIND(i,j,bi,bj) - & + 0.5 _d 0 * (uVel(i,j,ks,bi,bj)+uVel(i+1,j,ks,bi,bj)) + uTmp(i,j)=uwind(i,j,bi,bj) & - 0.5 _d 0 * (uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj)) - V1=VWIND(i,j,bi,bj) - & + 0.5 _d 0 * (vVel(i,j,ks,bi,bj)+vVel(i,j+1,ks,bi,bj)) + vTmp(i,j)=vwind(i,j,bi,bj) & - 0.5 _d 0 * (vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)) - AAA=U1**2+V1**2 - IF ( AAA .LE. SEAICE_EPS_SQ ) THEN - AAA=SEAICE_EPS - ELSE - AAA=SQRT(AAA) - ENDIF - IF ( yC(i,j,bi,bj) .LT. ZERO ) THEN - CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag_south*AAA - ELSE - CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag*AAA - ENDIF - ENDDO - ENDDO - ELSE - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - U1=UWIND(i,j,bi,bj) - V1=VWIND(i,j,bi,bj) - AAA=U1**2+V1**2 - IF ( AAA .LE. SEAICE_EPS_SQ ) THEN - AAA=SEAICE_EPS - ELSE - AAA=SQRT(AAA) - ENDIF - IF ( yC(i,j,bi,bj) .LT. ZERO ) THEN - CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag_south*AAA - ELSE - CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag*AAA - ENDIF ENDDO ENDDO ENDIF - IF (useRelativeWind) THEN - DO j=1-OLy+1,sNy+OLy-1 - DO i=1-OLx+1,sNx+OLx-1 -C interpolate to U points - taux(i,j,bi,bj)= 0.5 _d 0 * - & ( CDAIR(i,j)*(COSWIN* - & (uWind(i,j,bi,bj) - & +0.5 _d 0*(uVel(i,j,ks,bi,bj)+uVel(i+1,j,ks,bi,bj)) - & -0.5 _d 0*(uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj))) - & -SIGN(SINWIN, _fCori(i,j,bi,bj))* - & (vWind(i,j,bi,bj) - & +0.5 _d 0*(vVel(i,j,ks,bi,bj)+vVel(i,j+1,ks,bi,bj)) - & -0.5 _d 0*(vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)))) - & +CDAIR(i-1,j)*(COSWIN* - & (uWind(i-1,j,bi,bj) - & +0.5 _d 0*(uVel(i-1,j,ks,bi,bj)+uVel(i,j,ks,bi,bj)) - & -0.5 _d 0*(uIce(i-1,j,bi,bj)+uIce(i,j,bi,bj))) - & -SIGN(SINWIN, _fCori(i-1,j,bi,bj))* - & (vWind(i-1,j,bi,bj) - & +0.5 _d 0*(vVel(i-1,j,ks,bi,bj)+vVel(i-1,j+1,ks,bi,bj)) - & -0.5 _d 0*(vIce(i-1,j,bi,bj)+vIce(i-1,j+1,bi,bj)))) - & )*SIMaskU(i,j,bi,bj) -C interpolate to V points - tauy(i,j,bi,bj)= 0.5 _d 0 * - & ( CDAIR(i,j)*(SIGN(SINWIN, _fCori(i,j,bi,bj))* - & (uWind(i,j,bi,bj) - & +0.5 _d 0*(uVel(i,j,ks,bi,bj)+uVel(i+1,j,ks,bi,bj)) - & -0.5 _d 0*(uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj))) - & +COSWIN* - & (vWind(i,j,bi,bj) - & +0.5 _d 0*(vVel(i,j,ks,bi,bj)+vVel(i,j+1,ks,bi,bj)) - & -0.5 _d 0*(vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)))) - & +CDAIR(i,j-1)*(SIGN(SINWIN, _fCori(i,j-1,bi,bj))* - & (uWind(i,j-1,bi,bj) - & +0.5 _d 0*(uVel(i,j-1,ks,bi,bj)+uVel(i+1,j-1,ks,bi,bj)) - & -0.5 _d 0*(uIce(i,j-1,bi,bj)+uIce(i+1,j-1,bi,bj))) - & +COSWIN* - & (vWind(i,j-1,bi,bj) - & +0.5 _d 0*(vVel(i,j-1,ks,bi,bj)+vVel(i,j,ks,bi,bj)) - & -0.5 _d 0*(vIce(i,j-1,bi,bj)+vIce(i,j,bi,bj)))) - & )*SIMaskV(i,j,bi,bj) - ENDDO +C-- Now compute ice surface stress + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + AAA=uTmp(i,j)**2+vTmp(i,j)**2 + IF ( AAA .LE. SEAICE_EPS_SQ ) THEN + AAA=SEAICE_EPS + ELSE + AAA=SQRT(AAA) + ENDIF + IF ( yC(i,j,bi,bj) .LT. ZERO ) THEN + CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag_south*AAA + ELSE + CDAIR(i,j) = SEAICE_rhoAir*SEAICE_drag*AAA + ENDIF ENDDO - ELSE - DO j=1-OLy+1,sNy+OLy - DO i=1-OLx+1,sNx+OLx + ENDDO + DO j=1-OLy+1,sNy+OLy + DO i=1-OLx+1,sNx+OLx C interpolate to U points - taux(i,j,bi,bj)=0.5 _d 0 * + taux(i,j,bi,bj)=0.5 _d 0 * & ( CDAIR(i ,j)*( - & COSWIN *uWind(i ,j,bi,bj) - & -SIGN(SINWIN, _fCori(i ,j,bi,bj))*vWind(i ,j,bi,bj) ) + & COSWIN *uTmp(i ,j) + & -SIGN(SINWIN, _fCori(i ,j,bi,bj))*vTmp(i ,j) ) & + CDAIR(i-1,j)*( - & COSWIN *uWind(i-1,j,bi,bj) - & -SIGN(SINWIN, _fCori(i-1,j,bi,bj))*vWind(i-1,j,bi,bj) ) + & COSWIN *uTmp(i-1,j) + & -SIGN(SINWIN, _fCori(i-1,j,bi,bj))*vTmp(i-1,j) ) & )*SIMaskU(i,j,bi,bj) C interpolate to V points - tauy(i,j,bi,bj)=0.5 _d 0 * + tauy(i,j,bi,bj)=0.5 _d 0 * & ( CDAIR(i,j )*( - & SIGN(SINWIN, _fCori(i,j ,bi,bj))*uWind(i,j ,bi,bj) - & +COSWIN*vWind(i,j ,bi,bj) ) + & SIGN(SINWIN, _fCori(i,j ,bi,bj))*uTmp(i,j ) + & +COSWIN *vTmp(i,j ) ) & + CDAIR(i,j-1)*( - & SIGN(SINWIN, _fCori(i,j-1,bi,bj))*uWind(i,j-1,bi,bj) - & +COSWIN*vWind(i,j-1,bi,bj) ) + & SIGN(SINWIN, _fCori(i,j-1,bi,bj))*uTmp(i,j-1) + & +COSWIN *vTmp(i,j-1) ) & )*SIMaskV(i,j,bi,bj) - ENDDO ENDDO - ENDIF + ENDDO ELSE #else /* ALLOW_EXF */ @@ -327,7 +277,5 @@ SUBROUTINE SEAICE_GET_DYNFORCING( ENDIF #endif /* ALLOW_DIAGNOSTICS */ -#endif /* SEAICE_CGRID */ - RETURN END diff --git a/pkg/seaice/seaice_growth.F b/pkg/seaice/seaice_growth.F index 06cbfe758b..03310c456a 100644 --- a/pkg/seaice/seaice_growth.F +++ b/pkg/seaice/seaice_growth.F @@ -96,9 +96,9 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) INTEGER i, j, bi, bj C number of surface interface layer INTEGER kSurface -C IT :: ice thickness category index (MULTICATEGORIES and ITD code) +C IT :: ice thickness category index (MULTICATEGORIES and ITD code) INTEGER IT -C msgBuf :: Informational/error message buffer +C msgBuf :: Informational/error message buffer #ifdef ALLOW_BALANCE_FLUXES CHARACTER*(MAX_LEN_MBUF) msgBuf #elif (defined (SEAICE_DEBUG)) @@ -125,6 +125,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) _RL area_reg_sq, hice_reg_sq C pathological cases thresholds _RL heffTooHeavy +C local copy of surface layer thickness in meters + _RL dzSurf C Helper variables: reciprocal of some constants _RL recip_multDim @@ -158,11 +160,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #endif #endif /* ALLOW_SITRACER */ #ifdef ALLOW_AUTODIFF_TAMC - INTEGER ilockey +C tkey :: tape key (depends on tiles) + INTEGER tkey #endif C== local arrays == -C-- TmixLoc :: ocean surface/mixed-layer temperature (in K) +C TmixLoc :: ocean surface/mixed-layer temperature (in K) _RL TmixLoc (1:sNx,1:sNy) #ifndef SEAICE_ITD @@ -174,7 +177,7 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C actual ice thickness (with lower limit only) Reciprocal _RL recip_heffActual (1:sNx,1:sNy) -C AREA_PRE :: hold sea-ice fraction field before any seaice-thermo update +C AREA_PRE :: hold sea-ice fraction field before any seaice-thermo update _RL AREApreTH (1:sNx,1:sNy) _RL HEFFpreTH (1:sNx,1:sNy) _RL HSNWpreTH (1:sNx,1:sNy) @@ -201,9 +204,11 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) _RL a_QbyATMmult_cover (1:sNx,1:sNy,nITD) _RL a_QSWbyATMmult_cover(1:sNx,1:sNy,nITD) _RL a_FWbySublimMult (1:sNx,1:sNy,nITD) -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) _RL greaseLayerThick (1:sNx,1:sNy) _RL d_HEFFbyGREASE (1:sNx,1:sNy) + _RL uRelW (1:sNx,1:sNy) + _RL vRelW (1:sNx,1:sNy) #endif #ifdef SEAICE_ITD _RL r_QbyATMmult_cover (1:sNx,1:sNy,nITD) @@ -273,23 +278,23 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #endif #ifdef SEAICE_ITD - _RL d_HEFFbySublim_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HSNWbySublim_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HEFFbyOCNonICE_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HSNWbyATMonSNW_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HEFFbyATMonOCN_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HEFFbyATMonOCN_cover_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HEFFbyATMonOCN_open_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HSNWbyRAIN_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HSNWbyOCNonSNW_ITD (1:sNx,1:sNy,1:nITD) - _RL d_HEFFbyFLOODING_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HEFFbySublim_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HSNWbySublim_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HEFFbyOCNonICE_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HSNWbyATMonSNW_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HEFFbyATMonOCN_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HEFFbyATMonOCN_cover_ITD(1:sNx,1:sNy,1:nITD) + _RL d_HEFFbyATMonOCN_open_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HSNWbyRAIN_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HSNWbyOCNonSNW_ITD (1:sNx,1:sNy,1:nITD) + _RL d_HEFFbyFLOODING_ITD (1:sNx,1:sNy,1:nITD) #endif #ifdef ALLOW_DIAGNOSTICS C ICE/SNOW stocks tendencies associated with the various melt/freeze processes - _RL d_AREAbyATM (1:sNx,1:sNy) - _RL d_AREAbyOCN (1:sNx,1:sNy) - _RL d_AREAbyICE (1:sNx,1:sNy) + _RL d_AREAbyATM (1:sNx,1:sNy) + _RL d_AREAbyOCN (1:sNx,1:sNy) + _RL d_AREAbyICE (1:sNx,1:sNy) C Helper variables for diagnostics _RL DIAGarrayA (1:sNx,1:sNy) _RL DIAGarrayB (1:sNx,1:sNy) @@ -310,10 +315,10 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #endif #ifdef ALLOW_SALT_PLUME - _RL localSPfrac (1:sNx,1:sNy) + _RL localSPfrac (1:sNx,1:sNy) #ifdef SALT_PLUME_IN_LEADS - _RL leadPlumeFraction (1:sNx,1:sNy) - _RL IceGrowthRateInLeads (1:sNx,1:sNy) + _RL leadPlumeFraction (1:sNx,1:sNy) + _RL IceGrowthRateInLeads(1:sNx,1:sNy) #endif /* SALT_PLUME_IN_LEADS */ #endif /* ALLOW_SALT_PLUME */ @@ -323,10 +328,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C =================PART 0: constants and initializations============= C =================================================================== - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN - kSurface = Nr + IF ( usingPCoords ) THEN + kSurface = Nr + dzSurf = drF(kSurface)*recip_rhoConst*recip_gravity ELSE - kSurface = 1 + kSurface = 1 + dzSurf = drF(kSurface) ENDIF C avoid unnecessary divisions in loops @@ -338,8 +345,7 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) recip_rhoIce = ONE / SEAICE_rhoIce C Cutoff for iceload - heffTooHeavy=drF(kSurface) / 5. _d 0 - + heffTooHeavy = dzSurf * 0.2 _d 0 C RATIO OF SEA ICE DENSITY to SNOW DENSITY ICE2SNOW = SEAICE_rhoIce/SEAICE_rhoSnow SNOW2ICE = ONE / ICE2SNOW @@ -393,110 +399,94 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iicekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C time scale of grease ice decline by solidification, C with 50% grease ice becoming solid pancake ice within 1 day: greaseDecayTime=1.44*86400. _d 0 C store position of 'grease' in tracer array iTrGrease=-1 DO iTr = 1, SItrNumInUse - if (SItrName(iTr).EQ.'grease') iTrGrease=iTr + IF (SItrName(iTr).EQ.'grease') iTrGrease=iTr ENDDO #endif C array initializations C ===================== - DO J=1,sNy - DO I=1,sNx - a_QbyATM_cover (I,J) = 0.0 _d 0 - a_QbyATM_open(I,J) = 0.0 _d 0 - r_QbyATM_cover (I,J) = 0.0 _d 0 - r_QbyATM_open (I,J) = 0.0 _d 0 + DO j=1,sNy + DO i=1,sNx + a_QbyATM_cover(i,j) = 0.0 _d 0 + a_QbyATM_open (i,j) = 0.0 _d 0 + r_QbyATM_cover(i,j) = 0.0 _d 0 + r_QbyATM_open (i,j) = 0.0 _d 0 - a_QSWbyATM_open (I,J) = 0.0 _d 0 - a_QSWbyATM_cover (I,J) = 0.0 _d 0 + a_QSWbyATM_open (i,j) = 0.0 _d 0 + a_QSWbyATM_cover(i,j) = 0.0 _d 0 - a_QbyOCN (I,J) = 0.0 _d 0 - r_QbyOCN (I,J) = 0.0 _d 0 + a_QbyOCN (i,j) = 0.0 _d 0 + r_QbyOCN (i,j) = 0.0 _d 0 #ifdef ALLOW_DIAGNOSTICS - d_AREAbyATM(I,J) = 0.0 _d 0 - d_AREAbyICE(I,J) = 0.0 _d 0 - d_AREAbyOCN(I,J) = 0.0 _d 0 + d_AREAbyATM(i,j) = 0.0 _d 0 + d_AREAbyICE(i,j) = 0.0 _d 0 + d_AREAbyOCN(i,j) = 0.0 _d 0 #endif - d_HEFFbyOCNonICE(I,J) = 0.0 _d 0 - d_HEFFbyATMonOCN(I,J) = 0.0 _d 0 - d_HEFFbyFLOODING(I,J) = 0.0 _d 0 + d_HEFFbyOCNonICE(i,j) = 0.0 _d 0 + d_HEFFbyATMonOCN(i,j) = 0.0 _d 0 + d_HEFFbyFLOODING(i,j) = 0.0 _d 0 - d_HEFFbyATMonOCN_open(I,J) = 0.0 _d 0 - d_HEFFbyATMonOCN_cover(I,J) = 0.0 _d 0 + d_HEFFbyATMonOCN_open(i,j) = 0.0 _d 0 + d_HEFFbyATMonOCN_cover(i,j)= 0.0 _d 0 - d_HSNWbyATMonSNW(I,J) = 0.0 _d 0 - d_HSNWbyOCNonSNW(I,J) = 0.0 _d 0 - d_HSNWbyRAIN(I,J) = 0.0 _d 0 - a_FWbySublim(I,J) = 0.0 _d 0 - r_FWbySublim(I,J) = 0.0 _d 0 - d_HEFFbySublim(I,J) = 0.0 _d 0 - d_HSNWbySublim(I,J) = 0.0 _d 0 + d_HSNWbyATMonSNW(i,j) = 0.0 _d 0 + d_HSNWbyOCNonSNW(i,j) = 0.0 _d 0 + d_HSNWbyRAIN(i,j) = 0.0 _d 0 + a_FWbySublim(i,j) = 0.0 _d 0 + r_FWbySublim(i,j) = 0.0 _d 0 + d_HEFFbySublim(i,j) = 0.0 _d 0 + d_HSNWbySublim(i,j) = 0.0 _d 0 #ifdef SEAICE_CAP_SUBLIM - latentHeatFluxMax(I,J) = 0.0 _d 0 + latentHeatFluxMax(i,j) = 0.0 _d 0 #endif - d_HFRWbyRAIN(I,J) = 0.0 _d 0 - tmparr1(I,J) = 0.0 _d 0 -#ifdef SEAICE_GREASE - greaseLayerThick(I,J) = 0.0 _d 0 - d_HEFFbyGREASE(I,J) = 0.0 _d 0 + d_HFRWbyRAIN(i,j) = 0.0 _d 0 + tmparr1(i,j) = 0.0 _d 0 +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) + greaseLayerThick(i,j) = 0.0 _d 0 + d_HEFFbyGREASE(i,j) = 0.0 _d 0 #endif DO IT=1,SEAICE_multDim - ticeInMult(I,J,IT) = 0.0 _d 0 - ticeOutMult(I,J,IT) = 0.0 _d 0 - a_QbyATMmult_cover(I,J,IT) = 0.0 _d 0 - a_QSWbyATMmult_cover(I,J,IT) = 0.0 _d 0 - a_FWbySublimMult(I,J,IT) = 0.0 _d 0 + ticeInMult(i,j,IT) = 0.0 _d 0 + ticeOutMult(i,j,IT) = 0.0 _d 0 + a_QbyATMmult_cover(i,j,IT) = 0.0 _d 0 + a_QSWbyATMmult_cover(i,j,IT) = 0.0 _d 0 + a_FWbySublimMult(i,j,IT) = 0.0 _d 0 #ifdef SEAICE_CAP_SUBLIM - latentHeatFluxMaxMult(I,J,IT) = 0.0 _d 0 + latentHeatFluxMaxMult(i,j,IT) = 0.0 _d 0 #endif #ifdef SEAICE_ITD - d_HEFFbySublim_ITD(I,J,IT) = 0.0 _d 0 - d_HSNWbySublim_ITD(I,J,IT) = 0.0 _d 0 - d_HEFFbyOCNonICE_ITD(I,J,IT) = 0.0 _d 0 - d_HSNWbyATMonSNW_ITD(I,J,IT) = 0.0 _d 0 - d_HEFFbyATMonOCN_ITD(I,J,IT) = 0.0 _d 0 - d_HEFFbyATMonOCN_cover_ITD(I,J,IT) = 0.0 _d 0 - d_HEFFbyATMonOCN_open_ITD(I,J,IT) = 0.0 _d 0 - d_HSNWbyRAIN_ITD(I,J,IT) = 0.0 _d 0 - d_HSNWbyOCNonSNW_ITD(I,J,IT) = 0.0 _d 0 - d_HEFFbyFLOODING_ITD(I,J,IT) = 0.0 _d 0 - r_QbyATMmult_cover(I,J,IT) = 0.0 _d 0 - r_FWbySublimMult(I,J,IT) = 0.0 _d 0 + d_HEFFbySublim_ITD(i,j,IT) = 0.0 _d 0 + d_HSNWbySublim_ITD(i,j,IT) = 0.0 _d 0 + d_HEFFbyOCNonICE_ITD(i,j,IT) = 0.0 _d 0 + d_HSNWbyATMonSNW_ITD(i,j,IT) = 0.0 _d 0 + d_HEFFbyATMonOCN_ITD(i,j,IT) = 0.0 _d 0 + d_HEFFbyATMonOCN_cover_ITD(i,j,IT) = 0.0 _d 0 + d_HEFFbyATMonOCN_open_ITD(i,j,IT) = 0.0 _d 0 + d_HSNWbyRAIN_ITD(i,j,IT) = 0.0 _d 0 + d_HSNWbyOCNonSNW_ITD(i,j,IT) = 0.0 _d 0 + d_HEFFbyFLOODING_ITD(i,j,IT) = 0.0 _d 0 + r_QbyATMmult_cover(i,j,IT) = 0.0 _d 0 + r_FWbySublimMult(i,j,IT) = 0.0 _d 0 C for lateral melt parameterization: - latMeltFrac(I,J,IT) = 0.0 _d 0 - latMeltRate(I,J,IT) = 0.0 _d 0 + latMeltFrac(i,j,IT) = 0.0 _d 0 + latMeltRate(i,j,IT) = 0.0 _d 0 #endif ENDDO ENDDO ENDDO -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - frWtrAtm(I,J,bi,bj) = 0.0 _d 0 - ENDDO - ENDDO -#endif C ===================================================================== C ===========PART 1: treat pathological cases (post advdiff)=========== @@ -506,39 +496,39 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C called before S/R seaice_growth C store regularized values of heff, hsnow, area at the onset of thermo. - DO J=1,sNy - DO I=1,sNx - HEFFpreTH(I,J)=HEFF(I,J,bi,bj) - HSNWpreTH(I,J)=HSNOW(I,J,bi,bj) - AREApreTH(I,J)=AREA(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + HEFFpreTH(i,j) = HEFF(i,j,bi,bj) + HSNWpreTH(i,j) = HSNOW(i,j,bi,bj) + AREApreTH(i,j) = AREA(i,j,bi,bj) #ifdef ALLOW_DIAGNOSTICS - DIAGarrayB(I,J) = AREA(I,J,bi,bj) - DIAGarrayC(I,J) = HEFF(I,J,bi,bj) - DIAGarrayD(I,J) = HSNOW(I,J,bi,bj) + DIAGarrayB(i,j) = AREA(i,j,bi,bj) + DIAGarrayC(i,j) = HEFF(i,j,bi,bj) + DIAGarrayD(i,j) = HSNOW(i,j,bi,bj) #endif #ifdef ALLOW_SITRACER - SItrHEFF(I,J,bi,bj,1)=HEFF(I,J,bi,bj) - SItrAREA(I,J,bi,bj,2)=AREA(I,J,bi,bj) + SItrHEFF(i,j,bi,bj,1)=HEFF(i,j,bi,bj) + SItrAREA(i,j,bi,bj,2)=AREA(i,j,bi,bj) #endif ENDDO ENDDO #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - HEFFITDpreTH(I,J,IT)=HEFFITD(I,J,IT,bi,bj) - HSNWITDpreTH(I,J,IT)=HSNOWITD(I,J,IT,bi,bj) - AREAITDpreTH(I,J,IT)=AREAITD(I,J,IT,bi,bj) + DO j=1,sNy + DO i=1,sNx + HEFFITDpreTH(i,j,IT)=HEFFITD(i,j,IT,bi,bj) + HSNWITDpreTH(i,j,IT)=HSNOWITD(i,j,IT,bi,bj) + AREAITDpreTH(i,j,IT)=AREAITD(i,j,IT,bi,bj) C keep track of areal and volume fraction of each ITD category - IF (AREA(I,J,bi,bj) .GT. ZERO) THEN - areaFracFactor(I,J,IT)=AREAITD(I,J,IT,bi,bj)/AREA(I,J,bi,bj) + IF (AREA(i,j,bi,bj) .GT. ZERO) THEN + areaFracFactor(i,j,IT)=AREAITD(i,j,IT,bi,bj)/AREA(i,j,bi,bj) ELSE C if there is no ice, potential growth starts in 1st category IF (IT .EQ. 1) THEN - areaFracFactor(I,J,IT)=ONE + areaFracFactor(i,j,IT)=ONE ELSE - areaFracFactor(I,J,IT)=ZERO + areaFracFactor(i,j,IT)=ZERO ENDIF ENDIF ENDDO @@ -547,16 +537,16 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef ALLOW_SITRACER C prepare SItrHEFF to be computed as cumulative sum DO iTr=2,5 - DO J=1,sNy - DO I=1,sNx - SItrHEFF(I,J,bi,bj,iTr)=ZERO + DO j=1,sNy + DO i=1,sNx + SItrHEFF(i,j,bi,bj,iTr)=ZERO ENDDO ENDDO ENDDO C prepare SItrAREA to be computed as cumulative sum - DO J=1,sNy - DO I=1,sNx - SItrAREA(I,J,bi,bj,3)=ZERO + DO j=1,sNy + DO i=1,sNx + SItrAREA(i,j,bi,bj,3)=ZERO ENDDO ENDDO #endif @@ -584,23 +574,23 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF #endif /* ALLOW_DIAGNOSTICS */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) Cgf no additional dependency of air-sea fluxes to ice IF ( SEAICEadjMODE.GE.1 ) THEN - DO J=1,sNy - DO I=1,sNx - HEFFpreTH(I,J) = 0. _d 0 - HSNWpreTH(I,J) = 0. _d 0 - AREApreTH(I,J) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + HEFFpreTH(i,j) = 0. _d 0 + HSNWpreTH(i,j) = 0. _d 0 + AREApreTH(i,j) = 0. _d 0 ENDDO ENDDO #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - HEFFITDpreTH(I,J,IT) = 0. _d 0 - HSNWITDpreTH(I,J,IT) = 0. _d 0 - AREAITDpreTH(I,J,IT) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + HEFFITDpreTH(i,j,IT) = 0. _d 0 + HSNWITDpreTH(i,j,IT) = 0. _d 0 + AREAITDpreTH(i,j,IT) = 0. _d 0 ENDDO ENDDO ENDDO @@ -608,76 +598,68 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF #endif -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) - DO J=1,sNy - DO I=1,sNx - AREAforAtmFW(I,J,bi,bj) = AREApreTH(I,J) - ENDDO - ENDDO -#endif - C COMPUTE ACTUAL ICE/SNOW THICKNESS; USE MIN/MAX VALUES C TO REGULARIZE SEAICE_SOLVE4TEMP/d_AREA COMPUTATIONS #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE AREApreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE HEFFpreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE HSNWpreTH = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE AREApreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE HEFFpreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE HSNWpreTH = comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF (HEFFITDpreTH(I,J,IT) .GT. ZERO) THEN + DO j=1,sNy + DO i=1,sNx + IF (HEFFITDpreTH(i,j,IT) .GT. ZERO) THEN C regularize AREA with SEAICE_area_reg - tmpscal1 = SQRT(AREAITDpreTH(I,J,IT) * AREAITDpreTH(I,J,IT) - & + area_reg_sq) + tmpscal1 = SQRT( AREAITDpreTH(i,j,IT)*AREAITDpreTH(i,j,IT) + & + area_reg_sq ) C heffActual calculated with the regularized AREA - tmpscal2 = HEFFITDpreTH(I,J,IT) / tmpscal1 + tmpscal2 = HEFFITDpreTH(i,j,IT) / tmpscal1 C regularize heffActual with SEAICE_hice_reg (add lower bound) - heffActualMult(I,J,IT) = SQRT(tmpscal2 * tmpscal2 + heffActualMult(i,j,IT) = SQRT(tmpscal2 * tmpscal2 & + hice_reg_sq) C hsnowActual calculated with the regularized AREA - hsnowActualMult(I,J,IT) = HSNWITDpreTH(I,J,IT) / tmpscal1 + hsnowActualMult(i,j,IT) = HSNWITDpreTH(i,j,IT) / tmpscal1 C regularize the inverse of heffActual by hice_reg - recip_heffActualMult(I,J,IT) = AREAITDpreTH(I,J,IT) / - & sqrt(HEFFITDpreTH(I,J,IT) * HEFFITDpreTH(I,J,IT) + recip_heffActualMult(i,j,IT) = AREAITDpreTH(i,j,IT) / + & SQRT(HEFFITDpreTH(i,j,IT) * HEFFITDpreTH(i,j,IT) & + hice_reg_sq) C Do not regularize when HEFFpreTH = 0 ELSE - heffActualMult(I,J,IT) = ZERO - hsnowActualMult(I,J,IT) = ZERO - recip_heffActualMult(I,J,IT) = ZERO + heffActualMult(i,j,IT) = ZERO + hsnowActualMult(i,j,IT) = ZERO + recip_heffActualMult(i,j,IT) = ZERO ENDIF ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - IF (HEFFpreTH(I,J) .GT. ZERO) THEN + DO j=1,sNy + DO i=1,sNx + IF (HEFFpreTH(i,j) .GT. ZERO) THEN Cif regularize AREA with SEAICE_area_reg - tmpscal1 = SQRT(AREApreTH(I,J)* AREApreTH(I,J) + area_reg_sq) + tmpscal1 = SQRT(AREApreTH(i,j)* AREApreTH(i,j) + area_reg_sq) Cif heffActual calculated with the regularized AREA - tmpscal2 = HEFFpreTH(I,J) / tmpscal1 + tmpscal2 = HEFFpreTH(i,j) / tmpscal1 Cif regularize heffActual with SEAICE_hice_reg (add lower bound) - heffActual(I,J) = SQRT(tmpscal2 * tmpscal2 + hice_reg_sq) + heffActual(i,j) = SQRT(tmpscal2 * tmpscal2 + hice_reg_sq) Cif hsnowActual calculated with the regularized AREA - hsnowActual(I,J) = HSNWpreTH(I,J) / tmpscal1 + hsnowActual(i,j) = HSNWpreTH(i,j) / tmpscal1 Cif regularize the inverse of heffActual by hice_reg - recip_heffActual(I,J) = AREApreTH(I,J) / - & sqrt(HEFFpreTH(I,J)*HEFFpreTH(I,J) + hice_reg_sq) + recip_heffActual(i,j) = AREApreTH(i,j) / + & SQRT(HEFFpreTH(i,j)*HEFFpreTH(i,j) + hice_reg_sq) Cif Do not regularize when HEFFpreTH = 0 ELSE - heffActual(I,J) = ZERO - hsnowActual(I,J) = ZERO - recip_heffActual(I,J) = ZERO + heffActual(i,j) = ZERO + hsnowActual(i,j) = ZERO + recip_heffActual(i,j) = ZERO ENDIF ENDDO ENDDO #endif /* SEAICE_ITD */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) CALL ZERO_ADJ_1D( sNx*sNy, heffActual, myThid) CALL ZERO_ADJ_1D( sNx*sNy, hsnowActual, myThid) CALL ZERO_ADJ_1D( sNx*sNy, recip_heffActual, myThid) @@ -691,28 +673,28 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C step (W/m^2) #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF (HEFFITDpreTH(I,J,IT) .GT. ZERO) THEN - latentHeatFluxMaxMult(I,J,IT) = lhSublim*recip_deltaTtherm * - & (HEFFITDpreTH(I,J,IT)*SEAICE_rhoIce + - & HSNWITDpreTH(I,J,IT)*SEAICE_rhoSnow) - & /AREAITDpreTH(I,J,IT) + DO j=1,sNy + DO i=1,sNx + IF (HEFFITDpreTH(i,j,IT) .GT. ZERO) THEN + latentHeatFluxMaxMult(i,j,IT) = lhSublim*recip_deltaTtherm * + & (HEFFITDpreTH(i,j,IT)*SEAICE_rhoIce + + & HSNWITDpreTH(i,j,IT)*SEAICE_rhoSnow) + & /AREAITDpreTH(i,j,IT) ELSE - latentHeatFluxMaxMult(I,J,IT) = ZERO + latentHeatFluxMaxMult(i,j,IT) = ZERO ENDIF ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - IF (HEFFpreTH(I,J) .GT. ZERO) THEN - latentHeatFluxMax(I,J) = lhSublim * recip_deltaTtherm * - & (HEFFpreTH(I,J) * SEAICE_rhoIce + - & HSNWpreTH(I,J) * SEAICE_rhoSnow)/AREApreTH(I,J) + DO j=1,sNy + DO i=1,sNx + IF (HEFFpreTH(i,j) .GT. ZERO) THEN + latentHeatFluxMax(i,j) = lhSublim * recip_deltaTtherm * + & (HEFFpreTH(i,j) * SEAICE_rhoIce + + & HSNWpreTH(i,j) * SEAICE_rhoSnow)/AREApreTH(i,j) ELSE - latentHeatFluxMax(I,J) = ZERO + latentHeatFluxMax(i,j) = ZERO ENDIF ENDDO ENDDO @@ -731,15 +713,15 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C ocean surface/mixed layer temperature TmixLoc(i,j) = theta(i,j,kSurface,bi,bj)+celsius2K C wind speed from exf - UG(I,J) = MAX(SEAICE_EPS,wspeed(I,J,bi,bj)) + UG(i,j) = MAX(SEAICE_EPS,wspeed(i,j,bi,bj)) ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE qnet(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE qsw(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -cCADJ STORE UG = comlev1_bibj, key = iicekey,byte=isbyte -cCADJ STORE TmixLoc = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE qnet(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE qsw(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +cCADJ STORE UG = comlev1_bibj, key = tkey,byte=isbyte +cCADJ STORE TmixLoc = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ CALL SEAICE_BUDGET_OCEAN( @@ -753,43 +735,39 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) IF (useRelativeWind.AND.useAtmWind) THEN C Compute relative wind speed over sea ice. - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx SPEED_SQ = - & (uWind(I,J,bi,bj) - & +0.5 _d 0*(uVel(i,j,kSurface,bi,bj) - & +uVel(i+1,j,kSurface,bi,bj)) + & (uWind(i,j,bi,bj) & -0.5 _d 0*(uice(i,j,bi,bj)+uice(i+1,j,bi,bj)))**2 - & +(vWind(I,J,bi,bj) - & +0.5 _d 0*(vVel(i,j,kSurface,bi,bj) - & +vVel(i,j+1,kSurface,bi,bj)) + & +(vWind(i,j,bi,bj) & -0.5 _d 0*(vice(i,j,bi,bj)+vice(i,j+1,bi,bj)))**2 IF ( SPEED_SQ .LE. SEAICE_EPS_SQ ) THEN - UG(I,J)=SEAICE_EPS + UG(i,j)=SEAICE_EPS ELSE - UG(I,J)=SQRT(SPEED_SQ) + UG(i,j)=SQRT(SPEED_SQ) ENDIF ENDDO ENDDO ENDIF #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hsnowActual = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE heffActual = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE UG = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE hsnowActual = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE heffActual = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE UG = comlev1_bibj, key = tkey, byte = isbyte CADJ STORE tices(:,:,:,bi,bj) -CADJ & = comlev1_bibj, key = iicekey, byte = isbyte +CADJ & = comlev1_bibj, key = tkey, byte = isbyte CADJ STORE salt(:,:,kSurface,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C-- Start loop over multi-categories DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - ticeInMult(I,J,IT) = TICES(I,J,IT,bi,bj) - ticeOutMult(I,J,IT) = TICES(I,J,IT,bi,bj) - TICES(I,J,IT,bi,bj) = ZERO + DO j=1,sNy + DO i=1,sNx + ticeInMult(i,j,IT) = TICES(i,j,IT,bi,bj) + ticeOutMult(i,j,IT) = TICES(i,j,IT,bi,bj) + TICES(i,j,IT,bi,bj) = ZERO ENDDO ENDDO #ifndef SEAICE_ITD @@ -799,12 +777,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) pFac = (2.0 _d 0*IT - 1.0 _d 0)*recip_denominator pFacSnow = 1. _d 0 IF ( SEAICE_useMultDimSnow ) pFacSnow=pFac - DO J=1,sNy - DO I=1,sNx - heffActualMult(I,J,IT) = heffActual(I,J)*pFac - hsnowActualMult(I,J,IT) = hsnowActual(I,J)*pFacSnow + DO j=1,sNy + DO i=1,sNx + heffActualMult(i,j,IT) = heffActual(i,j)*pFac + hsnowActualMult(i,j,IT) = hsnowActual(i,j)*pFacSnow #ifdef SEAICE_CAP_SUBLIM - latentHeatFluxMaxMult(I,J,IT) = latentHeatFluxMax(I,J)*pFac + latentHeatFluxMaxMult(i,j,IT) = latentHeatFluxMax(i,j)*pFac #endif ENDDO ENDDO @@ -812,19 +790,19 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heffActualMult = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE hsnowActualMult= comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE ticeInMult = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE heffActualMult = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE hsnowActualMult= comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE ticeInMult = comlev1_bibj, key = tkey, byte = isbyte # ifdef SEAICE_CAP_SUBLIM CADJ STORE latentHeatFluxMaxMult -CADJ & = comlev1_bibj, key = iicekey, byte = isbyte +CADJ & = comlev1_bibj, key = tkey, byte = isbyte # endif CADJ STORE a_QbyATMmult_cover = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte CADJ STORE a_QSWbyATMmult_cover = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte CADJ STORE a_FWbySublimMult = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO IT=1,SEAICE_multDim @@ -842,24 +820,24 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heffActualMult = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE hsnowActualMult= comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE ticeOutMult = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE heffActualMult = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE hsnowActualMult= comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE ticeOutMult = comlev1_bibj, key = tkey, byte = isbyte # ifdef SEAICE_CAP_SUBLIM CADJ STORE latentHeatFluxMaxMult -CADJ & = comlev1_bibj, key = iicekey, byte = isbyte +CADJ & = comlev1_bibj, key = tkey, byte = isbyte # endif CADJ STORE a_QbyATMmult_cover = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte CADJ STORE a_QSWbyATMmult_cover = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte CADJ STORE a_FWbySublimMult = -CADJ & comlev1_bibj, key = iicekey, byte = isbyte +CADJ & comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C update TICES CMLC and tIce, if required later on (currently not the case) CML#ifdef SEAICE_ITD @@ -875,24 +853,24 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) CML tIce(I,J,bi,bj) = tIce(I,J,bi,bj) CML & + ticeOutMult(I,J,IT)*SEAICE_PDF(IT) CML#endif - TICES(I,J,IT,bi,bj) = ticeOutMult(I,J,IT) + TICES(i,j,IT,bi,bj) = ticeOutMult(i,j,IT) C average over categories #ifdef SEAICE_ITD C calculate area weighted mean C (fluxes are per unit (ice surface) area and are thus area weighted) - a_QbyATM_cover (I,J) = a_QbyATM_cover(I,J) - & + a_QbyATMmult_cover(I,J,IT)*areaFracFactor(I,J,IT) - a_QSWbyATM_cover (I,J) = a_QSWbyATM_cover(I,J) - & + a_QSWbyATMmult_cover(I,J,IT)*areaFracFactor(I,J,IT) - a_FWbySublim (I,J) = a_FWbySublim(I,J) - & + a_FWbySublimMult(I,J,IT)*areaFracFactor(I,J,IT) + a_QbyATM_cover (i,j) = a_QbyATM_cover(i,j) + & + a_QbyATMmult_cover(i,j,IT)*areaFracFactor(i,j,IT) + a_QSWbyATM_cover (i,j) = a_QSWbyATM_cover(i,j) + & + a_QSWbyATMmult_cover(i,j,IT)*areaFracFactor(i,j,IT) + a_FWbySublim (i,j) = a_FWbySublim(i,j) + & + a_FWbySublimMult(i,j,IT)*areaFracFactor(i,j,IT) #else - a_QbyATM_cover (I,J) = a_QbyATM_cover(I,J) - & + a_QbyATMmult_cover(I,J,IT)*SEAICE_PDF(IT) - a_QSWbyATM_cover (I,J) = a_QSWbyATM_cover(I,J) - & + a_QSWbyATMmult_cover(I,J,IT)*SEAICE_PDF(IT) - a_FWbySublim (I,J) = a_FWbySublim(I,J) - & + a_FWbySublimMult(I,J,IT)*SEAICE_PDF(IT) + a_QbyATM_cover (i,j) = a_QbyATM_cover(i,j) + & + a_QbyATMmult_cover(i,j,IT)*SEAICE_PDF(IT) + a_QSWbyATM_cover (i,j) = a_QSWbyATM_cover(i,j) + & + a_QSWbyATMmult_cover(i,j,IT)*SEAICE_PDF(IT) + a_FWbySublim (i,j) = a_FWbySublim(i,j) + & + a_FWbySublimMult(i,j,IT)*SEAICE_PDF(IT) #endif ENDDO ENDDO @@ -900,10 +878,10 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef SEAICE_CAP_SUBLIM # ifdef ALLOW_DIAGNOSTICS - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C The actual latent heat flux realized by SOLVE4TEMP - DIAGarrayA(I,J) = a_FWbySublim(I,J) * lhSublim + DIAGarrayA(i,j) = a_FWbySublim(i,j) * lhSublim ENDDO ENDDO Cif The actual vs. maximum latent heat flux @@ -917,104 +895,104 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #endif /* SEAICE_CAP_SUBLIM */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE AREApreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QbyATM_cover = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QSWbyATM_cover= comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QbyATM_open = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QSWbyATM_open = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_FWbySublim = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE AREApreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QbyATM_cover = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QSWbyATM_cover= comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QbyATM_open = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QSWbyATM_open = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_FWbySublim = comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C switch heat fluxes from W/m2 to 'effective' ice meters #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - a_QbyATMmult_cover(I,J,IT) = a_QbyATMmult_cover(I,J,IT) - & * convertQ2HI * AREAITDpreTH(I,J,IT) - a_QSWbyATMmult_cover(I,J,IT) = a_QSWbyATMmult_cover(I,J,IT) - & * convertQ2HI * AREAITDpreTH(I,J,IT) + DO j=1,sNy + DO i=1,sNx + a_QbyATMmult_cover(i,j,IT) = a_QbyATMmult_cover(i,j,IT) + & * convertQ2HI * AREAITDpreTH(i,j,IT) + a_QSWbyATMmult_cover(i,j,IT) = a_QSWbyATMmult_cover(i,j,IT) + & * convertQ2HI * AREAITDpreTH(i,j,IT) C and initialize r_QbyATMmult_cover - r_QbyATMmult_cover(I,J,IT)=a_QbyATMmult_cover(I,J,IT) + r_QbyATMmult_cover(i,j,IT)=a_QbyATMmult_cover(i,j,IT) C Convert fresh water flux by sublimation to 'effective' ice meters. C Negative sublimation is resublimation and will be added as snow. #ifdef SEAICE_DISABLE_SUBLIM - a_FWbySublimMult(I,J,IT) = ZERO + a_FWbySublimMult(i,j,IT) = ZERO #endif - a_FWbySublimMult(I,J,IT) = SEAICE_deltaTtherm*recip_rhoIce - & * a_FWbySublimMult(I,J,IT)*AREAITDpreTH(I,J,IT) - r_FWbySublimMult(I,J,IT)=a_FWbySublimMult(I,J,IT) + a_FWbySublimMult(i,j,IT) = SEAICE_deltaTtherm*recip_rhoIce + & * a_FWbySublimMult(i,j,IT)*AREAITDpreTH(i,j,IT) + r_FWbySublimMult(i,j,IT)=a_FWbySublimMult(i,j,IT) ENDDO ENDDO ENDDO - DO J=1,sNy - DO I=1,sNx - a_QbyATM_open(I,J) = a_QbyATM_open(I,J) - & * convertQ2HI * ( ONE - AREApreTH(I,J) ) - a_QSWbyATM_open(I,J) = a_QSWbyATM_open(I,J) - & * convertQ2HI * ( ONE - AREApreTH(I,J) ) + DO j=1,sNy + DO i=1,sNx + a_QbyATM_open(i,j) = a_QbyATM_open(i,j) + & * convertQ2HI * ( ONE - AREApreTH(i,j) ) + a_QSWbyATM_open(i,j) = a_QSWbyATM_open(i,j) + & * convertQ2HI * ( ONE - AREApreTH(i,j) ) C and initialize r_QbyATM_open - r_QbyATM_open(I,J)=a_QbyATM_open(I,J) + r_QbyATM_open(i,j)=a_QbyATM_open(i,j) ENDDO ENDDO #else /* SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - a_QbyATM_cover(I,J) = a_QbyATM_cover(I,J) - & * convertQ2HI * AREApreTH(I,J) - a_QSWbyATM_cover(I,J) = a_QSWbyATM_cover(I,J) - & * convertQ2HI * AREApreTH(I,J) - a_QbyATM_open(I,J) = a_QbyATM_open(I,J) - & * convertQ2HI * ( ONE - AREApreTH(I,J) ) - a_QSWbyATM_open(I,J) = a_QSWbyATM_open(I,J) - & * convertQ2HI * ( ONE - AREApreTH(I,J) ) + DO j=1,sNy + DO i=1,sNx + a_QbyATM_cover(i,j) = a_QbyATM_cover(i,j) + & * convertQ2HI * AREApreTH(i,j) + a_QSWbyATM_cover(i,j) = a_QSWbyATM_cover(i,j) + & * convertQ2HI * AREApreTH(i,j) + a_QbyATM_open(i,j) = a_QbyATM_open(i,j) + & * convertQ2HI * ( ONE - AREApreTH(i,j) ) + a_QSWbyATM_open(i,j) = a_QSWbyATM_open(i,j) + & * convertQ2HI * ( ONE - AREApreTH(i,j) ) C and initialize r_QbyATM_cover/r_QbyATM_open - r_QbyATM_cover(I,J)=a_QbyATM_cover(I,J) - r_QbyATM_open(I,J)=a_QbyATM_open(I,J) + r_QbyATM_cover(i,j)=a_QbyATM_cover(i,j) + r_QbyATM_open(i,j)=a_QbyATM_open(i,j) C Convert fresh water flux by sublimation to 'effective' ice meters. C Negative sublimation is resublimation and will be added as snow. #ifdef SEAICE_DISABLE_SUBLIM Cgf just for those who may need to omit this term to reproduce old results - a_FWbySublim(I,J) = ZERO + a_FWbySublim(i,j) = ZERO #endif /* SEAICE_DISABLE_SUBLIM */ - a_FWbySublim(I,J) = SEAICE_deltaTtherm*recip_rhoIce - & * a_FWbySublim(I,J)*AREApreTH(I,J) - r_FWbySublim(I,J)=a_FWbySublim(I,J) + a_FWbySublim(i,j) = SEAICE_deltaTtherm*recip_rhoIce + & * a_FWbySublim(i,j)*AREApreTH(i,j) + r_FWbySublim(i,j)=a_FWbySublim(i,j) ENDDO ENDDO #endif /* SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE AREApreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QbyATM_cover = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QSWbyATM_cover= comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QbyATM_open = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_QSWbyATM_open = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE a_FWbySublim = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE r_QbyATM_cover = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE r_QbyATM_open = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE r_FWbySublim = comlev1_bibj, key = iicekey, byte = isbyte +CADJ STORE AREApreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QbyATM_cover = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QSWbyATM_cover= comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QbyATM_open = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_QSWbyATM_open = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE a_FWbySublim = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE r_QbyATM_cover = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE r_QbyATM_open = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE r_FWbySublim = comlev1_bibj, key = tkey, byte = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) Cgf no additional dependency through ice cover IF ( SEAICEadjMODE.GE.3 ) THEN #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - a_QbyATMmult_cover(I,J,IT) = 0. _d 0 - r_QbyATMmult_cover(I,J,IT) = 0. _d 0 - a_QSWbyATMmult_cover(I,J,IT) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + a_QbyATMmult_cover(i,j,IT) = 0. _d 0 + r_QbyATMmult_cover(i,j,IT) = 0. _d 0 + a_QSWbyATMmult_cover(i,j,IT) = 0. _d 0 ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - a_QbyATM_cover(I,J) = 0. _d 0 - r_QbyATM_cover(I,J) = 0. _d 0 - a_QSWbyATM_cover(I,J) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + a_QbyATM_cover(i,j) = 0. _d 0 + r_QbyATM_cover(i,j) = 0. _d 0 + a_QSWbyATM_cover(i,j) = 0. _d 0 ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1027,28 +1005,28 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE theta(:,:,kSurface,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte CADJ STORE salt(:,:,kSurface,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte #endif - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C FREEZING TEMP. OF SEA WATER (deg C) tempFrz = SEAICE_tempFrz0 + - & SEAICE_dTempFrz_dS *salt(I,J,kSurface,bi,bj) + & SEAICE_dTempFrz_dS *salt(i,j,kSurface,bi,bj) C efficiency of turbulent fluxes : dependency to sign of THETA-TBC - IF ( theta(I,J,kSurface,bi,bj) .GE. tempFrz ) THEN + IF ( theta(i,j,kSurface,bi,bj) .GE. tempFrz ) THEN tmpscal1 = SEAICE_mcPheePiston ELSE - tmpscal1 =SEAICE_frazilFrac*drF(kSurface)/SEAICE_deltaTtherm + tmpscal1 =SEAICE_frazilFrac*dzSurf/SEAICE_deltaTtherm ENDIF C efficiency of turbulent fluxes : dependency to AREA (McPhee cases) - IF ( (AREApreTH(I,J) .GT. 0. _d 0).AND. + IF ( (AREApreTH(i,j) .GT. 0. _d 0).AND. & (.NOT.SEAICE_mcPheeStepFunc) ) THEN MixedLayerTurbulenceFactor = ONE - - & SEAICE_mcPheeTaper * AREApreTH(I,J) - ELSEIF ( (AREApreTH(I,J) .GT. 0. _d 0).AND. + & SEAICE_mcPheeTaper * AREApreTH(i,j) + ELSEIF ( (AREApreTH(i,j) .GT. 0. _d 0).AND. & (SEAICE_mcPheeStepFunc) ) THEN MixedLayerTurbulenceFactor = ONE - SEAICE_mcPheeTaper ELSE @@ -1056,7 +1034,7 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF C maximum turbulent flux, in ice meters tmpscal2= - (HeatCapacity_Cp*rhoConst * recip_QI) - & * (theta(I,J,kSurface,bi,bj)-tempFrz) + & * (theta(i,j,kSurface,bi,bj)-tempFrz) & * SEAICE_deltaTtherm * HEFFM(i,j,bi,bj) C available turbulent flux a_QbyOCN(i,j) = @@ -1071,12 +1049,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C following Steele (1992, Tab. 2) C ====================================================== DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx tempFrz = SEAICE_tempFrz0 + - & SEAICE_dTempFrz_dS *salt(I,J,kSurface,bi,bj) - tmpscal1=(theta(I,J,kSurface,bi,bj)-tempFrz) - tmpscal2=sqrt(0.87 + 0.067*UG(i,j)) * UG(i,j) + & SEAICE_dTempFrz_dS *salt(i,j,kSurface,bi,bj) + tmpscal1=(theta(i,j,kSurface,bi,bj)-tempFrz) + tmpscal2=SQRT(0.87 + 0.067*UG(i,j)) * UG(i,j) C variable floe diameter following Luepkes et al. (2012, JGR, Equ. 26) C with beta=1 @@ -1085,41 +1063,41 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) CML & * (tmpscal3 / (tmpscal3-AREApreTH(I,J))) C this form involves fewer divisions but gives the same result floeDiameter = floeDiameterMin * floeDiameterMax - & / ( floeDiameterMax*( 1. _d 0 - AREApreTH(I,J) ) - & + floeDiameterMin*AREApreTH(I,J) ) + & / ( floeDiameterMax*( 1. _d 0 - AREApreTH(i,j) ) + & + floeDiameterMin*AREApreTH(i,j) ) C following the idea of SEAICE_areaLossFormula == 1: - IF (a_QbyATMmult_cover(i,j,it).LT.ZERO .OR. + IF (a_QbyATMmult_cover(i,j,IT).LT.ZERO .OR. & a_QbyATM_open(i,j) .LT.ZERO .OR. & a_QbyOCN(i,j) .LT.ZERO) THEN C lateral melt rate as suggested by Perovich, 1983 (PhD thesis) -C latMeltRate(i,j,it) = 1.6 _d -6 * tmpscal1**1.36 +c latMeltRate(i,j,IT) = 1.6 _d -6 * tmpscal1**1.36 C The following for does the same, but is faster - latMeltRate(i,j,it) = ZERO + latMeltRate(i,j,IT) = ZERO IF (tmpscal1 .GT. ZERO) - & latMeltRate(i,j,it) = 1.6 _d -6 * exp(1.36*log(tmpscal1)) + & latMeltRate(i,j,IT) = 1.6 _d -6 * exp(1.36*log(tmpscal1)) C lateral melt rate as suggested by Maykut and Perovich, 1987 C (JGR 92(C7)), Equ. 24 -c latMeltRate(i,j,it) = 13.5 _d -6 * tmpscal2 * tmpscal1**1.3 +c latMeltRate(i,j,IT) = 13.5 _d -6 * tmpscal2 * tmpscal1**1.3 C further suggestion by Maykut and Perovich to avoid C latMeltRate -> 0 for UG -> 0 -c latMeltRate(i,j,it) = (1.6 _d -6 + 13.5 _d -6 * tmpscal2) +c latMeltRate(i,j,IT) = (1.6 _d -6 + 13.5 _d -6 * tmpscal2) c & * tmpscal1**1.3 C factor determining fraction of area and ice volume reduction C due to lateral melt - latMeltFrac(i,j,it) = - & latMeltRate(i,j,it)*SEAICE_deltaTtherm*PI / + latMeltFrac(i,j,IT) = + & latMeltRate(i,j,IT)*SEAICE_deltaTtherm*PI / & (floeAlpha * floeDiameter) - latMeltFrac(i,j,it)=max(ZERO, min(latMeltFrac(i,j,it),ONE)) + latMeltFrac(i,j,IT)=max(ZERO, min(latMeltFrac(i,j,IT),ONE)) ELSE - latMeltRate(i,j,it)=0.0 _d 0 - latMeltFrac(i,j,it)=0.0 _d 0 + latMeltRate(i,j,IT)=0.0 _d 0 + latMeltFrac(i,j,IT)=0.0 _d 0 ENDIF ENDDO ENDDO ENDDO #endif /* SEAICE_ITD */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) CALL ZERO_ADJ_1D( sNx*sNy, r_QbyOCN, myThid) #endif @@ -1127,28 +1105,39 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C =========PART 3: determine effective thicknesses increments======== C =================================================================== -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C convert SItracer 'grease' from ratio to grease ice volume: C ========================================================== - DO J=1,sNy - DO I=1,sNx - SItracer(I,J,bi,bj,iTrGrease) = - & SItracer(I,J,bi,bj,iTrGrease) * HEFF(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + SItracer(i,j,bi,bj,iTrGrease) = + & SItracer(i,j,bi,bj,iTrGrease) * HEFF(i,j,bi,bj) + uRelW(i,j) = uWind(i,j,bi,bj) + vRelW(i,j) = vWind(i,j,bi,bj) ENDDO ENDDO + IF ( useRelativeWind ) THEN + DO j=1,sNy + DO i=1,sNx + uRelW(i,j) = uWind(i,j,bi,bj) + & - 0.5 _d 0*( uIce(i,j,bi,bj) + uIce(i+1,j,bi,bj) ) + vRelW(i,j) = vWind(i,j,bi,bj) + & - 0.5 _d 0*( vIce(i,j,bi,bj) + vIce(i,j+1,bi,bj) ) + ENDDO + ENDDO + ENDIF C compute actual grease ice layer thickness C as a function of wind stress C following Smedsrud [2011, Ann.Glac.] C ========================================= - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C C computing compaction force acting on grease C (= air and water stress acting on ice) C wind stress (using calculation of SPEED_SQ & UG as template) C u_a**2 + v_a**2: - tmpscal1 = uWind(I,J,bi,bj)*uWind(I,J,bi,bj) - & + vWind(I,J,bi,bj)*vWind(I,J,bi,bj) + tmpscal1 = uRelW(i,j)*uRelW(i,j) + vRelW(i,j)*vRelW(i,j) IF ( tmpscal1 .LE. SEAICE_EPS_SQ ) THEN tmpscal1=SEAICE_EPS ELSE @@ -1160,12 +1149,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) tmpscal2 = & 0.5 _d 0*(uVel(i,j,kSurface,bi,bj) & +uVel(i+1,j,kSurface,bi,bj)) - & -0.5 _d 0*(uice(i,j,bi,bj)+uice(i+1,j,bi,bj)) + & -0.5 _d 0*(uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj)) C v_w - v_i: tmpscal3 = & 0.5 _d 0*(vVel(i,j,kSurface,bi,bj) & +vVel(i,j+1,kSurface,bi,bj)) - & -0.5 _d 0*(vice(i,j,bi,bj)+vice(i,j+1,bi,bj)) + & -0.5 _d 0*(vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)) C (u_w - u_i)**2 + (v_w - v_i)**2: tmpscal4 = (tmpscal2*tmpscal2 + tmpscal3*tmpscal3) IF ( tmpscal4 .LE. SEAICE_EPS_SQ ) THEN @@ -1176,8 +1165,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) tmpscal4 = 1027.0 _d 0 * 6.0 _d -3 * tmpscal4 C magnitude of compined stresses: tmpscal0 = - & ( tmpscal1 * uWind(I,J,bi,bj) + tmpscal4 * tmpscal2 )**2 - & + ( tmpscal1 * vWind(I,J,bi,bj) + tmpscal4 * tmpscal3 )**2 + & ( tmpscal1 * uRelW(i,j) + tmpscal4 * tmpscal2 )**2 + & + ( tmpscal1 * vRelW(i,j) + tmpscal4 * tmpscal3 )**2 IF ( tmpscal0 .LE. SEAICE_EPS_SQ ) THEN tmpscal0=SEAICE_EPS ELSE @@ -1185,17 +1174,17 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF C C mean grid cell width between tracer points - tmpscal3 = 0.5 _d 0 * (dxC(I,J,bi,bj)+dyC(I,J,bi,bj)) + tmpscal3 = 0.5 _d 0 * (dxC(i,j,bi,bj)+dyC(i,j,bi,bj)) C grease ice volume Vg [m^3/m] as in Smedsrud [2011] C is SItracer * gridcell_area / lead_width C where lead width is lead extent along lead, C i.e. perpendicular to L_lead in Smedsrud (2011), C which is in the absence of lead length statistics C simply the grid cell length - tmpscal4 = 4. _d 0 * SItracer(I,J,bi,bj,iTrGrease) * tmpscal3 + tmpscal4 = 4. _d 0 * SItracer(i,j,bi,bj,iTrGrease) * tmpscal3 C C mean grease ice layer thickness , Eq.10 in Smedsrud [2011] but incl. water stress - greaseLayerThick(I,J) = 0.763 _d 0 + greaseLayerThick(i,j) = 0.763 _d 0 C grease ice volume & * ( tmpscal4 C times magnitude of vector sum of air and water stresses @@ -1207,9 +1196,9 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) & * 0.01 _d 0 )**THIRD C C assure a minimum thickness of 4 cm (equals HO=0.01): - greaseLayerThick(I,J)=max(4. _d -2, greaseLayerThick(I,J)) + greaseLayerThick(i,j)=max(4. _d -2, greaseLayerThick(i,j)) C ... and a maximum thickness of 4 m (equals HO=1.0): - greaseLayerThick(I,J)=min(4. _d 0 , greaseLayerThick(I,J)) + greaseLayerThick(i,j)=min(4. _d 0 , greaseLayerThick(i,j)) C ENDDO ENDDO @@ -1219,67 +1208,67 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C ============================================ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_FWbySublim = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_FWbySublim = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim #endif /* SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C First sublimate/deposite snow tmpscal2 = #ifdef SEAICE_ITD - & MAX(MIN(r_FWbySublimMult(I,J,IT),HSNOWITD(I,J,IT,bi,bj) + & MAX(MIN(r_FWbySublimMult(i,j,IT),HSNOWITD(i,j,IT,bi,bj) & *SNOW2ICE),ZERO) - d_HSNWbySublim_ITD(I,J,IT) = - tmpscal2 * ICE2SNOW + d_HSNWbySublim_ITD(i,j,IT) = - tmpscal2 * ICE2SNOW C accumulate change over ITD categories - d_HSNWbySublim(I,J) = d_HSNWbySublim(I,J) - tmpscal2 + d_HSNWbySublim(i,j) = d_HSNWbySublim(i,j) - tmpscal2 & *ICE2SNOW - r_FWbySublimMult(I,J,IT)= r_FWbySublimMult(I,J,IT) - tmpscal2 + r_FWbySublimMult(i,j,IT)= r_FWbySublimMult(i,j,IT) - tmpscal2 #else /* ndef SEAICE_ITD */ - & MAX(MIN(r_FWbySublim(I,J),HSNOW(I,J,bi,bj)*SNOW2ICE),ZERO) - d_HSNWbySublim(I,J) = - tmpscal2 * ICE2SNOW - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) - tmpscal2*ICE2SNOW - r_FWbySublim(I,J) = r_FWbySublim(I,J) - tmpscal2 + & MAX(MIN(r_FWbySublim(i,j),HSNOW(i,j,bi,bj)*SNOW2ICE),ZERO) + d_HSNWbySublim(i,j) = - tmpscal2 * ICE2SNOW + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj) - tmpscal2*ICE2SNOW + r_FWbySublim(i,j) = r_FWbySublim(i,j) - tmpscal2 #endif /* SEAICE_ITD */ ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_FWbySublim = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_FWbySublim = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C If anything is left, sublimate ice tmpscal2 = #ifdef SEAICE_ITD - & MAX(MIN(r_FWbySublimMult(I,J,IT),HEFFITD(I,J,IT,bi,bj)),ZERO) - d_HEFFbySublim_ITD(I,J,IT) = - tmpscal2 + & MAX(MIN(r_FWbySublimMult(i,j,IT),HEFFITD(i,j,IT,bi,bj)),ZERO) + d_HEFFbySublim_ITD(i,j,IT) = - tmpscal2 C accumulate change over ITD categories - d_HEFFbySublim(I,J) = d_HEFFbySublim(I,J) - tmpscal2 - r_FWbySublimMult(I,J,IT) = r_FWbySublimMult(I,J,IT) - tmpscal2 + d_HEFFbySublim(i,j) = d_HEFFbySublim(i,j) - tmpscal2 + r_FWbySublimMult(i,j,IT) = r_FWbySublimMult(i,j,IT) - tmpscal2 #else /* ndef SEAICE_ITD */ - & MAX(MIN(r_FWbySublim(I,J),HEFF(I,J,bi,bj)),ZERO) - d_HEFFbySublim(I,J) = - tmpscal2 - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) - tmpscal2 - r_FWbySublim(I,J) = r_FWbySublim(I,J) - tmpscal2 + & MAX(MIN(r_FWbySublim(i,j),HEFF(i,j,bi,bj)),ZERO) + d_HEFFbySublim(i,j) = - tmpscal2 + HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj) - tmpscal2 + r_FWbySublim(i,j) = r_FWbySublim(i,j) - tmpscal2 #endif /* SEAICE_ITD */ ENDDO ENDDO - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C If anything is left, it will be evaporated from the ocean rather than sublimated. C Since a_QbyATM_cover was computed for sublimation, not simple evaporation, we need to C remove the fusion part for the residual (that happens to be precisely r_FWbySublim). #ifdef SEAICE_ITD - a_QbyATMmult_cover(I,J,IT) = a_QbyATMmult_cover(I,J,IT) - & - r_FWbySublimMult(I,J,IT) - r_QbyATMmult_cover(I,J,IT) = r_QbyATMmult_cover(I,J,IT) - & - r_FWbySublimMult(I,J,IT) + a_QbyATMmult_cover(i,j,IT) = a_QbyATMmult_cover(i,j,IT) + & - r_FWbySublimMult(i,j,IT) + r_QbyATMmult_cover(i,j,IT) = r_QbyATMmult_cover(i,j,IT) + & - r_FWbySublimMult(i,j,IT) #else /* ndef SEAICE_ITD */ - a_QbyATM_cover(I,J) = a_QbyATM_cover(I,J)-r_FWbySublim(I,J) - r_QbyATM_cover(I,J) = r_QbyATM_cover(I,J)-r_FWbySublim(I,J) + a_QbyATM_cover(i,j) = a_QbyATM_cover(i,j)-r_FWbySublim(i,j) + r_QbyATM_cover(i,j) = r_QbyATM_cover(i,j)-r_FWbySublim(i,j) #endif /* SEAICE_ITD */ ENDDO ENDDO @@ -1292,48 +1281,48 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C =========================================================== #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyOCN = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyOCN = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF (.NOT.SEAICE_growMeltByConv) THEN #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C ice growth/melt due to ocean heat r_QbyOCN (W/m^2) is C equally distributed under the ice and hence weighted by C fractional area of each thickness category - tmpscal1=MAX(r_QbyOCN(i,j)*areaFracFactor(I,J,IT), - & -HEFFITD(I,J,IT,bi,bj)) - d_HEFFbyOCNonICE_ITD(I,J,IT)=tmpscal1 - d_HEFFbyOCNonICE(I,J) = d_HEFFbyOCNonICE(I,J) + tmpscal1 + tmpscal1=MAX(r_QbyOCN(i,j)*areaFracFactor(i,j,IT), + & -HEFFITD(i,j,IT,bi,bj)) + d_HEFFbyOCNonICE_ITD(i,j,IT)=tmpscal1 + d_HEFFbyOCNonICE(i,j) = d_HEFFbyOCNonICE(i,j) + tmpscal1 ENDDO ENDDO ENDDO #ifdef ALLOW_SITRACER - DO J=1,sNy - DO I=1,sNx - SItrHEFF(I,J,bi,bj,2) = HEFFpreTH(I,J) - & + d_HEFFbySublim(I,J) - & + d_HEFFbyOCNonICE(I,J) + DO j=1,sNy + DO i=1,sNx + SItrHEFF(i,j,bi,bj,2) = HEFFpreTH(i,j) + & + d_HEFFbySublim(i,j) + & + d_HEFFbyOCNonICE(i,j) ENDDO ENDDO #endif - DO J=1,sNy - DO I=1,sNx - r_QbyOCN(I,J)=r_QbyOCN(I,J)-d_HEFFbyOCNonICE(I,J) + DO j=1,sNy + DO i=1,sNx + r_QbyOCN(i,j)=r_QbyOCN(i,j)-d_HEFFbyOCNonICE(i,j) ENDDO ENDDO #else /* SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - d_HEFFbyOCNonICE(I,J)=MAX(r_QbyOCN(i,j), -HEFF(I,J,bi,bj)) - r_QbyOCN(I,J)=r_QbyOCN(I,J)-d_HEFFbyOCNonICE(I,J) - HEFF(I,J,bi,bj)=HEFF(I,J,bi,bj) + d_HEFFbyOCNonICE(I,J) + DO j=1,sNy + DO i=1,sNx + d_HEFFbyOCNonICE(i,j)=MAX(r_QbyOCN(i,j), -HEFF(i,j,bi,bj)) + r_QbyOCN(i,j)=r_QbyOCN(i,j)-d_HEFFbyOCNonICE(i,j) + HEFF(i,j,bi,bj)=HEFF(i,j,bi,bj) + d_HEFFbyOCNonICE(i,j) #ifdef ALLOW_SITRACER - SItrHEFF(I,J,bi,bj,2)=HEFF(I,J,bi,bj) + SItrHEFF(i,j,bi,bj,2)=HEFF(i,j,bi,bj) #endif ENDDO ENDDO @@ -1345,45 +1334,45 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C ================================================================== #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyATM_cover = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyATM_cover = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C Convert to standard units (meters of ice) rather than to meters C of snow. This appears to be more robust. - tmpscal1=MAX(r_QbyATMmult_cover(I,J,IT), - & -HSNOWITD(I,J,IT,bi,bj)*SNOW2ICE) + tmpscal1=MAX(r_QbyATMmult_cover(i,j,IT), + & -HSNOWITD(i,j,IT,bi,bj)*SNOW2ICE) tmpscal2=MIN(tmpscal1,0. _d 0) #ifdef SEAICE_MODIFY_GROWTH_ADJ Cgf no additional dependency through snow IF ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 #endif - d_HSNWbyATMonSNW_ITD(I,J,IT) = tmpscal2*ICE2SNOW - d_HSNWbyATMonSNW(I,J) = d_HSNWbyATMonSNW(I,J) + d_HSNWbyATMonSNW_ITD(i,j,IT) = tmpscal2*ICE2SNOW + d_HSNWbyATMonSNW(i,j) = d_HSNWbyATMonSNW(i,j) & + tmpscal2*ICE2SNOW - r_QbyATMmult_cover(I,J,IT)=r_QbyATMmult_cover(I,J,IT) + r_QbyATMmult_cover(i,j,IT)=r_QbyATMmult_cover(i,j,IT) & - tmpscal2 ENDDO ENDDO ENDDO #else /* SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C Convert to standard units (meters of ice) rather than to meters C of snow. This appears to be more robust. - tmpscal1=MAX(r_QbyATM_cover(I,J),-HSNOW(I,J,bi,bj)*SNOW2ICE) + tmpscal1=MAX(r_QbyATM_cover(i,j),-HSNOW(i,j,bi,bj)*SNOW2ICE) tmpscal2=MIN(tmpscal1,0. _d 0) #ifdef SEAICE_MODIFY_GROWTH_ADJ Cgf no additional dependency through snow IF ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 #endif - d_HSNWbyATMonSNW(I,J)= tmpscal2*ICE2SNOW - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) + tmpscal2*ICE2SNOW - r_QbyATM_cover(I,J)=r_QbyATM_cover(I,J) - tmpscal2 + d_HSNWbyATMonSNW(i,j)= tmpscal2*ICE2SNOW + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj) + tmpscal2*ICE2SNOW + r_QbyATM_cover(i,j)=r_QbyATM_cover(i,j) - tmpscal2 ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1392,8 +1381,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C ==================================================== #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyATM_cover = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyATM_cover = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ Cgf note: this block is not actually tested by lab_sea @@ -1403,50 +1392,50 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - tmpscal1 = HEFFITDpreTH(I,J,IT) - & + d_HEFFbySublim_ITD(I,J,IT) - & + d_HEFFbyOCNonICE_ITD(I,J,IT) + DO j=1,sNy + DO i=1,sNx + tmpscal1 = HEFFITDpreTH(i,j,IT) + & + d_HEFFbySublim_ITD(i,j,IT) + & + d_HEFFbyOCNonICE_ITD(i,j,IT) tmpscal2 = MAX(-tmpscal1, - & r_QbyATMmult_cover(I,J,IT) + & r_QbyATMmult_cover(i,j,IT) C Limit ice growth by potential melt by ocean - & + AREAITDpreTH(I,J,IT) * r_QbyOCN(I,J)) - d_HEFFbyATMonOCN_cover_ITD(I,J,IT) = tmpscal2 - d_HEFFbyATMonOCN_cover(I,J) = d_HEFFbyATMonOCN_cover(I,J) + & + AREAITDpreTH(i,j,IT) * r_QbyOCN(i,j)) + d_HEFFbyATMonOCN_cover_ITD(i,j,IT) = tmpscal2 + d_HEFFbyATMonOCN_cover(i,j) = d_HEFFbyATMonOCN_cover(i,j) & + tmpscal2 - d_HEFFbyATMonOCN_ITD(I,J,IT) = d_HEFFbyATMonOCN_ITD(I,J,IT) + d_HEFFbyATMonOCN_ITD(i,j,IT) = d_HEFFbyATMonOCN_ITD(i,j,IT) & + tmpscal2 - d_HEFFbyATMonOCN(I,J) = d_HEFFbyATMonOCN(I,J) + d_HEFFbyATMonOCN(i,j) = d_HEFFbyATMonOCN(i,j) & + tmpscal2 - r_QbyATMmult_cover(I,J,IT) = r_QbyATMmult_cover(I,J,IT) + r_QbyATMmult_cover(i,j,IT) = r_QbyATMmult_cover(i,j,IT) & - tmpscal2 ENDDO ENDDO ENDDO #ifdef ALLOW_SITRACER - DO J=1,sNy - DO I=1,sNx - SItrHEFF(I,J,bi,bj,3) = SItrHEFF(I,J,bi,bj,2) - & + d_HEFFbyATMonOCN_cover(I,J) + DO j=1,sNy + DO i=1,sNx + SItrHEFF(i,j,bi,bj,3) = SItrHEFF(i,j,bi,bj,2) + & + d_HEFFbyATMonOCN_cover(i,j) ENDDO ENDDO #endif #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx - tmpscal2 = MAX(-HEFF(I,J,bi,bj),r_QbyATM_cover(I,J)+ + tmpscal2 = MAX(-HEFF(i,j,bi,bj),r_QbyATM_cover(i,j)+ C Limit ice growth by potential melt by ocean - & AREApreTH(I,J) * r_QbyOCN(I,J)) + & AREApreTH(i,j) * r_QbyOCN(i,j)) - d_HEFFbyATMonOCN_cover(I,J)=tmpscal2 - d_HEFFbyATMonOCN(I,J)=d_HEFFbyATMonOCN(I,J)+tmpscal2 - r_QbyATM_cover(I,J)=r_QbyATM_cover(I,J)-tmpscal2 - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) + tmpscal2 + d_HEFFbyATMonOCN_cover(i,j)=tmpscal2 + d_HEFFbyATMonOCN(i,j)=d_HEFFbyATMonOCN(i,j)+tmpscal2 + r_QbyATM_cover(i,j)=r_QbyATM_cover(i,j)-tmpscal2 + HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj) + tmpscal2 #ifdef ALLOW_SITRACER - SItrHEFF(I,J,bi,bj,3)=HEFF(I,J,bi,bj) + SItrHEFF(i,j,bi,bj,3)=HEFF(i,j,bi,bj) #endif ENDDO ENDDO @@ -1455,56 +1444,56 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C add snow precipitation to HSNOW. C ================================================= #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE a_QbyATM_cover = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE PRECIP(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE AREApreTH = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE a_QbyATM_cover = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE PRECIP(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE AREApreTH = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( snowPrecipFile .NE. ' ' ) THEN C add snowPrecip to HSNOW - DO J=1,sNy - DO I=1,sNx - d_HSNWbyRAIN(I,J) = convertPRECIP2HI * ICE2SNOW * - & snowPrecip(i,j,bi,bj) * AREApreTH(I,J) - d_HFRWbyRAIN(I,J) = -convertPRECIP2HI * - & ( PRECIP(I,J,bi,bj) - snowPrecip(I,J,bi,bj) ) * - & AREApreTH(I,J) - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) + d_HSNWbyRAIN(I,J) + DO j=1,sNy + DO i=1,sNx + d_HSNWbyRAIN(i,j) = convertPRECIP2HI * ICE2SNOW * + & snowPrecip(i,j,bi,bj) * AREApreTH(i,j) + d_HFRWbyRAIN(i,j) = -convertPRECIP2HI * + & ( PRECIP(i,j,bi,bj) - snowPrecip(i,j,bi,bj) ) * + & AREApreTH(i,j) + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj) + d_HSNWbyRAIN(i,j) ENDDO ENDDO ELSE C attribute precip to fresh water or snow stock, C depending on atmospheric conditions. - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C possible alternatives to the a_QbyATM_cover criterium c IF (tIce(I,J,bi,bj) .LT. TMIX) THEN ! would require computing tIce c IF (atemp(I,J,bi,bj) .LT. celsius2K) THEN - IF ( a_QbyATM_cover(I,J).GE. 0. _d 0 ) THEN + IF ( a_QbyATM_cover(i,j).GE. 0. _d 0 ) THEN C add precip as snow - d_HFRWbyRAIN(I,J)=0. _d 0 - d_HSNWbyRAIN(I,J)=convertPRECIP2HI*ICE2SNOW* - & PRECIP(I,J,bi,bj)*AREApreTH(I,J) + d_HFRWbyRAIN(i,j)=0. _d 0 + d_HSNWbyRAIN(i,j)=convertPRECIP2HI*ICE2SNOW* + & PRECIP(i,j,bi,bj)*AREApreTH(i,j) ELSE C add precip to the fresh water bucket - d_HFRWbyRAIN(I,J)=-convertPRECIP2HI* - & PRECIP(I,J,bi,bj)*AREApreTH(I,J) - d_HSNWbyRAIN(I,J)=0. _d 0 + d_HFRWbyRAIN(i,j)=-convertPRECIP2HI* + & PRECIP(i,j,bi,bj)*AREApreTH(i,j) + d_HSNWbyRAIN(i,j)=0. _d 0 ENDIF ENDDO ENDDO #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - d_HSNWbyRAIN_ITD(I,J,IT) - & = d_HSNWbyRAIN(I,J)*areaFracFactor(I,J,IT) + DO j=1,sNy + DO i=1,sNx + d_HSNWbyRAIN_ITD(i,j,IT) + & = d_HSNWbyRAIN(i,j)*areaFracFactor(i,j,IT) ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) + d_HSNWbyRAIN(I,J) + DO j=1,sNy + DO i=1,sNx + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj) + d_HSNWbyRAIN(i,j) ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1521,46 +1510,46 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) Cph( very sensitive bit here by JZ #ifndef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyOCN = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyOCN = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF (.NOT.SEAICE_growMeltByConv) THEN #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - tmpscal4 = HSNWITDpreTH(I,J,IT) - & + d_HSNWbySublim_ITD(I,J,IT) - & + d_HSNWbyATMonSNW_ITD(I,J,IT) - & + d_HSNWbyRAIN_ITD(I,J,IT) - tmpscal1=MAX(r_QbyOCN(i,j)*ICE2SNOW*areaFracFactor(I,J,IT), + DO j=1,sNy + DO i=1,sNx + tmpscal4 = HSNWITDpreTH(i,j,IT) + & + d_HSNWbySublim_ITD(i,j,IT) + & + d_HSNWbyATMonSNW_ITD(i,j,IT) + & + d_HSNWbyRAIN_ITD(i,j,IT) + tmpscal1=MAX(r_QbyOCN(i,j)*ICE2SNOW*areaFracFactor(i,j,IT), & -tmpscal4) tmpscal2=MIN(tmpscal1,0. _d 0) #ifdef SEAICE_MODIFY_GROWTH_ADJ Cgf no additional dependency through snow - if ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 + IF ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 #endif - d_HSNWbyOCNonSNW_ITD(I,J,IT) = tmpscal2 - d_HSNWbyOCNonSNW(I,J) = d_HSNWbyOCNonSNW(I,J) + tmpscal2 - r_QbyOCN(I,J)=r_QbyOCN(I,J) - tmpscal2*SNOW2ICE + d_HSNWbyOCNonSNW_ITD(i,j,IT) = tmpscal2 + d_HSNWbyOCNonSNW(i,j) = d_HSNWbyOCNonSNW(i,j) + tmpscal2 + r_QbyOCN(i,j)=r_QbyOCN(i,j) - tmpscal2*SNOW2ICE ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - tmpscal1=MAX(r_QbyOCN(i,j)*ICE2SNOW, -HSNOW(I,J,bi,bj)) + DO j=1,sNy + DO i=1,sNx + tmpscal1=MAX(r_QbyOCN(i,j)*ICE2SNOW, -HSNOW(i,j,bi,bj)) tmpscal2=MIN(tmpscal1,0. _d 0) #ifdef SEAICE_MODIFY_GROWTH_ADJ Cgf no additional dependency through snow - if ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 + IF ( SEAICEadjMODE.GE.2 ) tmpscal2 = 0. _d 0 #endif - d_HSNWbyOCNonSNW(I,J) = tmpscal2 - r_QbyOCN(I,J)=r_QbyOCN(I,J) - & -d_HSNWbyOCNonSNW(I,J)*SNOW2ICE - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj)+d_HSNWbyOCNonSNW(I,J) + d_HSNWbyOCNonSNW(i,j) = tmpscal2 + r_QbyOCN(i,j)=r_QbyOCN(i,j) + & -d_HSNWbyOCNonSNW(i,j)*SNOW2ICE + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj)+d_HSNWbyOCNonSNW(i,j) ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1573,38 +1562,38 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C gain of new ice over open water C =============================== #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyATM_open = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE r_QbyOCN = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE a_QSWbyATM_cover = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE a_QSWbyATM_open = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyATM_open = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE r_QbyOCN = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE a_QSWbyATM_cover = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE a_QSWbyATM_open = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx #ifdef SEAICE_ITD C HEFF will be updated at the end of PART 3, C hence sum of tendencies so far is needed - tmpscal4 = HEFFpreTH(I,J) - & + d_HEFFbySublim(I,J) - & + d_HEFFbyOCNonICE(I,J) - & + d_HEFFbyATMonOCN(I,J) + tmpscal4 = HEFFpreTH(i,j) + & + d_HEFFbySublim(i,j) + & + d_HEFFbyOCNonICE(i,j) + & + d_HEFFbyATMonOCN(i,j) #else /* ndef SEAICE_ITD */ C HEFF is updated step by step throughout seaice_growth - tmpscal4 = HEFF(I,J,bi,bj) + tmpscal4 = HEFF(i,j,bi,bj) #endif /* SEAICE_ITD */ C Initial ice growth is triggered by open water C heat flux overcoming potential melt by ocean - tmpscal1=r_QbyATM_open(I,J)+r_QbyOCN(i,j) * - & (1.0 _d 0 - AREApreTH(I,J)) + tmpscal1=r_QbyATM_open(i,j)+r_QbyOCN(i,j) * + & (1.0 _d 0 - AREApreTH(i,j)) C Penetrative shortwave flux beyond first layer C that is therefore not available to ice growth/melt - tmpscal2=SWFracB * a_QSWbyATM_open(I,J) + tmpscal2=SEAICE_SWFrac * a_QSWbyATM_open(i,j) C impose -HEFF as the maxmum melting if SEAICE_doOpenWaterMelt C or 0. otherwise (no melting if not SEAICE_doOpenWaterMelt) tmpscal3=facOpenGrow*MAX(tmpscal1-tmpscal2, - & -tmpscal4*facOpenMelt)*HEFFM(I,J,bi,bj) -#ifdef SEAICE_GREASE + & -tmpscal4*facOpenMelt)*HEFFM(i,j,bi,bj) +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C Grease ice is a tracer or "bucket" for newly formed frazil ice C that instead of becoming solid sea ice instantly has a half-time C of 1 day (see greaseDecayTime) before solidifying. @@ -1616,11 +1605,11 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C C 1) mechanical removal of grease by ridging: C if there is no open water left after advection, there cannot be any grease ice - if ((1.0 _d 0 - AREApreTH(I,J)).LE.siEps) then - tmpscal3 = tmpscal3 + SItracer(I,J,bi,bj,iTrGrease) - SItracer(I,J,bi,bj,iTrGrease) = 0. _d 0 + IF ((1.0 _d 0 - AREApreTH(i,j)).LE.siEps) THEN + tmpscal3 = tmpscal3 + SItracer(i,j,bi,bj,iTrGrease) + SItracer(i,j,bi,bj,iTrGrease) = 0. _d 0 - elseif (greaseNewFrazil .GT. 0. _d 0) then + ELSEIF (greaseNewFrazil .GT. 0. _d 0) THEN C new ice growth goes into grease tracer not HEFF: tmpscal3=0. _d 0 C @@ -1631,49 +1620,49 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C (50% of grease ice area become solid ice within 24h): tmpscal1=exp(-SEAICE_deltaTtherm/greaseDecayTime) C gain in solid sea ice volume due to solidified grease: - d_HEFFbyGREASE(I,J) = - & SItracer(I,J,bi,bj,iTrGrease) + d_HEFFbyGREASE(i,j) = + & SItracer(i,j,bi,bj,iTrGrease) & * (1.0 _d 0 - tmpscal1) C ... and related loss of grease ice (tracer) volume - SItracer(I,J,bi,bj,iTrGrease) = - & SItracer(I,J,bi,bj,iTrGrease) * tmpscal1 + SItracer(i,j,bi,bj,iTrGrease) = + & SItracer(i,j,bi,bj,iTrGrease) * tmpscal1 C the solidified grease ice volume needs to be added to HEFF: - SItrBucket(I,J,bi,bj,iTrGrease) = - & SItrBucket(I,J,bi,bj,iTrGrease) - & + d_HEFFbyGREASE(I,J) + SItrBucket(i,j,bi,bj,iTrGrease) = + & SItrBucket(i,j,bi,bj,iTrGrease) + & + d_HEFFbyGREASE(i,j) C C 3) grease ice growth from new frazil ice: C SItracer(i,j,bi,bj,iTrGrease) = & SItracer(i,j,bi,bj,iTrGrease) + greaseNewFrazil - endif + ENDIF C 4) mapping SItrBucket to external variable, in this case HEFF, ... - tmpscal3=tmpscal3+SItrBucket(I,J,bi,bj,iTrGrease) + tmpscal3=tmpscal3+SItrBucket(i,j,bi,bj,iTrGrease) C ... and empty SItrBucket for tracer 'grease' - SItrBucket(I,J,bi,bj,iTrGrease)=0. _d 0 + SItrBucket(i,j,bi,bj,iTrGrease)=0. _d 0 #endif /* SEAICE_GREASE */ #ifdef SEAICE_ITD C ice growth in open water adds to first category - d_HEFFbyATMonOCN_open_ITD(I,J,1)=tmpscal3 - d_HEFFbyATMonOCN_ITD(I,J,1) =d_HEFFbyATMonOCN_ITD(I,J,1) + d_HEFFbyATMonOCN_open_ITD(i,j,1)=tmpscal3 + d_HEFFbyATMonOCN_ITD(i,j,1) =d_HEFFbyATMonOCN_ITD(i,j,1) & +tmpscal3 #endif /* SEAICE_ITD */ - d_HEFFbyATMonOCN_open(I,J)=tmpscal3 - d_HEFFbyATMonOCN(I,J)=d_HEFFbyATMonOCN(I,J)+tmpscal3 - r_QbyATM_open(I,J)=r_QbyATM_open(I,J)-tmpscal3 - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) + tmpscal3 + d_HEFFbyATMonOCN_open(i,j)=tmpscal3 + d_HEFFbyATMonOCN(i,j)=d_HEFFbyATMonOCN(i,j)+tmpscal3 + r_QbyATM_open(i,j)=r_QbyATM_open(i,j)-tmpscal3 + HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj) + tmpscal3 ENDDO ENDDO #ifdef ALLOW_SITRACER - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C needs to be here to allow use also with LEGACY branch #ifdef SEAICE_ITD - SItrHEFF(I,J,bi,bj,4)=SItrHEFF(I,J,bi,bj,3) - & +d_HEFFbyATMonOCN_open(I,J) + SItrHEFF(i,j,bi,bj,4)=SItrHEFF(i,j,bi,bj,3) + & +d_HEFFbyATMonOCN_open(i,j) #else /* ndef SEAICE_ITD */ - SItrHEFF(I,J,bi,bj,4)=HEFF(I,J,bi,bj) + SItrHEFF(i,j,bi,bj,4)=HEFF(i,j,bi,bj) #endif /* SEAICE_ITD */ ENDDO ENDDO @@ -1684,41 +1673,41 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C note: in legacy, this process is done at the end #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( SEAICEuseFlooding ) THEN #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - tmpscal3 = HEFFITDpreTH(I,J,IT) - & + d_HEFFbySublim_ITD(I,J,IT) - & + d_HEFFbyOCNonICE_ITD(I,J,IT) - & + d_HEFFbyATMonOCN_ITD(I,J,IT) - tmpscal4 = HSNWITDpreTH(I,J,IT) - & + d_HSNWbySublim_ITD(I,J,IT) - & + d_HSNWbyATMonSNW_ITD(I,J,IT) - & + d_HSNWbyRAIN_ITD(I,J,IT) + DO j=1,sNy + DO i=1,sNx + tmpscal3 = HEFFITDpreTH(i,j,IT) + & + d_HEFFbySublim_ITD(i,j,IT) + & + d_HEFFbyOCNonICE_ITD(i,j,IT) + & + d_HEFFbyATMonOCN_ITD(i,j,IT) + tmpscal4 = HSNWITDpreTH(i,j,IT) + & + d_HSNWbySublim_ITD(i,j,IT) + & + d_HSNWbyATMonSNW_ITD(i,j,IT) + & + d_HSNWbyRAIN_ITD(i,j,IT) tmpscal0 = (tmpscal4*SEAICE_rhoSnow & + tmpscal3*SEAICE_rhoIce) & * recip_rhoConst tmpscal1 = MAX( 0. _d 0, tmpscal0 - tmpscal3) - d_HEFFbyFLOODING_ITD(I,J,IT) = tmpscal1 - d_HEFFbyFLOODING(I,J) = d_HEFFbyFLOODING(I,J) + tmpscal1 + d_HEFFbyFLOODING_ITD(i,j,IT) = tmpscal1 + d_HEFFbyFLOODING(i,j) = d_HEFFbyFLOODING(i,j) + tmpscal1 ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx - tmpscal0 = (HSNOW(I,J,bi,bj)*SEAICE_rhoSnow - & +HEFF(I,J,bi,bj)*SEAICE_rhoIce)*recip_rhoConst - tmpscal1 = MAX( 0. _d 0, tmpscal0 - HEFF(I,J,bi,bj)) - d_HEFFbyFLOODING(I,J)=tmpscal1 - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj)+d_HEFFbyFLOODING(I,J) - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj)- - & d_HEFFbyFLOODING(I,J)*ICE2SNOW + DO j=1,sNy + DO i=1,sNx + tmpscal0 = (HSNOW(i,j,bi,bj)*SEAICE_rhoSnow + & +HEFF(i,j,bi,bj)*SEAICE_rhoIce)*recip_rhoConst + tmpscal1 = MAX( 0. _d 0, tmpscal0 - HEFF(i,j,bi,bj)) + d_HEFFbyFLOODING(i,j)=tmpscal1 + HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj)+d_HEFFbyFLOODING(i,j) + HSNOW(i,j,bi,bj) = HSNOW(i,j,bi,bj)- + & d_HEFFbyFLOODING(i,j)*ICE2SNOW ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1728,19 +1717,19 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C apply ice and snow thickness changes C ================================================================= DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - HEFFITD(I,J,IT,bi,bj) = HEFFITD(I,J,IT,bi,bj) - & + d_HEFFbySublim_ITD(I,J,IT) - & + d_HEFFbyOCNonICE_ITD(I,J,IT) - & + d_HEFFbyATMonOCN_ITD(I,J,IT) - & + d_HEFFbyFLOODING_ITD(I,J,IT) - HSNOWITD(I,J,IT,bi,bj) = HSNOWITD(I,J,IT,bi,bj) - & + d_HSNWbySublim_ITD(I,J,IT) - & + d_HSNWbyATMonSNW_ITD(I,J,IT) - & + d_HSNWbyRAIN_ITD(I,J,IT) - & + d_HSNWbyOCNonSNW_ITD(I,J,IT) - & - d_HEFFbyFLOODING_ITD(I,J,IT) + DO j=1,sNy + DO i=1,sNx + HEFFITD(i,j,IT,bi,bj) = HEFFITD(i,j,IT,bi,bj) + & + d_HEFFbySublim_ITD(i,j,IT) + & + d_HEFFbyOCNonICE_ITD(i,j,IT) + & + d_HEFFbyATMonOCN_ITD(i,j,IT) + & + d_HEFFbyFLOODING_ITD(i,j,IT) + HSNOWITD(i,j,IT,bi,bj) = HSNOWITD(i,j,IT,bi,bj) + & + d_HSNWbySublim_ITD(i,j,IT) + & + d_HSNWbyATMonSNW_ITD(i,j,IT) + & + d_HSNWbyRAIN_ITD(i,j,IT) + & + d_HSNWbyOCNonSNW_ITD(i,j,IT) + & - d_HEFFbyFLOODING_ITD(i,j,IT) & * ICE2SNOW ENDDO ENDDO @@ -1752,23 +1741,23 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C =================================================================== #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN_cover = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN_open = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE recip_heffActual = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_hsnwbyatmonsnw = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN_cover = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN_open = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE recip_heffActual = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_hsnwbyatmonsnw = comlev1_bibj,key=tkey,byte=isbyte cph( -cphCADJ STORE d_AREAbyATM = comlev1_bibj,key=iicekey,byte=isbyte -cphCADJ STORE d_AREAbyICE = comlev1_bibj,key=iicekey,byte=isbyte -cphCADJ STORE d_AREAbyOCN = comlev1_bibj,key=iicekey,byte=isbyte +cphCADJ STORE d_AREAbyATM = comlev1_bibj,key=tkey,byte=isbyte +cphCADJ STORE d_AREAbyICE = comlev1_bibj,key=tkey,byte=isbyte +cphCADJ STORE d_AREAbyOCN = comlev1_bibj,key=tkey,byte=isbyte cph) -CADJ STORE a_QbyATM_open = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE heffActual = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE AREApreTH = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE HEFF(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE AREA(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE a_QbyATM_open = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE heffActual = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE AREApreTH = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE HEFF(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE AREA(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef SEAICE_ITD @@ -1776,45 +1765,45 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C-- "non-ITD" way, so that the ITD simulation with SEAICE_multDim=1 C-- is identical with the non-ITD simulation; C-- use HEFF, ARE, HSNOW, etc. as temporal storage for 1st category - DO J=1,sNy - DO I=1,sNx - HEFF(I,J,bi,bj)=HEFFITD(I,J,1,bi,bj) - AREA(I,J,bi,bj)=AREAITD(I,J,1,bi,bj) - HSNOW(I,J,bi,bj)=HSNOWITD(I,J,1,bi,bj) - HEFFpreTH(I,J)=HEFFITDpreTH(I,J,1) - AREApreTH(I,J)=AREAITDpreTH(I,J,1) - recip_heffActual(I,J)=recip_heffActualMult(I,J,1) + DO j=1,sNy + DO i=1,sNx + HEFF(i,j,bi,bj)=HEFFITD(i,j,1,bi,bj) + AREA(i,j,bi,bj)=AREAITD(i,j,1,bi,bj) + HSNOW(i,j,bi,bj)=HSNOWITD(i,j,1,bi,bj) + HEFFpreTH(i,j)=HEFFITDpreTH(i,j,1) + AREApreTH(i,j)=AREAITDpreTH(i,j,1) + recip_heffActual(i,j)=recip_heffActualMult(i,j,1) ENDDO ENDDO #endif /* SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C grease ice layer thickness (Hg) includes C 1 part frazil ice and 3 parts sea water C i.e. HO = 0.25 * Hg - recip_HO=4. _d 0 / greaseLayerThick(I,J) + recip_HO=4. _d 0 / greaseLayerThick(i,j) #else /* SEAICE_GREASE */ - IF ( YC(I,J,bi,bj) .LT. ZERO ) THEN + IF ( YC(i,j,bi,bj) .LT. ZERO ) THEN recip_HO=1. _d 0 / HO_south ELSE recip_HO=1. _d 0 / HO ENDIF #endif /* SEAICE_GREASE */ - recip_HH = recip_heffActual(I,J) + recip_HH = recip_heffActual(i,j) C gain of ice over open water : computed from -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C from growth by ATM with grease ice time delay - tmpscal4 = MAX(ZERO,d_HEFFbyGREASE(I,J)) + tmpscal4 = MAX(ZERO,d_HEFFbyGREASE(i,j)) #else /* SEAICE_GREASE */ C (SEAICE_areaGainFormula.EQ.1) from growth by ATM C (SEAICE_areaGainFormula.EQ.2) from predicted growth by ATM IF (SEAICE_areaGainFormula.EQ.1) THEN - tmpscal4 = MAX(ZERO,d_HEFFbyATMonOCN_open(I,J)) + tmpscal4 = MAX(ZERO,d_HEFFbyATMonOCN_open(i,j)) ELSE - tmpscal4=MAX(ZERO,a_QbyATM_open(I,J)) + tmpscal4=MAX(ZERO,a_QbyATM_open(i,j)) ENDIF #endif /* SEAICE_GREASE */ @@ -1823,18 +1812,18 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C (SEAICE_areaLossFormula.EQ.2) from net melt-growth>0 by ATM and OCN C (SEAICE_areaLossFormula.EQ.3) from predicted melt by ATM IF (SEAICE_areaLossFormula.EQ.1) THEN - tmpscal3 = MIN( 0. _d 0 , d_HEFFbyATMonOCN_cover(I,J) ) - & + MIN( 0. _d 0 , d_HEFFbyATMonOCN_open(I,J) ) - & + MIN( 0. _d 0 , d_HEFFbyOCNonICE(I,J) ) + tmpscal3 = MIN( 0. _d 0 , d_HEFFbyATMonOCN_cover(i,j) ) + & + MIN( 0. _d 0 , d_HEFFbyATMonOCN_open(i,j) ) + & + MIN( 0. _d 0 , d_HEFFbyOCNonICE(i,j) ) ELSEIF (SEAICE_areaLossFormula.EQ.2) THEN - tmpscal3 = MIN( 0. _d 0 , d_HEFFbyATMonOCN_cover(I,J) - & + d_HEFFbyATMonOCN_open(I,J) + d_HEFFbyOCNonICE(I,J) ) + tmpscal3 = MIN( 0. _d 0 , d_HEFFbyATMonOCN_cover(i,j) + & + d_HEFFbyATMonOCN_open(i,j) + d_HEFFbyOCNonICE(i,j) ) ELSE C compute heff after ice melt by ocn: - tmpscal0=HEFF(I,J,bi,bj) - d_HEFFbyATMonOCN(I,J) + tmpscal0=HEFF(i,j,bi,bj) - d_HEFFbyATMonOCN(i,j) C compute available heat left after snow melt by atm: - tmpscal1= a_QbyATM_open(I,J)+a_QbyATM_cover(I,J) - & - d_HSNWbyATMonSNW(I,J)*SNOW2ICE + tmpscal1= a_QbyATM_open(i,j)+a_QbyATM_cover(i,j) + & - d_HSNWbyATMonSNW(i,j)*SNOW2ICE C could not melt more than all the ice tmpscal2 = MAX(-tmpscal0,tmpscal1) tmpscal3 = MIN(ZERO,tmpscal2) @@ -1843,72 +1832,72 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C apply tendency IF ( (HEFF(i,j,bi,bj).GT.0. _d 0).OR. & (HSNOW(i,j,bi,bj).GT.0. _d 0) ) THEN - AREA(I,J,bi,bj)=MAX(0. _d 0, - & MIN( SEAICE_area_max, AREA(I,J,bi,bj) + AREA(i,j,bi,bj)=MAX(0. _d 0, + & MIN( SEAICE_area_max, AREA(i,j,bi,bj) & + recip_HO*tmpscal4+HALF*recip_HH*tmpscal3 & * areaPDFfac )) ELSE - AREA(I,J,bi,bj)=0. _d 0 + AREA(i,j,bi,bj)=0. _d 0 ENDIF #ifdef ALLOW_SITRACER - SItrAREA(I,J,bi,bj,3)=AREA(I,J,bi,bj) + SItrAREA(i,j,bi,bj,3)=AREA(i,j,bi,bj) #endif /* ALLOW_SITRACER */ #ifdef ALLOW_DIAGNOSTICS - d_AREAbyATM(I,J)= - & recip_HO*MAX(ZERO,d_HEFFbyATMonOCN_open(I,J)) - & +HALF*recip_HH*MIN(0. _d 0,d_HEFFbyATMonOCN_open(I,J)) + d_AREAbyATM(i,j)= + & recip_HO*MAX(ZERO,d_HEFFbyATMonOCN_open(i,j)) + & +HALF*recip_HH*MIN(0. _d 0,d_HEFFbyATMonOCN_open(i,j)) & *areaPDFfac - d_AREAbyICE(I,J)= - & HALF*recip_HH*MIN(0. _d 0,d_HEFFbyATMonOCN_cover(I,J)) + d_AREAbyICE(i,j)= + & HALF*recip_HH*MIN(0. _d 0,d_HEFFbyATMonOCN_cover(i,j)) & *areaPDFfac - d_AREAbyOCN(I,J)= - & HALF*recip_HH*MIN( 0. _d 0,d_HEFFbyOCNonICE(I,J) ) + d_AREAbyOCN(i,j)= + & HALF*recip_HH*MIN( 0. _d 0,d_HEFFbyOCNonICE(i,j) ) & *areaPDFfac #endif /* ALLOW_DIAGNOSTICS */ ENDDO ENDDO #ifdef SEAICE_ITD C transfer 1st category values back into ITD variables - DO J=1,sNy - DO I=1,sNx - HEFFITD(I,J,1,bi,bj)=HEFF(I,J,bi,bj) - AREAITD(I,J,1,bi,bj)=AREA(I,J,bi,bj) - HSNOWITD(I,J,1,bi,bj)=HSNOW(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + HEFFITD(i,j,1,bi,bj)=HEFF(i,j,bi,bj) + AREAITD(i,j,1,bi,bj)=AREA(i,j,bi,bj) + HSNOWITD(i,j,1,bi,bj)=HSNOW(i,j,bi,bj) ENDDO ENDDO C now melt ice laterally in all other thickness categories C (areal growth, i.e. new ice formation, only occurrs in 1st category) - IF (SEAICE_multDim .gt. 1) THEN + IF (SEAICE_multDim .GT. 1) THEN DO IT=2,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF (HEFFITD(I,J,IT,bi,bj).LE.ZERO) THEN + DO j=1,sNy + DO i=1,sNx + IF (HEFFITD(i,j,IT,bi,bj).LE.ZERO) THEN C when thickness is zero, area should be zero, too: - AREAITD(I,J,IT,bi,bj)=ZERO + AREAITD(i,j,IT,bi,bj)=ZERO ELSE C tmpscal1 is the minimal ice concentration after lateral melt that will C not lead to an unphysical increase of ice thickness by lateral melt; C estimated as the concentration before thermodynamics scaled by the C ratio of new ice thickness and ice thickness before thermodynamics - IF ( HEFFITDpreTH(I,J,IT).LE.ZERO ) THEN + IF ( HEFFITDpreTH(i,j,IT).LE.ZERO ) THEN tmpscal1=0. _d 0 ELSE - tmpscal1=AREAITDpreTH(I,J,IT)* - & HEFFITD(I,J,IT,bi,bj)/HEFFITDpreTH(I,J,IT) + tmpscal1=AREAITDpreTH(i,j,IT)* + & HEFFITD(i,j,IT,bi,bj)/HEFFITDpreTH(i,j,IT) ENDIF C melt ice laterally based on an average floe sice C following Steele (1992) - AREAITD(I,J,IT,bi,bj) = AREAITD(I,J,IT,bi,bj) - & * (ONE - latMeltFrac(I,J,IT)) + AREAITD(i,j,IT,bi,bj) = AREAITD(i,j,IT,bi,bj) + & * (ONE - latMeltFrac(i,j,IT)) CML not necessary: CML AREAITD(I,J,IT,bi,bj) = max(ZERO,AREAITD(I,J,IT,bi,bj)) C limit area reduction so that actual ice thickness does not increase - AREAITD(I,J,IT,bi,bj) = max(AREAITD(I,J,IT,bi,bj), + AREAITD(i,j,IT,bi,bj) = max(AREAITD(i,j,IT,bi,bj), & tmpscal1) ENDIF #ifdef ALLOW_SITRACER - SItrAREA(I,J,bi,bj,3)=SItrAREA(I,J,bi,bj,3) - & +AREAITD(I,J,IT,bi,bj) + SItrAREA(i,j,bi,bj,3)=SItrAREA(i,j,bi,bj,3) + & +AREAITD(i,j,IT,bi,bj) #endif /* ALLOW_SITRACER */ ENDDO ENDDO @@ -1916,24 +1905,24 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF #endif /* SEAICE_ITD */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) Cgf 'bulk' linearization of area=f(HEFF) IF ( SEAICEadjMODE.GE.1 ) THEN #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - AREAITD(I,J,IT,bi,bj) = AREAITDpreTH(I,J,IT) + 0.1 _d 0 * - & ( HEFFITD(I,J,IT,bi,bj) - HEFFITDpreTH(I,J,IT) ) + DO j=1,sNy + DO i=1,sNx + AREAITD(i,j,IT,bi,bj) = AREAITDpreTH(i,j,IT) + 0.1 _d 0 * + & ( HEFFITD(i,j,IT,bi,bj) - HEFFITDpreTH(i,j,IT) ) ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C AREA(I,J,bi,bj) = 0.1 _d 0 * HEFF(I,J,bi,bj) - AREA(I,J,bi,bj) = AREApreTH(I,J) + 0.1 _d 0 * - & ( HEFF(I,J,bi,bj) - HEFFpreTH(I,J) ) + AREA(i,j,bi,bj) = AREApreTH(i,j) + 0.1 _d 0 * + & ( HEFF(i,j,bi,bj) - HEFFpreTH(i,j) ) ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -1949,17 +1938,17 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C (the updated HEFF is used below for ice salinity increments) CALL SEAICE_ITD_SUM(bi, bj, myTime, myIter, myThid) #endif /* SEAICE_ITD */ -#ifdef SEAICE_GREASE +#if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C convert SItracer 'grease' from grease ice volume back to ratio: C =============================================================== - DO J=1,sNy - DO I=1,sNx - if (HEFF(I,J,bi,bj).GT.siEps) then - SItracer(I,J,bi,bj,iTrGrease) = - & SItracer(I,J,bi,bj,iTrGrease) / HEFF(I,J,bi,bj) - else - SItracer(I,J,bi,bj,iTrGrease) = 0. _d 0 - endif + DO j=1,sNy + DO i=1,sNx + IF (HEFF(i,j,bi,bj).GT.siEps) THEN + SItracer(i,j,bi,bj,iTrGrease) = + & SItracer(i,j,bi,bj,iTrGrease) / HEFF(i,j,bi,bj) + ELSE + SItracer(i,j,bi,bj,iTrGrease) = 0. _d 0 + ENDIF ENDDO ENDDO #endif /* SEAICE_GREASE */ @@ -1971,45 +1960,45 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifndef SEAICE_VARIABLE_SALINITY # ifdef ALLOW_AUTODIFF_TAMC CADJ STORE d_HEFFbyNEG(:,:,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte # ifdef ALLOW_SALT_PLUME -CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN_open = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN_cover = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyFLOODING = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbySublim = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN_open = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN_cover = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyFLOODING = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbySublim = comlev1_bibj,key=tkey,byte=isbyte CADJ STORE salt(:,:,kSurface,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte # endif /* ALLOW_SALT_PLUME */ # endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx - tmpscal1 = d_HEFFbyNEG(I,J,bi,bj) + d_HEFFbyOCNonICE(I,J) + - & d_HEFFbyATMonOCN(I,J) + d_HEFFbyFLOODING(I,J) - & + d_HEFFbySublim(I,J) + DO j=1,sNy + DO i=1,sNx + tmpscal1 = d_HEFFbyNEG(i,j,bi,bj) + d_HEFFbyOCNonICE(i,j) + + & d_HEFFbyATMonOCN(i,j) + d_HEFFbyFLOODING(i,j) + & + d_HEFFbySublim(i,j) #ifdef EXF_SEAICE_FRACTION - & + d_HEFFbyRLX(I,J,bi,bj) + & + d_HEFFbyRLX(i,j,bi,bj) #endif Catn: can not take out more that surface salinity when SSS 0 : m of sea ice that is created IF ( tmpscal1 .GE. 0.0 ) THEN - saltFlux(I,J,bi,bj) = - & HEFFM(I,J,bi,bj)*recip_deltaTtherm - & *SEAICE_saltFrac*salt(I,J,kSurface,bi,bj) + saltFlux(i,j,bi,bj) = + & HEFFM(i,j,bi,bj)*recip_deltaTtherm + & *SEAICE_saltFrac*salt(i,j,kSurface,bi,bj) & *tmpscal1*SEAICE_rhoIce #ifdef ALLOW_SALT_PLUME #ifdef SALT_PLUME_SPLIT_BASIN catn attempt to split East/West basins in Arctic - localSPfrac(I,J) = SPsalFRAC(1) + localSPfrac(i,j) = SPsalFRAC(1) IF ( SaltPlumeSplitBasin ) THEN - localSPfrac(I,J) = SPsalFRAC(2) - IF(YC(I,J,bi,bj).LT. 85.0 .AND. YC(I,J,bi,bj).GT. 71.0 - & .AND. XC(I,J,bi,bj) .LT. -90.0) THEN - localSPfrac(I,J) = SPsalFRAC(1) + localSPfrac(i,j) = SPsalFRAC(2) + IF(YC(i,j,bi,bj).LT. 85.0 .AND. YC(i,j,bi,bj).GT. 71.0 + & .AND. XC(i,j,bi,bj) .LT. -90.0) THEN + localSPfrac(i,j) = SPsalFRAC(1) ENDIF ENDIF #else - localSPfrac(I,J) = SPsalFRAC + localSPfrac(i,j) = SPsalFRAC #endif /* SALT_PLUME_SPLIT_BASIN */ #ifndef SALT_PLUME_IN_LEADS C saltPlumeFlux is defined only during freezing: - saltPlumeFlux(I,J,bi,bj)= - & HEFFM(I,J,bi,bj)*recip_deltaTtherm - & *(ONE-SEAICE_saltFrac)*salt(I,J,kSurface,bi,bj) + saltPlumeFlux(i,j,bi,bj)= + & HEFFM(i,j,bi,bj)*recip_deltaTtherm + & *(ONE-SEAICE_saltFrac)*salt(i,j,kSurface,bi,bj) & *tmpscal1*SEAICE_rhoIce - & *localSPfrac(I,J) + & *localSPfrac(i,j) #endif /* ndef SALT_PLUME_IN_LEADS */ #endif /* ALLOW_SALT_PLUME */ C tmpscal1 < 0 : m of sea ice that is melted ELSE - saltFlux(I,J,bi,bj) = - & HEFFM(I,J,bi,bj)*recip_deltaTtherm - & *HSALT(I,J,bi,bj) + saltFlux(i,j,bi,bj) = + & HEFFM(i,j,bi,bj)*recip_deltaTtherm + & *HSALT(i,j,bi,bj) & *tmpscal1/tmpscal2 #ifdef ALLOW_SALT_PLUME #ifndef SALT_PLUME_IN_LEADS @@ -2105,43 +2094,43 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C occurs more uniform over grid cell and not inLeads, thus not C participating in pkg/salt_plume. C Note: tmpscal1 is defined only after saltFlux is calculated. - IceGrowthRateInLeads(I,J)=max(0. _d 0,d_HEFFbyATMonOCN(I,J)) - tmpscal1 = IceGrowthRateInLeads(I,J) - leadPlumeFraction(I,J) = - & (ONE + EXP( (SPinflectionPoint - AREApreTH(I,J))*5.0 + IceGrowthRateInLeads(i,j)=max(0. _d 0,d_HEFFbyATMonOCN(i,j)) + tmpscal1 = IceGrowthRateInLeads(i,j) + leadPlumeFraction(i,j) = + & (ONE + EXP( (SPinflectionPoint - AREApreTH(i,j))*5.0 & /(ONE - SPinflectionPoint) ))**(-ONE) - localSPfrac(I,J)=localSPfrac(I,J)*leadPlumeFraction(I,J) + localSPfrac(i,j)=localSPfrac(i,j)*leadPlumeFraction(i,j) IF ( tmpscal1 .GE. 0.0) THEN C saltPlumeFlux is defined only during freezing: - saltPlumeFlux(I,J,bi,bj)= - & HEFFM(I,J,bi,bj)*recip_deltaTtherm - & *(ONE-SEAICE_saltFrac)*salt(I,J,kSurface,bi,bj) + saltPlumeFlux(i,j,bi,bj)= + & HEFFM(i,j,bi,bj)*recip_deltaTtherm + & *(ONE-SEAICE_saltFrac)*salt(i,j,kSurface,bi,bj) & *tmpscal1*SEAICE_rhoIce - & *localSPfrac(I,J) + & *localSPfrac(i,j) ELSE - saltPlumeFlux(I,J,bi,bj) = 0. _d 0 + saltPlumeFlux(i,j,bi,bj) = 0. _d 0 ENDIF #endif /* SALT_PLUME_IN_LEADS */ C if SaltPlumeSouthernOcean=.FALSE. turn off salt plume in Southern Ocean IF ( .NOT. SaltPlumeSouthernOcean ) THEN - IF ( YC(I,J,bi,bj) .LT. 0.0 _d 0 ) + IF ( YC(i,j,bi,bj) .LT. 0.0 _d 0 ) & saltPlumeFlux(i,j,bi,bj) = 0.0 _d 0 ENDIF #endif /* ALLOW_SALT_PLUME */ C update HSALT based on surface saltFlux - HSALT(I,J,bi,bj) = HSALT(I,J,bi,bj) + - & saltFlux(I,J,bi,bj) * SEAICE_deltaTtherm - saltFlux(I,J,bi,bj) = - & saltFlux(I,J,bi,bj) + saltFluxAdjust(I,J,bi,bj) + HSALT(i,j,bi,bj) = HSALT(i,j,bi,bj) + + & saltFlux(i,j,bi,bj) * SEAICE_deltaTtherm + saltFlux(i,j,bi,bj) = + & saltFlux(i,j,bi,bj) + saltFluxAdjust(i,j,bi,bj) ENDDO ENDDO #endif /* SEAICE_VARIABLE_SALINITY */ #ifdef ALLOW_SITRACER - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C needs to be here to allow use also with LEGACY branch - SItrHEFF(I,J,bi,bj,5)=HEFF(I,J,bi,bj) + SItrHEFF(i,j,bi,bj,5)=HEFF(i,j,bi,bj) ENDDO ENDDO #endif /* ALLOW_SITRACER */ @@ -2156,17 +2145,17 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef SEAICE_ITD C compute total of "mult" fluxes for ocean forcing - DO J=1,sNy - DO I=1,sNx - a_QbyATM_cover(I,J) = 0.0 _d 0 - r_QbyATM_cover(I,J) = 0.0 _d 0 - a_QSWbyATM_cover(I,J) = 0.0 _d 0 - r_FWbySublim(I,J) = 0.0 _d 0 + DO j=1,sNy + DO i=1,sNx + a_QbyATM_cover(i,j) = 0.0 _d 0 + r_QbyATM_cover(i,j) = 0.0 _d 0 + a_QSWbyATM_cover(i,j) = 0.0 _d 0 + r_FWbySublim(i,j) = 0.0 _d 0 ENDDO ENDDO DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C if fluxes in W/m^2 then use: c a_QbyATM_cover(I,J)=a_QbyATM_cover(I,J) c & + a_QbyATMmult_cover(I,J,IT) * areaFracFactor(I,J,IT) @@ -2177,14 +2166,14 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) c r_FWbySublim(I,J)=r_FWbySublim(I,J) c & + r_FWbySublimMult(I,J,IT) * areaFracFactor(I,J,IT) C if fluxes in effective ice meters, i.e. ice volume per area, then use: - a_QbyATM_cover(I,J)=a_QbyATM_cover(I,J) - & + a_QbyATMmult_cover(I,J,IT) - r_QbyATM_cover(I,J)=r_QbyATM_cover(I,J) - & + r_QbyATMmult_cover(I,J,IT) - a_QSWbyATM_cover(I,J)=a_QSWbyATM_cover(I,J) - & + a_QSWbyATMmult_cover(I,J,IT) - r_FWbySublim(I,J)=r_FWbySublim(I,J) - & + r_FWbySublimMult(I,J,IT) + a_QbyATM_cover(i,j)=a_QbyATM_cover(i,j) + & + a_QbyATMmult_cover(i,j,IT) + r_QbyATM_cover(i,j)=r_QbyATM_cover(i,j) + & + r_QbyATMmult_cover(i,j,IT) + a_QSWbyATM_cover(i,j)=a_QSWbyATM_cover(i,j) + & + a_QSWbyATMmult_cover(i,j,IT) + r_FWbySublim(i,j)=r_FWbySublim(i,j) + & + r_FWbySublimMult(i,j,IT) ENDDO ENDDO ENDDO @@ -2192,39 +2181,39 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE d_hsnwbyneg(:,:,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte -CADJ STORE d_hsnwbyocnonsnw = comlev1_bibj,key=iicekey,byte=isbyte +CADJ & key = tkey, byte = isbyte +CADJ STORE d_hsnwbyocnonsnw = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx - QNET(I,J,bi,bj) = r_QbyATM_cover(I,J) + r_QbyATM_open(I,J) - & + a_QSWbyATM_cover(I,J) - & - ( d_HEFFbyOCNonICE(I,J) - & + d_HSNWbyOCNonSNW(I,J)*SNOW2ICE - & + d_HEFFbyNEG(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + QNET(i,j,bi,bj) = r_QbyATM_cover(i,j) + r_QbyATM_open(i,j) + & + a_QSWbyATM_cover(i,j) + & - ( d_HEFFbyOCNonICE(i,j) + & + d_HSNWbyOCNonSNW(i,j)*SNOW2ICE + & + d_HEFFbyNEG(i,j,bi,bj) #ifdef EXF_SEAICE_FRACTION - & + d_HEFFbyRLX(I,J,bi,bj) + & + d_HEFFbyRLX(i,j,bi,bj) #endif - & + d_HSNWbyNEG(I,J,bi,bj)*SNOW2ICE + & + d_HSNWbyNEG(i,j,bi,bj)*SNOW2ICE & - convertPRECIP2HI * - & snowPrecip(i,j,bi,bj) * (ONE-AREApreTH(I,J)) - & ) * HEFFM(I,J,bi,bj) + & snowPrecip(i,j,bi,bj) * (ONE-AREApreTH(i,j)) + & ) * HEFFM(i,j,bi,bj) ENDDO ENDDO - DO J=1,sNy - DO I=1,sNx - QSW(I,J,bi,bj) = a_QSWbyATM_cover(I,J) + a_QSWbyATM_open(I,J) + DO j=1,sNy + DO i=1,sNx + QSW(i,j,bi,bj) = a_QSWbyATM_cover(i,j) + a_QSWbyATM_open(i,j) ENDDO ENDDO C switch heat fluxes from 'effective' ice meters to W/m2 C ====================================================== - DO J=1,sNy - DO I=1,sNx - QNET(I,J,bi,bj) = QNET(I,J,bi,bj)*convertHI2Q - QSW(I,J,bi,bj) = QSW(I,J,bi,bj)*convertHI2Q + DO j=1,sNy + DO i=1,sNx + QNET(i,j,bi,bj) = QNET(i,j,bi,bj)*convertHI2Q + QSW(i,j,bi,bj) = QSW(i,j,bi,bj)*convertHI2Q ENDDO ENDDO @@ -2233,15 +2222,15 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C =================================================================== # ifdef ALLOW_AUTODIFF_TAMC CADJ STORE d_HEFFbyNEG(:,:,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte -CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=iicekey,byte=isbyte +CADJ & key = tkey, byte = isbyte +CADJ STORE d_HEFFbyOCNonICE = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HEFFbyATMonOCN = comlev1_bibj,key=tkey,byte=isbyte CADJ STORE d_HSNWbyNEG(:,:,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte -CADJ STORE d_HSNWbyOCNonSNW = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE d_HSNWbyATMonSNW = comlev1_bibj,key=iicekey,byte=isbyte +CADJ & key = tkey, byte = isbyte +CADJ STORE d_HSNWbyOCNonSNW = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE d_HSNWbyATMonSNW = comlev1_bibj,key=tkey,byte=isbyte CADJ STORE theta(:,:,kSurface,bi,bj) = comlev1_bibj, -CADJ & key = iicekey, byte = isbyte +CADJ & key = tkey, byte = isbyte # endif /* ALLOW_AUTODIFF_TAMC */ Cgf Unlike for evap and precip, the temperature of gained/lost C ocean liquid water due to melt/freeze of solid water cannot be chosen @@ -2253,18 +2242,18 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C between ice and ocean boundary condition can result in all cases. C Below we therefore anticipate on external_forcing_surf.F C to diagnoze and/or apply the correction to QNET. - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx catn: initialize tmpscal1 tmpscal1 = ZERO C ocean water going to ice/snow, in precip units - tmpscal3=rhoConstFresh*HEFFM(I,J,bi,bj)*( - & ( d_HSNWbyATMonSNW(I,J)*SNOW2ICE - & + d_HSNWbyOCNonSNW(I,J)*SNOW2ICE - & + d_HEFFbyOCNonICE(I,J) + d_HEFFbyATMonOCN(I,J) - & + d_HEFFbyNEG(I,J,bi,bj)+ d_HSNWbyNEG(I,J,bi,bj)*SNOW2ICE ) + tmpscal3=rhoConstFresh*HEFFM(i,j,bi,bj)*( + & ( d_HSNWbyATMonSNW(i,j)*SNOW2ICE + & + d_HSNWbyOCNonSNW(i,j)*SNOW2ICE + & + d_HEFFbyOCNonICE(i,j) + d_HEFFbyATMonOCN(i,j) + & + d_HEFFbyNEG(i,j,bi,bj)+ d_HSNWbyNEG(i,j,bi,bj)*SNOW2ICE ) & * convertHI2PRECIP - & - snowPrecip(i,j,bi,bj) * (ONE-AREApreTH(I,J)) ) + & - snowPrecip(i,j,bi,bj) * (ONE-AREApreTH(i,j)) ) C factor in the heat content as done in external_forcing_surf.F IF ( (temp_EvPrRn.NE.UNSET_RL).AND. & useRealFreshWaterFlux.AND.(nonlinFreeSurf.NE.0) ) THEN @@ -2273,21 +2262,21 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ELSEIF ( (temp_EvPrRn.EQ.UNSET_RL).AND. & useRealFreshWaterFlux.AND.(nonlinFreeSurf.NE.0) ) THEN tmpscal1 = - tmpscal3* - & HeatCapacity_Cp * theta(I,J,kSurface,bi,bj) + & HeatCapacity_Cp * theta(i,j,kSurface,bi,bj) ELSEIF ( (temp_EvPrRn.NE.UNSET_RL) ) THEN tmpscal1 = - tmpscal3*HeatCapacity_Cp* - & ( temp_EvPrRn - theta(I,J,kSurface,bi,bj) ) + & ( temp_EvPrRn - theta(i,j,kSurface,bi,bj) ) ELSEIF ( (temp_EvPrRn.EQ.UNSET_RL) ) THEN tmpscal1 = ZERO ENDIF #ifdef ALLOW_DIAGNOSTICS C in all cases, diagnoze the boundary condition mismatch to SIaaflux - DIAGarrayA(I,J)=tmpscal1 + DIAGarrayA(i,j)=tmpscal1 #endif C remove the mismatch when real fresh water is exchanged (at 0degC here) IF ( useRealFreshWaterFlux.AND.(nonlinFreeSurf.GT.0) & .AND.SEAICEheatConsFix ) - & QNET(I,J,bi,bj)=QNET(I,J,bi,bj)+tmpscal1 + & QNET(i,j,bi,bj)=QNET(i,j,bi,bj)+tmpscal1 ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS @@ -2300,8 +2289,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C compute the net heat flux, incl. adv. by water, entering ocean+ice C =================================================================== - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx Cgf 1) SIatmQnt (analogous to qnet; excl. adv. by water exch.) CML If I consider the atmosphere above the ice, the surface flux CML which is relevant for the air temperature dT/dt Eq @@ -2310,24 +2299,24 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) CML since it does not contribute to heating the air. CML So this diagnostic is only good for heat budget calculations within CML the ice-ocean system. - SIatmQnt(I,J,bi,bj) = - & HEFFM(I,J,bi,bj)*convertHI2Q*( - & a_QSWbyATM_cover(I,J) + - & a_QbyATM_cover(I,J) + a_QbyATM_open(I,J) ) + SIatmQnt(i,j,bi,bj) = + & HEFFM(i,j,bi,bj)*convertHI2Q*( + & a_QSWbyATM_cover(i,j) + + & a_QbyATM_cover(i,j) + a_QbyATM_open(i,j) ) Cgf 2) SItflux (analogous to tflux; includes advection by water C exchanged between atmosphere and ocean+ice) C solid water going to atm, in precip units - tmpscal1 = rhoConstFresh*HEFFM(I,J,bi,bj) - & * convertHI2PRECIP * ( - d_HSNWbyRAIN(I,J)*SNOW2ICE - & + a_FWbySublim(I,J) - r_FWbySublim(I,J) ) + tmpscal1 = rhoConstFresh*HEFFM(i,j,bi,bj) + & * convertHI2PRECIP * ( - d_HSNWbyRAIN(i,j)*SNOW2ICE + & + a_FWbySublim(i,j) - r_FWbySublim(i,j) ) C liquid water going to atm, in precip units - tmpscal2=rhoConstFresh*HEFFM(I,J,bi,bj)* - & ( ( EVAP(I,J,bi,bj)-PRECIP(I,J,bi,bj) ) - & * ( ONE - AREApreTH(I,J) ) + tmpscal2=rhoConstFresh*HEFFM(i,j,bi,bj)* + & ( ( EVAP(i,j,bi,bj)-PRECIP(i,j,bi,bj) ) + & * ( ONE - AREApreTH(i,j) ) #ifdef ALLOW_RUNOFF - & - RUNOFF(I,J,bi,bj) + & - RUNOFF(i,j,bi,bj) #endif /* ALLOW_RUNOFF */ - & + ( d_HFRWbyRAIN(I,J) + r_FWbySublim(I,J) ) + & + ( d_HFRWbyRAIN(i,j) + r_FWbySublim(i,j) ) & *convertHI2PRECIP ) C In real fresh water flux + nonlinFS, we factor in the advected specific C energy (referenced to 0 for 0deC liquid water). In virtual salt flux or @@ -2341,14 +2330,14 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ELSEIF ( (temp_EvPrRn.EQ.UNSET_RL).AND. & useRealFreshWaterFlux.AND.(nonlinFreeSurf.NE.0) ) THEN tmpscal2= - tmpscal2* - & ( ZERO + HeatCapacity_Cp * theta(I,J,kSurface,bi,bj) ) + & ( ZERO + HeatCapacity_Cp * theta(i,j,kSurface,bi,bj) ) ELSEIF ( (temp_EvPrRn.NE.UNSET_RL) ) THEN tmpscal2= - tmpscal2*HeatCapacity_Cp* - & ( temp_EvPrRn - theta(I,J,kSurface,bi,bj) ) + & ( temp_EvPrRn - theta(i,j,kSurface,bi,bj) ) ELSEIF ( (temp_EvPrRn.EQ.UNSET_RL) ) THEN tmpscal2= ZERO ENDIF - SItflux(I,J,bi,bj)= SIatmQnt(I,J,bi,bj)-tmpscal1-tmpscal2 + SItflux(i,j,bi,bj)= SIatmQnt(i,j,bi,bj)-tmpscal1-tmpscal2 ENDDO ENDDO @@ -2356,83 +2345,46 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C the ocean, accounting for fresh/salt water stocks. C ================================================== - DO J=1,sNy - DO I=1,sNx - tmpscal1= d_HSNWbyATMonSNW(I,J)*SNOW2ICE - & +d_HFRWbyRAIN(I,J) - & +d_HSNWbyOCNonSNW(I,J)*SNOW2ICE - & +d_HEFFbyOCNonICE(I,J) - & +d_HEFFbyATMonOCN(I,J) - & +d_HEFFbyNEG(I,J,bi,bj) + DO j=1,sNy + DO i=1,sNx + tmpscal1= d_HSNWbyATMonSNW(i,j)*SNOW2ICE + & +d_HFRWbyRAIN(i,j) + & +d_HSNWbyOCNonSNW(i,j)*SNOW2ICE + & +d_HEFFbyOCNonICE(i,j) + & +d_HEFFbyATMonOCN(i,j) + & +d_HEFFbyNEG(i,j,bi,bj) #ifdef EXF_SEAICE_FRACTION - & +d_HEFFbyRLX(I,J,bi,bj) + & +d_HEFFbyRLX(i,j,bi,bj) #endif - & +d_HSNWbyNEG(I,J,bi,bj)*SNOW2ICE + & +d_HSNWbyNEG(i,j,bi,bj)*SNOW2ICE C If r_FWbySublim>0, then it is evaporated from ocean. - & +r_FWbySublim(I,J) - EmPmR(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( - & ( EVAP(I,J,bi,bj)-PRECIP(I,J,bi,bj) ) - & * ( ONE - AREApreTH(I,J) ) + & +r_FWbySublim(i,j) + EmPmR(i,j,bi,bj) = HEFFM(i,j,bi,bj)*( + & ( EVAP(i,j,bi,bj)-PRECIP(i,j,bi,bj) ) + & * ( ONE - AREApreTH(i,j) ) #ifdef ALLOW_RUNOFF - & - RUNOFF(I,J,bi,bj) + & - RUNOFF(i,j,bi,bj) #endif /* ALLOW_RUNOFF */ & + tmpscal1*convertHI2PRECIP & )*rhoConstFresh #ifdef SEAICE_ITD C beware of the sign: fw2ObyRidge is snow mass moved into the ocean C by ridging, so requires a minus sign - & - fw2ObyRidge(I,J,bi,bj)*recip_deltaTtherm - & * HEFFM(I,J,bi,bj) + & - fw2ObyRidge(i,j,bi,bj)*recip_deltaTtherm + & * HEFFM(i,j,bi,bj) #endif /* SEAICE_ITD */ C and the flux leaving/entering the ocean+ice - SIatmFW(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( - & EVAP(I,J,bi,bj)*( ONE - AREApreTH(I,J) ) - & - PRECIP(I,J,bi,bj) + SIatmFW(i,j,bi,bj) = HEFFM(i,j,bi,bj)*( + & EVAP(i,j,bi,bj)*( ONE - AREApreTH(i,j) ) + & - PRECIP(i,j,bi,bj) #ifdef ALLOW_RUNOFF - & - RUNOFF(I,J,bi,bj) + & - RUNOFF(i,j,bi,bj) #endif /* ALLOW_RUNOFF */ & )*rhoConstFresh - & + a_FWbySublim(I,J) * SEAICE_rhoIce * recip_deltaTtherm - - ENDDO - ENDDO + & + a_FWbySublim(i,j) * SEAICE_rhoIce * recip_deltaTtherm -#ifdef ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION -C-- - DO J=1,sNy - DO I=1,sNx - frWtrAtm(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( - & PRECIP(I,J,bi,bj) - & - EVAP(I,J,bi,bj)*( ONE - AREApreTH(I,J) ) -# ifdef ALLOW_RUNOFF - & + RUNOFF(I,J,bi,bj) -# endif /* ALLOW_RUNOFF */ - & )*rhoConstFresh -# ifdef SEAICE_ADD_SUBLIMATION_TO_FWBUDGET - & - a_FWbySublim(I,J)*AREApreTH(I,J) -# endif /* SEAICE_ADD_SUBLIMATION_TO_FWBUDGET */ ENDDO ENDDO -C-- -#else /* ndef ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION */ -C-- -# ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION - DO J=1,sNy - DO I=1,sNx - frWtrAtm(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( - & PRECIP(I,J,bi,bj) - & - EVAP(I,J,bi,bj) - & *( ONE - AREApreTH(I,J) ) -# ifdef ALLOW_RUNOFF - & + RUNOFF(I,J,bi,bj) -# endif /* ALLOW_RUNOFF */ - & )*rhoConstFresh - & - a_FWbySublim(I,J) * SEAICE_rhoIce * recip_deltaTtherm - ENDDO - ENDDO -# endif -C-- -#endif /* ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION */ #ifdef SEAICE_DEBUG IF ( plotLevel.GE.debLevC ) THEN @@ -2446,20 +2398,20 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C ================================= #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( useRealFreshWaterFlux ) THEN - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx #ifdef SEAICE_CAP_ICELOAD - tmpscal1 = HEFF(I,J,bi,bj)*SEAICE_rhoIce - & + HSNOW(I,J,bi,bj)*SEAICE_rhoSnow + tmpscal1 = HEFF(i,j,bi,bj)*SEAICE_rhoIce + & + HSNOW(i,j,bi,bj)*SEAICE_rhoSnow tmpscal2 = MIN(tmpscal1,heffTooHeavy*rhoConst) #else - tmpscal2 = HEFF(I,J,bi,bj)*SEAICE_rhoIce - & + HSNOW(I,J,bi,bj)*SEAICE_rhoSnow + tmpscal2 = HEFF(i,j,bi,bj)*SEAICE_rhoIce + & + HSNOW(i,j,bi,bj)*SEAICE_rhoSnow #endif sIceLoad(i,j,bi,bj) = tmpscal2 ENDDO @@ -2470,7 +2422,7 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C Compute tile integrals of heat/fresh water fluxes to/from atm. C ============================================================== FWFsiTile(bi,bj) = 0. _d 0 - IF ( balanceEmPmR ) THEN + IF ( selectBalanceEmPmR.EQ.1 ) THEN DO j=1,sNy DO i=1,sNx FWFsiTile(bi,bj) = @@ -2481,11 +2433,12 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDIF C to translate global mean FWF adjustements (see below) we may need : FWF2HFsiTile(bi,bj) = 0. _d 0 - IF ( balanceEmPmR.AND.(temp_EvPrRn.EQ.UNSET_RL) ) THEN + IF ( selectBalanceEmPmR.EQ.1 .AND. + & temp_EvPrRn.EQ.UNSET_RL ) THEN DO j=1,sNy DO i=1,sNx FWF2HFsiTile(bi,bj) = FWF2HFsiTile(bi,bj) + - & HeatCapacity_Cp * theta(I,J,kSurface,bi,bj) + & HeatCapacity_Cp * theta(i,j,kSurface,bi,bj) & * rA(i,j,bi,bj) * maskInC(i,j,bi,bj) ENDDO ENDDO @@ -2538,50 +2491,50 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) CALL DIAGNOSTICS_SCALE_FILL(r_QbyATM_cover, & convertHI2Q,1, 'SIqneti ',0,1,3,bi,bj,myThid) C three that actually need intermediate storage - DO J=1,sNy - DO I=1,sNx - DIAGarrayA(I,J) = HEFFM(I,J,bi,bj) - & * d_HSNWbyRAIN(I,J)*SEAICE_rhoSnow*recip_deltaTtherm - DIAGarrayB(I,J) = AREA(I,J,bi,bj)-AREApreTH(I,J) + DO j=1,sNy + DO i=1,sNx + DIAGarrayA(i,j) = HEFFM(i,j,bi,bj) + & * d_HSNWbyRAIN(i,j)*SEAICE_rhoSnow*recip_deltaTtherm + DIAGarrayB(i,j) = AREA(i,j,bi,bj)-AREApreTH(i,j) ENDDO ENDDO CALL DIAGNOSTICS_FILL(DIAGarrayA, & 'SIsnPrcp',0,1,3,bi,bj,myThid) CALL DIAGNOSTICS_SCALE_FILL(DIAGarrayB, & tmpscal1,1,'SIdA ',0,1,3,bi,bj,myThid) - DO J=1,sNy - DO I=1,sNx - DIAGarrayB(I,J) = HEFFM(I,J,bi,bj) * - & a_FWbySublim(I,J) * SEAICE_rhoIce * recip_deltaTtherm + DO j=1,sNy + DO i=1,sNx + DIAGarrayB(i,j) = HEFFM(i,j,bi,bj) * + & a_FWbySublim(i,j) * SEAICE_rhoIce * recip_deltaTtherm ENDDO ENDDO CALL DIAGNOSTICS_FILL(DIAGarrayB, & 'SIfwSubl',0,1,3,bi,bj,myThid) C - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C the actual Freshwater flux of sublimated ice, >0 decreases ice - DIAGarrayA(I,J) = HEFFM(I,J,bi,bj) - & * (a_FWbySublim(I,J)-r_FWbySublim(I,J)) + DIAGarrayA(i,j) = HEFFM(i,j,bi,bj) + & * (a_FWbySublim(i,j)-r_FWbySublim(i,j)) & * SEAICE_rhoIce * recip_deltaTtherm C the residual Freshwater flux of sublimated ice - DIAGarrayC(I,J) = HEFFM(I,J,bi,bj) - & * r_FWbySublim(I,J) + DIAGarrayC(i,j) = HEFFM(i,j,bi,bj) + & * r_FWbySublim(i,j) & * SEAICE_rhoIce * recip_deltaTtherm C the latent heat flux - tmpscal1= EVAP(I,J,bi,bj)*( ONE - AREApreTH(I,J) ) - & + r_FWbySublim(I,J)*convertHI2PRECIP - tmpscal2= ( a_FWbySublim(I,J)-r_FWbySublim(I,J) ) + tmpscal1= EVAP(i,j,bi,bj)*( ONE - AREApreTH(i,j) ) + & + r_FWbySublim(i,j)*convertHI2PRECIP + tmpscal2= ( a_FWbySublim(i,j)-r_FWbySublim(i,j) ) & * convertHI2PRECIP tmpscal3= SEAICE_lhEvap+SEAICE_lhFusion - DIAGarrayB(I,J) = -HEFFM(I,J,bi,bj)*rhoConstFresh + DIAGarrayB(i,j) = -HEFFM(i,j,bi,bj)*rhoConstFresh & * ( tmpscal1*SEAICE_lhEvap + tmpscal2*tmpscal3 ) ENDDO ENDDO CALL DIAGNOSTICS_FILL(DIAGarrayA,'SIacSubl',0,1,3,bi,bj,myThid) CALL DIAGNOSTICS_FILL(DIAGarrayC,'SIrsSubl',0,1,3,bi,bj,myThid) CALL DIAGNOSTICS_FILL(DIAGarrayB,'SIhl ',0,1,3,bi,bj,myThid) -# ifdef SEAICE_GREASE +# if defined ( ALLOW_SITRACER ) && defined ( SEAICE_GREASE ) C actual grease ice layer thickness CALL DIAGNOSTICS_FILL(greaseLayerThick, & 'SIgrsLT ',0,1,3,bi,bj,myThid) @@ -2601,18 +2554,19 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C 1) global sums # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE FWFsiTile = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE HFsiTile = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE FWFsiTile = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE HFsiTile = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE FWF2HFsiTile = comlev1, key=ikey_dynamics, kind=isbyte # endif /* ALLOW_AUTODIFF_TAMC */ - FWFsiGlob=0. _d 0 - IF ( balanceEmPmR ) - & CALL GLOBAL_SUM_TILE_RL( FWFsiTile, FWFsiGlob, myThid ) - FWF2HFsiGlob=0. _d 0 - IF ( balanceEmPmR.AND.(temp_EvPrRn.EQ.UNSET_RL) ) THEN - CALL GLOBAL_SUM_TILE_RL(FWF2HFsiTile, FWF2HFsiGlob, myThid) - ELSEIF ( balanceEmPmR ) THEN - FWF2HFsiGlob=HeatCapacity_Cp * temp_EvPrRn * globalArea + FWFsiGlob = 0. _d 0 + FWF2HFsiGlob = 0. _d 0 + IF ( selectBalanceEmPmR.EQ.1 ) THEN + CALL GLOBAL_SUM_TILE_RL( FWFsiTile, FWFsiGlob, myThid ) + IF ( temp_EvPrRn.EQ.UNSET_RL ) THEN + CALL GLOBAL_SUM_TILE_RL( FWF2HFsiTile, FWF2HFsiGlob, myThid ) + ELSE + FWF2HFsiGlob = HeatCapacity_Cp * temp_EvPrRn * globalArea + ENDIF ENDIF HFsiGlob=0. _d 0 IF ( balanceQnet ) @@ -2627,10 +2581,10 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) C mean SItflux (before potential adjustement due to SIatmFW) tmpscal2=HFsiGlob / globalArea C mean SItflux (after potential adjustement due to SIatmFW) - IF ( balanceEmPmR ) tmpscal2=tmpscal2-tmpscal1 + IF ( selectBalanceEmPmR.EQ.1 ) tmpscal2=tmpscal2-tmpscal1 C 3) balancing adjustments - IF ( balanceEmPmR ) THEN + IF ( selectBalanceEmPmR.EQ.1 ) THEN DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy @@ -2645,10 +2599,10 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ELSEIF ( (temp_EvPrRn.EQ.UNSET_RL).AND. & useRealFreshWaterFlux.AND.(nonlinFreeSurf.NE.0) ) THEN tmpscal1= - & ( ZERO + HeatCapacity_Cp * theta(I,J,kSurface,bi,bj) ) + & ( ZERO + HeatCapacity_Cp * theta(i,j,kSurface,bi,bj) ) ELSEIF ( (temp_EvPrRn.NE.UNSET_RL) ) THEN tmpscal1= - & HeatCapacity_Cp*(temp_EvPrRn - theta(I,J,kSurface,bi,bj)) + & HeatCapacity_Cp*(temp_EvPrRn - theta(i,j,kSurface,bi,bj)) ELSE tmpscal1=ZERO ENDIF @@ -2660,8 +2614,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDDO IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgBuf,'(a,a,e24.17)') 'rm Global mean of ', - & 'SIatmFW = ', tmpscal0 + WRITE(msgBuf,'(2A,1PE21.14,A,I10)') 'rm Global mean of', + & ' SIatmFW = ', tmpscal0, ' @ it=', myIter CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) @@ -2681,8 +2635,8 @@ SUBROUTINE SEAICE_GROWTH( myTime, myIter, myThid ) ENDDO IF ( balancePrintMean ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgBuf,'(a,a,e24.17)') 'rm Global mean of ', - & 'SItflux = ', tmpscal2 + WRITE(msgBuf,'(2A,1PE21.14,A,I10)') 'rm Global mean of', + & ' SItflux = ', tmpscal2, ' @ it=', myIter CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) diff --git a/pkg/seaice/seaice_growth_adx.F b/pkg/seaice/seaice_growth_adx.F index c05fb7c179..2648b6da47 100644 --- a/pkg/seaice/seaice_growth_adx.F +++ b/pkg/seaice/seaice_growth_adx.F @@ -9,6 +9,8 @@ # include "AUTODIFF_OPTIONS.h" #endif +#undef SEAICE_GROWTH_ADX_STORE_MORE + CBOP C !ROUTINE: SEAICE_GROWTH_ADX C !INTERFACE: @@ -111,7 +113,8 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) _RL tmpscal0, tmpscal1, tmpscal2, tmpscal3 #ifdef ALLOW_AUTODIFF_TAMC - INTEGER ilockey +C tkey :: tape key (depends on tiles) + INTEGER tkey #endif C== local arrays == @@ -143,15 +146,13 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) _RL F_ia_net_mult (1:sNx,1:sNy,nITD) _RL F_ia_mult (1:sNx,1:sNy,nITD) _RL QSWI_mult (1:sNx,1:sNy,nITD) + +C Variables related to FWsublim are dummies required for call +C to seaice_solve4temp subroutine and are not used afterwards +C in this routine (by choice). _RL FWsublim_mult (1:sNx,1:sNy,nITD) + _RL FWsublim (1:sNx,1:sNy) -#ifdef ALLOW_DIAGNOSTICS -C Helper variables for diagnostics -c _RL DIAGarrayA (1:sNx,1:sNy) - _RL DIAGarrayB (1:sNx,1:sNy) - _RL DIAGarrayC (1:sNx,1:sNy) - _RL DIAGarrayD (1:sNx,1:sNy) -#endif /* ALLOW_DIAGNOSTICS */ #ifdef ALLOW_SALT_PLUME c d(HEFF)/dt from heat fluxes in the open water fraction of the grid cell _RL IceGrowthRateInLeads (1:sNx,1:sNy) @@ -179,17 +180,18 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) _RL EnergyInNewTotalIceVolume (1:sNx,1:sNy) _RL NetEnergyFluxOutOfOcean (1:sNx,1:sNy) -CAB Terms for closing the budget +#ifdef ALLOW_DIAGNOSTICS +C Local arrays for diagnostics _RL SItflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL SIaaflux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL SIeprflx (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL SIatmFW (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif CAB these two terms are placeholders for extra bits from advection, C used in budget _RL SIheffNeg (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL SIhsnwNeg (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - CAB - _RL d_HEFFbyFlood (1:sNx,1:sNy) + _RL d_HEFFbyFLOODING (1:sNx,1:sNy) C The energy taken out of the ocean which is not converted C to sea ice (Joules) @@ -269,8 +271,6 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) C F_mi - heat flux from ocean to the ice (W/m^2) _RL F_mi (1:sNx,1:sNy) - _RL FWsublim (1:sNx,1:sNy) - C S_a_from_IGROW : d(AREA)/dt [from ice growth rate from open water fluxes] _RL S_a_IGROW (1:sNx,1:sNy) @@ -290,7 +290,7 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) C =================PART 0: constants and initializations============= C =================================================================== - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN + IF ( usingPCoords ) THEN kSurface = Nr ELSE kSurface = 1 @@ -298,6 +298,8 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) C Cutoff for iceload heffTooHeavy=drF(kSurface) / 5. _d 0 + IF ( usingPCoords ) + & heffTooHeavy = heffTooHeavy * recip_rhoConst * recip_gravity C RATIO OF SEA ICE DENSITY to SNOW DENSITY ICE2SNOW = SEAICE_rhoIce/SEAICE_rhoSnow @@ -335,28 +337,16 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iicekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE area = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE heff = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE hsnow = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE qnet = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE qsw = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE tices = comlev1_bibj, key = iicekey, byte = isbyte -#endif +CADJ STORE area (:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE heff (:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE qnet (:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE qsw (:,:,bi,bj) = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE tices(:,:,:,bi,bj)=comlev1_bibj, key = tkey, byte = isbyte C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif C array initializations C ===================== @@ -422,25 +412,16 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) S_h(I,J) = 0.0 _d 0 S_hsnow(I,J) = 0.0 _d 0 - d_HEFFbyFlood(I,J) = 0.0 _d 0 - + d_HEFFbyFLOODING(I,J) = 0.0 _d 0 #ifdef ALLOW_SALT_PLUME IceGrowthRateInLeads (I,J) = 0. _d 0 leadPlumeFraction (I,J) = 0. _d 0 saltPlumeFlux (I,J,bi,bj) = 0. _d 0 #endif - + SIeprflx(I,J,bi,bj) = 0. _d 0 ENDDO ENDDO -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - frWtrAtm(I,J,bi,bj) = 0.0 _d 0 - ENDDO - ENDDO -#endif - C ===================================================================== C PART 1: Store ice and snow state on onset + regularize actual C snow and ice thickness @@ -473,29 +454,24 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) HSNWpreTH(I,J) = HSNOW(I,J,bi,bj) AREApreTH(I,J) = AREA(I,J,bi,bj) -#ifdef ALLOW_DIAGNOSTICS - DIAGarrayB(I,J) = AREA(I,J,bi,bj) - DIAGarrayC(I,J) = HEFF(I,J,bi,bj) - DIAGarrayD(I,J) = HSNOW(I,J,bi,bj) -#endif ENDDO ENDDO #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL(DIAGarrayB,'SIareaPT',0,1,3,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(DIAGarrayC,'SIheffPT',0,1,3,bi,bj,myThid) - CALL DIAGNOSTICS_FILL(DIAGarrayD,'SIhsnoPT',0,1,3,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(AREA, 'SIareaPT',0,1,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(HEFF, 'SIheffPT',0,1,1,bi,bj,myThid) + CALL DIAGNOSTICS_FILL(HSNOW,'SIhsnoPT',0,1,1,bi,bj,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */ +#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_GROWTH_ADX_STORE_MORE) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE AREApreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE HEFFpreTH = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE HSNWpreTH = comlev1_bibj, key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +CADJ STORE AREApreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE HEFFpreTH = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE HSNWpreTH = comlev1_bibj, key = tkey, byte = isbyte C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ C COMPUTE ACTUAL ICE/SNOW THICKNESS; USE MIN/MAX VALUES C TO REGULARIZE SEAICE_SOLVE4TEMP/d_AREA COMPUTATIONS @@ -586,6 +562,14 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) UG(I,J) = MAX(SEAICE_EPS, wspeed(I,J,bi,bj)) ENDDO ENDDO +#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_GROWTH_ADX_STORE_MORE) +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE UG = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE SnowAccRateOverIce = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE PrecipRateOverIceSurfaceToSea +CADJ & = comlev1_bibj,key=tkey,byte=isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ C ============================================================================= c Retrieve the air-sea heat and shortwave radiative fluxes @@ -597,23 +581,32 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) O F_ao, QSWO, I bi, bj, myTime, myIter, myThid ) +#if (!defined SEAICE_EXTERNAL_FLUXES && defined ALLOW_AUTODIFF_TAMC) +C In this case it might be better save the output of +C seaice_budget_ocean rather than recompute the bulkformulae. +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE f_ao = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE qswo = comlev1_bibj, key = tkey, byte = isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif C ============================================================================= C Calc air-sea fluxes in the uppermost grid cell C ============================================================================= -c-- Not all of the sw radiation is absorbed in the uppermost ocean grid cell layer. -c Only that fraction which converges in the uppermost ocean grid cell is used to -c melt ice. -c SWFRACB - the fraction of incoming sw radiation absorbed in the -c uppermost ocean grid cell (calculated in seaice_init_vari.F) +C-- Not all of the sw radiation is absorbed in the uppermost ocean +C-- grid cell. Only that fraction which converges in the +C-- uppermost ocean grid cell is used to melt ice. + +C SEAICE_SWFrac - the fraction of incoming sw radiation absorbed in the +C uppermost ocean grid cell (calculated in seaice_init_fixed.F) DO J=1,sNy DO I=1,sNx c The contribution of shortwave heating is c not included without #define SHORTWAVE_HEATING #ifdef SHORTWAVE_HEATING - QSWO_BELOW_FIRST_LAYER(I,J)= QSWO(I,J)*SWFRACB - QSWO_IN_FIRST_LAYER(I,J) = QSWO(I,J)*(ONE - SWFRACB) + QSWO_BELOW_FIRST_LAYER(I,J)= QSWO(I,J)*SEAICE_SWFrac + QSWO_IN_FIRST_LAYER(I,J) = QSWO(I,J)*(ONE - SEAICE_SWFrac) #else QSWO_BELOW_FIRST_LAYER(I,J)= ZERO QSWO_IN_FIRST_LAYER(I,J) = ZERO @@ -624,13 +617,12 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE UG = comlev1_bibj, key = iicekey, byte = isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CADJ STORE salt(:,:,kSurface,bi,bj) -CADJ & = comlev1_bibj,key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +CADJ & = comlev1_bibj, key = tkey, byte = isbyte C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ C ============================================================================= c calculate heat fluxes within ice (conduction), F_io, and across the @@ -665,12 +657,12 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) C multDim-loop ENDDO +#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_GROWTH_ADX_STORE_MORE) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hiceActualMult = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE hsnowActualMult= comlev1_bibj, key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +CADJ STORE hiceActualMult = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE hsnowActualMult= comlev1_bibj, key = tkey, byte = isbyte C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ c ======================================================================= c find calculate heat fluxes within ice (conduction) and across the @@ -723,6 +715,13 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C This store is needed to avoid recomputing seaice_solve4temp in AD-mode, +C because F_ia_net is modified in the block below. +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE F_ia_net = comlev1_bibj, key = tkey, byte = isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ DO J=1,sNy DO I=1,sNx @@ -769,7 +768,6 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) c Snow melt and melt rate [m] (actual snow thickness) SnowMeltFromSurface(I,J) = hsnowActual(I,J) -c SnowMeltRateFromSurface(I,J) = SnowMeltRateFromSurface(I,J) = & SnowMeltFromSurface(I,J) * recip_deltaTtherm @@ -803,14 +801,25 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO - +#ifdef ALLOW_AUTODIFF_TAMC +C Store F_io/ia_net and QSWI to avoid calling seaice_solve4temp in AD-mode +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE F_io_net = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE F_ia_net = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE QSWI = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE theta(:,:,kSurface,bi,bj) +CADJ & = comlev1_bibj, key = tkey, byte = isbyte +CADJ STORE salt(:,:,kSurface,bi,bj) +CADJ & = comlev1_bibj, key = tkey, byte = isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ c inflection point tmpscal0 = 0.4 _d 0 c steepness/inflection point tmpscal1 = 7.0 _d 0/tmpscal0 c avoid recomputing constant coefficients tmpscal2 = STANTON_NUMBER*USTAR_BASE*rhoConst*HeatCapacity_Cp -C Calcuate the heat fluxes from the ocean to the sea ice +C Calculate the heat fluxes from the ocean to the sea ice DO J=1,sNy DO I=1,sNx c @@ -837,15 +846,24 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE NetExistingIceGrowthRate -CADJ & = comlev1_bibj, key = iicekey, byte = isbyte -CADJ STORE IceGrowthRateMixedLayer -CADJ & = comlev1_bibj, key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ +C The first two store directives are also needed to avoid calling +C seaice_solve4temp in AD-mode. +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE NetExistingIceGrowthRate = comlev1_bibj, +CADJ & key = tkey, byte = isbyte +CADJ STORE IceGrowthRateMixedLayer = comlev1_bibj, +CADJ & key = tkey, byte = isbyte +# ifdef SEAICE_GROWTH_ADX_STORE_MORE +CADJ STORE SnowMeltRateFromSurface = comlev1_bibj, +CADJ & key = tkey, byte = isbyte +CADJ STORE IceGrowthRateUnderExistingIce = comlev1_bibj, +CADJ & key = tkey, byte = isbyte +CADJ STORE IceGrowthRateFromSurface = comlev1_bibj, +CADJ & key = tkey, byte = isbyte +# endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ C CALCULATE THICKNESS DERIVATIVES of ice (dhdt) and snow (dhsdt) DO J=1,sNy @@ -864,6 +882,12 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C storing S_h would save one line of recomputation so do not do it +cnostore CADJ STORE S_h = comlev1_bibj, key = tkey, byte = isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_SALT_PLUME # ifdef SALT_PLUME_IN_LEADS @@ -998,23 +1022,30 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) S_a(I,J) = S_a(I,J) + S_a_IGRNE(I,J) - ENDDO /* I,J */ - ENDDO /* I,J */ + ENDDO + ENDDO -C Update the area, heff, and hsnow +C Update the area, heff, and hsnow DO J=1,sNy DO I=1,sNx HEFF(I,J,bi,bj) = HEFFpreTH(I,J) + - & SEAICE_deltaTtherm * S_h(I,J) + & SEAICE_deltaTtherm * S_h(I,J) * HEFFM(I,J,bi,bj) AREA(I,J,bi,bj) = AREApreTH(I,J) + - & SEAICE_deltaTtherm * S_a(I,J) + & SEAICE_deltaTtherm * S_a(I,J) * HEFFM(I,J,bi,bj) HSNOW(I,J,bi,bj) = HSNWpreTH(I,J) + - & SEAICE_deltaTtherm * S_hsnow(I,J) + & SEAICE_deltaTtherm * S_hsnow(I,J) * HEFFM(I,J,bi,bj) ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE AREA (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE HEFF (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ DO J=1,sNy DO I=1,sNx c Bound area, heff, and hsnow @@ -1054,21 +1085,6 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO - IF(SEAICEuseFlooding) THEN -C convert snow to ice if submerged. - DO J=1,sNy - DO I=1,sNx - tmpscal0 = ( HSNOW(I,J,bi,bj)*SEAICE_rhoSnow - & +HEFF(I,J,bi,bj)*SEAICE_rhoIce )*recip_rhoConst - d_HEFFbyFlood(I,J) = MAX(0. _d 0,tmpscal0-HEFF(I,J,bi,bj)) - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) + d_HEFFbyFlood(I,J) - HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) - & - d_HEFFbyFlood(I,J)*ICE2SNOW - ENDDO - ENDDO -c SEAICEuseFlooding - ENDIF - DO J=1,sNy DO I=1,sNx @@ -1093,7 +1109,6 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) EnergyInNewTotalIceVolume(I,J) = & ActualNewTotalVolumeChange(I,J)*recip_QI c - c This is the net energy flux out of the ice+ocean system c Remember ----- c F_ia_net : Under ice/snow surface freezing conditions, @@ -1191,38 +1206,41 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) & + SIhsnwNeg(I,J,bi,bj)*SEAICE_rhoSnow) & *recip_deltaTtherm * HEFFM(I,J,bi,bj) -CAB Budget test , adding the energy stored in snow melt to qnet -C Moved bunch of these to line 780 - - SItflux(I,J,bi,bj) = 0.0 + - & (AREApreTH(I,J) - & *(F_ia_net(I,J) - & + F_io_net(I,J) + QSWI(I,J)) - & +( ONE - AREApreTH(I,J)) * F_ao(I,J)) - & *HEFFM(I,J,bi,bj) - & +(SIheffNeg(I,J,bi,bj)*recip_QI - & +( SIhsnwNeg(I,J,bi,bj) - ActualNewTotalSnowMelt(I,J) - & + SnowAccOverIce(I,J) )*recip_QS) - & * recip_deltaTtherm * HEFFM(I,J,bi,bj) - - SIaaflux(I,J,bi,bj) = -EmPmR(I,J,bi,bj) - & * HeatCapacity_Cp *theta(I,J,kSurface,bi,bj) - - SIatmFW(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( - & EVAP(I,J,bi,bj)*( ONE - AREApreTH(I,J) ) - & - PRECIP(I,J,bi,bj) -#ifdef ALLOW_RUNOFF - & - RUNOFF(I,J,bi,bj) -#endif /* ALLOW_RUNOFF */ - & )*rhoConstFresh - & + FWsublim(i,j)* SEAICE_rhoIce * recip_deltaTtherm -CAB - ENDDO ENDDO C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C Treat flooding after calculations of QNET and before Sea Ice loading + IF(SEAICEuseFlooding) THEN +#ifdef ALLOW_AUTODIFF_TAMC +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CADJ STORE HEFF (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE HSNOW(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +#endif /* ALLOW_AUTODIFF_TAMC */ +C convert snow to ice if submerged. + DO J=1,sNy + DO I=1,sNx + tmpscal0 = ( HSNOW(I,J,bi,bj)*SEAICE_rhoSnow + & +HEFF(I,J,bi,bj)*SEAICE_rhoIce )*recip_rhoConst + d_HEFFbyFLOODING(I,J) = MAX(0. _d 0,tmpscal0-HEFF(I,J,bi,bj)) + HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) + d_HEFFbyFLOODING(I,J) + HSNOW(I,J,bi,bj) = HSNOW(I,J,bi,bj) + & - d_HEFFbyFLOODING(I,J)*ICE2SNOW + + ENDDO + ENDDO +c SEAICEuseFlooding + ENDIF +#ifdef ALLOW_DIAGNOSTICS + IF (useDiagnostics) THEN + tmpscal1=1. _d 0 * recip_deltaTtherm + CALL DIAGNOSTICS_SCALE_FILL(d_HEFFbyFLOODING, + & tmpscal1,1,'SIdHbFLO',0,1,3,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + C Sea Ice Load on the sea surface. C ================================= IF ( useRealFreshWaterFlux ) THEN @@ -1241,6 +1259,50 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDIF +C Everything down here is diagnostic, and should reflect what we +C calculated above and passed out to the ocean instead of computed +C again. Otherwise we can end up with mismatch when we modify above +C and not replicate down here. +#ifdef ALLOW_DIAGNOSTICS + IF (useDiagnostics) THEN + DO J=1,sNy + DO I=1,sNx + SItflux(I,J,bi,bj) = 0.0 + +c & (AREApreTH(I,J) +c & *(F_ia_net(I,J) +c & + F_io_net(I,J) + QSWI(I,J)) +c & +( ONE - AREApreTH(I,J)) * F_ao(I,J)) + & NetEnergyFluxOutOfOcean(I,J)*recip_deltaTtherm + & *HEFFM(I,J,bi,bj) + & +(SIheffNeg(I,J,bi,bj)*recip_QI + & +( SIhsnwNeg(I,J,bi,bj) - ActualNewTotalSnowMelt(I,J) + & + SnowAccOverIce(I,J) )*recip_QS) + & * recip_deltaTtherm * HEFFM(I,J,bi,bj) + + SIatmFW(I,J,bi,bj) = HEFFM(I,J,bi,bj)*( + & EVAP(I,J,bi,bj)*( ONE - AREApreTH(I,J) ) + & - PRECIP(I,J,bi,bj) +#ifdef ALLOW_RUNOFF + & - RUNOFF(I,J,bi,bj) +#endif /* ALLOW_RUNOFF */ + & )*rhoConstFresh + ENDDO + ENDDO + + IF (useRealFreshWaterFlux.AND.(nonlinFreeSurf.NE.0)) THEN + DO J=1,sNy + DO I=1,sNx +C Heat flux term associated with EmPmR: + SIeprflx(I,J,bi,bj) = -EmPmR(I,J,bi,bj) + & * HeatCapacity_Cp *theta(I,J,kSurface,bi,bj) + ENDDO + ENDDO +c ELSE +CAB I HAVE NOT FIGURED OUT the QNET for the ELSE case, should not matter 01/14/2021 L2275 + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + #ifdef SEAICE_DEBUG DO j=1,sNy DO i=1,sNx @@ -1325,7 +1387,7 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) c & 'ifice i j SW(BML IML SW) ',i,j, c & QSW_absorb_below_first_layer(i,j), c & QSW_absorb_in_first_layer(i,j), -c & SWFRACB +c & SEAICE_SWFrac c print '(A,2i4,3(1x,1P3E15.4))', c & 'ifice i j ptc(to, qsw, oa)',i,j, @@ -1386,38 +1448,21 @@ SUBROUTINE SEAICE_GROWTH_ADX( myTime, myIter, myThid ) ENDDO ENDDO - _BEGIN_MASTER( myThid ) #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN C these diags need to be done outside of the bi,bj loop so that C we may do potential global mean adjustement to them consistently. -CAB -CAB CALL DIAGNOSTICS_FILL(SItflux, - -C CALL DIAGNOSTICS_FILL(SIatmQnt, -C & 'SIatmQnt',0,1,0,1,1,myThid) -C SIatmFW follows the same convention as empmr -- SIatmFW diag does not -CAB -C CALL DIAGNOSTICS_FILL(SIacSubl, -C & 'SIacSubl',0,1,3,bi,bj,myThid) CALL DIAGNOSTICS_FILL(SItflux, 'SItflux ',0,1,0,1,1,myThid) + CALL DIAGNOSTICS_FILL(SIeprflx,'SIeprflx',0,1,0,1,1,myThid) - CALL DIAGNOSTICS_FILL(SIaaflux,'SIaaflux',0,1,0,1,1,myThid) - +C SIatmFW follows the same convention as empmr -- SIatmFW diag does not tmpscal1= - 1. _d 0 CALL DIAGNOSTICS_SCALE_FILL(SIatmFW, & tmpscal1,1,'SIatmFW ',0,1,0,1,1,myThid) ENDIF #endif /* ALLOW_DIAGNOSTICS */ -C WRITE(msgBuf,'(a,a,e24.17)') 'SINegFac ', -C & ' = ', SINegFac -C CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, -C & SQUEEZE_RIGHT, myThid ) -C - _END_MASTER( myThid ) - #else /* ALLOW_EXF and ALLOW_ATM_TEMP */ STOP 'SEAICE_GROWTH_ADX not compiled with EXF and ALLOW_ATM_TEMP' #endif /* ALLOW_EXF and ALLOW_ATM_TEMP */ diff --git a/pkg/seaice/seaice_init_fixed.F b/pkg/seaice/seaice_init_fixed.F index b09d260931..246f930c9a 100644 --- a/pkg/seaice/seaice_init_fixed.F +++ b/pkg/seaice/seaice_init_fixed.F @@ -36,25 +36,25 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) #endif C i,j, bi,bj :: Loop counters INTEGER i, j, bi, bj - INTEGER kSurface + INTEGER kSrf #ifdef ALLOW_SITRACER INTEGER iTracer #endif #ifdef SHORTWAVE_HEATING cif Helper variable for determining the fraction of sw radiation cif penetrating the model shallowest layer - _RL dummyTime _RL swfracba(2) - _RL tmpFac #endif /* SHORTWAVE_HEATING */ -#ifndef SEAICE_CGRID +C local copy of surface layer thickness in meters + _RL dzSurf +#ifdef SEAICE_BGRID_DYNAMICS _RL mask_uice #endif - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN - kSurface = Nr + IF ( usingPCoords ) THEN + kSrf = Nr ELSE - kSurface = 1 + kSrf = 1 ENDIF C Initialize MNC variable information for SEAICE @@ -72,30 +72,38 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) IF ( SEAICEuseBDF2 ) SEAICEmomStartBDF = nIter0 #ifdef SHORTWAVE_HEATING - tmpFac = -1.0 - dummyTime = 1.0 - swfracba(1) = ABS(rF(1)) - swfracba(2) = ABS(rF(2)) + IF ( usingZCoords ) THEN + swfracba(1) = rF(1) + swfracba(2) = rF(2) + ELSE +C this is the oceanic pressure coordinate case + swfracba(1) = -rF(Nr+1)*recip_rhoConst*recip_gravity + swfracba(2) = -rF(Nr) *recip_rhoConst*recip_gravity + ENDIF CALL SWFRAC( - I 2, tmpFac, + I 2, oneRL, U swfracba, - I dummyTime, 0, myThid ) - SWFracB = swfracba(2) + I oneRL, 0, myThid ) + SEAICE_SWFrac = swfracba(2) #else /* SHORTWAVE_HEATING */ - SWFracB = 0. _d 0 + SEAICE_SWFrac = 0. _d 0 #endif /* SHORTWAVE_HEATING */ C-- Set mcPheePiston coeff (if still unset) + dzSurf = drF(kSrf) + IF ( usingPCoords ) + & dzSurf = drF(kSrf) * recip_rhoConst * recip_gravity IF ( SEAICE_mcPheePiston.EQ.UNSET_RL ) THEN IF ( SEAICE_availHeatFrac.NE.UNSET_RL ) THEN SEAICE_mcPheePiston = SEAICE_availHeatFrac - & * drF(kSurface)/SEAICE_deltaTtherm + & * dzSurf/SEAICE_deltaTtherm ELSE SEAICE_mcPheePiston = MCPHEE_TAPER_FAC & * STANTON_NUMBER * USTAR_BASE SEAICE_mcPheePiston = MIN( SEAICE_mcPheePiston, - & drF(kSurface)/SEAICE_deltaTtherm ) + & dzSurf/SEAICE_deltaTtherm ) ENDIF + ENDIF C-- SItracer specifications for basic tracers @@ -241,11 +249,6 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) CALL SEAICE_SUMMARY( myThid ) C-- Initialise grid parameters that do no change during the integration - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN - kSurface = Nr - ELSE - kSurface = 1 - ENDIF C-- Initialise grid info DO bj=myByLo(myThid),myByHi(myThid) @@ -260,12 +263,12 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) ENDDO DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - HEFFM (i,j,bi,bj) = maskC(i,j,kSurface,bi,bj) - SIMaskU(i,j,bi,bj) = maskW(i,j,kSurface,bi,bj) - SIMaskV(i,j,bi,bj) = maskS(i,j,kSurface,bi,bj) + HEFFM (i,j,bi,bj) = maskC(i,j,kSrf,bi,bj) + SIMaskU(i,j,bi,bj) = maskW(i,j,kSrf,bi,bj) + SIMaskV(i,j,bi,bj) = maskS(i,j,kSrf,bi,bj) ENDDO ENDDO -#ifndef SEAICE_CGRID +#ifdef SEAICE_BGRID_DYNAMICS DO j=1-OLy+1,sNy+OLy DO i=1-OLx+1,sNx+OLx UVM(i,j,bi,bj)=0. _d 0 @@ -274,7 +277,7 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) IF(mask_uice.GT.3.5 _d 0) UVM(i,j,bi,bj)=1. _d 0 ENDDO ENDDO -#endif /* ndef SEAICE_CGRID */ +#endif C coefficients for metric terms #ifdef SEAICE_CGRID @@ -331,7 +334,9 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) ENDDO ENDDO ENDIF -#else /* not SEAICE_CGRID */ +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx k1AtC(i,j,bi,bj) = 0.0 _d 0 @@ -402,7 +407,30 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) ENDDO ENDDO ENDIF -#endif /* not SEAICE_CGRID */ +C-- Choose a proxy level for geostrophic velocity, + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + KGEO(i,j,bi,bj) = 0 + ENDDO + ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx +#ifdef SEAICE_BICE_STRESS + KGEO(i,j,bi,bj) = 1 +#else /* SEAICE_BICE_STRESS */ + IF (klowc(i,j,bi,bj) .LT. 2) THEN + KGEO(i,j,bi,bj) = 1 + ELSE + KGEO(i,j,bi,bj) = 2 + DO WHILE ( abs(rC(KGEO(i,j,bi,bj))) .LT. 50.0 _d 0 .AND. + & KGEO(i,j,bi,bj) .LT. (klowc(i,j,bi,bj)-1) ) + KGEO(i,j,bi,bj) = KGEO(i,j,bi,bj) + 1 + ENDDO + ENDIF +#endif /* SEAICE_BICE_STRESS */ + ENDDO + ENDDO +#endif /* SEAICE_BGRID_DYNAMICS */ C- end bi,bj loops ENDDO ENDDO @@ -431,35 +459,5 @@ SUBROUTINE SEAICE_INIT_FIXED( myThid ) ENDIF #endif /* ALLOW_SHELFICE */ -#ifndef SEAICE_CGRID -C-- Choose a proxy level for geostrophic velocity, - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - KGEO(i,j,bi,bj) = 0 - ENDDO - ENDDO - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx -#ifdef SEAICE_BICE_STRESS - KGEO(i,j,bi,bj) = 1 -#else /* SEAICE_BICE_STRESS */ - IF (klowc(i,j,bi,bj) .LT. 2) THEN - KGEO(i,j,bi,bj) = 1 - ELSE - KGEO(i,j,bi,bj) = 2 - DO WHILE ( abs(rC(KGEO(i,j,bi,bj))) .LT. 50.0 _d 0 .AND. - & KGEO(i,j,bi,bj) .LT. (klowc(i,j,bi,bj)-1) ) - KGEO(i,j,bi,bj) = KGEO(i,j,bi,bj) + 1 - ENDDO - ENDIF -#endif /* SEAICE_BICE_STRESS */ - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ndef SEAICE_CGRID */ - RETURN END diff --git a/pkg/seaice/seaice_init_varia.F b/pkg/seaice/seaice_init_varia.F index f7117bb332..692808de92 100644 --- a/pkg/seaice/seaice_init_varia.F +++ b/pkg/seaice/seaice_init_varia.F @@ -37,8 +37,7 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) C i,j,k,bi,bj :: Loop counters INTEGER i, j, bi, bj - INTEGER kSurface - _RS mask_uice + INTEGER kSrf INTEGER k #ifdef ALLOW_SITRACER INTEGER iTr, jTh @@ -47,13 +46,14 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) INTEGER I_obc, J_obc #endif /* ALLOW_OBCS */ #ifdef SEAICE_CGRID + _RS mask_uice _RL recip_tensilDepth #endif - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN - kSurface = Nr + IF ( usingPCoords ) THEN + kSrf = Nr ELSE - kSurface = 1 + kSrf = 1 ENDIF C-- Initialise all variables in common blocks: @@ -63,72 +63,69 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) DO i=1-OLx,sNx+OLx HEFF(i,j,bi,bj)=0. _d 0 AREA(i,j,bi,bj)=0. _d 0 -CToM<<< + HSNOW(i,j,bi,bj) = 0. _d 0 #ifdef SEAICE_ITD DO k=1,nITD AREAITD(i,j,k,bi,bj) =0. _d 0 HEFFITD(i,j,k,bi,bj) =0. _d 0 + HSNOWITD(i,j,k,bi,bj)=0. _d 0 ENDDO #endif -C>>>ToM UICE(i,j,bi,bj)=0. _d 0 VICE(i,j,bi,bj)=0. _d 0 -#ifdef SEAICE_ALLOW_FREEDRIFT - uice_fd(i,j,bi,bj)=0. _d 0 - vice_fd(i,j,bi,bj)=0. _d 0 -#endif C uIceNm1(i,j,bi,bj) = 0. _d 0 vIceNm1(i,j,bi,bj) = 0. _d 0 + DWATN (i,j,bi,bj) = 0. _d 0 +#ifdef SEAICE_CGRID + stressDivergenceX(i,j,bi,bj) = 0. _d 0 + stressDivergenceY(i,j,bi,bj) = 0. _d 0 +# ifdef SEAICE_ALLOW_EVP + seaice_sigma1 (i,j,bi,bj) = 0. _d 0 + seaice_sigma2 (i,j,bi,bj) = 0. _d 0 + seaice_sigma12(i,j,bi,bj) = 0. _d 0 +# endif /* SEAICE_ALLOW_EVP */ +#endif +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) e11 (i,j,bi,bj) = 0. _d 0 e22 (i,j,bi,bj) = 0. _d 0 e12 (i,j,bi,bj) = 0. _d 0 deltaC (i,j,bi,bj) = 0. _d 0 + PRESS (i,j,bi,bj) = 0. _d 0 ETA (i,j,bi,bj) = 0. _d 0 etaZ (i,j,bi,bj) = 0. _d 0 ZETA (i,j,bi,bj) = 0. _d 0 FORCEX (i,j,bi,bj) = 0. _d 0 FORCEY (i,j,bi,bj) = 0. _d 0 + tensileStrFac(i,j,bi,bj) = 0. _d 0 + PRESS0(i,j,bi,bj) = 0. _d 0 + FORCEX0(i,j,bi,bj) = 0. _d 0 + FORCEY0(i,j,bi,bj) = 0. _d 0 + SEAICE_zMax(i,j,bi,bj) = 0. _d 0 + SEAICE_zMin(i,j,bi,bj) = 0. _d 0 +#endif #ifdef SEAICE_CGRID seaiceMassC(i,j,bi,bj)=0. _d 0 seaiceMassU(i,j,bi,bj)=0. _d 0 seaiceMassV(i,j,bi,bj)=0. _d 0 - stressDivergenceX(i,j,bi,bj) = 0. _d 0 - stressDivergenceY(i,j,bi,bj) = 0. _d 0 -# ifdef SEAICE_ALLOW_EVP - seaice_sigma1 (i,j,bi,bj) = 0. _d 0 - seaice_sigma2 (i,j,bi,bj) = 0. _d 0 - seaice_sigma12(i,j,bi,bj) = 0. _d 0 -# endif /* SEAICE_ALLOW_EVP */ -#else /* SEAICE_CGRID */ - uIceC(i,j,bi,bj) = 0. _d 0 - vIceC(i,j,bi,bj) = 0. _d 0 +# ifdef SEAICE_ALLOW_FREEDRIFT + uice_fd(i,j,bi,bj) = 0. _d 0 + vice_fd(i,j,bi,bj) = 0. _d 0 +# endif +# ifdef SEAICE_ALLOW_BOTTOMDRAG + CbotC(i,j,bi,bj) = 0. _d 0 +# endif /* SEAICE_ALLOW_BOTTOMDRAG */ +#endif /* SEAICE_CGRID */ +#ifdef SEAICE_BGRID_DYNAMICS + uIceB(i,j,bi,bj) = 0. _d 0 + vIceB(i,j,bi,bj) = 0. _d 0 AMASS(i,j,bi,bj) = 0. _d 0 DAIRN(i,j,bi,bj) = 0. _d 0 WINDX(i,j,bi,bj) = 0. _d 0 WINDY(i,j,bi,bj) = 0. _d 0 GWATX(i,j,bi,bj) = 0. _d 0 GWATY(i,j,bi,bj) = 0. _d 0 -#endif /* SEAICE_CGRID */ - DWATN(i,j,bi,bj) = 0. _d 0 -#ifdef SEAICE_ALLOW_BOTTOMDRAG - CbotC(i,j,bi,bj) = 0. _d 0 -#endif /* SEAICE_ALLOW_BOTTOMDRAG */ - PRESS0(i,j,bi,bj) = 0. _d 0 - PRESS (i,j,bi,bj) = 0. _d 0 - FORCEX0(i,j,bi,bj) = 0. _d 0 - FORCEY0(i,j,bi,bj) = 0. _d 0 - ZMAX(i,j,bi,bj) = 0. _d 0 - ZMIN(i,j,bi,bj) = 0. _d 0 - HSNOW(i,j,bi,bj) = 0. _d 0 - tensileStrFac(i,j,bi,bj) = 0. _d 0 -CToM<<< -#ifdef SEAICE_ITD - DO k=1,nITD - HSNOWITD(i,j,k,bi,bj)=0. _d 0 - ENDDO -#endif -C>>>ToM +#endif /* SEAICE_BGRID_DYNAMICS */ #ifdef SEAICE_VARIABLE_SALINITY HSALT(i,j,bi,bj) = 0. _d 0 #endif @@ -149,22 +146,21 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) DO k=1,nITD TICES(i,j,k,bi,bj)=0. _d 0 ENDDO -#ifdef ALLOW_SEAICE_COST_EXPORT - uHeffExportCell(i,j,bi,bj) = 0. _d 0 - vHeffExportCell(i,j,bi,bj) = 0. _d 0 - icevolMeanCell(i,j,bi,bj) = 0. _d 0 -#endif saltWtrIce(i,j,bi,bj) = 0. _d 0 frWtrIce(i,j,bi,bj) = 0. _d 0 -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) - frWtrAtm(i,j,bi,bj) = 0. _d 0 - AREAforAtmFW(i,j,bi,bj)=0. _d 0 -#endif ENDDO ENDDO ENDDO ENDDO +#ifdef ALLOW_AUTODIFF +C- Note: To simplify dependency & avoid recomputations, when compiling +C pkg/autodiff, we always call SEAICE_INIT_VARIA to initialise control +C variables (as done above) without condition on useSEAICE. +C Therefore, in this case, the "If useSEAICE" is added back here: + IF ( useSEAICE ) THEN +#endif + #ifdef ALLOW_TIMEAVE C Initialize averages to zero DO bj = myByLo(myThid), myByHi(myThid) @@ -186,9 +182,9 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) C-- Initialize (variable) grid info. As long as we allow masking of C-- velocities outside of ice covered areas (in seaice_dynsolver) C-- we need to re-initialize seaiceMaskU/V here for TAF/TAMC -#ifdef SEAICE_CGRID DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) +#ifdef SEAICE_CGRID DO j=1-OLy+1,sNy+OLy DO i=1-OLx+1,sNx+OLx seaiceMaskU(i,j,bi,bj)= 0.0 _d 0 @@ -199,14 +195,7 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) IF(mask_uice.GT.1.5 _d 0) seaiceMaskV(i,j,bi,bj)=1.0 _d 0 ENDDO ENDDO - ENDDO - ENDDO -#endif /* SEAICE_CGRID */ - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) -#ifdef OBCS_UVICE_OLD -#ifdef SEAICE_CGRID +# ifdef OBCS_UVICE_OLD IF (useOBCS) THEN C-- If OBCS is turned on, close southern and western boundaries DO i=1-OLx,sNx+OLx @@ -226,20 +215,21 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) ENDIF ENDDO ENDIF +# endif /* OBCS_UVICE_OLD */ #endif /* SEAICE_CGRID */ -#endif /* OBCS_UVICE_OLD */ DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx DO k=1,nITD TICES(i,j,k,bi,bj)=273.0 _d 0 ENDDO -#ifndef SEAICE_CGRID - AMASS (i,j,bi,bj)=1000.0 _d 0 -#else +#ifdef SEAICE_CGRID seaiceMassC(i,j,bi,bj)=1000.0 _d 0 seaiceMassU(i,j,bi,bj)=1000.0 _d 0 seaiceMassV(i,j,bi,bj)=1000.0 _d 0 +#endif +#ifdef SEAICE_BGRID_DYNAMICS + AMASS (i,j,bi,bj)=1000.0 _d 0 #endif ENDDO ENDDO @@ -250,7 +240,8 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) C-- Update overlap regions #ifdef SEAICE_CGRID CALL EXCH_UV_XY_RL(seaiceMaskU,seaiceMaskV,.FALSE.,myThid) -#else +#endif +#ifdef SEAICE_BGRID_DYNAMICS _EXCH_XY_RS(UVM, myThid) #endif @@ -263,7 +254,8 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) & nIter0, myThid ) CALL PLOT_FIELD_XYRL( seaiceMaskV, 'Current seaiceMaskV', & nIter0, myThid ) -#else +#endif +#ifdef SEAICE_BGRID_DYNAMICS CALL PLOT_FIELD_XYRS( UVM , 'Current UVM ' , & nIter0, myThid ) #endif @@ -400,7 +392,7 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - HSALT(i,j,bi,bj)=HEFF(i,j,bi,bj)*salt(i,j,kSurface,bi,bj)* + HSALT(i,j,bi,bj)=HEFF(i,j,bi,bj)*salt(i,j,kSrf,bi,bj)* & SEAICE_rhoIce*SEAICE_saltFrac cif & ICE2WATR*rhoConstFresh*SEAICE_saltFrac @@ -429,18 +421,6 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) ENDIF -#if (defined (ALLOW_MEAN_SFLUX_COST_CONTRIBUTION) || defined (ALLOW_SSH_GLOBMEAN_COST_CONTRIBUTION)) - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - AREAforAtmFW(i,j,bi,bj) = AREA(i,j,bi,bj) - ENDDO - ENDDO - ENDDO - ENDDO -#endif - #ifdef ALLOW_OBCS C-- In case we use scheme with a large stencil that extends into overlap: C no longer needed with the right masking in advection & diffusion S/R. @@ -462,36 +442,22 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) c ENDIF #endif /* ALLOW_OBCS */ -#ifdef SEAICE_ALLOW_JFNK -C Computing this metric cannot be done in S/R SEAICE_INIT_FIXED -C where it belongs, because globalArea is only defined later after -C S/R PACKAGES_INIT_FIXED, so we move this computation here. - CALL SEAICE_MAP_RS2VEC( nVec, rAw, rAs, - & scalarProductMetric, .TRUE., myThid ) - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO i=1,nVec - scalarProductMetric(i,1,bi,bj) = - & scalarProductMetric(i,1,bi,bj)/globalArea - ENDDO - ENDDO - ENDDO -#endif /* SEAICE_ALLOW_JFNK */ - C--- Complete initialization DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - ZETA(i,j,bi,bj) = HEFF(i,j,bi,bj)*(1.0 _d 11) - ETA(i,j,bi,bj) = ZETA(i,j,bi,bj)/SEAICE_eccen**2 - PRESS0(i,j,bi,bj) = SEAICE_strength*HEFF(i,j,bi,bj) + ZETA(i,j,bi,bj) = HEFF(i,j,bi,bj)*(1.0 _d 11) + ETA(i,j,bi,bj) = ZETA(i,j,bi,bj)/SEAICE_eccen**2 + PRESS0(i,j,bi,bj) = SEAICE_strength*HEFF(i,j,bi,bj) & *EXP(-SEAICE_cStar*(ONE-AREA(i,j,bi,bj))) - ZMAX(i,j,bi,bj) = SEAICE_zetaMaxFac*PRESS0(i,j,bi,bj) - ZMIN(i,j,bi,bj) = SEAICE_zetaMin - PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj) + SEAICE_zMax(i,j,bi,bj) = SEAICE_zetaMaxFac*PRESS0(i,j,bi,bj) + SEAICE_zMin(i,j,bi,bj) = SEAICE_zetaMin + PRESS0(i,j,bi,bj) = PRESS0(i,j,bi,bj)*HEFFM(i,j,bi,bj) ENDDO ENDDO +#endif IF ( useRealFreshWaterFlux .AND. .NOT.useThSIce ) THEN DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -522,7 +488,28 @@ SUBROUTINE SEAICE_INIT_VARIA( myThid ) ENDDO ENDDO ENDIF +# if ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV ) +C Computing this metric cannot be done in S/R SEAICE_INIT_FIXED +C where it belongs, because globalArea is only defined later after +C S/R PACKAGES_INIT_FIXED, so we move this computation here. + CALL SEAICE_MAP_RS2VEC( nVec, rAw, rAs, + & scalarProductMetric, .TRUE., myThid ) + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO i=1,nVec + scalarProductMetric(i,1,bi,bj) = + & scalarProductMetric(i,1,bi,bj)/globalArea + ENDDO + ENDDO + ENDDO +# endif /* SEAICE_ALLOW_JFNK or KRYLOV */ + #endif /* SEAICE_CGRID */ +#ifdef ALLOW_AUTODIFF +C- end if useSEAICE block + ENDIF +#endif + RETURN END diff --git a/pkg/seaice/seaice_jacvec.F b/pkg/seaice/seaice_jacvec.F index fe83c505aa..7aeed82743 100644 --- a/pkg/seaice/seaice_jacvec.F +++ b/pkg/seaice/seaice_jacvec.F @@ -3,9 +3,9 @@ CBOP C !ROUTINE: SEAICE_JACVEC C !INTERFACE: - SUBROUTINE SEAICE_JACVEC( + SUBROUTINE SEAICE_JACVEC( I uIceLoc, vIceLoc, uIceRes, vIceRes, - U duIce, dvIce, + U duIce, dvIce, I newtonIter, krylovIter, myTime, myIter, myThid ) C !DESCRIPTION: \bv @@ -67,8 +67,8 @@ SUBROUTINE SEAICE_JACVEC( CEOP C Instructions for using TAF or TAMC to generate exact Jacobian times C vector operations (if SEAICE_ALLOW_MOM_ADVECTION is defined, the -C file list also needs to include seaice_mom_advection.f, -C mom_calc_hfacz.f, mom_calc_ke.f, mom_calc_relvort3.f, +C file list also needs to include seaice_mom_advection.f, +C mom_calc_hfacz.f, mom_calc_ke.f, mom_calc_relvort3.f, C mom_vi_u_coriolis.f, mom_vi_u_coriolis_c4.f, mom_vi_u_grad_ke.f, C mom_vi_v_coriolis.f, mom_vi_v_coriolis_c4.f, mom_vi_v_grad_ke.f C plus flow information for diagnostics_fill.f: @@ -96,14 +96,14 @@ SUBROUTINE SEAICE_JACVEC( C seaice_calc_rhs.f seaice_calc_lhs.f" C 3. staf -forward -toplevel seaice_calc_residual \ C -input uIceLoc,viceLoc -output uIceRes,vIceRes $files -C 4. copy files seaice_*_tl.f to the corresponding seaice_*.f files, +C 4. copy files seaice_*_tl.f to the corresponding seaice_*.f files, C e.g. with this bash script: -C for file in $files; do -C nfile=`echo $file | awk -F. '{printf "%s_tl.f", $1}'`; +C for file in $files; do +C nfile=`echo $file | awk -F. '{printf "%s_tl.f", $1}'`; C \cp -f $nfile $file C done -C 5. add the following code, change "call g_seaice_calc_residual" -C to "call seaice_calc_residual_tl", and comment out the finite +C 5. add the following code, change "call g_seaice_calc_residual" +C to "call seaice_calc_residual_tl", and comment out the finite C difference code CML _RL g_duIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CML _RL g_dvIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -126,12 +126,12 @@ SUBROUTINE SEAICE_JACVEC( CML ENDDO CML ENDDO CML -CML CALL G_SEAICE_CALC_RESIDUAL( uIce, g_duice, vIce, -CML $g_dvice, uiceresp, g_uiceres, viceresp, g_viceres, newtoniter, +CML CALL G_SEAICE_CALC_RESIDUAL( uIce, g_duice, vIce, +CML $g_dvice, uiceresp, g_uiceres, viceresp, g_viceres, newtoniter, CML $kryloviter, mytime, myiter, mythid ) -CMLCML For staf -v2 replace the above with the below call -CMLCML CALL SEAICE_CALC_RESIDUAL_TL( uIce, g_duice, vIce, -CMLCML $g_dvice, uiceresp, g_uiceres, viceresp, g_viceres, newtoniter, +CMLCML For staf -v2 replace the above with the below call +CMLCML CALL SEAICE_CALC_RESIDUAL_TL( uIce, g_duice, vIce, +CMLCML $g_dvice, uiceresp, g_uiceres, viceresp, g_viceres, newtoniter, CMLCML $kryloviter, mytime, myiter, mythid ) CML CML DO bj=myByLo(myThid),myByHi(myThid) @@ -172,7 +172,7 @@ SUBROUTINE SEAICE_JACVEC( DO bi = myBxLo(myThid),myBxHi(myThid) DO I = 1, sNx DO J = 1, sNy - duIce(I,J,bi,bj) = + duIce(I,J,bi,bj) = & (uIceResP(I,J,bi,bj)-uIceRes(I,J,bi,bj))*reps dvIce(I,J,bi,bj) = & (vIceResP(I,J,bi,bj)-vIceRes(I,J,bi,bj))*reps diff --git a/pkg/seaice/seaice_jfnk.F b/pkg/seaice/seaice_jfnk.F index 33b58d02b9..a82a90cefd 100644 --- a/pkg/seaice/seaice_jfnk.F +++ b/pkg/seaice/seaice_jfnk.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif C-- File seaice_jfnk.F: seaice jfnk dynamical solver S/R: C-- Contents @@ -40,10 +37,6 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C myTime :: Simulation time @@ -53,7 +46,7 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) INTEGER myIter INTEGER myThid -#ifdef SEAICE_ALLOW_JFNK +#if ( defined SEAICE_CGRID && defined SEAICE_ALLOW_JFNK ) C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE @@ -138,7 +131,7 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) bdfFac = 0.5 _d 0 ENDIF ENDIF - bdfAlpha = 1. _d 0 + bdfFac + bdfAlpha = 1. _d 0 + bdfFac DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -153,9 +146,9 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) C cycle ice velocities DO J=1-OLy,sNy+OLy DO I=1-OLx,sNx+OLx - duIcNm1(I,J,bi,bj) = uIce(I,J,bi,bj) * bdfAlpha + duIcNm1(I,J,bi,bj) = uIce(I,J,bi,bj) * bdfAlpha & + ( uIce(I,J,bi,bj) - uIceNm1(I,J,bi,bj) ) * bdfFac - dvIcNm1(I,J,bi,bj) = vIce(I,J,bi,bj) * bdfAlpha + dvIcNm1(I,J,bi,bj) = vIce(I,J,bi,bj) * bdfAlpha & + ( vIce(I,J,bi,bj) - vIceNm1(I,J,bi,bj) ) * bdfFac uIceNm1(I,J,bi,bj) = uIce(I,J,bi,bj) vIceNm1(I,J,bi,bj) = vIce(I,J,bi,bj) @@ -255,13 +248,13 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) C stored in du/vIce to wk2, for iCode=0, wk2 is set to zero, C because du/vIce = 0 CALL SEAICE_MAP2VEC(nVec,duIce,dvIce,wk2,.TRUE.,myThid) -C + CALL SEAICE_FGMRES (nVec,im,rhs,sol,ifgmres,krylovIter, U vv,w,wk1,wk2, I FGMRESeps,SEAICElinearIterMax,iOutFGMRES, U iCode, I myThid) -C + IF ( iCode .EQ. 0 ) THEN C map sol(ution) vector to du/vIce CALL SEAICE_MAP2VEC(nVec,duIce,dvIce,sol,.FALSE.,myThid) @@ -352,7 +345,9 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) C-- Output diagnostics IF ( SEAICE_monFreq .GT. 0. _d 0 ) THEN -C Count iterations +C Only Master Thread updates counters in common block: + _BEGIN_MASTER(myThid) +C Cumulate some diagnostic counters for the JFNK solver totalJFNKtimeSteps = totalJFNKtimeSteps + 1 totalNewtonIters = totalNewtonIters + newtonIter totalKrylovIters = totalKrylovIters + totalKrylovItersLoc @@ -361,6 +356,7 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) IF ( newtonIter .EQ. SEAICEnonLinIterMax ) THEN totalNewtonFails = totalNewtonFails + 1 ENDIF + _END_MASTER( myThid ) ENDIF C Decide whether it is time to dump and reset the counter writeNow = DIFFERENT_MULTIPLE(SEAICE_monFreq, @@ -370,7 +366,7 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) CALL CAL_TIME2DUMP( I zeroRL, SEAICE_monFreq, deltaTClock, U writeNow, - I myTime+deltaTclock, myIter+1, myThid ) + I myTime+deltaTClock, myIter+1, myThid ) ENDIF #endif IF ( writeNow ) THEN @@ -421,13 +417,13 @@ SUBROUTINE SEAICE_JFNK( myTime, myIter, myThid ) &' // =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - _END_MASTER( myThid ) -C reset and start again +C Reset and start again totalJFNKtimeSteps = 0 totalNewtonIters = 0 totalKrylovIters = 0 totalKrylovFails = 0 totalNewtonFails = 0 + _END_MASTER( myThid ) ENDIF C Print more debugging information @@ -541,6 +537,14 @@ SUBROUTINE SEAICE_JFNK_UPDATE( facLS = 1. _d 0 doLineSearch = .TRUE. DO WHILE ( doLineSearch ) +C The computation of the line search factor is complicated because +C we overwrite the solution, so that we have to reconstruct what +C should be just u_l = u_0 + (1-gamma)**l *du. Instead, after adding +C du/vIce in the first iteration (l=0), we substract a decreasing +C part of du/vIce from u/vIce in the next iterations until the +C residual is smaller than the initial residual. + IF ( l .GT. 0 ) facLS = - SEAICE_JFNK_lsGamma + & *(1. _d 0 - SEAICE_JFNK_lsGamma)**(l-1) C Create update DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -565,20 +569,19 @@ SUBROUTINE SEAICE_JFNK_UPDATE( resLoc = SQRT(resLoc) C Determine, if we need more iterations doLineSearch = resLoc .GE. JFNKresidual -C Limit the maximum number of iterations arbitrarily to four - doLineSearch = doLineSearch .AND. l .LT. 4 +C Limit the maximum number of iterations arbitrarily to +C SEAICE_JFNK_lsLmax (default is 4) + doLineSearch = doLineSearch .AND. l .LE. SEAICE_JFNK_lsLmax C For the first iteration du/vIce = 0 and there will be no C improvement of the residual possible, so we do only the first C iteration IF ( newtonIter .EQ. 1 ) doLineSearch = .FALSE. C Only start a linesearch after some Newton iterations IF ( newtonIter .LE. SEAICE_JFNK_lsIter ) doLineSearch = .FALSE. -C Increment counter - l = l + 1 C some output diagnostics IF ( debugLevel.GE.debLevA .AND. doLineSearch ) THEN _BEGIN_MASTER( myThid ) - WRITE(msgBuf,'(2A,2(1XI6),3E12.5)') + WRITE(msgBuf,'(2A,2(1XI6),1X,3E12.5)') & ' S/R SEAICE_JFNK_UPDATE: Newton iter, LSiter, ', & 'facLS, JFNKresidual, resLoc = ', & newtonIter, l, facLS, JFNKresidual, resLoc @@ -586,15 +589,13 @@ SUBROUTINE SEAICE_JFNK_UPDATE( & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) ENDIF -C Get ready for the next iteration: after adding du/vIce in the first -C iteration, we substract 0.5*du/vIce from u/vIce in the next -C iterations, 0.25*du/vIce in the second, etc. - facLS = - 0.5 _d 0 * ABS(facLS) +C Increment counter + l = l + 1 ENDDO C This is the new residual JFNKresidual = resLoc -#endif /* SEAICE_ALLOW_JFNK */ +#endif /* SEAICE_CGRID and SEAICE_ALLOW_JFNK */ RETURN END diff --git a/pkg/seaice/seaice_krylov.F b/pkg/seaice/seaice_krylov.F index 054cdb2c90..a95b620fb5 100644 --- a/pkg/seaice/seaice_krylov.F +++ b/pkg/seaice/seaice_krylov.F @@ -44,7 +44,7 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) INTEGER myIter INTEGER myThid -#ifdef SEAICE_ALLOW_KRYLOV +#if ( defined SEAICE_CGRID && defined SEAICE_ALLOW_KRYLOV ) C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE @@ -203,7 +203,7 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) O DWATN, I 0, myTime, myIter, myThid ) #ifdef SEAICE_ALLOW_BOTTOMDRAG - IF (SEAICEbasalDragK2.GT.0. _d 0) CALL SEAICE_BOTTOMDRAG_COEFFS( + CALL SEAICE_BOTTOMDRAG_COEFFS( I uIceLin, vIceLin, HEFFM, #ifdef SEAICE_ITD I HEFFITD, AREAITD, AREA, @@ -218,7 +218,8 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) O e11, e22, e12, I 0, myTime, myIter, myThid ) CALL SEAICE_CALC_VISCOSITIES( - I e11, e22, e12, zMin, zMax, HEFFM, press0, tensileStrFac, + I e11, e22, e12, SEAICE_zMin, SEAICE_zMax, HEFFM, press0, + I tensileStrFac, O eta, etaZ, zeta, zetaZ, press, deltaC, I 0, myTime, myIter, myThid ) C compute rhs that does not change during Krylov iteration @@ -407,7 +408,9 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) C-- Output diagnostics IF ( SEAICE_monFreq .GT. 0. _d 0 ) THEN -C Count iterations +C Only Master Thread updates counters in common block: + _BEGIN_MASTER(myThid) +C Cumulate some diagnostic counters for the Krylov solver totalJFNKtimeSteps = totalJFNKtimeSteps + 1 totalNewtonIters = totalNewtonIters + picardIter totalKrylovIters = totalKrylovIters + totalKrylovItersLoc @@ -416,6 +419,7 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) IF ( picardIter .EQ. picardIterMax ) THEN totalNewtonfails = totalNewtonfails + 1 ENDIF + _END_MASTER( myThid ) ENDIF C Decide whether it is time to dump and reset the counter writeNow = DIFFERENT_MULTIPLE(SEAICE_monFreq, @@ -477,13 +481,13 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) &' // =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - _END_MASTER( myThid ) -C reset and start again +C Reset and start again totalJFNKtimeSteps = 0 totalNewtonIters = 0 totalKrylovIters = 0 totalKrylovFails = 0 totalNewtonfails = 0 + _END_MASTER( myThid ) ENDIF C Print more debugging information @@ -516,7 +520,7 @@ SUBROUTINE SEAICE_KRYLOV( myTime, myIter, myThid ) _END_MASTER( myThid ) ENDIF -#endif /* SEAICE_ALLOW_KRYLOV */ +#endif /* SEAICE_CGRID and SEAICE_ALLOW_KRYLOV */ RETURN END diff --git a/pkg/seaice/seaice_lsr.F b/pkg/seaice/seaice_lsr.F index 46d8a8f3dc..34b90fb582 100644 --- a/pkg/seaice/seaice_lsr.F +++ b/pkg/seaice/seaice_lsr.F @@ -52,7 +52,6 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) #include "SEAICE.h" #ifdef ALLOW_AUTODIFF_TAMC -# include "AUTODIFF_PARAMS.h" # include "tamc.h" #endif @@ -67,7 +66,6 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) CEOP #ifdef SEAICE_CGRID -#ifdef SEAICE_ALLOW_DYNAMICS C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE @@ -81,7 +79,6 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) INTEGER iMin, iMax, jMin, jMax INTEGER ICOUNT1, ICOUNT2, linearIterLoc, nonLinIterLoc INTEGER kSrf - INTEGER SOLV_MAX_TMP LOGICAL doIterate4u, doIterate4v CHARACTER*(MAX_LEN_MBUF) msgBuf @@ -135,7 +132,10 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) _RL gVmom(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif /* SEAICE_ALLOW_MOM_ADVECTION */ #ifdef ALLOW_AUTODIFF_TAMC - INTEGER itmpkey, itmpkey2, itmpkey3 +C nlkey :: tape key (depends on nonlinear iteration) +C lnkey :: tape key (depends on linear and nonlinear iteration) +C tkey :: tape key (depends on tile indices and lnkey) + INTEGER nlkey, lnkey, tkey #endif _RL COSWAT _RS SINWAT @@ -174,7 +174,7 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) C recip_deltaT = 1. _d 0 / SEAICE_deltaTdyn -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF cph break artificial dependencies DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -245,38 +245,32 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) ENDDO ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC - DO ipass=1,MPSEUDOTIMESTEPS - itmpkey = (ikey_dynamics-1)*MPSEUDOTIMESTEPS + ipass -#else + DO ipass=1,nonLinIterLoc -#endif #ifdef ALLOW_AUTODIFF_TAMC + nlkey = (ikey_dynamics-1)*MPSEUDOTIMESTEPS + ipass # ifdef SEAICE_ALLOW_FREEDRIFT -CADJ STORE uice_fd, vice_fd = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey -CADJ STORE ures,vres = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey +CADJ STORE uice_fd, vice_fd = comlev1_dynsol, key = nlkey, kind=isbyte +CADJ STORE ures,vres = comlev1_dynsol, key = nlkey, kind=isbyte # endif -CADJ STORE utmp,vtmp = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey +CADJ STORE utmp,vtmp = comlev1_dynsol, key = nlkey, kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ IF ( ipass .LE. nonLinIterLoc ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uice = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey -CADJ STORE vice = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey -CADJ STORE uicenm1 = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey -CADJ STORE vicenm1 = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey +CADJ STORE uice = comlev1_dynsol, key = nlkey, kind=isbyte +CADJ STORE vice = comlev1_dynsol, key = nlkey, kind=isbyte +CADJ STORE uicenm1 = comlev1_dynsol, key = nlkey, kind=isbyte +CADJ STORE vicenm1 = comlev1_dynsol, key = nlkey, kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C surface level - kSrf = 1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C-- introduce turning angles SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad) COSWAT=COS(SEAICE_waterTurnAngle*deg2rad) @@ -333,12 +327,12 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC C That is an important one! Note, that C * lsr is called multiple times (twice by default), thus the -C ipass index is part of itmpkey +C ipass index is part of nlkey C * this storing is still outside the lsr iteration loop -CADJ STORE uice = comlev1_dynsol, kind=isbyte, key = itmpkey -CADJ STORE vice = comlev1_dynsol, kind=isbyte, key = itmpkey -CADJ STORE uicec = comlev1_dynsol, kind=isbyte, key = itmpkey -CADJ STORE vicec = comlev1_dynsol, kind=isbyte, key = itmpkey +CADJ STORE uice = comlev1_dynsol, kind=isbyte, key = nlkey +CADJ STORE vice = comlev1_dynsol, kind=isbyte, key = nlkey +CADJ STORE uicec = comlev1_dynsol, kind=isbyte, key = nlkey +CADJ STORE vicec = comlev1_dynsol, kind=isbyte, key = nlkey #endif /* ALLOW_AUTODIFF_TAMC */ CALL SEAICE_CALC_STRAINRATES( @@ -347,7 +341,8 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) I ipass, myTime, myIter, myThid ) CALL SEAICE_CALC_VISCOSITIES( - I e11, e22, e12, zMin, zMax, HEFFM, press0, tensileStrFac, + I e11, e22, e12, SEAICE_zMin, SEAICE_zMax, HEFFM, press0, + I tensileStrFac, O eta, etaZ, zeta, zetaZ, press, deltaC, I ipass, myTime, myIter, myThid ) @@ -357,7 +352,7 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) I ipass, myTime, myIter, myThid ) #ifdef SEAICE_ALLOW_BOTTOMDRAG - IF (SEAICEbasalDragK2.GT.0. _d 0) CALL SEAICE_BOTTOMDRAG_COEFFS( + CALL SEAICE_BOTTOMDRAG_COEFFS( I uIceC, vIceC, HEFFM, #ifdef SEAICE_ITD I HEFFITD, AREAITD, AREA, @@ -591,10 +586,8 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) ENDIF IF ( LSR_mixIniGuess.GE.2 ) THEN # ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE uice, vice = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey -CADJ STORE utmp, vtmp = comlev1_dynsol, kind=isbyte, -CADJ & key = itmpkey +CADJ STORE uice, vice = comlev1_dynsol, key = nlkey, kind=isbyte +CADJ STORE utmp, vtmp = comlev1_dynsol, key = nlkey, kind=isbyte # endif /* ALLOW_AUTODIFF_TAMC */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) @@ -663,31 +656,21 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) CMLCADJ LOOP = iteration uice, vice = comlev1_lsr CML#endif /* ALLOW_AUTODIFF_TAMC */ -#if (defined (ALLOW_AUTODIFF_TAMC) && defined (SEAICE_LSR_ADJOINT_ITER)) - IF ( inAdMode ) THEN - SOLV_MAX_TMP = SOLV_MAX_FIXED - ELSE - SOLV_MAX_TMP = linearIterLoc - ENDIF -#else - SOLV_MAX_TMP = linearIterLoc -#endif - - ICOUNT1 = SOLV_MAX_TMP - ICOUNT2 = SOLV_MAX_TMP + ICOUNT1 = linearIterLoc + ICOUNT2 = linearIterLoc - DO m = 1, SOLV_MAX_TMP + DO m = 1, linearIterLoc #ifdef ALLOW_AUTODIFF_TAMC # ifdef SEAICE_LSR_ADJOINT_ITER - itmpkey2 = (itmpkey-1)*SOLV_MAX_FIXED + MIN(m,SOLV_MAX_FIXED) + lnkey = (nlkey-1)*SOLV_MAX_FIXED + MIN(m,SOLV_MAX_FIXED) # else - itmpkey2 = itmpkey + lnkey = nlkey # endif /* SEAICE_LSR_ADJOINT_ITER */ C Storing these scalars and logicals is necessary to do an exact C backward iteration -CADJ STORE wfau, wfav = comlev1_lsr, kind=isbyte, key = itmpkey2 -CADJ STORE doIterate4u, doIterate4v = comlev1_lsr, key = itmpkey2 +CADJ STORE wfau, wfav = comlev1_lsr, kind=isbyte, key = lnkey +CADJ STORE doIterate4u, doIterate4v = comlev1_lsr, key = lnkey #endif /* ALLOW_AUTODIFF_TAMC */ IF ( doIterate4u .OR. doIterate4v ) THEN @@ -698,11 +681,11 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) ENDIF # ifdef ALLOW_AUTODIFF_TAMC -C Note that itmpkey2 can get very large when SEAICE_LSR_ADJOINT_ITER +C Note that lnkey can get very large when SEAICE_LSR_ADJOINT_ITER C is defined for an accurate adjoint, otherwise it is the same for C each m, so that the tapes get overwritten for each iterate and C the adjoint is necessarily wrong. -CADJ STORE uice, vice = comlev1_lsr, kind=isbyte, key = itmpkey2 +CADJ STORE uice, vice = comlev1_lsr, kind=isbyte, key = lnkey # endif /* ALLOW_AUTODIFF_TAMC */ #ifdef SEAICE_GLOBAL_3DIAG_SOLVER @@ -736,7 +719,7 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) ENDDO ENDDO - iSubIter = SOLV_MAX_TMP*(ipass-1) + m + iSubIter = linearIterLoc*(ipass-1) + m CALL SOLVE_UV_TRIDIAGO( I 1, OLx, doIterate4u, doIterate4v, I AU, BU, CU, rhsUx, @@ -773,18 +756,9 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = itmpkey2 - 1 - itmpkey3 = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -CADJ STORE uice(:,:,bi,bj) = comlev1_bibj_lsr,kind=isbyte,key=itmpkey3 -CADJ STORE vice(:,:,bi,bj) = comlev1_bibj_lsr,kind=isbyte,key=itmpkey3 + tkey = bi + (bj-1)*nSx + (lnkey-1)*nSx*nSy +CADJ STORE uice(:,:,bi,bj) = comlev1_bibj_lsr,kind=isbyte,key=tkey +CADJ STORE vice(:,:,bi,bj) = comlev1_bibj_lsr,kind=isbyte,key=tkey #endif /* ALLOW_AUTODIFF_TAMC */ C-jmc: get fewer TAF warnings when always (no if doIterate) saving uIce,vIce: C save u/vIce prior to iteration @@ -888,7 +862,7 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) O residUend, residVend, uTmp, vTmp, I printResidual, myIter, myThid ) _BEGIN_MASTER( myThid ) - WRITE(standardMessageUnit,'(A,1X,I4,1P3E16.8)') + WRITE(standardMessageUnit,'(A,1X,I9,1P3E16.8)') & ' SEAICE_LSR: Residual Initial ipass,Uice,Vice=', & ipass, residUini, residVini #ifdef SEAICE_ALLOW_FREEDRIFT @@ -901,10 +875,10 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) & ' SEAICE_LSR: Residual Mix-ini Uice,Vice=', & residUmix, residVmix #endif /* SEAICE_ALLOW_FREEDRIFT */ - WRITE(standardMessageUnit,'(A,I4,A,I6,1P2E16.8)') + WRITE(standardMessageUnit,'(A,I9,A,I9,1P2E16.8)') & ' SEAICE_LSR (ipass=',ipass,') iters,dU,Resid=', & ICOUNT1, S1, residUend - WRITE(standardMessageUnit,'(A,I4,A,I6,1P2E16.8)') + WRITE(standardMessageUnit,'(A,I9,A,I9,1P2E16.8)') & ' SEAICE_LSR (ipass=',ipass,') iters,dV,Resid=', & ICOUNT2, S2, residVend _END_MASTER( myThid ) @@ -960,7 +934,7 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) & - (uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj)) )**2 & + ( (vIceNm1(i,j,bi,bj)+vIceNm1(i,j+1,bi,bj)) & - (vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)) )**2 ) - IF ( area(i,j,bi,bj) .gt. 0.5 _d 0 ) THEN + IF ( area(i,j,bi,bj) .GT. 0.5 _d 0 ) THEN EKnorm = EKnorm + 0.5 _d 0 * heff(i,j,bi,bj) * & ( ( (uIce(i,j,bi,bj)+uIce(i+1,j,bi,bj)) )**2 & + ( (vIce(i,j,bi,bj)+vIce(i,j+1,bi,bj)) )**2 ) @@ -973,11 +947,11 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) _GLOBAL_SUM_RL( resnorm, myThid ) _GLOBAL_SUM_RL( EKnorm, myThid ) _GLOBAL_SUM_RL( counter, myThid ) - IF ( counter .gt. 0. _d 0 ) EKnorm = EKnorm/counter + IF ( counter .GT. 0. _d 0 ) EKnorm = EKnorm/counter _BEGIN_MASTER( myThid ) WRITE(standardMessageUnit,'(A,I7,1X,2E22.14)') & 'S/R SEAICE_LSR: IPSEUDO, RESNORM, EKNORM = ', - & ipass, sqrt(resnorm), EKnorm + & ipass, SQRT(resnorm), EKnorm _END_MASTER( myThid ) ENDIF #endif /* SEAICE_ALLOW_CHECK_LSR_CONVERGENCE */ @@ -1013,9 +987,6 @@ SUBROUTINE SEAICE_LSR( myTime, myIter, myThid ) C endif useHB87StressCoupling ENDIF -#endif /* SEAICE_ALLOW_DYNAMICS */ -#endif /* SEAICE_CGRID */ - RETURN END @@ -1079,9 +1050,6 @@ SUBROUTINE SEAICE_RESIDUAL( INTEGER myThid CEOP -#ifdef SEAICE_CGRID -#ifdef SEAICE_ALLOW_DYNAMICS - C !LOCAL VARIABLES: C === Local variables === C i,j,bi,bj :: Loop counters @@ -1141,9 +1109,6 @@ SUBROUTINE SEAICE_RESIDUAL( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#endif /* SEAICE_ALLOW_DYNAMICS */ -#endif /* SEAICE_CGRID */ - RETURN END @@ -1209,8 +1174,6 @@ SUBROUTINE SEAICE_LSR_CALC_COEFFS( _RL vRt2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CEOP -#ifdef SEAICE_CGRID -#ifdef SEAICE_ALLOW_DYNAMICS C !LOCAL VARIABLES: C === Local variables === C i,j,bi,bj :: Loop counters @@ -1374,7 +1337,7 @@ SUBROUTINE SEAICE_LSR_CALC_COEFFS( BU(i,j,bi,bj) = BU(i,j,bi,bj) * recip_rAw(i,j,bi,bj) & + seaiceMaskU(i,j,bi,bj) * & ( bdfAlphaOverDt*seaiceMassU(i,j,bi,bj) - & + 0.5 _d 0 * ( dragSym(i, J,bi,bj) + & + 0.5 _d 0 * ( dragSym(i, j,bi,bj) & + dragSym(i-1,j,bi,bj) )*areaW(i,j) & ) uRt1(i,j,bi,bj) = uRt1(i,j,bi,bj) * recip_rAw(i,j,bi,bj) @@ -1514,13 +1477,11 @@ SUBROUTINE SEAICE_LSR_RHSU( C === Local variables === C i,j :: Loop counters INTEGER i,j - INTEGER kSrf _RL hFacM _RL sig11(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL sig12(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CEOP - kSrf = 1 DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx sig11(i,j) = 0. _d 0 @@ -1645,13 +1606,11 @@ SUBROUTINE SEAICE_LSR_RHSV( C === Local variables === C i,j :: Loop counters INTEGER i,j - INTEGER kSrf _RL hFacM _RL sig22(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL sig12(1-OLx:sNx+OLx,1-OLy:sNy+OLy) CEOP - kSrf = 1 DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx sig22(i,j) = 0. _d 0 @@ -1846,12 +1805,12 @@ SUBROUTINE SEAICE_LSR_TRIDIAGU( ENDDO CADJ loop = sequential DO i=iMin,iMax-1 - iM=sNx-I + iM=sNx-i DO j=jMinLoc,jMax,jStep #else CADJ loop = sequential DO i=iMin,iMax-1 - iM=sNx-I + iM=sNx-i #endif /* SEAICE_VECTORIZE_LSR */ URT(iM,j)=URT(iM,j)-CUU(iM,j)*URT(iM+1,j) ENDDO @@ -2026,7 +1985,6 @@ SUBROUTINE SEAICE_LSR_TRIDIAGV( ENDDO #endif /* SEAICE_LSR_ZEBRA */ -#endif /* SEAICE_ALLOW_DYNAMICS */ #endif /* SEAICE_CGRID */ RETURN diff --git a/pkg/seaice/seaice_map_thsice.F b/pkg/seaice/seaice_map_thsice.F index f2a0b50245..69f8dd69a5 100644 --- a/pkg/seaice/seaice_map_thsice.F +++ b/pkg/seaice/seaice_map_thsice.F @@ -27,7 +27,6 @@ SUBROUTINE SEAICE_MAP_THSICE( myTime, myIter, myThid ) #endif /* ALLOW_THSICE */ #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C === Routine arguments === diff --git a/pkg/seaice/seaice_mnc_init.F b/pkg/seaice/seaice_mnc_init.F index 7e69fb68cd..f7d9ad2685 100644 --- a/pkg/seaice/seaice_mnc_init.F +++ b/pkg/seaice/seaice_mnc_init.F @@ -3,10 +3,10 @@ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP C !ROUTINE: SEAICE_MNC_INIT - + C !INTERFACE: SUBROUTINE SEAICE_MNC_INIT( myThid ) - + C !DESCRIPTION: C Initialize SEAICE variables within MNC diff --git a/pkg/seaice/seaice_model.F b/pkg/seaice/seaice_model.F index d148f87539..4c4485eb7d 100644 --- a/pkg/seaice/seaice_model.F +++ b/pkg/seaice/seaice_model.F @@ -1,4 +1,7 @@ #include "SEAICE_OPTIONS.h" +#ifdef ALLOW_EXF +# include "EXF_OPTIONS.h" +#endif #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif @@ -20,7 +23,8 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) C | Parallel forward ice model written by Jinlun Zhang PSC/UW| C | & coupled into MITgcm by Dimitris Menemenlis (JPL) 2/2001| C | zhang@apl.washington.edu / menemenlis@jpl.nasa.gov | -C *===========================================================* +C | o The code has been rewritten substantially to use the | +C | MITgcm C-grid, see Losch et al. OM, 33, 129- 144, 2010 | C *===========================================================* IMPLICIT NONE C \ev @@ -37,7 +41,6 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) #include "SEAICE.h" #include "SEAICE_TRACER.h" #ifdef ALLOW_EXF -# include "EXF_OPTIONS.h" # include "EXF_FIELDS.h" #endif #ifdef ALLOW_AUTODIFF_TAMC @@ -62,7 +65,7 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) #ifdef ALLOW_SITRACER INTEGER iTr #endif -#ifndef SEAICE_CGRID +#ifdef SEAICE_BGRID_DYNAMICS _RL uLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL vLoc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif @@ -78,12 +81,37 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) IF (debugMode) CALL DEBUG_ENTER( 'SEAICE_MODEL', myThid ) #endif + IF ( usingPCoords ) THEN +C In z-coordinates, phiHydLow is just a diagnostics and hence its +C overlaps are never filled properly +C in p-coordinates, phiHydLow is the sea level elevation that is required +C for the sea level tilt term in the momentum equation, so we need +C to fill the overlaps properly here +C (or elsewhere, not sure where it would be best) + _EXCH_XY_RL( phiHydLow, myThid ) + ENDIF #ifdef ALLOW_THSICE IF ( useThSice ) THEN C-- Map thSice-variables to HEFF and AREA CALL SEAICE_MAP_THSICE( myTime, myIter, myThid ) ENDIF #endif /* ALLOW_THSICE */ +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + diag_SIenph_isOn = DIAGNOSTICS_IS_ON('SIenph ',myThid) + IF ( diag_SIenph_isOn ) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + hTmp(i,j,bi,bj)=HEFF(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ #ifdef ALLOW_EXF IF ( useEXF ) THEN @@ -99,7 +127,7 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) ENDIF #endif /* ALLOW_EXF */ -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy @@ -115,121 +143,111 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) ENDDO ENDDO ENDDO -CADJ STORE uwind = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vwind = comlev1, key=ikey_dynamics, kind=isbyte +#endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte -# ifdef SEAICE_ALLOW_DYNAMICS -# ifdef SEAICE_CGRID CADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE seaicemasku = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE seaicemaskv = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef SEAICE_CGRID CADJ STORE fu = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE fv = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE eta = comlev1, key=ikey_dynamics, kind=isbyte -cphCADJ STORE zeta = comlev1, key=ikey_dynamics, kind=isbyte -cph( -CADJ STORE dwatn = comlev1, key=ikey_dynamics, kind=isbyte -#ifdef SEAICE_ALLOW_BOTTOMDRAG -CADJ STORE cbotc = comlev1, key=ikey_dynamics, kind=isbyte -#endif /* SEAICE_ALLOW_BOTTOMDRAG */ -cccCADJ STORE press0 = comlev1, key=ikey_dynamics, kind=isbyte -cccCADJ STORE zmax = comlev1, key=ikey_dynamics, kind=isbyte -cccCADJ STORE zmin = comlev1, key=ikey_dynamics, kind=isbyte -cph) -# ifdef SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP CADJ STORE seaice_sigma1 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE seaice_sigma2 = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE seaice_sigma12 = comlev1, key=ikey_dynamics, kind=isbyte -# endif -# endif -# endif +# endif /* SEAICE_ALLOW_EVP */ +# endif /* SEAICE_CGRID */ # ifdef ALLOW_SITRACER -CADJ STORE siceload = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE sitracer = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE siceload = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE sitracer = comlev1, key=ikey_dynamics, kind=isbyte # endif #endif /* ALLOW_AUTODIFF_TAMC */ -C solve ice momentum equations and calculate ocean surface stress +C-- Solve ice momentum equations and calculate ocean surface stress. +C The surface stress always needs to be updated, even if neither B- +C or C-grid dynamics are compiled, and SEAICEuseDYNAMICS = F. #ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL( 'SEAICE_DYNSOLVER', myThid ) #endif -#ifdef SEAICE_CGRID - CALL TIMER_START('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid) - CALL SEAICE_DYNSOLVER ( myTime, myIter, myThid ) - CALL TIMER_STOP ('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid) -#else +#ifdef SEAICE_BGRID_DYNAMICS CALL TIMER_START('DYNSOLVER [SEAICE_MODEL]',myThid) CALL DYNSOLVER ( myTime, myIter, myThid ) CALL TIMER_STOP ('DYNSOLVER [SEAICE_MODEL]',myThid) -#endif /* SEAICE_CGRID */ +#else /* use default C-grid solver */ + CALL TIMER_START('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid) + CALL SEAICE_DYNSOLVER ( myTime, myIter, myThid ) + CALL TIMER_STOP ('SEAICE_DYNSOLVER [SEAICE_MODEL]',myThid) +#endif C-- Apply ice velocity open boundary conditions #ifdef ALLOW_OBCS # ifndef DISABLE_SEAICE_OBCS - IF ( useOBCS ) CALL OBCS_ADJUST_UVICE( uice, vice, myThid ) + IF ( useOBCS ) CALL OBCS_ADJUST_UVICE( uice, vice, myThid ) # endif /* DISABLE_SEAICE_OBCS */ #endif /* ALLOW_OBCS */ +#if ( defined ALLOW_AUTODIFF_TAMC && defined SEAICE_CGRID ) +CADJ STORE uice = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE vice = comlev1, key=ikey_dynamics, kind=isbyte +C Note: Storing u/vice **after** seaice_dynsolver (and obcs_adjust_uvice) +C has the effect that seaice_dynsolver is not called from seaice_model_ad +C anymore. This is important because with the numerous tricks to avoid +C complicated code in the backward integration (see pkg/autodiff), +C the extra call would update the ice velocities with the wrong +C set of flag values. +#endif + #ifdef ALLOW_THSICE IF ( useThSice ) THEN -#ifndef OLD_THSICE_CALL_SEQUENCE #ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL( 'THSICE_DO_ADVECT', myThid ) + IF (debugMode) CALL DEBUG_CALL( 'THSICE_DO_ADVECT', myThid ) #endif - CALL THSICE_DO_ADVECT( 0, 0, myTime, myIter, myThid ) -#endif /* OLD_THSICE_CALL_SEQUENCE */ + CALL THSICE_DO_ADVECT( 0, 0, myTime, myIter, myThid ) ELSE #endif /* ALLOW_THSICE */ C-- Only call advection of heff, area, snow, and salt and C-- growth for the generic 0-layer thermodynamics of seaice C-- if useThSice=.false., otherwise the 3-layer Winton thermodynamics C-- (called from DO_OCEANIC_PHYSICS) take care of this -#ifdef ALLOW_DIAGNOSTICS - IF ( useDiagnostics ) THEN - diag_SIenph_isOn = DIAGNOSTICS_IS_ON('SIenph ',myThid) - IF ( diag_SIenph_isOn ) THEN - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - hTmp(i,j,bi,bj)=HEFF(i,j,bi,bj) - ENDDO - ENDDO - ENDDO - ENDDO - ENDIF - ENDIF -#endif C NOW DO ADVECTION and DIFFUSION - IF ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow + IF ( SEAICEadvHeff .OR. SEAICEadvArea .OR. SEAICEadvSnow & .OR. SEAICEadvSalt ) THEN #ifdef ALLOW_DEBUG - IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ADVDIFF', myThid ) + IF (debugMode) CALL DEBUG_CALL( 'SEAICE_ADVDIFF', myThid ) #endif -#ifdef SEAICE_CGRID - CALL SEAICE_ADVDIFF( uIce, vIce, myTime, myIter, myThid ) -#else /* SEAICE_CGRID */ - CALL SEAICE_ADVDIFF( uLoc, vLoc, myTime, myIter, myThid ) -#endif /* SEAICE_CGRID */ - ENDIF +C-- There always needs to be advection, even if neither B- or C-grid +C dynamics are compiled. +#ifdef SEAICE_BGRID_DYNAMICS + CALL SEAICE_ADVDIFF( uLoc, vLoc, myTime, myIter, myThid ) +#else /* default C-grid advection */ + CALL SEAICE_ADVDIFF( uIce, vIce, myTime, myIter, myThid ) +#endif + ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE heff = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE area = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE hsnow = comlev1, key=ikey_dynamics, kind=isbyte +# ifdef SEAICE_VARIABLE_SALINITY +CADJ STORE hsalt = comlev1, key=ikey_dynamics, kind=isbyte +# endif +C Note: This store has the effect that seaice_advdiff is not called +C from seaice_model_ad anymore. Instead, the stored values are used. +#endif /* ALLOW_AUTODIFF_TAMC */ C After advection, the sea ice variables may have unphysical values C e.g., < 0, that are regularized here. Concentration as a special case C may be > 1 in convergent motion and a ridging algorithm redistributes C the ice to limit the concentration to 1. - CALL SEAICE_REG_RIDGE( myTime, myIter, myThid ) + CALL SEAICE_REG_RIDGE( myTime, myIter, myThid ) #ifdef ALLOW_EXF - IF ( useEXF .AND. useDiagnostics ) THEN + IF ( useEXF .AND. useDiagnostics ) THEN C- Fill-in EXF surface flux diags, weighted by open-ocean fraction grpDiag = -2 IF ( usePW79thermodynamics ) grpDiag = 2 CALL EXF_WEIGHT_SFX_DIAGS( I AREA, grpDiag, myTime, myIter, myThid ) - ENDIF + ENDIF #endif /* ALLOW_EXF */ #ifdef DISABLE_SEAICE_GROWTH @@ -239,17 +257,17 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) C must call growth after calling advection C because of ugly time level business IF ( usePW79thermodynamics ) THEN -#ifdef SEAICE_USE_GROWTH_ADX -#ifdef ALLOW_DEBUG +# ifdef SEAICE_USE_GROWTH_ADX +# ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL( 'SEAICE_GROWTH_ADX', myThid ) -#endif +# endif CALL SEAICE_GROWTH_ADX( myTime, myIter, myThid ) -#else -#ifdef ALLOW_DEBUG +# else / * SEAICE_USE_GROWTH_ADX */ +# ifdef ALLOW_DEBUG IF (debugMode) CALL DEBUG_CALL( 'SEAICE_GROWTH', myThid ) -#endif +# endif CALL SEAICE_GROWTH( myTime, myIter, myThid ) -#endif +# endif / * SEAICE_USE_GROWTH_ADX */ ELSE #endif /* DISABLE_SEAICE_GROWTH */ DO bj=myByLo(myThid),myByHi(myThid) @@ -339,16 +357,11 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN C diagnostics for "non-state variables" that are modified by -C the seaice model -# ifdef ALLOW_EXF -c CALL DIAGNOSTICS_FILL(UWIND ,'SIuwind ',0,1 ,0,1,1,myThid) -c CALL DIAGNOSTICS_FILL(VWIND ,'SIvwind ',0,1 ,0,1,1,myThid) -# endif -c CALL DIAGNOSTICS_FILL_RS(FU ,'SIfu ',0,1 ,0,1,1,myThid) -c CALL DIAGNOSTICS_FILL_RS(FV ,'SIfv ',0,1 ,0,1,1,myThid) +C the seaice model ... CALL DIAGNOSTICS_FILL_RS(EmPmR,'SIempmr ',0,1 ,0,1,1,myThid) CALL DIAGNOSTICS_FILL_RS(Qnet ,'SIqnet ',0,1 ,0,1,1,myThid) CALL DIAGNOSTICS_FILL_RS(Qsw ,'SIqsw ',0,1 ,0,1,1,myThid) +C ... and energy diagnostic IF ( diag_SIenph_isOn ) THEN recip_deltaTtherm = 1. _d 0 / SEAICE_deltaTtherm DO bj=myByLo(myThid),myByHi(myThid) @@ -378,9 +391,9 @@ SUBROUTINE SEAICE_MODEL( myTime, myIter, myThid ) CML CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) #ifdef ALLOW_EXF -# ifdef ALLOW_AUTODIFF_TAMC -# if (defined (ALLOW_AUTODIFF_MONITOR)) - CALL EXF_ADJOINT_SNAPSHOTS( 3, myTime, myIter, myThid ) +# ifdef ALLOW_AUTODIFF +# ifdef ALLOW_AUTODIFF_MONITOR + CALL EXF_ADJOINT_SNAPSHOTS( 3, myTime, myIter, myThid ) # endif # endif #endif diff --git a/pkg/seaice/seaice_mom_advection.F b/pkg/seaice/seaice_mom_advection.F index 9552963697..20ffc0a21f 100644 --- a/pkg/seaice/seaice_mom_advection.F +++ b/pkg/seaice/seaice_mom_advection.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_MOM_ADVECTION @@ -29,10 +26,6 @@ SUBROUTINE SEAICE_MOM_ADVECTION( #include "GRID.h" #include "SEAICE_SIZE.h" #include "SEAICE_PARAMS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# include "tamc_keys.h" -#endif C == Routine arguments == C bi,bj :: current tile indices @@ -78,29 +71,9 @@ SUBROUTINE SEAICE_MOM_ADVECTION( CML LOGICAL SEAICEhighOrderVorticity, SEAICEupwindVorticity CML LOGICAL SEAICEuseAbsVorticity, LOGICAL vorticityFlag -#ifdef ALLOW_AUTODIFF_TAMC - INTEGER imomkey -#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_AUTODIFF_TAMC - act0 = k - 1 - max0 = Nr - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - imomkey = (act0 + 1) - & + act1*max0 - & + act2*max0*max1 - & + act3*max0*max1*max2 - & + act4*max0*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - CML SEAICEselectKEscheme = selectKEscheme CML SEAICEselectVortScheme = selectVortScheme CML SEAICEhighOrderVorticity = highOrderVorticity @@ -135,17 +108,6 @@ SUBROUTINE SEAICE_MOM_ADVECTION( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ufld(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE vfld(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE hFacZ(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE r_hFacZ(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -#endif - CALL MOM_CALC_KE(bi,bj,k,SEAICEselectKEscheme,uFld,vFld,KE,myThid) CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid) @@ -159,32 +121,18 @@ SUBROUTINE SEAICE_MOM_ADVECTION( CML ENDDO CML ENDIF -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ke(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE vort3(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -#endif - C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ucf(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE vcf(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -#endif - C-- Horizontal advection of relative (or absolute) vorticity vorticityFlag = SEAICEhighOrderVorticity.OR.SEAICEupwindVorticity IF ( vorticityFlag ) THEN - CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,SEAICEselectVortScheme, + CALL MOM_VI_U_CORIOLIS_C4(bi,bj,k,SEAICEselectVortScheme, & SEAICEhighOrderVorticity, & SEAICEupwindVorticity, & vFld,vort3,r_hFacZ, & uCf,myThid) ELSE - CALL MOM_VI_U_CORIOLIS(bi,bj,k,SEAICEselectVortScheme, + CALL MOM_VI_U_CORIOLIS(bi,bj,k,SEAICEselectVortScheme, & SEAICEuseJamartMomAdv, & vFld,vort3,hFacZ,r_hFacZ, & uCf,myThid) @@ -195,13 +143,13 @@ SUBROUTINE SEAICE_MOM_ADVECTION( ENDDO ENDDO IF ( vorticityFlag ) THEN - CALL MOM_VI_V_CORIOLIS_C4(bi,bj,k,SEAICEselectVortScheme, + CALL MOM_VI_V_CORIOLIS_C4(bi,bj,k,SEAICEselectVortScheme, & SEAICEhighOrderVorticity, & SEAICEupwindVorticity, & uFld,vort3,r_hFacZ, & vCf,myThid) ELSE - CALL MOM_VI_V_CORIOLIS(bi,bj,k,SEAICEselectVortScheme, + CALL MOM_VI_V_CORIOLIS(bi,bj,k,SEAICEselectVortScheme, & SEAICEuseJamartMomAdv, & uFld,vort3,hFacZ,r_hFacZ, & vCf,myThid) @@ -212,13 +160,6 @@ SUBROUTINE SEAICE_MOM_ADVECTION( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ucf(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -CADJ STORE vcf(:,:) = -CADJ & comlev1_bibj_lsr, key = imomkey, byte = isbyte -#endif - #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL DIAGNOSTICS_FILL(uCf,'SIuAdvZ3',k,1,2,bi,bj,myThid) diff --git a/pkg/seaice/seaice_monitor.F b/pkg/seaice/seaice_monitor.F index 9e18f471a5..089e8d76c2 100644 --- a/pkg/seaice/seaice_monitor.F +++ b/pkg/seaice/seaice_monitor.F @@ -100,14 +100,12 @@ SUBROUTINE SEAICE_MONITOR( #ifdef SEAICE_CGRID CALL MON_WRITESTATS_RL( 1, UICE, '_uice', & maskInW, maskInW, rAw, drF, dummyRL, myThid ) -#else - CALL MON_WRITESTATS_RL( 1, UICE, '_uice', - & UVM, UVM, rAz, drF, dummyRL, myThid ) -#endif -#ifdef SEAICE_CGRID CALL MON_WRITESTATS_RL( 1, VICE, '_vice', & maskInS, maskInS, rAs, drF, dummyRL, myThid ) -#else +#endif +#ifdef SEAICE_BGRID_DYNAMICS + CALL MON_WRITESTATS_RL( 1, UICE, '_uice', + & UVM, UVM, rAz, drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, VICE, '_vice', & UVM, UVM, rAz, drF, dummyRL, myThid ) #endif diff --git a/pkg/seaice/seaice_monitor_ad.F b/pkg/seaice/seaice_monitor_ad.F index 170f7e1152..818c9acb13 100644 --- a/pkg/seaice/seaice_monitor_ad.F +++ b/pkg/seaice/seaice_monitor_ad.F @@ -109,14 +109,12 @@ SUBROUTINE ADSEAICE_MONITOR( #ifdef SEAICE_CGRID CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice', & maskInW, maskInW, rAw, drF, dummyRL, myThid ) -#else - CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice', - & UVM, UVM, rAz, drF, dummyRL, myThid ) -#endif -#ifdef SEAICE_CGRID CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice', & maskInS, maskInS, rAs, drF, dummyRL, myThid ) -#else +#endif +#ifdef SEAICE_BGRID_DYNAMICS + CALL MON_WRITESTATS_RL( 1, ADUICE, '_aduice', + & UVM, UVM, rAz, drF, dummyRL, myThid ) CALL MON_WRITESTATS_RL( 1, ADVICE, '_advice', & UVM, UVM, rAz, drF, dummyRL, myThid ) #endif diff --git a/pkg/seaice/seaice_ocean_stress.F b/pkg/seaice/seaice_ocean_stress.F index 6a75863ab5..2480649fb8 100644 --- a/pkg/seaice/seaice_ocean_stress.F +++ b/pkg/seaice/seaice_ocean_stress.F @@ -40,7 +40,6 @@ SUBROUTINE SEAICE_OCEAN_STRESS( INTEGER myIter INTEGER myThid -#ifdef SEAICE_CGRID C !LOCAL VARIABLES: C i,j,bi,bj :: Loop counters C kSrf :: vertical index of surface layer @@ -53,7 +52,11 @@ SUBROUTINE SEAICE_OCEAN_STRESS( CEOP C surrface level - kSrf = 1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF C introduce turning angle (default is zero) SINWAT=SIN(SEAICE_waterTurnAngle*deg2rad) COSWAT=COS(SEAICE_waterTurnAngle*deg2rad) @@ -73,7 +76,9 @@ SUBROUTINE SEAICE_OCEAN_STRESS( & * SEAICEstressFactor fu(I,J,bi,bj)=(ONE-areaW)*fu(I,J,bi,bj) & + areaW*windTauX(I,J,bi,bj) +#ifdef SEAICE_CGRID & + stressDivergenceX(I,J,bi,bj) * SEAICEstressFactor +#endif ENDDO ENDDO C This loop separation makes the adjoint code vectorize @@ -83,7 +88,9 @@ SUBROUTINE SEAICE_OCEAN_STRESS( & * SEAICEstressFactor fv(I,J,bi,bj)=(ONE-areaS)*fv(I,J,bi,bj) & + areaS*windTauY(I,J,bi,bj) +#ifdef SEAICE_CGRID & + stressDivergenceY(I,J,bi,bj) * SEAICEstressFactor +#endif ENDDO ENDDO ENDDO @@ -134,7 +141,5 @@ SUBROUTINE SEAICE_OCEAN_STRESS( ENDIF CALL EXCH_UV_XY_RS(fu, fv, .TRUE., myThid) -#endif /* SEAICE_CGRID */ - RETURN END diff --git a/pkg/seaice/seaice_oceandrag_coeffs.F b/pkg/seaice/seaice_oceandrag_coeffs.F index f0ce0bf769..8386d3c7a2 100644 --- a/pkg/seaice/seaice_oceandrag_coeffs.F +++ b/pkg/seaice/seaice_oceandrag_coeffs.F @@ -2,9 +2,6 @@ #ifdef ALLOW_OBCS # include "OBCS_OPTIONS.h" #endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_OCEANDRAG_COEFFS @@ -36,10 +33,6 @@ SUBROUTINE SEAICE_OCEANDRAG_COEFFS( #include "SEAICE_SIZE.h" #include "SEAICE_PARAMS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === C myTime :: Simulation time @@ -58,7 +51,7 @@ SUBROUTINE SEAICE_OCEANDRAG_COEFFS( C CwatC :: drag coefficients _RL CwatC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#if ( (defined SEAICE_CGRID) && (defined SEAICE_ALLOW_DYNAMICS) ) +#ifdef SEAICE_CGRID C === local variables === C i,j,bi,bj,ksrf :: loop indices INTEGER i,j,bi,bj @@ -67,7 +60,11 @@ SUBROUTINE SEAICE_OCEANDRAG_COEFFS( _RL dragCoeff CEOP - kSrf = 1 + IF ( usingPCoords ) THEN + kSrf = Nr + ELSE + kSrf = 1 + ENDIF tempMin = SEAICEdWatMin*SEAICEdWatMin DO bj=myByLo(myThid),myByHi(myThid) @@ -113,7 +110,7 @@ SUBROUTINE SEAICE_OCEANDRAG_COEFFS( ENDDO ENDDO -#endif /* SEAICE_ALLOW_DYNAMICS and SEAICE_CGRID */ +#endif /* SEAICE_CGRID */ RETURN END diff --git a/pkg/seaice/seaice_preconditioner.F b/pkg/seaice/seaice_preconditioner.F index 0a280771a3..74de68182d 100644 --- a/pkg/seaice/seaice_preconditioner.F +++ b/pkg/seaice/seaice_preconditioner.F @@ -68,7 +68,8 @@ SUBROUTINE SEAICE_PRECONDITIONER( _RL dvIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CEOP -#if (defined SEAICE_ALLOW_DYNAMICS && defined SEAICE_ALLOW_JFNK) +#if ( defined SEAICE_CGRID && \ + ( defined SEAICE_ALLOW_JFNK || defined SEAICE_ALLOW_KRYLOV ) ) C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE @@ -633,7 +634,7 @@ SUBROUTINE SEAICE_PRECOND_RHSV ( ENDDO ENDIF -#endif /* SEAICE_ALLOW_JFNK */ +#endif /* SEAICE_CGRID, SEAICE_ALLOW_JFNK and KRYLOV */ RETURN END diff --git a/pkg/seaice/seaice_prepare_ridging.F b/pkg/seaice/seaice_prepare_ridging.F index 532d200272..e8537e70cf 100644 --- a/pkg/seaice/seaice_prepare_ridging.F +++ b/pkg/seaice/seaice_prepare_ridging.F @@ -1,7 +1,4 @@ #include "SEAICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif CBOP C !ROUTINE: SEAICE_PREPARE_RIDGING @@ -16,12 +13,12 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( C !DESCRIPTION: \bv C *===========================================================* C | SUBROUTINE SEAICE_PREPARE_RIDGING -C | o compute ridging parameters according to Thorndyke et al +C | o compute ridging parameters according to Thorndyke et al C | (1975), Hibler (1980), Bitz et al (2001) or C | Lipscomb et al (2007) -C | o this routine is called from s/r seaice_do_ridging and +C | o this routine is called from s/r seaice_do_ridging and C | from s/r seaice_calc_ice_strength -C | +C | C | Martin Losch, Apr. 2014, Martin.Losch@awi.de C *===========================================================* C \ev @@ -37,10 +34,6 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( #include "SEAICE_PARAMS.h" #include "SEAICE.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT PARAMETERS: =================================================== C === Routine arguments === C bi, bj :: outer loop counters @@ -67,7 +60,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( _RL hrMax (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nITD) _RL hrExp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nITD) _RL ridgeRatio (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nITD) - _RL hActual (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nITD) + _RL hActual (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:nITD) CEndOfInterface C !LOCAL VARIABLES: ==================================================== @@ -97,7 +90,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( CML hActual(i,j,k) = HEFFITD(i,j,k,bi,bj)/AREAITD(i,j,k,bi,bj) CML ENDIF IF ( HEFFITD(i,j,k,bi,bj) .GT. 0. _d 0 ) THEN -C regularize as in seaice_growth: compute hActual with regularized +C regularize as in seaice_growth: compute hActual with regularized C AREA and regularize from below with a minimum thickness tmp = HEFFITD(i,j,k,bi,bj) & /SQRT( AREAITD(i,j,k,bi,bj)**2 + area_reg_sq ) @@ -106,7 +99,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( ENDDO ENDDO ENDDO - + C---+-|--1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C compute the cumulative thickness distribution function gSum @@ -114,7 +107,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( DO i=iMin,iMax gSum(i,j,-1) = 0. _d 0 gSum(i,j,0) = 0. _d 0 - IF ( opnWtrFrac(i,j,bi,bj) .GT. SEAICE_area_floor ) + IF ( opnWtrFrac(i,j,bi,bj) .GT. SEAICE_area_floor ) & gSum(i,j,0) = opnWtrFrac(i,j,bi,bj) ENDDO ENDDO @@ -131,7 +124,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( DO k = 0, nITD DO j=jMin,jMax DO i=iMin,iMax - IF ( gSum(i,j,nITD).NE.0. _d 0 ) + IF ( gSum(i,j,nITD).NE.0. _d 0 ) & gSum(i,j,k) = gSum(i,j,k) / gSum(i,j,nITD) ENDDO ENDDO @@ -152,12 +145,12 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( DO i=iMin,iMax partFunc(i,j,k) = 0. _d 0 IF ( gSum(i,j,k) .LT. SEAICEgStar ) THEN - partFunc(i,j,k) = + partFunc(i,j,k) = & (gSum(i,j,k)-gSum(i,j,k-1)) * recip_gStar & *( 2. _d 0 - (gSum(i,j,k-1)+gSum(i,j,k))*recip_gStar) - ELSEIF ( gSum(i,j,k-1) .LT. SEAICEgStar + ELSEIF ( gSum(i,j,k-1) .LT. SEAICEgStar & .AND. gSum(i,j,k) .GE. SEAICEgStar ) THEN - partFunc(i,j,k) = + partFunc(i,j,k) = & (SEAICEgStar-gSum(i,j,k-1)) * recip_gStar & *( 2. _d 0 - (gSum(i,j,k-1)+SEAICEgStar)*recip_gStar) ENDIF @@ -166,8 +159,8 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( ENDDO ELSEIF ( SEAICEpartFunc .EQ. 1 ) THEN C Lipscomb et al. (2007) discretize b(h) = exp(-G(h)/astar) into -C partFunc(n) = [exp(-G(n-1)/astar - exp(-G(n)/astar] / [1-exp(-1/astar)]. -C The expression is found by integrating b(h)g(h) between the category +C partFunc(n) = [exp(-G(n-1)/astar - exp(-G(n)/astar] / [1-exp(-1/astar)]. +C The expression is found by integrating b(h)g(h) between the category C boundaries. recip_astar = 1. _d 0 / SEAICEaStar tmp = 1. _d 0 / ( 1. _d 0 - EXP( -recip_astar ) ) @@ -217,7 +210,7 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( hrMin(i,j,k) = 2. _d 0 * hActual(i,j,k) hrMax(i,j,k) = 2. _d 0 * SQRT(hActual(i,j,k)*SEAICEhStar) C CICE does this in addition, so that thick ridging ice is not required -C to raft: +C to raft: hrMin(i,j,k) = MIN(hrMin(i,j,k),hActual(i,j,k)+SEAICEmaxRaft) hrMax(i,j,k) = MAX(hrMax(i,j,k),hrMin(i,j,k)+SEAICE_hice_reg) C @@ -246,11 +239,11 @@ SUBROUTINE SEAICE_PREPARE_RIDGING( ENDDO ENDDO ELSE - STOP 'Ooops: SEAICEredistFunc > 1 not implemented' + STOP 'Ooops: SEAICEredistFunc > 1 not implemented' ENDIF -C Compute the norm of the ridging mode N (in Lipscomp et al 2007) -C or omega (in Bitz et al 2001): +C Compute the norm of the ridging mode N (in Lipscomp et al 2007) +C or omega (in Bitz et al 2001): C rigdingModeNorm = net ice area removed / total area participating. C For instance, if a unit area of ice with thickness = 1 participates in C ridging to form a ridge with a = 1/3 and thickness = 3, then diff --git a/pkg/seaice/seaice_readparms.F b/pkg/seaice/seaice_readparms.F index 4803d88005..1975e9210d 100644 --- a/pkg/seaice/seaice_readparms.F +++ b/pkg/seaice/seaice_readparms.F @@ -62,7 +62,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) #ifdef ALLOW_COST INTEGER locDate(4) #endif /* ALLOW_COST */ - INTEGER nRetired + INTEGER nRetired, nError _RL tmp C- Old parameters (to be retired one day): @@ -87,10 +87,29 @@ SUBROUTINE SEAICE_READPARMS( myThid ) CHARACTER*(MAX_LEN_MBUF) IceAgeFile, IceAgeTrFile(4) _RL SEAICE_abEps LOGICAL SEAICEuseAB2 +#ifdef ALLOW_COST +C former ALLOW_SEAICE_COST_SMR_AREA related flags + _RL mult_smrarea + _RL mult_smrsst + _RL mult_smrsss + CHARACTER*(MAX_LEN_FNAM) smrarea_errfile + CHARACTER*(MAX_LEN_FNAM) smrareadatfile + CHARACTER*(MAX_LEN_FNAM) smrareabarfile + CHARACTER*(MAX_LEN_FNAM) smrsstbarfile + CHARACTER*(MAX_LEN_FNAM) smrsssbarfile + INTEGER smrareastartdate1 + INTEGER smrareastartdate2 + _RL wsmrarea0 + _RL wmean_smrarea + _RL smrareaperiod + _RL SEAICE_clamp_salt + _RL SEAICE_clamp_theta +#endif /* ALLOW_COST */ C-- SEAICE parameters NAMELIST /SEAICE_PARM01/ & SEAICEuseDYNAMICS, SEAICEuseFREEDRIFT, SEAICEuseStrImpCpl, + & SEAICEuseMCS, SEAICEuseMCE, SEAICEuseTD, SEAICEusePL, & SEAICEuseTEM, SEAICEuseMetricTerms, SEAICEuseTilt, & useHB87stressCoupling, SEAICEupdateOceanStress, & usePW79thermodynamics, useMaykutSatVapPoly, SEAICEuseFlooding, @@ -122,7 +141,8 @@ SUBROUTINE SEAICE_READPARMS( myThid ) & SEAICEnonLinIterMax, SEAICElinearIterMax, SEAICEnonLinTol, & SEAICEnewtonIterMax, SEAICEkrylovIterMax, JFNKgamma_nonlin, & SEAICEpreconNL_Iter, SEAICEpreconLinIter, - & SEAICE_JFNK_lsIter, SEAICE_JFNK_tolIter, JFNKres_t,JFNKres_tFac, + & SEAICE_JFNK_lsIter, SEAICE_JFNK_lsLmax, SEAICE_JFNK_lsGamma, + & SEAICE_JFNK_tolIter, JFNKres_t,JFNKres_tFac, & JFNKgamma_lin_min,JFNKgamma_lin_max, & SEAICE_JFNKepsilon, SEAICE_OLx, SEAICE_OLy, & SEAICE_JFNKphi, SEAICE_JFNKalpha, SEAICEuseIMEX, SEAICEuseBDF2, @@ -146,6 +166,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) & SEAICE_cBasalStar, SEAICEbasalDragU0, SEAICEbasalDragK1, & SEAICEbasalDragK2, SEAICE_wetAlbTemp, SEAICE_waterAlbedo, & SEAICE_strength, SEAICE_cStar, SEAICE_eccen, + & SEAICE_eccfr, SEAICEtdMU, SEAICEmcMu, & SEAICEpressReplFac, SEAICE_tensilFac, SEAICE_tensilDepth, & SEAICE_lhFusion, SEAICE_lhEvap, SEAICE_dalton, & SEAICE_sensHeat, SEAICE_latentWater, SEAICE_latentIce, @@ -181,9 +202,8 @@ SUBROUTINE SEAICE_READPARMS( myThid ) & mult_ice_export, mult_ice, cost_ice_flag, & costIceStart1, costIceStart2, & costIceEnd1, costIceEnd2, - & cost_ice_flag, - & SEAICE_clamp_salt, SEAICE_clamp_theta, & SEAICE_cutoff_area, SEAICE_cutoff_heff, + & SEAICE_clamp_salt, SEAICE_clamp_theta, & mult_smrsst, smrsstbarfile, & mult_smrsss, smrsssbarfile, & mult_smrarea, smrareabarfile, smrareadatfile, @@ -214,7 +234,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) _BEGIN_MASTER(myThid) C-- set default sea ice parameters -#ifdef SEAICE_ALLOW_DYNAMICS +#if ( defined SEAICE_CGRID || defined SEAICE_BGRID_DYNAMICS ) SEAICEuseDYNAMICS = .TRUE. #else SEAICEuseDYNAMICS = .FALSE. @@ -225,10 +245,14 @@ SUBROUTINE SEAICE_READPARMS( myThid ) SEAICEuseTilt = .TRUE. SEAICEheatConsFix = .FALSE. SEAICEuseTEM = .FALSE. + SEAICEuseMCS = .FALSE. + SEAICEuseMCE = .FALSE. + SEAICEuseTD = .FALSE. + SEAICEusePL = .FALSE. SEAICEuseMetricTerms = .TRUE. SEAICEuseEVPpickup = .TRUE. - SEAICEuseEVPstar = .FALSE. - SEAICEuseEVPrev = .FALSE. + SEAICEuseEVPstar = .TRUE. + SEAICEuseEVPrev = .TRUE. SEAICErestoreUnderIce = .FALSE. SEAICE_growMeltByConv = .FALSE. SEAICE_salinityTracer = .FALSE. @@ -313,6 +337,8 @@ SUBROUTINE SEAICE_READPARMS( myThid ) SEAICEuseJFNK = .FALSE. SEAICEuseIMEX = .FALSE. SEAICE_JFNK_lsIter = UNSET_I + SEAICE_JFNK_lsLmax = 4 + SEAICE_JFNK_lsGamma = 0.5 _d 0 SEAICE_JFNK_tolIter = 100 C This should be the default for both JFNK and for LSR but in order C to not jeopardize any existing results, and because it does not yet @@ -397,8 +423,11 @@ SUBROUTINE SEAICE_READPARMS( myThid ) SEAICE_cStar = 20. _d 0 SEAICEpressReplFac = 1. _d 0 SEAICE_eccen = 2. _d 0 + SEAICE_eccfr = UNSET_RL SEAICE_tensilFac = 0. _d 0 SEAICE_tensilDepth = 0. _d 0 + SEAICEtdMU = 1. _d 0 + SEAICEmcMu = 1. _d 0 C coefficients for flux computations/bulk formulae SEAICE_dalton = 1.75 _d -03 #ifdef ALLOW_EXF @@ -496,7 +525,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) #else LSR_mixIniGuess = -1 #endif - LSR_ERROR = 0.0001 _d 0 + LSR_ERROR = 0.00001 _d 0 SEAICEuseMultiTileSolver = .FALSE. SEAICE_area_floor = siEPS @@ -584,23 +613,23 @@ SUBROUTINE SEAICE_READPARMS( myThid ) costIceEnd1 = 0 costIceEnd2 = 0 cost_ice_flag = 1 - SEAICE_clamp_salt = 27.5 _d 0 - SEAICE_clamp_theta = 0.0001 _d 0 SEAICE_cutoff_area = 0.0001 _d 0 SEAICE_cutoff_heff = 0. _d 0 -c - mult_smrsst = 0. _d 0 - mult_smrsss = 0. _d 0 - mult_smrarea = 0. _d 0 - wsmrarea0 = 0.5 _d 0 - wmean_smrarea = 0.5 _d 0 - smrsstbarfile = 'smrsstbar' - smrsssbarfile = 'smrsssbar' - smrareabarfile = 'smrareabar' +C retired cost related parameters + SEAICE_clamp_salt = UNSET_RL + SEAICE_clamp_theta = UNSET_RL + mult_smrsst = UNSET_RL + mult_smrsss = UNSET_RL + mult_smrarea = UNSET_RL + wsmrarea0 = UNSET_RL + wmean_smrarea = UNSET_RL + smrsstbarfile = ' ' + smrsssbarfile = ' ' + smrareabarfile = ' ' smrareadatfile = ' ' smrarea_errfile = ' ' - smrareastartdate1 = locDate(1) - smrareastartdate2 = locDate(2) + smrareastartdate1 = UNSET_I + smrareastartdate2 = UNSET_I #endif /* ALLOW_COST */ #ifdef ALLOW_SITRACER @@ -619,6 +648,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) ENDDO #endif /* ALLOW_SITRACER */ nRetired = 0 + nError = 0 C Open and read the data.seaice file WRITE(msgBuf,'(A)') @@ -667,6 +697,8 @@ SUBROUTINE SEAICE_READPARMS( myThid ) C-- Default for regularizing Delta to remain backward compatible IF ( SEAICE_deltaMin .EQ. UNSET_RL ) SEAICE_deltaMin = SEAICE_EPS +C-- Default is to have a normal flow rule if SEAICE_eccfr is not set + IF (SEAICE_eccfr .EQ. UNSET_RL ) SEAICE_eccfr = SEAICE_eccen C-- If no PDF was prescribed use the default uniform pdf tmp = SEAICE_multDim @@ -710,22 +742,19 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(A)') & ' SEAICE_deltaTdyn, and dTtracerLev(1)' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF SEAICEuseEVP = .FALSE. #ifdef SEAICE_ALLOW_EVP -C There are four ways to turn on EVP +C There are three ways to turn on EVP C 1. original EVP (Hunke, 2001) - IF ( SEAICE_deltaTevp .NE. UNSET_RL ) SEAICEuseEVP = .TRUE. + IF ( SEAICE_deltaTevp .NE. UNSET_RL ) SEAICEuseEVP = .TRUE. C 2. modified EVP (Lemieux et al., 2012) or revised EVP (Bouillon C et al., 2014) by setting alpha and beta IF ( SEAICE_evpAlpha .NE. UNSET_RL - & .OR. SEAICE_evpBeta .NE. UNSET_RL ) SEAICEuseEVPstar = .TRUE. + & .OR. SEAICE_evpBeta .NE. UNSET_RL ) SEAICEuseEVP = .TRUE. C 3. adaptive EVP - IF ( SEAICEaEVPcoeff .NE. UNSET_RL ) SEAICEuseEVPstar = .TRUE. -C 4. modified EVP* (Lemieux et al., 2012) or revised EVP (Bouillon -C et al., 2014) by explicitly setting up specific flags - IF ( SEAICEuseEVPstar.OR.SEAICEuseEVPrev ) SEAICEuseEVP = .TRUE. + IF ( SEAICEaEVPcoeff .NE. UNSET_RL ) SEAICEuseEVP = .TRUE. C if EVP is turned on, a couple of parameters need to be computed IF ( SEAICEuseEVP ) THEN IF ( (SEAICE_deltaTdyn/SEAICE_deltaTevp) .NE. @@ -734,16 +763,27 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(A)') & 'SEAICE_deltaTevp must be a factor of SEAICE_deltaTdyn.' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF IF ( SEAICE_elasticParm .LE. 0. _d 0 ) THEN WRITE(msgBuf,'(A)') & 'SEAICE_elasticParm must greater than 0.' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF IF ( SEAICE_evpTauRelax .LE. 0. _d 0 ) & SEAICE_evpTauRelax = SEAICE_deltaTdyn*SEAICE_elasticParm +C determine number of internal steps + IF ( SEAICEnEVPstarSteps.EQ.UNSET_I ) THEN + IF ( SEAICE_deltaTevp.EQ.UNSET_RL ) THEN + WRITE(msgBuf,'(A,A)') 'S/R SEAICE_readparms: Either ', + & 'SEAICEnEVPstarSteps or SEAICE_deltaTevp need to be set.' + CALL PRINT_ERROR( msgBuf , myThid) + nError = nError + 1 + ELSE + SEAICEnEVPstarSteps = INT(SEAICE_deltaTdyn/SEAICE_deltaTevp) + ENDIF + ENDIF C default: evpAlpha = evpBeta IF ( SEAICE_evpAlpha .NE. UNSET_RL .AND. & SEAICE_evpBeta .EQ. UNSET_RL ) SEAICE_evpBeta = SEAICE_evpAlpha @@ -765,9 +805,14 @@ SUBROUTINE SEAICE_READPARMS( myThid ) IF ( SEAICEaEVPcStar .EQ.UNSET_RL) SEAICEaEVPcStar =4. _d 0 IF (SEAICEaEVPalphaMin.EQ.UNSET_RL) SEAICEaEVPalphaMin=5. _d 0 C requires EVP* to work well, so make sure we set it here (commented out -C for now +C for now, but these values are the default values now) CML SEAICEuseEVPstar = .TRUE. CML SEAICEuseEVPrev = .TRUE. +C For adaptive EVP we do not need constant parameters alpha and +C beta, because they are computed dynamically. Reset them to +C undefined here, so that we know if something funny is going on. + SEAICE_evpAlpha = UNSET_RL + SEAICE_evpBeta = UNSET_RL ENDIF C Check if all parameters are set. ENDIF @@ -825,7 +870,11 @@ SUBROUTINE SEAICE_READPARMS( myThid ) IF ( SEAICElinearIterMax .EQ. UNSET_I ) THEN C maximum number of LSOR steps in default Picard solver C (=previous default for retired SOLV_MAX_ITERS) +#ifdef ALLOW_AUTODIFF + SEAICElinearIterMax = SOLV_MAX_FIXED +#else SEAICElinearIterMax = 1500 +#endif C the maximum number of Krylov dimensions of 50 is hard coded in C S/R SEAICE_FGMRES, so that more than 50 linear iterations will C restart GMRES @@ -861,7 +910,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: Cannot specify ', & 'both SEAICE_mcPheeTaper & SEAICE_availHeatTaper' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF C- set SEAICE_frazilFrac if not yet done @@ -872,7 +921,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: Cannot specify ', & 'both SEAICE_frazilFrac & SEAICE_gamma_t_frz' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF ENDIF IF ( SEAICE_availHeatFracFrz.NE.UNSET_RL ) THEN @@ -886,8 +935,8 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: Cannot specify ', & 'both SEAICE_gamma_t_frz & SEAICE_availHeatFracFrz' ENDIF - CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + CALL PRINT_ERROR( msgBuf , myThid) + nError = nError + 1 ENDIF ENDIF C the default for SEAICE_gamma_t_frz use to be SEAICE_gamma_t: @@ -913,7 +962,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: Cannot specify ', & 'both SEAICE_gamma_t & SEAICE_availHeatFrac' CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF ENDIF IF ( SEAICE_mcPheePiston .NE. UNSET_RL .AND. @@ -926,7 +975,7 @@ SUBROUTINE SEAICE_READPARMS( myThid ) & 'both SEAICE_mcPheePiston & SEAICE_gamma_t' ENDIF CALL PRINT_ERROR( msgBuf , myThid) - STOP 'ABNORMAL END: S/R SEAICE_READPARMS' + nError = nError + 1 ENDIF IF ( useThSice ) THEN @@ -1255,13 +1304,57 @@ SUBROUTINE SEAICE_READPARMS( myThid ) & 'is no longer allowed in file "data.seaice"' CALL PRINT_ERROR( msgBuf, myThid ) ENDIF +#ifdef ALLOW_COST + IF ( smrsstbarfile .NE. ' ' .OR. smrsssbarfile .NE. ' ' + & .OR. smrareabarfile .NE. ' ' .OR. smrareadatfile .NE. ' ' + & .OR. smrarea_errfile .NE. ' ' + & .OR. mult_smrsst .NE. UNSET_RL .OR. mult_smrsss.NE.UNSET_RL + & .OR. mult_smrarea .NE. UNSET_RL .OR. wsmrarea0 .NE.UNSET_RL + & .OR. wmean_smrarea .NE. UNSET_RL + & .OR. smrareastartdate1 .NE. UNSET_I + & .OR. smrareastartdate2 .NE. UNSET_I + & ) THEN + nRetired = nRetired + 1 + WRITE(msgBuf,'(A,A)') + & 'S/R SEAICE_READPARMS: "SMR"-related parameters ', + & 'are no longer allowed in file "data.seaice"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( SEAICE_clamp_salt .NE. UNSET_RL ) THEN + nRetired = nRetired + 1 + WRITE(msgBuf,'(A,A)') + & 'S/R SEAICE_READPARMS: "SEAICE_clamp_salt" ', + & 'is no longer allowed in file "data.seaice"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + IF ( SEAICE_clamp_theta .NE. UNSET_RL ) THEN + nRetired = nRetired + 1 + WRITE(msgBuf,'(A,A)') + & 'S/R SEAICE_READPARMS: "SEAICE_clamp_theta" ', + & 'is no longer allowed in file "data.seaice"' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF +#endif /* ALLOW_COST */ IF ( nRetired .GT. 0 ) THEN WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: ', & 'Error reading parameter file "data.seaice"' CALL PRINT_ERROR( msgBuf, myThid ) - WRITE(msgBuf,'(A)') - & 'some out of date parameters were found in the namelist' + WRITE(msgBuf,'(A,I3,A)') 'S/R SEAICE_READPARMS: ', nRetired, + & ' out of date parameters were found in the namelist' CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + + IF ( nError .GT. 0 ) THEN + WRITE(msgBuf,'(2A)') 'S/R SEAICE_READPARMS: ', + & 'Error reading parameter file "data.seaice"' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I3,A)') 'S/R SEAICE_READPARMS: ', nError, + & ' parameters values are inconsistent or incomplete' + CALL PRINT_ERROR( msgBuf, myThid ) + ENDIF + + IF ( nRetired .GT. 0 .OR. nError .GT. 0 ) THEN + CALL ALL_PROC_DIE( 0 ) STOP 'ABNORMAL END: S/R SEAICE_READPARMS' ENDIF diff --git a/pkg/seaice/seaice_reg_ridge.F b/pkg/seaice/seaice_reg_ridge.F index e9fc6f28b6..96ca67a11d 100644 --- a/pkg/seaice/seaice_reg_ridge.F +++ b/pkg/seaice/seaice_reg_ridge.F @@ -73,6 +73,10 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) C Helper variables for diagnostics _RL DIAGarrayA (1:sNx,1:sNy) #endif /* ALLOW_DIAGNOSTICS */ +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif CEOP C @@ -84,28 +88,19 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - iicekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1-OLy,sNy+OLy - DO I=1-OLx,sNx+OLx - d_HEFFbyNEG(I,J,bi,bj) = 0.0 _d 0 - d_HSNWbyNEG(I,J,bi,bj) = 0.0 _d 0 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + d_HEFFbyNEG(i,j,bi,bj) = 0.0 _d 0 + d_HSNWbyNEG(i,j,bi,bj) = 0.0 _d 0 #ifdef EXF_SEAICE_FRACTION - d_AREAbyRLX(I,J,bi,bj) = 0.0 _d 0 - d_HEFFbyRLX(I,J,bi,bj) = 0.0 _d 0 + d_AREAbyRLX(i,j,bi,bj) = 0.0 _d 0 + d_HEFFbyRLX(i,j,bi,bj) = 0.0 _d 0 #endif /* EXF_SEAICE_FRACTION */ #ifdef SEAICE_VARIABLE_SALINITY - saltFluxAdjust(I,J,bi,bj) = 0.0 _d 0 + saltFluxAdjust(i,j,bi,bj) = 0.0 _d 0 #endif /* SEAICE_VARIABLE_SALINITY */ ENDDO ENDDO @@ -114,36 +109,36 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) C ========== PART 1: treat pathological cases (post advdiff) ========== C ===================================================================== -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) Cgf no dependency through pathological cases treatment IF ( SEAICEadjMODE.EQ.0 ) THEN #endif #ifdef EXF_SEAICE_FRACTION -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte C-- (0) relax sea ice concentration towards observation IF ( SEAICE_tauAreaObsRelax .GT. zeroRL ) THEN - DO J=1,sNy - DO I=1,sNx - IF ( exf_iceFraction(I,J,bi,bj).GT.AREA(I,J,bi,bj) ) THEN + DO j=1,sNy + DO i=1,sNx + IF ( exf_iceFraction(i,j,bi,bj).GT.AREA(i,j,bi,bj) ) THEN d_AREAbyRLX(i,j,bi,bj) = & SEAICE_deltaTtherm/SEAICE_tauAreaObsRelax - & * (exf_iceFraction(I,J,bi,bj) - AREA(I,J,bi,bj)) + & * (exf_iceFraction(i,j,bi,bj) - AREA(i,j,bi,bj)) ENDIF - IF ( exf_iceFraction(I,J,bi,bj).GT.zeroRS .AND. - & AREA(I,J,bi,bj).EQ.0. _d 0) THEN + IF ( exf_iceFraction(i,j,bi,bj).GT.zeroRS .AND. + & AREA(i,j,bi,bj).EQ.0. _d 0) THEN C d_HEFFbyRLX(i,j,bi,bj) = 1. _d 1 * siEps * d_AREAbyRLX(i,j,bi,bj) d_HEFFbyRLX(i,j,bi,bj) = 1. _d 1 * siEps ENDIF #ifdef SEAICE_ITD - AREAITD(I,J,1,bi,bj) = AREAITD(I,J,1,bi,bj) + AREAITD(i,j,1,bi,bj) = AREAITD(i,j,1,bi,bj) & + d_AREAbyRLX(i,j,bi,bj) - HEFFITD(I,J,1,bi,bj) = HEFFITD(I,J,1,bi,bj) + HEFFITD(i,j,1,bi,bj) = HEFFITD(i,j,1,bi,bj) & + d_HEFFbyRLX(i,j,bi,bj) #endif /* SEAICE_ITD */ - AREA(I,J,bi,bj) = AREA(I,J,bi,bj) + d_AREAbyRLX(i,j,bi,bj) - HEFF(I,J,bi,bj) = HEFF(I,J,bi,bj) + d_HEFFbyRLX(i,j,bi,bj) + AREA(i,j,bi,bj) = AREA(i,j,bi,bj) + d_AREAbyRLX(i,j,bi,bj) + HEFF(i,j,bi,bj) = HEFF(i,j,bi,bj) + d_HEFFbyRLX(i,j,bi,bj) ENDDO ENDDO ENDIF @@ -153,17 +148,17 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx tmpscal1=0. _d 0 tmpscal2=0. _d 0 - tmpscal1=MAX(-HEFFITD(I,J,IT,bi,bj),0. _d 0) - HEFFITD(I,J,IT,bi,bj)=HEFFITD(I,J,IT,bi,bj)+tmpscal1 - d_HEFFbyNEG(I,J,bi,bj)=d_HEFFbyNEG(I,J,bi,bj)+tmpscal1 - tmpscal2=MAX(-HSNOWITD(I,J,IT,bi,bj),0. _d 0) - HSNOWITD(I,J,IT,bi,bj)=HSNOWITD(I,J,IT,bi,bj)+tmpscal2 - d_HSNWbyNEG(I,J,bi,bj)=d_HSNWbyNEG(I,J,bi,bj)+tmpscal2 - AREAITD(I,J,IT,bi,bj)=MAX(AREAITD(I,J,IT,bi,bj),0. _d 0) + tmpscal1=MAX(-HEFFITD(i,j,IT,bi,bj),0. _d 0) + HEFFITD(i,j,IT,bi,bj)=HEFFITD(i,j,IT,bi,bj)+tmpscal1 + d_HEFFbyNEG(i,j,bi,bj)=d_HEFFbyNEG(i,j,bi,bj)+tmpscal1 + tmpscal2=MAX(-HSNOWITD(i,j,IT,bi,bj),0. _d 0) + HSNOWITD(i,j,IT,bi,bj)=HSNOWITD(i,j,IT,bi,bj)+tmpscal2 + d_HSNWbyNEG(i,j,bi,bj)=d_HSNWbyNEG(i,j,bi,bj)+tmpscal2 + AREAITD(i,j,IT,bi,bj)=MAX(AREAITD(i,j,IT,bi,bj),0. _d 0) C AREA, HEFF, and HSNOW will be updated at end of PART 1 C by calling SEAICE_ITD_SUM ENDDO @@ -174,17 +169,17 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) CALL SEAICE_ITD_SUM ( bi, bj, myTime, myIter, myThid ) #else /* ndef SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx - d_HEFFbyNEG(I,J,bi,bj)=MAX(-HEFF(I,J,bi,bj),0. _d 0) - HEFF(I,J,bi,bj)=HEFF(I,J,bi,bj)+d_HEFFbyNEG(I,J,bi,bj) - d_HSNWbyNEG(I,J,bi,bj)=MAX(-HSNOW(I,J,bi,bj),0. _d 0) - HSNOW(I,J,bi,bj)=HSNOW(I,J,bi,bj)+d_HSNWbyNEG(I,J,bi,bj) - AREA(I,J,bi,bj)=MAX(AREA(I,J,bi,bj),0. _d 0) + DO j=1,sNy + DO i=1,sNx + d_HEFFbyNEG(i,j,bi,bj)=MAX(-HEFF(i,j,bi,bj),0. _d 0) + HEFF(i,j,bi,bj)=HEFF(i,j,bi,bj)+d_HEFFbyNEG(i,j,bi,bj) + d_HSNWbyNEG(i,j,bi,bj)=MAX(-HSNOW(i,j,bi,bj),0. _d 0) + HSNOW(i,j,bi,bj)=HSNOW(i,j,bi,bj)+d_HSNWbyNEG(i,j,bi,bj) + AREA(i,j,bi,bj)=MAX(AREA(i,j,bi,bj),0. _d 0) ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -198,34 +193,40 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) C funny structures in the net heat and freshwater flux into the ocean. C Let us keep our fingers crossed, that the model will be benign! DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF (HEFF(I,J,bi,bj).LE.siEps) THEN - HEFFITD(I,J,IT,bi,bj) = 0. _d 0 - HSNOWITD(I,J,IT,bi,bj) = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + IF (HEFF(i,j,bi,bj).LE.siEps) THEN + HEFFITD(i,j,IT,bi,bj) = 0. _d 0 + HSNOWITD(i,j,IT,bi,bj) = 0. _d 0 ENDIF ENDDO ENDDO ENDDO #endif /* SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +C The following statement helps TAF to understand that TICES is not +C modified/reset everywhere so that it is correctly stored in the +C outer checkpoint levels. This is a TAF bug and this statement can +C probably be removed again, once this bug is fixed (but it does not +C hurt, either). +CADJ INCOMPLETE TICES #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx tmpscal1=0. _d 0 tmpscal2=0. _d 0 - IF (HEFF(I,J,bi,bj).LE.siEps) THEN - tmpscal1=-HEFF(I,J,bi,bj) - tmpscal2=-HSNOW(I,J,bi,bj) + IF (HEFF(i,j,bi,bj).LE.siEps) THEN + tmpscal1=-HEFF(i,j,bi,bj) + tmpscal2=-HSNOW(i,j,bi,bj) DO IT=1,SEAICE_multDim - TICES(I,J,IT,bi,bj)=celsius2K + TICES(i,j,IT,bi,bj)=celsius2K ENDDO ENDIF - HEFF(I,J,bi,bj)=HEFF(I,J,bi,bj)+tmpscal1 - HSNOW(I,J,bi,bj)=HSNOW(I,J,bi,bj)+tmpscal2 - d_HEFFbyNEG(I,J,bi,bj)=d_HEFFbyNEG(I,J,bi,bj)+tmpscal1 - d_HSNWbyNEG(I,J,bi,bj)=d_HSNWbyNEG(I,J,bi,bj)+tmpscal2 + HEFF(i,j,bi,bj)=HEFF(i,j,bi,bj)+tmpscal1 + HSNOW(i,j,bi,bj)=HSNOW(i,j,bi,bj)+tmpscal2 + d_HEFFbyNEG(i,j,bi,bj)=d_HEFFbyNEG(i,j,bi,bj)+tmpscal1 + d_HSNWbyNEG(i,j,bi,bj)=d_HSNWbyNEG(i,j,bi,bj)+tmpscal2 ENDDO ENDDO @@ -233,23 +234,23 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) #ifdef SEAICE_ITD DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF ( (HEFFITD(I,J,IT,bi,bj) .EQ.0. _d 0).AND. - & (HSNOWITD(I,J,IT,bi,bj).EQ.0. _d 0)) - & AREAITD(I,J,IT,bi,bj)=0. _d 0 + DO j=1,sNy + DO i=1,sNx + IF ( (HEFFITD(i,j,IT,bi,bj) .EQ.0. _d 0).AND. + & (HSNOWITD(i,j,IT,bi,bj).EQ.0. _d 0)) + & AREAITD(i,j,IT,bi,bj)=0. _d 0 ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE hsnow(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx IF ((HEFF(i,j,bi,bj).EQ.0. _d 0).AND. - & (HSNOW(i,j,bi,bj).EQ.0. _d 0)) AREA(I,J,bi,bj)=0. _d 0 + & (HSNOW(i,j,bi,bj).EQ.0. _d 0)) AREA(i,j,bi,bj)=0. _d 0 ENDDO ENDDO #endif /* SEAICE_ITD */ @@ -260,27 +261,27 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) #ifdef SEAICE_ITD recip_nitd = 1. _d 0 / float(SEAICE_multDim) DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx - IF ((HEFFITD(I,J,IT,bi,bj).GT.0).OR. - & (HSNOWITD(I,J,IT,bi,bj).GT.0)) THEN + DO j=1,sNy + DO i=1,sNx + IF ((HEFFITD(i,j,IT,bi,bj).GT.0).OR. + & (HSNOWITD(i,j,IT,bi,bj).GT.0)) THEN C SEAICE_area_floor*SEAICE_multDim cannot be allowed to exceed 1 C hence use SEAICE_area_floor devided by SEAICE_multDim C (or install a warning in e.g. seaice_readparms.F) - AREAITD(I,J,IT,bi,bj)= - & MAX(AREAITD(I,J,IT,bi,bj),SEAICE_area_floor*recip_nitd) + AREAITD(i,j,IT,bi,bj)= + & MAX(AREAITD(i,j,IT,bi,bj),SEAICE_area_floor*recip_nitd) ENDIF ENDDO ENDDO ENDDO #else /* ndef SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx IF ((HEFF(i,j,bi,bj).GT.0).OR.(HSNOW(i,j,bi,bj).GT.0)) THEN - AREA(I,J,bi,bj)=MAX(AREA(I,J,bi,bj),SEAICE_area_floor) + AREA(i,j,bi,bj)=MAX(AREA(i,j,bi,bj),SEAICE_area_floor) ENDIF ENDDO ENDDO @@ -290,16 +291,16 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) C (5) treat sea ice salinity pathological cases #ifdef SEAICE_VARIABLE_SALINITY #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hsalt(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte -CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE hsalt(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte +CADJ STORE heff(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx - IF ( (HSALT(I,J,bi,bj) .LT. 0.0).OR. - & (HEFF(I,J,bi,bj) .EQ. 0.0) ) THEN - saltFluxAdjust(I,J,bi,bj) = - HEFFM(I,J,bi,bj) * - & HSALT(I,J,bi,bj) * recip_deltaTtherm - HSALT(I,J,bi,bj) = 0.0 _d 0 + DO j=1,sNy + DO i=1,sNx + IF ( (HSALT(i,j,bi,bj) .LT. 0.0).OR. + & (HEFF(i,j,bi,bj) .EQ. 0.0) ) THEN + saltFluxAdjust(i,j,bi,bj) = - HEFFM(i,j,bi,bj) * + & HSALT(i,j,bi,bj) * recip_deltaTtherm + HSALT(i,j,bi,bj) = 0.0 _d 0 ENDIF ENDDO ENDDO @@ -314,37 +315,37 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) #ifdef SEAICE_ITD C catch up with item (2) that involves category sums AREA and HEFF - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx tmpscal1itd(i,j) = 0. _d 0 tmpscal2itd(i,j) = 0. _d 0 tmpscal3itd(i,j) = 0. _d 0 ENDDO ENDDO DO IT=1,SEAICE_multDim - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C TICES was changed above (item 2), now update TICE as ice volume C weighted average of TICES tmpscal1itd(i,j)=tmpscal1itd(i,j) - & + TICES(I,J,IT,bi,bj) * HEFFITD(I,J,IT,bi,bj) - tmpscal2itd(i,j)=tmpscal2itd(i,j) + HEFFITD(I,J,IT,bi,bj) + & + TICES(i,j,IT,bi,bj) * HEFFITD(i,j,IT,bi,bj) + tmpscal2itd(i,j)=tmpscal2itd(i,j) + HEFFITD(i,j,IT,bi,bj) C also compute total of AREAITD for diagnostics and SItrArea - tmpscal3itd(i,j)=tmpscal3itd(i,j) + AREAITD(I,J,IT,bi,bj) + tmpscal3itd(i,j)=tmpscal3itd(i,j) + AREAITD(i,j,IT,bi,bj) ENDDO ENDDO ENDDO - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C save pre-ridging ice concentration for diagnostics: C these lines are executed before "ridging" is applied to AREA C hence we execute them here before SEAICE_ITD_REDIST is called C although this means that AREA has not been completely regularized #ifdef ALLOW_DIAGNOSTICS - DIAGarrayA(I,J) = tmpscal3itd(i,j) + DIAGarrayA(i,j) = tmpscal3itd(i,j) #endif #ifdef ALLOW_SITRACER - SItrAREA(I,J,bi,bj,1)=tmpscal3itd(i,j) + SItrAREA(i,j,bi,bj,1)=tmpscal3itd(i,j) #endif ENDDO ENDDO @@ -361,26 +362,26 @@ SUBROUTINE SEAICE_REG_RIDGE( myTime, myIter, myThid ) #else /* ifndef SEAICE_ITD */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = iicekey,byte=isbyte +CADJ STORE area(:,:,bi,bj) = comlev1_bibj, key = tkey,byte=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ - DO J=1,sNy - DO I=1,sNx + DO j=1,sNy + DO i=1,sNx C save pre-ridging ice concentration for diagnostics #ifdef ALLOW_DIAGNOSTICS - DIAGarrayA(I,J) = AREA(I,J,bi,bj) + DIAGarrayA(i,j) = AREA(i,j,bi,bj) #endif /* ALLOW_DIAGNOSTICS */ #ifdef ALLOW_SITRACER - SItrAREA(I,J,bi,bj,1)=AREA(I,J,bi,bj) + SItrAREA(i,j,bi,bj,1)=AREA(i,j,bi,bj) #endif /* ALLOW_SITRACER */ C this is the simple Hibler (1979)-type ridging (capping of C concentrations > 1) for the non-ITD sea ice model - AREA(I,J,bi,bj)=MIN(AREA(I,J,bi,bj),SEAICE_area_max) + AREA(i,j,bi,bj)=MIN(AREA(i,j,bi,bj),SEAICE_area_max) ENDDO ENDDO #endif /* SEAICE_ITD */ -#if (defined ALLOW_AUTODIFF_TAMC && defined SEAICE_MODIFY_GROWTH_ADJ) +#if (defined ALLOW_AUTODIFF && defined SEAICE_MODIFY_GROWTH_ADJ) C end SEAICEadjMODE.EQ.0 statement: ENDIF #endif diff --git a/pkg/seaice/seaice_solve4temp.F b/pkg/seaice/seaice_solve4temp.F index 7ce74a5d73..598afc48b8 100644 --- a/pkg/seaice/seaice_solve4temp.F +++ b/pkg/seaice/seaice_solve4temp.F @@ -152,13 +152,20 @@ SUBROUTINE SEAICE_SOLVE4TEMP( _RL ALB_SNOW (1:sNx,1:sNy) C iceOrNot :: this is HICE_ACTUAL.GT.0. LOGICAL iceOrNot(1:sNx,1:sNy) +#ifdef ALLOW_AUTODIFF_TAMC +C ikey :: tape key (depends on iteration) + INTEGER ikey +#endif #ifdef SEAICE_DEBUG #endif /* SEAICE_DEBUG */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC -CADJ INIT comlev1_solve4temp = COMMON, sNx*sNy*NMAX_TICE +C Since this is a "local" tape, is does not need to include number +C of threads or tiles per mpi-process. It does not even lead to a +C common block. +CADJ INIT loctape_solve4temp = COMMON, NMAX_TICE #endif /* ALLOW_AUTODIFF_TAMC */ C- MAYKUT CONSTANTS FOR SAT. VAP. PRESSURE TEMP. POLYNOMIAL @@ -180,7 +187,7 @@ SUBROUTINE SEAICE_SOLVE4TEMP( cc1 = cc0*aa1*bb1*Ppascals*lnTEN cc2 = cc0*bb2 - IF ( buoyancyRelation .EQ. 'OCEANICP' ) THEN + IF ( usingPCoords ) THEN kSurface = Nr ELSE kSurface = 1 @@ -358,13 +365,12 @@ SUBROUTINE SEAICE_SOLVE4TEMP( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| DO ITER=1,IMAX_TICE +#ifdef ALLOW_AUTODIFF_TAMC + ikey = ITER +CADJ STORE tsurfLoc = loctape_solve4temp, key = ikey, byte = isbyte +#endif DO J=1,sNy DO I=1,sNx -#ifdef ALLOW_AUTODIFF_TAMC - iicekey = I + sNx*(J-1) + (ITER-1)*sNx*sNy -CADJ STORE tsurfLoc(i,j) = comlev1_solve4temp, -CADJ & key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ C- save tsurf from previous iter tsurfPrev(I,J) = tsurfLoc(I,J) @@ -398,12 +404,8 @@ SUBROUTINE SEAICE_SOLVE4TEMP( dqh_dTs(I,J) = cc1*cc3t/((cc2-cc3t*Ppascals)**2 *t2) ENDIF -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE tsurfLoc(i,j) = comlev1_solve4temp, -CADJ & key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ C Calculate the flux terms based on the updated tsurfLoc - F_c(I,J) = effConduct(I,J)*(tempFrz(I,J)-tsurfLoc(I,J)) + F_c(I,J) = effConduct(I,J)*(tempFrz(I,J)-t1) F_lh(I,J) = D1I*UG(I,J)*(qhice(I,J)-AQH(I,J,bi,bj)) #ifdef SEAICE_CAP_SUBLIM C if the latent heat flux implied by tsurfLoc exceeds @@ -437,56 +439,70 @@ SUBROUTINE SEAICE_SOLVE4TEMP( tsurfLoc(I,J) = tsurfLoc(I,J) & + ( F_c(I,J)-F_ia(I,J) ) / ( effConduct(I,J)+dFia_dTs(I,J) ) + ENDIF + ENDDO + ENDDO + IF ( useMaykutSatVapPoly ) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE tsurfLoc(i,j) = comlev1_solve4temp, -CADJ & key = iicekey, byte = isbyte -#endif /* ALLOW_AUTODIFF_TAMC */ - IF ( useMaykutSatVapPoly ) THEN - tsurfLoc(I,J) = MAX( celsius2K+MIN_TICE, tsurfLoc(I,J) ) - ENDIF -C If the search leads to tsurfLoc < 50 Kelvin, restart the search -C at tsurfLoc = TMELT. Note that one solution to the energy balance problem -C is an extremely low temperature - a temperature far below realistic values. +CADJ STORE tsurfLoc = loctape_solve4temp, key = ikey, byte = isbyte +#endif + DO J=1,sNy + DO I=1,sNx + tsurfLoc(I,J) = MAX( celsius2K+MIN_TICE, tsurfLoc(I,J) ) +C If the search leads to tsurfLoc < 50 Kelvin, restart the search at +C tsurfLoc = TMELT. Note that one solution to the energy balance problem is +C an extremely low temperature - a temperature far below realistic values. c IF (tsurfLoc(I,J) .LT. 50.0 _d 0 ) tsurfLoc(I,J) = TMELT C Comments & code above not relevant anymore (from older version, when C trying Maykut-Polynomial & dqh_dTs > 0 ?): commented out - tsurfLoc(I,J) = MIN( tsurfLoc(I,J), TMELT ) + ENDDO + ENDDO + ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE tsurfLoc = loctape_solve4temp, key = ikey, byte = isbyte +#endif + DO J=1,sNy + DO I=1,sNx + tsurfLoc(I,J) = MIN( tsurfLoc(I,J), TMELT ) #ifdef SEAICE_DEBUG - IF ( (I .EQ. SEAICE_debugPointI) .AND. - & (J .EQ. SEAICE_debugPointJ) ) THEN - print '(A,i6,4(1x,D24.15))', - & 'ice-iter tsurfLc,|dif|', ITER, - & tsurfLoc(I,J), - & LOG10(ABS(tsurfLoc(I,J) - t1)) - ENDIF + IF ( (I .EQ. SEAICE_debugPointI) .AND. + & (J .EQ. SEAICE_debugPointJ) ) THEN + print '(A,i6,4(1x,D24.15))', + & 'ice-iter tsurfLc,|dif|', ITER, + & tsurfLoc(I,J), + & LOG10(ABS(tsurfLoc(I,J) - tsurfPrev(I,J))) + ENDIF #endif /* SEAICE_DEBUG */ - ENDIF !/* iceOrNot */ ENDDO !/* i */ ENDDO !/* j */ ENDDO !/* Iterations */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - DO J=1,sNy - DO I=1,sNx - IF ( iceOrNot(I,J) ) THEN - -C Save updated tsurf and finalize the flux terms - TSURFout(I,J) = tsurfLoc(I,J) - #ifdef SEAICE_MODIFY_GROWTH_ADJ Cgf no additional dependency through solver, snow, etc. - IF ( SEAICEadjMODE.GE.2 ) THEN + IF ( SEAICEadjMODE.GE.2 ) THEN + DO J=1,sNy + DO I=1,sNx + IF ( iceOrNot(I,J) ) THEN CALL ZERO_ADJ_1D( 1, TSURFin(I,J), myThid) absorbedSW(I,J) = 0.3 _d 0 *SWDOWN(I,J,bi,bj) IcePenetSW(I,J)= 0. _d 0 ENDIF - IF ( postSolvTempIter.EQ.2 .OR. SEAICEadjMODE.GE.2 ) THEN + ENDIF + ENDDO + ENDDO + IF ( postSolvTempIter.EQ.2 .OR. SEAICEadjMODE.GE.2 ) THEN + DO J=1,sNy + DO I=1,sNx + IF ( iceOrNot(I,J) ) THEN t1 = TSURFin(I,J) #else /* SEAICE_MODIFY_GROWTH_ADJ */ - - IF ( postSolvTempIter.EQ.2 ) THEN + IF ( postSolvTempIter.EQ.2 ) THEN + DO J=1,sNy + DO I=1,sNx + IF ( iceOrNot(I,J) ) THEN C Recalculate the fluxes based on the (possibly) adjusted TSURF t1 = tsurfLoc(I,J) #endif /* SEAICE_MODIFY_GROWTH_ADJ */ @@ -530,7 +546,13 @@ SUBROUTINE SEAICE_SOLVE4TEMP( ENDIF C IGF_SIR-e - ELSEIF ( postSolvTempIter.EQ.1 ) THEN + ENDIF + ENDDO + ENDDO + ELSEIF ( postSolvTempIter.EQ.1 ) THEN + DO J=1,sNy + DO I=1,sNx + IF ( iceOrNot(I,J) ) THEN C Update fluxes (consistent with the linearized formulation) delTsurf = tsurfLoc(I,J)-tsurfPrev(I,J) F_c(I,J) = effConduct(I,J)*(tempFrz(I,J)-tsurfLoc(I,J)) @@ -542,7 +564,15 @@ SUBROUTINE SEAICE_SOLVE4TEMP( C Take fluxes from last iteration ENDIF + ENDDO + ENDDO + ENDIF + DO J=1,sNy + DO I=1,sNx + IF ( iceOrNot(I,J) ) THEN +C Save updated tsurf and finalize the flux terms + TSURFout(I,J) = tsurfLoc(I,J) C Fresh water flux (kg/m^2/s) from latent heat of sublimation. C F_lh is positive upward (sea ice looses heat) and FWsublim C is also positive upward (atmosphere gains freshwater) diff --git a/pkg/seaice/seaice_summary.F b/pkg/seaice/seaice_summary.F index b2a071c733..1bd8a3f81b 100644 --- a/pkg/seaice/seaice_summary.F +++ b/pkg/seaice/seaice_summary.F @@ -252,6 +252,10 @@ SUBROUTINE SEAICE_SUMMARY( myThid ) IF ( SEAICEuseJFNK ) THEN CALL WRITE_0D_I ( SEAICE_JFNK_lsIter, INDEX_NONE, & 'SEAICE_JFNK_lsIter =', ' /* start of line search */') + CALL WRITE_0D_I ( SEAICE_JFNK_lsLmax, INDEX_NONE, + & 'SEAICE_JFNK_lsLmax =', ' /* max. number line search iters */') + CALL WRITE_0D_RL( SEAICE_JFNK_lsGamma, INDEX_NONE, + & 'SEAICE_JFNK_lsGamma =', ' /* line search step size param */') CALL WRITE_0D_I ( SEAICE_JFNK_tolIter, INDEX_NONE, & 'SEAICE_JFNK_tolIter =', ' /* tol. is relaxed after this */') CALL WRITE_0D_RL( JFNKres_t ,INDEX_NONE, @@ -309,12 +313,6 @@ SUBROUTINE SEAICE_SUMMARY( myThid ) &' -----------------------------------------------' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - IF ( useThSIce ) THEN - WRITE(msgBuf,'(A)') - &' ==> advection diffusion done in pkg ThSIce' - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, myThid ) - ELSE CALL WRITE_0D_L ( SEAICEmomAdvection, INDEX_NONE, & 'SEAICEmomAdvection =', ' /* advect sea ice momentum */') @@ -340,47 +338,55 @@ SUBROUTINE SEAICE_SUMMARY( myThid ) & ' /* V.I Non-linear terms Jamart flag */') ENDIF #endif - CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE, - & 'SEAICEadvHeff =', ' /* advect effective ice thickness */') - CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE, - & 'SEAICEadvArea =', ' /* advect fractional ice area */') - CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE, - & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */') + + IF ( useThSIce ) THEN + WRITE(msgBuf,'(A)') + & ' ==> advection diffusion done in pkg ThSIce' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ELSE + CALL WRITE_0D_L ( SEAICEadvHeff, INDEX_NONE, + & 'SEAICEadvHeff =', ' /* advect effective ice thickness */') + CALL WRITE_0D_L ( SEAICEadvArea, INDEX_NONE, + & 'SEAICEadvArea =', ' /* advect fractional ice area */') + CALL WRITE_0D_L ( SEAICEadvSnow, INDEX_NONE, + & 'SEAICEadvSnow =', ' /* advect snow layer together with ice */') #ifdef SEAICE_VARIABLE_SALINITY - CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE, - & 'SEAICEadvSalt =', ' /* advect salinity together with ice */') + CALL WRITE_0D_L ( SEAICEadvSalt, INDEX_NONE, + & 'SEAICEadvSalt =', ' /* advect salinity together with ice */') #endif - CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE, - & 'SEAICEadvScheme =', ' /* advection scheme for ice */') - IF ( SEAICEadvScheme .EQ. 2 ) - & CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE, - & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */') - IF ( SEAICEadvArea ) - &CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE, - & 'SEAICEadvSchArea =', ' /* advection scheme for area */') - IF ( SEAICEadvHeff ) - &CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE, - & 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */') - IF ( SEAICEadvSnow ) - &CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE, - & 'SEAICEadvSchSnow =', ' /* advection scheme for snow */') + CALL WRITE_0D_L ( SEAICEmultiDimAdvection, INDEX_NONE, + & 'SEAICEmultiDimAdvection =', ' /* multidimadvec */') + CALL WRITE_0D_I ( SEAICEadvScheme, INDEX_NONE, + & 'SEAICEadvScheme =', ' /* advection scheme for ice */') + IF ( SEAICEadvScheme .EQ. 2 ) + & CALL WRITE_0D_L ( SEAICEuseFluxForm, INDEX_NONE, + & 'SEAICEuseFluxForm =', ' /* advection in FV flux form */') + IF ( SEAICEadvArea ) + & CALL WRITE_0D_I ( SEAICEadvSchArea, INDEX_NONE, + & 'SEAICEadvSchArea =', ' /* advection scheme for area */') + IF ( SEAICEadvHeff ) + & CALL WRITE_0D_I ( SEAICEadvSchHeff, INDEX_NONE, + & 'SEAICEadvSchHeff =', ' /* advection scheme for thickness */') + IF ( SEAICEadvSnow ) + & CALL WRITE_0D_I ( SEAICEadvSchSnow, INDEX_NONE, + & 'SEAICEadvSchSnow =', ' /* advection scheme for snow */') #ifdef SEAICE_VARIABLE_SALINITY - IF ( SEAICEadvSalt ) - &CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE, - & 'SEAICEadvSchSalt =', ' /* advection scheme for salt */') + IF ( SEAICEadvSalt ) + & CALL WRITE_0D_I ( SEAICEadvSchSalt, INDEX_NONE, + & 'SEAICEadvSchSalt =', ' /* advection scheme for salt */') #endif - CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE, - & 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */') - CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE, - & 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */') - CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE, - & 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */') - IF ( SEAICEadvSalt ) - &CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE, - & 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */') - CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =', - & ' /* parameter used in advect.F [m/s] */') - + CALL WRITE_0D_RL( SEAICEdiffKhArea, INDEX_NONE, + & 'SEAICEdiffKhArea =', ' /* diffusivity (m^2/s) for area */') + CALL WRITE_0D_RL( SEAICEdiffKhHeff, INDEX_NONE, + & 'SEAICEdiffKhHeff =', ' /* diffusivity (m^2/s) for heff */') + CALL WRITE_0D_RL( SEAICEdiffKhSnow, INDEX_NONE, + & 'SEAICEdiffKhSnow =', ' /* diffusivity (m^2/s) for snow */') + IF ( SEAICEadvSalt ) + & CALL WRITE_0D_RL( SEAICEdiffKhSalt, INDEX_NONE, + & 'SEAICEdiffKhSalt =', ' /* diffusivity (m^2/s) for salt */') + CALL WRITE_0D_RL( DIFF1, INDEX_NONE, 'DIFF1 =', + & ' /* parameter used in advect.F [m/s] */') C end if useThSIce bloc ENDIF @@ -463,10 +469,13 @@ SUBROUTINE SEAICE_SUMMARY( myThid ) & SQUEEZE_RIGHT, myThid ) ELSE #ifdef SEAICE_USE_GROWTH_ADX - WRITE(msgBuf,'(A)') - & 'SEAICE_USE_GROWTH_ADX defined, '// + WRITE(msgBuf,'(2A)') + & 'SEAICE_USE_GROWTH_ADX defined, ', & 'using seaice_growth_adx code' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A,1PE24.17)') ' SINegFac = ', SINegFac + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') ' ' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, diff --git a/pkg/seaice/seaice_tracer_phys.F b/pkg/seaice/seaice_tracer_phys.F index 5f92442a69..f6ab1ac657 100644 --- a/pkg/seaice/seaice_tracer_phys.F +++ b/pkg/seaice/seaice_tracer_phys.F @@ -221,7 +221,7 @@ SUBROUTINE SEAICE_TRACER_PHYS( myTime, myIter, myThid ) #endif c empty bucket c but not for 'grease' (see seaice_growth.F) - if (SItrName(iTr).NE.'grease') + if (SItrName(iTr).NE.'grease') & SItrBucket(i,j,bi,bj,iTr)=0. _d 0 ENDDO ENDDO diff --git a/pkg/shap_filt/shap_filt_uv_s2.F b/pkg/shap_filt/shap_filt_uv_s2.F index 411e42b50c..d184e9474b 100644 --- a/pkg/shap_filt/shap_filt_uv_s2.F +++ b/pkg/shap_filt/shap_filt_uv_s2.F @@ -1,4 +1,7 @@ #include "SHAP_FILT_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: SHAP_FILT_UV_S2 @@ -66,8 +69,14 @@ SUBROUTINE SHAP_FILT_UV_S2( _RS r_hFacZ(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL hDiv(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vort3(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER kkey +#endif CEOP +#ifdef ALLOW_AUTODIFF_TAMC +CADJ INIT loctape_shapfilt_bibj_k = COMMON, nSx*nSy*Nr +#endif IF (nShapUV.GT.0 .AND. Shap_uvtau.GT.0.) THEN IF (useCubedSphereExchange) THEN @@ -108,6 +117,13 @@ SUBROUTINE SHAP_FILT_UV_S2( DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,kSize +#ifdef ALLOW_AUTODIFF_TAMC +C This store uses a wrongly-sized tape and stores the same field +C nShapUV times, but since this field does not change here, we +C can do it like this and suppress the recomputation warning + kkey = k + (bi-1 + (bj-1)*nSx) * Nr +CADJ STORE hFacZ = loctape_shapfilt_bibj_k, key = kkey +#endif IF ( n.LE.nShapUVPhys .OR. & n.GT.nShapUV-nShapUVPhys ) & CALL MOM_CALC_HFACZ(bi,bj,k,hFacZ,r_hFacZ,myThid) diff --git a/pkg/shelfice/SHELFICE.h b/pkg/shelfice/SHELFICE.h index 7f201631a9..6fdfca52b3 100644 --- a/pkg/shelfice/SHELFICE.h +++ b/pkg/shelfice/SHELFICE.h @@ -39,12 +39,15 @@ C SHELFICEadvDiffHeatFlux :: use advective-diffusive heat flux into the C shelf instead of default diffusive heat C flux, see Holland and Jenkins (1999), C eq.21,22,26,31; def: F +C SHELFICEsaltToHeatRatio :: constant ratio giving +C SHELFICEsaltTransCoeff/SHELFICEheatTransCoeff +C (def: 5.05e-3) C SHELFICEheatTransCoeff :: constant heat transfer coefficient that C determines heat flux into shelfice C (def: 1e-4 m/s) C SHELFICEsaltTransCoeff :: constant salinity transfer coefficient that C determines salt flux into shelfice -C (def: 5.05e-3 * 1e-4 m/s) +C (def: SHELFICEsaltToHeatRatio * SHELFICEheatTransCoeff) C ----------------------------------------------------------------------- C SHELFICEuseGammaFrict :: use velocity dependent exchange coefficients, C see Holland and Jenkins (1999), eq.11-18, @@ -96,13 +99,20 @@ C (kg/m^2/s) C shelficeForcingT :: analogue of surfaceForcingT C units are r_unit.Kelvin/s (=Kelvin.m/s if r=z) C shelficeForcingS :: analogue of surfaceForcingS -C units are r_unit.psu/s (=psu.m/s if r=z) +C units are r_unit.g/kg/s (=g/kg.m/s if r=z) #ifdef ALLOW_DIAGNOSTICS C shelficeDragU :: Ice-Shelf stress (for diagnostics), Zonal comp. C Units are N/m^2 ; > 0 increase top uVel C shelficeDragV :: Ice-Shelf stress (for diagnostics), Merid. comp. C Units are N/m^2 ; > 0 increase top vVel #endif /* ALLOW_DIAGNOSTICS */ +#ifdef ALLOW_CTRL +C maskSHI :: Mask=1 where ice shelf is present on surface +C layer, showing full 2D ice shelf extent. +C =maskC for rest of k values +C Used with ice shelf fwflx +C or shiTransCoeffT/S ctrl. +#endif C----------------------------------------------------------------------- C \ev CEOP @@ -114,6 +124,7 @@ CEOP COMMON /SHELFICE_PARMS_R/ & SHELFICE_dumpFreq, SHELFICE_taveFreq, + & SHELFICEsaltToHeatRatio, & SHELFICEheatTransCoeff, SHELFICEsaltTransCoeff, & rhoShelfice, SHELFICEkappa, & SHELFICElatentHeat, @@ -126,6 +137,7 @@ CEOP & SHELFICEsplitThreshold, SHELFICEmergeThreshold _RL SHELFICE_dumpFreq, SHELFICE_taveFreq + _RL SHELFICEsaltToHeatRatio _RL SHELFICEheatTransCoeff _RL SHELFICEsaltTransCoeff _RL SHELFICElatentHeat @@ -145,7 +157,9 @@ CEOP & shelficeMass, shelficeMassInit, & shelficeLoadAnomaly, & shelficeForcingT, shelficeForcingS, - & shiTransCoeffT, shiTransCoeffS + & shiTransCoeffT, shiTransCoeffS, + & shiCDragFld, shiDragQuadFld + _RL shelficeMass (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL shelficeMassInit (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL shelficeLoadAnomaly (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -153,6 +167,8 @@ CEOP _RL shelficeForcingS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL shiTransCoeffT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL shiTransCoeffS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL shiCDragFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL shiDragQuadFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) COMMON /SHELFICE_FIELDS_RS/ & R_shelfIce, @@ -165,10 +181,10 @@ CEOP _RS & shelfIceMassDynTendency(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_CTRL COMMON /SHELFICE_MASKS_CTRL/ maskSHI _RS maskSHI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_CTRL */ #ifdef ALLOW_DIAGNOSTICS COMMON /SHELFICE_DIAG_DRAG/ shelficeDragU, shelficeDragV diff --git a/pkg/shelfice/shelfice_ad_check_lev1_dir.h b/pkg/shelfice/shelfice_ad_check_lev1_dir.h index 553167a9af..827e3eb569 100644 --- a/pkg/shelfice/shelfice_ad_check_lev1_dir.h +++ b/pkg/shelfice/shelfice_ad_check_lev1_dir.h @@ -1,10 +1,8 @@ #ifdef ALLOW_SHELFICE +CADJ STORE shelficeMass = comlev1, key=ikey_dynamics, kind=isbyte +CADJ STORE kTopC = comlev1, key=ikey_dynamics CADJ STORE shelficeForcingT = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE shelficeForcingS = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE cMeanSHIforT = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE cMeanSHIforS = comlev1, key=ikey_dynamics, kind=isbyte -# ifdef ALLOW_SHIFWFLX_CONTROL -CADJ STORE xx_shifwflx0 = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE xx_shifwflx1 = comlev1, key=ikey_dynamics, kind=isbyte -# endif #endif /* ALLOW_SHELFICE */ diff --git a/pkg/shelfice/shelfice_ad_check_lev2_dir.h b/pkg/shelfice/shelfice_ad_check_lev2_dir.h index 9214e43050..6c5c5c13fb 100644 --- a/pkg/shelfice/shelfice_ad_check_lev2_dir.h +++ b/pkg/shelfice/shelfice_ad_check_lev2_dir.h @@ -1,10 +1,10 @@ #ifdef ALLOW_SHELFICE +CADJ STORE shelficeMass = tapelev2, key = ilev_2 +CADJ STORE kTopC = tapelvi2, key = ilev_2 CADJ STORE shelficeForcingT = tapelev2, key = ilev_2 CADJ STORE shelficeForcingS = tapelev2, key = ilev_2 CADJ STORE cMeanSHIforT = tapelev2, key = ilev_2 CADJ STORE cMeanSHIforS = tapelev2, key = ilev_2 -# ifdef ALLOW_SHIFWFLX_CONTROL -CADJ STORE xx_shifwflx0 = tapelev2, key = ilev_2 -CADJ STORE xx_shifwflx1 = tapelev2, key = ilev_2 -# endif +CADJ STORE shelficeFreshWaterFlux = tapelev2, key = ilev_2 +CADJ STORE shelficeLoadAnomaly = tapelev2, key = ilev_2 #endif /* ALLOW_SHELFICE */ diff --git a/pkg/shelfice/shelfice_ad_check_lev3_dir.h b/pkg/shelfice/shelfice_ad_check_lev3_dir.h index a0be7542c2..9f0208de4c 100644 --- a/pkg/shelfice/shelfice_ad_check_lev3_dir.h +++ b/pkg/shelfice/shelfice_ad_check_lev3_dir.h @@ -1,11 +1,10 @@ #ifdef ALLOW_SHELFICE +CADJ STORE shelficeMass = tapelev3, key = ilev_3 +CADJ STORE kTopC = tapelvi3, key = ilev_3 CADJ STORE shelficeForcingT = tapelev3, key = ilev_3 CADJ STORE shelficeForcingS = tapelev3, key = ilev_3 CADJ STORE cMeanSHIforT = tapelev3, key = ilev_3 CADJ STORE cMeanSHIforS = tapelev3, key = ilev_3 -# ifdef ALLOW_SHIFWFLX_CONTROL -CADJ STORE xx_shifwflx0 = tapelev3, key = ilev_3 -CADJ STORE xx_shifwflx1 = tapelev3, key = ilev_3 -# endif +CADJ STORE shelficeFreshWaterFlux = tapelev3, key = ilev_3 +CADJ STORE shelficeLoadAnomaly = tapelev3, key = ilev_3 #endif /* ALLOW_SHELFICE */ - diff --git a/pkg/shelfice/shelfice_ad_check_lev4_dir.h b/pkg/shelfice/shelfice_ad_check_lev4_dir.h index 99eb73deda..fed8e59cb7 100644 --- a/pkg/shelfice/shelfice_ad_check_lev4_dir.h +++ b/pkg/shelfice/shelfice_ad_check_lev4_dir.h @@ -1,10 +1,10 @@ #ifdef ALLOW_SHELFICE +CADJ STORE shelficeMass = tapelev4, key = ilev_4 +CADJ STORE kTopC = tapelvi4, key = ilev_4 CADJ STORE shelficeForcingT = tapelev4, key = ilev_4 CADJ STORE shelficeForcingS = tapelev4, key = ilev_4 CADJ STORE cMeanSHIforT = tapelev4, key = ilev_4 CADJ STORE cMeanSHIforS = tapelev4, key = ilev_4 -# ifdef ALLOW_SHIFWFLX_CONTROL -CADJ STORE xx_shifwflx0 = tapelev4, key = ilev_4 -CADJ STORE xx_shifwflx1 = tapelev4, key = ilev_4 -# endif +CADJ STORE shelficeFreshWaterFlux = tapelev4, key = ilev_4 +CADJ STORE shelficeLoadAnomaly = tapelev4, key = ilev_4 #endif /* ALLOW_SHELFICE */ diff --git a/pkg/shelfice/shelfice_ad_diff.list b/pkg/shelfice/shelfice_ad_diff.list index 3db5b14446..ab3f71a721 100644 --- a/pkg/shelfice/shelfice_ad_diff.list +++ b/pkg/shelfice/shelfice_ad_diff.list @@ -1,4 +1,3 @@ -shelfice_cost_shifwflx.f shelfice_cost_accumulate.f shelfice_cost_final.f shelfice_forcing.f diff --git a/pkg/shelfice/shelfice_check.F b/pkg/shelfice/shelfice_check.F index 5788ce0a1f..62b1dca6da 100644 --- a/pkg/shelfice/shelfice_check.F +++ b/pkg/shelfice/shelfice_check.F @@ -268,6 +268,28 @@ SUBROUTINE SHELFICE_CHECK( myThid ) CML errCount = errCount + 1 CML ENDIF + IF ( SHELFICEMassStepping .AND. useSEAICE ) THEN + WRITE(msgBuf,'(2A)') '** WARNING ** SHELFICE_CHECK: ', + & 'pkg/seaice IGNORES Ice-Shelf retreat/advance' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(2A)') '** WARNING ** SHELFICE_CHECK: ', + & ' that might occur with SHELFICEMassStepping' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF + +C Currently cannot use SHELFICEMassStepping with OpenAD +C See shelfice_mass_stepping.F and github.com/MITgcm/MITgcm/pull/495 +#ifdef ALLOW_OPENAD + IF (SHELFICEMassStepping) THEN + WRITE(msgBuf,'(2A)') + & 'SHELFICEMassStepping does not currently work', + & ' with #define ALLOW_OPENAD' + CALL PRINT_ERROR( msgBuf, myThid ) + errCount = errCount + 1 + ENDIF +#endif IF ( errCount.GE.1 ) THEN WRITE(msgBuf,'(A,I3,A)') & 'SHELFICE_CHECK: detected', errCount,' fatal error(s)' diff --git a/pkg/shelfice/shelfice_cost_accumulate.F b/pkg/shelfice/shelfice_cost_accumulate.F index e2c291b666..2650de6ebe 100644 --- a/pkg/shelfice/shelfice_cost_accumulate.F +++ b/pkg/shelfice/shelfice_cost_accumulate.F @@ -24,36 +24,20 @@ subroutine shelfice_cost_accumulate( myThid ) #ifdef ALLOW_COST C == Local variables - _RL thetaRef - _RL drLoc - integer bi, bj integer i, j -c integer ig, jg - integer itlo,ithi - integer jtlo,jthi -c integer km1, kp1, klev, k - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) C-- Calculate cost function on tile of this instance - do bj = jtlo,jthi - do bi = itlo,ithi -ccc do klev = 1, Nr - do j=1,sNy - do i=1,sNx -c-- - cMeanSHIforT(i,j,bi,bj) = cMeanSHIforT(i,j,bi,bj) + do bj = myByLo(myThid), myByHi(myThid) + do bi = myBxLo(myThid), myBxHi(myThid) + do j=1,sNy + do i=1,sNx + cMeanSHIforT(i,j,bi,bj) = cMeanSHIforT(i,j,bi,bj) & + shelficeHeatFlux(i,j,bi,bj)*deltaTClock - cMeanSHIforS(i,j,bi,bj) = cMeanSHIforS(i,j,bi,bj) + cMeanSHIforS(i,j,bi,bj) = cMeanSHIforS(i,j,bi,bj) & + shelficeFreshWaterFlux(i,j,bi,bj)*deltaTClock -c-- - enddo enddo -ccc enddo + enddo enddo enddo diff --git a/pkg/shelfice/shelfice_cost_final.F b/pkg/shelfice/shelfice_cost_final.F index fb9bafa962..d60e93bd25 100644 --- a/pkg/shelfice/shelfice_cost_final.F +++ b/pkg/shelfice/shelfice_cost_final.F @@ -33,10 +33,6 @@ SUBROUTINE SHELFICE_COST_FINAL( myThid ) # include "cost.h" # include "optim.h" #endif -#if (defined ALLOW_SHIFWFLX_CONTROL && \ - defined ALLOW_SHIFWFLX_COST_CONTRIBUTION) -# include "ctrl.h" -#endif C !INPUT/OUTPUT PARAMETERS: C myThid :: Thread number for this instance of the routine. @@ -57,9 +53,7 @@ SUBROUTINE SHELFICE_COST_FINAL( myThid ) cML _RL no_shelfice _RL no_shifwflx -#ifndef ALLOW_ECCO INTEGER i, j -#endif CEOP f_shelfice = 0. _d 0 @@ -67,15 +61,10 @@ SUBROUTINE SHELFICE_COST_FINAL( myThid ) cML no_shelfice= 0. _d 0 no_shifwflx= 0. _d 0 -#ifdef ALLOW_ECCO -#if (defined ALLOW_SHIFWFLX_CONTROL && \ - defined ALLOW_SHIFWFLX_COST_CONTRIBUTION) - CALL SHELFICE_COST_SHIFWFLX( myThid ) -#endif /* ALLOW_SHIFWFLX_CONTROL and ALLOW_SHIFWFLX_COST_CONTRIBUTION */ -#else + IF ( .NOT. useECCO ) THEN C-- Calculate cost function on tile of this instance - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) ccc do klev = 1, Nr DO j=1,sNy DO i=1,sNx @@ -87,28 +76,23 @@ SUBROUTINE SHELFICE_COST_FINAL( myThid ) ENDDO ENDDO ccc end do + ENDDO ENDDO - ENDDO -#endif /* ALLOW_ECCO */ + ENDIF C-- Sum up all contributions. DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) write(standardmessageunit,'(A,D22.15)') & ' --> objf_shelfice(bi,bj) = ', objf_shelfice(bi,bj) - write(standardmessageunit,'(A,D22.15)') - & ' --> objf_shifwflx(bi,bj) = ', objf_shifwflx(bi,bj) tile_fc(bi,bj) = tile_fc(bi,bj) & + mult_shelfice * objf_shelfice(bi,bj) - & + mult_shifwflx * objf_shifwflx(bi,bj) ENDDO ENDDO CALL GLOBAL_SUM_TILE_RL( objf_shelfice, f_shelfice, myThid ) - CALL GLOBAL_SUM_TILE_RL( objf_shifwflx, f_shifwflx, myThid ) cML CALL GLOBAL_SUM_TILE_RL( num_shelfice, no_shelfice, myThid ) - CALL GLOBAL_SUM_TILE_RL( num_shifwflx, no_shifwflx, myThid ) # ifndef ALLOW_OPENAD C-- Each process has calculated the global part for itself. @@ -121,7 +105,6 @@ SUBROUTINE SHELFICE_COST_FINAL( myThid ) WRITE(ifc,*) 'fc =', fc cML WRITE(ifc,*) 'f_shelfice =', f_shelfice, no_shelfice WRITE(ifc,*) 'f_shelfice =', f_shelfice - WRITE(ifc,*) 'f_shifwflx =', f_shifwflx, no_shifwflx CLOSE(ifc) diff --git a/pkg/shelfice/shelfice_cost_shifwflx.F b/pkg/shelfice/shelfice_cost_shifwflx.F deleted file mode 100644 index 14b5d9d92d..0000000000 --- a/pkg/shelfice/shelfice_cost_shifwflx.F +++ /dev/null @@ -1,188 +0,0 @@ -#include "SHELFICE_OPTIONS.h" -#ifdef ALLOW_COST -# include "COST_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: SHELFICE_COST_SHIFWFLX -C !INTERFACE: - SUBROUTINE SHELFICE_COST_SHIFWFLX( - I myThid - & ) - -C !DESCRIPTION: \bv -c ================================================================== -c SUBROUTINE shelfice_cost_shifwflx -c ================================================================== -c -c o cost function contribution of shifwflx -c -c ================================================================== -c SUBROUTINE shelfice_cost_shifwflx -c ================================================================== -C \ev - -C !USES: - - implicit none - -c == global variables == - -#include "EEPARAMS.h" -#include "SIZE.h" -#ifdef ALLOW_SHELFICE -# include "SHELFICE.h" -# include "SHELFICE_COST.h" -#endif - -#ifdef ALLOW_CTRL -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -# include "optim.h" -#endif /* ALLOW_CTRL */ - -C !INPUT/OUTPUT PARAMETERS: -c == routine arguments == - - integer myThid - -#if (defined (ALLOW_SHELFICE) && \ - defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \ - defined (ALLOW_SHIFWFLX_CONTROL) ) - -C !LOCAL VARIABLES: -c == local variables == - - integer bi,bj - integer i,j - integer itlo,ithi - integer jtlo,jthi - integer ilfld - integer irec - integer nrec - integer startrec - integer endrec - - _RL fctile - _RL fcthread - _RL tmpx - - character*(80) fnamefld - - logical doglobalread - logical ladinit - -#ifdef ECCO_VERBOSE - character*(MAX_LEN_MBUF) msgbuf -#endif - -c == external functions == - - integer ilnblnk - external ilnblnk - -c == end of interface == -CEOP - - jtlo = mybylo(myThid) - jthi = mybyhi(myThid) - itlo = mybxlo(myThid) - ithi = mybxhi(myThid) - - startrec = ncvarrecstart(45) - endrec = ncvarrecsend(45) - -c-- Read tiled data. - doglobalread = .false. - ladinit = .false. - -c Number of records to be used. - nrec = endrec-startrec+1 - - fcthread = 0. _d 0 - -#ifdef ECCO_VERBOSE - _BEGIN_MASTER( myThid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a,i9.8)') - & ' shelfice_cost_shifwflx: number of records to process: ',nrec - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - _END_MASTER( myThid ) -#endif - - if (optimcycle .ge. 0) then - ilfld=ilnblnk( xx_shifwflx_file ) - write(fnamefld(1:80),'(2a,i10.10)') - & xx_shifwflx_file(1:ilfld), '.', optimcycle - endif - -c-- Loop over records. - do irec = 1,nrec - - call active_read_xy( - & fnamefld, tmpfld2d, irec, doglobalread, - & ladinit, optimcycle, myThid, xx_shifwflx_dummy ) - -c-- Loop over this thread s tiles. - do bj = jtlo,jthi - do bi = itlo,ithi - -c-- Determine the weights to be used. - fctile = 0. _d 0 - do j = 1,sny - do i = 1,snx - tmpx = tmpfld2d(i,j,bi,bj) - fctile = fctile + tmpx*tmpx - & *wshifwflx(i,j,bi,bj) - if ( wshifwflx(i,j,bi,bj) .ne. 0. ) - & num_shifwflx(bi,bj) = num_shifwflx(bi,bj) - & + 1. _d 0 - enddo - enddo - - objf_shifwflx(bi,bj) = objf_shifwflx(bi,bj) + fctile - fcthread = fcthread + fctile - - enddo - enddo - -c-- End of loop over records. - enddo - -#ifdef ECCO_VERBOSE -c-- Print cost function for all tiles. - _GLOBAL_SUM_RL( fcthread , myThid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a,i8.8)') - & ' shelfice_cost_shifwflx: irec = ',irec - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a,a,d22.15)') - & ' global cost function value', - & ' (shifwflx) = ',fcthread - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) - write(msgbuf,'(a)') ' ' - call print_message( msgbuf, standardmessageunit, - & SQUEEZE_RIGHT, myThid ) -#endif - -#endif /* ALLOW_SHEFLICE and (SHIFWFLX_COST_CONTRIBUTION or CONTROL) */ - - return - end diff --git a/pkg/shelfice/shelfice_forcing_surf.F b/pkg/shelfice/shelfice_forcing_surf.F index ada83a4808..5f54faf63c 100644 --- a/pkg/shelfice/shelfice_forcing_surf.F +++ b/pkg/shelfice/shelfice_forcing_surf.F @@ -100,9 +100,6 @@ SUBROUTINE SHELFICE_FORCING_SURF( IF ( SHI_useRealFWflux ) THEN C- Allows PmE to be used even if boundary layer is being used, C as long as SHI_withBL_realFWflux is set to account for advective flux -#ifdef ALLOW_AUTODIFF - STOP 'RealFreshWaterFlux disabled in SHELFICE_FORCING_SURF' -#else /* ALLOW_AUTODIFF */ DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx c IF ( kTopC(i,j,bi,bj).NE.0 ) THEN @@ -111,7 +108,6 @@ SUBROUTINE SHELFICE_FORCING_SURF( c ENDIF ENDDO ENDDO -#endif /* ALLOW_AUTODIFF */ ENDIF #ifdef EXACT_CONSERV diff --git a/pkg/shelfice/shelfice_init_fixed.F b/pkg/shelfice/shelfice_init_fixed.F index d58e544c51..90db907d24 100644 --- a/pkg/shelfice/shelfice_init_fixed.F +++ b/pkg/shelfice/shelfice_init_fixed.F @@ -42,11 +42,8 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) CHARACTER*16 diagUnits CHARACTER*(80) diagTitle #endif /* ALLOW_DIAGNOSTICS */ -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_CTRL INTEGER k -# ifdef ALLOW_SHIFWFLX_COST_CONTRIBUTION - _RL dummy -# endif #endif #ifdef ALLOW_MNC @@ -82,7 +79,7 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) ENDDO ENDDO -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_CTRL C maskSHI is a hack to play along with the general ctrl-package C infrastructure, where only the k=1 layer of a 3D mask is used C for 2D fields. We cannot use maskInC instead, because routines @@ -100,7 +97,7 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx IF ( Ro_surf(i,j,bi,bj).LT.rF(1) - & .AND. hFacC(i,j,k,bi,bj).NE.zeroRS ) THEN + & .AND. maskC(i,j,k,bi,bj).NE.zeroRS ) THEN maskSHI(i,j,k,bi,bj) = 1. _d 0 maskSHI(i,j,1,bi,bj) = 1. _d 0 ENDIF @@ -109,39 +106,7 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) ENDDO ENDDO ENDDO -#endif /* ALLOW_SHIFWFLX_CONTROL */ - -#ifdef ALLOW_COST -#if (defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \ - defined (ALLOW_SHIFWFLX_CONTROL)) - IF ( shifwflx_errfile .NE. ' ' ) THEN - CALL READ_REC_XY_RL( shifwflx_errfile, wshifwflx, 1, 0, myThid ) - ENDIF - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO j = 1-OLy, sNy+OLy - DO i = 1-OLx, sNx+OLx -c-- Test for missing values. - IF (wshifwflx(i,j,bi,bj) .LT. -9900.) THEN - wshifwflx(i,j,bi,bj) = 0. _d 0 - ENDIF -c-- use weight as mask - wshifwflx(i,j,bi,bj) = - & max(wshifwflx(i,j,bi,bj),wshifwflx0) - & *maskSHI(i,j,1,bi,bj) - IF (wshifwflx(i,j,bi,bj) .NE. 0.) THEN - wshifwflx(i,j,bi,bj) = - & 1./wshifwflx(i,j,bi,bj)/wshifwflx(i,j,bi,bj) - ENDIF - ENDDO - ENDDO - ENDDO - ENDDO - CALL ACTIVE_WRITE_XY_LOC( 'wshifwflx', wshifwflx, - & 1, 0, myThid, dummy ) -#endif /* ALLOW_SHIFWFLX_COST_CONTRIBUTION and ALLOW_SHIFWFLX_CONTROL */ -#endif /* ALLOW_COST */ +#endif /* ALLOW_CTRL */ IF ( SHELFICEloadAnomalyFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( SHELFICEloadAnomalyFile, ' ', @@ -256,6 +221,14 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + diagName = 'SHI_mass' + diagTitle = 'dynamic ice shelf mass for surface load anomaly' + diagUnits = 'kg/m^2 ' + diagCode = 'SM L1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +#ifdef SHI_ALLOW_GAMMAFRICT diagName = 'SHIuStar' diagTitle = 'Friction velocity at bottom of ice shelf' diagUnits = 'm/s ' @@ -263,12 +236,13 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) - diagName = 'SHI_mass' - diagTitle = 'dynamic ice shelf mass for surface load anomaly' - diagUnits = 'kg/m^2 ' + diagName = 'SHICDrag' + diagTitle = 'Shelfice drag coefficient for u* parameterization' + diagUnits = '1 ' diagCode = 'SM L1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, - I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +#endif #ifdef ALLOW_SHELFICE_REMESHING diagName = 'SHIRshel' @@ -279,6 +253,31 @@ SUBROUTINE SHELFICE_INIT_FIXED( myThid ) I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) #endif +# ifdef ALLOW_AUTODIFF +# ifndef SHI_ALLOW_GAMMAFRICT + diagName = 'ADJshict' + diagTitle = 'dJ/dgammaT: Sens. to shelfice heat transfer coeff' + diagUnits = 'dJ/(m/s) ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + + diagName = 'ADJshics' + diagTitle = 'dJ/dgammaS: Sens. to shelfice salt transfer coeff' + diagUnits = 'dJ/(m/s) ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) + +# else + diagName = 'ADJshicd' + diagTitle = 'dJ/dcDrag: Sensitivity to shelfice u* drag coeff' + diagUnits = 'dJ/1 ' + diagCode = 'SM A M1 ' + CALL DIAGNOSTICS_ADDTOLIST( diagNum, + I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) +# endif +# endif ENDIF #endif /* ALLOW_DIAGNOSTICS */ #endif /* ALLOW_SHELFICE */ diff --git a/pkg/shelfice/shelfice_init_varia.F b/pkg/shelfice/shelfice_init_varia.F index a463187aab..6a8f76f02f 100644 --- a/pkg/shelfice/shelfice_init_varia.F +++ b/pkg/shelfice/shelfice_init_varia.F @@ -35,17 +35,27 @@ SUBROUTINE SHELFICE_INIT_VARIA( myThid ) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx - shelficeForcingT (i,j,bi,bj) = 0. _d 0 - shelficeForcingS (i,j,bi,bj) = 0. _d 0 - shelficeHeatFlux (i,j,bi,bj) = 0. _d 0 - shelficeFreshWaterFlux(i,j,bi,bj) = 0. _d 0 - shiTransCoeffT (i,j,bi,bj) = 0. _d 0 - shiTransCoeffS (i,j,bi,bj) = 0. _d 0 - shelficeMass (i,j,bi,bj) = 0. _d 0 + shelficeForcingT (i,j,bi,bj) = 0. _d 0 + shelficeForcingS (i,j,bi,bj) = 0. _d 0 + shelficeHeatFlux (i,j,bi,bj) = 0. _d 0 + shelficeFreshWaterFlux(i,j,bi,bj) = 0. _d 0 + shiTransCoeffT (i,j,bi,bj) = 0. _d 0 + shiTransCoeffS (i,j,bi,bj) = 0. _d 0 + shelficeMass (i,j,bi,bj) = 0. _d 0 + shiCDragFld (i,j,bi,bj) = 0. _d 0 + shiDragQuadFld (i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO +#ifdef ALLOW_AUTODIFF +C- Note: To simplify dependency & avoid recomputations, when compiling +C pkg/autodiff, we always call SHELFICE_INIT_VARIA to initialise control +C variables (as done above) without condition on useShelfIce. +C Therefore, in this case, the "If useShelfIce" is added back here: + IF ( useShelfIce ) THEN +#endif + IF ( .NOT. SHELFICEuseGammaFrict ) THEN IF ( SHELFICETransCoeffTFile .NE. ' ' ) THEN CALL READ_FLD_XY_RL( SHELFICETransCoeffTFile, ' ', @@ -55,7 +65,7 @@ SUBROUTINE SHELFICE_INIT_VARIA( myThid ) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx - shiTransCoeffS(i,j,bi,bj) = 5.05 _d -3 * + shiTransCoeffS(i,j,bi,bj) = SHELFICEsaltToHeatRatio * & shiTransCoeffT(i,j,bi,bj) ENDDO ENDDO @@ -75,12 +85,25 @@ SUBROUTINE SHELFICE_INIT_VARIA( myThid ) ENDDO ENDIF ENDIF +C Update the spatially varying version of the drag coefficient +C shiCDragFld used in shelfice_thermodynamics +C shiCDragQuadFld used in shelfice_u/v_drag_coeff + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + shiCDragFld(i,j,bi,bj) = shiCDrag + shiDragQuadFld(i,j,bi,bj) = SHELFICEDragQuadratic + ENDDO + ENDDO + ENDDO + ENDDO DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx - shelficeMass(i,j,bi,bj) = shelficeMassInit(i,j,bi,bj) + shelficeMass(i,j,bi,bj) = shelficeMassInit(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -90,6 +113,24 @@ SUBROUTINE SHELFICE_INIT_VARIA( myThid ) & ( nIter0.NE.0 .OR. startTime.NE.baseTime & .OR. pickupSuff.NE.' ') ) THEN CALL SHELFICE_READ_PICKUP( 1, nIter0, myThid ) +c ENDIF + +c IF ( SHELFICEMassStepping ) THEN +C set/update "kTopC" to agree with changing ice-shelf mass + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + IF ( kSurfC(i,j,bi,bj).LE.Nr .AND. + & shelficeMass(i,j,bi,bj).GT.zeroRL ) THEN + kTopC(i,j,bi,bj) = kSurfC(i,j,bi,bj) + ELSE + kTopC(i,j,bi,bj) = 0 + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO ENDIF #ifdef ALLOW_COST @@ -106,13 +147,18 @@ SUBROUTINE SHELFICE_INIT_VARIA( myThid ) c-- DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - objf_shelfice(bi,bj) = 0. _d 0 - objf_shifwflx(bi,bj) = 0. _d 0 - num_shifwflx(bi,bj) = 0. _d 0 + objf_shelfice(bi,bj) = 0. _d 0 + objf_shifwflx(bi,bj) = 0. _d 0 + num_shifwflx(bi,bj) = 0. _d 0 ENDDO ENDDO #endif /* ALLOW_COST */ +#ifdef ALLOW_AUTODIFF +C- end if useShelfIce block + ENDIF +#endif + #endif /* ALLOW_SHELFICE */ RETURN diff --git a/pkg/shelfice/shelfice_readparms.F b/pkg/shelfice/shelfice_readparms.F index cf7e7c3c97..f04bcf127d 100644 --- a/pkg/shelfice/shelfice_readparms.F +++ b/pkg/shelfice/shelfice_readparms.F @@ -39,6 +39,7 @@ SUBROUTINE SHELFICE_READPARMS( myThid ) CEOP NAMELIST /SHELFICE_PARM01/ + & SHELFICEsaltToHeatRatio, & SHELFICEheatTransCoeff, & SHELFICEsaltTransCoeff, & SHELFICEMassStepping, @@ -105,6 +106,7 @@ SUBROUTINE SHELFICE_READPARMS( myThid ) SHELFICElatentHeat = 334.0 _d 3 SHELFICEHeatCapacity_Cp = 2000.0 _d 0 rhoShelfIce = 917.0 _d 0 + SHELFICEsaltToHeatRatio = 5.05 _d -03 SHELFICEheatTransCoeff = 1.0 _d -04 SHELFICEsaltTransCoeff = UNSET_RL SHELFICEkappa = 1.54 _d -06 @@ -167,7 +169,7 @@ SUBROUTINE SHELFICE_READPARMS( myThid ) C Now set-up any remaining parameters that result from the input parameters IF ( SHELFICEsaltTransCoeff .EQ. UNSET_RL ) & SHELFICEsaltTransCoeff = - & 5.05 _d -3 *SHELFICEheatTransCoeff + & SHELFICEsaltToHeatRatio * SHELFICEheatTransCoeff C New calcUstar expression not available with SHELFICEboundaryLayer: IF ( SHELFICEboundaryLayer ) SHELFICE_oldCalcUStar = .TRUE. diff --git a/pkg/shelfice/shelfice_step_icemass.F b/pkg/shelfice/shelfice_step_icemass.F index 877bc74fce..0cccaf582c 100644 --- a/pkg/shelfice/shelfice_step_icemass.F +++ b/pkg/shelfice/shelfice_step_icemass.F @@ -69,25 +69,51 @@ SUBROUTINE SHELFICE_STEP_ICEMASS( DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - IF ( .NOT.SHELFICEDynMassOnly ) THEN - shelficeMass(i,j,bi,bj) = shelficeMass(i,j,bi,bj) - & + shelfIceFreshWaterFlux(i,j,bi,bj)*deltaT - ENDIF - - shelficeMass(i,j,bi,bj) = shelficeMass(i,j,bi,bj) - & + shelfIceMassDynTendency(i,j,bi,bj)*deltaT + IF ( .NOT.SHELFICEDynMassOnly ) THEN + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + shelficeMass(i,j,bi,bj) = shelficeMass(i,j,bi,bj) + & + shelfIceFreshWaterFlux(i,j,bi,bj)*deltaT + ENDDO + ENDDO + ENDIF + + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + shelficeMass(i,j,bi,bj) = shelficeMass(i,j,bi,bj) + & + shelfIceMassDynTendency(i,j,bi,bj)*deltaT + ENDDO + ENDDO +C-- quick fix to prevent ice-shelf mass to become negative + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + shelficeMass(i,j,bi,bj) = + & MAX( shelficeMass(i,j,bi,bj), zeroRL ) + ENDDO ENDDO - ENDDO + ENDDO ENDDO ENDIF _EXCH_XY_RL( shelficeMass, myThid ) +#ifndef ALLOW_OPENAD +C-- Calculate new loading anomaly (in case the ice-shelf mass was updated) + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + shelficeLoadAnomaly(i,j,bi,bj) = gravity + & *( shelficeMass(i,j,bi,bj) + rhoConst*Ro_surf(i,j,bi,bj) ) + ENDDO + ENDDO + ENDDO + ENDDO +#endif + ENDIF #ifdef ALLOW_DIAGNOSTICS diff --git a/pkg/shelfice/shelfice_thermodynamics.F b/pkg/shelfice/shelfice_thermodynamics.F index e661be48d1..a497c19754 100644 --- a/pkg/shelfice/shelfice_thermodynamics.F +++ b/pkg/shelfice/shelfice_thermodynamics.F @@ -30,21 +30,22 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" +#include "EOS.h" #include "GRID.h" #include "DYNVARS.h" #include "FFIELDS.h" #include "SHELFICE.h" #include "SHELFICE_COST.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_CTRL # include "CTRL_SIZE.h" # include "ctrl.h" # include "ctrl_dummy.h" -#endif /* ALLOW_AUTODIFF */ +# ifdef ALLOW_GENTIM2D_CONTROL +# include "CTRL_GENARR.h" +# endif +#endif /* ALLOW_CTRL */ #ifdef ALLOW_AUTODIFF_TAMC -# ifdef SHI_ALLOW_GAMMAFRICT -# include "tamc.h" -# include "tamc_keys.h" -# endif /* SHI_ALLOW_GAMMAFRICT */ +# include "tamc.h" #endif /* ALLOW_AUTODIFF_TAMC */ C !INPUT/OUTPUT PARAMETERS: @@ -88,6 +89,7 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( _RL uLoc(1:sNx+1,1:sNy+1) _RL vLoc(1:sNx+1,1:sNy+1) _RL velSq(1:sNx,1:sNy) + _RL tTMP, sTMP, uTMP, vTMP, vSqTmp _RL thetaFreeze, saltFreeze, recip_Cp _RL freshWaterFlux #ifdef ALLOW_ISOMIP_TD @@ -117,9 +119,15 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( EXTERNAL SW_TEMP #endif -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_GENTIM2D_CONTROL + INTEGER iarr _RL xx_shifwflx_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif +#ifdef ALLOW_AUTODIFF_TAMC +# ifdef SHI_ALLOW_GAMMAFRICT + INTEGER ikey +# endif +#endif CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -152,18 +160,6 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( etastar = 1. _d 0 gammaTurbConst = 1. _d 0 / (2. _d 0 * shiZetaN*etastar) & - recip_shiKarman -#ifdef ALLOW_AUTODIFF - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-OLy,sNy+OLy - DO I = 1-OLx,sNx+OLx - shiTransCoeffT(i,j,bi,bj) = 0. _d 0 - shiTransCoeffS(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO -#endif /* ALLOW_AUTODIFF */ ENDIF #endif /* SHI_ALLOW_GAMMAFRICT */ @@ -216,54 +212,77 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( #if (defined SHI_ALLOW_GAMMAFRICT && defined ALLOW_DIAGNOSTICS) uStarDiag (I,J,bi,bj) = 0. _d 0 #endif /* SHI_ALLOW_GAMMAFRICT and ALLOW_DIAGNOSTICS */ +#ifdef ALLOW_GENTIM2D_CONTROL + xx_shifwflx_loc (I,J,bi,bj) = 0. _d 0 +#endif /* ALLOW_GENTIM2D_CONTROL */ ENDDO ENDDO ENDDO ENDDO -#ifdef ALLOW_SHIFWFLX_CONTROL - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-OLy,sNy+OLy - DO I = 1-OLx,sNx+OLx - xx_shifwflx_loc(I,J,bi,bj) = 0. _d 0 +#if (defined ALLOW_CTRL && defined ALLOW_GENTIM2D_CONTROL) + IF ( useCTRL ) THEN + DO iarr = 1, maxCtrlTim2D + IF (xx_gentim2d_file(iarr)(1:11).EQ.'xx_shifwflx') THEN + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO J = 1,sNy + DO I = 1,sNx + xx_shifwflx_loc(I,J,bi,bj)=xx_gentim2d(I,J,bi,bj,iarr) + ENDDO + ENDDO + ENDDO ENDDO - ENDDO + ENDIF ENDDO - ENDDO -#ifdef ALLOW_CTRL - IF (useCTRL) CALL CTRL_GET_GEN ( - & xx_shifwflx_file, xx_shifwflxstartdate, xx_shifwflxperiod, - & maskSHI, xx_shifwflx_loc, xx_shifwflx0, xx_shifwflx1, - & xx_shifwflx_dummy, - & xx_shifwflx_remo_intercept, xx_shifwflx_remo_slope, - & wshifwflx, - & myTime, myIter, myThid ) + ENDIF #endif -#endif /* ALLOW_SHIFWFLX_CONTROL */ + +C-- Deal with ice-shelf edge advance or retreat when allowing ice-shelf +C mass to change. Since current ice-shelf representation is missing +C a fractional ice-shelf cover representation, this turns into making +C or removing a "thin ice-shelf" grid-cell. Here we update "kTopC" +C as ice-shelf mass appears or vanishes in any surface grid-cell. + IF ( SHELFICEMassStepping ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + IF ( kSurfC(i,j,bi,bj).LE.Nr .AND. + & shelficeMass(i,j,bi,bj).GT.zeroRL ) THEN + kTopC(i,j,bi,bj) = kSurfC(i,j,bi,bj) + ELSE + kTopC(i,j,bi,bj) = 0 + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE kTopC = comlev1, key=ikey_dynamics +CADJ STORE shelficeMass = comlev1, key=ikey_dynamics, kind=isbyte +#endif + DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC # ifdef SHI_ALLOW_GAMMAFRICT - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy # endif /* SHI_ALLOW_GAMMAFRICT */ #endif /* ALLOW_AUTODIFF_TAMC */ + C-- make local copies of temperature, salinity and depth (pressure in deci-bar) C-- underneath the ice DO J = 1, sNy DO I = 1, sNx K = MAX(1,kTopC(I,J,bi,bj)) - pLoc(I,J) = ABS(R_shelfIce(I,J,bi,bj)) -c pLoc(I,J) = shelficeMass(I,J,bi,bj)*gravity*1. _d -4 +C- original (inaccurate) pLoc expression below: +C assumes rhoConst*gravity*SItodBar=1 + missing both "shelficeLoadAnomaly" +C static contribution and etaN dynamical contribution: +c pLoc(I,J) = ABS(R_shelfIce(I,J,bi,bj)) +C- new and accurate pLoc expression (just the weight of the ice): + pLoc(I,J) = shelficeMass(I,J,bi,bj)*gravity*SItodBar tLoc(I,J) = theta(I,J,K,bi,bj) sLoc(I,J) = MAX(salt(I,J,K,bi,bj), zeroRL) velSq(I,J)= 0. @@ -321,6 +340,14 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( DO I = 1, sNx K = kTopC(I,J,bi,bj) IF ( K .NE. 0 .AND. K .LT. Nr ) THEN +C This local variable assignment/reassignment is simply to +C avoid TAF recomputations... Oh the games we play... + tTMP = tLoc (I,J) + sTMP = sLoc (I,J) + uTMP = uLoc (I,J) + vTMP = vLoc (I,J) + vSqTMP = velSq(I,J) + Kp1 = MIN(Nr,K+1) C-- overlap into lower cell drKp1 = drF(K)*( 1. _d 0 - _hFacC(I,J,K,bi,bj) ) @@ -329,23 +356,29 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( drKp1 = MAX( drKp1, 0. _d 0 ) recip_drLoc = 1. _d 0 / & ( drF(K)*_hFacC(I,J,K,bi,bj) + drKp1 ) - tLoc(I,J) = ( tLoc(I,J) * drF(K)*_hFacC(I,J,K,bi,bj) + tTMP = ( tTMP * drF(K)*_hFacC(I,J,K,bi,bj) & + theta(I,J,Kp1,bi,bj) *drKp1 ) & * recip_drLoc - sLoc(I,J) = ( sLoc(I,J) * drF(K)*_hFacC(I,J,K,bi,bj) + sTMP = ( sTMP * drF(K)*_hFacC(I,J,K,bi,bj) & + MAX(salt(I,J,Kp1,bi,bj), zeroRL) * drKp1 ) & * recip_drLoc - uLoc(I,J) = ( uLoc(I,J) * drF(K)*_hFacC(I,J,K,bi,bj) + uTMP = ( uTMP * drF(K)*_hFacC(I,J,K,bi,bj) & + drKp1 * recip_hFacC(I,J,Kp1,bi,bj) * halfRL * & ( uVel(I, J,Kp1,bi,bj) * _hFacW(I, J,Kp1,bi,bj) & + uVel(I+1,J,Kp1,bi,bj) * _hFacW(I+1,J,Kp1,bi,bj) ) & ) * recip_drLoc - vLoc(I,J) = ( vLoc(I,J) * drF(K)*_hFacC(I,J,K,bi,bj) + vTMP = ( vTMP * drF(K)*_hFacC(I,J,K,bi,bj) & + drKp1 * recip_hFacC(I,J,Kp1,bi,bj) * halfRL * & ( vVel(I,J, Kp1,bi,bj) * _hFacS(I,J, Kp1,bi,bj) & + vVel(I,J+1,Kp1,bi,bj) * _hFacS(I,J+1,Kp1,bi,bj) ) & ) * recip_drLoc - velSq(I,J) = uLoc(I,J)*uLoc(I,J)+vLoc(I,J)*vLoc(I,J) + vSqTMP = uTMP*uTMP + vTMP*vTMP + + tLoc (I,J) = tTMP + sLoc (I,J) = sTMP + uLoc (I,J) = uTMP + vLoc (I,J) = vTMP + velSq(I,J) = vSqTMP ENDIF ENDDO ENDDO @@ -430,7 +463,7 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( DO I = 1, sNx K = kTopC(I,J,bi,bj) IF ( K .NE. 0 .AND. pLoc(I,J) .GT. 0. _d 0 ) THEN - ustarSq = shiCdrag * MAX( 1.D-6, velSq(I,J) ) + ustarSq = shiCdragfld(I,J,bi,bj) * MAX( 1.D-6, velSq(I,J) ) ustar = SQRT(ustarSq) #ifdef ALLOW_DIAGNOSTICS uStarDiag(I,J,bi,bj) = ustar @@ -483,9 +516,9 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( & * shiTransCoeffT(i,j,bi,bj) & * ( tLoc(I,J) - thetaFreeze ) & * HeatCapacity_Cp*rUnit2mass -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_GENTIM2D_CONTROL & - xx_shifwflx_loc(I,J,bi,bj)*SHELFICElatentHeat -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_GENTIM2D_CONTROL */ C upward heat flux into the shelf-ice implies basal melting, C thus a downward (negative upward) fresh water flux (as a mass flux), C and vice versa @@ -605,9 +638,9 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( freshWaterFlux = rUnit2mass & * shiTransCoeffS(i,j,bi,bj) & * ( 1. _d 0 - sLoc(I,J) / saltFreeze ) -#ifdef ALLOW_SHIFWFLX_CONTROL +#ifdef ALLOW_GENTIM2D_CONTROL & + xx_shifwflx_loc(I,J,bi,bj) -#endif /* ALLOW_SHIFWFLX_CONTROL */ +#endif /* ALLOW_GENTIM2D_CONTROL */ C-- Calculate the upward heat and fresh water fluxes; C-- MITgcm sign conventions: downward (negative) fresh water flux C-- implies melting and due to upward (positive) heat flux @@ -651,22 +684,6 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( CALL SHELFICE_STEP_ICEMASS( myTime, myIter, myThid ) ENDIF -C-- Calculate new loading anomaly (in case the ice-shelf mass was updated) -#ifndef ALLOW_AUTODIFF -c IF ( SHELFICEloadAnomalyFile .EQ. ' ' ) THEN - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO j = 1-OLy, sNy+OLy - DO i = 1-OLx, sNx+OLx - shelficeLoadAnomaly(i,j,bi,bj) = gravity - & *( shelficeMass(i,j,bi,bj) + rhoConst*Ro_surf(i,j,bi,bj) ) - ENDDO - ENDDO - ENDDO - ENDDO -c ENDIF -#endif /* ndef ALLOW_AUTODIFF */ - #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL DIAGNOSTICS_FILL_RS(shelfIceFreshWaterFlux,'SHIfwFlx', @@ -686,10 +703,14 @@ SUBROUTINE SHELFICE_THERMODYNAMICS( & 0,1,0,1,1,myThid) CALL DIAGNOSTICS_FILL(shiTransCoeffS,'SHIgammS', & 0,1,0,1,1,myThid) + C Friction velocity #ifdef SHI_ALLOW_GAMMAFRICT - IF ( SHELFICEuseGammaFrict ) - & CALL DIAGNOSTICS_FILL(uStarDiag,'SHIuStar',0,1,0,1,1,myThid) + IF ( SHELFICEuseGammaFrict ) THEN + CALL DIAGNOSTICS_FILL(uStarDiag,'SHIuStar',0,1,0,1,1,myThid) + CALL DIAGNOSTICS_FILL(shiCDragFld,'SHICDrag', + & 0,1,0,1,1,myThid) + ENDIF #endif /* SHI_ALLOW_GAMMAFRICT */ #ifdef ALLOW_SHELFICE_REMESHING CALL DIAGNOSTICS_FILL_RS( R_shelfIce, 'SHIRshel', diff --git a/pkg/shelfice/shelfice_u_drag_coeff.F b/pkg/shelfice/shelfice_u_drag_coeff.F index 84c090a441..e9eea6ad9b 100644 --- a/pkg/shelfice/shelfice_u_drag_coeff.F +++ b/pkg/shelfice/shelfice_u_drag_coeff.F @@ -138,7 +138,7 @@ SUBROUTINE SHELFICE_U_DRAG_COEFF( ENDIF IF ( uSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(uSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(uSq)*dragFac ENDIF ENDDO ENDDO @@ -157,7 +157,7 @@ SUBROUTINE SHELFICE_U_DRAG_COEFF( ENDIF IF ( uSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(uSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(uSq)*dragFac ENDIF ENDDO ENDDO @@ -182,7 +182,7 @@ SUBROUTINE SHELFICE_U_DRAG_COEFF( ENDIF IF ( uSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(uSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(uSq)*dragFac ENDIF ENDDO ENDDO diff --git a/pkg/shelfice/shelfice_v_drag_coeff.F b/pkg/shelfice/shelfice_v_drag_coeff.F index 89f3f5b0f1..aa5319a108 100644 --- a/pkg/shelfice/shelfice_v_drag_coeff.F +++ b/pkg/shelfice/shelfice_v_drag_coeff.F @@ -138,7 +138,7 @@ SUBROUTINE SHELFICE_V_DRAG_COEFF( ENDIF IF ( vSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(vSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(vSq)*dragFac ENDIF ENDDO ENDDO @@ -157,7 +157,7 @@ SUBROUTINE SHELFICE_V_DRAG_COEFF( ENDIF IF ( vSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(vSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(vSq)*dragFac ENDIF ENDDO ENDDO @@ -182,7 +182,7 @@ SUBROUTINE SHELFICE_V_DRAG_COEFF( ENDIF IF ( vSq.GT.zeroRL ) THEN cDrag(i,j) = cDrag(i,j) - & + SHELFICEDragQuadratic*SQRT(vSq)*dragFac + & + shiDragQuadFld(i,j,bi,bj)*SQRT(vSq)*dragFac ENDIF ENDDO ENDDO diff --git a/pkg/smooth/SMOOTH.h b/pkg/smooth/SMOOTH.h index df291b3239..e0343ef285 100644 --- a/pkg/smooth/SMOOTH.h +++ b/pkg/smooth/SMOOTH.h @@ -1,48 +1,81 @@ -c pkg/smooth constants +C pkg/smooth constants - integer smoothprec - parameter ( smoothprec = 32 ) + INTEGER smoothprec + PARAMETER ( smoothprec = 32 ) - logical smooth3DdoImpldiff - parameter ( smooth3DdoImpldiff = .TRUE. ) + LOGICAL smooth3DdoImpldiff + PARAMETER ( smooth3DdoImpldiff = .TRUE. ) - integer smoothOpNbMax + INTEGER smoothOpNbMax PARAMETER ( smoothOpNbMax = 10 ) - _RL smooth2DdelTime,smooth3DdelTime + _RL smooth2DdelTime, smooth3DdelTime PARAMETER ( smooth2DdelTime = 1. _d 0 ) PARAMETER ( smooth3DdelTime = 1. _d 0 ) -c fields: +C parameters: - _RS - & smooth_recip_hFacC(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), - & smooth_hFacW(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), - & smooth_hFacS(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - - integer smooth3Dnbt(smoothOpNbMax), - & smooth3DtypeZ(smoothOpNbMax),smooth3DsizeZ(smoothOpNbMax), - & smooth3DtypeH(smoothOpNbMax),smooth3DsizeH(smoothOpNbMax), + COMMON /smooth_operators_i/ + & smooth3Dnbt, smooth2Dnbt, + & smooth2Dtype, smooth2Dsize, + & smooth3DtypeZ, smooth3DsizeZ, + & smooth3DtypeH, smooth3DsizeH, + & smooth2Dfilter, smooth3Dfilter + INTEGER smooth2Dnbt(smoothOpNbMax), + & smooth2Dtype(smoothOpNbMax), smooth2Dsize(smoothOpNbMax), + & smooth2Dfilter(smoothOpNbMax) + INTEGER smooth3Dnbt(smoothOpNbMax), + & smooth3DtypeZ(smoothOpNbMax), smooth3DsizeZ(smoothOpNbMax), + & smooth3DtypeH(smoothOpNbMax), smooth3DsizeH(smoothOpNbMax), & smooth3Dfilter(smoothOpNbMax) + + COMMON /smooth_param_r/ + & smooth3DtotTime, + & smooth3D_Lx0, smooth3D_Ly0, smooth3D_Lz0, + & smooth2DtotTime, smooth2D_Lx0, smooth2D_Ly0 _RL smooth3DtotTime, & smooth3D_Lx0(smoothOpNbMax), - & smooth3D_Ly0(smoothOpNbMax), smooth3D_Lz0(smoothOpNbMax), - & smooth3D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), - & smooth3D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), - & smooth3D_Lz(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), - & smooth3Dnorm (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - - integer smooth2Dnbt(smoothOpNbMax), - & smooth2Dtype(smoothOpNbMax),smooth2Dsize(smoothOpNbMax), - & smooth2Dfilter(smoothOpNbMax) + & smooth3D_Ly0(smoothOpNbMax), smooth3D_Lz0(smoothOpNbMax) _RL smooth2DtotTime, - & smooth2D_Lx0(smoothOpNbMax),smooth2D_Ly0(smoothOpNbMax), - & smooth2D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy), - & smooth2D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy), - & smooth2Dnorm (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) + & smooth2D_Lx0(smoothOpNbMax), smooth2D_Ly0(smoothOpNbMax) - _RL - & smooth3D_kappaR (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy), + COMMON /smooth_flds_c/ + & smooth3DmaskName, smooth2DmaskName, smoothDir + CHARACTER*(5) smooth3DmaskName(smoothOpNbMax) + CHARACTER*(5) smooth2DmaskName(smoothOpNbMax) + CHARACTER*(MAX_LEN_FNAM) smoothDir + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C fields: + COMMON /smooth_flds_rs/ + & smooth_recip_hFacC, smooth_hFacW, smooth_hFacS + _RS + & smooth_recip_hFacC(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), + & smooth_hFacW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), + & smooth_hFacS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + + COMMON /smooth_flds_rl/ + & smooth3D_Lx, smooth3D_Ly, smooth3D_Lz, + & smooth3Dnorm, + & smooth2D_Lx, smooth2D_Ly, + & smooth2Dnorm + _RL + & smooth3D_Lx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), + & smooth3D_Ly(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), + & smooth3D_Lz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), + & smooth3Dnorm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL + & smooth2D_Lx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy), + & smooth2D_Ly(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy), + & smooth2Dnorm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + + COMMON /smooth_operators_r/ + & smooth3D_kappaR, smooth3D_Kwx, smooth3D_Kwy, smooth3D_Kwz, + & smooth3D_Kux, smooth3D_Kvy, smooth3D_Kuz, smooth3D_Kvz, + & smooth3D_Kuy, smooth3D_Kvx, + & smooth2D_Kux, smooth2D_Kvy + _RL + & smooth3D_kappaR(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), & smooth3D_Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), & smooth3D_Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), & smooth3D_Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), @@ -52,33 +85,8 @@ c fields: & smooth3D_Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), & smooth3D_Kuy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy), & smooth3D_Kvx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL + & smooth2D_Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy), + & smooth2D_Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL - & smooth2D_Kux (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy), - & smooth2D_Kvy (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) - - COMMON /smooth_flds_rs/ - & smooth_recip_hFacC, smooth_hFacW, smooth_hFacS - - COMMON /smooth_flds_rl/ - & smooth3Dnorm,smooth3DtotTime, - & smooth2Dnorm,smooth2DtotTime, - & smooth3D_Lx0,smooth3D_Ly0,smooth3D_Lz0, - & smooth3D_Lx,smooth3D_Ly,smooth3D_Lz, - & smooth2D_Lx0,smooth2D_Ly0, - & smooth2D_Lx,smooth2D_Ly - - COMMON /smooth_operators_i/ - & smooth3Dnbt, smooth2Dnbt, - & smooth2Dtype, smooth2Dsize, - & smooth3DtypeZ, smooth3DsizeZ, - & smooth3DtypeH, smooth3DsizeH, - & smooth2Dfilter, smooth3Dfilter - - COMMON /smooth_operators_r/ - & smooth3D_kappaR,smooth3D_Kwx,smooth3D_Kwy,smooth3D_Kwz, - & smooth3D_Kux,smooth3D_Kvy,smooth3D_Kuz,smooth3D_Kvz, - & smooth3D_Kuy,smooth3D_Kvx, - & smooth2D_Kux,smooth2D_Kvy - - +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/pkg/smooth/smooth2d.F b/pkg/smooth/smooth2d.F index 98e9d7dedf..f25f4553c2 100644 --- a/pkg/smooth/smooth2d.F +++ b/pkg/smooth/smooth2d.F @@ -1,7 +1,7 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth2D ( - U fld_in,mask_in,smoothOpNb,mythid) + SUBROUTINE SMOOTH2D( + & fld_in, mask_in, smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth2D @@ -13,36 +13,38 @@ subroutine smooth2D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - integer smoothOpNb - integer nbt_in - character*( 80) fnamegeneric - integer i,j,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - -c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Doperator',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Kux,1,1,mythid) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Kvy,2,1,mythid) - CALL EXCH_XY_RL ( smooth2D_Kux, myThid ) - CALL EXCH_XY_RL ( smooth2D_Kvy, myThid ) - -c do the smoothing: - nbt_in=smooth2Dnbt(smoothOpNb) - call smooth_diff2D(fld_in,mask_in,nbt_in,mythid) - - end + _RL fld_in (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER smoothOpNb + INTEGER myThid + + INTEGER nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + + INTEGER IL + +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + + IL = ILNBLNK( smoothDir ) + +C read smoothing [i.e diffusion] operator: + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Doperator',smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kux, 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kvy, 2, 1, myThid ) + CALL EXCH_XY_RL( smooth2D_Kux, myThid ) + CALL EXCH_XY_RL( smooth2D_Kvy, myThid ) + +C do the smoothing: + nbt_in = smooth2Dnbt(smoothOpNb) + CALL SMOOTH_DIFF2D( fld_in, mask_in, nbt_in, myThid ) + + RETURN + END diff --git a/pkg/smooth/smooth3d.F b/pkg/smooth/smooth3d.F index d31301d5c6..a46794f409 100644 --- a/pkg/smooth/smooth3d.F +++ b/pkg/smooth/smooth3d.F @@ -1,7 +1,7 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth3D ( - U fld_in,smoothOpNb,mythid) + SUBROUTINE SMOOTH3D( + & fld_in, smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth3D @@ -13,61 +13,60 @@ subroutine smooth3D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" + _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER smoothOpNb + INTEGER myThid - _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - integer smoothOpNb - integer nbt_in - character*( 80) fnamegeneric - integer i,j,k,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid + INTEGER nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + INTEGER IL - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK - -c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Doperator',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwx,1, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwy,2, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwz,3, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kux,4, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvy,5, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuz,6, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvz,7, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuy,8, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvx,9, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_kappaR,10, 1, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kux, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_kappaR, myThid ) + IL = ILNBLNK( smoothDir ) + +C read smoothing [i.e diffusion] operator: + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Doperator', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwx, 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwy, 2, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwz, 3, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kux, 4, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvy, 5, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuz, 6, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvz, 7, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuy, 8, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvx, 9, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_kappaR, 10, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kux, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) c do the smoothing: - nbt_in=smooth3Dnbt(smoothOpNb) - call smooth_diff3D(fld_in,nbt_in,mythid) + nbt_in = smooth3Dnbt(smoothOpNb) + CALL smooth_diff3D( fld_in, nbt_in, myThid ) - end + RETURN + END diff --git a/pkg/smooth/smooth_ad_diff.list b/pkg/smooth/smooth_ad_diff.list index 06411d623d..5fd0c55b91 100644 --- a/pkg/smooth/smooth_ad_diff.list +++ b/pkg/smooth/smooth_ad_diff.list @@ -5,7 +5,6 @@ smooth_diff3d.f smooth_diff2d.f smooth_correl3d.f smooth_correl2d.f -smooth_correl2dw.f smooth_hetero2d.f smooth_impldiff.f smooth_init_varia.f diff --git a/pkg/smooth/smooth_basic2d.F b/pkg/smooth/smooth_basic2d.F index 873fe30158..f617e43c2a 100644 --- a/pkg/smooth/smooth_basic2d.F +++ b/pkg/smooth/smooth_basic2d.F @@ -1,12 +1,12 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_basic2D ( - U fld_in,mask_in,dist_in,nbt_in,mythid) + SUBROUTINE SMOOTH_BASIC2D( + & fld_in, mask_in, dist_in, nbt_in, myThid ) C *==========================================================* C | SUBROUTINE smooth_basic2D C | o this routine smoothes a 2D field isotropically (except for -C | the land mask) to a constant length scale. It mostly +C | the land mask) to a constant length scale. It mostly C | calls smooth_diff2D.F. C *==========================================================* @@ -15,23 +15,15 @@ subroutine smooth_basic2D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL dist_in - integer nbt_in - integer i,j,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid + INTEGER nbt_in + INTEGER myThid - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + INTEGER i,j,bi,bj smooth2DtotTime=nbt_in*smooth2DdelTime @@ -39,8 +31,8 @@ subroutine smooth_basic2D ( DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth2D_Lx(i,j,bi,bj)=dist_in - smooth2D_Ly(i,j,bi,bj)=dist_in + smooth2D_Lx(i,j,bi,bj) = dist_in + smooth2D_Ly(i,j,bi,bj) = dist_in ENDDO ENDDO ENDDO @@ -50,20 +42,21 @@ subroutine smooth_basic2D ( DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth2D_Kux(i,j,bi,bj)=smooth2D_Lx(i,j,bi,bj)* - & smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 - smooth2D_Kvy(i,j,bi,bj)=smooth2D_Ly(i,j,bi,bj)* - & smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 + smooth2D_Kux(i,j,bi,bj) = smooth2D_Lx(i,j,bi,bj)* + & smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 + smooth2D_Kvy(i,j,bi,bj) = smooth2D_Ly(i,j,bi,bj)* + & smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( smooth2D_Kux , myThid ) - CALL EXCH_XY_RL ( smooth2D_Kvy , myThid ) + CALL EXCH_XY_RL( smooth2D_Kux , myThid ) + CALL EXCH_XY_RL( smooth2D_Kvy , myThid ) + + CALL SMOOTH_DIFF2D( fld_in, mask_in, nbt_in, myThid ) - call smooth_diff2D(fld_in,mask_in,nbt_in,mythid) + CALL EXCH_XY_RL( fld_in , myThid ) - CALL EXCH_XY_RL ( fld_in , myThid ) - - end + RETURN + END diff --git a/pkg/smooth/smooth_check.F b/pkg/smooth/smooth_check.F new file mode 100644 index 0000000000..2944ee4b41 --- /dev/null +++ b/pkg/smooth/smooth_check.F @@ -0,0 +1,69 @@ +#include "SMOOTH_OPTIONS.h" + +CBOP +C !ROUTINE: SMOOTH_CHECK +C !INTERFACE: + SUBROUTINE SMOOTH_CHECK( myThid ) +C !DESCRIPTION: \bv +C *==========================================================* +C | S/R SMOOTH_CHECK +C | o Checks for inconsistencies in the smooth package +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE +C == global variables == +#include "EEPARAMS.h" +#include "SIZE.h" +#include "SMOOTH.h" + +C !INPUT/OUTPUT PARAMETERS: + INTEGER myThid + +C !LOCAL VARIABLES: +C msgBuf :: Informational/error message buffer + CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER smoothOpNb +CEOP + +C --- Check for legal mask names + DO smoothOpNb=1,smoothOpNbMax + IF ( .NOT.( + & (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskC').OR. + & (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskW').OR. + & (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskS').OR. + & (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskI'))) THEN + WRITE(msgBuf,'(A,A,I2,A,A,A,A)') 'SMOOTH_CHECK: ', + & 'Unrecognized option for smooth2DmaskName(', smoothOpNb, + & '): ', smooth2DmaskName(smoothOpNb), ' - must be: ', + & 'maskC, maskW, maskS, or maskI' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SMOOTH_CHECK' + ENDIF + + IF ( .NOT.( + & (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskC').OR. + & (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskW').OR. + & (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskS'))) THEN + WRITE(msgBuf,'(A,A,I2,A,A,A,A)') 'SMOOTH_CHECK: ', + & 'Unrecognized option for smooth3DmaskName(', smoothOpNb, + & '): ', smooth3DmaskName(smoothOpNb), ' - must be: ', + & 'maskC, maskW, or maskS' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SMOOTH_CHECK' + ENDIF + +#ifndef ALLOW_SHELFICE +C --- make sure proper macros are defined for maskI (iceshelf domain) + IF (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskI') THEN + WRITE(msgBuf,'(A,A,I2,A,A,A,A)') 'SMOOTH_CHECK: ', + & 'Must compile with shelfice package, ALLOW_SHELFICE' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R SMOOTH_CHECK' + ENDIF +#endif + ENDDO + + RETURN + END diff --git a/pkg/smooth/smooth_correl2d.F b/pkg/smooth/smooth_correl2d.F index bef7c71616..f00fb7e58a 100644 --- a/pkg/smooth/smooth_correl2d.F +++ b/pkg/smooth/smooth_correl2d.F @@ -1,11 +1,11 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_correl2D ( - U fld_in,mask_in,smoothOpNb,mythid) + SUBROUTINE SMOOTH_CORREL2D( + & fld_in, mask_in, smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_correl2D -C | o Routine that applies spatial correlation +C | o Routine that applies spatial correlation C | operator to a 2D control field C *==========================================================* @@ -14,71 +14,72 @@ subroutine smooth_correl2D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - integer smoothOpNb - integer nbt_in - character*( 80) fnamegeneric - integer i,j,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid + _RS mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER smoothOpNb + INTEGER myThid + INTEGER nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + INTEGER i,j,bi,bj + INTEGER IL - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + IL = ILNBLNK( smoothDir ) c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), & 'smooth2Doperator',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Kux,1,1,mythid) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Kvy,2,1,mythid) - CALL EXCH_XY_RL ( smooth2D_Kux, myThid ) - CALL EXCH_XY_RL ( smooth2D_Kvy, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kux,1,1,myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kvy,2,1,myThid ) + CALL EXCH_XY_RL( smooth2D_Kux, myThid ) + CALL EXCH_XY_RL( smooth2D_Kvy, myThid ) c read normalization field [i.e. 1/sqrt(var(filter))]: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Dnorm',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2Dnorm,1,1,mythid) - CALL EXCH_XY_RL ( smooth2Dnorm, myThid ) + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Dnorm',smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2Dnorm, 1, 1, myThid ) + CALL EXCH_XY_RL( smooth2Dnorm, myThid ) c division by ~sqrt(area): - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy - DO i = 1,sNx - fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj) - & *sqrt(recip_rA(i,j,bi,bj)) + DO i = 1,sNx + fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj) + & *SQRT(recip_rA(i,j,bi,bj)) ENDDO ENDDO - ENDDO + ENDDO ENDDO CALL EXCH_XY_RL ( fld_in , myThid ) c do the smoothing: - nbt_in=smooth2Dnbt(smoothOpNb)/2 - call smooth_diff2D(fld_in,mask_in,nbt_in,mythid) + nbt_in = smooth2Dnbt(smoothOpNb)/2 + CALL SMOOTH_DIFF2D( fld_in, mask_in, nbt_in, myThid ) c division by ~sqrt(var(filter)): - do bj = jtlo,jthi - do bi = itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy DO i = 1,sNx - fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj) - & *smooth2Dnorm(i,j,bi,bj) + fld_in(i,j,bi,bj) = fld_in(i,j,bi,bj) + & *smooth2Dnorm(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( fld_in , myThid ) - - end + CALL EXCH_XY_RL( fld_in , myThid ) + + RETURN + END diff --git a/pkg/smooth/smooth_correl2dw.F b/pkg/smooth/smooth_correl2dw.F deleted file mode 100644 index 82139ec3bd..0000000000 --- a/pkg/smooth/smooth_correl2dw.F +++ /dev/null @@ -1,137 +0,0 @@ -#include "SMOOTH_OPTIONS.h" -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_ECCO -# include "ECCO_OPTIONS.h" -#endif - - subroutine smooth_correl2Dw ( - U fld_in,mask_in,xx_gen_file,mythid) - -C *==========================================================* -C | SUBROUTINE smooth_correl2Dw -C | o Routine that maps a 2D control field to physical units -C | by mutliplying it with 1/sqrt(weight) -C | after smooth_correl2D has been applied -C *==========================================================* - - IMPLICIT NONE -#include "SIZE.h" -#include "EEPARAMS.h" -#include "GRID.h" -#include "PARAMS.h" -#include "SMOOTH.h" -#if (defined (ALLOW_CTRL) && defined (ECCO_CTRL_DEPRECATED)) -# include "ctrl.h" -# include "CTRL_SIZE.h" -# include "CTRL_GENARR.h" -#endif -#if (defined (ALLOW_ECCO) && defined (ECCO_CTRL_DEPRECATED)) -# include "ecco_cost.h" -#endif - - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - character*(MAX_LEN_FNAM) xx_gen_file - integer myThid - -#ifdef ECCO_CTRL_DEPRECATED - -# if (defined ALLOW_CTRL) || (defined ALLOW_ECCO) - - integer i,j,bi,bj - integer itlo,ithi - integer jtlo,jthi - _RL tmpW - LOGICAL weightWasFound -#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) - INTEGER iarr -#endif - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - - - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = 1,sNy - DO i = 1,sNx - - weightWasFound=.TRUE. - - if ( xx_gen_file .EQ. xx_hflux_file ) then - tmpW=whflux(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_sflux_file ) then - tmpW=wsflux(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_tauu_file ) then - tmpW=wtauu(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_tauv_file ) then - tmpW=wtauv(i,j,bi,bj) - - elseif ( xx_gen_file .EQ. xx_atemp_file ) then - tmpW=watemp(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_aqh_file ) then - tmpW=waqh(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_precip_file ) then - tmpW=wprecip(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_snowprecip_file ) then - tmpW=wsnowprecip(i,j,bi,bj) - - elseif ( xx_gen_file .EQ. xx_swflux_file ) then - tmpW=wswflux(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_swdown_file ) then - tmpW=wswdown(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_lwflux_file ) then - tmpW=wlwflux(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_lwdown_file ) then - tmpW=wlwdown(i,j,bi,bj) - - elseif ( xx_gen_file .EQ. xx_evap_file ) then - tmpW=wevap(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_apressure_file ) then - tmpW=wapressure(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_uwind_file ) then - tmpW=wuwind(i,j,bi,bj) - elseif ( xx_gen_file .EQ. xx_vwind_file ) then - tmpW=wvwind(i,j,bi,bj) - - else - tmpW=0. - weightWasFound=.FALSE. - endif - -#ifdef ALLOW_CTRL -#ifdef ALLOW_GENTIM2D_CONTROL - do iarr = 1, maxCtrlTim2D - if ( xx_gen_file .EQ. xx_gentim2d_file(iarr) ) then - tmpW=wgentim2d(i,j,bi,bj,iarr) - weightWasFound=.TRUE. - endif - enddo -#endif -#endif - - if ((mask_in(i,j,1,bi,bj).NE.0.).AND.(tmpW.NE.0.)) then - fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj)/sqrt(tmpW) - else - fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj)*0. - endif - - ENDDO - ENDDO - ENDDO - ENDDO - - CALL EXCH_XY_RL ( fld_in , myThid ) - - if (.NOT.weightWasFound) WRITE(errorMessageUnit,'(2A)' ) - & 'WARNING: no weights found for ',xx_gen_file - -#endif /* ALLOW_ECCO or ALLOW_CTRL */ - -#endif /* ECCO_CTRL_DEPRECATED */ - - end diff --git a/pkg/smooth/smooth_correl3d.F b/pkg/smooth/smooth_correl3d.F index e26cce9851..67678cb27c 100644 --- a/pkg/smooth/smooth_correl3d.F +++ b/pkg/smooth/smooth_correl3d.F @@ -1,11 +1,11 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_correl3D ( - U fld_in,smoothOpNb,mythid) + SUBROUTINE SMOOTH_CORREL3D( + & fld_in, smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_correl3D -C | o Routine that applies spatial correlation +C | o Routine that applies spatial correlation C | operator to a 3D control field C *==========================================================* @@ -14,99 +14,99 @@ subroutine smooth_correl3D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" + _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER smoothOpNb + INTEGER myThid - _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - integer smoothOpNb - integer nbt_in - character*( 80) fnamegeneric - integer i,j,k,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid + INTEGER nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + INTEGER i,j,k,bi,bj + INTEGER IL +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + IL = ILNBLNK( smoothDir ) - c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Doperator',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwx,1, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwy,2, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwz,3, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kux,4, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvy,5, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuz,6, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvz,7, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuy,8, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvx,9, 1, myThid ) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_kappaR,10, 1, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kux, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_kappaR, myThid ) + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Doperator', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwx, 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwy, 2, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwz, 3, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kux, 4, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvy, 5, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuz, 6, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvz, 7, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuy, 8, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvx, 9, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_kappaR, 10, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kux, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) c read normalization field [i.e. 1/sqrt(var(filter))]: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Dnorm',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr, smooth3Dnorm,1,1,mythid) - CALL EXCH_XYZ_RL ( smooth3Dnorm, myThid ) + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Dnorm', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3Dnorm, 1, 1, myThid) + CALL EXCH_XYZ_RL( smooth3Dnorm, myThid ) c division by ~sqrt(volume): - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr DO j=1,sNy - DO i=1,sNx - fld_in(i,j,k,bi,bj)=fld_in(i,j,k,bi,bj) - & *sqrt(recip_rA(i,j,bi,bj)*recip_drF(k)) + DO i=1,sNx + fld_in(i,j,k,bi,bj) = fld_in(i,j,k,bi,bj) + & *SQRT(recip_rA(i,j,bi,bj)*recip_drF(k)) ENDDO ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XYZ_RL ( fld_in , myThid ) + CALL EXCH_XYZ_RL( fld_in, myThid ) c do the smoothing: - nbt_in=smooth3Dnbt(smoothOpNb)/2 - call smooth_diff3D(fld_in,nbt_in,mythid) + nbt_in = smooth3Dnbt(smoothOpNb)/2 + CALL smooth_diff3D( fld_in, nbt_in, myThid ) c division by ~sqrt(var(filter)): - do bj = jtlo,jthi - do bi = itlo,ithi - DO j = 1,sNy - DO i = 1,sNx - DO k = 1,nR - fld_in(i,j,k,bi,bj)=fld_in(i,j,k,bi,bj) - & *smooth3Dnorm(i,j,k,bi,bj) - ENDDO + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + DO k = 1,Nr + fld_in(i,j,k,bi,bj) = fld_in(i,j,k,bi,bj) + & *smooth3Dnorm(i,j,k,bi,bj) ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XYZ_RL ( fld_in , myThid ) + ENDDO + CALL EXCH_XYZ_RL( fld_in, myThid ) - end + RETURN + END diff --git a/pkg/smooth/smooth_diff2d.F b/pkg/smooth/smooth_diff2d.F index cda8e8db9e..a1c408492f 100644 --- a/pkg/smooth/smooth_diff2d.F +++ b/pkg/smooth/smooth_diff2d.F @@ -3,8 +3,8 @@ # include "AUTODIFF_OPTIONS.h" #endif - subroutine smooth_diff2D ( - U fld_in,mask_in,nbt_in,mythid) + SUBROUTINE SMOOTH_DIFF2D( + & fld_in, smooth2Dmask, nbt_in, myThid ) C *==========================================================* C | SUBROUTINE smooth_diff2D @@ -18,185 +18,177 @@ subroutine smooth_diff2D ( #include "PARAMS.h" #ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ #include "SMOOTH.h" - integer i,j,k, bi, bj - integer itlo,ithi - integer jtlo,jthi - integer myThid,myIter(nSx,nSy),key_in + _RL fld_in (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS smooth2Dmask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER nbt_in + INTEGER myThid - _RL smooth2Dmask(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL gt_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER i, j, bi, bj + INTEGER myIter(nSx,nSy), iloop + _RL ab15, ab05 + _RL gt_tmp + _RL gt_in (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL gtm1_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - integer nbt_in - - integer iloop, ilev_1, ilev_2, ilev_3 - integer max_lev2, max_lev3 - _RL ab15,ab05 - _RL gt_tmp - character*( 80) fnamegeneric - +#ifdef ALLOW_TAMC_CHECKPOINTING + INTEGER ilev_1, ilev_2, ilev_3 + INTEGER max_lev2, max_lev3, key_in +#endif -c for now: useless, because level 3 is recomputed anyway -c but : if level3 was computed during the fwd loop by callung +#ifdef ALLOW_TAMC_CHECKPOINTING +c for now: useless, because level 3 is recomputed anyway +c but : if level3 was computed during the fwd loop by calling c mdsmooth_diff3D (assumes that it would be called c directly by the_main_loop) then I would need to pass key_in c as a parameter, with different values for T, S, ... c in order not to overwrite the same tape - key_in=0 - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + key_in = 0 +#endif - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy DO i = 1,sNx gt_in(i,j,bi,bj) = 0. _d 0 - gtm1_in(i,j,bi,bj) = 0. _d 0 - smooth2Dmask(i,j,bi,bj) = mask_in(i,j,1,bi,bj) + gtm1_in(i,j,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( fld_in , myThid ) - CALL EXCH_XY_RL ( gt_in , myThid ) - CALL EXCH_XY_RL ( gtm1_in , myThid ) - CALL EXCH_XY_RL ( smooth2Dmask , myThid ) + CALL EXCH_XY_RL( fld_in, myThid ) + CALL EXCH_XY_RL( gt_in, myThid ) + CALL EXCH_XY_RL( gtm1_in, myThid ) #ifdef ALLOW_TAMC_CHECKPOINTING c checkpointing: - max_lev3=nbt_in/(nchklev_1*nchklev_2)+1 - max_lev2=nbt_in/nchklev_1+1 + max_lev3 = nbt_in/(nchklev_1*nchklev_2)+1 + max_lev2 = nbt_in/nchklev_1+1 #ifdef ALLOW_AUTODIFF_TAMC CADJ INIT tape_smooth2D_lev3 = USER #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_3 = 1,nchklev_3 - if(ilev_3.le.max_lev3) then + DO ilev_3 = 1,nchklev_3 + IF (ilev_3.LE.max_lev3) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fld_in = tape_smooth2D_lev3 , +CADJ STORE fld_in = tape_smooth2D_lev3 , CADJ & key = key_in*max_lev3 + ilev_3 -CADJ STORE gTm1_in = tape_smooth2D_lev3 , +CADJ STORE gTm1_in = tape_smooth2D_lev3 , CADJ & key = key_in*max_lev3 + ilev_3 #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC CADJ INIT tape_smooth2D_lev2 = USER #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_2 = 1,nchklev_2 - if(ilev_2.le.max_lev2) then + DO ilev_2 = 1,nchklev_2 + IF (ilev_2.LE.max_lev2) THEN #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fld_in = tape_smooth2D_lev2 , +CADJ STORE fld_in = tape_smooth2D_lev2 , CADJ & key = key_in*nchklev_2 + ilev_2 -CADJ STORE gTm1_in = tape_smooth2D_lev2 , +CADJ STORE gTm1_in = tape_smooth2D_lev2 , CADJ & key = key_in*nchklev_2 + ilev_2 #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ INIT tape_smooth2D_lev1 = COMMON, -CADJ & nchklev_1*nsx*nsy*nthreads_chkpt +CADJ INIT tape_smooth2D_lev1 = COMMON, nchklev_1*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_1 = 1,nchklev_1 - iloop = (ilev_2 - 1)*nchklev_1 + ilev_1 - & + (ilev_3 - 1)*nchklev_2*nchklev_1 - if ( iloop .le. nbt_in ) then + DO ilev_1 = 1,nchklev_1 + iloop = (ilev_2 - 1)*nchklev_1 + ilev_1 + & + (ilev_3 - 1)*nchklev_2*nchklev_1 + IF ( iloop .LE. nbt_in ) THEN #ifdef ALLOW_AUTODIFF_TAMC -c needed?? CADJ STORE fld_in = tape_smooth2D_lev1 , +c needed?? CADJ STORE fld_in = tape_smooth2D_lev1 , c CADJ & key = key_in*nchklev_1 + ilev_1 -CADJ STORE gtm1_in = tape_smooth2D_lev1 , +CADJ STORE gtm1_in = tape_smooth2D_lev1 , CADJ & key = key_in*nchklev_1 + ilev_1 #endif /* ALLOW_AUTODIFF_TAMC */ - #else /* ALLOW_TAMC_CHECKPOINTING */ - do iloop=1,nbt_in + DO iloop=1,nbt_in #endif - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = 1,sNy - DO i = 1,sNx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx - gt_in(i,j,bi,bj)=0. + gt_in(i,j,bi,bj)=0. - if (smooth2Dmask(i,j,bi,bj).NE.0.) then + IF (smooth2Dmask(i,j,bi,bj).NE.0.) THEN - gt_in(i,j,bi,bj)=gt_in(i,j,bi,bj)+ - & smooth2D_Kux(i,j,bi,bj)*dyG(i,j,bi,bj)* - & smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i-1,j,bi,bj)* - & (fld_in(i,j,bi,bj)-fld_in(i-1,j,bi,bj))*recip_dxC(i,j,bi,bj) + gt_in(i,j,bi,bj) = gt_in(i,j,bi,bj) + & + smooth2D_Kux(i,j,bi,bj)*dyG(i,j,bi,bj) + & *smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i-1,j,bi,bj) + & *( fld_in(i,j,bi,bj) - fld_in(i-1,j,bi,bj) ) + & *recip_dxC(i,j,bi,bj) - gt_in(i,j,bi,bj)=gt_in(i,j,bi,bj)+ - & smooth2D_Kux(i+1,j,bi,bj)*dyG(i+1,j,bi,bj)* - & smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i+1,j,bi,bj)* - & (fld_in(i,j,bi,bj)-fld_in(i+1,j,bi,bj))*recip_dxC(i+1,j,bi,bj) + gt_in(i,j,bi,bj) = gt_in(i,j,bi,bj) + & + smooth2D_Kux(i+1,j,bi,bj)*dyG(i+1,j,bi,bj) + & *smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i+1,j,bi,bj) + & *( fld_in(i,j,bi,bj) - fld_in(i+1,j,bi,bj) ) + & *recip_dxC(i+1,j,bi,bj) - gt_in(i,j,bi,bj)=gt_in(i,j,bi,bj)+ - & smooth2D_Kvy(i,j,bi,bj)*dxG(i,j,bi,bj)* - & smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i,j-1,bi,bj)* - & (fld_in(i,j,bi,bj)-fld_in(i,j-1,bi,bj))*recip_dyC(i,j,bi,bj) + gt_in(i,j,bi,bj) = gt_in(i,j,bi,bj) + & + smooth2D_Kvy(i,j,bi,bj)*dxG(i,j,bi,bj) + & *smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i,j-1,bi,bj) + & *( fld_in(i,j,bi,bj) - fld_in(i,j-1,bi,bj) ) + & *recip_dyC(i,j,bi,bj) - gt_in(i,j,bi,bj)=gt_in(i,j,bi,bj)+ - & smooth2D_Kvy(i,j+1,bi,bj)*dxG(i,j+1,bi,bj)* - & smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i,j+1,bi,bj)* - & (fld_in(i,j,bi,bj)-fld_in(i,j+1,bi,bj))*recip_dyC(i,j+1,bi,bj) + gt_in(i,j,bi,bj) = gt_in(i,j,bi,bj) + & + smooth2D_Kvy(i,j+1,bi,bj)*dxG(i,j+1,bi,bj) + & *smooth2Dmask(i,j,bi,bj)*smooth2Dmask(i,j+1,bi,bj) + & *( fld_in(i,j,bi,bj) - fld_in(i,j+1,bi,bj) ) + & *recip_dyC(i,j+1,bi,bj) - endif + ENDIF ENDDO ENDDO ENDDO ENDDO - do bj = jtlo,jthi - do bi = itlo,ithi -c Adams-Bashforth timestepping - myIter(bi,bj)=iloop-1 - IF ( myIter(bi,bj).EQ.0 ) THEN - ab15=1.0 - ab05=0.0 - ELSE - ab15=1.5+abEps - ab05=-(0.5+abEps) - ENDIF - DO j = 1,sNy - DO i = 1,sNx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) +c Adams-Bashforth timestepping + myIter(bi,bj)=iloop-1 + IF ( myIter(bi,bj).EQ.0 ) THEN + ab15 = 1.0 + ab05 = 0.0 + ELSE + ab15 = 1.5 + abEps + ab05 = -(0.5 + abEps) + ENDIF + DO j = 1,sNy + DO i = 1,sNx c Compute effective G-term with Adams-Bashforth - gt_tmp = ab15*gt_in(i,j,bi,bj) - & + ab05*gtm1_in(i,j,bi,bj) - gtm1_in(i,j,bi,bj) = gt_in(i,j,bi,bj) - gt_in(i,j,bi,bj) = gt_tmp + gt_tmp = ab15*gt_in(i,j,bi,bj) + ab05*gtm1_in(i,j,bi,bj) + gtm1_in(i,j,bi,bj) = gt_in(i,j,bi,bj) + gt_in(i,j,bi,bj) = gt_tmp c time step: - fld_in(i,j,bi,bj)=fld_in(i,j,bi,bj) - & -gt_in(i,j,bi,bj)*recip_rA(i,j,bi,bj)*smooth2DdelTime - gt_in(i,j,bi,bj)=0 + fld_in(i,j,bi,bj) = fld_in(i,j,bi,bj) + & - gt_in(i,j,bi,bj)*recip_rA(i,j,bi,bj)*smooth2DdelTime + gt_in(i,j,bi,bj) = 0. ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( gt_in , myThid ) - CALL EXCH_XY_RL ( fld_in , myThid ) - CALL EXCH_XY_RL ( gtm1_in , myThid ) + CALL EXCH_XY_RL( gt_in, myThid ) + CALL EXCH_XY_RL( fld_in, myThid ) + CALL EXCH_XY_RL( gtm1_in, myThid ) #ifdef ALLOW_TAMC_CHECKPOINTING - endif - enddo - endif - enddo - endif - enddo + ENDIF + ENDDO + ENDIF + ENDDO + ENDIF + ENDDO #else /* ALLOW_TAMC_CHECKPOINTING */ - enddo + ENDDO #endif - end + RETURN + END diff --git a/pkg/smooth/smooth_diff3d.F b/pkg/smooth/smooth_diff3d.F index 3e021f623f..54b431a3b8 100644 --- a/pkg/smooth/smooth_diff3d.F +++ b/pkg/smooth/smooth_diff3d.F @@ -3,7 +3,7 @@ # include "AUTODIFF_OPTIONS.h" #endif - subroutine smooth_diff3D (fld_in,nbt_in,mythid) + SUBROUTINE SMOOTH_DIFF3D( fld_in, nbt_in, myThid ) C *==========================================================* C | SUBROUTINE smooth_diff3D @@ -17,54 +17,49 @@ subroutine smooth_diff3D (fld_in,nbt_in,mythid) #include "GRID.h" #ifdef ALLOW_AUTODIFF_TAMC #include "tamc.h" -#include "tamc_keys.h" #endif /* ALLOW_AUTODIFF_TAMC */ #include "SMOOTH.h" - integer i,j,k, bi,bj, iMin,iMax,jMin,jMax - integer itlo,ithi, jtlo,jthi - integer myThid, myIter(nSx,nSy) - integer mykkey, smoothkey _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL fld_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL gT_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER nbt_in + INTEGER myThid + + INTEGER i, j, k, bi, bj + INTEGER myIter(nSx,nSy), iloop + _RL gT_in (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL gTm1_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL gt_AB(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - integer nbt_in - integer ii, jj, kk - integer iloop, ilev_1, ilev_2, ilev_3 - integer max_lev2, max_lev3, key_in - _RL dTtracerLev_bak(nr) + _RL gt_AB (1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#ifdef ALLOW_TAMC_CHECKPOINTING + INTEGER ilev_1, ilev_2, ilev_3 + INTEGER max_lev2, max_lev3, key_in +#endif +#ifdef ALLOW_TAMC_CHECKPOINTING c for now: useless, because level 3 is recomputed anyway c but : if level3 was computed during the fwd loop by callung c mdsmooth_diff3D (assumes that it would be called c directly by the_main_loop) then I would need to pass key_in c as a parameter, with different values for T, S, ... c in order not to overwrite the same tape - key_in=0 - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + key_in = 0 +#endif - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx gT_in(i,j,k,bi,bj) = 0. _d 0 - gTm1_in(i,j,k,bi,bj) = 0. _d 0 + gTm1_in(i,j,k,bi,bj) = 0. _d 0 ENDDO ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XYZ_RL ( fld_in , myThid ) - CALL EXCH_XYZ_RL ( gt_in , myThid ) - CALL EXCH_XYZ_RL ( gtm1_in , myThid ) + CALL EXCH_XYZ_RL( fld_in, myThid ) + CALL EXCH_XYZ_RL( gt_in, myThid ) + CALL EXCH_XYZ_RL( gtm1_in, myThid ) #ifdef ALLOW_TAMC_CHECKPOINTING @@ -74,8 +69,8 @@ subroutine smooth_diff3D (fld_in,nbt_in,mythid) #ifdef ALLOW_AUTODIFF_TAMC CADJ INIT tape_smooth_lev3 = USER #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_3 = 1,nchklev_3 - if(ilev_3.le.max_lev3) then + DO ilev_3 = 1,nchklev_3 + IF (ilev_3.LE.max_lev3) THEN #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE fld_in = tape_smooth_lev3 , CADJ & key = key_in*max_lev3 + ilev_3 @@ -85,8 +80,8 @@ subroutine smooth_diff3D (fld_in,nbt_in,mythid) #ifdef ALLOW_AUTODIFF_TAMC CADJ INIT tape_smooth_lev2 = USER #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_2 = 1,nchklev_2 - if(ilev_2.le.max_lev2) then + DO ilev_2 = 1,nchklev_2 + IF (ilev_2.LE.max_lev2) THEN #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE fld_in = tape_smooth_lev2 , CADJ & key = key_in*nchklev_2 + ilev_2 @@ -94,13 +89,12 @@ subroutine smooth_diff3D (fld_in,nbt_in,mythid) CADJ & key = key_in*nchklev_2 + ilev_2 #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC -CADJ INIT tape_smooth_lev1 = COMMON, -CADJ & nchklev_1*nsx*nsy*nthreads_chkpt +CADJ INIT tape_smooth_lev1 = COMMON, nchklev_1*nsx*nsy #endif /* ALLOW_AUTODIFF_TAMC */ - do ilev_1 = 1,nchklev_1 - iloop = (ilev_2 - 1)*nchklev_1 + ilev_1 + DO ilev_1 = 1,nchklev_1 + iloop = (ilev_2 - 1)*nchklev_1 + ilev_1 & + (ilev_3 - 1)*nchklev_2*nchklev_1 - if ( iloop .le. nbt_in ) then + IF ( iloop .LE. nbt_in ) THEN #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE gTm1_in(:,:,:,bi,bj) = tape_smooth_lev1 , @@ -108,80 +102,81 @@ subroutine smooth_diff3D (fld_in,nbt_in,mythid) #endif /* ALLOW_AUTODIFF_TAMC */ #else /* ALLOW_TAMC_CHECKPOINTING */ - do iloop=1,nbt_in + DO iloop=1,nbt_in #endif - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1,sNy - DO i=1,sNx - gT_in(i,j,k,bi,bj) = 0. _d 0 + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1,sNy + DO i=1,sNx + gT_in(i,j,k,bi,bj) = 0. _d 0 + ENDDO ENDDO ENDDO ENDDO ENDDO - ENDDO - CALL EXCH_XYZ_RL ( gt_in , myThid ) + CALL EXCH_XYZ_RL( gt_in, myThid ) c compute gT_in: - CALL smooth_rhs( fld_in, gT_in, myThid ) + CALL smooth_rhs( fld_in, gT_in, myThid ) - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) c adams bashfort on gT_in: - myIter(bi,bj)=iloop-1 - DO k=1,Nr - CALL ADAMS_BASHFORTH2( + myIter(bi,bj) = iloop-1 + DO k=1,Nr + CALL ADAMS_BASHFORTH2( I bi, bj, k, Nr, U gT_in(1-OLx,1-OLy,1,bi,bj), U gTm1_in(1-OLx,1-OLy,1,bi,bj), gt_AB, I 0, myIter(bi,bj), myThid ) - ENDDO + ENDDO c time stepping: - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - if (maskc(i,j,k,bi,bj).NE.0.) then - fld_in(i,j,k,bi,bj)=fld_in(i,j,k,bi,bj) - & +smooth3DdelTime*gT_in(i,j,k,bi,bj) - gT_in(i,j,k,bi,bj)=0 - endif + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF (maskC(i,j,k,bi,bj).NE.0.) THEN + fld_in(i,j,k,bi,bj) = fld_in(i,j,k,bi,bj) + & + smooth3DdelTime*gT_in(i,j,k,bi,bj) + gT_in(i,j,k,bi,bj) = 0 + ENDIF + ENDDO ENDDO ENDDO - ENDDO #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE fld_in(:,:,:,bi,bj) = tape_smooth_lev1, CADJ & key = key_in*nchklev_1 + ilev_1 #endif /* ALLOW_AUTODIFF_TAMC */ - if ( smooth3DdoImpldiff ) then + IF ( smooth3DdoImpldiff ) THEN CALL SMOOTH_IMPLDIFF( I bi, bj, 1, sNx, 1, sNy , I smooth3DdelTime, smooth3D_kappaR(1-OLx,1-OLy,1,bi,bj), I recip_hFacC, U fld_in, I myThid ) - endif + ENDIF + ENDDO ENDDO - ENDDO - CALL EXCH_XYZ_RL ( fld_in , myThid ) - CALL EXCH_XYZ_RL ( gt_in , myThid ) - CALL EXCH_XYZ_RL ( gtm1_in , myThid ) + CALL EXCH_XYZ_RL ( fld_in , myThid ) + CALL EXCH_XYZ_RL ( gt_in , myThid ) + CALL EXCH_XYZ_RL ( gtm1_in , myThid ) #ifdef ALLOW_TAMC_CHECKPOINTING - endif - enddo - endif - enddo - endif - enddo + ENDIF + ENDDO + ENDIF + ENDDO + ENDIF + ENDDO #else /* ALLOW_TAMC_CHECKPOINTING */ - enddo + ENDDO #endif + RETURN END diff --git a/pkg/smooth/smooth_filtervar2d.F b/pkg/smooth/smooth_filtervar2d.F index 0aeaff1862..7f23346a28 100644 --- a/pkg/smooth/smooth_filtervar2d.F +++ b/pkg/smooth/smooth_filtervar2d.F @@ -1,6 +1,9 @@ #include "SMOOTH_OPTIONS.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif - subroutine smooth_filtervar2D (smoothOpNb,mythid) + SUBROUTINE SMOOTH_FILTERVAR2D( smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_filtervar2D @@ -11,52 +14,91 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) C *==========================================================* IMPLICIT NONE + +c == global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "SMOOTH.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif - integer smoothOpNb, myThid +c == routine arguments == + INTEGER smoothOpNb, myThid - Real*8 port_rand, port_rand_norm +c == external functions == + REAL*8 port_rand, port_rand_norm EXTERNAL PORT_RAND, PORT_RAND_NORM - integer i,j,k, bi, bj, ii, jj, kk - integer itlo,ithi,jtlo,jthi - integer diLoc,djLoc,dkLoc - integer nbRand, nbt_in - character*( 80) fnamegeneric +c == local variables == + INTEGER i,j,bi, bj, ii, jj + INTEGER diLoc,djLoc + INTEGER nbRand, nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric _RL smoothTmpFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL smoothTmpVar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL smoothTmpMean(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + _RS smooth2Dmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + + INTEGER IL + +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +c == end of interface == + + IL = ILNBLNK( smoothDir ) + +c --- allow a different mask other than maskC +c Note: this is essentially a copy of ctrl_get_mask +c but is repeated here for package independence +c since this subroutine is typically used simply to get +c filter variance without actually running the model + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + IF (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskC') THEN + smooth2Dmask(i,j,bi,bj) = maskC(i,j,1,bi,bj) + ELSEIF (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskW') THEN + smooth2Dmask(i,j,bi,bj) = maskW(i,j,1,bi,bj) + ELSEIF (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskS') THEN + smooth2Dmask(i,j,bi,bj) = maskS(i,j,1,bi,bj) +#ifdef ALLOW_SHELFICE + ELSEIF (smooth2DmaskName(smoothOpNb)(1:5).EQ.'maskI') THEN + smooth2Dmask(i,j,bi,bj) = maskSHI(i,j,1,bi,bj) +#endif + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO c if smooth2Dfilter(smoothOpNb)=0: the filter variance field c has been computed earlier and is already in the run directory c so this routine does not do anything - IF (smooth2Dfilter(smoothOpNb).NE.0) then + IF (smooth2Dfilter(smoothOpNb).NE.0) THEN nbt_in=smooth2Dnbt(smoothOpNb)/2 c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Doperator',smoothOpNb + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Doperator',smoothOpNb CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1,smooth2D_Kux,1,1,mythid) + & 1,smooth2D_Kux,1,1,myThid) CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1,smooth2D_Kvy,2,1,mythid) + & 1,smooth2D_Kvy,2,1,myThid) CALL EXCH_XY_RL ( smooth2D_Kux, myThid ) CALL EXCH_XY_RL ( smooth2D_Kvy, myThid ) c initialize filter variance field: - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx smooth2Dnorm(i,j,bi,bj)=0. @@ -65,7 +107,7 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) ENDDO ENDDO - IF (smooth2Dfilter(smoothOpNb).EQ.2) then + IF (smooth2Dfilter(smoothOpNb).EQ.2) THEN c compute the normalization matrix using the approximate method c c This method can be quite expensive -- so that the approximate @@ -81,8 +123,8 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) DO ii=1,diLoc DO jj=1,djLoc - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx smoothTmpFld(i,j,bi,bj)=0. @@ -106,11 +148,11 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) & "uncomment the line below and comment the stop" CALL ALL_PROC_DIE( myThid ) STOP 'ABNORMAL END: S/R smooth_filtervar2D' -c call adsmooth_diff2D(smoothTmpFld,maskc,nbt_in,mythid) +c call adsmooth_diff2D(smoothTmpFld,smooth2dmask,nbt_in,myThid) c division by sqrt(area)*sqrt(area) [1 to end adj, 1 to begin fwd] - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j = 1,sNy DO i = 1,sNx c division by ~volume: @@ -126,14 +168,14 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) CALL EXCH_XY_RL ( smoothTmpFld,myThid ) c fwd: - CALL smooth_diff2D(smoothTmpFld,maskc,nbt_in,mythid) + CALL smooth_diff2D(smoothTmpFld,smooth2dmask,nbt_in,myThid) c convert variance to normalization factor: - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=jj,sNy,djLoc DO i=ii,sNx,diLoc - if (maskc(i,j,1,bi,bj).NE.0) then + if (smooth2dmask(i,j,bi,bj).NE.0) then smooth2Dnorm(i,j,bi,bj)= & 1/sqrt(smoothTmpFld(i,j,bi,bj)) endif @@ -148,8 +190,8 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) ELSEIF (smooth2Dfilter(smoothOpNb).EQ.1) then c compute the normalization matrix using the approximate method - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx smoothTmpMean(i,j,bi,bj) = 0. _d 0 @@ -168,12 +210,12 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) & 'smooth_filtervar2D: ',ii,' members done out of',nbRand c fill smoothTmpFld with random numbers: - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx smoothTmpFld(i,j,bi,bj) = 0. _d 0 - if (maskC(i,j,1,bi,bj).NE.0) then + if (smooth2dmask(i,j,bi,bj).NE.0) then smoothTmpFld(i,j,bi,bj)=port_rand_norm() endif c division by sqrt(area): @@ -187,11 +229,11 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) CALL EXCH_XY_RL ( smoothTmpFld, myThid ) c smooth random number field - call smooth_diff2D(smoothTmpFld,maskc,nbt_in,mythid) + CALL SMOOTH_DIFF2D(smoothTmpFld,smooth2dmask,nbt_in,myThid) c accumulate statistics (to compute the variance later) - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx smoothTmpVar(i,j,bi,bj)=smoothTmpVar(i,j,bi,bj) @@ -206,11 +248,11 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) ENDDO c compute variance and convert it to normalization factor: - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - if (maskC(i,j,1,bi,bj).NE.0) then + if (smooth2dmask(i,j,bi,bj).NE.0) then smooth2Dnorm(i,j,bi,bj)= & 1/sqrt ( nbRand/(nbRand-1)* ( smoothTmpVar(i,j,bi,bj) - & smoothTmpMean(i,j,bi,bj)*smoothTmpMean(i,j,bi,bj) @@ -224,13 +266,14 @@ subroutine smooth_filtervar2D (smoothOpNb,mythid) ENDIF c write smooth2Dnorm to file: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Dnorm',smoothOpNb + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Dnorm',smoothOpNb CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & 1,smooth2Dnorm,1,1,mythid) + & 1,smooth2Dnorm,1,1,myThid) CALL EXCH_XY_RL ( smooth2Dnorm, myThid ) ENDIF + RETURN END - diff --git a/pkg/smooth/smooth_filtervar3d.F b/pkg/smooth/smooth_filtervar3d.F index a9c89f0d2b..d3d62b6a16 100644 --- a/pkg/smooth/smooth_filtervar3d.F +++ b/pkg/smooth/smooth_filtervar3d.F @@ -1,6 +1,6 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_filtervar3D (smoothOpNb,myThid) + SUBROUTINE SMOOTH_FILTERVAR3D( smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_filtervar3D @@ -11,87 +11,115 @@ subroutine smooth_filtervar3D (smoothOpNb,myThid) C *==========================================================* IMPLICIT NONE +c == global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "SMOOTH.h" - integer smoothOpNb, myThid + INTEGER smoothOpNb, myThid - Real*8 port_rand, port_rand_norm +c == external functions == + REAL*8 port_rand, port_rand_norm EXTERNAL PORT_RAND, PORT_RAND_NORM - integer i,j,k, bi, bj, ii, jj, kk - integer itlo,ithi, jtlo,jthi - integer diLoc, djLoc, dkLoc - integer nbRand, nbt_in - character*( 80) fnamegeneric +c == local variables == + INTEGER i,j,k, bi, bj, ii, jj, kk + INTEGER diLoc, djLoc, dkLoc + INTEGER nbRand, nbt_in + CHARACTER*(MAX_LEN_FNAM) fnamegeneric _RL smoothTmpFld (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL smoothTmpMean(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL smoothTmpVar(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - - jtlo = mybylo(myThid) - jthi = mybyhi(myThid) - itlo = mybxlo(myThid) - ithi = mybxhi(myThid) + _RL smoothTmpVar (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RS smooth3Dmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + + INTEGER IL + +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +c == end of interface == + + IL = ILNBLNK( smoothDir ) + +c-- allow a mask other than maskC + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k = 1,Nr + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + IF (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskC') THEN + smooth3Dmask(i,j,k,bi,bj) = maskC(i,j,k,bi,bj) + ELSEIF (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskW') THEN + smooth3Dmask(i,j,k,bi,bj) = maskW(i,j,k,bi,bj) + ELSEIF (smooth3DmaskName(smoothOpNb)(1:5).EQ.'maskS') THEN + smooth3Dmask(i,j,k,bi,bj) = maskS(i,j,k,bi,bj) + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO c if smooth3Dfilter(smoothOpNb)=0: the filter variance field c has been computed earlier and is already in the run directory c so this routine does not do anything - IF (smooth3Dfilter(smoothOpNb).NE.0) then + IF (smooth3Dfilter(smoothOpNb).NE.0) THEN - nbt_in=smooth3Dnbt(smoothOpNb)/2 + nbt_in = smooth3Dnbt(smoothOpNb)/2 c read smoothing [i.e diffusion] operator: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Doperator',smoothOpNb - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kwx, - & 1, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kwy, - & 2, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kwz, - & 3, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kux, - & 4, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kvy, - & 5, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kuz, - & 6, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kvz, - & 7, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kuy, - & 8, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_Kvx, - & 9, 1, myThid ) - CALL READ_REC_3D_RL( fnamegeneric,smoothprec, Nr,smooth3D_kappaR, - & 10,1, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kwz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kux, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvz, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kuy, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_Kvx, myThid ) - CALL EXCH_XYZ_RL ( smooth3D_kappaR, myThid ) + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Doperator', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kwx, + & 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kwy, + & 2, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kwz, + & 3, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kux, + & 4, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kvy, + & 5, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kuz, + & 6, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kvz, + & 7, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kuy, + & 8, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, smooth3D_Kvx, + & 9, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, Nr, + & smooth3D_kappaR, 10, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kux, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) c initialize filter variance field: - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth3Dnorm(i,j,k,bi,bj)=0. + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth3Dnorm(i,j,k,bi,bj) = 0. + ENDDO ENDDO ENDDO ENDDO ENDDO - ENDDO - IF (smooth3Dfilter(smoothOpNb).EQ.2) then + IF (smooth3Dfilter(smoothOpNb).EQ.2) THEN c compute the normalization matrix using the approximate method c c This method can be quite expensive -- so that the approximate @@ -101,180 +129,185 @@ subroutine smooth_filtervar3D (smoothOpNb,myThid) c c note: the exact method requires the adjoint of smooth_diff2D.F (see below) - diLoc=15 !int(5*smooth_L/smooth_dx) - djLoc=20 !int(5*smooth_L/smooth_dx) - dkLoc=8 - - DO kk=1,dkLoc - DO ii=1,diLoc,2 - DO jj=1,djLoc,2 - - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smoothTmpFld(i,j,k,bi,bj)=0. - ENDDO - ENDDO - ENDDO - - DO k=kk,Nr,dkLoc - DO j=jj,sNy,djLoc - DO i=ii,sNx,diLoc - smoothTmpFld(i,j,k,bi,bj)=1. - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO + diLoc = 15 !int(5*smooth_L/smooth_dx) + djLoc = 20 !int(5*smooth_L/smooth_dx) + dkLoc = 8 + + DO kk=1,dkLoc + DO ii=1,diLoc,2 + DO jj=1,djLoc,2 + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smoothTmpFld(i,j,k,bi,bj) = 0. + ENDDO + ENDDO + ENDDO + DO k=kk,Nr,dkLoc + DO j=jj,sNy,djLoc + DO i=ii,sNx,diLoc + smoothTmpFld(i,j,k,bi,bj) = 1. + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO c note: as we go to adjoint part, we need to have 0 in overlaps c so we must NOT have done an exchange for smoothTmpFld c adjoint: - WRITE(errorMessageUnit,'(A,/,A)' ) - & "you need to have adsmooth_diff3D compiled and then:", - & "uncomment the line below and comment the stop" - CALL ALL_PROC_DIE( myThid ) - STOP 'ABNORMAL END: S/R smooth_filtervar3D' -c call adsmooth_diff3D(smoothTmpFld,nbt_in,myThid) + WRITE(errorMessageUnit,'(A,/,A)' ) + & 'you need to have adsmooth_diff3D compiled and then:', + & 'uncomment the line below and comment the STOP' + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R smooth_filtervar3D' +c CALL adsmooth_diff3D( smoothTmpFld, nbt_in, myThid ) c division by sqrt(volume)*sqrt(volume) [1 to end adj, 1 to begin fwd] - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1,sNy - DO i=1,sNx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1,sNy + DO i=1,sNx c division by ~sqrt(volume): - smoothTmpFld(i,j,k,bi,bj)=smoothTmpFld(i,j,k,bi,bj) - & *(recip_rA(i,j,bi,bj)*recip_drF(k)) - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO + smoothTmpFld(i,j,k,bi,bj) = smoothTmpFld(i,j,k,bi,bj) + & *(recip_rA(i,j,bi,bj)*recip_drF(k)) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO c coming out of adjoint part: overlaps are 0 c going in fwd part: we need to fill them up - CALL EXCH_XYZ_RL ( smoothTmpFld , myThid ) + CALL EXCH_XYZ_RL( smoothTmpFld , myThid ) c fwd: - call smooth_diff3D(smoothTmpFld,nbt_in,myThid) + CALL SMOOTH_DIFF3D( smoothTmpFld, nbt_in, myThid ) c convert variance to normalization factor: - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr,dkLoc - DO j=jj,sNy,djLoc - DO i=ii,sNx,diLoc - if (smoothTmpFld(i,j,k,bi,bj).NE.0.) then - smooth3Dnorm(i,j,k,bi,bj)= - & 1/sqrt(smoothTmpFld(i,j,k,bi,bj)) - endif - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO - - ENDDO !DO ii=1,diLoc - ENDDO !DO jj=1,djLoc - ENDDO !DO kk=1,dkLoc - - ELSEIF (smooth3Dfilter(smoothOpNb).EQ.1) then + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr,dkLoc + DO j=jj,sNy,djLoc + DO i=ii,sNx,diLoc + IF (smoothTmpFld(i,j,k,bi,bj).NE.0.) THEN + smooth3Dnorm(i,j,k,bi,bj) = + & 1/SQRT(smoothTmpFld(i,j,k,bi,bj)) + ENDIF + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + + ENDDO !DO ii=1,diLoc + ENDDO !DO jj=1,djLoc + ENDDO !DO kk=1,dkLoc + + ELSEIF (smooth3Dfilter(smoothOpNb).EQ.1) THEN c compute the normalization matrix using the approximate method - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smoothTmpMean(i,j,k,bi,bj) = 0. _d 0 - smoothTmpVar(i,j,k,bi,bj) = 0. _d 0 + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smoothTmpMean(i,j,k,bi,bj) = 0. _d 0 + smoothTmpVar(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - ENDDO c initialize random number generator - smoothTmpFld(1,1,1,1,1)=port_rand(1.d0) - nbRand=1000 + smoothTmpFld(1,1,1,1,1) = port_rand(1.d0) + nbRand = 1000 - DO ii=1,nbRand - WRITE(standardMessageUnit,'(A,I4,A,I4)') - & 'smooth_filtervar3D: ',ii,' members done out of ',nbRand + DO ii=1,nbRand + WRITE(standardMessageUnit,'(A,I4,A,I4)') + & 'smooth_filtervar3D: ', ii, ' members done out of ', nbRand c fill smoothTmpFld with random numbers: - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smoothTmpFld(i,j,k,bi,bj) = 0. _d 0 - if (maskC(i,j,k,bi,bj).NE.0) then - smoothTmpFld(i,j,k,bi,bj)=port_rand_norm() - endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smoothTmpFld(i,j,k,bi,bj) = 0. _d 0 + IF (smooth3dmask(i,j,k,bi,bj).NE.0) THEN + smoothTmpFld(i,j,k,bi,bj)=port_rand_norm() + ENDIF c division by sqrt(volume): - smoothTmpFld(i,j,k,bi,bj)=smoothTmpFld(i,j,k,bi,bj) - & *sqrt(recip_rA(i,j,bi,bj)*recip_drF(k)) + smoothTmpFld(i,j,k,bi,bj) = smoothTmpFld(i,j,k,bi,bj) + & *SQRT(recip_rA(i,j,bi,bj)*recip_drF(k)) + ENDDO + ENDDO + ENDDO ENDDO ENDDO - ENDDO - ENDDO - ENDDO - CALL EXCH_XYZ_RL ( smoothTmpFld, myThid ) + CALL EXCH_XYZ_RL( smoothTmpFld, myThid ) c smooth random number field - call smooth_diff3D(smoothTmpFld,nbt_in,myThid) + CALL SMOOTH_DIFF3D( smoothTmpFld, nbt_in, myThid ) c accumulate statistics (to compute the variance later) - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smoothTmpVar(i,j,k,bi,bj)=smoothTmpVar(i,j,k,bi,bj) - & +smoothTmpFld(i,j,k,bi,bj)*smoothTmpFld(i,j,k,bi,bj)/nbRand - smoothTmpMean(i,j,k,bi,bj)=smoothTmpMean(i,j,k,bi,bj) - & +smoothTmpFld(i,j,k,bi,bj)/nbRand + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smoothTmpVar(i,j,k,bi,bj) = smoothTmpVar(i,j,k,bi,bj) + & + smoothTmpFld(i,j,k,bi,bj) + & *smoothTmpFld(i,j,k,bi,bj)/nbRand + smoothTmpMean(i,j,k,bi,bj) = smoothTmpMean(i,j,k,bi,bj) + & + smoothTmpFld(i,j,k,bi,bj)/nbRand + ENDDO + ENDDO + ENDDO ENDDO ENDDO - ENDDO - ENDDO - ENDDO - ENDDO +C- ii loop end + ENDDO c compute variance and convert it to normalization factor: - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - if (maskC(i,j,k,bi,bj).NE.0) then - smooth3Dnorm(i,j,k,bi,bj)= - & 1/sqrt ( nbRand/(nbRand-1)* ( smoothTmpVar(i,j,k,bi,bj) - - & smoothTmpMean(i,j,k,bi,bj)*smoothTmpMean(i,j,k,bi,bj) - & ) ) - endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF (smooth3dmask(i,j,k,bi,bj).NE.0) THEN + smooth3Dnorm(i,j,k,bi,bj) = 1/SQRT( + & nbRand/(nbRand-1) + & *( smoothTmpVar(i,j,k,bi,bj) + & - smoothTmpMean(i,j,k,bi,bj)*smoothTmpMean(i,j,k,bi,bj) + & ) ) + ENDIF + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - ENDDO - ENDIF +C end smooth3Dfilter() if block + ENDIF c write smooth3Dnorm_3D to file: - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Dnorm',smoothOpNb - CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, - & Nr, smooth3Dnorm, 1, 1, myThid ) - CALL EXCH_XYZ_RL ( smooth3Dnorm, myThid ) - + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Dnorm', smoothOpNb + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3Dnorm, 1, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3Dnorm, myThid ) + +C end smooth3Dfilter() <> 0 if block ENDIF RETURN diff --git a/pkg/smooth/smooth_hetero2d.F b/pkg/smooth/smooth_hetero2d.F index 61bb71d844..ee0f6556c4 100644 --- a/pkg/smooth/smooth_hetero2d.F +++ b/pkg/smooth/smooth_hetero2d.F @@ -1,12 +1,12 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_hetero2D ( - U fld_in,mask_in,dist_file,nbt_in,mythid) + SUBROUTINE SMOOTH_HETERO2D( + & fld_in, mask_in, dist_file, nbt_in, myThid ) C *==========================================================* C | SUBROUTINE smooth_hetero2D C | o this routine smoothes a 2D field isotropically (except for -C | the land mask) to a space variable length scale. It mostly +C | the land mask) to a space variable length scale. It mostly C | calls smooth_diff2D.F. C *==========================================================* @@ -15,58 +15,52 @@ subroutine smooth_hetero2D ( #include "EEPARAMS.h" #include "GRID.h" #include "PARAMS.h" -c#include "tamc.h" #include "SMOOTH.h" - _RL mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - character*(MAX_LEN_FNAM) dist_file - _RL dist_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - integer nbt_in - integer i,j,bi,bj - integer itlo,ithi - integer jtlo,jthi - integer myThid + _RS mask_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + CHARACTER*(MAX_LEN_FNAM) dist_file + INTEGER nbt_in + INTEGER myThid - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + _RL dist_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER i,j,bi,bj - smooth2DtotTime=nbt_in*smooth2DdelTime + smooth2DtotTime = nbt_in*smooth2DdelTime - CALL READ_REC_3D_RL(dist_file,smoothprec, - & 1,dist_in,1,1,mythid) + CALL READ_REC_3D_RL( dist_file, smoothprec, + & 1, dist_in, 1, 1, myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth2D_Lx(i,j,bi,bj)=dist_in(i,j,bi,bj) - smooth2D_Ly(i,j,bi,bj)=dist_in(i,j,bi,bj) - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth2D_Lx(i,j,bi,bj) = dist_in(i,j,bi,bj) + smooth2D_Ly(i,j,bi,bj) = dist_in(i,j,bi,bj) ENDDO + ENDDO ENDDO ENDDO DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth2D_Kux(i,j,bi,bj)=smooth2D_Lx(i,j,bi,bj)* - & smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 - smooth2D_Kvy(i,j,bi,bj)=smooth2D_Ly(i,j,bi,bj)* - & smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 - ENDDO + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth2D_Kux(i,j,bi,bj) = smooth2D_Lx(i,j,bi,bj) + & *smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 + smooth2D_Kvy(i,j,bi,bj) = smooth2D_Ly(i,j,bi,bj) + & *smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 ENDDO + ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( smooth2D_Kux , myThid ) - CALL EXCH_XY_RL ( smooth2D_Kvy , myThid ) + CALL EXCH_XY_RL( smooth2D_Kux, myThid ) + CALL EXCH_XY_RL( smooth2D_Kvy, myThid ) + + CALL SMOOTH_DIFF2D( fld_in, mask_in, nbt_in, myThid ) - call smooth_diff2D(fld_in,mask_in,nbt_in,mythid) + CALL EXCH_XY_RL( fld_in, myThid ) - CALL EXCH_XY_RL ( fld_in , myThid ) - - end + RETURN + END diff --git a/pkg/smooth/smooth_impldiff.F b/pkg/smooth/smooth_impldiff.F index 40f68a1fde..9e3fedee59 100644 --- a/pkg/smooth/smooth_impldiff.F +++ b/pkg/smooth/smooth_impldiff.F @@ -11,7 +11,6 @@ SUBROUTINE SMOOTH_IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, C | (simplified and with specified time step) C *==========================================================* - C !USES: IMPLICIT NONE C == Global data == @@ -21,27 +20,23 @@ SUBROUTINE SMOOTH_IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, #include "GRID.h" C !INPUT/OUTPUT PARAMETERS: -C == Routine Arguments == - INTEGER bi,bj,iMin,iMax,jMin,jMax - _RL KappaRX(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RS recip_hFac(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL gXnm1(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) + INTEGER bi, bj, iMin, iMax, jMin, jMax + _RL deltaTX + _RL KappaRX(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RS recip_hFac(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL gXnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER myThid C !LOCAL VARIABLES: -C == Local variables == INTEGER i,j,k - _RL deltaTX - _RL gYnm1(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL a(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL b(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL c(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL bet(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) - _RL gam(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) + _RL gYnm1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL a(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL b(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL c(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL bet(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) + _RL gam(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) CEOP -c deltaTX = 1. _d 0 - C-- Initialise DO k=1,Nr DO j=jMin,jMax @@ -137,7 +132,6 @@ SUBROUTINE SMOOTH_IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, ENDIF - DO j=jMin,jMax DO i=iMin,iMax gYNm1(i,j,1,bi,bj) = gXNm1(i,j,1,bi,bj)*bet(i,j,1) @@ -152,7 +146,6 @@ SUBROUTINE SMOOTH_IMPLDIFF( bi, bj, iMin, iMax, jMin, jMax, ENDDO ENDDO - C-- Backward sweep CADJ loop = sequential DO k=Nr-1,1,-1 diff --git a/pkg/smooth/smooth_init2d.F b/pkg/smooth/smooth_init2d.F index 1975587d0c..2df88a69cf 100644 --- a/pkg/smooth/smooth_init2d.F +++ b/pkg/smooth/smooth_init2d.F @@ -1,6 +1,6 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_init2D (smoothOpNb, mythid ) + SUBROUTINE SMOOTH_INIT2D( smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_init2D @@ -8,7 +8,7 @@ subroutine smooth_init2D (smoothOpNb, mythid ) C | by computing/writing the corresponding diffusion operator C *==========================================================* -cgf the choices of smooth2Dtype and smooth2Dsize need comments... +Cgf the choices of smooth2Dtype and smooth2Dsize need comments... IMPLICIT NONE #include "SIZE.h" @@ -17,66 +17,70 @@ subroutine smooth_init2D (smoothOpNb, mythid ) #include "GRID.h" #include "SMOOTH.h" - integer i,j,k, bi, bj - integer itlo,ithi - integer jtlo,jthi - integer myThid - character*( 80) fnamegeneric - integer smoothOpNb + INTEGER smoothOpNb + INTEGER myThid - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) + INTEGER i, j, bi, bj + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + INTEGER IL - smooth2DtotTime=smooth2Dnbt(smoothOpNb)*smooth2DdelTime +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK - if ((smooth2Dtype(smoothOpNb).NE.0).AND. - & (smooth2Dsize(smoothOpNb).EQ.2)) then - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Dscales',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Lx,1,1,mythid) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & 1, smooth2D_Ly,2,1,mythid) - CALL EXCH_XY_RL ( smooth2D_Lx, myThid ) - CALL EXCH_XY_RL ( smooth2D_Ly, myThid ) - else - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth2D_Lx(i,j,bi,bj)=smooth2D_Lx0(smoothOpNb) - smooth2D_Ly(i,j,bi,bj)=smooth2D_Ly0(smoothOpNb) - ENDDO + IL = ILNBLNK( smoothDir ) + + smooth2DtotTime = smooth2Dnbt(smoothOpNb)*smooth2DdelTime + + IF ( (smooth2Dtype(smoothOpNb).NE.0).AND. + & (smooth2Dsize(smoothOpNb).EQ.2) ) THEN + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Dscales',smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Lx, 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Ly, 2, 1, myThid ) + CALL EXCH_XY_RL( smooth2D_Lx, myThid ) + CALL EXCH_XY_RL( smooth2D_Ly, myThid ) + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth2D_Lx(i,j,bi,bj)=smooth2D_Lx0(smoothOpNb) + smooth2D_Ly(i,j,bi,bj)=smooth2D_Ly0(smoothOpNb) + ENDDO + ENDDO ENDDO - ENDDO - ENDDO - endif + ENDDO + ENDIF DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth2D_Kux(i,j,bi,bj)=smooth2D_Lx(i,j,bi,bj)* - & smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 - smooth2D_Kvy(i,j,bi,bj)=smooth2D_Ly(i,j,bi,bj)* - & smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 + smooth2D_Kux(i,j,bi,bj)=smooth2D_Lx(i,j,bi,bj)* + & smooth2D_Lx(i,j,bi,bj)/smooth2DtotTime/2 + smooth2D_Kvy(i,j,bi,bj)=smooth2D_Ly(i,j,bi,bj)* + & smooth2D_Ly(i,j,bi,bj)/smooth2DtotTime/2 ENDDO ENDDO ENDDO ENDDO - CALL EXCH_XY_RL ( smooth2D_Kux , myThid ) - CALL EXCH_XY_RL ( smooth2D_Kvy , myThid ) + CALL EXCH_XY_RL( smooth2D_Kux, myThid ) + CALL EXCH_XY_RL( smooth2D_Kvy, myThid ) -c write diffusion operator to file - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth2Doperator',smoothOpNb - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & 1,smooth2D_Kux,1,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & 1,smooth2D_Kvy,2,1,mythid) +C write diffusion operator to file + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth2Doperator', smoothOpNb + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kux, 1, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & 1, smooth2D_Kvy, 2, 1, myThid ) - end + RETURN + END diff --git a/pkg/smooth/smooth_init3d.F b/pkg/smooth/smooth_init3d.F index 540f00bbd5..6c144f8217 100644 --- a/pkg/smooth/smooth_init3d.F +++ b/pkg/smooth/smooth_init3d.F @@ -1,6 +1,6 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_init3D (smoothOpNb,mythid) + SUBROUTINE SMOOTH_INIT3D( smoothOpNb, myThid ) C *==========================================================* C | SUBROUTINE smooth_init3D @@ -8,13 +8,12 @@ subroutine smooth_init3D (smoothOpNb,mythid) C | by computing/writing the corresponding diffusion operator C *==========================================================* -cgf the choices of smooth3Dtype and smooth3Dsize need comments... -cgf -cgf smooth3DtypeH= 1) HORIZONTAL ALONG GRID AXIS -cgf 2-3) GMREDI TYPES -cgf 4) HORIZONTAL BUT WITH ROTATED AXIS -cgf for now I focus on the simpler smooth3DtypeH=1 case - +Cgf the choices of smooth3Dtype and smooth3Dsize need comments... +Cgf +Cgf smooth3DtypeH= 1) HORIZONTAL ALONG GRID AXIS +Cgf 2-3) GMREDI TYPES +Cgf 4) HORIZONTAL BUT WITH ROTATED AXIS +Cgf for now I focus on the simpler smooth3DtypeH=1 case IMPLICIT NONE #include "SIZE.h" @@ -23,167 +22,168 @@ subroutine smooth_init3D (smoothOpNb,mythid) #include "GRID.h" #include "SMOOTH.h" - integer i,j,k, bi, bj, imin, imax, jmin, jmax - integer itlo,ithi - integer jtlo,jthi - integer myThid - character*( 80) fnamegeneric + INTEGER smoothOpNb + INTEGER myThid + + INTEGER i, j, k, bi, bj + CHARACTER*(MAX_LEN_FNAM) fnamegeneric _RL smooth3D_KzMax - integer ii,jj,kk - integer smoothOpNb - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - - smooth3DtotTime=smooth3Dnbt(smoothOpNb)*smooth3DdelTime - -c vertical smoothing: - - if (smooth3DsizeZ(smoothOpNb).EQ.3) then - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3DscalesZ',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr, smooth3D_Lz,1,1,mythid) - CALL EXCH_XYZ_RL( smooth3D_Lz, mythid ) - else - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth3D_Lz(i,j,k,bi,bj)=smooth3D_Lz0(smoothOpNb) + + INTEGER IL + +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK + + IL = ILNBLNK( smoothDir ) + + smooth3DtotTime = smooth3Dnbt(smoothOpNb)*smooth3DdelTime + +C vertical smoothing: + + IF ( smooth3DsizeZ(smoothOpNb).EQ.3 ) THEN + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3DscalesZ', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Lz, 1, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Lz, myThid ) + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth3D_Lz(i,j,k,bi,bj) = smooth3D_Lz0(smoothOpNb) + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - ENDDO - endif + ENDIF - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth3D_kappaR(i,j,k,bi,bj)=smooth3D_Lz(i,j,k,bi,bj)* - & smooth3D_Lz(i,j,k,bi,bj)/smooth3DtotTime/2 + smooth3D_kappaR(i,j,k,bi,bj) = smooth3D_Lz(i,j,k,bi,bj) + & *smooth3D_Lz(i,j,k,bi,bj)/smooth3DtotTime/2 ENDDO ENDDO ENDDO ENDDO ENDDO -c avoid excessive vertical smoothing: - if (smooth3DsizeZ(smoothOpNb).NE.3) then - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - - smooth3D_KzMax=drC(k) - smooth3D_KzMax=smooth3D_KzMax*smooth3D_KzMax/smooth3DtotTime/2 - if (smooth3D_kappaR(i,j,k,bi,bj).GT.smooth3D_KzMax) then - smooth3D_kappaR(i,j,k,bi,bj)=smooth3D_KzMax - endif +C avoid excessive vertical smoothing: + IF ( smooth3DsizeZ(smoothOpNb).NE.3 ) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth3D_KzMax=drC(k) + smooth3D_KzMax = smooth3D_KzMax*smooth3D_KzMax + & /smooth3DtotTime/2 + IF ( smooth3D_kappaR(i,j,k,bi,bj).GT.smooth3D_KzMax ) THEN + smooth3D_kappaR(i,j,k,bi,bj) = smooth3D_KzMax + ENDIF + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - ENDDO - endif - - CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) - - -c hoizontal smoothing: - - if (smooth3DsizeH(smoothOpNb).EQ.3) then - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3DscalesH',smoothOpNb - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr, smooth3D_Lx,1,1,mythid) - CALL READ_REC_3D_RL(fnamegeneric,smoothprec, - & Nr, smooth3D_Ly,2,1,mythid) - CALL EXCH_XYZ_RL( smooth3D_Lx, mythid ) - CALL EXCH_XYZ_RL( smooth3D_Ly, mythid ) - else - DO bj=jtlo,jthi - DO bi=itlo,ithi - DO k=1,Nr - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - smooth3D_Lx(i,j,k,bi,bj)=smooth3D_Lx0(smoothOpNb) - smooth3D_Ly(i,j,k,bi,bj)=smooth3D_Ly0(smoothOpNb) + ENDIF + + CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) + +C horizontal smoothing: + + IF ( smooth3DsizeH(smoothOpNb).EQ.3 ) THEN + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3DscalesH', smoothOpNb + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Lx, 1, 1, myThid ) + CALL READ_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Ly, 2, 1, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Lx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Ly, myThid ) + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO k=1,Nr + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + smooth3D_Lx(i,j,k,bi,bj) = smooth3D_Lx0(smoothOpNb) + smooth3D_Ly(i,j,k,bi,bj) = smooth3D_Ly0(smoothOpNb) + ENDDO + ENDDO ENDDO ENDDO ENDDO - ENDDO - ENDDO - endif + ENDIF - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth3D_Kuy(i,j,k,bi,bj)=0. - smooth3D_Kvx(i,j,k,bi,bj)=0. - smooth3D_Kwx(i,j,k,bi,bj)=0. - smooth3D_Kwy(i,j,k,bi,bj)=0. - smooth3D_Kwz(i,j,k,bi,bj)=0. - smooth3D_Kux(i,j,k,bi,bj)=smooth3D_Lx(i,j,k,bi,bj)* - & smooth3D_Lx(i,j,k,bi,bj)/smooth3DtotTime/2 - smooth3D_Kvy(i,j,k,bi,bj)=smooth3D_Ly(i,j,k,bi,bj)* - & smooth3D_Ly(i,j,k,bi,bj)/smooth3DtotTime/2 - smooth3D_Kuz(i,j,k,bi,bj)=0. - smooth3D_Kvz(i,j,k,bi,bj)=0. + smooth3D_Kuy(i,j,k,bi,bj) = 0. + smooth3D_Kvx(i,j,k,bi,bj) = 0. + smooth3D_Kwx(i,j,k,bi,bj) = 0. + smooth3D_Kwy(i,j,k,bi,bj) = 0. + smooth3D_Kwz(i,j,k,bi,bj) = 0. + smooth3D_Kux(i,j,k,bi,bj) = smooth3D_Lx(i,j,k,bi,bj) + & *smooth3D_Lx(i,j,k,bi,bj)/smooth3DtotTime/2 + smooth3D_Kvy(i,j,k,bi,bj) = smooth3D_Ly(i,j,k,bi,bj) + & *smooth3D_Ly(i,j,k,bi,bj)/smooth3DtotTime/2 + smooth3D_Kuz(i,j,k,bi,bj) = 0. + smooth3D_Kvz(i,j,k,bi,bj) = 0. ENDDO ENDDO ENDDO ENDDO ENDDO -c is exchange useful here? - - CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kwx, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kwy, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kwz, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kux, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kvy, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kuz, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kvz, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kuy, myThid ) - CALL EXCH_XYZ_RL( smooth3D_Kvx, myThid ) - - -c write diffusion operator to file - - write(fnamegeneric(1:80),'(1a,i3.3)') - & 'smooth3Doperator',smoothOpNb - - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwx,1,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwy,2,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kwz,3,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kux,4,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvy,5,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuz,6,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvz,7,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kuy,8,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_Kvx,9,1,mythid) - CALL WRITE_REC_3D_RL(fnamegeneric,smoothprec, - & Nr,smooth3D_kappaR,10,1,mythid) - - +C is exchange useful here? + + CALL EXCH_XYZ_RL( smooth3D_kappaR, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwx, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kwz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kux, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvz, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kuy, myThid ) + CALL EXCH_XYZ_RL( smooth3D_Kvx, myThid ) + +C write diffusion operator to file + + WRITE(fnamegeneric,'(2A,I3.3)') + & smoothDir(1:IL), + & 'smooth3Doperator', smoothOpNb + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwx, 1, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwy, 2, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kwz, 3, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kux, 4, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvy, 5, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuz, 6, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvz, 7, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kuy, 8, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_Kvx, 9, 1, myThid ) + CALL WRITE_REC_3D_RL( fnamegeneric, smoothprec, + & Nr, smooth3D_kappaR, 10, 1, myThid ) + + RETURN END diff --git a/pkg/smooth/smooth_init_fixed.F b/pkg/smooth/smooth_init_fixed.F index 5e9bf7b3e0..8436b5a7ad 100644 --- a/pkg/smooth/smooth_init_fixed.F +++ b/pkg/smooth/smooth_init_fixed.F @@ -1,6 +1,6 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_init_fixed (mythid) + SUBROUTINE SMOOTH_INIT_FIXED( myThid ) C *==========================================================* C | SUBROUTINE smooth_init_fixed @@ -14,27 +14,19 @@ subroutine smooth_init_fixed (mythid) #include "GRID.h" #include "SMOOTH.h" - integer myThid - integer ikey_bak - integer smoothOpNb + INTEGER myThid - integer i,j,k, bi, bj, imin, imax, jmin, jmax - integer itlo,ithi - integer jtlo,jthi + INTEGER smoothOpNb + INTEGER i, j, k, bi, bj - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - - DO bj=jtlo,jthi - DO bi=itlo,ithi + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - smooth_recip_hFacC(i,j,k,bi,bj)=_recip_hFacC(i,j,k,bi,bj) - smooth_hFacW(i,j,k,bi,bj)=_hFacW(i,j,k,bi,bj) - smooth_hFacS(i,j,k,bi,bj)=_hFacS(i,j,k,bi,bj) + smooth_recip_hFacC(i,j,k,bi,bj) = _recip_hFacC(i,j,k,bi,bj) + smooth_hFacW(i,j,k,bi,bj) = _hFacW(i,j,k,bi,bj) + smooth_hFacS(i,j,k,bi,bj) = _hFacS(i,j,k,bi,bj) ENDDO ENDDO ENDDO @@ -42,31 +34,30 @@ subroutine smooth_init_fixed (mythid) ENDDO DO smoothOpNb=1,smoothOpNbMax - if (smooth2Dtype(smoothOpNb).NE.0) then - call smooth_init2D(smoothOpNb,mythid) - endif - ENDDO + IF (smooth2Dtype(smoothOpNb).NE.0) THEN + CALL smooth_init2D( smoothOpNb, myThid ) + ENDIF + ENDDO DO smoothOpNb=1,smoothOpNbMax - if (smooth2Dtype(smoothOpNb).NE.0) then - call smooth_filtervar2D(smoothOpNb,mythid) - endif + IF (smooth2Dtype(smoothOpNb).NE.0) THEN + CALL smooth_filtervar2D( smoothOpNb, myThid ) + ENDIF ENDDO DO smoothOpNb=1,smoothOpNbMax - if ((smooth3DtypeZ(smoothOpNb).NE.0).OR. - & (smooth3DtypeH(smoothOpNb).NE.0)) then - call smooth_init3D(smoothOpNb,mythid) - endif + IF ( (smooth3DtypeZ(smoothOpNb).NE.0).OR. + & (smooth3DtypeH(smoothOpNb).NE.0) ) THEN + CALL smooth_init3D( smoothOpNb, myThid ) + ENDIF ENDDO DO smoothOpNb=1,smoothOpNbMax - if ((smooth3DtypeZ(smoothOpNb).NE.0).OR. - & (smooth3DtypeH(smoothOpNb).NE.0)) then - call smooth_filtervar3D(smoothOpNb,mythid) - endif + IF ( (smooth3DtypeZ(smoothOpNb).NE.0).OR. + & (smooth3DtypeH(smoothOpNb).NE.0) ) THEN + CALL smooth_filtervar3D( smoothOpNb, myThid ) + ENDIF ENDDO - END - - + RETURN + END diff --git a/pkg/smooth/smooth_init_varia.F b/pkg/smooth/smooth_init_varia.F index 4df19cddb3..e863fab66e 100644 --- a/pkg/smooth/smooth_init_varia.F +++ b/pkg/smooth/smooth_init_varia.F @@ -1,18 +1,16 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_init_varia (mythid) + SUBROUTINE SMOOTH_INIT_VARIA( myThid ) C *==========================================================* -C | SUBROUTINE smooth_init_varia +C | SUBROUTINE SMOOTH_INIT_VARIA C | o Routine that initializes smoothing/correlation operators C | (first version is empty => see smooth_init_fixed.F) C *==========================================================* IMPLICIT NONE - integer myThid - - END - - + INTEGER myThid + RETURN + END diff --git a/pkg/smooth/smooth_readparms.F b/pkg/smooth/smooth_readparms.F index 1a892fa164..2ee044f575 100644 --- a/pkg/smooth/smooth_readparms.F +++ b/pkg/smooth/smooth_readparms.F @@ -1,44 +1,52 @@ #include "SMOOTH_OPTIONS.h" - subroutine smooth_readparms( myThid ) + SUBROUTINE SMOOTH_READPARMS( myThid ) C *==========================================================* -C | SUBROUTINE smooth_readparms +C | SUBROUTINE SMOOTH_READPARMS C | o Routine that reads the pkg/smooth namelist from data.smooth C *==========================================================* - implicit none - -c == global variables == + IMPLICIT NONE +C == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" #include "PARAMS.h" - #include "SMOOTH.h" -c == routine arguments == +C == routine arguments == + INTEGER myThid - integer myThid - -c == local variables == -C msgBuf - Informational/error message buffer -C iUnit - Work variable for IO unit number +C == local variables == +C msgBuf :: Informational/error message buffer +C iUnit :: Work variable for IO unit number CHARACTER*(MAX_LEN_MBUF) msgBuf - INTEGER iUnit, num_file, num_var - integer smoothOpNb + INTEGER iUnit + INTEGER smoothOpNb + + CHARACTER*(MAX_LEN_FNAM) namBuf + INTEGER IL +#ifdef HAVE_SYSTEM + INTEGER pIL +#endif -c == end of interface == +c == functions == + INTEGER ILNBLNK + EXTERNAL ILNBLNK -c-- Read the namelist input. - namelist /smooth_nml/ +C == end of interface == + +C-- Read the namelist input. + NAMELIST /smooth_nml/ & smooth2Dnbt, & smooth2Dtype, & smooth2Dsize, & smooth2D_Lx0, & smooth2D_Ly0, & smooth2Dfilter, + & smooth2DmaskName, & smooth3Dnbt, & smooth3DtypeH, & smooth3DsizeH, @@ -47,7 +55,9 @@ subroutine smooth_readparms( myThid ) & smooth3D_Lx0, & smooth3D_Ly0, & smooth3D_Lz0, - & smooth3Dfilter + & smooth3Dfilter, + & smooth3DmaskName, + & smoothDir C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -63,7 +73,7 @@ subroutine smooth_readparms( myThid ) _BEGIN_MASTER( myThid ) -c-- Set default values. +C-- Set default values. DO smoothOpNb=1,smoothOpNbMax smooth2Dnbt(smoothOpNb)=0 smooth2D_Lx0(smoothOpNb)=0. _d 0 @@ -71,6 +81,7 @@ subroutine smooth_readparms( myThid ) smooth2Dtype(smoothOpNb)=0 smooth2Dsize(smoothOpNb)=0 smooth2Dfilter(smoothOpNb)=0 + smooth2DmaskName(smoothOpNb)(1:5) = 'maskC' smooth3Dnbt(smoothOpNb)=0 smooth3D_Lx0(smoothOpNb)=0. _d 0 @@ -81,12 +92,14 @@ subroutine smooth_readparms( myThid ) smooth3DtypeZ(smoothOpNb)=0 smooth3DsizeZ(smoothOpNb)=0 smooth3Dfilter(smoothOpNb)=0 + smooth3DmaskName(smoothOpNb)(1:5) = 'maskC' ENDDO + smoothDir = ' ' C-- Read settings from model parameter file "data.smooth". WRITE(msgBuf,'(A)') 'SMOOTH_READPARMS: opening data.smooth' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) CALL OPEN_COPY_DATA_FILE( I 'data.smooth', 'SMOOTH_READPARMS', @@ -98,7 +111,7 @@ subroutine smooth_readparms( myThid ) WRITE(msgBuf,'(2A)') 'SMOOTH_READPARMS: ', & 'finished reading data.smooth' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) #ifdef SINGLE_DISK_IO CLOSE(iUnit) @@ -110,51 +123,77 @@ subroutine smooth_readparms( myThid ) WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') '// pkg/smooth configuration' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) + + IF ( smoothDir .NE. ' ' ) THEN + IL = ILNBLNK( smoothDir ) +C append "/", if necessary + IF ( IL.LT.MAX_LEN_FNAM .AND. smoothDir(IL:IL).NE.'/' ) THEN + namBuf(1:IL) = smoothDir(1:IL) + WRITE(smoothDir(1:IL+1),'(2A)') namBuf(1:IL),'/' + ENDIF +#ifdef HAVE_SYSTEM +C create directory + IL = ILNBLNK( smoothDir ) -1 + WRITE(namBuf,'(2A)') ' mkdir -p ', smoothDir(1:IL) + pIL = 1 + ILNBLNK( namBuf ) + WRITE(standardMessageUnit,'(3A)') + & '==> SYSTEM CALL (from SMOOTH_READPARMS): >', + & namBuf(1:pIL), '<' + CALL SYSTEM( namBuf(1:pIL) ) +#else + WRITE(msgBuf,'(2A)') '** WARNING ** SMOOTH_READPARMS: ', + & 'cannot call mkdir -> please create smoothDir manually' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT, myThid ) +#endif + ENDIF DO smoothOpNb=1,smoothOpNbMax IF (smooth2Dtype(smoothOpNb).NE.0) THEN - WRITE(msgBuf,'(A,I2,I6,2f6.0)') 'smooth 2D parameters: ', + WRITE(msgBuf,'(A,I2,I6,2F6.0,A)') 'smooth 2D parameters: ', & smoothOpNb,smooth2Dnbt(smoothOpNb), - & smooth2D_Lx0(smoothOpNb),smooth2D_Ly0(smoothOpNb) + & smooth2D_Lx0(smoothOpNb),smooth2D_Ly0(smoothOpNb), + & smooth2DmaskName(smoothOpNb) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) ENDIF ENDDO DO smoothOpNb=1,smoothOpNbMax IF ((smooth3DtypeZ(smoothOpNb).NE.0).OR. & (smooth3DtypeH(smoothOpNb).NE.0)) then - WRITE(msgBuf,'(A,I2,I6,3f6.0)') 'smooth 3D parameters: ', + WRITE(msgBuf,'(A,I2,I6,3F6.0,A)') 'smooth 3D parameters: ', & smoothOpNb,smooth3Dnbt(smoothOpNb), & smooth3D_Lx0(smoothOpNb),smooth3D_Ly0(smoothOpNb), - & smooth3D_Lz0(smoothOpNb) + & smooth3D_Lz0(smoothOpNb), + & smooth3DmaskName(smoothOpNb) CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) ENDIF ENDDO WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') '// End of pkg/smooth config. summary' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') &'// =======================================================' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) WRITE(msgBuf,'(A)') ' ' CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) + & SQUEEZE_RIGHT, myThid ) _END_MASTER( myThid ) diff --git a/pkg/smooth/smooth_rhs.F b/pkg/smooth/smooth_rhs.F index 828c292071..a1b3c16ed0 100644 --- a/pkg/smooth/smooth_rhs.F +++ b/pkg/smooth/smooth_rhs.F @@ -1,17 +1,16 @@ #include "SMOOTH_OPTIONS.h" C !INTERFACE: ========================================================== - SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) + SUBROUTINE SMOOTH_RHS( fld_in, gt_in, myThid ) C *==========================================================* C | SUBROUTINE smooth_rhs -C | o As part of smooth_diff3D, this routine computes the +C | o As part of smooth_diff3D, this routine computes the C | right hand side of the tendency equation (see below). C | It is made of bits from model/src and pkg/generic_advdiff C | pieced togheter. C *==========================================================* - C !DESCRIPTION: C Calculates the tendency of a tracer due to advection and diffusion. C It calculates the fluxes in each direction indepentently and then @@ -35,19 +34,16 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) IMPLICIT NONE #include "SIZE.h" #include "EEPARAMS.h" -c#include "EESUPPORT.h" #include "PARAMS.h" #include "GRID.h" #include "SMOOTH.h" C !INPUT PARAMETERS: =================================================== + _RL fld_in(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL gt_in (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) INTEGER myThid - _RL fld_in(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - _RL gt_in(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) - C local variables: - INTEGER bi,bj,iMin,iMax,jMin,jMax _RS xA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS yA (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -56,23 +52,20 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) _RL dTdx (nSx,nSy) _RL dTdy (nSx,nSy) INTEGER i,j,k - - _RL fZon (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - _RL fMer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) - _RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nR,nSx,nSy) + _RL fZon (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL fMer (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL fVerT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL df (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - c 1rst k loop: initialization DO k=1,Nr DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - fZon(i,j,k,bi,bj) = 0. _d 0 - fMer(i,j,k,bi,bj) = 0. _d 0 + fZon(i,j,k,bi,bj) = 0. _d 0 + fMer(i,j,k,bi,bj) = 0. _d 0 fVerT(i,j,k,bi,bj) = 0. _d 0 gt_in(i,j,k,bi,bj) = 0. _d 0 ENDDO @@ -89,15 +82,15 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx - df(i,j,bi,bj) = 0. _d 0 + df(i,j,bi,bj) = 0. _d 0 xA(i,j,bi,bj) = _dyG(i,j,bi,bj) & *drF(k)*smooth_hFacW(i,j,k,bi,bj) yA(i,j,bi,bj) = _dxG(i,j,bi,bj) & *drF(k)*smooth_hFacS(i,j,k,bi,bj) - IF (K .EQ. 1) THEN + IF (k .EQ. 1) THEN maskUp(i,j,bi,bj) = 0. ELSE - maskUp(i,j,bi,bj) = + maskUp(i,j,bi,bj) = & maskC(i,j,k-1,bi,bj)*maskC(i,j,k,bi,bj) ENDIF ENDDO @@ -107,7 +100,7 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) DO j=jMin,jMax DO i=iMin,iMax - df(i,j,bi,bj) = df(i,j,bi,bj) + df(i,j,bi,bj) = df(i,j,bi,bj) & -xA(i,j,bi,bj) & *smooth3D_Kux(i,j,k,bi,bj) & *recip_dxC(i,j,bi,bj) @@ -115,8 +108,8 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) ENDDO ENDDO - DO j=jMin,jMax - DO i=iMin,iMax + DO j=jMin,jMax + DO i=iMin,iMax dTdz(bi,bj) = 0.5*( & +0.5*recip_drC(k)* & ( maskC(i-1,j,k,bi,bj)* @@ -129,11 +122,11 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) & (fld_in(i-1,j,k,bi,bj)-fld_in(i-1,j,MIN(k+1,Nr),bi,bj)) & +maskC( i ,j,MIN(k+1,Nr),bi,bj)* & (fld_in( i ,j,k,bi,bj)-fld_in( i ,j,MIN(k+1,Nr),bi,bj)) - & ) ) - df(i,j,bi,bj) = df(i,j,bi,bj) + & ) ) + df(i,j,bi,bj) = df(i,j,bi,bj) & - xA(i,j,bi,bj)*smooth3D_Kuz(i,j,k,bi,bj)*dTdz(bi,bj) - ENDDO ENDDO + ENDDO DO j=jMin,jMax DO i=iMin,iMax @@ -153,23 +146,22 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) & ) df(i,j,bi,bj) = df(i,j,bi,bj) & - xA(i,j,bi,bj)*smooth3D_Kuy(i,j,k,bi,bj)*dTdy(bi,bj) - ENDDO - ENDDO - + ENDDO + ENDDO c /// end for x /// - DO j=jMin,jMax - DO i=iMin,iMax - fZon(i,j,k,bi,bj) = fZon(i,j,k,bi,bj) + df(i,j,bi,bj) + DO j=jMin,jMax + DO i=iMin,iMax + fZon(i,j,k,bi,bj) = fZon(i,j,k,bi,bj) + df(i,j,bi,bj) ENDDO ENDDO - DO j=jMin,jMax - DO i=iMin,iMax - df(i,j,bi,bj) = 0. - ENDDO + DO j=jMin,jMax + DO i=iMin,iMax + df(i,j,bi,bj) = 0. ENDDO + ENDDO c ///gmredi_ytr/// @@ -183,8 +175,8 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) ENDDO ENDDO - DO j=jMin,jMax - DO i=iMin,iMax + DO j=jMin,jMax + DO i=iMin,iMax dTdz(bi,bj) = 0.5*( & +0.5*recip_drC(k)* & ( maskC(i,j-1,k,bi,bj)* @@ -198,10 +190,10 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) & +maskC(i, j ,MIN(k+1,Nr),bi,bj)* & (fld_in(i, j ,k,bi,bj)-fld_in(i, j ,MIN(k+1,Nr),bi,bj)) & ) ) - df(i,j,bi,bj) = df(i,j,bi,bj) - & - yA(i,j,bi,bj)*smooth3D_Kvz(i,j,k,bi,bj)*dTdz(bi,bj) - ENDDO + df(i,j,bi,bj) = df(i,j,bi,bj) + & - yA(i,j,bi,bj)*smooth3D_Kvz(i,j,k,bi,bj)*dTdz(bi,bj) ENDDO + ENDDO DO j=jMin,jMax DO i=iMin,iMax @@ -219,30 +211,28 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) & *recip_dxC(i,j,bi,bj)* & (fld_in(i,j-1,k,bi,bj)-fld_in(i-1,j-1,k,bi,bj))) & ) - df(i,j,bi,bj) = df(i,j,bi,bj) - & - yA(i,j,bi,bj)*smooth3D_Kvx(i,j,k,bi,bj)*dTdx(bi,bj) + df(i,j,bi,bj) = df(i,j,bi,bj) + & - yA(i,j,bi,bj)*smooth3D_Kvx(i,j,k,bi,bj)*dTdx(bi,bj) ENDDO ENDDO - -c /// end for y /// - DO j=jMin,jMax - DO i=iMin,iMax - fMer(i,j,k,bi,bj) = fMer(i,j,k,bi,bj) + df(i,j,bi,bj) - ENDDO +c /// end for y /// + + DO j=jMin,jMax + DO i=iMin,iMax + fMer(i,j,k,bi,bj) = fMer(i,j,k,bi,bj) + df(i,j,bi,bj) ENDDO + ENDDO - DO j=jMin,jMax - DO i=iMin,iMax - df(i,j,bi,bj) = 0. - ENDDO + DO j=jMin,jMax + DO i=iMin,iMax + df(i,j,bi,bj) = 0. ENDDO + ENDDO c /// GAD_DIFF_R /// - if (.NOT. smooth3DdoImpldiff ) then - - IF (k.gt.1) then + IF ( k.GT.1 .AND. .NOT.smooth3DdoImpldiff ) THEN DO j=jMin,jMax DO i=iMin,iMax df(i,j,bi,bj) = @@ -250,66 +240,63 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) & *smooth3D_kappaR(i,j,k,bi,bj)*recip_drC(k) & *(fld_in(i,j,k,bi,bj) & -fld_in(i,j,k-1,bi,bj))*rkSign - ENDDO - ENDDO - ENDIF - - endif + ENDDO + ENDDO + ENDIF c ///gmredi rtrans/// - IF (K.GT.1) THEN - DO j=jMin,jMax - DO i=iMin,iMax - dTdx(bi,bj) = 0.5*( - & +0.5*(maskW(i+1,j,k,bi,bj) - & *recip_dxC(i+1,j,bi,bj)* - & (fld_in(i+1,j,k,bi,bj)-fld_in(i,j,k,bi,bj)) + IF (k.GT.1) THEN + DO j=jMin,jMax + DO i=iMin,iMax + dTdx(bi,bj) = 0.5*( + & +0.5*(maskW(i+1,j,k,bi,bj) + & *recip_dxC(i+1,j,bi,bj)* + & (fld_in(i+1,j,k,bi,bj)-fld_in(i,j,k,bi,bj)) & +maskW(i,j,k,bi,bj) - & *recip_dxC(i,j,bi,bj)* - & (fld_in(i,j,k,bi,bj)-fld_in(i-1,j,k,bi,bj))) - & +0.5*(maskW(i+1,j,k-1,bi,bj) - & *recip_dxC(i+1,j,bi,bj)* - & (fld_in(i+1,j,k-1,bi,bj)-fld_in(i,j,k-1,bi,bj)) + & *recip_dxC(i,j,bi,bj)* + & (fld_in(i,j,k,bi,bj)-fld_in(i-1,j,k,bi,bj))) + & +0.5*(maskW(i+1,j,k-1,bi,bj) + & *recip_dxC(i+1,j,bi,bj)* + & (fld_in(i+1,j,k-1,bi,bj)-fld_in(i,j,k-1,bi,bj)) & +maskW(i,j,k-1,bi,bj) - & *recip_dxC(i,j,bi,bj)* - & (fld_in(i,j,k-1,bi,bj)-fld_in(i-1,j,k-1,bi,bj))) - & ) - - dTdy(bi,bj) = 0.5*( - & +0.5*(maskS(i,j,k,bi,bj) - & *recip_dyC(i,j,bi,bj)* - & (fld_in(i,j,k,bi,bj)-fld_in(i,j-1,k,bi,bj)) - & +maskS(i,j+1,k,bi,bj) - & *recip_dyC(i,j+1,bi,bj)* - & (fld_in(i,j+1,k,bi,bj)-fld_in(i,j,k,bi,bj))) - & +0.5*(maskS(i,j,k-1,bi,bj) - & *recip_dyC(i,j,bi,bj)* - & (fld_in(i,j,k-1,bi,bj)-fld_in(i,j-1,k-1,bi,bj)) - & +maskS(i,j+1,k-1,bi,bj) - & *recip_dyC(i,j+1,bi,bj)* - & (fld_in(i,j+1,k-1,bi,bj)-fld_in(i,j,k-1,bi,bj))) - & ) - - df(i,j,bi,bj) = df(i,j,bi,bj) + & *recip_dxC(i,j,bi,bj)* + & (fld_in(i,j,k-1,bi,bj)-fld_in(i-1,j,k-1,bi,bj))) + & ) + + dTdy(bi,bj) = 0.5*( + & +0.5*(maskS(i,j,k,bi,bj) + & *recip_dyC(i,j,bi,bj)* + & (fld_in(i,j,k,bi,bj)-fld_in(i,j-1,k,bi,bj)) + & +maskS(i,j+1,k,bi,bj) + & *recip_dyC(i,j+1,bi,bj)* + & (fld_in(i,j+1,k,bi,bj)-fld_in(i,j,k,bi,bj))) + & +0.5*(maskS(i,j,k-1,bi,bj) + & *recip_dyC(i,j,bi,bj)* + & (fld_in(i,j,k-1,bi,bj)-fld_in(i,j-1,k-1,bi,bj)) + & +maskS(i,j+1,k-1,bi,bj) + & *recip_dyC(i,j+1,bi,bj)* + & (fld_in(i,j+1,k-1,bi,bj)-fld_in(i,j,k-1,bi,bj))) + & ) + + df(i,j,bi,bj) = df(i,j,bi,bj) & - rA(i,j,bi,bj) & *( smooth3D_Kwx(i,j,k,bi,bj)*dTdx(bi,bj) - & +smooth3D_Kwy(i,j,k,bi,bj)*dTdy(bi,bj) ) + & +smooth3D_Kwy(i,j,k,bi,bj)*dTdy(bi,bj) ) + ENDDO ENDDO - ENDDO ENDIF - c /// end for r /// - IF (K.GT.1) THEN - DO j=jMin,jMax - DO i=iMin,iMax - fVerT(i,j,k-1,bi,bj) = fVerT(i,j,k-1,bi,bj) + - & df(i,j,bi,bj)*maskUp(i,j,bi,bj) + IF (k.GT.1) THEN + DO j=jMin,jMax + DO i=iMin,iMax + fVerT(i,j,k-1,bi,bj) = fVerT(i,j,k-1,bi,bj) + & + df(i,j,bi,bj)*maskUp(i,j,bi,bj) + ENDDO ENDDO - ENDDO ENDIF DO j=jMin,jMax @@ -330,37 +317,38 @@ SUBROUTINE smooth_rhs(fld_in,gt_in,myThid) DO bi=myBxLo(myThid),myBxHi(myThid) c 3rd k loop: Divergence of fluxes DO k=1,Nr - IF (K.GT.1) THEN - DO j=jMin,jMax - DO i=iMin,iMax - gt_in(i,j,k,bi,bj)=gt_in(i,j,k,bi,bj) - & -smooth_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj) - & *( (fZon(i+1,j,k,bi,bj)-fZon(i,j,k,bi,bj)) - & +(fMer(i,j+1,k,bi,bj)-fMer(i,j,k,bi,bj)) - & +(fVerT(i,j,k,bi,bj)-fVerT(i,j,k-1,bi,bj))*rkSign - & ) + IF (k.GT.1) THEN + DO j=jMin,jMax + DO i=iMin,iMax + gt_in(i,j,k,bi,bj) = gt_in(i,j,k,bi,bj) + & -smooth_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj) + & *( (fZon(i+1,j,k,bi,bj)-fZon(i,j,k,bi,bj)) + & +(fMer(i,j+1,k,bi,bj)-fMer(i,j,k,bi,bj)) + & +(fVerT(i,j,k,bi,bj)-fVerT(i,j,k-1,bi,bj))*rkSign + & ) + ENDDO ENDDO - ENDDO - ELSE - DO j=jMin,jMax - DO i=iMin,iMax - gt_in(i,j,k,bi,bj)=gt_in(i,j,k,bi,bj) - & -smooth_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) - & *recip_rA(i,j,bi,bj) - & *( (fZon(i+1,j,k,bi,bj)-fZon(i,j,k,bi,bj)) - & +(fMer(i,j+1,k,bi,bj)-fMer(i,j,k,bi,bj)) - & +(fVerT(i,j,k,bi,bj))*rkSign - & ) + ELSE + DO j=jMin,jMax + DO i=iMin,iMax + gt_in(i,j,k,bi,bj) = gt_in(i,j,k,bi,bj) + & -smooth_recip_hFacC(i,j,k,bi,bj)*recip_drF(k) + & *recip_rA(i,j,bi,bj) + & *( (fZon(i+1,j,k,bi,bj)-fZon(i,j,k,bi,bj)) + & +(fMer(i,j+1,k,bi,bj)-fMer(i,j,k,bi,bj)) + & +(fVerT(i,j,k,bi,bj))*rkSign + & ) + ENDDO ENDDO - ENDDO - ENDIF + ENDIF ENDDO ENDDO ENDDO - CALL EXCH_XYZ_RL ( gt_in , myThid ) + CALL EXCH_XYZ_RL( gt_in, myThid ) + RETURN END diff --git a/pkg/streamice/STREAMICE.h b/pkg/streamice/STREAMICE.h index 82458b5cfc..19c02af762 100644 --- a/pkg/streamice/STREAMICE.h +++ b/pkg/streamice/STREAMICE.h @@ -10,7 +10,7 @@ C streamice_density_ocean_avg :: average ocean density C determining ice floatation C B_glen_isothermal :: (sqrt of) uniform ice stiffness C coefficient (Pa 1/2 yr 1/6) -C n_glen :: Glen's law exponent +C n_glen :: Glen s law exponent C eps_glen_min :: min strain rate in ice viscosity C eps_u_min :: min velocity in nonlinear sliding C law @@ -27,6 +27,9 @@ C (relative residual, unitless) C streamice_nonlin_tol_fp :: fixed point nonlinear solver C tolerance(absolute change, m/a) C streamice_nonlin_tol_adjoint:: fixed-point error of adjoint +C iterative solve (absolute) +C streamice_nonlin_tol_adjoint_rl +C :: fixed-point error of adjoint C iterative solver (relative C reduction) C | streamice_err_norm: the p-norm to find the error of the residual @@ -68,7 +71,7 @@ C streamice_forcing_period :: forcing freq (s) & streamice_vel_update, streamice_cg_tol, streamice_nonlin_tol, & streamice_nonlin_tol_fp, streamice_err_norm, #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) - & streamice_nonlin_tol_adjoint, + & streamice_nonlin_tol_adjoint, streamice_nonlin_tol_adjoint_rl, #endif & streamice_CFL_factor, streamice_adjDump, & streamice_bg_surf_slope_x, streamice_bg_surf_slope_y, @@ -97,6 +100,7 @@ C streamice_forcing_period :: forcing freq (s) #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) _RL streamice_nonlin_tol_adjoint + _RL streamice_nonlin_tol_adjoint_rl #endif _RL streamice_CFL_factor _RL streamice_adjDump @@ -158,8 +162,10 @@ C cholesky preconditioner C for use with PETSC and C BLOCKJACOBI precond ONLY - INTEGER streamice_max_nl - PARAMETER ( streamice_max_nl = 100 ) +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER streamice_max_nl + PARAMETER ( streamice_max_nl = 100 ) +#endif COMMON /STREAMICE_PARMS_I/ & streamice_max_cg_iter, streamice_max_nl_iter, @@ -211,7 +217,7 @@ C C_basal_fric_const C 2DPERIODIC - varies in x- and C y-dirs via streamice_kx_b_init C and streamice_ky_b_init -C STREAMICEGlenConstConfig :: mode of Glen's const init +C STREAMICEGlenConstConfig :: mode of Glen s const init C FILE - via STREAMICEGlenConstFile C UNIFORM - B_glen_isothermal C STREAMICEBdotConfig :: mode of ice-shelf melt rate init @@ -249,9 +255,9 @@ C see EXPLANATION OF MASKS below C C following give \gamma_sig and \gamma_tau factors as described C in appendix of -C Goldberg et al, 2015 -- "Committed retreat of Smith, Pope, and -C Kohler Glaciers over the next 30 years -C inferred by transient model calibration" +C Goldberg et al, 2015 -- Committed retreat of Smith, Pope, and +C Kohler Glaciers over the next 30 years +C inferred by transient model calibration C applied only where stress boundary condition applies C C STREAMICEuNormalStressFile @@ -285,6 +291,8 @@ C MUMPS -- Direct C ILU -- incomplete ILU C (will not work in parallel) C see https://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/PC/ +C STREAMICE_uvel_ext_file :: x-velocity file to replace velocity calc +C STREAMICE_vvel_ext_file :: y-velocity file to replace velocity calc CHARACTER*(MAX_LEN_FNAM) STREAMICEthickFile CHARACTER*(MAX_LEN_FNAM) STREAMICEthickInit @@ -331,6 +339,9 @@ C THE FOLLOWING FILENAMES ARE FOR SPECIFYING buttressing along calving front CHARACTER*(MAX_LEN_FNAM) STREAMICEuFluxTimeDepFile CHARACTER*(MAX_LEN_FNAM) STREAMICEvFluxTimeDepFile + CHARACTER*(MAX_LEN_FNAM) STREAMICE_uvel_ext_file + CHARACTER*(MAX_LEN_FNAM) STREAMICE_vvel_ext_file + #ifdef ALLOW_PETSC c CHARACTER PARAMS FOR PETSC CHARACTER*(MAX_LEN_FNAM) PETSC_SOLVER_TYPE @@ -386,7 +397,9 @@ c CHARACTER PARAMS FOR TRACER & STREAMICEBdotTimeDepFile, & STREAMICEGlenConstConfig, & STREAMICEcostMaskFile, - & STREAMICE_ADV_SCHEME + & STREAMICE_ADV_SCHEME, + & STREAMICE_uvel_ext_file, + & STREAMICE_vvel_ext_file #ifdef ALLOW_PETSC COMMON /PETSC_PARM_C/ @@ -443,8 +456,16 @@ C sliding, implements C "regularised coulomb" C sliding law C Asay-Davis et al (2016), Geosci. Model Dev., -C "Experimental design for three interrelated marine ice -C sheet..." (eqn 11) +C "Experimental design for three interrelated marine ice sheet..." +C (eqn 11) +C STREAMICE_use_log_ctrl :: fields C_basal_friction +C and Bglen (and initialisation +C values) given as the +C *logarithm* of physical values +C (if false, sqrt is used) +C STREAMICE_vel_ext :: impose velocity with external files +C STREAMICE_vel_ext_cgrid :: impose velocity with external files on C grid +C :: (over-rides STREAMICE_vel_ext) LOGICAL STREAMICEison LOGICAL STREAMICE_dump_mdsio @@ -465,6 +486,9 @@ C sheet..." (eqn 11) LOGICAL STREAMICE_apply_firn_correction LOGICAL STREAMICE_alt_driving_stress LOGICAL STREAMICE_allow_reg_coulomb + LOGICAL STREAMICE_use_log_ctrl + LOGICAL STREAMICE_vel_ext + LOGICAL STREAMICE_vel_ext_cgrid #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP) ) #ifdef ALLOW_PETSC LOGICAL STREAMICE_need2createmat @@ -502,6 +526,9 @@ C LOGICAL STREAMICE_hybrid_stress & STREAMICE_allow_cpl, streamice_use_petsc, & STREAMICE_alt_driving_stress, & STREAMICE_allow_reg_coulomb, + & STREAMICE_vel_ext, + & STREAMICE_vel_ext_cgrid, + & STREAMICE_use_log_ctrl, #ifdef STREAMICE_FLOWLINE_BUTTRESS & useStreamiceFlowlineButtr, #endif @@ -610,12 +637,12 @@ C REAL ARRAYS & v_bdry_values_SI, & STREAMICE_dummy_array, & C_basal_friction, -c & A_glen, & B_glen, - & BDOT_streamice, ADOT_streamice, BDOT_pert,! mass balances in meters per year + & BDOT_streamice, ADOT_streamice,BDOT_pert,ADOT_pert, ! mass balances in meters per year & streamice_sigma_coord, streamice_delsigma, & H_streamice_prev, - & u_new_si, v_new_si + & u_new_si, v_new_si, streamice_u_tavg, streamice_v_tavg, + & u_streamice_ext, v_streamice_ext #ifdef ALLOW_STREAMICE_FLUX_CONTROL COMMON /STREAMICE_FLUX_CONTROL/ @@ -698,7 +725,9 @@ c & A_glen, _RL h_vbdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL u_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL v_bdry_values_SI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL C_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL c_basal_friction (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL u_streamice_ext (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL v_streamice_ext (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C _RL A_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef STREAMICE_3D_GLEN_CONST _RL B_glen (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) @@ -771,10 +800,13 @@ C IMPORTANT: MELT RATE IN METERS PER YEAR C POSITIVE WHERE MELTING _RL BDOT_streamice (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL BDOT_pert (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL ADOT_pert (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL H_streamice_prev (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL v_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL u_new_si (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL STREAMICE_dummy_array (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL streamice_u_tavg (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL streamice_v_tavg (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL diff --git a/pkg/streamice/STREAMICE_OPTIONS.h b/pkg/streamice/STREAMICE_OPTIONS.h index 268381c6eb..825b361486 100644 --- a/pkg/streamice/STREAMICE_OPTIONS.h +++ b/pkg/streamice/STREAMICE_OPTIONS.h @@ -1,15 +1,22 @@ -C CPP options file for STREAMICE -C Use this file for selecting options within package "streamice" -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - #ifndef STREAMICE_OPTIONS_H #define STREAMICE_OPTIONS_H #include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" -#ifdef ALLOW_STREAMICE +CBOP +C !ROUTINE: STREAMICE_OPTIONS.h +C !INTERFACE: +C #include "STREAMICE_OPTIONS.h" -C Place CPP define/undef flag here +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for pkg "streamice": +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifdef ALLOW_STREAMICE +C-- Place CPP define/undef flag here #define STREAMICE_CONSTRUCT_MATRIX #undef STREAMICE_HYBRID_STRESS @@ -28,9 +35,19 @@ C only one should be defined #undef STREAMICE_TRACER_AB #undef STREAMICE_SERIAL_TRISOLVE +C- Undocumented Options: +#undef STREAMICE_3D_GLEN_CONST +#undef STREAMICE_COULOMB_SLIDING +#undef STREAMICE_ECSECRYO_DOSUM +#undef STREAMICE_FALSE +#undef STREAMICE_FIRN_CORRECTION +#undef STREAMICE_PETSC_3_8 +#undef STREAMICE_STRESS_BOUNDARY_CONTROL +#undef ALLOW_STREAMICE_TIMEDEP_FORCING +#undef ALLOW_STREAMICE_FLUX_CONTROL + +C- for OpenAD: +#undef ALLOW_STREAMICE_OAD_FP + #endif /* ALLOW_STREAMICE */ #endif /* STREAMICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/pkg/streamice/adstreamice_invert_surf_forthick.F b/pkg/streamice/adstreamice_invert_surf_forthick.F index 868e5f3a39..5fafaab767 100644 --- a/pkg/streamice/adstreamice_invert_surf_forthick.F +++ b/pkg/streamice/adstreamice_invert_surf_forthick.F @@ -1,5 +1,7 @@ -#include "CPP_OPTIONS.h" #include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif SUBROUTINE ADSTRMICE_H_INV ( @@ -28,9 +30,9 @@ SUBROUTINE ADSTRMICE_H_INV ( #ifdef ALLOW_STREAMICE #ifdef ALLOW_AUTODIFF - _RL resid, f, fp, hf, htmp + _RL fp, hf _RL rhoi, rhow, i_r, delta - INTEGER ITER, i, j, bi, bj + INTEGER i, j, bi, bj _RL ETA_GL_STREAMICE EXTERNAL ETA_GL_STREAMICE _RL ETA_GL_PRIME_STREAMICE diff --git a/pkg/streamice/streamice_ad_check_lev1_dir.h b/pkg/streamice/streamice_ad_check_lev1_dir.h index 2b9933e4c6..553eab256a 100644 --- a/pkg/streamice/streamice_ad_check_lev1_dir.h +++ b/pkg/streamice/streamice_ad_check_lev1_dir.h @@ -1,11 +1,11 @@ #ifdef ALLOW_STREAMICE -CADJ STORE area_shelf_streamice +CADJ STORE area_shelf_streamice CADJ & = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE streamice_hmask +CADJ STORE streamice_hmask CADJ & = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE u_streamice +CADJ STORE u_streamice CADJ & = comlev1, key=ikey_dynamics, kind=isbyte -CADJ STORE v_streamice +CADJ STORE v_streamice CADJ & = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE h_streamice CADJ & = comlev1, key=ikey_dynamics, kind=isbyte @@ -41,7 +41,6 @@ CADJ STORE visc_streamice_full CADJ & = comlev1, key=ikey_dynamics, kind=isbyte # endif -# ifdef ALLOW_GENTIM2D_CONTROL CADJ STORE bdot_streamice CADJ & = comlev1, key=ikey_dynamics, kind=isbyte #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL @@ -62,7 +61,6 @@ CADJ & = comlev1, key=ikey_dynamics, kind=isbyte CADJ STORE streamice_v_shear_pert CADJ & = comlev1, key=ikey_dynamics, kind=isbyte #endif -#endif #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING CADJ STORE bdot_streamice0 diff --git a/pkg/streamice/streamice_ad_check_lev2_dir.h b/pkg/streamice/streamice_ad_check_lev2_dir.h index fa00114b9d..651fbe92e7 100644 --- a/pkg/streamice/streamice_ad_check_lev2_dir.h +++ b/pkg/streamice/streamice_ad_check_lev2_dir.h @@ -11,6 +11,7 @@ CADJ STORE streamice_cg_a1 = tapelev2, key = ilev_2 CADJ STORE streamice_cg_a2 = tapelev2, key = ilev_2 CADJ STORE streamice_cg_a3 = tapelev2, key = ilev_2 CADJ STORE streamice_cg_a4 = tapelev2, key = ilev_2 +CADJ STORE bdot_streamice = tapelev2, key = ilev_2 #ifdef ALLOW_STREAMICE_2DTRACER CADJ STORE trac2d @@ -33,10 +34,7 @@ CADJ STORE visc_streamice_full CADJ & = tapelev2, key = ilev_2 # endif -# ifdef ALLOW_GENTIM2D_CONTROL #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL -CADJ STORE bdot_streamice -CADJ & = tapelev2, key = ilev_2 CADJ STORE streamice_u_normal_stress CADJ & = tapelev2, key = ilev_2 CADJ STORE streamice_v_normal_stress @@ -54,7 +52,6 @@ CADJ & = tapelev2, key = ilev_2 CADJ STORE streamice_v_shear_pert CADJ & = tapelev2, key = ilev_2 #endif -# endif #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING CADJ STORE bdot_streamice0 diff --git a/pkg/streamice/streamice_ad_check_lev3_dir.h b/pkg/streamice/streamice_ad_check_lev3_dir.h index 50ae5880cc..38f8f1f9a1 100644 --- a/pkg/streamice/streamice_ad_check_lev3_dir.h +++ b/pkg/streamice/streamice_ad_check_lev3_dir.h @@ -11,6 +11,7 @@ CADJ STORE streamice_cg_a1 = tapelev3, key = ilev_3 CADJ STORE streamice_cg_a2 = tapelev3, key = ilev_3 CADJ STORE streamice_cg_a3 = tapelev3, key = ilev_3 CADJ STORE streamice_cg_a4 = tapelev3, key = ilev_3 +CADJ STORE bdot_streamice = tapelev3, key = ilev_3 #ifdef ALLOW_STREAMICE_2DTRACER CADJ STORE trac2d @@ -34,9 +35,6 @@ CADJ STORE visc_streamice_full CADJ & = tapelev3, key = ilev_3 # endif -# ifdef ALLOW_GENTIM2D_CONTROL -CADJ STORE bdot_streamice -CADJ & = tapelev3, key = ilev_3 #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL CADJ STORE streamice_u_normal_stress CADJ & = tapelev3, key=ilev_3 @@ -55,7 +53,6 @@ CADJ & = tapelev3, key=ilev_3 CADJ STORE streamice_v_shear_pert CADJ & = tapelev3, key=ilev_3 #endif -# endif #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING CADJ STORE bdot_streamice0 diff --git a/pkg/streamice/streamice_ad_check_lev4_dir.h b/pkg/streamice/streamice_ad_check_lev4_dir.h index dc29914ca4..5d63c03f46 100644 --- a/pkg/streamice/streamice_ad_check_lev4_dir.h +++ b/pkg/streamice/streamice_ad_check_lev4_dir.h @@ -7,6 +7,7 @@ CADJ STORE v_streamice = tapelev4, key = ilev_4 CADJ STORE h_streamice = tapelev4, key = ilev_4 CADJ STORE visc_streamice = tapelev4, key = ilev_4 CADJ STORE tau_beta_eff_streamice = tapelev4, key = ilev_4 +CADJ STORE bdot_streamice = tapelev4, key = ilev_4 #ifdef ALLOW_STREAMICE_2DTRACER CADJ STORE trac2d @@ -30,8 +31,6 @@ CADJ STORE visc_streamice_full CADJ & = tapelev4, key = ilev_4 # endif -# ifdef ALLOW_GENTIM2D_CONTROL -CADJ STORE bdot_streamice #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL CADJ & = tapelev4, key = ilev_4 CADJ STORE streamice_u_normal_stress @@ -51,7 +50,6 @@ CADJ & = tapelev4, key = ilev_4 CADJ STORE streamice_v_shear_pert CADJ & = tapelev4, key = ilev_4 #endif -# endif #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING CADJ STORE bdot_streamice0 diff --git a/pkg/streamice/streamice_adv_front.F b/pkg/streamice/streamice_adv_front.F index 48cdccfb31..b143f13da2 100644 --- a/pkg/streamice/streamice_adv_front.F +++ b/pkg/streamice/streamice_adv_front.F @@ -41,7 +41,9 @@ SUBROUTINE STREAMICE_ADV_FRONT ( INTEGER i, j, bi, bj, k, iter_count, iter_rpt INTEGER Gi, Gj INTEGER new_partial(4) +#ifdef ALLOW_AUTODIFF_TAMC INTEGER ikey_front, ikey_1 +#endif _RL iter_flag _RL n_flux_1, n_flux_2 _RL href, rho, partial_vol, tot_flux, hpot @@ -119,19 +121,8 @@ SUBROUTINE STREAMICE_ADV_FRONT ( Gi = (myXGlobalLo-1)+(bi-1)*sNx+i #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_front - 1 - ikey_1 = i + 1 - & + (sNx+2)*(j) - & + (sNx+2)*(sNy+2)*act1 - & + (sNx+2)*(sNy+2)*max1*act2 - & + (sNx+2)*(sNy+2)*max1*max2*act3 - & + (sNx+2)*(sNy+2)*max1*max2*max3*act4 + ikey_1 = bi + (bj-1)*nSx + (ikey_front-1)*nSx*nSy + ikey_1 = i + 1 + (j)*(sNx+2) + (ikey_1-1)*(sNx+2)*(sNy+2) CADJ STORE area_shelf_streamice(i,j,bi,bj) CADJ & = comlev1_stream_ij, key = ikey_1 CADJ STORE h_streamice(i,j,bi,bj) diff --git a/pkg/streamice/streamice_advect_thickness.F b/pkg/streamice/streamice_advect_thickness.F index 915971cb2d..d64ae9c84e 100644 --- a/pkg/streamice/streamice_advect_thickness.F +++ b/pkg/streamice/streamice_advect_thickness.F @@ -73,7 +73,6 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) ENDDO #endif - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy+1 @@ -84,7 +83,7 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) hflux_x_SI (i,j,bi,bj) = 0. _d 0 hflux_y_SI (i,j,bi,bj) = 0. _d 0 - + IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN h_after_uflux_SI(i,j,bi,bj) = 0. _d 0 h_after_vflux_SI(i,j,bi,bj) = 0. _d 0 @@ -96,8 +95,15 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) IF (STREAMICE_ufacemask(i,j,bi,bj).eq.3.0) THEN BCMASKX(i,j,bi,bj) = 3.0 BCVALX(i,j,bi,bj) = h_ubdry_values_SI(i,j,bi,bj) - utrans(i,j,bi,bj) = .5 * ( - & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj)) + IF (STREAMICE_vel_ext_cgrid) THEN + utrans(i,j,bi,bj) = u_streamice_ext(i,j,bi,bj) + ELSEIF (STREAMICE_vel_ext) THEN + utrans(i,j,bi,bj) = .5 * ( + & u_streamice_ext(i,j,bi,bj)+u_streamice_ext(i,j+1,bi,bj)) + ELSE + utrans(i,j,bi,bj) = .5 * ( + & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj)) + ENDIF ELSEIF (STREAMICE_ufacemask(i,j,bi,bj).eq.4.0) THEN IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN uflux = u_flux_bdry_SI(i,j,bi,bj) @@ -119,15 +125,29 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) ELSE BCMASKX(i,j,bi,bj) = 0.0 BCVALX(i,j,bi,bj) = 0. _d 0 - utrans(i,j,bi,bj) = .5 * ( - & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj)) + IF (STREAMICE_vel_ext_cgrid) THEN + utrans(i,j,bi,bj) = u_streamice_ext(i,j,bi,bj) + ELSEIF (STREAMICE_vel_ext) THEN + utrans(i,j,bi,bj) = .5 * ( + & u_streamice_ext(i,j,bi,bj)+u_streamice_ext(i,j+1,bi,bj)) + ELSE + utrans(i,j,bi,bj) = .5 * ( + & u_streamice(i,j,bi,bj)+u_streamice(i,j+1,bi,bj)) + ENDIF ENDIF IF (STREAMICE_vfacemask(i,j,bi,bj).eq.3.0) THEN BCMASKy(i,j,bi,bj) = 3.0 BCVALy(i,j,bi,bj) = h_vbdry_values_SI(i,j,bi,bj) - vtrans(i,j,bi,bj) = .5 * ( - & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj)) + IF (STREAMICE_vel_ext_cgrid) THEN + vtrans(i,j,bi,bj) = v_streamice_ext(i,j,bi,bj) + ELSEIF (STREAMICE_vel_ext) THEN + vtrans(i,j,bi,bj) = .5 * ( + & v_streamice_ext(i,j,bi,bj)+v_streamice_ext(i+1,j,bi,bj)) + ELSE + vtrans(i,j,bi,bj) = .5 * ( + & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj)) + ENDIF ELSEIF (STREAMICE_vfacemask(i,j,bi,bj).eq.4.0) THEN IF (STREAMICE_hmask(i,j,bi,bj).eq.1.0) THEN vflux = v_flux_bdry_SI(i,j,bi,bj) @@ -140,8 +160,6 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) BCVALY(i,j,bi,bj) = vflux vtrans(i,j,bi,bj) = -1.0 ENDIF - - vtrans(i,j,bi,bj) = 1.0 ELSEIF (.not.( & STREAMICE_hmask(i,j,bi,bj).eq.1.0.OR. & STREAMICE_hmask(i,j-1,bi,bj).eq.1.0)) THEN @@ -151,8 +169,15 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) ELSE BCMASKy(i,j,bi,bj) = 0.0 BCVALy(i,j,bi,bj) = 0. _d 0 - vtrans(i,j,bi,bj) = .5 * ( - & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj)) + IF (STREAMICE_vel_ext_cgrid) THEN + vtrans(i,j,bi,bj) = v_streamice_ext(i,j,bi,bj) + ELSEIF (STREAMICE_vel_ext) THEN + vtrans(i,j,bi,bj) = .5 * ( + & v_streamice_ext(i,j,bi,bj)+v_streamice_ext(i+1,j,bi,bj)) + ELSE + vtrans(i,j,bi,bj) = .5 * ( + & v_streamice(i,j,bi,bj)+v_streamice(i+1,j,bi,bj)) + ENDIF ENDIF ENDDO @@ -343,7 +368,7 @@ SUBROUTINE STREAMICE_ADVECT_THICKNESS ( myThid,myIter,time_step ) IF (STREAMICE_allow_cpl) THEN #ifdef ALLOW_SHELFICE MR = -1. * (1.-float_frac_streamice(i,j,bi,bj)) * - & shelfIceFreshWaterFlux(I,J,bi,bj) * irho * + & shelfIceFreshWaterFlux(i,j,bi,bj) * irho * & sec_per_year #else diff --git a/pkg/streamice/streamice_arg_common_petsc.F b/pkg/streamice/streamice_arg_common_petsc.F new file mode 100644 index 0000000000..9f07a28c9f --- /dev/null +++ b/pkg/streamice/streamice_arg_common_petsc.F @@ -0,0 +1,40 @@ +#include "STREAMICE_OPTIONS.h" + + MODULE STREAMICE_PETSC_mod +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +#ifdef ALLOW_STREAMICE +#ifdef ALLOW_PETSC +#ifdef STREAMICE_PETSC_3_8 + +#include "petsc/finclude/petsc.h" +#include "petsc/finclude/petscvec.h" + use petscvec +#include "petsc/finclude/petscmat.h" + use petscmat +#include "petsc/finclude/petscksp.h" + use petscksp +#include "petsc/finclude/petscpc.h" + use petscpc + + Mat matrix + Mat mumpsFac +C COMMON /STREAMICE_PETSC_MATRIX/ +C & matrix, mumpsFac + + KSP ksp +C COMMON /STREAMICE_PETSC_KSP/ +C & ksp + + PC pc +C COMMON /STREAMICE_PETSC_PC/ +C & pc + +#endif /* ALLOW_STREAMICE */ +#endif +#endif + END MODULE + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/pkg/streamice/streamice_cg_solve_petsc.F b/pkg/streamice/streamice_cg_solve_petsc.F index 715407af8d..f21867df4c 100644 --- a/pkg/streamice/streamice_cg_solve_petsc.F +++ b/pkg/streamice/streamice_cg_solve_petsc.F @@ -17,13 +17,34 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( I maxIter, I myThid ) -C /============================================================\ +C *============================================================* C | SUBROUTINE | C | o | -C |============================================================| -C | | -C \============================================================/ +C *============================================================* + +#ifdef ALLOW_PETSC +#ifdef STREAMICE_PETSC_3_8 +C assumes paths +C {petsc_dir}/include/petsc/finclude/ +C {petsc_dir}/include +C in the include statement +#include "petsc/finclude/petsc.h" +#include "petsc/finclude/petscvec.h" + use petscvec +#include "petsc/finclude/petscmat.h" + use petscmat +#include "petsc/finclude/petscksp.h" + use petscksp +#include "petsc/finclude/petscpc.h" + use petscpc + use STREAMICE_PETSC_mod + IMPLICIT NONE +# else IMPLICIT NONE +#include "finclude/petsc.h" +#include "STREAMICE_PETSC.h" +#endif +#endif #include "SIZE.h" #include "EEPARAMS.h" @@ -31,15 +52,6 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( #include "STREAMICE.h" #include "STREAMICE_CG.h" -#ifdef ALLOW_PETSC -#include "finclude/petsc.h" -#include "STREAMICE_PETSC.h" -c UNCOMMENT IF V3.0 -c#include "finclude/petscvec.h" -c#include "finclude/petscmat.h" -c#include "finclude/petscksp.h" -c#include "finclude/petscpc.h" -#endif C === Global variables === C !INPUT/OUTPUT ARGUMENTS @@ -81,11 +93,18 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( INTEGER indices_col(18) INTEGER local_dofs, global_dofs, dof_index, dof_index_col INTEGER local_offset +#ifdef STREAMICE_PETSC_3_8 + INTEGER local_null +#endif c Mat matrix c KSP ksp c PC pc PC subpc +#ifdef STREAMICE_PETSC_3_8 + KSP subksp +#else KSP subksp(1) +#endif Vec rhs Vec solution PetscErrorCode ierr @@ -243,7 +262,11 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( ENDDO ENDDO - call matSetValues (matrix, 1, dof_index, k, indices_col, +#ifdef STREAMICE_PETSC_3_8 + call MatSetValues1n (matrix, 1, dof_index, k, indices_col, +#else + call MatSetValues (matrix, 1, dof_index, k, indices_col, +#endif & mat_values,INSERT_VALUES,ierr) ENDIF @@ -287,7 +310,11 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( ENDDO ENDDO - call matSetValues (matrix, 1, dof_index, k, indices_col, +#ifdef STREAMICE_PETSC_3_8 + call MatSetValues1n (matrix, 1, dof_index, k, indices_col, +#else + call MatSetValues (matrix, 1, dof_index, k, indices_col, +#endif & mat_values,INSERT_VALUES,ierr) ENDIF @@ -300,8 +327,13 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( call MatAssemblyEnd(matrix,MAT_FINAL_ASSEMBLY,ierr) call KSPCreate(PETSC_COMM_WORLD, ksp, ierr) +#ifdef STREAMICE_PETSC_3_8 call KSPSetOperators(ksp, matrix, matrix, - & DIFFERENT_NONZERO_PATTERN, ierr) + & ierr) +#else + call KSPSetOperators(ksp, matrix, matrix, + & DIFFERENT_NONZERO_PATTERN,ierr) +#endif IF (PETSC_PRECOND_TYPE.eq.'MUMPS') then call KSPSetType(ksp,KSPPREONLY,ierr) @@ -333,8 +365,13 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( PRINT *, "PETSC PRECOND: SELECTED BJACOBI" call PCSetType(pc, PCBJACOBI, ierr) call kspsetup (ksp, ierr) - call PCBJacobiGetSubKSP (pc,PETSC_NULL_INTEGER, - & PETSC_NULL_INTEGER, +#ifdef STREAMICE_PETSC_3_8 + local_null =0 !PETSC_NULL_INTEGER + call PCBJacobiGetSubKSP1 (pc,local_null,local_null, +#else + call PCBJacobiGetSubKSP1 (pc,PETSC_NULL_INTEGER, + & PETSC_NULL_INTEGER, +#endif & subksp,ierr); call KSPGetPC (subksp, subpc, ierr) call PCSetType (subpc, PCICC, ierr) @@ -353,19 +390,17 @@ SUBROUTINE STREAMICE_CG_SOLVE_PETSC( call PCGAMGSetCoarseEqLim(pc,10000,ierr) call PCGAMGSetSymGraph(pc, PETSC_TRUE,ierr) call PCGAMGSetNSmooths(pc, 0,ierr) - call PCGAMGSetThreshold(pc, .001,ierr) -c call PCGAMGSetReuseProl(pc,PETSC_FALSE,ierr) +C call PCGAMGSetThreshold(pc, .001,ierr) +C call PCGAMGSetReuseProl(pc,PETSC_FALSE,ierr) call kspsetup (ksp, ierr) CASE ('MUMPS') PRINT *, "PETSC PRECOND: SELECTED MUMPS" call PCSetType(pc,PCLU,ierr) - call PCFactorSetMatSolverPackage(pc,MATSOLVERMUMPS,ierr) - call PCFactorSetUpMatSolverPackage(pc,ierr) + call PCFactorSetMatSolverType(pc,MATSOLVERMUMPS,ierr) + call PCFactorSetUpMatSolverType(pc,ierr) call PCFactorGetMatrix(pc,mumpsFac,ierr) - call MatMumpsSetIcntl(mumpsfac,7,2,ierr) call MatMumpsSetIcntl(mumpsfac,24,1,ierr) -c call MatMumpsSetCntl(mumpsfac,3,2.e-6,ierr) call kspsetup (ksp, ierr) CASE DEFAULT diff --git a/pkg/streamice/streamice_dump.F b/pkg/streamice/streamice_dump.F index c765d810c2..43bc9a3b15 100644 --- a/pkg/streamice/streamice_dump.F +++ b/pkg/streamice/streamice_dump.F @@ -1,6 +1,8 @@ -#include "AD_CONFIG.h" -#include "PACKAGES_CONFIG.h" #include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif +#include "AD_CONFIG.h" CBOP C !ROUTINE: streamice_dump diff --git a/pkg/streamice/streamice_dump_ad.F b/pkg/streamice/streamice_dump_ad.F index 000aa9358a..c3acd68279 100644 --- a/pkg/streamice/streamice_dump_ad.F +++ b/pkg/streamice/streamice_dump_ad.F @@ -1,6 +1,8 @@ -#include "AD_CONFIG.h" -#include "PACKAGES_CONFIG.h" #include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif +#include "AD_CONFIG.h" CBOP C !ROUTINE: adstreamice_dump diff --git a/pkg/streamice/streamice_fields_load.F b/pkg/streamice/streamice_fields_load.F index af0d0b943f..ce1229c6b1 100644 --- a/pkg/streamice/streamice_fields_load.F +++ b/pkg/streamice/streamice_fields_load.F @@ -28,8 +28,6 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( #include "GRID.h" #include "STREAMICE.h" - - C === Routine arguments === C myTime :: Simulation time C myIter :: Simulation timestep number @@ -60,7 +58,7 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( INTEGER nm0, nm1, nmP _RL myRelTime, fac, tmpFac - + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- find which month to use for surface BC @@ -84,15 +82,15 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( CALL GET_PERIODIC_INTERVAL( O nmP, nm0, nm1, tmpFac, fac, I externForcingCycle, streamice_forcing_period, - I deltaTclock, - I myTime+0.5*streamice_forcing_period, + I deltaTClock, + I myTime+0.5*streamice_forcing_period, I myThid ) fac = 1.D0 - fac else CALL GET_PERIODIC_INTERVAL( O nmP, nm0, nm1, tmpFac, fac, I externForcingCycle, streamice_forcing_period, - I deltaTclock, myTime, + I deltaTClock, myTime, I myThid ) endif @@ -103,14 +101,11 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( ENDIF IF ( first ) changed = .false. endif - - C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C- Load new data: - C- Only one thread updates parameter in common block C- Wait for everyone to set loadNewData before Master updates prevMnthIndex _BARRIER @@ -124,25 +119,25 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( IF ( STREAMICEuNormalTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEuNormalTimeDepFile, - & streamice_u_normal_stress1, + & streamice_u_normal_stress1, & nm0,myIter,myThid) ENDIF IF ( STREAMICEvNormalTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEvNormalTimeDepFile, - & streamice_v_normal_stress1, + & streamice_v_normal_stress1, & nm0,myIter,myThid) ENDIF IF ( STREAMICEuShearTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEuShearTimeDepFile, - & streamice_u_shear_stress1, + & streamice_u_shear_stress1, & nm0,myIter,myThid) ENDIF IF ( STREAMICEvShearTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEvShearTimeDepFile, - & streamice_v_shear_stress1, + & streamice_v_shear_stress1, & nm0,myIter,myThid) ENDIF ! PRINT *, "GOT HERE FIELDS LOAD 2" @@ -164,7 +159,7 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( IF ( STREAMICEBdotTimeDepFile .NE. ' ' ) THEN ! PRINT *, "GOT HERE FIELDS LOAD 3", STREAMICEBdotTimeDepFile CALL READ_REC_XY_RL(STREAMICEBdotTimeDepFile, - & bdot_streamice1, + & bdot_streamice1, & nm0,myIter,myThid) ENDIF @@ -179,42 +174,42 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy DO i=1,sNx - - streamice_u_normal_stress0(i,j,bi,bj) = + + streamice_u_normal_stress0(i,j,bi,bj) = & streamice_u_normal_stress1(i,j,bi,bj) - streamice_v_normal_stress0(i,j,bi,bj) = + streamice_v_normal_stress0(i,j,bi,bj) = & streamice_v_normal_stress1(i,j,bi,bj) - streamice_u_shear_stress0(i,j,bi,bj) = + streamice_u_shear_stress0(i,j,bi,bj) = & streamice_u_shear_stress1(i,j,bi,bj) - streamice_v_shear_stress0(i,j,bi,bj) = + streamice_v_shear_stress0(i,j,bi,bj) = & streamice_v_shear_stress1(i,j,bi,bj) ENDDO ENDDO ENDDO ENDDO ! PRINT *, "GOT HERE FIELDS LOAD 4" - + IF ( STREAMICEuNormalTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEuNormalTimeDepFile, - & streamice_u_normal_stress1, + & streamice_u_normal_stress1, & nm1,myIter,myThid) ENDIF IF ( STREAMICEvNormalTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEvNormalTimeDepFile, - & streamice_v_normal_stress1, + & streamice_v_normal_stress1, & nm1,myIter,myThid) ENDIF IF ( STREAMICEuShearTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEuShearTimeDepFile, - & streamice_u_shear_stress1, + & streamice_u_shear_stress1, & nm1,myIter,myThid) ENDIF IF ( STREAMICEvShearTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEvShearTimeDepFile, - & streamice_v_shear_stress1, + & streamice_v_shear_stress1, & nm1,myIter,myThid) ENDIF @@ -237,7 +232,6 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( ENDDO ! PRINT *, "GOT HERE FIELDS LOAD 4" - IF ( STREAMICEuFluxTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEuFluxTimeDepFile, & u_flux_bdry_SI_1, @@ -252,12 +246,11 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( #endif - DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy DO i=1,sNx - bdot_streamice0(i,j,bi,bj) = + bdot_streamice0(i,j,bi,bj) = & bdot_streamice1(i,j,bi,bj) ENDDO ENDDO @@ -266,7 +259,7 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( IF ( STREAMICEBdotTimeDepFile .NE. ' ' ) THEN CALL READ_REC_XY_RL(STREAMICEBdotTimeDepFile, - & bdot_streamice1, + & bdot_streamice1, & nm1,myIter,myThid) ENDIF @@ -278,16 +271,16 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( DO j=1,sNy DO i=1,sNx #ifdef STREAMICE_STRESS_BOUNDARY_CONTROL - streamice_u_normal_stress(i,j,bi,bj) = + streamice_u_normal_stress(i,j,bi,bj) = & fac * streamice_u_normal_stress0(i,j,bi,bj) & + (1-fac) * streamice_u_normal_stress1(i,j,bi,bj) - streamice_v_normal_stress(i,j,bi,bj) = + streamice_v_normal_stress(i,j,bi,bj) = & fac * streamice_v_normal_stress0(i,j,bi,bj) & + (1-fac) * streamice_v_normal_stress1(i,j,bi,bj) - streamice_u_shear_stress(i,j,bi,bj) = + streamice_u_shear_stress(i,j,bi,bj) = & fac * streamice_u_shear_stress0(i,j,bi,bj) & + (1-fac) * streamice_u_shear_stress1(i,j,bi,bj) - streamice_v_shear_stress(i,j,bi,bj) = + streamice_v_shear_stress(i,j,bi,bj) = & fac * streamice_v_shear_stress0(i,j,bi,bj) & + (1-fac) * streamice_v_shear_stress1(i,j,bi,bj) #endif @@ -300,7 +293,7 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( & + (1-fac) * v_flux_bdry_SI_1(i,j,bi,bj) #endif - bdot_streamice (i,j,bi,bj) = + bdot_streamice (i,j,bi,bj) = & fac * bdot_streamice0(i,j,bi,bj) & + (1-fac) * bdot_streamice1(i,j,bi,bj) ENDDO @@ -308,16 +301,18 @@ SUBROUTINE STREAMICE_FIELDS_LOAD( ENDDO ENDDO - CALL EXCH_XY_RL +#ifdef STREAMICE_STRESS_BOUNDARY_CONTROL + CALL EXCH_XY_RL & (streamice_v_shear_stress, myThid) - CALL EXCH_XY_RL + CALL EXCH_XY_RL & (streamice_u_shear_stress, myThid) - CALL EXCH_XY_RL + CALL EXCH_XY_RL & (streamice_v_normal_stress, myThid) - CALL EXCH_XY_RL + CALL EXCH_XY_RL & (streamice_u_normal_stress, myThid) +#endif - _EXCH_XY_RL(bdot_streamice, mythid ) + _EXCH_XY_RL(bdot_streamice, myThid ) #ifdef ALLOW_STREAMICE_FLUX_CONTROL CALL EXCH_XY_RL & (u_flux_bdry_pert, myThid) diff --git a/pkg/streamice/streamice_finalize_petsc.F b/pkg/streamice/streamice_finalize_petsc.F index e88baf48fd..191fb2caca 100644 --- a/pkg/streamice/streamice_finalize_petsc.F +++ b/pkg/streamice/streamice_finalize_petsc.F @@ -4,24 +4,41 @@ CBOP SUBROUTINE STREAMICE_FINALIZE_PETSC -C /============================================================\ +C *============================================================* C | SUBROUTINE | C | o | -C |============================================================| -C | | -C \============================================================/ - IMPLICIT NONE +C *============================================================* C === Global variables === +#ifdef ALLOW_PETSC +#ifdef STREAMICE_PETSC_3_8 +C assumes paths +C {petsc_dir}/include/petsc/finclude/ +C {petsc_dir}/include +C in the include statement +#include "petsc/finclude/petsc.h" +#include "petsc/finclude/petscvec.h" + use petscvec +#include "petsc/finclude/petscmat.h" + use petscmat +#include "petsc/finclude/petscksp.h" + use petscksp +#include "petsc/finclude/petscpc.h" + use petscpc + use STREAMICE_PETSC_mod + IMPLICIT NONE +# else + IMPLICIT NONE +#include "finclude/petsc.h" +#include "STREAMICE_PETSC.h" +#endif +#endif + #include "SIZE.h" #include "GRID.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "STREAMICE.h" -#ifdef ALLOW_PETSC -#include "finclude/petsc.h" -#endif - C !INPUT/OUTPUT ARGUMENTS INTEGER myThid diff --git a/pkg/streamice/streamice_get_vel_fp_err.F b/pkg/streamice/streamice_get_vel_fp_err.F index f19fcc9eea..792f225624 100644 --- a/pkg/streamice/streamice_get_vel_fp_err.F +++ b/pkg/streamice/streamice_get_vel_fp_err.F @@ -1,9 +1,16 @@ #include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, myThid ) + SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, +#ifdef ALLOW_AUTODIFF_TAMC + I ikey_nl, +#endif + I myThid ) C /============================================================\ C | SUBROUTINE | C | o | @@ -19,29 +26,28 @@ SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, myThid ) #include "STREAMICE.h" #include "STREAMICE_CG.h" - C !INPUT/OUTPUT ARGUMENTS _RL err_max +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey_nl +#endif INTEGER myThid #ifdef ALLOW_STREAMICE - INTEGER conv_flag, i, j, bi, bj + INTEGER i, j, bi, bj - INTEGER ikey_nl _RL err_tempu, err_tempv - _RL max_vel, tempu, tempv, err_lastchange, cgtol _RL err_sum _RL err_sum_tile (nSx,nSy) - err_max = 0. _d 0 err_sum = 0. _d 0 DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - err_sum_tile(bi,bj) = 0. _d 0 + err_sum_tile(bi,bj) = 0. _d 0 ENDDO ENDDO @@ -51,6 +57,9 @@ SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, myThid ) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1,sNy DO i=1,sNx +#ifdef ALLOW_AUTODIFF_TAMC +!$TAF STORE err_max = comlev1_stream_nl, key=ikey_nl +#endif err_tempu = 0. _d 0 err_tempv = 0. _d 0 IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN @@ -84,7 +93,7 @@ SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, myThid ) DO j=1,sNy DO i=1,sNx IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN - err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + + err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + #ifdef ALLOW_STREAMICE_OAD_FP & (ABS(U_streamice(i,j,bi,bj)- & u_new_SI(i,j,bi,bj)))**streamice_err_norm @@ -94,7 +103,7 @@ SUBROUTINE STREAMICE_GET_VEL_FP_ERR ( err_max, myThid ) #endif ENDIF IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN - err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + + err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + #ifdef ALLOW_STREAMICE_OAD_FP & (ABS(v_streamice(i,j,bi,bj)- & v_new_SI(i,j,bi,bj)))**streamice_err_norm diff --git a/pkg/streamice/streamice_get_vel_resid_err.F b/pkg/streamice/streamice_get_vel_resid_err.F index 9c13c4f7c1..f7d3b61f3e 100644 --- a/pkg/streamice/streamice_get_vel_resid_err.F +++ b/pkg/streamice/streamice_get_vel_resid_err.F @@ -1,9 +1,16 @@ #include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) + SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, +#ifdef ALLOW_AUTODIFF_TAMC + I ikey_nl, +#endif + I myThid ) C /============================================================\ C | SUBROUTINE | C | o | @@ -21,30 +28,25 @@ SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) C !INPUT/OUTPUT ARGUMENTS _RL err_max - INTEGER myThid, myiter +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER ikey_nl +#endif + INTEGER myThid #ifdef ALLOW_STREAMICE - INTEGER conv_flag, i, j, bi, bj + INTEGER i, j, bi, bj - INTEGER ikey_nl _RL err_tempu, err_tempv - _RL max_vel, tempu, tempv, err_lastchange, cgtol _RL err_sum _RL err_sum_tile (nSx,nSy) - CHARACTER*(MAX_LEN_MBUF) msgBuf - -!#ifdef ALLOW_AUTODIFF_TAMC -!!$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl -!!$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl -!#endif err_max = 0. _d 0 err_sum = 0. _d 0 DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) - err_sum_tile(bi,bj) = 0. _d 0 + err_sum_tile(bi,bj) = 0. _d 0 ENDDO ENDDO @@ -65,11 +67,6 @@ SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) O ubd_SI, O vbd_SI) -!#ifdef ALLOW_AUTODIFF_TAMC -!!$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl -!!$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl -!#endif - CALL STREAMICE_CG_ACTION( myThid, O Au_SI, O Av_SI, @@ -77,17 +74,15 @@ SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) I V_streamice, I 0, sNx+1, 0, sNy+1 ) -!#ifdef ALLOW_AUTODIFF_TAMC -!!$TAF STORE U_streamice = comlev1_stream_nl, key=ikey_nl -!!$TAF STORE V_streamice = comlev1_stream_nl, key=ikey_nl -!#endif - - IF (streamice_err_norm .LT. 1.0) then + IF (streamice_err_norm .LT. 1.0) then DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1,sNy DO i=1,sNx +#ifdef ALLOW_AUTODIFF_TAMC +!$TAF STORE err_max = comlev1_stream_nl, key=ikey_nl +#endif err_tempu = 0. _d 0 err_tempv = 0. _d 0 IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN @@ -109,9 +104,6 @@ SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) ENDDO CALL GLOBAL_MAX_R8 (err_max, myThid) -!#ifdef ALLOW_AUTODIFF_TAMC -!!$TAF STORE err_max = comlev1_stream_nl, key=ikey_dynamics -!#endif ELSE @@ -121,16 +113,16 @@ SUBROUTINE STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) DO i=1,sNx IF (STREAMICE_umask(i,j,bi,bj).eq.1) THEN - err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + + err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + & (ABS (Au_SI(i,j,bi,bj)+0*ubd_SI(i,j,bi,bj) - & taudx_SI(i,j,bi,bj))) ** streamice_err_norm ENDIF IF (STREAMICE_vmask(i,j,bi,bj).eq.1) THEN - err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + + err_sum_tile(bi,bj) = err_sum_tile(bi,bj) + & (ABS (Av_SI(i,j,bi,bj)+0*vbd_SI(i,j,bi,bj) - & taudy_SI(i,j,bi,bj))) ** streamice_err_norm ENDIF - + ENDDO ENDDO ENDDO diff --git a/pkg/streamice/streamice_init_fixed.F b/pkg/streamice/streamice_init_fixed.F index 9ac652e37c..834d8fb2ff 100644 --- a/pkg/streamice/streamice_init_fixed.F +++ b/pkg/streamice/streamice_init_fixed.F @@ -30,18 +30,22 @@ SUBROUTINE STREAMICE_INIT_FIXED( myThid ) #ifdef ALLOW_STREAMICE C !LOCAL VARIABLES: C === Local variables === - INTEGER bi, bj, i, j, Gi, Gj, m, k - INTEGER maskFlag, hmaskFlag + INTEGER bi, bj, i, j, Gi, Gj, m _RL x, y - _RS dummyRS CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef STREAMICE_GEOM_FILE_SETUP + INTEGER maskFlag, hmaskFlag _RS temp_ufacemask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS temp_vfacemask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RS temp_hmask (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif +#ifdef ALLOW_CTRL + _RS dummyRS + INTEGER k +#endif + #ifdef ALLOW_PETSC if (streamice_use_petsc) then CALL STREAMICE_INITIALIZE_PETSC @@ -296,10 +300,19 @@ SUBROUTINE STREAMICE_INIT_FIXED( myThid ) C INIT VALUES FOR METRIC TERMS - k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) * - & (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj)) - k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) * - & (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj)) + IF (.not.usingCartesianGrid) THEN + + k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) * + & (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj)) + k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) * + & (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj)) + + ELSE + + k1AtC_str(i,j,bi,bj) = 0. _d 0 + k2AtC_str(i,j,bi,bj) = 0. _d 0 + + ENDIF #ifdef STREAMICE_HYBRID_STRESS streamice_basal_geom (i,j,bi,bj) = 1.0 @@ -522,7 +535,7 @@ SUBROUTINE STREAMICE_INIT_FIXED( myThid ) ENDIF ! hmask==1 or hmask==0 -#endif +#endif /* ifndef STREAMICE_GEOM_FILE_SETUP */ ENDDO ENDDO @@ -530,7 +543,6 @@ SUBROUTINE STREAMICE_INIT_FIXED( myThid ) ENDDO #ifdef ALLOW_CTRL -! _EXCH_XY_RL(STREAMICE_ctrl_mask, myThid ) CALL ACTIVE_WRITE_GEN_RS( 'maskCtrlL', STREAMICE_ctrl_mask, & 'XY', Nr, 1, .FALSE., 0, myThid, dummyRS ) #endif @@ -555,7 +567,6 @@ SUBROUTINE STREAMICE_INIT_FIXED( myThid ) CALL STREAMICE_INIT_PHI( myThid ) - #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP) ) #ifdef ALLOW_PETSC STREAMICE_need2createmat = .true. diff --git a/pkg/streamice/streamice_init_varia.F b/pkg/streamice/streamice_init_varia.F index 9e1b539506..4ea3771044 100644 --- a/pkg/streamice/streamice_init_varia.F +++ b/pkg/streamice/streamice_init_varia.F @@ -60,6 +60,8 @@ SUBROUTINE STREAMICE_INIT_VARIA( myThid ) area_shelf_streamice(i,j,bi,bj) = 0. _d 0 mass_ice_streamice(i,j,bi,bj) = 0. _d 0 BDOT_streamice(i,j,bi,bj) = 0. _d 0 + u_streamice_ext(i,j,bi,bj) = 0. _d 0 + v_streamice_ext(i,j,bi,bj) = 0. _d 0 #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING BDOT_streamice1(i,j,bi,bj) = 0. _d 0 #endif @@ -422,6 +424,54 @@ SUBROUTINE STREAMICE_INIT_VARIA( myThid ) c finish initialize SMB rates + IF ( STREAMICE_vel_ext.OR.STREAMICE_vel_ext_cgrid ) THEN + + IF ( STREAMICE_uvel_ext_file .NE. ' ' ) THEN + _BARRIER + + CALL READ_FLD_XY_RL( STREAMICE_uvel_ext_file, ' ', + & u_streamice_ext, 0, myThid ) + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + U_streamice(i,j,bi,bj) = U_streamice_ext(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + ELSE + WRITE(msgBuf,'(A)') 'INIT UVEL - FILENAME MISSING' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + ENDIF + + IF ( STREAMICE_vvel_ext_file .NE. ' ' ) THEN + _BARRIER + + CALL READ_FLD_XY_RL( STREAMICE_vvel_ext_file, ' ', + & v_streamice_ext, 0, myThid ) + + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + V_streamice(i,j,bi,bj) = V_streamice_ext(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + ELSE + WRITE(msgBuf,'(A)') 'INIT VVEL - FILENAME MISSING' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + ENDIF + + ENDIF + c initialize basal traction IF ( STREAMICEbasalTracConfig.EQ.'FILE' ) THEN @@ -577,6 +627,8 @@ SUBROUTINE STREAMICE_INIT_VARIA( myThid ) _EXCH_XY_RS(STREAMICE_hmask, myThid ) _EXCH_XY_RL(area_shelf_streamice, myThid ) _EXCH_XY_RL(C_basal_friction, myThid ) + _EXCH_XY_RL(u_streamice_ext, myThid ) + _EXCH_XY_RL(v_streamice_ext, myThid ) #ifndef STREAMICE_3D_GLEN_CONST _EXCH_XY_RL(B_glen, myThid ) #else diff --git a/pkg/streamice/streamice_initialise_petsc.F b/pkg/streamice/streamice_initialise_petsc.F index 8187622fcc..826fd37ba4 100644 --- a/pkg/streamice/streamice_initialise_petsc.F +++ b/pkg/streamice/streamice_initialise_petsc.F @@ -3,20 +3,24 @@ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_INITIALIZE_PETSC -C /============================================================\ + SUBROUTINE STREAMICE_INITIALIZE_PETSC +C *============================================================* C | SUBROUTINE | C | o | -C |============================================================| -C | | -C \============================================================/ - IMPLICIT NONE +C *============================================================* C === Global variables === #ifdef ALLOW_PETSC +#ifdef STREAMICE_PETSC_3_8 +#include "petsc/finclude/petsc.h" +#include "petsc/finclude/petscvec.h" + use petscvec + IMPLICIT NONE +#else + IMPLICIT NONE #include "finclude/petsc.h" #endif - +#endif C !INPUT/OUTPUT ARGUMENTS INTEGER myThid diff --git a/pkg/streamice/streamice_petsc_numerate.F b/pkg/streamice/streamice_petsc_numerate.F index fbebb1fc8d..2cf344b04a 100644 --- a/pkg/streamice/streamice_petsc_numerate.F +++ b/pkg/streamice/streamice_petsc_numerate.F @@ -5,12 +5,10 @@ CBOP SUBROUTINE STREAMICE_PETSC_NUMERATE (myThid) -C /============================================================\ +C *============================================================* C | SUBROUTINE | C | o | -C |============================================================| -C | | -C \============================================================/ +C *============================================================* IMPLICIT NONE C === Global variables === @@ -32,14 +30,14 @@ SUBROUTINE STREAMICE_PETSC_NUMERATE (myThid) INTEGER i, j, bi, bj, ki, kj CHARACTER*(MAX_LEN_MBUF) msgBuf #ifdef ALLOW_USE_MPI - integer mpiRC, mpiMyWid + integer mpiRC #endif + integer mpimywid #ifdef ALLOW_PETSC _RS DoFCount integer n_dofs_proc_loc (0:nPx*nPy-1) integer n_dofs_cum_sum (0:nPx*nPy-1) - DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1,sNy @@ -57,7 +55,6 @@ SUBROUTINE STREAMICE_PETSC_NUMERATE (myThid) DO j=1,sNy DO i=1,sNx - C DOFS ARE NUMBERED AS FOLLOWS ON PROCESSOR DOMAIN: C grid is stepped through in order bj, bi, j, i C 1) if umask(i,j,bi,bj)==1, the counter is updated by 1; @@ -112,7 +109,8 @@ SUBROUTINE STREAMICE_PETSC_NUMERATE (myThid) #else /* ALLOW_USE_MPI */ n_dofs_process (0) = INT(DoFCount)+1 - n_dofs_cum_sum (0) = INT(DoFCount)+1 + n_dofs_cum_sum (0) = 0 + mpimywid = 0 #endif /* ALLOW_USE_MPI */ @@ -138,10 +136,8 @@ SUBROUTINE STREAMICE_PETSC_NUMERATE (myThid) _EXCH_XY_RS(streamice_petsc_dofs_u,myThid) _EXCH_XY_RS(streamice_petsc_dofs_v,myThid) - #endif /* ALLOW_PETSC */ - #endif RETURN END diff --git a/pkg/streamice/streamice_petscmatdestroy.F b/pkg/streamice/streamice_petscmatdestroy.F index 5841b148fd..3b3d2ca517 100644 --- a/pkg/streamice/streamice_petscmatdestroy.F +++ b/pkg/streamice/streamice_petscmatdestroy.F @@ -3,32 +3,40 @@ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_PETSCMATDESTROY( + SUBROUTINE STREAMICE_PETSCMATDESTROY( I myThid ) -C /============================================================\ -C | SUBROUTINE | +C *============================================================* +C | SUBROUTINE | C | o | -C |============================================================| -C | | -C \============================================================/ - IMPLICIT NONE - - - +C *============================================================* #ifdef ALLOW_PETSC +#ifdef STREAMICE_PETSC_3_8 +C assumes paths +C {petsc_dir}/include/petsc/finclude/ +C {petsc_dir}/include +C in the include statement +#include "petsc/finclude/petsc.h" +#include "petsc/finclude/petscvec.h" + use petscvec +#include "petsc/finclude/petscmat.h" + use petscmat +#include "petsc/finclude/petscksp.h" + use petscksp +#include "petsc/finclude/petscpc.h" + use petscpc + use STREAMICE_PETSC_mod + IMPLICIT NONE +# else + IMPLICIT NONE #include "finclude/petsc.h" #include "STREAMICE_PETSC.h" -! UNCOMMENT IF V3.0 -!#include "finclude/petscvec.h" -!#include "finclude/petscmat.h" -!#include "finclude/petscksp.h" -!#include "finclude/petscpc.h" #endif +#endif + C === Global variables === - C !INPUT/OUTPUT ARGUMENTS C cg_Uin, cg_Vin - input and output velocities C cg_Bu, cg_Bv - driving stress @@ -39,6 +47,5 @@ SUBROUTINE STREAMICE_PETSCMATDESTROY( call MatDestroy (matrix, ierr) #endif - RETURN END diff --git a/pkg/streamice/streamice_readparms.F b/pkg/streamice/streamice_readparms.F index 1312bed45f..bf46a9a56e 100644 --- a/pkg/streamice/streamice_readparms.F +++ b/pkg/streamice/streamice_readparms.F @@ -99,6 +99,11 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) & STREAMICE_chkresidconvergence, & STREAMICE_alt_driving_stress, & STREAMICE_allow_reg_coulomb, + & STREAMICE_use_log_ctrl, + & STREAMICE_vel_ext, + & STREAMICE_vel_ext_cgrid, + & STREAMICE_uvel_ext_file, + & STREAMICE_vvel_ext_file, #ifdef STREAMICE_FLOWLINE_BUTTRESS & streamice_buttr_width, & useStreamiceFlowlineButtr, @@ -124,7 +129,8 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) NAMELIST /STREAMICE_PARMOAD/ - & streamice_nonlin_tol_adjoint + & streamice_nonlin_tol_adjoint, + & streamice_nonlin_tol_adjoint_rl #ifdef ALLOW_PETSC & ,STREAMICE_OAD_petsc_reuse, & PETSC_PRECOND_OAD @@ -208,6 +214,7 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) streamice_err_norm = 0. #if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) streamice_nonlin_tol_adjoint = 1.e-14 + streamice_nonlin_tol_adjoint_rl = 1.e-14 #ifdef ALLOW_PETSC PETSC_PRECOND_OAD = 'MUMPS' STREAMICE_OAD_petsc_reuse =.false. @@ -271,6 +278,8 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) STREAMICEvShearTimeDepFile = ' ' STREAMICEuFluxTimeDepFile = ' ' STREAMICEvFluxTimeDepFile = ' ' + STREAMICE_vvel_ext_file = ' ' + STREAMICE_uvel_ext_file = ' ' #ifdef ALLOW_STREAMICE_2DTRACER STREAMICETrac2DBCxFile = '' @@ -289,7 +298,7 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) #ifdef ALLOW_PETSC PETSC_PRECOND_TYPE = 'PCBJACOBI' PETSC_SOLVER_TYPE = 'KSPCG' - streamice_use_petsc = .true. + streamice_use_petsc = .false. #endif STREAMICE_ADV_SCHEME = '' @@ -325,6 +334,9 @@ SUBROUTINE STREAMICE_READPARMS( myThid ) STREAMICE_allow_reg_coulomb = .FALSE. STREAMICE_h_ctrl_const_surf = .FALSE. STREAMICE_allow_cpl = .false. + STREAMICE_use_log_ctrl = .false. + STREAMICE_vel_ext = .FALSE. + STREAMICE_vel_ext_cgrid = .FALSE. c STREAMICE_hybrid_stress= .FALSE. min_x_noflow_NORTH = 0. diff --git a/pkg/streamice/streamice_timestep.F b/pkg/streamice/streamice_timestep.F index d10065ae65..56714e7380 100644 --- a/pkg/streamice/streamice_timestep.F +++ b/pkg/streamice/streamice_timestep.F @@ -40,9 +40,9 @@ SUBROUTINE STREAMICE_TIMESTEP ( myThid, myIter, #ifdef ALLOW_STREAMICE INTEGER i, j, bi, bj, ki, kj -! _RL Iratio, Imin_ratio, time_step_remain, local_u_max -! _RL ratio, min_ratio -! _RL local_v_max, time_step_int, min_time_step +c _RL Iratio, Imin_ratio, time_step_remain, local_u_max +c _RL ratio, min_ratio +c _RL local_v_max, time_step_int, min_time_step CHARACTER*(MAX_LEN_MBUF) msgBuf LOGICAL do_vel, tmp_residcheck, tmp_fpcheck _RL sum_square_vel_tile (nSx,nSy) @@ -54,9 +54,9 @@ SUBROUTINE STREAMICE_TIMESTEP ( myThid, myIter, c************************************** #endif -! time_step_remain = deltaT -! min_time_step = 1000.0 -! n_interm = 0 +c time_step_remain = deltaT +c min_time_step = 1000.0 +c n_interm = 0 do_vel = .false. @@ -72,7 +72,7 @@ SUBROUTINE STREAMICE_TIMESTEP ( myThid, myIter, rv_old_si(i,j,bi,bj) = 0. _d 0 zu_old_si(i,j,bi,bj) = 0. _d 0 zv_old_si(i,j,bi,bj) = 0. _d 0 -! h_after_uflux_si(i,j,bi,bj) = 0. _d 0 +c h_after_uflux_si(i,j,bi,bj) = 0. _d 0 #ifdef STREAMICE_HYBRID_STRESS streamice_taubx (i,j,bi,bj) = 0. _d 0 streamice_tauby (i,j,bi,bj) = 0. _d 0 @@ -93,108 +93,110 @@ SUBROUTINE STREAMICE_TIMESTEP ( myThid, myIter, CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) - CALL STREAMICE_DUMP( mytime, myiter, myThid ) - -! NEW DIRECTIVES - DNG -!#ifdef ALLOW_AUTODIFF_TAMC -!CADJ STORE float_frac_streamice = comlev1, key = ikey_dynamics, -!CADJ & kind = isbyte -!CADJ STORE surf_el_streamice = comlev1, key = ikey_dynamics, -!CADJ & kind = isbyte -!CADJ STORE base_el_streamice = comlev1, key = ikey_dynamics, -!CADJ & kind = isbyte -!#endif -! NEW DIRECTIVES - DNG - + CALL STREAMICE_DUMP( myTime, myIter, myThid ) +c NEW DIRECTIVES - DNG +c#ifdef ALLOW_AUTODIFF_TAMC +cCADJ STORE float_frac_streamice = comlev1, key = ikey_dynamics, +cCADJ & kind = isbyte +cCADJ STORE surf_el_streamice = comlev1, key = ikey_dynamics, +cCADJ & kind = isbyte +cCADJ STORE base_el_streamice = comlev1, key = ikey_dynamics, +cCADJ & kind = isbyte +c#endif +c NEW DIRECTIVES - DNG do_vel = DIFFERENT_MULTIPLE( streamice_vel_update, & myTime, deltaT ) - if (myIter.eq.0) then + IF (myIter.eq.0) THEN CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid ) CALL WRITE_FLD_XY_RL & ("surf_el_init","",surf_el_streamice,0,myThid) - endif + ENDIF CALL STREAMICE_VELMASK_UPD (myThid) - - #ifdef ALLOW_STREAMICE_TIMEDEP_FORCING CALL STREAMICE_FIELDS_LOAD( myTime, myIter, myThid ) #endif + IF (.not.(STREAMICE_vel_ext.OR.STREAMICE_vel_ext_cgrid)) THEN #if (defined (ALLOW_STREAMICE_OAD_FP)) CALL STREAMICE_VEL_SOLVE_OPENAD ( myThid, & streamice_max_nl_iter, & streamice_max_cg_iter, - & myiter ) + & myIter ) #else - if (streamice_maxnliter_cpl.eq.0 .OR. myIter.eq.0) then - + IF (streamice_maxnliter_cpl.eq.0 .OR. myIter.eq.0) THEN - CALL STREAMICE_VEL_SOLVE( myThid, + CALL STREAMICE_VEL_SOLVE( myThid, & streamice_max_nl_iter, & streamice_max_cg_iter, - & myiter ) + & myIter ) #ifdef STREAMICE_ECSECRYO_DOSUM - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - sum_square_vel_tile (bi,bj) = 0. _d 0 - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - if (streamice_hmask(i,j,bi,bj).eq.1) then - sum_square_vel_tile (bi,bj) = - & sum_square_vel_tile (bi,bj) + - & U_streamice(i,j,bi,bj)**2 + - & V_streamice(i,j,bi,bj)**2 - endif + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + sum_square_vel_tile (bi,bj) = 0. _d 0 + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx + IF (streamice_hmask(i,j,bi,bj).eq.1) THEN + sum_square_vel_tile (bi,bj) = + & sum_square_vel_tile (bi,bj) + + & U_streamice(i,j,bi,bj)**2 + + & V_streamice(i,j,bi,bj)**2 + ENDIF + ENDDO ENDDO ENDDO ENDDO - ENDDO - CALL GLOBAL_SUM_TILE_RL( - & sum_square_vel_tile, sum_square_vel, myThid ) - WRITE(msgBuf,'(A,I3,A,1PE22.14)') 'ECSE_CRYO_SUM ', myIter, ', ', - & sum_square_vel - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + CALL GLOBAL_SUM_TILE_RL( + & sum_square_vel_tile, sum_square_vel, myThid ) + WRITE(msgBuf,'(A,I3,A,1PE22.14)') 'ECSE_CRYO_SUM ', myIter, ', ' + & ,sum_square_vel + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) #endif + ELSEIF (do_vel) THEN - elseif (do_vel) then - - CALL STREAMICE_VEL_SOLVE( myThid, + CALL STREAMICE_VEL_SOLVE( myThid, & streamice_maxnliter_cpl, & streamice_maxcgiter_cpl, - & myiter ) - endif + & myIter ) + ENDIF - +#endif /* OAD_FP */ -#endif + ELSE + + WRITE(msgBuf,'(A)') + & 'STREAMICE_TIMESTEP: bypassing velocity solve' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + + ENDIF - if(.not.STREAMICE_diagnostic_only) THEN + IF (.not.STREAMICE_diagnostic_only) THEN CALL STREAMICE_ADVECT_THICKNESS ( myThid, myIter, deltaT ) - endif + ENDIF -! CALL AT END INSTEAD OF BEGINNING - DNG +c CALL AT END INSTEAD OF BEGINNING - DNG CALL STREAMICE_UPD_FFRAC_UNCOUPLED ( myThid ) -! print *, "GOT HERE TIMESTEP ", H_streamice(1,50,1,1) -! call write_fld_xy_rl("h_got_here","",H_streamice,0,mythid) -! call write_fld_xy_rl("u_got_here","",U_streamice,0,mythid) -! call write_fld_xy_rl("v_got_here","",V_streamice,0,mythid) +c print *, "GOT HERE TIMESTEP ", H_streamice(1,50,1,1) +c call write_fld_xy_rl("h_got_here","",H_streamice,0,myThid) +c call write_fld_xy_rl("u_got_here","",U_streamice,0,myThid) +c call write_fld_xy_rl("v_got_here","",V_streamice,0,myThid) CALL TIMER_STOP('STREAMICE_TIMESTEP [FORWARD_STEP]', & myThid) diff --git a/pkg/streamice/streamice_vel_phi.F b/pkg/streamice/streamice_vel_phi.F index 5c36c128e9..cbeb255355 100644 --- a/pkg/streamice/streamice_vel_phi.F +++ b/pkg/streamice/streamice_vel_phi.F @@ -6,11 +6,11 @@ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_VEL_PHI ( - I myThid, - I maxNLIter, - I maxCGiter, - I cgtol, + SUBROUTINE STREAMICE_VEL_PHI ( + I myThid, + I maxNLIter, + I maxCGiter, + I cgtol, O cg_iters, O max_err) C /============================================================\ @@ -31,10 +31,6 @@ SUBROUTINE STREAMICE_VEL_PHI ( !#include "finclude/petsc.h" !#endif -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT ARGUMENTS INTEGER myThid INTEGER maxNLIter @@ -44,8 +40,7 @@ SUBROUTINE STREAMICE_VEL_PHI ( INTEGER cg_iters _RL max_err -#ifdef ALLOW_STREAMICE -#if (defined (ALLOW_STREAMICE_OAD_FP)) +#ifdef ALLOW_STREAMICE_OAD_FP C LOCAL VARIABLES @@ -65,13 +60,12 @@ SUBROUTINE STREAMICE_VEL_PHI ( CALL STREAMICE_GET_VEL_RESID_ERR_OAD (max_err,myThid) - DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) DO j=1-OLy,sNy+OLy DO i=1-OLx,sNx+OLx u_new_SI(i,j,bi,bj) = U_streamice(i,j,bi,bj) - v_new_SI(i,j,bi,bj) = V_streamice(i,j,bi,bj) + v_new_SI(i,j,bi,bj) = V_streamice(i,j,bi,bj) ENDDO ENDDO ENDDO @@ -91,7 +85,6 @@ SUBROUTINE STREAMICE_VEL_PHI ( CALL STREAMICE_TAUB (myThid) #endif -#endif -#endif +#endif /* ALLOW_STREAMICE_OAD_FP */ RETURN END diff --git a/pkg/streamice/streamice_vel_phistage.F b/pkg/streamice/streamice_vel_phistage.F index caff3c7975..cca0dd4258 100644 --- a/pkg/streamice/streamice_vel_phistage.F +++ b/pkg/streamice/streamice_vel_phistage.F @@ -7,22 +7,22 @@ CBOP #ifndef ALLOW_OPENAD - SUBROUTINE STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + SUBROUTINE STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O CONVERGED, O err_last_change, O err_init, I isinloop) #else - SUBROUTINE STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + SUBROUTINE STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O adj_iter, O CONVERGED, @@ -47,11 +47,6 @@ SUBROUTINE STREAMICE_VEL_PHISTAGE ( #include "STREAMICE.h" #include "STREAMICE_CG.h" - -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT ARGUMENTS INTEGER myThid INTEGER maxNLIter @@ -68,15 +63,14 @@ SUBROUTINE STREAMICE_VEL_PHISTAGE ( LOGICAL adj_CONVERGED #endif -#ifdef ALLOW_STREAMICE -#if (defined (ALLOW_STREAMICE_OAD_FP)) +#ifdef ALLOW_STREAMICE_OAD_FP C LOCAL VARIABLES INTEGER i, j, bi, bj, cg_iters, m _RL err_max_fp, errmax CHARACTER*(MAX_LEN_MBUF) msgBuf - + #ifdef ALLOW_OPENAD adj_iter=0 adj_CONVERGED=.false. @@ -97,7 +91,6 @@ SUBROUTINE STREAMICE_VEL_PHISTAGE ( if (STREAMICE_chkresidconvergence) then - WRITE(msgBuf,'(A,E15.7)') 'err/err_init', err_max/err_init CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, SQUEEZE_RIGH +T , 1) @@ -130,7 +123,6 @@ SUBROUTINE STREAMICE_VEL_PHISTAGE ( CONVERGED = .true. ENDIF - endif DO bj = myByLo(myThid), myByHi(myThid) @@ -152,16 +144,11 @@ SUBROUTINE STREAMICE_VEL_PHISTAGE ( ENDDO ENDDO - C!!!!!!!!!!! end conv check - end if end if - - -#endif -#endif +#endif /* ALLOW_STREAMICE_OAD_FP */ RETURN END diff --git a/pkg/streamice/streamice_vel_solve.F b/pkg/streamice/streamice_vel_solve.F index 7901f3a0b6..9893df0461 100644 --- a/pkg/streamice/streamice_vel_solve.F +++ b/pkg/streamice/streamice_vel_solve.F @@ -128,7 +128,11 @@ SUBROUTINE STREAMICE_VEL_SOLVE( myThid, maxNLIter, maxCGiter, if (STREAMICE_chkresidconvergence .or. & (streamice_maxnliter_cpl.eq.0 .and. myIter.eq.0)) then - CALL STREAMICE_GET_VEL_RESID_ERR ( err_init, myThid ) + CALL STREAMICE_GET_VEL_RESID_ERR ( err_init, +#ifdef ALLOW_AUTODIFF_TAMC + I ikey_dynamics, +#endif + I myThid ) #ifdef ALLOW_AUTODIFF_TAMC c$TAF STORE err_init = comlev1, key=ikey_dynamics @@ -148,7 +152,10 @@ SUBROUTINE STREAMICE_VEL_SOLVE( myThid, maxNLIter, maxCGiter, C START NL ITER. LOOP C------------------------------------------------------------------- - +#ifdef ALLOW_TAPENADE +C Tapenade Pragma for fixed point iters +C$NOAD FP-LOOP +#endif DO iter=1,maxNLIter C To avoid using "exit", loop goes through all iterations @@ -270,7 +277,11 @@ SUBROUTINE STREAMICE_VEL_SOLVE( myThid, maxNLIter, maxCGiter, if (STREAMICE_chkresidconvergence .or. & (streamice_maxnliter_cpl.eq.0 .and. myIter.eq.0)) then - CALL STREAMICE_GET_VEL_RESID_ERR ( err_max, myThid ) + CALL STREAMICE_GET_VEL_RESID_ERR ( err_max, +#ifdef ALLOW_AUTODIFF_TAMC + I ikey_nl, +#endif + I myThid ) WRITE(msgBuf,'(A,E15.7)') 'err/err_init', & err_max/err_init @@ -286,7 +297,11 @@ SUBROUTINE STREAMICE_VEL_SOLVE( myThid, maxNLIter, maxCGiter, if (STREAMICE_chkfixedptconvergence .or. & (streamice_maxnliter_cpl.eq.0 .and. myIter.eq.0)) then - CALL STREAMICE_GET_VEL_FP_ERR ( err_max_fp, myThid ) + CALL STREAMICE_GET_VEL_FP_ERR ( err_max_fp, +#ifdef ALLOW_AUTODIFF_TAMC + I ikey_nl, +#endif + I myThid ) DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) diff --git a/pkg/streamice/streamice_vel_solve_openad.F b/pkg/streamice/streamice_vel_solve_openad.F index f0d736576f..ce8b54ffd9 100644 --- a/pkg/streamice/streamice_vel_solve_openad.F +++ b/pkg/streamice/streamice_vel_solve_openad.F @@ -6,7 +6,7 @@ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP - SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, + SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, & maxCGiter, myiter ) C /============================================================\ C | SUBROUTINE | @@ -23,11 +23,6 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, #include "STREAMICE.h" #include "STREAMICE_CG.h" - -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -#endif - C !INPUT/OUTPUT ARGUMENTS INTEGER myThid INTEGER maxNLIter @@ -39,9 +34,9 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, C LOCAL VARIABLES INTEGER i, j, k, l, bi, bj, loopiter - CHARACTER*(MAX_LEN_MBUF) msgBuf + CHARACTER*(MAX_LEN_MBUF) msgBuf - INTEGER NL_iter + INTEGER NL_iter _RL err_last_change, cgtol, err_init LOGICAL CONVERGED @@ -50,15 +45,12 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, LOGICAL ADJ_CONVERGED #endif - - #ifdef ALLOW_STREAMICE_OAD_FP isinloop0 =0 isinloop1 =1 isinloop2 =2 #endif - #if (defined (ALLOW_STREAMICE_OAD_FP)) IF (STREAMICE_ppm_driving_stress) THEN @@ -79,7 +71,7 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, nl_iter = 0 CONVERGED = .false. err_last_change = 1 _d 1 - + _EXCH_XY_RL( taudx_SI , myThid ) _EXCH_XY_RL( taudy_SI , myThid ) @@ -90,7 +82,7 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, U_streamice (i,j,bi,bj)=U_streamice (i,j,bi,bj) & + 0*u_new_SI (i,j,bi,bj) V_streamice (i,j,bi,bj)=V_streamice (i,j,bi,bj) - & + 0*v_new_SI (i,j,bi,bj) + & + 0*v_new_SI (i,j,bi,bj) ENDDO ENDDO ENDDO @@ -113,27 +105,25 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT , 1) - endif - - + endif #ifndef ALLOW_OPENAD - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O CONVERGED, O err_last_change, O err_init, I isinloop0) #else - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O adj_iter, O CONVERGED, @@ -151,22 +141,22 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, ! IF (.not.CONVERGED) THEN #ifndef ALLOW_OPENAD - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O CONVERGED, O err_last_change, O err_init, I isinloop1) #else - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O adj_iter, O CONVERGED, @@ -181,32 +171,31 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, ! DO j=1-OLy,sNy+OLy ! DO i=1-OLx,sNx+OLx ! U_streamice (i,j,bi,bj)=u_new_SI (i,j,bi,bj) - ! V_streamice (i,j,bi,bj)=v_new_SI (i,j,bi,bj) + ! V_streamice (i,j,bi,bj)=v_new_SI (i,j,bi,bj) ! ENDDO ! ENDDO ! ENDDO !ENDDO - ENDDO #ifndef ALLOW_OPENAD - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O CONVERGED, O err_last_change, O err_init, I isinloop2) #else - CALL STREAMICE_VEL_PHISTAGE ( - I myThid, - I maxNLIter, - I maxCGiter, - O cgtol, + CALL STREAMICE_VEL_PHISTAGE ( + I myThid, + I maxNLIter, + I maxCGiter, + O cgtol, O nL_iter, O adj_iter, O CONVERGED, @@ -216,8 +205,6 @@ SUBROUTINE STREAMICE_VEL_SOLVE_OPENAD ( myThid, maxNLIter, I isinloop2) #endif - - C END NL ITER. LOOP C------------------------------------------------------------------- diff --git a/pkg/streamice/streamice_visc_beta.F b/pkg/streamice/streamice_visc_beta.F index e9dafbfc54..76abc476f8 100644 --- a/pkg/streamice/streamice_visc_beta.F +++ b/pkg/streamice/streamice_visc_beta.F @@ -6,7 +6,7 @@ SUBROUTINE STREAMICE_VISC_BETA ( myThid ) C /============================================================\ -C | SUBROUTINE | +C | SUBROUTINE | C | o | C |============================================================| C | | @@ -28,50 +28,49 @@ SUBROUTINE STREAMICE_VISC_BETA ( myThid ) #ifdef ALLOW_STREAMICE - C LOCAL VARIABLES INTEGER i, j, bi, bj, k, l _RL ux, uy, vx, vy, exx, eyy, exy, second_inv, unorm - _RL umid, vmid + _RL umid, vmid, C_fric_val, Bglen_val DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy DO i=1,sNx IF (STREAMICE_hmask(i,j,bi,bj).eq.1) THEN - + umid = 0 vmid = 0 DO k=0,1 DO l=0,1 - umid = umid + 0.25 * - & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) * + umid = umid + 0.25 * + & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) * & recip_rA(i,j,bi,bj) * - & U_streamice(i+k,j+l,bi,bj) - vmid = vmid + 0.25 * - & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) * + & U_streamice(i+k,j+l,bi,bj) + vmid = vmid + 0.25 * + & dxG(i,j+l,bi,bj)*dyG(i+k,j,bi,bj) * & recip_rA(i,j,bi,bj) * & V_streamice(i+k,j+l,bi,bj) ENDDO ENDDO - - ux = (U_streamice(i+1,j+1,bi,bj) + + + ux = (U_streamice(i+1,j+1,bi,bj) + & U_streamice(i+1,j,bi,bj) - & U_streamice(i,j+1,bi,bj) - & U_streamice(i,j,bi,bj)) / & (2. * dxF(i,j,bi,bj)) - vx = (V_streamice(i+1,j+1,bi,bj) + + vx = (V_streamice(i+1,j+1,bi,bj) + & V_streamice(i+1,j,bi,bj) - & V_streamice(i,j+1,bi,bj) - & V_streamice(i,j,bi,bj)) / & (2. * dxF(i,j,bi,bj)) - uy = (U_streamice(i+1,j+1,bi,bj) - + uy = (U_streamice(i+1,j+1,bi,bj) - & U_streamice(i+1,j,bi,bj) + & U_streamice(i,j+1,bi,bj) - & U_streamice(i,j,bi,bj)) / & (2. * dyF(i,j,bi,bj)) - vy = (V_streamice(i+1,j+1,bi,bj) - + vy = (V_streamice(i+1,j+1,bi,bj) - & V_streamice(i+1,j,bi,bj) + & V_streamice(i,j+1,bi,bj) - & V_streamice(i,j,bi,bj)) / @@ -79,36 +78,50 @@ SUBROUTINE STREAMICE_VISC_BETA ( myThid ) exx = ux + k1AtC_str(i,j,bi,bj)*vmid eyy = vy + k2AtC_str(i,j,bi,bj)*umid - exy = .5*(uy+vx) + + exy = .5*(uy+vx) + & k1AtC_str(i,j,bi,bj)*umid + k2AtC_str(i,j,bi,bj)*vmid !A_glen_isothermal, n_glen, eps_glen_min, - second_inv = + second_inv = & sqrt(exx**2+eyy**2+exx*eyy+exy**2+eps_glen_min**2) - - visc_streamice(i,j,bi,bj) = #ifdef STREAMICE_3D_GLEN_CONST - & .5 * (B_glen(i,j,1,bi,bj))**2 * + IF (.not.STREAMICE_use_log_ctrl) THEN + Bglen_val = B_glen(i,j,1,bi,bj)**2 + ELSE + Bglen_val = exp(B_glen(i,j,1,bi,bj)) + ENDIF #else - & .5 * (B_glen(i,j,bi,bj))**2 * + IF (.not.STREAMICE_use_log_ctrl) THEN + Bglen_val = B_glen(i,j,bi,bj)**2 + ELSE + Bglen_val = exp(B_glen(i,j,bi,bj)) + ENDIF #endif + + visc_streamice(i,j,bi,bj) = + & .5 * Bglen_val * & second_inv**((1-n_glen)/n_glen) * H_streamice(i,j,bi,bj) + if (.not.STREAMICE_use_log_ctrl) THEN + C_fric_val = C_basal_friction(i,j,bi,bj)**2 + else + C_fric_val = exp(C_basal_friction(i,j,bi,bj)) + endif + unorm = sqrt(umid**2+vmid**2+eps_u_min**2) - tau_beta_eff_streamice(i,j,bi,bj) = - & C_basal_friction(i,j,bi,bj)**2 * + tau_beta_eff_streamice(i,j,bi,bj) = + & C_fric_val * & unorm ** (n_basal_friction-1.0) * & float_frac_streamice (i,j,bi,bj) - + ENDIF ENDDO ENDDO ENDDO ENDDO - #endif RETURN END diff --git a/pkg/streamice/streamice_visc_beta_hybrid.F b/pkg/streamice/streamice_visc_beta_hybrid.F index f7cb7d7d95..b29f75713d 100644 --- a/pkg/streamice/streamice_visc_beta_hybrid.F +++ b/pkg/streamice/streamice_visc_beta_hybrid.F @@ -40,12 +40,14 @@ SUBROUTINE STREAMICE_VISC_BETA_HYBRID ( myThid ) _RL ux, uy, vx, vy, exx, eyy, exy, unorm, second_inv _RL ub, vb, fb, mean_u_shear, mean_v_shear, umid, vmid _RL omega_temp (Nr+1), u_shear(Nr+1), v_shear(Nr+1) + _RL C_fric_val, Bglen_val #ifdef STREAMICE_FLOWLINE_BUTTRESS _RL buttr_param, pwr #endif #ifdef STREAMICE_COULOMB_SLIDING _RL effective_stress, hf _RL ETA_GL_STREAMICE + _RL i_nbasalfric EXTERNAL ETA_GL_STREAMICE #endif #ifdef ALLOW_AUTODIFF_TAMC @@ -60,6 +62,10 @@ SUBROUTINE STREAMICE_VISC_BETA_HYBRID ( myThid ) pwr = 1./n_glen #endif +#ifdef STREAMICE_COULOMB_SLIDING + i_nbasalfric = 1. / n_basal_friction +#endif + DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) DO j=1,sNy @@ -117,22 +123,8 @@ SUBROUTINE STREAMICE_VISC_BETA_HYBRID ( myThid ) DO m=Nr,1,-1 #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - - ikey_1 = m - & + Nr*(i-1) - & + Nr*sNx*(j-1) - & + Nr*sNx*sNy*act1 - & + Nr*sNx*sNy*max1*act2 - & + Nr*sNx*sNy*max1*max2*act3 - & + Nr*sNx*sNy*max1*max2*max3*act4 - + ikey_1 = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + ikey_1 = m + ((i-1) + (j-1)*sNx + (ikey_1-1)*sNx*sNy)*Nr CADJ STORE visc_streamice_full(i,j,m,bi,bj) CADJ & = comlev1_stream_hybrid, key=ikey_1 #endif @@ -151,22 +143,26 @@ SUBROUTINE STREAMICE_VISC_BETA_HYBRID ( myThid ) & 0.25 * streamice_vert_shear_vz(m)**2) #ifdef STREAMICE_3D_GLEN_CONST -#if (defined (ALLOW_STREAMICE_OAD_FP)) - visc_full_new_si(i,j,m,bi,bj) = + IF (.not.STREAMICE_use_log_ctrl) THEN + Bglen_val = B_glen(i,j,m,bi,bj)**2 + ELSE + Bglen_val = exp(B_glen(i,j,m,bi,bj)) + ENDIF #else - visc_streamice_full(i,j,m,bi,bj) = + IF (.not.STREAMICE_use_log_ctrl) THEN + Bglen_val = B_glen(i,j,bi,bj)**2 + ELSE + Bglen_val = exp(B_glen(i,j,bi,bj)) + ENDIF #endif - & .5 * B_glen(i,j,m,bi,bj)**2 * - & second_inv**((1-n_glen)/n_glen) -#else + #if (defined (ALLOW_STREAMICE_OAD_FP)) visc_full_new_si(i,j,m,bi,bj) = #else visc_streamice_full(i,j,m,bi,bj) = #endif - & .5 * B_glen(i,j,bi,bj)**2 * + & .5 * Bglen_val * & second_inv**((1-n_glen)/n_glen) -#endif visc_streamice (i,j,bi,bj) = visc_streamice (i,j,bi,bj) + & H_streamice(i,j,bi,bj) * streamice_delsigma (m) * @@ -229,37 +225,38 @@ SUBROUTINE STREAMICE_VISC_BETA_HYBRID ( myThid ) unorm = sqrt(ub**2+vb**2+eps_u_min**2) + if (.not.STREAMICE_use_log_ctrl) THEN + C_fric_val = C_basal_friction(i,j,bi,bj)**2 + else + C_fric_val = exp(C_basal_friction(i,j,bi,bj)) + endif + #ifdef STREAMICE_COULOMB_SLIDING - IF (.not.streamice_allow_reg_coulomb) THEN + IF (.not.streamice_allow_reg_coulomb) THEN #endif - fb = C_basal_friction(i,j,bi,bj)**2 * + fb = C_fric_val * & STREAMICE_BSTRESS_EXP (unorm,n_basal_friction) * & streamice_basal_geom(i,j,bi,bj) * & float_frac_streamice(i,j,bi,bj) #ifdef STREAMICE_COULOMB_SLIDING - ELSE + ELSE hf = max (0.0, -1.0 *streamice_density_ocean_avg & / streamice_density * R_low_si(i,j,bi,bj)) effective_stress = streamice_density * gravity * - & ETA_GL_STREAMICE ( - & H_streamice(i,j,bi,bj)-hf, - & 0. _d 0, - & 1. _d 0, - & 0. _d 0, - & streamice_smooth_gl_width) + & (H_streamice(i,j,bi,bj)-hf) effective_stress= max(0.0, effective_stress) - fb = C_basal_friction(i,j,bi,bj)**2 * + fb = C_fric_val * & unorm ** n_basal_friction * & .5 * effective_stress / - & (C_basal_friction(i,j,bi,bj)**(2/n_basal_friction)*unorm+ - & (0.5 * effective_stress) ** (1/n_basal_friction)) ** + & (C_fric_val**(i_nbasalfric)*unorm+ + & (0.5 * effective_stress) ** (i_nbasalfric)) ** & n_basal_friction * & streamice_basal_geom(i,j,bi,bj) * & float_frac_streamice(i,j,bi,bj) / unorm - ENDIF + ENDIF #endif diff --git a/pkg/tapenade/COST_TAP_TLM.h b/pkg/tapenade/COST_TAP_TLM.h new file mode 100644 index 0000000000..82938bc1ce --- /dev/null +++ b/pkg/tapenade/COST_TAP_TLM.h @@ -0,0 +1,23 @@ +C ================================================================== +C HEADER COST_TAP_TLM +C ================================================================== + + COMMON /COST_R_D/ + & fcd + _RL fcd + +#ifdef ALLOW_COST_STATE_FINAL + COMMON /COST_STATE_FINAL_R_D/ + & objf_state_finald + _RL objf_state_finald (sNx,sNy,nSx,nSy,4*Nr+1) +#endif + +#ifdef ALLOW_COST_VECTOR + COMMON /COST_VECTOR_R_D/ + & objf_vectord + _RL objf_vectord(sNx,nSx,nSy) +#endif + +C ================================================================== +C END OF HEADER COST_TAP_TLM +C ================================================================== diff --git a/pkg/tapenade/TAPENADE_OPTIONS.h b/pkg/tapenade/TAPENADE_OPTIONS.h new file mode 100644 index 0000000000..471358a540 --- /dev/null +++ b/pkg/tapenade/TAPENADE_OPTIONS.h @@ -0,0 +1,25 @@ +CBOP +C !ROUTINE: TAPENADE_OPTIONS.h +C !INTERFACE: +C #include "TAPENADE_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Tapenade (tapenade) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef TAPENADE_OPTIONS_H +#define TAPENADE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_TAPENADE + +#define ALLOW_TAPENADE_ACTIVE_READ_XYZ +#define ALLOW_TAPENADE_ACTIVE_READ_XY +#undef ALLOW_TAPENADE_ACTIVE_WRITE + +#endif /* ALLOW_TAPENADE */ +#endif /* TAPENADE_OPTIONS_H */ diff --git a/pkg/tapenade/active_read_tap.F b/pkg/tapenade/active_read_tap.F new file mode 100644 index 0000000000..46a9c6a0b4 --- /dev/null +++ b/pkg/tapenade/active_read_tap.F @@ -0,0 +1,277 @@ +#include "CPP_EEOPTIONS.h" +C-- File active_read_tap.F: Active read with Tapenade. +C-- Contents: +C-- o ACTIVE_READ_XY_D +C-- o ACTIVE_READ_XYZ_D +C-- o ACTIVE_READ_XY_B +C-- o ACTIVE_READ_XYZ_B + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_READ_XY_D +C !INTERFACE: + SUBROUTINE ACTIVE_READ_XY_D(active_var_file, + & active_var, active_vard, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy, dummyd) + +C *==========================================================* +C | SUBROUTINE ACTIVE_READ_XY_D +C | o Tangent linear differentiation of ACTIVE_READ_XY. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C active_var_file:: filename +C active_var :: array +C active_vard :: forward derivative of active_var +C iRec :: record number +C doglobalread :: flag for global or local read/write +C (default: .false.) +C lAdInit :: initialisation of corresponding adjoint +C variable and write to active file +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: my Thread Id. number + CHARACTER*(*) active_var_file + _RL active_vard(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER iRec + LOGICAL doglobalread + LOGICAL lAdInit + INTEGER myOptimIter + INTEGER myThid + _RL dummy + _RL dummyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +C !LOCAL VARIABLES: + CHARACTER*(80) fname + CHARACTER*(2) tlmpref +CEOP + + tlmpref = 'g_' + call ADD_PREFIX( tlmpref, active_var_file, fname ) + + call active_read_xy(active_var_file, active_var, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy) + call active_read_xy(fname, dummyd, iRec, + & doglobalread, lAdInit, + & myOptimIter, myThid, dummy) + + active_var = 0.d0 + active_vard = dummyd + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_READ_XYZ_D +C !INTERFACE: + subroutine ACTIVE_READ_XYZ_D(active_var_file, + & active_var, active_vard, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy, dummyd) + +C *==========================================================* +C | SUBROUTINE ACTIVE_READ_XYZ_D +C | o Tangent linear differentiation of ACTIVE_READ_XYZ. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C active_var_file:: filename +C active_var :: array +C active_vard :: forward derivative of active_var +C iRec :: record number +C doglobalread :: flag for global or local read/write +C (default: .false.) +C lAdInit :: initialisation of corresponding adjoint +C variable and write to active file +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: my Thread Id. number + CHARACTER*(*) active_var_file + _RL active_vard(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER iRec + LOGICAL doglobalread + LOGICAL lAdInit + INTEGER myOptimIter + INTEGER myThid + _RL dummy + _RL dummyd(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + +C !LOCAL VARIABLES: + CHARACTER*(80) fname + CHARACTER*(2) tlmpref +CEOP + + tlmpref = 'g_' + call ADD_PREFIX( tlmpref, active_var_file, fname ) + + call active_read_xyz(active_var_file, active_var, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy) + call active_read_xyz(fname, dummyd, iRec, + & doglobalread, lAdInit, + & myOptimIter, myThid, dummy) + + active_var = 0.d0 + active_vard = dummyd + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_READ_XY_B +C !INTERFACE: + SUBROUTINE ACTIVE_READ_XY_B(active_var_file, + & active_var, active_varb, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy, dummyb) + +C *==========================================================* +C | SUBROUTINE ACTIVE_READ_XY_B +C | o Reverse differentiation of ACTIVE_READ_XY. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C active_var_file:: filename +C active_var :: array +C active_varb :: reverse derivative of active_var +C iRec :: record number +C doglobalread :: flag for global or local read/write +C (default: .false.) +C lAdInit :: initialisation of corresponding adjoint +C variable and write to active file +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: my Thread Id. number + CHARACTER*(*) active_var_file + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL active_varb(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER iRec + INTEGER myIter, myThid + LOGICAL doglobalread + LOGICAL lAdInit + INTEGER myOptimIter +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, dummyb + +C !LOCAL VARIABLES: + CHARACTER*(2) adpref + CHARACTER*(80) fname + INTEGER myNr + LOGICAL useCurrentDir +CEOP + + adpref = 'ad' + CALL ADD_PREFIX( adpref, active_var_file, fname ) + myNr = 1 + useCurrentDir = .FALSE. + + CALL ACTIVE_READ_3D_RL( + & fname, active_varb, doglobalread, + & useCurrentDir, lAdInit, iRec, myNr, + & REVERSE_SIMULATION, myIter, myThid ) + + RETURN + + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_READ_XYZ_B +C !INTERFACE: + SUBROUTINE ACTIVE_READ_XYZ_B(active_var_file, + & active_var, active_varb, + & iRec, doglobalread, lAdInit, + & myOptimIter, myThid, dummy, dummyb) + +C *==========================================================* +C | SUBROUTINE ACTIVE_READ_XYZ_B +C | o Reverse differentiation of ACTIVE_READ_XYZ. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C active_var_file:: filename +C active_var :: array +C active_varb :: reverse derivative of active_var +C iRec :: record number +C doglobalread :: flag for global or local read/write +C (default: .false.) +C lAdInit :: initialisation of corresponding adjoint +C variable and write to active file +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: my Thread Id. number + CHARACTER*(*) active_var_file + _RL active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + _RL active_varb(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER iRec + INTEGER myIter, myThid + LOGICAL doglobalread + LOGICAL lAdInit + INTEGER myOptimIter +C Tags for IO: ctrl input and adjoint (gradient) output + _RL dummy, dummyb + +C !LOCAL VARIABLES: + CHARACTER*(2) adpref + CHARACTER*(80) fname + INTEGER myNr + LOGICAL useCurrentDir +CEOP + + adpref = 'ad' + CALL ADD_PREFIX( adpref, active_var_file, fname ) + myNr = Nr + useCurrentDir = .FALSE. + + CALL ACTIVE_READ_3D_RL( + & fname, active_varb, doglobalread, + & useCurrentDir, lAdInit, iRec, myNr, + & REVERSE_SIMULATION, myIter, myThid ) + + RETURN + END + diff --git a/pkg/tapenade/active_write_tap.F b/pkg/tapenade/active_write_tap.F new file mode 100644 index 0000000000..2d3bd739ef --- /dev/null +++ b/pkg/tapenade/active_write_tap.F @@ -0,0 +1,288 @@ +#include "CPP_EEOPTIONS.h" +C-- File active_write_tap.F: Active write with Tapenade. +C-- Contents: +C-- o ACTIVE_WRITE_XY_D +C-- o ACTIVE_WRITE_XYZ_D +C-- o ACTIVE_WRITE_XY_B +C-- o ACTIVE_WRITE_XYZ_B + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_WRITE_XY_D +C !INTERFACE: + subroutine ACTIVE_WRITE_XY_D( + I active_var_file, + I active_var, + I active_vard, + I iRec, + I myOptimIter, + I myThid, + I dummy, + I dummyd + & ) + +C *==========================================================* +C | SUBROUTINE ACTIVE_WRITE_XY_D +C | o Forward differentiation of ACTIVE_WRITE_XY. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C active_var_file:: filename +C active_var :: array +C active_vard :: forward derivative of active_var +C iRec :: record number +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: thread number for this instance + CHARACTER*(*) active_var_file + Real*8 active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 active_vard(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER iRec + INTEGER myOptimIter + INTEGER myThid + Real*8 dummy + Real*8 dummyd + +C !LOCAL VARIABLES: + CHARACTER*(2) pref + CHARACTER*(80) fname + INTEGER myNr + LOGICAL globalFile + LOGICAL useCurrentDir +CEOP + + pref = 'g_' + CALL ADD_PREFIX( pref, active_var_file, fname ) + myNr = 1 + globalFile = .FALSE. + useCurrentDir = .FALSE. + + call active_write_3d_rl( + & active_var_file, active_var, globalFile, + & useCurrentDir, iRec, myNr, + & 0, myOptimIter, myThid ) + + call active_write_3d_rl( + & fname, active_vard, globalFile, + & useCurrentDir, iRec, myNr, + & 2, myOptimIter, myThid ) + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_WRITE_XYZ_D +C !INTERFACE: + subroutine ACTIVE_WRITE_XYZ_D( + I active_var_file, + I active_var, + I active_vard, + I iRec, + I myOptimIter, + I myThid, + I dummy, + I dummyd + & ) + +C *==========================================================* +C | SUBROUTINE ACTIVE_WRITE_XYZ_D +C | o Forward differentiation of ACTIVE_WRITE_XYZ. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C active_var_file:: filename +C active_var :: array +C active_vard :: forward derivative of active_var +C iRec :: record number +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: thread number for this instance + CHARACTER*(*) active_var_file + Real*8 active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + Real*8 active_vard(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER iRec + INTEGER myOptimIter + INTEGER myThid + Real*8 dummy + Real*8 dummyd + +C !LOCAL VARIABLES: + CHARACTER*(2) pref + CHARACTER*(80) fname + INTEGER myNr + LOGICAL globalFile + LOGICAL useCurrentDir +CEOP + + pref = 'g_' + CALL ADD_PREFIX( pref, active_var_file, fname ) + myNr = Nr + globalFile = .FALSE. + useCurrentDir = .FALSE. + + call active_write_3d_rl( + & active_var_file, active_var, globalFile, + & useCurrentDir, iRec, myNr, + & 0, myOptimIter, myThid ) + + call active_write_3d_rl( + & fname, active_vard, globalFile, + & useCurrentDir, iRec, myNr, + & 2, myOptimIter, myThid ) + + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_WRITE_XY_B +C !INTERFACE: + subroutine ACTIVE_WRITE_XY_B( + I active_var_file, + I active_var, + U active_varb, + I iRec, + I myOptimIter, + I myThid, + I dummy, + O dummyb + & ) + +C *==========================================================* +C | SUBROUTINE ACTIVE_WRITE_XY_B +C | o Reverse differentiation of ACTIVE_WRITE_XY. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C active_var_file:: filename +C active_var :: array +C active_varb :: reverse derivative of active_var +C iRec :: record number +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: thread number for this instance + CHARACTER*(80) active_var_file + Real*8 active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 active_varb(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER iRec + INTEGER myOptimIter + INTEGER myThid + Real*8 dummy + Real*8 dummyb + +C !LOCAL VARIABLES: + CHARACTER*(2) adpref + CHARACTER*(80) fname + INTEGER myNr + LOGICAL globalFile + LOGICAL useCurrentDir +CEOP + adpref = 'ad' + CALL ADD_PREFIX( adpref, active_var_file, fname ) + myNr = 1 + globalFile = .FALSE. + useCurrentDir = .FALSE. + CALL ACTIVE_WRITE_3D_RL( + & fname, active_varb, globalFile, + & useCurrentDir, iRec, myNr, + & 1, myOptimIter, myThid ) + RETURN + END + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +CBOP +C !ROUTINE: ACTIVE_WRITE_XYZ_B +C !INTERFACE: + subroutine ACTIVE_WRITE_XYZ_B( + I active_var_file, + I active_var, + U active_varb, + I iRec, + I myOptimIter, + I myThid, + I dummy, + O dummyb + & ) + +C *==========================================================* +C | SUBROUTINE ACTIVE_WRITE_XYZ_B +C | o Reverse differentiation of ACTIVE_WRITE_XYZ. +C *==========================================================* +C | written by Shreyas Gaikwad, Laurent Hascoet in Nov 2022 +C *==========================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" + +C !INPUT/OUTPUT PARAMETERS: +C active_var_file:: filename +C active_var :: array +C active_varb :: reverse derivative of active_var +C iRec :: record number +C myOptimIter :: number of optimization iteration (default: 0) +C myThid :: thread number for this instance + CHARACTER*(80) active_var_file + Real*8 active_var(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + Real*8 active_varb(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + INTEGER iRec + INTEGER myOptimIter + INTEGER myThid + Real*8 dummy + Real*8 dummyb + +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: + CHARACTER*(2) adpref + CHARACTER*(80) fname + INTEGER il + INTEGER myNr + LOGICAL globalFile + LOGICAL useCurrentDir +CEOP + adpref = 'ad' + CALL ADD_PREFIX( adpref, active_var_file, fname ) + myNr = Nr + globalFile = .FALSE. + useCurrentDir = .FALSE. + CALL ACTIVE_WRITE_3D_RL( + & fname, active_varb, globalFile, + & useCurrentDir, iRec, myNr, + & 1, myOptimIter, myThid ) + RETURN + END diff --git a/pkg/tapenade/dummy_tap.F b/pkg/tapenade/dummy_tap.F new file mode 100644 index 0000000000..5e34db5e6b --- /dev/null +++ b/pkg/tapenade/dummy_tap.F @@ -0,0 +1,37 @@ +#include "CPP_EEOPTIONS.h" + + SUBROUTINE DUMMY_IN_STEPPING_D( myTime, myIter, myThid ) + + IMPLICIT NONE + _RL myTime + INTEGER myIter + INTEGER myThid + RETURN + END + + SUBROUTINE DUMMY_IN_STEPPING_B( myTime, myIter, myThid ) + + IMPLICIT NONE + _RL myTime + INTEGER myIter + INTEGER myThid + RETURN + END + + SUBROUTINE DUMMY_FOR_ETAN_D(myTime, myTimed, myIter, myThid) + + IMPLICIT NONE + _RL myTime + _RL myTimed + INTEGER myIter + INTEGER myThid + END + + SUBROUTINE DUMMY_FOR_ETAN_B(myTime, myTimeb, myIter, myThid) + IMPLICIT NONE + _RL myTime + _RL myTimeb + INTEGER myIter + INTEGER myThid + END + diff --git a/pkg/tapenade/stubs_tap_adj.F b/pkg/tapenade/stubs_tap_adj.F new file mode 100644 index 0000000000..97d2b0e75a --- /dev/null +++ b/pkg/tapenade/stubs_tap_adj.F @@ -0,0 +1,116 @@ +#include "CPP_EEOPTIONS.h" + + SUBROUTINE GLOBAL_MAX_R8_B(rhsmax, rhsmaxb, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "GLOBAL_MAX.h" + _RL rhsmax + _RL rhsmaxb + INTEGER myThid + + CALL GLOBAL_ADMAX_R8(rhsmaxb, myThid) + RETURN + END + + SUBROUTINE GLOBAL_SUM_TILE_RL_B(phiTile, phiTileb, + & sumPhi, sumPhib, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "GLOBAL_SUM.h" + _RL phiTile(nSx,nSy) + _RL phiTileb(nSx,nSy) + _RL sumPhib + _RL sumPhi + INTEGER myThid + + CALL GLOBAL_ADSUM_TILE_RL(phiTileb, sumPhib, myThid) + END + +! Adjoint of global_sum_r8 for arguments Arg1=(in;out) + SUBROUTINE GLOBAL_SUM_R8_B(sumPhi, sumPhib, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "GLOBAL_SUM.h" + _RL sumPhi + _RL sumPhib + INTEGER myThid + + CALL GLOBAL_ADSUM_R8(sumPhib, myThid) + END + + SUBROUTINE CG2D_B0(cg2d_b, cg2d_bb, cg2d_x, + & cg2d_xb, firstResidual, minResidualSq, + & lastResidual,numIters, nIterMin,myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "CG2D.h" + _RL cg2d_b(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_bb(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_x(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_xb(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL firstResidual + _RL minResidualSq + _RL lastResidual + INTEGER numIters + INTEGER nIterMin + INTEGER myThid + +! [llh] we assume the downstream cg2d_b is passive, which helps us +! because it seems the input 2nd arg of cg2d() pollutes its output value: + cg2d_bb = 0.d0 + CALL CG2D(cg2d_xb, cg2d_bb, firstResidual, + + minResidualSq, lastResidual, numIters, + + nIterMin, myThid) +! [llh] the upstream cg2d_x is passive: + cg2d_xb = 0.d0 + END + + SUBROUTINE ADEXCH_3D_RL( adVar, Nr, myThid ) + IMPLICIT NONE + Real*8 adVar + INTEGER Nr + INTEGER myThid + WRITE(*,*) "Called not yet defined" + END + + SUBROUTINE ADEXCH_UV_XY_RS( adU, adV, bool, myThid ) + IMPLICIT NONE + Real*8 adU + Real*8 adV + LOGICAL bool + INTEGER myThid + WRITE(*,*) "Called not yet defined" + END + + SUBROUTINE ADEXCH_UV_3D_RL( aduVel,advVel, bool, Nr, myThid ) + IMPLICIT NONE + LOGICAL bool + Real*8 aduVel + Real*8 advVel + INTEGER Nr + INTEGER myThid + WRITE(*,*) "Called not yet defined" + END + + SUBROUTINE ADEXCH_XY_RS( adVar, myThid ) + IMPLICIT NONE + Real*8 adVar + INTEGER myThid + WRITE(*,*) "Called not yet defined" + END + + SUBROUTINE ADEXCH_XY_RL( adVar, myThid ) + IMPLICIT NONE + Real*8 adVar + INTEGER myThid + WRITE(*,*) "Called not yet defined" + END + diff --git a/pkg/tapenade/stubs_tap_tlm.F b/pkg/tapenade/stubs_tap_tlm.F new file mode 100644 index 0000000000..013a2f3da9 --- /dev/null +++ b/pkg/tapenade/stubs_tap_tlm.F @@ -0,0 +1,71 @@ +#include "CPP_EEOPTIONS.h" + + SUBROUTINE GLOBAL_SUM_TILE_RL_D(phiTile, phiTiled, + & sumPhi, sumPhid, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "GLOBAL_SUM.h" + _RL phiTile(nSx,nSy) + _RL phiTiled(nSx,nSy) + _RL sumPhid + _RL sumPhi + INTEGER myThid + CALL GLOBAL_SUM_TILE_RL(phiTiled, sumPhid, myThid) + CALL GLOBAL_SUM_TILE_RL(phiTile, sumPhi, myThid) + END + + SUBROUTINE GLOBAL_SUM_R8_D(sumPhi, sumPhid, myThid) + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "EESUPPORT.h" +#include "GLOBAL_SUM.h" + _RL sumPhi + _RL sumPhid + INTEGER myThid + CALL GLOBAL_SUM_R8(sumPhid, myThid) + CALL GLOBAL_SUM_R8(sumPhi, myThid) + END + + SUBROUTINE CG2D_D(cg2d_b, cg2d_bd, cg2d_x, + & cg2d_xd, firstResidual, minResidualSq, + & lastResidual,numIters, nIterMin,myThid ) + IMPLICIT NONE +#include "SIZE.h" + _RL cg2d_b(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_bd(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_x(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL cg2d_xd(1-OLx:sNx+OLx, 1-OLy:sNy+OLy, nSx, nSy) + _RL firstResidual + _RL minResidualSq + _RL lastResidual + INTEGER numIters + INTEGER nIterMin + INTEGER myThid + INTEGER copyIt1, copyIt2 + + copyIt1 = numIters + copyIt2 = nIterMin +! [llh] it seems the input 2nd arg of cg2d() pollutes its output value: + cg2d_xd = 0.d0 + CALL CG2D(cg2d_bd, cg2d_xd, firstResidual, + & minResidualSq, lastResidual, numIters, + & nIterMin, myThid) +! [llh] we assume the downstream cg2d_b is passive: + cg2d_bd = 0.d0 + CALL CG2D(cg2d_b, cg2d_x, firstResidual, + & minResidualSq, lastResidual, copyIt1, + & copyIt2, myThid) + END + + SUBROUTINE GLOBAL_MAX_R8_D(rhsmax, rhsmaxd, myThid) + IMPLICIT NONE + _RL rhsmax + _RL rhsmaxd + INTEGER myThid + print *, "NOT IMPLEMENTED GLOBAL_MAX_R8_D yet." + RETURN + END + diff --git a/pkg/thsice/THSICE_OPTIONS.h b/pkg/thsice/THSICE_OPTIONS.h index c73bcec818..60908ab7d9 100644 --- a/pkg/thsice/THSICE_OPTIONS.h +++ b/pkg/thsice/THSICE_OPTIONS.h @@ -17,6 +17,10 @@ C- only to check conservation C (change content of ICE_qleft,fresh,salFx-T files) #undef CHECK_ENERGY_CONSERV +C- replace MIN/MAX by smooth functions, avoid divisions by zero and +C sqrt of zero mostly to help AD code generation, changes results +#undef THSICE_REGULARIZE_CALC_THICKN + C CPP Macros go here #endif /* ALLOW_THSICE */ diff --git a/pkg/thsice/THSICE_PARAMS.h b/pkg/thsice/THSICE_PARAMS.h index 9d67f19e2c..f547c43985 100644 --- a/pkg/thsice/THSICE_PARAMS.h +++ b/pkg/thsice/THSICE_PARAMS.h @@ -52,7 +52,7 @@ C saltIce :: salinity of ice [g/kg] C S_winton :: Winton salinity of ice [g/kg] C .. melting C Tf0kel :: Freezing temp of fresh water in Kelvin = 273.15 -C mu_Tf :: linear dependance of melting temperature on Salinity [oC/psu] +C mu_Tf :: linear dependence of melting temperature on salinity [oC/(g/kg)] C Tf(sea-water) = -mu_Tf * S C Tmlt1 :: Winton melting temperature: Tmlt1 = -mu_Tf * S_winton C Terrmax :: Temperature convergence criteria [oC] @@ -186,7 +186,7 @@ C ocean_deltaT :: ocean mixed-layer time-step [s] C tauRelax_MxL :: Relaxation time scale for MixLayer T [s] C tauRelax_MxL_salt :: Relaxation time scale for MixLayer S [s] C hMxL_default :: default value for ocean MixLayer thickness [m] -C sMxL_default :: default value for salinity in MixLayer [psu] +C sMxL_default :: default value for salinity in MixLayer [g/kg] C vMxL_default :: default value for ocean current velocity in MxL [m/s] C thSIce_diffK :: thickness (horizontal) diffusivity [m^2/s] C stressReduction :: reduction factor for wind-stress under sea-ice [0-1] diff --git a/pkg/thsice/THSICE_SIZE.h b/pkg/thsice/THSICE_SIZE.h index 08982450c4..5bc61b67e3 100644 --- a/pkg/thsice/THSICE_SIZE.h +++ b/pkg/thsice/THSICE_SIZE.h @@ -23,10 +23,12 @@ C-- identifiers for advected properties & GAD_SI_QICE2 = -9 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER ticekey - INTEGER ikey_1, ikey_2, ikey_3, ikey_4 INTEGER MaxTsf PARAMETER ( MaxTsf = 20 ) +C The number of properties to be advected is needed to define static tapes. + INTEGER thSIce_nAdv +c PARAMETER ( thSIce_nAdv = 1 + GAD_SI_FRAC - GAD_SI_QICE2 ) + PARAMETER ( thSIce_nAdv = 5 ) #endif #endif /* ALLOW_THSICE */ diff --git a/pkg/thsice/THSICE_TAVE.h b/pkg/thsice/THSICE_TAVE.h index e9d87f466d..c53d6a36d8 100644 --- a/pkg/thsice/THSICE_TAVE.h +++ b/pkg/thsice/THSICE_TAVE.h @@ -25,12 +25,12 @@ C ice_Tice2_Ave :: cumulated 2nd level Temp. [oC] cC ice_snowPr_Ave :: cumulated snow precipitation (+=down) [kg/m2/s] C ice_flx2oc_Ave :: cumulated heat flux out of the ocean (+=up) [W/m2] C ice_frw2oc_Ave :: cumulated fresh-water flux out off the ocean (E-P) [m/s] -C ice_salFx_Ave :: cumulated salt flux out of the ocean (+=up) [psu.kg/m2] +C ice_salFx_Ave :: cumulated salt flux out of the ocean (+=up) [g/m2/s] C ice_flxAtm_Ave :: cumulated net heat flux from Atmosphere (+=down) [W/m2] C ice_frwAtm_Ave :: cumulated fresh-water flux from Atmos. (+=up) [kg/m2/s] C ice_albedo_Ave :: cumulated sea-ice albedo [0-1] C ice_tMxL_Ave :: cumulated ocean mixed-layer Temp. [oC] -C ice_sMxL_Ave :: cumulated ocean mixed-layer salinity [psu] +C ice_sMxL_Ave :: cumulated ocean mixed-layer salinity [g/kg] _RL ice_timeAve(nSx,nSy) _RL ice_fract_Ave (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) diff --git a/pkg/thsice/THSICE_VARS.h b/pkg/thsice/THSICE_VARS.h index 4054d73b2a..c1c0c8f927 100644 --- a/pkg/thsice/THSICE_VARS.h +++ b/pkg/thsice/THSICE_VARS.h @@ -43,22 +43,13 @@ C icFlxAtm :: Atmospheric surf. heat flux over sea-ice [W/m2] (+=down) C (over sea-ice only / weighted by ice-fraction) C icFrwAtm :: fresh-water flux (E-P) from the atmosphere [kg/m2/s] (+=up) C ( ice Evap only / ice E-P / ice - ocean weighted E-P ) -C oceQnet :: net heat flux to the ocean (+=down) [W/m2] -C oceQsw :: net short-wave that enter the ocean (+=down) [W/m2] -C oceFWfx :: net fresh water flux to the ocean (+=down) [kg/m2] -C oceSflx :: net salt flux to the ocean (+=down) [psu.kg/m2] C adjustFrW :: global adjustment to surface fresh-water flux [kg/m2/s] COMMON / THSICE_FLUX / -c & oceQsw, oceQnet, oceFWfx, oceSflx, & sHeating, flxCndBt, & siceAlb, icAlbNIR, & icFlxSW, icFlxAtm, icFrwAtm, & adjustFrW -c _RL oceQnet(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -c _RL oceQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -c _RL oceFWfx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -c _RL oceSflx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL sHeating(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL flxCndBt(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) _RL siceAlb (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) @@ -70,7 +61,7 @@ c _RL oceSflx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C-- COMMON /THSICE_DYN_R/ variables used with sea-ice advection/diffusion C oceFWfx :: fresh water flux to the ocean [kg/m^2/s] -C oceSflx :: salt flux to the ocean [psu.kg/m^2/s] (~g/m^2/s) +C oceSflx :: salt flux to the ocean [g/m^2/s] C oceQnet :: heat flux to the ocean [W/m^2] C--- C Note :: when ice volume is too small to be kept, ice & snow is melt @@ -88,7 +79,7 @@ C--- C-- COMMON / THSICE_OCEMXLAYER / oceanic mixed layer state C hOceMxL :: thickness of the ocean mixed layer [m] C tOceMxL :: temperature in the ocean mixed layer [oC] -C sOceMxL :: salinity in the ocean mixed layer [psu] +C sOceMxL :: salinity in the ocean mixed layer [g/kg] C v2ocMxL :: velocity (square) in the mixed layer [m2/s2] COMMON / THSICE_OCEMXLAYER / & hOceMxL, tOceMxL, sOceMxL, v2ocMxL diff --git a/pkg/thsice/thsice_ad.flow b/pkg/thsice/thsice_ad.flow index 0c0d548149..dd6bdd61e3 100644 --- a/pkg/thsice/thsice_ad.flow +++ b/pkg/thsice/thsice_ad.flow @@ -5,8 +5,7 @@ CADJ SUBROUTINE thsice_read_pickup INPUT = 1,2,3 CADJ SUBROUTINE thsice_read_pickup OUTPUT = C---------------------------------------- -C subroutine THSICE_DIAG_SUFX +C function THSICE_DIAG_SUFX C---------------------------------------- -CADJ SUBROUTINE THSICE_DIAG_SUFX INPUT = 1,2 -CADJ SUBROUTINE THSICE_DIAG_SUFX OUTPUT = 1 - +CADJ FUNCTION THSICE_DIAG_SUFX INPUT = 1,2 +CADJ FUNCTION THSICE_DIAG_SUFX OUTPUT = diff --git a/pkg/thsice/thsice_advdiff.F b/pkg/thsice/thsice_advdiff.F index b2fbea6bf3..fea0309399 100644 --- a/pkg/thsice/thsice_advdiff.F +++ b/pkg/thsice/thsice_advdiff.F @@ -2,6 +2,9 @@ #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD_OPTIONS.h" #endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_ADVDIFF @@ -25,7 +28,7 @@ SUBROUTINE THSICE_ADVDIFF( C === Global variables === C oceFWfx :: fresh water flux to the ocean [kg/m^2/s] -C oceSflx :: salt flux to the ocean [psu.kg/m^2/s] (~g/m^2/s) +C oceSflx :: salt flux to the ocean [g/m^2/s] C oceQnet :: heat flux to the ocean [W/m^2] #include "SIZE.h" @@ -40,7 +43,6 @@ SUBROUTINE THSICE_ADVDIFF( #endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: =================================================== @@ -97,6 +99,10 @@ SUBROUTINE THSICE_ADVDIFF( EXTERNAL DIAGNOSTICS_IS_ON _RL tmpFac #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif #ifdef ALLOW_DBUG_THSICE _RL tmpVar, sumVar1, sumVar2 #endif @@ -107,16 +113,7 @@ SUBROUTINE THSICE_ADVDIFF( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C areaEpsil, vol_Epsil are 2 small numbers for ice area & ice volume: @@ -148,7 +145,6 @@ SUBROUTINE THSICE_ADVDIFF( ENDIF #endif /* ALLOW_GENERIC_ADVDIFF */ -#ifndef OLD_THSICE_CALL_SEQUENCE #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN CALL DIAGNOSTICS_FILL(iceMask,'SI_AdvFr',0,1,1,bi,bj,myThid) @@ -179,7 +175,6 @@ SUBROUTINE THSICE_ADVDIFF( ENDIF ENDIF #endif /* ALLOW_DIAGNOSTICS */ -#endif /* ndef OLD_THSICE_CALL_SEQUENCE */ C-- Initialisation (+ build oceanic mask) DO j=1-OLy,sNy+OLy @@ -198,10 +193,8 @@ SUBROUTINE THSICE_ADVDIFF( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceHeight(:,:,bi,bj) -CADJ & = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE snowHeight(:,:,bi,bj) -CADJ & = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte #endif IF ( thSIce_diffK .GT. 0. ) THEN CALL THSICE_DIFFUSION( @@ -233,9 +226,8 @@ SUBROUTINE THSICE_ADVDIFF( ENDDO ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE icevol(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE utrice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE vtrice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE utrice = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE vtrice = comlev1_bibj, key=tkey, byte=isbyte #endif CALL THSICE_ADVECTION( I GAD_SI_FRAC, thSIceAdvScheme, .TRUE., @@ -250,6 +242,10 @@ SUBROUTINE THSICE_ADVDIFF( iceVol(i,j) = iceMask(i,j,bi,bj)*rA(i,j,bi,bj) ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE uTrans = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE vTrans = comlev1_bibj,key=tkey,byte=isbyte +#endif CALL THSICE_ADVECTION( I GAD_SI_HSNOW, thSIceAdvScheme, .FALSE., I uTrans, vTrans, maskOce, thSIce_deltaT, areaEpsil, @@ -258,8 +254,8 @@ SUBROUTINE THSICE_ADVDIFF( I bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceHeight(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE iceMask (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte #endif C-- sea-ice Thickness DO j=1-OLy,sNy+OLy @@ -276,9 +272,8 @@ SUBROUTINE THSICE_ADVDIFF( I bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE qice2(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE utrice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE vtrice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE utrice = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE vtrice = comlev1_bibj, key=tkey, byte=isbyte #endif #ifdef ALLOW_DBUG_THSICE @@ -437,12 +432,9 @@ SUBROUTINE THSICE_ADVDIFF( #endif #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceHeight(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE snowHeight(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE iceFrc(:,:) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE iceFrc = comlev1_bibj,key=tkey,byte=isbyte #endif C-- Update Ice Fraction: ensure that fraction is > iceMaskMin & < 1 @@ -466,6 +458,14 @@ SUBROUTINE THSICE_ADVDIFF( ENDIF ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C Store directives to avoid recomputing of this routine in ad-code +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE iceMask (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE qIce1 (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +CADJ STORE qIce2 (:,:,bi,bj) = comlev1_bibj,key=tkey,byte=isbyte +#endif C- adjust sea-ice state if ice is too thin. DO j=1,sNy DO i=1,sNx @@ -537,39 +537,6 @@ SUBROUTINE THSICE_ADVDIFF( C--- end if multiDimAdvection ENDIF -#ifdef OLD_THSICE_CALL_SEQUENCE -#ifdef ALLOW_DIAGNOSTICS - IF ( useDiagnostics ) THEN - CALL DIAGNOSTICS_FILL(iceMask,'SI_AdvFr',0,1,1,bi,bj,myThid) -C- Ice-fraction weighted quantities: - tmpFac = 1. _d 0 - CALL DIAGNOSTICS_FRACT_FILL( - I iceHeight, iceMask,tmpFac,1,'SI_AdvHi', - I 0,1,1,bi,bj,myThid) - CALL DIAGNOSTICS_FRACT_FILL( - I snowHeight,iceMask,tmpFac,1,'SI_AdvHs', - I 0,1,1,bi,bj,myThid) -C- Ice-Volume weighted quantities: - IF ( DIAGNOSTICS_IS_ON('SI_AdvQ1',myThid) .OR. - & DIAGNOSTICS_IS_ON('SI_AdvQ2',myThid) ) THEN - DO j=1,sNy - DO i=1,sNx - iceVol(i,j) = iceMask(i,j,bi,bj)*iceHeight(i,j,bi,bj) - ENDDO - ENDDO - CALL DIAGNOSTICS_FRACT_FILL( - I Qice1(1-OLx,1-OLy,bi,bj), - I iceVol,tmpFac,1,'SI_AdvQ1', - I 0,1,2,bi,bj,myThid) - CALL DIAGNOSTICS_FRACT_FILL( - I Qice2(1-OLx,1-OLy,bi,bj), - I iceVol,tmpFac,1,'SI_AdvQ2', - I 0,1,2,bi,bj,myThid) - ENDIF - ENDIF -#endif /* ALLOW_DIAGNOSTICS */ -#endif /* OLD_THSICE_CALL_SEQUENCE */ - #endif /* ALLOW_THSICE */ RETURN diff --git a/pkg/thsice/thsice_advection.F b/pkg/thsice/thsice_advection.F index 445ecd71d6..13b41446d1 100644 --- a/pkg/thsice/thsice_advection.F +++ b/pkg/thsice/thsice_advection.F @@ -2,6 +2,9 @@ #ifdef ALLOW_GENERIC_ADVDIFF # include "GAD_OPTIONS.h" #endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP @@ -57,7 +60,6 @@ SUBROUTINE THSICE_ADVECTION( #endif /* ALLOW_EXCH2 */ #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT PARAMETERS: =================================================== @@ -101,8 +103,6 @@ SUBROUTINE THSICE_ADVECTION( C maskLocC :: 2-D array mask at grid-cell center C maskLocW :: 2-D array for mask at West points C maskLocS :: 2-D array for mask at South points -C iMin,iMax, :: loop range for called routines -C jMin,jMax :: loop range for called routines C [iMin,iMax]Upd :: loop range to update sea-ice field C [jMin,jMax]Upd :: loop range to update sea-ice field C i,j :: loop indices @@ -122,7 +122,6 @@ SUBROUTINE THSICE_ADVECTION( _RS maskLocC(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS maskLocW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RS maskLocS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - INTEGER iMin,iMax,jMin,jMax INTEGER iMinUpd,iMaxUpd,jMinUpd,jMaxUpd INTEGER i,j,k _RL uCfl (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -137,6 +136,13 @@ SUBROUTINE THSICE_ADVECTION( #ifdef ALLOW_EXCH2 INTEGER myTile #endif +#ifdef ALLOW_AUTODIFF_TAMC +C trNumber :: thsice tracer number +C tkey :: tape key (depends on tile indices and tracer index) +C dkey :: tape key (depends on direction and tkey) + INTEGER trNumber, tkey, dkey + CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif #ifdef ALLOW_DBUG_THSICE LOGICAL dBugFlag INTEGER idb,jdb,biDb @@ -148,16 +154,18 @@ SUBROUTINE THSICE_ADVECTION( k = 1 #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 +C tracerIdentity has negative values from GAD_SI_FRAC=-5 to GAD_SI_QICE2=-9 + trNumber = GAD_SI_FRAC - tracerIdentity + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + tkey = trNumber + 1 + (tkey-1)*thSIce_nAdv + IF ( trNumber .LT. 0 .OR. trNumber+1 .GT. thSIce_nAdv) THEN + WRITE(msgBuf,'(A,2(I3,A))') + & 'THSICE_ADVECTION: tracerIdentity =', tracerIdentity, + & ' not consistent with thSIce_nAdv =', thSIce_nAdv, + & ', ==> check "THSICE_SIZE.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R THSICE_ADVECTION' + ENDIF #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_DBUG_THSICE @@ -203,16 +211,20 @@ SUBROUTINE THSICE_ADVECTION( W_edge = .FALSE. ENDIF - iMin = 1-OLx - iMax = sNx+OLx - jMin = 1-OLy - jMax = sNy+OLy +#ifdef ALLOW_AUTODIFF_TAMC + IF (nipass .GT. maxcube) THEN + WRITE(msgBuf,'(A,2(I3,A))') 'S/R THSICE_ADVECTION: nipass =', + & nipass, ' >', maxcube, ' = maxcube, ==> check "tamc.h"' + CALL PRINT_ERROR( msgBuf, myThid ) + STOP 'ABNORMAL END: S/R THSICE_ADVECTION' + ENDIF +#endif C-- Start horizontal fluxes C-- set mask West & South (and local Centered mask) DO j=1-OLy,sNy+OLy - maskLocW(1-Olx,j) = 0. + maskLocW(1-OLx,j) = 0. DO i=2-OLx,sNx+OLx maskLocW(i,j) = MIN( maskOc(i-1,j), maskOc(i,j) ) #ifdef ALLOW_OBCS @@ -221,7 +233,7 @@ SUBROUTINE THSICE_ADVECTION( ENDDO ENDDO DO i=1-OLx,sNx+OLx - maskLocS(i,1-Oly) = 0. + maskLocS(i,1-OLy) = 0. ENDDO DO j=2-OLy,sNy+OLy DO i=1-OLx,sNx+OLx @@ -242,29 +254,17 @@ SUBROUTINE THSICE_ADVECTION( ENDDO ENDDO -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC IF (useCubedSphereExchange) THEN withSigns = .FALSE. CALL FILL_CS_CORNER_UV_RS( & withSigns, maskLocW,maskLocS, bi,bj, myThid ) ENDIF -cph-exch2#endif C-- Multiple passes for different directions on different tiles C-- For cube need one pass for each of red, green and blue axes. DO ipass=1,nipass #ifdef ALLOW_AUTODIFF_TAMC - ikey_4 = ipass - & + nipass*act1 - & + nipass*max1*act2 - & + nipass*max1*max2*act3 - & + nipass*max1*max2*max3*act4 -#endif - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceFld(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE iceVol(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE af(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte + dkey = ipass + (tkey-1) * maxcube #endif interiorOnly = .FALSE. @@ -306,20 +306,18 @@ SUBROUTINE THSICE_ADVECTION( C a) needed in overlap only C and b) the overlap of myTile are not cube-face Edges #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceFld(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE iceVol(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE af(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte #endif IF ( .NOT.overlapOnly .OR. N_edge .OR. S_edge ) THEN C- Advective flux in X - DO j=1-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx af(i,j) = 0. ENDDO ENDDO -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC C- Internal exchange for calculations in X IF ( overlapOnly ) THEN CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., @@ -328,12 +326,11 @@ SUBROUTINE THSICE_ADVECTION( & CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., & iceVol, bi,bj, myThid ) ENDIF -cph-exch2#endif C- Compute CFL number IF ( useGridArea ) THEN - DO j=1-Oly,sNy+Oly - DO i=2-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=2-OLx,sNx+OLx uCfl(i,j) = deltaTadvect*( & MAX( uTrans(i,j), 0. _d 0 )*recip_rA(i-1,j,bi,bj) & +MAX(-uTrans(i,j), 0. _d 0 )*recip_rA( i ,j,bi,bj) @@ -341,8 +338,8 @@ SUBROUTINE THSICE_ADVECTION( ENDDO ENDDO ELSE - DO j=1-Oly,sNy+Oly - DO i=2-Olx,sNx+Olx + DO j=1-OLy,sNy+OLy + DO i=2-OLx,sNx+OLx uCfl(i,j) = deltaTadvect*( & MAX( uTrans(i,j), 0. _d 0 )/MAX( iceVol(i-1,j), iceEps ) & +MAX(-uTrans(i,j), 0. _d 0 )/MAX( iceVol( i ,j), iceEps ) @@ -378,7 +375,6 @@ SUBROUTINE THSICE_ADVECTION( & 'THSICE_ADVECTION: adv. scheme incompatibale with multi-dim' ENDIF -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC C-- Internal exchange for next calculations in Y IF ( overlapOnly .AND. ipass.EQ.1 ) THEN CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., @@ -387,7 +383,6 @@ SUBROUTINE THSICE_ADVECTION( & CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., & iceVol, bi,bj, myThid ) ENDIF -cph-exch2#endif C-- Advective flux in X : done ENDIF @@ -404,8 +399,9 @@ SUBROUTINE THSICE_ADVECTION( IF ( E_edge ) iMaxUpd = sNx #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceFld(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE iceVol(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE af = comlev1_thsice_adv, key=dkey, byte=isbyte #endif IF ( S_edge ) THEN IF ( useGridArea ) THEN @@ -475,6 +471,11 @@ SUBROUTINE THSICE_ADVECTION( ENDIF ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE af = comlev1_thsice_adv, key=dkey, byte=isbyte +#endif C do not only update the overlap jMinUpd = 1-OLy jMaxUpd = sNy+OLy @@ -526,9 +527,8 @@ SUBROUTINE THSICE_ADVECTION( C a) needed in overlap only C and b) the overlap of myTile are not cube-face edges #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceFld(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE iceVol(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE af(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte #endif IF ( .NOT.overlapOnly .OR. E_edge .OR. W_edge ) THEN @@ -539,7 +539,6 @@ SUBROUTINE THSICE_ADVECTION( ENDDO ENDDO -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC C- Internal exchange for calculations in Y IF ( overlapOnly ) THEN CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., @@ -548,12 +547,11 @@ SUBROUTINE THSICE_ADVECTION( & CALL FILL_CS_CORNER_TR_RL( 2, .FALSE., & iceVol, bi,bj, myThid ) ENDIF -cph-exch2#endif C- Compute CFL number IF ( useGridArea ) THEN - DO j=2-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=2-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx vCfl(i,j) = deltaTadvect*( & MAX( vTrans(i,j), 0. _d 0 )*recip_rA(i,j-1,bi,bj) & +MAX(-vTrans(i,j), 0. _d 0 )*recip_rA(i, j ,bi,bj) @@ -561,8 +559,8 @@ SUBROUTINE THSICE_ADVECTION( ENDDO ENDDO ELSE - DO j=2-Oly,sNy+Oly - DO i=1-Olx,sNx+Olx + DO j=2-OLy,sNy+OLy + DO i=1-OLx,sNx+OLx vCfl(i,j) = deltaTadvect*( & MAX( vTrans(i,j), 0. _d 0 )/MAX( iceVol(i,j-1), iceEps ) & +MAX(-vTrans(i,j), 0. _d 0 )/MAX( iceVol(i, j ), iceEps ) @@ -598,7 +596,6 @@ SUBROUTINE THSICE_ADVECTION( & 'THSICE_ADVECTION: adv. scheme incompatibale with mutli-dim' ENDIF -cph-exch2#ifndef ALLOW_AUTODIFF_TAMC IF ( overlapOnly .AND. ipass.EQ.1 ) THEN CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., & iceFld, bi,bj, myThid ) @@ -606,7 +603,6 @@ SUBROUTINE THSICE_ADVECTION( & CALL FILL_CS_CORNER_TR_RL( 1, .FALSE., & iceVol, bi,bj, myThid ) ENDIF -cph-exch2#endif C- Advective flux in Y : done ENDIF @@ -623,8 +619,9 @@ SUBROUTINE THSICE_ADVECTION( IF ( N_edge ) jMaxUpd = sNy #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceFld(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte -CADJ STORE iceVol(:,:) = comlev1_thsice_4, key=ikey_4, byte=isbyte +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE af = comlev1_thsice_adv, key=dkey, byte=isbyte #endif IF ( W_edge ) THEN IF ( useGridArea ) THEN @@ -694,6 +691,11 @@ SUBROUTINE THSICE_ADVECTION( ENDIF ELSE +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE iceFld = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE iceVol = comlev1_thsice_adv, key=dkey, byte=isbyte +CADJ STORE af = comlev1_thsice_adv, key=dkey, byte=isbyte +#endif C do not only update the overlap iMinUpd = 1-OLx iMaxUpd = sNx+OLx diff --git a/pkg/thsice/thsice_albedo.F b/pkg/thsice/thsice_albedo.F index f37c8a02f1..b5865e210d 100644 --- a/pkg/thsice/thsice_albedo.F +++ b/pkg/thsice/thsice_albedo.F @@ -74,7 +74,7 @@ SUBROUTINE THSICE_ALBEDO( C albice :: albedo of ice C albNewSnow :: albedo of new (fresh) snow C albNewSnow :: albedo of new (fresh) snow -C msgBuf :: Informational/error meesage buffer +C msgBuf :: Informational/error message buffer c _RL frsnow _RL albsno _RL albice @@ -83,7 +83,9 @@ SUBROUTINE THSICE_ALBEDO( _RL albNIR_ice, albNIR_fHice, recFac_albNIR INTEGER i,j INTEGER ii,jj,icount +#ifndef ALLOW_AUTODIFF CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -104,7 +106,7 @@ SUBROUTINE THSICE_ALBEDO( hs = hSnow(i,j) Tsf = tSrf(i,j) age = ageSnw(i,j) - + C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Albedo of Bare Sea-Ice albice = albIceMax + (albIceMin-albIceMax)*EXP(-hi/hAlbIce) @@ -144,7 +146,7 @@ SUBROUTINE THSICE_ALBEDO( & + 0.075 _d 0 * MIN( -Tsf - 1. _d 0, 0. _d 0 ) sAlbNIR(i,j) = albNIR_ice * ( 1. _d 0 - hs/(hs + 0.02 _d 0) ) - & + ( albNIR_dsnow + & + ( albNIR_dsnow & + 0.15 _d 0 *MIN( -Tsf - 1. _d 0, 0. _d 0) ) & * hs/(hs + 0.02 _d 0) ELSE @@ -174,7 +176,7 @@ SUBROUTINE THSICE_ALBEDO( & 'THSICE_ALBEDO: Problem, e.g., at:', myIter,ii,jj,bi,bj CALL PRINT_ERROR( msgBuf , myThid) WRITE(msgBuf,'(A,1P3E17.9)') - & 'THSICE_ALBEDO: albedo=', sAlb(ii,jj),ageSnw(ii,jj), + & 'THSICE_ALBEDO: albedo=', sAlb(ii,jj),ageSnw(ii,jj), & hsnow(ii,jj) CALL PRINT_ERROR( msgBuf , myThid) STOP 'THSICE_ALBEDO: albedo out of range' diff --git a/pkg/thsice/thsice_balance_frw.F b/pkg/thsice/thsice_balance_frw.F index 17857d9e60..68405c447d 100644 --- a/pkg/thsice/thsice_balance_frw.F +++ b/pkg/thsice/thsice_balance_frw.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_BALANCE_FRW @@ -26,6 +29,9 @@ SUBROUTINE THSICE_BALANCE_FRW( #include "THSICE_SIZE.h" #include "THSICE_PARAMS.h" #include "THSICE_VARS.h" +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT/OUTPUT PARAMETERS: C iMin,iMax :: computation domain: 1rst index range @@ -54,6 +60,13 @@ SUBROUTINE THSICE_BALANCE_FRW( C-- Calculate and global-mean precip (+RunOff) C and global-mean imbalance of net Atmos Fresh-Water flux +#ifdef ALLOW_AUTODIFF_TAMC +C It is important to store these fields here so that in s/r +C thsice_main_ad the entire timestep does not get recomputed just to +C produce these two fields. +CADJ STORE icFrwAtm = comlev1, key = ikey_dynamics, kind = isbyte +CADJ STORE prcAtm = comlev1, key = ikey_dynamics, kind = isbyte +#endif IF ( thSIceBalanceAtmFW.NE.0 ) THEN DO bj=myByLo(myThid),myByHi(myThid) diff --git a/pkg/thsice/thsice_calc_thickn.F b/pkg/thsice/thsice_calc_thickn.F index a9ba704de2..fe4c09809e 100644 --- a/pkg/thsice/thsice_calc_thickn.F +++ b/pkg/thsice/thsice_calc_thickn.F @@ -1,4 +1,8 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +# define ALLOW_AUTODIFF_TAMC_MORE +#endif CBOP C !ROUTINE: THSICE_CALC_THICKN @@ -66,7 +70,6 @@ SUBROUTINE THSICE_CALC_THICKN( #include "THSICE_PARAMS.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -178,6 +181,8 @@ SUBROUTINE THSICE_CALC_THICKN( _RL esurp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL extend _RL hnew (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nlyr) +C help TAF with these variables + _RL hnewTmp, icFracTmp, hIceTmp, hSnwTmp _RL hlyr _RL dhi _RL dhs @@ -207,34 +212,40 @@ SUBROUTINE THSICE_CALC_THICKN( _RL c1Mlt, c2Mlt, aMlt, hMlt _RL c1Frz, c2Frz, aFrz, hFrz _RL enFrcMlt(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL xxMlt, tmpMlt + _RL xxMlt _RL enFrcFrz(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL xxFrz, tmpFrz + _RL xxFrz +# if ( !defined TARGET_NEC_SX && !defined ALLOW_AUTODIFF ) + _RL tmpMlt, tmpFrz +# endif #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C kkey :: tape key (depends on levels and tiles) + INTEGER tkey, kkey +#endif +#ifdef THSICE_REGULARIZE_CALC_THICKN + _RL kScal + PARAMETER ( kScal = 1.D0 ) +#endif +#ifdef ALLOW_DBUG_THSICE C- define grid-point location where to print debugging values #include "THSICE_DEBUG.h" 1020 FORMAT(A,1P4E11.3) +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ rec_nlyr = nlyr rec_nlyr = 1. _d 0 / rec_nlyr dt = thSIce_deltaT + cpchr = cpWater*rhosw*bMeltCoef C for now, use hard coded threshold (iceMaskMin +1.% and +10.%) lowIcFrac1 = iceMaskMin*1.01 _d 0 @@ -293,25 +304,20 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C The commented store directives ("cCADJ") are not picked up by TAF, +C that does not mean that under different circumstances they might be, +C so I leave them here as a reminder. +CADJ STORE hice = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE icfrac = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE frwatm = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE fzmloc = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE hSnow1 = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE qic1 = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE qic2 = comlev1_bibj, key=tkey, kind=isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax -CML#ifdef ALLOW_AUTODIFF_TAMC -CML ikey_1 = i -CML & + sNx*(j-1) -CML & + sNx*sNy*act1 -CML & + sNx*sNy*max1*act2 -CML & + sNx*sNy*max1*max2*act3 -CML & + sNx*sNy*max1*max2*max3*act4 -CML#endif /* ALLOW_AUTODIFF_TAMC */ -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE frwatm(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE fzmloc(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE hice(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE hSnow1(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE icfrac(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE qic1(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE qic2(i,j) = comlev1_thsice_1, key=ikey_1 -CML#endif IF (iceMask(i,j).GT.0. _d 0) THEN qicen(i,j,1)= qIc1(i,j) @@ -332,7 +338,7 @@ SUBROUTINE THSICE_CALC_THICKN( xxFrz = aFrz*(hIce(i,j)-hFrz) c-- IF ( powerLawExp2 .GE. 1 ) THEN -#ifdef TARGET_NEC_SX +#if ( defined TARGET_NEC_SX || defined ALLOW_AUTODIFF ) C avoid the short inner loop that cannot be vectorized xxMlt = xxMlt**powerLaw xxFrz = xxFrz**powerLaw @@ -375,17 +381,32 @@ SUBROUTINE THSICE_CALC_THICKN( C !----------------------------------------------------------------- C ! melting conditions C !----------------------------------------------------------------- +#ifdef THSICE_REGULARIZE_CALC_THICKN +C smooth regulatization + ustar = SQRT(0.00536 _d 0 *v2oc(i,j) + 25. _d -6) +#else C for no currents: - ustar = 5. _d -2 + ustar = 5. _d -3 C frictional velocity between ice and water IF (v2oc(i,j) .NE. 0.) & ustar = SQRT(0.00536 _d 0*v2oc(i,j)) - ustar=max(5. _d -3,ustar) - cpchr =cpWater*rhosw*bMeltCoef + ustar = MAX(5. _d -3,ustar) +#endif +c cpchr =cpWater*rhosw*bMeltCoef Fbot(i,j) = cpchr*(tFrz(i,j)-tOce(i,j))*ustar C fzMlOc < Fbot < 0 - Fbot(i,j) = max(Fbot(i,j),fzMlOc(i,j)) - Fbot(i,j) = min(Fbot(i,j),0. _d 0) +#ifdef THSICE_REGULARIZE_CALC_THICKN +C smooth regulatization +C we want to have some soft maximum for better differentiability: +C max(a,b;k) = (a*exp(k*a)+b*exp(k*b))/(exp(k*a)+exp(k*b)) + Fbot(i,j) = ( + & Fbot(i,j) * EXP(kScal* Fbot(i,j)) + & + fzMlOc(i,j) * EXP(kScal*fzMlOc(i,j)) + & )/( EXP(kScal*Fbot(i,j)) + EXP(kScal*fzMlOc(i,j)) ) +#else + Fbot(i,j) = MAX(Fbot(i,j),fzMlOc(i,j)) +#endif + Fbot(i,j) = MIN(Fbot(i,j),0. _d 0) ENDIF C mass of fresh water and salt initially present in ice @@ -402,6 +423,9 @@ SUBROUTINE THSICE_CALC_THICKN( C end i/j-loops ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE icFrac = comlev1_bibj, key = tkey, kind = isbyte +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| DO j = jMin, jMax DO i = iMin, iMax @@ -485,14 +509,15 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE hSnow1 = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE etop = comlev1_bibj, key = tkey, kind = isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE etop(i,j) = comlev1_thsice_1, key=ikey_1 -CML#endif IF (iceMask(i,j) .GT. 0. _d 0 .AND. & etop(i,j) .GT. 0. _d 0 .AND. - & hSnow1(i,j) .GT. 0. _d 0) THEN + & hSnow1(i,j) .GT. 0. _d 0) THEN C Make sure internal ice temperatures do not exceed Tmlt. C If they do, then eliminate the layer. (Dont think this will happen @@ -512,24 +537,20 @@ SUBROUTINE THSICE_CALC_THICKN( C end i/j-loops ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +CADJ STORE hSnow1 = comlev1_bibj, key = tkey, kind = isbyte +#endif C two layers of ice DO k = 1, nlyr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*nlyr +CADJ STORE etop = comlev1_thsice_nlyr, key=kkey, kind=isbyte +CADJ STORE hnew (:,:,k) = comlev1_thsice_nlyr, key=kkey, kind=isbyte +CADJ STORE qicen(:,:,k) = comlev1_thsice_nlyr, key=kkey, kind=isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j).GT.0. _d 0) THEN -CML#ifdef ALLOW_AUTODIFF_TAMC -CML ikey_2 = k -CML & + nlyr*(i-1) -CML & + nlyr*sNx*(j-1) -CML & + nlyr*sNx*sNy*act1 -CML & + nlyr*sNx*sNy*max1*act2 -CML & + nlyr*sNx*sNy*max1*max2*act3 -CML & + nlyr*sNx*sNy*max1*max2*max3*act4 -CML#endif -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE etop(i,j) = comlev1_thsice_2, key=ikey_2 -CMLCADJ STORE hnew(i,j,k) = comlev1_thsice_2, key=ikey_2 -CML#endif IF (etop(i,j) .GT. 0. _d 0) THEN rq = rhoi * qicen(i,j,k) rqh = rq * hnew(i,j,k) @@ -557,6 +578,13 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO C end k-loop ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C if isbyte=4, these change the AD-monitor output a little (11-14 +C digits of agreement) +CADJ STORE ebot = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hnew = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE qicen = comlev1_bibj, key = tkey, kind = isbyte +#endif C Bottom growth: DO j = jMin, jMax @@ -566,11 +594,6 @@ SUBROUTINE THSICE_CALC_THICKN( qbot = -cpIce *tFrz(i,j) + Lfresh dhi = -ebot(i,j) / (qbot * rhoi) ebot(i,j) = 0. _d 0 -cph k = nlyr -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE hnew(i,j,:) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE qicen(i,j,:) = comlev1_thsice_1, key=ikey_1 -CML#endif qicen(i,j,nlyr) = & (hnew(i,j,nlyr)*qicen(i,j,nlyr)+dhi*qbot) / & (hnew(i,j,nlyr)+dhi) @@ -583,29 +606,19 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE etop(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE ebot(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hnew(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qicen(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C these change the results (increase gradient error sligthly); +C they do not improve performance too much, so we leave commented +cCADJ STORE hnew (:,:,nlyr) = comlev1_bibj, key = tkey, kind = isbyte +cCADJ STORE qicen(:,:,nlyr) = comlev1_bibj, key = tkey, kind = isbyte #endif C Bottom melt: DO k = nlyr, 1, -1 -CML#ifdef ALLOW_AUTODIFF_TAMC -CML ikey_2 = (nlyr-k+1) -CML & + nlyr*(i-1) -CML & + nlyr*sNx*(j-1) -CML & + nlyr*sNx*sNy*act1 -CML & + nlyr*sNx*sNy*max1*act2 -CML & + nlyr*sNx*sNy*max1*max2*act3 -CML & + nlyr*sNx*sNy*max1*max2*max3*act4 -CML#endif -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE ebot(i,j) = comlev1_thsice_2, key=ikey_2 -CMLCADJ STORE hnew(i,j,k) = comlev1_thsice_2, key=ikey_2 -CMLCADJ STORE qicen(i,j,k) = comlev1_thsice_2, key=ikey_2 -CML#endif +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*nlyr +CADJ STORE ebot = comlev1_thsice_nlyr, key=kkey, kind = isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j) .GT. 0. _d 0 .AND. @@ -627,13 +640,19 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO C end k-loop ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C if isbyte=4, these change the AD-monitor output a little (10-11 +C digits of agreement) +CADJ STORE hnew = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE ebot = comlev1_bibj, key = tkey, kind = isbyte +#endif C If ice melts completely and snow is left, remove the snow with C energy from the mixed layer DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j) .GT. 0. _d 0 .AND. & ebot(i,j) .GT. 0. _d 0 .AND. - & hSnow1(i,j) .GT. 0. _d 0) THEN + & hSnow1(i,j) .GT. 0. _d 0) THEN rq = rhos * qsnow rqh = rq * hSnow1(i,j) IF (ebot(i,j) .LT. rqh) THEN @@ -654,6 +673,9 @@ SUBROUTINE THSICE_CALC_THICKN( C end i/j-loops ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +CADJ STORE hSnow1 = comlev1_bibj, key = tkey, kind = isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j).GT.0. _d 0) THEN @@ -719,10 +741,6 @@ SUBROUTINE THSICE_CALC_THICKN( hSnow1(i,j) = hSnow1(i,j) + dt*snowP(i,j)/rhos C If ice evap is used to sublimate surface snow/ice or C if no ice pass on to ocean -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE evapLoc(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE hSnow1(i,j) = comlev1_thsice_1, key=ikey_1 -CML#endif IF (hSnow1(i,j).GT.0. _d 0) THEN IF (evapLoc(i,j)/rhos *dt.GT.hSnow1(i,j)) THEN evapLoc(i,j)=evapLoc(i,j)-hSnow1(i,j)*rhos/dt @@ -740,65 +758,38 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE evaploc(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hnew(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hSnow1(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE icfrac(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -#endif - C- else: hIce > 0 DO k = 1, nlyr +#ifdef ALLOW_AUTODIFF_TAMC + kkey = k + (tkey-1)*nlyr +CADJ STORE evaploc = comlev1_thsice_nlyr, key=kkey, kind=isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j).GT.0. _d 0 ) THEN -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE evapLoc(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE hIce(i,j) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE hnew(i,j,:) = comlev1_thsice_1, key=ikey_1 -CMLCADJ STORE qicen(i,j,:) = comlev1_thsice_1, key=ikey_1 -CML#endif + hnewTmp = hnew(i,j,k) IF (hIce(i,j).GT.0. _d 0.AND.evapLoc(i,j).GT.0. _d 0) THEN -CML#ifdef ALLOW_AUTODIFF_TAMC -CML ikey_2 = k -CML & + nlyr*(i-1) -CML & + nlyr*sNx*(j-1) -CML & + nlyr*sNx*sNy*act1 -CML & + nlyr*sNx*sNy*max1*act2 -CML & + nlyr*sNx*sNy*max1*max2*act3 -CML & + nlyr*sNx*sNy*max1*max2*max3*act4 -CML#endif -CMLC-- -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE evapLoc(i,j) = comlev1_thsice_2, key=ikey_2 -CMLCADJ STORE hnew(i,j,k) = comlev1_thsice_2, key=ikey_2 -CMLCADJ STORE qicen(i,j,k) = comlev1_thsice_2, key=ikey_2 -CML#endif C IF (evapLoc(i,j) .GT. 0. _d 0) THEN C-- original scheme, does not care about ice temp. C- this can produce small error (< 1.W/m2) in the Energy budget -c IF (evapLoc(i,j)/rhoi *dt.GT.hnew(i,j,k)) THEN -c evapLoc(i,j)=evapLoc(i,j)-hnew(i,j,k)*rhoi/dt +c IF (evapLoc(i,j)/rhoi *dt.GT.hnewTmp) THEN +c evapLoc(i,j)=evapLoc(i,j)-hnewTmp*rhoi/dt c hnew(i,j,k)=0. _d 0 c ELSE -c hnew(i,j,k) = hnew(i,j,k) - evapLoc(i,j)/rhoi *dt +c hnew(i,j,k) = hnewTmp - evapLoc(i,j)/rhoi *dt c evapLoc(i,j)=0. _d 0 c ENDIF C-- modified scheme. taking into account Ice enthalpy dhi = evapLoc(i,j)/rhoi*dt - IF (dhi.GE.hnew(i,j,k)) THEN - evapLoc(i,j)=evapLoc(i,j)-hnew(i,j,k)*rhoi/dt + IF (dhi.GE.hnewTmp) THEN + evapLoc(i,j)=evapLoc(i,j)-hnewTmp*rhoi/dt esurp(i,j) = esurp(i,j) - & - hnew(i,j,k)*rhoi*(qicen(i,j,k)-Lfresh) + & - hnewTmp*rhoi*(qicen(i,j,k)-Lfresh) hnew(i,j,k)=0. _d 0 ELSE -CML#ifdef ALLOW_AUTODIFF_TAMC -CMLCADJ STORE hnew(i,j,k) = comlev1_thsice_2, key=ikey_2 -CML#endif - hq = hnew(i,j,k)*qicen(i,j,k)-dhi*Lfresh - hnew(i,j,k) = hnew(i,j,k) - dhi + hq = hnewTmp*qicen(i,j,k)-dhi*Lfresh + hnew(i,j,k) = hnewTmp - dhi qicen(i,j,k)=hq/hnew(i,j,k) evapLoc(i,j)=0. _d 0 ENDIF @@ -818,12 +809,14 @@ SUBROUTINE THSICE_CALC_THICKN( C end k-loop ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE etop(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -cphCADJ STORE icemask(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hnew(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qicen(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C if isbyte=4, these change the AD-monitor output a little (8-10 +C digits of agreement) +CADJ STORE evapLoc = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hSnow1 = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hIce = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hnew = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE qicen = comlev1_bibj, key = tkey, kind = isbyte #endif C still else: hice > 0 @@ -862,19 +855,15 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cphCADJ STORE icemask(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hice(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hnew(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hSnow1(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qicen(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -#endif - DO j = jMin, jMax DO i = iMin, iMax +C These helper variables avoid TAF recomputation warnings + hIceTmp = hIce(i,j) + hSnwTmp = hSnow1(i,j) + hnewTmp = hnew(i,j,1) IF (iceMask(i,j).GT.0. _d 0) THEN - IF ( hIce(i,j) .GT. 0. _d 0 ) THEN + IF ( hIceTmp .GT. 0. _d 0 ) THEN C If there is enough snow to lower the ice/snow interface below C freeboard, convert enough snow to ice to bring the interface back @@ -882,45 +871,64 @@ SUBROUTINE THSICE_CALC_THICKN( C converted to ice to bring hSnow1 down to hsMax. Largest change is C applied and enthalpy of top ice layer adjusted accordingly. -#ifdef ALLOW_AUTODIFF_TAMC - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*act1 - & + sNx*sNy*max1*act2 - & + sNx*sNy*max1*max2*act3 - & + sNx*sNy*max1*max2*max3*act4 -#endif /* ALLOW_AUTODIFF_TAMC */ - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hIce(i,j) = comlev1_thsice_1, key=ikey_1 -CADJ STORE hSnow1(i,j) = comlev1_thsice_1, key=ikey_1 -CADJ STORE hnew(i,j,:) = comlev1_thsice_1, key=ikey_1 -CADJ STORE qicen(i,j,:) = comlev1_thsice_1, key=ikey_1 -#endif - IF ( hSnow1(i,j) .GT. hIce(i,j)*floodFac - & .OR. hSnow1(i,j) .GT. hsMax ) THEN + IF ( hSnwTmp .GT. hIceTmp*floodFac + & .OR. hSnwTmp .GT. hsMax ) THEN cBB WRITE (6,*) 'Freeboard adjusts' -c dhi = (hSnow1(i,j) * rhos - hIce(i,j) * rhoiw) / rhosw +c dhi = (hSnwTmp * rhos - hIceTmp * rhoiw) / rhosw c dhs = dhi * rhoi / rhos -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hnew(i,j,:) = comlev1_thsice_1, key=ikey_1 -#endif - dhs = (hSnow1(i,j) - hIce(i,j)*floodFac) * rhoi / rhosw - dhs = MAX( hSnow1(i,j) - hsMax, dhs ) + dhs = (hSnwTmp - hIceTmp*floodFac) * rhoi / rhosw + dhs = MAX( hSnwTmp - hsMax, dhs ) dhi = dhs * rhos / rhoi - rqh = rhoi*qicen(i,j,1)*hnew(i,j,1) + rhos*qsnow*dhs - hnew(i,j,1) = hnew(i,j,1) + dhi - qicen(i,j,1) = rqh / (rhoi*hnew(i,j,1)) - hIce(i,j) = hIce(i,j) + dhi - hSnow1(i,j) = hSnow1(i,j) - dhs + rqh = rhoi*qicen(i,j,1)*hnewTmp + rhos*qsnow*dhs + hnew(i,j,1) = hnewTmp + dhi + qicen(i,j,1) = rqh / (rhoi*hnew(i,j,1)) + hIce(i,j) = hIceTmp + dhi + hSnow1(i,j) = hSnwTmp - dhs ENDIF +#ifdef ALLOW_AUTODIFF +C This is awkward, but makes storing a few variables (hIce, hnew, +C qicen) unnecessary. Splitting the loop also changes the condition +C hIce>0 because hIce has been modified above. This could be handled +C more cleanly, but because hIce>0 is required for the previous +C block to be executed where snow is turned into ice hIce>0 is still +C unchanged, so splitting this loop with the if conditions should be +C safe. If this turns out to be robust, we can use this code also +C for non-AD simulation. +C- if hIce > 0 : end + ENDIF +C endif iceMask > 0 + ENDIF +C end i/j-loops + ENDDO + ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C if isbyte=4, these change the AD-monitor output a little (8-10 +C digits of agreement), but avoid quite a few recomputations +CADJ STORE qicen = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hice = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hnew(:,:,1) = comlev1_bibj, key = tkey, kind = isbyte +#endif + DO j = jMin, jMax + DO i = iMin, iMax +C This helper variable avoids TAF recomputation warnings + hIceTmp = hIce(i,j) + IF (iceMask(i,j).GT.0. _d 0) THEN + IF ( hIceTmp .GT. 0. _d 0 ) THEN +C limit ice height +C- NOTE: this part does not conserve Energy ; +C but surplus of fresh water and salt are taken into account. + IF (hIceTmp.GT.hiMax) THEN +cBB print*,'BBerr, hIce>hiMax',i,j,hIce(i,j) + chi=hIceTmp-hiMax +#else /* ndef ALLOW_AUTODIFF */ C limit ice height C- NOTE: this part does not conserve Energy ; C but surplus of fresh water and salt are taken into account. IF (hIce(i,j).GT.hiMax) THEN cBB print*,'BBerr, hIce>hiMax',i,j,hIce(i,j) chi=hIce(i,j)-hiMax +#endif /* ALLOW_AUTODIFF */ hnew(i,j,1)=hnew(i,j,1)-chi/2. _d 0 hnew(i,j,2)=hnew(i,j,2)-chi/2. _d 0 frw2oc(i,j) = frw2oc(i,j) + chi*rhoi/dt @@ -987,6 +995,10 @@ SUBROUTINE THSICE_CALC_THICKN( C end i/j-loops ENDDO ENDDO +#ifdef ALLOW_AUTODIFF_TAMC_MORE +CADJ STORE qicen = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hnew = comlev1_bibj, key = tkey, kind = isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax @@ -1029,7 +1041,7 @@ SUBROUTINE THSICE_CALC_THICKN( & (mwater0(i,j)-(rhos*hSnow1(i,j)+rhoi*hIce(i,j)))/dt, & evapLoc(i,j),frw2oc(i,j),fsalt(i,j) WRITE(6,1020)'ThSI_CALC_TH: flx2oc,Fbot,extend/dt =', - & flx2oc(I,J),Fbot(i,j),(etope(i,j)+ebote(i,j))/dt + & flx2oc(i,j),Fbot(i,j),(etope(i,j)+ebote(i,j))/dt ENDIF #endif @@ -1042,30 +1054,24 @@ SUBROUTINE THSICE_CALC_THICKN( ENDDO ENDDO -#ifdef ALLOW_AUTODIFF_TAMC -cphCADJ STORE icemask(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE icfrac(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hnew(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hSnow1(:,:) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qicen(:,:,:) = comlev1_bibj, key=ticekey, byte=isbyte -#endif - DO j = jMin, jMax DO i = iMin, iMax +C this copy really only helps TAF + icFracTmp = icFrac(i,j) IF (iceMask(i,j).GT.0. _d 0) THEN C-- note: at this point, icFrac has not been changed (unless reset to zero) C and it can only be reduced by lateral melting in the following part: C calculate extent changes extend=etope(i,j)+ebote(i,j) - IF (icFrac(i,j).GT.0. _d 0.AND.extend.GT.0. _d 0) THEN + IF (icFracTmp.GT.0. _d 0.AND.extend.GT.0. _d 0) THEN rq = rhoi * 0.5 _d 0*(qicen(i,j,1)+qicen(i,j,2)) rs = rhos * qsnow rqh = rq * hIce(i,j) + rs * hSnow1(i,j) freshe=(rhos*hSnow1(i,j)+rhoi*hIce(i,j))/dt salte=(rhoi*hIce(i,j)*saltIce)/dt IF ( extend.LT.rqh ) THEN - icFrac(i,j)=(1. _d 0-extend/rqh)*icFrac(i,j) + icFrac(i,j)=(1. _d 0-extend/rqh)*icFracTmp ENDIF IF ( extend.LT.rqh .AND. icFrac(i,j).GE.iceMaskMin ) THEN frw2oc(i,j)=frw2oc(i,j)+extend/rqh*freshe diff --git a/pkg/thsice/thsice_check.F b/pkg/thsice/thsice_check.F index 4cbdcaf104..f656c635c6 100644 --- a/pkg/thsice/thsice_check.F +++ b/pkg/thsice/thsice_check.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_CHECK @@ -75,21 +78,23 @@ SUBROUTINE THSICE_CHECK( myThid ) CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 #endif - IF ( balanceEmPmR ) THEN + IF ( selectBalanceEmPmR.GE.1 ) THEN WRITE(msgBuf,'(2A)') 'THSICE_CHECK: cannot use', - & ' both balanceEmPmR and thSIceBalanceAtmFW' + & ' both selectBalanceEmPmR and thSIceBalanceAtmFW' CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF ENDIF -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC IF ( nitMaxTsf .GT. MaxTsf ) THEN WRITE(msgBuf,'(2A)') & 'THSICE_CHECK: Need to set MaxTsf >= nitMaxTsf for TAF' CALL PRINT_ERROR( msgBuf, myThid ) errCount = errCount + 1 ENDIF +#endif /* ALLOW_AUTODIFF_TAMC */ +#ifdef ALLOW_AUTODIFF # ifdef ALLOW_DBUG_THSICE WRITE(msgBuf,'(2A)') & 'THSICE_CHECK: cannot compile AD-code with ALLOW_DBUG_THSICE' @@ -98,17 +103,6 @@ SUBROUTINE THSICE_CHECK( myThid ) # endif #endif /* ALLOW_AUTODIFF */ -#ifdef OLD_THSICE_CALL_SEQUENCE - WRITE(msgBuf,'(2A)') '** WARNING ** THSICE_CHECK: ', - & 'OLD_THSICE_CALL_SEQUENCE code no longer maintained' - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) - WRITE(msgBuf,'(2A)') '** WARNING ** THSICE_CHECK: ', - & 'option and related code will be removed after chkpt-64e' - CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, - & SQUEEZE_RIGHT, myThid ) -#endif /* OLD_THSICE_CALL_SEQUENCE */ - IF ( useAIM .AND. .NOT.( stepFwd_oceMxL .OR. useCoupler ) & .AND. tauRelax_MxL.NE. -1. _d 0 ) THEN C- with pkg/aim, usual way to use pkg/thsice is to step-forward Mixed-Layer diff --git a/pkg/thsice/thsice_cost_driver.F b/pkg/thsice/thsice_cost_driver.F index d7722c0da3..a45e6cac5c 100644 --- a/pkg/thsice/thsice_cost_driver.F +++ b/pkg/thsice/thsice_cost_driver.F @@ -1,6 +1,12 @@ #include "THSICE_OPTIONS.h" +c#ifdef ALLOW_AUTODIFF +c# include "AUTODIFF_OPTIONS.h" +c#endif +#ifdef ALLOW_COST +# include "COST_OPTIONS.h" +#endif - subroutine thsice_cost_driver( mytime, myiter, mythid ) + SUBROUTINE THSICE_COST_DRIVER( myTime, myIter, myThid ) c ================================================================== c SUBROUTINE thsice_cost_driver @@ -13,30 +19,30 @@ subroutine thsice_cost_driver( mytime, myiter, mythid ) c SUBROUTINE thsice_cost_driver c ================================================================== - implicit none + IMPLICIT NONE c == global variables == #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" -#include "GRID.h" +c#include "GRID.h" -#ifdef ALLOW_COST -# include "CTRL_SIZE.h" -# include "ctrl.h" -# include "ctrl_dummy.h" -#endif +c#ifdef ALLOW_COST +c# include "CTRL_SIZE.h" +c# include "ctrl.h" +c# include "ctrl_dummy.h" +c#endif c == routine arguments == - - integer myiter - _RL mytime - integer mythid + _RL myTime + INTEGER myIter + INTEGER myThid c == end of interface == #ifdef ALLOW_THSICE_COST_TEST - CALL THSICE_COST_TEST( mytime, myiter, mythid ) + CALL THSICE_COST_TEST( myTime, myIter, myThid ) #endif - end + RETURN + END diff --git a/pkg/thsice/thsice_cost_init_varia.F b/pkg/thsice/thsice_cost_init_varia.F index 52208e9e55..c4eca6fae9 100644 --- a/pkg/thsice/thsice_cost_init_varia.F +++ b/pkg/thsice/thsice_cost_init_varia.F @@ -1,19 +1,14 @@ #include "THSICE_OPTIONS.h" - subroutine thsice_cost_init_varia( mythid ) + SUBROUTINE THSICE_COST_INIT_VARIA( myThid ) c ================================================================== -c SUBROUTINE thsice_cost_init_varia -c ================================================================== -c -c ================================================================== -c SUBROUTINE thsice_cost_init_varia +c SUBROUTINE THSICE_COST_INIT_VARIA c ================================================================== - implicit none + IMPLICIT NONE c == global variables == - #include "EEPARAMS.h" #include "SIZE.h" #include "GRID.h" @@ -22,37 +17,23 @@ subroutine thsice_cost_init_varia( mythid ) #endif c == routine arguments == - - integer mythid + INTEGER myThid #ifdef ALLOW_COST c == local variables == - - integer bi,bj - integer itlo,ithi - integer jtlo,jthi - - logical exst - -c == external functions == + INTEGER bi,bj c == end of interface == - jtlo = myByLo(mythid) - jthi = myByHi(mythid) - itlo = myBxLo(mythid) - ithi = myBxHi(mythid) c-- Initialize the tiled cost function contributions. - do bj = jtlo,jthi - do bi = itlo,ithi -# ifdef ALLOW_COST - objf_thsice(bi,bj) = 0. _d 0 - num_thsice(bi,bj) = 0. _d 0 -# endif - enddo - enddo + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + objf_thsice(bi,bj) = 0. _d 0 + num_thsice(bi,bj) = 0. _d 0 + ENDDO + ENDDO -#endif +#endif /* ALLOW_COST */ - return - end + RETURN + END diff --git a/pkg/thsice/thsice_cost_test.F b/pkg/thsice/thsice_cost_test.F index c22ac836ea..992e3df4e8 100644 --- a/pkg/thsice/thsice_cost_test.F +++ b/pkg/thsice/thsice_cost_test.F @@ -1,6 +1,12 @@ #include "THSICE_OPTIONS.h" +c#ifdef ALLOW_AUTODIFF +c# include "AUTODIFF_OPTIONS.h" +c#endif +#ifdef ALLOW_COST +# include "COST_OPTIONS.h" +#endif - subroutine thsice_cost_test( mytime, myiter, mythid ) + SUBROUTINE THSICE_COST_TEST( myTime, myIter, myThid ) c ================================================================== c SUBROUTINE thsice_cost_test @@ -11,23 +17,23 @@ subroutine thsice_cost_test( mytime, myiter, mythid ) c c thsice_cost_ice_flag = 1 c - compute mean sea-ice volume -c costIceStart < mytime < costIceEnd +c costIceStart < myTime < costIceEnd c c thsice_cost_ice_flag = 2 c - compute mean sea-ice area -c costIceStart < mytime < costIceEnd +c costIceStart < myTime < costIceEnd c c thsice_cost_ice_flag = 3 c - heat content of top level plus latent heat of sea-ice -c costIceStart < mytime < costIceEnd +c costIceStart < myTime < costIceEnd c c thsice_cost_ice_flag = 4 c - heat content of top level -c costIceStart < mytime < costIceEnd +c costIceStart < myTime < costIceEnd c c thsice_cost_ice_flag = 5 c - heat content of top level plus sea-ice plus latent heat of snow -c costIceStart < mytime < costIceEnd +c costIceStart < myTime < costIceEnd c c thsice_cost_ice_flag = 6 c - quadratic cost function measuring difference between pkg/thsice @@ -38,7 +44,7 @@ subroutine thsice_cost_test( mytime, myiter, mythid ) c SUBROUTINE thsice_cost_test c ================================================================== - implicit none + IMPLICIT NONE c == global variables == #ifdef ALLOW_THSICE_COST_TEST @@ -49,75 +55,68 @@ subroutine thsice_cost_test( mytime, myiter, mythid ) #include "THSICE_SIZE.h" #include "THSICE_COST.h" #include "THSICE_VARS.h" -#include "DYNVARS.h" +c#include "DYNVARS.h" #include "cost.h" #endif /* ALLOW_THSICE_COST_TEST */ c == routine arguments == - - _RL mytime - integer myiter - integer mythid + _RL myTime + INTEGER myIter + INTEGER myThid #ifdef ALLOW_THSICE_COST_TEST +c == external functions == +c INTEGER ILNBLNK +c EXTERNAL ILNBLNK c == local variables == - -c msgBuf - Informational/error message buffer +c msgBuf :: Informational/error message buffer CHARACTER*(MAX_LEN_MBUF) msgBuf - integer bi,bj,i,j,kSrf + INTEGER bi, bj, i, j _RL tempVar -c == external functions == - - integer ilnblnk - external ilnblnk - c == end of interface == - if ( myTime .GT. (endTime - lastinterval) ) then + IF ( myTime .GT. (endTime - lastinterval) ) THEN tempVar = 1. _d 0/ - & ( ( 1. _d 0 + min(endTime-startTime,lastinterval) ) + & ( ( 1. _d 0 + MIN(endTime-startTime,lastinterval) ) & / deltaTClock ) - kSrf = 1 - - if ( thsice_cost_ice_flag .eq. 1 ) then + IF ( thsice_cost_ice_flag .EQ. 1 ) THEN c sea-ice volume - do bj=myByLo(myThid),myByHi(myThid) - do bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sny - do i = 1,snx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx objf_thsice(bi,bj) = objf_thsice(bi,bj) + & tempVar*rA(i,j,bi,bj)*iceHeight(i,j,bi,bj) - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO - elseif ( thsice_cost_ice_flag .eq. 2 ) then + ELSEIF ( thsice_cost_ice_flag .EQ. 2 ) THEN c sea-ice area - do bj=myByLo(myThid),myByHi(myThid) - do bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sny - do i = 1,snx + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx objf_thsice(bi,bj) = objf_thsice(bi,bj) + & tempVar*rA(i,j,bi,bj)*iceMask(i,j,bi,bj) - enddo - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO + ENDDO - else + ELSE WRITE(msgBuf,'(A)') & 'THSICE_COST_TEST: invalid thsice_cost_ice_flag' - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , myThid ) + CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R THSICE_COST_TEST' - endif - endif + ENDIF + ENDIF #endif /* ALLOW_THSICE_COST_TEST */ - return - end + RETURN + END diff --git a/pkg/thsice/thsice_diagnostics_init.F b/pkg/thsice/thsice_diagnostics_init.F index 119c111009..1cea4b4ca0 100644 --- a/pkg/thsice/thsice_diagnostics_init.F +++ b/pkg/thsice/thsice_diagnostics_init.F @@ -121,16 +121,6 @@ SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid ) CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) -#ifdef OLD_THSICE_CALL_SEQUENCE - diagName = 'SI_FrcFx' - diagTitle = 'Sea-Ice fraction [0-1], synchro. with fluxes' - diagUnits = '0-1 ' - diagCode = 'SM P M1 ' - CALL DIAGNOSTICS_ADDTOLIST( diagNum, - I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) - numFrcFx = diagNum -#endif /* OLD_THSICE_CALL_SEQUENCE */ - diagName = 'SIalbedo' diagTitle = 'Sea-Ice Albedo [0-1] (area weighted average)' diagUnits = '0-1 ' @@ -175,7 +165,7 @@ SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid ) diagName = 'SIsaltFx' diagTitle = 'salt flux out of the ocean (+=up)' - diagUnits = 'psu.kg/m^2/s ' + diagUnits = 'g/m^2/s ' diagCode = 'SM M1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) @@ -189,7 +179,7 @@ SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid ) diagName = 'SIsOcMxL' diagTitle = 'ocean mixed layer salinity' - diagUnits = 'psu ' + diagUnits = 'g/kg ' diagCode = 'SM P M1 ' CALL DIAGNOSTICS_ADDTOLIST( diagNum, I diagName, diagCode, diagUnits, diagTitle, 0, myThid ) @@ -233,13 +223,8 @@ SUBROUTINE THSICE_DIAGNOSTICS_INIT( myThid ) ENDIF ENDDO -#ifdef OLD_THSICE_CALL_SEQUENCE -C-- Intermediate State, just after advection: - locName = ' after advection' -#else /* OLD_THSICE_CALL_SEQUENCE */ C-- Intermediate State, just before advection: locName = 'before advection' -#endif /* OLD_THSICE_CALL_SEQUENCE */ diagName = 'SI_AdvFr' diagTitle = 'Sea-Ice fraction [0-1] ('//locName//')' diagUnits = '0-1 ' diff --git a/pkg/thsice/thsice_do_advect.F b/pkg/thsice/thsice_do_advect.F index 7a07d215eb..c208e8a188 100644 --- a/pkg/thsice/thsice_do_advect.F +++ b/pkg/thsice/thsice_do_advect.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_DO_ADVECT @@ -45,15 +48,16 @@ SUBROUTINE THSICE_DO_ADVECT( C bi, bj :: Tile indices C uIce/vIce :: ice velocity on C-grid [m/s] INTEGER bi, bj -#ifndef OLD_THSICE_CALL_SEQUENCE INTEGER i, j INTEGER iMin, iMax, jMin, jMax +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey #endif _RL uIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL vIce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) IF ( thSIceAdvScheme.GT.0 .AND. biArg.EQ.0 .AND. bjArg.EQ.0 ) THEN -#ifndef OLD_THSICE_CALL_SEQUENCE c iMin = 1 c iMax = sNx c jMin = 1 @@ -65,41 +69,25 @@ SUBROUTINE THSICE_DO_ADVECT( DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ CALL THSICE_GET_VELOCITY( O uIce, vIce, I bi,bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE icemask(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qice1(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE hOceMxL(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE icemask(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE qice1(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE hOceMxL(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif CALL THSICE_ADVDIFF( U uIce, vIce, I bi,bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hOceMxL(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE snowHeight(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE iceHeight(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE iceMask(:,:,bi,bj) = -CADJ & comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE hOceMxL(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE iceHeight(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte +CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj, key=tkey, byte=isbyte #endif DO j = jMin, jMax DO i = iMin, iMax @@ -126,21 +114,9 @@ SUBROUTINE THSICE_DO_ADVECT( & _EXCH_XY_RL( iceMask, myThid ) IF ( useRealFreshWaterFlux ) & _EXCH_XY_RS( sIceLoad, myThid ) -#endif /* ndef OLD_THSICE_CALL_SEQUENCE */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef OLD_THSICE_CALL_SEQUENCE - ELSEIF ( thSIceAdvScheme.GT.0 ) THEN - bi = biArg - bj = bjArg - CALL THSICE_GET_VELOCITY( - O uIce, vIce, - I bi,bj, myTime, myIter, myThid ) - CALL THSICE_ADVDIFF( - U uIce, vIce, - I bi,bj, myTime, myIter, myThid ) -#endif /* OLD_THSICE_CALL_SEQUENCE */ ENDIF RETURN diff --git a/pkg/thsice/thsice_extend.F b/pkg/thsice/thsice_extend.F index 7ff0db8c62..5f6b95fb93 100644 --- a/pkg/thsice/thsice_extend.F +++ b/pkg/thsice/thsice_extend.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_EXTEND @@ -31,7 +34,6 @@ SUBROUTINE THSICE_EXTEND( #include "THSICE_PARAMS.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -109,16 +111,22 @@ SUBROUTINE THSICE_EXTEND( _RL qicAv INTEGER i,j ! loop indices +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif C- define grid-point location where to print debugging values #include "THSICE_DEBUG.h" +#ifdef ALLOW_DBUG_THSICE 1020 FORMAT(A,1P4E11.3) +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| deltaTice = thSIce_deltaT -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx flx2oc(i,j) = 0. _d 0 @@ -126,127 +134,100 @@ SUBROUTINE THSICE_EXTEND( fsalt (i,j) = 0. _d 0 ENDDO ENDDO -#endif /* ALLOW_AUTODIFF_TAMC */ +#endif /* ALLOW_AUTODIFF */ #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE hIce(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE hSnow(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE icFrac(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE qIc1(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE qIc2(:,:) = comlev1_bibj,key=ticekey,byte=isbyte + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE hIce = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hSnow = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE icFrac = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE qIc1 = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE qIc2 = comlev1_bibj, key = tkey, kind = isbyte #endif DO j = jMin, jMax DO i = iMin, iMax -c#ifdef ALLOW_AUTODIFF_TAMC -c ikey_1 = i -c & + sNx*(j-1) -c & + sNx*sNy*act1 -c & + sNx*sNy*max1*act2 -c & + sNx*sNy*max1*max2*act3 -c & + sNx*sNy*max1*max2*max3*act4 -c#endif /* ALLOW_AUTODIFF_TAMC */ -c#ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE hice(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE hsnow(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE icfrac(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE qic1(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE qic2(i,j) = comlev1_thsice_1, key=ikey_1 -c#endif IF (fzMlOc(i,j).GT.0. _d 0) THEN - esurp = fzMlOc(i,j) - Tf = tFrz(i,j) - iceFrac = icFrac(i,j) - iceThick= hIce(i,j) - qicen(1)= qIc1(i,j) - qicen(2)= qIc2(i,j) + esurp = fzMlOc(i,j) + Tf = tFrz(i,j) + iceFrac = icFrac(i,j) + iceThick = hIce(i,j) + qicen(1) = qIc1(i,j) + qicen(2) = qIc2(i,j) C--- C-- start ice - iceFormed = 0. _d 0 - iceVol = iceFrac*iceThick + iceFormed = 0. _d 0 + iceVol = iceFrac*iceThick C- enthalpy of new ice to form : - IF ( iceFrac.LE.0. _d 0 ) THEN - qicen(1)= -cpWater*Tmlt1 - & + cpIce *(Tmlt1-Tf) + Lfresh*(1. _d 0-Tmlt1/Tf) - qicen(2)= -cpIce *Tf + Lfresh - ENDIF - qicAv = rhoi*(qicen(1)+qicen(2))*0.5 _d 0 - newIce = esurp*deltaTice/qicAv - - IF ( icFrac(i,j).EQ.0. _d 0 ) THEN -C- to keep identical results (as it use to be): -c-old_v IF ( newIce.GE.hThinIce*iceMaskMin ) THEN + IF ( iceFrac.LE.0. _d 0 ) THEN + qicen(1) = -cpWater*Tmlt1 + & + cpIce *(Tmlt1-Tf) + Lfresh*(1. _d 0-Tmlt1/Tf) + qicen(2) = -cpIce *Tf + Lfresh + ENDIF + qicAv = rhoi*(qicen(1)+qicen(2))*0.5 _d 0 + newIce = esurp*deltaTice/qicAv + + IF ( icFrac(i,j).EQ.0. _d 0 ) THEN +C- to keep identical results (as it used to be): +c-old_v: IF ( newIce.GE.hThinIce*iceMaskMin ) THEN C- here we allow to form ice earlier (as soon as min-ice-vol is reached) c-new_v: IF ( newIce.GT.hIceMin*iceMaskMin ) THEN C- if there is no ice in grid-cell and enough ice to form: -C- make ice over iceMaskMin fraction, up to hThinIce, -C and if more ice to form, then increase fraction - iceThick = MIN(hThinIce,newIce/iceMaskMin) - iceThick = MAX(iceThick,newIce/iceMaskMax) - iceFrac = newIce/iceThick - iceFormed = newIce +C- make ice over iceMaskMin fraction, up to hThinIce, +C and if more ice to form, then increase fraction + iceThick = MIN(hThinIce,newIce/iceMaskMin) + iceThick = MAX(iceThick,newIce/iceMaskMax) + iceFrac = newIce/iceThick + iceFormed = newIce ENDIF - ELSEIF ( iceVol.LT.hiMax*iceMaskMax ) THEN + ELSEIF ( iceVol.LT.hiMax*iceMaskMax ) THEN C- if there is already some ice C create ice with same thickness or hNewIceMax (the smallest of the 2) - hNewIce = MIN(iceThick,hNewIceMax) - iceFrac = MIN(icFrac(i,j)+newIce/hNewIce,iceMaskMax) + hNewIce = MIN(hIce(i,j),hNewIceMax) + iceFrac = MIN(icFrac(i,j)+newIce/hNewIce,iceMaskMax) C- update thickness: area weighted average c-new_v: - iceThick = MIN(hiMax,(iceVol+newIce)/iceFrac) + iceThick = MIN(hiMax,(iceVol+newIce)/iceFrac) C- to keep identical results: comment the line above and uncomment line below: c-old_v iceFrac = MIN(icFrac(i,j)+newIce/iceThick,iceMaskMax) - iceFormed = iceThick*iceFrac - iceVol + iceFormed = iceThick*iceFrac - iceVol C- spread snow out over ice - hSnow(i,j) = hSnow(i,j)*icFrac(i,j)/iceFrac - ENDIF + hSnow(i,j) = hSnow(i,j)*icFrac(i,j)/iceFrac + ENDIF C- oceanic fluxes: - flx2oc(i,j)= qicAv*iceFormed/deltaTice - frw2oc(i,j)= -rhoi*iceFormed/deltaTice - fsalt(i,j)= -(rhoi*saltIce)*iceFormed/deltaTice + flx2oc(i,j) = qicAv*iceFormed/deltaTice + frw2oc(i,j) = -rhoi*iceFormed/deltaTice + fsalt (i,j) = -(rhoi*saltIce)*iceFormed/deltaTice C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_DBUG_THSICE - IF ( dBug(i,j,bi,bj) ) THEN + IF ( dBug(i,j,bi,bj) ) THEN WRITE(6,1020) 'ThSI_EXT: iceH, newIce, newIceFrac=', & iceThick, newIce, iceFrac-icFrac(i,j) WRITE(6,1020) 'ThSI_EXT: iceFrac,flx2oc,fsalt,frw2oc=', & iceFrac,flx2oc(i,j),fsalt(i,j),frw2oc(i,j) - ENDIF + ENDIF #endif #ifdef CHECK_ENERGY_CONSERV - CALL THSICE_CHECK_CONSERV( dBugFlag, i, j, bi, bj, 1, + CALL THSICE_CHECK_CONSERV( dBugFlag, i, j, bi, bj, 1, I icFrac(i,j), iceFrac, iceThick, hSnow(i,j), qicen, I flx2oc(i,j), frw2oc(i,j), fsalt(i,j), I myTime, myIter, myThid ) #endif /* CHECK_ENERGY_CONSERV */ C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| C-- Update Sea-Ice state output: - IF ( iceFrac.GT.0. _d 0 .AND. icFrac(i,j).EQ.0. _d 0) THEN -c hSnow(i,j) = 0. _d 0 - tSrf(i,j) = tFrz(i,j) - tIc1(i,j) = tFrz(i,j) - tIc2(i,j) = tFrz(i,j) - qIc1(i,j) = qicen(1) - qIc2(i,j) = qicen(2) - ENDIF - icFrac(i,j) = iceFrac - hIce(i,j) = iceThick + IF ( iceFrac.GT.0. _d 0 .AND. icFrac(i,j).EQ.0. _d 0) THEN +c hSnow(i,j) = 0. _d 0 + tSrf(i,j) = tFrz(i,j) + tIc1(i,j) = tFrz(i,j) + tIc2(i,j) = tFrz(i,j) + qIc1(i,j) = qicen(1) + qIc2(i,j) = qicen(2) + ENDIF + icFrac(i,j) = iceFrac + hIce (i,j) = iceThick ENDIF ENDDO ENDDO diff --git a/pkg/thsice/thsice_get_exf.F b/pkg/thsice/thsice_get_exf.F index 84b12ec8c8..c05e161f97 100644 --- a/pkg/thsice/thsice_get_exf.F +++ b/pkg/thsice/thsice_get_exf.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif #ifdef ALLOW_EXF #include "EXF_OPTIONS.h" #endif @@ -35,7 +38,6 @@ SUBROUTINE THSICE_GET_EXF( #endif #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" # include "THSICE_SIZE.h" #endif @@ -60,7 +62,7 @@ SUBROUTINE THSICE_GET_EXF( INTEGER iMin, iMax INTEGER jMin, jMax _RL icFlag (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL hSnow1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL hSnow1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL tsfCel (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flxExcSw(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dFlxdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -109,7 +111,7 @@ SUBROUTINE THSICE_GET_EXF( _RL atmrho_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy) #endif C - _RL ssq (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL ssq _RL ren, rhn ! neutral, zref (=10m) values of re, rh _RL usn, usm ! neutral, zref (=10m) wind-speed (+limited) _RL stable ! = 1 if stable ; = 0 if unstable @@ -146,6 +148,12 @@ SUBROUTINE THSICE_GET_EXF( _RL lath _RL qsat_fac _RL qsat_exp +#ifdef ALLOW_AUTODIFF_TAMC +C ikey :: tape key (depends on tiles and external iteration) +C nbkey :: tape key (depends on ikey and bulk formulae iteration) +C ijkey :: tape key (depends on nbkey, and i,j indices) + INTEGER ikey, nbkey, ijkey +#endif #ifdef ALLOW_DBUG_THSICE LOGICAL dBugFlag INTEGER stdUnit @@ -192,7 +200,6 @@ SUBROUTINE THSICE_GET_EXF( re(i,j) = 0. _d 0 delq(i,j) = 0. _d 0 deltap(i,j) = 0. _d 0 - ssq(i,j) = 0. _d 0 ENDDO ENDDO C @@ -206,23 +213,6 @@ SUBROUTINE THSICE_GET_EXF( & i,j,bi,bj, atemp(i,j,bi,bj),lwdown(i,j,bi,bj) #endif -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*(it2-1) - & + sNx*sNy*MaxTsf*act1 - & + sNx*sNy*MaxTsf*max1*act2 - & + sNx*sNy*MaxTsf*max1*max2*act3 - & + sNx*sNy*MaxTsf*max1*max2*max3*act4 -#endif - C-- Use atmospheric state to compute surface fluxes. IF ( (icFlag(i,j).GT.0. _d 0) .AND. & (atemp(i,j,bi,bj).NE.0. _d 0) ) THEN @@ -235,29 +225,26 @@ SUBROUTINE THSICE_GET_EXF( Tsf = tsfCel(i,j)+cen2kel Ts2 = Tsf*Tsf C wind speed -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE sh(i,j,bi,bj) = comlev1_thsice_3, key = ikey_1 -#endif wsm = sh(i,j,bi,bj) C-- air - surface difference of temperature & humidity c tmpbulk= exf_BulkqSat(Tsf) -c ssq(i,j) = saltsat*tmpbulk/atmrho +c ssq = saltsat*tmpbulk/atmrho tmpbulk = qsat_fac*EXP(-qsat_exp/Tsf) #ifdef EXF_CALC_ATMRHO atmrho_loc(i,j) = apressure(i,j,bi,bj) / & (287.04 _d 0*atemp(i,j,bi,bj) & *(1. _d 0 + humid_fac*aqh(i,j,bi,bj))) - ssq(i,j) = tmpbulk/atmrho_loc(i,j) + ssq = tmpbulk/atmrho_loc(i,j) #else - ssq(i,j) = tmpbulk/atmrho + ssq = tmpbulk/atmrho #endif deltap(i,j) = atemp(i,j,bi,bj) + gamma_blk*ht - Tsf - delq(i,j) = aqh(i,j,bi,bj) - ssq(i,j) + delq(i,j) = aqh(i,j,bi,bj) - ssq C Do the part of the output variables that do not depend C on the ice here to save a few re-computations C This is not yet dEvdT, but just a cheap way to save a 2D-field C for ssq and recomputing Ts2 lateron - dEvdT(i,j) = ssq(i,j)*qsat_exp/Ts2 + dEvdT(i,j) = ssq*qsat_exp/Ts2 flwup = emiss*stefanBoltzmann*Ts2*Ts2 dflwupdT = emiss*stefanBoltzmann*Ts2*Tsf * 4. _d 0 c flwNet_dwn = lwdown(i,j,bi,bj) - flwup @@ -274,26 +261,15 @@ SUBROUTINE THSICE_GET_EXF( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| IF ( useStabilityFct_overIce ) THEN +#ifdef ALLOW_AUTODIFF_TAMC +C Storing is only necessary if useStabilityFct_overIce = T, so we +C compute the keys here, just before we need them. + ikey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy + ikey = (ikey-1)*(MaxTsf+1) + it2 +#endif DO j=jMin,jMax DO i=iMin,iMax -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*(it2-1) - & + sNx*sNy*MaxTsf*act1 - & + sNx*sNy*MaxTsf*max1*act2 - & + sNx*sNy*MaxTsf*max1*max2*act3 - & + sNx*sNy*MaxTsf*max1*max2*max3*act4 C-- -CADJ STORE sh(i,j,bi,bj) = comlev1_thsice_3, key = ikey_1 -#endif IF ( (icFlag(i,j).GT.0. _d 0) .AND. & (atemp(i,j,bi,bj).NE.0. _d 0) ) THEN C-- Compute the turbulent surface fluxes (function of stability). @@ -325,25 +301,21 @@ SUBROUTINE THSICE_GET_EXF( C start iteration DO iter = 1,niter_bulk +#ifdef ALLOW_AUTODIFF_TAMC + nbkey = (ikey-1)*niter_bulk + iter +CADJ STORE ustar = comlev1_thsice_exf_niter, key = nbkey, kind = isbyte +CADJ STORE qstar = comlev1_thsice_exf_niter, key = nbkey, kind = isbyte +CADJ STORE tstar = comlev1_thsice_exf_niter, key = nbkey, kind = isbyte +#endif DO j=jMin,jMax DO i=iMin,iMax IF ( (icFlag(i,j).GT.0. _d 0) .AND. & (atemp(i,j,bi,bj).NE.0. _d 0) ) THEN #ifdef ALLOW_AUTODIFF_TAMC - ikey_2 = iter - & + niter_bulk*(i-1) - & + niter_bulk*sNx*(j-1) - & + niter_bulk*sNx*sNy*(it2-1) - & + niter_bulk*sNx*sNy*MaxTsf*act1 - & + niter_bulk*sNx*sNy*MaxTsf*max1*act2 - & + niter_bulk*sNx*sNy*MaxTsf*max1*max2*act3 - & + niter_bulk*sNx*sNy*MaxTsf*max1*max2*max3*act4 -CADJ STORE rdn(i,j) = comlev1_thsice_5, key = ikey_2 -CADJ STORE ustar(i,j) = comlev1_thsice_5, key = ikey_2 -CADJ STORE qstar(i,j) = comlev1_thsice_5, key = ikey_2 -CADJ STORE tstar(i,j) = comlev1_thsice_5, key = ikey_2 -CADJ STORE sh(i,j,bi,bj) = comlev1_thsice_5, key = ikey_2 + ijkey = i + sNx*(j-1) + (nbkey-1)*sNx*sNy +C Not sure why this has to be done here and not outside the ij-loop. +CADJ STORE rdn(i,j) = comlev1_thsice_exf_ij, key = ijkey, kind = isbyte #endif t0 = atemp(i,j,bi,bj)* @@ -424,6 +396,15 @@ SUBROUTINE THSICE_GET_EXF( ENDDO C end iteration loop ENDDO +#ifdef ALLOW_AUTODIFF_TAMC +C these stores avoid recomputing this routine in the ad-code (not +C strictly necessary) +CADJ STORE rd = comlev1_thsice_exf, key = ikey, kind = isbyte +CADJ STORE rh = comlev1_thsice_exf, key = ikey, kind = isbyte +CADJ STORE re = comlev1_thsice_exf, key = ikey, kind = isbyte +CADJ STORE qstar = comlev1_thsice_exf, key = ikey, kind = isbyte +CADJ STORE tstar = comlev1_thsice_exf, key = ikey, kind = isbyte +#endif DO j=jMin,jMax DO i=iMin,iMax IF ( (icFlag(i,j).GT.0. _d 0) .AND. diff --git a/pkg/thsice/thsice_ini_vars.F b/pkg/thsice/thsice_ini_vars.F index 07dea53170..2e9ebcfb60 100644 --- a/pkg/thsice/thsice_ini_vars.F +++ b/pkg/thsice/thsice_ini_vars.F @@ -138,7 +138,7 @@ SUBROUTINE THSICE_INI_VARS( myThid ) ENDIF IF ( thSIceEnthp_InitFile .EQ. ' ' ) THEN C- enthalpy of new ice in J/kg, taken from thsice_extend.F with Tf beeing -C the freezing Temp of seawater computed from a fixed salinity (31.5 psu) +C the freezing Temp of seawater computed from a fixed salinity (31.5 g/kg) C Tf = -mu_Tf*salinity = -1.70 deg C; Qice1 ~ 3.2e5; Qice2 ~ 3.4e5 Tf = -1.70 _d 0 DO bj = myByLo(myThid), myByHi(myThid) diff --git a/pkg/thsice/thsice_main.F b/pkg/thsice/thsice_main.F index 5bd12ee048..6e910f4bcf 100644 --- a/pkg/thsice/thsice_main.F +++ b/pkg/thsice/thsice_main.F @@ -1,5 +1,6 @@ #include "THSICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" # ifdef ALLOW_EXF # include "EXF_OPTIONS.h" # endif @@ -29,17 +30,17 @@ SUBROUTINE THSICE_MAIN( #include "THSICE_PARAMS.h" #include "THSICE_SIZE.h" #include "THSICE_VARS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "THSICE_TAVE.h" +#ifdef ALLOW_AUTODIFF # include "THSICE_COST.h" # include "DYNVARS.h" -# include "tamc.h" -# include "tamc_keys.h" # ifdef ALLOW_EXF -# include "EXF_FIELDS.h" # include "EXF_PARAM.h" # include "EXF_CONSTANTS.h" +# include "EXF_FIELDS.h" # endif /* ALLOW_EXF */ +#endif /* ALLOW_AUTODIFF */ +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -72,6 +73,10 @@ SUBROUTINE THSICE_MAIN( #ifdef ALLOW_EXF INTEGER grpDiag #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| @@ -98,25 +103,14 @@ SUBROUTINE THSICE_MAIN( DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE ocefwfx(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE oceqnet(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE ocesflx(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qsw(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE uvel (:,:,1,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE vvel (:,:,1,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE uvel (:,:,1,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE vvel (:,:,1,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE qsw (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qice1 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qice2 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Tsrf (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif DO j=1-OLy,sNy+OLy @@ -127,50 +121,29 @@ SUBROUTINE THSICE_MAIN( ENDDO ENDDO -#ifndef ALLOW_AUTODIFF_TAMC +#ifndef ALLOW_AUTODIFF IF ( .NOT.useCheapAML ) THEN #endif CALL THSICE_GET_OCEAN( I bi, bj, myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE iceHeight(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE Tsrf(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE Qice1(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE Qice2(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE snowAge(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte +CADJ STORE iceMask (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE snowAge (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE hOceMxL (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE tOceMxL (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE sOceMxL (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE v2ocMxL (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +#endif /* ALLOW_AUTODIFF_TAMC */ -CADJ STORE hOceMxL(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE tOceMxL(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE sOceMxL(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE v2ocMxL(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -#else +#ifndef ALLOW_AUTODIFF C- end if not useCheapAML ENDIF #endif -#ifdef OLD_THSICE_CALL_SEQUENCE -C- do sea-ice advection before getting surface fluxes -C Note: will inline this S/R once thSIce in Atmos. set-up is settled - IF ( thSIceAdvScheme.GT.0 ) - & CALL THSICE_DO_ADVECT( - I bi,bj, myTime, myIter, myThid ) -#endif /* OLD_THSICE_CALL_SEQUENCE */ - -#ifndef ALLOW_AUTODIFF_TAMC +#ifndef ALLOW_AUTODIFF IF ( useBulkforce .OR. useCheapAML ) THEN CALL THSICE_GET_PRECIP( I iceMask, tOceMxL, @@ -189,14 +162,7 @@ SUBROUTINE THSICE_MAIN( I iMin,iMax,jMin,jMax, bi,bj, myThid ) ENDIF -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE tice1(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE tice2(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -#else +#ifndef ALLOW_AUTODIFF IF ( .NOT.( useCheapAML .OR. thSIce_skipThermo ) ) THEN #endif CALL THSICE_STEP_TEMP( @@ -204,27 +170,28 @@ SUBROUTINE THSICE_MAIN( I myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE empmr(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE qnet(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE iceHeight(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -cphCADJ STORE Tsrf(:,:,bi,bj) = comlev1_bibj, -cphCADJ & key=ticekey, byte=isbyte -CADJ STORE Qice1(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE Qice2(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE snowAge(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -CADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, -CADJ & key=ticekey, byte=isbyte -#else +C These store directives avoid recomputation of this routine in ad-code. +CADJ STORE flxCndBt(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE EmPmR (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qnet (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE snowAge (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE snowPr = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qice1 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qice2 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE icFrwAtm(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +C This part of the state is generally not necessary, but you never +C know so I leave it, but commented out. +cCADJ STORE Qsw (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE icFlxSW (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE Tice1 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE Tice2 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE Tsrf (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +cCADJ STORE icFlxAtm(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +#endif + +#ifndef ALLOW_AUTODIFF C- end if not skipThermo / useCheapAML ENDIF IF ( .NOT.thSIce_skipThermo ) THEN @@ -234,7 +201,7 @@ SUBROUTINE THSICE_MAIN( I prcAtm(1-OLx,1-OLy,bi,bj), I snowPr, qPrcRn, I myTime, myIter, myThid ) -#ifndef ALLOW_AUTODIFF_TAMC +#ifndef ALLOW_AUTODIFF ELSE C- Compute sIceLoad (if not previously done) DO j=1,sNy @@ -254,15 +221,11 @@ SUBROUTINE THSICE_MAIN( #ifdef ALLOW_BALANCE_FLUXES C-- Balance net Fresh-Water flux from Atm+Land IF ( thSIceBalanceAtmFW.NE.0 ) THEN -# ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE icFrwAtm = -CADJ & comlev1, key = ikey_dynamics, kind = isbyte -# endif CALL THSICE_BALANCE_FRW( I iMin, iMax, jMin, jMax, I prcAtm, myTime, myIter, myThid ) ENDIF -#endif +#endif /* ALLOW_BALANCE_FLUXES */ C add a small piece of code to check AddFluid implementation: c#include "thsice_test_addfluid.h" @@ -272,10 +235,6 @@ SUBROUTINE THSICE_MAIN( & .OR. stressReduction.GT.zeroRL ) THEN CALL THSICE_DO_EXCH( myThid ) ENDIF -#ifdef OLD_THSICE_CALL_SEQUENCE - IF ( useRealFreshWaterFlux ) - & _EXCH_XY_RS( sIceLoad, myThid ) -#else /* OLD_THSICE_CALL_SEQUENCE */ IF ( thSIceAdvScheme.GT.0 .AND. .NOT.useSEAICE ) THEN C- when useSEAICE=.true., this S/R is called from SEAICE_MODEL; C otherwise, call it from here, after thsice-thermodynamics is done @@ -284,39 +243,24 @@ SUBROUTINE THSICE_MAIN( ELSEIF ( thSIceAdvScheme.LE.0 .AND. useRealFreshWaterFlux ) THEN _EXCH_XY_RS( sIceLoad, myThid ) ENDIF -#endif /* OLD_THSICE_CALL_SEQUENCE */ DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE fu (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE fv (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte #endif /* ALLOW_AUTODIFF_TAMC */ C-- Cumulate time-averaged fields and also fill-up flux diagnostics C (if not done in THSICE_DO_ADVECT call) -#ifdef OLD_THSICE_CALL_SEQUENCE - IF ( .TRUE. ) THEN -#else /* OLD_THSICE_CALL_SEQUENCE */ IF ( thSIceAdvScheme.LE.0 ) THEN -#endif /* OLD_THSICE_CALL_SEQUENCE */ CALL THSICE_AVE( I bi,bj, myTime, myIter, myThid ) ENDIF C-- note: If useSEAICE=.true., the stress is computed in seaice_model, C-- and stressReduction is always set to zero -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE fu(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE fv(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -#endif IF ( stressReduction.GT. 0. _d 0 ) THEN DO j = 1-OLy,sNy+OLy-1 DO i = 2-OLx,sNx+OLx-1 @@ -339,7 +283,7 @@ SUBROUTINE THSICE_MAIN( ENDDO C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#endif /*ALLOW_THSICE*/ +#endif /* ALLOW_THSICE */ RETURN END diff --git a/pkg/thsice/thsice_slab_ocean.F b/pkg/thsice/thsice_slab_ocean.F index 4ce0b8c046..e592fae0ca 100644 --- a/pkg/thsice/thsice_slab_ocean.F +++ b/pkg/thsice/thsice_slab_ocean.F @@ -154,11 +154,7 @@ SUBROUTINE THSICE_SLAB_OCEAN( C-- Cumulate time-averaged fields and also fill-up flux diagnostics C (if not done in THSICE_DO_ADVECT call) -#ifdef OLD_THSICE_CALL_SEQUENCE - IF ( .TRUE. ) THEN -#else /* OLD_THSICE_CALL_SEQUENCE */ IF ( thSIceAdvScheme.LE.0 ) THEN -#endif /* OLD_THSICE_CALL_SEQUENCE */ CALL THSICE_AVE( I bi, bj, myTime, myIter, myThid ) ENDIF diff --git a/pkg/thsice/thsice_solve4temp.F b/pkg/thsice/thsice_solve4temp.F index 5d6aa570e6..2d8ea9e742 100644 --- a/pkg/thsice/thsice_solve4temp.F +++ b/pkg/thsice/thsice_solve4temp.F @@ -1,8 +1,10 @@ #include "THSICE_OPTIONS.h" -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" # ifdef ALLOW_EXF # include "EXF_OPTIONS.h" # endif +# define ALLOW_AUTODIFF_TAMC_MORE #endif CBOP @@ -12,9 +14,9 @@ SUBROUTINE THSICE_SOLVE4TEMP( I bi, bj, I iMin,iMax, jMin,jMax, dBugFlag, I useBulkForce, useEXF, - I icMask, hIce, hSnow1, tFrz, flxExSW, - U flxSW, tSrf1, qIc1, qIc2, - O tIc1, tIc2, dTsrf1, + I icMask, hIce, hSnow, tFrz, flxExSW, + U flxSW, tSrf, qIc1, qIc2, + O tIc1, tIc2, dTsrf, O sHeat, flxCnB, flxAtm, evpAtm, I myTime, myIter, myThid ) C !DESCRIPTION: \bv @@ -48,17 +50,18 @@ SUBROUTINE THSICE_SOLVE4TEMP( #include "EEPARAMS.h" #include "SIZE.h" #include "THSICE_PARAMS.h" -#ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# include "tamc_keys.h" -#include "THSICE_SIZE.h" +#ifdef ALLOW_AUTODIFF +# include "THSICE_SIZE.h" c#include "THSICE_VARS.h" # ifdef ALLOW_EXF -# include "EXF_FIELDS.h" # include "EXF_PARAM.h" # include "EXF_CONSTANTS.h" +# include "EXF_FIELDS.h" # endif #endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif C !INPUT/OUTPUT PARAMETERS: C == Routine Arguments == @@ -71,21 +74,21 @@ SUBROUTINE THSICE_SOLVE4TEMP( C--- Input: C icMask :: sea-ice fractional mask [0-1] C hIce :: ice height [m] -C hSnow1 :: snow height [m] +C hSnow :: snow height [m] C tFrz :: sea-water freezing temperature [oC] (function of S) -C flxExSW :: surf. heat flux (+=down) except SW, function of surf. temp Ts: +C flxExSW :: Net (minus SW) surf. heat flux (+=down) fct of surf temp Ts C 0: Flx(Ts=0) ; 1: Flx(Ts=Ts^n) ; 2: d.Flx/dTs(Ts=Ts^n) C--- Modified (input&output): C flxSW :: net Short-Wave flux (+=down) [W/m2]: input= at surface C :: output= below sea-ice, into the ocean -C tSrf1 :: surface (ice or snow) temperature -C qIc1 :: ice enthalpy (J/kg), 1rst level -C qIc2 :: ice enthalpy (J/kg), 2nd level +C tSrf :: surface (ice or snow) temperature +C qIc1 :: ice enthalpy [J/kg], 1rst level +C qIc2 :: ice enthalpy [J/kg], 2nd level C--- Output C tIc1 :: temperature of ice layer 1 [oC] C tIc2 :: temperature of ice layer 2 [oC] -C dTsrf1 :: surf. temp adjusment: Ts^n+1 - Ts^n -C sHeat :: surf heating flux left to melt snow or ice (= Atmos-conduction) +C dTsrf :: surface temp adjusment: Ts^n+1 - Ts^n +C sHeat :: surf heat flux left to melt snow or ice (=Atmos-conduction) C flxCnB :: heat flux conducted through the ice to bottom surface C flxAtm :: net flux of energy from the atmosphere [W/m2] (+=down) C without snow precip. (energy=0 for liquid water at 0.oC) @@ -100,12 +103,12 @@ SUBROUTINE THSICE_SOLVE4TEMP( LOGICAL dBugFlag LOGICAL useBulkForce LOGICAL useEXF - _RL icMask(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL icMask (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL hIce (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL hSnow1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL hSnow (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL tFrz (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flxSW (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL tSrf1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL tSrf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL qIc1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL qIc2 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL tIc1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -114,8 +117,9 @@ SUBROUTINE THSICE_SOLVE4TEMP( _RL flxCnB (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flxAtm (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL evpAtm (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL flxExSW(iMin:iMax,jMin:jMax,0:2) - _RL dTsrf1 (iMin:iMax,jMin:jMax) +C + _RL flxExSW(1:sNx,1:sNy,0:2) + _RL dTsrf (1:sNx,1:sNy) _RL myTime INTEGER myIter INTEGER myThid @@ -129,19 +133,19 @@ SUBROUTINE THSICE_SOLVE4TEMP( C iterate4Tsf :: to stop to iterate when all icy grid pts Tsf did converged C iceFlag :: True= do iterate for Surf.Temp ; False= do nothing C frsnow :: fractional snow cover -C fswpen :: SW penetrating beneath surface (W m-2) -C fswdn :: SW absorbed at surface (W m-2) -C fswint :: SW absorbed in ice (W m-2) -C fswocn :: SW passed through ice to ocean (W m-2) -C Tsf :: surface (ice or snow) temperature (local copy of tSrf1) -C flx0exSW :: net surface heat flux over melting snow/ice, except short-wave. -C flxTexSW :: net surface heat flux, except short-wave (W/m2) -C dFlxdT :: deriv of flxNet wrt Tsf (W m-2 deg-1) -C evap00 :: evaporation over melting snow/ice [kg/m2/s] (>0 if evaporate) -C renamed to evap00 because TAF confuses symbol with EXF evap0 -C evapT :: evaporation over snow/ice [kg/m2/s] (>0 if evaporate) -C dEvdT :: derivative of evap. with respect to Tsf [kg/m2/s/K] -C flxNet :: net surf heat flux (+=down), from Atmos. to sea-ice (W m-2) +C fswpen :: SW penetrating beneath surface [W/m2] +C fswdn :: SW absorbed at surface [W/m2] +C fswint :: SW absorbed in ice [W/m2] +C fswocn :: SW passed through ice to ocean [W/m2] +C Tsf_mlt :: surface temperature of snow or ice at melting point +C flx0exSW :: net (minus SW) surface heat flux over melting snow/ice +C flxTexSW :: net (minus SW) surface heat flux (+=down) [W/m2] +C dFlxdT :: derivative of flxNet wrt tSrf [W/m2/K] +C evap_0 :: evaporation over melting snow/ice (>0 evaporate) [kg/m2/s] +C renamed to avoid conflict with EXF evap0 (AUTODIFF) +C evapT :: evaporation over snow/ice (>0 if evaporate) [kg/m2/s] +C dEvdT :: derivative of evap. with respect to tSrf [kg/m2/s/K] +C flxNet :: net surf heat flux (+=down), from atmos to sea-ice [W/m2] C netSW :: net Short-Wave flux at surface (+=down) [W/m2] C fct :: heat conducted to top surface C k12, k32 :: thermal conductivity terms @@ -152,18 +156,20 @@ SUBROUTINE THSICE_SOLVE4TEMP( LOGICAL iterate4Tsf INTEGER i, j, k, iterMax INTEGER ii, jj, icount, stdUnit +#if ( defined ALLOW_DBUG_THSICE || !defined ALLOW_AUTODIFF ) CHARACTER*(MAX_LEN_MBUF) msgBuf +#endif _RL frsnow _RL fswpen _RL fswdn _RL fswint _RL fswocn _RL iceFlag (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL Tsf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL Tsf_mlt (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flx0exSW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flxTexSW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dFlxdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL evap00 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL evap_0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL evapT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL dEvdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flxNet @@ -176,33 +182,31 @@ SUBROUTINE THSICE_SOLVE4TEMP( _RL a1, b1, c1 _RL dt _RL recip_dhSnowLin + _RL TsfTmp, tIc2Tmp #ifdef ALLOW_DBUG_THSICE _RL netSW #endif +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) +C ikey :: tape key (depends on iteration index and tiles) + INTEGER tkey, ikey +#endif +#ifdef ALLOW_DBUG_THSICE C- Define grid-point location where to print debugging values #include "THSICE_DEBUG.h" - 1010 FORMAT(A,I3,3F11.6) 1020 FORMAT(A,1P4E14.6) - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-| +#endif +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +CADJ STORE flxsw = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE hSnow = comlev1_bibj, key = tkey, kind = isbyte #endif /* ALLOW_AUTODIFF_TAMC */ -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE flxsw(:,:) = comlev1_bibj,key=ticekey,byte=isbyte +#ifdef ALLOW_AUTODIFF DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx tIc1(i,j) = 0. _d 0 @@ -212,11 +216,11 @@ SUBROUTINE THSICE_SOLVE4TEMP( flx0exSW(i,j) = 0. _d 0 flxTexSW(i,j) = 0. _d 0 dFlxdT (i,j) = 0. _d 0 - evap00 (i,j) = 0. _d 0 + evap_0 (i,j) = 0. _d 0 evapT (i,j) = 0. _d 0 dEvdT (i,j) = 0. _d 0 iceFlag (i,j) = 0. _d 0 - Tsf (i,j) = 0. _d 0 + Tsf_mlt (i,j) = 0. _d 0 ENDDO ENDDO #endif @@ -235,19 +239,6 @@ SUBROUTINE THSICE_SOLVE4TEMP( DO j = jMin, jMax DO i = iMin, iMax -#ifdef ALLOW_AUTODIFF_TAMC - ikey_1 = i - & + sNx*(j-1) - & + sNx*sNy*act1 - & + sNx*sNy*max1*act2 - & + sNx*sNy*max1*max2*act3 - & + sNx*sNy*max1*max2*max3*act4 -C-- -CADJ STORE hSnow1(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE flxsw(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE qic1(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE qic2(i,j) = comlev1_thsice_1, key=ikey_1 -#endif IF ( icMask(i,j).GT.0. _d 0) THEN iterate4Tsf = .TRUE. iceFlag(i,j) = 1. _d 0 @@ -267,10 +258,10 @@ SUBROUTINE THSICE_SOLVE4TEMP( C assume a linear distribution of snow thickness, with dhSnowLin slope, C from hs-dhSnowLin to hs+dhSnowLin if full ice & snow cover. C frsnow = fraction of snow over the ice-covered part of the grid cell - IF ( hSnow1(i,j) .GT. icMask(i,j)*dhSnowLin ) THEN + IF ( hSnow(i,j) .GT. icMask(i,j)*dhSnowLin ) THEN frsnow = 1. _d 0 ELSE - frsnow = hSnow1(i,j)*recip_dhSnowLin/icMask(i,j) + frsnow = hSnow(i,j)*recip_dhSnowLin/icMask(i,j) IF ( frsnow.GT.0. _d 0 ) frsnow = SQRT(frsnow) ENDIF @@ -289,7 +280,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( C-- Compute conductivity terms at layer interfaces. k12(i,j) = 4. _d 0*kIce*kSnow - & / (kSnow*hIce(i,j) + 4. _d 0*kIce*hSnow1(i,j)) + & / (kSnow*hIce(i,j) + 4. _d 0*kIce*hSnow(i,j)) k32 = 2. _d 0*kIce / hIce(i,j) C-- Compute ice temperatures @@ -313,7 +304,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( & ' BBerr: i,j,bi,bj,Tice = ',i,j,bi,bj,tIc1(i,j),tIc2(i,j) ENDIF IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) - & 'ThSI_SOLVE4T: k, Ts, Tice=',0,tSrf1(i,j),tIc1(i,j),tIc2(i,j) + & 'ThSI_SOLVE4T: k, Ts, Tice=',0,tSrf(i,j),tIc1(i,j),tIc2(i,j) #endif C-- Compute coefficients used in quadratic formula. @@ -350,22 +341,15 @@ SUBROUTINE THSICE_SOLVE4TEMP( ENDIF #endif /* ALLOW_AUTODIFF */ -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-| - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE devdt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE tsf(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE hsnow1(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE sh(:,:,:,:) = comlev1_bibj,key=ticekey,byte=isbyte -#endif +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -C-- Get surface fluxes over melting surface +C-- Get surface fluxes over melting surface (assumed to be @ 0 oC) #ifndef ALLOW_AUTODIFF IF ( useBlkFlx .AND. iterate4Tsf ) THEN #endif DO j = jMin, jMax DO i = iMin, iMax - Tsf(i,j) = 0. + Tsf_mlt(i,j) = 0. ENDDO ENDDO #ifndef ALLOW_AUTODIFF @@ -374,16 +358,16 @@ SUBROUTINE THSICE_SOLVE4TEMP( k = 1 CALL THSICE_GET_EXF( bi, bj, k, I iMin, iMax, jMin, jMax, - I iceFlag, hSnow1, Tsf, - O flx0exSW, dFlxdT, evap00, dEvdT, + I iceFlag, hSnow, Tsf_mlt, + O flx0exSW, dFlxdT, evap_0, dEvdT, I myTime, myIter, myThid ) #ifndef ALLOW_AUTODIFF C- could add this "ifdef" to hide THSICE_GET_BULKF from TAF ELSEIF ( useBulkForce ) THEN CALL THSICE_GET_BULKF( bi, bj, I iMin, iMax, jMin, jMax, - I iceFlag, hSnow1, Tsf, - O flx0exSW, dFlxdT, evap00, dEvdT, + I iceFlag, hSnow, Tsf_mlt, + O flx0exSW, dFlxdT, evap_0, dEvdT, I myTime, myIter, myThid ) C--- end if: IF ( useEXF ) THEN ENDIF @@ -391,13 +375,11 @@ SUBROUTINE THSICE_SOLVE4TEMP( ENDIF #endif -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-| -C--- Compute new surface and internal temperatures; iterate until -C Tsfc converges. +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +C--- Compute new surface and ice temperatures; iterate until tSrf converges. DO j = jMin, jMax DO i = iMin, iMax - Tsf(i,j) = tSrf1(i,j) - dTsrf1(i,j) = Terrmax + dTsrf(i,j) = Terrmax ENDDO ENDDO IF ( useBlkFlx ) THEN @@ -406,29 +388,22 @@ SUBROUTINE THSICE_SOLVE4TEMP( iterMax = 1 ENDIF -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE devdt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE dflxdt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE flx0exsw(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE flxtexsw(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE evap00(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE evapt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -#endif - C ----- begin iteration ----- DO k = 1,iterMax #ifndef ALLOW_AUTODIFF IF ( iterate4Tsf ) THEN - iterate4Tsf = .FALSE. + iterate4Tsf = .FALSE. C - IF ( useBlkFlx ) THEN -#else - kkey = (ticekey-1)*MaxTsf + k -CADJ STORE iceflag = comlev1_thsice_s4t, key=kkey, byte=isbyte -CADJ STORE hSnow1 = comlev1_thsice_s4t, key=kkey, byte=isbyte -CADJ STORE tsf = comlev1_thsice_s4t, key=kkey, byte=isbyte -CADJ STORE dEvdT = comlev1_thsice_s4t, key=kkey, byte=isbyte -#endif /* ALLOW_AUTODIFF */ + IF ( useBlkFlx ) THEN +#endif +#ifdef ALLOW_AUTODIFF_TAMC + ikey = (tkey-1)*MaxTsf + k +CADJ STORE iceflag = comlev1_thsice_s4t, key = ikey, kind = isbyte +CADJ STORE tSrf = comlev1_thsice_s4t, key = ikey, kind = isbyte +CADJ STORE flxTexSW = comlev1_thsice_s4t, key = ikey, kind = isbyte +CADJ STORE dFlxdT = comlev1_thsice_s4t, key = ikey, kind = isbyte +CADJ STORE dEvdT = comlev1_thsice_s4t, key = ikey, kind = isbyte +#endif C-- Compute top surface flux. #ifndef ALLOW_AUTODIFF @@ -436,7 +411,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( #endif CALL THSICE_GET_EXF( bi, bj, k+1, I iMin, iMax, jMin, jMax, - I iceFlag, hSnow1, Tsf, + I iceFlag, hSnow, tSrf, O flxTexSW, dFlxdT, evapT, dEvdT, I myTime, myIter, myThid ) C- could add this "ifdef" to hide THSICE_GET_BULKF from TAF @@ -444,12 +419,12 @@ SUBROUTINE THSICE_SOLVE4TEMP( ELSEIF ( useBulkForce ) THEN CALL THSICE_GET_BULKF( bi, bj, I iMin, iMax, jMin, jMax, - I iceFlag, hSnow1, Tsf, + I iceFlag, hSnow, tSrf, O flxTexSW, dFlxdT, evapT, dEvdT, I myTime, myIter, myThid ) C--- end if: IF ( useEXF ) THEN ENDIF - ELSE + ELSE DO j = jMin, jMax DO i = iMin, iMax IF ( iceFlag(i,j).GT.0. _d 0 ) THEN @@ -459,101 +434,107 @@ SUBROUTINE THSICE_SOLVE4TEMP( ENDDO ENDDO C--- end if: IF ( useBlkFlx ) THEN - ENDIF + ENDIF #endif /* ALLOW_AUTODIFF */ -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE devdt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE dflxdt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE flxtexsw(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE iceflag(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE tsf(:,:) = comlev1_bibj,key=ticekey,byte=isbyte +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C avoid calling thsice_get_exf in ad-code +CADJ STORE flxTexSW = comlev1_thsice_s4t, key = ikey, kind = isbyte +CADJ STORE dFlxdT = comlev1_thsice_s4t, key = ikey, kind = isbyte #endif - C-- Compute new top layer and surface temperatures. -C If Tsfc is computed to be > 0 C, fix Tsfc = 0 and recompute T1 +C If tSrf is computed to be > 0 C, fix tSrf = 0 and recompute tIc1 C with different coefficients. - DO j = jMin, jMax - DO i = iMin, iMax - IF ( iceFlag(i,j).GT.0. _d 0 ) THEN - flxNet = sHeat(i,j) + flxTexSW(i,j) + DO j = jMin, jMax + DO i = iMin, iMax + IF ( iceFlag(i,j).GT.0. _d 0 ) THEN + flxNet = sHeat(i,j) + flxTexSW(i,j) #ifdef ALLOW_DBUG_THSICE - IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1020) + IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1020) & 'ThSI_SOLVE4T: flxNet,dFlxdT,k12,D=', & flxNet, dFlxdT(i,j), k12(i,j), k12(i,j)-dFlxdT(i,j) #endif - a1 = a10(i,j) - k12(i,j)*dFlxdT(i,j) / (k12(i,j)-dFlxdT(i,j)) - b1 = b10(i,j) - k12(i,j)*(flxNet-dFlxdT(i,j)*Tsf(i,j)) - & /(k12(i,j)-dFlxdT(i,j)) - c1 = c10(i,j) - tIc1(i,j) = -(b1 + SQRT(b1*b1-4. _d 0*a1*c1))/(2. _d 0*a1) - dTsrf1(i,j) = (flxNet + k12(i,j)*(tIc1(i,j)-Tsf(i,j))) - & /(k12(i,j)-dFlxdT(i,j)) - Tsf(i,j) = Tsf(i,j) + dTsrf1(i,j) + a1 = a10(i,j) - k12(i,j)*dFlxdT(i,j) / (k12(i,j)-dFlxdT(i,j)) + b1 = b10(i,j) - k12(i,j)*(flxNet-dFlxdT(i,j)*tSrf(i,j)) + & /(k12(i,j)-dFlxdT(i,j)) + c1 = c10(i,j) + tIc1(i,j) = -(b1 + SQRT(b1*b1-4. _d 0*a1*c1))/(2. _d 0*a1) + dTsrf(i,j) = (flxNet + k12(i,j)*(tIc1(i,j)-tSrf(i,j))) + & /(k12(i,j)-dFlxdT(i,j)) +C this line causes 3 recomputation warings for TAF because tSrf is +C updated and the updated value is used to update tSrf (and other +C variables) again; with this intermediate variable, the warnings go +C away. +C tSrf(i,j) = tSrf(i,j) + dTsrf(i,j) + TsfTmp = tSrf(i,j) + dTsrf(i,j) C - IF ( Tsf(i,j) .GT. 0. _d 0 ) THEN + IF ( TsfTmp .GT. 0. _d 0 ) THEN #ifdef ALLOW_DBUG_THSICE - IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) - & 'ThSI_SOLVE4T: k,ts,t1,dTs=',k,Tsf(i,j),tIc1(i,j),dTsrf1(i,j) + IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) + & 'ThSI_SOLVE4T: k,ts,t1,dTs=',k,TsfTmp,tIc1(i,j),dTsrf(i,j) #endif - a1 = a10(i,j) + k12(i,j) + a1 = a10(i,j) + k12(i,j) C note: b1 = b10 - k12*Tf0 - b1 = b10(i,j) - tIc1(i,j) = (-b1 - SQRT(b1*b1-4. _d 0*a1*c1))/(2. _d 0*a1) - Tsf(i,j) = 0. _d 0 + b1 = b10(i,j) + tIc1(i,j) = (-b1 - SQRT(b1*b1-4. _d 0*a1*c1))/(2. _d 0*a1) + tSrf(i,j) = 0. _d 0 #ifndef ALLOW_AUTODIFF - IF ( useBlkFlx ) THEN + IF ( useBlkFlx ) THEN #endif /* ALLOW_AUTODIFF */ - flxTexSW(i,j) = flx0exSW(i,j) - evapT(i,j) = evap00(i,j) - dTsrf1(i,j) = 0. _d 0 + flxTexSW(i,j) = flx0exSW(i,j) + evapT(i,j) = evap_0(i,j) + dTsrf(i,j) = 0. _d 0 #ifndef ALLOW_AUTODIFF + ELSE + flxTexSW(i,j) = flxExSW(i,j,0) + dTsrf(i,j) = 1000. + dFlxdT(i,j) = 0. + ENDIF +#endif /* ALLOW_AUTODIFF */ ELSE - flxTexSW(i,j) = flxExSW(i,j,0) - dTsrf1(i,j) = 1000. - dFlxdT(i,j) = 0. + tSrf(i,j) = TsfTmp ENDIF -#endif /* ALLOW_AUTODIFF */ - ENDIF C-- Check for convergence. If no convergence, then repeat. - IF (ABS(dTsrf1(i,j)).GE.Terrmax) THEN - iceFlag(i,j) = 1. _d 0 - ELSE - iceFlag(i,j) = 0. _d 0 - ENDIF - iterate4Tsf = iterate4Tsf .OR. (iceFlag(i,j).GT.0. _d 0) + IF (ABS(dTsrf(i,j)).GE.Terrmax) THEN + iceFlag(i,j) = 1. _d 0 + ELSE + iceFlag(i,j) = 0. _d 0 + ENDIF +#ifndef ALLOW_AUTODIFF + iterate4Tsf = iterate4Tsf .OR. (iceFlag(i,j).GT.0. _d 0) +#endif -C Convergence test: Make sure Tsfc has converged, within prescribed error. +C Convergence test: Make sure tSrf has converged, within prescribed error. C (Energy conservation is guaranteed within machine roundoff, even -C if Tsfc has not converged.) +C if tSrf has not converged.) C If no convergence, then repeat. #ifdef ALLOW_DBUG_THSICE - IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) - & 'ThSI_SOLVE4T: k,ts,t1,dTs=', k,Tsf(i,j),tIc1(i,j),dTsrf1(i,j) - IF ( useBlkFlx .AND. k.EQ.nitMaxTsf .AND. - & (iceFlag(i,j).GT.0. _d 0) ) THEN - WRITE(stdUnit,'(A,4I4,I12,F15.9)') + IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) + & 'ThSI_SOLVE4T: k,ts,t1,dTs=', k,tSrf(i,j),tIc1(i,j),dTsrf(i,j) + IF ( useBlkFlx .AND. k.EQ.nitMaxTsf .AND. + & (iceFlag(i,j).GT.0. _d 0) ) THEN + WRITE(stdUnit,'(A,4I4,I12,F15.9)') & ' BB: not converge: i,j,it,hi=',i,j,bi,bj,myIter,hIce(i,j) - WRITE(stdUnit,*) - & 'BB: not converge: Tsf, dTsf=', Tsf(i,j), dTsrf1(i,j) - WRITE(stdUnit,*) + WRITE(stdUnit,*) + & 'BB: not converge: tSrf, dTsrf=', tSrf(i,j), dTsrf(i,j) + WRITE(stdUnit,*) & 'BB: not converge: flxNet,dFlxT=', flxNet, dFlxdT(i,j) - IF ( Tsf(i,j).LT.-70. _d 0 ) THEN + IF ( tSrf(i,j).LT.-70. _d 0 ) THEN WRITE( msgBuf, '(A,2I4,2I3,I10,F12.3)') - & 'THSICE_SOLVE4TEMP: Too low Tsf in', i, j, bi, bj, - & myIter, Tsf(i,j) + & 'THSICE_SOLVE4TEMP: Too low tSrf in', i, j, bi, bj, + & myIter, tSrf(i,j) CALL PRINT_ERROR( msgBuf , myThid ) STOP 'ABNORMAL END: S/R THSICE_SOLVE4TEMP' + ENDIF ENDIF - ENDIF #endif /* ALLOW_DBUG_THSICE */ - ENDIF + ENDIF + ENDDO ENDDO - ENDDO #ifndef ALLOW_AUTODIFF C--- end if: IF ( iterate4Tsf ) THEN ENDIF @@ -561,35 +542,45 @@ SUBROUTINE THSICE_SOLVE4TEMP( C--- end loop DO k = 1,iterMax ENDDO C ------ end iteration ------------ +#ifdef ALLOW_AUTODIFF_TAMC_MORE +C avoid calling thsice_get_exf in ad-code +CADJ STORE tIc1 = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE dTsrf = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE tSrf = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE dFlxdT = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE dEvdT = comlev1_bibj, key = tkey, kind = isbyte +#endif -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-| +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| DO j = jMin, jMax DO i = iMin, iMax +C this intermediate variable avoids a recomputation warning + tIc2Tmp = tIc2(i,j) IF ( icMask(i,j).GT.0. _d 0 ) THEN C-- Compute new bottom layer temperature. k32 = 2. _d 0*kIce / hIce(i,j) tIc2(i,j) = ( 2. _d 0*dt*k32*(tIc1(i,j)+2. _d 0*tFrz(i,j)) - & + rhoi*cpIce*hIce(i,j)*tIc2(i,j)) + & + rhoi*cpIce*hIce(i,j)*tIc2Tmp) & /(6. _d 0*dt*k32 + rhoi*cpIce*hIce(i,j)) #ifdef ALLOW_DBUG_THSICE IF ( dBug(i,j,bi,bj) ) WRITE(stdUnit,1010) - & 'ThSI_SOLVE4T: k, Ts, Tice=',k,Tsf(i,j),tIc1(i,j),tIc2(i,j) + & 'ThSI_SOLVE4T: k, Ts, Tice=',k,tSrf(i,j),tIc1(i,j),tIc2(i,j) netSW = flxAtm(i,j) #endif C-- Compute final flux values at surfaces. - tSrf1(i,j) = Tsf(i,j) - fct = k12(i,j)*(Tsf(i,j)-tIc1(i,j)) + fct = k12(i,j)*(tSrf(i,j)-tIc1(i,j)) flxCnB(i,j) = 4. _d 0*kIce *(tIc2(i,j)-tFrz(i,j))/hIce(i,j) flxNet = sHeat(i,j) + flxTexSW(i,j) - flxNet = flxNet + dFlxdT(i,j)*dTsrf1(i,j) + flxNet = flxNet + dFlxdT(i,j)*dTsrf(i,j) #ifndef ALLOW_AUTODIFF IF ( useBlkFlx ) THEN #endif -C- needs to update also Evap (Tsf changes) since Latent heat has been updated - evpAtm(i,j) = evapT(i,j) + dEvdT(i,j)*dTsrf1(i,j) +C-- need to update also Evap (tSrf changes) since Latent heat has +C been updated + evpAtm(i,j) = evapT(i,j) + dEvdT(i,j)*dTsrf(i,j) #ifndef ALLOW_AUTODIFF ELSE C- WARNING: Evap & +Evap*Lfresh are missing ! (but only affects Diagnostics) @@ -599,7 +590,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( C- Update energy flux to Atmos with other than SW contributions; C use latent heat = Lvap (energy=0 for liq. water at 0.oC) flxAtm(i,j) = flxAtm(i,j) + flxTexSW(i,j) - & + dFlxdT(i,j)*dTsrf1(i,j) + evpAtm(i,j)*Lfresh + & + dFlxdT(i,j)*dTsrf(i,j) + evpAtm(i,j)*Lfresh C- excess of energy @ surface (used for surface melting): sHeat(i,j) = flxNet - fct @@ -627,8 +618,8 @@ SUBROUTINE THSICE_SOLVE4TEMP( ENDIF IF ( dBug(i,j,bi,bj) ) THEN - WRITE(stdUnit,1020) 'ThSI_SOLV_4T: Tsf, Tice(1,2), dTsurf=', - & Tsf(i,j), tIc1(i,j), tIc2(i,j), dTsrf1(i,j) + WRITE(stdUnit,1020) 'ThSI_SOLV_4T: tSrf,Tice(1,2), dTsurf=', + & tSrf(i,j), tIc1(i,j), tIc2(i,j), dTsrf(i,j) WRITE(stdUnit,1020) 'ThSI_SOLV_4T: sHeat, flxCndBt, Qice =', & sHeat(i,j), flxCnB(i,j), qIc1(i,j), qIc2(i,j) WRITE(stdUnit,1020) 'ThSI_SOLV_4T: flxA, evpA, fxSW_bf,af=', @@ -640,7 +631,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( C-- ice-free grid point: c tIc1 (i,j) = 0. _d 0 c tIc2 (i,j) = 0. _d 0 - dTsrf1(i,j) = 0. _d 0 + dTsrf (i,j) = 0. _d 0 c sHeat (i,j) = 0. _d 0 c flxCnB(i,j) = 0. _d 0 c flxAtm(i,j) = 0. _d 0 @@ -651,7 +642,7 @@ SUBROUTINE THSICE_SOLVE4TEMP( ENDDO #endif /* ALLOW_THSICE */ -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-| +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| RETURN END diff --git a/pkg/thsice/thsice_step_fwd.F b/pkg/thsice/thsice_step_fwd.F index 43d6eaa139..f424e8c465 100644 --- a/pkg/thsice/thsice_step_fwd.F +++ b/pkg/thsice/thsice_step_fwd.F @@ -2,6 +2,9 @@ #ifdef ALLOW_ATM2D # include "ctrparam.h" #endif +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_STEP_FWD @@ -32,10 +35,8 @@ SUBROUTINE THSICE_STEP_FWD( #include "THSICE_SIZE.h" #include "THSICE_PARAMS.h" #include "THSICE_VARS.h" -#include "THSICE_TAVE.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif INTEGER siLo, siHi, sjLo, sjHi @@ -86,7 +87,9 @@ SUBROUTINE THSICE_STEP_FWD( C isIceFree :: true for ice-free grid-cell that remains ice-free C ageFac :: snow aging factor [1] C snowFac :: snowing refreshing-age factor [units of 1/snowPr] +#ifdef ALLOW_BULK_FORCE LOGICAL isIceFree(1-OLx:sNx+OLx,1-OLy:sNy+OLy) +#endif _RL iceFrac (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL flx2oc (1-OLx:sNx+OLx,1-OLy:sNy+OLy) _RL frw2oc (1-OLx:sNx+OLx,1-OLy:sNy+OLy) @@ -101,6 +104,10 @@ SUBROUTINE THSICE_STEP_FWD( INTEGER i,j LOGICAL dBugFlag +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif C- define grid-point location where to print debugging values #include "THSICE_DEBUG.h" @@ -109,30 +116,23 @@ SUBROUTINE THSICE_STEP_FWD( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy #endif /* ALLOW_AUTODIFF_TAMC */ C- Initialise dBugFlag = debugLevel.GE.debLevC DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx +#ifdef ALLOW_BULK_FORCE isIceFree(i,j) = .FALSE. +#endif #ifdef ALLOW_ATM2D sFluxFromIce(i,j) = 0. _d 0 #else saltFlux(i,j,bi,bj) = 0. _d 0 #endif frzSeaWat(i,j) = 0. _d 0 -#ifdef ALLOW_AUTODIFF_TAMC +#ifdef ALLOW_AUTODIFF iceFrac(i,j) = 0. C- set these arrays everywhere: overlap are not set and not used, C but some arrays are stored and storage includes overlap. @@ -149,12 +149,7 @@ SUBROUTINE THSICE_STEP_FWD( snowFac = thSIce_deltaT/(rhos*hNewSnowAge) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE iceheight(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE icfrwatm(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE qice1(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE qice2(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE snowheight(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte +CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte #endif DO j = jMin, jMax DO i = iMin, iMax @@ -178,9 +173,6 @@ SUBROUTINE THSICE_STEP_FWD( #ifdef ALLOW_DIAGNOSTICS IF ( useDiagnostics ) THEN -# ifdef OLD_THSICE_CALL_SEQUENCE - CALL DIAGNOSTICS_FILL(iceMask,'SI_FrcFx',0,1,1,bi,bj,myThid) -# endif CALL DIAGNOSTICS_FRACT_FILL( snowPrc, I iceMask(1-OLx,1-OLy,bi,bj), oneRL, 1, I 'SIsnwPrc', 0,1,2,bi,bj,myThid ) @@ -230,9 +222,14 @@ SUBROUTINE THSICE_STEP_FWD( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceMask (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE icFrwAtm (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE tFrzOce = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE frzMltMxl = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceFrac = comlev1_bibj,key=tkey,kind=isbyte #endif - CALL THSICE_CALC_THICKN( I bi, bj, I iMin,iMax, jMin,jMax, dBugFlag, @@ -246,35 +243,22 @@ SUBROUTINE THSICE_STEP_FWD( U icFrwAtm(siLo,sjLo,bi,bj), frzmltMxL, flx2oc, O frw2oc, fsalt, frzSeaWat, I myTime, myIter, myThid ) - #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE iceMask(:,:,bi,bj) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE fsalt(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE flx2oc(:,:) = comlev1_bibj,key=ticekey,byte=isbyte -CADJ STORE frw2oc(:,:) = comlev1_bibj,key=ticekey,byte=isbyte +C these stores avoid recomputing s/r thsice_calc_thickn +CADJ STORE icFrwAtm(:,:,bi,bj) +CADJ & = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE frzSeaWat = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE fsalt = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE flx2oc = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE frw2oc = comlev1_bibj, key = tkey, kind = isbyte +CADJ STORE frzmltMxL = comlev1_bibj, key = tkey, kind = isbyte #endif -C-- Net fluxes : + +C-- Net fluxes : DO j = jMin, jMax DO i = iMin, iMax -c#ifdef ALLOW_AUTODIFF_TAMC -c ikey_1 = i -c & + sNx*(j-1) -c & + sNx*sNy*act1 -c & + sNx*sNy*max1*act2 -c & + sNx*sNy*max1*max2*act3 -c & + sNx*sNy*max1*max2*max3*act4 -c#endif /* ALLOW_AUTODIFF_TAMC */ -c#ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE icemask(i,j,bi,bj) = comlev1_thsice_1, key=ikey_1 -c#endif IF (iceMask(i,j,bi,bj).GT.0. _d 0) THEN C- weighted average net fluxes: -c#ifdef ALLOW_AUTODIFF_TAMC -cCADJ STORE fsalt(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE flx2oc(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE frw2oc(i,j) = comlev1_thsice_1, key=ikey_1 -cCADJ STORE icemask(i,j,bi,bj) = comlev1_thsice_1, key=ikey_1 -c#endif icFrac = iceMask(i,j,bi,bj) opFrac= 1. _d 0-icFrac #ifdef ALLOW_ATM2D @@ -291,10 +275,12 @@ SUBROUTINE THSICE_STEP_FWD( & + opFrac*EmPmR(i,j,bi,bj) saltFlux(i,j,bi,bj) = -icFrac*fsalt(i,j) #endif +#if defined(ALLOW_SALT_PLUME) || defined(ALLOW_ATM_COMPON_INTERF) C- All seawater freezing (no reduction by surf. melting) from CALC_THICKN c frzSeaWat(i,j) = icFrac*frzSeaWat(i,j) C- Net seawater freezing (underestimated if there is surf. melting or rain) frzSeaWat(i,j) = MAX( -icFrac*frw2oc(i,j), 0. _d 0 ) +#endif #ifdef ALLOW_DBUG_THSICE IF (dBug(i,j,bi,bj)) WRITE(6,1010) @@ -337,8 +323,11 @@ SUBROUTINE THSICE_STEP_FWD( I myTime, myIter, myThid ) #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE snowHeight(:,:,bi,bj) = -CADJ & comlev1_bibj,key=ticekey,byte=isbyte +C these stores avoid recomputing s/r thsice_extend +CADJ STORE snowHeight(:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceHeight (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceMask (:,:,bi,bj) = comlev1_bibj,key=tkey,kind=isbyte +CADJ STORE iceFrac = comlev1_bibj,key=tkey,kind=isbyte #endif DO j = jMin, jMax DO i = iMin, iMax @@ -352,7 +341,9 @@ SUBROUTINE THSICE_STEP_FWD( EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- frw2oc(i,j) saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - fsalt(i,j) #endif +#if defined(ALLOW_SALT_PLUME) || defined(ALLOW_ATM_COMPON_INTERF) frzSeaWat(i,j) = frzSeaWat(i,j) + MAX(-frw2oc(i,j), 0. _d 0 ) +#endif #ifdef ALLOW_DBUG_THSICE IF (dBug(i,j,bi,bj)) WRITE(6,1010) @@ -361,9 +352,11 @@ SUBROUTINE THSICE_STEP_FWD( & snowHeight(i,j,bi,bj), Qnet(i,j,bi,bj) #endif +#ifdef ALLOW_BULK_FORCE IF ( hOceMxL(i,j,bi,bj).GT.0. _d 0 ) & isIceFree(i,j) = iceMask(i,j,bi,bj).LE.0. _d 0 & .AND. iceFrac(i,j) .LE.0. _d 0 +#endif IF ( iceFrac(i,j) .GT. 0. _d 0 ) THEN iceMask(i,j,bi,bj)=iceFrac(i,j) IF ( snowHeight(i,j,bi,bj).EQ.0. _d 0 ) @@ -392,13 +385,6 @@ SUBROUTINE THSICE_STEP_FWD( ENDIF #endif /* ALLOW_SALT_PLUME or ALLOW_ATM_COMPON_INTERF */ -# ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE snowHeight(:,:,bi,bj) = -CADJ & comlev1_bibj,key=ticekey,byte=isbyte -# endif -#ifdef OLD_THSICE_CALL_SEQUENCE - IF ( .TRUE. ) THEN -#else /* OLD_THSICE_CALL_SEQUENCE */ IF ( thSIceAdvScheme.LE.0 ) THEN C- note: 1) regarding sIceLoad in ocean-dynamics, in case thSIceAdvScheme > 0, C compute sIceLoad in THSICE_DO_ADVECT after seaice advection is done. @@ -406,7 +392,6 @@ SUBROUTINE THSICE_STEP_FWD( C sIceLoad here, to keep the balance between sIceLoad and adjusted Eta. C 3) not sure in the case of no advection (thSIceAdvScheme=0) but using C seaice dynamics (unlikely senario anyway). -#endif /* OLD_THSICE_CALL_SEQUENCE */ C-- Compute Sea-Ice Loading (= mass of sea-ice + snow / area unit) DO j = jMin, jMax DO i = iMin, iMax @@ -420,21 +405,6 @@ SUBROUTINE THSICE_STEP_FWD( ENDDO ENDIF -#ifdef OLD_THSICE_CALL_SEQUENCE - IF ( thSIceAdvScheme.GT.0 ) THEN -C-- note: those fluxes should to be added directly to Qnet, EmPmR & saltFlux - DO j = jMin, jMax - DO i = iMin, iMax - IF ( hOceMxL(i,j,bi,bj).GT.0. _d 0 ) THEN - Qnet(i,j,bi,bj) = Qnet(i,j,bi,bj) - oceQnet(i,j,bi,bj) - EmPmR(i,j,bi,bj)= EmPmR(i,j,bi,bj)- oceFWfx(i,j,bi,bj) - saltFlux(i,j,bi,bj)=saltFlux(i,j,bi,bj) - oceSflx(i,j,bi,bj) - ENDIF - ENDDO - ENDDO - ENDIF -#endif /* OLD_THSICE_CALL_SEQUENCE */ - #ifdef ALLOW_BULK_FORCE IF ( useBulkForce ) THEN CALL BULKF_FLUX_ADJUST( diff --git a/pkg/thsice/thsice_step_temp.F b/pkg/thsice/thsice_step_temp.F index 3ec6b327da..d378f639b2 100644 --- a/pkg/thsice/thsice_step_temp.F +++ b/pkg/thsice/thsice_step_temp.F @@ -1,4 +1,7 @@ #include "THSICE_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif CBOP C !ROUTINE: THSICE_STEP_TEMP @@ -24,10 +27,8 @@ SUBROUTINE THSICE_STEP_TEMP( #include "THSICE_SIZE.h" #include "THSICE_PARAMS.h" #include "THSICE_VARS.h" -#include "THSICE_TAVE.h" #ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif INTEGER siLo, siHi, sjLo, sjHi @@ -68,11 +69,17 @@ SUBROUTINE THSICE_STEP_TEMP( C Note: dTsrf & tmpFlx are not used here; just allocate enough space for dTsrf. INTEGER i,j _RL tFrzOce(1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL dTsrf (1-OLx:sNx+OLx,1-OLy:sNy+OLy) - _RL tmpFlx(1:2) + _RL dTsrf (1:sNx,1:sNy) +C some compilers complain about the wrong dimensions of this field +C so it has to be defined with overlaps + _RL tmpFlx (1:sNx,1:sNy,0:2) _RL opFrac, icFrac LOGICAL dBugFlag +#ifdef ALLOW_AUTODIFF_TAMC +C tkey :: tape key (depends on tiles) + INTEGER tkey +#endif C- define grid-point location where to print debugging values #include "THSICE_DEBUG.h" @@ -81,38 +88,35 @@ SUBROUTINE THSICE_STEP_TEMP( C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ticekey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -C -C Initialize certain arrays - tmpFlx(1) = 0. _d 0 - tmpFlx(2) = 0. _d 0 + tkey = bi + (bj-1)*nSx + (ikey_dynamics-1)*nSx*nSy +#endif /* ALLOW_AUTODIFF_TAMC */ + +C Initialise some local arrays DO j = 1-OLy, sNy+OLy DO i = 1-OLx, sNx+OLx - dTsrf(i,j) = 0. _d 0 + tFrzOce(i,j) = 0. _d 0 + ENDDO + ENDDO + DO j = 1, sNy + DO i = 1, sNx + dTsrf(i,j) = 0. _d 0 + tmpFlx(i,j,0) = 0. _d 0 + tmpFlx(i,j,1) = 0. _d 0 + tmpFlx(i,j,2) = 0. _d 0 ENDDO ENDDO -#endif /* ALLOW_AUTODIFF_TAMC */ dBugFlag = debugLevel.GE.debLevC C- Initialise flxAtm,evpAtm - DO j = 1-OLy, sNy+OLy - DO i = 1-OLx, sNx+OLx - icFlxAtm(i,j,bi,bj) = 0. - icFrwAtm(i,j,bi,bj) = 0. - ENDDO + DO j = 1-OLy, sNy+OLy + DO i = 1-OLx, sNx+OLx + icFlxAtm(i,j,bi,bj) = 0. + icFrwAtm(i,j,bi,bj) = 0. ENDDO + ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE tsrf(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE tsrf(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif c IF ( fluidIsWater ) THEN CALL THSICE_ALBEDO( @@ -130,7 +134,10 @@ SUBROUTINE THSICE_STEP_TEMP( C------- #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE icflxsw(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte +C avoid calling s/r thsice_albedosolve4temp in adjoint routine again +CADJ STORE siceAlb (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE icAlbNIR(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE icFlxSW (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif #ifdef ALLOW_DBUG_THSICE @@ -161,12 +168,10 @@ SUBROUTINE THSICE_STEP_TEMP( ENDDO #ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE qice1(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE qice2(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE tice1(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE tice2(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE sheating(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte -CADJ STORE tsrf(:,:,bi,bj) = comlev1_bibj, key=ticekey, byte=isbyte +CADJ STORE Qice1 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Qice2 (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE sHeating(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +CADJ STORE Tsrf (:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte #endif CALL THSICE_SOLVE4TEMP( I bi, bj, @@ -181,6 +186,10 @@ SUBROUTINE THSICE_STEP_TEMP( O icFlxAtm(siLo,sjLo,bi,bj), icFrwAtm(siLo,sjLo,bi,bj), I myTime, myIter, myThid ) +#ifdef ALLOW_AUTODIFF_TAMC +C avoid calling s/r thsice_solve4temp in adjoint routine again +CADJ STORE icFlxSW(:,:,bi,bj) = comlev1_bibj, key=tkey, kind=isbyte +#endif DO j = jMin, jMax DO i = iMin, iMax IF (iceMask(i,j,bi,bj).GT.0. _d 0) THEN diff --git a/pkg/timeave/TIMEAVE_STATV.h b/pkg/timeave/TIMEAVE_STATV.h index 37429b2a2e..0c14cf233d 100644 --- a/pkg/timeave/TIMEAVE_STATV.h +++ b/pkg/timeave/TIMEAVE_STATV.h @@ -34,7 +34,7 @@ C uVeltave :: zonal velocity (m/s, i=1 held at western face) C vVeltave :: meridional velocity (m/s, j=1 held at southern face) C wVeltave :: vertical velocity ([r]/s, i.e.: ocean:m/s atmos:Pa/s) C thetatave :: potential temperature (oC, held at pressure/tracer point) -C salttave :: salinity (ppt, held at pressure/tracer point) +C salttave :: salinity (g/kg, held at pressure/tracer point) C Eta2tave :: eta * eta C TTtave :: theta * theta C UUtave :: uVel * uVel (used to compute the averaged KE) diff --git a/pkg/timeave/timeave_init_fixed.F b/pkg/timeave/timeave_init_fixed.F index f5dbf6df29..2bc0a1a40a 100644 --- a/pkg/timeave/timeave_init_fixed.F +++ b/pkg/timeave/timeave_init_fixed.F @@ -96,17 +96,17 @@ SUBROUTINE TIMEAVE_INIT_FIXED( myThid ) & 'Vert. velocity and potential temp. t-ave product', myThid) CALL MNC_CW_ADD_VNAME('UStave', 'U_xy_Hn__C__t', 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('UStave','units','psu*m/s', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('UStave','units','g/kg*m/s', myThid) CALL MNC_CW_ADD_VATTR_TEXT('UStave','description', & 'Zonal velocity and Salinity t-ave product', myThid) CALL MNC_CW_ADD_VNAME('VStave', 'V_xy_Hn__C__t', 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('VStave','units','psu*m/s', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('VStave','units','g/kg*m/s', myThid) CALL MNC_CW_ADD_VATTR_TEXT('VStave','description', & 'Merid velocity and Salinity t-ave product', myThid) CALL MNC_CW_ADD_VNAME('WStave', 'Cen_xy_Hn__L__t', 4,5, myThid) - CALL MNC_CW_ADD_VATTR_TEXT('WStave','units','psu*m/s', myThid) + CALL MNC_CW_ADD_VATTR_TEXT('WStave','units','g/kg*m/s', myThid) CALL MNC_CW_ADD_VATTR_TEXT('WStave','description', & 'Vert velocity and Salinity t-ave product', myThid) diff --git a/pkg/timeave/timeave_surf_flux.F b/pkg/timeave/timeave_surf_flux.F index 2d11d01836..e8749d563d 100644 --- a/pkg/timeave/timeave_surf_flux.F +++ b/pkg/timeave/timeave_surf_flux.F @@ -84,7 +84,7 @@ SUBROUTINE TIMEAVE_SURF_FLUX( CALL TIMEAVE_CUMUL_1T( tFluxtave, tmpFld, 1, & deltaTClock, bi, bj, myThid) -C sFlux (=salt flux [psu.kg/m2/s], positive <-> increasing Theta) +C sFlux (=salt flux [g/m2/s], positive <-> increasing salinity) DO j=1,sNy DO i=1,sNx tmpFld(i,j)= diff --git a/tools/OAD_support/ad_template.regular.F b/tools/OAD_support/ad_template.regular.F index edd16b85b5..4f0c21a93d 100644 --- a/tools/OAD_support/ad_template.regular.F +++ b/tools/OAD_support/ad_template.regular.F @@ -50,16 +50,13 @@ subroutine template() use SOLVE_FOR_PRESSURE3D_mod use SOLVE_FOR_PRESSURE_mod use SURFACE_mod - use tamc_mod - use tamc_keys_mod use cost_mod use g_cost_mod use ctrl_mod use ctrl_dummy_mod - use ctrl_weights_mod use optim_mod - use grdchk_mod - + use GRDCHK_mod + !$TEMPLATE_PRAGMA_DECLARATIONS integer, save :: currcp, curradjointcp integer :: cp_loop_variable_1,cp_loop_variable_2, @@ -74,11 +71,11 @@ subroutine template() integer iaddr external iaddr - if (our_rev_mode%arg_store) then + if (our_rev_mode%arg_store) then call cp_write_open() !$PLACEHOLDER_PRAGMA$ id=8 call cp_close() - end if + end if if (our_rev_mode%arg_restore) then call cp_read_open() !$PLACEHOLDER_PRAGMA$ id=9 diff --git a/tools/OAD_support/ad_template.revolve.F b/tools/OAD_support/ad_template.revolve.F index add83aa40f..be608bd628 100644 --- a/tools/OAD_support/ad_template.revolve.F +++ b/tools/OAD_support/ad_template.revolve.F @@ -31,7 +31,6 @@ subroutine template() use GLOBAL_SUM_mod #ifdef ALLOW_GGL90 use GGL90_mod - use GGL90_TAVE_mod #endif #ifdef ALLOW_GMREDI use GMREDI_mod @@ -59,16 +58,13 @@ subroutine template() use SOLVE_FOR_PRESSURE3D_mod use SOLVE_FOR_PRESSURE_mod use SURFACE_mod - use tamc_mod - use tamc_keys_mod use cost_mod use g_cost_mod use ctrl_mod use ctrl_dummy_mod - use ctrl_weights_mod use optim_mod - use grdchk_mod - + use GRDCHK_mod + !$TEMPLATE_PRAGMA_DECLARATIONS LOGICAL :: initialized=.FALSE. TYPE(rvAction),save :: theAction @@ -89,37 +85,37 @@ subroutine template() + ' our_indent=our_indent+1 - write(standardmessageunit, '(A,A,A)', ADVANCE='NO') + write(standardmessageunit, '(A,A,A)', ADVANCE='NO') +'OAD:',indentation(1:our_indent), 'enter __SRNAME__:' call oad_dump_revmod(); call oad_dump_tapestats() - write(standardmessageunit,*) + write(standardmessageunit,*) #endif nIter0 = NINT( (startTime-baseTime)/deltaTClock ) - if (our_rev_mode%arg_store) then - call cp_write_open() + if (our_rev_mode%arg_store) then + call cp_write_open() #ifdef OAD_DEBUG_JOINT - write(standardmessageunit,'(A,A,A)') - +'OAD:',indentation(1:our_indent), + write(standardmessageunit,'(A,A,A)') + +'OAD:',indentation(1:our_indent), +' __SRNAME__: entering arg store' #endif !$PLACEHOLDER_PRAGMA$ id=8 call cp_close() - end if + end if if (our_rev_mode%arg_restore) then #ifdef OAD_DEBUG_JOINT - write(standardmessageunit,'(A,A,A)') - +'OAD:',indentation(1:our_indent), + write(standardmessageunit,'(A,A,A)') + +'OAD:',indentation(1:our_indent), +' __SRNAME__: entering arg restore' #endif - call cp_read_open() + call cp_read_open() !$PLACEHOLDER_PRAGMA$ id=9 - call cp_close() + call cp_close() end if if (our_rev_mode%plain) then #ifdef OAD_DEBUG_JOINT - write(standardmessageunit,'(A,A,A)') - +'OAD:',indentation(1:our_indent), + write(standardmessageunit,'(A,A,A)') + +'OAD:',indentation(1:our_indent), +' __SRNAME__: run plain, down plain' #endif #ifdef ALLOW_OPENAD_DIVA @@ -128,7 +124,7 @@ subroutine template() print *, 'DIVA Revolve Plain PROD = ', PROD CALL OpenAD_forward_step( PROD, mytime, myiter, mythid ) enddo -#else +#else DO iloop = 1, nTimeSteps CALL OpenAD_forward_step( iloop, mytime, myiter, mythid ) enddo @@ -136,8 +132,8 @@ subroutine template() end if if (our_rev_mode%tape) then #ifdef OAD_DEBUG_JOINT - write(standardmessageunit,'(A,A,A)') - +'OAD:',indentation(1:our_indent), + write(standardmessageunit,'(A,A,A)') + +'OAD:',indentation(1:our_indent), +' __SRNAME__: run tape, down revolve until first U turn' #endif currIter=0 @@ -147,7 +143,7 @@ subroutine template() IF (.NOT.initialized) WRITE(*,'(A,A)') 'Error: ', errorMsg do while (theAction%actionFlag/=rvDone) theAction=rvNextAction() - select case (theAction%actionFlag) + select case (theAction%actionFlag) case (rvStore) call cp_write_open(theAction%cpNum+jointCPCount) !$PLACEHOLDER_PRAGMA$ id=8 @@ -155,45 +151,45 @@ subroutine template() case (rvForward) call OAD_revPlain do currIter=currIter,theAction%iteration-1 -#ifdef ALLOW_OPENAD_DIVA +#ifdef ALLOW_OPENAD_DIVA PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) print *, 'DIVA Revolve Tape rvForward PROD = ', PROD - CALL OpenAD_forward_step( PROD, mytime, + CALL OpenAD_forward_step( PROD, mytime, +myiter, mythid ) #else CALL OpenAD_forward_step( currIter+1, mytime, - +myiter, mythid ) + +myiter, mythid ) #endif end do call OAD_revTape case (rvFirstUTurn) -#ifdef ALLOW_OPENAD_DIVA +#ifdef ALLOW_OPENAD_DIVA PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) print *, 'DIVA Revolve Tape rvFirstUTurn PROD = ', PROD - CALL OpenAD_forward_step( PROD, mytime, myiter, + CALL OpenAD_forward_step( PROD, mytime, myiter, +mythid ) #else CALL OpenAD_forward_step( currIter+1, mytime, myiter, +mythid ) #endif ! get out now ... - exit - end select + exit + end select end do - end if + end if if (our_rev_mode%adjoint) then IF (.NOT.initialized) WRITE(*,'(A)') 'Error: not initialized' do while (theAction%actionFlag/=rvDone) - select case (theAction%actionFlag) + select case (theAction%actionFlag) case (rvFirstUTurn) !we taped already ... see above -#ifdef ALLOW_OPENAD_DIVA - PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) +#ifdef ALLOW_OPENAD_DIVA + PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) print *, 'DIVA Revolve Adjoint rvFirstUTurn PROD = ', PROD - CALL OpenAD_forward_step( PROD, mytime, myiter, + CALL OpenAD_forward_step( PROD, mytime, myiter, +mythid ) #else - CALL OpenAD_forward_step( currIter+1, mytime, myiter, + CALL OpenAD_forward_step( currIter+1, mytime, myiter, +mythid ) #endif case (rvStore) @@ -210,7 +206,7 @@ subroutine template() do currIter=currIter,theAction%iteration-1 #ifdef ALLOW_OPENAD_DIVA PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) - print *, 'DIVA Revolve Adjoint rvForward PROD = ', PROD + print *, 'DIVA Revolve Adjoint rvForward PROD = ', PROD CALL OpenAD_forward_step( PROD, mytime, myiter, + mythid ) #else @@ -221,12 +217,12 @@ subroutine template() call OAD_revAdjoint case (rvUTurn) #ifdef ALLOW_OPENAD_DIVA - PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) + PROD = (currIter+1 + NTIMESTEPS_L2 *(ILOOP +(-1))) #endif call OAD_revTape #ifdef ALLOW_OPENAD_DIVA - print *, 'DIVA Revolve Adjoint rvUTurn tp PROD = ', PROD - CALL OpenAD_forward_step( PROD, mytime, myiter, + print *, 'DIVA Revolve Adjoint rvUTurn tp PROD = ', PROD + CALL OpenAD_forward_step( PROD, mytime, myiter, +mythid ) #else CALL OpenAD_forward_step( currIter+1, mytime, myiter, @@ -234,23 +230,23 @@ subroutine template() #endif call OAD_revAdjoint #ifdef ALLOW_OPENAD_DIVA - print *, 'DIVA Revolve Adjoint rvUTurn ad PROD = ', PROD - CALL OpenAD_forward_step( PROD, mytime, myiter, + print *, 'DIVA Revolve Adjoint rvUTurn ad PROD = ', PROD + CALL OpenAD_forward_step( PROD, mytime, myiter, +mythid ) #else CALL OpenAD_forward_step( currIter+1, mytime, myiter, +mythid ) #endif - end select + end select theAction=rvNextAction() end do - end if + end if #ifdef OAD_DEBUG_JOINT - write(standardmessageunit,'(A,A,A)', ADVANCE='NO') + write(standardmessageunit,'(A,A,A)', ADVANCE='NO') +'OAD:',indentation(1:our_indent), 'leave __SRNAME__:' call oad_dump_revmod(); call oad_dump_tapestats() - write(standardmessageunit,*) + write(standardmessageunit,*) our_indent=our_indent-1 #endif diff --git a/tools/OAD_support/ad_template.streamice_vel_phistage.F b/tools/OAD_support/ad_template.streamice_vel_phistage.F index 2bd47f8b7f..f863926767 100644 --- a/tools/OAD_support/ad_template.streamice_vel_phistage.F +++ b/tools/OAD_support/ad_template.streamice_vel_phistage.F @@ -1,662 +1,649 @@ -#include "STREAMICE_OPTIONS.h" - - subroutine template() - use OAD_cp - use OAD_tape - use OAD_rev - -!$TEMPLATE_PRAGMA_DECLARATIONS - - integer myi -! Temporaries to hold the stack pointers - integer temp_double_tape_pointer, temp_integer_tape_pointer, temp_logical_tape_pointer, temp_character_tape_pointer, temp_string_tape_pointer - type(modeType) :: our_orig_mode - - integer iaddr - external iaddr -!<------------------Begin user declarations ---------------------->! -! Insert declarations of dummy variables for calling adjoint computation -! without side effects, and storing adjoint variable iterates - -#if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) - -#ifdef STREAMICE_ALLOW_FRIC_CONTROL - Real*8 C_basal_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#ifdef STREAMICE_ALLOW_BGLEN_CONTROL - Real*8 B_glen_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#ifdef STREAMICE_ALLOW_DEPTH_CONTROL - Real*8 R_low_si_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - Real*8 H_streamice_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 taudx_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 taudy_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 u_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 v_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 u_new_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 v_new_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef STREAMICE_HYBRID_STRESS - Real*8 taubx_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 tauby_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 visc_full_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - Real*8 taubx_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 tauby_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - Real*8 visc_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif - -!<------------------End user declarations ------------------------>! - if (our_rev_mode%plain) then - our_orig_mode=our_rev_mode - IF(ISINLOOP .eq. 0) THEN - CONVERGED = .FALSE. - ADJ_CONVERGED = .FALSE. - !ERR_LAST_CHANGE = 10. - end if - IF(ISINLOOP .ne. 0) THEN - IF(.NOT. CONVERGED) THEN - NL_ITER = (NL_ITER + 1) - CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL - +,CG_ITERS,err_max) - - WRITE(MSGBUF,'(A,I5,A,I4,A)') 'streamice linear solve number', - +NL_ITER,' ',CG_ITERS,' iterations ' - - CALL print_message(MSGBUF,STANDARDMESSAGEUNIT,'R',1) - -!!!!!!!!!!!! conv check - - if (STREAMICE_chkresidconvergence) then - - - WRITE(msgBuf,'(A,E15.7)') 'err/err_init', - & err_max/err_init - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT , 1) - - IF (err_max .LE. streamice_nonlin_tol * err_init) THEN - CONVERGED = .true. - ENDIF - - IF (err_max! +! Insert declarations of dummy variables for calling adjoint computation +! without side effects, and storing adjoint variable iterates + + real*8 adj_fp_err_change + +#if (defined (ALLOW_OPENAD) && defined (ALLOW_STREAMICE_OAD_FP)) + +#ifdef STREAMICE_ALLOW_FRIC_CONTROL + Real*8 C_basal_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif +#ifdef STREAMICE_ALLOW_BGLEN_CONTROL + Real*8 B_glen_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif +#ifdef STREAMICE_ALLOW_DEPTH_CONTROL + Real*8 R_low_si_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#endif + Real*8 H_streamice_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 taudx_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 taudy_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 u_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 v_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 u_new_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 v_new_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef STREAMICE_HYBRID_STRESS + Real*8 taubx_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 tauby_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 visc_full_dummy_d (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + Real*8 taubx_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 tauby_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + Real*8 visc_new_dummy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif + +!<------------------End user declarations ------------------------>! + if (our_rev_mode%plain) then + our_orig_mode=our_rev_mode + IF(ISINLOOP .eq. 0) THEN + CONVERGED = .FALSE. + ADJ_CONVERGED = .FALSE. + !ERR_LAST_CHANGE = 10. + end if + IF(ISINLOOP .ne. 0) THEN + IF(.NOT. CONVERGED) THEN + NL_ITER = (NL_ITER + 1) + CALL OpenAD_streamice_vel_phi(MYTHID,MAXNLITER,MAXCGITER,CGTOL + +,CG_ITERS,err_max) + + WRITE(MSGBUF,'(A,I5,A,I4,A)') 'streamice linear solve number', + +NL_ITER,' ',CG_ITERS,' iterations ' + + CALL print_message(MSGBUF,STANDARDMESSAGEUNIT,'R',1) + +!!!!!!!!!!!! conv check + + if (STREAMICE_chkresidconvergence) then + + WRITE(msgBuf,'(A,E15.7)') 'err/err_init', + & err_max/err_init + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + + IF (err_max .LE. streamice_nonlin_tol * err_init) THEN + CONVERGED = .true. + ENDIF + + IF (err_max +#include +#include + +#include "OLDadStack.h" +#include "OLDadBuffer.h" + +/************ MEASUREMENT OF PUSH TRAFFIC *************/ + +static long int bufferTraffic = 0 ; + +void addBufferTraffic(int n) { + bufferTraffic += n ; +} + +void adStack_showTraffic() { + showTotalTraffic(bufferTraffic) ; +} + +/************************** integer*4 ************************/ +/* The buffer array for I4. Suggested size 512 */ +#define I4BUFSIZE 512 +static int adi4buf[I4BUFSIZE] ; +static int adi4ibuf = 0 ; + +void pushInteger4(int x) { + addBufferTraffic(4) ; + adi4buf[adi4ibuf] = x ; + if (adi4ibuf>=I4BUFSIZE-1) { + pushNArray((char *)adi4buf, I4BUFSIZE*4, 1) ; + addBufferTraffic(-I4BUFSIZE*4) ; + adi4ibuf = 0 ; + } else + ++adi4ibuf ; +} + +void popInteger4(int *x) { + if (adi4ibuf<=0) { + popNArray((char *)adi4buf, I4BUFSIZE*4, 1) ; + adi4ibuf = I4BUFSIZE-1 ; + } else + --adi4ibuf ; + *x = adi4buf[adi4ibuf] ; +} + +/************************** integer*8 ************************/ +/* The buffer array for I8. Suggested size 512 */ +#define I8BUFSIZE 512 +static long adi8buf[I8BUFSIZE] ; +static int adi8ibuf = 0 ; + +void pushInteger8(long x) { + addBufferTraffic(8) ; + adi8buf[adi8ibuf] = x ; + if (adi8ibuf>=I8BUFSIZE-1) { + pushNArray((char *)adi8buf, I8BUFSIZE*8, 1) ; + addBufferTraffic(-I8BUFSIZE*8) ; + adi8ibuf = 0 ; + } else + ++adi8ibuf ; +} + +void popInteger8(long *x) { + if (adi8ibuf<=0) { + popNArray((char *)adi8buf, I8BUFSIZE*8, 1) ; + adi8ibuf = I8BUFSIZE-1 ; + } else + --adi8ibuf ; + *x = adi8buf[adi8ibuf] ; +} + +/************************** real*4 ************************/ +// The buffer array for R4. Suggested size 512 +#define R4BUFSIZE 512 +static float adr4buf[R4BUFSIZE] ; +static int adr4ibuf = 0 ; + +void pushReal4(float x) { + addBufferTraffic(4) ; + adr4buf[adr4ibuf] = x ; + if (adr4ibuf>=R4BUFSIZE-1) { + pushNArray((char *)adr4buf, R4BUFSIZE*4, 1) ; + addBufferTraffic(-R4BUFSIZE*4) ; + adr4ibuf = 0 ; + } else + ++adr4ibuf ; +} + +void popReal4(float *x) { + if (adr4ibuf<=0) { + popNArray((char *)adr4buf, R4BUFSIZE*4, 1) ; + adr4ibuf = R4BUFSIZE-1 ; + } else + --adr4ibuf ; + *x = adr4buf[adr4ibuf] ; +} + +/************************** real*8 ************************/ +// The buffer array for r8. Suggested size 512 +#define R8BUFSIZE 512 +static double adr8buf[R8BUFSIZE] ; +static int adr8ibuf = 0 ; + +void pushReal8(double x) { + addBufferTraffic(8) ; + adr8buf[adr8ibuf] = x ; + if (adr8ibuf>=R8BUFSIZE-1) { + pushNArray((char *)adr8buf, R8BUFSIZE*8, 1) ; + addBufferTraffic(-R8BUFSIZE*8) ; + adr8ibuf = 0 ; + } else + ++adr8ibuf ; +} + +void popReal8(double *x) { + if (adr8ibuf<=0) { + popNArray((char *)adr8buf, R8BUFSIZE*8, 1) ; + adr8ibuf = R8BUFSIZE-1 ; + } else + --adr8ibuf ; + *x = adr8buf[adr8ibuf] ; +} + +/************************** complex*8 ************************/ +// The buffer array for C8. Suggested size 512 +#define C8BUFSIZE 512 +static ccmplx adc8buf[C8BUFSIZE] ; +static int adc8ibuf = 0 ; + +void pushComplex8(ccmplx x) { + addBufferTraffic(8) ; + adc8buf[adc8ibuf] = x ; + if (adc8ibuf>=C8BUFSIZE-1) { + pushNArray((char *)adc8buf, C8BUFSIZE*8, 1) ; + addBufferTraffic(-C8BUFSIZE*8) ; + adc8ibuf = 0 ; + } else + ++adc8ibuf ; +} + +void popComplex8(ccmplx *x) { + if (adc8ibuf<=0) { + popNArray((char *)adc8buf, C8BUFSIZE*8, 1) ; + adc8ibuf = C8BUFSIZE-1 ; + } else + --adc8ibuf ; + *x = adc8buf[adc8ibuf] ; +} + +/************************** complex*16 ************************/ +// The buffer array for C16. Suggested size 512 +#define C16BUFSIZE 512 +static cdcmplx adc16buf[C16BUFSIZE] ; +static int adc16ibuf = 0 ; + +void pushComplex16(cdcmplx x) { + addBufferTraffic(16) ; + adc16buf[adc16ibuf] = x ; + if (adc16ibuf>=C16BUFSIZE-1) { + pushNArray((char *)adc16buf, C16BUFSIZE*16, 1) ; + addBufferTraffic(-C16BUFSIZE*16) ; + adc16ibuf = 0 ; + } else + ++adc16ibuf ; +} + +void popComplex16(cdcmplx *x) { + if (adc16ibuf<=0) { + popNArray((char *)adc16buf, C16BUFSIZE*16, 1) ; + adc16ibuf = C16BUFSIZE-1 ; + } else + --adc16ibuf ; + *x = adc16buf[adc16ibuf] ; +} + +/************************** character ************************/ +// The buffer array for characters. Suggested size 512 +#define CHARBUFSIZE 512 +static char ads1buf[CHARBUFSIZE] ; +static int ads1ibuf = 0 ; + +void pushCharacter(char x) { + addBufferTraffic(1) ; + ads1buf[ads1ibuf] = x ; + if (ads1ibuf>=CHARBUFSIZE-1) { + pushNArray((char *)ads1buf, CHARBUFSIZE, 1) ; + addBufferTraffic(-CHARBUFSIZE) ; + ads1ibuf = 0 ; + } else + ++ads1ibuf ; +} + +void popCharacter(char *x) { + if (ads1ibuf<=0) { + popNArray((char *)ads1buf, CHARBUFSIZE, 1) ; + ads1ibuf = CHARBUFSIZE-1 ; + } else + --ads1ibuf ; + *x = ads1buf[ads1ibuf] ; +} + +/******************* bit (hidden primitives) ***************/ +static unsigned int adbitbuf = 0 ; +static int adbitibuf = 0 ; + +void pushBit(int x) { + adbitbuf<<=1 ; + if (x) ++adbitbuf ; + if (adbitibuf>=31) { + pushNArray((char *)&adbitbuf, 4, 1) ; + adbitbuf = 0 ; + adbitibuf = 0 ; + } else + ++adbitibuf ; +} + +int popBit() { + if (adbitibuf<=0) { + popNArray((char *)&adbitbuf, 4, 1) ; + adbitibuf = 31 ; + } else + --adbitibuf ; + int result = adbitbuf%2 ; + adbitbuf>>=1 ; + return result ; +} + +/*************************** boolean *************************/ + +void pushBoolean(int x) { + pushBit(x) ; +} + +void popBoolean(int *x) { + *x = popBit() ; +} + +/************************* control ***********************/ + +void pushControl1b(int cc) { + pushBit(cc) ; +} + +void popControl1b(int *cc) { + *cc = popBit() ; +} + +void pushControl2b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl2b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; +} + +void pushControl3b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl3b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +void pushControl4b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl4b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +void pushControl5b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl5b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +void pushControl6b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl6b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +void pushControl7b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl7b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +void pushControl8b(int cc) { + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl8b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; +} + +/************************* pointer ************************/ +// The buffer array for pointers. Suggested size PTRBUFSIZE 512 +// Depending on the system, these use 4 or 8 bytes, +// but they are all 4 or all 8, never a mixture of both. +#define PTRBUFSIZE 512 +static void * adptrbuf[PTRBUFSIZE] ; +static int adptribuf = 0 ; + +void pushPointer4(void *x) { + addBufferTraffic(4) ; + adptrbuf[adptribuf] = x ; + if (adptribuf>=PTRBUFSIZE-1) { + pushNArray((char *)adptrbuf, PTRBUFSIZE*4, 1) ; + addBufferTraffic(-PTRBUFSIZE*4) ; + adptribuf = 0 ; + } else + ++adptribuf ; +} + +void popPointer4(void **x) { + if (adptribuf<=0) { + popNArray((char *)adptrbuf, PTRBUFSIZE*4, 1) ; + adptribuf = PTRBUFSIZE-1 ; + } else + --adptribuf ; + *x = adptrbuf[adptribuf] ; +} + +void pushPointer8(void *x) { + addBufferTraffic(8) ; + adptrbuf[adptribuf] = x ; + if (adptribuf>=PTRBUFSIZE-1) { + pushNArray((char *)adptrbuf, PTRBUFSIZE*8, 1) ; + addBufferTraffic(-PTRBUFSIZE*8) ; + adptribuf = 0 ; + } else + ++adptribuf ; +} + +void popPointer8(void **x) { + if (adptribuf<=0) { + popNArray((char *)adptrbuf, PTRBUFSIZE*8, 1) ; + adptribuf = PTRBUFSIZE-1 ; + } else + --adptribuf ; + *x = adptrbuf[adptribuf] ; +} + +/********************************************************** + * HOW TO CREATE PUSH* POP* SUBROUTINES + * YET FOR OTHER DATA TYPES + * Duplicate and uncomment the commented code below. + * In the duplicated and uncommented code, replace: + * ctct -> C type name (e.g. float double, int...) + * tttt -> BASIC TAPENADE TYPE NAME + * (in character, boolean, integer, real, complex, pointer,...) + * z7 -> LETTERSIZE FOR TYPE + * (LETTER in s, b, i, r, c, p, ...) (SIZE is type size in bytes) + * 7 -> TYPE SIZE IN BYTES + **********************************************************/ + +/************************** tttt*7 ************************/ +/* +// The buffer array for Z7. Suggested size 512 +#define Z7BUFSIZE 512 +static ctct adz7buf[Z7BUFSIZE] ; +static ctct adz7ibuf = 0 ; + +void pushTttt7(ctct x) { + addBufferTraffic(7) ; + adz7buf[adz7ibuf] = x ; + if (adz7ibuf>=Z7BUFSIZE-1) { + pushNArray((char *)adz7buf, Z7BUFSIZE*7, 1) ; + addBufferTraffic(-Z7BUFSIZE*7) ; + adz7ibuf = 0 ; + } else + ++adz7ibuf ; +} + +void popTttt7(ctct *x) { + if (adz7ibuf <= 0) { + popNArray((char *)adz7buf, Z7BUFSIZE*7, 1) ; + adz7ibuf = Z7BUFSIZE-1 ; + } else + --adz7ibuf ; + *x = adz7buf[adz7ibuf] ; +} + +void pushTttt7Array(ctct *x, int n) { + pushNArray((char *)x,(unsigned int)(n*7), 1) ; +} + +void popTttt7Array(ctct *x, int n) { + popNArray((char *)x,(unsigned int)(n*7), 1) ; +} +*/ + +/*************** REPEATED ACCESS MECHANISM *********************/ + +typedef struct _BufferRepeatCell { + int indexi4 ; + int indexi8 ; + int indexr4 ; + int indexr8 ; + int indexc8 ; + int indexc16 ; + int indexs1 ; + int indexbit ; + int indexptr ; + struct _BufferRepeatCell *previous ; +} BufferRepeatCell ; + +BufferRepeatCell *bufferRepeatTop = NULL ; + +void adStack_startRepeat() { + // Create (push) a new "buffers" repeat level: + BufferRepeatCell *newRepeatCell = (BufferRepeatCell *)malloc(sizeof(BufferRepeatCell)) ; + newRepeatCell->previous = bufferRepeatTop ; + // Also create (push) a new repeat level for the main stack: + startStackRepeat1() ; + // Push all local buffers on the main stack + // 3rd arg is 0 to deactivate the check for stack read-only zone: + pushNArray((char *)adi4buf, adi4ibuf*4, 0) ; + pushNArray((char *)adi8buf, adi8ibuf*8, 0) ; + pushNArray((char *)adr4buf, adr4ibuf*4, 0) ; + pushNArray((char *)adr8buf, adr8ibuf*8, 0) ; + pushNArray((char *)adc8buf, adc8ibuf*sizeof(ccmplx), 0) ; + pushNArray((char *)adc16buf, adc16ibuf*sizeof(cdcmplx), 0) ; + pushNArray((char *)ads1buf, ads1ibuf, 0) ; + pushNArray((char *)&adbitbuf, 4, 0) ; + pushNArray((char *)adptrbuf, adptribuf*sizeof(void *), 0) ; + newRepeatCell->indexi4 = adi4ibuf ; + newRepeatCell->indexi8 = adi8ibuf ; + newRepeatCell->indexr4 = adr4ibuf ; + newRepeatCell->indexr8 = adr8ibuf ; + newRepeatCell->indexc8 = adc8ibuf ; + newRepeatCell->indexc16 = adc16ibuf ; + newRepeatCell->indexs1 = ads1ibuf ; + newRepeatCell->indexbit = adbitibuf ; + newRepeatCell->indexptr = adptribuf ; + // Store current location as repeat location of new repeat level. + // Note that this repeat location protects below as read-only. + // Make the new repeat level the current repeat level for the main stack: + startStackRepeat2() ; + // Make this new repeat level the current repeat level: + bufferRepeatTop = newRepeatCell ; +} + +// Note: adStack_resetrepeat() forces exit from any internal +// checkpointed sequence, i.e. all nested push'es are forced popped. +void adStack_resetRepeat() { + // First stage of reset repeat for the main stack: + resetStackRepeat1() ; + // Restore all local buffers: + adi4ibuf = bufferRepeatTop->indexi4 ; + adi8ibuf = bufferRepeatTop->indexi8 ; + adr4ibuf = bufferRepeatTop->indexr4 ; + adr8ibuf = bufferRepeatTop->indexr8 ; + adc8ibuf = bufferRepeatTop->indexc8 ; + adc16ibuf = bufferRepeatTop->indexc16 ; + ads1ibuf = bufferRepeatTop->indexs1 ; + adbitibuf = bufferRepeatTop->indexbit ; + adptribuf = bufferRepeatTop->indexptr ; + // 3rd arg is 0 to deactivate the check for stack read-only zone: + popNArray((char *)adptrbuf, adptribuf*sizeof(void *), 0) ; + popNArray((char *)&adbitbuf, 4, 0) ; + popNArray((char *)ads1buf, ads1ibuf, 0) ; + popNArray((char *)adc16buf, adc16ibuf*sizeof(cdcmplx), 0) ; + popNArray((char *)adc8buf, adc8ibuf*sizeof(ccmplx), 0) ; + popNArray((char *)adr8buf, adr8ibuf*8, 0) ; + popNArray((char *)adr4buf, adr4ibuf*4, 0) ; + popNArray((char *)adi8buf, adi8ibuf*8, 0) ; + popNArray((char *)adi4buf, adi4ibuf*4, 0) ; + // Second stage of reset repeat for the main stack: + resetStackRepeat2() ; +} + +// Note: adStack_endrepeat() forces exit from any internal +// checkpointed sequence, i.e. all nested push'es are forced popped. +void adStack_endRepeat() { + // Remove (pop) top repeat level for the main stack: + endStackRepeat() ; + // Remove (pop) top "buffer" repeat level: + BufferRepeatCell *oldRepeatCell = bufferRepeatTop ; + bufferRepeatTop = bufferRepeatTop->previous ; + free(oldRepeatCell) ; +} + +void showBufferRepeatsRec(BufferRepeatCell *inRepeatStack, int type) { + if (inRepeatStack->previous) {showBufferRepeatsRec(inRepeatStack->previous, type) ; printf(" ; ") ;} + switch (type) { + case 1: + printf("%1i", inRepeatStack->indexi4) ; + break ; + case 2: + printf("%1i", inRepeatStack->indexi8) ; + break ; + case 3: + printf("%1i", inRepeatStack->indexr4) ; + break ; + case 4: + printf("%1i", inRepeatStack->indexr8) ; + break ; + case 5: + printf("%1i", inRepeatStack->indexc8) ; + break ; + case 6: + printf("%1i", inRepeatStack->indexc16) ; + break ; + case 7: + printf("%1i", inRepeatStack->indexs1) ; + break ; + case 8: + printf("%1i", inRepeatStack->indexbit) ; + break ; + case 9: + printf("%1i", inRepeatStack->indexptr) ; + break ; + } +} + +void showBufferRepeats(BufferRepeatCell *inRepeatStack, int type) { + printf(" REPEATS:") ; + if (inRepeatStack) + showBufferRepeatsRec(inRepeatStack, type) ; + else + printf(" none!") ; +} + +void showStackAndBuffers(char *locationName) { + int i ; + printf("%6s: ", locationName) ; + showStack() ; + printf(" I4:") ; + for (i=0 ; i BASIC TAPENADE TYPE NAME +C (in character, boolean, integer, real, complex, pointer,...) +C z7 -> LETTERSIZE FOR TYPE +C (LETTER in s, b, i, r, c, p, ...) (SIZE is type size in bytes) +C 7 -> TYPE SIZE IN BYTES +C *********************************************************/ + +C ************************* TTTT*7 ************************ +c BLOCK DATA TTTTS7 +c TTTT*7 adz7buf(512) +c INTEGER adz7ibuf +c COMMON /adz7fbuf/adz7buf,adz7ibuf +c DATA adz7ibuf/1/ +c END +c +c SUBROUTINE PUSHTTTT7(x) +c TTTT*7 x, adz7buf(512) +c INTEGER adz7ibuf +c COMMON /adz7fbuf/adz7buf,adz7ibuf +c CALL addftraffic(7) +c adz7buf(adz7ibuf) = x +c IF (adz7ibuf.eq.512) THEN +c CALL PUSHTTTT7ARRAY(adz7buf, 512) +c CALL addftraffic(-7*512) +c adz7ibuf = 1 +c ELSE +c adz7ibuf = adz7ibuf+1 +c ENDIF +c END +c +c SUBROUTINE POPTTTT7(x) +c TTTT*7 x, adz7buf(512) +c INTEGER adz7ibuf +c COMMON /adz7fbuf/adz7buf,adz7ibuf +c IF (adz7ibuf.le.1) THEN +c CALL POPTTTT7ARRAY(adz7buf, 512) +c adz7ibuf = 512 +c ELSE +c adz7ibuf = adz7ibuf-1 +c ENDIF +c x = adz7buf(adz7ibuf) +c END + +C *************** REPEATED ACCESS MECHANISM ********************* +C 5 nested repeat levels should be more than enough!! + BLOCK DATA BUFFERREPEAT + INTEGER nbbufrepeat + INTEGER indexi4repeats(5) + INTEGER indexi8repeats(5) + INTEGER indexr4repeats(5) + INTEGER indexr8repeats(5) + INTEGER indexc8repeats(5) + INTEGER indexc16repeats(5) + INTEGER indexs1repeats(5) + INTEGER indexbitrepeats(5) + INTEGER indexptrrepeats(5) + COMMON /allbufferrepeats/indexi4repeats, indexi8repeats, + + indexr4repeats, indexr8repeats, indexc8repeats, + + indexc16repeats, indexs1repeats, indexbitrepeats, + + indexptrrepeats, nbbufrepeat + DATA nbbufrepeat/0/ + END + + SUBROUTINE ADSTACK_STARTREPEAT() + INTEGER nbbufrepeat + INTEGER indexi4repeats(5) + INTEGER indexi8repeats(5) + INTEGER indexr4repeats(5) + INTEGER indexr8repeats(5) + INTEGER indexc8repeats(5) + INTEGER indexc16repeats(5) + INTEGER indexs1repeats(5) + INTEGER indexbitrepeats(5) + INTEGER indexptrrepeats(5) + COMMON /allbufferrepeats/indexi4repeats, indexi8repeats, + + indexr4repeats, indexr8repeats, indexc8repeats, + + indexc16repeats, indexs1repeats, indexbitrepeats, + + indexptrrepeats, nbbufrepeat + INTEGER*4 adi4buf(512) + INTEGER adi4ibuf + COMMON /adi4fbuf/adi4buf,adi4ibuf + INTEGER*8 adi8buf(512) + INTEGER adi8ibuf + COMMON /adi8fbuf/adi8buf,adi8ibuf + REAL*4 adr4buf(512) + INTEGER adr4ibuf + COMMON /adr4fbuf/adr4buf,adr4ibuf + REAL*8 adr8buf(512) + INTEGER adr8ibuf + COMMON /adr8fbuf/adr8buf,adr8ibuf + COMPLEX*8 adc8buf(512) + INTEGER adc8ibuf + COMMON /adc8fbuf/adc8buf,adc8ibuf + COMPLEX*16 adc16buf(512) + INTEGER adc16ibuf + COMMON /adc16fbuf/adc16buf,adc16ibuf + CHARACTER ads1buf(512) + INTEGER ads1ibuf + COMMON /ads1fbuf/ads1buf,ads1ibuf + INTEGER*4 adbitbuf + INTEGER adbitibuf + COMMON /adbitfbuf/adbitbuf, adbitibuf +c Create a new "buffers" repeat level: + nbbufrepeat = nbbufrepeat+1 +c Also create a new repeat level for the main stack: + CALL STARTSTACKREPEAT1() +c Push all local buffers on the main stack. +c 3rd arg is 0 to deactivate the check for stack read-only zone: + if (adi4ibuf.gt.1) CALL PUSHNARRAY(adi4buf, 4*(adi4ibuf-1), 0) + if (adi8ibuf.gt.1) CALL PUSHNARRAY(adi8buf, 8*(adi8ibuf-1), 0) + if (adr4ibuf.gt.1) CALL PUSHNARRAY(adr4buf, 4*(adr4ibuf-1), 0) + if (adr8ibuf.gt.1) CALL PUSHNARRAY(adr8buf, 8*(adr8ibuf-1), 0) + if (adc8ibuf.gt.1) CALL PUSHNARRAY(adc8buf, 8*(adc8ibuf-1), 0) + if (adc16ibuf.gt.1)CALL PUSHNARRAY(adc16buf,16*(adc16ibuf-1),0) + if (ads1ibuf.gt.1) CALL PUSHNARRAY(ads1buf, ads1ibuf-1, 0) + CALL PUSHNARRAY(adbitbuf, 4, 0) +c if (adptribuf.gt.1) CALL PUSHNARRAY(adptrbuf, 8*(adptribuf-1), 0) + indexi4repeats(nbbufrepeat) = adi4ibuf + indexi8repeats(nbbufrepeat) = adi8ibuf + indexr4repeats(nbbufrepeat) = adr4ibuf + indexr8repeats(nbbufrepeat) = adr8ibuf + indexc8repeats(nbbufrepeat) = adc8ibuf + indexc16repeats(nbbufrepeat) = adc16ibuf + indexs1repeats(nbbufrepeat) = ads1ibuf + indexbitrepeats(nbbufrepeat) = adbitibuf +c indexptrrepeats(nbbufrepeat) = adptribuf +c Store current location as repeat location of new repeat level. +c Note that this repeat location protects below as read-only. +c Make the new repeat level the current repeat level for the main stack: + CALL STARTSTACKREPEAT2() + END + +c Note: ADSTACK_RESETREPEAT() forces exit from any internal checkpointed sequence, +c i.e. all nested push'es are forced popped. + SUBROUTINE ADSTACK_RESETREPEAT() + INTEGER nbbufrepeat + INTEGER indexi4repeats(5) + INTEGER indexi8repeats(5) + INTEGER indexr4repeats(5) + INTEGER indexr8repeats(5) + INTEGER indexc8repeats(5) + INTEGER indexc16repeats(5) + INTEGER indexs1repeats(5) + INTEGER indexbitrepeats(5) + INTEGER indexptrrepeats(5) + COMMON /allbufferrepeats/indexi4repeats, indexi8repeats, + + indexr4repeats, indexr8repeats, indexc8repeats, + + indexc16repeats, indexs1repeats, indexbitrepeats, + + indexptrrepeats, nbbufrepeat + INTEGER*4 adi4buf(512) + INTEGER adi4ibuf + COMMON /adi4fbuf/adi4buf,adi4ibuf + INTEGER*8 adi8buf(512) + INTEGER adi8ibuf + COMMON /adi8fbuf/adi8buf,adi8ibuf + REAL*4 adr4buf(512) + INTEGER adr4ibuf + COMMON /adr4fbuf/adr4buf,adr4ibuf + REAL*8 adr8buf(512) + INTEGER adr8ibuf + COMMON /adr8fbuf/adr8buf,adr8ibuf + COMPLEX*8 adc8buf(512) + INTEGER adc8ibuf + COMMON /adc8fbuf/adc8buf,adc8ibuf + COMPLEX*16 adc16buf(512) + INTEGER adc16ibuf + COMMON /adc16fbuf/adc16buf,adc16ibuf + CHARACTER ads1buf(512) + INTEGER ads1ibuf + COMMON /ads1fbuf/ads1buf,ads1ibuf + INTEGER*4 adbitbuf + INTEGER adbitibuf + COMMON /adbitfbuf/adbitbuf, adbitibuf +c First stage of reset repeat for the main stack: + CALL RESETSTACKREPEAT1() +c Restore all local buffers: + adi4ibuf = indexi4repeats(nbbufrepeat) + adi8ibuf = indexi8repeats(nbbufrepeat) + adr4ibuf = indexr4repeats(nbbufrepeat) + adr8ibuf = indexr8repeats(nbbufrepeat) + adc8ibuf = indexc8repeats(nbbufrepeat) + adc16ibuf = indexc16repeats(nbbufrepeat) + ads1ibuf = indexs1repeats(nbbufrepeat) + adbitibuf = indexbitrepeats(nbbufrepeat) +c adptribuf = indexptrrepeats(nbbufrepeat) +c if (adptribuf.gt.1) CALL POPNARRAY(adptrbuf, 8*(adptribuf-1),0) + CALL POPNARRAY(adbitbuf, 4, 0) +c 3rd arg is 0 to deactivate the check for stack read-only zone: + if (ads1ibuf.gt.1) CALL POPNARRAY(ads1buf, ads1ibuf-1, 0) + if (adc16ibuf.gt.1)CALL POPNARRAY(adc16buf,16*(adc16ibuf-1),0) + if (adc8ibuf.gt.1) CALL POPNARRAY(adc8buf, 8*(adc8ibuf-1), 0) + if (adr8ibuf.gt.1) CALL POPNARRAY(adr8buf, 8*(adr8ibuf-1), 0) + if (adr4ibuf.gt.1) CALL POPNARRAY(adr4buf, 4*(adr4ibuf-1), 0) + if (adi8ibuf.gt.1) CALL POPNARRAY(adi8buf, 8*(adi8ibuf-1), 0) + if (adi4ibuf.gt.1) CALL POPNARRAY(adi4buf, 4*(adi4ibuf-1), 0) +c Second stage of reset repeat for the main stack: + CALL RESETSTACKREPEAT2() + END + +c Note: ADSTACK_ENDREPEAT() forces exit from any internal checkpointed sequence, +c i.e. all nested push'es are forced popped. + SUBROUTINE ADSTACK_ENDREPEAT() + INTEGER nbbufrepeat + INTEGER indexi4repeats(5) + INTEGER indexi8repeats(5) + INTEGER indexr4repeats(5) + INTEGER indexr8repeats(5) + INTEGER indexc8repeats(5) + INTEGER indexc16repeats(5) + INTEGER indexs1repeats(5) + INTEGER indexbitrepeats(5) + INTEGER indexptrrepeats(5) + COMMON /allbufferrepeats/indexi4repeats, indexi8repeats, + + indexr4repeats, indexr8repeats, indexc8repeats, + + indexc16repeats, indexs1repeats, indexbitrepeats, + + indexptrrepeats, nbbufrepeat +c End repeat for the main stack: + CALL ENDSTACKREPEAT() ; +c Remove top repeat level: + nbbufrepeat = nbbufrepeat-1 + END + + SUBROUTINE SHOWI4BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + INTEGER*4 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' I4:',512(a2,i10.1),' REPEATS:',5i3) + END + + SUBROUTINE SHOWI8BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + INTEGER*8 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' I8:',512(a2,i20.1),' REPEATS:',5i3) + END + + SUBROUTINE SHOWR4BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + REAL*4 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' R4:',512(a2,e12.5),' REPEATS:',5i3) + END + + SUBROUTINE SHOWR8BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + REAL*8 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' R8:',512(a2,d12.5),' REPEATS:',5i3) + END + + SUBROUTINE SHOWC8BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + COMPLEX*8 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' C8:',512(a2,'(',e12.5,' i',e12.5,')'), + + ' REPEATS:',5i3) + END + + SUBROUTINE SHOWC16BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + COMPLEX*16 xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' C16:',512(a2,'(',d12.5,' i',d12.5,')'), + + ' REPEATS:',5i3) + END + + SUBROUTINE SHOWS1BUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + CHARACTER xbuf(512) + INTEGER xibuf, xrepeats(5), nbbufrepeat + CHARACTER(len=3) seps(513) + INTEGER i + DO i=1,513 + seps(i) = '' + ENDDO + seps(xibuf) = ' |' + WRITE (6,991) (seps(i),xbuf(i),i=1,512), + + (xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' STR:',512(a2,a1), + + ' REPEATS:',5i3) + END + + SUBROUTINE SHOWBITBUFFERANDREPEATS(xbuf,xibuf, + + xrepeats,nbbufrepeat) + INTEGER*4 xbuf + INTEGER xibuf, xrepeats(5), nbbufrepeat,i + WRITE (6,991) xibuf,xbuf,(xrepeats(i),i=1,nbbufrepeat) + 991 FORMAT(' BITS:',i2,' in ',z8,' REPEATS:',5i3) + END + + SUBROUTINE SHOWSTACKANDBUFFERS(locationName) + CHARACTER(*) locationName + INTEGER nbbufrepeat + INTEGER indexi4repeats(5) + INTEGER indexi8repeats(5) + INTEGER indexr4repeats(5) + INTEGER indexr8repeats(5) + INTEGER indexc8repeats(5) + INTEGER indexc16repeats(5) + INTEGER indexs1repeats(5) + INTEGER indexbitrepeats(5) + INTEGER indexptrrepeats(5) + COMMON /allbufferrepeats/indexi4repeats, indexi8repeats, + + indexr4repeats, indexr8repeats, indexc8repeats, + + indexc16repeats, indexs1repeats, indexbitrepeats, + + indexptrrepeats, nbbufrepeat + INTEGER*4 adi4buf(512) + INTEGER adi4ibuf + COMMON /adi4fbuf/adi4buf,adi4ibuf + INTEGER*8 adi8buf(512) + INTEGER adi8ibuf + COMMON /adi8fbuf/adi8buf,adi8ibuf + REAL*4 adr4buf(512) + INTEGER adr4ibuf + COMMON /adr4fbuf/adr4buf,adr4ibuf + REAL*8 adr8buf(512) + INTEGER adr8ibuf + COMMON /adr8fbuf/adr8buf,adr8ibuf + COMPLEX*8 adc8buf(512) + INTEGER adc8ibuf + COMMON /adc8fbuf/adc8buf,adc8ibuf + COMPLEX*16 adc16buf(512) + INTEGER adc16ibuf + COMMON /adc16fbuf/adc16buf,adc16ibuf + CHARACTER ads1buf(512) + INTEGER ads1ibuf + COMMON /ads1fbuf/ads1buf,ads1ibuf + INTEGER*4 adbitbuf + INTEGER adbitibuf + COMMON /adbitfbuf/adbitbuf, adbitibuf + print *,locationName + CALL SHOWSTACK() + CALL SHOWI4BUFFERANDREPEATS(adi4buf,adi4ibuf, + + indexi4repeats,nbbufrepeat) + CALL SHOWI8BUFFERANDREPEATS(adi8buf,adi8ibuf, + + indexi8repeats,nbbufrepeat) + CALL SHOWR4BUFFERANDREPEATS(adr4buf,adr4ibuf, + + indexr4repeats,nbbufrepeat) + CALL SHOWR8BUFFERANDREPEATS(adr8buf,adr8ibuf, + + indexr8repeats,nbbufrepeat) + CALL SHOWC8BUFFERANDREPEATS(adc8buf,adc8ibuf, + + indexc8repeats,nbbufrepeat) + CALL SHOWC16BUFFERANDREPEATS(adc16buf,adc16ibuf, + + indexc16repeats,nbbufrepeat) + CALL SHOWS1BUFFERANDREPEATS(ads1buf,ads1ibuf, + + indexs1repeats,nbbufrepeat) + CALL SHOWBITBUFFERANDREPEATS(adbitbuf,adbitibuf, + + indexbitrepeats,nbbufrepeat) +c No pointer buffer so far... + END + + SUBROUTINE SHOWSTACKANDBUFFERSSIZE(pos) + INTEGER*4 pos + INTEGER*4 adi4buf(512) + INTEGER adi4ibuf + COMMON /adi4fbuf/adi4buf,adi4ibuf + INTEGER*8 adi8buf(512) + INTEGER adi8ibuf + COMMON /adi8fbuf/adi8buf,adi8ibuf + REAL*4 adr4buf(512) + INTEGER adr4ibuf + COMMON /adr4fbuf/adr4buf,adr4ibuf + REAL*8 adr8buf(512) + INTEGER adr8ibuf + COMMON /adr8fbuf/adr8buf,adr8ibuf + COMPLEX*8 adc8buf(512) + INTEGER adc8ibuf + COMMON /adc8fbuf/adc8buf,adc8ibuf + COMPLEX*16 adc16buf(512) + INTEGER adc16ibuf + COMMON /adc16fbuf/adc16buf,adc16ibuf + CHARACTER ads1buf(512) + INTEGER ads1ibuf + COMMON /ads1fbuf/ads1buf,ads1ibuf + INTEGER*4 adbitbuf + INTEGER adbitibuf + COMMON /adbitfbuf/adbitbuf, adbitibuf + CALL SHOWSTACKSIZE(adi4ibuf-1,adi8ibuf-1,adr4ibuf-1,adr8ibuf-1, + + adc8ibuf-1,adc16ibuf-1,ads1ibuf-1,adbitibuf-1,0,pos) + END + +C=========== MEASUREMENT OF PUSH TRAFFIC ========== + + BLOCK DATA BUFTRAFFICBLOCK + INTEGER*8 buffertraffic + COMMON /BUFTRAFFIC/buffertraffic + DATA buffertraffic/0/ + END + + subroutine addftraffic(n) + INTEGER n + INTEGER*8 buffertraffic + COMMON /BUFTRAFFIC/buffertraffic + buffertraffic = buffertraffic+n + END + + SUBROUTINE ADSTACK_SHOWTRAFFIC() + INTEGER*8 buffertraffic + COMMON /BUFTRAFFIC/buffertraffic + call SHOWTOTALTRAFFIC(buffertraffic) + END diff --git a/tools/TAP_support/ADFirstAidKit/OLDadBuffer.h b/tools/TAP_support/ADFirstAidKit/OLDadBuffer.h new file mode 100644 index 0000000000..4b313c6fc3 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/OLDadBuffer.h @@ -0,0 +1,140 @@ +#ifndef ADBUFFER_LOADED +#define ADBUFFER_LOADED 1 + +#include "OLDadStack.h" + +typedef struct {float r,i;} ccmplx ; +typedef struct {double dr, di;} cdcmplx ; + +/** Push an int (4 bytes int) */ +extern void pushInteger4(int x) ; + +/** Pop an int (4 bytes int) */ +extern void popInteger4(int *x) ; + +/** Push a long (8 bytes int) */ +extern void pushInteger8(long x) ; + +/** Pop a long (8 bytes int) */ +extern void popInteger8(long *x) ; + +/** Push a float (4 bytes real) */ +extern void pushReal4(float x) ; + +/** Pop a float (4 bytes real) */ +extern void popReal4(float *x) ; + +/** Push a double (8 bytes real) */ +extern void pushReal8(double x) ; + +/** Pop a double (8 bytes real) */ +extern void popReal8(double *x) ; + +/** Push a complex (4 bytes per component) */ +extern void pushComplex8(ccmplx x) ; + +/** Pop a complex (4 bytes per component) */ +extern void popComplex8(ccmplx *x) ; + +/** Push a double complex (8 bytes per component) */ +extern void pushComplex16(cdcmplx x) ; + +/** Pop a double complex (8 bytes per component) */ +extern void popComplex16(cdcmplx *x) ; + +/** Push a char (byte) */ +extern void pushCharacter(char x) ; + +/** Pop a char (byte) */ +extern void popCharacter(char *x) ; + +/** Push a boolean (one bit) */ +extern void pushBoolean(int x) ; + +/** Pop a boolean (one bit) */ +extern void popBoolean(int *x) ; + +/** Push a value ranging in [0,1] */ +extern void pushControl1b(int cc) ; + +/** Pop a value ranging in [0,1] */ +extern void popControl1b(int *cc) ; + +/** Push a value ranging in [0,3] */ +extern void pushControl2b(int cc) ; + +/** Pop a value ranging in [0,3] */ +extern void popControl2b(int *cc) ; + +/** Push a value ranging in [0,7] */ +extern void pushControl3b(int cc) ; + +/** Pop a value ranging in [0,7] */ +extern void popControl3b(int *cc) ; + +/** Push a value ranging in [0,15] */ +extern void pushControl4b(int cc) ; + +/** Pop a value ranging in [0,15] */ +extern void popControl4b(int *cc) ; + +/** Push a value ranging in [0,31] */ +extern void pushControl5b(int cc) ; + +/** Pop a value ranging in [0,31] */ +extern void popControl5b(int *cc) ; + +/** Push a value ranging in [0,63] */ +extern void pushControl6b(int cc) ; + +/** Pop a value ranging in [0,63] */ +extern void popControl6b(int *cc) ; + +/** Push a value ranging in [0,127] */ +extern void pushControl7b(int cc) ; + +/** Pop a value ranging in [0,127] */ +extern void popControl7b(int *cc) ; + +/** Push a value ranging in [0,255] */ +extern void pushControl8b(int cc) ; + +/** Pop a value ranging in [0,255] */ +extern void popControl8b(int *cc) ; + +/** Push a 32 bits pointer */ +extern void pushPointer4(void *x) ; + +/** Pop a 32 bits pointer */ +extern void popPointer4(void **x) ; + +/** Push a 64 bits pointer */ +extern void pushPointer8(void *x) ; + +/** Pop a 64 bits pointer */ +extern void popPointer8(void **x) ; + +/** From now on, everything below current stack top may be read repeated times. + * This opens a so-called new repeated-access level */ +extern void adStack_startRepeat() ; + +/** Reset the stack top to the deepest enclosing repeated-access level */ +extern void adStack_resetRepeat() ; + +/** Return the deepest enclosing repeated-access level to normal stack behavior */ +extern void adStack_endRepeat() ; + +/** Display the total amount of memory pushed */ +extern void adStack_showTraffic() ; + +/** Display in detail the contents of the AD stack, + * followed by the detailed contents of each type buffer. + * Also show the stack of nested repeated-access levels */ +extern void showStackAndBuffers(char *locationName) ; + +/** Display the current size of the AD stack as + * <#blocks.#bytesInTopBlock> then size of each type buffers + * "pos" will be displayed in front, to help you identify the location. */ +extern void showStackAndBuffersSize(int pos) ; + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/OLDadStack.c b/tools/TAP_support/ADFirstAidKit/OLDadStack.c new file mode 100644 index 0000000000..f3d6881565 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/OLDadStack.c @@ -0,0 +1,526 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include +#include + +/* The size of a BLOCK in characters. Suggested 16384. Should try 2^16=65536 */ +#define ONE_BLOCK_SIZE 65536 + +/* The main stack is a double-chain of DoubleChainedBlock objects. + * Each DoubleChainedBlock holds an array[ONE_BLOCK_SIZE] of char. */ +typedef struct _DoubleChainedBlock{ + unsigned int rank ; + struct _DoubleChainedBlock *prev ; + char *contents ; + struct _DoubleChainedBlock *next ; +} DoubleChainedBlock ; + +char initContents[ONE_BLOCK_SIZE] = {'\0'} ; +DoubleChainedBlock initBlock = {0,NULL,initContents,NULL} ; +static DoubleChainedBlock *curStack = &initBlock ; +static char *curStackTop = initContents ; + +static unsigned long int maintraffic = 0 ; + +void setCurLocation(unsigned long int location) { + unsigned int targetRank = (unsigned int)location/ONE_BLOCK_SIZE ; + unsigned int targetOffset = (unsigned int)location%ONE_BLOCK_SIZE ; + if (targetRank>curStack->rank) + while (targetRank>curStack->rank) curStack = curStack->next ; + else if (targetRankrank) + while (targetRankrank) curStack = curStack->prev ; + curStackTop = curStack->contents + targetOffset ; +} + +unsigned long int getCurLocation() { + return (curStackTop-curStack->contents)+curStack->rank*ONE_BLOCK_SIZE ; +} + +void showLocation(unsigned long int location) { + printf("%1i.%05i", (unsigned int)location/ONE_BLOCK_SIZE, (unsigned int)location%ONE_BLOCK_SIZE) ; +} + +/*************** REPEATED ACCESS MECHANISM *********************/ + +typedef struct _StackRepeatCell { + int hasBackPop ; + unsigned long int backPop ; + unsigned long int resume ; + unsigned long int freePush ; + struct _StackRepeatCell *previous ; +} StackRepeatCell ; + +StackRepeatCell *stackRepeatTop = NULL ; + +void showStackRepeatsRec(StackRepeatCell *inRepeatStack) { + if (inRepeatStack->previous) {showStackRepeatsRec(inRepeatStack->previous) ; printf(" ; ") ;} + printf("<") ; + if (inRepeatStack->hasBackPop) showLocation(inRepeatStack->backPop) ; + printf("|") ; + showLocation(inRepeatStack->resume) ; + printf("|") ; + showLocation(inRepeatStack->freePush) ; + printf(">") ; +} + +void showStackRepeats() { + showStackRepeatsRec(stackRepeatTop) ; +} + +void showStack() { + DoubleChainedBlock *inStack = &initBlock ; + int i ; + while (inStack) { + printf("[%1i] ",inStack->rank) ; + for (i=0 ; icontents[i])==curStackTop) printf(" | ") ; + printf("%02x",(unsigned char)inStack->contents[i]) ; + } + inStack = inStack->next ; + if (inStack) printf("\n ") ; + } + printf("\n REPEATS:") ; + if (stackRepeatTop) + showStackRepeats() ; + else + printf(" none!") ; + printf("\n") ; +} + +void showStackSize(int i4i, int i8i, int r4i, int r8i, int c8i, int c16i, int s1i, int biti, int ptri, int pos) { + printf(" --%5i--> <",pos) ; + showLocation(getCurLocation()) ; + printf(">%1i.%1i.%1i.%1i.%1i.%1i.%1i.%1i.%1i\n",i4i, i8i, r4i, r8i, c8i, c16i, s1i, biti, ptri) ; +} + +void adStack_showPeakSize() { + DoubleChainedBlock *inStack = &initBlock ; + int i = 0 ; + while (inStack) { + inStack = inStack->next ; + ++i ; + } + printf("Peak stack size (%1i blocks): %1llu bytes\n", + i, ((long long int)i)*((long long int)ONE_BLOCK_SIZE)) ; +} + +void showTotalTraffic(unsigned long long int localtraffic) { + printf("Total pushed traffic %1llu bytes\n", maintraffic+localtraffic) ; +} + +/** If we are in a protected, read-only section, memorize location as "backPop" + * and go to the "freePush" location */ +void checkPushInReadOnly() { + if (stackRepeatTop) { + unsigned long int current = getCurLocation() ; + if (currentfreePush) { + stackRepeatTop->hasBackPop = 1 ; + stackRepeatTop->backPop = current ; + setCurLocation(stackRepeatTop->freePush) ; +/* printf(" FREEPUSH(") ; //Trace */ +/* showLocation(stackRepeatTop->backPop) ; //Trace */ +/* printf("=>") ; //Trace */ +/* showLocation(stackRepeatTop->freePush) ; //Trace */ +/* printf(")") ; //Trace */ + } + } +} + +/** If current location is the "freePush" location, + * go back to its "backPop" location, which is in a protected, read-only section */ +void checkPopToReadOnly() { + if (stackRepeatTop && stackRepeatTop->hasBackPop) { + unsigned long int current = getCurLocation() ; + if (current==stackRepeatTop->freePush) { + setCurLocation(stackRepeatTop->backPop) ; + stackRepeatTop->hasBackPop = 0 ; +/* printf(" BACKPOP(") ; //Trace */ +/* showLocation(stackRepeatTop->freePush) ; //Trace */ +/* printf("=>") ; //Trace */ +/* showLocation(stackRepeatTop->backPop) ; //Trace */ +/* printf(")") ; //Trace */ + } + } +} + +// A global for communication from startStackRepeat1() to startStackRepeat2(): +StackRepeatCell *newRepeatCell = NULL ; + +void startStackRepeat1() { + // Create (push) a new "stack" repeat level: + newRepeatCell = (StackRepeatCell *)malloc(sizeof(StackRepeatCell)) ; + newRepeatCell->previous = stackRepeatTop ; + newRepeatCell->hasBackPop = 0 ; + // Store current location as the "resume" location: + unsigned long int current = getCurLocation() ; + newRepeatCell->resume = current ; + // Move to the "freePush" location if there is one: + if (stackRepeatTop && currentfreePush) + setCurLocation(stackRepeatTop->freePush) ; +} + +void startStackRepeat2() { + // Store current stack location as the "freePush" location: + newRepeatCell->freePush = getCurLocation() ; + // Reset current location to stored "resume" location: + setCurLocation(newRepeatCell->resume) ; + // Make this new repeat level the current repeat level: + stackRepeatTop = newRepeatCell ; +/* printf("\n+Rep ") ; showStackRepeats() ; printf("\n") ; //Trace */ +} + +void resetStackRepeat1() { +/* printf("\n>Rep ") ; showStackRepeats() ; printf("\n") ; //Trace */ + // If we are in a nested checkpoint, force exit from it: + if (stackRepeatTop->hasBackPop) { + //setCurLocation(stackRepeatTop->backPop) ; //correct but useless code + stackRepeatTop->hasBackPop = 0 ; + } + // Go to repeat location of current repeat level + setCurLocation(stackRepeatTop->freePush) ; +} + +void resetStackRepeat2() { + // Reset current location to "ResumeLocation": + setCurLocation(stackRepeatTop->resume) ; +} + +void endStackRepeat() { +/* printf("\n-Rep ") ; showStackRepeats() ; printf("\n") ; //Trace */ + // If we are in a nested checkpoint, go back to its "backPop" (read-only) location: + if (stackRepeatTop->hasBackPop) { + setCurLocation(stackRepeatTop->backPop) ; + //stackRepeatTop->hasBackPop = 0 ; //correct but useless code + } + // Remove (pop) top "stack" repeat level: + StackRepeatCell *oldRepeatCell = stackRepeatTop ; + stackRepeatTop = stackRepeatTop->previous ; + free(oldRepeatCell) ; + // current location may have moved back ; check if we must move further back: + checkPopToReadOnly() ; +} + +/******************* PUSH/POP MECHANISM *******************/ + +/* PUSHes "nbChars" consecutive chars from a location starting at address "x". + * Checks that there is enough space left to hold "nbChars" chars. + * Otherwise, allocates the necessary space. */ +void pushNArray(char *x, unsigned int nbChars, int checkReadOnly) { + if (checkReadOnly) checkPushInReadOnly() ; + if (checkReadOnly) maintraffic += nbChars ; +/* unsigned long int lfrom = getCurLocation() ; //Trace */ + unsigned int nbmax = ONE_BLOCK_SIZE-(curStackTop-(curStack->contents)) ; + if (nbChars <= nbmax) { + memcpy(curStackTop,x,nbChars) ; + curStackTop+=nbChars ; + } else { + char *inx = x+(nbChars-nbmax) ; + if (nbmax>0) memcpy(curStackTop,inx,nbmax) ; + while (inx>x) { + if (curStack->next) + curStack = curStack->next ; + else { + /* Create new block: */ + DoubleChainedBlock *newStack ; + char *contents = (char *)malloc(ONE_BLOCK_SIZE*sizeof(char)) ; + newStack = (DoubleChainedBlock*)malloc(sizeof(DoubleChainedBlock)) ; + if ((contents == NULL) || (newStack == NULL)) { + DoubleChainedBlock *stack = curStack ; + int nbBlocks = (stack?-1:0) ; + while(stack) { + stack = stack->prev ; + nbBlocks++ ; + } + printf("Out of memory (allocated %i blocks of %i bytes)\n", + nbBlocks, ONE_BLOCK_SIZE) ; + exit(0); + } + curStack->next = newStack ; + newStack->prev = curStack ; + newStack->rank = curStack->rank + 1 ; + newStack->next = NULL ; + newStack->contents = contents ; + curStack = newStack ; + /* new block created! */ + } + inx -= ONE_BLOCK_SIZE ; + if(inx>x) + memcpy(curStack->contents,inx,ONE_BLOCK_SIZE) ; + else { + unsigned int nbhead = (inx-x)+ONE_BLOCK_SIZE ; + curStackTop = curStack->contents ; + memcpy(curStackTop,x,nbhead) ; + curStackTop += nbhead ; + } + } + } +/* unsigned long int lto = getCurLocation() ; //Trace */ +/* printf("pushNArray(") ; //Trace */ +/* showLocation(lfrom) ; //Trace */ +/* printf("=>") ; //Trace */ +/* showLocation(lto) ; //Trace */ +/* printf(")") ; //Trace */ +} + +/* POPs "nbChars" consecutive chars to a location starting at address "x". + * Checks that there is enough data to fill "nbChars" chars. + * Otherwise, pops as many blocks as necessary. */ +void popNArray(char *x, unsigned int nbChars, int checkReadOnly) { +/* unsigned long int lfrom = getCurLocation() ; //Trace */ + unsigned int nbmax = curStackTop-(curStack->contents) ; + if (nbChars <= nbmax) { + curStackTop-=nbChars ; + memcpy(x,curStackTop,nbChars); + } else { + char *tlx = x+nbChars ; + if (nbmax>0) memcpy(x,curStack->contents,nbmax) ; + x+=nbmax ; + while (xprev ; + if (curStack==NULL) printf("Popping from an empty stack!!!\n") ; + if (x+ONE_BLOCK_SIZEcontents,ONE_BLOCK_SIZE) ; + x += ONE_BLOCK_SIZE ; + } else { + unsigned int nbtail = tlx-x ; + curStackTop = (curStack->contents)+ONE_BLOCK_SIZE-nbtail ; + memcpy(x,curStackTop,nbtail) ; + x = tlx ; + } + } + } +/* unsigned long int lto = getCurLocation() ; //Trace */ +/* printf("popNArray(") ; //Trace */ +/* showLocation(lfrom) ; //Trace */ +/* printf("=>") ; //Trace */ +/* showLocation(lto) ; //Trace */ +/* printf(")") ; //Trace */ + if (checkReadOnly) checkPopToReadOnly() ; +} + +typedef struct {float r,i;} ccmplx ; +typedef struct {double dr, di;} cdcmplx ; + +void pushInteger4Array(int *x, int n) { + pushNArray((char *)x,(unsigned int)(n*4), 1) ; +} + +void popInteger4Array(int *x, int n) { + popNArray((char *)x,(unsigned int)(n*4), 1) ; +} + +void pushInteger8Array(long *x, int n) { + pushNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void popInteger8Array(long *x, int n) { + popNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void pushReal4Array(float *x, int n) { + pushNArray((char *)x,(unsigned int)(n*4), 1) ; +} + +void popReal4Array(float *x, int n) { + popNArray((char *)x,(unsigned int)(n*4), 1) ; +} + +void pushReal8Array(double *x, int n) { + pushNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void popReal8Array(double *x, int n) { + popNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void pushComplex8Array(ccmplx *x, int n) { + pushNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void popComplex8Array(ccmplx *x, int n) { + popNArray((char *)x,(unsigned int)(n*8), 1) ; +} + +void pushComplex16Array(cdcmplx *x, int n) { + pushNArray((char *)x,(unsigned int)(n*16), 1) ; +} + +void popComplex16Array(cdcmplx *x, int n) { + popNArray((char *)x,(unsigned int)(n*16), 1) ; +} + +void pushCharacterArray(char *x, int n) { + pushNArray(x,(unsigned int)n, 1) ; +} + +void popCharacterArray(char *x, int n) { + popNArray(x,(unsigned int)n, 1) ; +} + +/* ********* Useful only for testpushpop.f90. Should go away! ********* */ + +void showpushpopsequence_(int *op, int *index, int* nbobjects, int* sorts, int* sizes) { + char *prefix = "" ; + if (*op==1) prefix = "+" ; + else if (*op==-1) prefix = "-" ; + else if (*op==2) prefix = "+s" ; + else if (*op==-2) prefix = "-s" ; + else if (*op==-3) prefix = "Ls" ; + printf("%s%02i", prefix, *index) ; + // Comment the rest for compact display: + printf(":") ; + int i ; + for (i=0 ; i<*nbobjects ; ++i) { + switch (sorts[i]) { + case 1: + printf(" I4") ; + break ; + case 2: + printf(" I8") ; + break ; + case 3: + printf(" R4") ; + break ; + case 4: + printf(" R8") ; + break ; + case 5: + printf(" C8") ; + break ; + case 6: + printf(" C16") ; + break ; + case 7: + printf(" char") ; + break ; + case 8: + printf(" bit") ; + break ; + case 9: + printf(" PTR") ; + break ; + } + if (sizes[i]!=0) printf("[%1i]",sizes[i]) ; + } +} + +/****************** INTERFACE CALLED FROM FORTRAN *******************/ + +void showstack_() { + showStack() ; +} + +void showstacksize_(int *i4i, int *i8i, int *r4i, int *r8i, int *c8i, int *c16i, int *s1i, int *biti, int *ptri, int *pos) { + showStackSize(*i4i,*i8i,*r4i,*r8i,*c8i,*c16i,*s1i,*biti,*ptri, *pos) ; +} + +void adstack_showpeaksize_() { + adStack_showPeakSize() ; +} + +void adstack_showpeaksize__() { + adStack_showPeakSize() ; +} + +void showtotaltraffic_(unsigned long long int *traffic) { + showTotalTraffic(*traffic) ; +} + +void startstackrepeat1_() { + startStackRepeat1() ; +} + +void startstackrepeat2_() { + startStackRepeat2() ; +} + +void resetstackrepeat1_() { + resetStackRepeat1() ; +} + +void resetstackrepeat2_() { + resetStackRepeat2() ; +} + +void endstackrepeat_() { + endStackRepeat() ; +} + +void pushnarray_(char *x, unsigned int *nbChars, int *checkReadOnly) { + pushNArray(x, *nbChars, *checkReadOnly) ; +} + +void popnarray_(char *x, unsigned int *nbChars, int *checkReadOnly) { + popNArray(x, *nbChars, *checkReadOnly) ; +} + +void pushinteger4array_(int *ii, int *ll) { + pushInteger4Array(ii, *ll) ; +} + +void popinteger4array_(int *ii, int *ll) { + popInteger4Array(ii, *ll) ; +} + +void pushinteger8array_(long *ii, int *ll) { + pushInteger8Array(ii, *ll) ; +} + +void popinteger8array_(long *ii, int *ll) { + popInteger8Array(ii, *ll) ; +} + +void pushreal4array_(float *ii, int *ll) { + pushReal4Array(ii, *ll) ; +} + +void popreal4array_(float *ii, int *ll) { + popReal4Array(ii, *ll) ; +} + +void pushreal8array_(double *ii, int *ll) { + pushReal8Array(ii, *ll) ; +} + +void popreal8array_(double *ii, int *ll) { + popReal8Array(ii, *ll) ; +} + +void pushcomplex8array_(ccmplx *ii, int *ll) { + pushComplex8Array(ii, *ll) ; +} + +void popcomplex8array_(ccmplx *ii, int *ll) { + popComplex8Array(ii, *ll) ; +} + +void pushcomplex16array_(cdcmplx *ii, int *ll) { + pushComplex16Array(ii, *ll) ; +} + +void popcomplex16array_(cdcmplx *ii, int *ll) { + popComplex16Array(ii, *ll) ; +} + +void pushcharacterarray_(char *ii, int *ll) { + pushCharacterArray(ii, *ll) ; +} + +void popcharacterarray_(char *ii, int *ll) { + popCharacterArray(ii, *ll) ; +} + +void pushbooleanarray_(char *x, unsigned int *n) { + pushNArray(x,(*n*4), 1) ; +} + +void popbooleanarray_(char *x, unsigned int *n) { + popNArray(x,(*n*4), 1) ; +} diff --git a/tools/TAP_support/ADFirstAidKit/OLDadStack.h b/tools/TAP_support/ADFirstAidKit/OLDadStack.h new file mode 100644 index 0000000000..d1c23fe149 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/OLDadStack.h @@ -0,0 +1,77 @@ +#ifndef ADSTACK_LOADED +#define ADSTACK_LOADED 1 + +/** Push of int (4 bytes int) array */ +extern void pushInteger4Array(int *x, int n) ; + +/** Pop of int (4 bytes int) array */ +extern void popInteger4Array(int *x, int n) ; + +/** Push of long (8 bytes int) array */ +extern void pushInteger8Array(long *x, int n) ; + +/** Pop of long (8 bytes int) array */ +extern void popInteger8Array(long *x, int n) ; + +/** Push of float (4 bytes real) array */ +extern void pushReal4Array(float *x, int n) ; + +/** Pop of float (4 bytes real) array */ +extern void popReal4Array(float *x, int n) ; + +/** Push of double (8 bytes real) array */ +extern void pushReal8Array(double *x, int n) ; + +/** Pop of double (8 bytes real) array */ +extern void popReal8Array(double *x, int n) ; + +/** Push of char (byte) array */ +extern void pushCharacterArray(char *x, int n) ; + +/** Pop of char (byte) array */ +extern void popCharacterArray(char *x, int n) ; + +/*** There is no primitive complex type in C ***/ +/* extern void pushComplex8Array(ccmplx *x, int n) ; */ +/* extern void popComplex8Array(ccmplx *x, int n) ; */ +/* extern void pushComplex16Array(cdcmplx *x, int n) ; */ +/* extern void popComplex16Array(cdcmplx *x, int n) ; */ + +/** Utility for OLDadBuffer.c (mostly) + * Push an array of any type onto the main stack */ +extern void pushNArray(char *x, unsigned int nbChars, int checkReadOnly) ; + +/** Utility for OLDadBuffer.c (mostly) + * Pop an array of any type from the main stack */ +extern void popNArray(char *x, unsigned int nbChars, int checkReadOnly) ; + +/** Display the maximum size reached by the main AD stack */ +extern void adStack_showPeakSize() ; + +/** Utility for OLDadBuffer.c (mostly) + * Display the total amount of memory pushed */ +extern void showTotalTraffic(unsigned long long int localtraffic) ; + +/** Utility for OLDadBuffer.c (mostly) + * Display in detail the contents of the AD stack */ +extern void showStack() ; + +/** Utility for OLDadBuffer.c */ +extern void showStackSize(int i4i, int i8i, int r4i, int r8i, int c8i, int c16i, int s1i, int biti, int ptri, int pos) ; + +/** Utility for OLDadBuffer.c */ +extern void startStackRepeat1() ; + +/** Utility for OLDadBuffer.c */ +extern void startStackRepeat2() ; + +/** Utility for OLDadBuffer.c */ +extern void resetStackRepeat1() ; + +/** Utility for OLDadBuffer.c */ +extern void resetStackRepeat2() ; + +/** Utility for OLDadBuffer.c */ +extern void endStackRepeat() ; + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/PUSHPOPDiff.f b/tools/TAP_support/ADFirstAidKit/PUSHPOPDiff.f new file mode 100644 index 0000000000..a497ba1603 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/PUSHPOPDiff.f @@ -0,0 +1,57 @@ +C Pure tangent mode: + + SUBROUTINE PUSHREAL8_D(V,VD) + REAL*8 V,VD + call PUSHREAL8(V) + call PUSHREAL8(VD) + END + + SUBROUTINE POPREAL8_D(V,VD) + REAL*8 V,VD + call POPREAL8(VD) + call POPREAL8(V) + END + + SUBROUTINE PUSHREAL8ARRAY_D(V,VD,size) + INTEGER size + REAL*8 V(size),VD(size) + call PUSHREAL8ARRAY(V,size) + call PUSHREAL8ARRAY(VD,size) + END + + SUBROUTINE POPREAL8ARRAY_D(V,VD,size) + INTEGER size + REAL*8 V(size),VD(size) + call POPREAL8ARRAY(VD,size) + call POPREAL8ARRAY(V,size) + END + +C Multi-directional mode: + + SUBROUTINE PUSHREAL8_DV(V,VD,nbdirs) + INTEGER nbdirs + REAL*8 V,VD(nbdirs) + call PUSHREAL8(V) + call PUSHREAL8ARRAY(VD,nbdirs) + END + + SUBROUTINE POPREAL8_DV(V,VD,nbdirs) + INTEGER nbdirs + REAL*8 V,VD(nbdirs) + call POPREAL8ARRAY(VD,nbdirs) + call POPREAL8(V) + END + + SUBROUTINE PUSHREAL8ARRAY_DV(V,VD,size,nbdirs) + INTEGER size,nbdirs + REAL*8 V(size),VD(size,nbdirs) + call PUSHREAL8ARRAY(V,size) + call PUSHREAL8ARRAY(VD,size*nbdirs) + END + + SUBROUTINE POPREAL8ARRAY_DV(V,VD,size,nbdirs) + INTEGER size,nbdirs + REAL*8 V(size),VD(size,nbdirs) + call POPREAL8ARRAY(VD,size*nbdirs) + call POPREAL8ARRAY(V,size) + END diff --git a/tools/TAP_support/ADFirstAidKit/PUSHPOPGeneralLib b/tools/TAP_support/ADFirstAidKit/PUSHPOPGeneralLib new file mode 100644 index 0000000000..6cf9582eb3 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/PUSHPOPGeneralLib @@ -0,0 +1,280 @@ +subroutine pushreal8: + external: + shape:(param 1, + common /adstack/[0,*[) + type:(modifiedType(modifiers(intCst 8), float()), + arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + deps: (id, + 1, 1) + +subroutine popreal8: + external: + shape:(param 1, + common /adstack/[0,*[) + type:(modifiedType(modifiers(intCst 8), float()), + arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + deps: (0, 1, + 0, 1) + + +subroutine pushreal8array: + external: + shape:(param 1, + param 2, + common /adstack/[0,*[) + type:(arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none()))), + integer(), + arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 1, 0) + NotReadThenWritten: (0, 0, 0) + ReadThenWritten: (0, 0, 1) + deps: (id, + id, + 1, 1, 1) + +subroutine popreal8array: + external: + shape:(param 1, + param 2, + common /adstack/[0,*[) + type:(arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none()))), + integer(), + arrayType(modifiedType(modifiers(intCst 8), float()), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 1, 0) + NotReadThenWritten: (1, 0, 0) + ReadThenWritten: (0, 0, 1) + deps: (0, 1, 1, + id, + 0, 1, 1) + +subroutine pushinteger4: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popinteger4: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol1b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol1b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol2b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol2b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol3b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol3b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol4b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol4b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol5b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol5b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol6b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol6b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol7b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol7b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol8b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol8b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) + +subroutine pushcontrol9b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (1, 0) + NotReadThenWritten: (0, 0) + ReadThenWritten: (0, 1) + +subroutine popcontrol9b: + external: + shape:(param 1, + common /adstackpassive/[0,*[) + type:(integer(), + arrayType(integer(), + dimColons(dimColon(none(),none())))) + ReadNotWritten: (0, 0) + NotReadThenWritten: (1, 0) + ReadThenWritten: (0, 1) diff --git a/tools/TAP_support/ADFirstAidKit/README.md b/tools/TAP_support/ADFirstAidKit/README.md new file mode 100644 index 0000000000..b50a8be3f1 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/README.md @@ -0,0 +1,71 @@ +Contents of the ADFirstAidKit +============================= + +## adStack.c && adStack.h + Mechanism for the main stack used by codes produced by Tapenade in reverse mode. + Use these files regardless of the language of the reverse-differentiated code. + For OpenMP compatibility, compile with option -fopenmp. + +## adBinomial.c && adBinomial.h + Primitives for Tapenade adjoint with binomial checkpoiting (cf Griewank-Walther + "revolve" method). Triggered by Tapenade directive $AD BINOMIAL-CKP. + +## (adContext.c || adContextMPI.c) && adContext.h + Primitives used by Tapenade-differentiated code with automated validation. + Triggered by tapenade command-line option -context. + Use adContextMPI.c instead of adContext.c on MPI code. + +## adContextCPX.c && adContextCPX.h + Same as adContext, but to validate code differentiated with the command-line + option -complexstep, which is an attempt to automate differentiation + via the complex-step method. + +## (adDebug.c || adDebugMPI.c) && adDebug.h + Primitives used by Tapenade-differentiated code with automated debugging. + Triggered by tapenade command-line option -context combined either with + -debugTGT or with -debugADJ. + Use adDebugMPI.c instead of adDebug.c on MPI code. + +## adComplex.h + Utility for adStack, adContext, adDebug + +## admm.c && admm.h (might be integrated later into adBuffer) + The "ADMM" primitives, which manage push/pop of pointers when the pointer's + destination lies in memory chunks that have been deallocated and reallocated. + +## admm_tapenade_interface.f90 + A Fortran90 module that must be USE'd by Tapenade-generated adjoint code, + if these codes need push/pop of pointers or use ADMM primitives. + +## adProfile.c && adProfile.h (Currently broken, sorry) + Primitives used by Tapenade adjoint to measure the cost/benefit of checkpointing, + to find parts of the code that should or shouldn't be checkpointed. + +## fortranSupport.F && ampiSupport.c + Files needed by AMPI, for Tapenade adjoint code of MPI programs. + +## ampi + Directory containing the include files needed by code using the "adjoinable mpi" library. + This is primarily intended for some nonRegression tests. This is not the ampi install. + +## PUSHPOPGeneralLib && PUSHPOPDiff.f + Useful for repeated differentiation forward-on-reverse. Specification of the + activity behavior of push/pop primitives + implementation of the forward + derivatives of these primitives. + +## testMemSizef.f && testMemSizec.c + Short standalone code that tries to measure the size of primitive types in bytes. + +## testpushpop.sh && testpushpop.f90 + Short standalone code to test push/pop primitives of adStack.c + +## validityTest.f (Poorly tested, sorry) + Primitives used by Tapenade tangent code to estimate how close the execution + comes to non-differentiable behavior (e.g. tests). + Triggered by tapenade command-line option -directValid. + +## OLDadBuffer.c && OLDadBuffer.h && OLDadBuffer.f && OLDadStack.c && OLDadStack.h + Old version of the stack mechanism used by reverse AD codes. The new adStack.c && adStack.h do not need adBuffer any more. + With gfortran 10.2.1, use -fallow-argument-mismatch option to compile OLDadBuffer.f. + +Notice that, in order to run some nonRegression tests, you may have to place manually into this ADFirstAidKit directory two symbolic links: one named "mpich" pointing to the include directory of your mpich insall, and another one named "openmpi" pointing to the include directory of your openmpi install. diff --git a/tools/TAP_support/ADFirstAidKit/adBinomial.c b/tools/TAP_support/ADFirstAidKit/adBinomial.c new file mode 100644 index 0000000000..5b8c4c0f3e --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adBinomial.c @@ -0,0 +1,145 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include "adBinomial.h" + +static int stack1[15] ; +static int stack2[297] ; +static int is1 = -1 ; +static int is2 = -1 ; + +#define BOTTOM stack1[3*is1] +#define MAXSNP stack1[3*is1+1] +#define OFFSET stack1[3*is1+2] +#define LENGTH stack2[3*is2] +#define CURPOS stack2[3*is2+1] +#define CKPCUT stack2[3*is2+2] + +void adBinomial_init(int length, int nbSnap, int firstStep) { + if (length<=0) { + printf("Error: Cannot reverse a sequence of length %i\n",length) ; + } else if (nbSnap==0 && length>=2) { + printf("Error: Cannot reverse a sequence of length %i with no snapshot\n",length) ; + } else if (is1>4 || is2+nbSnap+1>98) { + printf("Error: Binomial-Checkpointing memory exceeded !\n") ; + } else { + is1 = is1+1 ; + is2 = is2+1 ; + BOTTOM = is2 ; + MAXSNP = nbSnap ; + OFFSET = firstStep ; + LENGTH= length ; + CURPOS = 0 ; + CKPCUT = 0 ; + } +} + +void adBinomial_setCut() { + int length = LENGTH ; + int nbSnap = MAXSNP-(is2-BOTTOM)+1 ; + if (length<=1) { + CKPCUT = 0 ; + } else if (nbSnap==1) { + CKPCUT = length-1 ; + } else { + int minRecomp = 1 ; + int eta = nbSnap+1 ; + while (eta=length) + CKPCUT=length-1 ; + } +} + +int adBinomial_next(int *action, int *step) { + int i ; + +// Begin "only for debug" part: +// printf("\n") ; +// printf("STACK1:\n") ; +// for (i=is1 ; i>=0 ; i--) +// printf("%i snapshots, stack2 bottom:%i (offset:%i)\n", +// stack1[3*i+1],stack1[3*i],stack1[3*i+2]) ; +// printf("-------------------\n") ; +// printf("STACK2:\n") ; +// for (i=is2 ; i>=0 ; i--) +// printf("%i: R( ,%i) %i/%i\n", +// i,stack2[3*i],stack2[3*i+1],stack2[3*i+2]) ; +// // printf("%i: at %i, nextckp %i, end %i\n", +// // i,stack2[3*i+1],stack2[3*i+2],stack2[3*i]) ; +// printf("-------------------\n") ; +// End "only for debug" part. + + if (LENGTH<=0 && is2==BOTTOM) { + *step = -1 ; + *action = -1 ; + is1-- ; + is2-- ; + return 0 ; + } else { + *step = 1 ; + for (i=BOTTOM+1 ; i<=is2 ; i++) *step += stack2[3*i+1] ; + if (CURPOS==-1) { + *action = (LENGTH==1)?POPSNAP:LOOKSNAP ; + CURPOS = 0 ; + } else { + if (CURPOS==LENGTH-1) { + *action = (*step==stack2[3*BOTTOM])?FIRSTTURN:TURN ; + if (CURPOS==0 && is2>BOTTOM) { + is2-- ; + LENGTH = CKPCUT ; + } else { + LENGTH = CURPOS ; + } + CURPOS = -1 ; + adBinomial_setCut() ; + } else if (CURPOS==CKPCUT) { + int remainingLength = LENGTH-CURPOS ; + *action = PUSHSNAP ; + is2++ ; + LENGTH = remainingLength ; + CURPOS = 0 ; + adBinomial_setCut() ; + (*step)-- ; + } else { + *action = ADVANCE ; + CURPOS++ ; + } + } + return 1 ; + } +} + +void adBinomial_resize() { + int step = 1, i ; + for (i=BOTTOM+1 ; i<=is2 ; ++i) step += stack2[3*i+1] ; + printf("Binomial iteration exits on step %i before expected %i\n", + step-1, stack2[3*BOTTOM]) ; + stack2[3*BOTTOM] = step-1 ; + LENGTH = CURPOS ; + --(CURPOS) ; +} + +/****************** INTERFACE CALLED FROM FORTRAN *******************/ + +void adbinomial_init_(int *length, int *nbSnap, int *firstStep) { + adBinomial_init(*length, *nbSnap, *firstStep) ; +} + +int adbinomial_next_(int *action, int *step) { + return adBinomial_next(action, step) ; +} + +void adbinomial_resize_() { + adBinomial_resize() ; +} diff --git a/tools/TAP_support/ADFirstAidKit/adBinomial.h b/tools/TAP_support/ADFirstAidKit/adBinomial.h new file mode 100644 index 0000000000..6227868a99 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adBinomial.h @@ -0,0 +1,29 @@ +#ifndef ADBINOMIAL_LOADED +#define ADBINOMIAL_LOADED 1 + +#define PUSHSNAP 1 +#define LOOKSNAP 2 +#define POPSNAP 3 +#define ADVANCE 4 +#define FIRSTTURN 5 +#define TURN 6 + +/******************************* Exported Functions: */ + +/** Initializes a (possibly nested) binomial checkpointing + * session for "length" steps using at most "nbSnap" snapshots. + * "firstStep' is the offset, i.e. the index of the 1st step. */ +extern void adBinomial_init(int length, int nbSnap, int firstStep) ; + +/** Returns in *action the code for the next binomial + * checkpointing action to perform, and in *step the index of + * the step to which this action refers to. If no action is left, + * restores the stack to the enclosing binomial session (if any). + * Returns 0 if some action is found, 0 otherwise. */ +extern int adBinomial_next(int *action, int *step) ; + +/** Must be called when an "ADVANCE" order was issued, + * but then the iterative loop reaches past its exit point. */ +extern void adBinomial_resize() ; + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/adComplex.h b/tools/TAP_support/ADFirstAidKit/adComplex.h new file mode 100644 index 0000000000..fbd1cbc34c --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adComplex.h @@ -0,0 +1,5 @@ +#ifndef ADCOMPLEX_INCLUDED +#define ADCOMPLEX_INCLUDED +typedef struct {float r,i;} ccmplx ; +typedef struct {double dr, di;} cdcmplx ; +#endif diff --git a/tools/TAP_support/ADFirstAidKit/adContext.c b/tools/TAP_support/ADFirstAidKit/adContext.c new file mode 100644 index 0000000000..c699f30fa1 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adContext.c @@ -0,0 +1,655 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include +#include +#include "adContext.h" + +#include "adComplex.h" + +static int dbad_mode, dbad_phase ; +static double dbad_ddeps = 1.e-6 ; +static double dbad_seed = 0.137 ; +static double dbad_currentSeed = 0.0 ; +static double dbad_condensed_val, dbad_condensed_tgt, dbad_condensed_adj ; + +double dbad_nextRandom() { + dbad_currentSeed += dbad_seed ; + if (dbad_currentSeed>=1.0) dbad_currentSeed-=1.0 ; + /* Return a value in range [1.0 2.0[ */ + return dbad_currentSeed+1.0 ; +} + +void adContextTgt_init(double epsilon, double seed) { + dbad_mode = 1 ; + dbad_ddeps = epsilon ; + dbad_seed = seed ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 1 (perturbed) or 2 (tangent)\n") ; + exit(0) ; + } else if (strcmp(phase,"2")==0) { + printf("Tangent code, seed=%7.1e\n", seed) ; + printf("=============================================\n") ; + dbad_phase = 2 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"1")==0) { + printf("Perturbed run, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + dbad_phase = 1 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"99")==0) { + printf("INTERNAL INTERFACE TESTS, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + dbad_phase = 99 ; + } else { + printf("DBAD_PHASE environment variable must be set to 1 or 2\n") ; + exit(0) ; + } +} + +void adContextTgt_initReal8(char* varname, double *indep, double *indepd) { + *indepd = dbad_nextRandom() ; + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + else if (dbad_phase==99) + printf("initReal8 of %s: %24.16e //%24.16e\n", varname, *indep, *indepd) ; +} + +void adContextTgt_initReal8Array(char* varname, double *indep, double *indepd, int length) { + int i ; + for (i=0 ; ir = (float)dbad_nextRandom() ; + indepd->i = (float)dbad_nextRandom() ; + if (dbad_phase==1) { + indep->r = indep->r + dbad_ddeps*indepd->r ; + indep->i = indep->i + dbad_ddeps*indepd->i ; + } else if (dbad_phase==99) + printf("initComplex8 of %s: %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, indep->r, indep->i, indepd->r, indepd->i) ; +} + +void adContextTgt_initComplex8Array(char* varname, ccmplx *indep, ccmplx *indepd, int length) { + int i ; + for (i=0 ; ir) + depbi*(dep->i) ; + if (dbad_phase==2 || dbad_phase==1) + dbad_condensed_tgt += depbr*(depd->r) + depbi*(depd->i) ; + else if (dbad_phase==99) + printf("concludeComplex8 of %s [%24.16e;%24.16e *] %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, depbr, depbi, dep->r, dep->i, depd->r, depd->i) ; +} + +void adContextTgt_concludeComplex8Array(char* varname, ccmplx *dep, ccmplx *depd, int length) { + int i ; + float depbr, depbi ; + if (dbad_phase==99) printf("concludeComplex8Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; ir = (float)dbad_nextRandom() ; + depb->i = (float)dbad_nextRandom() ; + if (dbad_phase==99) + printf("initComplex8 of %s %24.16e+i%24.16e\n", varname, depb->r, depb->i) ; +} + +void adContextAdj_initComplex8Array(char* varname, ccmplx *dep, ccmplx *depb, int length) { + int i ; + for (i=0 ; ir + depdi*depb->i ; + if (dbad_phase==99) + printf("concludeComplex8 of %s [%24.16e+i%24.16e *]%24.16e+i%24.16e\n", varname, depdr, depdi, depb->r, depb->i) ; +} + +void adContextAdj_concludeComplex8Array(char* varname, ccmplx *dep, ccmplx *depb, int length) { + int i ; + float depdr, depdi ; + if (dbad_phase==99) printf("concludeComplex8Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; i +#include +#include +#include "adContextCPX.h" + +static int dbad_mode, dbad_phase ; +static double dbad_ddeps = 1.e-6 ; +static double dbad_seed = 0.137 ; +static double dbad_currentSeed = 0.0 ; +static double dbad_condensed_val, dbad_condensed_tgt ; + +double dbad_nextRandom() { + dbad_currentSeed += dbad_seed ; + if (dbad_currentSeed>=1.0) dbad_currentSeed-=1.0 ; + /* Return a value in range [1.0 2.0[ */ + return dbad_currentSeed+1.0 ; +} + +void adContextCpx_init(double epsilon, double seed) { + dbad_mode = 1 ; + dbad_ddeps = epsilon ; + dbad_seed = seed ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 1 (perturbed) or 2 (tangent)\n") ; + exit(0) ; + } else if (strcmp(phase,"2")==0) { + printf("Tangent code, seed=%7.1e\n", seed) ; + printf("=============================================\n") ; + dbad_phase = 2 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"1")==0) { + printf("Perturbed run, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + dbad_phase = 1 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"99")==0) { + printf("INTERNAL INTERFACE TESTS, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + dbad_phase = 99 ; + } else { + printf("DBAD_PHASE environment variable must be set to 1 or 2\n") ; + exit(0) ; + } +} + +void adContextCpx_initReal8(char* varname, cdcmplx *indep) { + indep->di = dbad_ddeps*dbad_nextRandom() ; + if (dbad_phase==1) + indep->dr = indep->dr + indep->di ; + else if (dbad_phase==99) + printf("initReal8 of %s: %24.16e + i*%24.16e\n", varname, indep->dr, indep->di) ; +} + +void adContextCpx_initReal8Array(char* varname, cdcmplx *indep, int length) { + int i ; + for (i=0 ; ii = dbad_ddeps*(float)dbad_nextRandom() ; + if (dbad_phase==1) + indep->r = indep->r + indep->i ; + else if (dbad_phase==99) + printf("initReal4 of %s: %24.16e + i*%24.16e\n", varname, indep->r, indep->i) ; +} + +void adContextCpx_initReal4Array(char* varname, ccmplx *indep, int length) { + int i ; + for (i=0 ; idr) ; + if (dbad_phase==2 || dbad_phase==1) + dbad_condensed_tgt += depb*(dep->di)/dbad_ddeps ; + else if (dbad_phase==99) + printf("concludeReal8 of %s [%24.16e *] %24.16e + i*%24.16e\n", varname, depb, dep->dr, dep->di) ; +} + +void adContextCpx_concludeReal8Array(char* varname, cdcmplx *dep, int length) { + int i ; + double depb ; + if (dbad_phase==99) printf("concludeReal8Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; ir) ; + if (dbad_phase==2 || dbad_phase==1) + dbad_condensed_tgt += depb*(dep->i)/dbad_ddeps ; + else if (dbad_phase==99) + printf("concludeReal4 of %s [%24.16e *] %24.16e + i*%24.16e\n", varname, depb, dep->r, dep->i) ; +} + +void adContextCpx_concludeReal4Array(char* varname, ccmplx *dep, int length) { + int i ; + float depb ; + if (dbad_phase==99) printf("concludeReal4Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; i +#include +#include +#include "adContext.h" + +/* SPECIAL FOR THE NON-REGRESSION TESTS ON AMPI */ +#include + +static int dbad_mode, dbad_phase ; +static double dbad_ddeps = 1.e-6 ; +static double dbad_seed = 0.137 ; +static double dbad_currentSeed = 0.0 ; +static double dbad_condensed_val, dbad_condensed_tgt, dbad_condensed_adj ; + +double dbad_nextRandom() { + dbad_currentSeed += dbad_seed ; + if (dbad_currentSeed>=1.0) dbad_currentSeed-=1.0 ; + /* Return a value in range [1.0 2.0[ */ + return dbad_currentSeed+1.0 ; +} + +void adContextTgt_init(double epsilon, double seed) { + int world_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + dbad_mode = 1 ; + dbad_ddeps = epsilon ; + dbad_seed = seed ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 1 (perturbed) or 2 (tangent)\n") ; + exit(0) ; + } else if (strcmp(phase,"2")==0) { + if (world_rank == 0) { + printf("Tangent code, seed=%7.1e\n", seed) ; + printf("=============================================\n") ; + } + dbad_phase = 2 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"1")==0) { + if (world_rank == 0) { + printf("Perturbed run, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + } + dbad_phase = 1 ; + dbad_currentSeed = 0.0 ; + } else if (strcmp(phase,"99")==0) { + printf("INTERNAL INTERFACE TESTS, seed=%7.1e, epsilon=%7.1e\n", seed, epsilon) ; + printf("=============================================\n") ; + dbad_phase = 99 ; + } else { + printf("DBAD_PHASE environment variable must be set to 1 or 2\n") ; + exit(0) ; + } +} + +void adContextTgt_initReal8(char* varname, double *indep, double *indepd) { + *indepd = dbad_nextRandom() ; + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + else if (dbad_phase==99) + printf("initReal8 of %s: %24.16e //%24.16e\n", varname, *indep, *indepd) ; +} + +void adContextTgt_initReal8Array(char* varname, double *indep, double *indepd, int length) { + int i ; + for (i=0 ; idr = dbad_nextRandom() ; + indepd->di = dbad_nextRandom() ; + if (dbad_phase==1) { + indep->dr = indep->dr + dbad_ddeps*indepd->dr ; + indep->di = indep->di + dbad_ddeps*indepd->di ; + } else if (dbad_phase==99) + printf("initComplex16 of %s: %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, indep->dr, indep->di, indepd->dr, indepd->di) ; +} + +void adContextTgt_initComplex16Array(char* varname, cdcmplx *indep, cdcmplx *indepd, int length) { + int i ; + for (i=0 ; ir = (float)dbad_nextRandom() ; + indepd->i = (float)dbad_nextRandom() ; + if (dbad_phase==1) { + indep->r = indep->r + dbad_ddeps*indepd->r ; + indep->i = indep->i + dbad_ddeps*indepd->i ; + } else if (dbad_phase==99) + printf("initComplex8 of %s: %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, indep->r, indep->i, indepd->r, indepd->i) ; +} + +void adContextTgt_initComplex8Array(char* varname, ccmplx *indep, ccmplx *indepd, int length) { + int i ; + for (i=0 ; idr) + depbi*(dep->di); + if (dbad_phase==2 || dbad_phase==1) + dbad_condensed_tgt += depbr*(depd->dr) + depbi*(depd->di) ; + else if (dbad_phase==99) + printf("concludeComplex16 of %s [%24.16e;%24.16e *] %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, depbr, depbi, dep->dr, dep->di, depd->dr, depd->di) ; +} + +void adContextTgt_concludeComplex16Array(char* varname, cdcmplx *dep, cdcmplx *depd, int length) { + int i ; + double depbr, depbi ; + if (dbad_phase==99) printf("concludeComplex16Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; ir) + depbi*(dep->i) ; + if (dbad_phase==2 || dbad_phase==1) + dbad_condensed_tgt += depbr*(depd->r) + depbi*(depd->i) ; + else if (dbad_phase==99) + printf("concludeComplex8 of %s [%24.16e;%24.16e *] %24.16e+i%24.16e //%24.16e+i%24.16e\n", + varname, depbr, depbi, dep->r, dep->i, depd->r, depd->i) ; +} + +void adContextTgt_concludeComplex8Array(char* varname, ccmplx *dep, ccmplx *depd, int length) { + int i ; + float depbr, depbi ; + if (dbad_phase==99) printf("concludeComplex8Array of %s, length=%i:\n", varname, length) ; + for (i=0 ; i +#include +#include +#include +#include +#include +#include +#include "adDebug.h" + +/* + * Compile with -D ADDEBUG_NUDGE to nudge wrong ad derivatives back to divided-diff values + */ + +extern void pushNArray(char *x, unsigned int nbChars, int checkReadOnly) ; +extern void popNArray(char *x, unsigned int nbChars, int checkReadOnly) ; +extern void pushCharacterArray(char *x, int n) ; +extern void popCharacterArray(char *x, int n) ; + +/* The "call stack" used by debugging to + * keep track of the position in the call tree */ +typedef struct _DBAD_CallStackElem { + char *funcname ; + int deltadepth ; + int code ; + struct _DBAD_CallStackElem *context ; +} DBAD_CallStackElem ; + +static DBAD_CallStackElem dbad_topContext ; +static DBAD_CallStackElem *dbad_callStack ; +static int dbad_calltracedepth = 1 ; + +static int dbad_mode, dbad_phase, dbad_nberrors ; +static int dbad_trace = 0 ; +static int dbad_nocommunication = 0 ; +/** The rank of the current process (from 0 up), if it is being tested. + * -2 means don't test the current process + * -1 means test this process (not-MPI case) but don't print process number! */ +static int dbad_testThisProcess = -1 ; +static FILE *dbad_file ; +static double dbad_errormax, dbad_ddeps = 1.e-6 ; +static double dbad_seed = 0.137 ; +static double dbad_currentSeed = 0.0 ; +static double dbad_condensed_dd, dbad_condensed_tgt, dbad_condensed_adj ; +static double dbad_refsum, dbad_nextrefsum ; + +/** Buffers for stack mechanism, redefined to avoid linking with adStack.c */ +static double dbad_adr8buf[512] ; +static int dbad_adr8ibuf = 0 ; +static int dbad_adi4buf[512] ; +static int dbad_adi4ibuf = 0 ; + +void dbad_pushReal8(double x) { + if (dbad_adr8ibuf >= 511) { + dbad_adr8buf[511] = x ; + pushNArray((char *)dbad_adr8buf, 512*8, 1) ; + dbad_adr8ibuf = 0 ; + } else { + dbad_adr8buf[dbad_adr8ibuf] = x ; + ++dbad_adr8ibuf ; + } +} + +void dbad_popReal8(double *x) { + if (dbad_adr8ibuf <= 0) { + popNArray((char *)dbad_adr8buf, 512*8, 1) ; + dbad_adr8ibuf = 511 ; + *x = dbad_adr8buf[511] ; + } else { + --dbad_adr8ibuf ; + *x = dbad_adr8buf[dbad_adr8ibuf] ; + } +} + +void dbad_pushinteger4(int x) { + if (dbad_adi4ibuf >= 511) { + dbad_adi4buf[511] = x ; + pushNArray((char *)dbad_adi4buf, 512*4, 1) ; + dbad_adi4ibuf = 0 ; + } else { + dbad_adi4buf[dbad_adi4ibuf] = x ; + ++dbad_adi4ibuf ; + } +} + +void dbad_popinteger4(int *x) { + if (dbad_adi4ibuf <= 0) { + popNArray((char *)dbad_adi4buf, 512*4, 1) ; + dbad_adi4ibuf = 511 ; + *x = dbad_adi4buf[511] ; + } else { + --dbad_adi4ibuf ; + *x = dbad_adi4buf[dbad_adi4ibuf] ; + } +} +/* End redefinition of the buffers for the stack mechanism */ + +void dbad_pushCallFrame(char* unitname, int deltadepth, int forcetraced) { + DBAD_CallStackElem *newCallLevel = (DBAD_CallStackElem*)malloc(sizeof(DBAD_CallStackElem)) ; + newCallLevel->funcname = (char*)malloc(100) ; + sprintf(newCallLevel->funcname, "%s", unitname) ; + newCallLevel->deltadepth = (dbad_calltracedepth>0?1-deltadepth:0) ; + dbad_calltracedepth -= newCallLevel->deltadepth ; + // forcing mechanism: + if (forcetraced>0 && forcetraced>dbad_calltracedepth) { + newCallLevel->deltadepth -= (forcetraced-dbad_calltracedepth) ; + dbad_calltracedepth = forcetraced ; + } + newCallLevel->code = 0 ; + newCallLevel->context = dbad_callStack ; + dbad_callStack = newCallLevel ; +} + +void dbad_popCallFrame() { + dbad_calltracedepth += dbad_callStack->deltadepth ; + DBAD_CallStackElem *newCallLevel = dbad_callStack->context ; + free(dbad_callStack->funcname) ; + free(dbad_callStack) ; + dbad_callStack = newCallLevel ; +} + +int dbad_debughere(int forcetraced) { + return (dbad_calltracedepth>0 || forcetraced) ; +} + +int dbad_debugabove() { + return (dbad_calltracedepth+dbad_callStack->deltadepth)>0 ; +} + +int dbad_callstackdepth() { + DBAD_CallStackElem *incallstack = dbad_callStack ; + int depth = 0 ; + while (incallstack) {++depth ; incallstack=incallstack->context ;} + return depth-1 ; +} + +void dbad_resetCondensors() { + dbad_currentSeed = 0.0 ; + dbad_condensed_dd = 0.0 ; + dbad_condensed_tgt = 0.0 ; + dbad_condensed_adj = 0.0 ; +} + +double dbad_nextRandom() { + dbad_currentSeed += dbad_seed ; + if (dbad_currentSeed>=1.0) dbad_currentSeed-=1.0 ; + /* Return a value in range [1.0 2.0[ */ + return dbad_currentSeed+1.0 ; +} + +/** Scales the tangent direction *indepd (now in range [1.0 2.0[) + * so that it has same magnitude as indep */ +void dbad_scaleIndepDirection4(float *indepd, float indep) { + int exponent ; + frexpf(indep, &exponent); + *indepd = ldexpf(*indepd, exponent) ; +} + +/** Scales the tangent direction *indepd (now in range [1.0 2.0[) + * so that it has same magnitude as indep */ +void dbad_scaleIndepDirection8(double *indepd, double indep) { + int exponent ; + frexp(indep, &exponent); + *indepd = ldexp(*indepd, exponent) ; +} + +void dbad_putOneVarName(char *varname) { + char buf[8]=" " ; + int len = strlen(varname) ; + if (len>8) len = 8 ; + memcpy(buf, varname, len) ; + fwrite(buf, sizeof(char), 8, dbad_file) ; +} + +void dbad_ddcheckvarname(char* varname) { + char localBuf[9]=" " ; + char remoteBuf[9]=" " ; + int len = strlen(varname) ; + if (len>8) len = 8 ; + memcpy(localBuf, varname, len) ; + fread(remoteBuf, sizeof(char), 8, dbad_file) ; + if (strcmp(localBuf, remoteBuf)!=0) { + printf("Control mismatch, expecting a variable named \"%s\", got \"%s\"\n",localBuf,remoteBuf) ; + exit(0) ; + } +} + +void dbad_putOne8(double var) { + fwrite(&var, sizeof(double), 1, dbad_file) ; +} + +void dbad_putOne4(float var) { + float fl2[2] ; + fl2[0] = var ; + fwrite(fl2, sizeof(float), 2, dbad_file) ; +} + +void dbad_getOne8(double *var) { + fread(var, sizeof(double), 1, dbad_file) ; +} + +void dbad_getOne4(float *var) { + float fl2[2] ; + fread(fl2, sizeof(float), 2, dbad_file) ; + *var = fl2[0] ; +} + +/* static int nbDebugDebug = 10 ; */ + +int dbad_discrepancy8(double vareps, double var, double vard, double *dd, float *diff) { + int hasDifference = 0 ; + int almostZero = -15; // Tests more strict when almostZero goes down to -Inf. + int errMaxBits = 8; // Tests more strict when errMaxBits goes up to +Inf. + int trustableMantissa = 53; // Tests more strict when trustableMantissa goes up to 52. + *dd = 0.0 ; + //TODO: test vareps and var for NaNs! + int expoTG ; + frexp(vard, &expoTG) ; + double dv = vareps-var ; +/* printf("vard:%24.16e expoTG:%i almostZero:%i dv:%24.16e - %24.16e = %24.16e\n",vard,expoTG,almostZero,vareps,var,dv) ; */ + if (dv==0.0) { + *dd = 0.0 ; + if (vard==0.0 || expoTGexpoV2?expoV1:expoV2))) ; + frexp(hv, &expoHV) ; + int discrepancySmallness = expoDV-expoHV ; + int discrepancyExactness = trustableMantissa-expoV+expoDV ; + hasDifference = (discrepancySmallness=0.0?vard:-vard) ; + double absdd = (*dd>=0.0?*dd:-*dd) ; + double maxabs = (absvard>absdd?absvard:absdd) ; + double absvardmdd = vard-*dd ; + if (absvardmdd<0.0) absvardmdd=-absvardmdd ; + *diff = (float)((absvardmdd/maxabs)*100.0) ; +/* if (nbDebugDebug && hasDifference) { */ +/* nbDebugDebug-- ; */ +/* printf("vard:%24.16e [v-eps:%24.16e v-loc:%24.16e (%i)] dd:%24.16e (%i) -> %i\n", */ +/* vard, vareps, var, expoV, dv, expoDV, expoHV) ; */ +/* printf("n2:%i 52-M0+M1-6:%i different:%i %5.1f\n", */ +/* discrepancySmallness, discrepancyExactness, hasDifference, *diff) ; */ +/* } */ + } + } + return hasDifference ; +} + +int dbad_discrepancy4(float vareps, float var, float vard, float *dd, float *diff) { + int hasDifference = 0 ; + int almostZero = -15; // Tests more strict when almostZero goes down to -Inf. + int errMaxBits = 6; // Tests more strict when errMaxBits goes up to +Inf. + int trustableMantissa = 23; // Tests more strict when trustableMantissa goes up to 52. + *dd = 0.0 ; + //TODO: test vareps and var for NaNs! + int expoTG ; + frexpf(vard, &expoTG) ; + float dv = vareps-var ; + if (dv==0.0) { + *dd = 0.0 ; + if (vard==0.0 || expoTGexpoV2?expoV1:expoV2))) ; + frexpf(hv, &expoHV) ; + int discrepancySmallness = expoDV-expoHV ; + int discrepancyExactness = trustableMantissa-expoV+expoDV ; + hasDifference = (discrepancySmallness=0.0?vard:-vard) ; + float absdd = (*dd>=0.0?*dd:-*dd) ; + float maxabs = (absvard>absdd?absvard:absdd) ; + float absvardmdd = vard-*dd ; + if (absvardmdd<0.0) absvardmdd=-absvardmdd ; + *diff = (absvardmdd/maxabs)*100.0 ; +/* if (nbDebugDebug && hasDifference) { */ +/* nbDebugDebug-- ; */ +/* printf("vard:%24.16e [v-eps:%24.16e v-loc:%24.16e (%i)] dd:%24.16e (%i) -> %i\n", */ +/* vard, vareps, var, expoV, dv, expoDV, expoHV) ; */ +/* printf("n2:%i 52-M0+M1-6:%i different:%i %5.1f\n", */ +/* discrepancySmallness, discrepancyExactness, hasDifference, *diff) ; */ +/* } */ + } + } + return hasDifference ; +} + +void dbad_display_location(char *placename) { + if (dbad_testThisProcess!=-2) { + int i ; + char* enclosproc = dbad_callStack->funcname ; + int callStackDepth = dbad_callstackdepth() ; + char indentWhite[20] = " " ; + if (callStackDepth<10) indentWhite[2*callStackDepth]='\0'; + if (dbad_testThisProcess==-1) { + printf("%s[%2i]AT:%s OF %s\n", indentWhite, callStackDepth, placename, enclosproc) ; + } else { + printf("[process %i] %s[%2i]AT:%s OF %s\n", dbad_testThisProcess, indentWhite, callStackDepth, placename, enclosproc) ; + } + } +} + +void dbad_adDebugTgt_testComplex16(char* varname, cdcmplx var, cdcmplx *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne8(var.dr) ; + dbad_putOne8(var.di) ; + } else if (dbad_phase==2) { + cdcmplx ddvar, dd ; + float diffR, diffI ; + int hasDifferenceR, hasDifferenceI ; + dbad_ddcheckvarname(varname) ; + dbad_getOne8(&(ddvar.dr)) ; + dbad_getOne8(&(ddvar.di)) ; + hasDifferenceR = dbad_discrepancy8(ddvar.dr, var.dr, vard->dr, &(dd.dr), &diffR) ; + hasDifferenceI = dbad_discrepancy8(ddvar.di, var.di, vard->di, &(dd.di), &diffI) ; + if (dbad_trace) { + printf("%s [v-eps:(%24.16e,%24.16e) v-loc:(%24.16e,%24.16e)] (%24.16e,%24.16e)(dd (%5.1f,%5.1f)%% DIFF? WITH ad)(%24.16e,%24.16e)\n", + varname,ddvar.dr,ddvar.di,var.dr,var.di,dd.dr,dd.di,diffR,diffI,vard->dr,vard->di) ; + } else if (hasDifferenceR||hasDifferenceI) { + printf("%s (%24.16e,%24.16e)(dd (%5.1f,%5.1f)%% DIFF WITH ad)(%24.16e,%24.16e)\n", + varname,dd,dd,diffR,diffI,vard->dr,vard->di) ; + } + if (conclude==-1) { + //Nudge the ad derivative back to divided-diff value: + if (hasDifferenceR) { + vard->dr = dd.dr ; + printf("%s (.real) RESET:\n", varname) ; + } + if (hasDifferenceI) { + vard->di = dd.di ; + printf("%s (.imag) RESET:\n", varname) ; + } + } + if (conclude==1) { + cdcmplx varb ; + varb.dr = dbad_nextRandom(); + varb.di = dbad_nextRandom(); + dbad_condensed_dd += dd.dr*varb.dr + dd.di*varb.di; + dbad_condensed_tgt += vard->dr*varb.dr + vard->di*varb.di; + } + } + } +} + +void dbad_adDebugTgt_testReal8(char* varname, double var, double *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne8(var) ; + } else if (dbad_phase==2) { + double ddvar, dd ; + float diff ; + dbad_ddcheckvarname(varname) ; + dbad_getOne8(&ddvar) ; + int hasDifference = dbad_discrepancy8(ddvar, var, *vard, &dd, &diff) ; + if (dbad_trace) { + printf("%s [v-eps:%24.16e v-loc:%24.16e] %24.16e(dd %5.1f%% DIFF? WITH ad)%24.16e\n", + varname,ddvar,var,dd,diff,*vard) ; + } else if (hasDifference) { + printf("%s %24.16e(dd %5.1f%% DIFF WITH ad)%24.16e\n", + varname,dd,diff,*vard) ; + } + if (conclude==-1 && hasDifference) { + //Nudge the ad derivative back to divided-diff value: + *vard = dd ; + printf("%s RESET:\n", varname) ; + } + if (conclude==1) { + double varb = dbad_nextRandom() ; + dbad_condensed_dd += dd*varb; + dbad_condensed_tgt += *vard*varb; + } + } + } +} + +void dbad_adDebugTgt_testReal4(char* varname, float var, float *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne4(var) ; + } else if (dbad_phase==2) { + float ddvar, dd ; + float diff ; + dbad_ddcheckvarname(varname) ; + dbad_getOne4(&ddvar) ; + int hasDifference = dbad_discrepancy4(ddvar, var, *vard, &dd, &diff) ; + if (dbad_trace) { + printf("%s [v-eps:%18.10e v-loc:%18.10e] %18.10e(dd %5.1f%% DIFF? WITH ad)%18.10e\n", + varname,ddvar,var,dd,diff,*vard) ; + } else if (hasDifference) { + printf("%s %18.10e(dd %5.1f%% DIFF WITH ad)%18.10e\n", + varname,dd,diff,*vard) ; + } + if (conclude==-1 && hasDifference) { + //Nudge the ad derivative back to divided-diff value: + *vard = dd ; + printf("%s RESET:\n", varname) ; + } + if (conclude==1) { + double varb = dbad_nextRandom() ; + dbad_condensed_dd += ((double)dd)*varb; + dbad_condensed_tgt += ((double)*vard)*varb; + } + } + } +} + +void dbad_adDebugTgt_testComplex16Array(char* varname, cdcmplx* var, cdcmplx* vard, int length, int conclude) { + if (!var || !vard) return ; + if (dbad_testThisProcess!=-2) { + int i ; + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + for (i=0 ; i=5 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j(%11.4e,%11.4e)", indexbuf[j], vardbuf[j].dr, vardbuf[j].di) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; j=10 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j%11.4e", indexbuf[j], vardbuf[j]) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; j=10 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j%11.4e", indexbuf[j], vardbuf[j]) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; jdr = dbad_nextRandom() ; + indepd->di = dbad_nextRandom() ; +/* dbad_scaleIndepDirection??(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) { + indep->dr = (indep->dr)+dbad_ddeps*(indepd->dr) ; + indep->di = (indep->di)+dbad_ddeps*(indepd->di) ; + } + if (dbad_trace) + printf("initComplex16 of %s: (%24.16e,%24.16e) //(%24.16e,%24.16e)\n", varname, indep->dr, indep->di, indepd->dr, indepd->di) ; +} + +void adDebugTgt_initReal8(char* varname, double *indep, double *indepd) { + *indepd = dbad_nextRandom() ; +/* dbad_scaleIndepDirection8(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + if (dbad_trace) + printf("initReal8 of %s: %24.16e //%24.16e\n", varname, *indep, *indepd) ; +} + +void adDebugTgt_initReal4(char* varname, float *indep, float *indepd) { + *indepd = (float)dbad_nextRandom() ; +/* dbad_scaleIndepDirection4(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + if (dbad_trace) + printf("initReal4 of %s: %24.16e //%24.16e\n", varname, (double)*indep, (double)*indepd) ; +} + +void adDebugTgt_initComplex16Array(char* varname, cdcmplx *indep, cdcmplx *indepd, int length) { + if (!indep || !indepd) return ; + int i ; + for (i=0 ; i scaled %i (%24.16e,%24.16e)\n", i, indepd[i].dr, indepd[i].di) ; */ + } + if (dbad_phase==1) { + for (i=0 ; i scaled %i %24.16e\n", i, indepd[i]) ; */ + } + if (dbad_phase==1) { + for (i=0 ; i=0.0?dbad_condensed_tgt:-dbad_condensed_tgt) ; + absdd = (dbad_condensed_dd>=0.0?dbad_condensed_dd:-dbad_condensed_dd) ; + maxabs = (abstgt>absdd?abstgt:absdd) ; + abserror = dbad_condensed_tgt-dbad_condensed_dd ; + if (abserror<0.0) abserror=-abserror ; + diff = (abserror*100.0)/ maxabs ; + if (dbad_testThisProcess==-1) { + printf("Condensed tangent: %24.16e (ad)%5.1f%% DIFF WITH (dd)%24.16e [seed:%7.1e]\n", + dbad_condensed_tgt,diff,dbad_condensed_dd,dbad_seed) ; + } else { + printf("[process %i] Condensed tangent: %24.16e (ad)%5.1f%% DIFF WITH (dd)%24.16e [seed:%7.1e]\n", + dbad_testThisProcess,dbad_condensed_tgt,diff,dbad_condensed_dd,dbad_seed) ; + } + } + } +} + +void adDebugTgt_display(char *placename) { + if (dbad_testThisProcess!=-2) { + if (dbad_trace) { + if (dbad_testThisProcess==-1) { + printf("display %s\n", placename) ; + } else { + printf("[process %i] display %s\n", dbad_testThisProcess, placename) ; + } + } + if (dbad_phase==2) { + dbad_display_location(placename) ; + } + } +} + +//############## DEBUG OF ADJOINT, FIRST SWEEP: ADJOINT RUN ################ + +void adDebugBwd_init(double errmax, double seed) { + dbad_mode = -1 ; + dbad_phase = 1 ; + dbad_errormax = errmax ; + dbad_seed = seed ; + dbad_topContext.funcname = "TESTED CODE\0" ; + dbad_topContext.deltadepth = 0 ; + dbad_topContext.code = 0 ; + dbad_calltracedepth = 1 ; + dbad_callStack = &dbad_topContext ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 0 (no debug), 1 (sendToTgt), or -1 (plusTraces)\n") ; + dbad_phase = 1 ; + } else if (strcmp(phase,"0")==0) { + dbad_phase = 1 ; + dbad_nocommunication = 1 ; + } else if (strcmp(phase,"1")==0) { + dbad_phase = 1 ; + } else if (strcmp(phase,"-1")==0) { + dbad_phase = 1 ; + dbad_trace = 1 ; + } else { + printf("DBAD_PHASE environment variable must be set to 0 (no debug), 1 (sendToTgt), or -1 (plusTraces)\n") ; + exit(0) ; + } + printf("Starting ADJ test, phase one (bwd), errmax=%4.1f% [seed=%7.1e]\n", errmax, seed) ; + printf("===========================================================\n") ; + if (dbad_nocommunication) { + dbad_file = NULL ; + printf("FIFO COMMUNICATION TURNED OFF !\n") ; + } else { + mkfifo("/tmp/DBAD_fifo", S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH | S_IRWXU | S_IRWXO) ; + dbad_file = fopen("/tmp/DBAD_fifo", "a") ; + if (dbad_file==NULL) { + char errbuf[20] ; + strerror_r(errno, errbuf, 20) ; + printf("FIFO ERROR %i: %s OR %s\n",errno,strerror(errno),errbuf) ; + exit(0) ; + } + } + dbad_resetCondensors() ; +} + +void adDebugBwd_call(char *funcname, int deltadepth) { + dbad_pushCallFrame(funcname, deltadepth, 0) ; +} + +void adDebugBwd_exit() { + dbad_resetCondensors() ; + if (dbad_debugabove()) { + if (dbad_nocommunication) { + printf("adDebug would send (%i %s)\n", (dbad_debughere(0)?2:-2), dbad_callStack->funcname) ; + } else { + fprintf(dbad_file, "%i\n", (dbad_debughere(0)?2:-2)) ; + fprintf(dbad_file, "%s\n", dbad_callStack->funcname) ; + } + } + dbad_popCallFrame() ; +} + +int adDebugBwd_here(char* placename) { + dbad_resetCondensors() ; + return adDebugTgt_here(placename, 0) ; +} + +//############## DEBUG OF ADJOINT, SECOND SWEEP: TANGENT RUN ################ + +void adDebugFwd_init(double errmax, double seed) { + dbad_mode = -1 ; + dbad_phase = 2 ; + dbad_errormax = errmax ; + dbad_seed = seed ; + dbad_topContext.funcname = "TESTED CODE\0" ; + dbad_topContext.deltadepth = 0 ; + dbad_topContext.code = 0 ; + dbad_calltracedepth = 1 ; + dbad_callStack = &dbad_topContext ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 0 (no debug), 2 (readFromAdj), or -2 (plusTraces)\n") ; + dbad_phase = 2 ; + } else if (strcmp(phase,"0")==0) { + dbad_phase = 2 ; + dbad_nocommunication = 1 ; + } else if (strcmp(phase,"2")==0) { + dbad_phase = 2 ; + } else if (strcmp(phase,"-2")==0) { + dbad_phase = 2 ; + dbad_trace = 1 ; + } else { + printf("DBAD_PHASE environment variable must be set to 0 (no debug), 2 (readFromAdj), or -2 (plusTraces)\n") ; + exit(0) ; + } + dbad_nberrors = 0 ; + printf("Starting ADJ test, phase two (fwd), errmax=%4.1f% [seed=%7.1e]\n", errmax, seed) ; + printf("===========================================================\n") ; + if (dbad_nocommunication) { + dbad_file = NULL ; + printf("FIFO COMMUNICATION TURNED OFF !\n") ; + } else { + dbad_file = fopen("/tmp/DBAD_fifo", "r") ; + dbad_resetCondensors() ; + /* Convention on the meaning of labels: + -1 -> a debug point, skipped + 0 -> a debug point, traced but no associated value. + 1 -> a debug point, traced, with an associated value. + -2 -> a call, skipped + 2 -> a call, traced + */ + int ret=0 ; + int label ; + char placename[40] ; + double value ; + while (1) { + ret = fscanf(dbad_file, "%i\n", &label) ; + if (ret!=1) break ; + ret = fscanf(dbad_file, "%s\n", placename) ; + if (label==1) { + ret = fscanf(dbad_file, "%lf\n", &value) ; + dbad_pushReal8(value) ; + } + pushCharacterArray(placename, 40) ; + dbad_pushinteger4(label) ; + } + } +} + +void adDebugFwd_call(char *funcname) { + int label ; + char funcnamefrom[40] ; + char funcnamehere[40] ; + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // push the call frame but do essentially nothing! + if (dbad_debughere(0) && !(dbad_nocommunication && dbad_phase==2)) { + dbad_popinteger4(&label) ; + if (label!=2 && label!=-2) { + printf("Control mismatch, expecting a trace (-2or2) from %s bwd call exit, got %i\n",funcname,label) ; + exit(0) ; + } + popCharacterArray(funcnamefrom, 40) ; + sprintf(funcnamehere,"%s",funcname) ; + if (strcmp(funcnamefrom,funcnamehere)!=0) { + printf("Control mismatch, expecting a call to %s, got %s\n",funcnamehere,funcnamefrom) ; + exit(0) ; + } + dbad_pushCallFrame(funcname, 0, 0) ; + if (label==2) { // then the call is traced: + dbad_callStack->deltadepth += (dbad_calltracedepth-1) ; + dbad_calltracedepth = 1 ; + } else { // then label==-2: the call is not traced: + dbad_callStack->deltadepth += dbad_calltracedepth ; + dbad_calltracedepth = 0 ; + } + } else { + dbad_pushCallFrame(funcname, 0, 0) ; + } +} + +void adDebugFwd_exit() { + dbad_popCallFrame() ; +} + +int adDebugFwd_here(char* placename) { + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // never go into the derivative manipulation body, except to st the inputs at the very "start" + // and to print the result at the very "end". + if (dbad_nocommunication && dbad_phase==2) { + if (strcmp(placename,"end")==0 || strcmp(placename,"start")==0) + return 1 ; + else + return 0 ; + } else { + if (dbad_debughere(0)) { + int label ; + char placenamefrom[40] ; + char placenamehere[40] ; + dbad_resetCondensors() ; + dbad_popinteger4(&label) ; + if (label!=1 && label!=-1 && label!=0) { + printf("Control mismatch, expecting a trace (-1or0or1) from place %s, got %i\n",placename,label) ; + exit(0) ; + } + popCharacterArray(placenamefrom, 40) ; + sprintf(placenamehere,"%s",placename) ; + if (strcmp(placenamefrom,placenamehere)!=0) { + printf("Control mismatch, expecting place %s, got %s\n",placenamehere,placenamefrom) ; + exit(0) ; + } + if (label==1) { + dbad_popReal8(&dbad_nextrefsum) ; + } + return label!=-1 ; + } else { + return 0 ; + } + } +} + +//############## DEBUG OF ADJOINT, FOR BOTH SWEEPS: ################ + +void adDebugAdj_rwComplex16(cdcmplx *vard) { + double varbR = dbad_nextRandom() ; + double varbI = dbad_nextRandom() ; + dbad_condensed_adj += varbR*(vard->dr) + varbI*(vard->di) ; + vard->dr = varbR ; + vard->di = varbI ; +} + +void adDebugAdj_rwReal8(double *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; + *vard = varb ; +} + +void adDebugAdj_rwReal4(float *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; + *vard = (float)varb ; +} + +void adDebugAdj_rComplex16(cdcmplx *vard) { + double varbR = dbad_nextRandom() ; + double varbI = dbad_nextRandom() ; + dbad_condensed_adj += varbR*(vard->dr) + varbI*(vard->di) ; +} + +/** Although at present this routine doesn't modify its argument, + * we still expect a reference for consistency + * with adDebugAdj_wReal8() and also adDebugAdj_rComplex16() */ +void adDebugAdj_rReal8(double *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; +} + +/** Although at present this routine doesn't modify its argument, + * we still expect a reference for consistency + * with adDebugAdj_wReal4() and also adDebugAdj_rComplex16() */ +void adDebugAdj_rReal4(float *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; +} + +void adDebugAdj_wComplex16(cdcmplx *vard) { + vard->dr = dbad_nextRandom() ; + vard->di = dbad_nextRandom() ; +} + +void adDebugAdj_wReal8(double *vard) { + *vard = dbad_nextRandom() ; +} + +void adDebugAdj_wReal4(float *vard) { + *vard = (float)dbad_nextRandom() ; +} + +void adDebugAdj_rwComplex16Array(cdcmplx *vard, int length) { + int i ; + if (vard) + for (i=0 ; i=0.0?dbad_refsum:-dbad_refsum) ; + double absadj = (dbad_condensed_adj>=0.0?dbad_condensed_adj:-dbad_condensed_adj) ; + double absdiff = dbad_refsum - dbad_condensed_adj ; + if (absdiff<0.0) absdiff = -absdiff ; + double reldiff = (absdiff*200.0)/(absref+absadj) ; + if (reldiff>dbad_errormax) { + printf(" %5.1f%% DIFFERENCE!! tgt:%24.16e adj:%24.16e\n", + reldiff, dbad_condensed_adj, dbad_refsum) ; + ++dbad_nberrors ; + } else if (strcmp(placename,"end")==0 && dbad_nberrors==0) { + // When we are at end and no errors were found, always show the compared values + printf(" difference is just %7.3f% between tgt:%24.16e and adj:%24.16e\n", + reldiff, dbad_condensed_adj, dbad_refsum) ; + } + if (indent==0) dbad_display_location(placename) ; + } + } + dbad_resetCondensors() ; +} + +void adDebugAdj_wDisplay(char *placename, int indent) { + if (dbad_phase==1) { + if (dbad_nocommunication) { + printf("adDebug would send (0 %s)\n", placename) ; + } else { + fprintf(dbad_file, "0\n") ; + fprintf(dbad_file, "%s\n", placename) ; + } + } else if (dbad_phase==2) { + if (indent==0) dbad_display_location(placename) ; + dbad_refsum = dbad_nextrefsum ; + } + dbad_resetCondensors() ; +} + +void adDebugAdj_skip(char *placename) { + if (dbad_phase==1 && dbad_debughere(0)) { + if (dbad_nocommunication) { + printf("adDebug would send (-1 %s)\n", placename) ; + } else { + fprintf(dbad_file, "-1\n") ; + fprintf(dbad_file, "%s\n", placename) ; + } + } +} + +void adDebugAdj_conclude() { + if (dbad_phase==2) { + if (!dbad_nocommunication) { + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // don't claim that any testing has been done!! but show the expected condensed tangent: + printf("End of ADJ test, %i error(s) found.\n", dbad_nberrors) ; + printf("===========================================================\n") ; + } + } +} + +/* void adDebugAdj_show() { */ +/* printf("Present sum %24.16e, current seed is %f (%f)\n", dbad_condensed_adj, dbad_currentSeed, dbad_seed) ; */ +/* } */ + +//############## INTERFACE PROCEDURES CALLED FROM FORTRAN ################ + +void addebugtgt_init_(double *epsilon, double *seed, int *tested_process) { + adDebugTgt_init(*epsilon, *seed, *tested_process) ; +} + +void addebugtgt_call_(char* unitname, int *deltadepth, int *forcetraced) { + adDebugTgt_call(unitname, *deltadepth, *forcetraced) ; +} + +void addebugtgt_exit_() { + adDebugTgt_exit() ; +} + +int addebugtgt_here_(char* placename, int *forcetraced) { + return adDebugTgt_here(placename, *forcetraced) ; +} + +void addebugtgt_initcomplex16_(char* varname, cdcmplx *indep, cdcmplx *indepd) { + adDebugTgt_initComplex16(varname, indep, indepd) ; +} + +void addebugtgt_initreal8_(char* varname, double *indep, double *indepd) { + adDebugTgt_initReal8(varname, indep, indepd) ; +} + +void addebugtgt_initreal4_(char* varname, float *indep, float *indepd) { + adDebugTgt_initReal4(varname, indep, indepd) ; +} + +void addebugtgt_initcomplex16array_(char* varname, cdcmplx *indep, cdcmplx *indepd, int *length) { + adDebugTgt_initComplex16Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_initreal8array_(char* varname, double *indep, double *indepd, int *length) { + adDebugTgt_initReal8Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_initreal4array_(char* varname, float *indep, float *indepd, int *length) { + adDebugTgt_initReal4Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_passivecomplex16_(char *varname, cdcmplx *var) { + adDebugTgt_passiveComplex16(varname, *var) ; +} + +void addebugtgt_passivereal8_(char *varname, double *var) { + adDebugTgt_passiveReal8(varname, *var) ; +} + +void addebugtgt_passivereal4_(char *varname, float *var) { + adDebugTgt_passiveReal4(varname, *var) ; +} + +void addebugtgt_passivecomplex16array_(char *varname, cdcmplx *var, int *length) { + adDebugTgt_passiveComplex16Array(varname, var, *length) ; +} + +void addebugtgt_passivereal8array_(char *varname, double *var, int *length) { + adDebugTgt_passiveReal8Array(varname, var, *length) ; +} + +void addebugtgt_passivereal4array_(char *varname, float *var, int *length) { + adDebugTgt_passiveReal4Array(varname, var, *length) ; +} + +void addebugtgt_testcomplex16_(char *varname, cdcmplx *var, cdcmplx *vard) { + adDebugTgt_testComplex16(varname, *var, vard) ; +} + +void addebugtgt_testreal8_(char *varname, double *var, double *vard) { + adDebugTgt_testReal8(varname, *var, vard) ; +} + +void addebugtgt_testreal4_(char *varname, float *var, float *vard) { + adDebugTgt_testReal4(varname, *var, vard) ; +} + +void addebugtgt_testcomplex16array_(char *varname, cdcmplx* var, cdcmplx* vard, int *length) { + adDebugTgt_testComplex16Array(varname, var, vard, *length) ; +} + +void addebugtgt_testreal8array_(char *varname, double* var, double* vard, int *length) { + adDebugTgt_testReal8Array(varname, var, vard, *length) ; +} + +void addebugtgt_testreal4array_(char *varname, float* var, float* vard, int *length) { + adDebugTgt_testReal4Array(varname, var, vard, *length) ; +} + +void addebugtgt_concludecomplex16_(char* varname, cdcmplx *dep, cdcmplx *depd) { + adDebugTgt_concludeComplex16(varname, *dep, depd) ; +} + +void addebugtgt_concludereal8_(char* varname, double *dep, double *depd) { + adDebugTgt_concludeReal8(varname, *dep, depd) ; +} + +void addebugtgt_concludereal4_(char* varname, float *dep, float *depd) { + adDebugTgt_concludeReal4(varname, *dep, depd) ; +} + +void addebugtgt_concludecomplex16array_(char* varname, cdcmplx *dep, cdcmplx *depd, int *length) { + adDebugTgt_concludeComplex16Array(varname, dep, depd, *length) ; +} + +void addebugtgt_concludereal8array_(char* varname, double *dep, double *depd, int *length) { + adDebugTgt_concludeReal8Array(varname, dep, depd, *length) ; +} + +void addebugtgt_concludereal4array_(char* varname, float *dep, float *depd, int *length) { + adDebugTgt_concludeReal4Array(varname, dep, depd, *length) ; +} + +void addebugtgt_conclude_() { + adDebugTgt_conclude() ; +} + +void addebugtgt_display_(char *placename) { + adDebugTgt_display(placename) ; +} + +void addebugbwd_init_(double *errmax, double *seed) { + adDebugBwd_init(*errmax, *seed) ; +} + +void addebugbwd_call_(char *funcname, int *deltadepth) { + adDebugBwd_call(funcname, *deltadepth) ; +} + +void addebugbwd_exit_() { + adDebugBwd_exit() ; +} + +int addebugbwd_here_(char* placename) { + return adDebugBwd_here(placename) ; +} + +void addebugfwd_init_(double *errmax, double *seed) { + adDebugFwd_init(*errmax, *seed) ; +} + +void addebugfwd_call_(char *funcname) { + adDebugFwd_call(funcname) ; +} + +void addebugfwd_exit_() { + adDebugFwd_exit() ; +} + +int addebugfwd_here_(char* placename) { + return adDebugFwd_here(placename) ; +} + +void addebugadj_rwreal4_(float *vard) { + adDebugAdj_rwReal4(vard) ; +} + +void addebugadj_rwreal8_(double *vard) { + adDebugAdj_rwReal8(vard) ; +} + +void addebugadj_rwcomplex16_(cdcmplx *vard) { + adDebugAdj_rwComplex16(vard) ; +} + +void addebugadj_rreal4_(float *vard) { + adDebugAdj_rReal4(vard) ; +} + +void addebugadj_rreal8_(double *vard) { + adDebugAdj_rReal8(vard) ; +} + +void addebugadj_rcomplex16_(cdcmplx *vard) { + adDebugAdj_rComplex16(vard) ; +} + +void addebugadj_wreal4_(float *vard) { + adDebugAdj_wReal4(vard) ; +} + +void addebugadj_wreal8_(double *vard) { + adDebugAdj_wReal8(vard) ; +} + +void addebugadj_wcomplex16_(cdcmplx *vard) { + adDebugAdj_wComplex16(vard) ; +} + +void addebugadj_rwreal4array_(float *vard, int *length) { + adDebugAdj_rwReal4Array(vard, *length) ; +} + +void addebugadj_rwreal8array_(double *vard, int *length) { + adDebugAdj_rwReal8Array(vard, *length) ; +} + +void addebugadj_rwcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_rwComplex16Array(vard, *length) ; +} + +void addebugadj_rreal4array_(float *vard, int *length) { + adDebugAdj_rReal4Array(vard, *length) ; +} + +void addebugadj_rreal8array_(double *vard, int *length) { + adDebugAdj_rReal8Array(vard, *length) ; +} + +void addebugadj_rcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_rComplex16Array(vard, *length) ; +} + +void addebugadj_wreal4array_(float *vard, int *length) { + adDebugAdj_wReal4Array(vard, *length) ; +} + +void addebugadj_wreal8array_(double *vard, int *length) { + adDebugAdj_wReal8Array(vard, *length) ; +} + +void addebugadj_wcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_wComplex16Array(vard, *length) ; +} + +void addebugadj_rwdisplay_(char *placename, int *indent) { + adDebugAdj_rwDisplay(placename, *indent) ; +} + +void addebugadj_rdisplay_(char *placename, int *indent) { + adDebugAdj_rDisplay(placename, *indent) ; +} + +void addebugadj_wdisplay_(char *placename, int *indent) { + adDebugAdj_wDisplay(placename, *indent) ; +} + +void addebugadj_skip_(char* placename) { + adDebugAdj_skip(placename) ; +} + +void addebugadj_conclude_() { + adDebugAdj_conclude() ; +} diff --git a/tools/TAP_support/ADFirstAidKit/adDebug.h b/tools/TAP_support/ADFirstAidKit/adDebug.h new file mode 100644 index 0000000000..8c179cd5c4 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adDebug.h @@ -0,0 +1,72 @@ +#ifndef ADDEBUG_INCLUDED +#define ADDEBUG_INCLUDED + +#include "adComplex.h" + +void adDebugTgt_init(double epsilon, double seed, int tested_process) ; +void adDebugTgt_call(char *unitname, int traced, int forcetraced) ; +void adDebugTgt_exit() ; +int adDebugTgt_here(char* placename, int forcetraced) ; + +void adDebugTgt_initReal4(char* varname, float *indep, float *indepd) ; +void adDebugTgt_initReal8(char* varname, double *indep, double *indepd) ; +void adDebugTgt_initComplex16(char* varname, cdcmplx *indep, cdcmplx *indepd) ; +void adDebugTgt_initReal4Array(char* varname, float *indep, float *indepd, int length) ; +void adDebugTgt_initReal8Array(char* varname, double *indep, double *indepd, int length) ; +void adDebugTgt_initComplex16Array(char* varname, cdcmplx *indep, cdcmplx *indepd, int length) ; +void adDebugTgt_concludeReal4(char *varname, float dep, float *depd) ; +void adDebugTgt_concludeReal8(char *varname, double dep, double *depd) ; +void adDebugTgt_concludeComplex16(char *varname, cdcmplx dep, cdcmplx *depd) ; +void adDebugTgt_concludeReal4Array(char *varname, float *tvar, float *tvard, int length) ; +void adDebugTgt_concludeReal8Array(char *varname, double *tvar, double *tvard, int length) ; +void adDebugTgt_concludeComplex16Array(char *varname, cdcmplx *tvar, cdcmplx *tvard, int length) ; +void adDebugTgt_conclude() ; +void adDebugTgt_passiveReal4(char *varname, float var) ; +void adDebugTgt_passiveReal8(char *varname, double var) ; +void adDebugTgt_passiveComplex16(char *varname, cdcmplx var) ; +void adDebugTgt_passiveReal4Array(char *varname, float *var, int length) ; +void adDebugTgt_passiveReal8Array(char *varname, double *var, int length) ; +void adDebugTgt_passiveComplex16Array(char *varname, cdcmplx *var, int length) ; +void adDebugTgt_testReal4(char *varname, float var, float *vard) ; +void adDebugTgt_testReal8(char *varname, double var, double *vard) ; +void adDebugTgt_testComplex16(char *varname, cdcmplx var, cdcmplx *vard) ; +void adDebugTgt_testReal4Array(char *varname, float *var, float *vard, int length) ; +void adDebugTgt_testReal8Array(char *varname, double *var, double *vard, int length) ; +void adDebugTgt_testComplex16Array(char *varname, cdcmplx *var, cdcmplx *vard, int length) ; +void adDebugTgt_display(char *placename) ; + +void adDebugBwd_init(double errmax, double seed) ; +void adDebugBwd_call(char *funcname, int deltadepth) ; +void adDebugBwd_exit() ; +int adDebugBwd_here(char* placename) ; + +void adDebugFwd_init(double errmax, double seed) ; +void adDebugFwd_call(char *funcname) ; +void adDebugFwd_exit() ; +int adDebugFwd_here(char* placename) ; + +void adDebugAdj_rwReal4(float *vard) ; +void adDebugAdj_rwReal8(double *vard) ; +void adDebugAdj_rwComplex16(cdcmplx *vard) ; +void adDebugAdj_rReal4(float *vard) ; +void adDebugAdj_rReal8(double *vard) ; +void adDebugAdj_rComplex16(cdcmplx *vard) ; +void adDebugAdj_wReal4(float *vard) ; +void adDebugAdj_wReal8(double *vard) ; +void adDebugAdj_wComplex16(cdcmplx *vard) ; +void adDebugAdj_rwReal4Array(float *vard, int length) ; +void adDebugAdj_rwReal8Array(double *vard, int length) ; +void adDebugAdj_rwComplex16Array(cdcmplx *vard, int length) ; +void adDebugAdj_rReal4Array(float *vard, int length) ; +void adDebugAdj_rReal8Array(double *vard, int length) ; +void adDebugAdj_rComplex16Array(cdcmplx *vard, int length) ; +void adDebugAdj_wReal4Array(float *vard, int length) ; +void adDebugAdj_wReal8Array(double *vard, int length) ; +void adDebugAdj_wComplex16Array(cdcmplx *vard, int length) ; +void adDebugAdj_rwDisplay(char *placename, int indent) ; +void adDebugAdj_rDisplay(char *placename, int indent) ; +void adDebugAdj_wDisplay(char *placename, int indent) ; +void adDebugAdj_skip(char *placename) ; +void adDebugAdj_conclude() ; + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/adDebugMPI.c b/tools/TAP_support/ADFirstAidKit/adDebugMPI.c new file mode 100644 index 0000000000..709ba17606 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adDebugMPI.c @@ -0,0 +1,1705 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include "adDebug.h" + +/* Special for the non-regression tests on AMPI */ +#include + +extern void pushNArray(char *x, unsigned int nbChars, int checkReadOnly) ; +extern void popNArray(char *x, unsigned int nbChars, int checkReadOnly) ; +extern void pushCharacterArray(char *x, int n) ; +extern void popCharacterArray(char *x, int n) ; + +/* The "call stack" used by debugging to + * keep track of the position in the call tree */ +typedef struct _DBAD_CallStackElem { + char *funcname ; + int deltadepth ; + int code ; + struct _DBAD_CallStackElem *context ; +} DBAD_CallStackElem ; + +static DBAD_CallStackElem dbad_topContext ; +static DBAD_CallStackElem *dbad_callStack ; +static int dbad_calltracedepth = 1 ; + +static int dbad_mode, dbad_phase, dbad_nberrors ; +static int dbad_trace = 0 ; +static int dbad_nocommunication = 0 ; +/** The rank of the current process (from 0 up), if it is being tested. + * -2 means don't test the current process + * -1 means test this process (not-MPI case) but don't print process number! */ +static int dbad_testThisProcess = -1 ; +static FILE *dbad_file ; +static double dbad_errormax, dbad_ddeps = 1.e-6 ; +static double dbad_seed = 0.137 ; +static double dbad_currentSeed = 0.0 ; +static double dbad_condensed_dd, dbad_condensed_tgt, dbad_condensed_adj ; +static double dbad_refsum, dbad_nextrefsum ; + +/** Buffers for stack mechanism, redefined to avoid linking with adStack.c */ +static double dbad_adr8buf[512] ; +static int dbad_adr8ibuf = 0 ; +static int dbad_adi4buf[512] ; +static int dbad_adi4ibuf = 0 ; + +void dbad_pushReal8(double x) { + if (dbad_adr8ibuf >= 511) { + dbad_adr8buf[511] = x ; + pushNArray((char *)dbad_adr8buf, 512*8, 1) ; + dbad_adr8ibuf = 0 ; + } else { + dbad_adr8buf[dbad_adr8ibuf] = x ; + ++dbad_adr8ibuf ; + } +} + +void dbad_popReal8(double *x) { + if (dbad_adr8ibuf <= 0) { + popNArray((char *)dbad_adr8buf, 512*8, 1) ; + dbad_adr8ibuf = 511 ; + *x = dbad_adr8buf[511] ; + } else { + --dbad_adr8ibuf ; + *x = dbad_adr8buf[dbad_adr8ibuf] ; + } +} + +void dbad_pushinteger4(int x) { + if (dbad_adi4ibuf >= 511) { + dbad_adi4buf[511] = x ; + pushNArray((char *)dbad_adi4buf, 512*4, 1) ; + dbad_adi4ibuf = 0 ; + } else { + dbad_adi4buf[dbad_adi4ibuf] = x ; + ++dbad_adi4ibuf ; + } +} + +void dbad_popinteger4(int *x) { + if (dbad_adi4ibuf <= 0) { + popNArray((char *)dbad_adi4buf, 512*4, 1) ; + dbad_adi4ibuf = 511 ; + *x = dbad_adi4buf[511] ; + } else { + --dbad_adi4ibuf ; + *x = dbad_adi4buf[dbad_adi4ibuf] ; + } +} +/* End redefinition of the buffers for the stack mechanism */ + +void dbad_pushCallFrame(char* unitname, int deltadepth, int forcetraced) { + DBAD_CallStackElem *newCallLevel = (DBAD_CallStackElem*)malloc(sizeof(DBAD_CallStackElem)) ; + newCallLevel->funcname = (char*)malloc(100) ; + sprintf(newCallLevel->funcname, "%s", unitname) ; + newCallLevel->deltadepth = (dbad_calltracedepth>0?1-deltadepth:0) ; + dbad_calltracedepth -= newCallLevel->deltadepth ; + // forcing mechanism: + if (forcetraced>0 && forcetraced>dbad_calltracedepth) { + newCallLevel->deltadepth -= (forcetraced-dbad_calltracedepth) ; + dbad_calltracedepth = forcetraced ; + } + newCallLevel->code = 0 ; + newCallLevel->context = dbad_callStack ; + dbad_callStack = newCallLevel ; +} + +void dbad_popCallFrame() { + dbad_calltracedepth += dbad_callStack->deltadepth ; + DBAD_CallStackElem *newCallLevel = dbad_callStack->context ; + free(dbad_callStack->funcname) ; + free(dbad_callStack) ; + dbad_callStack = newCallLevel ; +} + +int dbad_debughere(int forcetraced) { + return (dbad_calltracedepth>0 || forcetraced) ; +} + +int dbad_debugabove() { + return (dbad_calltracedepth+dbad_callStack->deltadepth)>0 ; +} + +int dbad_callstackdepth() { + DBAD_CallStackElem *incallstack = dbad_callStack ; + int depth = 0 ; + while (incallstack) {++depth ; incallstack=incallstack->context ;} + return depth-1 ; +} + +void dbad_resetCondensors() { + dbad_currentSeed = 0.0 ; + dbad_condensed_dd = 0.0 ; + dbad_condensed_tgt = 0.0 ; + dbad_condensed_adj = 0.0 ; +} + +double dbad_nextRandom() { + dbad_currentSeed += dbad_seed ; + if (dbad_currentSeed>=1.0) dbad_currentSeed-=1.0 ; + /* Return a value in range [1.0 2.0[ */ + return dbad_currentSeed+1.0 ; +} + +/** Scales the tangent direction *indepd (now in range [1.0 2.0[) + * so that it has same magnitude as indep */ +void dbad_scaleIndepDirection4(float *indepd, float indep) { + int exponent ; + frexpf(indep, &exponent); + *indepd = ldexpf(*indepd, exponent) ; +} + +/** Scales the tangent direction *indepd (now in range [1.0 2.0[) + * so that it has same magnitude as indep */ +void dbad_scaleIndepDirection8(double *indepd, double indep) { + int exponent ; + frexp(indep, &exponent); + *indepd = ldexp(*indepd, exponent) ; +} + +void dbad_putOneVarName(char *varname) { + char buf[8]=" " ; + int len = strlen(varname) ; + if (len>8) len = 8 ; + memcpy(buf, varname, len) ; + fwrite(buf, sizeof(char), 8, dbad_file) ; +} + +void dbad_ddcheckvarname(char* varname) { + char localBuf[9]=" " ; + char remoteBuf[9]=" " ; + int len = strlen(varname) ; + if (len>8) len = 8 ; + memcpy(localBuf, varname, len) ; + fread(remoteBuf, sizeof(char), 8, dbad_file) ; + if (strcmp(localBuf, remoteBuf)!=0) { + printf("Control mismatch, expecting a variable named \"%s\", got \"%s\"\n",localBuf,remoteBuf) ; + exit(0) ; + } +} + +void dbad_putOne8(double var) { + fwrite(&var, sizeof(double), 1, dbad_file) ; +} + +void dbad_putOne4(float var) { + float fl2[2] ; + fl2[0] = var ; + fwrite(fl2, sizeof(float), 2, dbad_file) ; +} + +void dbad_getOne8(double *var) { + fread(var, sizeof(double), 1, dbad_file) ; +} + +void dbad_getOne4(float *var) { + float fl2[2] ; + fread(fl2, sizeof(float), 2, dbad_file) ; + *var = fl2[0] ; +} + +/* static int nbDebugDebug = 10 ; */ + +int dbad_discrepancy8(double vareps, double var, double vard, double *dd, float *diff) { + int hasDifference = 0 ; + int almostZero = -15; // Tests more strict when almostZero goes down to -Inf. + int errMaxBits = 8; // Tests more strict when errMaxBits goes up to +Inf. + int trustableMantissa = 53; // Tests more strict when trustableMantissa goes up to 52. + *dd = 0.0 ; + //TODO: test vareps and var for NaNs! + int expoTG ; + frexp(vard, &expoTG) ; + double dv = vareps-var ; +/* printf("vard:%24.16e expoTG:%i almostZero:%i dv:%24.16e - %24.16e = %24.16e\n",vard,expoTG,almostZero,vareps,var,dv) ; */ + if (dv==0.0) { + *dd = 0.0 ; + if (vard==0.0 || expoTGexpoV2?expoV1:expoV2))) ; + frexp(hv, &expoHV) ; + int discrepancySmallness = expoDV-expoHV ; + int discrepancyExactness = trustableMantissa-expoV+expoDV ; + hasDifference = (discrepancySmallness=0.0?vard:-vard) ; + double absdd = (*dd>=0.0?*dd:-*dd) ; + double maxabs = (absvard>absdd?absvard:absdd) ; + double absvardmdd = vard-*dd ; + if (absvardmdd<0.0) absvardmdd=-absvardmdd ; + *diff = (float)((absvardmdd/maxabs)*100.0) ; +/* if (nbDebugDebug && hasDifference) { */ +/* nbDebugDebug-- ; */ +/* printf("vard:%24.16e [v-eps:%24.16e v-loc:%24.16e (%i)] dd:%24.16e (%i) -> %i\n", */ +/* vard, vareps, var, expoV, dv, expoDV, expoHV) ; */ +/* printf("n2:%i 52-M0+M1-6:%i different:%i %5.1f\n", */ +/* discrepancySmallness, discrepancyExactness, hasDifference, *diff) ; */ +/* } */ + } + } + return hasDifference ; +} + +int dbad_discrepancy4(float vareps, float var, float vard, float *dd, float *diff) { + int hasDifference = 0 ; + int almostZero = -15; // Tests more strict when almostZero goes down to -Inf. + int errMaxBits = 6; // Tests more strict when errMaxBits goes up to +Inf. + int trustableMantissa = 23; // Tests more strict when trustableMantissa goes up to 52. + *dd = 0.0 ; + //TODO: test vareps and var for NaNs! + int expoTG ; + frexpf(vard, &expoTG) ; + float dv = vareps-var ; + if (dv==0.0) { + *dd = 0.0 ; + if (vard==0.0 || expoTGexpoV2?expoV1:expoV2))) ; + frexpf(hv, &expoHV) ; + int discrepancySmallness = expoDV-expoHV ; + int discrepancyExactness = trustableMantissa-expoV+expoDV ; + hasDifference = (discrepancySmallness=0.0?vard:-vard) ; + float absdd = (*dd>=0.0?*dd:-*dd) ; + float maxabs = (absvard>absdd?absvard:absdd) ; + float absvardmdd = vard-*dd ; + if (absvardmdd<0.0) absvardmdd=-absvardmdd ; + *diff = (absvardmdd/maxabs)*100.0 ; +/* if (nbDebugDebug && hasDifference) { */ +/* nbDebugDebug-- ; */ +/* printf("vard:%24.16e [v-eps:%24.16e v-loc:%24.16e (%i)] dd:%24.16e (%i) -> %i\n", */ +/* vard, vareps, var, expoV, dv, expoDV, expoHV) ; */ +/* printf("n2:%i 52-M0+M1-6:%i different:%i %5.1f\n", */ +/* discrepancySmallness, discrepancyExactness, hasDifference, *diff) ; */ +/* } */ + } + } + return hasDifference ; +} + +void dbad_display_location(char *placename) { + if (dbad_testThisProcess!=-2) { + int i ; + char* enclosproc = dbad_callStack->funcname ; + int callStackDepth = dbad_callstackdepth() ; + char indentWhite[20] = " " ; + if (callStackDepth<10) indentWhite[2*callStackDepth]='\0'; + if (dbad_testThisProcess==-1) { + printf("%s[%2i]AT:%s OF %s\n", indentWhite, callStackDepth, placename, enclosproc) ; + } else { + printf("[process %i] %s[%2i]AT:%s OF %s\n", dbad_testThisProcess, indentWhite, callStackDepth, placename, enclosproc) ; + } + } +} + +void dbad_adDebugTgt_testComplex16(char* varname, cdcmplx var, cdcmplx *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne8(var.dr) ; + dbad_putOne8(var.di) ; + } else if (dbad_phase==2) { + cdcmplx ddvar, dd ; + float diffR, diffI ; + int hasDifferenceR, hasDifferenceI ; + dbad_ddcheckvarname(varname) ; + dbad_getOne8(&(ddvar.dr)) ; + dbad_getOne8(&(ddvar.di)) ; + hasDifferenceR = dbad_discrepancy8(ddvar.dr, var.dr, vard->dr, &(dd.dr), &diffR) ; + hasDifferenceI = dbad_discrepancy8(ddvar.di, var.di, vard->di, &(dd.di), &diffI) ; + if (dbad_trace) { + printf("%s [v-eps:(%24.16e,%24.16e) v-loc:(%24.16e,%24.16e)] (%24.16e,%24.16e)(dd (%5.1f,%5.1f)%% DIFF? WITH ad)(%24.16e,%24.16e)\n", + varname,ddvar.dr,ddvar.di,var.dr,var.di,dd.dr,dd.di,diffR,diffI,vard->dr,vard->di) ; + } else if (hasDifferenceR||hasDifferenceI) { + printf("%s (%24.16e,%24.16e)(dd (%5.1f,%5.1f)%% DIFF WITH ad)(%24.16e,%24.16e)\n", + varname,dd,dd,diffR,diffI,vard->dr,vard->di) ; + } + if (conclude==-1) { + if (hasDifferenceR) { + vard->dr = dd.dr ; + printf("%s (.real) RESET:\n", varname) ; + } + if (hasDifferenceI) { + vard->di = dd.di ; + printf("%s (.imag) RESET:\n", varname) ; + } + } + if (conclude==1) { + cdcmplx varb ; + varb.dr = dbad_nextRandom(); + varb.di = dbad_nextRandom(); + dbad_condensed_dd += dd.dr*varb.dr + dd.di*varb.di; + dbad_condensed_tgt += vard->dr*varb.dr + vard->di*varb.di; + } + } + } +} + +void dbad_adDebugTgt_testReal8(char* varname, double var, double *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne8(var) ; + } else if (dbad_phase==2) { + double ddvar, dd ; + float diff ; + dbad_ddcheckvarname(varname) ; + dbad_getOne8(&ddvar) ; + int hasDifference = dbad_discrepancy8(ddvar, var, *vard, &dd, &diff) ; + if (dbad_trace) { + printf("%s [v-eps:%24.16e v-loc:%24.16e] %24.16e(dd %5.1f%% DIFF? WITH ad)%24.16e\n", + varname,ddvar,var,dd,diff,*vard) ; + } else if (hasDifference) { + printf("%s %24.16e(dd %5.1f%% DIFF WITH ad)%24.16e\n", + varname,dd,diff,*vard) ; + } + if (conclude==-1 && hasDifference) { + *vard = dd ; + printf("%s RESET:\n", varname) ; + } + if (conclude==1) { + double varb = dbad_nextRandom() ; + dbad_condensed_dd += dd*varb; + dbad_condensed_tgt += *vard*varb; + } + } + } +} + +void dbad_adDebugTgt_testReal4(char* varname, float var, float *vard, int conclude) { + if (dbad_testThisProcess!=-2) { + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + dbad_putOne4(var) ; + } else if (dbad_phase==2) { + float ddvar, dd ; + float diff ; + dbad_ddcheckvarname(varname) ; + dbad_getOne4(&ddvar) ; + int hasDifference = dbad_discrepancy4(ddvar, var, *vard, &dd, &diff) ; + if (dbad_trace) { + printf("%s [v-eps:%18.10e v-loc:%18.10e] %18.10e(dd %5.1f%% DIFF? WITH ad)%18.10e\n", + varname,ddvar,var,dd,diff,*vard) ; + } else if (hasDifference) { + printf("%s %18.10e(dd %5.1f%% DIFF WITH ad)%18.10e\n", + varname,dd,diff,*vard) ; + } + if (conclude==-1 && hasDifference) { + *vard = dd ; + printf("%s RESET:\n", varname) ; + } + if (conclude==1) { + double varb = dbad_nextRandom() ; + dbad_condensed_dd += ((double)dd)*varb; + dbad_condensed_tgt += ((double)*vard)*varb; + } + } + } +} + +void dbad_adDebugTgt_testComplex16Array(char* varname, cdcmplx* var, cdcmplx* vard, int length, int conclude) { + if (!var || !vard) return ; + if (dbad_testThisProcess!=-2) { + int i ; + if (dbad_phase==1) { + dbad_putOneVarName(varname) ; + for (i=0 ; i=5 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j(%11.4e,%11.4e)", indexbuf[j], vardbuf[j].dr, vardbuf[j].di) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; j=10 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j%11.4e", indexbuf[j], vardbuf[j]) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; j=10 || (i==length-1 && ibuf>0)) { + int j ; + if (!printedheader) { + if (conclude==-1) + printf("%s RESET:\n", varname) ; + else + printf("%s DIFFS:\n", varname) ; + printedheader = 1 ; + } + printf(" ") ; + for (j=0 ; j%11.4e", indexbuf[j], vardbuf[j]) ; + printf("\n ") ; + if (dbad_trace) { + for (j=0 ; jdr = dbad_nextRandom() ; + indepd->di = dbad_nextRandom() ; +/* dbad_scaleIndepDirection??(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) { + indep->dr = (indep->dr)+dbad_ddeps*(indepd->dr) ; + indep->di = (indep->di)+dbad_ddeps*(indepd->di) ; + } + if (dbad_trace) + printf("initComplex16 of %s: (%24.16e,%24.16e) //(%24.16e,%24.16e)\n", varname, indep->dr, indep->di, indepd->dr, indepd->di) ; +} + +void adDebugTgt_initReal8(char* varname, double *indep, double *indepd) { + *indepd = dbad_nextRandom() ; +/* dbad_scaleIndepDirection8(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + if (dbad_trace) + printf("initReal8 of %s: %24.16e //%24.16e\n", varname, *indep, *indepd) ; +} + +void adDebugTgt_initReal4(char* varname, float *indep, float *indepd) { + *indepd = (float)dbad_nextRandom() ; +/* dbad_scaleIndepDirection4(indepd, *indep) ; // One may prefer to comment this line out... */ + if (dbad_phase==1) + *indep = (*indep)+dbad_ddeps*(*indepd) ; + if (dbad_trace) + printf("initReal4 of %s: %24.16e //%24.16e\n", varname, (double)*indep, (double)*indepd) ; +} + +void adDebugTgt_initComplex16Array(char* varname, cdcmplx *indep, cdcmplx *indepd, int length) { + if (!indep || !indepd) return ; + int i ; + for (i=0 ; i scaled %i (%24.16e,%24.16e)\n", i, indepd[i].dr, indepd[i].di) ; */ + } + if (dbad_phase==1) { + for (i=0 ; i scaled %i %24.16e\n", i, indepd[i]) ; */ + } + if (dbad_phase==1) { + for (i=0 ; i=0.0?dbad_condensed_tgt:-dbad_condensed_tgt) ; + absdd = (dbad_condensed_dd>=0.0?dbad_condensed_dd:-dbad_condensed_dd) ; + maxabs = (abstgt>absdd?abstgt:absdd) ; + abserror = dbad_condensed_tgt-dbad_condensed_dd ; + if (abserror<0.0) abserror=-abserror ; + diff = (abserror*100.0)/ maxabs ; + if (dbad_testThisProcess==-1) { + printf("Condensed tangent: %24.16e (ad)%5.1f%% DIFF WITH (dd)%24.16e [seed:%7.1e]\n", + dbad_condensed_tgt,diff,dbad_condensed_dd,dbad_seed) ; + } else { + printf("[process %i] Condensed tangent: %24.16e (ad)%5.1f%% DIFF WITH (dd)%24.16e [seed:%7.1e]\n", + dbad_testThisProcess,dbad_condensed_tgt,diff,dbad_condensed_dd,dbad_seed) ; + } + } + } +} + +void adDebugTgt_display(char *placename) { + if (dbad_testThisProcess!=-2) { + if (dbad_trace) { + if (dbad_testThisProcess==-1) { + printf("display %s\n", placename) ; + } else { + printf("[process %i] display %s\n", dbad_testThisProcess, placename) ; + } + } + if (dbad_phase==2) { + dbad_display_location(placename) ; + } + } +} + +//############## DEBUG OF ADJOINT, FIRST SWEEP: ADJOINT RUN ################ + +void adDebugBwd_init(double errmax, double seed) { + dbad_mode = -1 ; + dbad_phase = 1 ; + dbad_errormax = errmax ; + dbad_seed = seed ; + dbad_topContext.funcname = "TESTED CODE\0" ; + dbad_topContext.deltadepth = 0 ; + dbad_topContext.code = 0 ; + dbad_calltracedepth = 1 ; + dbad_callStack = &dbad_topContext ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 0 (no debug), 1 (sendToTgt), or -1 (plusTraces)\n") ; + dbad_phase = 1 ; + } else if (strcmp(phase,"0")==0) { + dbad_phase = 1 ; + dbad_nocommunication = 1 ; + } else if (strcmp(phase,"1")==0) { + dbad_phase = 1 ; + } else if (strcmp(phase,"-1")==0) { + dbad_phase = 1 ; + dbad_trace = 1 ; + } else { + printf("DBAD_PHASE environment variable must be set to 0 (no debug), 1 (sendToTgt), or -1 (plusTraces)\n") ; + exit(0) ; + } + printf("Starting ADJ test, phase one (bwd), errmax=%4.1f% [seed=%7.1e]\n", errmax, seed) ; + printf("===========================================================\n") ; + if (dbad_nocommunication) { + dbad_file = NULL ; + printf("FIFO COMMUNICATION TURNED OFF !\n") ; + } else { + mkfifo("/tmp/DBAD_fifo", S_IWUSR | S_IRUSR | S_IRGRP | S_IROTH | S_IRWXU | S_IRWXO) ; + dbad_file = fopen("/tmp/DBAD_fifo", "a") ; + if (dbad_file==NULL) { + char errbuf[20] ; + strerror_r(errno, errbuf, 20) ; + printf("FIFO ERROR %i: %s OR %s\n",errno,strerror(errno),errbuf) ; + exit(0) ; + } + } + dbad_resetCondensors() ; +} + +void adDebugBwd_call(char *funcname, int deltadepth) { + dbad_pushCallFrame(funcname, deltadepth, 0) ; +} + +void adDebugBwd_exit() { + dbad_resetCondensors() ; + if (dbad_debugabove()) { + if (dbad_nocommunication) { + printf("adDebug would send (%i %s)\n", (dbad_debughere(0)?2:-2), dbad_callStack->funcname) ; + } else { + fprintf(dbad_file, "%i\n", (dbad_debughere(0)?2:-2)) ; + fprintf(dbad_file, "%s\n", dbad_callStack->funcname) ; + } + } + dbad_popCallFrame() ; +} + +int adDebugBwd_here(char* placename) { + dbad_resetCondensors() ; + return adDebugTgt_here(placename, 0) ; +} + +//############## DEBUG OF ADJOINT, SECOND SWEEP: TANGENT RUN ################ + +void adDebugFwd_init(double errmax, double seed) { + dbad_mode = -1 ; + dbad_phase = 2 ; + dbad_errormax = errmax ; + dbad_seed = seed ; + dbad_topContext.funcname = "TESTED CODE\0" ; + dbad_topContext.deltadepth = 0 ; + dbad_topContext.code = 0 ; + dbad_calltracedepth = 1 ; + dbad_callStack = &dbad_topContext ; + char* phase = getenv("DBAD_PHASE") ; + if (phase==NULL) { + printf("Please set DBAD_PHASE environment variable to 0 (no debug), 2 (readFromAdj), or -2 (plusTraces)\n") ; + dbad_phase = 2 ; + } else if (strcmp(phase,"0")==0) { + dbad_phase = 2 ; + dbad_nocommunication = 1 ; + } else if (strcmp(phase,"2")==0) { + dbad_phase = 2 ; + } else if (strcmp(phase,"-2")==0) { + dbad_phase = 2 ; + dbad_trace = 1 ; + } else { + printf("DBAD_PHASE environment variable must be set to 0 (no debug), 2 (readFromAdj), or -2 (plusTraces)\n") ; + exit(0) ; + } + dbad_nberrors = 0 ; + printf("Starting ADJ test, phase two (fwd), errmax=%4.1f% [seed=%7.1e]\n", errmax, seed) ; + printf("===========================================================\n") ; + if (dbad_nocommunication) { + dbad_file = NULL ; + printf("FIFO COMMUNICATION TURNED OFF !\n") ; + } else { + dbad_file = fopen("/tmp/DBAD_fifo", "r") ; + dbad_resetCondensors() ; + /* Convention on the meaning of labels: + -1 -> a debug point, skipped + 0 -> a debug point, traced but no associated value. + 1 -> a debug point, traced, with an associated value. + -2 -> a call, skipped + 2 -> a call, traced + */ + int ret=0 ; + int label ; + char placename[40] ; + double value ; + while (1) { + ret = fscanf(dbad_file, "%i\n", &label) ; + if (ret!=1) break ; + ret = fscanf(dbad_file, "%s\n", placename) ; + if (label==1) { + ret = fscanf(dbad_file, "%lf\n", &value) ; + dbad_pushReal8(value) ; + } + pushCharacterArray(placename, 40) ; + dbad_pushinteger4(label) ; + } + } +} + +void adDebugFwd_call(char *funcname) { + int label ; + char funcnamefrom[40] ; + char funcnamehere[40] ; + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // push the call frame but do essentially nothing! + if (dbad_debughere(0) && !(dbad_nocommunication && dbad_phase==2)) { + dbad_popinteger4(&label) ; + if (label!=2 && label!=-2) { + printf("Control mismatch, expecting a trace (-2or2) from %s bwd call exit, got %i\n",funcname,label) ; + exit(0) ; + } + popCharacterArray(funcnamefrom, 40) ; + sprintf(funcnamehere,"%s",funcname) ; + if (strcmp(funcnamefrom,funcnamehere)!=0) { + printf("Control mismatch, expecting a call to %s, got %s\n",funcnamehere,funcnamefrom) ; + exit(0) ; + } + dbad_pushCallFrame(funcname, 0, 0) ; + if (label==2) { // then the call is traced: + dbad_callStack->deltadepth += (dbad_calltracedepth-1) ; + dbad_calltracedepth = 1 ; + } else { // then label==-2: the call is not traced: + dbad_callStack->deltadepth += dbad_calltracedepth ; + dbad_calltracedepth = 0 ; + } + } else { + dbad_pushCallFrame(funcname, 0, 0) ; + } +} + +void adDebugFwd_exit() { + dbad_popCallFrame() ; +} + +int adDebugFwd_here(char* placename) { + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // never go into the derivative manipulation body, except to st the inputs at the very "start" + // and to print the result at the very "end". + if (dbad_nocommunication && dbad_phase==2) { + if (strcmp(placename,"end")==0 || strcmp(placename,"start")==0) + return 1 ; + else + return 0 ; + } else { + if (dbad_debughere(0)) { + int label ; + char placenamefrom[40] ; + char placenamehere[40] ; + dbad_resetCondensors() ; + dbad_popinteger4(&label) ; + if (label!=1 && label!=-1 && label!=0) { + printf("Control mismatch, expecting a trace (-1or0or1) from place %s, got %i\n",placename,label) ; + exit(0) ; + } + popCharacterArray(placenamefrom, 40) ; + sprintf(placenamehere,"%s",placename) ; + if (strcmp(placenamefrom,placenamehere)!=0) { + printf("Control mismatch, expecting place %s, got %s\n",placenamehere,placenamefrom) ; + exit(0) ; + } + if (label==1) { + dbad_popReal8(&dbad_nextrefsum) ; + } + return label!=-1 ; + } else { + return 0 ; + } + } +} + +//############## DEBUG OF ADJOINT, FOR BOTH SWEEPS: ################ + +void adDebugAdj_rwComplex16(cdcmplx *vard) { + double varbR = dbad_nextRandom() ; + double varbI = dbad_nextRandom() ; + dbad_condensed_adj += varbR*(vard->dr) + varbI*(vard->di) ; + vard->dr = varbR ; + vard->di = varbI ; +} + +void adDebugAdj_rwReal8(double *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; + *vard = varb ; +} + +void adDebugAdj_rwReal4(float *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; + *vard = (float)varb ; +} + +void adDebugAdj_rComplex16(cdcmplx *vard) { + double varbR = dbad_nextRandom() ; + double varbI = dbad_nextRandom() ; + dbad_condensed_adj += varbR*(vard->dr) + varbI*(vard->di) ; +} + +/** Although at present this routine doesn't modify its argument, + * we still expect a reference for consistency + * with adDebugAdj_wReal8() and also adDebugAdj_rComplex16() */ +void adDebugAdj_rReal8(double *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; +} + +/** Although at present this routine doesn't modify its argument, + * we still expect a reference for consistency + * with adDebugAdj_wReal4() and also adDebugAdj_rComplex16() */ +void adDebugAdj_rReal4(float *vard) { + double varb = dbad_nextRandom() ; + dbad_condensed_adj += varb*(*vard) ; +} + +void adDebugAdj_wComplex16(cdcmplx *vard) { + vard->dr = dbad_nextRandom() ; + vard->di = dbad_nextRandom() ; +} + +void adDebugAdj_wReal8(double *vard) { + *vard = dbad_nextRandom() ; +} + +void adDebugAdj_wReal4(float *vard) { + *vard = (float)dbad_nextRandom() ; +} + +void adDebugAdj_rwComplex16Array(cdcmplx *vard, int length) { + int i ; + if (vard) + for (i=0 ; i=0.0?dbad_refsum:-dbad_refsum) ; + double absadj = (dbad_condensed_adj>=0.0?dbad_condensed_adj:-dbad_condensed_adj) ; + double absdiff = dbad_refsum - dbad_condensed_adj ; + if (absdiff<0.0) absdiff = -absdiff ; + double reldiff = (absdiff*200.0)/(absref+absadj) ; + if (reldiff>dbad_errormax) { + printf(" %5.1f%% DIFFERENCE!! tgt:%24.16e adj:%24.16e\n", + reldiff, dbad_condensed_adj, dbad_refsum) ; + ++dbad_nberrors ; + } else if (strcmp(placename,"end")==0 && dbad_nberrors==0) { + // When we are at end and no errors were found, always show the compared values + printf(" difference is just %7.3f% between tgt:%24.16e and adj:%24.16e\n", + reldiff, dbad_condensed_adj, dbad_refsum) ; + } + if (indent==0) dbad_display_location(placename) ; + } + } + dbad_resetCondensors() ; +} + +void adDebugAdj_wDisplay(char *placename, int indent) { + if (dbad_phase==1) { + if (dbad_nocommunication) { + printf("adDebug would send (0 %s)\n", placename) ; + } else { + fprintf(dbad_file, "0\n") ; + fprintf(dbad_file, "%s\n", placename) ; + } + } else if (dbad_phase==2) { + if (indent==0) dbad_display_location(placename) ; + dbad_refsum = dbad_nextrefsum ; + } + dbad_resetCondensors() ; +} + +void adDebugAdj_skip(char *placename) { + if (dbad_phase==1 && dbad_debughere(0)) { + if (dbad_nocommunication) { + printf("adDebug would send (-1 %s)\n", placename) ; + } else { + fprintf(dbad_file, "-1\n") ; + fprintf(dbad_file, "%s\n", placename) ; + } + } +} + +void adDebugAdj_conclude() { + if (dbad_phase==2) { + if (!dbad_nocommunication) { + // In the special debug^2 case, on the 2nd phase (tangent) of the debugAdj, with DBAD_PHASE=0, + // don't claim that any testing has been done!! but show the expected condensed tangent: + printf("End of ADJ test, %i error(s) found.\n", dbad_nberrors) ; + printf("===========================================================\n") ; + } + } +} + +/* void adDebugAdj_show() { */ +/* printf("Present sum %24.16e, current seed is %f (%f)\n", dbad_condensed_adj, dbad_currentSeed, dbad_seed) ; */ +/* } */ + +//############## INTERFACE PROCEDURES CALLED FROM FORTRAN ################ + +void addebugtgt_init_(double *epsilon, double *seed, int *tested_process) { + adDebugTgt_init(*epsilon, *seed, *tested_process) ; +} + +void addebugtgt_call_(char* unitname, int *deltadepth, int *forcetraced) { + adDebugTgt_call(unitname, *deltadepth, *forcetraced) ; +} + +void addebugtgt_exit_() { + adDebugTgt_exit() ; +} + +int addebugtgt_here_(char* placename, int *forcetraced) { + return adDebugTgt_here(placename, *forcetraced) ; +} + +void addebugtgt_initcomplex16_(char* varname, cdcmplx *indep, cdcmplx *indepd) { + adDebugTgt_initComplex16(varname, indep, indepd) ; +} + +void addebugtgt_initreal8_(char* varname, double *indep, double *indepd) { + adDebugTgt_initReal8(varname, indep, indepd) ; +} + +void addebugtgt_initreal4_(char* varname, float *indep, float *indepd) { + adDebugTgt_initReal4(varname, indep, indepd) ; +} + +void addebugtgt_initcomplex16array_(char* varname, cdcmplx *indep, cdcmplx *indepd, int *length) { + adDebugTgt_initComplex16Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_initreal8array_(char* varname, double *indep, double *indepd, int *length) { + adDebugTgt_initReal8Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_initreal4array_(char* varname, float *indep, float *indepd, int *length) { + adDebugTgt_initReal4Array(varname, indep, indepd, *length) ; +} + +void addebugtgt_passivecomplex16_(char *varname, cdcmplx *var) { + adDebugTgt_passiveComplex16(varname, *var) ; +} + +void addebugtgt_passivereal8_(char *varname, double *var) { + adDebugTgt_passiveReal8(varname, *var) ; +} + +void addebugtgt_passivereal4_(char *varname, float *var) { + adDebugTgt_passiveReal4(varname, *var) ; +} + +void addebugtgt_passivecomplex16array_(char *varname, cdcmplx *var, int *length) { + adDebugTgt_passiveComplex16Array(varname, var, *length) ; +} + +void addebugtgt_passivereal8array_(char *varname, double *var, int *length) { + adDebugTgt_passiveReal8Array(varname, var, *length) ; +} + +void addebugtgt_passivereal4array_(char *varname, float *var, int *length) { + adDebugTgt_passiveReal4Array(varname, var, *length) ; +} + +void addebugtgt_testcomplex16_(char *varname, cdcmplx *var, cdcmplx *vard) { + adDebugTgt_testComplex16(varname, *var, vard) ; +} + +void addebugtgt_testreal8_(char *varname, double *var, double *vard) { + adDebugTgt_testReal8(varname, *var, vard) ; +} + +void addebugtgt_testreal4_(char *varname, float *var, float *vard) { + adDebugTgt_testReal4(varname, *var, vard) ; +} + +void addebugtgt_testcomplex16array_(char *varname, cdcmplx* var, cdcmplx* vard, int *length) { + adDebugTgt_testComplex16Array(varname, var, vard, *length) ; +} + +void addebugtgt_testreal8array_(char *varname, double* var, double* vard, int *length) { + adDebugTgt_testReal8Array(varname, var, vard, *length) ; +} + +void addebugtgt_testreal4array_(char *varname, float* var, float* vard, int *length) { + adDebugTgt_testReal4Array(varname, var, vard, *length) ; +} + +void addebugtgt_concludecomplex16_(char* varname, cdcmplx *dep, cdcmplx *depd) { + adDebugTgt_concludeComplex16(varname, *dep, depd) ; +} + +void addebugtgt_concludereal8_(char* varname, double *dep, double *depd) { + adDebugTgt_concludeReal8(varname, *dep, depd) ; +} + +void addebugtgt_concludereal4_(char* varname, float *dep, float *depd) { + adDebugTgt_concludeReal4(varname, *dep, depd) ; +} + +void addebugtgt_concludecomplex16array_(char* varname, cdcmplx *dep, cdcmplx *depd, int *length) { + adDebugTgt_concludeComplex16Array(varname, dep, depd, *length) ; +} + +void addebugtgt_concludereal8array_(char* varname, double *dep, double *depd, int *length) { + adDebugTgt_concludeReal8Array(varname, dep, depd, *length) ; +} + +void addebugtgt_concludereal4array_(char* varname, float *dep, float *depd, int *length) { + adDebugTgt_concludeReal4Array(varname, dep, depd, *length) ; +} + +void addebugtgt_conclude_() { + adDebugTgt_conclude() ; +} + +void addebugtgt_display_(char *placename) { + adDebugTgt_display(placename) ; +} + +void addebugbwd_init_(double *errmax, double *seed) { + adDebugBwd_init(*errmax, *seed) ; +} + +void addebugbwd_call_(char *funcname, int *deltadepth) { + adDebugBwd_call(funcname, *deltadepth) ; +} + +void addebugbwd_exit_() { + adDebugBwd_exit() ; +} + +int addebugbwd_here_(char* placename) { + return adDebugBwd_here(placename) ; +} + +void addebugfwd_init_(double *errmax, double *seed) { + adDebugFwd_init(*errmax, *seed) ; +} + +void addebugfwd_call_(char *funcname) { + adDebugFwd_call(funcname) ; +} + +void addebugfwd_exit_() { + adDebugFwd_exit() ; +} + +int addebugfwd_here_(char* placename) { + return adDebugFwd_here(placename) ; +} + +void addebugadj_rwreal4_(float *vard) { + adDebugAdj_rwReal4(vard) ; +} + +void addebugadj_rwreal8_(double *vard) { + adDebugAdj_rwReal8(vard) ; +} + +void addebugadj_rwcomplex16_(cdcmplx *vard) { + adDebugAdj_rwComplex16(vard) ; +} + +void addebugadj_rreal4_(float *vard) { + adDebugAdj_rReal4(vard) ; +} + +void addebugadj_rreal8_(double *vard) { + adDebugAdj_rReal8(vard) ; +} + +void addebugadj_rcomplex16_(cdcmplx *vard) { + adDebugAdj_rComplex16(vard) ; +} + +void addebugadj_wreal4_(float *vard) { + adDebugAdj_wReal4(vard) ; +} + +void addebugadj_wreal8_(double *vard) { + adDebugAdj_wReal8(vard) ; +} + +void addebugadj_wcomplex16_(cdcmplx *vard) { + adDebugAdj_wComplex16(vard) ; +} + +void addebugadj_rwreal4array_(float *vard, int *length) { + adDebugAdj_rwReal4Array(vard, *length) ; +} + +void addebugadj_rwreal8array_(double *vard, int *length) { + adDebugAdj_rwReal8Array(vard, *length) ; +} + +void addebugadj_rwcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_rwComplex16Array(vard, *length) ; +} + +void addebugadj_rreal4array_(float *vard, int *length) { + adDebugAdj_rReal4Array(vard, *length) ; +} + +void addebugadj_rreal8array_(double *vard, int *length) { + adDebugAdj_rReal8Array(vard, *length) ; +} + +void addebugadj_rcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_rComplex16Array(vard, *length) ; +} + +void addebugadj_wreal4array_(float *vard, int *length) { + adDebugAdj_wReal4Array(vard, *length) ; +} + +void addebugadj_wreal8array_(double *vard, int *length) { + adDebugAdj_wReal8Array(vard, *length) ; +} + +void addebugadj_wcomplex16array_(cdcmplx *vard, int *length) { + adDebugAdj_wComplex16Array(vard, *length) ; +} + +void addebugadj_rwdisplay_(char *placename, int *indent) { + adDebugAdj_rwDisplay(placename, *indent) ; +} + +void addebugadj_rdisplay_(char *placename, int *indent) { + adDebugAdj_rDisplay(placename, *indent) ; +} + +void addebugadj_wdisplay_(char *placename, int *indent) { + adDebugAdj_wDisplay(placename, *indent) ; +} + +void addebugadj_skip_(char* placename) { + adDebugAdj_skip(placename) ; +} + +void addebugadj_conclude_() { + adDebugAdj_conclude() ; +} diff --git a/tools/TAP_support/ADFirstAidKit/adOMP.c b/tools/TAP_support/ADFirstAidKit/adOMP.c new file mode 100755 index 0000000000..9d49dc8f2d --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adOMP.c @@ -0,0 +1,143 @@ +#include +#include +#include "omp.h" +#include "adStack.h" +#include "adOMP.h" + +/* + Support functions for AD of OpenMP-parallel programs. This is mostly to +ensure that the work is distributed among threads in the same way during the +forward and reverse sweep. This is needed to ensure correct data flow, and to +enable the threads to use only their own threadprivate push/pop stack. +*/ + +/************ ensure OpenMP-enabled stack is used ***********/ + +void assertSafeStack() { + if(!stackIsThreadSafe()) { + printf("ERROR: OpenMP-parallel derivative program uses non-OpenMP ADFirstAidKit.\n") ; + printf("Update to the latest ADFirstAidKit and compile it with openmp flags enabled.\n") ; + exit(1) ; + } +} + +/******************** static OpenMP schedule *****************/ +/* This is the "easy" option: the static schedule distributes work among threads + in a deterministic way. If the same schedule is used in the fwd and rev code, + everything is fine. There is no overhead, no recording, no storage needed to + do this, but it only works for static schedules. */ + +void getStaticSchedule(int lo, int hi, int stride, int* threadlo, int* threadhi) { +/* Static OpenMP scheduler, identical to what LLVM would use. Each thread gets + one chunk of consecutive iterations. The number of iterations per chunk is + aproximately trip_count/num_threads. If the trip count can not be evenly + divided among threads, the first few threads get one extra iteration. + As long as the number of threads stays constant, and when called by the + same thread, this subroutine will always return the same threadstart and + threadend when given the same imin,imax,istride as input. */ + +/* formula to compute the number of iterations, F90 standard sec 8.1.4.4.1 */ + int trip_count = (int)((hi-lo+stride)/stride) ; + if(trip_count < 0) trip_count = 0 ; + + int nth = omp_get_num_threads() ; + int tid = omp_get_thread_num() ; + + if(trip_count < nth) { + /* fewer iterations than threads. some threads will get one iteration, + the other threads will get nothing. */ + if(tid < trip_count) { + /* do one iteration */ + *threadlo = lo + tid * stride ; + *threadhi = *threadlo ; + } + else { + /* do nothing */ + *threadhi = 0 ; + *threadlo = *threadhi + stride ; + } + } + /* at least one iteration per thread. since the total number of iterations may + not be evenly dividable by the number of threads, there will be a few extra + iterations. the first few threads will each get one of those, which results + in some offsetts that are applied to the start and end of the chunks. */ + else { + int chunksize = trip_count / nth ; + int extras = trip_count % nth ; + int tidextras, incr ; + if(tid < extras) { + tidextras = tid ; + incr = 0 ; + } + else { + tidextras = extras ; + incr = stride ; + } + *threadlo = lo + (tid*chunksize + tidextras) * stride ; + *threadhi = *threadlo + chunksize * stride - incr ; + } + assertSafeStack() ; +} + +/****************** dynamic OpenMP schedule *****************/ +/* This is the more challenging situation: The user wants a dynamic/auto/guided + schedule, which is not deterministic. We need to record how the workload was + distributed among threads, so that the reverse sweep can replay this. + Doing this requires a few integer operations per loop iteration, and a push + of two integers (chunk start and end) for each new chunk of work that is + given to a thread. If the memory consumption of this recording is a problem, + consider using larger chunks or a static schedule. */ +static int numChunks, previousIter, thisChunkStart ; +static char isFirstIter ; +#pragma omp threadprivate(numChunks, previousIter, isFirstIter, thisChunkStart) + +void initDynamicSchedule() { + isFirstIter = 1 ; + numChunks = 0 ; + assertSafeStack() ; +} + +void recordDynamicSchedule(int counter, int stride) { + if(isFirstIter) { + thisChunkStart = counter ; + isFirstIter = 0 ; + numChunks ++ ; + } + else { + if(previousIter + stride != counter) { + pushInteger4(thisChunkStart) ; + pushInteger4(previousIter) ; + thisChunkStart = counter ; + numChunks ++ ; + } + } + previousIter = counter ; +} + +void finalizeDynamicSchedule() { + pushInteger4(thisChunkStart) ; + pushInteger4(previousIter) ; + pushInteger4(numChunks) ; +} + +/****************** INTERFACE CALLED FROM FORTRAN *******************/ + +void assertsafestack_() { + assertSafeStack() ; +} + +void getstaticschedule_(int* lo, int* hi, int* stride, int* threadlo, int* threadhi) { + getStaticSchedule(*lo, *hi, *stride, threadlo, threadhi) ; +} + +void initdynamicschedule_() { + initDynamicSchedule() ; +} + +void recorddynamicschedule_(int* counter, int* stride) { + recordDynamicSchedule(*counter, *stride) ; +} + +void finalizedynamicschedule_() { + finalizeDynamicSchedule() ; +} diff --git a/tools/TAP_support/ADFirstAidKit/adOMP.h b/tools/TAP_support/ADFirstAidKit/adOMP.h new file mode 100644 index 0000000000..1225967d34 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adOMP.h @@ -0,0 +1,10 @@ +#ifndef ADOMP_H +#define ADOMP_H +void assertSafeStack() ; + +void getStaticSchedule(int lo, int hi, int stride, int* threadlo, int* threadhi) ; + +void initDynamicSchedule() ; +void recordDynamicSchedule(int counter, int stride) ; +void finalizeDynamicSchedule() ; +#endif diff --git a/tools/TAP_support/ADFirstAidKit/adProfile.c b/tools/TAP_support/ADFirstAidKit/adProfile.c new file mode 100644 index 0000000000..bac97cd872 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adProfile.c @@ -0,0 +1,285 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +// Access to the cycle counter +#define rdtscll(val) \ + __asm__ __volatile__ ("rdtsc" : "=A" (val)) + +#define ENABLE_LINE_RECORDING 1 + +unsigned long long int mytime_() { + unsigned long long int time; + + rdtscll(time); + return time ; +} + +// Access to stacks size +extern long int bigStackSize; +extern long int smallstacksize_(); + + +// Declaration of the event list data structures +#define ARRAY_SIZE 100000 +struct event { + int kind; + char *function; + int len; + unsigned long long int time; + int stacksize; +#ifdef ENABLE_LINE_RECORDING + int line; +#endif +}; + +struct list_node { + struct event array[ARRAY_SIZE]; + struct list_node *next; +}; +static struct list_node hdcell = { .next = 0 }; +static struct list_node *tlcell = &hdcell; +static int cell_index = 0; + +// Function to traverse the list of events +static void traverse_event_list(void (*process)(struct event *ev, void *data), void *data) { + struct list_node *c = &hdcell; + + while (c) { + int max = c->next ? ARRAY_SIZE : cell_index; + int i; + for (i = 0; i < max; ++i) + process(&c->array[i], data); + c = c->next; + } +} + + +// Declaration of profiling functions +#if 1 +#define profiledebug +#else +#define profiledebug(type) \ + printf("%50s %02u %022llu %010lu %li\n", buffer, type, mytime_(), bigStackSize, smallstacksize_()); +#endif +enum { BEGIN = 1, END, ENDFWD, BEGINSNAPSHOT, ENDSNAPSHOT, ENDORIG }; + +int init = 0; +unsigned long long int beginning_of_time = 0; +inline static void profile_real(char *function, int flen, int kind) { + static struct list_node *new = 0; + if (cell_index >= ARRAY_SIZE) { + new = (struct list_node*)calloc(1, sizeof(struct list_node)); + tlcell->next = new; + tlcell = new; + new->next = 0; + cell_index = 0; + } + static unsigned long long int time; + time = mytime_(); + if (init == 0) + beginning_of_time = time, init = 1; + tlcell->array[cell_index].kind = kind; + tlcell->array[cell_index].function = function; + tlcell->array[cell_index].len = flen; + tlcell->array[cell_index].time = time - beginning_of_time; + tlcell->array[cell_index].stacksize = bigStackSize + smallstacksize_(); + #if 0 + printf("%016llu %09lu %02hhu ", time-beginning_of_time, bigStackSize + smallstacksize_(), kind); + fwrite(function, 1, flen, stdout); + printf("\n"); + #endif + cell_index++; +} + +#define declare_profile(suffix,type) \ +void profile##suffix##_(char *function, int flen) {\ + profile_real(function, flen, type);\ +} + +declare_profile(begin,BEGIN) +declare_profile(end,END) +declare_profile(endfwd,ENDFWD) +declare_profile(beginsnapshot,BEGINSNAPSHOT) +declare_profile(endsnapshot,ENDSNAPSHOT) +declare_profile(endorig,ENDORIG) + +#ifdef ENABLE_LINE_RECORDING +static int current_line_number = 0; + +void profileline_(int *line) { + current_line_number = *line; +} +#endif + +// Hashtable data structure +#define hashtbl_size 4093 +struct hash_cell { + char *function; + int len; +} hashtbl[hashtbl_size]; +// Count of the used element in the hashtable +int hashtbl_count; + +// Simple hash function +static inline unsigned int hash(unsigned int u) { + return ((u % hashtbl_size) * 1024 ) % hashtbl_size; +} + +// Simple hash function on strings +static inline unsigned int hash_string(char *string, int flen) { + unsigned int ret = 0x55555555; + while (flen--) + ret *= ((unsigned char)*string++ * hashtbl_size); + return hash(ret); +} + +// Min macro +#define min(a,b) (a < b ? a : b) + +// Get the id of a string address, allocate a bucket if new +static int get(char *function, int flen) { + int h = hash_string(function, flen); + while (hashtbl[h].function) { + if (strncmp(hashtbl[h].function, function, min(flen, hashtbl[h].len)) == 0) + break; + h = hash(h); + } + hashtbl[h].function = function; + hashtbl[h].len = flen; + return h; +} + +// Functions to serialize integers and known length strings +static inline void fwrite_int(FILE *f, int i) { + fwrite(&i, sizeof(int), 1, f); +} +static inline void fwrite_llint(FILE *f, unsigned long long int i) { + fwrite(&i, sizeof(unsigned long long int), 1, f); +} +static inline void fwrite_string(FILE *f, char *str, int len) { + fwrite_int(f, len); + fwrite(str, (unsigned int) len, 1, f); +} + +// Function to build the hashtable of function names +static void add_event_to_hashtable(struct event *ev, void *data); +static void build_hashtable() { + + // Initialize the hashtable + memset(hashtbl, 0, sizeof(struct hash_cell)*hashtbl_size); + /** Fill the hashtbl */ + traverse_event_list(add_event_to_hashtable, 0); + /** Compute the size of the hashtbl */ + hashtbl_count = 0; + int i; + for (i=0; i < hashtbl_size; ++i) + if (hashtbl[i].function) + hashtbl_count++; +} +static void add_event_to_hashtable(struct event *ev, void *data) { + int h = get(ev->function, ev->len); +} + + +// Serialize event list into a file named tapenade.prof +struct print_args { + FILE *prof; + struct event **stack; + int *stack_counter; +}; +static void print_an_event(struct event *ev, void *data); +void printprofile_() { + int i = 0; + FILE *prof = fopen("tapenade.prof", "w"); + if (!prof) { + perror("Can't open tapenade.prof"); + exit(1); + } + // Compress the output; + // Generate a hashtable of the functions name + // use it to make a map from function name + // to numeric id + build_hashtable(); + + // Position at the beginning + fseek(prof, 0, SEEK_SET); + + // Dump the hash table + fwrite_int(prof, hashtbl_count); + for (i=0; i < hashtbl_size; ++i) + if (hashtbl[i].function) { + fwrite_int(prof, i); + char *string = hashtbl[i].function; + int string_length = hashtbl[i].len; + fwrite_string(prof, string, string_length); + } + + // Dump the events + struct list_node *c = &hdcell; + struct event *stack[1000]; + int stack_counter = -1; + struct print_args args = { + .prof = prof, + .stack = stack, + .stack_counter = &stack_counter + }; + traverse_event_list(print_an_event, &args); + + // For program that aborts too abruptly ( with STOP ) + // Use the return stack image to recreate EXIT events + for (i=stack_counter; i>-1;i--) { + struct event *cur = stack[i]; + int h = get(cur->function, cur->len); + fwrite_int(prof, h); + fwrite_int(prof, 2); // Explicit ending + fwrite_llint(prof, cur->time); + fwrite_int(prof, cur->stacksize); + } + fclose(prof); +} +void halt_(); +// Utility function for printprofile +static void print_an_event(struct event *ev, void *data) { + struct print_args *args = (struct print_args*)data; + static unsigned long long int last_time = 0; + + int h = get(ev->function, ev->len); + // Keep trace of the return stack depth and values + switch (ev->kind) { + case 1: + *(args->stack_counter) += 1; + args->stack[*(args->stack_counter)] = ev; + break; + case 2: + *(args->stack_counter) -= 1; + break; + } +//DEBUG printf("Time: %llu\n", ev->time - begin_time); + if (last_time && ev->time <= last_time) { + printf("Erreur time <= last_time: %llu <= %llu\n", time, last_time); + halt_(); + } + fwrite_int(args->prof, h); + fwrite_int(args->prof, ev->kind); + fwrite_llint(args->prof, ev->time); + fwrite_int(args->prof, ev->stacksize); + last_time = ev->time; +} + +#include +void halt_() { + kill(getpid(), SIGTRAP); +} diff --git a/tools/TAP_support/ADFirstAidKit/adProfile.h b/tools/TAP_support/ADFirstAidKit/adProfile.h new file mode 100644 index 0000000000..180231236f --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adProfile.h @@ -0,0 +1,5 @@ +#ifndef ADPROFILE_LOADED +#define ADPROFILE_LOADED 1 + + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/adStack.c b/tools/TAP_support/ADFirstAidKit/adStack.c new file mode 100644 index 0000000000..f9a9e5155b --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adStack.c @@ -0,0 +1,1312 @@ +#include +#include +#include +#include "adStack.h" + +#include "adComplex.h" + +// Set to 0 to hide trace. +static int traceOn = 0 ; +static int freeemptyblocks = 1 ; + +char* pushBlock() ; +char* popBlock() ; + +/**************** block sizes for all data types *************/ + +/* The size of a BLOCK in bytes. */ +#define BLOCK_SIZE 65536 +// #define BLOCK_SIZE 17 // A very small BLOCK_SIZE allows for stronger testing! + +/**************** data structures for stack ******************/ + +/* The main stack is a double-chain of DoubleChainedBlock objects. + * Each DoubleChainedBlock holds an array[BLOCK_SIZE] of char. */ +typedef struct _DoubleChainedBlock{ + unsigned int rank ; + struct _DoubleChainedBlock *prev ; + struct _DoubleChainedBlock *next ; + char contents[BLOCK_SIZE] ; +} DoubleChainedBlock ; + +/** Structure keeping the needed info for ONE repetition level. + * As we can have "nested" repetition levels, these structures can be stacked. */ +typedef struct _RepetitionLevel { + int hasBackPop ; + int active ; + DoubleChainedBlock* backPopBlock ; + int backPop ; + DoubleChainedBlock* resumePointBlock ; + int resumePoint ; + DoubleChainedBlock* freePushBlock ; + int freePush ; + unsigned int storedadbitbuf ; + int storedadbitibuf ; + struct _RepetitionLevel *previous ; +} RepetitionLevel ; + +/* A block and an integer to keep the current top in the block. When the block + is full, it is added to the double-chain list and a fresh block is used for + pushing. During popping, empty blocks are replenished with data from the + double-chain list. */ +static int tappos = BLOCK_SIZE ; +static char* tapblock = NULL ; +static DoubleChainedBlock *curStack = NULL ; + +/** The current stack of repetition levels. Initially empty */ +RepetitionLevel *topRepetitionPoint = NULL ; + +/* Pushing single bits is different from the rest: we collect + 32 bits in the integer below, before pushing that to the stack. */ +static unsigned int adbitbuf = 0 ; +static int adbitibuf = 0 ; + +/** Accumulates the number of bytes pushed and popped */ +static unsigned long long int pushPopTraffic = 0 ; + +/** Remembers the maximum number of stack Blocks used */ +static long int maxBlocks = 0 ; + +//[llh] Don't know how to manage pushPopTraffic and maxBlocks in the OpenMP case ? + +/* All data structures must be threadprivate, so that each OpenMP thread has + its own stack. If the stack is compiled with OpenMP support and then used + in a program with no OpenMP parallel regions, the stack will work as + expected without using any extra resources. */ +#pragma omp threadprivate(tappos, tapblock, curStack, adbitbuf, adbitibuf, topRepetitionPoint) + +/***************** repeated access mechanism *************/ + +// Possible improvements: +// - replace tappos with tapblock+tappos, saving a few "+" ? +// - find a faster currentLocationStrictBelowFreePush and currentLocationEqualsFreePush + +// Notice: Algorithm for "nested" repetition level seems wrong (should be corrected) +// when the deeper repetition level is started after new pushes. + +// We call "current location" the pair of +// (DoubleChainedBlock *) curStack // the current top stack block. +// (int) tappos // the offset of the current top in the current top stack block. + +void setBackPopToCurrentLocation(RepetitionLevel *repetitionLevel) { + repetitionLevel->hasBackPop = 1 ; + repetitionLevel->backPopBlock = curStack ; + repetitionLevel->backPop = tappos ; +} + +void setCurrentLocationToBackPop(RepetitionLevel *repetitionLevel) { + curStack = repetitionLevel->backPopBlock ; + tapblock = curStack->contents ; + tappos = repetitionLevel->backPop ; +} + +void setResumePointToCurrentLocation(RepetitionLevel *repetitionLevel) { + repetitionLevel->resumePointBlock = curStack ; + repetitionLevel->resumePoint = tappos ; +} + +void setCurrentLocationToResumePoint(RepetitionLevel *repetitionLevel) { + curStack = repetitionLevel->resumePointBlock ; + tapblock = curStack->contents ; + tappos = repetitionLevel->resumePoint ; +} + +void setFreePushToCurrentLocation(RepetitionLevel *repetitionLevel) { + repetitionLevel->freePushBlock = curStack ; + repetitionLevel->freePush = tappos ; +} + +void setCurrentLocationToFreePush(RepetitionLevel *repetitionLevel) { + curStack = repetitionLevel->freePushBlock ; + tapblock = curStack->contents ; + tappos = repetitionLevel->freePush ; +} + +//TODO: try inline this function for efficiency: +int currentLocationStrictBelowFreePush(RepetitionLevel *repetitionLevel) { + //[llh] I'd prefer to test directly on curStack->rank and tappos directly, + // but it's hard because N;BLOCK_SIZE <=> N+1;0 and both happen due to initial NULL curStack... + long int curL = (curStack->rank -1)*BLOCK_SIZE + tappos ; + long int fpL = (repetitionLevel->freePushBlock->rank -1)*BLOCK_SIZE + repetitionLevel->freePush ; + return (curLrank and tappos directly, + // but it's hard because N;BLOCK_SIZE <=> N+1;0 and both happen due to initial NULL curStack... + long int curL = (curStack->rank -1)*BLOCK_SIZE + tappos ; + long int fpL = (repetitionLevel->freePushBlock->rank -1)*BLOCK_SIZE + repetitionLevel->freePush ; + return (curL==fpL) ; +} + +void showLocation(DoubleChainedBlock *locBlock, int loc) { + printf("%1i.%05i", (locBlock ? locBlock->rank : 0), loc) ; +} + +void showRepetitionLevels() { + RepetitionLevel *repetitionPoint = topRepetitionPoint ; + while (repetitionPoint) { + printf(" REPETITION LEVEL ACTIVE:%i BP?%i", repetitionPoint->active, repetitionPoint->hasBackPop) ; + printf(" BP:") ; showLocation(repetitionPoint->backPopBlock, repetitionPoint->backPop) ; + printf(" RP:") ; showLocation(repetitionPoint->resumePointBlock, repetitionPoint->resumePoint) ; + printf(" FP:") ; showLocation(repetitionPoint->freePushBlock, repetitionPoint->freePush) ; + printf("\n") ; + repetitionPoint = repetitionPoint->previous ; + if (repetitionPoint) printf(" ...in") ; + } +} + +int locstrb_() {return (curStack ? curStack->rank : 0) ;} +int locstro_() {return tappos;} + +/** If we are in a protected, read-only section, + * memorize current location as "backPop" and go to the "freePush" location */ +void checkPushInReadOnly() { + RepetitionLevel *topActive = topRepetitionPoint ; + while (topActive && !topActive->active) { + topActive = topActive->previous ; + } + if (topActive && currentLocationStrictBelowFreePush(topActive)) { + setBackPopToCurrentLocation(topActive) ; + setCurrentLocationToFreePush(topActive) ; + if (traceOn) { + printf("BEFORE PUSH AT ") ; + showLocation(topRepetitionPoint->backPopBlock, topRepetitionPoint->backPop) ; + printf(" WITH REPETITION LEVELS:\n") ; + showRepetitionLevels() ; + printf(" MOVE TO FREE PUSH LOCATION ") ; + showLocation(topRepetitionPoint->freePushBlock, topRepetitionPoint->freePush) ; + printf("\n") ; + } + } +} + +/** If current location is some "freePush" location, + * go back to its "backPop" location, which is in a protected, read-only section */ +void checkPopToReadOnly() { + RepetitionLevel *repetitionPoint = topRepetitionPoint ; + int moves = (repetitionPoint->hasBackPop && currentLocationEqualsFreePush(repetitionPoint)) ; + if (traceOn && moves) { + printf("AFTER POP, LOCATION WAS ") ; + showLocation(curStack, tappos) ; + printf(" WITH REPETITION LEVELS:\n") ; + showRepetitionLevels() ; + } + int canEraseInactive = 1 ; + int canRemoveBackPop = 1 ; + do { + RepetitionLevel *oldCell = repetitionPoint ; + if (oldCell->hasBackPop && oldCell->active && currentLocationEqualsFreePush(oldCell)) { + setCurrentLocationToBackPop(oldCell) ; + if (canRemoveBackPop) oldCell->hasBackPop = 0 ; + } + repetitionPoint = oldCell->previous ; + if (!oldCell->active && canEraseInactive) { + free(oldCell) ; + topRepetitionPoint = repetitionPoint ; + } else { + canEraseInactive = 0 ; + canRemoveBackPop = 0 ; + } + } while (repetitionPoint) ; + if (traceOn && moves) { + printf(" MOVED TO BACK POP LOCATION:") ; + showLocation(curStack, tappos) ; + printf("\n") ; + } +} + +/** From now on, and until the matching closing adStack_endRepeat(), + * the current contents of the push-pop stack are preserved: + * Even if they are popped, any subsequent adStack_resetRepeat() + * will reset the push-pop stack to its current contents of now. */ +void adStack_startRepeat() { + if (traceOn) { + printf("BEFORE START REPEAT AT ") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } + // Create a new repetition level and push it onto topRepetitionPoint + RepetitionLevel *newRepetitionLevel = (RepetitionLevel *)malloc(sizeof(RepetitionLevel)) ; + newRepetitionLevel->previous = topRepetitionPoint ; + newRepetitionLevel->hasBackPop = 0 ; + newRepetitionLevel->active = 1 ; + // Copy the bits buffer: + newRepetitionLevel->storedadbitbuf = adbitbuf ; + newRepetitionLevel->storedadbitibuf = adbitibuf ; + // In the very weird case where current stack is empty, make it explicit: + if (curStack==NULL) { + tapblock = pushBlock() ; + tappos = 0 ; + } + // Store current location as the "resumePoint" location: + setResumePointToCurrentLocation(newRepetitionLevel) ; + // Set the "freePush" location to current location OR to + // the "freePush" of the "enclosing" repetition level, + // (if there is one and it is higher) + if (topRepetitionPoint && currentLocationStrictBelowFreePush(topRepetitionPoint)) { + newRepetitionLevel->freePushBlock = topRepetitionPoint->freePushBlock ; + newRepetitionLevel->freePush = topRepetitionPoint->freePush ; + } else { + setFreePushToCurrentLocation(newRepetitionLevel) ; + } + // Make this new repetition level the current repetition level: + topRepetitionPoint = newRepetitionLevel ; + if (traceOn) { + printf(">AFTER START REPEAT AT:") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } +} + +/** Reset the push-pop stack contents to its contents at + * the time of the latest adStack_startRepeat() that has not been + * closed by a subsequent adStack_endRepeat() */ +void adStack_resetRepeat() { + if (traceOn) { + printf("BEFORE RESET REPEAT AT ") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } + // Remove (pop) all passive deeper repetition levels: + while (topRepetitionPoint && !topRepetitionPoint->active) { + RepetitionLevel *oldTop = topRepetitionPoint ; + topRepetitionPoint = topRepetitionPoint->previous ; + free(oldTop) ; + } + // Reset current location to "resumePoint" location: + setCurrentLocationToResumePoint(topRepetitionPoint) ; + // Reset the bits buffer: + adbitbuf = topRepetitionPoint->storedadbitbuf ; + adbitibuf = topRepetitionPoint->storedadbitibuf ; + if (traceOn) { + printf(">AFTER RESET REPEAT AT ") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } +} + +/** Close (i.e. remove) the repetition level created by the latest adStack_startRepeat(). */ +void adStack_endRepeat() { + if (traceOn) { + printf("BEFORE END REPEAT AT ") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } + // Set to inactive the topmost active repetition level: + RepetitionLevel *topActive = topRepetitionPoint ; + while (!topActive->active) { + topActive = topActive->previous ; + } + topActive->active = 0 ; + // current location may have moved back ; check if we must move further back: + if (topRepetitionPoint) checkPopToReadOnly() ; + if (traceOn) { + printf(">AFTER END REPEAT AT ") ; + showLocation(curStack, tappos) ; + printf("\n") ; + showRepetitionLevels() ; + } +} + +/***************** double-linked list management *************/ + +/** add a data block to the double-linked list */ +char* pushBlock() { + if (curStack && curStack->next) { + curStack = curStack->next ; + } else { + DoubleChainedBlock *newStack = (DoubleChainedBlock*)malloc(sizeof(DoubleChainedBlock)) ; + if (newStack == NULL) { + /* We ran out of memory, print an error message and give up. */ + printf("Out of memory in AD Stack.\n") ; + exit(0) ; + } + if(curStack != NULL) { + curStack->next = newStack ; + newStack->rank = curStack->rank + 1 ; + } else { + newStack->rank = 1 ; + } + + newStack->prev = curStack ; + newStack->next = NULL ; + curStack = newStack ; + } +#ifdef _ADSTACKPROFILE + if (curStack->rank > maxBlocks) maxBlocks = curStack->rank ; +#endif + return curStack->contents ; +} + +/** retrieve a data block from the double-linked list */ +char* popBlock() { + DoubleChainedBlock *oldTopStack = curStack ; + curStack = curStack->prev ; + if (freeemptyblocks) { + // Not necessary. Only needed if we want to free when the stack goes down: + // We must not free if we are in a repetition level and below its freePush point. + if (!(topRepetitionPoint && oldTopStack->rank <= topRepetitionPoint->freePushBlock->rank)) { + free(oldTopStack) ; + if (curStack) curStack->next = NULL ; + } + // end "Not necessary" + } + return (curStack ? curStack->contents : NULL) ; +} + +/********************* push/pop arrays ***********************/ + +/* pushNArray/popNArray are used not only to store arrays of various data + types. These functions are also the only ones that interact with the dynamic + memory management, e.g. requesting new blocks. If one of the scalar push/pop + functions (e.g. pushReal4) encounters the end of a block, it will ask + pushNArray to do all the work, i.e. start a new block and push the real4 + value to it. */ +void pushNArray(char *x, int nbChars) { + do { + int wsize = tappos+nbChars 0) { + memcpy(tapblock+tappos,x,wsize) ; + nbChars -= wsize ; + x += wsize ; + tappos += wsize ; + } + else if (nbChars > 0) { + tapblock = pushBlock() ; + tappos = 0 ; + } + } while(nbChars > 0) ; //=> lazy push: if finishes at the top of block contents, does not push a new block. +} + +void popNArray(char *x, int nbChars) { + x += nbChars ; + do { + int wsize = (nbChars 0) { + memcpy(x-wsize,tapblock+tappos-wsize,wsize) ; + nbChars -= wsize ; + x -= wsize ; + tappos -= wsize ; + } + else if (nbChars > 0) { + tapblock = popBlock() ; + tappos = BLOCK_SIZE ; + } + } while(nbChars > 0) ; //=> lazy pop: if finishes at the bottom of block contents, does not pop block. +} + +void pushInteger4Array(int *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*4)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*4) ; +#endif +} + +void popInteger4Array(int *x, int n) { + popNArray((char *)x,(int)(n*4)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*4) ; +#endif +} + +void pushInteger8Array(long *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*8)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void popInteger8Array(long *x, int n) { + popNArray((char *)x,(int)(n*8)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void pushReal4Array(float *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*4)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*4) ; +#endif +} + +void popReal4Array(float *x, int n) { + popNArray((char *)x,(int)(n*4)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*4) ; +#endif +} + +void pushReal8Array(double *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*8)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void popReal8Array(double *x, int n) { + popNArray((char *)x,(int)(n*8)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void pushComplex8Array(ccmplx *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*8)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void popComplex8Array(ccmplx *x, int n) { + popNArray((char *)x,(int)(n*8)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*8) ; +#endif +} + +void pushComplex16Array(double complex *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray((char *)x,(int)(n*16)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*16) ; +#endif +} + +void popComplex16Array(double complex *x, int n) { + popNArray((char *)x,(int)(n*16)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)(n*16) ; +#endif +} + +void pushCharacterArray(char *x, int n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray(x,(int)n) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)n ; +#endif +} + +void popCharacterArray(char *x, int n) { + popNArray(x,(int)n) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += (int)n ; +#endif +} + +/***************** scalar push/pop functions *****************/ + +void pushCharacter(char val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 1 > BLOCK_SIZE) { + pushNArray((char*)&val, 1) ; + } + else { + *(char*)(tapblock+tappos) = val; + tappos = tappos + 1 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 1 ; +#endif +} + +void popCharacter(char * val) { + if(tappos - 1 < 0) { + popNArray((char*)val, 1) ; + } + else { + tappos = tappos - 1 ; + *val = *(char*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 1 ; +#endif +} + +void pushReal4(float val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 4 > BLOCK_SIZE) { + pushNArray((char*)&val, 4) ; + } + else { + *(float*)(tapblock+tappos) = val; + tappos = tappos + 4 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void popReal4(float * val) { + if(tappos - 4 < 0) { + popNArray((char*)val, 4) ; + } + else { + tappos = tappos - 4 ; + *val = *(float*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void pushReal8(double val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 8 > BLOCK_SIZE) { + pushNArray((char*)&val, 8) ; + } + else { + *(double*)(tapblock+tappos) = val; + tappos = tappos + 8 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void popReal8(double * val) { + if(tappos - 8 < 0) { + popNArray((char*)val, 8) ; + } + else { + tappos = tappos - 8 ; + *val = *(double*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void pushInteger4(int val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 4 > BLOCK_SIZE) { + pushNArray((char*)&val, 4) ; + } + else { + *(int*)(tapblock+tappos) = val; + tappos = tappos + 4 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void popInteger4(int * val) { + if(tappos - 4 < 0) { + popNArray((char*)val, 4) ; + } + else { + tappos = tappos - 4 ; + *val = *(int*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void pushInteger8(long val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 8 > BLOCK_SIZE) { + pushNArray((char*)&val, 8) ; + } + else { + *(long*)(tapblock+tappos) = val; + tappos = tappos + 8 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void popInteger8(long * val) { + if(tappos - 8 < 0) { + popNArray((char*)val, 8) ; + } + else { + tappos = tappos - 8 ; + *val = *(long*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void pushComplex8(ccmplx val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 8 > BLOCK_SIZE) { + pushNArray((char*)&val, 8) ; + } + else { + *(ccmplx*)(tapblock+tappos) = val; + tappos = tappos + 8 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void popComplex8(ccmplx * val) { + if(tappos - 8 < 0) { + popNArray((char*)val, 8) ; + } + else { + tappos = tappos - 8 ; + *val = *(ccmplx*)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void pushComplex16(double complex val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 16 > BLOCK_SIZE) { + pushNArray((char*)&val, 16) ; + } + else { + *(double complex *)(tapblock+tappos) = val; + tappos = tappos + 16 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 16 ; +#endif +} + +void popComplex16(double complex *val) { + if(tappos - 16 < 0) { + popNArray((char*)val, 16) ; + } + else { + tappos = tappos - 16 ; + *val = *(double complex *)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 16 ; +#endif +} + +void pushPointer4(void * val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 4 > BLOCK_SIZE) { + pushNArray((char*)&val, 4) ; + } + else { + *(void**)(tapblock+tappos) = val; + tappos = tappos + 4 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void popPointer4(void ** val) { + if(tappos - 4 < 0) { + popNArray((char*)val, 4) ; + } + else { + tappos = tappos - 4 ; + *val = *(void**)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif +} + +void pushPointer8(void * val) { + if (topRepetitionPoint) checkPushInReadOnly() ; + if(tappos + 8 > BLOCK_SIZE) { + pushNArray((char*)&val, 8) ; + } + else { + *(void**)(tapblock+tappos) = val; + tappos = tappos + 8 ; + } +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +void popPointer8(void ** val) { + if(tappos - 8 < 0) { + popNArray((char*)val, 8) ; + } + else { + tappos = tappos - 8 ; + *val = *(void**)(tapblock+tappos); + } + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 8 ; +#endif +} + +/******************* bit (hidden primitives) ***************/ + +void pushBit(int x) { + adbitbuf<<=1 ; + if (x) ++adbitbuf ; + if (adbitibuf>=31) { + pushNArray((char *)&adbitbuf, 4) ; + adbitbuf = 0 ; + adbitibuf = 0 ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif + } else + ++adbitibuf ; +} + +int popBit() { + if (adbitibuf<=0) { + popNArray((char *)&adbitbuf, 4) ; + adbitibuf = 31 ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += 4 ; +#endif + } else + --adbitibuf ; + int result = adbitbuf%2 ; + adbitbuf>>=1 ; + return result ; +} + +/*************************** boolean *************************/ + +void pushBoolean(int x) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(x) ; +} + +//[llh] I have a bug here: the boolean returned to Fortran is bizarre! +void popBoolean(int *x) { + *x = popBit() ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +/************************* control ***********************/ + +void pushControl1b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc) ; +} + +void popControl1b(int *cc) { + *cc = popBit() ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl2b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl2b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl3b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl3b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl4b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl4b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl5b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl5b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl6b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl6b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl7b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl7b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +void pushControl8b(int cc) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc%2) ; + cc>>=1 ; + pushBit(cc) ; +} + +void popControl8b(int *cc) { + *cc = (popBit()?2:0) ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + (*cc) <<= 1 ; + if (popBit()) (*cc)++ ; + if (topRepetitionPoint) checkPopToReadOnly() ; +} + +/****************** Profiling and debugging *******************/ + +void adStack_showPeakSize() { + printf("Peak stack size (%1li blocks): %1llu bytes\n", + maxBlocks, maxBlocks*((long long int)BLOCK_SIZE)) ; +} + +void adStack_showTotalTraffic() { + printf("Total push/pop traffic %1llu bytes\n", pushPopTraffic) ; +} + +void adStack_showStackSize(int label) { + printf(" %i--> <",label) ; + showLocation(curStack, tappos) ; + printf(">") ; +} + +void adStack_showStack(char *locationName) { + if (!curStack || (tappos==0 && !curStack->prev)) { + printf ("Stack at %s is empty\n", locationName) ; + } else { + printf ("Stack top at %s is %1i.%05i :\n", locationName, curStack->rank, tappos) ; + int bytesToShow = 20 ; + int blocksToShow = 3 ; + DoubleChainedBlock *inStack = curStack ; + int inPos = tappos ; + while (blocksToShow>0 && inStack) { + printf(" Block %d:", inStack->rank) ; + while (bytesToShow>0 && inPos>0) { + printf(" %02x", (unsigned char)inStack->contents[--inPos]) ; + --bytesToShow ; + } + if (inPos>0) + printf(" ...<%d more bytes>...", inPos) ; + printf(" |\n") ; + --blocksToShow ; + inStack = inStack->prev ; + inPos = BLOCK_SIZE ; + } + if (inStack) + printf(" %d more blocks below\n", inStack->rank) ; + } + if (adbitibuf==0) { + printf("Bit buffer is empty\n") ; + } else { + printf("Bit buffer:%1i in %08x\n", adbitibuf, adbitbuf) ; + } + if (topRepetitionPoint) { + printf("Repetition levels:\n ") ; + showRepetitionLevels() ; + } + printf("----------------\n") ; +} + +/******* query if this stack was compiled with OpenMP ******/ +int stackIsThreadSafe() { + #ifdef _OPENMP + return 1 ; + #else + return 0 ; + #endif +} + +/****************** INTERFACE CALLED FROM FORTRAN *******************/ + +void adstack_startrepeat_() { + adStack_startRepeat() ; +} + +void adstack_resetrepeat_() { + adStack_resetRepeat() ; +} + +void adstack_endrepeat_() { + adStack_endRepeat() ; +} + +void pushinteger4array_(int *ii, int *ll) { + pushInteger4Array(ii, *ll) ; +} + +void popinteger4array_(int *ii, int *ll) { + popInteger4Array(ii, *ll) ; +} + +void pushinteger8array_(long *ii, int *ll) { + pushInteger8Array(ii, *ll) ; +} + +void popinteger8array_(long *ii, int *ll) { + popInteger8Array(ii, *ll) ; +} + +void pushreal4array_(float *ii, int *ll) { + pushReal4Array(ii, *ll) ; +} + +void popreal4array_(float *ii, int *ll) { + popReal4Array(ii, *ll) ; +} + +void pushreal8array_(double *ii, int *ll) { + pushReal8Array(ii, *ll) ; +} + +void popreal8array_(double *ii, int *ll) { + popReal8Array(ii, *ll) ; +} + +void pushcomplex8array_(ccmplx *ii, int *ll) { + pushComplex8Array(ii, *ll) ; +} + +void popcomplex8array_(ccmplx *ii, int *ll) { + popComplex8Array(ii, *ll) ; +} + +void pushcomplex16array_(cdcmplx *ii, int *ll) { + pushComplex16Array((double complex *)ii, *ll) ; +} + +void popcomplex16array_(cdcmplx *ii, int *ll) { + popComplex16Array((double complex *)ii, *ll) ; +} + +void pushcharacterarray_(char *ii, int *ll) { + pushCharacterArray(ii, *ll) ; +} + +void popcharacterarray_(char *ii, int *ll) { + popCharacterArray(ii, *ll) ; +} + +void pushbooleanarray_(char *x, int *n) { + if (topRepetitionPoint) checkPushInReadOnly() ; + pushNArray(x,(*n*4)) ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += *n*4 ; +#endif +} + +void popbooleanarray_(char *x, int *n) { + popNArray(x,(*n*4)) ; + if (topRepetitionPoint) checkPopToReadOnly() ; +#ifdef _ADSTACKPROFILE + pushPopTraffic += *n*4 ; +#endif +} + +void pushcharacter_(char* val) { + pushCharacter(*val) ; +} + +void popcharacter_(char* val) { + popCharacter(val) ; +} + +void pushreal4_(float* val) { + pushReal4(*val) ; +} + +void popreal4_(float* val) { + popReal4(val) ; +} + +void pushreal8_(double* val) { + pushReal8(*val) ; +} + +void popreal8_(double* val) { + popReal8(val) ; +} + +void pushinteger4_(int* val) { + pushInteger4(*val) ; +} + +void popinteger4_(int* val) { + popInteger4(val) ; +} + +void pushinteger8_(long* val) { + pushInteger8(*val) ; +} + +void popinteger8_(long* val) { + popInteger8(val) ; +} + +void pushcomplex8_(ccmplx* val) { + pushComplex8(*val) ; +} + +void popcomplex8_(ccmplx* val) { + popComplex8(val) ; +} + +void pushcomplex16_(cdcmplx *val) { + pushComplex16(*((double complex *)val)) ; +} + +void popcomplex16_(cdcmplx* val) { + popComplex16((double complex *)val) ; +} + +void pushpointer4_(void** val) { + pushPointer4(*val) ; +} + +void poppointer4_(void** val) { + popPointer4(val) ; +} + +void pushpointer8_(void** val) { + pushPointer8(*val) ; +} + +void poppointer8_(void** val) { + popPointer8(val) ; +} + +void pushcontrol1b_(int* cc) { + pushControl1b(*cc) ; +} + +void popcontrol1b_(int *cc) { + popControl1b(cc) ; +} + +void pushcontrol2b_(int *cc) { + pushControl2b(*cc) ; +} + +void popcontrol2b_(int *cc) { + popControl2b(cc) ; +} + +void pushcontrol3b_(int *cc) { + pushControl3b(*cc) ; +} + +void popcontrol3b_(int *cc) { + popControl3b(cc) ; +} + +void pushcontrol4b_(int *cc) { + pushControl4b(*cc) ; +} + +void popcontrol4b_(int *cc) { + popControl4b(cc) ; +} + +void pushcontrol5b_(int *cc) { + pushControl5b(*cc) ; +} + +void popcontrol5b_(int *cc) { + popControl5b(cc) ; +} + +void pushcontrol6b_(int *cc) { + pushControl6b(*cc) ; +} + +void popcontrol6b_(int *cc) { + popControl6b(cc) ; +} + +void pushcontrol7b_(int *cc) { + pushControl7b(*cc) ; +} + +void popcontrol7b_(int *cc) { + popControl7b(cc) ; +} + +void pushcontrol8b_(int *cc) { + pushControl8b(*cc) ; +} + +void popcontrol8b_(int *cc) { + popControl8b(cc) ; +} + +void adstack_showpeaksize_() { + adStack_showPeakSize() ; +} + +void adstack_showtotaltraffic_() { + adStack_showTotalTraffic() ; +} + +void adstack_showstacksize_(int *label) { + adStack_showStackSize(*label) ; +} + +void adstack_showstack_(char *locationName) { + adStack_showStack(locationName) ; +} + +void pushboolean_(int *x) { + pushBoolean(*x) ; +} + +void popboolean_(int *x) { + popBoolean(x) ; +} + +int stackisthreadsafe_() { + return stackIsThreadSafe() ; +} diff --git a/tools/TAP_support/ADFirstAidKit/adStack.h b/tools/TAP_support/ADFirstAidKit/adStack.h new file mode 100644 index 0000000000..c7005a0b03 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/adStack.h @@ -0,0 +1,79 @@ +#ifndef ADSTACK_INCLUDED +#define ADSTACK_INCLUDED + +#include "complex.h" + +void adStack_startRepeat() ; +void adStack_resetRepeat() ; +void adStack_endRepeat() ; + +/* char* pushBlock() ; */ +/* char* popBlock() ; */ +/* void pushNArray(char *x, int nbChars) ; */ +/* void popNArray(char *x, int nbChars) ; */ + +void pushInteger4Array(int *x, int n) ; +void popInteger4Array(int *x, int n) ; +void pushInteger8Array(long *x, int n) ; +void popInteger8Array(long *x, int n) ; +void pushReal4Array(float *x, int n) ; +void popReal4Array(float *x, int n) ; +void pushReal8Array(double *x, int n) ; +void popReal8Array(double *x, int n) ; +/* Commented out because sizeof(complex) == sizeof(double complex) == 16 */ +/* void pushComplex8Array(complex *x, int n) ; */ +/* void popComplex8Array(complex *x, int n) ; */ +void pushComplex16Array(double complex *x, int n) ; +void popComplex16Array(double complex *x, int n) ; +void pushCharacterArray(char *x, int n) ; +void popCharacterArray(char *x, int n) ; + +void pushCharacter(char val) ; +void popCharacter(char* val) ; +void pushReal4(float val) ; +void popReal4(float* val) ; +void pushReal8(double val) ; +void popReal8(double* val) ; +void pushInteger4(int val) ; +void popInteger4(int* val) ; +void pushInteger8(long val) ; +void popInteger8(long* val) ; +/* Commented out because sizeof(complex) == sizeof(double complex) == 16 */ +/* void pushComplex8(complex val) ; */ +/* void popComplex8(complex *val) ; */ +void pushComplex16(double complex val) ; +void popComplex16(double complex *val) ; +void pushPointer4(void* val) ; +void popPointer4(void** val) ; +void pushPointer8(void* val) ; +void popPointer8(void** val) ; +void pushBoolean(int x) ; +void popBoolean(int *x) ; + +void pushBit(int x) ; +int popBit() ; + +void pushControl1b(int cc) ; +void popControl1b(int *cc) ; +void pushControl2b(int cc) ; +void popControl2b(int *cc) ; +void pushControl3b(int cc) ; +void popControl3b(int *cc) ; +void pushControl4b(int cc) ; +void popControl4b(int *cc) ; +void pushControl5b(int cc) ; +void popControl5b(int *cc) ; +void pushControl6b(int cc) ; +void popControl6b(int *cc) ; +void pushControl7b(int cc) ; +void popControl7b(int *cc) ; +void pushControl8b(int cc) ; +void popControl8b(int *cc) ; + +void adStack_showPeakSize() ; +void adStack_showTotalTraffic() ; +void adStack_showStackSize(int label) ; +void adStack_showStack(char *locationName) ; + +int stackIsThreadSafe() ; +#endif diff --git a/tools/TAP_support/ADFirstAidKit/admm.c b/tools/TAP_support/ADFirstAidKit/admm.c new file mode 100644 index 0000000000..987207819a --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/admm.c @@ -0,0 +1,687 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include +#include +#include +#include "admm.h" + +#include + +/* DEBUGGING AND STATISTICS: + * ------------------------- + * Compile with -D ADMM_TRACE to log calls to ADMM + * Compile with -D ADMM_TIME to show the total time spent in ADMM + * Compile with -D ADMM_TIME_SEARCHING to show the total time spent searching in the ADMM table + * Compile with -D ADMM_COUNTS to show the numbers of ADMM operations and objects + * Compile with -D ADMM_LABELS to add a last label argument to ADMM calls + */ + +#ifdef ADMM_COUNTS +int numberOfRegisterings = 0 ; +int numberOfUnregisterings = 0 ; +int numberOfChunks = 0 ; +int peakNumberOfChunks = 0 ; +int numberOfRebases = 0 ; +int numberOfWaitings = 0 ; +int peakNumberOfWaitings = 0 ; +#endif + +#ifdef ADMM_TIME +double timeSpentInADMM = 0.0 ; +clock_t startADMMTime, endADMMTime ; +#endif + +#ifdef ADMM_TIME_SEARCHING +double timeSpentSearching = 0.0 ; +clock_t startSearchTime, endSearchTime ; +#endif + +/** Cell of a chained list of void* */ +typedef struct _ADMM_List { + void* head ; + struct _ADMM_List* tail ; +} ADMM_List ; + +typedef enum {BYBASE, BYOBASE, BYBASEB, BYOBASEB} ADMM_AddrSort ; + +/** All info about one memory chunk */ +typedef struct { + // 0:base, 1:obase, 2:baseb, 3:obaseb + void* bases[4] ; + int sizeInBytes ; + int sizeInBytesb ; + int nbElements ; +} ADMM_ChunkInfo ; + +typedef struct { + void** pp ; + void** ppb ; +} ADMM_WaitingAddress ; + +ADMM_List admm_chunksByBaseCell = {NULL, NULL} ; +ADMM_List admm_chunksByObaseCell = {NULL, NULL} ; +ADMM_List admm_chunksByBasebCell = {NULL, NULL} ; +ADMM_List admm_chunksByObasebCell = {NULL, NULL} ; +ADMM_List* admm_chunksLists[] = + {&admm_chunksByBaseCell, &admm_chunksByObaseCell, &admm_chunksByBasebCell, &admm_chunksByObasebCell}; + +ADMM_List admm_waitingRebasesRoot = {NULL, NULL} ; +ADMM_List *admm_waitingRebases = &admm_waitingRebasesRoot ; + + +void ADMM_insertChunkInfo(ADMM_ChunkInfo* newChunkInfo, void* base, ADMM_AddrSort index) { + ADMM_List *toList = admm_chunksLists[index] ; + // search for the place where to insert the ADMM_ChunkInfo: + while (toList->tail && ((ADMM_ChunkInfo*)toList->tail->head)->bases[index]tail ; + } + // insert at that place: + ADMM_List* newCell = (ADMM_List*)malloc(sizeof(ADMM_List)) ; + newCell->head = newChunkInfo ; + newCell->tail = toList->tail ; + toList->tail = newCell ; +} + +ADMM_ChunkInfo* ADMM_searchBase(void* base, ADMM_AddrSort index) { + ADMM_List *inList = admm_chunksLists[index]->tail ; + ADMM_ChunkInfo* chunk ; + // search for the ADMM_ChunkInfo about the chunk with the given base: + while (inList) { + chunk = (ADMM_ChunkInfo*)inList->head ; + if (chunk->bases[index]==base) return chunk ; + inList = inList->tail ; + } + return NULL ; +} + +ADMM_ChunkInfo* ADMM_searchAddress(void* address, ADMM_AddrSort index) { + ADMM_List *inList = admm_chunksLists[index]->tail ; + ADMM_ChunkInfo* chunk ; + // search for the ADMM_ChunkInfo that contains the address: + while (inList) { + chunk = (ADMM_ChunkInfo*)inList->head ; + if (chunk->bases[index]<=address && + address<(chunk->bases[index]+(indexsizeInBytes:chunk->sizeInBytesb))) + return chunk ; + inList = inList->tail ; + } + return NULL ; +} + +void ADMM_removeChunkInfo(ADMM_ChunkInfo* chunkInfo, ADMM_AddrSort index) { + ADMM_List *toList = admm_chunksLists[index] ; + // search for the ADMM_ChunkInfo in the list: + while (toList->tail) { + if (toList->tail->head==chunkInfo) { + ADMM_List* cell = toList->tail ; + toList->tail = cell->tail ; + free(cell) ; + return ; + } + toList = toList->tail ; + } +} + +void ADMM_findRanksInWaitings(void** pointer, void** pointerb, long* indexInWait, long* numberInWait) { + // Just for tracing ADMM, returns the length of the waitinglist and the rank in it of pointer/pointerb. + ADMM_List* inWaitingRebases = admm_waitingRebases->tail ; + ADMM_WaitingAddress* waitingAddress ; + *indexInWait = 0 ; + *numberInWait = 0 ; + while (inWaitingRebases) { + waitingAddress = (ADMM_WaitingAddress*)inWaitingRebases->head ; + ++(*numberInWait); + if (waitingAddress->pp==pointer && waitingAddress->ppb==pointerb) *indexInWait = *numberInWait ; + inWaitingRebases = inWaitingRebases->tail ; + } +} + +void ADMM_addWaitingRebase(void** pointer, void** pointerb) { + // First, check if the same pointer(s) are maybe already waiting for a rebase, + // (for another, previous address, and rebasing this address has never been possible). + // In that case this waiting rebase can be reused as the new waiting rebase. + ADMM_List* inWaitingRebases = admm_waitingRebases->tail ; + ADMM_WaitingAddress* waitingAddress ; + int found = 0 ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + while (!found && inWaitingRebases) { + waitingAddress = (ADMM_WaitingAddress*)inWaitingRebases->head ; + found = (waitingAddress->pp==pointer && waitingAddress->ppb==pointerb) ; + inWaitingRebases = inWaitingRebases->tail ; + } +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + // If these pointers were not already waiting, add them into the waiting list: + if (!found) { + ADMM_List *newCell = (ADMM_List*)malloc(sizeof(ADMM_List)) ; + newCell->tail = admm_waitingRebases->tail ; + newCell->head = (ADMM_WaitingAddress*)malloc(sizeof(ADMM_WaitingAddress)) ; +#ifdef ADMM_COUNTS + ++numberOfWaitings ; + if (peakNumberOfWaitingshead)->pp = pointer ; + ((ADMM_WaitingAddress*)newCell->head)->ppb = pointerb ; + admm_waitingRebases->tail = newCell ; + } +} + +/** The given chunk provides for both the primal and its derivative. + * The waitingAddress can expect for a primal or a derivative or for both. */ +int ADMM_chunkInfoShadowedSolvesWaiting(ADMM_ChunkInfo* chunk, ADMM_WaitingAddress* waitingAddress) { + int match = 0 ; + if (waitingAddress->pp && *(waitingAddress->pp)) + match = (chunk->bases[BYOBASE]<=*(waitingAddress->pp) + && *(waitingAddress->pp)<(chunk->bases[BYOBASE]+chunk->sizeInBytes)) ; + else if (waitingAddress->ppb && *(waitingAddress->ppb)) + match = (chunk->bases[BYOBASEB]<=*(waitingAddress->ppb) + && *(waitingAddress->ppb)<(chunk->bases[BYOBASEB]+chunk->sizeInBytesb)) ; + if (match) { + if (waitingAddress->pp && *(waitingAddress->pp)) + *(waitingAddress->pp) = chunk->bases[BYBASE]+(*(waitingAddress->pp)-chunk->bases[BYOBASE]) ; + if (waitingAddress->ppb && *(waitingAddress->ppb)) + *(waitingAddress->ppb) = chunk->bases[BYBASEB]+(*(waitingAddress->ppb)-chunk->bases[BYOBASEB]) ; +#ifdef ADMM_COUNTS + ++numberOfRebases ; +#endif + return 1 ; + } else + return 0 ; +} + +/** The given chunk is only for the primal. + * The waitingAddress can only expect for a primal. If it expects a derivative -> error! */ +int ADMM_chunkInfoSolvesWaiting(ADMM_ChunkInfo* chunk, ADMM_WaitingAddress* waitingAddress) { + int match = (waitingAddress->pp && *(waitingAddress->pp) + && chunk->bases[BYOBASE]<=*(waitingAddress->pp) + && *(waitingAddress->pp)<(chunk->bases[BYOBASE]+chunk->sizeInBytes)) ; + if (match) { + *(waitingAddress->pp) = chunk->bases[BYBASE]+(*(waitingAddress->pp)-chunk->bases[BYOBASE]) ; +#ifdef ADMM_COUNTS + ++numberOfRebases ; +#endif + return 1 ; + } else + return 0 ; +} + +/** Remove waiting addresses and addressesb that will never be solved + * because they are contained in pointers that are beeing freed. */ +void ADMM_cleanDeadWaitingsShadowed(void *base, int size, void *baseb, int sizeb) { + ADMM_List* inWaitingRebases = admm_waitingRebases ; + ADMM_List* waitingCell ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + while (inWaitingRebases->tail) { + waitingCell = inWaitingRebases->tail ; + if ( + (base <= (void*)((ADMM_WaitingAddress*)waitingCell->head)->pp && + (void*)((ADMM_WaitingAddress*)waitingCell->head)->pp < base+size) + || + (baseb && ((ADMM_WaitingAddress*)waitingCell->head)->ppb && + baseb <= (void*)((ADMM_WaitingAddress*)waitingCell->head)->ppb && + (void*)((ADMM_WaitingAddress*)waitingCell->head)->ppb < baseb+sizeb) + ) { +#ifdef ADMM_TRACE + printf(" clean waiting [%li]->%li Shadow:[%li]->%li\n", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL), ((ADMM_WaitingAddress*)waitingCell->head)->ppb, (((ADMM_WaitingAddress*)waitingCell->head)->ppb?*(((ADMM_WaitingAddress*)waitingCell->head)->ppb):NULL)) ; + fflush(stdout); +#endif + inWaitingRebases->tail = inWaitingRebases->tail->tail ; + free(waitingCell->head) ; + free(waitingCell) ; +#ifdef ADMM_COUNTS + --numberOfWaitings ; +#endif + } else + inWaitingRebases = inWaitingRebases->tail ; + } +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +void ADMM_registerShadowed(void *base, void *obase, int sizeInBytes, void *baseb, void **alreadyRebasedb, void *obaseb, int sizeInBytesb, int nbElements +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif + int rebasePhase = (obaseb!=0) ; + ADMM_ChunkInfo* newChunkInfo = (ADMM_ChunkInfo*)malloc(sizeof(ADMM_ChunkInfo)) ; +#ifdef ADMM_COUNTS + ++numberOfChunks ; + if (numberOfChunks>peakNumberOfChunks) peakNumberOfChunks = numberOfChunks ; + ++numberOfRegisterings ; +#endif +#ifdef ADMM_TRACE + if (rebasePhase) + printf("ADMM_register (old:%li=>)%li+%i Shadow: (old:%li=>)%li+%i \"%s\"\n", obase, base, sizeInBytes, obaseb, baseb, sizeInBytesb, label); + else + printf("ADMM_register %li+%i Shadow: %li+%i \"%s\"\n", base, sizeInBytes, baseb, sizeInBytesb, label); + fflush(stdout); +#endif + if (!rebasePhase) {obase = base; obaseb = baseb;} + newChunkInfo->bases[0] = base ; + newChunkInfo->bases[1] = obase ; + newChunkInfo->bases[2] = baseb ; + newChunkInfo->bases[3] = obaseb ; + newChunkInfo->sizeInBytes = sizeInBytes ; + newChunkInfo->sizeInBytesb = sizeInBytesb ; + newChunkInfo->nbElements = nbElements ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + ADMM_insertChunkInfo(newChunkInfo, base, BYBASE) ; + ADMM_insertChunkInfo(newChunkInfo, obase, BYOBASE) ; + ADMM_insertChunkInfo(newChunkInfo, baseb, BYBASEB) ; + ADMM_insertChunkInfo(newChunkInfo, obaseb, BYOBASEB) ; + if (rebasePhase) { + /* Now solve waiting pointers and pointerbs with newChunkInfo: */ + ADMM_List* inWaitingRebases = admm_waitingRebases ; + ADMM_List* waitingCell ; + while (inWaitingRebases->tail) { + waitingCell = inWaitingRebases->tail ; +#ifdef ADMM_TRACE + printf(" ...retry rebase [%li]->%li Shadow:[%li]->%li ?", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL), ((ADMM_WaitingAddress*)waitingCell->head)->ppb, (((ADMM_WaitingAddress*)waitingCell->head)->ppb?*(((ADMM_WaitingAddress*)waitingCell->head)->ppb):NULL)) ; + fflush(stdout); +#endif + if (alreadyRebasedb==((ADMM_WaitingAddress*)waitingCell->head)->ppb) { +#ifdef ADMM_TRACE + printf(" now done => [%li]->%li Shadow:[%li]->%li !\n", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL), ((ADMM_WaitingAddress*)waitingCell->head)->ppb, (((ADMM_WaitingAddress*)waitingCell->head)->ppb?*(((ADMM_WaitingAddress*)waitingCell->head)->ppb):NULL)) ; + fflush(stdout); +#endif + inWaitingRebases->tail = inWaitingRebases->tail->tail ; + free(waitingCell->head) ; + free(waitingCell) ; + } else if (ADMM_chunkInfoShadowedSolvesWaiting(newChunkInfo, (ADMM_WaitingAddress*)waitingCell->head)) { +#ifdef ADMM_TRACE + printf(" yes => [%li]->%li Shadow:[%li]->%li !\n", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL), ((ADMM_WaitingAddress*)waitingCell->head)->ppb, (((ADMM_WaitingAddress*)waitingCell->head)->ppb?*(((ADMM_WaitingAddress*)waitingCell->head)->ppb):NULL)) ; + fflush(stdout); +#endif + inWaitingRebases->tail = inWaitingRebases->tail->tail ; + free(waitingCell->head) ; + free(waitingCell) ; +#ifdef ADMM_COUNTS + --numberOfWaitings ; +#endif + } else { +#ifdef ADMM_TRACE + printf(" no, try again later!\n") ; + fflush(stdout); +#endif + inWaitingRebases = inWaitingRebases->tail ; + } + } + } +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +void ADMM_register(void *base, void **alreadyRebased, void *obase, int sizeInBytes, int nbElements +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif + int rebasePhase = (obase!=0) ; + ADMM_ChunkInfo* newChunkInfo = (ADMM_ChunkInfo*)malloc(sizeof(ADMM_ChunkInfo)) ; +#ifdef ADMM_COUNTS + ++numberOfChunks ; + if (numberOfChunks>peakNumberOfChunks) peakNumberOfChunks = numberOfChunks ; + ++numberOfRegisterings ; +#endif +#ifdef ADMM_TRACE + if (rebasePhase) + printf("ADMM_register (old:%li=>)%li+%i \"%s\"\n", obase, base, sizeInBytes, label); + else + printf("ADMM_register %li+%i \"%s\"\n", base, sizeInBytes, label); + fflush(stdout); +#endif + if (!rebasePhase) obase = base ; + newChunkInfo->bases[0] = base ; + newChunkInfo->bases[1] = obase ; + newChunkInfo->bases[2] = NULL ; + newChunkInfo->bases[3] = NULL ; + newChunkInfo->sizeInBytes = sizeInBytes ; + newChunkInfo->sizeInBytesb = 0 ; + newChunkInfo->nbElements = nbElements ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + ADMM_insertChunkInfo(newChunkInfo, base, BYBASE) ; + ADMM_insertChunkInfo(newChunkInfo, obase, BYOBASE) ; + if (rebasePhase) { + /* Now solve waiting pointers with newChunkInfo: + * NOTE: we are in the no-shadow Register case, which means that this + * memory chunk doesn't need a derivative chunk, and therefore we assume + * that there cannot be a shadowed waiting address waiting for this chunk. */ + ADMM_List* inWaitingRebases = admm_waitingRebases ; + ADMM_List* waitingCell ; + while (inWaitingRebases->tail) { + waitingCell = inWaitingRebases->tail ; +#ifdef ADMM_TRACE + printf(" ...retry rebase [%li]->%li ?", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL)) ; + fflush(stdout); +#endif + if (alreadyRebased==((ADMM_WaitingAddress*)waitingCell->head)->pp) { +#ifdef ADMM_TRACE + printf(" now done => [%li]->%li !\n", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL)) ; + fflush(stdout); +#endif + inWaitingRebases->tail = inWaitingRebases->tail->tail ; + free(waitingCell->head) ; + free(waitingCell) ; + } else if (ADMM_chunkInfoSolvesWaiting(newChunkInfo, (ADMM_WaitingAddress*)waitingCell->head)) { +#ifdef ADMM_TRACE + printf(" yes => [%li]->%li !\n", ((ADMM_WaitingAddress*)waitingCell->head)->pp, (((ADMM_WaitingAddress*)waitingCell->head)->pp?*(((ADMM_WaitingAddress*)waitingCell->head)->pp):NULL)) ; + fflush(stdout); +#endif + inWaitingRebases->tail = inWaitingRebases->tail->tail ; + free(waitingCell->head) ; + free(waitingCell) ; +#ifdef ADMM_COUNTS + --numberOfWaitings ; +#endif + } else { +#ifdef ADMM_TRACE + printf(" no, try again later!\n") ; + fflush(stdout); +#endif + inWaitingRebases = inWaitingRebases->tail ; + } + } + } +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +void ADMM_unregisterShadowed(void *base, void *baseb, int *nbElements +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif +#ifdef ADMM_TRACE + printf("ADMM_unregister %li Shadow: %li \"%s\"\n", base, baseb, label); + fflush(stdout); +#endif + ADMM_ChunkInfo* foundChunkInfo = NULL ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + if (baseb) + foundChunkInfo = ADMM_searchBase(baseb, BYBASEB) ; + if (!foundChunkInfo) + foundChunkInfo = ADMM_searchBase(base, BYBASE) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + if (foundChunkInfo) { + *nbElements = foundChunkInfo->nbElements ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + ADMM_removeChunkInfo(foundChunkInfo, BYBASE) ; + ADMM_removeChunkInfo(foundChunkInfo, BYOBASE) ; + ADMM_removeChunkInfo(foundChunkInfo, BYBASEB) ; + ADMM_removeChunkInfo(foundChunkInfo, BYOBASEB) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + ADMM_cleanDeadWaitingsShadowed(base, foundChunkInfo->sizeInBytes, baseb, foundChunkInfo->sizeInBytesb) ; + free(foundChunkInfo) ; +#ifdef ADMM_COUNTS + ++numberOfUnregisterings ; + --numberOfChunks ; +#endif + } +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +void ADMM_unregister(void *base, int *nbElements +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif +#ifdef ADMM_TRACE + printf("ADMM_unregister %li \"%s\"\n", base, label); + fflush(stdout); +#endif +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + ADMM_ChunkInfo* foundChunkInfo = ADMM_searchBase(base, BYBASE) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + if (foundChunkInfo) { + *nbElements = foundChunkInfo->nbElements ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + ADMM_removeChunkInfo(foundChunkInfo, BYBASE) ; + ADMM_removeChunkInfo(foundChunkInfo, BYOBASE) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + ADMM_cleanDeadWaitingsShadowed(base, foundChunkInfo->sizeInBytes, NULL, 0) ; + free(foundChunkInfo) ; +#ifdef ADMM_COUNTS + ++numberOfUnregisterings ; + --numberOfChunks ; +#endif + } +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +void ADMM_rebaseShadowed(void** pointer, void** pointerb +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif +#ifdef ADMM_TRACE + printf(" ADMM_rebase [%li]->%li Shadow:[%li]->%li \"%s\" ?", pointer, (pointer?*pointer:NULL), pointerb, (pointerb?*pointerb:NULL), label) ; + fflush(stdout); +#endif + ADMM_ChunkInfo* foundChunkInfo = NULL ; +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + if (*pointerb) + foundChunkInfo = ADMM_searchAddress(*pointerb, BYOBASEB) ; + if (!foundChunkInfo && pointer && *pointer) + foundChunkInfo = ADMM_searchAddress(*pointer, BYOBASE) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + if (foundChunkInfo) { + if (pointer && *pointer) + *pointer = foundChunkInfo->bases[BYBASE]+(*pointer-foundChunkInfo->bases[BYOBASE]) ; + if (*pointerb) + *pointerb = foundChunkInfo->bases[BYBASEB]+(*pointerb-foundChunkInfo->bases[BYOBASEB]) ; +#ifdef ADMM_TRACE + printf(" yes => [%li]->%li Shadow:[%li]->%li !\n", pointer, (pointer?*pointer:NULL), pointerb, (pointerb?*pointerb:NULL)) ; + printf(" from (old:%li=>)%li+%i Shadow: (old:%li=>)%li+%i\n", foundChunkInfo->bases[BYOBASE], foundChunkInfo->bases[BYBASE], foundChunkInfo->sizeInBytes, foundChunkInfo->bases[BYOBASEB], foundChunkInfo->bases[BYBASEB], foundChunkInfo->sizeInBytesb); + fflush(stdout); +#endif + } else if ((pointer && *pointer) || *pointerb) { + ADMM_addWaitingRebase(pointer, pointerb) ; +#ifdef ADMM_TRACE + long indexInWait, numberInWait ; + ADMM_findRanksInWaitings(pointer, pointerb, &indexInWait, &numberInWait) ; + printf(" no => add to waiting list [%li/%li]\n",indexInWait,numberInWait) ; + fflush(stdout); +#endif + } else { +#ifdef ADMM_TRACE + printf(".\n") ; + fflush(stdout); +#endif + } +#ifdef ADMM_COUNTS + ++numberOfRebases ; +#endif +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + + +void ADMM_rebase(void** pointer +#ifdef ADMM_LABELS +, char *label) { +#else +) {char *label = "" ; +#endif +#ifdef ADMM_TIME + startADMMTime = clock() ; +#endif +#ifdef ADMM_TRACE + printf(" ADMM_rebase [%li]->%li \"%s\" ?", pointer, (pointer?*pointer:NULL), label) ; + fflush(stdout); +#endif + ADMM_ChunkInfo* foundChunkInfo = NULL ; + if (*pointer) { +#ifdef ADMM_TIME_SEARCHING + startSearchTime = clock() ; +#endif + foundChunkInfo = ADMM_searchAddress(*pointer, BYOBASE) ; +#ifdef ADMM_TIME_SEARCHING + endSearchTime = clock() ; + timeSpentSearching += ((double)(endSearchTime-startSearchTime))/((double)CLOCKS_PER_SEC) ; +#endif + if (foundChunkInfo) { + *pointer = foundChunkInfo->bases[BYBASE]+(*pointer-foundChunkInfo->bases[BYOBASE]) ; +#ifdef ADMM_TRACE + printf(" yes => [%li]->%li !\n", pointer, (pointer?*pointer:NULL)) ; + printf(" from (old:%li=>)%li+%i Shadow: (old:%li=>)%li+%i\n", foundChunkInfo->bases[BYOBASE], foundChunkInfo->bases[BYBASE], foundChunkInfo->sizeInBytes, foundChunkInfo->bases[BYOBASEB], foundChunkInfo->bases[BYBASEB], foundChunkInfo->sizeInBytesb); + fflush(stdout); +#endif + } else { + ADMM_addWaitingRebase(pointer, NULL) ; +#ifdef ADMM_TRACE + long indexInWait, numberInWait ; + ADMM_findRanksInWaitings(pointer, NULL, &indexInWait, &numberInWait) ; + printf(" no => add to waiting list [%li/%li]\n",indexInWait,numberInWait) ; + fflush(stdout); +#endif + } + } else { +#ifdef ADMM_TRACE + printf(".\n") ; + fflush(stdout); +#endif + } +#ifdef ADMM_COUNTS + ++numberOfRebases ; +#endif +#ifdef ADMM_TIME + endADMMTime = clock() ; + timeSpentInADMM += ((double)(endADMMTime-startADMMTime))/((double)CLOCKS_PER_SEC) ; +#endif +} + +#ifdef ADMM_COUNTS +void ADMM_showChunks() { + ADMM_List* inChunksByBaseCell = admm_chunksByBaseCell.tail ; + ADMM_ChunkInfo* chunkInfo ; + printf("CHUNKS LIST:\n") ; + while (inChunksByBaseCell) { + chunkInfo = ((ADMM_ChunkInfo*)inChunksByBaseCell->head) ; + printf(" (old:%li=>)%li+%i Shadow: (old:%li=>)%li+%i (%i elements)\n", + chunkInfo->bases[BYOBASE], chunkInfo->bases[BYBASE], chunkInfo->sizeInBytes, + chunkInfo->bases[BYOBASEB], chunkInfo->bases[BYBASEB], chunkInfo->sizeInBytesb, + chunkInfo->nbElements); + inChunksByBaseCell = inChunksByBaseCell->tail ; + } + fflush(stdout); +} +#endif + +#ifdef ADMM_COUNTS +void ADMM_showWaitings() { + ADMM_List* inWaitingRebases = admm_waitingRebases->tail ; + ADMM_WaitingAddress* waitingAddress ; + printf("WAITING LIST:\n") ; + while (inWaitingRebases) { + waitingAddress = (ADMM_WaitingAddress*)inWaitingRebases->head ; + printf(" [%li]->%li Shadow:[%li]->%li %x %x \n", + waitingAddress->pp, (waitingAddress->pp?*(waitingAddress->pp):NULL), + waitingAddress->ppb, (waitingAddress->ppb?*(waitingAddress->ppb):NULL), + waitingAddress->pp, waitingAddress->ppb); + inWaitingRebases = inWaitingRebases->tail ; + } + printf("\n"); + fflush(stdout); +} +#endif + +void ADMM_statistics() { +#ifdef ADMM_TIME + printf("Time spent in ADMM:%lf\n", timeSpentInADMM) ; +#endif +#ifdef ADMM_TIME_SEARCHING + printf("Time spent searching:%lf\n", timeSpentSearching) ; +#endif +#ifdef ADMM_COUNTS + printf("Registerings:%i, Unregisterings:%i, numberOfRebases:%i\n", + numberOfRegisterings, numberOfUnregisterings, numberOfRebases) ; + printf("chunks:%i[peak:%i] waiting:%i[peak:%i]\n", + numberOfChunks, peakNumberOfChunks, numberOfWaitings, peakNumberOfWaitings); + ADMM_showChunks() ; + ADMM_showWaitings() ; +#endif + fflush(stdout); +} diff --git a/tools/TAP_support/ADFirstAidKit/admm.h b/tools/TAP_support/ADFirstAidKit/admm.h new file mode 100644 index 0000000000..df7cceb3a0 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/admm.h @@ -0,0 +1,67 @@ + +//# if defined(__cplusplus) +// extern "C" { +//# endif + +/** Re-base restored pointers *pp (and possibly it adjoint *ppb) from their + * old base from the forward sweep to their new base in the backward sweep. + * When new base is not available yet, schedules this to be done later + * when a new base is allocated. + * Usage: restoring a pointer pp (i.e. declared as T* pp ;) creates in the backward sweep: + * poppointer8((void**)(&pp)) ; + * and/or possibly: + * poppointer8((void**)(&ppb)) ; + * then add after these pop(s): + * ADMM_rebaseShadowed((void**)(&pp), (void**)(&ppb)) ; + * or if no ppb: + * ADMM_rebase((void**)(&pp)) ; + */ +void ADMM_rebaseShadowed(void **pp, void **ppb +#ifdef ADMM_LABELS +, char *label +#endif +); +void ADMM_rebase(void **pp +#ifdef ADMM_LABELS +, char *label +#endif +); + +/** Register a newly allocated memory chunk in the forward sweep (when obase==null or ==base), + * or register a newly allocated memory chunk "base" in the backward sweep relating it + * with its corresponding chunk from the forward sweep "obase". + * "sizeInBytes" is the total size in bytes of the allocated chunk. + * When the corresponding derivative chunks exist separately ("Shadowed" mode), + * then do the same with the info about the derivative + * chunks "baseb", "obaseb" and "sizeInBytesb". + * "nbElements" is the length i.e. the number of elements of the allocated array. */ +void ADMM_registerShadowed(void *base, void *obase, int sizeInBytes, void *baseb, void **alreadyRebasedb, void *obaseb, int sizeInBytesb, int nbElements +#ifdef ADMM_LABELS +, char *label +#endif +) ; +void ADMM_register(void *base, void **alreadyRebased, void *obase, int sizeInBytes, int nbElements +#ifdef ADMM_LABELS +, char *label +#endif +) ; + +/** Unregister a memory chunk, which must be done when this chunk is about to be deallocated. + * Returns in "nbElements" the length i.e. the number of elements of the array + * that is about to be deallocated. */ +void ADMM_unregisterShadowed(void *base, void *baseb, int *nbElements +#ifdef ADMM_LABELS +, char *label +#endif +) ; +void ADMM_unregister(void *base, int *nbElements +#ifdef ADMM_LABELS +, char *label +#endif +) ; + +void ADMM_statistics(); + +//# if defined(__cplusplus) +// } +//# endif diff --git a/tools/TAP_support/ADFirstAidKit/admm_tapenade_interface.f90 b/tools/TAP_support/ADFirstAidKit/admm_tapenade_interface.f90 new file mode 100644 index 0000000000..1305d569a5 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/admm_tapenade_interface.f90 @@ -0,0 +1,72 @@ +MODULE ADMM_TAPENADE_INTERFACE + IMPLICIT NONE + INTERFACE PUSHPOINTER8 + SUBROUTINE PUSHPOINTER8(pp) BIND(c, name='pushPointer8') + USE ISO_C_BINDING + TYPE(C_PTR), VALUE :: pp + END SUBROUTINE PUSHPOINTER8 + END INTERFACE PUSHPOINTER8 + + INTERFACE POPPOINTER8 + SUBROUTINE POPPOINTER8(pp) BIND(c, name='popPointer8') + USE ISO_C_BINDING + TYPE(C_PTR) :: pp + END SUBROUTINE POPPOINTER8 + END INTERFACE POPPOINTER8 + + INTERFACE ADMM_REGISTERSHADOWED + SUBROUTINE ADMM_REGISTERSHADOWED(base, obase, size, baseb, obaseb& +& , sizeb, nbelem) BIND(c, name='ADMM_registerShadowed') + USE ISO_C_BINDING + TYPE(C_PTR), VALUE :: base, obase + TYPE(C_PTR), VALUE :: baseb, obaseb + INTEGER, VALUE :: size, sizeb + INTEGER, VALUE :: nbelem + END SUBROUTINE ADMM_REGISTERSHADOWED + END INTERFACE ADMM_REGISTERSHADOWED + + INTERFACE ADMM_REGISTER + SUBROUTINE ADMM_REGISTER(base, obase, size, nbelem) BIND(c, name=& +& 'ADMM_register') + USE ISO_C_BINDING + TYPE(C_PTR), VALUE :: base, obase + INTEGER, VALUE :: size + INTEGER, VALUE :: nbelem + END SUBROUTINE ADMM_REGISTER + END INTERFACE ADMM_REGISTER + + INTERFACE ADMM_UNREGISTERSHADOWED + SUBROUTINE ADMM_UNREGISTERSHADOWED(base, baseb, nbelem) BIND(c, & +& name='ADMM_unregisterShadowed') + USE ISO_C_BINDING + TYPE(C_PTR), VALUE :: base, baseb + INTEGER :: nbelem + END SUBROUTINE ADMM_UNREGISTERSHADOWED + END INTERFACE ADMM_UNREGISTERSHADOWED + + INTERFACE ADMM_UNREGISTER + SUBROUTINE ADMM_UNREGISTER(base, nbelem) BIND(c, name=& +& 'ADMM_unregister') + USE ISO_C_BINDING + TYPE(C_PTR), VALUE :: base + INTEGER :: nbelem + END SUBROUTINE ADMM_UNREGISTER + END INTERFACE ADMM_UNREGISTER + + INTERFACE ADMM_REBASESHADOWED + SUBROUTINE ADMM_REBASESHADOWED(base, baseb) BIND(c, name=& +& 'ADMM_rebaseShadowed') + USE ISO_C_BINDING + TYPE(C_PTR) :: base, baseb + END SUBROUTINE ADMM_REBASESHADOWED + END INTERFACE ADMM_REBASESHADOWED + + INTERFACE ADMM_REBASE + SUBROUTINE ADMM_REBASE(base) BIND(c, name='ADMM_rebase') + USE ISO_C_BINDING + TYPE(C_PTR) :: base + END SUBROUTINE ADMM_REBASE + END INTERFACE ADMM_REBASE + +END MODULE ADMM_TAPENADE_INTERFACE + diff --git a/tools/TAP_support/ADFirstAidKit/ampi/adTool/support.h b/tools/TAP_support/ADFirstAidKit/ampi/adTool/support.h new file mode 100644 index 0000000000..4d84caa642 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/adTool/support.h @@ -0,0 +1,846 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_ADTOOL_SUPPORT_H_ +#define _AMPI_ADTOOL_SUPPORT_H_ + +#include +#if defined(__cplusplus) +extern "C" { +#endif + +#include "ampi/userIF/request.h" +#include "ampi/userIF/activity.h" +#include "ampi/userIF/modified.h" + +/** + * \file + * \brief methods that an AD tool needs to implement in order to use the implementation in Common + */ + +/** + * The implementation of pushing the required elements for Bcast calls. + * Might rework for conciseness. Wrote this to avoid pushing too much stuff with _pushSRinfo. + */ +void ADTOOL_AMPI_pushBcastInfo(void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushBcastInfoF) (void*,int, MPI_Datatype, int, MPI_Comm); + + +/** + * Popping the required elements for Bcast calls. + */ +void ADTOOL_AMPI_popBcastInfo(void** buf, + int* count, + MPI_Datatype* datatype, + int* root, + MPI_Comm* comm, + void **idx); +typedef void (ADTOOL_AMPI_popBcastInfoF) (void**, int*, MPI_Datatype*, int*, MPI_Comm*, void**); + + +/** + * Pushing and popping a block of double values, specifically for reduction results. + */ +void ADTOOL_AMPI_pushDoubleArray(void* buf, + int count); +typedef void (ADTOOL_AMPI_pushDoubleArrayF) (void*, int); + +void ADTOOL_AMPI_popDoubleArray(double* buf, + int* count); +typedef void (ADTOOL_AMPI_popDoubleArrayF) (double*, int*); + +/** + * The implementation of pushing the required elements for Reduce calls. + * Might rework for conciseness. Note that we require a separate TAPE_AMPI_push_MPI_Op + * function to push the reduce operation. I defined _push_MPI_Op in + * AdjoinableMPI/Tape/support.c w/ header AdjoinableMPI/ampi/tape/support.h. + */ +void ADTOOL_AMPI_pushReduceInfo(void* sbuf, + void* rbuf, + void* resultData, + int pushResultData, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushReduceInfoF) (void*, void*, void*, int, int, MPI_Datatype, MPI_Op, int, MPI_Comm); + +/** + * Popping the required elements for Reduce calls. + */ +void ADTOOL_AMPI_popReduceCountAndType(int* count, + MPI_Datatype* datatype); +typedef void (ADTOOL_AMPI_popReduceCountAndTypeF) (int*, MPI_Datatype*); + +void ADTOOL_AMPI_popReduceInfo(void** sbuf, + void** rbuf, + void** prevData, + void** resultData, + int* count, + MPI_Op* op, + int* root, + MPI_Comm* comm, + void **idx); +typedef void (ADTOOL_AMPI_popReduceInfoF) (void**, void**, void**, void**, int*, MPI_Op*, int*, MPI_Comm*, void **); + + +/** + * the implementation of pushing the required elements for send/recv + * to the AD-tool-internal stack; + * For source transformation this may remain unimplemented provided all the parameters + * are recovered by TBR and buf is mapped explicitly. + * the operator overloading implementation maps buf to the adjoint address space. + * The source transformation implementation ignores buf + */ +void ADTOOL_AMPI_pushSRinfo(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushSRinfoF) (void*, int, MPI_Datatype, int, int, AMPI_PairedWith, MPI_Comm); + +/** + * the implementation of popping the required elements for send/recv + * from the AD-tool-internal stack; + * See comments of \ref ADTOOL_AMPI_pushSRinfo. + */ +void ADTOOL_AMPI_popSRinfo(void** buf, + int* count, + MPI_Datatype* datatype, + int* src, + int* tag, + AMPI_PairedWith* pairedWith, + MPI_Comm* comm, + void **idx); +typedef void (ADTOOL_AMPI_popSRinfoF) (void**, int*, MPI_Datatype*, int*, int*, AMPI_PairedWith*, MPI_Comm*, void**); + +/** + * the implementation of pushing the required elements for one-sided + * communication + * to the AD-tool-internal stack; + * For source transformation this may remain unimplemented provided all the parameters + * are recovered by TBR and buf is mapped explicitly. + * the operator overloading implementation maps buf to the adjoint address space. + * The source transformation implementation ignores buf + */ +void ADTOOL_AMPI_pushOSinfo(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushOSinfoF) (void*, int, MPI_Datatype, int, int, AMPI_PairedWith, MPI_Comm); + +/** + * the implementation of popping the required elements for one-sided + * communication + * from the AD-tool-internal stack; + * See comments of \ref ADTOOL_AMPI_pushOSinfo. + */ +void ADTOOL_AMPI_popOSinfo(void** buf, + int* count, + MPI_Datatype* datatype, + int* src, + int* tag, + AMPI_PairedWith* pairedWith, + MPI_Comm* comm, + void **idx); +typedef void (ADTOOL_AMPI_popOSinfoF) (void**, int*, MPI_Datatype*, int*, int*, AMPI_PairedWith*, MPI_Comm*, void**); + +/** + * the implementation of pushing the required elements for gather/scatter + * to the AD-tool-internal stack; + * the implementation rationale follows \ref ADTOOL_AMPI_pushSRinfo + * NOTE: for non-root ranks the root specific parameters are ignored + * which implies in particular that the pointers passed may not be valid + * therefore we use commSizeForRootOrNull to discriminate + * \param commSizeForRootOrNull is the communicator size for rank root or 0 + * \param rbuf the buffer on rank root + * \param rcnt the count on rank root + * \param rtype the data type on rank root + * \param buf the buffer on non-root ranks + * \param count the counter for buf on non-root ranks + * \param type the data type on non-root ranks + * \param root the root rank + * \param comm the communicator + */ +void ADTOOL_AMPI_pushGSinfo(int commSizeForRootOrNull, + void *rbuf, + int rcnt, + MPI_Datatype rtype, + void *buf, + int count, + MPI_Datatype type, + int root, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushGSinfoF) (int, void*, int, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm); + +/** + * this must be called before \ref ADTOOL_AMPI_popGSinfo and \ref ADTOOL_AMPI_popGSVinfo + * \param commSizeForRootOrNull this is popped so that we may allocate buffers for + * rcnts and displs in the subsequent call to \ref ADTOOL_AMPI_popGSVinfo + */ +void ADTOOL_AMPI_popGScommSizeForRootOrNull(int *commSizeForRootOrNull); +typedef void (ADTOOL_AMPI_popGScommSizeForRootOrNullF) (int*); + +/** + * the implementation of popping the required elements for gather/scatter + * from the AD-tool-internal stack; + * see comments of \ref ADTOOL_AMPI_pushGSinfo; + * following the note there we will not be setting the values for root specific + * arguments on non-root ranks + * \param commSizeForRootOrNull retrieved via \ref ADTOOL_AMPI_popGScommSizeForRootOrNull + * \param rbuf the buffer on rank rook, set if commSizeForRootOrNull>0 + * \param rcnt the size for rank root, set if commSizeForRootOrNull>0 + * \param rtype the data type for rank root, set if commSizeForRootOrNull>0 + * \param buf the buffer for all ranks + * \param count the count for all ranks + * \param type the type for all ranks + * \param root the root rank + * \param comm the communicator for all ranks + */ +void ADTOOL_AMPI_popGSinfo(int commSizeForRootOrNull, + void **rbuf, + int *rcnt, + MPI_Datatype *rtype, + void **buf, + int *count, + MPI_Datatype *type, + int *root, + MPI_Comm *comm); +typedef void (ADTOOL_AMPI_popGSinfoF) (int, void**, int*, MPI_Datatype*, void**, int*, MPI_Datatype*, int*, MPI_Comm*); + +/** + * the implementation of pushing the required elements for gatherv/scatterv + * to the AD-tool-internal stack; + * the implementation rationale follows \ref ADTOOL_AMPI_pushSRinfo + * NOTE: for non-root ranks the root specific parameters are ignored + * which implies in particular that the pointers passed may not be valid + * therefore we use commSizeForRootOrNull to discriminate + * \param commSizeForRootOrNull is the communicator size for rank root or 0 + * \param rbuf the buffer on rank root + * \param rcnts the counters per rank on rank root + * \param displs the displacements for rbuf on rank root + * \param rtype the data type on rank root + * \param buf the buffer on non-root ranks + * \param count the counter for buf on non-root ranks + * \param type the data type on non-root ranks + * \param root the root rank + * \param comm the communicator + */ +void ADTOOL_AMPI_pushGSVinfo(int commSizeForRootOrNull, + void *rbuf, + int *rcnts, + int *displs, + MPI_Datatype rtype, + void *buf, + int count, + MPI_Datatype type, + int root, + MPI_Comm comm); +typedef void (ADTOOL_AMPI_pushGSVinfoF) (int, void*, int*, int*, MPI_Datatype, void*, int, MPI_Datatype, int, MPI_Comm); + +/** + * the implementation of popping the required elements for gatherv/scatterv + * from the AD-tool-internal stack; + * see comments of \ref ADTOOL_AMPI_pushGSVinfo; + * following the note there we will not be setting the values for root specific + * arguments on non-root ranks + * \param commSizeForRootOrNull retrieved via \ref ADTOOL_AMPI_popGScommSizeForRootOrNull + * \param rbuf the buffer on rank rook, set if commSizeForRootOrNull>0 + * \param rcnts the array of size commSizeForRootOrNull for rank root, set if commSizeForRootOrNull>0 + * \param displs the array of size commSizeForRootOrNull for rank root, set if commSizeForRootOrNull>0 + * \param rtype the data type for rank root, set if commSizeForRootOrNull>0 + * \param buf the buffer for all ranks + * \param count the count for all ranks + * \param type the type for all ranks + * \param root the root rank + * \param comm the communicator for all ranks + */ +void ADTOOL_AMPI_popGSVinfo(int commSizeForRootOrNull, + void **rbuf, + int *rcnts, + int *displs, + MPI_Datatype *rtype, + void **buf, + int *count, + MPI_Datatype *type, + int *root, + MPI_Comm *comm); +typedef void (ADTOOL_AMPI_popGSVinfoF) (int, void**, int*, int*, MPI_Datatype*, void**, int*, MPI_Datatype*, int*, MPI_Comm*); + +/** + * the implementation of pushing an operation code to the + * to the AD-tool-internal stack for an operator overloading tool; + * the source transformation implementation will leave this empty; + * this method is called in the respective FW_ variant + * implemented in Common + */ +void ADTOOL_AMPI_push_CallCode(enum AMPI_CallCode_E thisCall); +typedef void (ADTOOL_AMPI_push_CallCodeF) (enum AMPI_CallCode_E); + +/** + * the implementation of pushing an operation code to the + * to the AD-tool-internal stack for an operator overloading tool where a number + * of locations have to be reserved on the trace, currently only called in + * Scatterv and Gatherv; + * the source transformation implementation will leave this empty; + * this method is called in the respective FW_ variant + * implemented in Common + */ +void ADTOOL_AMPI_push_CallCodeReserve(enum AMPI_CallCode_E thisCall, unsigned int); +typedef void (ADTOOL_AMPI_push_CallCodeReserveF) (enum AMPI_CallCode_E, unsigned int); + +/** + * the implementation of popping an operation code from the + * to the AD-tool-internal stack for an operator overloading tool; + * See comments of \ref ADTOOL_AMPI_push_CallCode. + * the operator overloading tool needs to pop the code from its operation + * stack first and then call (with dummy parameters) the respect BW_ + * variant of the operatiorn represented by thisCall + */ +void ADTOOL_AMPI_pop_CallCode(enum AMPI_CallCode_E *thisCall); +typedef void (ADTOOL_AMPI_pop_CallCodeF) (enum AMPI_CallCode_E*); + + + +/** + * the implementation of pushing the required elements of an \ref AMPI_Request_S + * to the AD-tool-internal stack + */ +void ADTOOL_AMPI_push_AMPI_Request(struct AMPI_Request_S *ampiRequest); +typedef void (ADTOOL_AMPI_push_AMPI_RequestF) (struct AMPI_Request_S*); + +/** + * the implementation of popping the required elements of an \ref AMPI_Request_S + * from the AD-tool-internal stack + */ +void ADTOOL_AMPI_pop_AMPI_Request(struct AMPI_Request_S *ampiRequest); +typedef void (ADTOOL_AMPI_pop_AMPI_RequestF) (struct AMPI_Request_S*); + + +/** + * Push the MPI_Request on the AD tool internal stack. + * This is used as a key to the request bookkeeping + * to keep correspondence between the request Id of the FW sweep + * to the request Id in BW sweep. + * if we need to trace requests for a pure (operator overloading) trace evaluation + * the Common implementation uses this to push the request + * See \ref bookkeeping. + */ +void ADTOOL_AMPI_push_request(MPI_Request request); +typedef void (ADTOOL_AMPI_push_requestF) (MPI_Request); + + +/** + * Push a window request for one-sided communication using a specific window + */ +void ADTOOL_AMPI_push_AMPI_WinRequest(AMPI_WinRequest *winRequest); +typedef void (ADTOOL_AMPI_push_WinRequestF) (AMPI_WinRequest*); + +/** + * Pop a window request for one-sided communication using a specific window + */ +void ADTOOL_AMPI_pop_AMPI_WinRequest(AMPI_WinRequest *winRequest); +typedef void (ADTOOL_AMPI_pop_WinRequestF) (AMPI_WinRequest*); + +/** + * Push a window for one-sided communication using a specific window + */ +void ADTOOL_AMPI_push_AMPI_Win(AMPI_Win *win); +typedef void (ADTOOL_AMPI_push_AMPI_WinF) (AMPI_Win*); + +/** + * Pop a window for one-sided communication using a specific window + */ +void ADTOOL_AMPI_pop_AMPI_Win(AMPI_Win *win); +typedef void (ADTOOL_AMPI_pop_AMPI_WinF) (AMPI_Win*); + +/** + * the companion to \ref ADTOOL_AMPI_push_request. + * See \ref bookkeeping. + */ +MPI_Request ADTOOL_AMPI_pop_request(); +typedef MPI_Request (ADTOOL_AMPI_pop_requestF) (); + +void ADTOOL_AMPI_push_comm(MPI_Comm comm); +typedef void (ADTOOL_AMPI_push_commF) (MPI_Comm); + +/** + * the companion to \ref ADTOOL_AMPI_push_request + */ +MPI_Comm ADTOOL_AMPI_pop_comm(); +typedef MPI_Comm (ADTOOL_AMPI_pop_commF) (); + +/** + * map active data to raw data; this is to be implemented for the forward + * execution by tools using association-by-address; + * for tools using association-by-name the same address should be returned; + */ +void * ADTOOL_AMPI_rawData(void* activeData, int *size); +typedef void* (ADTOOL_AMPI_rawDataF) (void*, int*); + +/** + * map active data to raw data; functionality similar to \ref ADTOOL_AMPI_rawData + * except it is handling vector buffers with arrays of counts and displacements as + * used in MPI_Gatherv or MPI_Scatterv + */ +void * ADTOOL_AMPI_rawDataV(void* activeData, int commSize, int *counts, int* displs); +typedef void * (ADTOOL_AMPI_rawDataVF) (void*, int, int*, int*); + +/** + * serialize user-defined struct for sending in forward execution in + * association-by-address tools + */ +void * ADTOOL_AMPI_packDType(void* indata, void* outdata, int count, int idx); +typedef void * (ADTOOL_AMPI_packDTypeF) (void*, void*, int, int); + +/** + * unpack serialized user-defined struct data into its original form + */ +void * ADTOOL_AMPI_unpackDType(void* indata, void* outdata, int count, int idx); +typedef void * (ADTOOL_AMPI_unpackDTypeF) (void*, void*, int, int); + +/** + * \todo add description + */ +void ADTOOL_AMPI_writeData(void* activeData, int *size); +typedef void (ADTOOL_AMPI_writeDataF) (void*, int*); + +/** + * \todo add description + */ +void ADTOOL_AMPI_writeDataV(void* activeData, int *counts, int* displs); +typedef void (ADTOOL_AMPI_writeDataVF) (void*, int*, int*); + +/** + * map active data to adjoint data; this is to be implemented for the backward + * execution by tools using association-by-address; + * for tools using association-by-name the same address should be returned; + */ +void * ADTOOL_AMPI_rawAdjointData(void* activeData); +typedef void * (ADTOOL_AMPI_rawAdjointDataF) (void*); + +/** + * Declares correspondence between a buffer and its counterpart adjoint buffer + * Adds correspondence into the request-to-buffer association list + * This is necessary for association-by-name transfo tools. + * should be done upon turn from FW sweep to BW sweep. + * \param buf the original, non-differentiated buffer. + * \param adjointBuf the corresponding adjoint buffer. + */ +void ADTOOL_AMPI_Turn(void* buf, void* adjointBuf) ; +typedef void (ADTOOL_AMPI_TurnF) (void*, void*) ; + +/** + * set it on the request; + * \param buf is forward sweep buffer (for source transformation tools) + * \param ampiRequest is the request to be pushed and popped for the adjoint communication + */ +void ADTOOL_AMPI_mapBufForAdjoint(struct AMPI_Request_S *ampiRequest, + void* buf); +typedef void (ADTOOL_AMPI_mapBufForAdjointF) (struct AMPI_Request_S*, void*); + +/** + * Map buffer in a one-sided communication + */ + +void ADTOOL_AMPI_mapWinBufForAdjoint(AMPI_WinRequest *winRequest, + void* buf); +typedef void (ADTOOL_AMPI_mapWinBufForAdjointF) (AMPI_WinRequest*, void*); + +/** + * an operator overloading tool should not do anything in the implementation but see \ref ADTOOL_AMPI_mapBufForAdjoint; + * a source transformation tool would receive the adjoint buffer as an argument + * and set it on the request; + * \param buf is the adjoint buffer (for source transformation tools) + * \param ampiRequest is the request to be used during the adjoint communication + */ +void ADTOOL_AMPI_setBufForAdjoint(struct AMPI_Request_S *ampiRequest, + void* buf); +typedef void (ADTOOL_AMPI_setBufForAdjointF) (struct AMPI_Request_S *, void*); + +/** + * this method resets \param count member to represent the buffer in terms of + * elements of the original MPI \param datatype; this is of particular interest for vector mode; + * \todo needs to be expanded for the case where the adjoint data is not represented by the same MPI data type as the + * original program data + */ +void ADTOOL_AMPI_getAdjointCount(int *count, + MPI_Datatype datatype); +typedef void (ADTOOL_AMPI_getAdjointCountF) (int*, MPI_Datatype); + +/** + * \param ampiRequest in this instance this method resets the adjointCount member; + */ +void ADTOOL_AMPI_setAdjointCount(struct AMPI_Request_S *ampiRequest); +typedef void (ADTOOL_AMPI_setAdjointCountF) (struct AMPI_Request_S *); + +/** + * calls \ref ADTOOL_AMPI_setAdjointCount and sets up a temporary buffer into which the adjoint data is received, see e.g. \ref BW_AMPI_Wait + * \param ampiRequest is the request instance that is modified + */ +void ADTOOL_AMPI_setAdjointCountAndTempBuf(struct AMPI_Request_S *ampiRequest); +typedef void (ADTOOL_AMPI_setAdjointCountAndTempBufF) (struct AMPI_Request_S*); + +/** + * \param winRequest in this instance this method resets the adjointCount member; + */ +void ADTOOL_AMPI_setWinAdjointCount(AMPI_WinRequest *winRequest); +typedef void (ADTOOL_AMPI_setWinAdjointCountF) (AMPI_WinRequest *); + +/** + * calls \ref ADTOOL_AMPI_setAdjointCount and sets up a temporary buffer into which the adjoint data is received, see e.g. \ref BW_AMPI_Win_fence + * \param winRequest is the request instance that is modified + */ +void ADTOOL_AMPI_setWinAdjointCountAndTempBuf(AMPI_WinRequest *winRequest); +typedef void (ADTOOL_AMPI_setWinAdjointCountAndTempBufF) (AMPI_WinRequest *); + +/** + * synchronizes the window with incoming adjoints, applies the corresponding + * increments and nullifies the adjoints in the window. + * \param win is the AMPI_Win instance providing the window for the incoming + * adjoints + */ +void ADTOOL_AMPI_syncAdjointWin(AMPI_Win *win); +typedef void (ADTOOL_AMPI_syncAdjointWinF) (AMPI_Win *); + +/** + * Allocates a temporary buffer needed to receive adjoint + * data before adding it to the adjoint variable + */ +void* ADTOOL_AMPI_allocateTempBuf(int adjointCount, MPI_Datatype dataType, MPI_Comm comm) ; +typedef void* (ADTOOL_AMPI_allocateTempBufF) (int, MPI_Datatype, MPI_Comm) ; + +/** + * releases the temporary buffer (allocated by \ref ADTOOL_AMPI_setAdjointCountAndTempBuf) into which the adjoint data was received + */ +void ADTOOL_AMPI_releaseAdjointTempBuf(void *tempBuf); +typedef void (ADTOOL_AMPI_releaseAdjointTempBufF) (void *); + +/** + * allocates buffer with active variables (needed as a temporary in Reduce) + */ +void* ADTOOL_AMPI_allocateTempActiveBuf(int count, MPI_Datatype datatype, MPI_Comm comm); +typedef void* (ADTOOL_AMPI_allocateTempActiveBufF) (int, MPI_Datatype, MPI_Comm); + +/** + * releases buffer with active variables (used as a temporary in Reduce) + */ +void ADTOOL_AMPI_releaseTempActiveBuf(void *buf, int count, MPI_Datatype datatype); +typedef void (ADTOOL_AMPI_releaseTempActiveBufF) (void *, int, MPI_Datatype); + +/** + * copies contents of buffer including real values of active variables + */ +void * ADTOOL_AMPI_copyActiveBuf(void* source, void* target, int count, MPI_Datatype datatype, MPI_Comm comm); +typedef void* (ADTOOL_AMPI_copyActiveBufF) (void*, void*, int, MPI_Datatype, MPI_Comm); + +/** + * Adjoint of assignment target=source*target + */ +void ADTOOL_AMPI_adjointMultiply(int count, MPI_Datatype datatype, MPI_Comm comm, + void *source, void *adjointSource, + void* target, void* adjointTarget) ; +typedef void (ADTOOL_AMPI_adjointMultiplyF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*); + +/** + * Adjoint of assignment target=MIN(source,target) + */ +void ADTOOL_AMPI_adjointMin(int count, MPI_Datatype datatype, MPI_Comm comm, + void *source, void *adjointSource, + void* target, void* adjointTarget) ; +typedef void (ADTOOL_AMPI_adjointMinF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*); + +/** + * Adjoint of assignment target=MAX(source,target) + */ +void ADTOOL_AMPI_adjointMax(int count, MPI_Datatype datatype, MPI_Comm comm, + void *source, void *adjointSource, + void* target, void* adjointTarget) ; +typedef void (ADTOOL_AMPI_adjointMaxF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*); + +/** + * Multiply the given buffer target, which holds an adjoint, with the given source value + * \param adjointCount is the number of items in the buffer we will increment + * \param datatype the data type of the buffer to be incremented + * \param comm the communicator to be passed to MPI_Abort for failures + * \param target the adjoint buffer to be multiplied + * \param source the value to multiply by. + * \param idx tape index for each element of the non contiguous buffer + */ +void ADTOOL_AMPI_multiplyAdjoint(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target, void *source, void* idx); +typedef void (ADTOOL_AMPI_multiplyAdjointF)(int, MPI_Datatype, MPI_Comm, void*, void*, void*); + +/** + * Divide the given buffer target, which holds an adjoint, with the given source value + * \param adjointCount is the number of items in the buffer we will increment + * \param datatype the data type of the buffer to be incremented + * \param comm the communicator to be passed to MPI_Abort for failures + * \param target the adjoint buffer to be divided + * \param source the value to divide by. + * \param idx tape index for each element of the non contiguous buffer + */ +void ADTOOL_AMPI_divideAdjoint(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target, void *source, void* idx); +typedef void (ADTOOL_AMPI_divideAdjointF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*); + +/** + * Check equality of the given buffers source1 and source2, which hold adjoints, + * and return the result in the given target buffer. + * \param adjointCount is the number of items in the buffer we will increment + * \param datatype the data type of the buffer to be incremented + * \param comm the communicator to be passed to MPI_Abort for failures + * \param target the buffer that will hold the result (0==difference) + * \param source1 the one buffer to compare + * \param source2 the other buffer to compare + * \param idx tape index for each element of the non contiguous buffer + */ +void ADTOOL_AMPI_equalAdjoints(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target, void *source1, void *source2, void* idx); +typedef void (ADTOOL_AMPI_equalAdjointsF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*); + +/** + * Increment the given buffer "target", which holds an adjoint variable, + * with the given additional adjoint value found in "source". + * \param adjointCount is the number of items in the buffer we will increment + * \param datatype the data type of the buffer to be incremented + * \param comm the communicator to be passed to MPI_Abort for failures + * \param target the adjoint buffer to be incremented + * \param source the adjoint value that must be added into the adjoint buffer. + * \param idx tape index for each element of the non contiguous buffer + */ + void ADTOOL_AMPI_incrementAdjoint(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target, void *source, void* idx); + typedef void (ADTOOL_AMPI_incrementAdjointF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*); + +/** + * Reset to zero the given buffer "target", which holds an adjoint variable. + * \param adjointCount is the number of items in the buffer we will nullify + * \param datatype the data type of the buffer to be nullified + * \param comm the communicator to be passed to MPI_Abort for failures + * \param target the adjoint buffer to be nullified + */ +void ADTOOL_AMPI_nullifyAdjoint(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target); +typedef void (ADTOOL_AMPI_nullifyAdjointF) (int, MPI_Datatype, MPI_Comm, void*); + +/** + * create predefined active types; to be cleaned up with \ref ADTOOL_AMPI_cleanupTypes + */ +void ADTOOL_AMPI_setupTypes(); +typedef void (ADTOOL_AMPI_setupTypesF)(); + +/** + * cleanup types created with \ref ADTOOL_AMPI_setupTypes + */ +void ADTOOL_AMPI_cleanupTypes(); +typedef void (ADTOOL_AMPI_cleanupTypesF)(); + +#ifdef AMPI_FORTRANCOMPATIBLE +/** + * Fortran routine to figure out what the proper types are on the Fortran side + * \param adouble returns the integer representation for the Fortran version of AMPI_ADOUBLE_PRECISION + * \param real returns the integer representation for the Fortran version of AMPI_AREAL + */ +void adtool_ampi_fortransetuptypes_(MPI_Fint* adouble, MPI_Fint* areal); +typedef void (adtool_ampi_fortransetuptypes_F) (MPI_Fint*, MPI_Fint*); + +void adtool_ampi_fortrancleanuptypes_(MPI_Fint* adouble, MPI_Fint* areal); +typedef void (adtool_ampi_fortrancleanuptypes_F) (MPI_Fint*, MPI_Fint*); + +/** + * Fortran routine to ask Fortran to tell the C side about the Fortran-side values of the + * "binding" variables i.e. MPI_IN_PLACE, MPI_BOTTOM, etc. + */ +void adtool_ampi_fortransetupbindings_() ; + +#endif + +/** + * Take datatype for forward mode, return datatype for transfer. + */ +MPI_Datatype ADTOOL_AMPI_FW_rawType(MPI_Datatype datatype); +typedef MPI_Datatype (ADTOOL_AMPI_FW_rawTypeF) (MPI_Datatype); + +/** + * Take datatype for reverse mode, return datatype for transfer. + */ +MPI_Datatype ADTOOL_AMPI_BW_rawType(MPI_Datatype datatype); +typedef MPI_Datatype (ADTOOL_AMPI_BW_rawTypeF) (MPI_Datatype); + + +/** + * test types for activity + * \param datatype any data type but particularly also the active data type(s) created by the tool (see \ref AMPI_ADOUBLE etc.) + * \returns the respective enum value based on the type's activity + */ +AMPI_Activity ADTOOL_AMPI_isActiveType(MPI_Datatype datatype); +typedef AMPI_Activity (ADTOOL_AMPI_isActiveTypeF) (MPI_Datatype); + +/** The global MPI_COMM_WORLD_D */ +extern MPI_Comm ADTOOL_AMPI_COMM_WORLD_SHADOW; + +/** + * Maps the active buffer on a mapped buffer for a MPI_Win + */ + +void *ADTOOL_AMPI_createWinMap(void *active_buf, MPI_Aint size); +typedef void *(ADTOOL_AMPI_createWinMapF) (void *active_buf, MPI_Aint size); + +/** + * Maps the active buffer on a mapped buffer for a MPI_Win + */ + +void ADTOOL_AMPI_writeWinData(void *map, void *buf, MPI_Aint size); +typedef void (ADTOOL_AMPI_writeWinDataF) (void *map, void *buf, MPI_Aint size); + +/** + * Gets the size of the mapped buffer for a window at its creation. It returns + * the size of the mapped window (may be equal to the active window). + * \param size of the active window. + */ + +MPI_Aint ADTOOL_AMPI_getWinSize(MPI_Aint size); +typedef MPI_Aint (ADTOOL_AMPI_getWinSizeF) (MPI_Aint size); +/** The functions that perform the tangent of standard reduction operations: */ +void ADTOOL_AMPI_tangentMultiply(int count, MPI_Datatype datatype, MPI_Comm comm, + void* target, void* tangentTarget, + void *source, void *tangentSource) ; +typedef void (ADTOOL_AMPI_tangentMultiplyF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*) ; +void ADTOOL_AMPI_tangentMin(int count, MPI_Datatype datatype, MPI_Comm comm, + void* target, void* tangentTarget, + void *source, void *tangentSource) ; +typedef void (ADTOOL_AMPI_tangentMinF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*) ; +void ADTOOL_AMPI_tangentMax(int count, MPI_Datatype datatype, MPI_Comm comm, + void* target, void* tangentTarget, + void *source, void *tangentSource) ; +typedef void (ADTOOL_AMPI_tangentMaxF) (int, MPI_Datatype, MPI_Comm, void*, void*, void*, void*) ; + +/** + * Push/Pop the contents of buffer somewhere + */ +void ADTOOL_AMPI_pushBuffer(int count, MPI_Datatype datatype, MPI_Comm comm, void* buffer) ; +typedef void (ADTOOL_AMPI_pushBufferF) (int, MPI_Datatype, MPI_Comm, void*) ; +void ADTOOL_AMPI_popBuffer(int count, MPI_Datatype datatype, MPI_Comm comm, void* buffer) ; +typedef void (ADTOOL_AMPI_popBufferF) (int, MPI_Datatype, MPI_Comm, void*) ; + +/** Memo mechanism for the shadow communicators used in tangent ST-AD association-by-name (e.g. Tapenade) */ +void ADTOOL_AMPI_addShadowComm(MPI_Comm comm, MPI_Comm dupComm) ; +typedef void (ADTOOL_AMPI_addShadowCommF) (MPI_Comm, MPI_Comm) ; +MPI_Comm ADTOOL_AMPI_getShadowComm(MPI_Comm comm) ; +typedef MPI_Comm (ADTOOL_AMPI_getShadowCommF) (MPI_Comm) ; +void ADTOOL_AMPI_delShadowComm(MPI_Comm comm); +typedef void (ADTOOL_AMPI_delShadowCommF) (MPI_Comm) ; + +struct ADTOOL_AMPI_FPCollection{ + ADTOOL_AMPI_pushBcastInfoF *pushBcastInfo_fp; + ADTOOL_AMPI_popBcastInfoF *popBcastInfo_fp; + ADTOOL_AMPI_pushDoubleArrayF *pushDoubleArray_fp; + ADTOOL_AMPI_popDoubleArrayF *popDoubleArray_fp; + ADTOOL_AMPI_pushReduceInfoF *pushReduceInfo_fp; + ADTOOL_AMPI_popReduceCountAndTypeF *popReduceCountAndType_fp; + ADTOOL_AMPI_popReduceInfoF *popReduceInfo_fp; + ADTOOL_AMPI_pushSRinfoF *pushSRinfo_fp; + ADTOOL_AMPI_popSRinfoF *popSRinfo_fp; + ADTOOL_AMPI_pushOSinfoF *pushOSinfo_fp; + ADTOOL_AMPI_popOSinfoF *popOSinfo_fp; + ADTOOL_AMPI_pushGSinfoF *pushGSinfo_fp; + ADTOOL_AMPI_popGScommSizeForRootOrNullF *popGScommSizeForRootOrNull_fp; + ADTOOL_AMPI_popGSinfoF *popGSinfo_fp; + ADTOOL_AMPI_pushGSVinfoF *pushGSVinfo_fp; + ADTOOL_AMPI_popGSVinfoF *popGSVinfo_fp; + ADTOOL_AMPI_push_CallCodeF *push_CallCode_fp; + ADTOOL_AMPI_push_CallCodeReserveF *push_CallCodeReserve_fp; + ADTOOL_AMPI_pop_CallCodeF *pop_CallCode_fp; + ADTOOL_AMPI_push_AMPI_RequestF *push_AMPI_Request_fp; + ADTOOL_AMPI_pop_AMPI_RequestF *pop_AMPI_Request_fp; + ADTOOL_AMPI_push_AMPI_WinF *push_AMPI_Win_fp; + ADTOOL_AMPI_pop_AMPI_WinF *pop_AMPI_Win_fp; + ADTOOL_AMPI_push_WinRequestF *push_AMPI_WinRequest_fp; + ADTOOL_AMPI_pop_WinRequestF *pop_AMPI_WinRequest_fp; + ADTOOL_AMPI_push_requestF *push_request_fp; + ADTOOL_AMPI_pop_requestF *pop_request_fp; + ADTOOL_AMPI_push_commF *push_comm_fp; + ADTOOL_AMPI_pop_commF *pop_comm_fp; + ADTOOL_AMPI_rawDataF *rawData_fp; + ADTOOL_AMPI_rawDataVF *rawDataV_fp; + ADTOOL_AMPI_packDTypeF *packDType_fp; + ADTOOL_AMPI_unpackDTypeF *unpackDType_fp; + ADTOOL_AMPI_writeDataF *writeData_fp; + ADTOOL_AMPI_writeDataVF *writeDataV_fp; + ADTOOL_AMPI_rawAdjointDataF *rawAdjointData_fp; + ADTOOL_AMPI_TurnF *Turn_fp; + ADTOOL_AMPI_mapBufForAdjointF *mapBufForAdjoint_fp; + ADTOOL_AMPI_mapWinBufForAdjointF *mapWinBufForAdjoint_fp; + ADTOOL_AMPI_setBufForAdjointF *setBufForAdjoint_fp; + ADTOOL_AMPI_getAdjointCountF *getAdjointCount_fp; + ADTOOL_AMPI_setAdjointCountF *setAdjointCount_fp; + ADTOOL_AMPI_setAdjointCountAndTempBufF *setAdjointCountAndTempBuf_fp; + ADTOOL_AMPI_setWinAdjointCountF *setWinAdjointCount_fp; + ADTOOL_AMPI_setWinAdjointCountAndTempBufF *setWinAdjointCountAndTempBuf_fp; + ADTOOL_AMPI_allocateTempBufF *allocateTempBuf_fp; + ADTOOL_AMPI_releaseAdjointTempBufF *releaseAdjointTempBuf_fp; + ADTOOL_AMPI_allocateTempActiveBufF *allocateTempActiveBuf_fp; + ADTOOL_AMPI_releaseTempActiveBufF *releaseTempActiveBuf_fp; + ADTOOL_AMPI_copyActiveBufF *copyActiveBuf_fp; + ADTOOL_AMPI_adjointMultiplyF *adjointMultiply_fp ; + ADTOOL_AMPI_adjointMinF *adjointMin_fp ; + ADTOOL_AMPI_adjointMaxF *adjointMax_fp ; + ADTOOL_AMPI_multiplyAdjointF *multiplyAdjoint_fp; + ADTOOL_AMPI_divideAdjointF *divideAdjoint_fp; + ADTOOL_AMPI_equalAdjointsF *equalAdjoints_fp; + ADTOOL_AMPI_incrementAdjointF *incrementAdjoint_fp; + ADTOOL_AMPI_nullifyAdjointF *nullifyAdjoint_fp; + ADTOOL_AMPI_setupTypesF *setupTypes_fp; + ADTOOL_AMPI_cleanupTypesF *cleanupTypes_fp; + ADTOOL_AMPI_FW_rawTypeF *FW_rawType_fp; + ADTOOL_AMPI_BW_rawTypeF *BW_rawType_fp; + ADTOOL_AMPI_createWinMapF *createWinMap_fp; + ADTOOL_AMPI_writeWinDataF *writeWinData_fp; + ADTOOL_AMPI_getWinSizeF *getWinSize_fp; + ADTOOL_AMPI_syncAdjointWinF *syncAdjointWin_fp; + ADTOOL_AMPI_isActiveTypeF *isActiveType_fp ; + ADTOOL_AMPI_tangentMultiplyF *tangentMultiply_fp ; + ADTOOL_AMPI_tangentMinF *tangentMin_fp ; + ADTOOL_AMPI_tangentMaxF *tangentMax_fp ; + ADTOOL_AMPI_pushBufferF *pushBuffer_fp ; + ADTOOL_AMPI_popBufferF *popBuffer_fp ; + ADTOOL_AMPI_addShadowCommF *addShadowComm_fp ; + ADTOOL_AMPI_getShadowCommF *getShadowComm_fp ; + ADTOOL_AMPI_delShadowCommF *delShadowComm_fp ; +#ifdef AMPI_FORTRANCOMPATIBLE + adtool_ampi_fortransetuptypes_F *fortransetuptypes__fp; + adtool_ampi_fortrancleanuptypes_F *fortrancleanuptypes__fp; +#endif +}; + +/** + * the single instance of ADTOOL_AMPI_FPCollection + */ +extern struct ADTOOL_AMPI_FPCollection ourADTOOL_AMPI_FPCollection; + +/** The type required for TANGENT user-given reduction functions, + * that are passed e.g. to TLM_AMPI_Reduce in Tapenade-style diff AMPI code. */ +typedef void (TLM_userFunctionF) (void*, void*, void*, void*, int*, MPI_Datatype*, MPI_Datatype*) ; + +/** The type required for ADJOINT user-given reduction functions, + * that are passed e.g. to BW_AMPI_Reduce in Tapenade-style diff AMPI code. */ +typedef void (ADJ_userFunctionF) (void*, void*, void*, void*, int*, MPI_Datatype*, MPI_Datatype*) ; + + +#if defined(__cplusplus) +} +#endif + +#endif + diff --git a/tools/TAP_support/ADFirstAidKit/ampi/ampi.h b/tools/TAP_support/ADFirstAidKit/ampi/ampi.h new file mode 100644 index 0000000000..2a30f540e5 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/ampi.h @@ -0,0 +1,541 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_AMPI_H_ +#define _AMPI_AMPI_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * One-stop header file for all AD-tool-independent AMPI routines; this is the file to replace mpi.h in the user code. + */ + +/** + * \defgroup UserInterfaceHeaders User-Interface header files + * This set contains all the header files with declarations relevant to the user; header files not listed in this group + * are internal to AdjoinableMPI or relate to support to be provided by a given AD tool. + */ + +/** + * \defgroup UserInterfaceDeclarations User-Interface declarations + * This set contains all declarations relevant to the user; anything in the source files not listed in this group + * is internal to AdjoinableMPI or relates to support to be provided by a given AD tool. + */ + +/** \mainpage + * The Adjoinable MPI (AMPI) library provides a modified set if MPI subroutines + * that are constructed such that an adjoint in the context of algorithmic + * differentiation (AD) can be computed. The library is designed to be supported + * by a variety of AD tools and to enable also the computation of (higher-order) + * forward derivatives. + * \authors Laurent Hascoët + * (currently at INRIA Sophia-Antipolis; LinkedIn - e-mail) + * \authors Michel Schanen + * (currently at RWTH Aachen; home page - e-mail) + * \authors Jean Utke + * (until March 2014 at Argonne National Laboratory; LinkedIn - e-mail) + * + * Contributions informing the approach implemented in AMPI were made by the co-authors of \cite Utke2009TAM P. Heimbach, C. Hill, U. Naummann. + * + * Significant contributions were made by Anton Bovin (summer student at Argonne National Laboratory in 2013;LinkedIn). + * + * Please refer to the \ref UserGuide for information regarding the use of the library in a given application. + * + * Information regarding the library design, library internal functionality and the interfaces of methods to + * be supported by a given AD tool are given in \ref LibraryDevelopmentGuide + * + * \section links Links to Ressources + * + * - TRAC page for bug and feature tracking, links to presentations + * - mercurial repository for source code and change history + * - regression tests + * + */ + +/** + * \page UserGuide User Guide + * \tableofcontents + * \section Introduction + * + * The Adjoinable MPI (AMPI) library provides a modified set of MPI subroutines + * that are constructed such that: + * - an adjoint in the context of algorithmic differentiation (AD) can be computed, + * - it can be supported by a variety of AD tools, + * - it enable also the computation of (higher-order) forward derivatives, + * - it provides an implementation for a straight pass-through to MPI such that the switch to AMPI can be made permanent + * without forcing compile dependencies on any AD tool. + * + * There are principal recipes for the construction of the adjoint of + * a given communication, see \cite Utke2009TAM . + * The practical implementation of these recipes, however, faces the following + * challenges. + * - the target language may prevent some implementation options + * - exposing an MPI_Request augmented with extra information as a structured type (not supported by Fortran 77) + * - passing an array of buffers (of different length), e.g. to \ref AMPI_Waitall, as an additional argument to (not supported in any Fortran version) + * - the AD tool implementation could be based on + * - operator overloading + * - original data and (forward) derivatives co-located (e.g. Rapsodia,dco) + * - original data and (forward) derivatives referenced (e.g. Adol-C) + * - source transformation + * - association by address (e.g. OpenAD) + * - association by name (e.g. Tapenade) + * + * The above choices imply certain consequences on the complexity for implementing + * the adjoint (and forward derivative) action and this could imply differences in the AMPI design. + * However, from a user's perspective it is a clear advantage to present a single, AD tool implementation independent + * AMPI library such that switching AD tools is not hindered by AMPI while also promoting a common understanding of the + * differentiation through MPI calls. + * We assume the reader is familiar with MPI and AD concepts. + * + * \section sources Getting the library sources + * + * The sources can be accessed through the AdjoinableMPI mercurial repository. Bug tracking, feature requests + * etc. are done via trac. + * In the following we assume the sources are cloned (cf mercurial web site for details about mercurial) + * into a directory `AdjoinableMPI` by invoking + * \code + * hg clone http://mercurial.mcs.anl.gov/ad/AdjoinableMPI + * \endcode + * + * \section configure Library - Configure, Build, and Install + * + * Configuration, build, and install follows the typical GNU autotools chain. Go to the source directory + * \code + * cd AdjoinableMPI + * \endcode + * If the sources were obtained from the mercurial repository, then one first needs to run the autotools via invoking + * \code + * ./autogen.sh + * \endcode + * In the typical `autoconf` fashion invoke + * \code + * configure --prefix= ... + * \endcode + * in or outside the source tree. + * The AD tool supporting AMPI should provide information which detailed AMPI + * configure settings are required if any. + * Build the libaries with + * \code + * make + * \endcode + * Optionally, before installing, one can do a sanity check by running: `make check` . + * + * To install the header files and compiled libraries follow with + * \code + * make install + * \endcode + * after which in the installation directory one should find under \ the following. + * - header files: see also \ref dirStruct + * - libraries: + * - libampiPlainC - for pass through to MPI, no AD functionality + * - libampiCommon - implementation of AD functionality shared between all AD tools supporting AMPI + * - libampiBookkeeping - implementation of AD functionality needed by some AD tools (see the AD tool documentation) + * - libampiTape - implementation of AD functionality needed by some AD tools (see the AD tool documentation) + * + * Note, the following libraries are AMPI internal: + * - libampiADtoolStubsOO - stubs for operator overloading AD tools not needed by the user + * - libampiADtoolStubsST - stubs for source transformation AD tools not needed by the user + * + * \section mpiToAmpi Switching from MPI to Adjoinable MPI + * + * For a given MPI-parallelized source code the user will replace all calls to MPI_... routines with the respective AMPI_... + * equivalent provided in \ref UserInterfaceDeclarations. + * To include the declarations replace + * - in C/C++: includes of mpi.h with + * \code + * #include + * \endcode + * - in Fortran: includes of mpif.h with + * \code + * #include + * \endcode + * + * respectively. + * + * Because in many cases certain MPI calls (e.g. for initialization and finalization) take place outside the scope of + * the original computation and its AD-derivatives and therefore do not themselves become part of the AD process, + * see the explanations in \ref differentiableSection. + * Each routine in this documentation lists to the changes to the parameters + * relative to the MPI standard. These changes impact parameters specifying + * - MPI_Datatype parameters, see \ref datatypes + * - MPI_Request parameters, see \ref requests + * + * Some routines require new parameters specifying the pairing two-sided communications, see \ref pairings. + * Similarly to the various approaches (preprocessing, templating, using typedef) + * employed to effect a change to an active type for overloading-based AD tools, this switch + * from MPI to AMPI routines should be done as a one-time effort. + * Because AMPI provides an implementation for a straight pass-through to MPI it is possible to make this switch + * permanent and retain builds that are completely independent of any AD tool and use AMPI as a thin wrapper library to AMPI. + * + * \section appCompile Application - compile and link + * + * After the switch described in \ref mpiToAmpi is done, the application should be recompiled with the include path addition + * \code + * -I/include + * \endcode + * and linked with the link path extension + * \code + * -L/lib[64] + * \endcode + * Note, the name of the subdirectory (lib or lib64 ) depends on the system; + * the appropriate set of libraries, see \ref configure; the optional ones in square brackets depend on the AD tool: + * \code + * -libampicommon [ -libampiBookkeeping -lampiTape ] + * \endcode + * OR if instead of differentiation by AD a straight pass-through to MPI is desired, then + * \code + * -libampiPlainC + * \endcode + * instead. + * + * \section dirStruct Directory and File Structure + * All locations discussed below are relative to the top level source directory. + * The top level header file to be included in place of the usual "mpi.h" is located in + * ampi/ampi.h + * + * It references the header files in ampi/userIF , see also \ref UserInterfaceHeaders which are organized to contain + * - unmodified pass through to MPI in ampi/userIF/passThrough.h which exists to give the extent of the original MPI we cover + * - variants of routines that in principle need adjoint logic but happen to be called outside of the code section that is adjoined and therefore + * are not transformed / not traced (NT) in ampi/userIF/nt.h + * - routines that are modified from the original MPI counterparts because their behavior in the reverse sweep differs from their behavior in the + * forward sweep and they also may have a modified signatyre; in ampi/userIF/modified.h + * - routines that are specific for some variants of source transformation (ST) approaches in ampi/userIF/st.h; + * while these impose a larger burden for moving from MPI to AMPI on the user, they also enable a wider variety of transformations + * currently supported by the tools; we anticipate that the ST specific versions may become obsolete as the source transformation tools evolve to + * support all transformations via the routines in ampi/userIF/modified.h + * + * Additional header files contain enumerations used as arguments to AMPI routines. All declarations that are part of the user + * interface are grouped in \ref UserInterfaceDeclarations. All other declarations in header files in the library are not to be used directly in the user code. + * + * A library that simply passes through all AMPI calls to their MPI counterparts for a test compilation and execution without any involvement of + * and AD tool is implemented in the source files in the PlainC directory. + * + * \section differentiableSection Using subroutine variants NT vs non-NT relative to the differentiable section + * + * The typical assumption of a program to be differentiated is that there is some top level routine head which does the numerical computation + * and communication which is called from some main driver routine. The driver routine would have to be manually adjusted to initiate + * the derivative computation, retrieve, and use the derivative values. + * Therefore only head and everything it references would be adjoined while driver would not. Typically, the driver + * routine also includes the basic setup and teardown with MPI_Init and MPI_Finalize and consequently these calls (for consistency) should be replaced + * with their AMPI "no trace/transformation" (NT) counterparts \ref AMPI_Init_NT and \ref AMPI_Finalize_NT. + * The same approach should be taken for all resource allocations/deallocations (e.g. \ref AMPI_Buffer_attach_NT and \ref AMPI_Buffer_detach_NT) + * that can exist in the scope enclosing the adjointed section alleviating + * the need for the AD tool implementation to tackle them. + * For cases where these routines have to be called within the adjointed code section the variants without the _NT suffix will ensure the + * correct adjoint behavior. + * + * \section general General Assumptions on types and Communication Patterns + * + * \subsection datatypes Datatype consistency + * + * Because the MPI standard passes buffers as void* (aka choice) the information about the type of + * the buffer and in particular the distinction between active and passive data (in the AD sense) must be + * conveyed via the datatype parameters and be consistent with the type of the buffer. To indicate buffers of + * active type the library predefines the following + * - for C/C++ + * - \ref AMPI_ADOUBLE as the active variant of the passive MPI_DOUBLE + * - \ref AMPI_AFLOAT as the active variant of the passive MPI_FLOAT + * - for Fortran + * - \ref AMPI_ADOUBLE_PRECISION as the active variant of the passive MPI_DOUBLE_PRECISION + * - \ref AMPI_AREAL as the active variant of the passive MPI_REAL + * + * Passive buffers can be used as parameters to the AMPI interfaces with respective passive data type values. + * + * \subsection requests Request Type + * + * Because additional information has to be attached to the MPI_Request instances used in nonblocking communications, there + * is an expanded data structure to hold this information. Even though in some contexts (F77) this structure cannot be exposed + * to the user code the general approach is to declare variables that are to hold requests as \ref AMPI_Request (instead of + * MPI_Request). + * + * \subsection pairings Pairings + * + * Following the explanations in \cite Utke2009TAM it is clear that context information about the + * communication pattern, that is the pairing of MPI calls, is needed to achieve + * -# correct adjoints, i.e. correct send and receive end points and deadlock free + * -# if possible retain the efficiency advantages present in the original MPI communication for the adjoint. + * + * In AMPI pairings are conveyed via additional pairedWith parameters which may be set to \ref AMPI_PairedWith enumeration values , see e.g. \ref AMPI_Send or \ref AMPI_Recv. + * The need to convey the pairing imposes restrictions because in a given code the pairing may not be static. + * For a example a given MPI_Recv may be paired with + * \code{.cpp} + * if (doBufferedSends) + * MPI_Bsend(...); + * else + * MPI_Ssend(...); + * \endcode + * + * but the AD tool has to decide on the send mode once the reverse sweep needs to adjoin the orginal MPI_Recv. + * Tracing such information in a global data structure is not scalable and piggybacking the send type onto the message + * so it can be traced on the receiving side is conceivable but not trivial and currently not implemented. + * + * \restriction Pairing of send and receive modes must be static. + * + * Note that this does not prevent the use of wild cards for source, or tag. + * + * \section examples Examples + * A set of examples organized to illustrate the uses of AMPI together with setups for AD tools that also serve as + * regression tests are collected in `AdjoinableMPIexamples` that can be obtained similarly to the AMPI sources themselves + * by cloning + *\code + * hg clone http://mercurial.mcs.anl.gov/ad/AdjoinableMPIexamples + * \endcode + * The daily regression tests based on these examples report the results on the page linked via the main page of this documentation. + * + */ + +/** + * \page LibraryDevelopmentGuide Library Development Guide + * \tableofcontents + * \section naming Naming Conventions - Code Organization + * Directories and libraries are organized as follows: + * - user interface header files, see \ref dirStruct; should not contain anything else (e.g. no internal helper functions) + * - `PlainC` : pass through to MPI implementations of the user interface; no reference to ADTOOL interfaces; to be renamed + * - `Tape` : sequential access storage mechanism default implementation (implemented as doubly linked list) to enable forward/reverse + * reading; may not reference ADTOOL or AMPI symbols/types; may reference MPI + * - `Bookkeeping` : random access storage for AMPI_Requests (but possibly also other objects that could be opaque) + * - `Common` : the AD enabled workhorse; here we have all the common functionality for MPI differentiation; + * + * Symbol prefixes: + * - `AMPI_` to be used for anything in MPI replacing the `MPI_` prefix; not to be used for symbols outside of the user interface + * - `TAPE_AMPI_` to be used for the `Tape` sequential access storage mechanism declared in ampi/tape/support.h + * - `BK_AMPI_`: `Bookkeeping` random access storage mechanism declared in ampi/bookkeeping/support.h + * - `ADTOOL_AMPI_` to be + * + * + * + * \section nonblocking Nonblocking Communication and Fortran Compatibility + * + * A central concern is the handling of non-blocking sends and receives in combination with their respective completion, + * e.g. wait, waitall, test. + * Taking as an example + * \code{.cpp} + * MPI_Irecv(&b,...,&r); + * // some other code in between + * MPI_Wait(&r,MPI_STATUS_IGNORE); + * \endcode + * The adjoint action for MPI_Wait will have to be the MPI_Isend of the adjoint data associated with + * the data in buffer b. + * The original MPI_Wait does not have any of the parameters required for the send and in particular it does not + * have the buffer. The latter, however, is crucial in particular in a source transformation context because, absent a correct syntactic + * representation for the buffer at the MPI_Wait call site one has to map the address &b valid during the forward + * sweep to the address of the associated adjoint buffer during the reverse sweep. + * In some circumstances, e.g. when the buffer refers to stack variable and the reversal mode follows a strict joint scheme + * where one does not leave the stack frame of a given subroutine until the reverse sweep has completed, it is possible to predetermine + * the address of the respective adjoint buffer even in the source transformation context. + * In the general case, e.g. allowing for split mode reversal + * or dynamic memory deallocation before the adjoint sweep commences such predetermination + * requires a more elaborate mapping algorithm. + * This mapping is subject of ongoing research and currently not supported. + * + * On the other hand, for operator overloading based tools, the mapping to a reverse sweep address space is an integral part of the + * tool because there the reverse sweep is executed as interpretation of a trace of the execution that is entirely separate from the original program + * address space. Therefore all addresses have to be mapped to the new adjoint address space to begin with and no association to some + * adjoint program variable is needed. Instead, the buffer address can be conveyed via the request parameter (and AMPI-userIF bookkeeping) + * to the MPI_Wait call site, traced there and is then recoverable during the reverse sweep. + * Nevertheless, to allow a common interface this version of the AMPI library has the buffer as an additional argument to in the source-transformation-specific \ref AMPI_Wait_ST + * variant of \ref AMPI_Wait. + * In later editions, when source transformation tools can fully support the address mapping, the of the AMPI library the \ref AMPI_Wait_ST variant may be dropped. + * + * Similarly to conveying the buffer address via userIF bookkeeping associated with the request being passed, all other information such as source or destination, tag, + * data type, or the distinction if a request originated with a send or receive will be part of the augmented information attached to the request and be subject to the trace and recovery as the buffer address itself. + * In the source transformation context, for cases in which parameter values such as source, destination, or tag are constants or loop indices the question could be asked if these values couldn't be easily recovered in + * the generated adjoint code without having to store them. + * Such recovery following a TBR-like approach would, however, require exposing the augmented request instance as a structured data type to the TBR analysis in the languages other than Fortran77. + * This necessitates the introduction of the \ref AMPI_Request, which in Fotran77 still maps to just an integer address. + * The switching between these variants is done via configure flags, see \ref configure. + * + * \section bookkeeping Bookkeeping of Requests + * + * As mentioned in \ref nonblocking the target language may prevent the augmented request from being used directly. + * In such cases the augmented information has to be kept internal to the library, that is we do some bookkeeping to convey the necessary information between the nonblocking sends or receives and + * the and respective completion calls. Currently the bookkeeping has a very simple implementation as a doubly-linked list implying linear search costs which is acceptable only as long as the + * number of icomplete nonblocking operations per process remains moderate. + * + * Whenever internal handles are used to keep trace (or correspondence) of a given internal object + * between two distant locations in the source code (e.g. file identifier to keep trace of an opened/read/closed file, + * or address to keep trace of a malloc/used/freed dynamic memory, or request ID to keep trace of a Isend/Wait...) + * we may have to arrange the same correspondence during the backward sweep. + * Keeping the internal identifier in the AD stack is not sufficient because there is no guarantee that + * the mechanism in the backward sweep will use the same values for the internal handle. + * The bookkeeping we use to solve this problem goes as follows: + * - standard TBR mechanism makes sure that variables that are needed in the BW sweep and are overwritten + * are pushed onto the AD stack before they are overwritten + * - At the end of its life in the forward sweep, the FW handle is pushed in the AD stack + * - At the beginning of its backward life, we obtain a BW handle, we pop the FW handle, + * and we keep the pair of those in a table (if an adjoint handle is created too, we keep the triplet). + * - When a variable is popped from the AD stack, and it is an internal handle, + * the popped handle is re-based using the said table. + * + * Simple workaround for the "request" case: + * This method doesn't rely on TBR. + * - Push the FW request upon acquisition (e.g. just after the Isend) + * - Push the FW request upon release (e.g. just before the Wait) + * - Pop the FW request upon adjoint of release, and get the BW request from the adjoint of release + * - Add the BW request into the bookkeeping, with the FW request as a key. + * - Upon adjoint of acquisition, pop the FW request, lookup in the bookkeeping to get the BW request. + * + * \section bundling Tangent-linear mode bundling the derivatives or shadowing the communication + * A central question for the implementation of tangent-linear mode becomes + * whether to bundle the original buffer b with the derivative b_d as pair and communicate the pair + * or to send separate messages for the derivatives. + * - shadowing messages avoid the bundling/unbundling if b and b_d + * are already given as separate entities as is the case in association by name, see \ref Introduction. + * - for one-sided passive communications there is no hook to do the bundling/unbundling on the target side; therefore + * it would be inherently impossible to achieve semantically correct behavior with any bundling/unbundling scheme. + * The example here is a case where a put on the origin side and subsequent computations on the target side are synchronized + * via a barrier which by itself does not have any obvious link to the target window by which one could trigger an unbundling. + * - the bundling operation itself may incur nontrivial overhead for large buffers + * + * An earlier argument against message shadowing was the difficulty of correctly associating message pairs while using wildcards. + * This association can, however, be ensured when a the shadowing message for the b_d is received on a communicator + * comm_d that duplicates the original communicator comm and uses the + * actual src and tag values obtained from the receive of the shadowed message as in the following example: + * + * \code{.cpp} + * if ( myRank==1) { + * send(x,...,0,tag1,comm); // send of the original data + * send(x_d,...,0,tag1,comm_d); // shadowing send of the derivatives + * else if ( myRank==2) { + * send(y,...,0,tag2,comm); + * send(y_d,...,0,tag2,comm_d); + * else if ( myRank==0) { + * do { + * recv(t,...,ANY_SOURCE, ANY_TAG,comm,&status); // recv of the original data + * recv(t_d,...,status.SOURCE,status.TAG,comm_d,STATUS_IGNORE); // shadowing recv with wildcards disambiguated + * z+=t; // original operation + * z_d+=t_d; // corresponding derivative operation + * } + * } + * \endcode + * + * This same approach can be applied to (user-defined) reduction operations, see \ref reduction, in that the binomial + * tree traversal for the reduction is shadowed in the same way and a user defined operation with derivatives can be invoked + * by passing the derivatives as separate arguments. + * + * The above approach is to be taken by any tool in which b and b_d are not already paired in consecutive + * memory such as association by name as in Tapenade or by implementation choice such as forward interpreters in Adol-C where + * the 0-th order Taylor coefficients live in a separate array from the first- and higher-order Taylor coefficients. + * Tools with association by address (OpenAD, Rapsodia) would have the data already given in paired form and therefore not + * need messsage shadowing but communicate the paired data. + * + * \section badOptions Rejected design options + * About MPI_Types and the "active" boolean: + * One cannot get away with just an "active" boolean to indicate the structure of + * the MPI_Type of the bundle. Since the MPI_Type definition of the bundle type + * has to be done anyway in the differentiated application code, and is passed + * to the communication call, the AMPI communication implementation will + * check this bundle MPI_Type to discover activity and trace/not trace accordingly. + * + * For the operator overloading, the tool needs to supply the active MPI types + * for the built-in MPI_datatypes and using the active types, one can achieve + * type conformance between the buffer and the type parameter passed. + * + * \section onesided One-Sided Active Targets + * Idea - use an AMPI_Win instance (similar to the \ref AMPI_Request ) to attach more + * information about the things that are applied to the window and completed on the fence; + * we execute/trace/collect-for-later-execution operations on the window in the following fashion + * + * forward: + * - MPI_Get record op/args on the window (buffer called 'x') + * - MPI_Put/MPI_Accumulate(z,,...): record op/args on the window; during forward: replace with MPI_Get of the remote target value into temporary 't' ; postpone to the fence; + * + * upon hitting a fence in the forward sweep: + * 1. put all ops on the stack + * 2. run the fence + * 3. for earch accum/put: + * 3.1: push 't' + * 3.2: do the postponed accumulate/put + * 4. run a fence for 3.2 + * 5. for each accum*: + * 5.1 get accumlation result 'r' + * 6. run a fence for 5.1 + * 7. for each accum*: + * 7.1 push 'r' + * + * for the adjoint of a fence : + * 0. for each operation on the window coming from the previous fence: + * 0.1 op isa GET then x_bar=0.0 + * 0.2 op isa PUT/accum= then x_bar+=t21 + * 0.3 op isa accum+ then x_bar+=t22 + * 1. run a fence + * 2. pop op from the stack and put onto adjoint window + * 2.1 op isa PUT/accum=: then GET('t21') + * 2.2 op isa accum+; then get('t22') from adjoint target + * 2.3 op isa accum*, then pop('r'), GET('t23') from adjoint target + * 3. run a fence + * 4. for each op on the adjoint window + * 4.1 op isa GET, then accum+ into remote + * 4.2 op isa PUT/accum: pop(t); accu(t,'=') to the value in the target + * 4.3 op isa PUT/accum=; then acc(0.0,'=') to adjoint target + * 4.4 op isa accum*: then accumulate( r*t23/t,'=', to the target) AND do z_bar+=r*t23/z (this is the old local z ); + * + * \section derived Handling of Derived Types + * (Written mostly in the context of ADOL-C.) MPI allows the user to create typemaps for arbitrary structures in terms of a block + * count and arrays of block lengths, block types, and displacements. For sending an array of active variables, we could get by with + * a pointer to their value array; in the case of a struct, we may want to send an arbitrary collection of data as well as some active + * variables which we'll need to "dereference". If a struct contains active data, we must manually pack it into a new array because + * -# the original datamap alignment is destroyed when we convert active data to real values + * -# we would like to send completely contiguous messages + * + * When received, the struct is unpacked again. + * + * When the user calls the \ref AMPI_Type_create_struct_NT wrapper with a datamap, the map is stored in a structure of type + * \ref derivedTypeData; the wrapper also generates an internal typemap that describes the packed data. The packed typemap is used + * whenver a derived type is sent and received; it's also used in conjunction with the user-provided map to pack and unpack data. + * This typemap is invisible to the user, so the creation of derived datatypes is accomplished entirely with calls to the + * \ref AMPI_Type_create_struct and \ref AMPI_Type_commit_NT wrappers. + * + * \image html dtype_illustration.png + * \image latex dtype_illustration.png + * + * AMPI currently supports sending structs with active elements and structs with embedded structs. Packing is called recursively. + * Functions implemented are \ref AMPI_Type_create_struct_NT and \ref AMPI_Type_contiguous_NT. A wrapper for _Type_vector can't be + * implemented now because the point of that function is to send noncontiguous data and, for simplicity and efficiency, we're assuming + * that the active variables we're sending are contiguous. + * + * Worth noting: if we have multiple active variables in a struct and we want to send an array of these structs, we have to send every + * active element to ensure that our contiguity checks don't assert false. + * + * \section reduction Reduction operations + * + * Since operator overloading can't enter MPI routines, other AMPI functions extract the double values from active variables, + * transfer those, and have explicit adjoint code that replaces the automated transformation. This is possible because we know the + * partial derivative of the result. For reductions, we can also do this with built-in reduction ops (e.g., sum, product). But + * we can't do this for user-defined ops because we don't know the partial derivative of the result. + * + * (Again explained in the context of ADOL-C.) So we have to make the tracing machinery enter the Reduce and perform taping every + * time the reduction op is applied. As it turns out, MPICH implements Reduce for derived types as a binary tree of Send/Recv pairs, + * so we can make our own Reduce by replicating the code with AMPI_Send/Recv functions. (Note that derived types are necessarily + * reduced with user-defined ops because MPI doesn't know how to accumulate them with its built-in ops.) So AMPI_Reduce is implemented + * for derived types as the aforementioned binary tree with active temporaries used between steps for applying the reduction op. + * See \ref AMPI_Op_create_NT. + * + * + */ + + + + +#include +#if defined(__cplusplus) +extern "C" { +#endif + +#include "ampi/userIF/passThrough.h" +#include "ampi/userIF/nt.h" +#include "ampi/userIF/modified.h" +#include "ampi/userIF/st.h" + +#include "ampi/libCommon/modified.h" + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/ampif.h b/tools/TAP_support/ADFirstAidKit/ampi/ampif.h new file mode 100644 index 0000000000..dd88e5cb7c --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/ampif.h @@ -0,0 +1,54 @@ +!########################################################## +!# This file is part of the AdjoinableMPI library # +!# released under the MIT License. # +!# The full COPYRIGHT notice can be found in the top # +!# level directory of the AdjoinableMPI distribution. # +!########################################################## + + include 'mpif.h' + + INTEGER AMPI_ACTIVE + PARAMETER (AMPI_ACTIVE=1) + + INTEGER AMPI_TO_RECV + PARAMETER (AMPI_TO_RECV=0) + INTEGER AMPI_FROM_SEND + PARAMETER (AMPI_FROM_SEND=1) + INTEGER AMPI_TO_IRECV_WAIT + PARAMETER(AMPI_TO_IRECV_WAIT=2) + INTEGER AMPI_TO_IRECV_WAITALL + PARAMETER(AMPI_TO_IRECV_WAITALL=3) + INTEGER AMPI_FROM_ISEND_WAIT + PARAMETER(AMPI_FROM_ISEND_WAIT=4) + INTEGER AMPI_FROM_ISEND_WAITALL + PARAMETER(AMPI_FROM_ISEND_WAITALL=5) + INTEGER AMPI_FROM_BSEND + PARAMETER(AMPI_FROM_BSEND=6) + INTEGER AMPI_FROM_RSEND + PARAMETER(AMPI_FROM_RSEND=7) +! The following commented out because of clash with Fortran AMPI subroutine names +! INTEGER AMPI_ISEND +! PARAMETER(AMPI_ISEND=8) +! INTEGER AMPI_IRECV +! PARAMETER(AMPI_IRECV=9) +! INTEGER AMPI_WAIT +! PARAMETER(AMPI_WAIT=10) + + COMMON /ACTIVE_TYPES/ AMPI_ADOUBLE_PRECISION, AMPI_AREAL + + INTEGER AMPI_ADOUBLE_PRECISION, AMPI_AREAL + + EXTERNAL AMPI_INIT_NT, AMPI_COMM_RANK, AMPI_FINALIZE_NT + EXTERNAL ADTOOL_AMPI_TURN + EXTERNAL AMPI_SEND, AMPI_RECV + EXTERNAL AMPI_ISEND, AMPI_IRECV, AMPI_WAIT + EXTERNAL AMPI_BARRIER, AMPI_REDUCE + EXTERNAL TLS_AMPI_SEND, TLS_AMPI_RECV + EXTERNAL TLS_AMPI_ISEND, TLS_AMPI_IRECV, TLS_AMPI_WAIT + EXTERNAL TLS_AMPI_BARRIER, TLS_AMPI_REDUCE + EXTERNAL FW_AMPI_SEND, FW_AMPI_RECV + EXTERNAL FW_AMPI_ISEND, FW_AMPI_IRECV, FW_AMPI_WAIT + EXTERNAL FW_AMPI_BARRIER, FWS_AMPI_REDUCE + EXTERNAL BW_AMPI_SEND, BW_AMPI_RECV + EXTERNAL BW_AMPI_ISEND, BW_AMPI_IRECV, BW_AMPI_WAIT + EXTERNAL BW_AMPI_BARRIER, BWS_AMPI_REDUCE diff --git a/tools/TAP_support/ADFirstAidKit/ampi/bookkeeping/support.h b/tools/TAP_support/ADFirstAidKit/ampi/bookkeeping/support.h new file mode 100644 index 0000000000..19f9d67116 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/bookkeeping/support.h @@ -0,0 +1,66 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_BOOKKEEPING_SUPPORT_H_ +#define _AMPI_BOOKKEEPING_SUPPORT_H_ + +#include "ampi/userIF/request.h" +#include "ampi/userIF/window.h" + +/** + * \file + * methods needed for internal request bookkeeping + */ + +/** + * \param ampiRequest is added (by deep copy) to the internal bookkeeping using the already set valueu of member plainRequest as key + */ +void BK_AMPI_put_AMPI_Request(struct AMPI_Request_S *ampiRequest); + +/** + * \param request is used as key to look up the associated AMPI_Request_S instance which then is deep copied + * \param ampiRequest pointer to the structure into which the values are copied + * \param traced if non-zero indicates one should match tracedReques instead of plainRequest + * the information is removed from the internal bookkeeping data + */ +void BK_AMPI_get_AMPI_Request(MPI_Request *request, struct AMPI_Request_S *ampiRequest, int traced); + +/** + * \param request is used as key to look up the associated AMPI_Request_S instance which then is deep copied + * \param ampiRequest pointer to the structure into which the values are copied + * \param traced if non-zero indicates one should match tracedReques instead of plainRequest + * the information is retained in the internal bookkeeping data + */ +void BK_AMPI_read_AMPI_Request(MPI_Request *request, struct AMPI_Request_S *ampiRequest, int traced); + +/** + * \file + * methods needed for internal window bookkeeping + */ + +/** + * \param ampiWin is added (by deep copy) to the internal bookkeeping using the already set valueu of member plainRequest as key + */ +void BK_AMPI_put_AMPI_Win(AMPI_Win *ampiWin); + +/** + * \param win is used as key to look up the associated AMPI_Win instance which then is deep copied + * \param ampiWin pointer to the structure into which the values are copied + * the information is removed from the internal bookkeeping data + */ +void BK_AMPI_get_AMPI_Win(MPI_Win *win, AMPI_Win *ampiWin); + +/** + * \param win is used as key to look up the associated AMPI_Win instance which then is deep copied + * \param ampiWin pointer to the structure into which the values are copied + * the information is retained in the internal bookkeeping data + */ +void BK_AMPI_read_AMPI_Win(MPI_Win *win, AMPI_Win *ampiWin); + +#endif + diff --git a/tools/TAP_support/ADFirstAidKit/ampi/libCommon/modified.h b/tools/TAP_support/ADFirstAidKit/ampi/libCommon/modified.h new file mode 100644 index 0000000000..d86f86364e --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/libCommon/modified.h @@ -0,0 +1,816 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_LIBCOMMON_MODIFIED_H_ +#define _AMPI_LIBCOMMON_MODIFIED_H_ + +/** + * \file + * common AD implementation portion of AMPI routines from ampi/userIF/modifief.h + */ + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +#include "ampi/userIF/pairedWith.h" +#include "ampi/userIF/request.h" +#include "ampi/userIF/window.h" +#include "ampi/adTool/support.h" + +/** + * forward sweep variant of \ref AMPI_Recv + */ +int FW_AMPI_Recv(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + MPI_Status* status); + +/** + * backward sweep variant of \ref AMPI_Recv + */ +int BW_AMPI_Recv(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + MPI_Status* status); + +/** + * TLM variant of \ref AMPI_Recv + */ +int TLM_AMPI_Recv(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + MPI_Status* status); + +/** + * Tangent Recv, with separate shadow (i.e. tangent) buffer. + */ +int TLS_AMPI_Recv(void* buf, void* shadowbuf, + int count, + MPI_Datatype datatype, MPI_Datatype shadowdatatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + MPI_Status* status) ; + +/** + * forward sweep variant of \ref AMPI_Irecv + */ +int FW_AMPI_Irecv (void* buf, + int count, + MPI_Datatype datatype, + int source, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * backward sweep variant of \ref AMPI_Irecv + */ +int BW_AMPI_Irecv (void* buf, + int count, + MPI_Datatype datatype, + int source, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * TLM variant of \ref AMPI_Irecv + */ +int TLM_AMPI_Irecv (void* buf, + int count, + MPI_Datatype datatype, + int source, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * Tangent Irecv, with separate shadow (i.e. tangent) buffer. + */ +int TLS_AMPI_Irecv (void* buf, void* shadowbuf, + int count, + MPI_Datatype datatype, MPI_Datatype shadowdatatype, + int source, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request) ; + +/** + * forward sweep variant of \ref AMPI_Send + */ +int FW_AMPI_Send (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Send + */ +int BW_AMPI_Send (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Send + */ +int TLM_AMPI_Send (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * Tangent Send, with separate shadow (i.e. tangent) buffer. + */ +int TLS_AMPI_Send (void* buf, void* shadowbuf, + int count, + MPI_Datatype datatype, MPI_Datatype shadowdatatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Isend + */ +int FW_AMPI_Isend (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * backward sweep variant of \ref AMPI_Isend + */ +int BW_AMPI_Isend (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * TLM variant of \ref AMPI_Isend + */ +int TLM_AMPI_Isend (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * Tangent Isend, with separate shadow (i.e. tangent) buffer. + */ +int TLS_AMPI_Isend (void* buf, void* shadowbuf, + int count, + MPI_Datatype datatype, MPI_Datatype shadowdatatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * forward sweep variant of \ref AMPI_Wait + */ +int FW_AMPI_Wait(AMPI_Request *request, + MPI_Status *status); + +/** + * backward sweep variant of \ref AMPI_Wait + */ +int BW_AMPI_Wait(AMPI_Request *request, + MPI_Status *status); + +/** + * TLM variant of \ref AMPI_Wait + */ +int TLM_AMPI_Wait(AMPI_Request *request, + MPI_Status *status); + +/** + * Tangent Wait, with separate shadow (i.e. tangent) buffer. + */ +int TLS_AMPI_Wait(AMPI_Request *request, + MPI_Status *status); + +/** + * forward sweep variant of \ref AMPI_Barrier + */ +int FW_AMPI_Barrier(MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Barrier + */ +int BW_AMPI_Barrier(MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Barrier + */ +int TLM_AMPI_Barrier(MPI_Comm comm); + +/** + * TLS variant of \ref AMPI_Barrier + */ +int TLS_AMPI_Barrier(MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Gather + */ +int FW_AMPI_Gather(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Gather + */ +int BW_AMPI_Gather(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Gather. Bundled (Association-by-Address). + */ +int TLM_AMPI_Gather(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Gather. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Gather(void *sendbuf, void *shadowsendbuf, + int sendcnt, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int recvcnt, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + int root, + MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Scatter + */ +int FW_AMPI_Scatter(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Scatter + */ +int BW_AMPI_Scatter(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Scatter. Bundled (Association-by-Address) + */ +int TLM_AMPI_Scatter(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Scatter. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Scatter(void *sendbuf, void *shadowsendbuf, + int sendcnt, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int recvcnt, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + int root, + MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Allgather + */ +int FW_AMPI_Allgather(void *sendbuf, + int sendcount, + MPI_Datatype sendtype, + void *recvbuf, + int recvcount, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Allgather + */ +int BW_AMPI_Allgather(void *sendbuf, + int sendcount, + MPI_Datatype sendtype, + void *recvbuf, + int recvcount, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Allgather. Bundled (Association-by-Address) + */ +int TLM_AMPI_Allgather(void *sendbuf, + int sendcount, + MPI_Datatype sendtype, + void *recvbuf, + int recvcount, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Allgather. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Allgather(void *sendbuf, void *shadowsendbuf, + int sendcount, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int recvcount, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Gatherv + */ +int FW_AMPI_Gatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Gatherv + * NOTE: recvcnts and displs are passed with a non-NULL pointer then they must be allocated to the correct size + */ +int BW_AMPI_Gatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Gatherv. Bundled (Association-by-Address) + */ +int TLM_AMPI_Gatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Gatherv. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Gatherv(void *sendbuf, void *shadowsendbuf, + int sendcnt, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int *recvcnts, + int *displs, int *shadowdispls, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + int root, + MPI_Comm comm) ; + +/** + * forward sweep variant of \ref AMPI_Scatterv + */ +int FW_AMPI_Scatterv(void *sendbuf, + int *sendcnts, + int *displs, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Scatterv + * NOTE: sendcnts and displs are passed with a non-NULL pointer then they must be allocated to the correct size + */ +int BW_AMPI_Scatterv(void *sendbuf, + int *sendcnts, + int *displs, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Scatterv. Bundled (Association-by-Address) + * NOTE: sendcnts and displs are passed with a non-NULL pointer then they must be allocated to the correct size + */ +int TLM_AMPI_Scatterv(void *sendbuf, + int *sendcnts, + int *displs, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Scatterv. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Scatterv(void *sendbuf, void *shadowsendbuf, + int *sendcnts, + int *displs, int *shadowdispls, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int recvcnt, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + int root, MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Allgatherv + */ +int FW_AMPI_Allgatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Allgatherv + * NOTE: recvcnts and displs are passed with a non-NULL pointer then they must be allocated to the correct size + */ +int BW_AMPI_Allgatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Allgatherv. Bundled (Association-by-Address) + * NOTE: recvcnts and displs are passed with a non-NULL pointer then they must be allocated to the correct size + */ +int TLM_AMPI_Allgatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Allgatherv. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Allgatherv(void *sendbuf, void *shadowsendbuf, + int sendcnt, + MPI_Datatype sendtype, MPI_Datatype shadowsendtype, + void *recvbuf, void *shadowrecvbuf, + int *recvcnts, + int *displs, int *shadowdispls, + MPI_Datatype recvtype, MPI_Datatype shadowrecvtype, + MPI_Comm comm); + +/** + * forward sweep variant of \ref AMPI_Bcast + */ +int FW_AMPI_Bcast(void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Bcast + */ +int BW_AMPI_Bcast(void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Bcast. Bundled (Association-by-Address) + */ +int TLM_AMPI_Bcast(void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm); + +/** + * Tangent diff variant of \ref AMPI_Bcast. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Bcast(void* buf, void* shadowbuf, + int count, + MPI_Datatype datatype, MPI_Datatype shadowdatatype, + int root, + MPI_Comm comm); + +/** + * Adjoint forward sweep of \ref AMPI_Reduce. Bundled (Association-by-Address) + */ +int FWB_AMPI_Reduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm); + +/** + * Adjoint forward sweep of \ref AMPI_Reduce. Shadowed (Association-by-Name). + * NOTE: in the forward sweep, shadowed mode passes only the primal values. + */ +int FW_AMPI_Reduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm) ; + + +/** + * Adjoint backward sweep of \ref AMPI_Reduce. Bundled (Association-by-Address) + */ +int BWB_AMPI_Reduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm); + +/** + * Adjoint backward sweep of \ref AMPI_Reduce. Shadowed (Association-by-Name) + */ +int BWS_AMPI_Reduce(void* sbuf, void* sbufb, + void* rbuf, void* rbufb, + int count, + MPI_Datatype datatype, MPI_Datatype datatypeb, + MPI_Op op, TLM_userFunctionF* uopd, + int root, + MPI_Comm comm) ; + +/** + * Tangent diff of \ref AMPI_Reduce. Bundled (Association-by-Address) + */ +int TLB_AMPI_Reduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm); + +/** + * Tangent diff of \ref AMPI_Reduce. Shadowed (Association-by-Name) + */ +int TLS_AMPI_Reduce(void* sbuf, void* sbufd, + void* rbuf, void* rbufd, + int count, + MPI_Datatype datatype, MPI_Datatype datatyped, + MPI_Op op, TLM_userFunctionF* uopd, + int root, + MPI_Comm comm) ; + +/** + * forward sweep variant of \ref AMPI_Allreduce + */ +int FWB_AMPI_Allreduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + MPI_Comm comm); + +/** + * Adjoint forward sweep of \ref AMPI_Allreduce, shadowed (i.e. Association-by-Name) + * NOTE: in the forward sweep, shadowed mode passes only the primal values. + */ +int FW_AMPI_Allreduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + MPI_Comm comm); + +/** + * backward sweep variant of \ref AMPI_Allreduce + */ +int BWB_AMPI_Allreduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + MPI_Comm comm); + +/** + * Adjoint forward sweep of \ref AMPI_Allreduce, shadowed (i.e. Association-by-Name) + */ +int BWS_AMPI_Allreduce(void* sbuf, void* sbufb, + void* rbuf, void* rbufb, + int count, + MPI_Datatype datatype, MPI_Datatype datatypeb, + MPI_Op op, TLM_userFunctionF* uopb, + MPI_Comm comm); + +/** + * TLM variant of \ref AMPI_Allreduce + */ +int TLB_AMPI_Allreduce(void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + MPI_Comm comm); + +/** + * Adjoint forward sweep of \ref AMPI_Allreduce, shadowed (i.e. Association-by-Name) + */ +int TLS_AMPI_Allreduce(void* sbuf, void* sbufd, + void* rbuf, void* rbufd, + int count, + MPI_Datatype datatype, MPI_Datatype datatyped, + MPI_Op op, TLM_userFunctionF* uopd, + MPI_Comm comm) ; + +/** + * create struct, calls MPI_Type_create_struct twice (second time for packed typemap) and stores info + */ +int AMPI_Type_create_struct (int count, + int array_of_blocklengths[], + MPI_Aint array_of_displacements[], + MPI_Datatype array_of_types[], + MPI_Datatype *newtype); + +int AMPI_Type_create_resized (MPI_Datatype oldtype, + MPI_Aint lb, + MPI_Aint extent, + MPI_Datatype *newtype); + +/** + * create reduction op, calls MPI_Op_create, stores info + */ +int AMPI_Op_create(MPI_User_function *function, + int commute, + MPI_Op *op); + +/** + * One-sided MPI + */ + + +int FW_AMPI_Win_create( void *base, + MPI_Aint size, + int disp_unit, + MPI_Info info, + MPI_Comm comm, + AMPI_Win *win + ); + +int BW_AMPI_Win_create( void *base, + MPI_Aint size, + int disp_unit, + MPI_Info info, + MPI_Comm comm, + AMPI_Win *win + ); + +int FW_AMPI_Win_free( AMPI_Win *win ); + +int BW_AMPI_Win_free( AMPI_Win *win ); + +int FW_AMPI_Get( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win + ); + +int BW_AMPI_Get( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win + ); + +int FW_AMPI_Get( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win + ); + +int BW_AMPI_Put( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win + ); + +int FW_AMPI_Win_fence( int assert, + AMPI_Win win ); + +int BW_AMPI_Win_fence( int assert, + AMPI_Win win ); + + + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/libCommon/st.h b/tools/TAP_support/ADFirstAidKit/ampi/libCommon/st.h new file mode 100644 index 0000000000..d6d39cfb3f --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/libCommon/st.h @@ -0,0 +1,43 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_LIBCOMMON_ST_H_ +#define _AMPI_LIBCOMMON_ST_H_ + +/** + * \file + * common AD implementation portion of AMPI routines from ampi/userIF/st.h + */ + +#include + +#if defined(__cplusplus) +extern "C" { +#endif + +#include "ampi/userIF/request.h" + +/** + * forward sweep variant of \ref AMPI_Wait_ST + */ +int FW_AMPI_Wait_ST(AMPI_Request *request, + void *buf, + MPI_Status *status); + +/** + * backward sweep variant of \ref AMPI_Wait_ST + */ +int BW_AMPI_Wait_ST(AMPI_Request *request, + void *buf, + MPI_Status *status); + +#if defined(__cplusplus) +} +#endif + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/tape/support.h b/tools/TAP_support/ADFirstAidKit/ampi/tape/support.h new file mode 100644 index 0000000000..967ed58c92 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/tape/support.h @@ -0,0 +1,69 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_TAPE_SUPPORT_H_ +#define _AMPI_TAPE_SUPPORT_H_ + +#include +#if defined(__cplusplus) +extern "C" { +#endif + +#include "ampi/userIF/request.h" + +/** + * \file + * \brief interface to a reusable tape to read and write in particular the opaque MPI types + */ + +void TAPE_AMPI_init(); +void TAPE_AMPI_resetBottom(); +void TAPE_AMPI_resetTop(); + +void TAPE_AMPI_push_int(int an_int); +void TAPE_AMPI_pop_int(int *an_int); +void TAPE_AMPI_read_int(int* an_int); + +void TAPE_AMPI_push_MPI_Aint(MPI_Aint an_MPI_Aint); +void TAPE_AMPI_pop_MPI_Aint(MPI_Aint *an_MPI_Aint); +void TAPE_AMPI_read_MPI_Aint(MPI_Aint* an_MPI_Aint); + +void TAPE_AMPI_push_ptr(void *ptr); +void TAPE_AMPI_pop_ptr(void **ptr); +void TAPE_AMPI_read_ptr(void **ptr); + +void TAPE_AMPI_push_MPI_Datatype(MPI_Datatype an_MPI_Datatype); +void TAPE_AMPI_pop_MPI_Datatype(MPI_Datatype *an_MPI_Datatype); +void TAPE_AMPI_read_MPI_Datatype(MPI_Datatype* an_MPI_Datatype); + +void TAPE_AMPI_push_MPI_Comm(MPI_Comm an_MPI_Comm); +void TAPE_AMPI_pop_MPI_Comm(MPI_Comm *an_MPI_Comm); +void TAPE_AMPI_read_MPI_Comm(MPI_Comm* an_MPI_Comm); + +void TAPE_AMPI_push_MPI_Request(MPI_Request an_MPI_Request); +void TAPE_AMPI_pop_MPI_Request(MPI_Request *an_MPI_Request); +void TAPE_AMPI_read_MPI_Request(MPI_Request* an_MPI_Request); + +void TAPE_AMPI_push_MPI_Op(MPI_Op an_MPI_Op); +void TAPE_AMPI_pop_MPI_Op(MPI_Op *an_MPI_Op); +void TAPE_AMPI_read_MPI_Op(MPI_Op* an_MPI_Op); + +void TAPE_AMPI_push_double(double a_double); +void TAPE_AMPI_pop_double(double *a_double); +void TAPE_AMPI_read_double(double* a_double); + +void TAPE_AMPI_push_MPI_Win(MPI_Win an_MPI_Win); +void TAPE_AMPI_pop_MPI_Win(MPI_Win *an_MPI_Win); +void TAPE_AMPI_read_MPI_Win(MPI_Win* an_MPI_Win); + +#if defined(__cplusplus) +} +#endif + +#endif + diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/activity.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/activity.h new file mode 100644 index 0000000000..853b0b4db5 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/activity.h @@ -0,0 +1,34 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_ACTIVITY_H_ +#define _AMPI_ACTIVITY_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * enumeration to distinguish between active and passive variants of MPI_Datatype parameters passed to AMPI routines + */ + +#include "ampi/userIF/libConfig.h" + +/** \ingroup UserInterfaceDeclarations + * @{ + */ +enum AMPI_Activity_E { + AMPI_PASSIVE=0, + AMPI_ACTIVE=1 +}; + +#ifdef AMPI_FORTRANCOMPATIBLE +typedef int AMPI_Activity; +#else +typedef enum AMPI_Activity_E AMPI_Activity; +#endif +/** @} */ +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/libConfig.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/libConfig.h new file mode 100644 index 0000000000..398de71103 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/libConfig.h @@ -0,0 +1,20 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef AMPI_LIBCONFIG_H +#define AMPI_LIBCONFIG_H + + +/* Defined when configured with --enable-fortranCompatible . */ +#define AMPI_FORTRANCOMPATIBLE + +/* Defined when configured with --enable-requestOnTrace . */ +#undef AMPI_REQUESTONTRACE + +#endif + diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/modified.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/modified.h new file mode 100644 index 0000000000..3074d63d78 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/modified.h @@ -0,0 +1,649 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_MODIFIED_H_ +#define _AMPI_MODIFIED_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * AMPI routines that have adjoint functionality and do no merely pass through to the MPI originals; the routines may signatures with additional parameters compared to their original MPI counterparts + */ + +#include "ampi/userIF/pairedWith.h" +#include "ampi/userIF/request.h" +#include "ampi/userIF/window.h" + +/** + * \todo move out of userIF + * user-defined type data + * only one instance of derivedTypeData exists at once + * get pointer from getDTypeData, add new stuff with addDTypeData + */ +typedef struct { + int size; + int preAlloc; + int* num_actives; + /* displacements of first/last active blocks */ + MPI_Aint* first_active_blocks; + MPI_Aint* last_active_blocks; + /* need to know last active block length to find last active element */ + int* last_active_block_lengths; + MPI_Datatype* derived_types; + int* counts; + int** arrays_of_blocklengths; + MPI_Aint** arrays_of_displacements; + MPI_Datatype** arrays_of_types; + MPI_Aint* lbs; + MPI_Aint* extents; + /* corresponding typemaps packed for sending */ + MPI_Datatype* packed_types; + int** arrays_of_p_blocklengths; + MPI_Aint** arrays_of_p_displacements; + MPI_Datatype** arrays_of_p_types; + MPI_Aint* p_extents; +} derivedTypeData; + +/** + * \todo move out of userIF + * + */ +derivedTypeData* getDTypeData(); + +/** + * \todo move out of userIF + * + */ +void releaseDTypeData(); +/** + * \todo move out of userIF + * + * @param dat + * @param count + * @param array_of_blocklengths + * @param array_of_displacements + * @param array_of_types + * @param lower_bound + * @param extent + * @param array_of_p_blocklengths + * @param array_of_p_displacements + * @param array_of_p_types + * @param p_extent + * @param newtype + * @param packed_type + * addDTypeData takes derived type data and adds a new entry; returns + * position of new type in data struct; returns -1 if struct contains no active types; + * doubles data struct size every time there's overflow + */ +void addDTypeData(derivedTypeData* dat, + int count, + int array_of_blocklengths[], + MPI_Aint array_of_displacements[], + MPI_Datatype array_of_types[], + MPI_Aint lower_bound, + MPI_Aint extent, + int array_of_p_blocklengths[], + MPI_Aint array_of_p_displacements[], + MPI_Datatype array_of_p_types[], + MPI_Aint p_extent, + MPI_Datatype* newtype, + MPI_Datatype* packed_type); +int derivedTypeIdx(MPI_Datatype datatype); +/** + * \todo move out of userIF + * @param dt_idx + * @return + */ +int isDerivedType(int dt_idx); + +/** + * \todo move out of userIF + * user-defined reduction op data + * only one instance of userDefinedOpData exists at once + * get pointer from getUOpData, add new stuff with addUOpData + */ +typedef struct { + int size; + int preAlloc; + MPI_Op* ops; + MPI_User_function** functions; + int* commutes; +} userDefinedOpData; + +/** + * \todo move out of userIF + * @return + */ +userDefinedOpData* getUOpData(); + +/** + * \todo move out of userIF + * @param dat + * @param op a user-defined operation + * @param function + * @param commute + * takes user-defined op and adds a new entry; + * doubles data struct size every + * time there's overflow + */ +void addUOpData(userDefinedOpData* dat, + MPI_Op* op, + MPI_User_function* function, + int commute); +/** + * \todo move out of userIF + * @param op + * @return + */ +int userDefinedOpIdx(MPI_Op op); +/** + * \todo move out of userIF + * @param uop_idx + * @return + */ +int isUserDefinedOp(int uop_idx); +/** + * \todo move out of userIF + */ +void releaseUOpData(); + +/** \ingroup UserInterfaceDeclarations + * @{ + */ + +/** + * active variant of the predefined MPI_DOUBLE + */ +extern MPI_Datatype AMPI_ADOUBLE; + +/** + * active variant of the predefined MPI_FLOAT + */ +extern MPI_Datatype AMPI_AFLOAT; + +#ifdef AMPI_FORTRANCOMPATIBLE + +/** + * active variant of the predefined MPI_DOUBLE_PRECISION + */ +extern MPI_Datatype AMPI_ADOUBLE_PRECISION; + +/** + * active variant of the predefined MPI_REAL + */ +extern MPI_Datatype AMPI_AREAL; + +#endif + +/** + * adjoint needs to MPI_Finalize; signature identical to original MPI call + */ +int AMPI_Init(int* argc, + char*** argv); + +/** + * adjoint needs to MPI_Init; signature identical to AMPI_Init (adjoint symmetry) + */ +int AMPI_Finalize(int* argc, + char*** argv); + +/** + * adjoint needs to detach; signature identical to original MPI call + */ +int AMPI_Buffer_attach(void *buffer, + int size); + +/** + * adjoint needs to attach; signature identical to original MPI call + */ +int AMPI_Buffer_detach(void *buffer, + int *size); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param dest + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @return + */ +int AMPI_Send(void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param src + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @param status + * @return + */ +int AMPI_Recv(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + MPI_Status* status); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param dest + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @param request see \ref requests + * @return + */ +int AMPI_Isend (void* buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param src + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @param request see \ref requests + * @return + */ +int AMPI_Irecv (void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm, + AMPI_Request* request); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param dest + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @return + */ +int AMPI_Bsend(void *buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param dest + * @param tag + * @param pairedWith see \ref pairings + * @param comm + * @return + */ +int AMPI_Rsend(void *buf, + int count, + MPI_Datatype datatype, + int dest, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param buf + * @param count + * @param datatype see \ref datatypes + * @param root + * @param comm + * @return + */ +int AMPI_Bcast (void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sbuf + * @param rbuf + * @param count + * @param datatype see \ref datatypes + * @param op + * @param root + * @param comm + * @return + */ +int AMPI_Reduce (void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sbuf + * @param rbuf + * @param count + * @param datatype see \ref datatypes + * @param op + * @param comm + * @return + */ +int AMPI_Allreduce (void* sbuf, + void* rbuf, + int count, + MPI_Datatype datatype, + MPI_Op op, + MPI_Comm comm); + + +/** + * before we start reverse we need to make sure there are no pending requests in our userIF bookkeeping + */ +int AMPI_Wait(AMPI_Request *request, + MPI_Status *status); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param count + * @param requests see \ref requests + * @param statuses + * @return + */ +int AMPI_Waitall (int count, + AMPI_Request requests[], + MPI_Status statuses[]); + +/** + * @param count + * @param requests see \ref requests + * @param statuses + * @return + */ +int AMPI_Awaitall (int count, + AMPI_Request requests[], + MPI_Status statuses[]); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param comm + * @return + */ +int AMPI_Barrier(MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcnt + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcnt + * @param recvtype see \ref datatypes + * @param root + * @param comm + * @return + */ +int AMPI_Gather(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcnt + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcnt + * @param recvtype see \ref datatypes + * @param root + * @param comm + * @return + */ +int AMPI_Scatter(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcount + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcount + * @param recvtype see \ref datatypes + * @param comm + * @return + */ +int AMPI_Allgather(void *sendbuf, + int sendcount, + MPI_Datatype sendtype, + void *recvbuf, + int recvcount, + MPI_Datatype recvtype, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcnt + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcnts + * @param displs + * @param recvtype see \ref datatypes + * @param root + * @param comm + * @return + */ +int AMPI_Gatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + int root, + MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcnts + * @param displs + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcnt + * @param recvtype see \ref datatypes + * @param root + * @param comm + * @return + */ +int AMPI_Scatterv(void *sendbuf, + int *sendcnts, + int *displs, + MPI_Datatype sendtype, + void *recvbuf, + int recvcnt, + MPI_Datatype recvtype, + int root, MPI_Comm comm); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param sendbuf + * @param sendcnt + * @param sendtype see \ref datatypes + * @param recvbuf + * @param recvcnts + * @param displs + * @param recvtype see \ref datatypes + * @param comm + * @return + */ +int AMPI_Allgatherv(void *sendbuf, + int sendcnt, + MPI_Datatype sendtype, + void *recvbuf, + int *recvcnts, + int *displs, + MPI_Datatype recvtype, + MPI_Comm comm); + + +int AMPI_Comm_dup(MPI_Comm comm, MPI_Comm *dupComm) ; + +/** + * Same as \ref AMPI_Comm_dup but manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade) + */ +int TLS_AMPI_Comm_dup(MPI_Comm comm, MPI_Comm *dupComm) ; + +int AMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *dupComm) ; + +/** + * Same as \ref AMPI_Comm_split but manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade) + */ +int TLS_AMPI_Comm_split(MPI_Comm comm, int color, int key, MPI_Comm *dupComm) ; + +int AMPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *dupComm) ; + +/** + * Same as \ref AMPI_Comm_create but manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade) + */ +int TLS_AMPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *dupComm) ; + +int AMPI_Comm_free(MPI_Comm *comm) ; + +/** + * Same as \ref AMPI_Comm_free but manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade) + */ +int TLS_AMPI_Comm_free(MPI_Comm *comm) ; + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param base + * @param size + * @param disp_unit + * @param info + * @param comm + * @param win active window + * + * @return + */ +int AMPI_Win_create( void *base, + MPI_Aint size, + int disp_unit, + MPI_Info info, + MPI_Comm comm, + AMPI_Win *win ); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param assert + * @param win active window + * + * @return + */ +int AMPI_Win_fence( int assert, + AMPI_Win win ); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param win active window + * + * @return + */ +int AMPI_Win_free( AMPI_Win *win ); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param origin_addr + * @param origin_count + * @param origin_datatype see \ref datatypes + * @param target_rank + * @param target_disp + * @param target_count + * @param target_datatype see \ref datatypes + * @param win active window + * + * @return + */ +int AMPI_Get( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win ); + +/** + * all parameters as in the MPI standard with exceptions as listed + * @param origin_addr + * @param origin_count + * @param origin_datatype see \ref datatypes + * @param target_rank + * @param target_disp + * @param target_count + * @param target_datatype see \ref datatypes + * @param win active window + * + * @return + */ +int AMPI_Put( void *origin_addr, + int origin_count, + MPI_Datatype origin_datatype, + int target_rank, + MPI_Aint target_disp, + int target_count, + MPI_Datatype target_datatype, + AMPI_Win win ); + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/nt.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/nt.h new file mode 100644 index 0000000000..3842a8649d --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/nt.h @@ -0,0 +1,106 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_NT_H_ +#define _AMPI_NT_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * NT= "no tansformation" or "no trace" prototypes for wrapper routines that could have an adjoint action but in particular contexts do not because they are called outside of the transformed or traced section of the source code; the signatures are identical to their MPI originals and they pass the parameters through to the MPI routines + */ + +/** \ingroup UserInterfaceDeclarations + * @{ + */ + + +/** + * this wrapper variant of \ref AMPI_Init has no adjoint transformation / trace functionality; to be used outside of the transformed/traced code section + */ +int AMPI_Init_NT(int* argc, + char*** argv); + +/** + * this wrapper variant of \ref AMPI_Finalize has no adjoint transformation / trace functionality; to be used outside of the transformed/traced code section + */ +int AMPI_Finalize_NT(void); + +/** + * this wrapper variant of \ref AMPI_Buffer_attach has no adjoint transformation / trace functionality; to be used outside of the transformed/traced code section + */ +int AMPI_Buffer_attach_NT(void *buffer, + int size); + +/** + * this wrapper variant of \ref AMPI_Buffer_detach has no adjoint transformation / trace functionality; to be used outside of the transformed/traced code section + */ +int AMPI_Buffer_detach_NT(void *buffer, + int *size); + +int AMPI_Type_contiguous_NT(int count, + MPI_Datatype oldtype, + MPI_Datatype* newtype); + +int AMPI_Type_create_struct_NT(int count, + int array_of_blocklengths[], + MPI_Aint array_of_displacements[], + MPI_Datatype array_of_types[], + MPI_Datatype *newtype); + +int AMPI_Type_create_resized_NT(MPI_Datatype oldtype, + MPI_Aint lb, + MPI_Aint extent, + MPI_Datatype *newtype); + +int AMPI_Type_commit_NT(MPI_Datatype *datatype); + +int AMPI_Op_create_NT(MPI_User_function *function, + int commute, + MPI_Op *op); + +int AMPI_Type_free_NT(MPI_Datatype *datatype); + +int AMPI_Op_free_NT(MPI_Op *op); + +int AMPI_Comm_dup_NT(MPI_Comm comm, MPI_Comm *dupComm) ; + +/** + * this wrapper variant of \ref AMPI_Comm_dup manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade); to be used outside of the transformed/traced code section + */ +int TLS_AMPI_Comm_dup_NT(MPI_Comm comm, MPI_Comm *dupComm) ; + +int AMPI_Comm_split_NT(MPI_Comm comm, int color, int key, MPI_Comm *dupComm) ; + +/** + * this wrapper variant of \ref AMPI_Comm_split manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade); to be used outside of the transformed/traced code section + */ +int TLS_AMPI_Comm_split_NT(MPI_Comm comm, int color, int key, MPI_Comm *dupComm) ; + +int AMPI_Comm_create_NT(MPI_Comm comm, MPI_Group group, MPI_Comm *dupComm) ; + +/** + * this wrapper variant of \ref AMPI_Comm_create manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade); to be used outside of the transformed/traced code section + */ +int TLS_AMPI_Comm_create_NT(MPI_Comm comm, MPI_Group group, MPI_Comm *dupComm) ; + +int AMPI_Comm_free_NT(MPI_Comm *comm) ; + +/** + * this wrapper variant of \ref AMPI_Comm_free manages the shadow communicators if code is differentiated in tangent mode with ST-AD with shadow variables (e.g. Tapenade); to be used outside of the transformed/traced code section + */ +int TLS_AMPI_Comm_free_NT(MPI_Comm *comm) ; + +#ifdef AMPI_FORTRANCOMPATIBLE +/** Must be defined in the fortranSupport.F of the particular AD tool */ +void adtool_ampi_fortransetuptypes_(MPI_Fint* adouble, MPI_Fint* areal); +#endif + +/** @} */ + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/pairedWith.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/pairedWith.h new file mode 100644 index 0000000000..e5d450f7b3 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/pairedWith.h @@ -0,0 +1,82 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_PAIREDWITH_H_ +#define _AMPI_PAIREDWITH_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * enumeration to distinguish between active and passive variants of MPI_Datatype parameters passed to AMPI routines + */ + +#include "ampi/userIF/libConfig.h" + +/** \ingroup UserInterfaceDeclarations + * @{ + */ +/** + * the enumeration for communication pairings as explained in \ref pairings + */ +enum AMPI_PairedWith_E { + AMPI_TO_RECV, + AMPI_FROM_SEND, + AMPI_TO_IRECV_WAIT, + AMPI_TO_IRECV_WAITALL, + AMPI_FROM_ISEND_WAIT, + AMPI_FROM_ISEND_WAITALL, + AMPI_FROM_BSEND, + AMPI_FROM_RSEND, +}; + +#ifdef AMPI_FORTRANCOMPATIBLE +typedef int AMPI_PairedWith; +#else +typedef enum AMPI_PairedWith_E AMPI_PairedWith; +#endif + +/** + * the enumeration for call codes as explained in \ref pairings + */ +enum AMPI_CallCode_E { + AMPI_RECV, + AMPI_SEND, + AMPI_IRECV_WAIT, + AMPI_IRECV_WAITALL, + AMPI_ISEND_WAIT, + AMPI_ISEND_WAITALL, + AMPI_BSEND, + AMPI_RSEND, + AMPI_ISEND, + AMPI_IRECV, + AMPI_WAIT, + AMPI_GATHER, + AMPI_SCATTER, + AMPI_ALLGATHER, + AMPI_GATHERV, + AMPI_SCATTERV, + AMPI_ALLGATHERV, + AMPI_BCAST, + AMPI_REDUCE, + AMPI_ALLREDUCE, + AMPI_BARRIER, + AMPI_GET, + AMPI_PUT, + AMPI_WIN_CREATE, + AMPI_WIN_FENCE, + AMPI_WIN_FREE +}; + +#ifdef AMPI_FORTRANCOMPATIBLE +typedef int AMPI_CallCode; +#else +typedef enum AMPI_CallCode_E AMPI_CallCode; +#endif +/** @} */ + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/passThrough.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/passThrough.h new file mode 100644 index 0000000000..2f2f09b71a --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/passThrough.h @@ -0,0 +1,50 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_PASSTHOURGH_H_ +#define _AMPI_PASSTHOURGH_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * prototypes for wrapper routines with identical signatures that pass the parameters through to the MPI routines; we do this to gave a consistent AMPI naming scheme and avoid having to mix AMPI and MPI calls + */ + +/** \ingroup UserInterfaceDeclarations + * @{ + */ + +/** + * simple wrapper; signature is identical to MPI original + */ +int AMPI_Comm_size(MPI_Comm comm, + int *size); + +/** + * simple wrapper; signature is identical to MPI original + */ +int AMPI_Comm_rank(MPI_Comm comm, + int *rank); + +/** + * simple wrapper; signature is identical to MPI original + */ +int AMPI_Get_processor_name(char *name, + int *resultlen ); + +/** + * simple wrapper; signature is identical to MPI original + */ +int AMPI_Pack_size(int incount, + MPI_Datatype datatype, + MPI_Comm comm, + int *size); + +/** @} */ + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/request.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/request.h new file mode 100644 index 0000000000..a50f0d98ba --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/request.h @@ -0,0 +1,134 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_REQUEST_H_ +#define _AMPI_REQUEST_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * \brief definitions for an AMPI_Request which is an MPI_Request augmented with additional information + * + * the request in the AMPI context need to be used to track extra information; + * the extra information cannot be exposed in Fortran77 but there can be a + * Fortran90 equivalent and it can be exposed in C to allow source transformation + * tools to use TBR analysis on the tracked information. + */ + +#include "ampi/userIF/pairedWith.h" + +/** \ingroup UserInterfaceDeclarations + * @{ + */ +/** + * does the request originate with a send or a receive + */ +enum AMPI_Request_origin_E { + AMPI_SEND_ORIGIN, + AMPI_RECV_ORIGIN +}; + +#ifdef AMPI_FORTRANCOMPATIBLE +typedef int AMPI_Request_origin; +#else +typedef enum AMPI_Request_origin_E AMPI_Request_origin; +#endif + +/** + * MPI_Request augmented with extra information + */ +struct AMPI_Request_S { + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv buf parameter + */ + void *buf; + + /** + * The corresponding adjoint buffer + */ + void *adjointBuf ; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv count parameter + */ + int count; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv datatype parameter + */ + MPI_Datatype datatype; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv dst or src parameter + */ + int endPoint; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv tag parameter + */ + int tag; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv sets this + */ + enum AMPI_PairedWith_E pairedWith; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv comm parameter + */ + MPI_Comm comm; + + /** + * temporary adjoint buffer; not to be traced + */ + void *adjointTempBuf; + + /** + * the count of the adjoint buffer size in terms of the original data type; not to be traced; + */ + int adjointCount; + + /** + * the "plain" request returned by MPI_Isend or MPI_Irecv resp; not to be traced + */ + MPI_Request plainRequest; + + /** + * the "plain" request returned in the bw sweep by the MPI_Send/Recv in the BW_AMPI_Wait + */ + MPI_Request bwRequest; + + /** + * the "plain" request returned by MPI_Isend or MPI_Irecv resp; + */ + MPI_Request tracedRequest; + + /** + * the "plain" request returned by the shadow MPI_Isend or MPI_Irecv resp (TLS mode); + */ + MPI_Request shadowRequest; + + /** + * \ref AMPI_Isend / \ref AMPI_Irecv sets this + */ + enum AMPI_Request_origin_E origin; + + void *idx; + +}; + +#ifdef AMPI_FORTRANCOMPATIBLE +typedef MPI_Request AMPI_Request; +#else +typedef struct AMPI_Request_S AMPI_Request; +#endif + +/** @} */ + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/st.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/st.h new file mode 100644 index 0000000000..1cabb358d5 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/st.h @@ -0,0 +1,37 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_ST_H_ +#define _AMPI_ST_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * ST = "source tansformation" specific versions of routines that exist because generic memory mapping is not yet implemented in any source transformation tool + */ + +#include "ampi/userIF/request.h" + +/** \ingroup UserInterfaceDeclarations + * @{ + */ + +/** + * variant of \ref AMPI_Wait with an extra parameter + * \param request follows the semantics of MPI_Wait + * \param buf is the buffer that was passed to the corresponding \ref AMPI_Isend or \ref AMPI_Irecv call; + * see \ref nonblocking for a discussion of the necessity of the buf parameter. + * \param status follows the semantics of MPI_Wait + */ +int AMPI_Wait_ST(AMPI_Request *request, + void *buf, + MPI_Status *status); + +/** @} */ + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampi/userIF/window.h b/tools/TAP_support/ADFirstAidKit/ampi/userIF/window.h new file mode 100644 index 0000000000..042bfafb38 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampi/userIF/window.h @@ -0,0 +1,89 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ +#ifndef _AMPI_WINDOW_H_ +#define _AMPI_WINDOW_H_ + +/** + * \file + * \ingroup UserInterfaceHeaders + * The windows in the AMPI context need to be used to track extra information + * simlilarly to the requests. Each window has a stack that is used to trace the + * one-sided communication. We do not resort to the ampi tape since the + * structures differ. + */ + +#include +#include "ampi/userIF/libConfig.h" +/** + * \def Number of traced communications in a stack chunk + */ +#define AMPI_WINDOW_STACK_CHUNK_SIZE 1000 +/* + * @{ + * \name Structures and functions related to the tracing of one-sided + * communication. + */ + +typedef struct { + void *origin_addr; + int origin_count; + MPI_Datatype origin_datatype; + int target_rank; + MPI_Aint target_disp; + int target_count; + MPI_Datatype target_datatype; + void *adjointTempBuf; + void *adjointBuf; + int adjointCount; + void *idx; +} AMPI_WinRequest; + +typedef struct { + AMPI_WinRequest *v; + int top; + size_t size; + MPI_Aint num_reqs; +} AMPI_Win_stack; + + +void AMPI_WIN_STACK_push(AMPI_Win_stack *s, AMPI_WinRequest req); +AMPI_WinRequest AMPI_WIN_STACK_pop(AMPI_Win_stack *s); +void AMPI_WIN_STACK_stack_init(AMPI_Win_stack *s); +void AMPI_WIN_STACK_destroy(AMPI_Win_stack *s); +int AMPI_WIN_STACK_full(AMPI_Win_stack *s); +void AMPI_WIN_STACK_expand(AMPI_Win_stack *s); +void AMPI_WIN_STACK_shrink(AMPI_Win_stack *s); +int AMPI_WIN_STACK_empty(AMPI_Win_stack *s); + + + +/** + * AMPI_Win augmented with extra information + */ +typedef struct { + void **map; /**< The mapped window for interleaved types */ + void *base; /**< The base of the original window */ + void *idx; /**< Tape indices for the adjoint computation */ + MPI_Aint size; /**< Size of the window */ + AMPI_Win_stack *req_stack; /**< Bookkeeping of the executed one-sided communications */ + MPI_Win **plainWindow; /**< original MPI_Win */ + int num_reqs; + MPI_Comm comm; + MPI_Aint disp; +} AMPI_Win; + + +/** + * Synchronzation of the window + */ +void AMPI_WIN_sync(AMPI_Win win); +/** @} */ + + +#endif diff --git a/tools/TAP_support/ADFirstAidKit/ampiSupport.c b/tools/TAP_support/ADFirstAidKit/ampiSupport.c new file mode 100644 index 0000000000..c19181dde3 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/ampiSupport.c @@ -0,0 +1,937 @@ +/* +########################################################## +# This file is part of the AdjoinableMPI library # +# released under the MIT License. # +# The full COPYRIGHT notice can be found in the top # +# level directory of the AdjoinableMPI distribution. # +########################################################## +*/ + +/* The following to set the AMPI_FORTRANCOMPATIBLE + * if it was placed in the configure command. */ +#include "ampi/userIF/libConfig.h" + +#include +#include +#include +#include +#include "ampi/adTool/support.h" +#include +#include "ampi/ampi.h" +#include "ampi/libCommon/modified.h" + +struct AMPI_ShadowComm_list { + struct AMPI_ShadowComm_list *next_p; + MPI_Comm comm ; + MPI_Comm shadowComm ; +} ; + +struct AMPI_ShadowComm_list * ADTOOL_AMPI_SHADOWCOMM_LIST = NULL ; + +struct AMPI_Request_stack { + struct AMPI_Request_stack *next_p; + void *buf ; + void *adjointBuf ; + int count ; + MPI_Datatype datatype ; + int endPoint ; + int tag ; + enum AMPI_PairedWith_E pairedWith; + MPI_Comm comm; + enum AMPI_Activity_E isActive; + enum AMPI_Request_origin_E origin; +} ; + +int AMPI_Init_NT(int* argc, char*** argv) { + int rc = MPI_Init(argc, argv); + ADTOOL_AMPI_setupTypes() ; + MPI_Comm worldDup ; + int rc2 = MPI_Comm_dup(MPI_COMM_WORLD, &worldDup) ; + assert(rc2==MPI_SUCCESS); + ADTOOL_AMPI_SHADOWCOMM_LIST = NULL ; + ADTOOL_AMPI_addShadowComm(MPI_COMM_WORLD, worldDup) ; + ourADTOOL_AMPI_FPCollection.pushBcastInfo_fp=&ADTOOL_AMPI_pushBcastInfo; + ourADTOOL_AMPI_FPCollection.popBcastInfo_fp=&ADTOOL_AMPI_popBcastInfo; + ourADTOOL_AMPI_FPCollection.pushDoubleArray_fp=&ADTOOL_AMPI_pushDoubleArray; + ourADTOOL_AMPI_FPCollection.popDoubleArray_fp=&ADTOOL_AMPI_popDoubleArray; + ourADTOOL_AMPI_FPCollection.pushReduceInfo_fp=&ADTOOL_AMPI_pushReduceInfo; + ourADTOOL_AMPI_FPCollection.popReduceCountAndType_fp=&ADTOOL_AMPI_popReduceCountAndType; + ourADTOOL_AMPI_FPCollection.popReduceInfo_fp=&ADTOOL_AMPI_popReduceInfo; + ourADTOOL_AMPI_FPCollection.pushSRinfo_fp=&ADTOOL_AMPI_pushSRinfo; + ourADTOOL_AMPI_FPCollection.popSRinfo_fp=&ADTOOL_AMPI_popSRinfo; + ourADTOOL_AMPI_FPCollection.pushGSinfo_fp=&ADTOOL_AMPI_pushGSinfo; + ourADTOOL_AMPI_FPCollection.popGScommSizeForRootOrNull_fp=&ADTOOL_AMPI_popGScommSizeForRootOrNull; + ourADTOOL_AMPI_FPCollection.popGSinfo_fp=&ADTOOL_AMPI_popGSinfo; + ourADTOOL_AMPI_FPCollection.pushGSVinfo_fp=&ADTOOL_AMPI_pushGSVinfo; + ourADTOOL_AMPI_FPCollection.popGSVinfo_fp=&ADTOOL_AMPI_popGSVinfo; + ourADTOOL_AMPI_FPCollection.push_CallCode_fp=&ADTOOL_AMPI_push_CallCode; + ourADTOOL_AMPI_FPCollection.pop_CallCode_fp=&ADTOOL_AMPI_pop_CallCode; + ourADTOOL_AMPI_FPCollection.push_AMPI_Request_fp=&ADTOOL_AMPI_push_AMPI_Request; + ourADTOOL_AMPI_FPCollection.pop_AMPI_Request_fp=&ADTOOL_AMPI_pop_AMPI_Request; + ourADTOOL_AMPI_FPCollection.push_request_fp=&ADTOOL_AMPI_push_request; + ourADTOOL_AMPI_FPCollection.pop_request_fp=&ADTOOL_AMPI_pop_request; + ourADTOOL_AMPI_FPCollection.push_comm_fp=&ADTOOL_AMPI_push_comm; + ourADTOOL_AMPI_FPCollection.pop_comm_fp=&ADTOOL_AMPI_pop_comm; + ourADTOOL_AMPI_FPCollection.rawData_fp=&ADTOOL_AMPI_rawData; + ourADTOOL_AMPI_FPCollection.rawDataV_fp=&ADTOOL_AMPI_rawDataV; + ourADTOOL_AMPI_FPCollection.packDType_fp=&ADTOOL_AMPI_packDType; + ourADTOOL_AMPI_FPCollection.unpackDType_fp=&ADTOOL_AMPI_unpackDType; + ourADTOOL_AMPI_FPCollection.writeData_fp=&ADTOOL_AMPI_writeData; + ourADTOOL_AMPI_FPCollection.writeDataV_fp=&ADTOOL_AMPI_writeDataV; + ourADTOOL_AMPI_FPCollection.rawAdjointData_fp=&ADTOOL_AMPI_rawAdjointData; + ourADTOOL_AMPI_FPCollection.Turn_fp=&ADTOOL_AMPI_Turn; + ourADTOOL_AMPI_FPCollection.mapBufForAdjoint_fp=&ADTOOL_AMPI_mapBufForAdjoint; + ourADTOOL_AMPI_FPCollection.setBufForAdjoint_fp=&ADTOOL_AMPI_setBufForAdjoint; + ourADTOOL_AMPI_FPCollection.getAdjointCount_fp=&ADTOOL_AMPI_getAdjointCount; + ourADTOOL_AMPI_FPCollection.setAdjointCount_fp=&ADTOOL_AMPI_setAdjointCount; + ourADTOOL_AMPI_FPCollection.setAdjointCountAndTempBuf_fp=&ADTOOL_AMPI_setAdjointCountAndTempBuf; + ourADTOOL_AMPI_FPCollection.allocateTempBuf_fp=&ADTOOL_AMPI_allocateTempBuf; + ourADTOOL_AMPI_FPCollection.releaseAdjointTempBuf_fp=&ADTOOL_AMPI_releaseAdjointTempBuf; + ourADTOOL_AMPI_FPCollection.adjointMultiply_fp=&ADTOOL_AMPI_adjointMultiply; + ourADTOOL_AMPI_FPCollection.adjointMin_fp=&ADTOOL_AMPI_adjointMin; + ourADTOOL_AMPI_FPCollection.adjointMax_fp=&ADTOOL_AMPI_adjointMax; + ourADTOOL_AMPI_FPCollection.multiplyAdjoint_fp=&ADTOOL_AMPI_multiplyAdjoint; + ourADTOOL_AMPI_FPCollection.divideAdjoint_fp=&ADTOOL_AMPI_divideAdjoint; + ourADTOOL_AMPI_FPCollection.equalAdjoints_fp=&ADTOOL_AMPI_equalAdjoints; + ourADTOOL_AMPI_FPCollection.incrementAdjoint_fp=&ADTOOL_AMPI_incrementAdjoint; + ourADTOOL_AMPI_FPCollection.nullifyAdjoint_fp=&ADTOOL_AMPI_nullifyAdjoint; + ourADTOOL_AMPI_FPCollection.setupTypes_fp=&ADTOOL_AMPI_setupTypes; + ourADTOOL_AMPI_FPCollection.cleanupTypes_fp=&ADTOOL_AMPI_cleanupTypes; + ourADTOOL_AMPI_FPCollection.FW_rawType_fp=&ADTOOL_AMPI_FW_rawType; + ourADTOOL_AMPI_FPCollection.BW_rawType_fp=&ADTOOL_AMPI_BW_rawType; + ourADTOOL_AMPI_FPCollection.isActiveType_fp=&ADTOOL_AMPI_isActiveType; + ourADTOOL_AMPI_FPCollection.allocateTempActiveBuf_fp=&ADTOOL_AMPI_allocateTempActiveBuf; + ourADTOOL_AMPI_FPCollection.releaseTempActiveBuf_fp=&ADTOOL_AMPI_releaseTempActiveBuf; + ourADTOOL_AMPI_FPCollection.copyActiveBuf_fp=&ADTOOL_AMPI_copyActiveBuf; + ourADTOOL_AMPI_FPCollection.tangentMultiply_fp=&ADTOOL_AMPI_tangentMultiply ; + ourADTOOL_AMPI_FPCollection.tangentMin_fp=&ADTOOL_AMPI_tangentMin ; + ourADTOOL_AMPI_FPCollection.tangentMax_fp=&ADTOOL_AMPI_tangentMax ; + ourADTOOL_AMPI_FPCollection.pushBuffer_fp=&ADTOOL_AMPI_pushBuffer ; + ourADTOOL_AMPI_FPCollection.popBuffer_fp=&ADTOOL_AMPI_popBuffer ; + ourADTOOL_AMPI_FPCollection.addShadowComm_fp=&ADTOOL_AMPI_addShadowComm ; + ourADTOOL_AMPI_FPCollection.getShadowComm_fp=&ADTOOL_AMPI_getShadowComm ; + ourADTOOL_AMPI_FPCollection.delShadowComm_fp=&ADTOOL_AMPI_delShadowComm ; +#ifdef AMPI_FORTRANCOMPATIBLE + ourADTOOL_AMPI_FPCollection.fortransetuptypes__fp=&adtool_ampi_fortransetuptypes_; + ourADTOOL_AMPI_FPCollection.fortrancleanuptypes__fp=&adtool_ampi_fortrancleanuptypes_; +#endif + return rc ; +} + +static struct AMPI_Request_stack* requestStackTop=0 ; +void ADTOOL_AMPI_pushBcastInfo(void* buf, + int count, + MPI_Datatype datatype, + int root, + MPI_Comm comm) { +} + +void ADTOOL_AMPI_popBcastInfo(void** buf, + int* count, + MPI_Datatype* datatype, + int* root, + MPI_Comm* comm, + void **idx) { +} + +void ADTOOL_AMPI_pushDoubleArray(void* buf, + int count) { +} + +void ADTOOL_AMPI_popDoubleArray(double* buf, + int* count) { +} + +void ADTOOL_AMPI_pushReduceInfo(void* sbuf, + void* rbuf, + void* resultData, + int pushResultData, /* push resultData if true */ + int count, + MPI_Datatype datatype, + MPI_Op op, + int root, + MPI_Comm comm) { +} + +void ADTOOL_AMPI_popReduceCountAndType(int* count, + MPI_Datatype* datatype) { +} + +void ADTOOL_AMPI_popReduceInfo(void** sbuf, + void** rbuf, + void** prevData, + void** resultData, + int* count, + MPI_Op* op, + int* root, + MPI_Comm* comm, + void **idx) { +} + +extern void pushInteger4Array(int *x, int n) ; +extern void popInteger4Array(int *x, int n) ; + +void ADTOOL_AMPI_pushSRinfo(void* buf, + int count, + MPI_Datatype datatype, + int src, + int tag, + AMPI_PairedWith pairedWith, + MPI_Comm comm) { + /* [llh] TODO: this is not nice: we should call pushInteger4() instead ! */ + pushInteger4Array(&src,1) ; + pushInteger4Array(&tag,1) ; +} + +void ADTOOL_AMPI_popSRinfo(void** buf, + int* count, + MPI_Datatype* datatype, + int* src, + int* tag, + AMPI_PairedWith* pairedWith, + MPI_Comm* comm, + void **idx) { + /* [llh] TODO: this is not nice: we should call popInteger4() instead ! */ + popInteger4Array(tag,1) ; + popInteger4Array(src,1) ; +} + +void ADTOOL_AMPI_pushGSinfo(int commSizeForRootOrNull, + void *rbuf, + int rcnt, + MPI_Datatype rtype, + void *buf, + int count, + MPI_Datatype type, + int root, + MPI_Comm comm) { + pushInteger4Array(&commSizeForRootOrNull,1) ; +} + +void ADTOOL_AMPI_popGScommSizeForRootOrNull(int *commSizeForRootOrNull) { + popInteger4Array(commSizeForRootOrNull,1) ; +} + +void ADTOOL_AMPI_popGSinfo(int commSizeForRootOrNull, + void **rbuf, + int *rcnt, + MPI_Datatype *rtype, + void **buf, + int *count, + MPI_Datatype *type, + int *root, + MPI_Comm *comm) { +} + +void ADTOOL_AMPI_pushGSVinfo(int commSizeForRootOrNull, + void *rbuf, + int *rcnts, + int *displs, + MPI_Datatype rtype, + void *buf, + int count, + MPI_Datatype type, + int root, + MPI_Comm comm) { + pushInteger4Array(&commSizeForRootOrNull,1) ; +} + +void ADTOOL_AMPI_popGSVinfo(int commSizeForRootOrNull, + void **rbuf, + int *rcnts, + int *displs, + MPI_Datatype *rtype, + void **buf, + int *count, + MPI_Datatype *type, + int *root, + MPI_Comm *comm) { +} + +void ADTOOL_AMPI_push_CallCode(enum AMPI_CallCode_E thisCall) { +} + +void ADTOOL_AMPI_pop_CallCode(enum AMPI_CallCode_E *thisCall) { +} + +void ADTOOL_AMPI_push_AMPI_Request(struct AMPI_Request_S *ampiRequest) { + struct AMPI_Request_stack* newTop = + (struct AMPI_Request_stack*)malloc(sizeof(struct AMPI_Request_stack)) ; + newTop->next_p = requestStackTop ; + newTop->buf = ampiRequest->buf ; + newTop->adjointBuf = ampiRequest->adjointBuf ; + newTop->count = ampiRequest->count ; + newTop->datatype = ampiRequest->datatype ; + newTop->endPoint = ampiRequest->endPoint ; + newTop->tag = ampiRequest->tag ; + newTop->pairedWith = ampiRequest->pairedWith ; + newTop->comm = ampiRequest->comm ; + newTop->origin = ampiRequest->origin ; + requestStackTop = newTop ; +} + +void ADTOOL_AMPI_pop_AMPI_Request(struct AMPI_Request_S *ampiRequest) { + struct AMPI_Request_stack* oldTop = requestStackTop ; + ampiRequest->buf = oldTop->buf ; + ampiRequest->adjointBuf = oldTop->adjointBuf ; + ampiRequest->count = oldTop->count ; + ampiRequest->datatype = oldTop->datatype ; + ampiRequest->endPoint = oldTop->endPoint ; + ampiRequest->tag = oldTop->tag ; + ampiRequest->pairedWith = oldTop->pairedWith ; + ampiRequest->comm = oldTop->comm ; + ampiRequest->origin = oldTop->origin ; + requestStackTop = oldTop->next_p ; + free(oldTop) ; +} + +void ADTOOL_AMPI_push_request(MPI_Request request) { +} + +MPI_Request ADTOOL_AMPI_pop_request() { + return 0; +} + +void ADTOOL_AMPI_push_AMPI_WinRequest(AMPI_WinRequest *winRequest) { +} + +void ADTOOL_AMPI_pop_AMPI_WinRequest(AMPI_WinRequest *winRequest) { +} + +void ADTOOL_AMPI_push_comm(MPI_Comm comm) { +} + +MPI_Comm ADTOOL_AMPI_pop_comm() { + return 0; +} + +/** + * Register the info that the shadow communicator "dupComm" + * has been created for the new communicator "comm" + */ +void ADTOOL_AMPI_addShadowComm(MPI_Comm comm, MPI_Comm dupComm) { + struct AMPI_ShadowComm_list *newCell = + (struct AMPI_ShadowComm_list *)malloc(sizeof(struct AMPI_ShadowComm_list)) ; + newCell->next_p = ADTOOL_AMPI_SHADOWCOMM_LIST ; + newCell->comm = comm; + newCell->shadowComm = dupComm; + ADTOOL_AMPI_SHADOWCOMM_LIST = newCell; +} + +/** + * Get the shadow communicator used to separate the communication graph of + * (tangent-)diff variables from the communication graph of original variables + */ +MPI_Comm ADTOOL_AMPI_getShadowComm(MPI_Comm comm) { + struct AMPI_ShadowComm_list * inShadowCommList = ADTOOL_AMPI_SHADOWCOMM_LIST ; + while (inShadowCommList!=NULL && inShadowCommList->comm!=comm) { + inShadowCommList = inShadowCommList->next_p ; + } + if (inShadowCommList) { + return inShadowCommList->shadowComm ; + } else { + /* Nothing found about "comm": this is wrong!! fallback return comm */ + return comm ; + } +} + +/** + * Removes the info about the shadow communicator associated to "comm". + */ +void ADTOOL_AMPI_delShadowComm(MPI_Comm comm) { + struct AMPI_ShadowComm_list ** toinShadowCommList = &ADTOOL_AMPI_SHADOWCOMM_LIST ; + while (*toinShadowCommList!=NULL && (*toinShadowCommList)->comm!=comm) { + toinShadowCommList = &((*toinShadowCommList)->next_p) ; + } + if (*toinShadowCommList!=NULL) { + struct AMPI_ShadowComm_list *cell = *toinShadowCommList ; + toinShadowCommList = &(cell->next_p) ; + free(cell); + } +} + +/** Returns the non-diff part of a communication buffer + * passed to AMPI send or recv. For Tapenade, this is + * the communication buffer itself (association by name) */ +void* ADTOOL_AMPI_rawData(void* activeData, int *size) { + return activeData ; +} + +/** + * see \ref ADTOOL_AMPI_rawData + */ +void* ADTOOL_AMPI_rawDataV(void* activeData, int commSize, int *counts, int* displs) { + return activeData; +} + +/** + * returns contiguous data from indata + */ +void * ADTOOL_AMPI_packDType(void* indata, void* outdata, int count, int idx) { + return indata; +} + +/** + * unpacks contiguous data back into structure + */ +void * ADTOOL_AMPI_unpackDType(void* indata, void* outdata, int count, int idx) { + return indata; +} + +/** Returns the diff part of the adjoint of a communication buffer + * passed to AMPI send or recv. For Tapenade, this is + * the adjoint communication buffer itself (association by name) */ +void* ADTOOL_AMPI_rawAdjointData(void* activeData) { + return activeData ; +} + +/** Remembers the association from a request ampiRequest to its + * associated non-diff buffer buf */ +void ADTOOL_AMPI_mapBufForAdjoint(struct AMPI_Request_S *ampiRequest, + void* buf) { + ampiRequest->buf = buf ; + ampiRequest->adjointBuf = NULL ; +} + +/** Adds into the request-to-buffer association list the associated + * adjoint buffer adjointBuf of non-diff buffer buf + * This should be done upon turn from FW sweep to BW sweep. */ +void ADTOOL_AMPI_Turn(void* buf, void* adjointBuf) { + struct AMPI_Request_stack* inStack = requestStackTop ; + while (inStack!=NULL) { + if (inStack->buf==buf) { + inStack->adjointBuf = adjointBuf ; + } + inStack = inStack->next_p ; + } +} + +/*[llh] not used ? redundant with mapBufForAdjoint? */ +void ADTOOL_AMPI_setBufForAdjoint(struct AMPI_Request_S *ampiRequest, + void* buf) { + /* an overloading tool would not do this but rather leave the buffer as traced + because the memory mapping happens already at FW time */ + ampiRequest->buf=buf; +} + +void ADTOOL_AMPI_getAdjointCount(int *count, + MPI_Datatype datatype) { + /* for now we keep the count as is but for example in vector mode one would have to multiply by vector length */ +} + +void ADTOOL_AMPI_setAdjointCount(struct AMPI_Request_S *ampiRequest) { + ampiRequest->adjointCount=ampiRequest->count; + ADTOOL_AMPI_getAdjointCount(&(ampiRequest->adjointCount),ampiRequest->datatype); +} + +void ADTOOL_AMPI_setAdjointCountAndTempBuf(struct AMPI_Request_S *ampiRequest) { + ADTOOL_AMPI_setAdjointCount(ampiRequest); + ampiRequest->adjointTempBuf = + ADTOOL_AMPI_allocateTempBuf(ampiRequest->adjointCount, + ampiRequest->datatype, + ampiRequest->comm) ; + assert(ampiRequest->adjointTempBuf); +} + +void* ADTOOL_AMPI_allocateTempBuf(int adjointCount, MPI_Datatype datatype, MPI_Comm comm) { + size_t s=0; + int dt_idx = derivedTypeIdx(datatype); + if (datatype==MPI_DOUBLE || datatype==MPI_DOUBLE_PRECISION) + s=sizeof(double); + else if (datatype==MPI_FLOAT || datatype==MPI_REAL) + s=sizeof(float); + else if (isDerivedType(dt_idx)) + s = getDTypeData()->p_extents[dt_idx]; + else + MPI_Abort(comm, MPI_ERR_TYPE); + return (void*)malloc(adjointCount*s); +} + +void ADTOOL_AMPI_releaseAdjointTempBuf(void *tempBuf) { + free(tempBuf) ; +} + +void* ADTOOL_AMPI_allocateTempActiveBuf(int count, + MPI_Datatype datatype, + MPI_Comm comm) { +/* void* ptr = NULL; */ +/* if (datatype==MPI_DOUBLE) */ +/* ptr = malloc(count*sizeof(MPI_DOUBLE)); */ +/* else if (datatype==MPI_FLOAT) */ +/* ptr = malloc(count*sizeof(MPI_FLOAT)); */ + MPI_Aint lb, extent ; + int rc = MPI_Type_get_extent(datatype, &lb, &extent) ; + assert(rc==MPI_SUCCESS); + void* ptr = NULL ; + int size = ((char*)extent)-((char*)lb) ; + ptr = malloc(count*size) ; + assert(ptr); + return ptr; +} + +void ADTOOL_AMPI_releaseTempActiveBuf(void *buf, + int count, + MPI_Datatype datatype) { + free(buf); +} + +void *ADTOOL_AMPI_copyActiveBuf(void* source, + void* target, + int count, + MPI_Datatype datatype, + MPI_Comm comm) { + MPI_Aint lb,extent ; + int rc = MPI_Type_get_extent(datatype, &lb, &extent) ; + assert(rc==MPI_SUCCESS); + int size = extent - lb ; + memcpy(target, source, count*size) ; + return source; +} + +/** This is the tangent of assignment target=source*target. + * If targetd is NULL, does only the original assignment */ +void ADTOOL_AMPI_tangentMultiply(int count, MPI_Datatype datatype, MPI_Comm comm, + void *source, void *tangentSource, + void* target, void* tangentTarget) { + int i ; + if (datatype==MPI_DOUBLE || datatype==MPI_DOUBLE_PRECISION) { + double* tgt = (double*)target ; + double* tgtd = (double*)tangentTarget ; + double* src = (double*)source ; + double* srcd = (double*)tangentSource ; + for (i=0 ; i src[i]) { + if (tgtd) tgtd[i] = srcd[i] ; + tgt[i] = src[i] ; + } + } + } else if (datatype==MPI_FLOAT || datatype==MPI_REAL) { + float* tgt = (float*)target ; + float* tgtd = (float*)tangentTarget ; + float* src = (float*)source ; + float* srcd = (float*)tangentSource ; + for (i=0 ; i src[i]) { + if (tgtd) tgtd[i] = srcd[i] ; + tgt[i] = src[i] ; + } + } + } else + MPI_Abort(comm, MPI_ERR_TYPE); +} + +/** This is the tangent of assignment target=MAX(source,target). + * If targetd is NULL, does only the original assignment */ +void ADTOOL_AMPI_tangentMax(int count, MPI_Datatype datatype, MPI_Comm comm, + void *source, void *tangentSource, + void* target, void* tangentTarget) { + int i ; + if (datatype==MPI_DOUBLE || datatype==MPI_DOUBLE_PRECISION) { + double* tgt = (double*)target ; + double* tgtd = (double*)tangentTarget ; + double* src = (double*)source ; + double* srcd = (double*)tangentSource ; + for (i=0 ; itgt[i]) { + srcb[i] += tgtb[i] ; + tgtb[i] = 0.0 ; + } + } + } else if (datatype==MPI_FLOAT || datatype==MPI_REAL) { + float* tgt = (float*)target ; + float* tgtb = (float*)adjointTarget ; + float* src = (float*)source ; + float* srcb = (float*)adjointSource ; + for (i=0 ; itgt[i]) { + srcb[i] += tgtb[i] ; + tgtb[i] = 0.0 ; + } + } + } else + MPI_Abort(comm, MPI_ERR_TYPE); +} + +/** + * Multiply the given buffer target, which holds an adjoint, with the given source value + */ +void ADTOOL_AMPI_multiplyAdjoint(int adjointCount, MPI_Datatype datatype, MPI_Comm comm, void* target, void *source, void *idx) { + if (datatype==MPI_DOUBLE || datatype==MPI_DOUBLE_PRECISION) { + double *vb = (double *)target ; + double *nb = (double *)source ; + int i ; + for (i=0 ; iarrays_of_displacements[dt_idx] ; + int* fieldBlocklengths = dat->arrays_of_blocklengths[dt_idx] ; + MPI_Datatype* fieldTypes = dat->arrays_of_types[dt_idx] ; + int nbfields = dat->counts[dt_idx] ; + int i,j ; + for (i=0 ; iarrays_of_displacements[dt_idx] ; + int* fieldBlocklengths = dat->arrays_of_blocklengths[dt_idx] ; + MPI_Datatype* fieldTypes = dat->arrays_of_types[dt_idx] ; + int nbfields = dat->counts[dt_idx] ; + int i,j ; + for (i=0 ; ipacked_types[dt_idx]; + else return datatype; +} + +MPI_Datatype ADTOOL_AMPI_BW_rawType(MPI_Datatype datatype) { + int dt_idx = derivedTypeIdx(datatype); + if (datatype==AMPI_ADOUBLE) return MPI_DOUBLE; + else if (datatype==AMPI_AFLOAT) return MPI_FLOAT; + else if (isDerivedType(dt_idx)) return MPI_DOUBLE; + else return datatype; +} + +AMPI_Activity ADTOOL_AMPI_isActiveType(MPI_Datatype datatype) { + if (datatype==AMPI_ADOUBLE + || + datatype==AMPI_AFLOAT +#ifdef AMPI_FORTRANCOMPATIBLE + || + datatype==AMPI_ADOUBLE_PRECISION + || + datatype==AMPI_AREAL +#endif + ) return AMPI_ACTIVE; + return AMPI_PASSIVE; +} + +void *ADTOOL_AMPI_createWinMap(void *active_buf, MPI_Aint size){ + return NULL; +} + +void ADTOOL_AMPI_writeWinData(void *map, void *buf, MPI_Aint size){ +} + +MPI_Aint ADTOOL_AMPI_getWinSize(MPI_Aint size) { + return 0; +} diff --git a/tools/TAP_support/ADFirstAidKit/contextAD.sh b/tools/TAP_support/ADFirstAidKit/contextAD.sh new file mode 100755 index 0000000000..a2978b71cf --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/contextAD.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +if [ ! $# -eq 1 ] +then +echo "contextAD.sh: missing file operand" +exit 1 +fi + +TRACE=$1 + +if [ ! -f $TRACE ] +then +echo "contextAD.sh: "$TRACE": No such file " +exit 1 +fi + +INITVAR=`grep init $TRACE | sort -u | grep of | awk '{print $3}' | awk 'BEGIN{FS=","} {print $1}' ` +CONCVAR=`grep conclude $TRACE | sort -u | awk '{print $3}' | awk 'BEGIN{FS=":"} {print $1}' ` + +PERTURBED_RESULT=`grep "Condensed perturbed result" $TRACE | tail -1 | awk '{print $6}' ` +RESULT=`grep "Condensed result" $TRACE | tail -1 | awk '{print $5}' ` +TANGENT=`grep "Condensed tangent" $TRACE | tail -1 | awk '{print $4}' ` +ADJOINT=`grep "Condensed adjoint" $TRACE | tail -1 | awk '{print $4}' ` + + +echo "RESULT " $RESULT +echo "PERTURBED_RESULT" $PERTURBED_RESULT +echo "TANGENT " $TANGENT +echo "ADJOINT " $ADJOINT + +EPSILON=`grep run $TRACE | tail -1 | grep epsilon | awk 'BEGIN{FS="="} {print $3}'` + +FEP=${PERTURBED_RESULT/[eE][+]/*10^} +FEP=${FEP/[eE][-]/*10^-} +F=${RESULT/[eE][+]/*10^} +F=${F/[eE][-]/*10^-} +TGT=${TANGENT/[eE][+]/*10^} +TGT=${TGT/[eE][-]/*10^-} +ADJ=${ADJOINT/[eE][+]/*10^} +ADJ=${ADJ/[eE][-]/*10^-} + +EPS_INV=${EPSILON/[eE][-][0]/*10^} + +echo "Derivatives of " $CONCVAR " with respect to " $INITVAR +echo -n "Divided differences " +echo "(("$FEP - $F")" "*" $EPS_INV ")" | bc -l + +echo -n "Condensed tangent " +echo $TGT | bc -l + +echo -n "Condensed adjoint " +echo $ADJ | bc -l diff --git a/tools/TAP_support/ADFirstAidKit/fortranSupport.F b/tools/TAP_support/ADFirstAidKit/fortranSupport.F new file mode 100644 index 0000000000..ea8080f1a6 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/fortranSupport.F @@ -0,0 +1,31 @@ +C The following to set the AMPI_FORTRANCOMPATIBLE +C if it was placed in the configure command. +#include "ampi/userIF/libConfig.h" + +#ifdef AMPI_FORTRANCOMPATIBLE + subroutine ADTOOL_AMPI_fortranSetupTypes(adouble, areal) +#include "ampi/ampif.h" + INTEGER adouble + INTEGER areal +C for now just set this to be scalars of the matching type + AMPI_ADOUBLE_PRECISION=MPI_DOUBLE_PRECISION + adouble=AMPI_ADOUBLE_PRECISION + AMPI_AREAL=MPI_REAL + areal=AMPI_AREAL + end subroutine + + subroutine ADTOOL_AMPI_fortranCleanupTypes(adouble, areal) +#include "ampi/ampif.h" + INTEGER adouble + INTEGER areal +C for now do nothing + end subroutine + + subroutine ADTOOL_AMPI_fortranSetupBindings() +#include "ampi/ampif.h" + call ADTOOL_AMPI_sendfortranbindings( + + MPI_BOTTOM, MPI_IN_PLACE, + + MPI_STATUS_IGNORE, MPI_STATUSES_IGNORE, + + MPI_ERRCODES_IGNORE, MPI_ARGV_NULL, MPI_ARGVS_NULL) + end subroutine +#endif diff --git a/tools/TAP_support/ADFirstAidKit/testMemSizec.c b/tools/TAP_support/ADFirstAidKit/testMemSizec.c new file mode 100644 index 0000000000..b25f146197 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/testMemSizec.c @@ -0,0 +1,92 @@ +/* + * TAPENADE Automatic Differentiation Engine + * Copyright (C) 1999-2021 Inria + * See the LICENSE.md file in the project root for more information. + * + */ + +#include + +void allzero_(int *array) { + int *inArray = array ; + int i = 0 ; + while (i<1000) { + *inArray = 0 ; + inArray++ ; + i++ ; + } +} + +void allones_(int *array) { + int *inArray = array ; + int i = 0 ; + while (i<1000) { + *inArray = ~0 ; + inArray++ ; + i++ ; + } +} + +void all226s_(int *array) { + int *inArray = array ; + int i = 0 ; + while (i<1000) { + *inArray = 226 ; + inArray++ ; + i++ ; + } +} + +void displaybits_(int *array, int *n) { + int *inArray = array ; + int i = 0 ; + int mask, j, bitone ; + printf("\n") ; + while (i<*n) { + mask = (int)1 ; + j = 0 ; + while (j<32) { + if (!mask) printf("mask is zero !\n") ; + bitone = *inArray & mask ; + if (bitone) + printf("1") ; + else + printf("0") ; + mask = mask<<1 ; + j++ ; + } + printf("\n") ; + if (mask) printf("mask is not zero !\n") ; + inArray++ ; + i++ ; + } +} + +int countsetbits_(int *array0, int *array1, int *repeat, int *n) { + int nbBytes = -1; + int *inArray0 = array0 ; + int *inArray1 = array1 ; + int i = 0 ; + int mask, j, bitone0, bitone1 ; + int count = 0 ; + while (i<*n && nbBytes==-1) { + mask = (int)1 ; + j = 0 ; + while (j<32 && nbBytes==-1) { + bitone0 = *inArray0 & mask ; + bitone1 = *inArray1 & mask ; + if ((bitone0 && bitone1) || (!bitone0 && !bitone1)) { + count++ ; + } else { + /* printf(" %f bits\n",((float)count)/((float)(*repeat))) ;*/ + nbBytes = (int)((float)count)/((float)(*repeat*8)) ; + } + mask = mask<<1 ; + j++ ; + } + inArray0++ ; + inArray1++ ; + i++ ; + } + return nbBytes ; +} diff --git a/tools/TAP_support/ADFirstAidKit/testMemSizef.f b/tools/TAP_support/ADFirstAidKit/testMemSizef.f new file mode 100644 index 0000000000..01231bc504 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/testMemSizef.f @@ -0,0 +1,249 @@ +C$Id$ + program testmemsize + external countsetbits + integer countsetbits + integer i, j, ti(10), ci0(10), ci1(10) + integer*8 i8, ti8(10), ci80(10), ci81(10) + real r, tr(10), cr0(10), cr1(10) + real*4 r4, tr4(10), cr40(10), cr41(10) + real(4) rp4, trp4(10), crp40(10), crp41(10) + real*8 r8, tr8(10), cr80(10), cr81(10) + real(8) rp8, trp8(10), crp80(10), crp81(10) +c real*16 r16, tr16(10), cr160(10), cr161(10) + double precision d, td(10), cd0(10), cd1(10) + complex cx, tcx(10), ccx0(10), ccx1(10) + complex*8 cx8, tcx8(10), ccx80(10), ccx81(10) + complex(8) cxp8, tcxp8(10), ccxp80(10), ccxp81(10) + complex*16 cx16, tcx16(10), ccx160(10), ccx161(10) + double complex cxd, tcxd(10), ccxd0(10), ccxd1(10) + logical l, tl(10), cl0(10), cl1(10) + character c, tc(10), cc0(10), cc1(10) +c + integer tci0(10000) + common /cbuf0/ tci0 + equivalence (tci0(1),ci0(1)) + equivalence (tci0(1),ci80(1)) + equivalence (tci0(1),cr0(1)) + equivalence (tci0(1),cr40(1)) + equivalence (tci0(1),crp40(1)) + equivalence (tci0(1),cr80(1)) + equivalence (tci0(1),crp80(1)) +c equivalence (tci0(1),cr160(1)) + equivalence (tci0(1),cd0(1)) + equivalence (tci0(1),ccx0(1)) + equivalence (tci0(1),ccx80(1)) + equivalence (tci0(1),ccxp80(1)) + equivalence (tci0(1),ccx160(1)) + equivalence (tci0(1),ccxd0(1)) + equivalence (tci0(1),cl0(1)) + equivalence (tci0(1),cc0(1)) +c + integer tci1(10000) + common /cbuf1/ tci1 + equivalence (tci1(1),ci1(1)) + equivalence (tci1(1),ci81(1)) + equivalence (tci1(1),cr1(1)) + equivalence (tci1(1),cr41(1)) + equivalence (tci1(1),crp41(1)) + equivalence (tci1(1),cr81(1)) + equivalence (tci1(1),crp81(1)) +c equivalence (tci1(1),cr161(1)) + equivalence (tci1(1),cd1(1)) + equivalence (tci1(1),ccx1(1)) + equivalence (tci1(1),ccx81(1)) + equivalence (tci1(1),ccxp81(1)) + equivalence (tci1(1),ccx161(1)) + equivalence (tci1(1),ccxd1(1)) + equivalence (tci1(1),cl1(1)) + equivalence (tci1(1),cc1(1)) +c + integer nb +c + do i = 1,10 + ti(i) = (i-1)*i*i*i*i*i*i*i*i*i + ti8(i) = (i-1)*i*i*i*i*i*i*i*i*i + tr(i) = (i-1)*i*exp(2.0*i+0.001) + tr4(i) = (i-1)*i*exp(2.0*i+0.001) + trp4(i) = (i-1)*i*exp(2.0*i+0.001) + tr8(i) = (i-1)*i*exp(2.0*i+0.001) + trp8(i) = (i-1)*i*exp(2.0*i+0.001) +c tr16(i) = (i-1)*i*exp(2.0*i+0.001) + td(i) = (i-1)*i*exp(2.d0*i+1.d-3) + tcx(i) = cmplx(tr(i),tr(i)+12.3) + tcxp8(i) = cmplx(trp8(i),tr(i)+12.3) + tcx8(i) = cmplx(tr8(i),tr(i)+12.3) + tcx16(i) = cmplx(tr8(i),tr(i)+12.3) + tcxd(i) = cmplx(td(i),td(i)+12.3d0) + tl(i) = (((i/3)*3).eq.i) + enddo + tc(1) = 'a' + tc(2) = 'b' + tc(3) = 'c' + tc(4) = 'd' + tc(5) = 'e' + tc(6) = 'f' + tc(7) = 'g' + tc(8) = 'h' + tc(9) = 'i' + tc(10) = 'j' + + i = 12345 + i8 = 12345 + r = sqrt(12345.0) + r4 = sqrt(12345.0) + rp4 = sqrt(12345.0) + r8 = sqrt(12345.0) + rp8 = sqrt(12345.0) +c r16 = sqrt(12345.0) + d = sqrt(12345.d0) + cx = cmplx(-12.34,56.78) + cx8 = cmplx(-12.34,56.78) + cxp8 = cmplx(-12.34,56.78) + cx16 = cmplx(-12.34,56.78) + cxd = cmplx(-12.34d0,56.78d0) + l = .true. + c = 'z' +c + call allzero(tci0(1)) + call allones(tci1(1)) +c call displaybits(tci0(1), 3) +c call displaybits(tci1(1), 3) + print *, ' ' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ci0(j) = ti(j+2) + ci1(j) = ti(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'INTEGER:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ci80(j) = ti8(j+2) + ci81(j) = ti8(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'INTEGER*8:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cr0(j) = tr(j+2) + cr1(j) = tr(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'REAL:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cr40(j) = tr4(j+2) + cr41(j) = tr4(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'REAL*4:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + crp40(j) = trp4(j+2) + crp41(j) = trp4(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'REAL(4):', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cr80(j) = tr8(j+2) + cr81(j) = tr8(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'REAL*8:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + crp80(j) = trp8(j+2) + crp81(j) = trp8(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'REAL(8):', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cd0(j) = td(j+2) + cd1(j) = td(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'DOUBLE PRECISION:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ccx0(j) = tcx(j+2) + ccx1(j) = tcx(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'COMPLEX:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ccx80(j) = tcx8(j+2) + ccx81(j) = tcx8(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'COMPLEX*8:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ccxp80(j) = tcxp8(j+2) + ccxp81(j) = tcxp8(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'COMPLEX(8):', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ccx160(j) = tcx16(j+2) + ccx161(j) = tcx16(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'COMPLEX*16:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + ccxd0(j) = tcxd(j+2) + ccxd1(j) = tcxd(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'DOUBLE COMPLEX:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cl0(j) = tl(j+2) + cl1(j) = tl(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'LOGICAL:', nb, ' bytes' +c + call allzero(tci0(1)) + call allones(tci1(1)) + do j=1,8 + cc0(j) = tc(j+2) + cc1(j) = tc(j+2) + enddo + nb = countsetbits(tci0(1), tci1(1), 8, 100) + print 100, 'CHARACTER:', nb, ' bytes' +c + 100 format(a18,i3,a6) + end diff --git a/tools/TAP_support/ADFirstAidKit/testpushpop.f90 b/tools/TAP_support/ADFirstAidKit/testpushpop.f90 new file mode 100644 index 0000000000..b636e44a8b --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/testpushpop.f90 @@ -0,0 +1,959 @@ +! TESTING TAPENADE PUSH/POP MECHANISM +! =========================================================== +! +! Tests randomly chosen sequences of PUSH/POP, on randomly chosen +! scalars and arrays of random types. Tests PUSH/POP sequences that +! happen during checkpointing. Tests the "repeated access" mechanism +! that is necessary for snapshot-LOOK and for Fixed-point adjoints. +! +! Does not test pointer PUSH/POP. Anyway, here we are only concerned +! with sizes, so testing on int*8 and int*4 should test just as well. +! +! This test is random: generates PUSH/POP of random sequences of variables. +! The sequence of variables corresponding to a "*" or a "(" in the +! CODE structure string depends only on the SEED and on the position of the +! symbol in the CODE string. +! The test will be identical for identical CODE string and SEED. +! +! Syntax: $> testpushpop F "*(* 3[* (*) 5[* (*)]]*) * L(*) *" 49 +! -- 1st arg is F or C to test with adBuffer.f or adBuffer.c +! -- 3rd arg is the SEED for random +! -- 2nd arg is the CODE structure string +! -- * is a plain code portion, causing PUSH and POP of a sequence of variables +! -- (CODE) is a checkpointed CODE, implying a snapshot +! -- L(CODE) is a checkpointed CODE with a bwd and a fwd snapshots +! * fwd snapshot sequence depends on the position of the "(" +! * bwd snapshot sequence depends on the position of the "L" +! -- n[CODE] tells that the bwd sweep of CODE will be accessed repeatedly n times, +! thus reading n times each pushed value. +! +! Compiling: $> gfortran testpushpop.f90 adStack.c -o testpushpop +! +! Running (see testpushpop.sh): $> testpushpop.sh | grep Error + +MODULE TESTPUSHPOPUTILS + + LOGICAL :: TRACEON = .false. + + INTEGER*4 :: ARRAYI4(5000), RECVARRAYI4(5000) + INTEGER*8 :: ARRAYI8(5000), RECVARRAYI8(5000) + REAL*4 :: ARRAYR4(5000), RECVARRAYR4(5000) + REAL*8 :: ARRAYR8(5000), RECVARRAYR8(5000) + COMPLEX*8 :: ARRAYC8(5000), RECVARRAYC8(5000) + COMPLEX*16 :: ARRAYC16(5000), RECVARRAYC16(5000) + CHARACTER(len=5000) :: ARRAYCHAR, RECVARRAYCHAR + INTEGER*4 :: FLOWDIRECTION, RECVFLOWDIRECTION + LOGICAL :: BOOLEAN, RECVBOOLEAN + + CHARACTER(len=500) :: givenCode + INTEGER :: codeLength + + INTEGER*4 :: givenSeed, seed1, seed2 + + ! proportions in % of int4,+int8,+real4,+real8,+complex8,+complex16,+characters,+bits + ! the last one, being the total of all, must be 100: + INTEGER :: trajtypes(8)=(/30,35,50,80,83,85,90,100/) + INTEGER :: snptypes(8)=(/30,35,55,90,93,95,100,100/) + INTEGER :: snpatypes(8)=(/30,35,55,90,93,95,100,100/) + INTEGER :: snpbtypes(8)=(/30,35,55,90,93,95,100,100/) + +CONTAINS + ! My pseudo-random generator. Can probably be improved! + SUBROUTINE nextrandom(seed) + INTEGER*4 :: seed + seed = MOD(seed*(1+seed), 32768) + END SUBROUTINE nextrandom + + ! Random integer between 0 and imax-1 using random seed1 : + INTEGER*4 FUNCTION drawinteger(imax) + INTEGER :: imax + CALL nextrandom(seed1) + drawinteger = MOD(seed1,imax) + END FUNCTION drawinteger + + ! returns the value of random seed1 : + INTEGER*4 FUNCTION getseed1() + getseed1 = seed1 + END FUNCTION getseed1 + + REAL*8 FUNCTION mkr8(seed,mult) + INTEGER :: seed + REAL*8 :: mult, tmp + tmp = seed*mult + if (tmp<0) tmp=-tmp + mkr8 = SQRT(tmp) + END FUNCTION mkr8 + + REAL*4 FUNCTION mkr4(seed,mult) + INTEGER :: seed + REAL*4 :: mult, tmp + tmp = seed*mult + if (tmp<0) tmp=-tmp + mkr4 = SQRT(tmp) + END FUNCTION mkr4 + + ! All "fill" functions: for each basic type, + ! (in int4, int8, real4, real8, complex8, complex16, characters, bits) + ! fills (a "length" first elements of) this type's corresponding + ! global storage variable with some pseudo-random values + ! computed with internal random var "seed2", initialized with "seed". + ! The "random" quality of these values is not very critical. + + SUBROUTINE fillboolean(seed) + INTEGER :: seed,tmp + seed2 = 2+4*seed + CALL nextrandom(seed2) + if (seed2>=0) then + tmp=seed2 + else + tmp=-seed2 + endif + BOOLEAN = (MOD(tmp,256).ge.128) !! Build a vaguely random boolean (i.e. LOGICAL) + END SUBROUTINE fillboolean + + SUBROUTINE fillcontrolNb(length, seed) + INTEGER :: length, seed, tmp + seed2 = 2+4*seed + CALL nextrandom(seed2) + if (seed2>=0) then + tmp=seed2 + else + tmp=-seed2 + endif + FLOWDIRECTION = MOD(tmp,2**length) !! Build a vaguely random INTEGER*4 coded with "length" bits + END SUBROUTINE fillcontrolNb + + SUBROUTINE fillchararray(length, seed) + INTEGER :: length, seed, i, tmp + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + if (seed2>=0) then + tmp=seed2 + else + tmp=-seed2 + endif + ARRAYCHAR(i:i) = CHAR(33+MOD(tmp,94)) !! Build a vaguely random CHARACTER between ascii 33 and 126 + end do + END SUBROUTINE fillchararray + + SUBROUTINE fillc8array(length, seed) + INTEGER :: length, seed, i + REAL*8 :: rpart, ipart + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + rpart = mkr4(seed2,1.2_4) !! Build a vaguely random REAL*4 + CALL nextrandom(seed2) + ipart = mkr4(seed2,1.2_4) !! Build a vaguely random REAL*4 + ARRAYC8(i) = CMPLX(rpart,ipart,8) + end do + END SUBROUTINE fillc8array + + SUBROUTINE fillc16array(length, seed) + INTEGER :: length, seed, i + REAL*8 :: rpart, ipart + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + rpart = mkr8(seed2,1.2_8) !! Build a vaguely random REAL*8 + CALL nextrandom(seed2) + ipart = mkr8(seed2,1.2_8) !! Build a vaguely random REAL*8 + ARRAYC16(i) = CMPLX(rpart,ipart,16) + end do + END SUBROUTINE fillc16array + + SUBROUTINE filli4array(length, seed) + INTEGER :: length, seed, i + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + ARRAYI4(i) = seed2 !! Build a vaguely random INTEGER*4 + end do + END SUBROUTINE filli4array + + SUBROUTINE filli8array(length, seed) + INTEGER :: length, seed, tmo + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + if (seed2>=0) then + tmp=seed2 + else + tmp=-seed2 + endif + ARRAYI8(i) = seed2*tmp !! Build a vaguely random INTEGER*8 + end do + END SUBROUTINE filli8array + + SUBROUTINE fillr4array(length, seed) + INTEGER :: length, seed, i + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + ARRAYR4(i) = mkr4(seed2,1.2_4) !! Build a vaguely random REAL*4 + end do + END SUBROUTINE fillr4array + + SUBROUTINE fillr8array(length, seed) + INTEGER :: length, seed, i + seed2 = 2+4*seed + do i=1,length + CALL nextrandom(seed2) + ARRAYR8(i) = mkr8(seed2,1.1_8) !! Build a vaguely random REAL*8 + end do + END SUBROUTINE fillr8array + +END MODULE TESTPUSHPOPUTILS + +PROGRAM testpushpop + USE TESTPUSHPOPUTILS + IMPLICIT NONE + INTEGER :: indexopen, indexclose + CHARACTER(len=1) :: traceOnString + CHARACTER(len=10) :: seedstring + IF (iargc().ne.3) THEN + print *,"Usage: testpushpop """" " + ELSE + CALL get_command_argument(1,traceOnString) + CALL get_command_argument(2,givenCode,codeLength) + CALL get_command_argument(3,seedstring) + READ (seedstring,'(I10)') givenSeed + TRACEON = (traceOnString.eq.'T').or.(traceOnString.eq.'t').or.(traceOnString.eq.'1') + WRITE(6,991) givenSeed,givenCode(1:codeLength) + CALL runsweep(givenCode(1:codeLength), 0, 1) + !CALL EMITSHOWSTACK("middle"//CHAR(0)) !!Trace + CALL runsweep(givenCode(1:codeLength), 0, -1) + END IF + 991 FORMAT('seed=',i4,' code=',a) +END PROGRAM testpushpop + +SUBROUTINE getparenthindices(code,indexopen,indexclose) + USE TESTPUSHPOPUTILS + IMPLICIT NONE + CHARACTER(len=*) :: code + INTEGER indexopen, indexclose + INTEGER index, length, depth + + length = LEN(code) + index = 1 +! Advance to the open parenth or square bracket: + do while(index.le.length.and.code(index:index).ne.'('.and.code(index:index).ne.'[') + index = index+1 + enddo + indexopen = index + index = index+1 + depth = 1 +! Find the corresponding closing parenth or square bracket or the end of string: + do while(index.le.length.and.(depth.ne.1.or.(code(index:index).ne.')'.and.code(index:index).ne.']'))) + if (code(index:index).eq.'('.or.code(index:index).eq.'[') then + depth = depth+1 + else if (code(index:index).eq.')'.or.code(index:index).eq.']') then + depth = depth-1 + end if + index = index+1 + enddo + if (index.eq.length+1.and.depth.ne.0) then + print *,'Missing closing in CodeStructure' + end if + indexclose = index +END SUBROUTINE getparenthindices + +RECURSIVE SUBROUTINE runsweep(code, globaloffset, direction) + USE TESTPUSHPOPUTILS + IMPLICIT NONE + CHARACTER(len=*) code + INTEGER globaloffset, totaloffset, direction + INTEGER index, length, repeat + INTEGER indexopen, indexclose + INTEGER ii + !print *,' runsweep on ',code,' offset:',globaloffset + repeat = -1 + index = 1 + length = LEN(code) +! Skip white spaces: + do while(index.le.length.and.(code(index:index).eq.' '.or.code(index:index).eq.' ')) + index = index+1 + enddo + totaloffset = globaloffset+index + +! The next token is either '(' or 'endOfString' or [1..9] or '*' or 'L' + if (index.gt.length) then +! do nothing and return. + +! CHECKPOINT WITH LOOK SNAPSHOT MECHANISM: + else if (code(index:index).eq.'L') then + CALL getparenthindices(code(index+1:),indexopen,indexclose) + if (direction.eq.1) then + CALL emitpushpopsequence(totaloffset, 10, snpatypes, 60, 1,'TAKE SNP A at',2) + CALL emitpushpopsequence(totaloffset+indexopen, 10, snpbtypes, 70, 1,'TAKE SNP B at',2) + end if + CALL runsweep(code(index+indexclose+1:), totaloffset+indexclose, direction) + if (direction.eq.-1) then + CALL emitpushpopsequence(totaloffset+indexopen, 10, snpbtypes, 70, -1,' POP SNP B at',-2) + CALL emitstartrepeat() + CALL emitpushpopsequence(totaloffset, 10, snpatypes, 60, -1,'LOOK SNP A at',-3) + CALL emitresetrepeat() + CALL emitendrepeat() + CALL runsweep(code(index+indexopen+1:index+indexclose-1), totaloffset+indexopen, 1) + CALL runsweep(code(index+indexopen+1:index+indexclose-1), totaloffset+indexopen, -1) + CALL emitpushpopsequence(totaloffset, 10, snpatypes, 60, -1,' POP SNP A at',-2) + end if + +! CHECKPOINT WITH PLAIN PUSH-POP SNAPSHOT: + else if (code(index:index).eq.'(') then + CALL getparenthindices(code(index:),indexopen,indexclose) + if (direction.eq.1) then + CALL emitpushpopsequence(totaloffset, 20, snptypes, 70, 1,'TAKE SNP at',2) + end if + CALL runsweep(code(index-1+indexclose+1:), totaloffset-1+indexclose, direction) + if (direction.eq.-1) then + CALL emitpushpopsequence(totaloffset, 20, snptypes, 70, -1,' POP SNP at',-2) + CALL runsweep(code(index-1+indexopen+1:index-1+indexclose-1), totaloffset-1+indexopen, 1) + CALL runsweep(code(index-1+indexopen+1:index-1+indexclose-1), totaloffset-1+indexopen, -1) + end if + +! PLAIN CODE: + else if (code(index:index).eq.'*') then + if (direction.eq.1) then + CALL emitpushpopsequence(totaloffset, 80, trajtypes, 25, 1,'PUSHes part',1) + end if + CALL runsweep(code(index+1:), totaloffset, direction) + if (direction.eq.-1) then + CALL emitpushpopsequence(totaloffset, 80, trajtypes, 25, -1,' POPs part',-1) + end if + +! CODE WITH ONE PUSH AND REPEATED POPS (e.g. FIXED-POINT ADJOINT): + else if (code(index:index).gt.'0'.and.code(index:index).le.'9') then + READ (code(index:index),'(I1)') repeat + CALL getparenthindices(code(index+1:),indexopen,indexclose) + if (direction.eq.1) then + CALL runsweep(code(index-1+indexopen+2:index+indexclose-1), totaloffset+indexopen, 1) + endif + CALL runsweep(code(index+indexclose+1:), totaloffset+indexclose, direction) + if (direction.eq.-1) then + CALL emitstartrepeat() + DO ii=1,repeat + CALL runsweep(code(index-1+indexopen+2:index+indexclose-1), totaloffset+indexopen, -1) + if (ii.ne.repeat) then + CALL emitresetrepeat() + else + CALL emitendrepeat() + endif + ENDDO + end if + + else + print *,'Unexpected CodeStructure substring:',code(index:) + end if +END SUBROUTINE runsweep + +! index is the index in the code string of the "*" that stands +! for this pushpop sequence. Index is used as the random seed. +! ppmax is the max number of push'es or pop's in sequence +! proportiontypes is the array of proportions in % of +! (int4,+int8,+real4,+real8,+complex8,+complex16,+characters,+bits) +! the last one, being the total of all, must be 100. +! action is 1 for PUSH and -1 for POP +SUBROUTINE emitpushpopsequence(index, ppmax, proportiontypes, proportionarrays, action, msg, op) + USE TESTPUSHPOPUTILS + IMPLICIT NONE + INTEGER :: index, ppmax, proportiontypes(8), proportionarrays, action, op + CHARACTER(*) :: msg + INTEGER :: number, sort, isarray, arraylen, i + INTEGER :: sorts(200), sizes(200), seeds(200) + INTEGER :: iterfrom, iterto, iterstride + ! initialize random seed1 using only index & givenSeed + seed1 = 2+4*index*(givenSeed+index) + number = drawinteger(ppmax) + DO i=1,number + sort = drawinteger(100) + if (sort ',LOCSTRB(),LOCSTRO() +END SUBROUTINE emitresetrepeat + +SUBROUTINE emitendrepeat() + USE TESTPUSHPOPUTILS + INTEGER*4 LOCSTRB,LOCSTRO + IF (TRACEON) print *,'adStack_endRepeat() AT ',LOCSTRB(),LOCSTRO() + CALL ADSTACK_ENDREPEAT() +END SUBROUTINE emitendrepeat + +!! Only for Trace: +SUBROUTINE emitshowstacksize() + USE TESTPUSHPOPUTILS + CALL ADSTACK_SHOWSTACKSIZE() +END SUBROUTINE emitshowstacksize + +SUBROUTINE emitshowstack(locationName) + USE TESTPUSHPOPUTILS + CHARACTER(*) locationName + CALL ADSTACK_SHOWSTACK(locationName) +END SUBROUTINE emitshowstack diff --git a/tools/TAP_support/ADFirstAidKit/testpushpop.sh b/tools/TAP_support/ADFirstAidKit/testpushpop.sh new file mode 100755 index 0000000000..5fd60720cf --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/testpushpop.sh @@ -0,0 +1,19 @@ +for i in {1..99} + do + testpushpop 0 "*" $i + testpushpop 0 "3[* *]" $i + testpushpop 0 "* 2[* 2[*] *]" $i + testpushpop 0 "* * (* *) * *" $i + testpushpop 0 "* * 2[* * * *] * *" $i + testpushpop 0 "* * 2[* * (* * * *) *] * *" $i + testpushpop 0 "* * 2[* * 3[*] *] * *" $i + testpushpop 0 "* * 2[* (* 3[*] *) * (3[((*)*)*]) * * *] *" $i + testpushpop 0 "* (*) * L(* *) *" $i + testpushpop 0 "* L(* (* L((*) *) *) *) *" $i + testpushpop 0 "* 3[* L(* *) *] *" $i + testpushpop 0 "* (* 2[* 3[* L(* *) *] *] *) (*) *" $i + testpushpop 0 "* 3[2[(*) *] (* *) *] *" $i + testpushpop 0 "* 3[(* *) * 2[(*) *]] *" $i + testpushpop 0 "* (((*) *) * (* (*))) *" $i + testpushpop 0 "* (2[((*) *)] 3[* (* (*))]) *" $i +done diff --git a/tools/TAP_support/ADFirstAidKit/validityTest.f b/tools/TAP_support/ADFirstAidKit/validityTest.f new file mode 100755 index 0000000000..ddce486588 --- /dev/null +++ b/tools/TAP_support/ADFirstAidKit/validityTest.f @@ -0,0 +1,71 @@ +c$Id$ + BLOCK DATA validityTestBD +C Keeps the current bounds of the validity interval +C Initial value is ]-infinity, +infinity[ + REAL gmin, gmax + LOGICAL infmin, infmax + COMMON /validity_test_common/ + + gmin, gmax, infmin, infmax + DATA infmin/.TRUE./ + DATA infmax/.TRUE./ + DATA gmin/-999.99/ + DATA gmax/999.99/ + END + + SUBROUTINE validity_domain_real8(t, td) +C Updates the bounds of the validity interval +C with the new constraint that t keeps its sign. + real*8 t, td + real gmin, gmax, temp + logical infmin, infmax + COMMON /validity_test_common/ + + gmin, gmax, infmin, infmax + + if(td .ne. 0.0) then + temp = -(t/td) + if ( temp .lt. 0.0 ) then + if ( infmin ) then + gmin = temp + infmin = .FALSE. + else + gmin = max(gmin,temp) + endif + else + if ( infmax ) then + gmax = temp + infmax = .FALSE. + else + gmax = min(gmax,temp) + endif + endif + endif + end + + SUBROUTINE validity_domain_real4(t, td) +C Updates the bounds of the validity interval +C with the new constraint that t keeps its sign. + real*4 t, td + real gmin, gmax, temp + logical infmin, infmax + COMMON /validity_test_common/ + + gmin, gmax, infmin, infmax + + if(td .ne. 0.0) then + temp = -(t/td) + if ( temp .lt. 0.0 ) then + if ( infmin ) then + gmin = temp + infmin = .FALSE. + else + gmin = max(gmin,temp) + endif + else + if ( infmax ) then + gmax = temp + infmax = .FALSE. + else + gmax = min(gmax,temp) + endif + endif + endif + end diff --git a/tools/TAP_support/diffsizes.F90 b/tools/TAP_support/diffsizes.F90 new file mode 100644 index 0000000000..4325af1b16 --- /dev/null +++ b/tools/TAP_support/diffsizes.F90 @@ -0,0 +1,5 @@ +! A necessary module for TAPENADE +MODULE DIFFSIZES + Implicit None + integer, parameter :: nbdirsmax=16 +END MODULE DIFFSIZES diff --git a/tools/TAP_support/flow_tap b/tools/TAP_support/flow_tap new file mode 100644 index 0000000000..2dffef8ddd --- /dev/null +++ b/tools/TAP_support/flow_tap @@ -0,0 +1,1103 @@ +subroutine get_environment_variable: +intrinsic: +shape: (param 1, param 2, param 3, param 4) +type: (arrayType(character(),dimColons(dimColon(none(),none()))), arrayType(character(),dimColons(dimColon(none(),none()))), integer(), boolean()) +ReadNotWritten: (1, 0, 1, 1) +ReadThenWritten: (0, 0, 0, 0) +NotReadThenWritten: (0, 1, 0, 0) +deps: (id, + 1, 0, 1, 1 + id, + id) + +function modulo: +intrinsic: +shape: (param 1, param 2, result) +type: (float(), float(), float()) +ReadNotWritten: (1, 1, 0) +ReadThenWritten: (0, 0, 0) +NotReadThenWritten: (0, 0, 1) + +function ceiling: +intrinsic: +shape: (param 1, result) +type: (float(), integer()) +ReadNotWritten: (1, 0) +ReadThenWritten: (0, 0) +NotReadThenWritten: (0, 1) + +function floor: +intrinsic: +shape: (param 1, result) +type: (float(), integer()) +ReadNotWritten: (1, 0) +ReadThenWritten: (0, 0) +NotReadThenWritten: (0, 1) + +function erf: +intrinsic: +shape: (param 1, result) +type: (float(), float()) +ReadNotWritten: (1, 0) +ReadThenWritten: (0, 0) +NotReadThenWritten: (0, 1) + +function real: +intrinsic: +shape: (param 1, param 2, result) +type: (float(), integer(), float()) +type: (arrayType(float(),dimColons(dimColon(none(),none()))), integer(), arrayType(float(),dimColons(dimColon(none(),none())))) +ReadNotWritten: (1, 1, 0) +ReadThenWritten: (0, 0, 0) +NotReadThenWritten: (0, 0, 1) + +subroutine system: +intrinsic: +shape: (param 1) +type: (character()) +ReadNotWritten: (1) +ReadThenWritten: (0) +NotReadThenWritten: (0) +deps: (id) + +subroutine flush: +intrinsic +shape: (param 1) +type: (integer()) +ReadNotWritten: (1) +ReadThenWritten: (0) +NotReadThenWritten: (0) + +subroutine getenv: +intrinsic +shape(param 1, param 2) +type: (character(), character()) +ReadNotWritten: (1,0) +ReadThenWritten: (0,0) +NotReadThenWritten: (0,1) + +subroutine fdate: +intrinsic +shape() +type: () +ReadNotWritten: () +ReadThenWritten: () +NotReadThenWritten: () +subroutine cg2d: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + ReadNotWritten: (1,0,0,0,0,0,0,1) + NotReadThenWritten: (0,0,1,1,1,0,0,0) + ReadThenWritten: (0,1,0,0,0,1,1,0) + +subroutine mds_read_field: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,0,0,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,1,1,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + +subroutine active_read_xy: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,0,1,1,1,1,1,1) + NotReadThenWritten: (0,1,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine active_write_xy: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6) + type: (none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,1) + ReadThenWritten: (0,0,0,0,0,1) + +subroutine active_read_xyz: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,0,1,1,1,1,1,1) + NotReadThenWritten: (0,1,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine active_write_gen_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,1) + ReadThenWritten: (0,0,0,0,0,0,0,0,1) + +subroutine ifnblnk: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +function ifnblnk: + external: + shape: (param 1, result) + type: (arrayType(character(), dimColons(dimColon(none(), none()))), integer()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,0) + NotReadThenWritten: (0,1) + ReadThenWritten: (0,0) + +function ilnblnk: + external: + shape: (param 1, result) + type: (arrayType(character(), dimColons(dimColon(none(), none()))), integer()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,0) + NotReadThenWritten: (0,1) + ReadThenWritten: (0,0) + +subroutine print_message: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine print_error: + external: + shape: (param 1,param 2) + type: (none(), none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine mon_printstats_rs: + external: + shape: (param 1,param 2,param 3,param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine mon_calc_advcfl_tile: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6, param 7,param 8, param 9, param 10) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + +subroutine mon_calc_advcfl_glob: + external: + shape: (param 1,param 2,param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine ctrl_bound_3d: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine ctrl_bound_2d: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine mds_facef_read_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,1,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mdsreadfield: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,0,1,1) + NotReadThenWritten: (0,0,0,0,1,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mdswritefield: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0) + +subroutine mds_write_field: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12, param 13) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + +subroutine mds_read_sec_xz: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,0,0,1,1) + NotReadThenWritten: (0,0,0,0,0,1,1,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0) + +subroutine mds_read_sec_yz: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,0,0,1,1) + NotReadThenWritten: (0,0,0,0,0,1,1,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0) + +subroutine write_fld_xy_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine write_fld_xyz_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine exch0_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0) + +subroutine fill_halo_local_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0,0,0) + +subroutine exch1_rs_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0,0) + +subroutine exch1_rl_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0,0) + +subroutine exch1_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0) + +subroutine exch1_uv_rs_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11,param 12) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,0,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,1,0,0,0,0,0,0,0,0,0,0) + + +subroutine exch1_uv_rl_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11,param 12) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,0,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,1,0,0,0,0,0,0,0,0,0,0) + + +subroutine exch1_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0) + +subroutine global_max_r8: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (0,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (1,0) + +subroutine debug_leave: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine debug_msg: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine debug_enter: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + + +subroutine debug_stats_rl: + external: + shape: (param 1,param 2,param 3,param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine debug_cs_corner_uv: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6,param 7,param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine read_mflds_set: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6) + type: (none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,0,0,1,1,1) + NotReadThenWritten: (0,1,1,0,0,0) + ReadThenWritten: (0,0,0,0,0,0) + + +subroutine read_mflds_check: + external: + shape: (param 1,param 2,param 3,param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (0,0,1,1) + NotReadThenWritten: (1,0,0,0) + ReadThenWritten: (0,1,0,0) + + +subroutine read_mflds_3d_rl: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6,param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,0,0,1,1,1,1) + NotReadThenWritten: (0,1,0,0,0,0,0) + ReadThenWritten: (0,0,1,0,0,0,0) + +subroutine read_mflds_lev_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,0,1,1,1,1,1,1,1) + NotReadThenWritten: (0,1,1,0,0,0,0,0,0) + ReadThenWritten: (0,0,1,0,0,0,0,0,0) + +subroutine do_the_model_io: + external: + shape: (param 1,param 2,param 3,param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine plot_field_xyzrl: + external: + shape: (param 1,param 2,param 3,param 4,param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + + +subroutine do_write_pickup: + external: + shape: (param 1,param 2,param 3,param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + + +subroutine do_statevars_tave: + external: + shape: (param 1,param 2,param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine write_glvec_rs: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6) + type: (none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0) + +subroutine write_fld_xy_rs: + external: + shape: (param 1,param 2,param 3,param 4,param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine write_local_rl: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6,param 7,param 8,param 9) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0) + +subroutine global_sum_tile_rl: + external: + shape: (param 1 ,param 2,param 3) + type: (none(), none(), none() ) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,0,1) + NotReadThenWritten: (0,1,0) + ReadThenWritten: (0,0,0) + +subroutine turnoff_model_io: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine mon_set_pref: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine global_sum_r8: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (0,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (1,0) + +subroutine bar_check: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine barrier: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +subroutine all_proc_die: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +subroutine diagnostics_switch_onoff: + external: + shape: (param 1,param 2,param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine check_pickup: + external: + shape: (param 1,param 2,param 3,param 4,param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine autodiff_inadmode_unset: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +subroutine autodiff_inadmode_set: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +subroutine timer_start: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine timer_stop: + external: + shape: (param 1,param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine calc_oce_mxlayer: + external: + shape: (param 1,param 2,param 3,param 4,param 5,param 6,param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine monitor: + external: + shape: (param 1,param 2,param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine exch_z_3d_rs: + external: + shape: (param 1,param 2,param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (0,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (1,0,0) + +subroutine rw_get_suffix: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (0,1,1,1) + NotReadThenWritten: (1,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine do_statevars_diags: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine diagnostics_count: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine streamice_dump: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine diags_oceanic_surf_flux: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine diagnostics_init_varia: + external: + shape: (param 1) + type: (none()) + NotReadNotWritten: (0) + ReadNotWritten: (1) + NotReadThenWritten: (0) + ReadThenWritten: (0) + +subroutine debug_call: + external: + shape: (param 1, param 2) + type: (none(), none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine print_message: + external: + shape: (param 1, param 2, param 3, param 4) + type: (arrayType(character(), dimColons(dimColon(none(), none()))), integer(), arrayType(character(), dimColons(dimColon(none(), none()))), integer()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine mds_read_field: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11) + type:(arrayType(character(), dimColons(dimColon(none(), none()))), + integer(), boolean(), arrayType(character(), dimColons(dimColon(none(), none()))), + integer(), integer(), integer(), + arrayType(float(), dimColons(dimColon(none(), none()))), + arrayType(float(), dimColons()), + integer(), integer()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,0,0,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,1,1,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + +subroutine diagnostics_fill: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine diagnostics_scale_fill: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0) + +subroutine plot_field_xyrs: + external: + shape: (param 1, param 2, param 3, param 4) + type: (none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0) + ReadNotWritten: (1,1,1,1) + NotReadThenWritten: (0,0,0,0) + ReadThenWritten: (0,0,0,0) + +subroutine read_glvec_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6) + type: (none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,1,0,1,1,1) + NotReadThenWritten: (0,0,1,0,0,0) + ReadThenWritten: (0,0,0,0,0,0) + +subroutine read_glvec_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6) + type: (none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,1,0,1,1,1) + NotReadThenWritten: (0,0,1,0,0,0) + ReadThenWritten: (0,0,0,0,0,0) + +subroutine exf_weight_sfx_diags: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine diagnostics_fill_rs: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine dummy_for_etan: + external + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine dummy_in_stepping: + external + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine diagnostics_fract_fill: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0) + +subroutine exch2_rs1_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0,0,0) + +subroutine exch2_rl1_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,0,0,0,0,0,0,0,0,0,0,0) + +subroutine exch2_rl2_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12, param 13) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,0,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,1,0,0,0,0,0,0,0,0,0,0,0) + +subroutine exch2_rs2_cube: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8, param 9, param 10, param 11, param 12, param 13) + type: (none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadNotWritten: (0,0,1,1,1,1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0,0,0,0,0,0) + ReadThenWritten: (1,1,0,0,0,0,0,0,0,0,0,0,0) + +subroutine write_rec_3d_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine write_rec_xyz_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine write_rec_xy_rl: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine bling_read_pickup: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (0,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (1,0,0) + +subroutine bling_min_val: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine mnc_update_time: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine mnc_cw_set_udim: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine mnc_update_time: + external: + shape: (param 1, param 2, param 3) + type: (none(),none(),none()) + NotReadNotWritten: (0,0,0) + ReadNotWritten: (1,1,1) + NotReadThenWritten: (0,0,0) + ReadThenWritten: (0,0,0) + +subroutine mnc_cw_i_w_s: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rl_w_s: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rs_w_s: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rl_w: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rs_w: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rl_r: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rs_r: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7) + type: (none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0) + +subroutine mnc_cw_rl_w_offset: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine mnc_cw_rs_w_offset: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6, param 7, param 8) + type: (none(),none(),none(),none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0,0,0) + +subroutine mnc_cw_add_vattr_text: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine mnc_cw_add_vname: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine mnc_cw_citer_setg: + external: + shape: (param 1, param 2, param 3, param 4, param 5) + type: (none(),none(),none(),none(),none()) + NotReadNotWritten: (0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0) + +subroutine mnc_cw_set_citer: + external: + shape: (param 1, param 2, param 3, param 4, param 5, param 6) + type: (none(),none(),none(),none(),none(), none()) + NotReadNotWritten: (0,0,0,0,0,0) + ReadNotWritten: (1,1,1,1,1,1) + NotReadThenWritten: (0,0,0,0,0,0) + ReadThenWritten: (0,0,0,0,0,0) + +subroutine mnc_cw_del_gname: + external: + shape: (param 1, param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine mnc_cw_del_vname: + external: + shape: (param 1, param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) + +subroutine mnc_file_close_all_matching: + external: + shape: (param 1, param 2) + type: (none(),none()) + NotReadNotWritten: (0,0) + ReadNotWritten: (1,1) + NotReadThenWritten: (0,0) + ReadThenWritten: (0,0) diff --git a/tools/ad_taf_output.f.adtrick.diff b/tools/ad_taf_output.f.adtrick.diff deleted file mode 100644 index 3cc07118f1..0000000000 --- a/tools/ad_taf_output.f.adtrick.diff +++ /dev/null @@ -1,67 +0,0 @@ -*** ad_taf_output.f.orig Wed Oct 13 13:18:38 2004 ---- ad_taf_output.f Wed Oct 13 13:41:54 2004 -*************** -*** 61912,61917 **** ---- 61912,61947 ---- - $tempvertadvscheme, saltadvscheme, saltvertadvscheme, - $traceradvscheme, debuglevel - -+ logical useaim -+ logical usebulkforce -+ logical usediagnostics -+ logical useebm -+ logical useecco -+ logical usefizhi -+ logical useflt -+ logical useggl90 -+ logical usegmredi -+ logical usegrdchk -+ logical usegridalt -+ logical usekpp -+ logical useland -+ logical usemnc -+ logical usemy82 -+ logical useobcs -+ logical useopps -+ logical usepp81 -+ logical useptracers -+ logical usesbo -+ logical useseaice -+ logical useshap_filt -+ logical usethsice -+ logical usezonal_filt -+ common /parm_packages/ usekpp, usegmredi, useobcs, useaim, -+ $useland, useecco, useshap_filt, usezonal_filt, usegrdchk, useflt, -+ $useptracers, usesbo, useseaice, usethsice, usebulkforce, usefizhi, -+ $ usegridalt, usediagnostics, useebm, usemnc, usepp81, usemy82, -+ $useopps, useggl90 -+ - logical allowfreezing - logical debugmode - logical dosaltclimrelax -*************** -*** 63806,63811 **** ---- 63836,63845 ---- - end do - end do - end do -+ cph( -+ usekpp=.false. -+ usegmredi=.false. -+ cph) - call addo_fields_blocking_exchanges( mythid ) - call adtracers_correction_step( mytime,mythid ) - if (staggertimestep) then -*************** -*** 63829,63834 **** ---- 63863,63872 ---- - call adexf_getforcing( mytime,myiter,mythid ) - mytime = starttime+float(iloop-1)*deltatclock - call adcost_averagesfields( mytime,mythid ) -+ cph( -+ usekpp=.true. -+ usegmredi=.true. -+ cph) - endif - end do - diff --git a/tools/ad_taf_output.f.diva.diff_del1 b/tools/ad_taf_output.f.diva.diff_del1 deleted file mode 100644 index 4a5d144ad9..0000000000 --- a/tools/ad_taf_output.f.diva.diff_del1 +++ /dev/null @@ -1,73 +0,0 @@ -*** ad_taf_output.f 2005-09-29 15:17:45.000000000 -0400 ---- ad_taf_output.fmod 2005-09-29 15:40:24.000000000 -0400 -*************** -*** 78470,78492 **** - close(unit=76) - else - idivbeg = nchklev_3 -! idivend = nchklev_3+(-1) - endif - endif - call mpi_bcast( idivbeg,1,mpi_integer,0,mpi_comm_world,iers ) - call mpi_bcast( idivend,1,mpi_integer,0,mpi_comm_world,iers ) - - C---------------------------------------------- -- C write divided adjoint control file -- C---------------------------------------------- -- if (iproc .eq. 0) then -- open(unit=76,file='divided.ctrl',form='formatted') -- idivaux = 2*idivend-idivbeg -- write(unit=76,fmt=*) idivend,idivaux -- close(unit=76) -- endif -- -- C---------------------------------------------- - C OPEN TAPE onetape - C---------------------------------------------- - call adopen ( mythid, ---- 78470,78482 ---- - close(unit=76) - else - idivbeg = nchklev_3 -! idivend = MAX(nchklev_3-1,0) - endif - endif - call mpi_bcast( idivbeg,1,mpi_integer,0,mpi_comm_world,iers ) - call mpi_bcast( idivend,1,mpi_integer,0,mpi_comm_world,iers ) - - C---------------------------------------------- - C OPEN TAPE onetape - C---------------------------------------------- - call adopen ( mythid, -*************** -*** 82624,82632 **** ---- 82614,82642 ---- - $1368 ) - - endif -+ -+ C---------------------------------------------- -+ C update divided adjoint control file -+ C---------------------------------------------- -+ if (iproc .eq. 0) then -+ open(unit=76,file='divided.ctrl',form='formatted') -+ write(unit=76,fmt=*) ilev_3-1,idivend -+ close(unit=76) -+ endif -+ - end do - - C---------------------------------------------- -+ C write divaided adjoint control file -+ C---------------------------------------------- -+ if (iproc .eq. 0) then -+ open(unit=76,file='divided.ctrl',form='formatted') -+ idivaux = MAX(2*idivend-idivbeg,0) -+ write(unit=76,fmt=*) idivend,idivaux -+ close(unit=76) -+ endif -+ -+ C---------------------------------------------- - C write snapshot - C---------------------------------------------- - if (idivend .ge. 1) then diff --git a/tools/ad_taf_output.f.diva.diff_full b/tools/ad_taf_output.f.diva.diff_full deleted file mode 100644 index eabe89ae41..0000000000 --- a/tools/ad_taf_output.f.diva.diff_full +++ /dev/null @@ -1,73 +0,0 @@ -*** ad_taf_output.f Fri Jun 23 12:28:49 2006 ---- ad_taf_output.f_mod Fri Jun 23 12:28:23 2006 -*************** -*** 73189,73211 **** - close(unit=76) - else - idivbeg = nchklev_3 -! idivend = nchklev_3+(-1) - endif - endif - call mpi_bcast( idivbeg,1,mpi_integer,0,mpi_comm_world,iers ) - call mpi_bcast( idivend,1,mpi_integer,0,mpi_comm_world,iers ) - - C---------------------------------------------- -- C write divided adjoint control file -- C---------------------------------------------- -- if (iproc .eq. 0) then -- open(unit=76,file='divided.ctrl',form='formatted') -- idivaux = 2*idivend-idivbeg -- write(unit=76,fmt=*) idivend,idivaux -- close(unit=76) -- endif -- -- C---------------------------------------------- - C OPEN TAPE onetape - C---------------------------------------------- - call adopen ( mythid, ---- 73189,73201 ---- - close(unit=76) - else - idivbeg = nchklev_3 -! idivend = 0 - endif - endif - call mpi_bcast( idivbeg,1,mpi_integer,0,mpi_comm_world,iers ) - call mpi_bcast( idivend,1,mpi_integer,0,mpi_comm_world,iers ) - - C---------------------------------------------- - C OPEN TAPE onetape - C---------------------------------------------- - call adopen ( mythid, -*************** -*** 75772,75780 **** ---- 75762,75790 ---- - $1368 ) - - endif -+ -+ C---------------------------------------------- -+ C update divided adjoint control file -+ C---------------------------------------------- -+ if (iproc .eq. 0) then -+ open(unit=76,file='divided.ctrl',form='formatted') -+ write(unit=76,fmt=*) ilev_3-1,idivend -+ close(unit=76) -+ endif -+ - end do - - C---------------------------------------------- -+ C write divaided adjoint control file -+ C---------------------------------------------- -+ if (iproc .eq. 0) then -+ open(unit=76,file='divided.ctrl',form='formatted') -+ idivaux = MAX(2*idivend-idivbeg,0) -+ write(unit=76,fmt=*) idivend,idivaux -+ close(unit=76) -+ endif -+ -+ C---------------------------------------------- - C write snapshot - C---------------------------------------------- - if (idivend .ge. 1) then diff --git a/tools/ad_taf_output.f.onlyfwd.diff b/tools/ad_taf_output.f.onlyfwd.diff deleted file mode 100644 index af13e85404..0000000000 --- a/tools/ad_taf_output.f.onlyfwd.diff +++ /dev/null @@ -1,20 +0,0 @@ -*** ad_taf_output.f.orig Wed Oct 13 13:18:38 2004 ---- ad_taf_output.f Wed Oct 13 13:22:35 2004 -*************** -*** 62567,62573 **** - call barrier( mythid ) - call barrier( mythid ) - call ecco_cost_final( mythid ) -! - C---------------------------------------------- - C SAVE DEPENDEND VARIABLES - C---------------------------------------------- ---- 62567,62574 ---- - call barrier( mythid ) - call barrier( mythid ) - call ecco_cost_final( mythid ) -! call mpi_finalize() -! stop - C---------------------------------------------- - C SAVE DEPENDEND VARIABLES - C---------------------------------------------- diff --git a/tools/adjoint_options/adjoint_default b/tools/adjoint_options/adjoint_default index dc89fe822a..83935f7c94 100644 --- a/tools/adjoint_options/adjoint_default +++ b/tools/adjoint_options/adjoint_default @@ -4,107 +4,93 @@ # and tangent-linear compilers. If you need to change these settings, # please make a separate (local) copy of this file. -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - TAF=staf -TAMC=tamc +TAMC=stamc + +#- select which Fortran version to specify to TAF +if test "x$TAF_FORTRAN_VERS" = x ; then + if test "x$ALWAYS_USE_F90" = "x1" ; then + TAF_FORTRAN_VERS='F90' ; + else + TAF_FORTRAN_VERS='F77' ; + fi +fi + +if test "x$USE_DIVA" = "x1" ; then + DIVA='true' + DIVA_FLAG="-pure" + if test "x$MPI" != x ; then + SHOW_MPI_TO_TAF=1 + fi +else + DIVA_FLAG= +fi AD_TAMC_FLAGS="-reverse -admark ad -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" FTL_TAMC_FLAGS="-forward -ftlmark g_ -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" -AD_TAF_FLAGS="-reverse -i4 -r4 -intrinsic system,flush -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-forward -i4 -r4 -intrinsic system,flush -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -intrinsic system,flush -l taf_svd.log $SVD_TAF_FLAGS" +AD_TAF_FLAGS="-reverse $DIVA_FLAG -l taf_ad.log $AD_TAF_FLAGS" +FTL_TAF_FLAGS="-forward -l taf_ftl.log $FTL_TAF_FLAGS" +SVD_TAF_FLAGS="-reverse -forward -pure -l taf_svd.log $SVD_TAF_FLAGS" + +TAF_COMMON_FLAGS="-i4 -r4 -intrinsic system,flush" + +if test "x$TAMC_COMPATIBILITY_MODE" = "x1" ; then + TAF_COMMON_FLAGS="-v1 -nonew_arg $TAF_COMMON_FLAGS" +fi + +if test "x$USE_EXTENDED_SRC" = "xt"; then + TAF_COMMON_FLAGS="-e $TAF_COMMON_FLAGS" +fi -#- after Jan 14, 2016, TAF default is "-f95" -if test "x$ALWAYS_USE_F90" = "x1" ; then - AD_TAF_FLAGS="-f90 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f90 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f90 $SVD_TAF_FLAGS" +if test $TAF_FORTRAN_VERS = 'F77' ; then + TAF_COMMON_FLAGS="-f77 $TAF_COMMON_FLAGS" +elif test $TAF_FORTRAN_VERS = 'F90' ; then + TAF_COMMON_FLAGS="-f90 $TAF_COMMON_FLAGS" else - AD_TAF_FLAGS="-f77 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f77 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f77 $SVD_TAF_FLAGS" + #- after Jan 14, 2016, TAF default is "-f95" + TAF_COMMON_FLAGS="-f95 $TAF_COMMON_FLAGS" + TAF_COMPILER=-f95 fi -#- switch to fastopt.net TAF server (instead of default fastopt.de): -AD_TAF_FLAGS="-server fastopt.net $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-server fastopt.net $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-server fastopt.net $SVD_TAF_FLAGS" +#- Instead of using staf default server (SERVER1, currently fastopt.de), +# one can either specify which server to use by setting TAF_SERVER in +# genmake_local (e.g. TAF_SERVER=fastopt.net) or by changing the staf default +# server (e.g., in staf version 4.0, changing line 188 +# from SERVER=${SERVER1} to SERVER=${SERVER2} ) +if test "x$TAF_SERVER" != x ; then + TAF_COMMON_FLAGS="-server $TAF_SERVER $TAF_COMMON_FLAGS" +fi #- in case we need to show some MPI code to TAF: -#if test "x$MPI" != x ; then -# AD_TAF_FLAGS="$AD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# FLT_TAF_FLAGS="$FLT_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# SVD_TAF_FLAGS="$SVD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -#fi +if test "x$SHOW_MPI_TO_TAF" = "x1" -a "x$MPI" != x ; then + MPI_TAF_OPTIONS='-mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers' +else + MPI_TAF_OPTIONS= +fi -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_lwflux_dummy \ - xx_lwdown_dummy \ - xx_evap_dummy \ - xx_snowprecip_dummy \ - xx_apressure_dummy \ - xx_runoff_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_kapredi_dummy \ - xx_bottomdrag_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_gen2d_dummy \ - xx_gen3d_dummy \ - xx_genarr2d_dummy \ - xx_genarr3d_dummy \ - xx_gentim2d_dummy \ - xx_siarea_dummy \ - xx_siheff_dummy \ - xx_sihsnow_dummy \ - xx_shifwflx_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy \ - xx_atemp_mean_dummy \ - xx_aqh_mean_dummy \ - xx_precip_mean_dummy \ - xx_swdown_mean_dummy \ - xx_uwind_mean_dummy \ - xx_vwind_mean_dummy' \ - -output 'fc'" +if test "x$USE_SVD" = "x1" ; then + TAF_FC=objf_state_final + LIBS="${LIBS} -larpack" +else + TAF_FC=fc +fi +DIFF_FLAGS="-toplevel 'the_main_loop' \ + -input 'xx_obcsn_dummy \ + xx_obcss_dummy \ + xx_obcsw_dummy \ + xx_obcse_dummy \ + xx_genarr2d_dummy \ + xx_genarr3d_dummy \ + xx_gentim2d_dummy'\ + -output '$TAF_FC'" AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" +AD_TAF_FLAGS="$TAF_COMMON_FLAGS $AD_TAF_FLAGS $MPI_TAF_OPTIONS $DIFF_FLAGS" FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" +FTL_TAF_FLAGS="$TAF_COMMON_FLAGS $FTL_TAF_FLAGS $MPI_TAF_OPTIONS $DIFF_FLAGS" SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" +SVD_TAF_FLAGS="$TAF_COMMON_FLAGS $SVD_TAF_FLAGS $MPI_TAF_OPTIONS $DIFF_FLAGS" diff --git a/tools/adjoint_options/adjoint_diva b/tools/adjoint_options/adjoint_diva deleted file mode 100644 index 903e71c9a1..0000000000 --- a/tools/adjoint_options/adjoint_diva +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/bash -# -# - -# This AD option-file contains the default settings for the divided adjoint (DIVA) -# and tangent-linear compilers. If you need to change these settings, -# please make a separate (local) copy of this file. - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -DIVA='true' -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-reverse -admark ad -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -ftlmark g_ -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-reverse -pure -i4 -r4 -intrinsic system,flush -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-forward -i4 -r4 -intrinsic system,flush -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -intrinsic system,flush -l taf_svd.log $SVD_TAF_FLAGS" - -#- after Jan 14, 2016, TAF default is "-f95" -if test "x$ALWAYS_USE_F90" = "x1" ; then - AD_TAF_FLAGS="-f90 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f90 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f90 $SVD_TAF_FLAGS" -else - AD_TAF_FLAGS="-f77 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f77 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f77 $SVD_TAF_FLAGS" -fi - -#- switch to fastopt.net TAF server (instead of default fastopt.de): -AD_TAF_FLAGS="-server fastopt.net $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-server fastopt.net $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-server fastopt.net $SVD_TAF_FLAGS" - -#- using DIVA, we need to show some MPI code to TAF: -if test "x$MPI" != x ; then - AD_TAF_FLAGS="$AD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' - FTL_TAF_FLAGS="$FTL_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' - SVD_TAF_FLAGS="$SVD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_lwflux_dummy \ - xx_lwdown_dummy \ - xx_evap_dummy \ - xx_snowprecip_dummy \ - xx_apressure_dummy \ - xx_runoff_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_kapredi_dummy \ - xx_bottomdrag_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_gen2d_dummy \ - xx_gen3d_dummy \ - xx_genarr2d_dummy \ - xx_genarr3d_dummy \ - xx_gentim2d_dummy \ - xx_siarea_dummy \ - xx_siheff_dummy \ - xx_sihsnow_dummy \ - xx_shifwflx_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy \ - xx_atemp_mean_dummy \ - xx_aqh_mean_dummy \ - xx_precip_mean_dummy \ - xx_swdown_mean_dummy \ - xx_uwind_mean_dummy \ - xx_vwind_mean_dummy' \ - -output 'fc'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/tools/adjoint_options/adjoint_f95 b/tools/adjoint_options/adjoint_f95 deleted file mode 100644 index e329f5f835..0000000000 --- a/tools/adjoint_options/adjoint_f95 +++ /dev/null @@ -1,99 +0,0 @@ -#!/bin/bash -# -# This file contains the default F95 settings for the adjoint -# and tangent-linear compilers. If you need to change these settings, -# please make a separate (local) copy of this file. - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-f95 -reverse -admark ad -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-f95 -forward -ftlmark g_ -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-f95 -reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-f95 -reverse -i4 -r4 -intrinsic system,flush -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-f95 -forward -i4 -r4 -intrinsic system,flush -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-f95 -reverse -forward -pure -i4 -r4 -intrinsic system,flush -l taf_svd.log $SVD_TAF_FLAGS" - -#- switch to fastopt.net TAF server (instead of default fastopt.de): -AD_TAF_FLAGS="-server fastopt.net $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-server fastopt.net $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-server fastopt.net $SVD_TAF_FLAGS" - -#- in case we need to show some MPI code to TAF: -#if test "x$MPI" != x ; then -# AD_TAF_FLAGS="$AD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# FLT_TAF_FLAGS="$FLT_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# SVD_TAF_FLAGS="$SVD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -#fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_lwflux_dummy \ - xx_lwdown_dummy \ - xx_evap_dummy \ - xx_snowprecip_dummy \ - xx_apressure_dummy \ - xx_runoff_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_kapredi_dummy \ - xx_bottomdrag_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_gen2d_dummy \ - xx_gen3d_dummy \ - xx_genarr2d_dummy \ - xx_genarr3d_dummy \ - xx_gentim2d_dummy \ - xx_siarea_dummy \ - xx_siheff_dummy \ - xx_sihsnow_dummy \ - xx_shifwflx_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy \ - xx_atemp_mean_dummy \ - xx_aqh_mean_dummy \ - xx_precip_mean_dummy \ - xx_swdown_mean_dummy \ - xx_uwind_mean_dummy \ - xx_vwind_mean_dummy' \ - -output 'fc'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/tools/adjoint_options/adjoint_state_final b/tools/adjoint_options/adjoint_state_final deleted file mode 100644 index a44fd7591f..0000000000 --- a/tools/adjoint_options/adjoint_state_final +++ /dev/null @@ -1,97 +0,0 @@ -#!/bin/bash -# -# This file is a template for SVD-type calculations -# where a vector-valued cost function (-dependent) is used, -# representing the final state (e.g. theta, salt or SST, SSS) -# Also, the ARPACK library is included via LIBS=-larpack -# heimbach@mit.edu - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc -LIBS="${LIBS} -larpack" - -AD_TAMC_FLAGS="-reverse -admark ad -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -ftlmark g_ -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-reverse -i4 -r4 -intrinsic system,flush -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-forward -i4 -r4 -intrinsic system,flush -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -intrinsic system,flush -l taf_svd.log $SVD_TAF_FLAGS" - -#- in case we need to show some MPI code to TAF: -#if test "x$MPI" != x ; then -# AD_TAF_FLAGS="$AD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# FLT_TAF_FLAGS="$FLT_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# SVD_TAF_FLAGS="$SVD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -#fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_lwflux_dummy \ - xx_lwdown_dummy \ - xx_evap_dummy \ - xx_snowprecip_dummy \ - xx_apressure_dummy \ - xx_runoff_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_kapredi_dummy \ - xx_bottomdrag_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_gen2d_dummy \ - xx_gen3d_dummy \ - xx_genarr2d_dummy \ - xx_genarr3d_dummy \ - xx_gentim2d_dummy \ - xx_siarea_dummy \ - xx_siheff_dummy \ - xx_sihsnow_dummy \ - xx_shifwflx_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy \ - xx_atemp_mean_dummy \ - xx_aqh_mean_dummy \ - xx_precip_mean_dummy \ - xx_swdown_mean_dummy \ - xx_uwind_mean_dummy \ - xx_vwind_mean_dummy' \ - -output 'objf_state_final'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/tools/adjoint_options/adjoint_tamc_compatibility b/tools/adjoint_options/adjoint_tamc_compatibility deleted file mode 100644 index 5095750e1c..0000000000 --- a/tools/adjoint_options/adjoint_tamc_compatibility +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/bash -# -# This file contains the TAMC-like settings for the adjoint -# and tangent-linear compilers. If you need to change these settings, -# please make a separate (local) copy of this file. - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-reverse -admark ad -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -ftlmark g_ -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-v1 -nonew_arg -reverse -i4 -r4 -intrinsic system,flush -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-v1 -nonew_arg -forward -i4 -r4 -intrinsic system,flush -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-v1 -nonew_arg -reverse -forward -pure -i4 -r4 -intrinsic system,flush -l taf_svd.log $SVD_TAF_FLAGS" - -#- in case we need to show some MPI code to TAF: -#if test "x$MPI" != x ; then -# AD_TAF_FLAGS="$AD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# FLT_TAF_FLAGS="$FLT_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -# SVD_TAF_FLAGS="$SVD_TAF_FLAGS"' -mpi -include $(LOCAL_MPI_HEADERS) -I./mpi_headers/' -#fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_lwflux_dummy \ - xx_lwdown_dummy \ - xx_evap_dummy \ - xx_snowprecip_dummy \ - xx_apressure_dummy \ - xx_runoff_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_kapredi_dummy \ - xx_bottomdrag_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_gen2d_dummy \ - xx_gen3d_dummy \ - xx_genarr2d_dummy \ - xx_genarr3d_dummy \ - xx_gentim2d_dummy \ - xx_siarea_dummy \ - xx_siheff_dummy \ - xx_sihsnow_dummy \ - xx_shifwflx_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy \ - xx_atemp_mean_dummy \ - xx_aqh_mean_dummy \ - xx_precip_mean_dummy \ - xx_swdown_mean_dummy \ - xx_uwind_mean_dummy \ - xx_vwind_mean_dummy' \ - -output 'fc'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/tools/adjoint_options/adjoint_tap b/tools/adjoint_options/adjoint_tap new file mode 100644 index 0000000000..eb1e3d0321 --- /dev/null +++ b/tools/adjoint_options/adjoint_tap @@ -0,0 +1,8 @@ +#!/bin/bash +# +# + +# This file contains settings for TAPENADE + +DEFINES="$DEFINES -DDEFAULT_R8" + diff --git a/tools/adjoint_sed b/tools/adjoint_sed index c2a0d4fce2..47ef1e63f6 100644 --- a/tools/adjoint_sed +++ b/tools/adjoint_sed @@ -1,9 +1,16 @@ -s/call adopen(/call adopen ( mythid,\ +s/call adopen(/call adopen( mythid,\ \& /g s/call adclose(/call adclose( mythid,\ \& /g -s/call adread(/call adread ( mythid,\ +s/call adread(/call adread( mythid,\ \& /g s/call adwrite(/call adwrite( mythid,\ \& /g - +s/call adiopen(/call adopen( mythid,\ + \& /g +s/call adiclose(/call adclose( mythid,\ + \& /g +s/call adiread(/call adread_i( mythid,\ + \& /g +s/call adiwrite(/call adwrite_i( mythid,\ + \& /g diff --git a/tools/build_options/darwin_amd64_gfortran b/tools/build_options/darwin_amd64_gfortran index 0eb8a8cf07..c5845f883c 100644 --- a/tools/build_options/darwin_amd64_gfortran +++ b/tools/build_options/darwin_amd64_gfortran @@ -60,6 +60,16 @@ FFLAGS="$FFLAGS -fconvert=big-endian" #- might want to use '-fdefault-real-8' for fizhi pkg: #FFLAGS="$FFLAGS -fdefault-real-8 -fdefault-double-8" +#- for setting specific options, check compiler version: +fcVers=`$FC -dumpversion | head -n 1 | sed 's/^[^0-9]* //;s/\..*$//'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-version '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-version: '$fcVers'" ; fi + +if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -fallow-argument-mismatch" +fi + # For IEEE, use the "-ffloat-store" option if test "x$IEEE" = x ; then FFLAGS="$FFLAGS -Wunused -Wuninitialized" diff --git a/tools/build_options/darwin_arm64_gfortran b/tools/build_options/darwin_arm64_gfortran new file mode 100644 index 0000000000..869affc8db --- /dev/null +++ b/tools/build_options/darwin_arm64_gfortran @@ -0,0 +1,160 @@ +#!/bin/bash +# +# tested on MacBook Pro with macOS Monterey +# uname -a +# Darwin bkli04m056 21.3.0 Darwin Kernel Version 21.3.0: Wed Jan 5 21:37:58 PST 2022; root:xnu-8019.80.24~20/RELEASE_ARM64_T6000 arm64 +# gcc, gfortran, netcdf/netcdf-fortran, and openmpi obtained from +# https://www.macports.org +# sudo port install gcc11 +# sudo port select --set gcc mp-gcc11 +# similar results can be achieved using homebrew + +# Note: at the time of creating this file (Mar2022), the +# gfortran-build of http://hpc.sourceforge.net does not work with +# testreport (also: cannot compile like the "etime" test and leads to +# multile warnings at the link step), because the model compiled with +# this gfortran does not print the last line before the stop statement +# without an additional flush-statement. + +if test "x$MPI" = xtrue ; then + CC=mpicc + FC=mpif77 + F90C=mpif90 + LINK=$F90C +else + CC=gcc + FC=gfortran + F90C=gfortran + LINK=$F90C +fi + +FC_NAMEMANGLE="#define FC_NAMEMANGLE(X) X ## _" +S64='$(TOOLSDIR)/set64bitConst.sh' +DEFINES='-DWORDLENGTH=4 -DNML_TERMINATOR' +CPP='/usr/bin/cpp -traditional -P' +GET_FC_VERSION="--version" +EXTENDED_SRC_FLAG='-ffixed-line-length-132' +OMPFLAG='-fopenmp' + +#MAKEDEPEND=tools_xmakedepend + +NOOPTFLAGS='-O0' +NOOPTFILES='' + +FFLAGS="$FFLAGS -fconvert=big-endian" +# for big objects: +#FFLAGS="$FFLAGS -fPIC" +#- might want to use '-fdefault-real-8' for fizhi pkg: +#FFLAGS="$FFLAGS -fdefault-real-8 -fdefault-double-8" + +#- for setting specific options, check compiler version: +fcVers=`$FC -dumpversion | head -n 1 | sed 's/^[^0-9]* //;s/\..*$//'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-version '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-version: '$fcVers'" ; fi + +if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -fallow-argument-mismatch" +fi + +# For IEEE, use the "-ffloat-store" option +if test "x$IEEE" = x ; then + FFLAGS="$FFLAGS -Wunused -Wuninitialized" + FOPTIM='-O3 -ftree-vectorize -funroll-loops' + NOOPTFLAGS='-O2 -funroll-loops' +# NOOPTFILES='gad_c4_adv_x.F gad_u3_adv_x.F' +else + FFLAGS="$FFLAGS -Wall" + if test "x$DEVEL" = x ; then #- no optimisation + IEEE : + FOPTIM='-O0' + else #- development/check options: + FOPTIM='-O0 -g -fbounds-check' + FOPTIM="$FOPTIM -ffpe-trap=invalid,zero,overflow -finit-real=inf" + fi +fi + +F90FLAGS=$FFLAGS +F90OPTIM=$FOPTIM + +INCLUDEDIRS='' +INCLUDES='' +LIBS='' + +if [ "x$NETCDF_ROOT" != x ] ; then + INCLUDEDIR="${NETCDF_ROOT}/include" + INCLUDES="-I${NETCDF_ROOT}/include" + LIBDIR="${NETCDF_ROOT}/lib" + LIBS="-L${NETCDF_ROOT}/lib -lnetcdf -lcurl" +elif [ "x$NETCDF_HOME" != x ]; then + INCLUDEDIR="${NETCDF_HOME}/include" + INCLUDES="-I${NETCDF_HOME}/include" + LIBDIR="${NETCDF_HOME}/lib" + LIBS="-L${NETCDF_HOME}/lib" +elif [ "x$NETCDF_INC" != x -a "x$NETCDF_LIB" != x ]; then + NETCDF_INC=`echo $NETCDF_INC | sed 's/-I//g'` + NETCDF_LIB=`echo $NETCDF_LIB | sed 's/-L//g'` + INCLUDEDIR="${NETCDF_INC}" + INCLUDES="-I${NETCDF_INC}" + LIBDIR="${NETCDF_LIB}" + LIBS="-L${NETCDF_LIB}" +elif [ "x$NETCDF_INCDIR" != x -a "x$NETCDF_LIBDIR" != x ]; then + INCLUDEDIR="${NETCDF_INCDIR}" + INCLUDES="-I${NETCDF_INCDIR}" + LIBDIR="${NETCDF_LIBDIR}" + LIBS="-L${NETCDF_LIBDIR}" +elif [[ -n $( nf-config --includedir ) && ($? == 0) ]] ; then + # NETCDF env variables are not set, trying nf-config instead + INCLUDEDIR=$( nf-config --includedir ) + INCLUDES="-I$INCLUDEDIR" + # although this would is the best option, the resulting -arch arm64 is + # not supported by gfortran from hpc.sourceforge.net + LIBS=$( nf-config --flibs ) + # if FC=gfortran from hpc.sourceforge.net, then this works: + # LIBDIR=$( nf-config --prefix )/lib + # LIBS="-L$LIBDIR" +elif test -d /opt/local/include ; then + # if netcdf has been install by macports, this is where it is: + INCLUDES='-I/opt/local/include' + LIBS='-L/opt/local/lib' +elif test -d /usr/include/netcdf-3 ; then + INCLUDES='-I/usr/include/netcdf-3' + LIBS='-L/usr/lib/netcdf-3 -L/usr/lib64/netcdf-3' +elif test -d /usr/include/netcdf ; then + INCLUDES='-I/usr/include/netcdf' +elif test -d /usr/local/netcdf ; then + INCLUDES='-I/usr/local/netcdf/include' + LIBS='-L/usr/local/netcdf/lib' +elif test -d /usr/local/include/netcdf.inc ; then + INCLUDES='-I/usr/local/include' + LIBS='-L/usr/local/lib64' +elif test -d /usr/include/netcdf.inc ; then + INCLUDES='-I/usr/include' + LIBS='-L/usr/lib64' +fi + +if [ -n "$MPI_HOME" -a -z "$MPI_INC_DIR" ]; then + MPI_INC_DIR="$MPI_HOME/include" +fi + +if [ "x$MPI" = xtrue ] ; then + if [ -z "$MPI_INC_DIR" ] ; then + # MPI env variables are not set, trying pkg-config insteal + # this works for macport installs of openmpi + if [[ -n $( pkg-config --cflags-only-I mpich ) && ($? == 0) ]] ; then + MPI_INC_DIR=$(pkg-config --cflags-only-I mpich | awk '{ print $1 }' | sed -e "s/-I//" ) + else + echo MPI_HOME is not set and pkg-config not available, aborting + exit 1 + fi + fi + if [ -n "$MPI_INC_DIR" ] ; then + # only fill this if we can find MPI, otherwise triggers netcdf error + INCLUDES+=" -I$MPI_INC_DIR" + INCLUDEDIRS+=" $MPI_INC_DIR" + #- used for parallel (MPI) DIVA + MPIINCLUDEDIR="$MPI_INC_DIR" + else + echo could not set MPI_INC_DIR, aborting + exit 1 + fi +fi diff --git a/tools/build_options/linux_amd64_g77 b/tools/build_options/linux_amd64_g77 index 9d3696a836..ff808c1208 100644 --- a/tools/build_options/linux_amd64_g77 +++ b/tools/build_options/linux_amd64_g77 @@ -1,6 +1,5 @@ #!/bin/bash # -# # Build options for g77 compiler (compat-gcc-34-g77) on Linux AMD64 platform # Tested on Linux 2.4.21-102-smp (x86_64), # on Fedora Core 8, 10 (e.g.: dickens), 13 (e.g.: baudelaire), @@ -8,7 +7,8 @@ CC=gcc34 FC=g77 -DEFINES='-D_BYTESWAPIO -DWORDLENGTH=4 -DNML_EXTENDED_F77' +DEFINES='-D_BYTESWAPIO -DWORDLENGTH=4 -DNML_EXTENDED_F77 -DEXCLUDE_OPEN_ACTION' +DEFINES="$DEFINES -DAUTODIFF_USE_MDSFINDUNITS -DPROFILES_USE_MDSFINDUNITS" EXTENDED_SRC_FLAG='-ffixed-line-length-132' GET_FC_VERSION="--version" diff --git a/tools/build_options/linux_amd64_gfortran b/tools/build_options/linux_amd64_gfortran index cc96fa3a23..2f6cf0b457 100644 --- a/tools/build_options/linux_amd64_gfortran +++ b/tools/build_options/linux_amd64_gfortran @@ -2,35 +2,22 @@ # Build options for gfortran compiler (GNU) on Linux AMD64 platform # -# Tested with gcc-gfortran v4.1.x as shipped with Fedora Core 6,7,8 -# with gcc-gfortran v4.3.x as shipped with Fedora Core 9,10 +# Tested with gcc-gfortran v4.1.x as shipped with Fedora Core 6,7,8 +# up to gcc-gfortran v10.2.1 as shipped with Fedora Core 33 # -# OpenMP : Tested on dickens with gcc-gfortran v4.3.2 as shipped with FC 10 -# on baudelaire with gcc-gfortran v4.4.5 as shipped with FC 13 -# on danton with gcc-gfortran v4.5.1 as shipped with FC 14 -# with gcc-gfortran v4.7.x as shipped with FC 17 -# with gcc-gfortran v4.8.1 as shipped with FC 19 -# on acesgrid with gcc-gfortran v4.6.0 as shipped with FC 15 +# OpenMP : Tested with gcc-gfortran v4.3.2 with FC 10 (on dickens) +# with gcc-gfortran v4.4.5 with FC 13 (on baudelaire) +# with gcc-gfortran v7.5.0 with Ubuntu 18 LTS (on villon) +# up to gcc-gfortran v10.2.1 with FC 33 (on batsi) # -# MPI : Tested on acesgrid (Fedora Core 15), using: -# module load gcc (Version 4.6.0) -# and with mpich1: -# module load mvapich -# or with mpich2: -# module load mvapich2 -# or with openmpi: -# module load openmpi +# MPI : Tested on engaging, using: +# module load gcc (Version 4.8.4) +# module add mvapich2/gcc/64/2.0b # and on baudelaire.csail.mit.edu (FC13), using: # export MPI_GCC_DIR=/srv/software/gcc/gcc-packages/gcc-4.4.5/mpich2/mpich2-1.3 # export MPI_INC_DIR=$MPI_GCC_DIR/include # export PATH=$MPI_GCC_DIR/bin:$PATH -# -# and on IRIDIS at Southampton -# http://www.southampton.ac.uk/isolutions/computing/hpc/iridis/ -# with -# module load openmpi/1.4.3/gcc-4.3.3 -# and -# export MPI_INC_DIR=$MPIROOT/include +# and with openmpi, on several platforms (e.g, with Ubuntu) #------- # run with OpenMP: needs to set environment var. OMP_NUM_THREADS @@ -63,6 +50,16 @@ NOOPTFLAGS='-O0' NOOPTFILES='' CFLAGS='-O0' + +#- for setting specific options, check compiler version: +fcVers=`$CC -dumpversion | head -n 1 | sed 's/^[^0-9]* //;s/\..*$//'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-version '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-version: '$fcVers'" ; fi + +if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -fallow-argument-mismatch" +fi #- Requires gfortran from 2006 onwards for -fconvert=big-endian FFLAGS="$FFLAGS -fconvert=big-endian -fimplicit-none" #- for big setups, compile & link with "-fPIC" or set memory-model to "medium": @@ -89,6 +86,9 @@ else #FFLAGS="$FFLAGS -Waliasing -Wampersand -Wsurprising -Wline-truncation" #- or simply: FFLAGS="$FFLAGS -Wall" + if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -Wno-unused-dummy-argument" + fi #- to get plenty of warnings: -Wall -Wextra (older form: -Wall -W) or: #FFLAGS="$FFLAGS -Wconversion -Wimplicit-interface -Wunused-labels" if test "x$DEVEL" = x ; then #- no optimisation + IEEE : @@ -128,7 +128,7 @@ elif [ "x$NETCDF_INCDIR" != x -a "x$NETCDF_LIBDIR" != x ]; then INCLUDES="-I${NETCDF_INCDIR}" LIBDIR="${NETCDF_LIBDIR}" LIBS="-L${NETCDF_LIBDIR}" -elif [[ -n $( nf-config --includedir ) && ($? == 0) ]] ; then +elif [[ -n $( nf-config --includedir 2> /dev/null ) && ($? == 0) ]] ; then # NETCDF env variables are not set, trying nf-config instead INCLUDEDIR=$( nf-config --includedir ) INCLUDES="-I$INCLUDEDIR" diff --git a/tools/build_options/linux_amd64_gfortran_albedo b/tools/build_options/linux_amd64_gfortran_albedo new file mode 100644 index 0000000000..15da99b980 --- /dev/null +++ b/tools/build_options/linux_amd64_gfortran_albedo @@ -0,0 +1,128 @@ +#!/bin/bash + +# Build options for gfortran compiler (GNU) on Linux amd64 platform albedo (@AWI) +# +# Tested with gcc-gfortran v12.1.0 loading the following modules +# +# module purge +# module load gcc +# module load openmpi/4.1.3 +# module load netcdf-fortran/4.5.4-openmpi4.1.3-gcc12.1.0 +# albedo0::> module list +# Currently Loaded Modulefiles: +# 1) gcc/12.1.0 2) openmpi/4.1.3 +# 3) netcdf-fortran/4.5.4-openmpi4.1.3-oneapi2022.1.0 +# + +if test "x$MPI" = xtrue ; then + CC=mpicc + FC=mpif77 + F90C=mpif90 +else + CC=gcc + FC=gfortran + F90C=gfortran +fi + +DEFINES='-DWORDLENGTH=4 -DNML_TERMINATOR' +EXTENDED_SRC_FLAG='-ffixed-line-length-132' +F90FIXEDFORMAT='-ffixed-form' +GET_FC_VERSION="--version" +OMPFLAG='-fopenmp' + +NOOPTFLAGS='-O0' +NOOPTFILES='' + +CFLAGS='-O0' + +#- for setting specific options, check compiler version: +fcVers=`$CC -dumpversion | head -n 1 | sed 's/^[^0-9]* //;s/\..*$//'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized compiler-version '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get compiler-version: '$fcVers'" ; fi + +if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -fallow-argument-mismatch" +fi +#- Requires gfortran from 2006 onwards for -fconvert=big-endian +FFLAGS="$FFLAGS -fconvert=big-endian -fimplicit-none" +#- for big setups, compile & link with "-fPIC" or set memory-model to "medium": +#CFLAGS="$CFLAGS -fPIC" +#FFLAGS="$FFLAGS -fPIC" +#- with FC 19, need to use this without -fPIC (which cancels -mcmodel option): +CFLAGS="$CFLAGS -mcmodel=medium" +FFLAGS="$FFLAGS -mcmodel=medium" +#- might want to use '-fdefault-real-8' for fizhi pkg: +#FFLAGS="$FFLAGS -fdefault-real-8 -fdefault-double-8" +#- speeds up compilation at the cost of more memory overhead +FFLAGS="$FFLAGS -pipe" + +if test "x$IEEE" = x ; then #- with optimisation: + #- full optimisation + FOPTIM='-march=core-avx2 -mtune=core-avx2 -funroll-loops' + # -O3 is generally not recommended, so we use -O2 with -ftree-vectorize + # as the default + #FOPTIM="$FOPTIM -O3" + #- can use -O2 (safe optimisation) to avoid Pb with some gcc version of -O3: + FOPTIM="$FOPTIM -O2 -ftree-vectorize" + NOOPTFILES="$NOOPTFILES ini_masks_etc.F" +else + # these may also be useful, but require specific gfortran versions: + # -Wnonstd-intrinsics for gfortran <= 4.3 + # -Wintrinsics-std for gfortran >= 4.4 + # -Wno-tabs for gfortran >= 4.3 + # -Wno-unused-dummy-argument for gfortran >= 4.6 + #FFLAGS="$FFLAGS -Waliasing -Wampersand -Wsurprising -Wline-truncation" + #- or simply: + FFLAGS="$FFLAGS -Wall" + if [ $fcVers -ge 10 ] ; then + FFLAGS="$FFLAGS -Wno-unused-dummy-argument" + fi + #- to get plenty of warnings: -Wall -Wextra (older form: -Wall -W) or: + #FFLAGS="$FFLAGS -Wconversion -Wimplicit-interface -Wunused-labels" + if test "x$DEVEL" = x ; then #- no optimisation + IEEE : + FOPTIM='-O0' + else #- development/check options: + FOPTIM='-O0 -g -fbounds-check' + FOPTIM="$FOPTIM -ffpe-trap=invalid,zero,overflow -finit-real=inf" + fi +fi + +F90FLAGS=$FFLAGS +F90OPTIM=$FOPTIM + +INCLUDEDIRS='' +INCLUDES='' +LIBS='' + +if [[ -n $( nf-config --fflags ) && ($? == 0) ]]; then + INCLUDES=$(nf-config --fflags) +# LIBS=$(nf-config --flibs) + LIBS="-L$(nf-config --prefix)/lib -lnetcdff" +fi + +if [ -n "$MPI_HOME" -a -z "$MPI_INC_DIR" ]; then + MPI_INC_DIR="$MPI_HOME/include" +fi + +if [ "x$MPI" = xtrue ] ; then + if [ -z "$MPI_INC_DIR" ] ; then + # MPI env variables are not set, trying pkg-config insteal + if [[ -n $( pkg-config --cflags-only-I ompi ) && ($? == 0) ]] ; then + MPI_INC_DIR=$(pkg-config --cflags-only-I ompi | awk '{ print $1 }' | sed -e "s/-I//" ) + else + echo MPI_HOME is not set and pkg-config not available, aborting + exit 1 + fi + fi + if [ -n "$MPI_INC_DIR" ] ; then + # only fill this if we can find MPI, otherwise triggers netcdf error + INCLUDES+=" -I$MPI_INC_DIR" + INCLUDEDIRS+=" $MPI_INC_DIR" + #- used for parallel (MPI) DIVA + MPIINCLUDEDIR="$MPI_INC_DIR" + else + echo could not set MPI_INC_DIR, aborting + exit 1 + fi +fi diff --git a/tools/build_options/linux_amd64_ifort+gcc b/tools/build_options/linux_amd64_ifort+gcc index c84fcdac10..e4dc747489 100644 --- a/tools/build_options/linux_amd64_ifort+gcc +++ b/tools/build_options/linux_amd64_ifort+gcc @@ -29,6 +29,15 @@ OMPFLAG='-openmp' NOOPTFLAGS='-O0 -g' NOOPTFILES='' +#- for setting specific options, check compiler version: +fcVers=`$FC $GET_FC_VERSION | head -n 1 | awk '{print $NF}'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-release '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-release: '$fcVers'" ; fi +if [ $fcVers -ge 20160301 ] ; then + OMPFLAG='-qopenmp' +fi + if test "x$GENERIC" != x ; then PROCF=-axSSE4.2,SSE4.1,SSSE3,SSE3,SSE2 else @@ -55,7 +64,7 @@ else #FFLAGS="$FFLAGS -debug all -debug-parameters all -fp-model strict" FOPTIM="-O0 -noalign -g -traceback $PROCF" NOOPTFLAGS=$FOPTIM - NOOPTFILES='adread_adwrite.F mdsio_rw_field.F mdsio_rw_slice.F' + NOOPTFILES='adread_adwrite.F' FOPTIM="$FOPTIM -warn all -warn nounused" FOPTIM="$FOPTIM -fpe0 -ftz -fp-stack-check -check all -ftrapuv" fi diff --git a/tools/build_options/linux_amd64_ifort+impi b/tools/build_options/linux_amd64_ifort+impi index 21462de8a0..5f8fcdd149 100644 --- a/tools/build_options/linux_amd64_ifort+impi +++ b/tools/build_options/linux_amd64_ifort+impi @@ -1,9 +1,9 @@ #!/bin/bash # -# # Build options for ifort with impi on Linux AMD64 platform # -# Tested on engaging1 (Centos 6) with ifort 14.0.2 (20140120) and impi 4.1.3.048 +# Tested on engaging (Centos 6, Centos 7), with or without OpenMP, +# with ifort 14.0.2 (20140120) and impi 4.1.3.048 # #------- @@ -28,6 +28,15 @@ OMPFLAG='-openmp' NOOPTFLAGS='-O0 -g' NOOPTFILES='' +#- for setting specific options, check compiler version: +fcVers=`$FC $GET_FC_VERSION | head -n 1 | awk '{print $NF}'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-release '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-release: '$fcVers'" ; fi +if [ $fcVers -ge 20160301 ] ; then + OMPFLAG='-qopenmp' +fi + if test "x$GENERIC" != x ; then PROCF=-axSSE4.2,SSE4.1,SSSE3,SSE3,SSE2 else @@ -54,7 +63,7 @@ else #FFLAGS="$FFLAGS -debug all -debug-parameters all -fp-model strict" FOPTIM="-O0 -noalign -g -traceback $PROCF" NOOPTFLAGS=$FOPTIM - NOOPTFILES='adread_adwrite.F mdsio_rw_field.F mdsio_rw_slice.F' + NOOPTFILES='adread_adwrite.F' FOPTIM="$FOPTIM -warn all -warn nounused" FOPTIM="$FOPTIM -fpe0 -ftz -fp-stack-check -check all -ftrapuv" fi diff --git a/tools/build_options/linux_amd64_ifort+impi_engaging b/tools/build_options/linux_amd64_ifort+impi_engaging new file mode 100644 index 0000000000..f80ea823cf --- /dev/null +++ b/tools/build_options/linux_amd64_ifort+impi_engaging @@ -0,0 +1,137 @@ +#!/bin/bash +# +# Build options for ifort with impi on Linux AMD64 platform +# +# Tested on engaging1 (Centos 7) with ifort 2018-01 and impi 2018-01. +# Executable will run on Sandybridge, Haswell, Broadwell, Skylake and above. +# +#------- + +if test "x$MPI" = xtrue ; then + CC=${MPICC:=mpiicc} + FC=${MPIFC:=mpiifort} + F90C=${MPIF90C:=mpiifort} + LINK="$F90C -shared-intel -no-ipo" +else + CC=icc + FC=ifort + F90C=ifort + LINK="$F90C -shared-intel" +fi + +DEFINES='-DWORDLENGTH=4' +F90FIXEDFORMAT='-fixed -Tf' +EXTENDED_SRC_FLAG='-132' +GET_FC_VERSION="--version" +OMPFLAG='-qopenmp' + +NOOPTFLAGS='-O0 -g' +NOOPTFILES='' + +if test "x$GENERIC" != x ; then + # Combined executable with separate code paths for Sandybridge and + # Haswell/Broadwell/Skylake processors. Will take longer to compile. + # We avoid AVX512 as it leads to inconsistencies with other + # instruction sets, even with -fp-model consistent. + # If only targeting Haswell and higher, better use -xCORE-AVX2 below. + # To select this option, set the GENERIC environment veriable when + # running genmake2, e.g., + # export GENERIC=yes + # genmake2 ... + PROCF=-axAVX,CORE-AVX2 +else + # This will run on Sandybridge or higher + PROCF=-xAVX + # This will run on Haswell or higher + #PROCF=-xCORE-AVX2 + # This will run on Skylake or higher, but may give different results + #PROCF=-xCORE-AVX512 +fi + +CFLAGS="-O0 -ip -m64 $PROCF" +FFLAGS="$FFLAGS -m64 -convert big_endian -assume byterecl" +#- for big setups, compile & link with "-fPIC" or set memory-model to "medium": +#CFLAGS="$CFLAGS -fPIC" +#FFLAGS="$FFLAGS -fPIC" +#- with FC 19, need to use this without -fPIC (which cancels -mcmodel option): + CFLAGS="$CFLAGS -mcmodel=medium" + FFLAGS="$FFLAGS -mcmodel=medium" +#- might want to use '-r8' for fizhi pkg: +#FFLAGS="$FFLAGS -r8" + +if test "x$IEEE" = x ; then #- with optimisation: + FOPTIM="-O3 -align -ip -fp-model consistent $PROCF" +else + if test "x$DEVEL" = x ; then #- no optimisation + IEEE : + FOPTIM="-O0 -fp-model consistent -noalign $PROCF" + else #- development/check options: + #FFLAGS="$FFLAGS -debug all -debug-parameters all -fp-model strict" + FOPTIM="-O0 -noalign -g -traceback $PROCF" + NOOPTFLAGS=$FOPTIM + NOOPTFILES='adread_adwrite.F' + FOPTIM="$FOPTIM -warn all -warn nounused" + FOPTIM="$FOPTIM -fpe0 -ftz -fp-stack-check -check all -ftrapuv" + fi +fi + +F90FLAGS=$FFLAGS +F90OPTIM=$FOPTIM + +INCLUDEDIRS='' +INCLUDES='' +LIBS='' + +if [ "x$NETCDF_ROOT" != x ] ; then + INCLUDEDIRS="${NETCDF_ROOT}/include" + INCLUDES="-I${NETCDF_ROOT}/include" + LIBS="-L${NETCDF_ROOT}/lib64 -L${NETCDF_ROOT}/lib" +elif [ "x$NETCDF_HOME" != x ]; then + INCLUDEDIRS="${NETCDF_HOME}/include" + INCLUDES="-I${NETCDF_HOME}/include" + LIBS="-L${NETCDF_ROOT}/lib64 -L${NETCDF_HOME}/lib" +elif [ "x$NETCDF_INC" != x -a "x$NETCDF_LIB" != x ]; then + NETCDF_INC=`echo $NETCDF_INC | sed 's/-I//g'` + NETCDF_LIB=`echo $NETCDF_LIB | sed 's/-L//g'` + INCLUDEDIRS="${NETCDF_INC}" + INCLUDES="-I${NETCDF_INC}" + LIBS="-L${NETCDF_LIB}" +elif [ "x$NETCDF_INCDIR" != x -a "x$NETCDF_LIBDIR" != x ]; then + INCLUDEDIRS="${NETCDF_INCDIR}" + INCLUDES="-I${NETCDF_INCDIR}" + LIBS="-L${NETCDF_LIBDIR}" +elif test -d /usr/include/netcdf-3 ; then + INCLUDEDIRS='/usr/include/netcdf-3' + INCLUDES='-I/usr/include/netcdf-3' + LIBS='-L/usr/lib64/netcdf-3 -L/usr/lib/netcdf-3' +elif test -d /usr/local/pkg/netcdf ; then + INCLUDEDIRS='/usr/local/pkg/netcdf/include' + INCLUDES='-I/usr/local/pkg/netcdf/include' + LIBS='-L/usr/local/pkg-x86_64/netcdf/lib64 -L/usr/local/pkg-x86_64/netcdf/lib -L/usr/local/pkg/netcdf/lib64 -L/usr/local/pkg/netcdf/lib' +elif test -d /usr/include/netcdf ; then + INCLUDEDIRS='/usr/include/netcdf' + INCLUDES='-I/usr/include/netcdf' +elif test -d /usr/local/netcdf ; then + INCLUDEDIRS='/usr/include/netcdf/include' + INCLUDES='-I/usr/local/netcdf/include' + LIBS='-L/usr/local/netcdf/lib64 -L/usr/local/netcdf/lib' +elif test -f /usr/local/include/netcdf.inc ; then + INCLUDEDIRS='/usr/local/include' + INCLUDES='-I/usr/local/include' + LIBS='-L/usr/local/lib64 -L/usr/local/lib' +fi + +if [ -n "$I_MPI_ROOT" -a -z "$MPI_INC_DIR" ]; then + MPI_INC_DIR="$I_MPI_ROOT/intel64/include" +fi + +if [ -n "$MPI_INC_DIR" -a "x$MPI" = xtrue ] ; then + INCLUDES="$INCLUDES -I$MPI_INC_DIR" + INCLUDEDIRS="$INCLUDEDIRS $MPI_INC_DIR" + #- used for parallel (MPI) DIVA + MPIINCLUDEDIR="$MPI_INC_DIR" + #MPI_HEADER_FILES='mpif.h mpiof.h' +fi + +if [ -n "$SPICELIBS" ]; then + LIBS="$LIBS $SPICELIBS" +fi diff --git a/tools/build_options/linux_amd64_ifort+impi_stampede2_knl b/tools/build_options/linux_amd64_ifort+impi_stampede2_knl index b00d213ae9..f8e089a79a 100644 --- a/tools/build_options/linux_amd64_ifort+impi_stampede2_knl +++ b/tools/build_options/linux_amd64_ifort+impi_stampede2_knl @@ -19,7 +19,7 @@ CPP='cpp -traditional -P' F90FIXEDFORMAT='-fixed -Tf' EXTENDED_SRC_FLAG='-132' GET_FC_VERSION="--version" -OMPFLAG='-openmp' +OMPFLAG='-qopenmp' NOOPTFLAGS='-O1 -fp-model precise' diff --git a/tools/build_options/linux_amd64_ifort+impi_stampede2_skx b/tools/build_options/linux_amd64_ifort+impi_stampede2_skx index ce76c22e2b..0a822e50b1 100644 --- a/tools/build_options/linux_amd64_ifort+impi_stampede2_skx +++ b/tools/build_options/linux_amd64_ifort+impi_stampede2_skx @@ -15,7 +15,7 @@ CPP='cpp -traditional -P' F90FIXEDFORMAT='-fixed -Tf' EXTENDED_SRC_FLAG='-132' GET_FC_VERSION="--version" -OMPFLAG='-openmp' +OMPFLAG='-qopenmp' NOOPTFLAGS='-O1 -fp-model precise' diff --git a/tools/build_options/linux_amd64_ifort+mpi_ice_nas b/tools/build_options/linux_amd64_ifort+mpi_ice_nas index e8f5696d43..d96079d1e7 100644 --- a/tools/build_options/linux_amd64_ifort+mpi_ice_nas +++ b/tools/build_options/linux_amd64_ifort+mpi_ice_nas @@ -1,18 +1,29 @@ -#!/bin/bash -# -# Used to run the testreport on pleiades with: -# module load comp-intel/2016.2.181 mpi-sgi/mpt.2.14r19 hdf4/4.2.12 hdf5/1.8.18_mpt netcdf/4.4.1.1_mpt -# works on all types of nodes +#! /usr/bin/env bash + +# Used to run testreport on pleiades after OS changed from SLES to TOSS (v.3), +# using either recent intel compiler: +# > module load comp-intel/2020.4.304 +# or using older intel compiler: +# > module load comp-intel/2016.2.181 +#- and, with MPI: +# > module load mpi-hpe/mpt.2.25 +# > module load hdf4/4.2.12 hdf5/1.8.18_mpt netcdf/4.4.1.1_mpt +#- and without: +# > module load hdf4/4.2.12 hdf5/1.8.18_serial netcdf/4.4.1.1_serial +#- Note: in both cases, the last line of 3 module setting is for NetCDF +# (could be skipped if not using at all this type of I/O). -FC=ifort CC=icc +FC=ifort +F90C=ifort +LINK="$F90C -shared-intel" CPP='/lib/cpp -traditional -P' -DEFINES='-DALLOW_USE_MPI -DWORDLENGTH=4 -DINTEL_COMMITQQ' +DEFINES='-DWORDLENGTH=4 -DINTEL_COMMITQQ' F90FIXEDFORMAT='-fixed -Tf' EXTENDED_SRC_FLAG='-132' GET_FC_VERSION="--version" -OMPFLAG='-openmp' +OMPFLAG='-qopenmp' #NOOPTFLAGS='-O1 -fp-model precise' NOOPTFLAGS='-O0' @@ -30,8 +41,6 @@ FFLAGS="$FFLAGS -fPIC" #- might want to use '-r8' for fizhi pkg: #FFLAGS="$FFLAGS -r8" -LDADD='-shared-intel' - FFLAGS="$FFLAGS -W0 -WB" if test "x$IEEE" = x ; then #- with optimisation: FOPTIM='-O2 -ipo -fp-model precise -align -axCORE-AVX2 -xSSE4.2 -traceback -ftz' @@ -44,7 +53,7 @@ else #FFLAGS="$FFLAGS -debug all -debug-parameters all -fp-model strict" FOPTIM="-O0 -noalign -g -traceback" NOOPTFLAGS=$FOPTIM - NOOPTFILES='adread_adwrite.F mdsio_rw_field.F mdsio_rw_slice.F' + NOOPTFILES='adread_adwrite.F' FOPTIM="$FOPTIM -warn all -warn nounused" FOPTIM="$FOPTIM -fpe0 -ftz -fp-stack-check -check all -ftrapuv" fi @@ -53,10 +62,27 @@ fi F90FLAGS=$FFLAGS F90OPTIM=$FOPTIM -LIBS='-L/nasa/sgi/mpt/2.14r19/lib -lmpi -L/nasa/netcdf/4.4.1.1_mpt/lib -lnetcdf' -INCLUDES='-I/nasa/sgi/mpt/2.14r19/include -I/nasa/netcdf/4.4.1.1_mpt/include' -#INCLUDEDIRS='/nasa/sgi/mpt/2.14r19/include' +INCLUDEDIRS='' +INCLUDES='' +LIBS='' -#- used for parallel (MPI) DIVA - MPIINCLUDEDIR='/nasa/sgi/mpt/2.14r19/include' -#MPI_HEADER_FILES='mpif.h mpiof.h' +if [ -n "$MPI_ROOT" -a "x$MPI" = xtrue ] ; then + if [ -z "$MPI_INC_DIR" ]; then + MPI_INC_DIR="${MPI_ROOT}/include" + fi + LIBS="$LIBS -L${MPI_ROOT}/lib -lmpi" +fi + +if [ -n "$MPI_INC_DIR" -a "x$MPI" = xtrue ] ; then + INCLUDES="$INCLUDES -I${MPI_INC_DIR}" + #INCLUDEDIRS="$INCLUDEDIRS $MPI_INC_DIR" + #- used for parallel (MPI) DIVA + MPIINCLUDEDIR="$MPI_INC_DIR" + #MPI_HEADER_FILES='mpif.h mpiof.h' +fi + +if [ "x$NETCDF" != x ] ; then + INCLUDES="$INCLUDES -I${NETCDF}/include" + #INCLUDEDIRS="$INCLUDEDIRS ${NETCDF}/include" + LIBS="$LIBS -L${NETCDF}/lib" +fi diff --git a/tools/build_options/linux_amd64_ifort11 b/tools/build_options/linux_amd64_ifort11 index 745f9f6f97..f2cb8a1368 100644 --- a/tools/build_options/linux_amd64_ifort11 +++ b/tools/build_options/linux_amd64_ifort11 @@ -8,10 +8,12 @@ # OpenMP : tested on danton (FC 14) using intel compiler v.11.1.046 (20090630) # and (FC 14,17 & 19) v.12.0.4 (20110427) # and also (FC 19) v.14.0.0 (20130728) +# on jaures (FC21, FC23) using intel compiler v.15.0.3 (20150407) # -# MPI : Tested on danton, with and without OpenMP, -# using intel compiler v.11.1.046 and v.12.0.4 and also v.14.0.0 +# MPI : Tested on danton/jaures, with and without OpenMP, +# using version v.11.1.046, v.12.0.4, v.14.0.0 and v.15.0.3 # and on acesgrid (FC 15) with intel compiler v.13.0.0.079 (20120731) +# and on svante (FC24) with: 17.0.3 (20170404) and 2021.4.0 (20210910) # ==> DON'T FORGET to set environment variable MPI_INC_DIR to the include # directory of your MPI implementation @@ -49,6 +51,15 @@ OMPFLAG='-openmp' NOOPTFLAGS='-O0 -g' NOOPTFILES='' +#- for setting specific options, check compiler version: +fcVers=`$FC $GET_FC_VERSION | head -n 1 | awk '{print $NF}'` +if ! [[ $fcVers =~ ^[0-9]+$ ]] ; then + echo " un-recognized Compiler-release '$fcVers' ; ignored (-> set to 0)" ; fcVers=0 ; +else echo " get Compiler-release: '$fcVers'" ; fi +if [ $fcVers -ge 20160301 ] ; then + OMPFLAG='-qopenmp' +fi + if test "x$GENERIC" != x ; then PROCF=-axSSE4.2,SSE4.1,SSSE3,SSE3,SSE2 else @@ -75,7 +86,7 @@ else #FFLAGS="$FFLAGS -debug all -debug-parameters all -fp-model strict" FOPTIM="-O0 -noalign -g -traceback $PROCF" NOOPTFLAGS=$FOPTIM - NOOPTFILES='adread_adwrite.F mdsio_rw_field.F mdsio_rw_slice.F' + NOOPTFILES='adread_adwrite.F' FOPTIM="$FOPTIM -warn all -warn nounused" FOPTIM="$FOPTIM -fpe0 -ftz -fp-stack-check -check all -ftrapuv" fi diff --git a/tools/build_options/linux_amd64_ifort_albedo b/tools/build_options/linux_amd64_ifort_albedo new file mode 100644 index 0000000000..d2bf184a9d --- /dev/null +++ b/tools/build_options/linux_amd64_ifort_albedo @@ -0,0 +1,114 @@ +#!/bin/bash +# +# Build options for intel compiler on Linux amd64 platform albedo (@AWI) +# derived from linux_amd64_ifort +# +# Tested with intel-oneapi-compilers/2022.1.0 loading the following modules +# +# module purge (to remove you have anything that may conflict with ifort) +# module load intel-oneapi-compilers +# # module load intel-oneapi-mkl +# module load intel-oneapi-mpi +# module load netcdf-fortran/4.5.4-oneapi2022.1.0 +# albedo0::> module list +# Currently Loaded Modulefiles: +# 1) intel-oneapi-compilers/2022.1.0 2) intel-oneapi-mpi/2021.6.0 +# 3) netcdf-fortran/4.5.4-oneapi2022.1.0 + +if test "x$MPI" = xtrue ; then + CC=mpiicc + FC=mpiifort + F90C=mpiifort +else + CC=icc + FC=ifort + F90C=ifort +fi +#LINK="$F90C -ipo" + +DEFINES='-DWORDLENGTH=4' +F90FIXEDFORMAT='-fixed -Tf' +EXTENDED_SRC_FLAG='-132' +GET_FC_VERSION="--version" +OMPFLAG='-qopenmp' + +NOOPTFLAGS='-O0' +NOOPTFILES='' + +FFLAGS="$FFLAGS -W0 -WB -convert big_endian -assume byterecl" +FFLAGS="$FFLAGS -fPIC" +#- might want to use '-r8' for fizhi pkg: +#FFLAGS="$FFLAGS -r8" + +if test "x$IEEE" = x ; then #- with optimisation: + # FOPTIM='-fast' does not work because there are no static netcdf + # libaries, also the implied '-xHost' is not recognized so we use + # -xcore-avx2 instead and spell out the options explicitly. + # '-ipo' makes linking very slow with no effect, so we will skip that, too. + #FOPTIM='-ipo -align -O3 -static -no-prec-div -fp-model fast=2 -xHost' + FOPTIM='-ip -align -O3 -no-prec-div -fp-model fast=2 -march=core-avx2' + # probably not necessary + FOPTIM="$FOPTIM -mtune=core-avx2" + # additional options from benchmarkers + FOPTIM="$FOPTIM -qopt-prefetch=5 -unroll-aggressive" + # report optimization (very cryptic) + #FOPTIM="$FOPTIM -qopt-report5" + # reduce optimization level a little for some files + NOOPTFLAGS='-ip -align -O1 -no-prec-div -fp-model fast=2 -march=core-avx2' + #NOOPTFLAGS="$NOOPTFLAGS -mtune=core-avx2" + NOOPTFILES='obcs_init_fixed.F obcs_set_connect.F' +else + if test "x$DEVEL" = x ; then #- no optimisation + IEEE : + # "-fp-model [keyword]" is the recommended method of controlling precision + FOPTIM='-O0 -noalign -march=core-avx2 -ip -fp-model consistent' +# alternatives, see man pages for details +# FOPTIM='-O0 -noalign -march=core-avx2 -ip -mp1' +# FOPTIM='-O0 -noalign -march=core-avx2 -ip -fp-model precise' +# FOPTIM='-O0 -noalign -march=core-avx2 -ip -mieee-fp' + else #- development/check options: +# FFLAGS="$FFLAGS -warn all -warn nounused" + FFLAGS="$FFLAGS -warn unused" + FOPTIM="-fpe0 -check all -ftrapuv -fp-model precise" + FOPTIM="$FOPTIM -O0 -noalign -g -traceback" + fi +fi + +F90FLAGS=$FFLAGS +F90OPTIM=$FOPTIM +CFLAGS='-O0 -fPIC -ip' + +INCLUDEDIRS='' +INCLUDES='' +LIBS='' + +if [[ -n $( nf-config --fflags ) && ($? == 0) ]]; then + INCLUDES=$(nf-config --fflags) +# LIBS=$(nf-config --flibs) + LIBS="-L$(nf-config --prefix)/lib -lnetcdff" +fi + +if [ -n "$MPI_HOME" -a -z "$MPI_INC_DIR" ]; then + MPI_INC_DIR="$MPI_HOME/include" +fi + +if [ "x$MPI" = xtrue ] ; then + if [ -z "$MPI_INC_DIR" ] ; then + # MPI env variables are not set, trying pkg-config insteal + if [[ -n $( pkg-config --cflags-only-I impi ) && ($? == 0) ]] ; then + MPI_INC_DIR=$(pkg-config --cflags-only-I impi | awk '{ print $1 }' | sed -e "s/-I//" ) + else + echo MPI_HOME is not set and pkg-config not available, aborting + exit 1 + fi + fi + if [ -n "$MPI_INC_DIR" ] ; then + # only fill this if we can find MPI, otherwise triggers netcdf error + INCLUDES+=" -I$MPI_INC_DIR" + INCLUDEDIRS+=" $MPI_INC_DIR" + #- used for parallel (MPI) DIVA + MPIINCLUDEDIR="$MPI_INC_DIR" + else + echo could not set MPI_INC_DIR, aborting + exit 1 + fi +fi diff --git a/tools/build_options/linux_amd64_pgf77 b/tools/build_options/linux_amd64_pgf77 index 220eb1819b..fe7ac31fb6 100644 --- a/tools/build_options/linux_amd64_pgf77 +++ b/tools/build_options/linux_amd64_pgf77 @@ -47,7 +47,7 @@ DEFINES="-DWORDLENGTH=4" if test "x$ALWAYS_USE_F90" = x1 ; then FC=$F90C else - DEFINES="$DEFINES -DNML_EXTENDED_F77" + DEFINES="$DEFINES -DNML_EXTENDED_F77 -DEXCLUDE_OPEN_ACTION" fi CPP='cpp -traditional -P' F90FIXEDFORMAT='-Mfixed' diff --git a/tools/build_options/linux_ia32_g77 b/tools/build_options/linux_ia32_g77 index 6669beac38..d115ddea37 100644 --- a/tools/build_options/linux_ia32_g77 +++ b/tools/build_options/linux_ia32_g77 @@ -16,7 +16,8 @@ else LINK=$FC fi -DEFINES='-D_BYTESWAPIO -DWORDLENGTH=4 -DNML_EXTENDED_F77' +DEFINES='-D_BYTESWAPIO -DWORDLENGTH=4 -DNML_EXTENDED_F77 -DEXCLUDE_OPEN_ACTION' +DEFINES="$DEFINES -DAUTODIFF_USE_MDSFINDUNITS -DPROFILES_USE_MDSFINDUNITS" CPP='cpp -traditional -P' EXTENDED_SRC_FLAG='-ffixed-line-length-132' GET_FC_VERSION="--version" diff --git a/tools/build_options/linux_ia64_cray_archer b/tools/build_options/linux_ia64_cray_archer deleted file mode 100644 index f00d7e8235..0000000000 --- a/tools/build_options/linux_ia64_cray_archer +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# -# To be used with the suite of cray compilers (PrgEnv-cray). -# To get netcdf, add: -# module load cray-hdf5-parallel/1.10.0.1 -# module load cray-netcdf-hdf5parallel/4.4.1.1 - -CC='cc' -FC='ftn' -F90C='ftn' - -DEFINES='-DWORDLENGTH=4 -D_BYTESWAPIO -DHAVE_LAPACK' -CPP='cpp -traditional -P' -EXTENDED_SRC_FLAG='-Mextend' -GET_FC_VERSION="-V" -CHECK_FOR_LAPACK=t -FC_CHECK=f - -INCLUDES='-I/opt/cray/netcdf-hdf5parallel/4.4.1.1/cray/83/include -I/opt/cray/mpt/7.5.5/gni/mpich-cray/84/include' -LIBS='-L/opt/cray/netcdf-hdf5parallel/4.4.1.1/cray/83/lib -L/opt/cray/mpt/7.5.5/gni/mpich-cray/84/lib' - -NOOPTFLAGS='-O0' -NOOPTFILES='' - -if test "x$IEEE" = x ; then #- with optimisation: -# FOPTIM='-O2 -hfp3 -Oipa5' for less agressive optimization -# Be aware not all experiments pass the restart test with optimization - FOPTIM='-O3 -hfp3 -Oipa5' -else - if test "x$DEVEL" = x ; then #- no optimisation + IEEE : - FOPTIM='-O0 -hfp0' - else #- development/check options: - FOPTIM='-O0 -hfp0' - FOPTIM="$FOPTIM -g -Rbc -rm -hmsgs -hnegmsgs" - fi -fi - -#- For big executable, this could help: -#FFLAGS='-h pic -dynamic' -#CFLAGS='-h pic -dynamic' - diff --git a/tools/build_options/linux_ia64_cray_archer2 b/tools/build_options/linux_ia64_cray_archer2 new file mode 100644 index 0000000000..ada3776ca5 --- /dev/null +++ b/tools/build_options/linux_ia64_cray_archer2 @@ -0,0 +1,41 @@ +#!/bin/bash +# To be used on ARCHER2 UK HPC with the default Cray compilers (PrgEnv-cray). +# +# Default modlues as of 7 June 2022: +# >> module list +# Currently Loaded Modules: +# 1) cce/11.0.4 4) libfabric/1.11.0.4.71 7) xpmem/2.2.40-7.0.1.0_2.7__g1d7a24d.shasta 10) PrgEnv-cray/8.0.0 13) load-epcc-module +# 2) craype/2.7.6 5) craype-network-ofi 8) cray-mpich/8.1.4 11) bolt/0.7 +# 3) craype-x86-rome 6) perftools-base/21.02.0 9) cray-libsci/21.04.1.1 12) epcc-setup-env + +CC='cc' +FC='ftn' +F90C='ftn' + +DEFINES='-DWORDLENGTH=4 -D_BYTESWAPIO -DHAVE_LAPACK -DNML_TERMINATOR' +CPP='cpp -traditional -P' +EXTENDED_SRC_FLAG='-Mextend' +GET_FC_VERSION="-V" +CHECK_FOR_LAPACK=t +FC_CHECK=f +INCLUDES='-I${NETCDF_DIR}/include -I${CRAY_MPICH_DIR}/include' +LIBS='-L${NETCDF_DIR}/lib -L${CRAY_MPICH_DIR}/include/lib' + +NOOPTFLAGS='-O0' +NOOPTFILES='' + +if test "x$IEEE" = x ; then #- with optimisation: + # FOPTIM='-O2 -hfp3 -Oipa5' for less agressive optimization + FOPTIM='-O3 -hfp3 -Oipa5' +else + if test "x$DEVEL" = x ; then #- no optimisation + IEEE : + FOPTIM='-O0 -hfp0' + else #- development/check options: + FOPTIM='-O0 -hfp0' + FOPTIM="$FOPTIM -g -Rbc -rm -hmsgs -hnegmsgs" + fi +fi + +FFLAGS="$FFLAGS -em -ef -dynamic -h pic" + +CFLAGS="$CFLAGS -h pic -dynamic" diff --git a/tools/ci/docker/ubuntu_18_04_villon/Dockerfile b/tools/ci/docker/ubuntu_18_04_villon/Dockerfile index 90271bb994..d7388871a5 100644 --- a/tools/ci/docker/ubuntu_18_04_villon/Dockerfile +++ b/tools/ci/docker/ubuntu_18_04_villon/Dockerfile @@ -1,6 +1,5 @@ FROM ubuntu:18.04 LABEL maintainer=mitgcm-devel@mitgcm.org -RUN apt-get -y update -RUN apt-get -y install build-essential git gfortran python python3 +RUN apt-get -y update && apt-get -y install make git gfortran libnetcdff-dev python diff --git a/tools/ci/runtr.sh b/tools/ci/runtr.sh index de96032b93..5b1fb06b85 100755 --- a/tools/ci/runtr.sh +++ b/tools/ci/runtr.sh @@ -10,7 +10,7 @@ # if [ -z "${MITGCM_TROPT}" ]; then - export MITGCM_TROPT='-devel -of=../tools/build_options/linux_amd64_gfortran' + export MITGCM_TROPT='-devel -of=../tools/build_options/linux_amd64_gfortran -match 14' fi if [ -z "${MITGCM_DECMD}" ]; then export MITGCM_DECMD='docker exec -i ubuntu_18_04-testreport bash -c' @@ -19,9 +19,4 @@ if [ -z "${MITGCM_INPUT_DIR_PAT}" ]; then export MITGCM_INPUT_DIR_PAT='/input.*' fi -${MITGCM_DECMD} "cd /MITgcm/verification; ./testreport -t ${MITGCM_EXP} ${MITGCM_TROPT} | \ - tee ${MITGCM_EXP}/testreport_out.txt" -${MITGCM_DECMD} "cd /MITgcm/verification; python verification_parser.py \ - -filename ${MITGCM_EXP}/testreport_out.txt \ - -threshold ${MITGCM_PRECS} \ - -input_dir_pat ${MITGCM_INPUT_DIR_PAT}" +${MITGCM_DECMD} "cd /MITgcm/verification; ./testreport -pass -t ${MITGCM_EXP} ${MITGCM_TROPT}" diff --git a/tools/do_tst_2+2 b/tools/do_tst_2+2 index daaf2de65a..03fd0c812e 100755 --- a/tools/do_tst_2+2 +++ b/tools/do_tst_2+2 @@ -166,7 +166,7 @@ RUNOUTP="output.txt" if [ $mpi -ge 1 ] ; then SCRIPT="$SCRIPT -mpi" RUNOUTP="STDOUT.0000" - if test "x$COMMAND" = x ; then COMMAND="mpirun -v -np TR_NPROC ./mitgcmuv" ; fi + if test "x$COMMAND" = x ; then COMMAND="mpirun -np TR_NPROC ./mitgcmuv" ; fi fi for xx in $LIST diff --git a/tools/genmake2 b/tools/genmake2 index e648fed8cd..b922015931 100755 --- a/tools/genmake2 +++ b/tools/genmake2 @@ -17,9 +17,17 @@ Usage: "$0" [OPTIONS] -help | --help | -h | --h Print this help message and exit. + -tap | --tap + Generate a Makefile for a Tapenade build + -oad | --oad Generate a Makefile for an OpenAD built + -oadsingularity NAME | --oadsingularity NAME | -oadsngl NAME | --oadsngl NAME + -oadsingularity=NAME | --oadsingularity=NAME | -oadsngl=NAME | --oadsngl=NAME + Here, "NAME" specifies the singularity file + that contains the OpenAD execulable. + -nocat4ad | -dog4ad | -ncad | -dad do not concatenate (cat) source code sent to TAF resulting in compilation of multiple files @@ -1110,7 +1118,7 @@ EOF >> genmake_tnc.log fi echo "$FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log - echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc.o $LIBS" >> genmake_tnc.log + echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS" >> genmake_tnc.log $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1 \ && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS >> genmake_tnc.log 2>&1 RET_COMPILE=$? @@ -1143,11 +1151,11 @@ EOF HAVE_NETCDF=t echo "check_netcdf: successful" >> $LOGFILE else - # try again with "-lnetcdff" added to the libs + # try again with "-lnetcdff -lnetcdf" added to the libs echo "==> try again with added '-lnetcdff -lnetcdf'" > genmake_tnc.log echo "cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS \ " >> genmake_tnc.log echo " && $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log - echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log + echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdff -lnetcdf" >> genmake_tnc.log cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS 2>/dev/null \ && $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1 \ && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdff -lnetcdf >> genmake_tnc.log 2>&1 @@ -1384,6 +1392,7 @@ TOOLSDIR= SOURCEDIRS= INCLUDEDIRS= STANDARDDIRS="USE_THE_DEFAULT" +SINGULARITYFILE= #- local config file gm_local="genmake_local" @@ -1411,6 +1420,8 @@ FS= FS90= AUTODIFF_PKG_USED=f +TAPENADE= +TAPENADECMD=tapenade OPENAD= AD_OPTFILE= CAT_SRC_FOR_TAF=1 @@ -1443,7 +1454,7 @@ gm_s7="TMP THISHOST THISUSER THISDATE THISVER MACHINE FC_CHECK FC_NAMEMANGLE" gm_s8="HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK HAVE_FLUSH" # The following are all related to adjoint/tangent-linear stuff -gm_s10="AUTODIFF_PKG_USED AD_OPTFILE OPENAD TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS" +gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAPENADE TAPENADECMD OPENAD TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS" gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS" gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES" @@ -1505,8 +1516,15 @@ for ac_option in "$@" ; do -optfile=* | --optfile=* | -of=* | --of=*) OPTFILE=$ac_optarg ;; + -tap | --tap) + TAPENADE="true" ; ALWAYS_USE_F90=1 ;; + -oad | --oad) OPENAD="true" ; ALWAYS_USE_F90=1 ;; + -oadsingularity | --oadsingularity | -oadsngl | --oadsngl) + ac_prev=SINGULARITYFILE ;; + -oadsingularity=* | --oadsingularity=* | -oadsngl=* | --oadsngl=*) + SINGULARITYFILE=$ac_optarg ;; -nocat4ad | -dog4ad | -ncad | -dad) CAT_SRC_FOR_TAF=0 ;; -adoptfile | --adoptfile | -adof | --adof) @@ -1783,10 +1801,12 @@ echo " getting AD_OPTFILE information:" if test "x${AD_OPTFILE}" = x ; then if test "x$MITGCM_AD_OF" != x ; then AD_OPTFILE=$MITGCM_AD_OF - elif test "x$OPENAD" = x ; then - AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default - else + elif test "x$TAPENADE" != x ; then + AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_tap + elif test "x$OPENAD" != x ; then AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_oad + else + AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default fi fi if test "x${AD_OPTFILE}" != xNONE ; then @@ -2516,6 +2536,23 @@ EOF fi fi +# Make sure the tapenade package is enabled if using TAPENADE +if test "x$TAPENADE" != x ; then + echo " $PACKAGES " | grep ' tapenade ' > /dev/null 2>&1 + RETVAL=$? + if test "x$RETVAL" != x0 ; then + cat < /dev/null 2>&1 @@ -2792,6 +2829,48 @@ if test ! -r "$TMP.links/foo" ; then fi rm -f $TMP.links/foo +if test "x$TAPENADE" != x ; then + TAP_DONT_COMPILE="/dev/null" + TAP_DONT_TRANSFORM="/dev/null" + TAP_KEEP_ORIGINAL="/dev/null" + TAP_CB2M_FILES="/dev/null" + TAPTOOLS="$TOOLSDIR/TAP_support" + TAPTOOLSMK='$(TOOLSDIR)/TAP_support' + echo " looking for dontCompile file: " + for i in "." $MODS $TAPTOOLS ; do + if test -r $i"/dontCompile" ; then + TAP_DONT_COMPILE=$i"/dontCompile" + echo " found $TAP_DONT_COMPILE" + break + fi + done + echo " looking for dontTransform file: " + for i in "." $MODS $TAPTOOLS ; do + if test -r $i"/dontTransform" ; then + TAP_DONT_TRANSFORM=$i"/dontTransform" + echo " found $TAP_DONT_TRANSFORM" + break + fi + done + echo " looking for keepOriginal file: " + for i in "." $MODS $TAPTOOLS ; do + if test -r $i"/keepOriginal" ; then + TAP_KEEP_ORIGINAL=$i"/keepOriginal" + echo " found $TAP_KEEP_ORIGINAL" + break + fi + done + echo " looking for cb2mFiles: " + for i in "." $MODS $TAPTOOLS ; do + if test -r $i"/cb2mFiles" ; then + TAP_CB2M_FILES=$i"/cb2mFiles" + echo " found $TAP_CB2M_FILES" + break + fi + done + echo " TAPENADE exceptions: " +fi + if test "x$OPENAD" != x ; then OAD_DONT_COMPILE="/dev/null" OAD_DONT_TRANSFORM="/dev/null" @@ -2851,6 +2930,9 @@ for d in $alldirs ; do deplist= sfiles=`( cd $d; echo *.[h,c,F] *.flow )` sfiles=`( echo $sfiles; cd $d; echo *.F90 )` + if test "x$TAPENADE" != x ; then + sfiles=`( echo $sfiles | grep -v _cb2m\. )` + fi if test "x$OPENAD" != x ; then sfiles=`( echo $sfiles | grep -v _cb2m\. )` fi @@ -2891,6 +2973,35 @@ for d in $alldirs ; do F) echo " \\" >> $TMP.F77srclist printf " $sf" >> $TMP.F77srclist + + if test "x$TAPENADE" != x ; then + basename=${sf%%.F} + isAD=`egrep ^$basename.f'[ ]*' $TMP.adSrcFiles` + if test -z "$isAD" ; then + toBeIgnored=`egrep ^$basename'[ ]*' ${TAP_DONT_COMPILE}` + if test -z "$toBeIgnored" ; then + echo " \\" >> $TMP.nonADF77srclist + printf " $sf" >> $TMP.nonADF77srclist + else + echo " not to be compiled : $sf" + fi + else # file is initially listed as an AD file we want to exclude it + # or we want to retain the untransformed version + notToBeTransformed=`egrep ^$basename'[ ]*' ${TAP_DONT_TRANSFORM}` + untransformedVersionToBeKept=`egrep ^$basename'[ ]*' ${TAP_KEEP_ORIGINAL}` + if test -n "$notToBeTransformed"; then + echo " not to be transformed: $sf" + fi + if test -n "$untransformedVersionToBeKept" ; then + echo " original to be kept : $sf" + fi + if test -n "$notToBeTransformed" -o -n "$untransformedVersionToBeKept" ; then + echo " \\" >> $TMP.nonADF77srclist + printf " $sf" >> $TMP.nonADF77srclist + fi + fi + fi + if test "x$OPENAD" = x ; then basename=${sf%%.F} isAD=`egrep ^$basename.f'[ ]*' $TMP.adSrcFiles` @@ -2986,8 +3097,13 @@ echo "# $CMDLINE" >> $MAKEFILE echo "# executed by:" >> $MAKEFILE echo "# ${THISUSER}@${THISHOST}:${THISCWD}" >> $MAKEFILE -EXE_AD=$EXECUTABLE"_ad" -EXE_FTL=$EXECUTABLE"_ftl" +if test "x$TAPENADE" = x ; then + EXE_ADJ=$EXECUTABLE"_ad" + EXE_TLM=$EXECUTABLE"_ftl" +else + EXE_ADJ=$EXECUTABLE"_tap_adj" + EXE_TLM=$EXECUTABLE"_tap_tlm" +fi EXE_SVD=$EXECUTABLE"_svd" cat >>$MAKEFILE <&1 | awk '/^End of search/{f=0}!/^\#/{if(f){printf " -I%s", $1;}}/^\#include "..." search start/{f=1}'` +CPPINCLUDES=`cat /dev/null | $CPP -v 2>&1 | $AWK '/^End of search/{f=0}!/^#/{if(f){printf " -I%s", $1;}}/^#include "..." search start/{f=1}'` cat >>$MAKEFILE <> $MAKEFILE echo 'F77_PP_SRC_FILES = $(F77_SRC_FILES:.F=.'$FS')' >> $MAKEFILE echo 'F90_PP_SRC_FILES = $(F90_SRC_FILES:.F90=.'$FS90')' >> $MAKEFILE echo 'OBJFILES= $(F77_SRC_FILES:.F=.o) $(C_SRC_FILES:.c=.o) $(F90_SRC_FILES:.F90=.o)' >> $MAKEFILE + +if test "x$TAPENADE" != x ; then +cat >>$MAKEFILE <> $MAKEFILE +fi + echo 'FLOWFILES = $(AD_FLOW_FILES:.flow=.flowdir)' >> $MAKEFILE echo >> $MAKEFILE echo '.SUFFIXES:' >> $MAKEFILE @@ -3162,7 +3288,7 @@ Clean: # and output from a run (plus log files from testreport) CLEAN: @\$(MAKE) -f \$(MAKEFILE) Clean - -rm -f \$(EXECUTABLE) \$(EXE_AD) \$(EXE_FTL) *.bak + -rm -f \$(EXECUTABLE) \$(EXE_ADJ) \$(EXE_TLM) *.bak -rm -f $LOGFILE genmake_state genmake_*optfile -rm -f SIZE.h.mpi genmake.tr_log make.tr_log -rm -rf mpi_headers mnc_test_* @@ -3260,6 +3386,7 @@ EOF #=== Automatic Differentiation Rules === #=== for TAMC/TAF ====================== +if test "x$TAPENADE" = x ; then if test "x$OPENAD" = x ; then cat >>$MAKEFILE < ad_config.template @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h @-rm -f ad_config.template - \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD) + \$(MAKE) -f \$(MAKEFILE) \$(EXE_ADJ) ad_input_code.$FS: \$(AD_FILES) \$(AD_FLOW_FILES) @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template @@ -3351,8 +3478,8 @@ ad_taf_output.$FS: ad_input_code.$FS ls -l ad_input_code_ad.$FS cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS -\$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) - \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) +\$(EXE_ADJ): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) + \$(LINK) -o \${EXE_ADJ} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) @@ -3373,9 +3500,9 @@ ad_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES) \$(MAKE) -f \$(MAKEFILE) adj_sed cat \$(AD_FILES:.$FS=_ad.$FS) > ad_taf_output.$FS -\$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) +\$(EXE_ADJ): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) \$(MAKE) -f \$(MAKEFILE) adobjfiles - \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) + \$(LINK) -o \${EXE_ADJ} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) adobj: ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(MAKE) -f \$(MAKEFILE) adobjfiles @@ -3383,19 +3510,18 @@ adobj: ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o EOF fi -cat >>$MAKEFILE <>$MAKEFILE < ad_tamc_output.$FS ad_tamc: ad_tamc_output.o \$(OBJFILES) - \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS) + \$(LINK) -o ${EXE_ADJ} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS) # ... FTL ... ftlall: ftl_exe_target @@ -3403,11 +3529,11 @@ ftltaf: ftl_taf_output.$FS ftltamc: ftl_tamc_output.$FS ftl_exe_target: - @echo Update AD_CONFIG.h and make \$(EXE_FTL) + @echo Update AD_CONFIG.h and make \$(EXE_TLM) @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h @-rm -f ad_config.template - \$(MAKE) -f \$(MAKEFILE) \$(EXE_FTL) + \$(MAKE) -f \$(MAKEFILE) \$(EXE_TLM) ftl_input_code.$FS: \$(AD_FILES) @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template @@ -3433,8 +3559,10 @@ ftl_taf_output.$FS: ftl_input_code.$FS ls -l ftl_input_code_tl.$FS cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS -\$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) - \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) +\$(EXE_TLM): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) + \$(LINK) -o \${EXE_TLM} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) + +ftlobj: ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) EOF @@ -3453,9 +3581,12 @@ ftl_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES) \$(MAKE) -f \$(MAKEFILE) ftl_sed cat \$(AD_FILES:.$FS=_tl.$FS) > ftl_taf_output.$FS -\$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) +\$(EXE_TLM): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES) + \$(MAKE) -f \$(MAKEFILE) ftlobjfiles + \$(LINK) -o \${EXE_TLM} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_tl.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) + +ftlobj: ftl_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(MAKE) -f \$(MAKEFILE) ftlobjfiles - \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_tl.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS) EOF fi @@ -3466,7 +3597,7 @@ ftl_tamc_output.$FS: ftl_input_code.$FS cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS ftl_tamc: ftl_tamc_output.o \$(OBJFILES) - \$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS) + \$(LINK) -o ${EXE_TLM} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS) # ... SVD ... svdtaf: ad_taf_output.$FS ftl_taf_output.$FS @@ -3494,6 +3625,85 @@ svd_touch: EOF +fi +fi + +#=== for TAPENADE ======================== + +if test "x$TAPENADE" != x ; then + +# ============ begin TAPENADE specific section ============== + +cat >>$MAKEFILE <> $MAKEFILE +printf "AD_FILES = " >> $MAKEFILE +AD_FILES=`cat $TMP.adSrcFiles` +for i in $AD_FILES ; do + basename=${i%%.f} + toBeIgnored=`egrep ^$basename'[ ]*' ${TAP_DONT_COMPILE} ${TAP_DONT_TRANSFORM}` + if test -z "$toBeIgnored" ; then + echo " \\" >> $MAKEFILE + printf " $i" >> $MAKEFILE + fi +done +echo >> $MAKEFILE +rm -f $TMP.adSrcFiles + +cat >>$MAKEFILE < \$@ +# +AD_FILES_ADJ=\$(AD_FILES:.$FS=_b.f) +AD_FILES_TLM=\$(AD_FILES:.$FS=_d.f) +# +.PHONY: TAP_TLM_FILES +TAP_TLM_FILES: \$(AD_FILES) f95_test_mods.f90 + touch \$(AD_FILES_TLM) + \$(TAPENADECMD) -d -ext "${TAPTOOLS}/flow_tap" -head "the_main_loop(fc)/(xx_genarr3d_dummy, xx_genarr2d_dummy, xx_gentim2d_dummy)" \$(AD_FILES) f95_test_mods.f90 +# +.PHONY: TAP_ADJ_FILES +TAP_ADJ_FILES: \$(AD_FILES) f95_test_mods.f90 + touch \$(AD_FILES_ADJ) + \$(TAPENADECMD) -b -ext "${TAPTOOLS}/flow_tap" -head "the_main_loop(fc)/(xx_genarr3d_dummy, xx_genarr2d_dummy, xx_gentim2d_dummy)" \$(AD_FILES) f95_test_mods.f90 + +tap_adj: ad_exe_target +ad_exe_target: + @echo Update AD_CONFIG.h and make \$(EXE_ADJ) + @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template + @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h + @-rm -f ad_config.template + \$(MAKE) -f \$(MAKEFILE) \$(EXE_ADJ) + +tap_tlm: tlm_exe_target +tlm_exe_target: + @echo Update AD_CONFIG.h and make \$(EXE_TLM) + @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Tangent linear version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template + @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h + @-rm -f ad_config.template + \$(MAKE) -f \$(MAKEFILE) \$(EXE_TLM) + +\$(EXE_ADJ): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(TAP_SUPPORT_OBJFILES) \$(EMBEDDED_FILES) TAP_ADJ_FILES + @echo Creating \$@ ... + \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(AD_FILES_ADJ) \$(TAP_SUPPORT_OBJFILES:${TAPTOOLS}/ADFirstAidKit/%=%) \$(LIBS) +\$(EXE_TLM): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(TAP_SUPPORT_OBJFILES) \$(EMBEDDED_FILES) TAP_TLM_FILES + @echo Creating \$@ ... + \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(AD_FILES_TLM) \$(TAP_SUPPORT_OBJFILES:${TAPTOOLS}/ADFirstAidKit/%=%) \$(LIBS) + +# ============ end TAPENADE specific section ============== + +EOF + fi #=== for OpenAD ======================== @@ -3513,6 +3723,30 @@ ALL_LINKED_FILES= \ \$(F90_SRC_FILES) \ \$(SPECIAL_FILES) +EOF + +if test "x$SINGULARITYFILE" != x ; then +# run OpenAD commands in singularity container with standard paths +cat >>$MAKEFILE <>$MAKEFILE <>$MAKEFILE < ad_config.template @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h @-rm -f ad_config.template - \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD) + \$(MAKE) -f \$(MAKEFILE) \$(EXE_ADJ) CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES)) @@ -3606,7 +3840,7 @@ AD_OBJ_FILES_S1=\$(OPENAD_SUPPORT_F90_SRC_FILES:.F90=.o) \$(OPENAD_SUPPORT_C_SRC AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o) -\$(EXE_AD): \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) postProcess.tag \$(AD_OBJ_FILES_S2) +\$(EXE_ADJ): \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) postProcess.tag \$(AD_OBJ_FILES_S2) \$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(AD_OBJ_FILES_S2) \$(LIBS) # create sources files modules from header files containing common blocks @@ -3630,7 +3864,7 @@ ad_input_code.f$FS90: \$(CB2M_AD_FILES) # canonicalizer ad_input_code_sf.pre.f90 : \$(CB2M_AD_FILES) - \${OPENADFORTTK_BASE}/tools/SourceProcessing/preProcess.py --timing --r8 -H -S -o \$@ \$^ + \${SINGULARITYCMD} \${OPENADFORTTK_BASE}/tools/SourceProcessing/preProcess.py --timing --r8 -H -S -o \$@ \$^ # replace stop statements (to avoid the implied unstructured control flow) with print statements ad_input_code_sf.pre.s2p.f90 : ad_input_code_sf.pre.f90 @@ -3638,23 +3872,23 @@ ad_input_code_sf.pre.s2p.f90 : ad_input_code_sf.pre.f90 # F -> WHIRL ad_input_code_sf.pre.s2p.B: ad_input_code_sf.pre.s2p.f90 - \${OPEN64ROOT}/crayf90/sgi/mfef90 -r8 -z -F ad_input_code_sf.pre.s2p.f90 + \${SINGULARITYCMD} \${OPEN64ROOT}/crayf90/sgi/mfef90 -r8 -z -F ad_input_code_sf.pre.s2p.f90 # WHIRL -> XAIF ad_input_code_sf.pre.s2p.xaif : ad_input_code_sf.pre.s2p.B - \${OPENADFORTTK}/bin/whirl2xaif -s -n --debug 1 -o \$@ \$< + \${SINGULARITYCMD} \${OPENADFORTTK}/bin/whirl2xaif -s -n --debug 1 -o \$@ \$< # XAIF -> XAIF' ad_input_code_sf.pre.s2p.xb.xaif : ad_input_code_sf.pre.s2p.xaif xaif.xsd xaif_base.xsd xaif_inlinable_intrinsics.xsd xaif_derivative_propagator.xsd xaif_output.xsd - \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/driver/oadDriver -f -t forward_step -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I -r + \${SINGULARITYCMD} \${XAIFBOOSTERROOT}/xaifBooster/algorithms/BasicBlockPreaccumulationReverse/driver/oadDriver -f -t forward_step -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I -r # XAIF' -> WHIRL' ad_input_code_sf.pre.s2p.xb.x2w.B : ad_input_code_sf.pre.s2p.xb.xaif - \${OPENADFORTTK}/bin/xaif2whirl --debug 1 ad_input_code_sf.pre.s2p.B \$< + \${SINGULARITYCMD} \${OPENADFORTTK}/bin/xaif2whirl --debug 1 ad_input_code_sf.pre.s2p.B \$< # WHIRL' -> F' ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS90: ad_input_code_sf.pre.s2p.xb.x2w.B - \${OPEN64ROOT}/whirl2f/whirl2f -FLIST:ftn_file=\$@ -openad \$< + \${SINGULARITYCMD} \${OPEN64ROOT}/whirl2f/whirl2f -FLIST:ftn_file=\$@ -openad \$< # insert template directives ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.pre.s2p.xb.x2w.w2f.f$FS90 \$(OADTOOLS)/insertTemplateDir.bash @@ -3663,7 +3897,7 @@ ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90: ad_input_code_sf.pre.s2p.xb.x2w.w PPEXTRAS=\$(notdir \$(wildcard \$(OADTOOLS)/ad_template.*.F)) ad_inline.F # postprocess F' postProcess.tag: ad_input_code_sf.pre.s2p.xb.x2w.w2f.td.f$FS90 \$(PPEXTRAS:.F=.f) | w2f__types.f90 - \${OPENADFORTTK_BASE}/tools/SourceProcessing/postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed --separateOutput --pathSuffix "" --filenameSuffix "_oad" -m r -i ad_inline.f \$< + \${SINGULARITYCMD} \${OPENADFORTTK_BASE}/tools/SourceProcessing/postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed --separateOutput --pathSuffix "" --filenameSuffix "_oad" -m r -i ad_inline.f \$< # the target is a placeholder to trigger a single execution of the rule touch \$@ # put this so make knows about the postprocessing output @@ -3758,8 +3992,13 @@ if test $FC_CHECK = 5 ; then echo " > make adAll (<-- adjoint executable)" elif test $ad != 0 ; then echo " > make depend" - echo " > make adall (<-- adjoint executable)" - echo " or > make tlm (<-- tang-lin executable)" + if test "x$TAPENADE" = x ; then + echo " > make adall (<-- adjoint executable with TAF)" + echo " or > make ftlall (<-- tang-lin executable with TAF)" + else + echo " > make tap_adj (<-- adjoint executable with Tapenade)" + echo " or > make tap_tlm (<-- tang-lin executable with Tapenade)" + fi echo " or > make (<-- forward executable)" else # echo " > make depend (add dependencies to Makefile)" diff --git a/tools/remove_comments_sed b/tools/remove_comments_sed index effe759cda..3922132b0e 100644 --- a/tools/remove_comments_sed +++ b/tools/remove_comments_sed @@ -1,8 +1,14 @@ /^$/d +/^C$/d +/^c$/d /^C\ /d /^c\ /d +/^CC/d +/^cc/d /^C-/d /^c-/d +/^C+/d +/^c+/d /^C=/d /^c=/d /^C\*/d @@ -25,14 +31,19 @@ /^Cdm/d /^crg/d /^Crg/d +/^cts/d +/^Cts/d /^cgg/d +/^\!$/d +/^\!\ /d +/^\!\!/d # This is a growing list of which comments lines to remove from a file # in order to reduce the file size of ad_input_code.f. The first one is # for empty lines. -# We want to remove all comments (=lines starting with C,c,*), but -# compiler directives also start with a C, in particular CADJ/cadj/Cadj/cADJ, -# and absolutely must remain in the file. +# We want to remove all comments (=lines starting with C,c,*,!), but +# compiler directives also start with a C, in particular +# CADJ/cadj/Cadj/cADJ/!CDIR/!$TAF, and absolutely must remain in the file. #- A hack for recent OpenMPI (v1.8.8, shipped with FC.23) version of 'mpif.h' # which now contains a new header file: mpif-sizeof.h that relies on module diff --git a/verification/cpl_aim+ocn/run_cpl_test b/tools/run_cpl_test similarity index 54% rename from verification/cpl_aim+ocn/run_cpl_test rename to tools/run_cpl_test index 55f9d10805..bdcad69185 100755 --- a/verification/cpl_aim+ocn/run_cpl_test +++ b/tools/run_cpl_test @@ -1,68 +1,107 @@ #! /usr/bin/env bash +#--- +# Description: +# script to compile and run MITgcm Atmosphere-Ocean coupled set-up +# see, e.g., verification/cpl_aim+ocn/README.md +# or verification_other/cpl_gray+ocn/ +# Note: currently these coupled set-up are not covered by "testreport" +# 1) running "./run_cpl_test" show the different steps (+ some options) available +# 2) some options are not available as argument and require editing this script, e.g., +# a) to run Ocean or Atmos component on more that 1 MPI process (edit: NpOc and Npr) +# b) to use compiler Optimisation (edit: GMKopt) +#--- + bdPfx='build'; # build-dir prefix +# Npr :: total number of MPI procs (including 1 for coupler) +# NpOc :: number of MPI procs for Ocean component +# Npr - NpOc - 1 :: number of MPI procs for Atmos. component #- default: Npr=3 ; NpOc=1 ; #Npr=25; NpOc=12; + +# MTH :: genmake2 option for multi-threading compilation MTH= -MTHo= -MTHa= + +# GMKopt :: other genmake2 option (empty --> use compiler optimisation) GMKopt='-devel' #GMKopt='-ieee' #GMKopt= -rnkO=1 ; rnkA=`expr $rnkO + $NpOc` +rnkO=1 ; rnkA=`expr $rnkO + $NpOc` +MTHo= +MTHa= #- parse options: if [ $# -ge 1 ] ; then if test $1 = '-mth' ; then MTH='-omp' ; shift if test -f input_ocn/eedata.mth ; then MTHo=$MTH ; fi if test -f input_atm/eedata.mth ; then MTHa=$MTH ; fi fi ; fi -#- allows more argument for building step (step=1) -chkArg=$# ; if [ $# -gt 1 ]; then chkArg=$1 ; fi +sfx=''; chkArg=$# ; +if [ $chkArg -eq 2 ]; then + sfx=$2 ; nInpAlt=`ls -1 -d input_???.$sfx 2> /dev/null | wc -l` + if [ $nInpAlt -eq 0 ]; then chkArg=0 + echo " no second set of input-dir matching suffix '.$sfx'" + else chkArg=1 ; fi +fi +if [ $chkArg -ge 1 ]; then + if [ $1 -lt 0 -o $1 -gt 5 ]; then chkArg=0 ; fi + #- allows more argument for building step (step=1) + if [ $1 -eq 1 ]; then chkArg=1 ; fi +fi if [ $chkArg -ne 1 ]; then - echo 'Usage:'`basename $0`' [opt] step [bld-arg]' + echo 'Usage: '`basename $0`' [typ] step [opt-arg]' echo ' => test coupled set-up on linux box (1.cpu)' - echo 'opt = -mth : compile and run (if eedata.mth) 2-threads for ocn & atm' + echo ' typ = -mth : compile and run (if eedata.mth) 2-threads for ocn & atm' echo ' step = 0 : clean all directories' - echo ' step = 1 : compile the 3 executables (cpl,ocn,atm); optional arg:' - echo ' -of Optfile_Name : using option-file "Optfile_Name"' - echo ' step = 2 : copy input files and dir(s)' + echo ' step = 1 : compile the 3 executables (cpl,ocn,atm);' + echo ' opt-arg: -of Optfile_Name : using option-file "Optfile_Name"' + echo ' step = 2 : copy input files and dir(s);' echo " step = 3 : run with $Npr mpi processes" echo ' step = 4 : check the results' echo ' step = 5 : remove output files in rank_0,1,2 dir.' + echo ' opt-arg (for step 2 & 4): suffix of second set of input-dir to use' exit fi kpr=$1 -dir=`pwd` +curDir=`pwd` #============================================================================ -if test $kpr = 0 -then - rm -f pr_group std_outp comp_res.{ocn,atm,land,sice} +if test $kpr = 0 ; then + rm -f pr_group std_outp comp_res.{ocn,atm,land,icTh,icDy,pTr} rm -f ${bdPfx}_???/TTT.*make.* ${bdPfx}_???/TTT.mkdepend.* /bin/rm -r -f rank_? rank_1? rank_2? if test -f ${bdPfx}_cpl/Makefile ; then cd ${bdPfx}_cpl ; make Clean ; cd .. ; fi if test -f ${bdPfx}_ocn/Makefile ; then cd ${bdPfx}_ocn ; make Clean ; cd .. ; fi if test -f ${bdPfx}_atm/Makefile ; then cd ${bdPfx}_atm ; make Clean ; cd .. ; fi fi -if test $kpr = 5 -then +if test $kpr = 5 ; then echo 'remove output files in rank_0,1,2 dir.' - rm -f pr_group std_outp comp_res.{ocn,atm,land,sice} + rm -f pr_group std_outp comp_res.{ocn,atm,land,icTh,icDy,pTr} test -f rank_0/Coupler.0000.clog && rm -f rank_0/Coupler.0000.clog if test -d rank_$rnkO ; then - ( cd rank_$rnkO ; rm -f *.data *.meta *.txt *.log STD???.00?? UV-*.00??.clog ) + ( cd rank_$rnkO ; rm -f *.txt *.log STD???.00?? UV-*.00??.clog + mkdir tmp_trash ; mv *.data *.meta tmp_trash + listLNK=`find tmp_trash -type l` + if test "x$listLNK" != x ; then mv $listLNK . + echo -n " move back to rank_$rnkO : " ; echo $listLNK | sed "s|tmp_trash/||g" + fi + /bin/rm -rf tmp_trash ) fi if test -d rank_$rnkA ; then - ( cd rank_$rnkA ; rm -f *.data *.meta *.txt *.log STD???.00?? UV-*.00??.clog ) + ( cd rank_$rnkA ; rm -f *.txt *.log STD???.00?? UV-*.00??.clog + mkdir tmp_trash ; mv *.data *.meta tmp_trash + listLNK=`find tmp_trash -type l` + if test "x$listLNK" != x ; then mv $listLNK . + echo -n " move back to rank_$rnkA : " ; echo $listLNK | sed "s|tmp_trash/||g" + fi + /bin/rm -rf tmp_trash ) fi fi -if test $kpr = 1 -then +if test $kpr = 1 ; then #- choice of the optfile: # default: take a local one in dir verification with sufix '+mpi' @@ -107,7 +146,7 @@ then if test "x$RetVal" != x0 ; then echo "Error in make (cpl)" ; exit 13 fi - echo ' ' ; cd $dir + echo ' ' ; cd $curDir echo '==== compile OGCM:' cd ${bdPfx}_ocn @@ -130,7 +169,7 @@ then if test "x$RetVal" != x0 ; then echo "Error in make (ocn)" ; exit 23 fi - echo ' ' ; cd $dir + echo ' ' ; cd $curDir echo '==== compile AGCM:' cd ${bdPfx}_atm @@ -153,50 +192,65 @@ then if test "x$RetVal" != x0 ; then echo "Error in make (atm)" ; exit 33 fi - echo ' ' ; cd $dir + echo ' ' ; cd $curDir ls -l ${bdPfx}_???/mitgcmuv fi -if test $kpr = 2 -then +if test $kpr = 2 ; then echo 'rm dir:' rank_? rank_1? rank_2? /bin/rm -r -f rank_? rank_1? rank_2? - echo 'Link files from dir:' input_cpl '->' rank_0 - mkdir rank_0 - ( cd rank_0 ; ln -s ../input_cpl/* . ) + n=0 ; inpDr='input_cpl'; + mkdir rank_$n + ( cd rank_$n + if test -d ../$inpDr.$sfx ; then + echo 'Link files from dir:' $inpDr.$sfx '->' rank_$n + ln -s ../$inpDr.$sfx/* . + fi + echo 'Link files from dir:' $inpDr '->' rank_$n + ln -s ../$inpDr/* . + if test -x prepare_run ; then ./prepare_run ; fi + ) - n=$rnkO - echo 'Link files from dir:' input_ocn '->' rank_$n + n=$rnkO ; inpDr='input_ocn'; mkdir rank_$n - cd rank_$n - ln -s ../input_ocn/* . - if test -x prepare_run ; then ./prepare_run ; fi - if test "x$MTHo" != x ; then - echo " MTH run: mv -f eedata.mth eedata" - if test -h eedata ; then rm -f eedata ; fi - mv -f eedata.mth eedata - fi - cd $dir + ( cd rank_$n + if test -d ../$inpDr.$sfx ; then + echo 'Link files from dir:' $inpDr.$sfx '->' rank_$n + ln -s ../$inpDr.$sfx/* . + fi + echo 'Link files from dir:' $inpDr '->' rank_$n + ln -s ../$inpDr/* . + if test -x prepare_run ; then ./prepare_run ; fi + if test "x$MTHo" != x ; then + echo " MTH run: mv -f eedata.mth eedata" + if test -h eedata ; then rm -f eedata ; fi + mv -f eedata.mth eedata + fi + ) n=`expr $n + 1` while [ $n -le $NpOc ] ; do ln -s rank_$rnkO rank_$n n=`expr $n + 1` done - n=$rnkA - echo 'Link files from dir:' input_atm '->' rank_$n + n=$rnkA ; inpDr='input_atm'; mkdir rank_$n - cd rank_$n - ln -s ../input_atm/* . - if test -x prepare_run ; then ./prepare_run ; fi - if test "x$MTHa" != x ; then - echo " MTH run: mv -f eedata.mth eedata" - if test -h eedata ; then rm -f eedata ; fi - mv -f eedata.mth eedata - fi - cd $dir + ( cd rank_$n + if test -d ../$inpDr.$sfx ; then + echo 'Link files from dir:' $inpDr.$sfx '->' rank_$n + ln -s ../$inpDr.$sfx/* . + fi + echo 'Link files from dir:' $inpDr '->' rank_$n + ln -s ../$inpDr/* . + if test -x prepare_run ; then ./prepare_run ; fi + if test "x$MTHa" != x ; then + echo " MTH run: mv -f eedata.mth eedata" + if test -h eedata ; then rm -f eedata ; fi + mv -f eedata.mth eedata + fi + ) n=`expr $n + 1` while [ $n -lt $Npr ] ; do ln -s rank_$rnkA rank_$n @@ -205,11 +259,10 @@ then fi -if test $kpr = 3 -then - ROOTDIR=$dir +if test $kpr = 3 ; then + runDir=$curDir # rm -f rank_?/pickup*.ckptA.00?.00?.??ta - echo $ROOTDIR + echo $runDir tmpfil=TTT.$$ #--- running on the same node: @@ -234,7 +287,7 @@ then rm -f pr_group ; touch pr_group for xx in $list do - echo $xx $nn $dir/${bdPfx}_$dd1/mitgcmuv >> pr_group + echo $xx $nn $curDir/${bdPfx}_$dd1/mitgcmuv >> pr_group nc=`expr $nc + 1` if [ $nc -le $NpOc ] ; then dd1=ocn ; else dd1=atm ; fi nn=1 @@ -244,7 +297,7 @@ then RunOpt="$RunOpt : -np $NpOc ./${bdPfx}_ocn/mitgcmuv" RunOpt="$RunOpt : -np $NpAt ./${bdPfx}_atm/mitgcmuv" - cd $ROOTDIR + cd $runDir if test "x$MTH" != x ; then export OMP_NUM_THREADS=2 ; export KMP_STACKSIZE=400m if test "x$MTHo" != x ; then @@ -265,7 +318,7 @@ then echo $mpich | grep 'openmpi' > /dev/null 2>&1 opnmpi=$? if test $mpich1 == 0 ; then - # /usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/pgi/bin/mpirun.ch_gm -pg pr_group -wd $ROOTDIR --gm-kill 5 -v ./${bdPfx}_cpl/mitgcmuv > std_outp 2>&1 + # /usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/pgi/bin/mpirun.ch_gm -pg pr_group -wd $runDir --gm-kill 5 -v ./${bdPfx}_cpl/mitgcmuv > std_outp 2>&1 #- with mpich-1 (on danton, old aces: ao, geo, itrda): echo "execute 'mpirun -p4pg pr_group -v ./${bdPfx}_cpl/mitgcmuv' :" mpirun -p4pg pr_group -v ./${bdPfx}_cpl/mitgcmuv > std_outp 2>&1 @@ -283,36 +336,59 @@ then mpirun $RunOpt > std_outp 2>&1 fi tail -20 std_outp - ls -l rank_$rnkO/pickup*.ckptA.001.001.data - ls -l rank_$rnkA/pickup*.ckptA.001.001.data + ls -l rank_$rnkO/pickup.ckpt?.*data | tail -1 + ls -l rank_$rnkA/pickup.ckpt?.*data | tail -1 fi -if test $kpr = 4 -then +if test $kpr = 4 ; then CompRes="$HOME/bin/comp_res" + if test -x $CompRes ; then + if test "x$sfx" = x ; then rfx='0000' ; else rfx=$sfx ; fi - if test -f rank_$rnkO/STDOUT.0000 - then echo '==> check Ocean output:' - $CompRes rank_$rnkO/STDOUT.0000 results/ocnSTDOUT.0000 + if test -f rank_$rnkO/STDOUT.0000 ; then + echo '==> check Ocean output:' + $CompRes rank_$rnkO/STDOUT.0000 results/ocnSTDOUT.$rfx mv -f comp_res.log comp_res.ocn + usePkg=`grep -i '^ *useSEAICE *=' rank_$rnkO/data.pkg | tail -n 1 | grep -i -c '= *\.TRUE\.'` + if [ $usePkg -ge 1 ] ; then + echo '==> check Seaice output:' + $CompRes rank_$rnkO/STDOUT.0000 results/ocnSTDOUT.$rfx S + mv -f comp_res.log comp_res.icDy + fi + usePkg=`grep -i '^ *usePTRACERS *=' rank_$rnkO/data.pkg | tail -n 1 | grep -i -c '= *\.TRUE\.'` + if [ $usePkg -ge 1 ] ; then + echo '==> check pTracers output:' + nTr=`grep -i '^ *PTRACERS_numInUse *=' rank_$rnkO/data.ptracers \ + | tail -n 1 | sed 's/^.*=//' | sed 's/,.*$//'` + $CompRes rank_$rnkO/STDOUT.0000 results/ocnSTDOUT.$rfx $nTr + mv -f comp_res.log comp_res.pTr + fi echo ' ' - else echo "No Ocean output file in rank_$rnkO" ; fi + else echo "No Ocean output file in rank_$rnkO" ; fi - if test -f rank_$rnkA/STDOUT.0000 - then + if test -f rank_$rnkA/STDOUT.0000 ; then echo '==> check Atmos output:' - $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.0000 + $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.$rfx mv -f comp_res.log comp_res.atm - echo '==> check Land output:' - $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.0000 L - mv -f comp_res.log comp_res.land - echo '==> check thSIce output:' - $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.0000 I - mv -f comp_res.log comp_res.sice + usePkg=`grep -i '^ *useLand *=' rank_$rnkA/data.pkg | tail -n 1 | grep -i -c '= *\.TRUE\.'` + if [ $usePkg -ge 1 ] ; then + echo '==> check Land output:' + $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.$rfx L + mv -f comp_res.log comp_res.land + fi + usePkg=`grep -i '^ *useThSIce *=' rank_$rnkA/data.pkg | tail -n 1 | grep -i -c '= *\.TRUE\.'` + if [ $usePkg -ge 1 ] ; then + echo '==> check thSIce output:' + $CompRes rank_$rnkA/STDOUT.0000 results/atmSTDOUT.$rfx I + mv -f comp_res.log comp_res.icTh + fi echo ' ' - else echo "No Atmos output file in rank_$rnkA" ; fi + else echo "No Atmos output file in rank_$rnkA" ; fi + else + echo "No file '$CompRes' to run ==> skip step: $kpr " + fi fi exit 0 diff --git a/tools/tst_2+2 b/tools/tst_2+2 index 9ab91c6d6a..fbcdf33395 100755 --- a/tools/tst_2+2 +++ b/tools/tst_2+2 @@ -106,7 +106,7 @@ if test $flag = 'NC' -o $flag = 'All' ; then Multi=1 ; else Multi=0 ; fi if test "x$cmdEXE" = x then if [ $mpi -ge 1 ] ; then - cmdEXE="mpirun -machinefile ../../mf -v -np 2 $gcmEXE" + cmdEXE="mpirun -machinefile ../../mf -np 2 $gcmEXE" else cmdEXE=$gcmEXE fi diff --git a/utils/matlab/bluered_colormaps.m b/utils/matlab/bluered_colormaps.m new file mode 100644 index 0000000000..19e97d52ed --- /dev/null +++ b/utils/matlab/bluered_colormaps.m @@ -0,0 +1,306 @@ +bluetored = [ ... + 0 0 0.3922; + 0.0013 0.0013 0.4327; + 0.0026 0.0026 0.4732; + 0.0039 0.0039 0.5137; + 0.0052 0.0052 0.5542; + 0.0065 0.0065 0.5948; + 0.0078 0.0078 0.6353; + 0.0092 0.0092 0.6758; + 0.0105 0.0105 0.7163; + 0.0118 0.0118 0.7569; + 0.0131 0.0131 0.7974; + 0.0144 0.0144 0.8379; + 0.0157 0.0157 0.8784; + 0.0170 0.0170 0.9190; + 0.0183 0.0183 0.9595; + 0.0196 0.0196 1.0000; + 0.0484 0.0484 1.0000; + 0.0773 0.0773 1.0000; + 0.1061 0.1061 1.0000; + 0.1349 0.1349 1.0000; + 0.1638 0.1638 1.0000; + 0.1926 0.1926 1.0000; + 0.2215 0.2215 1.0000; + 0.2503 0.2503 1.0000; + 0.2791 0.2791 1.0000; + 0.3080 0.3080 1.0000; + 0.3368 0.3368 1.0000; + 0.3656 0.3656 1.0000; + 0.3945 0.3945 1.0000; + 0.4233 0.4233 1.0000; + 0.4521 0.4521 1.0000; + 0.4810 0.4810 1.0000; + 0.5098 0.5098 1.0000; + 0.5386 0.5386 1.0000; + 0.5675 0.5675 1.0000; + 0.5963 0.5963 1.0000; + 0.6251 0.6251 1.0000; + 0.6540 0.6540 1.0000; + 0.6828 0.6828 1.0000; + 0.7116 0.7116 1.0000; + 0.7405 0.7405 1.0000; + 0.7693 0.7693 1.0000; + 0.7982 0.7982 1.0000; + 0.8270 0.8270 1.0000; + 0.8558 0.8558 1.0000; + 0.8847 0.8847 1.0000; + 0.9135 0.9135 1.0000; + 0.9423 0.9423 1.0000; + 0.9712 0.9712 1.0000; + 1.0000 1.0000 1.0000; + 1.0000 1.0000 1.0000; + 1.0000 0.9714 0.9714; + 1.0000 0.9429 0.9429; + 1.0000 0.9143 0.9143; + 1.0000 0.8857 0.8857; + 1.0000 0.8571 0.8571; + 1.0000 0.8286 0.8286; + 1.0000 0.8000 0.8000; + 1.0000 0.7714 0.7714; + 1.0000 0.7429 0.7429; + 1.0000 0.7143 0.7143; + 1.0000 0.6857 0.6857; + 1.0000 0.6571 0.6571; + 1.0000 0.6286 0.6286; + 1.0000 0.6000 0.6000; + 1.0000 0.5714 0.5714; + 1.0000 0.5429 0.5429; + 1.0000 0.5143 0.5143; + 1.0000 0.4857 0.4857; + 1.0000 0.4571 0.4571; + 1.0000 0.4286 0.4286; + 1.0000 0.4000 0.4000; + 1.0000 0.3714 0.3714; + 1.0000 0.3429 0.3429; + 1.0000 0.3143 0.3143; + 1.0000 0.2857 0.2857; + 1.0000 0.2571 0.2571; + 1.0000 0.2286 0.2286; + 1.0000 0.2000 0.2000; + 1.0000 0.1714 0.1714; + 1.0000 0.1429 0.1429; + 1.0000 0.1143 0.1143; + 1.0000 0.0857 0.0857; + 1.0000 0.0571 0.0571; + 1.0000 0.0286 0.0286; + 1.0000 0 0; + 0.9566 0 0; + 0.9132 0 0; + 0.8697 0 0; + 0.8263 0 0; + 0.7829 0 0; + 0.7395 0 0; + 0.6961 0 0; + 0.6527 0 0; + 0.6092 0 0; + 0.5658 0 0; + 0.5224 0 0; + 0.4790 0 0; + 0.4356 0 0; + 0.3922 0 0]; + +coolwarm = [ ... + 0.2314 0.2980 0.7529; ... + 0.2428 0.3158 0.7682; ... + 0.2542 0.3335 0.7834; ... + 0.2656 0.3513 0.7986; ... + 0.2770 0.3690 0.8126; ... + 0.2884 0.3868 0.8266; ... + 0.2998 0.4045 0.8405; ... + 0.3123 0.4212 0.8534; ... + 0.3249 0.4377 0.8661; ... + 0.3376 0.4542 0.8788; ... + 0.3512 0.4707 0.8906; ... + 0.3651 0.4871 0.9020; ... + 0.3791 0.5036 0.9134; ... + 0.3922 0.5193 0.9232; ... + 0.4049 0.5345 0.9321; ... + 0.4176 0.5497 0.9409; ... + 0.4309 0.5649 0.9491; ... + 0.4449 0.5802 0.9567; ... + 0.4588 0.5954 0.9643; ... + 0.4728 0.6100 0.9708; ... + 0.4867 0.6240 0.9759; ... + 0.5007 0.6379 0.9810; ... + 0.5146 0.6519 0.9856; ... + 0.5285 0.6658 0.9894; ... + 0.5425 0.6797 0.9932; ... + 0.5564 0.6930 0.9964; ... + 0.5704 0.7045 0.9977; ... + 0.5843 0.7159 0.9989; ... + 0.5983 0.7273 1.0000; ... + 0.6122 0.7387 1.0000; ... + 0.6261 0.7501 1.0000; ... + 0.6401 0.7613 0.9998; ... + 0.6540 0.7702 0.9973; ... + 0.6680 0.7791 0.9948; ... + 0.6819 0.7880 0.9922; ... + 0.6946 0.7968 0.9872; ... + 0.7073 0.8057 0.9822; ... + 0.7200 0.8146 0.9771; ... + 0.7327 0.8212 0.9709; ... + 0.7453 0.8276 0.9646; ... + 0.7580 0.8339 0.9582; ... + 0.7707 0.8393 0.9509; ... + 0.7834 0.8443 0.9433; ... + 0.7960 0.8494 0.9357; ... + 0.8078 0.8527 0.9264; ... + 0.8193 0.8553 0.9162; ... + 0.8307 0.8578 0.9061; ... + 0.8413 0.8603 0.8952; ... + 0.8515 0.8629 0.8838; ... + 0.8616 0.8654 0.8724; ... + 0.8717 0.8635 0.8591; ... + 0.8819 0.8572 0.8439; ... + 0.8920 0.8508 0.8286; ... + 0.9016 0.8445 0.8134; ... + 0.9105 0.8381 0.7982; ... + 0.9194 0.8318 0.7830; ... + 0.9275 0.8247 0.7678; ... + 0.9338 0.8158 0.7526; ... + 0.9401 0.8069 0.7374; ... + 0.9462 0.7978 0.7222; ... + 0.9513 0.7876 0.7070; ... + 0.9563 0.7775 0.6917; ... + 0.9611 0.7672 0.6764; ... + 0.9636 0.7558 0.6599; ... + 0.9662 0.7444 0.6434; ... + 0.9686 0.7329 0.6270; ... + 0.9686 0.7203 0.6118; ... + 0.9686 0.7076 0.5966; ... + 0.9686 0.6949 0.5813; ... + 0.9686 0.6810 0.5649; ... + 0.9686 0.6671 0.5485; ... + 0.9686 0.6532 0.5320; ... + 0.9654 0.6381 0.5166; ... + 0.9616 0.6229 0.5014; ... + 0.9578 0.6077 0.4862; ... + 0.9540 0.5916 0.4709; ... + 0.9502 0.5751 0.4557; ... + 0.9464 0.5586 0.4405; ... + 0.9409 0.5413 0.4253; ... + 0.9346 0.5235 0.4101; ... + 0.9283 0.5058 0.3949; ... + 0.9205 0.4873 0.3804; ... + 0.9116 0.4683 0.3664; ... + 0.9028 0.4493 0.3525; ... + 0.8939 0.4297 0.3386; ... + 0.8850 0.4094 0.3246; ... + 0.8761 0.3891 0.3107; ... + 0.8663 0.3689 0.2967; ... + 0.8549 0.3486 0.2828; ... + 0.8435 0.3283 0.2688; ... + 0.8317 0.3073 0.2553; ... + 0.8191 0.2845 0.2426; ... + 0.8064 0.2617 0.2299; ... + 0.7935 0.2379 0.2175; ... + 0.7795 0.2100 0.2061; ... + 0.7656 0.1821 0.1947; ... + 0.7515 0.1526 0.1832; ... + 0.7363 0.1070 0.1718; ... + 0.7211 0.0613 0.1604; ... + 0.7059 0.0157 0.1490]; + +blueyelred = [ ... + 0 0 0.3333; ... + 0.0200 0.0199 0.3467; ... + 0.0400 0.0398 0.3600; ... + 0.0600 0.0598 0.3733; ... + 0.0800 0.0797 0.3867; ... + 0.1000 0.0996 0.4000; ... + 0.1200 0.1195 0.4133; ... + 0.1400 0.1395 0.4267; ... + 0.1600 0.1594 0.4400; ... + 0.1800 0.1793 0.4533; ... + 0.2000 0.1992 0.4667; ... + 0.2200 0.2191 0.4800; ... + 0.2400 0.2391 0.4933; ... + 0.2600 0.2590 0.5067; ... + 0.2800 0.2789 0.5200; ... + 0.3000 0.2988 0.5333; ... + 0.3200 0.3187 0.5467; ... + 0.3400 0.3387 0.5600; ... + 0.3600 0.3586 0.5733; ... + 0.3800 0.3785 0.5867; ... + 0.4000 0.3984 0.6000; ... + 0.4200 0.4184 0.6133; ... + 0.4400 0.4383 0.6267; ... + 0.4600 0.4582 0.6400; ... + 0.4800 0.4781 0.6533; ... + 0.5000 0.4980 0.6667; ... + 0.5200 0.5180 0.6800; ... + 0.5400 0.5379 0.6933; ... + 0.5600 0.5578 0.7067; ... + 0.5800 0.5777 0.7200; ... + 0.6000 0.5976 0.7333; ... + 0.6200 0.6176 0.7467; ... + 0.6400 0.6375 0.7600; ... + 0.6600 0.6574 0.7733; ... + 0.6800 0.6773 0.7867; ... + 0.7000 0.6973 0.8000; ... + 0.7200 0.7172 0.8133; ... + 0.7400 0.7371 0.8267; ... + 0.7600 0.7570 0.8400; ... + 0.7800 0.7769 0.8533; ... + 0.8000 0.7969 0.8667; ... + 0.8200 0.8168 0.8800; ... + 0.8400 0.8367 0.8933; ... + 0.8600 0.8566 0.9067; ... + 0.8800 0.8765 0.9200; ... + 0.9000 0.8965 0.9333; ... + 0.9200 0.9164 0.9467; ... + 0.9400 0.9363 0.9600; ... + 0.9600 0.9562 0.9733; ... + 0.9800 0.9762 0.9867; ... + 1.0000 0.9961 1.0000; ... + 1.0000 0.9957 0.9375; ... + 1.0000 0.9953 0.8750; ... + 1.0000 0.9949 0.8125; ... + 1.0000 0.9945 0.7500; ... + 1.0000 0.9941 0.6875; ... + 1.0000 0.9938 0.6250; ... + 1.0000 0.9934 0.5625; ... + 1.0000 0.9930 0.5000; ... + 1.0000 0.9926 0.4375; ... + 1.0000 0.9922 0.3750; ... + 1.0000 0.9918 0.3125; ... + 1.0000 0.9914 0.2500; ... + 1.0000 0.9911 0.1875; ... + 1.0000 0.9907 0.1250; ... + 1.0000 0.9903 0.0625; ... + 1.0000 0.9899 0; ... + 1.0000 0.9357 0; ... + 1.0000 0.8815 0; ... + 1.0000 0.8274 0; ... + 1.0000 0.7732 0; ... + 1.0000 0.7190 0; ... + 1.0000 0.6648 0; ... + 1.0000 0.6106 0; ... + 1.0000 0.5564 0; ... + 1.0000 0.5023 0; ... + 1.0000 0.4481 0; ... + 1.0000 0.3939 0; ... + 1.0000 0.3397 0; ... + 1.0000 0.2855 0; ... + 1.0000 0.2313 0; ... + 1.0000 0.1771 0; ... + 1.0000 0.1230 0; ... + 1.0000 0.0688 0; ... + 1.0000 0.0146 0; ... + 0.9556 0.0136 0; ... + 0.9111 0.0127 0; ... + 0.8667 0.0117 0; ... + 0.8222 0.0107 0; ... + 0.7778 0.0097 0; ... + 0.7333 0.0088 0; ... + 0.6889 0.0078 0; ... + 0.6444 0.0068 0; ... + 0.6000 0.0058 0; ... + 0.5555 0.0049 0; ... + 0.5111 0.0039 0; ... + 0.4666 0.0029 0; ... + 0.4222 0.0019 0; ... + 0.3777 0.0010 0; ... + 0.3333 0 0]; + \ No newline at end of file diff --git a/utils/python/MITgcmutils/CHANGES.txt b/utils/python/MITgcmutils/CHANGES.txt index 243f764d62..31fdaec67f 100644 --- a/utils/python/MITgcmutils/CHANGES.txt +++ b/utils/python/MITgcmutils/CHANGES.txt @@ -1,3 +1,11 @@ +Version 0.1.2, 2021-01-11 +- Fix readstats for multiple fields in one file +- Fix more deprecation and syntax warnings +- Add more llc utilities: + o div computes diverenge of a vector field on u/v points + o uv2c averages the components of a vector field to c points + o grad computates gradient of scalar field + Version 0.1.1, 2019-09-26 - Fix some deprecation warnings from numpy and matplotlib - Change doc strings to numpy format so they work with autodoc diff --git a/utils/python/MITgcmutils/setup.py b/utils/python/MITgcmutils/setup.py index c69c45934e..5c7e73c740 100644 --- a/utils/python/MITgcmutils/setup.py +++ b/utils/python/MITgcmutils/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="MITgcmutils", - version="0.1.1", + version="0.1.2", author="MITgcm Developers and Contributors", author_email="mitgcm-support@mitgcm.org", description="Python utilities for MITgcm", diff --git a/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h b/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h index 4fa80e74d7..b52657adb4 100644 --- a/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h +++ b/verification/1D_ocean_ice_column/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -42,8 +35,6 @@ C-- run with sea Ice Thickness Distribution (ITD); C set number of categories (nITD) in SEAICE_SIZE.h #undef SEAICE_ITD -#undef SEAICE_MODIFY_GROWTH_ADJ - C-- Since the missing sublimation term is now included C this flag is needed for backward compatibility #define SEAICE_DISABLE_SUBLIM @@ -57,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #define SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. -#define SEAICE_CGRID +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#define SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. +#undef SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -124,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #undef SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/1D_ocean_ice_column/code/SIZE.h b/verification/1D_ocean_ice_column/code/SIZE.h index 425cd92072..5c1e541426 100644 --- a/verification/1D_ocean_ice_column/code/SIZE.h +++ b/verification/1D_ocean_ice_column/code/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/1D_ocean_ice_column/code_ad/CPP_OPTIONS.h b/verification/1D_ocean_ice_column/code_ad/CPP_OPTIONS.h index b26997861a..e1dbee7d8c 100644 --- a/verification/1D_ocean_ice_column/code_ad/CPP_OPTIONS.h +++ b/verification/1D_ocean_ice_column/code_ad/CPP_OPTIONS.h @@ -133,7 +133,7 @@ C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. #ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" +c# include "ECCO_CPPOPTIONS.h" #endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/1D_ocean_ice_column/code_ad/CTRL_OPTIONS.h b/verification/1D_ocean_ice_column/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..74553c95b7 --- /dev/null +++ b/verification/1D_ocean_ice_column/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,112 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#define ALLOW_NONDIMENSIONAL_CONTROL_IO +#define ALLOW_PACKUNPACK_METHOD2 + +C >>> Initial values. +#define ALLOW_THETA0_CONTROL +#define ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Initial seaice +#undef ALLOW_SIAREA_CONTROL +#undef ALLOW_SIHEFF_CONTROL +#undef ALLOW_SIHSNOW_CONTROL + +C >>> Generic Control. +#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/1D_ocean_ice_column/code_ad/CTRL_SIZE.h b/verification/1D_ocean_ice_column/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..a36f2c386b --- /dev/null +++ b/verification/1D_ocean_ice_column/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 9 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/1D_ocean_ice_column/code_ad/ECCO_CPPOPTIONS.h b/verification/1D_ocean_ice_column/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 3385fe7cc9..0000000000 --- a/verification/1D_ocean_ice_column/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,199 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< -#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< - -#define ALLOW_ECCO_FORWARD_RUN -c#define ALLOW_ECCO_OPTIMIZATION - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically - -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C extend to 4-level checkpointing -#undef AUTODIFF_4_LEVEL_CHECKPOINT - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C o TAMC compatible subroutine parameter list -#undef AUTODIFF_TAMC_COMPATIBILITY - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Use the EGM-96 geoid error covariance. -# undef ALLOW_EGM96_ERROR_COV -# undef ALLOW_READ_EGM_DATA -C >>> Use NSCAT data. -# undef ALLOW_NSCAT_DATA -C >>> Cost function contributions - -# undef ALLOW_HFLUX_COST_CONTRIBUTION -# undef ALLOW_SFLUX_COST_CONTRIBUTION -# undef ALLOW_USTRESS_COST_CONTRIBUTION -# undef ALLOW_VSTRESS_COST_CONTRIBUTION - -# define ALLOW_ATEMP_COST_CONTRIBUTION -# define ALLOW_AQH_COST_CONTRIBUTION -# define ALLOW_UWIND_COST_CONTRIBUTION -# define ALLOW_VWIND_COST_CONTRIBUTION -# define ALLOW_PRECIP_COST_CONTRIBUTION -# define ALLOW_SNOWPRECIP_COST_CONTRIBUTION -# define ALLOW_SWDOWN_COST_CONTRIBUTION -# define ALLOW_LWDOWN_COST_CONTRIBUTION -# undef ALLOW_EVAP_COST_CONTRIBUTION -# define ALLOW_APRESSURE_COST_CONTRIBUTION -# undef ALLOW_RUNOFF_COST_CONTRIBUTION - -# define ALLOW_THETA0_COST_CONTRIBUTION -# define ALLOW_SALT0_COST_CONTRIBUTION -# define ALLOW_THETA_COST_CONTRIBUTION -# define ALLOW_SALT_COST_CONTRIBUTION -# undef ALLOW_SST_COST_CONTRIBUTION -# undef ALLOW_SSS_COST_CONTRIBUTION - -# undef ALLOW_SSH_MEAN_COST_CONTRIBUTION -# undef ALLOW_SSH_TPANOM_COST_CONTRIBUTION -# undef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION -# undef ALLOW_SPH_PROJECTION -# if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_TPANOM_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_ERSANOM_COST_CONTRIBUTION)) -# define ALLOW_SSH_COST_CONTRIBUTION -# endif - -# undef ALLOW_CTDT_COST_CONTRIBUTION -# undef ALLOW_CTDS_COST_CONTRIBUTION -# undef ALLOW_XBT_COST_CONTRIBUTION -# undef ALLOW_COST_ATLANTIC - -c >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -# undef ALLOW_OBCSN_COST_CONTRIBUTION -# undef ALLOW_OBCSS_COST_CONTRIBUTION -# undef ALLOW_OBCSW_COST_CONTRIBUTION -# undef ALLOW_OBCSE_COST_CONTRIBUTION -# if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSE_COST_CONTRIBUTION)) -# define ALLOW_OBCS_COST_CONTRIBUTION -# endif - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define ALLOW_NONDIMENSIONAL_CONTROL_IO -#undef ALLOW_TAMC_SINGLEPREC_COMLEV - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL - -C >>> Initial seaice -#undef ALLOW_SIAREA_CONTROL -#undef ALLOW_SIHEFF_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL - -C >>> Atmospheric state. -#define ALLOW_ATEMP_CONTROL -#define ALLOW_AQH_CONTROL -#define ALLOW_PRECIP_CONTROL -#define ALLOW_SNOWPRECIP_CONTROL -#define ALLOW_SWDOWN_CONTROL -#define ALLOW_LWDOWN_CONTROL -#define ALLOW_UWIND_CONTROL -#define ALLOW_VWIND_CONTROL -#undef ALLOW_EVAP_CONTROL -#define ALLOW_APRESSURE_CONTROL -#undef ALLOW_RUNOFF_CONTROL - -C >>> Radiation -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> seaice init. conditions -#undef ALLOW_SIHSNOW_CONTROL - -C >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -#undef ALLOW_OBCSN_CONTROL -#undef ALLOW_OBCSS_CONTROL -#undef ALLOW_OBCSW_CONTROL -#undef ALLOW_OBCSE_CONTROL -#if (defined (ALLOW_OBCSN_CONTROL) || \ - defined (ALLOW_OBCSS_CONTROL) || \ - defined (ALLOW_OBCSW_CONTROL) || \ - defined (ALLOW_OBCSE_CONTROL)) -# define ALLOW_OBCS_CONTROL -#endif - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Do more printout for the protocol file than usual. -#undef EXF_VERBOSE - -C Bulk formulae related flags. -#undef ALLOW_BULK_LARGYEAG04 -#define ALLOW_ATM_TEMP -#define ALLOW_ATM_WIND -#define ALLOW_BULKFORMULAE -#define ALLOW_DOWNWARD_RADIATION -#define ALLOW_RUNOFF -#undef EXF_READ_EVAP - -C Relaxation to monthly climatologies. -#define ALLOW_CLIMSST_RELAXATION -#define ALLOW_CLIMSSS_RELAXATION - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/1D_ocean_ice_column/code_ad/EXF_OPTIONS.h b/verification/1D_ocean_ice_column/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..db4a2ee989 --- /dev/null +++ b/verification/1D_ocean_ice_column/code_ad/EXF_OPTIONS.h @@ -0,0 +1,237 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#define ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +C use Large and Yeager (2004) modification to Large and Pond bulk formulae +# undef ALLOW_BULK_LARGEYEAGER04 +C use Large and Yeager (2009), Climate Dynamics, 33, pages 341-364 +# define ALLOW_DRAG_LARGEYEAGER09 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#define ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +C- For backward compatibility this needs to be undefined +# undef EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/1D_ocean_ice_column/code_ad/SEAICE_OPTIONS.h b/verification/1D_ocean_ice_column/code_ad/SEAICE_OPTIONS.h index ae5781db43..e73d735ef1 100644 --- a/verification/1D_ocean_ice_column/code_ad/SEAICE_OPTIONS.h +++ b/verification/1D_ocean_ice_column/code_ad/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#undef SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -42,8 +35,6 @@ C-- run with sea Ice Thickness Distribution (ITD); C set number of categories (nITD) in SEAICE_SIZE.h #undef SEAICE_ITD -#undef SEAICE_MODIFY_GROWTH_ADJ - C-- Since the missing sublimation term is now included C this flag is needed for backward compatibility #define SEAICE_DISABLE_SUBLIM @@ -57,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #define SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. -#define SEAICE_CGRID +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. +#undef SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # undef SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -124,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #undef SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #define ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#define ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/1D_ocean_ice_column/code_ad/SIZE.h b/verification/1D_ocean_ice_column/code_ad/SIZE.h index 425cd92072..5c1e541426 100644 --- a/verification/1D_ocean_ice_column/code_ad/SIZE.h +++ b/verification/1D_ocean_ice_column/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/1D_ocean_ice_column/code_ad/tamc.h b/verification/1D_ocean_ice_column/code_ad/tamc.h index ffcc00736f..8ab31586f4 100644 --- a/verification/1D_ocean_ice_column/code_ad/tamc.h +++ b/verification/1D_ocean_ice_column/code_ad/tamc.h @@ -1,131 +1,95 @@ -#include "PACKAGES_CONFIG.h" - - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising common -c blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c -c -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to -c be at least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be -c at least equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to -c be at least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 100 ) - integer nchklev_2 - parameter( nchklev_2 = 15 ) - integer nchklev_3 - parameter( nchklev_3 = 15 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 100 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 15 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 15 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 48 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube PARAMETER( maxcube = 1 ) - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/1D_ocean_ice_column/input_ad/data b/verification/1D_ocean_ice_column/input_ad/data index 38c0d87268..a5c7604cc3 100644 --- a/verification/1D_ocean_ice_column/input_ad/data +++ b/verification/1D_ocean_ice_column/input_ad/data @@ -73,6 +73,7 @@ saltAdvScheme=30, vectorInvariantMomentum=.TRUE., useRealFreshWaterFlux = .TRUE., + useSingleCpuIO = .TRUE., # debugLevel=1, & @@ -148,4 +149,3 @@ &PARM05 bathyFile = 'bathy_1x1_1105m_testpool', & - diff --git a/verification/1D_ocean_ice_column/input_ad/data.ctrl b/verification/1D_ocean_ice_column/input_ad/data.ctrl index 4f2fafeff1..a76a167e0b 100644 --- a/verification/1D_ocean_ice_column/input_ad/data.ctrl +++ b/verification/1D_ocean_ice_column/input_ad/data.ctrl @@ -5,91 +5,6 @@ # ********************* &CTRL_NML # doSinglePrecTapelev=.TRUE., - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', - xx_siarea_file ='xx_siarea', - xx_siheff_file ='xx_siheff', - xx_sihsnow_file ='xx_sihsnow', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', -# - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', -# - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', -# - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', -# - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', -# - xx_swfluxstartdate1 = 19790101, - xx_swfluxstartdate2 = 000000, - xx_swfluxperiod = 864000.0, - xx_swflux_file = 'xx_swflux', -# - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', -# - xx_lwfluxstartdate1 = 19790101, - xx_lwfluxstartdate2 = 000000, - xx_lwfluxperiod = 864000.0, - xx_lwflux_file = 'xx_lwflux', -# - xx_lwdownstartdate1 = 19790101, - xx_lwdownstartdate2 = 000000, - xx_lwdownperiod = 864000.0, - xx_lwdown_file = 'xx_lwdown', -# - xx_evapstartdate1 = 19790101, - xx_evapstartdate2 = 000000, - xx_evapperiod = 864000.0, - xx_evap_file = 'xx_evap', -# - xx_snowprecipstartdate1 = 19790101, - xx_snowprecipstartdate2 = 000000, - xx_snowprecipperiod = 864000.0, - xx_snowprecip_file = 'xx_snowprecip', -# - xx_apressurestartdate1 = 19790101, - xx_apressurestartdate2 = 000000, - xx_apressureperiod = 864000.0, - xx_apressure_file = 'xx_apressure', -# - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', -# - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', & # # ********************* @@ -97,3 +12,82 @@ # ********************* &CTRL_PACKNAMES & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +#mult_genarr3d(1) = 1.0, +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +#mult_genarr3d(2) = 1.0, +# + xx_gentim2d_file(1) = 'xx_atemp', + xx_gentim2d_weight(1) = 'ones_64b.bin', + xx_gentim2d_startdate1(1) = 19790101, + xx_gentim2d_startdate2(1) = 000000, + xx_gentim2d_period(1) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(2) = 'xx_aqh', + xx_gentim2d_weight(2) = 'ones_64b.bin', + xx_gentim2d_startdate1(2) = 19790101, + xx_gentim2d_startdate2(2) = 000000, + xx_gentim2d_period(2) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(3) = 'xx_precip', + xx_gentim2d_weight(3) = 'ones_64b.bin', + xx_gentim2d_startdate1(3) = 19790101, + xx_gentim2d_startdate2(3) = 000000, + xx_gentim2d_period(3) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(4) = 'xx_snowprecip', + xx_gentim2d_weight(4) = 'ones_64b.bin', + xx_gentim2d_startdate1(4) = 19790101, + xx_gentim2d_startdate2(4) = 000000, + xx_gentim2d_period(4) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(5) = 'xx_swdown', + xx_gentim2d_weight(5) = 'ones_64b.bin', + xx_gentim2d_startdate1(5) = 19790101, + xx_gentim2d_startdate2(5) = 000000, + xx_gentim2d_period(5) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(6) = 'xx_lwdown', + xx_gentim2d_weight(6) = 'ones_64b.bin', + xx_gentim2d_startdate1(6) = 19790101, + xx_gentim2d_startdate2(6) = 000000, + xx_gentim2d_period(6) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(7) = 'xx_uwind', + xx_gentim2d_weight(7) = 'ones_64b.bin', + xx_gentim2d_startdate1(7) = 19790101, + xx_gentim2d_startdate2(7) = 000000, + xx_gentim2d_period(7) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(8) = 'xx_vwind', + xx_gentim2d_weight(8) = 'ones_64b.bin', + xx_gentim2d_startdate1(8) = 19790101, + xx_gentim2d_startdate2(8) = 000000, + xx_gentim2d_period(8) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(9) = 'xx_apressure', + xx_gentim2d_weight(9) = 'ones_64b.bin', + xx_gentim2d_startdate1(9) = 19790101, + xx_gentim2d_startdate2(9) = 000000, + xx_gentim2d_period(9) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + & diff --git a/verification/1D_ocean_ice_column/input_ad/data.ecco b/verification/1D_ocean_ice_column/input_ad/data.ecco index b0105bed00..5f893b14e0 100644 --- a/verification/1D_ocean_ice_column/input_ad/data.ecco +++ b/verification/1D_ocean_ice_column/input_ad/data.ecco @@ -4,80 +4,30 @@ # ECCO cost function # ****************** &ECCO_COST_NML - data_errfile ='data.err', - topexstartdate1 = 19790101, - topexstartdate2 = 00000, - topexperiod = 2635200.0, - ersstartdate1 = 19790101, - ersstartdate2 = 00000, - ersperiod = 2635200.0, -# - sststartdate1 = 19790101, - sststartdate2 = 00000, + & - tdatfile = 't_ref_1x1x23x13', - sdatfile = 's_ref_1x1x23x13', - geoid_covariancefile = ' ', +&ECCO_GENCOST_NML # - hflux_errfile = ' ', - sflux_errfile = ' ', - tauu_errfile = ' ', - tauv_errfile = ' ', - atemp_errfile = ' ', - aqh_errfile = ' ', - precip_errfile = ' ', - swflux_errfile = ' ', - swdown_errfile = ' ', - uwind_errfile = ' ', - vwind_errfile = ' ', + gencost_avgperiod(1) = 'month', + gencost_barfile(1) = 'm_theta_month', + gencost_datafile(1) = 't_ref_1x1x23x13', + gencost_errfile(1) = 't.err', + gencost_name(1) = 'theta', + gencost_spmin(1) = -1.8, + gencost_spmax(1) = 40., + gencost_spzero(1) = 0., + gencost_outputlevel(1)=1, + mult_gencost(1) = 0., # - whflux0 = 20., - wsflux0 = 3.0E-8, - wtau0 = 2.0E-2, - watemp0 = 0.5, - waqh0 = 5.E-4, - wprecip0 = 1.E-8, - wswflux0 = 20., - wswdown0 = 20., - wlwflux0 = 20., - wlwdown0 = 20., - wwind0 = 1.0, - wevap0 = 1.0, - wsnowprecip0 = 1.0, - wapressure0 = 1.0, -# - wmean_hflux = 30., - wmean_sflux = 1.6E-8, - wmean_tau = 0.1, - wmean_atemp = 1., - wmean_aqh = 1.E-3, - wmean_precip = 1.5E-8, - wmean_swflux = 20., - wmean_swdown = 20., - wmean_lwdown = 20., - wmean_lwflux = 20., - wmean_wind = 2.0, - wmean_evap = 1.0, - wmean_snowprecip = 1.0, - wmean_apressure = 1.0, - - mult_hmean = 0., - mult_h = 0., - mult_temp = 0., - mult_salt = 0., - mult_sst = 0., - mult_hflux = 0., - mult_sflux = 0., - mult_tauu = 0., - mult_tauv = 0., - mult_atemp = 0., - mult_aqh = 0., - mult_precip= 0., - mult_swflux= 0., - mult_swdown= 0., - mult_uwind = 0., - mult_vwind = 0., + gencost_avgperiod(2) = 'month', + gencost_barfile(2) = 'm_salt_month', + gencost_datafile(2) = 's_ref_1x1x23x13', + gencost_errfile(2) = 's.err', + gencost_name(2) = 'salt', + gencost_spmin(2) = 25., + gencost_spmax(2) = 40., + gencost_spzero(2) = 0., + gencost_outputlevel(2)=1, + mult_gencost(2) = 0., # - cost_iprec = 32, - cost_yftype = 'RL', & diff --git a/verification/1D_ocean_ice_column/input_ad/data.err b/verification/1D_ocean_ice_column/input_ad/data.err deleted file mode 100644 index 8e823318fd..0000000000 --- a/verification/1D_ocean_ice_column/input_ad/data.err +++ /dev/null @@ -1,24 +0,0 @@ - 0.25 - 0.5201 0.2676 - 0.5199 0.2224 - 0.5201 0.1942 - 0.5142 0.1751 - 0.4917 0.1452 - 0.4707 0.1223 - 0.4324 0.1125 - 0.3782 0.1078 - 0.3103 0.0884 - 0.2435 0.0785 - 0.1994 0.0777 - 0.1582 0.0702 - 0.1144 0.0710 - 0.0905 0.0599 - 0.0659 0.0510 - 0.0602 0.0408 - 0.0508 0.0399 - 0.0498 0.0314 - 0.0501 0.0205 - 0.0500 0.0199 - 0.0500 0.0200 - 0.0500 0.0200 - 0.0500 0.0200 diff --git a/verification/1D_ocean_ice_column/input_ad/data.exf b/verification/1D_ocean_ice_column/input_ad/data.exf index af481078c1..b91e863ec1 100644 --- a/verification/1D_ocean_ice_column/input_ad/data.exf +++ b/verification/1D_ocean_ice_column/input_ad/data.exf @@ -7,6 +7,10 @@ useExfCheckRange = .TRUE., repeatPeriod = 31622400.0, exf_iprec = 32, +# to reproduce old results with ALLOW_BULK_LARGEYEAGER09 set new +# coefficent to zero and umax to some value that is never reached. + cdrag_8 = 0., + umax = 1000., # & diff --git a/verification/1D_ocean_ice_column/input_ad/data.grdchk b/verification/1D_ocean_ice_column/input_ad/data.grdchk index d9f154a545..ad60a8fd1c 100644 --- a/verification/1D_ocean_ice_column/input_ad/data.grdchk +++ b/verification/1D_ocean_ice_column/input_ad/data.grdchk @@ -11,5 +11,5 @@ nstep = 1, #nend = 6, nend = 3, - grdchkvarindex = 1, + grdchkvarindex = 201, & diff --git a/verification/1D_ocean_ice_column/input_ad/generrfiles.py b/verification/1D_ocean_ice_column/input_ad/generrfiles.py new file mode 100644 index 0000000000..7b097c987b --- /dev/null +++ b/verification/1D_ocean_ice_column/input_ad/generrfiles.py @@ -0,0 +1,29 @@ +# generate weights files +import numpy as np + +ratio=0.25 +terr = np.asarray( + [0.5201, 0.5199, 0.5201, 0.5142, 0.4917, 0.4707, 0.4324, 0.3782, + 0.3103, 0.2435, 0.1994, 0.1582, 0.1144, 0.0905, 0.0659, 0.0602, + 0.0508, 0.0498, 0.0501, 0.0500, 0.0500, 0.0500, 0.0500]) +serr = np.asarray( + [0.2676, 0.2224, 0.1942, 0.1751, 0.1452, 0.1223, 0.1125, 0.1078, + 0.0884, 0.0785, 0.0777, 0.0702, 0.0710, 0.0599, 0.0510, 0.0408, + 0.0399, 0.0314, 0.0205, 0.0199, 0.0200, 0.0200, 0.0200]) + +terr = terr/np.sqrt(ratio) +serr = serr/np.sqrt(ratio) + +terr.astype('>f4').tofile('t.err') +serr.astype('>f4').tofile('s.err') + +# from now deleted "data.err" +# with open('data.err') as f: +# contents = f.readlines() + +# ratio=float(contents[0]) +# terr=np.zeros((len(contents)-1,)) +# serr=np.zeros((len(contents)-1,)) +# for k in range(1,len(contents)): +# terr[k-1] = float(contents[k].split()[0])/np.sqrt(ratio) +# serr[k-1] = float(contents[k].split()[1])/np.sqrt(ratio) diff --git a/verification/1D_ocean_ice_column/input_ad/prepare_run b/verification/1D_ocean_ice_column/input_ad/prepare_run index 9f8a43ea70..2c82391c18 100755 --- a/verification/1D_ocean_ice_column/input_ad/prepare_run +++ b/verification/1D_ocean_ice_column/input_ad/prepare_run @@ -9,14 +9,14 @@ fileList=`( cd $fromDir ; echo *1x1* )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -27,3 +27,26 @@ else echo " Error:" $fromDir "not a directory" fi +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/1D_ocean_ice_column/input_ad/s.err b/verification/1D_ocean_ice_column/input_ad/s.err new file mode 100644 index 0000000000..f8b370be8b --- /dev/null +++ b/verification/1D_ocean_ice_column/input_ad/s.err @@ -0,0 +1,3 @@ +? >>]>Mj>O>zxl>fff>\?>5 > Ĝ>!->>hs=Y=`==n/=I='=#S=# +=# +=# diff --git a/verification/1D_ocean_ice_column/input_ad/t.err b/verification/1D_ocean_ice_column/input_ad/t.err new file mode 100644 index 0000000000..02ce1c667d --- /dev/null +++ b/verification/1D_ocean_ice_column/input_ad/t.err @@ -0,0 +1 @@ +?%F?+?%F??{?p?]c?An?ߤ>X>/>.>jJ>9X>=F===5==== \ No newline at end of file diff --git a/verification/MLAdjust/code/GMREDI_OPTIONS.h b/verification/MLAdjust/code/GMREDI_OPTIONS.h index 5df2be981e..c406b1232c 100644 --- a/verification/MLAdjust/code/GMREDI_OPTIONS.h +++ b/verification/MLAdjust/code/GMREDI_OPTIONS.h @@ -24,10 +24,10 @@ C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi C (which depends on tapering scheme) #undef OLD_VISBECK_CALC -C This allows the Bates et al formulation to calculate the +C This allows the Bates et al formulation to calculate the C bolus transport and K for Redi -#undef GM_K3D -#undef GM_K3D_PASSIVE +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE C This allows the leading diagonal (top two rows) to be non-unity C (a feature required when tapering adiabatically). diff --git a/verification/OpenAD/README b/verification/OpenAD/README deleted file mode 100644 index 6a4cdaf1c6..0000000000 --- a/verification/OpenAD/README +++ /dev/null @@ -1,77 +0,0 @@ -Starting a configuration for OpenAD -19-Aug-2005, heimbach@mit.edu, utke@mcs.anl.gov, cnh@mit.edu -############################################################ - -This experiment is derived from global_ocean.90x40x15, -but excludes packages gmredi, kpp. - -STEP 1: -###### -To bypass incomplete canonicalizer, convert COMMON blocks to MODULES. -Successfully completed. -The built process needed to be modified, and some routines -needed changes. Most changes were commited to default routines, -the remaining changes are kept in code/ for now. - -To build: --------- -o short version: ---------------- -make makefile ; make depend ; make cb2m ; make makefile ; make small_f ; make allmods ; make - -o long version: --------------- -# (chdir to built/; assume we are in built/) -# -# generate makefile using ifort and modified genmake2 in ../code/ -../code/genmake2 -of ../../../tools/build_options/linux_ia32_ifort -mods ../code -# -# make dependencies -make depend -# -# invoke script to convert COMMON block headers to MODULE headers -# converts FILE.h to FILE_mod.h which uses newi module FILE_mod.F90 -make cb2m -# -# re-generate makefile which takes into account newly created files -# FILE_mod.h, FILE_mod.F90 -make makefile -# -# make .f, .f90 -make small_f -# -# first compile all module files .f90 -make allmods -# -# compile everything else -make - -To clean: --------- -# Since soft links get overwritten, for now do: -make CLEAN ; rm *.F *.F90 *.h - -to run: ------- -# paremeter files are in input/ -ln -s ../input/* . -# initial and forcing fields are elsewhere; -# get these from verif. exp. global_ocean.90x40x15/input/*.bin -ln -s ../../global_ocean.90x40x15/input/*.bin . -./mitgcmuv >! output.txt - -STEP 2: -###### -Generate code for AD-related routines. - -Similar to step 1, but look in code_ad/ instead of code/ - -To build: --------- -o short version: ---------------- - -../code_ad/genmake2 -of ../../../tools/build_options/linux_ia32_ifort -adof ../../../tools/adjoint_options/adjoint_f95 -mods ../code_ad - -make adAll - diff --git a/verification/OpenAD/code_ad/tamc.h b/verification/OpenAD/code_ad/tamc.h deleted file mode 100644 index f5461e82db..0000000000 --- a/verification/OpenAD/code_ad/tamc.h +++ /dev/null @@ -1,129 +0,0 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) - -#ifdef ALLOW_TAMC_CHECKPOINTING - - integer nchklev_1 - parameter( nchklev_1 = 3 ) - integer nchklev_2 - parameter( nchklev_2 = 120 ) - integer nchklev_3 - parameter( nchklev_3 = 150 ) - -c-- Note always check for the correct sizes of the common blocks! - -#else /* ALLOW_TAMC_CHECKPOINTING undefined */ - - integer nchklev_0 - parameter( nchklev_0 = 64800 ) - -#endif /* ALLOW_TAMC_CHECKPOINTING */ - -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily - - INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif - - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else - INTEGER maxpass - PARAMETER( maxpass = 2 ) -#endif - INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - - diff --git a/verification/OpenAD/code_ad_singlelayer/CPP_OPTIONS.h b/verification/OpenAD/code_ad_singlelayer/CPP_OPTIONS.h deleted file mode 100644 index fefed7ca5b..0000000000 --- a/verification/OpenAD/code_ad_singlelayer/CPP_OPTIONS.h +++ /dev/null @@ -1,50 +0,0 @@ -C -C CPP flags controlling which code in included in the files that -C will be compiled. - -#ifndef CPP_OPTIONS_H -#define CPP_OPTIONS_H - -#include "PACKAGES_CONFIG.h" - -C o Run as shallow water model -#define SINGLE_LAYER_MODE - -#ifdef ALLOW_KPP -#define SHORTWAVE_HEATING -#endif - -C o Include/exclude phi_hyd calculation code -#define INCLUDE_PHIHYD_CALCULATION_CODE - -C o Include/exclude call to S/R CONVECT -#undef INCLUDE_CONVECT_CALL - -C o Include/exclude call to S/R CALC_DIFFUSIVITY -#undef INCLUDE_CALC_DIFFUSIVITY_CALL - -C o Allow nonHydrostatic code -#undef ALLOW_NONHYDROSTATIC - -C o Exact volume conservation -#undef EXACT_CONSERV - -C o Execution environment support options -#include "CPP_EEOPTIONS.h" - -#ifdef ALLOW_AUTODIFF -# include "ECCO_CPPOPTIONS.h" -#endif - -C o Allow full 3D specification of vertical diffusivity -#ifdef ALLOW_DIFFKR_CONTROL -C - Need to be defined if using DIFFKR_CONTROL -C (alternatively, could have put this in ECCO_CPPOPTIONS) -#define ALLOW_3D_DIFFKR -#else -C - otherwise, can be turned on or off hereafter: -#undef ALLOW_3D_DIFFKR -#endif /* ALLOW_DIFFKR_CONTROL */ - -#endif /* CPP_OPTIONS_H */ - diff --git a/verification/OpenAD/code_ad_singlelayer/ECCO_CPPOPTIONS.h b/verification/OpenAD/code_ad_singlelayer/ECCO_CPPOPTIONS.h deleted file mode 100644 index 69e0612a49..0000000000 --- a/verification/OpenAD/code_ad_singlelayer/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,66 +0,0 @@ -C -C CPP flags controlling which code is included in the files that -C will be compiled. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). -C -#define ALLOW_AUTODIFF_TAMC -C -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING -C -C >>> Extract adjoint state -#undef ALLOW_AUTODIFF_MONITOR -C -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT -C -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C ******************************************************************** -C *** Calender Package *** -C ******************************************************************** -C -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** -C -C >>> Cost function contributions -#define ALLOW_COST -#define ALLOW_COST_TEST -#undef ALLOW_COST_TRACER -#undef ALLOW_COST_ATLANTIC_HEAT - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** -C -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#define ALLOW_UVEL0_CONTROL -#define ALLOW_VVEL0_CONTROL -#define ALLOW_ETAN0_CONTROL -#undef ALLOW_TR10_CONTROL -#undef ALLOW_TAUU0_CONTROL -#undef ALLOW_TAUV0_CONTROL -#undef ALLOW_SFLUX0_CONTROL -#undef ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL -#undef ALLOW_DIFFKR_CONTROL -#undef ALLOW_KAPGM_CONTROL - diff --git a/verification/OpenAD/code_ad_singlelayer/SIZE.h b/verification/OpenAD/code_ad_singlelayer/SIZE.h deleted file mode 100644 index 4ca4c44a6b..0000000000 --- a/verification/OpenAD/code_ad_singlelayer/SIZE.h +++ /dev/null @@ -1,59 +0,0 @@ -C -C /==========================================================\ -C | SIZE.h Declare size of underlying computational grid. | -C |==========================================================| -C | The design here support a three-dimensional model grid | -C | with indices I,J and K. The three-dimensional domain | -C | is comprised of nPx*nSx blocks of size sNx along one axis| -C | nPy*nSy blocks of size sNy along another axis and one | -C | block of size Nz along the final axis. | -C | Blocks have overlap regions of size OLx and OLy along the| -C | dimensions that are subdivided. | -C \==========================================================/ -C Voodoo numbers controlling data layout. -C sNx - No. X points in sub-grid. -C sNy - No. Y points in sub-grid. -C OLx - Overlap extent in X. -C OLy - Overlat extent in Y. -C nSx - No. sub-grids in X. -C nSy - No. sub-grids in Y. -C nPx - No. of processes to use in X. -C nPy - No. of processes to use in Y. -C Nx - No. points in X for the total domain. -C Ny - No. points in Y for the total domain. -C Nr - No. points in Z for full process domain. - INTEGER sNx - INTEGER sNy - INTEGER OLx - INTEGER OLy - INTEGER nSx - INTEGER nSy - INTEGER nPx - INTEGER nPy - INTEGER Nx - INTEGER Ny - INTEGER Nr - PARAMETER ( - & sNx = 90, - & sNy = 40, - & OLx = 3, - & OLy = 3, - & nSx = 1, - & nSy = 1, - & nPx = 1, - & nPy = 1, - & Nx = sNx*nSx*nPx, - & Ny = sNy*nSy*nPy, - & Nr = 1) - -C MAX_OLX - Set to the maximum overlap region size of any array -C MAX_OLY that will be exchanged. Controls the sizing of exch -C routine buufers. - INTEGER MAX_OLX - INTEGER MAX_OLY - PARAMETER ( MAX_OLX = OLx, - & MAX_OLY = OLy ) - - integer nobcs - parameter ( nobcs = 4 ) - diff --git a/verification/OpenAD/code_ad_singlelayer/cost_test.F b/verification/OpenAD/code_ad_singlelayer/cost_test.F deleted file mode 100644 index 7bcf7078e7..0000000000 --- a/verification/OpenAD/code_ad_singlelayer/cost_test.F +++ /dev/null @@ -1,82 +0,0 @@ -#include "CPP_OPTIONS.h" - - subroutine cost_test( myThid ) -C /==========================================================\ -C | subroutine cost_test | -C | o this routine computes the cost function for the tiles | -C | of this processor | -C |==========================================================| -C | | -C | Notes | -C | ===== | -C \==========================================================/ - IMPLICIT NONE - -C == Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "DYNVARS.h" -#include "GRID.h" - -#include "cost.h" - -C == Routine arguments == -C myThid - Thread number for this instance of the routine. - integer bi, bj - integer myThid - -#ifdef ALLOW_COST_TEST -C == Local variables - _RL thetaRef - - integer i, j, k - integer ig, jg - integer itlo,ithi - integer jtlo,jthi - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) - - if ( useCubedSphereExchange) then - iLocOut = 7 - jLocOut = 28 - kLocOut = 1 - else - iLocOut = 80 - jLocOut = 30 - kLocOut = 1 - endif - -ce some reference temperature - thetaRef = 20.0D0 - -C-- Calculate mask for tracer cells (0 => land, 1 => water) - k=1 - -C-- Calculate cost function on tile of this instance - do bj = jtlo,jthi - do bi = itlo,ithi - do j=1,sNy - jg = myYGlobalLo-1+(bj-1)*sNy+j - do i=1,sNx - ig = myXGlobalLo-1+(bi-1)*sNx+i -c - objf_test(bi,bj) = objf_test(bi,bj) + maskW(i,j,k,bi,bj) - & *( uVel(i,j,k,bi,bj) ) - & *( uVel(i,j,k,bi,bj) ) -cph( - print *, 'ph-cost: objf_test ', ig, jg, - & objf_test(bi,bj) -cph) -c - end do - end do - end do - end do - -#endif - - END diff --git a/verification/OpenAD/code_ad_singlelayer/tamc.h b/verification/OpenAD/code_ad_singlelayer/tamc.h deleted file mode 100644 index 49581acfd5..0000000000 --- a/verification/OpenAD/code_ad_singlelayer/tamc.h +++ /dev/null @@ -1,129 +0,0 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) - -#ifdef ALLOW_TAMC_CHECKPOINTING - - integer nchklev_1 - parameter( nchklev_1 = 50 ) - integer nchklev_2 - parameter( nchklev_2 = 10 ) - integer nchklev_3 - parameter( nchklev_3 = 10 ) - -c-- Note always check for the correct sizes of the common blocks! - -#else /* ALLOW_TAMC_CHECKPOINTING undefined */ - - integer nchklev_0 - parameter( nchklev_0 = 64800 ) - -#endif /* ALLOW_TAMC_CHECKPOINTING */ - -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily - - INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif - - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else - INTEGER maxpass - PARAMETER( maxpass = 2 ) -#endif - INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - - diff --git a/verification/OpenAD/input_ad/data.ctrl b/verification/OpenAD/input_ad/data.ctrl deleted file mode 100644 index 032e2f9601..0000000000 --- a/verification/OpenAD/input_ad/data.ctrl +++ /dev/null @@ -1,23 +0,0 @@ -# -# -# ********************* -# ECCO controlvariables -# ********************* - &CTRL_NML - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', - & -# -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES - & - diff --git a/verification/OpenAD/input_ad/data.grdchk b/verification/OpenAD/input_ad/data.grdchk deleted file mode 100644 index 3f92930364..0000000000 --- a/verification/OpenAD/input_ad/data.grdchk +++ /dev/null @@ -1,14 +0,0 @@ - -# ******************* -# ECCO gradient check -# ******************* - &GRDCHK_NML - grdchk_eps = 1.d-2, - iGloPos = 71, - jGloPos = 39, - kGloPos = 1, -### nbeg = 1, - nstep = 1, - nend = 7, - grdchkvarindex = 1, - & diff --git a/verification/OpenAD/input_ad_singlelayer/USE_.bin_FILES_FROM_INPUT_DIR b/verification/OpenAD/input_ad_singlelayer/USE_.bin_FILES_FROM_INPUT_DIR deleted file mode 100644 index 9c558e357c..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/USE_.bin_FILES_FROM_INPUT_DIR +++ /dev/null @@ -1 +0,0 @@ -. diff --git a/verification/OpenAD/input_ad_singlelayer/data.ctrl b/verification/OpenAD/input_ad_singlelayer/data.ctrl deleted file mode 100644 index 032e2f9601..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/data.ctrl +++ /dev/null @@ -1,23 +0,0 @@ -# -# -# ********************* -# ECCO controlvariables -# ********************* - &CTRL_NML - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', - & -# -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES - & - diff --git a/verification/OpenAD/input_ad_singlelayer/data.grdchk b/verification/OpenAD/input_ad_singlelayer/data.grdchk deleted file mode 100644 index cd8e4df843..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/data.grdchk +++ /dev/null @@ -1,14 +0,0 @@ - -# ******************* -# ECCO gradient check -# ******************* - &GRDCHK_NML - grdchk_eps = 1.d-2, - nbeg = 1, - nstep = 1, -# iGloPos = 74, -# jGloPos = 26, -# kGloPos = 1, - nend = 2, - grdchkvarindex = 1, - & diff --git a/verification/OpenAD/input_ad_singlelayer/data.pkg b/verification/OpenAD/input_ad_singlelayer/data.pkg deleted file mode 100644 index 47281a8340..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/data.pkg +++ /dev/null @@ -1,10 +0,0 @@ -# -# ******** -# Packages -# ******** - &PACKAGES - useGMRedi = .FALSE., - useKPP = .FALSE., - useGrdchk = .TRUE., - useMNC = .FALSE., - & diff --git a/verification/OpenAD/input_ad_singlelayer/eedata b/verification/OpenAD/input_ad_singlelayer/eedata deleted file mode 100644 index 73a4f67291..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/eedata +++ /dev/null @@ -1,11 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - nTx=1, - nTy=1, - / -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/OpenAD/input_ad_singlelayer/linkData.bash b/verification/OpenAD/input_ad_singlelayer/linkData.bash deleted file mode 100755 index 6d7d2b2004..0000000000 --- a/verification/OpenAD/input_ad_singlelayer/linkData.bash +++ /dev/null @@ -1,18 +0,0 @@ -function Usage { - echo "Usage: $0 " - echo " where is for instance shallow_openad" - echo " executed in build_" -} -testName=${PWD##*/build_} -inputDir=../../../../MITgcm_contrib/heimbach/OpenAD/input_${testName} -if [ ! -d ${inputDir} ] -then - echo "Error: input directory ${inputDir} doesn't exist" - Usage $* - exit -1 -fi -ln -sf ${inputDir}/* . -cd ../../global_ocean.90x40x15/input -./prepare_run > /dev/null -cd ../../OpenAD/build_${testName} -ln -sf ../../global_ocean.90x40x15/input/*.bin . diff --git a/verification/OpenAD/input_oad/data.ctrl b/verification/OpenAD/input_oad/data.ctrl deleted file mode 100644 index 7d0613b349..0000000000 --- a/verification/OpenAD/input_oad/data.ctrl +++ /dev/null @@ -1,28 +0,0 @@ -# -# -# ********************* -# ECCO controlvariables -# ********************* - &CTRL_NML - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', - & -# -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES - ctrlname = 'ecco_ctrl', - costname = 'ecco_cost', - scalname = 'ecco_scal', - maskname = 'ecco_mask', - metaname = 'ecco_meta', - & - diff --git a/verification/OpenAD/input_oad/data.grdchk b/verification/OpenAD/input_oad/data.grdchk deleted file mode 100644 index e014db9d17..0000000000 --- a/verification/OpenAD/input_oad/data.grdchk +++ /dev/null @@ -1,16 +0,0 @@ - -# ******************* -# ECCO gradient check -# ******************* - &GRDCHK_NML - grdchk_eps = 1.d-2, - iGloTile = 2, - jGloTile = 2, - iGloPos = 26, - jGloPos = 19, - kGloPos = 1, -### nbeg = 1, - nstep = 1, - nend = 7, - grdchkvarindex = 1, - & diff --git a/verification/OpenAD/input_oad/data.optim b/verification/OpenAD/input_oad/data.optim deleted file mode 100644 index 332922f3e1..0000000000 --- a/verification/OpenAD/input_oad/data.optim +++ /dev/null @@ -1,7 +0,0 @@ -# -# ******************************** -# Off-line optimization parameters -# ******************************** - &OPTIM - optimcycle=0, - & diff --git a/verification/OpenAD/results/output_adm.txt_singlelayer.gz b/verification/OpenAD/results/output_adm.txt_singlelayer.gz deleted file mode 100644 index 0cc82e7a7b..0000000000 Binary files a/verification/OpenAD/results/output_adm.txt_singlelayer.gz and /dev/null differ diff --git a/verification/OpenAD/results/output_tlm.txt.gz b/verification/OpenAD/results/output_tlm.txt.gz deleted file mode 100644 index 70bc722fa6..0000000000 Binary files a/verification/OpenAD/results/output_tlm.txt.gz and /dev/null differ diff --git a/verification/bottom_ctrl_5x5/build/genmake_local b/verification/bottom_ctrl_5x5/build/genmake_local index 4de432d158..c0ec9a9278 100644 --- a/verification/bottom_ctrl_5x5/build/genmake_local +++ b/verification/bottom_ctrl_5x5/build/genmake_local @@ -1,2 +1,7 @@ -AD_OPTFILE='../code_ad/ad_optfile.local' +#!/usr/bash +# This flag is necessary because in this experiment the preprocessed +# source lines extend beyond column 72 USE_EXTENDED_SRC='t' +# The following line is here to demonstrate how to include a specific +# options filo for AD. In this example, it just points to the default. +AD_OPTFILE='../../../tools/adjoint_options/adjoint_default' diff --git a/verification/bottom_ctrl_5x5/code_ad/AUTODIFF_OPTIONS.h b/verification/bottom_ctrl_5x5/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..95b2249e05 --- /dev/null +++ b/verification/bottom_ctrl_5x5/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/bottom_ctrl_5x5/code_ad/COST_OPTIONS.h b/verification/bottom_ctrl_5x5/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..c75cce689a --- /dev/null +++ b/verification/bottom_ctrl_5x5/code_ad/COST_OPTIONS.h @@ -0,0 +1,78 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_DEPTH +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/bottom_ctrl_5x5/code_ad/CPP_OPTIONS.h b/verification/bottom_ctrl_5x5/code_ad/CPP_OPTIONS.h index 0a9d68fdf7..8ae97d4051 100644 --- a/verification/bottom_ctrl_5x5/code_ad/CPP_OPTIONS.h +++ b/verification/bottom_ctrl_5x5/code_ad/CPP_OPTIONS.h @@ -19,7 +19,7 @@ C-- Forcing code options: C o Shortwave heating as extra term in external_forcing.F C Note: this should be a run-time option -#define SHORTWAVE_HEATING +#undef SHORTWAVE_HEATING C o Include/exclude Geothermal Heat Flux at the bottom of the ocean #undef ALLOW_GEOTHERMAL_FLUX @@ -53,6 +53,10 @@ C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + C-- Vertical mixing code options: C o Include/exclude call to S/R CONVECT @@ -73,6 +77,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #define EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +92,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation @@ -92,8 +103,8 @@ C that ensures that d/dt(eta) is exactly equal to - Div.Transport C o Allow the use of Non-Linear Free-Surface formulation C this implies that grid-cell thickness (hFactors) varies with time -#undef NONLIN_FRSURF -#define DISABLE_RSTAR_CODE +#define NONLIN_FRSURF +#undef DISABLE_RSTAR_CODE #define DISABLE_SIGMA_CODE C o Include/exclude nonHydrostatic code @@ -104,7 +115,7 @@ C o Include/exclude GM-like eddy stress in momentum code C-- Algorithm options: -C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver #define ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver @@ -118,6 +129,29 @@ C The following one suitable for AD but does not vectorize C-- Retired code options: +C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when +C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) +C *only for use on a lat-lon grid* +C Setting this flag here affects both momentum and tracer equation unless +C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). +C The definition of the flag is commented to avoid interference with +C such other header files. +C The preferred method is specifying a value for viscAhGrid or viscA4Grid +C in data which is then automatically scaled by the grid size; +C the old method of specifying viscAh/viscA4 and this flag is provided +C for completeness only (and for use with the adjoint). +c#define ISOTROPIC_COS_SCALING + +C o This flag selects the form of COSINE(lat) scaling of bi-harmonic term. +C *only for use on a lat-lon grid* +C Has no effect if ISOTROPIC_COS_SCALING is undefined. +C Has no effect on vector invariant momentum equations. +C Setting this flag here affects both momentum and tracer equation unless +C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). +C The definition of the flag is commented to avoid interference with +C such other header files. +c#define COSINEMETH_III + C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. @@ -134,8 +168,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/bottom_ctrl_5x5/code_ad/CTRL_OPTIONS.h b/verification/bottom_ctrl_5x5/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..ff7570eeef --- /dev/null +++ b/verification/bottom_ctrl_5x5/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,116 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> only topography as a control vector +C Note that this is special and we keep this flag even for the +C generic control variable code, because using depth as a control +C variable incurs many new dependencies that we would like to avoid +C in general. +#define ALLOW_DEPTH_CONTROL +#ifdef ALLOW_DEPTH_CONTROL +# define USE_SMOOTH_MIN +#endif /* ALLOW_DEPTH_CONTROL */ + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#undef ALLOW_GENARR3D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/bottom_ctrl_5x5/code_ad/ECCO_CPPOPTIONS.h b/verification/bottom_ctrl_5x5/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 772ba36e99..0000000000 --- a/verification/bottom_ctrl_5x5/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,84 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -#undef ALLOW_ECCO_FORWARD_RUN -#undef ALLOW_ECCO_DIAGNOSTICS_RUN -#undef ALLOW_ECCO_OPTIMIZATION - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). - -#define ALLOW_AUTODIFF_TAMC -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING -C Include/exclude adjoint monitor routine -#undef ALLOW_AUTODIFF_MONITOR - -C Include/exclude atmosphere-specific code -#undef ALLOW_AUTODIFF_ATMOSPHERE - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#define ALLOW_COST_TEST -Cml#define ALLOW_COST_TRACER -#undef ALLOW_COST_TRACER -#define ALLOW_COST_DEPTH - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -Cml#define ALLOW_THETA0_CONTROL -Cml#define ALLOW_SALT0_CONTROL -Cml#define ALLOW_TR10_CONTROL -Cml#define ALLOW_TAUU0_CONTROL -Cml#define ALLOW_TAUV0_CONTROL -Cml#define ALLOW_SFLUX0_CONTROL -Cml#define ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL -Cml#define ALLOW_DIFFKR_CONTROL -#undef ALLOW_KAPGM_CONTROL -C o only topography as a control vector -#define ALLOW_DEPTH_CONTROL -#ifdef ALLOW_DEPTH_CONTROL -# define USE_SMOOTH_MIN -#endif /* ALLOW_DEPTH_CONTROL */ - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/bottom_ctrl_5x5/code_ad/SIZE.h b/verification/bottom_ctrl_5x5/code_ad/SIZE.h index 7acf4251f9..a90a1c0945 100644 --- a/verification/bottom_ctrl_5x5/code_ad/SIZE.h +++ b/verification/bottom_ctrl_5x5/code_ad/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/bottom_ctrl_5x5/code_ad/ad_optfile.local b/verification/bottom_ctrl_5x5/code_ad/ad_optfile.local deleted file mode 100644 index 5edfae4b2d..0000000000 --- a/verification/bottom_ctrl_5x5/code_ad/ad_optfile.local +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# -# This AD option-file contains the settings for the adjoint and -# tangent-linear compilers to use for this particular setup. -# It is similar to the default AD-optfile except: -# a) this set-up requires the extended source flag "-e" for TAF -# b) different list of controls (DIFF_FLAGS) - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-reverse -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-e -reverse -i4 -r4 -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-e -forward -i4 -r4 -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -l taf_svd.log $SVD_TAF_FLAGS" - -#- after Jan 14, 2016, TAF default is "-f95" -if test "x$ALWAYS_USE_F90" = "x1" ; then - AD_TAF_FLAGS="-f90 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f90 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f90 $SVD_TAF_FLAGS" -else - AD_TAF_FLAGS="-f77 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f77 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f77 $SVD_TAF_FLAGS" -fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_tr1_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_precip_dummy \ - xx_swflux_dummy \ - xx_swdown_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_obcsn_dummy \ - xx_obcss_dummy \ - xx_obcsw_dummy \ - xx_obcse_dummy \ - xx_sst_dummy \ - xx_sss_dummy \ - xx_depth_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_efluxy_dummy \ - xx_efluxp_dummy \ - xx_edtaux_dummy \ - xx_edtauy_dummy \ - xx_uvel_dummy \ - xx_vvel_dummy \ - xx_etan_dummy \ - xx_relaxsst_dummy \ - xx_relaxsss_dummy' \ - -output 'fc'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/verification/bottom_ctrl_5x5/code_ad/addummy_in_stepping.F b/verification/bottom_ctrl_5x5/code_ad/addummy_in_stepping.F deleted file mode 100644 index c53137cb95..0000000000 --- a/verification/bottom_ctrl_5x5/code_ad/addummy_in_stepping.F +++ /dev/null @@ -1,176 +0,0 @@ -#include "AUTODIFF_OPTIONS.h" -#include "AD_CONFIG.h" - -CBOP -C !ROUTINE: addummy_in_stepping -C !INTERFACE: - subroutine addummy_in_stepping( mytime, myiter, myThid ) - -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE addummy_in_stepping | -C *==========================================================* -C Extract adjoint variable from TAMC/TAF-generated -C adjoint common blocks, contained in adcommon.h -C and write fields to file; -C Make sure common blocks in adcommon.h are up-to-date -C w.r.t. current adjoint code. -C *==========================================================* -C | SUBROUTINE addummy_in_stepping | -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE - -C == Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "adcommon.h" - - LOGICAL DIFFERENT_MULTIPLE - EXTERNAL DIFFERENT_MULTIPLE - INTEGER IO_ERRCOUNT - EXTERNAL IO_ERRCOUNT - -C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myIter - iteration counter for this thread -C myTime - time counter for this thread -C myThid - Thread number for this instance of the routine. - integer myThid - integer myiter - _RL mytime - -C !LOCAL VARIABLES: -c == local variables == -C suff - Hold suffix part of a filename -C beginIOErrCount - Begin and end IO error counts -C endIOErrCount -C msgBuf - Error message buffer - CHARACTER*(MAX_LEN_FNAM) suff - INTEGER beginIOErrCount - INTEGER endIOErrCount - CHARACTER*(MAX_LEN_MBUF) msgBuf - -c == end of interface == -CEOP - -#if (defined (ALLOW_ADJOINT_RUN) || defined (ALLOW_ADMTLM)) -#ifdef ALLOW_AUTODIFF_MONITOR - - call TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) - - IF ( - & DIFFERENT_MULTIPLE(ADJdumpFreq,mytime,deltaTClock) - & ) THEN - - write(*,*) 'myIter= ',myiter - - _BARRIER - _BEGIN_MASTER( myThid ) - -C-- Set suffix for this set of data files. - WRITE(suff,'(I10.10)') myIter - writeBinaryPrec = writeStatePrec - -C-- Read IO error counter - beginIOErrCount = IO_ERRCOUNT(myThid) - -Cml CALL WRITE_FLD_XY_RL ( 'ADJtaux.',suff, adfu, myIter, myThid) -Cml CALL WRITE_FLD_XY_RL ( 'ADJtauy.',suff, adfv, myIter, myThid) -Cml CALL WRITE_FLD_XY_RL ( 'ADJqnet.',suff, adqnet, myIter, myThid) -Cml CALL WRITE_FLD_XY_RL ( 'ADJempr.',suff, adempmr, myIter, myThid) -c -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJgtnm1.',suff, adgtnm1, myIter, myThid) -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJgsnm1.',suff, adgsnm1, myIter, myThid) -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJgunm1.',suff, adgunm1, myIter, myThid) -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJgvnm1.',suff, adgvnm1, myIter, myThid) -Cml#ifdef ALLOW_PASSIVE_TRACER -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJgtr1nm1. ',suff, adgtr1nm1, myIter, myThid) -Cml#endif -c - CALL WRITE_FLD_XYZ_RL( - & 'ADJtheta.',suff, adtheta, myIter, myThid) - CALL WRITE_FLD_XYZ_RL( - & 'ADJsalt.',suff, adsalt, myIter, myThid) - CALL WRITE_FLD_XYZ_RL( - & 'ADJuvel.',suff, aduvel, myIter, myThid) - CALL WRITE_FLD_XYZ_RL( - & 'ADJvvel.',suff, advvel, myIter, myThid) - CALL WRITE_FLD_XYZ_RL( - & 'ADJwvel.',suff, adwvel, myIter, myThid) - -Cml#ifdef ALLOW_PASSIVE_TRACER -Cml CALL WRITE_FLD_XYZ_RL( -Cml & 'ADJtr1. ',suff, adtr1, myIter, myThid) -Cml#endif -Cml#ifdef ALLOW_DIFFKR_CONTROL -Cml CALL WRITE_FLD_XYZ_RL ( 'ADJdiffkr.',suff, addiffkr, -Cml & myIter, myThid) -Cml#endif -Cml#ifdef ALLOW_KAPGM_CONTROL -Cml CALL WRITE_FLD_XYZ_RL ( 'ADJkagm.',suff, adkapgm, -Cml & myIter, myThid) -Cml#endif -#ifdef ALLOW_DEPTH_CONTROL -CML( Does not make sense at this point -CML CALL WRITE_FLD_XY_RL ( 'ADJxx_r_low.',suff, -CML & adxx_r_low, myIter, myThid) -CML) - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacC.',suff, - & adhfacc, myIter, myThid) - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacS.',suff, - & adhfacs, myIter, myThid) - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacW.',suff, - & adhfacw, myIter, myThid) - CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacC.',suff, - & adrecip_hfacc, myIter, myThid) - CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacS.',suff, - & adrecip_hfacs, myIter, myThid) - CALL WRITE_FLD_XYZ_RL ( 'ADJrhFacW.',suff, - & adrecip_hfacw, myIter, myThid) -#endif /* ALLOW_DEPTH_CONTROL */ - -cph CALL WRITE_FLD_XY_RL( 'ADJ_sst.',suff, adsst, myIter, myThid) -cph CALL WRITE_FLD_XY_RL( 'ADJ_sss.',suff, adsss, myIter, myThid) - -C-- Reread IO error counter - endIOErrCount = IO_ERRCOUNT(myThid) - -C-- Check for IO errors - IF ( endIOErrCount .NE. beginIOErrCount ) THEN - WRITE(msgBuf,'(A)') 'S/R ADDUMMY_IN_STEPPING' - CALL PRINT_ERROR( msgBuf, 1 ) - WRITE(msgBuf,'(A)') 'Error writing out model state' - CALL PRINT_ERROR( msgBuf, 1 ) - WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter - CALL PRINT_ERROR( msgBuf, 1 ) - ELSE - WRITE(msgBuf,'(A,I10)') - & '// Model state written, timestep', myIter - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, 1 ) - WRITE(msgBuf,'(A)') ' ' - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, 1 ) - ENDIF - - _END_MASTER( myThid ) - _BARRIER - - ENDIF - - call TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) - -#endif /* ALLOW_AUTODIFF_MONITOR */ -#endif /* ALLOW_ADJOINT_RUN */ - - RETURN - END diff --git a/verification/bottom_ctrl_5x5/code_ad/dummy_in_hfac.F b/verification/bottom_ctrl_5x5/code_ad/dummy_in_hfac.F index cb2db8da86..a601320a43 100644 --- a/verification/bottom_ctrl_5x5/code_ad/dummy_in_hfac.F +++ b/verification/bottom_ctrl_5x5/code_ad/dummy_in_hfac.F @@ -1,31 +1,45 @@ #include "AUTODIFF_OPTIONS.h" +#ifdef ALLOW_CTRL +# include "CTRL_OPTIONS.h" +#endif - subroutine dummy_in_hfac( myname, myIter, myThid ) +C-- File dummy_in_hfac.F: +C-- Contents +C-- o DUMMY_IN_HFAC +C-- o ADDUMMY_IN_HFAC -C *==========================================================* -C | SUBROUTINE dummy_in_hfac -C *==========================================================* +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| +CBOP +C !ROUTINE: DUMMY_IN_HFAC +C !INTERFACE: + SUBROUTINE DUMMY_IN_HFAC( myName, myIter, myThid ) +C !DESCRIPTION: \bv +C Forward S/R is empty +C \ev + +C !USES: IMPLICIT NONE C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -C == Routine arguments == -C myThid - Thread number for this instance of the routine. - CHARACTER*(*) myname +C !INPUT/OUTPUT PARAMETERS: +C myThid :: Thread number for this instance of the routine. + CHARACTER*(*) myName INTEGER myIter INTEGER myThid +CEOP RETURN END C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| CBOP -C !ROUTINE: addummy_in_hfac +C !ROUTINE: ADDUMMY_IN_HFAC C !INTERFACE: - subroutine addummy_in_hfac( myname, myIter, myThid ) + SUBROUTINE ADDUMMY_IN_HFAC( myName, myIter, myThid ) C !DESCRIPTION: \bv C *==========================================================* @@ -52,87 +66,81 @@ subroutine addummy_in_hfac( myname, myIter, myThid ) #include "adcommon.h" #endif +C !INPUT/OUTPUT PARAMETERS: +C myThid :: Thread number for this instance of the routine. + CHARACTER*(1) myName + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_AUTODIFF_MONITOR +#ifdef ALLOW_DEPTH_CONTROL +C !FUNCTIONS: LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE INTEGER IO_ERRCOUNT EXTERNAL IO_ERRCOUNT -C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myThid - Thread number for this instance of the routine. - CHARACTER*(1) myname - integer myIter - integer myThid - -#ifdef ALLOW_AUTODIFF_MONITOR C !LOCAL VARIABLES: -c == local variables == -C suff - Hold suffix part of a filename -C beginIOErrCount - Begin and end IO error counts -C endIOErrCount -C msgBuf - Error message buffer +C suff :: Hold suffix part of a filename +C beginIOErrCount :: Begin IO error counts +C endIOErrCount :: End IO error counts +C msgBuf :: Error message buffer CHARACTER*(MAX_LEN_FNAM) suff INTEGER beginIOErrCount INTEGER endIOErrCount CHARACTER*(MAX_LEN_MBUF) msgBuf - _RL mytime - CHARACTER*(5) myfullname - -c == end of interface == + _RL myTime + CHARACTER*(5) myFullName CEOP -#ifdef ALLOW_DEPTH_CONTROL - - mytime = 0. + myTime = 0. - IF ( - & DIFFERENT_MULTIPLE(dumpFreq,mytime, - & mytime-deltaTClock) - & ) THEN + IF ( DIFFERENT_MULTIPLE( dumpFreq, myTime, myTime-deltaTClock ) + & ) THEN CALL TIMER_START('I/O (WRITE) [ADJOINT LOOP]', myThid ) C-- Set suffix for this set of data files. WRITE(suff,'(I10.10)') myIter - writeBinaryPrec = writeStatePrec +c writeBinaryPrec = writeStatePrec C-- Read IO error counter beginIOErrCount = IO_ERRCOUNT(myThid) - IF ( myname .eq. 'C' ) THEN - myfullname = 'hFacC' - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacC.', suff, adhfacc, - & myIter, myThid) - ELSE IF ( myname .eq. 'W' ) THEN - myfullname = 'hFacW' - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacW.', suff, adhfacw, - & myIter, myThid) - ELSE IF ( myname .eq. 'S' ) THEN - myfullname = 'hFacS' - CALL WRITE_FLD_XYZ_RL ( 'ADJhFacS.', suff, adhfacs, - & myIter, myThid) + IF ( myName .EQ. 'C' ) THEN + myFullName = 'hFacC' + CALL WRITE_FLD_XYZ_RL( 'ADJhFacC.', suff, adhfacc, + & myIter, myThid ) + ELSE IF ( myName .EQ. 'W' ) THEN + myFullName = 'hFacW' + CALL WRITE_FLD_XYZ_RL( 'ADJhFacW.', suff, adhfacw, + & myIter, myThid ) + ELSE IF ( myName .EQ. 'S' ) THEN + myFullName = 'hFacS' + CALL WRITE_FLD_XYZ_RL( 'ADJhFacS.', suff, adhfacs, + & myIter, myThid ) ELSE - write(*,*) 'addummy_in_hfac: no valid myname specified' + WRITE(*,*) 'addummy_in_hfac: no valid myName specified' END IF C-- Reread IO error counter endIOErrCount = IO_ERRCOUNT(myThid) C-- Check for IO errors IF ( endIOErrCount .NE. beginIOErrCount ) THEN - WRITE(msgBuf,'(A)') 'S/R WRITE_STATE' - CALL PRINT_ERROR( msgBuf, 1 ) - WRITE(msgBuf,'(A)') 'Error writing out model state' - CALL PRINT_ERROR( msgBuf, 1 ) - WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter - CALL PRINT_ERROR( msgBuf, 1 ) + WRITE(msgBuf,'(A)') 'S/R WRITE_STATE' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A)') 'Error writing out model state' + CALL PRINT_ERROR( msgBuf, myThid ) + WRITE(msgBuf,'(A,I10)') 'Timestep ',myIter + CALL PRINT_ERROR( msgBuf, myThid ) ELSE - WRITE(msgBuf,'(A,I10)') - & '// ad'//myfullname//' written, timestep', myIter - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, 1 ) - WRITE(msgBuf,'(A)') ' ' - CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, - & SQUEEZE_RIGHT, 1 ) + WRITE(msgBuf,'(A,I10)') + & '// ad'//myFullName//' written, timestep', myIter + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + WRITE(msgBuf,'(A)') ' ' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) ENDIF CALL TIMER_STOP( 'I/O (WRITE) [ADJOINT LOOP]', myThid ) diff --git a/verification/bottom_ctrl_5x5/code_ad/tamc.h b/verification/bottom_ctrl_5x5/code_ad/tamc.h index e17021d40e..6b77ac48f6 100644 --- a/verification/bottom_ctrl_5x5/code_ad/tamc.h +++ b/verification/bottom_ctrl_5x5/code_ad/tamc.h @@ -1,140 +1,100 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 20 ) - integer nchklev_2 +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 20 ) + INTEGER nchklev_2 #ifdef AUTODIFF_2_LEVEL_CHECKPOINT - parameter( nchklev_2 = 22 ) +C use two-level checkpointing with the same storage + PARAMETER( nchklev_2 = 50 ) #else - parameter( nchklev_2 = 10 ) + PARAMETER( nchklev_2 = 10 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 5 ) +#endif +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) #endif - integer nchklev_3 - parameter( nchklev_3 = 5 ) -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) + PARAMETER( maxcube = 1 ) - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -#ifdef ALLOW_DEPTH_CONTROL +#ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter C cannot be smaller than the allowed number of iterations in cg2d C (numItersMax >= cg2dMaxIters in data-file) INTEGER numItersMax PARAMETER ( numItersMax = 100 ) -#endif /* ALLOW_DEPTH_CONTROL */ - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/bottom_ctrl_5x5/input_ad.facg2d/data b/verification/bottom_ctrl_5x5/input_ad.facg2d/data new file mode 100644 index 0000000000..96a29f9d87 --- /dev/null +++ b/verification/bottom_ctrl_5x5/input_ad.facg2d/data @@ -0,0 +1,86 @@ +# Model parameters +# Continuous equation parameters + &PARM01 + tRef=4.,4.,4.,4., + sRef=35.,35.,35.,35., + viscAz=1.E-1, + viscAh=1.E5, +# viscA4=1.E16, +# useJamartWetPoints=.TRUE., + no_slip_sides=.FALSE., + no_slip_bottom=.TRUE., + diffKhT=4.E2, + diffKzT=1.E-4, + diffKhS=0.0, + diffKzS=3.E-5, + f0=-1.1914E-04, + beta=1.3094E-11, + tAlpha=2.E-4, +# sBeta =7.4E-4, + sBeta = 0., + gravity=9.81, + gBaro=9.81, + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + eosType='LINEAR', + writeStatePrec=64, + writeBinaryPrec=64, + readBinaryPrec=64, + hFacMin=.05, + smoothAbsFuncRange = -1.e-2, + nonlinFreeSurf=0, + exactConserv=.FALSE., +#momAdvection = .false., +#momViscosity = .false., +#momPressureForcing = .false., + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=100, +#cg2dTargetResidual=1.E-13, + cg2dTargetResWunit=1.E-18, + useNSACGSolver = .FALSE., + & +# Time stepping parameters + &PARM03 + nIter0=0, + nTimeSteps=100, +#startTime = 0., +#endTime = 7776000, + deltaTmom=3600.0, + deltaTtracer=3600.0, + abEps=0.1, + pChkptFreq= 7776000.0, + chkptFreq= 0.0, +#dumpFreq= 1.0, + monitorFreq = 43200., + ADJdumpFreq= 180000., + monitorSelect=1, + & +# Gridding parameters + &PARM04 + usingCartesianGrid=.TRUE., + usingSphericalPolarGrid=.FALSE., + delX=5*200.E3, + delY=5*200.E3, +# 1 layer +#delZ=5001.,500.,500.,500., +# 2 layers +#delZ=1000.,5000.,500.,5000., +# 4 layers + delZ=100.,400.,500.,5000., +#delZ=1000.,1500.,1500.,1500., + & + &PARM05 +#bathyFile='walls.bigRidge', + bathyFile='noWalls.bigRidge', +#bathyFile='box.bigRidge', +#bathyFile='meridchannel.bigRidge', +#hydrogThetaFile=, +#hydrogSaltFile=, + zonalWindFile='windx.sin_y', +#meridWindFile=, +#surfQnetFile=, +#EmPmRFile=, + & diff --git a/verification/bottom_ctrl_5x5/input_ad.facg2d/data.autodiff b/verification/bottom_ctrl_5x5/input_ad.facg2d/data.autodiff new file mode 100644 index 0000000000..8953c62861 --- /dev/null +++ b/verification/bottom_ctrl_5x5/input_ad.facg2d/data.autodiff @@ -0,0 +1,9 @@ +# ========================= +# pkg AUTODIFF parameters : +# ========================= +# inAdExact :: get an exact adjoint (no approximation) (def=.True.) +# + &AUTODIFF_PARM01 +# inAdExact = .FALSE., + cg2dFullAdjoint = .TRUE., + & diff --git a/verification/bottom_ctrl_5x5/input_ad/data b/verification/bottom_ctrl_5x5/input_ad/data index 7b1ad161fe..d2da0a76e4 100644 --- a/verification/bottom_ctrl_5x5/input_ad/data +++ b/verification/bottom_ctrl_5x5/input_ad/data @@ -38,8 +38,10 @@ # Elliptic solver parameters &PARM02 cg2dMaxIters=100, + cg2dMinItersNSA = 10, #cg2dTargetResidual=1.E-13, cg2dTargetResWunit=1.E-18, + useNSACGSolver = .TRUE., & # Time stepping parameters &PARM03 @@ -54,6 +56,7 @@ chkptFreq= 0.0, #dumpFreq= 1.0, monitorFreq = 43200., +#ADJdumpFreq= 1.0, monitorSelect=1, & # Gridding parameters @@ -75,10 +78,10 @@ bathyFile='noWalls.bigRidge', #bathyFile='box.bigRidge', #bathyFile='meridchannel.bigRidge', - hydrogThetaFile=, - hydrogSaltFile=, +#hydrogThetaFile=, +#hydrogSaltFile=, zonalWindFile='windx.sin_y', - meridWindFile=, - surfQnetFile=, - EmPmRFile=, +#meridWindFile=, +#surfQnetFile=, +#EmPmRFile=, & diff --git a/verification/bottom_ctrl_5x5/input_ad/data.autodiff b/verification/bottom_ctrl_5x5/input_ad/data.autodiff index 4585444d65..b9c29def6e 100644 --- a/verification/bottom_ctrl_5x5/input_ad/data.autodiff +++ b/verification/bottom_ctrl_5x5/input_ad/data.autodiff @@ -5,4 +5,5 @@ # &AUTODIFF_PARM01 # inAdExact = .FALSE., + cg2dFullAdjoint = .FALSE., & diff --git a/verification/bottom_ctrl_5x5/input_ad/data.cost b/verification/bottom_ctrl_5x5/input_ad/data.cost index a9923a9bc4..97e8d70b81 100644 --- a/verification/bottom_ctrl_5x5/input_ad/data.cost +++ b/verification/bottom_ctrl_5x5/input_ad/data.cost @@ -4,7 +4,8 @@ # ECCO cost function # ****************** &COST_NML - mult_tracer = 0., mult_test = 1., - mult_depth = 1., +# only compute depth cost function, +# but do not add it the global cost function + mult_depth = 0., & diff --git a/verification/bottom_ctrl_5x5/input_ad/data.ctrl b/verification/bottom_ctrl_5x5/input_ad/data.ctrl index e2e112275d..c0197be65d 100644 --- a/verification/bottom_ctrl_5x5/input_ad/data.ctrl +++ b/verification/bottom_ctrl_5x5/input_ad/data.ctrl @@ -1,22 +1,7 @@ -# -# # ********************* # ECCO controlvariables # ********************* &CTRL_NML -# xx_theta_file = 'xx_theta', -# xx_salt_file = 'xx_salt', -# xx_tr1_file = 'xx_tr1', -# xx_hflux_file = 'xx_hflux', -# xx_sflux_file = 'xx_sflux', -# xx_tauu_file = 'xx_tauu', -# xx_tauv_file = 'xx_tauv', -# xx_sst_file = 'xx_sst', -# xx_sss_file = 'xx_sss', -# xx_diffkr_file = 'xx_diffkr', -# xx_kapgm_file = 'xx_kapgm', -#xx_hfacc_file = 'xx_hfacc', - xx_depth_file = 'xx_depth', & # # ********************* @@ -24,4 +9,11 @@ # ********************* &CTRL_PACKNAMES & - +# +# ********************* +# names for CTRL_GENARR +# ********************* + &CTRL_NML_GENARR + xx_genarr2d_file(1) = 'xx_depth', + xx_genarr2d_weight(1) = 'ones_64b.bin', + & diff --git a/verification/bottom_ctrl_5x5/input_ad/data.grdchk b/verification/bottom_ctrl_5x5/input_ad/data.grdchk index 328e75e7a3..0e0dc637f1 100644 --- a/verification/bottom_ctrl_5x5/input_ad/data.grdchk +++ b/verification/bottom_ctrl_5x5/input_ad/data.grdchk @@ -1,4 +1,3 @@ - # ******************* # ECCO gradient check # ******************* @@ -7,5 +6,5 @@ nbeg = 1, nstep = 3, nend = 25, - grdchkvarindex = 20, - / + grdchkvarindex = 101, + & diff --git a/verification/bottom_ctrl_5x5/input_ad/prepare_run b/verification/bottom_ctrl_5x5/input_ad/prepare_run new file mode 100755 index 0000000000..72785d13c9 --- /dev/null +++ b/verification/bottom_ctrl_5x5/input_ad/prepare_run @@ -0,0 +1,24 @@ +#! /usr/bin/env bash + +#- Use file 'ones_64b.bin' from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/bottom_ctrl_5x5/results/output_adm.facg2d.txt b/verification/bottom_ctrl_5x5/results/output_adm.facg2d.txt new file mode 100644 index 0000000000..92ae863927 --- /dev/null +++ b/verification/bottom_ctrl_5x5/results/output_adm.facg2d.txt @@ -0,0 +1,9194 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68a +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Wed Aug 18 23:05:27 EDT 2021 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 5 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 5 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 2 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 2 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 4 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 5 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 5 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 1 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Model parameters +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=4.,4.,4.,4., +(PID.TID 0000.0001) > sRef=35.,35.,35.,35., +(PID.TID 0000.0001) > viscAz=1.E-1, +(PID.TID 0000.0001) > viscAh=1.E5, +(PID.TID 0000.0001) ># viscA4=1.E16, +(PID.TID 0000.0001) ># useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > diffKhT=4.E2, +(PID.TID 0000.0001) > diffKzT=1.E-4, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKzS=3.E-5, +(PID.TID 0000.0001) > f0=-1.1914E-04, +(PID.TID 0000.0001) > beta=1.3094E-11, +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) ># sBeta =7.4E-4, +(PID.TID 0000.0001) > sBeta = 0., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > gBaro=9.81, +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > writeStatePrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > hFacMin=.05, +(PID.TID 0000.0001) > smoothAbsFuncRange = -1.e-2, +(PID.TID 0000.0001) > nonlinFreeSurf=0, +(PID.TID 0000.0001) > exactConserv=.FALSE., +(PID.TID 0000.0001) >#momAdvection = .false., +(PID.TID 0000.0001) >#momViscosity = .false., +(PID.TID 0000.0001) >#momPressureForcing = .false., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=100, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-18, +(PID.TID 0000.0001) > useNSACGSolver = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=100, +(PID.TID 0000.0001) >#startTime = 0., +(PID.TID 0000.0001) >#endTime = 7776000, +(PID.TID 0000.0001) > deltaTmom=3600.0, +(PID.TID 0000.0001) > deltaTtracer=3600.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > pChkptFreq= 7776000.0, +(PID.TID 0000.0001) > chkptFreq= 0.0, +(PID.TID 0000.0001) >#dumpFreq= 1.0, +(PID.TID 0000.0001) > monitorFreq = 43200., +(PID.TID 0000.0001) > ADJdumpFreq= 1.0, +(PID.TID 0000.0001) > monitorSelect=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > usingSphericalPolarGrid=.FALSE., +(PID.TID 0000.0001) > delX=5*200.E3, +(PID.TID 0000.0001) > delY=5*200.E3, +(PID.TID 0000.0001) ># 1 layer +(PID.TID 0000.0001) >#delZ=5001.,500.,500.,500., +(PID.TID 0000.0001) ># 2 layers +(PID.TID 0000.0001) >#delZ=1000.,5000.,500.,5000., +(PID.TID 0000.0001) ># 4 layers +(PID.TID 0000.0001) > delZ=100.,400.,500.,5000., +(PID.TID 0000.0001) >#delZ=1000.,1500.,1500.,1500., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) >#bathyFile='walls.bigRidge', +(PID.TID 0000.0001) > bathyFile='noWalls.bigRidge', +(PID.TID 0000.0001) >#bathyFile='box.bigRidge', +(PID.TID 0000.0001) >#bathyFile='meridchannel.bigRidge', +(PID.TID 0000.0001) > hydrogThetaFile=, +(PID.TID 0000.0001) > hydrogSaltFile=, +(PID.TID 0000.0001) > zonalWindFile='windx.sin_y', +(PID.TID 0000.0001) > meridWindFile=, +(PID.TID 0000.0001) > surfQnetFile=, +(PID.TID 0000.0001) > EmPmRFile=, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled but not used ( useCDscheme = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > cg2dFullAdjoint = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) ># xx_theta_file = 'xx_theta', +(PID.TID 0000.0001) ># xx_salt_file = 'xx_salt', +(PID.TID 0000.0001) ># xx_tr1_file = 'xx_tr1', +(PID.TID 0000.0001) ># xx_hflux_file = 'xx_hflux', +(PID.TID 0000.0001) ># xx_sflux_file = 'xx_sflux', +(PID.TID 0000.0001) ># xx_tauu_file = 'xx_tauu', +(PID.TID 0000.0001) ># xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) ># xx_sss_file = 'xx_sss', +(PID.TID 0000.0001) ># xx_diffkr_file = 'xx_diffkr', +(PID.TID 0000.0001) ># xx_kapgm_file = 'xx_kapgm', +(PID.TID 0000.0001) >#xx_hfacc_file = 'xx_hfacc', +(PID.TID 0000.0001) > xx_depth_file = 'xx_depth', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) > mult_tracer = 0., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_depth = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-04, +(PID.TID 0000.0001) > nbeg = 1, +(PID.TID 0000.0001) > nstep = 3, +(PID.TID 0000.0001) > nend = 25, +(PID.TID 0000.0001) > grdchkvarindex = 20, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 20 +(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) First location: 1 +(PID.TID 0000.0001) Last location: 25 +(PID.TID 0000.0001) Increment: 3 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 9.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_mean = 5.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_sd = 2.8284271247462E+05 +(PID.TID 0000.0001) %MON XG_max = 8.0000000000000E+05 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 4.0000000000000E+05 +(PID.TID 0000.0001) %MON XG_sd = 2.8284271247462E+05 +(PID.TID 0000.0001) %MON DXC_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 9.0000000000000E+05 +(PID.TID 0000.0001) %MON YC_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON YC_mean = 5.0000000000000E+05 +(PID.TID 0000.0001) %MON YC_sd = 2.8284271247462E+05 +(PID.TID 0000.0001) %MON YG_max = 8.0000000000000E+05 +(PID.TID 0000.0001) %MON YG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_mean = 4.0000000000000E+05 +(PID.TID 0000.0001) %MON YG_sd = 2.8284271247462E+05 +(PID.TID 0000.0001) %MON DYC_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_min = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_min = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_mean = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAW_max = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_min = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_mean = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_max = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_min = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_mean = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_max = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_min = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 25 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 25 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 25 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 25 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 100 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 200 +(PID.TID 0000.0001) ctrl-wet 8: atmos 200 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 4 25 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 25 25 25 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 25 25 25 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 25 25 25 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 25 25 25 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 25 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 100 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 000100 000100 000100 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = -1.0735540000000E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.1783060000000E-04 +(PID.TID 0000.0001) %MON fCori_mean = -1.1259300000000E-04 +(PID.TID 0000.0001) %MON fCori_sd = 3.7035424771427E-06 +(PID.TID 0000.0001) %MON fCoriG_max = -1.0866480000000E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.1914000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.1390240000000E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 3.7035424771427E-06 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.9999999999999996E-04 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 5.555555555555554E-14 (Area=1.0000000000E+12) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 4 @ 4.000000000000000E+00 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 4 @ 3.500000000000000E+01 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 4 @ 1.000000000000000E-01 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 4.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 4 @ 1.000000000000000E-04 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 4 @ 3.000000000000000E-05 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 4 @ 1.000000000000000E+00 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 4 @ 1.000000000000000E+00 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) -1.191400000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 1.309400000000000E-11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 100 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 1.000000000000000E-18 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 4 @ 3.600000000000000E+03 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 100 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 100 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 3.000000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000200040008002E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 2.500000000000000E+02, /* K = 2 */ +(PID.TID 0000.0001) 4.500000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 2.750000000000000E+03, /* K = 4 */ +(PID.TID 0000.0001) 2.500000000000000E+03 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 1 */ +(PID.TID 0000.0001) 4.000000000000000E+02, /* K = 2 */ +(PID.TID 0000.0001) 5.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* K = 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.000000000000000E+05, /* I = 1 */ +(PID.TID 0000.0001) 3.000000000000000E+05, /* I = 2 */ +(PID.TID 0000.0001) 5.000000000000000E+05, /* I = 3 */ +(PID.TID 0000.0001) 7.000000000000000E+05, /* I = 4 */ +(PID.TID 0000.0001) 9.000000000000000E+05 /* I = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.000000000000000E+05, /* J = 1 */ +(PID.TID 0000.0001) 3.000000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) 5.000000000000000E+05, /* J = 3 */ +(PID.TID 0000.0001) 7.000000000000000E+05, /* J = 4 */ +(PID.TID 0000.0001) 9.000000000000000E+05 /* J = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -3.000000000000000E+02, /* K = 2 */ +(PID.TID 0000.0001) -7.500000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -3.500000000000000E+03 /* K = 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 2 */ +(PID.TID 0000.0001) -5.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.000000000000000E+03, /* K = 4 */ +(PID.TID 0000.0001) -6.000000000000000E+03 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 4 @ 1.000000000000000E+00 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 4 @ 0.000000000000000E+00 /* K = 1: 4 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5 @ 2.000000000000000E+05 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* I = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 5 @ 4.000000000000000E+10 /* J = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 1.000000000000000E+12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470257E-03 4.29236468104834E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539776E-03 6.43184796144655E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916740E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517852E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739476E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118113690E-03 1.22456378128442E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879417253E-03 1.44777510270361E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202872280E-03 1.58982062902971E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828108510E-03 1.64357697426163E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 +(PID.TID 0000.0001) cg2d_init_res = 5.81088204651639E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 4.62364477787653E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4573816465048E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 6.0302344497194E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4144273661431E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.2579720508576E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8748592079831E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8845773422301E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2298069156517E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.6355849260794E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.3354848689695E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0723700852462E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8951549234977E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.1431234269487E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.3851803969620E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.6765364747183E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1668794388475E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0542079328505E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2866344270079E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4167238646484E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.8041390551994E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4052728443054E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1213652448173E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2411278862296E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6610283796566E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.1525709491416E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6662343806772E-11 +(PID.TID 0000.0001) %MON ke_max = 3.8466788772790E-05 +(PID.TID 0000.0001) %MON ke_mean = 6.5893885400907E-07 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -5.47818875169907E-04 1.61756159398062E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729206428350E-05 1.53363856597825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056700414E-04 1.42794064564248E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816398006E-03 1.49223780561561E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898756444E-03 1.56210440474790E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888982742E-03 1.63424213142116E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917056604E-03 1.70505819058161E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192718E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268464217E-03 1.93938684114083E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209343237E-03 2.06671962577103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 +(PID.TID 0000.0001) cg2d_init_res = 7.38296268922699E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 3.02006244251642E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 24 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.7844409914181E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 3.2645567144752E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4433373565442E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4819538622942E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5434520733128E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5151898296067E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.4423447243209E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.7305543645239E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2504378753718E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1004612939226E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1439540226055E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.6232539802023E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5158127316130E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5360302494970E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0978867361765E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.2350759874276E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.9451553150755E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9978036956703E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.8448049831739E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7177942065444E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1596220503778E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0591172406899E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1362383865866E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8405959664665E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 2.2806493248586E-10 +(PID.TID 0000.0001) %MON ke_max = 6.7073102014281E-05 +(PID.TID 0000.0001) %MON ke_mean = 1.4891593711536E-06 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -4.59527343840651E-03 2.17651147351271E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123164011E-03 2.23681621027621E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762897496E-03 2.25047700750366E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557917024E-04 2.23911227450568E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454537644E-03 2.31619526841969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289156783E-03 2.39332628007075E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142204379E-03 2.46478012464754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438142654E-03 2.52475933144517E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191396729E-03 2.56860713643225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753908284E-03 2.59379160397445E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044298847E-02 2.60046741362487E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657793561E-03 2.59154640793845E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 +(PID.TID 0000.0001) cg2d_init_res = 6.35007956522185E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 9.10005752905464E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 36 +(PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.5683589974798E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 5.2707966276418E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.3249313825023E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.3516314618321E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5033363264908E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1017175873705E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8824991490100E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.1659569046493E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2870914719586E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.9633223303025E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2945920215711E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2727723080359E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.5225427665140E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8328644922005E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.6123311049334E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.9738361997433E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3430262241473E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3654248903962E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.2341093962327E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3429481256819E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3884984682180E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3302656388279E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3709477562963E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4273693907408E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 4.5364321220806E-10 +(PID.TID 0000.0001) %MON ke_max = 8.2643614189494E-05 +(PID.TID 0000.0001) %MON ke_mean = 1.7697925493273E-06 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.54505745552110E-03 2.57230689744725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619430481E-03 2.57617678082103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960323297E-03 2.60704657072955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524088848E-03 2.55368004866346E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289833673E-03 2.53090267956823E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015721705E-03 2.55686897823141E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888761838E-03 2.59998586190743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407415463E-03 2.65617340743756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801265541881E-03 2.71885907823437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728546911964E-03 2.78009792743560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533161695003E-03 2.83193125835560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436783640334E-03 2.86771962552012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 +(PID.TID 0000.0001) cg2d_init_res = 3.74553574934444E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 6.21603181963327E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 48 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3218056401944E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 4.9822977761722E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.0292303579894E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.8046602125164E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4641364541150E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9248544283910E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2792540418602E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.0497027805447E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4850443529030E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3444799754896E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1901320554063E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.9668483494383E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.3010788731650E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7065545702993E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.5564612266224E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.9685090687158E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9443036926692E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5273962854300E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0422423755207E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.3466278474149E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4647379711039E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1422376997313E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.1546530589508E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7886632647377E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1194257471501E-10 +(PID.TID 0000.0001) %MON ke_max = 7.1206282534211E-05 +(PID.TID 0000.0001) %MON ke_mean = 1.5440120019832E-06 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.76260395685178E-03 2.88321602464444E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588736356239E-03 2.87721816536720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958545223991E-03 2.85172238290814E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891550008831E-03 2.90854929940381E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216135263882E-03 2.93304374436110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645864282605E-03 2.88331760371237E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907587794043E-03 2.77469260149385E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776873390536E-03 2.64912183617287E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175891840171E-03 2.63954764388291E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063154231068E-03 2.64744430596754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283027737359E-03 2.67027733920110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958396346900E-03 2.75143061474967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) cg2d_init_res = 3.87000977845192E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 4.63270159434507E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 60 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.4828424295001E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 3.1608260959569E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.2311704083279E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6021531398253E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4738613943640E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7288294900146E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2114285505434E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2893377535399E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0696885562914E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5433335872052E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0106263993756E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2255851308839E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2474672332632E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4009675880380E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.4564925679901E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5237348191876E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6673927253004E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5796752344285E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6299293145321E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1316095842770E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9118930820262E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8191275188761E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9541781396301E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9885445349075E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 2.0597527059138E-10 +(PID.TID 0000.0001) %MON ke_max = 5.1390232612228E-05 +(PID.TID 0000.0001) %MON ke_mean = 1.0977344201290E-06 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.02517513098651E-03 2.84716527327018E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141270983096E-03 2.92480128291437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356461821936E-03 2.97120288151901E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691600902551E-03 2.97966804344267E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712340670312E-03 3.00381237938477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280737694798E-03 3.08036411819215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430727535916E-03 3.09182671069864E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713137597645E-03 3.03934310027989E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148618581440E-03 2.93659606044134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983309994835E-03 2.80689805753235E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262908029438E-03 2.68543416568999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865392657752E-03 2.73031558404110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 +(PID.TID 0000.0001) cg2d_init_res = 4.30920038630310E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 8.99277728567718E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72 +(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7790009794168E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 1.3231706287119E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5004077444222E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.0571173087401E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6404495262344E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9955823121302E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3640912778971E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.8422255890739E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.9325825811855E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6572005871864E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6911295027387E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.0539731968706E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2460065344146E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1879888738441E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.3616920738784E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.4508941647130E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.4756150474033E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.6077652932922E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6051545928214E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3793014602317E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.5920481618343E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5644033104930E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.5110634449565E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1277658612391E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 7.6916800819371E-11 +(PID.TID 0000.0001) %MON ke_max = 3.5946007866523E-05 +(PID.TID 0000.0001) %MON ke_mean = 7.6033089425347E-07 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -5.17138145567538E-03 2.80043602330375E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770809530586E-03 2.88238464268000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102502267938E-03 2.96047703775097E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794593306016E-03 3.01993446707145E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747823510146E-03 3.04982329923301E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311477978074E-03 3.04517980952895E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185289229759E-03 3.11258929633955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878938747761E-03 3.17297132779809E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076191478564E-03 3.17471656388760E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655868503524E-03 3.11938175605144E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371970540543E-03 3.01971788867662E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244073804417E-03 2.89700828093700E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 +(PID.TID 0000.0001) cg2d_init_res = 3.26375601400702E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 5.69487328924742E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 84 +(PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4496299546790E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 7.4134342845415E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.0557415982526E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8100507720976E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8543317260059E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.8864774445142E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4129559309464E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.8327746747322E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.4189818208682E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7218495673533E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6135811988826E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.5669436088247E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.6958006170657E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1574324285740E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8014226290276E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.2320161940636E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.8370575077075E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5457275460685E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.1789233431121E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4400985568394E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2395659400125E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5504446157989E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.1766573574813E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2941643393703E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 5.5752041820868E-11 +(PID.TID 0000.0001) %MON ke_max = 3.2735346501268E-05 +(PID.TID 0000.0001) %MON ke_mean = 6.7896854684554E-07 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.44550667496152E-03 2.77676422525420E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987160392805E-03 2.78119166951153E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114876456484E-03 2.84461356555620E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774884152490E-03 2.91823911939352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760236842736E-03 2.98773885252150E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805666712773E-03 3.03980211306567E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908494164335E-03 3.06473925782712E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143940447236E-03 3.06396596594010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449177587565E-03 3.16208626061732E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259143936543E-03 3.21610125512188E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301288451245E-03 3.21680816914900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212422196007E-03 3.16554822315725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 +(PID.TID 0000.0001) cg2d_init_res = 2.44479592849767E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 +(PID.TID 0000.0001) cg2d_last_res = 2.88668667067915E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 96 +(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4654051835818E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 1.5700674404451E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9821764958301E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2660200390913E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9680811277824E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0807724845439E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0175595375407E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.4599955322609E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.8343549928408E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.4467881218793E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.1013480210514E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5643408645226E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4634953025330E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2315233259217E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.3331467880126E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.6869580724562E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.8065149598885E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2256314277873E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1787779963691E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3036496423987E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 4.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8316071675732E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6382426437893E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.6214295890898E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1553573972724E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 1.0868965644356E-10 +(PID.TID 0000.0001) %MON ke_max = 3.7094004719551E-05 +(PID.TID 0000.0001) %MON ke_mean = 7.8864081151317E-07 +(PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.85860139912976E-03 3.07378664558318E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293297477749E-03 2.96071720766658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105745081334E-03 2.84938997898950E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705713557037E-03 2.80618860570211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) %CHECKPOINT 100 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809587569147D-01 +(PID.TID 0000.0001) local fc = 0.473809587569147D-01 +(PID.TID 0000.0001) global fc = 0.473809587569147D-01 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470257E-03 4.29236468104834E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539776E-03 6.43184796144655E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916740E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517852E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739476E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118113690E-03 1.22456378128442E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879417253E-03 1.44777510270361E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202872280E-03 1.58982062902971E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828108510E-03 1.64357697426163E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875169907E-04 1.61756159398062E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729206428350E-05 1.53363856597825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056700414E-04 1.42794064564248E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816398006E-03 1.49223780561561E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898756444E-03 1.56210440474790E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888982742E-03 1.63424213142116E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917056604E-03 1.70505819058161E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192718E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268464217E-03 1.93938684114083E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209343237E-03 2.06671962577103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343840651E-03 2.17651147351271E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123164011E-03 2.23681621027621E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762897496E-03 2.25047700750366E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557917024E-04 2.23911227450568E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454537644E-03 2.31619526841969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289156783E-03 2.39332628007075E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142204379E-03 2.46478012464754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438142654E-03 2.52475933144517E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191396729E-03 2.56860713643225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753908284E-03 2.59379160397445E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044298847E-02 2.60046741362487E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657793561E-03 2.59154640793845E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745552110E-03 2.57230689744725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619430481E-03 2.57617678082103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960323297E-03 2.60704657072955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524088848E-03 2.55368004866346E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289833673E-03 2.53090267956823E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015721705E-03 2.55686897823141E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888761838E-03 2.59998586190743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407415463E-03 2.65617340743756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801265541881E-03 2.71885907823437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728546911964E-03 2.78009792743560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533161695003E-03 2.83193125835560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436783640334E-03 2.86771962552012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260395685178E-03 2.88321602464444E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588736356239E-03 2.87721816536720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958545223991E-03 2.85172238290814E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891550008831E-03 2.90854929940381E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216135263882E-03 2.93304374436110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645864282605E-03 2.88331760371237E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907587794043E-03 2.77469260149385E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776873390536E-03 2.64912183617287E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175891840171E-03 2.63954764388291E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063154231068E-03 2.64744430596754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283027737359E-03 2.67027733920110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958396346900E-03 2.75143061474967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517513098651E-03 2.84716527327018E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141270983096E-03 2.92480128291437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356461821936E-03 2.97120288151901E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691600902551E-03 2.97966804344267E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712340670312E-03 3.00381237938477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280737694798E-03 3.08036411819215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430727535916E-03 3.09182671069864E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713137597645E-03 3.03934310027989E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148618581440E-03 2.93659606044134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983309994835E-03 2.80689805753235E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262908029438E-03 2.68543416568999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865392657752E-03 2.73031558404110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138145567538E-03 2.80043602330375E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770809530586E-03 2.88238464268000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102502267938E-03 2.96047703775097E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794593306016E-03 3.01993446707145E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747823510146E-03 3.04982329923301E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311477978074E-03 3.04517980952895E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185289229759E-03 3.11258929633955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878938747761E-03 3.17297132779809E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076191478564E-03 3.17471656388760E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655868503524E-03 3.11938175605144E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371970540543E-03 3.01971788867662E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244073804417E-03 2.89700828093700E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550667496152E-03 2.77676422525420E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987160392805E-03 2.78119166951153E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114876456484E-03 2.84461356555620E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774884152490E-03 2.91823911939352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760236842736E-03 2.98773885252150E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805666712773E-03 3.03980211306567E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908494164335E-03 3.06473925782712E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143940447236E-03 3.06396596594010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449177587565E-03 3.16208626061732E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259143936543E-03 3.21610125512188E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301288451245E-03 3.21680816914900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212422196007E-03 3.16554822315725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860139912976E-03 3.07378664558318E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293297477749E-03 2.96071720766658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105745081334E-03 2.84938997898950E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705713557037E-03 2.80618860570211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -5.54076191478564E-03 3.17471656388760E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655868503524E-03 3.11938175605144E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371970540543E-03 3.01971788867662E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244073804417E-03 2.89700828093700E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550667496152E-03 2.77676422525420E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987160392805E-03 2.78119166951153E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114876456484E-03 2.84461356555620E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774884152490E-03 2.91823911939352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760236842736E-03 2.98773885252150E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805666712773E-03 3.03980211306567E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908494164335E-03 3.06473925782712E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143940447236E-03 3.06396596594010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449177587565E-03 3.16208626061732E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259143936543E-03 3.21610125512188E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301288451245E-03 3.21680816914900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212422196007E-03 3.16554822315725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860139912976E-03 3.07378664558318E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293297477749E-03 2.96071720766658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105745081334E-03 2.84938997898950E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705713557037E-03 2.80618860570211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 2.52164841089059E-03 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.14996031930615E-19 4.55602391454956E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 19 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.54109884176290E-19 3.06460132252597E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 18 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.90482188684232E-19 2.53827379675123E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 17 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.25530282783087E-18 2.49196806146987E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 16 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.01965826190473E-17 2.40581257912840E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 15 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.73607872869241E-17 2.29461910071079E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 14 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.43505031676666E-17 2.18272769315380E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 13 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.06659808223947E-17 2.06721187396453E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 12 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.55923244436257E-17 1.99650312209248E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 11 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.88262962362426E-17 1.95085279672056E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 10 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.01210655054596E-17 1.90253771814268E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 9 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.05025744388589E-17 1.84856792658970E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 8 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.10666983817302E-17 1.78681570331810E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 7 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.19848820965539E-17 1.71646413340752E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 6 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.29742165789469E-17 1.72332671836890E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 5 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.33833334924708E-17 1.74184516003153E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 4 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.33502992075278E-17 1.74692440844460E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.36300318383586E-17 1.74365305703718E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.42618787123409E-17 1.73728010889199E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -8.02517513098651E-03 2.84716527327018E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141270983096E-03 2.92480128291437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356461821936E-03 2.97120288151901E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691600902551E-03 2.97966804344267E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712340670312E-03 3.00381237938477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280737694798E-03 3.08036411819215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430727535916E-03 3.09182671069864E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713137597645E-03 3.03934310027989E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148618581440E-03 2.93659606044134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983309994835E-03 2.80689805753235E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262908029438E-03 2.68543416568999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865392657752E-03 2.73031558404110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138145567538E-03 2.80043602330375E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770809530586E-03 2.88238464268000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102502267938E-03 2.96047703775097E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794593306016E-03 3.01993446707145E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747823510146E-03 3.04982329923301E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311477978074E-03 3.04517980952895E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185289229759E-03 3.11258929633955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878938747761E-03 3.17297132779809E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.50868226285176E-17 1.73223829185208E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.57406261846795E-17 1.73135083856888E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 19 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.64176172677725E-17 1.73537373472916E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 18 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.69336720908872E-17 1.74295616307229E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 17 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.74075870248759E-17 1.75101786022823E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 16 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.76591558102105E-17 1.75546005719641E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 15 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.76388270194764E-17 1.75206263712355E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 14 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.78539733880790E-17 1.73738640364176E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 13 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.82537729391830E-17 1.70950204105577E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 12 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.87196410601728E-17 1.66840525379869E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 11 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.88500841340500E-17 1.61604246535977E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 10 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.89313992969864E-17 1.55594986820966E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 9 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.89127645721468E-17 1.49258469993602E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 8 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.91135113806461E-17 1.43048642116990E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 7 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.93608450012444E-17 1.37343587930667E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 6 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.97996080679221E-17 1.32377734003096E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 5 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.02036427837624E-17 1.28203291864983E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 4 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.04713051950947E-17 1.24687907671378E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.08253649670470E-17 1.21548263550247E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.08050361763129E-17 1.18412349105439E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.75595289833673E-03 2.53090267956823E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015721705E-03 2.55686897823141E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888761838E-03 2.59998586190743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407415463E-03 2.65617340743756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801265541881E-03 2.71885907823437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728546911964E-03 2.78009792743560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533161695003E-03 2.83193125835560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436783640334E-03 2.86771962552012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260395685178E-03 2.88321602464444E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588736356239E-03 2.87721816536720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958545223991E-03 2.85172238290814E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891550008831E-03 2.90854929940381E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216135263882E-03 2.93304374436110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645864282605E-03 2.88331760371237E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907587794043E-03 2.77469260149385E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776873390536E-03 2.64912183617287E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175891840171E-03 2.63954764388291E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063154231068E-03 2.64744430596754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283027737359E-03 2.67027733920110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958396346900E-03 2.75143061474967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.07508260676887E-17 1.14897655604046E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.09761368316583E-17 1.10689680582737E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 19 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.12082238592060E-17 1.05605381886955E-04 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 18 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.13369728671886E-17 9.96294804098703E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 17 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.16114115420990E-17 9.32667124209320E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 16 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.17164436275586E-17 8.94338715013543E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 15 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.17367724182927E-17 8.54283308062512E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 14 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.17621834067103E-17 8.13403994431209E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 13 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.18646743933281E-17 7.72656594805739E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 12 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.19976585660470E-17 7.32883917623469E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 11 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.22060286710715E-17 6.94674566552061E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 10 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.23356247120015E-17 6.58272856527534E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 9 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.23618827333663E-17 6.23556667591930E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 8 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.23178370201091E-17 5.90087234248781E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 7 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.24110106443071E-17 5.63137173978297E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 6 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.25126545979776E-17 5.53686671350278E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 5 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.26126044857536E-17 5.38473707612737E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 4 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.26922255827955E-17 5.33672343665069E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.27413534937363E-17 5.29659682155219E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.28785728311915E-17 5.25197811739386E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192718E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268464217E-03 1.93938684114083E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209343237E-03 2.06671962577103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343840651E-03 2.17651147351271E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123164011E-03 2.23681621027621E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762897496E-03 2.25047700750366E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557917024E-04 2.23911227450568E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454537644E-03 2.31619526841969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289156783E-03 2.39332628007075E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142204379E-03 2.46478012464754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438142654E-03 2.52475933144517E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191396729E-03 2.56860713643225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753908284E-03 2.59379160397445E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044298847E-02 2.60046741362487E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657793561E-03 2.59154640793845E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745552110E-03 2.57230689744725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619430481E-03 2.57617678082103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960323297E-03 2.60704657072955E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524088848E-03 2.55368004866346E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.28989016219256E-17 5.19886624984199E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.28514677768793E-17 5.13277532563146E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 19 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.29751345871785E-17 5.04982661264521E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 18 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.30335798605390E-17 4.94769126139256E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 17 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.30856723867951E-17 4.82619311042096E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 16 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.32292444713547E-17 4.68745456309804E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 15 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.32224682077767E-17 4.53556663786584E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 14 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.31885868898865E-17 4.37586364545043E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 13 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.32360207349328E-17 4.21396083911369E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 12 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.32343266690383E-17 4.05475430893416E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 11 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.32580435915614E-17 3.95355291468131E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 10 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.33503701828121E-17 3.99134148424190E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 9 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.33732400723880E-17 4.00813561086844E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 8 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.34537082023771E-17 4.00476255334718E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 7 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.34460849058518E-17 3.98362685899269E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 6 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.35007185309497E-17 3.94827113689190E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 5 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.35287235577683E-17 3.90274819115821E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 4 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.35662312354639E-17 3.85092851683874E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.36057853579950E-17 3.79586011575795E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.36331733080766E-17 3.73928365768177E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470257E-03 4.29236468104834E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539776E-03 6.43184796144655E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916740E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517852E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739476E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118113690E-03 1.22456378128442E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879417253E-03 1.44777510270361E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202872280E-03 1.58982062902971E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828108510E-03 1.64357697426163E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875169907E-04 1.61756159398062E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729206428350E-05 1.53363856597825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056700414E-04 1.42794064564248E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816398006E-03 1.49223780561561E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898756444E-03 1.56210440474790E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888982742E-03 1.63424213142116E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917056604E-03 1.70505819058161E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.37037946800540E-17 3.68138902052345E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 20 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.36142209458818E-17 3.62087101927981E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 19 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.36349732530896E-17 3.55529283038728E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 18 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.36887598452402E-17 3.48169729263398E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 17 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.37065475371325E-17 3.39733834888860E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 16 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.37374642397073E-17 3.30036593455788E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 15 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.37294174267084E-17 3.19030805578196E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 14 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.37610752831120E-17 3.06825187608301E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 13 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.05587613468987E-17 2.93670701012596E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 12 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.06112773896285E-17 2.79920623045062E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 11 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.06542643117017E-17 2.76910302598275E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 10 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.06775577177512E-17 2.73985324371041E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 9 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.07364265075853E-17 2.65229602076433E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 8 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.07067803544314E-17 2.51497456661844E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 7 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.07516731006359E-17 2.34496904578328E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 6 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.58171767872876E-17 2.16445896165897E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 5 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.08293968076010E-17 1.99634424222427E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 4 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.08515520131277E-17 1.96407706982694E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.08983505834635E-17 1.89947600462502E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.22577674885223E-17 1.77343215480130E-05 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) grdchk reference fc: fcref = 4.73809587569147E-02 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1 25 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 1 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 1 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353661E-03 2.18766023591547E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470118E-03 4.29236467489117E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539434E-03 6.43184794955315E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273337E-02 8.17951761612620E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390007E-02 9.31105227737162E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438158E-02 9.89364856869086E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118113725E-03 1.22456378106178E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879418068E-03 1.44777510269918E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202874201E-03 1.58982062947534E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828111666E-03 1.64357697541166E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875210748E-04 1.61756159607140E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729206029144E-05 1.53363856918733E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056719274E-04 1.42794064483551E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816394568E-03 1.49223780427631E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898743160E-03 1.56210440285115E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888953854E-03 1.63424212900136E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917005358E-03 1.70505818772880E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899812800E-02 1.77167127349018E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064662576E-02 1.83257529861809E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482895383E-02 1.88791211928007E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268251282E-03 1.93938683790092E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209074426E-03 2.06671963530632E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343511594E-03 2.17651148376969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199122770996E-03 2.23681622160621E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762436936E-03 2.25047702025794E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637552594663E-04 2.23911227109924E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911453928351E-03 2.31619526455346E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886288463202E-03 2.39332627560797E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067141417059E-03 2.46478011950501E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913437249877E-03 2.52475932560675E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342190384809E-03 2.56860712995025E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059752762199E-03 2.59379159695870E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044169270E-02 2.60046740622201E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069656333056E-03 2.59154640030541E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505743913077E-03 2.57230688972413E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655617600990E-03 2.57617678614289E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666958293501E-03 2.60704657565780E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995521850773E-03 2.55368005309173E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595287380623E-03 2.53090267194900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134013047368E-03 2.55686897050802E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547885859274E-03 2.59998585397635E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766404276141E-03 2.65617339920652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801262154968E-03 2.71885906964106E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728543264002E-03 2.78009791845916E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533157770044E-03 2.83193124901884E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436779420536E-03 2.86771961588277E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260391151732E-03 2.88321601478918E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588731490502E-03 2.87721815538183E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958540008565E-03 2.85172237286793E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891544428428E-03 2.90854930502966E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216129305809E-03 2.93304374942347E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645857936749E-03 2.88331760809225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907581052395E-03 2.77469260519570E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776866246328E-03 2.64912182597155E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175884286808E-03 2.63954763352600E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063146261047E-03 2.64744429542210E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283019341413E-03 2.67027732846092E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958387513513E-03 2.75143054651374E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517503814049E-03 2.84716520454137E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141261231733E-03 2.92480121322807E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356451587346E-03 2.97120281033453E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691590168452E-03 2.97966797026566E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712329421679E-03 3.00381238341767E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280725918749E-03 3.08036412163273E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430715222214E-03 3.09182671335293E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713124738710E-03 3.03934310207188E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148605171881E-03 2.93659606142843E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983296030604E-03 2.80689805789310E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262893506755E-03 2.68543408135165E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865377572039E-03 2.73031549979249E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138129912581E-03 2.80043593919768E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770793298088E-03 2.88238455849332E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102485447561E-03 2.96047695302616E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794575885921E-03 3.01993438120722E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747805477908E-03 3.04982321160556E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311459321804E-03 3.04517971961920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185269939196E-03 3.11258929644988E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878918815121E-03 3.17297132696759E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076170898948E-03 3.17471656193034E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655847274825E-03 3.11938175292685E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371948662821E-03 3.01971788449929E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244051278893E-03 2.89700827595524E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550644323993E-03 2.77676421980118E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987136573959E-03 2.78119156868093E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114851988785E-03 2.84461346509738E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774859031224E-03 2.91823901906956E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760211060765E-03 2.98773875185460E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805640261209E-03 3.03980201143308E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908467033618E-03 3.06473915458494E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143912628442E-03 3.06396596110158E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449149073651E-03 3.16208625498570E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259114723303E-03 3.21610124836292E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301258537782E-03 3.21680816104883E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212391584602E-03 3.16554821366410E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860108608375E-03 3.07378663481750E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293265486006E-03 2.96071719589743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105712408411E-03 2.84938996658170E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705680207439E-03 2.80618848943838E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809593230966D-01 +(PID.TID 0000.0001) local fc = 0.473809593230966D-01 +(PID.TID 0000.0001) global fc = 0.473809593230966D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809593230966E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353680E-03 2.18766023593342E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470398E-03 4.29236468720546E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540120E-03 6.43184797334014E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273435E-02 8.17951764220850E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390113E-02 9.31105229298559E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438237E-02 9.89364856609870E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118113658E-03 1.22456378150706E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879416437E-03 1.44777510270805E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202870355E-03 1.58982062858407E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828105348E-03 1.64357697311160E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875128996E-04 1.61756159188984E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729206828158E-05 1.53363856276915E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056681486E-04 1.42794064644945E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816401438E-03 1.49223780695491E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898769722E-03 1.56210440664466E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889011626E-03 1.63424213384095E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917107843E-03 1.70505819343441E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899828991E-02 1.77167127980026E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064686201E-02 1.83257530523625E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482927857E-02 1.88791212593029E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268677137E-03 1.93938684438075E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209612035E-03 2.06671961623577E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344169693E-03 2.17651146325572E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123557014E-03 2.23681619894623E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763358044E-03 2.25047699474939E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637563239278E-04 2.23911227791211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911455146927E-03 2.31619527228591E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289850354E-03 2.39332628453352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142991688E-03 2.46478012979007E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913439035421E-03 2.52475933728357E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342192408638E-03 2.56860714291424E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059755054358E-03 2.59379161099019E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044428421E-02 2.60046742102774E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069659254047E-03 2.59154641557146E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505747191126E-03 2.57230690517033E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655621259953E-03 2.57617677549918E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666962353073E-03 2.60704656580131E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995526326902E-03 2.55368004423517E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595292286703E-03 2.53090268718744E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134018396020E-03 2.55686898595480E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547891664381E-03 2.59998586983850E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766410554764E-03 2.65617341566859E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801268928774E-03 2.71885908682766E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728550559908E-03 2.78009793641203E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533165619942E-03 2.83193126769237E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436787860114E-03 2.86771963515744E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260400218604E-03 2.88321603449969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588741221959E-03 2.87721817535254E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958550439403E-03 2.85172239294834E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891555589218E-03 2.90854929377795E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216141221939E-03 2.93304373929873E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645870628445E-03 2.88331759933249E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907594535679E-03 2.77469259779198E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776880534732E-03 2.64912184637419E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175899393526E-03 2.63954765423981E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063162201080E-03 2.64744431651298E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283036133295E-03 2.67027734994129E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958405180278E-03 2.75143068298560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517522383241E-03 2.84716534199899E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141280734448E-03 2.92480135260067E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356472056509E-03 2.97120295270348E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691611636638E-03 2.97966811661967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712351918934E-03 3.00381237535185E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280749470834E-03 3.08036411475156E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430739849606E-03 3.09182670804432E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713150456570E-03 3.03934309848789E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148631990985E-03 2.93659605945424E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983323959053E-03 2.80689805717159E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262922552109E-03 2.68543425002833E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865407743452E-03 2.73031566828973E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138161222482E-03 2.80043610740980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770825763072E-03 2.88238472686666E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102519088303E-03 2.96047712247578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794610726098E-03 3.01993455293566E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747841542371E-03 3.04982338686044E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311496634328E-03 3.04517989943871E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185308520301E-03 3.11258929622923E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878958680379E-03 3.17297132862858E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076212058153E-03 3.17471656584482E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655889732197E-03 3.11938175917601E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371992418241E-03 3.01971789285393E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244096329919E-03 2.89700828591875E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550690668287E-03 2.77676423070720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987184211625E-03 2.78119177034212E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114900924159E-03 2.84461366601500E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774909273732E-03 2.91823921971747E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760262624682E-03 2.98773895318840E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805693164312E-03 3.03980221469827E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908521295022E-03 3.06473936106930E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143968266003E-03 3.06396597077862E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449206101455E-03 3.16208626624891E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259173149758E-03 3.21610126188083E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301318364684E-03 3.21680817724915E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212452807389E-03 3.16554823265036E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860171217552E-03 3.07378665634884E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293329469466E-03 2.96071721943572E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105777754230E-03 2.84938999139727E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705746906610E-03 2.80618872196583E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809581907328D-01 +(PID.TID 0000.0001) local fc = 0.473809581907328D-01 +(PID.TID 0000.0001) global fc = 0.473809581907328D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809581907328E-02 +grad-res ------------------------------- + grad-res 0 1 1 1 1 1 1 1 4.73809587569E-02 4.73809593231E-02 4.73809581907E-02 + grad-res 0 1 1 1 0 1 1 1 5.66182257084E-06 5.66181879158E-06 6.67498192608E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.66182257083656E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.66181879158023E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 4 25 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 + ph-grd -->hit<-- 4 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353673E-03 2.18766023594882E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470975E-03 4.29236468120724E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540669E-03 6.43184796173354E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273307E-02 8.17951763010459E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389536E-02 9.31105228758272E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562436922E-02 9.89364856920670E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118090872E-03 1.22456378186783E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879383145E-03 1.44777510334616E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202827591E-03 1.58982062959710E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828056043E-03 1.64357697457628E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874613022E-04 1.61756159384449E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729211771082E-05 1.53363856520261E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056241161E-04 1.42794063208168E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816363327E-03 1.49223779028202E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898734205E-03 1.56210438853535E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888971008E-03 1.63424211534204E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917050399E-03 1.70505817559913E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899820106E-02 1.77167126350278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064672625E-02 1.83257529100689E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482908168E-02 1.88791211384383E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268408398E-03 1.93938683402162E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209265852E-03 2.06671962014807E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343746350E-03 2.17651146776332E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123062272E-03 2.23681620422010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762801638E-03 2.25047700090561E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557171565E-04 2.23911226023402E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454499773E-03 2.31619525057628E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289168680E-03 2.39332625889241E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142275076E-03 2.46478010082049E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438276119E-03 2.52475930598473E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191591878E-03 2.56860711050726E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059754160043E-03 2.59379157870791E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044328971E-02 2.60046738990689E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069658137564E-03 2.59154638628428E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745935031E-03 2.57230687792503E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619853402E-03 2.57617678823089E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960793393E-03 2.60704657821863E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524619442E-03 2.55368005623043E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595290443135E-03 2.53090266210134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134016431383E-03 2.55686895908830E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547889593420E-03 2.59998584054381E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766408388247E-03 2.65617338366658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801266670504E-03 2.71885905223593E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728548205034E-03 2.78009789969743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533163154890E-03 2.83193122956107E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436785264185E-03 2.86771959640685E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260397466948E-03 2.88321599586262E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588738289340E-03 2.87721813736476E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958547304023E-03 2.85172235586407E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891552235867E-03 2.90854931139270E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216137643851E-03 2.93304375657952E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645866827456E-03 2.88331761615463E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907590520707E-03 2.77469261418104E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776876318853E-03 2.64912180937074E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175894990203E-03 2.63954761605396E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063157620335E-03 2.64744427711023E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283031378548E-03 2.67027730952189E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958400246510E-03 2.75143066683086E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517517256830E-03 2.84716532501704E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141275394726E-03 2.92480133476294E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356466478710E-03 2.97120293399570E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691605795659E-03 2.97966809704796E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712345793143E-03 3.00381239580816E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280743045153E-03 3.08036413490128E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430733117251E-03 3.09182672769894E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713143419104E-03 3.03934311759826E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148624656649E-03 2.93659607812134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983316339737E-03 2.80689807562556E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262914659573E-03 2.68543422549717E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865399585560E-03 2.73031564307389E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138152800234E-03 2.80043608144604E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770817069051E-03 2.88238470008203E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102510106861E-03 2.96047709480203E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794601435258E-03 3.01993452432342E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747831917081E-03 3.04982335729071E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311486650405E-03 3.04517986892891E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185298158272E-03 3.11258931821408E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878947928423E-03 3.17297134992250E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076200913549E-03 3.17471658627480E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655878200950E-03 3.11938177874004E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371980512938E-03 3.01971791172386E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244084066240E-03 2.89700830440802E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550678060849E-03 2.77676424920951E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987171270001E-03 2.78119173488310E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114887649876E-03 2.84461363001453E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774895658886E-03 2.91823918309629E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760248652446E-03 2.98773891586115E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805678811287E-03 3.03980217658980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908506534979E-03 3.06473932212884E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143953074275E-03 3.06396599312103E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449190459126E-03 3.16208628805000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259157046801E-03 3.21610128277769E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301301801403E-03 3.21680819702745E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212435793881E-03 3.16554825128508E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860153771240E-03 3.07378667400832E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293311611202E-03 2.96071723644805E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105759503701E-03 2.84939000818557E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705728277957E-03 2.80618867741281E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809587541176D-01 +(PID.TID 0000.0001) local fc = 0.473809587541176D-01 +(PID.TID 0000.0001) global fc = 0.473809587541176D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587541176E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353669E-03 2.18766023597582E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564469540E-03 4.29236468088942E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903538886E-03 6.43184796115966E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273465E-02 8.17951762822991E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390584E-02 9.31105228277474E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562439472E-02 9.89364856558309E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118136512E-03 1.22456378070102E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879451362E-03 1.44777510206107E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202916968E-03 1.58982062846232E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828160977E-03 1.64357697394699E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875726786E-04 1.61756159411675E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729201085629E-05 1.53363856675388E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103057159660E-04 1.42794065920328E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816432684E-03 1.49223782094920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898778682E-03 1.56210442096046E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888994475E-03 1.63424214750027E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917062808E-03 1.70505820556408E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899821685E-02 1.77167128978767E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064676153E-02 1.83257531284745E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482915072E-02 1.88791213136652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268520024E-03 1.93938684826005E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209420610E-03 2.06671963139401E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343934941E-03 2.17651147926209E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123265741E-03 2.23681621633233E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762993343E-03 2.25047701410172E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637558662376E-04 2.23911228877733E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454575505E-03 2.31619528626309E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289144876E-03 2.39332630124907E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142133670E-03 2.46478014847458E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438009178E-03 2.52475935690558E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191201570E-03 2.56860716235725E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753656512E-03 2.59379162924100E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044268720E-02 2.60046743734285E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657449537E-03 2.59154642959258E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745169167E-03 2.57230691696942E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619007536E-03 2.57617677341118E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666959853174E-03 2.60704656324048E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995523558225E-03 2.55368004109646E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289224183E-03 2.53090269703510E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015011996E-03 2.55686899737451E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547887930227E-03 2.59998588327104E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766406442651E-03 2.65617343120851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801264413229E-03 2.71885910423278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728545618866E-03 2.78009795517374E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533160235086E-03 2.83193128715013E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436782016451E-03 2.86771965463336E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260393903372E-03 2.88321605342624E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588734423106E-03 2.87721819336962E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958543143927E-03 2.85172240995219E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891547781756E-03 2.90854928741490E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216132883878E-03 2.93304373214267E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645861737719E-03 2.88331759127010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907585067345E-03 2.77469258880665E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776870462186E-03 2.64912186297499E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175888690108E-03 2.63954767171185E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063150841770E-03 2.64744433482485E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283024096138E-03 2.67027736888030E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958392447259E-03 2.75143056266848E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517508940439E-03 2.84716522152332E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141266571434E-03 2.92480123106578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356457165126E-03 2.97120282904231E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691596009410E-03 2.97966798983737E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712335547448E-03 3.00381236296137E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280732344407E-03 3.08036410148299E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430721954542E-03 3.09182669369830E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713131776150E-03 3.03934308296151E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148612506190E-03 2.93659604276132E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983303649891E-03 2.80689803943912E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262901399262E-03 2.68543410588279E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865385729903E-03 2.73031552500831E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138138334801E-03 2.80043596516143E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770801992079E-03 2.88238458527793E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102494428975E-03 2.96047698069991E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794585176733E-03 3.01993440981946E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747815103176E-03 3.04982324117529E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311469305707E-03 3.04517975012899E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185280301210E-03 3.11258927446502E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878929567060E-03 3.17297130567366E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076182043535E-03 3.17471654150035E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655858806053E-03 3.11938173336281E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371960568105E-03 3.01971786562935E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244063542551E-03 2.89700825746596E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550656931410E-03 2.77676420129887E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987149515564E-03 2.78119160413994E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114865263047E-03 2.84461350109785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774872646050E-03 2.91823905569073E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760225032982E-03 2.98773878918184E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805654614214E-03 3.03980204954153E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908481793645E-03 3.06473919352538E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143927820154E-03 3.06396593875916E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449164715965E-03 3.16208623318461E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259130826247E-03 3.21610122746605E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301275101049E-03 3.21680814127053E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212408598096E-03 3.16554819502939E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860126054673E-03 3.07378661715804E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293283344257E-03 2.96071717888509E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105730658927E-03 2.84938994979340E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705698836078E-03 2.80618853399138E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809587597119D-01 +(PID.TID 0000.0001) local fc = 0.473809587597119D-01 +(PID.TID 0000.0001) global fc = 0.473809587597119D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587597119E-02 +grad-res ------------------------------- + grad-res 0 2 4 1 1 1 1 1 4.73809587569E-02 4.73809587541E-02 4.73809587597E-02 + grad-res 0 2 2 4 0 1 1 1 -2.79733865213E-08 -2.79711670492E-08 7.93422725841E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.79733865212818E-08 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.79711670492233E-08 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 7 25 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 4 3 + ph-grd -->hit<-- 2 2 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 2 2 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353672E-03 2.18766023596339E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470495E-03 4.29236468024769E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540541E-03 6.43184796286816E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273512E-02 8.17951763426008E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390179E-02 9.31105229292682E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438192E-02 9.89364856770897E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118110696E-03 1.22456378174853E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879409277E-03 1.44777510364875E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202857221E-03 1.58982063059868E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828084445E-03 1.64357697653893E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874822964E-04 1.61756159696462E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729211100024E-05 1.53363856956802E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056098451E-04 1.42794064715167E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816322327E-03 1.49223780757672E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898662145E-03 1.56210440714612E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888864990E-03 1.63424213419180E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394916908475E-03 1.70505819361308E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899802135E-02 1.77167127979031E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064650578E-02 1.83257530502140E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482881531E-02 1.88791212548934E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268087937E-03 1.93938684368396E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700208879702E-03 2.06671962668403E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343279711E-03 2.17651147479477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199122497955E-03 2.23681621217742E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762121311E-03 2.25047701016920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637549028161E-04 2.23911227524959E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911453535161E-03 2.31619526910984E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886288040349E-03 2.39332628083499E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067140972877E-03 2.46478012557895E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913436793003E-03 2.52475933258592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342189923021E-03 2.56860713776661E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059752301465E-03 2.59379160543215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044123665E-02 2.60046741509391E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069655882941E-03 2.59154640928469E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505743468326E-03 2.57230689853738E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655617160163E-03 2.57617677939449E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666957855516E-03 2.60704656903803E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995521416158E-03 2.55368004681549E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595286952539E-03 2.53090267895892E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134012632201E-03 2.55686897725433E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547885466686E-03 2.59998586065414E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766403918567E-03 2.65617340600641E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801261846659E-03 2.71885907671249E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728543019809E-03 2.78009792588470E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533157604174E-03 2.83193125680394E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436779345525E-03 2.86771962396179E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260391177837E-03 2.88321602304561E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588731625618E-03 2.87721816367728E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958540258677E-03 2.85172238107346E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891544798473E-03 2.90854929466652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216129800780E-03 2.93304373930578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645858562773E-03 2.88331759838871E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907581817577E-03 2.77469259593639E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776867161151E-03 2.64912183336821E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175885364024E-03 2.63954764095825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063147515081E-03 2.64744430295532E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283020787381E-03 2.67027733611769E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958389166098E-03 2.75143059969389E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517505686448E-03 2.84716525795706E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141263334913E-03 2.92480126739089E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356453929780E-03 2.97120286582923E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691592756371E-03 2.97966802761854E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712332259832E-03 3.00381237077362E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280729011476E-03 3.08036410936946E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430718574632E-03 3.09182670171180E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713128357739E-03 3.03934309115730E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148609066893E-03 2.93659605118576E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983300213543E-03 2.80689804811976E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262897991683E-03 2.68543414837372E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865382374190E-03 2.73031556639488E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138135047101E-03 2.80043600534938E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770798778709E-03 2.88238462446372E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102491285495E-03 2.96047701933659E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794582089185E-03 3.01993444852994E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747812051255E-03 3.04982328063049E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311466267267E-03 3.04517979091539E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185277257171E-03 3.11258928416096E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878926505765E-03 3.17297131549521E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076178963641E-03 3.17471655152775E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655855717386E-03 3.11938174367785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371957490249E-03 3.01971787630131E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244060501468E-03 2.89700826853982E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550653954718E-03 2.77676421278794E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987146627438E-03 2.78119165004013E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114862479756E-03 2.84461354583893E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774869973023E-03 2.91823909946225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760222464029E-03 2.98773883242839E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805652133055E-03 3.03980209287348E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908479377483E-03 3.06473923759765E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143925444579E-03 3.06396595180034E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449162360218E-03 3.16208624632647E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259128477802E-03 3.21610124075388E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301272758587E-03 3.21680815476969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212406272264E-03 3.16554820881329E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860123766457E-03 3.07378663129524E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293281121296E-03 2.96071719342760E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105728530462E-03 2.84938996476851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705696827565E-03 2.80618858507277E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809588673605D-01 +(PID.TID 0000.0001) local fc = 0.473809588673605D-01 +(PID.TID 0000.0001) global fc = 0.473809588673605D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809588673605E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023597592E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470021E-03 4.29236468184895E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539014E-03 6.43184796002502E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273260E-02 8.17951762407450E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389941E-02 9.31105227743035E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438202E-02 9.89364856708065E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118116684E-03 1.22456378082030E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879425226E-03 1.44777510175849E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202887331E-03 1.58982062746073E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828132566E-03 1.64357697198432E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875516759E-04 1.61756159099661E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729201757542E-05 1.53363856238847E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103057302277E-04 1.42794064413329E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816473675E-03 1.49223780365449E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898850733E-03 1.56210440234969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889100485E-03 1.63424212865050E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917204724E-03 1.70505818755012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899839656E-02 1.77167127350012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064698199E-02 1.83257529883294E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482941708E-02 1.88791211972101E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268840475E-03 1.93938683859771E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209806755E-03 2.06671962485803E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344401574E-03 2.17651147223062E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123830051E-03 2.23681620837501E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763673664E-03 2.25047700483812E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637566805706E-04 2.23911227376175E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911455540109E-03 2.31619526772953E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886290273199E-03 2.39332627930649E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067143435863E-03 2.46478012371611E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913439492287E-03 2.52475933030441E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342192870418E-03 2.56860713509790E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059755515082E-03 2.59379160251675E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044474026E-02 2.60046741215584E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069659704153E-03 2.59154640659219E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505747635866E-03 2.57230689635708E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655621700769E-03 2.57617678224758E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666962791046E-03 2.60704657242108E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995526761502E-03 2.55368005051139E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595292714772E-03 2.53090268017752E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134018811171E-03 2.55686897920848E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547892056953E-03 2.59998586316070E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766410912322E-03 2.65617340886868E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801269237065E-03 2.71885907975622E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728550804080E-03 2.78009792898648E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533165785790E-03 2.83193125990727E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436787935100E-03 2.86771962707842E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260400192469E-03 2.88321602624327E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588741086810E-03 2.87721816705709E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958550189257E-03 2.85172238474278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891555219135E-03 2.90854930414107E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216140726931E-03 2.93304374941641E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645870002382E-03 2.88331760903601E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907593770457E-03 2.77469260705128E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776879619870E-03 2.64912183897751E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175898316269E-03 2.63954764680754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063160947006E-03 2.64744430897975E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283034687287E-03 2.67027734228449E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958403527652E-03 2.75143062980544E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517520510801E-03 2.84716528858327E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141278631229E-03 2.92480129843783E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356469714040E-03 2.97120289720878E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691609048681E-03 2.97966805926677E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712349080744E-03 3.00381238799589E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280746378067E-03 3.08036412701480E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430736497145E-03 3.09182671968543E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713146837498E-03 3.03934310940245E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148628095929E-03 2.93659606969687E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983319776068E-03 2.80689806694492E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262918067135E-03 2.68543418300624E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865402941254E-03 2.73031560168731E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138156087915E-03 2.80043604125808E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770820282403E-03 2.88238466089625E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102513250323E-03 2.96047705616533E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794604522788E-03 3.01993448561293E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747834968981E-03 3.04982331783550E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311489688826E-03 3.04517982814250E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185301202293E-03 3.11258930851814E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878950989701E-03 3.17297134010095E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076203993424E-03 3.17471657624739E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655881289597E-03 3.11938176842501E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371983590771E-03 3.01971790105190E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244087107301E-03 2.89700829333416E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550681037518E-03 2.77676423772043E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987174158102E-03 2.78119168898290E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114890433144E-03 2.84461358527343E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774898331890E-03 2.91823913932477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760251221376E-03 2.98773887261459E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805681292423E-03 3.03980213325786E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908508951118E-03 3.06473927805656E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143955449825E-03 3.06396598007982E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449192814849E-03 3.16208627490813E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259159395219E-03 3.21610126948984E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301304143839E-03 3.21680818352830E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212438119687E-03 3.16554823750117E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860156059430E-03 3.07378665987109E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293313834137E-03 2.96071722190553E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105761632138E-03 2.84938999321045E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705730286442E-03 2.80618862633141E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809586464689D-01 +(PID.TID 0000.0001) local fc = 0.473809586464689D-01 +(PID.TID 0000.0001) global fc = 0.473809586464689D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809586464689E-02 +grad-res ------------------------------- + grad-res 0 3 2 2 1 1 1 1 4.73809587569E-02 4.73809588674E-02 4.73809586465E-02 + grad-res 0 3 3 7 0 1 1 1 1.10445640584E-06 1.10445801810E-06 -1.45977077093E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.10445640584426E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.10445801809744E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 10 25 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 7 4 + ph-grd -->hit<-- 5 2 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 5 2 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353678E-03 2.18766023593718E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470202E-03 4.29236468106464E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539888E-03 6.43184796147661E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273454E-02 8.17951762915033E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390221E-02 9.31105228506353E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438468E-02 9.89364856773729E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118117301E-03 1.22456378133149E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879421145E-03 1.44777510277567E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202875418E-03 1.58982062913091E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828109566E-03 1.64357697439572E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875145493E-04 1.61756159415148E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729207149545E-05 1.53363856619067E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056571355E-04 1.42794064560239E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816378967E-03 1.49223780508577E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898731335E-03 1.56210440360761E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888952043E-03 1.63424212961446E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917021021E-03 1.70505818813514E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899816920E-02 1.77167127367234E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064670047E-02 1.83257529861649E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482906931E-02 1.88791211919504E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268413715E-03 1.93938683788363E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209288830E-03 2.06671962700887E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343782128E-03 2.17651147490529E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123101572E-03 2.23681621182243E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762832063E-03 2.25047700920065E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557251520E-04 2.23911227388783E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454472898E-03 2.31619526810851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289097730E-03 2.39332627984867E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142155635E-03 2.46478012430222E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438109212E-03 2.52475933080787E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191383558E-03 2.56860713540743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753919988E-03 2.59379160255523E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044302907E-02 2.60046741189209E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657866488E-03 2.59154640604392E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745660376E-03 2.57230689558485E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619577055E-03 2.57617678828382E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960511569E-03 2.60704657852560E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524323109E-03 2.55368005689408E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595290119482E-03 2.53090267943622E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134016066060E-03 2.55686897864001E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547889173107E-03 2.59998586276716E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407903057E-03 2.65617340862001E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801266115735E-03 2.71885907960038E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728547581919E-03 2.78009792886302E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533162470209E-03 2.83193125976112E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436784528812E-03 2.86771962687110E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260396693615E-03 2.88321602595923E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588737490097E-03 2.87721816670434E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958546487883E-03 2.85172238434783E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891551407122E-03 2.90854931348866E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216136801382E-03 2.93304375891593E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645865965190E-03 2.88331761878715E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907589629100E-03 2.77469261712947E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776875387094E-03 2.64912183875855E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175894008701E-03 2.63954764660034E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063156582955E-03 2.64744430874296E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283030284164E-03 2.67027734197696E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958399099538E-03 2.75143062417530E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517516066655E-03 2.84716528406010E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141274174134E-03 2.92480129524293E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356465241660E-03 2.97120289532930E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691604554861E-03 2.97966805845017E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712344557952E-03 3.00381240031679E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280741820197E-03 3.08036413970030E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430731902091E-03 3.09182673282261E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713142208993E-03 3.03934312304825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148623444234E-03 2.93659608386464E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983315117345E-03 2.80689808159982E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262913421588E-03 2.68543417906676E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865398330423E-03 2.73031559772020E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138151531612E-03 2.80043603789614E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770815795933E-03 2.88238465873283E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102508842551E-03 2.96047705563278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794600195469E-03 3.01993448689119E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747830717496E-03 3.04982332080980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311485504233E-03 3.04517983241943E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185297074290E-03 3.11258932483370E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878946909917E-03 3.17297135685641E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076199958394E-03 3.17471659355858E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655877302815E-03 3.11938178636875E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371979663391E-03 3.01971791965175E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244083257316E-03 2.89700831255617E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550677287585E-03 2.77676425748016E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987170532386E-03 2.78119168828633E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114886953834E-03 2.84461358491884E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774895016054E-03 2.91823913996405E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760248078793E-03 2.98773887474307E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805678324822E-03 3.03980213711976E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908506153002E-03 3.06473928360064E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143952810724E-03 3.06396600111892E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449190322556E-03 3.16208629621323E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259157039381E-03 3.21610129118153E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301301919187E-03 3.21680820571718E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212436028263E-03 3.16554826026737E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860154111337E-03 3.07378668325029E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293312046691E-03 2.96071724588404E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105760027551E-03 2.84939001773004E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705728888498E-03 2.80618862900467E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809587747844D-01 +(PID.TID 0000.0001) local fc = 0.473809587747844D-01 +(PID.TID 0000.0001) global fc = 0.473809587747844D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587747844E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353663E-03 2.18766023593956E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470312E-03 4.29236468103203E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539667E-03 6.43184796141667E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273319E-02 8.17951762918414E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389899E-02 9.31105228529372E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562437927E-02 9.89364856705209E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118110077E-03 1.22456378123734E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879413355E-03 1.44777510263156E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202869134E-03 1.58982062892851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828107447E-03 1.64357697412754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875194254E-04 1.61756159380975E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729205707847E-05 1.53363856576581E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056829398E-04 1.42794064568257E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816417039E-03 1.49223780614545E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898781545E-03 1.56210440588819E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889013435E-03 1.63424213322785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917092180E-03 1.70505819302806E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899824871E-02 1.77167127961810E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064678730E-02 1.83257530523785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482916309E-02 1.88791212601531E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268514707E-03 1.93938684439806E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209397631E-03 2.06671962453319E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343899161E-03 2.17651147212012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123226437E-03 2.23681620873000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762962915E-03 2.25047700580667E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637558582399E-04 2.23911227512351E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454602378E-03 2.31619526873086E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289215824E-03 2.39332628029281E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142253108E-03 2.46478012499286E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438176082E-03 2.52475933208246E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191409885E-03 2.56860713745706E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753896566E-03 2.59379160539367E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044294784E-02 2.60046741535765E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657720609E-03 2.59154640983294E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745443817E-03 2.57230689930960E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619283880E-03 2.57617677335825E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960134995E-03 2.60704656293349E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995523854553E-03 2.55368004043280E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289547831E-03 2.53090267970023E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015377315E-03 2.55686897782280E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888350535E-03 2.59998586104770E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766406927835E-03 2.65617340625509E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801264967993E-03 2.71885907686833E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728546241975E-03 2.78009792600816E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533160919761E-03 2.83193125695008E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436782751821E-03 2.86771962416910E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260394676702E-03 2.88321602332964E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588735222345E-03 2.87721816403003E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958543960061E-03 2.85172238146842E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891548610497E-03 2.90854928531894E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216133726342E-03 2.93304372980624E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645862599981E-03 2.88331758863757E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907585958950E-03 2.77469258585820E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776871393941E-03 2.64912183358717E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175889671606E-03 2.63954764116545E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063151879145E-03 2.64744430319211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283025190516E-03 2.67027733642522E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958393594225E-03 2.75143060532403E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517510130608E-03 2.84716526248025E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141267792023E-03 2.92480127058578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356458402176E-03 2.97120286770872E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691597250205E-03 2.97966802843515E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712336782635E-03 3.00381235845273E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280733569361E-03 3.08036409668397E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430723169703E-03 3.09182668857464E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713132986261E-03 3.03934307751150E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148613718604E-03 2.93659603701802E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983304872284E-03 2.80689803346487E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262902637246E-03 2.68543415231320E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865386985038E-03 2.73031557036200E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138139603421E-03 2.80043600871133E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770803265195E-03 2.88238462662714E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102495693280E-03 2.96047701986914E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794586416517E-03 3.01993444725168E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747816302754E-03 3.04982327765619E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311470451873E-03 3.04517978663847E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185281385187E-03 3.11258926784541E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878930585564E-03 3.17297129873976E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076182998690E-03 3.17471653421656E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655859704186E-03 3.11938172573409E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371961417650E-03 3.01971785770147E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244064351472E-03 2.89700824931782E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550657704672E-03 2.77676419302822E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987150253176E-03 2.78119165073670E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114865959087E-03 2.84461354619353E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774873288879E-03 2.91823909882298E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760225606633E-03 2.98773883029994E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805655100676E-03 3.03980208901158E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908482175618E-03 3.06473923205359E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143928083699E-03 3.06396593076126E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449164852530E-03 3.16208622502137E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259130833658E-03 3.21610121906221E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301274983255E-03 3.21680813258081E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212408363705E-03 3.16554818604710E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860125714568E-03 3.07378660791605E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293282908758E-03 2.96071716944910E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105730135068E-03 2.84938994024893E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705698225528E-03 2.80618858239952E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809587390452D-01 +(PID.TID 0000.0001) local fc = 0.473809587390452D-01 +(PID.TID 0000.0001) global fc = 0.473809587390452D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587390452E-02 +grad-res ------------------------------- + grad-res 0 4 5 2 1 1 1 1 4.73809587569E-02 4.73809587748E-02 4.73809587390E-02 + grad-res 0 4 4 10 0 1 1 1 1.78693974296E-07 1.78695912234E-07 -1.08450110137E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.78693974295953E-07 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.78695912234073E-07 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 13 25 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 10 5 + ph-grd -->hit<-- 3 3 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 3 3 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023598622E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470255E-03 4.29236468118010E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540600E-03 6.43184796169083E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273686E-02 8.17951762949156E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390674E-02 9.31105228562482E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562439103E-02 9.89364856790333E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118123587E-03 1.22456378127350E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879423770E-03 1.44777510284960E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202869277E-03 1.58982062942229E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828088753E-03 1.64357697496713E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874734991E-04 1.61756159501793E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729213658579E-05 1.53363856730090E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103055673909E-04 1.42794064675944E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816268256E-03 1.49223780660923E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898608147E-03 1.56210440546294E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888829319E-03 1.63424213170917E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394916914896E-03 1.70505819032178E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899809694E-02 1.77167127576138E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064667786E-02 1.83257530039775E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482910801E-02 1.88791212046421E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268518983E-03 1.93938683846963E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209458098E-03 2.06671962162602E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344004833E-03 2.17651146908047E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123360333E-03 2.23681620584484E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763105108E-03 2.25047700332336E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637559896428E-04 2.23911227074215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454708607E-03 2.31619526456002E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289290407E-03 2.39332627605582E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142299427E-03 2.46478012038976E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438207615E-03 2.52475932684730E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191448648E-03 2.56860713140723E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753969970E-03 2.59379159846217E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044308451E-02 2.60046740760283E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657945862E-03 2.59154640142438E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745775734E-03 2.57230689049370E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619730599E-03 2.57617678109728E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960693819E-03 2.60704657106720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524513037E-03 2.55368004904483E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595290286686E-03 2.53090267160370E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134016174625E-03 2.55686897013351E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547889186500E-03 2.59998585367154E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407789188E-03 2.65617339903844E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801265851262E-03 2.71885906963842E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728547154987E-03 2.78009791861489E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533161881091E-03 2.83193124930013E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436783788292E-03 2.86771961624536E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260395819407E-03 2.88321601519222E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588736501923E-03 2.87721815579923E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958545402135E-03 2.85172237329383E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891550232091E-03 2.90854929953980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216135533970E-03 2.93304374459974E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645864589733E-03 2.88331760405605E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907588118551E-03 2.77469260193028E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776873706341E-03 2.64912182666518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175892119421E-03 2.63954763423717E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063154449088E-03 2.64744429608559E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283027876961E-03 2.67027732899977E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958396401231E-03 2.75143061402973E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517513072041E-03 2.84716527263134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141270889762E-03 2.92480128234220E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356461682790E-03 2.97120288099215E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691600740766E-03 2.97966804293762E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712340506488E-03 3.00381237971131E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280737542684E-03 3.08036411857791E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430727399526E-03 3.09182671116824E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713137470306E-03 3.03934310084632E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148618446951E-03 2.93659606110385E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983309830528E-03 2.80689805827698E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262907810485E-03 2.68543416528475E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865392361895E-03 2.73031558372798E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138145179293E-03 2.80043602309715E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770809044089E-03 2.88238464258258E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102501687867E-03 2.96047703775299E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794592646408E-03 3.01993446715249E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747822791343E-03 3.04982329936592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311477222401E-03 3.04517980968517E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185288456802E-03 3.11258929704668E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878937970184E-03 3.17297132854967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076190699298E-03 3.17471656470424E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655867714900E-03 3.11938175694422E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371969725564E-03 3.01971788964483E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244072939906E-03 2.89700828196844E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550666557181E-03 2.77676422632778E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987159357534E-03 2.78119166984592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114875310432E-03 2.84461356600658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774882891401E-03 2.91823911996506E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760235473446E-03 2.98773885320591E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805665251899E-03 3.03980211384290E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908492635011E-03 3.06473925866927E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143938874546E-03 3.06396596692240E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449175993534E-03 3.16208626163632E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259142335693E-03 3.21610125620431E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301286847600E-03 3.21680817031465E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212420582130E-03 3.16554822441486E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860138271261E-03 3.07378664692861E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293295783728E-03 2.96071720908330E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105743308377E-03 2.84938998045179E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705711681517E-03 2.80618860675592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809591660647D-01 +(PID.TID 0000.0001) local fc = 0.473809591660647D-01 +(PID.TID 0000.0001) global fc = 0.473809591660647D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809591660647E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023593931E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470261E-03 4.29236468091652E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903538954E-03 6.43184796120237E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273086E-02 8.17951762884290E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389446E-02 9.31105228473240E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562437292E-02 9.89364856688609E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118103793E-03 1.22456378129535E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879410732E-03 1.44777510255762E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202875276E-03 1.58982062863712E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828128258E-03 1.64357697355613E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875604734E-04 1.61756159294330E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729199198917E-05 1.53363856465559E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103057726825E-04 1.42794064452552E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816527746E-03 1.49223780462198E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898904732E-03 1.56210440403286E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889136159E-03 1.63424213113314E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917198307E-03 1.70505819084143E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899832097E-02 1.77167127752905E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064680991E-02 1.83257530345660E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482912438E-02 1.88791212474614E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268409434E-03 1.93938684381204E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209228366E-03 2.06671962991605E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343676457E-03 2.17651147794494E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199122967677E-03 2.23681621470759E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762689873E-03 2.25047701168397E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637555937508E-04 2.23911227826919E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454366670E-03 2.31619527227934E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289023148E-03 2.39332628408567E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142109319E-03 2.46478012890531E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438077682E-03 2.52475933604302E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191344797E-03 2.56860714145727E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753846586E-03 2.59379160948671E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044289241E-02 2.60046741964691E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657641243E-03 2.59154641445249E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745328468E-03 2.57230690440076E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619130344E-03 2.57617678054479E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666959952755E-03 2.60704657039190E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995523664637E-03 2.55368004828205E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289380637E-03 2.53090268753275E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015268761E-03 2.55686898632930E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888337153E-03 2.59998587014331E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766407041715E-03 2.65617341583666E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801265232476E-03 2.71885908683029E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728546668918E-03 2.78009793625630E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533161508893E-03 2.83193126741109E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436783492357E-03 2.86771963479485E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260395550926E-03 2.88321603409665E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588736210532E-03 2.87721817493516E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958545045825E-03 2.85172239252243E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891549785547E-03 2.90854929926781E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216134993774E-03 2.93304374412245E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645863975454E-03 2.88331760336869E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907587469515E-03 2.77469260105741E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776873074712E-03 2.64912184568055E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175891560904E-03 2.63954765352864E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063154013031E-03 2.64744431584949E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283027597740E-03 2.67027734940243E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958396292551E-03 2.75143061546960E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517513125241E-03 2.84716527390901E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141271076414E-03 2.92480128348653E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356461961066E-03 2.97120288204587E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691601064321E-03 2.97966804394770E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712340834124E-03 3.00381237905822E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280737846897E-03 3.08036411780636E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430727672291E-03 3.09182671022902E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713137724973E-03 3.03934309971345E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148618715913E-03 2.93659605977881E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983310159127E-03 2.80689805678772E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262908248376E-03 2.68543416609523E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865392953593E-03 2.73031558435422E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138145955767E-03 2.80043602351034E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770810017066E-03 2.88238464277740E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102502847992E-03 2.96047703774895E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794593965606E-03 3.01993446699040E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747824228933E-03 3.04982329910009E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311478733733E-03 3.04517980937272E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185290002702E-03 3.11258929563243E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878939525323E-03 3.17297132704652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076192257815E-03 3.17471656307093E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655869292130E-03 3.11938175515865E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371971355505E-03 3.01971788770840E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244074668912E-03 2.89700827990555E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550668435105E-03 2.77676422418060E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987161428059E-03 2.78119166917713E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114877602520E-03 2.84461356510578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774885413565E-03 2.91823911882199E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760238212012E-03 2.98773885183710E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805668173632E-03 3.03980211228845E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908495693639E-03 3.06473925698496E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143942019909E-03 3.06396596495778E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449179181582E-03 3.16208625959830E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259145537378E-03 3.21610125403944E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301290054877E-03 3.21680816798334E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212423809873E-03 3.16554822189960E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860141554679E-03 3.07378664423775E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293299171756E-03 2.96071720624986E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105746854278E-03 2.84938997752720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705715432546E-03 2.80618860464829E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809583477647D-01 +(PID.TID 0000.0001) local fc = 0.473809583477647D-01 +(PID.TID 0000.0001) global fc = 0.473809583477647D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809583477647E-02 +grad-res ------------------------------- + grad-res 0 5 3 3 1 1 1 1 4.73809587569E-02 4.73809591661E-02 4.73809583478E-02 + grad-res 0 5 5 13 0 1 1 1 4.09149694160E-06 4.09149974318E-06 -6.84730040224E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.09149694160427E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.09149974317513E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 16 25 6 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 13 6 + ph-grd -->hit<-- 1 4 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 1 4 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353663E-03 2.18766023592288E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470372E-03 4.29236468108163E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540298E-03 6.43184796129749E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273515E-02 8.17951762860432E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390277E-02 9.31105228420526E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438463E-02 9.89364856748543E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118115669E-03 1.22456378139101E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879416562E-03 1.44777510298334E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202866209E-03 1.58982062951268E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828093977E-03 1.64357697493235E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874910858E-04 1.61756159476826E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729210366887E-05 1.53363856675838E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056164793E-04 1.42794064580563E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816331425E-03 1.49223780578256E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898680000E-03 1.56210440491905E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888901366E-03 1.63424213160257E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394916976399E-03 1.70505819078515E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899813630E-02 1.77167127688731E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064668436E-02 1.83257530222660E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482907356E-02 1.88791212298036E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268439599E-03 1.93938684160683E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209334755E-03 2.06671962321555E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343843474E-03 2.17651147149640E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123170958E-03 2.23681620896649E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762900026E-03 2.25047700696666E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637557811454E-04 2.23911227543137E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454506435E-03 2.31619526940388E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289099456E-03 2.39332628110242E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142118123E-03 2.46478012572160E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438027310E-03 2.52475933256403E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191254204E-03 2.56860713760595E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753741482E-03 2.59379160521911E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044279992E-02 2.60046741495995E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657584066E-03 2.59154640938307E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745319546E-03 2.57230689901654E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619169145E-03 2.57617678135647E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960023820E-03 2.60704657321994E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995523738754E-03 2.55368005253500E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595289418467E-03 2.53090268162890E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134015226285E-03 2.55686898037500E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547888171973E-03 2.59998586411158E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766406719027E-03 2.65617340968333E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801264729630E-03 2.71885908050965E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728545977683E-03 2.78009792973707E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533160635012E-03 2.83193126068906E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436782452456E-03 2.86771962789887E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260394367358E-03 2.88321602708628E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588734905132E-03 2.87721816789033E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958543633783E-03 2.85172238552697E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891548270544E-03 2.90854930430461E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216133365325E-03 2.93304375103157E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645862208954E-03 2.88331761189336E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907585528981E-03 2.77469261075883E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776870917679E-03 2.64912183919269E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175889144532E-03 2.63954764691791E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063151300234E-03 2.64744430899421E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283024562145E-03 2.67027734220280E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958392921350E-03 2.75143063159173E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517509419370E-03 2.84716529053695E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141267048054E-03 2.92480130054836E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356457628979E-03 2.97120289946606E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691596447944E-03 2.97966806166267E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712335947594E-03 3.00381238992969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280732694209E-03 3.08036412987571E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430722244529E-03 3.09182672345351E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713132000171E-03 3.03934311387759E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148612661562E-03 2.93659607454174E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983303736822E-03 2.80689807175632E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262901419684E-03 2.68543418626270E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865385685941E-03 2.73031560505009E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138138227191E-03 2.80043604472480E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770801818851E-03 2.88238466446799E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102494184661E-03 2.96047705984752E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794584852268E-03 3.01993448941538E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747814686488E-03 3.04982332177156E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311468782905E-03 3.04517983222737E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185279658095E-03 3.11258931186745E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878928790685E-03 3.17297134448770E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076181123473E-03 3.17471658156181E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655857735154E-03 3.11938177436906E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371959342549E-03 3.01971790719266E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244062161230E-03 2.89700829918543E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550655394734E-03 2.77676424283679E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987147823961E-03 2.78119169436206E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114863415445E-03 2.84461359074686E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774870638664E-03 2.91823914487168E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760222858650E-03 2.98773887821884E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805652262416E-03 3.03980213890941E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908479251215E-03 3.06473928375204E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143925072544E-03 3.06396598169588E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449161748789E-03 3.16208627758019E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259127626827E-03 3.21610127338400E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301271659628E-03 3.21680818858016E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212404908484E-03 3.16554824342618E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860122114186E-03 3.07378666621674E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293279152967E-03 2.96071722813582E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105726218366E-03 2.84938999880634E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705694147643E-03 2.80618863274104E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809589267712D-01 +(PID.TID 0000.0001) local fc = 0.473809589267712D-01 +(PID.TID 0000.0001) global fc = 0.473809589267712D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809589267712E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353679E-03 2.18766023593943E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470142E-03 4.29236468101503E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539253E-03 6.43184796159576E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273257E-02 8.17951762973025E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389843E-02 9.31105228615203E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562437932E-02 9.89364856730405E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118111710E-03 1.22456378117781E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879417937E-03 1.44777510242390E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202878344E-03 1.58982062854674E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828123033E-03 1.64357697359091E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875428869E-04 1.61756159319297E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729202490697E-05 1.53363856519811E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103057235935E-04 1.42794064547932E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816464577E-03 1.49223780544866E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898832879E-03 1.56210440457677E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889064110E-03 1.63424213123973E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917136800E-03 1.70505819037805E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899828161E-02 1.77167127640313E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064680341E-02 1.83257530162773E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482915883E-02 1.88791212223000E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268488816E-03 1.93938684067482E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209351702E-03 2.06671962832650E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343837812E-03 2.17651147552902E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123157049E-03 2.23681621158593E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762894951E-03 2.25047700804066E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637558022427E-04 2.23911227357998E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454568836E-03 2.31619526743549E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289214094E-03 2.39332627903907E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142290619E-03 2.46478012357347E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438257980E-03 2.52475933032630E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191539235E-03 2.56860713525854E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059754075068E-03 2.59379160272978E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044317699E-02 2.60046741228980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069658003032E-03 2.59154640649380E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745784649E-03 2.57230689587792E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619691793E-03 2.57617678028559E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666960622749E-03 2.60704656823916E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524438916E-03 2.55368004479187E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595290248854E-03 2.53090267750755E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134016217097E-03 2.55686897608781E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547889351676E-03 2.59998585970328E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766408111872E-03 2.65617340519177E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801266354107E-03 2.71885907595907E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728547846221E-03 2.78009792513411E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533162754968E-03 2.83193125602214E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436784828189E-03 2.86771962314134E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260397002973E-03 2.88321602220259E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588737807319E-03 2.87721816284405E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958546814174E-03 2.85172238028931E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891551747089E-03 2.90854929450299E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216137162413E-03 2.93304373769061E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645866356229E-03 2.88331759553136E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907590059083E-03 2.77469259222886E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776875863371E-03 2.64912183315304E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175894535788E-03 2.63954764084791E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063157161881E-03 2.64744430294088E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283030912550E-03 2.67027733619939E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958399772427E-03 2.75143059790760E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517516777906E-03 2.84716525600340E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141274918116E-03 2.92480126528037E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356466014868E-03 2.97120286357194E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691605357135E-03 2.97966802522266E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712345393009E-03 3.00381236883984E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280742695364E-03 3.08036410650856E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430732827278E-03 3.09182669794373E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713143195096E-03 3.03934308668216E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148624501292E-03 2.93659604634093E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983316252823E-03 2.80689804330838E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262914639167E-03 2.68543414511727E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865399629537E-03 2.73031556303211E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138152907859E-03 2.80043600188268E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770817242293E-03 2.88238462089198E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102510351186E-03 2.96047701565441E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794601759733E-03 3.01993444472750E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747832333775E-03 3.04982327669444E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311487173213E-03 3.04517978683052E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185298801393E-03 3.11258928081165E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878948704804E-03 3.17297131110847E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076201833618E-03 3.17471654621333E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655879271856E-03 3.11938173773379E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371981738500E-03 3.01971787016056E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244085447569E-03 2.89700826268855E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550679597532E-03 2.77676420767159E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987172961612E-03 2.78119164466098E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114889497487E-03 2.84461354036552E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774897666281E-03 2.91823909391536E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760250826787E-03 2.98773882682414E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805681163092E-03 3.03980208722194E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908509077411E-03 3.06473923190219E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143955821886E-03 3.06396595018430E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449193426305E-03 3.16208624365442E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259160246224E-03 3.21610123685974E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301305242827E-03 3.21680814971781E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212439483496E-03 3.16554820288829E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860157711728E-03 3.07378662494961E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293315802492E-03 2.96071718719733E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105763944264E-03 2.84938995917263E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705732966394E-03 2.80618857866316E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809585870583D-01 +(PID.TID 0000.0001) local fc = 0.473809585870583D-01 +(PID.TID 0000.0001) global fc = 0.473809585870583D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809585870583E-02 +grad-res ------------------------------- + grad-res 0 6 1 4 1 1 1 1 4.73809587569E-02 4.73809589268E-02 4.73809585871E-02 + grad-res 0 6 6 16 0 1 1 1 1.69856551370E-06 1.69856441412E-06 6.47356069083E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.69856551369767E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.69856441412097E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 19 25 7 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 16 7 + ph-grd -->hit<-- 4 4 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 4 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023594879E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564469774E-03 4.29236468113340E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903538777E-03 6.43184796161498E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273296E-02 8.17951762933440E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390069E-02 9.31105228525253E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438371E-02 9.89364856526865E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118117022E-03 1.22456378118496E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879421008E-03 1.44777510260538E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202874081E-03 1.58982062899321E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828105087E-03 1.64357697437359E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875049117E-04 1.61756159434320E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729208753527E-05 1.53363856669232E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103056352407E-04 1.42794064932887E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816354550E-03 1.49223780966913E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898711256E-03 1.56210440891635E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888946959E-03 1.63424213545351E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917045061E-03 1.70505819427400E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899823901E-02 1.77167127988041E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064683370E-02 1.83257530469976E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482928288E-02 1.88791212502741E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268722003E-03 1.93938684342714E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209702219E-03 2.06671962719364E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344306212E-03 2.17651147441925E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123737169E-03 2.23681621074026E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763576106E-03 2.25047700766422E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637565723162E-04 2.23911227999263E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911455417703E-03 2.31619527483112E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886290136712E-03 2.39332628722732E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067143289188E-03 2.46478013227541E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913439342708E-03 2.52475933922047E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342192727515E-03 2.56860714403354E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059755389198E-03 2.59379161113403E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044464082E-02 2.60046742016995E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069659638209E-03 2.59154641381515E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505747607096E-03 2.57230690272374E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655621709186E-03 2.57617677321079E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666962833458E-03 2.60704656319132E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995526832603E-03 2.55368004125585E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595292808664E-03 2.53090268462046E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134018922986E-03 2.55686898376983E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547892184254E-03 2.59998586800900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766411055990E-03 2.65617341407510E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801269401509E-03 2.71885908528604E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728550996719E-03 2.78009793471096E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533166015918E-03 2.83193126563268E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436788212404E-03 2.86771963258630E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260400525465E-03 2.88321603133356E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588741481566E-03 2.87721817158596E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958550648661E-03 2.85172238864785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891555742847E-03 2.90854928997837E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216141312035E-03 2.93304373493480E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645870644594E-03 2.88331759434922E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907594465633E-03 2.77469259222496E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776880365490E-03 2.64912184134068E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175899112572E-03 2.63954764929984E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063161797545E-03 2.64744431164138E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283035598764E-03 2.67027734507856E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958404509075E-03 2.75143061582494E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517521572121E-03 2.84716527436828E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141279781757E-03 2.92480128396850E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356470960960E-03 2.97120288246971E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691610395996E-03 2.97966804425108E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712350528861E-03 3.00381236966033E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280747924142E-03 3.08036410852728E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430738136114E-03 3.09182670114378E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713148563597E-03 3.03934309086443E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148629904387E-03 2.93659605116871E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983321664626E-03 2.80689804838084E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262920037065E-03 2.68543416643416E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865404997664E-03 2.73031558493967E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138158239257E-03 2.80043602433240E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770822539259E-03 2.88238464378942E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102515623728E-03 2.96047703887764E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794607022390E-03 3.01993446815159E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747837601435E-03 3.04982330021674E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311492456741E-03 3.04517981039200E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185304103959E-03 3.11258928743417E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878954019655E-03 3.17297131911790E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076207143763E-03 3.17471655547866E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655884551773E-03 3.11938174793140E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371986957542E-03 3.01971788083099E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244090574413E-03 2.89700827332173E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550684604816E-03 2.77676421780387E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987177829820E-03 2.78119167117466E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114894217324E-03 2.84461356745578E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774902239029E-03 2.91823912146856E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760255262570E-03 2.98773885469305E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805685477370E-03 3.03980211525205E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908513286364E-03 3.06473925995972E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143959937622E-03 3.06396595858522E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449197452820E-03 3.16208625342260E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259164176930E-03 3.21610124816375E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301309060132E-03 3.21680816248588E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212443160546E-03 3.16554821681856E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860161215990E-03 3.07378663956378E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293319100442E-03 2.96071720192751E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105767006314E-03 2.84938997346508E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705735771052E-03 2.80618860866281E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809585484396D-01 +(PID.TID 0000.0001) local fc = 0.473809585484396D-01 +(PID.TID 0000.0001) global fc = 0.473809585484396D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809585484396E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353672E-03 2.18766023597584E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470741E-03 4.29236468096322E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540777E-03 6.43184796127824E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273475E-02 8.17951762900017E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390050E-02 9.31105228510476E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438023E-02 9.89364856952087E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118110352E-03 1.22456378138389E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879413490E-03 1.44777510280187E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202870466E-03 1.58982062906620E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828111918E-03 1.64357697414965E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875290539E-04 1.61756159361802E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729204104670E-05 1.53363856526416E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103057048265E-04 1.42794064195609E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816441447E-03 1.49223780156209E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898801616E-03 1.56210440057945E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889018510E-03 1.63424212738879E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917068133E-03 1.70505818688920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899817890E-02 1.77167127341003E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064665406E-02 1.83257529915456E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482894951E-02 1.88791212018294E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268206410E-03 1.93938683885452E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700208984234E-03 2.06671962434843E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343375071E-03 2.17651147260615E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199122590833E-03 2.23681620981217E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762218867E-03 2.25047700734311E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637550110693E-04 2.23911226901872E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911453657567E-03 2.31619526200824E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886288176835E-03 2.39332627291417E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067141119549E-03 2.46478011701964E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913436942581E-03 2.52475932366985E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342190065923E-03 2.56860712883095E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059752427351E-03 2.59379159681486E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044133609E-02 2.60046740707979E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069655948886E-03 2.59154640206171E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505743497098E-03 2.57230689217071E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655617151747E-03 2.57617678843129E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666957813106E-03 2.60704657826778E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995521345061E-03 2.55368005607104E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595286858651E-03 2.53090267451598E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134012520390E-03 2.55686897269298E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547885339388E-03 2.59998585580585E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766403774901E-03 2.65617340079999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801261682217E-03 2.71885907118266E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728542827175E-03 2.78009792016022E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533157374050E-03 2.83193125107851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436779068228E-03 2.86771961845390E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260390844852E-03 2.88321601795530E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588731230872E-03 2.87721815914841E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958539799281E-03 2.85172237716839E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891544274770E-03 2.90854930882922E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216129215690E-03 2.93304375378740E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645857920576E-03 2.88331761307552E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907581122414E-03 2.77469261076273E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776866415544E-03 2.64912183100504E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175884567734E-03 2.63954763846596E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063146664555E-03 2.64744430029369E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283019875917E-03 2.67027733332363E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958388184688E-03 2.75143061367439E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517504625140E-03 2.84716527217207E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141262184397E-03 2.92480128186021E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356452682868E-03 2.97120288056829E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691591409065E-03 2.97966804263424E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712330811723E-03 3.00381238910920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280727465410E-03 3.08036412785698E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430716935675E-03 3.09182672025347E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713126631654E-03 3.03934310969534E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148607258448E-03 2.93659606971396E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983298324998E-03 2.80689806668385E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262896021765E-03 2.68543416494580E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865380317792E-03 2.73031558314252E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138132895771E-03 2.80043602227508E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770796521862E-03 2.88238464157055E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102488912098E-03 2.96047703662427E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794579589591E-03 3.01993446599129E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747809418807E-03 3.04982329824925E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311463499355E-03 3.04517980866589E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185274355506E-03 3.11258930524494E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878923475812E-03 3.17297133647827E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076175813309E-03 3.17471657229648E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655852455217E-03 3.11938176417146E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371954123486E-03 3.01971789652222E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244057034365E-03 2.89700828855225E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550650387430E-03 2.77676423270450E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987142955730E-03 2.78119166784838E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114858695586E-03 2.84461356365658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774866065894E-03 2.91823911731846E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760218422844E-03 2.98773885034993E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805647948118E-03 3.03980211087929E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908475042243E-03 3.06473925569449E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143920956789E-03 3.06396597329497E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449157722255E-03 3.16208626781200E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259123696101E-03 3.21610126207999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301267842305E-03 3.21680817581209E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212401231411E-03 3.16554822949590E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860118609904E-03 3.07378665160256E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293275854998E-03 2.96071721340564E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105723156296E-03 2.84938998451389E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705691342965E-03 2.80618860274138E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809589653899D-01 +(PID.TID 0000.0001) local fc = 0.473809589653899D-01 +(PID.TID 0000.0001) global fc = 0.473809589653899D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809589653899E-02 +grad-res ------------------------------- + grad-res 0 7 4 4 1 1 1 1 4.73809587569E-02 4.73809585484E-02 4.73809589654E-02 + grad-res 0 7 7 19 0 1 1 1 -2.08475064021E-06 -2.08475153807E-06 -4.30676647456E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.08475064021389E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.08475153806731E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 22 25 8 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 19 8 + ph-grd -->hit<-- 2 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 2 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353668E-03 2.18766023591838E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564469466E-03 4.29236468137109E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903536376E-03 6.43184795990031E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466272653E-02 8.17951762500048E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833388962E-02 9.31105227951439E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562437001E-02 9.89364856527015E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118106262E-03 1.22456378149224E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879422455E-03 1.44777510139279E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202899893E-03 1.58982062538312E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828168509E-03 1.64357696763808E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818876177729E-04 1.61756158408024E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729191761909E-05 1.53363855295443E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103058631094E-04 1.42794064399012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816632867E-03 1.49223780329667E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408899023701E-03 1.56210440165536E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889269447E-03 1.63424212749082E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917348173E-03 1.70505818580109E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899849144E-02 1.77167127105416E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064700610E-02 1.83257529560808E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482935136E-02 1.88791211566595E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268670661E-03 1.93938683369161E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209524170E-03 2.06671962446237E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344002806E-03 2.17651147122413E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123315598E-03 2.23681620553220E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763045755E-03 2.25047699917405E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637559405495E-04 2.23911226477192E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454685845E-03 2.31619525789286E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289297017E-03 2.39332626855423E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142323357E-03 2.46478011195604E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438222275E-03 2.52475931743181E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191416022E-03 2.56860712100982E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753845773E-03 2.59379158712698E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044282448E-02 2.60046739540756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069657512077E-03 2.59154638846571E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745141718E-03 2.57230687687118E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655618884385E-03 2.57617681167012E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666959638356E-03 2.60704660280945E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995523263871E-03 2.55368008239986E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595288867363E-03 2.53090265590663E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134014610664E-03 2.55686895389668E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547887499049E-03 2.59998583682159E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766405989524E-03 2.65617338148217E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801263937145E-03 2.71885905127420E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728545109507E-03 2.78009789934467E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533159674196E-03 2.83193122904099E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436781380685E-03 2.86771959493898E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260393168018E-03 2.88321599281166E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588733565937E-03 2.87721813235219E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958542148430E-03 2.85172234882208E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891546639071E-03 2.90854934181900E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216131593136E-03 2.93304378719627E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645860304726E-03 2.88331764734917E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907583501935E-03 2.77469264623227E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776868774799E-03 2.64912179842263E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175886888320E-03 2.63954760551477E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063148927487E-03 2.64744426692918E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283022064013E-03 2.67027729942327E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958390284657E-03 2.75143061498396E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517506628910E-03 2.84716527335980E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141264089393E-03 2.92480128287685E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356454491132E-03 2.97120288135738E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691593125385E-03 2.97966804314562E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712332441121E-03 3.00381242693364E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280729010509E-03 3.08036416570750E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430718394469E-03 3.09182675853928E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713127996196E-03 3.03934314878515E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148608514709E-03 2.93659610985679E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983299453996E-03 2.80689810795470E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262897001740E-03 2.68543416391545E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865381127026E-03 2.73031558207880E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138133515487E-03 2.80043602118395E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770796938610E-03 2.88238464042914E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102489119131E-03 2.96047703538569E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794579586940E-03 3.01993446459446E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747809212002E-03 3.04982329663195E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311463097029E-03 3.04517980677822E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185273766342E-03 3.11258934551400E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878922705441E-03 3.17297137690743E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076174861777E-03 3.17471661336796E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655851315535E-03 3.11938180630106E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371952781579E-03 3.01971793997518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244055470421E-03 2.89700833338720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550648578433E-03 2.77676427875714E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987140878641E-03 2.78119166491367E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114856330566E-03 2.84461356081962E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774863398921E-03 2.91823911455532E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760215447189E-03 2.98773884760545E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805644664382E-03 3.03980210807724E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908471456940E-03 3.06473925275181E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143917079756E-03 3.06396601692469E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449153563395E-03 3.16208631089426E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259119262122E-03 3.21610130510734E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301263134093E-03 3.21680821932830E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212396242594E-03 3.16554827399202E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860113326872E-03 3.07378669742307E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293270258396E-03 2.96071726068244E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105717223694E-03 2.84939003314101E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705685052157E-03 2.80618859844658E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809592922534D-01 +(PID.TID 0000.0001) local fc = 0.473809592922534D-01 +(PID.TID 0000.0001) global fc = 0.473809592922534D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809592922534E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353673E-03 2.18766023591770E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564471049E-03 4.29236468072556E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903543180E-03 6.43184796299283E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466274119E-02 8.17951763333416E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833391159E-02 9.31105229084288E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562439394E-02 9.89364856951932E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118121129E-03 1.22456378107661E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879412060E-03 1.44777510401446E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202844676E-03 1.58982063267629E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828048519E-03 1.64357698088518E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874162184E-04 1.61756160388100E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729221093863E-05 1.53363857900207E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103054769820E-04 1.42794064729485E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816163154E-03 1.49223780793456E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898489197E-03 1.56210440784046E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888696050E-03 1.63424213535149E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394916765047E-03 1.70505819536212E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899792649E-02 1.77167128223629E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064648169E-02 1.83257530824626E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482888106E-02 1.88791212954440E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268257781E-03 1.93938684859007E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209162317E-03 2.06671962707973E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343678507E-03 2.17651147580130E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123012436E-03 2.23681621502023E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762749246E-03 2.25047701583329E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637556428650E-04 2.23911228423943E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911454389453E-03 2.31619527894652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886289016560E-03 2.39332629158727E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067142085410E-03 2.46478013733904E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913438063043E-03 2.52475934545853E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342191377447E-03 2.56860715185469E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059753970805E-03 2.59379162082192E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044315245E-02 2.60046743184220E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069658075045E-03 2.59154642741118E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505745962504E-03 2.57230691802329E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655619976575E-03 2.57617674997196E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666961008235E-03 2.60704653864966E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995524913820E-03 2.55368001492704E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595290799979E-03 2.53090270322982E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134016832740E-03 2.55686900256615E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547890024623E-03 2.59998588699327E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766408841397E-03 2.65617343339293E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801267146612E-03 2.71885910519453E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728548714417E-03 2.78009795552652E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533163715807E-03 2.83193128767023E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436785899983E-03 2.86771965610125E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260398202335E-03 2.88321605647721E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588739146537E-03 2.87721819838219E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958548299548E-03 2.85172241699418E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891553378581E-03 2.90854925698861E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216138934622E-03 2.93304370152593E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645868260476E-03 2.88331756007556E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907592086145E-03 2.77469255675542E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776878006267E-03 2.64912187392310E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175896792017E-03 2.63954768225105E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063159534645E-03 2.64744434500590E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283033410699E-03 2.67027737897893E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958402409138E-03 2.75143061451539E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517519568385E-03 2.84716527318057E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141277876795E-03 2.92480128295188E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356469152733E-03 2.97120288168064E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691608679715E-03 2.97966804373973E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712348899501E-03 3.00381233183590E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280746379085E-03 3.08036407067678E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430736677361E-03 3.09182666285797E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713147199097E-03 3.03934305177462E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148628648169E-03 2.93659601102587E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983320535674E-03 2.80689800711001E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262919057136E-03 2.68543416746454E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865404188477E-03 2.73031558600341E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138157619586E-03 2.80043602542354E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770822122559E-03 2.88238464493084E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102515416741E-03 2.96047704011626E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794607025086E-03 3.01993446954842E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747837808283E-03 3.04982330183407E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311492859111E-03 3.04517981227969E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185304693167E-03 3.11258924716511E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878954790070E-03 3.17297127868875E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076208095337E-03 3.17471651440720E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655885691498E-03 3.11938170580181E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371988299494E-03 3.01971783737805E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244092138402E-03 2.89700822848681E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550686413860E-03 2.77676417175126E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987179906958E-03 2.78119167410940E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114896582393E-03 2.84461357029277E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774904906051E-03 2.91823912423173E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760258238276E-03 2.98773885743756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805688761157E-03 3.03980211805410E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908516871718E-03 3.06473926290244E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143963814705E-03 3.06396591495551E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449201611732E-03 3.16208621034036E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259168610963E-03 3.21610120513641E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301313768397E-03 3.21680811896970E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212448149419E-03 3.16554817232246E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860166499079E-03 3.07378659374328E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293324697099E-03 2.96071715465072E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105772938971E-03 2.84938992483797E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705742061916E-03 2.80618861295764E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809582215761D-01 +(PID.TID 0000.0001) local fc = 0.473809582215761D-01 +(PID.TID 0000.0001) global fc = 0.473809582215761D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809582215761E-02 +grad-res ------------------------------- + grad-res 0 8 2 5 1 1 1 1 4.73809587569E-02 4.73809592923E-02 4.73809582216E-02 + grad-res 0 8 8 22 0 1 1 1 5.35338960399E-06 5.35338644941E-06 5.89267310946E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.35338960399124E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.35338644941374E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 9 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 25 25 9 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 22 9 + ph-grd -->hit<-- 5 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 5 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353680E-03 2.18766023588200E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470323E-03 4.29236468112177E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903539170E-03 6.43184796162953E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273169E-02 8.17951762939120E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833389648E-02 9.31105228534061E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562437671E-02 9.89364856778201E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118109771E-03 1.22456378124312E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879419080E-03 1.44777510262150E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202885999E-03 1.58982062887940E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828141399E-03 1.64357697400620E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818875765348E-04 1.61756159357437E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729197147003E-05 1.53363856536915E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103058008679E-04 1.42794065023144E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816569024E-03 1.49223781114071E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898967055E-03 1.56210441116574E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462889229930E-03 1.63424213866513E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394917335833E-03 1.70505819857952E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899851549E-02 1.77167128533784E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064707428E-02 1.83257531128491E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482946966E-02 1.88791213264032E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268843677E-03 1.93938685191338E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700209755817E-03 2.06671962192481E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527344297483E-03 2.17651146947621E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199123679452E-03 2.23681620606457E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489763487846E-03 2.25047700310771E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637564736854E-04 2.23911229108037E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911455326916E-03 2.31619528661081E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886290066738E-03 2.39332629996459E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067143245468E-03 2.46478014628131E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913439322338E-03 2.52475935480756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342192720036E-03 2.56860716147049E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059755378874E-03 2.59379163060672E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044460999E-02 2.60046744175615E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069659571016E-03 2.59154643747745E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505747493020E-03 2.57230692832198E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655621545600E-03 2.57617675201394E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666962626800E-03 2.60704654001209E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995526597968E-03 2.55368001584761E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595292567892E-03 2.53090271575197E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134018701667E-03 2.55686901589997E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547892008216E-03 2.59998590115862E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766410947963E-03 2.65617344836232E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801269378590E-03 2.71885912090318E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728551069105E-03 2.78009797188824E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533166187120E-03 2.83193130459585E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436788480830E-03 2.86771967351592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260400887041E-03 2.88321607433361E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588741932822E-03 2.87721821666733E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958551189637E-03 2.85172243572916E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891556379247E-03 2.90854925610558E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216142056210E-03 2.93304369999017E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645871515156E-03 2.88331755802848E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907595485834E-03 2.77469255436539E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776881560710E-03 2.64912189575723E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175900507455E-03 2.63954770481937E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063163413382E-03 2.64744436829616E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283037451667E-03 2.67027740296054E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958406609311E-03 2.75143064193241E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517523924728E-03 2.84716530055619E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141282388297E-03 2.92480131022889E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356473822050E-03 2.97120290897247E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691613514034E-03 2.97966807130971E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712353910409E-03 3.00381232706159E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280751581428E-03 3.08036406546413E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430742087339E-03 3.09182665731785E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713152831955E-03 3.03934304604354E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148634516023E-03 2.93659600523742E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983326645911E-03 2.80689800136691E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262925411758E-03 2.68543420335672E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865410784571E-03 2.73031562247592E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138164450851E-03 2.80043606205944E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770829181586E-03 2.88238468139999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102522697625E-03 2.96047707624614E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794614525807E-03 3.01993450536392E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747845532377E-03 3.04982333755730E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311500816267E-03 3.04517984828942E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185312898621E-03 3.11258923960457E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878963262872E-03 3.17297127081794E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076216855842E-03 3.17471650637665E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655894758557E-03 3.11938169777893E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371997687916E-03 3.01971782951642E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244101857174E-03 2.89700822089781E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550696465491E-03 2.77676416448378E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987190288072E-03 2.78119172019203E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114907285464E-03 2.84461361647073E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774915921928E-03 2.91823917012314E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760269558997E-03 2.98773890283544E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805700382503E-03 3.03980216296581E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908528794996E-03 3.06473930754670E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143976047416E-03 3.06396590730102E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449214167011E-03 3.16208620234837E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259181505904E-03 3.21610119689838E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301327021612E-03 3.21680811062526E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212461778328E-03 3.16554816403371E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860180517462E-03 3.07378658566519E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293339113417E-03 2.96071714690352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105787755738E-03 2.84938991748670E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705757276262E-03 2.80618866706394E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809576551189D-01 +(PID.TID 0000.0001) local fc = 0.473809576551189D-01 +(PID.TID 0000.0001) global fc = 0.473809576551189D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809576551189E-02 + ctrl_depth_ini: ctrl update R_low, + adding the control vector. +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.96041768353662E-03 2.18766023589393E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.70151564470191E-03 4.29236468097487E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -9.17158903540384E-03 6.43184796126380E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -1.08944466273603E-02 8.17951762894335E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.15449833390471E-02 9.31105228501659E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -1.10127562438723E-02 9.89364856700739E-04 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.42153118117611E-03 1.22456378132573E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -7.10092879415423E-03 1.44777510278573E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.51794202858558E-03 1.58982062918001E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -2.18275828075618E-03 1.64357697451706E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.47818874574434E-04 1.61756159438687E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = 7.99729215709988E-05 1.53363856658734E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -4.03103055392117E-04 1.42794064105352E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.88087816226985E-03 1.49223780009052E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -4.04408898545830E-03 1.56210439833007E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.45462888735554E-03 1.63424212417718E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.63394916777374E-03 1.70505818258369E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -1.01577899790242E-02 1.77167126795260E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.07385064641350E-02 1.83257529256943E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.02790482876274E-02 1.88791211257003E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.88852268084754E-03 1.93938683036829E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -6.85700208930657E-03 2.06671962961728E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.59527343383819E-03 2.17651147754920E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -2.55199122648572E-03 2.23681621448786E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -1.12489762307147E-03 2.25047701189963E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -5.83637551097194E-04 2.23911225793099E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -1.01911453748373E-03 2.31619525022856E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.32886288246829E-03 2.39332626017691E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -4.24067141163288E-03 2.46478010301377E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.36913436962969E-03 2.52475930808278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -8.29342190073421E-03 2.56860711139401E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -9.64059752437691E-03 2.59379157734218E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -1.01580044136694E-02 2.60046738549359E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -9.76069656016099E-03 2.59154637839942E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -8.54505743611193E-03 2.57230686657248E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -6.76655617315353E-03 2.57617680962813E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.78666958019783E-03 2.60704660144701E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -2.99995521579716E-03 2.55368008147927E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -1.75595287099443E-03 2.53090264338448E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.29134012741729E-03 2.55686894056286E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.68547885515447E-03 2.59998582265623E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -2.84766403882949E-03 2.65617336651278E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -4.53801261705159E-03 2.71885903556555E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.41728542754810E-03 2.78009788298295E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -8.11533157202871E-03 2.83193121211537E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -9.30436778799824E-03 2.86771957752431E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -9.76260390483297E-03 2.88321597495525E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -9.41588730779638E-03 2.87721811406707E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.34958539258327E-03 2.85172233008710E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -6.78891543638390E-03 2.90854934270203E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.05216128471534E-03 2.93304378873200E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -3.48645857050034E-03 2.88331764939626E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -2.39907580102234E-03 2.77469264862230E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -1.99776865220345E-03 2.64912177658850E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -2.35175883172874E-03 2.63954758294643E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.38063145048741E-03 2.64744424363892E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -4.87283018023037E-03 2.67027727544167E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.52958386084476E-03 2.75143058756693E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -8.02517502272560E-03 2.84716524598417E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -9.07141259577881E-03 2.92480125559983E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.47356449821807E-03 2.97120285406554E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -9.16691588291055E-03 2.97966801557562E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -8.22712327430203E-03 3.00381243170794E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -6.85280723808155E-03 3.08036417092014E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.32430712984485E-03 3.09182676407940E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -3.94713122363330E-03 3.03934315451623E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -2.99148602646846E-03 2.93659611564525E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -2.63983293343749E-03 2.80689811369779E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -2.95262890647109E-03 2.68543412802325E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -3.85865374530924E-03 2.73031554560629E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -5.17138126684217E-03 2.80043598454804E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.62770789879577E-03 2.88238460395999E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -7.94102481838242E-03 2.96047699925580E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -8.85794572086213E-03 3.01993442877896E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -9.20747801487905E-03 3.04982326090872E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -8.93311455139868E-03 3.04517977076849E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -8.10185265560886E-03 3.11258935307455E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -6.88878914232639E-03 3.17297138477823E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 + cg2d: Sum(rhs),rhsMax = -5.54076166101275E-03 3.17471662139851E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.32655842248479E-03 3.11938181432393E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.48371943393158E-03 3.01971794783681E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 + cg2d: Sum(rhs),rhsMax = -3.17244045751648E-03 2.89700834097619E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 4 + cg2d: Sum(rhs),rhsMax = -3.44550638526801E-03 2.77676428602460E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 5 + cg2d: Sum(rhs),rhsMax = -4.23987130497524E-03 2.78119161883102E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 6 + cg2d: Sum(rhs),rhsMax = -5.39114845627492E-03 2.84461351464165E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 7 + cg2d: Sum(rhs),rhsMax = -6.66774852383042E-03 2.91823906866389E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 8 + cg2d: Sum(rhs),rhsMax = -7.81760204126467E-03 2.98773880220756E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 9 + cg2d: Sum(rhs),rhsMax = -8.61805633043036E-03 3.03980206316555E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 10 + cg2d: Sum(rhs),rhsMax = -8.91908459533665E-03 3.06473920810754E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 11 + cg2d: Sum(rhs),rhsMax = -8.67143904847046E-03 3.06396602457918E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 12 + cg2d: Sum(rhs),rhsMax = -7.93449141008112E-03 3.16208631888626E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 13 + cg2d: Sum(rhs),rhsMax = -6.86259106367175E-03 3.21610131334537E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 14 + cg2d: Sum(rhs),rhsMax = -5.67301249880869E-03 3.21680822767273E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 15 + cg2d: Sum(rhs),rhsMax = -4.60212382613678E-03 3.16554828228076E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 16 + cg2d: Sum(rhs),rhsMax = -3.85860099308480E-03 3.07378670550116E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 17 + cg2d: Sum(rhs),rhsMax = -3.58293255842070E-03 2.96071726842963E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 18 + cg2d: Sum(rhs),rhsMax = -3.82105702406920E-03 2.84939004049228E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 19 + cg2d: Sum(rhs),rhsMax = -4.51705669837803E-03 2.80618854434026E-03 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 20 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.473809598587105D-01 +(PID.TID 0000.0001) local fc = 0.473809598587105D-01 +(PID.TID 0000.0001) global fc = 0.473809598587105D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809598587105E-02 +grad-res ------------------------------- + grad-res 0 9 5 5 1 1 1 1 4.73809587569E-02 4.73809576551E-02 4.73809598587E-02 + grad-res 0 9 9 25 0 1 1 1 -1.10179600825E-05 -1.10179581431E-05 1.76025410026E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.10179600825079E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.10179581430669E-05 +(PID.TID 0000.0001) ====== End of gradient-check number 9 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 4.7380958756915E-02 4.7380959323097E-02 4.7380958190733E-02 +(PID.TID 0000.0001) grdchk output (g): 1 5.6618187915802E-06 5.6618225708366E-06 6.6749819260803E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 4 1 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 4.7380958756915E-02 4.7380958754118E-02 4.7380958759712E-02 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7971167049223E-08 -2.7973386521282E-08 7.9342272584104E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 2 2 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 4.7380958756915E-02 4.7380958867361E-02 4.7380958646469E-02 +(PID.TID 0000.0001) grdchk output (g): 3 1.1044580180974E-06 1.1044564058443E-06 -1.4597707709285E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 5 2 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 4.7380958756915E-02 4.7380958774784E-02 4.7380958739045E-02 +(PID.TID 0000.0001) grdchk output (g): 4 1.7869591223407E-07 1.7869397429595E-07 -1.0845011013672E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 3 3 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 5 4.7380958756915E-02 4.7380959166065E-02 4.7380958347765E-02 +(PID.TID 0000.0001) grdchk output (g): 5 4.0914997431751E-06 4.0914969416043E-06 -6.8473004022351E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 6 1 4 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 6 4.7380958756915E-02 4.7380958926771E-02 4.7380958587058E-02 +(PID.TID 0000.0001) grdchk output (g): 6 1.6985644141210E-06 1.6985655136977E-06 6.4735606908339E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 7 4 4 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 7 4.7380958756915E-02 4.7380958548440E-02 4.7380958965390E-02 +(PID.TID 0000.0001) grdchk output (g): 7 -2.0847515380673E-06 -2.0847506402139E-06 -4.3067664745600E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 8 2 5 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 8 4.7380958756915E-02 4.7380959292253E-02 4.7380958221576E-02 +(PID.TID 0000.0001) grdchk output (g): 8 5.3533864494137E-06 5.3533896039912E-06 5.8926731094644E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 9 5 5 1 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 9 4.7380958756915E-02 4.7380957655119E-02 4.7380959858711E-02 +(PID.TID 0000.0001) grdchk output (g): 9 -1.1017958143067E-05 -1.1017960082508E-05 1.7602541002582E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 9 ratios = 2.6701724030126E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 4.0746111869812012 +(PID.TID 0000.0001) System time: 0.27951199887320399 +(PID.TID 0000.0001) Wall clock time: 4.3544080257415771 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.6922000795602798E-002 +(PID.TID 0000.0001) System time: 7.9759997315704823E-003 +(PID.TID 0000.0001) Wall clock time: 2.4899959564208984E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": +(PID.TID 0000.0001) User time: 1.1214539445936680 +(PID.TID 0000.0001) System time: 0.22373700421303511 +(PID.TID 0000.0001) Wall clock time: 1.3452892303466797 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 3.2085180226713419 +(PID.TID 0000.0001) System time: 6.0154031962156296E-002 +(PID.TID 0000.0001) Wall clock time: 3.2688801288604736 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.7875573188066483E-002 +(PID.TID 0000.0001) System time: 1.5390757471323013E-003 +(PID.TID 0000.0001) Wall clock time: 7.9430580139160156E-002 +(PID.TID 0000.0001) No. starts: 4000 +(PID.TID 0000.0001) No. stops: 4000 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.3457768857479095E-002 +(PID.TID 0000.0001) System time: 9.6807442605495453E-004 +(PID.TID 0000.0001) Wall clock time: 4.4450283050537109E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.5375692397356033E-002 +(PID.TID 0000.0001) System time: 3.6901794373989105E-004 +(PID.TID 0000.0001) Wall clock time: 1.5670299530029297E-002 +(PID.TID 0000.0001) No. starts: 2100 +(PID.TID 0000.0001) No. stops: 2100 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4446197077631950E-002 +(PID.TID 0000.0001) System time: 3.2205134630203247E-004 +(PID.TID 0000.0001) Wall clock time: 1.4783859252929688E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0087579265236855E-002 +(PID.TID 0000.0001) System time: 4.0396489202976227E-004 +(PID.TID 0000.0001) Wall clock time: 2.0476102828979492E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.9915691167116165E-002 +(PID.TID 0000.0001) System time: 2.8730053454637527E-003 +(PID.TID 0000.0001) Wall clock time: 8.3021402359008789E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.76585203222930431 +(PID.TID 0000.0001) System time: 1.4344887807965279E-002 +(PID.TID 0000.0001) Wall clock time: 0.78093671798706055 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2084618527442217 +(PID.TID 0000.0001) System time: 1.9933944568037987E-002 +(PID.TID 0000.0001) Wall clock time: 1.2297623157501221 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.37856000661849976 +(PID.TID 0000.0001) System time: 6.1069931834936142E-003 +(PID.TID 0000.0001) Wall clock time: 0.38563418388366699 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1220807731151581E-002 +(PID.TID 0000.0001) System time: 1.2109670788049698E-003 +(PID.TID 0000.0001) Wall clock time: 7.2573900222778320E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.8350028470158577E-002 +(PID.TID 0000.0001) System time: 9.7501277923583984E-004 +(PID.TID 0000.0001) Wall clock time: 5.9452772140502930E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.5413526445627213E-002 +(PID.TID 0000.0001) System time: 2.5305710732936859E-004 +(PID.TID 0000.0001) Wall clock time: 1.5655994415283203E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11772540770471096 +(PID.TID 0000.0001) System time: 2.0148698240518570E-003 +(PID.TID 0000.0001) Wall clock time: 0.12003111839294434 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.2869579046964645E-003 +(PID.TID 0000.0001) System time: 5.7600252330303192E-004 +(PID.TID 0000.0001) Wall clock time: 4.8613548278808594E-003 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.5374718979001045E-002 +(PID.TID 0000.0001) System time: 1.2420043349266052E-003 +(PID.TID 0000.0001) Wall clock time: 6.6749334335327148E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4749657362699509E-002 +(PID.TID 0000.0001) System time: 1.5789009630680084E-003 +(PID.TID 0000.0001) Wall clock time: 1.6360759735107422E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4935553073883057E-002 +(PID.TID 0000.0001) System time: 7.6692178845405579E-004 +(PID.TID 0000.0001) Wall clock time: 1.5746831893920898E-002 +(PID.TID 0000.0001) No. starts: 2000 +(PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.13604325056076050 +(PID.TID 0000.0001) System time: 9.4130083918571472E-002 +(PID.TID 0000.0001) Wall clock time: 0.23018622398376465 +(PID.TID 0000.0001) No. starts: 201 +(PID.TID 0000.0001) No. stops: 201 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.0008296966552734E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.9996376037597656E-004 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.4797191619873047E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.4999847412109375E-004 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 2.9353309869766235 +(PID.TID 0000.0001) System time: 4.7750994563102722E-002 +(PID.TID 0000.0001) Wall clock time: 2.9832909107208252 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.4780282974243164E-002 +(PID.TID 0000.0001) System time: 8.0400705337524414E-004 +(PID.TID 0000.0001) Wall clock time: 1.5590667724609375E-002 +(PID.TID 0000.0001) No. starts: 18 +(PID.TID 0000.0001) No. stops: 18 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.9136990308761597 +(PID.TID 0000.0001) System time: 4.6662002801895142E-002 +(PID.TID 0000.0001) Wall clock time: 2.9605610370635986 +(PID.TID 0000.0001) No. starts: 18 +(PID.TID 0000.0001) No. stops: 18 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.8769944906234741 +(PID.TID 0000.0001) System time: 4.6084970235824585E-002 +(PID.TID 0000.0001) Wall clock time: 2.9232864379882812 +(PID.TID 0000.0001) No. starts: 1800 +(PID.TID 0000.0001) No. stops: 1800 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 7.8880786895751953E-004 +(PID.TID 0000.0001) System time: 2.9802322387695312E-006 +(PID.TID 0000.0001) Wall clock time: 7.9059600830078125E-004 +(PID.TID 0000.0001) No. starts: 18 +(PID.TID 0000.0001) No. stops: 18 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 182290 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 182290 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/bottom_ctrl_5x5/results/output_adm.txt b/verification/bottom_ctrl_5x5/results/output_adm.txt index 6c034b889f..a821a16769 100644 --- a/verification/bottom_ctrl_5x5/results/output_adm.txt +++ b/verification/bottom_ctrl_5x5/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67b -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed May 23 00:20:32 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68a +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Wed Aug 18 23:05:27 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -113,12 +115,13 @@ (PID.TID 0000.0001) >#momPressureForcing = .false., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > -(PID.TID 0000.0001) > (PID.TID 0000.0001) ># Elliptic solver parameters (PID.TID 0000.0001) > &PARM02 (PID.TID 0000.0001) > cg2dMaxIters=100, +(PID.TID 0000.0001) > cg2dMinItersNSA = 10, (PID.TID 0000.0001) >#cg2dTargetResidual=1.E-13, (PID.TID 0000.0001) > cg2dTargetResWunit=1.E-18, +(PID.TID 0000.0001) > useNSACGSolver = .TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 @@ -133,6 +136,7 @@ (PID.TID 0000.0001) > chkptFreq= 0.0, (PID.TID 0000.0001) >#dumpFreq= 1.0, (PID.TID 0000.0001) > monitorFreq = 43200., +(PID.TID 0000.0001) > ADJdumpFreq= 1.0, (PID.TID 0000.0001) > monitorSelect=1, (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Gridding parameters @@ -158,7 +162,7 @@ (PID.TID 0000.0001) > hydrogSaltFile=, (PID.TID 0000.0001) > zonalWindFile='windx.sin_y', (PID.TID 0000.0001) > meridWindFile=, -(PID.TID 0000.0001) > surfQFile=, +(PID.TID 0000.0001) > surfQnetFile=, (PID.TID 0000.0001) > EmPmRFile=, (PID.TID 0000.0001) > / (PID.TID 0000.0001) @@ -178,26 +182,19 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.pkg" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ******** (PID.TID 0000.0001) ># Packages (PID.TID 0000.0001) ># ******** (PID.TID 0000.0001) > &PACKAGES -(PID.TID 0000.0001) > useGMRedi = .FALSE., -(PID.TID 0000.0001) > useKPP = .FALSE., -(PID.TID 0000.0001) > useGrdchk = .TRUE., -(PID.TID 0000.0001) > useECCO = .FALSE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- - pkg/kpp compiled but not used ( useKPP = F ) - pkg/gmredi compiled but not used ( useGMRedi = F ) pkg/autodiff compiled and used ( useAUTODIFF = T ) pkg/grdchk compiled and used ( useGrdchk = T ) pkg/ctrl compiled and used ( useCTRL = T ) - pkg/mnc compiled but not used ( useMNC = F ) -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- pkg/generic_advdiff compiled and used ( useGAD = T ) pkg/mom_common compiled and used ( momStepping = T ) @@ -205,7 +202,6 @@ pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) pkg/cd_code compiled but not used ( useCDscheme = F ) pkg/monitor compiled and used ( monitorFreq > 0. = T ) - pkg/timeave compiled but not used ( taveFreq > 0. = F ) pkg/debug compiled but not used ( debugMode = F ) pkg/rw compiled and used pkg/mdsio compiled and used @@ -225,6 +221,7 @@ (PID.TID 0000.0001) ># (PID.TID 0000.0001) > &AUTODIFF_PARM01 (PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > cg2dFullAdjoint = .FALSE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff @@ -234,6 +231,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -255,9 +258,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -553,8 +565,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 25 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 25 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -611,7 +623,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 4 @ 4.000000000000000E+00 /* K = 1: 4 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 4 @ 3.500000000000000E+01 /* K = 1: 4 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -707,7 +719,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -717,6 +729,9 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -771,28 +786,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -814,7 +832,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -823,10 +841,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -891,37 +909,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -939,7 +932,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ (PID.TID 0000.0001) T @@ -1026,6 +1019,9 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 100 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; @@ -1044,6 +1040,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1116,12 +1115,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_mnc = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1134,9 +1127,6 @@ (PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) snapshot_mnc = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ (PID.TID 0000.0001) 4.320000000000000E+04 (PID.TID 0000.0001) ; @@ -1146,9 +1136,6 @@ (PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) monitor_mnc = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1375,7 +1362,9 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -1436,21 +1425,21 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470257E-03 4.29236468104833E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539776E-03 6.43184796144658E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916737E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517855E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739476E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118113690E-03 1.22456378128443E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879417251E-03 1.44777510270362E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202872277E-03 1.58982062902970E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828108507E-03 1.64357697426163E-03 -(PID.TID 0000.0001) cg2d_init_res = 5.81088204651644E-04 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470256E-03 4.29236468104834E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539774E-03 6.43184796144661E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916730E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517862E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739475E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118113688E-03 1.22456378128443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879417250E-03 1.44777510270361E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202872277E-03 1.58982062902970E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828108507E-03 1.64357697426163E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.81088204651635E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 4.62364478352360E-15 +(PID.TID 0000.0001) cg2d_last_res = 4.62364476660186E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1497,21 +1486,21 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.47818875169870E-04 1.61756159398061E-03 - cg2d: Sum(rhs),rhsMax = 7.99729206428733E-05 1.53363856597824E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056700375E-04 1.42794064564248E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816398002E-03 1.49223780561561E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898756440E-03 1.56210440474790E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888982739E-03 1.63424213142115E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917056600E-03 1.70505819058160E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192717E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260517E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268464209E-03 1.93938684114083E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209343231E-03 2.06671962577104E-03 -(PID.TID 0000.0001) cg2d_init_res = 7.38296268922697E-04 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875169873E-04 1.61756159398061E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729206428621E-05 1.53363856597824E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056700378E-04 1.42794064564248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816398002E-03 1.49223780561562E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898756440E-03 1.56210440474790E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888982739E-03 1.63424213142115E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917056602E-03 1.70505819058160E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192717E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260517E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268464210E-03 1.93938684114083E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209343233E-03 2.06671962577103E-03 +(PID.TID 0000.0001) cg2d_init_res = 7.38296268922710E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 3.02006245449497E-15 +(PID.TID 0000.0001) cg2d_last_res = 3.02006244747237E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1519,7 +1508,7 @@ (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 (PID.TID 0000.0001) %MON dynstat_eta_max = 5.7844409914181E-04 (PID.TID 0000.0001) %MON dynstat_eta_min = 3.2645567144751E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4433373565441E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4433373565442E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4819538622942E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5434520733128E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5151898296067E-05 @@ -1532,9 +1521,9 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5158127316130E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5360302494970E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0978867361765E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.2350759874276E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.2350759874277E-07 (PID.TID 0000.0001) %MON dynstat_wvel_min = -6.9451553150755E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9978036956703E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9978036956702E-10 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.8448049831739E-07 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7177942065444E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.0000000000000E+00 @@ -1558,29 +1547,29 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.59527343840646E-03 2.17651147351270E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123164005E-03 2.23681621027621E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762897491E-03 2.25047700750367E-03 - cg2d: Sum(rhs),rhsMax = -5.83637557916968E-04 2.23911227450567E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454537639E-03 2.31619526841969E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289156777E-03 2.39332628007075E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142204372E-03 2.46478012464753E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438142648E-03 2.52475933144517E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191396722E-03 2.56860713643225E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753908276E-03 2.59379160397444E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044298845E-02 2.60046741362487E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657793549E-03 2.59154640793844E-03 -(PID.TID 0000.0001) cg2d_init_res = 6.35007956522172E-04 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343840648E-03 2.17651147351270E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123164009E-03 2.23681621027622E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762897494E-03 2.25047700750366E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637557917001E-04 2.23911227450568E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454537642E-03 2.31619526841969E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289156781E-03 2.39332628007074E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142204376E-03 2.46478012464754E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438142652E-03 2.52475933144516E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191396727E-03 2.56860713643226E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753908283E-03 2.59379160397445E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044298846E-02 2.60046741362487E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657793556E-03 2.59154640793844E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.35007956522179E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 9.10005755353771E-15 +(PID.TID 0000.0001) cg2d_last_res = 9.10005753517429E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36 (PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.5683589974797E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.5683589974798E-04 (PID.TID 0000.0001) %MON dynstat_eta_min = 5.2707966276417E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.3249313825022E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.3249313825023E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 8.3516314618321E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5033363264908E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1017175873705E-04 @@ -1611,29 +1600,29 @@ (PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3884984682180E-05 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3302656388279E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3709477562963E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4273693907408E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 4.5364321220805E-10 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4273693907409E-05 +(PID.TID 0000.0001) %MON pe_b_mean = 4.5364321220806E-10 (PID.TID 0000.0001) %MON ke_max = 8.2643614189494E-05 (PID.TID 0000.0001) %MON ke_mean = 1.7697925493273E-06 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.54505745552099E-03 2.57230689744723E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619430471E-03 2.57617678082103E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960323286E-03 2.60704657072955E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524088835E-03 2.55368004866345E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289833660E-03 2.53090267956822E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015721691E-03 2.55686897823141E-03 - cg2d: Sum(rhs),rhsMax = -1.68547888761825E-03 2.59998586190743E-03 - cg2d: Sum(rhs),rhsMax = -2.84766407415449E-03 2.65617340743755E-03 - cg2d: Sum(rhs),rhsMax = -4.53801265541868E-03 2.71885907823436E-03 - cg2d: Sum(rhs),rhsMax = -6.41728546911952E-03 2.78009792743560E-03 - cg2d: Sum(rhs),rhsMax = -8.11533161694990E-03 2.83193125835559E-03 - cg2d: Sum(rhs),rhsMax = -9.30436783640321E-03 2.86771962552011E-03 -(PID.TID 0000.0001) cg2d_init_res = 3.74553574934444E-04 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745552105E-03 2.57230689744724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619430475E-03 2.57617678082104E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960323290E-03 2.60704657072955E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524088840E-03 2.55368004866345E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289833664E-03 2.53090267956823E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015721695E-03 2.55686897823141E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547888761829E-03 2.59998586190743E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766407415454E-03 2.65617340743755E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801265541873E-03 2.71885907823436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728546911956E-03 2.78009792743559E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533161694994E-03 2.83193125835560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436783640324E-03 2.86771962552011E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.74553574934435E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 6.21603179956906E-15 +(PID.TID 0000.0001) cg2d_last_res = 6.21603182408602E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1673,28 +1662,28 @@ (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1422376997313E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.1546530589507E-06 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7886632647377E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 4.1194257471499E-10 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1194257471500E-10 (PID.TID 0000.0001) %MON ke_max = 7.1206282534211E-05 (PID.TID 0000.0001) %MON ke_mean = 1.5440120019832E-06 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.76260395685164E-03 2.88321602464444E-03 - cg2d: Sum(rhs),rhsMax = -9.41588736356225E-03 2.87721816536719E-03 - cg2d: Sum(rhs),rhsMax = -8.34958545223978E-03 2.85172238290813E-03 - cg2d: Sum(rhs),rhsMax = -6.78891550008815E-03 2.90854929940380E-03 - cg2d: Sum(rhs),rhsMax = -5.05216135263868E-03 2.93304374436109E-03 - cg2d: Sum(rhs),rhsMax = -3.48645864282591E-03 2.88331760371237E-03 - cg2d: Sum(rhs),rhsMax = -2.39907587794029E-03 2.77469260149384E-03 - cg2d: Sum(rhs),rhsMax = -1.99776873390523E-03 2.64912183617286E-03 - cg2d: Sum(rhs),rhsMax = -2.35175891840159E-03 2.63954764388291E-03 - cg2d: Sum(rhs),rhsMax = -3.38063154231057E-03 2.64744430596754E-03 - cg2d: Sum(rhs),rhsMax = -4.87283027737347E-03 2.67027733920110E-03 - cg2d: Sum(rhs),rhsMax = -6.52958396346888E-03 2.75143061474967E-03 -(PID.TID 0000.0001) cg2d_init_res = 3.87000977845190E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260395685167E-03 2.88321602464443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588736356230E-03 2.87721816536720E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958545223980E-03 2.85172238290814E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891550008817E-03 2.90854929940380E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216135263872E-03 2.93304374436109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645864282595E-03 2.88331760371237E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907587794035E-03 2.77469260149385E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776873390528E-03 2.64912183617287E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175891840163E-03 2.63954764388291E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063154231061E-03 2.64744430596754E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283027737351E-03 2.67027733920110E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958396346892E-03 2.75143061474967E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.87000977845191E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 4.63270158563572E-15 +(PID.TID 0000.0001) cg2d_last_res = 4.63270156889552E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1702,7 +1691,7 @@ (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 5.4828424295001E-04 (PID.TID 0000.0001) %MON dynstat_eta_min = 3.1608260959568E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.2311704083278E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.2311704083279E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6021531398253E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4738613943640E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7288294900146E-03 @@ -1715,7 +1704,7 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2474672332632E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4009675880380E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.4564925679901E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5237348191876E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5237348191875E-07 (PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6673927253004E-07 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5796752344285E-09 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6299293145321E-07 @@ -1734,36 +1723,36 @@ (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8191275188761E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9541781396301E-06 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9885445349075E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 2.0597527059137E-10 +(PID.TID 0000.0001) %MON pe_b_mean = 2.0597527059138E-10 (PID.TID 0000.0001) %MON ke_max = 5.1390232612228E-05 (PID.TID 0000.0001) %MON ke_mean = 1.0977344201290E-06 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.02517513098638E-03 2.84716527327018E-03 - cg2d: Sum(rhs),rhsMax = -9.07141270983084E-03 2.92480128291437E-03 - cg2d: Sum(rhs),rhsMax = -9.47356461821924E-03 2.97120288151900E-03 - cg2d: Sum(rhs),rhsMax = -9.16691600902539E-03 2.97966804344266E-03 - cg2d: Sum(rhs),rhsMax = -8.22712340670301E-03 3.00381237938476E-03 - cg2d: Sum(rhs),rhsMax = -6.85280737694787E-03 3.08036411819214E-03 - cg2d: Sum(rhs),rhsMax = -5.32430727535902E-03 3.09182671069863E-03 - cg2d: Sum(rhs),rhsMax = -3.94713137597633E-03 3.03934310027987E-03 - cg2d: Sum(rhs),rhsMax = -2.99148618581425E-03 2.93659606044134E-03 - cg2d: Sum(rhs),rhsMax = -2.63983309994820E-03 2.80689805753234E-03 - cg2d: Sum(rhs),rhsMax = -2.95262908029424E-03 2.68543416568998E-03 - cg2d: Sum(rhs),rhsMax = -3.85865392657738E-03 2.73031558404110E-03 -(PID.TID 0000.0001) cg2d_init_res = 4.30920038630306E-04 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517513098642E-03 2.84716527327018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141270983088E-03 2.92480128291437E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356461821928E-03 2.97120288151901E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691600902542E-03 2.97966804344266E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712340670304E-03 3.00381237938477E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280737694790E-03 3.08036411819214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430727535908E-03 3.09182671069863E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713137597638E-03 3.03934310027989E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148618581432E-03 2.93659606044134E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983309994827E-03 2.80689805753235E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262908029430E-03 2.68543416568998E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865392657745E-03 2.73031558404110E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.30920038630311E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 8.99277731941519E-15 +(PID.TID 0000.0001) cg2d_last_res = 8.99277728322388E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72 (PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7790009794167E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = 1.3231706287118E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5004077444221E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7790009794168E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 1.3231706287119E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5004077444222E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 8.0571173087401E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6404495262344E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9955823121302E-03 @@ -1795,36 +1784,36 @@ (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5644033104930E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 8.5110634449566E-06 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1277658612391E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 7.6916800819366E-11 +(PID.TID 0000.0001) %MON pe_b_mean = 7.6916800819369E-11 (PID.TID 0000.0001) %MON ke_max = 3.5946007866524E-05 (PID.TID 0000.0001) %MON ke_mean = 7.6033089425347E-07 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.17138145567523E-03 2.80043602330374E-03 - cg2d: Sum(rhs),rhsMax = -6.62770809530571E-03 2.88238464267999E-03 - cg2d: Sum(rhs),rhsMax = -7.94102502267924E-03 2.96047703775096E-03 - cg2d: Sum(rhs),rhsMax = -8.85794593306000E-03 3.01993446707144E-03 - cg2d: Sum(rhs),rhsMax = -9.20747823510130E-03 3.04982329923301E-03 - cg2d: Sum(rhs),rhsMax = -8.93311477978056E-03 3.04517980952895E-03 - cg2d: Sum(rhs),rhsMax = -8.10185289229740E-03 3.11258929633955E-03 - cg2d: Sum(rhs),rhsMax = -6.88878938747742E-03 3.17297132779808E-03 - cg2d: Sum(rhs),rhsMax = -5.54076191478543E-03 3.17471656388758E-03 - cg2d: Sum(rhs),rhsMax = -4.32655868503503E-03 3.11938175605143E-03 - cg2d: Sum(rhs),rhsMax = -3.48371970540523E-03 3.01971788867661E-03 - cg2d: Sum(rhs),rhsMax = -3.17244073804397E-03 2.89700828093699E-03 -(PID.TID 0000.0001) cg2d_init_res = 3.26375601400708E-04 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138145567531E-03 2.80043602330375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770809530579E-03 2.88238464267999E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102502267931E-03 2.96047703775097E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794593306007E-03 3.01993446707144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747823510136E-03 3.04982329923301E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311477978064E-03 3.04517980952895E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185289229750E-03 3.11258929633955E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878938747751E-03 3.17297132779808E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076191478552E-03 3.17471656388758E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655868503513E-03 3.11938175605144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371970540533E-03 3.01971788867662E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244073804406E-03 2.89700828093700E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.26375601400709E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 5.69487327498452E-15 +(PID.TID 0000.0001) cg2d_last_res = 5.69487326468757E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 84 (PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 3.4496299546789E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = 7.4134342845401E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.0557415982525E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 7.4134342845407E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.0557415982526E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8100507720976E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8543317260059E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 6.8864774445142E-04 @@ -1856,35 +1845,35 @@ (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5504446157989E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 9.1766573574813E-06 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2941643393703E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 5.5752041820862E-11 +(PID.TID 0000.0001) %MON pe_b_mean = 5.5752041820865E-11 (PID.TID 0000.0001) %MON ke_max = 3.2735346501268E-05 (PID.TID 0000.0001) %MON ke_mean = 6.7896854684554E-07 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.44550667496131E-03 2.77676422525419E-03 - cg2d: Sum(rhs),rhsMax = -4.23987160392783E-03 2.78119166951152E-03 - cg2d: Sum(rhs),rhsMax = -5.39114876456462E-03 2.84461356555618E-03 - cg2d: Sum(rhs),rhsMax = -6.66774884152468E-03 2.91823911939351E-03 - cg2d: Sum(rhs),rhsMax = -7.81760236842714E-03 2.98773885252149E-03 - cg2d: Sum(rhs),rhsMax = -8.61805666712749E-03 3.03980211306566E-03 - cg2d: Sum(rhs),rhsMax = -8.91908494164310E-03 3.06473925782710E-03 - cg2d: Sum(rhs),rhsMax = -8.67143940447210E-03 3.06396596594009E-03 - cg2d: Sum(rhs),rhsMax = -7.93449177587539E-03 3.16208626061731E-03 - cg2d: Sum(rhs),rhsMax = -6.86259143936516E-03 3.21610125512187E-03 - cg2d: Sum(rhs),rhsMax = -5.67301288451219E-03 3.21680816914899E-03 - cg2d: Sum(rhs),rhsMax = -4.60212422195980E-03 3.16554822315723E-03 -(PID.TID 0000.0001) cg2d_init_res = 2.44479592849767E-04 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550667496142E-03 2.77676422525419E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987160392793E-03 2.78119166951153E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114876456473E-03 2.84461356555619E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774884152479E-03 2.91823911939351E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760236842725E-03 2.98773885252150E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805666712761E-03 3.03980211306567E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908494164321E-03 3.06473925782711E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143940447221E-03 3.06396596594009E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449177587552E-03 3.16208626061731E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259143936530E-03 3.21610125512187E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301288451233E-03 3.21680816914900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212422195993E-03 3.16554822315724E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.44479592849763E-04 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 13 -(PID.TID 0000.0001) cg2d_last_res = 2.88668667387297E-15 +(PID.TID 0000.0001) cg2d_last_res = 2.88668665694011E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 96 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4654051835816E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = 1.5700674404449E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4654051835817E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = 1.5700674404450E-04 (PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9821764958300E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2660200390913E-05 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9680811277824E-05 @@ -1917,123 +1906,123 @@ (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6382426437893E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 8.6214295890898E-06 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1553573972724E-05 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0868965644355E-10 +(PID.TID 0000.0001) %MON pe_b_mean = 1.0868965644356E-10 (PID.TID 0000.0001) %MON ke_max = 3.7094004719551E-05 (PID.TID 0000.0001) %MON ke_mean = 7.8864081151317E-07 (PID.TID 0000.0001) %MON ke_vol = 4.4009158039362E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.85860139912950E-03 3.07378664558317E-03 - cg2d: Sum(rhs),rhsMax = -3.58293297477722E-03 2.96071720766657E-03 - cg2d: Sum(rhs),rhsMax = -3.82105745081306E-03 2.84938997898948E-03 - cg2d: Sum(rhs),rhsMax = -4.51705713557009E-03 2.80618860570210E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860139912961E-03 3.07378664558317E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293297477733E-03 2.96071720766658E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105745081318E-03 2.84938997898949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705713557021E-03 2.80618860570211E-03 (PID.TID 0000.0001) %CHECKPOINT 100 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809587569146D-01 -(PID.TID 0000.0001) local fc = 0.473809587569146D-01 -(PID.TID 0000.0001) global fc = 0.473809587569146D-01 + --> objf_test(bi,bj) = 0.473809587569147D-01 +(PID.TID 0000.0001) local fc = 0.473809587569147D-01 +(PID.TID 0000.0001) global fc = 0.473809587569147D-01 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470257E-03 4.29236468104833E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539776E-03 6.43184796144658E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916737E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517855E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739476E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118113690E-03 1.22456378128443E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879417251E-03 1.44777510270362E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202872277E-03 1.58982062902970E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828108507E-03 1.64357697426163E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875169870E-04 1.61756159398061E-03 - cg2d: Sum(rhs),rhsMax = 7.99729206428733E-05 1.53363856597824E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056700375E-04 1.42794064564248E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816398002E-03 1.49223780561561E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898756440E-03 1.56210440474790E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888982739E-03 1.63424213142115E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917056600E-03 1.70505819058160E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192717E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260517E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268464209E-03 1.93938684114083E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209343231E-03 2.06671962577104E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343840646E-03 2.17651147351270E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123164005E-03 2.23681621027621E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762897491E-03 2.25047700750367E-03 - cg2d: Sum(rhs),rhsMax = -5.83637557916968E-04 2.23911227450567E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454537639E-03 2.31619526841969E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289156777E-03 2.39332628007075E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142204372E-03 2.46478012464753E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438142648E-03 2.52475933144517E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191396722E-03 2.56860713643225E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753908276E-03 2.59379160397444E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044298845E-02 2.60046741362487E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657793549E-03 2.59154640793844E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745552099E-03 2.57230689744723E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619430471E-03 2.57617678082103E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960323286E-03 2.60704657072955E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524088835E-03 2.55368004866345E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289833660E-03 2.53090267956822E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015721691E-03 2.55686897823141E-03 - cg2d: Sum(rhs),rhsMax = -1.68547888761825E-03 2.59998586190743E-03 - cg2d: Sum(rhs),rhsMax = -2.84766407415449E-03 2.65617340743755E-03 - cg2d: Sum(rhs),rhsMax = -4.53801265541868E-03 2.71885907823436E-03 - cg2d: Sum(rhs),rhsMax = -6.41728546911952E-03 2.78009792743560E-03 - cg2d: Sum(rhs),rhsMax = -8.11533161694990E-03 2.83193125835559E-03 - cg2d: Sum(rhs),rhsMax = -9.30436783640321E-03 2.86771962552011E-03 - cg2d: Sum(rhs),rhsMax = -9.76260395685164E-03 2.88321602464444E-03 - cg2d: Sum(rhs),rhsMax = -9.41588736356225E-03 2.87721816536719E-03 - cg2d: Sum(rhs),rhsMax = -8.34958545223978E-03 2.85172238290813E-03 - cg2d: Sum(rhs),rhsMax = -6.78891550008815E-03 2.90854929940380E-03 - cg2d: Sum(rhs),rhsMax = -5.05216135263868E-03 2.93304374436109E-03 - cg2d: Sum(rhs),rhsMax = -3.48645864282591E-03 2.88331760371237E-03 - cg2d: Sum(rhs),rhsMax = -2.39907587794029E-03 2.77469260149384E-03 - cg2d: Sum(rhs),rhsMax = -1.99776873390523E-03 2.64912183617286E-03 - cg2d: Sum(rhs),rhsMax = -2.35175891840159E-03 2.63954764388291E-03 - cg2d: Sum(rhs),rhsMax = -3.38063154231057E-03 2.64744430596754E-03 - cg2d: Sum(rhs),rhsMax = -4.87283027737347E-03 2.67027733920110E-03 - cg2d: Sum(rhs),rhsMax = -6.52958396346888E-03 2.75143061474967E-03 - cg2d: Sum(rhs),rhsMax = -8.02517513098638E-03 2.84716527327018E-03 - cg2d: Sum(rhs),rhsMax = -9.07141270983084E-03 2.92480128291437E-03 - cg2d: Sum(rhs),rhsMax = -9.47356461821924E-03 2.97120288151900E-03 - cg2d: Sum(rhs),rhsMax = -9.16691600902539E-03 2.97966804344266E-03 - cg2d: Sum(rhs),rhsMax = -8.22712340670301E-03 3.00381237938476E-03 - cg2d: Sum(rhs),rhsMax = -6.85280737694787E-03 3.08036411819214E-03 - cg2d: Sum(rhs),rhsMax = -5.32430727535902E-03 3.09182671069863E-03 - cg2d: Sum(rhs),rhsMax = -3.94713137597633E-03 3.03934310027987E-03 - cg2d: Sum(rhs),rhsMax = -2.99148618581425E-03 2.93659606044134E-03 - cg2d: Sum(rhs),rhsMax = -2.63983309994820E-03 2.80689805753234E-03 - cg2d: Sum(rhs),rhsMax = -2.95262908029424E-03 2.68543416568998E-03 - cg2d: Sum(rhs),rhsMax = -3.85865392657738E-03 2.73031558404110E-03 - cg2d: Sum(rhs),rhsMax = -5.17138145567523E-03 2.80043602330374E-03 - cg2d: Sum(rhs),rhsMax = -6.62770809530571E-03 2.88238464267999E-03 - cg2d: Sum(rhs),rhsMax = -7.94102502267924E-03 2.96047703775096E-03 - cg2d: Sum(rhs),rhsMax = -8.85794593306000E-03 3.01993446707144E-03 - cg2d: Sum(rhs),rhsMax = -9.20747823510130E-03 3.04982329923301E-03 - cg2d: Sum(rhs),rhsMax = -8.93311477978056E-03 3.04517980952895E-03 - cg2d: Sum(rhs),rhsMax = -8.10185289229740E-03 3.11258929633955E-03 - cg2d: Sum(rhs),rhsMax = -6.88878938747742E-03 3.17297132779808E-03 - cg2d: Sum(rhs),rhsMax = -5.54076191478543E-03 3.17471656388758E-03 - cg2d: Sum(rhs),rhsMax = -4.32655868503503E-03 3.11938175605143E-03 - cg2d: Sum(rhs),rhsMax = -3.48371970540523E-03 3.01971788867661E-03 - cg2d: Sum(rhs),rhsMax = -3.17244073804397E-03 2.89700828093699E-03 - cg2d: Sum(rhs),rhsMax = -3.44550667496131E-03 2.77676422525419E-03 - cg2d: Sum(rhs),rhsMax = -4.23987160392783E-03 2.78119166951152E-03 - cg2d: Sum(rhs),rhsMax = -5.39114876456462E-03 2.84461356555618E-03 - cg2d: Sum(rhs),rhsMax = -6.66774884152468E-03 2.91823911939351E-03 - cg2d: Sum(rhs),rhsMax = -7.81760236842714E-03 2.98773885252149E-03 - cg2d: Sum(rhs),rhsMax = -8.61805666712749E-03 3.03980211306566E-03 - cg2d: Sum(rhs),rhsMax = -8.91908494164310E-03 3.06473925782710E-03 - cg2d: Sum(rhs),rhsMax = -8.67143940447210E-03 3.06396596594009E-03 - cg2d: Sum(rhs),rhsMax = -7.93449177587539E-03 3.16208626061731E-03 - cg2d: Sum(rhs),rhsMax = -6.86259143936516E-03 3.21610125512187E-03 - cg2d: Sum(rhs),rhsMax = -5.67301288451219E-03 3.21680816914899E-03 - cg2d: Sum(rhs),rhsMax = -4.60212422195980E-03 3.16554822315723E-03 - cg2d: Sum(rhs),rhsMax = -3.85860139912950E-03 3.07378664558317E-03 - cg2d: Sum(rhs),rhsMax = -3.58293297477722E-03 2.96071720766657E-03 - cg2d: Sum(rhs),rhsMax = -3.82105745081306E-03 2.84938997898948E-03 - cg2d: Sum(rhs),rhsMax = -4.51705713557009E-03 2.80618860570210E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470256E-03 4.29236468104834E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539774E-03 6.43184796144661E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273386E-02 8.17951762916730E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390060E-02 9.31105228517862E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438197E-02 9.89364856739475E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118113688E-03 1.22456378128443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879417250E-03 1.44777510270361E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202872277E-03 1.58982062902970E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828108507E-03 1.64357697426163E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875169873E-04 1.61756159398061E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729206428621E-05 1.53363856597824E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056700378E-04 1.42794064564248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816398002E-03 1.49223780561562E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898756440E-03 1.56210440474790E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888982739E-03 1.63424213142115E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917056602E-03 1.70505819058160E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899820896E-02 1.77167127664522E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064674389E-02 1.83257530192717E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482911620E-02 1.88791212260517E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268464210E-03 1.93938684114083E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209343233E-03 2.06671962577103E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343840648E-03 2.17651147351270E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123164009E-03 2.23681621027622E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762897494E-03 2.25047700750366E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637557917001E-04 2.23911227450568E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454537642E-03 2.31619526841969E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289156781E-03 2.39332628007074E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142204376E-03 2.46478012464754E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438142652E-03 2.52475933144516E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191396727E-03 2.56860713643226E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753908283E-03 2.59379160397445E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044298846E-02 2.60046741362487E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657793556E-03 2.59154640793844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745552105E-03 2.57230689744724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619430475E-03 2.57617678082104E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960323290E-03 2.60704657072955E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524088840E-03 2.55368004866345E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289833664E-03 2.53090267956823E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015721695E-03 2.55686897823141E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547888761829E-03 2.59998586190743E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766407415454E-03 2.65617340743755E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801265541873E-03 2.71885907823436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728546911956E-03 2.78009792743559E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533161694994E-03 2.83193125835560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436783640324E-03 2.86771962552011E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260395685167E-03 2.88321602464443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588736356230E-03 2.87721816536720E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958545223980E-03 2.85172238290814E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891550008817E-03 2.90854929940380E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216135263872E-03 2.93304374436109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645864282595E-03 2.88331760371237E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907587794035E-03 2.77469260149385E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776873390528E-03 2.64912183617287E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175891840163E-03 2.63954764388291E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063154231061E-03 2.64744430596754E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283027737351E-03 2.67027733920110E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958396346892E-03 2.75143061474967E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517513098642E-03 2.84716527327018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141270983088E-03 2.92480128291437E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356461821928E-03 2.97120288151901E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691600902542E-03 2.97966804344266E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712340670304E-03 3.00381237938477E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280737694790E-03 3.08036411819214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430727535908E-03 3.09182671069863E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713137597638E-03 3.03934310027989E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148618581432E-03 2.93659606044134E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983309994827E-03 2.80689805753235E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262908029430E-03 2.68543416568998E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865392657745E-03 2.73031558404110E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138145567531E-03 2.80043602330375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770809530579E-03 2.88238464267999E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102502267931E-03 2.96047703775097E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794593306007E-03 3.01993446707144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747823510136E-03 3.04982329923301E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311477978064E-03 3.04517980952895E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185289229750E-03 3.11258929633955E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878938747751E-03 3.17297132779808E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076191478552E-03 3.17471656388758E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655868503513E-03 3.11938175605144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371970540533E-03 3.01971788867662E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244073804406E-03 2.89700828093700E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550667496142E-03 2.77676422525419E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987160392793E-03 2.78119166951153E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114876456473E-03 2.84461356555619E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774884152479E-03 2.91823911939351E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760236842725E-03 2.98773885252150E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805666712761E-03 3.03980211306567E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908494164321E-03 3.06473925782711E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143940447221E-03 3.06396596594009E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449177587552E-03 3.16208626061731E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259143936530E-03 3.21610125512187E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301288451233E-03 3.21680816914900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212422195993E-03 3.16554822315724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860139912961E-03 3.07378664558317E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293297477733E-03 2.96071720766658E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105745081318E-03 2.84938997898949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705713557021E-03 2.80618860570211E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE @@ -2041,13 +2030,22 @@ adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 4.73809587569146E-02 +(PID.TID 0000.0001) grdchk reference fc: fcref = 4.73809587569147E-02 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -2066,112 +2064,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353661E-03 2.18766023591547E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470118E-03 4.29236467489117E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539434E-03 6.43184794955315E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273337E-02 8.17951761612620E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390007E-02 9.31105227737165E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438158E-02 9.89364856869082E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118113728E-03 1.22456378106179E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879418072E-03 1.44777510269918E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202874205E-03 1.58982062947535E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828111669E-03 1.64357697541167E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875210783E-04 1.61756159607140E-03 - cg2d: Sum(rhs),rhsMax = 7.99729206028850E-05 1.53363856918733E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056719304E-04 1.42794064483551E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816394571E-03 1.49223780427631E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898743163E-03 1.56210440285115E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888953858E-03 1.63424212900136E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917005364E-03 1.70505818772880E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899812801E-02 1.77167127349019E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064662577E-02 1.83257529861809E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482895384E-02 1.88791211928007E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268251290E-03 1.93938683790092E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209074435E-03 2.06671963530631E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343511604E-03 2.17651148376970E-03 - cg2d: Sum(rhs),rhsMax = -2.55199122771006E-03 2.23681622160620E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762436946E-03 2.25047702025795E-03 - cg2d: Sum(rhs),rhsMax = -5.83637552594750E-04 2.23911227109924E-03 - cg2d: Sum(rhs),rhsMax = -1.01911453928360E-03 2.31619526455346E-03 - cg2d: Sum(rhs),rhsMax = -2.32886288463211E-03 2.39332627560797E-03 - cg2d: Sum(rhs),rhsMax = -4.24067141417068E-03 2.46478011950501E-03 - cg2d: Sum(rhs),rhsMax = -6.36913437249885E-03 2.52475932560676E-03 - cg2d: Sum(rhs),rhsMax = -8.29342190384817E-03 2.56860712995026E-03 - cg2d: Sum(rhs),rhsMax = -9.64059752762208E-03 2.59379159695870E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044169271E-02 2.60046740622201E-03 - cg2d: Sum(rhs),rhsMax = -9.76069656333068E-03 2.59154640030541E-03 - cg2d: Sum(rhs),rhsMax = -8.54505743913090E-03 2.57230688972415E-03 - cg2d: Sum(rhs),rhsMax = -6.76655617601004E-03 2.57617678614289E-03 - cg2d: Sum(rhs),rhsMax = -4.78666958293516E-03 2.60704657565780E-03 - cg2d: Sum(rhs),rhsMax = -2.99995521850789E-03 2.55368005309173E-03 - cg2d: Sum(rhs),rhsMax = -1.75595287380639E-03 2.53090267194900E-03 - cg2d: Sum(rhs),rhsMax = -1.29134013047384E-03 2.55686897050803E-03 - cg2d: Sum(rhs),rhsMax = -1.68547885859290E-03 2.59998585397636E-03 - cg2d: Sum(rhs),rhsMax = -2.84766404276155E-03 2.65617339920652E-03 - cg2d: Sum(rhs),rhsMax = -4.53801262154983E-03 2.71885906964107E-03 - cg2d: Sum(rhs),rhsMax = -6.41728543264015E-03 2.78009791845916E-03 - cg2d: Sum(rhs),rhsMax = -8.11533157770057E-03 2.83193124901885E-03 - cg2d: Sum(rhs),rhsMax = -9.30436779420547E-03 2.86771961588277E-03 - cg2d: Sum(rhs),rhsMax = -9.76260391151742E-03 2.88321601478918E-03 - cg2d: Sum(rhs),rhsMax = -9.41588731490512E-03 2.87721815538183E-03 - cg2d: Sum(rhs),rhsMax = -8.34958540008575E-03 2.85172237286792E-03 - cg2d: Sum(rhs),rhsMax = -6.78891544428439E-03 2.90854930502966E-03 - cg2d: Sum(rhs),rhsMax = -5.05216129305821E-03 2.93304374942347E-03 - cg2d: Sum(rhs),rhsMax = -3.48645857936760E-03 2.88331760809225E-03 - cg2d: Sum(rhs),rhsMax = -2.39907581052407E-03 2.77469260519571E-03 - cg2d: Sum(rhs),rhsMax = -1.99776866246340E-03 2.64912182597155E-03 - cg2d: Sum(rhs),rhsMax = -2.35175884286819E-03 2.63954763352601E-03 - cg2d: Sum(rhs),rhsMax = -3.38063146261060E-03 2.64744429542211E-03 - cg2d: Sum(rhs),rhsMax = -4.87283019341425E-03 2.67027732846092E-03 - cg2d: Sum(rhs),rhsMax = -6.52958387513524E-03 2.75143054651375E-03 - cg2d: Sum(rhs),rhsMax = -8.02517503814061E-03 2.84716520454138E-03 - cg2d: Sum(rhs),rhsMax = -9.07141261231745E-03 2.92480121322807E-03 - cg2d: Sum(rhs),rhsMax = -9.47356451587362E-03 2.97120281033455E-03 - cg2d: Sum(rhs),rhsMax = -9.16691590168470E-03 2.97966797026566E-03 - cg2d: Sum(rhs),rhsMax = -8.22712329421696E-03 3.00381238341768E-03 - cg2d: Sum(rhs),rhsMax = -6.85280725918767E-03 3.08036412163273E-03 - cg2d: Sum(rhs),rhsMax = -5.32430715222233E-03 3.09182671335295E-03 - cg2d: Sum(rhs),rhsMax = -3.94713124738730E-03 3.03934310207189E-03 - cg2d: Sum(rhs),rhsMax = -2.99148605171901E-03 2.93659606142843E-03 - cg2d: Sum(rhs),rhsMax = -2.63983296030625E-03 2.80689805789312E-03 - cg2d: Sum(rhs),rhsMax = -2.95262893506775E-03 2.68543408135165E-03 - cg2d: Sum(rhs),rhsMax = -3.85865377572059E-03 2.73031549979248E-03 - cg2d: Sum(rhs),rhsMax = -5.17138129912601E-03 2.80043593919769E-03 - cg2d: Sum(rhs),rhsMax = -6.62770793298107E-03 2.88238455849333E-03 - cg2d: Sum(rhs),rhsMax = -7.94102485447581E-03 2.96047695302616E-03 - cg2d: Sum(rhs),rhsMax = -8.85794575885941E-03 3.01993438120723E-03 - cg2d: Sum(rhs),rhsMax = -9.20747805477929E-03 3.04982321160556E-03 - cg2d: Sum(rhs),rhsMax = -8.93311459321826E-03 3.04517971961920E-03 - cg2d: Sum(rhs),rhsMax = -8.10185269939222E-03 3.11258929644989E-03 - cg2d: Sum(rhs),rhsMax = -6.88878918815146E-03 3.17297132696760E-03 - cg2d: Sum(rhs),rhsMax = -5.54076170898975E-03 3.17471656193036E-03 - cg2d: Sum(rhs),rhsMax = -4.32655847274852E-03 3.11938175292687E-03 - cg2d: Sum(rhs),rhsMax = -3.48371948662848E-03 3.01971788449930E-03 - cg2d: Sum(rhs),rhsMax = -3.17244051278919E-03 2.89700827595525E-03 - cg2d: Sum(rhs),rhsMax = -3.44550644324019E-03 2.77676421980119E-03 - cg2d: Sum(rhs),rhsMax = -4.23987136573985E-03 2.78119156868094E-03 - cg2d: Sum(rhs),rhsMax = -5.39114851988811E-03 2.84461346509739E-03 - cg2d: Sum(rhs),rhsMax = -6.66774859031250E-03 2.91823901906956E-03 - cg2d: Sum(rhs),rhsMax = -7.81760211060794E-03 2.98773875185461E-03 - cg2d: Sum(rhs),rhsMax = -8.61805640261235E-03 3.03980201143308E-03 - cg2d: Sum(rhs),rhsMax = -8.91908467033645E-03 3.06473915458495E-03 - cg2d: Sum(rhs),rhsMax = -8.67143912628469E-03 3.06396596110159E-03 - cg2d: Sum(rhs),rhsMax = -7.93449149073678E-03 3.16208625498571E-03 - cg2d: Sum(rhs),rhsMax = -6.86259114723331E-03 3.21610124836293E-03 - cg2d: Sum(rhs),rhsMax = -5.67301258537810E-03 3.21680816104885E-03 - cg2d: Sum(rhs),rhsMax = -4.60212391584630E-03 3.16554821366411E-03 - cg2d: Sum(rhs),rhsMax = -3.85860108608403E-03 3.07378663481752E-03 - cg2d: Sum(rhs),rhsMax = -3.58293265486035E-03 2.96071719589744E-03 - cg2d: Sum(rhs),rhsMax = -3.82105712408440E-03 2.84938996658172E-03 - cg2d: Sum(rhs),rhsMax = -4.51705680207468E-03 2.80618848943839E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470138E-03 4.29236467488742E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539461E-03 6.43184794955368E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273340E-02 8.17951761612664E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390010E-02 9.31105227737208E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438162E-02 9.89364856869623E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118113775E-03 1.22456378106171E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879418124E-03 1.44777510269911E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202874265E-03 1.58982062947529E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828111734E-03 1.64357697541161E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875211491E-04 1.61756159607136E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729206021186E-05 1.53363856918730E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056720131E-04 1.42794064483594E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816394659E-03 1.49223780427673E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898743257E-03 1.56210440285155E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888953957E-03 1.63424212900175E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917005467E-03 1.70505818772917E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899812812E-02 1.77167127349054E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064662589E-02 1.83257529861844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482895395E-02 1.88791211928040E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268251408E-03 1.93938683790124E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209074559E-03 2.06671963530633E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343511731E-03 2.17651148376972E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199122771137E-03 2.23681622160623E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762437080E-03 2.25047702025798E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637552596128E-04 2.23911227109950E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911453928500E-03 2.31619526455370E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886288463355E-03 2.39332627560820E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067141417215E-03 2.46478011950523E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913437250035E-03 2.52475932560697E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342190384970E-03 2.56860712995045E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059752762362E-03 2.59379159695890E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044169287E-02 2.60046740622219E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069656333228E-03 2.59154640030558E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505743913250E-03 2.57230688972431E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655617601167E-03 2.57617678614299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666958293681E-03 2.60704657565790E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995521850954E-03 2.55368005309183E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595287380805E-03 2.53090267194913E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134013047550E-03 2.55686897050816E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547885859457E-03 2.59998585397648E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766404276326E-03 2.65617339920663E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801262155154E-03 2.71885906964117E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728543264188E-03 2.78009791845927E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533157770232E-03 2.83193124901895E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436779420724E-03 2.86771961588286E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260391151921E-03 2.88321601478928E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588731490689E-03 2.87721815538191E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958540008749E-03 2.85172237286800E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891544428611E-03 2.90854930502974E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216129305996E-03 2.93304374942356E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645857936935E-03 2.88331760809233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907581052582E-03 2.77469260519579E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776866246515E-03 2.64912182597163E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175884286995E-03 2.63954763352608E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063146261235E-03 2.64744429542217E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283019341600E-03 2.67027732846099E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958387513699E-03 2.75143054651393E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517503814236E-03 2.84716520454155E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141261231919E-03 2.92480121322825E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356451587533E-03 2.97120281033472E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691590168637E-03 2.97966797026583E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712329421863E-03 3.00381238341775E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280725918932E-03 3.08036412163280E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430715222395E-03 3.09182671335300E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713124738891E-03 3.03934310207195E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148605172061E-03 2.93659606142850E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983296030783E-03 2.80689805789317E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262893506933E-03 2.68543408135181E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865377572216E-03 2.73031549979264E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138129912759E-03 2.80043593919785E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770793298264E-03 2.88238455849348E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102485447737E-03 2.96047695302632E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794575886097E-03 3.01993438120737E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747805478085E-03 3.04982321160573E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311459321980E-03 3.04517971961935E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185269939374E-03 3.11258929644994E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878918815300E-03 3.17297132696764E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076170899129E-03 3.17471656193041E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655847275006E-03 3.11938175292692E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371948663003E-03 3.01971788449936E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244051279073E-03 2.89700827595530E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550644324173E-03 2.77676421980125E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987136574139E-03 2.78119156868109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114851988965E-03 2.84461346509753E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774859031404E-03 2.91823901906971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760211060947E-03 2.98773875185476E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805640261389E-03 3.03980201143323E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908467033798E-03 3.06473915458509E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143912628621E-03 3.06396596110164E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449149073829E-03 3.16208625498577E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259114723480E-03 3.21610124836298E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301258537960E-03 3.21680816104889E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212391584780E-03 3.16554821366416E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860108608553E-03 3.07378663481757E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293265486185E-03 2.96071719589749E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105712408590E-03 2.84938996658177E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705680207616E-03 2.80618848943852E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809593230966D-01 -(PID.TID 0000.0001) local fc = 0.473809593230966D-01 -(PID.TID 0000.0001) global fc = 0.473809593230966D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809593230966E-02 + --> objf_test(bi,bj) = 0.473809593230969D-01 +(PID.TID 0000.0001) local fc = 0.473809593230969D-01 +(PID.TID 0000.0001) global fc = 0.473809593230969D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809593230969E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -2182,118 +2180,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353680E-03 2.18766023593342E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470398E-03 4.29236468720546E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540120E-03 6.43184797334014E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273435E-02 8.17951764220847E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390113E-02 9.31105229298567E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438237E-02 9.89364856609866E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118113656E-03 1.22456378150706E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879416436E-03 1.44777510270806E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202870353E-03 1.58982062858407E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828105347E-03 1.64357697311160E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875128990E-04 1.61756159188984E-03 - cg2d: Sum(rhs),rhsMax = 7.99729206828249E-05 1.53363856276915E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056681473E-04 1.42794064644945E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816401436E-03 1.49223780695492E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898769721E-03 1.56210440664466E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889011625E-03 1.63424213384094E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917107843E-03 1.70505819343441E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899828991E-02 1.77167127980026E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064686201E-02 1.83257530523626E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482927857E-02 1.88791212593028E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268677139E-03 1.93938684438076E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209612036E-03 2.06671961623576E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344169696E-03 2.17651146325572E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123557016E-03 2.23681619894624E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763358045E-03 2.25047699474939E-03 - cg2d: Sum(rhs),rhsMax = -5.83637563239282E-04 2.23911227791211E-03 - cg2d: Sum(rhs),rhsMax = -1.01911455146928E-03 2.31619527228592E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289850355E-03 2.39332628453352E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142991689E-03 2.46478012979007E-03 - cg2d: Sum(rhs),rhsMax = -6.36913439035422E-03 2.52475933728357E-03 - cg2d: Sum(rhs),rhsMax = -8.29342192408640E-03 2.56860714291424E-03 - cg2d: Sum(rhs),rhsMax = -9.64059755054360E-03 2.59379161099020E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044428421E-02 2.60046742102773E-03 - cg2d: Sum(rhs),rhsMax = -9.76069659254052E-03 2.59154641557147E-03 - cg2d: Sum(rhs),rhsMax = -8.54505747191129E-03 2.57230690517032E-03 - cg2d: Sum(rhs),rhsMax = -6.76655621259956E-03 2.57617677549918E-03 - cg2d: Sum(rhs),rhsMax = -4.78666962353074E-03 2.60704656580132E-03 - cg2d: Sum(rhs),rhsMax = -2.99995526326903E-03 2.55368004423517E-03 - cg2d: Sum(rhs),rhsMax = -1.75595292286704E-03 2.53090268718745E-03 - cg2d: Sum(rhs),rhsMax = -1.29134018396022E-03 2.55686898595480E-03 - cg2d: Sum(rhs),rhsMax = -1.68547891664383E-03 2.59998586983850E-03 - cg2d: Sum(rhs),rhsMax = -2.84766410554766E-03 2.65617341566859E-03 - cg2d: Sum(rhs),rhsMax = -4.53801268928775E-03 2.71885908682766E-03 - cg2d: Sum(rhs),rhsMax = -6.41728550559908E-03 2.78009793641204E-03 - cg2d: Sum(rhs),rhsMax = -8.11533165619942E-03 2.83193126769237E-03 - cg2d: Sum(rhs),rhsMax = -9.30436787860114E-03 2.86771963515745E-03 - cg2d: Sum(rhs),rhsMax = -9.76260400218604E-03 2.88321603449970E-03 - cg2d: Sum(rhs),rhsMax = -9.41588741221961E-03 2.87721817535255E-03 - cg2d: Sum(rhs),rhsMax = -8.34958550439404E-03 2.85172239294834E-03 - cg2d: Sum(rhs),rhsMax = -6.78891555589217E-03 2.90854929377794E-03 - cg2d: Sum(rhs),rhsMax = -5.05216141221940E-03 2.93304373929874E-03 - cg2d: Sum(rhs),rhsMax = -3.48645870628445E-03 2.88331759933249E-03 - cg2d: Sum(rhs),rhsMax = -2.39907594535677E-03 2.77469259779198E-03 - cg2d: Sum(rhs),rhsMax = -1.99776880534730E-03 2.64912184637419E-03 - cg2d: Sum(rhs),rhsMax = -2.35175899393523E-03 2.63954765423982E-03 - cg2d: Sum(rhs),rhsMax = -3.38063162201077E-03 2.64744431651299E-03 - cg2d: Sum(rhs),rhsMax = -4.87283036133292E-03 2.67027734994129E-03 - cg2d: Sum(rhs),rhsMax = -6.52958405180274E-03 2.75143068298560E-03 - cg2d: Sum(rhs),rhsMax = -8.02517522383236E-03 2.84716534199899E-03 - cg2d: Sum(rhs),rhsMax = -9.07141280734443E-03 2.92480135260068E-03 - cg2d: Sum(rhs),rhsMax = -9.47356472056505E-03 2.97120295270348E-03 - cg2d: Sum(rhs),rhsMax = -9.16691611636633E-03 2.97966811661967E-03 - cg2d: Sum(rhs),rhsMax = -8.22712351918930E-03 3.00381237535185E-03 - cg2d: Sum(rhs),rhsMax = -6.85280749470830E-03 3.08036411475155E-03 - cg2d: Sum(rhs),rhsMax = -5.32430739849602E-03 3.09182670804432E-03 - cg2d: Sum(rhs),rhsMax = -3.94713150456564E-03 3.03934309848790E-03 - cg2d: Sum(rhs),rhsMax = -2.99148631990979E-03 2.93659605945424E-03 - cg2d: Sum(rhs),rhsMax = -2.63983323959047E-03 2.80689805717159E-03 - cg2d: Sum(rhs),rhsMax = -2.95262922552104E-03 2.68543425002833E-03 - cg2d: Sum(rhs),rhsMax = -3.85865407743447E-03 2.73031566828973E-03 - cg2d: Sum(rhs),rhsMax = -5.17138161222477E-03 2.80043610740980E-03 - cg2d: Sum(rhs),rhsMax = -6.62770825763066E-03 2.88238472686666E-03 - cg2d: Sum(rhs),rhsMax = -7.94102519088297E-03 2.96047712247577E-03 - cg2d: Sum(rhs),rhsMax = -8.85794610726091E-03 3.01993455293566E-03 - cg2d: Sum(rhs),rhsMax = -9.20747841542363E-03 3.04982338686045E-03 - cg2d: Sum(rhs),rhsMax = -8.93311496634321E-03 3.04517989943871E-03 - cg2d: Sum(rhs),rhsMax = -8.10185308520295E-03 3.11258929622922E-03 - cg2d: Sum(rhs),rhsMax = -6.88878958680373E-03 3.17297132862858E-03 - cg2d: Sum(rhs),rhsMax = -5.54076212058147E-03 3.17471656584481E-03 - cg2d: Sum(rhs),rhsMax = -4.32655889732190E-03 3.11938175917600E-03 - cg2d: Sum(rhs),rhsMax = -3.48371992418232E-03 3.01971789285393E-03 - cg2d: Sum(rhs),rhsMax = -3.17244096329910E-03 2.89700828591875E-03 - cg2d: Sum(rhs),rhsMax = -3.44550690668278E-03 2.77676423070719E-03 - cg2d: Sum(rhs),rhsMax = -4.23987184211618E-03 2.78119177034212E-03 - cg2d: Sum(rhs),rhsMax = -5.39114900924151E-03 2.84461366601500E-03 - cg2d: Sum(rhs),rhsMax = -6.66774909273724E-03 2.91823921971747E-03 - cg2d: Sum(rhs),rhsMax = -7.81760262624674E-03 2.98773895318840E-03 - cg2d: Sum(rhs),rhsMax = -8.61805693164305E-03 3.03980221469826E-03 - cg2d: Sum(rhs),rhsMax = -8.91908521295016E-03 3.06473936106930E-03 - cg2d: Sum(rhs),rhsMax = -8.67143968265996E-03 3.06396597077861E-03 - cg2d: Sum(rhs),rhsMax = -7.93449206101449E-03 3.16208626624890E-03 - cg2d: Sum(rhs),rhsMax = -6.86259173149752E-03 3.21610126188083E-03 - cg2d: Sum(rhs),rhsMax = -5.67301318364675E-03 3.21680817724915E-03 - cg2d: Sum(rhs),rhsMax = -4.60212452807381E-03 3.16554823265038E-03 - cg2d: Sum(rhs),rhsMax = -3.85860171217546E-03 3.07378665634885E-03 - cg2d: Sum(rhs),rhsMax = -3.58293329469460E-03 2.96071721943572E-03 - cg2d: Sum(rhs),rhsMax = -3.82105777754225E-03 2.84938999139726E-03 - cg2d: Sum(rhs),rhsMax = -4.51705746906604E-03 2.80618872196583E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587219E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470377E-03 4.29236468720922E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540093E-03 6.43184797333949E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273432E-02 8.17951764220796E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390109E-02 9.31105229298516E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438232E-02 9.89364856609334E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118113605E-03 1.22456378150714E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879416377E-03 1.44777510270814E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202870289E-03 1.58982062858412E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828105275E-03 1.64357697311164E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875128218E-04 1.61756159188988E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729206836555E-05 1.53363856276919E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056680585E-04 1.42794064644902E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816401342E-03 1.49223780695450E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898769620E-03 1.56210440664426E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889011519E-03 1.63424213384056E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917107733E-03 1.70505819343404E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899828979E-02 1.77167127979990E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064686189E-02 1.83257530523591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482927845E-02 1.88791212592995E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268677008E-03 1.93938684438042E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209611900E-03 2.06671961623574E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344169556E-03 2.17651146325569E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123556872E-03 2.23681619894620E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763357898E-03 2.25047699474935E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637563237776E-04 2.23911227791186E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911455146773E-03 2.31619527228567E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289850197E-03 2.39332628453329E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142991527E-03 2.46478012978984E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913439035257E-03 2.52475933728335E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342192408473E-03 2.56860714291404E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059755054189E-03 2.59379161099000E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044428404E-02 2.60046742102755E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069659253873E-03 2.59154641557129E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505747190950E-03 2.57230690517015E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655621259773E-03 2.57617677549908E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666962352892E-03 2.60704656580122E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995526326717E-03 2.55368004423507E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595292286517E-03 2.53090268718731E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134018395833E-03 2.55686898595466E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547891664193E-03 2.59998586983837E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766410554575E-03 2.65617341566846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801268928584E-03 2.71885908682754E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728550559718E-03 2.78009793641193E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533165619751E-03 2.83193126769227E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436787859923E-03 2.86771963515735E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260400218411E-03 2.88321603449960E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588741221766E-03 2.87721817535245E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958550439207E-03 2.85172239294824E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891555589017E-03 2.90854929377785E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216141221741E-03 2.93304373929864E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645870628246E-03 2.88331759933239E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907594535478E-03 2.77469259779189E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776880534531E-03 2.64912184637411E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175899393324E-03 2.63954765423974E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063162200879E-03 2.64744431651291E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283036133093E-03 2.67027734994121E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958405180076E-03 2.75143068298541E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517522383038E-03 2.84716534199880E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141280734246E-03 2.92480135260048E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356472056307E-03 2.97120295270329E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691611636434E-03 2.97966811661949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712351918731E-03 3.00381237535178E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280749470633E-03 3.08036411475148E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430739849406E-03 3.09182670804423E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713150456370E-03 3.03934309848782E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148631990783E-03 2.93659605945416E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983323958852E-03 2.80689805717152E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262922551908E-03 2.68543425002815E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865407743252E-03 2.73031566828955E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138161222282E-03 2.80043610740963E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770825762873E-03 2.88238472686649E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102519088104E-03 2.96047712247560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794610725897E-03 3.01993455293549E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747841542174E-03 3.04982338686028E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311496634132E-03 3.04517989943855E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185308520107E-03 3.11258929622915E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878958680187E-03 3.17297132862852E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076212057961E-03 3.17471656584476E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655889732003E-03 3.11938175917593E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371992418046E-03 3.01971789285386E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244096329724E-03 2.89700828591868E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550690668093E-03 2.77676423070713E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987184211433E-03 2.78119177034196E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114900923966E-03 2.84461366601485E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774909273540E-03 2.91823921971732E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760262624490E-03 2.98773895318824E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805693164119E-03 3.03980221469812E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908521294829E-03 3.06473936106915E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143968265808E-03 3.06396597077855E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449206101261E-03 3.16208626624884E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259173149566E-03 3.21610126188076E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301318364491E-03 3.21680817724908E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212452807195E-03 3.16554823265030E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860171217358E-03 3.07378665634878E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293329469273E-03 2.96071721943564E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105777754038E-03 2.84938999139719E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705746906418E-03 2.80618872196568E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809581907328D-01 -(PID.TID 0000.0001) local fc = 0.473809581907328D-01 -(PID.TID 0000.0001) global fc = 0.473809581907328D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809581907328E-02 + --> objf_test(bi,bj) = 0.473809581907324D-01 +(PID.TID 0000.0001) local fc = 0.473809581907324D-01 +(PID.TID 0000.0001) global fc = 0.473809581907324D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809581907324E-02 grad-res ------------------------------- grad-res 0 1 1 1 1 1 1 1 4.73809587569E-02 4.73809593231E-02 4.73809581907E-02 - grad-res 0 1 1 1 0 1 1 1 5.66189251369E-06 5.66181913852E-06 1.29594767693E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.66189251368943E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = 5.66181913852493E-06 + grad-res 0 1 1 1 0 1 1 1 5.66182268558E-06 5.66182278144E-06 -1.69312097675E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.66182268558272E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.66182278144423E-06 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 25 2 @@ -2310,112 +2308,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353673E-03 2.18766023594884E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470976E-03 4.29236468120726E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540669E-03 6.43184796173360E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273307E-02 8.17951763010464E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389536E-02 9.31105228758261E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562436922E-02 9.89364856920657E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118090870E-03 1.22456378186783E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879383143E-03 1.44777510334617E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202827589E-03 1.58982062959710E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828056042E-03 1.64357697457628E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874613012E-04 1.61756159384449E-03 - cg2d: Sum(rhs),rhsMax = 7.99729211771214E-05 1.53363856520261E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056241146E-04 1.42794063208168E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816363326E-03 1.49223779028202E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898734204E-03 1.56210438853535E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888971008E-03 1.63424211534204E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917050399E-03 1.70505817559912E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899820106E-02 1.77167126350278E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064672625E-02 1.83257529100690E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482908168E-02 1.88791211384383E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268408401E-03 1.93938683402163E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209265857E-03 2.06671962014807E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343746353E-03 2.17651146776332E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123062275E-03 2.23681620422010E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762801641E-03 2.25047700090561E-03 - cg2d: Sum(rhs),rhsMax = -5.83637557171576E-04 2.23911226023402E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454499774E-03 2.31619525057628E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289168682E-03 2.39332625889241E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142275077E-03 2.46478010082049E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438276120E-03 2.52475930598474E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191591879E-03 2.56860711050725E-03 - cg2d: Sum(rhs),rhsMax = -9.64059754160044E-03 2.59379157870790E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044328971E-02 2.60046738990689E-03 - cg2d: Sum(rhs),rhsMax = -9.76069658137565E-03 2.59154638628428E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745935033E-03 2.57230687792503E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619853406E-03 2.57617678823090E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960793399E-03 2.60704657821863E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524619448E-03 2.55368005623043E-03 - cg2d: Sum(rhs),rhsMax = -1.75595290443140E-03 2.53090266210134E-03 - cg2d: Sum(rhs),rhsMax = -1.29134016431389E-03 2.55686895908830E-03 - cg2d: Sum(rhs),rhsMax = -1.68547889593427E-03 2.59998584054381E-03 - cg2d: Sum(rhs),rhsMax = -2.84766408388253E-03 2.65617338366659E-03 - cg2d: Sum(rhs),rhsMax = -4.53801266670511E-03 2.71885905223593E-03 - cg2d: Sum(rhs),rhsMax = -6.41728548205042E-03 2.78009789969744E-03 - cg2d: Sum(rhs),rhsMax = -8.11533163154897E-03 2.83193122956108E-03 - cg2d: Sum(rhs),rhsMax = -9.30436785264194E-03 2.86771959640686E-03 - cg2d: Sum(rhs),rhsMax = -9.76260397466956E-03 2.88321599586262E-03 - cg2d: Sum(rhs),rhsMax = -9.41588738289346E-03 2.87721813736476E-03 - cg2d: Sum(rhs),rhsMax = -8.34958547304028E-03 2.85172235586407E-03 - cg2d: Sum(rhs),rhsMax = -6.78891552235873E-03 2.90854931139271E-03 - cg2d: Sum(rhs),rhsMax = -5.05216137643857E-03 2.93304375657952E-03 - cg2d: Sum(rhs),rhsMax = -3.48645866827462E-03 2.88331761615463E-03 - cg2d: Sum(rhs),rhsMax = -2.39907590520713E-03 2.77469261418103E-03 - cg2d: Sum(rhs),rhsMax = -1.99776876318859E-03 2.64912180937074E-03 - cg2d: Sum(rhs),rhsMax = -2.35175894990209E-03 2.63954761605396E-03 - cg2d: Sum(rhs),rhsMax = -3.38063157620340E-03 2.64744427711023E-03 - cg2d: Sum(rhs),rhsMax = -4.87283031378553E-03 2.67027730952189E-03 - cg2d: Sum(rhs),rhsMax = -6.52958400246514E-03 2.75143066683085E-03 - cg2d: Sum(rhs),rhsMax = -8.02517517256834E-03 2.84716532501703E-03 - cg2d: Sum(rhs),rhsMax = -9.07141275394729E-03 2.92480133476295E-03 - cg2d: Sum(rhs),rhsMax = -9.47356466478714E-03 2.97120293399570E-03 - cg2d: Sum(rhs),rhsMax = -9.16691605795658E-03 2.97966809704796E-03 - cg2d: Sum(rhs),rhsMax = -8.22712345793143E-03 3.00381239580816E-03 - cg2d: Sum(rhs),rhsMax = -6.85280743045155E-03 3.08036413490128E-03 - cg2d: Sum(rhs),rhsMax = -5.32430733117254E-03 3.09182672769894E-03 - cg2d: Sum(rhs),rhsMax = -3.94713143419108E-03 3.03934311759826E-03 - cg2d: Sum(rhs),rhsMax = -2.99148624656654E-03 2.93659607812134E-03 - cg2d: Sum(rhs),rhsMax = -2.63983316339742E-03 2.80689807562556E-03 - cg2d: Sum(rhs),rhsMax = -2.95262914659577E-03 2.68543422549717E-03 - cg2d: Sum(rhs),rhsMax = -3.85865399585564E-03 2.73031564307389E-03 - cg2d: Sum(rhs),rhsMax = -5.17138152800239E-03 2.80043608144604E-03 - cg2d: Sum(rhs),rhsMax = -6.62770817069058E-03 2.88238470008204E-03 - cg2d: Sum(rhs),rhsMax = -7.94102510106866E-03 2.96047709480202E-03 - cg2d: Sum(rhs),rhsMax = -8.85794601435263E-03 3.01993452432343E-03 - cg2d: Sum(rhs),rhsMax = -9.20747831917085E-03 3.04982335729070E-03 - cg2d: Sum(rhs),rhsMax = -8.93311486650409E-03 3.04517986892891E-03 - cg2d: Sum(rhs),rhsMax = -8.10185298158275E-03 3.11258931821408E-03 - cg2d: Sum(rhs),rhsMax = -6.88878947928426E-03 3.17297134992250E-03 - cg2d: Sum(rhs),rhsMax = -5.54076200913554E-03 3.17471658627480E-03 - cg2d: Sum(rhs),rhsMax = -4.32655878200956E-03 3.11938177874004E-03 - cg2d: Sum(rhs),rhsMax = -3.48371980512944E-03 3.01971791172387E-03 - cg2d: Sum(rhs),rhsMax = -3.17244084066247E-03 2.89700830440803E-03 - cg2d: Sum(rhs),rhsMax = -3.44550678060856E-03 2.77676424920951E-03 - cg2d: Sum(rhs),rhsMax = -4.23987171270007E-03 2.78119173488310E-03 - cg2d: Sum(rhs),rhsMax = -5.39114887649883E-03 2.84461363001453E-03 - cg2d: Sum(rhs),rhsMax = -6.66774895658893E-03 2.91823918309629E-03 - cg2d: Sum(rhs),rhsMax = -7.81760248652451E-03 2.98773891586116E-03 - cg2d: Sum(rhs),rhsMax = -8.61805678811291E-03 3.03980217658982E-03 - cg2d: Sum(rhs),rhsMax = -8.91908506534983E-03 3.06473932212885E-03 - cg2d: Sum(rhs),rhsMax = -8.67143953074277E-03 3.06396599312103E-03 - cg2d: Sum(rhs),rhsMax = -7.93449190459130E-03 3.16208628805000E-03 - cg2d: Sum(rhs),rhsMax = -6.86259157046804E-03 3.21610128277769E-03 - cg2d: Sum(rhs),rhsMax = -5.67301301801408E-03 3.21680819702745E-03 - cg2d: Sum(rhs),rhsMax = -4.60212435793885E-03 3.16554825128508E-03 - cg2d: Sum(rhs),rhsMax = -3.85860153771245E-03 3.07378667400832E-03 - cg2d: Sum(rhs),rhsMax = -3.58293311611208E-03 2.96071723644806E-03 - cg2d: Sum(rhs),rhsMax = -3.82105759503708E-03 2.84939000818557E-03 - cg2d: Sum(rhs),rhsMax = -4.51705728277965E-03 2.80618867741282E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470985E-03 4.29236468120608E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540681E-03 6.43184796173781E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273309E-02 8.17951763010787E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389539E-02 9.31105228758608E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562436925E-02 9.89364856920780E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118090900E-03 1.22456378186794E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879383176E-03 1.44777510334630E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202827625E-03 1.58982062959724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828056080E-03 1.64357697457643E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874613423E-04 1.61756159384465E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729211766823E-05 1.53363856520277E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056241608E-04 1.42794063208180E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816363374E-03 1.49223779028213E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898734254E-03 1.56210438853546E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888971060E-03 1.63424211534215E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917050451E-03 1.70505817559923E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899820112E-02 1.77167126350288E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064672630E-02 1.83257529100700E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482908174E-02 1.88791211384394E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268408457E-03 1.93938683402173E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209265914E-03 2.06671962014826E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343746412E-03 2.17651146776350E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123062332E-03 2.23681620422028E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762801699E-03 2.25047700090579E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637557172172E-04 2.23911226023411E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454499833E-03 2.31619525057637E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289168741E-03 2.39332625889250E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142275136E-03 2.46478010082058E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438276180E-03 2.52475930598483E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191591937E-03 2.56860711050734E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059754160104E-03 2.59379157870800E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044328977E-02 2.60046738990698E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069658137627E-03 2.59154638628436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745935095E-03 2.57230687792512E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619853467E-03 2.57617678823099E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960793459E-03 2.60704657821872E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524619506E-03 2.55368005623052E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595290443198E-03 2.53090266210142E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134016431446E-03 2.55686895908837E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547889593482E-03 2.59998584054388E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766408388307E-03 2.65617338366665E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801266670565E-03 2.71885905223599E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728548205094E-03 2.78009789969750E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533163154949E-03 2.83193122956114E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436785264246E-03 2.86771959640692E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260397467010E-03 2.88321599586268E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588738289399E-03 2.87721813736482E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958547304081E-03 2.85172235586414E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891552235926E-03 2.90854931139277E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216137643910E-03 2.93304375657958E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645866827514E-03 2.88331761615468E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907590520765E-03 2.77469261418109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776876318910E-03 2.64912180937078E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175894990260E-03 2.63954761605400E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063157620391E-03 2.64744427711027E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283031378604E-03 2.67027730952194E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958400246564E-03 2.75143066683093E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517517256883E-03 2.84716532501711E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141275394778E-03 2.92480133476302E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356466478763E-03 2.97120293399576E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691605795709E-03 2.97966809704802E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712345793193E-03 3.00381239580819E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280743045202E-03 3.08036413490131E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430733117302E-03 3.09182672769897E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713143419157E-03 3.03934311759828E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148624656701E-03 2.93659607812137E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983316339790E-03 2.80689807562560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262914659626E-03 2.68543422549723E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865399585612E-03 2.73031564307394E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138152800286E-03 2.80043608144609E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770817069104E-03 2.88238470008209E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102510106914E-03 2.96047709480207E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794601435311E-03 3.01993452432347E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747831917135E-03 3.04982335729075E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311486650460E-03 3.04517986892896E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185298158325E-03 3.11258931821411E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878947928477E-03 3.17297134992252E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076200913604E-03 3.17471658627482E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655878201007E-03 3.11938177874007E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371980512996E-03 3.01971791172388E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244084066298E-03 2.89700830440805E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550678060908E-03 2.77676424920953E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987171270059E-03 2.78119173488315E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114887649935E-03 2.84461363001457E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774895658946E-03 2.91823918309634E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760248652506E-03 2.98773891586120E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805678811347E-03 3.03980217658984E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908506535040E-03 3.06473932212888E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143953074334E-03 3.06396599312106E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449190459186E-03 3.16208628805002E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259157046862E-03 3.21610128277771E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301301801465E-03 3.21680819702746E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212435793943E-03 3.16554825128510E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860153771303E-03 3.07378667400834E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293311611265E-03 2.96071723644807E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105759503765E-03 2.84939000818560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705728278022E-03 2.80618867741285E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809587541176D-01 -(PID.TID 0000.0001) local fc = 0.473809587541176D-01 -(PID.TID 0000.0001) global fc = 0.473809587541176D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587541176E-02 + --> objf_test(bi,bj) = 0.473809587541174D-01 +(PID.TID 0000.0001) local fc = 0.473809587541174D-01 +(PID.TID 0000.0001) global fc = 0.473809587541174D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587541174E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -2426,118 +2424,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353669E-03 2.18766023597582E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564469540E-03 4.29236468088942E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903538886E-03 6.43184796115966E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273465E-02 8.17951762822993E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390583E-02 9.31105228277468E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562439472E-02 9.89364856558308E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118136510E-03 1.22456378070102E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879451360E-03 1.44777510206108E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202916967E-03 1.58982062846232E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828160974E-03 1.64357697394698E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875726766E-04 1.61756159411675E-03 - cg2d: Sum(rhs),rhsMax = 7.99729201085793E-05 1.53363856675388E-03 - cg2d: Sum(rhs),rhsMax = -4.03103057159646E-04 1.42794065920328E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816432682E-03 1.49223782094920E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898778680E-03 1.56210442096046E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888994473E-03 1.63424214750028E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917062804E-03 1.70505820556408E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899821685E-02 1.77167128978766E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064676153E-02 1.83257531284745E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482915071E-02 1.88791213136652E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268520023E-03 1.93938684826004E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209420607E-03 2.06671963139401E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343934939E-03 2.17651147926208E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123265738E-03 2.23681621633233E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762993340E-03 2.25047701410172E-03 - cg2d: Sum(rhs),rhsMax = -5.83637558662347E-04 2.23911228877733E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454575502E-03 2.31619528626309E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289144872E-03 2.39332630124908E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142133667E-03 2.46478014847458E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438009174E-03 2.52475935690559E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191201566E-03 2.56860716235724E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753656507E-03 2.59379162924100E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044268720E-02 2.60046743734285E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657449534E-03 2.59154642959259E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745169163E-03 2.57230691696943E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619007533E-03 2.57617677341119E-03 - cg2d: Sum(rhs),rhsMax = -4.78666959853173E-03 2.60704656324048E-03 - cg2d: Sum(rhs),rhsMax = -2.99995523558224E-03 2.55368004109646E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289224181E-03 2.53090269703510E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015011995E-03 2.55686899737452E-03 - cg2d: Sum(rhs),rhsMax = -1.68547887930226E-03 2.59998588327104E-03 - cg2d: Sum(rhs),rhsMax = -2.84766406442650E-03 2.65617343120852E-03 - cg2d: Sum(rhs),rhsMax = -4.53801264413229E-03 2.71885910423279E-03 - cg2d: Sum(rhs),rhsMax = -6.41728545618865E-03 2.78009795517375E-03 - cg2d: Sum(rhs),rhsMax = -8.11533160235086E-03 2.83193128715013E-03 - cg2d: Sum(rhs),rhsMax = -9.30436782016452E-03 2.86771965463335E-03 - cg2d: Sum(rhs),rhsMax = -9.76260393903373E-03 2.88321605342624E-03 - cg2d: Sum(rhs),rhsMax = -9.41588734423104E-03 2.87721819336962E-03 - cg2d: Sum(rhs),rhsMax = -8.34958543143927E-03 2.85172240995219E-03 - cg2d: Sum(rhs),rhsMax = -6.78891547781757E-03 2.90854928741491E-03 - cg2d: Sum(rhs),rhsMax = -5.05216132883880E-03 2.93304373214268E-03 - cg2d: Sum(rhs),rhsMax = -3.48645861737721E-03 2.88331759127010E-03 - cg2d: Sum(rhs),rhsMax = -2.39907585067349E-03 2.77469258880665E-03 - cg2d: Sum(rhs),rhsMax = -1.99776870462191E-03 2.64912186297499E-03 - cg2d: Sum(rhs),rhsMax = -2.35175888690113E-03 2.63954767171185E-03 - cg2d: Sum(rhs),rhsMax = -3.38063150841775E-03 2.64744433482485E-03 - cg2d: Sum(rhs),rhsMax = -4.87283024096141E-03 2.67027736888030E-03 - cg2d: Sum(rhs),rhsMax = -6.52958392447262E-03 2.75143056266848E-03 - cg2d: Sum(rhs),rhsMax = -8.02517508940442E-03 2.84716522152332E-03 - cg2d: Sum(rhs),rhsMax = -9.07141266571440E-03 2.92480123106577E-03 - cg2d: Sum(rhs),rhsMax = -9.47356457165130E-03 2.97120282904232E-03 - cg2d: Sum(rhs),rhsMax = -9.16691596009415E-03 2.97966798983737E-03 - cg2d: Sum(rhs),rhsMax = -8.22712335547452E-03 3.00381236296138E-03 - cg2d: Sum(rhs),rhsMax = -6.85280732344411E-03 3.08036410148300E-03 - cg2d: Sum(rhs),rhsMax = -5.32430721954545E-03 3.09182669369830E-03 - cg2d: Sum(rhs),rhsMax = -3.94713131776152E-03 3.03934308296151E-03 - cg2d: Sum(rhs),rhsMax = -2.99148612506193E-03 2.93659604276133E-03 - cg2d: Sum(rhs),rhsMax = -2.63983303649894E-03 2.80689803943912E-03 - cg2d: Sum(rhs),rhsMax = -2.95262901399265E-03 2.68543410588280E-03 - cg2d: Sum(rhs),rhsMax = -3.85865385729906E-03 2.73031552500831E-03 - cg2d: Sum(rhs),rhsMax = -5.17138138334804E-03 2.80043596516143E-03 - cg2d: Sum(rhs),rhsMax = -6.62770801992083E-03 2.88238458527793E-03 - cg2d: Sum(rhs),rhsMax = -7.94102494428977E-03 2.96047698069991E-03 - cg2d: Sum(rhs),rhsMax = -8.85794585176736E-03 3.01993440981945E-03 - cg2d: Sum(rhs),rhsMax = -9.20747815103178E-03 3.04982324117530E-03 - cg2d: Sum(rhs),rhsMax = -8.93311469305710E-03 3.04517975012900E-03 - cg2d: Sum(rhs),rhsMax = -8.10185280301213E-03 3.11258927446503E-03 - cg2d: Sum(rhs),rhsMax = -6.88878929567066E-03 3.17297130567367E-03 - cg2d: Sum(rhs),rhsMax = -5.54076182043541E-03 3.17471654150035E-03 - cg2d: Sum(rhs),rhsMax = -4.32655858806057E-03 3.11938173336282E-03 - cg2d: Sum(rhs),rhsMax = -3.48371960568108E-03 3.01971786562936E-03 - cg2d: Sum(rhs),rhsMax = -3.17244063542554E-03 2.89700825746596E-03 - cg2d: Sum(rhs),rhsMax = -3.44550656931414E-03 2.77676420129887E-03 - cg2d: Sum(rhs),rhsMax = -4.23987149515568E-03 2.78119160413994E-03 - cg2d: Sum(rhs),rhsMax = -5.39114865263052E-03 2.84461350109785E-03 - cg2d: Sum(rhs),rhsMax = -6.66774872646054E-03 2.91823905569074E-03 - cg2d: Sum(rhs),rhsMax = -7.81760225032987E-03 2.98773878918185E-03 - cg2d: Sum(rhs),rhsMax = -8.61805654614221E-03 3.03980204954153E-03 - cg2d: Sum(rhs),rhsMax = -8.91908481793650E-03 3.06473919352538E-03 - cg2d: Sum(rhs),rhsMax = -8.67143927820159E-03 3.06396593875916E-03 - cg2d: Sum(rhs),rhsMax = -7.93449164715969E-03 3.16208623318462E-03 - cg2d: Sum(rhs),rhsMax = -6.86259130826252E-03 3.21610122746605E-03 - cg2d: Sum(rhs),rhsMax = -5.67301275101054E-03 3.21680814127053E-03 - cg2d: Sum(rhs),rhsMax = -4.60212408598101E-03 3.16554819502940E-03 - cg2d: Sum(rhs),rhsMax = -3.85860126054678E-03 3.07378661715804E-03 - cg2d: Sum(rhs),rhsMax = -3.58293283344261E-03 2.96071717888509E-03 - cg2d: Sum(rhs),rhsMax = -3.82105730658931E-03 2.84938994979340E-03 - cg2d: Sum(rhs),rhsMax = -4.51705698836081E-03 2.80618853399139E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564469530E-03 4.29236468089057E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903538871E-03 6.43184796115542E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273463E-02 8.17951762822661E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390581E-02 9.31105228277124E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562439470E-02 9.89364856558175E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118136480E-03 1.22456378070089E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879451325E-03 1.44777510206094E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202916928E-03 1.58982062846217E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828160931E-03 1.64357697394683E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875726312E-04 1.61756159411659E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729201090648E-05 1.53363856675371E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103057159128E-04 1.42794065920316E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816432629E-03 1.49223782094909E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898778625E-03 1.56210442096034E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888994418E-03 1.63424214750016E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917062748E-03 1.70505820556397E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899821679E-02 1.77167128978755E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064676147E-02 1.83257531284734E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482915066E-02 1.88791213136641E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268519962E-03 1.93938684825995E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209420546E-03 2.06671963139382E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343934876E-03 2.17651147926191E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123265675E-03 2.23681621633214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762993277E-03 2.25047701410154E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637558661711E-04 2.23911228877723E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454575437E-03 2.31619528626299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289144808E-03 2.39332630124898E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142133602E-03 2.46478014847448E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438009110E-03 2.52475935690550E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191201502E-03 2.56860716235716E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753656446E-03 2.59379162924091E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044268714E-02 2.60046743734277E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657449471E-03 2.59154642959251E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745169101E-03 2.57230691696935E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619007470E-03 2.57617677341109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666959853109E-03 2.60704656324039E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995523558161E-03 2.55368004109638E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289224119E-03 2.53090269703503E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015011933E-03 2.55686899737444E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547887930164E-03 2.59998588327097E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766406442588E-03 2.65617343120844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801264413166E-03 2.71885910423272E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728545618802E-03 2.78009795517369E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533160235023E-03 2.83193128715007E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436782016389E-03 2.86771965463329E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260393903310E-03 2.88321605342619E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588734423042E-03 2.87721819336956E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958543143864E-03 2.85172240995213E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891547781694E-03 2.90854928741484E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216132883818E-03 2.93304373214262E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645861737659E-03 2.88331759127004E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907585067287E-03 2.77469258880660E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776870462128E-03 2.64912186297494E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175888690051E-03 2.63954767171181E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063150841713E-03 2.64744433482480E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283024096080E-03 2.67027736888026E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958392447203E-03 2.75143056266841E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517508940383E-03 2.84716522152324E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141266571380E-03 2.92480123106570E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356457165072E-03 2.97120282904225E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691596009359E-03 2.97966798983730E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712335547397E-03 3.00381236296135E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280732344357E-03 3.08036410148295E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430721954491E-03 3.09182669369828E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713131776098E-03 3.03934308296148E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148612506138E-03 2.93659604276130E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983303649840E-03 2.80689803943910E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262901399211E-03 2.68543410588274E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865385729852E-03 2.73031552500825E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138138334750E-03 2.80043596516138E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770801992027E-03 2.88238458527786E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102494428922E-03 2.96047698069986E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794585176678E-03 3.01993440981939E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747815103119E-03 3.04982324117524E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311469305651E-03 3.04517975012894E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185280301154E-03 3.11258927446501E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878929567007E-03 3.17297130567365E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076182043483E-03 3.17471654150033E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655858806000E-03 3.11938173336280E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371960568050E-03 3.01971786562933E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244063542496E-03 2.89700825746594E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550656931356E-03 2.77676420129885E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987149515509E-03 2.78119160413989E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114865262992E-03 2.84461350109780E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774872645994E-03 2.91823905569070E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760225032928E-03 2.98773878918181E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805654614159E-03 3.03980204954149E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908481793588E-03 3.06473919352534E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143927820097E-03 3.06396593875913E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449164715908E-03 3.16208623318460E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259130826189E-03 3.21610122746604E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301275100991E-03 3.21680814127050E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212408598035E-03 3.16554819502937E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860126054611E-03 3.07378661715802E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293283344194E-03 2.96071717888506E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105730658864E-03 2.84938994979338E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705698836015E-03 2.80618853399135E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809587597118D-01 -(PID.TID 0000.0001) local fc = 0.473809587597118D-01 -(PID.TID 0000.0001) global fc = 0.473809587597118D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587597118E-02 + --> objf_test(bi,bj) = 0.473809587597120D-01 +(PID.TID 0000.0001) local fc = 0.473809587597120D-01 +(PID.TID 0000.0001) global fc = 0.473809587597120D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587597120E-02 grad-res ------------------------------- grad-res 0 2 4 1 1 1 1 1 4.73809587569E-02 4.73809587541E-02 4.73809587597E-02 - grad-res 0 2 2 4 0 1 1 1 -2.82546206927E-08 -2.79710629658E-08 1.00358001609E-02 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -2.82546206927075E-08 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.79710629658148E-08 + grad-res 0 2 2 4 0 1 1 1 -2.79728334994E-08 -2.79732834119E-08 -1.60839085415E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.79728334993684E-08 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.79732834118640E-08 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 7 25 3 @@ -2554,112 +2552,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353672E-03 2.18766023596339E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470495E-03 4.29236468024769E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540541E-03 6.43184796286816E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273512E-02 8.17951763426011E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390179E-02 9.31105229292682E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438193E-02 9.89364856770903E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118110699E-03 1.22456378174853E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879409280E-03 1.44777510364875E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202857224E-03 1.58982063059867E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828084447E-03 1.64357697653894E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874822994E-04 1.61756159696463E-03 - cg2d: Sum(rhs),rhsMax = 7.99729211099699E-05 1.53363856956802E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056098487E-04 1.42794064715167E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816322331E-03 1.49223780757673E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898662149E-03 1.56210440714613E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888864993E-03 1.63424213419180E-03 - cg2d: Sum(rhs),rhsMax = -8.63394916908479E-03 1.70505819361309E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899802135E-02 1.77167127979032E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064650578E-02 1.83257530502139E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482881531E-02 1.88791212548934E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268087942E-03 1.93938684368397E-03 - cg2d: Sum(rhs),rhsMax = -6.85700208879707E-03 2.06671962668403E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343279716E-03 2.17651147479478E-03 - cg2d: Sum(rhs),rhsMax = -2.55199122497959E-03 2.23681621217742E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762121315E-03 2.25047701016921E-03 - cg2d: Sum(rhs),rhsMax = -5.83637549028200E-04 2.23911227524960E-03 - cg2d: Sum(rhs),rhsMax = -1.01911453535165E-03 2.31619526910984E-03 - cg2d: Sum(rhs),rhsMax = -2.32886288040352E-03 2.39332628083499E-03 - cg2d: Sum(rhs),rhsMax = -4.24067140972880E-03 2.46478012557896E-03 - cg2d: Sum(rhs),rhsMax = -6.36913436793005E-03 2.52475933258592E-03 - cg2d: Sum(rhs),rhsMax = -8.29342189923024E-03 2.56860713776661E-03 - cg2d: Sum(rhs),rhsMax = -9.64059752301469E-03 2.59379160543216E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044123665E-02 2.60046741509391E-03 - cg2d: Sum(rhs),rhsMax = -9.76069655882946E-03 2.59154640928469E-03 - cg2d: Sum(rhs),rhsMax = -8.54505743468331E-03 2.57230689853738E-03 - cg2d: Sum(rhs),rhsMax = -6.76655617160168E-03 2.57617677939450E-03 - cg2d: Sum(rhs),rhsMax = -4.78666957855523E-03 2.60704656903802E-03 - cg2d: Sum(rhs),rhsMax = -2.99995521416165E-03 2.55368004681548E-03 - cg2d: Sum(rhs),rhsMax = -1.75595286952545E-03 2.53090267895892E-03 - cg2d: Sum(rhs),rhsMax = -1.29134012632207E-03 2.55686897725433E-03 - cg2d: Sum(rhs),rhsMax = -1.68547885466692E-03 2.59998586065415E-03 - cg2d: Sum(rhs),rhsMax = -2.84766403918572E-03 2.65617340600642E-03 - cg2d: Sum(rhs),rhsMax = -4.53801261846666E-03 2.71885907671250E-03 - cg2d: Sum(rhs),rhsMax = -6.41728543019818E-03 2.78009792588471E-03 - cg2d: Sum(rhs),rhsMax = -8.11533157604183E-03 2.83193125680395E-03 - cg2d: Sum(rhs),rhsMax = -9.30436779345534E-03 2.86771962396179E-03 - cg2d: Sum(rhs),rhsMax = -9.76260391177848E-03 2.88321602304560E-03 - cg2d: Sum(rhs),rhsMax = -9.41588731625630E-03 2.87721816367729E-03 - cg2d: Sum(rhs),rhsMax = -8.34958540258690E-03 2.85172238107347E-03 - cg2d: Sum(rhs),rhsMax = -6.78891544798488E-03 2.90854929466653E-03 - cg2d: Sum(rhs),rhsMax = -5.05216129800798E-03 2.93304373930579E-03 - cg2d: Sum(rhs),rhsMax = -3.48645858562792E-03 2.88331759838872E-03 - cg2d: Sum(rhs),rhsMax = -2.39907581817594E-03 2.77469259593640E-03 - cg2d: Sum(rhs),rhsMax = -1.99776867161167E-03 2.64912183336822E-03 - cg2d: Sum(rhs),rhsMax = -2.35175885364041E-03 2.63954764095826E-03 - cg2d: Sum(rhs),rhsMax = -3.38063147515097E-03 2.64744430295532E-03 - cg2d: Sum(rhs),rhsMax = -4.87283020787399E-03 2.67027733611770E-03 - cg2d: Sum(rhs),rhsMax = -6.52958389166115E-03 2.75143059969389E-03 - cg2d: Sum(rhs),rhsMax = -8.02517505686465E-03 2.84716525795706E-03 - cg2d: Sum(rhs),rhsMax = -9.07141263334930E-03 2.92480126739090E-03 - cg2d: Sum(rhs),rhsMax = -9.47356453929796E-03 2.97120286582924E-03 - cg2d: Sum(rhs),rhsMax = -9.16691592756388E-03 2.97966802761855E-03 - cg2d: Sum(rhs),rhsMax = -8.22712332259849E-03 3.00381237077362E-03 - cg2d: Sum(rhs),rhsMax = -6.85280729011496E-03 3.08036410936947E-03 - cg2d: Sum(rhs),rhsMax = -5.32430718574652E-03 3.09182670171181E-03 - cg2d: Sum(rhs),rhsMax = -3.94713128357759E-03 3.03934309115731E-03 - cg2d: Sum(rhs),rhsMax = -2.99148609066914E-03 2.93659605118578E-03 - cg2d: Sum(rhs),rhsMax = -2.63983300213564E-03 2.80689804811977E-03 - cg2d: Sum(rhs),rhsMax = -2.95262897991703E-03 2.68543414837373E-03 - cg2d: Sum(rhs),rhsMax = -3.85865382374210E-03 2.73031556639489E-03 - cg2d: Sum(rhs),rhsMax = -5.17138135047121E-03 2.80043600534939E-03 - cg2d: Sum(rhs),rhsMax = -6.62770798778728E-03 2.88238462446372E-03 - cg2d: Sum(rhs),rhsMax = -7.94102491285513E-03 2.96047701933660E-03 - cg2d: Sum(rhs),rhsMax = -8.85794582089201E-03 3.01993444852994E-03 - cg2d: Sum(rhs),rhsMax = -9.20747812051271E-03 3.04982328063050E-03 - cg2d: Sum(rhs),rhsMax = -8.93311466267283E-03 3.04517979091541E-03 - cg2d: Sum(rhs),rhsMax = -8.10185277257188E-03 3.11258928416098E-03 - cg2d: Sum(rhs),rhsMax = -6.88878926505783E-03 3.17297131549522E-03 - cg2d: Sum(rhs),rhsMax = -5.54076178963661E-03 3.17471655152775E-03 - cg2d: Sum(rhs),rhsMax = -4.32655855717406E-03 3.11938174367786E-03 - cg2d: Sum(rhs),rhsMax = -3.48371957490270E-03 3.01971787630131E-03 - cg2d: Sum(rhs),rhsMax = -3.17244060501490E-03 2.89700826853982E-03 - cg2d: Sum(rhs),rhsMax = -3.44550653954740E-03 2.77676421278795E-03 - cg2d: Sum(rhs),rhsMax = -4.23987146627460E-03 2.78119165004015E-03 - cg2d: Sum(rhs),rhsMax = -5.39114862479778E-03 2.84461354583894E-03 - cg2d: Sum(rhs),rhsMax = -6.66774869973043E-03 2.91823909946227E-03 - cg2d: Sum(rhs),rhsMax = -7.81760222464048E-03 2.98773883242840E-03 - cg2d: Sum(rhs),rhsMax = -8.61805652133074E-03 3.03980209287348E-03 - cg2d: Sum(rhs),rhsMax = -8.91908479377499E-03 3.06473923759766E-03 - cg2d: Sum(rhs),rhsMax = -8.67143925444597E-03 3.06396595180036E-03 - cg2d: Sum(rhs),rhsMax = -7.93449162360236E-03 3.16208624632647E-03 - cg2d: Sum(rhs),rhsMax = -6.86259128477823E-03 3.21610124075389E-03 - cg2d: Sum(rhs),rhsMax = -5.67301272758609E-03 3.21680815476968E-03 - cg2d: Sum(rhs),rhsMax = -4.60212406272285E-03 3.16554820881330E-03 - cg2d: Sum(rhs),rhsMax = -3.85860123766480E-03 3.07378663129525E-03 - cg2d: Sum(rhs),rhsMax = -3.58293281121318E-03 2.96071719342761E-03 - cg2d: Sum(rhs),rhsMax = -3.82105728530484E-03 2.84938996476852E-03 - cg2d: Sum(rhs),rhsMax = -4.51705696827587E-03 2.80618858507278E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470508E-03 4.29236468025056E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540554E-03 6.43184796286698E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273514E-02 8.17951763425890E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390181E-02 9.31105229292591E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438195E-02 9.89364856770914E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118110726E-03 1.22456378174849E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879409309E-03 1.44777510364872E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202857255E-03 1.58982063059862E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828084481E-03 1.64357697653889E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874823358E-04 1.61756159696458E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729211095812E-05 1.53363856956798E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056098901E-04 1.42794064715163E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816322375E-03 1.49223780757669E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898662196E-03 1.56210440714608E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888865043E-03 1.63424213419175E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394916908531E-03 1.70505819361303E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899802141E-02 1.77167127979026E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064650584E-02 1.83257530502134E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482881537E-02 1.88791212548928E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268087998E-03 1.93938684368390E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700208879764E-03 2.06671962668400E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343279774E-03 2.17651147479474E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199122498019E-03 2.23681621217739E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762121375E-03 2.25047701016918E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637549028805E-04 2.23911227524952E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911453535227E-03 2.31619526910977E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886288040415E-03 2.39332628083492E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067140972942E-03 2.46478012557888E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913436793068E-03 2.52475933258584E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342189923087E-03 2.56860713776653E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059752301533E-03 2.59379160543209E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044123672E-02 2.60046741509384E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069655883011E-03 2.59154640928461E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505743468395E-03 2.57230689853732E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655617160231E-03 2.57617677939447E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666957855585E-03 2.60704656903799E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995521416227E-03 2.55368004681545E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595286952608E-03 2.53090267895886E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134012632269E-03 2.55686897725427E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547885466755E-03 2.59998586065409E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766403918636E-03 2.65617340600636E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801261846729E-03 2.71885907671244E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728543019879E-03 2.78009792588466E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533157604243E-03 2.83193125680390E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436779345595E-03 2.86771962396175E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260391177907E-03 2.88321602304557E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588731625687E-03 2.87721816367725E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958540258744E-03 2.85172238107343E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891544798541E-03 2.90854929466649E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216129800850E-03 2.93304373930574E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645858562844E-03 2.88331759838869E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907581817646E-03 2.77469259593636E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776867161218E-03 2.64912183336820E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175885364091E-03 2.63954764095825E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063147515148E-03 2.64744430295531E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283020787448E-03 2.67027733611769E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958389166165E-03 2.75143059969391E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517505686514E-03 2.84716525795708E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141263334976E-03 2.92480126739092E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356453929843E-03 2.97120286582925E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691592756434E-03 2.97966802761858E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712332259894E-03 3.00381237077360E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280729011540E-03 3.08036410936944E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430718574697E-03 3.09182670171178E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713128357805E-03 3.03934309115727E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148609066957E-03 2.93659605118575E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983300213607E-03 2.80689804811975E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262897991747E-03 2.68543414837375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865382374255E-03 2.73031556639493E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138135047166E-03 2.80043600534942E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770798778774E-03 2.88238462446375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102491285559E-03 2.96047701933664E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794582089247E-03 3.01993444852997E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747812051319E-03 3.04982328063053E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311466267328E-03 3.04517979091543E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185277257233E-03 3.11258928416096E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878926505827E-03 3.17297131549519E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076178963705E-03 3.17471655152774E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655855717449E-03 3.11938174367784E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371957490313E-03 3.01971787630129E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244060501531E-03 2.89700826853981E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550653954782E-03 2.77676421278793E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987146627503E-03 2.78119165004019E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114862479821E-03 2.84461354583898E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774869973087E-03 2.91823909946231E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760222464093E-03 2.98773883242844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805652133118E-03 3.03980209287352E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908479377544E-03 3.06473923759770E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143925444640E-03 3.06396595180034E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449162360278E-03 3.16208624632646E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259128477861E-03 3.21610124075388E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301272758647E-03 3.21680815476967E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212406272324E-03 3.16554820881329E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860123766519E-03 3.07378663129524E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293281121357E-03 2.96071719342761E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105728530525E-03 2.84938996476852E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705696827628E-03 2.80618858507283E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809588673606D-01 -(PID.TID 0000.0001) local fc = 0.473809588673606D-01 -(PID.TID 0000.0001) global fc = 0.473809588673606D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809588673606E-02 + --> objf_test(bi,bj) = 0.473809588673604D-01 +(PID.TID 0000.0001) local fc = 0.473809588673604D-01 +(PID.TID 0000.0001) global fc = 0.473809588673604D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809588673604E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -2670,118 +2668,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023597592E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470021E-03 4.29236468184895E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539014E-03 6.43184796002505E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273260E-02 8.17951762407456E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389941E-02 9.31105227743035E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438203E-02 9.89364856708065E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118116685E-03 1.22456378082031E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879425226E-03 1.44777510175849E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202887333E-03 1.58982062746073E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828132568E-03 1.64357697198431E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875516779E-04 1.61756159099661E-03 - cg2d: Sum(rhs),rhsMax = 7.99729201757397E-05 1.53363856238847E-03 - cg2d: Sum(rhs),rhsMax = -4.03103057302292E-04 1.42794064413329E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816473676E-03 1.49223780365449E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898850735E-03 1.56210440234969E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889100488E-03 1.63424212865050E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917204726E-03 1.70505818755012E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899839656E-02 1.77167127350013E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064698199E-02 1.83257529883296E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482941708E-02 1.88791211972100E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268840479E-03 1.93938683859771E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209806756E-03 2.06671962485803E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344401575E-03 2.17651147223062E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123830050E-03 2.23681620837501E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763673664E-03 2.25047700483812E-03 - cg2d: Sum(rhs),rhsMax = -5.83637566805712E-04 2.23911227376175E-03 - cg2d: Sum(rhs),rhsMax = -1.01911455540110E-03 2.31619526772953E-03 - cg2d: Sum(rhs),rhsMax = -2.32886290273201E-03 2.39332627930649E-03 - cg2d: Sum(rhs),rhsMax = -4.24067143435864E-03 2.46478012371611E-03 - cg2d: Sum(rhs),rhsMax = -6.36913439492289E-03 2.52475933030441E-03 - cg2d: Sum(rhs),rhsMax = -8.29342192870422E-03 2.56860713509789E-03 - cg2d: Sum(rhs),rhsMax = -9.64059755515085E-03 2.59379160251674E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044474026E-02 2.60046741215584E-03 - cg2d: Sum(rhs),rhsMax = -9.76069659704156E-03 2.59154640659219E-03 - cg2d: Sum(rhs),rhsMax = -8.54505747635872E-03 2.57230689635708E-03 - cg2d: Sum(rhs),rhsMax = -6.76655621700775E-03 2.57617678224757E-03 - cg2d: Sum(rhs),rhsMax = -4.78666962791052E-03 2.60704657242108E-03 - cg2d: Sum(rhs),rhsMax = -2.99995526761510E-03 2.55368005051140E-03 - cg2d: Sum(rhs),rhsMax = -1.75595292714780E-03 2.53090268017752E-03 - cg2d: Sum(rhs),rhsMax = -1.29134018811180E-03 2.55686897920849E-03 - cg2d: Sum(rhs),rhsMax = -1.68547892056962E-03 2.59998586316071E-03 - cg2d: Sum(rhs),rhsMax = -2.84766410912331E-03 2.65617340886869E-03 - cg2d: Sum(rhs),rhsMax = -4.53801269237073E-03 2.71885907975622E-03 - cg2d: Sum(rhs),rhsMax = -6.41728550804089E-03 2.78009792898648E-03 - cg2d: Sum(rhs),rhsMax = -8.11533165785800E-03 2.83193125990727E-03 - cg2d: Sum(rhs),rhsMax = -9.30436787935113E-03 2.86771962707843E-03 - cg2d: Sum(rhs),rhsMax = -9.76260400192483E-03 2.88321602624326E-03 - cg2d: Sum(rhs),rhsMax = -9.41588741086826E-03 2.87721816705709E-03 - cg2d: Sum(rhs),rhsMax = -8.34958550189275E-03 2.85172238474279E-03 - cg2d: Sum(rhs),rhsMax = -6.78891555219154E-03 2.90854930414109E-03 - cg2d: Sum(rhs),rhsMax = -5.05216140726953E-03 2.93304374941641E-03 - cg2d: Sum(rhs),rhsMax = -3.48645870002405E-03 2.88331760903602E-03 - cg2d: Sum(rhs),rhsMax = -2.39907593770480E-03 2.77469260705129E-03 - cg2d: Sum(rhs),rhsMax = -1.99776879619893E-03 2.64912183897752E-03 - cg2d: Sum(rhs),rhsMax = -2.35175898316291E-03 2.63954764680756E-03 - cg2d: Sum(rhs),rhsMax = -3.38063160947029E-03 2.64744430897976E-03 - cg2d: Sum(rhs),rhsMax = -4.87283034687310E-03 2.67027734228450E-03 - cg2d: Sum(rhs),rhsMax = -6.52958403527676E-03 2.75143062980545E-03 - cg2d: Sum(rhs),rhsMax = -8.02517520510827E-03 2.84716528858330E-03 - cg2d: Sum(rhs),rhsMax = -9.07141278631253E-03 2.92480129843784E-03 - cg2d: Sum(rhs),rhsMax = -9.47356469714063E-03 2.97120289720878E-03 - cg2d: Sum(rhs),rhsMax = -9.16691609048703E-03 2.97966805926678E-03 - cg2d: Sum(rhs),rhsMax = -8.22712349080764E-03 3.00381238799590E-03 - cg2d: Sum(rhs),rhsMax = -6.85280746378088E-03 3.08036412701481E-03 - cg2d: Sum(rhs),rhsMax = -5.32430736497167E-03 3.09182671968544E-03 - cg2d: Sum(rhs),rhsMax = -3.94713146837519E-03 3.03934310940247E-03 - cg2d: Sum(rhs),rhsMax = -2.99148628095951E-03 2.93659606969688E-03 - cg2d: Sum(rhs),rhsMax = -2.63983319776091E-03 2.80689806694493E-03 - cg2d: Sum(rhs),rhsMax = -2.95262918067157E-03 2.68543418300625E-03 - cg2d: Sum(rhs),rhsMax = -3.85865402941276E-03 2.73031560168732E-03 - cg2d: Sum(rhs),rhsMax = -5.17138156087937E-03 2.80043604125809E-03 - cg2d: Sum(rhs),rhsMax = -6.62770820282425E-03 2.88238466089626E-03 - cg2d: Sum(rhs),rhsMax = -7.94102513250344E-03 2.96047705616534E-03 - cg2d: Sum(rhs),rhsMax = -8.85794604522811E-03 3.01993448561294E-03 - cg2d: Sum(rhs),rhsMax = -9.20747834969003E-03 3.04982331783551E-03 - cg2d: Sum(rhs),rhsMax = -8.93311489688848E-03 3.04517982814251E-03 - cg2d: Sum(rhs),rhsMax = -8.10185301202314E-03 3.11258930851815E-03 - cg2d: Sum(rhs),rhsMax = -6.88878950989723E-03 3.17297134010097E-03 - cg2d: Sum(rhs),rhsMax = -5.54076203993449E-03 3.17471657624741E-03 - cg2d: Sum(rhs),rhsMax = -4.32655881289623E-03 3.11938176842502E-03 - cg2d: Sum(rhs),rhsMax = -3.48371983590799E-03 3.01971790105191E-03 - cg2d: Sum(rhs),rhsMax = -3.17244087107328E-03 2.89700829333417E-03 - cg2d: Sum(rhs),rhsMax = -3.44550681037546E-03 2.77676423772044E-03 - cg2d: Sum(rhs),rhsMax = -4.23987174158130E-03 2.78119168898291E-03 - cg2d: Sum(rhs),rhsMax = -5.39114890433172E-03 2.84461358527344E-03 - cg2d: Sum(rhs),rhsMax = -6.66774898331917E-03 2.91823913932478E-03 - cg2d: Sum(rhs),rhsMax = -7.81760251221405E-03 2.98773887261460E-03 - cg2d: Sum(rhs),rhsMax = -8.61805681292452E-03 3.03980213325787E-03 - cg2d: Sum(rhs),rhsMax = -8.91908508951148E-03 3.06473927805658E-03 - cg2d: Sum(rhs),rhsMax = -8.67143955449856E-03 3.06396598007984E-03 - cg2d: Sum(rhs),rhsMax = -7.93449192814880E-03 3.16208627490816E-03 - cg2d: Sum(rhs),rhsMax = -6.86259159395250E-03 3.21610126948986E-03 - cg2d: Sum(rhs),rhsMax = -5.67301304143869E-03 3.21680818352830E-03 - cg2d: Sum(rhs),rhsMax = -4.60212438119715E-03 3.16554823750117E-03 - cg2d: Sum(rhs),rhsMax = -3.85860156059457E-03 3.07378665987111E-03 - cg2d: Sum(rhs),rhsMax = -3.58293313834164E-03 2.96071722190554E-03 - cg2d: Sum(rhs),rhsMax = -3.82105761632167E-03 2.84938999321047E-03 - cg2d: Sum(rhs),rhsMax = -4.51705730286471E-03 2.80618862633143E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023587221E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470008E-03 4.29236468184619E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539001E-03 6.43184796002619E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273259E-02 8.17951762407566E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389939E-02 9.31105227743137E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438201E-02 9.89364856708048E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118116665E-03 1.22456378082036E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879425203E-03 1.44777510175853E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202887309E-03 1.58982062746078E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828132541E-03 1.64357697198436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875516488E-04 1.61756159099666E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729201760522E-05 1.53363856238851E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103057301958E-04 1.42794064413333E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816473640E-03 1.49223780365454E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898850696E-03 1.56210440234974E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889100447E-03 1.63424212865056E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917204683E-03 1.70505818755017E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899839652E-02 1.77167127350018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064698195E-02 1.83257529883301E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482941704E-02 1.88791211972108E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268840431E-03 1.93938683859778E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209806707E-03 2.06671962485808E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344401525E-03 2.17651147223067E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123830003E-03 2.23681620837505E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763673615E-03 2.25047700483816E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637566805217E-04 2.23911227376183E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911455540058E-03 2.31619526772960E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886290273148E-03 2.39332627930657E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067143435810E-03 2.46478012371619E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913439492235E-03 2.52475933030449E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342192870365E-03 2.56860713509796E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059755515029E-03 2.59379160251681E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044474020E-02 2.60046741215591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069659704102E-03 2.59154640659224E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505747635815E-03 2.57230689635715E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655621700719E-03 2.57617678224761E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666962790999E-03 2.60704657242112E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995526761456E-03 2.55368005051144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595292714726E-03 2.53090268017759E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134018811126E-03 2.55686897920855E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547892056907E-03 2.59998586316077E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766410912277E-03 2.65617340886874E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801269237020E-03 2.71885907975627E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728550804036E-03 2.78009792898653E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533165785746E-03 2.83193125990731E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436787935058E-03 2.86771962707846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260400192430E-03 2.88321602624330E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588741086771E-03 2.87721816705714E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958550189220E-03 2.85172238474282E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891555219098E-03 2.90854930414112E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216140726895E-03 2.93304374941645E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645870002348E-03 2.88331760903605E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907593770424E-03 2.77469260705133E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776879619838E-03 2.64912183897753E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175898316236E-03 2.63954764680757E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063160946973E-03 2.64744430897977E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283034687254E-03 2.67027734228451E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958403527620E-03 2.75143062980544E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517520510770E-03 2.84716528858327E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141278631198E-03 2.92480129843782E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356469714009E-03 2.97120289720877E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691609048651E-03 2.97966805926677E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712349080715E-03 3.00381238799593E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280746378039E-03 3.08036412701485E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430736497118E-03 3.09182671968548E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713146837469E-03 3.03934310940249E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148628095902E-03 2.93659606969691E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983319776043E-03 2.80689806694495E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262918067110E-03 2.68543418300622E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865402941229E-03 2.73031560168728E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138156087890E-03 2.80043604125806E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770820282377E-03 2.88238466089623E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102513250297E-03 2.96047705616531E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794604522763E-03 3.01993448561291E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747834968954E-03 3.04982331783547E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311489688798E-03 3.04517982814246E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185301202266E-03 3.11258930851816E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878950989677E-03 3.17297134010097E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076203993402E-03 3.17471657624743E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655881289576E-03 3.11938176842503E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371983590753E-03 3.01971790105193E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244087107281E-03 2.89700829333419E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550681037498E-03 2.77676423772045E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987174158082E-03 2.78119168898287E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114890433124E-03 2.84461358527340E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774898331868E-03 2.91823913932473E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760251221355E-03 2.98773887261456E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805681292402E-03 3.03980213325782E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908508951096E-03 3.06473927805653E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143955449804E-03 3.06396598007984E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449192814826E-03 3.16208627490814E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259159395197E-03 3.21610126948985E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301304143816E-03 3.21680818352831E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212438119663E-03 3.16554823750117E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860156059404E-03 3.07378665987111E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293313834112E-03 2.96071722190553E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105761632114E-03 2.84938999321046E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705730286418E-03 2.80618862633138E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809586464690D-01 -(PID.TID 0000.0001) local fc = 0.473809586464690D-01 -(PID.TID 0000.0001) global fc = 0.473809586464690D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809586464690E-02 + --> objf_test(bi,bj) = 0.473809586464691D-01 +(PID.TID 0000.0001) local fc = 0.473809586464691D-01 +(PID.TID 0000.0001) global fc = 0.473809586464691D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809586464691E-02 grad-res ------------------------------- grad-res 0 3 2 2 1 1 1 1 4.73809587569E-02 4.73809588674E-02 4.73809586465E-02 - grad-res 0 3 3 7 0 1 1 1 1.10432294334E-06 1.10445791401E-06 -1.22220295018E-04 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.10432294333810E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.10445791401403E-06 + grad-res 0 3 3 7 0 1 1 1 1.10445729241E-06 1.10445624868E-06 9.45012967546E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.10445729240596E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.10445624867950E-06 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 10 25 4 @@ -2798,112 +2796,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353678E-03 2.18766023593718E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470203E-03 4.29236468106464E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539887E-03 6.43184796147664E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273453E-02 8.17951762915032E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390221E-02 9.31105228506346E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438467E-02 9.89364856773736E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118117296E-03 1.22456378133149E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879421139E-03 1.44777510277566E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202875408E-03 1.58982062913090E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828109555E-03 1.64357697439571E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875145379E-04 1.61756159415147E-03 - cg2d: Sum(rhs),rhsMax = 7.99729207150618E-05 1.53363856619067E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056571250E-04 1.42794064560239E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816378956E-03 1.49223780508577E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898731325E-03 1.56210440360761E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888952033E-03 1.63424212961445E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917021012E-03 1.70505818813513E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899816919E-02 1.77167127367234E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064670046E-02 1.83257529861649E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482906930E-02 1.88791211919504E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268413705E-03 1.93938683788362E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209288821E-03 2.06671962700888E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343782121E-03 2.17651147490529E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123101566E-03 2.23681621182242E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762832057E-03 2.25047700920065E-03 - cg2d: Sum(rhs),rhsMax = -5.83637557251454E-04 2.23911227388783E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454472891E-03 2.31619526810851E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289097723E-03 2.39332627984867E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142155629E-03 2.46478012430221E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438109206E-03 2.52475933080787E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191383553E-03 2.56860713540743E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753919983E-03 2.59379160255523E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044302906E-02 2.60046741189209E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657866483E-03 2.59154640604391E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745660371E-03 2.57230689558486E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619577046E-03 2.57617678828382E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960511562E-03 2.60704657852559E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524323102E-03 2.55368005689408E-03 - cg2d: Sum(rhs),rhsMax = -1.75595290119474E-03 2.53090267943621E-03 - cg2d: Sum(rhs),rhsMax = -1.29134016066053E-03 2.55686897864001E-03 - cg2d: Sum(rhs),rhsMax = -1.68547889173101E-03 2.59998586276715E-03 - cg2d: Sum(rhs),rhsMax = -2.84766407903051E-03 2.65617340862001E-03 - cg2d: Sum(rhs),rhsMax = -4.53801266115729E-03 2.71885907960038E-03 - cg2d: Sum(rhs),rhsMax = -6.41728547581913E-03 2.78009792886302E-03 - cg2d: Sum(rhs),rhsMax = -8.11533162470202E-03 2.83193125976112E-03 - cg2d: Sum(rhs),rhsMax = -9.30436784528805E-03 2.86771962687110E-03 - cg2d: Sum(rhs),rhsMax = -9.76260396693607E-03 2.88321602595924E-03 - cg2d: Sum(rhs),rhsMax = -9.41588737490090E-03 2.87721816670434E-03 - cg2d: Sum(rhs),rhsMax = -8.34958546487874E-03 2.85172238434782E-03 - cg2d: Sum(rhs),rhsMax = -6.78891551407112E-03 2.90854931348866E-03 - cg2d: Sum(rhs),rhsMax = -5.05216136801371E-03 2.93304375891593E-03 - cg2d: Sum(rhs),rhsMax = -3.48645865965179E-03 2.88331761878715E-03 - cg2d: Sum(rhs),rhsMax = -2.39907589629088E-03 2.77469261712947E-03 - cg2d: Sum(rhs),rhsMax = -1.99776875387081E-03 2.64912183875854E-03 - cg2d: Sum(rhs),rhsMax = -2.35175894008688E-03 2.63954764660034E-03 - cg2d: Sum(rhs),rhsMax = -3.38063156582943E-03 2.64744430874295E-03 - cg2d: Sum(rhs),rhsMax = -4.87283030284153E-03 2.67027734197696E-03 - cg2d: Sum(rhs),rhsMax = -6.52958399099526E-03 2.75143062417529E-03 - cg2d: Sum(rhs),rhsMax = -8.02517516066643E-03 2.84716528406009E-03 - cg2d: Sum(rhs),rhsMax = -9.07141274174119E-03 2.92480129524292E-03 - cg2d: Sum(rhs),rhsMax = -9.47356465241643E-03 2.97120289532928E-03 - cg2d: Sum(rhs),rhsMax = -9.16691604554845E-03 2.97966805845016E-03 - cg2d: Sum(rhs),rhsMax = -8.22712344557937E-03 3.00381240031678E-03 - cg2d: Sum(rhs),rhsMax = -6.85280741820182E-03 3.08036413970029E-03 - cg2d: Sum(rhs),rhsMax = -5.32430731902077E-03 3.09182673282259E-03 - cg2d: Sum(rhs),rhsMax = -3.94713142208978E-03 3.03934312304824E-03 - cg2d: Sum(rhs),rhsMax = -2.99148623444220E-03 2.93659608386463E-03 - cg2d: Sum(rhs),rhsMax = -2.63983315117330E-03 2.80689808159981E-03 - cg2d: Sum(rhs),rhsMax = -2.95262913421573E-03 2.68543417906675E-03 - cg2d: Sum(rhs),rhsMax = -3.85865398330408E-03 2.73031559772018E-03 - cg2d: Sum(rhs),rhsMax = -5.17138151531597E-03 2.80043603789614E-03 - cg2d: Sum(rhs),rhsMax = -6.62770815795919E-03 2.88238465873283E-03 - cg2d: Sum(rhs),rhsMax = -7.94102508842536E-03 2.96047705563278E-03 - cg2d: Sum(rhs),rhsMax = -8.85794600195454E-03 3.01993448689118E-03 - cg2d: Sum(rhs),rhsMax = -9.20747830717480E-03 3.04982332080980E-03 - cg2d: Sum(rhs),rhsMax = -8.93311485504217E-03 3.04517983241943E-03 - cg2d: Sum(rhs),rhsMax = -8.10185297074272E-03 3.11258932483369E-03 - cg2d: Sum(rhs),rhsMax = -6.88878946909899E-03 3.17297135685640E-03 - cg2d: Sum(rhs),rhsMax = -5.54076199958378E-03 3.17471659355857E-03 - cg2d: Sum(rhs),rhsMax = -4.32655877302800E-03 3.11938178636875E-03 - cg2d: Sum(rhs),rhsMax = -3.48371979663375E-03 3.01971791965173E-03 - cg2d: Sum(rhs),rhsMax = -3.17244083257301E-03 2.89700831255616E-03 - cg2d: Sum(rhs),rhsMax = -3.44550677287570E-03 2.77676425748015E-03 - cg2d: Sum(rhs),rhsMax = -4.23987170532372E-03 2.78119168828633E-03 - cg2d: Sum(rhs),rhsMax = -5.39114886953820E-03 2.84461358491883E-03 - cg2d: Sum(rhs),rhsMax = -6.66774895016041E-03 2.91823913996405E-03 - cg2d: Sum(rhs),rhsMax = -7.81760248078779E-03 2.98773887474306E-03 - cg2d: Sum(rhs),rhsMax = -8.61805678324808E-03 3.03980213711975E-03 - cg2d: Sum(rhs),rhsMax = -8.91908506152989E-03 3.06473928360063E-03 - cg2d: Sum(rhs),rhsMax = -8.67143952810711E-03 3.06396600111891E-03 - cg2d: Sum(rhs),rhsMax = -7.93449190322540E-03 3.16208629621323E-03 - cg2d: Sum(rhs),rhsMax = -6.86259157039366E-03 3.21610129118152E-03 - cg2d: Sum(rhs),rhsMax = -5.67301301919174E-03 3.21680820571717E-03 - cg2d: Sum(rhs),rhsMax = -4.60212436028249E-03 3.16554826026736E-03 - cg2d: Sum(rhs),rhsMax = -3.85860154111325E-03 3.07378668325029E-03 - cg2d: Sum(rhs),rhsMax = -3.58293312046680E-03 2.96071724588404E-03 - cg2d: Sum(rhs),rhsMax = -3.82105760027538E-03 2.84939001773004E-03 - cg2d: Sum(rhs),rhsMax = -4.51705728888486E-03 2.80618862900467E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470219E-03 4.29236468106495E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539911E-03 6.43184796148055E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273456E-02 8.17951762915387E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390224E-02 9.31105228506722E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438472E-02 9.89364856773515E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118117355E-03 1.22456378133151E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879421205E-03 1.44777510277573E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202875482E-03 1.58982062913096E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828109636E-03 1.64357697439578E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875146255E-04 1.61756159415157E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729207141323E-05 1.53363856619078E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056572233E-04 1.42794064560221E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816379060E-03 1.49223780508560E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898731434E-03 1.56210440360744E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888952147E-03 1.63424212961429E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917021129E-03 1.70505818813498E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899816932E-02 1.77167127367218E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064670059E-02 1.83257529861634E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482906943E-02 1.88791211919490E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268413837E-03 1.93938683788348E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209288957E-03 2.06671962700908E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343782259E-03 2.17651147490551E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123101707E-03 2.23681621182265E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762832202E-03 2.25047700920089E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637557252934E-04 2.23911227388772E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454473042E-03 2.31619526810840E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289097877E-03 2.39332627984857E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142155785E-03 2.46478012430212E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438109364E-03 2.52475933080777E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191383713E-03 2.56860713540735E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753920144E-03 2.59379160255515E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044302923E-02 2.60046741189201E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657866649E-03 2.59154640604385E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745660539E-03 2.57230689558478E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619577218E-03 2.57617678828393E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960511734E-03 2.60704657852569E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524323275E-03 2.55368005689418E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595290119650E-03 2.53090267943617E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134016066228E-03 2.55686897863997E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547889173276E-03 2.59998586276711E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766407903226E-03 2.65617340861997E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801266115904E-03 2.71885907960035E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728547582089E-03 2.78009792886299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533162470379E-03 2.83193125976109E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436784528983E-03 2.86771962687108E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260396693787E-03 2.88321602595921E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588737490267E-03 2.87721816670432E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958546488054E-03 2.85172238434780E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891551407293E-03 2.90854931348874E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216136801553E-03 2.93304375891603E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645865965360E-03 2.88331761878724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907589629268E-03 2.77469261712956E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776875387262E-03 2.64912183875854E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175894008868E-03 2.63954764660035E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063156583123E-03 2.64744430874296E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283030284331E-03 2.67027734197697E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958399099704E-03 2.75143062417528E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517516066821E-03 2.84716528406008E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141274174296E-03 2.92480129524291E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356465241821E-03 2.97120289532927E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691604555021E-03 2.97966805845015E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712344558114E-03 3.00381240031686E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280741820357E-03 3.08036413970036E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430731902251E-03 3.09182673282267E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713142209153E-03 3.03934312304832E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148623444395E-03 2.93659608386470E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983315117504E-03 2.80689808159988E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262913421747E-03 2.68543417906676E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865398330581E-03 2.73031559772019E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138151531770E-03 2.80043603789614E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770815796091E-03 2.88238465873283E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102508842711E-03 2.96047705563278E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794600195627E-03 3.01993448689118E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747830717652E-03 3.04982332080981E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311485504388E-03 3.04517983241944E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185297074440E-03 3.11258932483375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878946910066E-03 3.17297135685645E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076199958544E-03 3.17471659355863E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655877302965E-03 3.11938178636880E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371979663540E-03 3.01971791965178E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244083257465E-03 2.89700831255622E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550677287734E-03 2.77676425748020E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987170532535E-03 2.78119168828634E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114886953983E-03 2.84461358491884E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774895016204E-03 2.91823913996405E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760248078943E-03 2.98773887474307E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805678324972E-03 3.03980213711976E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908506153152E-03 3.06473928360065E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143952810876E-03 3.06396600111896E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449190322706E-03 3.16208629621326E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259157039532E-03 3.21610129118157E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301301919341E-03 3.21680820571721E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212436028416E-03 3.16554826026742E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860154111490E-03 3.07378668325034E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293312046846E-03 2.96071724588409E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105760027706E-03 2.84939001773009E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705728888654E-03 2.80618862900468E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809587747843D-01 -(PID.TID 0000.0001) local fc = 0.473809587747843D-01 -(PID.TID 0000.0001) global fc = 0.473809587747843D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587747843E-02 + --> objf_test(bi,bj) = 0.473809587747841D-01 +(PID.TID 0000.0001) local fc = 0.473809587747841D-01 +(PID.TID 0000.0001) global fc = 0.473809587747841D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809587747841E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -2914,118 +2912,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353663E-03 2.18766023593956E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470312E-03 4.29236468103203E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539666E-03 6.43184796141664E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273318E-02 8.17951762918414E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389899E-02 9.31105228529372E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562437927E-02 9.89364856705213E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118110082E-03 1.22456378123734E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879413359E-03 1.44777510263156E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202869140E-03 1.58982062892851E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828107450E-03 1.64357697412754E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875194281E-04 1.61756159380975E-03 - cg2d: Sum(rhs),rhsMax = 7.99729205707510E-05 1.53363856576581E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056829424E-04 1.42794064568257E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816417041E-03 1.49223780614545E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898781547E-03 1.56210440588819E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889013437E-03 1.63424213322785E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917092183E-03 1.70505819302806E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899824871E-02 1.77167127961811E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064678731E-02 1.83257530523785E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482916309E-02 1.88791212601532E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268514709E-03 1.93938684439805E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209397633E-03 2.06671962453319E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343899162E-03 2.17651147212012E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123226440E-03 2.23681620873000E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762962919E-03 2.25047700580667E-03 - cg2d: Sum(rhs),rhsMax = -5.83637558582423E-04 2.23911227512351E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454602380E-03 2.31619526873086E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289215825E-03 2.39332628029282E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142253110E-03 2.46478012499285E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438176083E-03 2.52475933208246E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191409887E-03 2.56860713745707E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753896566E-03 2.59379160539368E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044294784E-02 2.60046741535764E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657720612E-03 2.59154640983294E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745443820E-03 2.57230689930960E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619283884E-03 2.57617677335824E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960134999E-03 2.60704656293349E-03 - cg2d: Sum(rhs),rhsMax = -2.99995523854559E-03 2.55368004043280E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289547837E-03 2.53090267970023E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015377321E-03 2.55686897782280E-03 - cg2d: Sum(rhs),rhsMax = -1.68547888350541E-03 2.59998586104770E-03 - cg2d: Sum(rhs),rhsMax = -2.84766406927840E-03 2.65617340625509E-03 - cg2d: Sum(rhs),rhsMax = -4.53801264967998E-03 2.71885907686833E-03 - cg2d: Sum(rhs),rhsMax = -6.41728546241980E-03 2.78009792600816E-03 - cg2d: Sum(rhs),rhsMax = -8.11533160919765E-03 2.83193125695009E-03 - cg2d: Sum(rhs),rhsMax = -9.30436782751825E-03 2.86771962416911E-03 - cg2d: Sum(rhs),rhsMax = -9.76260394676707E-03 2.88321602332964E-03 - cg2d: Sum(rhs),rhsMax = -9.41588735222349E-03 2.87721816403003E-03 - cg2d: Sum(rhs),rhsMax = -8.34958543960066E-03 2.85172238146842E-03 - cg2d: Sum(rhs),rhsMax = -6.78891548610502E-03 2.90854928531894E-03 - cg2d: Sum(rhs),rhsMax = -5.05216133726347E-03 2.93304372980625E-03 - cg2d: Sum(rhs),rhsMax = -3.48645862599983E-03 2.88331758863758E-03 - cg2d: Sum(rhs),rhsMax = -2.39907585958953E-03 2.77469258585821E-03 - cg2d: Sum(rhs),rhsMax = -1.99776871393945E-03 2.64912183358718E-03 - cg2d: Sum(rhs),rhsMax = -2.35175889671611E-03 2.63954764116546E-03 - cg2d: Sum(rhs),rhsMax = -3.38063151879150E-03 2.64744430319212E-03 - cg2d: Sum(rhs),rhsMax = -4.87283025190520E-03 2.67027733642523E-03 - cg2d: Sum(rhs),rhsMax = -6.52958393594229E-03 2.75143060532402E-03 - cg2d: Sum(rhs),rhsMax = -8.02517510130612E-03 2.84716526248026E-03 - cg2d: Sum(rhs),rhsMax = -9.07141267792028E-03 2.92480127058580E-03 - cg2d: Sum(rhs),rhsMax = -9.47356458402180E-03 2.97120286770872E-03 - cg2d: Sum(rhs),rhsMax = -9.16691597250208E-03 2.97966802843515E-03 - cg2d: Sum(rhs),rhsMax = -8.22712336782638E-03 3.00381235845273E-03 - cg2d: Sum(rhs),rhsMax = -6.85280733569364E-03 3.08036409668397E-03 - cg2d: Sum(rhs),rhsMax = -5.32430723169706E-03 3.09182668857464E-03 - cg2d: Sum(rhs),rhsMax = -3.94713132986264E-03 3.03934307751150E-03 - cg2d: Sum(rhs),rhsMax = -2.99148613718607E-03 2.93659603701802E-03 - cg2d: Sum(rhs),rhsMax = -2.63983304872287E-03 2.80689803346487E-03 - cg2d: Sum(rhs),rhsMax = -2.95262902637250E-03 2.68543415231320E-03 - cg2d: Sum(rhs),rhsMax = -3.85865386985043E-03 2.73031557036201E-03 - cg2d: Sum(rhs),rhsMax = -5.17138139603425E-03 2.80043600871133E-03 - cg2d: Sum(rhs),rhsMax = -6.62770803265199E-03 2.88238462662714E-03 - cg2d: Sum(rhs),rhsMax = -7.94102495693283E-03 2.96047701986913E-03 - cg2d: Sum(rhs),rhsMax = -8.85794586416520E-03 3.01993444725168E-03 - cg2d: Sum(rhs),rhsMax = -9.20747816302756E-03 3.04982327765619E-03 - cg2d: Sum(rhs),rhsMax = -8.93311470451873E-03 3.04517978663846E-03 - cg2d: Sum(rhs),rhsMax = -8.10185281385188E-03 3.11258926784541E-03 - cg2d: Sum(rhs),rhsMax = -6.88878930585563E-03 3.17297129873977E-03 - cg2d: Sum(rhs),rhsMax = -5.54076182998687E-03 3.17471653421656E-03 - cg2d: Sum(rhs),rhsMax = -4.32655859704184E-03 3.11938172573409E-03 - cg2d: Sum(rhs),rhsMax = -3.48371961417649E-03 3.01971785770147E-03 - cg2d: Sum(rhs),rhsMax = -3.17244064351471E-03 2.89700824931782E-03 - cg2d: Sum(rhs),rhsMax = -3.44550657704670E-03 2.77676419302821E-03 - cg2d: Sum(rhs),rhsMax = -4.23987150253174E-03 2.78119165073670E-03 - cg2d: Sum(rhs),rhsMax = -5.39114865959084E-03 2.84461354619353E-03 - cg2d: Sum(rhs),rhsMax = -6.66774873288875E-03 2.91823909882297E-03 - cg2d: Sum(rhs),rhsMax = -7.81760225606629E-03 2.98773883029992E-03 - cg2d: Sum(rhs),rhsMax = -8.61805655100672E-03 3.03980208901158E-03 - cg2d: Sum(rhs),rhsMax = -8.91908482175612E-03 3.06473923205359E-03 - cg2d: Sum(rhs),rhsMax = -8.67143928083693E-03 3.06396593076125E-03 - cg2d: Sum(rhs),rhsMax = -7.93449164852524E-03 3.16208622502137E-03 - cg2d: Sum(rhs),rhsMax = -6.86259130833652E-03 3.21610121906220E-03 - cg2d: Sum(rhs),rhsMax = -5.67301274983250E-03 3.21680813258080E-03 - cg2d: Sum(rhs),rhsMax = -4.60212408363699E-03 3.16554818604709E-03 - cg2d: Sum(rhs),rhsMax = -3.85860125714560E-03 3.07378660791604E-03 - cg2d: Sum(rhs),rhsMax = -3.58293282908751E-03 2.96071716944910E-03 - cg2d: Sum(rhs),rhsMax = -3.82105730135062E-03 2.84938994024892E-03 - cg2d: Sum(rhs),rhsMax = -4.51705698225522E-03 2.80618858239952E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470296E-03 4.29236468103164E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539643E-03 6.43184796141265E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273316E-02 8.17951762918062E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389895E-02 9.31105228529007E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562437922E-02 9.89364856705426E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118110027E-03 1.22456378123732E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879413298E-03 1.44777510263151E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202869072E-03 1.58982062892845E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828107377E-03 1.64357697412748E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875193495E-04 1.61756159380967E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729205715947E-05 1.53363856576571E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056828527E-04 1.42794064568275E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816416945E-03 1.49223780614562E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898781447E-03 1.56210440588837E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889013332E-03 1.63424213322801E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917092071E-03 1.70505819302823E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899824860E-02 1.77167127961827E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064678719E-02 1.83257530523800E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482916297E-02 1.88791212601546E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268514585E-03 1.93938684439819E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209397504E-03 2.06671962453299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343899030E-03 2.17651147211991E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123226302E-03 2.23681620872978E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762962778E-03 2.25047700580645E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637558580984E-04 2.23911227512363E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454602233E-03 2.31619526873096E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289215677E-03 2.39332628029292E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142252959E-03 2.46478012499295E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438175931E-03 2.52475933208255E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191409732E-03 2.56860713745715E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753896410E-03 2.59379160539375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044294769E-02 2.60046741535772E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657720455E-03 2.59154640983301E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745443663E-03 2.57230689930968E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619283723E-03 2.57617677335815E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960134839E-03 2.60704656293341E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995523854398E-03 2.55368004043270E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289547675E-03 2.53090267970028E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015377157E-03 2.55686897782285E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547888350377E-03 2.59998586104774E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766406927676E-03 2.65617340625514E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801264967834E-03 2.71885907686837E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728546241817E-03 2.78009792600819E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533160919603E-03 2.83193125695012E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436782751662E-03 2.86771962416914E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260394676542E-03 2.88321602332966E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588735222182E-03 2.87721816403006E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958543959899E-03 2.85172238146844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891548610335E-03 2.90854928531885E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216133726183E-03 2.93304372980616E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645862599821E-03 2.88331758863748E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907585958790E-03 2.77469258585812E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776871393783E-03 2.64912183358718E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175889671449E-03 2.63954764116546E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063151878989E-03 2.64744430319211E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283025190361E-03 2.67027733642522E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958393594070E-03 2.75143060532405E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517510130454E-03 2.84716526248027E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141267791872E-03 2.92480127058582E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356458402024E-03 2.97120286770874E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691597250055E-03 2.97966802843518E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712336782486E-03 3.00381235845267E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280733569212E-03 3.08036409668389E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430723169554E-03 3.09182668857457E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713132986113E-03 3.03934307751144E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148613718456E-03 2.93659603701796E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983304872136E-03 2.80689803346481E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262902637098E-03 2.68543415231321E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865386984891E-03 2.73031557036201E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138139603274E-03 2.80043600871134E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770803265048E-03 2.88238462662714E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102495693133E-03 2.96047701986914E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794586416369E-03 3.01993444725168E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747816302605E-03 3.04982327765620E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311470451723E-03 3.04517978663847E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185281385037E-03 3.11258926784536E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878930585411E-03 3.17297129873972E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076182998536E-03 3.17471653421652E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655859704033E-03 3.11938172573404E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371961417498E-03 3.01971785770142E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244064351320E-03 2.89700824931777E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550657704519E-03 2.77676419302817E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987150253023E-03 2.78119165073669E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114865958935E-03 2.84461354619353E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774873288726E-03 2.91823909882297E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760225606479E-03 2.98773883029992E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805655100524E-03 3.03980208901157E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908482175466E-03 3.06473923205359E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143928083547E-03 3.06396593076121E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449164852380E-03 3.16208622502132E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259130833509E-03 3.21610121906216E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301274983107E-03 3.21680813258076E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212408363555E-03 3.16554818604705E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860125714416E-03 3.07378660791600E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293282908608E-03 2.96071716944905E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105730134918E-03 2.84938994024888E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705698225378E-03 2.80618858239951E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809587390452D-01 -(PID.TID 0000.0001) local fc = 0.473809587390452D-01 -(PID.TID 0000.0001) global fc = 0.473809587390452D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587390452E-02 + --> objf_test(bi,bj) = 0.473809587390453D-01 +(PID.TID 0000.0001) local fc = 0.473809587390453D-01 +(PID.TID 0000.0001) global fc = 0.473809587390453D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809587390453E-02 grad-res ------------------------------- grad-res 0 4 5 2 1 1 1 1 4.73809587569E-02 4.73809587748E-02 4.73809587390E-02 - grad-res 0 4 4 10 0 1 1 1 1.78683115805E-07 1.78695773456E-07 -7.08385395500E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.78683115805229E-07 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.78695773456194E-07 + grad-res 0 4 4 10 0 1 1 1 1.78692303723E-07 1.78693830566E-07 -8.54453810351E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.78692303722703E-07 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.78693830565901E-07 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 13 25 5 @@ -3042,112 +3040,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023598622E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470255E-03 4.29236468118010E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540601E-03 6.43184796169083E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273686E-02 8.17951762949157E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390674E-02 9.31105228562476E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562439103E-02 9.89364856790333E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118123587E-03 1.22456378127351E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879423769E-03 1.44777510284960E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202869279E-03 1.58982062942230E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828088753E-03 1.64357697496713E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874735000E-04 1.61756159501793E-03 - cg2d: Sum(rhs),rhsMax = 7.99729213658491E-05 1.53363856730090E-03 - cg2d: Sum(rhs),rhsMax = -4.03103055673917E-04 1.42794064675944E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816268257E-03 1.49223780660924E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898608148E-03 1.56210440546294E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888829319E-03 1.63424213170917E-03 - cg2d: Sum(rhs),rhsMax = -8.63394916914897E-03 1.70505819032179E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899809694E-02 1.77167127576138E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064667787E-02 1.83257530039775E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482910802E-02 1.88791212046421E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268518987E-03 1.93938683846963E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209458099E-03 2.06671962162602E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344004833E-03 2.17651146908047E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123360332E-03 2.23681620584485E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763105107E-03 2.25047700332335E-03 - cg2d: Sum(rhs),rhsMax = -5.83637559896428E-04 2.23911227074215E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454708607E-03 2.31619526456002E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289290407E-03 2.39332627605582E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142299428E-03 2.46478012038976E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438207616E-03 2.52475932684730E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191448652E-03 2.56860713140724E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753969974E-03 2.59379159846218E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044308451E-02 2.60046740760283E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657945865E-03 2.59154640142438E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745775741E-03 2.57230689049371E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619730605E-03 2.57617678109729E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960693826E-03 2.60704657106721E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524513043E-03 2.55368004904483E-03 - cg2d: Sum(rhs),rhsMax = -1.75595290286692E-03 2.53090267160370E-03 - cg2d: Sum(rhs),rhsMax = -1.29134016174631E-03 2.55686897013352E-03 - cg2d: Sum(rhs),rhsMax = -1.68547889186505E-03 2.59998585367154E-03 - cg2d: Sum(rhs),rhsMax = -2.84766407789193E-03 2.65617339903844E-03 - cg2d: Sum(rhs),rhsMax = -4.53801265851268E-03 2.71885906963843E-03 - cg2d: Sum(rhs),rhsMax = -6.41728547154994E-03 2.78009791861489E-03 - cg2d: Sum(rhs),rhsMax = -8.11533161881097E-03 2.83193124930013E-03 - cg2d: Sum(rhs),rhsMax = -9.30436783788298E-03 2.86771961624537E-03 - cg2d: Sum(rhs),rhsMax = -9.76260395819416E-03 2.88321601519223E-03 - cg2d: Sum(rhs),rhsMax = -9.41588736501934E-03 2.87721815579923E-03 - cg2d: Sum(rhs),rhsMax = -8.34958545402148E-03 2.85172237329384E-03 - cg2d: Sum(rhs),rhsMax = -6.78891550232105E-03 2.90854929953980E-03 - cg2d: Sum(rhs),rhsMax = -5.05216135533985E-03 2.93304374459975E-03 - cg2d: Sum(rhs),rhsMax = -3.48645864589749E-03 2.88331760405606E-03 - cg2d: Sum(rhs),rhsMax = -2.39907588118568E-03 2.77469260193028E-03 - cg2d: Sum(rhs),rhsMax = -1.99776873706358E-03 2.64912182666519E-03 - cg2d: Sum(rhs),rhsMax = -2.35175892119439E-03 2.63954763423718E-03 - cg2d: Sum(rhs),rhsMax = -3.38063154449105E-03 2.64744429608560E-03 - cg2d: Sum(rhs),rhsMax = -4.87283027876978E-03 2.67027732899978E-03 - cg2d: Sum(rhs),rhsMax = -6.52958396401249E-03 2.75143061402974E-03 - cg2d: Sum(rhs),rhsMax = -8.02517513072058E-03 2.84716527263135E-03 - cg2d: Sum(rhs),rhsMax = -9.07141270889779E-03 2.92480128234221E-03 - cg2d: Sum(rhs),rhsMax = -9.47356461682806E-03 2.97120288099216E-03 - cg2d: Sum(rhs),rhsMax = -9.16691600740782E-03 2.97966804293763E-03 - cg2d: Sum(rhs),rhsMax = -8.22712340506503E-03 3.00381237971132E-03 - cg2d: Sum(rhs),rhsMax = -6.85280737542698E-03 3.08036411857792E-03 - cg2d: Sum(rhs),rhsMax = -5.32430727399541E-03 3.09182671116825E-03 - cg2d: Sum(rhs),rhsMax = -3.94713137470320E-03 3.03934310084632E-03 - cg2d: Sum(rhs),rhsMax = -2.99148618446965E-03 2.93659606110385E-03 - cg2d: Sum(rhs),rhsMax = -2.63983309830542E-03 2.80689805827698E-03 - cg2d: Sum(rhs),rhsMax = -2.95262907810498E-03 2.68543416528475E-03 - cg2d: Sum(rhs),rhsMax = -3.85865392361908E-03 2.73031558372799E-03 - cg2d: Sum(rhs),rhsMax = -5.17138145179306E-03 2.80043602309715E-03 - cg2d: Sum(rhs),rhsMax = -6.62770809044103E-03 2.88238464258259E-03 - cg2d: Sum(rhs),rhsMax = -7.94102501687882E-03 2.96047703775300E-03 - cg2d: Sum(rhs),rhsMax = -8.85794592646423E-03 3.01993446715249E-03 - cg2d: Sum(rhs),rhsMax = -9.20747822791356E-03 3.04982329936593E-03 - cg2d: Sum(rhs),rhsMax = -8.93311477222412E-03 3.04517980968518E-03 - cg2d: Sum(rhs),rhsMax = -8.10185288456812E-03 3.11258929704669E-03 - cg2d: Sum(rhs),rhsMax = -6.88878937970194E-03 3.17297132854967E-03 - cg2d: Sum(rhs),rhsMax = -5.54076190699304E-03 3.17471656470424E-03 - cg2d: Sum(rhs),rhsMax = -4.32655867714907E-03 3.11938175694421E-03 - cg2d: Sum(rhs),rhsMax = -3.48371969725572E-03 3.01971788964483E-03 - cg2d: Sum(rhs),rhsMax = -3.17244072939914E-03 2.89700828196845E-03 - cg2d: Sum(rhs),rhsMax = -3.44550666557188E-03 2.77676422632778E-03 - cg2d: Sum(rhs),rhsMax = -4.23987159357540E-03 2.78119166984592E-03 - cg2d: Sum(rhs),rhsMax = -5.39114875310437E-03 2.84461356600658E-03 - cg2d: Sum(rhs),rhsMax = -6.66774882891407E-03 2.91823911996506E-03 - cg2d: Sum(rhs),rhsMax = -7.81760235473453E-03 2.98773885320591E-03 - cg2d: Sum(rhs),rhsMax = -8.61805665251904E-03 3.03980211384291E-03 - cg2d: Sum(rhs),rhsMax = -8.91908492635017E-03 3.06473925866929E-03 - cg2d: Sum(rhs),rhsMax = -8.67143938874551E-03 3.06396596692241E-03 - cg2d: Sum(rhs),rhsMax = -7.93449175993538E-03 3.16208626163632E-03 - cg2d: Sum(rhs),rhsMax = -6.86259142335698E-03 3.21610125620431E-03 - cg2d: Sum(rhs),rhsMax = -5.67301286847607E-03 3.21680817031465E-03 - cg2d: Sum(rhs),rhsMax = -4.60212420582137E-03 3.16554822441487E-03 - cg2d: Sum(rhs),rhsMax = -3.85860138271268E-03 3.07378664692861E-03 - cg2d: Sum(rhs),rhsMax = -3.58293295783736E-03 2.96071720908330E-03 - cg2d: Sum(rhs),rhsMax = -3.82105743308383E-03 2.84938998045179E-03 - cg2d: Sum(rhs),rhsMax = -4.51705711681522E-03 2.80618860675593E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470258E-03 4.29236468116524E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540607E-03 6.43184796168192E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273687E-02 8.17951762948641E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390675E-02 9.31105228561912E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562439104E-02 9.89364856789506E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118123592E-03 1.22456378127271E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879423775E-03 1.44777510284883E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202869284E-03 1.58982062942154E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828088759E-03 1.64357697496637E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874735069E-04 1.61756159501718E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729213657616E-05 1.53363856730016E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103055674027E-04 1.42794064675866E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816268271E-03 1.49223780660848E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898608165E-03 1.56210440546220E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888829337E-03 1.63424213170845E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394916914916E-03 1.70505819032108E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899809696E-02 1.77167127576069E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064667788E-02 1.83257530039708E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482910803E-02 1.88791212046357E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268519003E-03 1.93938683846901E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209458115E-03 2.06671962162547E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344004848E-03 2.17651146907994E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123360349E-03 2.23681620584433E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763105125E-03 2.25047700332287E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637559896613E-04 2.23911227074163E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454708627E-03 2.31619526455952E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289290430E-03 2.39332627605534E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142299451E-03 2.46478012038930E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438207641E-03 2.52475932684688E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191448676E-03 2.56860713140684E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753969998E-03 2.59379159846181E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044308453E-02 2.60046740760248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657945888E-03 2.59154640142405E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745775759E-03 2.57230689049338E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619730624E-03 2.57617678109688E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960693843E-03 2.60704657106680E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524513059E-03 2.55368004904443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595290286709E-03 2.53090267160347E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134016174648E-03 2.55686897013330E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547889186524E-03 2.59998585367135E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766407789213E-03 2.65617339903827E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801265851290E-03 2.71885906963828E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728547155017E-03 2.78009791861476E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533161881121E-03 2.83193124930002E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436783788320E-03 2.86771961624527E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260395819434E-03 2.88321601519215E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588736501952E-03 2.87721815579917E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958545402163E-03 2.85172237329379E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891550232118E-03 2.90854929953954E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216135533995E-03 2.93304374459950E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645864589761E-03 2.88331760405581E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907588118578E-03 2.77469260193004E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776873706370E-03 2.64912182666519E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175892119451E-03 2.63954763423720E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063154449119E-03 2.64744429608563E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283027876994E-03 2.67027732899982E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958396401265E-03 2.75143061402958E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517513072076E-03 2.84716527263119E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141270889796E-03 2.92480128234206E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356461682824E-03 2.97120288099203E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691600740800E-03 2.97966804293752E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712340506518E-03 3.00381237971116E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280737542715E-03 3.08036411857777E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430727399555E-03 3.09182671116810E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713137470333E-03 3.03934310084618E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148618446978E-03 2.93659606110372E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983309830555E-03 2.80689805827686E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262907810512E-03 2.68543416528468E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865392361923E-03 2.73031558372792E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138145179323E-03 2.80043602309709E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770809044121E-03 2.88238464258253E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102501687900E-03 2.96047703775295E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794592646439E-03 3.01993446715244E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747822791375E-03 3.04982329936589E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311477222432E-03 3.04517980968515E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185288456832E-03 3.11258929704662E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878937970215E-03 3.17297132854959E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076190699327E-03 3.17471656470416E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655867714929E-03 3.11938175694415E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371969725595E-03 3.01971788964476E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244072939938E-03 2.89700828196838E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550666557215E-03 2.77676422632772E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987159357568E-03 2.78119166984591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114875310469E-03 2.84461356600658E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774882891437E-03 2.91823911996505E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760235473484E-03 2.98773885320591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805665251937E-03 3.03980211384290E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908492635051E-03 3.06473925866928E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143938874585E-03 3.06396596692237E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449175993572E-03 3.16208626163629E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259142335729E-03 3.21610125620427E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301286847636E-03 3.21680817031461E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212420582166E-03 3.16554822441483E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860138271298E-03 3.07378664692857E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293295783768E-03 2.96071720908326E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105743308417E-03 2.84938998045175E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705711681559E-03 2.80618860675593E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809591660647D-01 -(PID.TID 0000.0001) local fc = 0.473809591660647D-01 -(PID.TID 0000.0001) global fc = 0.473809591660647D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809591660647E-02 + --> objf_test(bi,bj) = 0.473809591660644D-01 +(PID.TID 0000.0001) local fc = 0.473809591660644D-01 +(PID.TID 0000.0001) global fc = 0.473809591660644D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809591660644E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -3158,118 +3156,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023593931E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470261E-03 4.29236468091652E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903538954E-03 6.43184796120237E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273086E-02 8.17951762884288E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389445E-02 9.31105228473239E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562437292E-02 9.89364856688609E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118103794E-03 1.22456378129534E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879410732E-03 1.44777510255762E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202875276E-03 1.58982062863712E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828128260E-03 1.64357697355613E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875604752E-04 1.61756159294330E-03 - cg2d: Sum(rhs),rhsMax = 7.99729199198785E-05 1.53363856465559E-03 - cg2d: Sum(rhs),rhsMax = -4.03103057726843E-04 1.42794064452552E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816527749E-03 1.49223780462199E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898904733E-03 1.56210440403287E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889136160E-03 1.63424213113313E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917198308E-03 1.70505819084142E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899832098E-02 1.77167127752906E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064680991E-02 1.83257530345660E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482912438E-02 1.88791212474614E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268409438E-03 1.93938684381204E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209228368E-03 2.06671962991605E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343676461E-03 2.17651147794494E-03 - cg2d: Sum(rhs),rhsMax = -2.55199122967681E-03 2.23681621470759E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762689875E-03 2.25047701168397E-03 - cg2d: Sum(rhs),rhsMax = -5.83637555937515E-04 2.23911227826919E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454366671E-03 2.31619527227934E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289023149E-03 2.39332628408567E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142109319E-03 2.46478012890531E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438077681E-03 2.52475933604302E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191344797E-03 2.56860714145726E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753846585E-03 2.59379160948673E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044289241E-02 2.60046741964691E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657641242E-03 2.59154641445250E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745328469E-03 2.57230690440076E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619130345E-03 2.57617678054479E-03 - cg2d: Sum(rhs),rhsMax = -4.78666959952759E-03 2.60704657039190E-03 - cg2d: Sum(rhs),rhsMax = -2.99995523664641E-03 2.55368004828206E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289380641E-03 2.53090268753275E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015268764E-03 2.55686898632930E-03 - cg2d: Sum(rhs),rhsMax = -1.68547888337157E-03 2.59998587014332E-03 - cg2d: Sum(rhs),rhsMax = -2.84766407041719E-03 2.65617341583666E-03 - cg2d: Sum(rhs),rhsMax = -4.53801265232480E-03 2.71885908683030E-03 - cg2d: Sum(rhs),rhsMax = -6.41728546668921E-03 2.78009793625630E-03 - cg2d: Sum(rhs),rhsMax = -8.11533161508896E-03 2.83193126741109E-03 - cg2d: Sum(rhs),rhsMax = -9.30436783492359E-03 2.86771963479485E-03 - cg2d: Sum(rhs),rhsMax = -9.76260395550929E-03 2.88321603409666E-03 - cg2d: Sum(rhs),rhsMax = -9.41588736210534E-03 2.87721817493516E-03 - cg2d: Sum(rhs),rhsMax = -8.34958545045825E-03 2.85172239252242E-03 - cg2d: Sum(rhs),rhsMax = -6.78891549785546E-03 2.90854929926780E-03 - cg2d: Sum(rhs),rhsMax = -5.05216134993774E-03 2.93304374412246E-03 - cg2d: Sum(rhs),rhsMax = -3.48645863975454E-03 2.88331760336869E-03 - cg2d: Sum(rhs),rhsMax = -2.39907587469514E-03 2.77469260105741E-03 - cg2d: Sum(rhs),rhsMax = -1.99776873074710E-03 2.64912184568055E-03 - cg2d: Sum(rhs),rhsMax = -2.35175891560902E-03 2.63954765352864E-03 - cg2d: Sum(rhs),rhsMax = -3.38063154013029E-03 2.64744431584949E-03 - cg2d: Sum(rhs),rhsMax = -4.87283027597737E-03 2.67027734940243E-03 - cg2d: Sum(rhs),rhsMax = -6.52958396292550E-03 2.75143061546960E-03 - cg2d: Sum(rhs),rhsMax = -8.02517513125240E-03 2.84716527390902E-03 - cg2d: Sum(rhs),rhsMax = -9.07141271076412E-03 2.92480128348654E-03 - cg2d: Sum(rhs),rhsMax = -9.47356461961064E-03 2.97120288204587E-03 - cg2d: Sum(rhs),rhsMax = -9.16691601064320E-03 2.97966804394770E-03 - cg2d: Sum(rhs),rhsMax = -8.22712340834122E-03 3.00381237905822E-03 - cg2d: Sum(rhs),rhsMax = -6.85280737846894E-03 3.08036411780636E-03 - cg2d: Sum(rhs),rhsMax = -5.32430727672288E-03 3.09182671022901E-03 - cg2d: Sum(rhs),rhsMax = -3.94713137724971E-03 3.03934309971344E-03 - cg2d: Sum(rhs),rhsMax = -2.99148618715911E-03 2.93659605977882E-03 - cg2d: Sum(rhs),rhsMax = -2.63983310159124E-03 2.80689805678772E-03 - cg2d: Sum(rhs),rhsMax = -2.95262908248373E-03 2.68543416609523E-03 - cg2d: Sum(rhs),rhsMax = -3.85865392953591E-03 2.73031558435422E-03 - cg2d: Sum(rhs),rhsMax = -5.17138145955765E-03 2.80043602351034E-03 - cg2d: Sum(rhs),rhsMax = -6.62770810017065E-03 2.88238464277740E-03 - cg2d: Sum(rhs),rhsMax = -7.94102502847991E-03 2.96047703774895E-03 - cg2d: Sum(rhs),rhsMax = -8.85794593965605E-03 3.01993446699041E-03 - cg2d: Sum(rhs),rhsMax = -9.20747824228933E-03 3.04982329910010E-03 - cg2d: Sum(rhs),rhsMax = -8.93311478733732E-03 3.04517980937273E-03 - cg2d: Sum(rhs),rhsMax = -8.10185290002703E-03 3.11258929563243E-03 - cg2d: Sum(rhs),rhsMax = -6.88878939525326E-03 3.17297132704651E-03 - cg2d: Sum(rhs),rhsMax = -5.54076192257818E-03 3.17471656307094E-03 - cg2d: Sum(rhs),rhsMax = -4.32655869292133E-03 3.11938175515865E-03 - cg2d: Sum(rhs),rhsMax = -3.48371971355508E-03 3.01971788770840E-03 - cg2d: Sum(rhs),rhsMax = -3.17244074668916E-03 2.89700827990555E-03 - cg2d: Sum(rhs),rhsMax = -3.44550668435109E-03 2.77676422418061E-03 - cg2d: Sum(rhs),rhsMax = -4.23987161428063E-03 2.78119166917714E-03 - cg2d: Sum(rhs),rhsMax = -5.39114877602524E-03 2.84461356510579E-03 - cg2d: Sum(rhs),rhsMax = -6.66774885413569E-03 2.91823911882199E-03 - cg2d: Sum(rhs),rhsMax = -7.81760238212016E-03 2.98773885183711E-03 - cg2d: Sum(rhs),rhsMax = -8.61805668173638E-03 3.03980211228845E-03 - cg2d: Sum(rhs),rhsMax = -8.91908495693646E-03 3.06473925698497E-03 - cg2d: Sum(rhs),rhsMax = -8.67143942019915E-03 3.06396596495779E-03 - cg2d: Sum(rhs),rhsMax = -7.93449179181590E-03 3.16208625959830E-03 - cg2d: Sum(rhs),rhsMax = -6.86259145537388E-03 3.21610125403945E-03 - cg2d: Sum(rhs),rhsMax = -5.67301290054887E-03 3.21680816798335E-03 - cg2d: Sum(rhs),rhsMax = -4.60212423809881E-03 3.16554822189961E-03 - cg2d: Sum(rhs),rhsMax = -3.85860141554687E-03 3.07378664423775E-03 - cg2d: Sum(rhs),rhsMax = -3.58293299171764E-03 2.96071720624986E-03 - cg2d: Sum(rhs),rhsMax = -3.82105746854287E-03 2.84938997752719E-03 - cg2d: Sum(rhs),rhsMax = -4.51705715432555E-03 2.80618860464830E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587219E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470258E-03 4.29236468093133E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903538949E-03 6.43184796121129E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273085E-02 8.17951762884827E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389445E-02 9.31105228473810E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562437292E-02 9.89364856689437E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118103794E-03 1.22456378129613E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879410736E-03 1.44777510255841E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202875281E-03 1.58982062863789E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828128266E-03 1.64357697355690E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875604807E-04 1.61756159294405E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729199198391E-05 1.53363856465633E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103057726857E-04 1.42794064452630E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816527747E-03 1.49223780462275E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898904730E-03 1.56210440403361E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889136155E-03 1.63424213113386E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917198301E-03 1.70505819084213E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899832097E-02 1.77167127752975E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064680990E-02 1.83257530345726E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482912438E-02 1.88791212474679E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268409433E-03 1.93938684381267E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209228361E-03 2.06671962991662E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343676455E-03 2.17651147794548E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199122967675E-03 2.23681621470811E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762689868E-03 2.25047701168447E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637555937436E-04 2.23911227826972E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454366662E-03 2.31619527227985E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289023137E-03 2.39332628408615E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142109306E-03 2.46478012890577E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438077668E-03 2.52475933604345E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191344783E-03 2.56860714145767E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753846571E-03 2.59379160948710E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044289239E-02 2.60046741964727E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657641229E-03 2.59154641445283E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745328455E-03 2.57230690440108E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619130332E-03 2.57617678054520E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666959952745E-03 2.60704657039231E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995523664628E-03 2.55368004828246E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289380630E-03 2.53090268753299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015268753E-03 2.55686898632952E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547888337145E-03 2.59998587014351E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766407041705E-03 2.65617341583684E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801265232464E-03 2.71885908683044E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728546668905E-03 2.78009793625643E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533161508879E-03 2.83193126741120E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436783492343E-03 2.86771963479494E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260395550913E-03 2.88321603409674E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588736210520E-03 2.87721817493522E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958545045813E-03 2.85172239252248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891549785535E-03 2.90854929926807E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216134993764E-03 2.93304374412272E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645863975446E-03 2.88331760336893E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907587469505E-03 2.77469260105766E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776873074701E-03 2.64912184568054E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175891560891E-03 2.63954765352862E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063154013017E-03 2.64744431584946E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283027597723E-03 2.67027734940239E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958396292533E-03 2.75143061546975E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517513125224E-03 2.84716527390916E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141271076395E-03 2.92480128348667E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356461961047E-03 2.97120288204600E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691601064303E-03 2.97966804394783E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712340834106E-03 3.00381237905838E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280737846880E-03 3.08036411780651E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430727672275E-03 3.09182671022917E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713137724957E-03 3.03934309971359E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148618715899E-03 2.93659605977896E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983310159111E-03 2.80689805678785E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262908248360E-03 2.68543416609530E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865392953576E-03 2.73031558435429E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138145955749E-03 2.80043602351040E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770810017047E-03 2.88238464277746E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102502847973E-03 2.96047703774900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794593965586E-03 3.01993446699044E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747824228913E-03 3.04982329910014E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311478733712E-03 3.04517980937277E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185290002683E-03 3.11258929563251E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878939525307E-03 3.17297132704659E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076192257800E-03 3.17471656307101E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655869292115E-03 3.11938175515872E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371971355490E-03 3.01971788770848E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244074668897E-03 2.89700827990563E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550668435090E-03 2.77676422418067E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987161428042E-03 2.78119166917715E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114877602501E-03 2.84461356510580E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774885413544E-03 2.91823911882200E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760238211989E-03 2.98773885183712E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805668173611E-03 3.03980211228846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908495693619E-03 3.06473925698496E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143942019889E-03 3.06396596495784E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449179181564E-03 3.16208625959835E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259145537363E-03 3.21610125403948E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301290054863E-03 3.21680816798340E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212423809856E-03 3.16554822189965E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860141554663E-03 3.07378664423779E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293299171739E-03 2.96071720624990E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105746854261E-03 2.84938997752724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705715432527E-03 2.80618860464829E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809583477647D-01 -(PID.TID 0000.0001) local fc = 0.473809583477647D-01 -(PID.TID 0000.0001) global fc = 0.473809583477647D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809583477647E-02 + --> objf_test(bi,bj) = 0.473809583477650D-01 +(PID.TID 0000.0001) local fc = 0.473809583477650D-01 +(PID.TID 0000.0001) global fc = 0.473809583477650D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809583477650E-02 grad-res ------------------------------- grad-res 0 5 3 3 1 1 1 1 4.73809587569E-02 4.73809591661E-02 4.73809583478E-02 - grad-res 0 5 5 13 0 1 1 1 4.09163329233E-06 4.09150029829E-06 3.25039012292E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.09163329233104E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.09150029828664E-06 + grad-res 0 5 5 13 0 1 1 1 4.09149779318E-06 4.09149689823E-06 2.18734501622E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.09149779318036E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.09149689822863E-06 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 16 25 6 @@ -3286,106 +3284,106 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353663E-03 2.18766023592288E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470372E-03 4.29236468108163E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540298E-03 6.43184796129749E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273515E-02 8.17951762860432E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390277E-02 9.31105228420526E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438463E-02 9.89364856748539E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118115669E-03 1.22456378139101E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879416560E-03 1.44777510298334E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202866206E-03 1.58982062951267E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828093975E-03 1.64357697493235E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874910835E-04 1.61756159476826E-03 - cg2d: Sum(rhs),rhsMax = 7.99729210367145E-05 1.53363856675838E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056164767E-04 1.42794064580563E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816331422E-03 1.49223780578256E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898679997E-03 1.56210440491904E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888901363E-03 1.63424213160258E-03 - cg2d: Sum(rhs),rhsMax = -8.63394916976395E-03 1.70505819078515E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899813630E-02 1.77167127688731E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064668436E-02 1.83257530222660E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482907356E-02 1.88791212298036E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268439596E-03 1.93938684160682E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209334754E-03 2.06671962321555E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343843473E-03 2.17651147149639E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123170957E-03 2.23681620896649E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762900025E-03 2.25047700696666E-03 - cg2d: Sum(rhs),rhsMax = -5.83637557811443E-04 2.23911227543136E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454506434E-03 2.31619526940388E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289099454E-03 2.39332628110242E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142118121E-03 2.46478012572159E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438027308E-03 2.52475933256403E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191254202E-03 2.56860713760595E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753741479E-03 2.59379160521912E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044279992E-02 2.60046741495994E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657584061E-03 2.59154640938306E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745319541E-03 2.57230689901654E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619169137E-03 2.57617678135647E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960023813E-03 2.60704657321994E-03 - cg2d: Sum(rhs),rhsMax = -2.99995523738747E-03 2.55368005253501E-03 - cg2d: Sum(rhs),rhsMax = -1.75595289418461E-03 2.53090268162890E-03 - cg2d: Sum(rhs),rhsMax = -1.29134015226280E-03 2.55686898037500E-03 - cg2d: Sum(rhs),rhsMax = -1.68547888171968E-03 2.59998586411157E-03 - cg2d: Sum(rhs),rhsMax = -2.84766406719022E-03 2.65617340968333E-03 - cg2d: Sum(rhs),rhsMax = -4.53801264729624E-03 2.71885908050964E-03 - cg2d: Sum(rhs),rhsMax = -6.41728545977676E-03 2.78009792973707E-03 - cg2d: Sum(rhs),rhsMax = -8.11533160635006E-03 2.83193126068905E-03 - cg2d: Sum(rhs),rhsMax = -9.30436782452449E-03 2.86771962789886E-03 - cg2d: Sum(rhs),rhsMax = -9.76260394367352E-03 2.88321602708627E-03 - cg2d: Sum(rhs),rhsMax = -9.41588734905126E-03 2.87721816789032E-03 - cg2d: Sum(rhs),rhsMax = -8.34958543633776E-03 2.85172238552696E-03 - cg2d: Sum(rhs),rhsMax = -6.78891548270536E-03 2.90854930430461E-03 - cg2d: Sum(rhs),rhsMax = -5.05216133365317E-03 2.93304375103157E-03 - cg2d: Sum(rhs),rhsMax = -3.48645862208946E-03 2.88331761189336E-03 - cg2d: Sum(rhs),rhsMax = -2.39907585528971E-03 2.77469261075883E-03 - cg2d: Sum(rhs),rhsMax = -1.99776870917669E-03 2.64912183919268E-03 - cg2d: Sum(rhs),rhsMax = -2.35175889144523E-03 2.63954764691790E-03 - cg2d: Sum(rhs),rhsMax = -3.38063151300224E-03 2.64744430899420E-03 - cg2d: Sum(rhs),rhsMax = -4.87283024562136E-03 2.67027734220280E-03 - cg2d: Sum(rhs),rhsMax = -6.52958392921342E-03 2.75143063159174E-03 - cg2d: Sum(rhs),rhsMax = -8.02517509419362E-03 2.84716529053695E-03 - cg2d: Sum(rhs),rhsMax = -9.07141267048047E-03 2.92480130054836E-03 - cg2d: Sum(rhs),rhsMax = -9.47356457628974E-03 2.97120289946607E-03 - cg2d: Sum(rhs),rhsMax = -9.16691596447939E-03 2.97966806166266E-03 - cg2d: Sum(rhs),rhsMax = -8.22712335947589E-03 3.00381238992969E-03 - cg2d: Sum(rhs),rhsMax = -6.85280732694204E-03 3.08036412987572E-03 - cg2d: Sum(rhs),rhsMax = -5.32430722244524E-03 3.09182672345351E-03 - cg2d: Sum(rhs),rhsMax = -3.94713132000164E-03 3.03934311387759E-03 - cg2d: Sum(rhs),rhsMax = -2.99148612661555E-03 2.93659607454174E-03 - cg2d: Sum(rhs),rhsMax = -2.63983303736816E-03 2.80689807175631E-03 - cg2d: Sum(rhs),rhsMax = -2.95262901419678E-03 2.68543418626270E-03 - cg2d: Sum(rhs),rhsMax = -3.85865385685935E-03 2.73031560505009E-03 - cg2d: Sum(rhs),rhsMax = -5.17138138227186E-03 2.80043604472480E-03 - cg2d: Sum(rhs),rhsMax = -6.62770801818846E-03 2.88238466446799E-03 - cg2d: Sum(rhs),rhsMax = -7.94102494184657E-03 2.96047705984752E-03 - cg2d: Sum(rhs),rhsMax = -8.85794584852264E-03 3.01993448941538E-03 - cg2d: Sum(rhs),rhsMax = -9.20747814686484E-03 3.04982332177156E-03 - cg2d: Sum(rhs),rhsMax = -8.93311468782900E-03 3.04517983222737E-03 - cg2d: Sum(rhs),rhsMax = -8.10185279658092E-03 3.11258931186746E-03 - cg2d: Sum(rhs),rhsMax = -6.88878928790681E-03 3.17297134448768E-03 - cg2d: Sum(rhs),rhsMax = -5.54076181123470E-03 3.17471658156181E-03 - cg2d: Sum(rhs),rhsMax = -4.32655857735151E-03 3.11938177436906E-03 - cg2d: Sum(rhs),rhsMax = -3.48371959342545E-03 3.01971790719265E-03 - cg2d: Sum(rhs),rhsMax = -3.17244062161226E-03 2.89700829918544E-03 - cg2d: Sum(rhs),rhsMax = -3.44550655394731E-03 2.77676424283679E-03 - cg2d: Sum(rhs),rhsMax = -4.23987147823957E-03 2.78119169436206E-03 - cg2d: Sum(rhs),rhsMax = -5.39114863415441E-03 2.84461359074686E-03 - cg2d: Sum(rhs),rhsMax = -6.66774870638659E-03 2.91823914487167E-03 - cg2d: Sum(rhs),rhsMax = -7.81760222858646E-03 2.98773887821884E-03 - cg2d: Sum(rhs),rhsMax = -8.61805652262413E-03 3.03980213890940E-03 - cg2d: Sum(rhs),rhsMax = -8.91908479251212E-03 3.06473928375203E-03 - cg2d: Sum(rhs),rhsMax = -8.67143925072541E-03 3.06396598169588E-03 - cg2d: Sum(rhs),rhsMax = -7.93449161748784E-03 3.16208627758020E-03 - cg2d: Sum(rhs),rhsMax = -6.86259127626822E-03 3.21610127338400E-03 - cg2d: Sum(rhs),rhsMax = -5.67301271659621E-03 3.21680818858017E-03 - cg2d: Sum(rhs),rhsMax = -4.60212404908477E-03 3.16554824342618E-03 - cg2d: Sum(rhs),rhsMax = -3.85860122114179E-03 3.07378666621674E-03 - cg2d: Sum(rhs),rhsMax = -3.58293279152961E-03 2.96071722813581E-03 - cg2d: Sum(rhs),rhsMax = -3.82105726218360E-03 2.84938999880633E-03 - cg2d: Sum(rhs),rhsMax = -4.51705694147637E-03 2.80618863274104E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470357E-03 4.29236468107387E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540274E-03 6.43184796129262E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273511E-02 8.17951762860095E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390273E-02 9.31105228420150E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438457E-02 9.89364856748495E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118115605E-03 1.22456378139084E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879416488E-03 1.44777510298314E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202866127E-03 1.58982062951248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828093891E-03 1.64357697493214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874909918E-04 1.61756159476805E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729210377019E-05 1.53363856675816E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056163708E-04 1.42794064580563E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816331310E-03 1.49223780578257E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898679879E-03 1.56210440491906E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888901239E-03 1.63424213160259E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394916976266E-03 1.70505819078517E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899813616E-02 1.77167127688734E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064668421E-02 1.83257530222664E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482907341E-02 1.88791212298039E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268439441E-03 1.93938684160687E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209334594E-03 2.06671962321530E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343843310E-03 2.17651147149614E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123170791E-03 2.23681620896623E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762899854E-03 2.25047700696640E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637557809710E-04 2.23911227543142E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454506257E-03 2.31619526940394E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289099275E-03 2.39332628110248E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142117939E-03 2.46478012572167E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438027124E-03 2.52475933256410E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191254016E-03 2.56860713760601E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753741291E-03 2.59379160521918E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044279973E-02 2.60046741496002E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657583871E-03 2.59154640938315E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745319348E-03 2.57230689901662E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619168944E-03 2.57617678135632E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960023616E-03 2.60704657321979E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995523738547E-03 2.55368005253486E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595289418259E-03 2.53090268162897E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134015226077E-03 2.55686898037508E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547888171764E-03 2.59998586411164E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766406718818E-03 2.65617340968340E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801264729420E-03 2.71885908050971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728545977473E-03 2.78009792973714E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533160634804E-03 2.83193126068913E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436782452248E-03 2.86771962789893E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260394367150E-03 2.88321602708635E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588734904926E-03 2.87721816789039E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958543633576E-03 2.85172238552702E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891548270337E-03 2.90854930430450E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216133365117E-03 2.93304375103146E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645862208748E-03 2.88331761189326E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907585528772E-03 2.77469261075872E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776870917471E-03 2.64912183919273E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175889144327E-03 2.63954764691795E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063151300029E-03 2.64744430899424E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283024561942E-03 2.67027734220284E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958392921148E-03 2.75143063159173E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517509419168E-03 2.84716529053694E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141267047853E-03 2.92480130054836E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356457628780E-03 2.97120289946606E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691596447746E-03 2.97966806166266E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712335947396E-03 3.00381238992961E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280732694011E-03 3.08036412987563E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430722244333E-03 3.09182672345344E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713131999975E-03 3.03934311387752E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148612661364E-03 2.93659607454167E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983303736626E-03 2.80689807175624E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262901419489E-03 2.68543418626269E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865385685748E-03 2.73031560505007E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138138226999E-03 2.80043604472479E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770801818659E-03 2.88238466446797E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102494184471E-03 2.96047705984750E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794584852077E-03 3.01993448941536E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747814686297E-03 3.04982332177155E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311468782714E-03 3.04517983222736E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185279657905E-03 3.11258931186740E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878928790495E-03 3.17297134448763E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076181123284E-03 3.17471658156175E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655857734963E-03 3.11938177436900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371959342359E-03 3.01971790719260E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244062161040E-03 2.89700829918538E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550655394546E-03 2.77676424283674E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987147823772E-03 2.78119169436203E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114863415257E-03 2.84461359074683E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774870638475E-03 2.91823914487165E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760222858462E-03 2.98773887821881E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805652262227E-03 3.03980213890937E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908479251026E-03 3.06473928375201E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143925072355E-03 3.06396598169582E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449161748597E-03 3.16208627758014E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259127626635E-03 3.21610127338394E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301271659434E-03 3.21680818858012E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212404908288E-03 3.16554824342612E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860122113989E-03 3.07378666621668E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293279152771E-03 2.96071722813576E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105726218169E-03 2.84938999880628E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705694147446E-03 2.80618863274100E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_test(bi,bj) = 0.473809589267712D-01 @@ -3402,118 +3400,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353679E-03 2.18766023593943E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470143E-03 4.29236468101501E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539255E-03 6.43184796159579E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273257E-02 8.17951762973023E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389843E-02 9.31105228615200E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562437932E-02 9.89364856730403E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118111714E-03 1.22456378117782E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879417946E-03 1.44777510242390E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202878349E-03 1.58982062854673E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828123039E-03 1.64357697359092E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875428921E-04 1.61756159319298E-03 - cg2d: Sum(rhs),rhsMax = 7.99729202490136E-05 1.53363856519811E-03 - cg2d: Sum(rhs),rhsMax = -4.03103057235992E-04 1.42794064547932E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816464583E-03 1.49223780544866E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898832884E-03 1.56210440457677E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889064115E-03 1.63424213123972E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917136807E-03 1.70505819037805E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899828162E-02 1.77167127640314E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064680342E-02 1.83257530162773E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482915884E-02 1.88791212223001E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268488827E-03 1.93938684067484E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209351712E-03 2.06671962832651E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343837822E-03 2.17651147552902E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123157059E-03 2.23681621158594E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762894962E-03 2.25047700804067E-03 - cg2d: Sum(rhs),rhsMax = -5.83637558022549E-04 2.23911227357998E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454568849E-03 2.31619526743550E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289214107E-03 2.39332627903907E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142290631E-03 2.46478012357347E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438257993E-03 2.52475933032630E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191539248E-03 2.56860713525854E-03 - cg2d: Sum(rhs),rhsMax = -9.64059754075081E-03 2.59379160272979E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044317700E-02 2.60046741228980E-03 - cg2d: Sum(rhs),rhsMax = -9.76069658003046E-03 2.59154640649381E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745784663E-03 2.57230689587793E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619691808E-03 2.57617678028561E-03 - cg2d: Sum(rhs),rhsMax = -4.78666960622765E-03 2.60704656823916E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524438932E-03 2.55368004479188E-03 - cg2d: Sum(rhs),rhsMax = -1.75595290248869E-03 2.53090267750755E-03 - cg2d: Sum(rhs),rhsMax = -1.29134016217113E-03 2.55686897608782E-03 - cg2d: Sum(rhs),rhsMax = -1.68547889351692E-03 2.59998585970328E-03 - cg2d: Sum(rhs),rhsMax = -2.84766408111888E-03 2.65617340519177E-03 - cg2d: Sum(rhs),rhsMax = -4.53801266354123E-03 2.71885907595907E-03 - cg2d: Sum(rhs),rhsMax = -6.41728547846238E-03 2.78009792513413E-03 - cg2d: Sum(rhs),rhsMax = -8.11533162754983E-03 2.83193125602215E-03 - cg2d: Sum(rhs),rhsMax = -9.30436784828203E-03 2.86771962314135E-03 - cg2d: Sum(rhs),rhsMax = -9.76260397002988E-03 2.88321602220259E-03 - cg2d: Sum(rhs),rhsMax = -9.41588737807336E-03 2.87721816284406E-03 - cg2d: Sum(rhs),rhsMax = -8.34958546814191E-03 2.85172238028931E-03 - cg2d: Sum(rhs),rhsMax = -6.78891551747106E-03 2.90854929450299E-03 - cg2d: Sum(rhs),rhsMax = -5.05216137162432E-03 2.93304373769062E-03 - cg2d: Sum(rhs),rhsMax = -3.48645866356247E-03 2.88331759553138E-03 - cg2d: Sum(rhs),rhsMax = -2.39907590059101E-03 2.77469259222887E-03 - cg2d: Sum(rhs),rhsMax = -1.99776875863390E-03 2.64912183315305E-03 - cg2d: Sum(rhs),rhsMax = -2.35175894535808E-03 2.63954764084791E-03 - cg2d: Sum(rhs),rhsMax = -3.38063157161901E-03 2.64744430294087E-03 - cg2d: Sum(rhs),rhsMax = -4.87283030912570E-03 2.67027733619941E-03 - cg2d: Sum(rhs),rhsMax = -6.52958399772446E-03 2.75143059790761E-03 - cg2d: Sum(rhs),rhsMax = -8.02517516777926E-03 2.84716525600341E-03 - cg2d: Sum(rhs),rhsMax = -9.07141274918134E-03 2.92480126528038E-03 - cg2d: Sum(rhs),rhsMax = -9.47356466014886E-03 2.97120286357196E-03 - cg2d: Sum(rhs),rhsMax = -9.16691605357153E-03 2.97966802522267E-03 - cg2d: Sum(rhs),rhsMax = -8.22712345393026E-03 3.00381236883986E-03 - cg2d: Sum(rhs),rhsMax = -6.85280742695380E-03 3.08036410650857E-03 - cg2d: Sum(rhs),rhsMax = -5.32430732827295E-03 3.09182669794374E-03 - cg2d: Sum(rhs),rhsMax = -3.94713143195114E-03 3.03934308668217E-03 - cg2d: Sum(rhs),rhsMax = -2.99148624501311E-03 2.93659604634094E-03 - cg2d: Sum(rhs),rhsMax = -2.63983316252840E-03 2.80689804330839E-03 - cg2d: Sum(rhs),rhsMax = -2.95262914639185E-03 2.68543414511727E-03 - cg2d: Sum(rhs),rhsMax = -3.85865399629554E-03 2.73031556303212E-03 - cg2d: Sum(rhs),rhsMax = -5.17138152907876E-03 2.80043600188269E-03 - cg2d: Sum(rhs),rhsMax = -6.62770817242311E-03 2.88238462089200E-03 - cg2d: Sum(rhs),rhsMax = -7.94102510351205E-03 2.96047701565442E-03 - cg2d: Sum(rhs),rhsMax = -8.85794601759752E-03 3.01993444472752E-03 - cg2d: Sum(rhs),rhsMax = -9.20747832333794E-03 3.04982327669446E-03 - cg2d: Sum(rhs),rhsMax = -8.93311487173233E-03 3.04517978683054E-03 - cg2d: Sum(rhs),rhsMax = -8.10185298801412E-03 3.11258928081167E-03 - cg2d: Sum(rhs),rhsMax = -6.88878948704825E-03 3.17297131110848E-03 - cg2d: Sum(rhs),rhsMax = -5.54076201833640E-03 3.17471654621335E-03 - cg2d: Sum(rhs),rhsMax = -4.32655879271878E-03 3.11938173773380E-03 - cg2d: Sum(rhs),rhsMax = -3.48371981738523E-03 3.01971787016058E-03 - cg2d: Sum(rhs),rhsMax = -3.17244085447591E-03 2.89700826268856E-03 - cg2d: Sum(rhs),rhsMax = -3.44550679597555E-03 2.77676420767160E-03 - cg2d: Sum(rhs),rhsMax = -4.23987172961634E-03 2.78119164466100E-03 - cg2d: Sum(rhs),rhsMax = -5.39114889497509E-03 2.84461354036553E-03 - cg2d: Sum(rhs),rhsMax = -6.66774897666304E-03 2.91823909391537E-03 - cg2d: Sum(rhs),rhsMax = -7.81760250826809E-03 2.98773882682415E-03 - cg2d: Sum(rhs),rhsMax = -8.61805681163115E-03 3.03980208722195E-03 - cg2d: Sum(rhs),rhsMax = -8.91908509077436E-03 3.06473923190219E-03 - cg2d: Sum(rhs),rhsMax = -8.67143955821913E-03 3.06396595018432E-03 - cg2d: Sum(rhs),rhsMax = -7.93449193426332E-03 3.16208624365443E-03 - cg2d: Sum(rhs),rhsMax = -6.86259160246249E-03 3.21610123685975E-03 - cg2d: Sum(rhs),rhsMax = -5.67301305242852E-03 3.21680814971783E-03 - cg2d: Sum(rhs),rhsMax = -4.60212439483521E-03 3.16554820288830E-03 - cg2d: Sum(rhs),rhsMax = -3.85860157711754E-03 3.07378662494962E-03 - cg2d: Sum(rhs),rhsMax = -3.58293315802518E-03 2.96071718719734E-03 - cg2d: Sum(rhs),rhsMax = -3.82105763944291E-03 2.84938995917265E-03 - cg2d: Sum(rhs),rhsMax = -4.51705732966420E-03 2.80618857866317E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470159E-03 4.29236468102278E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539280E-03 6.43184796160064E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273261E-02 8.17951762973372E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389847E-02 9.31105228615560E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562437937E-02 9.89364856730459E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118111772E-03 1.22456378117802E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879418012E-03 1.44777510242410E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202878426E-03 1.58982062854694E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828123121E-03 1.64357697359112E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875429821E-04 1.61756159319319E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729202480411E-05 1.53363856519833E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103057237033E-04 1.42794064547932E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816464693E-03 1.49223780544866E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898833001E-03 1.56210440457676E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889064238E-03 1.63424213123971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917136934E-03 1.70505819037803E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899828175E-02 1.77167127640310E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064680356E-02 1.83257530162771E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482915899E-02 1.88791212222996E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268488980E-03 1.93938684067480E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209351870E-03 2.06671962832676E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343837983E-03 2.17651147552928E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123157224E-03 2.23681621158620E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762895131E-03 2.25047700804092E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637558024268E-04 2.23911227357992E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454569023E-03 2.31619526743543E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289214284E-03 2.39332627903900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142290810E-03 2.46478012357341E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438258174E-03 2.52475933032622E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191539431E-03 2.56860713525847E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059754075265E-03 2.59379160272971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044317718E-02 2.60046741228971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069658003233E-03 2.59154640649373E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745784851E-03 2.57230689587784E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619691996E-03 2.57617678028575E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666960622956E-03 2.60704656823931E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524439124E-03 2.55368004479203E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595290249063E-03 2.53090267750747E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134016217306E-03 2.55686897608775E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547889351885E-03 2.59998585970321E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766408112082E-03 2.65617340519170E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801266354318E-03 2.71885907595900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728547846431E-03 2.78009792513404E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533162755178E-03 2.83193125602208E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436784828399E-03 2.86771962314127E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260397003185E-03 2.88321602220253E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588737807532E-03 2.87721816284400E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958546814386E-03 2.85172238028924E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891551747301E-03 2.90854929450311E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216137162625E-03 2.93304373769073E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645866356441E-03 2.88331759553147E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907590059292E-03 2.77469259222897E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776875863581E-03 2.64912183315300E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175894535998E-03 2.63954764084787E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063157162090E-03 2.64744430294083E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283030912759E-03 2.67027733619936E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958399772633E-03 2.75143059790761E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517516778114E-03 2.84716525600340E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141274918323E-03 2.92480126528037E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356466015075E-03 2.97120286357196E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691605357342E-03 2.97966802522268E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712345393214E-03 3.00381236883993E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280742695566E-03 3.08036410650864E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430732827480E-03 3.09182669794382E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713143195298E-03 3.03934308668225E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148624501492E-03 2.93659604634100E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983316253022E-03 2.80689804330845E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262914639365E-03 2.68543414511727E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865399629732E-03 2.73031556303213E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138152908052E-03 2.80043600188270E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770817242487E-03 2.88238462089200E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102510351379E-03 2.96047701565444E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794601759926E-03 3.01993444472753E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747832333968E-03 3.04982327669446E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311487173404E-03 3.04517978683055E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185298801583E-03 3.11258928081171E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878948704997E-03 3.17297131110853E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076201833811E-03 3.17471654621341E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655879272049E-03 3.11938173773385E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371981738694E-03 3.01971787016063E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244085447761E-03 2.89700826268861E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550679597724E-03 2.77676420767165E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987172961804E-03 2.78119164466102E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114889497678E-03 2.84461354036555E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774897666471E-03 2.91823909391539E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760250826975E-03 2.98773882682418E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805681163281E-03 3.03980208722198E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908509077603E-03 3.06473923190223E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143955822079E-03 3.06396595018436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449193426495E-03 3.16208624365447E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259160246413E-03 3.21610123685980E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301305243018E-03 3.21680814971787E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212439483687E-03 3.16554820288834E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860157711922E-03 3.07378662494967E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293315802685E-03 2.96071718719738E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105763944457E-03 2.84938995917270E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705732966587E-03 2.80618857866320E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809585870583D-01 -(PID.TID 0000.0001) local fc = 0.473809585870583D-01 -(PID.TID 0000.0001) global fc = 0.473809585870583D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809585870583E-02 + --> objf_test(bi,bj) = 0.473809585870582D-01 +(PID.TID 0000.0001) local fc = 0.473809585870582D-01 +(PID.TID 0000.0001) global fc = 0.473809585870582D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809585870582E-02 grad-res ------------------------------- grad-res 0 6 1 4 1 1 1 1 4.73809587569E-02 4.73809589268E-02 4.73809585871E-02 - grad-res 0 6 6 16 0 1 1 1 1.69849643548E-06 1.69856431004E-06 -3.99615566515E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.69849643547604E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.69856431003756E-06 + grad-res 0 6 6 16 0 1 1 1 1.69856454963E-06 1.69856524679E-06 -4.10439189968E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.69856454963078E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.69856524678824E-06 (PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 19 25 7 @@ -3530,112 +3528,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353670E-03 2.18766023594879E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564469774E-03 4.29236468113340E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903538777E-03 6.43184796161499E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273297E-02 8.17951762933444E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390069E-02 9.31105228525255E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438372E-02 9.89364856526866E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118117023E-03 1.22456378118496E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879421009E-03 1.44777510260537E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202874084E-03 1.58982062899321E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828105093E-03 1.64357697437360E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875049181E-04 1.61756159434320E-03 - cg2d: Sum(rhs),rhsMax = 7.99729208752959E-05 1.53363856669232E-03 - cg2d: Sum(rhs),rhsMax = -4.03103056352464E-04 1.42794064932887E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816354556E-03 1.49223780966913E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898711262E-03 1.56210440891635E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888946965E-03 1.63424213545351E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917045065E-03 1.70505819427400E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899823901E-02 1.77167127988041E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064683370E-02 1.83257530469977E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482928288E-02 1.88791212502742E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268722003E-03 1.93938684342715E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209702220E-03 2.06671962719363E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344306215E-03 2.17651147441925E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123737172E-03 2.23681621074026E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763576106E-03 2.25047700766422E-03 - cg2d: Sum(rhs),rhsMax = -5.83637565723162E-04 2.23911227999262E-03 - cg2d: Sum(rhs),rhsMax = -1.01911455417703E-03 2.31619527483112E-03 - cg2d: Sum(rhs),rhsMax = -2.32886290136713E-03 2.39332628722732E-03 - cg2d: Sum(rhs),rhsMax = -4.24067143289189E-03 2.46478013227541E-03 - cg2d: Sum(rhs),rhsMax = -6.36913439342708E-03 2.52475933922047E-03 - cg2d: Sum(rhs),rhsMax = -8.29342192727514E-03 2.56860714403354E-03 - cg2d: Sum(rhs),rhsMax = -9.64059755389196E-03 2.59379161113403E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044464082E-02 2.60046742016994E-03 - cg2d: Sum(rhs),rhsMax = -9.76069659638209E-03 2.59154641381515E-03 - cg2d: Sum(rhs),rhsMax = -8.54505747607094E-03 2.57230690272375E-03 - cg2d: Sum(rhs),rhsMax = -6.76655621709185E-03 2.57617677321078E-03 - cg2d: Sum(rhs),rhsMax = -4.78666962833458E-03 2.60704656319131E-03 - cg2d: Sum(rhs),rhsMax = -2.99995526832603E-03 2.55368004125585E-03 - cg2d: Sum(rhs),rhsMax = -1.75595292808664E-03 2.53090268462047E-03 - cg2d: Sum(rhs),rhsMax = -1.29134018922987E-03 2.55686898376983E-03 - cg2d: Sum(rhs),rhsMax = -1.68547892184254E-03 2.59998586800900E-03 - cg2d: Sum(rhs),rhsMax = -2.84766411055991E-03 2.65617341407511E-03 - cg2d: Sum(rhs),rhsMax = -4.53801269401511E-03 2.71885908528604E-03 - cg2d: Sum(rhs),rhsMax = -6.41728550996720E-03 2.78009793471096E-03 - cg2d: Sum(rhs),rhsMax = -8.11533166015920E-03 2.83193126563268E-03 - cg2d: Sum(rhs),rhsMax = -9.30436788212404E-03 2.86771963258630E-03 - cg2d: Sum(rhs),rhsMax = -9.76260400525465E-03 2.88321603133356E-03 - cg2d: Sum(rhs),rhsMax = -9.41588741481565E-03 2.87721817158597E-03 - cg2d: Sum(rhs),rhsMax = -8.34958550648660E-03 2.85172238864786E-03 - cg2d: Sum(rhs),rhsMax = -6.78891555742844E-03 2.90854928997838E-03 - cg2d: Sum(rhs),rhsMax = -5.05216141312033E-03 2.93304373493478E-03 - cg2d: Sum(rhs),rhsMax = -3.48645870644592E-03 2.88331759434921E-03 - cg2d: Sum(rhs),rhsMax = -2.39907594465631E-03 2.77469259222495E-03 - cg2d: Sum(rhs),rhsMax = -1.99776880365488E-03 2.64912184134068E-03 - cg2d: Sum(rhs),rhsMax = -2.35175899112569E-03 2.63954764929984E-03 - cg2d: Sum(rhs),rhsMax = -3.38063161797543E-03 2.64744431164137E-03 - cg2d: Sum(rhs),rhsMax = -4.87283035598761E-03 2.67027734507855E-03 - cg2d: Sum(rhs),rhsMax = -6.52958404509072E-03 2.75143061582494E-03 - cg2d: Sum(rhs),rhsMax = -8.02517521572120E-03 2.84716527436827E-03 - cg2d: Sum(rhs),rhsMax = -9.07141279781754E-03 2.92480128396851E-03 - cg2d: Sum(rhs),rhsMax = -9.47356470960959E-03 2.97120288246971E-03 - cg2d: Sum(rhs),rhsMax = -9.16691610395996E-03 2.97966804425108E-03 - cg2d: Sum(rhs),rhsMax = -8.22712350528859E-03 3.00381236966033E-03 - cg2d: Sum(rhs),rhsMax = -6.85280747924141E-03 3.08036410852729E-03 - cg2d: Sum(rhs),rhsMax = -5.32430738136114E-03 3.09182670114378E-03 - cg2d: Sum(rhs),rhsMax = -3.94713148563594E-03 3.03934309086443E-03 - cg2d: Sum(rhs),rhsMax = -2.99148629904385E-03 2.93659605116870E-03 - cg2d: Sum(rhs),rhsMax = -2.63983321664625E-03 2.80689804838084E-03 - cg2d: Sum(rhs),rhsMax = -2.95262920037064E-03 2.68543416643416E-03 - cg2d: Sum(rhs),rhsMax = -3.85865404997664E-03 2.73031558493967E-03 - cg2d: Sum(rhs),rhsMax = -5.17138158239256E-03 2.80043602433240E-03 - cg2d: Sum(rhs),rhsMax = -6.62770822539260E-03 2.88238464378941E-03 - cg2d: Sum(rhs),rhsMax = -7.94102515623727E-03 2.96047703887765E-03 - cg2d: Sum(rhs),rhsMax = -8.85794607022391E-03 3.01993446815158E-03 - cg2d: Sum(rhs),rhsMax = -9.20747837601436E-03 3.04982330021674E-03 - cg2d: Sum(rhs),rhsMax = -8.93311492456744E-03 3.04517981039200E-03 - cg2d: Sum(rhs),rhsMax = -8.10185304103963E-03 3.11258928743417E-03 - cg2d: Sum(rhs),rhsMax = -6.88878954019660E-03 3.17297131911790E-03 - cg2d: Sum(rhs),rhsMax = -5.54076207143768E-03 3.17471655547867E-03 - cg2d: Sum(rhs),rhsMax = -4.32655884551779E-03 3.11938174793141E-03 - cg2d: Sum(rhs),rhsMax = -3.48371986957547E-03 3.01971788083099E-03 - cg2d: Sum(rhs),rhsMax = -3.17244090574418E-03 2.89700827332174E-03 - cg2d: Sum(rhs),rhsMax = -3.44550684604821E-03 2.77676421780387E-03 - cg2d: Sum(rhs),rhsMax = -4.23987177829825E-03 2.78119167117466E-03 - cg2d: Sum(rhs),rhsMax = -5.39114894217328E-03 2.84461356745578E-03 - cg2d: Sum(rhs),rhsMax = -6.66774902239032E-03 2.91823912146856E-03 - cg2d: Sum(rhs),rhsMax = -7.81760255262575E-03 2.98773885469305E-03 - cg2d: Sum(rhs),rhsMax = -8.61805685477374E-03 3.03980211525205E-03 - cg2d: Sum(rhs),rhsMax = -8.91908513286369E-03 3.06473925995972E-03 - cg2d: Sum(rhs),rhsMax = -8.67143959937626E-03 3.06396595858521E-03 - cg2d: Sum(rhs),rhsMax = -7.93449197452825E-03 3.16208625342260E-03 - cg2d: Sum(rhs),rhsMax = -6.86259164176932E-03 3.21610124816374E-03 - cg2d: Sum(rhs),rhsMax = -5.67301309060133E-03 3.21680816248588E-03 - cg2d: Sum(rhs),rhsMax = -4.60212443160550E-03 3.16554821681856E-03 - cg2d: Sum(rhs),rhsMax = -3.85860161215994E-03 3.07378663956378E-03 - cg2d: Sum(rhs),rhsMax = -3.58293319100444E-03 2.96071720192751E-03 - cg2d: Sum(rhs),rhsMax = -3.82105767006316E-03 2.84938997346508E-03 - cg2d: Sum(rhs),rhsMax = -4.51705735771054E-03 2.80618860866281E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564469764E-03 4.29236468113118E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903538762E-03 6.43184796161194E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273295E-02 8.17951762933186E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390067E-02 9.31105228524978E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438369E-02 9.89364856526832E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118116996E-03 1.22456378118492E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879420975E-03 1.44777510260533E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202874045E-03 1.58982062899315E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828105046E-03 1.64357697437354E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875048668E-04 1.61756159434313E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729208758350E-05 1.53363856669223E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103056351891E-04 1.42794064932882E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816354494E-03 1.49223780966908E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898711198E-03 1.56210440891631E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888946898E-03 1.63424213545346E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917044996E-03 1.70505819427395E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899823894E-02 1.77167127988036E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064683363E-02 1.83257530469971E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482928280E-02 1.88791212502736E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268721924E-03 1.93938684342709E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209702139E-03 2.06671962719348E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344306130E-03 2.17651147441910E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123737085E-03 2.23681621074009E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763576019E-03 2.25047700766405E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637565722275E-04 2.23911227999256E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911455417612E-03 2.31619527483106E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886290136621E-03 2.39332628722726E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067143289096E-03 2.46478013227535E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913439342617E-03 2.52475933922041E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342192727424E-03 2.56860714403348E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059755389103E-03 2.59379161113397E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044464073E-02 2.60046742016988E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069659638117E-03 2.59154641381509E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505747607003E-03 2.57230690272369E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655621709095E-03 2.57617677321072E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666962833365E-03 2.60704656319124E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995526832509E-03 2.55368004125577E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595292808569E-03 2.53090268462040E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134018922891E-03 2.55686898376976E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547892184159E-03 2.59998586800894E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766411055896E-03 2.65617341407504E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801269401416E-03 2.71885908528598E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728550996625E-03 2.78009793471090E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533166015826E-03 2.83193126563263E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436788212313E-03 2.86771963258624E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260400525372E-03 2.88321603133350E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588741481473E-03 2.87721817158591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958550648570E-03 2.85172238864781E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891555742755E-03 2.90854928997831E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216141311944E-03 2.93304373493472E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645870644504E-03 2.88331759434915E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907594465544E-03 2.77469259222489E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776880365402E-03 2.64912184134063E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175899112484E-03 2.63954764929978E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063161797457E-03 2.64744431164133E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283035598676E-03 2.67027734507850E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958404508987E-03 2.75143061582485E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517521572035E-03 2.84716527436818E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141279781669E-03 2.92480128396842E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356470960874E-03 2.97120288246962E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691610395912E-03 2.97966804425100E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712350528776E-03 3.00381236966028E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280747924059E-03 3.08036410852724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430738136031E-03 3.09182670114373E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713148563513E-03 3.03934309086439E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148629904304E-03 2.93659605116865E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983321664544E-03 2.80689804838079E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262920036983E-03 2.68543416643409E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865404997582E-03 2.73031558493960E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138158239175E-03 2.80043602433232E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770822539177E-03 2.88238464378934E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102515623645E-03 2.96047703887758E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794607022308E-03 3.01993446815151E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747837601352E-03 3.04982330021666E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311492456662E-03 3.04517981039192E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185304103881E-03 3.11258928743413E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878954019576E-03 3.17297131911787E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076207143683E-03 3.17471655547863E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655884551692E-03 3.11938174793137E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371986957460E-03 3.01971788083096E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244090574331E-03 2.89700827332169E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550684604733E-03 2.77676421780384E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987177829737E-03 2.78119167117460E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114894217240E-03 2.84461356745572E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774902238944E-03 2.91823912146850E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760255262487E-03 2.98773885469299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805685477285E-03 3.03980211525199E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908513286277E-03 3.06473925995966E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143959937536E-03 3.06396595858518E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449197452734E-03 3.16208625342257E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259164176843E-03 3.21610124816372E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301309060047E-03 3.21680816248585E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212443160464E-03 3.16554821681853E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860161215906E-03 3.07378663956375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293319100357E-03 2.96071720192748E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105767006229E-03 2.84938997346505E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705735770966E-03 2.80618860866275E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809585484395D-01 -(PID.TID 0000.0001) local fc = 0.473809585484395D-01 -(PID.TID 0000.0001) global fc = 0.473809585484395D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809585484395E-02 + --> objf_test(bi,bj) = 0.473809585484396D-01 +(PID.TID 0000.0001) local fc = 0.473809585484396D-01 +(PID.TID 0000.0001) global fc = 0.473809585484396D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809585484396E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -3646,118 +3644,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353672E-03 2.18766023597584E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470740E-03 4.29236468096320E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540774E-03 6.43184796127823E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273475E-02 8.17951762900019E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390050E-02 9.31105228510475E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438022E-02 9.89364856952086E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118110351E-03 1.22456378138389E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879413488E-03 1.44777510280187E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202870464E-03 1.58982062906619E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828111917E-03 1.64357697414966E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875290528E-04 1.61756159361802E-03 - cg2d: Sum(rhs),rhsMax = 7.99729204104785E-05 1.53363856526416E-03 - cg2d: Sum(rhs),rhsMax = -4.03103057048255E-04 1.42794064195609E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816441445E-03 1.49223780156209E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898801615E-03 1.56210440057945E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889018509E-03 1.63424212738879E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917068133E-03 1.70505818688920E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899817890E-02 1.77167127341002E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064665406E-02 1.83257529915457E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482894950E-02 1.88791212018294E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268206406E-03 1.93938683885452E-03 - cg2d: Sum(rhs),rhsMax = -6.85700208984231E-03 2.06671962434843E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343375067E-03 2.17651147260614E-03 - cg2d: Sum(rhs),rhsMax = -2.55199122590830E-03 2.23681620981217E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762218865E-03 2.25047700734311E-03 - cg2d: Sum(rhs),rhsMax = -5.83637550110666E-04 2.23911226901872E-03 - cg2d: Sum(rhs),rhsMax = -1.01911453657564E-03 2.31619526200824E-03 - cg2d: Sum(rhs),rhsMax = -2.32886288176832E-03 2.39332627291416E-03 - cg2d: Sum(rhs),rhsMax = -4.24067141119545E-03 2.46478011701965E-03 - cg2d: Sum(rhs),rhsMax = -6.36913436942576E-03 2.52475932366985E-03 - cg2d: Sum(rhs),rhsMax = -8.29342190065921E-03 2.56860712883094E-03 - cg2d: Sum(rhs),rhsMax = -9.64059752427349E-03 2.59379159681486E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044133608E-02 2.60046740707980E-03 - cg2d: Sum(rhs),rhsMax = -9.76069655948884E-03 2.59154640206170E-03 - cg2d: Sum(rhs),rhsMax = -8.54505743497095E-03 2.57230689217071E-03 - cg2d: Sum(rhs),rhsMax = -6.76655617151746E-03 2.57617678843128E-03 - cg2d: Sum(rhs),rhsMax = -4.78666957813108E-03 2.60704657826778E-03 - cg2d: Sum(rhs),rhsMax = -2.99995521345061E-03 2.55368005607104E-03 - cg2d: Sum(rhs),rhsMax = -1.75595286858651E-03 2.53090267451597E-03 - cg2d: Sum(rhs),rhsMax = -1.29134012520390E-03 2.55686897269298E-03 - cg2d: Sum(rhs),rhsMax = -1.68547885339389E-03 2.59998585580584E-03 - cg2d: Sum(rhs),rhsMax = -2.84766403774902E-03 2.65617340079999E-03 - cg2d: Sum(rhs),rhsMax = -4.53801261682218E-03 2.71885907118266E-03 - cg2d: Sum(rhs),rhsMax = -6.41728542827175E-03 2.78009792016022E-03 - cg2d: Sum(rhs),rhsMax = -8.11533157374050E-03 2.83193125107852E-03 - cg2d: Sum(rhs),rhsMax = -9.30436779068229E-03 2.86771961845390E-03 - cg2d: Sum(rhs),rhsMax = -9.76260390844853E-03 2.88321601795531E-03 - cg2d: Sum(rhs),rhsMax = -9.41588731230872E-03 2.87721815914840E-03 - cg2d: Sum(rhs),rhsMax = -8.34958539799282E-03 2.85172237716840E-03 - cg2d: Sum(rhs),rhsMax = -6.78891544274772E-03 2.90854930882923E-03 - cg2d: Sum(rhs),rhsMax = -5.05216129215689E-03 2.93304375378740E-03 - cg2d: Sum(rhs),rhsMax = -3.48645857920575E-03 2.88331761307552E-03 - cg2d: Sum(rhs),rhsMax = -2.39907581122414E-03 2.77469261076272E-03 - cg2d: Sum(rhs),rhsMax = -1.99776866415544E-03 2.64912183100504E-03 - cg2d: Sum(rhs),rhsMax = -2.35175884567734E-03 2.63954763846597E-03 - cg2d: Sum(rhs),rhsMax = -3.38063146664554E-03 2.64744430029369E-03 - cg2d: Sum(rhs),rhsMax = -4.87283019875917E-03 2.67027733332364E-03 - cg2d: Sum(rhs),rhsMax = -6.52958388184688E-03 2.75143061367439E-03 - cg2d: Sum(rhs),rhsMax = -8.02517504625141E-03 2.84716527217208E-03 - cg2d: Sum(rhs),rhsMax = -9.07141262184398E-03 2.92480128186021E-03 - cg2d: Sum(rhs),rhsMax = -9.47356452682871E-03 2.97120288056829E-03 - cg2d: Sum(rhs),rhsMax = -9.16691591409066E-03 2.97966804263424E-03 - cg2d: Sum(rhs),rhsMax = -8.22712330811726E-03 3.00381238910919E-03 - cg2d: Sum(rhs),rhsMax = -6.85280727465414E-03 3.08036412785699E-03 - cg2d: Sum(rhs),rhsMax = -5.32430716935678E-03 3.09182672025346E-03 - cg2d: Sum(rhs),rhsMax = -3.94713126631654E-03 3.03934310969534E-03 - cg2d: Sum(rhs),rhsMax = -2.99148607258449E-03 2.93659606971396E-03 - cg2d: Sum(rhs),rhsMax = -2.63983298325000E-03 2.80689806668386E-03 - cg2d: Sum(rhs),rhsMax = -2.95262896021766E-03 2.68543416494580E-03 - cg2d: Sum(rhs),rhsMax = -3.85865380317793E-03 2.73031558314252E-03 - cg2d: Sum(rhs),rhsMax = -5.17138132895773E-03 2.80043602227508E-03 - cg2d: Sum(rhs),rhsMax = -6.62770796521865E-03 2.88238464157056E-03 - cg2d: Sum(rhs),rhsMax = -7.94102488912102E-03 2.96047703662428E-03 - cg2d: Sum(rhs),rhsMax = -8.85794579589593E-03 3.01993446599128E-03 - cg2d: Sum(rhs),rhsMax = -9.20747809418811E-03 3.04982329824926E-03 - cg2d: Sum(rhs),rhsMax = -8.93311463499359E-03 3.04517980866589E-03 - cg2d: Sum(rhs),rhsMax = -8.10185274355510E-03 3.11258930524494E-03 - cg2d: Sum(rhs),rhsMax = -6.88878923475818E-03 3.17297133647826E-03 - cg2d: Sum(rhs),rhsMax = -5.54076175813315E-03 3.17471657229648E-03 - cg2d: Sum(rhs),rhsMax = -4.32655852455225E-03 3.11938176417146E-03 - cg2d: Sum(rhs),rhsMax = -3.48371954123495E-03 3.01971789652223E-03 - cg2d: Sum(rhs),rhsMax = -3.17244057034374E-03 2.89700828855226E-03 - cg2d: Sum(rhs),rhsMax = -3.44550650387439E-03 2.77676423270451E-03 - cg2d: Sum(rhs),rhsMax = -4.23987142955739E-03 2.78119166784838E-03 - cg2d: Sum(rhs),rhsMax = -5.39114858695595E-03 2.84461356365659E-03 - cg2d: Sum(rhs),rhsMax = -6.66774866065903E-03 2.91823911731847E-03 - cg2d: Sum(rhs),rhsMax = -7.81760218422854E-03 2.98773885034993E-03 - cg2d: Sum(rhs),rhsMax = -8.61805647948128E-03 3.03980211087929E-03 - cg2d: Sum(rhs),rhsMax = -8.91908475042253E-03 3.06473925569450E-03 - cg2d: Sum(rhs),rhsMax = -8.67143920956799E-03 3.06396597329497E-03 - cg2d: Sum(rhs),rhsMax = -7.93449157722264E-03 3.16208626781200E-03 - cg2d: Sum(rhs),rhsMax = -6.86259123696110E-03 3.21610126207999E-03 - cg2d: Sum(rhs),rhsMax = -5.67301267842313E-03 3.21680817581211E-03 - cg2d: Sum(rhs),rhsMax = -4.60212401231420E-03 3.16554822949591E-03 - cg2d: Sum(rhs),rhsMax = -3.85860118609912E-03 3.07378665160257E-03 - cg2d: Sum(rhs),rhsMax = -3.58293275855005E-03 2.96071721340564E-03 - cg2d: Sum(rhs),rhsMax = -3.82105723156302E-03 2.84938998451388E-03 - cg2d: Sum(rhs),rhsMax = -4.51705691342971E-03 2.80618860274139E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587221E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470750E-03 4.29236468096549E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540790E-03 6.43184796128125E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273477E-02 8.17951762900274E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390053E-02 9.31105228510737E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438026E-02 9.89364856952122E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118110387E-03 1.22456378138393E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879413531E-03 1.44777510280192E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202870512E-03 1.58982062906626E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828111969E-03 1.64357697414973E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875291096E-04 1.61756159361811E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729204098725E-05 1.53363856526426E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103057048894E-04 1.42794064195614E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816441512E-03 1.49223780156214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898801685E-03 1.56210440057950E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889018583E-03 1.63424212738885E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917068209E-03 1.70505818688925E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899817898E-02 1.77167127341007E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064665414E-02 1.83257529915463E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482894959E-02 1.88791212018299E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268206495E-03 1.93938683885458E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700208984322E-03 2.06671962434859E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343375158E-03 2.17651147260631E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199122590923E-03 2.23681620981233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762218959E-03 2.25047700734327E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637550111633E-04 2.23911226901879E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911453657662E-03 2.31619526200831E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886288176931E-03 2.39332627291423E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067141119646E-03 2.46478011701972E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913436942678E-03 2.52475932366992E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342190066024E-03 2.56860712883102E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059752427452E-03 2.59379159681492E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044133619E-02 2.60046740707986E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069655948988E-03 2.59154640206177E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505743497201E-03 2.57230689217077E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655617151849E-03 2.57617678843137E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666957813211E-03 2.60704657826786E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995521345164E-03 2.55368005607113E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595286858754E-03 2.53090267451604E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134012520494E-03 2.55686897269305E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547885339493E-03 2.59998585580591E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766403775007E-03 2.65617340080006E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801261682325E-03 2.71885907118273E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728542827282E-03 2.78009792016028E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533157374156E-03 2.83193125107858E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436779068335E-03 2.86771961845396E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260390844958E-03 2.88321601795537E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588731230979E-03 2.87721815914846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958539799389E-03 2.85172237716846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891544274878E-03 2.90854930882930E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216129215796E-03 2.93304375378747E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645857920684E-03 2.88331761307558E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907581122523E-03 2.77469261076280E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776866415653E-03 2.64912183100510E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175884567843E-03 2.63954763846603E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063146664663E-03 2.64744430029375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283019876026E-03 2.67027733332369E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958388184796E-03 2.75143061367449E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517504625247E-03 2.84716527217217E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141262184505E-03 2.92480128186031E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356452682978E-03 2.97120288056839E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691591409174E-03 2.97966804263433E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712330811832E-03 3.00381238910926E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280727465521E-03 3.08036412785704E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430716935785E-03 3.09182672025353E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713126631763E-03 3.03934310969540E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148607258558E-03 2.93659606971401E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983298325109E-03 2.80689806668391E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262896021876E-03 2.68543416494588E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865380317903E-03 2.73031558314261E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138132895883E-03 2.80043602227517E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770796521973E-03 2.88238464157064E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102488912209E-03 2.96047703662436E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794579589702E-03 3.01993446599138E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747809418918E-03 3.04982329824934E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311463499465E-03 3.04517980866597E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185274355616E-03 3.11258930524499E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878923475923E-03 3.17297133647831E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076175813420E-03 3.17471657229653E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655852455328E-03 3.11938176417150E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371954123599E-03 3.01971789652226E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244057034478E-03 2.89700828855229E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550650387544E-03 2.77676423270455E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987142955846E-03 2.78119166784846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114858695702E-03 2.84461356365666E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774866066010E-03 2.91823911731854E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760218422960E-03 2.98773885035001E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805647948234E-03 3.03980211087935E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908475042360E-03 3.06473925569458E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143920956907E-03 3.06396597329502E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449157722372E-03 3.16208626781205E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259123696220E-03 3.21610126208003E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301267842423E-03 3.21680817581214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212401231533E-03 3.16554822949595E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860118610027E-03 3.07378665160260E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293275855120E-03 2.96071721340568E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105723156418E-03 2.84938998451393E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705691343088E-03 2.80618860274145E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809589653899D-01 -(PID.TID 0000.0001) local fc = 0.473809589653899D-01 -(PID.TID 0000.0001) global fc = 0.473809589653899D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809589653899E-02 + --> objf_test(bi,bj) = 0.473809589653898D-01 +(PID.TID 0000.0001) local fc = 0.473809589653898D-01 +(PID.TID 0000.0001) global fc = 0.473809589653898D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809589653898E-02 grad-res ------------------------------- grad-res 0 7 4 4 1 1 1 1 4.73809587569E-02 4.73809585484E-02 4.73809589654E-02 - grad-res 0 7 7 19 0 1 1 1 -2.08462522474E-06 -2.08475181562E-06 -6.07259654928E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -2.08462522474360E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.08475181562306E-06 + grad-res 0 7 7 19 0 1 1 1 -2.08474964915E-06 -2.08475084418E-06 -5.73221483835E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.08474964915463E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.08475084417792E-06 (PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 22 25 8 @@ -3774,112 +3772,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353668E-03 2.18766023591839E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564469466E-03 4.29236468137108E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903536375E-03 6.43184795990034E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466272653E-02 8.17951762500036E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833388961E-02 9.31105227951443E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562437001E-02 9.89364856527010E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118106256E-03 1.22456378149223E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879422446E-03 1.44777510139278E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202899884E-03 1.58982062538313E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828168500E-03 1.64357696763808E-03 - cg2d: Sum(rhs),rhsMax = -5.47818876177618E-04 1.61756158408024E-03 - cg2d: Sum(rhs),rhsMax = 7.99729191763006E-05 1.53363855295442E-03 - cg2d: Sum(rhs),rhsMax = -4.03103058630985E-04 1.42794064399011E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816632855E-03 1.49223780329666E-03 - cg2d: Sum(rhs),rhsMax = -4.04408899023689E-03 1.56210440165535E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889269434E-03 1.63424212749082E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917348161E-03 1.70505818580109E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899849142E-02 1.77167127105416E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064700608E-02 1.83257529560808E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482935134E-02 1.88791211566594E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268670645E-03 1.93938683369160E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209524154E-03 2.06671962446236E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344002790E-03 2.17651147122412E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123315582E-03 2.23681620553219E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763045740E-03 2.25047699917405E-03 - cg2d: Sum(rhs),rhsMax = -5.83637559405333E-04 2.23911226477192E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454685829E-03 2.31619525789285E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289297000E-03 2.39332626855422E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142323340E-03 2.46478011195603E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438222257E-03 2.52475931743180E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191416002E-03 2.56860712100981E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753845752E-03 2.59379158712698E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044282446E-02 2.60046739540756E-03 - cg2d: Sum(rhs),rhsMax = -9.76069657512058E-03 2.59154638846570E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745141697E-03 2.57230687687117E-03 - cg2d: Sum(rhs),rhsMax = -6.76655618884364E-03 2.57617681167011E-03 - cg2d: Sum(rhs),rhsMax = -4.78666959638335E-03 2.60704660280945E-03 - cg2d: Sum(rhs),rhsMax = -2.99995523263849E-03 2.55368008239985E-03 - cg2d: Sum(rhs),rhsMax = -1.75595288867343E-03 2.53090265590662E-03 - cg2d: Sum(rhs),rhsMax = -1.29134014610644E-03 2.55686895389667E-03 - cg2d: Sum(rhs),rhsMax = -1.68547887499029E-03 2.59998583682158E-03 - cg2d: Sum(rhs),rhsMax = -2.84766405989504E-03 2.65617338148217E-03 - cg2d: Sum(rhs),rhsMax = -4.53801263937125E-03 2.71885905127419E-03 - cg2d: Sum(rhs),rhsMax = -6.41728545109486E-03 2.78009789934467E-03 - cg2d: Sum(rhs),rhsMax = -8.11533159674175E-03 2.83193122904098E-03 - cg2d: Sum(rhs),rhsMax = -9.30436781380663E-03 2.86771959493897E-03 - cg2d: Sum(rhs),rhsMax = -9.76260393167995E-03 2.88321599281165E-03 - cg2d: Sum(rhs),rhsMax = -9.41588733565916E-03 2.87721813235219E-03 - cg2d: Sum(rhs),rhsMax = -8.34958542148411E-03 2.85172234882208E-03 - cg2d: Sum(rhs),rhsMax = -6.78891546639053E-03 2.90854934181900E-03 - cg2d: Sum(rhs),rhsMax = -5.05216131593116E-03 2.93304378719626E-03 - cg2d: Sum(rhs),rhsMax = -3.48645860304708E-03 2.88331764734917E-03 - cg2d: Sum(rhs),rhsMax = -2.39907583501918E-03 2.77469264623227E-03 - cg2d: Sum(rhs),rhsMax = -1.99776868774782E-03 2.64912179842263E-03 - cg2d: Sum(rhs),rhsMax = -2.35175886888302E-03 2.63954760551476E-03 - cg2d: Sum(rhs),rhsMax = -3.38063148927469E-03 2.64744426692918E-03 - cg2d: Sum(rhs),rhsMax = -4.87283022063996E-03 2.67027729942326E-03 - cg2d: Sum(rhs),rhsMax = -6.52958390284639E-03 2.75143061498395E-03 - cg2d: Sum(rhs),rhsMax = -8.02517506628893E-03 2.84716527335979E-03 - cg2d: Sum(rhs),rhsMax = -9.07141264089375E-03 2.92480128287685E-03 - cg2d: Sum(rhs),rhsMax = -9.47356454491114E-03 2.97120288135737E-03 - cg2d: Sum(rhs),rhsMax = -9.16691593125365E-03 2.97966804314560E-03 - cg2d: Sum(rhs),rhsMax = -8.22712332441101E-03 3.00381242693363E-03 - cg2d: Sum(rhs),rhsMax = -6.85280729010487E-03 3.08036416570749E-03 - cg2d: Sum(rhs),rhsMax = -5.32430718394446E-03 3.09182675853927E-03 - cg2d: Sum(rhs),rhsMax = -3.94713127996172E-03 3.03934314878516E-03 - cg2d: Sum(rhs),rhsMax = -2.99148608514686E-03 2.93659610985679E-03 - cg2d: Sum(rhs),rhsMax = -2.63983299453973E-03 2.80689810795468E-03 - cg2d: Sum(rhs),rhsMax = -2.95262897001717E-03 2.68543416391544E-03 - cg2d: Sum(rhs),rhsMax = -3.85865381127004E-03 2.73031558207879E-03 - cg2d: Sum(rhs),rhsMax = -5.17138133515466E-03 2.80043602118394E-03 - cg2d: Sum(rhs),rhsMax = -6.62770796938588E-03 2.88238464042914E-03 - cg2d: Sum(rhs),rhsMax = -7.94102489119110E-03 2.96047703538568E-03 - cg2d: Sum(rhs),rhsMax = -8.85794579586918E-03 3.01993446459446E-03 - cg2d: Sum(rhs),rhsMax = -9.20747809211982E-03 3.04982329663194E-03 - cg2d: Sum(rhs),rhsMax = -8.93311463097009E-03 3.04517980677821E-03 - cg2d: Sum(rhs),rhsMax = -8.10185273766324E-03 3.11258934551400E-03 - cg2d: Sum(rhs),rhsMax = -6.88878922705426E-03 3.17297137690742E-03 - cg2d: Sum(rhs),rhsMax = -5.54076174861763E-03 3.17471661336795E-03 - cg2d: Sum(rhs),rhsMax = -4.32655851315522E-03 3.11938180630105E-03 - cg2d: Sum(rhs),rhsMax = -3.48371952781565E-03 3.01971793997517E-03 - cg2d: Sum(rhs),rhsMax = -3.17244055470408E-03 2.89700833338719E-03 - cg2d: Sum(rhs),rhsMax = -3.44550648578419E-03 2.77676427875713E-03 - cg2d: Sum(rhs),rhsMax = -4.23987140878627E-03 2.78119166491366E-03 - cg2d: Sum(rhs),rhsMax = -5.39114856330553E-03 2.84461356081962E-03 - cg2d: Sum(rhs),rhsMax = -6.66774863398908E-03 2.91823911455531E-03 - cg2d: Sum(rhs),rhsMax = -7.81760215447177E-03 2.98773884760544E-03 - cg2d: Sum(rhs),rhsMax = -8.61805644664369E-03 3.03980210807725E-03 - cg2d: Sum(rhs),rhsMax = -8.91908471456927E-03 3.06473925275180E-03 - cg2d: Sum(rhs),rhsMax = -8.67143917079742E-03 3.06396601692468E-03 - cg2d: Sum(rhs),rhsMax = -7.93449153563380E-03 3.16208631089425E-03 - cg2d: Sum(rhs),rhsMax = -6.86259119262107E-03 3.21610130510734E-03 - cg2d: Sum(rhs),rhsMax = -5.67301263134076E-03 3.21680821932830E-03 - cg2d: Sum(rhs),rhsMax = -4.60212396242578E-03 3.16554827399201E-03 - cg2d: Sum(rhs),rhsMax = -3.85860113326856E-03 3.07378669742306E-03 - cg2d: Sum(rhs),rhsMax = -3.58293270258381E-03 2.96071726068244E-03 - cg2d: Sum(rhs),rhsMax = -3.82105717223679E-03 2.84939003314100E-03 - cg2d: Sum(rhs),rhsMax = -4.51705685052142E-03 2.80618859844657E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564469454E-03 4.29236468136092E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903536360E-03 6.43184795990018E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466272651E-02 8.17951762500053E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833388959E-02 9.31105227951414E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562436999E-02 9.89364856527081E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118106231E-03 1.22456378149233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879422421E-03 1.44777510139289E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202899855E-03 1.58982062538321E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828168469E-03 1.64357696763817E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818876177294E-04 1.61756158408034E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729191766418E-05 1.53363855295451E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103058630622E-04 1.42794064399022E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816632818E-03 1.49223780329677E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408899023649E-03 1.56210440165546E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889269393E-03 1.63424212749092E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917348119E-03 1.70505818580119E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899849138E-02 1.77167127105427E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064700604E-02 1.83257529560818E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482935129E-02 1.88791211566604E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268670598E-03 1.93938683369171E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209524106E-03 2.06671962446242E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344002741E-03 2.17651147122416E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123315533E-03 2.23681620553225E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763045691E-03 2.25047699917410E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637559404847E-04 2.23911226477202E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454685780E-03 2.31619525789295E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289296951E-03 2.39332626855432E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142323290E-03 2.46478011195612E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438222207E-03 2.52475931743189E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191415954E-03 2.56860712100989E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753845704E-03 2.59379158712705E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044282442E-02 2.60046739540763E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069657512013E-03 2.59154638846578E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745141653E-03 2.57230687687124E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655618884322E-03 2.57617681167018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666959638293E-03 2.60704660280952E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995523263808E-03 2.55368008239992E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595288867302E-03 2.53090265590668E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134014610604E-03 2.55686895389672E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547887498990E-03 2.59998583682163E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766405989466E-03 2.65617338148222E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801263937087E-03 2.71885905127423E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728545109449E-03 2.78009789934471E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533159674139E-03 2.83193122904102E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436781380627E-03 2.86771959493900E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260393167959E-03 2.88321599281167E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588733565882E-03 2.87721813235221E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958542148373E-03 2.85172234882209E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891546639016E-03 2.90854934181906E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216131593080E-03 2.93304378719632E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645860304669E-03 2.88331764734921E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907583501878E-03 2.77469264623231E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776868774742E-03 2.64912179842263E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175886888263E-03 2.63954760551476E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063148927430E-03 2.64744426692917E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283022063956E-03 2.67027729942325E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958390284599E-03 2.75143061498394E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517506628854E-03 2.84716527335978E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141264089337E-03 2.92480128287683E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356454491077E-03 2.97120288135737E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691593125329E-03 2.97966804314558E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712332441065E-03 3.00381242693367E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280729010453E-03 3.08036416570752E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430718394413E-03 3.09182675853931E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713127996139E-03 3.03934314878519E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148608514654E-03 2.93659610985682E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983299453942E-03 2.80689810795472E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262897001686E-03 2.68543416391542E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865381126973E-03 2.73031558207877E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138133515434E-03 2.80043602118391E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770796938556E-03 2.88238464042910E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102489119078E-03 2.96047703538565E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794579586887E-03 3.01993446459443E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747809211951E-03 3.04982329663192E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311463096978E-03 3.04517980677818E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185273766294E-03 3.11258934551402E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878922705395E-03 3.17297137690744E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076174861731E-03 3.17471661336798E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655851315492E-03 3.11938180630107E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371952781535E-03 3.01971793997520E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244055470378E-03 2.89700833338721E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550648578388E-03 2.77676427875715E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987140878595E-03 2.78119166491363E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114856330519E-03 2.84461356081958E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774863398873E-03 2.91823911455528E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760215447140E-03 2.98773884760541E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805644664331E-03 3.03980210807721E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908471456890E-03 3.06473925275177E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143917079704E-03 3.06396601692470E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449153563341E-03 3.16208631089426E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259119262067E-03 3.21610130510734E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301263134035E-03 3.21680821932830E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212396242537E-03 3.16554827399202E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860113326814E-03 3.07378669742307E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293270258338E-03 2.96071726068243E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105717223637E-03 2.84939003314100E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705685052098E-03 2.80618859844653E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809592922535D-01 -(PID.TID 0000.0001) local fc = 0.473809592922535D-01 -(PID.TID 0000.0001) global fc = 0.473809592922535D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809592922535E-02 + --> objf_test(bi,bj) = 0.473809592922536D-01 +(PID.TID 0000.0001) local fc = 0.473809592922536D-01 +(PID.TID 0000.0001) global fc = 0.473809592922536D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809592922536E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -3890,118 +3888,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353673E-03 2.18766023591770E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564471049E-03 4.29236468072556E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903543180E-03 6.43184796299283E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466274119E-02 8.17951763333416E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833391159E-02 9.31105229084285E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562439394E-02 9.89364856951932E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118121128E-03 1.22456378107662E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879412057E-03 1.44777510401446E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202844671E-03 1.58982063267628E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828048515E-03 1.64357698088518E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874162143E-04 1.61756160388100E-03 - cg2d: Sum(rhs),rhsMax = 7.99729221094250E-05 1.53363857900206E-03 - cg2d: Sum(rhs),rhsMax = -4.03103054769780E-04 1.42794064729485E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816163150E-03 1.49223780793456E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898489193E-03 1.56210440784045E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888696045E-03 1.63424213535149E-03 - cg2d: Sum(rhs),rhsMax = -8.63394916765042E-03 1.70505819536212E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899792649E-02 1.77167128223629E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064648169E-02 1.83257530824626E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482888106E-02 1.88791212954440E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268257776E-03 1.93938684859006E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209162310E-03 2.06671962707972E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343678502E-03 2.17651147580130E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123012429E-03 2.23681621502023E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762749239E-03 2.25047701583328E-03 - cg2d: Sum(rhs),rhsMax = -5.83637556428574E-04 2.23911228423943E-03 - cg2d: Sum(rhs),rhsMax = -1.01911454389446E-03 2.31619527894652E-03 - cg2d: Sum(rhs),rhsMax = -2.32886289016552E-03 2.39332629158726E-03 - cg2d: Sum(rhs),rhsMax = -4.24067142085402E-03 2.46478013733903E-03 - cg2d: Sum(rhs),rhsMax = -6.36913438063035E-03 2.52475934545852E-03 - cg2d: Sum(rhs),rhsMax = -8.29342191377437E-03 2.56860715185468E-03 - cg2d: Sum(rhs),rhsMax = -9.64059753970795E-03 2.59379162082192E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044315245E-02 2.60046743184218E-03 - cg2d: Sum(rhs),rhsMax = -9.76069658075039E-03 2.59154642741117E-03 - cg2d: Sum(rhs),rhsMax = -8.54505745962499E-03 2.57230691802329E-03 - cg2d: Sum(rhs),rhsMax = -6.76655619976571E-03 2.57617674997196E-03 - cg2d: Sum(rhs),rhsMax = -4.78666961008232E-03 2.60704653864966E-03 - cg2d: Sum(rhs),rhsMax = -2.99995524913817E-03 2.55368001492703E-03 - cg2d: Sum(rhs),rhsMax = -1.75595290799975E-03 2.53090270322982E-03 - cg2d: Sum(rhs),rhsMax = -1.29134016832736E-03 2.55686900256614E-03 - cg2d: Sum(rhs),rhsMax = -1.68547890024619E-03 2.59998588699327E-03 - cg2d: Sum(rhs),rhsMax = -2.84766408841393E-03 2.65617343339293E-03 - cg2d: Sum(rhs),rhsMax = -4.53801267146608E-03 2.71885910519453E-03 - cg2d: Sum(rhs),rhsMax = -6.41728548714414E-03 2.78009795552652E-03 - cg2d: Sum(rhs),rhsMax = -8.11533163715800E-03 2.83193128767022E-03 - cg2d: Sum(rhs),rhsMax = -9.30436785899977E-03 2.86771965610125E-03 - cg2d: Sum(rhs),rhsMax = -9.76260398202330E-03 2.88321605647722E-03 - cg2d: Sum(rhs),rhsMax = -9.41588739146532E-03 2.87721819838219E-03 - cg2d: Sum(rhs),rhsMax = -8.34958548299543E-03 2.85172241699418E-03 - cg2d: Sum(rhs),rhsMax = -6.78891553378577E-03 2.90854925698859E-03 - cg2d: Sum(rhs),rhsMax = -5.05216138934619E-03 2.93304370152594E-03 - cg2d: Sum(rhs),rhsMax = -3.48645868260472E-03 2.88331756007556E-03 - cg2d: Sum(rhs),rhsMax = -2.39907592086141E-03 2.77469255675542E-03 - cg2d: Sum(rhs),rhsMax = -1.99776878006264E-03 2.64912187392310E-03 - cg2d: Sum(rhs),rhsMax = -2.35175896792015E-03 2.63954768225105E-03 - cg2d: Sum(rhs),rhsMax = -3.38063159534642E-03 2.64744434500589E-03 - cg2d: Sum(rhs),rhsMax = -4.87283033410696E-03 2.67027737897893E-03 - cg2d: Sum(rhs),rhsMax = -6.52958402409135E-03 2.75143061451538E-03 - cg2d: Sum(rhs),rhsMax = -8.02517519568382E-03 2.84716527318057E-03 - cg2d: Sum(rhs),rhsMax = -9.07141277876792E-03 2.92480128295188E-03 - cg2d: Sum(rhs),rhsMax = -9.47356469152731E-03 2.97120288168064E-03 - cg2d: Sum(rhs),rhsMax = -9.16691608679712E-03 2.97966804373973E-03 - cg2d: Sum(rhs),rhsMax = -8.22712348899497E-03 3.00381233183590E-03 - cg2d: Sum(rhs),rhsMax = -6.85280746379080E-03 3.08036407067679E-03 - cg2d: Sum(rhs),rhsMax = -5.32430736677357E-03 3.09182666285798E-03 - cg2d: Sum(rhs),rhsMax = -3.94713147199089E-03 3.03934305177461E-03 - cg2d: Sum(rhs),rhsMax = -2.99148628648160E-03 2.93659601102587E-03 - cg2d: Sum(rhs),rhsMax = -2.63983320535665E-03 2.80689800711001E-03 - cg2d: Sum(rhs),rhsMax = -2.95262919057127E-03 2.68543416746453E-03 - cg2d: Sum(rhs),rhsMax = -3.85865404188468E-03 2.73031558600340E-03 - cg2d: Sum(rhs),rhsMax = -5.17138157619578E-03 2.80043602542354E-03 - cg2d: Sum(rhs),rhsMax = -6.62770822122551E-03 2.88238464493084E-03 - cg2d: Sum(rhs),rhsMax = -7.94102515416733E-03 2.96047704011625E-03 - cg2d: Sum(rhs),rhsMax = -8.85794607025078E-03 3.01993446954842E-03 - cg2d: Sum(rhs),rhsMax = -9.20747837808278E-03 3.04982330183407E-03 - cg2d: Sum(rhs),rhsMax = -8.93311492859106E-03 3.04517981227969E-03 - cg2d: Sum(rhs),rhsMax = -8.10185304693161E-03 3.11258924716510E-03 - cg2d: Sum(rhs),rhsMax = -6.88878954790065E-03 3.17297127868875E-03 - cg2d: Sum(rhs),rhsMax = -5.54076208095332E-03 3.17471651440720E-03 - cg2d: Sum(rhs),rhsMax = -4.32655885691490E-03 3.11938170580181E-03 - cg2d: Sum(rhs),rhsMax = -3.48371988299487E-03 3.01971783737805E-03 - cg2d: Sum(rhs),rhsMax = -3.17244092138393E-03 2.89700822848681E-03 - cg2d: Sum(rhs),rhsMax = -3.44550686413850E-03 2.77676417175125E-03 - cg2d: Sum(rhs),rhsMax = -4.23987179906947E-03 2.78119167410939E-03 - cg2d: Sum(rhs),rhsMax = -5.39114896582381E-03 2.84461357029276E-03 - cg2d: Sum(rhs),rhsMax = -6.66774904906038E-03 2.91823912423173E-03 - cg2d: Sum(rhs),rhsMax = -7.81760258238263E-03 2.98773885743755E-03 - cg2d: Sum(rhs),rhsMax = -8.61805688761144E-03 3.03980211805409E-03 - cg2d: Sum(rhs),rhsMax = -8.91908516871703E-03 3.06473926290243E-03 - cg2d: Sum(rhs),rhsMax = -8.67143963814692E-03 3.06396591495550E-03 - cg2d: Sum(rhs),rhsMax = -7.93449201611719E-03 3.16208621034036E-03 - cg2d: Sum(rhs),rhsMax = -6.86259168610949E-03 3.21610120513641E-03 - cg2d: Sum(rhs),rhsMax = -5.67301313768384E-03 3.21680811896969E-03 - cg2d: Sum(rhs),rhsMax = -4.60212448149406E-03 3.16554817232246E-03 - cg2d: Sum(rhs),rhsMax = -3.85860166499066E-03 3.07378659374328E-03 - cg2d: Sum(rhs),rhsMax = -3.58293324697086E-03 2.96071715465072E-03 - cg2d: Sum(rhs),rhsMax = -3.82105772938957E-03 2.84938992483797E-03 - cg2d: Sum(rhs),rhsMax = -4.51705742061902E-03 2.80618861295763E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564471061E-03 4.29236468073573E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903543193E-03 6.43184796299299E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466274121E-02 8.17951763333411E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833391160E-02 9.31105229084299E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562439396E-02 9.89364856951862E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118121146E-03 1.22456378107651E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879412078E-03 1.44777510401435E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202844694E-03 1.58982063267618E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828048540E-03 1.64357698088508E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874162409E-04 1.61756160388091E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729221091324E-05 1.53363857900197E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103054770094E-04 1.42794064729474E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816163183E-03 1.49223780793445E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898489228E-03 1.56210440784035E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888696083E-03 1.63424213535138E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394916765080E-03 1.70505819536200E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899792653E-02 1.77167128223618E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064648173E-02 1.83257530824614E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482888110E-02 1.88791212954430E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268257819E-03 1.93938684858995E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209162353E-03 2.06671962707967E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343678546E-03 2.17651147580125E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123012474E-03 2.23681621502018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762749285E-03 2.25047701583323E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637556429037E-04 2.23911228423933E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911454389492E-03 2.31619527894641E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886289016599E-03 2.39332629158717E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067142085450E-03 2.46478013733894E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913438063083E-03 2.52475934545843E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342191377485E-03 2.56860715185460E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059753970843E-03 2.59379162082183E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044315249E-02 2.60046743184210E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069658075085E-03 2.59154642741110E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505745962543E-03 2.57230691802322E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655619976614E-03 2.57617674997189E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666961008272E-03 2.60704653864958E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995524913856E-03 2.55368001492697E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595290800013E-03 2.53090270322976E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134016832773E-03 2.55686900256609E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547890024655E-03 2.59998588699322E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766408841429E-03 2.65617343339289E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801267146643E-03 2.71885910519448E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728548714449E-03 2.78009795552647E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533163715835E-03 2.83193128767019E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436785900010E-03 2.86771965610122E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260398202362E-03 2.88321605647719E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588739146563E-03 2.87721819838216E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958548299574E-03 2.85172241699416E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891553378606E-03 2.90854925698854E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216138934645E-03 2.93304370152587E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645868260499E-03 2.88331756007551E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907592086169E-03 2.77469255675536E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776878006292E-03 2.64912187392309E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175896792043E-03 2.63954768225105E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063159534670E-03 2.64744434500590E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283033410724E-03 2.67027737897894E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958402409164E-03 2.75143061451539E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517519568410E-03 2.84716527318058E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141277876820E-03 2.92480128295189E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356469152759E-03 2.97120288168064E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691608679739E-03 2.97966804373975E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712348899524E-03 3.00381233183585E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280746379110E-03 3.08036407067674E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430736677385E-03 3.09182666285794E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713147199120E-03 3.03934305177458E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148628648191E-03 2.93659601102584E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983320535695E-03 2.80689800710997E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262919057158E-03 2.68543416746455E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865404188498E-03 2.73031558600342E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138157619608E-03 2.80043602542356E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770822122581E-03 2.88238464493086E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102515416764E-03 2.96047704011627E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794607025111E-03 3.01993446954844E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747837808312E-03 3.04982330183409E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311492859141E-03 3.04517981227972E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185304693195E-03 3.11258924716508E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878954790098E-03 3.17297127868872E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076208095367E-03 3.17471651440719E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655885691528E-03 3.11938170580179E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371988299523E-03 3.01971783737803E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244092138430E-03 2.89700822848679E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550686413888E-03 2.77676417175124E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987179906986E-03 2.78119167410942E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114896582421E-03 2.84461357029279E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774904906079E-03 2.91823912423177E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760258238305E-03 2.98773885743759E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805688761187E-03 3.03980211805413E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908516871750E-03 3.06473926290246E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143963814737E-03 3.06396591495550E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449201611764E-03 3.16208621034035E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259168610994E-03 3.21610120513641E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301313768430E-03 3.21680811896969E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212448149453E-03 3.16554817232245E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860166499114E-03 3.07378659374327E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293324697134E-03 2.96071715465072E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105772939007E-03 2.84938992483797E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705742061952E-03 2.80618861295767E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809582215761D-01 -(PID.TID 0000.0001) local fc = 0.473809582215761D-01 -(PID.TID 0000.0001) global fc = 0.473809582215761D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809582215761E-02 + --> objf_test(bi,bj) = 0.473809582215758D-01 +(PID.TID 0000.0001) local fc = 0.473809582215758D-01 +(PID.TID 0000.0001) global fc = 0.473809582215758D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809582215758E-02 grad-res ------------------------------- grad-res 0 8 2 5 1 1 1 1 4.73809587569E-02 4.73809592923E-02 4.73809582216E-02 - grad-res 0 8 8 22 0 1 1 1 5.35362930303E-06 5.35338696983E-06 4.52652178381E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.35362930302741E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = 5.35338696983079E-06 + grad-res 0 8 8 22 0 1 1 1 5.35338733610E-06 5.35338939844E-06 -3.85241557765E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.35338733609638E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.35338939844365E-06 (PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 9 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 25 25 9 @@ -4018,112 +4016,112 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353680E-03 2.18766023588200E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470323E-03 4.29236468112177E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903539170E-03 6.43184796162953E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273168E-02 8.17951762939117E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833389648E-02 9.31105228534067E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562437671E-02 9.89364856778198E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118109769E-03 1.22456378124311E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879419079E-03 1.44777510262150E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202885998E-03 1.58982062887940E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828141399E-03 1.64357697400621E-03 - cg2d: Sum(rhs),rhsMax = -5.47818875765350E-04 1.61756159357437E-03 - cg2d: Sum(rhs),rhsMax = 7.99729197146943E-05 1.53363856536915E-03 - cg2d: Sum(rhs),rhsMax = -4.03103058008679E-04 1.42794065023144E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816569024E-03 1.49223781114071E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898967055E-03 1.56210441116574E-03 - cg2d: Sum(rhs),rhsMax = -6.45462889229930E-03 1.63424213866513E-03 - cg2d: Sum(rhs),rhsMax = -8.63394917335835E-03 1.70505819857952E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899851550E-02 1.77167128533785E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064707428E-02 1.83257531128492E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482946966E-02 1.88791213264032E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268843675E-03 1.93938685191339E-03 - cg2d: Sum(rhs),rhsMax = -6.85700209755814E-03 2.06671962192481E-03 - cg2d: Sum(rhs),rhsMax = -4.59527344297481E-03 2.17651146947622E-03 - cg2d: Sum(rhs),rhsMax = -2.55199123679449E-03 2.23681620606458E-03 - cg2d: Sum(rhs),rhsMax = -1.12489763487845E-03 2.25047700310771E-03 - cg2d: Sum(rhs),rhsMax = -5.83637564736855E-04 2.23911229108037E-03 - cg2d: Sum(rhs),rhsMax = -1.01911455326916E-03 2.31619528661081E-03 - cg2d: Sum(rhs),rhsMax = -2.32886290066738E-03 2.39332629996459E-03 - cg2d: Sum(rhs),rhsMax = -4.24067143245469E-03 2.46478014628131E-03 - cg2d: Sum(rhs),rhsMax = -6.36913439322339E-03 2.52475935480756E-03 - cg2d: Sum(rhs),rhsMax = -8.29342192720037E-03 2.56860716147048E-03 - cg2d: Sum(rhs),rhsMax = -9.64059755378875E-03 2.59379163060672E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044460999E-02 2.60046744175616E-03 - cg2d: Sum(rhs),rhsMax = -9.76069659571017E-03 2.59154643747746E-03 - cg2d: Sum(rhs),rhsMax = -8.54505747493020E-03 2.57230692832198E-03 - cg2d: Sum(rhs),rhsMax = -6.76655621545599E-03 2.57617675201394E-03 - cg2d: Sum(rhs),rhsMax = -4.78666962626798E-03 2.60704654001209E-03 - cg2d: Sum(rhs),rhsMax = -2.99995526597965E-03 2.55368001584762E-03 - cg2d: Sum(rhs),rhsMax = -1.75595292567889E-03 2.53090271575197E-03 - cg2d: Sum(rhs),rhsMax = -1.29134018701665E-03 2.55686901589997E-03 - cg2d: Sum(rhs),rhsMax = -1.68547892008214E-03 2.59998590115862E-03 - cg2d: Sum(rhs),rhsMax = -2.84766410947961E-03 2.65617344836232E-03 - cg2d: Sum(rhs),rhsMax = -4.53801269378589E-03 2.71885912090318E-03 - cg2d: Sum(rhs),rhsMax = -6.41728551069105E-03 2.78009797188823E-03 - cg2d: Sum(rhs),rhsMax = -8.11533166187120E-03 2.83193130459585E-03 - cg2d: Sum(rhs),rhsMax = -9.30436788480829E-03 2.86771967351592E-03 - cg2d: Sum(rhs),rhsMax = -9.76260400887041E-03 2.88321607433362E-03 - cg2d: Sum(rhs),rhsMax = -9.41588741932820E-03 2.87721821666732E-03 - cg2d: Sum(rhs),rhsMax = -8.34958551189635E-03 2.85172243572916E-03 - cg2d: Sum(rhs),rhsMax = -6.78891556379245E-03 2.90854925610558E-03 - cg2d: Sum(rhs),rhsMax = -5.05216142056207E-03 2.93304369999018E-03 - cg2d: Sum(rhs),rhsMax = -3.48645871515154E-03 2.88331755802847E-03 - cg2d: Sum(rhs),rhsMax = -2.39907595485832E-03 2.77469255436538E-03 - cg2d: Sum(rhs),rhsMax = -1.99776881560707E-03 2.64912189575723E-03 - cg2d: Sum(rhs),rhsMax = -2.35175900507450E-03 2.63954770481937E-03 - cg2d: Sum(rhs),rhsMax = -3.38063163413377E-03 2.64744436829615E-03 - cg2d: Sum(rhs),rhsMax = -4.87283037451662E-03 2.67027740296054E-03 - cg2d: Sum(rhs),rhsMax = -6.52958406609305E-03 2.75143064193240E-03 - cg2d: Sum(rhs),rhsMax = -8.02517523924722E-03 2.84716530055620E-03 - cg2d: Sum(rhs),rhsMax = -9.07141282388294E-03 2.92480131022888E-03 - cg2d: Sum(rhs),rhsMax = -9.47356473822047E-03 2.97120290897247E-03 - cg2d: Sum(rhs),rhsMax = -9.16691613514030E-03 2.97966807130971E-03 - cg2d: Sum(rhs),rhsMax = -8.22712353910404E-03 3.00381232706159E-03 - cg2d: Sum(rhs),rhsMax = -6.85280751581421E-03 3.08036406546413E-03 - cg2d: Sum(rhs),rhsMax = -5.32430742087331E-03 3.09182665731785E-03 - cg2d: Sum(rhs),rhsMax = -3.94713152831947E-03 3.03934304604354E-03 - cg2d: Sum(rhs),rhsMax = -2.99148634516016E-03 2.93659600523742E-03 - cg2d: Sum(rhs),rhsMax = -2.63983326645903E-03 2.80689800136691E-03 - cg2d: Sum(rhs),rhsMax = -2.95262925411750E-03 2.68543420335672E-03 - cg2d: Sum(rhs),rhsMax = -3.85865410784563E-03 2.73031562247592E-03 - cg2d: Sum(rhs),rhsMax = -5.17138164450842E-03 2.80043606205944E-03 - cg2d: Sum(rhs),rhsMax = -6.62770829181577E-03 2.88238468140000E-03 - cg2d: Sum(rhs),rhsMax = -7.94102522697617E-03 2.96047707624614E-03 - cg2d: Sum(rhs),rhsMax = -8.85794614525799E-03 3.01993450536391E-03 - cg2d: Sum(rhs),rhsMax = -9.20747845532368E-03 3.04982333755730E-03 - cg2d: Sum(rhs),rhsMax = -8.93311500816260E-03 3.04517984828942E-03 - cg2d: Sum(rhs),rhsMax = -8.10185312898612E-03 3.11258923960456E-03 - cg2d: Sum(rhs),rhsMax = -6.88878963262862E-03 3.17297127081794E-03 - cg2d: Sum(rhs),rhsMax = -5.54076216855831E-03 3.17471650637665E-03 - cg2d: Sum(rhs),rhsMax = -4.32655894758546E-03 3.11938169777893E-03 - cg2d: Sum(rhs),rhsMax = -3.48371997687906E-03 3.01971782951642E-03 - cg2d: Sum(rhs),rhsMax = -3.17244101857165E-03 2.89700822089780E-03 - cg2d: Sum(rhs),rhsMax = -3.44550696465481E-03 2.77676416448378E-03 - cg2d: Sum(rhs),rhsMax = -4.23987190288063E-03 2.78119172019203E-03 - cg2d: Sum(rhs),rhsMax = -5.39114907285455E-03 2.84461361647073E-03 - cg2d: Sum(rhs),rhsMax = -6.66774915921918E-03 2.91823917012314E-03 - cg2d: Sum(rhs),rhsMax = -7.81760269558987E-03 2.98773890283544E-03 - cg2d: Sum(rhs),rhsMax = -8.61805700382493E-03 3.03980216296581E-03 - cg2d: Sum(rhs),rhsMax = -8.91908528794985E-03 3.06473930754670E-03 - cg2d: Sum(rhs),rhsMax = -8.67143976047407E-03 3.06396590730102E-03 - cg2d: Sum(rhs),rhsMax = -7.93449214167005E-03 3.16208620234837E-03 - cg2d: Sum(rhs),rhsMax = -6.86259181505898E-03 3.21610119689837E-03 - cg2d: Sum(rhs),rhsMax = -5.67301327021608E-03 3.21680811062526E-03 - cg2d: Sum(rhs),rhsMax = -4.60212461778323E-03 3.16554816403372E-03 - cg2d: Sum(rhs),rhsMax = -3.85860180517457E-03 3.07378658566519E-03 - cg2d: Sum(rhs),rhsMax = -3.58293339113411E-03 2.96071714690352E-03 - cg2d: Sum(rhs),rhsMax = -3.82105787755733E-03 2.84938991748670E-03 - cg2d: Sum(rhs),rhsMax = -4.51705757276257E-03 2.80618866706394E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587219E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470302E-03 4.29236468112908E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903539142E-03 6.43184796163296E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273165E-02 8.17951762939276E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833389644E-02 9.31105228534224E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562437667E-02 9.89364856778100E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118109718E-03 1.22456378124354E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879419025E-03 1.44777510262191E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202885939E-03 1.58982062887979E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828141333E-03 1.64357697400657E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818875764636E-04 1.61756159357473E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729197154772E-05 1.53363856536949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103058007840E-04 1.42794065023138E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816568934E-03 1.49223781114064E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898966960E-03 1.56210441116568E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462889229828E-03 1.63424213866507E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394917335729E-03 1.70505819857946E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899851539E-02 1.77167128533778E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064707416E-02 1.83257531128485E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482946954E-02 1.88791213264025E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268843551E-03 1.93938685191333E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700209755687E-03 2.06671962192499E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527344297349E-03 2.17651146947638E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199123679314E-03 2.23681620606472E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489763487705E-03 2.25047700310785E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637564735405E-04 2.23911229108031E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911455326767E-03 2.31619528661075E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886290066585E-03 2.39332629996452E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067143245313E-03 2.46478014628124E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913439322179E-03 2.52475935480748E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342192719873E-03 2.56860716147041E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059755378710E-03 2.59379163060665E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044460982E-02 2.60046744175608E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069659570849E-03 2.59154643747738E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505747492851E-03 2.57230692832190E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655621545429E-03 2.57617675201398E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666962626630E-03 2.60704654001214E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995526597796E-03 2.55368001584765E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595292567719E-03 2.53090271575189E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134018701493E-03 2.55686901589988E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547892008039E-03 2.59998590115853E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766410947785E-03 2.65617344836223E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801269378410E-03 2.71885912090308E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728551068923E-03 2.78009797188813E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533166186937E-03 2.83193130459575E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436788480645E-03 2.86771967351581E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260400886855E-03 2.88321607433350E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588741932635E-03 2.87721821666721E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958551189450E-03 2.85172243572906E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891556379058E-03 2.90854925610556E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216142056021E-03 2.93304369999016E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645871514966E-03 2.88331755802846E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907595485644E-03 2.77469255436536E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776881560519E-03 2.64912189575711E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175900507263E-03 2.63954770481925E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063163413190E-03 2.64744436829604E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283037451474E-03 2.67027740296040E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958406609117E-03 2.75143064193226E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517523924534E-03 2.84716530055605E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141282388104E-03 2.92480131022874E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356473821857E-03 2.97120290897233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691613513841E-03 2.97966807130957E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712353910218E-03 3.00381232706155E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280751581236E-03 3.08036406546409E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430742087145E-03 3.09182665731781E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713152831761E-03 3.03934304604349E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148634515829E-03 2.93659600523738E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983326645715E-03 2.80689800136687E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262925411563E-03 2.68543420335657E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865410784375E-03 2.73031562247577E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138164450653E-03 2.80043606205929E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770829181389E-03 2.88238468139984E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102522697429E-03 2.96047707624599E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794614525613E-03 3.01993450536376E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747845532185E-03 3.04982333755714E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311500816078E-03 3.04517984828927E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185312898429E-03 3.11258923960451E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878963262681E-03 3.17297127081789E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076216855649E-03 3.17471650637660E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655894758363E-03 3.11938169777887E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371997687724E-03 3.01971782951637E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244101856984E-03 2.89700822089775E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550696465301E-03 2.77676416448374E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987190287883E-03 2.78119172019188E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114907285274E-03 2.84461361647058E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774915921737E-03 2.91823917012298E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760269558805E-03 2.98773890283530E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805700382309E-03 3.03980216296565E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908528794801E-03 3.06473930754655E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143976047222E-03 3.06396590730096E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449214166817E-03 3.16208620234832E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259181505711E-03 3.21610119689832E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301327021422E-03 3.21680811062520E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212461778137E-03 3.16554816403365E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860180517271E-03 3.07378658566514E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293339113224E-03 2.96071714690346E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105787755545E-03 2.84938991748665E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705757276069E-03 2.80618866706380E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809576551188D-01 -(PID.TID 0000.0001) local fc = 0.473809576551188D-01 -(PID.TID 0000.0001) global fc = 0.473809576551188D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809576551188E-02 + --> objf_test(bi,bj) = 0.473809576551186D-01 +(PID.TID 0000.0001) local fc = 0.473809576551186D-01 +(PID.TID 0000.0001) global fc = 0.473809576551186D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 4.73809576551186E-02 ctrl_depth_ini: ctrl update R_low, adding the control vector. (PID.TID 0000.0001) Start initial hydrostatic pressure computation @@ -4134,118 +4132,118 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 - cg2d: Sum(rhs),rhsMax = -3.96041768353662E-03 2.18766023589393E-04 - cg2d: Sum(rhs),rhsMax = -6.70151564470191E-03 4.29236468097487E-04 - cg2d: Sum(rhs),rhsMax = -9.17158903540384E-03 6.43184796126380E-04 - cg2d: Sum(rhs),rhsMax = -1.08944466273604E-02 8.17951762894338E-04 - cg2d: Sum(rhs),rhsMax = -1.15449833390472E-02 9.31105228501655E-04 - cg2d: Sum(rhs),rhsMax = -1.10127562438724E-02 9.89364856700747E-04 - cg2d: Sum(rhs),rhsMax = -9.42153118117614E-03 1.22456378132573E-03 - cg2d: Sum(rhs),rhsMax = -7.10092879415427E-03 1.44777510278574E-03 - cg2d: Sum(rhs),rhsMax = -4.51794202858560E-03 1.58982062918001E-03 - cg2d: Sum(rhs),rhsMax = -2.18275828075619E-03 1.64357697451706E-03 - cg2d: Sum(rhs),rhsMax = -5.47818874574456E-04 1.61756159438686E-03 - cg2d: Sum(rhs),rhsMax = 7.99729215709821E-05 1.53363856658734E-03 - cg2d: Sum(rhs),rhsMax = -4.03103055392134E-04 1.42794064105352E-03 - cg2d: Sum(rhs),rhsMax = -1.88087816226986E-03 1.49223780009052E-03 - cg2d: Sum(rhs),rhsMax = -4.04408898545831E-03 1.56210439833007E-03 - cg2d: Sum(rhs),rhsMax = -6.45462888735555E-03 1.63424212417717E-03 - cg2d: Sum(rhs),rhsMax = -8.63394916777376E-03 1.70505818258369E-03 - cg2d: Sum(rhs),rhsMax = -1.01577899790242E-02 1.77167126795261E-03 - cg2d: Sum(rhs),rhsMax = -1.07385064641350E-02 1.83257529256942E-03 - cg2d: Sum(rhs),rhsMax = -1.02790482876274E-02 1.88791211257004E-03 - cg2d: Sum(rhs),rhsMax = -8.88852268084754E-03 1.93938683036829E-03 - cg2d: Sum(rhs),rhsMax = -6.85700208930658E-03 2.06671962961728E-03 - cg2d: Sum(rhs),rhsMax = -4.59527343383819E-03 2.17651147754920E-03 - cg2d: Sum(rhs),rhsMax = -2.55199122648570E-03 2.23681621448785E-03 - cg2d: Sum(rhs),rhsMax = -1.12489762307146E-03 2.25047701189962E-03 - cg2d: Sum(rhs),rhsMax = -5.83637551097186E-04 2.23911225793098E-03 - cg2d: Sum(rhs),rhsMax = -1.01911453748372E-03 2.31619525022856E-03 - cg2d: Sum(rhs),rhsMax = -2.32886288246829E-03 2.39332626017691E-03 - cg2d: Sum(rhs),rhsMax = -4.24067141163288E-03 2.46478010301377E-03 - cg2d: Sum(rhs),rhsMax = -6.36913436962970E-03 2.52475930808278E-03 - cg2d: Sum(rhs),rhsMax = -8.29342190073422E-03 2.56860711139401E-03 - cg2d: Sum(rhs),rhsMax = -9.64059752437692E-03 2.59379157734218E-03 - cg2d: Sum(rhs),rhsMax = -1.01580044136694E-02 2.60046738549360E-03 - cg2d: Sum(rhs),rhsMax = -9.76069656016098E-03 2.59154637839942E-03 - cg2d: Sum(rhs),rhsMax = -8.54505743611192E-03 2.57230686657248E-03 - cg2d: Sum(rhs),rhsMax = -6.76655617315352E-03 2.57617680962812E-03 - cg2d: Sum(rhs),rhsMax = -4.78666958019783E-03 2.60704660144702E-03 - cg2d: Sum(rhs),rhsMax = -2.99995521579715E-03 2.55368008147927E-03 - cg2d: Sum(rhs),rhsMax = -1.75595287099442E-03 2.53090264338448E-03 - cg2d: Sum(rhs),rhsMax = -1.29134012741728E-03 2.55686894056286E-03 - cg2d: Sum(rhs),rhsMax = -1.68547885515447E-03 2.59998582265623E-03 - cg2d: Sum(rhs),rhsMax = -2.84766403882949E-03 2.65617336651279E-03 - cg2d: Sum(rhs),rhsMax = -4.53801261705159E-03 2.71885903556555E-03 - cg2d: Sum(rhs),rhsMax = -6.41728542754811E-03 2.78009788298296E-03 - cg2d: Sum(rhs),rhsMax = -8.11533157202872E-03 2.83193121211537E-03 - cg2d: Sum(rhs),rhsMax = -9.30436778799825E-03 2.86771957752430E-03 - cg2d: Sum(rhs),rhsMax = -9.76260390483298E-03 2.88321597495526E-03 - cg2d: Sum(rhs),rhsMax = -9.41588730779641E-03 2.87721811406707E-03 - cg2d: Sum(rhs),rhsMax = -8.34958539258331E-03 2.85172233008710E-03 - cg2d: Sum(rhs),rhsMax = -6.78891543638398E-03 2.90854934270203E-03 - cg2d: Sum(rhs),rhsMax = -5.05216128471544E-03 2.93304378873201E-03 - cg2d: Sum(rhs),rhsMax = -3.48645857050045E-03 2.88331764939626E-03 - cg2d: Sum(rhs),rhsMax = -2.39907580102244E-03 2.77469264862231E-03 - cg2d: Sum(rhs),rhsMax = -1.99776865220355E-03 2.64912177658851E-03 - cg2d: Sum(rhs),rhsMax = -2.35175883172883E-03 2.63954758294644E-03 - cg2d: Sum(rhs),rhsMax = -3.38063145048750E-03 2.64744424363893E-03 - cg2d: Sum(rhs),rhsMax = -4.87283018023045E-03 2.67027727544167E-03 - cg2d: Sum(rhs),rhsMax = -6.52958386084483E-03 2.75143058756694E-03 - cg2d: Sum(rhs),rhsMax = -8.02517502272567E-03 2.84716524598417E-03 - cg2d: Sum(rhs),rhsMax = -9.07141259577890E-03 2.92480125559984E-03 - cg2d: Sum(rhs),rhsMax = -9.47356449821813E-03 2.97120285406554E-03 - cg2d: Sum(rhs),rhsMax = -9.16691588291062E-03 2.97966801557563E-03 - cg2d: Sum(rhs),rhsMax = -8.22712327430211E-03 3.00381243170794E-03 - cg2d: Sum(rhs),rhsMax = -6.85280723808163E-03 3.08036417092014E-03 - cg2d: Sum(rhs),rhsMax = -5.32430712984490E-03 3.09182676407941E-03 - cg2d: Sum(rhs),rhsMax = -3.94713122363334E-03 3.03934315451624E-03 - cg2d: Sum(rhs),rhsMax = -2.99148602646850E-03 2.93659611564526E-03 - cg2d: Sum(rhs),rhsMax = -2.63983293343753E-03 2.80689811369779E-03 - cg2d: Sum(rhs),rhsMax = -2.95262890647113E-03 2.68543412802325E-03 - cg2d: Sum(rhs),rhsMax = -3.85865374530928E-03 2.73031554560629E-03 - cg2d: Sum(rhs),rhsMax = -5.17138126684222E-03 2.80043598454804E-03 - cg2d: Sum(rhs),rhsMax = -6.62770789879582E-03 2.88238460395998E-03 - cg2d: Sum(rhs),rhsMax = -7.94102481838247E-03 2.96047699925581E-03 - cg2d: Sum(rhs),rhsMax = -8.85794572086218E-03 3.01993442877897E-03 - cg2d: Sum(rhs),rhsMax = -9.20747801487909E-03 3.04982326090871E-03 - cg2d: Sum(rhs),rhsMax = -8.93311455139875E-03 3.04517977076849E-03 - cg2d: Sum(rhs),rhsMax = -8.10185265560892E-03 3.11258935307455E-03 - cg2d: Sum(rhs),rhsMax = -6.88878914232647E-03 3.17297138477824E-03 - cg2d: Sum(rhs),rhsMax = -5.54076166101282E-03 3.17471662139852E-03 - cg2d: Sum(rhs),rhsMax = -4.32655842248486E-03 3.11938181432393E-03 - cg2d: Sum(rhs),rhsMax = -3.48371943393165E-03 3.01971794783681E-03 - cg2d: Sum(rhs),rhsMax = -3.17244045751654E-03 2.89700834097620E-03 - cg2d: Sum(rhs),rhsMax = -3.44550638526806E-03 2.77676428602460E-03 - cg2d: Sum(rhs),rhsMax = -4.23987130497530E-03 2.78119161883103E-03 - cg2d: Sum(rhs),rhsMax = -5.39114845627498E-03 2.84461351464165E-03 - cg2d: Sum(rhs),rhsMax = -6.66774852383047E-03 2.91823906866390E-03 - cg2d: Sum(rhs),rhsMax = -7.81760204126471E-03 2.98773880220757E-03 - cg2d: Sum(rhs),rhsMax = -8.61805633043039E-03 3.03980206316554E-03 - cg2d: Sum(rhs),rhsMax = -8.91908459533668E-03 3.06473920810754E-03 - cg2d: Sum(rhs),rhsMax = -8.67143904847051E-03 3.06396602457918E-03 - cg2d: Sum(rhs),rhsMax = -7.93449141008118E-03 3.16208631888626E-03 - cg2d: Sum(rhs),rhsMax = -6.86259106367182E-03 3.21610131334538E-03 - cg2d: Sum(rhs),rhsMax = -5.67301249880878E-03 3.21680822767272E-03 - cg2d: Sum(rhs),rhsMax = -4.60212382613687E-03 3.16554828228077E-03 - cg2d: Sum(rhs),rhsMax = -3.85860099308489E-03 3.07378670550115E-03 - cg2d: Sum(rhs),rhsMax = -3.58293255842080E-03 2.96071726842964E-03 - cg2d: Sum(rhs),rhsMax = -3.82105702406928E-03 2.84939004049228E-03 - cg2d: Sum(rhs),rhsMax = -4.51705669837811E-03 2.80618854434027E-03 + cg2d_nsa: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d_nsa: Sum(rhs),rhsMax = -1.50873054610922E-03 6.03492218443701E-05 + cg2d_nsa: Sum(rhs),rhsMax = -3.96041768353671E-03 2.18766023587220E-04 + cg2d_nsa: Sum(rhs),rhsMax = -6.70151564470212E-03 4.29236468096761E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.17158903540410E-03 6.43184796126029E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.08944466273607E-02 8.17951762894181E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.15449833390475E-02 9.31105228501505E-04 + cg2d_nsa: Sum(rhs),rhsMax = -1.10127562438728E-02 9.89364856700857E-04 + cg2d_nsa: Sum(rhs),rhsMax = -9.42153118117660E-03 1.22456378132530E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.10092879415478E-03 1.44777510278533E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51794202858617E-03 1.58982062917962E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.18275828075682E-03 1.64357697451669E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.47818874575135E-04 1.61756159438651E-03 + cg2d_nsa: Sum(rhs),rhsMax = 7.99729215702400E-05 1.53363856658699E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.03103055392936E-04 1.42794064105358E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.88087816227072E-03 1.49223780009058E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.04408898545923E-03 1.56210439833013E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.45462888735653E-03 1.63424212417724E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.63394916777476E-03 1.70505818258375E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01577899790253E-02 1.77167126795267E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.07385064641361E-02 1.83257529256949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.02790482876285E-02 1.88791211257010E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.88852268084871E-03 1.93938683036834E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85700208930777E-03 2.06671962961710E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.59527343383941E-03 2.17651147754903E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.55199122648697E-03 2.23681621448771E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.12489762307277E-03 2.25047701189948E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.83637551098531E-04 2.23911225793104E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01911453748510E-03 2.31619525022861E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.32886288246971E-03 2.39332626017697E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.24067141163434E-03 2.46478010301383E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.36913436963119E-03 2.52475930808284E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.29342190073575E-03 2.56860711139408E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.64059752437848E-03 2.59379157734225E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.01580044136710E-02 2.60046738549367E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76069656016259E-03 2.59154637839949E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.54505743611353E-03 2.57230686657255E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.76655617315517E-03 2.57617680962810E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.78666958019949E-03 2.60704660144698E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99995521579882E-03 2.55368008147924E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.75595287099610E-03 2.53090264338456E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.29134012741897E-03 2.55686894056294E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.68547885515618E-03 2.59998582265632E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.84766403883122E-03 2.65617336651287E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.53801261705333E-03 2.71885903556564E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.41728542754986E-03 2.78009788298305E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.11533157203047E-03 2.83193121211547E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.30436778800000E-03 2.86771957752439E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.76260390483473E-03 2.88321597495536E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.41588730779815E-03 2.87721811406717E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.34958539258502E-03 2.85172233008720E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.78891543638567E-03 2.90854934270203E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.05216128471712E-03 2.93304378873203E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48645857050212E-03 2.88331764939626E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.39907580102413E-03 2.77469264862233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -1.99776865220524E-03 2.64912177658862E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.35175883173053E-03 2.63954758294656E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.38063145048921E-03 2.64744424363904E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.87283018023217E-03 2.67027727544179E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.52958386084657E-03 2.75143058756707E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.02517502272739E-03 2.84716524598431E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.07141259578062E-03 2.92480125559998E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.47356449821985E-03 2.97120285406568E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.16691588291232E-03 2.97966801557577E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.22712327430381E-03 3.00381243170798E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.85280723808333E-03 3.08036417092018E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.32430712984658E-03 3.09182676407944E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.94713122363502E-03 3.03934315451628E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.99148602647019E-03 2.93659611564528E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.63983293343922E-03 2.80689811369783E-03 + cg2d_nsa: Sum(rhs),rhsMax = -2.95262890647281E-03 2.68543412802339E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85865374531096E-03 2.73031554560643E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.17138126684389E-03 2.80043598454819E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.62770789879750E-03 2.88238460396013E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.94102481838414E-03 2.96047699925595E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.85794572086386E-03 3.01993442877911E-03 + cg2d_nsa: Sum(rhs),rhsMax = -9.20747801488077E-03 3.04982326090886E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.93311455140042E-03 3.04517977076863E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.10185265561058E-03 3.11258935307460E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.88878914232811E-03 3.17297138477828E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.54076166101446E-03 3.17471662139856E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.32655842248649E-03 3.11938181432398E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.48371943393328E-03 3.01971794783686E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.17244045751817E-03 2.89700834097624E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.44550638526968E-03 2.77676428602465E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.23987130497691E-03 2.78119161883116E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.39114845627660E-03 2.84461351464179E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.66774852383209E-03 2.91823906866403E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.81760204126634E-03 2.98773880220770E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.61805633043203E-03 3.03980206316569E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.91908459533832E-03 3.06473920810768E-03 + cg2d_nsa: Sum(rhs),rhsMax = -8.67143904847213E-03 3.06396602457922E-03 + cg2d_nsa: Sum(rhs),rhsMax = -7.93449141008280E-03 3.16208631888630E-03 + cg2d_nsa: Sum(rhs),rhsMax = -6.86259106367343E-03 3.21610131334543E-03 + cg2d_nsa: Sum(rhs),rhsMax = -5.67301249881037E-03 3.21680822767278E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.60212382613846E-03 3.16554828228081E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.85860099308648E-03 3.07378670550121E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.58293255842238E-03 2.96071726842968E-03 + cg2d_nsa: Sum(rhs),rhsMax = -3.82105702407088E-03 2.84939004049233E-03 + cg2d_nsa: Sum(rhs),rhsMax = -4.51705669837970E-03 2.80618854434040E-03 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.473809598587105D-01 -(PID.TID 0000.0001) local fc = 0.473809598587105D-01 -(PID.TID 0000.0001) global fc = 0.473809598587105D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809598587105E-02 + --> objf_test(bi,bj) = 0.473809598587108D-01 +(PID.TID 0000.0001) local fc = 0.473809598587108D-01 +(PID.TID 0000.0001) global fc = 0.473809598587108D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 4.73809598587108E-02 grad-res ------------------------------- grad-res 0 9 5 5 1 1 1 1 4.73809587569E-02 4.73809576551E-02 4.73809598587E-02 - grad-res 0 9 9 25 0 1 1 1 -1.10178420756E-05 -1.10179582125E-05 -1.05407981696E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569146E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.10178420756063E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.10179582124559E-05 + grad-res 0 9 9 25 0 1 1 1 -1.10179587518E-05 -1.10179607105E-05 -1.77766414478E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 4.73809587569147E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.10179587518347E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.10179607104577E-05 (PID.TID 0000.0001) ====== End of gradient-check number 9 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -4259,213 +4257,219 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 4.7380958756915E-02 4.7380959323097E-02 4.7380958190733E-02 -(PID.TID 0000.0001) grdchk output (g): 1 5.6618191385249E-06 5.6618925136894E-06 1.2959476769270E-05 +(PID.TID 0000.0001) grdchk output (c): 1 4.7380958756915E-02 4.7380959323097E-02 4.7380958190732E-02 +(PID.TID 0000.0001) grdchk output (g): 1 5.6618227814442E-06 5.6618226855827E-06 -1.6931209767534E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 4 1 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 4.7380958756915E-02 4.7380958754118E-02 4.7380958759712E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -2.7971062965815E-08 -2.8254620692707E-08 1.0035800160853E-02 +(PID.TID 0000.0001) grdchk output (c): 2 4.7380958756915E-02 4.7380958754117E-02 4.7380958759712E-02 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7973283411864E-08 -2.7972833499368E-08 -1.6083908541464E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 2 2 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 4.7380958756915E-02 4.7380958867361E-02 4.7380958646469E-02 -(PID.TID 0000.0001) grdchk output (g): 3 1.1044579140140E-06 1.1043229433381E-06 -1.2222029501752E-04 +(PID.TID 0000.0001) grdchk output (c): 3 4.7380958756915E-02 4.7380958867360E-02 4.7380958646469E-02 +(PID.TID 0000.0001) grdchk output (g): 3 1.1044562486795E-06 1.1044572924060E-06 9.4501296754590E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 5 2 1 1 1 0.000000000E+00 -1.000000000E-04 (PID.TID 0000.0001) grdchk output (c): 4 4.7380958756915E-02 4.7380958774784E-02 4.7380958739045E-02 -(PID.TID 0000.0001) grdchk output (g): 4 1.7869577345619E-07 1.7868311580523E-07 -7.0838539550033E-05 +(PID.TID 0000.0001) grdchk output (g): 4 1.7869383056590E-07 1.7869230372270E-07 -8.5445381035054E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 5 3 3 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 4.7380958756915E-02 4.7380959166065E-02 4.7380958347765E-02 -(PID.TID 0000.0001) grdchk output (g): 5 4.0915002982866E-06 4.0916332923310E-06 3.2503901229219E-05 +(PID.TID 0000.0001) grdchk output (c): 5 4.7380958756915E-02 4.7380959166064E-02 4.7380958347765E-02 +(PID.TID 0000.0001) grdchk output (g): 5 4.0914968982286E-06 4.0914977931804E-06 2.1873450162246E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 6 1 4 1 1 1 0.000000000E+00 -1.000000000E-04 (PID.TID 0000.0001) grdchk output (c): 6 4.7380958756915E-02 4.7380958926771E-02 4.7380958587058E-02 -(PID.TID 0000.0001) grdchk output (g): 6 1.6985643100376E-06 1.6984964354760E-06 -3.9961556651535E-05 +(PID.TID 0000.0001) grdchk output (g): 6 1.6985652467882E-06 1.6985645496308E-06 -4.1043918996841E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 7 4 4 1 1 1 0.000000000E+00 -1.000000000E-04 (PID.TID 0000.0001) grdchk output (c): 7 4.7380958756915E-02 4.7380958548440E-02 4.7380958965390E-02 -(PID.TID 0000.0001) grdchk output (g): 7 -2.0847518156231E-06 -2.0846252247436E-06 -6.0725965492781E-05 +(PID.TID 0000.0001) grdchk output (g): 7 -2.0847508441779E-06 -2.0847496491546E-06 -5.7322148383498E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 8 2 5 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 8 4.7380958756915E-02 4.7380959292253E-02 4.7380958221576E-02 -(PID.TID 0000.0001) grdchk output (g): 8 5.3533869698308E-06 5.3536293030274E-06 4.5265217838097E-05 +(PID.TID 0000.0001) grdchk output (c): 8 4.7380958756915E-02 4.7380959292254E-02 4.7380958221576E-02 +(PID.TID 0000.0001) grdchk output (g): 8 5.3533893984437E-06 5.3533873360964E-06 -3.8524155776543E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 9 5 5 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 9 4.7380958756915E-02 4.7380957655119E-02 4.7380959858710E-02 -(PID.TID 0000.0001) grdchk output (g): 9 -1.1017958212456E-05 -1.1017842075606E-05 -1.0540798169645E-05 +(PID.TID 0000.0001) grdchk output (c): 9 4.7380958756915E-02 4.7380957655119E-02 4.7380959858711E-02 +(PID.TID 0000.0001) grdchk output (g): 9 -1.1017960710458E-05 -1.1017958751835E-05 -1.7776641447753E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 9 ratios = 3.3457420674422E-03 +(PID.TID 0000.0001) grdchk summary : RMS of 9 ratios = 6.0856797436777E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.7309757885523140 -(PID.TID 0000.0001) System time: 5.69920017151162028E-002 -(PID.TID 0000.0001) Wall clock time: 6.8253028392791748 +(PID.TID 0000.0001) User time: 4.0585887772031128 +(PID.TID 0000.0001) System time: 0.32397300004959106 +(PID.TID 0000.0001) Wall clock time: 4.4770350456237793 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.59970005042850971E-002 -(PID.TID 0000.0001) System time: 4.00000007357448339E-003 -(PID.TID 0000.0001) Wall clock time: 2.07171440124511719E-002 +(PID.TID 0000.0001) User time: 2.4221999803557992E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.11255812644958496 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 1.9417050089687109 -(PID.TID 0000.0001) System time: 1.59970005042850971E-002 -(PID.TID 0000.0001) Wall clock time: 1.9753050804138184 +(PID.TID 0000.0001) User time: 1.2736099883913994 +(PID.TID 0000.0001) System time: 0.22003400325775146 +(PID.TID 0000.0001) Wall clock time: 1.4949159622192383 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 5.2022156845778227 -(PID.TID 0000.0001) System time: 3.29949958249926567E-002 -(PID.TID 0000.0001) Wall clock time: 5.2477381229400635 +(PID.TID 0000.0001) User time: 3.0602178350090981 +(PID.TID 0000.0001) System time: 0.12373813055455685 +(PID.TID 0000.0001) Wall clock time: 3.1888115406036377 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.3047213256359100E-002 +(PID.TID 0000.0001) System time: 1.9289162009954453E-003 +(PID.TID 0000.0001) Wall clock time: 7.5085639953613281E-002 +(PID.TID 0000.0001) No. starts: 4000 +(PID.TID 0000.0001) No. stops: 4000 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.69940155744552612E-002 -(PID.TID 0000.0001) System time: 2.99899652600288391E-003 -(PID.TID 0000.0001) Wall clock time: 5.26711940765380859E-002 +(PID.TID 0000.0001) User time: 4.1944675147533417E-002 +(PID.TID 0000.0001) System time: 1.2140553444623947E-003 +(PID.TID 0000.0001) Wall clock time: 4.3196201324462891E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.99971199035644531E-002 -(PID.TID 0000.0001) System time: 1.99999660253524780E-003 -(PID.TID 0000.0001) Wall clock time: 1.95782184600830078E-002 -(PID.TID 0000.0001) No. starts: 2200 -(PID.TID 0000.0001) No. stops: 2200 +(PID.TID 0000.0001) User time: 1.4983575791120529E-002 +(PID.TID 0000.0001) System time: 5.2097905427217484E-004 +(PID.TID 0000.0001) Wall clock time: 1.5368938446044922E-002 +(PID.TID 0000.0001) No. starts: 2100 +(PID.TID 0000.0001) No. stops: 2100 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.69982910156250000E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.77040100097656250E-002 +(PID.TID 0000.0001) User time: 1.3945963233709335E-002 +(PID.TID 0000.0001) System time: 4.1600968688726425E-004 +(PID.TID 0000.0001) Wall clock time: 1.4355182647705078E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.29974836111068726E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.65176296234130859E-002 +(PID.TID 0000.0001) User time: 1.9279345870018005E-002 +(PID.TID 0000.0001) System time: 5.3880177438259125E-004 +(PID.TID 0000.0001) Wall clock time: 1.9876480102539062E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.25596458837389946 -(PID.TID 0000.0001) System time: 9.98999923467636108E-004 -(PID.TID 0000.0001) Wall clock time: 0.25967788696289063 +(PID.TID 0000.0001) User time: 7.4776887893676758E-002 +(PID.TID 0000.0001) System time: 6.3510360196232796E-003 +(PID.TID 0000.0001) Wall clock time: 8.1377983093261719E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.3007964361459017 -(PID.TID 0000.0001) System time: 9.99998301267623901E-004 -(PID.TID 0000.0001) Wall clock time: 1.2965686321258545 +(PID.TID 0000.0001) User time: 0.71159258484840393 +(PID.TID 0000.0001) System time: 3.6147955805063248E-002 +(PID.TID 0000.0001) Wall clock time: 0.74937868118286133 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.0676842872053385 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.0786428451538086 +(PID.TID 0000.0001) User time: 1.1223499178886414 +(PID.TID 0000.0001) System time: 3.9748030714690685E-002 +(PID.TID 0000.0001) Wall clock time: 1.1655044555664062 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.67990512028336525 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.68685746192932129 +(PID.TID 0000.0001) User time: 0.41086920723319054 +(PID.TID 0000.0001) System time: 1.0109959170222282E-002 +(PID.TID 0000.0001) Wall clock time: 0.42424750328063965 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10697907209396362 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.10894584655761719 +(PID.TID 0000.0001) User time: 6.6359765827655792E-002 +(PID.TID 0000.0001) System time: 5.2320184186100960E-003 +(PID.TID 0000.0001) Wall clock time: 7.1773529052734375E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.99877515435218811E-002 -(PID.TID 0000.0001) System time: 9.99998301267623901E-004 -(PID.TID 0000.0001) Wall clock time: 7.23145008087158203E-002 +(PID.TID 0000.0001) User time: 5.4230947047472000E-002 +(PID.TID 0000.0001) System time: 1.2470362707972527E-003 +(PID.TID 0000.0001) Wall clock time: 5.5697441101074219E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.09968984127044678E-002 -(PID.TID 0000.0001) System time: 9.99998301267623901E-004 -(PID.TID 0000.0001) Wall clock time: 1.82201862335205078E-002 +(PID.TID 0000.0001) User time: 1.4368090778589249E-002 +(PID.TID 0000.0001) System time: 3.2502971589565277E-004 +(PID.TID 0000.0001) Wall clock time: 1.4770269393920898E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.18897582776844501 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.19267058372497559 -(PID.TID 0000.0001) No. starts: 2000 -(PID.TID 0000.0001) No. stops: 2000 -(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.79959982633590698E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.83589458465576172E-002 +(PID.TID 0000.0001) User time: 0.10980468243360519 +(PID.TID 0000.0001) System time: 7.5349854305386543E-003 +(PID.TID 0000.0001) Wall clock time: 0.11745858192443848 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.00000607967376709E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.03985786437988281E-003 +(PID.TID 0000.0001) User time: 5.2849948406219482E-003 +(PID.TID 0000.0001) System time: 1.2000091373920441E-005 +(PID.TID 0000.0001) Wall clock time: 5.3167343139648438E-003 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.99847447872161865E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.48739147186279297E-002 +(PID.TID 0000.0001) User time: 6.0537267476320267E-002 +(PID.TID 0000.0001) System time: 1.4508748427033424E-003 +(PID.TID 0000.0001) Wall clock time: 6.2090158462524414E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.49997174739837646E-002 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 1.94997787475585938E-002 +(PID.TID 0000.0001) User time: 1.5900246798992157E-002 +(PID.TID 0000.0001) System time: 3.6405865103006363E-004 +(PID.TID 0000.0001) Wall clock time: 1.6323566436767578E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.89951881766319275E-002 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 1.90870761871337891E-002 +(PID.TID 0000.0001) User time: 1.5203595161437988E-002 +(PID.TID 0000.0001) System time: 3.7203542888164520E-004 +(PID.TID 0000.0001) Wall clock time: 1.5556573867797852E-002 (PID.TID 0000.0001) No. starts: 2000 (PID.TID 0000.0001) No. stops: 2000 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.16377612948417664 +(PID.TID 0000.0001) System time: 9.3468081206083298E-002 +(PID.TID 0000.0001) Wall clock time: 0.25743818283081055 +(PID.TID 0000.0001) No. starts: 201 +(PID.TID 0000.0001) No. stops: 201 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 6.6304206848144531E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.63144683837890625E-004 +(PID.TID 0000.0001) Wall clock time: 6.6518783569335938E-004 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.00004673004150391E-003 +(PID.TID 0000.0001) User time: 3.6096572875976562E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.80890274047851563E-004 +(PID.TID 0000.0001) Wall clock time: 3.6096572875976562E-004 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 4.7712737321853638 -(PID.TID 0000.0001) System time: 3.69950011372566223E-002 -(PID.TID 0000.0001) Wall clock time: 4.8281531333923340 +(PID.TID 0000.0001) User time: 2.7596137523651123 +(PID.TID 0000.0001) System time: 0.10393899679183960 +(PID.TID 0000.0001) Wall clock time: 2.8684470653533936 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.29988193511962891E-002 -(PID.TID 0000.0001) System time: 4.00000065565109253E-003 -(PID.TID 0000.0001) Wall clock time: 2.67493724822998047E-002 +(PID.TID 0000.0001) User time: 1.3819932937622070E-002 +(PID.TID 0000.0001) System time: 8.2500278949737549E-004 +(PID.TID 0000.0001) Wall clock time: 1.4664649963378906E-002 (PID.TID 0000.0001) No. starts: 18 (PID.TID 0000.0001) No. stops: 18 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 4.7542759180068970 -(PID.TID 0000.0001) System time: 2.99959983676671982E-002 -(PID.TID 0000.0001) Wall clock time: 4.7940676212310791 +(PID.TID 0000.0001) User time: 2.7395421266555786 +(PID.TID 0000.0001) System time: 0.10262998938560486 +(PID.TID 0000.0001) Wall clock time: 2.8470666408538818 (PID.TID 0000.0001) No. starts: 18 (PID.TID 0000.0001) No. stops: 18 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 4.7062898874282837 -(PID.TID 0000.0001) System time: 2.99959983676671982E-002 -(PID.TID 0000.0001) Wall clock time: 4.7474315166473389 +(PID.TID 0000.0001) User time: 2.7064201831817627 +(PID.TID 0000.0001) System time: 0.10138688981533051 +(PID.TID 0000.0001) Wall clock time: 2.8126897811889648 (PID.TID 0000.0001) No. starts: 1800 (PID.TID 0000.0001) No. stops: 1800 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.99927520751953125E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.50677490234375000E-004 +(PID.TID 0000.0001) User time: 5.5289268493652344E-004 +(PID.TID 0000.0001) System time: 4.6998262405395508E-005 +(PID.TID 0000.0001) Wall clock time: 6.0033798217773438E-004 (PID.TID 0000.0001) No. starts: 18 (PID.TID 0000.0001) No. stops: 18 (PID.TID 0000.0001) // ====================================================== @@ -4483,9 +4487,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 183824 +(PID.TID 0000.0001) // No. barriers = 189288 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 183824 +(PID.TID 0000.0001) // Total barrier spins = 189288 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/bottom_ctrl_5x5/results/output_tlm.facg2d.txt.gz b/verification/bottom_ctrl_5x5/results/output_tlm.facg2d.txt.gz new file mode 100644 index 0000000000..842782d4ab Binary files /dev/null and b/verification/bottom_ctrl_5x5/results/output_tlm.facg2d.txt.gz differ diff --git a/verification/bottom_ctrl_5x5/results/output_tlm.txt.gz b/verification/bottom_ctrl_5x5/results/output_tlm.txt.gz index 0a0e48414b..2d66f18ac4 100644 Binary files a/verification/bottom_ctrl_5x5/results/output_tlm.txt.gz and b/verification/bottom_ctrl_5x5/results/output_tlm.txt.gz differ diff --git a/verification/cfc_example/code/SIZE.h b/verification/cfc_example/code/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/cfc_example/code/SIZE.h +++ b/verification/cfc_example/code/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/cfc_example/code/SIZE.h_mpi b/verification/cfc_example/code/SIZE.h_mpi index be8c7f58a3..b2af686e05 100644 --- a/verification/cfc_example/code/SIZE.h_mpi +++ b/verification/cfc_example/code/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/cpl_aim+ocn/README.md b/verification/cpl_aim+ocn/README.md new file mode 100644 index 0000000000..a580ac360a --- /dev/null +++ b/verification/cpl_aim+ocn/README.md @@ -0,0 +1,60 @@ +Atmosphere-Ocean coupled set-up example "cpl_aim+ocn" +================================================================================ +using simplified atmospheric physics (AIM), in realistic configuration (orography +& continent) with land and seaice component, on cubed-sphere (cs-32) grid. + +### Overview: +Uses "in-house" MITgcm coupler
+(pkg/atm_ocn_coupler, pkg/compon_communic, pkg/atm_compon_interf, pkg/ocn_compon_interf )
+with each component config and customized src code in: code_cpl, code_atm, code_ocn ;
+and input parameter files in: input_cpl, input_atm, input_ocn. + +- Atmos set-up and parameter is similar to "aim_5l_cs/" experiment +- Ocean set-up and parameter is similar to "global_ocean.cs32x15/" experiment + +Requires the use of MPI; as default, use 1 proc for each component. + +### Instructions: +To clean everything: +``` + ../../tools/run_cpl_test 0 +``` + +Configure and compile, e.g., using gfortran optfile: +``` + ../../tools/run_cpl_test 1 -of ../../tools/build_options/linux_amd64_gfortran +``` + +To run primary setup, thermodynamic seaice only (no seaice dynamics): +``` + ../../tools/run_cpl_test 2 + ../../tools/run_cpl_test 3 +``` +Step 2 above copies input files and directories, step 3 runs the coupled model. + +To run secondary test (with seaice dynamics as part of ocean component), using input parameter files in: input_cpl.icedyn, input_atm.icedyn, input_ocn.icedyn: +``` + ../../tools/run_cpl_test 2 icedyn + ../../tools/run_cpl_test 3 +``` + +Results are written in rank_{0,1,2} dir, for coupler, ocean and atmos comp. respectively + +There is comparison output corresponding to primary set-up in the directory:
+ *results/atmSTDOUT.0000* & *results/ocnSTDOUT.0000*
+and for secondary test, in the same directory:
+ *results/atmSTDOUT.icedyn* & *results/ocnSTDOUT.icedyn* + +Note:
+To check the results, monitor output could be compared to reference (in results/) using "run_cpl_test", step 4.
+For primary set-up: +``` + ../../tools/run_cpl_test 4 +``` +and for secondary test: +``` + ../../tools/run_cpl_test 4 icedyn +``` +but this requires, in your path, a simple comparison script "comp_res" +(which is not provided here but could be found in: + http://wwwcvs.mitgcm.org/viewvc/MITgcm/MITgcm_contrib/jmc_script/ ), along with some other files found in this archive. diff --git a/verification/cpl_aim+ocn/code_atm/DIAGNOSTICS_SIZE.h b/verification/cpl_aim+ocn/code_atm/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..fbb8fcd3fb --- /dev/null +++ b/verification/cpl_aim+ocn/code_atm/DIAGNOSTICS_SIZE.h @@ -0,0 +1,27 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numDiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numDiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numDiags = 40*Nr ) + PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/cpl_aim+ocn/code_atm/packages.conf b/verification/cpl_aim+ocn/code_atm/packages.conf index 1edb149a2c..38be9d75dc 100644 --- a/verification/cpl_aim+ocn/code_atm/packages.conf +++ b/verification/cpl_aim+ocn/code_atm/packages.conf @@ -9,6 +9,6 @@ shap_filt aim_v23 land thsice + diagnostics timeave -mnc diff --git a/verification/cpl_aim+ocn/code_ocn/DIAGNOSTICS_SIZE.h b/verification/cpl_aim+ocn/code_ocn/DIAGNOSTICS_SIZE.h index d80a85f217..fbb8fcd3fb 100644 --- a/verification/cpl_aim+ocn/code_ocn/DIAGNOSTICS_SIZE.h +++ b/verification/cpl_aim+ocn/code_ocn/DIAGNOSTICS_SIZE.h @@ -22,7 +22,6 @@ C and "diagSt_size" (statistics-diags) since values here are deliberately small PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) PARAMETER( diagSt_size = 10*Nr ) - CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/verification/cpl_aim+ocn/code_ocn/SEAICE_OPTIONS.h b/verification/cpl_aim+ocn/code_ocn/SEAICE_OPTIONS.h new file mode 100644 index 0000000000..4cc1e1b511 --- /dev/null +++ b/verification/cpl_aim+ocn/code_ocn/SEAICE_OPTIONS.h @@ -0,0 +1,272 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +C *==========================================================* +C | SEAICE_OPTIONS.h +C | o CPP options file for sea ice package. +C *==========================================================* +C | Use this file for selecting options within the sea ice +C | package. +C *==========================================================* + +#ifdef ALLOW_SEAICE +C--- Package-specific Options & Macros go here + +C-- Write "text-plots" of certain fields in STDOUT for debugging. +#undef SEAICE_DEBUG + +C-- By default, the sea-ice package uses its own integrated bulk +C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over +C open-ocean. When this flag is set, these variables are computed +C in a separate external package, for example, pkg/exf, and then +C modified for sea-ice effects by pkg/seaice. +#define SEAICE_EXTERNAL_FLUXES + +C-- This CPP flag has been retired. The number of ice categories +C used to solve for seaice flux is now specified by run-time +C parameter SEAICE_multDim. +C Note: be aware of pickup_seaice.* compatibility issues when +C restarting a simulation with a different number of categories. +c#define SEAICE_MULTICATEGORY + +C-- run with sea Ice Thickness Distribution (ITD); +C set number of categories (nITD) in SEAICE_SIZE.h +#undef SEAICE_ITD + +C-- Since the missing sublimation term is now included +C this flag is needed for backward compatibility +#undef SEAICE_DISABLE_SUBLIM + +C-- Suspected missing term in coupled ocn-ice heat budget (to be confirmed) +#undef SEAICE_DISABLE_HEATCONSFIX + +C-- Default is constant seaice salinity (SEAICE_salt0); Define the following +C flag to consider (space & time) variable salinity: advected and forming +C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. +C- Note: SItracer also offers an alternative way to handle variable salinity. +#undef SEAICE_VARIABLE_SALINITY + +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). +C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice +C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. +#undef SEAICE_GREASE + +C-- Tracers of ice and/or ice cover. +#ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER +# define ALLOW_SITRACER +#else +# undef ALLOW_SITRACER +#endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). + +C-- Historically, the seaice model was discretized on a B-Grid. This +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. +#define SEAICE_CGRID + +#ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + +C enable advection of sea ice momentum +# undef SEAICE_ALLOW_MOM_ADVECTION + +C enable JFNK code by defining the following flag +# define SEAICE_ALLOW_JFNK + +C enable Krylov code by defining the following flag +# define SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + +C enable LSR to use global (multi-tile) tri-diagonal solver +# undef SEAICE_GLOBAL_3DIAG_SOLVER + +C enable EVP code by defining the following flag +# undef SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C from below and above in seaice_evp: not necessary, and not recommended +# undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL +# endif /* SEAICE_ALLOW_EVP */ + +C smooth regularization (without max-function) of delta for +C better differentiability +# undef SEAICE_DELTA_SMOOTHREG + +C regularize zeta to zmax with a smooth tanh-function instead +C of a min(zeta,zmax). This improves convergence of iterative +C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP +# define SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework +C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) +# undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings +C Use LSR vector code; not useful on non-vector machines, because it +C slows down convergence considerably, but the extra iterations are +C more than made up by the much faster code on vector machines. For +C the only regularly test vector machine these flags a specified +C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment +C them out here. +# undef SEAICE_VECTORIZE_LSR + +C Use zebra-method (alternate lines) for line-successive-relaxation +C This modification improves the convergence of the vector code +C dramatically, so that is may actually be useful in general, but +C that needs to be tested. Can be used without vectorization options. +# undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + +C Use parameterisation of grounding ice for a better representation +C of fastice in shallow seas +# undef SEAICE_ALLOW_BOTTOMDRAG + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is +C set to the same value as it would be if there was no sea-ice. +C Define following CPP flag for B-grid ice-ocean stress coupling. +# define SEAICE_BICE_STRESS + +C- By default for B-grid dynamics solver surface tilt is obtained +C indirectly via geostrophic velocities. Define following CPP +C in order to use ETAN instead. +# define EXPLICIT_SSH_SLOPE + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. +C It is smoother and includes all metric terms, similar to C-grid solvers. +C It is here for completeness, but its usefulness is unclear. +# undef SEAICE_LSRBNEW + +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#undef SEAICE_CAP_ICELOAD + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, +C not recommended +#define SEAICE_ALLOW_CLIPVELS + +C- When set cap the sublimation latent heat flux in solve4temp according +C to the available amount of ice+snow. Otherwise this term is treated +C like all of the others -- residuals heat and fw stocks are passed to +C the ocean at the end of seaice_growth in a conservative manner. +C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. +#undef SEAICE_CAP_SUBLIM + +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + +C-- Enable free drift code +#undef SEAICE_ALLOW_FREEDRIFT + +C-- pkg/seaice cost functions compile flags +C- Sea-ice volume (requires pkg/cost) +#undef ALLOW_COST_ICE +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ + +#endif /* ALLOW_SEAICE */ +#endif /* SEAICE_OPTIONS_H */ diff --git a/verification/cpl_aim+ocn/code_ocn/SIZE.h b/verification/cpl_aim+ocn/code_ocn/SIZE.h index ccdb6099a9..581d3d1c92 100644 --- a/verification/cpl_aim+ocn/code_ocn/SIZE.h +++ b/verification/cpl_aim+ocn/code_ocn/SIZE.h @@ -44,8 +44,8 @@ CEOP PARAMETER ( & sNx = 32, & sNy = 32, - & OLx = 2, - & OLy = 2, + & OLx = 4, + & OLy = 4, & nSx = 6, & nSy = 1, & nPx = 1, diff --git a/verification/cpl_aim+ocn/code_ocn/packages.conf b/verification/cpl_aim+ocn/code_ocn/packages.conf index 576b04ed54..a823de1036 100644 --- a/verification/cpl_aim+ocn/code_ocn/packages.conf +++ b/verification/cpl_aim+ocn/code_ocn/packages.conf @@ -5,6 +5,9 @@ compon_communic gfd gmredi +thsice +seaice +salt_plume + diagnostics timeave -mnc diff --git a/verification/cpl_aim+ocn/input_atm.icedyn/data.diagnostics b/verification/cpl_aim+ocn/input_atm.icedyn/data.diagnostics new file mode 100644 index 0000000000..50176a83fb --- /dev/null +++ b/verification/cpl_aim+ocn/input_atm.icedyn/data.diagnostics @@ -0,0 +1,84 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., +#-- + fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','SRELAX ', +# 'TRELAX ','oceFreez', +# fileName(1) = 'surfDiag', + frequency(1) = 31104000., + + fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'VVELMASS','UVELMASS','WVELSQ ', + 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', + 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +# fileName(2) = 'dynDiag', + frequency(2) = 31104000., + + fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', + 'DFxE_TH ','DFyE_TH ','DFrE_TH ', + 'DFrI_TH ', +# 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 31104000., + fields(1:11,5) = 'SI_Fract','SI_Thick', + 'CPL_MxlD','CPL_SST ','CPL_SSS ','CPL_Vel2', + 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', + fileName(5) = 'iceDiag', + frequency(5) = -3600., + timePhase(5) = 0., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS + stat_fields(1:14,1) = 'ETAN ','DETADT2 ','THETA ','SALT ', + 'UE_VEL_C','VN_VEL_C','WVEL ', + 'oceTAUX ','oceTAUY ','oceFWflx','oceQnet ', + 'SRELAX ','oceSflux','sIceLoad', +# 'TRELAX ','oceFreez','oceQsw ', +# stat_fName(1) = 'dynStDiag', + stat_freq(1) = 864000., + stat_freq(1) = 18000., +# stat_phase(1) = 0., + stat_fields(1:11,2) = 'SI_Fract','SI_Thick', + 'CPL_MxlD','CPL_SST ','CPL_SSS ','CPL_Vel2', + 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', + stat_fName(2) = 'iceStDiag', + stat_freq(2) = -3600., + stat_phase(2) = 0., + & + diff --git a/verification/cpl_aim+ocn/input_atm.icedyn/data.ice b/verification/cpl_aim+ocn/input_atm.icedyn/data.ice new file mode 100644 index 0000000000..e239750833 --- /dev/null +++ b/verification/cpl_aim+ocn/input_atm.icedyn/data.ice @@ -0,0 +1,27 @@ + &THSICE_CONST + Tf0kel = 273.15, + rhosw = 1030., +#- with LANL albedo: +#albWarmSnow= 0.75, + iceMaskMin = 0.001, + hThinIce = 0.1, + hiMax = 10., + hsMax = 10., +#albIceMax = 0.7, +#albIceMin = 0.7, + & + + &THSICE_PARM01 +#startIceModel=1, +#stepFwd_oceMxL=.TRUE., + ocean_deltaT=3600., +#tauRelax_MxL=5184000., +#thSIceAdvScheme=1, +#thSIce_diffK =800., + stressReduction=0., +#thSIce_taveFreq=2592000., + thSIce_diagFreq=5184000., +#thSIce_monFreq=864000., +#thSIce_diagFreq=0., + & + diff --git a/verification/cpl_aim+ocn/input_atm.icedyn/data.pkg b/verification/cpl_aim+ocn/input_atm.icedyn/data.pkg new file mode 100644 index 0000000000..0c8c364028 --- /dev/null +++ b/verification/cpl_aim+ocn/input_atm.icedyn/data.pkg @@ -0,0 +1,12 @@ +# Packages +# useAIM :: use Atmospheric Intermediate complexity Model +# useLand :: use (simple) Land package to compute surf. BC over land +# useThSIce :: use Therm. SeaIce package (+slab ocean) + &PACKAGES + useAIM=.TRUE., + useLand=.TRUE., + useThSIce=.TRUE., + useSHAP_FILT=.TRUE., + useDiagnostics=.TRUE., +#useMNC=.TRUE., + & diff --git a/verification/cpl_aim+ocn/input_atm/data b/verification/cpl_aim+ocn/input_atm/data index 209bab9098..a472612ded 100644 --- a/verification/cpl_aim+ocn/input_atm/data +++ b/verification/cpl_aim+ocn/input_atm/data @@ -30,6 +30,7 @@ readBinaryPrec=64, writeBinaryPrec=64, debugLevel=2, + plotLevel=0, & # Elliptic solver parameters diff --git a/verification/cpl_aim+ocn/input_atm/prepare_run b/verification/cpl_aim+ocn/input_atm/prepare_run index a4accd6833..845d6b4aac 100755 --- a/verification/cpl_aim+ocn/input_atm/prepare_run +++ b/verification/cpl_aim+ocn/input_atm/prepare_run @@ -5,14 +5,14 @@ fromDir="../../aim.5l_cs/input.thSI" # link files: fileList=`(cd $fromDir ; ls *.bin)` -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -22,20 +22,20 @@ if test -d $fromDir ; then else echo " Error:" $fromDir "not a directory" fi - + #- in order to save disc space, from this dir: fromDir='../../tutorial_held_suarez_cs/input' # link files: fileList=`(cd $fromDir ; ls *.face00?.bin)` -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/cpl_aim+ocn/input_cpl.icedyn/data.cpl b/verification/cpl_aim+ocn/input_cpl.icedyn/data.cpl new file mode 100644 index 0000000000..f7aeee47e0 --- /dev/null +++ b/verification/cpl_aim+ocn/input_cpl.icedyn/data.cpl @@ -0,0 +1,27 @@ +# ATM+OCN Coupler package parameters: +# cpl_sequential :: =0/1 : selects Synchronous/Sequential Coupling +#-- cpl_exchange_[xxx] :: controls exchange of [xxx] fields with OCN & ATM components +# :: =0 : none ; =1,3 : exch [xxx] fields with OCN comp. +# :: =2,3 : exch [xxx] fileds with ATM comp. +# cpl_exchange_RunOff :: controls exchange of RunOff fields +# cpl_exchange1W_sIce :: controls 1-way exchange of seaice (step fwd in ATM) +# cpl_exchange2W_sIce :: controls 2-way exchange of ThSIce variables +# cpl_exchange_SaltPl :: controls exchange of Salt-Plume fields +# cpl_exchange_DIC :: controls exchange of DIC variables +#-- +# runOffMapSize :: Nb of connection in the runOff map (nROmap) +# runOffMapFile :: File name for the runOff map (max_length= 80c) +#-- IMPORTANT: Unlike other MITgcm parameter files, this namelist is read-in +# directly without prior removing of commented lines (i.e., starting with "#") +#------------- + &COUPLER_PARAMS + runOffMapSize = 3644, + runOffMapFile = 'runOff_cs32_3644.bin', + cpl_sequential = 1, + cpl_exchange_RunOff = 2, + cpl_exchange1W_sIce = 3, + cpl_exchange2W_sIce = 3, + cpl_exchange_SaltPl = 0, + cpl_exchange_DIC = 0, + / + diff --git a/verification/cpl_aim+ocn/input_ocn.icedyn/data.diagnostics b/verification/cpl_aim+ocn/input_ocn.icedyn/data.diagnostics new file mode 100644 index 0000000000..facffccf86 --- /dev/null +++ b/verification/cpl_aim+ocn/input_ocn.icedyn/data.diagnostics @@ -0,0 +1,95 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., +#-- + fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','SRELAX ', +# 'TRELAX ','oceFreez', +# fileName(1) = 'surfDiag', + frequency(1) = 31104000., + + fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'VVELMASS','UVELMASS','WVELSQ ', + 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', + 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +# fileName(2) = 'dynDiag', + frequency(2) = 31104000., + + fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', + 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +# 'GM_PsiX ','GM_PsiY ', +# levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +# fileName(3) = 'oceDiag', + frequency(3) = 31104000., + + fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', + 'DFxE_TH ','DFyE_TH ','DFrE_TH ', + 'DFrI_TH ', +# 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 31104000., + fields(1:4,5) = 'SI_Fract','SI_Thick','SI_AdvFr','SI_AdvHi', +# 'CPL_SLPr','CPL_Qnet','CPL_Qsw ', +# 'CPL_tauX','CPL_tauY','CPL_sFlx','CPL_iceM', +# 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', + fileName(5) = 'iceDiag', + frequency(5) = -3600., + timePhase(5) = 0., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS + stat_fields(1:16,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', + 'DRHODR ','UE_VEL_C','VN_VEL_C','WVEL ', + 'oceTAUX ','oceTAUY ','oceFWflx','oceQnet ', + 'SRELAX ','oceSflux','sIceLoad', +# 'TRELAX ','oceFreez','oceQsw ', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = 864000., + stat_freq(1) = 18000., +# stat_phase(1) = 0., + stat_fields(1:16,2) = 'SI_Fract','SI_Thick','SI_AdvFr','SI_AdvHi', + 'CPL_SLPr','CPL_Qnet','CPL_Qsw ', + 'CPL_tauX','CPL_tauY','CPL_sFlx','CPL_iceM', + 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', +# 'CPL_sPlm','oceSPflx','oceSPDep', +# 'CPL_sPlm','CPL_RnOf','CPL_aCO2','CPL_wSpd','CPL_icFr', + stat_fName(2) = 'iceStDiag', + stat_freq(2) = -3600., + stat_phase(2) = 0., + & + diff --git a/verification/cpl_aim+ocn/input_ocn.icedyn/data.ice b/verification/cpl_aim+ocn/input_ocn.icedyn/data.ice new file mode 100644 index 0000000000..7462025765 --- /dev/null +++ b/verification/cpl_aim+ocn/input_ocn.icedyn/data.ice @@ -0,0 +1,33 @@ + &THSICE_CONST +#- with fractional ice: + iceMaskMin = 0.001, + hiMax = 10., + hsMax = 10., + dhSnowLin = 0.1, + fracEnFreez= 0.4, + hNewIceMax = 1., +#albIceMax = 0.6, +#albIceMin = 0.6, +#albColdSnow= 0.85, +#albWarmSnow= 0.60, +#tempSnowAlb= -5., +#albOldSnow = 0.60, +#hNewSnowAge= 2.e-3, +#snowAgTime = 4320000., +#hAlbIce = 0.44, +#hAlbSnow = 0.15, + & + + &THSICE_PARM01 +#StartIceModel=1, + thSIce_skipThermo=.TRUE., + thSIceAdvScheme=77, +#thSIce_diffK =800., + stressReduction=0., +#thSIceFract_InitFile='const100.bin', +#thSIceThick_InitFile='const+20.bin', +#thSIce_diagFreq=2592000., +#thSIce_monFreq =21600., +#thSIce_monFreq =3600., + & + diff --git a/verification/cpl_aim+ocn/input_ocn.icedyn/data.pkg b/verification/cpl_aim+ocn/input_ocn.icedyn/data.pkg new file mode 100644 index 0000000000..554cf2b847 --- /dev/null +++ b/verification/cpl_aim+ocn/input_ocn.icedyn/data.pkg @@ -0,0 +1,9 @@ +# Packages + &PACKAGES + useGMRedi=.TRUE., + useThSIce=.TRUE., + useSEAICE=.TRUE., +#useSALT_PLUME =.TRUE., + useDiagnostics=.TRUE., +#useMNC=.TRUE., + & diff --git a/verification/cpl_aim+ocn/input_ocn.icedyn/data.salt_plume b/verification/cpl_aim+ocn/input_ocn.icedyn/data.salt_plume new file mode 100644 index 0000000000..b2351e2f6c --- /dev/null +++ b/verification/cpl_aim+ocn/input_ocn.icedyn/data.salt_plume @@ -0,0 +1,3 @@ + &SALT_PLUME_PARM01 + SaltPlumeCriterion = 0.4, + & diff --git a/verification/cpl_aim+ocn/input_ocn.icedyn/data.seaice b/verification/cpl_aim+ocn/input_ocn.icedyn/data.seaice new file mode 100644 index 0000000000..086a28c3bd --- /dev/null +++ b/verification/cpl_aim+ocn/input_ocn.icedyn/data.seaice @@ -0,0 +1,24 @@ +# SEAICE parameters + &SEAICE_PARM01 + usePW79thermodynamics=.FALSE., + SEAICE_strength = 2.6780e+04, +#OCEAN_drag = 8.1541e-04, +# use same Air/Ocean drag than Air/sIce drag (like in AIM): + OCEAN_drag = 2.E-3, + SEAICE_no_Slip = .FALSE., + LSR_ERROR = 1.E-12, + SEAICElinearIterMax= 1500, +#LSR_mixIniGuess = 1, + SEAICEwriteState = .TRUE., + SEAICE_monFreq = 3600., +# old defaults: + SEAICE_waterDrag = 5.195E-3, + SEAICE_drag = 2.E-3, + SEAICEscaleSurfStress = .FALSE., + SEAICE_Olx = 0, + SEAICE_Oly = 0, + SEAICEetaZmethod = 0, + & + + &SEAICE_PARM03 + & diff --git a/verification/cpl_aim+ocn/input_ocn/data b/verification/cpl_aim+ocn/input_ocn/data index be29ba71c8..1c071aee97 100644 --- a/verification/cpl_aim+ocn/input_ocn/data +++ b/verification/cpl_aim+ocn/input_ocn/data @@ -36,6 +36,7 @@ readBinaryPrec=64, writeBinaryPrec=64, debugLevel=2, + plotLevel=0, & # Elliptic solver parameters diff --git a/verification/cpl_aim+ocn/input_ocn/data.gmredi b/verification/cpl_aim+ocn/input_ocn/data.gmredi index 61e55691b8..fa1ce373de 100644 --- a/verification/cpl_aim+ocn/input_ocn/data.gmredi +++ b/verification/cpl_aim+ocn/input_ocn/data.gmredi @@ -6,13 +6,13 @@ # GM_Scrit : transition for scaling diffusion coefficient # GM_Sd : half width scaling for diffusion coefficient # GM_taper_scheme: slope clipping or one of the tapering schemes -# GM_Kmin_horiz : horizontal diffusion minimum value +# GM_Kmin_horiz : horizontal diffusion minimum value #-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") # GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) # GM_AdvForm : turn on GM Advective form (default=Skew flux form) - &GM_PARM01 + &GM_PARM01 GM_background_K = 800., GM_taper_scheme = 'gkw91', GM_maxSlope = 1.e-2, @@ -25,4 +25,3 @@ # GM_Visbeck_maxval_K= 2.5e+3, & - diff --git a/verification/cpl_aim+ocn/input_ocn/prepare_run b/verification/cpl_aim+ocn/input_ocn/prepare_run index 85f7d42a4b..71c902bfde 100755 --- a/verification/cpl_aim+ocn/input_ocn/prepare_run +++ b/verification/cpl_aim+ocn/input_ocn/prepare_run @@ -5,14 +5,14 @@ fromDir="../../global_ocean.cs32x15/input" # link files: fileList=`(cd $fromDir ; ls *.bin)` -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -22,20 +22,20 @@ if test -d $fromDir ; then else echo " Error:" $fromDir "not a directory" fi - + #- in order to save disc space, from this dir: fromDir='../../tutorial_held_suarez_cs/input' # link files: fileList=`(cd $fromDir ; ls *.face00?.bin)` -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/cpl_aim+ocn/itrda_notes.txt b/verification/cpl_aim+ocn/itrda_notes.txt deleted file mode 100644 index f1b8805f55..0000000000 --- a/verification/cpl_aim+ocn/itrda_notes.txt +++ /dev/null @@ -1,36 +0,0 @@ - -The commands to run this short test on ITRDA are: - -a) with g77 (GNU) compiler: - - qsub -I -l nodes=3 - cd MITgcm/verification/cpl_aim+ocn/ - source /usr/local/pkg/modules/modules-3.1.6/init/bash - module add mpich/gnu - ./run_cpl_test_itrda 0 - ./run_cpl_test_itrda 1 - ./run_cpl_test_itrda 2 - ./run_cpl_test_itrda 3 - -b) with ifc (intel) compiler: - same as (a) except: - module add mpich/intel - -c) with pgf77 (pgi) compiler: - same as (a) except: - module add mpich/pgi - -Note: - a) to run 1 test after the other, need to unload the previous modules: - module purge - b) might prefer a 2 nodes, 4 cpu session: - qsub -I (-q four-twelve) -l nodes=2:ppn=2 - then do: - cd MITgcm/verification/cpl_aim+ocn/ - cat $PBS_NODEFILE > mf - head -3 mf > loc_nodes - export PBS_NODEFILE=`pwd`/loc_nodes - source /usr/local/pkg/modules/modules-3.1.6/init/bash -and then as usual: - module add ... - diff --git a/verification/cpl_aim+ocn/results/atmSTDOUT.icedyn b/verification/cpl_aim+ocn/results/atmSTDOUT.icedyn new file mode 100644 index 0000000000..e5e7990490 --- /dev/null +++ b/verification/cpl_aim+ocn/results/atmSTDOUT.icedyn @@ -0,0 +1,10055 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68g +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Fri Mar 4 23:28:34 EST 2022 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) ># useCubedSphereExchange :: use Cubed-Sphere type topology for EXCH +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > useCoupler=.TRUE., +(PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., +(PID.TID 0000.0001) >#debugMode=.TRUE., +(PID.TID 0000.0001) ># Activate one line below to support 2, 3 or 6 way multi-threading +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) >#nTx=2, +(PID.TID 0000.0001) >#nTx=3, +(PID.TID 0000.0001) >#nTx=6, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 6 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 32 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 32 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 2 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 2 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 5 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 192 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 32 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 6 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = T ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= T ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) ======= Starting MPI parallel Run ========= +(PID.TID 0000.0001) My Processor Name (len: 6 ) = villon +(PID.TID 0000.0001) Located at ( 0, 0) on processor grid (0: 0,0: 0) +(PID.TID 0000.0001) Origin at ( 1, 1) on global grid (1: 192,1: 32) +(PID.TID 0000.0001) North neighbor = processor 0000 +(PID.TID 0000.0001) South neighbor = processor 0000 +(PID.TID 0000.0001) East neighbor = processor 0000 +(PID.TID 0000.0001) West neighbor = processor 0000 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 6, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: regular 6-facets Cube +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=289.6, 298.1, 314.5, 335.8, 437.4, +(PID.TID 0000.0001) > sRef=5*0., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.FALSE., +(PID.TID 0000.0001) > buoyancyRelation='ATMOSPHERIC', +(PID.TID 0000.0001) > eosType='IDEALG', +(PID.TID 0000.0001) > atm_Rq=0.6078E-3, +(PID.TID 0000.0001) > integr_GeoPot=2, +(PID.TID 0000.0001) > selectFindRoSurf=1, +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > select_rStar=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > uniformLin_PhiSurf=.FALSE., +(PID.TID 0000.0001) > hFacMin=0.2, +(PID.TID 0000.0001) > saltAdvScheme=3, +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > debugLevel=2, +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-12, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-17, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=40, +(PID.TID 0000.0001) ># 10yr: +(PID.TID 0000.0001) >#endTime=311040000., +(PID.TID 0000.0001) > deltaT=450.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB=.FALSE., +(PID.TID 0000.0001) > cAdjFreq=0., +(PID.TID 0000.0001) > pChkptFreq=2592000., +(PID.TID 0000.0001) > taveFreq=2592000., +(PID.TID 0000.0001) > dumpFreq=2592000., +(PID.TID 0000.0001) > monitorFreq=86400., +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCurvilinearGrid=.TRUE., +(PID.TID 0000.0001) > horizGridFile='grid_cs32', +(PID.TID 0000.0001) > radius_fromHorizGrid=6370.E3, +(PID.TID 0000.0001) > delR=100.E2, 250.E2, 300.E2, 200.E2, 150.E2, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > topoFile='topo.cpl_FM.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># useAIM :: use Atmospheric Intermediate complexity Model +(PID.TID 0000.0001) ># useLand :: use (simple) Land package to compute surf. BC over land +(PID.TID 0000.0001) ># useThSIce :: use Therm. SeaIce package (+slab ocean) +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useAIM=.TRUE., +(PID.TID 0000.0001) > useLand=.TRUE., +(PID.TID 0000.0001) > useThSIce=.TRUE., +(PID.TID 0000.0001) > useSHAP_FILT=.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/shap_filt compiled and used ( useSHAP_FILT = T ) + pkg/thsice compiled and used ( useThSIce = T ) + pkg/land compiled and used ( useLand = T ) + pkg/aim_v23 compiled and used ( useAIM = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled and used ( taveFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/compon_communic compiled and used ( useCoupler = T ) + pkg/atm_compon_interf compiled and used ( useCoupler = T ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/atm_common compiled ( used ? ) +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) + CPL_IMPORT_CPLPARMS: Recv parBuf= 1 2 3 3 0 0 +(PID.TID 0000.0001) SHAP_FILT_READPARMS: opening data.shap +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.shap +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.shap" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Shapiro Filter parameters +(PID.TID 0000.0001) > &SHAP_PARM01 +(PID.TID 0000.0001) > shap_filt_uvStar=.FALSE., +(PID.TID 0000.0001) > shap_filt_TrStagg=.TRUE., +(PID.TID 0000.0001) > Shap_funct=2, +(PID.TID 0000.0001) > nShapT=4, +(PID.TID 0000.0001) > nShapUV=4, +(PID.TID 0000.0001) > nShapTrPhys=1, +(PID.TID 0000.0001) > nShapUVPhys=0, +(PID.TID 0000.0001) > Shap_TrLength=140000., +(PID.TID 0000.0001) >#Shap_uvLength=140000., +(PID.TID 0000.0001) > Shap_Trtau=5400., +(PID.TID 0000.0001) > Shap_uvtau=1800., +(PID.TID 0000.0001) >#Shap_diagFreq=2592000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHAP_FILT_READPARMS: finished reading data.shap +(PID.TID 0000.0001) Shap_funct = /* select Shapiro filter function */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nShapT = /* power of Shapiro filter for Temperat */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nShapS = /* power of Shapiro filter for Salinity */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nShapUV = /* power of Shapiro filter for momentum */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) shap_filt_uvStar = /* apply filter before Press. Solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) shap_filt_TrStagg = /* filter T,S before calc PhiHyd (staggerTimeStep) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_alwaysExchUV = /* always exch(U,V) nShapUV times*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_alwaysExchTr = /* always exch(Tracer) nShapTr times*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nShapTrPhys = /* power of physical-space filter (Tracer) */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nShapUVPhys = /* power of physical-space filter (Momentum) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_Trtau = /* time scale of Shapiro filter (Tracer) */ +(PID.TID 0000.0001) 5.400000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_TrLength = /* Length scale of Shapiro filter (Tracer) */ +(PID.TID 0000.0001) 1.400000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_uvtau = /* time scale of Shapiro filter (Momentum) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_uvLength = /* Length scale of Shapiro filter (Momentum) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_noSlip = /* No-slip parameter (0=Free-slip ; 1=No-slip)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Shap_diagFreq = /* Frequency^-1 for diagnostic output (s)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) THSICE_READPARMS: opening data.ice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &THSICE_CONST +(PID.TID 0000.0001) > Tf0kel = 273.15, +(PID.TID 0000.0001) > rhosw = 1030., +(PID.TID 0000.0001) >#- with LANL albedo: +(PID.TID 0000.0001) >#albWarmSnow= 0.75, +(PID.TID 0000.0001) > iceMaskMin = 0.001, +(PID.TID 0000.0001) > hThinIce = 0.1, +(PID.TID 0000.0001) > hiMax = 10., +(PID.TID 0000.0001) > hsMax = 10., +(PID.TID 0000.0001) >#albIceMax = 0.7, +(PID.TID 0000.0001) >#albIceMin = 0.7, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &THSICE_PARM01 +(PID.TID 0000.0001) >#startIceModel=1, +(PID.TID 0000.0001) >#stepFwd_oceMxL=.TRUE., +(PID.TID 0000.0001) > ocean_deltaT=3600., +(PID.TID 0000.0001) >#tauRelax_MxL=5184000., +(PID.TID 0000.0001) >#thSIceAdvScheme=1, +(PID.TID 0000.0001) >#thSIce_diffK =800., +(PID.TID 0000.0001) > stressReduction=0., +(PID.TID 0000.0001) >#thSIce_taveFreq=2592000., +(PID.TID 0000.0001) > thSIce_diagFreq=5184000., +(PID.TID 0000.0001) >#thSIce_monFreq=864000., +(PID.TID 0000.0001) >#thSIce_diagFreq=0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_CONST +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_PARM01 + ThSI: rhos = 3.3000000000000E+02 + ThSI: rhoi = 9.0000000000000E+02 + ThSI: rhosw = 1.0300000000000E+03 + ThSI: rhofw = 1.0000000000000E+03 + ThSI: floodFac = 3.9393939393939E-01 + ThSI: cpIce = 2.1060000000000E+03 + ThSI: cpWater = 3.9940000000000E+03 + ThSI: kIce = 2.0300000000000E+00 + ThSI: kSnow = 3.0000000000000E-01 + ThSI: bMeltCoef = 6.0000000000000E-03 + ThSI: Lfresh = 3.3400000000000E+05 + ThSI: qsnow = 3.3400000000000E+05 + ThSI: albColdSnow = 8.5000000000000E-01 + ThSI: albWarmSnow = 7.0000000000000E-01 + ThSI: tempSnowAlb = -1.0000000000000E+01 + ThSI: albOldSnow = 5.5000000000000E-01 + ThSI: hNewSnowAge = 2.0000000000000E-03 + ThSI: snowAgTime = 4.3200000000000E+06 + ThSI: albIceMax = 6.5000000000000E-01 + ThSI: albIceMin = 2.0000000000000E-01 + ThSI: hAlbIce = 5.0000000000000E-01 + ThSI: hAlbSnow = 3.0000000000000E-01 + ThSI: i0swFrac = 3.0000000000000E-01 + ThSI: ksolar = 1.5000000000000E+00 + ThSI: dhSnowLin = 0.0000000000000E+00 + ThSI: saltIce = 4.0000000000000E+00 + ThSI: S_winton = 1.0000000000000E+00 + ThSI: mu_Tf = 5.4000000000000E-02 + ThSI: Tf0kel = 2.7315000000000E+02 + ThSI: Tmlt1 = -5.4000000000000E-02 + ThSI: Terrmax = 5.0000000000000E-01 + ThSI: nitMaxTsf = 20 + ThSI: hIceMin = 1.0000000000000E-02 + ThSI: hiMax = 1.0000000000000E+01 + ThSI: hsMax = 1.0000000000000E+01 + ThSI: iceMaskMax = 1.0000000000000E+00 + ThSI: iceMaskMin = 1.0000000000000E-03 + ThSI: fracEnMelt = 4.0000000000000E-01 + ThSI: fracEnFreez = 0.0000000000000E+00 + ThSI: hThinIce = 1.0000000000000E-01 + ThSI: hThickIce = 2.5000000000000E+00 + ThSI: hNewIceMax = 1.0000000000000E+01 + ThSI: stressReduction = 0.0000000000000E+00 + ThSI: thSIce_skipThermo = F + ThSI: thSIceAdvScheme = 0 + ThSI: thSIceBalanceAtmFW= 0 + ThSI: thSIce_diffK = 0.0000000000000E+00 + ThSI: thSIce_deltaT = 4.5000000000000E+02 + ThSI: ocean_deltaT = 3.6000000000000E+03 + ThSI: stepFwd_oceMxL = F + ThSI: tauRelax_MxL = 0.0000000000000E+00 + ThSI: tauRelax_MxL_salt = 0.0000000000000E+00 + ThSI: hMxL_default = 5.0000000000000E+01 + ThSI: sMxL_default = 3.5000000000000E+01 + ThSI: vMxL_default = 5.0000000000000E-02 + ThSI: thSIce_taveFreq = 2.5920000000000E+06 + ThSI: thSIce_diagFreq = 5.1840000000000E+06 + ThSI: thSIce_monFreq = 1.0000000000000E+00 + ThSI: startIceModel = 0 +(PID.TID 0000.0001) LAND_READPARMS: opening data.land +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.land +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.land" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Land package parameters: +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Land model parameter (namelist LAND_MODEL_PAR): +(PID.TID 0000.0001) ># land_calc_grT :: step forward ground Temperature +(PID.TID 0000.0001) ># land_calc_grW :: step forward soil moiture +(PID.TID 0000.0001) ># land_impl_grT :: solve ground Temperature implicitly +(PID.TID 0000.0001) ># land_calc_snow :: step forward snow thickness +(PID.TID 0000.0001) ># land_calc_alb :: compute albedo of snow over land +(PID.TID 0000.0001) ># land_oldPickup :: restart from an old pickup (=before checkpoint 52l) +(PID.TID 0000.0001) ># land_grT_iniFile :: File containing initial ground Temp. +(PID.TID 0000.0001) ># land_grW_iniFile :: File containing initial ground Water. +(PID.TID 0000.0001) ># land_snow_iniFile :: File containing initial snow thickness. +(PID.TID 0000.0001) ># land_deltaT :: land model time-step +(PID.TID 0000.0001) ># land_taveFreq :: Frequency^-1 for time-Aver. output (s) +(PID.TID 0000.0001) ># land_diagFreq :: Frequency^-1 for diagnostic output (s) +(PID.TID 0000.0001) ># land_monFreq :: Frequency^-1 for monitor output (s) +(PID.TID 0000.0001) ># land_dzF :: layer thickness +(PID.TID 0000.0001) > &LAND_MODEL_PAR +(PID.TID 0000.0001) ># land_calc_grT =.FALSE., +(PID.TID 0000.0001) ># land_calc_grW =.FALSE., +(PID.TID 0000.0001) ># land_impl_grT =.FALSE., +(PID.TID 0000.0001) ># land_calc_snow=.FALSE., +(PID.TID 0000.0001) ># land_calc_alb =.FALSE., +(PID.TID 0000.0001) > land_grT_iniFile='land_grT_ini.cpl.bin', +(PID.TID 0000.0001) > land_grW_iniFile='land_grW_ini.mn.bin', +(PID.TID 0000.0001) > land_snow_iniFile='land_snw_ini.cpl.bin', +(PID.TID 0000.0001) ># land_oldPickup=.TRUE., +(PID.TID 0000.0001) > land_dzF= 0.1, 4.0, +(PID.TID 0000.0001) ># land_diagFreq=2592000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Physical constants (namelist LAND_PHYS_PAR): +(PID.TID 0000.0001) ># land_grdLambda :: Thermal conductivity of the ground (W/m/K) +(PID.TID 0000.0001) ># land_heatCs :: Heat capacity of dry soil (J/m3/K) +(PID.TID 0000.0001) ># land_CpWater :: Heat capacity of water (J/kg/K) +(PID.TID 0000.0001) ># land_wTauDiff :: soil moisture diffusion time scale +(PID.TID 0000.0001) ># land_waterCap :: field capacity per meter of soil +(PID.TID 0000.0001) ># land_fractRunOff:: fraction of water in excess which run-off +(PID.TID 0000.0001) ># land_rhoLiqW :: density of liquid water (kg/m3) +(PID.TID 0000.0001) ># land_rhoSnow :: density of snow (kg/m3) +(PID.TID 0000.0001) ># land_Lfreez :: Latent heat of freezing (J/kg) +(PID.TID 0000.0001) ># land_hMaxSnow :: Maximum snow-thickness (m) +(PID.TID 0000.0001) ># diffKsnow :: thermal conductivity of snow (W/m/K) +(PID.TID 0000.0001) ># timeSnowAge :: snow aging time scale (s) +(PID.TID 0000.0001) ># hNewSnowAge :: new snow thickness that refresh the snow-age (by 1/e) +(PID.TID 0000.0001) ># albColdSnow :: albedo of cold (=dry) new snow (Tsfc < -10) +(PID.TID 0000.0001) ># albWarmSnow :: albedo of warm (=wet) new snow (Tsfc = 0) +(PID.TID 0000.0001) ># albOldSnow :: albedo of old snow (snowAge > 35.d) +(PID.TID 0000.0001) ># hAlbSnow :: snow thickness for albedo transition: snow/ground +(PID.TID 0000.0001) > &LAND_PHYS_PAR +(PID.TID 0000.0001) ># land_Lfreez=0., +(PID.TID 0000.0001) > land_hMaxSnow=10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) LAND_READPARMS: finished reading data.land +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','SRELAX ', +(PID.TID 0000.0001) ># 'TRELAX ','oceFreez', +(PID.TID 0000.0001) ># fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 31104000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', +(PID.TID 0000.0001) > 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +(PID.TID 0000.0001) ># fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 31104000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DFxE_TH ','DFyE_TH ','DFrE_TH ', +(PID.TID 0000.0001) > 'DFrI_TH ', +(PID.TID 0000.0001) ># 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 31104000., +(PID.TID 0000.0001) > fields(1:11,5) = 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > 'CPL_MxlD','CPL_SST ','CPL_SSS ','CPL_Vel2', +(PID.TID 0000.0001) > 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', +(PID.TID 0000.0001) > fileName(5) = 'iceDiag', +(PID.TID 0000.0001) > frequency(5) = -3600., +(PID.TID 0000.0001) > timePhase(5) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > stat_fields(1:14,1) = 'ETAN ','DETADT2 ','THETA ','SALT ', +(PID.TID 0000.0001) > 'UE_VEL_C','VN_VEL_C','WVEL ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','oceFWflx','oceQnet ', +(PID.TID 0000.0001) > 'SRELAX ','oceSflux','sIceLoad', +(PID.TID 0000.0001) ># 'TRELAX ','oceFreez','oceQsw ', +(PID.TID 0000.0001) ># stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 864000., +(PID.TID 0000.0001) > stat_freq(1) = 18000., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > stat_fields(1:11,2) = 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > 'CPL_MxlD','CPL_SST ','CPL_SSS ','CPL_Vel2', +(PID.TID 0000.0001) > 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', +(PID.TID 0000.0001) > stat_fName(2) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(2) = -3600., +(PID.TID 0000.0001) > stat_phase(2) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: iceDiag +(PID.TID 0000.0001) Output Frequency: -3600.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick CPL_MxlD CPL_SST CPL_SSS CPL_Vel2 CPL_icFr CPL_iceH CPL_snwH CPL_Qic1 +(PID.TID 0000.0001) Fields: CPL_Qic2 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: -3600.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick CPL_MxlD CPL_SST CPL_SSS CPL_Vel2 CPL_icFr CPL_iceH CPL_snwH CPL_Qic1 +(PID.TID 0000.0001) Fields: CPL_Qic2 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) CPL_READPARMS: opening data.cpl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cpl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cpl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Coupling package parameters, ATM component: +(PID.TID 0000.0001) ># cpl_oldPickup :: restart from an old pickup (= until ckpt 59h) +(PID.TID 0000.0001) ># useImportMxlD :: True => use Imported Mix.Layer Detph from coupler +(PID.TID 0000.0001) ># useImportSST :: True => use the Imported SST from coupler +(PID.TID 0000.0001) ># useImportSSS :: True => use the Imported SSS from coupler +(PID.TID 0000.0001) ># useImportVsq :: True => use the Imported Surf. velocity^2 +(PID.TID 0000.0001) ># useImportThSIce :: True => use the Imported thSIce state var from coupler +(PID.TID 0000.0001) ># useImportFlxCO2 :: True => use the Imported air-sea CO2 flux from coupler +(PID.TID 0000.0001) ># cpl_atmSendFrq :: Frequency^-1 for sending data to coupler (s) +(PID.TID 0000.0001) ># maxNumberPrint :: max number of printed Exp/Imp messages +(PID.TID 0000.0001) > &CPL_ATM_PARAM +(PID.TID 0000.0001) ># cpl_oldPickup =.TRUE., +(PID.TID 0000.0001) ># useImportMxlD =.FALSE., +(PID.TID 0000.0001) ># useImportSST =.FALSE., +(PID.TID 0000.0001) ># useImportSSS =.FALSE., +(PID.TID 0000.0001) ># useImportVsq =.FALSE., +(PID.TID 0000.0001) ># useImportThSIce=.FALSE., +(PID.TID 0000.0001) ># useImportFlxCO2=.FALSE., +(PID.TID 0000.0001) > cpl_atmSendFrq = 3600., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CPL_READPARMS: finished reading data.cpl +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // Coupling set-up summary : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // ------- +(PID.TID 0000.0001) // Coupler-exchange switch (received from coupler): +(PID.TID 0000.0001) atm_cplSequential = /* use Sequential Coupling Exchange on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_cplExch_RunOff = /* exchange RunOff fields with coupler on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_cplExch1W_sIce = /* 1-way exchange of seaice vars with coupler */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_cplExch2W_sIce = /* 2-way exchange of ThSIce vars with coupler */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_cplExch_SaltPl = /* exchange Salt-Plume fields with coupler */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_cplExch_DIC = /* exchange DIC fields with coupler on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ------- +(PID.TID 0000.0001) // Coupler parameters (from local param file): +(PID.TID 0000.0001) cpl_oldPickup = /* restart from old pickup on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportMxlD = /* use Imported MxL. Depth from Coupler flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportSST = /* use Imported SST from Coupler on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportSSS = /* use Imported SSS from Coupler on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportVsq = /* use Imported surf.Vel^2 from Coupler flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportThSIce= /* use Imported thSIce state-var fr Cpl. flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportFlxCO2= /* use Imported air-sea CO2 flux fr Cpl. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cpl_atmSendFrq = /* Frequency^o-1 for sending data to Coupler (s) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cplSendFrq_iter = /* send data to coupler every "cplSendFrq" iter */ +(PID.TID 0000.0001) 8 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) maxNumberPrint = /* max number of printed Exp/Imp messages */ +(PID.TID 0000.0001) 100 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // End of Coupling set-up summary +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 2 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 3 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 4 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 5 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 6 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) %MON XC_max = 1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_min = -1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_mean = -4.6999441375798E-15 +(PID.TID 0000.0001) %MON XC_sd = 1.0355545336287E+02 +(PID.TID 0000.0001) %MON XG_max = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_min = -1.7708797161002E+02 +(PID.TID 0000.0001) %MON XG_mean = 1.8603515625000E+00 +(PID.TID 0000.0001) %MON XG_sd = 1.0357130300504E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DXV_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DXV_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON YC_max = 8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_min = -8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 3.8676242969072E+01 +(PID.TID 0000.0001) %MON YG_max = 9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -1.1842378929335E-15 +(PID.TID 0000.0001) %MON YG_sd = 3.8676895860710E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DYC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DYF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DYF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DYG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DYG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DYU_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DYU_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DYU_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DYU_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON RA_max = 1.0479260248419E+11 +(PID.TID 0000.0001) %MON RA_min = 1.4019007022556E+10 +(PID.TID 0000.0001) %MON RA_mean = 8.2992246709265E+10 +(PID.TID 0000.0001) %MON RA_sd = 1.7509089299457E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAW_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAW_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAW_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAS_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAS_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAS_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.0484349334619E+11 +(PID.TID 0000.0001) %MON RAZ_min = 8.8317900612505E+09 +(PID.TID 0000.0001) %MON RAZ_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 1.7482297311044E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleCS_min = -9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleCS_mean = 3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleCS_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) %MON AngleSN_max = 9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleSN_min = -9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleSN_mean = -3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleSN_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_REF_STATE: PhiRef/g [m] at level Center (integer) +(PID.TID 0000.0001) and at level Interface (half-int.) : +(PID.TID 0000.0001) K= 0.5 ; r= 100000.0 ; phiRef/g= 0.000 +(PID.TID 0000.0001) K= 1.0 ; r= 95000.0 ; phiRef/g= 431.199 +(PID.TID 0000.0001) K= 1.5 ; r= 90000.0 ; phiRef/g= 1256.487 +(PID.TID 0000.0001) K= 2.0 ; r= 77500.0 ; phiRef/g= 2081.775 +(PID.TID 0000.0001) K= 2.5 ; r= 65000.0 ; phiRef/g= 3703.426 +(PID.TID 0000.0001) K= 3.0 ; r= 50000.0 ; phiRef/g= 5325.077 +(PID.TID 0000.0001) K= 3.5 ; r= 35000.0 ; phiRef/g= 7509.251 +(PID.TID 0000.0001) K= 4.0 ; r= 25000.0 ; phiRef/g= 9693.426 +(PID.TID 0000.0001) K= 4.5 ; r= 15000.0 ; phiRef/g= 12596.158 +(PID.TID 0000.0001) K= 5.0 ; r= 7500.0 ; phiRef/g= 15498.890 +(PID.TID 0000.0001) K= 5.5 ; r= 0.0 ; phiRef/g= 29638.981 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: topo.cpl_FM.bin +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +- INPHYS: k,SIG, SIGH, SIGL, WVI(1), WVI(2): + 1 0.0750 0.1500 -2.5903 0.8306 0.5757 + 2 0.2500 0.3500 -1.3863 1.4427 0.4854 + 3 0.5000 0.6500 -0.6931 2.2818 0.5987 + 4 0.7750 0.9000 -0.2549 4.9116 0.7344 + 5 0.9500 1.0000 -0.0513 0.0000 0.0377 +- INPHYS: end setup WVI. +(PID.TID 0000.0001) AIM_READPARMS: opening data.aimphys +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.aimphys +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.aimphys" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># AIM physics package parameters: +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >C-- AIM interface parameter (namelist AIM_PARAMS): +(PID.TID 0000.0001) ># aim_useFMsurfBC :: select surface B.C. from Franco Molteni +(PID.TID 0000.0001) ># aim_useMMsurfFc :: select Monthly Mean surface forcing (e.g., NCEP) +(PID.TID 0000.0001) ># aim_surfPotTemp :: surf.Temp input file is in Pot.Temp (aim_useMMsurfFc) +(PID.TID 0000.0001) ># aim_energPrecip :: account for energy of precipitation (snow & rain temp) +(PID.TID 0000.0001) ># aim_splitSIOsFx :: compute separately Sea-Ice & Ocean surf. Flux +(PID.TID 0000.0001) ># aim_LandFile :: file name for Land fraction [0-1] +(PID.TID 0000.0001) ># aim_MMsufx :: sufix for all Monthly Mean surface forcing files +(PID.TID 0000.0001) ># aim_MMsufxLength :: Length of sufix (Monthly Mean surf. forc. files) +(PID.TID 0000.0001) ># aim_albFile :: file name for Albedo input file (F.M. surfBC) +(PID.TID 0000.0001) ># aim_vegFile :: file name for vegetation fraction (F.M. surfBC) +(PID.TID 0000.0001) ># aim_sstFile :: file name for Sea.Surf.Temp (F.M. surfBC) +(PID.TID 0000.0001) ># aim_lstFile :: file name for Land.Surf.Temp (F.M. surfBC) +(PID.TID 0000.0001) ># aim_oiceFile :: file name for Sea Ice fraction (F.M. surfBC) +(PID.TID 0000.0001) ># aim_snowFile :: file name for Snow depth (F.M. surfBC) +(PID.TID 0000.0001) ># aim_swcFile :: file name for Soil Water content (F.M. surfBC) +(PID.TID 0000.0001) ># aim_dragStrato :: stratospheric-drag damping time scale (s) +(PID.TID 0000.0001) ># aim_clrSkyDiag :: compute clear-sky radiation for diagnostics +(PID.TID 0000.0001) ># aim_taveFreq :: Frequency^-1 for time-average output (s) +(PID.TID 0000.0001) ># aim_diagFreq :: Frequency^-1 for diagnostic output (s) +(PID.TID 0000.0001) ># aim_tendFreq :: Frequency^-1 for tendencies output (s) +(PID.TID 0000.0001) > &AIM_PARAMS +(PID.TID 0000.0001) ># aim_useFMsurfBC=.FALSE., +(PID.TID 0000.0001) ># aim_useMMsurfFc=.TRUE., +(PID.TID 0000.0001) ># aim_surfPotTemp=.TRUE., +(PID.TID 0000.0001) > aim_energPrecip=.TRUE., +(PID.TID 0000.0001) > aim_splitSIOsFx=.TRUE., +(PID.TID 0000.0001) > aim_LandFile= 'landFrc.cpl_FM.bin', +(PID.TID 0000.0001) > aim_albFile = 'albedo_cs32.bin', +(PID.TID 0000.0001) > aim_vegFile = 'vegetFrc.cpl_FM.bin', +(PID.TID 0000.0001) > aim_sstFile = 'seaSurfT.cpl_FM.bin', +(PID.TID 0000.0001) > aim_lstFile = 'lndSurfT.cpl_FM.bin', +(PID.TID 0000.0001) > aim_oiceFile= 'seaIce.cpl3FM.bin', +(PID.TID 0000.0001) > aim_snowFile= 'snowDepth.cpl_FM.bin', +(PID.TID 0000.0001) > aim_swcFile = 'soilMoist.cpl_FM.bin', +(PID.TID 0000.0001) > aim_dragStrato= 2592000., +(PID.TID 0000.0001) ># aim_clrSkyDiag=.TRUE., +(PID.TID 0000.0001) ># aim_diagFreq=3600., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Physical constants +(PID.TID 0000.0001) ># P0 = reference pressure [Pa=N/m2] +(PID.TID 0000.0001) ># GG = gravity accel. [m/s2] +(PID.TID 0000.0001) ># RD = gas constant for dry air [J/kg/K] +(PID.TID 0000.0001) ># CP = specific heat at constant pressure [J/kg/K] +(PID.TID 0000.0001) ># ALHC = latent heat of condensation [J/g] +(PID.TID 0000.0001) ># ALHF = latent heat of freezing [J/g] +(PID.TID 0000.0001) ># SBC = Stefan-Boltzmann constant +(PID.TID 0000.0001) ># rainCP = heat capacity of liquid water [J/g/K] +(PID.TID 0000.0001) ># tFreeze = freezing temperature of pure water [K] +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Constants for forcing fields (namelist AIM_PAR_FOR): +(PID.TID 0000.0001) ># SOLC = Solar constant (area averaged) in W/m^2 +(PID.TID 0000.0001) ># ALBSEA = Albedo over sea +(PID.TID 0000.0001) ># ALBICE = Albedo over sea ice (for ice fraction = 1) +(PID.TID 0000.0001) ># ALBSN = Albedo over snow (for snow depth > SDALB) +(PID.TID 0000.0001) ># SDALB = Snow depth (mm water) corresponding to maximum albedo +(PID.TID 0000.0001) ># SWCAP = Soil wetness at field capacity (volume fraction) +(PID.TID 0000.0001) ># SWWIL = Soil wetness at wilting point (volume fraction) +(PID.TID 0000.0001) ># hSnowWetness :: snow depth (m) corresponding to maximum wetness +(PID.TID 0000.0001) > &AIM_PAR_FOR +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Constants for surface fluxes (namelist AIM_PAR_SFL): +(PID.TID 0000.0001) ># FWIND0 = ratio of near-sfc wind to lowest-level wind +(PID.TID 0000.0001) ># FTEMP0 = weight for near-sfc temperature extrapolation (0-1) : +(PID.TID 0000.0001) ># 1 : linear extrapolation from two lowest levels +(PID.TID 0000.0001) ># 0 : constant potential temperature ( = lowest level) +(PID.TID 0000.0001) ># FHUM0 = weight for near-sfc specific humidity extrapolation (0-1) : +(PID.TID 0000.0001) ># 1 : extrap. with constant relative hum. ( = lowest level) +(PID.TID 0000.0001) ># 0 : constant specific hum. ( = lowest level) +(PID.TID 0000.0001) ># CDL = drag coefficient for momentum over land +(PID.TID 0000.0001) ># CDS = drag coefficient for momentum over sea +(PID.TID 0000.0001) ># CHL = heat exchange coefficient over land +(PID.TID 0000.0001) ># CHS = heat exchange coefficient over sea +(PID.TID 0000.0001) ># VGUST = wind speed for sub-grid-scale gusts +(PID.TID 0000.0001) ># CTDAY = daily-cycle correction (dTskin/dSSRad) +(PID.TID 0000.0001) ># DTHETA = Potential temp. gradient for stability correction +(PID.TID 0000.0001) ># dTstab = potential temp. increment for stability function derivative +(PID.TID 0000.0001) ># FSTAB = Amplitude of stability correction (fraction) +(PID.TID 0000.0001) ># HDRAG = Height scale for orographic correction +(PID.TID 0000.0001) ># FHDRAG = Amplitude of orographic correction (fraction) +(PID.TID 0000.0001) > &AIM_PAR_SFL +(PID.TID 0000.0001) ># FTEMP0 = 0., +(PID.TID 0000.0001) ># FHUM0 = 0., +(PID.TID 0000.0001) ># dTstab = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Convection constants (namelist AIM_PAR_CNV): +(PID.TID 0000.0001) ># PSMIN = minimum (norm.) sfc. pressure for the occurrence of convection +(PID.TID 0000.0001) ># TRCNV = time of relaxation (in hours) towards reference state +(PID.TID 0000.0001) ># QBL = specific hum. threshold in the boundary layer +(PID.TID 0000.0001) ># RHBL = relative hum. threshold in the boundary layer +(PID.TID 0000.0001) ># RHIL = rel. hum. threshold in intermed. layers for secondary mass flux +(PID.TID 0000.0001) ># ENTMAX = max. entrainment as a fraction of cloud-base mass flux +(PID.TID 0000.0001) ># SMF = ratio between secondary and primary mass flux at cloud-base +(PID.TID 0000.0001) > &AIM_PAR_CNV +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Constants for large-scale condensation (namelist AIM_PAR_LSC): +(PID.TID 0000.0001) ># TRLSC = Relaxation time (in hours) for specific humidity +(PID.TID 0000.0001) ># RHLSC = Maximum relative humidity threshold (at sigma=1) +(PID.TID 0000.0001) ># DRHLSC = Vertical range of relative humidity threshold +(PID.TID 0000.0001) ># QSMAX = used to define the maximum latent heat release +(PID.TID 0000.0001) > &AIM_PAR_LSC +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Radiation constants (namelist AIM_PAR_RAD): +(PID.TID 0000.0001) ># RHCL1 = relative hum. corresponding to cloud cover = 0 +(PID.TID 0000.0001) ># RHCL2 = relative hum. corresponding to cloud cover = 1 +(PID.TID 0000.0001) ># QACL1 = specific hum. threshold for cloud cover in the upper troposphere +(PID.TID 0000.0001) ># QACL2 = specific hum. threshold for cloud cover in the upper troposphere +(PID.TID 0000.0001) ># ALBCL = cloud albedo (for cloud cover = 1) +(PID.TID 0000.0001) ># EPSSW = fraction of incoming solar radiation absorbed by ozone +(PID.TID 0000.0001) ># EPSLW = fraction of surface LW radiation emitted directly to space +(PID.TID 0000.0001) ># EMISFC = longwave surface emissivity +(PID.TID 0000.0001) >#--: shortwave absorptivities (for dp = 10^5 Pa) : +(PID.TID 0000.0001) ># ABSDRY = abs. of dry air (visible band) +(PID.TID 0000.0001) ># ABSAER = abs. of aerosols (visible band) +(PID.TID 0000.0001) ># ABSWV1 = abs. of water vapour (visible band, for dq = 1 g/kg) +(PID.TID 0000.0001) ># ABSWV2 = abs. of water vapour (near IR band, for dq = 1 g/kg) +(PID.TID 0000.0001) ># ABSCL1 = abs. of clouds (visible band, constant term) +(PID.TID 0000.0001) ># ABSCL2 = abs. of clouds (visible band, for dw = 1 g/kg) +(PID.TID 0000.0001) >#--: longwave absorptivities (per dp = 10^5 Pa) : +(PID.TID 0000.0001) ># ABLWIN = abs. of air in "window" band +(PID.TID 0000.0001) ># ABLCO2 = abs. of air in CO2 band +(PID.TID 0000.0001) ># ABLWV1 = abs. of water vapour in H2O band 1 (weak), for dq = 1 g/kg +(PID.TID 0000.0001) ># ABLWV2 = abs. of water vapour in H2O band 2 (strong), for dq = 1 g/kg +(PID.TID 0000.0001) ># ABLCL1 = abs. of clouds in "window" band, constant term +(PID.TID 0000.0001) ># ABLCL2 = abs. of clouds in "window" band, for dw = 1 g/kg +(PID.TID 0000.0001) > &AIM_PAR_RAD +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- Constants for vertical dif. and sh. conv. (namelist AIM_PAR_VDI): +(PID.TID 0000.0001) ># TRSHC = relaxation time (in hours) for shallow convection +(PID.TID 0000.0001) ># TRVDI = relaxation time (in hours) for moisture diffusion +(PID.TID 0000.0001) ># TRVDS = relaxation time (in hours) for super-adiab. conditions +(PID.TID 0000.0001) ># RHGRAD = maximum gradient of relative humidity (d_RH/d_sigma) +(PID.TID 0000.0001) ># SEGRAD = minimum gradient of dry static energy (d_DSE/d_phi) +(PID.TID 0000.0001) > &AIM_PAR_VDI +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) AIM_READPARMS: finished reading data.aimphys +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AIM physics parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) useLand = /* use Land package for surf.BC over land */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_useFMsurfBC = /* F.Molteni surf. BC scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_useMMsurfFc = /* Monthly Mean surf. Forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_surfForc_TimePeriod = /* Length of forcing time period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_surfForc_NppCycle = /* Number of time period per Cycle */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_surfForc_TransRatio = /* transition ratio from one month to the next */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_surfPotTemp = /* Surf Temp file in Pot.Temp on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_energPrecip = /* account for energy of precip. on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_splitSIOsFx = /* separate Sea-Ice & Ocean Flux on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_dragStrato= /* stratospheric-drag damping time scale (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_selectOceAlbedo = /* Ocean albedo(latitude) flag */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_select_pCO2= /* select AIM CO2 option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) =0: prescribed LW absorption in CO2 band (=ABLCO2) +(PID.TID 0000.0001) =1: absorption fct of prescribed pCO2 (=aim_fixed_pCO2) +(PID.TID 0000.0001) =2: same as 0 with passive, well-mixed pCO2 atm box +(PID.TID 0000.0001) =3: same as 1 with evolving, well-mixed pCO2 atm-box +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_clrSkyDiag = /* do clear-sky radiation diagnostics */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_diagFreq = /* Frequency^-1 for diagnostic output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) aim_tendFreq = /* Frequency^-1 for tendencies output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: SOLC = /* Solar constant (area averaged) in W/m2 */ +(PID.TID 0000.0001) 3.420000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: OBLIQ = /* Obliquity (degree) used with ALLOW_INSOLATION */ +(PID.TID 0000.0001) 2.345000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: ALBSEA = /* Albedo over sea [0-1] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: ALBICE = /* Albedo over sea ice (for ice fraction =1) */ +(PID.TID 0000.0001) 6.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: ALBSN = /* Albedo over snow (for snow depth > SDALB) */ +(PID.TID 0000.0001) 6.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: SDALB = /* Snow depth (mm H2O) corresp. maximum albedo */ +(PID.TID 0000.0001) 6.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: SWCAP = /* Soil wetness at field capacity (Vol.fract.) */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: SWWIL = /* Soil wetness at wilting point (Vol.fract.) */ +(PID.TID 0000.0001) 1.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_FOR: hSnowWetness= /* snow depth corresp. maximum wetness (m) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: FWIND0 = /* ratio of near-sfc wind to lowest-level wind */ +(PID.TID 0000.0001) 6.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: FTEMP0 = /* weight for near-sfc temp. extrapolation (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: FHUM0 = /* weight for near-sfc spec.humid. extrap. (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: CDL = /* drag coefficient for momentum over land */ +(PID.TID 0000.0001) 1.800000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: CDS = /* drag coefficient for momentum over sea */ +(PID.TID 0000.0001) 8.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: CHL = /* heat exchange coefficient over land */ +(PID.TID 0000.0001) 1.200000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: CHS = /* heat exchange coefficient over sea */ +(PID.TID 0000.0001) 8.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: VGUST = /* wind speed [m/s] for sub-grid-scale gusts */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: CTDAY = /* daily-cycle correction (dTskin/dSSRad) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: DTHETA = /* Pot.Temp. gradient for stability correction */ +(PID.TID 0000.0001) 3.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: dTstab = /* Pot.Temp. increment for stab.funct. derivative */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: FSTAB = /* Amplitude of stability correction (fract.) */ +(PID.TID 0000.0001) 6.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: HDRAG = /* Height scale for orographic correction */ +(PID.TID 0000.0001) 2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_SFL: FHDRAG = /* Amplitude of orographic correction (fract.)*/ +(PID.TID 0000.0001) 8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: PSMIN = /* min norm.sfc.P. for occurrence of convect. */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: TRCNV = /* time of relaxation [h] towards ref state */ +(PID.TID 0000.0001) 6.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: QBL = /* specific hum. threshold in the Bound.layer */ +(PID.TID 0000.0001) 1.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: RHBL = /* relative hum. threshold in the Bound.layer */ +(PID.TID 0000.0001) 8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: RHIL = /* rel.hum. threshold (intern) for 2nd mass.Flx*/ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: ENTMAX = /* time of relaxation [h] towards neutral eq. */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_CNV: SMF = /* ratio 2ndary/primary mass.Flx at cloud-base*/ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_LSC: TRLSC = /* relaxation time [h] for supersat. spec.hum. */ +(PID.TID 0000.0001) 4.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_LSC: RHLSC = /* Max rel.humidity threshold (at sigma=1) */ +(PID.TID 0000.0001) 9.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_LSC: DRHLSC = /* Vertical range of rel.humidity threshold */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_LSC: QSMAX = /* Define the maximum latent heat release */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: RHCL1 = /* rel.hum. corresponding to cloud cover = 0 */ +(PID.TID 0000.0001) 4.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: RHCL2 = /* rel.hum. corresponding to cloud cover = 1 */ +(PID.TID 0000.0001) 8.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: QACL1 = /* spec.hum. threshold for cloud, upper trop. */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: QACL2 = /* spec.hum. threshold for cloud, upper trop. */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ALBCL = /* cloud albedo (for cloud cover = 1) */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: EPSSW = /* fract. of inc.solar rad. absorbed by ozone */ +(PID.TID 0000.0001) 1.500000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: EPSLW = /* fract. of sfc LW emitted directly to space */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: EMISFC = /* longwave surface emissivity */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD : ShortWave absorptivities (for dp = 10^5 Pa) : +(PID.TID 0000.0001) AIM_RAD: ABSDRY = /* abs. of dry air (visible band) */ +(PID.TID 0000.0001) 3.300000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABSAER = /* abs. of aerosols (visible band) */ +(PID.TID 0000.0001) 3.300000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABSWV1 = /* abs. of water vap. (vis. band)(/dq, 1g/kg) */ +(PID.TID 0000.0001) 2.200000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABSWV2 = /* abs. of water vap.(near IR bd)(/dq, 1g/kg) */ +(PID.TID 0000.0001) 1.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABSCL1 = /* abs. of clouds (vis.band)(constant term) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABSCL2 = /* abs. of clouds (vis.band) (/dw, 1g/kg) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLWIN = /* abs. of air in "window" band */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLCO2 = /* abs. of air in CO2 band */ +(PID.TID 0000.0001) 4.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLWV1 = /* abs. of Water vap. H2O bd-1(weak)(/dq,1g/kg)*/ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLWV2 = /* abs. of W. vap., H2O bd-2(strong)(/dq,1g/kg)*/ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLCL1 = /* abs. of clouds in window band (const term) */ +(PID.TID 0000.0001) 1.200000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_RAD: ABLCL2 = /* abs. of clouds in window band (/dw, 1g/kg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_VDI: TRSHC = /* relaxation time [h] for shallow convection */ +(PID.TID 0000.0001) 2.400000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_VDI: TRVDI = /* relaxation time [h] for moisture diffusion */ +(PID.TID 0000.0001) 4.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_VDI: TRVDS = /* relaxation time [h] for super-adiab. cond. */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_VDI: RHGRAD = /* max gradient of rel.humidity (d_RH/d_sigma)*/ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AIM_VDI: SEGRAD = /* max grad. of dry static Energy(d_DSE/d_phi)*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: landFrc.cpl_FM.bin +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 280 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 185 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 186 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 185 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 271 CPL_MxlD +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 272 CPL_SST +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 273 CPL_SSS +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 274 CPL_Vel2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 276 CPL_icFr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 277 CPL_iceH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 276 CPL_icFr is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 278 CPL_snwH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 276 CPL_icFr is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 279 CPL_Qic1 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 277 CPL_iceH is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 280 CPL_Qic2 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 277 CPL_iceH is already set +(PID.TID 0000.0001) space allocated for all diagnostics: 11 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: iceDiag +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 185 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 186 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 185 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 271 CPL_MxlD +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 272 CPL_SST +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 273 CPL_SSS +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 274 CPL_Vel2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 276 CPL_icFr +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 277 CPL_iceH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 276 CPL_icFr has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 278 CPL_snwH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 276 CPL_icFr has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 279 CPL_Qic1 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 277 CPL_iceH has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 280 CPL_Qic2 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 277 CPL_iceH has already been set +(PID.TID 0000.0001) space allocated for all stats-diags: 11 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 24 CS-corner Pts in the domain +(PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 2.2587545260115E-21 +(PID.TID 0000.0001) %MON fCoriG_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4580166994612E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 5.2407700865903E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.1514045869113E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.0375849106513E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 9.9119603843467461E-06 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 1.123144856357769E-10 (Area=5.0990436378E+14) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'ATMOSPHERIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 2.896000000000000E+02, /* K = 1 */ +(PID.TID 0000.0001) 2.981000000000000E+02, /* K = 2 */ +(PID.TID 0000.0001) 3.145000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 3.358000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 4.374000000000000E+02 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 5 @ 0.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity (Pa^2/s )*/ +(PID.TID 0000.0001) 5 @ 0.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp (Pa^2/s )*/ +(PID.TID 0000.0001) 5 @ 0.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt (Pa^2/s )*/ +(PID.TID 0000.0001) 5 @ 0.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection (Pa^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'IDEALG' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_Rd = /* gas constant for dry air ( J/kg/K ) */ +(PID.TID 0000.0001) 2.868571428571428E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_Cp = /* specific heat (Cp) of dry air ( J/kg/K ) */ +(PID.TID 0000.0001) 1.004000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_kappa = /* kappa (=Rd/Cp ) of dry air */ +(PID.TID 0000.0001) 2.857142857142857E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_Rq = /* water vap. specific vol. anomaly relative to dry air */ +(PID.TID 0000.0001) 6.078000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atm_Po = /* standard reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaConst= /* constant reference for potential temperature ( K ) */ +(PID.TID 0000.0001) 2.896000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) integr_GeoPot = /* select how the geopotential is integrated */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectFindRoSurf= /* select how Surf.Ref. pressure is defined */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 6 @ 1.000000000000000E+00 /* K = 1: 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 6 @ 1.000000000000000E+00 /* K = 1: 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness (Pa) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 1.000000000000000E-17 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 4.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 4.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 5 @ 4.500000000000000E+02 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 40 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 40 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == Pa ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* pressure at the top (r-axis origin) [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [Pa] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [Pa] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.019367991845056E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* K = 2 */ +(PID.TID 0000.0001) 2.750000000000000E+04, /* K = 3 */ +(PID.TID 0000.0001) 2.500000000000000E+04, /* K = 4 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* K = 5 */ +(PID.TID 0000.0001) 7.500000000000000E+03 /* K = 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+04, /* K = 1 */ +(PID.TID 0000.0001) 2.500000000000000E+04, /* K = 2 */ +(PID.TID 0000.0001) 3.000000000000000E+04, /* K = 3 */ +(PID.TID 0000.0001) 2.000000000000000E+04, /* K = 4 */ +(PID.TID 0000.0001) 1.500000000000000E+04 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) radius_fromHorizGrid = /* sphere Radius of input horiz. grid */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -4.439521994760536E+01, /* I = 1 */ +(PID.TID 0000.0001) -4.295641272275883E+01, /* I = 2 */ +(PID.TID 0000.0001) -4.122055553388957E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.070819219728060E+01, /* I = 46 */ +(PID.TID 0000.0001) 8.439652466417766E+01, /* I = 47 */ +(PID.TID 0000.0001) 8.812739148696656E+01, /* I = 48 */ +(PID.TID 0000.0001) 9.187260851303344E+01, /* I = 49 */ +(PID.TID 0000.0001) 9.560347533582234E+01, /* I = 50 */ +(PID.TID 0000.0001) 9.929180780271940E+01, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.321863035748696E+02, /* I = 94 */ +(PID.TID 0000.0001) 1.337919453120370E+02, /* I = 95 */ +(PID.TID 0000.0001) 1.350000000000000E+02, /* I = 96 */ +(PID.TID 0000.0001) 1.356047800523947E+02, /* I = 97 */ +(PID.TID 0000.0001) 1.358367907661329E+02, /* I = 98 */ +(PID.TID 0000.0001) 1.359720382181193E+02, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.336511021209287E+02, /* I =142 */ +(PID.TID 0000.0001) -1.336469399409420E+02, /* I =143 */ +(PID.TID 0000.0001) -1.336449032499283E+02, /* I =144 */ +(PID.TID 0000.0001) -1.336449032499283E+02, /* I =145 */ +(PID.TID 0000.0001) -1.336469399409420E+02, /* I =146 */ +(PID.TID 0000.0001) -1.336511021209287E+02, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.378136964251304E+02, /* I =190 */ +(PID.TID 0000.0001) 1.362080546879630E+02, /* I =191 */ +(PID.TID 0000.0001) 1.350000000000000E+02 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -3.497677942598243E+01, /* J = 1 */ +(PID.TID 0000.0001) -3.374005967394886E+01, /* J = 2 */ +(PID.TID 0000.0001) -3.220655175667454E+01, /* J = 3 */ +(PID.TID 0000.0001) -3.045756348838641E+01, /* J = 4 */ +(PID.TID 0000.0001) -2.853728129852918E+01, /* J = 5 */ +(PID.TID 0000.0001) -2.647426640173173E+01, /* J = 6 */ +(PID.TID 0000.0001) -2.428936657094636E+01, /* J = 7 */ +(PID.TID 0000.0001) -2.199915808312262E+01, /* J = 8 */ +(PID.TID 0000.0001) -1.961768597440146E+01, /* J = 9 */ +(PID.TID 0000.0001) -1.715743888281371E+01, /* J = 10 */ +(PID.TID 0000.0001) -1.462993396899330E+01, /* J = 11 */ +(PID.TID 0000.0001) -1.204608340464756E+01, /* J = 12 */ +(PID.TID 0000.0001) -9.416429130284818E+00, /* J = 13 */ +(PID.TID 0000.0001) -6.751293662992216E+00, /* J = 14 */ +(PID.TID 0000.0001) -4.060875511835959E+00, /* J = 15 */ +(PID.TID 0000.0001) -1.355307764409121E+00, /* J = 16 */ +(PID.TID 0000.0001) 1.355307764409121E+00, /* J = 17 */ +(PID.TID 0000.0001) 4.060875511835959E+00, /* J = 18 */ +(PID.TID 0000.0001) 6.751293662992216E+00, /* J = 19 */ +(PID.TID 0000.0001) 9.416429130284818E+00, /* J = 20 */ +(PID.TID 0000.0001) 1.204608340464756E+01, /* J = 21 */ +(PID.TID 0000.0001) 1.462993396899330E+01, /* J = 22 */ +(PID.TID 0000.0001) 1.715743888281371E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.961768597440146E+01, /* J = 24 */ +(PID.TID 0000.0001) 2.199915808312262E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.428936657094636E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.647426640173173E+01, /* J = 27 */ +(PID.TID 0000.0001) 2.853728129852918E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.045756348838641E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.220655175667454E+01, /* J = 30 */ +(PID.TID 0000.0001) 3.374005967394886E+01, /* J = 31 */ +(PID.TID 0000.0001) 3.497677942598243E+01 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) 9.500000000000000E+04, /* K = 1 */ +(PID.TID 0000.0001) 7.750000000000000E+04, /* K = 2 */ +(PID.TID 0000.0001) 5.000000000000000E+04, /* K = 3 */ +(PID.TID 0000.0001) 2.500000000000000E+04, /* K = 4 */ +(PID.TID 0000.0001) 7.500000000000000E+03 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+05, /* K = 1 */ +(PID.TID 0000.0001) 9.000000000000000E+04, /* K = 2 */ +(PID.TID 0000.0001) 6.500000000000000E+04, /* K = 3 */ +(PID.TID 0000.0001) 3.500000000000000E+04, /* K = 4 */ +(PID.TID 0000.0001) 1.500000000000000E+04, /* K = 5 */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+00 /* K = 1: 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 6 @ 1.000000000000000E+00 /* K = 1: 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 8.468280180573759E-02, /* K = 1 */ +(PID.TID 0000.0001) 9.264164924838553E-02, /* K = 2 */ +(PID.TID 0000.0001) 1.218363765768670E-01, /* K = 3 */ +(PID.TID 0000.0001) 2.012547327065781E-01, /* K = 4 */ +(PID.TID 0000.0001) 4.382932217562046E-01, /* K = 5 */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 1.180877319451476E+01, /* K = 1 */ +(PID.TID 0000.0001) 1.079428106162982E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.207729317763288E+00, /* K = 3 */ +(PID.TID 0000.0001) 4.968827249682435E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.281577606865748E+00, /* K = 5 */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 6 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 1.551846956946958E-06, /* K = 2 */ +(PID.TID 0000.0001) 2.382518577942705E-06, /* K = 3 */ +(PID.TID 0000.0001) 5.042981208886097E-06, /* K = 4 */ +(PID.TID 0000.0001) 6.524166098263503E-05 /* K = 5 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978501920522794E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978501920522794E+05, /* I =142 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =145 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I =146 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =190 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =191 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012844832048790E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.979171143158405E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.979171143158405E+05, /* I =142 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =145 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I =146 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =190 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =191 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012190981969055E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.977867909042096E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.977867909042096E+05, /* I =142 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I =143 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =144 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =145 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I =146 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =190 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =191 */ +(PID.TID 0000.0001) 1.009837800879055E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.403701524205398E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963715635865306E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963715635865306E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I =143 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I =144 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =145 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I =190 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =191 */ +(PID.TID 0000.0001) 1.403701524205398E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.011625828699101E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.009837800879055E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963038832565530E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963038832565530E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I =143 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =145 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I =190 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =191 */ +(PID.TID 0000.0001) 1.391343389937106E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012281885409289E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.114203141013064E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978547649292580E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978547649292580E+05, /* I =142 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =145 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I =146 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =190 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =191 */ +(PID.TID 0000.0001) 1.114203141013064E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.391343389937106E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.962371870847826E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 96 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 97 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.962371870847826E+05, /* I =142 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I =143 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I =145 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I =146 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I =190 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =191 */ +(PID.TID 0000.0001) 1.333130744933864E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.362652340208229E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963063101754721E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 96 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 97 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963063101754721E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I =143 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I =145 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I =190 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =191 */ +(PID.TID 0000.0001) 1.362652340208229E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.333130744933864E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.874277443041928E+10, /* I = 46 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 97 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 98 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.874277443041928E+10, /* I =142 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* I =143 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I =144 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I =145 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* I =146 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I =190 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =191 */ +(PID.TID 0000.0001) 1.401900702259215E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.203683527776127E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* J = 16 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* J = 17 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 24 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.203683527772523E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 27 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.401900702259215E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.781353403175085E+10, /* I = 46 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 97 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 98 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.781353403175085E+10, /* I =142 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* I =143 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* I =144 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =145 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* I =146 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I =190 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I =191 */ +(PID.TID 0000.0001) 1.974052138509018E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 9.071447638299399E+10, /* J = 16: 17 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 24 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 27 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.216690346714270E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.869393350723613E+10, /* I = 46 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 97 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 98 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.869393350723613E+10, /* I =142 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I =143 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =144 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =145 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I =146 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =190 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =191 */ +(PID.TID 0000.0001) 1.216690346714270E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.801790263324359E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.571243814189866E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.269930713599979E+10, /* J = 6 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.014205907741882E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.484854821847499E+10, /* J = 10 */ +(PID.TID 0000.0001) 7.898934631431560E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.254500894894537E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.549360686473492E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.781353403175085E+10, /* J = 14 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* J = 16 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* J = 17 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.781353403174185E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.549360686467184E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.254500894890933E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.898934631434262E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.484854821844795E+10, /* J = 24 */ +(PID.TID 0000.0001) 7.014205907742783E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 27 */ +(PID.TID 0000.0001) 5.269930713599078E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.571243814190767E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.801790263325260E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.974052138509018E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 5.099043637817220E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hasWetCSCorners = /* Domain contains CS corners (True/False) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) THSICE_CHECK: #define THSICE +(PID.TID 0000.0001) LAND_CHECK: #define ALLOW_LAND +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // Land package parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) land_calc_grT = /* step forward ground Temp. on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_calc_grW = /* step forward soil moiture on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_impl_grT = /* solve ground temperature implicitly */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_calc_snow = /* step forward snow thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_calc_alb = /* compute land+snow albedo */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_grT_iniFile = /* Initial ground-Temp Input-File */ +(PID.TID 0000.0001) land_grT_ini.cpl.bin +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_grW_iniFile = /* Initial soil-Water Input-File */ +(PID.TID 0000.0001) land_grW_ini.mn.bin +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_snow_iniFile= /* Initial snow thickness Input-File */ +(PID.TID 0000.0001) land_grW_ini.mn.bin +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_deltaT = /* land model Time-Step (s) */ +(PID.TID 0000.0001) 4.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_diagFreq = /* Frequency^-1 for diagnostic output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_monFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_dzF = /* layer thickness ( m ) */ +(PID.TID 0000.0001) 1.000000000000000E-01, /* K = 1 */ +(PID.TID 0000.0001) 4.000000000000000E+00 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_rec_dzC= /* recip. vertical spacing (m-1) */ +(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 4.878048780487805E-01 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_timeave_mdsio = /* use MDSIO for Tave output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_snapshot_mdsio = /* use MDSIO for snapshot output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_mon_stdio = /* use STDOUT for monitor output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_mon_mnc = /* use MNC for monitor output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_grdLambda = /* Thermal conductivity of the ground (W/m/K)*/ +(PID.TID 0000.0001) 4.200000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_heatCs = /* Heat capacity of dry soil (J/m3/K) */ +(PID.TID 0000.0001) 1.130000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_CpWater = /* Heat capacity of water (J/kg/K) */ +(PID.TID 0000.0001) 4.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_wTauDiff = /* soil moisture diffusion time scale (s) */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_waterCap = /* field capacity per meter of soil (1) */ +(PID.TID 0000.0001) 2.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_fractRunOff= /* fraction of water in excess which run-off */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_rhoLiqW = /* density of liquid water (kg/m3) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_Lfreez = /* Latent heat of freezing (J/kg) */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) land_hMaxSnow = /* maximum snow-thickness (m) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKsnow = /* thermal conductivity of snow (W/m/K) */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) timeSnowAge = /* snow aging time scale (s) */ +(PID.TID 0000.0001) 4.320000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hNewSnowAge = /* new snow thickness to refresh snow-age by 1/e */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) albColdSnow = /* albedo of cold (=dry) new snow */ +(PID.TID 0000.0001) 8.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) albWarmSnow = /* albedo of warm (=wet) new snow */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSnowAlbL = /* Temp. transition from ColdSnow to WarmSnow Alb. (oC) */ +(PID.TID 0000.0001) -1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) albOldSnow = /* albedo of old snow (snowAge >35.d)*/ +(PID.TID 0000.0001) 5.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hAlbSnow = /* snow depth for albedo transition */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation ATMOSPHERIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceDiag + nFlds, nActive, freq & phase , nLev + 11 | 11 | -3600.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 185 |SI_Fract| 1 | 0 | 1 | 0 | + 186 |SI_Thick| 2 | 1 | 1 | 0 | 0 | + 271 |CPL_MxlD| 3 | 0 | 1 | 0 | + 272 |CPL_SST | 4 | 0 | 1 | 0 | + 273 |CPL_SSS | 5 | 0 | 1 | 0 | + 274 |CPL_Vel2| 6 | 0 | 1 | 0 | + 276 |CPL_icFr| 7 | 0 | 1 | 0 | + 277 |CPL_iceH| 8 | 7 | 1 | 0 | 0 | + 278 |CPL_snwH| 9 | 7 | 1 | 0 | 0 | + 279 |CPL_Qic1| 10 | 8 | 1 | 0 | 0 | + 280 |CPL_Qic2| 11 | 8 | 1 | 0 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 11 | 11 | -3600.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 185 |SI_Fract| 1 | 0 | 0.00000E+00 | + 186 |SI_Thick| 2 | 1 | 0.00000E+00 | 0.00000E+00 | + 271 |CPL_MxlD| 3 | 0 | 0.00000E+00 | + 272 |CPL_SST | 4 | 0 | 0.00000E+00 | + 273 |CPL_SSS | 5 | 0 | 0.00000E+00 | + 274 |CPL_Vel2| 6 | 0 | 0.00000E+00 | + 276 |CPL_icFr| 7 | 0 | 0.00000E+00 | + 277 |CPL_iceH| 8 | 7 | 0.00000E+00 | 0.00000E+00 | + 278 |CPL_snwH| 9 | 7 | 0.00000E+00 | 0.00000E+00 | + 279 |CPL_Qic1| 10 | 8 | 0.00000E+00 | 0.00000E+00 | + 280 |CPL_Qic2| 11 | 8 | 0.00000E+00 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: land_grT_ini.cpl.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: land_grW_ini.mn.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: land_snw_ini.cpl.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3740000000000E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8960000000000E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171566851928E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7418367738381E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON am_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON am_uZo_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON am_tot_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765318E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3936822068631E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448519602E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1626513531368E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5327595968918E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5906277570341E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 2.7405468051285E-07 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2399418417812E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 7.7654719504950E-05 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -2.5815959216687E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -3.3132697963695E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 2.0149199094728E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -1.7523201785581E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.8985871813098E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -8.0316451094858E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.5018877502675E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 3.3608904510445E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.7568273139015E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.5686208531239E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -2.5815959216687E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -3.3132697963695E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 2.0149199094728E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7523201785581E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.8985871813098E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -8.0316451094858E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.5018877502675E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 3.3608904510445E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.7568273139015E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.5686208531239E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2075844789702E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8731900381715E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2013117275370E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4099755438272E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4762296561906E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7051070040243E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0193619391069E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360008819708E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1360925912704E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9833038898793E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2318014275423E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9893442833974E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3640891470528E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6065462911976E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8705004606900E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0877764965169E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6494425086260E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9286506610416E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.5944074829007E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: albedo_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: vegetFrc.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: seaSurfT.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: seaSurfT.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lndSurfT.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lndSurfT.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: seaIce.cpl3FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: seaIce.cpl3FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: snowDepth.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: snowDepth.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: soilMoist.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: soilMoist.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: soilMoist.cpl_FM.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: soilMoist.cpl_FM.bin +(PID.TID 0000.0001) Exporting atmospheric surf fluxes at iter= 0 +(PID.TID 0000.0001) Importing oceanic surface fields at iter= 0 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -5.79802872380242E-12 4.56406615217961E+03 +(PID.TID 0000.0001) cg2d_init_res = 2.69435642942126E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 1.02964652237669E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 4.5000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.0126275000125E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.3379872426445E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5963777873226E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9434200776663E+01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6777176510994E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5050330571859E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8290208018706E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.6292684982432E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4016304516424E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0543318376510E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.6157626389765E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.9171448519691E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0771995433407E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3236707519739E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.2482648375913E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7863246796719E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2571113815568E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2649136710238E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0365742260025E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1926677284460E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3742467645505E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8934441045130E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171675642820E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7417135661157E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3483541127136E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.8304031265066E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.6208180243339E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 4.0232673264473E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7712462349260E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0078076659287E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.0698683118828E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.6084227620920E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6802535151774E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0314489801751E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5715472353764E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.3298186243656E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.6802535151774E-03 +(PID.TID 0000.0001) %MON am_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON am_uZo_mean = -4.5570080907306E+06 +(PID.TID 0000.0001) %MON am_tot_mean = -4.5570080907306E+06 +(PID.TID 0000.0001) %MON pe_b_mean = -1.0794436543107E-01 +(PID.TID 0000.0001) %MON ke_max = 6.1693781199338E+00 +(PID.TID 0000.0001) %MON ke_mean = 5.5508143602989E-02 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -9.4915373902207E-06 +(PID.TID 0000.0001) %MON vort_r_max = 7.5335333512184E-06 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765326E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3936940887348E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448519610E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1622236718465E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.2017470616148E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.7340397801968E-07 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -9.8622054141029E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.8815995746453E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 4.5000000000000E+02 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324899418271E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5906218925101E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2394083770072E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999994790628E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999994052276E-01 +(PID.TID 0000.0001) %MON LAND : Area= 1.460176263E+14 ; Lat sep= -24.00 24.00 +(PID.TID 0000.0001) %MON LAND : LatA= 2.377676559E+13 4.894489218E+13 7.329596851E+13 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -4.5018097153331E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -4.8502891206834E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.8967115730433E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0060623322950E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4780031503666E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -7.7790761348767E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.2204837440254E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 3.1949330087513E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.5750083102673E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.5372300088674E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -3.1124927886792E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -3.7813957895996E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.8967115730433E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7639617949757E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.8998391445355E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -7.7790761348767E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.5006030742765E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 3.1949330087513E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.5750083102673E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.5372300088674E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2074719607241E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8731652795813E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2013064794749E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4126697958059E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4761861869106E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7050826670751E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0193860864683E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360154776443E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1360681955355E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9832408494537E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2449420214312E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9909809342333E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3535863970854E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6075474842833E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8703721222978E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0876199363048E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6488813559401E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288204982923E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.5934444940682E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 4.5000000000000E+02 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.4722059482290E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.4722059482290E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -1.7019828369658E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -1.6162307215484E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.7019828369658E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.6162307215484E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6654148959328E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7019828369658E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6162307215484E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.4008237021629E+17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 185 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 186 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 185 SI_Fract + Computing Diagnostic # 271 CPL_MxlD Counter: 1 Parms: SM M1 + Computing Diagnostic # 272 CPL_SST Counter: 1 Parms: SM M1 + Computing Diagnostic # 273 CPL_SSS Counter: 1 Parms: SM M1 + Computing Diagnostic # 274 CPL_Vel2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 276 CPL_icFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 277 CPL_iceH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_iceH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 278 CPL_snwH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_snwH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 279 CPL_Qic1 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic1 Diagnostic # 277 CPL_iceH + Computing Diagnostic # 280 CPL_Qic2 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic2 Diagnostic # 277 CPL_iceH + Compute Stats, Diag. # 185 SI_Fract vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 186 SI_Thick vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 185 SI_Fract vol( 0 ): 5.099E+14 integral 0.000E+00 + Compute Stats, Diag. # 271 CPL_MxlD vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 272 CPL_SST vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 273 CPL_SSS vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 274 CPL_Vel2 vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 276 CPL_icFr vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 277 CPL_iceH vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 0.000E+00 + Compute Stats, Diag. # 278 CPL_snwH vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 0.000E+00 + Compute Stats, Diag. # 279 CPL_Qic1 vol( 0 ): 0.000E+00 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 0.000E+00 integral 0.000E+00 + Compute Stats, Diag. # 280 CPL_Qic2 vol( 0 ): 0.000E+00 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 0.000E+00 integral 0.000E+00 + cg2d: Sum(rhs),rhsMax = -2.09752215596382E-11 9.41231701515117E+03 +(PID.TID 0000.0001) cg2d_init_res = 3.37277889096186E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 17 +(PID.TID 0000.0001) cg2d_last_res = 1.29071009762194E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0784500504386E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0659070389690E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.8636571407371E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1744616029067E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5374047281187E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5655102734996E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.9458818914115E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.7269663964618E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1328664317715E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.5827134896432E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.9318022750969E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.7152694940655E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2414008321639E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9047815207370E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8461602756140E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.1279222237505E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.0801823340459E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0603094012709E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6042043694151E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6922459671865E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3747894585594E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8908988121070E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171700468865E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7416623730729E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5734663091040E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.1942980326593E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.9649722358353E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.9885101809933E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4946289258548E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.9124491426230E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0803616258097E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.5756281627621E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0442580869621E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9892487553987E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5514571450325E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.3130256375297E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0442580869621E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -4.4782454493304E+07 +(PID.TID 0000.0001) %MON am_uZo_mean = 3.6056314942580E+07 +(PID.TID 0000.0001) %MON am_tot_mean = -8.7261395507238E+06 +(PID.TID 0000.0001) %MON pe_b_mean = -2.4455126846998E-01 +(PID.TID 0000.0001) %MON ke_max = 1.6400981599819E+01 +(PID.TID 0000.0001) %MON ke_mean = 1.6069076141042E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -1.6528722995744E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.1202475321423E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765244E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3937549866046E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448367573E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1637616144273E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.9677560823004E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6711126308848E-06 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.6123424870457E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.0760419786875E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 9.0000000000000E+02 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324757292587E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5906150812488E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2393822727646E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999903098904E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999987351522E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -5.0652178784910E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.5025815205589E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.7949616543267E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0291969350053E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4769221382365E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -7.5299692347550E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.1747790152591E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 3.0527153706392E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.4123833338626E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.4715839322201E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -3.5648512817816E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -4.1877865047505E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.7949616543267E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7729503774949E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9010895124444E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -7.5299692347550E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4992760177706E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 3.0527153706392E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.4123833338626E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.4715839322201E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2073557609052E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8731411666346E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012996600240E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4153115137642E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4761427409520E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7050551833814E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0194102085193E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360276077200E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1360419806704E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9832066099824E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2564655652663E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9923904002872E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3445977914945E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6086729564735E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8701737295015E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0874743052211E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6483651105318E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288172425441E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.5938832289836E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.0000000000000E+02 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 2.8730029335138E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 2.8730029335138E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.0230915458557E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.0230915458557E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.0298625643839E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -4.2749286954216E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -4.2749286954216E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.3168163004106E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.2201553129018E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9016316032802E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9016316032802E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.9454306619271E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.8428568834597E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6942677424829E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6942677424829E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7317180406163E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6439112936711E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.8143224316543E+17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.05773176276125E-11 1.24889365812262E+04 +(PID.TID 0000.0001) cg2d_init_res = 3.03894512757985E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 1.11916563558526E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.3500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7731409811188E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7282874294875E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6034379347850E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.8404783935902E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.8008619773729E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3355087690751E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3583916256935E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5819598627698E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.3331800502047E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2901894117336E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.1590452392163E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2968744454607E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.4302736278617E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.9485868979235E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.4820774113014E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.7695341587044E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.6778025650165E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4247381115947E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8254736078442E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8548891250634E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3759035185991E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8883964002462E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171695867138E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7416702815111E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.9457882636776E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.2937564243072E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.2801769443527E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1898717479566E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1787336797600E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7304765973947E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.1988846818042E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1870300094385E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1799066060310E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0945758898624E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1801051435622E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.2909496518451E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1799066060310E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.3543737378936E+08 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.2322111388725E+08 +(PID.TID 0000.0001) %MON am_tot_mean = -1.2216259902107E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -3.6772888305536E-01 +(PID.TID 0000.0001) %MON ke_max = 2.3678709595025E+01 +(PID.TID 0000.0001) %MON ke_mean = 2.6310584801094E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.1108501763614E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.2735014029496E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765353E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3938507583828E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448502530E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1660804714136E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3243226104755E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.4982996972153E-07 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.9092899139085E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.6351703483753E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.3500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324622502256E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5906076154895E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2393578421603E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999852294588E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999979568969E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -5.4066968171997E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.6666429486409E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.7063131196008E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0327062196921E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4646161839409E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -7.2844964893619E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0746569695302E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.9347435051971E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.2664839786154E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.4116460533120E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -3.9621534956380E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -4.5431833047229E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.7063131196008E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7813737739879E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9023247758884E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -7.2844964893619E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4978536643449E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.9347435051971E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.2664839786154E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.4116460533120E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2072329473049E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8731176189024E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012913773590E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4179689447860E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4760993180772E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7050245989051E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0194343038290E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360375712416E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1360140999493E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9831710399935E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2665672618579E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9936150487047E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3367986792183E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6097508923716E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8699898823796E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0873376507385E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6478878764496E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288140016015E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.5955187998287E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.3500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 4.2084125884071E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 4.2084125884071E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.0460456079519E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.0460456079519E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.0595980659811E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -4.5855363015594E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -4.5855363015594E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.6361986940015E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.5170705558487E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.1945195517614E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.1945195517614E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.2418090000122E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.1246319731458E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7459439468952E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7459439468952E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7846302721984E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6936998634728E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -1.3239502087710E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 5.01358954352327E-11 1.42975978071971E+04 +(PID.TID 0000.0001) cg2d_init_res = 2.56629010031423E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.18298664252594E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.5477349368702E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2486302368654E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.9244699710755E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.4110388257012E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.3315111186402E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.1062453659883E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.2020680043338E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.3978085859981E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.1791265951165E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9206658012263E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7297546701247E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.9166737391853E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6770699115651E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.7126473054062E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9667162106431E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.8158647787604E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4990013548495E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4889176377470E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9128943408044E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0628950474590E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3767662797376E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8859313287818E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171669140210E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7417210432959E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0087769111484E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.6276559003889E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.5947538632691E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.5760500544320E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.8254025923129E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4385336851004E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0451376991575E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2817612136994E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1593255650196E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0292475925982E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2682622368519E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.9983658533900E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1593255650196E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -2.7243447878558E+08 +(PID.TID 0000.0001) %MON am_uZo_mean = 2.5760713517363E+08 +(PID.TID 0000.0001) %MON am_tot_mean = -1.4827343611952E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -4.7076891668407E-01 +(PID.TID 0000.0001) %MON ke_max = 2.9476635910396E+01 +(PID.TID 0000.0001) %MON ke_mean = 3.5200948782436E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4047995950596E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.3418085224815E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765286E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3939804235627E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448748779E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1689537564304E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3947746716926E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.1652023646551E-06 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.9729509852935E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.7470383121002E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324495261160E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905996335260E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2393350829412E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999800545357E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999970603938E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -5.7021973223025E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.7476622298033E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.6283401161955E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0368784865729E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4486678106233E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -7.0475660045923E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9789591811598E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.8298584733971E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.1353235954929E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.3564103816882E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -4.3138566113076E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -4.8556628944845E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.6283401161955E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7892340940320E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9035412232948E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -7.0475660045923E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4963404779971E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.8298584733971E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.1353235954929E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.3564103816882E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2071043060479E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8730945683808E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012818166471E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4206409988858E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4760559179900E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7049910210744E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0194583712483E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360456227969E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1359846932495E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9831342454517E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2755137837003E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9946858529561E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3299593457707E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6107872765148E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8698184328147E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0872085302630E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6474441112469E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288106651122E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.5981815643048E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 5.4837809515433E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 5.4837809515433E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.0688840008115E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.0688840008115E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.0892218156082E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -4.9073408986654E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -4.9073408986654E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.9715308817315E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.8048304114015E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.5067666155515E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.5067666155515E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.5616290272164E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.4272988288192E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.8127885948720E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.8127885948720E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.8535462370140E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.7585114730371E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -1.7675363514001E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.95674612466246E-11 1.78279621244742E+04 +(PID.TID 0000.0001) cg2d_init_res = 2.28385210390877E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 7.52629826613197E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 2.2500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.1869816289923E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5557682535854E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2551373266418E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8780828772847E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.3348596219181E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.7061175837315E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.6411535533856E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.1575924266244E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7817421194892E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8005352408440E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0033460418762E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.9448113416548E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.0064243375861E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.3509510975603E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7775293058483E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6151695443117E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9741876989563E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3870426412401E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9932417393423E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3287155851859E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3782460439395E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8834886795009E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171621754595E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7418027244616E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.7365351374432E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.9269162844908E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -9.1092444591194E-04 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.9578776556621E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.4401117586810E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0647857681680E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1115411781578E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2905604080276E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2834734321328E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0923049354459E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2722643860491E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.1395798710194E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2834734321328E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -4.5578206005852E+08 +(PID.TID 0000.0001) %MON am_uZo_mean = 4.3926950577411E+08 +(PID.TID 0000.0001) %MON am_tot_mean = -1.6512554284418E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -5.5706709446506E-01 +(PID.TID 0000.0001) %MON ke_max = 3.3811553352562E+01 +(PID.TID 0000.0001) %MON ke_mean = 4.2911615908339E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6166363583214E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.3399581100985E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765256E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3941398935495E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448885217E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1721368896224E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3080906252431E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5820069584440E-05 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.9026149984173E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.6071312389233E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 2.2500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324375393820E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905911614641E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2393139516806E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999747502186E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999960963062E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -5.9692968262599E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.8041648389917E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.5593503529621E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0421868563313E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4276277093504E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -6.8207607496966E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9237377381337E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.7364591892140E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 3.0172467236593E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.3050703584976E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -4.6269778931543E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -5.1315609963696E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.5593503529621E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.7965937028889E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9047341052666E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -6.8207607496966E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4947760191232E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.7364591892140E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 3.0172467236593E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.3050703584976E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2069705016316E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8730719569071E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012711331783E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4233266947684E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4760125403121E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7049545776803E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0194824103799E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360519814465E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1359538887167E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9830963140153E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2834915958937E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9956266496844E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3239217690487E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6117867152579E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8696578036615E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0870857917392E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6470297634175E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288071703398E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6017284083298E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 2.2500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.7038663608823E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 6.7038663608823E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.0916205229593E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.0916205229593E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.1187413532806E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -5.2366386620341E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -5.2366386620341E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -5.3116693006764E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.0862489812875E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.8288920149686E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.8288920149686E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.8894507731502E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.7421318718084E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.8894518426397E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.8894518426397E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9332085155506E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8333587729564E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -2.2121006131107E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.73031367012300E-10 2.02040197566118E+04 +(PID.TID 0000.0001) cg2d_init_res = 2.12676473871448E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.88896283917260E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6201663881979E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.6502597870929E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7613021186121E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.2619289658637E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.0913389753203E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.8614473389718E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0027195881905E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8594655798667E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2030150122519E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8075344166854E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.1945773621755E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.7080244127589E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.4250167082054E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.9150980144253E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8319006167390E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2444087458853E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6208251063665E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2179340330601E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0797903715738E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4983033136524E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3814265430742E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8810526006252E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171554337238E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7419071103739E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1735634678202E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 2.1961082385249E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -9.9324626976091E-04 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 2.3357447929542E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0026980645658E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.6275144749880E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1546424652400E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2696228004038E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4214679422072E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1507927032216E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2407283110222E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.5613501740542E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4214679422072E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -6.8497444252711E+08 +(PID.TID 0000.0001) %MON am_uZo_mean = 6.6756575374786E+08 +(PID.TID 0000.0001) %MON am_tot_mean = -1.7408688779251E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -6.2930946599089E-01 +(PID.TID 0000.0001) %MON ke_max = 3.6328699643833E+01 +(PID.TID 0000.0001) %MON ke_mean = 4.9561260928759E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.7974091871375E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.3079130579111E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765355E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3943236874816E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448909969E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1754068367895E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.1569913338559E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.8384221333645E-05 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.7745469574856E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.3613733234571E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 2.7000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324262457349E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905822537355E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392943424907E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999692804260E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999951332468E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -6.2127601848656E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.8517130665888E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.4980618460285E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0482196642769E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.4022193752473E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -6.6032989282169E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9117879573710E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.6531850713093E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.9108311036890E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.2569778096608E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -4.9070180028801E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -5.3758530000970E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.4980618460285E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8035309531159E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9058997186831E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -6.6032989282169E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4932025050899E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.6531850713093E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.9108311036890E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.2569778096608E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2068321041659E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8730497341945E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012594602565E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4260252078150E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4759691845951E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7049153868680E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0195064214873E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360568370939E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1359218129024E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9830573186494E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2906404486280E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9964558314860E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3185679943357E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6127526114776E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8695067522784E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0869685623035E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6466415803982E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9288034968558E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6060381012287E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 2.7000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 7.8729196440873E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 7.8729196440873E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.1142635680926E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.1142635680926E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.1481593620143E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -5.5645593377170E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -5.5645593377170E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -5.6468810107412E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.3768348107571E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -3.1514235563989E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -3.1514235563989E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.2154389123788E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -3.0599989575436E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.9718488078843E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.9718488078843E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0194192289490E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9143751239142E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -2.6575603917508E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.01636032923125E-10 2.12746635000538E+04 +(PID.TID 0000.0001) cg2d_init_res = 2.01202106142432E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.99988205891551E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 3.1500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8390691850405E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5741427764730E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.4032435311856E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.5865304783437E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.8142373690068E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.7002316030642E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.2661705165094E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.5128926115572E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.4836308284219E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7976681923905E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3884112799622E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.6325264320056E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.9235221332418E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.4038136282298E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8994782896347E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6324294099858E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2553794007521E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0369845114463E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1425131244381E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5059068103837E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3854864883963E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8786123912256E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171468517872E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7420286842959E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4633854412302E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 2.4389287000047E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.1655889823547E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 2.7100222317547E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1590357588050E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1401377678439E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1703047865950E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2601860279304E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4973217608953E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1886770002566E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2324180339334E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9633481103217E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4973217608953E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -9.5905041802006E+08 +(PID.TID 0000.0001) %MON am_uZo_mean = 9.4121567151211E+08 +(PID.TID 0000.0001) %MON am_tot_mean = -1.7834746507954E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -6.8847018376658E-01 +(PID.TID 0000.0001) %MON ke_max = 3.7814819973423E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.5089762050635E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.9623358874883E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.3375622013472E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765316E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3945272394631E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939448964348E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1786092409167E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.9916055067761E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.3348180997553E-05 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.6339489098880E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 3.0931120647262E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 3.1500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324152121486E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905729749380E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392753717571E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999635968491E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999942069591E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -6.4348008548002E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.8976519244780E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.4434031036787E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0544640890253E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.3709841950514E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -6.3944845579780E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9241432313299E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.5788572838041E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.8147973559098E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.2189804881753E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -5.1586621355838E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -5.5927167680002E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.4434031036787E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8101281746826E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9070331263785E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -6.3944845579780E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4916436164163E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.5788572838041E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.8147973559098E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.2189804881753E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2066895997452E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8730278565928E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012469116003E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4287358640050E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4759258502966E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7048735579805E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0195304051673E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360603552575E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1358885843509E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9830173203700E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.2970769199668E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9971886877879E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3137994726532E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6136877048321E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8693642109980E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0868560830210E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6462763782831E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287998900036E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6110074806104E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 3.1500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 8.9947510834652E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 8.9947510834652E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.1368175363252E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.1368175363252E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.1774752366797E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -5.8838258225618E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -5.8838258225618E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -5.9723394464699E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.6679205432579E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -3.4664057847524E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -3.4664057847524E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.5316146753532E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -3.3728829428845E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.0567683954235E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.0567683954235E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.1087493581621E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9984530862960E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -3.1038408780164E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.77662387210876E-11 2.13103561795090E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.92450851094274E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 7.37779192940604E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8823435206382E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3826492158060E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.0287690291943E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.8710397676592E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.6158809801925E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.4329531583972E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.3641603432945E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.1314132108835E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6553800863025E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7499647724627E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5882741408358E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.9843927912203E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0483394520828E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.8001156361143E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9087805738854E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.8889817264591E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.9391435497172E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8659006213821E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1613365176707E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3768327309819E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3892123013960E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8761640419999E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171366760207E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7421637757956E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7193431407796E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 2.6584839366782E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.4431664263594E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0810247326369E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.3132885459171E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6086431543837E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1647620842322E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2403228686278E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5202988544099E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2027679572633E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2888138240181E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.1474418762278E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5202988544099E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.2766700258758E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.2584280693946E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -1.8241956481211E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -7.3468026866337E-01 +(PID.TID 0000.0001) %MON ke_max = 3.8391538501817E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.9379048963184E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.1025728534581E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5059509513300E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765318E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3947473147613E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939449192418E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1816690342721E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.8310501955395E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.0724252373855E-05 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.4998333627810E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 2.8361841977161E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5324043467180E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905633959022E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392568334128E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999576619351E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999933194307E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -6.6368990110943E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -5.9476724965683E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.3944944249277E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0604429520505E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.3354753471360E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -6.1936432850872E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9431597833778E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.5124486384600E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.7280619934505E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.1880900369721E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -5.3854397228565E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -5.7856524847056E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.3944944249277E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8163875061172E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9081279800874E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -6.1936432850872E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4901058151749E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.5124486384600E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.7280619934505E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.1880900369721E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2065434113211E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8730062859445E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012335850845E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4314580110395E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4758825368060E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7048291918431E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0195543620336E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360626808628E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1358543373235E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9829763703006E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3028956804946E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9978379154076E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3095365464331E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6145943115201E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8692291796233E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0867477130457E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6459314512174E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287963720029E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6165485091755E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.0072786852150E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.0072786852150E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.1592839291403E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.1592839291403E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.2066862397004E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -6.1893025616316E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -6.1893025616316E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -6.2829732951709E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.9516565286964E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -3.7680832752029E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -3.7680832752029E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.8328487137100E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -3.6747053520389E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.1417301280581E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.1417301280581E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.2049715384817E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0831301177561E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -3.5508750855737E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Exporting atmospheric surf fluxes at iter= 8 +(PID.TID 0000.0001) Importing oceanic surface fields at iter= 8 + cg2d: Sum(rhs),rhsMax = -3.02861735690385E-10 2.07145612941451E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.85114853685109E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.00516246776745E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 4.0500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8107786780301E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1888993939968E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2633570492688E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1280588159955E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5246280390143E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0764004995084E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.3299048245117E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.7254804671850E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7454290226217E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6797318861652E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.7616879702670E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.4151963956356E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2083661657324E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0895665434668E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8645832151656E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.8365455793297E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6668703941230E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7072248114418E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1337590394597E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.1686073882204E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3927575199462E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8737099830577E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171251745778E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7423098703509E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9299626878230E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 2.8574604004711E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.7349579484611E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4489960825772E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4656954966394E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.0386702160641E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1435907201608E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2397766115019E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5032393027552E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1978420067004E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3506127294878E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6651461007847E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5032393027552E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.6361815395735E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.6170590592022E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -1.9122480371267E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -7.6808923467450E-01 +(PID.TID 0000.0001) %MON ke_max = 3.6406576385004E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.2356703911959E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.2019267500064E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5893320730436E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765256E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3949814178274E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939449675905E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1845694823325E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6777138790238E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.0755093007748E-05 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.3752196592130E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 2.5956165696411E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 4.0500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323936487603E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905535933968E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392387011943E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999514665664E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999924589959E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -6.8213990777353E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.0068830858667E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.3506372003880E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0659910801356E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2985003898077E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.9998229726543E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9592582825279E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.4530279683918E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.6496445314591E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.1592456892005E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -5.5904169183600E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -5.9585694664481E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.3506372003880E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8223264490267E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9091799637381E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.9998229726543E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4885862255064E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.4530279683918E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.6496445314591E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.1592456892005E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2063939084209E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8729849902975E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012195657763E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4341910043895E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4758392434899E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7047823772793E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0195782925519E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360639405615E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1358191774459E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9829345102630E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3081714568662E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9984136634832E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3057165793050E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6154743726879E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8691008588110E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0866429703511E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6456046890390E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287929159009E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6225856291946E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 4.0500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.1107105677400E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.1107105677400E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.1816394217276E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.1816394217276E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.2357429423719E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -6.4779013541873E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -6.4779013541873E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -6.5743369280342E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -6.2222969862181E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -4.0528823621668E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -4.0528823621668E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -4.1222070218486E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -3.9614052929480E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.2249014573097E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.2249014573097E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.3044847359449E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.1653803101596E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -3.9974428132210E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 185 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 186 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 185 SI_Fract + Computing Diagnostic # 271 CPL_MxlD Counter: 1 Parms: SM M1 + Computing Diagnostic # 272 CPL_SST Counter: 1 Parms: SM M1 + Computing Diagnostic # 273 CPL_SSS Counter: 1 Parms: SM M1 + Computing Diagnostic # 274 CPL_Vel2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 276 CPL_icFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 277 CPL_iceH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_iceH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 278 CPL_snwH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_snwH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 279 CPL_Qic1 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic1 Diagnostic # 277 CPL_iceH + Computing Diagnostic # 280 CPL_Qic2 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic2 Diagnostic # 277 CPL_iceH + Compute Stats, Diag. # 185 SI_Fract vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 186 SI_Thick vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 185 SI_Fract vol( 0 ): 5.099E+14 integral 1.007E+11 + Compute Stats, Diag. # 271 CPL_MxlD vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 272 CPL_SST vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 273 CPL_SSS vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 274 CPL_Vel2 vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 276 CPL_icFr vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 277 CPL_iceH vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.007E+11 + Compute Stats, Diag. # 278 CPL_snwH vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.007E+11 + Compute Stats, Diag. # 279 CPL_Qic1 vol( 0 ): 1.168E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.007E+11 integral 1.168E+10 + Compute Stats, Diag. # 280 CPL_Qic2 vol( 0 ): 1.168E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.007E+11 integral 1.168E+10 + cg2d: Sum(rhs),rhsMax = -7.09405867382884E-11 1.98708989940832E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.76967519983271E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.43501241273977E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 4.5000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6848594393617E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9231047665460E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7444190947062E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.3637707850310E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5157981209031E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0237984666072E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.1874262104186E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.2972886286937E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7791212708607E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5973053675757E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8875269228631E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.7487501894867E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3705151526850E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2687346110712E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7793275754884E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5346153336711E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6309781511183E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5560693520515E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0677284557194E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9364694152393E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3955294245566E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8712563700336E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3171125882317E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7424651680376E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0921767922393E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0382131770658E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.8664287609868E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.8141313171259E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6164570497867E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.4412025461720E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1090537164410E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2689345951364E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4578578084725E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1773535530370E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3984611206433E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.2777024967543E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4578578084725E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -2.0356693598205E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 2.0147589868989E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -2.0910372921637E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -7.8966184999552E-01 +(PID.TID 0000.0001) %MON ke_max = 3.6255339805608E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4075969980408E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.2496599946376E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5987094371302E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765286E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3952272569275E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939450438386E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1873184325865E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5277400598876E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0358956918202E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.2564572560712E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 2.3648505859696E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 4.5000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323831178541E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905436472939E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392209483520E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999450443194E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999916156579E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -6.9901856517209E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.0760703206948E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.3112845558504E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0710932117469E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2642370033689E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.8127222957821E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9714039738414E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.3998632937964E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.5786883776321E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.1321309255468E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -5.7756356343586E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.1129687381266E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.3112845558504E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8279379070765E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9101873985861E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.8127222957821E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4870809687271E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.3998632937964E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.5786883776321E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.1321309255468E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2062414234986E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8729639401610E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2012049283837E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4369341664451E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4757959697597E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7047331992480E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0196021970101E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360642468895E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1357831887332E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9828917756575E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3129649235596E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9989248756725E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.3022896870855E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6163297349727E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8689786198133E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0865414078296E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6452944784939E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287894914515E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6290537828171E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 4.5000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.2105187807645E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2105187807645E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.2039048130327E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.2039048130327E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.2646867799567E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -6.7480499402807E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -6.7480499402807E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -6.8455835578874E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -6.4759558122072E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -4.3190031876151E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -4.3190031876151E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -4.3920976516815E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -4.2306880325330E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.3050261293858E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.3050261293858E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.4017448449050E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.2404563372431E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.4452078521585E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.10048858914524E-10 1.99159181317044E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.66949423377681E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.78752293616910E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 11 +(PID.TID 0000.0001) %MON time_secondsf = 4.9500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8027229874363E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7266542009579E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.6271250846689E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.5791834174476E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5453541625413E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9575760163837E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9580835650144E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.8377564689364E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7810442836975E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5128471293420E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8763496640647E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.9288036608190E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5331364727993E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3476534269637E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6672386087258E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5107966295177E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.5458161791802E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4068052762891E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9761994889629E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7235164941968E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3972964299986E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8688103558448E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170991103326E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7426283050667E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2078879159660E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.2027968730018E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.2129301535528E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 4.1765800690225E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7636362379715E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.8206792694725E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0618807417884E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2761727597328E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3924062658958E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1443740340172E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4242898447772E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.5150262592117E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3924062658958E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -2.4729846269286E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 2.4490760322634E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -2.3908594665184E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.0153347400387E-01 +(PID.TID 0000.0001) %MON ke_max = 3.7520435847328E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4745322385083E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.2456510442683E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5679010322442E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765249E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3954826236733E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939451466518E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1899198426614E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3767848912697E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2923552408242E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.1389346818907E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 2.1358583192564E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 4.9500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323727522648E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905336346372E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2392035464380E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999384497372E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999907844745E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.1453757694642E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.1548679527471E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.2759430024802E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0758534389036E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2345434838562E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.6321024941649E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9816007849281E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.3522871853873E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.5144496739183E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.1060843741834E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -5.9433690697449E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.2509129703130E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.2759430024802E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8332782897723E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9111522833814E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.6321024941649E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4855881237218E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.3522871853873E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.5144496739183E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.1060843741834E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2060862454163E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8729431092626E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011897382277E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4396869568134E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4757527151021E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7046817396889E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0196260755823E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360636995450E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1357464435977E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9828481968164E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3173254175402E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9993791043167E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2992155177732E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6171618309967E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8688619821552E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0864426631085E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6449995837103E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287860842997E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6358965497665E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 4.9500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.3067971611784E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.3067971611784E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.2260783938254E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.2260783938254E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.2935129814743E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -6.9995711499075E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -6.9995711499075E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -7.0971801189569E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -6.7105720216450E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -4.5659602318084E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -4.5659602318084E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -4.6419207979152E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -4.4816169755555E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.3812615412670E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.3812615412670E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.4950566278384E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.3118179510747E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.8935665432600E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.27329258248210E-10 2.17824879641366E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.55706556187029E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.04891327937322E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.1453130192353E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5232966611848E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.1332898766391E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.7722034574566E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5764309927854E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7874350399890E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.6644233587533E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.3250470793202E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7736313623810E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4400470874827E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.7585504044784E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.9232086998412E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.6946561722954E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3472960476350E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5490053798783E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3955683162288E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3970006368283E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2555837706748E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8739742041224E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5600912354978E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3992661241788E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8663785185208E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170848866588E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7427980491373E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2818366808787E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.3529997766607E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.5765856512029E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 4.5364984191376E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9066091969091E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.1779459339012E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0027273550227E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2562399124741E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3117551907220E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1021456366746E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4234872459572E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.4208430067644E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3117551907220E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -2.9457646711443E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 2.9175097326557E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -2.8254938488596E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.0671199445210E-01 +(PID.TID 0000.0001) %MON ke_max = 3.7967400064554E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4687869874642E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.1988093402337E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6422300487684E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765264E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3957455464903E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939452723300E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1923596122937E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.2222398145345E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5771737075180E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.0193588670500E+01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.9031403597730E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323625492662E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905236223896E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391864682985E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999317315865E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999899615141E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.2882852844141E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.2409275195245E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.2442091691377E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0803407245667E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2098285936359E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.4576957532673E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9892968555752E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.3097178834184E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.4562797083430E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.0811063548719E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.0955247627066E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.3742223484888E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.2442091691377E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8383992050075E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9120813975726E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.4576957532673E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4841052351791E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.3097178834184E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.4562797083430E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.0811063548719E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2059286295097E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8729224742376E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011740535839E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4424489382017E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4757094790854E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7046280771549E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0196499283907E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360623871206E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1357090047388E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9828038017939E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3212962202942E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -4.9997827521155E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2964583253341E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6179717935127E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8687504929794E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0863464393467E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6447188109930E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287826856872E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6430645939227E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.3997754099200E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.3997754099200E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.2481572607088E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.2481572607088E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.3222169158347E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -7.2328747287333E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -7.2328747287333E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -7.3302902537247E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -6.9253119418403E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -4.7941106960788E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -4.7941106960788E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -4.8751793261872E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -4.7141528267380E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.4531460236393E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.4531460236393E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.5832517792110E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.3791250507434E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -5.3424773630387E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.43833414465189E-10 2.33660192449813E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.44721013339026E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.00911755037722E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 13 +(PID.TID 0000.0001) %MON time_secondsf = 5.8500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4355996401484E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4048134119166E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5362880878096E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9397464542471E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5903584483197E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6865303793389E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9387052649326E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.7242173743623E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7745683712922E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3896181009427E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5004321374679E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.7277816996941E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.8532467991584E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2940906252090E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4470411635438E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2062634042982E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1825122835996E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1005473328073E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7749958005844E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4614424761691E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4024487314941E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8639658531377E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170700237088E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7429732716570E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3204333440386E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4903720522319E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.2115181084476E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 4.8940777537360E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0464959504674E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.5147984473169E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1086346237539E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2079886192829E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2198976199084E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1150612750434E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3954531845321E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0524805127872E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2198976199084E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -3.4514473638224E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 3.4175212876800E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -3.3926076142399E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.0839393541971E-01 +(PID.TID 0000.0001) %MON ke_max = 3.7389288682396E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4257934292618E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.1829511434642E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6602874704232E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765301E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3960144483920E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939454149972E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1946051639854E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0634588692659E-01 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.8929065050838E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -8.9602076748007E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.6641903018586E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 5.8500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323524545856E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905136600286E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391695897633E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999249053708E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999891445489E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.4195807741836E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.3301110675456E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.2156720954493E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0845476674000E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1881624836090E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.2892270341025E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9953943032350E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.2716435533907E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.4036059447515E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.0571917551172E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.2335536452024E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.4845028632872E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.2156720954493E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8432631776867E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9129841377877E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.2892270341025E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4826307301979E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.2716435533907E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.4036059447515E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.0571917551172E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2057688089389E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8729020142954E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011579258358E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4452195713396E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4756662613281E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7045722867217E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0196737555372E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360603885135E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1356709268561E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9827586196769E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3249212949289E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0001414430061E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2939808466177E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6187606985404E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8686436106533E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0862524743211E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6444506285852E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287793245183E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6505144373341E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 5.8500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.4896629227510E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.4896629227510E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.2701384660266E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.2701384660266E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.3507942722865E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -7.4487769046346E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -7.4487769046346E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -7.5462900994183E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -7.1202259055733E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.0043199665702E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.0043199665702E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.0961626302418E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -4.9268412699246E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.5204808267192E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.5204808267192E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.6655963956940E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.4422534655979E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -5.7919029764031E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.05501385405660E-10 2.41965000666783E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.35336126176688E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.20321102461717E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 14 +(PID.TID 0000.0001) %MON time_secondsf = 6.3000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5953185615604E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2863016189090E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6910144283201E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0792005815695E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5843519884712E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6226565711057E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4839344617080E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.9873369499075E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7947277846694E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3637334244622E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0980838954168E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.3625583850030E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0064775502171E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2142614104867E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3757350611937E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0215396656192E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9090596783418E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.4128018558718E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6899239889331E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4242500315404E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4051637823742E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8615749945810E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170545953624E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7431530869043E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3310908813994E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6162647176614E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.5308389587069E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 5.2494909162953E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.1838692143692E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.8367067275250E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1857077383724E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1340072138264E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1768027469843E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1916435316027E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3430617911719E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.4646721951730E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1768027469843E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -3.9872858519675E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 3.9465168566879E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -4.0768995279595E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.0932229472009E-01 +(PID.TID 0000.0001) %MON ke_max = 3.6209273819057E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3761820940701E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.1853633571976E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6223941769528E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765301E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3962881516462E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939455667631E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1966133208771E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.0121191938918E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2450989668557E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -7.6837702271191E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.4187015294414E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 6.3000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323424063164E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5905037764686E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391527781249E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999180040715E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999883298379E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.5398210389274E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.4177148512842E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.1899753852761E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0885001853651E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1747828241277E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -5.1264234652728E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9980038131749E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.2376082296052E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.3559169340985E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.0343309342398E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.3590272503845E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.5831614797934E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.1899753852761E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8478996511151E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9138735424605E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -5.1264234652728E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4811611988371E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.2376082296052E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.3559169340985E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.0343309342398E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2056069896729E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8728817109331E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011414005931E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4479983989048E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4756230615835E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7045144400151E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0196975571306E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360577741143E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1356322580582E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9827126792037E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3282399688752E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0004600613750E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2917495481207E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6195294556209E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8685408301081E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0861605419664E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6441935904386E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287760335757E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6582075126325E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 6.3000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.5766510259004E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.5766510259004E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.2920192031730E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.2920192031730E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.3792411643083E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -7.6485482959101E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -7.6485482959101E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -7.7469534392471E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -7.2959275142719E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.1977569238522E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.1977569238522E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.2961087696402E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -5.1193692558836E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.5832557985082E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.5832557985082E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.7417094260906E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.5012312675595E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -6.2418103800528E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.27418092638254E-11 2.43921549384649E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.28208589057663E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.02011221421280E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 15 +(PID.TID 0000.0001) %MON time_secondsf = 6.7500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6557405311396E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2084321256707E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.2533159506557E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1890827052066E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5637868173289E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5492544682926E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7234189180227E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0546682897529E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.8375330233664E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3572266552856E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.5613282313370E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8643889334964E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1511196657987E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1299765348858E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3364515995617E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0221250374702E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6067844112248E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.7833927098547E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6246431763305E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4299617023717E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4073662518155E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8592073661172E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170386533609E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7433367672821E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3217272673959E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7318644895668E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.8708749047005E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 5.6028712047106E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3190192341950E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.1489225237767E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2199844381047E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0396237462974E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1301744480811E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2252812387979E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2715992348562E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7031599145779E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1301744480811E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -4.5503659572599E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 4.5018177893013E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -4.8548167958522E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.1143677493702E-01 +(PID.TID 0000.0001) %MON ke_max = 3.4829387099513E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3412474652260E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.1364063507254E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5336567933166E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765321E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3965657336487E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939457185364E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1983406416142E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.3709815340909E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6414407847486E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -6.3669681067626E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.1678219306491E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 6.7500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323324034272E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904939842051E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391360272748E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999110392250E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999875161037E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.6491852570827E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.5003392937793E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.1668162763744E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0921420782372E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1658147267157E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.9690265214393E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -4.9991715129664E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.2072029742583E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.3127506155556E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 1.0125472528029E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.4728430835016E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.6713268535259E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.1668162763744E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8522486344823E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9147628893529E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.9690265214393E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4796952290472E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.2072029742583E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.3127506155556E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 1.0125472528029E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2054433649257E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8728615474511E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011245185730E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4507848324414E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4755798796771E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7044546053929E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0197213332955E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360546067929E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1355930410064E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9826660079921E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3312840932004E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0007424559880E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2897374608414E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6202790980538E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8684417513363E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0860705052347E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6439465813046E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287728051664E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6661094304779E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 6.7500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6609149530825E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.6609149530825E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3137969122236E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3137969122236E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4075541625280E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -7.8329345604295E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -7.8329345604295E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -7.9336409554886E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -7.4533723733649E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.3756423492272E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.3756423492272E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.4760613569959E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -5.2970540559190E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.6415821043039E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.6415821043039E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.8114807669964E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.5561733731106E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -6.6921680030396E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.12866177409887E-10 2.45259196577609E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.23254516547489E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.26959129553230E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 16 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6866997903406E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1154163108137E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3537269367870E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2691065114582E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5353384646002E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5013973390667E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6970426493622E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8570337009958E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.8998569949041E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3620462028375E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.9153482511354E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2787859914943E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2831730567352E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0576732098315E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3215550331491E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0705424981247E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3380775373400E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.1308623771004E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5801261844952E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4555399877374E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4090319298440E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8568625318863E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170222344557E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7435237044896E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3001861507253E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.8382174101574E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.2317833777422E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 5.9543369334447E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4521215501513E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.4521713233954E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2169068887417E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.4965248291795E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0829256522647E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2215764588896E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1875943182662E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.0121993817313E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0829256522647E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -5.1376264241595E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 5.0806290105123E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -5.6997413647177E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.1582531423301E-01 +(PID.TID 0000.0001) %MON ke_max = 3.3523556867216E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3320700614581E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -3.0455429988286E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.4677084347912E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765343E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3968463281443E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939458615225E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1997521561737E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.7320186966608E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.0903711115898E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -5.0197237447454E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 9.1385161836641E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323224437073E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904842784477E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391193343630E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9999040254041E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999867034123E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.7480171311289E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.5732980113438E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.1458888468657E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0954895550018E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1592063685990E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.8168017796631E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0000464449280E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.1800600064581E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.2736888655254E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.9180810728030E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.5761563305877E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.7500744054083E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.1458888468657E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8563010882158E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9156559016689E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.8168017796631E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4782325299094E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.1800600064581E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.2736888655254E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.9180810728030E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2052781169367E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8728415088653E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2011073177134E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4535782609086E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4755367154729E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7043928482494E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0197450841664E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360509427477E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1355533138594E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9826186325964E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3340817895349E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0009923719062E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2879212259600E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6210106435888E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8683460177939E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0859821910285E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6437086346006E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287696306035E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6741894252047E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7426155392348E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.7426155392348E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3354693391336E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3354693391336E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4357303003807E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.0031250955030E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.0031250955030E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.1076346603573E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -7.5936866293495E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.5392280417912E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.5392280417912E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.6372916186309E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -5.4609443398743E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.6956491404945E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.6956491404945E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.8749973336940E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.6072486834722E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.1429469664114E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Exporting atmospheric surf fluxes at iter= 16 +(PID.TID 0000.0001) Importing oceanic surface fields at iter= 16 + cg2d: Sum(rhs),rhsMax = -1.23691279441118E-10 2.45191464776371E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.19946448773642E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.19972542694436E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 17 +(PID.TID 0000.0001) %MON time_secondsf = 7.6500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6600739379674E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0446025975564E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8475621448168E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3199776661582E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5035076290378E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.8705038256818E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4467398062020E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.3195409436818E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9740970732139E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3706422031287E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.1997067138252E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6527277259596E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3981373824975E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0077932895323E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3221134849990E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0806462354591E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1986678433597E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.4770434060278E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5535562098064E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4829262151528E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4101541199809E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8545393065285E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3170053448817E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7437135382286E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2736315982813E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.9362570843650E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.6133708446365E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 6.3038314333082E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.5832823243805E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.7469423197889E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1822889765299E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.0378909561848E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0371581243979E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1864192137058E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0977860734563E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.6537173114964E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0371581243979E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -5.7458821326858E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 5.6800174519166E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -6.5864680769176E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.2285819366267E-01 +(PID.TID 0000.0001) %MON ke_max = 3.2439258523013E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3510127839226E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.9263874305707E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5163768050310E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765363E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3971289717497E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939459890419E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2008267728230E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.1197757292884E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.5996787488194E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -3.6598468757278E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 6.6024891962868E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 7.6500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323125311008E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904746439002E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2391027122087E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998969970448E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999858923850E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.8368936066774E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.6342041198171E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.1269757954922E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.0985898743939E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1559546851964E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.6695404351995E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0011947358176E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.1558472400008E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.2383533287370E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.7208190877400E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.6699743792384E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.8202232387638E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.1269757954922E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8600860218940E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9165548041248E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.6695404351995E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4767733622165E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.1558472400008E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.2383533287370E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.7208190877400E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2051113925504E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8728215815525E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2010898270434E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4563781393235E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4754935688895E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7043292313393E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0197688098694E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360468322432E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1355131110376E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9825705786171E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3366572755919E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0012125321208E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2862802936979E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6217250371690E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8682533207113E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0858955308612E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6434788812222E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287664973460E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6824199306702E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 7.6500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7587905002449E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.7587905002449E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3372800873125E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3372800873125E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4389589145790E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.1564736953844E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.1564736953844E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.2700073572303E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.2225684065778E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.6899166134716E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.6899166134716E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.7819881272148E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.9557844866798E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.7462910302684E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.7462910302684E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.9324934976776E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.1312126178631E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.2254497120526E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 185 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 186 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 185 SI_Fract + Computing Diagnostic # 271 CPL_MxlD Counter: 1 Parms: SM M1 + Computing Diagnostic # 272 CPL_SST Counter: 1 Parms: SM M1 + Computing Diagnostic # 273 CPL_SSS Counter: 1 Parms: SM M1 + Computing Diagnostic # 274 CPL_Vel2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 276 CPL_icFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 277 CPL_iceH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_iceH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 278 CPL_snwH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_snwH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 279 CPL_Qic1 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic1 Diagnostic # 277 CPL_iceH + Computing Diagnostic # 280 CPL_Qic2 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic2 Diagnostic # 277 CPL_iceH + Compute Stats, Diag. # 185 SI_Fract vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 186 SI_Thick vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 185 SI_Fract vol( 0 ): 5.099E+14 integral 1.743E+11 + Compute Stats, Diag. # 271 CPL_MxlD vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 272 CPL_SST vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 273 CPL_SSS vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 274 CPL_Vel2 vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 276 CPL_icFr vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 277 CPL_iceH vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.743E+11 + Compute Stats, Diag. # 278 CPL_snwH vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.743E+11 + Compute Stats, Diag. # 279 CPL_Qic1 vol( 0 ): 2.327E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.743E+11 integral 2.327E+10 + Compute Stats, Diag. # 280 CPL_Qic2 vol( 0 ): 2.327E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.743E+11 integral 2.327E+10 + cg2d: Sum(rhs),rhsMax = -3.49245965480804E-10 2.48840926705145E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.17674283431246E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 9.20652973744071E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 18 +(PID.TID 0000.0001) %MON time_secondsf = 8.1000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6178315783275E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0026857076187E+03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.7270689614592E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3431453084340E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4702418428500E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.3671027461998E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0133514397179E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.3664891652915E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.0507636069900E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3776584479370E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4640844010566E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0291875347307E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4914737791046E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.9851395715244E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3319580010292E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0578148913193E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2061951771423E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.8518935820543E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5401670510318E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5024002633560E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4107383264680E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8522358966501E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3169880179004E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7439057068276E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2480229419905E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0268148631906E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.0154139026363E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 6.6516231952065E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.7127659690493E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.0329850311392E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1218501767981E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.0207687868620E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.9389930069941E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1255459896229E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0083390471562E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.1605781089125E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.9389930069941E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -6.3718499571856E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 6.2969061502114E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -7.4943806974287E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.3238580174213E-01 +(PID.TID 0000.0001) %MON ke_max = 3.1645076900493E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3942014774695E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.7935687858965E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.5613260641726E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765365E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3974125484751E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939460979425E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2015593880378E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.5621667303884E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.1756625732417E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -2.3133022103947E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 4.1163304216086E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 8.1000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5323026645470E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904650605435E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390861651930E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998899961676E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999850828605E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.9166534974790E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.6827802787814E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.1098889387545E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1014934752587E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1566502754619E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.5270559453540E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0020229026893E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.1342651063336E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.2064033498583E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.5334140768368E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.7552843551574E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.8825852158954E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.1098889387545E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8636480874701E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9174590791192E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.5270559453540E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4753174084625E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.1342651063336E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.2064033498583E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.5334140768368E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2049433340894E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8728017532068E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2010720762092E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4591840112681E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4754504399097E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7042638150591E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0197925105206E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360423202324E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1354724643395E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9825218707461E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3390342248581E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0014057076341E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2847945641907E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6224230814148E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8681633286920E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0858104183235E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6432563947805E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287633983312E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6907762413360E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 8.1000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7741407587215E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.7741407587215E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3399121884972E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3399121884972E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4422463011942E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.2848912128521E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.2848912128521E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.4026352249767E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.9066331934482E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.8449576962648E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.8449576962648E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -5.9181239118028E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.6280184474659E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.8175740561994E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.8175740561994E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.9817105183221E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0108368745097E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.3088362354817E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.33877620100975E-09 2.48011849743074E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.15958115998995E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.86682224320349E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 19 +(PID.TID 0000.0001) %MON time_secondsf = 8.5500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5840093554395E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.8838933889141E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.0164394452539E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3406106088741E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4361349895700E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.6430415991165E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.4352362201496E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.9268310315471E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.1208179382712E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3806617285832E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5362773575957E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4435707210255E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5591559203871E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.9896382544210E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3472887103113E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0048794038385E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2391087831926E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2918639737414E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5350788342142E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5116325093968E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4107991934124E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8499504351201E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3169702616671E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7440998585353E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2278117483051E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1106323738491E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.4353150190140E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 6.9978033874630E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8407815151314E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.3134809586829E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0794366799065E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.1920140698460E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.5391191779418E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0893981988720E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.2433214066632E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.1568860432208E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.5391191779418E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -7.0121767059933E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 6.9280871318563E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -8.4089574137016E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.4393368045098E-01 +(PID.TID 0000.0001) %MON ke_max = 3.1163731861745E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4541395417002E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6601714037894E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6034878760825E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765313E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3976958304904E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939461892117E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2019605891498E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0897113188806E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.8222013115882E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = -1.0128491752185E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = 1.7357073238925E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 8.5500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322928289258E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904555071112E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390696700928E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998830446108E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999842748027E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -7.9883589248146E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7195951938539E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0944240610212E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1042571319704E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1593522219098E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.3891794124224E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0028721910729E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.1150433732476E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.1775424294972E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.3555845476708E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.8331635241829E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.9379358414452E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0944240610212E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8670403679289E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9183672652634E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.3891794124224E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4738646839308E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.1150433732476E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.1775424294972E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.3555845476708E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2047740629482E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8727820127323E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2010540910025E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4619955406025E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4754073285489E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7041966576695E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0198161862213E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360374469084E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1354314024219E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9824725328397E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3412329547828E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0015745790319E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2834470705308E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6231054462816E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8680757640496E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0857267306141E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6430404019523E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287603366010E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.6992362286598E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 8.5500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7893974899782E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.7893974899782E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3426268783590E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3426268783590E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4455872320422E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.4038798867156E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.4038798867156E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.5269777636993E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.8590014628516E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -5.9894314288002E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -5.9894314288002E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.0569120760220E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5746237371966E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.8826425580381E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.8826425580381E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.0261660145754E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9907936093067E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.3921815808073E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -6.83940015733242E-10 2.45126165263110E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.14501466698330E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.29427207697932E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4889168153973E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4132975182085E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.2295910014570E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3148042876327E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4017428823675E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.6633463999521E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.7473332505462E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.9395631090536E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.1772145927846E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3800453421477E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0506355413030E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.5166968844467E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5982103147104E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0175641383219E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3653016858790E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9234957890989E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2117525204248E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.6356991865728E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5345619972345E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5131502498441E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4103591593234E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8476811759777E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3169520791761E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7442957179039E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2159204843973E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1882982873773E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.0447284467163E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.3424515856119E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9673897132274E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.5896303558557E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0827715752445E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.3286143895861E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.1981671716409E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0922923363920E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.2800304588187E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.3813346685016E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1981671716409E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -7.6634691546583E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 7.5702509152014E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -9.3218239456841E+07 +(PID.TID 0000.0001) %MON pe_b_mean = -8.5686825979261E-01 +(PID.TID 0000.0001) %MON ke_max = 3.0973375614375E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.5220307440407E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5361625547493E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6433751066560E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765241E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3979775777630E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939462675524E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2020547745837E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.6632532318609E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.5402569700475E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 2.0521204407331E-01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -4.7919407117474E-01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322830205339E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904459663126E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390532251397E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998761512027E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999834677704E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.0529248711528E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7471732455508E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0804299838025E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1068802821727E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1633702013333E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.2557458774612E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0035359367574E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0979369099411E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.1514975553067E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.1870560023909E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.9042789785363E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -6.9868687132946E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0804299838025E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8702755505115E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9192817809818E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.2557458774612E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4724150026518E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0979369099411E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.1514975553067E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.1870560023909E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2046036904910E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8727623499795E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2010358950359E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4648124147922E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4753642348437E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7041278153458E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0198398370556E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360322481928E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1353899516904E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9824225879963E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3432712333221E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0017213579745E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2822229246121E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6237727999598E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8679903819896E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0856443832565E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6428302195021E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287573081322E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7077802543910E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8045621237925E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8045621237925E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3454178721209E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3454178721209E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4489770458880E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.5136232609907E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.5136232609907E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.6430491499806E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.8617829573096E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.1236310445041E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.1236310445041E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.1850769447189E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5728485435376E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.9422225041968E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.9422225041968E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.0660867665401E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9897293805748E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.4754878449339E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.78349795937538E-10 2.39618068068757E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.13164398218503E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.08958048741545E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 21 +(PID.TID 0000.0001) %MON time_secondsf = 9.4500000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.3364927784848E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.0925493111529E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3295348782473E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2685104342327E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3682596265218E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.4561413662448E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6432932803456E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.3582196358960E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.2155231807380E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3780937525552E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3988703584182E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.5860552218813E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.6071377831251E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0630501746670E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3839605383814E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9368109589933E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1707530569707E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4764223333723E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5365071558079E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5115943789619E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4094486986403E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8454270248591E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3169334722224E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7444930464981E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2139543464748E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.2602774769153E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.6353488812308E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.6856513295670E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0926627048541E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.8631739637570E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0539162458301E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.4273358300456E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8201452121410E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0627584410716E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.3787994357067E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.5203081277745E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.8201452121410E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -8.3223250000470E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 8.2200288270188E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -1.0229617302824E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -8.7052055435766E-01 +(PID.TID 0000.0001) %MON ke_max = 3.0993847711869E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.5895401713179E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5710915540837E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6808744684497E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765365E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3982566504304E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939463401970E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2018773753943E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4766528159950E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.3274366276630E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 1.3054364145035E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -2.4704025687798E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 9.4500000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322732363411E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904364253646E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390368284436E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998693086435E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999826610588E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.1111840519025E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7676225322548E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0677183533468E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1093346539500E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1671783222733E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.1266029945282E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0059243481082E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0827234461637E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.1279693939590E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 9.0275567160633E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -6.9693308090791E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.0301964732104E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0677183533468E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8733409661341E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9202011299739E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.1266029945282E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4709680392911E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0827234461637E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.1279693939590E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 9.0275567160633E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2044323141819E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8727427560899E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2010175088553E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4676343515497E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4753211588275E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7040573423368E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0198634630897E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360267561767E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1353481365889E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9823720586204E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3451668241299E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0018487098877E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2811076206811E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6244257349233E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8679069176354E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0855632097600E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6426251433487E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287543094208E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7163906016362E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.4500000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8196360458013E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8196360458013E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3482794007876E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3482794007876E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4524115411890E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.6145426167060E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.6145426167060E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.7509764065127E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.8750857721475E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.2479578769970E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.2479578769970E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.3031496139689E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5819417313146E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -2.9968938037749E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -2.9968938037749E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.1017699890344E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9926451429727E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.5587574912384E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.13504938781261E-09 2.32221203942065E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.11910621979566E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.13590623886977E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 22 +(PID.TID 0000.0001) %MON time_secondsf = 9.9000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.1480718025050E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6204633174757E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6065757781016E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2048106310168E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3374943335847E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0639703678867E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.4894532390027E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8459036460420E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.2338475272035E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3776353881545E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.5730503227923E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.8446339421544E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5861632606572E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1194455005610E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4024295296997E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9431273847538E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1600757772171E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6146568814841E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5401861047864E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5113334552558E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4081076637044E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8431871986319E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3169144436404E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7446916373917E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2225064649202E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.3272055952791E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -6.2943170048307E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 8.0274728796470E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.2166526405970E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0134607130463E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.9880421786094E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.7073562707581E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.4139697776103E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0068604881793E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.7566670893894E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.5544805699869E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4139697776103E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -8.9853639602823E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 8.8740402358541E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -1.1132372442829E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -8.8426153454746E-01 +(PID.TID 0000.0001) %MON ke_max = 3.1082424336368E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.6498212216655E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5921762650522E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7153889197323E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765301E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3985320980722E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939464152355E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2014714554044E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.5169376534079E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -7.1777157619666E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 2.2576429357696E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -4.1890109812938E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 9.9000000000000E+03 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322634741559E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904268777550E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390204777512E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998625256760E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999818539070E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.1640251413260E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7835877148325E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0561427184154E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1116136988167E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1734042747635E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -4.0013557953236E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0102756348489E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0692010620720E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.1067844017173E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.8768126925580E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.0289777257773E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.0685584285467E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0561427184154E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8762493060863E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9211238195539E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -4.0013557953236E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4695234442493E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0692010620720E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.1067844017173E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.8768126925580E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2042600276466E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8727232232060E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009989513694E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4704610032621E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4752781005725E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7039852878996E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0198870643771E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360209994881E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1353059798148E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9823209664628E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3469347783569E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0019588682972E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2800889460827E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6250648561424E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8678251529492E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0854830837887E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6424245888951E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287513374586E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7250514672898E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.9000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8346205993236E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8346205993236E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3512061828634E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3512061828634E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4558869011357E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.7071361082868E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.7071361082868E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.8509792937771E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.8903796843721E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.3628803042391E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.3628803042391E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.4116771635017E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5932055570009E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.0471303775970E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.0471303775970E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.1335427121384E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9963643872880E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.6419932626547E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.04773789644241E-09 2.23706638040396E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.10750025558216E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.39685702468452E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 23 +(PID.TID 0000.0001) %MON time_secondsf = 1.0350000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.9447818077360E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0072870193296E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.1770970230641E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1270279488803E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3114401706690E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0048081448236E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2855470792788E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.6820273610824E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.2323722231178E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3809206179371E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.5735582550945E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0506276610741E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5372874893239E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1801860095811E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4210312413244E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8505504154206E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1265649814816E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5555940034814E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5455744239742E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5148088975532E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4063865251254E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8409612422887E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3168949981597E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7448913287431E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2415133953369E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.3896425686143E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -8.0193525993413E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 8.3679741528754E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.3394015139946E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0403773426486E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.8842795291932E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0001663828488E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.9941317516512E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.9473929106707E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0050300343555E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.4683099523813E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.9941317516512E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -9.6492579811076E+09 +(PID.TID 0000.0001) %MON am_uZo_mean = 9.5289390795794E+09 +(PID.TID 0000.0001) %MON am_tot_mean = -1.2031890152819E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -8.9753398495241E-01 +(PID.TID 0000.0001) %MON ke_max = 3.1052758575498E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.6978246252510E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5804227665183E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7461333260798E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765229E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3988032039497E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939465001379E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2008840007801E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3703486445005E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.0814278101116E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 3.0402968100808E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -5.6005421478104E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.0350000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322537327833E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904173223760E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2390041710413E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998558059423E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999810456973E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.2120223285357E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7969460107015E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0455904959891E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1136957292708E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1814169313849E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.8801083745556E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0143638150745E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0571860024653E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0877323922569E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.7345451427515E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.0835905541272E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.1024882666868E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0455904959891E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8789819527842E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9220484273337E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.8801083745556E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4680809565676E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0571860024653E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0877323922569E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.7345451427515E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2040869223609E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8727037443113E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009802403862E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4732919643547E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4752350601801E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7039117026048E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0199106409732E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360150036267E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1352635024852E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9822693326326E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3485873445636E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0020536983813E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2791570769453E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6256907231277E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8677449129202E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0854039034755E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6422280882916E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287483890565E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7337488208364E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.0350000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8495170858841E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8495170858841E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3541933659674E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3541933659674E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4593996372903E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.7919322313982E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.7919322313982E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -8.9433627772639E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.9054140263865E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.4689080437410E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.4689080437410E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.5155132804945E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.6044540429163E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.0933298119625E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.0933298119625E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.1617403262471E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0000999843193E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.7251981434120E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -4.07453626394272E-10 2.14794716907020E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.09689950663202E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.56748540480504E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 24 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7445293108317E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.6013227445770E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2852606224812E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0386559253695E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2917659883901E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0487631229201E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0478706045161E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0139379145902E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.2127917275569E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3891028908339E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.5555782987951E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2374723707967E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4641704621867E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2391773822423E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4405117902661E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9855879481025E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0792992484933E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2877405126634E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5525843818157E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5218927010868E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4052473534812E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8387488588902E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3168751474610E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7450919761011E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.2704721705254E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.4480873573015E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -9.8099531072855E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 8.7072112781285E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4609351148090E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0672135378270E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.9463749044748E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0171977929929E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.5783161986405E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0009812527092E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0218841050958E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.2518851440592E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.5783161986405E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.0310759413915E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.0181455529706E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.2930388420851E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.0985703740579E-01 +(PID.TID 0000.0001) %MON ke_max = 3.0714983868372E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.7301105334117E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5405846332562E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7724008869297E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765293E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3990694760150E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939466004161E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.2001622363463E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.0291748165665E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.0255975194884E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 3.6422935330669E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -6.6879115311611E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322440116155E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5904077614681E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389879063761E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998491379519E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999802360996E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.2556338962682E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8088710704052E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0359246455152E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1155424586127E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1883236821063E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.7627432254797E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0183423257191E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0465109839303E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0706192007712E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.6004685671518E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.1335523507618E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.1324982138623E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0359246455152E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8815070894527E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9229745927028E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.7627432254797E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4666404829780E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0465109839303E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0706192007712E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.6004685671518E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2039130677022E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8726843132015E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009613877970E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4761268480419E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4751920377333E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7038366355369E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0199341929182E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360087912596E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1352207242691E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9822171775886E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3501365078154E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0021349567658E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2783024933454E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6263040443950E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8676660266643E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0853255810989E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6420351791154E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287454610346E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7424703045590E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8643267679316E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8643267679316E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3572364753278E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3572364753278E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4629465484598E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.8693358720262E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.8693358720262E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.0284843072677E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.9202859600071E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.5665521131443E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.5665521131443E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.6176656575323E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.6155894513557E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.1358321722768E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.1358321722768E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.1990240612510E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0037994065778E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.8083746772310E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Exporting atmospheric surf fluxes at iter= 24 +(PID.TID 0000.0001) Importing oceanic surface fields at iter= 24 + cg2d: Sum(rhs),rhsMax = 9.31322574615479E-10 2.06089620906928E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.08706003198760E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.64755961423872E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 25 +(PID.TID 0000.0001) %MON time_secondsf = 1.1250000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5969380498757E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4528429921951E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.6394546686094E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9432632763294E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2794503824892E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0539963037428E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.8566815817708E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5187671444264E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.1777571015650E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4022788786308E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.5476444889745E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.5067659309724E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3718866990968E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2909302192893E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4612129134560E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1953051867753E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1273716420045E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.8109594182040E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5605297565101E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5302705237864E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4044799199587E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8365495945916E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3168548923405E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7452935908834E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3085557694496E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.5029878696681E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.1665866909856E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 9.0450962346159E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5812505751826E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0939491767789E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.9540995363148E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0521529056405E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.1842460306183E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0017244066221E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0586920907371E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.9015262671600E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.1842460306183E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.0966726180226E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.0828429611248E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.3829656897798E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.2082299298880E-01 +(PID.TID 0000.0001) %MON ke_max = 2.9922980568409E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.7444771616810E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4798168785161E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7937026719031E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765318E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3993305903028E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939467188799E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1993503729465E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.4952510146395E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.9944433127652E-04 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 4.0630783042009E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -7.4517738055111E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.1250000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322343099304E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903981991897E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389716809683E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998425106322E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999794251378E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.2954666890335E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8197185137308E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0270852139226E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1172232092643E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1939495285222E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.6491039242785E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0230782979649E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0370237438322E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0552645349373E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.4742901182411E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.1793904746735E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.1590263874058E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0270852139226E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8838755275210E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9239016745224E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.6491039242785E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4652021246676E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0370237438322E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0552645349373E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.4742901182411E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2037385283899E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8726649243690E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009424066276E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4789654134947E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4751490332945E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7037601338023E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0199577202545E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3360023824839E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1351776634562E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9821645211205E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3515920427485E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0022041371484E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2775174062317E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6269053118318E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8675883575097E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0852480472040E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6418454917388E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287425504768E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7512051608034E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.1250000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8729362473354E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8729362473354E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3568248869744E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3568248869744E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4640981983044E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.9302801810960E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.9302801810960E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.1067538095207E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -1.6174461786450E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.6527490743113E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.6527490743113E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.7121204952487E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.6174461786450E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.1739284845140E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.1739284845140E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.2345392808214E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6174461786450E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.8456186687745E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 185 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 186 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 185 SI_Fract + Computing Diagnostic # 271 CPL_MxlD Counter: 1 Parms: SM M1 + Computing Diagnostic # 272 CPL_SST Counter: 1 Parms: SM M1 + Computing Diagnostic # 273 CPL_SSS Counter: 1 Parms: SM M1 + Computing Diagnostic # 274 CPL_Vel2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 276 CPL_icFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 277 CPL_iceH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_iceH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 278 CPL_snwH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_snwH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 279 CPL_Qic1 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic1 Diagnostic # 277 CPL_iceH + Computing Diagnostic # 280 CPL_Qic2 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic2 Diagnostic # 277 CPL_iceH + Compute Stats, Diag. # 185 SI_Fract vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 186 SI_Thick vol( 0 ): 1.864E+11 Parms: SM PC M1 + use Counter Mate # 185 SI_Fract vol( 0 ): 5.099E+14 integral 1.864E+11 + Compute Stats, Diag. # 271 CPL_MxlD vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 272 CPL_SST vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 273 CPL_SSS vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 274 CPL_Vel2 vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 276 CPL_icFr vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 277 CPL_iceH vol( 0 ): 1.865E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.865E+11 + Compute Stats, Diag. # 278 CPL_snwH vol( 0 ): 1.865E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.865E+11 + Compute Stats, Diag. # 279 CPL_Qic1 vol( 0 ): 2.530E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.865E+11 integral 2.530E+10 + Compute Stats, Diag. # 280 CPL_Qic2 vol( 0 ): 2.530E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.865E+11 integral 2.530E+10 + cg2d: Sum(rhs),rhsMax = -1.80443748831749E-09 1.98042145813068E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.07736275525077E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.77964571622043E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 26 +(PID.TID 0000.0001) %MON time_secondsf = 1.1700000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5313530883387E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4248683818288E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.4263031124062E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.8443721280090E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2746435536024E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0217792830966E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.9918203106839E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0778188958571E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.1303932321389E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4198274666453E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3933085532409E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6096803371224E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2666082332300E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3306917883952E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4827459971344E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3435133741199E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1107086599262E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.1352853444751E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5680064631923E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5365166300824E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4032790698567E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8343630747018E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3168342686542E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7454959809257E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3546752812134E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.5547463519976E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.3586929320219E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 9.3818051788575E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.7004475759027E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1206910388784E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.9091667428612E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0668239863121E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.8268173207508E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.9714932967273E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0732062861730E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6476385579852E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.8268173207508E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.1614143260854E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.1466835517438E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.4730774341541E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.3010022193895E-01 +(PID.TID 0000.0001) %MON ke_max = 2.8611292886584E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.7396600336576E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4280611242936E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8097751280009E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765336E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3995863055554E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939468555148E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1984871343792E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.7792387583676E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0970427191862E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 4.3114398734042E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -7.9086888492503E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.1700000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322246274171E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903886404224E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389554926151E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998359088510E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999786131648E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.3319001820538E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8296729716204E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0189885463937E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1187517273900E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1975903018118E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.5390710731244E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0271506721904E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0285862789778E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0415026017428E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.3557128969408E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.2214556637028E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.1825031589604E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0189885463937E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8860873165155E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9248296414960E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.5390710731244E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4637661474052E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0285862789778E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0415026017428E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.3557128969408E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2035633694404E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8726455729783E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009233088800E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4818073238065E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4751060468934E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7036822429973E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0199812230314E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359957950718E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1351343371676E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9821113823302E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3529632816185E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0022627574832E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2767945718160E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6274950959513E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8675117741227E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0851712091623E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6416586834945E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287396546162E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7599441629855E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.1700000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8808503634603E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8808503634603E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3571696998030E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3571696998030E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4652857354147E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -8.9907475228505E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -8.9907475228505E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.1775552076842E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6771597305664E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.7350731061442E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.7350731061442E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.8027968818451E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.8118472857580E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.2132963710658E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.2132963710658E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.2722642948875E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6411907182021E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.8840574002908E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 8.14907252788544E-10 1.90939533829686E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.06696365920603E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.81048313603146E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 27 +(PID.TID 0000.0001) %MON time_secondsf = 1.2150000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4566204674500E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4062802786385E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2131515562031E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.7453164476420E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2767362027236E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9557380861540E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.9954567361385E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6845334696380E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.0739103907401E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4408147018210E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.1792323108117E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.5483297037533E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1552609665658E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3546712590420E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5042582122408E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4294752673001E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0347268296334E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.2788178835516E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5731731522265E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5373546876728E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.4017141083449E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8321884879797E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3168133000572E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7456991137807E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.4074962208552E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.6037226692619E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.5573008698013E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 9.7173741319896E-02 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.8185588489366E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1475184744649E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.8165892548730E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0584622399603E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.9194160870320E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.8777094670069E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0645539009905E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6096367297387E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.9194160870320E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.2250140060403E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.2093798913163E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.5634114723981E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.3744558117850E-01 +(PID.TID 0000.0001) %MON ke_max = 2.6808804869397E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.7152102543270E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4135912038676E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8205114332646E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765259E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.3998363754437E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939470076897E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1976042884248E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.8989515444026E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.1935002024702E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 4.4034883247933E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -8.0877969512860E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.2150000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322149642604E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903790907018E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389393398884E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998293247408E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999778007577E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.3651249339773E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8386958784548E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0116039569614E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1201467352659E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2001635761590E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.4325370193448E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0312156430173E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0210751277383E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0291820113377E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.2444360896221E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.2599527874025E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2032884096393E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0116039569614E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8881511043111E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9257578062121E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.4325370193448E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4623329061318E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0210751277383E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0291820113377E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.2444360896221E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2033876529292E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8726262547605E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2009041065563E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4846522822687E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4750630785428E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7036030073566E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0200047013101E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359890447028E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1350907614348E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9820577796220E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3542582846227E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0023120480948E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2761276894991E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6280739260269E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8674361654451E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0850950076778E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6414744558045E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287367708237E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7686795100288E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.2150000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8887030349162E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8887030349162E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3575887726378E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3575887726378E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4665063199624E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.0440698400905E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.0440698400905E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.2423423704907E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6279848406166E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.8105870570835E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.8105870570835E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.8865294485600E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.0296778320696E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.2491282313947E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.2491282313947E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.3062577227411E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6827107573062E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.9224405500259E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.84917353350104E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.05507285963142E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.54208934644403E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 28 +(PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.3759243077606E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3983282001089E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.0328788905078E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6490973524937E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2845602715575E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.8612702055723E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.8354295099296E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.3308374941720E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.0113174934723E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4643431913076E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.8600736268399E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3309379905932E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0452045510079E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3603064461437E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5249808620857E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4765443318035E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9064461745128E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.2652591480883E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5742480504678E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5306684907512E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3998643375673E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8300247661208E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3167920149368E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7459029654599E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.4655112514897E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.6500399313847E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.7623772940465E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.0051836204835E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.9356159962204E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1744672062572E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.6838824906940E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0281951718427E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2286208662307E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.7435574522541E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0338947743532E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.4803835600457E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2286208662307E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.2872004150061E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.2706607666318E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.6539648374298E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4272083370321E-01 +(PID.TID 0000.0001) %MON ke_max = 2.4626080875709E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.6715122227204E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.3991305873319E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8258856178362E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765128E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4000804808519E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939471707012E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1967261994043E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.8771702130726E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2869475003537E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 4.3603639813835E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -8.0269009676392E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5322053205810E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903695547925E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389232214835E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998227471498E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999769885670E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.3956202644648E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8465581381697E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 1.0048007917209E+01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1214239061548E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2011398627039E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.3294092206582E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0350985002666E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0143801861652E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0181661118236E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.1401582606245E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.2954326654110E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2217260790770E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 1.0048007917209E+01 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8900782192129E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9266850758565E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.3294092206582E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4609027488402E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0143801861652E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0181661118236E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.1401582606245E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2032114419987E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8726069659907E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2008848126400E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4875000188144E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4750201282291E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7035224699438E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0200281551658E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359821452024E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1350469512932E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9820037307063E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3554843773618E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0023532053437E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2755111357641E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6286423077822E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8673614293498E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0850193744746E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6412925406281E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287338967830E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7774046584266E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8964952907241E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8964952907241E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3580781584670E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3580781584670E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4677573521037E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.0923213280124E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.0923213280124E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.3038448244894E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6288571641328E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.8797535438736E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.8797535438736E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -6.9658458867760E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.2662411439182E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.2817872425402E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.2817872425402E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.3369199444576E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.7376839047522E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.9607719299942E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.65661287307739E-10 1.79986493580429E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.04124213345177E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 8.03144445608176E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 29 +(PID.TID 0000.0001) %MON time_secondsf = 1.3050000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.2922417735756E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4011838136616E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4984121786844E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.5582589133007E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2966380331045E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7447542796884E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.5333531410610E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.0073443242810E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9452287792432E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4897847407661E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4377367361685E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.9723222567271E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9439520816766E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3464581426522E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5446775262561E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5502732392257E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9823087902443E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.1214240520754E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5699873508637E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5160422514672E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3978138325624E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8278704029637E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3167704405645E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7461075309019E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5271643545227E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.6926838682448E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -1.9738526214553E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.0385219716140E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.0516389035068E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2013180992264E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.5199695476417E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.7807533262686E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.5253098843722E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.5780954337155E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.8331858154940E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.4052050635705E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.5253098843722E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.3477191275477E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.3302718041142E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.7447323433479E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4590349916910E-01 +(PID.TID 0000.0001) %MON ke_max = 2.3105621666189E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.6098230316042E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.3864398946460E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8259172675615E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765244E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4003181931399E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939473383688E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1958702353303E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.7392804464315E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3755690172778E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 4.2060089934177E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -7.7685168594234E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.3050000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321956965701E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903600373240E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2389071362796E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998161708795E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999761766720E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.4237339755944E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8533694865102E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.9856518462395E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1226397088518E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2013095566593E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.2296107278523E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0378542491081E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0084062541892E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 2.0083312307403E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 8.0425803882553E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.3282420431209E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2381292591748E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.9856518462395E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8919183227574E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9276108125335E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.2296107278523E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4594754630248E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0084062541892E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 2.0083312307403E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 8.0425803882553E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2030347654753E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8725877034442E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2008654318356E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4903503779458E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4749771959261E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7034406728486E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0200515846818E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359751083741E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1350029208860E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9819492526214E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3566477920696E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0023873120776E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2749401570638E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6292006370558E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8672874787182E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0849442482170E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6411127109136E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287310304550E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7861140749676E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.3050000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9042281328546E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9042281328546E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3586341485813E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3586341485813E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4690364413153E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.1358764068690E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.1358764068690E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.3630219543173E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6391157839718E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -6.9430277917111E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -6.9430277917111E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.0390079953753E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3928478311050E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.3115846693210E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.3115846693210E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.3645870781426E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8028829824048E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.9990551227322E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 6.98491930961609E-10 1.76521035294224E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.02553272086574E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 7.43225127321132E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 30 +(PID.TID 0000.0001) %MON time_secondsf = 1.3500000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.2083276290418E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4142843965159E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.4984121786844E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.4748074680441E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3114139517566E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6127392381737E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3946827777579E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7035848583695E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.8777406823971E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5168715235492E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2088074667590E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.5968712483011E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.8589387323327E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3134394805218E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5637852196383E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5651602171893E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0502222296239E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.8750102146044E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5599714981086E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4947916447703E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3956470552133E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8257239877060E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3167486045682E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7463128218732E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5909777005328E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.7322710441587E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.1916135374955E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.0717549776779E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.1666584312330E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2283665904229E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.3340471398317E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.3704357043051E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.8099423094099E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.3906234200765E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.4034943497620E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.2704166861601E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.8099423094099E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.4063332334720E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.3879757969558E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.8357436516189E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4708424446637E-01 +(PID.TID 0000.0001) %MON ke_max = 2.2349605234907E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.5322174937753E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.3944621647671E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8206880241992E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765259E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4005489676136E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939475035392E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1950477870928E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.5111109546096E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4576526836941E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 3.9652085663466E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -7.3563584397143E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.3500000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321860922498E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903505413858E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388910833181E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998095922575E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999753659451E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.4495030987076E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8587241967130E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.9285387536315E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1237857941774E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.2008702104787E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.1330799491543E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0403474954333E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 2.0030710850107E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9995662142827E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.9514106861289E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.3584879830210E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2527383598209E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.9285387536315E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8936560568423E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9285339024077E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.1330799491543E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4580516120989E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 2.0030710850107E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9995662142827E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.9514106861289E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2028576669938E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8725684642871E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2008459729303E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4932031690871E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4749342815975E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7033576573811E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0200749899627E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359679448703E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1349586835642E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9818943617665E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3577542104330E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024151783462E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2744103169717E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6297493490585E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8672142364915E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0848695914091E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6409347582765E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287281696425E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.7948029129636E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.3500000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9119025373888E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9119025373888E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3592533179675E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3592533179675E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4703413807806E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.1750695323603E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.1750695323603E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.4175411831211E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6511211154321E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.0008339146614E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.0008339146614E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.1063646046696E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.4017094174458E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.3387877004213E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.3387877004213E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.3895480364475E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8756173107726E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.0372933448391E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.04773789644241E-09 1.73491294289108E+04 +(PID.TID 0000.0001) cg2d_init_res = 1.00849151863197E+04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.78880271958242E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 31 +(PID.TID 0000.0001) %MON time_secondsf = 1.3950000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.1266946607443E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4366214803270E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2131515562031E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.4001878190655E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3274356645910E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4712639610231E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3855692771486E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.4082806659824E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.8103566450809E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5456521066514E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.1254473626250E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4156312037249E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7973259575756E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.2628551731086E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5832409510992E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5247286153413E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0534399230677E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5527655966990E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5446337542620E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4695595456360E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3939117274686E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8235839244748E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3167265319103E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7465188559379E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6556065420234E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.7693043226768E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.4155007453495E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1048848214752E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2806893388076E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2555279865142E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.1346254287826E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.1131374501377E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.0838047005691E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.1897171083165E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.1451461615112E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1313740978312E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.0838047005691E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.4628237906030E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.4435528247968E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -1.9270965806231E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4644840250024E-01 +(PID.TID 0000.0001) %MON ke_max = 2.1488090877659E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.4413888938905E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4300260175300E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.8103907677252E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765378E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4007721582697E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939476587220E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1942655525869E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.2171870132200E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5316224289823E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 3.6619884308148E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -6.8324747598982E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.3950000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321765074703E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903410690416E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388750616315E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9998030039603E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999745565235E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.4732327300936E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8624941533504E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.8759394566268E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1248784056375E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1993077587417E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.0397691740278E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0426352124805E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9983139428495E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9917711960945E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.8663682025126E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.3865689882775E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2657826094534E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.8759394566268E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8953146811425E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9294538951419E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.0397691740278E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4566311269759E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9983139428495E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9917711960945E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.8663682025126E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2026801824342E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8725492460528E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2008264433232E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4960582515557E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4748913851887E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7032734642466E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0200983711251E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359606645416E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1349142519809E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9818390739456E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3588087394870E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024376018342E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2739176619902E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6302887996430E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8671416325669E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0847953557520E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6407584990529E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287253130021E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8034666414312E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.3950000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9195194555951E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9195194555951E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3599325020939E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3599325020939E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4716701258675E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.2101825111216E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.2101825111216E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.4675225240603E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6633451782583E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.0535569926891E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.0535569926891E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.1682778304547E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.4108419579566E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.3636268489885E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.3636268489885E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.4123072674586E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9034822432762E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.0754893740853E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -4.65661287307739E-10 1.70727604480292E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.90954916128187E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.77276848247873E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 32 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0510520814720E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4669376144208E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0924715291091E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.3353144761165E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3434710429858E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3253967832293E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3853871846884E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.1096575499735E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7439507000570E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5763565854951E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0090786003031E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2384197938004E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7658353963449E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1972872559586E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6041241907892E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4351996684115E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9971030615678E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.1791509385097E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5250686068541E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4436183148323E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3928689310612E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8214487112511E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3167042461230E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7467256489930E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.7199956098740E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.8042142072724E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.6453131097630E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1379133417568E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.3937645208566E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2828066737265E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.9288708005381E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8612467907062E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.3489353728580E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.9825739431810E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.8925405808933E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1781887493921E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.3489353728580E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.5169900892539E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.4968002837713E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.0189805482616E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4424535407765E-01 +(PID.TID 0000.0001) %MON ke_max = 2.0562469833804E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.3403323617440E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4645641185915E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7953775901169E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765306E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4009870431954E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939477963954E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1935267353941E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.8795508352728E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5960451790375E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 3.3184058363989E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -6.2351776173036E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321669416743E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903316197780E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388590702757E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997964027553E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999737480762E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.4949594794060E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8641276223221E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.8273998835401E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1259124128234E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1972091833014E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -2.9496415611001E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0443277711355E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9940874284766E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9848560062070E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.7871882212002E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.4126433719320E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2774537663384E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.8273998835401E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8968891921270E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9303695729199E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -2.9496415611001E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4552135702482E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9940874284766E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9848560062070E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.7871882212002E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2025023641739E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8725300465788E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2008068553503E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.4989154758219E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4748485066369E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7031881336832E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0201217282819E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359532766694E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1348696381730E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9817834044171E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3598158538749E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024552533964E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2734587677253E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6308193682038E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8670696053249E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0847214996675E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6405837716004E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287224592058E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8121006700751E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9270798180436E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9270798180436E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3606687594606E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3606687594606E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4730207656881E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.2409621634875E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.2409621634875E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.5118657030594E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6754565181606E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.1014750342974E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.1014750342974E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.2249302510062E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.4199137138080E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.3862967650379E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.3862967650379E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.4377394702243E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9064988406339E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.1136434298587E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Exporting atmospheric surf fluxes at iter= 32 +(PID.TID 0000.0001) Importing oceanic surface fields at iter= 32 + cg2d: Sum(rhs),rhsMax = 2.79396772384644E-09 1.69011938718846E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.73776519445464E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.62465678021351E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 33 +(PID.TID 0000.0001) %MON time_secondsf = 1.4850000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.9998788519834E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.5038609109764E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.5705212449625E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.2806424270911E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3585679592955E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.1790150484372E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3946313929014E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.7958006696011E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6787804786732E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6092401232975E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.8671993251839E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0698242223466E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7705909159647E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1198983623074E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6272949328043E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3049265516669E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8882438123897E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.7754630830972E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5027183584983E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4200686475902E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3921951129781E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8193170724931E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3166817524541E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7469333331492E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.7833592079322E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.8373567222426E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -2.8808101160377E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1708296612252E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.5058434175752E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3100854971394E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.7222841430677E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.0336790820227E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.6080524015399E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.7747000655790E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.8423687606410E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1360025651654E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6080524015399E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.5686497762935E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.5475328511551E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.1116925138483E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4075332069169E-01 +(PID.TID 0000.0001) %MON ke_max = 2.0141175566068E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.2319925228194E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.4977486551659E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7761773622365E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765353E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4011928526730E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939479094298E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1928320931745E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.5171049063301E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6496091889039E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 2.9537026478503E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -5.5976947153178E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.4850000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321573960200E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903221921962E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388431120122E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997897861684E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999729405880E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5149100869526E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8636978230430E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.7822563421294E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1268862915253E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1946921753762E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -2.8626464358598E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0453037090181E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9903587097654E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9787385092960E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.7136186712510E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.4369754361575E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2878995980635E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.7822563421294E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8983831302299E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9312802946731E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -2.8626464358598E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4537988745577E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9903587097654E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9787385092960E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.7136186712510E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2023242194144E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8725108639546E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2007872080139E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5017746937684E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4748056458724E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7031017052872E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0201450615683E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359457902273E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1348248536275E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9817273679427E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3607795438038E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024686546202E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2730304942837E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6313413834672E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8669980981500E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0846479888414E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6404104270985E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287196059751E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8207000386036E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.4850000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9374367640300E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9374367640300E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3603560516348E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3603560516348E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4743898158093E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.2601902818178E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.2601902818178E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.5530073030927E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.0198380340749E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.1408303676430E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.1408303676430E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.2767895826929E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.8110179106456E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4055241468008E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4055241468008E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.4610556212483E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0625844241454E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.1569926519466E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 185 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 186 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 185 SI_Fract + Computing Diagnostic # 271 CPL_MxlD Counter: 1 Parms: SM M1 + Computing Diagnostic # 272 CPL_SST Counter: 1 Parms: SM M1 + Computing Diagnostic # 273 CPL_SSS Counter: 1 Parms: SM M1 + Computing Diagnostic # 274 CPL_Vel2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 276 CPL_icFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 277 CPL_iceH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_iceH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 278 CPL_snwH Counter: 1 Parms: SM PC M1 + use Counter Mate for CPL_snwH Diagnostic # 276 CPL_icFr + Computing Diagnostic # 279 CPL_Qic1 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic1 Diagnostic # 277 CPL_iceH + Computing Diagnostic # 280 CPL_Qic2 Counter: 1 Parms: SM C M1 + use Counter Mate for CPL_Qic2 Diagnostic # 277 CPL_iceH + Compute Stats, Diag. # 185 SI_Fract vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 186 SI_Thick vol( 0 ): 1.927E+11 Parms: SM PC M1 + use Counter Mate # 185 SI_Fract vol( 0 ): 5.099E+14 integral 1.927E+11 + Compute Stats, Diag. # 271 CPL_MxlD vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 272 CPL_SST vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 273 CPL_SSS vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 274 CPL_Vel2 vol( 0 ): 5.099E+14 Parms: SM M1 + Compute Stats, Diag. # 276 CPL_icFr vol( 0 ): 5.099E+14 Parms: SM P M1 + Compute Stats, Diag. # 277 CPL_iceH vol( 0 ): 1.928E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.928E+11 + Compute Stats, Diag. # 278 CPL_snwH vol( 0 ): 1.928E+11 Parms: SM PC M1 + use Counter Mate # 276 CPL_icFr vol( 0 ): 5.099E+14 integral 1.928E+11 + Compute Stats, Diag. # 279 CPL_Qic1 vol( 0 ): 2.622E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.928E+11 integral 2.622E+10 + Compute Stats, Diag. # 280 CPL_Qic2 vol( 0 ): 2.622E+10 Parms: SM C M1 + use Counter Mate # 277 CPL_iceH vol( 0 ): 1.928E+11 integral 2.622E+10 + cg2d: Sum(rhs),rhsMax = 4.19095158576965E-09 1.67765568079386E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.57593432749549E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.59449181342870E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 34 +(PID.TID 0000.0001) %MON time_secondsf = 1.5300000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0131910588020E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.5459965559297E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.7115637348875E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.2362552787345E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3720636504320E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.0347957731407E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.4137236972257E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4550458467915E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6145671732945E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6444608176514E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7079289175172E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9120923953071E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.8169498590154E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0340251935620E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6531729018410E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1436243966880E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7351392684080E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3593931968745E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4790569874316E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4011612198958E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3921101988474E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8171879432197E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3166590807946E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7471418184986E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8452711350157E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.8690279002130E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.1217295147054E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.2036476620716E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.6170039778535E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3374568662229E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.5186776103187E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.1827923360158E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8644235997412E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.5698970549888E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9388843071374E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.9733075377719E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.8644235997412E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.6176388724257E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.5955824161957E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.2056456229973E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.3624750107282E-01 +(PID.TID 0000.0001) %MON ke_max = 2.0789328679819E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.1189649012818E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5293193001707E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7534676751756E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765378E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4013887967288E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939479912185E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1921806990635E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.1454003448431E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6911564192525E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 2.5838066215708E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -4.9474899006958E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.5300000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321478734181E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903127825525E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388271938540E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997831522937E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999721337183E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5330630500816E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8605990015501E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.7405198444902E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1278161437058E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1918526319565E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -2.7787856492121E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0462765330091E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9871068332903E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9733430312171E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.6454232247297E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.4596591615171E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.2972280830319E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.7405198444902E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.8998124505271E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9321855944696E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -2.7787856492121E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4523867207386E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9871068332903E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9733430312171E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.6454232247297E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2021457990097E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8724916964459E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2007675067607E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5046353122825E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4747628028202E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7030142186767E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0201683711252E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359382141023E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1347799093503E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9816709788304E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3617034024078E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024781913216E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2726299355353E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6318551466214E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8669270605389E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0845747957887E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6402383336065E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287167497213E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8292591440240E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.5300000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9470127608655E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9470127608655E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3607980939478E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3607980939478E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4757773353132E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.2793478944532E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.2793478944532E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.5901321839063E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6310478766575E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.1768747423800E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.1768747423800E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.3241908501928E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.4096594974249E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4231739855731E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4231739855731E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.4823999398167E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.9080914145145E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.2014626544658E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.32830643653870E-10 1.66898999186696E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.42708604580953E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.36830534953096E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 35 +(PID.TID 0000.0001) %MON time_secondsf = 1.5750000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0261762973391E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.9669871667481E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2852606224812E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.2019507361439E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3835596903916E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8943574860026E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.4425983851738E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.0763784034578E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5506523244129E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6820303656701E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.5393585569258E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7658665064885E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9093307306480E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.9428182478142E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6817200132014E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9614913506196E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6278451787838E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9449225890075E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4553705588315E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3879408790317E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3919072707778E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8150608872955E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3166362439495E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7473511337287E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9055358304594E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.8994753879507E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.3678029854232E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.2363685131030E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.7272626863511E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3647822506723E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3203671123151E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.1437214930016E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.1217707390217E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3704633527402E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.8234128623940E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.7044413370793E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1488096021236E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.6638116924577E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.6407980344139E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.3013658043804E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.3097697413864E-01 +(PID.TID 0000.0001) %MON ke_max = 2.1404507219128E+01 +(PID.TID 0000.0001) %MON ke_mean = 6.0033143393330E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5589745845394E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7280047398144E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765331E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4015740911804E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939480359132E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1915704380614E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.7766898488044E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.7196280609423E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 2.2211585291852E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -4.3061041312374E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.5750000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321383671370E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5903033860557E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2388113039446E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997764994856E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999713271282E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5495911039044E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8547641246192E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.7018966194894E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1287189383853E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1887571136461E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -2.8559561058079E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0471919790375E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9843190189703E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9685990008294E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.5823864997979E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.4809312477802E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3055190873917E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.7018966194894E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9012020995248E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9330851812281E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -2.8559561058079E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4509768241392E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9843190189703E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9685990008294E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.5823864997979E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2019671283563E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8724725424229E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2007477564986E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5074972060269E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4747199774016E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7029257132223E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0201916570960E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359305572519E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1347348159437E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9816142509685E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3625904126842E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024841508207E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2722546003184E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6323608621820E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8668564513040E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0845018991273E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6400673743941E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287138932773E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8377715951901E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.5750000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9565058725934E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9565058725934E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3613099946413E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3613099946413E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4771817683239E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.2961464214018E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.2961464214018E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.6234010632237E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.5806033360733E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.2095058235695E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.2095058235695E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.3673830003307E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3539783468218E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4392622683577E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4392622683577E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5019082728062E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8873792924647E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.2459113892470E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.09547579288483E-09 1.66351302805176E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.29097075909330E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.20018525226102E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 36 +(PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0377676939216E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5019279592522E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2852606224812E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1773111644740E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3928759764805E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.7584867421658E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.4804503255345E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.6498033083228E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.4862129500675E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7218298373243E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.5097091846182E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7086983404848E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0510534811877E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.8489594479978E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7125815938207E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7683461253401E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5463769379341E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.5425292859631E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4326794392662E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3802906894992E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3915865268782E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8129357615203E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3166132518324E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7475613068949E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9641454331903E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.9289075742928E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.6187627425452E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.2689932674754E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8366290956848E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3924286181365E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1284875727052E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.9100981966479E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.3841157079640E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1775159306171E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4900224391086E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.7839755722002E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7058317819791E-03 +(PID.TID 0000.0001) %MON am_eta_mean = -1.7070407250460E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.6830459711026E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.3994753943415E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.2515234968212E-01 +(PID.TID 0000.0001) %MON ke_max = 2.1963402765623E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.8865228439761E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.5863285333562E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7005294436661E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765259E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4017479827489E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939480385749E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1909982863743E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4201890861479E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.7340526147776E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 1.8748397490074E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -3.6894662841692E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321289060524E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5902939972018E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2387955015946E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997698259419E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999705205536E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5645532274166E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8460821712315E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.6661326299842E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1295930627508E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1854360611950E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -2.9644752891851E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0482291932459E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9819864353307E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9644399064418E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.5242987733095E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.5008218712143E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3128353005148E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.6661326299842E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9025390913735E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9339789146359E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -2.9644752891851E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4495689801151E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9819864353307E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9644399064418E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.5242987733095E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2017882014339E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8724534003546E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2007279617374E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5103608457436E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4746771695341E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7028362280579E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0202149196252E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359228287834E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1346895836465E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9815571978479E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3634433048445E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024867629123E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2719022097130E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6328587516453E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8667862218772E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0844292776857E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6398974461872E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287110157188E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8462301407596E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9659175897475E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9659175897475E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3618891916626E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3618891916626E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4786016592756E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.3104653317857E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.3104653317857E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.6530298081411E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.5833155101762E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.2388863545051E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.2388863545051E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.4066194060901E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3526516195016E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4538935926694E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4538935926694E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5197096303734E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8865724232103E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.2903392054542E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 6.98491930961609E-10 1.66083451452891E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.16493872557125E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.17180327292828E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 37 +(PID.TID 0000.0001) %MON time_secondsf = 1.6650000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0473919459892E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.9069039481008E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2852606224812E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1617556060979E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3999982833962E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.6273844196853E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.5256732665566E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.1666613462442E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.4204963900267E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7636712604545E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.6062961242976E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8007643581316E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2442025222033E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.7544774325229E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7452938049273E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6209281318894E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4551279859477E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1595448151720E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4117892747120E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3773098709029E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3911530827646E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8108128152432E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3165901114817E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7477723676817E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.0211764678684E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.9575008731095E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -3.8743496616294E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.3015227247241E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.9451211877779E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4201574866728E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.9433390773988E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.4849909025018E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.6555821079949E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9913400516704E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3212137629791E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1681009105728E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0260670232843E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.7472164339753E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.7222098270643E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.5006606911039E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.1894313452950E-01 +(PID.TID 0000.0001) %MON ke_max = 2.2444757583034E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.7695468861767E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6109141632269E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6716739044878E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765336E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4019097720260E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939479952816E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1904604837646E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0823810314446E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.7335366551103E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 1.5508945075793E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -3.1084454409844E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.6650000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321194863068E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5902846102994E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2387797809658E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997631292701E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999697138551E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5779201089672E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8345588005551E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.6332344940465E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1304329357947E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1818832673897E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.0701674306086E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0495202400637E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9801000990680E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9608655254956E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.4709572621156E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.5193369852669E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3192082348203E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.6332344940465E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9038240317897E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9348667668421E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.0701674306086E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4481630922643E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9801000990680E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9608655254956E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.4709572621156E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2016090619646E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8724342687574E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2007081271366E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5132257197035E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4746343791319E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7027458021056E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0202381588569E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359150379501E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1346442226349E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9814998325729E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3642645947541E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024861557491E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2715706488663E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6333490878712E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8667163392343E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0843569141168E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6397284576935E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287081178458E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8546266530332E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.6650000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9752493591818E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9752493591818E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3625330805597E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3625330805597E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4800356434173E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.3223554487584E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.3223554487584E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.6792417812565E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.5956691375443E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.2651832395800E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.2651832395800E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.4421392482842E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3612497642754E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4671646119505E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4671646119505E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5359218397189E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8893605779941E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.3347463877627E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.32830643653870E-10 1.66069528672159E+04 +(PID.TID 0000.0001) cg2d_init_res = 9.04504401541397E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.19518567833773E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 38 +(PID.TID 0000.0001) %MON time_secondsf = 1.7100000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0549377737148E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.1917770274030E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0924715291091E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1545755890403E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4050289667461E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5008918258420E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.5759636770859E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6198678055873E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.3530198624953E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8073631982245E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.6932262165466E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8605796127833E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4895282434776E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.6606743074071E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7794642796411E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7819475143390E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3568473421534E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8006021562863E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3934068353875E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3778366935849E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3906164544464E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8086926412973E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3165668280540E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7479843445356E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.0767717201760E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.9854053706535E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.1343271851633E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.3339575317507E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.0527603937968E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4479628473571E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.9954765597060E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0104329871088E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.9401347565286E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9529915737521E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4070189240775E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5821507511574E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0810253938035E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.7842469993823E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.7581907265363E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.6056272845993E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.1248224725829E-01 +(PID.TID 0000.0001) %MON ke_max = 2.2831077560609E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.6529429858597E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6322115438212E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.6875490427272E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765318E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4020588342109E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939479031511E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1899525417712E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7673326645217E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.7172589801528E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 1.2527861375866E+00 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -2.5695574449242E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.7100000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321101102702E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5902752197788E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2387641485862E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997564061556E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999689065524E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.5899960461905E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8203161975736E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.6027176707598E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1312628587875E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1780633678656E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.1731028835124E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0511479520755E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9786474447099E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9577477076016E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.4302373810767E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.5367397032036E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3246451086939E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.6027176707598E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9050767468865E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9357487806199E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.1731028835124E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4467587123741E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9786474447099E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9577477076016E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.4302373810767E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2014297063266E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8724151461541E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2006882564251E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5160921969652E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4745916061047E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7026544740121E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0202613749333E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3359071940758E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1345987428185E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9814421678588E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3650562392467E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024823772304E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2712581386770E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6338320006933E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8666467719420E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0842847939484E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6395603272182E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287051962857E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8629519031665E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.7100000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9845025855568E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9845025855568E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3632391250210E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3632391250210E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4814824404900E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.3319507587180E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.3319507587180E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.7022605548845E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6096760285934E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.2885645865990E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.2885645865990E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.4741873121001E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3716168579643E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4791626360963E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4791626360963E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5506531508154E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8927933588567E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.3791333719285E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.31322574615479E-10 1.66288504727215E+04 +(PID.TID 0000.0001) cg2d_init_res = 8.92696542743892E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.17734577985740E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 39 +(PID.TID 0000.0001) %MON time_secondsf = 1.7550000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0606570746227E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3706826409612E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.8557818674437E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1549595611294E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4081464185157E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.3786717709804E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.6285365366850E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0004045702414E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2836856273766E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8527583451557E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7616001352883E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8858371958717E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7864130968851E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.5681708063238E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8148684506117E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8859826721781E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2979182227342E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4681083356736E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3782379312042E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3809071996153E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3899899906490E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8065761068690E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3165434043824E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7481972708241E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.1310968674776E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.0136451295089E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.3984867321438E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.3662981721337E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1595591464032E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4757453872208E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0709649259343E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.2956856813099E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0241342116519E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.0279761923065E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4432510023071E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8496697284579E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1352226659647E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.8180580043274E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.7909075818704E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.7150422457005E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -9.0587476584363E-01 +(PID.TID 0000.0001) %MON ke_max = 2.3109933232889E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.5370193212879E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6496864240304E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7453777198197E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765338E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4021946350419E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939477604946E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1894692820495E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4770124911365E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6844966518132E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 9.8190283406665E-01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -2.0757253354405E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.7550000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5321007618352E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5902658206749E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2387485739779E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997496522421E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999680993037E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.6006885448281E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.8035433885371E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.5746393318696E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1320620912162E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1739291877031E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.2733496802783E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0531484416126E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9776100356393E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9550273135526E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.3958644904084E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.5528946343106E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3291476533815E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.5746393318696E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9062740262071E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9366250327862E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.2733496802783E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4453564345326E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9776100356393E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9550273135526E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.3958644904084E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2012503368986E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8723960310661E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2006683585546E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5189568915699E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4745488503573E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7025622821054E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0202845679938E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3358993064229E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1345531537352E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9813842160157E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3658201064763E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024754521985E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2709630802053E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6343077344830E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8665774994612E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0842129041846E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6393929862076E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9287022601158E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8711961279294E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.7550000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9936786329368E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9936786329368E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3640048767312E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3640048767312E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4829408493401E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.3393213075260E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.3393213075260E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.7223038144195E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6237898924275E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.3091877106039E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.3091877106039E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.5029487619223E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3821713437708E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4899669229075E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4899669229075E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5640036790385E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8962998470211E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.4235004041709E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.65661287307739E-10 1.66718181136167E+04 +(PID.TID 0000.0001) cg2d_init_res = 8.80664837846547E+03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 16 +(PID.TID 0000.0001) cg2d_last_res = 6.13396902197582E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 40 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0650288573976E+03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4586990104838E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.8557818674437E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1620107031533E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.4095739168574E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2816859097701E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.6803902917549E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0315561600276E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2127863722436E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8997628216371E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.8101860208196E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8761830720230E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.1328976958084E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.4770648424778E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8514577780672E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9318969926087E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3478939925981E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1627116683190E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3670029439548E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3860203357890E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 4.3894893994149E+02 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.8044641144518E+02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.3165198407872E+02 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7484111771298E+01 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.1843258359817E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.0418864618863E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = -4.6666578783720E-02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.3985451684563E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.2655160159081E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.5037984217572E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3270431700217E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5703258754553E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0562081758248E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1019351527699E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4294021328686E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.9677351238509E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1885446081305E-02 +(PID.TID 0000.0001) %MON am_eta_mean = -1.8485920666834E+10 +(PID.TID 0000.0001) %MON am_uZo_mean = 1.8202973850771E+10 +(PID.TID 0000.0001) %MON am_tot_mean = -2.8294681606300E+08 +(PID.TID 0000.0001) %MON pe_b_mean = -8.9920846098722E-01 +(PID.TID 0000.0001) %MON ke_max = 2.3274520744070E+01 +(PID.TID 0000.0001) %MON ke_mean = 5.4219828228741E-01 +(PID.TID 0000.0001) %MON ke_vol = 4.9523908919847E+19 +(PID.TID 0000.0001) %MON vort_r_min = -2.6628274863779E-05 +(PID.TID 0000.0001) %MON vort_r_max = 1.7969658798229E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 6.7242814765321E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 8.4023167417815E-05 +(PID.TID 0000.0001) %MON vort_p_mean = 6.8939475668446E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 9.1890048417728E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2116261650692E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6346545144406E-03 +(PID.TID 0000.0001) %MON surfExpan_Heat_mean = 7.3806303010162E-01 +(PID.TID 0000.0001) %MON En_Budget_T2PE_mean = -1.6270471290898E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON land_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON land_SnwH_ave_G = 1.5320914209208E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_S = 5.5902564081575E-01 +(PID.TID 0000.0001) %MON land_SnwH_ave_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_ave_N = 1.2387330187032E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_S = 9.9997428622562E-01 +(PID.TID 0000.0001) %MON land_SnwH_max_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_SnwH_max_N = 9.9999672924112E-01 +(PID.TID 0000.0001) %MON land_Tsrf_ave_G = -8.6103527813576E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_S = -6.7842361583242E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_T = 9.5482841321126E+00 +(PID.TID 0000.0001) %MON land_Tsrf_ave_N = -2.1328537581606E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_S = -3.1694345969185E+01 +(PID.TID 0000.0001) %MON land_Tsrf_min_T = -3.3758031740781E+00 +(PID.TID 0000.0001) %MON land_Tsrf_min_N = -5.0555195537050E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_S = 1.9769625512168E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_T = 1.9526536255555E+01 +(PID.TID 0000.0001) %MON land_Tsrf_max_N = 7.3625682286330E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_G = -7.5681532444424E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_S = -7.3327081356348E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_T = 9.5482841321126E+00 +(PID.TID 0000.0001) %MON land_Tgr1_ave_N = -1.9074383697402E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_S = -3.9374956083789E+01 +(PID.TID 0000.0001) %MON land_Tgr1_min_T = -3.3758031740781E+00 +(PID.TID 0000.0001) %MON land_Tgr1_min_N = -5.4439564754937E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_S = 1.9769625512168E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_T = 1.9526536255555E+01 +(PID.TID 0000.0001) %MON land_Tgr1_max_N = 7.3625682286330E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_G = 4.2010708325206E+00 +(PID.TID 0000.0001) %MON land_Tgr2_ave_S = -1.8723769220229E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_T = 2.2006484308458E+01 +(PID.TID 0000.0001) %MON land_Tgr2_ave_N = -2.5218220859903E-01 +(PID.TID 0000.0001) %MON land_Tgr2_min_S = -6.4745061117890E+01 +(PID.TID 0000.0001) %MON land_Tgr2_min_T = -9.7024692642435E+00 +(PID.TID 0000.0001) %MON land_Tgr2_min_N = -4.0203077381745E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_S = 2.3358913840320E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_T = 3.1345074645359E+01 +(PID.TID 0000.0001) %MON land_Tgr2_max_N = 2.9813259889358E+01 +(PID.TID 0000.0001) %MON land_TotEnerg_G = -6.3665577378170E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_S = -5.0024653675090E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_T = 7.2706841379228E+21 +(PID.TID 0000.0001) %MON land_TotEnerg_N = -8.6347765082308E+21 +(PID.TID 0000.0001) %MON land_grdW_ave_G = 4.8665085055124E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_S = 3.0841412330367E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_T = 5.6392263736435E-01 +(PID.TID 0000.0001) %MON land_grdW_ave_N = 4.9286993214743E-01 +(PID.TID 0000.0001) %MON land_grdW_min_S = 2.8793488443815E-02 +(PID.TID 0000.0001) %MON land_grdW_min_T = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON land_grdW_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Land statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 2.0027788264341E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 2.0027788264341E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3648279788445E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3648279788445E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4844097432130E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -9.3446648795405E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -9.3446648795405E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -9.7395775736993E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6377093867615E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -7.3272175156209E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -7.3272175156209E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -7.5286539350651E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.3926021297251E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -3.4996513356648E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -3.4996513356648E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -3.5760663536733E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.8997675094546E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.4678481093813E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 40 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.139447750523686 +(PID.TID 0000.0001) System time: 1.5574479922652245 +(PID.TID 0000.0001) Wall clock time: 17.719861984252930 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.18633800372481346 +(PID.TID 0000.0001) System time: 0.10291000455617905 +(PID.TID 0000.0001) Wall clock time: 0.30870103836059570 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 15.953071400523186 +(PID.TID 0000.0001) System time: 1.4544949680566788 +(PID.TID 0000.0001) Wall clock time: 17.411084890365601 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.20593799650669098 +(PID.TID 0000.0001) System time: 0.82012100517749786 +(PID.TID 0000.0001) Wall clock time: 1.0261001586914062 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.747107148170471 +(PID.TID 0000.0001) System time: 0.63435703516006470 +(PID.TID 0000.0001) Wall clock time: 16.384946823120117 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.746799677610397 +(PID.TID 0000.0001) System time: 0.63434088230133057 +(PID.TID 0000.0001) Wall clock time: 16.384628057479858 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 15.746196806430817 +(PID.TID 0000.0001) System time: 0.63432288169860840 +(PID.TID 0000.0001) Wall clock time: 16.383999824523926 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0096758604049683E-002 +(PID.TID 0000.0001) System time: 9.8103284835815430E-004 +(PID.TID 0000.0001) Wall clock time: 1.1095523834228516E-002 +(PID.TID 0000.0001) No. starts: 120 +(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0346502065658569E-002 +(PID.TID 0000.0001) System time: 1.1146068572998047E-005 +(PID.TID 0000.0001) Wall clock time: 1.0358333587646484E-002 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "CPL_EXPORT-IMPORT [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.5041486024856567 +(PID.TID 0000.0001) System time: 7.8082084655761719E-006 +(PID.TID 0000.0001) Wall clock time: 1.5041995048522949 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.1876409053802490 +(PID.TID 0000.0001) System time: 4.0309429168701172E-003 +(PID.TID 0000.0001) Wall clock time: 2.1917192935943604 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "AIM_DO_PHYSICS [DO_ATMOSPHERIC_PHYS]": +(PID.TID 0000.0001) User time: 2.1429437398910522 +(PID.TID 0000.0001) System time: 3.2750368118286133E-003 +(PID.TID 0000.0001) Wall clock time: 2.1463437080383301 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.3812732696533203E-004 +(PID.TID 0000.0001) System time: 2.4914741516113281E-005 +(PID.TID 0000.0001) Wall clock time: 6.7162513732910156E-004 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1020462512969971 +(PID.TID 0000.0001) System time: 2.9981136322021484E-005 +(PID.TID 0000.0001) Wall clock time: 3.1022436618804932 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.21251308917999268 +(PID.TID 0000.0001) System time: 1.0704994201660156E-004 +(PID.TID 0000.0001) Wall clock time: 0.21270799636840820 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11910045146942139 +(PID.TID 0000.0001) System time: 2.6816129684448242E-004 +(PID.TID 0000.0001) Wall clock time: 0.11941766738891602 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1080782413482666 +(PID.TID 0000.0001) System time: 3.6669969558715820E-003 +(PID.TID 0000.0001) Wall clock time: 1.1118230819702148 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0265686511993408 +(PID.TID 0000.0001) System time: 9.9062919616699219E-005 +(PID.TID 0000.0001) Wall clock time: 1.0267086029052734 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "SHAP_FILT_UV [MOM_CORR_STEP]": +(PID.TID 0000.0001) User time: 0.90655207633972168 +(PID.TID 0000.0001) System time: 8.7976455688476562E-005 +(PID.TID 0000.0001) Wall clock time: 0.90668940544128418 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.27584207057952881 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.27589964866638184 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12751471996307373 +(PID.TID 0000.0001) System time: 2.1302700042724609E-004 +(PID.TID 0000.0001) Wall clock time: 0.12777566909790039 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.2502961158752441E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.2555532455444336E-002 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9978876113891602 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9980056285858154 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0328433513641357 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.0328648090362549 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "SHAP_FILT_TS [TRC_CORR_STEP]": +(PID.TID 0000.0001) User time: 1.0320888757705688 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.0321931838989258 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.68222510814666748 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.68233728408813477 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9513968229293823 +(PID.TID 0000.0001) System time: 3.4569978713989258E-002 +(PID.TID 0000.0001) Wall clock time: 1.9860725402832031 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.27797341346740723 +(PID.TID 0000.0001) System time: 0.31434381008148193 +(PID.TID 0000.0001) Wall clock time: 0.59278678894042969 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8867840766906738E-002 +(PID.TID 0000.0001) System time: 0.27581495046615601 +(PID.TID 0000.0001) Wall clock time: 0.30739259719848633 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 32502 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 32502 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/cpl_aim+ocn/results/ocnSTDOUT.icedyn b/verification/cpl_aim+ocn/results/ocnSTDOUT.icedyn new file mode 100644 index 0000000000..76c71071cb --- /dev/null +++ b/verification/cpl_aim+ocn/results/ocnSTDOUT.icedyn @@ -0,0 +1,4123 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68g +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Fri Mar 4 23:25:25 EST 2022 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) ># useCubedSphereExchange :: use Cubed-Sphere type topology for EXCH +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > useCoupler=.TRUE., +(PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., +(PID.TID 0000.0001) >#debugMode=.TRUE., +(PID.TID 0000.0001) ># Activate one line below to support 2, 3 or 6 way multi-threading +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) >#nTx=2, +(PID.TID 0000.0001) >#nTx=3, +(PID.TID 0000.0001) >#nTx=6, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 6 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 32 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 32 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 192 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 32 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 6 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = T ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= T ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) ======= Starting MPI parallel Run ========= +(PID.TID 0000.0001) My Processor Name (len: 6 ) = villon +(PID.TID 0000.0001) Located at ( 0, 0) on processor grid (0: 0,0: 0) +(PID.TID 0000.0001) Origin at ( 1, 1) on global grid (1: 192,1: 32) +(PID.TID 0000.0001) North neighbor = processor 0000 +(PID.TID 0000.0001) South neighbor = processor 0000 +(PID.TID 0000.0001) East neighbor = processor 0000 +(PID.TID 0000.0001) West neighbor = processor 0000 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 6, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: regular 6-facets Cube +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh =3.E5, +(PID.TID 0000.0001) > viscAr =1.E-3, +(PID.TID 0000.0001) > diffKhT=0., +(PID.TID 0000.0001) > diffK4T=0., +(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0., +(PID.TID 0000.0001) > diffK4S=0., +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1030., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) >#allowFreezing=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=10., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > select_rStar=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > temp_EvPrRn=0., +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMinDr=20., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > debugLevel=2, +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-9, +(PID.TID 0000.0001) >#cg2dTargetResWunit=1.E-14, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=5, +(PID.TID 0000.0001) > deltaTmom =3600., +(PID.TID 0000.0001) > deltaTtracer=3600., +(PID.TID 0000.0001) > deltaTClock =3600., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq =2592000., +(PID.TID 0000.0001) >#taveFreq =2592000., +(PID.TID 0000.0001) > dumpFreq =864000., +(PID.TID 0000.0001) > monitorFreq =86400., +(PID.TID 0000.0001) > monitorFreq =1., +(PID.TID 0000.0001) > forcing_In_AB=.FALSE., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) >#tauThetaClimRelax= 5184000., +(PID.TID 0000.0001) ># restoring timescale for salinity: 2yrs, 20 yrs +(PID.TID 0000.0001) >#tauSaltClimRelax = 62208000., +(PID.TID 0000.0001) > tauSaltClimRelax = 622080000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCurvilinearGrid=.TRUE., +(PID.TID 0000.0001) > horizGridFile='grid_cs32', +(PID.TID 0000.0001) > radius_fromHorizGrid=6370.E3, +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='bathy_Hmin50.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_T_cs_15k.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='lev_S_cs_15k.bin', +(PID.TID 0000.0001) > zonalWindFile ='trenberth_taux.bin', +(PID.TID 0000.0001) > meridWindFile ='trenberth_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile ='lev_surfT_cs_12m.bin', +(PID.TID 0000.0001) > saltClimFile ='lev_surfS_cs_12m.bin', +(PID.TID 0000.0001) > surfQnetFile ='shiQnet_cs32.bin', +(PID.TID 0000.0001) > EmPmRFile ='shiEmPR_cs32.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > useThSIce=.TRUE., +(PID.TID 0000.0001) > useSEAICE=.TRUE., +(PID.TID 0000.0001) >#useSALT_PLUME =.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/salt_plume compiled but not used ( useSALT_PLUME = F ) + pkg/thsice compiled and used ( useThSIce = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled but not used ( taveFreq > 0. = F ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/compon_communic compiled and used ( useCoupler = T ) + pkg/ocn_compon_interf compiled and used ( useCoupler = T ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) + CPL_IMPORT_CPLPARMS: Recv parBuf= 1 2 3 3 0 0 +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_background_K = 800., +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > usePW79thermodynamics=.FALSE., +(PID.TID 0000.0001) > SEAICE_strength = 2.6780e+04, +(PID.TID 0000.0001) >#OCEAN_drag = 8.1541e-04, +(PID.TID 0000.0001) ># use same Air/Ocean drag than Air/sIce drag (like in AIM): +(PID.TID 0000.0001) > OCEAN_drag = 2.E-3, +(PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., +(PID.TID 0000.0001) > LSR_ERROR = 1.E-12, +(PID.TID 0000.0001) > SEAICElinearIterMax= 1500, +(PID.TID 0000.0001) >#LSR_mixIniGuess = 1, +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_monFreq = 3600., +(PID.TID 0000.0001) ># old defaults: +(PID.TID 0000.0001) > SEAICE_waterDrag = 5.195E-3, +(PID.TID 0000.0001) > SEAICE_drag = 2.E-3, +(PID.TID 0000.0001) > SEAICEscaleSurfStress = .FALSE., +(PID.TID 0000.0001) > SEAICE_Olx = 0, +(PID.TID 0000.0001) > SEAICE_Oly = 0, +(PID.TID 0000.0001) > SEAICEetaZmethod = 0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) THSICE_READPARMS: opening data.ice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &THSICE_CONST +(PID.TID 0000.0001) >#- with fractional ice: +(PID.TID 0000.0001) > iceMaskMin = 0.001, +(PID.TID 0000.0001) > hiMax = 10., +(PID.TID 0000.0001) > hsMax = 10., +(PID.TID 0000.0001) > dhSnowLin = 0.1, +(PID.TID 0000.0001) > fracEnFreez= 0.4, +(PID.TID 0000.0001) > hNewIceMax = 1., +(PID.TID 0000.0001) >#albIceMax = 0.6, +(PID.TID 0000.0001) >#albIceMin = 0.6, +(PID.TID 0000.0001) >#albColdSnow= 0.85, +(PID.TID 0000.0001) >#albWarmSnow= 0.60, +(PID.TID 0000.0001) >#tempSnowAlb= -5., +(PID.TID 0000.0001) >#albOldSnow = 0.60, +(PID.TID 0000.0001) >#hNewSnowAge= 2.e-3, +(PID.TID 0000.0001) >#snowAgTime = 4320000., +(PID.TID 0000.0001) >#hAlbIce = 0.44, +(PID.TID 0000.0001) >#hAlbSnow = 0.15, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &THSICE_PARM01 +(PID.TID 0000.0001) >#StartIceModel=1, +(PID.TID 0000.0001) > thSIce_skipThermo=.TRUE., +(PID.TID 0000.0001) > thSIceAdvScheme=77, +(PID.TID 0000.0001) >#thSIce_diffK =800., +(PID.TID 0000.0001) > stressReduction=0., +(PID.TID 0000.0001) >#thSIceFract_InitFile='const100.bin', +(PID.TID 0000.0001) >#thSIceThick_InitFile='const+20.bin', +(PID.TID 0000.0001) >#thSIce_diagFreq=2592000., +(PID.TID 0000.0001) >#thSIce_monFreq =21600., +(PID.TID 0000.0001) >#thSIce_monFreq =3600., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_CONST +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_PARM01 + ThSI: rhos = 3.3000000000000E+02 + ThSI: rhoi = 9.0000000000000E+02 + ThSI: rhosw = 1.0300000000000E+03 + ThSI: rhofw = 1.0000000000000E+03 + ThSI: floodFac = 3.9393939393939E-01 + ThSI: cpIce = 2.1060000000000E+03 + ThSI: cpWater = 3.9940000000000E+03 + ThSI: kIce = 2.0300000000000E+00 + ThSI: kSnow = 3.0000000000000E-01 + ThSI: bMeltCoef = 6.0000000000000E-03 + ThSI: Lfresh = 3.3400000000000E+05 + ThSI: qsnow = 3.3400000000000E+05 + ThSI: albColdSnow = 8.5000000000000E-01 + ThSI: albWarmSnow = 7.0000000000000E-01 + ThSI: tempSnowAlb = -1.0000000000000E+01 + ThSI: albOldSnow = 5.5000000000000E-01 + ThSI: hNewSnowAge = 2.0000000000000E-03 + ThSI: snowAgTime = 4.3200000000000E+06 + ThSI: albIceMax = 6.5000000000000E-01 + ThSI: albIceMin = 2.0000000000000E-01 + ThSI: hAlbIce = 5.0000000000000E-01 + ThSI: hAlbSnow = 3.0000000000000E-01 + ThSI: i0swFrac = 3.0000000000000E-01 + ThSI: ksolar = 1.5000000000000E+00 + ThSI: dhSnowLin = 1.0000000000000E-01 + ThSI: saltIce = 4.0000000000000E+00 + ThSI: S_winton = 1.0000000000000E+00 + ThSI: mu_Tf = 5.4000000000000E-02 + ThSI: Tf0kel = 2.7315000000000E+02 + ThSI: Tmlt1 = -5.4000000000000E-02 + ThSI: Terrmax = 5.0000000000000E-01 + ThSI: nitMaxTsf = 20 + ThSI: hIceMin = 1.0000000000000E-02 + ThSI: hiMax = 1.0000000000000E+01 + ThSI: hsMax = 1.0000000000000E+01 + ThSI: iceMaskMax = 1.0000000000000E+00 + ThSI: iceMaskMin = 1.0000000000000E-03 + ThSI: fracEnMelt = 4.0000000000000E-01 + ThSI: fracEnFreez = 4.0000000000000E-01 + ThSI: hThinIce = 2.0000000000000E-01 + ThSI: hThickIce = 2.5000000000000E+00 + ThSI: hNewIceMax = 1.0000000000000E+00 + ThSI: stressReduction = 0.0000000000000E+00 + ThSI: thSIce_skipThermo = T + ThSI: thSIceAdvScheme = 77 + ThSI: thSIceBalanceAtmFW= 0 + ThSI: thSIce_diffK = 0.0000000000000E+00 + ThSI: thSIce_deltaT = 3.6000000000000E+03 + ThSI: ocean_deltaT = 3.6000000000000E+03 + ThSI: stepFwd_oceMxL = F + ThSI: tauRelax_MxL = 0.0000000000000E+00 + ThSI: tauRelax_MxL_salt = 0.0000000000000E+00 + ThSI: hMxL_default = 5.0000000000000E+01 + ThSI: sMxL_default = 3.5000000000000E+01 + ThSI: vMxL_default = 5.0000000000000E-02 + ThSI: thSIce_taveFreq = 0.0000000000000E+00 + ThSI: thSIce_diagFreq = 8.6400000000000E+05 + ThSI: thSIce_monFreq = 1.0000000000000E+00 + ThSI: startIceModel = 0 +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','SRELAX ', +(PID.TID 0000.0001) ># 'TRELAX ','oceFreez', +(PID.TID 0000.0001) ># fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 31104000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', +(PID.TID 0000.0001) > 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +(PID.TID 0000.0001) ># fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 31104000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', +(PID.TID 0000.0001) > 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># 'GM_PsiX ','GM_PsiY ', +(PID.TID 0000.0001) ># levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +(PID.TID 0000.0001) ># fileName(3) = 'oceDiag', +(PID.TID 0000.0001) > frequency(3) = 31104000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DFxE_TH ','DFyE_TH ','DFrE_TH ', +(PID.TID 0000.0001) > 'DFrI_TH ', +(PID.TID 0000.0001) ># 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 31104000., +(PID.TID 0000.0001) > fields(1:4,5) = 'SI_Fract','SI_Thick','SI_AdvFr','SI_AdvHi', +(PID.TID 0000.0001) ># 'CPL_SLPr','CPL_Qnet','CPL_Qsw ', +(PID.TID 0000.0001) ># 'CPL_tauX','CPL_tauY','CPL_sFlx','CPL_iceM', +(PID.TID 0000.0001) ># 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', +(PID.TID 0000.0001) > fileName(5) = 'iceDiag', +(PID.TID 0000.0001) > frequency(5) = -3600., +(PID.TID 0000.0001) > timePhase(5) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > stat_fields(1:16,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', +(PID.TID 0000.0001) > 'DRHODR ','UE_VEL_C','VN_VEL_C','WVEL ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','oceFWflx','oceQnet ', +(PID.TID 0000.0001) > 'SRELAX ','oceSflux','sIceLoad', +(PID.TID 0000.0001) ># 'TRELAX ','oceFreez','oceQsw ', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 864000., +(PID.TID 0000.0001) > stat_freq(1) = 18000., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > stat_fields(1:16,2) = 'SI_Fract','SI_Thick','SI_AdvFr','SI_AdvHi', +(PID.TID 0000.0001) > 'CPL_SLPr','CPL_Qnet','CPL_Qsw ', +(PID.TID 0000.0001) > 'CPL_tauX','CPL_tauY','CPL_sFlx','CPL_iceM', +(PID.TID 0000.0001) > 'CPL_icFr','CPL_iceH','CPL_snwH','CPL_Qic1','CPL_Qic2', +(PID.TID 0000.0001) ># 'CPL_sPlm','oceSPflx','oceSPDep', +(PID.TID 0000.0001) ># 'CPL_sPlm','CPL_RnOf','CPL_aCO2','CPL_wSpd','CPL_icFr', +(PID.TID 0000.0001) > stat_fName(2) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(2) = -3600., +(PID.TID 0000.0001) > stat_phase(2) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: iceDiag +(PID.TID 0000.0001) Output Frequency: -3600.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick SI_AdvFr SI_AdvHi +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: 18000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN DETADT2 THETA SALT CONVADJ DRHODR UE_VEL_C VN_VEL_C WVEL oceTAUX +(PID.TID 0000.0001) Fields: oceTAUY oceFWflx oceQnet SRELAX oceSflux sIceLoad +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: -3600.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick SI_AdvFr SI_AdvHi CPL_SLPr CPL_Qnet CPL_Qsw CPL_tauX CPL_tauY CPL_sFlx +(PID.TID 0000.0001) Fields: CPL_iceM CPL_icFr CPL_iceH CPL_snwH CPL_Qic1 CPL_Qic2 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) CPL_READPARMS: opening data.cpl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cpl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cpl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Coupling package parameters, OCN component: +(PID.TID 0000.0001) ># useImportHFlx :: True => use the Imported HeatFlux from couler +(PID.TID 0000.0001) ># useImportFW :: True => use the Imported Fresh Water flux fr cpl +(PID.TID 0000.0001) ># useImportTau :: True => use the Imported Wind-Stress from couler +(PID.TID 0000.0001) ># useImportSLP :: True => use the Imported Sea-level Atmos. Pressure +(PID.TID 0000.0001) ># useImportRunOff :: True => use the Imported RunOff flux from coupler +(PID.TID 0000.0001) ># useImportSIce :: True => use the Imported Sea-Ice mass as ice-loading +(PID.TID 0000.0001) ># useImportThSIce :: True => use the Imported thSIce state var from coupler +(PID.TID 0000.0001) ># useImportSltPlm :: True => use the Imported Salt-Plume flux from coupler +(PID.TID 0000.0001) ># useImportFice :: True => use the Imported Seaice fraction (DIC-only) +(PID.TID 0000.0001) ># useImportCO2 :: True => use the Imported atmos. CO2 from coupler +(PID.TID 0000.0001) ># useImportWSpd :: True => use the Imported surf. Wind speed from coupler +(PID.TID 0000.0001) ># cpl_taveFreq :: Frequency^-1 for time-Aver. output (s) +(PID.TID 0000.0001) > &CPL_OCN_PARAM +(PID.TID 0000.0001) ># useImportHFlx =.FALSE., +(PID.TID 0000.0001) ># useImportFW =.FALSE., +(PID.TID 0000.0001) ># useImportTau =.FALSE., +(PID.TID 0000.0001) > useImportSLP =.FALSE., +(PID.TID 0000.0001) ># useImportRunOff=.FALSE., +(PID.TID 0000.0001) ># useImportSIce =.FALSE., +(PID.TID 0000.0001) ># useImportThSIce=.FALSE., +(PID.TID 0000.0001) ># useImportSltPlm=.FALSE., +(PID.TID 0000.0001) ># useImportFice =.FALSE., +(PID.TID 0000.0001) ># useImportCO2 =.FALSE., +(PID.TID 0000.0001) ># useImportWSpd =.FALSE., +(PID.TID 0000.0001) ># cpl_taveFreq=2592000., +(PID.TID 0000.0001) > cpl_taveFreq=18000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CPL_READPARMS: finished reading data.cpl +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // Coupling set-up summary : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // ------- +(PID.TID 0000.0001) // Coupler-exchange switch (received from coupler): +(PID.TID 0000.0001) ocn_cplSequential = /* use Sequential Coupling Exchange on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocn_cplExch_RunOff = /* exchange RunOff fields with coupler on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocn_cplExch1W_sIce = /* 1-way exchange of seaice vars with coupler */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocn_cplExch2W_sIce = /* 2-way exchange of ThSIce vars with coupler */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocn_cplExch_SaltPl = /* exchange Salt-Plume fields with coupler */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocn_cplExch_DIC = /* exchange DIC fields with coupler on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ------- +(PID.TID 0000.0001) // Coupler parameters (from local param file): +(PID.TID 0000.0001) useImportHFlx = /* use Imported Heat-Flx fr Coupler on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportFW = /* use Imported Fresh-Water fr Cpl. on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportTau = /* use Imported Wind-Stress fr Cpl. on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportSLP = /* use Imported Sea-level Atm Press on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportRunOff= /* use Imported Run-Off fr Cpl. on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportSIce = /* use Imported Sea-Ice loading on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportThSIce= /* use Imported thSIce state-var on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportSltPlm= /* use Imported Salt-Plume flux on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportFice = /* use Imported Seaice Frac (DIC-only) flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportCO2 = /* use Imported Atmos. CO2 fr Cpl. on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useImportWSpd = /* use Imported Windspeed fr Cpl. on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cpl_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 1.800000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cpl_timeave_mnc = /* write TimeAv to MNC file on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cpl_timeave_mdsio = /* write TimeAv to MDSIO file on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // End of Coupling set-up summary +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 2 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 3 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 4 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 5 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 6 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) %MON XC_max = 1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_min = -1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_mean = -4.6999441375798E-15 +(PID.TID 0000.0001) %MON XC_sd = 1.0355545336287E+02 +(PID.TID 0000.0001) %MON XG_max = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_min = -1.7708797161002E+02 +(PID.TID 0000.0001) %MON XG_mean = 1.8603515625000E+00 +(PID.TID 0000.0001) %MON XG_sd = 1.0357130300504E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DXV_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DXV_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON YC_max = 8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_min = -8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 3.8676242969072E+01 +(PID.TID 0000.0001) %MON YG_max = 9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -1.1842378929335E-15 +(PID.TID 0000.0001) %MON YG_sd = 3.8676895860710E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DYC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DYF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DYF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DYG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DYG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DYU_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DYU_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DYU_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DYU_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON RA_max = 1.0479260248419E+11 +(PID.TID 0000.0001) %MON RA_min = 1.4019007022556E+10 +(PID.TID 0000.0001) %MON RA_mean = 8.2992246709265E+10 +(PID.TID 0000.0001) %MON RA_sd = 1.7509089299457E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAW_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAW_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAW_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAS_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAS_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAS_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.0484349334619E+11 +(PID.TID 0000.0001) %MON RAZ_min = 8.8317900612505E+09 +(PID.TID 0000.0001) %MON RAZ_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 1.7482297311044E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleCS_min = -9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleCS_mean = 3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleCS_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) %MON AngleSN_max = 9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleSN_min = -9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleSN_mean = -3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleSN_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_Hmin50.bin +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.195000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.195000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.678000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) ==> advection diffusion done in pkg ThSIce +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.300000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pkg/seaice thermodynamics is OFF +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 341 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 295 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 296 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 295 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 323 SI_AdvFr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 324 SI_AdvHi +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 323 SI_AdvFr is already set +(PID.TID 0000.0001) space allocated for all diagnostics: 4 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: iceDiag +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 79 CONVADJ +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 78 DRHODR +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 39 UE_VEL_C +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 40 VN_VEL_C +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 80 oceTAUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 81 oceTAUY +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 84 oceFWflx +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 86 oceQnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 90 SRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 85 oceSflux +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 83 sIceLoad +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 295 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 296 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 295 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 323 SI_AdvFr +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 324 SI_AdvHi +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 323 SI_AdvFr has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 328 CPL_SLPr +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 329 CPL_Qnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 330 CPL_Qsw +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 331 CPL_tauX +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 332 CPL_tauY +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 334 CPL_sFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 335 CPL_iceM +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 337 CPL_icFr +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 338 CPL_iceH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 337 CPL_icFr has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 339 CPL_snwH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 337 CPL_icFr has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 340 CPL_Qic1 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 338 CPL_iceH has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 341 CPL_Qic2 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 338 CPL_iceH has already been set +(PID.TID 0000.0001) space allocated for all stats-diags: 130 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 10 +(PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 19 CS-corner Pts in the domain +(PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 2.2587545260115E-21 +(PID.TID 0000.0001) %MON fCoriG_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4580166994612E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 5.2407700865903E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.1514045869113E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.0375849106513E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.9156564154949553E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 3.600000000000000E+03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 6.220800000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) radius_fromHorizGrid = /* sphere Radius of input horiz. grid */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -4.439521994760536E+01, /* I = 1 */ +(PID.TID 0000.0001) -4.295641272275883E+01, /* I = 2 */ +(PID.TID 0000.0001) -4.122055553388957E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.070819219728060E+01, /* I = 46 */ +(PID.TID 0000.0001) 8.439652466417766E+01, /* I = 47 */ +(PID.TID 0000.0001) 8.812739148696656E+01, /* I = 48 */ +(PID.TID 0000.0001) 9.187260851303344E+01, /* I = 49 */ +(PID.TID 0000.0001) 9.560347533582234E+01, /* I = 50 */ +(PID.TID 0000.0001) 9.929180780271940E+01, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.321863035748696E+02, /* I = 94 */ +(PID.TID 0000.0001) 1.337919453120370E+02, /* I = 95 */ +(PID.TID 0000.0001) 1.350000000000000E+02, /* I = 96 */ +(PID.TID 0000.0001) 1.356047800523947E+02, /* I = 97 */ +(PID.TID 0000.0001) 1.358367907661329E+02, /* I = 98 */ +(PID.TID 0000.0001) 1.359720382181193E+02, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.336511021209287E+02, /* I =142 */ +(PID.TID 0000.0001) -1.336469399409420E+02, /* I =143 */ +(PID.TID 0000.0001) -1.336449032499283E+02, /* I =144 */ +(PID.TID 0000.0001) -1.336449032499283E+02, /* I =145 */ +(PID.TID 0000.0001) -1.336469399409420E+02, /* I =146 */ +(PID.TID 0000.0001) -1.336511021209287E+02, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.378136964251304E+02, /* I =190 */ +(PID.TID 0000.0001) 1.362080546879630E+02, /* I =191 */ +(PID.TID 0000.0001) 1.350000000000000E+02 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -3.497677942598243E+01, /* J = 1 */ +(PID.TID 0000.0001) -3.374005967394886E+01, /* J = 2 */ +(PID.TID 0000.0001) -3.220655175667454E+01, /* J = 3 */ +(PID.TID 0000.0001) -3.045756348838641E+01, /* J = 4 */ +(PID.TID 0000.0001) -2.853728129852918E+01, /* J = 5 */ +(PID.TID 0000.0001) -2.647426640173173E+01, /* J = 6 */ +(PID.TID 0000.0001) -2.428936657094636E+01, /* J = 7 */ +(PID.TID 0000.0001) -2.199915808312262E+01, /* J = 8 */ +(PID.TID 0000.0001) -1.961768597440146E+01, /* J = 9 */ +(PID.TID 0000.0001) -1.715743888281371E+01, /* J = 10 */ +(PID.TID 0000.0001) -1.462993396899330E+01, /* J = 11 */ +(PID.TID 0000.0001) -1.204608340464756E+01, /* J = 12 */ +(PID.TID 0000.0001) -9.416429130284818E+00, /* J = 13 */ +(PID.TID 0000.0001) -6.751293662992216E+00, /* J = 14 */ +(PID.TID 0000.0001) -4.060875511835959E+00, /* J = 15 */ +(PID.TID 0000.0001) -1.355307764409121E+00, /* J = 16 */ +(PID.TID 0000.0001) 1.355307764409121E+00, /* J = 17 */ +(PID.TID 0000.0001) 4.060875511835959E+00, /* J = 18 */ +(PID.TID 0000.0001) 6.751293662992216E+00, /* J = 19 */ +(PID.TID 0000.0001) 9.416429130284818E+00, /* J = 20 */ +(PID.TID 0000.0001) 1.204608340464756E+01, /* J = 21 */ +(PID.TID 0000.0001) 1.462993396899330E+01, /* J = 22 */ +(PID.TID 0000.0001) 1.715743888281371E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.961768597440146E+01, /* J = 24 */ +(PID.TID 0000.0001) 2.199915808312262E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.428936657094636E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.647426640173173E+01, /* J = 27 */ +(PID.TID 0000.0001) 2.853728129852918E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.045756348838641E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.220655175667454E+01, /* J = 30 */ +(PID.TID 0000.0001) 3.374005967394886E+01, /* J = 31 */ +(PID.TID 0000.0001) 3.497677942598243E+01 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978501920522794E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978501920522794E+05, /* I =142 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =145 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* I =146 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =190 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =191 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012844832048790E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.979171143158405E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.979171143158405E+05, /* I =142 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =145 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* I =146 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =190 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =191 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012190981969055E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.202082051331828E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.977867909042096E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.977867909042096E+05, /* I =142 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I =143 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =144 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =145 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* I =146 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =190 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =191 */ +(PID.TID 0000.0001) 1.009837800879055E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.403701524205398E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963715635865306E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963715635865306E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I =143 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I =144 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =145 */ +(PID.TID 0000.0001) 3.008638765647886E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I =190 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =191 */ +(PID.TID 0000.0001) 1.403701524205398E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.011625828699101E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.009837800879055E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963038832565530E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963038832565530E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I =143 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =145 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I =190 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =191 */ +(PID.TID 0000.0001) 1.391343389937106E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 3.012281885409289E+05, /* J = 16: 17 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.114203141013064E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978547649292580E+05, /* I = 46 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 96 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 97 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.978547649292580E+05, /* I =142 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I =143 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =144 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =145 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* I =146 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =190 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =191 */ +(PID.TID 0000.0001) 1.114203141013064E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.007982711627968E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.391343389937106E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.962371870847826E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 96 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 97 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.962371870847826E+05, /* I =142 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I =143 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I =145 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* I =146 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I =190 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =191 */ +(PID.TID 0000.0001) 1.333130744933864E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.362652340208229E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963063101754721E+05, /* I = 46 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I = 47 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I = 48 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I = 49 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I = 50 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 96 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 97 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 98 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.963063101754721E+05, /* I =142 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I =143 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I =144 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I =145 */ +(PID.TID 0000.0001) 3.008068453676764E+05, /* I =146 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I =190 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =191 */ +(PID.TID 0000.0001) 1.362652340208229E+05 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* J = 16 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* J = 17 */ +(PID.TID 0000.0001) 3.007409169495504E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 29 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 30 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 31 */ +(PID.TID 0000.0001) 1.333130744933864E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.874277443041928E+10, /* I = 46 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 97 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 98 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.874277443041928E+10, /* I =142 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* I =143 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I =144 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I =145 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* I =146 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I =190 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =191 */ +(PID.TID 0000.0001) 1.401900702259215E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.203683527776127E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* J = 16 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* J = 17 */ +(PID.TID 0000.0001) 9.008620045354469E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 24 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.203683527772523E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 27 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.401900702259215E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.781353403175085E+10, /* I = 46 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 97 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 98 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.781353403175085E+10, /* I =142 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* I =143 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* I =144 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =145 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* I =146 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I =190 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I =191 */ +(PID.TID 0000.0001) 1.974052138509018E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 9.071447638299399E+10, /* J = 16: 17 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 24 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 27 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.216690346714270E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.869393350723613E+10, /* I = 46 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I = 47 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 48 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 49 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I = 50 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* I = 51 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 96 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 97 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 98 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.869393350723613E+10, /* I =142 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I =143 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =144 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =145 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* I =146 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* I =147 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =190 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =191 */ +(PID.TID 0000.0001) 1.216690346714270E+10 /* I =192 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.801790263324359E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.571243814189866E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.269930713599979E+10, /* J = 6 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.014205907741882E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.484854821847499E+10, /* J = 10 */ +(PID.TID 0000.0001) 7.898934631431560E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.254500894894537E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.549360686473492E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.781353403175085E+10, /* J = 14 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.049530583086168E+10, /* J = 16 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* J = 17 */ +(PID.TID 0000.0001) 9.049530583087070E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.948571540391121E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.781353403174185E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.549360686467184E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.254500894890933E+10, /* J = 22 */ +(PID.TID 0000.0001) 7.898934631434262E+10, /* J = 23 */ +(PID.TID 0000.0001) 7.484854821844795E+10, /* J = 24 */ +(PID.TID 0000.0001) 7.014205907742783E+10, /* J = 25 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 26 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 27 */ +(PID.TID 0000.0001) 5.269930713599078E+10, /* J = 28 */ +(PID.TID 0000.0001) 4.571243814190767E+10, /* J = 29 */ +(PID.TID 0000.0001) 3.801790263325260E+10, /* J = 30 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* J = 31 */ +(PID.TID 0000.0001) 1.974052138509018E+10 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.638867375081598E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hasWetCSCorners = /* Domain contains CS corners (True/False) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 8.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 8.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) THSICE_CHECK: #define THSICE +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_T_cs_15k.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_S_cs_15k.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiQnet_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiEmPR_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfT_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfS_cs_12m.bin +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceDiag + nFlds, nActive, freq & phase , nLev + 4 | 4 | -3600.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 295 |SI_Fract| 1 | 0 | 1 | 0 | + 296 |SI_Thick| 2 | 1 | 1 | 0 | 0 | + 323 |SI_AdvFr| 3 | 0 | 1 | 0 | + 324 |SI_AdvHi| 4 | 3 | 1 | 0 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 16 | 16 | 18000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 23 |ETAN | 1 | 0 | 0.00000E+00 | + 25 |DETADT2 | 2 | 0 | 0.00000E+00 | + 26 |THETA | 3 | 0 | 0.00000E+00 | + 27 |SALT | 18 | 0 | 0.00000E+00 | + 79 |CONVADJ | 33 | 0 | 0.00000E+00 | + 78 |DRHODR | 48 | 0 | 0.00000E+00 | + 39 |UE_VEL_C| 63 | 0 | 0.00000E+00 | + 40 |VN_VEL_C| 78 | 0 | 0.00000E+00 | + 32 |WVEL | 93 | 0 | 0.00000E+00 | + 80 |oceTAUX | 108 | 0 | 0.00000E+00 | + 81 |oceTAUY | 109 | 0 | 0.00000E+00 | + 84 |oceFWflx| 110 | 0 | 0.00000E+00 | + 86 |oceQnet | 111 | 0 | 0.00000E+00 | + 90 |SRELAX | 112 | 0 | 0.00000E+00 | + 85 |oceSflux| 113 | 0 | 0.00000E+00 | + 83 |sIceLoad| 114 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +listId= 2 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 16 | 16 | -3600.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 295 |SI_Fract| 115 | 0 | 0.00000E+00 | + 296 |SI_Thick| 116 | 115 | 0.00000E+00 | 0.00000E+00 | + 323 |SI_AdvFr| 117 | 0 | 0.00000E+00 | + 324 |SI_AdvHi| 118 | 117 | 0.00000E+00 | 0.00000E+00 | + 328 |CPL_SLPr| 119 | 0 | 0.00000E+00 | + 329 |CPL_Qnet| 120 | 0 | 0.00000E+00 | + 330 |CPL_Qsw | 121 | 0 | 0.00000E+00 | + 331 |CPL_tauX| 122 | 0 | 0.00000E+00 | + 332 |CPL_tauY| 123 | 0 | 0.00000E+00 | + 334 |CPL_sFlx| 124 | 0 | 0.00000E+00 | + 335 |CPL_iceM| 125 | 0 | 0.00000E+00 | + 337 |CPL_icFr| 126 | 0 | 0.00000E+00 | + 338 |CPL_iceH| 127 | 126 | 0.00000E+00 | 0.00000E+00 | + 339 |CPL_snwH| 128 | 126 | 0.00000E+00 | 0.00000E+00 | + 340 |CPL_Qic1| 129 | 127 | 0.00000E+00 | 0.00000E+00 | + 341 |CPL_Qic2| 130 | 127 | 0.00000E+00 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9382676376985E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8552983134796E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6030349459887E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4406771433446E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1326598561892E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715748807407E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8144841495627E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721451128586E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858744433685E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1558447735922E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.6211611868841E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0410376912710E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2329247921290E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1327998988989E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.4323506322358E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 4.1932798010144E-22 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4892781143428E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.5159107438040E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -3.8956966288612E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5480383395885E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.3114393556995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.9305960402537E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3950131228473E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3743384707768E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6816469815204E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5671701728584E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259258474424E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783522345033E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810783121880E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiQnet_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiQnet_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiEmPR_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shiEmPR_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfT_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfT_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfS_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfS_cs_12m.bin + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 2 0.00000000E+00 0.00000000E+00 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 6.10578609137189E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.53904960585195E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 49 +(PID.TID 0000.0001) cg2d_last_res = 7.50693820073779E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.7883499216017E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.4030863985822E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.8702696259820E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.3879658809608E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.2017759617008E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9942617082279E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.3755561882739E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1083483540148E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.0448690470875E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0606684704258E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0818638846528E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3090007143658E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1283735080746E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9247513959043E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.0664328554329E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.5007128250868E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.7660682820929E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.4769036829205E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7448214030023E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3593460510062E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9382560243082E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8553134119342E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6030167263574E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4406497626779E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1312433196598E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715747176519E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8144946329875E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721450527859E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858318091182E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1559405151845E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2057939704613E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3301656920046E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.9662707388615E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.8067110054872E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2743531301164E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.4347868463013E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.0009104761243E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 9.3729820076168E-06 +(PID.TID 0000.0001) %MON ke_max = 2.9553400625943E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.3082111858406E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -3.9597249380080E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.5145614217471E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259122244102E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783522345033E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810870562703E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.8634237353357E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.0726603853634E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 295 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 296 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 295 SI_Fract + Computing Diagnostic # 323 SI_AdvFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 324 SI_AdvHi Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_AdvHi Diagnostic # 323 SI_AdvFr + Compute Stats, Diag. # 295 SI_Fract vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 296 SI_Thick vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 295 SI_Fract vol( 0 ): 3.639E+14 integral 0.000E+00 + Compute Stats, Diag. # 323 SI_AdvFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 324 SI_AdvHi vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 323 SI_AdvFr vol( 0 ): 3.639E+14 integral 0.000E+00 + Compute Stats, Diag. # 328 CPL_SLPr vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 329 CPL_Qnet vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 330 CPL_Qsw vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 331 CPL_tauX vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 332 CPL_tauY vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 334 CPL_sFlx vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 335 CPL_iceM vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 337 CPL_icFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 338 CPL_iceH vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 0.000E+00 + Compute Stats, Diag. # 339 CPL_snwH vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 0.000E+00 + Compute Stats, Diag. # 340 CPL_Qic1 vol( 0 ): 0.000E+00 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 0.000E+00 integral 0.000E+00 + Compute Stats, Diag. # 341 CPL_Qic2 vol( 0 ): 0.000E+00 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 0.000E+00 integral 0.000E+00 + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4986111111 0.5013888889 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.51405496E-03 1.39000231E-03 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 10 9.55208135E-14 1.47862104E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 10 1.30923050E-13 1.35746197E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.57009538E-04 6.95020902E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 10 4.77673456E-14 7.39294834E-17 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 10 6.54754029E-14 6.78722173E-17 + cg2d: Sum(rhs),rhsMax = 2.83528157886821E-01 7.39320905463189E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.84795433789189E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 48 +(PID.TID 0000.0001) cg2d_last_res = 7.82537104167234E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.9525408082440E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.2456563790490E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.8971788669469E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7543087462967E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1138980315069E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0400032093993E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3148826161698E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.4311165365020E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0603114303249E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.0047942254527E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8758179260174E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5545549313677E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.5007691975586E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0967806383465E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.0889850776540E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.6834846286146E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.3118106800187E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.7630888676130E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1580057887461E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3800310394148E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9372783831876E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8554547577108E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6029376283863E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4403097390595E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1287859854266E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715746931154E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8145181217188E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721453404910E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858279121105E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1563080490893E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.7734887971975E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8270097534676E+03 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 2.5820076714640E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.8467191352483E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.4498754109849E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.0200556621792E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = 3.1540526502022E-06 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.1150261758209E-04 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.0326048939241E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 7.1493448642949E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 9.7552503672184E-03 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0344283872299E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = -2.5806800374077E-05 +(PID.TID 0000.0001) %MON forcing_fu_sd = 9.1284094858443E-04 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 4.4514472837259E-06 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.3963768819550E-03 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.2641021351168E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.7182870999479E-05 +(PID.TID 0000.0001) %MON forcing_fv_sd = 8.7463445112788E-04 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.9420940326978E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.4960655048373E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.7175278541470E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.5605242092755E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5591642394956E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2095704269821E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0464142158075E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1552300086208E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1005192763230E-05 +(PID.TID 0000.0001) %MON ke_max = 1.2600229217936E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0761678924037E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -6.8428345453808E-07 +(PID.TID 0000.0001) %MON vort_r_max = 6.0938140282947E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5258593050822E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783519155748E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810802995226E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.1506873594087E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1023981291759E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.0360940578956E-02 +(PID.TID 0000.0001) %MON seaice_uice_min = -5.1483490475376E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.7242691457840E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 6.2109494263248E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3482785771238E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.9397661424502E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -7.0565332375632E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.1250938256998E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.6852006124669E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2953380680709E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.0071199204190E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.0071199204190E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.1592848006979E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.1592848006979E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.2066862397004E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -3.5503180254442E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 295 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 296 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 295 SI_Fract + Computing Diagnostic # 323 SI_AdvFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 324 SI_AdvHi Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_AdvHi Diagnostic # 323 SI_AdvFr + Compute Stats, Diag. # 295 SI_Fract vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 296 SI_Thick vol( 0 ): 0.000E+00 Parms: SM PC M1 + use Counter Mate # 295 SI_Fract vol( 0 ): 3.639E+14 integral 0.000E+00 + Compute Stats, Diag. # 323 SI_AdvFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 324 SI_AdvHi vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 323 SI_AdvFr vol( 0 ): 3.639E+14 integral 1.007E+11 + Compute Stats, Diag. # 328 CPL_SLPr vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 329 CPL_Qnet vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 330 CPL_Qsw vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 331 CPL_tauX vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 332 CPL_tauY vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 334 CPL_sFlx vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 335 CPL_iceM vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 337 CPL_icFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 338 CPL_iceH vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.007E+11 + Compute Stats, Diag. # 339 CPL_snwH vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.007E+11 + Compute Stats, Diag. # 340 CPL_Qic1 vol( 0 ): 1.168E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.007E+11 integral 1.168E+10 + Compute Stats, Diag. # 341 CPL_Qic2 vol( 0 ): 1.168E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.007E+11 integral 1.168E+10 + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4972222222 0.5027777778 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.76381380E-03 2.69352781E-03 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 10 1.27522992E-13 2.69914794E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 10 1.56458180E-13 2.63033935E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.36180384E-03 1.29833434E-03 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 10 5.65658631E-14 1.33007786E-16 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 10 7.31636973E-14 1.26790543E-16 + cg2d: Sum(rhs),rhsMax = 5.75254949838815E-01 7.19621622849181E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.39868312732607E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 48 +(PID.TID 0000.0001) cg2d_last_res = 8.54806876280843E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1441227912271E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1961236881511E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.6963662155337E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5273279046432E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0697653181105E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5259153241687E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8823359408788E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.2029489045538E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3651047147783E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5694766129563E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6296605697438E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.3199066735007E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.1248390411462E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4624703975473E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.7764297251655E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2503803510116E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.6794022669577E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1974989749774E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1390329563430E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1342326908585E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9363907960077E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8556090041296E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6028843755601E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4400206563234E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1257138586433E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715746901674E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8145482033887E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721456636080E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858333015414E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1566543085341E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.2118518953268E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8645770835635E+03 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 2.1713672946062E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.6990231205327E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.4823218449331E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.9729878870114E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = 3.0433598594376E-06 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.0869897136235E-04 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.0117050071889E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 7.0970934873972E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.2360323004424E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1195380238655E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = -9.4596713321032E-05 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.4767804153108E-03 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 8.5658672362360E-06 +(PID.TID 0000.0001) %MON forcing_fv_max = 3.0506540507472E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -2.1636288989785E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7979598318012E-05 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.6020991742323E-03 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 7.0795620095892E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.5729215218494E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.9305765430320E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3730242091706E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2320402214190E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0975395571802E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5028719678669E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6590709194145E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5100448422802E-05 +(PID.TID 0000.0001) %MON ke_max = 2.6304970993192E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.8580218681804E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398023035496E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.5463984314770E-07 +(PID.TID 0000.0001) %MON vort_r_max = 8.5427600660477E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5257995667369E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783516351088E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810708822019E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.2758552349275E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3027272697706E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.0317021761848E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.0712358400827E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -6.7872722156734E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.6059387317241E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.6967241841914E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.7827408334019E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4943182434008E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 2.4797917973897E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5104440610639E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 2.6273653134854E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7433452399028E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.7433452399028E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3347370842945E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3347370842945E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4357303003807E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.1420201871882E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 295 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 296 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 295 SI_Fract + Computing Diagnostic # 323 SI_AdvFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 324 SI_AdvHi Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_AdvHi Diagnostic # 323 SI_AdvFr + Compute Stats, Diag. # 295 SI_Fract vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 296 SI_Thick vol( 0 ): 1.007E+11 Parms: SM PC M1 + use Counter Mate # 295 SI_Fract vol( 0 ): 3.639E+14 integral 1.007E+11 + Compute Stats, Diag. # 323 SI_AdvFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 324 SI_AdvHi vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 323 SI_AdvFr vol( 0 ): 3.639E+14 integral 1.743E+11 + Compute Stats, Diag. # 328 CPL_SLPr vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 329 CPL_Qnet vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 330 CPL_Qsw vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 331 CPL_tauX vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 332 CPL_tauY vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 334 CPL_sFlx vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 335 CPL_iceM vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 337 CPL_icFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 338 CPL_iceH vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.743E+11 + Compute Stats, Diag. # 339 CPL_snwH vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.743E+11 + Compute Stats, Diag. # 340 CPL_Qic1 vol( 0 ): 2.327E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.743E+11 integral 2.327E+10 + Compute Stats, Diag. # 341 CPL_Qic2 vol( 0 ): 2.327E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.743E+11 integral 2.327E+10 + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4958333333 0.5041666667 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.49135942E-03 3.39685074E-03 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 10 1.45800039E-13 3.40967347E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 10 1.28841382E-13 3.31723831E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.66058574E-03 1.61404889E-03 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 10 8.20871149E-14 1.62134562E-16 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 10 6.49064136E-14 1.57614624E-16 + cg2d: Sum(rhs),rhsMax = 8.62707786022114E-01 6.97143420668807E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.13005519300098E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 48 +(PID.TID 0000.0001) cg2d_last_res = 7.09259281843324E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0448184026089E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3826808681269E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1181678640072E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.0825703953090E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0263795054579E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9675818705050E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4218865399863E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8824107519634E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5906711014418E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8993387530423E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3469615675170E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0237589418773E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3983046353031E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7150508140316E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.2250174535099E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6041726462730E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.8917591067416E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9987209461105E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.7889646198268E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7041530376750E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9355335103987E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8556819389933E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6028431100186E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4397491710989E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1220942265216E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715746804662E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8145844295610E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721460029214E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858552005958E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1571930090186E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0012525022550E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.3659245760098E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 2.0533280085037E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.5926809546565E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.3055643453596E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.3648372422565E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = 3.1959319898903E-06 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 9.9718661035388E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 7.3833940551714E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.7699948416687E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.5307357929287E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5855814689368E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = -5.6167723164487E-05 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.9329705816556E-03 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 9.1406575588101E-06 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.6780896557897E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.7918508543798E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -5.1826242047200E-05 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.1203057458228E-03 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 7.8568976230496E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4494553254041E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.0268427532348E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7583781233650E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8718296514271E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.9424654158905E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9246746561538E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1247068990660E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.2659721850637E-04 +(PID.TID 0000.0001) %MON ke_max = 4.2176637987955E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.5523008105804E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398021653022E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2138681008792E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.0872996291064E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5257527583119E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783512798547E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810633113650E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.8145675332425E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2416296648892E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.4874223371785E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.5436223149685E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -8.9258656631943E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 2.5150387459861E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 3.7665574944042E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4571872634360E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1886113581671E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 5.2779207071942E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.4143634647210E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 3.7256692829913E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.8649596365341E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.8649596365341E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3565579509863E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3565579509863E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4629465484598E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -7.8071204352974E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 295 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 296 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 295 SI_Fract + Computing Diagnostic # 323 SI_AdvFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 324 SI_AdvHi Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_AdvHi Diagnostic # 323 SI_AdvFr + Compute Stats, Diag. # 295 SI_Fract vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 296 SI_Thick vol( 0 ): 1.743E+11 Parms: SM PC M1 + use Counter Mate # 295 SI_Fract vol( 0 ): 3.639E+14 integral 1.743E+11 + Compute Stats, Diag. # 323 SI_AdvFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 324 SI_AdvHi vol( 0 ): 1.864E+11 Parms: SM PC M1 + use Counter Mate # 323 SI_AdvFr vol( 0 ): 3.639E+14 integral 1.864E+11 + Compute Stats, Diag. # 328 CPL_SLPr vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 329 CPL_Qnet vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 330 CPL_Qsw vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 331 CPL_tauX vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 332 CPL_tauY vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 334 CPL_sFlx vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 335 CPL_iceM vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 337 CPL_icFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 338 CPL_iceH vol( 0 ): 1.864E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.864E+11 + Compute Stats, Diag. # 339 CPL_snwH vol( 0 ): 1.864E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.864E+11 + Compute Stats, Diag. # 340 CPL_Qic1 vol( 0 ): 2.530E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.864E+11 integral 2.530E+10 + Compute Stats, Diag. # 341 CPL_Qic2 vol( 0 ): 2.530E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.864E+11 integral 2.530E+10 + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4944444444 0.5055555556 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.25313138E-03 3.40399505E-03 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 10 1.05332409E-13 3.17689564E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 10 1.36307632E-13 3.32428203E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.62653385E-03 1.67171819E-03 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 10 5.70030134E-14 1.58852312E-16 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 10 6.81676937E-14 1.63247204E-16 + cg2d: Sum(rhs),rhsMax = 1.13954796376647E+00 6.87397422636277E+00 +(PID.TID 0000.0001) cg2d_init_res = 9.39274611150778E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 47 +(PID.TID 0000.0001) cg2d_last_res = 9.74613772615419E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0999458330305E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0575001216117E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.4563362667117E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.4221116500738E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0109423870364E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3755668850771E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9216146262504E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3679851773925E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7686241611817E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.0777462072993E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0197802677540E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.6776256628816E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9012782752125E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8877594226790E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.5213688541021E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9358756534198E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1954526365034E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.7655876059240E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1975610540487E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1430343391517E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9347082378597E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8556380065751E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6028078111486E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4394917025819E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1180456269228E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715746700921E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8146260886263E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721463661241E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8858780648705E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1575393988694E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 5.7918655224921E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4507824402714E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9415434510826E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.5567528380351E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.4982728903400E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 8.7453844595793E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = 3.0269040026665E-06 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 9.6753737440479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.9105801752440E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 7.0867607344807E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.5660421431449E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.6486261497679E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.4599785276511E-04 +(PID.TID 0000.0001) %MON forcing_fu_sd = 3.0329597957971E-03 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 9.8027927513177E-06 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4964699991719E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.4901211613322E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -9.5280464099359E-05 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.1267429292010E-03 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 8.5299319603272E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.1928572790053E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.0562430935323E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1200913510855E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4643982594480E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.7349945212715E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3205921425907E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5617770492283E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5602354781366E-04 +(PID.TID 0000.0001) %MON ke_max = 5.9581821135653E-02 +(PID.TID 0000.0001) %MON ke_mean = 3.1327973588925E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398020384763E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.4599021831969E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.3058726567513E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5257267265661E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783510590640E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2810582699390E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.1394774058067E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.5353144156715E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.8794859316232E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.0646752278927E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -4.4823592216356E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 3.2182990842760E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 4.6455480983680E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5434866449221E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.7814741000877E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 7.5425886766331E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.1925502667721E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.6504272784936E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.9277763464180E+11 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.9277763464180E+11 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.3599856188542E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 1.3599856188542E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 1.4730207637432E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -8.1125010515599E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 295 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 296 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 295 SI_Fract + Computing Diagnostic # 323 SI_AdvFr Counter: 1 Parms: SM P M1 + Computing Diagnostic # 324 SI_AdvHi Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_AdvHi Diagnostic # 323 SI_AdvFr + Compute Stats, Diag. # 23 ETAN vol( 0 ): 1.819E+15 Parms: SM M1 + Compute Stats, Diag. # 25 DETADT2 vol( 0 ): 1.819E+15 Parms: SM M1 + Compute Stats, Diag. # 26 THETA vol( 0 ): 6.699E+18 Parms: SMR MR + Compute Stats, Diag. # 27 SALT vol( 0 ): 6.699E+18 Parms: SMR MR + Compute Stats, Diag. # 79 CONVADJ vol( 0 ): 6.575E+18 Parms: SMR LR + Compute Stats, Diag. # 78 DRHODR vol( 0 ): 6.575E+18 Parms: SM LR + Compute Stats, Diag. # 39 UE_VEL_C vol( 0 ): 6.699E+18 Parms: UMR MR + Compute Stats, Diag. # 40 VN_VEL_C vol( 0 ): 6.699E+18 Parms: VMR MR + Compute Stats, Diag. # 32 WVEL vol( 0 ): 6.575E+18 Parms: WM LR + Compute Stats, Diag. # 80 oceTAUX vol( 0 ): 1.728E+15 Parms: UU U1 + Compute Stats, Diag. # 81 oceTAUY vol( 0 ): 1.739E+15 Parms: VV U1 + Compute Stats, Diag. # 84 oceFWflx vol( 0 ): 1.819E+15 Parms: SM U1 + Compute Stats, Diag. # 86 oceQnet vol( 0 ): 1.819E+15 Parms: SM U1 + Compute Stats, Diag. # 90 SRELAX vol( 0 ): 1.819E+15 Parms: SM U1 + Compute Stats, Diag. # 85 oceSflux vol( 0 ): 1.819E+15 Parms: SM U1 + Compute Stats, Diag. # 83 sIceLoad vol( 0 ): 1.819E+15 Parms: SM U1 + Compute Stats, Diag. # 295 SI_Fract vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 296 SI_Thick vol( 0 ): 1.865E+11 Parms: SM PC M1 + use Counter Mate # 295 SI_Fract vol( 0 ): 3.639E+14 integral 1.865E+11 + Compute Stats, Diag. # 323 SI_AdvFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 324 SI_AdvHi vol( 0 ): 1.927E+11 Parms: SM PC M1 + use Counter Mate # 323 SI_AdvFr vol( 0 ): 3.639E+14 integral 1.927E+11 + Compute Stats, Diag. # 328 CPL_SLPr vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 329 CPL_Qnet vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 330 CPL_Qsw vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 331 CPL_tauX vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 332 CPL_tauY vol( 0 ): 3.639E+14 Parms: UM M1 + Compute Stats, Diag. # 334 CPL_sFlx vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 335 CPL_iceM vol( 0 ): 3.639E+14 Parms: SM M1 + Compute Stats, Diag. # 337 CPL_icFr vol( 0 ): 3.639E+14 Parms: SM P M1 + Compute Stats, Diag. # 338 CPL_iceH vol( 0 ): 1.927E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.927E+11 + Compute Stats, Diag. # 339 CPL_snwH vol( 0 ): 1.927E+11 Parms: SM PC M1 + use Counter Mate # 337 CPL_icFr vol( 0 ): 3.639E+14 integral 1.927E+11 + Compute Stats, Diag. # 340 CPL_Qic1 vol( 0 ): 2.622E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.927E+11 integral 2.622E+10 + Compute Stats, Diag. # 341 CPL_Qic2 vol( 0 ): 2.622E+10 Parms: SM C M1 + use Counter Mate # 338 CPL_iceH vol( 0 ): 1.927E+11 integral 2.622E+10 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 10 +(PID.TID 0000.0001) %CHECKPOINT 5 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 13.640287913382053 +(PID.TID 0000.0001) System time: 2.1226239949464798 +(PID.TID 0000.0001) Wall clock time: 15.799648046493530 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.18673400580883026 +(PID.TID 0000.0001) System time: 9.5429997891187668E-002 +(PID.TID 0000.0001) Wall clock time: 0.30903697013854980 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 13.453467562794685 +(PID.TID 0000.0001) System time: 2.0271550863981247 +(PID.TID 0000.0001) Wall clock time: 15.490498065948486 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.44254097342491150 +(PID.TID 0000.0001) System time: 1.3651099503040314 +(PID.TID 0000.0001) Wall clock time: 1.8122498989105225 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 13.010902225971222 +(PID.TID 0000.0001) System time: 0.66203093528747559 +(PID.TID 0000.0001) Wall clock time: 13.678213119506836 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 13.010852098464966 +(PID.TID 0000.0001) System time: 0.66202199459075928 +(PID.TID 0000.0001) Wall clock time: 13.678154468536377 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 13.010755658149719 +(PID.TID 0000.0001) System time: 0.66200995445251465 +(PID.TID 0000.0001) Wall clock time: 13.678046941757202 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.18186563253402710 +(PID.TID 0000.0001) System time: 5.7419538497924805E-003 +(PID.TID 0000.0001) Wall clock time: 0.18763136863708496 +(PID.TID 0000.0001) No. starts: 15 +(PID.TID 0000.0001) No. stops: 15 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1699140071868896E-002 +(PID.TID 0000.0001) System time: 2.7999877929687500E-003 +(PID.TID 0000.0001) Wall clock time: 1.4498710632324219E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.1624097824096680E-002 +(PID.TID 0000.0001) System time: 2.7840137481689453E-003 +(PID.TID 0000.0001) Wall clock time: 1.4415264129638672E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "CPL_EXPORT-IMPORT [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.8782699108123779 +(PID.TID 0000.0001) System time: 2.8499364852905273E-003 +(PID.TID 0000.0001) Wall clock time: 6.8812890052795410 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1593103408813477E-004 +(PID.TID 0000.0001) System time: 7.5936317443847656E-005 +(PID.TID 0000.0001) Wall clock time: 1.9073486328125000E-004 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2669326066970825 +(PID.TID 0000.0001) System time: 1.0839939117431641E-002 +(PID.TID 0000.0001) Wall clock time: 1.2778007984161377 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 9.1384053230285645E-003 +(PID.TID 0000.0001) System time: 3.0989646911621094E-003 +(PID.TID 0000.0001) Wall clock time: 1.2238025665283203E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 0.55485701560974121 +(PID.TID 0000.0001) System time: 5.1538944244384766E-003 +(PID.TID 0000.0001) Wall clock time: 0.56002211570739746 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 0.46748888492584229 +(PID.TID 0000.0001) System time: 3.8290023803710938E-003 +(PID.TID 0000.0001) Wall clock time: 0.47133469581604004 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "OCN_EXPORT_DATA [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.8236815929412842E-002 +(PID.TID 0000.0001) System time: 6.1035156250000000E-005 +(PID.TID 0000.0001) Wall clock time: 1.8305063247680664E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6532598137855530 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.6533038616180420 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.5464587211608887E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.5484972000122070E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.7414193153381348E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.7420988082885742E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.43545854091644287 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.43548536300659180 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.3345203399658203E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.3357362747192383E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.10701787471771240 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.10702919960021973 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6626834869384766E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.6635179519653320E-002 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.9033265113830566E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.9052934646606445E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4959363937377930 +(PID.TID 0000.0001) System time: 1.5079975128173828E-002 +(PID.TID 0000.0001) Wall clock time: 1.5110554695129395 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.6372413635253906E-005 +(PID.TID 0000.0001) System time: 3.9339065551757812E-006 +(PID.TID 0000.0001) Wall clock time: 5.1975250244140625E-005 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.8637390136718750E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.1259994506835938E-005 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.58468616008758545 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.58470773696899414 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1983933448791504E-002 +(PID.TID 0000.0001) System time: 4.9052000045776367E-002 +(PID.TID 0000.0001) Wall clock time: 0.12107133865356445 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0256013870239258E-002 +(PID.TID 0000.0001) System time: 0.57544612884521484 +(PID.TID 0000.0001) Wall clock time: 0.63075709342956543 +(PID.TID 0000.0001) No. starts: 5 +(PID.TID 0000.0001) No. stops: 5 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 9476 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 9476 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/halfpipe_streamice/code_oad/CPP_OPTIONS.h b/verification/exp2/code/CPP_OPTIONS.h similarity index 65% rename from verification/halfpipe_streamice/code_oad/CPP_OPTIONS.h rename to verification/exp2/code/CPP_OPTIONS.h index 2b7bf5b2df..5ee4f10fb8 100644 --- a/verification/halfpipe_streamice/code_oad/CPP_OPTIONS.h +++ b/verification/exp2/code/CPP_OPTIONS.h @@ -15,16 +15,59 @@ CEOP C CPP flags controlling particular source code features +C-- Forcing code options: + C o Shortwave heating as extra term in external_forcing.F C Note: this should be a run-time option #undef SHORTWAVE_HEATING +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE -C o Include/exclude call to S/R CONVECT +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + +C-- Vertical mixing code options: + +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT #define INCLUDE_CONVECT_CALL +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over, here we +C turn it on to reproduce old results +#define INCLUDE_CONVECT_INI_CALL + C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL @@ -34,49 +77,56 @@ C o Allow full 3D specification of vertical diffusivity C o Allow latitudinally varying BryanLewis79 vertical diffusivity #undef ALLOW_BL79_LAT_VARY +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#undef EXCLUDE_PCELL_MIX_CODE + +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + C o Include/exclude Implicit vertical advection code #define INCLUDE_IMPLVERTADV_CODE C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 -C o Include/exclude nonHydrostatic code -#undef ALLOW_NONHYDROSTATIC +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS -C o Allow to account for heating due to friction (and momentum dissipation) -#undef ALLOW_FRICTION_HEATING +C-- Model formulation options: -C o Allow mass source or sink of Fluid in the interior -C (3-D generalisation of oceanic real-fresh water flux) -#undef ALLOW_ADDFLUID - -C o Include pressure loading code -#define ATMOSPHERIC_LOADING - -C o exclude/allow external forcing-fields load -C this allows to read & do simple linear time interpolation of oceanic -C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. -#undef EXCLUDE_FFIELDS_LOAD +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV -C o Include/exclude balancing surface forcing fluxes code -#undef ALLOW_BALANCE_FLUXES +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate +c#define DISABLE_RSTAR_CODE +c#define DISABLE_SIGMA_CODE -C o Include/exclude balancing surface forcing relaxation code -#undef ALLOW_BALANCE_RELAX +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC C o Include/exclude GM-like eddy stress in momentum code #undef ALLOW_EDDYPSI -C o Use "Exact Convervation" of fluid in Free-Surface formulation -C so that d/dt(eta) is exactly equal to - Div.Transport -#define EXACT_CONSERV +C-- Algorithm options: -C o Allow the use of Non-Linear Free-Surface formulation -C this implies that surface thickness (hFactors) vary with time -#undef NONLIN_FRSURF +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver -#undef ALLOW_SRCG +#define ALLOW_SRCG C o Choices for implicit solver routines solve_*diagonal.F C The following has low memory footprint, but not suitable for AD @@ -84,6 +134,8 @@ C The following has low memory footprint, but not suitable for AD C The following one suitable for AD but does not vectorize #undef SOLVE_DIAGONAL_KINNER +C-- Retired code options: + C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) C *only for use on a lat-lon grid* @@ -95,7 +147,7 @@ C The preferred method is specifying a value for viscAhGrid or viscA4Grid C in data which is then automatically scaled by the grid size; C the old method of specifying viscAh/viscA4 and this flag is provided C for completeness only (and for use with the adjoint). -C#define ISOTROPIC_COS_SCALING +c#define ISOTROPIC_COS_SCALING C o This flag selects the form of COSINE(lat) scaling of bi-harmonic term. C *only for use on a lat-lon grid* @@ -105,18 +157,15 @@ C Setting this flag here affects both momentum and tracer equation unless C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). C The definition of the flag is commented to avoid interference with C such other header files. -C#define COSINEMETH_III - -C o Use "OLD" UV discretisation near boundaries (*not* recommended) -C Note - only works with #undef NO_SLIP_LATERAL in calc_mom_rhs.F -C because the old code did not have no-slip BCs -#undef OLD_ADV_BCS +c#define COSINEMETH_III C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. #undef OLD_GRID_IO +C-- Other option files: + C o Execution environment support options #include "CPP_EEOPTIONS.h" @@ -126,8 +175,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/front_relax/README b/verification/front_relax/README deleted file mode 100644 index 2300c4204e..0000000000 --- a/verification/front_relax/README +++ /dev/null @@ -1,25 +0,0 @@ -Example: "Relaxation of a Front in a Channel" -============================================= - -This experiment uses a simply EOS (rho = - rho_o alpha T') and treats -salt as a passive tracer. - -Configure and compile the code: - cd build - ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] - make depend - make - cd .. - -To run: - cd run - ln -s ../input/* . - ln -s ../build/mitgcmuv . - ./mitgcmuv > output.txt - cd .. - -There is comparison output in the directory: - results/output.txt - -Comments: -The input data is real*8. diff --git a/verification/front_relax/README.md b/verification/front_relax/README.md new file mode 100644 index 0000000000..7b7d15b16f --- /dev/null +++ b/verification/front_relax/README.md @@ -0,0 +1,152 @@ +# Relaxation of a front in a channel : simplest example that uses GM-Redi parameterization + + +A 2-D, y-z set-up is used to mimic a zonally symmetric, reentrant channel with +a baroclinicly unstable initial density front.
+As meso-scale eddies are not resolved in this 2-D set-up, the GM-Redi +parameterization is used to represent their effects. + +### Overview: +This experiment contains 5 set-ups (with corresponding `input[.*]/` dir) that +can be run with the same executable (built from `build/` dir using customized +code from `code/`); binary input files have been generated using matlab script +`gendata.m` from the corresponding `input` dir. All five set-ups use a +simple EOS ( $\rho' = -\rho_0 ~ \alpha_T ~ \theta'$ ) and treat salt as a +passive tracer ; without any surface forcing, the density front is expected to +flatten (GM effect) while salinity spread along isopycnal (Redi diffusion). + +The **primary** test, using input files from `input/` dir, is the simplest +one, with flat bottom, non-uniform resolution in both direction (15 levels +from 50 m to 400 m thick near the bottom and, in Y-direction, 32 grid-points +with about 10 km spacing) and stratified every-where (background +$N = 2\times 10^{-3} ~s^{-1}$, see matlab script `input/gendata.m`), +avoiding the need for tapering or clipping.
+It uses the skew-flux formulation of GM with same Redi and GM diffusivity ( +`GM_background_K` = 1000 $m^2/s$, see: `input/data.gmredi`). Note that 10 dead +levels were added (below the bottom) to allow to use the same executable +(compiled with `Nr = 25`) for all 5 set-ups. + +The **secondary** test `input.in_p/` dir is the same as the primary test but +converted to use P-coordinates instead of height coordinates. For the purpose +of comparing P and Z coordinates, gravity and reference density `rhoNil` are +set to round number (respectively 10 and 1000) to facilitate conversions. It +uses the advective form of GM with same Redi and GM diffusivity (see: +`input.in_p/data.gmredi`). + +The **next two secondary** set-ups, `input.mxl/` and `input.bvp/` are very +similar, sharing the same binary input files from `input.mxl/` dir ; they use +the full 25 level model to represent a 10 level, 200 m thick mixed layer on +top of a stratified warm bowl of water. The `input.mxl/` illustrates the use +of the transition-layer tapering scheme 'fm07' with the skew-flux formulation +of GM with same Redi and GM diffusivity ( `GM_background_K` = 1000 $m^2/s$, +see: `input.mxl/data.gmredi`) and a flat bottom while the secondary test +`input.bvp/` has a sloping bottom and uses the Boundary-Value Problem +(`GM_useBVP=T,` with 5 modes: `GM_BVP_modeNumber=5,`) of the GM advective form +with same Redi and GM diffusivity (see: `input.bvp/data.gmredi`). In addition, +in this later test, the sub-meso parameterization is activated +(`GM_useSubMeso=T`). + +The **last secondary** test `input.top/` shares some similarity with the previous +one (similar warm bowl, use BVP with GM advective form) except that the model +top is depressed by 50 m near the center, as it would under, e.g., a floating +ice-shelf. Also the mixed layer is thinner (60 m only) and very weakly +stratified ( $N = 10^{-6} ~s^{-1}$ ) and vertical resolution is slightly +different, reaching a maximum depth of 2.5 km (vs only 2 km in the previous 2 +set-ups). + +### Instructions: +Configure and compile the code: + +``` + cd build + ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] + make depend + make + cd .. +``` + +To run primary test: + +``` + cd run + ln -s ../input/* . + ../build/mitgcmuv > output.txt +``` + +There is comparison output in the directory: + + `results/output.txt` + +To run any of secondary `$sc` test (`$sc` in: `in_p`, `mxl`, `bvp`, `top`): + +``` + cd run + rm * + ln -s ../input.$sc/* . + ln -s ../input/* . + ./prepare_run #- only for "bvp" test + ../build/mitgcmuv > output.txt +``` +Note that the "prepare_run" step is only needed for `bvp` test. + +There is comparison output in the directory: + + `results/output.$sc.txt` + +### Notes: +1. **Comparison between P and Z coordinates**: + + The results from the secondary set-up `input.in_p/`, using Pressure + coordinate, can be compared to the Z-coordinate, primary set-up `input/`, + providing one uses the same `pkg/gmredi` parameters (same 'data.gmredi'), + e.g.: + + - Using GM advective form, with 'data.gmredi' from `input.in_p/` for both + runs. + + - Using the GM skew-flux form, with 'data.gmredi' from `input/` for both + runs. + + Note that, when comparing output, the vertical index `k` of 3-D variables + needs to be flipped ; the SSH (in m) comparison is between output variable + 'Eta' (in-Z) and 'PHL' (in-P) divided by 10 (=gravity); and the bottom + pressure (in Pa) is between 'PHL' (in-Z) multiplied by $1000 = \rho_0$ and + 'Eta' (in-P).
+ Most of the differences (e.g., after 20 time-steps, T,S max-diff are: + $1.4\times 10^{-4}$, $2.3 \times 10^{-5}$ and RMS: $6.6 \times 10^{-5}$, + $9.6 \times 10^{-6}$ ) come from the dynamics and not from GM since without + dynamics (un-commenting line 34: `momStepping=.FALSE.,` in both set-up + `data` files) the differences are down to machine precision (RMS of T,S + diff: $1.5 \times 10^{-14}, ~ 1. \times 10^{-15}$ ). + +2. **Testing GM or Redi diffusion alone** in either of the 2 set-ups above: + + To test GM alone, without isopycnal diffusion, just un-comment: + `GM_isopycK = 0.,` in `data.gmredi`.
+ And to test Redi diffusion alone, without GM, just set: `GM_isopycK = + 1000.,` and comment out `GM_background_K` setting in `data.gmredi`. Also + changing the initial salinity to a centered patch (using file + `Sini_Patch.bin` instead of `Sini_Ydir.bin`) better illustrates the Redi + effects on a passive tracer. + +3. **Switching from a Y-Z to X-Z set-up** + + Since none of the 5 set-up use any feature specific to Y-direction, all + using 'f-plane' (`f0 = 1.E-4, beta=0`), the same set of input files could + be used by the X-Z model instead of the current Y-Z model (simply + switching `sNx,nSx,nPx` <-> `sNy,nSy,nPy` in `SIZE.h`) to produce similar + results (flipping U & V with 1 minus sign). The only minor adjustment to + input files is related to the setting of delX, delY in the parameter file + `data`, which also need to be switched, e.g., for the primary set-up: + + ``` + delXfile='dy.bin', + delY=1*10.E3, + ``` + instead of: + + ``` + delX=1*10.E3, + delYfile='dy.bin', + ``` + This may be used to verify implementation of X-fluxes versus Y-fluxes. diff --git a/verification/front_relax/input.bvp/data.gmredi b/verification/front_relax/input.bvp/data.gmredi index 7375a064db..67acc54350 100644 --- a/verification/front_relax/input.bvp/data.gmredi +++ b/verification/front_relax/input.bvp/data.gmredi @@ -2,7 +2,7 @@ &GM_PARM01 GM_AdvForm=.TRUE., GM_useBVP = .TRUE., -#GM_BVP_modeNumber=5, + GM_BVP_modeNumber=5, GM_background_K=1000., GM_taper_scheme='linear', GM_maxSlope =1.E-02, @@ -10,7 +10,7 @@ #GM_facTrL2ML = 5., #GM_maxTransLay = 500., GM_useSubMeso = .TRUE., -#subMeso_Ceff = 5.e-2, -#subMeso_LfMin = 5.e+3, + subMeso_Ceff = 3.E-2, +#subMeso_LfMin = 5.E+3, & diff --git a/verification/front_relax/input.bvp/data.pkg b/verification/front_relax/input.bvp/data.pkg index 15d0d36527..ebb548e5fe 100644 --- a/verification/front_relax/input.bvp/data.pkg +++ b/verification/front_relax/input.bvp/data.pkg @@ -1,6 +1,5 @@ -# Packages +# Packages (lines beginning "#" are comments) &PACKAGES useGMRedi=.TRUE., - useKPP=.FALSE., useDiagnostics=.TRUE., & diff --git a/verification/front_relax/input.bvp/eedata b/verification/front_relax/input.bvp/eedata deleted file mode 100644 index 06dcf3c23d..0000000000 --- a/verification/front_relax/input.bvp/eedata +++ /dev/null @@ -1,11 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - nTx=1, - nTy=1, - & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/front_relax/input.bvp/eedata.mth b/verification/front_relax/input.bvp/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/front_relax/input.bvp/eedata.mth +++ b/verification/front_relax/input.bvp/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/front_relax/input.in_p/Sini_Patch.bin b/verification/front_relax/input.in_p/Sini_Patch.bin new file mode 100644 index 0000000000..48a40a8573 Binary files /dev/null and b/verification/front_relax/input.in_p/Sini_Patch.bin differ diff --git a/verification/front_relax/input.in_p/Sini_Ydir.bin b/verification/front_relax/input.in_p/Sini_Ydir.bin new file mode 100644 index 0000000000..9167e6e0d1 Binary files /dev/null and b/verification/front_relax/input.in_p/Sini_Ydir.bin differ diff --git a/verification/front_relax/input.in_p/Tini_flip.bin b/verification/front_relax/input.in_p/Tini_flip.bin new file mode 100644 index 0000000000..e18dfaf523 Binary files /dev/null and b/verification/front_relax/input.in_p/Tini_flip.bin differ diff --git a/verification/front_relax/input.in_p/bathy_inP.bin b/verification/front_relax/input.in_p/bathy_inP.bin new file mode 100644 index 0000000000..712ca9788e Binary files /dev/null and b/verification/front_relax/input.in_p/bathy_inP.bin differ diff --git a/verification/front_relax/input.in_p/data b/verification/front_relax/input.in_p/data new file mode 100644 index 0000000000..9521fcc0f8 --- /dev/null +++ b/verification/front_relax/input.in_p/data @@ -0,0 +1,84 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef= 25*17.5, + viscAr=2.E+4, + viscAh=3.E+2, + no_slip_sides=.FALSE., + no_slip_bottom=.FALSE., + diffKrT=3.E+3, + diffKrS=3.E+3, + diffKhT=0.E3, + diffKhS=0.E3, +#ivdc_kappa=1.E+8, + beta=0.E-11, + f0 =1.E-4, + selectCoriScheme=1, + gravity= 10., + buoyancyRelation='OCEANICP', + eosType='LINEAR', + tAlpha=2.E-4, + sBeta =0.E-4, + rhoConst=1000., + rhoNil=1000., + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + exactConserv=.TRUE., + implicitDiffusion=.TRUE., + staggerTimeStep=.TRUE. + tempAdvScheme=20, + saltAdvScheme=20, +#momStepping=.FALSE., + readBinaryPrec=64, + writeBinaryPrec=64, + useSingleCpuIO=.TRUE., + debugLevel=2, + plotLevel=0, + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=1000, + cg2dTargetResidual=1.E-13, + & + +# Time stepping parameters + &PARM03 + startTime=0., + deltaT=1800., + abEps=0.1, + momDissip_In_AB=.FALSE., + pChkptFreq=0., + chkptFreq =0., + dumpFreq=864000., + monitorSelect=1, +#- very short run: + nTimeSteps=20, + monitorFreq=1., +#- longer run: +#nTimeSteps=4321, +#monitorFreq=86400., + & + +# Gridding parameters + &PARM04 + usingCartesianGrid=.TRUE., +#delR= 10*1.E4, 480.E4, 400.E4, 320.E4, 260.E4, 200.E4, 155.E4, 120.E4, +# 95.E4, 80.E4, 70.E4, 65.E4, 60.E4, 55.E4, 50.E4, 50.E4, + delRc= 10*400.E4, 480.E4, 440.E4, 360.E4, 290.E4, 230.E4, 177.5E4, 137.5E4, + 107.5E4, 87.5E4, 75.E4, 67.5E4, 62.5E4, 57.5E4, 52.5E4, 50.E4, 25.E4, + delX=1*10.E3, +#delY=32*10.E3, + delYfile='dy.bin', + & + +# Input datasets + &PARM05 + bathyFile ='bathy_inP.bin', + hydrogThetaFile='Tini_flip.bin', + hydrogSaltFile ='Sini_Ydir.bin', +#hydrogSaltFile ='Sini_Patch.bin', + & diff --git a/verification/front_relax/input.in_p/data.diagnostics b/verification/front_relax/input.in_p/data.diagnostics new file mode 100644 index 0000000000..faed3e81b5 --- /dev/null +++ b/verification/front_relax/input.in_p/data.diagnostics @@ -0,0 +1,84 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., + fields(1:4,1) = 'ETAN ','DETADT2 ','PHIBOT ', + 'MXLDEPTH', +# 'GM_BVPcW','GM_BVPcS', +# 'SubMesLf','SubMpsiY', +# 'GM_hTrsL','GM_baseS','GM_rLamb', +# 'GM_VisbK', + levels(1,1) = 1., + fileName(1) = 'surfDiag', + frequency(1) = -864000., + timePhase(1) = 0., + + fields(1:7,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'THETA ','THETASQ ','UVELSQ ', +# do not specify levels => all levels are selected +# fileName(2) = 'dynDiag', + frequency(2) = -864000., + timePhase(2) = 0., + + fields(1:8,3) = 'DRHODR ','RHOAnoma','THETA ', + 'GM_Kwy ','GM_Kwz ', + 'GM_Kvy ','GM_Kvz ', + 'GM_PsiY ', + fileName(3) = 'oceDiag', + frequency(3) = -864000., + timePhase(3) = 0., + + fields(1:5,4) = 'DFyE_TH ','DFrE_TH ','DFrI_TH ', + 'ADVy_TH ','ADVr_TH ', +# 'ADVy_SLT','ADVr_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = -864000., + timePhase(4) = 0., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS + stat_fields(1:13,1) = 'ETAN ','DETADT2 ','MXLDEPTH', + 'UVEL ','VVEL ','WVEL ', + 'THETA ','SALT ','GM_PsiY ', + 'GM_Kvy ','GM_Kvz ','GM_Kwy ','GM_Kwz ', +# 'GM_hTrsL','GM_baseS','GM_rLamb', +# 'SubMesLf','SubMpsiY', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = 21600., +# stat_freq(1) = 86400., +# stat_phase(1) = 0., + & diff --git a/verification/front_relax/input.in_p/data.gmredi b/verification/front_relax/input.in_p/data.gmredi new file mode 100644 index 0000000000..f15552b2a3 --- /dev/null +++ b/verification/front_relax/input.in_p/data.gmredi @@ -0,0 +1,9 @@ +# GM-Redi parameters + &GM_PARM01 + GM_AdvForm=.TRUE., + GM_background_K=1000., +# GM_isopycK = 0., +# GM_taper_scheme='orig', +# GM_taper_scheme='linear', + GM_maxSlope =1.E-02, + & diff --git a/verification/front_relax/input.in_p/data.pkg b/verification/front_relax/input.in_p/data.pkg new file mode 100644 index 0000000000..ebb548e5fe --- /dev/null +++ b/verification/front_relax/input.in_p/data.pkg @@ -0,0 +1,5 @@ +# Packages (lines beginning "#" are comments) + &PACKAGES + useGMRedi=.TRUE., + useDiagnostics=.TRUE., + & diff --git a/verification/offline_exf_seaice/input.dyn_lsr/eedata b/verification/front_relax/input.in_p/eedata similarity index 53% rename from verification/offline_exf_seaice/input.dyn_lsr/eedata rename to verification/front_relax/input.in_p/eedata index e9aa69bc1e..5e3a7b2226 100644 --- a/verification/offline_exf_seaice/input.dyn_lsr/eedata +++ b/verification/front_relax/input.in_p/eedata @@ -1,10 +1,10 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS - nTx=1, - nTy=1, +# debugMode=.TRUE., & # Note: Some systems use & as the namelist terminator (as shown here). # Other systems use a / character. diff --git a/verification/isomip/input_oad/eedata.mth b/verification/front_relax/input.in_p/eedata.mth similarity index 65% rename from verification/isomip/input_oad/eedata.mth rename to verification/front_relax/input.in_p/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/isomip/input_oad/eedata.mth +++ b/verification/front_relax/input.in_p/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/front_relax/input.in_p/gendata.m b/verification/front_relax/input.in_p/gendata.m new file mode 100644 index 0000000000..32bbfca737 --- /dev/null +++ b/verification/front_relax/input.in_p/gendata.m @@ -0,0 +1,188 @@ +% This is a matlab script that generates the input data +prec='real*8'; +ieee='b'; +kwr=1; + +%- pick simple number (easier to compare P & Z coords): +gravity=10; rhoC=1000.; +% conversion from dz (in m) to dp (in Pa) +conv2p=gravity*rhoC; + +% Dimensions/resolution of grid (resolution/depth in m) +nx=1; dx=10e3; +ny=32; dy=10e3; +%- set original level thickness: +dz=[50 50 55 60 65 70 80 95 120 155 200 260 320 400 480]; + +nz=prod(size(dz)); +%- add 10 more levels: +nr=nz+10; + +% Nominal depth of model (meters) +Ho=sum(dz); +pBot=conv2p*Ho; + +% Vertical Coordinates +zf=[0 -cumsum(dz)]; +zc=(zf(1:end-1)+zf(2:end))/2; +dp=conv2p*flip(dz,2); drF=dp; +pf=pBot-[0 cumsum(dp)]; +pc=(pf(1:end-1)+pf(2:end))/2; + +%- after defining centered position (pc), get vertical spacing in between (to use if +% we want the interface to be @ the middle beetween 2 center --> specifying delRc=) +delRc=zeros(1,nz+1); +delRc(2:nz)=pc(1:nz-1)-pc(2:nz); +delRc(1)=pf(1)-pc(1); delRc(nz+1)=pc(nz)-pf(nz+1); +% need to adjust first (=bottom) value since we will add more levels there: +delRc(1)=2*delRc(1); +fprintf(' delRc='); fprintf(' %4.1f,',delRc*1.e-4); fprintf('\n'); +%- set "pfc" assuming interface are @ middle: +pfc=pf; pfc(2:nz)=(pc(1:nz-1)+pc(2:nz))*0.5; +drF=pfc(1:nz)-pfc(2:nz+1); + +% Topography (channel), converted to P: +H=pBot*ones(nx,ny); +H(:,end)=0; % Solid wall in North +namf='bathy_inP.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,H,prec); fclose(fid); +end + +% Size of domain (m) +Lx=dx*nx; +Ly=dy*(ny-1); % Solid wall in North + +% Variable resolution +y=(1:ny)/(ny-0)-0.5; +dyF=1-0.3*exp( -(5*y).^2 ); +%dyF=ones(1,ny); % Constant resolution +dyF=dyF/sum(dyF(1:ny-1))*Ly; +namf='dy.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,dyF,prec); fclose(fid); +end + +% Coordinates +xc=((1:nx)-0.5)*dx; +yf=-Ly/2+[0 cumsum(dyF)]; +yc=(yf(1:end-1)+yf(2:end))/2; +[X,Y]=ndgrid(xc,yc); + +% Stratification +fo=1e-4; +alpha=2e-4; +%gravity=9.81; has been set @ the top +N_over_f=20; +N2=(N_over_f*fo)^2; +dTdz=N2/(alpha*gravity); + +slope=1e-3; +dTdy=-slope*dTdz; + +for k=1:nz, + T(:,:,k)=20 +dTdz*zc(k) ... + +dTdy*Ly*sin(pi*Y/Ly)... + *exp(-(3*zc(k)/Ho)^2); +end +T(:,end,:)=0; +%- flip k and add 10 more levels: +t2d=zeros(nx,ny,nr); t2d(:,:,[1+nr-nz:nr])=flip(T,3); +namf='Tini_flip.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,t2d,prec); fclose(fid); +end + +% Salt (passive tracer), only fct of Y: +S=zeros(nx,ny,nz); +for k=1:nz, +%S(:,:,k)=ones(nx,ny)+zc(k)/Ho; % Linear with z +%S(:,:,k)=exp(2*zc(k)/Ho); % Exponential with z +%S(1,:,k)=exp(2*yc/Ly); % Exponential with y + S(1,:,k)=exp(-(2*yc/Ly).^2); % Exponential with y +end +S(:,end,:)=0; +%- flip k and add 10 more levels: +s2d1=zeros(nx,ny,nr); s2d1(:,:,[1+nr-nz:nr])=flip(S,3); +namf='Sini_Ydir.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,s2d1,prec); fclose(fid); +end + +% Salt (passive tracer), centered patch: +% centered location: (yS,zS) ; patch width: (Lh,Lv) +S=zeros(nx,ny,nz); + yS=yc(16); Lh=Ly/8; + zS=zc(10); Lv=500; +for k=1:nz, + S(1,:,k)=exp(-((yc-yS)/Lh).^2)*exp(-((zc(k)-zS)/Lv).^2); % Exponential with y^2 + z^2 +end +S(:,end,:)=0; +%- flip k and add 10 more levels: +s2d2=zeros(nx,ny,nr); s2d2(:,:,[1+nr-nz:nr])=flip(S,3); +namf='Sini_Patch.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,s2d2,prec); fclose(fid); +end + +figure(1);clf; colormap('jet'); ccB=[0 0]; + subplot(211); + yax=yc*1.e-3; %- in km + var=squeeze(T); zax=zc; ccB=[15 21]*1; cInt=[15:0.5:21]; + var=squeeze(t2d(:,:,11:nr)); zax=pc; +%imagesc(yax,zax,var'); if zax(12) < 0, set(gca,'YDir','normal'); end +%pcolor(yax,zax,var'); if zax(12) > 0, set(gca,'YDir','reverse'); end + contourf(yax,zax,var',cInt); if zax(12) > 0, set(gca,'YDir','reverse'); end + if ccB(2) > ccB(1), caxis(ccB); end + colorbar; + + subplot(212); + var=squeeze(S); zax=zc; ccB=[-1 10]*0.1; cInt=[0:1:20]*5.e-2; +%var=squeeze(s2d2); zax=[[10:-1:1]+pBot pc]; +%var=squeeze(s2d1(:,:,11:nr)); zax=pc; + var=squeeze(s2d2(:,:,11:nr)); zax=pc; +%yax=yf(1:ny)*1.e-3; %- in km +%var=squeeze(uCg); zax=zc; ccB=[-1 10]*8.e-3; cInt=[0:1:20]*4.e-3; +%ccB=[0 0]; +%var(:,:)=NaN; var(1:ny-1,2:nz)=log10(locN2); var(1:ny-1,2:nz)=locN2; +%imagesc(yax,zax,var'); if zax(12) < 0, set(gca,'YDir','normal'); end +%pcolor(yax,zax,var'); if zax(12) > 0, set(gca,'YDir','reverse'); end + contourf(yax,zax,var',cInt); if zax(12) > 0, set(gca,'YDir','reverse'); end + if ccB(2) > ccB(1), caxis(ccB); end + colorbar; + +figure(2); clf; + yax=[1:ny]; yax=yax-mean(yax); + subplot(311); + plot(yax,dyF,'b-'); + AA=axis; AA(1:2)=[-ny/2 ny/2]; axis(AA); + grid on; + + subplot(613); + plot(yax,H,'b-'); + AA=axis; AA(1:2)=[-ny/2 ny/2]; axis(AA); + grid on; + + subplot(223); + zax=[1:nz]; + plot(pc,zax,'kx'); + zax=0.5+[0:nz]; + hold on; + plot(pfc,zax,'b-'); + plot(pf,zax,'r-'); + hold off; + grid + title('pc , pf , pfc'); + +%- plot relative difference: + var=(pfc-pf)./delRc; + subplot(224); + plot(var,zax,'b-'); + grid + title(' (pfc - pf)/dpC'); + diff --git a/verification/front_relax/input.mxl/data.pkg b/verification/front_relax/input.mxl/data.pkg index 15d0d36527..ebb548e5fe 100644 --- a/verification/front_relax/input.mxl/data.pkg +++ b/verification/front_relax/input.mxl/data.pkg @@ -1,6 +1,5 @@ -# Packages +# Packages (lines beginning "#" are comments) &PACKAGES useGMRedi=.TRUE., - useKPP=.FALSE., useDiagnostics=.TRUE., & diff --git a/verification/front_relax/input.mxl/eedata b/verification/front_relax/input.mxl/eedata deleted file mode 100644 index 06dcf3c23d..0000000000 --- a/verification/front_relax/input.mxl/eedata +++ /dev/null @@ -1,11 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - nTx=1, - nTy=1, - & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/front_relax/input.mxl/eedata.mth b/verification/front_relax/input.mxl/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/front_relax/input.mxl/eedata.mth +++ b/verification/front_relax/input.mxl/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/front_relax/input.top/data b/verification/front_relax/input.top/data new file mode 100644 index 0000000000..9fa215cbf4 --- /dev/null +++ b/verification/front_relax/input.top/data @@ -0,0 +1,78 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef= 10*10.0, 9.9, 9.8, 9.7, 9.5, 9.4, 9.2, 9.0, 8.7, 8.4, 8.0, 7.6, 7.1, 6.5, 5.8, 5.2, + viscAr=2.E-4, + viscA4=12.E5, + no_slip_sides=.FALSE., + no_slip_bottom=.TRUE., + bottomDragLinear=1.E-3, +#bottomDragQuadratic=1.E-3, + diffKrT=2.E-5, + diffKrS=2.E-5, +#diffKrNrT=6*1.E-2, 19*2.E-5, +#diffKrNrS=6*1.E-2, 19*2.E-5, + diffKhT=0.E3, + diffKhS=0.E3, + beta=0.E-11, + f0 =1.E-4, + gravity=9.81, + eosType='LINEAR', + tAlpha=2.E-4, + sBeta =0.E-4, + rhoConst=1000., + rhoNil=1000., + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + implicitDiffusion=.TRUE., + hFacMin= 0.05, +#hMixCriteria=-0.04, + hMixCriteria= 1.5, + readBinaryPrec=64, + writeBinaryPrec=64, + debugLevel=3, + plotLevel=0, + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=1000, + cg2dTargetResidual=1.E-13, + & + +# Time stepping parameters + &PARM03 + startTime=0., +#nTimeSteps=8641, + nTimeSteps=25, + deltaT=3600., + cAdjFreq=-1., + abEps=0.1, + pChkptFreq=0., + chkptFreq =0., + dumpFreq=2592000., +#monitorFreq=864000., + monitorSelect=1, + monitorFreq=1., + & + +# Gridding parameters + &PARM04 + usingCartesianGrid=.TRUE., + delR= 8*20., 24., 29., 35., 41., 50., 60., 72., + 86., 103., 124., 148., 178., 213., 256., 3*307., + delX=1*1.E5, + delY=32*1.E5, + & + +# Input datasets + &PARM05 + hydrogThetaFile='t_ini.bin', + hydrogSaltFile ='s_ini.bin', + uVelInitFile ='u_ini.bin', + bathyFile ='topo_slp.bin', + topoFile ='top_bump.bin', + & diff --git a/verification/front_relax/input.top/data.diagnostics b/verification/front_relax/input.top/data.diagnostics new file mode 100644 index 0000000000..b2fd670fa7 --- /dev/null +++ b/verification/front_relax/input.top/data.diagnostics @@ -0,0 +1,81 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., + fields(1:4,1) = 'ETAN ','DETADT2 ','PHIBOT ', + 'MXLDEPTH', +# 'GM_BVPcW','GM_BVPcS', +# 'SubMesLf','SubMpsiY', +# 'GM_hTrsL','GM_baseS','GM_rLamb', +# 'GM_VisbK', + levels(1,1) = 1., + fileName(1) = 'surfDiag', + frequency(1) = -86400., + timePhase(1) = 0., + + fields(1:7,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'THETA ','THETASQ ','UVELSQ ', +# do not specify levels => all levels are selected +# fileName(2) = 'dynDiag', + frequency(2) = -864000., + timePhase(2) = 0., + + fields(1:8,3) = 'DRHODR ','RHOAnoma', + 'GM_Kwy ','GM_Kwz ', + 'GM_Kvy ','GM_Kvz ', + 'GM_PsiY ','THETA ', + fileName(3) = 'oceDiag', + frequency(3) = -86400., + timePhase(3) = 0., + + fields(1:5,4) = 'ADVy_TH ','ADVr_TH ', + 'DFyE_TH ','DFrE_TH ', + 'DFrI_TH ', +# 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 1728000., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +# stat_fields(1:13,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +# 'MXLDEPTH','SubMesLf','SubMpsiY','GM_PsiY ', +# 'GM_Kwy ','GM_Kwz ','GM_Kvy ','GM_Kvz ', +## 'GM_hTrsL','GM_baseS','GM_rLamb', +## stat_fName(1) = 'dynStDiag', +# stat_freq(1) = 18000., +## stat_phase(1) = 0., + & diff --git a/verification/front_relax/input.top/data.gmredi b/verification/front_relax/input.top/data.gmredi new file mode 100644 index 0000000000..d667d20b0d --- /dev/null +++ b/verification/front_relax/input.top/data.gmredi @@ -0,0 +1,23 @@ +# GM-Redi parameters + &GM_PARM01 + GM_AdvForm=.TRUE., +#GM_useBVP = .TRUE., + GM_BVP_modeNumber=5, + GM_background_K=1000., +#GM_isopycK = 1000., +#GM_taper_scheme='orig', +#GM_taper_scheme='linear', +#GM_taper_scheme='gkw91', + GM_taper_scheme='ac02', +#GM_taper_scheme='dm95', +#GM_taper_scheme='ldd97', +#GM_taper_scheme='fm07', + GM_maxSlope =1.E-02, + GM_facTrL2dz = 0., +#GM_facTrL2ML = 5., +#GM_maxTransLay = 500., +#GM_useSubMeso = .TRUE., +#subMeso_Ceff = 3.e-2, +#subMeso_LfMin = 5.e+3, + & + diff --git a/verification/front_relax/input.top/data.pkg b/verification/front_relax/input.top/data.pkg new file mode 100644 index 0000000000..ebb548e5fe --- /dev/null +++ b/verification/front_relax/input.top/data.pkg @@ -0,0 +1,5 @@ +# Packages (lines beginning "#" are comments) + &PACKAGES + useGMRedi=.TRUE., + useDiagnostics=.TRUE., + & diff --git a/verification/tutorial_global_oce_biogeo/input_oad/eedata.mth b/verification/front_relax/input.top/eedata.mth similarity index 65% rename from verification/tutorial_global_oce_biogeo/input_oad/eedata.mth rename to verification/front_relax/input.top/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/tutorial_global_oce_biogeo/input_oad/eedata.mth +++ b/verification/front_relax/input.top/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/front_relax/input.top/gendata.m b/verification/front_relax/input.top/gendata.m new file mode 100644 index 0000000000..d25fadaabe --- /dev/null +++ b/verification/front_relax/input.top/gendata.m @@ -0,0 +1,191 @@ + +dzL=20; +hup=160; kL=round(hup/dzL); +N=15; +k=[1:N]; +for k=1:N, +%dd(k)=1.20436^k; + dd(k)=1.1997^k; +end +dd=dd*dzL; +dd=round(dd); +tot=cumsum(dd); +fprintf(' zF - %i :',hup); +%fprintf(' %5.0f',tot(end-5:end));fprintf('\n'); +fprintf(' %4.0f',tot(1:end));fprintf('\n'); +fprintf(' variable dz:'); +fprintf(' %3.0f,',dd);fprintf('\n'); + +%- uniform dz=20 m down to "hup", then increasing exponentially +% + set remaining (up to nr=25) thickness (near bottom) uniformly +dM=dd(end); kD=10-kL; +dz=[ones(1,kL)*dzL dd ones(1,kD)*dM]; nz=size(dz,2); +zF=[0 -cumsum(dz)]; zC=(zF(1:nz)+zF(2:nz+1))/2; +fprintf(' nz= %i , Full depth: %6.1f\n',nz,-zF(end)); + +dy=1.e+5; ny=32; +yF=[0:ny]-ny/2; yF=yF*dy; yC=(yF(1:ny)+yF(2:ny+1))/2; + +%- set initial temperature: +N2=4.e-6; +alphaT=2.e-4; +gravity=9.81; +fo=1.e-4; +%- N2= db/dz = g alphaT dT/dz +dTdz=N2/gravity/alphaT; + +slope=1e-3; +%- jmc: use a smaller slope and slower decay with depth (increase Ho) +slope=6e-4; +dTdy=-slope*dTdz; + +fprintf(' N= %9.3e ; g= %5.3f ; alphaT= %9.3e ; dTdz= %e\n', ... + sqrt(N2),gravity,alphaT,dTdz); + +Ly=24.*dy; yM=0; Ho=2205; +Ho=2400; +T=zeros(ny,nz); +km=1; +for k=km:nz, + T(:,k)=10 +dTdz*zC(k) ... + +dTdy*Ly*(tanh((yC-yM-200.e3)/200.e3)-tanh((yC-yM+200.e3)/200.e3))/2 ... + *exp(-(3*zC(k)/Ho)^2); +end +%- Create a ML with very weak stratif +N2ML=1.e-12; +%- N2= db/dz = g alphaT dT/dz +dTdzML=N2ML/gravity/alphaT; +kmx=3; +if kmx > 1, + TML=T(:,kmx); + for k=kmx-1:-1:1 + TML=TML+dzL*dTdzML; + T(:,k)=TML; + end +end + +fprintf('- horiz mean T profile:\n'); +var=mean(T); i2=0; +i1=i2+1; i2=floor(nz/2); + fprintf(' %4.1f,',var(i1:i2)); + fprintf('\n'); +i1=i2+1; i2=nz; + fprintf(' %4.1f,',var(i1:i2)); + fprintf('\n'); + +%- Thermal wind +alphaT=2.e-4; +dbdy=zeros(ny+1,nz); +dbdy(2:ny,:)=gravity*alphaT*(T([2:ny],:)-T([1:ny-1],:))/dy; +ug=zeros(ny+1,nz+1); +for k=nz:-1:1; + ug(:,k) = ug(:,k+1) - dbdy(:,k)*dz(k)/fo ; +end +uCg=ug([1:ny],[1:nz])+ug([2:ny+1],[2:nz+1]) ... + +ug([2:ny+1],[1:nz])+ug([1:ny],[2:nz+1]); +uCg=uCg/4; +%size(uCg) + +%- Salt (passive tracer) +S=zeros(ny,nz); +for k=1:nz, +%S(:,k)=ones(ny,1)+zC(k)/Ho; % Linear with z +%S(:,k)=exp(2*zC(k)/Ho); % Exponential with z + S(:,k)=exp(-(2*yC/Ly).^2); % Exponential with y +end +S=10+2*S; + +%- add a bump at the top: Exponential shape (width: 2*nyD*dy), height: Hbump +Hbump=50; nyD=5; +ztop=exp(-(yC/dy/nyD).^2); % Exponential width: 2*nyD*dy +zB=ztop(2); ztop=-Hbump*(ztop-zB)/(max(ztop)-zB); +ztop=min(ztop,0); + +%- plot to check: + +figure(1);clf; +subplot(211); +var=squeeze(T); var(find(var==0))=NaN; +%pcolor(yC,zC,var'); colorbar; +[cs,h]=contour(yC,zC,var',[6:.5:13 13.3]);clabel(cs); +grid +title('t\_ini'); + +subplot(223); +var=T(1,:); +plot(var,zC,'b-'); +var=T(ny/2,:); +hold on; +plot(var,zC,'r-'); +i1=ny/2-3; i2=1+ny-i1; +var=T(i1,:); +plot(var,zC,'g-'); +var=T(i2,:); +plot(var,zC,'c-'); +hold off; +grid +axis([9.4 11 -300 0]); + +subplot(224); +var=T(1,:); +plot(var,zC,'b-'); +var=T(ny/2,:); +hold on; +plot(var,zC,'r-'); +i1=ny/2-3; i2=1+ny-i1; +var=T(i1,:); +plot(var,zC,'g-'); +var=T(i2,:); +plot(var,zC,'c-'); +hold off; +grid; + +figure(2);clf; +subplot(211); +var=squeeze(uCg); +%pcolor(yc,zc,var'); colorbar; +cl=[-10:10]/100; +[cs,h]=contour(yC(1:ny),zC,var',cl);clabel(cs); +grid +title('u\_ini'); + +subplot(223); +plot(yC,S(:,1),'k-'); axis([yF(1) yF(end) 10 12.1]); +%var=squeeze(S); cl=[-10:10]/10; +%[cs,h]=contour(yC(1:ny),zC,var',cl);clabel(cs); +grid +title('s\_ini'); + +subplot(426); +plot(yC,ztop,'r-'); axis([yF(1) yF(end) [-1.04 0.04]*50]); +grid +title('top\_bump'); + +hSlp=[1:ny]*8/(ny-2); hSlp=hSlp-mean(hSlp); +hSlp=zF(end)+300*(1+tanh(hSlp)); hSlp(1)=0; hSlp(ny)=0; +subplot(428); +plot(yC,hSlp,'b-'); +AA=axis; +%axis([yF(1) yF(end) AA(3:4)]); +yBnd=[hSlp(2) hSlp(ny-1)]+[-1 1]*100; +axis([yF(1) yF(end) [-26 -18]*100]); +grid +title('topo\_slp'); + +%return + +H=zF(end)*ones(ny,1); +H(1)=0; H(ny)=0; +%fid=fopen('topog.bin','w','b'); fwrite(fid,H,'real*8'); fclose(fid); + +fid=fopen('topo_slp.bin','w','b'); fwrite(fid,hSlp,'real*8'); fclose(fid); + +fid=fopen('top_bump.bin','w','b'); fwrite(fid,ztop,'real*8'); fclose(fid); + +fid=fopen('t_ini.bin','w','b'); fwrite(fid,T,'real*8'); fclose(fid); + +fid=fopen('u_ini.bin','w','b'); fwrite(fid,uCg,'real*8'); fclose(fid); + +fid=fopen('s_ini.bin','w','b'); fwrite(fid,S,'real*8'); fclose(fid); + +return diff --git a/verification/front_relax/input.top/s_ini.bin b/verification/front_relax/input.top/s_ini.bin new file mode 100644 index 0000000000..f125bfd9e2 --- /dev/null +++ b/verification/front_relax/input.top/s_ini.bin @@ -0,0 +1,51 @@ +@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L@$L@$P@% C@%YP,@%^,@%4H @&#(. k@&l@&߀†y@&y~X @'= +uHc@'ysl@'}Ì@'ԁ@'@'9H@'9H@'@'ԁ@'}Ì@'ysl@'= +uHc@&y~X @&߀†y@&l@&#(. k@%4H @%^,@%YP,@% C@$P@$L \ No newline at end of file diff --git a/verification/front_relax/input.top/t_ini.bin b/verification/front_relax/input.top/t_ini.bin new file mode 100644 index 0000000000..6f14a59230 Binary files /dev/null and b/verification/front_relax/input.top/t_ini.bin differ diff --git a/verification/front_relax/input.top/top_bump.bin b/verification/front_relax/input.top/top_bump.bin new file mode 100644 index 0000000000..efee4adf34 Binary files /dev/null and b/verification/front_relax/input.top/top_bump.bin differ diff --git a/verification/front_relax/input.top/topo_slp.bin b/verification/front_relax/input.top/topo_slp.bin new file mode 100644 index 0000000000..8e42ff6fe2 Binary files /dev/null and b/verification/front_relax/input.top/topo_slp.bin differ diff --git a/verification/front_relax/input.top/u_ini.bin b/verification/front_relax/input.top/u_ini.bin new file mode 100644 index 0000000000..2c23d330ca Binary files /dev/null and b/verification/front_relax/input.top/u_ini.bin differ diff --git a/verification/front_relax/input/Sini_Patch.bin b/verification/front_relax/input/Sini_Patch.bin new file mode 100644 index 0000000000..40ba56832a Binary files /dev/null and b/verification/front_relax/input/Sini_Patch.bin differ diff --git a/verification/front_relax/input/salt.bin b/verification/front_relax/input/Sini_Ydir.bin similarity index 100% rename from verification/front_relax/input/salt.bin rename to verification/front_relax/input/Sini_Ydir.bin diff --git a/verification/front_relax/input/Tini_+10l.bin b/verification/front_relax/input/Tini_+10l.bin new file mode 100644 index 0000000000..0fd7b427d4 Binary files /dev/null and b/verification/front_relax/input/Tini_+10l.bin differ diff --git a/verification/front_relax/input/topog.bin b/verification/front_relax/input/bathy_inZ.bin similarity index 100% rename from verification/front_relax/input/topog.bin rename to verification/front_relax/input/bathy_inZ.bin diff --git a/verification/front_relax/input/data b/verification/front_relax/input/data index db89eb8988..cacf2e7fe9 100644 --- a/verification/front_relax/input/data +++ b/verification/front_relax/input/data @@ -4,18 +4,21 @@ # # Continuous equation parameters &PARM01 - tRef=29.,28.,27.,26.,25.,24.,23.,22.,21.,20.,19.,18.,17.,16.,15.,10*0., - viscAr=1.E-3, - viscA4=1.E11, + tRef= 25*17.5, + viscAr=2.E-4, + viscAh=3.E+2, no_slip_sides=.FALSE., no_slip_bottom=.FALSE., diffKrT=3.E-5, diffKrS=3.E-5, diffKhT=0.E3, diffKhS=0.E3, +#ivdc_kappa=1., beta=0.E-11, f0 =1.E-4, - gravity=9.81, + selectCoriScheme=1, + gravity= 10., + buoyancyRelation='OCEANIC', eosType='LINEAR', tAlpha=2.E-4, sBeta =0.E-4, @@ -23,9 +26,17 @@ rhoNil=1000., rigidLid=.FALSE., implicitFreeSurface=.TRUE., + exactConserv=.TRUE., implicitDiffusion=.TRUE., + staggerTimeStep=.TRUE. + tempAdvScheme=20, + saltAdvScheme=20, +#momStepping=.FALSE., readBinaryPrec=64, writeBinaryPrec=64, + globalFiles=.TRUE., + debugLevel=2, + plotLevel=0, & # Elliptic solver parameters @@ -37,22 +48,28 @@ # Time stepping parameters &PARM03 startTime=0., - nTimeSteps=20, deltaT=1800., - cAdjFreq=-1., abEps=0.1, + momDissip_In_AB=.FALSE., pChkptFreq=0., chkptFreq =0., - dumpFreq=8640000., + dumpFreq=864000., monitorSelect=1, +#- very short run: + nTimeSteps=20, monitorFreq=1., +#- longer run: +#nTimeSteps=4321, +#monitorFreq=86400., & # Gridding parameters &PARM04 usingCartesianGrid=.TRUE., - delR= 50., 50., 55., 60., 65., 70., 80., 95., - 120., 155., 200., 260., 320., 400., 480., 10*1., +#delR= 50., 50., 55., 60., 65., 70., 80., 95., +# 120., 155., 200., 260., 320., 400., 480., 10*1., + delRc= 25., 50., 52.5, 57.5, 62.5, 67.5, 75., 87.5, + 107.5, 137.5, 177.5, 230., 290., 360., 440., 480., 10*400., delX=1*10.E3, #delY=32*10.E3, delYfile='dy.bin', @@ -60,7 +77,8 @@ # Input datasets &PARM05 - hydrogThetaFile='theta.bin', - hydrogSaltFile ='salt.bin', - bathyFile ='topog.bin', + bathyFile ='bathy_inZ.bin', + hydrogThetaFile='Tini_+10l.bin', + hydrogSaltFile ='Sini_Ydir.bin', +#hydrogSaltFile ='Sini_Patch.bin', & diff --git a/verification/front_relax/input/data.gmredi b/verification/front_relax/input/data.gmredi index 4117603c18..ed77aedeb8 100644 --- a/verification/front_relax/input/data.gmredi +++ b/verification/front_relax/input/data.gmredi @@ -1,9 +1,9 @@ # GM-Redi parameters &GM_PARM01 - GM_background_K=1000.d0, -# GM_taper_scheme=' ', - GM_maxSlope=1.000000000000000E-02 -# GM_Scrit, -# GM_Sd - & - +# GM_AdvForm=.TRUE., + GM_background_K=1000., +# GM_isopycK = 0., +# GM_taper_scheme='orig', +# GM_taper_scheme='linear', + GM_maxSlope =1.E-02, + & diff --git a/verification/front_relax/input/data.mpi b/verification/front_relax/input/data.mpi new file mode 100644 index 0000000000..ed674a399b --- /dev/null +++ b/verification/front_relax/input/data.mpi @@ -0,0 +1,84 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef= 25*17.5, + viscAr=2.E-4, + viscAh=3.E+2, + no_slip_sides=.FALSE., + no_slip_bottom=.FALSE., + diffKrT=3.E-5, + diffKrS=3.E-5, + diffKhT=0.E3, + diffKhS=0.E3, +#ivdc_kappa=1., + beta=0.E-11, + f0 =1.E-4, + selectCoriScheme=1, + gravity= 10., + buoyancyRelation='OCEANIC', + eosType='LINEAR', + tAlpha=2.E-4, + sBeta =0.E-4, + rhoConst=1000., + rhoNil=1000., + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + exactConserv=.TRUE., + implicitDiffusion=.TRUE., + staggerTimeStep=.TRUE. + tempAdvScheme=20, + saltAdvScheme=20, +#momStepping=.FALSE., + readBinaryPrec=64, + writeBinaryPrec=64, + useSingleCpuIO=.TRUE., + debugLevel=2, + plotLevel=0, + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=1000, + cg2dTargetResidual=1.E-13, + & + +# Time stepping parameters + &PARM03 + startTime=0., + deltaT=1800., + abEps=0.1, + momDissip_In_AB=.FALSE., + pChkptFreq=0., + chkptFreq =0., + dumpFreq=864000., + monitorSelect=1, +#- very short run: + nTimeSteps=20, + monitorFreq=1., +#- longer run: +#nTimeSteps=4321, +#monitorFreq=86400., + & + +# Gridding parameters + &PARM04 + usingCartesianGrid=.TRUE., +#delR= 50., 50., 55., 60., 65., 70., 80., 95., +# 120., 155., 200., 260., 320., 400., 480., 10*1., + delRc= 25., 50., 52.5, 57.5, 62.5, 67.5, 75., 87.5, + 107.5, 137.5, 177.5, 230., 290., 360., 440., 480., 10*400., + delX=1*10.E3, +#delY=32*10.E3, + delYfile='dy.bin', + & + +# Input datasets + &PARM05 + bathyFile ='bathy_inZ.bin', + hydrogThetaFile='Tini_+10l.bin', + hydrogSaltFile ='Sini_Ydir.bin', +#hydrogSaltFile ='Sini_Patch.bin', + & diff --git a/verification/front_relax/input/data.pkg b/verification/front_relax/input/data.pkg index b789d5589e..0fab8e00e1 100644 --- a/verification/front_relax/input/data.pkg +++ b/verification/front_relax/input/data.pkg @@ -1,5 +1,5 @@ -# Packages +# Packages (lines beginning "#" are comments) &PACKAGES useGMRedi=.TRUE., - useKPP=.FALSE., +# useDiagnostics=.TRUE., & diff --git a/verification/front_relax/input/dy.bin b/verification/front_relax/input/dy.bin index 425fc1039d..ddba04ddbe 100644 Binary files a/verification/front_relax/input/dy.bin and b/verification/front_relax/input/dy.bin differ diff --git a/verification/front_relax/input/eedata b/verification/front_relax/input/eedata index 06dcf3c23d..5e3a7b2226 100644 --- a/verification/front_relax/input/eedata +++ b/verification/front_relax/input/eedata @@ -1,11 +1,10 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS - nTx=1, - nTy=1, +# debugMode=.TRUE., & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/front_relax/input/eedata.mth b/verification/front_relax/input/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/front_relax/input/eedata.mth +++ b/verification/front_relax/input/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/front_relax/input/gendata.m b/verification/front_relax/input/gendata.m index e53596ba1d..cfcd5311bb 100644 --- a/verification/front_relax/input/gendata.m +++ b/verification/front_relax/input/gendata.m @@ -1,20 +1,48 @@ % This is a matlab script that generates the input data prec='real*8'; ieee='b'; +kwr=1; + +%- pick simple number (easier to compare P & Z coords): +gravity=10; rhoC=1000.; % Dimensions/resolution of grid (resolution/depth in m) nx=1; dx=10e3; ny=32; dy=10e3; +%- set original level thickness: dz=[50 50 55 60 65 70 80 95 120 155 200 260 320 400 480]; + nz=prod(size(dz)); +%- add 10 more levels: +nr=nz+10; % Nominal depth of model (meters) Ho=sum(dz); -% Topography (channel) +% Vertical Coordinates +zf=[0 -cumsum(dz)]; +zc=(zf(1:end-1)+zf(2:end))/2; +drF=dz; +%- after defining centered position (zc), get vertical spacing in between (to use if +% we want the interface to be @ the middle beetween 2 center --> specifying delRc=) +delRc=zeros(1,nz+1); +delRc(2:nz)=zc(1:nz-1)-zc(2:nz); +delRc(1)=zf(1)-zc(1); delRc(nz+1)=zc(nz)-zf(nz+1); +% need to adjust nz+1 value since we will add more levels there: + delRc(nz+1)=2*delRc(nz+1); +fprintf(' delRc='); fprintf(' %4.1f,',delRc); fprintf('\n'); +%- set "zfc" assuming interface are @ middle: +zfc=zf; zfc(2:nz)=(zc(1:nz-1)+zc(2:nz))*0.5; +drF=zfc(1:nz)-zfc(2:nz+1); + +% Topography (channel): H=-Ho*ones(nx,ny); H(:,end)=0; % Solid wall in North -fid=fopen('topog.bin','w',ieee); fwrite(fid,H,prec); fclose(fid); +namf='bathy_inZ.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,H,prec); fclose(fid); +end % Size of domain (m) Lx=dx*nx; @@ -22,23 +50,25 @@ % Variable resolution y=(1:ny)/(ny-0)-0.5; -dy=1-0.3*exp( -(5*y).^2 ); -%dy=ones(1,ny); % Constant resolution -dy=dy/sum(dy(1:ny-1))*Ly; -fid=fopen('dy.bin','w',ieee); fwrite(fid,dy,prec); fclose(fid); +dyF=1-0.3*exp( -(5*y).^2 ); +%dyF=ones(1,ny); % Constant resolution +dyF=dyF/sum(dyF(1:ny-1))*Ly; +namf='dy.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,dyF,prec); fclose(fid); +end % Coordinates xc=((1:nx)-0.5)*dx; -yf=-Ly/2+[0 cumsum(dy)]; +yf=-Ly/2+[0 cumsum(dyF)]; yc=(yf(1:end-1)+yf(2:end))/2; -zf=[0 -cumsum(dz)]; -zc=(zf(1:end-1)+zf(2:end))/2; [X,Y]=ndgrid(xc,yc); % Stratification fo=1e-4; alpha=2e-4; -gravity=9.81; +%gravity=9.81; has been set @ the top N_over_f=20; N2=(N_over_f*fo)^2; dTdz=N2/(alpha*gravity); @@ -51,19 +81,132 @@ +dTdy*Ly*sin(pi*Y/Ly)... *exp(-(3*zc(k)/Ho)^2); end +dTy=(T(1,[2:ny],:)-T(1,[1:ny-1],:)); T(:,end,:)=0; %- add 10 more levels: -t25=zeros(nx,ny,nz+10); t25(:,:,[1:nz]=T; -fid=fopen('theta.bin','w',ieee); fwrite(fid,t25,prec); fclose(fid); +t2d=zeros(nx,ny,nr); t2d(:,:,[1:nz])=T; +namf='Tini_+10l.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,t2d,prec); fclose(fid); +end + +%- compute local N2: +dTz=(T(1,:,[1:nz-1])-T(1,:,[2:nz])); +dTz=squeeze(dTz)./repmat(delRc(2:nz),[ny 1]); +locN2=dTz(1:ny-1,:)*(alpha*gravity); MxV=max(locN2(:)); +fprintf(' max(N2) = %6.4e ; max(c1) = %6.4f\n',MxV,Ho*sqrt(MxV)/pi); + +%- Thermal wind +dyC=zeros(ny+1,1); dyC(1)=dyF(1); dyC(ny+1)=dyF(ny); +dyC(2:ny,1)=(dyF(2:ny)+dyF(1:ny-1))*0.5; +dbdy=zeros(ny+1,nz); +dbdy(2:ny,:)=gravity*alpha*squeeze(dTy); +dbdy=dbdy./repmat(dyC,[1 nz]); +dbdy(1,:)=dbdy(2,:); dbdy(ny+1,:)=dbdy(ny,:); +ug=zeros(ny+1,nz+1); +for k=nz:-1:1; + ug(:,k) = ug(:,k+1) - dbdy(:,k)*drF(k)/fo ; +end +uCg=ug([1:ny],[1:nz])+ug([2:ny+1],[2:nz+1]) ... + +ug([2:ny+1],[1:nz])+ug([1:ny],[2:nz+1]); +uCg=uCg/4; uCg(end,:)=0; +%- add 10 more levels: +u2d=zeros(nx,ny,nr); u2d(:,:,[1:nz])=reshape(uCg,[1 ny nz]); +namf='Uini_geos.bin'; +if kwr > 1, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,u2d,prec); fclose(fid); +end -% Salt (passive tracer) +% Salt (passive tracer), only fct of Y: +S=zeros(nx,ny,nz); for k=1:nz, %S(:,:,k)=ones(nx,ny)+zc(k)/Ho; % Linear with z %S(:,:,k)=exp(2*zc(k)/Ho); % Exponential with z -%S(:,:,k)=exp(2*Y/Ly); % Exponential with y - S(:,:,k)=exp(-(2*Y/Ly).^2); % Exponential with y +%S(1,:,k)=exp(2*yc/Ly); % Exponential with y + S(1,:,k)=exp(-(2*yc/Ly).^2); % Exponential with y +end +S(:,end,:)=0; +%- add 10 more levels: +s2d1=zeros(nx,ny,nr); s2d1(:,:,[1:nz])=S; +namf='Sini_Ydir.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,s2d1,prec); fclose(fid); +end + +% Salt (passive tracer), centered patch: +% centered location: (yS,zS) ; patch width: (Lh,Lv) +S=zeros(nx,ny,nz); + yS=yc(16); Lh=Ly/8; + zS=zc(10); Lv=500; +for k=1:nz, + S(1,:,k)=exp(-((yc-yS)/Lh).^2)*exp(-((zc(k)-zS)/Lv).^2); % Exponential with y^2 + z^2 end S(:,end,:)=0; %- add 10 more levels: -s25=zeros(nx,ny,nz+10); s25(:,:,[1:nz]=S; -fid=fopen('salt.bin','w',ieee); fwrite(fid,s25,prec); fclose(fid); +s2d2=zeros(nx,ny,nr); s2d2(:,:,[1:nz])=S; +namf='Sini_Patch.bin'; +if kwr > 0, + fprintf('write to file: %s\n',namf); + fid=fopen(namf,'w',ieee); fwrite(fid,s2d2,prec); fclose(fid); +end + +figure(1);clf; colormap('jet'); ccB=[0 0]; + subplot(211); + yax=yc*1.e-3; %- in km + var=squeeze(T); zax=zc; ccB=[15 21]*1; cInt=[15:0.5:21]; + var=squeeze(t2d(:,:,1:nz)); zax=zc; +%imagesc(yax,zax,var'); if zax(12) < 0, set(gca,'YDir','normal'); end +%pcolor(yax,zax,var'); if zax(12) > 0, set(gca,'YDir','reverse'); end + contourf(yax,zax,var',cInt); if zax(12) > 0, set(gca,'YDir','reverse'); end + if ccB(2) > ccB(1), caxis(ccB); end + colorbar; + + subplot(212); +%var=squeeze(S); zax=zc; ccB=[-1 11]*0.1; cInt=[0:1:10]*0.1; +%var=squeeze(s2d1(:,:,1:nz)); ccB=[-1 10]*0.1; cInt=[0:1:20]*5.e-2; + var=squeeze(s2d2(:,:,1:nz)); ccB=[-1 10]*0.1; cInt=[0:1:20]*5.e-2; +%yax=yf(1:ny)*1.e-3; %- in km +%var=squeeze(uCg); zax=zc; ccB=[-1 10]*8.e-3; cInt=[0:1:20]*4.e-3; +%ccB=[0 0]; +%var(:,:)=NaN; var(1:ny-1,2:nz)=log10(locN2); var(1:ny-1,2:nz)=locN2; +%imagesc(yax,zax,var'); if zax(12) < 0, set(gca,'YDir','normal'); end +%pcolor(yax,zax,var'); if zax(12) > 0, set(gca,'YDir','reverse'); end + contourf(yax,zax,var',cInt); if zax(12) > 0, set(gca,'YDir','reverse'); end + if ccB(2) > ccB(1), caxis(ccB); end + colorbar; + +figure(2); clf; + yax=[1:ny]; yax=yax-mean(yax); + subplot(311); + plot(yax,dyF,'b-'); + AA=axis; AA(1:2)=[-ny/2 ny/2]; axis(AA); + grid on; + title('dyF'); + + subplot(613); + plot(yax,H,'b-'); + AA=axis; AA(1:2)=[-ny/2 ny/2]; axis(AA); + grid on; + title('H'); + + subplot(223); + zax=-[1:nz]; + plot(zc,zax,'kx'); + zax=0.5-[1:nz+1]; + hold on; + plot(zf,zax,'b-'); + plot(zfc,zax,'r-'); + hold off; + grid + title('zc , zf , zfc'); + +%- plot relative difference: + var=(zfc-zf)./delRc; + subplot(224); + plot(var,zax,'b-'); + grid + title(' (zfc - zf)/dzC'); + diff --git a/verification/front_relax/input/theta.bin b/verification/front_relax/input/theta.bin deleted file mode 100644 index 8dd6ecb8f0..0000000000 Binary files a/verification/front_relax/input/theta.bin and /dev/null differ diff --git a/verification/front_relax/results/output.bvp.txt b/verification/front_relax/results/output.bvp.txt index e6e1dceacf..1f91903d52 100644 --- a/verification/front_relax/results/output.bvp.txt +++ b/verification/front_relax/results/output.bvp.txt @@ -5,25 +5,23 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67h -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Mar 21 23:47:19 EDT 2019 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68f +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jan 25 09:48:05 EST 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "eedata" file (PID.TID 0000.0001) ># Lines beginning "#" are comments -(PID.TID 0000.0001) ># nTx - No. threads per process in X -(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) (PID.TID 0000.0001) > &EEPARMS -(PID.TID 0000.0001) > nTx=1, -(PID.TID 0000.0001) > nTy=1, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -49,7 +47,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -182,10 +180,9 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.pkg" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># Packages (lines beginning "#" are comments) (PID.TID 0000.0001) > &PACKAGES (PID.TID 0000.0001) > useGMRedi=.TRUE., -(PID.TID 0000.0001) > useKPP=.FALSE., (PID.TID 0000.0001) > useDiagnostics=.TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) @@ -214,7 +211,7 @@ (PID.TID 0000.0001) > &GM_PARM01 (PID.TID 0000.0001) > GM_AdvForm=.TRUE., (PID.TID 0000.0001) > GM_useBVP = .TRUE., -(PID.TID 0000.0001) >#GM_BVP_modeNumber=5, +(PID.TID 0000.0001) > GM_BVP_modeNumber=5, (PID.TID 0000.0001) > GM_background_K=1000., (PID.TID 0000.0001) > GM_taper_scheme='linear', (PID.TID 0000.0001) > GM_maxSlope =1.E-02, @@ -222,7 +219,7 @@ (PID.TID 0000.0001) >#GM_facTrL2ML = 5., (PID.TID 0000.0001) >#GM_maxTransLay = 500., (PID.TID 0000.0001) > GM_useSubMeso = .TRUE., -(PID.TID 0000.0001) >#subMeso_Ceff = 5.e-2, +(PID.TID 0000.0001) > subMeso_Ceff = 3.e-2, (PID.TID 0000.0001) >#subMeso_LfMin = 5.e+3, (PID.TID 0000.0001) > / (PID.TID 0000.0001) > @@ -603,16 +600,16 @@ (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 211 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 212 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 210 GM_BVPcW -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 211 GM_BVPcS -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 193 SubMesLf -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 195 SubMpsiY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 211 GM_BVPcW +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 212 GM_BVPcS +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 SubMesLf +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 196 SubMpsiY (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 32 WVEL @@ -622,15 +619,15 @@ (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 36 UVELSQ (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 77 DRHODR (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 64 RHOAnoma -(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 201 GM_Kwy -(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 202 GM_Kwz -(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 197 GM_Kvy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 202 GM_Kwy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 203 GM_Kwz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 198 GM_Kvy (PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 204 GM_PsiY -(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 199 GM_Kvz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 200 GM_Kvz (PID.TID 0000.0001) space allocated for all diagnostics: 383 levels -(PID.TID 0000.0001) set mate pointer for diag # 210 GM_BVPcW , Parms: SU P M1 , mate: 211 -(PID.TID 0000.0001) set mate pointer for diag # 211 GM_BVPcS , Parms: SV P M1 , mate: 210 +(PID.TID 0000.0001) set mate pointer for diag # 211 GM_BVPcW , Parms: SU P M1 , mate: 212 +(PID.TID 0000.0001) set mate pointer for diag # 212 GM_BVPcS , Parms: SV P M1 , mate: 211 (PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 (PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag @@ -708,7 +705,7 @@ (PID.TID 0000.0001) 6.000000000000000E+00, /* K = 24 */ (PID.TID 0000.0001) 5.000000000000000E+00 /* K = 25 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 25 @ 3.000000000000000E+01 /* K = 1: 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -806,7 +803,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -816,6 +813,9 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -870,28 +870,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -913,7 +916,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -922,10 +925,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -990,37 +993,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -1125,8 +1103,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1143,6 +1121,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1621,7 +1602,7 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 5 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ (PID.TID 0000.0001) 1.000000000000000E-01 @@ -1630,7 +1611,7 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ -(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) 3.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ (PID.TID 0000.0001) 2.000000000000000E-06 @@ -1641,6 +1622,9 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -1667,10 +1651,10 @@ listId= 1 ; file name: surfDiag 25 |DETADT2 | 2 | 0 | 1 | 0 | 73 |PHIBOT | 3 | 0 | 1 | 0 | 76 |MXLDEPTH| 4 | 0 | 1 | 0 | - 210 |GM_BVPcW| 5 | 6 | 1 | 0 | 0 | - 211 |GM_BVPcS| 6 | 5 | 1 | 0 | 0 | - 193 |SubMesLf| 7 | 0 | 1 | 0 | - 195 |SubMpsiY| 8 | 0 | 1 | 0 | + 211 |GM_BVPcW| 5 | 6 | 1 | 0 | 0 | + 212 |GM_BVPcS| 6 | 5 | 1 | 0 | 0 | + 194 |SubMesLf| 7 | 0 | 1 | 0 | + 196 |SubMpsiY| 8 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: dynDiag nFlds, nActive, freq & phase , nLev @@ -1692,12 +1676,12 @@ listId= 3 ; file name: oceDiag diag# | name | ipt | iMate | kLev| count | mate.C| 77 |DRHODR | 184 | 0 | 25 | 0 | 64 |RHOAnoma| 209 | 0 | 25 | 0 | - 201 |GM_Kwy | 234 | 0 | 25 | 0 | - 202 |GM_Kwz | 259 | 0 | 25 | 0 | - 197 |GM_Kvy | 284 | 0 | 25 | 0 | + 202 |GM_Kwy | 234 | 0 | 25 | 0 | + 203 |GM_Kwz | 259 | 0 | 25 | 0 | + 198 |GM_Kvy | 284 | 0 | 25 | 0 | 26 |THETA | 309 | 0 | 25 | 0 | - 204 |GM_PsiY | 334 | 0 | 25 | 0 | - 199 |GM_Kvz | 359 | 0 | 25 | 0 | + 205 |GM_PsiY | 334 | 0 | 25 | 0 | + 200 |GM_Kvz | 359 | 0 | 25 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 0 ------------------------------------------------------------------------ @@ -1781,16 +1765,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0762417435869E-23 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7338367110351E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0975995090818E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325043260481E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538231167499E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3324889781143E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538231165989E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4642401720337E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4059933615263E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4178854125315E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996554616262E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464446045175E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4059932914598E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4170677521096E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996547989691E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464446042935E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308841661162E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1721897596559E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6436130951725E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1721897446923E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6436282792496E-04 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.5749484231792E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 3.6101337760413E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6931460151443E-02 @@ -1806,11 +1790,11 @@ Global & Regional Statistics diagnostics: Number of lists: 0 Computing Diagnostic # 25 DETADT2 Counter: 1 Parms: SM M1 Computing Diagnostic # 73 PHIBOT Counter: 1 Parms: SM M1 Computing Diagnostic # 76 MXLDEPTH Counter: 1 Parms: SM M1 - Computing Diagnostic # 210 GM_BVPcW Counter: 1 Parms: SU P M1 - Computing Diagnostic # 211 GM_BVPcS Counter: 1 Parms: SV P M1 - Computing Diagnostic # 193 SubMesLf Counter: 1 Parms: SM P M1 - Computing Diagnostic # 195 SubMpsiY Counter: 1 Parms: VV M1 - Vector Mate for SubMpsiY Diagnostic # 194 SubMpsiX not enabled + Computing Diagnostic # 211 GM_BVPcW Counter: 1 Parms: SU P M1 + Computing Diagnostic # 212 GM_BVPcS Counter: 1 Parms: SV P M1 + Computing Diagnostic # 194 SubMesLf Counter: 1 Parms: SM P M1 + Computing Diagnostic # 196 SubMpsiY Counter: 1 Parms: VV M1 + Vector Mate for SubMpsiY Diagnostic # 195 SubMpsiX not enabled Computing Diagnostic # 30 UVEL Counter: 1 Parms: UUR MR Vector Mate for UVEL Diagnostic # 31 VVEL exists Computing Diagnostic # 31 VVEL Counter: 1 Parms: VVR MR @@ -1823,1212 +1807,1212 @@ Global & Regional Statistics diagnostics: Number of lists: 0 Vector Mate for UVELSQ Diagnostic # 37 VVELSQ not enabled Computing Diagnostic # 77 DRHODR Counter: 1 Parms: SM LR Computing Diagnostic # 64 RHOAnoma Counter: 1 Parms: SMR MR - Computing Diagnostic # 201 GM_Kwy Counter: 1 Parms: VM LR - Vector Mate for GM_Kwy Diagnostic # 200 GM_Kwx not enabled - Computing Diagnostic # 202 GM_Kwz Counter: 1 Parms: WM P LR - Computing Diagnostic # 197 GM_Kvy Counter: 1 Parms: VV P MR - Vector Mate for GM_Kvy Diagnostic # 196 GM_Kux not enabled + Computing Diagnostic # 202 GM_Kwy Counter: 1 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 201 GM_Kwx not enabled + Computing Diagnostic # 203 GM_Kwz Counter: 1 Parms: WM P LR + Computing Diagnostic # 198 GM_Kvy Counter: 1 Parms: VV P MR + Vector Mate for GM_Kvy Diagnostic # 197 GM_Kux not enabled Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR - Computing Diagnostic # 204 GM_PsiY Counter: 1 Parms: VV LR - Vector Mate for GM_PsiY Diagnostic # 203 GM_PsiX not enabled - Computing Diagnostic # 199 GM_Kvz Counter: 1 Parms: VV MR - Vector Mate for GM_Kvz Diagnostic # 198 GM_Kuz not enabled - cg2d: Sum(rhs),rhsMax = -3.21270787750905E-15 9.91836551001539E-01 -(PID.TID 0000.0001) cg2d_init_res = 4.11600372226236E-01 + Computing Diagnostic # 205 GM_PsiY Counter: 1 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX not enabled + Computing Diagnostic # 200 GM_Kvz Counter: 1 Parms: VV MR + Vector Mate for GM_Kvz Diagnostic # 199 GM_Kuz not enabled + cg2d: Sum(rhs),rhsMax = -2.85882428840978E-15 9.91755296760455E-01 +(PID.TID 0000.0001) cg2d_init_res = 4.11566106123805E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.62676069645011E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.55574768766310E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.0024108486617E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.7666405646473E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.2997131347656E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5214466646042E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 6.3121292462564E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.0022865024037E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.7666604834903E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.4014383951823E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5214211274727E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 6.3116501758283E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2417841485456E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2452023978655E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5984572113800E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9217061404394E-02 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.0654330806929E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.4003363768380E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.5133018179838E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.0177104654332E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.6537545361737E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.7845135649907E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.3781047661655E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4648094504741E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.7686175692282E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2311183308266E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6599520637963E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325302449142E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538305570751E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641423703376E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057879242081E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4133350606528E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996573839041E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464448766464E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308818038425E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1720192945502E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6440765640379E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3989640416610E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.5121276176103E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.0176062413293E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.6535581703446E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.7808879557272E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.3770779058314E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4648171758090E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.0762417435869E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2309483897780E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6586886428475E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325053053306E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538305567731E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641423829082E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057879298719E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4116080346890E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996563077296E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464448760311E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308818038726E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1720192944983E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6440956182659E-04 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4827286323158E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.4247886544742E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3268369369414E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6052276078811E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 6.6813224261165E-05 -(PID.TID 0000.0001) %MON ke_max = 7.7622384547387E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9512919181197E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.4243659423397E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3267125906833E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6030521736468E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 6.6810981390860E-05 +(PID.TID 0000.0001) %MON ke_max = 7.7622259337848E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9512831081557E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.82333054105288E-15 9.55395371614318E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.49790400077986E-01 + cg2d: Sum(rhs),rhsMax = -4.20496970576778E-15 9.55255982577350E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.49888171418092E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 5.67628618191550E-14 +(PID.TID 0000.0001) cg2d_last_res = 4.95050072580852E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.1112345615925E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1122766970066E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.7683715820313E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6156406911565E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.9245813473787E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2631291684711E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2696323531050E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2777401894848E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9426832465350E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.2917751476731E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2509693954720E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3735317576639E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8275098405776E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4652321314273E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5903354241018E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5508644210312E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0674881752306E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9226510897418E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.2339815085844E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4631069303858E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325714780431E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538410717008E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641180473910E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057438295357E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4117039745924E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996594602068E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464137649054E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308801671048E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1719412143492E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6452165447356E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.5706764711778E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9447143275901E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.4895758788039E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8977744412114E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 7.5342240474857E-05 -(PID.TID 0000.0001) %MON ke_max = 8.1134454113230E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9169016434764E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.1110058672046E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1122823535418E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.7620137532552E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6155977757491E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.9237064013316E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2631165335917E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2696184003360E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2776829673618E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9426657726490E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.2916451129591E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2498489807572E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3723247273912E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8277403109775E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4641142765959E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5802550278150E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5492186630119E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0653112465273E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4609933948695E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.2289254334925E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4598422194154E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325409705886E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538410713384E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641180774885E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057439014562E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4090766553362E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996581512629E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464137646243E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308801672462E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1719412499488E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6452387832522E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.5706262412097E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9403690186085E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.4896266972822E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8936691709918E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 7.5338237976010E-05 +(PID.TID 0000.0001) %MON ke_max = 8.1131803594484E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9168412483513E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.09234884763055E-15 9.20894515816442E-01 -(PID.TID 0000.0001) cg2d_init_res = 9.13506288236503E-02 + cg2d: Sum(rhs),rhsMax = -6.36990460378684E-15 9.20699556620604E-01 +(PID.TID 0000.0001) cg2d_init_res = 9.13949953368014E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.23734967579928E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.32062518819925E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8572487734222E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.9989599285499E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.3723653157552E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5003987460223E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7526890431792E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3067117692458E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3181464814132E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6323213919649E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0054786435526E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5672746595574E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5520052300489E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7355603241002E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1072858345020E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2221099559299E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1339589538947E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1967536019687E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1411394011197E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2304966974348E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.2466032479596E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.2815783781913E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3326152998394E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538428169582E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641311505135E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057718330991E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4096670378511E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996614702084E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463921353575E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308801388179E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1718894159571E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6468606874634E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7453273330874E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.2480171667606E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.4622380480901E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.6860319590911E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 6.4977403132758E-05 -(PID.TID 0000.0001) %MON ke_max = 8.7772285733215E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.0356363681036E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.8569333807934E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.9990224876356E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.3914388020833E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5003383609510E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7514618397316E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3066668789239E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3180972622889E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6321591522964E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0054141645743E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5668360080159E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5500023598026E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7334083326357E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1076150336912E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2196936003309E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1322265814188E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1944550510739E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1400765549988E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.2287252307606E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.2378259186279E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.2760457892517E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3325823317239E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538427963355E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641311815384E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057719035953E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4060935221235E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996600736128E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463921351951E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308801389940E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1718894822764E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6468851047482E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7451501442400E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.2402699974884E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.4557838801053E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.6799085830180E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 6.4972173074851E-05 +(PID.TID 0000.0001) %MON ke_max = 8.7763777347750E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.0354556025144E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.60582699651968E-15 9.03555703674683E-01 -(PID.TID 0000.0001) cg2d_init_res = 8.17363912134075E-02 + cg2d: Sum(rhs),rhsMax = -7.06379399417756E-15 9.03310169758021E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.17541401623957E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.31079075053192E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.29585683108414E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6042233029981E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8086503299642E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.8941701253255E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3661225528255E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7473432390738E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3517228574088E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3696626845654E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.7369470802634E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0648318371101E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8488539375300E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.6018748967126E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7767711967228E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7389034492946E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5251620713049E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2187535877897E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1213174882514E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.4233411454654E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9995571333315E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.9533296682674E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7897294016007E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3326607305059E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538382432858E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641467201867E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058013539862E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4069976530282E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996635501861E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463518251254E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308809431999E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1718145963678E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6474424210511E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9307856644353E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3963763082020E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.8608500582028E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0989064680363E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3867681975231E-05 -(PID.TID 0000.0001) %MON ke_max = 9.4721861460250E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1627610115603E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6037972518432E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8088424777001E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.7474772135417E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3660393029921E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7457323418878E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3516242904560E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3695548963763E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.7399006897053E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0646885209654E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8479263821896E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5988765035466E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7735581983299E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7392888281073E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5221275001255E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2162513528209E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1183877895892E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.4222235294362E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.6906043589672E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.9412018301084E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7814324849814E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3326218895863E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538382338196E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641467446398E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058013842033E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4024966982441E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996619269743E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463518252089E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308809433228E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1718146853359E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6474729276132E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9303976269548E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3848095139875E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.8523344477736E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0908703763050E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3861116914286E-05 +(PID.TID 0000.0001) %MON ke_max = 9.4704014357330E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.1623916297130E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.05231403988182E-15 8.95636323685508E-01 -(PID.TID 0000.0001) cg2d_init_res = 5.02646411397968E-02 + cg2d: Sum(rhs),rhsMax = -7.00828284294630E-15 8.95342222836301E-01 +(PID.TID 0000.0001) cg2d_init_res = 5.02819049403641E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.35283902570974E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.46070215275496E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4767466706777E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0536711527338E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2888183593750E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2997163262121E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7551685273363E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3922269746145E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4149644378235E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4406952953002E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1166710705285E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1215307173028E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4764594268184E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5752590026085E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2703896668379E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0699523911735E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2155979536228E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0358100333562E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1731684838122E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1524834871738E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.0700840466715E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0191915684504E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327009387412E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538338195699E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641560711275E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058184448849E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4044034940193E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996654112029E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463600520889E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308816345513E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1717270340917E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6484390385531E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0938719761645E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6709324093907E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3729378808171E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.6111564284628E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.8758025937871E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0079741934511E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.2607767287304E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4762313640727E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0536794106682E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.7665506998698E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2996104541872E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7532054067980E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3920519699225E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4147733590689E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4450850335357E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1164175404129E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1199443243335E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4724616148617E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5709868980017E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2664541510469E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0658081948862E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2123070089486E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0283442683978E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1721112175575E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6917115256385E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.0543690548534E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0079088471802E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3326585577418E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538338187512E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641560905522E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058184486150E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3989741171608E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996636723122E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463601322958E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308816346127E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1717271474445E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6484651416467E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0931840926480E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6555528328063E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3625796380016E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.6014253994613E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.8750082818921E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0076680868104E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.2601578221010E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.11983208764366E-15 8.95679390817702E-01 -(PID.TID 0000.0001) cg2d_init_res = 8.21809645022174E-03 + cg2d: Sum(rhs),rhsMax = -7.58247631349462E-15 8.95334985355562E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.25109036440036E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 1.73505023372865E-16 +(PID.TID 0000.0001) cg2d_last_res = 1.84668344546626E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4738778049470E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0832290776352E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2347768147786E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2984099266116E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7561701063441E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4248416621327E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4485229311959E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.0374084235949E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1551970118276E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3588722393940E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2083432146200E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2156102856165E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2692749333193E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4758809358160E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1418785197282E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1329046074875E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6768146752206E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2304966974348E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.5779544773004E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0191720986109E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327363721741E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538334606613E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641582912782E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058222469180E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4021853573074E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996670756701E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463558068929E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308818304120E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1716430081715E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6488906781325E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2146825523052E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3761970282193E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6352240307916E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8545342195004E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.8660057709237E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0529680185666E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.3331529932918E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4732694395069E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0832499238671E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.6434682210286E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2982847083704E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7538381253840E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4245702812424E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4482269619193E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.0431667464548E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1548068259738E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3564751121588E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2034276037876E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2103752484006E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2689133307822E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4707686473373E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1378497296462E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1228822831562E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6759633370876E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0762417435869E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.5593373224943E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0047412672829E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3326916424292E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538334597335E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641583101872E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058222309787E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3958366411816E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996652756912E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463558455378E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308818304525E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1716431505343E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6489020344380E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2136170629094E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3573508942422E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6234730749329E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8435429577474E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.8650672640766E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0525064375342E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.3322397145313E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.58820742615740E-15 9.00117318030082E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.22110024797669E-02 + cg2d: Sum(rhs),rhsMax = -1.08003883614316E-14 8.99722061697425E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.22293549025913E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.57870792318980E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.55867528290533E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5338735399849E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1070930544669E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2252400716146E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3291875827340E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7568012189190E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4466892811642E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4680686265556E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.3297337392787E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1763521703803E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.5356046076642E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3284938697743E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8208902260981E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.8044906659486E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0390389356672E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0315456566959E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9960195492233E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0962199998893E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5331712818845E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1070119362059E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.1348419189453E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3290460257035E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7541013244257E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4463055400087E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4676506281768E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.3227921530177E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1758078990870E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.5322897323342E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.2718534066381E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.7608183699271E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.8041854863489E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0344619770842E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0269311509018E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9842292645931E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0957116131914E-05 (PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.0762417435869E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.9729837678422E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.8524249823152E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327681001675E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538360841044E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641557150379E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058170678187E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4004845431820E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996685779483E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463583935584E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308816651165E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1715634743140E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6488092864416E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2850470556002E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9982577931188E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1119248475865E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2656140583871E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.0994286116004E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0791427275458E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.3738620128642E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.9534320969805E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.8350313122835E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327225054724E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538360830682E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641557366589E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058170483281E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3932256323704E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996667893144E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463584142649E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308816651685E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1715636503538E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6487808465986E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2835422614364E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9778672263897E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1012020862191E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2533482577844E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.0983425022466E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0785058472854E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.3726318976506E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.21003770839445E-15 9.04411076862302E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.00050105646425E-02 + cg2d: Sum(rhs),rhsMax = -1.09530440273176E-14 9.03965949948382E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.00199706126952E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 4.02754304214435E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.95078155345543E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5911269233861E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.2880576702107E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.8514862060547E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3581896115081E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7583870839562E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4560767468977E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4740564372380E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0217221421308E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1800530369464E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6346896318098E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.2468942689744E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4410941344804E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9986300288200E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2037564317518E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.3026166229001E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6512864817307E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4863610907544E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.3843087846141E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6774626307663E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5986945949252E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327967503921E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538389683772E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641521737040E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058100471163E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3993941383479E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996699281139E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463691574947E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814307018E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1714847744749E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6495438104734E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.3066031740568E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5288819368308E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8344233934880E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9566051403802E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3243889578837E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0868590372354E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.3792048101617E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5903659277956E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.2879733915648E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0105768839518E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3580317455572E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7553167122340E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4555704474457E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4735058404396E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0209329702755E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1793498049414E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6304019593460E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.2211830560183E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4159803908869E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9983833203408E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.1885680007044E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.2539073027321E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6382157379613E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4862985904536E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1524834871738E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6606879729713E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5789014934043E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327481966003E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538389672234E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641521988442E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058100446732E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3912333886692E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996680746652E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463691758395E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814307735E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1714849868786E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6494350663872E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.3046210255826E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5196259001666E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8205504895245E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9409193200109E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3231512943506E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0860378473681E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.3776612663532E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.41393580072236E-15 9.06306335174148E-01 -(PID.TID 0000.0001) cg2d_init_res = 6.85652003873408E-03 + cg2d: Sum(rhs),rhsMax = -1.31283872661925E-14 9.05806147050142E-01 +(PID.TID 0000.0001) cg2d_init_res = 6.86376882743235E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.68030518656694E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.66379291352218E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6115994169927E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3567794965327E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.4513753255208E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3681140273155E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7595838153537E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4526783853870E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4679458386784E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5506521658059E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1675196284284E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6489198512323E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.9360683090606E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5072495349475E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.1264188227059E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5765876858308E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8139042462980E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3734826890282E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5434230157448E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2304966974348E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6152582527942E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.3347677917488E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328234771634E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538407283021E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641503052825E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058061605911E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3989810185185E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996711641761E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463805499034E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813099051E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1714051140093E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6504297990429E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2846050192424E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1369845912618E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.4674038939381E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6001073604579E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4024848410281E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0779513271138E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.3529476194274E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6107455490179E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3566955154543E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0722478230794E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3679375992235E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7561371425482E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4520457840893E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4672596234657E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5497870466272E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1666663324642E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6436609227412E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.9685358206011E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5329354384372E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.1243643460918E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.6024827000421E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.7677525645754E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3773211643506E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5457681367088E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9226510897418E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6066903137307E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.3135857493053E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327695728917E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538407270326E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641503331065E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058061991142E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3898931160052E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996691600820E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463805632494E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813099880E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1714053653311E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6501856612215E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2821346444764E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1486728954164E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.4754735817962E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6075035402142E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.4010915527266E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0769489083921E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.3511195851677E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.66240976119082E-15 9.06280769044697E-01 -(PID.TID 0000.0001) cg2d_init_res = 4.37320259923702E-03 + cg2d: Sum(rhs),rhsMax = -1.46445355841962E-14 9.05730009565584E-01 +(PID.TID 0000.0001) cg2d_init_res = 4.37131700409567E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.19941610009038E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.13267286989599E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 3.9600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6003430733438E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3092573502817E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0350545247396E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3623427425624E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7602138157303E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4375352615805E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4512995871385E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4772713955469E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1408421429163E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.5812386489951E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.7076143845517E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.6455942796059E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.2944738270226E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2944164658160E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9706225339393E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4166405815819E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4426428521152E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1535906538451E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.7347613541855E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1096169443011E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328568103367E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538413495985E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641504296388E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058060082526E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3991861999197E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996726310517E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463889463336E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813190542E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1713245086707E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6511989937716E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2246785136986E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.1347411784386E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4230879282128E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6238572308349E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3570010376811E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0545934995284E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.2999773780073E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5993955284874E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3091694131409E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0925928751628E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3621458547746E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7563820907247E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4367790855858E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4504823536183E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4763392203159E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1398599329192E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.5750633242785E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.7360334740823E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.6663465902162E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.2963533170079E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2976855528178E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9308130604094E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4200774915283E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4442840904416E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8841980679470E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.7326963265567E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0882444738769E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3327871027121E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538413482200E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641504588444E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058061268833E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3891621117124E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996700651802E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463889590017E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813191370E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1713248079829E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6508076991716E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2217364730258E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.1449720506696E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4292964539436E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6293502182399E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3554527461459E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0534247487986E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.2979155914215E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.25732757538799E-14 9.05893517987748E-01 -(PID.TID 0000.0001) cg2d_init_res = 7.06579687892121E-03 + cg2d: Sum(rhs),rhsMax = -1.32428790156069E-14 9.05300411509067E-01 +(PID.TID 0000.0001) cg2d_init_res = 7.06790978375215E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.61065173838935E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.58541618160674E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5812941177594E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.2032368368509E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0967254638672E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3528443355405E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7611272909422E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4130521429110E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4260677045883E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0039343456062E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1034815432485E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.4439980258215E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0736320469384E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0862556259865E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3125822182184E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6604322833320E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.4728469136446E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0462534887077E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0408868506119E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.6906043589672E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.0067298209419E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9279672741969E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328931167158E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538414086021E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641514414194E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058074940609E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3999346485373E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996741732443E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463953192392E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813843710E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1712435512821E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6519893164380E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.1338437365179E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.9105202535515E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0352889601515E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2841681501430E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2825622143689E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0195579541680E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.2258453085630E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5802573640228E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.2031420912341E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1955897013346E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3526258661117E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7569227840287E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4121808766031E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4251300742274E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0029345691580E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1023991976953E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.4369854008227E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0759374016895E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0877072716208E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3127719518317E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6632060549524E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.4396948722236E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0572088312303E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0420045283750E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.6906043589672E-24 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.0068532124685E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9075617700798E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328016259939E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538414071124E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641514706772E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058077372649E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3889274978067E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996708305364E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463953336219E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813844452E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1712439072395E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6514449696486E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.1304682672185E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.9157461778349E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0396679869438E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2878200122837E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2808562011434E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0182459975737E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.2236133110294E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.36314570742258E-14 9.06218243111569E-01 -(PID.TID 0000.0001) cg2d_init_res = 4.75365876453809E-03 + cg2d: Sum(rhs),rhsMax = -1.56090418368393E-14 9.05577356484357E-01 +(PID.TID 0000.0001) cg2d_init_res = 4.74058349197639E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.13772426535174E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.10309639422668E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 13 (PID.TID 0000.0001) %MON time_secondsf = 4.6800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5726903601575E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1003161626009E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3478597005208E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3478461863751E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7628867024868E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3828126406646E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3951249541234E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4123389652194E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0602839083499E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.2570203324661E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1762416814343E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1891299385845E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3669517853968E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8486370732164E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8780514624020E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5324179286993E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2802813539876E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.6906043589672E-24 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.8193692711538E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7576948383384E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3329390432328E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538414441916E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641522242961E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058084977589E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4010740709154E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996760607476E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463928686309E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814346665E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1711626815540E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6528775762400E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0224498348441E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2808677789043E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2661211207721E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.5369272010342E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2436009538836E-05 -(PID.TID 0000.0001) %MON ke_max = 9.7683532173398E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1389914377298E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5715117087821E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1002095335419E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6161600748698E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3476059516171E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7583113687836E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3818400599263E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3940835385388E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4112656589434E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0591344133376E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.2492636520792E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1779907451737E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1899389758836E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3671511460996E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8506590916374E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8501047487673E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5418492654907E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2812911484593E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4612148282038E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.8198248600129E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7392345016267E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328143345300E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538414425814E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641522532267E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058089119976E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3890226448079E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996715115507E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463928187337E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814347319E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1711631055789E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6521803962166E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0187007387398E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2837803131811E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2691892308259E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.5392906661177E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2417319231922E-05 +(PID.TID 0000.0001) %MON ke_max = 9.7540983705214E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.1366596201832E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.73611125475759E-14 9.07311785130771E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.57538973468435E-03 + cg2d: Sum(rhs),rhsMax = -2.05703509781330E-14 9.06624573489719E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.54152020051731E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 6.42083871157281E-14 +(PID.TID 0000.0001) cg2d_last_res = 6.34644628766074E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 14 (PID.TID 0000.0001) %MON time_secondsf = 5.0400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5753391555384E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0356042625958E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3427734375000E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3484461271416E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7652853264054E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3511064386056E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3623068683200E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.3525456119652E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0170109018205E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0448162400535E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1603788939516E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1632060667399E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6022079159067E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8357939196845E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8678961383357E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7496348009363E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1544798508566E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1535906538451E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.9465406530119E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.5584612497797E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3329985489645E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538416933003E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641523744098E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058082502488E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4024100587410E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996784518501E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463954616920E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814447242E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1710820306825E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6538051896209E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9043047259519E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1875418402636E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1430290176966E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4062458506069E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2482699586009E-05 -(PID.TID 0000.0001) %MON ke_max = 9.3166663852594E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.0504442469539E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5740650252032E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0354824690734E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9063949584961E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3481845996407E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7603426984393E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3500501303308E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3611824398242E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.3410194651011E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0158258323837E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0364050674474E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1616400407840E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1634409016717E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6042646109169E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8371234779269E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8441005898569E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7571725432767E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1559280885345E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.0764631769211E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.9471048353748E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.5426138892620E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328266553992E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538416915593E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641524039833E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058088844533E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3892489874028E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996721708413E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463954406970E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814447892E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1710825361296E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6529547866505E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9002567833670E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1883872460180E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1455739052214E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4081464107668E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2462343803216E-05 +(PID.TID 0000.0001) %MON ke_max = 9.3015961959989E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.0480780214613E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.75137682134618E-14 9.08645630653626E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.58632171932007E-03 + cg2d: Sum(rhs),rhsMax = -2.49106291150269E-14 9.07912587654915E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.55138699120297E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 2.45313205378327E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.47719394948139E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 15 (PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5823815058355E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0171383470169E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.7553965250651E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3515953444313E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7677038385352E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3222579788318E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3318789475341E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.9663190875708E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9794174692699E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8333120761142E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0225440007864E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0143506971346E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.5277350721790E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6315595000897E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.3233555571530E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6808267521189E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6897201085167E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.5370137051221E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3645208470378E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3130688632943E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3330741297063E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538421279905E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641520994080E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058071454591E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4037329946279E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996814467365E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464003939273E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814277922E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1710015205606E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6547082587727E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7947642111227E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.6811584028311E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7093115578880E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9358623885885E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2728126410033E-05 -(PID.TID 0000.0001) %MON ke_max = 8.8985244784641E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9718648535001E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5810121536417E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0169998300782E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9632975260417E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3513128858627E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7623975464868E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3211371558114E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3306939370822E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.9539825926350E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9782228787919E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8243268203259E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0234535858658E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0141475177873E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.5297729328715E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6324623040209E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.3033595686014E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6863466151113E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6922208327673E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2975680522414E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3658789475644E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3003279765937E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328400764786E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538421261123E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641521310897E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058080478934E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3894013844224E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996728711754E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464003965021E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814278678E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1710021219456E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6536952050890E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7904981734960E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.6844329091169E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7122886062899E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9382940729269E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2706090295544E-05 +(PID.TID 0000.0001) %MON ke_max = 8.8829356624621E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9695150507324E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.23016050071578E-14 9.09680437176064E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.11599010674061E-03 + cg2d: Sum(rhs),rhsMax = -2.58751353676701E-14 9.08901727470187E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.07654140160680E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 1.45456005056049E-14 +(PID.TID 0000.0001) cg2d_last_res = 1.30948767369902E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 16 (PID.TID 0000.0001) %MON time_secondsf = 5.7600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5876568680045E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0363051558081E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8698374430339E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3541218597445E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7695712097244E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2999558579183E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3077779346364E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.1018983490200E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9521924359632E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6466279058210E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7573508582478E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6211320257872E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1410730411791E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2818443190443E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.3272262941139E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3495715076801E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9383150428923E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.2287252307606E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.2147155967686E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0488542098043E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3331661284244E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538426231730E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517777304E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058059035022E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4048406812394E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996850618183E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464079261544E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814077495E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1709210159140E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6556660819401E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7080005646911E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.7926463089692E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3031396728146E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4950105652111E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2925438321288E-05 -(PID.TID 0000.0001) %MON ke_max = 8.5674146710736E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9134484415790E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5861926402730E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0361500210045E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1282831827799E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3538184928723E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7639032823013E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2987889545803E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3065537354472E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.0887782990394E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9510057031184E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6371387853234E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7647303038418E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6165274944072E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1391193425024E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2827407300778E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.3109049818561E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3532121658095E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9424473129544E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4607719615352E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.2179914452182E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0395228941227E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328559596687E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538426211568E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518121902E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058071181406E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3892942063070E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996736691347E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464079284965E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814078403E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1709217282322E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6544816626202E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7035934476099E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.7953029093830E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2968899760274E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4900752093018E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2901726974993E-05 +(PID.TID 0000.0001) %MON ke_max = 8.5515403866816E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9111433614919E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.39357145215280E-14 9.10174725600039E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.55964402029600E-03 + cg2d: Sum(rhs),rhsMax = -2.75057754350883E-14 9.09348743922893E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.51439273492779E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 2.63993696205704E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.60652632646223E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 17 (PID.TID 0000.0001) %MON time_secondsf = 6.1200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5888690017249E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0772566138857E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5306472778320E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3547968536894E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7706003109867E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2867542747045E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2929570434554E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.0999070431960E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9382517876925E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5044143391965E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2946508833354E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5914419121269E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.7858051179793E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.8934085672744E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.1763128359132E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8114223283793E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2397442827667E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.6919329589728E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.8404506935050E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8427370944020E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3332730558950E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538430916999E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641516326032E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058049411099E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4055280862335E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996892423177E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464129714434E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813986585E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1708404377780E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6566530276851E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6546453564395E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0129190883657E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8145085963363E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9640761250899E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2978215335352E-05 -(PID.TID 0000.0001) %MON ke_max = 8.3634268340195E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.8822669973066E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5873105170012E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0770856998640E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2684733072917E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3544725941873E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7645775404889E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2855566508284E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2917114521792E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.0860537730215E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9370797345339E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4944803440969E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3197823702738E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6149310787944E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.7839521690347E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9071396718769E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.1630287897961E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8135505313130E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2413152895228E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5381208717934E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.8465761605333E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8368195819199E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328753977328E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538430895496E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641516692874E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058065161326E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3887864809676E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996746101532E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464130146748E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308813987606E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1708412771582E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6553049058291E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6501612278452E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0213751883660E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8052524471442E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9560710530417E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2952858568557E-05 +(PID.TID 0000.0001) %MON ke_max = 8.3474075399713E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.8800075554547E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.91201221522164E-14 9.10167845574940E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.53511608989160E-03 + cg2d: Sum(rhs),rhsMax = -2.80366008187372E-14 9.09287786137151E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.50661986602148E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 5.58222247581804E-14 +(PID.TID 0000.0001) cg2d_last_res = 5.45495214194623E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 18 (PID.TID 0000.0001) %MON time_secondsf = 6.4800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5871857266340E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1229256550902E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.7150243123372E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3541492591066E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7707770369620E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2838188105248E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2889861140633E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1910181817256E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9385720679663E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4200982494056E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4250720518460E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6683709802211E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.7769792655866E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.8765690754222E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3875549921901E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1414040093130E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3725973900554E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.0762417435869E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.9086464856972E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7940703315381E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3333923144347E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538435218854E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641516679858E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058042754388E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4057277296021E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996938899039E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464160781722E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814007806E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1707597836046E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6576952239906E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6403500106278E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0406135528796E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2882565744629E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3987359723024E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2927580134316E-05 -(PID.TID 0000.0001) %MON ke_max = 8.3078383990298E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.8813954389043E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5855337473346E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1227396374414E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2376378377279E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3538045857463E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7644218968836E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2826011529098E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2877315363916E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1895643788699E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9374105049727E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4097639579981E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4492467017902E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6907449774248E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.7752030282910E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.8921613827900E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3752150182505E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1425723687828E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3751689444506E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3071813076902E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.9160245607450E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7908586121075E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3328991387194E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538435196060E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517058035E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058062475541E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3877928978982E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996757254272E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464161211764E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814008862E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1707607644498E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6561569971729E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6358335310097E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0486681918729E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2918457940880E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4026532700683E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2900640112601E-05 +(PID.TID 0000.0001) %MON ke_max = 8.2917120549520E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.8791544685971E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.16875128966620E-14 9.09800000084836E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.38204141758128E-03 + cg2d: Sum(rhs),rhsMax = -2.85778345432419E-14 9.08864039362337E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.38604519890139E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 7.19687486769158E-14 +(PID.TID 0000.0001) cg2d_last_res = 6.10151590617974E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 19 (PID.TID 0000.0001) %MON time_secondsf = 6.8400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5848880358597E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1589978993266E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3408660888672E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3532653581660E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7702618847287E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2909007775759E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2959107509719E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4477277083534E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9523999203980E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4000732531281E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0446511489099E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2605060801140E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.3983269689451E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.8561468895622E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.4687687586258E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1581074146501E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7669115322649E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.0762417435869E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1623263785695E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9527788247671E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3335213290791E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538439464436E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517738220E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058036921171E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4053975972102E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996989074266E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464192677270E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814072334E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1706790826553E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6586855111936E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6652787034990E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8937821888410E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6723273460520E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8152201929717E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2858507291452E-05 -(PID.TID 0000.0001) %MON ke_max = 8.4012436743606E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9098192636693E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5831434653614E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1587989193246E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.7186075846354E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3529008790754E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7635831603016E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2896689237057E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2946537190915E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4462086243580E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9512346850523E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3893707916932E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0678221029180E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2817042574842E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.3965626493961E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.8575765085862E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.4535940433727E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1465750182532E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7697938664841E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.3074027410244E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1651080328779E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9506264060838E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3329275713473E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538439440385E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518120804E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058061034379E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3863014979502E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996770308093E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464193105996E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814073377E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1706802211130E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6569614818372E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6607533887295E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9014135326943E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6758913822390E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8191568014269E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2830038039518E-05 +(PID.TID 0000.0001) %MON ke_max = 8.3849619427199E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9075459247315E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.73368264189122E-14 9.09191855191381E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.18582738056501E-03 + cg2d: Sum(rhs),rhsMax = -3.42191552871185E-14 9.08198120837156E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.23761664651050E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 1.09132212034032E-14 +(PID.TID 0000.0001) cg2d_last_res = 4.13723913860981E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 20 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5834892935589E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1767774681623E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3081232706706E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3528445384422E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7692300319339E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3064863030897E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3123228983080E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6041320479274E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9775781236388E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4436357647252E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0776804146146E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4389084939064E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5813431070225E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2353795149198E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.3763023820299E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0751637757806E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0080595111971E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1151376320502E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.2983502680149E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2682899506703E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3336573821576E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538444006022E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518495491E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058030115494E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4046019008918E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997041910238E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464225169144E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814117661E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1705983777406E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6597633974205E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7243624339088E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3180070578063E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9136368417790E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.0769448783006E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2825637989430E-05 -(PID.TID 0000.0001) %MON ke_max = 8.6244867235325E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.9628709755069E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5816526981949E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1765656315423E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9894510904948E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3524611793959E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7622363945674E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3052405257821E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3110638137512E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6025476619483E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9763863269556E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.4325637022077E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0711845617802E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4176012624497E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5795132429115E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2339228977847E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.3557869991567E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0612854359056E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0109289465236E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4035352955115E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.2941399137580E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2655478696512E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3329607496335E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538443980743E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518883518E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058058925688E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3843583520074E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996785273793E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464225597508E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814118693E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1705996878295E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6578373552259E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7198297295044E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3103364544819E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9168943209584E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.0805757332463E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2795703556747E-05 +(PID.TID 0000.0001) %MON ke_max = 8.6079340212856E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9604972773652E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.67435509901281E-14 9.08402201311567E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.42512606492250E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 -(PID.TID 0000.0001) cg2d_last_res = 9.50464716543056E-14 + cg2d: Sum(rhs),rhsMax = -3.79661579952284E-14 9.07348796510597E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.50148710140931E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 7.81612855682958E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 21 (PID.TID 0000.0001) %MON time_secondsf = 7.5600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5832374202844E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1746324956738E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5528996785482E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3529753666564E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7678435780993E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3280631047510E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3355962335433E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6305857807262E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0108367886366E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5433338997988E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5898048782253E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1020197432343E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.8384025543986E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5224306294635E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.5799873014065E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7822798862126E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0707274800197E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.4209903397348E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.5050562769865E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6310458337558E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3337981517303E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538449029513E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518603870E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058021607215E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4035572586611E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997096480525E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464258099625E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814122589E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1705176731485E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6609160008211E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8081464407560E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2767271075644E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5609376549996E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7859773790065E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2835855598118E-05 -(PID.TID 0000.0001) %MON ke_max = 8.9417458790558E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.0329997471460E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5813097040728E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1744089283648E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0008951822917E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3525740066180E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7605429121714E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3267995328580E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3343305213198E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6289328639967E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0095893437442E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5318587904225E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5764651773752E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.0734980808826E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.8580007107100E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5195929361244E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.5540182185724E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7662144945492E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0732783567490E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4701637836497E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4950784347804E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6268337439586E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3330017670797E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538449003015E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641519002672E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058055480912E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3820677558533E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996803365730E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464258528556E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814123639E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1705191734984E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6587090731151E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8035898767512E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2664593091177E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5420359151256E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7665677236652E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2804512742736E-05 +(PID.TID 0000.0001) %MON ke_max = 8.9247726742593E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.0304503800119E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.96023752785379E-14 9.07467917772765E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.79833350887701E-03 + cg2d: Sum(rhs),rhsMax = -3.83582055007992E-14 9.06340975600947E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.91995633688459E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 1.44263183746316E-16 +(PID.TID 0000.0001) cg2d_last_res = 1.78215791755740E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 22 (PID.TID 0000.0001) %MON time_secondsf = 7.9200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5836093367911E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1574213370107E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6158421834310E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3533938335762E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7662196825799E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3524705115393E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3622608187107E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5444180687496E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0480681606957E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6857284841630E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0170707441741E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0763869050378E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7590933650021E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6690990103269E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5954074122658E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.1944936003334E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9487604949440E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.6917115256385E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3265619979572E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9379207239183E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3339394066544E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538454584947E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518254119E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058011736411E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4020616239751E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997151173627E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464291391354E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814099508E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1704369652863E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6619677941397E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9041389473586E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8749928581362E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0003169201778E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2600636356153E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2868544259777E-05 -(PID.TID 0000.0001) %MON ke_max = 9.3055219088896E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1107975899784E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5815899989656E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1571803476017E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.1992594401042E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3529759048798E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7586579745610E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3511814020255E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3609793843103E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5426910799766E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0467330025507E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6737847540303E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0148545672869E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0726341478924E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7611633888870E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6650784593823E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5645577710531E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.1766445055749E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9508116824429E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2298323974320E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3122126677209E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9318337094819E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3330461928816E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538454557235E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518668671E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058051043947E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3795824903124E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996822749496E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464291821630E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814100605E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1704386733022E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6596324039204E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8995257835169E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8614829324127E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9787636239223E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2378678785964E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2835897635099E-05 +(PID.TID 0000.0001) %MON ke_max = 9.2879676024412E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.1079993282761E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.08270900525775E-14 9.06397099855650E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.12481026221113E-03 + cg2d: Sum(rhs),rhsMax = -4.03566069451244E-14 9.05224830171711E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.15492162823889E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.46776672792963E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.43533162228024E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 23 (PID.TID 0000.0001) %MON time_secondsf = 8.2800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5840039820096E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1338925792847E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6915003458659E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3538199746765E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7646700119909E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3762940768464E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3884730590077E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.3958545015226E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0846861480334E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8527174855716E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0692262123859E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1277224636370E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.6638812635608E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6538942681106E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0143684240903E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2764561085733E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6561361334225E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.6906043589672E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.5799385215645E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1190186941752E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3340806463741E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538460677110E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517795816E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058001828672E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4005713560692E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997205861394E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464325033265E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814070366E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1703562516914E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6630255471461E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9985030124278E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0598008690933E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1252579854324E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3928566749756E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2901842780830E-05 -(PID.TID 0000.0001) %MON ke_max = 9.6630655333743E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1862023962764E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5818951486549E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1336513748824E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.1652450561523E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3533842959069E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7567518073119E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3749732218998E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3871679874852E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.3940499637247E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0832319658439E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8402028535310E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0662460634335E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1232180949879E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.6661396914138E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6491605553088E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0111203564085E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2578190259558E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6573939357652E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6150269153831E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.5633376582548E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1115677305677E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3330946409562E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538460648122E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641518227076E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058046264577E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3770698537931E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996843639349E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464325465593E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814071531E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1703581698983E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6605327586218E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9938047549467E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0435851419564E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1026582138520E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3695156841065E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2867799109473E-05 +(PID.TID 0000.0001) %MON ke_max = 9.6448312013963E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.1830965843409E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.16666962149503E-14 9.05294826108210E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.12361122362430E-03 + cg2d: Sum(rhs),rhsMax = -4.06549793829925E-14 9.04072288959572E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.17374940254599E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 2.93418583313677E-16 +(PID.TID 0000.0001) cg2d_last_res = 2.92870106886965E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 24 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5841207852708E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1131955647092E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8078486124674E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3541189407156E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7632500031042E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3962938205990E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4105486286770E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2455619640388E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1161261693984E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0233907045012E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0143214259232E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0634489100199E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.1839616146924E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4917166248058E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0124567212895E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0314512948841E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5431701673825E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.6906043589672E-24 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.2474659868963E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1435064656278E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3342183380445E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538467294939E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517453409E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057991771169E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3991475058886E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997259128710E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464359044689E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814049353E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1702755174001E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6640495423470E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0779750632373E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8284160760717E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9360547726113E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1847398954101E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2925210142834E-05 -(PID.TID 0000.0001) %MON ke_max = 9.9637651073948E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.2497670963933E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5819247217461E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1129489623331E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.2215118408203E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3536663684188E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7550062939259E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3949303553711E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4092068085186E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2436714191045E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1145283229176E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0102728863774E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0106873150364E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0583327235746E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.1864589650228E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4869314121682E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0092951649795E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0129478638011E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5342385650188E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0766846102554E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.2308047662157E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1345472111052E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3331463425589E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538467264797E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517902033E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058041563335E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3746961230282E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996865692190E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464359479571E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814050534E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1702776579434E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6614247082325E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0731445106671E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8099978048685E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9137500038233E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1616438746929E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2889838831637E-05 +(PID.TID 0000.0001) %MON ke_max = 9.9447338122160E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.2463184286706E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.28775332011821E-14 9.04249570395689E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.99041872925316E-03 + cg2d: Sum(rhs),rhsMax = -4.13141743038636E-14 9.02981098316427E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.02239326598048E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.32306505950473E-16 +(PID.TID 0000.0001) cg2d_last_res = 3.21834814696140E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 25 (PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5839806878838E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1016458204655E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8987655639648E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3543014497747E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7621687480605E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4097858233343E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4254446661393E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1426006141375E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1384440908713E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1766129341685E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6237923909761E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.9589490616322E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7696017423516E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2321861812506E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5792281596719E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4983460302325E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3724473843784E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5381208717934E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4432863527874E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0156047802927E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3343611969680E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538474371661E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517272511E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4057981937011E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3979618477618E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997314246680E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464393449819E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814038981E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1701947715229E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6651040323448E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.1316007981015E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2252216621876E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4668010069579E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6728383397801E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2939477694911E-05 -(PID.TID 0000.0001) %MON ke_max = 1.0165937061881E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.2938319876349E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.5816991360700E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1013927677452E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.3092498779297E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3538321847268E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7535941945776E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4083702889015E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4240543240700E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1406140311126E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1366880494309E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1629066775024E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5827274614628E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.9037943335238E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7723247102501E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2283607632926E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5506491824048E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4809483547353E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3606838240425E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3071813076902E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4289404557389E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0049205332995E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3332004165845E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 6.2538474340476E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 8.4641517735166E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4058037021350E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.3726047950407E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996888530581E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464393887543E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1308814040152E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1701971389935E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.6623167570356E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.1265955666521E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2053659600686E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4462648888293E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6515110977483E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2902797024504E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0146051319687E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.2900328938199E-04 (PID.TID 0000.0001) %MON ke_vol = 5.0981346415358E+14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics @@ -3037,154 +3021,154 @@ Global & Regional Statistics diagnostics: Number of lists: 0 Computing Diagnostic # 25 DETADT2 Counter: 1 Parms: SM M1 Computing Diagnostic # 73 PHIBOT Counter: 1 Parms: SM M1 Computing Diagnostic # 76 MXLDEPTH Counter: 1 Parms: SM M1 - Computing Diagnostic # 210 GM_BVPcW Counter: 1 Parms: SU P M1 - Computing Diagnostic # 211 GM_BVPcS Counter: 1 Parms: SV P M1 - Computing Diagnostic # 193 SubMesLf Counter: 1 Parms: SM P M1 - Computing Diagnostic # 195 SubMpsiY Counter: 1 Parms: VV M1 - Vector Mate for SubMpsiY Diagnostic # 194 SubMpsiX not enabled + Computing Diagnostic # 211 GM_BVPcW Counter: 1 Parms: SU P M1 + Computing Diagnostic # 212 GM_BVPcS Counter: 1 Parms: SV P M1 + Computing Diagnostic # 194 SubMesLf Counter: 1 Parms: SM P M1 + Computing Diagnostic # 196 SubMpsiY Counter: 1 Parms: VV M1 + Vector Mate for SubMpsiY Diagnostic # 195 SubMpsiX not enabled Computing Diagnostic # 77 DRHODR Counter: 1 Parms: SM LR Computing Diagnostic # 64 RHOAnoma Counter: 1 Parms: SMR MR - Computing Diagnostic # 201 GM_Kwy Counter: 1 Parms: VM LR - Vector Mate for GM_Kwy Diagnostic # 200 GM_Kwx not enabled - Computing Diagnostic # 202 GM_Kwz Counter: 1 Parms: WM P LR - Computing Diagnostic # 197 GM_Kvy Counter: 1 Parms: VV P MR - Vector Mate for GM_Kvy Diagnostic # 196 GM_Kux not enabled + Computing Diagnostic # 202 GM_Kwy Counter: 1 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 201 GM_Kwx not enabled + Computing Diagnostic # 203 GM_Kwz Counter: 1 Parms: WM P LR + Computing Diagnostic # 198 GM_Kvy Counter: 1 Parms: VV P MR + Vector Mate for GM_Kvy Diagnostic # 197 GM_Kux not enabled Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR - Computing Diagnostic # 204 GM_PsiY Counter: 1 Parms: VV LR - Vector Mate for GM_PsiY Diagnostic # 203 GM_PsiX not enabled - Computing Diagnostic # 199 GM_Kvz Counter: 1 Parms: VV MR - Vector Mate for GM_Kvz Diagnostic # 198 GM_Kuz not enabled + Computing Diagnostic # 205 GM_PsiY Counter: 1 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX not enabled + Computing Diagnostic # 200 GM_Kvz Counter: 1 Parms: VV MR + Vector Mate for GM_Kvz Diagnostic # 199 GM_Kuz not enabled (PID.TID 0000.0001) %CHECKPOINT 25 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.7127400374738500 -(PID.TID 0000.0001) System time: 1.19980000890791416E-002 -(PID.TID 0000.0001) Wall clock time: 1.7298541069030762 +(PID.TID 0000.0001) User time: 1.0704939463175833 +(PID.TID 0000.0001) System time: 1.2008000165224075E-002 +(PID.TID 0000.0001) Wall clock time: 1.0825679302215576 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.19969990430399776E-002 -(PID.TID 0000.0001) System time: 3.99899994954466820E-003 -(PID.TID 0000.0001) Wall clock time: 2.67980098724365234E-002 +(PID.TID 0000.0001) User time: 1.9646000117063522E-002 +(PID.TID 0000.0001) System time: 4.3870001100003719E-003 +(PID.TID 0000.0001) Wall clock time: 2.4048089981079102E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.6907430384308100 -(PID.TID 0000.0001) System time: 7.99900013953447342E-003 -(PID.TID 0000.0001) Wall clock time: 1.7030179500579834 +(PID.TID 0000.0001) User time: 1.0508109852671623 +(PID.TID 0000.0001) System time: 7.6190000399947166E-003 +(PID.TID 0000.0001) Wall clock time: 1.0584909915924072 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.29980016499757767E-002 -(PID.TID 0000.0001) System time: 2.99999956041574478E-003 -(PID.TID 0000.0001) Wall clock time: 1.64420604705810547E-002 +(PID.TID 0000.0001) User time: 1.0578999295830727E-002 +(PID.TID 0000.0001) System time: 3.7429998628795147E-003 +(PID.TID 0000.0001) Wall clock time: 1.4330148696899414E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.6777450367808342 -(PID.TID 0000.0001) System time: 4.99900057911872864E-003 -(PID.TID 0000.0001) Wall clock time: 1.6865479946136475 +(PID.TID 0000.0001) User time: 1.0402079522609711 +(PID.TID 0000.0001) System time: 3.8720006123185158E-003 +(PID.TID 0000.0001) Wall clock time: 1.0441348552703857 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.6777450367808342 -(PID.TID 0000.0001) System time: 4.99900057911872864E-003 -(PID.TID 0000.0001) Wall clock time: 1.6863284111022949 +(PID.TID 0000.0001) User time: 1.0400171615183353 +(PID.TID 0000.0001) System time: 3.8700001314282417E-003 +(PID.TID 0000.0001) Wall clock time: 1.0439512729644775 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 1.6777450367808342 -(PID.TID 0000.0001) System time: 4.99900057911872864E-003 -(PID.TID 0000.0001) Wall clock time: 1.6859078407287598 +(PID.TID 0000.0001) User time: 1.0396560132503510 +(PID.TID 0000.0001) System time: 3.8680005818605423E-003 +(PID.TID 0000.0001) Wall clock time: 1.0435812473297119 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.00000235438346863E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.54559516906738281E-003 +(PID.TID 0000.0001) User time: 1.0957978665828705E-003 +(PID.TID 0000.0001) System time: 4.3999403715133667E-005 +(PID.TID 0000.0001) Wall clock time: 1.1529922485351562E-003 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99997425079345703E-003 -(PID.TID 0000.0001) System time: 9.98999923467636108E-004 -(PID.TID 0000.0001) Wall clock time: 6.71386718750000000E-004 +(PID.TID 0000.0001) User time: 5.6307390332221985E-004 +(PID.TID 0000.0001) System time: 5.9995800256729126E-006 +(PID.TID 0000.0001) Wall clock time: 5.6815147399902344E-004 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.31266021728515625E-004 +(PID.TID 0000.0001) User time: 1.8898770213127136E-004 +(PID.TID 0000.0001) System time: 2.9997900128364563E-006 +(PID.TID 0000.0001) Wall clock time: 1.9168853759765625E-004 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.16484069824218750E-004 +(PID.TID 0000.0001) User time: 1.9804760813713074E-004 +(PID.TID 0000.0001) System time: 1.9995495676994324E-006 +(PID.TID 0000.0001) Wall clock time: 2.0098686218261719E-004 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.36794301494956017 +(PID.TID 0000.0001) User time: 0.23623800277709961 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.36344075202941895 +(PID.TID 0000.0001) Wall clock time: 0.23627138137817383 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.57191218435764313 +(PID.TID 0000.0001) User time: 0.34961304441094398 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.57159900665283203 +(PID.TID 0000.0001) Wall clock time: 0.34963631629943848 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.51492370665073395 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.51948451995849609 +(PID.TID 0000.0001) User time: 0.31073208525776863 +(PID.TID 0000.0001) System time: 2.2000633180141449E-005 +(PID.TID 0000.0001) Wall clock time: 0.31078600883483887 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.29951047897338867E-002 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 3.14636230468750000E-002 +(PID.TID 0000.0001) User time: 1.9112981855869293E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9127368927001953E-002 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.79960802197456360E-002 +(PID.TID 0000.0001) User time: 1.3067081570625305E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.07142829895019531E-002 +(PID.TID 0000.0001) Wall clock time: 1.3075113296508789E-002 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.99901580810546875E-003 +(PID.TID 0000.0001) User time: 4.4660866260528564E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.20167160034179688E-003 +(PID.TID 0000.0001) Wall clock time: 4.4708251953125000E-003 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.89908754825592041E-002 +(PID.TID 0000.0001) User time: 2.8529159724712372E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.80504035949707031E-002 +(PID.TID 0000.0001) Wall clock time: 2.8540849685668945E-002 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.99900558590888977E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.27455711364746094E-002 +(PID.TID 0000.0001) User time: 3.7077911198139191E-002 +(PID.TID 0000.0001) System time: 6.3999556005001068E-005 +(PID.TID 0000.0001) Wall clock time: 3.7151336669921875E-002 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.09971252083778381E-002 +(PID.TID 0000.0001) User time: 2.9527924954891205E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.30810451507568359E-002 +(PID.TID 0000.0001) Wall clock time: 2.9586791992187500E-002 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.99794834852218628E-003 -(PID.TID 0000.0001) System time: 3.00000049173831940E-003 -(PID.TID 0000.0001) Wall clock time: 9.70530509948730469E-003 +(PID.TID 0000.0001) User time: 4.8641264438629150E-003 +(PID.TID 0000.0001) System time: 3.7080002948641777E-003 +(PID.TID 0000.0001) Wall clock time: 8.5721015930175781E-003 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00004673004150391E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.33562088012695313E-003 +(PID.TID 0000.0001) User time: 1.2200176715850830E-003 +(PID.TID 0000.0001) System time: 1.2000091373920441E-005 +(PID.TID 0000.0001) Wall clock time: 1.2316703796386719E-003 (PID.TID 0000.0001) No. starts: 25 (PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) // ====================================================== @@ -3213,9 +3197,9 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 7690 +(PID.TID 0000.0001) // No. barriers = 7704 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 7690 +(PID.TID 0000.0001) // Total barrier spins = 7704 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/front_relax/results/output.in_p.txt b/verification/front_relax/results/output.in_p.txt new file mode 100644 index 0000000000..f5a8b23cb9 --- /dev/null +++ b/verification/front_relax/results/output.in_p.txt @@ -0,0 +1,3015 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68j +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Oct 6 17:23:06 EDT 2022 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) ># debugMode=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 1 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 16 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 25 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 1 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 32 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 2 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 25*17.5, +(PID.TID 0000.0001) > viscAr=2.E+4, +(PID.TID 0000.0001) > viscAh=3.E+2, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.FALSE., +(PID.TID 0000.0001) > diffKrT=3.E+3, +(PID.TID 0000.0001) > diffKrS=3.E+3, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) >#ivdc_kappa=1.E+8, +(PID.TID 0000.0001) > beta=0.E-11, +(PID.TID 0000.0001) > f0 =1.E-4, +(PID.TID 0000.0001) > selectCoriScheme=1, +(PID.TID 0000.0001) > gravity= 10., +(PID.TID 0000.0001) > buoyancyRelation='OCEANICP', +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta =0.E-4, +(PID.TID 0000.0001) > rhoConst=1000., +(PID.TID 0000.0001) > rhoNil=1000., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE. +(PID.TID 0000.0001) > tempAdvScheme=20, +(PID.TID 0000.0001) > saltAdvScheme=20, +(PID.TID 0000.0001) >#momStepping=.FALSE., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) > debugLevel=2, +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0., +(PID.TID 0000.0001) > deltaT=1800., +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > momDissip_In_AB=.FALSE., +(PID.TID 0000.0001) > pChkptFreq=0., +(PID.TID 0000.0001) > chkptFreq =0., +(PID.TID 0000.0001) > dumpFreq=864000., +(PID.TID 0000.0001) > monitorSelect=1, +(PID.TID 0000.0001) >#- very short run: +(PID.TID 0000.0001) > nTimeSteps=20, +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) >#- longer run: +(PID.TID 0000.0001) >#nTimeSteps=4321, +(PID.TID 0000.0001) >#monitorFreq=86400., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) >#delR= 10*1.E4, 480.E4, 400.E4, 320.E4, 260.E4, 200.E4, 155.E4, 120.E4, +(PID.TID 0000.0001) ># 95.E4, 80.E4, 70.E4, 65.E4, 60.E4, 55.E4, 50.E4, 50.E4, +(PID.TID 0000.0001) > delRc= 10*400.E4, 480.E4, 440.E4, 360.E4, 290.E4, 230.E4, 177.5E4, 137.5E4, +(PID.TID 0000.0001) > 107.5E4, 87.5E4, 75.E4, 67.5E4, 62.5E4, 57.5E4, 52.5E4, 50.E4, 25.E4, +(PID.TID 0000.0001) > delX=1*10.E3, +(PID.TID 0000.0001) >#delY=32*10.E3, +(PID.TID 0000.0001) > delYfile='dy.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='bathy_inP.bin', +(PID.TID 0000.0001) > hydrogThetaFile='Tini_flip.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='Sini_Ydir.bin', +(PID.TID 0000.0001) >#hydrogSaltFile ='Sini_Patch.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages (lines beginning "#" are comments) +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM-Redi parameters +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_AdvForm=.TRUE., +(PID.TID 0000.0001) > GM_background_K=1000., +(PID.TID 0000.0001) ># GM_isopycK = 0., +(PID.TID 0000.0001) ># GM_taper_scheme='orig', +(PID.TID 0000.0001) ># GM_taper_scheme='linear', +(PID.TID 0000.0001) > GM_maxSlope =1.E-02, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) > fields(1:4,1) = 'ETAN ','DETADT2 ','PHIBOT ', +(PID.TID 0000.0001) > 'MXLDEPTH', +(PID.TID 0000.0001) ># 'GM_BVPcW','GM_BVPcS', +(PID.TID 0000.0001) ># 'SubMesLf','SubMpsiY', +(PID.TID 0000.0001) ># 'GM_hTrsL','GM_baseS','GM_rLamb', +(PID.TID 0000.0001) ># 'GM_VisbK', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = -864000., +(PID.TID 0000.0001) > timePhase(1) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'THETA ','THETASQ ','UVELSQ ', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) ># fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = -864000., +(PID.TID 0000.0001) > timePhase(2) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:8,3) = 'DRHODR ','RHOAnoma','THETA ', +(PID.TID 0000.0001) > 'GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) > 'GM_Kvy ','GM_Kvz ', +(PID.TID 0000.0001) > 'GM_PsiY ', +(PID.TID 0000.0001) > fileName(3) = 'oceDiag', +(PID.TID 0000.0001) > frequency(3) = -864000., +(PID.TID 0000.0001) > timePhase(3) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,4) = 'DFyE_TH ','DFrE_TH ','DFrI_TH ', +(PID.TID 0000.0001) > 'ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) ># 'ADVy_SLT','ADVr_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = -864000., +(PID.TID 0000.0001) > timePhase(4) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > stat_fields(1:13,1) = 'ETAN ','DETADT2 ','MXLDEPTH', +(PID.TID 0000.0001) > 'UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) > 'THETA ','SALT ','GM_PsiY ', +(PID.TID 0000.0001) > 'GM_Kvy ','GM_Kvz ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># 'GM_hTrsL','GM_baseS','GM_rLamb', +(PID.TID 0000.0001) ># 'SubMesLf','SubMpsiY', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 21600., +(PID.TID 0000.0001) ># stat_freq(1) = 86400., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: -864000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN DETADT2 PHIBOT MXLDEPTH +(PID.TID 0000.0001) Creating Output Stream: oceDiag +(PID.TID 0000.0001) Output Frequency: -864000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: DRHODR RHOAnoma THETA GM_Kwy GM_Kwz GM_Kvy GM_Kvz GM_PsiY +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: 21600.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN DETADT2 MXLDEPTH UVEL VVEL WVEL THETA SALT GM_PsiY GM_Kvy +(PID.TID 0000.0001) Fields: GM_Kvz GM_Kwy GM_Kwz +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) MDS_READVEC_LOC: open file: dy.bin +(PID.TID 0000.0001) S/R LOAD_GRID_SPACING: delY loaded from file: dy.bin +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= F ; setCenterDr= T +(PID.TID 0000.0001) %MON XC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON XC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON XC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXC_max = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXC_min = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXC_mean = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXF_min = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXF_mean = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXG_min = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXG_mean = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXV_min = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXV_mean = 1.0000000000000E+04 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 3.1561290774894E+05 +(PID.TID 0000.0001) %MON YC_min = 5.6092274511694E+03 +(PID.TID 0000.0001) %MON YC_mean = 1.6001915336715E+05 +(PID.TID 0000.0001) %MON YC_sd = 8.8599616236208E+04 +(PID.TID 0000.0001) %MON YG_max = 3.1000000000000E+05 +(PID.TID 0000.0001) %MON YG_min = -1.8189894035459E-12 +(PID.TID 0000.0001) %MON YG_mean = 1.5500000000000E+05 +(PID.TID 0000.0001) %MON YG_sd = 8.8567978698292E+04 +(PID.TID 0000.0001) %MON DYC_max = 1.1222135200113E+04 +(PID.TID 0000.0001) %MON DYC_min = 7.9032603032250E+03 +(PID.TID 0000.0001) %MON DYC_mean = 1.0038306734309E+04 +(PID.TID 0000.0001) %MON DYC_sd = 1.1846105766688E+03 +(PID.TID 0000.0001) %MON DYF_max = 1.1225815497888E+04 +(PID.TID 0000.0001) %MON DYF_min = 7.8626243792479E+03 +(PID.TID 0000.0001) %MON DYF_mean = 1.0038306734309E+04 +(PID.TID 0000.0001) %MON DYF_sd = 1.1918760120598E+03 +(PID.TID 0000.0001) %MON DYG_max = 1.1225815497888E+04 +(PID.TID 0000.0001) %MON DYG_min = 7.8626243792479E+03 +(PID.TID 0000.0001) %MON DYG_mean = 1.0038306734309E+04 +(PID.TID 0000.0001) %MON DYG_sd = 1.1918760120598E+03 +(PID.TID 0000.0001) %MON DYU_max = 1.1222135200113E+04 +(PID.TID 0000.0001) %MON DYU_min = 7.9032603032250E+03 +(PID.TID 0000.0001) %MON DYU_mean = 1.0038306734309E+04 +(PID.TID 0000.0001) %MON DYU_sd = 1.1846105766688E+03 +(PID.TID 0000.0001) %MON RA_max = 1.1225815497888E+08 +(PID.TID 0000.0001) %MON RA_min = 7.8626243792479E+07 +(PID.TID 0000.0001) %MON RA_mean = 1.0038306734309E+08 +(PID.TID 0000.0001) %MON RA_sd = 1.1918760120598E+07 +(PID.TID 0000.0001) %MON RAW_max = 1.1225815497888E+08 +(PID.TID 0000.0001) %MON RAW_min = 7.8626243792479E+07 +(PID.TID 0000.0001) %MON RAW_mean = 1.0038306734309E+08 +(PID.TID 0000.0001) %MON RAW_sd = 1.1918760120598E+07 +(PID.TID 0000.0001) %MON RAS_max = 1.1222135200113E+08 +(PID.TID 0000.0001) %MON RAS_min = 7.9032603032250E+07 +(PID.TID 0000.0001) %MON RAS_mean = 1.0038306734309E+08 +(PID.TID 0000.0001) %MON RAS_sd = 1.1846105766688E+07 +(PID.TID 0000.0001) %MON RAZ_max = 1.1222135200113E+08 +(PID.TID 0000.0001) %MON RAZ_min = 7.9032603032250E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 1.0038306734309E+08 +(PID.TID 0000.0001) %MON RAZ_sd = 1.1846105766688E+07 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_inP.bin +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 212 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 77 DRHODR +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 64 RHOAnoma +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 202 GM_Kwy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 203 GM_Kwz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 198 GM_Kvy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 200 GM_Kvz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 205 GM_PsiY +(PID.TID 0000.0001) space allocated for all diagnostics: 204 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: oceDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. +(PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 76 MXLDEPTH +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 198 GM_Kvy +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 200 GM_Kvz +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 202 GM_Kwy +(PID.TID 0000.0001) SETDIAG: Allocate 25 Levels for Stats-Diag # 203 GM_Kwz +(PID.TID 0000.0001) space allocated for all stats-diags: 253 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_min = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_sd = 2.7105054312138E-20 +(PID.TID 0000.0001) %MON fCoriG_max = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_min = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 2.7105054312138E-20 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 3.2127074403353547E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANICP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 25 @ 1.750000000000000E+01 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 25 @ 3.000000000000000E+01 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity (Pa^2/s )*/ +(PID.TID 0000.0001) 25 @ 2.000000000000000E+04 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp (Pa^2/s )*/ +(PID.TID 0000.0001) 25 @ 3.000000000000000E+03 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt (Pa^2/s )*/ +(PID.TID 0000.0001) 25 @ 3.000000000000000E+03 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection (Pa^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness (Pa) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 25 @ 1.800000000000000E+03 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 9.636774464936643E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == Pa ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* pressure at the top (r-axis origin) [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [Pa] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [Pa] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 10 @ 4.000000000000000E+06, /* K = 1: 10 */ +(PID.TID 0000.0001) 4.800000000000000E+06, /* K = 11 */ +(PID.TID 0000.0001) 4.400000000000000E+06, /* K = 12 */ +(PID.TID 0000.0001) 3.600000000000000E+06, /* K = 13 */ +(PID.TID 0000.0001) 2.900000000000000E+06, /* K = 14 */ +(PID.TID 0000.0001) 2.300000000000000E+06, /* K = 15 */ +(PID.TID 0000.0001) 1.775000000000000E+06, /* K = 16 */ +(PID.TID 0000.0001) 1.375000000000000E+06, /* K = 17 */ +(PID.TID 0000.0001) 1.075000000000000E+06, /* K = 18 */ +(PID.TID 0000.0001) 8.750000000000000E+05, /* K = 19 */ +(PID.TID 0000.0001) 7.500000000000000E+05, /* K = 20 */ +(PID.TID 0000.0001) 6.750000000000000E+05, /* K = 21 */ +(PID.TID 0000.0001) 6.250000000000000E+05, /* K = 22 */ +(PID.TID 0000.0001) 5.750000000000000E+05, /* K = 23 */ +(PID.TID 0000.0001) 5.250000000000000E+05, /* K = 24 */ +(PID.TID 0000.0001) 5.000000000000000E+05, /* K = 25 */ +(PID.TID 0000.0001) 2.500000000000000E+05 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 6.000000000000000E+06, /* K = 1 */ +(PID.TID 0000.0001) 8 @ 4.000000000000000E+06, /* K = 2: 9 */ +(PID.TID 0000.0001) 4.400000000000000E+06, /* K = 10 */ +(PID.TID 0000.0001) 4.600000000000000E+06, /* K = 11 */ +(PID.TID 0000.0001) 4.000000000000000E+06, /* K = 12 */ +(PID.TID 0000.0001) 3.250000000000000E+06, /* K = 13 */ +(PID.TID 0000.0001) 2.600000000000000E+06, /* K = 14 */ +(PID.TID 0000.0001) 2.037500000000000E+06, /* K = 15 */ +(PID.TID 0000.0001) 1.575000000000000E+06, /* K = 16 */ +(PID.TID 0000.0001) 1.225000000000000E+06, /* K = 17 */ +(PID.TID 0000.0001) 9.750000000000000E+05, /* K = 18 */ +(PID.TID 0000.0001) 8.125000000000000E+05, /* K = 19 */ +(PID.TID 0000.0001) 7.125000000000000E+05, /* K = 20 */ +(PID.TID 0000.0001) 6.500000000000000E+05, /* K = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+05, /* K = 22 */ +(PID.TID 0000.0001) 5.500000000000000E+05, /* K = 23 */ +(PID.TID 0000.0001) 5.125000000000000E+05, /* K = 24 */ +(PID.TID 0000.0001) 5.000000000000000E+05 /* K = 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 2 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 3 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 5 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 6 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 8 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 9 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ +(PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 23 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 24 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 26 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 27 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 28 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 29 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 30 */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 31 */ +(PID.TID 0000.0001) 1.122581549788791E+04 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 5.609227451169357E+03, /* J = 1 */ +(PID.TID 0000.0001) 1.682054194297670E+04, /* J = 2 */ +(PID.TID 0000.0001) 2.801158280343973E+04, /* J = 3 */ +(PID.TID 0000.0001) 3.916660768097033E+04, /* J = 4 */ +(PID.TID 0000.0001) 5.026101550972972E+04, /* J = 5 */ +(PID.TID 0000.0001) 6.125886612493267E+04, /* J = 6 */ +(PID.TID 0000.0001) 7.211134136813131E+04, /* J = 7 */ +(PID.TID 0000.0001) 8.275729969461885E+04, /* J = 8 */ +(PID.TID 0000.0001) 9.312710372799002E+04, /* J = 9 */ +(PID.TID 0000.0001) 1.031504601307384E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.127680278153587E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.219451812366290E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.306849845125754E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.390367221691153E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.470967396967750E+05, /* J = 15 */ +(PID.TID 0000.0001) 1.550000000000000E+05, /* J = 16 */ +(PID.TID 0000.0001) 1.629032603032250E+05, /* J = 17 */ +(PID.TID 0000.0001) 1.709632778308847E+05, /* J = 18 */ +(PID.TID 0000.0001) 1.793150154874247E+05, /* J = 19 */ +(PID.TID 0000.0001) 1.880548187633711E+05, /* J = 20 */ +(PID.TID 0000.0001) 1.972319721846414E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.068495398692617E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.168728962720101E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.272427003053812E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.378886586318688E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.487411338750674E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.597389844902704E+05, /* J = 27 */ +(PID.TID 0000.0001) 2.708333923190298E+05, /* J = 28 */ +(PID.TID 0000.0001) 2.819884171965604E+05, /* J = 29 */ +(PID.TID 0000.0001) 2.931794580570235E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.043907725488308E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.156129077489441E+05 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) 6.300000000000000E+07, /* K = 1 */ +(PID.TID 0000.0001) 5.900000000000000E+07, /* K = 2 */ +(PID.TID 0000.0001) 5.500000000000000E+07, /* K = 3 */ +(PID.TID 0000.0001) 5.100000000000000E+07, /* K = 4 */ +(PID.TID 0000.0001) 4.700000000000000E+07, /* K = 5 */ +(PID.TID 0000.0001) 4.300000000000000E+07, /* K = 6 */ +(PID.TID 0000.0001) 3.900000000000000E+07, /* K = 7 */ +(PID.TID 0000.0001) 3.500000000000000E+07, /* K = 8 */ +(PID.TID 0000.0001) 3.100000000000000E+07, /* K = 9 */ +(PID.TID 0000.0001) 2.700000000000000E+07, /* K = 10 */ +(PID.TID 0000.0001) 2.220000000000000E+07, /* K = 11 */ +(PID.TID 0000.0001) 1.780000000000000E+07, /* K = 12 */ +(PID.TID 0000.0001) 1.420000000000000E+07, /* K = 13 */ +(PID.TID 0000.0001) 1.130000000000000E+07, /* K = 14 */ +(PID.TID 0000.0001) 9.000000000000000E+06, /* K = 15 */ +(PID.TID 0000.0001) 7.225000000000000E+06, /* K = 16 */ +(PID.TID 0000.0001) 5.850000000000000E+06, /* K = 17 */ +(PID.TID 0000.0001) 4.775000000000000E+06, /* K = 18 */ +(PID.TID 0000.0001) 3.900000000000000E+06, /* K = 19 */ +(PID.TID 0000.0001) 3.150000000000000E+06, /* K = 20 */ +(PID.TID 0000.0001) 2.475000000000000E+06, /* K = 21 */ +(PID.TID 0000.0001) 1.850000000000000E+06, /* K = 22 */ +(PID.TID 0000.0001) 1.275000000000000E+06, /* K = 23 */ +(PID.TID 0000.0001) 7.500000000000000E+05, /* K = 24 */ +(PID.TID 0000.0001) 2.500000000000000E+05 /* K = 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 6.700000000000000E+07, /* K = 1 */ +(PID.TID 0000.0001) 6.100000000000000E+07, /* K = 2 */ +(PID.TID 0000.0001) 5.700000000000000E+07, /* K = 3 */ +(PID.TID 0000.0001) 5.300000000000000E+07, /* K = 4 */ +(PID.TID 0000.0001) 4.900000000000000E+07, /* K = 5 */ +(PID.TID 0000.0001) 4.500000000000000E+07, /* K = 6 */ +(PID.TID 0000.0001) 4.100000000000000E+07, /* K = 7 */ +(PID.TID 0000.0001) 3.700000000000000E+07, /* K = 8 */ +(PID.TID 0000.0001) 3.300000000000000E+07, /* K = 9 */ +(PID.TID 0000.0001) 2.900000000000000E+07, /* K = 10 */ +(PID.TID 0000.0001) 2.460000000000000E+07, /* K = 11 */ +(PID.TID 0000.0001) 2.000000000000000E+07, /* K = 12 */ +(PID.TID 0000.0001) 1.600000000000000E+07, /* K = 13 */ +(PID.TID 0000.0001) 1.275000000000000E+07, /* K = 14 */ +(PID.TID 0000.0001) 1.015000000000000E+07, /* K = 15 */ +(PID.TID 0000.0001) 8.112500000000000E+06, /* K = 16 */ +(PID.TID 0000.0001) 6.537500000000000E+06, /* K = 17 */ +(PID.TID 0000.0001) 5.312500000000000E+06, /* K = 18 */ +(PID.TID 0000.0001) 4.337500000000000E+06, /* K = 19 */ +(PID.TID 0000.0001) 3.525000000000000E+06, /* K = 20 */ +(PID.TID 0000.0001) 2.812500000000000E+06, /* K = 21 */ +(PID.TID 0000.0001) 2.162500000000000E+06, /* K = 22 */ +(PID.TID 0000.0001) 1.562500000000000E+06, /* K = 23 */ +(PID.TID 0000.0001) 1.012500000000000E+06, /* K = 24 */ +(PID.TID 0000.0001) 5.000000000000000E+05, /* K = 25 */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E-04 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+04 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 25 @ 0.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+04 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.121845490233872E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 2 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 3 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 5 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 6 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 8 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 9 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ +(PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 23 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 24 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 26 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 27 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 28 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 29 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 30 */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 31 */ +(PID.TID 0000.0001) 1.122581549788791E+04 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+04 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.121845490233872E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 2 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 3 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 5 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 6 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 8 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 9 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ +(PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ +(PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ +(PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ +(PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ +(PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ +(PID.TID 0000.0001) 1.021361421186628E+04, /* J = 23 */ +(PID.TID 0000.0001) 1.052599385487605E+04, /* J = 24 */ +(PID.TID 0000.0001) 1.076592279809904E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.093902768829823E+04, /* J = 26 */ +(PID.TID 0000.0001) 1.105667354210767E+04, /* J = 27 */ +(PID.TID 0000.0001) 1.113214211541110E+04, /* J = 28 */ +(PID.TID 0000.0001) 1.117790763965009E+04, /* J = 29 */ +(PID.TID 0000.0001) 1.120417408127598E+04, /* J = 30 */ +(PID.TID 0000.0001) 1.121845490233872E+04, /* J = 31 */ +(PID.TID 0000.0001) 1.122581549788791E+04 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+04 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.122213520011331E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.122213520011331E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.121131449180735E+04, /* J = 2 */ +(PID.TID 0000.0001) 1.119104086046303E+04, /* J = 3 */ +(PID.TID 0000.0001) 1.115502487753059E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.109440782875938E+04, /* J = 5 */ +(PID.TID 0000.0001) 1.099785061520295E+04, /* J = 6 */ +(PID.TID 0000.0001) 1.085247524319864E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.064595832648755E+04, /* J = 8 */ +(PID.TID 0000.0001) 1.036980403337117E+04, /* J = 9 */ +(PID.TID 0000.0001) 1.002335640274833E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.617567684620319E+03, /* J = 11 */ +(PID.TID 0000.0001) 9.177153421270308E+03, /* J = 12 */ +(PID.TID 0000.0001) 8.739803275946404E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.351737656539919E+03, /* J = 14 */ +(PID.TID 0000.0001) 8.060017527659718E+03, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 7.903260303224972E+03, /* J = 16: 17 */ +(PID.TID 0000.0001) 8.060017527659718E+03, /* J = 18 */ +(PID.TID 0000.0001) 8.351737656539919E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.739803275946404E+03, /* J = 20 */ +(PID.TID 0000.0001) 9.177153421270308E+03, /* J = 21 */ +(PID.TID 0000.0001) 9.617567684620319E+03, /* J = 22 */ +(PID.TID 0000.0001) 1.002335640274833E+04, /* J = 23 */ +(PID.TID 0000.0001) 1.036980403337117E+04, /* J = 24 */ +(PID.TID 0000.0001) 1.064595832648755E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.085247524319864E+04, /* J = 26 */ +(PID.TID 0000.0001) 1.099785061520295E+04, /* J = 27 */ +(PID.TID 0000.0001) 1.109440782875938E+04, /* J = 28 */ +(PID.TID 0000.0001) 1.115502487753059E+04, /* J = 29 */ +(PID.TID 0000.0001) 1.119104086046303E+04, /* J = 30 */ +(PID.TID 0000.0001) 1.121131449180735E+04, /* J = 31 */ +(PID.TID 0000.0001) 1.122213520011331E+04 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+04 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.122213520011331E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.122213520011331E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.121131449180735E+04, /* J = 2 */ +(PID.TID 0000.0001) 1.119104086046303E+04, /* J = 3 */ +(PID.TID 0000.0001) 1.115502487753059E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.109440782875938E+04, /* J = 5 */ +(PID.TID 0000.0001) 1.099785061520295E+04, /* J = 6 */ +(PID.TID 0000.0001) 1.085247524319864E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.064595832648755E+04, /* J = 8 */ +(PID.TID 0000.0001) 1.036980403337117E+04, /* J = 9 */ +(PID.TID 0000.0001) 1.002335640274833E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.617567684620319E+03, /* J = 11 */ +(PID.TID 0000.0001) 9.177153421270308E+03, /* J = 12 */ +(PID.TID 0000.0001) 8.739803275946404E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.351737656539919E+03, /* J = 14 */ +(PID.TID 0000.0001) 8.060017527659718E+03, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 7.903260303224972E+03, /* J = 16: 17 */ +(PID.TID 0000.0001) 8.060017527659718E+03, /* J = 18 */ +(PID.TID 0000.0001) 8.351737656539919E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.739803275946404E+03, /* J = 20 */ +(PID.TID 0000.0001) 9.177153421270308E+03, /* J = 21 */ +(PID.TID 0000.0001) 9.617567684620319E+03, /* J = 22 */ +(PID.TID 0000.0001) 1.002335640274833E+04, /* J = 23 */ +(PID.TID 0000.0001) 1.036980403337117E+04, /* J = 24 */ +(PID.TID 0000.0001) 1.064595832648755E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.085247524319864E+04, /* J = 26 */ +(PID.TID 0000.0001) 1.099785061520295E+04, /* J = 27 */ +(PID.TID 0000.0001) 1.109440782875938E+04, /* J = 28 */ +(PID.TID 0000.0001) 1.115502487753059E+04, /* J = 29 */ +(PID.TID 0000.0001) 1.119104086046303E+04, /* J = 30 */ +(PID.TID 0000.0001) 1.121131449180735E+04, /* J = 31 */ +(PID.TID 0000.0001) 1.122213520011331E+04 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.121845490233872E+08 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.121845490233872E+08, /* J = 1 */ +(PID.TID 0000.0001) 1.120417408127598E+08, /* J = 2 */ +(PID.TID 0000.0001) 1.117790763965009E+08, /* J = 3 */ +(PID.TID 0000.0001) 1.113214211541110E+08, /* J = 4 */ +(PID.TID 0000.0001) 1.105667354210767E+08, /* J = 5 */ +(PID.TID 0000.0001) 1.093902768829823E+08, /* J = 6 */ +(PID.TID 0000.0001) 1.076592279809904E+08, /* J = 7 */ +(PID.TID 0000.0001) 1.052599385487605E+08, /* J = 8 */ +(PID.TID 0000.0001) 1.021361421186628E+08, /* J = 9 */ +(PID.TID 0000.0001) 9.833098593630378E+07, /* J = 10 */ +(PID.TID 0000.0001) 9.402036775610259E+07, /* J = 11 */ +(PID.TID 0000.0001) 8.952270066930355E+07, /* J = 12 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 13 */ +(PID.TID 0000.0001) 8.176138828117387E+07, /* J = 14 */ +(PID.TID 0000.0001) 7.943896227202050E+07, /* J = 15 */ +(PID.TID 0000.0001) 7.862624379247892E+07, /* J = 16 */ +(PID.TID 0000.0001) 7.943896227202050E+07, /* J = 17 */ +(PID.TID 0000.0001) 8.176138828117387E+07, /* J = 18 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 19 */ +(PID.TID 0000.0001) 8.952270066930355E+07, /* J = 20 */ +(PID.TID 0000.0001) 9.402036775610259E+07, /* J = 21 */ +(PID.TID 0000.0001) 9.833098593630378E+07, /* J = 22 */ +(PID.TID 0000.0001) 1.021361421186628E+08, /* J = 23 */ +(PID.TID 0000.0001) 1.052599385487605E+08, /* J = 24 */ +(PID.TID 0000.0001) 1.076592279809904E+08, /* J = 25 */ +(PID.TID 0000.0001) 1.093902768829823E+08, /* J = 26 */ +(PID.TID 0000.0001) 1.105667354210767E+08, /* J = 27 */ +(PID.TID 0000.0001) 1.113214211541110E+08, /* J = 28 */ +(PID.TID 0000.0001) 1.117790763965009E+08, /* J = 29 */ +(PID.TID 0000.0001) 1.120417408127598E+08, /* J = 30 */ +(PID.TID 0000.0001) 1.121845490233872E+08, /* J = 31 */ +(PID.TID 0000.0001) 1.122581549788791E+08 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.121845490233872E+08 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.121845490233872E+08, /* J = 1 */ +(PID.TID 0000.0001) 1.120417408127598E+08, /* J = 2 */ +(PID.TID 0000.0001) 1.117790763965009E+08, /* J = 3 */ +(PID.TID 0000.0001) 1.113214211541110E+08, /* J = 4 */ +(PID.TID 0000.0001) 1.105667354210767E+08, /* J = 5 */ +(PID.TID 0000.0001) 1.093902768829823E+08, /* J = 6 */ +(PID.TID 0000.0001) 1.076592279809904E+08, /* J = 7 */ +(PID.TID 0000.0001) 1.052599385487605E+08, /* J = 8 */ +(PID.TID 0000.0001) 1.021361421186628E+08, /* J = 9 */ +(PID.TID 0000.0001) 9.833098593630378E+07, /* J = 10 */ +(PID.TID 0000.0001) 9.402036775610259E+07, /* J = 11 */ +(PID.TID 0000.0001) 8.952270066930355E+07, /* J = 12 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 13 */ +(PID.TID 0000.0001) 8.176138828117387E+07, /* J = 14 */ +(PID.TID 0000.0001) 7.943896227202050E+07, /* J = 15 */ +(PID.TID 0000.0001) 7.862624379247892E+07, /* J = 16 */ +(PID.TID 0000.0001) 7.943896227202050E+07, /* J = 17 */ +(PID.TID 0000.0001) 8.176138828117387E+07, /* J = 18 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 19 */ +(PID.TID 0000.0001) 8.952270066930355E+07, /* J = 20 */ +(PID.TID 0000.0001) 9.402036775610259E+07, /* J = 21 */ +(PID.TID 0000.0001) 9.833098593630378E+07, /* J = 22 */ +(PID.TID 0000.0001) 1.021361421186628E+08, /* J = 23 */ +(PID.TID 0000.0001) 1.052599385487605E+08, /* J = 24 */ +(PID.TID 0000.0001) 1.076592279809904E+08, /* J = 25 */ +(PID.TID 0000.0001) 1.093902768829823E+08, /* J = 26 */ +(PID.TID 0000.0001) 1.105667354210767E+08, /* J = 27 */ +(PID.TID 0000.0001) 1.113214211541110E+08, /* J = 28 */ +(PID.TID 0000.0001) 1.117790763965009E+08, /* J = 29 */ +(PID.TID 0000.0001) 1.120417408127598E+08, /* J = 30 */ +(PID.TID 0000.0001) 1.121845490233872E+08, /* J = 31 */ +(PID.TID 0000.0001) 1.122581549788791E+08 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.122213520011331E+08 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.122213520011331E+08, /* J = 1 */ +(PID.TID 0000.0001) 1.121131449180735E+08, /* J = 2 */ +(PID.TID 0000.0001) 1.119104086046303E+08, /* J = 3 */ +(PID.TID 0000.0001) 1.115502487753059E+08, /* J = 4 */ +(PID.TID 0000.0001) 1.109440782875938E+08, /* J = 5 */ +(PID.TID 0000.0001) 1.099785061520295E+08, /* J = 6 */ +(PID.TID 0000.0001) 1.085247524319864E+08, /* J = 7 */ +(PID.TID 0000.0001) 1.064595832648755E+08, /* J = 8 */ +(PID.TID 0000.0001) 1.036980403337117E+08, /* J = 9 */ +(PID.TID 0000.0001) 1.002335640274833E+08, /* J = 10 */ +(PID.TID 0000.0001) 9.617567684620319E+07, /* J = 11 */ +(PID.TID 0000.0001) 9.177153421270308E+07, /* J = 12 */ +(PID.TID 0000.0001) 8.739803275946404E+07, /* J = 13 */ +(PID.TID 0000.0001) 8.351737656539918E+07, /* J = 14 */ +(PID.TID 0000.0001) 8.060017527659719E+07, /* J = 15 */ +(PID.TID 0000.0001) 2 @ 7.903260303224972E+07, /* J = 16: 17 */ +(PID.TID 0000.0001) 8.060017527659719E+07, /* J = 18 */ +(PID.TID 0000.0001) 8.351737656539918E+07, /* J = 19 */ +(PID.TID 0000.0001) 8.739803275946404E+07, /* J = 20 */ +(PID.TID 0000.0001) 9.177153421270308E+07, /* J = 21 */ +(PID.TID 0000.0001) 9.617567684620319E+07, /* J = 22 */ +(PID.TID 0000.0001) 1.002335640274833E+08, /* J = 23 */ +(PID.TID 0000.0001) 1.036980403337117E+08, /* J = 24 */ +(PID.TID 0000.0001) 1.064595832648755E+08, /* J = 25 */ +(PID.TID 0000.0001) 1.085247524319864E+08, /* J = 26 */ +(PID.TID 0000.0001) 1.099785061520295E+08, /* J = 27 */ +(PID.TID 0000.0001) 1.109440782875938E+08, /* J = 28 */ +(PID.TID 0000.0001) 1.115502487753059E+08, /* J = 29 */ +(PID.TID 0000.0001) 1.119104086046303E+08, /* J = 30 */ +(PID.TID 0000.0001) 1.121131449180735E+08, /* J = 31 */ +(PID.TID 0000.0001) 1.122213520011331E+08 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.100000000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) ' ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Tini_flip.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Sini_Ydir.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANICP +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: surfDiag + nFlds, nActive, freq & phase , nLev + 4 | 4 | -864000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 23 |ETAN | 1 | 0 | 1 | 0 | + 25 |DETADT2 | 2 | 0 | 1 | 0 | + 73 |PHIBOT | 3 | 0 | 1 | 0 | + 76 |MXLDEPTH| 4 | 0 | 1 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: oceDiag + nFlds, nActive, freq & phase , nLev + 8 | 8 | -864000.000000 0.000000 | 25 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + diag# | name | ipt | iMate | kLev| count | mate.C| + 77 |DRHODR | 5 | 0 | 25 | 0 | + 64 |RHOAnoma| 30 | 0 | 25 | 0 | + 26 |THETA | 55 | 0 | 25 | 0 | + 202 |GM_Kwy | 80 | 0 | 25 | 0 | + 203 |GM_Kwz | 105 | 0 | 25 | 0 | + 198 |GM_Kvy | 130 | 0 | 25 | 0 | + 200 |GM_Kvz | 155 | 0 | 25 | 0 | + 205 |GM_PsiY | 180 | 0 | 25 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 13 | 13 | 21600.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 23 |ETAN | 1 | 0 | 0.00000E+00 | + 25 |DETADT2 | 2 | 0 | 0.00000E+00 | + 76 |MXLDEPTH| 3 | 0 | 0.00000E+00 | + 30 |UVEL | 4 | 0 | 0.00000E+00 | + 31 |VVEL | 29 | 0 | 0.00000E+00 | + 32 |WVEL | 54 | 0 | 0.00000E+00 | + 26 |THETA | 79 | 0 | 0.00000E+00 | + 27 |SALT | 104 | 0 | 0.00000E+00 | + 205 |GM_PsiY | 129 | 0 | 0.00000E+00 | + 198 |GM_Kvy | 154 | 0 | 0.00000E+00 | + 200 |GM_Kvz | 179 | 0 | 0.00000E+00 | + 202 |GM_Kwy | 204 | 0 | 0.00000E+00 | + 203 |GM_Kwz | 229 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568423459062E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559594024634E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160569106E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157859662864E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3832283076989E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9497512775329E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405417468E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0066334606907E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2833808829094E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.59001889464779E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.66943189311226E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 1.27208877247624E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.5577757061503E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5578802445227E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8817204301075E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1034790520489E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9396252918616E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3159304650597E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.8399192395328E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2960740634924E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2708413738132E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.6252515694238E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8044519469943E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8057261799571E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.0295447693699E-17 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3409514457713E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0727456558643E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568356979286E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559631949511E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570396E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157858227061E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3827375975960E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9984962322830E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9573387965773E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405414469E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0049834950731E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2965688247240E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9970856915101E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.4560392293359E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9010939256167E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 2.4749309315260E-07 +(PID.TID 0000.0001) %MON ke_max = 8.7029874315695E-05 +(PID.TID 0000.0001) %MON ke_mean = 5.1810275770367E-06 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 23 ETAN Counter: 1 Parms: SM M1 + Computing Diagnostic # 25 DETADT2 Counter: 1 Parms: SM M1 + Computing Diagnostic # 73 PHIBOT Counter: 1 Parms: SM M1 + Computing Diagnostic # 76 MXLDEPTH Counter: 1 Parms: SM M1 + Computing Diagnostic # 77 DRHODR Counter: 1 Parms: SM LR + Computing Diagnostic # 64 RHOAnoma Counter: 1 Parms: SMR MR + Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR + Computing Diagnostic # 202 GM_Kwy Counter: 1 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 201 GM_Kwx not enabled + Computing Diagnostic # 203 GM_Kwz Counter: 1 Parms: WM P LR + Computing Diagnostic # 198 GM_Kvy Counter: 1 Parms: VV P MR + Vector Mate for GM_Kvy Diagnostic # 197 GM_Kux not enabled + Computing Diagnostic # 200 GM_Kvz Counter: 1 Parms: VV MR + Vector Mate for GM_Kvz Diagnostic # 199 GM_Kuz not enabled + Computing Diagnostic # 205 GM_PsiY Counter: 1 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX not enabled + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.93459627560502E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.52621796295528E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 4.18379565051472E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.8951386671227E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.8947198904168E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4408602150538E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3422563269427E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3595346114684E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.7898523019000E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.1789232118577E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.4145241682961E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.2408534298956E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4747871930024E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5689783464674E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2949476488083E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.9684073564369E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.5357301546514E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1105547707917E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.0975978167577E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.0953932994991E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.6472716309919E-17 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.2486648959986E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0066473132450E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568279498456E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559685795808E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570649E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157856800178E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3820099290951E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9970129752384E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9647383767943E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405430535E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0033380759074E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3124263697474E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.8217341434200E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.8509537155881E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6373566631726E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7235333296554E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 3.6618944049138E-07 +(PID.TID 0000.0001) %MON ke_max = 3.3886534174101E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.1015186913333E-05 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 1.81671856564536E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.35915529694195E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 4.11030209513667E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7813647645883E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7796038826639E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.0645161290323E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2612273700473E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2181768636062E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.7670092268924E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3240702614386E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.3970978487014E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4237151292893E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7868677328205E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7318444927683E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.3065274578859E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6860568341409E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5268504956582E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.4435939510965E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3080848728009E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3064511831025E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9294543261984E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.1072554185912E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.2968462413684E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568192046944E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559758859725E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570575E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157855371630E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3808834136934E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9955474002112E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9719600058900E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405467938E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0016971128014E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3305103501236E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7580616608406E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4994291333691E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3630186087675E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4873880092289E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 3.2331188596674E-07 +(PID.TID 0000.0001) %MON ke_max = 7.4758468443072E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.6676978153058E-05 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 1.76617233379692E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.27484900375635E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 4.89315409919916E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7225306824525E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7189516232448E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.5053763440860E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2188701823118E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1413228629240E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7739219648810E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.3242934807705E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.4055563364432E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4224985332017E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8669532466895E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7717704390784E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1864767367945E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.8136041219387E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2173682125287E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5698080075402E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6913772608246E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6862409038171E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4470907446488E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.8147590457918E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.2554807025706E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568095982110E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559851831857E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570546E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157853936001E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3791896326113E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9940957503145E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9790151605071E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405519187E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0000605188286E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3504250848947E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1930595367857E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0867903195389E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0555661292913E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2163853992540E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 3.0196026856275E-07 +(PID.TID 0000.0001) %MON ke_max = 1.3015583308768E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.1197976636338E-05 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 1.77997396596381E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.15254817437705E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 9.44359555167072E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7173253468069E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7117084637893E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3763440860215E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2143687827519E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1278938746247E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7449463776479E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.7358205535301E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.3359699881121E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8520706192121E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0615168575963E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6445232582268E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3999516497783E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.3663246391295E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4391823694628E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1414981902800E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0273193473633E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0152823980812E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.8941814892976E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.2459912032048E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6769765728509E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567993072705E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559960866952E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570544E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157852493998E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3767837677996E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9926540750464E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9859171484714E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405578210E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9984282093316E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3718198004315E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9409034797662E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2855633592965E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.6650260952415E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.8579222055173E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9973405295168E-07 +(PID.TID 0000.0001) %MON ke_max = 1.9776387038036E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.2329090022054E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 1.81176307340763E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.23921614352472E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.19330765506988E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7146627038158E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7070705994005E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4408602150538E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2115998069727E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1127772661787E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.8548686424649E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.4855768081957E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.4021398808002E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.6277027250580E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4897191801506E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3205903956828E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5650388123760E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.7599379409277E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6108616068936E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2931906104909E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3033407626881E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2797137333380E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4118179077480E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0347459237761E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6201766303851E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567885337322E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559899832434E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570544E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157851047000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3735774454564E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9912187903509E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9926801202539E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405636155E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9968001009305E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3943854694173E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.9387635564368E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4395404270800E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1711751754145E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3907107109627E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9836871793827E-07 +(PID.TID 0000.0001) %MON ke_max = 2.7501448182271E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.7139581457341E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 1.85702183009131E-03 +(PID.TID 0000.0001) cg2d_init_res = 8.03104770693050E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.60174376287133E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7062161562338E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6969719574321E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.7526881720430E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2047294267605E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0853440784010E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0650649172463E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2479886237547E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.3958654234800E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2653132614702E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9566475742194E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7793530656845E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6754009045325E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4290957149651E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7269027416414E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4083381741666E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5092715588648E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4684710354764E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4118179077480E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1089868827658E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6637575379888E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567774932738E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559762606291E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570546E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157849596426E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3695645727560E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9897872228992E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9993184206859E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405685115E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9951761106423E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4178513470016E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.1171168510433E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5440255097321E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5570724670274E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7969183863447E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9499451050869E-07 +(PID.TID 0000.0001) %MON ke_max = 3.5915437287049E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.2376543931776E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 1.92068363228977E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.03272271221930E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.46278461600160E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6957890621084E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6854186760531E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.1290322580645E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1965136905275E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0515677936450E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3341686974912E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5613364457396E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.3619828205669E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5824264445281E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.4467108016958E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0069671472203E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7273113772034E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7086118511955E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7837258747113E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4837752413357E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6358793601630E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.5722210459860E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.8589086523967E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1451965170178E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7065502137876E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567664068042E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559621499641E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570551E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157848143980E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3648266930323E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9883580481001E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0058461344134E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405719183E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9935561552451E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4419814121783E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1401503655484E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5958655518217E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8077796005404E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.0608206321478E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9098475845928E-07 +(PID.TID 0000.0001) %MON ke_max = 4.4721832105306E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.7853150725290E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 2.00767794533427E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.17542337143664E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.51047590988818E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6851227221442E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6742761184911E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8817204301075E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1882361550136E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0157514876939E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.6190652891436E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8776765248731E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.3292320814188E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9032730139995E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9436534210560E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.9971441801809E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7193906019946E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7209787468669E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7797787767063E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5174480465576E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6759947869248E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.5847676347134E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4470907446488E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1423498383565E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.6563430846361E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567554920852E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559482256640E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570560E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157846691534E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3595171243330E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9869315599510E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0122766905873E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405734524E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9919401508671E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4665708669155E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3714317520458E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5936283307265E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.9117896055709E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1703048479693E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.8697259351250E-07 +(PID.TID 0000.0001) %MON ke_max = 5.3613284217760E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.3377240412627E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 2.10979449086484E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.21708886741114E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 9.70508069372864E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6744604951625E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6638190324300E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.7526881720430E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1801018986779E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9804043350106E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8763393351199E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1860922145387E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2990673472703E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2169580158985E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4310039854964E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7516461746005E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6523138580768E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6906735003273E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7155770154029E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5091050542333E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6255446161573E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.5041423022774E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4470907446488E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1007607671130E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4441684028818E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567449558545E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559350600078E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570572E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157845240931E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3538324712410E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9855097341914E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0186225341199E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405729774E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9903280127770E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4914427913657E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5977410803216E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5377151514701E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8623407263266E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1182533961332E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.8305701041935E-07 +(PID.TID 0000.0001) %MON ke_max = 6.2284057106436E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.8758077523562E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 2.21470261040231E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.16126551392946E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 2.05387146711161E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 11 +(PID.TID 0000.0001) %MON time_secondsf = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6640115727114E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6541948970840E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.2580645161290E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1722721289682E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9472599565584E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0063779015410E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4760130851510E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2698814891197E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5128975579606E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.8925575334796E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2801988248762E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5287569615254E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6269036116907E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5936741433760E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4608500232142E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4841541149112E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3334098263994E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.8589086523967E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0220863819325E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.0310101190590E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567349868678E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559231851695E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570586E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157843793816E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3479833513296E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9840960769865E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0248948739711E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405706245E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9887196553651E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5164450137979E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8114802227737E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4303410809036E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6582348299204E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.9034050841268E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.7931340332433E-07 +(PID.TID 0000.0001) %MON ke_max = 7.0440623750368E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.3812790263570E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 2.31258381970829E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.02647610767646E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 3.02024585361620E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6541337291639E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6456195982533E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3075268817204E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1649939501851E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9171185917877E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1141799830391E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7375687568538E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2421614525171E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7811751285446E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.3128594729693E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6000878517945E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3533203385606E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5118575219017E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4185635934458E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3775257843970E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2668820021886E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0932497591610E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8941814892976E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.0925916462428E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4064243242767E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567257499447E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559130596301E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570602E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157842351496E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3421731646995E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9826952790306E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0311035007238E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405667685E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9871149922967E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5414472297694E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0055239694704E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2754430129445E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3042680593479E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.5308084835241E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.7585587479023E-07 +(PID.TID 0000.0001) %MON ke_max = 7.7810994049628E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.8372263570806E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 23 ETAN vol( 0 ): 3.720E+10 Parms: SM M1 + Compute Stats, Diag. # 25 DETADT2 vol( 0 ): 3.720E+10 Parms: SM M1 + Compute Stats, Diag. # 76 MXLDEPTH vol( 0 ): 3.720E+10 Parms: SM M1 + Compute Stats, Diag. # 30 UVEL vol( 0 ): 9.151E+17 Parms: UUR MR + Compute Stats, Diag. # 31 VVEL vol( 0 ): 8.820E+17 Parms: VVR MR + Compute Stats, Diag. # 32 WVEL vol( 0 ): 9.951E+17 Parms: WM LR + Compute Stats, Diag. # 26 THETA vol( 0 ): 9.151E+17 Parms: SMR MR + Compute Stats, Diag. # 27 SALT vol( 0 ): 9.151E+17 Parms: SMR MR + Compute Stats, Diag. # 205 GM_PsiY vol( 0 ): 9.591E+17 Parms: VV LR + Compute Stats, Diag. # 198 GM_Kvy vol( 0 ): 8.820E+17 Parms: VV P MR + Compute Stats, Diag. # 200 GM_Kvz vol( 0 ): 8.820E+17 Parms: VV MR + Compute Stats, Diag. # 202 GM_Kwy vol( 0 ): 9.951E+17 Parms: VM LR + Compute Stats, Diag. # 203 GM_Kwz vol( 0 ): 9.951E+17 Parms: WM P LR + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 2.40403420907713E-03 +(PID.TID 0000.0001) cg2d_init_res = 8.38454178017814E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 6.22539960830483E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 13 +(PID.TID 0000.0001) %MON time_secondsf = 2.3400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6452073903738E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6382746699186E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3075268817204E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1585139344040E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8899378262903E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2074759341972E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9619265107767E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2169879397600E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0128730463964E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.6776956654115E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7355232379735E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1323652873659E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3456724127575E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1965171172206E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2670379049987E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9758262860829E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7814913683203E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4118179077480E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.6639827165988E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5809669936450E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567173809872E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559050424887E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570618E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157840914841E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3365874273043E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9813127190471E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0372566608474E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405619696E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9855139368136E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5663383908842E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1734566815549E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0785348705868E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.8112685097357E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0118615891955E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.7279563744070E-07 +(PID.TID 0000.0001) %MON ke_max = 8.4153036656412E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.2286327658877E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 2.48359573347331E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.36229156299579E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 +(PID.TID 0000.0001) cg2d_last_res = 3.84734464094943E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 14 +(PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6375792947771E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6322806849355E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.6344086021505E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1530432595485E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8654603946408E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2832130448013E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1415898000407E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1952510576992E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.2003680023232E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9745811777493E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7167810688245E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.7736275306911E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1357017458718E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3536931435436E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1408445072756E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6173943763854E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4109167679906E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4470907446488E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.9872057159338E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5758823029366E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567099829517E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558981249349E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570633E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157839484231E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3313907514007E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9799538791025E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0433609772149E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405568915E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9839164021578E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5910243737303E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3097834806423E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4651215665441E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1957187261247E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3639144485523E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.7022535739640E-07 +(PID.TID 0000.0001) %MON ke_max = 8.9261588042936E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.5428133860752E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 2.54025439429666E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.73771409811482E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 2.08343039018120E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 15 +(PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6315474393039E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6277142618090E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.8172043010753E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1487537532913E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8439100921416E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3389494790862E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2706475994924E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1776369235183E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3375809295653E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1932268244594E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5791446902080E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9587106321661E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9009729016613E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.4427374979395E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0147666634319E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2047431897018E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.9618551927906E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1257724251322E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4137027991422E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567036228008E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558934177926E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570646E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157838059570E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3267266024824E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9786237442035E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0494214092942E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405522087E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9823223020904E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6154259300918E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4101090623551E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.8741079810822E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4789962690252E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6094697568686E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6821853367904E-07 +(PID.TID 0000.0001) %MON ke_max = 9.2974176191836E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.7697655617837E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 2.56964847736416E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.18093080515558E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.11146820915845E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 16 +(PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6273473343562E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6246243671672E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.1935483870968E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1457755685760E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8263225285984E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3729323394927E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3449674509197E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1646811330775E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4201730427973E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3259559729221E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3616823541914E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9914519337385E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.1749064605436E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3359267502462E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.0954684351323E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.7485422520437E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.8074169178576E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.3264998492614E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1668411061276E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.1122812734851E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566983295116E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558913276459E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570655E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157836640345E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3227163513690E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9773262590350E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0554412503467E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405485138E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9807315514807E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6394769082205E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4712782110868E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.1012874984573E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6863154801087E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7750689264302E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6682960437918E-07 +(PID.TID 0000.0001) %MON ke_max = 9.5175298486562E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.9024289264687E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 2.56998741981951E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.83767145154183E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.37889400237758E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 17 +(PID.TID 0000.0001) %MON time_secondsf = 3.0600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6251370721725E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6230415715407E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.5053763440860E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1441935875163E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8143759104171E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3841520107950E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3623261573977E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1567638618362E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4456817545038E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3680418929515E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2645502973224E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8691648156106E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2727629209994E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.1738230462392E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.4842392015062E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5543094869743E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.7877295231943E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8842327404281E-19 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.2763699694492E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.6830845052903E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566940932555E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558919520710E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570660E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157835225732E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3194569346398E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9760639056448E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0614221620676E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405462387E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9791440669415E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6631227220828E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4914736194311E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0009832215104E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.8084416441663E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1472278612496E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6609328571413E-07 +(PID.TID 0000.0001) %MON ke_max = 9.5799250752323E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.9368554475089E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 2.54211366997390E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.02779773024402E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 2.71202172202042E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 18 +(PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6249861244843E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6229822941605E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.8817204301075E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1440449032777E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8098583468795E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3723711846449E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3224740030446E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1540936702230E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4135922464942E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3179376777837E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4277586727208E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1486782404002E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9394277626700E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.0887683830712E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.4766499317668E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.1055392602860E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.4349679531383E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2059089538740E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1323663540076E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.1334287129277E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566908658756E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558952695106E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570661E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157833814725E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3170186975986E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9748374488876E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0673642486540E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405455982E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9775597674871E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6863190332701E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4702681323609E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6161618792648E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5792924248295E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6624130787679E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6602413429182E-07 +(PID.TID 0000.0001) %MON ke_max = 9.4831528244654E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.8722908083385E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 2.48923711160982E-03 +(PID.TID 0000.0001) cg2d_init_res = 7.21506564620145E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 4.10733168783251E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 19 +(PID.TID 0000.0001) %MON time_secondsf = 3.4200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6268700954304E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6244486327861E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3763440860215E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1453180214954E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8140468890844E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3381278064464E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2271307219731E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1567002799208E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3253426732124E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1773766667940E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3903595513423E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.3525288097927E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.6603447969773E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1489808816121E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.0506185328281E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.5607357640973E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0915692987347E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.2354537232439E-17 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0547333168653E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.4723768187489E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566885627517E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559011383492E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570657E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157832406275E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3154458239244E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9736458739071E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0732661720278E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405465656E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9759785751940E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7090306015436E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4086300516036E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3579810042431E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2390484704940E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3568931268358E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6661653869149E-07 +(PID.TID 0000.0001) %MON ke_max = 9.2308826997103E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.7111689740868E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 2.41640990721626E-03 +(PID.TID 0000.0001) cg2d_init_res = 8.17476564465451E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 4.86481047372312E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6306719868322E+02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6274240666418E+02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.8817204301075E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1479536153024E+02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8272625252058E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2827120361747E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0799138160076E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.1644351963918E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1842632279544E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9513309902574E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.1175332019243E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4697613401750E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.4904721829999E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9873474633343E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0017278230077E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2764441993315E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4041107804642E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.8236358154959E-16 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.8592318723884E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7213196166886E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566870660733E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559081869525E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160570649E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157830999419E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3147611667966E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9724865149694E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0791253081147E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405488804E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9744004158435E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7312302571347E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3088816651145E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.9025239871784E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8140710606366E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9621800638280E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6784502091174E-07 +(PID.TID 0000.0001) %MON ke_max = 8.8317671476210E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.4590217087720E-04 +(PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 20 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.0028720302507281 +(PID.TID 0000.0001) System time: 2.0136000588536263E-002 +(PID.TID 0000.0001) Wall clock time: 1.0230331420898438 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.9035000354051590E-002 +(PID.TID 0000.0001) System time: 1.5225999988615513E-002 +(PID.TID 0000.0001) Wall clock time: 3.4264802932739258E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.98378197103738785 +(PID.TID 0000.0001) System time: 4.9030007794499397E-003 +(PID.TID 0000.0001) Wall clock time: 0.98872208595275879 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.3814000412821770E-002 +(PID.TID 0000.0001) System time: 1.0599996894598007E-003 +(PID.TID 0000.0001) Wall clock time: 1.4875888824462891E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.96994098275899887 +(PID.TID 0000.0001) System time: 3.8330014795064926E-003 +(PID.TID 0000.0001) Wall clock time: 0.97381091117858887 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.96975402161478996 +(PID.TID 0000.0001) System time: 3.8210004568099976E-003 +(PID.TID 0000.0001) Wall clock time: 0.97360873222351074 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 0.96941695734858513 +(PID.TID 0000.0001) System time: 3.8000009953975677E-003 +(PID.TID 0000.0001) Wall clock time: 0.97325181961059570 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.3085801154375076E-002 +(PID.TID 0000.0001) System time: 2.7099996805191040E-004 +(PID.TID 0000.0001) Wall clock time: 1.3364791870117188E-002 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.5001303553581238E-004 +(PID.TID 0000.0001) System time: 2.6999041438102722E-005 +(PID.TID 0000.0001) Wall clock time: 5.7673454284667969E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.9697844982147217E-004 +(PID.TID 0000.0001) System time: 8.9984387159347534E-006 +(PID.TID 0000.0001) Wall clock time: 2.0456314086914062E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8109753727912903E-004 +(PID.TID 0000.0001) System time: 9.0003013610839844E-006 +(PID.TID 0000.0001) Wall clock time: 1.8882751464843750E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.16328390687704086 +(PID.TID 0000.0001) System time: 9.7899883985519409E-004 +(PID.TID 0000.0001) Wall clock time: 0.16432261466979980 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.25551304221153259 +(PID.TID 0000.0001) System time: 5.1999464631080627E-005 +(PID.TID 0000.0001) Wall clock time: 0.25559163093566895 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8859110772609711E-002 +(PID.TID 0000.0001) System time: 1.3400055468082428E-004 +(PID.TID 0000.0001) Wall clock time: 1.9007205963134766E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2438006699085236E-002 +(PID.TID 0000.0001) System time: 9.1999769210815430E-005 +(PID.TID 0000.0001) Wall clock time: 1.2539148330688477E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.6170340180397034E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.6241493225097656E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.4835010766983032E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.4848213195800781E-002 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.42921089380979538 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.42924094200134277 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0301342010498047E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.0241737365722656E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.4965010583400726E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.4986028671264648E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.1600167751312256E-003 +(PID.TID 0000.0001) System time: 2.1560005843639374E-003 +(PID.TID 0000.0001) Wall clock time: 6.3211917877197266E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0680109262466431E-003 +(PID.TID 0000.0001) System time: 1.0000541806221008E-005 +(PID.TID 0000.0001) Wall clock time: 1.0797977447509766E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 10426 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 10426 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/front_relax/results/output.top.txt b/verification/front_relax/results/output.top.txt new file mode 100644 index 0000000000..26ef83459a --- /dev/null +++ b/verification/front_relax/results/output.top.txt @@ -0,0 +1,3106 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68f +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Sat Jan 29 16:30:23 EST 2022 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 1 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 16 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 25 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 1 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 32 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 2 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 10*10.0, 9.9, 9.8, 9.7, 9.5, 9.4, 9.2, 9.0, 8.7, 8.4, 8.0, 7.6, 7.1, 6.5, 5.8, 5.2, +(PID.TID 0000.0001) > viscAr=2.E-4, +(PID.TID 0000.0001) > viscA4=12.E5, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > bottomDragLinear=1.E-3, +(PID.TID 0000.0001) >#bottomDragQuadratic=1.E-3, +(PID.TID 0000.0001) > diffKrT=2.E-5, +(PID.TID 0000.0001) > diffKrS=2.E-5, +(PID.TID 0000.0001) >#diffKrNrT=6*1.E-2, 19*2.E-5, +(PID.TID 0000.0001) >#diffKrNrS=6*1.E-2, 19*2.E-5, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) > beta=0.E-11, +(PID.TID 0000.0001) > f0 =1.E-4, +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta =0.E-4, +(PID.TID 0000.0001) > rhoConst=1000., +(PID.TID 0000.0001) > rhoNil=1000., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > hFacMin= 0.05, +(PID.TID 0000.0001) >#hMixCriteria=-0.04, +(PID.TID 0000.0001) > hMixCriteria= 1.5, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > debugLevel=3, +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0., +(PID.TID 0000.0001) >#nTimeSteps=8641, +(PID.TID 0000.0001) > nTimeSteps=25, +(PID.TID 0000.0001) > deltaT=3600., +(PID.TID 0000.0001) > cAdjFreq=-1., +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > pChkptFreq=0., +(PID.TID 0000.0001) > chkptFreq =0., +(PID.TID 0000.0001) > dumpFreq=2592000., +(PID.TID 0000.0001) >#monitorFreq=864000., +(PID.TID 0000.0001) > monitorSelect=1, +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delR= 8*20., 24., 29., 35., 41., 50., 60., 72., +(PID.TID 0000.0001) > 86., 103., 124., 148., 178., 213., 256., 3*307., +(PID.TID 0000.0001) > delX=1*1.E5, +(PID.TID 0000.0001) > delY=32*1.E5, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > hydrogThetaFile='t_ini.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='s_ini.bin', +(PID.TID 0000.0001) > uVelInitFile ='u_ini.bin', +(PID.TID 0000.0001) > bathyFile ='topo_slp.bin', +(PID.TID 0000.0001) > topoFile ='top_bump.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages (lines beginning "#" are comments) +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM-Redi parameters +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_AdvForm=.TRUE., +(PID.TID 0000.0001) >#GM_useBVP = .TRUE., +(PID.TID 0000.0001) > GM_BVP_modeNumber=5, +(PID.TID 0000.0001) > GM_background_K=1000., +(PID.TID 0000.0001) >#GM_isopycK = 1000., +(PID.TID 0000.0001) >#GM_taper_scheme='orig', +(PID.TID 0000.0001) >#GM_taper_scheme='linear', +(PID.TID 0000.0001) >#GM_taper_scheme='gkw91', +(PID.TID 0000.0001) > GM_taper_scheme='ac02', +(PID.TID 0000.0001) >#GM_taper_scheme='dm95', +(PID.TID 0000.0001) >#GM_taper_scheme='ldd97', +(PID.TID 0000.0001) >#GM_taper_scheme='fm07', +(PID.TID 0000.0001) > GM_maxSlope =1.E-02, +(PID.TID 0000.0001) > GM_facTrL2dz = 0., +(PID.TID 0000.0001) >#GM_facTrL2ML = 5., +(PID.TID 0000.0001) >#GM_maxTransLay = 500., +(PID.TID 0000.0001) >#GM_useSubMeso = .TRUE., +(PID.TID 0000.0001) >#subMeso_Ceff = 3.e-2, +(PID.TID 0000.0001) >#subMeso_LfMin = 5.e+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) > fields(1:4,1) = 'ETAN ','DETADT2 ','PHIBOT ', +(PID.TID 0000.0001) > 'MXLDEPTH', +(PID.TID 0000.0001) ># 'GM_BVPcW','GM_BVPcS', +(PID.TID 0000.0001) ># 'SubMesLf','SubMpsiY', +(PID.TID 0000.0001) ># 'GM_hTrsL','GM_baseS','GM_rLamb', +(PID.TID 0000.0001) ># 'GM_VisbK', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = -86400., +(PID.TID 0000.0001) > timePhase(1) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'THETA ','THETASQ ','UVELSQ ', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) ># fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = -864000., +(PID.TID 0000.0001) > timePhase(2) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:8,3) = 'DRHODR ','RHOAnoma', +(PID.TID 0000.0001) > 'GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) > 'GM_Kvy ','GM_Kvz ', +(PID.TID 0000.0001) > 'GM_PsiY ','THETA ', +(PID.TID 0000.0001) > fileName(3) = 'oceDiag', +(PID.TID 0000.0001) > frequency(3) = -86400., +(PID.TID 0000.0001) > timePhase(3) = 0., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,4) = 'ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DFyE_TH ','DFrE_TH ', +(PID.TID 0000.0001) > 'DFrI_TH ', +(PID.TID 0000.0001) ># 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 1728000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) ># stat_fields(1:13,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) ># 'MXLDEPTH','SubMesLf','SubMpsiY','GM_PsiY ', +(PID.TID 0000.0001) ># 'GM_Kwy ','GM_Kwz ','GM_Kvy ','GM_Kvz ', +(PID.TID 0000.0001) >## 'GM_hTrsL','GM_baseS','GM_rLamb', +(PID.TID 0000.0001) >## stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) ># stat_freq(1) = 18000., +(PID.TID 0000.0001) >## stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN DETADT2 PHIBOT MXLDEPTH +(PID.TID 0000.0001) Creating Output Stream: oceDiag +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: DRHODR RHOAnoma GM_Kwy GM_Kwz GM_Kvy GM_Kvz GM_PsiY THETA +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 5.0000000000000E+04 +(PID.TID 0000.0001) %MON XC_min = 5.0000000000000E+04 +(PID.TID 0000.0001) %MON XC_mean = 5.0000000000000E+04 +(PID.TID 0000.0001) %MON XC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXC_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 3.1500000000000E+06 +(PID.TID 0000.0001) %MON YC_min = 5.0000000000000E+04 +(PID.TID 0000.0001) %MON YC_mean = 1.6000000000000E+06 +(PID.TID 0000.0001) %MON YC_sd = 9.2330926563097E+05 +(PID.TID 0000.0001) %MON YG_max = 3.1000000000000E+06 +(PID.TID 0000.0001) %MON YG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_mean = 1.5500000000000E+06 +(PID.TID 0000.0001) %MON YG_sd = 9.2330926563097E+05 +(PID.TID 0000.0001) %MON DYC_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_min = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_mean = 1.0000000000000E+05 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_min = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_mean = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RA_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAW_max = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_min = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_mean = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAW_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_max = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_min = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_mean = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_max = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_min = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 1.0000000000000E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: RhoRef.data +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: topo_slp.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: top_bump.bin +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 212 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 77 DRHODR +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 64 RHOAnoma +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 202 GM_Kwy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 203 GM_Kwz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 198 GM_Kvy +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 200 GM_Kvz +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 25 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) space allocated for all diagnostics: 204 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: oceDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. +(PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) space allocated for all stats-diags: 0 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) %MON fCori_max = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_min = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCori_sd = 2.7105054312138E-20 +(PID.TID 0000.0001) %MON fCoriG_max = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_min = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 1.0000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 2.7105054312138E-20 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 4.0004203225612011E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 10 @ 1.000000000000000E+01, /* K = 1: 10 */ +(PID.TID 0000.0001) 9.900000000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 9.800000000000001E+00, /* K = 12 */ +(PID.TID 0000.0001) 9.699999999999999E+00, /* K = 13 */ +(PID.TID 0000.0001) 9.500000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 9.400000000000000E+00, /* K = 15 */ +(PID.TID 0000.0001) 9.199999999999999E+00, /* K = 16 */ +(PID.TID 0000.0001) 9.000000000000000E+00, /* K = 17 */ +(PID.TID 0000.0001) 8.699999999999999E+00, /* K = 18 */ +(PID.TID 0000.0001) 8.400000000000000E+00, /* K = 19 */ +(PID.TID 0000.0001) 8.000000000000000E+00, /* K = 20 */ +(PID.TID 0000.0001) 7.600000000000000E+00, /* K = 21 */ +(PID.TID 0000.0001) 7.100000000000000E+00, /* K = 22 */ +(PID.TID 0000.0001) 6.500000000000000E+00, /* K = 23 */ +(PID.TID 0000.0001) 5.800000000000000E+00, /* K = 24 */ +(PID.TID 0000.0001) 5.200000000000000E+00 /* K = 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 25 @ 3.000000000000000E+01 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 1.200000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 25 @ 2.000000000000000E-04 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 25 @ 2.000000000000000E-05 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 25 @ 2.000000000000000E-05 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.500000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 25 @ 3.600000000000000E+03 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 25 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 25 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 9.600000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7 @ 2.000000000000000E+01, /* K = 2: 8 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 2.650000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.200000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 4.550000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 5.500000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 7.900000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 9.450000000000000E+01, /* K = 17 */ +(PID.TID 0000.0001) 1.135000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 1.360000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 1.630000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) 1.955000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) 2.345000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) 2.815000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) 2 @ 3.070000000000000E+02, /* K = 24: 25 */ +(PID.TID 0000.0001) 1.535000000000000E+02 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 8 @ 2.000000000000000E+01, /* K = 1: 8 */ +(PID.TID 0000.0001) 2.400000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 2.900000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.500000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 4.100000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 7.200000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 1.030000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 1.240000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 1.480000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) 2.130000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) 2.560000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) 3 @ 3.070000000000000E+02 /* K = 23: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 5.000000000000000E+04 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 5.000000000000000E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.500000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) 2.500000000000000E+05, /* J = 3 */ +(PID.TID 0000.0001) 3.500000000000000E+05, /* J = 4 */ +(PID.TID 0000.0001) 4.500000000000000E+05, /* J = 5 */ +(PID.TID 0000.0001) 5.500000000000000E+05, /* J = 6 */ +(PID.TID 0000.0001) 6.500000000000000E+05, /* J = 7 */ +(PID.TID 0000.0001) 7.500000000000000E+05, /* J = 8 */ +(PID.TID 0000.0001) 8.500000000000000E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.500000000000000E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.050000000000000E+06, /* J = 11 */ +(PID.TID 0000.0001) 1.150000000000000E+06, /* J = 12 */ +(PID.TID 0000.0001) 1.250000000000000E+06, /* J = 13 */ +(PID.TID 0000.0001) 1.350000000000000E+06, /* J = 14 */ +(PID.TID 0000.0001) 1.450000000000000E+06, /* J = 15 */ +(PID.TID 0000.0001) 1.550000000000000E+06, /* J = 16 */ +(PID.TID 0000.0001) 1.650000000000000E+06, /* J = 17 */ +(PID.TID 0000.0001) 1.750000000000000E+06, /* J = 18 */ +(PID.TID 0000.0001) 1.850000000000000E+06, /* J = 19 */ +(PID.TID 0000.0001) 1.950000000000000E+06, /* J = 20 */ +(PID.TID 0000.0001) 2.050000000000000E+06, /* J = 21 */ +(PID.TID 0000.0001) 2.150000000000000E+06, /* J = 22 */ +(PID.TID 0000.0001) 2.250000000000000E+06, /* J = 23 */ +(PID.TID 0000.0001) 2.350000000000000E+06, /* J = 24 */ +(PID.TID 0000.0001) 2.450000000000000E+06, /* J = 25 */ +(PID.TID 0000.0001) 2.550000000000000E+06, /* J = 26 */ +(PID.TID 0000.0001) 2.650000000000000E+06, /* J = 27 */ +(PID.TID 0000.0001) 2.750000000000000E+06, /* J = 28 */ +(PID.TID 0000.0001) 2.850000000000000E+06, /* J = 29 */ +(PID.TID 0000.0001) 2.950000000000000E+06, /* J = 30 */ +(PID.TID 0000.0001) 3.050000000000000E+06, /* J = 31 */ +(PID.TID 0000.0001) 3.150000000000000E+06 /* J = 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -9.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -1.100000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.300000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.500000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -1.720000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -1.985000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -2.305000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -2.685000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -3.140000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -3.690000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -4.350000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -5.140000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -6.085000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -7.220000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -8.580000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -1.021000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -1.216500000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -1.451000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -1.732500000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -2.039500000000000E+03, /* K = 24 */ +(PID.TID 0000.0001) -2.346500000000000E+03 /* K = 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -2.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -4.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -6.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -8.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -1.600000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -1.840000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -2.130000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -2.480000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -2.890000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -3.390000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -3.990000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -4.710000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -5.570000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -6.600000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -7.840000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -9.320000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -1.110000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -1.323000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -1.579000000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -1.886000000000000E+03, /* K = 24 */ +(PID.TID 0000.0001) -2.193000000000000E+03, /* K = 25 */ +(PID.TID 0000.0001) -2.500000000000000E+03 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 10 @ 0.000000000000000E+00, /* K = 1: 10 */ +(PID.TID 0000.0001) 6.131249999999979E-06, /* K = 11 */ +(PID.TID 0000.0001) 5.163157894736825E-06, /* K = 12 */ +(PID.TID 0000.0001) 4.312087912087974E-06, /* K = 13 */ +(PID.TID 0000.0001) 7.134545454545429E-06, /* K = 14 */ +(PID.TID 0000.0001) 2.972727272727263E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.967088607594963E-06, /* K = 16 */ +(PID.TID 0000.0001) 4.152380952380938E-06, /* K = 17 */ +(PID.TID 0000.0001) 5.185903083700454E-06, /* K = 18 */ +(PID.TID 0000.0001) 4.327941176470574E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.814723926380374E-06, /* K = 20 */ +(PID.TID 0000.0001) 4.014322250639390E-06, /* K = 21 */ +(PID.TID 0000.0001) 4.183368869936034E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.181882770870335E-06, /* K = 23 */ +(PID.TID 0000.0001) 4.473615635179155E-06, /* K = 24 */ +(PID.TID 0000.0001) 3.834527687296415E-06 /* K = 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.000000000000000E+05 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+05 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E+10 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+10 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E+10 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+10 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E+10 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 32 @ 1.000000000000000E+10 /* J = 1: 32 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.000000000000000E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'ac02 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=XC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=YC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=XG +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=YG +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=RAC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=RAW +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=RAS +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=RAZ +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXG +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYG +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXF +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYF +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXV +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYU +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=Depth +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rLowC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rLowW +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rLowS +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rSurfC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rSurfW +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rSurfS +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=hFacC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=hFacW +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=hFacS +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: RC.data +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: RF.data +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: DRC.data +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: DRF.data +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: PHrefF.data +(PID.TID 0000.0001) MDS_WRITEVEC_LOC: open file: PHrefC.data +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: u_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: t_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: s_ini.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: surfDiag + nFlds, nActive, freq & phase , nLev + 4 | 4 | -86400.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 23 |ETAN | 1 | 0 | 1 | 0 | + 25 |DETADT2 | 2 | 0 | 1 | 0 | + 73 |PHIBOT | 3 | 0 | 1 | 0 | + 76 |MXLDEPTH| 4 | 0 | 1 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: oceDiag + nFlds, nActive, freq & phase , nLev + 8 | 8 | -86400.000000 0.000000 | 25 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + diag# | name | ipt | iMate | kLev| count | mate.C| + 77 |DRHODR | 5 | 0 | 25 | 0 | + 64 |RHOAnoma| 30 | 0 | 25 | 0 | + 202 |GM_Kwy | 55 | 0 | 25 | 0 | + 203 |GM_Kwz | 80 | 0 | 25 | 0 | + 198 |GM_Kvy | 105 | 0 | 25 | 0 | + 200 |GM_Kvz | 130 | 0 | 25 | 0 | + 205 |GM_PsiY | 155 | 0 | 25 | 0 | + 26 |THETA | 180 | 0 | 25 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 0 +------------------------------------------------------------------------ +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.0895360642305E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0895360642305E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.3630965570878E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1329372896604E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9660365576266E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2067089603386E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161060162421E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249931739521E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898784690958E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1339219678210E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996530790116E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464440295541E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305187600793E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1674738579154E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5220927393398E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9122329831230E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.2720296867243E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4177345171703E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=U.0000000000 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=V.0000000000 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=T.0000000000 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=S.0000000000 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 1 1 1 file=Eta.0000000000 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 1 25 1 25 file=W.0000000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.20530819768183E-16 4.72809962165514E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.87956676727452E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 7.07280941086528E-15 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7370868906469E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.6827726745094E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.0583470662435E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.3202107538264E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.2185313334451E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.0809684758399E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0809684758399E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.4239649523512E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1329339776381E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9660477402808E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.8714856924672E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2666960387447E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.8923372957151E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7101231639958E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.2332568962217E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8252413629084E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3186049022111E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.6160806825161E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1167290727986E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9412848267137E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2068303623561E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161064947941E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249931739522E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898782227379E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1334947302589E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996652309510E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464424066477E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305187600793E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1673897501143E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5225696952702E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9091486513024E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8960105739481E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.6854344532351E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1807659859517E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.9662567262680E-06 +(PID.TID 0000.0001) %MON ke_max = 3.2678807473900E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7723728143941E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 23 ETAN Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -1 50 1 1 file=surfDiag.0000000000 + Computing Diagnostic # 25 DETADT2 Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -2 50 1 1 file=surfDiag.0000000000 + Computing Diagnostic # 73 PHIBOT Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -3 50 1 1 file=surfDiag.0000000000 + Computing Diagnostic # 76 MXLDEPTH Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -4 50 1 1 file=surfDiag.0000000000 + Computing Diagnostic # 77 DRHODR Counter: 1 Parms: SM LR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -1 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 64 RHOAnoma Counter: 1 Parms: SMR MR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -2 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 202 GM_Kwy Counter: 1 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 201 GM_Kwx not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -3 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 203 GM_Kwz Counter: 1 Parms: WM P LR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -4 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 198 GM_Kvy Counter: 1 Parms: VV P MR + Vector Mate for GM_Kvy Diagnostic # 197 GM_Kux not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -5 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 200 GM_Kvz Counter: 1 Parms: VV MR + Vector Mate for GM_Kvz Diagnostic # 199 GM_Kuz not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -6 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 205 GM_PsiY Counter: 1 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -7 50 1 25 file=oceDiag.0000000000 + Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 0 -8 50 1 25 file=oceDiag.0000000000 +(PID.TID 0000.0001) write diagnostics summary to file: diagnostics_status.0000000001.txt + cg2d: Sum(rhs),rhsMax = -1.83880688453542E-16 5.79761418238553E-01 +(PID.TID 0000.0001) cg2d_init_res = 3.67850670054568E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 4.97014432568468E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4903625588713E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.9726478936201E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.7193298339844E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.5953332915983E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.7847971964942E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.9673941524124E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9780069502322E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0428601290118E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0846970768057E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9986295209911E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.5886995118145E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.9002118126398E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.8963818242392E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2593512575840E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4217191326493E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7928915870619E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.2703366140483E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.3581873514199E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.5423461259758E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7571982289883E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2068696794663E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161112666634E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249624431720E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898147784871E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1301567692433E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996760266645E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464111173739E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174699818E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1672595748783E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5236482818383E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8720825020836E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7640762525503E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.2252628827785E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.9951738984974E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 2.0666559250889E-05 +(PID.TID 0000.0001) %MON ke_max = 3.1825070610206E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.1289885023911E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.85722573273506E-16 5.55053764158290E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.35014981960376E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 3.58046376983830E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4970228332610E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.7801246762726E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.8478444417318E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.8730237457949E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5609676914481E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.9929371747736E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0126522344931E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0858064837612E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1035111245488E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1454014707482E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6440372742584E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2314197739910E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1276426007399E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2065564489002E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2097005260626E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7165838349389E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6167276359952E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.7154161771268E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4848691650155E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3379439559141E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2069721707167E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161156222956E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249569770110E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898044227790E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1292114348616E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996865975297E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464477381427E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305167419260E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1671787966048E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5239358180753E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8845548044175E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.3233111186367E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7070126839052E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.5391507665842E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.1880055118597E-05 +(PID.TID 0000.0001) %MON ke_max = 3.2138147127806E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.1598424252198E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 8.24340595784179E-15 5.37248443227340E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.32116196389891E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 1.78289654582397E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.3261620078224E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.8416999673759E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.7601928710937E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.0382632051604E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4852872391029E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.2001550536770E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.2528339049054E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9241491823699E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1400412347318E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3212149576181E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0422738425381E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1176700257695E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5490852520629E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3386106752362E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.3693017810250E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5946413887346E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2568300302673E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0451995240681E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4972267955477E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8783757565443E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2070883616790E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161120922471E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249620919036E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898146607920E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1280339123773E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1996968573894E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464560318236E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305168842415E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1671066403509E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5245974792242E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9710202057660E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0236120927701E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5765900857718E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3129659998216E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8336566479189E-05 +(PID.TID 0000.0001) %MON ke_max = 3.4327686118640E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.5857752597617E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 9.32587340685131E-15 5.29639505907390E-01 +(PID.TID 0000.0001) cg2d_init_res = 6.79987065422486E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 4.01133830009813E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1970499496620E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.8620219794136E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.0744425455729E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.3476042863949E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4851817219948E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.4945222503654E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5721985658312E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.3899766300306E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1749358480292E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5048480473652E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0671912769948E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1259083028459E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.0503693853687E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3719815273106E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.9490351159095E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6080782472247E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3388528103519E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.0049183079325E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.7814906829506E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2103992018786E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2071966409334E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161116433650E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249666115030E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898232195382E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1264775797299E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997066683532E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464420140565E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173130994E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1670227145534E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5256194290110E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0859914836992E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0532698902451E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6263039513176E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2430358683842E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5641260726091E-05 +(PID.TID 0000.0001) %MON ke_max = 3.7008245227847E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.9930606973071E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.55812862612237E-14 5.27379048542406E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.58573219533937E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 1.52027298286504E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1567425220402E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9587461331360E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.7084045410156E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.1390580617425E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4862492895568E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7582409160670E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8487073981706E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.5748565685136E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2050757486971E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6835048968054E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.7622233484589E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.9924625998219E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.1946949829537E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1255742258879E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.9667171244716E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5248830597227E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1560275720404E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9187029094621E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.1823508538569E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3538049723256E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2072961478937E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161115665763E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249685225155E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898266428153E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1249320968539E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997159694731E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464574808204E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305175571138E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1669353248787E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5265463535163E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1855346633414E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.5972865359359E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2682723763589E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0557110462163E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4869499199980E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9346953936856E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.3221134642830E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.76005043872607E-14 5.28677053007575E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.21809912187597E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 4.88576138071473E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1775288608211E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9612572374163E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0137557983398E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.2474440664401E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4855733256433E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.9684094754103E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.0562187486835E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.5273906366384E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2272412935549E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.8386993614182E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.9074310462833E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8464748396643E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0494915340098E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.6438628350072E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5458200696725E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5335632192306E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8510267917741E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4905800952094E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.2101166240477E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3389648467043E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2073879266427E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161111568471E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249683439425E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898260350577E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1235429259540E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997247653887E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464535065017E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305175506942E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1668502027016E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5272599437142E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2602387495261E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.8466751766620E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.5816205446909E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5049543391348E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5268163654465E-05 +(PID.TID 0000.0001) %MON ke_max = 4.1120200302967E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.5670419584431E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.76247905159244E-14 5.30850369849857E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.85139983446492E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 7.33778843151839E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2111405083425E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0549423075670E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1409123738607E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4224799623817E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4857813393647E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1067447047492E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.1840146361425E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.3038173082735E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2398458379024E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.9540703410869E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3605863934601E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1949666716302E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.0915450695546E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.8225396835188E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.9097921498939E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3652822143481E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4881021920619E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3712071460512E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0327997417267E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2099076236327E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2074738949267E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161111421938E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249673571511E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898238616070E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1223894195318E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997330921240E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464495807474E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174446594E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1667664080941E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5281532989777E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3062452690113E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9298111016456E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.8167233831073E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.8239392647747E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5923114626599E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2219768377641E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.7029180596678E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.02372840707454E-14 5.32027742920738E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.93819970537901E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 7.32637502066610E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2281700952001E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.1164279227426E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0945002237956E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5073487260986E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4858494197764E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1625063935484E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.2301318224580E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.1758491415317E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2423476411327E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.0186616214325E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.4593533887480E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.5143128198942E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.0393207837965E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7550742256692E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3509376091714E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0915038333076E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0714599471827E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1253486952279E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1138808614151E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0233566680146E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2075560313525E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161103174647E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249666629018E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898222559561E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1215326821863E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997410017940E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464458559481E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173709913E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1666824166369E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5292139041327E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3228474560849E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6251526151619E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9266651719496E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9428967706984E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6245628564484E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2612328611706E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.7243270140544E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.91444082808800E-14 5.32122413852794E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.54948116214806E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 6.78325983782281E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2256152243371E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.1008639098498E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2041727701823E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4940636865233E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4853402881241E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1333590668532E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.1957413580537E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5339149866547E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2347472971950E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.0278439320893E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7882791023923E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.7485345392662E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1560568585961E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1157506567813E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1277694773703E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.8278047379988E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1493855577736E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.7717351980889E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1660832701322E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8344641572549E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2076352113161E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161103787090E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249665712137E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898218248054E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1209943830724E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997485392615E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464421603059E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173618769E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1665979924942E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5304461405992E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3104668888993E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3637804768612E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.2456666778220E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.8702333456042E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6194929971874E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2301460965268E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.6359515066969E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.17950657521726E-14 5.31948576874445E-01 +(PID.TID 0000.0001) cg2d_init_res = 5.16848123283704E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 6.10837350163162E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 11 +(PID.TID 0000.0001) %MON time_secondsf = 3.9600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2167233896117E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0516963049270E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2884140014648E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4493432955173E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4849673237553E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.0264837670642E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.0864838452209E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.0637694007167E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2180205869603E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.9835739714938E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.7261700695635E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7609158946415E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3069479357154E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.8058617374208E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2917305577587E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0311219936763E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7634717642824E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.9125103083041E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0106696376114E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6793139954541E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2077111887462E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161116512927E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249668003613E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898220206458E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1207528921349E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997557229353E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464384410925E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173857952E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1665134339115E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5316644076428E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2711341842795E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0739297220709E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.7047203852513E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0675192423776E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6024849526881E-05 +(PID.TID 0000.0001) %MON ke_max = 4.1338729219781E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.4474901797179E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.27283469822481E-14 5.32116907063542E-01 +(PID.TID 0000.0001) cg2d_init_res = 3.73984576578029E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 5.45161577886277E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2118263946745E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0046991470269E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2241999308268E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4239289172554E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4853290002342E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8657101999411E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9241073867230E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.9361594910256E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1943901914958E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.8939023516983E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.1381615761024E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.1688618606374E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.8749662051265E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.9623139458899E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.6504109733887E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5224850988346E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1711954436350E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3526554274527E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.9201707566221E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5628068557025E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2077838537267E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161140481429E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249670015132E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898221626507E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1207510735290E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997625893121E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464347349474E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174065460E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1664289087654E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5329883540902E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2126786592203E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5807902698295E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1813049745791E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2994354720371E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5928593739454E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9850654244022E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.1807694577369E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.23085439010617E-14 5.32680857781279E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.30541574443954E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 4.92125869161270E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 13 +(PID.TID 0000.0001) %MON time_secondsf = 4.6800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2128230337581E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9738716620239E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3182957967122E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4255331272029E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4863775811646E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8730877064347E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9317717689851E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1599414423562E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1671597697972E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7717342130661E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.8320843503097E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8127907504047E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.4880489412322E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1071672926220E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.9382974728745E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8651584402028E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3373817273285E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3986467960453E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4936044881766E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4629046004210E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2078535897789E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161174778058E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249670447999E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898219966573E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1209086621973E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997691851785E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464310752377E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174111135E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1663444642275E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5343238502454E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2154378368346E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.8195503661115E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2641414838567E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3905556322424E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5934661036994E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9888431467194E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.8703251500305E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.31273333817228E-14 5.33378934077335E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.21822284698632E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 4.41628044911053E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 14 +(PID.TID 0000.0001) %MON time_secondsf = 5.0400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2157665012143E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9644433930111E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.4549891153971E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4382572529160E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4876947403521E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8543649737755E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9110856404107E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2779894175399E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1401432966247E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6330186798858E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7038763253093E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6297476511548E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2492103127340E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0972261602661E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.9673331299949E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0053539227254E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2488457955441E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7089326257448E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.5761944767530E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3506587136895E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2079211709152E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161195365232E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669868353E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898216328311E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1211319135347E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997755645070E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464274741511E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174053580E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1662600841221E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5355304895878E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2079908305479E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.7733954771114E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2256715554940E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3482387110434E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5982825996009E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9705046156739E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.5575211540212E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.54275767108680E-14 5.33961176215479E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.87423366692824E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 3.59949231405612E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 15 +(PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2177791787306E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9726233643855E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8291473388672E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4472483321028E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4888821139511E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8148386359568E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8677662550722E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3491356503314E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1169313741675E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4946302344404E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7560999390704E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.6528515324857E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0640587829135E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.7310913872575E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.6721427478063E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9387020578764E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9143851025424E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1926607962031E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1556872722232E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2124975224103E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2079874315564E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161188273519E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669242291E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898212597663E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1213227834944E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997817803670E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464239334172E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173990888E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1661757209223E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5366619074175E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1923958518260E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.4321959780653E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0790246408892E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1869271049781E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6016903983568E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9323846834670E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.2832147404376E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.12319614614864E-14 5.34323669539976E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.55416669974251E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 +(PID.TID 0000.0001) cg2d_last_res = 2.17310808178273E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 16 +(PID.TID 0000.0001) %MON time_secondsf = 5.7600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2181161314724E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9904499000049E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1400451660156E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4485051239429E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4897242316679E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7615158767223E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8096498131220E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.0876419765110E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1003060410147E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3722708392968E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0931516595138E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.0011212517055E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0142107120014E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.6432580839393E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1130297568497E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6858781012549E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3780348548366E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4597239270752E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.3388178690896E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0642421677629E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2080530338731E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161191314432E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669028835E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898209672348E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1213895523749E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997878779539E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464204534153E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173969520E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1660913332086E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5377196166156E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1714739327239E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8335345974250E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.5542639234462E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0509690315791E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6021670366872E-05 +(PID.TID 0000.0001) %MON ke_max = 3.8813481308484E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.0815076968858E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.69114461218345E-14 5.34471069236959E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.35539622560337E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 27 +(PID.TID 0000.0001) cg2d_last_res = 5.00017806319736E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 17 +(PID.TID 0000.0001) %MON time_secondsf = 6.1200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2175031970836E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0092851131274E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3082097371419E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4455482394811E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4901515397032E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7021274720239E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7454507038925E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.0565156364787E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0919510862308E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2787323303487E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0271710794494E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.1236402256143E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1771919283266E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.3437424407468E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.4749093198930E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2863947353828E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.9815149441858E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2024356957367E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3771432044158E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9526370753142E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2081184103935E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161209731066E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669146180E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898207394791E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1212573094620E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997938912041E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464170362001E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173981129E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1660069296793E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5388930503689E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1483622534013E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4845104812212E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.5441092300368E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.2985201530405E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6010457510341E-05 +(PID.TID 0000.0001) %MON ke_max = 3.8250696176707E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.9756133996249E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.98535371370912E-14 5.34434577188891E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.08863501736812E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 5.84328671325410E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 18 +(PID.TID 0000.0001) %MON time_secondsf = 6.4800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2168376521822E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0224171801757E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1918614705404E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4427597329244E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4901515746569E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.6443908458933E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6837778957822E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.8505357494937E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0924235320686E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2227588391793E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.5546348804135E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.6840472403814E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5068363874704E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2395290478787E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0430661688219E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.0536717167642E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.8803866737158E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8570151413311E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.7523509285267E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9360555554012E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2081838001961E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161212828076E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669332181E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898205254685E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1208943704986E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1997998421130E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464136847762E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173999176E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1659225276128E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5400930751314E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1261600424816E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3262570065373E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.0112826202927E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.6124108823219E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5999886758956E-05 +(PID.TID 0000.0001) %MON ke_max = 3.7711208559426E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.9757116868489E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.77579911781112E-14 5.34229001475528E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.05210478774211E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 2.28308701792265E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 19 +(PID.TID 0000.0001) %MON time_secondsf = 6.8400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2164997817881E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0267168927023E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1966298421224E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4419371700720E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4897240489806E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.5953431451879E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6322746399162E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.2255231420128E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1012657759703E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2085381628956E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2902181156705E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4192850574566E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.5495513183010E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.4526176412748E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0664074378117E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.6359019130954E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2727188902712E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0029956540745E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.9680935031130E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0418410085978E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2082492890089E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161213899580E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669423912E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898202935172E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1202778648802E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998057411109E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464104015193E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174007256E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1658381727588E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5412974067520E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1076188703698E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2309426206844E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.3012724822040E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.9334015261456E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5996769230616E-05 +(PID.TID 0000.0001) %MON ke_max = 3.7261851801159E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.0783564109814E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 3.74492103993873E-14 5.33856599893064E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.38143207839892E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 3.46268008238492E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2163952564952E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0229345516979E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3504892985026E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4425835443104E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4888863371743E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.5606127540176E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5967967873335E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.1460904711061E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1171497251914E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2356522624492E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0664736077833E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.2526799181261E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.9919623577640E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.5060837888459E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5322099568509E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5170059493437E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4463550944605E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1697786371686E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7739529453243E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2390298215050E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2083148231181E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161210913087E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669410902E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898200411320E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1194287954042E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998115877359E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464071875759E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305174004462E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1657538010677E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5424551036908E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0948468434401E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5309647705254E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.5509382762936E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.3060321039230E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5999218975306E-05 +(PID.TID 0000.0001) %MON ke_max = 3.6953336975228E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.2673261274674E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.11753964257855E-14 5.33327992314131E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.77973176368105E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 1.59010246174419E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 21 +(PID.TID 0000.0001) %MON time_secondsf = 7.5600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2162860730338E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0145896554164E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.4455388387044E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4435629313751E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4876953941704E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.5437464758205E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5807545347495E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7499846789878E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1380192078961E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2993000456195E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.7439442961519E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9682340737978E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0284300511572E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.1671818606385E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1835397243911E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0102082327374E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4893427497312E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7160042371906E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.6050187066600E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4615044865765E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2083802130542E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161195744822E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669355467E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898197805315E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1184031520083E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998173717701E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464040431897E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173997233E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1656694320141E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5432763643668E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0890716325098E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1485642665672E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.8470315492386E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0831734704162E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6002931188966E-05 +(PID.TID 0000.0001) %MON ke_max = 3.6814704701562E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.5159408195729E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.28927726670025E-14 5.32674890087575E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.08261848438250E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 2.67156029019955E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 22 +(PID.TID 0000.0001) %MON time_secondsf = 7.9200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2160291818577E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0060387418514E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7043024698893E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4442098095274E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4862563316191E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.5457926211412E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5847946070270E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2570598399554E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1612652714275E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3907658330507E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7935894514569E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0205110887841E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0433357231196E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.9826915254225E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.7467804507773E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2873019519812E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3963276859157E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2585750221164E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1508047585586E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6452861626507E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2084452790149E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161165707974E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669310412E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898195213638E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1172283607682E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998230833732E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0464009682355E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173991027E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1655850549476E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5440184233100E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0905260585297E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5273839919623E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1510741008079E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2661815108887E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6005383315677E-05 +(PID.TID 0000.0001) %MON ke_max = 3.6850894983163E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7906700854049E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 4.78124484448728E-14 5.31948572119835E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.25885976334855E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 5.04956694498755E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 23 +(PID.TID 0000.0001) %MON time_secondsf = 8.2800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2156238207666E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0006169092029E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.1010309855143E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4444803139126E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4847103380521E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.6166343089165E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6684813378390E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.8682091680632E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1839804464094E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4982548884663E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.1252153929890E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3227097038744E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.6926831714387E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.8329659710433E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.0468467238062E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3247151626460E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1797091050349E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.7493439734923E-12 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.2893093989799E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7466251087943E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2085095035150E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161137702033E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669290796E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898192666927E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1159325075841E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998286918504E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463979625548E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173987483E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1655006789755E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5450881652010E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1206532816220E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6361754933948E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1957761131066E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3153537244172E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6006408774735E-05 +(PID.TID 0000.0001) %MON ke_max = 3.7645870999851E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.0555887859757E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 5.38215305656564E-14 5.31210369500917E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.30853134031130E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 6.13142917422770E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 24 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2151507378368E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9995939103529E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4367243448893E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4446181576764E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4832119104200E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7513311300546E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8103330553490E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.6952129379806E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2032981800797E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6081733902768E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7295101597398E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.8749880933317E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4677898926001E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.8175802466164E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.0154256650810E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1262242888977E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1397952484675E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.9676570881035E-12 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.0142055733922E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7459590573588E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2085724409755E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161115609438E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669286749E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898190130445E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1146073992264E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998341704108E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463950260572E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173985726E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1654163071206E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5466143254174E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1717198999257E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.4749957135994E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1189272553324E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2308199808656E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6006931341325E-05 +(PID.TID 0000.0001) %MON ke_max = 3.8857977433533E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.2770637871725E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 5.96883653614100E-14 5.30521547880261E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.22573330943446E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 6.76957625937645E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 25 +(PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2148084530560E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.0021768549496E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4224192301432E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4448438148597E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4819069040233E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8417485284653E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9049248277175E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.7413740168391E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2167737953428E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7067490991877E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6775369533569E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7599270094175E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.8798434078117E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2506566857022E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.6781243015127E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7216240957295E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0042382544654E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.2036163859010E-12 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4143337348450E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6474874599269E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2086336970563E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.2161102953928E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 7.8249669284452E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4898187562342E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1133624519778E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 1.1998394961455E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.0463921586866E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 1.1305173984485E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1653319490937E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.5484684162470E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2057729379783E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0735737233903E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.3378654473569E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0271651992093E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6007786827561E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9667627564973E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.4280263747314E-05 +(PID.TID 0000.0001) %MON ke_vol = 6.5555965471909E+14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=U.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=V.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=T.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=S.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 1 1 1 file=Eta.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=W.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 25 1 25 file=PH.0000000025 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 1 1 1 1 file=PHL.0000000025 + Computing Diagnostic # 23 ETAN Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -1 50 1 1 file=surfDiag.0000000024 + Computing Diagnostic # 25 DETADT2 Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -2 50 1 1 file=surfDiag.0000000024 + Computing Diagnostic # 73 PHIBOT Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -3 50 1 1 file=surfDiag.0000000024 + Computing Diagnostic # 76 MXLDEPTH Counter: 1 Parms: SM M1 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -4 50 1 1 file=surfDiag.0000000024 + Computing Diagnostic # 77 DRHODR Counter: 1 Parms: SM LR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -1 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 64 RHOAnoma Counter: 1 Parms: SMR MR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -2 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 202 GM_Kwy Counter: 1 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 201 GM_Kwx not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -3 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 203 GM_Kwz Counter: 1 Parms: WM P LR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -4 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 198 GM_Kvy Counter: 1 Parms: VV P MR + Vector Mate for GM_Kvy Diagnostic # 197 GM_Kux not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -5 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 200 GM_Kvz Counter: 1 Parms: VV MR + Vector Mate for GM_Kvz Diagnostic # 199 GM_Kuz not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -6 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 205 GM_PsiY Counter: 1 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX not enabled +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -7 50 1 25 file=oceDiag.0000000024 + Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 24 -8 50 1 25 file=oceDiag.0000000024 +(PID.TID 0000.0001) write diagnostics summary to file: diagnostics_status.0000000025.txt +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -1 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -2 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -3 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -4 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -5 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -6 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -7 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -8 25 1 25 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -201 1 1 1 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -202 1 1 1 file=pickup.ckptA +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 25 -203 1 1 1 file=pickup.ckptA +(PID.TID 0000.0001) %CHECKPOINT 25 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.0640649511478841 +(PID.TID 0000.0001) System time: 1.2493999674916267E-002 +(PID.TID 0000.0001) Wall clock time: 1.0766191482543945 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.3934999471530318E-002 +(PID.TID 0000.0001) System time: 8.0399997532367706E-003 +(PID.TID 0000.0001) Wall clock time: 2.1975994110107422E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.0500869639217854 +(PID.TID 0000.0001) System time: 4.4489996507763863E-003 +(PID.TID 0000.0001) Wall clock time: 1.0546019077301025 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 8.5300002247095108E-003 +(PID.TID 0000.0001) System time: 4.2650001123547554E-003 +(PID.TID 0000.0001) Wall clock time: 1.2796163558959961E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.0415370501577854 +(PID.TID 0000.0001) System time: 1.7699971795082092E-004 +(PID.TID 0000.0001) Wall clock time: 1.0417799949645996 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.0413330290466547 +(PID.TID 0000.0001) System time: 1.7399992793798447E-004 +(PID.TID 0000.0001) Wall clock time: 1.0415759086608887 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 1.0409349724650383 +(PID.TID 0000.0001) System time: 1.7100013792514801E-004 +(PID.TID 0000.0001) Wall clock time: 1.0411748886108398 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.3189999461174011E-004 +(PID.TID 0000.0001) System time: 2.8000213205814362E-005 +(PID.TID 0000.0001) Wall clock time: 9.6344947814941406E-004 +(PID.TID 0000.0001) No. starts: 50 +(PID.TID 0000.0001) No. stops: 50 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.5605528652667999E-004 +(PID.TID 0000.0001) System time: 1.2000091373920441E-005 +(PID.TID 0000.0001) Wall clock time: 6.6971778869628906E-004 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 2.1075271070003510E-004 +(PID.TID 0000.0001) System time: 6.0005113482475281E-006 +(PID.TID 0000.0001) Wall clock time: 2.1481513977050781E-004 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0891800522804260E-004 +(PID.TID 0000.0001) System time: 2.9997900128364563E-006 +(PID.TID 0000.0001) Wall clock time: 2.2006034851074219E-004 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.18126105703413486 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.18129849433898926 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.37275800853967667 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.37280488014221191 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.32615904137492180 +(PID.TID 0000.0001) System time: 1.1199992150068283E-004 +(PID.TID 0000.0001) Wall clock time: 0.32631421089172363 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.1565072238445282E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.1586656570434570E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4388978481292725E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.4394044876098633E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.9870014190673828E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.9850940704345703E-003 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.2105170190334320E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.2156705856323242E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.1980832815170288E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.1991710662841797E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.3053003251552582E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.3078193664550781E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.1529278755187988E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.1547756195068359E-003 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1348426342010498E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1329650878906250E-003 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 7724 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 7724 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/front_relax/results/output.txt b/verification/front_relax/results/output.txt index d6a262a22b..39a8477978 100644 --- a/verification/front_relax/results/output.txt +++ b/verification/front_relax/results/output.txt @@ -5,25 +5,24 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 11:44:51 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68j +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Oct 6 17:23:06 EDT 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "eedata" file (PID.TID 0000.0001) ># Lines beginning "#" are comments -(PID.TID 0000.0001) ># nTx - No. threads per process in X -(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) (PID.TID 0000.0001) > &EEPARMS -(PID.TID 0000.0001) > nTx=1, -(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) ># debugMode=.TRUE., (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -49,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -93,18 +94,21 @@ (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># Continuous equation parameters (PID.TID 0000.0001) > &PARM01 -(PID.TID 0000.0001) > tRef=29.,28.,27.,26.,25.,24.,23.,22.,21.,20.,19.,18.,17.,16.,15.,10*0., -(PID.TID 0000.0001) > viscAr=1.E-3, -(PID.TID 0000.0001) > viscA4=1.E11, +(PID.TID 0000.0001) > tRef= 25*17.5, +(PID.TID 0000.0001) > viscAr=2.E-4, +(PID.TID 0000.0001) > viscAh=3.E+2, (PID.TID 0000.0001) > no_slip_sides=.FALSE., (PID.TID 0000.0001) > no_slip_bottom=.FALSE., (PID.TID 0000.0001) > diffKrT=3.E-5, (PID.TID 0000.0001) > diffKrS=3.E-5, (PID.TID 0000.0001) > diffKhT=0.E3, (PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) >#ivdc_kappa=1., (PID.TID 0000.0001) > beta=0.E-11, (PID.TID 0000.0001) > f0 =1.E-4, -(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > selectCoriScheme=1, +(PID.TID 0000.0001) > gravity= 10., +(PID.TID 0000.0001) > buoyancyRelation='OCEANIC', (PID.TID 0000.0001) > eosType='LINEAR', (PID.TID 0000.0001) > tAlpha=2.E-4, (PID.TID 0000.0001) > sBeta =0.E-4, @@ -112,9 +116,17 @@ (PID.TID 0000.0001) > rhoNil=1000., (PID.TID 0000.0001) > rigidLid=.FALSE., (PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., (PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE. +(PID.TID 0000.0001) > tempAdvScheme=20, +(PID.TID 0000.0001) > saltAdvScheme=20, +(PID.TID 0000.0001) >#momStepping=.FALSE., (PID.TID 0000.0001) > readBinaryPrec=64, (PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > globalFiles=.TRUE., +(PID.TID 0000.0001) > debugLevel=2, +(PID.TID 0000.0001) > plotLevel=0, (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Elliptic solver parameters @@ -126,22 +138,28 @@ (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 (PID.TID 0000.0001) > startTime=0., -(PID.TID 0000.0001) > nTimeSteps=20, (PID.TID 0000.0001) > deltaT=1800., -(PID.TID 0000.0001) > cAdjFreq=-1., (PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > momDissip_In_AB=.FALSE., (PID.TID 0000.0001) > pChkptFreq=0., (PID.TID 0000.0001) > chkptFreq =0., -(PID.TID 0000.0001) > dumpFreq=8640000., +(PID.TID 0000.0001) > dumpFreq=864000., (PID.TID 0000.0001) > monitorSelect=1, +(PID.TID 0000.0001) >#- very short run: +(PID.TID 0000.0001) > nTimeSteps=20, (PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) >#- longer run: +(PID.TID 0000.0001) >#nTimeSteps=4321, +(PID.TID 0000.0001) >#monitorFreq=86400., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters (PID.TID 0000.0001) > &PARM04 (PID.TID 0000.0001) > usingCartesianGrid=.TRUE., -(PID.TID 0000.0001) > delR= 50., 50., 55., 60., 65., 70., 80., 95., -(PID.TID 0000.0001) > 120., 155., 200., 260., 320., 400., 480., 10*1., +(PID.TID 0000.0001) >#delR= 50., 50., 55., 60., 65., 70., 80., 95., +(PID.TID 0000.0001) ># 120., 155., 200., 260., 320., 400., 480., 10*1., +(PID.TID 0000.0001) > delRc= 25., 50., 52.5, 57.5, 62.5, 67.5, 75., 87.5, +(PID.TID 0000.0001) > 107.5, 137.5, 177.5, 230., 290., 360., 440., 480., 10*400., (PID.TID 0000.0001) > delX=1*10.E3, (PID.TID 0000.0001) >#delY=32*10.E3, (PID.TID 0000.0001) > delYfile='dy.bin', @@ -149,9 +167,10 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Input datasets (PID.TID 0000.0001) > &PARM05 -(PID.TID 0000.0001) > hydrogThetaFile='theta.bin', -(PID.TID 0000.0001) > hydrogSaltFile ='salt.bin', -(PID.TID 0000.0001) > bathyFile ='topog.bin', +(PID.TID 0000.0001) > bathyFile ='bathy_inZ.bin', +(PID.TID 0000.0001) > hydrogThetaFile='Tini_+10l.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='Sini_Ydir.bin', +(PID.TID 0000.0001) >#hydrogSaltFile ='Sini_Patch.bin', (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 @@ -170,10 +189,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.pkg" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># Packages (lines beginning "#" are comments) (PID.TID 0000.0001) > &PACKAGES (PID.TID 0000.0001) > useGMRedi=.TRUE., -(PID.TID 0000.0001) > useKPP=.FALSE., +(PID.TID 0000.0001) ># useDiagnostics=.TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg @@ -199,19 +218,19 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># GM-Redi parameters (PID.TID 0000.0001) > &GM_PARM01 -(PID.TID 0000.0001) > GM_background_K=1000.d0, -(PID.TID 0000.0001) ># GM_taper_scheme=' ', -(PID.TID 0000.0001) > GM_maxSlope=1.000000000000000E-02 -(PID.TID 0000.0001) ># GM_Scrit, -(PID.TID 0000.0001) ># GM_Sd +(PID.TID 0000.0001) ># GM_AdvForm=.TRUE., +(PID.TID 0000.0001) > GM_background_K=1000., +(PID.TID 0000.0001) ># GM_isopycK = 0., +(PID.TID 0000.0001) ># GM_taper_scheme='orig', +(PID.TID 0000.0001) ># GM_taper_scheme='linear', +(PID.TID 0000.0001) > GM_maxSlope =1.E-02, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) MDS_READVEC_LOC: open file: dy.bin (PID.TID 0000.0001) S/R LOAD_GRID_SPACING: delY loaded from file: dy.bin -(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= F ; setCenterDr= T (PID.TID 0000.0001) %MON XC_max = 5.0000000000000E+03 (PID.TID 0000.0001) %MON XC_min = 5.0000000000000E+03 (PID.TID 0000.0001) %MON XC_mean = 5.0000000000000E+03 @@ -284,119 +303,44 @@ (PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: topog.bin -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) -(PID.TID 0000.0001) // CMIN = -2.460000000000000E+03 -(PID.TID 0000.0001) // CMAX = -2.460000000000000E+03 -(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 -(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ -(PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 4: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 35: -2: -1) -(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // END OF FIELD = -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) -(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 -(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 -(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 -(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ -(PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 4: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 35: -2: -1) -(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // END OF FIELD = -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacC at iteration 0 -(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 -(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 -(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 -(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ -(PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 4: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 35: -2: -1) -(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // END OF FIELD = -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacW at iteration 0 -(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 -(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 -(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 -(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ -(PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 4: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 35: -2: -1) -(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // END OF FIELD = -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacS at iteration 0 -(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 -(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 -(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 -(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ -(PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 4: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 35: -2: -1) -(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // END OF FIELD = -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_inZ.bin (PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 (PID.TID 0000.0001) (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // GAD parameters : (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ (PID.TID 0000.0001) F @@ -438,24 +382,9 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ -(PID.TID 0000.0001) 2.900000000000000E+01, /* K = 1 */ -(PID.TID 0000.0001) 2.800000000000000E+01, /* K = 2 */ -(PID.TID 0000.0001) 2.700000000000000E+01, /* K = 3 */ -(PID.TID 0000.0001) 2.600000000000000E+01, /* K = 4 */ -(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 5 */ -(PID.TID 0000.0001) 2.400000000000000E+01, /* K = 6 */ -(PID.TID 0000.0001) 2.300000000000000E+01, /* K = 7 */ -(PID.TID 0000.0001) 2.200000000000000E+01, /* K = 8 */ -(PID.TID 0000.0001) 2.100000000000000E+01, /* K = 9 */ -(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 10 */ -(PID.TID 0000.0001) 1.900000000000000E+01, /* K = 11 */ -(PID.TID 0000.0001) 1.800000000000000E+01, /* K = 12 */ -(PID.TID 0000.0001) 1.700000000000000E+01, /* K = 13 */ -(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 14 */ -(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 15 */ -(PID.TID 0000.0001) 10 @ 0.000000000000000E+00 /* K = 16: 25 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) 25 @ 1.750000000000000E+01 /* K = 1: 25 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 25 @ 3.000000000000000E+01 /* K = 1: 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -465,19 +394,19 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) 3.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+11 +(PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ (PID.TID 0000.0001) F @@ -486,7 +415,7 @@ (PID.TID 0000.0001) 2.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ -(PID.TID 0000.0001) 25 @ 1.000000000000000E-03 /* K = 1: 25 */ +(PID.TID 0000.0001) 25 @ 2.000000000000000E-04 /* K = 1: 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) F @@ -551,7 +480,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -561,6 +490,9 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -580,10 +512,10 @@ (PID.TID 0000.0001) 1.000000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ -(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) 1.000000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ -(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) 1.000000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ (PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ @@ -615,28 +547,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -658,7 +593,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -667,10 +602,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -712,8 +647,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) F @@ -734,41 +670,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ -(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -776,7 +690,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ (PID.TID 0000.0001) F @@ -785,7 +699,7 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ (PID.TID 0000.0001) T @@ -832,8 +746,14 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 64 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ (PID.TID 0000.0001) F @@ -851,14 +771,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -875,6 +798,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -894,7 +820,7 @@ (PID.TID 0000.0001) 1.800000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ (PID.TID 0000.0001) 0 @@ -903,7 +829,7 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ (PID.TID 0000.0001) T @@ -947,14 +873,11 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ -(PID.TID 0000.0001) 8.640000000000000E+06 +(PID.TID 0000.0001) 8.640000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ (PID.TID 0000.0001) T @@ -1001,6 +924,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1041,26 +976,28 @@ (PID.TID 0000.0001) 2.900000000000000E+02, /* K = 13 */ (PID.TID 0000.0001) 3.600000000000000E+02, /* K = 14 */ (PID.TID 0000.0001) 4.400000000000000E+02, /* K = 15 */ -(PID.TID 0000.0001) 2.405000000000000E+02, /* K = 16 */ -(PID.TID 0000.0001) 9 @ 1.000000000000000E+00, /* K = 17: 25 */ -(PID.TID 0000.0001) 5.000000000000000E-01 /* K = 26 */ +(PID.TID 0000.0001) 4.800000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 10 @ 4.000000000000000E+02 /* K = 17: 26 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ -(PID.TID 0000.0001) 2 @ 5.000000000000000E+01, /* K = 1: 2 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 5.125000000000000E+01, /* K = 2 */ (PID.TID 0000.0001) 5.500000000000000E+01, /* K = 3 */ (PID.TID 0000.0001) 6.000000000000000E+01, /* K = 4 */ (PID.TID 0000.0001) 6.500000000000000E+01, /* K = 5 */ -(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 6 */ -(PID.TID 0000.0001) 8.000000000000000E+01, /* K = 7 */ -(PID.TID 0000.0001) 9.500000000000000E+01, /* K = 8 */ -(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 9 */ -(PID.TID 0000.0001) 1.550000000000000E+02, /* K = 10 */ -(PID.TID 0000.0001) 2.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 7.125000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 8.125000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 9.750000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.225000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 1.575000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 2.037500000000000E+02, /* K = 11 */ (PID.TID 0000.0001) 2.600000000000000E+02, /* K = 12 */ -(PID.TID 0000.0001) 3.200000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.250000000000000E+02, /* K = 13 */ (PID.TID 0000.0001) 4.000000000000000E+02, /* K = 14 */ -(PID.TID 0000.0001) 4.800000000000000E+02, /* K = 15 */ -(PID.TID 0000.0001) 10 @ 1.000000000000000E+00 /* K = 16: 25 */ +(PID.TID 0000.0001) 4.600000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 8 @ 4.000000000000000E+02, /* K = 17: 24 */ +(PID.TID 0000.0001) 6.000000000000000E+02 /* K = 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ (PID.TID 0000.0001) 1.000000000000000E+04 /* I = 1 */ @@ -1078,13 +1015,13 @@ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ (PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ @@ -1164,44 +1101,44 @@ (PID.TID 0000.0001) -1.420000000000000E+03, /* K = 13 */ (PID.TID 0000.0001) -1.780000000000000E+03, /* K = 14 */ (PID.TID 0000.0001) -2.220000000000000E+03, /* K = 15 */ -(PID.TID 0000.0001) -2.460500000000000E+03, /* K = 16 */ -(PID.TID 0000.0001) -2.461500000000000E+03, /* K = 17 */ -(PID.TID 0000.0001) -2.462500000000000E+03, /* K = 18 */ -(PID.TID 0000.0001) -2.463500000000000E+03, /* K = 19 */ -(PID.TID 0000.0001) -2.464500000000000E+03, /* K = 20 */ -(PID.TID 0000.0001) -2.465500000000000E+03, /* K = 21 */ -(PID.TID 0000.0001) -2.466500000000000E+03, /* K = 22 */ -(PID.TID 0000.0001) -2.467500000000000E+03, /* K = 23 */ -(PID.TID 0000.0001) -2.468500000000000E+03, /* K = 24 */ -(PID.TID 0000.0001) -2.469500000000000E+03 /* K = 25 */ +(PID.TID 0000.0001) -2.700000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -3.100000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -3.500000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.900000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -4.300000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.700000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -5.100000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.500000000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -5.900000000000000E+03, /* K = 24 */ +(PID.TID 0000.0001) -6.300000000000000E+03 /* K = 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ (PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ (PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ -(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 3 */ -(PID.TID 0000.0001) -1.550000000000000E+02, /* K = 4 */ -(PID.TID 0000.0001) -2.150000000000000E+02, /* K = 5 */ -(PID.TID 0000.0001) -2.800000000000000E+02, /* K = 6 */ -(PID.TID 0000.0001) -3.500000000000000E+02, /* K = 7 */ -(PID.TID 0000.0001) -4.300000000000000E+02, /* K = 8 */ -(PID.TID 0000.0001) -5.250000000000000E+02, /* K = 9 */ -(PID.TID 0000.0001) -6.450000000000000E+02, /* K = 10 */ -(PID.TID 0000.0001) -8.000000000000000E+02, /* K = 11 */ -(PID.TID 0000.0001) -1.000000000000000E+03, /* K = 12 */ -(PID.TID 0000.0001) -1.260000000000000E+03, /* K = 13 */ -(PID.TID 0000.0001) -1.580000000000000E+03, /* K = 14 */ -(PID.TID 0000.0001) -1.980000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -1.012500000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.562500000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -2.162500000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -2.812500000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -3.525000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -4.337500000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -5.312500000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -6.537500000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -8.112500000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.015000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -1.275000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -1.600000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -2.000000000000000E+03, /* K = 15 */ (PID.TID 0000.0001) -2.460000000000000E+03, /* K = 16 */ -(PID.TID 0000.0001) -2.461000000000000E+03, /* K = 17 */ -(PID.TID 0000.0001) -2.462000000000000E+03, /* K = 18 */ -(PID.TID 0000.0001) -2.463000000000000E+03, /* K = 19 */ -(PID.TID 0000.0001) -2.464000000000000E+03, /* K = 20 */ -(PID.TID 0000.0001) -2.465000000000000E+03, /* K = 21 */ -(PID.TID 0000.0001) -2.466000000000000E+03, /* K = 22 */ -(PID.TID 0000.0001) -2.467000000000000E+03, /* K = 23 */ -(PID.TID 0000.0001) -2.468000000000000E+03, /* K = 24 */ -(PID.TID 0000.0001) -2.469000000000000E+03, /* K = 25 */ -(PID.TID 0000.0001) -2.470000000000000E+03 /* K = 26 */ +(PID.TID 0000.0001) -2.900000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -3.300000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.700000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -4.100000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.500000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -4.900000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.300000000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -5.700000000000000E+03, /* K = 24 */ +(PID.TID 0000.0001) -6.100000000000000E+03, /* K = 25 */ +(PID.TID 0000.0001) -6.700000000000000E+03 /* K = 26 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ (PID.TID 0000.0001) 25 @ 1.000000000000000E+00 /* K = 1: 25 */ @@ -1216,23 +1153,7 @@ (PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ -(PID.TID 0000.0001) 3.924000000000001E-05, /* K = 2 */ -(PID.TID 0000.0001) 3.737142857142858E-05, /* K = 3 */ -(PID.TID 0000.0001) 3.412173913043479E-05, /* K = 4 */ -(PID.TID 0000.0001) 3.139200000000001E-05, /* K = 5 */ -(PID.TID 0000.0001) 2.906666666666667E-05, /* K = 6 */ -(PID.TID 0000.0001) 2.616000000000001E-05, /* K = 7 */ -(PID.TID 0000.0001) 2.242285714285715E-05, /* K = 8 */ -(PID.TID 0000.0001) 1.825116279069768E-05, /* K = 9 */ -(PID.TID 0000.0001) 1.426909090909091E-05, /* K = 10 */ -(PID.TID 0000.0001) 1.105352112676057E-05, /* K = 11 */ -(PID.TID 0000.0001) 8.530434782608697E-06, /* K = 12 */ -(PID.TID 0000.0001) 6.765517241379311E-06, /* K = 13 */ -(PID.TID 0000.0001) 5.450000000000001E-06, /* K = 14 */ -(PID.TID 0000.0001) 4.459090909090910E-06, /* K = 15 */ -(PID.TID 0000.0001) 1.223700623700624E-04, /* K = 16 */ -(PID.TID 0000.0001) 9 @ 0.000000000000000E+00 /* K = 17: 25 */ +(PID.TID 0000.0001) 25 @ 0.000000000000000E+00 /* K = 1: 25 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F @@ -1268,13 +1189,13 @@ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ (PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ @@ -1311,13 +1232,13 @@ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 10 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 11 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 12 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 13 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 13 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 14 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 15 */ (PID.TID 0000.0001) 7.862624379247893E+03, /* J = 16 */ (PID.TID 0000.0001) 7.943896227202051E+03, /* J = 17 */ (PID.TID 0000.0001) 8.176138828117387E+03, /* J = 18 */ -(PID.TID 0000.0001) 8.527336484962450E+03, /* J = 19 */ +(PID.TID 0000.0001) 8.527336484962452E+03, /* J = 19 */ (PID.TID 0000.0001) 8.952270066930356E+03, /* J = 20 */ (PID.TID 0000.0001) 9.402036775610259E+03, /* J = 21 */ (PID.TID 0000.0001) 9.833098593630379E+03, /* J = 22 */ @@ -1432,13 +1353,13 @@ (PID.TID 0000.0001) 9.833098593630378E+07, /* J = 10 */ (PID.TID 0000.0001) 9.402036775610259E+07, /* J = 11 */ (PID.TID 0000.0001) 8.952270066930355E+07, /* J = 12 */ -(PID.TID 0000.0001) 8.527336484962450E+07, /* J = 13 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 13 */ (PID.TID 0000.0001) 8.176138828117387E+07, /* J = 14 */ (PID.TID 0000.0001) 7.943896227202050E+07, /* J = 15 */ (PID.TID 0000.0001) 7.862624379247892E+07, /* J = 16 */ (PID.TID 0000.0001) 7.943896227202050E+07, /* J = 17 */ (PID.TID 0000.0001) 8.176138828117387E+07, /* J = 18 */ -(PID.TID 0000.0001) 8.527336484962450E+07, /* J = 19 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 19 */ (PID.TID 0000.0001) 8.952270066930355E+07, /* J = 20 */ (PID.TID 0000.0001) 9.402036775610259E+07, /* J = 21 */ (PID.TID 0000.0001) 9.833098593630378E+07, /* J = 22 */ @@ -1469,13 +1390,13 @@ (PID.TID 0000.0001) 9.833098593630378E+07, /* J = 10 */ (PID.TID 0000.0001) 9.402036775610259E+07, /* J = 11 */ (PID.TID 0000.0001) 8.952270066930355E+07, /* J = 12 */ -(PID.TID 0000.0001) 8.527336484962450E+07, /* J = 13 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 13 */ (PID.TID 0000.0001) 8.176138828117387E+07, /* J = 14 */ (PID.TID 0000.0001) 7.943896227202050E+07, /* J = 15 */ (PID.TID 0000.0001) 7.862624379247892E+07, /* J = 16 */ (PID.TID 0000.0001) 7.943896227202050E+07, /* J = 17 */ (PID.TID 0000.0001) 8.176138828117387E+07, /* J = 18 */ -(PID.TID 0000.0001) 8.527336484962450E+07, /* J = 19 */ +(PID.TID 0000.0001) 8.527336484962453E+07, /* J = 19 */ (PID.TID 0000.0001) 8.952270066930355E+07, /* J = 20 */ (PID.TID 0000.0001) 9.402036775610259E+07, /* J = 21 */ (PID.TID 0000.0001) 9.833098593630378E+07, /* J = 22 */ @@ -1608,14 +1529,17 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): (PID.TID 0000.0001) // CONFIG_CHECK : Normal End (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: theta.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: salt.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Tini_+10l.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Sini_Ydir.bin (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1648,11 +1572,11 @@ (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0579432679982E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473592277915E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492354740061E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504232377144E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4100186622822E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568423459062E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559594024634E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563160569106E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157859662864E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3832283076989E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.9497512775329E-01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405417468E-01 @@ -1670,1131 +1594,1131 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 6.67801948723590E-03 -(PID.TID 0000.0001) cg2d_init_res = 3.66988281473964E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 6.65977494668786E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.66988281473994E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 15 -(PID.TID 0000.0001) cg2d_last_res = 2.56600206633781E-14 +(PID.TID 0000.0001) cg2d_last_res = 6.43382092860838E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 1 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.6563083593882E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.6563083593882E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.0756481539819E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.7149606513601E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2876497274361E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.5257455328829E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.5257455328847E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0763687626008E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6224766883884E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.1250954268540E-05 (PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1354380790879E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6348554740027E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.8106970589953E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2907867128048E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.2795403693588E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.1542621214117E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.1542621214112E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.3304740464538E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8031779365730E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8304036799356E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0579316206217E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473592582320E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492354740061E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504228370864E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4097628132738E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9984957728160E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9575607541100E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1346894761037E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6423415038448E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6182603720200E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2945242692179E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.2784282426937E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.1082402750201E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.1082402750210E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1652370232269E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7607976514653E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8118114065502E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568230850958E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559631313708E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563152337818E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157716355007E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3824423477823E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9984957722591E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9575020950256E-01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405417468E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0049835230240E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2965655589141E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0049835515058E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2965659026076E-04 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5860068679812E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6625233437560E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7324290415119E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.4326153900286E-06 -(PID.TID 0000.0001) %MON ke_max = 6.4794131347628E-05 -(PID.TID 0000.0001) %MON ke_mean = 5.6825237759651E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5843018939326E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6102982131539E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7125365543236E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.3429452712792E-06 +(PID.TID 0000.0001) %MON ke_max = 6.4708720982946E-05 +(PID.TID 0000.0001) %MON ke_mean = 5.6763672035853E-06 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 8.15751971932515E-03 -(PID.TID 0000.0001) cg2d_init_res = 6.65282990845052E-01 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 8.10830948832215E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.54517138724091E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 6.01075588842038E-15 +(PID.TID 0000.0001) cg2d_last_res = 2.32158517256593E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.1304547326165E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1301793198654E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.6916425151210E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.7590068967054E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0123698473793E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2700616677733E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3348383765128E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.7232306613621E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.3039067230915E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3447898046025E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5345322879187E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.6271476935040E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1724275240131E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.5249888213927E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0380398193841E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.5540627211797E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.5545712310107E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.3304740464538E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.9334331584170E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.1576356778942E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0579070324094E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473653099569E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492341049027E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4503992605820E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4086161803921E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9970262315638E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9650733395711E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692406789201E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0033396864395E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3119941935355E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8861110019919E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.7725014022276E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7939213164037E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9220585532897E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 6.6130088187013E-06 -(PID.TID 0000.0001) %MON ke_max = 3.2819719472975E-04 -(PID.TID 0000.0001) %MON ke_mean = 2.1010003415338E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.9421438112375E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.9433484341841E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.0763687626008E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6261462095595E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.8901499471686E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2679056911786E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3369943531073E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.6870458838315E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.3160136820866E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2800426272560E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5278213955269E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.6824551599590E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0884121029480E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.5317958496698E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0234792649920E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.5533320995542E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.5595769245431E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.6609480929077E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.9123377780891E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.1525560995975E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0568079800058E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559684862015E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563150551145E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157681699039E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3816356802768E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9970115667981E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9650539763075E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405582139E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0033381195973E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3124195089102E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8822302441215E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.7572170691275E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7920051387817E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8863211987176E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 6.4336425145001E-06 +(PID.TID 0000.0001) %MON ke_max = 3.2647647568460E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.1051257381583E-05 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 7.67663566163026E-03 -(PID.TID 0000.0001) cg2d_init_res = 2.32598180658858E-01 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.62023364678066E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.29933012732978E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 2.60417360644770E-14 +(PID.TID 0000.0001) cg2d_last_res = 3.17970891416126E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.6437695101059E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.6470224940482E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.0608067666331E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.4155159270862E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.5198286366734E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.3428247670904E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7428813392250E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3050365784827E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4200477429631E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7942878703429E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7528267193501E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.0635633097104E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.1472296894114E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5073484057533E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.4685695349077E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2925360684746E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2943248469176E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7321896185815E-20 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.6201180463067E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8413014045610E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578941750524E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473716899449E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492343152732E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504024142755E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4077757098490E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9955754561096E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9723879536118E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692406936568E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0017001634032E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3295472664860E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6817084580763E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5472170163416E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3149493904769E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4803029183681E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.8476797386484E-06 -(PID.TID 0000.0001) %MON ke_max = 7.5142551713295E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.6516643820170E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.4731097836989E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4765478305346E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.1527375252016E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2948287221830E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3122266313925E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.3222393945794E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7600654952169E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.2628419355717E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4242944646511E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6073815113118E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7416372246883E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1700654228640E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.8940159517366E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5195381446497E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.4656917827462E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2900699726455E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2923003647055E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2991422139362E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.6171286962633E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.2549984833655E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567938399561E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559757748217E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151140782E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157687118828E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3805100695621E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9955447438205E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9724211932210E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405380319E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0016970792570E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3304986786575E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6780030910243E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5217324825942E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3111723908275E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4328130429763E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.6982136579784E-06 +(PID.TID 0000.0001) %MON ke_max = 7.4700727572416E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.6637564800605E-05 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 7.43672136131354E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.21564036063551E-01 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 7.40229921153254E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.18159955509569E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 1.50072668240775E-14 +(PID.TID 0000.0001) cg2d_last_res = 1.14752819865840E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3965843762493E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4032816553117E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9411886892011E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2416467580646E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.2141424155887E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7412459499568E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.6373649872747E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8805141446998E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4116197768384E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3583935865722E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7878671039054E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1655312348495E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.6178229969225E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2147801988016E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5270241714629E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6640526652957E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6689517697077E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.1652370232269E-20 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.5368461110543E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6890499995586E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578803998517E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473802726245E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345285924E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504056302249E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4067217504751E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9941389353718E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9795287008465E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692406187861E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0000648764121E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3488499971161E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1342427099223E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0904564010770E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0035091591028E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2180455276102E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4782191834023E-06 -(PID.TID 0000.0001) %MON ke_max = 1.3035445895570E-03 -(PID.TID 0000.0001) %MON ke_mean = 8.0863896713568E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2384506950253E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2449762420254E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0763687626008E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1296016524329E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0168705099900E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7367065529287E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.6790912297334E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8514547128085E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4201024611144E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.7152156666506E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7740704002774E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1790448069319E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.4379504008492E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2163849289279E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5759483779594E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6770574862449E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6829657553459E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.3304740464538E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.5311443321014E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.2333060539675E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567786341048E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559850521782E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151434756E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157687564329E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3788080738638E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9940913964016E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9796181652748E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405183815E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0000603390518E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3504077789152E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1260717952717E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0873141451500E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0286616777743E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1880649239729E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3481327464721E-06 +(PID.TID 0000.0001) %MON ke_max = 1.2961107754921E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.1088760622356E-05 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.99360577730113E-14 7.43942781594971E-03 -(PID.TID 0000.0001) cg2d_init_res = 4.77468875478867E-03 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.42656309009548E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.02268390283310E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 5.09527543418202E-16 +(PID.TID 0000.0001) cg2d_last_res = 5.30166505671138E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3887581417912E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3999492954881E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.5776367187500E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2376869019227E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.2073359313560E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7146109001551E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0150258151610E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8544885232195E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8340346336745E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.2668010117769E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6553922438314E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3828088126400E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.2389158243253E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4360578854664E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1252858022586E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9755324799281E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9853878657155E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0149993917323E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.4478197628798E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578641734788E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473910483302E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345416555E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504054549767E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4054089229385E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9927123294696E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9865090991366E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405978624E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9984337198410E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3695775499299E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8862996202792E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2880388154168E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.5876031909944E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.8438605617798E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4699451554886E-06 -(PID.TID 0000.0001) %MON ke_max = 1.9755165620766E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.2275080768075E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2319981611056E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2425391616343E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0763687626008E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1263066677397E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0032455854021E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7073294135658E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0839067405357E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8276339807599E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8473774470913E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0462030888732E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6396423002034E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3986159031415E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.8514365101054E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4379883336628E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1405868292992E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0131510666155E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0261319621383E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.1965688557446E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0141191060625E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6757054991214E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567625472935E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559959341670E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151440609E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157683159964E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3763849949447E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9926475330766E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9866583304813E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405063875E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9984278124017E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3717960977434E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8731929444185E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2844517010560E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.6625048418828E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.8552682546134E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3412642381530E-06 +(PID.TID 0000.0001) %MON ke_max = 1.9645893272908E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.2310895823783E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.88293824976427E-13 7.46015939018460E-03 -(PID.TID 0000.0001) cg2d_init_res = 6.91594512600150E-03 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 7.48568051283318E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.84360414543237E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.40116733762043E-15 +(PID.TID 0000.0001) cg2d_last_res = 9.60376040318394E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3954795783654E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4124781693248E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.6167287518901E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2444918432159E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.2193866672226E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.8258885117756E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.7383684678326E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8898607640643E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.6017143849921E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4748065800983E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3318056349878E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5460162390272E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4159359206148E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6072608541974E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2600386869250E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2085574844923E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2250573415734E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2393214855202E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2549702741185E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2305475050403E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1330421752313E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0006081312360E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.8155896732428E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.8377926032787E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8617380465948E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.6205477544839E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4737900618929E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3146231253843E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5639163761303E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4020893268758E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6094992435157E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2920618983964E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2777374963372E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3024643711585E-04 (PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1359376025858E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.1086310271767E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578470487334E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473977490318E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345238865E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504047506177E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4039297211330E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9912913992131E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9933403363178E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405914724E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9968066095052E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3914424388421E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.8865993211961E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4420947439030E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.0232234276036E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3105965295753E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4841677834107E-06 -(PID.TID 0000.0001) %MON ke_max = 2.7461177158468E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.7060441787902E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1351753850024E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6183804651635E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567460023364E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559901752067E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151428621E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157678461819E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3731616342434E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9912095015177E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.9935557062441E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404921602E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9967994154915E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.3943546896858E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.8680614118370E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4381813567565E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1698981984523E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3893665246866E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3553093440453E-06 +(PID.TID 0000.0001) %MON ke_max = 2.7312576478155E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.7113188985211E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.96127575186256E-13 7.46108397901778E-03 -(PID.TID 0000.0001) cg2d_init_res = 8.73665300312627E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 8.47662550154689E-15 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 7.55187991157471E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.85072518390509E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 8.07928916033911E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3792531196853E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.4031776473052E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1124149445565E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2354353754330E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.2033625815759E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0380977043998E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2696879742310E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8946498929696E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2618417870803E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.9218073286109E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7913704143881E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6540313650005E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.8846842265903E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7229093450834E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3518276205536E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3628843070371E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3872314757867E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.6609480929077E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2166284562134E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.7268811716074E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578295965885E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473843431072E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345214807E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504042983757E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4023372026518E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9898726101015E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0000353238360E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405743939E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9951834622055E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4141916533943E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0685758679196E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5467625102656E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3177553247585E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.6261664193841E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4652434314023E-06 -(PID.TID 0000.0001) %MON ke_max = 3.5860677958448E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.2267987879691E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2251591714795E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2469654305165E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8458212575605E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1247575874281E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.9626721964234E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0245854133604E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2830258023214E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8663746541669E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2643306688537E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9403172950859E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7734667290463E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6735634187196E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7229860813266E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7254187316758E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4072407003804E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4655917432773E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.5076093880981E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2162237202498E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6615043328144E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567292513962E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559764813560E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151443331E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157674219661E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3691332789136E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9897745619859E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0003247732393E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404727624E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9951750640814E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4178128877234E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0442537440488E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5426848723821E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5532937513339E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7929407908778E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3380366524192E-06 +(PID.TID 0000.0001) %MON ke_max = 3.5670741616164E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.2341071611472E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.56523707725864E-13 7.45846904918547E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.17129301653143E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 1.45161123512019E-14 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.64387873612832E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.91056081200758E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.28847428435869E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3563471851896E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3881757250626E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8021368211316E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2219908288633E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1793605856188E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3094022131399E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5789979891356E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8879464534517E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5780298994173E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2536776778539E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0187995457520E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7046658153001E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7980492007083E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7794437548742E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3976746498722E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4360298238579E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4687525002216E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.1965688557446E-20 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2557177871832E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.3516644343409E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0578119473264E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473703504250E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345248431E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504039354319E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.4006675627072E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9884537888596E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0066078955256E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405497461E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9935641947963E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4376034807661E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1356923983652E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5985604291938E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.4679309319050E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7870688556125E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4372100895557E-06 -(PID.TID 0000.0001) %MON ke_max = 4.4647952555454E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.7711833768094E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2049015483537E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2337959380827E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5381843813004E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1122894158735E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.9083921834260E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.2926282938904E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5959600307967E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8600952442546E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5811631103136E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.4300504054968E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0009455175071E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7252356161470E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5932194125308E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7821710957031E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4826695966482E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5690475329828E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6339930105246E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2558263854910E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7044615025349E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0567124988545E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559623999076E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151465466E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157670106828E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3643804967340E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9883413276481E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0069798497192E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404495668E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9935546732164E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4419347447545E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1326730929003E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5944941009181E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8032571379953E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.0560601452582E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3120941202546E-06 +(PID.TID 0000.0001) %MON ke_max = 4.4416757645327E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.7808084667849E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.38964445190504E-13 7.45920720654605E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.20212744287078E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 2.05833347120106E-14 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.76836279870542E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.77189337542650E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.39670129518245E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3337915815726E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3743278888037E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6107866840978E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2090759957270E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1559713539552E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.5963552470354E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8912019648175E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8821441351899E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.8979271169520E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5244046486774E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0080864256105E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6963250521859E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.6882097346119E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7753223481129E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3965054092710E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4259968904721E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4668160593340E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2519376697205E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.0235409557725E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577942664707E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473562502685E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345277512E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504035562882E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3989599798073E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9870344844153E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0130718807912E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692405222775E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9919487272012E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4614844246277E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3673439444664E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5961204720730E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.4681268391146E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7872787561942E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.4103491356512E-06 -(PID.TID 0000.0001) %MON ke_max = 5.3516604622275E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.3200965432796E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1851403442722E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2218946650956E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5381843813004E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1002465970447E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.8470807184560E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.5764156548430E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9118950485913E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8546598060266E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9017237548608E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9266486736055E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.9910230889331E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7173129051235E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5044623156997E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7782063005844E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5163560845248E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5816404549830E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6741748849055E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5982844278723E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2527046962832E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.6551952443599E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566959540269E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559485041428E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151486832E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157665983509E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3590559287514E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9869100271671E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0135346085870E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404237501E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9919381573759E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4665155362038E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3637548178717E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5922342270499E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.9073479066505E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1656293754216E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2870966159891E-06 +(PID.TID 0000.0001) %MON ke_max = 5.3245788366386E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.3322430226768E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.67910171614494E-13 7.46309313955177E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.22789871464391E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 2.57663141747005E-14 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.93174545265908E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.38967715673117E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 8.54453726716432E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.3118288262399E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3616059327824E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9661072761782E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1967679645272E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1332974187072E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8554467150742E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1955144156029E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8775982058482E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2106668001808E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7965917372671E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7612274576407E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6295145689441E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5623853965162E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7110671082979E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3488928307550E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3337298158603E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3815225534136E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2055418596546E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.7737801715186E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577767696839E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473425283922E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345300274E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504031588037E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3972562686672E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9856161027840E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0194406869800E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404930939E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9903369830629E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4856662531213E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5939804087133E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5398973280416E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3180330986348E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.6264640342515E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3848121400143E-06 -(PID.TID 0000.0001) %MON ke_max = 6.2162807424197E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.8545999294876E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1660744259701E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2112290027915E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.2291062878024E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0887014144235E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.7809864514986E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8325662669365E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.2199309137773E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8503852138020E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2151265180577E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4136495767263E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7456400158224E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6502938903280E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4006950607165E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7140401808831E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5080893713765E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5012023274601E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6238830753246E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5982844278723E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2070906055815E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4447350737857E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566798209430E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559353647908E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151507303E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157661845870E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3533558437850E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9854825666225E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0200017434783E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403960890E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9903254303829E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4913784142292E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5898619280486E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5363472241355E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8581211215561E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1138117069012E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2631874156821E-06 +(PID.TID 0000.0001) %MON ke_max = 6.1855331484272E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.8693710384731E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.08242361927114E-13 7.46941853151062E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.25078853593367E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 3.05291717175854E-14 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.11519121191479E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.70334184389646E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.45999005048375E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2904779812130E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3496714830046E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9636461811681E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1849556889809E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1111322097761E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0044407458706E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4814698751317E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8732878997969E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5056933097746E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0624880179221E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2880244877998E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5068997027406E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4596741795984E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5892349229557E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2570640391249E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1631654375588E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2160345406558E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1183733926097E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.6204669371667E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577596717219E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473296529061E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345321842E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504027535898E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3955975574494E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9842018283699E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0257270138730E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404627182E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9887288890773E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5100032617763E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8079933425671E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4321234077816E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.0231413976419E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3105086403306E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3603605594020E-06 -(PID.TID 0000.0001) %MON ke_max = 7.0294125417844E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.3565586482520E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1476717948643E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2014569665159E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2305475050403E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0775525350831E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.7125398704795E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0018926669807E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5094889826834E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8463086246099E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5107965247098E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.8748685538169E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2745229663850E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5268459963103E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3180372931630E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5922247349596E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4599712658255E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3305779420643E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4827368493582E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.4643792371631E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1207978129443E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.0338849732988E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566642851761E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559235123103E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151527060E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157657695164E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3474906903613E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9840623798545E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0263927177156E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403675656E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9887164054053E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5163712766524E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8034068005652E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4290483808162E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6543530205760E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.8993189690274E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2401503549856E-06 +(PID.TID 0000.0001) %MON ke_max = 6.9954086343999E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.3739376112493E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.02913291408913E-13 7.47788739674686E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.24626610690961E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 3.50689148657431E-14 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.30663213396341E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.69714074723462E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.64850727368600E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2703866651642E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3387539837123E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8024444580078E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1739524555657E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0900291537180E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1123592565315E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7393177395515E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8691322340553E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7731176605375E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3146114809098E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.6058325224637E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3330732400179E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2917146373917E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4143186999639E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1249542704962E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9208300397120E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9771462010159E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.9367081228946E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.5670821838380E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577431698109E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473180572694E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345342625E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504023440460E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3940224512245E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9827963241790E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0319425780441E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404323069E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9871243741277E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5343697966947E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0022466617567E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2767513852881E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.6053088947682E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.8628309586802E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3376337634590E-06 -(PID.TID 0000.0001) %MON ke_max = 7.7639506731519E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.8092202350309E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1304701092718E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1927437549997E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.2291062878024E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0670949274450E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.6448723189044E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1095951730055E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7707073164959E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8423550762133E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7788260030870E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.2948648806050E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5949292515767E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3515816246929E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1740062307296E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4172500910340E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3768325557833E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0908393413240E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2655932721843E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.6609480929077E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.9705305185543E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4118641837167E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566495072130E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559134036122E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151545581E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157653520644E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3416638164013E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9826540841508E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0327175758506E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403394445E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9871109951707E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5413638874022E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9972713114099E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2742681205538E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3008908488721E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.5272535251286E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.2185876023860E-06 +(PID.TID 0000.0001) %MON ke_max = 7.7271912468137E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.8290614887806E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.40740802029904E-13 7.48816682042013E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.21244666593810E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 3.89792610540704E-14 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 8.49521278091703E-03 +(PID.TID 0000.0001) cg2d_init_res = 5.40124726365844E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 9.44715351287458E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 13 (PID.TID 0000.0001) %MON time_secondsf = 2.3400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2523055981882E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3291546174897E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2331360847719E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1641338342198E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0706563449014E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2057311153158E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9603435114262E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8653360789595E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0040481157397E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.5460021747979E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7389569887959E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1143543698107E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0454746477521E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1925850470665E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5832876870707E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6188447660713E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6809534164728E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5982844278723E-20 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.3592195682221E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0603540534663E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577274397289E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473081268991E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345361598E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504019315676E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3925658560964E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9814052440598E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0380978692692E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692404033599E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9855233683100E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5586580441078E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1703160075684E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0793169214421E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0783447710847E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2982265404479E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3173945062677E-06 -(PID.TID 0000.0001) %MON ke_max = 8.3957836516423E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.1977213249044E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1150966344096E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1853059450614E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2305475050403E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0576836125388E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.5808668076561E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2028030080843E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9947659770775E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8387177330561E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0103053420200E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.6594363376957E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7310468610261E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1308591557956E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9560746640771E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1953830555692E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2665667729168E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7796121090103E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9749220916478E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.6609480929077E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.4037631497986E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5888438573357E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566356181377E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559053967074E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151562241E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157649309674E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3360607242202E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9812629853786E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0389848109891E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403131268E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9855091123387E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5662452682819E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1650454145517E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0775153573484E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.8085517696033E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0090018627404E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1992202285658E-06 +(PID.TID 0000.0001) %MON ke_max = 8.3568384981087E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.2197528582342E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.16600129130529E-13 7.49977941230591E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.15769518121592E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.19595422196508E-14 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.68614834430290E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.86419240017455E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 1.01960965529217E-16 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 14 (PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2368855149784E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3210775691795E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6622895271547E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1558056599687E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0535586767948E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2815007809849E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1371571165943E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8620484219962E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1908849521296E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7504593258425E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7177823629594E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.6296484132986E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7354038128779E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3185749473875E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.6527503759683E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2687920169465E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3303877330336E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.5071557597832E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1708084584322E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0577126313120E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473001873573E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345378019E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504015180715E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3912579644451E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9800346206851E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0442019578156E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403774097E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9839258018374E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5827760722946E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3067014057728E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4674020550686E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4535530650593E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6288068554207E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.3002576616466E-06 -(PID.TID 0000.0001) %MON ke_max = 8.9044948722006E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.5095136381613E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1020874850863E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1792612664114E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8458212575605E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0496110807287E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.5227943954629E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2784662393129E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1741790461117E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8355382472425E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1976183130684E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9561099771634E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7131286587537E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.7612588470850E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.6772257265897E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3445180989872E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1406204005735E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4096454920113E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6169322443208E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.3304740464538E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.5648891039877E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5857747132718E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566227159789E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558985548388E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151576525E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157645051452E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3308459555149E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9798944953339E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0452012798629E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402900142E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9839106699775E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5909213714076E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3012392307633E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4568030525698E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1937799089889E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3618735884094E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1826365989061E-06 +(PID.TID 0000.0001) %MON ke_max = 8.8639832986516E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.5333500736579E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.08890674255235E-12 7.51219697778616E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.09489542854073E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.40244323070767E-14 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 8.86599854168032E-03 +(PID.TID 0000.0001) cg2d_init_res = 4.15931675588551E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 5.81403070993593E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 15 (PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2246643537584E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3146547085717E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6170669063445E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1492078648563E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0391633461735E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3372256761305E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2639389898823E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8593645463514E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3275696462655E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.9227533420861E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5777034916749E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8477870600901E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3751830255008E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.4126762793003E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5825215155314E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.7925423346181E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.3771590159067E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0918813364068E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1746575487169E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1534581338206E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0431102482440E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.4723478801808E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3341453712674E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3030437448526E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8329088388647E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3346916814255E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1746078513142E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5764295465128E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9495019461220E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3498467194476E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.4360222878789E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0147995639140E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.9556652681083E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2047537445637E-04 (PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.3304740464538E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4456825988011E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2849387538515E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576988634440E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5472944943787E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345391416E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504011055958E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3901234233125E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9786902063843E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0502623542530E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403558911E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9823316039770E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6066461000208E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4070062170350E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.8708255922199E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7528070037010E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8780075039654E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2867010456145E-06 -(PID.TID 0000.0001) %MON ke_max = 9.2739243829009E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.7347040254785E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.5235786190246E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4250855402110E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566108628658E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558938793380E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151588023E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157640737007E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3261628245514E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9785535336764E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0513721588238E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402713951E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9823155821195E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6153130320188E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4014616682813E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.8679241297806E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4779100962594E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6083264171152E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1693010113707E-06 +(PID.TID 0000.0001) %MON ke_max = 9.2324986015018E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.7598691232429E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.06936681731895E-12 7.52493410930856E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.04082191452978E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.51575436502483E-14 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 9.02260886971641E-03 +(PID.TID 0000.0001) cg2d_init_res = 3.35746131946652E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 30 +(PID.TID 0000.0001) cg2d_last_res = 5.27461287474090E-17 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 16 (PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2160583993816E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3099728109633E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.3586519302860E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1445206241204E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0277935028519E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3711541843453E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3366308136983E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8573568302585E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4097803007226E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0588053821244E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3578983976040E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9337946542468E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.7725500305029E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3111113735106E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.6383819743486E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6881070917537E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2108253283780E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0826185116135E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2483437405936E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3988884166510E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576862200054E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5472912261953E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345401432E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504006956999E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3891807264949E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9773768471945E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0562849194055E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403400402E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9807407022180E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6302029582653E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4680775318216E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0926693818877E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0005216281984E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0719874587840E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2770806291488E-06 -(PID.TID 0000.0001) %MON ke_max = 9.4925902937269E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.8663068764448E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0848147310684E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1715039850047E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8458212575605E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0383596488443E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.4307697221741E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3680892704030E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3772338115427E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8309007542895E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4171910393678E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3072625949906E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3599851037405E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9853976019028E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.8527590352443E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3318775493318E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.0981683791015E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.8057090154941E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.7508435151103E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1652370232269E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3755287519907E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.1247265664490E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0566000832420E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558918167826E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151596424E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157636359170E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3221325609047E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9772439870894E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0575009376068E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402583367E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9807237643706E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6393541900850E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4625606867254E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0974219408337E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6861153038850E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7748582146158E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1595666567281E-06 +(PID.TID 0000.0001) %MON ke_max = 9.4509210265652E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.8922632342621E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.61009050115536E-13 7.53761160529611E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.01292684269284E-02 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 9.14899624848795E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.51954822148705E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.52060167948697E-14 +(PID.TID 0000.0001) cg2d_last_res = 5.73994403678140E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 17 (PID.TID 0000.0001) %MON time_secondsf = 3.0600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2113407926578E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3070822214023E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1426908431515E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1418595158400E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0196648598528E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3822798939502E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3530638612968E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8560774435266E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4350670252279E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1558273460891E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2275556654573E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.9583096504278E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.5511270378374E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8615209058793E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.6590201733075E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.9300573832925E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.9688334934221E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.3532731395168E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9202236722264E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5083416347553E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576747471595E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5472904783742E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345407810E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4504002891921E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3884418039003E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9760979643910E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0622738221998E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403307900E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9791530218358E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6533927094906E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4881038091104E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3895288867446E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2390260827876E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3868583806353E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2716226858338E-06 -(PID.TID 0000.0001) %MON ke_max = 9.5539680434269E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.9004095855132E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0811035191756E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1697845675403E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8458212575605E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0354785732193E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3989693374645E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3792894419770E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3945300825929E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8295666393358E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4426565728328E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.3493536917859E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2599565972962E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8696398029425E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.9589723289157E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.1661304604141E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.4885255614585E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.7945523830862E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.5588196667800E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0149548546376E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.8963511412770E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.6963872131751E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0565903632589E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558924627262E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151601519E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157631912851E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3188521440386E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9759682892974E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0635894510242E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402515914E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9791351345508E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6629903566968E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4827209955585E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0017458236103E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.8123839822383E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1513218277090E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1536675734453E-06 +(PID.TID 0000.0001) %MON ke_max = 9.5127313025878E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.9265925873549E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.75743921824323E-13 7.54999688591933E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.02222480226540E-02 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 9.24030937616803E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.70145323238828E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.40684634984065E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.59340070245677E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 18 (PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2106246568015E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3060006384082E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0262239517704E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1412706785670E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0148821828050E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3703704541663E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3130213106640E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8555541911473E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4029230717541E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2124161231995E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4313824636965E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1567078820386E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2329049187824E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.0941988781372E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.6527359038813E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.4651421857862E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.4705001151347E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.3304740464538E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2813324686342E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6088129206801E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576644519830E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5472922612702E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345410416E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4503998860351E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3879117684705E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9748552023401E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0682315430483E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403286849E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9775684859635E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6761713908016E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4666668174993E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6344497179473E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0221772267320E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.5951898857843E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2704153598938E-06 -(PID.TID 0000.0001) %MON ke_max = 9.4566291918042E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.8362528451300E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0808266467919E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1694656526674E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1534581338206E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0345221985986E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3775967598169E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3675090236038E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3546845407810E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8289365715211E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4105745422288E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.2993364940180E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4257401720883E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1482289622120E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9513449594247E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.0871804997736E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.4810620657551E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.4397355879516E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.1094275213866E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.0826185116135E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3399245801175E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.1475979853256E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0565816514487E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5558957938351E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151603215E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157627395337E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3163923225205E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9747271685903E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0696379504341E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402515303E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9775496133423E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6861772897763E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4615162424868E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6151386297351E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5798119490597E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6629599463786E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1517101154841E-06 +(PID.TID 0000.0001) %MON ke_max = 9.4164929858665E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.8621055131258E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.22568621918617E-12 7.56202108286973E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.06702636418771E-02 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 9.29388010833538E-03 +(PID.TID 0000.0001) cg2d_init_res = 9.84809512150432E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 4.17704827188806E-14 +(PID.TID 0000.0001) cg2d_last_res = 5.66486202786978E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 19 (PID.TID 0000.0001) %MON time_secondsf = 3.4200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2138566621179E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3067154419609E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.8724055136404E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1427292617789E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0134393288057E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3359702780950E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2182329954330E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8557887409903E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3147897242944E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2285973573553E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3530191135975E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.3619349909479E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0333994767289E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1478264271824E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5726268213647E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.5646128798937E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.4708712661437E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0826185116135E-20 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4358299475693E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6959423579120E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576553024534E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5472965001456E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345409244E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4503994853662E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3875887988090E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9736482788645E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0741589200971E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403338317E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9759870162180E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6985038530072E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4047465005710E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3794039682224E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5465675262897E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6570366353104E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2734062274427E-06 -(PID.TID 0000.0001) %MON ke_max = 9.2042425889094E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.6762276318679E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0839184351195E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1705005269131E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5381843813004E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0354797401415E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3670650897058E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3332857222446E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2594162221791E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8290162790188E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3223824563718E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1589421015025E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3846204488042E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.3510122727237E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0319484060671E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1446727745171E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.0535273008531E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0920487975622E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.5613339154171E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2991422139362E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4478547814508E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.4874493996159E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0565738607501E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559016672508E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151601533E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157622806480E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3147981264867E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9735195869886E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0756452166953E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402581134E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9759671249251E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7088798358302E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3999143000402E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3545270287705E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2390832654424E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3569297530973E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1536699620681E-06 +(PID.TID 0000.0001) %MON ke_max = 9.1658523544223E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.7012330172323E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.16529008664656E-12 7.57377089656437E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.13393810975569E-02 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 9.30903788572899E-03 +(PID.TID 0000.0001) cg2d_init_res = 6.68400683353874E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 29 -(PID.TID 0000.0001) cg2d_last_res = 3.83409448987871E-14 +(PID.TID 0000.0001) cg2d_last_res = 3.35355128658475E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 20 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2208208401975E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3091833987917E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0206864879977E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1461406994950E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0152208473266E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2803771977288E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0723032287916E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8567567689969E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1739951968552E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2058154028170E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0404137970896E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4800902508216E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.1018037207321E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9786648746620E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5945530647848E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2417024083254E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2320087557705E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.3304740464538E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4289473040728E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7657727840506E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0576472287889E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5473030379527E+01 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7492345404418E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4503990856328E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3874641588490E-04 -(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9724750476746E-01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0800552355102E-01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692403458934E-01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9744085338572E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7203626755672E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3046789559119E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.9260485054791E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2381306139843E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3979970864118E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2804047929102E-06 -(PID.TID 0000.0001) %MON ke_max = 8.8054402357245E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.4257902862184E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.0901701091591E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1728299234053E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2305475050403E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.0382752196374E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3675369505079E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2779087874699E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1123395739057E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8297871297808E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1814081711975E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9331359536631E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.1084615084159E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4672415908444E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.8544628942137E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9804773915954E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0017434034293E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4043966945463E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2756129438621E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7321896185815E-20 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4265881911117E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7368879487129E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0565668718989E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 1.5559088351777E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.7563151596608E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4157618148783E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3140936124126E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 9.9723428702324E-01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 4.0816087146250E-01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 7.4692402708978E-01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9743875975806E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7310708923939E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3002358174458E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.8967851545686E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8136554219579E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9617425494293E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1593937375635E-06 +(PID.TID 0000.0001) %MON ke_max = 8.7694021249114E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.4494984015851E-04 (PID.TID 0000.0001) %MON ke_vol = 7.6260000000000E+12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.0778360571712255 -(PID.TID 0000.0001) System time: 1.69970006681978703E-002 -(PID.TID 0000.0001) Wall clock time: 1.1116611957550049 +(PID.TID 0000.0001) User time: 0.88177201454527676 +(PID.TID 0000.0001) System time: 1.0467999614775181E-002 +(PID.TID 0000.0001) Wall clock time: 0.90939092636108398 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.79959999024868011E-002 -(PID.TID 0000.0001) System time: 2.99900025129318237E-003 -(PID.TID 0000.0001) Wall clock time: 4.51519489288330078E-002 +(PID.TID 0000.0001) User time: 1.8327000550925732E-002 +(PID.TID 0000.0001) System time: 4.2619998566806316E-003 +(PID.TID 0000.0001) Wall clock time: 3.4085035324096680E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.0498400572687387 -(PID.TID 0000.0001) System time: 1.39980004169046879E-002 -(PID.TID 0000.0001) Wall clock time: 1.0664710998535156 +(PID.TID 0000.0001) User time: 0.86340301483869553 +(PID.TID 0000.0001) System time: 6.1940001323819160E-003 +(PID.TID 0000.0001) Wall clock time: 0.87527012825012207 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 9.99799929559230804E-003 -(PID.TID 0000.0001) System time: 3.00000002607703209E-003 -(PID.TID 0000.0001) Wall clock time: 1.26910209655761719E-002 +(PID.TID 0000.0001) User time: 6.5359994769096375E-003 +(PID.TID 0000.0001) System time: 3.6969999782741070E-003 +(PID.TID 0000.0001) Wall clock time: 1.1697053909301758E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.0398420579731464 -(PID.TID 0000.0001) System time: 1.09980003908276558E-002 -(PID.TID 0000.0001) Wall clock time: 1.0537509918212891 +(PID.TID 0000.0001) User time: 0.85684801451861858 +(PID.TID 0000.0001) System time: 2.4859998375177383E-003 +(PID.TID 0000.0001) Wall clock time: 0.86354303359985352 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.0398420579731464 -(PID.TID 0000.0001) System time: 1.09980003908276558E-002 -(PID.TID 0000.0001) Wall clock time: 1.0535693168640137 +(PID.TID 0000.0001) User time: 0.85666898079216480 +(PID.TID 0000.0001) System time: 2.4749999865889549E-003 +(PID.TID 0000.0001) Wall clock time: 0.86334300041198730 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 1.0388420559465885 -(PID.TID 0000.0001) System time: 1.09980003908276558E-002 -(PID.TID 0000.0001) Wall clock time: 1.0532000064849854 +(PID.TID 0000.0001) User time: 0.85631814226508141 +(PID.TID 0000.0001) System time: 2.4629998952150345E-003 +(PID.TID 0000.0001) Wall clock time: 0.86299419403076172 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.49077987670898438E-004 +(PID.TID 0000.0001) User time: 5.3215399384498596E-004 +(PID.TID 0000.0001) System time: 5.9995800256729126E-006 +(PID.TID 0000.0001) Wall clock time: 5.3691864013671875E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.86443328857421875E-004 +(PID.TID 0000.0001) User time: 1.7796270549297333E-004 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 1.8525123596191406E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 9.98999923467636108E-004 -(PID.TID 0000.0001) Wall clock time: 1.88350677490234375E-004 +(PID.TID 0000.0001) User time: 1.9286386668682098E-004 +(PID.TID 0000.0001) System time: 1.9995495676994324E-006 +(PID.TID 0000.0001) Wall clock time: 1.9264221191406250E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14097611606121063 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 0.14246416091918945 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 -(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.35695092007517815 -(PID.TID 0000.0001) System time: 6.00000005215406418E-003 -(PID.TID 0000.0001) Wall clock time: 0.36239910125732422 +(PID.TID 0000.0001) User time: 0.10784104466438293 +(PID.TID 0000.0001) System time: 2.1999981254339218E-004 +(PID.TID 0000.0001) Wall clock time: 0.11217331886291504 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.37294303625822067 -(PID.TID 0000.0001) System time: 1.99900008738040924E-003 -(PID.TID 0000.0001) Wall clock time: 0.37475848197937012 +(PID.TID 0000.0001) User time: 0.24885391443967819 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.24888539314270020 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.49959826469421387E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.66883373260498047E-002 +(PID.TID 0000.0001) User time: 1.9329056143760681E-002 +(PID.TID 0000.0001) System time: 4.9000605940818787E-005 +(PID.TID 0000.0001) Wall clock time: 1.9399166107177734E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.09970867633819580E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.15056037902832031E-002 +(PID.TID 0000.0001) User time: 1.2847043573856354E-002 +(PID.TID 0000.0001) System time: 1.0100007057189941E-004 +(PID.TID 0000.0001) Wall clock time: 1.2964487075805664E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.99701702594757080E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.90944290161132813E-003 +(PID.TID 0000.0001) User time: 7.6519660651683807E-003 +(PID.TID 0000.0001) System time: 5.7000666856765747E-005 +(PID.TID 0000.0001) Wall clock time: 7.7202320098876953E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 -(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.99958416819572449E-002 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.5330060869455338E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.5389900207519531E-002 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.39216697961091995 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.98700237274169922E-002 +(PID.TID 0000.0001) Wall clock time: 0.39229059219360352 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 -(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.99931797385215759E-002 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9796192646026611E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.09126186370849609E-002 +(PID.TID 0000.0001) Wall clock time: 2.0051002502441406E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.19938212633132935E-002 +(PID.TID 0000.0001) User time: 2.5183901190757751E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.17943096160888672E-002 +(PID.TID 0000.0001) Wall clock time: 2.5211334228515625E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.98973846435546875E-004 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 2.09283828735351563E-003 +(PID.TID 0000.0001) User time: 3.0340552330017090E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0348300933837891E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00004673004150391E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.40500068664550781E-003 +(PID.TID 0000.0001) User time: 1.8201768398284912E-004 +(PID.TID 0000.0001) System time: 2.0040003582835197E-003 +(PID.TID 0000.0001) Wall clock time: 2.1800994873046875E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -2823,9 +2747,9 @@ (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 6260 +(PID.TID 0000.0001) // No. barriers = 6324 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 6260 +(PID.TID 0000.0001) // Total barrier spins = 6324 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/halfpipe_streamice/code/CPP_OPTIONS.h b/verification/global_oce_biogeo_bling/code/CPP_OPTIONS.h similarity index 72% rename from verification/halfpipe_streamice/code/CPP_OPTIONS.h rename to verification/global_oce_biogeo_bling/code/CPP_OPTIONS.h index 2ce0fd7eac..30029abd86 100644 --- a/verification/halfpipe_streamice/code/CPP_OPTIONS.h +++ b/verification/global_oce_biogeo_bling/code/CPP_OPTIONS.h @@ -15,13 +15,50 @@ CEOP C CPP flags controlling particular source code features +C-- Forcing code options: + C o Shortwave heating as extra term in external_forcing.F C Note: this should be a run-time option #undef SHORTWAVE_HEATING +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived from EOS) +#define INCLUDE_SOUNDSPEED_CALC_CODE + +C-- Vertical mixing code options: + C o Include/exclude call to S/R CONVECT #define INCLUDE_CONVECT_CALL @@ -34,49 +71,53 @@ C o Allow full 3D specification of vertical diffusivity C o Allow latitudinally varying BryanLewis79 vertical diffusivity #undef ALLOW_BL79_LAT_VARY +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#undef EXCLUDE_PCELL_MIX_CODE + +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + C o Include/exclude Implicit vertical advection code #define INCLUDE_IMPLVERTADV_CODE C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 -C o Include/exclude nonHydrostatic code -#undef ALLOW_NONHYDROSTATIC - -C o Allow to account for heating due to friction (and momentum dissipation) -#undef ALLOW_FRICTION_HEATING +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS -C o Allow mass source or sink of Fluid in the interior -C (3-D generalisation of oceanic real-fresh water flux) -#undef ALLOW_ADDFLUID +C-- Model formulation options: -C o Include pressure loading code -#define ATMOSPHERIC_LOADING - -C o exclude/allow external forcing-fields load -C this allows to read & do simple linear time interpolation of oceanic -C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. -#undef EXCLUDE_FFIELDS_LOAD +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV -C o Include/exclude balancing surface forcing fluxes code -#undef ALLOW_BALANCE_FLUXES +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF -C o Include/exclude balancing surface forcing relaxation code -#undef ALLOW_BALANCE_RELAX +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC C o Include/exclude GM-like eddy stress in momentum code #undef ALLOW_EDDYPSI -C o Use "Exact Convervation" of fluid in Free-Surface formulation -C so that d/dt(eta) is exactly equal to - Div.Transport -#define EXACT_CONSERV +C-- Algorithm options: -C o Allow the use of Non-Linear Free-Surface formulation -C this implies that surface thickness (hFactors) vary with time -#undef NONLIN_FRSURF +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver -#undef ALLOW_SRCG +#define ALLOW_SRCG C o Choices for implicit solver routines solve_*diagonal.F C The following has low memory footprint, but not suitable for AD @@ -84,6 +125,8 @@ C The following has low memory footprint, but not suitable for AD C The following one suitable for AD but does not vectorize #undef SOLVE_DIAGONAL_KINNER +C-- Retired code options: + C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) C *only for use on a lat-lon grid* @@ -107,16 +150,13 @@ C The definition of the flag is commented to avoid interference with C such other header files. C#define COSINEMETH_III -C o Use "OLD" UV discretisation near boundaries (*not* recommended) -C Note - only works with #undef NO_SLIP_LATERAL in calc_mom_rhs.F -C because the old code did not have no-slip BCs -#undef OLD_ADV_BCS - C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. #undef OLD_GRID_IO +C-- Other option files: + C o Execution environment support options #include "CPP_EEOPTIONS.h" diff --git a/verification/global_oce_biogeo_bling/code/PTRACERS_SIZE.h b/verification/global_oce_biogeo_bling/code/PTRACERS_SIZE.h index 211e7b94ba..ddee32675b 100644 --- a/verification/global_oce_biogeo_bling/code/PTRACERS_SIZE.h +++ b/verification/global_oce_biogeo_bling/code/PTRACERS_SIZE.h @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 9 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/global_oce_biogeo_bling/code/SIZE.h b/verification/global_oce_biogeo_bling/code/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/global_oce_biogeo_bling/code/SIZE.h +++ b/verification/global_oce_biogeo_bling/code/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/global_oce_biogeo_bling/code/SIZE.h_mpi b/verification/global_oce_biogeo_bling/code/SIZE.h_mpi index ea16afb12e..f29c6042c0 100644 --- a/verification/global_oce_biogeo_bling/code/SIZE.h_mpi +++ b/verification/global_oce_biogeo_bling/code/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/global_oce_biogeo_bling/code_ad/DIAGNOSTICS_SIZE.h b/verification/global_oce_biogeo_bling/code_ad/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..cd61027e7a --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_ad/DIAGNOSTICS_SIZE.h @@ -0,0 +1,28 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numDiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numDiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numDiags = 240 ) + PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_biogeo_bling/code_ad/MDSIO_BUFF_WH.h b/verification/global_oce_biogeo_bling/code_ad/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..43da7d172c --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_ad/MDSIO_BUFF_WH.h @@ -0,0 +1,56 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS/ +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & fld2d_globuff_r8, fld2d_globuff_r4, +#endif + & fld2d_procbuff_r8, fld2d_procbuff_r4 + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=618) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/global_oce_biogeo_bling/code_ad/PTRACERS_SIZE.h b/verification/global_oce_biogeo_bling/code_ad/PTRACERS_SIZE.h index 74fdfd1ee8..22d873cccc 100644 --- a/verification/global_oce_biogeo_bling/code_ad/PTRACERS_SIZE.h +++ b/verification/global_oce_biogeo_bling/code_ad/PTRACERS_SIZE.h @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 8 ) #ifdef ALLOW_AUTODIFF_TAMC -CMM in tamc.h INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/global_oce_biogeo_bling/code_ad/SIZE.h b/verification/global_oce_biogeo_bling/code_ad/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/global_oce_biogeo_bling/code_ad/SIZE.h +++ b/verification/global_oce_biogeo_bling/code_ad/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/global_oce_biogeo_bling/code_ad/SIZE.h_mpi b/verification/global_oce_biogeo_bling/code_ad/SIZE.h_mpi index ea16afb12e..f29c6042c0 100644 --- a/verification/global_oce_biogeo_bling/code_ad/SIZE.h_mpi +++ b/verification/global_oce_biogeo_bling/code_ad/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/global_oce_biogeo_bling/code_ad/ctrl_map_ini_genarr.F b/verification/global_oce_biogeo_bling/code_ad/ctrl_map_ini_genarr.F deleted file mode 100644 index 7838447d25..0000000000 --- a/verification/global_oce_biogeo_bling/code_ad/ctrl_map_ini_genarr.F +++ /dev/null @@ -1,555 +0,0 @@ -#include "CTRL_OPTIONS.h" -#ifdef ALLOW_GMREDI -# include "GMREDI_OPTIONS.h" -#endif -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: CTRL_MAP_INI_GENARR -C !INTERFACE: - SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_INI_GENARR -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "ctrl_dummy.h" -#include "CTRL_FIELDS.h" -#include "CTRL_GENARR.h" -#ifdef ALLOW_PTRACERS -# include "PTRACERS_SIZE.h" -# include "PTRACERS_FIELDS.h" -# ifdef ALLOW_AUTODIFF_TAMC -# include "tamc.h" -# endif -#endif - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - INTEGER myThid - -C !LOCAL VARIABLES: -C == local variables == -#if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL)) - integer iarr -#endif -#ifdef ALLOW_GENARR2D_CONTROL - integer igen_etan,igen_bdrag,igen_geoth -#endif /* ALLOW_GENARR2D_CONTROL */ -#ifdef ALLOW_GENARR3D_CONTROL - integer igen_theta0, igen_salt0 - integer igen_kapgm, igen_kapredi, igen_diffkr -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - integer igen_uvel0, igen_vvel0 -#endif -# ifdef ALLOW_PTRACERS - integer igen_ptr1, igen_ptr2, igen_ptr3 - integer igen_ptr4, igen_ptr5, igen_ptr6 -# endif -#endif /* ALLOW_GENARR3D_CONTROL */ -CEOP - -#ifdef ALLOW_GENARR2D_CONTROL - -C-- generic 2D control variables - - igen_etan=0 - igen_bdrag=0 - igen_geoth=0 - DO iarr = 1, maxCtrlArr2D - if (xx_genarr2d_weight(iarr).NE.' ') then - if (xx_genarr2d_file(iarr)(1:7).EQ.'xx_etan') - & igen_etan=iarr - if (xx_genarr2d_file(iarr)(1:13).EQ.'xx_bottomdrag') - & igen_bdrag=iarr - if (xx_genarr2d_file(iarr)(1:13).EQ.'xx_geothermal') - & igen_geoth=iarr - endif - ENDDO - - if (igen_etan.GT.0) then - call ctrl_map_genarr2d(etaN,igen_etan,myThid) - endif -#ifdef ALLOW_BOTTOMDRAG_CONTROL - if (igen_bdrag.GT.0) - & call ctrl_map_genarr2d(bottomDragFld,igen_bdrag,myThid) -#endif -#ifdef ALLOW_GEOTHERMAL_FLUX - if (igen_geoth.GT.0) - & call ctrl_map_genarr2d(geothermalFlux,igen_geoth,myThid) -#endif - -#endif /* ALLOW_GENARR2D_CONTROL */ - -#ifdef ALLOW_GENARR3D_CONTROL - -C-- generic 3D control variables - - igen_theta0=0 - igen_salt0=0 - igen_kapgm=0 - igen_kapredi=0 - igen_diffkr=0 -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - igen_uvel0=0 - igen_vvel0=0 -#endif -# ifdef ALLOW_PTRACERS - igen_ptr1=0 - igen_ptr2=0 - igen_ptr3=0 - igen_ptr4=0 - igen_ptr5=0 - igen_ptr6=0 -# endif - DO iarr = 1, maxCtrlArr3D - if (xx_genarr3d_weight(iarr).NE.' ') then - if (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') - & igen_theta0=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') - & igen_salt0=iarr - if (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') - & igen_kapgm=iarr - if (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') - & igen_kapredi=iarr - if (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') - & igen_diffkr=iarr -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') - & igen_uvel0=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') - & igen_vvel0=iarr -#endif -# ifdef ALLOW_PTRACERS - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr1') - & igen_ptr1=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr2') - & igen_ptr2=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr3') - & igen_ptr3=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr4') - & igen_ptr4=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr5') - & igen_ptr5=iarr - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_ptr6') - & igen_ptr6=iarr -# endif - endif - ENDDO - - if (igen_theta0.GT.0) - & call ctrl_map_genarr3d(theta,igen_theta0,myThid) - if (igen_salt0.GT.0) - & call ctrl_map_genarr3d(salt,igen_salt0,myThid) -#ifdef ALLOW_KAPGM_CONTROL - if (igen_kapgm.GT.0) - & call ctrl_map_genarr3d(kapgm,igen_kapgm,myThid) -#endif -#ifdef ALLOW_KAPREDI_CONTROL - if (igen_kapredi.GT.0) - & call ctrl_map_genarr3d(kapredi,igen_kapredi,myThid) -#endif -#ifdef ALLOW_3D_DIFFKR - if (igen_diffkr.GT.0) - & call ctrl_map_genarr3d(diffkr,igen_diffkr,myThid) -#endif - -#ifdef ALLOW_PTRACERS -CADJ STORE pTracer=comlev1,key=ikey_dynamics,kind=isbyte - if (igen_ptr1.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,1), - & igen_ptr1,myThid) - endif - if (igen_ptr2.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,2), - & igen_ptr2,myThid) - endif - if (igen_ptr3.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,3), - & igen_ptr3,myThid) - endif - if (igen_ptr4.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,4), - & igen_ptr4,myThid) - endif - if (igen_ptr5.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,5), - & igen_ptr5,myThid) - endif - if (igen_ptr6.GT.0) then - call ctrl_map_genarr3d(pTracer(1-OLx,1-OLy,1,1,1,6), - & igen_ptr6,myThid) - endif -#endif - -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if (igen_uvel0.GT.0 .and. igen_vvel0.GT.0) then - call ctrl_map_genarr3d(uvel,igen_uvel0,myThid) - call ctrl_map_genarr3d(vvel,igen_vvel0,myThid) - CALL EXCH_UV_XYZ_RL(uvel,vvel,.TRUE.,myThid) - endif -#endif - -#endif /* ALLOW_GENARR3D_CONTROL */ - - RETURN - END - -C--------------------------- - -C !ROUTINE: CTRL_MAP_GENARR2D -C !INTERFACE: - SUBROUTINE CTRL_MAP_GENARR2D( fld, iarr, myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_GENARR2D -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - _RL fld (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - INTEGER iarr - INTEGER myThid - -#ifdef ALLOW_GENARR2D_CONTROL - -C !LOCAL VARIABLES: -C == local variables == - integer bi,bj - integer i,j - integer jmin,jmax - integer imin,imax - integer numsmo, k2 - logical dowc01 - logical dosmooth - logical doscaling - _RL xx_gen (1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RS dummyRS(1) - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamebase - INTEGER ILNBLNK - EXTERNAL ILNBLNK - integer ilgen - logical doglobalread - logical ladinit -CEOP - -c-- Now, read the control vector. - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xx_gen(i,j,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - - dosmooth=.false. - dowc01 = .false. - doscaling=.true. - - numsmo=1 - do k2 = 1, maxCtrlProc - if (xx_genarr2d_preproc(k2,iarr).EQ.'WC01') then - dowc01=.TRUE. - if (xx_genarr2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr2d_preproc_i(k2,iarr) - endif - if ((.NOT.dowc01).AND. - & (xx_genarr2d_preproc(k2,iarr).EQ.'smooth')) then - dosmooth=.TRUE. - if (xx_genarr2d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr2d_preproc_i(k2,iarr) - endif - if (xx_genarr2d_preproc(k2,iarr).EQ.'noscaling') then - doscaling=.FALSE. - endif - enddo - - fnamebase = xx_genarr2d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - - CALL MDS_READ_FIELD(xx_genarr2d_weight(iarr),ctrlprec,.FALSE., - & 'RL',1,1,1,wgenarr2d(1-Olx,1-Oly,1,1,iarr),dummyRS,1,mythid) - -#ifdef ALLOW_AUTODIFF - call active_read_xy( fnamegenIn, xx_gen, 1, doglobalread, - & ladinit, optimcycle, mythid, xx_genarr2d_dummy(iarr) ) -#else - CALL READ_REC_XY_RL( fnamegenIn, xx_gen, 1, 1, myThid) -#endif - -#ifdef ALLOW_SMOOTH - IF (useSMOOTH) THEN - IF (dowc01) call smooth_correl2d(xx_gen,maskC,numsmo,mythid) - IF (dosmooth) call smooth2d(xx_gen,maskC,numsmo,mythid) - ENDIF -#endif - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx -c scale param adjustment - if ( (maskC(i,j,1,bi,bj).NE.0.).AND. - & (wgenarr2d(i,j,bi,bj,iarr).GT.0.) ) then - IF (doscaling) then - xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) - & /sqrt( wgenarr2d(i,j,bi,bj,iarr) ) - ENDIF - else - xx_gen(i,j,bi,bj)=0. - endif -c add to model parameter - fld(i,j,bi,bj)=fld(i,j,bi,bj)+xx_gen(i,j,bi,bj) - enddo - enddo - enddo - enddo - -c avoid param out of [boundsVec(1) boundsVec(4)] - CALL CTRL_BOUND_2D(fld,maskC,xx_genarr2d_bounds(1,iarr),myThid) - - CALL EXCH_XY_RL( fld, mythid ) - - CALL MDS_WRITE_FIELD(fnamegenOut,ctrlprec,.FALSE.,.FALSE., - & 'RL',1,1,1,fld,dummyRS,1,optimcycle,mythid) - -#endif /* ALLOW_GENARR2D_CONTROL */ - - RETURN - END - -C--------------------------- - -C !ROUTINE: CTRL_MAP_GENARR3D -C !INTERFACE: - SUBROUTINE CTRL_MAP_GENARR3D( fld, iarr, myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_GENARR3D -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" - -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - _RL fld (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - INTEGER iarr - INTEGER myThid - -#ifdef ALLOW_GENARR3D_CONTROL - -C !LOCAL VARIABLES: -C == local variables == - integer bi,bj - integer i,j,k - integer numsmo,k2 - logical dowc01 - logical dosmooth - logical doscaling - _RL xx_gen (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RS dummyRS(1) - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamebase - INTEGER ILNBLNK - EXTERNAL ILNBLNK - integer ilgen - logical doglobalread - logical ladinit -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - _RL localmask (1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif -CEOP - -c-- Now, read the control vector. - doglobalread = .false. - ladinit = .false. - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO k = 1,nr - DO j = 1-OLy,sNy+OLy - DO i = 1-OLx,sNx+OLx - xx_gen(i,j,k,bi,bj)=0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - ENDDO - - dosmooth=.false. - dowc01 = .false. - doscaling=.true. - - numsmo=1 - do k2 = 1, maxCtrlProc - if (xx_genarr3d_preproc(k2,iarr).EQ.'WC01') then - dowc01=.TRUE. - if (xx_genarr3d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr3d_preproc_i(k2,iarr) - endif - if ((.NOT.dowc01).AND. - & (xx_genarr3d_preproc(k2,iarr).EQ.'smooth')) then - dosmooth=.TRUE. - if (xx_genarr3d_preproc_i(k2,iarr).NE.0) - & numsmo=xx_genarr3d_preproc_i(k2,iarr) - endif - if (xx_genarr3d_preproc(k2,iarr).EQ.'noscaling') then - doscaling=.FALSE. - endif - enddo - - fnamebase = xx_genarr3d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - - CALL MDS_READ_FIELD(xx_genarr3d_weight(iarr),ctrlprec,.FALSE., - & 'RL',nR,1,nR,wgenarr3d(1-Olx,1-Oly,1,1,1,iarr),dummyRS,1,mythid) - -#ifdef ALLOW_AUTODIFF - call active_read_xyz( fnamegenIn, xx_gen, 1, doglobalread, - & ladinit, optimcycle, mythid, xx_genarr3d_dummy(iarr) ) -#else - CALL READ_REC_XYZ_RL( fnamegenIn, xx_gen, 1, 1, myThid) -#endif - -#ifdef ALLOW_SMOOTH - IF (useSMOOTH) THEN - IF (dowc01) call smooth_correl3d(xx_gen,numsmo,mythid) - IF (dosmooth) call smooth3d(xx_gen,numsmo,mythid) - ENDIF -#endif - -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) -c-- set local mask - call ecco_zero(localmask,Nr,zeroRL,myThid) - if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') then - call ecco_cprsrl(maskW,nr,localmask,nr,myThid) - else if (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') then - call ecco_cprsrl(maskS,nr,localmask,nr,myThid) - else - call ecco_cprsrl(maskC,nr,localmask,nr,myThid) - endif -#endif - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,nr - DO j = 1,sNy - DO i = 1,sNx -c scale param adjustment -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - if ( (localmask(i,j,k,bi,bj).NE.0.).AND. -#else - if ( (maskC(i,j,k,bi,bj).NE.0.).AND. -#endif - & (wgenarr3d(i,j,k,bi,bj,iarr).GT.0.) ) then - IF (doscaling) then - xx_gen(i,j,k,bi,bj)=xx_gen(i,j,k,bi,bj) - & /sqrt( wgenarr3d(i,j,k,bi,bj,iarr) ) - ENDIF - else - xx_gen(i,j,k,bi,bj)=0. - endif -c add to model parameter - fld(i,j,k,bi,bj)=fld(i,j,k,bi,bj)+xx_gen(i,j,k,bi,bj) - enddo - enddo - enddo - enddo - enddo - -c avoid param out of [boundsVec(1) boundsVec(4)] -#if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) - CALL CTRL_BOUND_3D(fld,localmask, - & xx_genarr3d_bounds(1,iarr),myThid) -#else - CALL CTRL_BOUND_3D(fld,maskC,xx_genarr3d_bounds(1,iarr),myThid) -#endif - -C The tile exchange for xx_uvel and xx_vvel will be -C done in CTRL_MAP_INI_GENARR.F when both -C xx_uvel and xx_vvel are read in. - if (xx_genarr3d_file(iarr)(1:7).NE.'xx_uvel'.AND. - & xx_genarr3d_file(iarr)(1:7).NE.'xx_vvel') - & CALL EXCH_XYZ_RL( fld, mythid ) - - CALL MDS_WRITE_FIELD(fnamegenOut,ctrlprec,.FALSE.,.FALSE., - & 'RL',nr,1,nr,fld,dummyRS,1,optimcycle,mythid) - -#endif /* ALLOW_GENARR3D_CONTROL */ - - RETURN - END diff --git a/verification/global_oce_biogeo_bling/code_ad/packages.conf b/verification/global_oce_biogeo_bling/code_ad/packages.conf index a835229916..c22f4e094f 100644 --- a/verification/global_oce_biogeo_bling/code_ad/packages.conf +++ b/verification/global_oce_biogeo_bling/code_ad/packages.conf @@ -8,6 +8,7 @@ ptracers gchem bling profiles +diagnostics ecco autodiff diff --git a/verification/global_oce_biogeo_bling/code_ad/profiles_interp.F b/verification/global_oce_biogeo_bling/code_ad/profiles_interp.F index da0b307424..eaac070676 100644 --- a/verification/global_oce_biogeo_bling/code_ad/profiles_interp.F +++ b/verification/global_oce_biogeo_bling/code_ad/profiles_interp.F @@ -18,7 +18,7 @@ SUBROUTINE profiles_interp( I var_cur, I itr_cur, I file_cur, - I mytime, + I myTime, I bi, I bj, I myThid @@ -36,7 +36,8 @@ SUBROUTINE profiles_interp( # include "cal.h" #endif #ifdef ALLOW_ECCO -# include "ecco.h" +# include "ECCO_SIZE.h" +# include "ECCO.h" #endif #ifdef ALLOW_PROFILES # include "PROFILES_SIZE.h" @@ -50,8 +51,8 @@ SUBROUTINE profiles_interp( #include "BLING_VARS.h" #endif C ==================== Routine Variables ========================== - _RL mytime - integer mythid + _RL myTime + integer myThid integer file_cur, itr_cur character*(8) var_cur #ifndef ALLOW_PROFILES diff --git a/verification/global_oce_biogeo_bling/code_ad/tamc.h b/verification/global_oce_biogeo_bling/code_ad/tamc.h index bb6f10317d..d14ae7b533 100644 --- a/verification/global_oce_biogeo_bling/code_ad/tamc.h +++ b/verification/global_oce_biogeo_bling/code_ad/tamc.h @@ -1,123 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(myThid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(myThid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = Nr*nSx*nSy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING -C run 87630 time steps -C 16 usually runs OK -C - integer nchklev_1 - parameter( nchklev_1 = 1 ) - integer nchklev_2 - parameter( nchklev_2 = 2 ) - integer nchklev_3 - parameter( nchklev_3 = 2 ) - integer nchklev_4 - parameter( nchklev_4 = 1 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 2 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 2 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte - PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers #ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 3 ) + PARAMETER( maxpass = 3 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 3 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/global_oce_biogeo_bling/code_tap/AUTODIFF_OPTIONS.h b/verification/global_oce_biogeo_bling/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..b92794d8d2 --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_ad/CPP_OPTIONS.h b/verification/global_oce_biogeo_bling/code_tap/CPP_OPTIONS.h similarity index 86% rename from verification/halfpipe_streamice/code_ad/CPP_OPTIONS.h rename to verification/global_oce_biogeo_bling/code_tap/CPP_OPTIONS.h index 2b7bf5b2df..2e5fc65d92 100644 --- a/verification/halfpipe_streamice/code_ad/CPP_OPTIONS.h +++ b/verification/global_oce_biogeo_bling/code_tap/CPP_OPTIONS.h @@ -17,7 +17,10 @@ C CPP flags controlling particular source code features C o Shortwave heating as extra term in external_forcing.F C Note: this should be a run-time option -#undef SHORTWAVE_HEATING +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE @@ -38,7 +41,7 @@ C o Include/exclude Implicit vertical advection code #define INCLUDE_IMPLVERTADV_CODE C o Include/exclude AdamsBashforth-3rd-Order code -#undef ALLOW_ADAMSBASHFORTH_3 +#define ALLOW_ADAMSBASHFORTH_3 C o Include/exclude nonHydrostatic code #undef ALLOW_NONHYDROSTATIC @@ -69,11 +72,13 @@ C o Include/exclude GM-like eddy stress in momentum code C o Use "Exact Convervation" of fluid in Free-Surface formulation C so that d/dt(eta) is exactly equal to - Div.Transport -#define EXACT_CONSERV +#undef EXACT_CONSERV C o Allow the use of Non-Linear Free-Surface formulation C this implies that surface thickness (hFactors) vary with time #undef NONLIN_FRSURF +#undef DISABLE_RSTAR_CODE +#define DISABLE_SIGMA_CODE C o Include/exclude code for single reduction Conjugate-Gradient solver #undef ALLOW_SRCG @@ -82,7 +87,7 @@ C o Choices for implicit solver routines solve_*diagonal.F C The following has low memory footprint, but not suitable for AD #undef SOLVE_DIAGONAL_LOWMEMORY C The following one suitable for AD but does not vectorize -#undef SOLVE_DIAGONAL_KINNER +#define SOLVE_DIAGONAL_KINNER C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) @@ -108,26 +113,22 @@ C such other header files. C#define COSINEMETH_III C o Use "OLD" UV discretisation near boundaries (*not* recommended) -C Note - only works with #undef NO_SLIP_LATERAL in calc_mom_rhs.F +C Note - only works with pkg/mom_fluxform and "no_slip_sides=.FALSE." C because the old code did not have no-slip BCs -#undef OLD_ADV_BCS +#undef OLD_ADV_BCS C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. #undef OLD_GRID_IO +C o Use old EXTERNAL_FORCING_U,V,T,S subroutines (for backward compatibility) +#undef USE_OLD_EXTERNAL_FORCING + +#define EXCLUDE_PCELL_MIX_CODE + C o Execution environment support options #include "CPP_EEOPTIONS.h" -C o Include/exclude single header file containing multiple packages options -C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where -C each of the above pkg get its own options from its specific option file. -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progress to allow to use the -C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif - #endif /* CPP_OPTIONS_H */ + diff --git a/verification/global_oce_biogeo_bling/code_tap/CTRL_OPTIONS.h b/verification/global_oce_biogeo_bling/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..c61f59502f --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,60 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o I/O and pack settings +#define CTRL_SET_PREC_32 +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO +#define ALLOW_PACKUNPACK_METHOD2 +CMM( +#define EXCLUDE_CTRL_PACK +CMM) + +C o sets of controls +#define ALLOW_GENTIM2D_CONTROL +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL + +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel23 to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D + +C o impose bounds on controls +CMM#define ALLOW_ADCTRLBOUND + +C o rotate u/v vector control to zonal/meridional +C components +CMM#define ALLOW_ROTATE_UV_CONTROLS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ + diff --git a/verification/global_oce_biogeo_bling/code_tap/CTRL_SIZE.h b/verification/global_oce_biogeo_bling/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..3b825e5cc2 --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 8 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_biogeo_bling/code_tap/DIAGNOSTICS_SIZE.h b/verification/global_oce_biogeo_bling/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..cd61027e7a --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,28 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numDiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numDiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numDiags = 240 ) + PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_biogeo_bling/code_tap/ECCO_OPTIONS.h b/verification/global_oce_biogeo_bling/code_tap/ECCO_OPTIONS.h new file mode 100644 index 0000000000..312710da1f --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/ECCO_OPTIONS.h @@ -0,0 +1,71 @@ +CBOP +C !ROUTINE: ECCO_OPTIONS.h +C !INTERFACE: +C #include "ECCO_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for ECCO (ecco) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef ECCO_OPTIONS_H +#define ECCO_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_ECCO +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here +C + +C >>> use model/src/forward_step.F +CMM obsolete now #define ALLOW_ECCO_EVOLUTION + +C >>> Cost function contributions +#define ALLOW_ECCO_OLD_FC_PRINT + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost function terms. +C > In data.ecco, this requires the specification of data file (name, frequency, +C etc.), bar file name for corresp. model average, standard error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to increase +C NGENCOST, and editing cost_gencost_customize.F to implement the actual +C model average (i.e. the bar file content). +#define ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined elements (e.g. +C psbar and and topex data) while taking advantage of the cost function/namelist slots +C that can be made available using ALLOW_GENCOST_CONTRIBUTION. To this end +C ALLOW_GENCOST_CONTRIBUTION simply switches off tests that check whether all of the +C gencost elements (e.g. gencost_barfile and gencost_datafile) are specified in data.ecco. +C > While this option increases flexibility within the gencost framework, it implies more room +C for error, so it should be used cautiously, and with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing cost_gencost_all.F accordingly. +#define ALLOW_GENCOST_FREEFORM +C >>> 3 dimensional version of GENCOST: +#define ALLOW_GENCOST3D + +c in case there is a single observational file (rather than yearly files) +c assume it contains a climatology (otherwise, assume it is a full time series) +#define COST_GENERIC_ASSUME_CYCLIC + +c include global mean steric sea level correction in etanFull +CMM #define ALLOW_PSBAR_STERIC +CMM#define ALLOW_SHALLOW_ALTIMETRY +#undef ALLOW_HIGHLAT_ALTIMETRY + +C >>> In-Situ Profiles. +#define ALLOW_PROFILES_CONTRIBUTION + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_ECCO */ +#endif /* ECCO_OPTIONS_H */ + diff --git a/verification/global_oce_biogeo_bling/code_tap/GMREDI_OPTIONS.h b/verification/global_oce_biogeo_bling/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..98d1c2a39e --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,52 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +C Following option avoids specific recomputation in adjoint +C routines of gmredi_x/y/rtransport +C It is not needed, only for tests, and very memory-consuming +#undef GM_AUTODIFF_EXCESSIVE_STORE + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_biogeo_bling/code_tap/MDSIO_BUFF_WH.h b/verification/global_oce_biogeo_bling/code_tap/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..43da7d172c --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/MDSIO_BUFF_WH.h @@ -0,0 +1,56 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS/ +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & fld2d_globuff_r8, fld2d_globuff_r4, +#endif + & fld2d_procbuff_r8, fld2d_procbuff_r4 + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=618) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/global_oce_biogeo_bling/code_tap/PROFILES_SIZE.h b/verification/global_oce_biogeo_bling/code_tap/PROFILES_SIZE.h new file mode 100644 index 0000000000..a3582bb852 --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/PROFILES_SIZE.h @@ -0,0 +1,19 @@ +C============================================================ +C NOBSGLOB :: maximum number of profiles per file and tile +C NFILESPROFMAX :: maximum number of files +C NVARMAX :: maximum number of variables +C NLEVELMAX :: maximum number of vertical levels +C NUM_INTERP_POINTS :: number of points used in horizontal averaging +C============================================================ + + INTEGER NOBSGLOB + PARAMETER ( NOBSGLOB = 500 ) + INTEGER NFILESPROFMAX + PARAMETER ( NFILESPROFMAX=20 ) + INTEGER NVARMAX + PARAMETER ( NVARMAX=16 ) + INTEGER NLEVELMAX + PARAMETER ( NLEVELMAX=110 ) + INTEGER NUM_INTERP_POINTS + PARAMETER (NUM_INTERP_POINTS = 4) + diff --git a/verification/tutorial_tracer_adjsens/code_oad/PTRACERS_SIZE.h b/verification/global_oce_biogeo_bling/code_tap/PTRACERS_SIZE.h similarity index 88% rename from verification/tutorial_tracer_adjsens/code_oad/PTRACERS_SIZE.h rename to verification/global_oce_biogeo_bling/code_tap/PTRACERS_SIZE.h index b2f9ebc60f..22d873cccc 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/PTRACERS_SIZE.h +++ b/verification/global_oce_biogeo_bling/code_tap/PTRACERS_SIZE.h @@ -4,7 +4,7 @@ CBOP C !ROUTINE: PTRACERS_SIZE.h C !INTERFACE: C #include PTRACERS_SIZE.h - + C !DESCRIPTION: C Contains passive tracer array size (number of tracers). @@ -13,10 +13,9 @@ C and is set here (default 1) C C Number of tracers INTEGER PTRACERS_num - PARAMETER(PTRACERS_num = 1 ) + PARAMETER(PTRACERS_num = 8 ) #ifdef ALLOW_AUTODIFF_TAMC -c daiwei INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/global_oce_biogeo_bling/code_tap/SIZE.h b/verification/global_oce_biogeo_bling/code_tap/SIZE.h new file mode 100644 index 0000000000..4ea7afba4b --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 64, + & sNy = 32, + & OLx = 4, + & OLy = 4, + & nSx = 2, + & nSy = 2, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_oce_biogeo_bling/code_tap/SIZE.h_mpi b/verification/global_oce_biogeo_bling/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..f29c6042c0 --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 64, + & sNy = 32, + & OLx = 4, + & OLy = 4, + & nSx = 1, + & nSy = 1, + & nPx = 2, + & nPy = 2, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_oce_biogeo_bling/code_tap/packages.conf b/verification/global_oce_biogeo_bling/code_tap/packages.conf new file mode 100644 index 0000000000..3a4aa0e88d --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/packages.conf @@ -0,0 +1,19 @@ +#-- list of packages (or group of packages) to compile for this experiment: +exch2 +gfd +cd_code +gmredi +cal +ptracers +gchem +bling +profiles +diagnostics +#mnc + +ecco +autodiff +cost +ctrl +grdchk +tapenade diff --git a/verification/global_oce_biogeo_bling/code_tap/profiles_interp.F b/verification/global_oce_biogeo_bling/code_tap/profiles_interp.F new file mode 100644 index 0000000000..eaac070676 --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/profiles_interp.F @@ -0,0 +1,191 @@ +#include "PROFILES_OPTIONS.h" +#ifdef ALLOW_ECCO +# include "ECCO_OPTIONS.h" +#endif + +C o==========================================================o +C | subroutine profiles_interp | +C | o 3D interpolation of model counterparts | +C | for netcdf profiles data | +C | started: Gael Forget 15-March-2006 | +C o==========================================================o + + SUBROUTINE profiles_interp( + O traj_cur_out, + I i_cur, + I j_cur, + I weights_cur, + I var_cur, + I itr_cur, + I file_cur, + I myTime, + I bi, + I bj, + I myThid + & ) + + implicit none + +C ==================== Global Variables =========================== +#include "EEPARAMS.h" +#include "SIZE.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "PARAMS.h" +#ifdef ALLOW_CAL +# include "cal.h" +#endif +#ifdef ALLOW_ECCO +# include "ECCO_SIZE.h" +# include "ECCO.h" +#endif +#ifdef ALLOW_PROFILES +# include "PROFILES_SIZE.h" +# include "profiles.h" +#endif +#ifdef ALLOW_PTRACERS +#include "PTRACERS_SIZE.h" +#include "PTRACERS_FIELDS.h" +#endif +#ifdef ALLOW_BLING +#include "BLING_VARS.h" +#endif +C ==================== Routine Variables ========================== + _RL myTime + integer myThid + integer file_cur, itr_cur + character*(8) var_cur +#ifndef ALLOW_PROFILES + _RL traj_cur_out, weights_cur + integer i_cur, j_cur +#else + _RL traj_cur_out(NLEVELMAX) + _RL weights_cur(NUM_INTERP_POINTS) + integer i_cur(NUM_INTERP_POINTS) + integer j_cur(NUM_INTERP_POINTS) +#endif + +C ==================== Local Variables ========================== + _RL tab_coeffs1(NUM_INTERP_POINTS) + _RL tab_coeffs3(NUM_INTERP_POINTS) + _RL ponderations(NUM_INTERP_POINTS),pondsSUM + integer q,k,kk,kcur,bi,bj + _RL traj_cur(nR),mask_cur(nR) + _RL tmp_coeff + +c == external functions == + integer ILNBLNK + EXTERNAL ILNBLNK + +c-- == end of interface == + +c horizontal interpolation: + do k=1,nr + pondsSUM=0. _d 0 + do q=1,NUM_INTERP_POINTS + if (var_cur.EQ.'theta') then + tab_coeffs1(q)=theta(i_cur(q),j_cur(q),k,bi,bj) + elseif (var_cur.EQ.'salt') then + tab_coeffs1(q)=salt(i_cur(q),j_cur(q),k,bi,bj) + elseif (var_cur.EQ.'pTracer') then +#ifdef ALLOW_PTRACERS + tab_coeffs1(q)=pTracer(i_cur(q),j_cur(q),k,bi,bj, + & itr_cur) +#else + tab_coeffs1(q)=0. _d 0 +#endif +#ifdef ALLOW_BLING + elseif (var_cur.EQ.'PCO') then + tab_coeffs1(q)=pCO2(i_cur(q),j_cur(q),bi,bj) + elseif (var_cur.EQ.'PH') then + tab_coeffs1(q)=pH(i_cur(q),j_cur(q),k,bi,bj) + elseif (var_cur.EQ.'CHL') then + tab_coeffs1(q)=CHL(i_cur(q),j_cur(q),k,bi,bj) + elseif (var_cur.EQ.'POC') then + tab_coeffs1(q)=POC(i_cur(q),j_cur(q),k,bi,bj) +#endif +#ifdef ALLOW_ECCO + elseif (var_cur.EQ.'eta') then + tab_coeffs1(q)=m_eta(i_cur(q),j_cur(q),bi,bj) +#endif + elseif (var_cur.EQ.'UE') then + tab_coeffs1(q)=m_UE(i_cur(q),j_cur(q),k,bi,bj) + elseif (var_cur.EQ.'VN') then + tab_coeffs1(q)=m_VN(i_cur(q),j_cur(q),k,bi,bj) + else + tab_coeffs1(q)=0. _d 0 + endif + tab_coeffs3(q)=maskC(i_cur(q),j_cur(q),k,bi,bj) + + ponderations(q)=tab_coeffs3(q)*weights_cur(q) + pondsSUM=pondsSUM+ponderations(q) + enddo + + if (pondsSUM.GT.0) then + traj_cur(k)=0. _d 0 + mask_cur(k)=1. _d 0 + do q=1,NUM_INTERP_POINTS + traj_cur(k)=traj_cur(k) + & +tab_coeffs1(q)*ponderations(q)/pondsSUM + enddo + else + traj_cur(k)=0. _d 0 + mask_cur(k)=0. _d 0 + endif + enddo + +c vertical interpolation: + do kk=1,NLEVELMAX + traj_cur_out(kk)=0 + prof_mask1D_cur(kk,bi,bj)=0 + enddo + do kk=1,ProfDepthNo(file_cur,bi,bj) +c case 1: above first grid center=> first grid center value + if (prof_depth(file_cur,kk,bi,bj).LT.-rC(1)) then + traj_cur_out(kk)=traj_cur(1) + prof_mask1D_cur(kk,bi,bj)=mask_cur(1) +c case 2: just below last grid center=> last cell value + elseif (prof_depth(file_cur,kk,bi,bj).GE.-rC(nr)) then + if ( prof_depth(file_cur,kk,bi,bj) .LT. + & (-rC(nr)+drC(nr)/2) ) then + traj_cur_out(kk)=traj_cur(nr) + prof_mask1D_cur(kk,bi,bj)=mask_cur(nr) + endif +c case 3: between two grid centers + else + kcur=0 + do k=1,nr-1 + if ((prof_depth(file_cur,kk,bi,bj).GE.-rC(k)).AND. + & (prof_depth(file_cur,kk,bi,bj).LT.-rC(k+1))) then + kcur=k + endif + enddo + if (kcur.EQ.0) then + WRITE(errorMessageUnit,'(A)') + & 'ERROR in PROFILES_INTERP: unexpected case 1' + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R PROFILES_INTERP' + endif + if (mask_cur(kcur+1).EQ.1.) then +c subcase 1: 2 wet points=>linear interpolation + tmp_coeff=(prof_depth(file_cur,kk,bi,bj)+rC(kcur))/ + & (-rC(kcur+1)+rC(kcur)) + traj_cur_out(kk)=(1-tmp_coeff)*traj_cur(kcur) + & +tmp_coeff*traj_cur(kcur+1) + prof_mask1D_cur(kk,bi,bj)=1 + if (mask_cur(kcur).EQ.0.) then + WRITE(errorMessageUnit,'(A)') + & 'ERROR in PROFILES_INTERP: unexpected case 2' + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R PROFILES_INTERP' + endif + elseif (prof_depth(file_cur,kk,bi,bj).LT.-rF(kcur+1)) then +c subcase 2: only 1 wet point just above=>upper cell value + traj_cur_out(kk)=traj_cur(kcur) + prof_mask1D_cur(kk,bi,bj)=mask_cur(kcur) + endif + endif + enddo + + RETURN + END diff --git a/verification/global_oce_biogeo_bling/code_tap/profiles_readparms.F b/verification/global_oce_biogeo_bling/code_tap/profiles_readparms.F new file mode 100644 index 0000000000..639c21a19b --- /dev/null +++ b/verification/global_oce_biogeo_bling/code_tap/profiles_readparms.F @@ -0,0 +1,252 @@ +#include "PROFILES_OPTIONS.h" + + subroutine profiles_readparms( myThid ) + +c ================================================================== +c SUBROUTINE profiles_readparms +c ================================================================== +c +c o This routine initialises the package cost. +c started: Ralf Giering 18-Jan-2001 +c +c ================================================================== +c SUBROUTINE profiles_readparms +c ================================================================== + + implicit none + +c == global variables == + +#include "EEPARAMS.h" +#include "SIZE.h" +#include "GRID.h" +#include "PARAMS.h" + +#include "PROFILES_SIZE.h" +#include "profiles.h" + +c == routine arguments == + + integer myThid + +c == local variables == +C msgBuf - Informational/error message buffer +C iUnit - Work variable for IO unit number + CHARACTER*(MAX_LEN_MBUF) msgBuf + INTEGER iUnit, num_file, num_var, IL + LOGICAL exst, specifiedNames + character*(128) fname + +C !FUNCTIONS + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +c == end of interface == + +c-- Read the namelist input. + namelist /profiles_nml/ + & profilesDir, + & profilesfiles, + & mult_profiles, + & mult_profiles_mean, +#ifdef ALLOW_PROFILES_SAMPLESPLIT_COST +C number of independent samples + & profiles_mean_indsamples, +#endif + & prof_facmod, + & prof_names, + & prof_namesmod, +#ifdef ALLOW_PROFILES_CLIMMASK + & prof_namesclim, +#endif + & prof_itracer, + & profilesDoNcOutput, + & profilesDoGenGrid + + IF ( .NOT.usePROFILES ) THEN +C- pkg PROFILES is not used + _BEGIN_MASTER(myThid) +C- Track pkg activation status: +C print a (weak) warning if data.profiles is found + CALL PACKAGES_UNUSED_MSG( 'usePROFILES', ' ', ' ' ) + _END_MASTER(myThid) + RETURN + ENDIF + + _BEGIN_MASTER( myThid ) + +c-- Set default values. + profilesDir=' ' + + do num_file=1,NFILESPROFMAX + profilesfiles(num_file) = ' ' + enddo + + do num_file=1,NFILESPROFMAX + do num_var=1,NVARMAX + mult_profiles(num_file,num_var) = 1. _d 0 + prof_facmod(num_file,num_var) = 1. _d 0 + prof_names(num_file,num_var)='empty' + prof_itracer(num_file,num_var)=1 + prof_namesmod(num_file,num_var)='empty' +#ifdef ALLOW_PROFILES_CLIMMASK + prof_namesclim(num_file,num_var)='empty' +#endif + enddo + enddo + do num_var=1,NVARMAX + mult_profiles_mean(num_var) = 1. _d 0 +#ifdef ALLOW_PROFILES_SAMPLESPLIT_COST + profiles_mean_indsamples(num_var) = 1 +#endif + enddo + + profilesDoNcOutput=.false. + + IF ( (.NOT.usingSphericalPolarGrid .OR. rotateGrid) ) THEN + profilesDoGenGrid=.true. + ELSE + profilesDoGenGrid=.false. + ENDIF + +c-- Next, read the cost data file. + WRITE(msgBuf,'(A)') 'PROFILES_READPARMS: opening data.profiles' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + + CALL OPEN_COPY_DATA_FILE( + I 'data.profiles', 'PROFILES_READPARMS', + O iUnit, + I myThid ) + + READ( iUnit, nml = profiles_nml ) + + WRITE(msgBuf,'(2A)') 'PROFILES_READPARMS: ', + & 'finished reading data.profiles' + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT , 1) + +#ifdef SINGLE_DISK_IO + CLOSE(iUnit) +#else + CLOSE(iUnit,STATUS='DELETE') +#endif /* SINGLE_DISK_IO */ + + do num_file=1,NFILESPROFMAX + + specifiedNames=.FALSE. + do num_var=1,NVARMAX + if (prof_names(num_file,num_var).NE.'empty') + & specifiedNames=.TRUE. + enddo + + if (.NOT.specifiedNames) then + prof_names(num_file,1)='prof_T' + prof_names(num_file,2)='prof_S' +C----- local version addition: start + prof_names(num_file,3)='prof_U' + prof_names(num_file,4)='prof_V' + prof_names(num_file,5)='prof_ptr' + prof_names(num_file,6)='prof_ssh' + prof_names(num_file,7)='prof_DIC' + prof_names(num_file,8)='prof_ALK' + prof_names(num_file,9)='prof_O2' + prof_names(num_file,10)='prof_NO3' + prof_names(num_file,11)='prof_PO4' + prof_names(num_file,12)='prof_FE' + prof_names(num_file,13)='prof_PCO' + prof_names(num_file,14)='prof_PH' + prof_names(num_file,15)='prof_CHL' + prof_names(num_file,16)='prof_POC' + + prof_itracer(num_file,1)=1 + prof_itracer(num_file,2)=1 + prof_itracer(num_file,3)=1 + prof_itracer(num_file,4)=1 + prof_itracer(num_file,5)=1 + prof_itracer(num_file,6)=1 + prof_itracer(num_file,7)=1 + prof_itracer(num_file,8)=2 + prof_itracer(num_file,9)=3 + prof_itracer(num_file,10)=4 + prof_itracer(num_file,11)=5 + prof_itracer(num_file,12)=6 + prof_itracer(num_file,13)=1 + prof_itracer(num_file,14)=1 + prof_itracer(num_file,15)=1 + prof_itracer(num_file,16)=1 +C----- local version addition: end + prof_namesmod(num_file,1)='theta' + prof_namesmod(num_file,2)='salt' +C----- local version addition: start + prof_namesmod(num_file,3)='uVel' + prof_namesmod(num_file,4)='vVel' + prof_namesmod(num_file,5)='pTracer' + prof_namesmod(num_file,6)='etaN' + prof_namesmod(num_file,7)='pTracer' + prof_namesmod(num_file,8)='pTracer' + prof_namesmod(num_file,9)='pTracer' + prof_namesmod(num_file,10)='pTracer' + prof_namesmod(num_file,11)='pTracer' + prof_namesmod(num_file,12)='pTracer' + prof_namesmod(num_file,13)='PCO' + prof_namesmod(num_file,14)='PH' + prof_namesmod(num_file,15)='CHL' + prof_namesmod(num_file,16)='POC' +C----- local version addition: end +#ifdef ALLOW_PROFILES_CLIMMASK + prof_namesclim(num_file,1)='prof_Tclim' + prof_namesclim(num_file,2)='prof_Sclim' +#endif + endif + + do num_var=1,NVARMAX + if (((prof_names(num_file,num_var).NE.'empty').AND. + & (prof_namesmod(num_file,num_var).EQ.'empty')).OR. + & ((prof_names(num_file,num_var).EQ.'empty').AND. + & (prof_namesmod(num_file,num_var).NE.'empty'))) then + print*,'prof_names=',prof_names(num_file,num_var),' ', + & prof_namesmod(num_file,num_var),' ',num_file,num_var + WRITE(errorMessageUnit,'(2A)') + & 'ERROR in PROFILES_READPARMS: inconsistent ', + & 'prof_names and prof_namesmod' + CALL ALL_PROC_DIE( myThid ) + STOP 'ABNORMAL END: S/R PROFILES_READPARMS' + endif + enddo + + do num_var=1,NVARMAX + IL = ILNBLNK( prof_names(num_file,num_var) ) + WRITE(prof_namesmask(num_file,num_var),'(2A)') + & prof_names(num_file,num_var)(1:IL),'mask' + WRITE(prof_namesweight(num_file,num_var),'(2A)') + & prof_names(num_file,num_var)(1:IL),'weight' +#ifdef ALLOW_PROFILES_CLIMMASK + WRITE(prof_namesclim(num_file,num_var),'(2A)') + & prof_names(num_file,num_var)(1:IL),'clim' +#endif + enddo + + if ( profilesfiles(num_file) .NE. ' ' ) then + IL = ILNBLNK( profilesfiles(num_file) ) + fname = profilesfiles(num_file)(1:IL)//'.nc' + inquire( file=fname, exist=exst ) + if (.NOT.exst) then +c warn user as we override profilesfiles + WRITE(msgBuf,'(3A)') + & '** WARNING ** PROFILES_READPARMS: missing file: ', + & profilesfiles(num_file)(1:IL),' gets switched off' + CALL PRINT_MESSAGE( msgBuf, errorMessageUnit, + & SQUEEZE_RIGHT , myThid) +c switch off this file (and potential cost function term) + profilesfiles(num_file) = ' ' + endif + endif + enddo + + _END_MASTER( myThid ) + + _BARRIER + + RETURN + END diff --git a/verification/global_oce_biogeo_bling/input/data.diagnostics b/verification/global_oce_biogeo_bling/input/data.diagnostics index d0f5c0da1b..1f020611ef 100644 --- a/verification/global_oce_biogeo_bling/input/data.diagnostics +++ b/verification/global_oce_biogeo_bling/input/data.diagnostics @@ -23,6 +23,10 @@ 'TRAC04 ','TRAC05 ','TRAC06 ', 'TRAC07 ','TRAC08 ', frequency(1) = 432000., + + fileName(2) = 'soundSpeedDiag', + fields(1:1,2) = 'CSound ', + frequency(2) = 86400., & #-------------------- diff --git a/verification/global_oce_biogeo_bling/input_ad/data b/verification/global_oce_biogeo_bling/input_ad/data index dcd5c75cc6..1c816e396d 100644 --- a/verification/global_oce_biogeo_bling/input_ad/data +++ b/verification/global_oce_biogeo_bling/input_ad/data @@ -42,31 +42,31 @@ # Time stepping parameters &PARM03 - nIter0=0, + nIter0= 0, nTimeSteps = 4, - deltaTmom = 900., - tauCD = 321428., - deltaTtracer= 900., - deltaTClock = 900., + deltaT = 900., + tauCD = 321428., abEps = 0.1, pChkptFreq = 216000., chkptFreq = 216000., dumpFreq = 216000., # taveFreq = 216000., + monitorSelect= 2, monitorFreq= 86400., tauThetaClimRelax = 5184000., tauSaltClimRelax = 7776000., periodicExternalForcing=.TRUE., externForcingPeriod=2592000., externForcingCycle=31104000., - monitorFreq= 1., + monitorFreq= 3600., + adjMonitorFreq= 1., & # Gridding parameters &PARM04 usingSphericalPolarGrid=.TRUE., - delZ= 50., 70., 100., 140., 190., - 240., 290., 340., 390., 440., + delZ= 50., 70., 100., 140., 190., + 240., 290., 340., 390., 440., 490., 540., 590., 640., 690., ygOrigin=-90., delX=128*2.8125, diff --git a/verification/global_oce_biogeo_bling/input_ad/data.ctrl b/verification/global_oce_biogeo_bling/input_ad/data.ctrl index bf0449a28d..7e81e8d33b 100644 --- a/verification/global_oce_biogeo_bling/input_ad/data.ctrl +++ b/verification/global_oce_biogeo_bling/input_ad/data.ctrl @@ -27,51 +27,51 @@ &CTRL_NML_GENARR # Ini Cndtns # xx_genarr3d_weight(1) = 'wt_theta.bin', - xx_genarr3d_weight(1) = 'wt_ones.bin', + xx_genarr3d_weight(1) = 'ones_32b.bin', xx_genarr3d_file(1)='xx_theta', # xx_genarr3d_preproc(1,1)='smooth', # no bounds: xx_genarr3d_bounds(1:5,1)=-2.0,-1.9,39.,40.,0., mult_genarr3d(1) = 1.0, # # xx_genarr3d_weight(2) = 'wt_salt.bin', - xx_genarr3d_weight(2) = 'wt_ones.bin', + xx_genarr3d_weight(2) = 'ones_32b.bin', xx_genarr3d_file(2)='xx_salt', # xx_genarr3d_preproc(1,2)='smooth', # xx_genarr3d_bounds(1:5,2)=29.,29.5,40.5,41.,0., mult_genarr3d(2) = 1.0, # # xx_genarr3d_weight(3) = 'wt_DIC.bin', - xx_genarr3d_weight(3) = 'wt_ones.bin', + xx_genarr3d_weight(3) = 'ones_32b.bin', xx_genarr3d_file(3)='xx_ptr1', # xx_genarr3d_preproc(1,3)='smooth', mult_genarr3d(3) = 1.0, # # xx_genarr3d_weight(4) = 'wt_ALK.bin', - xx_genarr3d_weight(4) = 'wt_ones.bin', + xx_genarr3d_weight(4) = 'ones_32b.bin', xx_genarr3d_file(4)='xx_ptr2', # xx_genarr3d_preproc(1,4)='smooth', mult_genarr3d(4) = 1.0, # # xx_genarr3d_weight(5) = 'wt_O2.bin', - xx_genarr3d_weight(5) = 'wt_ones.bin', + xx_genarr3d_weight(5) = 'ones_32b.bin', xx_genarr3d_file(5)='xx_ptr3', # xx_genarr3d_preproc(1,5)='smooth', mult_genarr3d(5) = 1.0, # # xx_genarr3d_weight(6) = 'wt_NO3.bin', - xx_genarr3d_weight(6) = 'wt_ones.bin', + xx_genarr3d_weight(6) = 'ones_32b.bin', xx_genarr3d_file(6)='xx_ptr4', # xx_genarr3d_preproc(1,6)='smooth', mult_genarr3d(6) = 1.0, # # xx_genarr3d_weight(7) = 'wt_PO4.bin', - xx_genarr3d_weight(7) = 'wt_ones.bin', + xx_genarr3d_weight(7) = 'ones_32b.bin', xx_genarr3d_file(7)='xx_ptr5', # xx_genarr3d_preproc(1,7)='smooth', mult_genarr3d(7) = 1.0, # # xx_genarr3d_weight(8) = 'wt_FE.bin', - xx_genarr3d_weight(8) = 'wt_ones.bin', + xx_genarr3d_weight(8) = 'ones_32b.bin', xx_genarr3d_file(8)='xx_ptr6', # xx_genarr3d_preproc(1,8)='smooth', mult_genarr3d(8) = 1.0, diff --git a/verification/global_oce_biogeo_bling/input_ad/data.diagnostics b/verification/global_oce_biogeo_bling/input_ad/data.diagnostics new file mode 100644 index 0000000000..7041311156 --- /dev/null +++ b/verification/global_oce_biogeo_bling/input_ad/data.diagnostics @@ -0,0 +1,58 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST + fileName(1) = 'blingTracDiag', + fields(1:8,1) = 'TRAC01 ','TRAC02 ','TRAC03 ', + 'TRAC04 ','TRAC05 ','TRAC06 ', + 'TRAC07 ','TRAC08 ', + frequency(1) = 432000., +# --- + fileName(2) = 'adjBlingTracDiag', + fields(1:8,2) = 'ADJptr01','ADJptr02','ADJptr03', + 'ADJptr04','ADJptr05','ADJptr06', + 'ADJptr07','ADJptr08' + frequency(2) = 432000., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +#- an example just to check the agreement with MONITOR output: +#stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +# stat_fName(1) = 'dynStDiag', +# stat_freq(1) = -864000., +# stat_phase(1) = 0., + & + diff --git a/verification/global_oce_biogeo_bling/input_ad/data.ecco b/verification/global_oce_biogeo_bling/input_ad/data.ecco index 339fd8e367..e061c23cc0 100644 --- a/verification/global_oce_biogeo_bling/input_ad/data.ecco +++ b/verification/global_oce_biogeo_bling/input_ad/data.ecco @@ -3,22 +3,18 @@ # ****************** # &ECCO_COST_NML -# using_cost_seaice = .FALSE., using_cost_sst = .FALSE., using_cost_altim = .FALSE., -# cost_iprec = 32, - cost_yftype = 'RL', -# & &ECCO_GENCOST_NML # SST - gencost_avgperiod(1) = 'day', + gencost_avgperiod(1) = 'day', gencost_barfile(1) = 'm_sst_day', gencost_datafile(1) = 'lev_clim_temp.bin', - gencost_errfile(1) = 'wt_ones.bin', + gencost_errfile(1) = 'ones_32b.bin', gencost_name(1) = 'sst-MW', gencost_spmin(1) = -1.8, gencost_spmax(1) = 40., diff --git a/verification/global_oce_biogeo_bling/input_ad/data.pkg b/verification/global_oce_biogeo_bling/input_ad/data.pkg index a65baf0fbf..041b4ff23c 100644 --- a/verification/global_oce_biogeo_bling/input_ad/data.pkg +++ b/verification/global_oce_biogeo_bling/input_ad/data.pkg @@ -6,4 +6,5 @@ useECCO = .TRUE., useGrdchk = .TRUE., usePROFILEs = .TRUE., + useDIAGNOSTICS = .TRUE., & diff --git a/verification/global_oce_biogeo_bling/input_ad/wt_ones.bin b/verification/global_oce_biogeo_bling/input_ad/ones_32b.bin similarity index 100% rename from verification/global_oce_biogeo_bling/input_ad/wt_ones.bin rename to verification/global_oce_biogeo_bling/input_ad/ones_32b.bin diff --git a/verification/global_oce_biogeo_bling/input_ad/prepare_run b/verification/global_oce_biogeo_bling/input_ad/prepare_run index 7fccf36111..1d3cf3980b 100755 --- a/verification/global_oce_biogeo_bling/input_ad/prepare_run +++ b/verification/global_oce_biogeo_bling/input_ad/prepare_run @@ -8,14 +8,14 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -33,14 +33,14 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/global_oce_biogeo_bling/input_ad/tr_checklist.adm b/verification/global_oce_biogeo_bling/input_ad/tr_checklist.adm new file mode 100644 index 0000000000..ab0e8d5bef --- /dev/null +++ b/verification/global_oce_biogeo_bling/input_ad/tr_checklist.adm @@ -0,0 +1 @@ +admGrd admCst admGrd admFwd T+ S+ U+ V+ pt1+ pt2+ diff --git a/verification/global_oce_biogeo_bling/input_tap/prepare_run b/verification/global_oce_biogeo_bling/input_tap/prepare_run new file mode 100755 index 0000000000..d2467467bb --- /dev/null +++ b/verification/global_oce_biogeo_bling/input_tap/prepare_run @@ -0,0 +1,78 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../../verification/tutorial_global_oce_biogeo/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And also from this dir: +fromDir="../input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata *.bin sample_prof.nc )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_oce_biogeo_bling/results/output_adm.txt b/verification/global_oce_biogeo_bling/results/output_adm.txt index cc5864429b..dabaa8854c 100644 --- a/verification/global_oce_biogeo_bling/results/output_adm.txt +++ b/verification/global_oce_biogeo_bling/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67r -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: jaures.mit.edu -(PID.TID 0000.0001) // Build date: Sun Jul 19 15:20:30 EDT 2020 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67w +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Apr 13 00:29:33 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,7 +49,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -120,24 +120,24 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 -(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nIter0= 0, (PID.TID 0000.0001) > nTimeSteps = 4, -(PID.TID 0000.0001) > deltaTmom = 900., -(PID.TID 0000.0001) > tauCD = 321428., -(PID.TID 0000.0001) > deltaTtracer= 900., -(PID.TID 0000.0001) > deltaTClock = 900., +(PID.TID 0000.0001) > deltaT = 900., +(PID.TID 0000.0001) > tauCD = 321428., (PID.TID 0000.0001) > abEps = 0.1, (PID.TID 0000.0001) > pChkptFreq = 216000., (PID.TID 0000.0001) > chkptFreq = 216000., (PID.TID 0000.0001) > dumpFreq = 216000., (PID.TID 0000.0001) ># taveFreq = 216000., +(PID.TID 0000.0001) > monitorSelect= 2, (PID.TID 0000.0001) > monitorFreq= 86400., (PID.TID 0000.0001) > tauThetaClimRelax = 5184000., (PID.TID 0000.0001) > tauSaltClimRelax = 7776000., (PID.TID 0000.0001) > periodicExternalForcing=.TRUE., (PID.TID 0000.0001) > externForcingPeriod=2592000., (PID.TID 0000.0001) > externForcingCycle=31104000., -(PID.TID 0000.0001) > monitorFreq= 1., +(PID.TID 0000.0001) > monitorFreq= 3600., +(PID.TID 0000.0001) > adjMonitorFreq= 1., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters @@ -189,6 +189,7 @@ (PID.TID 0000.0001) > useECCO = .TRUE., (PID.TID 0000.0001) > useGrdchk = .TRUE., (PID.TID 0000.0001) > usePROFILEs = .TRUE., +(PID.TID 0000.0001) > useDIAGNOSTICS = .TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg @@ -203,6 +204,7 @@ pkg/ctrl compiled and used ( useCTRL = T ) pkg/ptracers compiled and used ( usePTRACERS = T ) pkg/gchem compiled and used ( useGCHEM = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- pkg/generic_advdiff compiled and used ( useGAD = T ) pkg/mom_common compiled and used ( momStepping = T ) @@ -423,6 +425,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -444,9 +449,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -495,51 +509,51 @@ (PID.TID 0000.0001) > &CTRL_NML_GENARR (PID.TID 0000.0001) ># Ini Cndtns (PID.TID 0000.0001) ># xx_genarr3d_weight(1) = 'wt_theta.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(1)='xx_theta', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,1)='smooth', (PID.TID 0000.0001) ># no bounds: xx_genarr3d_bounds(1:5,1)=-2.0,-1.9,39.,40.,0., (PID.TID 0000.0001) > mult_genarr3d(1) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(2) = 'wt_salt.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(2)='xx_salt', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,2)='smooth', (PID.TID 0000.0001) ># xx_genarr3d_bounds(1:5,2)=29.,29.5,40.5,41.,0., (PID.TID 0000.0001) > mult_genarr3d(2) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(3) = 'wt_DIC.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(3)='xx_ptr1', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,3)='smooth', (PID.TID 0000.0001) > mult_genarr3d(3) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(4) = 'wt_ALK.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(4)='xx_ptr2', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,4)='smooth', (PID.TID 0000.0001) > mult_genarr3d(4) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(5) = 'wt_O2.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(5) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(5) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(5)='xx_ptr3', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,5)='smooth', (PID.TID 0000.0001) > mult_genarr3d(5) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(6) = 'wt_NO3.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(6) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(6) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(6)='xx_ptr4', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,6)='smooth', (PID.TID 0000.0001) > mult_genarr3d(6) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(7) = 'wt_PO4.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(7) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(7) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(7)='xx_ptr5', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,7)='smooth', (PID.TID 0000.0001) > mult_genarr3d(7) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># xx_genarr3d_weight(8) = 'wt_FE.bin', -(PID.TID 0000.0001) > xx_genarr3d_weight(8) = 'wt_ones.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(8) = 'ones_32b.bin', (PID.TID 0000.0001) > xx_genarr3d_file(8)='xx_ptr6', (PID.TID 0000.0001) ># xx_genarr3d_preproc(1,8)='smooth', (PID.TID 0000.0001) > mult_genarr3d(8) = 1.0, @@ -622,10 +636,10 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) > &ECCO_GENCOST_NML (PID.TID 0000.0001) ># SST -(PID.TID 0000.0001) > gencost_avgperiod(1) = 'day', +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'day', (PID.TID 0000.0001) > gencost_barfile(1) = 'm_sst_day', (PID.TID 0000.0001) > gencost_datafile(1) = 'lev_clim_temp.bin', -(PID.TID 0000.0001) > gencost_errfile(1) = 'wt_ones.bin', +(PID.TID 0000.0001) > gencost_errfile(1) = 'ones_32b.bin', (PID.TID 0000.0001) > gencost_name(1) = 'sst-MW', (PID.TID 0000.0001) > gencost_spmin(1) = -1.8, (PID.TID 0000.0001) > gencost_spmax(1) = 40., @@ -656,6 +670,112 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PROFILES_READPARMS: finished reading data.profiles +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > fileName(1) = 'blingTracDiag', +(PID.TID 0000.0001) > fields(1:8,1) = 'TRAC01 ','TRAC02 ','TRAC03 ', +(PID.TID 0000.0001) > 'TRAC04 ','TRAC05 ','TRAC06 ', +(PID.TID 0000.0001) > 'TRAC07 ','TRAC08 ', +(PID.TID 0000.0001) > frequency(1) = 432000., +(PID.TID 0000.0001) ># --- +(PID.TID 0000.0001) > fileName(2) = 'adjBlingTracDiag', +(PID.TID 0000.0001) > fields(1:8,2) = 'ADJptr01','ADJptr02','ADJptr03', +(PID.TID 0000.0001) > 'ADJptr04','ADJptr05','ADJptr06', +(PID.TID 0000.0001) > 'ADJptr07','ADJptr08' +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#- an example just to check the agreement with MONITOR output: +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) ># stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) ># stat_freq(1) = -864000., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: blingTracDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: TRAC01 TRAC02 TRAC03 TRAC04 TRAC05 TRAC06 TRAC07 TRAC08 +(PID.TID 0000.0001) Creating Output Stream: adjBlingTracDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJptr01 ADJptr02 ADJptr03 ADJptr04 ADJptr05 ADJptr06 ADJptr07 ADJptr08 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F (PID.TID 0000.0001) %MON XC_max = 3.5859375000000E+02 @@ -843,7 +963,7 @@ (PID.TID 0000.0001) ------------- (PID.TID 0000.0001) data file = lev_clim_temp.bin (PID.TID 0000.0001) model file = m_sst_day -(PID.TID 0000.0001) error file = wt_ones.bin +(PID.TID 0000.0001) error file = ones_32b.bin (PID.TID 0000.0001) gencost_flag = 1 (PID.TID 0000.0001) gencost_outputlevel = 1 (PID.TID 0000.0001) @@ -1338,8 +1458,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 8 -(PID.TID 0000.0001) ctrl_init: control vector length: 445384 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 445384 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1362,33 +1482,81 @@ (PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ (PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use (PID.TID 0000.0001) file = xx_theta -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 (PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use (PID.TID 0000.0001) file = xx_salt -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 (PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use (PID.TID 0000.0001) file = xx_ptr1 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 (PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use (PID.TID 0000.0001) file = xx_ptr2 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 (PID.TID 0000.0001) -> 3d control, genarr3d no. 5 is in use (PID.TID 0000.0001) file = xx_ptr3 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0205 +(PID.TID 0000.0001) ncvarindex = 0305 (PID.TID 0000.0001) -> 3d control, genarr3d no. 6 is in use (PID.TID 0000.0001) file = xx_ptr4 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0206 +(PID.TID 0000.0001) ncvarindex = 0306 (PID.TID 0000.0001) -> 3d control, genarr3d no. 7 is in use (PID.TID 0000.0001) file = xx_ptr5 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0207 +(PID.TID 0000.0001) ncvarindex = 0307 (PID.TID 0000.0001) -> 3d control, genarr3d no. 8 is in use (PID.TID 0000.0001) file = xx_ptr6 -(PID.TID 0000.0001) weight = wt_ones.bin +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0208 +(PID.TID 0000.0001) ncvarindex = 0308 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 427 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 227 TRAC01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 242 TRAC02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 257 TRAC03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 272 TRAC04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 287 TRAC05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 302 TRAC06 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 317 TRAC07 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 332 TRAC08 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 241 ADJptr01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 256 ADJptr02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 271 ADJptr03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 286 ADJptr04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 301 ADJptr05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 316 ADJptr06 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 331 ADJptr07 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 346 ADJptr08 +(PID.TID 0000.0001) space allocated for all diagnostics: 240 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: blingTracDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjBlingTracDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) space allocated for all stats-diags: 0 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) %MON fCori_max = 1.4579854531444E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4579854531444E-04 (PID.TID 0000.0001) %MON fCori_mean = 2.3039296165317E-19 @@ -1427,7 +1595,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1627,7 +1795,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1636,10 +1804,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1935,10 +2103,10 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) 3.600000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ -(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ (PID.TID 0000.0001) T @@ -2834,7 +3002,7 @@ (PID.TID 0000.0001) 15 @ 9.000000000000000E+02 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) 3.600000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ (PID.TID 0000.0001) 2.160000000000000E+05 @@ -3285,7 +3453,15 @@ (PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up (PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally (PID.TID 0000.0001) -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 2 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 3 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 4 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 5 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 6 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) etaday defined by gencost 0 @@ -3334,31 +3510,6 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716565199218E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642246219911E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3126046363364E-04 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.4937911987305E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0417861938477E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7498601459148E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1365585619929E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.8640506155793E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 -(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.8468748927116E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5522694587708E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7572056142629E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9999224736116E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.6702947614548E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.1343359351158E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.7404061555862E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.8961451090369E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.6452039259649E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.8991860252817E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 @@ -3431,401 +3582,8 @@ BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.70945953329082E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 5.55689298144418E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 1 -(PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+02 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.4778091658998E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3377448006819E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.7204479550494E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4841348483969E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.6100821485323E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8983746437641E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.7886211737312E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5460695387493E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.4954516491236E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8125105555196E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3530357005257E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8220370709747E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.1275286104168E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5645303783306E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1892080721701E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1851616287534E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.4620678698462E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0203333564733E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2910274430925E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0717471977224E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9350966546296E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8999927703884E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.7028405239627E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4919248721476E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9124211397397E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7393091729613E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1641560593787E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716565220112E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642125670149E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3133200397334E-04 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5173381042480E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1320401000977E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7651133920904E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1600054643933E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7307867599176E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 -(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6936699450016E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5727265179157E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7848029829239E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9618937726443E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4788145916980E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9744335860014E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5944199264050E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4503818001955E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4276273939354E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7990220506047E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3112770255519E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8944168374581E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.7911236663599E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9103770421145E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 2.8389020658973E-07 -(PID.TID 0000.0001) %MON ke_max = 7.0576475330163E-05 -(PID.TID 0000.0001) %MON ke_mean = 3.5442321027997E-06 -(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 -(PID.TID 0000.0001) %MON vort_r_min = -7.1792501578575E-08 -(PID.TID 0000.0001) %MON vort_r_max = 7.7514160532054E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570026E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3137845726444E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838204E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1453370996464E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.4039938997955E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.9157001971032E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3453000070227E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.8064643480366E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2008880894528E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6950849699869E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.2699802023500E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.3977419966114E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1285226331205E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3062094510413E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.1745000277287E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3445207943327E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 4.7902521565203E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 1.7169304866271E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 1.7341063816078E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.3442830811169E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 4.9347099373290E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 4.8773334992154E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_min = 3.1663746572035E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 3.1284105791854E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 9.0969278226196E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 6.6093736290645E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.6434084491122E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 4.3947602331920E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1903153815539E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 6.4714639248499E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 5.2205500963868E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_max = 4.3130769162563E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer06_min = 4.5710730204061E-08 -(PID.TID 0000.0001) %MON trcstat_ptracer06_mean = 4.3239715161377E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_sd = 1.4361483166243E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_del2 = 3.2633112100636E-10 -(PID.TID 0000.0001) %MON trcstat_ptracer07_max = 4.8014079222330E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer07_min = 9.9999287018024E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer07_mean = 9.5285650773983E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer07_sd = 4.2144100413660E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer07_del2 = 5.2781400601383E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer08_max = 3.0008585555099E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer08_min = 9.9998574036048E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer08_mean = 5.9553168243656E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer08_sd = 2.6339873575433E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer08_del2 = 3.2988140170681E-08 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.22839285007465E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 4.04202872341439E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 2 -(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1727473311363E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7394236818337E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.2889484797941E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6638572537488E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.4058278663115E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2976949120471E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3563183656646E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.1761456238505E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3831033860390E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.2332193994803E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.4682744645608E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5793931975390E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3952090874177E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.8208805777858E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0075983963790E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7115666416273E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3382913898418E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2473437825405E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0318082170746E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3442119337901E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9351071561336E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8999848136924E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.7028288884835E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4918991690884E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9126437972842E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7393105087922E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1641544724051E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716564206711E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642133393414E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3134950353305E-04 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5173217522303E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1319512013329E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7651027995583E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1599840457558E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7308030971727E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 -(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6935862630813E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5727123116247E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7847838180846E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9618742954684E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4788672944513E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9745038334384E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5944403406853E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4499969136044E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4277257751380E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7990161256993E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2208148765810E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.9940291692279E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.8955618331800E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2074786911314E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.1043872903861E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8998656581852E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4944380257340E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 1.7301381211625E-06 -(PID.TID 0000.0001) %MON ke_max = 2.4005664395751E-04 -(PID.TID 0000.0001) %MON ke_mean = 1.2631131128923E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2820964929996E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.4440478331118E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570025E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3137762484500E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1453350032438E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.4227388952837E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 5.5760715161222E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3452981269973E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.8064680396481E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2008881668617E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6950152045912E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.2743826838336E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.3977406904542E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1285231349315E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3062094269140E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.1744726688719E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3458189970664E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 4.7901631990406E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 1.7170347266136E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 1.7341062699669E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.3442555861475E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 4.9463052164476E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 4.8773242228665E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_min = 2.9857816914167E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 3.1284116579925E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 9.0968590937021E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 6.6199624370194E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.6434066643099E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 4.4870958097944E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1903161047134E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 6.4714152280254E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 5.2276946404717E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_max = 4.3116934624859E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer06_min = 4.5711437168894E-08 -(PID.TID 0000.0001) %MON trcstat_ptracer06_mean = 4.3239692473185E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_sd = 1.4361117585938E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_del2 = 3.2630489920205E-10 -(PID.TID 0000.0001) %MON trcstat_ptracer07_max = 4.8012318532624E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer07_min = 9.9999287018024E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer07_mean = 9.5285362291346E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer07_sd = 4.2142359089311E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer07_del2 = 5.3098557267641E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer08_max = 3.0007271182393E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer08_min = 9.9998574036048E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer08_mean = 5.9552563346901E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer08_sd = 2.6338597463093E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer08_del2 = 3.3186125059316E-08 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 -(PID.TID 0000.0001) cg2d_init_res = 3.68984249461652E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 -(PID.TID 0000.0001) cg2d_last_res = 3.51876920869430E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 3 -(PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.3253160948298E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.9371922623078E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5586809845454E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0846095420267E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.9967430707321E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.2043473835155E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0695517279181E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.0768109473720E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0033867993017E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0133130580541E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3825267948200E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0841850883679E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.0373757410587E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.7955346135223E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5997940564315E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0578379546030E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8104003956210E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.7686389101005E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4528739350504E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3370642143665E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9351175198093E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8999766875691E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.7028109491916E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4918624263299E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9121197709680E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7393118538522E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1641526973171E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716562619518E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642199258599E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3133795337092E-04 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5173054002126E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1318623025682E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7650922070262E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1599626340899E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7308195433838E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 -(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6935025811609E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5726981053336E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7847646532452E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9618548821031E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4789201147794E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9745740808754E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5944607549657E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4496120270133E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4278242325737E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7990103083771E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1973719440204E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.2861050194655E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.4499328290926E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4842568067926E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.7358623263095E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.0334413773901E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5553424280834E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7716558569138E-06 -(PID.TID 0000.0001) %MON ke_max = 4.6905861060657E-04 -(PID.TID 0000.0001) %MON ke_mean = 2.5512878252912E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.8687103030402E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.0838905916377E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570025E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3137662312030E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1453321474612E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.0241155515329E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 7.8941098766167E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3452964169860E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.8064712486922E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2008882851074E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6949664833527E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.2748275627348E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.3977392411021E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1285208113987E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3062093819816E+00 -(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.1744672292574E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3462339106800E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 4.7900767348166E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 1.7171430172665E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 1.7341065854372E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.3442495078335E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 4.9487828322778E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 4.8773144712737E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_min = 1.2327490349296E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 3.1284136297731E-02 -(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 9.0968015021201E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 6.6221988242045E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.6434049715374E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 4.5715409031255E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1903174008182E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 6.4713787764767E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 5.2291489607870E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_max = 4.3103131333307E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer06_min = 4.5712012956176E-08 -(PID.TID 0000.0001) %MON trcstat_ptracer06_mean = 4.3239666710980E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_sd = 1.4360804837323E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer06_del2 = 3.2626499137700E-10 -(PID.TID 0000.0001) %MON trcstat_ptracer07_max = 4.8009368541099E-03 -(PID.TID 0000.0001) %MON trcstat_ptracer07_min = 9.9999287018024E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer07_mean = 9.5285415776056E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer07_sd = 4.2142054544550E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer07_del2 = 5.3181990992376E-07 -(PID.TID 0000.0001) %MON trcstat_ptracer08_max = 3.0005213529166E-04 -(PID.TID 0000.0001) %MON trcstat_ptracer08_min = 9.9998574036048E-12 -(PID.TID 0000.0001) %MON trcstat_ptracer08_mean = 5.9552172184980E-06 -(PID.TID 0000.0001) %MON trcstat_ptracer08_sd = 2.6338219335595E-05 -(PID.TID 0000.0001) %MON trcstat_ptracer08_del2 = 3.3238033409119E-08 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracer field statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 (PID.TID 0000.0001) cg2d_init_res = 2.97840395365656E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 @@ -3865,31 +3623,6 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716560533193E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642287051355E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3132484212418E-04 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5172890481949E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1317734038035E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7650816144942E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1599412293960E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7308360985490E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 -(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6934188992406E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5726838990425E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7847454884059E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9618355325489E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4789730526748E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9746443283123E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5944811692461E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4492271404222E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4279227662373E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7990045986391E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4846066466083E-04 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.9848885576019E-05 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5553424280834E-03 @@ -3989,9 +3722,179 @@ (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE cg2d: Sum(rhs),rhsMax = -2.19598898065776E-07 4.12648249115271E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 4 +(PID.TID 0000.0001) %MON ad_time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.3336181873456E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.5329589843750E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.6617470614945E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.1863825649512E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.8336508972263E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 cg2d: Sum(rhs),rhsMax = -1.47960689478310E-07 3.40300532400976E+00 cg2d: Sum(rhs),rhsMax = -1.47960689478310E-07 3.40300532400976E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 3 +(PID.TID 0000.0001) %MON ad_time_secondsf = 2.7000000000000E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.4044801106696E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.3382331479668E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.4052767887769E-10 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.9223824392142E-08 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.9962856621217E-10 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0297373655446E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2289129385916E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -3.8555425647591E-09 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.6610397601293E-08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.0492815552689E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.3618606958794E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.6702241165980E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -9.0108347666903E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.1179190181962E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.0190007531647E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.6675450686988E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.0619614566291E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 9.3191972532440E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.2370142430461E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 7.6659308502612E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.6426561487150E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.6654730015122E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.0898958377160E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1726205469853E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1048465162908E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 8.94842829727029E-11 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) @@ -4000,6 +3903,91 @@ cg2d: Sum(rhs),rhsMax = -1.01696429055664E-13 2.39652939031455E+00 cg2d: Sum(rhs),rhsMax = -5.62424080641222E-08 2.39653793385382E+00 cg2d: Sum(rhs),rhsMax = -5.62424080641222E-08 2.39653793385382E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 2 +(PID.TID 0000.0001) %MON ad_time_secondsf = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.3395720359212E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.7885264695627E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.4876476585256E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.4780140198590E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.6998224259818E-08 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.7273173812922E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.6501934130690E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.2866148092501E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.5283213747785E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 9.2292064054600E-08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.6496274316665E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.3679964004403E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.5026680289700E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.4532902098232E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6328749188216E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.9469524627553E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.6433075486752E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.0989517607266E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.3503140628278E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5813046547897E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.0006601694361E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.4829910730019E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.8620403810177E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.3698751556551E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.3988783982069E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.7425321981981E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.2898573254338E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.4688832385057E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.0945988887126E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.9930784858397E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_max = 5.6356047620543E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_min = -1.4739884041966E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_mean = -9.3724364074442E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_sd = 8.4641740266065E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_del2 = 1.5699978472062E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_max = 1.4449445813751E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_min = -5.5245594326738E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_mean = 9.1675377421205E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_sd = 8.2871009114870E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_del2 = 1.5328772125485E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_max = 5.5907316674179E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_min = -1.4622518757474E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_mean = -9.3108828177317E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_sd = 8.4077761730692E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_del2 = 1.5615666820603E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD cg2d: Sum(rhs),rhsMax = -5.61616725347491E-17 1.46080023280902E-06 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) @@ -4009,11 +3997,180 @@ BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 1 +(PID.TID 0000.0001) %MON ad_time_secondsf = 9.0000000000000E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.7981436236293E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.9228586370870E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -6.8980646035815E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.5673951313236E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.0712618057547E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.7401749080058E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.7736270388969E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -2.6139609641753E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.5395550015754E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.1775477304571E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.4020524786397E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.2900089605233E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.2473997229074E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.0344300133930E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.7935921138078E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 7.7218670851751E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.9356368458827E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.4128323315237E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.4752949974067E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1741147408800E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.3338480652394E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.2627884034990E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.0801427544063E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.8134200800277E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.8047444292612E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.5896219348462E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.9223205705286E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.2075646587720E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.9136333721563E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0223782032922E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_max = 7.4947534194197E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_min = -9.2276295140043E+01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_mean = -5.9368893992141E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_sd = 5.3866484291817E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_del2 = 1.0514310839184E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_max = 9.0458070896682E+01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_min = -7.3470760107246E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_mean = 5.8055090166055E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_sd = 5.2710390985161E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_del2 = 1.0242387887091E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_max = 7.4350788317980E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_min = -9.1541582702460E+01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_mean = -5.8986602335314E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_sd = 5.3520272937464E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_del2 = 1.0466449913400E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_max = 2.6008678918245E-34 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_min = -9.5069392769900E-29 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_mean = -2.4451361347326E-34 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_sd = 1.3073010665374E-31 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_del2 = 5.3799189798037E-33 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_max = 4.7443788307518E-08 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_min = -8.1227298955519E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_mean = -3.8120039424865E-07 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_sd = 3.7344592453394E-05 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_del2 = 7.1578767045783E-07 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_max = 1.2177048970232E-08 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_min = -2.0847981035269E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_mean = -9.8003680896332E-08 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_sd = 9.5977664333787E-06 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_del2 = 1.8441176964659E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD cg2d: Sum(rhs),rhsMax = 1.17016422593319E-13 1.47046439038471E-06 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.2635472756233E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.5248609519968E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.8939322281121E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.1953441330201E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.1004551694137E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.0167695380198E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.6013095803896E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.1632005455855E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.9528790615486E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.1062876281150E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0233975560320E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3393597169996E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 8.5854528542041E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.6745833623741E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6952253659086E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.2890351296836E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.7484062948568E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.7433746055470E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.2181942196594E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.3269161406021E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 6.6660803873769E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.7450530571819E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.7574386872720E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.4053576702336E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.8522490051683E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.8646041157381E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -4.0303757033970E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.6945581431027E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.3406892720025E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.7876982225914E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_max = 7.4879217787990E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_min = -1.1286326207305E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_mean = -7.2496814277386E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_sd = 6.5435643922080E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer01_del2 = 1.2544264128155E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_max = 1.1063938966654E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_min = -7.3403809135938E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_mean = 7.0896697557238E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_sd = 6.4042784548612E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer02_del2 = 1.2229424855743E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_max = 8.2520646514219E-49 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_min = -1.1482359312016E-43 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_mean = -3.1084490514655E-49 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_sd = 1.5881838651091E-46 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer03_del2 = 6.4543926748102E-48 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer04_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_max = 7.4283040885258E-04 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_min = -1.1196464858774E+02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_mean = -7.2026897350031E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_sd = 6.5009085570002E-01 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer05_del2 = 1.2483502900547E-02 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_max = 9.4810635424274E-34 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_min = -2.4478735300936E-28 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_mean = -6.2009627125977E-34 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_sd = 3.3650236453918E-31 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer06_del2 = 1.3845305782262E-32 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_max = 1.1968219507861E-07 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_min = -8.2413754627673E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_mean = -4.7165733166787E-07 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_sd = 4.4622880799716E-05 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer07_del2 = 1.0128962287257E-06 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_max = 3.0841726555078E-08 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_min = -2.1409880030140E-03 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_mean = -1.2136850848353E-07 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_sd = 1.1488006409021E-05 +(PID.TID 0000.0001) %MON ad_trcstat_adptracer08_del2 = 2.6156070967224E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4428,213 +4585,225 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 185.22853568196297 -(PID.TID 0000.0001) System time: 0.57133800466544926 -(PID.TID 0000.0001) Wall clock time: 186.09527778625488 +(PID.TID 0000.0001) User time: 431.15993311163038 +(PID.TID 0000.0001) System time: 7.2304811812937260 +(PID.TID 0000.0001) Wall clock time: 491.69934296607971 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.32332799490541220 -(PID.TID 0000.0001) System time: 4.8945000860840082E-002 -(PID.TID 0000.0001) Wall clock time: 0.37317299842834473 +(PID.TID 0000.0001) User time: 0.98052399232983589 +(PID.TID 0000.0001) System time: 0.20233100093901157 +(PID.TID 0000.0001) Wall clock time: 1.4950819015502930 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 86.211873084306717 -(PID.TID 0000.0001) System time: 0.47363302856683731 -(PID.TID 0000.0001) Wall clock time: 86.830193996429443 +(PID.TID 0000.0001) User time: 205.05874437093735 +(PID.TID 0000.0001) System time: 6.3058750480413437 +(PID.TID 0000.0001) Wall clock time: 237.58287715911865 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 109.47491073608398 -(PID.TID 0000.0001) System time: 4.3190017342567444E-002 -(PID.TID 0000.0001) Wall clock time: 109.68205332756042 +(PID.TID 0000.0001) User time: 254.50116252899170 +(PID.TID 0000.0001) System time: 1.7560008764266968 +(PID.TID 0000.0001) Wall clock time: 286.93847012519836 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.4229469299316406E-002 +(PID.TID 0000.0001) System time: 4.0900707244873047E-004 +(PID.TID 0000.0001) Wall clock time: 9.2684745788574219E-002 +(PID.TID 0000.0001) No. starts: 8 +(PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.13619530200958252 -(PID.TID 0000.0001) System time: 4.0680021047592163E-003 -(PID.TID 0000.0001) Wall clock time: 0.14057660102844238 +(PID.TID 0000.0001) User time: 0.31698799133300781 +(PID.TID 0000.0001) System time: 1.3876676559448242E-002 +(PID.TID 0000.0001) Wall clock time: 0.74174070358276367 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 9.8534584045410156E-002 -(PID.TID 0000.0001) System time: 2.0080208778381348E-003 -(PID.TID 0000.0001) Wall clock time: 0.10078430175781250 +(PID.TID 0000.0001) User time: 0.21412324905395508 +(PID.TID 0000.0001) System time: 9.8433494567871094E-003 +(PID.TID 0000.0001) Wall clock time: 0.54704213142395020 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11955237388610840 -(PID.TID 0000.0001) System time: 9.3500316143035889E-004 -(PID.TID 0000.0001) Wall clock time: 0.12071156501770020 +(PID.TID 0000.0001) User time: 0.28029918670654297 +(PID.TID 0000.0001) System time: 7.2538852691650391E-004 +(PID.TID 0000.0001) Wall clock time: 0.32526969909667969 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.0526876449584961E-002 -(PID.TID 0000.0001) System time: 6.0021877288818359E-005 -(PID.TID 0000.0001) Wall clock time: 3.0686378479003906E-002 +(PID.TID 0000.0001) User time: 8.8162899017333984E-002 +(PID.TID 0000.0001) System time: 6.4849853515625000E-005 +(PID.TID 0000.0001) Wall clock time: 0.10044741630554199 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.5247528553009033 -(PID.TID 0000.0001) System time: 2.9810070991516113E-003 -(PID.TID 0000.0001) Wall clock time: 4.5345897674560547 +(PID.TID 0000.0001) User time: 10.309710502624512 +(PID.TID 0000.0001) System time: 1.6177773475646973E-002 +(PID.TID 0000.0001) Wall clock time: 11.575847148895264 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "GCHEM_CALC_TENDENCY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.6726722717285156E-004 -(PID.TID 0000.0001) System time: 9.9837779998779297E-007 -(PID.TID 0000.0001) Wall clock time: 2.2578239440917969E-004 +(PID.TID 0000.0001) User time: 4.8685073852539062E-004 +(PID.TID 0000.0001) System time: 2.9802322387695312E-006 +(PID.TID 0000.0001) Wall clock time: 4.5919418334960938E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 59.271099448204041 -(PID.TID 0000.0001) System time: 5.6189894676208496E-003 -(PID.TID 0000.0001) Wall clock time: 59.365509510040283 +(PID.TID 0000.0001) User time: 135.95193147659302 +(PID.TID 0000.0001) System time: 0.26647698879241943 +(PID.TID 0000.0001) Wall clock time: 152.33208513259888 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 12.660955190658569 -(PID.TID 0000.0001) System time: 2.9140114784240723E-003 -(PID.TID 0000.0001) Wall clock time: 12.683148145675659 +(PID.TID 0000.0001) User time: 29.417612075805664 +(PID.TID 0000.0001) System time: 8.0897569656372070E-002 +(PID.TID 0000.0001) Wall clock time: 33.031015396118164 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9338357448577881 -(PID.TID 0000.0001) System time: 1.0130107402801514E-003 -(PID.TID 0000.0001) Wall clock time: 1.9380683898925781 +(PID.TID 0000.0001) User time: 4.3083753585815430 +(PID.TID 0000.0001) System time: 2.0400881767272949E-002 +(PID.TID 0000.0001) Wall clock time: 4.8147926330566406 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.33401107788085938 -(PID.TID 0000.0001) System time: 2.4959444999694824E-005 -(PID.TID 0000.0001) Wall clock time: 0.33452916145324707 +(PID.TID 0000.0001) User time: 0.76507186889648438 +(PID.TID 0000.0001) System time: 2.4867057800292969E-004 +(PID.TID 0000.0001) Wall clock time: 0.84586334228515625 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.37294244766235352 -(PID.TID 0000.0001) System time: 9.8504126071929932E-004 -(PID.TID 0000.0001) Wall clock time: 0.37445759773254395 +(PID.TID 0000.0001) User time: 0.83314228057861328 +(PID.TID 0000.0001) System time: 2.2363662719726562E-004 +(PID.TID 0000.0001) Wall clock time: 0.93382716178894043 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.8061866760253906E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.3794174194335938E-004 +(PID.TID 0000.0001) User time: 6.2179565429687500E-004 +(PID.TID 0000.0001) System time: 2.0265579223632812E-006 +(PID.TID 0000.0001) Wall clock time: 5.2499771118164062E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.163873672485352 -(PID.TID 0000.0001) System time: 1.2684017419815063E-002 -(PID.TID 0000.0001) Wall clock time: 11.194773197174072 +(PID.TID 0000.0001) User time: 26.350827217102051 +(PID.TID 0000.0001) System time: 0.12736630439758301 +(PID.TID 0000.0001) Wall clock time: 29.630918979644775 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0435919761657715 -(PID.TID 0000.0001) System time: 9.1199576854705811E-004 -(PID.TID 0000.0001) Wall clock time: 1.0468959808349609 +(PID.TID 0000.0001) User time: 2.2757635116577148 +(PID.TID 0000.0001) System time: 1.9598007202148438E-004 +(PID.TID 0000.0001) Wall clock time: 2.5615472793579102 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.33547592163085938 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.33597278594970703 -(PID.TID 0000.0001) No. starts: 4 -(PID.TID 0000.0001) No. stops: 4 +(PID.TID 0000.0001) User time: 0.25712013244628906 +(PID.TID 0000.0001) System time: 7.1525573730468750E-006 +(PID.TID 0000.0001) Wall clock time: 0.28521037101745605 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.3460388183593750E-004 -(PID.TID 0000.0001) System time: 1.0132789611816406E-006 -(PID.TID 0000.0001) Wall clock time: 2.3365020751953125E-004 +(PID.TID 0000.0001) User time: 4.7588348388671875E-004 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 4.4345855712890625E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.30270099639892578 -(PID.TID 0000.0001) System time: 9.9299848079681396E-004 -(PID.TID 0000.0001) Wall clock time: 0.30403327941894531 +(PID.TID 0000.0001) User time: 0.29276752471923828 +(PID.TID 0000.0001) System time: 2.7989625930786133E-002 +(PID.TID 0000.0001) Wall clock time: 0.35674214363098145 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.3746490478515625E-004 -(PID.TID 0000.0001) System time: 9.5367431640625000E-007 -(PID.TID 0000.0001) Wall clock time: 2.3484230041503906E-004 +(PID.TID 0000.0001) User time: 4.0531158447265625E-004 +(PID.TID 0000.0001) System time: 6.7949295043945312E-006 +(PID.TID 0000.0001) Wall clock time: 4.9972534179687500E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.5454692840576172E-002 -(PID.TID 0000.0001) System time: 9.9810063838958740E-003 -(PID.TID 0000.0001) Wall clock time: 0.10560774803161621 +(PID.TID 0000.0001) User time: 0.24460411071777344 +(PID.TID 0000.0001) System time: 1.1566466093063354 +(PID.TID 0000.0001) Wall clock time: 1.4371771812438965 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.13914585113525391 -(PID.TID 0000.0001) System time: 4.9849599599838257E-003 -(PID.TID 0000.0001) Wall clock time: 0.14454054832458496 +(PID.TID 0000.0001) User time: 0.46461868286132812 +(PID.TID 0000.0001) System time: 0.11223459243774414 +(PID.TID 0000.0001) Wall clock time: 0.64338922500610352 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.34684371948242188 -(PID.TID 0000.0001) System time: 5.9850513935089111E-003 -(PID.TID 0000.0001) Wall clock time: 0.35345911979675293 +(PID.TID 0000.0001) User time: 0.82612228393554688 +(PID.TID 0000.0001) System time: 6.3748121261596680E-002 +(PID.TID 0000.0001) Wall clock time: 1.0185232162475586 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.12077331542968750 +(PID.TID 0000.0001) System time: 8.0232620239257812E-003 +(PID.TID 0000.0001) Wall clock time: 0.14478921890258789 +(PID.TID 0000.0001) No. starts: 4 +(PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 98.693305969238281 -(PID.TID 0000.0001) System time: 4.8753976821899414E-002 -(PID.TID 0000.0001) Wall clock time: 98.891878843307495 +(PID.TID 0000.0001) User time: 225.12060546875000 +(PID.TID 0000.0001) System time: 0.72225713729858398 +(PID.TID 0000.0001) Wall clock time: 252.62131094932556 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 7.5004806518554688 -(PID.TID 0000.0001) System time: 2.9873013496398926E-002 -(PID.TID 0000.0001) Wall clock time: 7.5444560050964355 +(PID.TID 0000.0001) User time: 16.701919555664062 +(PID.TID 0000.0001) System time: 0.25634145736694336 +(PID.TID 0000.0001) Wall clock time: 18.904108047485352 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.061187744140625 -(PID.TID 0000.0001) System time: 9.9040865898132324E-003 -(PID.TID 0000.0001) Wall clock time: 91.206538915634155 +(PID.TID 0000.0001) User time: 208.09300231933594 +(PID.TID 0000.0001) System time: 0.42203760147094727 +(PID.TID 0000.0001) Wall clock time: 233.29532837867737 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 0.45322418212890625 -(PID.TID 0000.0001) System time: 1.9669532775878906E-006 -(PID.TID 0000.0001) Wall clock time: 0.45360350608825684 +(PID.TID 0000.0001) User time: 1.0591430664062500 +(PID.TID 0000.0001) System time: 4.1246414184570312E-003 +(PID.TID 0000.0001) Wall clock time: 1.1967020034790039 (PID.TID 0000.0001) No. starts: 32 (PID.TID 0000.0001) No. stops: 32 (PID.TID 0000.0001) Seconds in section "PROFILES_INLOOP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 4.6920776367187500E-003 -(PID.TID 0000.0001) System time: 2.0265579223632812E-006 -(PID.TID 0000.0001) Wall clock time: 4.7147274017333984E-003 +(PID.TID 0000.0001) User time: 1.2100219726562500E-002 +(PID.TID 0000.0001) System time: 5.0067901611328125E-005 +(PID.TID 0000.0001) Wall clock time: 1.2223243713378906E-002 (PID.TID 0000.0001) No. starts: 32 (PID.TID 0000.0001) No. stops: 32 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 86.979843139648438 -(PID.TID 0000.0001) System time: 4.9190521240234375E-003 -(PID.TID 0000.0001) Wall clock time: 87.113657474517822 +(PID.TID 0000.0001) User time: 199.07855224609375 +(PID.TID 0000.0001) System time: 0.35804986953735352 +(PID.TID 0000.0001) Wall clock time: 223.13108325004578 (PID.TID 0000.0001) No. starts: 32 (PID.TID 0000.0001) No. stops: 32 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.11631774902343750 -(PID.TID 0000.0001) System time: 9.9498033523559570E-004 -(PID.TID 0000.0001) Wall clock time: 0.11744904518127441 +(PID.TID 0000.0001) User time: 0.26220703125000000 +(PID.TID 0000.0001) System time: 3.9467811584472656E-003 +(PID.TID 0000.0001) Wall clock time: 0.29427003860473633 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "PROFILES_INLOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.0833740234375000E-003 -(PID.TID 0000.0001) System time: 1.0132789611816406E-006 -(PID.TID 0000.0001) Wall clock time: 1.1236667633056641E-003 +(PID.TID 0000.0001) User time: 2.1667480468750000E-003 +(PID.TID 0000.0001) System time: 8.1062316894531250E-006 +(PID.TID 0000.0001) Wall clock time: 6.1690807342529297E-003 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.43180847167968750 -(PID.TID 0000.0001) System time: 3.9780139923095703E-003 -(PID.TID 0000.0001) Wall clock time: 0.43660855293273926 +(PID.TID 0000.0001) User time: 1.1490478515625000 +(PID.TID 0000.0001) System time: 3.9663791656494141E-002 +(PID.TID 0000.0001) Wall clock time: 1.3453035354614258 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 2.1057128906250000E-003 -(PID.TID 0000.0001) System time: 3.9935111999511719E-006 -(PID.TID 0000.0001) Wall clock time: 2.1171569824218750E-003 +(PID.TID 0000.0001) User time: 5.3558349609375000E-003 +(PID.TID 0000.0001) System time: 8.0108642578125000E-005 +(PID.TID 0000.0001) Wall clock time: 5.4695606231689453E-003 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4685,9 +4854,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 53454 +(PID.TID 0000.0001) // No. barriers = 53616 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 53454 +(PID.TID 0000.0001) // Total barrier spins = 53616 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_oce_biogeo_bling/results/output_tap_adj.txt b/verification/global_oce_biogeo_bling/results/output_tap_adj.txt new file mode 100644 index 0000000000..5b6070a159 --- /dev/null +++ b/verification/global_oce_biogeo_bling/results/output_tap_adj.txt @@ -0,0 +1,4492 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 05:28:33 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 64 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 32 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 128 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 64 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: Single sub-domain (nFacets=1) +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscA4=0., +(PID.TID 0000.0001) > viscAh=2.E5, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) >#diffKzT=3.E-5, +(PID.TID 0000.0001) >#diffKzS=3.E-5, +(PID.TID 0000.0001) > diffKrBL79surf= 3.E-5, +(PID.TID 0000.0001) > diffKrBL79deep= 13.E-5, +(PID.TID 0000.0001) > diffKrBL79Ho = -2000., +(PID.TID 0000.0001) > diffKrBL79scl = 150., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > tempAdvScheme = 2, +(PID.TID 0000.0001) > saltAdvScheme = 2, +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMindz=50., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0= 0, +(PID.TID 0000.0001) > nTimeSteps = 4, +(PID.TID 0000.0001) > deltaT = 900., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 216000., +(PID.TID 0000.0001) > chkptFreq = 216000., +(PID.TID 0000.0001) > dumpFreq = 216000., +(PID.TID 0000.0001) ># taveFreq = 216000., +(PID.TID 0000.0001) > monitorSelect= 2, +(PID.TID 0000.0001) > monitorFreq= 86400., +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) > tauSaltClimRelax = 7776000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > monitorFreq= 3600., +(PID.TID 0000.0001) > adjMonitorFreq= 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delZ= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-90., +(PID.TID 0000.0001) > delX=128*2.8125, +(PID.TID 0000.0001) > delY=64*2.8125, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathy.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_clim_temp.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_clim_salt.bin', +(PID.TID 0000.0001) > zonalWindFile= 'tren_taux.bin', +(PID.TID 0000.0001) > meridWindFile= 'tren_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile= 'lev_monthly_temp.bin', +(PID.TID 0000.0001) > saltClimFile= 'lev_monthly_salt.bin', +(PID.TID 0000.0001) > surfQFile= 'shi_qnet.bin', +(PID.TID 0000.0001) > EmPmRFile= 'shi_empmr_year.bin', +(PID.TID 0000.0001) > the_run_name= 'Tutorial Biogeo', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > usePTRACERS = .TRUE., +(PID.TID 0000.0001) > useGCHEM = .TRUE., +(PID.TID 0000.0001) > useECCO = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > usePROFILEs = .TRUE., +(PID.TID 0000.0001) > useDIAGNOSTICS = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/cal compiled and used ( useCAL = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/profiles compiled and used ( usePROFILES = T ) + pkg/ecco compiled and used ( useECCO = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + pkg/gchem compiled and used ( useGCHEM = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='gregorian', +(PID.TID 0000.0001) ># TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=20070101, +(PID.TID 0000.0001) > startDate_2= 021130, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># from MOM +(PID.TID 0000.0001) ># GM_background_K: isopycnal diffusion coefficien +(PID.TID 0000.0001) ># GM_maxSlope: max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit: transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd: half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># real background diff: horizontal diffusion +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ifdef GM_VISBECK_VARIABLE_K, include following in GM_PARM01 +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_background_K = 1.e+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 100., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=8, +(PID.TID 0000.0001) > PTRACERS_useGMRedi=8*.TRUE., +(PID.TID 0000.0001) > PTRACERS_useKPP=8*.FALSE., +(PID.TID 0000.0001) ># tracer 1 - dic +(PID.TID 0000.0001) > PTRACERS_names(1)='dic', +(PID.TID 0000.0001) > PTRACERS_long_names(1)='Dissolved Inorganic Carbon', +(PID.TID 0000.0001) > PTRACERS_units(1)='mol C/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(1)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(1)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(1)='dic_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,1) = 15*2.0282, +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(1)= 0., +(PID.TID 0000.0001) ># tracer 2 - alk +(PID.TID 0000.0001) > PTRACERS_names(2)='alk', +(PID.TID 0000.0001) > PTRACERS_long_names(2)='Alkalinity', +(PID.TID 0000.0001) > PTRACERS_units(2)='mol eq/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(2)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(2)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(2)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(2)='alk_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,2) = 15*2.3086, +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(2)= 0., +(PID.TID 0000.0001) ># tracer 3 - o2 +(PID.TID 0000.0001) > PTRACERS_names(3)='o2', +(PID.TID 0000.0001) > PTRACERS_long_names(3)='Dissolved Oxygen', +(PID.TID 0000.0001) > PTRACERS_units(3)='mol O/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(3)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(3)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(3)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(3)='o2_init.bin', +(PID.TID 0000.0001) > PTRACERS_ref(1:15,3) = 15*0.2, +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(3)= 0., +(PID.TID 0000.0001) >## tracer 4 - no3 +(PID.TID 0000.0001) > PTRACERS_names(4)='no3', +(PID.TID 0000.0001) > PTRACERS_long_names(4)='Nitrate', +(PID.TID 0000.0001) > PTRACERS_units(4)='mol N/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(4)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(4)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(4)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(4)='no3_init.bin', +(PID.TID 0000.0001) > PTRACERS_ref(1:15,4) = 15*0.01, +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(4)= 0., +(PID.TID 0000.0001) ># tracer 5 - po4 +(PID.TID 0000.0001) > PTRACERS_names(5)='po4', +(PID.TID 0000.0001) > PTRACERS_long_names(5)='Phosphate', +(PID.TID 0000.0001) > PTRACERS_units(5)='mol P/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(5)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(5)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(5)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(5)='po4_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,5) = 15*0.5438E-3, +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(5)= 0., +(PID.TID 0000.0001) ># tracer 6 - fet +(PID.TID 0000.0001) > PTRACERS_names(6)='fet', +(PID.TID 0000.0001) > PTRACERS_long_names(6)='Dissolved Inorganic Iron', +(PID.TID 0000.0001) > PTRACERS_units(6)='mol Fe/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(6)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(6)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(6)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(6)='fe_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,6) = 15*0.6e-6, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(6)= 0., +(PID.TID 0000.0001) ># tracer 7 - don +(PID.TID 0000.0001) > PTRACERS_names(7)='don', +(PID.TID 0000.0001) > PTRACERS_long_names(7)='Dissolved Organic Nitrogen', +(PID.TID 0000.0001) > PTRACERS_units(7)='mol N/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(7)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(7)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(7)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(7)='don_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,7) = 15*0., +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(7)= 0., +(PID.TID 0000.0001) ># tracer 5 - dop +(PID.TID 0000.0001) > PTRACERS_names(8)='dop', +(PID.TID 0000.0001) > PTRACERS_long_names(8)='Dissolved Organic Phosphorus', +(PID.TID 0000.0001) > PTRACERS_units(8)='mol P/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(8)=30, +(PID.TID 0000.0001) > PTRACERS_diffKh(8)=1.E0, +(PID.TID 0000.0001) > PTRACERS_diffKr(8)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile(8)='dop_init.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,8) = 15*0., +(PID.TID 0000.0001) ># PTRACERS_EvPrRn(8)= 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) GCHEM_READPARMS: opening data.gchem +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gchem +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gchem" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &GCHEM_PARM01 +(PID.TID 0000.0001) > useBLING=.TRUE., +(PID.TID 0000.0001) > nsubtime=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GCHEM_READPARMS: finished reading data.gchem +(PID.TID 0000.0001) BLING_READPARMS: opening data.bling +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.bling +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.bling" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># BLING parameters +(PID.TID 0000.0001) > &ABIOTIC_PARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BIOTIC_PARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BLING_FORCING +(PID.TID 0000.0001) > BLING_windFile='tren_speed.bin', +(PID.TID 0000.0001) > BLING_iceFile='fice.bin', +(PID.TID 0000.0001) > BLING_silicaFile='sillev1.bin', +(PID.TID 0000.0001) > BLING_ironFile='mah_flux_smooth.bin', +(PID.TID 0000.0001) > BLING_pCO2=380.5E-6, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) BLING_READPARMS: finished reading data.BLING +(PID.TID 0000.0001) Using Millero (1995)/Mehrbach K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Start registering GCHEM tracers +(PID.TID 0000.0001) BLING_TR_REGISTER: number of BLING tracers= 8 +(PID.TID 0000.0001) BLING_TR_REGISTER: starting at pTrc num = 1 +(PID.TID 0000.0001) BLING_TR_REGISTER: Numb. Trac & SepForc Trac: 8 8 +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Numb. Trac & SepForc Trac: 8 8 +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &ctrl_nml +(PID.TID 0000.0001) > doSinglePrecTapelev=.TRUE., +(PID.TID 0000.0001) > ctrlSmoothCorrel2D=.FALSE., +(PID.TID 0000.0001) > ctrlSmoothCorrel3D=.FALSE., +(PID.TID 0000.0001) ># doMainUnpack = .FALSE., +(PID.TID 0000.0001) ># doPackDiag = .TRUE., +(PID.TID 0000.0001) ># forcingPrecond=20., +(PID.TID 0000.0001) ># doZscalePack = .TRUE., +(PID.TID 0000.0001) ># doZscaleUnpack = .TRUE., +(PID.TID 0000.0001) ># delZexp = -1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &ctrl_packnames +(PID.TID 0000.0001) > ctrlname='ecco_ctrl', +(PID.TID 0000.0001) > costname='ecco_cost', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># Ini Cndtns +(PID.TID 0000.0001) ># xx_genarr3d_weight(1) = 'wt_theta.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(1)='xx_theta', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,1)='smooth', +(PID.TID 0000.0001) ># no bounds: xx_genarr3d_bounds(1:5,1)=-2.0,-1.9,39.,40.,0., +(PID.TID 0000.0001) > mult_genarr3d(1) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(2) = 'wt_salt.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(2)='xx_salt', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,2)='smooth', +(PID.TID 0000.0001) ># xx_genarr3d_bounds(1:5,2)=29.,29.5,40.5,41.,0., +(PID.TID 0000.0001) > mult_genarr3d(2) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(3) = 'wt_DIC.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(3)='xx_ptr1', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,3)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(3) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(4) = 'wt_ALK.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(4)='xx_ptr2', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,4)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(4) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(5) = 'wt_O2.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(5) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(5)='xx_ptr3', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,5)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(5) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(6) = 'wt_NO3.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(6) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(6)='xx_ptr4', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,6)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(6) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(7) = 'wt_PO4.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(7) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(7)='xx_ptr5', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,7)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(7) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># xx_genarr3d_weight(8) = 'wt_FE.bin', +(PID.TID 0000.0001) > xx_genarr3d_weight(8) = 'ones_32b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(8)='xx_ptr6', +(PID.TID 0000.0001) ># xx_genarr3d_preproc(1,8)='smooth', +(PID.TID 0000.0001) > mult_genarr3d(8) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-5, +(PID.TID 0000.0001) > nbeg = 0, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 3, +(PID.TID 0000.0001) ># testing dpH/dALK +(PID.TID 0000.0001) > grdchkvarindex = 204, +(PID.TID 0000.0001) > iGloPos =34, +(PID.TID 0000.0001) > jGloPos =10, +(PID.TID 0000.0001) > kGloPos =1, +(PID.TID 0000.0001) > iGloTile =2, +(PID.TID 0000.0001) > jGloTile =1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 204 +(PID.TID 0000.0001) eps: 0.100E-04 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 3 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 2 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: opening data.ecco +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ecco +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ecco" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &ECCO_COST_NML +(PID.TID 0000.0001) > using_cost_seaice = .FALSE., +(PID.TID 0000.0001) > using_cost_sst = .FALSE., +(PID.TID 0000.0001) > using_cost_altim = .FALSE., +(PID.TID 0000.0001) > cost_iprec = 32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) ># SST +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'day', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_sst_day', +(PID.TID 0000.0001) > gencost_datafile(1) = 'lev_clim_temp.bin', +(PID.TID 0000.0001) > gencost_errfile(1) = 'ones_32b.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'sst-MW', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 0.1, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml +(PID.TID 0000.0001) ECCO_READPARMS: done +(PID.TID 0000.0001) PROFILES_READPARMS: opening data.profiles +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.profiles +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.profiles" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># PROFILES cost f',tion +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &PROFILES_NML +(PID.TID 0000.0001) ># profilesDir = 'PROF', +(PID.TID 0000.0001) > profilesfiles(1) = 'sample_prof', +(PID.TID 0000.0001) ># has T, S, and pH constraints. +(PID.TID 0000.0001) > mult_profiles(1,1) = 0.0, +(PID.TID 0000.0001) > mult_profiles(1,2) = 0.0, +(PID.TID 0000.0001) > mult_profiles(1,14) = 1.0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PROFILES_READPARMS: finished reading data.profiles +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > fileName(1) = 'blingTracDiag', +(PID.TID 0000.0001) > fields(1:8,1) = 'TRAC01 ','TRAC02 ','TRAC03 ', +(PID.TID 0000.0001) > 'TRAC04 ','TRAC05 ','TRAC06 ', +(PID.TID 0000.0001) > 'TRAC07 ','TRAC08 ', +(PID.TID 0000.0001) > frequency(1) = 432000., +(PID.TID 0000.0001) ># --- +(PID.TID 0000.0001) > fileName(2) = 'adjBlingTracDiag', +(PID.TID 0000.0001) > fields(1:8,2) = 'ADJptr01','ADJptr02','ADJptr03', +(PID.TID 0000.0001) > 'ADJptr04','ADJptr05','ADJptr06', +(PID.TID 0000.0001) > 'ADJptr07','ADJptr08' +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#- an example just to check the agreement with MONITOR output: +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) ># stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) ># stat_freq(1) = -864000., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: blingTracDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: TRAC01 TRAC02 TRAC03 TRAC04 TRAC05 TRAC06 TRAC07 TRAC08 +(PID.TID 0000.0001) Creating Output Stream: adjBlingTracDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJptr01 ADJptr02 ADJptr03 ADJptr04 ADJptr05 ADJptr06 ADJptr07 ADJptr08 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5859375000000E+02 +(PID.TID 0000.0001) %MON XC_min = 1.4062500000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5718750000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7859375000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXC_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXC_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXC_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXF_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXF_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXF_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXG_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXV_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXV_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON YC_max = 8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_min = -8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON YG_max = 8.7187500000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -1.4062500000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYC_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYF_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYF_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYG_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYU_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYU_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON RA_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RA_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RA_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RA_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAW_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RAW_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RAW_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RAW_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAS_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAS_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAS_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON RAZ_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAZ_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 20070101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 21130 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 20070101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 31130 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) etaday defined by gencost 0 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 1) = sst-MW +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = lev_clim_temp.bin +(PID.TID 0000.0001) model file = m_sst_day +(PID.TID 0000.0001) error file = ones_32b.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // insitu profiles model sampling >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) profilesDir ./ +(PID.TID 0000.0001) profilesDoGenGrid F +(PID.TID 0000.0001) profilesDoNcOutput F +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) profiles file # 1 is sample_prof +(PID.TID 0000.0001) current tile is bi,bj = 1, 1 +(PID.TID 0000.0001) # of depth levels in file = 25 +(PID.TID 0000.0001) # of profiles in file = 63 +(PID.TID 0000.0001) # of profiles with erroneous HHMMSS values = 0 +(PID.TID 0000.0001) # of profiles within tile and time period = 0 +(PID.TID 0000.0001) variable # 1 is prof_T and theta +(PID.TID 0000.0001) variable # 2 is prof_S and salt +(PID.TID 0000.0001) variable # 14 is prof_PH and PH +(PID.TID 0000.0001) +(PID.TID 0000.0001) profiles file # 1 is sample_prof +(PID.TID 0000.0001) current tile is bi,bj = 2, 1 +(PID.TID 0000.0001) # of depth levels in file = 25 +(PID.TID 0000.0001) # of profiles in file = 63 +(PID.TID 0000.0001) # of profiles with erroneous HHMMSS values = 0 +(PID.TID 0000.0001) # of profiles within tile and time period = 1 +(PID.TID 0000.0001) variable # 1 is prof_T and theta +(PID.TID 0000.0001) variable # 2 is prof_S and salt +(PID.TID 0000.0001) variable # 14 is prof_PH and PH +(PID.TID 0000.0001) +(PID.TID 0000.0001) profiles file # 1 is sample_prof +(PID.TID 0000.0001) current tile is bi,bj = 1, 2 +(PID.TID 0000.0001) # of depth levels in file = 25 +(PID.TID 0000.0001) # of profiles in file = 63 +(PID.TID 0000.0001) # of profiles with erroneous HHMMSS values = 0 +(PID.TID 0000.0001) # of profiles within tile and time period = 0 +(PID.TID 0000.0001) variable # 1 is prof_T and theta +(PID.TID 0000.0001) variable # 2 is prof_S and salt +(PID.TID 0000.0001) variable # 14 is prof_PH and PH +(PID.TID 0000.0001) +(PID.TID 0000.0001) profiles file # 1 is sample_prof +(PID.TID 0000.0001) current tile is bi,bj = 2, 2 +(PID.TID 0000.0001) # of depth levels in file = 25 +(PID.TID 0000.0001) # of profiles in file = 63 +(PID.TID 0000.0001) # of profiles with erroneous HHMMSS values = 0 +(PID.TID 0000.0001) # of profiles within tile and time period = 0 +(PID.TID 0000.0001) variable # 1 is prof_T and theta +(PID.TID 0000.0001) variable # 2 is prof_S and salt +(PID.TID 0000.0001) variable # 14 is prof_PH and PH +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // insitu profiles model sampling >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_INIT_FIXED: updated GAD_OlMinSize= 2 0 1 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 445384 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 1300 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 1246 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 1205 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 16159 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 32318 +(PID.TID 0000.0001) ctrl-wet 8: atmos 32318 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 445384 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4447 4201 4277 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4399 4158 4229 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 4352 4111 4178 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 4282 4046 4108 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 4220 3992 4050 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 4125 3897 3960 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 4075 3846 3907 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 4021 3785 3851 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3970 3730 3801 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3878 3629 3692 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3763 3505 3562 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3557 3269 3332 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3091 2747 2809 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2428 2071 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 1065 813 874 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 445384 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 30720 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 016159 014603 015209 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 019716 018428 019084 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 006646 006264 005997 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013152 012505 012486 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_ptr2 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 5 is in use +(PID.TID 0000.0001) file = xx_ptr3 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0205 +(PID.TID 0000.0001) ncvarindex = 0305 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 6 is in use +(PID.TID 0000.0001) file = xx_ptr4 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0206 +(PID.TID 0000.0001) ncvarindex = 0306 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 7 is in use +(PID.TID 0000.0001) file = xx_ptr5 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0207 +(PID.TID 0000.0001) ncvarindex = 0307 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 8 is in use +(PID.TID 0000.0001) file = xx_ptr6 +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0208 +(PID.TID 0000.0001) ncvarindex = 0308 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 433 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 233 TRAC01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 248 TRAC02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 263 TRAC03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 278 TRAC04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 293 TRAC05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 308 TRAC06 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 323 TRAC07 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 338 TRAC08 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 247 ADJptr01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 262 ADJptr02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 277 ADJptr03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 292 ADJptr04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 307 ADJptr05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 322 ADJptr06 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 337 ADJptr07 +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 352 ADJptr08 +(PID.TID 0000.0001) space allocated for all diagnostics: 240 levels +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: blingTracDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjBlingTracDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) space allocated for all stats-diags: 0 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) %MON fCori_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_mean = 2.3039296165317E-19 +(PID.TID 0000.0001) %MON fCori_sd = 1.0312619976228E-04 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4566679669714E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -2.2787885990593E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.0310101939326E-04 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.5791533929553E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 9.2855522572229E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 4.4864964117307E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 7.0372759228205380E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 2.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 1.300000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 1.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 9.000000000000000E+02 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alph_AB = /* Adams-Bashforth-3 primary factor */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta_AB = /* Adams-Bashforth-3 secondary factor */ +(PID.TID 0000.0001) 4.166666666666667E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startFromPickupAB2= /* start from AB-2 pickup */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.971999950222133E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 128 @ 2.812500000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 64 @ 2.812500000000000E+00 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -9.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.296875000000000E+01, /* I = 30 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* I = 31 */ +(PID.TID 0000.0001) 8.859375000000000E+01, /* I = 32 */ +(PID.TID 0000.0001) 9.140625000000000E+01, /* I = 33 */ +(PID.TID 0000.0001) 9.421875000000000E+01, /* I = 34 */ +(PID.TID 0000.0001) 9.703125000000000E+01, /* I = 35 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.729687500000000E+02, /* I = 62 */ +(PID.TID 0000.0001) 1.757812500000000E+02, /* I = 63 */ +(PID.TID 0000.0001) 1.785937500000000E+02, /* I = 64 */ +(PID.TID 0000.0001) 1.814062500000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 1.842187500000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 1.870312500000000E+02, /* I = 67 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.629687500000000E+02, /* I = 94 */ +(PID.TID 0000.0001) 2.657812500000000E+02, /* I = 95 */ +(PID.TID 0000.0001) 2.685937500000000E+02, /* I = 96 */ +(PID.TID 0000.0001) 2.714062500000000E+02, /* I = 97 */ +(PID.TID 0000.0001) 2.742187500000000E+02, /* I = 98 */ +(PID.TID 0000.0001) 2.770312500000000E+02, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.529687500000000E+02, /* I =126 */ +(PID.TID 0000.0001) 3.557812500000000E+02, /* I =127 */ +(PID.TID 0000.0001) 3.585937500000000E+02 /* I =128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -8.859375000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -8.578125000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -8.296875000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -8.015625000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -7.734375000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -7.453125000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -7.171875000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -6.890625000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -6.609375000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -6.328125000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -6.046875000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -5.765625000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -5.484375000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -5.203125000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -4.921875000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -4.640625000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -4.359375000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -4.078125000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -3.796875000000000E+01, /* J = 19 */ +(PID.TID 0000.0001) -3.515625000000000E+01, /* J = 20 */ +(PID.TID 0000.0001) -3.234375000000000E+01, /* J = 21 */ +(PID.TID 0000.0001) -2.953125000000000E+01, /* J = 22 */ +(PID.TID 0000.0001) -2.671875000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) -2.390625000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) -2.109375000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) -1.828125000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) -1.546875000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) -1.265625000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) -9.843750000000000E+00, /* J = 29 */ +(PID.TID 0000.0001) -7.031250000000000E+00, /* J = 30 */ +(PID.TID 0000.0001) -4.218750000000000E+00, /* J = 31 */ +(PID.TID 0000.0001) -1.406250000000000E+00, /* J = 32 */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* J = 33 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* J = 34 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* J = 35 */ +(PID.TID 0000.0001) 9.843750000000000E+00, /* J = 36 */ +(PID.TID 0000.0001) 1.265625000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 1.546875000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 1.828125000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 2.109375000000000E+01, /* J = 40 */ +(PID.TID 0000.0001) 2.390625000000000E+01, /* J = 41 */ +(PID.TID 0000.0001) 2.671875000000000E+01, /* J = 42 */ +(PID.TID 0000.0001) 2.953125000000000E+01, /* J = 43 */ +(PID.TID 0000.0001) 3.234375000000000E+01, /* J = 44 */ +(PID.TID 0000.0001) 3.515625000000000E+01, /* J = 45 */ +(PID.TID 0000.0001) 3.796875000000000E+01, /* J = 46 */ +(PID.TID 0000.0001) 4.078125000000000E+01, /* J = 47 */ +(PID.TID 0000.0001) 4.359375000000000E+01, /* J = 48 */ +(PID.TID 0000.0001) 4.640625000000000E+01, /* J = 49 */ +(PID.TID 0000.0001) 4.921875000000000E+01, /* J = 50 */ +(PID.TID 0000.0001) 5.203125000000000E+01, /* J = 51 */ +(PID.TID 0000.0001) 5.484375000000000E+01, /* J = 52 */ +(PID.TID 0000.0001) 5.765625000000000E+01, /* J = 53 */ +(PID.TID 0000.0001) 6.046875000000000E+01, /* J = 54 */ +(PID.TID 0000.0001) 6.328125000000000E+01, /* J = 55 */ +(PID.TID 0000.0001) 6.609375000000000E+01, /* J = 56 */ +(PID.TID 0000.0001) 6.890625000000000E+01, /* J = 57 */ +(PID.TID 0000.0001) 7.171875000000000E+01, /* J = 58 */ +(PID.TID 0000.0001) 7.453125000000000E+01, /* J = 59 */ +(PID.TID 0000.0001) 7.734375000000000E+01, /* J = 60 */ +(PID.TID 0000.0001) 8.015625000000000E+01, /* J = 61 */ +(PID.TID 0000.0001) 8.296875000000000E+01, /* J = 62 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* J = 63 */ +(PID.TID 0000.0001) 8.859375000000000E+01 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 4.797008993346594E+09, /* J = 2 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 3 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 4 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 13 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 16 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 31 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 32 */ +(PID.TID 0000.0001) 9.776312122186816E+10, /* J = 33 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 40 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 44 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 53 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 55 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 62 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 63 */ +(PID.TID 0000.0001) 4.797008993346594E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.303322488638320E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) the_run_name = /* Name of this simulation */ +(PID.TID 0000.0001) 'Tutorial Biogeo' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 8 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 9.000000000000000E+02 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'dic' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Carbon' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 2.028200000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 2 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'alk' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Alkalinity' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '02' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 2.308600000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 3 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'o2' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Oxygen' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '03' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E-01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 4 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'no3' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Nitrate' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '04' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-02 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 5 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'po4' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Phosphate' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '05' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 5.438000000000000E-04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 6 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'fet' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Iron' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '06' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 6.000000000000000E-07 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 7 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'don' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Nitrogen' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '07' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 8 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'dop' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Phosphorus' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '08' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up +(PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 2 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 3 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 4 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 5 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 6 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etaday defined by gencost 0 +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9350790023804E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.7028400846158E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4919297691180E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9105714045853E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7393074035645E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1641572952271E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716565199218E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642246219911E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3126046363364E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570026E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3137909706342E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838204E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453381765431E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3453021049500E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.8064596652985E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2008880582142E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6952373502975E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.2611729558358E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.3977425098419E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1285221576691E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3062094517207E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.1745946677143E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3436609996259E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 4.7903439402580E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 1.7168744234368E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 1.7341069695970E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.3443852530264E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 4.9162187058022E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 4.8773415386677E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = 2.7919921308239E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 3.1284105112480E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 9.0970619731602E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 6.5860528220661E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.6434102803469E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 4.3383789716245E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1903152966321E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 6.4715585569804E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 5.2087562122133E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_max = 4.3144641495019E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer06_min = 4.5710002893884E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer06_mean = 4.3239734366228E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_sd = 1.4362069390415E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_del2 = 3.2640702710884E-10 +(PID.TID 0000.0001) %MON trcstat_ptracer07_max = 4.8014768399298E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer07_min = -3.0291218990897E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer07_mean = 9.5284881618563E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer07_sd = 4.2149730496556E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer07_del2 = 5.2191611800717E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer08_max = 3.0009230249561E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer08_min = -1.8932011869310E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer08_mean = 5.9553051011602E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer08_sd = 2.6343581560347E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer08_del2 = 3.2619757375448E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.97840395365656E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 28 +(PID.TID 0000.0001) cg2d_last_res = 3.14075801385278E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.3025866030339E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.1263700757261E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5128582748279E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5501178513596E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1341501591767E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1587709912837E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8196775387011E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.6186487042207E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.6695198854832E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4027158418364E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.1308170375065E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.4010888413703E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.6312354510116E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5216149871005E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.2337673882789E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3970200563371E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2181148513548E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7686389101005E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.7274686429816E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3678815845269E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9351281728126E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8999684300144E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.7027873832266E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4918151269233E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9116321026813E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7393131974960E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1641507559828E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716560533193E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9642287051355E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3132484212418E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4846066466083E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.9848885576019E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5553424280834E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.5131262472104E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1889651852552E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8357523280806E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4448477447825E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 9.4221038620814E-06 +(PID.TID 0000.0001) %MON ke_max = 7.4508707170666E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.1049463967704E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -2.4129378622169E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.6601506105775E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570025E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3137547698782E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453287023759E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1219658746935E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.8253770294457E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3452948113342E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.8064748257086E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2008884384357E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6949170175032E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.2746660876981E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.3977379589520E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1285155818458E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3062093194179E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.1744699113172E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3465428579778E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 4.7899923229029E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 1.7172304767235E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 1.7341072692073E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.3442523949307E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 4.9487527347121E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 4.8773045393525E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = 1.2315847598441E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 3.1284163552583E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 9.0967254754095E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 6.6228886673824E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.6434033955381E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 4.6263777740446E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1903191896753E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 6.4713319243087E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 5.2293415611193E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_max = 4.3089354138082E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer06_min = 4.5712497808765E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer06_mean = 4.3239638405988E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_sd = 1.4360507511263E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer06_del2 = 3.2621586912913E-10 +(PID.TID 0000.0001) %MON trcstat_ptracer07_max = 4.8005616169925E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer07_min = 9.9999287018024E-12 +(PID.TID 0000.0001) %MON trcstat_ptracer07_mean = 9.5285751288969E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer07_sd = 4.2141712346972E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer07_del2 = 5.3236660044468E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer08_max = 3.0002654430777E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer08_min = 9.9998574036048E-12 +(PID.TID 0000.0001) %MON trcstat_ptracer08_mean = 5.9551957294765E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer08_sd = 2.6337817679656E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer08_del2 = 3.3271963609360E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 4 ckptA +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593896451D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431771415D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431771415D+03 +(PID.TID 0000.0001) global fc = 0.995782431771415D+03 +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593896451D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431771415D+03 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 8.94842851221943E-11 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = 3.34259529777281E-16 1.46080515053663E-06 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = 1.17494013650299E-13 1.47045730958665E-06 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593896451D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431771415D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431771415D+03 +(PID.TID 0000.0001) global fc = 0.995782431771415D+03 +(PID.TID 0000.0001) grdchk reference fc: fcref = 9.95782431771415E+02 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res exact position met: + grad-res 0 257 34 10 1 2 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 257 55673 1 + ph-grd _loc: bi, bj, icomptest, ichknum 2 1 0 1 + ph-grd -->hit<-- 34 10 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 34 10 1 ; bi,bj= 2 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593924261D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431799324D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431799324D+03 +(PID.TID 0000.0001) global fc = 0.995782431799324D+03 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.95782431799324E+02 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593868642D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431743706D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431743706D+03 +(PID.TID 0000.0001) global fc = 0.995782431743706D+03 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.95782431743706E+02 +grad-res ------------------------------- + grad-res 0 1 34 10 1 2 1 1 9.95782431771E+02 9.95782431799E+02 9.95782431744E+02 + grad-res 0 1 1 257 0 2 1 1 2.78090569191E-03 2.78090510619E-03 2.10620083263E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 9.95782431771415E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.78090569190681E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.78090510619222E-03 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 258 55673 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 1 257 2 + ph-grd -->hit<-- 35 10 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 35 10 1 ; bi,bj= 2 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781800318722D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782638193785D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782638193785D+03 +(PID.TID 0000.0001) global fc = 0.995782638193785D+03 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.95782638193785E+02 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781387466837D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782225341901D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782225341901D+03 +(PID.TID 0000.0001) global fc = 0.995782225341901D+03 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.95782225341901E+02 +grad-res ------------------------------- + grad-res 0 2 35 10 1 2 1 1 9.95782431771E+02 9.95782638194E+02 9.95782225342E+02 + grad-res 0 2 2 258 0 2 1 1 2.06425952911E+01 2.06425942338E+01 5.12222584348E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 9.95782431771415E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.06425952911377E+01 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.06425942337773E+01 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 259 55673 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 1 258 3 + ph-grd -->hit<-- 36 10 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 10 1 ; bi,bj= 2 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995782390376883D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995783228251946D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995783228251946D+03 +(PID.TID 0000.0001) global fc = 0.995783228251946D+03 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.95783228251946E+02 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995780797388968D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995781635264032D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995781635264032D+03 +(PID.TID 0000.0001) global fc = 0.995781635264032D+03 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.95781635264032E+02 +grad-res ------------------------------- + grad-res 0 3 36 10 1 2 1 1 9.95782431771E+02 9.95783228252E+02 9.95781635264E+02 + grad-res 0 3 3 259 0 2 1 1 7.96493988037E+01 7.96493957068E+01 3.88813118368E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 9.95782431771415E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.96493988037109E+01 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.96493957068378E+01 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 260 55673 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 1 259 4 + ph-grd -->hit<-- 37 10 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 10 1 ; bi,bj= 2 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593991128D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431866191D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431866191D+03 +(PID.TID 0000.0001) global fc = 0.995782431866191D+03 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.95782431866191E+02 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) + BLING_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + BLING_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 1.12640530997835E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 2.39652939031455E+00 + cg2d: Sum(rhs),rhsMax = -1.03916875104915E-13 3.40300341422513E+00 + cg2d: Sum(rhs),rhsMax = -1.18349774425042E-13 4.12647380987143E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) +(PID.TID 0000.0001) == cost_profiles: begin == +(PID.TID 0000.0001) cost_profiles( 1, 1)= 0.15761D+05 0.24000D+02 +(PID.TID 0000.0001) cost_profiles( 1, 2)= 0.17325D+06 0.19000D+02 +(PID.TID 0000.0001) cost_profiles( 1,14)= 0.99578D+03 0.24000D+02 +(PID.TID 0000.0001) == cost_profiles: end == +(PID.TID 0000.0001) +(PID.TID 0000.0001) --> f_profiles = 0.157611479210415D+05 1 1 +(PID.TID 0000.0001) --> f_profiles = 0.173248996930195D+06 1 2 +(PID.TID 0000.0001) --> f_profiles = 0.995781593801775D+03 114 +(PID.TID 0000.0001) --> f_gencost = 0.837874963434406D-02 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_genarr3d = 0.999999949475751D-10 4 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> fc = 0.995782431676838D+03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.995782431676838D+03 +(PID.TID 0000.0001) global fc = 0.995782431676838D+03 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.95782431676838E+02 +grad-res ------------------------------- + grad-res 0 4 37 10 1 2 1 1 9.95782431771E+02 9.95782431866E+02 9.95782431677E+02 + grad-res 0 4 4 260 0 2 1 1 9.46766324341E-03 9.46766363086E-03 -4.09229534704E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 9.95782431771415E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.46766324341297E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.46766363085771E-03 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 34 10 1 2 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 1 9.9578243177141E+02 9.9578243179932E+02 9.9578243174371E+02 +(PID.TID 0000.0001) grdchk output (g): 1 2.7809051061922E-03 2.7809056919068E-03 2.1062008326300E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 35 10 1 2 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 2 9.9578243177141E+02 9.9578263819379E+02 9.9578222534190E+02 +(PID.TID 0000.0001) grdchk output (g): 2 2.0642594233777E+01 2.0642595291138E+01 5.1222258434791E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 36 10 1 2 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 3 9.9578243177141E+02 9.9578322825195E+02 9.9578163526403E+02 +(PID.TID 0000.0001) grdchk output (g): 3 7.9649395706838E+01 7.9649398803711E+01 3.8881311836825E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 37 10 1 2 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 4 9.9578243177141E+02 9.9578243186619E+02 9.9578243167684E+02 +(PID.TID 0000.0001) grdchk output (g): 4 9.4676636308577E-03 9.4676632434130E-03 -4.0922953470357E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 1.1199440138213E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 108.03695266647264 +(PID.TID 0000.0001) System time: 2.6022480318788439 +(PID.TID 0000.0001) Wall clock time: 111.03285789489746 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.26363699231296778 +(PID.TID 0000.0001) System time: 5.2691998658701777E-002 +(PID.TID 0000.0001) Wall clock time: 0.34624099731445312 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 59.585151314735413 +(PID.TID 0000.0001) System time: 2.8081715106964111E-002 +(PID.TID 0000.0001) Wall clock time: 59.774497985839844 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8658280372619629E-002 +(PID.TID 0000.0001) System time: 6.6995620727539062E-005 +(PID.TID 0000.0001) Wall clock time: 1.8832445144653320E-002 +(PID.TID 0000.0001) No. starts: 8 +(PID.TID 0000.0001) No. stops: 8 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.8267793655395508E-002 +(PID.TID 0000.0001) System time: 3.0907690525054932E-003 +(PID.TID 0000.0001) Wall clock time: 0.10613870620727539 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 6.5640568733215332E-002 +(PID.TID 0000.0001) System time: 2.1281391382217407E-003 +(PID.TID 0000.0001) Wall clock time: 6.8064689636230469E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.5143694877624512E-002 +(PID.TID 0000.0001) System time: 3.3855438232421875E-005 +(PID.TID 0000.0001) Wall clock time: 7.5426101684570312E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0361661911010742E-002 +(PID.TID 0000.0001) System time: 2.2098422050476074E-005 +(PID.TID 0000.0001) Wall clock time: 2.0454406738281250E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7837380170822144 +(PID.TID 0000.0001) System time: 1.9788742065429688E-005 +(PID.TID 0000.0001) Wall clock time: 2.7912733554840088 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 33.077173590660095 +(PID.TID 0000.0001) System time: 1.2159347534179688E-005 +(PID.TID 0000.0001) Wall clock time: 33.164688110351562 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.2646449804306030 +(PID.TID 0000.0001) System time: 1.9073486328125000E-006 +(PID.TID 0000.0001) Wall clock time: 7.2840054035186768 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.90458369255065918 +(PID.TID 0000.0001) System time: 1.3917684555053711E-005 +(PID.TID 0000.0001) Wall clock time: 0.90697813034057617 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.19442081451416016 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.19498777389526367 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.19940829277038574 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.19999194145202637 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.3174285888671875E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.5629997253417969E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1372015476226807 +(PID.TID 0000.0001) System time: 6.8809986114501953E-003 +(PID.TID 0000.0001) Wall clock time: 7.1655621528625488 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.81195092201232910 +(PID.TID 0000.0001) System time: 5.6132674217224121E-005 +(PID.TID 0000.0001) Wall clock time: 0.81467080116271973 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.2868862152099609E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.2929420471191406E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2506713867187500E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.5200843811035156E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.5145492553710938E-002 +(PID.TID 0000.0001) System time: 8.9229643344879150E-003 +(PID.TID 0000.0001) Wall clock time: 7.4312686920166016E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.4580955505371094E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.5033950805664062E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.8925600051879883E-002 +(PID.TID 0000.0001) System time: 9.9481940269470215E-003 +(PID.TID 0000.0001) Wall clock time: 9.9265813827514648E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 0.10156154632568359 +(PID.TID 0000.0001) System time: 7.0146620273590088E-003 +(PID.TID 0000.0001) Wall clock time: 0.10903930664062500 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 0.36970424652099609 +(PID.TID 0000.0001) System time: 3.9372146129608154E-003 +(PID.TID 0000.0001) Wall clock time: 0.37488269805908203 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 60.207893371582031 +(PID.TID 0000.0001) System time: 5.8790922164916992E-002 +(PID.TID 0000.0001) Wall clock time: 60.425422906875610 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 5.5771827697753906 +(PID.TID 0000.0001) System time: 3.6810636520385742E-002 +(PID.TID 0000.0001) Wall clock time: 5.6292185783386230 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 54.532981872558594 +(PID.TID 0000.0001) System time: 8.3489418029785156E-003 +(PID.TID 0000.0001) Wall clock time: 54.684335947036743 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 0.53802108764648438 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.53900265693664551 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "PROFILES_INLOOP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 3.7803649902343750E-003 +(PID.TID 0000.0001) System time: 2.4557113647460938E-005 +(PID.TID 0000.0001) Wall clock time: 3.7996768951416016E-003 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 53.417816162109375 +(PID.TID 0000.0001) System time: 2.1116733551025391E-003 +(PID.TID 0000.0001) Wall clock time: 53.560151815414429 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.13811492919921875 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 0.13837695121765137 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "PROFILES_INLOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 8.6975097656250000E-004 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 8.7451934814453125E-004 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.42352676391601562 +(PID.TID 0000.0001) System time: 4.9717426300048828E-003 +(PID.TID 0000.0001) Wall clock time: 0.43002581596374512 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 1.8386840820312500E-003 +(PID.TID 0000.0001) System time: 2.5987625122070312E-004 +(PID.TID 0000.0001) Wall clock time: 2.1040439605712891E-003 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 58896 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 58896 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_oce_latlon/README b/verification/global_oce_latlon/README new file mode 100644 index 0000000000..380092068e --- /dev/null +++ b/verification/global_oce_latlon/README @@ -0,0 +1,95 @@ +Starting a configuration for OpenAD +19-Aug-2005, heimbach@mit.edu, utke@mcs.anl.gov, cnh@mit.edu +############################################################ + +This experiment is derived from global_ocean.90x40x15. +Additionally it tests packages gmredi, kpp, and ggl90. + +-------------------------------------- +Part 1, using OpenAD Adjoint Compiler: +------- + +The built process needed to be modified, and some routines +needed changes. Most changes were commited to default routines, +the remaining changes are kept in code_oad/ for now. + +To build: +# (chdir to build/; assume we are in build/) + +# Clean-up (if not starting from clean build dir): +> make CLEAN +-------------- +# generate makefile using gfortran and genmake2: +> ../../../tools/genmake2 -oad -of ../../../tools/build_options/linux_amd64_gfortran -mods ../code_oad + +# compile everything else +> make adAll + +# Note: might want to split the full single step above (make adAll) in several intermediate steps +# such as: +# a) invoke script to convert COMMON block headers to MODULE headers +# converts FILE.h to FILE_mod.h which uses newi module FILE_mod.F90 +> make cb2m +# +# b) re-generate makefile which takes into account newly created files +# FILE_mod.h, FILE_mod.F90 +> make makefile +# +# c) make .f, .f90 +> make small_f +# +# d) first compile all module files .f90 +> make allmods +# +# e) then finaly compile all f90 src files: +> make adAll + +To clean: +-------- +# Since soft links get overwritten, for now do: +> make CLEAN + +To run: +# chdir to run/; assume we are in run/, if not: +> cd ../run +------ +# paremeter files are in input_oad/ +> ln -s ../input_oad/* . +# link other forcing fields (binary files) from exp. tutorial_global_oce_latlon +> ../input_oad/prepare_run + +# run a short test: +> ln -s ../build/mitgcmuv_ad +> ./mitgcmuv_ad > output.txt + +----------------------------------- +Part 2, using TAF Adjoint Compiler: +------- +similar to above but using set-up specific code from code_ad/ and input files from input_ad/ + +To build: +# assume we are in build/ + +# Clean-up (if not starting from clean build dir): +> make CLEAN +# generate makefile using gfortran and genmake2: +> ../../../tools/genmake2 -of ../../../tools/build_options/linux_amd64_gfortran -mods ../code_ad + +# generate dependencies: +> make depend + +# generate AD src code and compile +> make adall + +To run: +# assume we are in run/, if not: +> cd ../run + +# link parameter files: +> ln -s ../input_ad/* . +# link other forcing fields (binary files) from exp. tutorial_global_oce_latlon +> ../input_ad/prepare_run + +# run a short test: +> ln -s ../build/mitgcmuv_ad +> ./mitgcmuv_ad > output.txt diff --git a/verification/OpenAD/build/.gitignore b/verification/global_oce_latlon/build/.gitignore similarity index 100% rename from verification/OpenAD/build/.gitignore rename to verification/global_oce_latlon/build/.gitignore diff --git a/verification/global_oce_latlon/code_ad/AUTODIFF_OPTIONS.h b/verification/global_oce_latlon/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..2604c81b9a --- /dev/null +++ b/verification/global_oce_latlon/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#define AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/OpenAD/code_ad/COST_OPTIONS.h b/verification/global_oce_latlon/code_ad/COST_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_ad/COST_OPTIONS.h rename to verification/global_oce_latlon/code_ad/COST_OPTIONS.h diff --git a/verification/OpenAD/code_ad/CPP_OPTIONS.h b/verification/global_oce_latlon/code_ad/CPP_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_ad/CPP_OPTIONS.h rename to verification/global_oce_latlon/code_ad/CPP_OPTIONS.h diff --git a/verification/OpenAD/code_ad/CTRL_OPTIONS.h b/verification/global_oce_latlon/code_ad/CTRL_OPTIONS.h similarity index 79% rename from verification/OpenAD/code_ad/CTRL_OPTIONS.h rename to verification/global_oce_latlon/code_ad/CTRL_OPTIONS.h index 8c6a54b04d..c68aa4ebc9 100644 --- a/verification/OpenAD/code_ad/CTRL_OPTIONS.h +++ b/verification/global_oce_latlon/code_ad/CTRL_OPTIONS.h @@ -26,15 +26,18 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED #undef EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL #undef ALLOW_TR10_CONTROL #undef ALLOW_TAUU0_CONTROL #undef ALLOW_TAUV0_CONTROL @@ -42,7 +45,6 @@ C >>> Initial values. #undef ALLOW_HFLUX0_CONTROL #undef ALLOW_SSS0_CONTROL #undef ALLOW_SST0_CONTROL -#define DISABLE_CTRL_THETA_LIMIT C >>> Surface fluxes. #undef ALLOW_HFLUX_CONTROL @@ -65,15 +67,25 @@ C >>> Other Control. #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + C >>> Generic Control. #undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/global_oce_latlon/code_ad/CTRL_SIZE.h b/verification/global_oce_latlon/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..ba4be1a2b5 --- /dev/null +++ b/verification/global_oce_latlon/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_latlon/code_ad/GGL90_OPTIONS.h b/verification/global_oce_latlon/code_ad/GGL90_OPTIONS.h new file mode 100644 index 0000000000..c6b45f47ec --- /dev/null +++ b/verification/global_oce_latlon/code_ad/GGL90_OPTIONS.h @@ -0,0 +1,31 @@ +C *=============================================================* +C | GGL90_OPTIONS.h +C | o CPP options file for GGL90 package. +C *=============================================================* +C | Use this file for selecting options within the GGL90 +C | package. +C *=============================================================* + +#ifndef GGL90_OPTIONS_H +#define GGL90_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GGL90 +C Package-specific Options & Macros go here + +C Enable horizontal diffusion of TKE. +#undef ALLOW_GGL90_HORIZDIFF + +C Use horizontal averaging for viscosity and diffusivity as +C originally implemented in OPA. +#undef ALLOW_GGL90_SMOOTH + +C allow IDEMIX model +#undef ALLOW_GGL90_IDEMIX + +C include Langmuir circulation parameterization +#define ALLOW_GGL90_LANGMUIR + +#endif /* ALLOW_GGL90 */ +#endif /* GGL90_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_ad/GMREDI_OPTIONS.h b/verification/global_oce_latlon/code_ad/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..a5d7cd84d3 --- /dev/null +++ b/verification/global_oce_latlon/code_ad/GMREDI_OPTIONS.h @@ -0,0 +1,60 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C Allows to read-in background 3-D Redi and GM diffusivity coefficients +C Note: need these to be defined for use as control (pkg/ctrl) parameters +#undef GM_READ_K3D_REDI +#define GM_READ_K3D_GM + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the Bates et al formulation to calculate the +C bolus transport and K for Redi +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +C Allow QG Leith variable viscosity to be added to GMRedi coefficient +#undef ALLOW_GM_LEITH_QG + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/OpenAD/code_ad/KPP_OPTIONS.h b/verification/global_oce_latlon/code_ad/KPP_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_ad/KPP_OPTIONS.h rename to verification/global_oce_latlon/code_ad/KPP_OPTIONS.h diff --git a/verification/OpenAD/code_ad/SIZE.h b/verification/global_oce_latlon/code_ad/SIZE.h similarity index 96% rename from verification/OpenAD/code_ad/SIZE.h rename to verification/global_oce_latlon/code_ad/SIZE.h index e10f455810..df51fbd561 100644 --- a/verification/OpenAD/code_ad/SIZE.h +++ b/verification/global_oce_latlon/code_ad/SIZE.h @@ -61,8 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) - -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/OpenAD/code_ad/packages.conf b/verification/global_oce_latlon/code_ad/packages.conf similarity index 94% rename from verification/OpenAD/code_ad/packages.conf rename to verification/global_oce_latlon/code_ad/packages.conf index 5e905c0ab6..f473f5f1e0 100644 --- a/verification/OpenAD/code_ad/packages.conf +++ b/verification/global_oce_latlon/code_ad/packages.conf @@ -1,6 +1,7 @@ #-- list of packages (or group of packages) to compile for this experiment: gfd cd_code +ggl90 gmredi kpp mnc diff --git a/verification/global_oce_latlon/code_ad/tamc.h b/verification/global_oce_latlon/code_ad/tamc.h new file mode 100644 index 0000000000..94541ac032 --- /dev/null +++ b/verification/global_oce_latlon/code_ad/tamc.h @@ -0,0 +1,95 @@ +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C + +#ifdef ALLOW_TAMC_CHECKPOINTING + +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 3 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 120 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 150 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif + +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. + +#else /* ALLOW_TAMC_CHECKPOINTING undefined */ + +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) + +#endif /* ALLOW_TAMC_CHECKPOINTING */ + +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop + + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics + +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. + INTEGER isbyte + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS + INTEGER maxpass + PARAMETER( maxpass = 2 ) +#endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions + INTEGER maxcube + PARAMETER( maxcube = 1 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif + +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/OpenAD/code_oad/AUTODIFF_OPTIONS.h b/verification/global_oce_latlon/code_oad/AUTODIFF_OPTIONS.h similarity index 55% rename from verification/OpenAD/code_oad/AUTODIFF_OPTIONS.h rename to verification/global_oce_latlon/code_oad/AUTODIFF_OPTIONS.h index 5c5ece6d6d..b69f4d1f96 100644 --- a/verification/OpenAD/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/global_oce_latlon/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,14 +48,38 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) #undef AUTODIFF_PTRACERS_SPLIT_FILES +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_AUTODIFF */ diff --git a/verification/OpenAD/code_oad/COST_OPTIONS.h b/verification/global_oce_latlon/code_oad/COST_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_oad/COST_OPTIONS.h rename to verification/global_oce_latlon/code_oad/COST_OPTIONS.h diff --git a/verification/OpenAD/code_oad/CPP_OPTIONS.h b/verification/global_oce_latlon/code_oad/CPP_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_oad/CPP_OPTIONS.h rename to verification/global_oce_latlon/code_oad/CPP_OPTIONS.h diff --git a/verification/global_oce_latlon/code_oad/CTRL_OPTIONS.h b/verification/global_oce_latlon/code_oad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..09c6405623 --- /dev/null +++ b/verification/global_oce_latlon/code_oad/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_oad/CTRL_SIZE.h b/verification/global_oce_latlon/code_oad/CTRL_SIZE.h new file mode 100644 index 0000000000..12b5f95842 --- /dev/null +++ b/verification/global_oce_latlon/code_oad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 4 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/OpenAD/code_oad/GGL90_OPTIONS.h b/verification/global_oce_latlon/code_oad/GGL90_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_oad/GGL90_OPTIONS.h rename to verification/global_oce_latlon/code_oad/GGL90_OPTIONS.h diff --git a/verification/OpenAD/code_ad/GMREDI_OPTIONS.h b/verification/global_oce_latlon/code_oad/GMREDI_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_ad/GMREDI_OPTIONS.h rename to verification/global_oce_latlon/code_oad/GMREDI_OPTIONS.h diff --git a/verification/OpenAD/code_oad/KPP_OPTIONS.h b/verification/global_oce_latlon/code_oad/KPP_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_oad/KPP_OPTIONS.h rename to verification/global_oce_latlon/code_oad/KPP_OPTIONS.h diff --git a/verification/OpenAD/code_oad/OPENAD_OPTIONS.h b/verification/global_oce_latlon/code_oad/OPENAD_OPTIONS.h similarity index 94% rename from verification/OpenAD/code_oad/OPENAD_OPTIONS.h rename to verification/global_oce_latlon/code_oad/OPENAD_OPTIONS.h index 3e8f7fee5a..dad84c91e4 100644 --- a/verification/OpenAD/code_oad/OPENAD_OPTIONS.h +++ b/verification/global_oce_latlon/code_oad/OPENAD_OPTIONS.h @@ -18,7 +18,7 @@ CEOP #ifdef ALLOW_OPENAD #define ALLOW_OPENAD_ACTIVE_READ_XYZ -#undef ALLOW_OPENAD_ACTIVE_READ_XY +#define ALLOW_OPENAD_ACTIVE_READ_XY #undef ALLOW_OPENAD_ACTIVE_WRITE #endif /* ALLOW_OPENAD */ diff --git a/verification/OpenAD/code_oad/SIZE.h b/verification/global_oce_latlon/code_oad/SIZE.h similarity index 96% rename from verification/OpenAD/code_oad/SIZE.h rename to verification/global_oce_latlon/code_oad/SIZE.h index 7a25dae3ee..0a9c5c2eb1 100644 --- a/verification/OpenAD/code_oad/SIZE.h +++ b/verification/global_oce_latlon/code_oad/SIZE.h @@ -61,8 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) - -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/OpenAD/code_oad/cb2mFiles b/verification/global_oce_latlon/code_oad/cb2mFiles similarity index 88% rename from verification/OpenAD/code_oad/cb2mFiles rename to verification/global_oce_latlon/code_oad/cb2mFiles index 07c9ba2e49..e3f5a7f9fb 100644 --- a/verification/OpenAD/code_oad/cb2mFiles +++ b/verification/global_oce_latlon/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -25,10 +24,9 @@ g_cost GLOBAL_MAX GLOBAL_SUM GGL90 -GGL90_TAVE GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID KPP KPP_PARAMS @@ -42,5 +40,3 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc diff --git a/verification/global_oce_latlon/code_oad/ctrl_map_ini_genarr.F b/verification/global_oce_latlon/code_oad/ctrl_map_ini_genarr.F new file mode 100644 index 0000000000..95784ddd03 --- /dev/null +++ b/verification/global_oce_latlon/code_oad/ctrl_map_ini_genarr.F @@ -0,0 +1,243 @@ +#include "CTRL_OPTIONS.h" +#undef PREVENT_TOO_COLD_TEMP + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENARR +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_INI_GENARR +C | Add the generic arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C | local version for OpenAD exp. OpenAD, global_ocean.90x40x15 +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" +#include "optim.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +c#include "PTRACERS_PARAMS.h" +# include "PTRACERS_FIELDS.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +C !FUNCTIONS: + INTEGER ILNBLNk + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: +C == local variables == + INTEGER bi,bj + INTEGER i,j,k + INTEGER il + INTEGER iarr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +CEOP + + doglobalread = .FALSE. + ladinit = .FALSE. + fac = 1. _d 0 + +#ifdef ALLOW_GENARR2D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 2D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr2D + +C These forcing control variables are constant in time for this +C experiment, so that we can specify them here. Once we know how to +C make OpenAD use the gentim2d controls, these should be handled via +C ctrl_map_gentim2d.F + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr2d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr2d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fu(i,j,bi,bj) = fu(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 4 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fv(i,j,bi,bj) = fv(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +C-- end iarr loop + ENDDO + _EXCH_XY_RS( qnet, myThid ) + _EXCH_XY_RS( empmr, myThid ) + CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) + +#endif /* ALLOW_GENARR2D_CONTROL */ + +#ifdef ALLOW_GENARR3D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 3D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +cc + +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr3D + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr3d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr3d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) +#ifdef PREVENT_TOO_COLD_TEMP +C necessary to reproduce old results + IF ( theta(i,j,k,bi,bj).LT.-2.0 _d 0 ) + & theta(i,j,k,bi,bj) = -2.0 _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( theta, Nr, myThid ) + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( salt, Nr, myThid ) +#ifdef ALLOW_3D_DIFFKR + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + diffKr(i,j,k,bi,bj) = diffKr(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( diffKr, Nr, myThid ) +#endif + ENDIF + +C-- end iarr loop + ENDDO + +#endif /* ALLOW_GENARR3D_CONTROL */ + + RETURN + END diff --git a/verification/OpenAD/code_oad/dontCompile b/verification/global_oce_latlon/code_oad/dontCompile similarity index 100% rename from verification/OpenAD/code_oad/dontCompile rename to verification/global_oce_latlon/code_oad/dontCompile diff --git a/verification/OpenAD/code_oad/dontTransform b/verification/global_oce_latlon/code_oad/dontTransform similarity index 100% rename from verification/OpenAD/code_oad/dontTransform rename to verification/global_oce_latlon/code_oad/dontTransform diff --git a/verification/OpenAD/code_oad/packages.conf b/verification/global_oce_latlon/code_oad/packages.conf similarity index 100% rename from verification/OpenAD/code_oad/packages.conf rename to verification/global_oce_latlon/code_oad/packages.conf diff --git a/verification/global_oce_latlon/code_tap/AUTODIFF_OPTIONS.h b/verification/global_oce_latlon/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..7339a3b301 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) +#undef AUTODIFF_PTRACERS_SPLIT_FILES + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_tap/COST_OPTIONS.h b/verification/global_oce_latlon/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..b9ce4eb93e --- /dev/null +++ b/verification/global_oce_latlon/code_tap/COST_OPTIONS.h @@ -0,0 +1,78 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT +#undef ALLOW_COST_ATLANTIC_HEAT_DOMASS + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_tap/CPP_OPTIONS.h b/verification/global_oce_latlon/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..f4b012998d --- /dev/null +++ b/verification/global_oce_latlon/code_tap/CPP_OPTIONS.h @@ -0,0 +1,139 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#undef ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#define ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#undef INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#undef EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_tap/CTRL_OPTIONS.h b/verification/global_oce_latlon/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..74e0d2bcf1 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#define ALLOW_DIFFKR_CONTROL +#define ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_tap/CTRL_SIZE.h b/verification/global_oce_latlon/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..12b5f95842 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 4 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_latlon/code_tap/GGL90_OPTIONS.h b/verification/global_oce_latlon/code_tap/GGL90_OPTIONS.h new file mode 100644 index 0000000000..a92d1b85bb --- /dev/null +++ b/verification/global_oce_latlon/code_tap/GGL90_OPTIONS.h @@ -0,0 +1,28 @@ +C *=============================================================* +C | GGL90_OPTIONS.h +C | o CPP options file for GGL90 package. +C *=============================================================* +C | Use this file for selecting options within the GGL90 +C | package. +C *=============================================================* + +#ifndef GGL90_OPTIONS_H +#define GGL90_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GGL90 +C Package-specific Options & Macros go here + +C Enable horizontal diffusion of TKE. +#undef ALLOW_GGL90_HORIZDIFF + +C Use horizontal averaging for viscosity and diffusivity as +C originally implemented in OPA. +#define ALLOW_GGL90_SMOOTH + +C allow IDEMIX model +#undef ALLOW_GGL90_IDEMIX + +#endif /* ALLOW_GGL90 */ +#endif /* GGL90_OPTIONS_H */ diff --git a/verification/global_oce_latlon/code_tap/GMREDI_OPTIONS.h b/verification/global_oce_latlon/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..a5d7cd84d3 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,60 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C Allows to read-in background 3-D Redi and GM diffusivity coefficients +C Note: need these to be defined for use as control (pkg/ctrl) parameters +#undef GM_READ_K3D_REDI +#define GM_READ_K3D_GM + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the Bates et al formulation to calculate the +C bolus transport and K for Redi +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +C Allow QG Leith variable viscosity to be added to GMRedi coefficient +#undef ALLOW_GM_LEITH_QG + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_latlon/code_tap/KPP_OPTIONS.h b/verification/global_oce_latlon/code_tap/KPP_OPTIONS.h new file mode 100644 index 0000000000..29d2822071 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/KPP_OPTIONS.h @@ -0,0 +1,65 @@ +C *==========================================================* +C | KPP_OPTIONS.h +C | o CPP options file for KPP package. +C *==========================================================* +C | Use this file for selecting options within the KPP +C | package. +C *==========================================================* + +#ifndef KPP_OPTIONS_H +#define KPP_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_KPP +C Package-specific Options & Macros go here + +C o When set, smooth shear horizontally with 121 filters +cph#define KPP_SMOOTH_SHSQ +#undef KPP_SMOOTH_SHSQ +#undef KPP_SMOOTH_DVSQ + +C o When set, smooth dbloc KPP variable horizontally +cph#define KPP_SMOOTH_DBLOC +#undef KPP_SMOOTH_DBLOC + +C o When set, smooth all KPP density variables horizontally +#undef KPP_SMOOTH_DENS +#ifdef KPP_SMOOTH_DENS +# define KPP_SMOOTH_DBLOC +#endif + +C o When set, smooth vertical viscosity horizontally +#undef KPP_SMOOTH_VISC + +C o When set, smooth vertical diffusivity horizontally +#undef KPP_SMOOTH_DIFF + +C o Get rid of vertical resolution dependence of dVsq term by +C estimating a surface velocity that is independent of first +C level thickness in the model. +#undef KPP_ESTIMATE_UREF + +C o Include/exclude KPP non/local transport terms +cph#define KPP_GHAT +#undef KPP_GHAT + +C o Exclude Interior shear instability mixing +#undef EXCLUDE_KPP_SHEAR_MIX + +C o Exclude double diffusive mixing in the interior +#undef EXCLUDE_KPP_DOUBLEDIFF + +C o Avoid as many as possible AD recomputations +C usually not necessary, but useful for testing +#undef KPP_AUTODIFF_EXCESSIVE_STORE + +C o Vertically smooth Ri (for interior shear mixing) +#undef ALLOW_KPP_VERTICALLY_SMOOTH + +#endif /* ALLOW_KPP */ +#endif /* KPP_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_oce_latlon/code_tap/SIZE.h b/verification/global_oce_latlon/code_tap/SIZE.h new file mode 100644 index 0000000000..0a9c5c2eb1 --- /dev/null +++ b/verification/global_oce_latlon/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 45, + & sNy = 20, + & OLx = 3, + & OLy = 3, + & nSx = 2, + & nSy = 2, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/OpenAD/code_ad_singlelayer/packages.conf b/verification/global_oce_latlon/code_tap/packages.conf similarity index 68% rename from verification/OpenAD/code_ad_singlelayer/packages.conf rename to verification/global_oce_latlon/code_tap/packages.conf index 7f50c0801f..85041e66af 100644 --- a/verification/OpenAD/code_ad_singlelayer/packages.conf +++ b/verification/global_oce_latlon/code_tap/packages.conf @@ -1,9 +1,10 @@ #-- list of packages (or group of packages) to compile for this experiment: -autodiff -cost -ctrl -grdchk - gfd --mom_vecinv -monitor +cd_code +ggl90 +gmredi +kpp + +tapenade +adjoint diff --git a/verification/OpenAD/input_ad/data b/verification/global_oce_latlon/input_ad/data similarity index 80% rename from verification/OpenAD/input_ad/data rename to verification/global_oce_latlon/input_ad/data index 070b0c1346..02f6b195a1 100644 --- a/verification/OpenAD/input_ad/data +++ b/verification/global_oce_latlon/input_ad/data @@ -40,23 +40,12 @@ nIter0 = 0, nTimeSteps = 4, # 100 years of integration will yield a reasonable flow field -# startTime = 0., -# endTime = 3110400000., +# endTime = 3110400000., deltaTMom = 1200.0, tauCD = 321428., deltaTtracer= 43200.0, deltaTClock = 43200.0, -# if you are using a version later than checkpoint45d on the main branch -# you can uncomment the following line and increase the time step -# deltaTtracer and deltaTClock to 172800.0 as well to speed up the -# asynchronous time stepping -# deltaTfreesurf = 172800.0, abEps = 0.1, - pChkptFreq= 311040000., - dumpFreq = 2592000., - adjDumpFreq = 2592000., - monitorFreq = 2592000., - adjMonitorFreq = 2592000., # 2 months restoring timescale for temperature tauThetaClimRelax = 5184000.0, # 6 months restoring timescale for salinity @@ -64,6 +53,13 @@ periodicExternalForcing=.TRUE., externForcingPeriod=2592000., externForcingCycle=31104000., +#- output: + pChkptFreq = 311040000., + dumpFreq = 2592000., + adjDumpFreq = 2592000., + monitorSelect = 2, + monitorFreq = 86400., + adjMonitorFreq = 86400., & # Gridding parameters diff --git a/verification/OpenAD/input_ad/data.autodiff b/verification/global_oce_latlon/input_ad/data.autodiff similarity index 100% rename from verification/OpenAD/input_ad/data.autodiff rename to verification/global_oce_latlon/input_ad/data.autodiff diff --git a/verification/OpenAD/input_ad/data.cost b/verification/global_oce_latlon/input_ad/data.cost similarity index 100% rename from verification/OpenAD/input_ad/data.cost rename to verification/global_oce_latlon/input_ad/data.cost diff --git a/verification/global_oce_latlon/input_ad/data.ctrl b/verification/global_oce_latlon/input_ad/data.ctrl new file mode 100644 index 0000000000..bacc67ad4a --- /dev/null +++ b/verification/global_oce_latlon/input_ad/data.ctrl @@ -0,0 +1,34 @@ +# ********************* +# ECCO controlvariables +# ********************* + &CTRL_NML + & +# +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR +# the bounds are commented out to reproduce old results with +# the CPP-flag DISABLE_CTRL_THETA_LIMIT defined + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +# + xx_genarr3d_file(3) = 'xx_diffkr', + xx_genarr3d_weight(3) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +# + xx_genarr3d_file(4) = 'xx_kapgm', + xx_genarr3d_weight(4) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., + & diff --git a/verification/OpenAD/input_ad/data.gmredi b/verification/global_oce_latlon/input_ad/data.gmredi similarity index 100% rename from verification/OpenAD/input_ad/data.gmredi rename to verification/global_oce_latlon/input_ad/data.gmredi diff --git a/verification/global_oce_latlon/input_ad/data.grdchk b/verification/global_oce_latlon/input_ad/data.grdchk new file mode 100644 index 0000000000..4c8ef1c702 --- /dev/null +++ b/verification/global_oce_latlon/input_ad/data.grdchk @@ -0,0 +1,22 @@ + +# ******************* +# ECCO gradient check +# ******************* + &GRDCHK_NML + grdchk_eps = 1.d-2, + iGloPos = 71, +#jGloPos = 39, +# This original setting would start the gradient check for temperatures +# that are below the freezing point in the inital conditions. Because of +# allowFreezing=True in data&PARM01 and the unphysical nature of this +# freezing parameterisation, the FD gradients depend very much on the +# whether they are evaluated above and below freezing or not leading +# to inconsistent results. Moving the starting point to jGloPos=37 +# avoids this. + jGloPos = 37, + kGloPos = 1, +### nbeg = 1, + nstep = 1, + nend = 7, + grdchkvarindex = 201, + & diff --git a/verification/OpenAD/input_ad/data.optim b/verification/global_oce_latlon/input_ad/data.optim similarity index 100% rename from verification/OpenAD/input_ad/data.optim rename to verification/global_oce_latlon/input_ad/data.optim diff --git a/verification/OpenAD/input_ad/data.pkg b/verification/global_oce_latlon/input_ad/data.pkg similarity index 100% rename from verification/OpenAD/input_ad/data.pkg rename to verification/global_oce_latlon/input_ad/data.pkg diff --git a/verification/OpenAD/input_ad/eedata b/verification/global_oce_latlon/input_ad/eedata similarity index 100% rename from verification/OpenAD/input_ad/eedata rename to verification/global_oce_latlon/input_ad/eedata diff --git a/verification/global_oce_latlon/input_ad/prepare_run b/verification/global_oce_latlon/input_ad/prepare_run new file mode 100755 index 0000000000..2545cd9ab3 --- /dev/null +++ b/verification/global_oce_latlon/input_ad/prepare_run @@ -0,0 +1,51 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../tutorial_global_oce_latlon/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/OpenAD/input_oad.ggl90/data b/verification/global_oce_latlon/input_oad.ggl90/data similarity index 100% rename from verification/OpenAD/input_oad.ggl90/data rename to verification/global_oce_latlon/input_oad.ggl90/data diff --git a/verification/OpenAD/input_oad.ggl90/data.ggl90 b/verification/global_oce_latlon/input_oad.ggl90/data.ggl90 similarity index 93% rename from verification/OpenAD/input_oad.ggl90/data.ggl90 rename to verification/global_oce_latlon/input_oad.ggl90/data.ggl90 index 15ca5275c8..ee793fa243 100644 --- a/verification/OpenAD/input_oad.ggl90/data.ggl90 +++ b/verification/global_oce_latlon/input_oad.ggl90/data.ggl90 @@ -2,7 +2,6 @@ # | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | # ===================================================================== &GGL90_PARM01 -# GGL90taveFreq = 345600000., # GGL90dumpFreq = 86400., # GGL90writeState=.FALSE., # GGL90diffTKEh=3.e3, diff --git a/verification/OpenAD/input_oad.ggl90/data.pkg b/verification/global_oce_latlon/input_oad.ggl90/data.pkg similarity index 100% rename from verification/OpenAD/input_oad.ggl90/data.pkg rename to verification/global_oce_latlon/input_oad.ggl90/data.pkg diff --git a/verification/OpenAD/input_oad.kpp/NCEP_4x4_sw_monav_48-03av b/verification/global_oce_latlon/input_oad.kpp/NCEP_4x4_sw_monav_48-03av similarity index 100% rename from verification/OpenAD/input_oad.kpp/NCEP_4x4_sw_monav_48-03av rename to verification/global_oce_latlon/input_oad.kpp/NCEP_4x4_sw_monav_48-03av diff --git a/verification/OpenAD/input_oad.kpp/data b/verification/global_oce_latlon/input_oad.kpp/data similarity index 100% rename from verification/OpenAD/input_oad.kpp/data rename to verification/global_oce_latlon/input_oad.kpp/data diff --git a/verification/OpenAD/input_oad.kpp/data.kpp b/verification/global_oce_latlon/input_oad.kpp/data.kpp similarity index 100% rename from verification/OpenAD/input_oad.kpp/data.kpp rename to verification/global_oce_latlon/input_oad.kpp/data.kpp diff --git a/verification/OpenAD/input_oad.kpp/data.pkg b/verification/global_oce_latlon/input_oad.kpp/data.pkg similarity index 100% rename from verification/OpenAD/input_oad.kpp/data.pkg rename to verification/global_oce_latlon/input_oad.kpp/data.pkg diff --git a/verification/OpenAD/input_oad/data b/verification/global_oce_latlon/input_oad/data similarity index 100% rename from verification/OpenAD/input_oad/data rename to verification/global_oce_latlon/input_oad/data diff --git a/verification/OpenAD/input_oad/data.autodiff b/verification/global_oce_latlon/input_oad/data.autodiff similarity index 100% rename from verification/OpenAD/input_oad/data.autodiff rename to verification/global_oce_latlon/input_oad/data.autodiff diff --git a/verification/OpenAD/input_ad_singlelayer/data.cost b/verification/global_oce_latlon/input_oad/data.cost similarity index 100% rename from verification/OpenAD/input_ad_singlelayer/data.cost rename to verification/global_oce_latlon/input_oad/data.cost diff --git a/verification/global_oce_latlon/input_oad/data.ctrl b/verification/global_oce_latlon/input_oad/data.ctrl new file mode 100644 index 0000000000..095669c20c --- /dev/null +++ b/verification/global_oce_latlon/input_oad/data.ctrl @@ -0,0 +1,39 @@ +# ********************* +# ECCO controlvariables +# ********************* + &CTRL_NML + & +# +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR +# the bounds are commented out to reproduce old results with +# the CPP-flag DISABLE_CTRL_THETA_LIMIT defined + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', +#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +# + xx_genarr2d_file(1) = 'xx_qnet', + xx_genarr2d_weight(1) = 'ones_64b.bin', +# + xx_genarr2d_file(2) = 'xx_empmr', + xx_genarr2d_weight(2) = 'ones_64b.bin', +# + xx_genarr2d_file(3) = 'xx_fu', + xx_genarr2d_weight(3) = 'ones_64b.bin', +# + xx_genarr2d_file(4) = 'xx_fv', + xx_genarr2d_weight(4) = 'ones_64b.bin', +# + & diff --git a/verification/OpenAD/input_oad/data.gmredi b/verification/global_oce_latlon/input_oad/data.gmredi similarity index 100% rename from verification/OpenAD/input_oad/data.gmredi rename to verification/global_oce_latlon/input_oad/data.gmredi diff --git a/verification/global_oce_latlon/input_oad/data.grdchk b/verification/global_oce_latlon/input_oad/data.grdchk new file mode 100644 index 0000000000..e8c7806f56 --- /dev/null +++ b/verification/global_oce_latlon/input_oad/data.grdchk @@ -0,0 +1,24 @@ + +# ******************* +# ECCO gradient check +# ******************* + &GRDCHK_NML + grdchk_eps = 1.d-2, + iGloTile = 2, + jGloTile = 2, + iGloPos = 26, +#jGloPos = 19, +# This original setting would start the gradient check for temperatures +# that are below the freezing point in the inital conditions. Because of +# allowFreezing=True in data&PARM01 and the unphysical nature of this +# freezing parameterisation, the FD gradients depend very much on the +# whether they are evaluated above and below freezing or not leading +# to inconsistent results. Moving the starting point to jGloPos=17 +# avoids this. This is similar to input_ad but here we use jGloTile = 2. + jGloPos = 17, + kGloPos = 1, +### nbeg = 1, + nstep = 1, + nend = 7, + grdchkvarindex = 201, + & diff --git a/verification/OpenAD/input_ad_singlelayer/data.optim b/verification/global_oce_latlon/input_oad/data.optim similarity index 100% rename from verification/OpenAD/input_ad_singlelayer/data.optim rename to verification/global_oce_latlon/input_oad/data.optim diff --git a/verification/OpenAD/input_oad/data.pkg b/verification/global_oce_latlon/input_oad/data.pkg similarity index 100% rename from verification/OpenAD/input_oad/data.pkg rename to verification/global_oce_latlon/input_oad/data.pkg diff --git a/verification/OpenAD/input_oad/eedata b/verification/global_oce_latlon/input_oad/eedata similarity index 100% rename from verification/OpenAD/input_oad/eedata rename to verification/global_oce_latlon/input_oad/eedata diff --git a/verification/OpenAD/input_oad/ncheckLev.conf b/verification/global_oce_latlon/input_oad/ncheckLev.conf similarity index 100% rename from verification/OpenAD/input_oad/ncheckLev.conf rename to verification/global_oce_latlon/input_oad/ncheckLev.conf diff --git a/verification/global_oce_latlon/input_oad/prepare_run b/verification/global_oce_latlon/input_oad/prepare_run new file mode 100755 index 0000000000..2545cd9ab3 --- /dev/null +++ b/verification/global_oce_latlon/input_oad/prepare_run @@ -0,0 +1,51 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../tutorial_global_oce_latlon/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_oce_latlon/input_tap/prepare_run b/verification/global_oce_latlon/input_tap/prepare_run new file mode 100755 index 0000000000..cdcbe4e07f --- /dev/null +++ b/verification/global_oce_latlon/input_tap/prepare_run @@ -0,0 +1,77 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../tutorial_global_oce_latlon/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_oad" + +fileList=`( cd $fromDir ; echo data* eedata )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/OpenAD/linkData.bash b/verification/global_oce_latlon/linkData.bash similarity index 100% rename from verification/OpenAD/linkData.bash rename to verification/global_oce_latlon/linkData.bash diff --git a/verification/OpenAD/results/README b/verification/global_oce_latlon/results/README similarity index 100% rename from verification/OpenAD/results/README rename to verification/global_oce_latlon/results/README diff --git a/verification/OpenAD/results/output_adm.txt b/verification/global_oce_latlon/results/output_adm.txt similarity index 65% rename from verification/OpenAD/results/output_adm.txt rename to verification/global_oce_latlon/results/output_adm.txt index 3d7fe93025..ffeada547a 100644 --- a/verification/OpenAD/results/output_adm.txt +++ b/verification/global_oce_latlon/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65a -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Tue Jul 29 13:06:16 EDT 2014 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jul 25 15:34:07 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -21,9 +21,8 @@ (PID.TID 0000.0001) > nTx=1, (PID.TID 0000.0001) > nTy=1, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -49,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -89,10 +90,11 @@ (PID.TID 0000.0001) > viscAr=1.E-3, (PID.TID 0000.0001) > viscAh=5.E5, (PID.TID 0000.0001) > diffKhT=0.0, -(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, (PID.TID 0000.0001) > diffKhS=0.0, (PID.TID 0000.0001) > diffKrS=3.E-5, -(PID.TID 0000.0001) > rhonil=1035., +(PID.TID 0000.0001) > rhoConst=1035., (PID.TID 0000.0001) > rotationPeriod=86400., (PID.TID 0000.0001) > gravity=9.81, (PID.TID 0000.0001) > eosType = 'JMD95Z', @@ -119,23 +121,12 @@ (PID.TID 0000.0001) > nIter0 = 0, (PID.TID 0000.0001) > nTimeSteps = 4, (PID.TID 0000.0001) ># 100 years of integration will yield a reasonable flow field -(PID.TID 0000.0001) ># startTime = 0., -(PID.TID 0000.0001) ># endTime = 3110400000., -(PID.TID 0000.0001) > deltaTmom = 1200.0, +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTMom = 1200.0, (PID.TID 0000.0001) > tauCD = 321428., (PID.TID 0000.0001) > deltaTtracer= 43200.0, (PID.TID 0000.0001) > deltaTClock = 43200.0, -(PID.TID 0000.0001) ># if you are using a version later than checkpoint45d on the main branch -(PID.TID 0000.0001) ># you can uncomment the following line and increase the time step -(PID.TID 0000.0001) ># deltaTtracer and deltaTClock to 172800.0 as well to speed up the -(PID.TID 0000.0001) ># asynchronous time stepping -(PID.TID 0000.0001) ># deltaTfreesurf = 172800.0, (PID.TID 0000.0001) > abEps = 0.1, -(PID.TID 0000.0001) > pChkptFreq= 311040000., -(PID.TID 0000.0001) > dumpFreq = 2592000., -(PID.TID 0000.0001) > adjDumpFreq = 2592000., -(PID.TID 0000.0001) > monitorFreq = 2592000., -(PID.TID 0000.0001) > adjMonitorFreq = 2592000., (PID.TID 0000.0001) ># 2 months restoring timescale for temperature (PID.TID 0000.0001) > tauThetaClimRelax = 5184000.0, (PID.TID 0000.0001) ># 6 months restoring timescale for salinity @@ -143,14 +134,21 @@ (PID.TID 0000.0001) > periodicExternalForcing=.TRUE., (PID.TID 0000.0001) > externForcingPeriod=2592000., (PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) >#- output: +(PID.TID 0000.0001) > pChkptFreq = 311040000., +(PID.TID 0000.0001) > dumpFreq = 2592000., +(PID.TID 0000.0001) > adjDumpFreq = 2592000., +(PID.TID 0000.0001) > monitorSelect = 2, +(PID.TID 0000.0001) > monitorFreq = 86400., +(PID.TID 0000.0001) > adjMonitorFreq = 86400., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters (PID.TID 0000.0001) > &PARM04 (PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., -(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., -(PID.TID 0000.0001) > 240., 290., 340., 390., 440., -(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., (PID.TID 0000.0001) > ygOrigin=-80., (PID.TID 0000.0001) > dySpacing=4., (PID.TID 0000.0001) > dxSpacing=4., @@ -165,7 +163,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -203,8 +201,12 @@ (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/ggl90 compiled but not used ( useGGL90 = F ) + pkg/kpp compiled but not used ( useKPP = F ) pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) pkg/mnc compiled but not used ( useMNC = F ) -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- pkg/generic_advdiff compiled and used ( useGAD = T ) @@ -218,7 +220,6 @@ pkg/mdsio compiled and used pkg/autodiff compiled and used pkg/cost compiled and used - pkg/ctrl compiled and used (PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary (PID.TID 0000.0001) (PID.TID 0000.0001) GM_READPARMS: opening data.gmredi @@ -284,6 +285,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -305,9 +312,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -328,21 +344,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -350,12 +355,32 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_kapgm', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl -(PID.TID 0000.0001) useSmoothCorrel2DinAdMode = /* use ctrlSmoothCorrel2D in adjoint mode */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -386,12 +411,20 @@ (PID.TID 0000.0001) > &GRDCHK_NML (PID.TID 0000.0001) > grdchk_eps = 1.d-2, (PID.TID 0000.0001) > iGloPos = 71, -(PID.TID 0000.0001) > jGloPos = 39, +(PID.TID 0000.0001) >#jGloPos = 39, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=37 +(PID.TID 0000.0001) ># avoids this. +(PID.TID 0000.0001) > jGloPos = 37, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) >### nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 7, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -400,6 +433,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 7 @@ -533,8 +567,8 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 2149 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 29309 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 @@ -547,8 +581,8 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 @@ -593,6 +627,346 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 58618 (PID.TID 0000.0001) ctrl-wet 8: atmos 58618 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -616,8 +990,49 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 4 -(PID.TID 0000.0001) ctrl_init: control vector length: 117236 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 4 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 117236 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 54000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 029309 026636 027324 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_kapgm +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) %MON fCori_max = 1.4226580169407E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4226580169407E-04 (PID.TID 0000.0001) %MON fCori_mean = 7.5291817533716E-23 @@ -656,9 +1071,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -692,12 +1127,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -711,7 +1152,7 @@ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ -(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ (PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ @@ -743,6 +1184,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -767,6 +1218,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.640000000000000E+04 (PID.TID 0000.0001) ; @@ -791,28 +1248,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -834,7 +1294,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -843,10 +1303,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -888,6 +1348,10 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -907,41 +1371,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1005,6 +1447,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1024,14 +1472,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1048,6 +1499,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1084,6 +1538,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 3.214280000000000E+05 (PID.TID 0000.0001) ; @@ -1132,9 +1589,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1151,10 +1605,10 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ -(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) 8.640000000000000E+04 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ -(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ (PID.TID 0000.0001) T @@ -1192,11 +1646,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1207,6 +1670,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.661835748792270E-04 (PID.TID 0000.0001) ; @@ -1379,15 +1848,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1817,8 +2277,13 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1864,41 +2329,9 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718006161475E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9628819587990E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0127003139695E-03 -(PID.TID 0000.0001) %MON dynstat_sst_max = 2.9733388900757E+01 -(PID.TID 0000.0001) %MON dynstat_sst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 1.8484768169451E+01 -(PID.TID 0000.0001) %MON dynstat_sst_sd = 9.1795873467430E+00 -(PID.TID 0000.0001) %MON dynstat_sst_del2 = 2.7217991810411E-02 -(PID.TID 0000.0001) %MON dynstat_sss_max = 3.7475627899170E+01 -(PID.TID 0000.0001) %MON dynstat_sss_min = 2.9752769470215E+01 -(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.4849925275207E+01 -(PID.TID 0000.0001) %MON dynstat_sss_sd = 9.6344930396289E-01 -(PID.TID 0000.0001) %MON dynstat_sss_del2 = 8.0490524880020E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.4161361694336E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8132531738281E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6512526001044E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.0987288293460E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0245701543512E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7877888083458E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.7088057100773E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6001735152566E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 9.1062350670783E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.2483493833855E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.3312132060528E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.7813690006733E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.2588977395051E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.8248606070107E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.9948324922575E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1918,43 +2351,241 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -1.15185638804860E-15 5.04325900480939E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.36819573987926E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 36 +(PID.TID 0000.0001) cg2d_last_res = 4.72603213756132E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7801774105274E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5442413411575E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.7690067231264E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0204479085973E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2874265953536E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8891126566953E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.7242415708016E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8944578754593E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1243052636259E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3141625125843E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3406292931411E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.7994571139087E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7505325745996E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1903921924015E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8851036604616E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0881245119247E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4685952519113E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1671338524540E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4143621261042E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9138609751269E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9678646889493E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9016727707239E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6189381779999E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4154222862262E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5157879665219E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7465356199095E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9756623562822E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717943185031E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9610617170209E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0206468323167E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.7444977268794E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8885517877413E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2840985316018E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0226154859023E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2451534720241E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8752584079558E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4915123266219E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 4.6380860977297E-06 +(PID.TID 0000.0001) %MON ke_max = 3.9750126324262E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.0989275005882E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.0400172285883E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.2612267171956E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769283946E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3403114614120E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669419511E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3126589427123E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.3024294304498E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.6180314817953E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -5.10043396406701E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.86659323950533E-14 6.70003306073569E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.87275603038141E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 36 +(PID.TID 0000.0001) cg2d_last_res = 5.46089734381062E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8496771725807E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.8994750021282E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8252233404906E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2168470902780E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9494651408836E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.2629915149354E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.2512701955552E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3370404210283E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0261162313369E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.7406854803217E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.1624397417113E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.5456974498627E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.1962471453806E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0312808344268E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.9793773811553E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9706938614065E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9619512296597E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9540538027333E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8047412065753E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5108140951239E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9645873194189E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9206080316285E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6163785043410E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4100884547553E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3743705803124E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7457616070424E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762702431823E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717726655502E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612541609774E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0162880189411E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.4439105816517E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.5506406165286E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0480012906039E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.7660980271049E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0148962311761E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3599463665017E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1819181155376E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8947556732029E-05 +(PID.TID 0000.0001) %MON ke_max = 1.1655787739935E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.2179020182627E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 +(PID.TID 0000.0001) %MON vort_r_min = -2.0216007593326E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2693374161035E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769302465E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3402831168457E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669442844E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3126526380848E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3217658437323E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1031313674778E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 4 ckptA - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687744759401D+06 +(PID.TID 0000.0001) local fc = 0.804687744759401D+06 +(PID.TID 0000.0001) global fc = 0.804687744759401D+06 +(PID.TID 0000.0001) whio : write lev 2 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -1.15185638804860E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -5.10043396406701E-14 6.29008403763954E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 + cg2d: Sum(rhs),rhsMax = 4.86659323950533E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 4.86659323950533E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 4 +(PID.TID 0000.0001) %MON ad_time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.9291746388377E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.8024197906327E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.8245755940932E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.6884307335535E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.8096338546303E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = 1.73456084565093E-15 7.86983807726851E-04 - cg2d: Sum(rhs),rhsMax = 1.30787308066926E-14 1.33029393421495E-03 - cg2d: Sum(rhs),rhsMax = -1.37259995036665E-15 1.40191055720657E-03 -(PID.TID 0000.0001) Start initial hydrostatic pressure computation -(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics + cg2d: Sum(rhs),rhsMax = -1.15185638804860E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -5.10043396406701E-14 6.29008403763954E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.03261583311864E-14 7.86983807726830E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 2 +(PID.TID 0000.0001) %MON ad_time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.3673953377848E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.2878732433042E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.8010820341981E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.8233686763742E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.8301420991010E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.7653322362537E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.8753198967107E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.5847448652989E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.0587610151857E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.4653246604227E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.5840779075806E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7191114512059E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.6241998514220E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.6216739596418E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.4915909728064E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.7983938989145E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.2262847461829E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -7.3033998585888E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.1341361286186E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.4695422301760E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 7.5833391504053E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.1525354898429E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.7187967725433E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.5695083189871E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.6684315275265E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.4448309853227E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.4320181175150E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.4162166902169E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.8817920709165E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.6516769974595E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.61211536912010E-15 1.33029393421496E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.01204980296599E-15 1.40191055720658E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 0 (PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 @@ -1962,64 +2593,34 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.3068281185577E+01 (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 3.0864811552139E-01 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.6951595218077E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.8323265865024E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.5954280681864E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.8323265865025E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.5954280681837E+01 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0780668343557E+02 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.6363581261081E+00 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.4356156918440E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.7258676444573E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.7258676444572E-02 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.6191225597068E+02 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.5508690881795E+02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -3.5089813411514E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -3.5089813411513E+00 (PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.3429443019238E+01 (PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0630213533164E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 9.6291369464428E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.0212598087632E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 9.6291369464420E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.0212598087631E+04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.8566486397398E+02 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.1351831455068E+03 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.7209629792256E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.2651719664676E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8880614970974E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.2651719664678E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8880614970975E+01 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.6180891894873E-01 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.5299733854328E+00 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.0428647971614E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7196765112889E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7196765112890E+02 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.7060821975003E+02 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.8434763110441E-02 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8167187528791E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.7705225892906E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsst_max = 8.2651719664676E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsst_min = -3.6562234334533E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsst_mean = 3.5225201180820E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsst_sd = 1.7747800371256E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsst_del2 = 1.9384329002905E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsss_max = 3.6292301866090E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsss_min = -1.7060821975003E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsss_mean = -3.4511622170179E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsss_sd = 6.4015883269168E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsss_del2 = 3.8654377162560E-01 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.5195521881915E+03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.1738957059563E+04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4265369061821E+01 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.3163518939887E+02 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.3357369077085E+01 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.7705225892907E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl @@ -2030,13 +2631,13 @@ grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj - grad-res closest next position: - grad-res 0 2283 71 39 1 1 1 + grad-res exact position met: + grad-res 0 2229 71 37 1 1 1 (PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2283 29309 1 + ph-test icomp, ncvarcomp, ichknum 2229 29309 1 ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 - ph-grd -->hit<-- 73 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 73 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-grd -->hit<-- 71 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 71 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2046,18 +2647,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06234465668820E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.25732757538799E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.31734900765679E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -7.24940940610708E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.48866507799062E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.96429547574917E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.17499629417972E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708291728D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687708291728D+06 - global fc = 0.804687708291728D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708291728E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687766750478D+06 +(PID.TID 0000.0001) local fc = 0.804687766750478D+06 +(PID.TID 0000.0001) global fc = 0.804687766750478D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766750478E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2067,30 +2666,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.83560977318598E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -4.54740411992560E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 3.78898301622854E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687722952049D+06 +(PID.TID 0000.0001) local fc = 0.804687722952049D+06 +(PID.TID 0000.0001) global fc = 0.804687722952049D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722952049E+05 grad-res ------------------------------- - grad-res 0 1 73 39 1 1 1 1 8.04687744759E+05 8.04687708292E+05 8.04687744759E+05 - grad-res 0 1 1 2283 0 1 1 1 -3.65575776577E+00 -1.82338361046E+00 5.01229641763E-01 + grad-res 0 1 71 37 1 1 1 1 8.04687744759E+05 8.04687766750E+05 8.04687722952E+05 + grad-res 0 1 1 2229 0 1 1 1 2.18992150034E+00 2.18992143054E+00 3.18732082949E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.65575776577278E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.82338361046277E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.18992150034475E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.18992143054493E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2284 29309 2 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2283 2 - ph-grd -->hit<-- 74 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 74 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2230 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2229 2 + ph-grd -->hit<-- 75 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 75 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2100,18 +2697,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06234465668820E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.29826704942104E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.90958360235527E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -6.09512440519211E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -5.87030424270552E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.34152974787349E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.31286950597354E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708500864D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687708500864D+06 - global fc = 0.804687708500864D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708500864E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687754249786D+06 +(PID.TID 0000.0001) local fc = 0.804687754249786D+06 +(PID.TID 0000.0001) global fc = 0.804687754249786D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687754249786E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2121,30 +2716,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 4.67681449123347E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.02882718905551E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.67470204370801E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687735451473D+06 +(PID.TID 0000.0001) local fc = 0.804687735451473D+06 +(PID.TID 0000.0001) global fc = 0.804687735451473D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687735451473E+05 grad-res ------------------------------- - grad-res 0 2 74 39 1 1 1 1 8.04687744759E+05 8.04687708501E+05 8.04687744759E+05 - grad-res 0 2 2 2284 0 1 1 1 -3.63465932636E+00 -1.81292684865E+00 5.01211341734E-01 + grad-res 0 2 75 37 1 1 1 1 8.04687744759E+05 8.04687754250E+05 8.04687735451E+05 + grad-res 0 2 2 2230 0 1 1 1 9.39915722870E-01 9.39915608615E-01 1.21559244670E-07 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63465932636325E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81292684865184E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.39915722870128E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.39915608614683E-01 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2285 29309 3 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2284 3 - ph-grd -->hit<-- 75 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 75 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2231 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2230 3 + ph-grd -->hit<-- 76 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 76 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2154,18 +2747,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06234465668820E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.34059430223488E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.10213790818869E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.99000016254791E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.32667268468867E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.41126563160776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.45983788893511E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708506845D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687708506845D+06 - global fc = 0.804687708506845D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708506845E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687750220327D+06 +(PID.TID 0000.0001) local fc = 0.804687750220327D+06 +(PID.TID 0000.0001) global fc = 0.804687750220327D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750220327E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2176,29 +2767,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 3.98292510084275E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.40640840587503E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.23304144672431E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687739478537D+06 +(PID.TID 0000.0001) local fc = 0.804687739478537D+06 +(PID.TID 0000.0001) global fc = 0.804687739478537D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739478537E+05 grad-res ------------------------------- - grad-res 0 3 75 39 1 1 1 1 8.04687744759E+05 8.04687708507E+05 8.04687744759E+05 - grad-res 0 3 3 2285 0 1 1 1 -3.63418584966E+00 -1.81262780097E+00 5.01228644885E-01 + grad-res 0 3 76 37 1 1 1 1 8.04687744759E+05 8.04687750220E+05 8.04687739479E+05 + grad-res 0 3 3 2231 0 1 1 1 5.37089397047E-01 5.37089502905E-01 -1.97094450094E-07 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63418584965922E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81262780097313E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.37089397047225E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.37089502904564E-01 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2286 29309 4 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2285 4 - ph-grd -->hit<-- 76 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 76 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2232 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2231 4 + ph-grd -->hit<-- 77 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 77 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2208,18 +2797,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06234465668820E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -8.32667268468867E-17 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.22183382803109E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.94559124156291E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 7.25808302348696E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.51371970513736E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.99357499794684E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687712788332D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687712788332D+06 - global fc = 0.804687712788332D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687712788332E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687766878618D+06 +(PID.TID 0000.0001) local fc = 0.804687766878618D+06 +(PID.TID 0000.0001) global fc = 0.804687766878618D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766878618E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2229,30 +2816,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.29811783123569E-16 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94913529760754E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -5.78946612872500E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.82378287419505E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 3.28244376124331E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687722827863D+06 +(PID.TID 0000.0001) local fc = 0.804687722827863D+06 +(PID.TID 0000.0001) global fc = 0.804687722827863D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722827863E+05 grad-res ------------------------------- - grad-res 0 4 76 39 1 1 1 1 8.04687744759E+05 8.04687712788E+05 8.04687744759E+05 - grad-res 0 4 4 2286 0 1 1 1 -1.65446443816E-02 -1.59855341772E+00 -9.56205970249E+01 + grad-res 0 4 77 37 1 1 1 1 8.04687744759E+05 8.04687766879E+05 8.04687722828E+05 + grad-res 0 4 4 2232 0 1 1 1 2.20253900008E+00 2.20253771986E+00 5.81250154674E-07 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.65446443816105E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.59855341771618E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.20253900008494E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.20253771985881E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2287 29309 5 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2286 5 - ph-grd -->hit<-- 85 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 85 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2233 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2232 5 + ph-grd -->hit<-- 81 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 81 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2262,18 +2847,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.49602552568240E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.53939361258182E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -3.48401862915182E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.31519273039294E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.99493199737333E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.68327027264093E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687749551412D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687749551412D+06 - global fc = 0.804687749551412D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687749551412E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687819418588D+06 +(PID.TID 0000.0001) local fc = 0.804687819418588D+06 +(PID.TID 0000.0001) global fc = 0.804687819418588D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687819418588E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2284,29 +2867,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.18377530000657E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.20944920745103E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -4.83744988510892E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -1.10328413072125E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.40571451648464E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.52068937839556E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687740147925D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687740147925D+06 - global fc = 0.804687740147925D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687740147925E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687670283909D+06 +(PID.TID 0000.0001) local fc = 0.804687670283909D+06 +(PID.TID 0000.0001) global fc = 0.804687670283909D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687670283909E+05 grad-res ------------------------------- - grad-res 0 5 85 39 1 1 1 1 8.04687744759E+05 8.04687749551E+05 8.04687740148E+05 - grad-res 0 5 5 2287 0 1 1 1 4.70174487688E-01 4.70174360089E-01 2.71386260242E-07 + grad-res 0 5 81 37 1 1 1 1 8.04687744759E+05 8.04687819419E+05 8.04687670284E+05 + grad-res 0 5 5 2233 0 1 1 1 7.45673438915E+00 7.45673395577E+00 5.81195356286E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.70174487687900E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.70174360089004E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.45673438915081E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.45673395576887E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2288 29309 6 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2287 6 - ph-grd -->hit<-- 86 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 86 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2234 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2233 6 + ph-grd -->hit<-- 82 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 82 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2316,18 +2897,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06234465668820E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 7.74380559676047E-15 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.41796296926344E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.16354711923827E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.71449529520851E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.27977359212872E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687751308914D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687751308914D+06 - global fc = 0.804687751308914D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687751308914E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687808327178D+06 +(PID.TID 0000.0001) local fc = 0.804687808327178D+06 +(PID.TID 0000.0001) global fc = 0.804687808327178D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687808327178E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2337,30 +2916,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.48769885299771E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -6.53643805748061E-15 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -1.75866265994529E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -5.27355936696949E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.15764905941995E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -2.80331313717852E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687738384548D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687738384548D+06 - global fc = 0.804687738384548D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687738384548E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687681374115D+06 +(PID.TID 0000.0001) local fc = 0.804687681374115D+06 +(PID.TID 0000.0001) global fc = 0.804687681374115D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687681374115E+05 grad-res ------------------------------- - grad-res 0 6 86 39 1 1 1 1 8.04687744759E+05 8.04687751309E+05 8.04687738385E+05 - grad-res 0 6 6 2288 0 1 1 1 6.46218052670E-01 6.46218325710E-01 -4.22520225252E-07 + grad-res 0 6 82 37 1 1 1 1 8.04687744759E+05 8.04687808327E+05 8.04687681374E+05 + grad-res 0 6 6 2234 0 1 1 1 6.34765354129E+00 6.34765314171E+00 6.29484852022E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.46218052669727E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.46218325709924E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.34765354128608E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.34765314171091E+00 (PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2289 29309 7 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2288 7 - ph-grd -->hit<-- 87 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 87 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2235 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2234 7 + ph-grd -->hit<-- 83 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 83 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2370,18 +2947,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 9.28424004342787E-15 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.49869569479699E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.69367861349679E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05401798400351E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.52335954751015E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.39419073245051E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 3.42087469462626E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687749828302D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687749828302D+06 - global fc = 0.804687749828302D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687749828302E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687809227797D+06 +(PID.TID 0000.0001) local fc = 0.804687809227797D+06 +(PID.TID 0000.0001) global fc = 0.804687809227797D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687809227797E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2391,30 +2966,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06512021424976E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 6.73766598069392E-15 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.15185638804860E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -6.89726054048379E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -5.12784259498744E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.84158244209698E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 3.86739251734269E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687739866778D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687739866778D+06 - global fc = 0.804687739866778D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739866778E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687680473776D+06 +(PID.TID 0000.0001) local fc = 0.804687680473776D+06 +(PID.TID 0000.0001) global fc = 0.804687680473776D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687680473776E+05 grad-res ------------------------------- - grad-res 0 7 87 39 1 1 1 1 8.04687744759E+05 8.04687749828E+05 8.04687739867E+05 - grad-res 0 7 7 2289 0 1 1 1 4.98076169749E-01 4.98076213989E-01 -8.88226561191E-08 + grad-res 0 7 83 37 1 1 1 1 8.04687744759E+05 8.04687809228E+05 8.04687680474E+05 + grad-res 0 7 7 2235 0 1 1 1 6.43770134172E+00 6.43770104507E+00 4.60808404767E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.98076169748959E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.98076213989407E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.43770134172453E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.43770104506984E+00 (PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2290 29309 8 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2289 8 - ph-grd -->hit<-- 88 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 88 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 2236 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2235 8 + ph-grd -->hit<-- 84 37 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 84 37 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2424,18 +2997,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06373243546898E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -3.35842464949110E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -3.34871019802563E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05956909912663E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -6.99440505513849E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.16007767228632E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.40966707593304E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687750914794D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687750914794D+06 - global fc = 0.804687750914794D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750914794E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687811772716D+06 +(PID.TID 0000.0001) local fc = 0.804687811772716D+06 +(PID.TID 0000.0001) global fc = 0.804687811772716D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687811772716E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2445,24 +3016,22 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.06095687790742E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 2.23779328401008E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.94289029309402E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -7.71743779992562E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = 1.05401798400351E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.86950496486816E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.76157438530811E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 9.44730405016969E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687738782400D+06 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.804687738782400D+06 - global fc = 0.804687738782400D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687738782400E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.804687677939074D+06 +(PID.TID 0000.0001) local fc = 0.804687677939074D+06 +(PID.TID 0000.0001) global fc = 0.804687677939074D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687677939074E+05 grad-res ------------------------------- - grad-res 0 8 88 39 1 1 1 1 8.04687744759E+05 8.04687750915E+05 8.04687738782E+05 - grad-res 0 8 8 2290 0 1 1 1 6.06619515888E-01 6.06619729660E-01 -3.52399837977E-07 + grad-res 0 8 84 37 1 1 1 1 8.04687744759E+05 8.04687811773E+05 8.04687677939E+05 + grad-res 0 8 8 2236 0 1 1 1 6.69168724574E+00 6.69168205350E+00 7.75923695406E-07 (PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.06619515887832E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.06619729660451E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.69168724573576E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.69168205349706E+00 (PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2475,204 +3044,210 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 73 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468770829173E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -1.8233836104628E+00 -3.6557577657728E+00 5.0122964176284E-01 +(PID.TID 0000.0001) grdchk output (p): 1 71 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468776675048E+05 8.0468772295205E+05 +(PID.TID 0000.0001) grdchk output (g): 1 2.1899214305449E+00 2.1899215003448E+00 3.1873208294897E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 74 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468770850086E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -1.8129268486518E+00 -3.6346593263633E+00 5.0121134173369E-01 +(PID.TID 0000.0001) grdchk output (p): 2 75 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468775424979E+05 8.0468773545147E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.3991560861468E-01 9.3991572287013E-01 1.2155924467017E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 75 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468770850684E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -1.8126278009731E+00 -3.6341858496592E+00 5.0122864488532E-01 +(PID.TID 0000.0001) grdchk output (p): 3 76 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468775022033E+05 8.0468773947854E+05 +(PID.TID 0000.0001) grdchk output (g): 3 5.3708950290456E-01 5.3708939704722E-01 -1.9709445009397E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 76 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468771278833E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -1.5985534177162E+00 -1.6544644381610E-02 -9.5620597024919E+01 +(PID.TID 0000.0001) grdchk output (p): 4 77 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468776687862E+05 8.0468772282786E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.2025377198588E+00 2.2025390000849E+00 5.8125015467425E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 85 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468774955141E+05 8.0468774014792E+05 -(PID.TID 0000.0001) grdchk output (g): 5 4.7017436008900E-01 4.7017448768790E-01 2.7138626024215E-07 +(PID.TID 0000.0001) grdchk output (p): 5 81 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468781941859E+05 8.0468767028391E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.4567339557689E+00 7.4567343891508E+00 5.8119535628620E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 6 86 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468775130891E+05 8.0468773838455E+05 -(PID.TID 0000.0001) grdchk output (g): 6 6.4621832570992E-01 6.4621805266973E-01 -4.2252022525169E-07 +(PID.TID 0000.0001) grdchk output (p): 6 82 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468780832718E+05 8.0468768137411E+05 +(PID.TID 0000.0001) grdchk output (g): 6 6.3476531417109E+00 6.3476535412861E+00 6.2948485202163E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 7 87 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468774982830E+05 8.0468773986678E+05 -(PID.TID 0000.0001) grdchk output (g): 7 4.9807621398941E-01 4.9807616974896E-01 -8.8822656119092E-08 +(PID.TID 0000.0001) grdchk output (p): 7 83 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468780922780E+05 8.0468768047378E+05 +(PID.TID 0000.0001) grdchk output (g): 7 6.4377010450698E+00 6.4377013417245E+00 4.6080840476748E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 8 88 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468775091479E+05 8.0468773878240E+05 -(PID.TID 0000.0001) grdchk output (g): 8 6.0661972966045E-01 6.0661951588783E-01 -3.5239983797730E-07 +(PID.TID 0000.0001) grdchk output (p): 8 84 37 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468781177272E+05 8.0468767793907E+05 +(PID.TID 0000.0001) grdchk output (g): 8 6.6916820534971E+00 6.6916872457358E+00 7.7592369540636E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.3808379600181E+01 +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.5426189695999E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 67.030000000000001 -(PID.TID 0000.0001) System time: 0.20999999999999999 -(PID.TID 0000.0001) Wall clock time: 67.419028997421265 +(PID.TID 0000.0001) User time: 37.003911091946065 +(PID.TID 0000.0001) System time: 0.53127397503703833 +(PID.TID 0000.0001) Wall clock time: 38.041616916656494 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.17000000000000001 -(PID.TID 0000.0001) System time: 2.00000000000000004E-002 -(PID.TID 0000.0001) Wall clock time: 0.19813203811645508 +(PID.TID 0000.0001) User time: 0.15002499800175428 +(PID.TID 0000.0001) System time: 1.2151000089943409E-002 +(PID.TID 0000.0001) Wall clock time: 0.17394995689392090 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 17.829999999999998 -(PID.TID 0000.0001) System time: 0.15000000000000002 -(PID.TID 0000.0001) Wall clock time: 18.029143095016479 +(PID.TID 0000.0001) User time: 10.561107322573662 +(PID.TID 0000.0001) System time: 0.36326000280678272 +(PID.TID 0000.0001) Wall clock time: 10.958024024963379 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 51.079999999999927 -(PID.TID 0000.0001) System time: 2.00000000000000178E-002 -(PID.TID 0000.0001) Wall clock time: 51.219977378845215 +(PID.TID 0000.0001) User time: 28.378291726112366 +(PID.TID 0000.0001) System time: 0.11179803311824799 +(PID.TID 0000.0001) Wall clock time: 28.502158880233765 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999943157E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10257363319396973 +(PID.TID 0000.0001) User time: 5.9135347604751587E-002 +(PID.TID 0000.0001) System time: 9.0201944112777710E-004 +(PID.TID 0000.0001) Wall clock time: 6.0041189193725586E-002 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 9.99999999999943157E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10687303543090820 +(PID.TID 0000.0001) User time: 6.1519294977188110E-002 +(PID.TID 0000.0001) System time: 9.0811401605606079E-004 +(PID.TID 0000.0001) Wall clock time: 6.2479734420776367E-002 (PID.TID 0000.0001) No. starts: 76 (PID.TID 0000.0001) No. stops: 76 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0428509712219238E-004 +(PID.TID 0000.0001) System time: 4.0158629417419434E-006 +(PID.TID 0000.0001) Wall clock time: 5.1116943359375000E-004 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.55889511108398438E-004 +(PID.TID 0000.0001) User time: 3.1183063983917236E-002 +(PID.TID 0000.0001) System time: 1.9704550504684448E-004 +(PID.TID 0000.0001) Wall clock time: 3.1437873840332031E-002 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.1899999999999977 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 8.2164540290832520 +(PID.TID 0000.0001) User time: 5.1130907237529755 +(PID.TID 0000.0001) System time: 2.3365952074527740E-002 +(PID.TID 0000.0001) Wall clock time: 5.1386158466339111 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.469999999999970 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 16.527510404586792 +(PID.TID 0000.0001) User time: 8.5578539669513702 +(PID.TID 0000.0001) System time: 2.7958966791629791E-002 +(PID.TID 0000.0001) Wall clock time: 8.5875375270843506 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 19.130000000000010 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 19.160159349441528 +(PID.TID 0000.0001) User time: 10.338772237300873 +(PID.TID 0000.0001) System time: 3.5572022199630737E-002 +(PID.TID 0000.0001) Wall clock time: 10.381636857986450 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.3899999999999864 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.3996253013610840 +(PID.TID 0000.0001) User time: 2.4528727531433105 +(PID.TID 0000.0001) System time: 3.8501620292663574E-004 +(PID.TID 0000.0001) Wall clock time: 2.4546322822570801 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.39999999999999147 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.42065262794494629 +(PID.TID 0000.0001) User time: 0.31667226552963257 +(PID.TID 0000.0001) System time: 7.9929828643798828E-005 +(PID.TID 0000.0001) Wall clock time: 0.31683230400085449 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.72000000000004150 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.71262645721435547 +(PID.TID 0000.0001) User time: 0.39952027797698975 +(PID.TID 0000.0001) System time: 1.7702579498291016E-004 +(PID.TID 0000.0001) Wall clock time: 0.39982724189758301 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21000000000000796 +(PID.TID 0000.0001) User time: 5.6976079940795898E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.21013736724853516 +(PID.TID 0000.0001) Wall clock time: 5.7291984558105469E-004 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.28999999999997783 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.27254319190979004 +(PID.TID 0000.0001) User time: 0.16732597351074219 +(PID.TID 0000.0001) System time: 1.6987323760986328E-005 +(PID.TID 0000.0001) Wall clock time: 0.16744565963745117 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00000000000051159E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.18832015991210938E-004 +(PID.TID 0000.0001) User time: 0.13143581151962280 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 0.13145732879638672 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0799999999999557 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1138741970062256 +(PID.TID 0000.0001) User time: 0.77115815877914429 +(PID.TID 0000.0001) System time: 6.8992376327514648E-005 +(PID.TID 0000.0001) Wall clock time: 0.77130651473999023 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99999999999960210E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.31816768646240234E-002 +(PID.TID 0000.0001) User time: 6.9725513458251953E-003 +(PID.TID 0000.0001) System time: 1.0994002223014832E-002 +(PID.TID 0000.0001) Wall clock time: 1.7975568771362305E-002 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.00000000000113687E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.88457679748535156E-002 +(PID.TID 0000.0001) User time: 2.0850598812103271E-002 +(PID.TID 0000.0001) System time: 1.2024007737636566E-002 +(PID.TID 0000.0001) Wall clock time: 3.2999038696289062E-002 (PID.TID 0000.0001) No. starts: 72 (PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 4.00000000000027001E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.38201427459716797E-002 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 2.1405220031738281E-002 +(PID.TID 0000.0001) System time: 1.5914976596832275E-002 +(PID.TID 0000.0001) Wall clock time: 3.7319183349609375E-002 +(PID.TID 0000.0001) No. starts: 2 +(PID.TID 0000.0001) No. stops: 2 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.00000000000007105E-002 -(PID.TID 0000.0001) System time: 9.99999999999998113E-003 -(PID.TID 0000.0001) Wall clock time: 5.79869747161865234E-002 +(PID.TID 0000.0001) User time: 2.3563385009765625E-002 +(PID.TID 0000.0001) System time: 7.9860091209411621E-003 +(PID.TID 0000.0001) Wall clock time: 3.1551837921142578E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.99999999999987210E-002 +(PID.TID 0000.0001) User time: 2.7911186218261719E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.73489665985107422E-002 +(PID.TID 0000.0001) Wall clock time: 2.7950048446655273E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 48.920000000000002 -(PID.TID 0000.0001) System time: 2.99999999999999989E-002 -(PID.TID 0000.0001) Wall clock time: 49.076337099075317 +(PID.TID 0000.0001) User time: 26.241214752197266 +(PID.TID 0000.0001) System time: 0.14785596728324890 +(PID.TID 0000.0001) Wall clock time: 26.850054979324341 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.3499999999999943 -(PID.TID 0000.0001) System time: 9.99999999999998113E-003 -(PID.TID 0000.0001) Wall clock time: 1.3673486709594727 +(PID.TID 0000.0001) User time: 1.2023811340332031 +(PID.TID 0000.0001) System time: 6.3477963209152222E-002 +(PID.TID 0000.0001) Wall clock time: 1.2658860683441162 (PID.TID 0000.0001) No. starts: 16 (PID.TID 0000.0001) No. stops: 16 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 47.329999999999998 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 47.438304901123047 +(PID.TID 0000.0001) User time: 24.878674507141113 +(PID.TID 0000.0001) System time: 7.2399020195007324E-002 +(PID.TID 0000.0001) Wall clock time: 24.961496829986572 (PID.TID 0000.0001) No. starts: 16 (PID.TID 0000.0001) No. stops: 16 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 45.339999999999961 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 45.451010704040527 +(PID.TID 0000.0001) User time: 24.875835418701172 +(PID.TID 0000.0001) System time: 7.2388023138046265E-002 +(PID.TID 0000.0001) Wall clock time: 24.958631038665771 (PID.TID 0000.0001) No. starts: 64 (PID.TID 0000.0001) No. stops: 64 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.77431106567382813E-003 +(PID.TID 0000.0001) User time: 1.3265609741210938E-003 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 1.3377666473388672E-003 (PID.TID 0000.0001) No. starts: 16 (PID.TID 0000.0001) No. stops: 16 (PID.TID 0000.0001) // ====================================================== @@ -2690,9 +3265,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 19380 +(PID.TID 0000.0001) // No. barriers = 20022 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 19380 +(PID.TID 0000.0001) // Total barrier spins = 20022 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/OpenAD/results/output_oadm.ggl90.txt b/verification/global_oce_latlon/results/output_oadm.ggl90.txt similarity index 65% rename from verification/OpenAD/results/output_oadm.ggl90.txt rename to verification/global_oce_latlon/results/output_oadm.ggl90.txt index 925b857eda..4b8cdd7839 100644 --- a/verification/OpenAD/results/output_oadm.ggl90.txt +++ b/verification/global_oce_latlon/results/output_oadm.ggl90.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65m -(PID.TID 0000.0001) // Build user: heimbach -(PID.TID 0000.0001) // Build host: GLACIER0.MIT.EDU -(PID.TID 0000.0001) // Build date: Thu Jul 2 00:24:47 EDT 2015 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node374 +(PID.TID 0000.0001) // Build date: Tue Jul 25 22:52:12 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -21,9 +21,8 @@ (PID.TID 0000.0001) > nTx=1, (PID.TID 0000.0001) > nTy=1, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -31,10 +30,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ (PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ -(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ -(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ -(PID.TID 0000.0001) sNx = 90 ; /* Tile size in X */ -(PID.TID 0000.0001) sNy = 40 ; /* Tile size in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ (PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ (PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ (PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ @@ -42,15 +41,17 @@ (PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ (PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ (PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ -(PID.TID 0000.0001) nTiles = 1 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ (PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ (PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ (PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -58,20 +59,47 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Mapping of tiles to threads (PID.TID 0000.0001) // ====================================================== -(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 1) +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) (PID.TID 0000.0001) (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile connectvity table (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) (PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 (PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 (PID.TID 0000.0001) (PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data @@ -166,7 +194,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -206,6 +234,7 @@ (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/ggl90 compiled and used ( useGGL90 = T ) + pkg/kpp compiled but not used ( useKPP = F ) pkg/gmredi compiled and used ( useGMRedi = T ) pkg/autodiff compiled and used ( useAUTODIFF = T ) pkg/grdchk compiled and used ( useGrdchk = T ) @@ -233,7 +262,6 @@ (PID.TID 0000.0001) ># | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | (PID.TID 0000.0001) ># ===================================================================== (PID.TID 0000.0001) > &GGL90_PARM01 -(PID.TID 0000.0001) ># GGL90taveFreq = 345600000., (PID.TID 0000.0001) ># GGL90dumpFreq = 86400., (PID.TID 0000.0001) ># GGL90writeState=.FALSE., (PID.TID 0000.0001) ># GGL90diffTKEh=3.e3, @@ -245,6 +273,8 @@ (PID.TID 0000.0001) > mxlSurfFlag=.TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK (PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // GGL90 configuration @@ -253,55 +283,58 @@ (PID.TID 0000.0001) 2.592000000000000E+06 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GGL90taveFreq = /* GGL90 averaging interval ( s ). */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag. */ +(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag. */ +(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter. */ +(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter. */ +(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter */ (PID.TID 0000.0001) 7.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter. */ +(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter */ (PID.TID 0000.0001) 3.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio. */ +(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio */ (PID.TID 0000.0001) 3.750000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 1.000000000000000E-07 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 1.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 1.000000000000000E-06 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity ( m^2/s ). */ +(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity (m^2/s ) */ (PID.TID 0000.0001) 1.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity ( m^2/s ). */ +(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity (m^2/s ) */ (PID.TID 0000.0001) 1.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ). */ +(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length ( m ). */ +(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length (m) */ (PID.TID 0000.0001) 1.000000000000000E-08 (PID.TID 0000.0001) ; (PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing. */ +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) GGL90: GGL90TKEFile = -(PID.TID 0000.0001) GGL90writeState = /* GGL90 Boundary condition flag. */ +(PID.TID 0000.0001) GGL90_dirichlet = /* GGL90 Boundary condition flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) // ======================================================= @@ -371,6 +404,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -392,9 +431,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -415,36 +463,48 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># names for ctrl_pack/unpack (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES -(PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', -(PID.TID 0000.0001) > costname = 'ecco_cost', -(PID.TID 0000.0001) > scalname = 'ecco_scal', -(PID.TID 0000.0001) > maskname = 'ecco_mask', -(PID.TID 0000.0001) > metaname = 'ecco_meta', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -474,13 +534,23 @@ (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML (PID.TID 0000.0001) > grdchk_eps = 1.d-2, -(PID.TID 0000.0001) > iGloPos = 71, -(PID.TID 0000.0001) > jGloPos = 39, +(PID.TID 0000.0001) > iGloTile = 2, +(PID.TID 0000.0001) > jGloTile = 2, +(PID.TID 0000.0001) > iGloPos = 26, +(PID.TID 0000.0001) >#jGloPos = 19, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=17 +(PID.TID 0000.0001) ># avoids this. This is similar to input_ad but here we use jGloTile = 2. +(PID.TID 0000.0001) > jGloPos = 17, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) >### nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 7, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -489,13 +559,13 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 7 (PID.TID 0000.0001) Increment: 1 (PID.TID 0000.0001) grdchkWhichProc: 0 -(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) iLocTile = 2 , jLocTile = 2 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check configuration >>> END <<< @@ -545,14 +615,14 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 58618 -(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 2315 -(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 2206 -(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 2149 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67878 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 -(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 29309 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 @@ -611,10 +681,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 58618 -(PID.TID 0000.0001) ctrl-wet 8: atmos 58618 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 +(PID.TID 0000.0001) ctrl-wet 8: atmos 17302 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 58618 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67878 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 @@ -634,8 +1044,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 2 -(PID.TID 0000.0001) ctrl_init: control vector length: 58618 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 67878 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -643,17 +1053,48 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) Total number of ocean points per tile: (PID.TID 0000.0001) -------------------------------------- -(PID.TID 0000.0001) snx*sny*nr = 54000 +(PID.TID 0000.0001) snx*sny*nr = 13500 (PID.TID 0000.0001) (PID.TID 0000.0001) Number of ocean points per tile: (PID.TID 0000.0001) -------------------------------- -(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 029309 026636 027324 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008651 007584 008016 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 010278 009360 009834 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -685,9 +1126,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -778,6 +1239,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -802,6 +1273,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.640000000000000E+04 (PID.TID 0000.0001) ; @@ -826,28 +1303,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -869,7 +1349,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -878,10 +1358,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -923,8 +1403,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -945,41 +1426,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1043,6 +1502,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1062,14 +1527,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1086,6 +1554,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1122,6 +1593,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 3.214280000000000E+05 (PID.TID 0000.0001) ; @@ -1164,9 +1638,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1218,11 +1689,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1233,6 +1713,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.661835748792270E-04 (PID.TID 0000.0001) ; @@ -1405,15 +1891,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1762,7 +2239,7 @@ (PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ -(PID.TID 0000.0001) 3.450614146649838E+14 +(PID.TID 0000.0001) 3.450614146649749E+14 (PID.TID 0000.0001) ; (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End of Model config. summary @@ -1771,6 +2248,7 @@ (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) (PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 +(PID.TID 0000.0001) GGL90_CHECK: Some form of convection has been enabled (PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI (PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ (PID.TID 0000.0001) F @@ -1782,6 +2260,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +OAD: TIMING: stamp 0: 1690340657.570661 (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ @@ -1797,13 +2276,6 @@ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ -OAD: TIMING: stamp 0: 1435852480.945989 -OAD: TIMING: stamp 1: 1435852488.512662 -OAD: TIMING: delta stamps 1-0: 7.566673 -OAD: TIMING: stamp 2: 1435852495.872734 -OAD: TIMING: delta stamps 2-1: 7.360072 -OAD: TIMING: delta stamps 2-0: 14.926745 -OAD: TIMING: ratio stamps (2-1)/(1-0): 7.360072e+06/7.566673e+06=9.726959e-01 (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ @@ -1851,8 +2323,13 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 7.360072e+06/7.566673e+06=9.726959e-01 (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1862,6 +2339,12 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 7.360072e+06/7.566673e+06=9.726959e-01 (PID.TID 0000.0001) OAD: IT+ 1048576 (PID.TID 0000.0001) Start initial hydrostatic pressure computation +OAD: TIMING: stamp 1: 1690340663.317162 +OAD: TIMING: delta stamps 1-0: 5.746501 +OAD: TIMING: stamp 2: 1690340670.727695 +OAD: TIMING: delta stamps 2-1: 7.410533 +OAD: TIMING: delta stamps 2-0: 13.157034 +OAD: TIMING: ratio stamps (2-1)/(1-0): 7.410533e+06/5.746501e+06=1.289573e+00 (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -1870,9 +2353,9 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 7.360072e+06/7.566673e+06=9.726959e-01 (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260294819E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074650819E-05 6.29043816438055E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206140497766E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314065111E-05 6.29043815206116E+00 OAD: DT+ 1048576 OAD: IT+ 17825792 OAD: IT+ 34603008 @@ -1880,37 +2363,42 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 7.360072e+06/7.566673e+06=9.726959e-01 OAD: IT+ 51380224 OAD: IT+ 68157440 OAD: IT+ 84934656 - cg2d: Sum(rhs),rhsMax = -1.38957981751890E-05 6.70105789348878E+00 + OAD: IT+ 101711872 + cg2d: Sum(rhs),rhsMax = -1.30526412496224E-05 6.70105780806494E+00 + OAD: DT+ 34603008 (PID.TID 0000.0001) %CHECKPOINT 4 ckptA - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373600223009D+06 - local fc = 0.801373600223009D+06 - global fc = 0.801373600223009D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168576545952D+06 +(PID.TID 0000.0001) local fc = 0.801373600047573D+06 +(PID.TID 0000.0001) global fc = 0.801373600047573D+06 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074313172E-05 6.29043816438053E+00 - cg2d: Sum(rhs),rhsMax = -3.60733036323946E-15 7.75429565002181E-04 - cg2d: Sum(rhs),rhsMax = -9.56382258752997E-06 5.04324257330455E+00 - cg2d: Sum(rhs),rhsMax = -2.09205482798458E-14 1.31178624082864E-03 + cg2d: Sum(rhs),rhsMax = -1.13366314123953E-05 6.29043815206115E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 7.75429565002169E-04 + cg2d: Sum(rhs),rhsMax = -8.99206141796727E-06 5.04324257330455E+00 + cg2d: Sum(rhs),rhsMax = -1.37667655053519E-14 1.31178624082862E-03 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.14012182712054E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 6.99527241687647E-15 1.38456847175216E-03 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 1.38456847175208E-03 ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 8.01373600223009E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 8.01373600047573E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj - grad-res closest next position: - grad-res 0 2283 71 39 1 1 1 + grad-res exact position met: + grad-res 0 526 26 17 1 2 2 (PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2283 29309 1 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 - ph-grd -->hit<-- 73 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 73 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 526 29309 1 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 0 1 + ph-grd -->hit<-- 26 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 26 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1920,16 +2408,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.60288449180257E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260273309E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074613626E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981530435E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141258269E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314090646E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412034371E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373564019991D+06 - local fc = 0.801373564019991D+06 - global fc = 0.801373564019991D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373564019991E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168598199958D+06 +(PID.TID 0000.0001) local fc = 0.801373621701578D+06 +(PID.TID 0000.0001) global fc = 0.801373621701578D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373621701578E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1939,28 +2430,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260294819E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074650819E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981525162E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141996567E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314090646E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412185361E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373600223009D+06 - local fc = 0.801373600223009D+06 - global fc = 0.801373600223009D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373600223009E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168555073011D+06 +(PID.TID 0000.0001) local fc = 0.801373578574631D+06 +(PID.TID 0000.0001) global fc = 0.801373578574631D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373578574631E+05 grad-res ------------------------------- - grad-res 0 1 73 39 1 1 1 1 8.01373600223E+05 8.01373564020E+05 8.01373600223E+05 - grad-res 0 1 1 2283 0 1 1 1 -3.62916215048E+00 -1.81015087292E+00 5.01220723170E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.62916215047940E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81015087291598E+00 + grad-res 0 1 26 17 1 2 2 1 8.01373600048E+05 8.01373621702E+05 8.01373578575E+05 + grad-res 0 1 1 526 0 2 2 1 2.15634739277E+00 2.15634733322E+00 2.76171384650E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.15634739277291E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.15634733322076E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2284 29309 2 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2283 2 - ph-grd -->hit<-- 74 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 74 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 527 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 526 2 + ph-grd -->hit<-- 30 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 30 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1970,16 +2464,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.60288449180257E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382258934102E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074634790E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981441062E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141397046E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314073993E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412087661E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373564239137D+06 - local fc = 0.801373564239137D+06 - global fc = 0.801373564239137D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373564239137E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168586246122D+06 +(PID.TID 0000.0001) local fc = 0.801373609747743D+06 +(PID.TID 0000.0001) global fc = 0.801373609747743D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373609747743E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1989,28 +2486,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260294819E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074650819E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981525162E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141302678E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314092866E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526411945553E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373600223009D+06 - local fc = 0.801373600223009D+06 - global fc = 0.801373600223009D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373600223009E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168567004984D+06 +(PID.TID 0000.0001) local fc = 0.801373590506604D+06 +(PID.TID 0000.0001) global fc = 0.801373590506604D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373590506604E+05 grad-res ------------------------------- - grad-res 0 2 74 39 1 1 1 1 8.01373600223E+05 8.01373564239E+05 8.01373600223E+05 - grad-res 0 2 2 2284 0 1 1 1 -3.60706511238E+00 -1.79919360089E+00 5.01202904622E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.60706511237656E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.79919360089116E+00 + grad-res 0 2 30 17 1 2 2 1 8.01373600048E+05 8.01373609748E+05 8.01373590507E+05 + grad-res 0 2 2 527 0 2 2 1 9.62039538834E-01 9.62056906428E-01 -1.80528903129E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.62039538833917E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.62056906428188E-01 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2285 29309 3 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2284 3 - ph-grd -->hit<-- 75 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 75 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 528 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 527 3 + ph-grd -->hit<-- 31 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 31 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2020,16 +2520,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.60288449180257E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382258550381E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074591283E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981509411E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141707909E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314068442E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412127629E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373564755497D+06 - local fc = 0.801373564755497D+06 - global fc = 0.801373564755497D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373564755497E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168583343362D+06 +(PID.TID 0000.0001) local fc = 0.801373606844982D+06 +(PID.TID 0000.0001) global fc = 0.801373606844982D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373606844982E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2039,28 +2542,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260294819E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074650819E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981525162E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206142052078E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314069552E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412034371E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373600223009D+06 - local fc = 0.801373600223009D+06 - global fc = 0.801373600223009D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373600223009E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168569877808D+06 +(PID.TID 0000.0001) local fc = 0.801373593379428D+06 +(PID.TID 0000.0001) global fc = 0.801373593379428D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373593379428E+05 grad-res ------------------------------- - grad-res 0 3 75 39 1 1 1 1 8.01373600223E+05 8.01373564755E+05 8.01373600223E+05 - grad-res 0 3 3 2285 0 1 1 1 -3.55531085316E+00 -1.77337558125E+00 5.01203789347E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.55531085316083E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.77337558125146E+00 + grad-res 0 3 31 17 1 2 2 1 8.01373600048E+05 8.01373606845E+05 8.01373593379E+05 + grad-res 0 3 3 528 0 2 2 1 6.65349522112E-01 6.73277681926E-01 -1.19157819331E-02 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.65349522111523E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.73277681926265E-01 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2286 29309 4 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2285 4 - ph-grd -->hit<-- 76 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 76 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 529 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 528 4 + ph-grd -->hit<-- 32 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 32 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2070,16 +2576,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260047794E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074582367E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981414937E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141385944E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366313928553E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526411998844E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373566292885D+06 - local fc = 0.801373566292885D+06 - global fc = 0.801373566292885D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373566292885E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168595918099D+06 +(PID.TID 0000.0001) local fc = 0.801373619419719D+06 +(PID.TID 0000.0001) global fc = 0.801373619419719D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373619419719E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2089,28 +2598,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382260294819E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074650819E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981525162E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141252717E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366313995167E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412189802E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373600223009D+06 - local fc = 0.801373600223009D+06 - global fc = 0.801373600223009D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373600223009E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168557302896D+06 +(PID.TID 0000.0001) local fc = 0.801373580804516D+06 +(PID.TID 0000.0001) global fc = 0.801373580804516D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373580804516E+05 grad-res ------------------------------- - grad-res 0 4 76 39 1 1 1 1 8.01373600223E+05 8.01373566293E+05 8.01373600223E+05 - grad-res 0 4 4 2286 0 1 1 1 -3.39536625129E+00 -1.69650619500E+00 5.00346628479E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.39536625128664E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.69650619500317E+00 + grad-res 0 4 32 17 1 2 2 1 8.01373600048E+05 8.01373619420E+05 8.01373580805E+05 + grad-res 0 4 4 529 0 2 2 1 1.90649960490E+00 1.93076014984E+00 -1.27251770110E-02 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.90649960490027E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.93076014984399E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2287 29309 5 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2286 5 - ph-grd -->hit<-- 85 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 85 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 530 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 529 5 + ph-grd -->hit<-- 36 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2120,16 +2632,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.60288449180257E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259797300E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074665737E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981331150E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141768971E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314096197E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412100984E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373604637299D+06 - local fc = 0.801373604637299D+06 - global fc = 0.801373604637299D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373604637299E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500391D+06 + --> objf_test(bi,bj) = 0.204168648480164D+06 +(PID.TID 0000.0001) local fc = 0.801373671981784D+06 +(PID.TID 0000.0001) global fc = 0.801373671981784D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373671981784E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2139,28 +2654,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259968691E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074697032E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981230536E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141330433E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314099528E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412078780E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373595968697D+06 - local fc = 0.801373595968697D+06 - global fc = 0.801373595968697D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373595968697E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500390D+06 + --> objf_test(bi,bj) = 0.204168505114665D+06 +(PID.TID 0000.0001) local fc = 0.801373528616285D+06 +(PID.TID 0000.0001) global fc = 0.801373528616285D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373528616285E+05 grad-res ------------------------------- - grad-res 0 5 85 39 1 1 1 1 8.01373600223E+05 8.01373604637E+05 8.01373595969E+05 - grad-res 0 5 5 2287 0 1 1 1 4.33430002358E-01 4.33430110570E-01 -2.49663941965E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.33430002358200E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.33430110570043E-01 + grad-res 0 5 36 17 1 2 2 1 8.01373600048E+05 8.01373671982E+05 8.01373528616E+05 + grad-res 0 5 5 530 0 2 2 1 1.64609608773E+01 7.16827496071E+00 5.64528765109E-01 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.64609608772658E+01 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.16827496071346E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2288 29309 6 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2287 6 - ph-grd -->hit<-- 86 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 86 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 531 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 530 6 + ph-grd -->hit<-- 37 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2170,16 +2688,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.60288449180257E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259240107E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074616957E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981431070E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141213860E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366313864161E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412003285E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373606473360D+06 - local fc = 0.801373606473360D+06 - global fc = 0.801373606473360D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373606473360E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500392D+06 + --> objf_test(bi,bj) = 0.204168633654587D+06 +(PID.TID 0000.0001) local fc = 0.801373657156209D+06 +(PID.TID 0000.0001) global fc = 0.801373657156209D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373657156209E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2189,28 +2710,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259439253E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074634616E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981436968E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141108388E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314155039E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412212006E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373594112580D+06 - local fc = 0.801373594112580D+06 - global fc = 0.801373594112580D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373594112580E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500389D+06 + --> objf_test(bi,bj) = 0.204168519619531D+06 +(PID.TID 0000.0001) local fc = 0.801373543121149D+06 +(PID.TID 0000.0001) global fc = 0.801373543121149D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373543121149E+05 grad-res ------------------------------- - grad-res 0 6 86 39 1 1 1 1 8.01373600223E+05 8.01373606473E+05 8.01373594113E+05 - grad-res 0 6 6 2288 0 1 1 1 6.17958697387E-01 6.18038972607E-01 -1.29903859281E-04 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.17958697387216E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.18038972606882E-01 + grad-res 0 6 37 17 1 2 2 1 8.01373600048E+05 8.01373657156E+05 8.01373543121E+05 + grad-res 0 6 6 531 0 2 2 1 5.70067473208E+00 5.70175295579E+00 -1.89139666196E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.70067473207655E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.70175295579247E+00 (PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2289 29309 7 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2288 7 - ph-grd -->hit<-- 87 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 87 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 532 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 531 7 + ph-grd -->hit<-- 38 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 38 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2220,16 +2744,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259365007E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074632222E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981527590E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141186104E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366313881924E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412061016E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373604717242D+06 - local fc = 0.801373604717242D+06 - global fc = 0.801373604717242D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373604717242E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500393D+06 + --> objf_test(bi,bj) = 0.204168630913418D+06 +(PID.TID 0000.0001) local fc = 0.801373654415041D+06 +(PID.TID 0000.0001) global fc = 0.801373654415041D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373654415041E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2239,28 +2766,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.63064006741820E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259000715E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074697309E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981240945E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141746767E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366313955199E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412203125E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373595860062D+06 - local fc = 0.801373595860062D+06 - global fc = 0.801373595860062D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373595860062E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500388D+06 + --> objf_test(bi,bj) = 0.204168522327530D+06 +(PID.TID 0000.0001) local fc = 0.801373545829147D+06 +(PID.TID 0000.0001) global fc = 0.801373545829147D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373545829147E+05 grad-res ------------------------------- - grad-res 0 7 87 39 1 1 1 1 8.01373600223E+05 8.01373604717E+05 8.01373595860E+05 - grad-res 0 7 7 2289 0 1 1 1 4.41799536386E-01 4.42859000759E-01 -2.39806583305E-03 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.41799536385936E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.42859000759199E-01 + grad-res 0 7 38 17 1 2 2 1 8.01373600048E+05 8.01373654415E+05 8.01373545829E+05 + grad-res 0 7 7 532 0 2 2 1 5.42732709828E+00 5.42929467047E+00 -3.62530607232E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.42732709827775E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.42929467046633E+00 (PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2290 29309 8 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2289 8 - ph-grd -->hit<-- 88 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 88 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 533 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 532 8 + ph-grd -->hit<-- 39 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 39 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2270,16 +2800,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.57512891618694E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382258972266E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074722983E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981421807E-05 6.70105789348875E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206141785625E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314029584E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412207566E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373605622999D+06 - local fc = 0.801373605622999D+06 - global fc = 0.801373605622999D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373605622999E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500412D+06 + --> objf_test(bi,bj) = 0.204168630199147D+06 +(PID.TID 0000.0001) local fc = 0.801373653700789D+06 +(PID.TID 0000.0001) global fc = 0.801373653700789D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.01373653700789E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2289,22 +2822,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.58900670399476E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -9.56382259888894E-06 5.04324257330456E+00 - cg2d: Sum(rhs),rhsMax = -1.20600074621675E-05 6.29043816438055E+00 - cg2d: Sum(rhs),rhsMax = -1.38957981516558E-05 6.70105789348876E+00 + cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.99206140897446E-06 5.04324257330456E+00 + cg2d: Sum(rhs),rhsMax = -1.13366314086205E-05 6.29043815206116E+00 + cg2d: Sum(rhs),rhsMax = -1.30526412007725E-05 6.70105780806494E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.801373594952110D+06 - local fc = 0.801373594952110D+06 - global fc = 0.801373594952110D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373594952110E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.220353631633443D+06 + --> objf_test(bi,bj) = 0.240147221367786D+06 + --> objf_test(bi,bj) = 0.136704170500369D+06 + --> objf_test(bi,bj) = 0.204168523031747D+06 +(PID.TID 0000.0001) local fc = 0.801373546533345D+06 +(PID.TID 0000.0001) global fc = 0.801373546533345D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.01373546533345E+05 grad-res ------------------------------- - grad-res 0 8 88 39 1 1 1 1 8.01373600223E+05 8.01373605623E+05 8.01373594952E+05 - grad-res 0 8 8 2290 0 1 1 1 5.31169499669E-01 5.33544493373E-01 -4.47125391510E-03 -(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600223009E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.31169499668510E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 5.33544493373483E-01 + grad-res 0 8 39 17 1 2 2 1 8.01373600048E+05 8.01373653701E+05 8.01373546533E+05 + grad-res 0 8 8 533 0 2 2 1 5.35561439321E+00 5.35837217467E+00 -5.14932789650E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 8.01373600047573E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.35561439320927E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.35837217466906E+00 (PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2317,198 +2853,204 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 73 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 8.0137360022301E+05 8.0137356401999E+05 8.0137360022301E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -1.8101508729160E+00 -3.6291621504794E+00 5.0122072316971E-01 +(PID.TID 0000.0001) grdchk output (p): 1 26 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0137360004757E+05 8.0137362170158E+05 8.0137357857463E+05 +(PID.TID 0000.0001) grdchk output (g): 1 2.1563473332208E+00 2.1563473927729E+00 2.7617138464997E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 74 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 8.0137360022301E+05 8.0137356423914E+05 8.0137360022301E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -1.7991936008912E+00 -3.6070651123766E+00 5.0120290462244E-01 +(PID.TID 0000.0001) grdchk output (p): 2 30 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0137360004757E+05 8.0137360974774E+05 8.0137359050660E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.6205690642819E-01 9.6203953883392E-01 -1.8052890312870E-05 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 75 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 8.0137360022301E+05 8.0137356475550E+05 8.0137360022301E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -1.7733755812515E+00 -3.5553108531608E+00 5.0120378934662E-01 +(PID.TID 0000.0001) grdchk output (p): 3 31 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0137360004757E+05 8.0137360684498E+05 8.0137359337943E+05 +(PID.TID 0000.0001) grdchk output (g): 3 6.7327768192627E-01 6.6534952211152E-01 -1.1915781933054E-02 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 76 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 8.0137360022301E+05 8.0137356629288E+05 8.0137360022301E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -1.6965061950032E+00 -3.3953662512866E+00 5.0034662847924E-01 +(PID.TID 0000.0001) grdchk output (p): 4 32 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0137360004757E+05 8.0137361941972E+05 8.0137358080452E+05 +(PID.TID 0000.0001) grdchk output (g): 4 1.9307601498440E+00 1.9064996049003E+00 -1.2725177010981E-02 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 85 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 8.0137360022301E+05 8.0137360463730E+05 8.0137359596870E+05 -(PID.TID 0000.0001) grdchk output (g): 5 4.3343011057004E-01 4.3343000235820E-01 -2.4966394196468E-07 +(PID.TID 0000.0001) grdchk output (p): 5 36 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0137360004757E+05 8.0137367198178E+05 8.0137352861628E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.1682749607135E+00 1.6460960877266E+01 5.6452876510912E-01 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 6 86 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 6 8.0137360022301E+05 8.0137360647336E+05 8.0137359411258E+05 -(PID.TID 0000.0001) grdchk output (g): 6 6.1803897260688E-01 6.1795869738722E-01 -1.2990385928080E-04 +(PID.TID 0000.0001) grdchk output (p): 6 37 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0137360004757E+05 8.0137365715621E+05 8.0137354312115E+05 +(PID.TID 0000.0001) grdchk output (g): 6 5.7017529557925E+00 5.7006747320766E+00 -1.8913966619616E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 7 87 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 7 8.0137360022301E+05 8.0137360471724E+05 8.0137359586006E+05 -(PID.TID 0000.0001) grdchk output (g): 7 4.4285900075920E-01 4.4179953638594E-01 -2.3980658330471E-03 +(PID.TID 0000.0001) grdchk output (p): 7 38 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0137360004757E+05 8.0137365441504E+05 8.0137354582915E+05 +(PID.TID 0000.0001) grdchk output (g): 7 5.4292946704663E+00 5.4273270982777E+00 -3.6253060723213E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 8 88 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 8 8.0137360022301E+05 8.0137360562300E+05 8.0137359495211E+05 -(PID.TID 0000.0001) grdchk output (g): 8 5.3354449337348E-01 5.3116949966851E-01 -4.4712539150973E-03 +(PID.TID 0000.0001) grdchk output (p): 8 39 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0137360004757E+05 8.0137365370079E+05 8.0137354653335E+05 +(PID.TID 0000.0001) grdchk output (g): 8 5.3583721746691E+00 5.3556143932093E+00 -5.1493278965031E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.5426055237090E-01 +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 1.9968634007757E-01 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 44.920000000000002 -(PID.TID 0000.0001) System time: 0.91000000000000003 -(PID.TID 0000.0001) Wall clock time: 51.006881952285767 +(PID.TID 0000.0001) User time: 49.477884286781773 +(PID.TID 0000.0001) System time: 1.1194599750451744 +(PID.TID 0000.0001) Wall clock time: 52.460766077041626 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.13000000000000000 -(PID.TID 0000.0001) System time: 2.00000000000000004E-002 -(PID.TID 0000.0001) Wall clock time: 1.1226379871368408 +(PID.TID 0000.0001) User time: 0.11937399744056165 +(PID.TID 0000.0001) System time: 2.5267999153584242E-002 +(PID.TID 0000.0001) Wall clock time: 0.70665502548217773 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 3.9400000000000004 -(PID.TID 0000.0001) System time: 0.80000000000000004 -(PID.TID 0000.0001) Wall clock time: 7.5666620731353760 +(PID.TID 0000.0001) User time: 3.9229528531432152 +(PID.TID 0000.0001) System time: 1.0007450059056282 +(PID.TID 0000.0001) Wall clock time: 5.7464931011199951 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.78000000000000114 -(PID.TID 0000.0001) System time: 3.00000000000000266E-002 -(PID.TID 0000.0001) Wall clock time: 1.0007579326629639 +(PID.TID 0000.0001) User time: 0.97430057823657990 +(PID.TID 0000.0001) System time: 5.6790016591548920E-002 +(PID.TID 0000.0001) Wall clock time: 1.2456502914428711 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 36.469999999999992 -(PID.TID 0000.0001) System time: 0.77999999999999992 -(PID.TID 0000.0001) Wall clock time: 40.029522895812988 +(PID.TID 0000.0001) User time: 40.784889534115791 +(PID.TID 0000.0001) System time: 0.97801975533366203 +(PID.TID 0000.0001) Wall clock time: 42.461477518081665 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 36.469999999999992 -(PID.TID 0000.0001) System time: 0.77999999999999992 -(PID.TID 0000.0001) Wall clock time: 40.027295112609863 +(PID.TID 0000.0001) User time: 40.782767444849014 +(PID.TID 0000.0001) System time: 0.97796801850199699 +(PID.TID 0000.0001) Wall clock time: 42.459310293197632 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.99999999999982947E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13669109344482422 +(PID.TID 0000.0001) User time: 7.0563375949859619E-002 +(PID.TID 0000.0001) System time: 4.6399757266044617E-003 +(PID.TID 0000.0001) Wall clock time: 8.9508771896362305E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 7.99999999999982947E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13472843170166016 +(PID.TID 0000.0001) User time: 6.9394648075103760E-002 +(PID.TID 0000.0001) System time: 4.6050325036048889E-003 +(PID.TID 0000.0001) Wall clock time: 8.8384389877319336E-002 +(PID.TID 0000.0001) No. starts: 71 +(PID.TID 0000.0001) No. stops: 71 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0470232963562012E-004 +(PID.TID 0000.0001) System time: 1.6070902347564697E-005 +(PID.TID 0000.0001) Wall clock time: 5.1808357238769531E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.00000000000062528E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.93826961517333984E-002 +(PID.TID 0000.0001) User time: 4.2793363332748413E-002 +(PID.TID 0000.0001) System time: 3.8385391235351562E-004 +(PID.TID 0000.0001) Wall clock time: 4.3214559555053711E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.789999999999999 -(PID.TID 0000.0001) System time: 7.99999999999999600E-002 -(PID.TID 0000.0001) Wall clock time: 11.894463062286377 +(PID.TID 0000.0001) User time: 11.497156143188477 +(PID.TID 0000.0001) System time: 0.12842132896184921 +(PID.TID 0000.0001) Wall clock time: 11.626383781433105 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 5.3999999999999986 -(PID.TID 0000.0001) System time: 5.00000000000000444E-002 -(PID.TID 0000.0001) Wall clock time: 5.4561769962310791 -(PID.TID 0000.0001) No. starts: 71 -(PID.TID 0000.0001) No. stops: 71 +(PID.TID 0000.0001) User time: 4.6889969110488892 +(PID.TID 0000.0001) System time: 0.10325121134519577 +(PID.TID 0000.0001) Wall clock time: 4.7924163341522217 +(PID.TID 0000.0001) No. starts: 284 +(PID.TID 0000.0001) No. stops: 284 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.7500000000000497 -(PID.TID 0000.0001) System time: 0.26999999999999991 -(PID.TID 0000.0001) Wall clock time: 9.0407702922821045 +(PID.TID 0000.0001) User time: 10.934507727622986 +(PID.TID 0000.0001) System time: 0.17056403309106827 +(PID.TID 0000.0001) Wall clock time: 11.105899810791016 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 15.359999999999999 -(PID.TID 0000.0001) System time: 0.34000000000000019 -(PID.TID 0000.0001) Wall clock time: 15.674663782119751 +(PID.TID 0000.0001) User time: 16.390602648258209 +(PID.TID 0000.0001) System time: 0.45217699557542801 +(PID.TID 0000.0001) Wall clock time: 16.846106290817261 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6099999999999994 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6053824424743652 +(PID.TID 0000.0001) User time: 2.4695307016372681 +(PID.TID 0000.0001) System time: 2.2168383002281189E-003 +(PID.TID 0000.0001) Wall clock time: 2.4720263481140137 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.22999999999998977 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.24073266983032227 +(PID.TID 0000.0001) User time: 0.48635184764862061 +(PID.TID 0000.0001) System time: 0.11004698276519775 +(PID.TID 0000.0001) Wall clock time: 0.59650278091430664 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.38999999999999346 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.38237380981445313 +(PID.TID 0000.0001) User time: 0.42849886417388916 +(PID.TID 0000.0001) System time: 1.8919706344604492E-003 +(PID.TID 0000.0001) Wall clock time: 0.43050956726074219 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.05643272399902344E-003 +(PID.TID 0000.0001) User time: 6.0319900512695312E-004 +(PID.TID 0000.0001) System time: 1.9073486328125000E-006 +(PID.TID 0000.0001) Wall clock time: 5.9676170349121094E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.28999999999999915 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.29438424110412598 +(PID.TID 0000.0001) User time: 0.48262786865234375 +(PID.TID 0000.0001) System time: 1.5795230865478516E-004 +(PID.TID 0000.0001) Wall clock time: 0.48392724990844727 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.52999999999999403 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.54138088226318359 +(PID.TID 0000.0001) User time: 0.77102583646774292 +(PID.TID 0000.0001) System time: 2.9802322387695312E-006 +(PID.TID 0000.0001) Wall clock time: 0.77114391326904297 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99999999999960210E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.18214011192321777 +(PID.TID 0000.0001) User time: 3.4507215023040771E-002 +(PID.TID 0000.0001) System time: 1.0402798652648926E-002 +(PID.TID 0000.0001) Wall clock time: 0.37608575820922852 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.00000000000073896E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 0.61474442481994629 +(PID.TID 0000.0001) User time: 3.4989714622497559E-002 +(PID.TID 0000.0001) System time: 1.3519048690795898E-002 +(PID.TID 0000.0001) Wall clock time: 0.19472050666809082 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.54447555541992188E-003 +(PID.TID 0000.0001) User time: 1.7209053039550781E-003 +(PID.TID 0000.0001) System time: 4.3988227844238281E-005 +(PID.TID 0000.0001) Wall clock time: 1.7793178558349609E-003 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 7.2500000000000000 -(PID.TID 0000.0001) System time: 1.99999999999999067E-002 -(PID.TID 0000.0001) Wall clock time: 7.3601391315460205 +(PID.TID 0000.0001) User time: 7.3748583793640137 +(PID.TID 0000.0001) System time: 2.1359920501708984E-002 +(PID.TID 0000.0001) Wall clock time: 7.4105870723724365 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.99999999999995737E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.74350166320800781E-002 +(PID.TID 0000.0001) User time: 2.5865554809570312E-002 +(PID.TID 0000.0001) System time: 4.6190023422241211E-003 +(PID.TID 0000.0001) Wall clock time: 5.0556182861328125E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 9.99999999999978684E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.14960193634033203E-002 +(PID.TID 0000.0001) User time: 2.9071807861328125E-002 +(PID.TID 0000.0001) System time: 9.1397762298583984E-004 +(PID.TID 0000.0001) Wall clock time: 6.0389041900634766E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 33.570000000000000 -(PID.TID 0000.0001) System time: 7.00000000000000622E-002 -(PID.TID 0000.0001) Wall clock time: 34.818327188491821 +(PID.TID 0000.0001) User time: 38.005693435668945 +(PID.TID 0000.0001) System time: 6.6530942916870117E-002 +(PID.TID 0000.0001) Wall clock time: 38.486007928848267 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -2525,10 +3067,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Min. Y spins = 1000000000 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 17512 +(PID.TID 0000.0001) // No. barriers = 17688 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 17512 +(PID.TID 0000.0001) // Total barrier spins = 17688 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/OpenAD/results/output_oadm.kpp.txt b/verification/global_oce_latlon/results/output_oadm.kpp.txt similarity index 73% rename from verification/OpenAD/results/output_oadm.kpp.txt rename to verification/global_oce_latlon/results/output_oadm.kpp.txt index 42c246905c..2f22e7db3a 100644 --- a/verification/OpenAD/results/output_oadm.kpp.txt +++ b/verification/global_oce_latlon/results/output_oadm.kpp.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67d -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Fri Sep 7 13:10:07 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node374 +(PID.TID 0000.0001) // Build date: Tue Jul 25 22:52:12 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -48,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -327,6 +329,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -348,9 +356,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -371,36 +388,48 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># names for ctrl_pack/unpack (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES -(PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', -(PID.TID 0000.0001) > costname = 'ecco_cost', -(PID.TID 0000.0001) > scalname = 'ecco_scal', -(PID.TID 0000.0001) > maskname = 'ecco_mask', -(PID.TID 0000.0001) > metaname = 'ecco_meta', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -433,12 +462,20 @@ (PID.TID 0000.0001) > iGloTile = 2, (PID.TID 0000.0001) > jGloTile = 2, (PID.TID 0000.0001) > iGloPos = 26, -(PID.TID 0000.0001) > jGloPos = 19, +(PID.TID 0000.0001) >#jGloPos = 19, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=17 +(PID.TID 0000.0001) ># avoids this. This is similar to input_ad but here we use jGloTile = 2. +(PID.TID 0000.0001) > jGloPos = 17, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) >### nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 7, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -447,7 +484,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 7 @@ -503,18 +540,18 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67603 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67878 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 @@ -569,10 +606,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 19890 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 (PID.TID 0000.0001) ctrl-wet 8: atmos 17302 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67603 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67878 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 @@ -592,8 +969,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 6 -(PID.TID 0000.0001) ctrl_init: control vector length: 67603 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 67878 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -610,11 +987,39 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -646,9 +1051,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -739,10 +1164,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -797,28 +1228,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -840,7 +1274,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -849,10 +1283,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -917,37 +1351,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -1052,8 +1461,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1070,6 +1479,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1404,15 +1816,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1945,14 +2348,10 @@ (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ (PID.TID 0000.0001) 5.000000000000000E+00 +OAD: TIMING: stamp 0: 1690340710.396203 +OAD: TIMING: stamp 1: 1690340716.302273 +OAD: TIMING: delta stamps 1-0: 5.906070 (PID.TID 0000.0001) ; -OAD: TIMING: stamp 0: 1536341316.394153 -OAD: TIMING: stamp 1: 1536341327.370191 -OAD: TIMING: delta stamps 1-0: 10.976038 -OAD: TIMING: stamp 2: 1536341343.185892 -OAD: TIMING: delta stamps 2-1: 15.815701 -OAD: TIMING: delta stamps 2-0: 26.791739 -OAD: TIMING: ratio stamps (2-1)/(1-0): 1.581570e+07/1.097604e+07=1.440930e+00 (PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ (PID.TID 0000.0001) 5.000000000000000E+02 (PID.TID 0000.0001) ; @@ -1980,7 +2379,12 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 1.581570e+07/1.097604e+07=1.440930e+00 (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2003,8 +2407,8 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 1.581570e+07/1.097604e+07=1.440930e+00 cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 5.04372684130668E+00 cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 6.29127451582735E+00 OAD: DT+ 1048576 - OAD: DT+ 17825792 OAD: IT+ 17825792 + OAD: DT+ 17825792 OAD: DT+ 34603008 OAD: IT+ 34603008 OAD: IT+ 51380224 @@ -2015,18 +2419,22 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 1.581570e+07/1.097604e+07=1.440930e+00 cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.70181235058083E+00 (PID.TID 0000.0001) %CHECKPOINT 4 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720265743772D+06 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720265743772D+06 (PID.TID 0000.0001) local fc = 0.803338706172528D+06 (PID.TID 0000.0001) global fc = 0.803338706172528D+06 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 6.29127451582735E+00 cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 7.86714311447890E-04 cg2d: Sum(rhs),rhsMax = 3.33066907387547E-16 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = 7.99360577730113E-15 1.32976219880669E-03 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 1.32976219880669E-03 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +OAD: TIMING: stamp 2: 1690340725.127489 +OAD: TIMING: delta stamps 2-1: 8.825216 +OAD: TIMING: delta stamps 2-0: 14.731286 +OAD: TIMING: ratio stamps (2-1)/(1-0): 8.825216e+06/5.906070e+06=1.494262e+00 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 2.53674886388737E+00 cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 1.40107987662460E-03 @@ -2039,13 +2447,13 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 1.581570e+07/1.097604e+07=1.440930e+00 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj - grad-res closest next position: - grad-res 0 551 26 19 1 2 2 + grad-res exact position met: + grad-res 0 526 26 17 1 2 2 (PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 551 29309 1 + ph-test icomp, ncvarcomp, ichknum 526 29309 1 ph-grd _loc: bi, bj, icomptest, ichknum 2 2 0 1 - ph-grd -->hit<-- 28 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 28 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-grd -->hit<-- 26 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 26 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2055,19 +2463,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 3.49720252756924E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -8.77076189453874E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 1.73194791841524E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.33066907387547E-15 5.04372684130667E+00 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.68594044175552E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720229276125D+06 -(PID.TID 0000.0001) local fc = 0.803338669704880D+06 -(PID.TID 0000.0001) global fc = 0.803338669704880D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338669704880E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720272175930D+06 +(PID.TID 0000.0001) local fc = 0.803338712604685D+06 +(PID.TID 0000.0001) global fc = 0.803338712604685D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338712604685E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2078,30 +2486,30 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -5.88418203051333E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -2.49800180540660E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 6.70181235058083E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720265743772D+06 -(PID.TID 0000.0001) local fc = 0.803338706172528D+06 -(PID.TID 0000.0001) global fc = 0.803338706172528D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338706172528E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720259350317D+06 +(PID.TID 0000.0001) local fc = 0.803338699779072D+06 +(PID.TID 0000.0001) global fc = 0.803338699779072D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338699779072E+05 grad-res ------------------------------- - grad-res 0 1 28 19 1 2 2 1 8.03338706173E+05 8.03338669705E+05 8.03338706173E+05 - grad-res 0 1 1 551 0 2 2 1 -3.65575532615E+00 -1.82338239974E+00 5.01229640096E-01 + grad-res 0 1 26 17 1 2 2 1 8.03338706173E+05 8.03338712605E+05 8.03338699779E+05 + grad-res 0 1 1 526 0 2 2 1 6.41350653946E-01 6.41280657146E-01 1.09139672134E-04 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.65575532615055E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.82338239974342E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.41350653946221E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.41280657146126E-01 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 552 29309 2 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 551 2 - ph-grd -->hit<-- 29 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 29 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 527 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 526 2 + ph-grd -->hit<-- 30 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 30 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2111,19 +2519,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 6.77236045021345E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.04281036531029E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = 1.22124532708767E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 1.99840144432528E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720229485257D+06 -(PID.TID 0000.0001) local fc = 0.803338669914012D+06 -(PID.TID 0000.0001) global fc = 0.803338669914012D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338669914012E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720275238625D+06 +(PID.TID 0000.0001) local fc = 0.803338715667380D+06 +(PID.TID 0000.0001) global fc = 0.803338715667380D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338715667380E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2134,30 +2542,30 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = 1.27675647831893E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -3.44169137633799E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720265743772D+06 -(PID.TID 0000.0001) local fc = 0.803338706172528D+06 -(PID.TID 0000.0001) global fc = 0.803338706172528D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338706172528E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720256431396D+06 +(PID.TID 0000.0001) local fc = 0.803338696860151D+06 +(PID.TID 0000.0001) global fc = 0.803338696860151D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338696860151E+05 grad-res ------------------------------- - grad-res 0 2 29 19 1 2 2 1 8.03338706173E+05 8.03338669914E+05 8.03338706173E+05 - grad-res 0 2 2 552 0 2 2 1 -3.63465716400E+00 -1.81292577181E+00 5.01211341260E-01 + grad-res 0 2 30 17 1 2 2 1 8.03338706173E+05 8.03338715667E+05 8.03338696860E+05 + grad-res 0 2 2 527 0 2 2 1 9.40361516534E-01 9.40361409448E-01 1.13877543284E-07 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63465716399526E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81292577181011E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.40361516534147E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.40361409448087E-01 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 553 29309 3 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 552 3 - ph-grd -->hit<-- 30 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 30 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 528 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 527 3 + ph-grd -->hit<-- 31 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 31 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2167,19 +2575,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.77395900588817E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 2.94209101525666E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -1.42108547152020E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 6.70181235058083E+00 + cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = 3.33066907387547E-16 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.06421554796543E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720229491294D+06 -(PID.TID 0000.0001) local fc = 0.803338669920049D+06 -(PID.TID 0000.0001) global fc = 0.803338669920049D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338669920049E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720270925577D+06 +(PID.TID 0000.0001) local fc = 0.803338711354332D+06 +(PID.TID 0000.0001) global fc = 0.803338711354332D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338711354332E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2189,31 +2597,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.55431223447522E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -1.18793863634892E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.97539770599542E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -9.99200722162641E-16 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.78745906964650E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 2.26485497023532E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720265743773D+06 -(PID.TID 0000.0001) local fc = 0.803338706172528D+06 -(PID.TID 0000.0001) global fc = 0.803338706172528D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338706172528E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720260741352D+06 +(PID.TID 0000.0001) local fc = 0.803338701170107D+06 +(PID.TID 0000.0001) global fc = 0.803338701170107D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338701170107E+05 grad-res ------------------------------- - grad-res 0 3 30 19 1 2 2 1 8.03338706173E+05 8.03338669920E+05 8.03338706173E+05 - grad-res 0 3 3 553 0 2 2 1 -3.63417749021E+00 -1.81262393016E+00 5.01228562709E-01 + grad-res 0 3 31 17 1 2 2 1 8.03338706173E+05 8.03338711354E+05 8.03338701170E+05 + grad-res 0 3 3 528 0 2 2 1 5.09211280635E-01 5.09211287135E-01 -1.27655372939E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63417749021314E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81262393016368E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.09211280634903E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.09211287135258E-01 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 554 29309 4 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 553 4 - ph-grd -->hit<-- 31 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 31 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 529 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 528 4 + ph-grd -->hit<-- 32 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 32 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2223,19 +2631,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -6.10622663543836E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.15303338993544E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -3.44169137633799E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720233758817D+06 -(PID.TID 0000.0001) local fc = 0.803338674187572D+06 -(PID.TID 0000.0001) global fc = 0.803338674187572D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338674187572E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720287918154D+06 +(PID.TID 0000.0001) local fc = 0.803338728346910D+06 +(PID.TID 0000.0001) global fc = 0.803338728346910D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338728346910E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2245,31 +2653,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.55431223447522E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 4.35207425653061E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.27675647831893E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.44328993201270E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984104D+06 - --> objf_test(bi,bj) = 0.204720265743778D+06 -(PID.TID 0000.0001) local fc = 0.803338706172533D+06 -(PID.TID 0000.0001) global fc = 0.803338706172533D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338706172533E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720243755492D+06 +(PID.TID 0000.0001) local fc = 0.803338684184247D+06 +(PID.TID 0000.0001) global fc = 0.803338684184247D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338684184247E+05 grad-res ------------------------------- - grad-res 0 4 31 19 1 2 2 1 8.03338706173E+05 8.03338674188E+05 8.03338706173E+05 - grad-res 0 4 4 554 0 2 2 1 -1.65518659308E-02 -1.59924807958E+00 -9.56204104281E+01 + grad-res 0 4 32 17 1 2 2 1 8.03338706173E+05 8.03338728347E+05 8.03338684184E+05 + grad-res 0 4 4 529 0 2 2 1 2.20813597191E+00 2.20813311171E+00 1.29530020765E-06 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.65518659307863E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.59924807958305E+00 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.20813597190685E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.20813311170787E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 555 29309 5 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 554 5 - ph-grd -->hit<-- 40 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 40 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 530 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 529 5 + ph-grd -->hit<-- 36 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2279,19 +2687,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 3.27515792264421E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -8.43769498715119E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.75335310107039E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.99840144432528E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.22124532708767E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924984457D+06 - --> objf_test(bi,bj) = 0.204720270532029D+06 -(PID.TID 0000.0001) local fc = 0.803338710961137D+06 -(PID.TID 0000.0001) global fc = 0.803338710961137D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338710961137E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984105D+06 + --> objf_test(bi,bj) = 0.204720340366055D+06 +(PID.TID 0000.0001) local fc = 0.803338780794810D+06 +(PID.TID 0000.0001) global fc = 0.803338780794810D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338780794810E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2301,31 +2709,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.38777878078145E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -1.60982338570648E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.70894418008538E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.99840144432528E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924983752D+06 - --> objf_test(bi,bj) = 0.204720261135993D+06 -(PID.TID 0000.0001) local fc = 0.803338701564396D+06 -(PID.TID 0000.0001) global fc = 0.803338701564396D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338701564396E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984104D+06 + --> objf_test(bi,bj) = 0.204720191304935D+06 +(PID.TID 0000.0001) local fc = 0.803338631733689D+06 +(PID.TID 0000.0001) global fc = 0.803338631733689D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338631733689E+05 grad-res ------------------------------- - grad-res 0 5 40 19 1 2 2 1 8.03338706173E+05 8.03338710961E+05 8.03338701564E+05 - grad-res 0 5 5 555 0 2 2 1 4.69837136777E-01 4.69837035052E-01 2.16510565809E-07 + grad-res 0 5 36 17 1 2 2 1 8.03338706173E+05 8.03338780795E+05 8.03338631734E+05 + grad-res 0 5 5 530 0 2 2 1 7.45305659684E+00 7.45305602904E+00 7.61830977192E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.69837136777183E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.69837035052478E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.45305659684103E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.45305602904409E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 556 29309 6 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 555 6 - ph-grd -->hit<-- 41 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 41 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 531 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 530 6 + ph-grd -->hit<-- 37 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2335,19 +2743,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -2.83106871279415E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -7.77156117237610E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.73034936274053E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924985804D+06 - --> objf_test(bi,bj) = 0.204720272296485D+06 -(PID.TID 0000.0001) local fc = 0.803338712726940D+06 -(PID.TID 0000.0001) global fc = 0.803338712726940D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338712726940E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984106D+06 + --> objf_test(bi,bj) = 0.204720329357289D+06 +(PID.TID 0000.0001) local fc = 0.803338769786046D+06 +(PID.TID 0000.0001) global fc = 0.803338769786046D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338769786046E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2357,31 +2765,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 2.38697950294409E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -9.99200722162641E-16 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.09912079437890E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924982408D+06 - --> objf_test(bi,bj) = 0.204720259365936D+06 -(PID.TID 0000.0001) local fc = 0.803338699792995D+06 -(PID.TID 0000.0001) global fc = 0.803338699792995D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338699792995E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984102D+06 + --> objf_test(bi,bj) = 0.204720202312380D+06 +(PID.TID 0000.0001) local fc = 0.803338642741133D+06 +(PID.TID 0000.0001) global fc = 0.803338642741133D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338642741133E+05 grad-res ------------------------------- - grad-res 0 6 41 19 1 2 2 1 8.03338706173E+05 8.03338712727E+05 8.03338699793E+05 - grad-res 0 6 6 556 0 2 2 1 6.46697106710E-01 6.46697252523E-01 -2.25474302340E-07 + grad-res 0 6 37 17 1 2 2 1 8.03338706173E+05 8.03338769786E+05 8.03338642741E+05 + grad-res 0 6 6 531 0 2 2 1 6.35224601548E+00 6.35224565049E+00 5.74584660962E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.46697106709575E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.46697252523154E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.35224601547733E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.35224565048702E+00 (PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 557 29309 7 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 556 7 - ph-grd -->hit<-- 42 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 42 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 532 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 531 7 + ph-grd -->hit<-- 38 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 38 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2391,19 +2799,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -3.33066907387547E-16 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -2.14273043752655E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.60582699651968E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.55431223447522E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924989584D+06 - --> objf_test(bi,bj) = 0.204720270794141D+06 -(PID.TID 0000.0001) local fc = 0.803338711228376D+06 -(PID.TID 0000.0001) global fc = 0.803338711228376D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338711228376E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984107D+06 + --> objf_test(bi,bj) = 0.204720329755266D+06 +(PID.TID 0000.0001) local fc = 0.803338770184024D+06 +(PID.TID 0000.0001) global fc = 0.803338770184024D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338770184024E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2413,31 +2821,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.77395900588817E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 1.11022302462516E-16 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = 4.55191440096314E-15 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -7.66053886991358E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924978637D+06 - --> objf_test(bi,bj) = 0.204720260869569D+06 -(PID.TID 0000.0001) local fc = 0.803338701292857D+06 -(PID.TID 0000.0001) global fc = 0.803338701292857D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338701292857E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984101D+06 + --> objf_test(bi,bj) = 0.204720201915519D+06 +(PID.TID 0000.0001) local fc = 0.803338642344271D+06 +(PID.TID 0000.0001) global fc = 0.803338642344271D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338642344271E+05 grad-res ------------------------------- - grad-res 0 7 42 19 1 2 2 1 8.03338706173E+05 8.03338711228E+05 8.03338701293E+05 - grad-res 0 7 7 557 0 2 2 1 4.96775952158E-01 4.96775936335E-01 3.18501016672E-08 + grad-res 0 7 38 17 1 2 2 1 8.03338706173E+05 8.03338770184E+05 8.03338642344E+05 + grad-res 0 7 7 532 0 2 2 1 6.39198812687E+00 6.39198762947E+00 7.78170118343E-08 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.96775952157690E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.96775936335325E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.39198812687304E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.39198762946762E+00 (PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 558 29309 8 - ph-grd _loc: bi, bj, icomptest, ichknum 2 2 557 8 - ph-grd -->hit<-- 43 19 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 43 19 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 533 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 532 8 + ph-grd -->hit<-- 39 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 39 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2447,19 +2855,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 5.04372684130668E+00 - cg2d: Sum(rhs),rhsMax = -1.43218770176645E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -4.77395900588817E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.99520433297585E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -1.56541446472147E-14 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924991803D+06 - --> objf_test(bi,bj) = 0.204720271873775D+06 -(PID.TID 0000.0001) local fc = 0.803338712310229D+06 -(PID.TID 0000.0001) global fc = 0.803338712310229D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338712310229E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984127D+06 + --> objf_test(bi,bj) = 0.204720331433172D+06 +(PID.TID 0000.0001) local fc = 0.803338771861949D+06 +(PID.TID 0000.0001) global fc = 0.803338771861949D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.03338771861949E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2470,24 +2878,24 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -1.38777878078145E-15 5.04372684130667E+00 - cg2d: Sum(rhs),rhsMax = -1.22124532708767E-14 6.29127451582735E+00 - cg2d: Sum(rhs),rhsMax = 3.24185123190546E-14 6.70181235058082E+00 + cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 5.04372684130668E+00 + cg2d: Sum(rhs),rhsMax = -3.33066907387547E-15 6.29127451582735E+00 + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 6.70181235058082E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.220942912225787D+06 - --> objf_test(bi,bj) = 0.240725603218863D+06 - --> objf_test(bi,bj) = 0.136949924976422D+06 - --> objf_test(bi,bj) = 0.204720259791794D+06 -(PID.TID 0000.0001) local fc = 0.803338700212867D+06 -(PID.TID 0000.0001) global fc = 0.803338700212867D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338700212867E+05 + --> objf_test(bi,bj) = 0.220942912225787D+06 + --> objf_test(bi,bj) = 0.240725603218863D+06 + --> objf_test(bi,bj) = 0.136949924984082D+06 + --> objf_test(bi,bj) = 0.204720200255506D+06 +(PID.TID 0000.0001) local fc = 0.803338640684238D+06 +(PID.TID 0000.0001) global fc = 0.803338640684238D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.03338640684238E+05 grad-res ------------------------------- - grad-res 0 8 43 19 1 2 2 1 8.03338706173E+05 8.03338712310E+05 8.03338700213E+05 - grad-res 0 8 8 558 0 2 2 1 6.04867908726E-01 6.04868098162E-01 -3.13185315015E-07 + grad-res 0 8 39 17 1 2 2 1 8.03338706173E+05 8.03338771862E+05 8.03338640684E+05 + grad-res 0 8 8 533 0 2 2 1 6.55889596732E+00 6.55888555339E+00 1.58775660342E-06 (PID.TID 0000.0001) ADM ref_cost_function = 8.03338706172528E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.04867908726368E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.04868098162115E-01 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.55889596731645E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.55888555338606E+00 (PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2500,204 +2908,204 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 28 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 8.0333870617253E+05 8.0333866970488E+05 8.0333870617253E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -1.8233823997434E+00 -3.6557553261505E+00 5.0122964009645E-01 +(PID.TID 0000.0001) grdchk output (p): 1 26 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0333870617253E+05 8.0333871260468E+05 8.0333869977907E+05 +(PID.TID 0000.0001) grdchk output (g): 1 6.4128065714613E-01 6.4135065394622E-01 1.0913967213411E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 29 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 8.0333870617253E+05 8.0333866991401E+05 8.0333870617253E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -1.8129257718101E+00 -3.6346571639953E+00 5.0121134125967E-01 +(PID.TID 0000.0001) grdchk output (p): 2 30 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0333870617253E+05 8.0333871566738E+05 8.0333869686015E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.4036140944809E-01 9.4036151653415E-01 1.1387754328407E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 30 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 8.0333870617253E+05 8.0333866992005E+05 8.0333870617253E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -1.8126239301637E+00 -3.6341774902131E+00 5.0122856270915E-01 +(PID.TID 0000.0001) grdchk output (p): 3 31 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0333870617253E+05 8.0333871135433E+05 8.0333870117011E+05 +(PID.TID 0000.0001) grdchk output (g): 3 5.0921128713526E-01 5.0921128063490E-01 -1.2765537293902E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 31 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 8.0333870617253E+05 8.0333867418757E+05 8.0333870617253E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -1.5992480795830E+00 -1.6551865930786E-02 -9.5620410428075E+01 +(PID.TID 0000.0001) grdchk output (p): 4 32 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0333870617253E+05 8.0333872834691E+05 8.0333868418425E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.2081331117079E+00 2.2081359719068E+00 1.2953002076488E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 40 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 8.0333870617253E+05 8.0333871096114E+05 8.0333870156440E+05 -(PID.TID 0000.0001) grdchk output (g): 5 4.6983703505248E-01 4.6983713677718E-01 2.1651056580918E-07 +(PID.TID 0000.0001) grdchk output (p): 5 36 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0333870617253E+05 8.0333878079481E+05 8.0333863173369E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.4530560290441E+00 7.4530565968410E+00 7.6183097719174E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 6 41 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 6 8.0333870617253E+05 8.0333871272694E+05 8.0333869979299E+05 -(PID.TID 0000.0001) grdchk output (g): 6 6.4669725252315E-01 6.4669710670958E-01 -2.2547430233999E-07 +(PID.TID 0000.0001) grdchk output (p): 6 37 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0333870617253E+05 8.0333876978605E+05 8.0333864274113E+05 +(PID.TID 0000.0001) grdchk output (g): 6 6.3522456504870E+00 6.3522460154773E+00 5.7458466096172E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 7 42 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 7 8.0333870617253E+05 8.0333871122838E+05 8.0333870129286E+05 -(PID.TID 0000.0001) grdchk output (g): 7 4.9677593633533E-01 4.9677595215769E-01 3.1850101667175E-08 +(PID.TID 0000.0001) grdchk output (p): 7 38 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0333870617253E+05 8.0333877018402E+05 8.0333864234427E+05 +(PID.TID 0000.0001) grdchk output (g): 7 6.3919876294676E+00 6.3919881268730E+00 7.7817011834291E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 8 43 19 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 8 8.0333870617253E+05 8.0333871231023E+05 8.0333870021287E+05 -(PID.TID 0000.0001) grdchk output (g): 8 6.0486809816211E-01 6.0486790872637E-01 -3.1318531501512E-07 +(PID.TID 0000.0001) grdchk output (p): 8 39 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0333870617253E+05 8.0333877186195E+05 8.0333864068424E+05 +(PID.TID 0000.0001) grdchk output (g): 8 6.5588855533861E+00 6.5588959673164E+00 1.5877566034161E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.3808313630796E+01 +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.8593547224699E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 109.34437441313639 -(PID.TID 0000.0001) System time: 2.4396289791911840 -(PID.TID 0000.0001) Wall clock time: 112.06698393821716 +(PID.TID 0000.0001) User time: 53.764870185870677 +(PID.TID 0000.0001) System time: 1.3493939531035721 +(PID.TID 0000.0001) Wall clock time: 56.411685943603516 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.26995899761095643 -(PID.TID 0000.0001) System time: 2.39969994872808456E-002 -(PID.TID 0000.0001) Wall clock time: 0.31390213966369629 +(PID.TID 0000.0001) User time: 0.16664199857041240 +(PID.TID 0000.0001) System time: 3.0995001550763845E-002 +(PID.TID 0000.0001) Wall clock time: 0.75257205963134766 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 8.5756962001323700 -(PID.TID 0000.0001) System time: 2.3666400611400604 -(PID.TID 0000.0001) Wall clock time: 10.976027965545654 +(PID.TID 0000.0001) User time: 4.2957067936658859 +(PID.TID 0000.0001) System time: 1.2257509902119637 +(PID.TID 0000.0001) Wall clock time: 5.9060649871826172 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.6767536997795105 -(PID.TID 0000.0001) System time: 4.09933961927890778E-002 -(PID.TID 0000.0001) Wall clock time: 1.7190401554107666 +(PID.TID 0000.0001) User time: 0.94975839555263519 +(PID.TID 0000.0001) System time: 5.4926428943872452E-002 +(PID.TID 0000.0001) Wall clock time: 1.1813576221466064 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.231116801500320 -(PID.TID 0000.0001) System time: 2.3376450799405575 -(PID.TID 0000.0001) Wall clock time: 93.787815093994141 +(PID.TID 0000.0001) User time: 43.621741443872452 +(PID.TID 0000.0001) System time: 1.2177898585796356 +(PID.TID 0000.0001) Wall clock time: 45.130968570709229 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.226119548082352 -(PID.TID 0000.0001) System time: 2.3376450799405575 -(PID.TID 0000.0001) Wall clock time: 93.784599304199219 +(PID.TID 0000.0001) User time: 43.619669258594513 +(PID.TID 0000.0001) System time: 1.2177390232682228 +(PID.TID 0000.0001) Wall clock time: 45.128850221633911 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14796906709671021 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.15002942085266113 +(PID.TID 0000.0001) User time: 7.3882192373275757E-002 +(PID.TID 0000.0001) System time: 1.2193039059638977E-002 +(PID.TID 0000.0001) Wall clock time: 0.10437417030334473 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.14696961641311646 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.14866828918457031 +(PID.TID 0000.0001) User time: 7.2717428207397461E-002 +(PID.TID 0000.0001) System time: 1.2171268463134766E-002 +(PID.TID 0000.0001) Wall clock time: 0.10326457023620605 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.29859948158264160E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.31242179870605469E-002 +(PID.TID 0000.0001) User time: 5.3286552429199219E-004 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 5.2523612976074219E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.60200619697570801E-002 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 7.72635936737060547E-002 +(PID.TID 0000.0001) User time: 4.2614907026290894E-002 +(PID.TID 0000.0001) System time: 1.6210973262786865E-004 +(PID.TID 0000.0001) Wall clock time: 4.2823791503906250E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 27.522805988788605 -(PID.TID 0000.0001) System time: 0.73688794672489166 -(PID.TID 0000.0001) Wall clock time: 28.324351549148560 +(PID.TID 0000.0001) User time: 14.677392899990082 +(PID.TID 0000.0001) System time: 0.37426181137561798 +(PID.TID 0000.0001) Wall clock time: 15.052700996398926 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 15.610616564750671 -(PID.TID 0000.0001) System time: 0.43293496966362000 -(PID.TID 0000.0001) Wall clock time: 16.092278718948364 +(PID.TID 0000.0001) User time: 8.5013382136821747 +(PID.TID 0000.0001) System time: 0.22025804966688156 +(PID.TID 0000.0001) Wall clock time: 8.7222330570220947 (PID.TID 0000.0001) No. starts: 284 (PID.TID 0000.0001) No. stops: 284 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 19.470047712326050 -(PID.TID 0000.0001) System time: 0.55691492557525635 -(PID.TID 0000.0001) Wall clock time: 20.073683500289917 +(PID.TID 0000.0001) User time: 10.995115935802460 +(PID.TID 0000.0001) System time: 0.27803296595811844 +(PID.TID 0000.0001) Wall clock time: 11.275197267532349 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 42.130589842796326 -(PID.TID 0000.0001) System time: 0.92585915327072144 -(PID.TID 0000.0001) Wall clock time: 43.156897783279419 +(PID.TID 0000.0001) User time: 16.562729835510254 +(PID.TID 0000.0001) System time: 0.46617099642753601 +(PID.TID 0000.0001) Wall clock time: 17.032117843627930 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.5003371238708496 -(PID.TID 0000.0001) System time: 9.99927520751953125E-004 -(PID.TID 0000.0001) Wall clock time: 4.5096683502197266 +(PID.TID 0000.0001) User time: 2.4805164337158203 +(PID.TID 0000.0001) System time: 9.2995166778564453E-004 +(PID.TID 0000.0001) Wall clock time: 2.4817004203796387 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.78485250473022461 -(PID.TID 0000.0001) System time: 2.00009346008300781E-003 -(PID.TID 0000.0001) Wall clock time: 0.79444456100463867 +(PID.TID 0000.0001) User time: 0.39783698320388794 +(PID.TID 0000.0001) System time: 4.6014785766601562E-005 +(PID.TID 0000.0001) Wall clock time: 0.39798307418823242 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.80588138103485107 -(PID.TID 0000.0001) System time: 1.99985504150390625E-003 -(PID.TID 0000.0001) Wall clock time: 0.80473375320434570 +(PID.TID 0000.0001) User time: 0.42883896827697754 +(PID.TID 0000.0001) System time: 1.8469095230102539E-003 +(PID.TID 0000.0001) Wall clock time: 0.43077373504638672 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.95635986328125000E-004 -(PID.TID 0000.0001) System time: 9.99927520751953125E-004 -(PID.TID 0000.0001) Wall clock time: 7.30037689208984375E-004 +(PID.TID 0000.0001) User time: 5.7810544967651367E-004 +(PID.TID 0000.0001) System time: 2.0265579223632812E-006 +(PID.TID 0000.0001) Wall clock time: 5.8841705322265625E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.78588545322418213 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.79327630996704102 +(PID.TID 0000.0001) User time: 0.48283100128173828 +(PID.TID 0000.0001) System time: 1.7297267913818359E-004 +(PID.TID 0000.0001) Wall clock time: 0.48314189910888672 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1578177213668823 +(PID.TID 0000.0001) User time: 0.77104991674423218 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1589088439941406 +(PID.TID 0000.0001) Wall clock time: 0.77114462852478027 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.69832229614257813E-002 -(PID.TID 0000.0001) System time: 9.99927520751953125E-004 -(PID.TID 0000.0001) Wall clock time: 7.08160400390625000E-002 +(PID.TID 0000.0001) User time: 5.1961719989776611E-002 +(PID.TID 0000.0001) System time: 3.7499666213989258E-003 +(PID.TID 0000.0001) Wall clock time: 8.6850881576538086E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.49934005737304688E-002 -(PID.TID 0000.0001) System time: 4.99916076660156250E-003 -(PID.TID 0000.0001) Wall clock time: 5.03702163696289063E-002 +(PID.TID 0000.0001) User time: 2.8160095214843750E-002 +(PID.TID 0000.0001) System time: 8.6070299148559570E-003 +(PID.TID 0000.0001) Wall clock time: 6.0828208923339844E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 3.99780273437500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.73776054382324219E-003 +(PID.TID 0000.0001) User time: 1.6837120056152344E-003 +(PID.TID 0000.0001) System time: 4.1961669921875000E-005 +(PID.TID 0000.0001) Wall clock time: 1.7395019531250000E-003 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 15.763604164123535 -(PID.TID 0000.0001) System time: 1.89969539642333984E-002 -(PID.TID 0000.0001) Wall clock time: 15.817852973937988 +(PID.TID 0000.0001) User time: 8.7958774566650391 +(PID.TID 0000.0001) System time: 1.5648007392883301E-002 +(PID.TID 0000.0001) Wall clock time: 8.8252689838409424 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.99899291992187500E-002 -(PID.TID 0000.0001) System time: 4.99892234802246094E-003 -(PID.TID 0000.0001) Wall clock time: 6.47399425506591797E-002 +(PID.TID 0000.0001) User time: 2.4500846862792969E-002 +(PID.TID 0000.0001) System time: 5.8580636978149414E-003 +(PID.TID 0000.0001) Wall clock time: 3.6231994628906250E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.09912872314453125E-002 -(PID.TID 0000.0001) System time: 2.00009346008300781E-003 -(PID.TID 0000.0001) Wall clock time: 6.34369850158691406E-002 +(PID.TID 0000.0001) User time: 2.7720451354980469E-002 +(PID.TID 0000.0001) System time: 2.1660327911376953E-003 +(PID.TID 0000.0001) Wall clock time: 3.6036014556884766E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 84.614133834838867 -(PID.TID 0000.0001) System time: 2.29959487915039063E-002 -(PID.TID 0000.0001) Wall clock time: 84.830935955047607 +(PID.TID 0000.0001) User time: 40.454349517822266 +(PID.TID 0000.0001) System time: 6.8957924842834473E-002 +(PID.TID 0000.0001) Wall clock time: 40.855437040328979 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -2748,9 +3156,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 17640 +(PID.TID 0000.0001) // No. barriers = 17792 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 17640 +(PID.TID 0000.0001) // Total barrier spins = 17792 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/OpenAD/results/output_oadm.txt b/verification/global_oce_latlon/results/output_oadm.txt similarity index 66% rename from verification/OpenAD/results/output_oadm.txt rename to verification/global_oce_latlon/results/output_oadm.txt index 49ac229005..49d2ed1646 100644 --- a/verification/OpenAD/results/output_oadm.txt +++ b/verification/global_oce_latlon/results/output_oadm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65t -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Fri Mar 11 11:35:39 EST 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node374 +(PID.TID 0000.0001) // Build date: Tue Jul 25 22:52:12 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -30,10 +30,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ (PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ -(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ -(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ -(PID.TID 0000.0001) sNx = 90 ; /* Tile size in X */ -(PID.TID 0000.0001) sNy = 40 ; /* Tile size in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ (PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ (PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ (PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ @@ -41,15 +41,17 @@ (PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ (PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ (PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ -(PID.TID 0000.0001) nTiles = 1 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ (PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ (PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ (PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -57,20 +59,47 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Mapping of tiles to threads (PID.TID 0000.0001) // ====================================================== -(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 1) +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) (PID.TID 0000.0001) (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile connectvity table (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) (PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 (PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 (PID.TID 0000.0001) (PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data @@ -164,7 +193,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -286,6 +315,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -307,9 +342,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -330,36 +374,48 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># names for ctrl_pack/unpack (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES -(PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', -(PID.TID 0000.0001) > costname = 'ecco_cost', -(PID.TID 0000.0001) > scalname = 'ecco_scal', -(PID.TID 0000.0001) > maskname = 'ecco_mask', -(PID.TID 0000.0001) > metaname = 'ecco_meta', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -389,13 +445,23 @@ (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML (PID.TID 0000.0001) > grdchk_eps = 1.d-2, -(PID.TID 0000.0001) > iGloPos = 71, -(PID.TID 0000.0001) > jGloPos = 39, +(PID.TID 0000.0001) > iGloTile = 2, +(PID.TID 0000.0001) > jGloTile = 2, +(PID.TID 0000.0001) > iGloPos = 26, +(PID.TID 0000.0001) >#jGloPos = 19, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=17 +(PID.TID 0000.0001) ># avoids this. This is similar to input_ad but here we use jGloTile = 2. +(PID.TID 0000.0001) > jGloPos = 17, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) >### nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 7, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -404,13 +470,13 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 7 (PID.TID 0000.0001) Increment: 1 (PID.TID 0000.0001) grdchkWhichProc: 0 -(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) iLocTile = 2 , jLocTile = 2 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check configuration >>> END <<< @@ -460,14 +526,14 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 58618 -(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 2315 -(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 2206 -(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 2149 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67878 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 -(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 29309 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 @@ -526,10 +592,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 58618 -(PID.TID 0000.0001) ctrl-wet 8: atmos 58618 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 +(PID.TID 0000.0001) ctrl-wet 8: atmos 17302 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 58618 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67878 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 @@ -549,8 +955,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 2 -(PID.TID 0000.0001) ctrl_init: control vector length: 58618 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 67878 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -558,17 +964,48 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) Total number of ocean points per tile: (PID.TID 0000.0001) -------------------------------------- -(PID.TID 0000.0001) snx*sny*nr = 54000 +(PID.TID 0000.0001) snx*sny*nr = 13500 (PID.TID 0000.0001) (PID.TID 0000.0001) Number of ocean points per tile: (PID.TID 0000.0001) -------------------------------- -(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 029309 026636 027324 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008651 007584 008016 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 010278 009360 009834 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -600,9 +1037,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -693,12 +1150,15 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; -(PID.TID 0000.0001) phi0Ref = /* reference (P,geo) potential at origin rF(1) (m^2/s^2) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 @@ -754,28 +1214,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -797,7 +1260,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -806,10 +1269,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -851,8 +1314,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -873,41 +1337,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -971,6 +1413,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -990,14 +1438,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1014,6 +1465,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1095,9 +1549,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1149,11 +1600,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1164,6 +1624,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.661835748792270E-04 (PID.TID 0000.0001) ; @@ -1336,15 +1802,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1657,7 +2114,6 @@ (PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ (PID.TID 0000.0001) 8.667769319778081E+10, /* J = 5 */ (PID.TID 0000.0001) 9.886336479107465E+10, /* J = 6 */ -OAD: TIMING: stamp 0: 1457715102.366518 (PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ (PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ (PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ @@ -1694,7 +2150,7 @@ OAD: TIMING: stamp 0: 1457715102.366518 (PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ -(PID.TID 0000.0001) 3.450614146649838E+14 +(PID.TID 0000.0001) 3.450614146649749E+14 (PID.TID 0000.0001) ; (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End of Model config. summary @@ -1730,6 +2186,7 @@ OAD: TIMING: stamp 0: 1457715102.366518 (PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +OAD: TIMING: stamp 0: 1690340614.362698 (PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ (PID.TID 0000.0001) 1.000000000000000E-12 (PID.TID 0000.0001) ; @@ -1775,8 +2232,13 @@ OAD: TIMING: stamp 0: 1457715102.366518 (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1794,52 +2256,55 @@ OAD: TIMING: stamp 0: 1457715102.366518 (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.34235980506514E-14 5.04325900480939E+00 -OAD: TIMING: stamp 1: 1457715108.170436 -OAD: TIMING: delta stamps 1-0: 5.803918 -OAD: TIMING: stamp 2: 1457715117.020017 -OAD: TIMING: delta stamps 2-1: 8.849581 -OAD: TIMING: delta stamps 2-0: 14.653499 -OAD: TIMING: ratio stamps (2-1)/(1-0): 8.849581e+06/5.803918e+06=1.524760e+00 - cg2d: Sum(rhs),rhsMax = -2.00325867005802E-14 6.29008403763971E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -5.21804821573824E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -7.43849426498855E-15 6.29008403763954E+00 OAD: DT+ 1048576 OAD: IT+ 17825792 OAD: IT+ 34603008 OAD: DT+ 17825792 OAD: IT+ 51380224 - cg2d: Sum(rhs),rhsMax = -1.62647673107585E-14 6.70003306073551E+00 OAD: IT+ 68157440 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 6.70003306073569E+00 +OAD: TIMING: stamp 1: 1690340618.338944 +OAD: TIMING: delta stamps 1-0: 3.976246 +OAD: TIMING: stamp 2: 1690340624.350184 +OAD: TIMING: delta stamps 2-1: 6.011240 +OAD: TIMING: delta stamps 2-0: 9.987486 +OAD: TIMING: ratio stamps (2-1)/(1-0): 6.011240e+06/3.976246e+06=1.511788e+00 (PID.TID 0000.0001) %CHECKPOINT 4 ckptA - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -3.00211244752546E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -8.31447541024821E-15 7.86983807726865E-04 - cg2d: Sum(rhs),rhsMax = 1.95052307638832E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -9.75781955236954E-17 1.33029393421495E-03 + cg2d: Sum(rhs),rhsMax = 7.88258347483861E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 7.86983807726857E-04 + cg2d: Sum(rhs),rhsMax = 1.05471187339390E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 1.33029393421496E-03 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 6.98746616123458E-15 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = -1.95217106369050E-14 1.40191055720657E-03 + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 1.40191055720658E-03 ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 8.04687744759401E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 8.04687744759400E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj - grad-res closest next position: - grad-res 0 2283 71 39 1 1 1 + grad-res exact position met: + grad-res 0 526 26 17 1 2 2 (PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2283 29309 1 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 - ph-grd -->hit<-- 73 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 73 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 526 29309 1 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 0 1 + ph-grd -->hit<-- 26 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 26 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1849,16 +2314,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20806142867025E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 3.95586341461751E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.95746197029223E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -1.44502465548868E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -9.10382880192628E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -2.72004641033163E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.55351295663786E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708291728D+06 - local fc = 0.804687708291728D+06 - global fc = 0.804687708291728D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708291728E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997193242D+06 +(PID.TID 0000.0001) local fc = 0.804687766750477D+06 +(PID.TID 0000.0001) global fc = 0.804687766750477D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766750477E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1868,28 +2336,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.34235980506514E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.00325867005802E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.45636844198316E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -9.10382880192628E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -6.77236045021345E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 9.10382880192628E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.99840144432528E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953394813D+06 +(PID.TID 0000.0001) local fc = 0.804687722952049D+06 +(PID.TID 0000.0001) global fc = 0.804687722952049D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722952049E+05 grad-res ------------------------------- - grad-res 0 1 73 39 1 1 1 1 8.04687744759E+05 8.04687708292E+05 8.04687744759E+05 - grad-res 0 1 1 2283 0 1 1 1 -3.65575776577E+00 -1.82338361628E+00 5.01229640171E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.65575776577278E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.82338361628354E+00 + grad-res 0 1 26 17 1 2 2 1 8.04687744759E+05 8.04687766750E+05 8.04687722952E+05 + grad-res 0 1 1 526 0 2 2 1 2.18992150034E+00 2.18992143637E+00 2.92152290138E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.18992150034475E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.18992143636569E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2284 29309 2 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2283 2 - ph-grd -->hit<-- 74 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 74 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 527 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 526 2 + ph-grd -->hit<-- 30 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 30 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1899,16 +2370,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20806142867025E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 3.93921006924813E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.86864412832222E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -1.03805852802452E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -3.49720252756924E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 4.32986979603811E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708500864D+06 - local fc = 0.804687708500864D+06 - global fc = 0.804687708500864D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708500864E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003984692549D+06 +(PID.TID 0000.0001) local fc = 0.804687754249784D+06 +(PID.TID 0000.0001) global fc = 0.804687754249784D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687754249784E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1918,28 +2392,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.34235980506514E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.00325867005802E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.45636844198316E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -9.10382880192628E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -7.66053886991358E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -5.77315972805081E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003965894237D+06 +(PID.TID 0000.0001) local fc = 0.804687735451472D+06 +(PID.TID 0000.0001) global fc = 0.804687735451472D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687735451472E+05 grad-res ------------------------------- - grad-res 0 2 74 39 1 1 1 1 8.04687744759E+05 8.04687708501E+05 8.04687744759E+05 - grad-res 0 2 2 2284 0 1 1 1 -3.63465932636E+00 -1.81292685447E+00 5.01211340132E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63465932636325E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81292685447261E+00 + grad-res 0 2 30 17 1 2 2 1 8.04687744759E+05 8.04687754250E+05 8.04687735451E+05 + grad-res 0 2 2 527 0 2 2 1 9.39915722870E-01 9.39915596973E-01 1.33944963232E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.39915722870128E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.39915596973151E-01 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2285 29309 3 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2284 3 - ph-grd -->hit<-- 75 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 75 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 528 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 527 3 + ph-grd -->hit<-- 31 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 31 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1949,16 +2426,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20806142867025E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.69346783660285E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.29885555036446E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -3.04374581094891E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -8.32667268468867E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 6.43929354282591E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687708506845D+06 - local fc = 0.804687708506845D+06 - global fc = 0.804687708506845D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687708506845E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003980663090D+06 +(PID.TID 0000.0001) local fc = 0.804687750220325D+06 +(PID.TID 0000.0001) global fc = 0.804687750220325D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750220325E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1968,28 +2448,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.34235980506514E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.00325867005802E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.45636844198316E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.22124532708767E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 4.66293670342566E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -2.08721928629529E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003969921301D+06 +(PID.TID 0000.0001) local fc = 0.804687739478537D+06 +(PID.TID 0000.0001) global fc = 0.804687739478537D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739478537E+05 grad-res ------------------------------- - grad-res 0 3 75 39 1 1 1 1 8.04687744759E+05 8.04687708507E+05 8.04687744759E+05 - grad-res 0 3 3 2285 0 1 1 1 -3.63418584966E+00 -1.81262780097E+00 5.01228644885E-01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.63418584965922E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.81262780097313E+00 + grad-res 0 3 31 17 1 2 2 1 8.04687744759E+05 8.04687750220E+05 8.04687739479E+05 + grad-res 0 3 3 528 0 2 2 1 5.37089397045E-01 5.37089433055E-01 -6.70464879171E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.37089397045413E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.37089433055371E-01 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2286 29309 4 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2285 4 - ph-grd -->hit<-- 76 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 76 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 529 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 528 4 + ph-grd -->hit<-- 32 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 32 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -1999,16 +2482,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.94534968531468E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -9.51322354225681E-15 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.21107854248004E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -6.49480469405717E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.99760216648792E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687712788332D+06 - local fc = 0.804687712788332D+06 - global fc = 0.804687712788332D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687712788332E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997321381D+06 +(PID.TID 0000.0001) local fc = 0.804687766878617D+06 +(PID.TID 0000.0001) global fc = 0.804687766878617D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766878617E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2018,28 +2504,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.34235980506514E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.00325867005802E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.45636844198316E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.38618022510673E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 5.77315972805081E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687744759401D+06 - local fc = 0.804687744759401D+06 - global fc = 0.804687744759401D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687744759401E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953270627D+06 +(PID.TID 0000.0001) local fc = 0.804687722827862D+06 +(PID.TID 0000.0001) global fc = 0.804687722827862D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722827862E+05 grad-res ------------------------------- - grad-res 0 4 76 39 1 1 1 1 8.04687744759E+05 8.04687712788E+05 8.04687744759E+05 - grad-res 0 4 4 2286 0 1 1 1 -1.65446443816E-02 -1.59855342354E+00 -9.56205973767E+01 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.65446443816105E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.59855342353694E+00 + grad-res 0 4 32 17 1 2 2 1 8.04687744759E+05 8.04687766879E+05 8.04687722828E+05 + grad-res 0 4 4 529 0 2 2 1 2.20253900008E+00 2.20253771986E+00 5.81250153009E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.20253900008494E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.20253771985881E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2287 29309 5 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2286 5 - ph-grd -->hit<-- 85 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 85 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 530 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 529 5 + ph-grd -->hit<-- 36 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2049,16 +2538,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.10921296989386E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -4.99947305776516E-15 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -3.08190972742040E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 5.10702591327572E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687749551412D+06 - local fc = 0.804687749551412D+06 - global fc = 0.804687749551412D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687749551412E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205004049861352D+06 +(PID.TID 0000.0001) local fc = 0.804687819418588D+06 +(PID.TID 0000.0001) global fc = 0.804687819418588D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687819418588E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2068,28 +2560,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20528587110869E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 5.17710874170518E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.22818422099158E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = 9.43689570931383E-16 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.71924713249427E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.33066907387547E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687740147925D+06 - local fc = 0.804687740147925D+06 - global fc = 0.804687740147925D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687740147925E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003900726674D+06 +(PID.TID 0000.0001) local fc = 0.804687670283909D+06 +(PID.TID 0000.0001) global fc = 0.804687670283909D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687670283909E+05 grad-res ------------------------------- - grad-res 0 5 85 39 1 1 1 1 8.04687744759E+05 8.04687749551E+05 8.04687740148E+05 - grad-res 0 5 5 2287 0 1 1 1 4.70174487688E-01 4.70174365910E-01 2.59006246672E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.70174487687899E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.70174365909770E-01 + grad-res 0 5 36 17 1 2 2 1 8.04687744759E+05 8.04687819419E+05 8.04687670284E+05 + grad-res 0 5 5 530 0 2 2 1 7.45673438915E+00 7.45673393249E+00 6.12419525092E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.45673438915078E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.45673393248580E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2288 29309 6 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2287 6 - ph-grd -->hit<-- 86 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 86 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 531 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 530 6 + ph-grd -->hit<-- 37 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2099,16 +2594,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20528587110869E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.84126627675607E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.88876692064355E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.27942664743352E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.22124532708767E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.10942374678780E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687751308914D+06 - local fc = 0.804687751308914D+06 - global fc = 0.804687751308914D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687751308914E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089995D+06 + --> objf_test(bi,bj) = 0.205004038769940D+06 +(PID.TID 0000.0001) local fc = 0.804687808327177D+06 +(PID.TID 0000.0001) global fc = 0.804687808327177D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687808327177E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2118,28 +2616,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20251031354712E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.04815070353948E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -3.20091175787240E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -1.30798150088651E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.33066907387547E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687738384548D+06 - local fc = 0.804687738384548D+06 - global fc = 0.804687738384548D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687738384548E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089991D+06 + --> objf_test(bi,bj) = 0.205003911816880D+06 +(PID.TID 0000.0001) local fc = 0.804687681374114D+06 +(PID.TID 0000.0001) global fc = 0.804687681374114D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687681374114E+05 grad-res ------------------------------- - grad-res 0 6 86 39 1 1 1 1 8.04687744759E+05 8.04687751309E+05 8.04687738385E+05 - grad-res 0 6 6 2288 0 1 1 1 6.46218052670E-01 6.46218325710E-01 -4.22520227028E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.46218052669726E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.46218325709924E-01 + grad-res 0 6 37 17 1 2 2 1 8.04687744759E+05 8.04687808327E+05 8.04687681374E+05 + grad-res 0 6 6 531 0 2 2 1 6.34765354129E+00 6.34765317664E+00 5.74465573999E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.34765354128635E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.34765317663550E+00 (PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2289 29309 7 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2288 7 - ph-grd -->hit<-- 87 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 87 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 532 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 531 7 + ph-grd -->hit<-- 38 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 38 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2149,16 +2650,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20528587110869E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.96130914129367E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -3.53536644404073E-15 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -1.99770755493489E-14 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -3.60822483003176E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687749828302D+06 - local fc = 0.804687749828302D+06 - global fc = 0.804687749828302D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687749828302E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089996D+06 + --> objf_test(bi,bj) = 0.205004039670558D+06 +(PID.TID 0000.0001) local fc = 0.804687809227796D+06 +(PID.TID 0000.0001) global fc = 0.804687809227796D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687809227796E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2168,28 +2672,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20528587110869E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.26395030395099E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -2.29920249505966E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -2.06432093641240E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687739866778D+06 - local fc = 0.804687739866778D+06 - global fc = 0.804687739866778D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739866778E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089990D+06 + --> objf_test(bi,bj) = 0.205003910916544D+06 +(PID.TID 0000.0001) local fc = 0.804687680473777D+06 +(PID.TID 0000.0001) global fc = 0.804687680473777D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687680473777E+05 grad-res ------------------------------- - grad-res 0 7 87 39 1 1 1 1 8.04687744759E+05 8.04687749828E+05 8.04687739867E+05 - grad-res 0 7 7 2289 0 1 1 1 4.98076169749E-01 4.98076213989E-01 -8.88226654450E-08 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.98076169748954E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.98076213989407E-01 + grad-res 0 7 38 17 1 2 2 1 8.04687744759E+05 8.04687809228E+05 8.04687680474E+05 + grad-res 0 7 7 532 0 2 2 1 6.43770134172E+00 6.43770095776E+00 5.96433897826E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.43770134172468E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.43770095775835E+00 (PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= - ph-test icomp, ncvarcomp, ichknum 2290 29309 8 - ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2289 8 - ph-grd -->hit<-- 88 39 1 1 -(PID.TID 0000.0001) grdchk pos: i,j,k= 88 39 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 + ph-test icomp, ncvarcomp, ichknum 533 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 532 8 + ph-grd -->hit<-- 39 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 39 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2199,16 +2706,19 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20389809232790E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 4.60603777341362E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.31145094783847E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = -3.64638874650325E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -2.55351295663786E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.99440505513849E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -5.77315972805081E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687750914794D+06 - local fc = 0.804687750914794D+06 - global fc = 0.804687750914794D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750914794E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804090017D+06 + --> objf_test(bi,bj) = 0.205004042215454D+06 +(PID.TID 0000.0001) local fc = 0.804687811772713D+06 +(PID.TID 0000.0001) global fc = 0.804687811772713D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687811772713E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2218,22 +2728,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.20528587110869E-14 2.53674886388737E+00 - cg2d: Sum(rhs),rhsMax = 2.63331023653279E-14 5.04325900480939E+00 - cg2d: Sum(rhs),rhsMax = -1.66013036650980E-14 6.29008403763971E+00 - cg2d: Sum(rhs),rhsMax = 1.50227053019591E-15 6.70003306073551E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -2.27595720048157E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.01030295240889E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 6.70003306073569E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.804687738782400D+06 - local fc = 0.804687738782400D+06 - global fc = 0.804687738782400D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687738782400E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089968D+06 + --> objf_test(bi,bj) = 0.205003908381863D+06 +(PID.TID 0000.0001) local fc = 0.804687677939074D+06 +(PID.TID 0000.0001) global fc = 0.804687677939074D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687677939074E+05 grad-res ------------------------------- - grad-res 0 8 88 39 1 1 1 1 8.04687744759E+05 8.04687750915E+05 8.04687738782E+05 - grad-res 0 8 8 2290 0 1 1 1 6.06619515888E-01 6.06619723840E-01 -3.42804446829E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759401E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 6.06619515887818E-01 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.06619723839685E-01 + grad-res 0 8 39 17 1 2 2 1 8.04687744759E+05 8.04687811773E+05 8.04687677939E+05 + grad-res 0 8 8 533 0 2 2 1 6.69168724574E+00 6.69168197201E+00 7.88101599980E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.69168724573576E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.69168197200634E+00 (PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2246,192 +2759,198 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 73 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468770829173E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -1.8233836162835E+00 -3.6557577657728E+00 5.0122964017062E-01 +(PID.TID 0000.0001) grdchk output (p): 1 26 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468776675048E+05 8.0468772295205E+05 +(PID.TID 0000.0001) grdchk output (g): 1 2.1899214363657E+00 2.1899215003448E+00 2.9215229013779E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 74 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468770850086E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -1.8129268544726E+00 -3.6346593263633E+00 5.0121134013223E-01 +(PID.TID 0000.0001) grdchk output (p): 2 30 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468775424978E+05 8.0468773545147E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.3991559697315E-01 9.3991572287013E-01 1.3394496323205E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 75 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468770850684E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -1.8126278009731E+00 -3.6341858496592E+00 5.0122864488532E-01 +(PID.TID 0000.0001) grdchk output (p): 3 31 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468775022033E+05 8.0468773947854E+05 +(PID.TID 0000.0001) grdchk output (g): 3 5.3708943305537E-01 5.3708939704541E-01 -6.7046487917111E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 76 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468771278833E+05 8.0468774475940E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -1.5985534235369E+00 -1.6544644381610E-02 -9.5620597376741E+01 +(PID.TID 0000.0001) grdchk output (p): 4 32 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468776687862E+05 8.0468772282786E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.2025377198588E+00 2.2025390000849E+00 5.8125015300892E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 85 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468774955141E+05 8.0468774014792E+05 -(PID.TID 0000.0001) grdchk output (g): 5 4.7017436590977E-01 4.7017448768790E-01 2.5900624667230E-07 +(PID.TID 0000.0001) grdchk output (p): 5 36 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468781941859E+05 8.0468767028391E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.4567339324858E+00 7.4567343891508E+00 6.1241952509228E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 6 86 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468775130891E+05 8.0468773838455E+05 -(PID.TID 0000.0001) grdchk output (g): 6 6.4621832570992E-01 6.4621805266973E-01 -4.2252022702804E-07 +(PID.TID 0000.0001) grdchk output (p): 6 37 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468780832718E+05 8.0468768137411E+05 +(PID.TID 0000.0001) grdchk output (g): 6 6.3476531766355E+00 6.3476535412863E+00 5.7446557399921E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 7 87 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468774982830E+05 8.0468773986678E+05 -(PID.TID 0000.0001) grdchk output (g): 7 4.9807621398941E-01 4.9807616974895E-01 -8.8822665444965E-08 +(PID.TID 0000.0001) grdchk output (p): 7 38 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468780922780E+05 8.0468768047378E+05 +(PID.TID 0000.0001) grdchk output (g): 7 6.4377009577584E+00 6.4377013417247E+00 5.9643389782593E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 8 88 39 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468775091479E+05 8.0468773878240E+05 -(PID.TID 0000.0001) grdchk output (g): 8 6.0661972383969E-01 6.0661951588782E-01 -3.4280444682899E-07 +(PID.TID 0000.0001) grdchk output (p): 8 39 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468781177271E+05 8.0468767793907E+05 +(PID.TID 0000.0001) grdchk output (g): 8 6.6916819720063E+00 6.6916872457358E+00 7.8810159998000E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.3808379724557E+01 +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.5228786244996E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 64.894133324269205 -(PID.TID 0000.0001) System time: 1.0528400149196386 -(PID.TID 0000.0001) Wall clock time: 66.138792037963867 +(PID.TID 0000.0001) User time: 40.898254823172465 +(PID.TID 0000.0001) System time: 0.72334497747942805 +(PID.TID 0000.0001) Wall clock time: 42.798789978027344 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.16197500610724092 -(PID.TID 0000.0001) System time: 1.39979999512434006E-002 -(PID.TID 0000.0001) Wall clock time: 0.20958185195922852 +(PID.TID 0000.0001) User time: 0.13449899875558913 +(PID.TID 0000.0001) System time: 3.5695001017302275E-002 +(PID.TID 0000.0001) Wall clock time: 0.60699796676635742 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 4.8222671896219254 -(PID.TID 0000.0001) System time: 0.96185397356748581 -(PID.TID 0000.0001) Wall clock time: 5.8039088249206543 +(PID.TID 0000.0001) User time: 2.9874020069837570 +(PID.TID 0000.0001) System time: 0.58907900378108025 +(PID.TID 0000.0001) Wall clock time: 3.9762380123138428 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.3478038758039474 -(PID.TID 0000.0001) System time: 3.79947274923324585E-002 -(PID.TID 0000.0001) Wall clock time: 1.3895068168640137 +(PID.TID 0000.0001) User time: 0.93090231716632843 +(PID.TID 0000.0001) System time: 5.4338030517101288E-002 +(PID.TID 0000.0001) Wall clock time: 1.1042797565460205 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 54.259750217199326 -(PID.TID 0000.0001) System time: 0.95685387402772903 -(PID.TID 0000.0001) Wall clock time: 55.349870443344116 +(PID.TID 0000.0001) User time: 33.635853126645088 +(PID.TID 0000.0001) System time: 0.56941493600606918 +(PID.TID 0000.0001) Wall clock time: 34.546782255172729 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 54.256749957799911 -(PID.TID 0000.0001) System time: 0.95585388690233231 -(PID.TID 0000.0001) Wall clock time: 55.347183465957642 +(PID.TID 0000.0001) User time: 33.633706837892532 +(PID.TID 0000.0001) System time: 0.56936888396739960 +(PID.TID 0000.0001) Wall clock time: 34.544605016708374 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10698938369750977 -(PID.TID 0000.0001) System time: 1.99890136718750000E-003 -(PID.TID 0000.0001) Wall clock time: 0.10450077056884766 +(PID.TID 0000.0001) User time: 6.9913178682327271E-002 +(PID.TID 0000.0001) System time: 5.1540508866310120E-003 +(PID.TID 0000.0001) Wall clock time: 8.8630676269531250E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.10599374771118164 -(PID.TID 0000.0001) System time: 1.99890136718750000E-003 -(PID.TID 0000.0001) Wall clock time: 0.10311174392700195 +(PID.TID 0000.0001) User time: 6.8762034177780151E-002 +(PID.TID 0000.0001) System time: 5.1210001111030579E-003 +(PID.TID 0000.0001) Wall clock time: 8.7509632110595703E-002 +(PID.TID 0000.0001) No. starts: 71 +(PID.TID 0000.0001) No. stops: 71 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.1298737525939941E-004 +(PID.TID 0000.0001) System time: 1.3023614883422852E-005 +(PID.TID 0000.0001) Wall clock time: 5.2905082702636719E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.09846115112304688E-002 -(PID.TID 0000.0001) System time: 1.99900567531585693E-003 -(PID.TID 0000.0001) Wall clock time: 6.49042129516601563E-002 +(PID.TID 0000.0001) User time: 4.1427105665206909E-002 +(PID.TID 0000.0001) System time: 1.3829916715621948E-003 +(PID.TID 0000.0001) Wall clock time: 4.2854547500610352E-002 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 10.488387227058411 -(PID.TID 0000.0001) System time: 0.12698000669479370 -(PID.TID 0000.0001) Wall clock time: 10.638856649398804 +(PID.TID 0000.0001) User time: 6.6596977710723877 +(PID.TID 0000.0001) System time: 6.6282019019126892E-002 +(PID.TID 0000.0001) Wall clock time: 6.7264490127563477 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.201544582843781 -(PID.TID 0000.0001) System time: 0.16597403585910797 -(PID.TID 0000.0001) Wall clock time: 16.406868219375610 +(PID.TID 0000.0001) User time: 10.776220470666885 +(PID.TID 0000.0001) System time: 0.14712599664926529 +(PID.TID 0000.0001) Wall clock time: 10.925431013107300 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 23.344469428062439 -(PID.TID 0000.0001) System time: 0.36394494771957397 -(PID.TID 0000.0001) Wall clock time: 23.763034820556641 +(PID.TID 0000.0001) User time: 13.725170254707336 +(PID.TID 0000.0001) System time: 0.24813997000455856 +(PID.TID 0000.0001) Wall clock time: 13.975260734558105 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.3043444156646729 -(PID.TID 0000.0001) System time: 3.00003588199615479E-003 -(PID.TID 0000.0001) Wall clock time: 4.3259868621826172 +(PID.TID 0000.0001) User time: 2.4812054038047791 +(PID.TID 0000.0001) System time: 9.9399685859680176E-004 +(PID.TID 0000.0001) Wall clock time: 2.4823095798492432 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.70089328289031982 -(PID.TID 0000.0001) System time: 0.20596897602081299 -(PID.TID 0000.0001) Wall clock time: 0.90873098373413086 +(PID.TID 0000.0001) User time: 0.39686328172683716 +(PID.TID 0000.0001) System time: 1.0880455374717712E-003 +(PID.TID 0000.0001) Wall clock time: 0.39801645278930664 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.76887834072113037 -(PID.TID 0000.0001) System time: 1.99902057647705078E-003 -(PID.TID 0000.0001) Wall clock time: 0.76366043090820313 +(PID.TID 0000.0001) User time: 0.42757356166839600 +(PID.TID 0000.0001) System time: 1.9810199737548828E-003 +(PID.TID 0000.0001) Wall clock time: 0.42963600158691406 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.00271606445312500E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.27653503417968750E-004 +(PID.TID 0000.0001) User time: 5.7560205459594727E-004 +(PID.TID 0000.0001) System time: 9.0003013610839844E-006 +(PID.TID 0000.0001) Wall clock time: 5.8245658874511719E-004 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.44593322277069092 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.45436501502990723 +(PID.TID 0000.0001) User time: 0.48233079910278320 +(PID.TID 0000.0001) System time: 9.6899271011352539E-004 +(PID.TID 0000.0001) Wall clock time: 0.48342084884643555 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1268240213394165 +(PID.TID 0000.0001) User time: 0.77092266082763672 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1285562515258789 +(PID.TID 0000.0001) Wall clock time: 0.77105093002319336 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.69911193847656250E-002 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 4.52256202697753906E-002 +(PID.TID 0000.0001) User time: 3.2958924770355225E-002 +(PID.TID 0000.0001) System time: 5.9550404548645020E-003 +(PID.TID 0000.0001) Wall clock time: 0.17225909233093262 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.89950180053710938E-002 -(PID.TID 0000.0001) System time: 1.99997425079345703E-003 -(PID.TID 0000.0001) Wall clock time: 4.84097003936767578E-002 +(PID.TID 0000.0001) User time: 4.3878376483917236E-002 +(PID.TID 0000.0001) System time: 1.2197017669677734E-002 +(PID.TID 0000.0001) Wall clock time: 0.10256338119506836 (PID.TID 0000.0001) No. starts: 71 (PID.TID 0000.0001) No. stops: 71 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 3.00025939941406250E-003 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 2.21323966979980469E-003 +(PID.TID 0000.0001) User time: 1.7390251159667969E-003 +(PID.TID 0000.0001) System time: 3.6001205444335938E-005 +(PID.TID 0000.0001) Wall clock time: 1.7826557159423828E-003 (PID.TID 0000.0001) No. starts: 17 (PID.TID 0000.0001) No. stops: 17 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 8.7986631393432617 -(PID.TID 0000.0001) System time: 2.99950242042541504E-002 -(PID.TID 0000.0001) Wall clock time: 8.8496291637420654 +(PID.TID 0000.0001) User time: 5.9712274074554443 +(PID.TID 0000.0001) System time: 2.3562014102935791E-002 +(PID.TID 0000.0001) Wall clock time: 6.0112929344177246 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.99949645996093750E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.94580459594726563E-002 +(PID.TID 0000.0001) User time: 2.5646209716796875E-002 +(PID.TID 0000.0001) System time: 4.7619938850402832E-003 +(PID.TID 0000.0001) Wall clock time: 3.6576032638549805E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.69956588745117188E-002 -(PID.TID 0000.0001) System time: 1.00004673004150391E-003 -(PID.TID 0000.0001) Wall clock time: 2.87029743194580078E-002 +(PID.TID 0000.0001) User time: 2.7779579162597656E-002 +(PID.TID 0000.0001) System time: 2.1290183067321777E-003 +(PID.TID 0000.0001) Wall clock time: 3.7117958068847656E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 51.054237365722656 -(PID.TID 0000.0001) System time: 4.59929704666137695E-002 -(PID.TID 0000.0001) Wall clock time: 51.217422962188721 +(PID.TID 0000.0001) User time: 31.751627922058105 +(PID.TID 0000.0001) System time: 6.8093955516815186E-002 +(PID.TID 0000.0001) Wall clock time: 32.130488872528076 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -2448,10 +2967,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Min. Y spins = 1000000000 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 17510 +(PID.TID 0000.0001) // No. barriers = 17686 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 17510 +(PID.TID 0000.0001) // Total barrier spins = 17686 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_oce_latlon/results/output_tap_adj.txt b/verification/global_oce_latlon/results/output_tap_adj.txt new file mode 100644 index 0000000000..5fe9099fb6 --- /dev/null +++ b/verification/global_oce_latlon/results/output_tap_adj.txt @@ -0,0 +1,3021 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Tue Jul 25 03:57:55 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef = 15*20., +(PID.TID 0000.0001) > sRef = 15*35., +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rotationPeriod=86400., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > eosType = 'JMD95Z', +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.05, +(PID.TID 0000.0001) > hFacMindr=50., +(PID.TID 0000.0001) ># set precision of data files +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-19, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0 = 0, +(PID.TID 0000.0001) > nTimeSteps = 4, +(PID.TID 0000.0001) ># 100 years of integration will yield a reasonable flow field +(PID.TID 0000.0001) ># startTime = 0., +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTMom = 1200.0, +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200.0, +(PID.TID 0000.0001) > deltaTClock = 43200.0, +(PID.TID 0000.0001) ># if you are using a version later than checkpoint45d on the main branch +(PID.TID 0000.0001) ># you can uncomment the following line and increase the time step +(PID.TID 0000.0001) ># deltaTtracer and deltaTClock to 172800.0 as well to speed up the +(PID.TID 0000.0001) ># asynchronous time stepping +(PID.TID 0000.0001) ># deltaTfreesurf = 172800.0, +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq= 311040000., +(PID.TID 0000.0001) > dumpFreq = 2592000., +(PID.TID 0000.0001) > adjDumpFreq = 2592000., +(PID.TID 0000.0001) > monitorFreq = 0., +(PID.TID 0000.0001) > adjMonitorFreq = 0., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000.0, +(PID.TID 0000.0001) ># 6 months restoring timescale for salinity +(PID.TID 0000.0001) > tauSaltClimRelax = 15552000.0, +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > dySpacing=4., +(PID.TID 0000.0001) > dxSpacing=4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathymetry.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_t.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_s.bin', +(PID.TID 0000.0001) > zonalWindFile= 'trenberth_taux.bin', +(PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', +(PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on +(PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) +(PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) S/R INI_PARMS: No request for barotropic solver +(PID.TID 0000.0001) S/R INI_PARMS: => Use implicitFreeSurface as default +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useGGL90 = .FALSE., +(PID.TID 0000.0001) > useKPP = .FALSE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > useMNC = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/ggl90 compiled but not used ( useGGL90 = F ) + pkg/kpp compiled but not used ( useKPP = F ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-12, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) > GM_isopycK = 1.0D+3, +(PID.TID 0000.0001) > GM_background_K = 1.0D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0.D0, +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > iGloTile = 2, +(PID.TID 0000.0001) > jGloTile = 2, +(PID.TID 0000.0001) > iGloPos = 26, +(PID.TID 0000.0001) >#jGloPos = 19, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=17 +(PID.TID 0000.0001) ># avoids this. This is similar to input_ad but here we use jGloTile = 2. +(PID.TID 0000.0001) > jGloPos = 17, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) >### nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 7, +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 7 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 2 , jLocTile = 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67878 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 +(PID.TID 0000.0001) ctrl-wet 8: atmos 17302 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67878 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2254 2102 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2215 2058 2104 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2178 2027 2070 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2142 1987 2029 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2114 1959 2004 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2076 1918 1959 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2048 1887 1925 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 1999 1831 1869 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 1948 1771 1808 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 1850 1653 1705 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 1655 1404 1458 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 1372 1118 1164 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 828 623 671 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 67878 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 13500 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008651 007584 008016 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 010278 009360 009834 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.272205216643040E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-19 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.962666600296178E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.450614146649749E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.84297022087776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) %CHECKPOINT 4 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -1.84297022087776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -1.84297022087776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 7.86983807726830E-04 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 1.33029393421496E-03 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 1.40191055720658E-03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.84297022087776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 8.04687744759400E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res exact position met: + grad-res 0 526 26 17 1 2 2 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 526 29309 1 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 0 1 + ph-grd -->hit<-- 26 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 26 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.75335310107039E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997193242D+06 +(PID.TID 0000.0001) local fc = 0.804687766750477D+06 +(PID.TID 0000.0001) global fc = 0.804687766750477D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766750477E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.82076576038526E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953394813D+06 +(PID.TID 0000.0001) local fc = 0.804687722952049D+06 +(PID.TID 0000.0001) global fc = 0.804687722952049D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722952049E+05 +grad-res ------------------------------- + grad-res 0 1 26 17 1 2 2 1 8.04687744759E+05 8.04687766750E+05 8.04687722952E+05 + grad-res 0 1 1 526 0 2 2 1 2.18992150034E+00 2.18992143637E+00 2.92152290138E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.18992150034475E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.18992143636569E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 527 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 526 2 + ph-grd -->hit<-- 30 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 30 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.99440505513849E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -5.88418203051333E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003984692549D+06 +(PID.TID 0000.0001) local fc = 0.804687754249784D+06 +(PID.TID 0000.0001) global fc = 0.804687754249784D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687754249784E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.49720252756924E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.99440505513849E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003965894237D+06 +(PID.TID 0000.0001) local fc = 0.804687735451472D+06 +(PID.TID 0000.0001) global fc = 0.804687735451472D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687735451472E+05 +grad-res ------------------------------- + grad-res 0 2 30 17 1 2 2 1 8.04687744759E+05 8.04687754250E+05 8.04687735451E+05 + grad-res 0 2 2 527 0 2 2 1 9.39915722870E-01 9.39915596973E-01 1.33944963787E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.39915722870128E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.39915596973151E-01 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 528 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 527 3 + ph-grd -->hit<-- 31 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 31 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.94289029309402E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003980663090D+06 +(PID.TID 0000.0001) local fc = 0.804687750220325D+06 +(PID.TID 0000.0001) global fc = 0.804687750220325D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750220325E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -2.55351295663786E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.31006316905768E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003969921301D+06 +(PID.TID 0000.0001) local fc = 0.804687739478537D+06 +(PID.TID 0000.0001) global fc = 0.804687739478537D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739478537E+05 +grad-res ------------------------------- + grad-res 0 3 31 17 1 2 2 1 8.04687744759E+05 8.04687750220E+05 8.04687739479E+05 + grad-res 0 3 3 528 0 2 2 1 5.37089397047E-01 5.37089438876E-01 -7.78807265345E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.37089397047225E-01 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.37089438876137E-01 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 529 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 528 4 + ph-grd -->hit<-- 32 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 32 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -3.49720252756924E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -9.88098491916389E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.99840144432528E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997321381D+06 +(PID.TID 0000.0001) local fc = 0.804687766878617D+06 +(PID.TID 0000.0001) global fc = 0.804687766878617D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766878617E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953270627D+06 +(PID.TID 0000.0001) local fc = 0.804687722827862D+06 +(PID.TID 0000.0001) global fc = 0.804687722827862D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722827862E+05 +grad-res ------------------------------- + grad-res 0 4 32 17 1 2 2 1 8.04687744759E+05 8.04687766879E+05 8.04687722828E+05 + grad-res 0 4 4 529 0 2 2 1 2.20253900008E+00 2.20253771986E+00 5.81250154674E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.20253900008494E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.20253771985881E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 530 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 529 5 + ph-grd -->hit<-- 36 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.25455201782643E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.79776202205539E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205004049861352D+06 +(PID.TID 0000.0001) local fc = 0.804687819418588D+06 +(PID.TID 0000.0001) global fc = 0.804687819418588D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687819418588E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.05471187339390E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003900726674D+06 +(PID.TID 0000.0001) local fc = 0.804687670283909D+06 +(PID.TID 0000.0001) global fc = 0.804687670283909D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687670283909E+05 +grad-res ------------------------------- + grad-res 0 5 36 17 1 2 2 1 8.04687744759E+05 8.04687819419E+05 8.04687670284E+05 + grad-res 0 5 5 530 0 2 2 1 7.45673438915E+00 7.45673393249E+00 6.12419567281E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.45673438915081E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.45673393248580E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 531 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 530 6 + ph-grd -->hit<-- 37 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.17683640610267E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 2.60902410786912E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.27675647831893E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089995D+06 + --> objf_test(bi,bj) = 0.205004038769940D+06 +(PID.TID 0000.0001) local fc = 0.804687808327177D+06 +(PID.TID 0000.0001) global fc = 0.804687808327177D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687808327177E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.22124532708767E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089991D+06 + --> objf_test(bi,bj) = 0.205003911816880D+06 +(PID.TID 0000.0001) local fc = 0.804687681374114D+06 +(PID.TID 0000.0001) global fc = 0.804687681374114D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687681374114E+05 +grad-res ------------------------------- + grad-res 0 6 37 17 1 2 2 1 8.04687744759E+05 8.04687808327E+05 8.04687681374E+05 + grad-res 0 6 6 531 0 2 2 1 6.34765354129E+00 6.34765317664E+00 5.74465155445E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.34765354128608E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.34765317663550E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 532 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 531 7 + ph-grd -->hit<-- 38 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 38 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 4.27435864480685E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089996D+06 + --> objf_test(bi,bj) = 0.205004039670558D+06 +(PID.TID 0000.0001) local fc = 0.804687809227796D+06 +(PID.TID 0000.0001) global fc = 0.804687809227796D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687809227796E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.55111512312578E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.10942374678780E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 5.77315972805081E-15 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089990D+06 + --> objf_test(bi,bj) = 0.205003910916544D+06 +(PID.TID 0000.0001) local fc = 0.804687680473777D+06 +(PID.TID 0000.0001) global fc = 0.804687680473777D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687680473777E+05 +grad-res ------------------------------- + grad-res 0 7 38 17 1 2 2 1 8.04687744759E+05 8.04687809228E+05 8.04687680474E+05 + grad-res 0 7 7 532 0 2 2 1 6.43770134172E+00 6.43770095776E+00 5.96433663569E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.43770134172453E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.43770095775835E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 533 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 532 8 + ph-grd -->hit<-- 39 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 39 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -7.32747196252603E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.08721928629529E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804090017D+06 + --> objf_test(bi,bj) = 0.205004042215454D+06 +(PID.TID 0000.0001) local fc = 0.804687811772713D+06 +(PID.TID 0000.0001) global fc = 0.804687811772713D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687811772713E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.20934381900406E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089968D+06 + --> objf_test(bi,bj) = 0.205003908381863D+06 +(PID.TID 0000.0001) local fc = 0.804687677939074D+06 +(PID.TID 0000.0001) global fc = 0.804687677939074D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687677939074E+05 +grad-res ------------------------------- + grad-res 0 8 39 17 1 2 2 1 8.04687744759E+05 8.04687811773E+05 8.04687677939E+05 + grad-res 0 8 8 533 0 2 2 1 6.69168724574E+00 6.69168197201E+00 7.88101598759E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 6.69168724573575E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 6.69168197200634E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 26 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468776675048E+05 8.0468772295205E+05 +(PID.TID 0000.0001) grdchk output (g): 1 2.1899214363657E+00 2.1899215003448E+00 2.9215229013779E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 30 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468775424978E+05 8.0468773545147E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.3991559697315E-01 9.3991572287013E-01 1.3394496378716E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 31 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468775022033E+05 8.0468773947854E+05 +(PID.TID 0000.0001) grdchk output (g): 3 5.3708943887614E-01 5.3708939704722E-01 -7.7880726534474E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 32 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468776687862E+05 8.0468772282786E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.2025377198588E+00 2.2025390000849E+00 5.8125015467425E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 36 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468781941859E+05 8.0468767028391E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.4567339324858E+00 7.4567343891508E+00 6.1241956728075E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 6 37 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468780832718E+05 8.0468768137411E+05 +(PID.TID 0000.0001) grdchk output (g): 6 6.3476531766355E+00 6.3476535412861E+00 5.7446515544513E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 7 38 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468780922780E+05 8.0468768047378E+05 +(PID.TID 0000.0001) grdchk output (g): 7 6.4377009577584E+00 6.4377013417245E+00 5.9643366356887E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 8 39 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468781177271E+05 8.0468767793907E+05 +(PID.TID 0000.0001) grdchk output (g): 8 6.6916819720063E+00 6.6916872457358E+00 7.8810159875875E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.5256631882052E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.808654146967456 +(PID.TID 0000.0001) System time: 0.43568199360743165 +(PID.TID 0000.0001) Wall clock time: 17.317790031433105 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.5339000653475523E-002 +(PID.TID 0000.0001) System time: 7.7159998472779989E-003 +(PID.TID 0000.0001) Wall clock time: 6.4998149871826172E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 12.721057251095772 +(PID.TID 0000.0001) System time: 8.7109729647636414E-003 +(PID.TID 0000.0001) Wall clock time: 12.763081073760986 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6277584731578827E-002 +(PID.TID 0000.0001) System time: 1.1079423129558563E-003 +(PID.TID 0000.0001) Wall clock time: 3.7623882293701172E-002 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.7630975246429443E-002 +(PID.TID 0000.0001) System time: 1.1209733784198761E-003 +(PID.TID 0000.0001) Wall clock time: 3.9017915725708008E-002 +(PID.TID 0000.0001) No. starts: 76 +(PID.TID 0000.0001) No. stops: 76 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.0344148874282837E-004 +(PID.TID 0000.0001) System time: 7.9870223999023438E-006 +(PID.TID 0000.0001) Wall clock time: 3.8766860961914062E-004 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6113817691802979E-002 +(PID.TID 0000.0001) System time: 3.0805170536041260E-004 +(PID.TID 0000.0001) Wall clock time: 1.6480684280395508E-002 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.6618407368659973 +(PID.TID 0000.0001) System time: 7.4796751141548157E-004 +(PID.TID 0000.0001) Wall clock time: 2.6698219776153564 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.8026328682899475 +(PID.TID 0000.0001) System time: 2.1102651953697205E-004 +(PID.TID 0000.0001) Wall clock time: 3.8130850791931152 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.7135322839021683 +(PID.TID 0000.0001) System time: 1.0105967521667480E-004 +(PID.TID 0000.0001) Wall clock time: 4.7255547046661377 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.80988600850105286 +(PID.TID 0000.0001) System time: 1.0820142924785614E-003 +(PID.TID 0000.0001) Wall clock time: 0.81301522254943848 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15380933880805969 +(PID.TID 0000.0001) System time: 3.1944364309310913E-005 +(PID.TID 0000.0001) Wall clock time: 0.15430212020874023 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15073117613792419 +(PID.TID 0000.0001) System time: 2.8993934392929077E-005 +(PID.TID 0000.0001) Wall clock time: 0.15116453170776367 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9342045783996582E-004 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 4.0388107299804688E-004 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12369385361671448 +(PID.TID 0000.0001) System time: 2.3990869522094727E-005 +(PID.TID 0000.0001) Wall clock time: 0.12417626380920410 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.22009587287902832 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 0.22075891494750977 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.8788270950317383E-003 +(PID.TID 0000.0001) System time: 1.9389837980270386E-003 +(PID.TID 0000.0001) Wall clock time: 1.0863542556762695E-002 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6277760267257690E-002 +(PID.TID 0000.0001) System time: 3.0409805476665497E-003 +(PID.TID 0000.0001) Wall clock time: 1.9399881362915039E-002 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.3020038604736328E-002 +(PID.TID 0000.0001) System time: 6.9737434387207031E-006 +(PID.TID 0000.0001) Wall clock time: 1.3069152832031250E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.0198116302490234E-002 +(PID.TID 0000.0001) System time: 1.9150078296661377E-003 +(PID.TID 0000.0001) Wall clock time: 1.2162923812866211E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 12.532314300537109 +(PID.TID 0000.0001) System time: 3.1001001596450806E-002 +(PID.TID 0000.0001) Wall clock time: 12.603947162628174 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.44882678985595703 +(PID.TID 0000.0001) System time: 1.6971945762634277E-002 +(PID.TID 0000.0001) Wall clock time: 0.46761512756347656 +(PID.TID 0000.0001) No. starts: 17 +(PID.TID 0000.0001) No. stops: 17 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 11.991822719573975 +(PID.TID 0000.0001) System time: 3.3449828624725342E-003 +(PID.TID 0000.0001) Wall clock time: 12.026318788528442 +(PID.TID 0000.0001) No. starts: 17 +(PID.TID 0000.0001) No. stops: 17 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 11.990252017974854 +(PID.TID 0000.0001) System time: 3.3420026302337646E-003 +(PID.TID 0000.0001) Wall clock time: 12.024749517440796 +(PID.TID 0000.0001) No. starts: 68 +(PID.TID 0000.0001) No. stops: 68 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 9.7799301147460938E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.8633766174316406E-004 +(PID.TID 0000.0001) No. starts: 17 +(PID.TID 0000.0001) No. stops: 17 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 19798 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 19798 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_oce_latlon/results/output_tap_tlm.txt b/verification/global_oce_latlon/results/output_tap_tlm.txt new file mode 100644 index 0000000000..195dbcea55 --- /dev/null +++ b/verification/global_oce_latlon/results/output_tap_tlm.txt @@ -0,0 +1,3179 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Tue Jul 25 05:21:02 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef = 15*20., +(PID.TID 0000.0001) > sRef = 15*35., +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rotationPeriod=86400., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > eosType = 'JMD95Z', +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.05, +(PID.TID 0000.0001) > hFacMindr=50., +(PID.TID 0000.0001) ># set precision of data files +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-19, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0 = 0, +(PID.TID 0000.0001) > nTimeSteps = 4, +(PID.TID 0000.0001) ># 100 years of integration will yield a reasonable flow field +(PID.TID 0000.0001) ># startTime = 0., +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTMom = 1200.0, +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200.0, +(PID.TID 0000.0001) > deltaTClock = 43200.0, +(PID.TID 0000.0001) ># if you are using a version later than checkpoint45d on the main branch +(PID.TID 0000.0001) ># you can uncomment the following line and increase the time step +(PID.TID 0000.0001) ># deltaTtracer and deltaTClock to 172800.0 as well to speed up the +(PID.TID 0000.0001) ># asynchronous time stepping +(PID.TID 0000.0001) ># deltaTfreesurf = 172800.0, +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq= 311040000., +(PID.TID 0000.0001) > dumpFreq = 2592000., +(PID.TID 0000.0001) > adjDumpFreq = 2592000., +(PID.TID 0000.0001) > monitorFreq = 0., +(PID.TID 0000.0001) > adjMonitorFreq = 0., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000.0, +(PID.TID 0000.0001) ># 6 months restoring timescale for salinity +(PID.TID 0000.0001) > tauSaltClimRelax = 15552000.0, +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > dySpacing=4., +(PID.TID 0000.0001) > dxSpacing=4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathymetry.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_t.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_s.bin', +(PID.TID 0000.0001) > zonalWindFile= 'trenberth_taux.bin', +(PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', +(PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on +(PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) +(PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) S/R INI_PARMS: No request for barotropic solver +(PID.TID 0000.0001) S/R INI_PARMS: => Use implicitFreeSurface as default +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useGGL90 = .FALSE., +(PID.TID 0000.0001) > useKPP = .FALSE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > useMNC = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/ggl90 compiled but not used ( useGGL90 = F ) + pkg/kpp compiled but not used ( useKPP = F ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-12, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) > GM_isopycK = 1.0D+3, +(PID.TID 0000.0001) > GM_background_K = 1.0D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0.D0, +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># the bounds are commented out to reproduce old results with +(PID.TID 0000.0001) ># the CPP-flag DISABLE_CTRL_THETA_LIMIT defined +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > iGloTile = 2, +(PID.TID 0000.0001) > jGloTile = 2, +(PID.TID 0000.0001) > iGloPos = 26, +(PID.TID 0000.0001) >#jGloPos = 19, +(PID.TID 0000.0001) ># This original setting would start the gradient check for temperatures +(PID.TID 0000.0001) ># that are below the freezing point in the inital conditions. Because of +(PID.TID 0000.0001) ># allowFreezing=True in data&PARM01 and the unphysical nature of this +(PID.TID 0000.0001) ># freezing parameterisation, the FD gradients depend very much on the +(PID.TID 0000.0001) ># whether they are evaluated above and below freezing or not leading +(PID.TID 0000.0001) ># to inconsistent results. Moving the starting point to jGloPos=17 +(PID.TID 0000.0001) ># avoids this. This is similar to input_ad but here we use jGloTile = 2. +(PID.TID 0000.0001) > jGloPos = 17, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) >### nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 7, +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 7 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 2 , jLocTile = 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 67878 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 +(PID.TID 0000.0001) ctrl-wet 8: atmos 17302 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 67878 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2254 2102 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2215 2058 2104 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2178 2027 2070 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2142 1987 2029 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2114 1959 2004 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2076 1918 1959 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2048 1887 1925 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 1999 1831 1869 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 1948 1771 1808 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 1850 1653 1705 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 1655 1404 1458 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 1372 1118 1164 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 828 623 671 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 67878 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 13500 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008651 007584 008016 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 010278 009360 009834 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.272205216643040E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-19 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.962666600296178E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.450614146649749E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.84297022087776E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 8.04687744759400E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm + grad-res exact position met: + grad-res 0 526 26 17 1 2 2 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 526 29309 1 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 0 1 + ph-grd -->hit<-- 26 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 26 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 5.54403402842947E-04 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = -1.29749207013019E-16 1.48753605789983E-03 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = 4.56154139489476E-16 2.62825723555073E-03 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = 1.71158169854285E-16 3.80930933610090E-03 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.75335310107039E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997193242D+06 +(PID.TID 0000.0001) local fc = 0.804687766750477D+06 +(PID.TID 0000.0001) global fc = 0.804687766750477D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766750477E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.82076576038526E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953394813D+06 +(PID.TID 0000.0001) local fc = 0.804687722952049D+06 +(PID.TID 0000.0001) global fc = 0.804687722952049D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722952049E+05 +grad-res ------------------------------- + grad-res 0 1 26 17 1 2 2 1 8.04687744759E+05 8.04687766750E+05 8.04687722952E+05 + grad-res 0 1 1 526 0 2 2 1 2.18992150034E+00 2.18992143637E+00 2.92152293468E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 2.18992150034475E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 2.18992143636569E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 527 29309 2 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 526 2 + ph-grd -->hit<-- 30 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 30 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 8.21825246744012E-17 2.02870038769232E-03 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = 2.37606473011042E-16 4.92035801804279E-03 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = 5.35119770303582E-16 7.75708697783220E-03 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = 7.19880043458680E-16 9.95471690060028E-03 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.99440505513849E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -5.88418203051333E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003984692549D+06 +(PID.TID 0000.0001) local fc = 0.804687754249784D+06 +(PID.TID 0000.0001) global fc = 0.804687754249784D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687754249784E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.49720252756924E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -6.99440505513849E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003965894237D+06 +(PID.TID 0000.0001) local fc = 0.804687735451472D+06 +(PID.TID 0000.0001) global fc = 0.804687735451472D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687735451472E+05 +grad-res ------------------------------- + grad-res 0 2 30 17 1 2 2 1 8.04687744759E+05 8.04687754250E+05 8.04687735451E+05 + grad-res 0 2 2 527 0 2 2 1 9.39915722870E-01 9.39915596973E-01 1.33944963676E-07 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 9.39915722870128E-01 +(PID.TID 0000.0001) TLM finite-diff_grad = 9.39915596973151E-01 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 528 29309 3 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 527 3 + ph-grd -->hit<-- 31 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 31 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 2.22911966663020E-16 2.82159903134140E-03 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = 1.95827517009178E-16 6.50936489520574E-03 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = -2.85141403685244E-17 9.68344170254348E-03 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = 5.58128392000997E-17 1.16124083899507E-02 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.13242748511766E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.94289029309402E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003980663090D+06 +(PID.TID 0000.0001) local fc = 0.804687750220325D+06 +(PID.TID 0000.0001) global fc = 0.804687750220325D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687750220325E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -2.55351295663786E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.31006316905768E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003969921301D+06 +(PID.TID 0000.0001) local fc = 0.804687739478537D+06 +(PID.TID 0000.0001) global fc = 0.804687739478537D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687739478537E+05 +grad-res ------------------------------- + grad-res 0 3 31 17 1 2 2 1 8.04687744759E+05 8.04687750220E+05 8.04687739479E+05 + grad-res 0 3 3 528 0 2 2 1 5.37089397047E-01 5.37089438876E-01 -7.78807280888E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 5.37089397047224E-01 +(PID.TID 0000.0001) TLM finite-diff_grad = 5.37089438876137E-01 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 529 29309 4 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 528 4 + ph-grd -->hit<-- 32 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 32 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 1.03874328371627E-03 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = -4.63655001514724E-17 2.71118679449808E-03 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = -3.85524724925695E-16 4.67248426111502E-03 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = -1.94036121939042E-16 6.62397381311862E-03 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -3.49720252756924E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -9.88098491916389E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.99840144432528E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003997321381D+06 +(PID.TID 0000.0001) local fc = 0.804687766878617D+06 +(PID.TID 0000.0001) global fc = 0.804687766878617D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687766878617E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003953270627D+06 +(PID.TID 0000.0001) local fc = 0.804687722827862D+06 +(PID.TID 0000.0001) global fc = 0.804687722827862D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687722827862E+05 +grad-res ------------------------------- + grad-res 0 4 32 17 1 2 2 1 8.04687744759E+05 8.04687766879E+05 8.04687722828E+05 + grad-res 0 4 4 529 0 2 2 1 2.20253900008E+00 2.20253771986E+00 5.81250154674E-07 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 2.20253900008494E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 2.20253771985881E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 530 29309 5 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 529 5 + ph-grd -->hit<-- 36 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 36 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 3.91239181855617E-03 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = 3.96232351256007E-16 9.46691539562384E-03 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = 4.90755007771381E-16 1.50322221219013E-02 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = 3.78852426318431E-16 1.95634727134222E-02 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.25455201782643E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.79776202205539E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205004049861352D+06 +(PID.TID 0000.0001) local fc = 0.804687819418588D+06 +(PID.TID 0000.0001) global fc = 0.804687819418588D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687819418588E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 1.05471187339390E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003900726674D+06 +(PID.TID 0000.0001) local fc = 0.804687670283909D+06 +(PID.TID 0000.0001) global fc = 0.804687670283909D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687670283909E+05 +grad-res ------------------------------- + grad-res 0 5 36 17 1 2 2 1 8.04687744759E+05 8.04687819419E+05 8.04687670284E+05 + grad-res 0 5 5 530 0 2 2 1 7.45673438915E+00 7.45673393249E+00 6.12419570611E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 7.45673438915081E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 7.45673393248580E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 6 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 531 29309 6 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 530 6 + ph-grd -->hit<-- 37 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 37 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.71792967072571E-02 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = 2.13056050107446E-16 3.06540683415875E-02 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = 2.02262997474854E-17 3.55579702287665E-02 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = -2.82942885700826E-17 3.52000512352269E-02 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.17683640610267E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 2.60902410786912E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.27675647831893E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089995D+06 + --> objf_test(bi,bj) = 0.205004038769940D+06 +(PID.TID 0000.0001) local fc = 0.804687808327177D+06 +(PID.TID 0000.0001) global fc = 0.804687808327177D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687808327177E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -1.22124532708767E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.57571741713036E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089991D+06 + --> objf_test(bi,bj) = 0.205003911816880D+06 +(PID.TID 0000.0001) local fc = 0.804687681374114D+06 +(PID.TID 0000.0001) global fc = 0.804687681374114D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687681374114E+05 +grad-res ------------------------------- + grad-res 0 6 37 17 1 2 2 1 8.04687744759E+05 8.04687808327E+05 8.04687681374E+05 + grad-res 0 6 6 531 0 2 2 1 6.34765354129E+00 6.34765317664E+00 5.74465155445E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 6.34765354128608E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 6.34765317663550E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 6 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 7 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 532 29309 7 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 531 7 + ph-grd -->hit<-- 38 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 38 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 6.46184494801361E-17 1.75536190409290E-02 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = -2.27864038910024E-16 3.12121321929302E-02 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = -5.85110031172537E-16 3.61914440027464E-02 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = -8.98566431765252E-16 3.58147192833817E-02 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 4.27435864480685E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089996D+06 + --> objf_test(bi,bj) = 0.205004039670558D+06 +(PID.TID 0000.0001) local fc = 0.804687809227796D+06 +(PID.TID 0000.0001) global fc = 0.804687809227796D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687809227796E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 5.55111512312578E-16 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.10942374678780E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 5.77315972805081E-15 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089990D+06 + --> objf_test(bi,bj) = 0.205003910916544D+06 +(PID.TID 0000.0001) local fc = 0.804687680473777D+06 +(PID.TID 0000.0001) global fc = 0.804687680473777D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687680473777E+05 +grad-res ------------------------------- + grad-res 0 7 38 17 1 2 2 1 8.04687744759E+05 8.04687809228E+05 8.04687680474E+05 + grad-res 0 7 7 532 0 2 2 1 6.43770134172E+00 6.43770095776E+00 5.96433659128E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 6.43770134172453E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 6.43770095775835E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 7 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 8 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 533 29309 8 + ph-grd _loc: bi, bj, icomptest, ichknum 2 2 532 8 + ph-grd -->hit<-- 39 17 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 39 17 1 ; bi,bj= 2 2 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 6.50521303491303E-18 9.33697782198878E-03 + cg2d: Sum(rhs),rhsMax = 7.66053886991358E-15 2.53674886388750E+00 + cg2d: Sum(rhs),rhsMax = 1.59621664844178E-16 1.94795394320868E-02 + cg2d: Sum(rhs),rhsMax = 5.38458166943201E-15 5.04325900480937E+00 + cg2d: Sum(rhs),rhsMax = 2.66374921252532E-16 2.61336665404473E-02 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 6.29008403763991E+00 + cg2d: Sum(rhs),rhsMax = 6.27210956782864E-17 2.85259560676653E-02 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.70003306073582E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089993D+06 + --> objf_test(bi,bj) = 0.205003975202165D+06 +(PID.TID 0000.0001) local fc = 0.804687744759400D+06 +(PID.TID 0000.0001) global fc = 0.804687744759400D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -7.32747196252603E-15 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.08721928629529E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804090017D+06 + --> objf_test(bi,bj) = 0.205004042215454D+06 +(PID.TID 0000.0001) local fc = 0.804687811772713D+06 +(PID.TID 0000.0001) global fc = 0.804687811772713D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 8.04687811772713E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 2.53674886388737E+00 + cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 5.04325900480939E+00 + cg2d: Sum(rhs),rhsMax = -2.20934381900406E-14 6.29008403763954E+00 + cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 6.70003306073569E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.221431048007422D+06 + --> objf_test(bi,bj) = 0.241096917459820D+06 + --> objf_test(bi,bj) = 0.137155804089968D+06 + --> objf_test(bi,bj) = 0.205003908381863D+06 +(PID.TID 0000.0001) local fc = 0.804687677939074D+06 +(PID.TID 0000.0001) global fc = 0.804687677939074D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 8.04687677939074E+05 +grad-res ------------------------------- + grad-res 0 8 39 17 1 2 2 1 8.04687744759E+05 8.04687811773E+05 8.04687677939E+05 + grad-res 0 8 8 533 0 2 2 1 6.69168724574E+00 6.69168197201E+00 7.88101599869E-07 +(PID.TID 0000.0001) TLM ref_cost_function = 8.04687744759400E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = 6.69168724573576E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 6.69168197200634E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 8 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 26 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 8.0468774475940E+05 8.0468776675048E+05 8.0468772295205E+05 +(PID.TID 0000.0001) grdchk output (g): 1 2.1899214363657E+00 2.1899215003448E+00 2.9215229346846E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 30 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 8.0468774475940E+05 8.0468775424978E+05 8.0468773545147E+05 +(PID.TID 0000.0001) grdchk output (g): 2 9.3991559697315E-01 9.3991572287013E-01 1.3394496367614E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 31 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 8.0468774475940E+05 8.0468775022033E+05 8.0468773947854E+05 +(PID.TID 0000.0001) grdchk output (g): 3 5.3708943887614E-01 5.3708939704722E-01 -7.7880728088786E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 32 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 8.0468774475940E+05 8.0468776687862E+05 8.0468772282786E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.2025377198588E+00 2.2025390000849E+00 5.8125015467425E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 36 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 8.0468774475940E+05 8.0468781941859E+05 8.0468767028391E+05 +(PID.TID 0000.0001) grdchk output (g): 5 7.4567339324858E+00 7.4567343891508E+00 6.1241957061142E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 6 37 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 6 8.0468774475940E+05 8.0468780832718E+05 8.0468768137411E+05 +(PID.TID 0000.0001) grdchk output (g): 6 6.3476531766355E+00 6.3476535412861E+00 5.7446515544513E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 7 38 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 7 8.0468774475940E+05 8.0468780922780E+05 8.0468768047378E+05 +(PID.TID 0000.0001) grdchk output (g): 7 6.4377009577584E+00 6.4377013417245E+00 5.9643365912798E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 8 39 17 1 2 2 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 8 8.0468774475940E+05 8.0468781177271E+05 8.0468767793907E+05 +(PID.TID 0000.0001) grdchk output (g): 8 6.6916819720063E+00 6.6916872457358E+00 7.8810159986897E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 8 ratios = 3.5256631916967E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 23.184564031893387 +(PID.TID 0000.0001) System time: 6.4181997440755367E-002 +(PID.TID 0000.0001) Wall clock time: 23.364871025085449 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.1943000638857484E-002 +(PID.TID 0000.0001) System time: 4.8989995848387480E-003 +(PID.TID 0000.0001) Wall clock time: 5.7224035263061523E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 9.2749968171119690E-003 +(PID.TID 0000.0001) System time: 3.8870004937052727E-003 +(PID.TID 0000.0001) Wall clock time: 1.3273954391479492E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.1131994426250458E-002 +(PID.TID 0000.0001) System time: 1.0350001975893974E-003 +(PID.TID 0000.0001) Wall clock time: 1.2243986129760742E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 23.112178400158882 +(PID.TID 0000.0001) System time: 5.4350997321307659E-002 +(PID.TID 0000.0001) Wall clock time: 23.282096147537231 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.74522251635789871 +(PID.TID 0000.0001) System time: 3.0798003077507019E-002 +(PID.TID 0000.0001) Wall clock time: 0.78018569946289062 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 22.233837924897671 +(PID.TID 0000.0001) System time: 1.0806992650032043E-002 +(PID.TID 0000.0001) Wall clock time: 22.308135986328125 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 22.172221302986145 +(PID.TID 0000.0001) System time: 6.8229939788579941E-003 +(PID.TID 0000.0001) Wall clock time: 22.242299795150757 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 22.171031691133976 +(PID.TID 0000.0001) System time: 6.8219937384128571E-003 +(PID.TID 0000.0001) Wall clock time: 22.241113185882568 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0835169851779938E-002 +(PID.TID 0000.0001) System time: 2.1129958331584930E-003 +(PID.TID 0000.0001) Wall clock time: 5.3257703781127930E-002 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 4.9644321203231812E-002 +(PID.TID 0000.0001) System time: 2.1099969744682312E-003 +(PID.TID 0000.0001) Wall clock time: 5.2115678787231445E-002 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.4216384887695312E-004 +(PID.TID 0000.0001) System time: 1.0002404451370239E-006 +(PID.TID 0000.0001) Wall clock time: 5.5694580078125000E-004 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8484344482421875E-002 +(PID.TID 0000.0001) System time: 4.2004510760307312E-005 +(PID.TID 0000.0001) Wall clock time: 2.8720140457153320E-002 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.7846313491463661 +(PID.TID 0000.0001) System time: 3.9972364902496338E-006 +(PID.TID 0000.0001) Wall clock time: 4.7991108894348145 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.6718415170907974 +(PID.TID 0000.0001) System time: 1.7059985548257828E-003 +(PID.TID 0000.0001) Wall clock time: 6.6928055286407471 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.1577133685350418 +(PID.TID 0000.0001) System time: 2.9060002416372299E-003 +(PID.TID 0000.0001) Wall clock time: 8.1836230754852295 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.3920378088951111 +(PID.TID 0000.0001) System time: 1.7004087567329407E-005 +(PID.TID 0000.0001) Wall clock time: 1.3955202102661133 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.26057380437850952 +(PID.TID 0000.0001) System time: 1.4998018741607666E-005 +(PID.TID 0000.0001) Wall clock time: 0.26141786575317383 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.26138883829116821 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 0.26212024688720703 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.7470798492431641E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.7435035705566406E-004 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.23493331670761108 +(PID.TID 0000.0001) System time: 8.9947134256362915E-006 +(PID.TID 0000.0001) Wall clock time: 0.23572754859924316 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.31636756658554077 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.31726932525634766 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.4712762832641602E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.6447257995605469E-004 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.5620751380920410E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.7060203552246094E-004 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 1.4942884445190430E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.4970302581787109E-003 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 28430 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 28430 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_oce_latlon/results/output_tlm.txt.gz b/verification/global_oce_latlon/results/output_tlm.txt.gz new file mode 100644 index 0000000000..c621fe9f34 Binary files /dev/null and b/verification/global_oce_latlon/results/output_tlm.txt.gz differ diff --git a/verification/OpenAD/run/.gitignore b/verification/global_oce_latlon/run/.gitignore similarity index 100% rename from verification/OpenAD/run/.gitignore rename to verification/global_oce_latlon/run/.gitignore diff --git a/verification/global_ocean.90x40x15/code/CPP_OPTIONS.h b/verification/global_ocean.90x40x15/code/CPP_OPTIONS.h index 33e7e8a324..8adb4e7a52 100644 --- a/verification/global_ocean.90x40x15/code/CPP_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code/CPP_OPTIONS.h @@ -73,6 +73,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #undef EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +88,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#define ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation diff --git a/verification/global_ocean.90x40x15/code/GGL90_OPTIONS.h b/verification/global_ocean.90x40x15/code/GGL90_OPTIONS.h index 39605ba365..5724370113 100644 --- a/verification/global_ocean.90x40x15/code/GGL90_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code/GGL90_OPTIONS.h @@ -21,11 +21,19 @@ C Use horizontal averaging for viscosity and diffusivity as C originally implemented in OPA. #undef ALLOW_GGL90_SMOOTH -c----------------------------------------------------------------------- -c include IDEMIX model -c----------------------------------------------------------------------- +C allow IDEMIX model #define ALLOW_GGL90_IDEMIX +#ifdef ALLOW_GGL90_IDEMIX +C The cvmix version of idemix uses different regularisations for the +C Coriolis parameter, buoyancy frequency etc, when used in the denominator +# undef GGL90_IDEMIX_CVMIX_VERSION +#endif +C include Langmuir circulation parameterization +#undef ALLOW_GGL90_LANGMUIR + +C recover old bug prior to Jun 2023 +#undef GGL90_MISSING_HFAC_BUG #endif /* ALLOW_GGL90 */ #endif /* GGL90_OPTIONS_H */ diff --git a/verification/global_ocean.90x40x15/code_ad/CTRL_OPTIONS.h b/verification/global_ocean.90x40x15/code_ad/CTRL_OPTIONS.h index 98281ff419..2af96238d2 100644 --- a/verification/global_ocean.90x40x15/code_ad/CTRL_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code_ad/CTRL_OPTIONS.h @@ -32,9 +32,7 @@ C-- Package-specific Options & Macros go here C >>> Other Control. #define ALLOW_DIFFKR_CONTROL #define ALLOW_KAPGM_CONTROL -#define ALLOW_KAPGM_CONTROL_OLD #define ALLOW_KAPREDI_CONTROL -#define ALLOW_KAPREDI_CONTROL_OLD #define ALLOW_BOTTOMDRAG_CONTROL C >>> Generic Control. diff --git a/verification/global_ocean.90x40x15/code_ad/GMREDI_OPTIONS.h b/verification/global_ocean.90x40x15/code_ad/GMREDI_OPTIONS.h index d77fd372c5..2fc6c0105b 100644 --- a/verification/global_ocean.90x40x15/code_ad/GMREDI_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code_ad/GMREDI_OPTIONS.h @@ -18,12 +18,22 @@ C -- exclude the clipping/tapering part of the code that is not used #undef GM_EXCLUDE_TAPERING #define GM_EXCLUDE_SUBMESO +C Allows to read-in background 3-D Redi and GM diffusivity coefficients +C Note: need these to be defined for use as control (pkg/ctrl) parameters +#define GM_READ_K3D_REDI +#define GM_READ_K3D_GM + C This allows to use Visbeck et al formulation to compute K_GM+Redi #undef GM_VISBECK_VARIABLE_K C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi C (which depends on tapering scheme) #undef OLD_VISBECK_CALC +C This allows the Bates et al formulation to calculate the +C bolus transport and K for Redi +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE + C This allows the leading diagonal (top two rows) to be non-unity C (a feature required when tapering adiabatically). #define GM_NON_UNITY_DIAGONAL @@ -39,6 +49,9 @@ C instead of the Skew-Flux form (=default) C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport #undef GM_BOLUS_BVP +C Allow QG Leith variable viscosity to be added to GMRedi coefficient +#undef ALLOW_GM_LEITH_QG + #endif /* ALLOW_GMREDI */ #endif /* GMREDI_OPTIONS_H */ diff --git a/verification/global_ocean.90x40x15/code_ad/SIZE.h b/verification/global_ocean.90x40x15/code_ad/SIZE.h index 6b9482a10f..0a9c5c2eb1 100644 --- a/verification/global_ocean.90x40x15/code_ad/SIZE.h +++ b/verification/global_ocean.90x40x15/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.90x40x15/code_ad/SIZE.h_mpi b/verification/global_ocean.90x40x15/code_ad/SIZE.h_mpi index e7a8e92b9e..9734aa7941 100644 --- a/verification/global_ocean.90x40x15/code_ad/SIZE.h_mpi +++ b/verification/global_ocean.90x40x15/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.90x40x15/code_ad/tamc.h b/verification/global_ocean.90x40x15/code_ad/tamc.h index 09742a7a8c..ff5003bca9 100644 --- a/verification/global_ocean.90x40x15/code_ad/tamc.h +++ b/verification/global_ocean.90x40x15/code_ad/tamc.h @@ -1,129 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 3 ) - integer nchklev_2 - parameter( nchklev_2 = 120 ) - integer nchklev_3 - parameter( nchklev_3 = 60 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 3 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 120 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 60 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/global_ocean.90x40x15/code_oad/AUTODIFF_OPTIONS.h b/verification/global_ocean.90x40x15/code_oad/AUTODIFF_OPTIONS.h index 5c5ece6d6d..b69f4d1f96 100644 --- a/verification/global_ocean.90x40x15/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,14 +48,38 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) #undef AUTODIFF_PTRACERS_SPLIT_FILES +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_AUTODIFF */ diff --git a/verification/global_ocean.90x40x15/code_oad/CTRL_OPTIONS.h b/verification/global_ocean.90x40x15/code_oad/CTRL_OPTIONS.h index f0a1dae0fc..3947784fd8 100644 --- a/verification/global_ocean.90x40x15/code_oad/CTRL_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code_oad/CTRL_OPTIONS.h @@ -26,47 +26,18 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - #undef EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#undef ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_PRECIP_CONTROL - C >>> Other Control. -#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_DIFFKR_CONTROL #undef ALLOW_KAPGM_CONTROL #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments diff --git a/verification/global_ocean.90x40x15/code_oad/CTRL_SIZE.h b/verification/global_ocean.90x40x15/code_oad/CTRL_SIZE.h new file mode 100644 index 0000000000..6571be9c2f --- /dev/null +++ b/verification/global_ocean.90x40x15/code_oad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 4 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 3 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.90x40x15/code_oad/OPENAD_OPTIONS.h b/verification/global_ocean.90x40x15/code_oad/OPENAD_OPTIONS.h index 3e8f7fee5a..dad84c91e4 100644 --- a/verification/global_ocean.90x40x15/code_oad/OPENAD_OPTIONS.h +++ b/verification/global_ocean.90x40x15/code_oad/OPENAD_OPTIONS.h @@ -18,7 +18,7 @@ CEOP #ifdef ALLOW_OPENAD #define ALLOW_OPENAD_ACTIVE_READ_XYZ -#undef ALLOW_OPENAD_ACTIVE_READ_XY +#define ALLOW_OPENAD_ACTIVE_READ_XY #undef ALLOW_OPENAD_ACTIVE_WRITE #endif /* ALLOW_OPENAD */ diff --git a/verification/global_ocean.90x40x15/code_oad/SIZE.h b/verification/global_ocean.90x40x15/code_oad/SIZE.h index 6b9482a10f..0a9c5c2eb1 100644 --- a/verification/global_ocean.90x40x15/code_oad/SIZE.h +++ b/verification/global_ocean.90x40x15/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.90x40x15/code_oad/SIZE.h_mpi b/verification/global_ocean.90x40x15/code_oad/SIZE.h_mpi index e7a8e92b9e..9734aa7941 100644 --- a/verification/global_ocean.90x40x15/code_oad/SIZE.h_mpi +++ b/verification/global_ocean.90x40x15/code_oad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.90x40x15/code_oad/cb2mFiles b/verification/global_ocean.90x40x15/code_oad/cb2mFiles index 186fdd6625..8d4b65593a 100644 --- a/verification/global_ocean.90x40x15/code_oad/cb2mFiles +++ b/verification/global_ocean.90x40x15/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +25,7 @@ GLOBAL_MAX GLOBAL_SUM GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -37,5 +36,3 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc diff --git a/verification/global_ocean.90x40x15/code_oad/ctrl_map_ini_genarr.F b/verification/global_ocean.90x40x15/code_oad/ctrl_map_ini_genarr.F new file mode 100644 index 0000000000..95784ddd03 --- /dev/null +++ b/verification/global_ocean.90x40x15/code_oad/ctrl_map_ini_genarr.F @@ -0,0 +1,243 @@ +#include "CTRL_OPTIONS.h" +#undef PREVENT_TOO_COLD_TEMP + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENARR +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_INI_GENARR +C | Add the generic arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C | local version for OpenAD exp. OpenAD, global_ocean.90x40x15 +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" +#include "optim.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +c#include "PTRACERS_PARAMS.h" +# include "PTRACERS_FIELDS.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +C !FUNCTIONS: + INTEGER ILNBLNk + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: +C == local variables == + INTEGER bi,bj + INTEGER i,j,k + INTEGER il + INTEGER iarr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +CEOP + + doglobalread = .FALSE. + ladinit = .FALSE. + fac = 1. _d 0 + +#ifdef ALLOW_GENARR2D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 2D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr2D + +C These forcing control variables are constant in time for this +C experiment, so that we can specify them here. Once we know how to +C make OpenAD use the gentim2d controls, these should be handled via +C ctrl_map_gentim2d.F + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr2d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr2d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fu(i,j,bi,bj) = fu(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 4 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fv(i,j,bi,bj) = fv(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +C-- end iarr loop + ENDDO + _EXCH_XY_RS( qnet, myThid ) + _EXCH_XY_RS( empmr, myThid ) + CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) + +#endif /* ALLOW_GENARR2D_CONTROL */ + +#ifdef ALLOW_GENARR3D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 3D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +cc + +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr3D + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr3d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr3d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) +#ifdef PREVENT_TOO_COLD_TEMP +C necessary to reproduce old results + IF ( theta(i,j,k,bi,bj).LT.-2.0 _d 0 ) + & theta(i,j,k,bi,bj) = -2.0 _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( theta, Nr, myThid ) + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( salt, Nr, myThid ) +#ifdef ALLOW_3D_DIFFKR + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + diffKr(i,j,k,bi,bj) = diffKr(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( diffKr, Nr, myThid ) +#endif + ENDIF + +C-- end iarr loop + ENDDO + +#endif /* ALLOW_GENARR3D_CONTROL */ + + RETURN + END diff --git a/verification/global_ocean.90x40x15/input.dwnslp/data b/verification/global_ocean.90x40x15/input.dwnslp/data index 816689a043..0446f0b69c 100644 --- a/verification/global_ocean.90x40x15/input.dwnslp/data +++ b/verification/global_ocean.90x40x15/input.dwnslp/data @@ -23,6 +23,9 @@ exactConserv=.TRUE., useRealFreshWaterFlux=.TRUE., useCDscheme=.TRUE., +#- just to test quasiHydrostatic with staggerTimeStep: + staggerTimeStep = .TRUE., +#-- quasiHydrostatic=.TRUE., useNHMTerms=.TRUE., # turn on looped cells @@ -42,6 +45,7 @@ # Time stepping parameters &PARM03 + pickupStrictlyMatch=.FALSE., nIter0=36000, nTimeSteps=10, # 100 years of integration will yield a reasonable flow field diff --git a/verification/global_ocean.90x40x15/input.idemix/data.ggl90 b/verification/global_ocean.90x40x15/input.idemix/data.ggl90 index 0b94a91fcc..c780566806 100644 --- a/verification/global_ocean.90x40x15/input.idemix/data.ggl90 +++ b/verification/global_ocean.90x40x15/input.idemix/data.ggl90 @@ -1,24 +1,23 @@ -# Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +# ===================================================================== +# | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +# ===================================================================== &GGL90_PARM01 - GGL90dumpFreq=, - GGL90taveFreq=, - GGL90diffTKEh=0.e3, - GGL90mixingMaps=.FALSE, - GGL90writeState=.FALSE., - GGL90ck=0.1, + GGL90diffTKEh=0.E3, + GGL90ck = 0.1, GGL90ceps = 0.7, GGL90alpha=30., GGL90m2 = 3.0, - GGL90TKEmin = 0.e-6, - GGL90TKEbottom=4.e-6, - GGL90TKEsurfMin=1.e-4, - GGL90mixingLengthMin=, + GGL90TKEmin = 0.E-6, + GGL90TKEbottom=4.E-6, + GGL90TKEsurfMin=1.E-4, mxlMaxFlag=2, - GGL90viscMax=1.e2, - GGL90diffMax=1.e2, - GGL90TKEFile=, + GGL90viscMax=1.E2, + GGL90diffMax=1.E2, GGL90_dirichlet=.FALSE., useIDEMIX = .TRUE., +#-- IO related params: + GGL90mixingMaps=.FALSE., + GGL90writeState=.FALSE., & &GGL90_PARM02 @@ -26,5 +25,9 @@ IDEMIX_include_GM = .FALSE., IDEMIX_tidal_file = 'tidal_energy.bin', IDEMIX_wind_file = 'wind_energy.bin', +# these are old defaults that are not recommended + IDEMIX_tau_v = 86400.0, + IDEMIX_jstar = 10.0, +#IDEMIX_mu0 = 4.0/3.0 + IDEMIX_mu0 = 1.3333333333333333, & - diff --git a/verification/OpenAD/input_ad_singlelayer/data b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data similarity index 53% rename from verification/OpenAD/input_ad_singlelayer/data rename to verification/global_ocean.90x40x15/input_ad.bottomdrag/data index b4e95c68a9..f873d42ec2 100644 --- a/verification/OpenAD/input_ad_singlelayer/data +++ b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data @@ -4,30 +4,52 @@ # # Continuous equation parameters &PARM01 - tRef = 1*20., - sRef = 1*35., + tRef = 15*20., + sRef = 15*35., viscAr=1.E-3, - viscAh=5.E5, - diffKhT=0.0, - diffKrT=3.E-5, - diffKhS=0.0, + diffKhT=0., +#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +#diffKrT=3.E-5, + diffKhS=0., diffKrS=3.E-5, - rhonil=1035., +#ph( +#ph Many of the following params. are just for AD testing; +#ph not necesarily meaningful in a 4x4 deg. setting. + viscC4Leith=1.5, + viscC4Leithd=1.5, + viscA4GridMax=0.5, + useAreaViscLength=.TRUE., + bottomDragQuadratic = 0.0021, +#ph) + rhoConst=1035., gravity=9.81, eosType = 'JMD95Z', - ivdc_kappa=0., - implicitDiffusion=.FALSE., - allowFreezing=.FALSE., - useRealFreshWaterFlux=.FALSE., - useCDscheme=.FALSE., - tempStepping=.FALSE., - saltStepping=.FALSE., + ivdc_kappa=10., + implicitDiffusion=.TRUE., + allowFreezing=.TRUE., + useRealFreshWaterFlux=.TRUE., + useCDscheme=.TRUE., + exactConserv=.TRUE., # turn on looped cells - hFacMin=.1, - hFacMindr=50., + hFacMin=.05, + hFacMinDr=50., +#ph( + vectorInvariantMomentum=.TRUE., + hFacInf=0.2, + hFacSup=2.0, + nonlinFreeSurf=4, + staggerTimeStep=.TRUE., + tempAdvScheme=30, + saltAdvScheme=30, + tempVertAdvScheme=20, + saltVertAdvScheme=20, + tempImplVertAdv=.TRUE., + saltImplVertAdv=.TRUE., +#ph) # set precision of data files readBinaryPrec=32, - debugmode=.true., + useSingleCpuIO=.TRUE., +#debugLevel=3, & # Elliptic solver parameters @@ -38,29 +60,26 @@ # Time stepping parameters &PARM03 - nIter0 = 0, + nIter0 = 0, nTimeSteps = 10, # 100 years of integration will yield a reasonable flow field # startTime = 0., # endTime = 3110400000., deltaTmom = 1200.0, -# tauCD = 321428., + tauCD = 321428., deltaTtracer= 43200.0, deltaTClock = 43200.0, -# if you are using a version later than checkpoint45d on the main branch -# you can uncomment the following line and increase the time step -# deltaTtracer and deltaTClock to 172800.0 as well to speed up the -# asynchronous time stepping -# deltaTfreesurf = 172800.0, +#deltaTfreesurf= 43200., abEps = 0.1, pChkptFreq= 311040000., dumpFreq= 311040000., dumpFreq= 864000., adjDumpFreq= 432000., + adjMonitorFreq=1., # taveFreq= 311040000., # taveFreq= 864000., #monitorFreq=31104000., - monitorFreq=0., + monitorFreq=1., # 2 months restoring timescale for temperature tauThetaClimRelax = 5184000.0, # 6 months restoring timescale for salinity @@ -73,7 +92,9 @@ # Gridding parameters &PARM04 usingSphericalPolarGrid=.TRUE., - delR= 4000., + delR= 50., 70., 100., 140., 190., + 240., 290., 340., 390., 440., + 490., 540., 590., 640., 690., ygOrigin=-80., dySpacing=4., dxSpacing=4., @@ -84,11 +105,11 @@ bathyFile= 'bathymetry.bin', hydrogThetaFile='lev_t.bin', hydrogSaltFile= 'lev_s.bin', -# zonalWindFile= 'trenberth_taux.bin', -# meridWindFile= 'trenberth_tauy.bin', -# thetaClimFile= 'lev_sst.bin', -# saltClimFile= 'lev_sss.bin', -# surfQFile= 'ncep_qnet.bin', + zonalWindFile= 'trenberth_taux.bin', + meridWindFile= 'trenberth_tauy.bin', + thetaClimFile= 'lev_sst.bin', + saltClimFile= 'lev_sss.bin', + surfQnetFile= 'ncep_qnet.bin', # fresh water flux is turned off, uncomment next line to turn on # (not recommened together with surface salinity restoring) # EmPmRFile= 'ncep_emp.bin', diff --git a/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.autodiff b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.autodiff new file mode 100644 index 0000000000..8953c62861 --- /dev/null +++ b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.autodiff @@ -0,0 +1,9 @@ +# ========================= +# pkg AUTODIFF parameters : +# ========================= +# inAdExact :: get an exact adjoint (no approximation) (def=.True.) +# + &AUTODIFF_PARM01 +# inAdExact = .FALSE., + cg2dFullAdjoint = .TRUE., + & diff --git a/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.grdchk b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.grdchk index a71334dd9d..378216e830 100644 --- a/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.grdchk +++ b/verification/global_ocean.90x40x15/input_ad.bottomdrag/data.grdchk @@ -3,7 +3,7 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-2, + grdchk_eps = 1.d-4, ### iGloPos = 76, ### jGloPos = 27, iGloPos = 31, diff --git a/verification/global_ocean.90x40x15/input_ad.kapgm/data.grdchk b/verification/global_ocean.90x40x15/input_ad.kapgm/data.grdchk index 002410b83c..7f672e1fda 100644 --- a/verification/global_ocean.90x40x15/input_ad.kapgm/data.grdchk +++ b/verification/global_ocean.90x40x15/input_ad.kapgm/data.grdchk @@ -3,7 +3,7 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-7, + grdchk_eps = 100.0, ### iGloPos = 76, ### jGloPos = 27, iGloPos = 31, diff --git a/verification/global_ocean.90x40x15/input_ad.kapredi/data.grdchk b/verification/global_ocean.90x40x15/input_ad.kapredi/data.grdchk index 02180603fb..9dfd4983b8 100644 --- a/verification/global_ocean.90x40x15/input_ad.kapredi/data.grdchk +++ b/verification/global_ocean.90x40x15/input_ad.kapredi/data.grdchk @@ -3,7 +3,7 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-2, + grdchk_eps = 100.0, ### iGloPos = 76, ### jGloPos = 27, iGloPos = 31, diff --git a/verification/global_ocean.90x40x15/input_ad/data.grdchk b/verification/global_ocean.90x40x15/input_ad/data.grdchk index 02180603fb..debaf5ef33 100644 --- a/verification/global_ocean.90x40x15/input_ad/data.grdchk +++ b/verification/global_ocean.90x40x15/input_ad/data.grdchk @@ -3,7 +3,7 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-2, + grdchk_eps = 1.d-4, ### iGloPos = 76, ### jGloPos = 27, iGloPos = 31, diff --git a/verification/global_ocean.90x40x15/input_oad/data.ctrl b/verification/global_ocean.90x40x15/input_oad/data.ctrl index b516bf7e10..59117bf44f 100644 --- a/verification/global_ocean.90x40x15/input_oad/data.ctrl +++ b/verification/global_ocean.90x40x15/input_oad/data.ctrl @@ -4,17 +4,6 @@ # ECCO controlvariables # ********************* &CTRL_NML - ctrlUseGen=.FALSE., -# doSinglePrecTapelev= .FALSE., - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', & # # ********************* @@ -22,4 +11,44 @@ # ********************* &CTRL_PACKNAMES & - +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR +# Since everything is hard coded, the following has no effect but is +# just meant to document the control variables; +# the forcing controls are constant in time so they are realized +# via genarr2d rather than gentim2d and hard coded in +# ctrl_map_ini_genarr.F + xx_genarr2d_file(1) = 'xx_qnet', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#xx_gentim2d_startdate1(1) = 19920101, +#xx_gentim2d_startdate2(1) = 000000, +#xx_gentim2d_period(1) = 0.0, +# + xx_genarr2d_file(2) = 'xx_empmr', + xx_genarr2d_weight(2) = 'ones_64b.bin', +#xx_gentim2d_startdate1(2) = 19920101, +#xx_gentim2d_startdate2(2) = 000000, +#xx_gentim2d_period(2) = 0.0, +# + xx_genarr2d_file(3) = 'xx_fu', + xx_genarr2d_weight(3) = 'ones_64b.bin', +#xx_gentim2d_startdate1(3) = 19920101, +#xx_gentim2d_startdate2(3) = 000000, +#xx_gentim2d_period(3) = 0.0, +# + xx_genarr2d_file(4) = 'xx_fv', + xx_genarr2d_weight(4) = 'ones_64b.bin', +#xx_gentim2d_startdate1(4) = 19920101, +#xx_gentim2d_startdate2(4) = 000000, +#xx_gentim2d_period(4) = 0.0, +# + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(3) = 'ones_64b.bin', + xx_genarr3d_file(3) = 'xx_diffKr', + & diff --git a/verification/global_ocean.90x40x15/input_oad/data.grdchk b/verification/global_ocean.90x40x15/input_oad/data.grdchk index 2e1adce057..debaf5ef33 100644 --- a/verification/global_ocean.90x40x15/input_oad/data.grdchk +++ b/verification/global_ocean.90x40x15/input_oad/data.grdchk @@ -3,7 +3,7 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-2, + grdchk_eps = 1.d-4, ### iGloPos = 76, ### jGloPos = 27, iGloPos = 31, @@ -14,5 +14,5 @@ ### nbeg = 1, nstep = 1, nend = 3, - grdchkvarindex = 1, + grdchkvarindex = 201, & diff --git a/verification/global_ocean.90x40x15/results/output.dwnslp.txt b/verification/global_ocean.90x40x15/results/output.dwnslp.txt index c047d5bca6..b8d49a781d 100644 --- a/verification/global_ocean.90x40x15/results/output.dwnslp.txt +++ b/verification/global_ocean.90x40x15/results/output.dwnslp.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 11:46:16 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67v +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Sat Feb 20 22:34:56 EST 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -51,8 +51,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -97,9 +99,13 @@ (PID.TID 0000.0001) > ivdc_kappa=10., (PID.TID 0000.0001) > implicitDiffusion=.TRUE., (PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > salt_stayPositive=.TRUE., (PID.TID 0000.0001) > exactConserv=.TRUE., (PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., (PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) >#- just to test quasiHydrostatic with staggerTimeStep: +(PID.TID 0000.0001) > staggerTimeStep = .TRUE., +(PID.TID 0000.0001) >#-- (PID.TID 0000.0001) > quasiHydrostatic=.TRUE., (PID.TID 0000.0001) > useNHMTerms=.TRUE., (PID.TID 0000.0001) ># turn on looped cells @@ -119,6 +125,7 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > pickupStrictlyMatch=.FALSE., (PID.TID 0000.0001) > nIter0=36000, (PID.TID 0000.0001) > nTimeSteps=10, (PID.TID 0000.0001) ># 100 years of integration will yield a reasonable flow field @@ -164,7 +171,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) > the_run_name= 'global_ocean.90x40x15', (PID.TID 0000.0001) > EmPmRFile= 'ncep_emp.bin', (PID.TID 0000.0001) > / @@ -201,7 +208,6 @@ (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/ggl90 compiled but not used ( useGGL90 = F ) - pkg/kpp compiled but not used ( useKPP = F ) pkg/gmredi compiled and used ( useGMRedi = T ) pkg/down_slope compiled and used ( useDOWN_SLOPE = T ) pkg/sbo compiled but not used ( useSBO = F ) @@ -303,6 +309,7 @@ (PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, (PID.TID 0000.0001) > PTRACERS_EvPrRn(1)=0., (PID.TID 0000.0001) >#PTRACERS_useDWNSLP(1)=.FALSE., +(PID.TID 0000.0001) >#PTRACERS_stayPositive(1)=.FALSE., (PID.TID 0000.0001) > PTRACERS_initialFile(1)='lev_s.bin', (PID.TID 0000.0001) >#EH3 added for MNC (PID.TID 0000.0001) > PTRACERS_names(1)='salt_mimic', @@ -710,6 +717,9 @@ (PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_stayPositive = /* use Smolarkiewicz Hack for Temperature */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; @@ -728,6 +738,12 @@ (PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_stayPositive = /* use Smolarkiewicz Hack for Salinity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SmolarkiewiczMaxFrac = /* maximal fraction of tracer to flow out of a cell */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 1 71 (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 1 77 @@ -767,16 +783,16 @@ (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 9 4 106 (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 229 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 233 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 211 DSLPuFlw -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 212 DSLPvFlw -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 229 Add2EmP +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 214 DSLPuFlw +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 215 DSLPvFlw +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 233 Add2EmP (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL @@ -786,17 +802,17 @@ (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 64 RHOAnoma (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 78 DRHODR (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 79 CONVADJ -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 202 GM_PsiX -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 203 GM_PsiY -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 213 DSLP_TH -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 214 DSLP_SLT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 205 GM_PsiX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 206 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 216 DSLP_TH +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 217 DSLP_SLT (PID.TID 0000.0001) space allocated for all diagnostics: 203 levels -(PID.TID 0000.0001) set mate pointer for diag # 211 DSLPuFlw , Parms: UU M1 , mate: 212 -(PID.TID 0000.0001) set mate pointer for diag # 212 DSLPvFlw , Parms: VV M1 , mate: 211 +(PID.TID 0000.0001) set mate pointer for diag # 214 DSLPuFlw , Parms: UU M1 , mate: 215 +(PID.TID 0000.0001) set mate pointer for diag # 215 DSLPvFlw , Parms: VV M1 , mate: 214 (PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 (PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 -(PID.TID 0000.0001) set mate pointer for diag # 202 GM_PsiX , Parms: UU LR , mate: 203 -(PID.TID 0000.0001) set mate pointer for diag # 203 GM_PsiY , Parms: VV LR , mate: 202 +(PID.TID 0000.0001) set mate pointer for diag # 205 GM_PsiX , Parms: UU LR , mate: 206 +(PID.TID 0000.0001) set mate pointer for diag # 206 GM_PsiY , Parms: VV LR , mate: 205 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: surfDiag (PID.TID 0000.0001) Levels: 1. (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag @@ -819,12 +835,12 @@ (PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 64 RHOAnoma (PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 78 DRHODR (PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 79 CONVADJ -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 211 DSLPuFlw -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 212 DSLPvFlw -(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 213 DSLP_TH -(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 214 DSLP_SLT -(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 228 DSLPTr01 -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 229 Add2EmP +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 214 DSLPuFlw +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 215 DSLPvFlw +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 216 DSLP_TH +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 217 DSLP_SLT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 232 DSLPTr01 +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 233 Add2EmP (PID.TID 0000.0001) space allocated for all stats-diags: 186 levels (PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done (PID.TID 0000.0001) ------------------------------------------------------------ @@ -963,10 +979,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95P' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1024,7 +1046,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -1118,8 +1140,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1140,41 +1163,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1182,7 +1183,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ (PID.TID 0000.0001) T @@ -1238,6 +1239,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1257,6 +1264,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1330,7 +1340,7 @@ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ (PID.TID 0000.0001) 36000 @@ -1368,9 +1378,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1428,6 +1435,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2059,6 +2078,9 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // PTRACERS parameters @@ -2152,6 +2174,9 @@ (PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_stayPositive = /* use Smolarkiewicz Hack for this tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ (PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ (PID.TID 0000.0001) ; @@ -2191,13 +2216,13 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup.0000036000 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup.0000036000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "QH_GwNm1" missing in file: pickup.0000036000 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "PhiHyd ", # 9 in fldList, rec= 9 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup.0000036000 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 10 in fldList, rec= 136 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup.0000036000 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 11 in fldList, rec= 137 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup.0000036000 -(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000036000 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: ncep_qnet.bin @@ -2219,9 +2244,9 @@ listId= 1 ; file name: surfDiag 25 |DETADT2 | 3 | 0 | 1 | 0 | 73 |PHIBOT | 4 | 0 | 1 | 0 | 74 |PHIBOTSQ| 5 | 0 | 1 | 0 | - 211 |DSLPuFlw| 6 | 7 | 1 | 0 | 0 | - 212 |DSLPvFlw| 7 | 6 | 1 | 0 | 0 | - 229 |Add2EmP | 8 | 0 | 1 | 0 | + 214 |DSLPuFlw| 6 | 7 | 1 | 0 | 0 | + 215 |DSLPvFlw| 7 | 6 | 1 | 0 | 0 | + 233 |Add2EmP | 8 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: dynDiag nFlds, nActive, freq & phase , nLev @@ -2243,10 +2268,10 @@ listId= 3 ; file name: oceDiag 64 |RHOAnoma| 99 | 0 | 15 | 0 | 78 |DRHODR | 114 | 0 | 15 | 0 | 79 |CONVADJ | 129 | 0 | 15 | 0 | - 202 |GM_PsiX | 144 | 159 | 15 | 0 | 0 | - 203 |GM_PsiY | 159 | 144 | 15 | 0 | 0 | - 213 |DSLP_TH | 174 | 0 | 15 | 0 | - 214 |DSLP_SLT| 189 | 0 | 15 | 0 | + 205 |GM_PsiX | 144 | 159 | 15 | 0 | 0 | + 206 |GM_PsiY | 159 | 144 | 15 | 0 | 0 | + 216 |DSLP_TH | 174 | 0 | 15 | 0 | + 217 |DSLP_SLT| 189 | 0 | 15 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 2 ------------------------------------------------------------------------ @@ -2273,12 +2298,12 @@ listId= 2 ; file name: oceStDiag 64 |RHOAnoma| 94 | 0 | 0.00000E+00 | 78 |DRHODR | 109 | 0 | 0.00000E+00 | 79 |CONVADJ | 124 | 0 | 0.00000E+00 | - 211 |DSLPuFlw| 139 | 0 | 0.00000E+00 | - 212 |DSLPvFlw| 140 | 0 | 0.00000E+00 | - 213 |DSLP_TH | 141 | 0 | 0.00000E+00 | - 214 |DSLP_SLT| 156 | 0 | 0.00000E+00 | - 228 |DSLPTr01| 171 | 0 | 0.00000E+00 | - 229 |Add2EmP | 186 | 0 | 0.00000E+00 | + 214 |DSLPuFlw| 139 | 0 | 0.00000E+00 | + 215 |DSLPvFlw| 140 | 0 | 0.00000E+00 | + 216 |DSLP_TH | 141 | 0 | 0.00000E+00 | + 217 |DSLP_SLT| 156 | 0 | 0.00000E+00 | + 232 |DSLPTr01| 171 | 0 | 0.00000E+00 | + 233 |Add2EmP | 186 | 0 | 0.00000E+00 | ------------------------------------------------------------------------ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup_cd.0000036000 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup_cd.0000036000 @@ -2381,7 +2406,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9628819587991E-01 (PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0127003139695E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36000 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 EXTERNAL_FIELDS_LOAD, it= 36000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) @@ -2398,45 +2423,45 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sss.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sss.bin (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 3.42776777350706E-03 2.75544970144757E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.55251771739875E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 119 -(PID.TID 0000.0001) cg2d_last_res = 8.68433163636468E-14 + cg2d: Sum(rhs),rhsMax = 5.87298759639432E-03 1.60821754398930E+00 +(PID.TID 0000.0001) cg2d_init_res = 4.51370399225123E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 141 +(PID.TID 0000.0001) cg2d_last_res = 9.96760626006039E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36001 (PID.TID 0000.0001) %MON time_secondsf = 3.1104864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6703043158324E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6616661706057E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.4810128210629E-05 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1130864322439E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6535800878270E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4466269057643E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9260301596898E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1642716646815E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2228295612586E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5348545729138E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2235702062689E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3293922243405E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1060280166681E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0808660435766E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6273368282783E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3593456912973E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9250159195084E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3763150484177E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6712582503235E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9824446149201E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0439491725804E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409617276609E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9386953449691E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5460492449943E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6779288801005E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7497481684125E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9580512849620E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731868187890E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659866369615E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0373117874782E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.1490926880162E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3170930164638E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.4810128210636E-05 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9340892226784E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.7394252521800E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4525894595909E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9333568002089E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4680190190609E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2359754298952E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.6271824661211E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2335822653677E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3322153040681E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.5815193325925E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.2442045335347E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6454498427143E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8363364818612E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.0816412658318E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.4038891935883E-24 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8378708755205E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0632247445157E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0448874938290E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6410351465051E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9391206213710E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5469589034340E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6890349226142E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7497450474189E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9580300441363E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731898376750E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659879099289E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0376736190083E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2589080810547E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8702698516846E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6700205338390E+01 @@ -2462,38 +2487,38 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.3653356424172E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5157892194461E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4595114894327E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9572432635845E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1666399701914E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7107969770475E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3868719752771E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5827958830139E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9818560214814E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3782272257777E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7819196847454E-04 -(PID.TID 0000.0001) %MON ke_max = 1.8572277844722E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6662904031983E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9022598963148E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1522115634223E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.6346229789847E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3653003586038E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5882806741573E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1218250810716E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5765018841584E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.1152664984935E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8615761303047E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.9768664197064E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -4.0064930367523E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6523757130468E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807084247E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604637148679E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404842E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574592335E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.8084151323017E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2669565939674E-08 +(PID.TID 0000.0001) %MON vort_r_min = -4.0165478627105E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6004238034207E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807078667E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604696847722E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655397812E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162576188090E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1755865180470E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.2318820995792E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7475222874861E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9753868370572E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718007731406E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9619703895035E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0199571115132E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7475185653011E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9753204993239E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718026967127E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9619672023191E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0199457025951E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= Compute Stats, Diag. # 23 ETAN vol( 0 ): 3.451E+14 Parms: SM M1 Compute Stats, Diag. # 24 ETANSQ vol( 0 ): 3.451E+14 Parms: SM P M1 @@ -2505,45 +2530,45 @@ listId= 2 ; file name: oceStDiag Compute Stats, Diag. # 27 SALT vol( 0 ): 1.323E+18 Parms: SMR MR Compute Stats, Diag. # 38 WVELSQ vol( 0 ): 1.299E+18 Parms: WM P LR EXTERNAL_FIELDS_LOAD, 36001 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 - cg2d: Sum(rhs),rhsMax = 6.89682108737344E-03 2.75622260806094E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.55084349808588E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 119 -(PID.TID 0000.0001) cg2d_last_res = 9.35948458615632E-14 + cg2d: Sum(rhs),rhsMax = 6.93703572339555E-03 2.74024453134256E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.58994609821911E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 139 +(PID.TID 0000.0001) cg2d_last_res = 7.80634820095606E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36002 (PID.TID 0000.0001) %MON time_secondsf = 3.1105728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6566658775385E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6609780003344E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3043743564766E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1112831715740E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6536185669983E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4450085242556E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9184948805437E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1627043644678E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2226144591129E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5319701064143E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2240920277613E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3266078112975E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2049052277276E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0787494516453E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6236795108122E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3581257159312E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9191670391191E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.6423335161530E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6693085184372E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9820105845828E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0442066452020E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409571030675E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9387844178317E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5461264430415E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6801024031439E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7496914319389E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9581133197790E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731869669798E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659493403919E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0371912146594E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.8957673101661E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4135712301277E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3043743564762E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1308425715688E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6501680389794E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4250886524353E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9269046959840E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3544378852214E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2184349215566E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4848488088356E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2377800792686E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3333314951690E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3136204244146E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1229075650657E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5801997541881E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0651030289392E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9232615411100E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.5417599194413E-24 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6425093183680E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1337751529708E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0449877813242E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6410802042638E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9390152710081E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5467059907085E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6931762614186E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7496866073888E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9581267074302E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731880244494E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659746748052E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0380518554521E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2693899536133E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8655982259115E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6687693382567E+01 @@ -2569,79 +2594,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2915731155564E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5261152700224E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4588571962377E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9558777135719E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1487462403448E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7229945109250E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3912374796891E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5773862150376E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9738210375195E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3489617871120E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7790990884077E-04 -(PID.TID 0000.0001) %MON ke_max = 1.8413605014786E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6624370780361E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.4318307568975E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1310754680209E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.9329189409252E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.2443318289790E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5904492544507E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9012461286408E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2203163929896E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.3686710729518E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8455641357982E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.6803972617869E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9952926573399E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6279685720993E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083956E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604637047661E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404476E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574452101E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.8552590104055E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2669686742449E-08 +(PID.TID 0000.0001) %MON vort_r_min = -4.0158332512473E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5714295284552E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807090956E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604672643433E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655413295E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162577951863E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9786757930733E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.4245326777395E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7474772900160E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9755070551551E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718009343955E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9617930830734E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0233660560518E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7474709743678E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9754995122429E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718008967418E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9618212216153E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0235793031520E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36002 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 - cg2d: Sum(rhs),rhsMax = 1.04071631954983E-02 2.75696281321826E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.54950398206710E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 7.90992519906817E-14 + cg2d: Sum(rhs),rhsMax = 1.02026577186300E-02 2.81222429609903E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.86901795131049E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 137 +(PID.TID 0000.0001) cg2d_last_res = 7.27791300470898E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36003 (PID.TID 0000.0001) %MON time_secondsf = 3.1106592000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6430604836853E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6602895881897E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.9688030547048E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1094850113649E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6536713605581E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4435469932296E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9108242340596E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1611508971231E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2224080557512E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5287191633222E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2245582495593E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3235835259169E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2872452223805E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0766947124734E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6195464012936E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3570946123798E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9130045696168E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1743704516236E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6674336676664E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9815875396334E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0444094771577E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409523607952E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9388738503013E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5462085363793E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6824929366612E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7496335632172E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9581774029815E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731871175911E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659043081481E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0372222834792E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0785042012092E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5380304865376E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.9688030547043E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5835224541494E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7250235318995E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4038267505034E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9199361687617E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2177343975310E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2016865560754E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4147680201043E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2308850764936E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3293978100778E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.6940765301218E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0771141357948E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5494800573850E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.7192315744356E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9222493842552E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.5417599194413E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5017330938724E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8437755365223E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0448452325734E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6411058419699E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9389486745490E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5464313269827E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7005149855064E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7496139453492E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9582259441883E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731870076228E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9659352175607E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0384571892401E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2798718261719E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8609266001383E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6675181426744E+01 @@ -2667,79 +2692,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2178105886956E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5379778517573E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4636987924417E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9545282368311E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1295243731058E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7335068985324E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3950620503420E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5715105135802E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9725784368788E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3191327387849E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7762874134927E-04 -(PID.TID 0000.0001) %MON ke_max = 1.8253078795509E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6587178804140E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7805736518819E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1100014780922E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2864618048761E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1644814111740E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5828067352058E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9311454445703E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2712560952974E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.9893100231564E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8324174822456E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.4421980517794E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9837228882127E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6032782708602E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083786E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636949645E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404261E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574309870E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.8850609127867E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2633377625357E-08 +(PID.TID 0000.0001) %MON vort_r_min = -4.0000843333937E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5591210860956E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807120224E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604646341238E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655450172E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162572474873E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7343507376808E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.2311641176817E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7474299842643E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9756341216722E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718010984134E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9616981687664E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0249167179444E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7474164941191E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9756889113885E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4717998796863E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9617226951429E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0250020678593E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36003 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 - cg2d: Sum(rhs),rhsMax = 1.39588733917166E-02 2.75767275459098E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.56486643695888E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 8.53864873268762E-14 + cg2d: Sum(rhs),rhsMax = 1.37765472398348E-02 2.79416926222466E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.14132691658853E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 135 +(PID.TID 0000.0001) cg2d_last_res = 7.28039449869753E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36004 (PID.TID 0000.0001) %MON time_secondsf = 3.1107456000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6294457662002E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6596030645215E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6413873767898E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1076995267040E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6537433154691E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4422519614561E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9030220224649E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1596018890157E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2222115813857E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5251218089038E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2249491070079E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3203240283688E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3534728137000E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0747054042800E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6149536690476E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3562340457911E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9067187441005E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7891298226059E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6656667761367E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9811241478565E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0445581760561E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409475305738E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9389636078528E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5462954294386E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6858549301511E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7495749494765E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9582434889484E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731872708087E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9658479079347E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0374762750050E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9859444281462E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6310732913336E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6413873767900E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9130128343240E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6813988311486E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3865252478137E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9135108322050E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1245874667278E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1891864496855E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.3632761336031E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2149765496150E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3231052773970E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.6548832590476E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0230513652384E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5232049211452E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.3423697416625E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9257711179619E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2570928871354E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3100296009167E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5323270231898E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446326961093E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6410730826820E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9389517664953E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5462802454418E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7072689813028E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7495434178690E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9583189710758E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731867105088E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9658611012620E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0389133844237E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2903536987305E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8562549743652E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6662669470921E+01 @@ -2765,79 +2790,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1440480618348E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5513649503191E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4740184358134E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9531879624178E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1090131802146E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7412503829199E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3981569829155E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5651778326049E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9708075091344E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2887748245548E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7734964977886E-04 -(PID.TID 0000.0001) %MON ke_max = 1.8090833456968E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6551464952874E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7192690987086E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0896889034487E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.3581176083312E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1010165333766E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5705813534079E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9651045706612E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3581254847934E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.4740303940641E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8216875881970E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.2597046390395E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9717682014877E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.5783251833755E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083704E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636852495E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404158E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574164208E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9155736237966E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2598725757704E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.9717873454180E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5534604219613E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807133139E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604628392052E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655466445E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162569752351E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.2203037147694E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.9204810211721E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7473807609053E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9757681590850E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718012653323E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9616395918561E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0255977917421E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7473609426787E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9758755077978E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4717995893441E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9616391521658E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0256411593920E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36004 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 - cg2d: Sum(rhs),rhsMax = 1.75520418039712E-02 2.75835162049000E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.56747043616119E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.07755306634658E-14 + cg2d: Sum(rhs),rhsMax = 1.73089926802537E-02 2.79708379610965E+00 +(PID.TID 0000.0001) cg2d_init_res = 6.69424497892839E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 133 +(PID.TID 0000.0001) cg2d_last_res = 7.68530329780684E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36005 (PID.TID 0000.0001) %MON time_secondsf = 3.1108320000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6158011321607E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6589207179278E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3221273227321E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1059251667376E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6538127548582E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4411277600586E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8950920186262E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1580503315278E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2220261762530E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5211804895473E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2252489187055E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3168336810185E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3943878753957E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0727866676869E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6099509442559E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3555169062917E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9004292671428E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.0275741451706E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6640789757901E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9806755552223E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446532750741E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409426544636E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9390536430381E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5463878128833E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6893711888551E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7495159891024E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9583115463613E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731874266428E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9657854457478E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0376631580737E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0939378576976E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6663365478608E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3221273227324E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0741315235846E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6664034065612E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3716913497845E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9068619963996E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0690010472360E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1800383669060E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.3189641471720E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1989640158249E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3177129930886E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9477896858890E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9737803004064E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5025491111440E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9283573186298E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9157470233572E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.7615556774353E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0803221487666E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2681796243944E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446227281046E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6410194131186E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9390148100189E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5462860748453E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7127617667090E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7494726633598E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9583997685008E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731868457065E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9657668889661E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0391516499027E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3008355712891E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8515833485921E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6650157515098E+01 @@ -2863,88 +2888,88 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0702855349740E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5662631572644E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4897783530480E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7186961518000E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0872518488811E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.8275610990920E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4003801576710E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5583966474876E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9686553411708E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2579205065759E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7707239046832E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7927000491530E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6517369206445E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.5698406625022E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0683541538302E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.1044636501590E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0663935566001E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5601050098150E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9894430488774E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3873316586528E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7211708073603E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8098554793346E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.1245834329529E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9594114231481E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.5878326998191E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083681E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636754770E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404129E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574014880E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9356363477184E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2539026233477E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.9394109285298E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5589144276742E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807131227E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604617634605E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655464035E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162570087565E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3773384477886E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2373299090767E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7473300026280E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9759091394471E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718014351784E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615937471270E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0258527802585E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7473033540873E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9760488989390E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4717997324730E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615610831396E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0258960102729E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= Compute Stats, Diag. # 64 RHOAnoma vol( 0 ): 6.613E+18 Parms: SMR MR Compute Stats, Diag. # 78 DRHODR vol( 0 ): 6.497E+18 Parms: SM LR Compute Stats, Diag. # 79 CONVADJ vol( 0 ): 6.497E+18 Parms: SMR LR - Compute Stats, Diag. # 211 DSLPuFlw vol( 0 ): 1.642E+15 Parms: UU M1 - Compute Stats, Diag. # 212 DSLPvFlw vol( 0 ): 1.629E+15 Parms: VV M1 - Compute Stats, Diag. # 213 DSLP_TH vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 214 DSLP_SLT vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 228 DSLPTr01 vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 229 Add2EmP vol( 0 ): 1.725E+15 Parms: SM U1 + Compute Stats, Diag. # 214 DSLPuFlw vol( 0 ): 1.642E+15 Parms: UU M1 + Compute Stats, Diag. # 215 DSLPvFlw vol( 0 ): 1.629E+15 Parms: VV M1 + Compute Stats, Diag. # 216 DSLP_TH vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 217 DSLP_SLT vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 232 DSLPTr01 vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 233 Add2EmP vol( 0 ): 1.725E+15 Parms: SM U1 EXTERNAL_FIELDS_LOAD, 36005 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 - cg2d: Sum(rhs),rhsMax = 2.11867508293866E-02 2.75900050645364E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.57936698127275E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.41461985011838E-14 + cg2d: Sum(rhs),rhsMax = 2.08677021044232E-02 2.80118318614512E+00 +(PID.TID 0000.0001) cg2d_init_res = 4.89335524395155E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 132 +(PID.TID 0000.0001) cg2d_last_res = 9.02928230308227E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36006 (PID.TID 0000.0001) %MON time_secondsf = 3.1109184000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6021204074965E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6582447336554E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2866626195323E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6737991345553E+00 (PID.TID 0000.0001) %MON dynstat_eta_mean = -4.0110228925321E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1041683602314E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6538583347392E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4401733082919E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8870378892564E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1564912993366E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2218527022051E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5169091835615E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2254465953036E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3131165590274E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4123237400383E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0709430564603E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6046055450614E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3549068801513E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8942666811197E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4038891935883E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6627013271822E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9802704142294E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446953354462E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409377349991E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9391439804803E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5464859128970E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6916727991753E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7494570970380E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9583815576530E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731875858056E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9657172730839E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0371502816650E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1241249487209E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6693856100912E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3595244358576E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8992828102136E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0375268208268E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1732691411154E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2849835710886E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1871637346951E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3141429509604E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7365732218356E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9389637121780E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.4904655014118E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4964399227576E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8900055629170E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8625279758324E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8862593021144E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.1096695662210E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0447517893495E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409640794542E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9391116298413E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5463953464155E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7162534491544E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7494029289425E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9584671346738E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731871524747E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9656654346089E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0386254055279E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3113174438477E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8469117228190E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6637645559275E+01 @@ -2970,38 +2995,38 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9965230081132E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5826577347902E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5109215240509E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9505334349682E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0642800090882E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7451975351928E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4016411799312E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5511748756135E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9662754029980E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2266010965849E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7679796663212E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7761706147887E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6485001507216E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6913300062225E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0450125366767E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.4237250455011E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0541453154596E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5531689905259E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9650999099350E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3422102072044E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7992068882328E-04 +(PID.TID 0000.0001) %MON ke_max = 1.7947703901956E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.0273688900987E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9466390071525E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6051400791522E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083685E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636655633E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404133E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162573860307E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9593638540904E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2489955404363E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.9102998544143E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5808704317686E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807112498E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604612123295E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655440437E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162572059268E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.5937198886099E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3905251751317E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7472781054398E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9760568998830E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718016086378E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615582539172E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0259470625985E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7472446734116E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9762054730252E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718000427657E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615010285438E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0259694899320E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= Compute Stats, Diag. # 23 ETAN vol( 0 ): 1.725E+15 Parms: SM M1 Compute Stats, Diag. # 24 ETANSQ vol( 0 ): 1.725E+15 Parms: SM P M1 @@ -3013,46 +3038,46 @@ listId= 2 ; file name: oceStDiag Compute Stats, Diag. # 27 SALT vol( 0 ): 6.613E+18 Parms: SMR MR Compute Stats, Diag. # 38 WVELSQ vol( 0 ): 6.497E+18 Parms: WM P LR EXTERNAL_FIELDS_LOAD, 36006 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3000000000 0.7000000000 - cg2d: Sum(rhs),rhsMax = 2.48631129833761E-02 2.75961681988414E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.58506076034514E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.41339311608947E-14 + cg2d: Sum(rhs),rhsMax = 2.44714228212977E-02 2.80378731080080E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.93440249521075E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 130 +(PID.TID 0000.0001) cg2d_last_res = 7.92731969962433E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36007 (PID.TID 0000.0001) %MON time_secondsf = 3.1110048000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5884270278934E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6575770566152E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7080740861880E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1024281089967E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6539218070208E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4393821715813E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8788633966535E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1549235268976E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2216920457643E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5123525544994E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2255359493429E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3091764646232E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4021112100926E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0691759820400E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5989405903063E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3543605544289E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8880870450401E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1743704516236E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6615833348920E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9798608520953E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446849473294E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409327722014E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9392345271283E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5465885119582E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6931997679298E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7493986976518E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9584535187271E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731877472971E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9656318235707E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0367091497326E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164063E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.4964911068877E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6777333259784E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7080740861879E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1235702975482E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6763104977171E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3503958647188E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8905494685984E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0239893307454E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1684228615107E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2628093283498E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1797852920387E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3115517118978E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2140936134168E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9185342687071E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.4867876230574E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3670947106138E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8188519403634E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3487409032471E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7759893356033E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0800215694610E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0448601594113E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409249520724E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9392189894996E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5465414995842E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7181299600763E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7493358116172E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9585248933931E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731874744837E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9655600129771E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0381273892233E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164062E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8422400970459E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6625133603452E+01 (PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1159198929743E+02 @@ -3077,79 +3102,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9227604812524E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6005326854092E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5373726950670E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9492285797076E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0401378000506E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7404743422963E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4019036803218E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5435199041014E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9637870024921E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2221800291358E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7652622044096E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7595075234436E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6454464565450E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6867845110788E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0197713913241E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.6034317830727E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0619309281641E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5481346286122E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9365060820809E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2591146098213E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7983383943099E-04 +(PID.TID 0000.0001) %MON ke_max = 1.7762686991298E-02 +(PID.TID 0000.0001) %MON ke_mean = 7.9617455855403E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9334432562092E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6225936222937E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083601E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636555456E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655404027E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162573701156E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9755972254796E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2423662842256E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.8880261279161E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.5993152260157E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807086421E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604610864462E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655407581E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574780078E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.3350878119066E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.0884011364756E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7472254740522E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9762111606193E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718017847251E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615292163282E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0259765516219E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7471860615779E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9763503604385E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718003661680E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614605955589E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0259873690728E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36007 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2666666667 0.7333333333 - cg2d: Sum(rhs),rhsMax = 2.85812022420624E-02 2.76020329132340E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.63365289440989E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.72538877276882E-14 + cg2d: Sum(rhs),rhsMax = 2.81225676688490E-02 2.80521783883681E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.21607838191166E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 130 +(PID.TID 0000.0001) cg2d_last_res = 8.62447802871666E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36008 (PID.TID 0000.0001) %MON time_secondsf = 3.1110912000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5746786168219E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6569193905389E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.4132809037023E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1007118568359E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6539956784021E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4387428146758E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8705719650948E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1533450129336E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2215446628717E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5075400456413E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2255159383207E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3050169478210E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3723282857900E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0674895318124E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5930073402801E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3538305353893E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8818042778419E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.9359261290589E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6607259657459E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9793978694496E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0446227240190E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409277252706E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9393253631600E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5466962579913E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6948551053496E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7493412307096E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9585274385764E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731879123925E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9655363042051E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0363728622644E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6724941548859E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6761378240068E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.4132809037029E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1081192509154E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6799286809563E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3445002142650E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8808723293681E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0258830216908E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1654603969019E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2522342977419E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1756785968934E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3088030412899E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.9200896721741E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9102123211711E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.4904239220533E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7264385246679E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.7305244379156E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4679630645294E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7672038049099E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.1567954604115E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0448599586223E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409077302759E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9393241821212E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5466860318258E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7191741617549E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7492719465555E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9585797713983E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731877519834E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9654620954984E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0376159023120E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3322811889648E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8375684712728E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6612621647628E+01 @@ -3175,79 +3200,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8489979543915E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6198708258185E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5690396795039E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7628917132404E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0148659294007E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.7484301037262E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4011848374276E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5354386300610E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9612876900489E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2193518597922E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7625831233382E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7427224320679E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6425826462637E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7435444596550E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9932197437517E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.6887537478576E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0858894749386E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5427944024547E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9010107508647E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1767598257148E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7741554513812E-04 +(PID.TID 0000.0001) %MON ke_max = 1.7553876690219E-02 +(PID.TID 0000.0001) %MON ke_mean = 7.9257587165080E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9198214810102E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6401730173540E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083406E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636453856E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655403782E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162573535868E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9999152146803E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2376170758607E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.8719995168456E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6146699830149E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807061510E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604613166603E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655376194E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162577853975E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.0028018645986E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.4381673190052E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7471725212791E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9763715481735E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718019646809E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9615100656114E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0260560790717E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7471282232921E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9764947005885E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718006473750E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614423857226E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0260315070211E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36008 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2333333333 0.7666666667 - cg2d: Sum(rhs),rhsMax = 3.23411151028110E-02 2.76075970569823E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.64477639832948E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.83824791042217E-14 + cg2d: Sum(rhs),rhsMax = 3.18234155521573E-02 2.80567141722599E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.79584893700302E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 129 +(PID.TID 0000.0001) cg2d_last_res = 8.38629348418134E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36009 (PID.TID 0000.0001) %MON time_secondsf = 3.1111776000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5609194051478E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6562732095021E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.1266433450728E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0990186689330E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6540736530759E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4382389553816E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8621670296330E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1517561849341E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2214110220103E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5025058403115E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2253905043546E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3006413299242E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3212722883790E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0658846609742E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5868226072224E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3532687048790E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8753040059635E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6699076613236E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6601654961572E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9789102347885E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0445093037996E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409225787581E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9394164773491E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5468098171948E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6992258103005E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7492851450767E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9586033387104E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731880812579E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9654440690039E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0375206463594E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7844049412382E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6726263526182E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.1266433450724E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0919945890410E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6789988525932E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3418727924744E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8706839742679E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0397919116580E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1644956488314E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2524859650961E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1739079212203E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3052988481054E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.3562943587262E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9121754023248E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.4998738649415E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0159627331319E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6562423898516E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.8536023952325E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8418595266854E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2892801935805E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0447480048654E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409075793013E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9394235206136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5468187442834E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7220803919798E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7492114042034E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9586382468566E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731879789370E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9653810046211E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0385606777599E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3427630615234E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8328968454997E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6600109691805E+01 @@ -3273,79 +3298,79 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7752354275308E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6406538642117E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6058148956476E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9467121128528E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9885057215282E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7175444655317E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3995520395079E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5269375062523E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9588669442241E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2166125947799E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7599409367581E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7258267193521E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6399144376031E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6996100628547E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9657947610812E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.5714124641036E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1228325097126E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5359863171022E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8711597324799E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1173649604378E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7489834628210E-04 +(PID.TID 0000.0001) %MON ke_max = 1.7335307163507E-02 +(PID.TID 0000.0001) %MON ke_mean = 7.9190010663699E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9057750680010E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6578566077354E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807083116E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636350534E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655403416E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162573363903E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0213655448501E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2325803866313E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.8591447460541E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6286070558066E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807047856E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604617929303E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655358990E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162580881411E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3064097180518E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.0691810339889E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7471196634002E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9765376217917E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718021486819E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614963607467E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0261840185676E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7470715108034E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9766497732810E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718008831660E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614367534214E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0261125927158E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 36009 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2000000000 0.8000000000 - cg2d: Sum(rhs),rhsMax = 3.61429182698267E-02 2.76128841568577E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.60127492066666E-02 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.80255293140904E-14 + cg2d: Sum(rhs),rhsMax = 3.55770021218640E-02 2.80521166976617E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.71753842933103E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 128 +(PID.TID 0000.0001) cg2d_last_res = 7.64780019142399E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36010 (PID.TID 0000.0001) %MON time_secondsf = 3.1112640000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5471501670450E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6556396487502E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8481614103006E-04 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0973513130400E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6541366540248E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4378500673085E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8536519237655E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1501590248481E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2212911769247E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4972745827764E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2251676746484E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2960527302695E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2546034567531E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0643634840334E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5804316751635E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3526291495495E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8688285893535E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1743704516236E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6598812451858E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9783464364659E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0443453508302E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409172984905E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9395078538941E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5469296372974E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7018534581939E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7492309096239E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9586812530446E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731882541216E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9653618961964E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0385159270786E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.8226364731431E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6677801703263E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8481614103014E-04 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0784554461693E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6753353579514E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3424638059450E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8604156370072E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0604732001538E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1656109524664E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2625036811278E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1740650152305E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3010190647920E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.3647011860453E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9226499722360E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5133665833683E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2204809974026E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6777151923076E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7891298226059E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9597563618765E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4264044052358E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0445591989749E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6409149766658E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9395182697978E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5469450718077E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7229982581679E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7491540822268E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9587042530113E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731881724637E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9653187629696E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0392878424112E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3532449340820E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8282252197266E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6587597735982E+01 @@ -3371,49 +3396,49 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7014729006700E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6628624802842E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6475770842672E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9461729090376E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9610991535881E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7001291713470E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3971175957060E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5180225930460E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9565897214890E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2140357374744E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7573399381163E-04 -(PID.TID 0000.0001) %MON ke_max = 1.7088312845076E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6374438856245E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7380893843950E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9376010238305E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.4779293560410E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1701638873041E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5276713845190E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8551453793070E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.0992434555316E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7278993983931E-04 +(PID.TID 0000.0001) %MON ke_max = 1.7119003265823E-02 +(PID.TID 0000.0001) %MON ke_mean = 7.9402755298947E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.8913091514764E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6756211428588E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807082700E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604636245885E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655402893E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162573183409E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0479854659028E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2296084275970E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.8464217966390E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6428014907647E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807048865E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604623745939E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655360261E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162583425231E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7016483916450E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.2107662460714E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7470673203283E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9767089027910E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718023369419E+01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614830440565E-01 -(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0263692772640E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 3.7470161021482E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 2.9768221130309E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 3.4718010910684E+01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 2.9614419325940E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0262703096930E-03 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR ptracers field statistics +(PID.TID 0000.0001) // End MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= Computing Diagnostic # 23 ETAN Counter: 10 Parms: SM M1 Computing Diagnostic # 24 ETANSQ Counter: 10 Parms: SM P M1 Computing Diagnostic # 25 DETADT2 Counter: 10 Parms: SM M1 Computing Diagnostic # 73 PHIBOT Counter: 10 Parms: SM M1 Computing Diagnostic # 74 PHIBOTSQ Counter: 10 Parms: SM P M1 - Computing Diagnostic # 211 DSLPuFlw Counter: 10 Parms: UU M1 - Vector Mate for DSLPuFlw Diagnostic # 212 DSLPvFlw exists - Computing Diagnostic # 212 DSLPvFlw Counter: 10 Parms: VV M1 - Vector Mate for DSLPvFlw Diagnostic # 211 DSLPuFlw exists - Computing Diagnostic # 229 Add2EmP Counter: 10 Parms: SM U1 + Computing Diagnostic # 214 DSLPuFlw Counter: 10 Parms: UU M1 + Vector Mate for DSLPuFlw Diagnostic # 215 DSLPvFlw exists + Computing Diagnostic # 215 DSLPvFlw Counter: 10 Parms: VV M1 + Vector Mate for DSLPvFlw Diagnostic # 214 DSLPuFlw exists + Computing Diagnostic # 233 Add2EmP Counter: 10 Parms: SM U1 Computing Diagnostic # 45 UVELMASS Counter: 10 Parms: UUr MR Vector Mate for UVELMASS Diagnostic # 46 VVELMASS exists Computing Diagnostic # 46 VVELMASS Counter: 10 Parms: VVr MR @@ -3425,166 +3450,166 @@ listId= 2 ; file name: oceStDiag Computing Diagnostic # 64 RHOAnoma Counter: 10 Parms: SMR MR Computing Diagnostic # 78 DRHODR Counter: 10 Parms: SM LR Computing Diagnostic # 79 CONVADJ Counter: 10 Parms: SMR LR - Computing Diagnostic # 202 GM_PsiX Counter: 10 Parms: UU LR - Vector Mate for GM_PsiX Diagnostic # 203 GM_PsiY exists - Computing Diagnostic # 203 GM_PsiY Counter: 10 Parms: VV LR - Vector Mate for GM_PsiY Diagnostic # 202 GM_PsiX exists - Computing Diagnostic # 213 DSLP_TH Counter: 10 Parms: SMR MR - Computing Diagnostic # 214 DSLP_SLT Counter: 10 Parms: SMR MR + Computing Diagnostic # 205 GM_PsiX Counter: 10 Parms: UU LR + Vector Mate for GM_PsiX Diagnostic # 206 GM_PsiY exists + Computing Diagnostic # 206 GM_PsiY Counter: 10 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 205 GM_PsiX exists + Computing Diagnostic # 216 DSLP_TH Counter: 10 Parms: SMR MR + Computing Diagnostic # 217 DSLP_SLT Counter: 10 Parms: SMR MR Compute Stats, Diag. # 64 RHOAnoma vol( 0 ): 6.613E+18 Parms: SMR MR Compute Stats, Diag. # 78 DRHODR vol( 0 ): 6.497E+18 Parms: SM LR Compute Stats, Diag. # 79 CONVADJ vol( 0 ): 6.497E+18 Parms: SMR LR - Compute Stats, Diag. # 211 DSLPuFlw vol( 0 ): 1.642E+15 Parms: UU M1 - Compute Stats, Diag. # 212 DSLPvFlw vol( 0 ): 1.629E+15 Parms: VV M1 - Compute Stats, Diag. # 213 DSLP_TH vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 214 DSLP_SLT vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 228 DSLPTr01 vol( 0 ): 6.613E+18 Parms: SMR MR - Compute Stats, Diag. # 229 Add2EmP vol( 0 ): 1.725E+15 Parms: SM U1 + Compute Stats, Diag. # 214 DSLPuFlw vol( 0 ): 1.642E+15 Parms: UU M1 + Compute Stats, Diag. # 215 DSLPvFlw vol( 0 ): 1.629E+15 Parms: VV M1 + Compute Stats, Diag. # 216 DSLP_TH vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 217 DSLP_SLT vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 232 DSLPTr01 vol( 0 ): 6.613E+18 Parms: SMR MR + Compute Stats, Diag. # 233 Add2EmP vol( 0 ): 1.725E+15 Parms: SM U1 (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000036000.txt , unit= 9 (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: oceStDiag.0000036000.txt , unit= 10 (PID.TID 0000.0001) %CHECKPOINT 36010 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 21.288762818090618 -(PID.TID 0000.0001) System time: 0.14197800331749022 -(PID.TID 0000.0001) Wall clock time: 21.518380880355835 +(PID.TID 0000.0001) User time: 12.625698015093803 +(PID.TID 0000.0001) System time: 0.24848200380802155 +(PID.TID 0000.0001) Wall clock time: 12.906056880950928 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.26196001004427671 -(PID.TID 0000.0001) System time: 3.69939992669969797E-002 -(PID.TID 0000.0001) Wall clock time: 0.31607484817504883 +(PID.TID 0000.0001) User time: 0.16277999617159367 +(PID.TID 0000.0001) System time: 6.0989996884018183E-002 +(PID.TID 0000.0001) Wall clock time: 0.22829794883728027 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 21.026802808046341 -(PID.TID 0000.0001) System time: 0.10498400405049324 -(PID.TID 0000.0001) Wall clock time: 21.202267169952393 +(PID.TID 0000.0001) User time: 12.462872341275215 +(PID.TID 0000.0001) System time: 0.18747900426387787 +(PID.TID 0000.0001) Wall clock time: 12.677716016769409 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.44293299317359924 -(PID.TID 0000.0001) System time: 4.89930026233196259E-002 -(PID.TID 0000.0001) Wall clock time: 0.49986195564270020 +(PID.TID 0000.0001) User time: 0.28133399784564972 +(PID.TID 0000.0001) System time: 7.2283998131752014E-002 +(PID.TID 0000.0001) Wall clock time: 0.38049101829528809 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 20.583869814872742 -(PID.TID 0000.0001) System time: 5.59910014271736145E-002 -(PID.TID 0000.0001) Wall clock time: 20.702375888824463 +(PID.TID 0000.0001) User time: 12.181515753269196 +(PID.TID 0000.0001) System time: 0.11519099771976471 +(PID.TID 0000.0001) Wall clock time: 12.297202825546265 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 20.583869814872742 -(PID.TID 0000.0001) System time: 5.59910014271736145E-002 -(PID.TID 0000.0001) Wall clock time: 20.702277183532715 +(PID.TID 0000.0001) User time: 12.181442081928253 +(PID.TID 0000.0001) System time: 0.11518900096416473 +(PID.TID 0000.0001) Wall clock time: 12.297124862670898 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 20.583869814872742 -(PID.TID 0000.0001) System time: 5.59910014271736145E-002 -(PID.TID 0000.0001) Wall clock time: 20.702093362808228 +(PID.TID 0000.0001) User time: 12.181254416704178 +(PID.TID 0000.0001) System time: 0.11518599092960358 +(PID.TID 0000.0001) Wall clock time: 12.296935319900513 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15197730064392090 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.15225386619567871 +(PID.TID 0000.0001) User time: 8.1128358840942383E-002 +(PID.TID 0000.0001) System time: 9.9986791610717773E-006 +(PID.TID 0000.0001) Wall clock time: 8.1161022186279297E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.47393065690994263 -(PID.TID 0000.0001) System time: 9.99994575977325439E-004 -(PID.TID 0000.0001) Wall clock time: 0.47427964210510254 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 0.27608793973922729 +(PID.TID 0000.0001) System time: 3.4109950065612793E-003 +(PID.TID 0000.0001) Wall clock time: 0.27955293655395508 +(PID.TID 0000.0001) No. starts: 30 +(PID.TID 0000.0001) No. stops: 30 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.89964675903320313E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.98950672149658203E-002 +(PID.TID 0000.0001) User time: 1.3083130121231079E-002 +(PID.TID 0000.0001) System time: 4.1449964046478271E-003 +(PID.TID 0000.0001) Wall clock time: 1.7226457595825195E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.89964675903320313E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.97048091888427734E-002 +(PID.TID 0000.0001) User time: 1.2902319431304932E-002 +(PID.TID 0000.0001) System time: 4.1429996490478516E-003 +(PID.TID 0000.0001) Wall clock time: 1.7056226730346680E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.51290130615234375E-005 +(PID.TID 0000.0001) User time: 7.9572200775146484E-005 +(PID.TID 0000.0001) System time: 2.0116567611694336E-006 +(PID.TID 0000.0001) Wall clock time: 7.5578689575195312E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.6545951962471008 +(PID.TID 0000.0001) User time: 1.4831326901912689 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.6597113609313965 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.0719250440597534 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.0895228385925293 +(PID.TID 0000.0001) Wall clock time: 1.4831893444061279 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.7811199426651001 +(PID.TID 0000.0001) User time: 3.1680334210395813 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.7927355766296387 +(PID.TID 0000.0001) Wall clock time: 3.1681249141693115 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.2236623764038086 +(PID.TID 0000.0001) User time: 1.4752655029296875 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.2288780212402344 +(PID.TID 0000.0001) Wall clock time: 1.4753336906433105 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11798238754272461 +(PID.TID 0000.0001) User time: 9.7644448280334473E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11910629272460938 +(PID.TID 0000.0001) Wall clock time: 9.7663402557373047E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21596646308898926 +(PID.TID 0000.0001) User time: 0.12419426441192627 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.21486926078796387 +(PID.TID 0000.0001) Wall clock time: 0.12421393394470215 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.38787734508514404 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.38793110847473145 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.3243505954742432 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.06811523437500000E-004 +(PID.TID 0000.0001) Wall clock time: 4.3245079517364502 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.67289900779724121 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.0241432189941406E-005 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.67668843269348145 +(PID.TID 0000.0001) Wall clock time: 9.1314315795898438E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.88486433029174805 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.88820123672485352 +(PID.TID 0000.0001) User time: 0.55543553829193115 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.55546355247497559 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.23496246337890625 -(PID.TID 0000.0001) System time: 3.19949984550476074E-002 -(PID.TID 0000.0001) Wall clock time: 0.28226804733276367 +(PID.TID 0000.0001) User time: 0.13779318332672119 +(PID.TID 0000.0001) System time: 7.5540006160736084E-002 +(PID.TID 0000.0001) Wall clock time: 0.21347141265869141 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.01804733276367188E-004 +(PID.TID 0000.0001) User time: 7.8082084655761719E-005 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 7.2002410888671875E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.89888000488281250E-002 -(PID.TID 0000.0001) System time: 2.09960043430328369E-002 -(PID.TID 0000.0001) Wall clock time: 9.04970169067382813E-002 +(PID.TID 0000.0001) User time: 5.4155945777893066E-002 +(PID.TID 0000.0001) System time: 3.2047986984252930E-002 +(PID.TID 0000.0001) Wall clock time: 8.6281061172485352E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -3987,9 +4012,9 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 19418 +(PID.TID 0000.0001) // No. barriers = 20784 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 19418 +(PID.TID 0000.0001) // Total barrier spins = 20784 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output.idemix.txt b/verification/global_ocean.90x40x15/results/output.idemix.txt index 4f6da10845..cc1ec3d367 100644 --- a/verification/global_ocean.90x40x15/results/output.idemix.txt +++ b/verification/global_ocean.90x40x15/results/output.idemix.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 11:46:16 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68p +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Mon Jun 12 11:58:03 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -51,8 +51,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -166,7 +168,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) > the_run_name= 'idemix_90x40x15', (PID.TID 0000.0001) > / (PID.TID 0000.0001) @@ -200,7 +202,6 @@ (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/ggl90 compiled and used ( useGGL90 = T ) - pkg/kpp compiled but not used ( useKPP = F ) pkg/gmredi compiled and used ( useGMRedi = T ) pkg/down_slope compiled but not used ( useDOWN_SLOPE = F ) pkg/sbo compiled but not used ( useSBO = F ) @@ -225,27 +226,26 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ggl90" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) ># | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +(PID.TID 0000.0001) ># ===================================================================== (PID.TID 0000.0001) > &GGL90_PARM01 -(PID.TID 0000.0001) > GGL90dumpFreq=, -(PID.TID 0000.0001) > GGL90taveFreq=, -(PID.TID 0000.0001) > GGL90diffTKEh=0.e3, -(PID.TID 0000.0001) > GGL90mixingMaps=.FALSE, -(PID.TID 0000.0001) > GGL90writeState=.FALSE., -(PID.TID 0000.0001) > GGL90ck=0.1, +(PID.TID 0000.0001) > GGL90diffTKEh=0.E3, +(PID.TID 0000.0001) > GGL90ck = 0.1, (PID.TID 0000.0001) > GGL90ceps = 0.7, (PID.TID 0000.0001) > GGL90alpha=30., (PID.TID 0000.0001) > GGL90m2 = 3.0, -(PID.TID 0000.0001) > GGL90TKEmin = 0.e-6, -(PID.TID 0000.0001) > GGL90TKEbottom=4.e-6, -(PID.TID 0000.0001) > GGL90TKEsurfMin=1.e-4, -(PID.TID 0000.0001) > GGL90mixingLengthMin=, +(PID.TID 0000.0001) > GGL90TKEmin = 0.E-6, +(PID.TID 0000.0001) > GGL90TKEbottom=4.E-6, +(PID.TID 0000.0001) > GGL90TKEsurfMin=1.E-4, (PID.TID 0000.0001) > mxlMaxFlag=2, -(PID.TID 0000.0001) > GGL90viscMax=1.e2, -(PID.TID 0000.0001) > GGL90diffMax=1.e2, -(PID.TID 0000.0001) > GGL90TKEFile=, +(PID.TID 0000.0001) > GGL90viscMax=1.E2, +(PID.TID 0000.0001) > GGL90diffMax=1.E2, (PID.TID 0000.0001) > GGL90_dirichlet=.FALSE., (PID.TID 0000.0001) > useIDEMIX = .TRUE., +(PID.TID 0000.0001) >#-- IO related params: +(PID.TID 0000.0001) > GGL90mixingMaps=.FALSE., +(PID.TID 0000.0001) > GGL90writeState=.FALSE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) > &GGL90_PARM02 @@ -253,9 +253,17 @@ (PID.TID 0000.0001) > IDEMIX_include_GM = .FALSE., (PID.TID 0000.0001) > IDEMIX_tidal_file = 'tidal_energy.bin', (PID.TID 0000.0001) > IDEMIX_wind_file = 'wind_energy.bin', +(PID.TID 0000.0001) ># these are old defaults that are not recommended +(PID.TID 0000.0001) > IDEMIX_tau_v = 86400.0, +(PID.TID 0000.0001) > IDEMIX_jstar = 10.0, +(PID.TID 0000.0001) >#IDEMIX_mu0 = 4.0/3.0 +(PID.TID 0000.0001) > IDEMIX_mu0 = 1.3333333333333333, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > (PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM02 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM02 : OK (PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // GGL90 configuration @@ -264,58 +272,58 @@ (PID.TID 0000.0001) 8.640000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GGL90taveFreq = /* GGL90 averaging interval ( s ). */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag. */ +(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag. */ +(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter. */ +(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter. */ +(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter */ (PID.TID 0000.0001) 7.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter. */ +(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter */ (PID.TID 0000.0001) 3.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio. */ +(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio */ (PID.TID 0000.0001) 3.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 1.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ). */ +(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ) */ (PID.TID 0000.0001) 4.000000000000000E-06 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity ( m^2/s ). */ +(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity (m^2/s ) */ (PID.TID 0000.0001) 1.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity ( m^2/s ). */ +(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity (m^2/s ) */ (PID.TID 0000.0001) 1.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ). */ +(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length ( m ). */ +(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length (m) */ (PID.TID 0000.0001) 1.000000000000000E-08 (PID.TID 0000.0001) ; (PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing. */ +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) GGL90: GGL90TKEFile = -(PID.TID 0000.0001) GGL90writeState = /* GGL90 Boundary condition flag. */ +(PID.TID 0000.0001) GGL90_dirichlet = /* GGL90 Boundary condition flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useIDEMIX = /* turn on IDEMIX contribution. */ @@ -758,6 +766,9 @@ (PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_stayPositive = /* use Smolarkiewicz Hack for Temperature */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; @@ -776,10 +787,16 @@ (PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_stayPositive = /* use Smolarkiewicz Hack for Salinity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SmolarkiewiczMaxFrac = /* maximal fraction of tracer to flow out of a cell */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 227 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 233 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 91 surForcT (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 92 surForcS @@ -787,24 +804,24 @@ (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 81 oceTAUY (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 77 MXLDEPTH -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 IDEM_F_b -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 IDEM_F_s -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 204 IDEM_F_g -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 GGL90flx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 195 GGL90tau +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 208 IDEM_F_b +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 209 IDEM_F_s +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 210 IDEM_F_g +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 199 GGL90flx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 200 GGL90tau (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 188 GGL90TKE -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 193 GGL90Kr -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 196 IDEMIX_E -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 200 IDEMIX_K -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 201 IDEMIX_F -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 198 IDEMIX_v -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 197 IDEMIX_c -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 199 IDEMIX_t +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 191 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 197 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 201 IDEMIX_E +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 206 IDEMIX_K +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 207 IDEMIX_F +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 204 IDEMIX_v +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 203 IDEMIX_c +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 205 IDEMIX_t (PID.TID 0000.0001) space allocated for all diagnostics: 206 levels (PID.TID 0000.0001) set mate pointer for diag # 80 oceTAUX , Parms: UU U1 , mate: 81 (PID.TID 0000.0001) set mate pointer for diag # 81 oceTAUY , Parms: VV U1 , mate: 80 @@ -861,9 +878,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024871553740665E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025131853965179E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025500122698715E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026019055456198E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026730727023644E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027654834729768E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028788857592232E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030129714500301E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031673780307277E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033416904722807E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035354433881450E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037481234443614E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039791720064872E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042279880049878E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939309988095E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -954,10 +991,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95P' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1012,28 +1055,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1055,7 +1101,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1064,10 +1110,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1109,8 +1155,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1131,41 +1178,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1229,6 +1254,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1248,14 +1279,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1272,6 +1306,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1359,9 +1396,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1419,6 +1453,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1609,15 +1655,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1978,6 +2015,7 @@ (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) (PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 +(PID.TID 0000.0001) GGL90_CHECK: Some form of convection has been enabled (PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI (PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ (PID.TID 0000.0001) F @@ -2051,6 +2089,9 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -2092,11 +2133,11 @@ listId= 1 ; file name: diags2D 81 |oceTAUY | 4 | 3 | 1 | 0 | 0 | 23 |ETAN | 5 | 0 | 1 | 0 | 77 |MXLDEPTH| 6 | 0 | 1 | 0 | - 202 |IDEM_F_b| 7 | 0 | 1 | 0 | - 203 |IDEM_F_s| 8 | 0 | 1 | 0 | - 204 |IDEM_F_g| 9 | 0 | 1 | 0 | - 194 |GGL90flx| 10 | 0 | 1 | 0 | - 195 |GGL90tau| 11 | 0 | 1 | 0 | + 208 |IDEM_F_b| 7 | 0 | 1 | 0 | + 209 |IDEM_F_s| 8 | 0 | 1 | 0 | + 210 |IDEM_F_g| 9 | 0 | 1 | 0 | + 199 |GGL90flx| 10 | 0 | 1 | 0 | + 200 |GGL90tau| 11 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: diags3D nFlds, nActive, freq & phase , nLev @@ -2108,14 +2149,14 @@ listId= 2 ; file name: diags3D 30 |UVEL | 42 | 57 | 15 | 0 | 0 | 31 |VVEL | 57 | 42 | 15 | 0 | 0 | 32 |WVEL | 72 | 0 | 15 | 0 | - 188 |GGL90TKE| 87 | 0 | 15 | 0 | - 193 |GGL90Kr | 102 | 0 | 15 | 0 | - 196 |IDEMIX_E| 117 | 0 | 15 | 0 | - 200 |IDEMIX_K| 132 | 0 | 15 | 0 | - 201 |IDEMIX_F| 147 | 0 | 15 | 0 | - 198 |IDEMIX_v| 162 | 0 | 15 | 0 | - 197 |IDEMIX_c| 177 | 0 | 15 | 0 | - 199 |IDEMIX_t| 192 | 0 | 15 | 0 | + 191 |GGL90TKE| 87 | 0 | 15 | 0 | + 197 |GGL90Kr | 102 | 0 | 15 | 0 | + 201 |IDEMIX_E| 117 | 0 | 15 | 0 | + 206 |IDEMIX_K| 132 | 0 | 15 | 0 | + 207 |IDEMIX_F| 147 | 0 | 15 | 0 | + 204 |IDEMIX_v| 162 | 0 | 15 | 0 | + 203 |IDEMIX_c| 177 | 0 | 15 | 0 | + 205 |IDEMIX_t| 192 | 0 | 15 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 0 ------------------------------------------------------------------------ @@ -2307,18 +2348,18 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 - cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 2.64520401917383E+00 + cg2d: Sum(rhs),rhsMax = 1.04360964314765E-14 2.64520401917383E+00 (PID.TID 0000.0001) cg2d_init_res = 5.58822337956443E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 139 -(PID.TID 0000.0001) cg2d_last_res = 8.32141260011278E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.32141265595548E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0324117148352E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3210004431069E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.5281794300793E-18 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0324117148345E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3210004431070E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.2640897150396E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 4.4344471918000E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5909166548568E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1744676637344E-02 @@ -2333,7 +2374,7 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4141613392214E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0855530914353E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -9.8396819921400E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.8718522581178E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.4608226000495E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2122659629746E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7008446305722E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9717076062146E+01 @@ -2394,10 +2435,10 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.37884408973423E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.81232322473256E-01 + cg2d: Sum(rhs),rhsMax = -4.10782519111308E-15 2.37884408973422E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.81232322474891E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 138 -(PID.TID 0000.0001) cg2d_last_res = 9.86994973216318E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.86994975839760E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2407,32 +2448,32 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.5760995105322E+00 (PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2602891896571E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2927829184694E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4201762211697E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0481261742316E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4201762211696E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0481261742315E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7233665906022E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.2222165955539E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4935802140573E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.7224541374671E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4935802143402E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.7224541377901E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0679328667827E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2391266087981E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0825851958483E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.8178035008633E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1939090075861E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0825851958482E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.8178035009601E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1939090085523E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4850482901394E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2994222430949E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1120816968024E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6328070384579E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2986676462224E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.2828819161860E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6328070384631E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2986676462696E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9703777692972E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9013272428997E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6187150263427E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4142740678581E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5451631399023E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4142740678717E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5451623611856E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7450452370452E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9752956048926E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717930286047E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9599295263422E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0172408491796E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9599295264377E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0172408267816E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2798718261719E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8609266001383E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6675181426744E+01 @@ -2460,66 +2501,66 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4636987924417E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6620968412026E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5633734311014E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1798767270133E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1798767270132E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6427692900569E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2121622365289E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6626364892377E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.2761412904532E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.5846715085310E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 3.5846715085309E-04 (PID.TID 0000.0001) %MON ke_max = 2.0775791857689E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1419970743167E-05 +(PID.TID 0000.0001) %MON ke_mean = 2.1419970744571E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 (PID.TID 0000.0001) %MON vort_r_min = -2.4278157835472E-07 (PID.TID 0000.0001) %MON vort_r_max = 2.1370023960690E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807203329E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604169436087E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655554883E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162500996377E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0338979052913E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.1572053945311E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162500996379E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0338978852203E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.1572054017769E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 - cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 2.20486080157103E+00 -(PID.TID 0000.0001) cg2d_init_res = 4.05101146512811E-01 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 2.20486080157101E+00 +(PID.TID 0000.0001) cg2d_init_res = 4.05101172804556E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 138 -(PID.TID 0000.0001) cg2d_last_res = 8.95429448748486E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.95429417847564E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.6579425110887E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5896768336351E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7093066072825E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5510480102435E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3412795207760E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0685407848774E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.9965914203160E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4471593237465E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6635359514134E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8110038105675E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2599588418823E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8607992735025E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.5199970916471E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2697110636819E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.7165140574119E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8258249607488E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5416451530436E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7010520387342E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9920528953433E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7643016187316E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.6579425095052E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5896768466027E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.0563588601586E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5510480089388E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3412795148312E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0685407841268E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.9965914203646E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4471593264068E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6635359489146E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8110038210526E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2599588418821E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8607992772898E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.5199970854813E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2697110657131E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.7165140447810E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8258249607439E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5416451530026E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6441186322730E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9920528996341E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7643016379213E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9695782894323E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9006418175409E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6186703725212E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4131656616833E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5924364547554E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6186703724849E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4131656617144E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5924345672564E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7444318102593E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9750324657384E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717930447420E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9583107561837E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0263288550766E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9583107561631E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0263288822918E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2903536987305E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8562549743652E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6662669470921E+01 @@ -2545,68 +2586,68 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1440480618348E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5513649503191E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4740184358134E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8542673516492E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8542673516494E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1612438615113E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2907674805560E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2788207513427E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5272272267783E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.8249914569638E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5914377013011E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.9430398583194E-04 -(PID.TID 0000.0001) %MON ke_max = 3.6286966995962E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.4067770418314E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2907674805562E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2788212321165E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5272272275141E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.8249914569175E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5914377012488E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.9430398564659E-04 +(PID.TID 0000.0001) %MON ke_max = 3.6286967000520E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.4067770420882E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.7426061450027E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.3337380298912E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.7426061450045E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.3337380298944E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807100877E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604185547227E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604185547229E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655425795E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162490696471E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.7925287680814E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.8576137008216E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162490696474E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.7925287255054E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.8576134896777E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 2.00710277647426E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.47404787713429E-01 + cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 2.00710277647493E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.47404821862348E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 138 -(PID.TID 0000.0001) cg2d_last_res = 8.10566123037875E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.10565982621858E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9318832213169E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5354918886373E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.6225435440634E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5353992099200E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2733415058030E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1327031738056E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0593584045282E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.8214121075810E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.9208004148076E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6708434328704E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3811610600136E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2527893310200E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5258284413087E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4778585143132E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9344005527621E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0694599602313E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6979419174724E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.4021040774683E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2630209365745E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0738094053106E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9694421440997E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8998308971257E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6187797176151E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4133154266066E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5184979734883E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9318832215627E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5354918970363E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.6225435440634E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5353992073947E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2733415184453E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1327031716907E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0593584047598E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.8214121150118E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.9208011008642E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6708412398491E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3811610589744E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2527893325047E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5258284240086E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4778585410136E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9344004423808E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0694599602085E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6979419178430E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4003189613484E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2630209436348E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0738094582839E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9694421441002E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8998308971226E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6187797175056E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4133154266806E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5184937965348E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7439176275343E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9746526636792E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717937971578E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9580153016861E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0237056377194E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717937971581E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9580153017401E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0237057593942E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3008355712891E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8515833485921E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6650157515098E+01 @@ -2632,68 +2673,68 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0702855349740E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5662631572644E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4897783530480E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2792835961357E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4795442924087E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.2221472221523E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9067287093476E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7976685701175E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7723195142612E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6634141871903E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.9208397730278E-04 -(PID.TID 0000.0001) %MON ke_max = 5.4355898279751E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.8433885618416E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2792840770071E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4795442924259E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.2221472221220E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9067293509599E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7976685704059E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7723195141483E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6634141870625E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.9208397694504E-04 +(PID.TID 0000.0001) %MON ke_max = 5.4355898325035E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.8433889512591E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.7232030760908E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2591190545255E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.7232030761230E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2591190545615E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807014640E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604218172007E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604218172017E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655317138E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162480793532E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1194861405886E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6277558024291E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162480793587E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1194859869701E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6277560460023E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 1.78680552006858E+00 -(PID.TID 0000.0001) cg2d_init_res = 6.50454581356098E-01 + cg2d: Sum(rhs),rhsMax = 7.54951656745106E-15 1.78680552004422E+00 +(PID.TID 0000.0001) cg2d_init_res = 6.50454690804347E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 137 -(PID.TID 0000.0001) cg2d_last_res = 7.34232879439595E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.34233479533570E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 5.1840000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0340296944667E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4866066951526E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2602891896571E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.4313265113323E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1767472316093E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1143776334200E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8779911776337E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7673396876870E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2402416895755E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.3235216722874E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.2650876982429E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0373565958817E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7265664307428E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3981949268613E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8219587600152E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2176866590821E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7602987816721E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.9892893032801E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4371389486026E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2254142180994E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9696076055798E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0340296945498E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4866067152299E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.6225435440634E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.4313265046649E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1767472651554E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1143776332519E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8779911781049E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7673397010825E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2402428202303E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.3235179209200E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.2650876975503E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0373565966293E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7265667895554E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3981950520019E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.8219583754895E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2176866590388E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7602987821229E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.2810968000660E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4371389623297E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2254143491993E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9696076055815E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9010978573498E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6189244343036E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4133864708661E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4906669164810E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6189244340362E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4133864712638E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4906672567950E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434881061900E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9742090567484E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717946034765E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9575095040854E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0230850534086E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717946034775E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9575095037887E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0230849465104E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3113174438477E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8469117228190E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6637645559275E+01 @@ -2719,69 +2760,69 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9965230081132E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5826577347902E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5109215240509E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9073190867377E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7404375982142E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0668695648590E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4975168908124E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0154174938024E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.4594399837746E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4409452447976E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.7747919802284E-04 -(PID.TID 0000.0001) %MON ke_max = 7.3916505752032E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.3572531499737E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9073197284803E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7404375984935E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0668695647578E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4975176151840E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0154174952548E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.4594399835644E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4409452445597E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.7747919709607E-04 +(PID.TID 0000.0001) %MON ke_max = 7.3916503858276E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.3572539994617E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.7022624762742E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2605243908129E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.7022624800276E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2605235085183E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274806965077E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604258317326E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604258317352E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655254690E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162469117881E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1188556728717E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7382782831817E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162469118205E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1188556447145E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7382780423333E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3000000000 0.7000000000 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 1.56003720416176E+00 -(PID.TID 0000.0001) cg2d_init_res = 7.58288548136846E-01 + cg2d: Sum(rhs),rhsMax = 7.32747196252603E-15 1.56003720410589E+00 +(PID.TID 0000.0001) cg2d_init_res = 7.58288033618600E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 136 -(PID.TID 0000.0001) cg2d_last_res = 8.51975068106363E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.51977851533699E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 6.0480000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0879093310116E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4506236508308E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.8036707212666E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3201161946606E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0870016115279E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3020024567320E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4422688342361E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5576358436605E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5877996246748E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.7998179801469E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8729033416359E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1115928609226E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1073450501257E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0026611635704E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0382708892226E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3248313631424E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8661649727598E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.9323558968189E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5167466579660E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2316014324529E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9698141159398E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0879093311100E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4506236689132E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8112717720317E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3201161938022E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0870015561949E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3020024584614E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4422688229578E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5576358777023E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5878008244859E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.7998150049601E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8729033413704E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1115928630602E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1073450316278E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0026611909822E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0382708474850E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3248309037504E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8661648899619E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6441186322730E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5167466501154E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2316014374359E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9698141159443E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9015149273148E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6190524513741E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4136359733583E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4151145012342E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7431296402006E+01 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6190524510831E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4136359740070E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4151105463788E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7431296402007E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9737581287677E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717951781714E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9573957649299E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0212936469814E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164063E+02 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717951781711E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9573957645464E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0212937180306E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164062E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8422400970459E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6625133603452E+01 (PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1159198929743E+02 @@ -2806,68 +2847,68 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9227604812524E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6005326854092E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5373726950670E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4982272615076E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9512542192820E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6824149854647E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0236375028504E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1596466507114E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.8822758219019E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9194173774153E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.6217914194851E-04 -(PID.TID 0000.0001) %MON ke_max = 9.3936107570623E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.8689179240154E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4982279860263E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9512542206881E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6824149852764E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0236384816103E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1596466548644E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.8822740671741E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9194153918023E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.6217914183163E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3936100047883E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.8689191070711E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9542290304639E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.4571648077553E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.9542290448277E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.4571639587333E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274806970359E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604299405672E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604299405722E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655261345E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162455174045E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6001282282217E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.1412748361415E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162455175132E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6001280458642E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.1412749889592E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2666666667 0.7333333333 - cg2d: Sum(rhs),rhsMax = 9.10382880192628E-15 1.34056216067976E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.80397082298071E-01 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 1.34056216058508E+00 +(PID.TID 0000.0001) cg2d_init_res = 8.80397785038316E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 137 -(PID.TID 0000.0001) cg2d_last_res = 9.51326084649152E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.51318884783369E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 6.9120000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0581854481045E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4197671817531E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.6225435440634E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2385880427478E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9936376003453E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4700230214573E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7497140786364E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.0690261438945E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.9187926623713E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1470329624996E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2070028050372E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1490415607266E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0987549578121E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0373820118079E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0636572014555E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3503735115137E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9682954723460E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0569334064612E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5116894992670E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1148782872226E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9699838752251E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9024300666438E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6191461569904E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4136632644154E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3686809696809E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7428500444121E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9733531427286E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717955237706E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9571597118528E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0206175545760E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0581854480502E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4197671977232E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.0791620124539E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2385880337763E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9936376651813E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4700230158657E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7497142014334E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.0690264992643E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.9187937029161E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1470314223887E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2070028047665E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1490415741981E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0987550113071E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0373820560202E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0636571128014E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3503730828109E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9682954102325E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.9892893032801E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5116894643114E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1148783222254E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9699838752278E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9024300666484E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6191461565526E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4136632650839E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3686778371093E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7428500444127E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9733531427284E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717955237714E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9571597110952E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0206174250483E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3322811889648E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8375684712728E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6612621647628E+01 @@ -2893,68 +2934,68 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8489979543915E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6198708258185E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5690396795039E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0244547324048E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0908916650358E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.0612054237871E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4612470708747E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2324034683812E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0460535225855E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1047447755572E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.5116376349069E-04 -(PID.TID 0000.0001) %MON ke_max = 1.1348702713848E-02 -(PID.TID 0000.0001) %MON ke_mean = 9.3054100867484E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0244557113635E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0908916690566E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.0612038518435E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4612481757346E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2324034945542E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0460519972634E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1047430495349E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.5116376228790E-04 +(PID.TID 0000.0001) %MON ke_max = 1.1348700919041E-02 +(PID.TID 0000.0001) %MON ke_mean = 9.3054114365193E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9610806940275E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.5844822803828E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.9610807513283E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.5844832170880E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807024393E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604336601413E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604336601498E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655329427E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162439088731E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.2765666614409E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4972668361343E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162439091279E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.2765665274513E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4972668194358E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2333333333 0.7666666667 - cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 1.17833084095983E+00 -(PID.TID 0000.0001) cg2d_init_res = 9.71286758147289E-01 + cg2d: Sum(rhs),rhsMax = 1.26565424807268E-14 1.17833009089952E+00 +(PID.TID 0000.0001) cg2d_init_res = 9.71286874063816E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 137 -(PID.TID 0000.0001) cg2d_last_res = 8.61244861521608E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.61248914437431E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 7.7760000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7064771144248E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3904640651519E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.9847978984698E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2049155715277E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9154089808730E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6129970952847E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8033948479943E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5155664205261E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1191154574655E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.4123434239665E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4601873400303E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1734951394365E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2372652685863E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0466806678177E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0626811947299E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2998948894993E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0125965910239E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.8718522581178E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4378791994161E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9067840701293E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9701554244060E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9029608145822E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6192148987312E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4137537967719E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3031727856030E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7429171514078E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9730263144636E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7064771096309E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3904639345245E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.0563588601586E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2049155577954E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9154090300794E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6129970843500E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8033950490870E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5155663848813E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1191155134963E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.4123420744095E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4601874774100E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1734951796884E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2372653099776E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0466807397254E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0626810924337E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2998945103030E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0125964594168E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.2313038580847E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4378791574450E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9067840461360E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9701554244110E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9029608145828E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6192148982054E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4137537976682E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3031688160313E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7429171514079E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9730263144629E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717957138047E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9570782027377E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0195487308836E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9570782028153E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0195485915793E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3427630615234E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8328968454997E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6600109691805E+01 @@ -2980,68 +3021,68 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7752354275308E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6406538642117E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6058148956476E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4621531820622E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1613321806592E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2079229473162E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7929853904511E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2799128499320E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9659045374424E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.0140498713164E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.4666386816095E-04 -(PID.TID 0000.0001) %MON ke_max = 1.3175818283630E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.0614040543521E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4621542871465E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1613322059989E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2079215808818E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7929863029223E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2799129281350E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9659031809752E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.0140483363667E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.4666386633173E-04 +(PID.TID 0000.0001) %MON ke_max = 1.3175815031586E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0614041789137E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.3655851631675E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.8033634234907E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.3655854313803E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8033634236437E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807106651E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604366514115E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604366514246E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655433070E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162421249315E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.8598858911882E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0659779098084E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162421254210E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.8599023220637E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0659781136373E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2000000000 0.8000000000 - cg2d: Sum(rhs),rhsMax = -1.37667655053519E-14 1.11384181227033E+00 -(PID.TID 0000.0001) cg2d_init_res = 9.66721968064945E-01 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 1.11384176206381E+00 +(PID.TID 0000.0001) cg2d_init_res = 9.66722232907589E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 137 -(PID.TID 0000.0001) cg2d_last_res = 7.75242974872046E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.75240820665285E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.5734360593366E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3657496383835E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.6225435440634E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2217644926756E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8462579955141E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7267114277613E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9847105264351E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1129298811225E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2364105290348E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.6330303150791E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.7825518692651E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1635073451098E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7662934635690E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0348133529497E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0410848220091E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1820189243767E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9981555021748E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3158654321943E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6460495996792E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9703702772276E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9042579550421E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6192699559835E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4137051550997E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2684878171743E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7429607064224E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9727885942481E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717958354916E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9568752415401E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0197622895550E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.5734360481081E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3657495619793E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.9771968477047E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2217644756143E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8462581237532E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7267113989720E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9847105240217E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1129298133935E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2364105321586E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.6330289279397E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.7825520913971E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1635074859742E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7662934922688E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0348134528414E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0410847050146E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1820185866244E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9981553723288E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5619127006593E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3158653844074E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6460495367399E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9703702772294E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9042579550384E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6192699551786E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4137051555861E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2684828841107E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7429607064225E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9727885942471E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717958354915E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9568752402320E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0197622590780E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3532449340820E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8282252197266E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6587597735982E+01 @@ -3067,171 +3108,171 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7014729006700E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6628624802842E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6475770842672E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7939588800639E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2073290430917E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.1361228147921E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0092736195392E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2605081674049E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6673429746046E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6762038923157E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.4891188389046E-04 -(PID.TID 0000.0001) %MON ke_max = 1.4810165546234E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.1760467614129E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7939597927204E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2073291188049E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.1361215996236E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0092746025912E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2605084410818E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6673417579427E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6762025155668E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.4891188161043E-04 +(PID.TID 0000.0001) %MON ke_max = 1.4810160298696E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.1760468577244E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.7037649866944E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.9782510030804E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.7037652751199E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9782510031810E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807184605E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604387928554E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655531290E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162402674002E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.7971796785102E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.6201909178326E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604387928740E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845655531291E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162402682063E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.7971733152994E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.6201969757268E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 19.736998734995723 -(PID.TID 0000.0001) System time: 0.13297999463975430 -(PID.TID 0000.0001) Wall clock time: 20.012324094772339 +(PID.TID 0000.0001) User time: 12.284670663066208 +(PID.TID 0000.0001) System time: 0.34731400525197387 +(PID.TID 0000.0001) Wall clock time: 12.708964109420776 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.24696200899779797 -(PID.TID 0000.0001) System time: 3.79939991980791092E-002 -(PID.TID 0000.0001) Wall clock time: 0.29831290245056152 +(PID.TID 0000.0001) User time: 0.17795599438250065 +(PID.TID 0000.0001) System time: 0.12306899763643742 +(PID.TID 0000.0001) Wall clock time: 0.35041093826293945 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 19.490036725997925 -(PID.TID 0000.0001) System time: 9.49859954416751862E-002 -(PID.TID 0000.0001) Wall clock time: 19.713971138000488 +(PID.TID 0000.0001) User time: 12.106621980667114 +(PID.TID 0000.0001) System time: 0.22421099245548248 +(PID.TID 0000.0001) Wall clock time: 12.358454942703247 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.84087204933166504 -(PID.TID 0000.0001) System time: 3.79949994385242462E-002 -(PID.TID 0000.0001) Wall clock time: 0.89962816238403320 +(PID.TID 0000.0001) User time: 0.57308998703956604 +(PID.TID 0000.0001) System time: 0.16311900317668915 +(PID.TID 0000.0001) Wall clock time: 0.75866699218750000 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 18.649164676666260 -(PID.TID 0000.0001) System time: 5.69909960031509399E-002 -(PID.TID 0000.0001) Wall clock time: 18.814314842224121 +(PID.TID 0000.0001) User time: 11.533509314060211 +(PID.TID 0000.0001) System time: 6.1084002256393433E-002 +(PID.TID 0000.0001) Wall clock time: 11.599760055541992 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 18.649164676666260 -(PID.TID 0000.0001) System time: 5.69909960031509399E-002 -(PID.TID 0000.0001) Wall clock time: 18.814217567443848 +(PID.TID 0000.0001) User time: 11.533402919769287 +(PID.TID 0000.0001) System time: 6.1079978942871094E-002 +(PID.TID 0000.0001) Wall clock time: 11.599648714065552 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 18.649164676666260 -(PID.TID 0000.0001) System time: 5.69909960031509399E-002 -(PID.TID 0000.0001) Wall clock time: 18.814039707183838 +(PID.TID 0000.0001) User time: 11.533233761787415 +(PID.TID 0000.0001) System time: 6.1075985431671143E-002 +(PID.TID 0000.0001) Wall clock time: 11.599479198455811 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.09904432296752930E-002 -(PID.TID 0000.0001) System time: 9.99003648757934570E-004 -(PID.TID 0000.0001) Wall clock time: 7.26680755615234375E-002 +(PID.TID 0000.0001) User time: 4.6841442584991455E-002 +(PID.TID 0000.0001) System time: 3.2496452331542969E-004 +(PID.TID 0000.0001) Wall clock time: 4.7203302383422852E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.59969234466552734E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.63915061950683594E-002 +(PID.TID 0000.0001) User time: 1.8331289291381836E-002 +(PID.TID 0000.0001) System time: 7.7992677688598633E-005 +(PID.TID 0000.0001) Wall clock time: 1.8439531326293945E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.59969234466552734E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.62029170989990234E-002 +(PID.TID 0000.0001) User time: 1.8158435821533203E-002 +(PID.TID 0000.0001) System time: 7.5012445449829102E-005 +(PID.TID 0000.0001) Wall clock time: 1.8271684646606445E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.39369201660156250E-005 +(PID.TID 0000.0001) User time: 8.5711479187011719E-005 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 8.5830688476562500E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.2602006196975708 -(PID.TID 0000.0001) System time: 9.99994575977325439E-004 -(PID.TID 0000.0001) Wall clock time: 5.2741181850433350 +(PID.TID 0000.0001) User time: 3.1633465886116028 +(PID.TID 0000.0001) System time: 8.6799263954162598E-004 +(PID.TID 0000.0001) Wall clock time: 3.1655299663543701 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 3.2874964475631714 -(PID.TID 0000.0001) System time: 9.99994575977325439E-004 -(PID.TID 0000.0001) Wall clock time: 3.2958803176879883 +(PID.TID 0000.0001) User time: 1.8594989180564880 +(PID.TID 0000.0001) System time: 6.4197182655334473E-004 +(PID.TID 0000.0001) Wall clock time: 1.8610417842864990 (PID.TID 0000.0001) No. starts: 360 (PID.TID 0000.0001) No. stops: 360 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.7324318885803223 +(PID.TID 0000.0001) User time: 2.3925098180770874 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.7405195236206055 +(PID.TID 0000.0001) Wall clock time: 2.3935093879699707 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9282488822937012 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.9442491531372070 +(PID.TID 0000.0001) User time: 3.0368694067001343 +(PID.TID 0000.0001) System time: 8.8006258010864258E-005 +(PID.TID 0000.0001) Wall clock time: 3.0391211509704590 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.79891014099121094E-002 +(PID.TID 0000.0001) User time: 4.3323755264282227E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.58225917816162109E-002 +(PID.TID 0000.0001) Wall clock time: 4.3335676193237305E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5126147270202637 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.5192821025848389 +(PID.TID 0000.0001) User time: 1.5061788558959961 +(PID.TID 0000.0001) System time: 3.4280121326446533E-003 +(PID.TID 0000.0001) Wall clock time: 1.5100038051605225 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11798453330993652 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11712479591369629 +(PID.TID 0000.0001) User time: 0.10408604145050049 +(PID.TID 0000.0001) System time: 6.8038702011108398E-005 +(PID.TID 0000.0001) Wall clock time: 0.10417270660400391 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21096515655517578 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.21174097061157227 +(PID.TID 0000.0001) User time: 0.13592636585235596 +(PID.TID 0000.0001) System time: 4.8702955245971680E-004 +(PID.TID 0000.0001) Wall clock time: 0.13644003868103027 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.09910964965820313E-004 +(PID.TID 0000.0001) User time: 8.7141990661621094E-005 +(PID.TID 0000.0001) System time: 9.8347663879394531E-007 +(PID.TID 0000.0001) Wall clock time: 8.8930130004882812E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.74588966369628906 -(PID.TID 0000.0001) System time: 4.99899685382843018E-003 -(PID.TID 0000.0001) Wall clock time: 0.75402212142944336 +(PID.TID 0000.0001) User time: 0.37631261348724365 +(PID.TID 0000.0001) System time: 7.8179836273193359E-003 +(PID.TID 0000.0001) Wall clock time: 0.38428330421447754 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.87186717987060547 -(PID.TID 0000.0001) System time: 5.00000268220901489E-003 -(PID.TID 0000.0001) Wall clock time: 0.87687444686889648 +(PID.TID 0000.0001) User time: 0.62040627002716064 +(PID.TID 0000.0001) System time: 3.9439797401428223E-003 +(PID.TID 0000.0001) Wall clock time: 0.62452626228332520 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.99968719482421875E-002 -(PID.TID 0000.0001) System time: 1.69970020651817322E-002 -(PID.TID 0000.0001) Wall clock time: 4.71360683441162109E-002 +(PID.TID 0000.0001) User time: 3.3963441848754883E-002 +(PID.TID 0000.0001) System time: 1.6038000583648682E-002 +(PID.TID 0000.0001) Wall clock time: 5.0024032592773438E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.19888305664062500E-002 -(PID.TID 0000.0001) System time: 2.79959961771965027E-002 -(PID.TID 0000.0001) Wall clock time: 0.15220117568969727 +(PID.TID 0000.0001) User time: 5.3177833557128906E-002 +(PID.TID 0000.0001) System time: 2.7902007102966309E-002 +(PID.TID 0000.0001) Wall clock time: 8.1173896789550781E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -3634,9 +3675,9 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 17290 +(PID.TID 0000.0001) // No. barriers = 17302 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 17290 +(PID.TID 0000.0001) // Total barrier spins = 17302 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output.txt b/verification/global_ocean.90x40x15/results/output.txt index a72bbf9138..20a944e4d8 100644 --- a/verification/global_ocean.90x40x15/results/output.txt +++ b/verification/global_ocean.90x40x15/results/output.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 11:46:16 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67v +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Sat Feb 20 22:34:56 EST 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -51,8 +51,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -170,7 +172,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) > the_run_name= 'global_ocean.90x40x15', (PID.TID 0000.0001) > EmPmRFile= 'ncep_emp.bin', (PID.TID 0000.0001) > / @@ -205,7 +207,6 @@ (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/ggl90 compiled but not used ( useGGL90 = F ) - pkg/kpp compiled but not used ( useKPP = F ) pkg/gmredi compiled and used ( useGMRedi = T ) pkg/down_slope compiled but not used ( useDOWN_SLOPE = F ) pkg/sbo compiled and used ( useSBO = T ) @@ -667,6 +668,9 @@ (PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_stayPositive = /* use Smolarkiewicz Hack for Temperature */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; @@ -685,10 +689,16 @@ (PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_stayPositive = /* use Smolarkiewicz Hack for Salinity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SmolarkiewiczMaxFrac = /* maximal fraction of tracer to flow out of a cell */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 210 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 216 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ @@ -704,14 +714,14 @@ (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 64 RHOAnoma (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 78 DRHODR (PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 79 CONVADJ -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 199 GM_Kwx -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 200 GM_Kwy -(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 201 GM_Kwz +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 205 GM_Kwx +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 206 GM_Kwy +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 207 GM_Kwz (PID.TID 0000.0001) space allocated for all diagnostics: 185 levels (PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 (PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 -(PID.TID 0000.0001) set mate pointer for diag # 199 GM_Kwx , Parms: UM LR , mate: 200 -(PID.TID 0000.0001) set mate pointer for diag # 200 GM_Kwy , Parms: VM LR , mate: 199 +(PID.TID 0000.0001) set mate pointer for diag # 205 GM_Kwx , Parms: UM LR , mate: 206 +(PID.TID 0000.0001) set mate pointer for diag # 206 GM_Kwy , Parms: VM LR , mate: 205 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: surfDiag (PID.TID 0000.0001) Levels: 1. (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag @@ -872,10 +882,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95P' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -933,7 +949,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -1024,8 +1040,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1046,41 +1063,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1144,6 +1139,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1163,6 +1164,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1274,9 +1278,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1334,6 +1335,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1965,6 +1978,9 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SBO_CHECK: #define ALLOW_SBO (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -2049,9 +2065,9 @@ listId= 3 ; file name: oceDiag 64 |RHOAnoma| 96 | 0 | 15 | 0 | 78 |DRHODR | 111 | 0 | 15 | 0 | 79 |CONVADJ | 126 | 0 | 15 | 0 | - 199 |GM_Kwx | 141 | 156 | 15 | 0 | 0 | - 200 |GM_Kwy | 156 | 141 | 15 | 0 | 0 | - 201 |GM_Kwz | 171 | 0 | 15 | 0 | + 205 |GM_Kwx | 141 | 156 | 15 | 0 | 0 | + 206 |GM_Kwy | 156 | 141 | 15 | 0 | 0 | + 207 |GM_Kwz | 171 | 0 | 15 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 2 ------------------------------------------------------------------------ @@ -2189,20 +2205,20 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sss.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sss.bin (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 3.42311208786406E-03 2.75919731685924E+00 -(PID.TID 0000.0001) cg2d_init_res = 4.15897087642617E-02 + cg2d: Sum(rhs),rhsMax = 3.42311208786761E-03 2.75919731685924E+00 +(PID.TID 0000.0001) cg2d_init_res = 4.15897087642607E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 123 -(PID.TID 0000.0001) cg2d_last_res = 9.68584295981593E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.68584296022951E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36001 (PID.TID 0000.0001) %MON time_secondsf = 3.1104864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6824510632031E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6824510632029E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.6653432668721E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.4810128210600E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.4810128210548E-05 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1186314921547E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6631389344342E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6631389344341E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4462957217396E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9262660563497E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1621538104304E-03 @@ -2210,14 +2226,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5334132014929E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2233001733216E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3294093918292E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.8584110344145E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.8584110344649E-07 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0781322050252E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6232643473239E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3552880854407E-05 (PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9200483025664E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5486912832837E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5486912832876E-10 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6815609733776E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9877971488390E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9877971488389E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0438770681571E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6410428553460E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9388941899039E+00 @@ -2260,7 +2276,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5828292366912E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9836648971273E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3802565211782E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7905987888982E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7905987888983E-04 (PID.TID 0000.0001) %MON ke_max = 1.8572606764241E-02 (PID.TID 0000.0001) %MON ke_mean = 8.6603085922526E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436728E+18 @@ -2270,28 +2286,28 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604636911274E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845610909613E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163812376184E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.8902463587003E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2747119509670E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.8902463586790E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2747119508329E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689719590546E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -2.3146196133338E+13 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -2.3146196133335E+13 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9532857844541E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135162431005E+30 EXTERNAL_FIELDS_LOAD, 36001 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 - cg2d: Sum(rhs),rhsMax = 6.83216261620023E-03 2.78230704867709E+00 -(PID.TID 0000.0001) cg2d_init_res = 6.86770494710753E-02 + cg2d: Sum(rhs),rhsMax = 6.83216261619579E-03 2.78230704867708E+00 +(PID.TID 0000.0001) cg2d_init_res = 6.86770494716447E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 128 -(PID.TID 0000.0001) cg2d_last_res = 8.52239326388575E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.52239327347677E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36002 (PID.TID 0000.0001) %MON time_secondsf = 3.1105728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7019724290899E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6709099608201E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3043743564765E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7019724290896E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6709099608202E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3043743564755E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1439261885960E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6793022094916E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4441069935070E-01 @@ -2301,12 +2317,12 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5268982288847E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2230666714815E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3265793814323E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0024497038834E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0024497038836E-05 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0738889617342E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6183733869708E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3665530593278E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3665530593279E-05 (PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9089392259081E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4417598347843E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4417598347095E-11 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6751179510920E-06 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9814952518259E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0440968822447E+01 @@ -2344,7 +2360,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2915731155564E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5261152700224E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4588571962377E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3825004005583E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3825004005582E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1526065208986E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2240067353522E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3824306318677E-02 @@ -2361,28 +2377,28 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635516732E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845611409675E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163813699216E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9168802148296E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4252212965865E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9168802148662E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4252212969656E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689719356165E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -4.6584238482272E+13 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -4.6584238482302E+13 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9103297377372E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135156781181E+30 EXTERNAL_FIELDS_LOAD, 36002 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 - cg2d: Sum(rhs),rhsMax = 1.03460014793149E-02 2.77326095288744E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.63815451678519E-02 + cg2d: Sum(rhs),rhsMax = 1.03460014793157E-02 2.77326095288743E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.63815451683437E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 123 -(PID.TID 0000.0001) cg2d_last_res = 9.56665098422173E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.56665100097018E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36003 (PID.TID 0000.0001) %MON time_secondsf = 3.1106592000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6971748016203E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6729986571216E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.9688030547046E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6971748016200E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6729986571218E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.9688030547051E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1533047008644E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6716067877585E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4422554218561E-01 @@ -2392,14 +2408,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5223244461310E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2226802326395E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3234782754242E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.4631538995636E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.4631538995704E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0706339284152E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6128887795787E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3753254577009E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8945954197327E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6159824043491E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3753254577007E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8945954197328E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6159824043531E-10 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6736496682588E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9829607230792E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9829607230791E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0442596099322E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6414073544617E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9390707661769E+00 @@ -2437,7 +2453,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4636987924417E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3832372887896E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1337831422650E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2219872186418E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2219872186419E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3835106891776E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5713060287530E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9607263978781E-02 @@ -2452,30 +2468,30 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635130947E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845611739431E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163818918643E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.0968148449333E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3686150446976E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.0968148449182E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3686150444929E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689719118872E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -7.0313549610689E+13 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -7.0313549610710E+13 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.8976093055556E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135159604331E+30 EXTERNAL_FIELDS_LOAD, 36003 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 - cg2d: Sum(rhs),rhsMax = 1.38865340249761E-02 2.77203834793432E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.65209784605713E-02 + cg2d: Sum(rhs),rhsMax = 1.38865340249752E-02 2.77203834793433E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.65209784613619E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 122 -(PID.TID 0000.0001) cg2d_last_res = 7.94808114257125E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.94808114190170E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36004 (PID.TID 0000.0001) %MON time_secondsf = 3.1107456000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6932100050986E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6724762491129E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6413873767897E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6932100050993E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6724762491131E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6413873767906E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1544711091181E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6694829922219E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6694829922218E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4405524471649E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9032999190315E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1489017253519E-03 @@ -2483,14 +2499,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5170745583186E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2222793265304E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3201955038425E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.4528876447951E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.4528876447953E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0674202566988E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6068678735224E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3838881764683E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8759344811861E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6068678735225E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3838881764675E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8759344811862E-05 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2584010203131E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6721426083547E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9848327563018E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6721426083546E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9848327563010E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0443695472807E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6417546924026E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9391601066803E+00 @@ -2543,28 +2559,28 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635106360E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845612328464E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163821783151E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.6476783534244E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2698736848197E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.6476783534301E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2698736849076E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689718878667E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -9.4334129518546E+13 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -9.4334129518519E+13 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.8963449913914E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135160044826E+30 EXTERNAL_FIELDS_LOAD, 36004 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 - cg2d: Sum(rhs),rhsMax = 1.74657933797993E-02 2.77197272978813E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.59782316198008E-02 + cg2d: Sum(rhs),rhsMax = 1.74657933797870E-02 2.77197272978811E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.59782316199856E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 121 -(PID.TID 0000.0001) cg2d_last_res = 9.65958853863644E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.65958853319831E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36005 (PID.TID 0000.0001) %MON time_secondsf = 3.1108320000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6892535068320E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6712616128400E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3221273227321E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6892535068311E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6712616128391E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3221273227323E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1524249433801E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6692910518520E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4390009906021E-01 @@ -2574,14 +2590,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5114302942885E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2219640747788E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3167342608298E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1410031591728E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.1410031591704E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0644831125142E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6005485602808E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3913076595219E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6005485602809E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3913076595210E-05 (PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8641517713922E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2630943482647E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6707489271003E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9875628554089E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2630943482739E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6707489271002E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9875628554085E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0444269344755E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6449778144334E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9392496945297E+00 @@ -2620,7 +2636,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3847944424185E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0923571491313E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2168405604645E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3840106699170E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3840106699171E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5582034900060E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9547102932478E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2603978088943E-02 @@ -2634,30 +2650,30 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635279148E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845613010637E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163822744726E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.7955619020293E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1981132002998E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.7955619020391E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1981132001479E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689718635548E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.1864597820578E+14 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.1864597820579E+14 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9007886839031E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135159011848E+30 EXTERNAL_FIELDS_LOAD, 36005 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 - cg2d: Sum(rhs),rhsMax = 2.10891889918974E-02 2.77176406787436E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.62270337801729E-02 + cg2d: Sum(rhs),rhsMax = 2.10891889919167E-02 2.77176406787433E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.62270337796964E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.20881547475961E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.20881544438348E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36006 (PID.TID 0000.0001) %MON time_secondsf = 3.1109184000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6826317283011E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6700937409257E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.0110228925321E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6826317283006E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6700937409252E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.0110228925317E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1496743499251E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6690181724835E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6690181724834E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4376234315992E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8872750889524E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1482658955381E-03 @@ -2665,14 +2681,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5055833169087E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2216844086835E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3130576372202E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.5531232524628E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.5531232525131E-07 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0618286907941E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5940329822130E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3972464706947E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8557332473083E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9511751146303E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6695151018117E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9905367568508E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5940329822131E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3972464706933E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8557332473082E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9511751146286E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6695151018115E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9905367568507E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0444322587133E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6451877447495E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9393394569536E+00 @@ -2715,7 +2731,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5510603999920E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9513272212439E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2292356941894E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.8393347004948E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 4.8393347004949E-04 (PID.TID 0000.0001) %MON ke_max = 1.7756619693084E-02 (PID.TID 0000.0001) %MON ke_mean = 8.6173565895332E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226781290385E+18 @@ -2725,45 +2741,45 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635537824E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845613662159E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163822515409E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.4076227623761E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1646041457965E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.4076227623656E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1646041458933E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689718389517E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.4324909567248E+14 -(PID.TID 0000.0001) %SBO sbo_zoamc = 8.9083345733256E+24 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.4324909567249E+14 +(PID.TID 0000.0001) %SBO sbo_zoamc = 8.9083345733257E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135157498842E+30 EXTERNAL_FIELDS_LOAD, 36006 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3000000000 0.7000000000 - cg2d: Sum(rhs),rhsMax = 2.47557443650954E-02 2.77158560743332E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.68326827027795E-02 + cg2d: Sum(rhs),rhsMax = 2.47557443651019E-02 2.77158560743333E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.68326827026292E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 9.79699919936978E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.79699919903276E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36007 (PID.TID 0000.0001) %MON time_secondsf = 3.1110048000000E+09 (PID.TID 0000.0001) %MON dynstat_eta_max = 9.6723050440001E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6691132839547E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7080740861876E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6691132839542E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7080740861884E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1471709882832E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6685585271934E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6685585271933E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4364254386443E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8790667517931E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1484257575825E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2193227401271E-02 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4995977269060E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2213758926316E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2213758926317E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3091381658988E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0687262297214E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0687262297244E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0593854472582E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5872996305141E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4013563886161E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8483304717627E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6598152852328E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6685373242538E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9935243297224E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5872996305142E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4013563886152E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8483304717624E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6598152852204E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6685373242536E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9935243297219E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0443860724882E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6442493733395E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9394292907338E+00 @@ -2774,7 +2790,7 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4731878671487E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9652415785424E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0300215512760E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164063E+02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164062E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8422400970459E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6625133603452E+01 (PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1159198929743E+02 @@ -2802,10 +2818,10 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3842913583500E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0459542584000E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2092427165678E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3823156910137E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3823156910140E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5434454958223E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9483523384200E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2058751713676E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9483523384199E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2058751713675E-02 (PID.TID 0000.0001) %MON pe_b_mean = 4.8353964511756E-04 (PID.TID 0000.0001) %MON ke_max = 1.7587661410500E-02 (PID.TID 0000.0001) %MON ke_mean = 8.6125703567468E-05 @@ -2816,47 +2832,47 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604635849939E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845614246386E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163822081184E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2760381513382E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1566163013026E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2760381513386E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1566163012421E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689718140573E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.6814348191860E+14 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.6814348191862E+14 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9172001280774E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135156073511E+30 EXTERNAL_FIELDS_LOAD, 36007 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2666666667 0.7333333333 - cg2d: Sum(rhs),rhsMax = 2.84651996813889E-02 2.77145178609531E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.71530555528311E-02 + cg2d: Sum(rhs),rhsMax = 2.84651996813889E-02 2.77145178609530E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.71530555539156E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 120 -(PID.TID 0000.0001) cg2d_last_res = 8.41304010058253E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.41304010420480E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36008 (PID.TID 0000.0001) %MON time_secondsf = 3.1110912000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6584853491223E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6682635734493E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6584853491227E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6682635734498E+00 (PID.TID 0000.0001) %MON dynstat_eta_mean = -5.4132809037020E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1450858386097E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6679523038964E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6679523038965E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4354036517510E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8707557824470E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1486089053302E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1486089053303E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2190788099789E-02 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4935091765741E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2210125333725E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3049734484194E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.2869957609853E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.2869957609874E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0571082880607E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5803968482513E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4033253635644E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8426949289952E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2962073911058E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6677509347759E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9961477914184E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5803968482514E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4033253635636E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8426949289947E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2962073911226E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6677509347758E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9961477914183E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0442889435359E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6442406481397E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6442406481396E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9395192620288E+00 (PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5467753900050E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6481414984903E-03 @@ -2890,13 +2906,13 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8489979543915E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6198708258185E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5690396795039E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3831222340111E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3831222340114E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0210104698297E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2058751713676E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3805275474949E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2058751713675E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3805275474953E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5353541177001E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9460876365823E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2033122712482E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9460876365821E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2033122712480E-02 (PID.TID 0000.0001) %MON pe_b_mean = 4.8321176316716E-04 (PID.TID 0000.0001) %MON ke_max = 1.7418013669205E-02 (PID.TID 0000.0001) %MON ke_mean = 8.6086655718579E-05 @@ -2907,30 +2923,30 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604636129741E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845614780564E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163821596960E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2404414089598E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1597539610503E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2404414089505E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1597539608969E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689717888717E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.9332913694416E+14 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -1.9332913694415E+14 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9256004683368E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135154918354E+30 EXTERNAL_FIELDS_LOAD, 36008 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2333333333 0.7666666667 - cg2d: Sum(rhs),rhsMax = 3.22177513664481E-02 2.77133082311058E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.96708464382415E-02 + cg2d: Sum(rhs),rhsMax = 3.22177513664521E-02 2.77133082311074E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.96708464390942E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 121 -(PID.TID 0000.0001) cg2d_last_res = 8.83676766411749E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.83676767022004E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36009 (PID.TID 0000.0001) %MON time_secondsf = 3.1111776000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6421416110391E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6674818165401E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.1266433450733E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6421416110390E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6674818165397E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.1266433450726E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1433278450036E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6673948829884E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6673948829885E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4345491341803E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8623547742977E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1486121176149E-03 @@ -2938,14 +2954,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4873767464088E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2205990286340E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3005768972800E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.5797408603475E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.5797408603469E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0549880565110E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5733263012107E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4029821974891E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8389812664566E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8203544913240E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6671236685221E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9981245978858E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4029821974881E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8389812664559E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8203544913205E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6671236685219E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9981245978854E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0441414804972E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6446648793372E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9396092295752E+00 @@ -2981,13 +2997,13 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7752354275308E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6406538642117E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6058148956476E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3813338000782E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3813338000786E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9949709470361E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2033122712482E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3782060164869E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2033122712480E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3782060164874E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5268123239584E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9445952624272E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2016243924915E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9445952624269E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2016243924911E-02 (PID.TID 0000.0001) %MON pe_b_mean = 4.8293544154003E-04 (PID.TID 0000.0001) %MON ke_max = 1.7248004075445E-02 (PID.TID 0000.0001) %MON ke_mean = 8.6056470321354E-05 @@ -2998,28 +3014,28 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604636357046E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845615282439E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163821365704E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2327142622236E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1656689934476E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2327142622102E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1656689935254E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689717633947E+21 -(PID.TID 0000.0001) %SBO sbo_mass_fw = -2.1880606074915E+14 +(PID.TID 0000.0001) %SBO sbo_mass_fw = -2.1880606074916E+14 (PID.TID 0000.0001) %SBO sbo_zoamc = 8.9320741899502E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135154000933E+30 EXTERNAL_FIELDS_LOAD, 36009 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2000000000 0.8000000000 - cg2d: Sum(rhs),rhsMax = 3.60134682898186E-02 2.77121383379141E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.65547153552475E-02 + cg2d: Sum(rhs),rhsMax = 3.60134682898114E-02 2.77121383379166E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.65547153550679E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 7.93638055836603E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.93638056232983E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 36010 (PID.TID 0000.0001) %MON time_secondsf = 3.1112640000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6244898303422E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6667425682166E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8481614103006E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6244898303425E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6667425682162E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8481614103007E-04 (PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1417614620041E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6667314858406E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4338478217804E-01 @@ -3029,16 +3045,16 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4812354054300E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2201523280606E-01 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2959640069449E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1818128137025E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0530310676439E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1818128137009E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0530310676438E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.5661614610741E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4003189160156E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8368136458019E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3589832446648E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6665794339830E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9992868410666E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4003189160274E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8368136458011E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3589832446562E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6665794339829E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9992868410668E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0439443348354E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6455744372398E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6455744372397E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9396994470513E+00 (PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5469847214422E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6497552787588E-03 @@ -3072,16 +3088,16 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7014729006700E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6628624802842E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6475770842672E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3790118811850E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.3790118811855E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9678723060155E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2016243924915E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3754656196978E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2016243924911E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.3754656196981E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5178502178558E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9437241813827E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2006403286221E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9437241813824E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2006403286217E-02 (PID.TID 0000.0001) %MON pe_b_mean = 4.8268933091761E-04 (PID.TID 0000.0001) %MON ke_max = 1.7077735469045E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.6034791088974E-05 +(PID.TID 0000.0001) %MON ke_mean = 8.6034791088975E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226780322654E+18 (PID.TID 0000.0001) %MON vort_r_min = -3.8755757087646E-07 (PID.TID 0000.0001) %MON vort_r_max = 4.6680263271952E-07 @@ -3089,14 +3105,14 @@ listId= 2 ; file name: oceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 7.3604636479773E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845615771045E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3163821202369E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2391907764304E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1714263019563E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.2391907764349E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1714263019307E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %SBO sbo_mass = 1.3689717376265E+21 (PID.TID 0000.0001) %SBO sbo_mass_fw = -2.4457425333358E+14 -(PID.TID 0000.0001) %SBO sbo_zoamc = 8.9357523929642E+24 +(PID.TID 0000.0001) %SBO sbo_zoamc = 8.9357523929641E+24 (PID.TID 0000.0001) %SBO sbo_zoamp = 2.9135153218676E+30 Computing Diagnostic # 23 ETAN Counter: 10 Parms: SM M1 Computing Diagnostic # 24 ETANSQ Counter: 10 Parms: SM P M1 @@ -3114,162 +3130,162 @@ listId= 2 ; file name: oceStDiag Computing Diagnostic # 64 RHOAnoma Counter: 10 Parms: SMR MR Computing Diagnostic # 78 DRHODR Counter: 10 Parms: SM LR Computing Diagnostic # 79 CONVADJ Counter: 10 Parms: SMR LR - Computing Diagnostic # 199 GM_Kwx Counter: 10 Parms: UM LR - Vector Mate for GM_Kwx Diagnostic # 200 GM_Kwy exists - Computing Diagnostic # 200 GM_Kwy Counter: 10 Parms: VM LR - Vector Mate for GM_Kwy Diagnostic # 199 GM_Kwx exists - Computing Diagnostic # 201 GM_Kwz Counter: 10 Parms: WM P LR + Computing Diagnostic # 205 GM_Kwx Counter: 10 Parms: UM LR + Vector Mate for GM_Kwx Diagnostic # 206 GM_Kwy exists + Computing Diagnostic # 206 GM_Kwy Counter: 10 Parms: VM LR + Vector Mate for GM_Kwy Diagnostic # 205 GM_Kwx exists + Computing Diagnostic # 207 GM_Kwz Counter: 10 Parms: WM P LR (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000036000.txt , unit= 9 (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: oceStDiag.0000036000.txt , unit= 10 (PID.TID 0000.0001) %CHECKPOINT 36010 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 19.067101655527949 -(PID.TID 0000.0001) System time: 0.18497199378907681 -(PID.TID 0000.0001) Wall clock time: 19.440962076187134 +(PID.TID 0000.0001) User time: 10.927098589949310 +(PID.TID 0000.0001) System time: 0.30026300880126655 +(PID.TID 0000.0001) Wall clock time: 11.608605146408081 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.24196299724280834 -(PID.TID 0000.0001) System time: 4.19939998537302017E-002 -(PID.TID 0000.0001) Wall clock time: 0.32937002182006836 +(PID.TID 0000.0001) User time: 0.14591200463473797 +(PID.TID 0000.0001) System time: 4.8637000378221273E-002 +(PID.TID 0000.0001) Wall clock time: 0.22332906723022461 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 18.825138658285141 -(PID.TID 0000.0001) System time: 0.14297799393534660 -(PID.TID 0000.0001) Wall clock time: 19.111552953720093 +(PID.TID 0000.0001) User time: 10.781142860651016 +(PID.TID 0000.0001) System time: 0.25161300972104073 +(PID.TID 0000.0001) Wall clock time: 11.385231018066406 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.53291901946067810 -(PID.TID 0000.0001) System time: 6.69899992644786835E-002 -(PID.TID 0000.0001) Wall clock time: 0.69236803054809570 +(PID.TID 0000.0001) User time: 0.45278000831604004 +(PID.TID 0000.0001) System time: 0.11103799939155579 +(PID.TID 0000.0001) Wall clock time: 0.91219401359558105 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 18.292219638824463 -(PID.TID 0000.0001) System time: 7.59879946708679199E-002 -(PID.TID 0000.0001) Wall clock time: 18.419155120849609 +(PID.TID 0000.0001) User time: 10.328337192535400 +(PID.TID 0000.0001) System time: 0.14056900143623352 +(PID.TID 0000.0001) Wall clock time: 10.473010063171387 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 18.292219638824463 -(PID.TID 0000.0001) System time: 7.59879946708679199E-002 -(PID.TID 0000.0001) Wall clock time: 18.419054746627808 +(PID.TID 0000.0001) User time: 10.328258097171783 +(PID.TID 0000.0001) System time: 0.14056700468063354 +(PID.TID 0000.0001) Wall clock time: 10.472928524017334 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 18.292219638824463 -(PID.TID 0000.0001) System time: 7.59879946708679199E-002 -(PID.TID 0000.0001) Wall clock time: 18.418875932693481 +(PID.TID 0000.0001) User time: 10.328105866909027 +(PID.TID 0000.0001) System time: 0.14056199789047241 +(PID.TID 0000.0001) Wall clock time: 10.472777605056763 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.48392379283905029 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.48365807533264160 +(PID.TID 0000.0001) User time: 0.30885714292526245 +(PID.TID 0000.0001) System time: 1.3999640941619873E-004 +(PID.TID 0000.0001) Wall clock time: 0.30903339385986328 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.46392667293548584 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.46933412551879883 +(PID.TID 0000.0001) User time: 0.26656955480575562 +(PID.TID 0000.0001) System time: 8.2640051841735840E-003 +(PID.TID 0000.0001) Wall clock time: 0.27486371994018555 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.89982557296752930E-002 -(PID.TID 0000.0001) System time: 9.99003648757934570E-004 -(PID.TID 0000.0001) Wall clock time: 3.28629016876220703E-002 +(PID.TID 0000.0001) User time: 1.7610371112823486E-002 +(PID.TID 0000.0001) System time: 8.3539932966232300E-003 +(PID.TID 0000.0001) Wall clock time: 2.9508352279663086E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.89982557296752930E-002 -(PID.TID 0000.0001) System time: 9.99003648757934570E-004 -(PID.TID 0000.0001) Wall clock time: 3.26712131500244141E-002 +(PID.TID 0000.0001) User time: 1.7410218715667725E-002 +(PID.TID 0000.0001) System time: 8.3499848842620850E-003 +(PID.TID 0000.0001) Wall clock time: 2.9314994812011719E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.58442687988281250E-005 +(PID.TID 0000.0001) User time: 8.8691711425781250E-005 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 9.3221664428710938E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9736961126327515 -(PID.TID 0000.0001) System time: 6.99899345636367798E-003 -(PID.TID 0000.0001) Wall clock time: 1.9870212078094482 +(PID.TID 0000.0001) User time: 1.1302047967910767 +(PID.TID 0000.0001) System time: 2.3798644542694092E-004 +(PID.TID 0000.0001) Wall clock time: 1.1304838657379150 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.8564167022705078 -(PID.TID 0000.0001) System time: 9.99899953603744507E-003 -(PID.TID 0000.0001) Wall clock time: 3.8760209083557129 +(PID.TID 0000.0001) User time: 2.1916791200637817 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.1918363571166992 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.6779854297637939 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 6.6958484649658203 +(PID.TID 0000.0001) User time: 3.6053359508514404 +(PID.TID 0000.0001) System time: 7.3380023241043091E-003 +(PID.TID 0000.0001) Wall clock time: 3.6128475666046143 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.99894332885742188E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.08486938476562500E-002 +(PID.TID 0000.0001) User time: 4.7325849533081055E-002 +(PID.TID 0000.0001) System time: 1.1400878429412842E-004 +(PID.TID 0000.0001) Wall clock time: 4.7459125518798828E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.2226624488830566 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.2286128997802734 +(PID.TID 0000.0001) User time: 1.2856194972991943 +(PID.TID 0000.0001) System time: 5.9902667999267578E-006 +(PID.TID 0000.0001) Wall clock time: 1.2857770919799805 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11898231506347656 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11698722839355469 +(PID.TID 0000.0001) User time: 8.8397860527038574E-002 +(PID.TID 0000.0001) System time: 1.3101100921630859E-004 +(PID.TID 0000.0001) Wall clock time: 8.8547945022583008E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.22496700286865234 +(PID.TID 0000.0001) User time: 0.12551724910736084 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.22811746597290039 +(PID.TID 0000.0001) Wall clock time: 0.12553501129150391 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.09932041168212891E-002 +(PID.TID 0000.0001) User time: 3.1446218490600586E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.18426895141601563E-002 +(PID.TID 0000.0001) Wall clock time: 3.1459093093872070E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 8.4638595581054688E-005 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.00135803222656250E-004 +(PID.TID 0000.0001) Wall clock time: 8.2969665527343750E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.60090732574462891 +(PID.TID 0000.0001) User time: 0.33877360820770264 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.60128283500671387 +(PID.TID 0000.0001) Wall clock time: 0.33879446983337402 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.91685914993286133 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.91660308837890625 +(PID.TID 0000.0001) User time: 0.56280791759490967 +(PID.TID 0000.0001) System time: 7.8990012407302856E-003 +(PID.TID 0000.0001) Wall clock time: 0.57073760032653809 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.53791856765747070 -(PID.TID 0000.0001) System time: 3.29950004816055298E-002 -(PID.TID 0000.0001) Wall clock time: 0.57087826728820801 +(PID.TID 0000.0001) User time: 0.29677844047546387 +(PID.TID 0000.0001) System time: 6.0003995895385742E-002 +(PID.TID 0000.0001) Wall clock time: 0.35688185691833496 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.19924163818359375E-002 -(PID.TID 0000.0001) System time: 2.39959955215454102E-002 -(PID.TID 0000.0001) Wall clock time: 7.57181644439697266E-002 +(PID.TID 0000.0001) User time: 2.8392195701599121E-002 +(PID.TID 0000.0001) System time: 4.8018991947174072E-002 +(PID.TID 0000.0001) Wall clock time: 7.6476097106933594E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== diff --git a/verification/global_ocean.90x40x15/results/output_adm.bottomdrag.txt b/verification/global_ocean.90x40x15/results/output_adm.bottomdrag.txt index 05732fe903..33a5e5a9d0 100644 --- a/verification/global_ocean.90x40x15/results/output_adm.bottomdrag.txt +++ b/verification/global_ocean.90x40x15/results/output_adm.bottomdrag.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed Oct 5 21:45:24 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68a +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Wed Aug 18 23:08:44 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -144,7 +146,7 @@ (PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., (PID.TID 0000.0001) > hFacInf=0.2, (PID.TID 0000.0001) > hFacSup=2.0, -(PID.TID 0000.0001) > nonlinFreeSurf=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, (PID.TID 0000.0001) > staggerTimeStep=.TRUE., (PID.TID 0000.0001) > tempAdvScheme=30, (PID.TID 0000.0001) > saltAdvScheme=30, @@ -216,7 +218,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -351,6 +353,7 @@ (PID.TID 0000.0001) ># (PID.TID 0000.0001) > &AUTODIFF_PARM01 (PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > cg2dFullAdjoint = .TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff @@ -360,6 +363,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -381,9 +390,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -456,7 +474,7 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, (PID.TID 0000.0001) >### iGloPos = 76, (PID.TID 0000.0001) >### jGloPos = 27, (PID.TID 0000.0001) > iGloPos = 31, @@ -477,7 +495,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) grdchkvarindex : 101 -(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) eps: 0.100E-03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 3 (PID.TID 0000.0001) Increment: 1 @@ -1033,8 +1051,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 2315 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 2315 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1058,6 +1076,8 @@ (PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use (PID.TID 0000.0001) file = xx_bottomdrag (PID.TID 0000.0001) weight = wunit.data +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1101,7 +1121,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1140,6 +1160,9 @@ (PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscC2LeithQG = /* QG Leith harmonic viscosity factor (non-dim.)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1230,10 +1253,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1288,32 +1317,35 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 4 (PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ @@ -1331,7 +1363,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1340,7 +1372,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1382,8 +1414,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1404,14 +1437,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1424,6 +1455,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1439,6 +1473,9 @@ (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1502,6 +1539,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1521,12 +1564,18 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; @@ -1545,6 +1594,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1632,9 +1684,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1692,6 +1741,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2320,8 +2381,13 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -2417,6 +2483,8 @@ EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) cg2d_init_res = 6.19004776436843E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 (PID.TID 0000.0001) cg2d_last_res = 4.93003434666719E-14 @@ -2502,45 +2570,47 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 -(PID.TID 0000.0001) cg2d_init_res = 3.34811637722307E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 +(PID.TID 0000.0001) cg2d_init_res = 3.35156912126038E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 3.25998332404646E-14 +(PID.TID 0000.0001) cg2d_last_res = 3.26388584617911E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7152842165452E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5259119023080E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4999594362138E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9661630517285E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2490357028944E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8935858472889E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.7136957835912E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.9140316990646E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1227674919216E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3342167704672E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3630204397881E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8046507583486E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7544791934559E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1909632998343E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8849180746718E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0408945961973E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4597357340601E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.3949636129883E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3912073111590E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8573335443549E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9666044873895E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9059502015120E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6183251269911E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4141518788440E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4708033820267E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7464959284438E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9756798869061E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717893351151E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9611690085547E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0185398665122E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7228329456105E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5296526716386E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.5564805515173E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9739393538329E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2543793785614E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8925269605388E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.7111191601090E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.9154316818453E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1240116402385E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3331389566024E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3641195202861E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8056085134207E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7545820131551E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1931139781555E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8845091677147E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0459760182478E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4618423020835E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.8077783871765E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3949328111882E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8660134908243E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9665842881123E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9059472148339E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6183247767787E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4141509279932E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4704635587997E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7464956801130E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9756799082518E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717893337439E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9611691531803E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0185360169757E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2641490173340E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8679340387980E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6693949360478E+01 @@ -2566,67 +2636,69 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.3284543789867E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5207594835594E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4584970315419E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2462741780267E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.2819178319760E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3859048654971E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.5357541198456E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2669046754376E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7816970543229E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4394006859091E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 4.5548222824135E-06 -(PID.TID 0000.0001) %MON ke_max = 3.9839154044107E-04 -(PID.TID 0000.0001) %MON ke_mean = 2.0997213285719E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2462691494402E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.2830447091977E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3913206318423E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.5354354991435E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2679723440058E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7925672241768E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4447299673869E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 4.5667035390299E-06 +(PID.TID 0000.0001) %MON ke_max = 3.9858159305779E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.1011846298270E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.0638967726277E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.2965174189557E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806938960E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604163282641E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845737397789E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162570753326E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.2571820265910E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.6439155353171E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.0640989905139E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.2967734828803E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806938110E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604163261062E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845737396719E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162570733384E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.2599349776639E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.6452813835337E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.19896331669462E+00 + cg2d: Sum(rhs),rhsMax = -2.44249065417534E-15 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 +(PID.TID 0000.0001) cg2d_init_res = 2.19890228719910E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.87187311244442E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.86196910870541E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.0954370992011E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.7789852135345E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.5281794300793E-19 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2201582096836E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8300390524506E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.0900961697178E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0218798688226E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5656874326323E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0383972159655E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6571741911125E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.4919850299403E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.4410873643115E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5316023896688E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4930890253325E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4644140604107E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0082708988442E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6822993153654E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9928595355200E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6812456069323E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6174778089561E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9653441544850E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9142538419920E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6171217174278E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4116254962791E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4066011017600E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7460143472278E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9759536657026E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717792151973E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612875220597E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0170146667833E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1165236484596E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.7856509249073E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0188403717678E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2419287004261E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8439707540617E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.0877643856063E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0162667610167E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5662050123283E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0400894988902E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6541513181070E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.4955221816140E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.4366653186901E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5319505015307E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4981797287233E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4605888214755E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0173048972754E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6849657333618E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.2810968000659E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6878199389705E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6289678238517E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9652825368855E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9142443539608E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6171204502136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4116223761512E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4056542467569E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7460139279249E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9759537673345E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717792078041E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612882764000E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0170048849342E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2693899536133E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8655982259115E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6687693382567E+01 @@ -2652,68 +2724,70 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2915731155563E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5261152700224E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4588571962377E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8575515645345E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.4337384553573E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0677292893821E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.8826915439926E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3636032426946E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.0709761028197E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0811406468998E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0878222728288E-05 -(PID.TID 0000.0001) %MON ke_max = 7.8531483647732E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.0568375203272E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8572377988428E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.4373637850502E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0709610618812E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.8910834233748E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3670393019001E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.0775206334318E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0906252632393E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.0929654349011E-05 +(PID.TID 0000.0001) %MON ke_max = 7.8611735094216E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.0613408067361E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.5897940594589E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.8833233583696E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806930347E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3604029588573E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845820554207E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574435268E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1114483304869E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.1955355822233E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.5898912181075E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.8840403768853E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806929063E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3604029493782E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845820910373E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162574485182E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1122114035801E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.2011755740042E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.84366655286261E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 6.83789717252028E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 +(PID.TID 0000.0001) cg2d_init_res = 1.83718348086974E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.63727653106043E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.62647521501530E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8987798415529E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9280007879149E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4037356233246E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2219841074700E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9835909481408E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3251211891931E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.2996568900420E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3532718552319E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0838982753778E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9201380832977E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2772983067129E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.6006938628889E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.2169973262083E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0396415081726E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1107192557043E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0591319882304E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0390059420810E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.6910934503379E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8591305191854E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6277433035880E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9662726903568E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9287752298139E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6156852175471E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4086198735241E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3667043494387E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7455577405110E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762583657521E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717670471734E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613183459926E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0137825104697E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.9332663883853E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9422513050372E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.3961345725595E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2256705608066E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.0049283865333E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3218635656321E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.2931606132344E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3544658652652E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0857252928503E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9169859210911E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2834140210081E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.5941821088414E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.2177574690009E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0404540880021E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1049124161442E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0611595031814E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0405407026144E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8664166917143E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6349822849638E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9661703738628E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9287025271557E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6156823686471E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4086134479451E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3651609348647E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7455575115701E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762586539312E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717670261252E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613204239255E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0137682499337E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2746308898926E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8632624130249E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6681437404655E+01 @@ -2739,67 +2813,69 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2546918521259E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5318552119942E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4605916505437E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.0398765661382E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0206837918757E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1722530326842E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.2642287172886E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1264721165256E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3542295410711E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1743808030904E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 1.9107871658906E-05 -(PID.TID 0000.0001) %MON ke_max = 1.2238404822797E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.3263038438593E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.0397158980898E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0213669991432E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1728381950768E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.2496191323525E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1324130425420E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3553886266340E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1748350785893E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.9223333927360E-05 +(PID.TID 0000.0001) %MON ke_max = 1.2256915734158E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.3350448812889E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.0925472947451E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.4127784602766E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806920665E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603877303677E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845875040929E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162564447672E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3267825391194E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1083961748183E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.0930028611245E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.4142126730626E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806919595E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603877073066E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845876003472E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162564638644E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3281502993063E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1096478526734E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.76470669543199E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 6.94384100142540E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 +(PID.TID 0000.0001) cg2d_init_res = 1.75558590049548E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.60901777019442E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.58759978922822E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.3215588656949E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.7006055641637E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3584538290238E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5030943104696E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9078830732808E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5439719615995E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.4011289939596E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.2236569975929E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2414098612881E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0269180080723E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.8273543712354E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.7005189439930E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.7962637970108E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1941234852227E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5862077561830E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3557089684795E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3739021059528E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.1672299871436E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0276551832422E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9052116821261E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9682654804807E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9511114786423E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6140825212991E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4052392531115E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3417207902128E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7451081758565E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9765796500555E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717535145081E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613465443333E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0123152200832E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.3655158589820E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.7239478454506E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.6035409171507E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5081228160997E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9331517025219E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5402325246736E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3962875625365E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.2258753002099E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2437923966823E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.0248476366057E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.8361077665074E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6928730950544E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.7976211107966E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1952445654836E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5812442805421E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3578807103187E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3756575165574E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.2547912671172E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0343969475523E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9079290334002E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9681493090107E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9510005303741E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6140773908329E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4052284619851E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3398312584804E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7451084354042E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9765802808034E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717534707453E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613505769125E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0122980273370E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2798718261719E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8609266001383E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6675181426744E+01 @@ -2825,67 +2901,69 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2178105886955E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5379778517573E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4636987924417E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1967823465719E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0676225424390E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2188169585825E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2053755355870E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6608074740159E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4557141120089E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2385009244169E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.8910370805610E-05 -(PID.TID 0000.0001) %MON ke_max = 1.7685763553763E-03 -(PID.TID 0000.0001) %MON ke_mean = 8.7687821336896E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1968660629530E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0685953462697E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2235108974692E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2045863652018E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6693106955847E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4651587717424E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2429140476340E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9104129952101E-05 +(PID.TID 0000.0001) %MON ke_max = 1.7702839798939E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.7830549251436E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.5371495233683E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.8693659692127E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806910505E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603711496736E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845902399430E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162541588103E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4807396380957E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2349025629292E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.5383868179047E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8718049077609E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806909670E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603711067846E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845903929215E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162541915672E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4827488039733E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2369718235349E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.72335408146517E+00 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-14 6.90180622751866E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 +(PID.TID 0000.0001) cg2d_init_res = 1.71455039121629E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.80175253937542E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.78115450759936E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2232452764580E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.2625843315634E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.5281794300793E-19 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7719140685618E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7605923221408E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7145334106477E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3022103923697E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.1456240664903E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.4724469843622E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.9841482494433E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8188900342127E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7459964757493E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.2587013700796E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3148802298066E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8079045684874E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5995401332779E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6563050049149E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.3949636129883E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2015733743709E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2748144296706E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9698773301097E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9776274620365E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6123730413398E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015796949876E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3183573583552E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7446672909474E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9769030756636E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717392124709E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613715609315E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0105662723565E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2495487957646E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.2834404204836E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9923989492349E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7780996474791E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7865053306852E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7106727349005E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3000368459810E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.1492657193289E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.4759075178709E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.9830992303500E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8112150997953E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7379513695749E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.2608455553467E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3163076745370E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8051326855580E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6017036290394E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6582998772201E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6974818064941E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2072891602029E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2747354619393E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9697877269738E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9774848199134E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6123649303994E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015635528983E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3164374049269E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7446680696041E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9769042498232E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717391368244E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613780347999E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0105489018568E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2851127624512E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8585907872518E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6668925448832E+01 @@ -2911,68 +2989,70 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1809293252651E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5444816425210E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4681757582574E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2800991928571E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0929796676272E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0536209655815E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4607263405939E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6240048589975E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1300587725034E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0980502441206E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 4.0175983116713E-05 -(PID.TID 0000.0001) %MON ke_max = 2.3571161585590E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.1259993133806E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2804054143043E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0941292243191E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0628134249212E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4584282803073E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6165492756667E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1486594815538E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1068116593107E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 4.0456973581906E-05 +(PID.TID 0000.0001) %MON ke_max = 2.3522136323749E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.1281082092155E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9037276359710E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.2480772667437E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806926303E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603537050597E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845913332868E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162509612989E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5803788118663E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3069838072663E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.9062076173509E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.2516505608948E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806925281E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603536358323E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845915226162E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162510029297E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5830272667920E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3098855008477E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.57922304191377E+00 + cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.20701040815593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 +(PID.TID 0000.0001) cg2d_init_res = 1.57763510935453E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.64058706766866E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.63356638607500E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.2371772990089E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.7855233277064E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6301445948285E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0303642156891E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6229763886308E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.8197473070931E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.6484248734197E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.0877494926113E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7424018168162E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8224096948451E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7544190418148E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.7653951312624E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.5977951463938E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4040150943713E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.7908643501575E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7874289805768E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8782136498546E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3683776535184E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6256058336655E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9700392392918E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0063682677776E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6106100644417E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3977184976247E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2884190165709E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7442475946985E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9772148888597E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717246521891E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613408740491E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0081168551129E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.2745281390079E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.8142861729595E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.4338153160952E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0375904341884E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6475928404561E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.8159332571699E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.6174227976682E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.0932671412464E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7473925235318E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8218177293582E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7500829206698E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.7569295405785E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6008986477398E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4057299789122E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.7899981298958E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7895088528444E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8805692410674E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3152949058184E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3731388289339E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6244192375544E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9700112270813E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0062117730992E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6105982908503E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3976960359804E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2866738317011E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7442487035931E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9772168403498E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717245359885E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613499898986E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0081019731284E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2903536987305E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8562549743652E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6662669470921E+01 @@ -2998,67 +3078,69 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1440480618347E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5513649503191E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4740184358134E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2999543248501E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2484231751826E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.3785830267373E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6827845901276E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5327962694759E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7690639511644E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9368590301545E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2750806184577E-05 -(PID.TID 0000.0001) %MON ke_max = 3.0505571346650E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.3698152874914E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3005014719646E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2469626639144E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.3513931162900E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6819083450927E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5285840754986E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7668508760912E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9219579923036E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 5.3126962529735E-05 +(PID.TID 0000.0001) %MON ke_max = 3.0459936181647E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.3727129307132E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.1839722402425E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.5558767160364E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806981640E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603359004615E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845917319542E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162472440561E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6314120180744E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3322034164976E-05 +(PID.TID 0000.0001) %MON vort_r_min = -3.1880172650001E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.5604323346668E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274806980074E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603357975052E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845919356707E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162472874917E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6346842037305E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3358943301473E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.39674827185233E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 7.81837601024606E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 +(PID.TID 0000.0001) cg2d_init_res = 1.39388330512710E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.35515348298401E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.34627253902283E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9578465689907E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.0695591604126E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.6225435440634E-18 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2772276782609E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5175970206004E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8541343482376E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.6188435641940E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.0190781386486E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.0194963562620E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5651905026944E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3702433586111E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6772886442843E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8116054890265E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4641357044157E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0577885080816E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9122334930010E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0367540000168E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4426905393770E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.5095512911273E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9015912077916E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9683744646057E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0351970832113E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6088409790432E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3937306966439E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2532053495039E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7438643329322E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9775027442409E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717102750212E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612311618722E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0056632759356E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0080743693430E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.1046497833653E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.4338153160952E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2854363522338E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5403804032277E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8502556036093E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.5887692639833E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.0269743790123E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.0264261851901E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5646055266316E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3713258100673E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6681163508039E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8157974932383E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4661009028508E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0577881381605E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9142819423315E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0395354323259E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.5159708903906E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.5137664658563E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9006721338729E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9684213251436E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0350554201448E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6088248969102E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3937009431247E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2516848352604E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7438655607287E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9775057227095E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717101102692E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612427741656E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0056524576384E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2955946350098E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8539191614787E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6656413493009E+01 @@ -3084,67 +3166,69 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1071667984043E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5586260559939E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4812214832125E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2622194156612E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3652885108929E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0771530041767E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7789410379680E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1310202100704E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8967729923152E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7406112614453E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 6.6358125223506E-05 -(PID.TID 0000.0001) %MON ke_max = 4.0252502683768E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.6005069794933E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2627426002795E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3642599561869E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0754401103265E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7806344413884E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1320717248580E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8976820663828E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7237137437731E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 6.6837386894942E-05 +(PID.TID 0000.0001) %MON ke_max = 4.0112320110704E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6042735344689E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.3809604186860E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.2643660759174E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807072162E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603182520587E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845919280226E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162432897330E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6391948494675E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3168768390133E-05 +(PID.TID 0000.0001) %MON vort_r_min = -3.3866315623209E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.2496459485461E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807070005E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603181068529E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845921366588E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162433317546E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6430586019847E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3212987396878E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.28712325624246E+00 + cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 8.15854450345303E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 +(PID.TID 0000.0001) cg2d_init_res = 1.28278817698496E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 9.49714931868596E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.46005911212935E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 3.8880000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.3723035257816E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8751991687809E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.0601593855412E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5099981100505E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4370690696390E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8190396905355E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1337591160966E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.9100070861467E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0273674180043E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.2257801268485E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8529890412250E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.4717028341345E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.9029872175655E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4984698007612E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1204786704881E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9647047924297E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1361277054770E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.3949636129883E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6109057404332E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0842911175645E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9651663162007E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0620633545165E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6071069215481E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3896870293875E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2149739720416E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435190074340E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777563111021E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716964600324E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9610480008936E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0032041860782E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.4354848209210E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8942505535605E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.3394512021110E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5191646126902E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4583721097331E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8147228955646E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1314162594548E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.9208244773878E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0282909885627E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.2250599084775E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8371669407232E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.4615463097381E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.9083252204513E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5006298386427E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1204648654165E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9669192820297E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1392389912539E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2213452696885E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6150263526391E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0843177833375E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9652734854043E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0619733734513E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6070859527139E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3896490660333E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2136298000505E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435201291897E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777605606692E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716962395163E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9610616997525E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0031975412375E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3008355712891E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8515833485921E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6650157515098E+01 @@ -3170,68 +3254,70 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0702855349739E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5662631572644E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4897783530480E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2692021951553E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4373428641672E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1303801148572E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7368998305023E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5999689291803E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9474520403773E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0261807958837E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 8.0617251784333E-05 -(PID.TID 0000.0001) %MON ke_max = 5.0284930514860E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.8124198430550E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2711170113633E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4369598904479E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1305564495680E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7419059573946E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5845990273227E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9482415389095E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0263840239069E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 8.1207154717783E-05 +(PID.TID 0000.0001) %MON ke_max = 5.0188114462625E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.8171053790940E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.7038626274430E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.0713828753427E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807183718E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3603012677892E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845920064159E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162392683101E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6094108835742E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2666356152460E-05 +(PID.TID 0000.0001) %MON vort_r_min = -3.6964761441192E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.0553176819497E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807181195E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3603010707884E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845922212246E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162393079971E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6138052407733E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2717201756273E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.22562030255833E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.25652180482843E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 +(PID.TID 0000.0001) cg2d_init_res = 1.21999367717907E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 8.71382003063848E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.66790675002816E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5203044650795E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3902716668555E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.6979050311348E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7259153280275E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3676754768980E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0717060757154E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2678782856154E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7331867450661E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1477585764723E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8103759038542E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8650676496483E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1328858059896E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8796201546416E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5108812138067E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1692501661667E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9390752424446E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1967900076780E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6974818064941E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6662685072405E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1781690676907E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9610692908445E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0852194772301E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6054423694867E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3856505612250E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1762989428079E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432123341079E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779677402954E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716835234956E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9608031332243E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0008000328945E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.5944722628084E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4191729924160E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.7131071326650E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7360336001403E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3880767254268E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0711803554478E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2667187198336E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7474912957253E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1489410155348E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8096687209398E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8546076894401E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1217004589313E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8860607953229E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5131616432514E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1691667781069E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9419181972404E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1955199372335E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.7579854451953E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6705944502941E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1791637914398E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9612024836865E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0852223765410E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6054160383426E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3856036087736E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1750662414688E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432131516523E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779734764478E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716832410927E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9608183725615E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0007968950895E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3060765075684E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8492475357056E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6643901537186E+01 @@ -3257,60 +3343,80 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0334042715435E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5742743708708E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4996813217914E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3942025976657E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4608174194448E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0899327687426E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6001243190992E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5831221383165E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9284289714107E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.8440849695955E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 9.5083667265346E-05 -(PID.TID 0000.0001) %MON ke_max = 5.7973123352723E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.0018934887382E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3963707482485E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4614484621932E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0925202600420E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5987486684876E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5729611257622E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9294764802575E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.8702065621374E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 9.5790855765647E-05 +(PID.TID 0000.0001) %MON ke_max = 5.7888688221175E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.0075114767795E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9678411686341E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.7853618549739E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807299626E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3602854279644E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1845919165537E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3162353126907E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5480498034331E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1871692390196E-05 +(PID.TID 0000.0001) %MON vort_r_min = -3.9629958818193E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.7690762779611E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5274807297113E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3602851688492E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1845921354773E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3162353480139E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5528835507615E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1928201119021E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785264D-01 - local fc = -0.450065077785264D-01 - global fc = -0.450065077785264D-01 + --> objf_atl(bi,bj) = -0.449960735199708D-01 +(PID.TID 0000.0001) local fc = -0.449960735199708D-01 +(PID.TID 0000.0001) global fc = -0.449960735199708D-01 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -2.44249065417534E-15 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 6.83789717252028E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 6.94384100142540E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-14 6.90180622751866E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.20701040815593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 7.81837601024606E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 8.15854450345303E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.25652180482843E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.25652180482843E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 10 (PID.TID 0000.0001) %MON ad_time_secondsf = 4.3200000000000E+05 @@ -3324,21 +3430,21 @@ (PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3511740458020E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3509816049551E-03 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.0040595079267E-05 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1341273377458E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.2137816605573E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.0040234948646E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1340826586524E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.2137135479857E-06 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0234262370675E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8827045212953E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.9715530700291E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3610216154279E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.9434117006853E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9999020517668E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8630755434897E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.9772359607498E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3555902936863E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.9411000933708E-09 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 @@ -3365,59 +3471,67 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.50327106906366E-15 8.04945967787814E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.87827014251696E-15 8.04927720303465E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics + cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.20701040815593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 7.81837601024606E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 8.15854450345303E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 9 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.8880000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.9059356809523E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7282228468391E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 5.4072162632031E-10 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.7434218851823E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.0318767745963E-08 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.5737500371531E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3524037659153E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3830959749522E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1951850796472E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0943322614423E-08 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0028813132414E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.1778674388876E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.8218263052012E-05 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1537875687870E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.8482909369056E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.6646521622759E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.1975679422438E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.0894129838102E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.8019851088647E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.9749819966927E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.4101292395176E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0583426444498E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.3367873883273E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1334914672252E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.7336850016982E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 5.5014321429657E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.3038435344535E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2325762260956E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.2217301926629E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0842853958766E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.9059411313167E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7280425340053E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 5.4068167753259E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.7433839312673E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.0317963935171E-08 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.5740349288389E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3521232320320E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3828302624777E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1952055611281E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0943477091909E-08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0028501325037E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.1777871526893E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.8217690719023E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1537248126629E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.8481915378782E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.6642123994398E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.1977605160147E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.0884700798680E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.8012789802427E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.9747208657098E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.4099061351979E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0592099351819E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.3485896003495E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1332001933710E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.7338978524527E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 5.5013697166949E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.3038374052639E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2323222988604E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.2216760545609E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0846185694723E-08 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.1369794371672E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.9229376720338E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -3.8140415968654E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 9.2023209933154E-05 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.8980086722132E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.1365194268497E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.9223927408862E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -3.8139824969493E-07 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 9.2021004100700E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.8978860458862E-06 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3429,55 +3543,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.25549352700560E-16 9.21369200784080E-09 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.02564170264413E-15 9.22744712341934E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.6545749487455E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.3351077240723E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.4486768235853E-09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.6204642717794E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.0360658237115E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.7554430349335E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0682845192269E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.2110012092394E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.6680872242027E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6343632651519E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.3951435236016E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.6308999350978E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 8.2823856989514E-05 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 6.5252444602879E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.5762595319415E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.2056183480869E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.5410342195182E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.3051403416562E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.6696686940909E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 9.3779814149974E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.6788186408859E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.1018875629562E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.0133170482932E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.8590464304330E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.5280775038644E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8163843566889E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.9054432125614E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.0360323164530E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7002978894619E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.4269943042440E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.6551794828246E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.3358106336791E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.4440587844758E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.6224209278337E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.0360239641180E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.7536487023645E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0565872979778E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.2088012820674E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.6621332683873E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6295459674633E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.3954132992362E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.6204741239784E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 8.2837029936099E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 6.5274341318311E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.5795095347341E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.2059168529723E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.5423005563567E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.3073075664249E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.6723147760935E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 9.3818061271664E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.6643600556398E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0988592360468E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.0305331274923E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.8529355927900E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.5203508749055E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8120558176457E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.9010681898793E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.0382482694212E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.6970654382158E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.4220414046608E-07 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.0196882379042E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.8185226902461E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -8.3765107545037E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.0113603295569E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 9.7821467813705E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.0091006101741E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.8095051107666E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -8.3331382065184E-07 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.0047845419983E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 9.7526156375386E-06 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3489,56 +3605,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.39362088378026E-15 8.74327613604373E-09 - EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -7.48316339449495E-16 8.78944878319405E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 7 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.0240000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.7864020732376E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.1966299764754E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.7169178382423E-09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.1432247978619E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.7546573432737E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.7818312970279E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0354685287121E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7212840341074E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.2883476521750E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.6126160607424E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.7329905013746E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.2345951528227E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0277362879397E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.1042272392498E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0530038341172E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.5364675386785E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.4406570690629E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1640948206184E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.7778731841995E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0930840484289E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.1445365881144E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0983346299078E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -9.8720595368493E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.8950067355122E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.4276170282746E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 4.9896228012381E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.1960872654804E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.0673259950301E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.5374236161301E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6030397490280E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.7886416242934E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.1991015281418E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.6978048334022E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.1437987965663E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.7538830875107E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.7803903318530E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0328051064796E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7144688739912E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.2707418292113E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.5969013460825E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.7336590994387E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.2323407097197E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0282232114918E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.1049941063362E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0532175254771E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.5374595904114E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.4429727237062E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1690179400683E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.7826950354057E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0937450537006E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.1414821694434E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0961546099372E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -9.8927274861240E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.8717222362799E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.4241263201071E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 4.9757596443262E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.1821769106841E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.0684378006250E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.5260428993924E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.5857586316347E-07 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 3.2058448280037E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -2.7414781387377E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.2179793652160E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.9356355635084E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.2810431461614E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 3.1711628318278E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -2.7135841825131E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.2008800409431E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.9142721514966E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.2720130859585E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3550,59 +3667,67 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.48772963235200E-15 5.49414350830239E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.40192890419178E-15 5.57718053538893E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 6.83789717252028E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 6.94384100142540E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-14 6.90180622751866E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 6 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.0060424524922E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.1135897576180E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842106E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.7107690093710E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.9846447418636E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.1501933179738E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.5045212640481E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 4.9707624740697E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1844080072077E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 9.3762861340989E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0436349048878E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.8319904730704E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.1777523422531E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.0036974187463E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.2855360135917E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.6863554191445E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.9329221561447E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.9504447507692E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.3172165565510E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1821161262314E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.1697247267960E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.1296250598307E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.2701101601587E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9273430727235E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.7919033406389E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.9891989672467E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0235178835767E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.5408511006008E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.9182463518997E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2985063857012E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.0110573194288E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.1186077606995E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4348231688990E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.7117829333382E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.9825370339924E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.1317346033996E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.5025749243367E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 4.9564558781622E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1812199356247E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 9.3493743191194E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0444927991987E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.8291346755565E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.1787911665147E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.0035026362539E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.2855012590105E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.6876095924045E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.9356842267463E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.9556596737253E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.3220363137086E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1827835943243E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.1648160939941E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.1257680785493E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.2722650627755E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9231789515375E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.7857922618154E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.9551875009916E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0212850864971E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.5437959281814E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.8983911563463E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2956485635341E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.1192327764587E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.3315403332602E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4985645800146E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 3.6790391905695E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.4531705248449E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.0484442367411E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.2778339931742E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4555688684256E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 3.6349914367948E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.4354020343445E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3614,55 +3739,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.34753319613878E-14 3.68281353912161E-09 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.00683350545694E-14 3.72352839616250E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 5 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758776E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0825958273422E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.6488152453012E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.3631602990555E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.7125711160924E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.5233124303315E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.8084883652760E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 8.0516099446941E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.6867695611767E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3172968236132E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.3355724689622E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.4015055528196E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2814278420561E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.2066632400670E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.5210217937438E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.6874337917810E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.0200052932957E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.7745369807754E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.2929700633083E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.2026366393934E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.4749824983369E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.5977322629034E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.5208355836763E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.1437761422635E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.5340587198258E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7433540175868E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6649853474832E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.9569247218618E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4584049628928E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1075904169476E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2711878287758E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0902991565363E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.6391788020730E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.3645765253909E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.7089700529175E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.4996309867570E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.8033768020082E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 8.0264667657020E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.6826147527274E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3143780057695E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.3365106321553E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.3986649945155E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2831296325948E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.2063883993688E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.5209640679065E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.6882939166141E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.0226560033133E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.7780352781506E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.2969345564872E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.2031681480771E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.4692846546685E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.5887236570381E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.5229128691832E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.1384191275324E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.5267163667292E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7384886337243E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6622997074570E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.9628580665613E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4558758388848E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1042277501590E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.7193421210486E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.6085395737164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.6782519187078E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.3510183140662E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.6325090672041E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.6032219377354E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.5253892642449E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.5900241200054E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.2776286554350E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.6041122431684E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3674,56 +3801,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.69069227904129E-15 5.90272604043302E-09 - EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.39845945723982E-15 5.87902925761739E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 4 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.5301486181383E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.1240123459274E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.3850733192449E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.0988194429649E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.1907071482592E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.8101473437424E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.3232955448896E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.1990029363510E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1767634283046E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.6381252346561E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.6075875458962E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.9292776789882E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3446232007001E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.4013429118768E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7386125712482E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.5073940907228E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.6837685773782E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.6148220535023E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.6570297044256E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1449507944588E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.0077746456589E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.4739117163836E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7078504206345E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.5849132004531E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.5596046255586E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.6705658512865E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.4247842093480E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2590632002315E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1286222924402E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0460676018882E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.5431402022287E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.1338907291745E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.3687349782748E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.1005736986096E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.1902076716568E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.7888472451880E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.3191329227338E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.1951446176051E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1727568463476E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.6361900432735E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.6085405447342E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.9266487040693E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3470138104792E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.4011330875548E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7386653261700E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.5081319628886E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.6860457511197E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.6162073069782E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.6603544030193E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1453334334399E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.0019905330357E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.4625102838548E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7099385145121E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.5790981757445E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.5523764913745E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.6645453102292E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.4213624608862E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2692548488701E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1258908391905E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0427903889898E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.1293680025183E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.9049282529656E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9285595109824E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 5.0975922912543E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.9626790301791E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.9608184667690E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.8469572589792E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.7698346161094E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.9898872308439E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.9230030445877E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3735,60 +3863,68 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.33781874467331E-14 7.26634540912283E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -9.24260668000443E-15 7.27048602445241E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -2.44249065417534E-15 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 3 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 7.8012407862139E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.2632800732722E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.7157925369963E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.9129995825519E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.5531482734784E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0754734354314E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.7291248200521E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.6700077830789E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.6089243448797E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.8782049778143E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.8559215064673E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.4176735372023E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3731767625042E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.5815933555530E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.9325705213417E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.1377088213396E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.9094045717300E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.3957326531840E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.3852015101075E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0005197434771E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 6.8470113699422E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.6779800546533E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.8095615440868E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.2146699784817E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.8155403997862E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7593862882657E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.3230728262628E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4095867494327E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8858140787003E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0906081354048E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 7.8186181136365E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.2744691721140E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.6909974200618E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.9150713563587E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.5525238760922E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0742811137698E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.7268257021543E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.6648182762120E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.6062708453561E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.8779430623187E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.8568881838776E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.4151415039404E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3762389863839E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.5814661984876E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.9327190410159E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.1384505701208E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.9112677373841E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.3958512686599E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.3881549319110E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0007777494434E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 6.8398449931726E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.6648649551872E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.8120680490679E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.2088025042537E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.8089816311239E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7525554967675E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.3196084643135E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4253034874606E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8830678517108E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0876510724118E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.5397472193208E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -4.8127091163634E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9484275219343E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 6.0438695284391E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.5187052250514E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.3130023870002E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -4.7335304970955E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.6872195802807E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 5.8994378717975E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.4682694256005E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3800,55 +3936,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.24007965726773E-09 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.05151476204446E-15 8.25942290682932E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 2 (PID.TID 0000.0001) %MON ad_time_secondsf = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 9.0761410242330E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5167522979862E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 9.6896163589962E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.7975104376164E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.9547374578318E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.2302460008068E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.0301590947366E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.1978567184187E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.9663203871645E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.0529710381844E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.0770150463616E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.8684131626282E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3716725754880E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.7457391421467E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.1017642814462E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.5843697117659E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.6948094636422E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0558078625748E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.4921373594430E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.6389379999828E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.9388634405324E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0170203642348E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.8268172987189E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.0098460461984E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.1275713726440E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 4.9898474285371E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -4.3212502829235E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.3864084090940E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.7192545654468E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.2295148560419E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 9.0977213947496E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5284510188976E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 9.6549450683893E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.7999461687780E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.9539984070436E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.2302753670333E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.0298391063657E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.1917825454251E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.9656966434722E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.0541349325053E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.0779982855019E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.8658446316880E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3753878490221E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.7456556349587E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.1019504783339E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.5850335237740E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.6962326615650E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0556762457559E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.4945279807285E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.6404086951667E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.9315313617940E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0156061430691E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.8303246682241E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.0039790256796E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.1269647179276E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 4.9825342270860E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -4.3177739176155E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4087376460497E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.7165180453514E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.2267883364770E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 6.8211547564485E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -6.0964048363165E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.5336055052088E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 7.2839908450318E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 3.3116364208898E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 6.7063523536557E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -5.9950208477266E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.1337414033940E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 7.1028426074350E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 3.2510650150129E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3860,57 +3998,57 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 9.24289205824489E-09 - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.32986979603811E-15 9.26555651473773E-09 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 2 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 1 (PID.TID 0000.0001) %MON ad_time_secondsf = 4.3200000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0355956576663E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.8851332899963E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.3339408178812E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.7420771535755E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.3914372596339E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.3544216208311E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2353746904832E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7539672182975E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.2601755071449E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1956645604841E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.2685067436776E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2780167711190E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3435952092064E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.8927502205430E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2450203964439E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.6301354065283E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.0502593855387E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.8075813496311E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.0161866398694E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.3162397913992E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.1237183963781E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2912492376649E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7890062821217E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.9507521387800E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.3919507357064E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.3423845872336E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.4121882349267E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1688611094336E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.6198588360648E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.4532755935465E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0381467916060E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.8969403944209E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.3293830053816E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.7449698323830E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.3905890678245E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.3554828433526E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2369463155377E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7479201292881E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.2613856381106E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1972711504056E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.2694891630846E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2754154205614E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.3479611373245E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.8926726403944E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2452089780802E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.6341296149985E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.0510982176545E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.8079679845013E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.0175213840206E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.3167454314600E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.1229378272469E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2897972751425E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7939607286628E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.9447781957202E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.3913484210455E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.3348976448835E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.4085640549227E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1986091184062E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.6170823270674E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.4505734414363E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.6233582389250E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.7775969553131E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -5.9774739065496E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 8.8503632112322E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.3091929490956E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.4831336048467E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.6539896470569E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -2.1092623104953E-08 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 8.6332671871578E-04 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.2384647225862E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3922,57 +4060,60 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 1.10566559735435E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.99760216648792E-15 1.10576460361330E-08 + Calling CG2D_STORE with doStore = F + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 0 (PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.1160988913231E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.6479716418671E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 8.4924757910019E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.0486635232781E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.3074576450765E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.4957916890675E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.4294642648818E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.4067819876473E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.6014017426676E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.3868766251057E-06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.9688946862799E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.7452846948338E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0203110948782E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0724089072436E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2520516257635E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.1291752373355E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.6528967666418E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 8.4656300999877E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.0502093470363E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.3070296882678E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.4973866069575E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.4330526534065E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.4017883591818E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.6034085485987E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.3878499331569E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.9698863190395E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.7426651632081E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0254417222088E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0721271221697E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2522077739736E-05 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.3729616202330E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.5868459292566E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7423061165307E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.2016111645757E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.6720265048212E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.7978996721099E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.5904758543164E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.7163028752328E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.5778117695138E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7494533683382E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.3720881786983E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.5854096100640E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7488218795137E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.2009934990537E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.6713953007852E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.7905006185999E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.5865003005200E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.7540999235378E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.5749508778885E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7466263507503E-06 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 1.0920612056232E-02 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -9.8473312456439E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 8.8159954197758E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 1.0771608039885E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 5.5002036892056E-05 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 1.0755871293773E-02 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -9.7017374504133E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 1.6749780518838E-06 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 1.0519059999158E-03 +(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 5.4186959800609E-05 (PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 @@ -3984,7 +4125,7 @@ (PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC @@ -3994,7 +4135,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = -4.50065077785264E-02 +(PID.TID 0000.0001) grdchk reference fc: fcref = -4.49960735199708E-02 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -4015,27 +4156,47 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -2.81996648254790E-14 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.37667655053519E-14 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 6.88673552302304E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 6.84253554757704E+00 + cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 6.83789717252072E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 7.99360577730113E-15 6.94384100142599E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -2.75335310107039E-14 6.90180622751865E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 1.72306613421824E-13 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 8.10136142073561E+00 + cg2d: Sum(rhs),rhsMax = -1.24344978758018E-14 7.20701040815590E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.81837601024609E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 8.15854450345303E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.18927452945208E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-14 8.25652180482867E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450049163782442D-01 - local fc = -0.450049163782442D-01 - global fc = -0.450049163782442D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50049163782442E-02 + --> objf_atl(bi,bj) = -0.449960570611081D-01 +(PID.TID 0000.0001) local fc = -0.449960570611081D-01 +(PID.TID 0000.0001) global fc = -0.449960570611081D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.49960570611081E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4046,33 +4207,53 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -8.99280649946377E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 6.31447821913433E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 6.88673552302302E+00 - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 6.84253554757713E+00 + cg2d: Sum(rhs),rhsMax = 2.44249065417534E-14 6.83789717252081E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 6.94384100142575E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 6.90180622751875E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -8.52651282912120E-14 8.10136142073571E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.20701040815569E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 7.81837601024608E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -6.39488462184090E-14 8.15854450345313E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.18927452945239E+00 + cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 8.25652180482852E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450082062401577D-01 - local fc = -0.450082062401577D-01 - global fc = -0.450082062401577D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50082062401577E-02 + --> objf_atl(bi,bj) = -0.449960899895836D-01 +(PID.TID 0000.0001) local fc = -0.449960899895836D-01 +(PID.TID 0000.0001) global fc = -0.449960899895836D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.49960899895836E-02 grad-res ------------------------------- - grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50049163782E-02 -4.50082062402E-02 - grad-res 0 1 1 258 0 2 2 1 1.64373018260E-04 1.64493095680E-04 -7.30517825985E-04 -(PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.64373018259683E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.64493095679633E-04 + grad-res 0 1 31 7 1 2 2 1 -4.49960735200E-02 -4.49960570611E-02 -4.49960899896E-02 + grad-res 0 1 1 258 0 2 2 1 1.64642380343E-04 1.64642377683E-04 1.61606291682E-08 +(PID.TID 0000.0001) ADM ref_cost_function = -4.49960735199708E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.64642380343436E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.64642377682711E-04 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 259 2315 2 @@ -4089,27 +4270,47 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 3.77475828372553E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-16 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 7.99360577730113E-15 6.88673552302317E+00 - cg2d: Sum(rhs),rhsMax = -2.39808173319034E-14 6.84253554757723E+00 + cg2d: Sum(rhs),rhsMax = 1.82076576038526E-14 6.83789717252076E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 5.41788836017076E-14 6.94384100142593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.90180622751880E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 7.17243286106823E+00 - cg2d: Sum(rhs),rhsMax = 9.41469124882133E-14 7.77283039421223E+00 - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 8.10136142073607E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 7.20701040815563E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 7.81837601024610E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-14 8.15854450345324E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.18927452945243E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-14 8.25652180482859E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450043662489691D-01 - local fc = -0.450043662489691D-01 - global fc = -0.450043662489691D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50043662489691E-02 + --> objf_atl(bi,bj) = -0.449960512543586D-01 +(PID.TID 0000.0001) local fc = -0.449960512543586D-01 +(PID.TID 0000.0001) global fc = -0.449960512543586D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.49960512543586E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4120,33 +4321,53 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 1.04360964314765E-14 6.28229902439774E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.35447209004269E-14 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.15303338993544E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 4.17443857259059E-14 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = -4.79616346638068E-14 6.84253554757723E+00 + cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 6.83789717252026E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 6.94384100142598E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 1.19904086659517E-13 6.90180622751909E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = -7.63833440942108E-14 7.77283039421192E+00 - cg2d: Sum(rhs),rhsMax = -9.59232693276135E-14 8.10136142073585E+00 + cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 7.20701040815576E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 6.03961325396085E-14 7.81837601024588E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 8.15854450345295E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 9.76996261670138E-14 8.18927452945227E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.25652180482845E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450088102543467D-01 - local fc = -0.450088102543467D-01 - global fc = -0.450088102543467D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50088102543467E-02 + --> objf_atl(bi,bj) = -0.449960958017290D-01 +(PID.TID 0000.0001) local fc = -0.449960958017290D-01 +(PID.TID 0000.0001) global fc = -0.449960958017290D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.49960958017290E-02 grad-res ------------------------------- - grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50043662490E-02 -4.50088102543E-02 - grad-res 0 2 2 259 0 2 2 1 2.22008889911E-04 2.22200268876E-04 -8.62032888836E-04 -(PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.22008889911487E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.22200268876205E-04 + grad-res 0 2 32 7 1 2 2 1 -4.49960735200E-02 -4.49960512544E-02 -4.49960958017E-02 + grad-res 0 2 2 259 0 2 2 1 2.22736823424E-04 2.22736852365E-04 -1.29935095128E-07 +(PID.TID 0000.0001) ADM ref_cost_function = -4.49960735199708E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.22736823423627E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.22736852364958E-04 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 260 2315 3 @@ -4163,27 +4384,47 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 8.21565038222616E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 1.88737914186277E-15 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 6.88673552302313E+00 - cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 6.84253554757721E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 6.83789717252076E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -2.04281036531029E-14 6.94384100142576E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 6.90180622751845E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.90798504668055E-14 7.17243286106820E+00 - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 7.77283039421189E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 8.10136142073561E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 7.20701040815594E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.81837601024613E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 1.19015908239817E-13 8.15854450345305E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 8.18927452945209E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-14 8.25652180482838E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450041614697552D-01 - local fc = -0.450041614697552D-01 - global fc = -0.450041614697552D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50041614697552E-02 + --> objf_atl(bi,bj) = -0.449960486007357D-01 +(PID.TID 0000.0001) local fc = -0.449960486007357D-01 +(PID.TID 0000.0001) global fc = -0.449960486007357D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.49960486007357E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4194,33 +4435,53 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -4.99600361081320E-15 6.28229902439774E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -7.77156117237610E-16 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 4.35207425653061E-14 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 6.84253554757722E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 6.83789717252076E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 3.64153152077051E-14 6.94384100142593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -2.13162820728030E-14 6.90180622751881E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-14 7.17243286106818E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-14 7.77283039421223E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 8.10136142073603E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 7.20701040815592E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 7.81837601024620E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 7.28306304154103E-14 8.15854450345320E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 8.18927452945235E+00 + cg2d: Sum(rhs),rhsMax = 1.40332190312620E-13 8.25652180482855E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450091385314741D-01 - local fc = -0.450091385314741D-01 - global fc = -0.450091385314741D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50091385314741E-02 + --> objf_atl(bi,bj) = -0.449960984677059D-01 +(PID.TID 0000.0001) local fc = -0.449960984677059D-01 +(PID.TID 0000.0001) global fc = -0.449960984677059D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.49960984677059E-02 grad-res ------------------------------- - grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50041614698E-02 -4.50091385315E-02 - grad-res 0 3 3 260 0 2 2 1 2.48334333558E-04 2.48853085947E-04 -2.08892738001E-03 -(PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.48334333558171E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.48853085946937E-04 + grad-res 0 3 33 7 1 2 2 1 -4.49960735200E-02 -4.49960486007E-02 -4.49960984677E-02 + grad-res 0 3 3 260 0 2 2 1 2.49334788220E-04 2.49334850613E-04 -2.50237522703E-07 +(PID.TID 0000.0001) ADM ref_cost_function = -4.49960735199708E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.49334788220372E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.49334850613292E-04 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 261 2315 4 @@ -4237,27 +4498,47 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 4.10782519111308E-15 6.28229902439775E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 6.31447821913423E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 5.77315972805081E-15 6.78919330551118E+00 - cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 6.88673552302314E+00 - cg2d: Sum(rhs),rhsMax = 2.66453525910038E-14 6.84253554757717E+00 + cg2d: Sum(rhs),rhsMax = 1.28785870856518E-14 6.83789717252073E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 6.94384100142593E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 6.90180622751863E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 7.17243286106813E+00 - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-14 7.77283039421184E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.10136142073573E+00 + cg2d: Sum(rhs),rhsMax = -8.17124146124115E-14 7.20701040815589E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 7.81837601024609E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 8.15854450345308E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-14 8.18927452945230E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 8.25652180482862E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450044627590097D-01 - local fc = -0.450044627590097D-01 - global fc = -0.450044627590097D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50044627590097E-02 + --> objf_atl(bi,bj) = -0.449960524578720D-01 +(PID.TID 0000.0001) local fc = -0.449960524578720D-01 +(PID.TID 0000.0001) global fc = -0.449960524578720D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.49960524578720E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4268,239 +4549,271 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 6.28229902439774E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 4.94468860746549E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 6.31447821913433E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = -6.12843109593086E-14 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = 3.15303338993544E-14 6.83789717252081E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 5.50670620214078E-14 6.94384100142567E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-14 6.90180622751869E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 7.17243286106822E+00 - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 7.77283039421223E+00 - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 8.10136142073600E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 7.20701040815576E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 + cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.81837601024632E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 2 + cg2d: Sum(rhs),rhsMax = 6.75015598972095E-14 8.15854450345331E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 3 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.18927452945215E+00 + cg2d: Sum(rhs),rhsMax = -4.79616346638068E-14 8.25652180482858E+00 + Calling CG2D_STORE with doStore = T + Calling CG2D_STORE with ikey_dynamics = 1 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450086837899034D-01 - local fc = -0.450086837899034D-01 - global fc = -0.450086837899034D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50086837899034E-02 + --> objf_atl(bi,bj) = -0.449960945950784D-01 +(PID.TID 0000.0001) local fc = -0.449960945950784D-01 +(PID.TID 0000.0001) global fc = -0.449960945950784D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.49960945950784E-02 grad-res ------------------------------- - grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50044627590E-02 -4.50086837899E-02 - grad-res 0 4 4 261 0 2 2 1 2.11013770380E-04 2.11051544686E-04 -1.79013461194E-04 -(PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.11013770380447E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.11051544685842E-04 + grad-res 0 4 34 7 1 2 2 1 -4.49960735200E-02 -4.49960524579E-02 -4.49960945951E-02 + grad-res 0 4 4 261 0 2 2 1 2.10686027577E-04 2.10686031572E-04 -1.89621032209E-08 +(PID.TID 0000.0001) ADM ref_cost_function = -4.49960735199708E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.10686027577266E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.10686031572316E-04 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) EPS = 1.000000E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5004916378244E-02 -4.5008206240158E-02 -(PID.TID 0000.0001) grdchk output (g): 1 1.6449309567963E-04 1.6437301825968E-04 -7.3051782598510E-04 +(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 -4.4996073519971E-02 -4.4996057061108E-02 -4.4996089989584E-02 +(PID.TID 0000.0001) grdchk output (g): 1 1.6464237768271E-04 1.6464238034344E-04 1.6160629168205E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5004366248969E-02 -4.5008810254347E-02 -(PID.TID 0000.0001) grdchk output (g): 2 2.2220026887620E-04 2.2200888991149E-04 -8.6203288883646E-04 +(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 -4.4996073519971E-02 -4.4996051254359E-02 -4.4996095801729E-02 +(PID.TID 0000.0001) grdchk output (g): 2 2.2273685236496E-04 2.2273682342363E-04 -1.2993509512782E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5004161469755E-02 -4.5009138531474E-02 -(PID.TID 0000.0001) grdchk output (g): 3 2.4885308594694E-04 2.4833433355817E-04 -2.0889273800098E-03 +(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 -4.4996073519971E-02 -4.4996048600736E-02 -4.4996098467706E-02 +(PID.TID 0000.0001) grdchk output (g): 3 2.4933485061329E-04 2.4933478822037E-04 -2.5023752270315E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5004462759010E-02 -4.5008683789903E-02 -(PID.TID 0000.0001) grdchk output (g): 4 2.1105154468584E-04 2.1101377038045E-04 -1.7901346119364E-04 +(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 -4.4996073519971E-02 -4.4996052457872E-02 -4.4996094595078E-02 +(PID.TID 0000.0001) grdchk output (g): 4 2.1068603157232E-04 2.1068602757727E-04 -1.8962103220943E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 1.1908421824239E-03 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 1.4152974423081E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 188.66732070210855 -(PID.TID 0000.0001) System time: 0.71589101129211485 -(PID.TID 0000.0001) Wall clock time: 205.22795701026917 +(PID.TID 0000.0001) User time: 102.92847822327167 +(PID.TID 0000.0001) System time: 1.1511410386301577 +(PID.TID 0000.0001) Wall clock time: 104.11805295944214 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.48092699411790818 -(PID.TID 0000.0001) System time: 6.49899991694837809E-002 -(PID.TID 0000.0001) Wall clock time: 7.3946099281311035 +(PID.TID 0000.0001) User time: 0.30066098738461733 +(PID.TID 0000.0001) System time: 7.8874001745134592E-002 +(PID.TID 0000.0001) Wall clock time: 0.40381312370300293 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 94.873573273420334 -(PID.TID 0000.0001) System time: 0.62190597504377365 -(PID.TID 0000.0001) Wall clock time: 104.26642298698425 +(PID.TID 0000.0001) User time: 50.563866168260574 +(PID.TID 0000.0001) System time: 1.0481100305914879 +(PID.TID 0000.0001) Wall clock time: 51.623939990997314 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 114.49560439586639 -(PID.TID 0000.0001) System time: 6.19919896125793457E-002 -(PID.TID 0000.0001) Wall clock time: 118.12638831138611 +(PID.TID 0000.0001) User time: 63.547893881797791 +(PID.TID 0000.0001) System time: 4.5324057340621948E-002 +(PID.TID 0000.0001) Wall clock time: 63.598602533340454 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11395877599716187 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 0.11727523803710938 +(PID.TID 0000.0001) User time: 6.4228594303131104E-002 +(PID.TID 0000.0001) System time: 2.0904839038848877E-004 +(PID.TID 0000.0001) Wall clock time: 6.4468622207641602E-002 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.25499540567398071 -(PID.TID 0000.0001) System time: 1.09989941120147705E-002 -(PID.TID 0000.0001) Wall clock time: 0.26512265205383301 +(PID.TID 0000.0001) User time: 0.12838608026504517 +(PID.TID 0000.0001) System time: 8.9440792798995972E-003 +(PID.TID 0000.0001) Wall clock time: 0.13733363151550293 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.28698068857192993 -(PID.TID 0000.0001) System time: 1.19989663362503052E-002 -(PID.TID 0000.0001) Wall clock time: 0.29730939865112305 -(PID.TID 0000.0001) No. starts: 120 -(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) User time: 0.13768690824508667 +(PID.TID 0000.0001) System time: 1.1882126331329346E-002 +(PID.TID 0000.0001) Wall clock time: 0.14961838722229004 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15417063236236572 +(PID.TID 0000.0001) System time: 3.5681277513504028E-003 +(PID.TID 0000.0001) Wall clock time: 0.15781664848327637 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10090357065200806 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10277891159057617 +(PID.TID 0000.0001) User time: 5.4486811161041260E-002 +(PID.TID 0000.0001) System time: 2.5992095470428467E-004 +(PID.TID 0000.0001) Wall clock time: 5.4785251617431641E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 18.195315301418304 -(PID.TID 0000.0001) System time: 5.99801540374755859E-003 -(PID.TID 0000.0001) Wall clock time: 18.241448879241943 +(PID.TID 0000.0001) User time: 9.6043744683265686 +(PID.TID 0000.0001) System time: 4.0339529514312744E-003 +(PID.TID 0000.0001) Wall clock time: 9.6098556518554688 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 43.694306969642639 -(PID.TID 0000.0001) System time: 9.99997556209564209E-003 -(PID.TID 0000.0001) Wall clock time: 43.812323570251465 +(PID.TID 0000.0001) User time: 24.790241777896881 +(PID.TID 0000.0001) System time: 6.8068504333496094E-005 +(PID.TID 0000.0001) Wall clock time: 24.792293071746826 +(PID.TID 0000.0001) No. starts: 100 +(PID.TID 0000.0001) No. stops: 100 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.35670453310012817 +(PID.TID 0000.0001) System time: 2.2187829017639160E-005 +(PID.TID 0000.0001) Wall clock time: 0.35678648948669434 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9902888536453247 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 5.0032155513763428 +(PID.TID 0000.0001) User time: 2.7896546125411987 +(PID.TID 0000.0001) System time: 1.0995566844940186E-004 +(PID.TID 0000.0001) Wall clock time: 2.7901132106781006 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.71989822387695313 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.72724056243896484 +(PID.TID 0000.0001) User time: 0.52198398113250732 +(PID.TID 0000.0001) System time: 2.7000904083251953E-005 +(PID.TID 0000.0001) Wall clock time: 0.52211976051330566 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9337120056152344 -(PID.TID 0000.0001) System time: 1.00004673004150391E-003 -(PID.TID 0000.0001) Wall clock time: 1.9424962997436523 +(PID.TID 0000.0001) User time: 0.99925410747528076 +(PID.TID 0000.0001) System time: 7.9870223999023438E-006 +(PID.TID 0000.0001) Wall clock time: 0.99941325187683105 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.13695323467254639 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13350272178649902 +(PID.TID 0000.0001) User time: 7.0650637149810791E-002 +(PID.TID 0000.0001) System time: 6.8992376327514648E-005 +(PID.TID 0000.0001) Wall clock time: 7.0817947387695312E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.87887835502624512 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.87764835357666016 +(PID.TID 0000.0001) User time: 0.44236892461776733 +(PID.TID 0000.0001) System time: 1.0503828525543213E-004 +(PID.TID 0000.0001) Wall clock time: 0.44269990921020508 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 40.779792070388794 -(PID.TID 0000.0001) System time: 6.99800252914428711E-003 -(PID.TID 0000.0001) Wall clock time: 40.890549421310425 +(PID.TID 0000.0001) User time: 21.870196580886841 +(PID.TID 0000.0001) System time: 7.7798962593078613E-003 +(PID.TID 0000.0001) Wall clock time: 21.880073070526123 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.04689598083496094E-003 +(PID.TID 0000.0001) User time: 7.9703330993652344E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 8.0728530883789062E-004 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.89186406135559082 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.89492583274841309 +(PID.TID 0000.0001) User time: 0.53715419769287109 +(PID.TID 0000.0001) System time: 1.4090538024902344E-004 +(PID.TID 0000.0001) Wall clock time: 0.53751993179321289 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6517519950866699 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6544349193572998 +(PID.TID 0000.0001) User time: 1.0816168785095215 +(PID.TID 0000.0001) System time: 8.9406967163085938E-006 +(PID.TID 0000.0001) Wall clock time: 1.0819339752197266 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.19780731201171875E-002 -(PID.TID 0000.0001) System time: 1.19980126619338989E-002 -(PID.TID 0000.0001) Wall clock time: 3.3884611129760742 +(PID.TID 0000.0001) User time: 4.0634155273437500E-002 +(PID.TID 0000.0001) System time: 7.9730004072189331E-003 +(PID.TID 0000.0001) Wall clock time: 4.8612356185913086E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.39929962158203125E-002 -(PID.TID 0000.0001) System time: 9.99899208545684814E-003 -(PID.TID 0000.0001) Wall clock time: 5.48207759857177734E-002 +(PID.TID 0000.0001) User time: 2.2469758987426758E-002 +(PID.TID 0000.0001) System time: 1.1913016438484192E-002 +(PID.TID 0000.0001) Wall clock time: 3.4404754638671875E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.27195739746093750 -(PID.TID 0000.0001) System time: 5.89910149574279785E-002 -(PID.TID 0000.0001) Wall clock time: 4.1275529861450195 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.16974258422851562 +(PID.TID 0000.0001) System time: 7.9943001270294189E-002 +(PID.TID 0000.0001) Wall clock time: 0.25014495849609375 +(PID.TID 0000.0001) No. starts: 3 +(PID.TID 0000.0001) No. stops: 3 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 8.00323486328125000E-003 -(PID.TID 0000.0001) System time: 9.99033451080322266E-004 -(PID.TID 0000.0001) Wall clock time: 1.25141143798828125E-002 +(PID.TID 0000.0001) User time: 5.6877136230468750E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.6908130645751953E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 7.99560546875000000E-003 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 9.38010215759277344E-003 +(PID.TID 0000.0001) User time: 3.5858154296875000E-003 +(PID.TID 0000.0001) System time: 2.8014183044433594E-005 +(PID.TID 0000.0001) Wall clock time: 3.6239624023437500E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 93.293815612792969 -(PID.TID 0000.0001) System time: 2.69960165023803711E-002 -(PID.TID 0000.0001) Wall clock time: 93.541962862014771 +(PID.TID 0000.0001) User time: 52.051467895507812 +(PID.TID 0000.0001) System time: 2.4073004722595215E-002 +(PID.TID 0000.0001) Wall clock time: 52.077739953994751 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.86887359619140625 -(PID.TID 0000.0001) System time: 6.99907541275024414E-003 -(PID.TID 0000.0001) Wall clock time: 0.87582015991210938 +(PID.TID 0000.0001) User time: 0.55919265747070312 +(PID.TID 0000.0001) System time: 6.2279701232910156E-003 +(PID.TID 0000.0001) Wall clock time: 0.56543803215026855 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 92.403968811035156 -(PID.TID 0000.0001) System time: 1.69969797134399414E-002 -(PID.TID 0000.0001) Wall clock time: 92.640902996063232 +(PID.TID 0000.0001) User time: 51.482364654541016 +(PID.TID 0000.0001) System time: 1.2178063392639160E-002 +(PID.TID 0000.0001) Wall clock time: 51.496722221374512 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 90.599220275878906 -(PID.TID 0000.0001) System time: 1.69969797134399414E-002 -(PID.TID 0000.0001) Wall clock time: 90.834972858428955 +(PID.TID 0000.0001) User time: 50.363868713378906 +(PID.TID 0000.0001) System time: 1.2165069580078125E-002 +(PID.TID 0000.0001) Wall clock time: 50.378075122833252 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 8.8882446289062500E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.66754150390625000E-004 +(PID.TID 0000.0001) Wall clock time: 8.7404251098632812E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4551,9 +4864,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 28126 +(PID.TID 0000.0001) // No. barriers = 26442 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 28126 +(PID.TID 0000.0001) // Total barrier spins = 26442 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output_adm.kapgm.txt b/verification/global_ocean.90x40x15/results/output_adm.kapgm.txt index b4e8b829ab..b0bde79dc5 100644 --- a/verification/global_ocean.90x40x15/results/output_adm.kapgm.txt +++ b/verification/global_ocean.90x40x15/results/output_adm.kapgm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67h -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Mar 21 16:34:05 EDT 2019 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jul 25 15:24:21 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,7 +49,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -337,6 +337,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -358,9 +364,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -405,6 +420,7 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -433,7 +449,7 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-7, +(PID.TID 0000.0001) > grdchk_eps = 100.0, (PID.TID 0000.0001) >### iGloPos = 76, (PID.TID 0000.0001) >### jGloPos = 27, (PID.TID 0000.0001) > iGloPos = 31, @@ -454,7 +470,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) grdchkvarindex : 201 -(PID.TID 0000.0001) eps: 0.100E-06 +(PID.TID 0000.0001) eps: 0.100E+03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 3 (PID.TID 0000.0001) Increment: 1 @@ -1010,8 +1026,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 29309 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 29309 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1031,10 +1047,11 @@ (PID.TID 0000.0001) Settings of generic controls: (PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ (PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use (PID.TID 0000.0001) file = xx_kapgm (PID.TID 0000.0001) weight = wunit.data +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1078,9 +1095,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1117,6 +1154,9 @@ (PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscC2LeithQG = /* QG Leith harmonic viscosity factor (non-dim.)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1207,10 +1247,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1265,28 +1311,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1308,7 +1357,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1317,7 +1366,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1382,14 +1431,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1402,6 +1449,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1517,8 +1567,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1535,6 +1585,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1881,15 +1934,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2319,7 +2363,12 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2413,6 +2462,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 @@ -3280,33 +3330,35 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785264D-01 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065077785264D-01 (PID.TID 0000.0001) local fc = -0.450065077785264D-01 (PID.TID 0000.0001) global fc = -0.450065077785264D-01 +(PID.TID 0000.0001) whio : write lev 2 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 4 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3343,35 +3395,15 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 2.43291662919200E-16 8.04945967787814E-09 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 - cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3407,31 +3439,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2325762260956E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.2217301926629E-06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0842853958766E-08 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.1369794371672E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.9229376720338E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -3.8140415968654E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 9.2023209933154E-05 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.8980086722132E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = -5.97381844512357E-15 9.21369200784080E-09 - cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3467,32 +3479,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.0360323164530E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7002978894619E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.4269943042440E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.0196882379042E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.8185226902461E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -8.3765107545071E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.0113603295569E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 9.7821467813706E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.13797860024079E-15 8.74327613604373E-09 - EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.12475133373646E-15 8.74327613604373E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3528,35 +3519,15 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.0673259950301E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.5374236161301E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6030397490280E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 3.2058448280037E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -2.7414781387377E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.2179793652162E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.9356355635084E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.2810431461614E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.91860416443035E-15 5.49414350830240E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.16000306319364E-15 5.49414350830240E-09 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 - cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3564,7 +3535,7 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.0060424524922E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.1135897576180E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842106E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842105E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.7107690093710E-05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.9846447418636E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.1501933179738E-03 @@ -3592,37 +3563,17 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.5408511006008E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.9182463518997E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2985063857012E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.1192327764588E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.3315403332602E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4985645800165E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 3.6790391905696E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.4531705248450E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.76039738342126E-14 3.68281353912161E-09 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.14172038279526E-15 3.68281353912161E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 5 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758776E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758777E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0825958273422E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.6488152453012E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.3631602990555E-05 @@ -3652,32 +3603,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.9569247218618E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4584049628928E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1075904169476E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.7193421210487E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.6085395737164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.6782519187114E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.3510183140663E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.6325090672043E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.59594559789866E-15 5.90272604043302E-09 - EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 5.90272604043302E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3713,36 +3643,16 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2590632002315E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1286222924402E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0460676018882E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.1293680025185E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.9049282529656E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9285595109877E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 5.0975922912545E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.9626790301794E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.77236045021345E-15 7.26634540912284E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 7.26634540912284E-09 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3778,31 +3688,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4095867494327E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8858140787003E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0906081354048E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.5397472193210E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -4.8127091163633E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9484275219416E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 6.0438695284394E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.5187052250519E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.71924713249427E-15 8.24007965726773E-09 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 6.05071548420710E-15 8.24007965726773E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3838,33 +3728,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.3864084090940E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.7192545654468E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.2295148560419E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 6.8211547564484E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -6.0964048363164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.5336055052183E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 7.2839908450321E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 3.3116364208903E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 9.24289205824490E-09 - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 9.99200722162641E-16 9.24289205824490E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3900,30 +3768,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1688611094337E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.6198588360648E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.4532755935465E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.6233582389249E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.7775969553130E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -5.9774739066653E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 8.8503632112326E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.3091929490963E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 1.10566559735434E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.33146835171283E-15 1.10566559735435E-08 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3962,26 +3811,6 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.7163028752328E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.5778117695138E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7494533683382E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 1.0920612056233E-02 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -9.8473312456438E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 8.8159954196372E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 1.0771608039886E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 5.5002036892064E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4017,26 +3846,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 1.16573417585641E-14 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 6.78919330551116E+00 - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = -5.86197757002083E-14 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-14 6.84253554757725E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = 3.73034936274053E-14 7.17243286106815E+00 + cg2d: Sum(rhs),rhsMax = -2.13162820728030E-14 7.77283039421188E+00 + cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 8.10136142073572E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.18927452945200E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-14 8.18927452945213E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785272D-01 -(PID.TID 0000.0001) local fc = -0.450065077785272D-01 -(PID.TID 0000.0001) global fc = -0.450065077785272D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785272E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065067411032D-01 +(PID.TID 0000.0001) local fc = -0.450065067411032D-01 +(PID.TID 0000.0001) global fc = -0.450065067411032D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065067411032E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4047,33 +3876,33 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 7.88258347483861E-15 6.28229902439774E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -1.86517468137026E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = 3.86357612569554E-14 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.88673552302335E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 6.84253554757722E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 7.17243286106814E+00 - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -1.24344978758018E-14 8.10136142073577E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-14 7.77283039421190E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 8.10136142073562E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.18927452945222E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-14 8.18927452945226E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785267D-01 -(PID.TID 0000.0001) local fc = -0.450065077785267D-01 -(PID.TID 0000.0001) global fc = -0.450065077785267D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785267E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065088159011D-01 +(PID.TID 0000.0001) local fc = -0.450065088159011D-01 +(PID.TID 0000.0001) global fc = -0.450065088159011D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065088159011E-02 grad-res ------------------------------- - grad-res 0 1 31 7 3 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 1 1 1383 0 2 2 1 3.48430523455E-11 -2.46330733589E-09 7.16972314440E+01 + grad-res 0 1 31 7 3 2 2 1 -4.50065077785E-02 -4.50065067411E-02 -4.50065088159E-02 + grad-res 0 1 1 1383 0 2 2 1 1.03739769838E-11 1.03739891330E-11 -1.17112217701E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.48430523455221E-11 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.46330733588707E-09 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.03739769838112E-11 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.03739891330057E-11 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1384 29309 2 @@ -4091,26 +3920,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -2.93098878501041E-14 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = -1.07469588783715E-13 6.84253554757722E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 6.78919330551118E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 6.88673552302304E+00 + cg2d: Sum(rhs),rhsMax = -3.28626015289046E-14 6.84253554757708E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 7.17243286106815E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-14 7.77283039421191E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 7.17243286106816E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 7.77283039421186E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-14 8.10136142073570E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.90798504668055E-14 8.18927452945211E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.18927452945208E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785274D-01 -(PID.TID 0000.0001) local fc = -0.450065077785274D-01 -(PID.TID 0000.0001) global fc = -0.450065077785274D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785274E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065054433917D-01 +(PID.TID 0000.0001) local fc = -0.450065054433917D-01 +(PID.TID 0000.0001) global fc = -0.450065054433917D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065054433917E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4121,33 +3950,33 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 8.21565038222616E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.54951656745106E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -1.86517468137026E-14 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 6.84253554757735E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-15 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 6.84253554757721E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 7.77283039421192E+00 - cg2d: Sum(rhs),rhsMax = 5.68434188608080E-14 8.10136142073577E+00 + cg2d: Sum(rhs),rhsMax = 1.01252339845814E-13 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = -4.97379915032070E-14 7.77283039421172E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-14 8.10136142073569E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.10134124042816E-13 8.18927452945213E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.18927452945235E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785270D-01 -(PID.TID 0000.0001) local fc = -0.450065077785270D-01 -(PID.TID 0000.0001) global fc = -0.450065077785270D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785270E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065101136090D-01 +(PID.TID 0000.0001) local fc = -0.450065101136090D-01 +(PID.TID 0000.0001) global fc = -0.450065101136090D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065101136090E-02 grad-res ------------------------------- - grad-res 0 2 32 7 3 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 2 2 1384 0 2 2 1 3.85117906178E-11 -1.80411241502E-09 4.78457162358E+01 + grad-res 0 2 32 7 3 2 2 1 -4.50065077785E-02 -4.50065054434E-02 -4.50065101136E-02 + grad-res 0 2 2 1384 0 2 2 1 2.33511442981E-11 2.33510864811E-11 2.47598032976E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.85117906178031E-11 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.80411241501588E-09 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.33511442980788E-11 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.33510864811048E-11 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1385 29309 3 @@ -4164,27 +3993,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = -3.77475828372553E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.54951656745106E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-14 6.88673552302303E+00 + cg2d: Sum(rhs),rhsMax = -3.64153152077051E-14 6.84253554757717E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -9.05941988094128E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.77283039421189E+00 - cg2d: Sum(rhs),rhsMax = 9.59232693276135E-14 8.10136142073574E+00 + cg2d: Sum(rhs),rhsMax = 3.90798504668055E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 7.77283039421188E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-14 8.10136142073570E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 8.18927452945212E+00 + cg2d: Sum(rhs),rhsMax = -1.42108547152020E-14 8.18927452945220E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785268D-01 -(PID.TID 0000.0001) local fc = -0.450065077785268D-01 -(PID.TID 0000.0001) global fc = -0.450065077785268D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785268E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065045933392D-01 +(PID.TID 0000.0001) local fc = -0.450065045933392D-01 +(PID.TID 0000.0001) global fc = -0.450065045933392D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065045933392E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4196,32 +4025,32 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 7.21644966006352E-15 6.28229902439774E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 6.84253554757723E+00 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -4.61852778244065E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -5.77315972805081E-14 6.84253554757726E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.42108547152020E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 7.77283039421189E+00 - cg2d: Sum(rhs),rhsMax = 5.86197757002083E-14 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 7.17243286106821E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-14 7.77283039421187E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.10136142073571E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 6.03961325396085E-14 8.18927452945223E+00 + cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 8.18927452945241E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785269D-01 -(PID.TID 0000.0001) local fc = -0.450065077785269D-01 -(PID.TID 0000.0001) global fc = -0.450065077785269D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785269E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065109635903D-01 +(PID.TID 0000.0001) local fc = -0.450065109635903D-01 +(PID.TID 0000.0001) global fc = -0.450065109635903D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065109635903E-02 grad-res ------------------------------- - grad-res 0 3 33 7 3 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 3 3 1385 0 2 2 1 3.38104416677E-11 6.24500451352E-10 -1.74706386710E+01 + grad-res 0 3 33 7 3 2 2 1 -4.50065077785E-02 -4.50065045933E-02 -4.50065109636E-02 + grad-res 0 3 3 1385 0 2 2 1 3.18512694993E-11 3.18512553832E-11 4.43188858501E-07 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.38104416677405E-11 -(PID.TID 0000.0001) ADM finite-diff_grad = 6.24500451351651E-10 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.18512694993140E-11 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.18512553831862E-11 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1386 29309 4 @@ -4239,26 +4068,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -2.04281036531029E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 6.84253554757713E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 7.77283039421191E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 8.10136142073578E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 7.17243286106821E+00 + cg2d: Sum(rhs),rhsMax = -4.79616346638068E-14 7.77283039421185E+00 + cg2d: Sum(rhs),rhsMax = -1.95399252334028E-14 8.10136142073571E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 8.18927452945204E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 8.18927452945259E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785271D-01 -(PID.TID 0000.0001) local fc = -0.450065077785271D-01 -(PID.TID 0000.0001) global fc = -0.450065077785271D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785271E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065075398805D-01 +(PID.TID 0000.0001) local fc = -0.450065075398805D-01 +(PID.TID 0000.0001) global fc = -0.450065075398805D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065075398805E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4270,244 +4099,244 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 6.28229902439774E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -3.28626015289046E-14 6.88673552302313E+00 - cg2d: Sum(rhs),rhsMax = 9.41469124882133E-14 6.84253554757718E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.78919330551116E+00 + cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 6.88673552302334E+00 + cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 6.84253554757731E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 7.17243286106819E+00 - cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 7.77283039421184E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 8.10136142073567E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-14 7.17243286106822E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-14 7.77283039421186E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 8.10136142073572E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.08357767203415E-13 8.18927452945205E+00 + cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 8.18927452945237E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785269D-01 -(PID.TID 0000.0001) local fc = -0.450065077785269D-01 -(PID.TID 0000.0001) global fc = -0.450065077785269D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785269E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065080167473D-01 +(PID.TID 0000.0001) local fc = -0.450065080167473D-01 +(PID.TID 0000.0001) global fc = -0.450065080167473D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065080167473E-02 grad-res ------------------------------- - grad-res 0 4 34 7 3 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 4 4 1386 0 2 2 1 -5.27017882857E-11 -1.17961196366E-09 -2.13827692007E+01 + grad-res 0 4 34 7 3 2 2 1 -4.50065077785E-02 -4.50065075399E-02 -4.50065080167E-02 + grad-res 0 4 4 1386 0 2 2 1 2.38436153771E-12 2.38433432720E-12 1.14120759644E-05 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -5.27017882856644E-11 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.17961196366423E-09 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.38436153771397E-12 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.38433432719898E-12 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-07 +(PID.TID 0000.0001) EPS = 1.000000E+02 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 31 7 3 2 2 0.000000000E+00 -1.000000000E-07 -(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006507778527E-02 -4.5006507778527E-02 -(PID.TID 0000.0001) grdchk output (g): 1 -2.4633073358871E-09 3.4843052345522E-11 7.1697231444008E+01 +(PID.TID 0000.0001) grdchk output (p): 1 31 7 3 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006506741103E-02 -4.5006508815901E-02 +(PID.TID 0000.0001) grdchk output (g): 1 1.0373989133006E-11 1.0373976983811E-11 -1.1711221770128E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 32 7 3 2 2 0.000000000E+00 -1.000000000E-07 -(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006507778527E-02 -4.5006507778527E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -1.8041124150159E-09 3.8511790617803E-11 4.7845716235845E+01 +(PID.TID 0000.0001) grdchk output (p): 2 32 7 3 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006505443392E-02 -4.5006510113609E-02 +(PID.TID 0000.0001) grdchk output (g): 2 2.3351086481105E-11 2.3351144298079E-11 2.4759803297636E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 33 7 3 2 2 0.000000000E+00 -1.000000000E-07 -(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006507778527E-02 -4.5006507778527E-02 -(PID.TID 0000.0001) grdchk output (g): 3 6.2450045135165E-10 3.3810441667741E-11 -1.7470638670997E+01 +(PID.TID 0000.0001) grdchk output (p): 3 33 7 3 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006504593339E-02 -4.5006510963590E-02 +(PID.TID 0000.0001) grdchk output (g): 3 3.1851255383186E-11 3.1851269499314E-11 4.4318885850103E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 34 7 3 2 2 0.000000000E+00 -1.000000000E-07 -(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006507778527E-02 -4.5006507778527E-02 -(PID.TID 0000.0001) grdchk output (g): 4 -1.1796119636642E-09 -5.2701788285664E-11 -2.1382769200739E+01 +(PID.TID 0000.0001) grdchk output (p): 4 34 7 3 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006507539880E-02 -4.5006508016747E-02 +(PID.TID 0000.0001) grdchk output (g): 4 2.3843343271990E-12 2.3843615377140E-12 1.1412075964445E-05 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 4.5255252714799E+01 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 5.8722631908285E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 183.95603932999074 -(PID.TID 0000.0001) System time: 0.42093599610961974 -(PID.TID 0000.0001) Wall clock time: 184.81772804260254 +(PID.TID 0000.0001) User time: 101.06677383882925 +(PID.TID 0000.0001) System time: 0.81833498459309340 +(PID.TID 0000.0001) Wall clock time: 101.89941191673279 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.18797199986875057 -(PID.TID 0000.0001) System time: 1.29980000201612711E-002 -(PID.TID 0000.0001) Wall clock time: 0.20529484748840332 +(PID.TID 0000.0001) User time: 0.14834099402651191 +(PID.TID 0000.0001) System time: 4.2640999890863895E-002 +(PID.TID 0000.0001) Wall clock time: 0.20237612724304199 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 91.576081246137619 -(PID.TID 0000.0001) System time: 0.38294201344251633 -(PID.TID 0000.0001) Wall clock time: 92.167968988418579 +(PID.TID 0000.0001) User time: 50.097458094358444 +(PID.TID 0000.0001) System time: 0.72363400459289551 +(PID.TID 0000.0001) Wall clock time: 50.823200941085815 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 112.76786506175995 -(PID.TID 0000.0001) System time: 2.29959934949874878E-002 -(PID.TID 0000.0001) Wall clock time: 113.06022667884827 +(PID.TID 0000.0001) User time: 63.941829204559326 +(PID.TID 0000.0001) System time: 3.2253012061119080E-002 +(PID.TID 0000.0001) Wall clock time: 63.976004362106323 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10801041126251221 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11377096176147461 +(PID.TID 0000.0001) User time: 6.3802689313888550E-002 +(PID.TID 0000.0001) System time: 4.7005712985992432E-004 +(PID.TID 0000.0001) Wall clock time: 6.4372777938842773E-002 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.24985724687576294 -(PID.TID 0000.0001) System time: 7.99799710512161255E-003 -(PID.TID 0000.0001) Wall clock time: 0.25675225257873535 +(PID.TID 0000.0001) User time: 0.13519030809402466 +(PID.TID 0000.0001) System time: 5.6339651346206665E-003 +(PID.TID 0000.0001) Wall clock time: 0.14078736305236816 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.28085684776306152 -(PID.TID 0000.0001) System time: 8.99801403284072876E-003 -(PID.TID 0000.0001) Wall clock time: 0.28868889808654785 -(PID.TID 0000.0001) No. starts: 120 -(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) User time: 0.14746889472007751 +(PID.TID 0000.0001) System time: 5.7530105113983154E-003 +(PID.TID 0000.0001) Wall clock time: 0.15329027175903320 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.33707356452941895 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.33434844017028809 +(PID.TID 0000.0001) User time: 0.15624138712882996 +(PID.TID 0000.0001) System time: 2.4290233850479126E-003 +(PID.TID 0000.0001) Wall clock time: 0.15871524810791016 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.88803505897521973E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.96010303497314453E-002 +(PID.TID 0000.0001) User time: 5.7436078786849976E-002 +(PID.TID 0000.0001) System time: 2.6899576187133789E-004 +(PID.TID 0000.0001) Wall clock time: 5.7733058929443359E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 17.711343228816986 -(PID.TID 0000.0001) System time: 9.99994575977325439E-004 -(PID.TID 0000.0001) Wall clock time: 17.758112192153931 +(PID.TID 0000.0001) User time: 10.451213240623474 +(PID.TID 0000.0001) System time: 1.0001659393310547E-004 +(PID.TID 0000.0001) Wall clock time: 10.451992034912109 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 43.387355148792267 -(PID.TID 0000.0001) System time: 2.00000405311584473E-003 -(PID.TID 0000.0001) Wall clock time: 43.494468688964844 +(PID.TID 0000.0001) User time: 24.486118495464325 +(PID.TID 0000.0001) System time: 3.9819777011871338E-003 +(PID.TID 0000.0001) Wall clock time: 24.491322517395020 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.8862730264663696 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 4.8936710357666016 +(PID.TID 0000.0001) User time: 2.7474490404129028 +(PID.TID 0000.0001) System time: 2.5987625122070312E-005 +(PID.TID 0000.0001) Wall clock time: 2.7476892471313477 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0118525028228760 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0142886638641357 +(PID.TID 0000.0001) User time: 0.51661521196365356 +(PID.TID 0000.0001) System time: 3.9758980274200439E-003 +(PID.TID 0000.0001) Wall clock time: 0.52075219154357910 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.8856821060180664 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.8931772708892822 +(PID.TID 0000.0001) User time: 0.98781448602676392 +(PID.TID 0000.0001) System time: 2.6017427444458008E-005 +(PID.TID 0000.0001) Wall clock time: 0.98798584938049316 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12998640537261963 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12857675552368164 +(PID.TID 0000.0001) User time: 7.1612715721130371E-002 +(PID.TID 0000.0001) System time: 7.0333480834960938E-006 +(PID.TID 0000.0001) Wall clock time: 7.1674585342407227E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.79187655448913574 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.79217648506164551 +(PID.TID 0000.0001) User time: 0.45290887355804443 +(PID.TID 0000.0001) System time: 2.8579831123352051E-003 +(PID.TID 0000.0001) Wall clock time: 0.45597934722900391 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 39.617007374763489 -(PID.TID 0000.0001) System time: 2.99900770187377930E-003 -(PID.TID 0000.0001) Wall clock time: 39.715998888015747 +(PID.TID 0000.0001) User time: 22.062060117721558 +(PID.TID 0000.0001) System time: 5.9604644775390625E-006 +(PID.TID 0000.0001) Wall clock time: 22.063092470169067 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.01161003112792969E-003 +(PID.TID 0000.0001) User time: 8.3136558532714844E-004 +(PID.TID 0000.0001) System time: 1.2993812561035156E-005 +(PID.TID 0000.0001) Wall clock time: 8.7714195251464844E-004 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.86186945438385010 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.86579370498657227 +(PID.TID 0000.0001) User time: 0.58726668357849121 +(PID.TID 0000.0001) System time: 9.0003013610839844E-006 +(PID.TID 0000.0001) Wall clock time: 0.58730816841125488 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6017764806747437 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6022977828979492 +(PID.TID 0000.0001) User time: 1.1068261861801147 +(PID.TID 0000.0001) System time: 1.0759830474853516E-003 +(PID.TID 0000.0001) Wall clock time: 1.1080393791198730 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.69961357116699219E-002 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 2.80020236968994141E-002 +(PID.TID 0000.0001) User time: 1.8792867660522461E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.8821477890014648E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.19931411743164063E-002 -(PID.TID 0000.0001) System time: 6.99900090694427490E-003 -(PID.TID 0000.0001) Wall clock time: 4.96520996093750000E-002 +(PID.TID 0000.0001) User time: 2.1788597106933594E-002 +(PID.TID 0000.0001) System time: 1.1249005794525146E-002 +(PID.TID 0000.0001) Wall clock time: 3.3017635345458984E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 6.69879913330078125E-002 -(PID.TID 0000.0001) System time: 2.00000405311584473E-003 -(PID.TID 0000.0001) Wall clock time: 6.80091381072998047E-002 -(PID.TID 0000.0001) No. starts: 3 -(PID.TID 0000.0001) No. stops: 3 +(PID.TID 0000.0001) User time: 4.4769287109375000E-002 +(PID.TID 0000.0001) System time: 8.0030262470245361E-003 +(PID.TID 0000.0001) Wall clock time: 5.2767992019653320E-002 +(PID.TID 0000.0001) No. starts: 4 +(PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.29928588867187500E-002 -(PID.TID 0000.0001) System time: 1.99997425079345703E-003 -(PID.TID 0000.0001) Wall clock time: 1.48420333862304688E-002 +(PID.TID 0000.0001) User time: 6.1073303222656250E-003 +(PID.TID 0000.0001) System time: 4.0329694747924805E-003 +(PID.TID 0000.0001) Wall clock time: 1.0143995285034180E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.30004882812500000E-002 +(PID.TID 0000.0001) User time: 7.0915222167968750E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.32980346679687500E-002 +(PID.TID 0000.0001) Wall clock time: 7.0939064025878906E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 92.165992736816406 -(PID.TID 0000.0001) System time: 2.29960083961486816E-002 -(PID.TID 0000.0001) Wall clock time: 92.416245937347412 +(PID.TID 0000.0001) User time: 50.807701110839844 +(PID.TID 0000.0001) System time: 4.7996997833251953E-002 +(PID.TID 0000.0001) Wall clock time: 50.856518030166626 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.99082946777343750 -(PID.TID 0000.0001) System time: 4.99898195266723633E-003 -(PID.TID 0000.0001) Wall clock time: 0.99546766281127930 +(PID.TID 0000.0001) User time: 0.55281448364257812 +(PID.TID 0000.0001) System time: 8.0049633979797363E-003 +(PID.TID 0000.0001) Wall clock time: 0.56083035469055176 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.022178649902344 -(PID.TID 0000.0001) System time: 7.99798965454101563E-003 -(PID.TID 0000.0001) Wall clock time: 91.255861759185791 +(PID.TID 0000.0001) User time: 50.174865722656250 +(PID.TID 0000.0001) System time: 1.6056001186370850E-002 +(PID.TID 0000.0001) Wall clock time: 50.191707372665405 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 89.356422424316406 -(PID.TID 0000.0001) System time: 7.99798965454101563E-003 -(PID.TID 0000.0001) Wall clock time: 89.581991195678711 +(PID.TID 0000.0001) User time: 50.172298431396484 +(PID.TID 0000.0001) System time: 1.6021966934204102E-002 +(PID.TID 0000.0001) Wall clock time: 50.189076185226440 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 7.0190429687500000E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.39471817016601563E-004 +(PID.TID 0000.0001) Wall clock time: 6.9856643676757812E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4558,9 +4387,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 30596 +(PID.TID 0000.0001) // No. barriers = 27678 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 30596 +(PID.TID 0000.0001) // Total barrier spins = 27678 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output_adm.kapredi.txt b/verification/global_ocean.90x40x15/results/output_adm.kapredi.txt index 4facc0964c..5a8e20f271 100644 --- a/verification/global_ocean.90x40x15/results/output_adm.kapredi.txt +++ b/verification/global_ocean.90x40x15/results/output_adm.kapredi.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67h -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Mar 21 16:34:05 EDT 2019 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jul 25 15:24:21 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,7 +49,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -337,6 +337,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -358,9 +364,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -405,6 +420,7 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -433,7 +449,7 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > grdchk_eps = 100.0, (PID.TID 0000.0001) >### iGloPos = 76, (PID.TID 0000.0001) >### jGloPos = 27, (PID.TID 0000.0001) > iGloPos = 31, @@ -454,7 +470,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) grdchkvarindex : 201 -(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) eps: 0.100E+03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 3 (PID.TID 0000.0001) Increment: 1 @@ -1010,8 +1026,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 29309 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 29309 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1031,10 +1047,11 @@ (PID.TID 0000.0001) Settings of generic controls: (PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ (PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use (PID.TID 0000.0001) file = xx_kapredi (PID.TID 0000.0001) weight = wunit.data +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1078,9 +1095,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1117,6 +1154,9 @@ (PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscC2LeithQG = /* QG Leith harmonic viscosity factor (non-dim.)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1207,10 +1247,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1265,28 +1311,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1308,7 +1357,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1317,7 +1366,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1382,14 +1431,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1402,6 +1449,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1517,8 +1567,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1535,6 +1585,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1881,15 +1934,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2319,7 +2363,12 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2413,6 +2462,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 @@ -3280,33 +3330,35 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785264D-01 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065077785264D-01 (PID.TID 0000.0001) local fc = -0.450065077785264D-01 (PID.TID 0000.0001) global fc = -0.450065077785264D-01 +(PID.TID 0000.0001) whio : write lev 2 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 4 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3343,35 +3395,15 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 2.43291662919200E-16 8.04945967787814E-09 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 - cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3407,31 +3439,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2325762260956E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.2217301926629E-06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0842853958766E-08 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.1369794371672E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.9229376720338E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -3.8140415968654E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 9.2023209933154E-05 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.8980086722132E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = -5.97381844512357E-15 9.21369200784080E-09 - cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3467,32 +3479,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.0360323164530E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7002978894619E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.4269943042440E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.0196882379042E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.8185226902461E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -8.3765107545071E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.0113603295569E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 9.7821467813706E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.13797860024079E-15 8.74327613604373E-09 - EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.12475133373646E-15 8.74327613604373E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3528,35 +3519,15 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.0673259950301E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.5374236161301E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6030397490280E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 3.2058448280037E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -2.7414781387377E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.2179793652162E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.9356355635084E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.2810431461614E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.91860416443035E-15 5.49414350830240E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.16000306319364E-15 5.49414350830240E-09 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 - cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3564,7 +3535,7 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.0060424524922E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.1135897576180E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842106E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842105E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.7107690093710E-05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.9846447418636E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.1501933179738E-03 @@ -3592,37 +3563,17 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.5408511006008E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.9182463518997E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2985063857012E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.1192327764588E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.3315403332602E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4985645800165E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 3.6790391905696E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.4531705248450E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.76039738342126E-14 3.68281353912161E-09 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.14172038279526E-15 3.68281353912161E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 5 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758776E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758777E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0825958273422E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.6488152453012E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.3631602990555E-05 @@ -3652,32 +3603,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.9569247218618E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4584049628928E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1075904169476E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.7193421210487E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.6085395737164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.6782519187114E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.3510183140663E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.6325090672043E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.59594559789866E-15 5.90272604043302E-09 - EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 5.90272604043302E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3713,36 +3643,16 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2590632002315E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1286222924402E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0460676018882E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.1293680025185E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.9049282529656E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9285595109877E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 5.0975922912545E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.9626790301794E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.77236045021345E-15 7.26634540912284E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 7.26634540912284E-09 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3778,31 +3688,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4095867494327E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8858140787003E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0906081354048E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.5397472193210E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -4.8127091163633E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9484275219416E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 6.0438695284394E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.5187052250519E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.71924713249427E-15 8.24007965726773E-09 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 6.05071548420710E-15 8.24007965726773E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3838,33 +3728,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.3864084090940E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.7192545654468E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.2295148560419E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 6.8211547564484E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -6.0964048363164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.5336055052183E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 7.2839908450321E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 3.3116364208903E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 9.24289205824490E-09 - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 9.99200722162641E-16 9.24289205824490E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3900,30 +3768,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1688611094337E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.6198588360648E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.4532755935465E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.6233582389249E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.7775969553130E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -5.9774739066653E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 8.8503632112326E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.3091929490963E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.88737914186277E-15 1.10566559735434E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.33146835171283E-15 1.10566559735435E-08 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3962,26 +3811,6 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.7163028752328E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.5778117695138E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7494533683382E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 1.0920612056233E-02 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -9.8473312456438E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 8.8159954196372E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 1.0771608039886E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 5.5002036892064E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4015,26 +3844,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 6.55031584528842E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -3.28626015289046E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 6.84253554757721E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 7.17243286106803E+00 - cg2d: Sum(rhs),rhsMax = -4.61852778244065E-14 7.77283039421180E+00 - cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 8.10136142073573E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 7.77283039421184E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 8.10136142073568E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -8.34887714518118E-14 8.18927452945247E+00 + cg2d: Sum(rhs),rhsMax = -6.21724893790088E-14 8.18927452945206E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785375D-01 -(PID.TID 0000.0001) local fc = -0.450065077785375D-01 -(PID.TID 0000.0001) global fc = -0.450065077785375D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785375E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065080299682D-01 +(PID.TID 0000.0001) local fc = -0.450065080299682D-01 +(PID.TID 0000.0001) global fc = -0.450065080299682D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065080299682E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4045,33 +3874,33 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 5.21804821573824E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 6.88673552302325E+00 - cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 6.84253554757714E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.78919330551116E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 6.88673552302334E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 6.84253554757730E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = 3.73034936274053E-14 7.77283039421188E+00 - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-14 8.10136142073571E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.77283039421194E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073567E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.01252339845814E-13 8.18927452945209E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.18927452945204E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785149D-01 -(PID.TID 0000.0001) local fc = -0.450065077785149D-01 -(PID.TID 0000.0001) global fc = -0.450065077785149D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785149E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065075271318D-01 +(PID.TID 0000.0001) local fc = -0.450065075271318D-01 +(PID.TID 0000.0001) global fc = -0.450065075271318D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065075271318E-02 grad-res ------------------------------- - grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 1 1 258 0 2 2 1 -1.10752281849E-12 -1.12618248060E-12 -1.68481062488E-02 + grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50065080300E-02 -4.50065075271E-02 + grad-res 0 1 1 258 0 2 2 1 -2.51420108180E-12 -2.51418195291E-12 7.60833768554E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.10752281848535E-12 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.12618248060414E-12 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.51420108179704E-12 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.51418195290620E-12 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 259 29309 2 @@ -4089,26 +3918,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -6.32827124036339E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = -1.44328993201270E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.50990331349021E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -1.86517468137026E-14 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 6.84253554757721E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 7.17243286106818E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073571E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = -6.75015598972095E-14 7.77283039421223E+00 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 8.10136142073602E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 8.18927452945205E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 8.18927452945229E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785419D-01 -(PID.TID 0000.0001) local fc = -0.450065077785419D-01 -(PID.TID 0000.0001) global fc = -0.450065077785419D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785419E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065076824843D-01 +(PID.TID 0000.0001) local fc = -0.450065076824843D-01 +(PID.TID 0000.0001) global fc = -0.450065076824843D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065076824843E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4119,33 +3948,33 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.15463194561016E-14 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = -1.15463194561016E-14 6.88673552302325E+00 - cg2d: Sum(rhs),rhsMax = -4.61852778244065E-14 6.84253554757714E+00 + cg2d: Sum(rhs),rhsMax = 1.28785870856518E-14 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.88673552302335E+00 + cg2d: Sum(rhs),rhsMax = -4.79616346638068E-14 6.84253554757727E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 7.17243286106821E+00 - cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 7.77283039421188E+00 - cg2d: Sum(rhs),rhsMax = 6.39488462184090E-14 8.10136142073569E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 7.17243286106816E+00 + cg2d: Sum(rhs),rhsMax = 6.92779167366098E-14 7.77283039421187E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 8.10136142073579E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.18927452945225E+00 + cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 8.18927452945218E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785119D-01 -(PID.TID 0000.0001) local fc = -0.450065077785119D-01 -(PID.TID 0000.0001) global fc = -0.450065077785119D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785119E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065078748460D-01 +(PID.TID 0000.0001) local fc = -0.450065078748460D-01 +(PID.TID 0000.0001) global fc = -0.450065078748460D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065078748460E-02 grad-res ------------------------------- - grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 2 2 259 0 2 2 1 -1.52577953463E-12 -1.49914802794E-12 1.74543609233E-02 + grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50065076825E-02 -4.50065078748E-02 + grad-res 0 2 2 259 0 2 2 1 9.61812786135E-13 9.61808445388E-13 4.51308942673E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.52577953462585E-12 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.49914802793916E-12 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.61812786134851E-13 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.61808445387735E-13 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 260 29309 3 @@ -4162,27 +3991,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -4.10782519111308E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 5.88418203051333E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 6.88673552302339E+00 - cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 6.84253554757738E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-14 6.88673552302335E+00 + cg2d: Sum(rhs),rhsMax = 3.81916720471054E-14 6.84253554757722E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.11910480882216E-13 7.17243286106822E+00 - cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 7.77283039421191E+00 - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.10136142073577E+00 + cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 7.77283039421188E+00 + cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 8.10136142073576E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.81597009336110E-14 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.18927452945213E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785444D-01 -(PID.TID 0000.0001) local fc = -0.450065077785444D-01 -(PID.TID 0000.0001) global fc = -0.450065077785444D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785444E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065075271493D-01 +(PID.TID 0000.0001) local fc = -0.450065075271493D-01 +(PID.TID 0000.0001) global fc = -0.450065075271493D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065075271493E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4194,32 +4023,32 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.23234755733392E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 3.33066907387547E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.04360964314765E-14 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 6.88673552302313E+00 - cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.84253554757718E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.88673552302336E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 6.84253554757727E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.73034936274053E-14 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 8.10136142073580E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-13 7.17243286106817E+00 + cg2d: Sum(rhs),rhsMax = 6.75015598972095E-14 7.77283039421190E+00 + cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 8.10136142073574E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.22568621918617E-13 8.18927452945224E+00 + cg2d: Sum(rhs),rhsMax = 5.86197757002083E-14 8.18927452945198E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785085D-01 -(PID.TID 0000.0001) local fc = -0.450065077785085D-01 -(PID.TID 0000.0001) global fc = -0.450065077785085D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785085E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065080333556D-01 +(PID.TID 0000.0001) local fc = -0.450065080333556D-01 +(PID.TID 0000.0001) global fc = -0.450065080333556D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065080333556E-02 grad-res ------------------------------- - grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 3 3 260 0 2 2 1 -1.81944733655E-12 -1.79370407416E-12 1.41489461522E-02 + grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50065075271E-02 -4.50065080334E-02 + grad-res 0 3 3 260 0 2 2 1 2.53101439734E-12 2.53103139142E-12 -6.71433310306E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.81944733655171E-12 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.79370407416002E-12 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.53101439734355E-12 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.53103139141730E-12 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 261 29309 4 @@ -4237,26 +4066,26 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -6.43929354282591E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 4.77395900588817E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 6.78919330551116E+00 - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 6.84253554757735E+00 + cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.78919330551116E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 6.88673552302335E+00 + cg2d: Sum(rhs),rhsMax = 9.94759830064140E-14 6.84253554757736E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 7.77283039421191E+00 - cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 8.10136142073578E+00 + cg2d: Sum(rhs),rhsMax = -6.75015598972095E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 7.77283039421193E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 8.10136142073579E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.15463194561016E-13 8.18927452945221E+00 + cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 8.18927452945220E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785098D-01 -(PID.TID 0000.0001) local fc = -0.450065077785098D-01 -(PID.TID 0000.0001) global fc = -0.450065077785098D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065077785098E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065083381138D-01 +(PID.TID 0000.0001) local fc = -0.450065083381138D-01 +(PID.TID 0000.0001) global fc = -0.450065083381138D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065083381138E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4268,244 +4097,244 @@ grad-res ------------------------------- (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -1.11022302462516E-16 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = -9.10382880192628E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.84253554757722E+00 + cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 6.88673552302314E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 6.84253554757713E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.31450406115619E-13 7.17243286106817E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = 9.05941988094128E-14 8.10136142073579E+00 + cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-13 7.77283039421186E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-14 8.10136142073572E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 8.18927452945224E+00 + cg2d: Sum(rhs),rhsMax = -1.42108547152020E-13 8.18927452945209E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785419D-01 -(PID.TID 0000.0001) local fc = -0.450065077785419D-01 -(PID.TID 0000.0001) global fc = -0.450065077785419D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065077785419E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065072140348D-01 +(PID.TID 0000.0001) local fc = -0.450065072140348D-01 +(PID.TID 0000.0001) global fc = -0.450065072140348D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065072140348E-02 grad-res ------------------------------- - grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50065077785E-02 -4.50065077785E-02 - grad-res 0 4 4 261 0 2 2 1 1.70287272444E-12 1.60704782814E-12 5.62724946606E-02 + grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50065083381E-02 -4.50065072140E-02 + grad-res 0 4 4 261 0 2 2 1 -5.62026981241E-12 -5.62039512153E-12 -2.22959256020E-05 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.70287272443865E-12 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.60704782814491E-12 +(PID.TID 0000.0001) ADM adjoint_gradient = -5.62026981241296E-12 +(PID.TID 0000.0001) ADM finite-diff_grad = -5.62039512153056E-12 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) EPS = 1.000000E+02 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006507778537E-02 -4.5006507778515E-02 -(PID.TID 0000.0001) grdchk output (g): 1 -1.1261824806041E-12 -1.1075228184853E-12 -1.6848106248785E-02 +(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006508029968E-02 -4.5006507527132E-02 +(PID.TID 0000.0001) grdchk output (g): 1 -2.5141819529062E-12 -2.5142010817970E-12 7.6083376855385E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006507778542E-02 -4.5006507778512E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -1.4991480279392E-12 -1.5257795346258E-12 1.7454360923264E-02 +(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006507682484E-02 -4.5006507874846E-02 +(PID.TID 0000.0001) grdchk output (g): 2 9.6180844538774E-13 9.6181278613485E-13 4.5130894267276E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006507778544E-02 -4.5006507778509E-02 -(PID.TID 0000.0001) grdchk output (g): 3 -1.7937040741600E-12 -1.8194473365517E-12 1.4148946152230E-02 +(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006507527149E-02 -4.5006508033356E-02 +(PID.TID 0000.0001) grdchk output (g): 3 2.5310313914173E-12 2.5310143973436E-12 -6.7143331030639E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006507778510E-02 -4.5006507778542E-02 -(PID.TID 0000.0001) grdchk output (g): 4 1.6070478281449E-12 1.7028727244386E-12 5.6272494660645E-02 +(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E+02 +(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006508338114E-02 -4.5006507214035E-02 +(PID.TID 0000.0001) grdchk output (g): 4 -5.6203951215306E-12 -5.6202698124130E-12 -2.2295925601989E-05 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.1445586860325E-02 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 1.2454370176560E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 184.59393190825358 -(PID.TID 0000.0001) System time: 0.39194100163877010 -(PID.TID 0000.0001) Wall clock time: 185.40581083297729 +(PID.TID 0000.0001) User time: 101.81181800551713 +(PID.TID 0000.0001) System time: 0.84792200941592455 +(PID.TID 0000.0001) Wall clock time: 102.67165184020996 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.18097200477495790 -(PID.TID 0000.0001) System time: 1.59980002790689468E-002 -(PID.TID 0000.0001) Wall clock time: 0.20728302001953125 +(PID.TID 0000.0001) User time: 0.14527899771928787 +(PID.TID 0000.0001) System time: 1.6143000684678555E-002 +(PID.TID 0000.0001) Wall clock time: 0.16188693046569824 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 91.874034732580185 -(PID.TID 0000.0001) System time: 0.35094600543379784 -(PID.TID 0000.0001) Wall clock time: 92.432300806045532 +(PID.TID 0000.0001) User time: 49.251236140727997 +(PID.TID 0000.0001) System time: 0.79574999585747719 +(PID.TID 0000.0001) Wall clock time: 50.056842088699341 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 113.11079376935959 -(PID.TID 0000.0001) System time: 2.79950797557830811E-002 -(PID.TID 0000.0001) Wall clock time: 113.38275814056396 +(PID.TID 0000.0001) User time: 65.338726937770844 +(PID.TID 0000.0001) System time: 7.5962014496326447E-002 +(PID.TID 0000.0001) Wall clock time: 65.424215078353882 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12491786479949951 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11507558822631836 +(PID.TID 0000.0001) User time: 6.4040333032608032E-002 +(PID.TID 0000.0001) System time: 2.2605806589126587E-004 +(PID.TID 0000.0001) Wall clock time: 6.4379215240478516E-002 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.24699103832244873 -(PID.TID 0000.0001) System time: 9.00004059076309204E-003 -(PID.TID 0000.0001) Wall clock time: 0.26007771492004395 +(PID.TID 0000.0001) User time: 0.12659674882888794 +(PID.TID 0000.0001) System time: 1.4630787074565887E-002 +(PID.TID 0000.0001) Wall clock time: 0.14121675491333008 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.27999246120452881 -(PID.TID 0000.0001) System time: 1.09990611672401428E-002 -(PID.TID 0000.0001) Wall clock time: 0.29207324981689453 -(PID.TID 0000.0001) No. starts: 120 -(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) User time: 0.13970613479614258 +(PID.TID 0000.0001) System time: 1.4617785811424255E-002 +(PID.TID 0000.0001) Wall clock time: 0.15438342094421387 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.32793152332305908 -(PID.TID 0000.0001) System time: 9.99003648757934570E-004 -(PID.TID 0000.0001) Wall clock time: 0.33768033981323242 +(PID.TID 0000.0001) User time: 0.15524792671203613 +(PID.TID 0000.0001) System time: 4.8270002007484436E-003 +(PID.TID 0000.0001) Wall clock time: 0.16018819808959961 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10201591253280640 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10120153427124023 +(PID.TID 0000.0001) User time: 5.8084428310394287E-002 +(PID.TID 0000.0001) System time: 2.2789835929870605E-004 +(PID.TID 0000.0001) Wall clock time: 5.8389902114868164E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 17.758288443088531 -(PID.TID 0000.0001) System time: 1.99899822473526001E-003 -(PID.TID 0000.0001) Wall clock time: 17.791290521621704 +(PID.TID 0000.0001) User time: 10.747835129499435 +(PID.TID 0000.0001) System time: 7.7539831399917603E-003 +(PID.TID 0000.0001) Wall clock time: 10.756191968917847 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 43.508399903774261 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 43.612980365753174 +(PID.TID 0000.0001) User time: 25.048361837863922 +(PID.TID 0000.0001) System time: 1.9542939960956573E-002 +(PID.TID 0000.0001) Wall clock time: 25.074275493621826 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9032442569732666 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.9070172309875488 +(PID.TID 0000.0001) User time: 2.8181422352790833 +(PID.TID 0000.0001) System time: 4.3730512261390686E-003 +(PID.TID 0000.0001) Wall clock time: 2.8227944374084473 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0089417695999146 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0173163414001465 +(PID.TID 0000.0001) User time: 0.53032916784286499 +(PID.TID 0000.0001) System time: 2.0101666450500488E-004 +(PID.TID 0000.0001) Wall clock time: 0.53061795234680176 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.8946636915206909 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.8980927467346191 +(PID.TID 0000.0001) User time: 1.0051023364067078 +(PID.TID 0000.0001) System time: 1.9073486328125000E-005 +(PID.TID 0000.0001) Wall clock time: 1.0052480697631836 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.13400757312774658 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12934756278991699 +(PID.TID 0000.0001) User time: 7.0862889289855957E-002 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 7.0939779281616211E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.81489658355712891 -(PID.TID 0000.0001) System time: 1.00001692771911621E-003 -(PID.TID 0000.0001) Wall clock time: 0.81336975097656250 +(PID.TID 0000.0001) User time: 0.44386035203933716 +(PID.TID 0000.0001) System time: 3.6601722240447998E-004 +(PID.TID 0000.0001) Wall clock time: 0.44444966316223145 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 39.715921998023987 -(PID.TID 0000.0001) System time: 3.00000607967376709E-003 -(PID.TID 0000.0001) Wall clock time: 39.802563667297363 +(PID.TID 0000.0001) User time: 22.532202959060669 +(PID.TID 0000.0001) System time: 1.1761985719203949E-002 +(PID.TID 0000.0001) Wall clock time: 22.547104835510254 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.04546546936035156E-003 +(PID.TID 0000.0001) User time: 8.9073181152343750E-004 +(PID.TID 0000.0001) System time: 3.0100345611572266E-006 +(PID.TID 0000.0001) Wall clock time: 8.5520744323730469E-004 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.87285661697387695 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.87259626388549805 +(PID.TID 0000.0001) User time: 0.54701447486877441 +(PID.TID 0000.0001) System time: 7.7340006828308105E-003 +(PID.TID 0000.0001) Wall clock time: 0.55480933189392090 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6117504835128784 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6255095005035400 +(PID.TID 0000.0001) User time: 1.1222375631332397 +(PID.TID 0000.0001) System time: 2.5501102209091187E-004 +(PID.TID 0000.0001) Wall clock time: 1.1226389408111572 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.39963531494140625E-002 -(PID.TID 0000.0001) System time: 2.99900025129318237E-003 -(PID.TID 0000.0001) Wall clock time: 2.83825397491455078E-002 +(PID.TID 0000.0001) User time: 1.9798159599304199E-002 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 1.9836187362670898E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.69770431518554688E-002 -(PID.TID 0000.0001) System time: 5.99899888038635254E-003 -(PID.TID 0000.0001) Wall clock time: 5.03523349761962891E-002 +(PID.TID 0000.0001) User time: 3.0401110649108887E-002 +(PID.TID 0000.0001) System time: 3.9459913969039917E-003 +(PID.TID 0000.0001) Wall clock time: 3.4314870834350586E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 6.49871826171875000E-002 -(PID.TID 0000.0001) System time: 4.99999523162841797E-003 -(PID.TID 0000.0001) Wall clock time: 6.85908794403076172E-002 -(PID.TID 0000.0001) No. starts: 3 -(PID.TID 0000.0001) No. stops: 3 +(PID.TID 0000.0001) User time: 4.5251846313476562E-002 +(PID.TID 0000.0001) System time: 8.0350041389465332E-003 +(PID.TID 0000.0001) Wall clock time: 5.3286075592041016E-002 +(PID.TID 0000.0001) No. starts: 4 +(PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.39999389648437500E-002 -(PID.TID 0000.0001) System time: 2.00000405311584473E-003 -(PID.TID 0000.0001) Wall clock time: 1.53110027313232422E-002 +(PID.TID 0000.0001) User time: 8.9836120605468750E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.9991092681884766E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.29928588867187500E-002 +(PID.TID 0000.0001) User time: 6.6871643066406250E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.33559703826904297E-002 +(PID.TID 0000.0001) Wall clock time: 6.6878795623779297E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 92.511932373046875 -(PID.TID 0000.0001) System time: 2.29969918727874756E-002 -(PID.TID 0000.0001) Wall clock time: 92.737482070922852 +(PID.TID 0000.0001) User time: 52.399517059326172 +(PID.TID 0000.0001) System time: 3.6018013954162598E-002 +(PID.TID 0000.0001) Wall clock time: 52.437144994735718 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.99185943603515625 -(PID.TID 0000.0001) System time: 6.99892640113830566E-003 -(PID.TID 0000.0001) Wall clock time: 1.0020511150360107 +(PID.TID 0000.0001) User time: 0.55922317504882812 +(PID.TID 0000.0001) System time: 1.8954277038574219E-005 +(PID.TID 0000.0001) Wall clock time: 0.55925273895263672 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.362091064453125 -(PID.TID 0000.0001) System time: 8.99907946586608887E-003 -(PID.TID 0000.0001) Wall clock time: 91.568994998931885 +(PID.TID 0000.0001) User time: 51.760837554931641 +(PID.TID 0000.0001) System time: 1.2062966823577881E-002 +(PID.TID 0000.0001) Wall clock time: 51.774507045745850 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 89.569366455078125 -(PID.TID 0000.0001) System time: 8.99907946586608887E-003 -(PID.TID 0000.0001) Wall clock time: 89.772141218185425 +(PID.TID 0000.0001) User time: 51.758453369140625 +(PID.TID 0000.0001) System time: 1.2062013149261475E-002 +(PID.TID 0000.0001) Wall clock time: 51.772079706192017 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 2.99835205078125000E-003 +(PID.TID 0000.0001) User time: 6.4086914062500000E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.40799713134765625E-004 +(PID.TID 0000.0001) Wall clock time: 6.4206123352050781E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4556,9 +4385,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 30596 +(PID.TID 0000.0001) // No. barriers = 27678 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 30596 +(PID.TID 0000.0001) // Total barrier spins = 27678 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output_adm.txt b/verification/global_ocean.90x40x15/results/output_adm.txt index dde5239cf8..881f2cab1f 100644 --- a/verification/global_ocean.90x40x15/results/output_adm.txt +++ b/verification/global_ocean.90x40x15/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67b -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed May 23 00:23:33 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jul 25 15:24:21 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -216,7 +218,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -335,6 +337,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -356,9 +364,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -403,6 +420,7 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -431,7 +449,7 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, (PID.TID 0000.0001) >### iGloPos = 76, (PID.TID 0000.0001) >### jGloPos = 27, (PID.TID 0000.0001) > iGloPos = 31, @@ -452,7 +470,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) grdchkvarindex : 201 -(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) eps: 0.100E-03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 3 (PID.TID 0000.0001) Increment: 1 @@ -1008,8 +1026,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 29309 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 29309 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1029,10 +1047,11 @@ (PID.TID 0000.0001) Settings of generic controls: (PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ (PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use (PID.TID 0000.0001) file = xx_theta (PID.TID 0000.0001) weight = wunit.data +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1076,9 +1095,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1115,6 +1154,9 @@ (PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscC2LeithQG = /* QG Leith harmonic viscosity factor (non-dim.)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1205,10 +1247,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1263,28 +1311,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1306,7 +1357,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1315,7 +1366,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1380,14 +1431,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1400,6 +1449,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1515,8 +1567,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1533,6 +1585,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1879,15 +1934,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2317,7 +2363,12 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2411,6 +2462,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 @@ -2588,7 +2640,7 @@ cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 (PID.TID 0000.0001) cg2d_init_res = 2.19896331669462E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.87187311244442E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.87187311244446E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2675,7 +2727,7 @@ cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 (PID.TID 0000.0001) cg2d_init_res = 1.84366655286261E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.63727653106043E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.63727653106029E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2683,7 +2735,7 @@ (PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 5.8987798415529E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -4.9280007879149E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4037356233246E-17 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5169401090766E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2219841074700E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9835909481408E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3251211891931E-02 @@ -2698,7 +2750,7 @@ (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1107192557043E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0591319882304E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0390059420810E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.6910934503379E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2213452696885E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8591305191854E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6277433035880E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9662726903568E+01 @@ -2758,10 +2810,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.76470669543199E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.76470669543202E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.60901777019442E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.60901777019470E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2769,7 +2821,7 @@ (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 6.3215588656949E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -5.7006055641637E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3584538290238E-18 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2640897150396E-18 (PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5030943104696E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9078830732808E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5439719615995E-02 @@ -2784,7 +2836,7 @@ (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5862077561830E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3557089684795E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -2.3739021059528E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.1672299871436E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3487409032471E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0276551832422E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9052116821261E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9682654804807E+01 @@ -2844,10 +2896,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 (PID.TID 0000.0001) cg2d_init_res = 1.72335408146517E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.80175253937542E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.80175253937548E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2855,7 +2907,7 @@ (PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 7.2232452764580E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -6.2625843315634E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.5281794300793E-19 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8980348352508E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7719140685618E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7605923221408E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7145334106477E-02 @@ -2867,12 +2919,12 @@ (PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7459964757493E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.2587013700796E-03 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3148802298066E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8079045684874E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8079045684873E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5995401332779E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6563050049149E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.3949636129883E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0668919948574E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2015733743709E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2748144296706E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2748144296705E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9698773301097E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9776274620365E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6123730413398E+00 @@ -2913,13 +2965,13 @@ (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0536209655815E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4607263405939E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6240048589975E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1300587725034E-01 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1300587725035E-01 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0980502441206E-01 (PID.TID 0000.0001) %MON pe_b_mean = 4.0175983116713E-05 (PID.TID 0000.0001) %MON ke_max = 2.3571161585590E-03 (PID.TID 0000.0001) %MON ke_mean = 1.1259993133806E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9037276359710E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.9037276359711E-07 (PID.TID 0000.0001) %MON vort_r_max = 3.2480772667437E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274806926303E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3603537050597E-05 @@ -2931,10 +2983,10 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.57922304191377E+00 + cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.57922304191376E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.64058706766866E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.64058706766864E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2942,14 +2994,14 @@ (PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 8.2371772990089E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -6.7855233277064E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6301445948285E-17 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.3394512021110E-18 (PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0303642156891E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6229763886308E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6229763886309E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 7.8197473070931E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -7.6484248734197E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.0877494926113E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7424018168162E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8224096948451E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8224096948450E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7544190418148E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -6.7653951312624E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.5977951463938E-03 @@ -2957,9 +3009,9 @@ (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.7908643501575E-05 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7874289805768E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8782136498546E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.3949636129883E-23 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3683776535184E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6256058336655E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6256058336654E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9700392392918E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0063682677776E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6106100644417E+00 @@ -2995,18 +3047,18 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1440480618347E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5513649503191E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4740184358134E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2999543248501E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2999543248498E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2484231751826E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.3785830267373E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6827845901276E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6827845901277E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5327962694759E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7690639511644E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9368590301545E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7690639511645E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9368590301546E-02 (PID.TID 0000.0001) %MON pe_b_mean = 5.2750806184577E-05 (PID.TID 0000.0001) %MON ke_max = 3.0505571346650E-03 (PID.TID 0000.0001) %MON ke_mean = 1.3698152874914E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.1839722402425E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.1839722402426E-07 (PID.TID 0000.0001) %MON vort_r_max = 3.5558767160364E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274806981640E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3603359004615E-05 @@ -3017,37 +3069,37 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.39674827185233E+00 + cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.39674827185232E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.35515348298401E-14 +(PID.TID 0000.0001) cg2d_last_res = 2.35515348298411E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 8.9578465689907E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.0695591604126E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.6225435440634E-18 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.0695591604122E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4490174176254E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2772276782609E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5175970206004E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8541343482376E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -9.6188435641940E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.0190781386486E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.0194963562620E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5651905026944E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5651905026943E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3702433586111E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6772886442843E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8116054890265E-03 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4641357044157E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0577885080816E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9122334930010E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9122334930008E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0367540000168E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4426905393770E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8789927225977E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.5095512911273E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9015912077916E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.9015912077915E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9683744646057E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0351970832113E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0351970832112E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6088409790432E+00 (PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3937306966439E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2532053495039E-03 @@ -3081,57 +3133,57 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1071667984043E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5586260559939E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4812214832125E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2622194156612E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2622194156640E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3652885108929E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0771530041767E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7789410379680E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1310202100704E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8967729923152E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7406112614453E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0771530041768E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7789410379681E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1310202100705E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8967729923140E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7406112614458E-02 (PID.TID 0000.0001) %MON pe_b_mean = 6.6358125223506E-05 (PID.TID 0000.0001) %MON ke_max = 4.0252502683768E-03 (PID.TID 0000.0001) %MON ke_mean = 1.6005069794933E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.3809604186860E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.3809604186861E-07 (PID.TID 0000.0001) %MON vort_r_max = 4.2643660759174E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807072162E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3603182520587E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845919280226E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162432897330E-04 (PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6391948494675E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3168768390133E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3168768390132E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 (PID.TID 0000.0001) cg2d_init_res = 1.28712325624246E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 9.49714931868596E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.49714931868675E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 3.8880000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 9.3723035257816E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8751991687809E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.0601593855412E-17 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8751991687810E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0867630632190E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5099981100505E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4370690696390E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8190396905355E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8190396905356E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1337591160966E-01 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.9100070861467E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0273674180043E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.2257801268485E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.2257801268484E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8529890412250E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.4717028341345E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.4717028341346E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.9029872175655E-03 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4984698007612E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1204786704881E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9647047924297E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1361277054770E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.3949636129883E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9647047924294E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1361277054771E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2213452696885E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6109057404332E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0842911175645E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0842911175644E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9651663162007E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0620633545165E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6071069215481E+00 @@ -3167,18 +3219,18 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0702855349739E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5662631572644E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4897783530480E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2692021951553E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2692021951656E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4373428641672E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1303801148572E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1303801148574E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7368998305023E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5999689291803E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9474520403773E-01 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9474520403772E-01 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0261807958837E-01 (PID.TID 0000.0001) %MON pe_b_mean = 8.0617251784333E-05 -(PID.TID 0000.0001) %MON ke_max = 5.0284930514860E-03 +(PID.TID 0000.0001) %MON ke_max = 5.0284930514861E-03 (PID.TID 0000.0001) %MON ke_mean = 1.8124198430550E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.7038626274430E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.7038626274432E-07 (PID.TID 0000.0001) %MON vort_r_max = 5.0713828753427E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807183718E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3603012677892E-05 @@ -3190,10 +3242,10 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) cg2d_init_res = 1.22562030255833E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 8.71382003063848E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.71382003064096E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3201,24 +3253,24 @@ (PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 9.5203044650795E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -8.3902716668555E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.6979050311348E-17 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.0753614870714E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7259153280275E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3676754768980E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0717060757154E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0717060757153E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2678782856154E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7331867450661E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7331867450662E-03 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1477585764723E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8103759038542E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8650676496483E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1328858059896E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8103759038541E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8650676496482E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1328858059897E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8796201546416E-03 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5108812138067E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1692501661667E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9390752424446E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1967900076780E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6974818064941E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9390752424444E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1967900076782E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2213452696885E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6662685072405E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1781690676907E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1781690676906E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9610692908445E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0852194772301E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6054423694867E+00 @@ -3256,16 +3308,16 @@ (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4996813217914E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3942025976657E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4608174194448E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0899327687426E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0899327687421E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6001243190992E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5831221383165E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9284289714107E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.8440849695955E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5831221383164E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9284289714110E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.8440849695949E-02 (PID.TID 0000.0001) %MON pe_b_mean = 9.5083667265346E-05 (PID.TID 0000.0001) %MON ke_max = 5.7973123352723E-03 (PID.TID 0000.0001) %MON ke_mean = 2.0018934887382E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.9678411686341E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.9678411686343E-07 (PID.TID 0000.0001) %MON vort_r_max = 5.7853618549739E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807299626E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3602854279644E-05 @@ -3278,33 +3330,35 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785264D-01 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065077785264D-01 (PID.TID 0000.0001) local fc = -0.450065077785264D-01 (PID.TID 0000.0001) global fc = -0.450065077785264D-01 +(PID.TID 0000.0001) whio : write lev 2 rec 1 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 + cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 + cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 4 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945217E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 8.18927452945214E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3331,45 +3385,25 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0234262370675E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8827045212953E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0234262370677E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8827045212951E-06 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.9715530700291E-08 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3610216154279E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.9434117006853E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.9434117006852E-09 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.48288806822093E-15 8.04945967787814E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.43291662919200E-16 8.04945967787814E-09 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 8.10136142073575E+00 + cg2d: Sum(rhs),rhsMax = 8.17124146124115E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421190E+00 + cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 8.10136142073573E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3377,14 +3411,14 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 3.8880000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.9059356809523E-05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7282228468391E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 5.4072162632031E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 5.4072162632028E-10 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.7434218851823E-06 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.0318767745963E-08 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.5737500371531E-04 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3524037659153E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3830959749522E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3830959749521E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1951850796472E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0943322614423E-08 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0943322614422E-08 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0028813132414E-02 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.1778674388876E-03 (PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.8218263052012E-05 @@ -3393,8 +3427,8 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.6646521622759E-04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.1975679422438E-04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.0894129838102E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.8019851088647E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.9749819966927E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.8019851088646E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.9749819966926E-08 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.4101292395176E-05 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0583426444498E-05 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.3367873883273E-08 @@ -3405,31 +3439,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2325762260956E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.2217301926629E-06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0842853958766E-08 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.1369794371672E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.9229376720338E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -3.8140415968654E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 9.2023209933154E-05 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.8980086722132E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.38360524494707E-15 9.21369200784080E-09 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421190E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -5.97381844512357E-15 9.21369200784080E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3437,11 +3451,11 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 3.4560000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.6545749487455E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.3351077240723E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.4486768235853E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.4486768235854E-09 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.6204642717794E-06 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.0360658237115E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.7554430349335E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0682845192269E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0682845192268E-04 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.2110012092394E-06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.6680872242027E-05 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6343632651519E-07 @@ -3456,7 +3470,7 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.6696686940909E-06 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 9.3779814149974E-08 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.6788186408859E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.1018875629562E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.1018875629563E-05 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.0133170482932E-08 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.8590464304330E-06 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.5280775038644E-08 @@ -3465,32 +3479,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.0360323164530E-08 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7002978894619E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.4269943042440E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 2.0196882379042E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -1.8185226902461E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -8.3765107545037E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.0113603295569E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 9.7821467813705E-06 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.03562991515815E-15 8.74327613604373E-09 - EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 7.17243286106816E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.12475133373646E-15 8.74327613604373E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3498,12 +3491,12 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 3.0240000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.7864020732376E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.1966299764754E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.7169178382423E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 6.7169178382424E-09 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.1432247978619E-05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.7546573432737E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.7818312970279E-03 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0354685287121E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7212840341073E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7212840341074E-06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.2883476521750E-05 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.6126160607424E-07 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.7329905013746E-02 @@ -3526,35 +3519,15 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.0673259950301E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.5374236161301E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6030397490280E-07 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 3.2058448280037E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -2.7414781387377E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.2179793652161E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 2.9356355635084E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.2810431461614E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.53523027623947E-15 5.49414350830239E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.16000306319364E-15 5.49414350830240E-09 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757727E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302325E+00 + cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757727E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3562,7 +3535,7 @@ (PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.0060424524922E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.1135897576180E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842106E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.4396793842105E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.7107690093710E-05 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.9846447418636E-07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.1501933179738E-03 @@ -3590,37 +3563,17 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.5408511006008E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.9182463518997E-05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2985063857012E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.1192327764588E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.3315403332602E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.4985645800148E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 3.6790391905695E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.4531705248450E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.02750096898330E-15 3.68281353912161E-09 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302336E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.14172038279526E-15 3.68281353912161E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 5 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758776E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.2624574758777E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0825958273422E-04 (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.6488152453012E-08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.3631602990555E-05 @@ -3638,7 +3591,7 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.6874337917810E-04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.0200052932957E-04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.7745369807754E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.2929700633083E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.2929700633082E-06 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.2026366393934E-07 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.4749824983369E-04 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.5977322629034E-04 @@ -3650,32 +3603,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.9569247218618E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4584049628928E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1075904169476E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 4.7193421210486E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.6085395737164E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.6782519187079E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 4.3510183140662E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.6325090672042E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.99600361081320E-16 5.90272604043301E-09 - EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551119E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 5.90272604043302E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3711,36 +3643,16 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.2590632002315E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1286222924402E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0460676018882E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.1293680025184E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -3.9049282529656E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9285595109824E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 5.0975922912543E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 1.9626790301791E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.68829444552921E-15 7.26634540912284E-09 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 7.26634540912284E-09 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 6.28229902439775E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3776,31 +3688,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.4095867494327E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.8858140787003E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.0906081354048E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 5.5397472193208E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -4.8127091163634E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.9484275219348E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 6.0438695284391E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 2.5187052250515E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 8.24007965726773E-09 - cg2d: Sum(rhs),rhsMax = 1.32116539930394E-14 4.93238674419719E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 6.05071548420710E-15 8.24007965726773E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3836,33 +3728,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.3864084090940E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.7192545654468E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.2295148560419E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 6.8211547564485E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -6.0964048363165E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -1.5336055052098E-06 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 7.2839908450318E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 3.3116364208898E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 9.24289205824489E-09 - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 9.99200722162641E-16 9.24289205824490E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3895,33 +3765,14 @@ (PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.3919507357064E-06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.3423845872336E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.4121882349267E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1688611094336E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1688611094337E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.6198588360648E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.4532755935465E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 8.6233582389250E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -7.7775969553130E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = -5.9774739065649E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 8.8503632112322E-04 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 4.3091929490957E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.10942374678780E-15 1.10566559735434E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.33146835171283E-15 1.10566559735435E-08 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3960,26 +3811,6 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.7163028752328E-07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.5778117695138E-04 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7494533683382E-06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 1.0920612056232E-02 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = -9.8473312456439E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 8.8159954197529E-07 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 1.0771608039885E-03 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 5.5002036892057E-05 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4011,28 +3842,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 9.99200722162641E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -1.53210777398272E-14 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + cg2d: Sum(rhs),rhsMax = 6.60582699651968E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 6.88673552302334E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.84253554757732E+00 + cg2d: Sum(rhs),rhsMax = 9.32587340685131E-15 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 6.88673552302314E+00 + cg2d: Sum(rhs),rhsMax = -1.68753899743024E-14 6.84253554757717E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 7.17243286106819E+00 - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 7.77283039421219E+00 - cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.10136142073597E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 7.77283039421219E+00 + cg2d: Sum(rhs),rhsMax = -6.39488462184090E-14 8.10136142073602E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.28306304154103E-14 8.18927452945230E+00 + cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 8.18927452945236E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066523719737D-01 -(PID.TID 0000.0001) local fc = -0.450066523719737D-01 -(PID.TID 0000.0001) global fc = -0.450066523719737D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066523719737E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065092245267D-01 +(PID.TID 0000.0001) local fc = -0.450065092245267D-01 +(PID.TID 0000.0001) global fc = -0.450065092245267D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065092245267E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4043,33 +3874,33 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 7.60502771868232E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -8.21565038222616E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 4.66293670342566E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = -1.11022302462516E-14 6.28229902439774E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 6.88673552302302E+00 - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 6.84253554757704E+00 + cg2d: Sum(rhs),rhsMax = 1.19904086659517E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -5.77315972805081E-14 6.84253554757718E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.95399252334028E-14 7.17243286106814E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 8.10136142073579E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 7.17243286106819E+00 + cg2d: Sum(rhs),rhsMax = -3.01980662698043E-14 7.77283039421190E+00 + cg2d: Sum(rhs),rhsMax = -1.59872115546023E-14 8.10136142073578E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 8.18927452945221E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.18927452945214E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063631388656D-01 -(PID.TID 0000.0001) local fc = -0.450063631388656D-01 -(PID.TID 0000.0001) global fc = -0.450063631388656D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063631388656E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065063325177D-01 +(PID.TID 0000.0001) local fc = -0.450065063325177D-01 +(PID.TID 0000.0001) global fc = -0.450065063325177D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065063325177E-02 grad-res ------------------------------- - grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50066523720E-02 -4.50063631389E-02 - grad-res 0 1 1 258 0 2 2 1 -1.44600218759E-05 -1.44616554051E-05 -1.12968657364E-04 + grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50065092245E-02 -4.50065063325E-02 + grad-res 0 1 1 258 0 2 2 1 -1.44600218759E-05 -1.44600447241E-05 -1.58009607043E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.44600218758834E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.44616554051402E-05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.44600218758835E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.44600447241072E-05 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 259 29309 2 @@ -4086,27 +3917,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 6.99440505513849E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -5.99520433297585E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 8.27116153345742E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = -5.50670620214078E-14 6.88673552302315E+00 - cg2d: Sum(rhs),rhsMax = -1.95399252334028E-14 6.84253554757717E+00 + cg2d: Sum(rhs),rhsMax = 1.11022302462516E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-15 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 6.84253554757726E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 7.17243286106818E+00 - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 7.77283039421189E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 8.10136142073573E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 7.77283039421181E+00 + cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 8.10136142073569E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.38555833473220E-13 8.18927452945218E+00 + cg2d: Sum(rhs),rhsMax = 9.59232693276135E-14 8.18927452945249E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066425813341D-01 -(PID.TID 0000.0001) local fc = -0.450066425813341D-01 -(PID.TID 0000.0001) global fc = -0.450066425813341D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066425813341E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065091268030D-01 +(PID.TID 0000.0001) local fc = -0.450065091268030D-01 +(PID.TID 0000.0001) global fc = -0.450065091268030D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065091268030E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4116,34 +3947,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 3.44169137633799E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 5.55111512312578E-16 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 + cg2d: Sum(rhs),rhsMax = 5.82867087928207E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 8.32667268468867E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 6.88673552302335E+00 - cg2d: Sum(rhs),rhsMax = -2.30926389122033E-14 6.84253554757731E+00 + cg2d: Sum(rhs),rhsMax = -1.55431223447522E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -3.64153152077051E-14 6.88673552302313E+00 + cg2d: Sum(rhs),rhsMax = -4.52970994047064E-14 6.84253554757725E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 7.17243286106819E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.77283039421190E+00 - cg2d: Sum(rhs),rhsMax = -7.46069872548105E-14 8.10136142073574E+00 + cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 7.17243286106815E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 7.77283039421191E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 8.10136142073570E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 6.03961325396085E-14 8.18927452945210E+00 + cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 8.18927452945216E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063729255713D-01 -(PID.TID 0000.0001) local fc = -0.450063729255713D-01 -(PID.TID 0000.0001) global fc = -0.450063729255713D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063729255713E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065064302386D-01 +(PID.TID 0000.0001) local fc = -0.450065064302386D-01 +(PID.TID 0000.0001) global fc = -0.450065064302386D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065064302386E-02 grad-res ------------------------------- - grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50066425813E-02 -4.50063729256E-02 - grad-res 0 2 2 259 0 2 2 1 -1.34827845971E-05 -1.34827881425E-05 -2.62962033259E-07 + grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50065091268E-02 -4.50065064302E-02 + grad-res 0 2 2 259 0 2 2 1 -1.34827845971E-05 -1.34828217688E-05 -2.75697404750E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 (PID.TID 0000.0001) ADM adjoint_gradient = -1.34827845970860E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.34827881425464E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.34828217687732E-05 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 260 29309 3 @@ -4160,27 +3991,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 6.60582699651968E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -9.76996261670138E-15 6.28229902439774E+00 + cg2d: Sum(rhs),rhsMax = 7.60502771868232E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 1.88737914186277E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 6.78919330551118E+00 - cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 6.88673552302326E+00 - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 6.84253554757720E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 6.78919330551115E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 6.88673552302334E+00 + cg2d: Sum(rhs),rhsMax = -2.57571741713036E-14 6.84253554757736E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 7.17243286106868E+00 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-14 7.77283039421229E+00 - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.10136142073583E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-14 7.17243286106822E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 7.77283039421220E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-14 8.10136142073600E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.18927452945234E+00 + cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 8.18927452945234E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066011319017D-01 -(PID.TID 0000.0001) local fc = -0.450066011319017D-01 -(PID.TID 0000.0001) global fc = -0.450066011319017D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066011319017E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065087105430D-01 +(PID.TID 0000.0001) local fc = -0.450065087105430D-01 +(PID.TID 0000.0001) global fc = -0.450065087105430D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065087105430E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4190,34 +4021,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 3.21964677141295E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 2.53681867617526E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 2.75335310107039E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 6.88673552302313E+00 - cg2d: Sum(rhs),rhsMax = -9.32587340685131E-14 6.84253554757713E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 6.78919330551125E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 6.88673552302318E+00 + cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 6.84253554757712E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.38555833473220E-13 7.17243286106816E+00 - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 7.77283039421181E+00 - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.10136142073561E+00 + cg2d: Sum(rhs),rhsMax = 2.84217094304040E-14 7.17243286106833E+00 + cg2d: Sum(rhs),rhsMax = -2.13162820728030E-14 7.77283039421218E+00 + cg2d: Sum(rhs),rhsMax = 3.90798504668055E-14 8.10136142073592E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 8.18927452945234E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-13 8.18927452945223E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450064147383363D-01 -(PID.TID 0000.0001) local fc = -0.450064147383363D-01 -(PID.TID 0000.0001) global fc = -0.450064147383363D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50064147383363E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065068465336D-01 +(PID.TID 0000.0001) local fc = -0.450065068465336D-01 +(PID.TID 0000.0001) global fc = -0.450065068465336D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065068465336E-02 grad-res ------------------------------- - grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50066011319E-02 -4.50064147383E-02 - grad-res 0 3 3 260 0 2 2 1 -9.32005499887E-06 -9.31967827390E-06 4.04208952989E-05 + grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50065087105E-02 -4.50065068465E-02 + grad-res 0 3 3 260 0 2 2 1 -9.32005499887E-06 -9.32004667886E-06 8.92699465904E-07 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -9.32005499887030E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -9.31967827390301E-06 +(PID.TID 0000.0001) ADM adjoint_gradient = -9.32005499887045E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = -9.32004667886233E-06 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 261 29309 4 @@ -4234,27 +4065,27 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.11577413974828E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -6.77236045021345E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = -1.94289029309402E-14 6.28229902439774E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -2.93098878501041E-14 6.88673552302323E+00 - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 6.84253554757714E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 6.78919330551129E+00 + cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 6.88673552302309E+00 + cg2d: Sum(rhs),rhsMax = 5.77315972805081E-14 6.84253554757708E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 7.28306304154103E-14 7.17243286106818E+00 - cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 7.77283039421218E+00 - cg2d: Sum(rhs),rhsMax = -8.34887714518118E-14 8.10136142073596E+00 + cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 7.17243286106814E+00 + cg2d: Sum(rhs),rhsMax = -6.92779167366098E-14 7.77283039421207E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-14 8.10136142073591E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 8.18927452945229E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.18927452945220E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066465031477D-01 -(PID.TID 0000.0001) local fc = -0.450066465031477D-01 -(PID.TID 0000.0001) global fc = -0.450066465031477D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066465031477E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065094471252D-01 +(PID.TID 0000.0001) local fc = -0.450065094471252D-01 +(PID.TID 0000.0001) global fc = -0.450065094471252D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065094471252E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4265,245 +4096,245 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = 1.02695629777827E-14 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = 8.21565038222616E-15 6.28229902439775E+00 + cg2d: Sum(rhs),rhsMax = 9.65894031423886E-15 4.93238674419719E+00 + cg2d: Sum(rhs),rhsMax = -7.77156117237610E-15 6.28229902439775E+00 EXTERNAL_FIELDS_LOAD, it= 3 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 6.78919330551115E+00 - cg2d: Sum(rhs),rhsMax = -2.22044604925031E-14 6.88673552302313E+00 - cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.84253554757725E+00 + cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 6.78919330551114E+00 + cg2d: Sum(rhs),rhsMax = -3.01980662698043E-14 6.88673552302323E+00 + cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 6.84253554757713E+00 EXTERNAL_FIELDS_LOAD, it= 6 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -3.01980662698043E-14 7.17243286106818E+00 - cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 7.77283039421216E+00 - cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 8.10136142073600E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 7.17243286106818E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 7.77283039421191E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 8.10136142073574E+00 EXTERNAL_FIELDS_LOAD, it= 9 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) - cg2d: Sum(rhs),rhsMax = -7.63833440942108E-14 8.18927452945228E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.18927452945224E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063523401351D-01 -(PID.TID 0000.0001) local fc = -0.450063523401351D-01 -(PID.TID 0000.0001) global fc = -0.450063523401351D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063523401351E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065061102574D-01 +(PID.TID 0000.0001) local fc = -0.450065061102574D-01 +(PID.TID 0000.0001) global fc = -0.450065061102574D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065061102574E-02 grad-res ------------------------------- - grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50066465031E-02 -4.50063523401E-02 - grad-res 0 4 4 261 0 2 2 1 -1.66843992495E-05 -1.47081506308E-05 1.18448892838E-01 + grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50065094471E-02 -4.50065061103E-02 + grad-res 0 4 4 261 0 2 2 1 -1.66843992495E-05 -1.66843386676E-05 3.63105416945E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785264E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.66843992495403E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.47081506307600E-05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.66843992495405E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.66843386675830E-05 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) EPS = 1.000000E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006652371974E-02 -4.5006363138866E-02 -(PID.TID 0000.0001) grdchk output (g): 1 -1.4461655405140E-05 -1.4460021875883E-05 -1.1296865736399E-04 +(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006509224527E-02 -4.5006506332518E-02 +(PID.TID 0000.0001) grdchk output (g): 1 -1.4460044724107E-05 -1.4460021875883E-05 -1.5800960704304E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006642581334E-02 -4.5006372925571E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -1.3482788142546E-05 -1.3482784597086E-05 -2.6296203325948E-07 +(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006509126803E-02 -4.5006506430239E-02 +(PID.TID 0000.0001) grdchk output (g): 2 -1.3482821768773E-05 -1.3482784597086E-05 -2.7569740475020E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006601131902E-02 -4.5006414738336E-02 -(PID.TID 0000.0001) grdchk output (g): 3 -9.3196782739030E-06 -9.3200549988703E-06 4.0420895298876E-05 +(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006508710543E-02 -4.5006506846534E-02 +(PID.TID 0000.0001) grdchk output (g): 3 -9.3200466788623E-06 -9.3200549988704E-06 8.9269946590420E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006646503148E-02 -4.5006352340135E-02 -(PID.TID 0000.0001) grdchk output (g): 4 -1.4708150630760E-05 -1.6684399249540E-05 1.1844889283830E-01 +(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006509447125E-02 -4.5006506110257E-02 +(PID.TID 0000.0001) grdchk output (g): 4 -1.6684338667583E-05 -1.6684399249540E-05 3.6310541694506E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 5.9224476803208E-02 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 2.4535217651521E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 184.91388637595810 -(PID.TID 0000.0001) System time: 0.36994401388801634 -(PID.TID 0000.0001) Wall clock time: 185.74937605857849 +(PID.TID 0000.0001) User time: 105.02359638176858 +(PID.TID 0000.0001) System time: 0.92002898361533880 +(PID.TID 0000.0001) Wall clock time: 106.01515388488770 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.19696999364532530 -(PID.TID 0000.0001) System time: 9.99899976886808872E-003 -(PID.TID 0000.0001) Wall clock time: 0.21301507949829102 +(PID.TID 0000.0001) User time: 0.17328100092709064 +(PID.TID 0000.0001) System time: 2.0722999703139067E-002 +(PID.TID 0000.0001) Wall clock time: 0.21897697448730469 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 92.320966064929962 -(PID.TID 0000.0001) System time: 0.31895099580287933 -(PID.TID 0000.0001) Wall clock time: 92.881222963333130 +(PID.TID 0000.0001) User time: 50.424602642655373 +(PID.TID 0000.0001) System time: 0.84328899532556534 +(PID.TID 0000.0001) Wall clock time: 51.310098886489868 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 112.97287207841873 -(PID.TID 0000.0001) System time: 4.49950397014617920E-002 -(PID.TID 0000.0001) Wall clock time: 113.28568649291992 +(PID.TID 0000.0001) User time: 68.664347350597382 +(PID.TID 0000.0001) System time: 3.9993956685066223E-002 +(PID.TID 0000.0001) Wall clock time: 68.716948032379150 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11996364593505859 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11582851409912109 +(PID.TID 0000.0001) User time: 6.8481028079986572E-002 +(PID.TID 0000.0001) System time: 1.4295428991317749E-004 +(PID.TID 0000.0001) Wall clock time: 6.8681955337524414E-002 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.24699985980987549 -(PID.TID 0000.0001) System time: 1.09999850392341614E-002 -(PID.TID 0000.0001) Wall clock time: 0.27050209045410156 +(PID.TID 0000.0001) User time: 0.14188542962074280 +(PID.TID 0000.0001) System time: 1.3760983943939209E-002 +(PID.TID 0000.0001) Wall clock time: 0.16157603263854980 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.27800846099853516 -(PID.TID 0000.0001) System time: 1.09999850392341614E-002 -(PID.TID 0000.0001) Wall clock time: 0.30203938484191895 -(PID.TID 0000.0001) No. starts: 120 -(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) User time: 0.15434443950653076 +(PID.TID 0000.0001) System time: 1.3807013630867004E-002 +(PID.TID 0000.0001) Wall clock time: 0.17410826683044434 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.33690571784973145 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.33853220939636230 +(PID.TID 0000.0001) User time: 0.16577336192131042 +(PID.TID 0000.0001) System time: 2.4660602211952209E-003 +(PID.TID 0000.0001) Wall clock time: 0.16871213912963867 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.79673862457275391E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.82675552368164063E-002 +(PID.TID 0000.0001) User time: 6.1412662267684937E-002 +(PID.TID 0000.0001) System time: 2.0899623632431030E-004 +(PID.TID 0000.0001) Wall clock time: 6.1595201492309570E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 17.830317437648773 -(PID.TID 0000.0001) System time: 4.99900430440902710E-003 -(PID.TID 0000.0001) Wall clock time: 17.876174688339233 +(PID.TID 0000.0001) User time: 11.228571355342865 +(PID.TID 0000.0001) System time: 3.9994716644287109E-005 +(PID.TID 0000.0001) Wall clock time: 11.229665040969849 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 43.267451047897339 -(PID.TID 0000.0001) System time: 6.99803233146667480E-003 -(PID.TID 0000.0001) Wall clock time: 43.379565954208374 +(PID.TID 0000.0001) User time: 26.354608297348022 +(PID.TID 0000.0001) System time: 3.7580132484436035E-003 +(PID.TID 0000.0001) Wall clock time: 26.362021446228027 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9072169065475464 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.9124720096588135 +(PID.TID 0000.0001) User time: 2.9555273056030273 +(PID.TID 0000.0001) System time: 3.9935111999511719E-006 +(PID.TID 0000.0001) Wall clock time: 2.9562232494354248 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0047962665557861 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0090813636779785 +(PID.TID 0000.0001) User time: 0.55904555320739746 +(PID.TID 0000.0001) System time: 1.1980533599853516E-005 +(PID.TID 0000.0001) Wall clock time: 0.55923056602478027 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9027206897735596 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.9084453582763672 +(PID.TID 0000.0001) User time: 1.0484299659729004 +(PID.TID 0000.0001) System time: 3.9670020341873169E-003 +(PID.TID 0000.0001) Wall clock time: 1.0525455474853516 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12603151798248291 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12903952598571777 +(PID.TID 0000.0001) User time: 7.6257884502410889E-002 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 7.6327562332153320E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.81880307197570801 -(PID.TID 0000.0001) System time: 1.00001692771911621E-003 -(PID.TID 0000.0001) Wall clock time: 0.82036852836608887 +(PID.TID 0000.0001) User time: 0.47976547479629517 +(PID.TID 0000.0001) System time: 2.8402358293533325E-004 +(PID.TID 0000.0001) Wall clock time: 0.48025465011596680 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 39.749017834663391 -(PID.TID 0000.0001) System time: 8.99897515773773193E-003 -(PID.TID 0000.0001) Wall clock time: 39.847666025161743 +(PID.TID 0000.0001) User time: 23.661718726158142 +(PID.TID 0000.0001) System time: 3.5909935832023621E-003 +(PID.TID 0000.0001) Wall clock time: 23.667037010192871 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.93013381958007813E-004 +(PID.TID 0000.0001) User time: 9.3305110931396484E-004 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 9.2267990112304688E-004 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.86486911773681641 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.86881828308105469 +(PID.TID 0000.0001) User time: 0.61120879650115967 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 0.61148834228515625 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6088062524795532 +(PID.TID 0000.0001) User time: 1.1805714368820190 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6114876270294189 +(PID.TID 0000.0001) Wall clock time: 1.1807670593261719 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.49881744384765625E-002 -(PID.TID 0000.0001) System time: 4.00000065565109253E-003 -(PID.TID 0000.0001) Wall clock time: 2.86226272583007813E-002 +(PID.TID 0000.0001) User time: 2.2862434387207031E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.2979497909545898E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.49934005737304688E-002 -(PID.TID 0000.0001) System time: 4.99899685382843018E-003 -(PID.TID 0000.0001) Wall clock time: 5.03616333007812500E-002 +(PID.TID 0000.0001) User time: 2.8494954109191895E-002 +(PID.TID 0000.0001) System time: 1.1694952845573425E-002 +(PID.TID 0000.0001) Wall clock time: 4.0165185928344727E-002 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 7.59887695312500000E-002 -(PID.TID 0000.0001) System time: 3.00002098083496094E-003 -(PID.TID 0000.0001) Wall clock time: 7.82759189605712891E-002 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 4.4193267822265625E-002 +(PID.TID 0000.0001) System time: 1.2692928314208984E-002 +(PID.TID 0000.0001) Wall clock time: 5.6866884231567383E-002 +(PID.TID 0000.0001) No. starts: 4 +(PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.30004882812500000E-002 -(PID.TID 0000.0001) System time: 1.00001692771911621E-003 -(PID.TID 0000.0001) Wall clock time: 1.47020816802978516E-002 +(PID.TID 0000.0001) User time: 2.3422241210937500E-003 +(PID.TID 0000.0001) System time: 7.9709887504577637E-003 +(PID.TID 0000.0001) Wall clock time: 1.0313987731933594E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.29928588867187500E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.36630535125732422E-002 +(PID.TID 0000.0001) User time: 6.8359375000000000E-003 +(PID.TID 0000.0001) System time: 4.8995018005371094E-005 +(PID.TID 0000.0001) Wall clock time: 6.8869590759277344E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 92.369956970214844 -(PID.TID 0000.0001) System time: 3.99940013885498047E-002 -(PID.TID 0000.0001) Wall clock time: 92.626693964004517 +(PID.TID 0000.0001) User time: 54.416435241699219 +(PID.TID 0000.0001) System time: 4.7982990741729736E-002 +(PID.TID 0000.0001) Wall clock time: 54.468787193298340 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.0058364868164063 -(PID.TID 0000.0001) System time: 7.99795985221862793E-003 -(PID.TID 0000.0001) Wall clock time: 1.0154411792755127 +(PID.TID 0000.0001) User time: 0.56962966918945312 +(PID.TID 0000.0001) System time: 1.1990010738372803E-002 +(PID.TID 0000.0001) Wall clock time: 0.58164191246032715 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 91.199142456054688 -(PID.TID 0000.0001) System time: 2.79970467090606689E-002 -(PID.TID 0000.0001) Wall clock time: 91.441839456558228 +(PID.TID 0000.0001) User time: 53.764793395996094 +(PID.TID 0000.0001) System time: 8.0969929695129395E-003 +(PID.TID 0000.0001) Wall clock time: 53.777246713638306 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 89.468444824218750 -(PID.TID 0000.0001) System time: 2.79970467090606689E-002 -(PID.TID 0000.0001) Wall clock time: 89.706986904144287 +(PID.TID 0000.0001) User time: 53.762325286865234 +(PID.TID 0000.0001) System time: 8.0959796905517578E-003 +(PID.TID 0000.0001) Wall clock time: 53.774777173995972 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.91821289062500000E-004 +(PID.TID 0000.0001) User time: 6.7138671875000000E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.93115997314453125E-004 +(PID.TID 0000.0001) Wall clock time: 6.6828727722167969E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4554,9 +4385,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 30594 +(PID.TID 0000.0001) // No. barriers = 27678 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 30594 +(PID.TID 0000.0001) // Total barrier spins = 27678 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output_oadm.txt b/verification/global_ocean.90x40x15/results/output_oadm.txt index 4a1f14b503..06883ec989 100644 --- a/verification/global_ocean.90x40x15/results/output_oadm.txt +++ b/verification/global_ocean.90x40x15/results/output_oadm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67h -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Mar 21 13:20:35 EDT 2019 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node374 +(PID.TID 0000.0001) // Build date: Tue Jul 25 22:39:00 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,7 +49,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -338,6 +338,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -359,9 +365,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -388,17 +403,6 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > ctrlUseGen=.FALSE., -(PID.TID 0000.0001) ># doSinglePrecTapelev= .FALSE., -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -406,9 +410,50 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) ># Since everything is hard coded, the following has no effect but is +(PID.TID 0000.0001) ># just meant to document the control variables; +(PID.TID 0000.0001) ># the forcing controls are constant in time so they are realized +(PID.TID 0000.0001) ># via genarr2d rather than gentim2d and hard coded in +(PID.TID 0000.0001) ># ctrl_map_ini_genarr.F +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_gentim2d_startdate1(1) = 19920101, +(PID.TID 0000.0001) >#xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) >#xx_gentim2d_period(1) = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_gentim2d_startdate1(2) = 19920101, +(PID.TID 0000.0001) >#xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) >#xx_gentim2d_period(2) = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_genarr2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_gentim2d_startdate1(3) = 19920101, +(PID.TID 0000.0001) >#xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) >#xx_gentim2d_period(3) = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_genarr2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_gentim2d_startdate1(4) = 19920101, +(PID.TID 0000.0001) >#xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) >#xx_gentim2d_period(4) = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffKr', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -437,7 +482,7 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, (PID.TID 0000.0001) >### iGloPos = 76, (PID.TID 0000.0001) >### jGloPos = 27, (PID.TID 0000.0001) > iGloPos = 31, @@ -448,7 +493,7 @@ (PID.TID 0000.0001) >### nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 3, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -457,8 +502,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 -(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 3 (PID.TID 0000.0001) Increment: 1 @@ -513,18 +558,18 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 96912 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 97187 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 669 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 640 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 610 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8651 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 @@ -533,7 +578,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 @@ -579,10 +624,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 19890 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 17302 (PID.TID 0000.0001) ctrl-wet 8: atmos 17302 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 96912 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 97187 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 @@ -602,8 +987,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 7 -(PID.TID 0000.0001) ctrl_init: control vector length: 96912 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 7 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 97187 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -620,11 +1005,44 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0103 +(PID.TID 0000.0001) ncvarindex = 0203 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0104 +(PID.TID 0000.0001) ncvarindex = 0204 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffKr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -656,9 +1074,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -695,6 +1133,9 @@ (PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscC2LeithQG = /* QG Leith harmonic viscosity factor (non-dim.)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -785,10 +1226,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -843,28 +1290,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -886,7 +1336,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -895,7 +1345,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -960,14 +1410,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -980,6 +1428,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1095,8 +1546,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1113,6 +1564,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1447,15 +1901,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1794,9 +2239,6 @@ (PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ (PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ (PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ -OAD: TIMING: stamp 0: 1553189796.481289 -OAD: TIMING: stamp 1: 1553189816.259915 -OAD: TIMING: delta stamps 1-0: 19.778626 (PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ (PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ (PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ @@ -1829,6 +2271,7 @@ OAD: TIMING: delta stamps 1-0: 19.778626 (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +OAD: TIMING: stamp 0: 1690339840.018428 (PID.TID 0000.0001) 1.100000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ @@ -1888,7 +2331,12 @@ OAD: TIMING: delta stamps 1-0: 19.778626 (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -1901,6 +2349,13 @@ OAD: TIMING: delta stamps 1-0: 19.778626 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) + OAD: DT+ 1048576 +OAD: TIMING: stamp 1: 1690339851.823965 +OAD: TIMING: delta stamps 1-0: 11.805537 +OAD: TIMING: stamp 2: 1690339877.061985 +OAD: TIMING: delta stamps 2-1: 25.238020 +OAD: TIMING: delta stamps 2-0: 37.043557 +OAD: TIMING: ratio stamps (2-1)/(1-0): 2.523802e+07/1.180554e+07=2.137812e+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -1916,23 +2371,22 @@ OAD: TIMING: delta stamps 1-0: 19.778626 cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.17243286106845E+00 cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 7.77283039421207E+00 cg2d: Sum(rhs),rhsMax = 5.32907051820075E-14 8.10136142073579E+00 - OAD: DT+ 1048576 OAD: IT+ 17825792 OAD: IT+ 34603008 OAD: DT+ 17825792 OAD: IT+ 51380224 OAD: IT+ 68157440 cg2d: Sum(rhs),rhsMax = -6.39488462184090E-14 8.18927452945244E+00 - OAD: DT+ 34603008 OAD: IT+ 84934656 + OAD: DT+ 34603008 OAD: IT+ 101711872 OAD: IT+ 118489088 (PID.TID 0000.0001) %CHECKPOINT 10 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450065077785263D-01 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065077785263D-01 (PID.TID 0000.0001) local fc = -0.450065077785263D-01 (PID.TID 0000.0001) global fc = -0.450065077785263D-01 cg2d: Sum(rhs),rhsMax = -6.76589747467498E-17 8.04945967787814E-09 @@ -1941,25 +2395,21 @@ OAD: TIMING: delta stamps 1-0: 19.778626 cg2d: Sum(rhs),rhsMax = -1.24344978758018E-14 7.77283039421207E+00 cg2d: Sum(rhs),rhsMax = -1.22840106142608E-15 8.74327613604373E-09 cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 7.17243286106845E+00 - cg2d: Sum(rhs),rhsMax = -1.22974547211996E-14 5.49414350830240E-09 + cg2d: Sum(rhs),rhsMax = -1.23234755733392E-14 5.49414350830240E-09 cg2d: Sum(rhs),rhsMax = 6.21724893790088E-14 6.84253554757673E+00 - cg2d: Sum(rhs),rhsMax = 5.44703171456717E-15 3.68281353912157E-09 + cg2d: Sum(rhs),rhsMax = -2.42167397246362E-15 3.68281353912156E-09 cg2d: Sum(rhs),rhsMax = 3.64153152077051E-14 6.88673552302266E+00 - cg2d: Sum(rhs),rhsMax = -9.18709552877317E-15 5.90272604043300E-09 -OAD: TIMING: stamp 2: 1553189860.549143 -OAD: TIMING: delta stamps 2-1: 44.289228 -OAD: TIMING: delta stamps 2-0: 64.067854 -OAD: TIMING: ratio stamps (2-1)/(1-0): 4.428923e+07/1.977863e+07=2.239247e+00 + cg2d: Sum(rhs),rhsMax = -8.20177259441834E-15 5.90272604043300E-09 cg2d: Sum(rhs),rhsMax = -8.43769498715119E-15 6.78919330551122E+00 - cg2d: Sum(rhs),rhsMax = 6.52256026967279E-15 7.26634540912282E-09 + cg2d: Sum(rhs),rhsMax = -2.44249065417534E-15 7.26634540912282E-09 cg2d: Sum(rhs),rhsMax = -6.77236045021345E-15 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = -1.15463194561016E-14 8.24007965726769E-09 + cg2d: Sum(rhs),rhsMax = -9.99200722162641E-16 8.24007965726771E-09 cg2d: Sum(rhs),rhsMax = 5.71764857681956E-15 4.93238674419719E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 9.24289205824488E-09 + cg2d: Sum(rhs),rhsMax = 2.44249065417534E-15 9.24289205824485E-09 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -4.44089209850063E-16 2.53681867617526E+00 - cg2d: Sum(rhs),rhsMax = -4.44089209850063E-16 1.10566559735434E-08 + cg2d: Sum(rhs),rhsMax = 2.88657986402541E-15 1.10566559735434E-08 ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= @@ -1986,24 +2436,24 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = -4.66293670342566E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = -1.90958360235527E-14 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = -4.88498130835069E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 6.88673552302264E+00 - cg2d: Sum(rhs),rhsMax = 6.30606677987089E-14 6.84253554757676E+00 - cg2d: Sum(rhs),rhsMax = -9.05941988094128E-14 7.17243286106857E+00 - cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 7.77283039421237E+00 - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 8.10136142073601E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 8.18927452945255E+00 + cg2d: Sum(rhs),rhsMax = -3.71924713249427E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -8.65973959207622E-15 6.28229902439776E+00 + cg2d: Sum(rhs),rhsMax = -2.88657986402541E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = -1.95399252334028E-14 6.88673552302311E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.84253554757712E+00 + cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 7.17243286106881E+00 + cg2d: Sum(rhs),rhsMax = -3.90798504668055E-14 7.77283039421262E+00 + cg2d: Sum(rhs),rhsMax = 7.63833440942108E-14 8.10136142073607E+00 + cg2d: Sum(rhs),rhsMax = -9.23705556488130E-14 8.18927452945220E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066523719721D-01 -(PID.TID 0000.0001) local fc = -0.450066523719721D-01 -(PID.TID 0000.0001) global fc = -0.450066523719721D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066523719721E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065092245282D-01 +(PID.TID 0000.0001) local fc = -0.450065092245282D-01 +(PID.TID 0000.0001) global fc = -0.450065092245282D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065092245282E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2014,30 +2464,30 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = -2.05391259555654E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = 1.99840144432528E-15 6.28229902439777E+00 - cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 6.78919330551119E+00 - cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 6.88673552302310E+00 - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 6.84253554757712E+00 - cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 7.17243286106881E+00 - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 7.77283039421259E+00 - cg2d: Sum(rhs),rhsMax = 6.39488462184090E-14 8.10136142073613E+00 - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.18927452945229E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-15 6.28229902439777E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.88673552302322E+00 + cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 6.84253554757729E+00 + cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 7.17243286106850E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-14 7.77283039421231E+00 + cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 8.10136142073597E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.18927452945250E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063631388652D-01 -(PID.TID 0000.0001) local fc = -0.450063631388652D-01 -(PID.TID 0000.0001) global fc = -0.450063631388652D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063631388652E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065063325175D-01 +(PID.TID 0000.0001) local fc = -0.450065063325175D-01 +(PID.TID 0000.0001) global fc = -0.450065063325175D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065063325175E-02 grad-res ------------------------------- - grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50066523720E-02 -4.50063631389E-02 - grad-res 0 1 1 258 0 2 2 1 -1.44600218759E-05 -1.44616553430E-05 -1.12964362510E-04 + grad-res 0 1 31 7 1 2 2 1 -4.50065077785E-02 -4.50065092245E-02 -4.50065063325E-02 + grad-res 0 1 1 258 0 2 2 1 -1.44600218759E-05 -1.44600534324E-05 -2.18232968940E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785263E-02 (PID.TID 0000.0001) ADM adjoint_gradient = -1.44600218758840E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.44616553430371E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.44600534324191E-05 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 259 29309 2 @@ -2053,25 +2503,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = 3.64153152077051E-14 6.78919330551124E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 6.88673552302285E+00 - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 6.84253554757690E+00 - cg2d: Sum(rhs),rhsMax = -6.92779167366098E-14 7.17243286106887E+00 - cg2d: Sum(rhs),rhsMax = 6.03961325396085E-14 7.77283039421257E+00 - cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 8.10136142073614E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 8.18927452945254E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 + cg2d: Sum(rhs),rhsMax = 1.11022302462516E-16 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -1.01030295240889E-14 6.28229902439777E+00 + cg2d: Sum(rhs),rhsMax = -4.84057238736568E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 6.88673552302310E+00 + cg2d: Sum(rhs),rhsMax = 3.28626015289046E-14 6.84253554757712E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 7.17243286106848E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 7.77283039421201E+00 + cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 8.10136142073592E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.18927452945253E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066425813319D-01 -(PID.TID 0000.0001) local fc = -0.450066425813319D-01 -(PID.TID 0000.0001) global fc = -0.450066425813319D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066425813319E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065091268037D-01 +(PID.TID 0000.0001) local fc = -0.450065091268037D-01 +(PID.TID 0000.0001) global fc = -0.450065091268037D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065091268037E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2082,30 +2532,30 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = 7.60502771868232E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = -7.99360577730113E-15 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 6.78919330551120E+00 - cg2d: Sum(rhs),rhsMax = 4.17443857259059E-14 6.88673552302311E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 6.84253554757709E+00 - cg2d: Sum(rhs),rhsMax = -8.70414851306123E-14 7.17243286106837E+00 - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 7.77283039421221E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-14 8.10136142073601E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.18927452945228E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 6.28229902439776E+00 + cg2d: Sum(rhs),rhsMax = 2.75335310107039E-14 6.78919330551119E+00 + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-15 6.88673552302264E+00 + cg2d: Sum(rhs),rhsMax = -4.70734562441066E-14 6.84253554757683E+00 + cg2d: Sum(rhs),rhsMax = -2.84217094304040E-14 7.17243286106839E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.77283039421236E+00 + cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.10136142073610E+00 + cg2d: Sum(rhs),rhsMax = 4.97379915032070E-14 8.18927452945258E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063729255709D-01 -(PID.TID 0000.0001) local fc = -0.450063729255709D-01 -(PID.TID 0000.0001) global fc = -0.450063729255709D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063729255709E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065064302381D-01 +(PID.TID 0000.0001) local fc = -0.450065064302381D-01 +(PID.TID 0000.0001) global fc = -0.450065064302381D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065064302381E-02 grad-res ------------------------------- - grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50066425813E-02 -4.50063729256E-02 - grad-res 0 2 2 259 0 2 2 1 -1.34827845971E-05 -1.34827880503E-05 -2.56117227426E-07 + grad-res 0 2 32 7 1 2 2 1 -4.50065077785E-02 -4.50065091268E-02 -4.50065064302E-02 + grad-res 0 2 2 259 0 2 2 1 -1.34827845971E-05 -1.34828279097E-05 -3.21243792323E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785263E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.34827845970857E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.34827880502592E-05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.34827845970858E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.34828279096944E-05 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 260 29309 3 @@ -2121,25 +2571,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 6.78919330551120E+00 - cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 6.88673552302264E+00 - cg2d: Sum(rhs),rhsMax = 3.37507799486048E-14 6.84253554757685E+00 - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 7.17243286106846E+00 - cg2d: Sum(rhs),rhsMax = -8.34887714518118E-14 7.77283039421234E+00 - cg2d: Sum(rhs),rhsMax = -5.32907051820075E-15 8.10136142073606E+00 - cg2d: Sum(rhs),rhsMax = -9.41469124882133E-14 8.18927452945248E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 + cg2d: Sum(rhs),rhsMax = -2.88657986402541E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-16 6.28229902439776E+00 + cg2d: Sum(rhs),rhsMax = -1.11022302462516E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 6.88673552302264E+00 + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-14 6.84253554757677E+00 + cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 7.17243286106852E+00 + cg2d: Sum(rhs),rhsMax = -3.19744231092045E-14 7.77283039421232E+00 + cg2d: Sum(rhs),rhsMax = 1.42108547152020E-14 8.10136142073602E+00 + cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 8.18927452945269E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066011319007D-01 -(PID.TID 0000.0001) local fc = -0.450066011319007D-01 -(PID.TID 0000.0001) global fc = -0.450066011319007D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066011319007E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065087105446D-01 +(PID.TID 0000.0001) local fc = -0.450065087105446D-01 +(PID.TID 0000.0001) global fc = -0.450065087105446D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065087105446E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2149,31 +2599,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = -7.71605002114484E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = 1.36557432028894E-14 6.28229902439776E+00 - cg2d: Sum(rhs),rhsMax = -1.28785870856518E-14 6.78919330551120E+00 - cg2d: Sum(rhs),rhsMax = 1.68753899743024E-14 6.88673552302264E+00 - cg2d: Sum(rhs),rhsMax = -1.77635683940025E-15 6.84253554757676E+00 - cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.17243286106847E+00 - cg2d: Sum(rhs),rhsMax = 4.79616346638068E-14 7.77283039421199E+00 - cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 8.10136142073570E+00 - cg2d: Sum(rhs),rhsMax = -6.92779167366098E-14 8.18927452945235E+00 + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-15 2.53681867617525E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-16 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -6.55031584528842E-15 6.28229902439777E+00 + cg2d: Sum(rhs),rhsMax = 2.04281036531029E-14 6.78919330551124E+00 + cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 6.88673552302312E+00 + cg2d: Sum(rhs),rhsMax = 6.92779167366098E-14 6.84253554757706E+00 + cg2d: Sum(rhs),rhsMax = 8.70414851306123E-14 7.17243286106846E+00 + cg2d: Sum(rhs),rhsMax = -1.24344978758018E-14 7.77283039421233E+00 + cg2d: Sum(rhs),rhsMax = 1.10134124042816E-13 8.10136142073607E+00 + cg2d: Sum(rhs),rhsMax = -1.54543045027822E-13 8.18927452945256E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450064147383348D-01 -(PID.TID 0000.0001) local fc = -0.450064147383348D-01 -(PID.TID 0000.0001) global fc = -0.450064147383348D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50064147383348E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065068465330D-01 +(PID.TID 0000.0001) local fc = -0.450065068465330D-01 +(PID.TID 0000.0001) global fc = -0.450065068465330D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065068465330E-02 grad-res ------------------------------- - grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50066011319E-02 -4.50064147383E-02 - grad-res 0 3 3 260 0 2 2 1 -9.32005499887E-06 -9.31967829958E-06 4.04181406761E-05 + grad-res 0 3 33 7 1 2 2 1 -4.50065077785E-02 -4.50065087105E-02 -4.50065068465E-02 + grad-res 0 3 3 260 0 2 2 1 -9.32005499887E-06 -9.32005802395E-06 -3.24577793975E-07 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785263E-02 (PID.TID 0000.0001) ADM adjoint_gradient = -9.32005499887097E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -9.31967829957692E-06 +(PID.TID 0000.0001) ADM finite-diff_grad = -9.32005802395386E-06 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 261 29309 4 @@ -2189,25 +2639,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = -5.49560397189452E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 6.28229902439777E+00 - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 6.78919330551120E+00 - cg2d: Sum(rhs),rhsMax = -4.70734562441066E-14 6.88673552302311E+00 - cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 6.84253554757713E+00 - cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 7.17243286106843E+00 - cg2d: Sum(rhs),rhsMax = 6.92779167366098E-14 7.77283039421208E+00 - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 8.10136142073581E+00 - cg2d: Sum(rhs),rhsMax = -8.34887714518118E-14 8.18927452945243E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 + cg2d: Sum(rhs),rhsMax = -6.99440505513849E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = -3.33066907387547E-16 6.28229902439776E+00 + cg2d: Sum(rhs),rhsMax = 1.73194791841524E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 6.88673552302264E+00 + cg2d: Sum(rhs),rhsMax = 7.90478793533111E-14 6.84253554757677E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 7.17243286106845E+00 + cg2d: Sum(rhs),rhsMax = 5.86197757002083E-14 7.77283039421208E+00 + cg2d: Sum(rhs),rhsMax = -1.42108547152020E-14 8.10136142073583E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 8.18927452945243E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450066465031474D-01 -(PID.TID 0000.0001) local fc = -0.450066465031474D-01 -(PID.TID 0000.0001) global fc = -0.450066465031474D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50066465031474E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065094471231D-01 +(PID.TID 0000.0001) local fc = -0.450065094471231D-01 +(PID.TID 0000.0001) global fc = -0.450065094471231D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -4.50065094471231E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2218,236 +2668,236 @@ grad-res ------------------------------- EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -3.66373598126302E-15 2.53681867617525E+00 - cg2d: Sum(rhs),rhsMax = 3.88578058618805E-15 4.93238674419718E+00 - cg2d: Sum(rhs),rhsMax = 1.11022302462516E-15 6.28229902439777E+00 - cg2d: Sum(rhs),rhsMax = -1.33226762955019E-14 6.78919330551120E+00 - cg2d: Sum(rhs),rhsMax = -3.90798504668055E-14 6.88673552302311E+00 - cg2d: Sum(rhs),rhsMax = 1.68753899743024E-14 6.84253554757709E+00 - cg2d: Sum(rhs),rhsMax = 1.24344978758018E-14 7.17243286106837E+00 - cg2d: Sum(rhs),rhsMax = -7.10542735760100E-15 7.77283039421209E+00 - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-14 8.10136142073601E+00 - cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 8.18927452945238E+00 + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-15 4.93238674419718E+00 + cg2d: Sum(rhs),rhsMax = 4.10782519111308E-15 6.28229902439776E+00 + cg2d: Sum(rhs),rhsMax = -1.02140518265514E-14 6.78919330551120E+00 + cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 6.88673552302311E+00 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 6.84253554757714E+00 + cg2d: Sum(rhs),rhsMax = 6.92779167366098E-14 7.17243286106882E+00 + cg2d: Sum(rhs),rhsMax = -2.13162820728030E-14 7.77283039421262E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-14 8.10136142073605E+00 + cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 8.18927452945222E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.450063523401349D-01 -(PID.TID 0000.0001) local fc = -0.450063523401349D-01 -(PID.TID 0000.0001) global fc = -0.450063523401349D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50063523401349E-02 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.450065061102560D-01 +(PID.TID 0000.0001) local fc = -0.450065061102560D-01 +(PID.TID 0000.0001) global fc = -0.450065061102560D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -4.50065061102560E-02 grad-res ------------------------------- - grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50066465031E-02 -4.50063523401E-02 - grad-res 0 4 4 261 0 2 2 1 -1.66843992494E-05 -1.47081506231E-05 1.18448893288E-01 + grad-res 0 4 34 7 1 2 2 1 -4.50065077785E-02 -4.50065094471E-02 -4.50065061103E-02 + grad-res 0 4 4 261 0 2 2 1 -1.66843992494E-05 -1.66843355451E-05 3.81819683370E-06 (PID.TID 0000.0001) ADM ref_cost_function = -4.50065077785263E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.66843992494018E-05 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.47081506231272E-05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.66843992494011E-05 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.66843355450808E-05 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) EPS = 1.000000E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006652371972E-02 -4.5006363138865E-02 -(PID.TID 0000.0001) grdchk output (g): 1 -1.4461655343037E-05 -1.4460021875884E-05 -1.1296436250996E-04 +(PID.TID 0000.0001) grdchk output (p): 1 31 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 -4.5006507778526E-02 -4.5006509224528E-02 -4.5006506332518E-02 +(PID.TID 0000.0001) grdchk output (g): 1 -1.4460053432419E-05 -1.4460021875884E-05 -2.1823296894041E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006642581332E-02 -4.5006372925571E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -1.3482788050259E-05 -1.3482784597086E-05 -2.5611722742624E-07 +(PID.TID 0000.0001) grdchk output (p): 2 32 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 -4.5006507778526E-02 -4.5006509126804E-02 -4.5006506430238E-02 +(PID.TID 0000.0001) grdchk output (g): 2 -1.3482827909694E-05 -1.3482784597086E-05 -3.2124379232279E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006601131901E-02 -4.5006414738335E-02 -(PID.TID 0000.0001) grdchk output (g): 3 -9.3196782995769E-06 -9.3200549988710E-06 4.0418140676124E-05 +(PID.TID 0000.0001) grdchk output (p): 3 33 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 -4.5006507778526E-02 -4.5006508710545E-02 -4.5006506846533E-02 +(PID.TID 0000.0001) grdchk output (g): 3 -9.3200580239539E-06 -9.3200549988710E-06 -3.2457779397532E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006646503147E-02 -4.5006352340135E-02 -(PID.TID 0000.0001) grdchk output (g): 4 -1.4708150623127E-05 -1.6684399249402E-05 1.1844889328846E-01 +(PID.TID 0000.0001) grdchk output (p): 4 34 7 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 -4.5006507778526E-02 -4.5006509447123E-02 -4.5006506110256E-02 +(PID.TID 0000.0001) grdchk output (g): 4 -1.6684335545081E-05 -1.6684399249401E-05 3.8181968337048E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 5.9224477025764E-02 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 2.7279249480650E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 159.92768740141764 -(PID.TID 0000.0001) System time: 2.9575509037822485 -(PID.TID 0000.0001) Wall clock time: 163.31933808326721 +(PID.TID 0000.0001) User time: 89.033867934020236 +(PID.TID 0000.0001) System time: 1.5380740473046899 +(PID.TID 0000.0001) Wall clock time: 92.584648132324219 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.22396599734202027 -(PID.TID 0000.0001) System time: 2.39969994872808456E-002 -(PID.TID 0000.0001) Wall clock time: 0.25295281410217285 +(PID.TID 0000.0001) User time: 0.12753399787470698 +(PID.TID 0000.0001) System time: 3.5846001468598843E-002 +(PID.TID 0000.0001) Wall clock time: 0.62035894393920898 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 16.868434309959412 -(PID.TID 0000.0001) System time: 2.8015739619731903 -(PID.TID 0000.0001) Wall clock time: 19.778617143630981 +(PID.TID 0000.0001) User time: 9.3485832661390305 +(PID.TID 0000.0001) System time: 1.3837770037353039 +(PID.TID 0000.0001) Wall clock time: 11.805531024932861 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.1608362197875977 -(PID.TID 0000.0001) System time: 6.19914382696151733E-002 -(PID.TID 0000.0001) Wall clock time: 1.2606103420257568 +(PID.TID 0000.0001) User time: 0.72994817793369293 +(PID.TID 0000.0001) System time: 5.5255949497222900E-002 +(PID.TID 0000.0001) Wall clock time: 1.1683850288391113 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 114.16063153743744 -(PID.TID 0000.0001) System time: 2.7515818923711777 -(PID.TID 0000.0001) Wall clock time: 117.20150971412659 +(PID.TID 0000.0001) User time: 63.100193470716476 +(PID.TID 0000.0001) System time: 1.3506070747971535 +(PID.TID 0000.0001) Wall clock time: 65.228938579559326 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 114.15963208675385 -(PID.TID 0000.0001) System time: 2.7515818923711777 -(PID.TID 0000.0001) Wall clock time: 117.20010805130005 +(PID.TID 0000.0001) User time: 63.099222302436829 +(PID.TID 0000.0001) System time: 1.3505860045552254 +(PID.TID 0000.0001) Wall clock time: 65.227946996688843 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12593966722488403 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12927961349487305 +(PID.TID 0000.0001) User time: 6.6729038953781128E-002 +(PID.TID 0000.0001) System time: 7.8707933425903320E-004 +(PID.TID 0000.0001) Wall clock time: 6.7540407180786133E-002 (PID.TID 0000.0001) No. starts: 198 (PID.TID 0000.0001) No. stops: 198 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12298649549484253 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13843894004821777 +(PID.TID 0000.0001) User time: 6.3397854566574097E-002 +(PID.TID 0000.0001) System time: 2.8123706579208374E-003 +(PID.TID 0000.0001) Wall clock time: 7.9629898071289062E-002 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.12198704481124878 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13649153709411621 +(PID.TID 0000.0001) User time: 6.1815977096557617E-002 +(PID.TID 0000.0001) System time: 2.7781575918197632E-003 +(PID.TID 0000.0001) Wall clock time: 7.8077316284179688E-002 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.70217752456665039E-002 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 1.85649394989013672E-002 +(PID.TID 0000.0001) User time: 6.8929791450500488E-004 +(PID.TID 0000.0001) System time: 1.3887882232666016E-005 +(PID.TID 0000.0001) Wall clock time: 7.2836875915527344E-004 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11895716190338135 -(PID.TID 0000.0001) System time: 9.99003648757934570E-004 -(PID.TID 0000.0001) Wall clock time: 0.12125515937805176 +(PID.TID 0000.0001) User time: 6.4025223255157471E-002 +(PID.TID 0000.0001) System time: 2.9885768890380859E-004 +(PID.TID 0000.0001) Wall clock time: 6.4410924911499023E-002 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 22.071621000766754 -(PID.TID 0000.0001) System time: 0.12897911667823792 -(PID.TID 0000.0001) Wall clock time: 22.238403558731079 +(PID.TID 0000.0001) User time: 11.852601498365402 +(PID.TID 0000.0001) System time: 6.3497848808765411E-002 +(PID.TID 0000.0001) Wall clock time: 11.940771341323853 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 54.599737584590912 -(PID.TID 0000.0001) System time: 0.81887693703174591 -(PID.TID 0000.0001) Wall clock time: 55.551222324371338 +(PID.TID 0000.0001) User time: 30.629063427448273 +(PID.TID 0000.0001) System time: 0.37781806290149689 +(PID.TID 0000.0001) Wall clock time: 31.033543109893799 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9182332754135132 -(PID.TID 0000.0001) System time: 2.99897044897079468E-003 -(PID.TID 0000.0001) Wall clock time: 4.9418241977691650 +(PID.TID 0000.0001) User time: 2.6898444890975952 +(PID.TID 0000.0001) System time: 9.3394517898559570E-004 +(PID.TID 0000.0001) Wall clock time: 2.7010865211486816 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1538629531860352 -(PID.TID 0000.0001) System time: 9.99093055725097656E-004 -(PID.TID 0000.0001) Wall clock time: 1.1562466621398926 +(PID.TID 0000.0001) User time: 0.57804423570632935 +(PID.TID 0000.0001) System time: 4.9909800291061401E-003 +(PID.TID 0000.0001) Wall clock time: 0.58324384689331055 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.1216844320297241 -(PID.TID 0000.0001) System time: 5.99896907806396484E-003 -(PID.TID 0000.0001) Wall clock time: 2.1266257762908936 +(PID.TID 0000.0001) User time: 1.1299384832382202 +(PID.TID 0000.0001) System time: 9.8311901092529297E-004 +(PID.TID 0000.0001) Wall clock time: 1.1311287879943848 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15498542785644531 -(PID.TID 0000.0001) System time: 9.99927520751953125E-004 -(PID.TID 0000.0001) Wall clock time: 0.16074299812316895 +(PID.TID 0000.0001) User time: 8.1122517585754395E-002 +(PID.TID 0000.0001) System time: 2.0131468772888184E-005 +(PID.TID 0000.0001) Wall clock time: 8.1243753433227539E-002 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0968018770217896 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1005158424377441 +(PID.TID 0000.0001) User time: 0.63224714994430542 +(PID.TID 0000.0001) System time: 8.2492828369140625E-004 +(PID.TID 0000.0001) Wall clock time: 0.63334774971008301 (PID.TID 0000.0001) No. starts: 198 (PID.TID 0000.0001) No. stops: 198 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 45.260115981101990 -(PID.TID 0000.0001) System time: 1.1048330590128899 -(PID.TID 0000.0001) Wall clock time: 46.469894647598267 +(PID.TID 0000.0001) User time: 25.471009552478790 +(PID.TID 0000.0001) System time: 0.65262509882450104 +(PID.TID 0000.0001) Wall clock time: 26.157382488250732 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.02376937866210938E-003 +(PID.TID 0000.0001) User time: 8.2993507385253906E-004 +(PID.TID 0000.0001) System time: 1.0892748832702637E-005 +(PID.TID 0000.0001) Wall clock time: 8.4781646728515625E-004 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.1176885366439819 -(PID.TID 0000.0001) System time: 0.44993209838867188 -(PID.TID 0000.0001) Wall clock time: 2.5722930431365967 +(PID.TID 0000.0001) User time: 1.0860164165496826 +(PID.TID 0000.0001) System time: 9.4103813171386719E-004 +(PID.TID 0000.0001) Wall clock time: 1.1035470962524414 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.39953613281250000E-002 -(PID.TID 0000.0001) System time: 1.99890136718750000E-003 -(PID.TID 0000.0001) Wall clock time: 6.63621425628662109E-002 +(PID.TID 0000.0001) User time: 4.6525001525878906E-002 +(PID.TID 0000.0001) System time: 5.1989555358886719E-003 +(PID.TID 0000.0001) Wall clock time: 0.17281603813171387 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.69949340820312500E-002 -(PID.TID 0000.0001) System time: 3.99994850158691406E-003 -(PID.TID 0000.0001) Wall clock time: 4.33592796325683594E-002 +(PID.TID 0000.0001) User time: 2.0392417907714844E-002 +(PID.TID 0000.0001) System time: 1.1779069900512695E-002 +(PID.TID 0000.0001) Wall clock time: 7.0590972900390625E-002 (PID.TID 0000.0001) No. starts: 99 (PID.TID 0000.0001) No. stops: 99 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.14655494689941406E-003 +(PID.TID 0000.0001) User time: 7.7438354492187500E-004 +(PID.TID 0000.0001) System time: 1.5020370483398438E-005 +(PID.TID 0000.0001) Wall clock time: 7.8797340393066406E-004 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 44.082300186157227 -(PID.TID 0000.0001) System time: 0.10898303985595703 -(PID.TID 0000.0001) Wall clock time: 44.291453838348389 +(PID.TID 0000.0001) User time: 24.918254852294922 +(PID.TID 0000.0001) System time: 7.1690082550048828E-002 +(PID.TID 0000.0001) Wall clock time: 25.238072872161865 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 3.69949340820312500E-002 -(PID.TID 0000.0001) System time: 2.99978256225585938E-003 -(PID.TID 0000.0001) Wall clock time: 3.98941040039062500E-002 +(PID.TID 0000.0001) User time: 2.6419639587402344E-002 +(PID.TID 0000.0001) System time: 7.3010921478271484E-003 +(PID.TID 0000.0001) Wall clock time: 0.19042611122131348 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 7.79876708984375000E-002 -(PID.TID 0000.0001) System time: 2.00009346008300781E-003 -(PID.TID 0000.0001) Wall clock time: 7.93850421905517578E-002 +(PID.TID 0000.0001) User time: 3.4042358398437500E-002 +(PID.TID 0000.0001) System time: 3.9149522781372070E-003 +(PID.TID 0000.0001) Wall clock time: 4.2850017547607422E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 7.59887695312500000E-002 -(PID.TID 0000.0001) System time: 9.99927520751953125E-004 -(PID.TID 0000.0001) Wall clock time: 7.73370265960693359E-002 +(PID.TID 0000.0001) User time: 3.2131195068359375E-002 +(PID.TID 0000.0001) System time: 5.9629678726196289E-003 +(PID.TID 0000.0001) Wall clock time: 7.3652982711791992E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 98.599010467529297 -(PID.TID 0000.0001) System time: 1.99968814849853516E-002 -(PID.TID 0000.0001) Wall clock time: 98.839504003524780 +(PID.TID 0000.0001) User time: 54.573253631591797 +(PID.TID 0000.0001) System time: 3.6859989166259766E-002 +(PID.TID 0000.0001) Wall clock time: 54.804107904434204 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -2498,9 +2948,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 17870 +(PID.TID 0000.0001) // No. barriers = 17956 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 17870 +(PID.TID 0000.0001) // Total barrier spins = 17956 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.90x40x15/results/output_tlm.bottomdrag.txt.gz b/verification/global_ocean.90x40x15/results/output_tlm.bottomdrag.txt.gz index 35b420c99e..551d871b0b 100644 Binary files a/verification/global_ocean.90x40x15/results/output_tlm.bottomdrag.txt.gz and b/verification/global_ocean.90x40x15/results/output_tlm.bottomdrag.txt.gz differ diff --git a/verification/global_ocean.90x40x15/results/output_tlm.kapgm.txt.gz b/verification/global_ocean.90x40x15/results/output_tlm.kapgm.txt.gz index f7a7ad1d4a..59c1d554f2 100644 Binary files a/verification/global_ocean.90x40x15/results/output_tlm.kapgm.txt.gz and b/verification/global_ocean.90x40x15/results/output_tlm.kapgm.txt.gz differ diff --git a/verification/global_ocean.90x40x15/results/output_tlm.kapredi.txt.gz b/verification/global_ocean.90x40x15/results/output_tlm.kapredi.txt.gz index b5307a8722..754f141acf 100644 Binary files a/verification/global_ocean.90x40x15/results/output_tlm.kapredi.txt.gz and b/verification/global_ocean.90x40x15/results/output_tlm.kapredi.txt.gz differ diff --git a/verification/global_ocean.90x40x15/results/output_tlm.txt.gz b/verification/global_ocean.90x40x15/results/output_tlm.txt.gz index f9882371bf..a7f1db92e3 100644 Binary files a/verification/global_ocean.90x40x15/results/output_tlm.txt.gz and b/verification/global_ocean.90x40x15/results/output_tlm.txt.gz differ diff --git a/verification/global_ocean.cs32x15/code/GGL90_OPTIONS.h b/verification/global_ocean.cs32x15/code/GGL90_OPTIONS.h new file mode 100644 index 0000000000..a6920dff3a --- /dev/null +++ b/verification/global_ocean.cs32x15/code/GGL90_OPTIONS.h @@ -0,0 +1,39 @@ +C *=============================================================* +C | GGL90_OPTIONS.h +C | o CPP options file for GGL90 package. +C *=============================================================* +C | Use this file for selecting options within the GGL90 +C | package. +C *=============================================================* + +#ifndef GGL90_OPTIONS_H +#define GGL90_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GGL90 +C Package-specific Options & Macros go here + +C Enable horizontal diffusion of TKE. +#undef ALLOW_GGL90_HORIZDIFF + +C Use horizontal averaging for viscosity and diffusivity as +C originally implemented in OPA. +#undef ALLOW_GGL90_SMOOTH + +C allow IDEMIX model +#define ALLOW_GGL90_IDEMIX +#ifdef ALLOW_GGL90_IDEMIX +C The cvmix version of idemix uses different regularisations for the +C Coriolis parameter, buoyancy frequency etc, when used in the denominator +# define GGL90_IDEMIX_CVMIX_VERSION +#endif + +C include Langmuir circulation parameterization +#undef ALLOW_GGL90_LANGMUIR + +C recover old bug prior to Jun 2023 +#undef GGL90_MISSING_HFAC_BUG + +#endif /* ALLOW_GGL90 */ +#endif /* GGL90_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code/SEAICE_OPTIONS.h b/verification/global_ocean.cs32x15/code/SEAICE_OPTIONS.h index 25d7cc5b31..6e9eed5559 100644 --- a/verification/global_ocean.cs32x15/code/SEAICE_OPTIONS.h +++ b/verification/global_ocean.cs32x15/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # define SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # undef SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #define SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #undef SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code/packages.conf b/verification/global_ocean.cs32x15/code/packages.conf index fa2e5c477a..9a99c349cd 100644 --- a/verification/global_ocean.cs32x15/code/packages.conf +++ b/verification/global_ocean.cs32x15/code/packages.conf @@ -2,6 +2,7 @@ exch2 gfd gmredi +ggl90 bulk_force exf # cal <- automatically turned on when compiling exf diff --git a/verification/global_ocean.cs32x15/code_ad/AUTODIFF_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..6df90eadad --- /dev/null +++ b/verification/global_ocean.cs32x15/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C let autodiff_init_varia reset variables to 0 to reproduce old bug +#undef ALLOW_AUTODIFF_INIT_OLD + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#define ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_ad/COST_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..41c6475da2 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_ad/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_ad/CPP_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/CPP_OPTIONS.h index d720f9552a..517798dfae 100644 --- a/verification/global_ocean.cs32x15/code_ad/CPP_OPTIONS.h +++ b/verification/global_ocean.cs32x15/code_ad/CPP_OPTIONS.h @@ -134,8 +134,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/hs94.1x64x5/code_oad/CTRL_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/CTRL_OPTIONS.h similarity index 79% rename from verification/hs94.1x64x5/code_oad/CTRL_OPTIONS.h rename to verification/global_ocean.cs32x15/code_ad/CTRL_OPTIONS.h index b469e187d8..25037dcf8f 100644 --- a/verification/hs94.1x64x5/code_oad/CTRL_OPTIONS.h +++ b/verification/global_ocean.cs32x15/code_ad/CTRL_OPTIONS.h @@ -29,6 +29,16 @@ C-- Package-specific Options & Macros go here #undef EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO +C >>> Other Control. +#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + C >>> Generic Control. #define ALLOW_GENARR2D_CONTROL #define ALLOW_GENARR3D_CONTROL @@ -38,6 +48,12 @@ C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/global_ocean.cs32x15/code_ad/CTRL_SIZE.h b/verification/global_ocean.cs32x15/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..b0df139b02 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_ad/ECCO_CPPOPTIONS.h b/verification/global_ocean.cs32x15/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index aab0c66702..0000000000 --- a/verification/global_ocean.cs32x15/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,128 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -C let autodiff_init_varia reset variables to 0 -#define ALLOW_AUTODIFF_INIT_OLD - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). - -#define ALLOW_AUTODIFF_TAMC -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -#define ALLOW_AUTODIFF_WHTAPEIO -#define AUTODIFF_USE_MDSFINDUNITS -#define ALLOW_PACKUNPACK_METHOD2 -#define AUTODIFF_USE_OLDSTORE_3D -#define AUTODIFF_USE_OLDSTORE_2D - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#define ALLOW_COST_TEST -#undef ALLOW_COST_TRACER -#undef ALLOW_COST_ATLANTIC_HEAT -#define ALLOW_COST_TSQUARED - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define EXCLUDE_CTRL_PACK -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#define ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL -#define ALLOW_DIFFKR_CONTROL -#undef ALLOW_KAPGM_CONTROL - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Bulk formulae related flags. -#define ALLOW_ATM_TEMP -#undef ALLOW_ATM_WIND -#define ALLOW_DOWNWARD_RADIATION -#ifdef ALLOW_ATM_TEMP -# define ALLOW_BULKFORMULAE -# undef ALLOW_BULK_LARGEYEAGER04 -#endif - -C- Other forcing fields -#define ALLOW_RUNOFF -#undef ALLOW_RUNOFTEMP -#undef ALLOW_SALTFLX - -C Use ocean_emissivity*lwdwon in lwFlux. This flag should be define -C unless to reproduce old results (obtained with inconsistent old code) -#ifdef ALLOW_DOWNWARD_RADIATION -# define EXF_LWDOWN_WITH_EMISSIVITY -#endif - -C Relaxation to monthly climatologies. -#define ALLOW_CLIMSST_RELAXATION -#define ALLOW_CLIMSSS_RELAXATION - -C Use spatial interpolation to interpolate -C forcing files from input grid to model grid. -#undef USE_EXF_INTERPOLATION - -#undef EXF_INTERP_USE_DYNALLOC -#if ( defined (EXF_INTERP_USE_DYNALLOC) & defined (USING_THREADS) ) -# define EXF_IREAD_USE_GLOBAL_POINTER -#endif - -C >>> No Open boundaries -#undef ALLOW_OBCSN_CONTROL -#undef ALLOW_OBCSS_CONTROL -#undef ALLOW_OBCSW_CONTROL -#undef ALLOW_OBCSE_CONTROL - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_ad/EXF_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..03b9c44820 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_ad/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#undef ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_ad/SEAICE_OPTIONS.h b/verification/global_ocean.cs32x15/code_ad/SEAICE_OPTIONS.h index f7dc36c8b4..8a3b7defc3 100644 --- a/verification/global_ocean.cs32x15/code_ad/SEAICE_OPTIONS.h +++ b/verification/global_ocean.cs32x15/code_ad/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # undef SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas -# undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is +# define SEAICE_ALLOW_BOTTOMDRAG + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, -C-- not recommended + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, +C not recommended #define SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_ad/SIZE.h b/verification/global_ocean.cs32x15/code_ad/SIZE.h index 32ba816a01..6462ffdcd6 100644 --- a/verification/global_ocean.cs32x15/code_ad/SIZE.h +++ b/verification/global_ocean.cs32x15/code_ad/SIZE.h @@ -67,7 +67,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.cs32x15/code_ad/SIZE.h_mpi b/verification/global_ocean.cs32x15/code_ad/SIZE.h_mpi index 0de0a4174a..afab33251b 100644 --- a/verification/global_ocean.cs32x15/code_ad/SIZE.h_mpi +++ b/verification/global_ocean.cs32x15/code_ad/SIZE.h_mpi @@ -67,7 +67,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_ocean.cs32x15/code_ad/tamc.h b/verification/global_ocean.cs32x15/code_ad/tamc.h index c54978c2f0..df63411981 100644 --- a/verification/global_ocean.cs32x15/code_ad/tamc.h +++ b/verification/global_ocean.cs32x15/code_ad/tamc.h @@ -1,126 +1,85 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 2 ) - integer nchklev_2 - parameter( nchklev_2 = 50 ) - integer nchklev_3 - parameter( nchklev_3 = 50 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 2 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 50 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 50 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 3 ) + PARAMETER( maxpass = 3 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 3 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey + PARAMETER( maxcube = 3 ) #ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter @@ -130,6 +89,7 @@ C (numItersMax >= cg2dMaxIters in data-file) PARAMETER ( numItersMax = 200 ) #endif -c ================================================================ -c END OF HEADER TAMC -c ================================================================ +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/global_ocean.cs32x15/code_tap/AUTODIFF_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..97d74f5c9a --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C let autodiff_init_varia reset variables to 0 to reproduce old bug +#undef ALLOW_AUTODIFF_INIT_OLD + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +#undef AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_tap/COST_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..41c6475da2 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_tap/CPP_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..517798dfae --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/CPP_OPTIONS.h @@ -0,0 +1,141 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#define ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#define ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#define ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#define INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#define ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#define NONLIN_FRSURF +#undef DISABLE_RSTAR_CODE +#define DISABLE_SIGMA_CODE + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_tap/CTRL_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..25037dcf8f --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,74 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Other Control. +#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_tap/CTRL_SIZE.h b/verification/global_ocean.cs32x15/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..b0df139b02 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_tap/DIAGNOSTICS_SIZE.h b/verification/global_ocean.cs32x15/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..e610f014e7 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,28 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numdiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numdiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numdiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numdiags = 40*Nr ) + PARAMETER( nRegions = 10 , sizRegMsk = 3 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_tap/DIAG_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/DIAG_OPTIONS.h new file mode 100644 index 0000000000..c9e8d9194e --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/DIAG_OPTIONS.h @@ -0,0 +1,25 @@ +#ifndef DIAG_OPTIONS_H +#define DIAG_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_DIAGNOSTICS +C Package-specific Options & Macros go here + +C allow to define specific regions and the corresponding mask ; +C used to perform regional statistics over a limited area +#define DIAGSTATS_REGION_MASK + +C allow to stop & restart at any time (i.e. not at a multiple of +C the diagnostics frequency) reading diagnostics storage arrays +C from pickup file. +C Note: Use with cautious since it does not work for all restart +C cases (e.g., changing data.diagnostics). +#undef DIAGNOSTICS_HAS_PICKUP + +#endif /* ALLOW_DIAGNOSTICS */ +#endif /* DIAG_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_tap/EXF_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/EXF_OPTIONS.h new file mode 100644 index 0000000000..03b9c44820 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#undef ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/OpenAD/code_oad/GMREDI_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/GMREDI_OPTIONS.h similarity index 100% rename from verification/OpenAD/code_oad/GMREDI_OPTIONS.h rename to verification/global_ocean.cs32x15/code_tap/GMREDI_OPTIONS.h diff --git a/verification/global_ocean.cs32x15/code_tap/SEAICE_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/SEAICE_OPTIONS.h new file mode 100644 index 0000000000..8a3b7defc3 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/SEAICE_OPTIONS.h @@ -0,0 +1,272 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +C *==========================================================* +C | SEAICE_OPTIONS.h +C | o CPP options file for sea ice package. +C *==========================================================* +C | Use this file for selecting options within the sea ice +C | package. +C *==========================================================* + +#ifdef ALLOW_SEAICE +C--- Package-specific Options & Macros go here + +C-- Write "text-plots" of certain fields in STDOUT for debugging. +#undef SEAICE_DEBUG + +C-- By default, the sea-ice package uses its own integrated bulk +C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over +C open-ocean. When this flag is set, these variables are computed +C in a separate external package, for example, pkg/exf, and then +C modified for sea-ice effects by pkg/seaice. +#define SEAICE_EXTERNAL_FLUXES + +C-- This CPP flag has been retired. The number of ice categories +C used to solve for seaice flux is now specified by run-time +C parameter SEAICE_multDim. +C Note: be aware of pickup_seaice.* compatibility issues when +C restarting a simulation with a different number of categories. +c#define SEAICE_MULTICATEGORY + +C-- run with sea Ice Thickness Distribution (ITD); +C set number of categories (nITD) in SEAICE_SIZE.h +#undef SEAICE_ITD + +C-- Since the missing sublimation term is now included +C this flag is needed for backward compatibility +#undef SEAICE_DISABLE_SUBLIM + +C-- Suspected missing term in coupled ocn-ice heat budget (to be confirmed) +#undef SEAICE_DISABLE_HEATCONSFIX + +C-- Default is constant seaice salinity (SEAICE_salt0); Define the following +C flag to consider (space & time) variable salinity: advected and forming +C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. +C- Note: SItracer also offers an alternative way to handle variable salinity. +#undef SEAICE_VARIABLE_SALINITY + +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). +C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice +C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. +#undef SEAICE_GREASE + +C-- Tracers of ice and/or ice cover. +#ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER +# define ALLOW_SITRACER +#else +# undef ALLOW_SITRACER +#endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). + +C-- Historically, the seaice model was discretized on a B-Grid. This +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. +#define SEAICE_CGRID + +#ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + +C enable advection of sea ice momentum +# undef SEAICE_ALLOW_MOM_ADVECTION + +C enable JFNK code by defining the following flag +# undef SEAICE_ALLOW_JFNK + +C enable Krylov code by defining the following flag +# undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + +C enable LSR to use global (multi-tile) tri-diagonal solver +# undef SEAICE_GLOBAL_3DIAG_SOLVER + +C enable EVP code by defining the following flag +# define SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C from below and above in seaice_evp: not necessary, and not recommended +# undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL +# endif /* SEAICE_ALLOW_EVP */ + +C smooth regularization (without max-function) of delta for +C better differentiability +# undef SEAICE_DELTA_SMOOTHREG + +C regularize zeta to zmax with a smooth tanh-function instead +C of a min(zeta,zmax). This improves convergence of iterative +C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP +# undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework +C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) +# undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings +C Use LSR vector code; not useful on non-vector machines, because it +C slows down convergence considerably, but the extra iterations are +C more than made up by the much faster code on vector machines. For +C the only regularly test vector machine these flags a specified +C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment +C them out here. +# undef SEAICE_VECTORIZE_LSR + +C Use zebra-method (alternate lines) for line-successive-relaxation +C This modification improves the convergence of the vector code +C dramatically, so that is may actually be useful in general, but +C that needs to be tested. Can be used without vectorization options. +# undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + +C Use parameterisation of grounding ice for a better representation +C of fastice in shallow seas +# define SEAICE_ALLOW_BOTTOMDRAG + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is +C set to the same value as it would be if there was no sea-ice. +C Define following CPP flag for B-grid ice-ocean stress coupling. +# define SEAICE_BICE_STRESS + +C- By default for B-grid dynamics solver surface tilt is obtained +C indirectly via geostrophic velocities. Define following CPP +C in order to use ETAN instead. +# define EXPLICIT_SSH_SLOPE + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. +C It is smoother and includes all metric terms, similar to C-grid solvers. +C It is here for completeness, but its usefulness is unclear. +# undef SEAICE_LSRBNEW + +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#undef SEAICE_CAP_ICELOAD + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, +C not recommended +#define SEAICE_ALLOW_CLIPVELS + +C- When set cap the sublimation latent heat flux in solve4temp according +C to the available amount of ice+snow. Otherwise this term is treated +C like all of the others -- residuals heat and fw stocks are passed to +C the ocean at the end of seaice_growth in a conservative manner. +C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. +#undef SEAICE_CAP_SUBLIM + +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + +C-- Enable free drift code +#define SEAICE_ALLOW_FREEDRIFT + +C-- pkg/seaice cost functions compile flags +C- Sea-ice volume (requires pkg/cost) +#undef ALLOW_COST_ICE +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ + +#endif /* ALLOW_SEAICE */ +#endif /* SEAICE_OPTIONS_H */ diff --git a/verification/global_ocean.cs32x15/code_tap/SIZE.h b/verification/global_ocean.cs32x15/code_tap/SIZE.h new file mode 100644 index 0000000000..6462ffdcd6 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/SIZE.h @@ -0,0 +1,69 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr +C-- Note: the 4 test-experiments (input, input.thsice, input.viscA4 and +C input.icedyn ) have different minimum Overlap-size requirement: +C input & input.thsice : work with Olx=Oly=2 (= absolute minimum size) ; +C input.viscA4 : needs at least Olx=Oly=3 (for biharmonic viscosity) ; +C input.icedyn : needs at least Olx=Oly=4 (CS-grid multidimensional Advect.) + PARAMETER ( + & sNx = 32, + & sNy = 16, + & OLx = 4, + & OLy = 4, + & nSx = 12, + & nSy = 1, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_ocean.cs32x15/code_tap/SIZE.h_mpi b/verification/global_ocean.cs32x15/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..afab33251b --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/SIZE.h_mpi @@ -0,0 +1,69 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr +C-- Note: the 4 test-experiments (input, input.thsice, input.viscA4 and +C input.icedyn ) have different minimum Overlap-size requirement: +C input & input.thsice : work with Olx=Oly=2 (= absolute minimum size) ; +C input.viscA4 : needs at least Olx=Oly=3 (for biharmonic viscosity) ; +C input.icedyn : needs at least Olx=Oly=4 (CS-grid multidimensional Advect.) + PARAMETER ( + & sNx = 32, + & sNy = 16, + & OLx = 4, + & OLy = 4, + & nSx = 3, + & nSy = 1, + & nPx = 4, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_ocean.cs32x15/code_tap/THSICE_OPTIONS.h b/verification/global_ocean.cs32x15/code_tap/THSICE_OPTIONS.h new file mode 100644 index 0000000000..3e27c35713 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/THSICE_OPTIONS.h @@ -0,0 +1,27 @@ +#ifndef THSICE_OPTIONS_H +#define THSICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_THSICE +C Package-specific Options & Macros go here + +C- use continuous power-law function for partition of energy between lateral +C melting/freezing and thinning/thickening ; otherwise, use step function. +#define THSICE_FRACEN_POWERLAW + +C- allow single grid-point debugging write to standard-output +#undef ALLOW_DBUG_THSICE + +C- only to check conservation +C (change content of ICE_qleft,fresh,salFx-T files) +#undef CHECK_ENERGY_CONSERV + +C CPP Macros go here + +#endif /* ALLOW_THSICE */ +#endif /* THSICE_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_ocean.cs32x15/code_tap/cost_test.F b/verification/global_ocean.cs32x15/code_tap/cost_test.F new file mode 100644 index 0000000000..d11a653e33 --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/cost_test.F @@ -0,0 +1,94 @@ +#include "COST_OPTIONS.h" + + subroutine cost_test( myThid ) +C *==========================================================* +C | subroutine cost_test +C | o this routine computes the cost function for the tiles +C | of this processor +C *==========================================================* +C | Notes +C *==========================================================* + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "DYNVARS.h" +#include "GRID.h" + +#include "cost.h" + +C == Routine arguments == +C myThid - Thread number for this instance of the routine. + integer myThid + +#ifdef ALLOW_COST_TEST +C == Local variables + integer bi, bj + _RL thetaRef + integer i, j, k + integer ig, jg + integer itlo,ithi + integer jtlo,jthi + _RL thetaLev(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + + jtlo = mybylo(mythid) + jthi = mybyhi(mythid) + itlo = mybxlo(mythid) + ithi = mybxhi(mythid) + + if ( useCubedSphereExchange) then + iLocOut = 7 + jLocOut = 28 + kLocOut = 1 + else + iLocOut = 80 + jLocOut = 30 + kLocOut = 1 + endif + + CALL READ_FLD_XYZ_RL( hydrogThetaFile, ' ', thetaLev, 0, myThid ) + +ce some reference temperature + thetaRef = 24.0 _d 0 + +C-- Calculate mask for tracer cells (0 => land, 1 => water) + k=1 + +C-- Calculate cost function on tile of this instance + do bj = jtlo,jthi + do bi = itlo,ithi + do j=1,sNy + jg = myYGlobalLo-1+(bj-1)*sNy+j + do i=1,sNx + ig = myXGlobalLo-1+(bi-1)*sNx+i + +#ifndef ALLOW_COST_TSQUARED + if ((ig .eq. iLocOut) .and. (jg .eq. jLocOut)) then + write(*,'(a,3(x,i4),a,4(x,i4))') + & 'COST ',ig,jg,kLocOut,' TILE ',i,j,bi,bj + objf_test(bi,bj) = theta(i,j,kLocOut,bi,bj) +cph( + print *, 'ph-cost ', ig, jg, kLocOut, + & theta(i,j,kLocOut,bi,bj) +cph) + endif +#else + do k=1,nr + if (maskC(i,j,k,bi,bj).NE.0.) then + objf_test(bi,bj) = objf_test(bi,bj) + + & (theta(i,j,k,bi,bj)-thetaLev(i,j,k,bi,bj))**2 + endif + enddo +#endif + + enddo + enddo + enddo + enddo + +#endif /* ALLOW_COST_TEST */ + + RETURN + END diff --git a/verification/global_ocean.cs32x15/code_tap/packages.conf b/verification/global_ocean.cs32x15/code_tap/packages.conf new file mode 100644 index 0000000000..745f6a760b --- /dev/null +++ b/verification/global_ocean.cs32x15/code_tap/packages.conf @@ -0,0 +1,12 @@ +#-- list of packages (or group of packages) to compile for this experiment: +exch2 +gfd -mom_fluxform +gmredi +exf +# cal <- automatically turned on when compiling exf +seaice +thsice +diagnostics + +tapenade +adjoint diff --git a/verification/global_ocean.cs32x15/input.icedyn/data.diagnostics b/verification/global_ocean.cs32x15/input.icedyn/data.diagnostics index e9ff60beba..980781351c 100644 --- a/verification/global_ocean.cs32x15/input.icedyn/data.diagnostics +++ b/verification/global_ocean.cs32x15/input.icedyn/data.diagnostics @@ -67,6 +67,15 @@ frequency(5) = 1555200000., averagingFreq(5) = 2592000., repeatCycle(5) = 12, + +#-- just to test small frequency in long simulations: + fields(1:1,6) = 'ETANSQ ', +# fileName(6) = 'check_Diag_aver', + frequency(6) = 1., + + fields(1:1,7) = 'RSURF ', +# fileName(7) = 'check_Diag_snap', + frequency(7) = -1., & #-------------------- @@ -107,5 +116,13 @@ stat_region(1:3,5) = 1, 3, 0, stat_fName(5) = 'thSIceStDiag', stat_freq(5) = 864000., + +#-- just to test small frequency in long simulations: + stat_fields(1:1,3) = 'ETANSQ ', +# stat_fName(3) = 'check_StD_aver', + stat_freq(3) = 1., + stat_fields(1:1,4) = 'RSURF ', +# stat_fName(4) = 'check_StD_snap', + stat_freq(4) = -1., & diff --git a/verification/global_ocean.cs32x15/input.icedyn/eedata.mth b/verification/global_ocean.cs32x15/input.icedyn/eedata.mth index fdd118934e..17d028dc21 100644 --- a/verification/global_ocean.cs32x15/input.icedyn/eedata.mth +++ b/verification/global_ocean.cs32x15/input.icedyn/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=2, diff --git a/verification/global_ocean.cs32x15/input.in_p/bathy_in_P.bin b/verification/global_ocean.cs32x15/input.in_p/bathy_in_P.bin new file mode 100644 index 0000000000..5b94b454b5 Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/bathy_in_P.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/data b/verification/global_ocean.cs32x15/input.in_p/data new file mode 100644 index 0000000000..46d3b9bf3c --- /dev/null +++ b/verification/global_ocean.cs32x15/input.in_p/data @@ -0,0 +1,108 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef=15*20., + sRef=15*35., + viscAh = 3.E5, +# background dissipation will be taken care of by IDEMIX +# so we turn it off here +#viscAr = 1.030905162225000e+05, +#viscAr = 1.E-3, +#diffKrT= 3.092715486675000e+03, +#diffKrT= 3.E-5, +#diffKrS= 3.092715486675000e+03, +#diffKrS= 3.E-5, +# should use this with ggl90 for avoiding local instabilities + ivdc_kappa= 1.030905162225000e+08, +#ivdc_kappa= 1., + implicitDiffusion=.TRUE., + implicitViscosity=.TRUE., + gravity=9.81, + rhoConst=1035., + rhoConstFresh=1000., + buoyancyRelation='OCEANICP', + integr_GeoPot=1, + eosType='JMD95P', + staggerTimeStep=.TRUE., + vectorInvariantMomentum=.TRUE., + implicitFreeSurface=.TRUE., + exactConserv=.TRUE., + select_rStar=2, + nonlinFreeSurf=4, + hFacInf=0.2, + hFacSup=2.0, + useRealFreshWaterFlux=.TRUE., + hFacMin=.1, +# 20 m + hFacMinDr=203067.0, +#- to check that it has no impact: + doResetHFactors=.TRUE., +#tempAdvScheme=77, +#saltAdvScheme=77, + readBinaryPrec=64, + writeBinaryPrec=64, + useSingleCpuIO=.TRUE., + debugLevel = 2, + plotLevel=0, + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=200, + cg2dTargetResidual=1.E-9, +#cg2dTargetResWunit=1.E-14, + & + +# Time stepping parameters + &PARM03 +#nIter0=72000, + nIter0=0, + nTimeSteps=10, +#endTime=31104000., + deltaTMom =1200., + deltaTtracer=86400., + deltaTFreeSurf=86400., + deltaTClock =86400., + abEps = 0.1, + forcing_In_AB=.FALSE., +#pickupStrictlyMatch=.FALSE., + pChkptFreq =3110400000., + chkptFreq = 155520000., +#tave_lastIter=0., +#taveFreq = 2592000., +#dumpFreq = 864000., + monitorFreq = 15552000., + periodicExternalForcing=.TRUE., + externForcingPeriod=2592000., + externForcingCycle=31104000., +# 6 months restoring timescale for temperature +#tauThetaClimRelax = 15552000., +# 2 months restoring timescale for tsalinity +#tauSaltClimRelax = 5184000., +#latBandClimRelax=60., + monitorFreq =1., + & + +# Gridding parameters + &PARM04 + usingCurvilinearGrid=.TRUE., + horizGridFile='grid_cs32', +# radius_fromHorizGrid=64676839500., + radius_fromHorizGrid=6370.E3, + delR = 7105181.631178, 6571679.735642, 6042512.265968, + 5517067.241693, 4995190.435925, 4476390.802366, + 3960087.645808, 3446365.011284, 2934956.237702, + 2425564.880893, 1917984.297155, 1411815.607161, + 1007433.323163, 704400.618506, 502655.686646, + & + +# Input datasets + &PARM05 + bathyFile ='bathy_in_P.bin', + geoPotAnomFile ='geopotanom.bin', + hydrogThetaFile='lev_T_cs_flip15.bin', + hydrogSaltFile ='lev_S_cs_flip15.bin', + & diff --git a/verification/global_ocean.cs32x15/input.in_p/data.diagnostics b/verification/global_ocean.cs32x15/input.in_p/data.diagnostics new file mode 100644 index 0000000000..bbe9c77425 --- /dev/null +++ b/verification/global_ocean.cs32x15/input.in_p/data.diagnostics @@ -0,0 +1,138 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., +# dumpAtLast = .TRUE., +#-- + fields(1:11,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'oceTAUX ','oceTAUY ', + 'oceQnet ','oceSflux','oceFWflx','MXLDEPTH', +# 'surForcT','surForcS','TFLUX ','SFLUX ','oceFreez', +# 'TRELAX ','SRELAX ', +# 'GM_VisbK', + fileName(1) = 'surfDiag', + frequency(1) = 15552000., +# frequency(1) = 1., + fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'VVELMASS','UVELMASS','WVELSQ ', + 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', + 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +# do not specify levels => all levels are selected + fileName(2) = 'dynDiag', + frequency(2) = 15552000., + + fields(1:7,3) = 'DRHODR ','RHOAnoma', + 'GGL90TKE','GGL90Kr ','GGL90Lmx', + 'IDEMIX_E','IDEMIX_K', +# 'GM_PsiX ','GM_PsiY ', +# 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +# 'GM_Kux ','GM_Kvy ', +# 'GM_Kuz ','GM_Kvz ', +#- disable this output list by commenting out the file name + fileName(3) = 'oceDiag', + frequency(3) = 15552000., + + fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', + 'DIFx_TH ','DIFy_TH ','DFrE_TH ', + 'DFrI_TH ', +# 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 1728000., + + fields(1:5,5) = 'SIheff ','SIarea ','SIhsnow ', + 'SIuice ','SIvice ', + fileName(5) = 'seaiceDiag', + frequency(5) = 15552000., +# frequency(5) = 1., +#averagingFreq(5) = 2592000., +# repeatCycle(5) = 12, +#--- + frequency(6) = 86400.0, + fields(1:12,6) ='UVELMASS','VVELMASS', + 'ADVx_TH ','ADVy_TH ','DFxE_TH ','DFyE_TH ', + 'ADVx_SLT','ADVy_SLT','DFxE_SLT','DFyE_SLT', + 'AB_gT ','AB_gS ', +# filename(6) = 'budg2d_hflux_set2', + fileFlags(6) = 'DI ', +#--- + frequency(7) = -86400.0, + fields(1:3,7) = 'ETAN ','SIheff ','SIhsnow ', +# filename(7) = 'budg2d_snap_set1', + timePhase(7)= 0., + fileFlags(7) = 'D ', +#--- + frequency(8) = -86400.0, + fields(1:2,8) = 'THETA ','SALT ', +# filename(8) = 'budg2d_snap_set2', + timePhase(8)= 0., + fileFlags(8) = 'DI ', +#--- + frequency(9) = 86400.0, + frequency(9) = 1.0, + fields(1:16,9) = 'oceFWflx','SIatmFW ','TFLUX ','SItflux ','SFLUX ', + 'SRELAX ','TRELAX ','oceSflux','oceQnet ','SIatmQnt','oceQsw ', +# 'WTHMASS ','WSLTMASS','SIaaflux','SIsnPrcp','SIacSubl', + 'EXFlwdn ','EXFswdn ','EXFlwnet','EXFhs ','EXFhl ', + levels(1,9) = 1., +# filename(9) = 'budg2d_zflux_set1', + fileFlags(9) = 'D ', +#--- + frequency(10) = 86400.0, + fields(1:8,10) ='ADVxHEFF','ADVyHEFF','DFxEHEFF','DFyEHEFF', + 'ADVxSNOW','ADVySNOW','DFxESNOW','DFyESNOW', +# filename(10) = 'budg2d_hflux_set1', + fileFlags(10) = 'D ', + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +#- regional mask: 3 lat. band: 1 : y <= -24 ; 2 : -241e-15: + rhoInSitu = jmd95.dens(s,t,p0/grho)*mskz + # save old pressure + dp = np.copy(p0) + # compute new pressure + pf[0,...] = 0. + for k in range(nr): + dpk = dz[k,...]*gravity*rhoInSitu[k,...] + p0[k,...] = (pf[k,...] + 0.5*dpk)*mskz[k,...] + pf[k+1,...] = (p0[k,...] + 0.5*dpk)*mskz[k,...] + + # check convergence + dp = dp-p0 + resid = np.sqrt((dp**2).sum()) + print('hydrostatic pressure: resdiual = %e, '%np.sqrt((dp**2).sum())) + + print() + return p0, pf, rhoInSitu + +gravity = 9.81 +rhoConst= 1035. +grho=gravity*rhoConst +nr=15 +nn=32 +ny=nn +nx=6*nn + +# from now on we assume that ./testreport has been run for this experiment +# and that we have output available in ../tr_run.seaice +# bathymetry +prec = 'float64' +#b=readfield('../input/bathy_Hmin50.bin',[nn,nn*6],prec) +b= - mit.rdmds('../tr_run.seaice/Depth') +writefield('bathy_Hmin50.bin',-b*grho) + +# hydrography +t=readfield('../input/lev_T_cs_15k.bin',[nr,nn,nn*6],prec) +s=readfield('../input/lev_S_cs_15k.bin',[nr,nn,nn*6],prec) +writefield('lev_T_cs_15k.bin',t[::-1,:,:]) +writefield('lev_S_cs_15k.bin',s[::-1,:,:]) + +hfz = mit.rdmds('../tr_run.seaice/hFacC') +rac = mit.rdmds('../tr_run.seaice/RAC') +xg = mit.rdmds('../tr_run.seaice/XG') +yg = mit.rdmds('../tr_run.seaice/YG') +mskz = np.copy(hfz) +mskz[mskz!=0] = 1. +# create geopotential anomaly file: +delz = np.asarray([50., 70., 100., 140., 190., + 240., 290., 340., 390., 440., + 490., 540., 590., 640., 690.]) +delp = delz*grho +# # this is from "data", but it is unclear where these numbers come from +# delp = np.asarray([7103300.720021, 6570548.440790, 6041670.010249, +# 5516436.666057, 4994602.034410, 4475903.435290, +# 3960063.245801, 3446790.312651, 2935781.405664, +# 2426722.705046, 1919291.315988, 1413156.804970, +# 1008846.750166, 705919.025481, 504089.693499])[::-1] + +# integrate initial fields vertically minus reference potential +pf0 = np.hstack([0,np.cumsum(delp)]) +pc0 = 0.5*(pf0[:-1]+pf0[1:]) +pc3d = np.tile(pc0.reshape((nr,1,1)),(1,ny,nx))*mskz +dz3d = np.tile(delz.reshape((nr,1,1)),(1,ny,nx)) +# first guess of hydrostatic pressure at center-points based on delp +# pf is the hydrostatic pressure at interfaces (w-points) +pc = np.copy(pc3d) +pc,pf,rhoInSitu = calc_hydrostatic_pressure(s,t,pc,dz3d) + +# the new pressure also implies different delp, here computed as an average +# over the model domain +pm = np.zeros((nr,)) +tm = np.zeros((nr,)) +sm = np.zeros((nr,)) +rhom = np.zeros((nr,)) +for k in range(nr): + racz = rac*mskz[k,:,:] + pm[k] = (pc[k,:,:]*racz).sum()/racz.sum() + tm[k] = (t[k,:,:]*racz).sum()/racz.sum() + sm[k] = (s[k,:,:]*racz).sum()/racz.sum() + rhom[k] = (rhoInSitu[k,:,:]*racz).sum()/racz.sum() + +# hydrostatic pressure from averaged temperatuer and salinity profiles +pmm = np.copy(pm) +pmm,pff,rr = calc_hydrostatic_pressure(sm,tm,pmm,delz) +# this is very similar to diff(pfm), see below +dp = np.diff(pff) +print('hydrostatic pressure layer thickness from averaged hydrography:') +print(' delR = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +# averaged pressure at interfaces to compute delP +pfm = np.zeros((nr+1,)) +for k in range(nr): + racz = rac*mskz[k,:,:] + pfm[k] = (pf[k,:,:]*racz).sum()/racz.sum() + +pfm[nr] = (pf[nr,:,:]*racz).sum()/racz.sum() +dp = np.diff(pfm) + +print('hydrostatic pressure layer thickness from averaged pressure:') +print(' delR = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +# now we would like to compute delRc (distance between c-points) +dp = np.zeros((nr,)) +dp[0] = pm[0] # assuming zero surface pressure +dp[1:] = pm[1:]-pm[:-1] + +print(' delRc = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +dp3d = np.tile(dp.reshape((nr,1,1)),(1,ny,nx)) +# this is the correct way of computing the geopotential anomaly +# (if integr_geoPot = 1) +recip_rho = 1./sqinf(rhoInSitu) +geopotanom = -((recip_rho - 1/rhoConst)*hfz*dp3d).sum(axis=0) +# this is equivalent +geopotanom1= b/rhoConst-(recip_rho*hfz*dp3d).sum(axis=0) +# these are approximation that are not quite accurate +geopotanom2= ((rhoInSitu - rhoConst)*hfz*dz3d).sum(axis=0)*gravity/rhoConst +geopotanom3= -((recip_rho - 1/rhoConst)*grho*hfz*dz3d).sum(axis=0) + +# the correct version +writefield('geopotanom.bin',geopotanom) + + +# # pickup (this is tricky) +# p = readfield('../input/pickup.0000072000',[nr*8+3,nn,nn*6],prec) + +# nflds=8 +# p3d = np.copy(p[:nflds*nr,:,:]) +# for k in range(nflds): +# pp = p3d[(k-1)*nr:k*nr,:,:] +# p[(k-1)*nr:k*nr] = pp[::-1,:,:] + +# writefield('pickup.0000072000',p) + +# plot field +#plt.clf() +#mit.cs.pcol(xg,yg,geopotanom) +#plt.colorbar(orientation='horizontal') +#plt.show() diff --git a/verification/global_ocean.cs32x15/input.in_p/geopotanom.bin b/verification/global_ocean.cs32x15/input.in_p/geopotanom.bin new file mode 100644 index 0000000000..10940caadc Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/geopotanom.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/idemix_tidal_forcing.192x32.bin b/verification/global_ocean.cs32x15/input.in_p/idemix_tidal_forcing.192x32.bin new file mode 100644 index 0000000000..0e08efc17b Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/idemix_tidal_forcing.192x32.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/idemix_wind_forcing.192x32.bin b/verification/global_ocean.cs32x15/input.in_p/idemix_wind_forcing.192x32.bin new file mode 100644 index 0000000000..5663df48ef Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/idemix_wind_forcing.192x32.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/lev_S_cs_flip15.bin b/verification/global_ocean.cs32x15/input.in_p/lev_S_cs_flip15.bin new file mode 100644 index 0000000000..63feacdd07 Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/lev_S_cs_flip15.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/lev_T_cs_flip15.bin b/verification/global_ocean.cs32x15/input.in_p/lev_T_cs_flip15.bin new file mode 100644 index 0000000000..3cccdb1194 Binary files /dev/null and b/verification/global_ocean.cs32x15/input.in_p/lev_T_cs_flip15.bin differ diff --git a/verification/global_ocean.cs32x15/input.in_p/prepare_run b/verification/global_ocean.cs32x15/input.in_p/prepare_run new file mode 100755 index 0000000000..4cea79a381 --- /dev/null +++ b/verification/global_ocean.cs32x15/input.in_p/prepare_run @@ -0,0 +1,49 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take files: +fileList=`(cd ../input.icedyn ; ls -1 *.bin)` + +#- from this dir: +fromDir="../input.icedyn" + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- in order to save disc space, take files: +fileList=`(cd ../input.seaice ; ls -1 *.bin data.*)` + +#- from this dir: +fromDir="../input.seaice" + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_ocean.cs32x15/input.in_p/tr_checklist b/verification/global_ocean.cs32x15/input.in_p/tr_checklist new file mode 100644 index 0000000000..0c6a28a90b --- /dev/null +++ b/verification/global_ocean.cs32x15/input.in_p/tr_checklist @@ -0,0 +1 @@ +PS PS T+ S+ U+ V+ aSI+ hSI+ diff --git a/verification/global_ocean.cs32x15/input.seaice/eedata b/verification/global_ocean.cs32x15/input.seaice/eedata deleted file mode 100644 index 3348c0a8d1..0000000000 --- a/verification/global_ocean.cs32x15/input.seaice/eedata +++ /dev/null @@ -1,12 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - useCubedSphereExchange=.TRUE., - nTx=1, - nTy=1, - & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/global_ocean.cs32x15/input.seaice/eedata.mth b/verification/global_ocean.cs32x15/input.seaice/eedata.mth index fdd118934e..17d028dc21 100644 --- a/verification/global_ocean.cs32x15/input.seaice/eedata.mth +++ b/verification/global_ocean.cs32x15/input.seaice/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=2, diff --git a/verification/global_ocean.cs32x15/input.thsice/eedata.mth b/verification/global_ocean.cs32x15/input.thsice/eedata.mth index fdd118934e..17d028dc21 100644 --- a/verification/global_ocean.cs32x15/input.thsice/eedata.mth +++ b/verification/global_ocean.cs32x15/input.thsice/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=2, diff --git a/verification/global_ocean.cs32x15/input.viscA4/eedata.mth b/verification/global_ocean.cs32x15/input.viscA4/eedata.mth index fdd118934e..17d028dc21 100644 --- a/verification/global_ocean.cs32x15/input.viscA4/eedata.mth +++ b/verification/global_ocean.cs32x15/input.viscA4/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=2, diff --git a/verification/global_ocean.cs32x15/input/eedata b/verification/global_ocean.cs32x15/input/eedata index 3348c0a8d1..0b870d3ee9 100644 --- a/verification/global_ocean.cs32x15/input/eedata +++ b/verification/global_ocean.cs32x15/input/eedata @@ -1,12 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=1, nTy=1, & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/global_ocean.cs32x15/input/eedata.mth b/verification/global_ocean.cs32x15/input/eedata.mth index fdd118934e..17d028dc21 100644 --- a/verification/global_ocean.cs32x15/input/eedata.mth +++ b/verification/global_ocean.cs32x15/input/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=2, diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data b/verification/global_ocean.cs32x15/input_ad.seaice/data index a8f178c621..6b6dcfa506 100644 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data +++ b/verification/global_ocean.cs32x15/input_ad.seaice/data @@ -26,8 +26,8 @@ staggerTimeStep=.TRUE., vectorInvariantMomentum=.TRUE., implicitFreeSurface=.TRUE., - tempAdvScheme=30, - saltAdvScheme=30, + tempAdvScheme=33, + saltAdvScheme=33, exactConserv=.TRUE., select_rStar=2, nonlinFreeSurf=4, diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.autodiff b/verification/global_ocean.cs32x15/input_ad.seaice/data.autodiff new file mode 100644 index 0000000000..1d13e61965 --- /dev/null +++ b/verification/global_ocean.cs32x15/input_ad.seaice/data.autodiff @@ -0,0 +1,9 @@ +# ========================= +# pkg AUTODIFF parameters : +# ========================= +# useApproxAdvectionInAdMode :: for advection scheme 33, use advection scheme 30 +# in adjoint for stabilization (def=.FALSE.) +# + &AUTODIFF_PARM01 + useApproxAdvectionInAdMode = .TRUE., + & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.cost b/verification/global_ocean.cs32x15/input_ad.seaice/data.cost deleted file mode 100644 index 7204cbebf9..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.cost +++ /dev/null @@ -1,10 +0,0 @@ -# -# -# ****************** -# cost function -# ****************** - &COST_NML -#revert to default 1 month -# lastinterval=7776000., - mult_test=1., - & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.ctrl b/verification/global_ocean.cs32x15/input_ad.seaice/data.ctrl deleted file mode 100644 index 74ac1da45d..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.ctrl +++ /dev/null @@ -1,75 +0,0 @@ -# -# -# ********************* -# ECCO controlvariables -# ********************* - &CTRL_NML - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', -# - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', -# - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', -# - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', -# - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', -# - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', -# - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', -# - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', -# - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', -# - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', - & -# -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES - & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.diagnostics b/verification/global_ocean.cs32x15/input_ad.seaice/data.diagnostics new file mode 100644 index 0000000000..04102301de --- /dev/null +++ b/verification/global_ocean.cs32x15/input_ad.seaice/data.diagnostics @@ -0,0 +1,94 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., +#-- + fields(1:12,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','oceFreez', + 'TRELAX ','SRELAX ', + levels(1,1) = 1., + fileName(1) = 'surfDiag', + frequency(1) = 432000., + + fields(1:9,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', + 'VVELMASS','UVELMASS','WVELSQ ', + 'THETA ','SALT ', +# do not specify levels => all levels are selected + fileName(2) = 'dynDiag', + frequency(2) = 432000., + +# fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', +# 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +# levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +# fileName(3) = 'oceDiag', +# frequency(3) = 864000., + + fields(1:5,3) = 'ADJuvel ','ADJvvel ','ADJwvel ', + 'ADJtheta','ADJsalt ', + fileName(3) = 'adjDiag', +# frequency(3) = 311040000., + frequency(3) = 432000., + + fields(1:5,4) = 'ADJetan ','ADJqnet ','ADJempmr', + 'ADJtaux ','ADJtauy ', + fileName(4) = 'adjDiagSurf', +# frequency(4) = 311040000., + frequency(4) = 432000., + + fields(1:5,5) = 'ADJheff ','ADJarea ','ADJhsnow', + 'ADJuice ','ADJvice ', + fileName(5) = 'adjDiagSeaice', +# frequency(5) = 311040000., + frequency(5) = 432000., + + fields(1:13,6) = 'ADJustrs','ADJvstrs','ADJhflux', + 'ADJsflux','ADJatemp','ADJpreci', + 'ADJroff ','ADJswdn ','ADJlwdn ', + 'ADJuwind','ADJvwind','ADJclsst', + 'ADJclsss' + fileName(6) = 'adjDiagExf', +# frequency(6) = 311040000., + frequency(6) = 432000., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +# an example just to check the agreement with MONITOR output: + stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = -172800., + stat_phase(1) = 0., + & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.gmredi b/verification/global_ocean.cs32x15/input_ad.seaice/data.gmredi deleted file mode 100644 index 121c510089..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.gmredi +++ /dev/null @@ -1,34 +0,0 @@ -# GM+Redi package parameters: -# GM_Small_Number :: epsilon used in computing the slope -# GM_slopeSqCutoff :: slope^2 cut-off value - -#-from MOM : -# GM_background_K: G & Mc.W diffusion coefficient -# GM_maxSlope : max slope of isopycnals -# GM_Scrit : transition for scaling diffusion coefficient -# GM_Sd : half width scaling for diffusion coefficient -# GM_taper_scheme: slope clipping or one of the tapering schemes -# GM_Kmin_horiz : horizontal diffusion minimum value - -#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") -# GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) -# GM_AdvForm : turn on GM Advective form (default=Skew flux form) - - &GM_PARM01 - GM_Small_Number = 1.D-20, - GM_slopeSqCutoff = 1.D+08, - GM_AdvForm = .FALSE., - GM_background_K = 1.D+3, - GM_taper_scheme = 'dm95', - GM_maxSlope = 1.D-2, - GM_Kmin_horiz = 50., - GM_Scrit = 4.D-3, - GM_Sd = 1.D-3, -# GM_Visbeck_alpha = 1.5D-2, - GM_Visbeck_alpha = 0., - GM_Visbeck_length = 2.D+5, - GM_Visbeck_depth = 1.D+3, - GM_Visbeck_maxval_K= 2.5D+3, - & - - diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.grdchk b/verification/global_ocean.cs32x15/input_ad.seaice/data.grdchk deleted file mode 100644 index 8031f76551..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.grdchk +++ /dev/null @@ -1,13 +0,0 @@ -# ******************* -# ECCO gradient check -# ******************* - &GRDCHK_NML - grdchk_eps = 1.d-2, -# iglopos = 6, -# jglopos = 17, -# kglopos = 1, - nbeg = 1, - nstep = 1, - nend = 4, - grdchkvarindex = 1, - & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.optim b/verification/global_ocean.cs32x15/input_ad.seaice/data.optim deleted file mode 100644 index 46dcb14fcd..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.optim +++ /dev/null @@ -1,3 +0,0 @@ - &OPTIM - optimcycle=0, - / diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.pkg b/verification/global_ocean.cs32x15/input_ad.seaice/data.pkg index a632c70a9c..99157e026e 100644 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.pkg +++ b/verification/global_ocean.cs32x15/input_ad.seaice/data.pkg @@ -5,7 +5,7 @@ useCAL = .TRUE., useTHSICE = .FALSE., useSEAICE = .TRUE., -#useDiagnostics=.TRUE., + useDiagnostics=.TRUE., #useMNC=.TRUE., useGrdchk=.TRUE., & diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/data.seaice b/verification/global_ocean.cs32x15/input_ad.seaice/data.seaice index 07e35e6a64..8f9f4b2f99 100644 --- a/verification/global_ocean.cs32x15/input_ad.seaice/data.seaice +++ b/verification/global_ocean.cs32x15/input_ad.seaice/data.seaice @@ -11,7 +11,7 @@ SEAICE_snowThick = 0., # SEAICE_salt0 = 4., - SEAICEadvScheme = 30, + SEAICEadvScheme = 33, SEAICE_areaLossFormula=2, SEAICE_mcPheePiston = 0.0005787037037037037, #SEAICE_monFreq = 2592000., diff --git a/verification/global_ocean.cs32x15/input_ad.seaice/eedata b/verification/global_ocean.cs32x15/input_ad.seaice/eedata deleted file mode 100644 index 3348c0a8d1..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.seaice/eedata +++ /dev/null @@ -1,12 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - useCubedSphereExchange=.TRUE., - nTx=1, - nTy=1, - & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/global_ocean.cs32x15/input_ad.thsice/data.cost b/verification/global_ocean.cs32x15/input_ad.thsice/data.cost deleted file mode 100644 index 7204cbebf9..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.thsice/data.cost +++ /dev/null @@ -1,10 +0,0 @@ -# -# -# ****************** -# cost function -# ****************** - &COST_NML -#revert to default 1 month -# lastinterval=7776000., - mult_test=1., - & diff --git a/verification/global_ocean.cs32x15/input_ad.thsice/data.ctrl b/verification/global_ocean.cs32x15/input_ad.thsice/data.ctrl index 74ac1da45d..d1dbcb69d6 100644 --- a/verification/global_ocean.cs32x15/input_ad.thsice/data.ctrl +++ b/verification/global_ocean.cs32x15/input_ad.thsice/data.ctrl @@ -1,75 +1,73 @@ +# This is a somewhat untypical namelist file for the ctrl package. It is +# meant to illustrate the difference between the old method of declaring +# control parameters (active when ctrlUseGen=.FALSE.) and the new method with +# the generic control variables (active when ctrlUseGen=.TRUE.). This +# experiment is special because it enables both old and new method at compile +# time --- something that is possible for most, but not all combinations of +# control variables --- and therefore it is possible so switch between the +# two methods by choosing the appropriate runtime parameters. Both methods +# do the same thing for xx_theta, xx_salt, and xx_diffkr. # +# - CTRL_NML contains general parameter and the names of the control variable +# file names on disk for the old method. These names are really only the +# default values and for convenience they are associated with the +# corresponding CPP fags that need to be set. Setting the CPP flags is really +# the old (deprecated) way of defining which control parameters are used. The +# CPP flags of this experiment only define control parameters for the first +# timestep, so that any startdate/period are not used in this example. The +# behavior cannot be reproduced with the generic control variables method. # -# ********************* -# ECCO controlvariables -# ********************* - &CTRL_NML - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', +# - CTRL_NML_GENARR contains the names of the control variable files (and +# control variables) for the generic control variable method. These names are +# predefined, but they can be choose at runtime. See the documentations, +# chapter 10 for details. The control variables are actually turned on by +# specifying non-zero weights files! The surface forcing control variables +# are for mean surface values (applied at every time step) and so they are +# different from the variables xx_tauu, xx_tauv, xx_sfl, and xx_hfl. # - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', +# ********************** +# ECCO control variables +# ********************** + &CTRL_NML + & # - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & # - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., # - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', +# not clear why this to be commented out, +# but the reference results have no bounds applied +#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., # - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', + xx_genarr3d_file(3) = 'xx_ptr', + xx_genarr3d_weight(3) = 'ones_64b.bin', # - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', + xx_genarr3d_file(4) = 'xx_diffkr', + xx_genarr3d_weight(4) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., # - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', + xx_gentim2d_file(1) = 'xx_qnet', + xx_gentim2d_weight(1) = 'ones_64b.bin', # - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', + xx_gentim2d_file(2) = 'xx_empmr', + xx_gentim2d_weight(2) = 'ones_64b.bin', # - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', + xx_gentim2d_file(3) = 'xx_fu', + xx_gentim2d_weight(3) = 'ones_64b.bin', # - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', - & + xx_gentim2d_file(4) = 'xx_fv', + xx_gentim2d_weight(4) = 'ones_64b.bin', # -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES & diff --git a/verification/global_ocean.cs32x15/input_ad.thsice/data.grdchk b/verification/global_ocean.cs32x15/input_ad.thsice/data.grdchk index 8031f76551..2dc0bbecb5 100644 --- a/verification/global_ocean.cs32x15/input_ad.thsice/data.grdchk +++ b/verification/global_ocean.cs32x15/input_ad.thsice/data.grdchk @@ -9,5 +9,7 @@ nbeg = 1, nstep = 1, nend = 4, - grdchkvarindex = 1, +# this is xx_theta +#grdchkvarindex = 1, + grdchkvarindex =201, & diff --git a/verification/global_ocean.cs32x15/input_ad.thsice/data.optim b/verification/global_ocean.cs32x15/input_ad.thsice/data.optim deleted file mode 100644 index 46dcb14fcd..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.thsice/data.optim +++ /dev/null @@ -1,3 +0,0 @@ - &OPTIM - optimcycle=0, - / diff --git a/verification/global_ocean.cs32x15/input_ad.thsice/eedata b/verification/global_ocean.cs32x15/input_ad.thsice/eedata deleted file mode 100644 index 3348c0a8d1..0000000000 --- a/verification/global_ocean.cs32x15/input_ad.thsice/eedata +++ /dev/null @@ -1,12 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - useCubedSphereExchange=.TRUE., - nTx=1, - nTy=1, - & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). diff --git a/verification/global_ocean.cs32x15/input_ad/data.ctrl b/verification/global_ocean.cs32x15/input_ad/data.ctrl index 74ac1da45d..92ef89a469 100644 --- a/verification/global_ocean.cs32x15/input_ad/data.ctrl +++ b/verification/global_ocean.cs32x15/input_ad/data.ctrl @@ -4,72 +4,44 @@ # ECCO controlvariables # ********************* &CTRL_NML - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', + & # - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & # - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., # - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', +# not clear why I have to comment this out, but the reference results have no bounds applied +#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., # - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', + xx_genarr3d_file(3) = 'xx_ptr1', + xx_genarr3d_weight(3) = 'ones_64b.bin', # - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', + xx_genarr3d_file(4) = 'xx_diffkr', + xx_genarr3d_weight(4) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., # - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', + xx_gentim2d_file(1) = 'xx_qnet', + xx_gentim2d_weight(1) = 'ones_64b.bin', # - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', + xx_gentim2d_file(2) = 'xx_empmr', + xx_gentim2d_weight(2) = 'ones_64b.bin', # - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', + xx_gentim2d_file(3) = 'xx_fu', + xx_gentim2d_weight(3) = 'ones_64b.bin', # - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', - & + xx_gentim2d_file(4) = 'xx_fv', + xx_gentim2d_weight(4) = 'ones_64b.bin', # -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES & diff --git a/verification/global_ocean.cs32x15/input_ad/data.diagnostics b/verification/global_ocean.cs32x15/input_ad/data.diagnostics index dc088b72f6..2d150ce7c5 100644 --- a/verification/global_ocean.cs32x15/input_ad/data.diagnostics +++ b/verification/global_ocean.cs32x15/input_ad/data.diagnostics @@ -45,6 +45,12 @@ fileName(3) = 'adjDiag', # frequency(3) = 311040000., frequency(3) = 432000., + + fields(1:5,4) = 'ADJetan ','ADJqnet ','ADJempmr', + 'ADJtaux ','ADJtauy ', + fileName(4) = 'adjDiagSurf', +# frequency(4) = 311040000., + frequency(4) = 432000., & #-------------------- @@ -71,4 +77,3 @@ stat_freq(1) = -172800., stat_phase(1) = 0., & - diff --git a/verification/global_ocean.cs32x15/input_ad/data.grdchk b/verification/global_ocean.cs32x15/input_ad/data.grdchk index 8031f76551..2dc0bbecb5 100644 --- a/verification/global_ocean.cs32x15/input_ad/data.grdchk +++ b/verification/global_ocean.cs32x15/input_ad/data.grdchk @@ -9,5 +9,7 @@ nbeg = 1, nstep = 1, nend = 4, - grdchkvarindex = 1, +# this is xx_theta +#grdchkvarindex = 1, + grdchkvarindex =201, & diff --git a/verification/global_ocean.cs32x15/input_ad/eedata b/verification/global_ocean.cs32x15/input_ad/eedata index 3348c0a8d1..0b870d3ee9 100644 --- a/verification/global_ocean.cs32x15/input_ad/eedata +++ b/verification/global_ocean.cs32x15/input_ad/eedata @@ -1,12 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS useCubedSphereExchange=.TRUE., nTx=1, nTy=1, & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/global_ocean.cs32x15/input_ad/genweights.py b/verification/global_ocean.cs32x15/input_ad/genweights.py new file mode 100644 index 0000000000..b92407ce84 --- /dev/null +++ b/verification/global_ocean.cs32x15/input_ad/genweights.py @@ -0,0 +1,7 @@ +import numpy as np + +nx,ny,nr,nt=32*6,32,15,1 + +# double prec ieee-be +wt64 = np.ones((nt,nr,ny,nx),dtype='>f8') +wt64.tofile('ones_64b.bin') diff --git a/verification/global_ocean.cs32x15/input_ad/prepare_run b/verification/global_ocean.cs32x15/input_ad/prepare_run index 187dae527f..20dd03fb35 100755 --- a/verification/global_ocean.cs32x15/input_ad/prepare_run +++ b/verification/global_ocean.cs32x15/input_ad/prepare_run @@ -6,14 +6,14 @@ fileList="grid_cs32.face001.bin grid_cs32.face002.bin grid_cs32.face003.bin grid #- from this dir: fromDir="../../tutorial_held_suarez_cs/input" -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -30,14 +30,38 @@ fileList=`(cd ../input ; ls -1 *.bin pickup*)` #- from this dir: fromDir="../input" -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/global_ocean.cs32x15/input_tap/prepare_run b/verification/global_ocean.cs32x15/input_tap/prepare_run new file mode 100755 index 0000000000..571e9e2579 --- /dev/null +++ b/verification/global_ocean.cs32x15/input_tap/prepare_run @@ -0,0 +1,99 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take files: +fileList="grid_cs32.face001.bin grid_cs32.face002.bin grid_cs32.face003.bin grid_cs32.face004.bin grid_cs32.face005.bin grid_cs32.face006.bin" + +#- from this dir: +fromDir="../../tutorial_held_suarez_cs/input" + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- in order to save disc space, take files: +fileList=`(cd ../input ; ls -1 *.bin pickup*)` + +#- from this dir: +fromDir="../input" + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_ocean.cs32x15/results/output.in_p.txt b/verification/global_ocean.cs32x15/results/output.in_p.txt new file mode 100644 index 0000000000..dfdc772cb6 --- /dev/null +++ b/verification/global_ocean.cs32x15/results/output.in_p.txt @@ -0,0 +1,5071 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Jul 18 11:59:26 EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 12 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 32 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 16 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 384 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 16 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 12 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 12, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: regular 6-facets Cube +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh = 3.E5, +(PID.TID 0000.0001) ># background dissipation will be taken care of by IDEMIX +(PID.TID 0000.0001) ># so we turn it off here +(PID.TID 0000.0001) >#viscAr = 1.030905162225000e+05, +(PID.TID 0000.0001) >#viscAr = 1.E-3, +(PID.TID 0000.0001) >#diffKrT= 3.092715486675000e+03, +(PID.TID 0000.0001) >#diffKrT= 3.E-5, +(PID.TID 0000.0001) >#diffKrS= 3.092715486675000e+03, +(PID.TID 0000.0001) >#diffKrS= 3.E-5, +(PID.TID 0000.0001) ># should use this with ggl90 for avoiding local instabilities +(PID.TID 0000.0001) > ivdc_kappa= 1.030905162225000e+08, +(PID.TID 0000.0001) >#ivdc_kappa= 1., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > buoyancyRelation='OCEANICP', +(PID.TID 0000.0001) > integr_GeoPot=1, +(PID.TID 0000.0001) > eosType='JMD95P', +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > select_rStar=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) ># 20 m +(PID.TID 0000.0001) > hFacMinDr=203067.0, +(PID.TID 0000.0001) >#- to check that it has no impact: +(PID.TID 0000.0001) > doResetHFactors=.TRUE., +(PID.TID 0000.0001) >#tempAdvScheme=77, +(PID.TID 0000.0001) >#saltAdvScheme=77, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) > debugLevel = 2, +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-9, +(PID.TID 0000.0001) >#cg2dTargetResWunit=1.E-14, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) >#nIter0=72000, +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=10, +(PID.TID 0000.0001) >#endTime=31104000., +(PID.TID 0000.0001) > deltaTMom =1200., +(PID.TID 0000.0001) > deltaTtracer=86400., +(PID.TID 0000.0001) > deltaTFreeSurf=86400., +(PID.TID 0000.0001) > deltaTClock =86400., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > forcing_In_AB=.FALSE., +(PID.TID 0000.0001) >#pickupStrictlyMatch=.FALSE., +(PID.TID 0000.0001) > pChkptFreq =3110400000., +(PID.TID 0000.0001) > chkptFreq = 155520000., +(PID.TID 0000.0001) >#tave_lastIter=0., +(PID.TID 0000.0001) >#taveFreq = 2592000., +(PID.TID 0000.0001) >#dumpFreq = 864000., +(PID.TID 0000.0001) > monitorFreq = 15552000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) ># 6 months restoring timescale for temperature +(PID.TID 0000.0001) >#tauThetaClimRelax = 15552000., +(PID.TID 0000.0001) ># 2 months restoring timescale for tsalinity +(PID.TID 0000.0001) >#tauSaltClimRelax = 5184000., +(PID.TID 0000.0001) >#latBandClimRelax=60., +(PID.TID 0000.0001) > monitorFreq =1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCurvilinearGrid=.TRUE., +(PID.TID 0000.0001) > horizGridFile='grid_cs32', +(PID.TID 0000.0001) ># radius_fromHorizGrid=64676839500., +(PID.TID 0000.0001) > radius_fromHorizGrid=6370.E3, +(PID.TID 0000.0001) > delR = 7105181.631178, 6571679.735642, 6042512.265968, +(PID.TID 0000.0001) > 5517067.241693, 4995190.435925, 4476390.802366, +(PID.TID 0000.0001) > 3960087.645808, 3446365.011284, 2934956.237702, +(PID.TID 0000.0001) > 2425564.880893, 1917984.297155, 1411815.607161, +(PID.TID 0000.0001) > 1007433.323163, 704400.618506, 502655.686646, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='bathy_in_P.bin', +(PID.TID 0000.0001) > geoPotAnomFile ='geopotanom.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_T_cs_flip15.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='lev_S_cs_flip15.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) >#useGMRedi=.TRUE., +(PID.TID 0000.0001) > useEXF =.TRUE., +(PID.TID 0000.0001) > useCAL =.TRUE., +(PID.TID 0000.0001) > useSEAICE=.TRUE., +(PID.TID 0000.0001) > useGGL90 =.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/ggl90 compiled and used ( useGGL90 = T ) + pkg/gmredi compiled but not used ( useGMRedi = F ) + pkg/cal compiled and used ( useCAL = T ) + pkg/exf compiled and used ( useEXF = T ) + pkg/bulk_force compiled but not used ( useBulkForce = F ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/thsice compiled but not used ( useThSIce = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + pkg/mnc compiled but not used ( useMNC = F ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled but not used ( taveFreq > 0. = F ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=00010101, +(PID.TID 0000.0001) > startDate_2=000000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) >#exf_debugLev = 3, +(PID.TID 0000.0001) >#useExfCheckRange = .TRUE., +(PID.TID 0000.0001) >#useStabilityFct_overIce=.TRUE., +(PID.TID 0000.0001) >#snow_emissivity = 0.98, +(PID.TID 0000.0001) >#ice_emissivity = 0.98, +(PID.TID 0000.0001) > ocean_emissivity = 1., +(PID.TID 0000.0001) > atmrho = 1.22, +(PID.TID 0000.0001) > humid_fac = .608, +(PID.TID 0000.0001) > ht = 10., +(PID.TID 0000.0001) > exf_albedo = 0.066, +(PID.TID 0000.0001) >#readStressOnAgrid = .TRUE., +(PID.TID 0000.0001) > readStressOnCgrid = .TRUE., +(PID.TID 0000.0001) > exf_monFreq = 0., +(PID.TID 0000.0001) > repeatPeriod = 31104000., +(PID.TID 0000.0001) > exf_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempstartdate1 = 00010116, +(PID.TID 0000.0001) >#atempstartdate2 = 180000, +(PID.TID 0000.0001) > atempperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > aqhstartdate1 = 00010116, +(PID.TID 0000.0001) >#aqhstartdate2 = 180000, +(PID.TID 0000.0001) > aqhperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipstartdate1 = 00010116, +(PID.TID 0000.0001) >#precipstartdate2 = 180000, +(PID.TID 0000.0001) > precipperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > snowprecipstartdate1= 00010116, +(PID.TID 0000.0001) >#snowprecipstartdate2= 180000, +(PID.TID 0000.0001) > snowprecipperiod = 2592000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > runoffstartdate1 = 00010116, +(PID.TID 0000.0001) >#runoffstartdate2 = 180000, +(PID.TID 0000.0001) > runoffperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindstartdate1 = 00010116, +(PID.TID 0000.0001) >#uwindstartdate2 = 180000, +(PID.TID 0000.0001) > uwindperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vwindstartdate1 = 00010116, +(PID.TID 0000.0001) >#vwindstartdate2 = 180000, +(PID.TID 0000.0001) > vwindperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > ustressstartdate1 = 00010116, +(PID.TID 0000.0001) >#ustressstartdate2 = 180000, +(PID.TID 0000.0001) > ustressperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vstressstartdate1 = 00010116, +(PID.TID 0000.0001) >#vstressstartdate2 = 180000, +(PID.TID 0000.0001) > vstressperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > wspeedstartdate1 = 00010116, +(PID.TID 0000.0001) >#wspeedstartdate2 = 180000, +(PID.TID 0000.0001) > wspeedperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > swdownstartdate1 = 00010116, +(PID.TID 0000.0001) >#swdownstartdate2 = 180000, +(PID.TID 0000.0001) > swdownperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > lwdownstartdate1 = 00010116, +(PID.TID 0000.0001) >#lwdownstartdate2 = 180000, +(PID.TID 0000.0001) > lwdownperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsssstartdate1 = 00010116, +(PID.TID 0000.0001) >#climsssstartdate2 = 180000, +(PID.TID 0000.0001) > climsssperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsststartdate1 = 00010116, +(PID.TID 0000.0001) >#climsststartdate2 = 180000, +(PID.TID 0000.0001) > climsstperiod = 2592000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempfile = 'core_t_Air_cs32.bin', +(PID.TID 0000.0001) > aqhfile = 'core_q_air_cs32.bin', +(PID.TID 0000.0001) > ustressfile = 'trenberth_taux.bin', +(PID.TID 0000.0001) > vstressfile = 'trenberth_tauy.bin', +(PID.TID 0000.0001) >#uwindfile = 'core_u_wind_cs32.bin', +(PID.TID 0000.0001) >#vwindfile = 'core_v_wind_cs32.bin', +(PID.TID 0000.0001) > wspeedfile = 'core_wndSpd_cs32.bin', +(PID.TID 0000.0001) > precipfile = 'core_prec_1_cs32.bin', +(PID.TID 0000.0001) >#snowprecipfile = 'core_snwP_1_cs32.bin', +(PID.TID 0000.0001) > lwdownfile = 'core_dwnLw_cs32.bin', +(PID.TID 0000.0001) > swdownfile = 'core_dwnSw_cs32.bin', +(PID.TID 0000.0001) > runoffFile = 'core_rnof_1_cs32.bin' +(PID.TID 0000.0001) > runoftempFile = 'runoff_temperature.bin' +(PID.TID 0000.0001) > climsstfile = 'lev_surfT_cs_12m.bin', +(PID.TID 0000.0001) > climsssfile = 'lev_surfS_cs_12m.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_04 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) GGL90_READPARMS: opening data.ggl90 +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ggl90" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) ># | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) > &GGL90_PARM01 +(PID.TID 0000.0001) > GGL90diffTKEh=0.E3, +(PID.TID 0000.0001) > GGL90ck = 0.1, +(PID.TID 0000.0001) > GGL90ceps = 0.7, +(PID.TID 0000.0001) > GGL90alpha=30., +(PID.TID 0000.0001) > GGL90m2 = 3.0, +(PID.TID 0000.0001) > GGL90TKEmin = 0.E-6, +(PID.TID 0000.0001) > GGL90TKEbottom=4.E-6, +(PID.TID 0000.0001) > GGL90TKEsurfMin=1.E-4, +(PID.TID 0000.0001) > mxlMaxFlag=2, +(PID.TID 0000.0001) > GGL90viscMax=1.E2, +(PID.TID 0000.0001) > GGL90diffMax=1.E2, +(PID.TID 0000.0001) > calcMeanVertShear=.TRUE., +(PID.TID 0000.0001) > GGL90_dirichlet=.FALSE., +(PID.TID 0000.0001) > useIDEMIX = .TRUE., +(PID.TID 0000.0001) >#-- IO related params: +(PID.TID 0000.0001) > GGL90mixingMaps=.FALSE., +(PID.TID 0000.0001) > GGL90writeState=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GGL90_PARM02 +(PID.TID 0000.0001) >#- below are old defaults that are not recommended +(PID.TID 0000.0001) ># IDEMIX_tau_v = 86400.0, +(PID.TID 0000.0001) ># IDEMIX_jstar = 10.0, +(PID.TID 0000.0001) ># IDEMIX_mu0 = 1.3333333333333333, +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > IDEMIX_include_GM_bottom = .FALSE., +(PID.TID 0000.0001) > IDEMIX_include_GM = .FALSE., +(PID.TID 0000.0001) > IDEMIX_tidal_file = 'idemix_tidal_forcing.192x32.bin', +(PID.TID 0000.0001) > IDEMIX_wind_file = 'idemix_wind_forcing.192x32.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM02 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM02 : OK +(PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // GGL90 configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) GGL90dumpFreq = /* GGL90 state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90taveFreq = /* GGL90 averaging interval ( s ). */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio */ +(PID.TID 0000.0001) 3.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 4.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length (m) */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90: GGL90TKEFile = +(PID.TID 0000.0001) GGL90_dirichlet = /* GGL90 Boundary condition flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useIDEMIX = /* turn on IDEMIX contribution. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_tau_v = /* IDEMIX vertical group speed parameter. */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_tau_h = /* IDEMIX horizontal group speed parameter. */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_gamma = /* IDEMIX group speed parameter. */ +(PID.TID 0000.0001) 1.570000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_jstar = /* IDEMIX baroclinic mode bandwidth. */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_mu0 = /* IDEMIX dissipation parameter. */ +(PID.TID 0000.0001) 3.333333333333333E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_mixing_efficiency = /* IDEMIX mixing efficiency. */ +(PID.TID 0000.0001) 1.666000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_diff_max = /* IDEMIX maximal diffusivity. */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_diff_min = /* IDEMIX minimal diffusivity. */ +(PID.TID 0000.0001) 1.000000000000000E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_frac_F_b = /* Fraction of F_b which enters IW field. */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_frac_F_s = /* Fraction of F_s which enters IW field. */ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_include_GM = /* IDEMIX GM flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_include_GM_bottom = /* IDEMIX GM flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_tidal_file = /* file name of tidal energy field */ +(PID.TID 0000.0001) 'idemix_tidal_forcing.192x32.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IDEMIX_wind_file = /* file name of wind energy field */ +(PID.TID 0000.0001) 'idemix_wind_forcing.192x32.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of GGL90 config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > LSR_ERROR = 1.E-12, +(PID.TID 0000.0001) ># test strong implicit coupling method for LSR +(PID.TID 0000.0001) > SEAICEuseStrImpCpl = .TRUE., +(PID.TID 0000.0001) >#SEAICE_deltaTevp = 60., +(PID.TID 0000.0001) > SEAICE_clipVelocities = .TRUE., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > SEAICE_salt0 = 4., +(PID.TID 0000.0001) > SEAICE_multDim = 7, +(PID.TID 0000.0001) > SEAICE_wetAlbTemp = 0., +(PID.TID 0000.0001) > SEAICE_mcPheePiston = 0.00057, +(PID.TID 0000.0001) > SEAICE_areaLossFormula= 2, +(PID.TID 0000.0001) > SEAICEheatConsFix = .TRUE., +(PID.TID 0000.0001) >#SEAICE_monFreq = 2592000., +(PID.TID 0000.0001) >#SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) ># dumpAtLast = .TRUE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:11,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ', +(PID.TID 0000.0001) > 'oceQnet ','oceSflux','oceFWflx','MXLDEPTH', +(PID.TID 0000.0001) ># 'surForcT','surForcS','TFLUX ','SFLUX ','oceFreez', +(PID.TID 0000.0001) ># 'TRELAX ','SRELAX ', +(PID.TID 0000.0001) ># 'GM_VisbK', +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 15552000., +(PID.TID 0000.0001) ># frequency(1) = 1., +(PID.TID 0000.0001) > fields(1:15,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','UTHMASS ','VTHMASS ','WTHMASS ', +(PID.TID 0000.0001) > 'SALT ','USLTMASS','VSLTMASS','WSLTMASS', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 15552000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,3) = 'DRHODR ','RHOAnoma', +(PID.TID 0000.0001) > 'GGL90TKE','GGL90Kr ','GGL90Lmx', +(PID.TID 0000.0001) > 'IDEMIX_E','IDEMIX_K', +(PID.TID 0000.0001) ># 'GM_PsiX ','GM_PsiY ', +(PID.TID 0000.0001) ># 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># 'GM_Kux ','GM_Kvy ', +(PID.TID 0000.0001) ># 'GM_Kuz ','GM_Kvz ', +(PID.TID 0000.0001) >#- disable this output list by commenting out the file name +(PID.TID 0000.0001) > fileName(3) = 'oceDiag', +(PID.TID 0000.0001) > frequency(3) = 15552000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DIFx_TH ','DIFy_TH ','DFrE_TH ', +(PID.TID 0000.0001) > 'DFrI_TH ', +(PID.TID 0000.0001) ># 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 1728000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,5) = 'SIheff ','SIarea ','SIhsnow ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > fileName(5) = 'seaiceDiag', +(PID.TID 0000.0001) > frequency(5) = 15552000., +(PID.TID 0000.0001) ># frequency(5) = 1., +(PID.TID 0000.0001) >#averagingFreq(5) = 2592000., +(PID.TID 0000.0001) ># repeatCycle(5) = 12, +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > frequency(6) = 86400.0, +(PID.TID 0000.0001) > fields(1:12,6) ='UVELMASS','VVELMASS', +(PID.TID 0000.0001) > 'ADVx_TH ','ADVy_TH ','DFxE_TH ','DFyE_TH ', +(PID.TID 0000.0001) > 'ADVx_SLT','ADVy_SLT','DFxE_SLT','DFyE_SLT', +(PID.TID 0000.0001) > 'AB_gT ','AB_gS ', +(PID.TID 0000.0001) ># filename(6) = 'budg2d_hflux_set2', +(PID.TID 0000.0001) > fileFlags(6) = 'DI ', +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > frequency(7) = -86400.0, +(PID.TID 0000.0001) > fields(1:3,7) = 'ETAN ','SIheff ','SIhsnow ', +(PID.TID 0000.0001) ># filename(7) = 'budg2d_snap_set1', +(PID.TID 0000.0001) > timePhase(7)= 0., +(PID.TID 0000.0001) > fileFlags(7) = 'D ', +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > frequency(8) = -86400.0, +(PID.TID 0000.0001) > fields(1:2,8) = 'THETA ','SALT ', +(PID.TID 0000.0001) ># filename(8) = 'budg2d_snap_set2', +(PID.TID 0000.0001) > timePhase(8)= 0., +(PID.TID 0000.0001) > fileFlags(8) = 'DI ', +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > frequency(9) = 86400.0, +(PID.TID 0000.0001) > frequency(9) = 1.0, +(PID.TID 0000.0001) > fields(1:16,9) = 'oceFWflx','SIatmFW ','TFLUX ','SItflux ','SFLUX ', +(PID.TID 0000.0001) > 'SRELAX ','TRELAX ','oceSflux','oceQnet ','SIatmQnt','oceQsw ', +(PID.TID 0000.0001) ># 'WTHMASS ','WSLTMASS','SIaaflux','SIsnPrcp','SIacSubl', +(PID.TID 0000.0001) > 'EXFlwdn ','EXFswdn ','EXFlwnet','EXFhs ','EXFhl ', +(PID.TID 0000.0001) > levels(1,9) = 1., +(PID.TID 0000.0001) ># filename(9) = 'budg2d_zflux_set1', +(PID.TID 0000.0001) > fileFlags(9) = 'D ', +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > frequency(10) = 86400.0, +(PID.TID 0000.0001) > fields(1:8,10) ='ADVxHEFF','ADVyHEFF','DFxEHEFF','DFyEHEFF', +(PID.TID 0000.0001) > 'ADVxSNOW','ADVySNOW','DFxESNOW','DFyESNOW', +(PID.TID 0000.0001) ># filename(10) = 'budg2d_hflux_set1', +(PID.TID 0000.0001) > fileFlags(10) = 'D ', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#- regional mask: 3 lat. band: 1 : y <= -24 ; 2 : -24 diagSt_regMaskFile='regMask_lat24.bin', +(PID.TID 0000.0001) > nSetRegMskFile = 1, +(PID.TID 0000.0001) > set_regMask(1:3) = 1, 1, 1, +(PID.TID 0000.0001) > val_regMask(1:3) = 1., 2., 3., +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > stat_fields(1:8,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) > 'THETA ','SALT ','CONVADJ ','DETADT2 ', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 864000., +(PID.TID 0000.0001) > stat_fields(1:5,5) = 'SIheff ','SIarea ','SIhsnow ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > stat_region(1:3,5) = 1, 3, 0, +(PID.TID 0000.0001) > stat_fName(5) = 'seaiceStDiag', +(PID.TID 0000.0001) > stat_freq(5) = 864000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 15552000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 15552000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ oceTAUX oceTAUY oceQnet oceSflux oceFWflx +(PID.TID 0000.0001) Fields: MXLDEPTH +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 15552000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 15552000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: UVEL VVEL WVEL PHIHYD VVELMASS UVELMASS WVELSQ THETA UTHMASS VTHMASS +(PID.TID 0000.0001) Fields: WTHMASS SALT USLTMASS VSLTMASS WSLTMASS +(PID.TID 0000.0001) Creating Output Stream: oceDiag +(PID.TID 0000.0001) Output Frequency: 15552000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 15552000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: DRHODR RHOAnoma GGL90TKE GGL90Kr GGL90Lmx IDEMIX_E IDEMIX_K +(PID.TID 0000.0001) Creating Output Stream: seaiceDiag +(PID.TID 0000.0001) Output Frequency: 15552000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 15552000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SIheff SIarea SIhsnow SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: 864000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN UVEL VVEL WVEL THETA SALT CONVADJ DETADT2 +(PID.TID 0000.0001) Creating Stats. Output Stream: seaiceStDiag +(PID.TID 0000.0001) Output Frequency: 864000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 1 3 +(PID.TID 0000.0001) Fields: SIheff SIarea SIhsnow SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 2 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 3 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 4 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 5 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 6 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 7 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 8 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 9 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 10 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 11 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 12 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) %MON XC_max = 1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_min = -1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_mean = -1.4199289892029E-14 +(PID.TID 0000.0001) %MON XC_sd = 1.0355545336287E+02 +(PID.TID 0000.0001) %MON XG_max = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_min = -1.7708797161002E+02 +(PID.TID 0000.0001) %MON XG_mean = 1.8603515625000E+00 +(PID.TID 0000.0001) %MON XG_sd = 1.0357130300504E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DXV_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DXV_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON YC_max = 8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_min = -8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_mean = -2.3684757858670E-15 +(PID.TID 0000.0001) %MON YC_sd = 3.8676242969072E+01 +(PID.TID 0000.0001) %MON YG_max = 9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -4.1448326252673E-15 +(PID.TID 0000.0001) %MON YG_sd = 3.8676895860710E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DYC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DYF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DYF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DYG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DYG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DYU_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DYU_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DYU_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DYU_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON RA_max = 1.0479260248419E+11 +(PID.TID 0000.0001) %MON RA_min = 1.4019007022556E+10 +(PID.TID 0000.0001) %MON RA_mean = 8.2992246709265E+10 +(PID.TID 0000.0001) %MON RA_sd = 1.7509089299457E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAW_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAW_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAW_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAS_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAS_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAS_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.0484349334619E+11 +(PID.TID 0000.0001) %MON RAZ_min = 8.8317900612505E+09 +(PID.TID 0000.0001) %MON RAZ_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 1.7482297311044E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleCS_min = -9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleCS_mean = 3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleCS_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) %MON AngleSN_max = 9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleSN_min = -9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleSN_mean = -3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleSN_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_in_P.bin +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 10101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 10111 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.220000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.080000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 6.600000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): NOT defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind stress forcing starts at 1296000. +(PID.TID 0000.0001) Zonal wind stress forcing period is 2592000. +(PID.TID 0000.0001) Zonal wind stress forcing repeat-cycle is 31104000. +(PID.TID 0000.0001) Zonal wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_taux.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Meridional wind stress forcing starts at 1296000. +(PID.TID 0000.0001) Meridional wind stress forcing period is 2592000. +(PID.TID 0000.0001) Meridional wind stress forcing rep-cycle is 31104000. +(PID.TID 0000.0001) Meridional wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_tauy.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Surface wind speed starts at 1296000. +(PID.TID 0000.0001) Surface wind speed period is 2592000. +(PID.TID 0000.0001) Surface wind speed repeat-cycle is 31104000. +(PID.TID 0000.0001) Surface wind speed is read from file: +(PID.TID 0000.0001) >> core_wndSpd_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric temperature starts at 1296000. +(PID.TID 0000.0001) Atmospheric temperature period is 2592000. +(PID.TID 0000.0001) Atmospheric temperature repeat-cycle is 31104000. +(PID.TID 0000.0001) Atmospheric temperature is read from file: +(PID.TID 0000.0001) >> core_t_Air_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric specific humidity starts at 1296000. +(PID.TID 0000.0001) Atmospheric specific humidity period is 2592000. +(PID.TID 0000.0001) Atmospheric specific humidity rep-cycle is 31104000. +(PID.TID 0000.0001) Atmospheric specific humidity is read from file: +(PID.TID 0000.0001) >> core_q_air_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Precipitation data starts at 1296000. +(PID.TID 0000.0001) Precipitation data period is 2592000. +(PID.TID 0000.0001) Precipitation data repeat-cycle is 31104000. +(PID.TID 0000.0001) Precipitation data is read from file: +(PID.TID 0000.0001) >> core_prec_1_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) Runoff data starts at 1296000. +(PID.TID 0000.0001) Runoff data period is 2592000. +(PID.TID 0000.0001) Runoff data repeat-cycle is 31104000. +(PID.TID 0000.0001) Runoff data is read from file: +(PID.TID 0000.0001) >> core_rnof_1_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: defined +(PID.TID 0000.0001) Runoff temp. is read from file: +(PID.TID 0000.0001) >> runoff_temperature.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward shortwave flux starts at 1296000. +(PID.TID 0000.0001) Downward shortwave flux period is 2592000. +(PID.TID 0000.0001) Downward shortwave flux repeat-cycle is 31104000. +(PID.TID 0000.0001) Downward shortwave flux is read from file: +(PID.TID 0000.0001) >> core_dwnSw_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward longwave flux starts at 1296000. +(PID.TID 0000.0001) Downward longwave flux period is 2592000. +(PID.TID 0000.0001) Downward longwave flux repeat-cycle is 31104000. +(PID.TID 0000.0001) Downward longwave flux is read from file: +(PID.TID 0000.0001) >> core_dwnLw_cs32.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) Climatological SST starts at 1296000. +(PID.TID 0000.0001) Climatological SST period is 2592000. +(PID.TID 0000.0001) Climatological SST repeat-cycle is 31104000. +(PID.TID 0000.0001) Climatological SST is read from file: +(PID.TID 0000.0001) >> lev_surfT_cs_12m.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS starts at 1296000. +(PID.TID 0000.0001) Climatological SSS period is 2592000. +(PID.TID 0000.0001) Climatological SSS repeat-cycle is 31104000. +(PID.TID 0000.0001) Climatological SSS is read from file: +(PID.TID 0000.0001) >> lev_surfS_cs_12m.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.750000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvArea = /* advect fractional ice area */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSnow = /* advect snow layer together with ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEmultiDimAdvection = /* multidimadvec */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.220000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhEvap = /* latent heat of evaporation */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhFusion = /* latent heat of fusion */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheePiston = /* turbulent flux "piston velocity" a la McPhee (m/s) */ +(PID.TID 0000.0001) 5.700000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeTaper = /* tapering of turbulent flux (0.< <1.) for AREA=1. */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeStepFunc = /* replace linear tapering with step funct. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_frazilFrac = /* frazil (T0 by ATM and OCN +(PID.TID 0000.0001) 3=from predicted melt by ATM +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO = /* nominal thickness of new ice */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO_south = /* Southern Ocean HO */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_max = /* set to les than 1. to mimic open leads */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_salt0 = /* constant sea ice salinity */ +(PID.TID 0000.0001) 4.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_salinityTracer = /* test SITR varia. salinity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFlooding = /* turn submerged snow into ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice air-sea fluxes configuration, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEheatConsFix = /* accound for ocn<->seaice advect. heat flux */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_multDim = /* number of ice categories (1 or 7) */ +(PID.TID 0000.0001) 7 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_PDF = /* sea-ice distribution (-) */ +(PID.TID 0000.0001) 7 @ 1.428571428571428E-01 /* K = 1: 7 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IMAX_TICE = /* iterations for ice surface temp */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) postSolvTempIter= /* flux calculation after surf. temp iter */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb = /* winter albedo */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb = /* summer albedo */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb = /* dry snow albedo */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb = /* wet snow albedo */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb_south = /* Southern Ocean dryIceAlb */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb_south = /* Southern Ocean wetIceAlb */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb_south= /* Southern Ocean drySnowAlb */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb_south= /* Southern Ocean wetSnowAlb */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetAlbTemp= /* Temp (o.C) threshold for wet-albedo */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snow_emiss = /* snow emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_ice_emiss = /* seaice emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cpAir = /* heat capacity of air */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dalton = /* constant dalton number */ +(PID.TID 0000.0001) 1.750000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_iceConduct = /* sea-ice conductivity */ +(PID.TID 0000.0001) 2.165600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowConduct= /* snow conductivity */ +(PID.TID 0000.0001) 3.100000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowThick = /* cutoff snow thickness (for albedo) */ +(PID.TID 0000.0001) 1.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_shortwave = /* penetration shortwave radiation */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMaykutSatVapPoly = /* use Maykut Polynomial for Sat.Vap.Pr */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_ATEMP = /* minimum air temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_LWDOWN = /* minimum downward longwave */ +(PID.TID 0000.0001) 6.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_TICE = /* minimum ice temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_mnc = /* write monitor to netcdf file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mnc = /* write snap-shot using MNC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mnc = /* write TimeAverage using MNC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 320 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 81 oceTAUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 82 oceTAUY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 87 oceQnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 86 oceSflux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 85 oceFWflx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 78 MXLDEPTH +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 38 WVELSQ +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 50 UTHMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 51 VTHMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 52 WTHMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 53 USLTMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 54 VSLTMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 55 WSLTMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 79 DRHODR +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 64 RHOAnoma +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 223 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 229 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 225 GGL90Lmx +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 233 IDEMIX_E +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 238 IDEMIX_K +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 246 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 243 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 248 SIhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 260 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 261 SIvice +(PID.TID 0000.0001) space allocated for all diagnostics: 346 levels +(PID.TID 0000.0001) set mate pointer for diag # 81 oceTAUX , Parms: UU U1 , mate: 82 +(PID.TID 0000.0001) set mate pointer for diag # 82 oceTAUY , Parms: VV U1 , mate: 81 +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 50 UTHMASS , Parms: UUr MR , mate: 51 +(PID.TID 0000.0001) set mate pointer for diag # 51 VTHMASS , Parms: VVr MR , mate: 50 +(PID.TID 0000.0001) set mate pointer for diag # 53 USLTMASS , Parms: UUr MR , mate: 54 +(PID.TID 0000.0001) set mate pointer for diag # 54 VSLTMASS , Parms: VVr MR , mate: 53 +(PID.TID 0000.0001) set mate pointer for diag # 260 SIuice , Parms: UU M1 , mate: 261 +(PID.TID 0000.0001) set mate pointer for diag # 261 SIvice , Parms: VV M1 , mate: 260 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: surfDiag +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: oceDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: seaiceDiag +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ + DIAGSTATS_SET_REGIONS: start reading region-mask file: regMask_lat24.bin + DIAGSTATS_SET_REGIONS: reading set k= 1 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: regMask_lat24.bin + DIAGSTATS_SET_REGIONS: set k= 1 <= done +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define 3 regions: 1 2 3 +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 80 CONVADJ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 246 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 243 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 248 SIhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 260 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 261 SIvice +(PID.TID 0000.0001) space allocated for all stats-diags: 97 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: seaiceStDiag.0000000000.txt , unit= 10 +(PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 19 CS-corner Pts in the domain +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: geopotanom.bin +(PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_mean = 3.3881317890172E-21 +(PID.TID 0000.0001) %MON fCori_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.6940658945086E-20 +(PID.TID 0000.0001) %MON fCoriG_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4580166994612E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 5.2407700865903E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.1514045869113E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.0375849106513E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.8867235104620207E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANICP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.045006090994056E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.042335728800325E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.039837815303430E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.037518625812328E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.035384090172583E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.033439735959791E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.031690745578445E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030141809390861E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.028797029769959E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027659973548148E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.026733637080825E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.026020449285047E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.025500616493752E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.025131935990423E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.024871544283267E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity (Pa^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp (Pa^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt (Pa^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection (Pa^2/s) */ +(PID.TID 0000.0001) 1.030905162225000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95P' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness (Pa) */ +(PID.TID 0000.0001) 2.030670000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceQnet = /* balance net heat-flux on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceThetaClimRelax= /* balance SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBalanceEmPmR = /* balancing glob.mean EmPmR selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceSaltClimRelax= /* balance SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 8.640000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 1.555200000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == Pa ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* pressure at the top (r-axis origin) [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [Pa] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [Pa] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.019367991845056E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 3.552590815589000E+06, /* K = 1 */ +(PID.TID 0000.0001) 6.838430683410000E+06, /* K = 2 */ +(PID.TID 0000.0001) 6.307096000805000E+06, /* K = 3 */ +(PID.TID 0000.0001) 5.779789753830500E+06, /* K = 4 */ +(PID.TID 0000.0001) 5.256128838809000E+06, /* K = 5 */ +(PID.TID 0000.0001) 4.735790619145500E+06, /* K = 6 */ +(PID.TID 0000.0001) 4.218239224087000E+06, /* K = 7 */ +(PID.TID 0000.0001) 3.703226328546000E+06, /* K = 8 */ +(PID.TID 0000.0001) 3.190660624493000E+06, /* K = 9 */ +(PID.TID 0000.0001) 2.680260559297500E+06, /* K = 10 */ +(PID.TID 0000.0001) 2.171774589024000E+06, /* K = 11 */ +(PID.TID 0000.0001) 1.664899952158000E+06, /* K = 12 */ +(PID.TID 0000.0001) 1.209624465162000E+06, /* K = 13 */ +(PID.TID 0000.0001) 8.559169708345000E+05, /* K = 14 */ +(PID.TID 0000.0001) 6.035281525760000E+05, /* K = 15 */ +(PID.TID 0000.0001) 2.513278433230000E+05 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 7.105181631178000E+06, /* K = 1 */ +(PID.TID 0000.0001) 6.571679735642000E+06, /* K = 2 */ +(PID.TID 0000.0001) 6.042512265968000E+06, /* K = 3 */ +(PID.TID 0000.0001) 5.517067241693000E+06, /* K = 4 */ +(PID.TID 0000.0001) 4.995190435925000E+06, /* K = 5 */ +(PID.TID 0000.0001) 4.476390802366000E+06, /* K = 6 */ +(PID.TID 0000.0001) 3.960087645808000E+06, /* K = 7 */ +(PID.TID 0000.0001) 3.446365011284000E+06, /* K = 8 */ +(PID.TID 0000.0001) 2.934956237702000E+06, /* K = 9 */ +(PID.TID 0000.0001) 2.425564880893000E+06, /* K = 10 */ +(PID.TID 0000.0001) 1.917984297155000E+06, /* K = 11 */ +(PID.TID 0000.0001) 1.411815607161000E+06, /* K = 12 */ +(PID.TID 0000.0001) 1.007433323163000E+06, /* K = 13 */ +(PID.TID 0000.0001) 7.044006185060000E+05, /* K = 14 */ +(PID.TID 0000.0001) 5.026556866460000E+05 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) radius_fromHorizGrid = /* sphere Radius of input horiz. grid */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -4.439521994760536E+01, /* I = 1 */ +(PID.TID 0000.0001) -4.295641272275883E+01, /* I = 2 */ +(PID.TID 0000.0001) -4.122055553388957E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.312205555338896E+02, /* I = 94 */ +(PID.TID 0000.0001) 1.329564127227588E+02, /* I = 95 */ +(PID.TID 0000.0001) 1.343952199476053E+02, /* I = 96 */ +(PID.TID 0000.0001) 4.635509675007168E+01, /* I = 97 */ +(PID.TID 0000.0001) 4.906731228843647E+01, /* I = 98 */ +(PID.TID 0000.0001) 5.178550688214704E+01, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.778001716525716E+02, /* I =190 */ +(PID.TID 0000.0001) -1.779288225675308E+02, /* I =191 */ +(PID.TID 0000.0001) -1.780367200854751E+02, /* I =192 */ +(PID.TID 0000.0001) 1.356047800523947E+02, /* I =193 */ +(PID.TID 0000.0001) 1.358367907661329E+02, /* I =194 */ +(PID.TID 0000.0001) 1.359720382181193E+02, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.340279617818807E+02, /* I =286 */ +(PID.TID 0000.0001) -1.341632092338671E+02, /* I =287 */ +(PID.TID 0000.0001) -1.343952199476053E+02, /* I =288 */ +(PID.TID 0000.0001) -8.812739148696656E+01, /* I =289 */ +(PID.TID 0000.0001) -8.820362659721324E+01, /* I =290 */ +(PID.TID 0000.0001) -8.826768106944316E+01, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.780017165257156E+01, /* I =382 */ +(PID.TID 0000.0001) 8.792882256753080E+01, /* I =383 */ +(PID.TID 0000.0001) 8.803672008547504E+01 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -3.497677942598243E+01, /* J = 1 */ +(PID.TID 0000.0001) -3.374005967394886E+01, /* J = 2 */ +(PID.TID 0000.0001) -3.220655175667454E+01, /* J = 3 */ +(PID.TID 0000.0001) -3.045756348838641E+01, /* J = 4 */ +(PID.TID 0000.0001) -2.853728129852918E+01, /* J = 5 */ +(PID.TID 0000.0001) -2.647426640173173E+01, /* J = 6 */ +(PID.TID 0000.0001) -2.428936657094636E+01, /* J = 7 */ +(PID.TID 0000.0001) -2.199915808312262E+01, /* J = 8 */ +(PID.TID 0000.0001) -1.961768597440146E+01, /* J = 9 */ +(PID.TID 0000.0001) -1.715743888281371E+01, /* J = 10 */ +(PID.TID 0000.0001) -1.462993396899330E+01, /* J = 11 */ +(PID.TID 0000.0001) -1.204608340464756E+01, /* J = 12 */ +(PID.TID 0000.0001) -9.416429130284818E+00, /* J = 13 */ +(PID.TID 0000.0001) -6.751293662992216E+00, /* J = 14 */ +(PID.TID 0000.0001) -4.060875511835959E+00, /* J = 15 */ +(PID.TID 0000.0001) -1.355307764409121E+00 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) 4.946669460550100E+07, /* K = 1 */ +(PID.TID 0000.0001) 4.262826392209099E+07, /* K = 2 */ +(PID.TID 0000.0001) 3.632116792128599E+07, /* K = 3 */ +(PID.TID 0000.0001) 3.054137816745549E+07, /* K = 4 */ +(PID.TID 0000.0001) 2.528524932864650E+07, /* K = 5 */ +(PID.TID 0000.0001) 2.054945870950100E+07, /* K = 6 */ +(PID.TID 0000.0001) 1.633121948541400E+07, /* K = 7 */ +(PID.TID 0000.0001) 1.262799315686800E+07, /* K = 8 */ +(PID.TID 0000.0001) 9.437332532375000E+06, /* K = 9 */ +(PID.TID 0000.0001) 6.757071973077500E+06, /* K = 10 */ +(PID.TID 0000.0001) 4.585297384053500E+06, /* K = 11 */ +(PID.TID 0000.0001) 2.920397431895500E+06, /* K = 12 */ +(PID.TID 0000.0001) 1.710772966733500E+06, /* K = 13 */ +(PID.TID 0000.0001) 8.548559958990000E+05, /* K = 14 */ +(PID.TID 0000.0001) 2.513278433230000E+05 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 5.301928542109000E+07, /* K = 1 */ +(PID.TID 0000.0001) 4.591410378991200E+07, /* K = 2 */ +(PID.TID 0000.0001) 3.934242405427000E+07, /* K = 3 */ +(PID.TID 0000.0001) 3.329991178830200E+07, /* K = 4 */ +(PID.TID 0000.0001) 2.778284454660900E+07, /* K = 5 */ +(PID.TID 0000.0001) 2.278765411068400E+07, /* K = 6 */ +(PID.TID 0000.0001) 1.831126330831800E+07, /* K = 7 */ +(PID.TID 0000.0001) 1.435117566251000E+07, /* K = 8 */ +(PID.TID 0000.0001) 1.090481065122600E+07, /* K = 9 */ +(PID.TID 0000.0001) 7.969854413524000E+06, /* K = 10 */ +(PID.TID 0000.0001) 5.544289532631000E+06, /* K = 11 */ +(PID.TID 0000.0001) 3.626305235476000E+06, /* K = 12 */ +(PID.TID 0000.0001) 2.214489628315000E+06, /* K = 13 */ +(PID.TID 0000.0001) 1.207056305152000E+06, /* K = 14 */ +(PID.TID 0000.0001) 5.026556866460000E+05, /* K = 15 */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel [Pa/s] -> wSpeed [m/s] */ +(PID.TID 0000.0001) 9.741871157545671E-05, /* K = 1 */ +(PID.TID 0000.0001) 9.767581758248818E-05, /* K = 2 */ +(PID.TID 0000.0001) 9.791836483646056E-05, /* K = 3 */ +(PID.TID 0000.0001) 9.814552216564588E-05, /* K = 4 */ +(PID.TID 0000.0001) 9.835648288661061E-05, /* K = 5 */ +(PID.TID 0000.0001) 9.855048815195593E-05, /* K = 6 */ +(PID.TID 0000.0001) 9.872682031565227E-05, /* K = 7 */ +(PID.TID 0000.0001) 9.888480491741002E-05, /* K = 8 */ +(PID.TID 0000.0001) 9.902384286672852E-05, /* K = 9 */ +(PID.TID 0000.0001) 9.914340236521406E-05, /* K = 10 */ +(PID.TID 0000.0001) 9.924302259382755E-05, /* K = 11 */ +(PID.TID 0000.0001) 9.932232170441026E-05, /* K = 12 */ +(PID.TID 0000.0001) 9.938099250463448E-05, /* K = 13 */ +(PID.TID 0000.0001) 9.942301456554267E-05, /* K = 14 */ +(PID.TID 0000.0001) 9.945247415878185E-05, /* K = 15 */ +(PID.TID 0000.0001) 9.947353552744134E-05 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed [m/s] -> rVel [Pa/s] */ +(PID.TID 0000.0001) 1.026496844218104E+04, /* K = 1 */ +(PID.TID 0000.0001) 1.023794860130544E+04, /* K = 2 */ +(PID.TID 0000.0001) 1.021258884040967E+04, /* K = 3 */ +(PID.TID 0000.0001) 1.018895185367950E+04, /* K = 4 */ +(PID.TID 0000.0001) 1.016709799549096E+04, /* K = 5 */ +(PID.TID 0000.0001) 1.014708317282093E+04, /* K = 6 */ +(PID.TID 0000.0001) 1.012895985916259E+04, /* K = 7 */ +(PID.TID 0000.0001) 1.011277719398055E+04, /* K = 8 */ +(PID.TID 0000.0001) 1.009857798940254E+04, /* K = 9 */ +(PID.TID 0000.0001) 1.008639986265859E+04, /* K = 10 */ +(PID.TID 0000.0001) 1.007627512608826E+04, /* K = 11 */ +(PID.TID 0000.0001) 1.006823021088921E+04, /* K = 12 */ +(PID.TID 0000.0001) 1.006228630644201E+04, /* K = 13 */ +(PID.TID 0000.0001) 1.005803338763953E+04, /* K = 14 */ +(PID.TID 0000.0001) 1.005505401910303E+04, /* K = 15 */ +(PID.TID 0000.0001) 1.005292507899384E+04 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2z = /* convert units (@ center): dr [Pa] -> dz [m] */ +(PID.TID 0000.0001) 9.754660768296464E-05, /* K = 1 */ +(PID.TID 0000.0001) 9.779651255150739E-05, /* K = 2 */ +(PID.TID 0000.0001) 9.803144075382551E-05, /* K = 3 */ +(PID.TID 0000.0001) 9.825057271111057E-05, /* K = 4 */ +(PID.TID 0000.0001) 9.845312493406605E-05, /* K = 5 */ +(PID.TID 0000.0001) 9.863835852008675E-05, /* K = 6 */ +(PID.TID 0000.0001) 9.880557678876149E-05, /* K = 7 */ +(PID.TID 0000.0001) 9.895414228918873E-05, /* K = 8 */ +(PID.TID 0000.0001) 9.908348900200352E-05, /* K = 9 */ +(PID.TID 0000.0001) 9.919312010620956E-05, /* K = 10 */ +(PID.TID 0000.0001) 9.928261381825273E-05, /* K = 11 */ +(PID.TID 0000.0001) 9.935162525809044E-05, /* K = 12 */ +(PID.TID 0000.0001) 9.940198722945051E-05, /* K = 13 */ +(PID.TID 0000.0001) 9.943773635929138E-05, /* K = 14 */ +(PID.TID 0000.0001) 9.946300075664020E-05 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) z2rUnit = /* convert units (@ center): dz [m] -> dr [Pa] */ +(PID.TID 0000.0001) 1.025150975265169E+04, /* K = 1 */ +(PID.TID 0000.0001) 1.022531349953119E+04, /* K = 2 */ +(PID.TID 0000.0001) 1.020080896812665E+04, /* K = 3 */ +(PID.TID 0000.0001) 1.017805771921893E+04, /* K = 4 */ +(PID.TID 0000.0001) 1.015711792459304E+04, /* K = 5 */ +(PID.TID 0000.0001) 1.013804380976555E+04, /* K = 6 */ +(PID.TID 0000.0001) 1.012088621412454E+04, /* K = 7 */ +(PID.TID 0000.0001) 1.010569115012435E+04, /* K = 8 */ +(PID.TID 0000.0001) 1.009249886204330E+04, /* K = 9 */ +(PID.TID 0000.0001) 1.008134434050733E+04, /* K = 10 */ +(PID.TID 0000.0001) 1.007225697976289E+04, /* K = 11 */ +(PID.TID 0000.0001) 1.006526060748631E+04, /* K = 12 */ +(PID.TID 0000.0001) 1.006016104780371E+04, /* K = 13 */ +(PID.TID 0000.0001) 1.005654429206605E+04, /* K = 14 */ +(PID.TID 0000.0001) 1.005398984941885E+04 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =190 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =194 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =286 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =289 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =382 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =190 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =194 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =286 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =289 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =290 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =382 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =194 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =286 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =287 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =288 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =290 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014246674484008E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008638765647886E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =190 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =194 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I =286 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =287 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =288 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =289 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =290 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =382 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013880313304323E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.011625828699101E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =194 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I =286 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =287 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =289 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014528555318499E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012281885409289E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =194 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =286 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =287 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013593857228136E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007982711627968E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =190 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =194 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I =286 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =287 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =290 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =382 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015922136961168E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008068453676764E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =194 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I =286 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =287 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015274890091515E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007409169495504E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =190 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =191 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I =192 */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I =193 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =194 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I =286 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =287 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I =288 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I =289 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =290 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =382 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =383 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.203683527776127E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =190 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =191 */ +(PID.TID 0000.0001) 9.085012105606993E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I =194 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I =286 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I =287 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I =288 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =289 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I =290 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =382 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =383 */ +(PID.TID 0000.0001) 9.085012105606993E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.071447638299399E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =190 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =191 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =194 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =286 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =287 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =288 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =289 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =290 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =382 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =383 */ +(PID.TID 0000.0001) 9.083293515008307E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.801790263324359E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.571243814189866E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.269930713599979E+10, /* J = 6 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.014205907741882E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.484854821847499E+10, /* J = 10 */ +(PID.TID 0000.0001) 7.898934631431560E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.254500894894537E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.549360686473492E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.781353403175085E+10, /* J = 14 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.049530583086168E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.638867375081599E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hasWetCSCorners = /* Domain contains CS corners (True/False) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 +(PID.TID 0000.0001) GGL90_CHECK: Some form of convection has been enabled +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_T_cs_flip15.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_S_cs_flip15.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANICP +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 4 +------------------------------------------------------------------------ +listId= 1 ; file name: surfDiag + nFlds, nActive, freq & phase , nLev + 11 | 11 | 15552000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 23 |ETAN | 1 | 0 | 1 | 0 | + 24 |ETANSQ | 2 | 0 | 1 | 0 | + 25 |DETADT2 | 3 | 0 | 1 | 0 | + 73 |PHIBOT | 4 | 0 | 1 | 0 | + 74 |PHIBOTSQ| 5 | 0 | 1 | 0 | + 81 |oceTAUX | 6 | 7 | 1 | 0 | 0 | + 82 |oceTAUY | 7 | 6 | 1 | 0 | 0 | + 87 |oceQnet | 8 | 0 | 1 | 0 | + 86 |oceSflux| 9 | 0 | 1 | 0 | + 85 |oceFWflx| 10 | 0 | 1 | 0 | + 78 |MXLDEPTH| 11 | 0 | 1 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: dynDiag + nFlds, nActive, freq & phase , nLev + 15 | 15 | 15552000.000000 0.000000 | 15 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + diag# | name | ipt | iMate | kLev| count | mate.C| + 30 |UVEL | 12 | 27 | 15 | 0 | 0 | + 31 |VVEL | 27 | 12 | 15 | 0 | 0 | + 32 |WVEL | 42 | 0 | 15 | 0 | + 71 |PHIHYD | 57 | 0 | 15 | 0 | + 46 |VVELMASS| 72 | 87 | 15 | 0 | 0 | + 45 |UVELMASS| 87 | 72 | 15 | 0 | 0 | + 38 |WVELSQ | 102 | 0 | 15 | 0 | + 26 |THETA | 117 | 0 | 15 | 0 | + 50 |UTHMASS | 132 | 147 | 15 | 0 | 0 | + 51 |VTHMASS | 147 | 132 | 15 | 0 | 0 | + 52 |WTHMASS | 162 | 0 | 15 | 0 | + 27 |SALT | 177 | 0 | 15 | 0 | + 53 |USLTMASS| 192 | 207 | 15 | 0 | 0 | + 54 |VSLTMASS| 207 | 192 | 15 | 0 | 0 | + 55 |WSLTMASS| 222 | 0 | 15 | 0 | +------------------------------------------------------------------------ +listId= 3 ; file name: oceDiag + nFlds, nActive, freq & phase , nLev + 7 | 7 | 15552000.000000 0.000000 | 15 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + diag# | name | ipt | iMate | kLev| count | mate.C| + 79 |DRHODR | 237 | 0 | 15 | 0 | + 64 |RHOAnoma| 252 | 0 | 15 | 0 | + 223 |GGL90TKE| 267 | 0 | 15 | 0 | + 229 |GGL90Kr | 282 | 0 | 15 | 0 | + 225 |GGL90Lmx| 297 | 0 | 15 | 0 | + 233 |IDEMIX_E| 312 | 0 | 15 | 0 | + 238 |IDEMIX_K| 327 | 0 | 15 | 0 | +------------------------------------------------------------------------ +listId= 4 ; file name: seaiceDiag + nFlds, nActive, freq & phase , nLev + 5 | 5 | 15552000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 246 |SIheff | 342 | 0 | 1 | 0 | + 243 |SIarea | 343 | 0 | 1 | 0 | + 248 |SIhsnow | 344 | 0 | 1 | 0 | + 260 |SIuice | 345 | 346 | 1 | 0 | 0 | + 261 |SIvice | 346 | 345 | 1 | 0 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 8 | 8 | 864000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 23 |ETAN | 1 | 0 | 0.00000E+00 | + 30 |UVEL | 2 | 0 | 0.00000E+00 | + 31 |VVEL | 17 | 0 | 0.00000E+00 | + 32 |WVEL | 32 | 0 | 0.00000E+00 | + 26 |THETA | 47 | 0 | 0.00000E+00 | + 27 |SALT | 62 | 0 | 0.00000E+00 | + 80 |CONVADJ | 77 | 0 | 0.00000E+00 | + 25 |DETADT2 | 92 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +listId= 2 ; file name: seaiceStDiag + nFlds, nActive, freq & phase | + 5 | 5 | 864000.000000 0.000000 | + Regions: 0 1 3 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 246 |SIheff | 93 | 0 | 0.00000E+00 | + 243 |SIarea | 94 | 0 | 0.00000E+00 | + 248 |SIhsnow | 95 | 0 | 0.00000E+00 | + 260 |SIuice | 96 | 0 | 0.00000E+00 | + 261 |SIvice | 97 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: idemix_tidal_forcing.192x32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: idemix_wind_forcing.192x32.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9382676376985E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8552983134796E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5911800119018E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4266930247071E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1326598561892E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715748807407E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8144841495627E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721450909937E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8791814713556E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1558447735922E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.3604176684230E+22 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247403105505E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859393568698E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2918978855221E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfT_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfT_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfS_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_surfS_cs_12m.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_taux.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: trenberth_tauy.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_wndSpd_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_wndSpd_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_t_Air_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_t_Air_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_q_air_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_q_air_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_prec_1_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_prec_1_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_dwnSw_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_dwnSw_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_dwnLw_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_dwnLw_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_rnof_1_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: core_rnof_1_cs32.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: runoff_temperature.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: runoff_temperature.bin + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 2 0.00000000E+00 0.00000000E+00 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 2 0.00000000E+00 0.00000000E+00 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: zeroPsNH= F , zeroMeanPnh= F +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: oldFreeSurfTerm = F + cg2d: Sum(rhs),rhsMax = 2.40902106503411E-02 1.98075169506440E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.27331263107017E+01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 113 +(PID.TID 0000.0001) cg2d_last_res = 8.72799254104450E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2901672457761E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5798236358394E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.2059481671931E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.5633951462544E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3109699725817E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0853585897640E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.2891733236536E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.4360005495116E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4965613204064E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4901818252572E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4246966594041E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.8660961010660E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.5353611268934E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5659498562017E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.6408656123503E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.5462858742906E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4950399588324E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4640821697669E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1233542361598E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5450690937959E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9392258707438E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8746172822183E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5913319085257E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4271594928447E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1216005952791E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715769173144E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8145258136301E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721452713784E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8788469045420E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1443829693791E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 7.0424222788353E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1743723293440E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7570280474041E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.7957974581920E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7430894641641E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0191527312954E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8592646878981E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9310439395766E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1059481284686E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.8215597518815E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.4477534522268E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 8.5017510561706E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.2281400880329E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.9095911906232E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4760613571392E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0293190974520E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.5478806648627E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3937396831278E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0509729664672E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5281098043587E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2691992401999E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3684501518858E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5153512230531E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3373863441584E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.3906206996152E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8371368978856E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.8688064937700E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.7030426005249E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7701308101942E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.2364454873478E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.6812921150028E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 9.0238727205629E-03 +(PID.TID 0000.0001) %MON ke_max = 7.8068549276330E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.1763151900607E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.3604176684230E+22 +(PID.TID 0000.0001) %MON vort_r_min = -2.1675335223380E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.6920810771400E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247378156126E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859393568698E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2919002127129E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.2359492150247E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.1897897151820E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 3.1578163613620E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.9600270774378E-03 +(PID.TID 0000.0001) %MON seaice_area_sd = 2.1485287172457E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.4583141228424E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6998541309828E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 9.9023377089074E-04 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.0892159895171E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.7931006981526E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.13965689E-04 9.82437187E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 12 4.18221013E-13 1.50541546E-19 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 12 2.81774604E-13 2.66616713E-19 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.91320933E-04 5.24466150E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 12 6.06459327E-14 9.14970337E-20 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 12 4.21190860E-14 1.81575351E-19 + cg2d: Sum(rhs),rhsMax = 7.66661820774850E-02 2.00457239865342E+01 +(PID.TID 0000.0001) cg2d_init_res = 4.84221893103093E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 109 +(PID.TID 0000.0001) cg2d_last_res = 8.72677277486335E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4036965278188E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1104916363008E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3208447105573E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.2877655145156E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.5570817526248E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.8475392352578E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4823815930171E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.3193706807576E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3399461644726E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2333968631004E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3366327760999E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6465928900613E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.8051627585531E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4524491996191E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2959847032672E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8519222502982E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9433441100239E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.4537896036600E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.9180896435905E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.6787559900243E-04 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9400728092453E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8772209402055E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5913487270807E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4274062489038E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1124454951578E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715790109972E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8061466083992E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721464665355E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8779450629029E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1533721863536E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.9568301659527E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1666111122704E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.1816693251500E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.7065423075704E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0025354978722E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0190327619373E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8593263173938E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9196898015892E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1042682315688E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.7538245291051E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.4649989994565E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.8880133341804E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.7400318919877E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 2.4749984748073E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4755808644372E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0607770640355E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.4985339072935E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3946661498467E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0542248977639E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5549422200851E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2770782795392E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3688466828783E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5192568394754E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3387409827838E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5992061894299E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.4917775183719E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.6016943787404E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4235257677686E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3940139947809E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.3246518013417E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1981214395611E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.2124608444944E-02 +(PID.TID 0000.0001) %MON ke_max = 1.6821389677623E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.3584141389703E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.3604174062081E+22 +(PID.TID 0000.0001) %MON vort_r_min = -3.6133387797972E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.3008997581162E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247345870982E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859276343879E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2919529006779E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.0941750293490E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.3489608523514E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 7.3890952399295E-02 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.5290969918722E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -2.4881484813002E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.3563029203112E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4059024833203E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.1358611117065E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0853114929970E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 3.8472249052108E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.0695508673738E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5150970671677E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 5.2863391261661E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 5.7850301773832E-03 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.8215057294990E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 5.1728804682532E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.8850295323282E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.9688901762534E-03 +(PID.TID 0000.0001) %MON seaice_heff_sd = 2.4888776692042E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.6731814740289E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 7.7350648682502E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 4.4751292178649E-06 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 4.8608571265505E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 8.0627621982811E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.59552591E-04 8.46157414E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 12 2.57960320E-13 2.34823094E-19 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 12 1.46355150E-13 2.64692987E-19 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.59909245E-04 1.95870482E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 12 2.29677388E-14 1.76191580E-19 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 12 3.57535182E-14 3.86110598E-19 + cg2d: Sum(rhs),rhsMax = 1.38049425831494E-01 1.98889658832412E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.91529690946784E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 104 +(PID.TID 0000.0001) cg2d_last_res = 9.56058000892377E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3305516526985E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3897564836868E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.1463628767815E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.0652247930115E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3851343154866E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4254244566545E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.4744466395562E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.5171924061939E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.2106858601110E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7239083075837E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8892296034718E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2041441953303E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5754247872497E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3125866737399E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8229281068958E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6902867121102E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3239209096397E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.8462872569652E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2601871748436E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0609038796059E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9408480192321E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8865125950424E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5914740059489E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4277422829002E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0889810983395E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715813000502E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7830036731087E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721481368936E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8771643649436E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1199098268270E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8753323860620E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1582909723280E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.4471477074852E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.6481294282837E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.1176544376517E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0189127925792E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8593879213095E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9086030762546E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1032203144530E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.7770026056383E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.4823526083756E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 2.1537902629404E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.7644260801941E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 2.7013953056429E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4751003717351E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0922350306190E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.4451620525371E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3963989757866E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0566380553731E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5817746358114E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2849573188785E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3688991868700E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5246627512406E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3426168319918E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2399469630421E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1505566378534E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1159285137977E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0095832862162E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6274890318669E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2219895352134E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3502839599138E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3156201526893E-02 +(PID.TID 0000.0001) %MON ke_max = 2.6260719230104E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.9317944391177E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.3604168238984E+22 +(PID.TID 0000.0001) %MON vort_r_min = -4.9977030381728E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.2424367259793E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257794E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247335739735E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859228572286E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920027960417E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1500648556353E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.7349990163425E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2724428033123E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.8208657069026E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -3.0920738062971E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 9.5004997553721E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.0182969247114E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4349914736132E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4748942214969E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 9.1149296699587E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.3507372646666E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2915897524999E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 6.7874318643308E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.8891559375926E-03 +(PID.TID 0000.0001) %MON seaice_area_sd = 7.2978818783020E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 7.4107326270466E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.7961498255969E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 5.2116600148314E-03 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.8744044652629E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.8870495211741E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.8610648703187E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.5451751934406E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.3298410683426E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.7228175798997E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.79845113E-04 3.78981856E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 12 3.15303339E-14 3.47479417E-19 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 12 7.81041898E-14 5.12157796E-19 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 9.45419359E-05 8.82855237E-05 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 12 1.88737914E-15 2.54720979E-19 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 12 3.63615388E-14 4.18259268E-19 + cg2d: Sum(rhs),rhsMax = 1.97520473329250E-01 1.98884008061778E+01 +(PID.TID 0000.0001) cg2d_init_res = 9.80683486677676E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 103 +(PID.TID 0000.0001) cg2d_last_res = 7.44319660156703E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3102045225677E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3941781808318E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.9324280722999E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.3741565115914E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3599179350555E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9734861389442E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.2795555183744E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.6674385569669E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1172564167209E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2001267135032E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1498265105137E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0576001484649E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7736446358358E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2207540855216E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.3155903735472E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.4523072949724E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.6353544455082E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6323446727807E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6024471722570E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3202392812947E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9415540454614E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8888212710790E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5916322316561E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4280392285594E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1044374499790E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715840180939E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7561082639457E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721498356130E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8760590309877E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1503408299080E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8030478499597E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1494449142178E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.5935127125962E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.6015147957481E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.6299152554354E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0187928232211E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8594494413345E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8977862623784E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1028061737190E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.6292799959370E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.4998185671542E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 2.1072426986808E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.6068845673359E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.9615798835656E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4746198790331E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1236929972025E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.3916023190072E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3996063913045E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0634347943575E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6086070515377E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2928363582178E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3689822430126E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5311854584818E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3488218439246E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9515021950012E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.1207011141438E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4539945616148E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.5031827627629E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2505790058442E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5921921607259E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7593470460477E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3492776290119E-02 +(PID.TID 0000.0001) %MON ke_max = 4.4053273844921E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6188303210795E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604161596165E+22 +(PID.TID 0000.0001) %MON vort_r_min = -5.6816685197144E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.8099501587591E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247344302724E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859216047217E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920357708264E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.2647810649243E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.2711724529143E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.0868746514753E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.9589701659280E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -2.6880542883471E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 9.5683254973117E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8684626426729E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5216495769080E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.6372542804929E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 9.6920164672684E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.4178977572970E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1647709207839E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 7.8638727206046E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.3619910803048E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 9.3179537950964E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 8.1678459545111E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 4.5246455815521E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.4166357200087E-03 +(PID.TID 0000.0001) %MON seaice_heff_sd = 5.1242914446495E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 4.4909624856616E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.6101802927263E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.3613048323829E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 2.6980270903803E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 3.5048178653035E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.11121423E-04 3.80837163E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 12 6.04183370E-13 4.83848385E-19 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 12 8.65557626E-14 7.30463566E-19 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.52067181E-04 1.19683702E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 12 9.30089339E-14 6.28346729E-19 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 12 3.57908148E-14 5.74716075E-19 + cg2d: Sum(rhs),rhsMax = 2.46785490243518E-01 1.98977599419296E+01 +(PID.TID 0000.0001) cg2d_init_res = 8.11890420112090E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 102 +(PID.TID 0000.0001) cg2d_last_res = 8.61221649154348E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3206462383900E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3570667417394E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.4155660722936E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4414202707482E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3713739732336E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.4677444894757E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0065273355756E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.9406095868149E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.0200246736889E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.6355420136741E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3882053821738E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2778211850343E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9213559157646E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1500682925098E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.7546458492293E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.1196970899106E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.8475989516363E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.7021067397075E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9087060788612E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5405271630816E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9421955886486E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8938198484307E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5917948791187E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4284275783065E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0808969497711E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715864194542E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7267725868077E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721512058069E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8754120089836E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1079892250705E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.4431065185424E+03 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1401884123695E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.6384321446065E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.5898000061424E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.3506060968992E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0186728538630E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8595109427343E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8872389323802E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1030265382374E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.8663480840345E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.5517475243565E-03 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.7498419035679E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.6171459666025E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 3.7310390068556E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4741393863310E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1551509637860E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.3387452455812E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4042641720765E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0717909138390E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6354394672640E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3007153975572E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3691530154093E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5386108639045E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3568412122218E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6219986029917E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.0264969859844E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7658025459359E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0805944939303E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.9244801105502E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9337410251953E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1366376292670E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3558472527946E-02 +(PID.TID 0000.0001) %MON ke_max = 6.4891679787942E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.4024912782136E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604155096911E+22 +(PID.TID 0000.0001) %MON vort_r_min = -5.8241111880940E-07 +(PID.TID 0000.0001) %MON vort_r_max = 6.2816615104267E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247363992506E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859219133084E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920535510748E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.4685598526527E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.5496607994611E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2617171819746E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.1181211811266E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -4.9064016689560E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.1923615152041E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7675959383962E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5590231177344E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5990044898495E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.0616438631590E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5044616788990E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1220654521856E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 8.6147191454222E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.6715849032984E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.0882227581187E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 9.8314239232652E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1951476138801E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 9.2920906691572E-03 +(PID.TID 0000.0001) %MON seaice_heff_sd = 6.1489563913971E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 5.3052216117039E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 6.0899358364476E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 5.6966730245636E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 4.3979945907159E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 7.3370262382209E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.01714971E-04 3.65764625E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 12 2.82829316E-13 2.38271619E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 12 7.97951982E-13 2.04882826E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.10637550E-04 8.21361721E-05 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 12 6.96387392E-14 1.07652319E-16 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 12 1.25531530E-13 4.40385391E-17 + cg2d: Sum(rhs),rhsMax = 2.98792882254336E-01 1.98998101744957E+01 +(PID.TID 0000.0001) cg2d_init_res = 7.51561570499162E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 102 +(PID.TID 0000.0001) cg2d_last_res = 9.19136119751815E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 5.1840000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4047428544720E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3266855757677E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.9792421024797E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4065966385347E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3880911926134E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8471384207482E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1753024834328E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.7306867245297E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8998186618449E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0161759840123E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.6007344712241E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4764986710962E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.7245164469995E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0671457463028E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.1336304589756E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6784946947775E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.9345863777231E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.8735601058804E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1722460938934E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7186802058517E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9427781655673E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8962389428750E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5919642088625E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4288002244498E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0816871941168E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715876245585E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.6954944932337E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721525411307E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8747742516121E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.0861379736728E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.7026753827189E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1305243489962E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.7766078777346E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.5329166545189E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.6201992393132E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0185528845048E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8595720283886E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8769715206083E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1038814370339E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.5956222433278E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.5351270375881E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.8448626097071E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.3884084537191E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.8045092190034E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4736588936290E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1866089303695E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.2896134025931E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4103808266857E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0828031569065E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6622718829904E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3085944368965E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3693659233558E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5467638894608E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3656544687444E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.1293312179492E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.8435120402238E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.0436043995874E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6040663516923E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.5253034423146E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2381177485807E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4727804756787E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3538399324155E-02 +(PID.TID 0000.0001) %MON ke_max = 8.7302564675453E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.3206156888219E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604149699968E+22 +(PID.TID 0000.0001) %MON vort_r_min = -5.8475017003732E-07 +(PID.TID 0000.0001) %MON vort_r_max = 6.8231180719063E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247389068702E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859227124463E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920606859969E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.9318552814155E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.0919114505183E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_time_sec = 5.1840000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.8248175407356E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.5323899888556E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -5.2877331489930E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.3089516131682E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.0073569552308E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6272126750334E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.6617539863588E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.1141791133078E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5454058702571E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1458277983397E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 9.1248344090042E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.9559760897385E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.2239016918156E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 9.0043731598784E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.7645858533563E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.1258524085242E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 7.1536090283364E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 5.1299119801228E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 9.0823390152899E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 8.6939830407747E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5014900189110E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.0239344312577E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3000000000 0.7000000000 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 7.24318685E-04 4.00795297E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 16 2.32395700E-13 9.00283995E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 16 3.18481352E-13 8.30405240E-16 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.52624500E-04 1.06269918E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 16 1.14741550E-13 4.71652237E-16 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 16 7.69800890E-14 2.15828156E-16 + cg2d: Sum(rhs),rhsMax = 3.38474352249873E-01 1.99001901972720E+01 +(PID.TID 0000.0001) cg2d_init_res = 7.38781098072774E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 98 +(PID.TID 0000.0001) cg2d_last_res = 9.08715143345150E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 6.0480000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4818626342338E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2989110769436E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0171933050184E+02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.3400118656550E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.4058627430415E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1104080571592E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3231037996204E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.4441420575379E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7495910745534E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3378579241523E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7851926060457E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6521603522666E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.0462584772291E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.9514674919004E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.4532556841267E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1171112568101E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.8785787204448E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.8279535438103E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3891427086290E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8534584429081E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9433093675088E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8987898464377E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5921298086083E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4292045734119E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0663284299195E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715873150297E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.6626695315865E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721534957498E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8743750202641E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.0420397270037E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8177960035793E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1203737630998E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.7345393323586E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.5227682162005E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2965453584834E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0184329151467E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8596329455048E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8669793008696E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1053691825532E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.6400518306284E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -9.9256215796157E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.4071654817747E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.1809520928432E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.8986846986487E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4731784009269E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.2180668969530E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.2375913269599E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4177032037254E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0948678176051E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6891042987167E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3164734762358E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3693576287271E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5556752224261E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3758908332819E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4207081638690E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5549028646564E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2823573483499E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0648626269197E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0467697113786E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4997544118481E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7616737812177E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3509189844066E-02 +(PID.TID 0000.0001) %MON ke_max = 1.0996425520018E-02 +(PID.TID 0000.0001) %MON ke_mean = 4.3475366911922E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604144009959E+22 +(PID.TID 0000.0001) %MON vort_r_min = -6.5506381517877E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.4440206864452E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247416046164E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859237123958E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920621469863E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6970908476267E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.6258240064172E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_time_sec = 6.0480000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2385498103103E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.0541045987206E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -7.2010114229278E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.3630958401046E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.0514460206653E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6249559881675E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.7112762754801E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.1715074421800E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5635432376430E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1857864836990E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 9.4573687326239E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 2.1673420902076E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.3281511082544E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 8.9683083952187E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 6.2500069620512E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.2810384530582E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 7.9931742262457E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 5.5271062800608E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.2340675823918E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.2238437061201E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 8.9193765259388E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.3199478964234E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2666666667 0.7333333333 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.56075834E-04 4.63897858E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 24 7.70754988E-14 9.71742717E-16 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 24 1.24622535E-13 1.15399181E-15 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.63496080E-04 1.80461966E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 22 3.22592647E-13 4.30682043E-15 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 22 3.07046055E-13 2.96126217E-15 + cg2d: Sum(rhs),rhsMax = 3.76892070776369E-01 1.99023261034168E+01 +(PID.TID 0000.0001) cg2d_init_res = 7.47426784168787E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 101 +(PID.TID 0000.0001) cg2d_last_res = 7.99170911836764E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 6.9120000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.5252788729400E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2591460027493E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1327689564868E+02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.2867790125518E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.4204273679903E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2227186274383E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4483774389176E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.9252120767158E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5620703507753E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6026312946907E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9402872841617E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8029166281325E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.9275706048279E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.7914579870258E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.7171865485603E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4266255540353E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.6703679863634E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2680759269301E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5577242736946E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9455359429878E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9437973417392E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8997353373336E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5922955544042E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4295985696579E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0700840449243E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715858077084E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.6289379365624E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721543864524E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8739936514313E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.0065319890512E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.7731848354601E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.1096788236390E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.7792171010370E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.4964283108086E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 7.9680132710886E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0183129457886E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8596934798547E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8572683715325E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1074865252719E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.3074906846930E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.5708696955272E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.3635893488834E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0639798724051E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.4462122353090E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4726979082249E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.2495248635365E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.1868895666883E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4263364723034E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.1097717127351E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.7159367144430E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3243525155752E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3695653443005E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5650804392343E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3884684125073E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.5060394658623E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.1538725390497E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.4798644053465E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4573733124983E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.4948950921636E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7162132488981E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.0006591711731E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3499614701467E-02 +(PID.TID 0000.0001) %MON ke_max = 1.3162064994150E-02 +(PID.TID 0000.0001) %MON ke_mean = 5.4548250402800E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604139669915E+22 +(PID.TID 0000.0001) %MON vort_r_min = -7.1573686757882E-07 +(PID.TID 0000.0001) %MON vort_r_max = 8.0486198871888E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247442189326E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859243746094E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920608579933E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.7736639479017E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.3904597127385E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_time_sec = 6.9120000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.7785226951752E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.3406830043613E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -6.3748188345084E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4640140000246E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.3475381323829E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6462617043343E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.7711089349685E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.2477527197772E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5759575117772E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2204420568228E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 9.6723361167576E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 2.3324809742672E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.4099622174236E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 8.7246823727736E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 6.6744394584702E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.4317518835875E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 8.7838205600206E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 5.3782533633074E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.5769512137398E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.6232407800146E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.1589518318153E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.5368259823465E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2333333333 0.7666666667 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.59994984E-04 5.32660375E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 32 1.69801673E-13 5.24838596E-15 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 32 5.27022870E-13 1.33433570E-14 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.60183284E-04 2.27976418E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 30 4.16673640E-13 1.34158125E-14 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 30 8.27060642E-13 2.20673325E-14 + cg2d: Sum(rhs),rhsMax = 4.06864674392303E-01 1.99064579812033E+01 +(PID.TID 0000.0001) cg2d_init_res = 7.47337618866838E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 101 +(PID.TID 0000.0001) cg2d_last_res = 8.10101752007928E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 7.7760000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.5332025207749E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2031687650270E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2231070681067E+02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.2643185457068E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.4299284617011E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3203474887445E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5505833731601E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6036268726553E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.3322892191111E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.8173461607176E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0658255280720E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.9267791284834E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.5362587490827E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5819611173273E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.9331148602638E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.6008227629643E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0307413729394E+01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.5356304149184E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6779907296973E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9971502468267E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9442503899786E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9011840429295E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5924557623694E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4300067676011E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0644108902404E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715837041957E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.5951437918993E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721550676716E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8737317321319E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.9619648030075E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.9536487574626E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.0984416529487E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.7219775222223E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.4862335632547E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.6249168604138E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0181929764305E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8597516870272E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8478787234767E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1102171141631E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.1508436260847E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -6.9111204329924E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.0658307804285E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 9.1652023732460E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5873883030036E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4722174155228E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.2809828301201E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.1332457837451E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4363309053029E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.1266108384821E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.7427691301694E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3322315549145E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3700059350252E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5748370293256E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.4024308977182E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7688291930648E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.6413473329455E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.6359950676834E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7778845871482E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.9252330582506E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8873353121121E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1895787358204E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3518705310077E-02 +(PID.TID 0000.0001) %MON ke_max = 1.5115992174465E-02 +(PID.TID 0000.0001) %MON ke_mean = 6.6159591389065E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604135464270E+22 +(PID.TID 0000.0001) %MON vort_r_min = -7.6693020057722E-07 +(PID.TID 0000.0001) %MON vort_r_max = 8.5174999441944E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247464798211E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859248134469E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920593875699E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0875528093151E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.2884692870013E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.7760000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.7178312455828E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.3107987833920E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -6.7295013295837E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4916014786676E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.3418237418142E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6590115587446E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.8429958827065E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.3463084028146E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.6013308772817E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.3887604597350E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 9.8169656819995E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 2.4525035954285E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.4691129815273E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 9.1773538746738E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 7.0602655036361E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.5537145213670E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 9.4497695273164E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 5.6964259557398E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.9311374557612E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.0636560245866E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.4500521710013E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.7312533574946E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2000000000 0.8000000000 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.69342011E-04 6.01972731E-04 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 42 7.66470221E-14 4.41657482E-15 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 42 7.37326866E-13 3.80276333E-14 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.94674969E-04 3.14255476E-04 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 40 1.38639100E-13 8.18911394E-15 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 40 8.14570633E-13 4.32800061E-14 + cg2d: Sum(rhs),rhsMax = 4.35683592553348E-01 1.99115674551300E+01 +(PID.TID 0000.0001) cg2d_init_res = 7.43077818840119E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 100 +(PID.TID 0000.0001) cg2d_last_res = 8.64496746516316E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.5132456881304E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.4252921894249E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3100780027631E+02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.2833751242446E+03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.4347441065436E+01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4020151062671E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6297128183070E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.9699670330466E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.0568796395779E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.9888961566981E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1625060139144E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0221865377050E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0753962273884E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3200252716606E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.1074315151666E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.6379668363042E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0791390307844E+01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1711994789904E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.7512928144233E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0118377977045E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9452368164193E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9013156465097E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5926142510922E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4304089911892E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0720765916365E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.0715815008762E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.5621451336808E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4721557326677E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8734281989281E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.9279770665869E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.5166264166857E+03 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.0866983038664E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.7236522023554E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.4810006924452E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.7758777749971E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -3.0180730070724E+02 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8597957400326E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.8390667282057E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1136042801195E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.3896871374541E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.8522907870527E-03 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.0261040163152E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.1207584314856E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.9357132777592E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4734156444157E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.3124407967036E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.0821717009627E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4475232469900E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.1461942425937E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.7696015458957E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3401105942538E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3712200084434E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5847477327920E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.4173874757890E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.0142974230716E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0221593181222E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7517122887883E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0238231288152E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.2679804227775E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0141692423020E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3295976578318E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 1.3573143932004E-02 +(PID.TID 0000.0001) %MON ke_max = 1.6766040516652E-02 +(PID.TID 0000.0001) %MON ke_mean = 7.8060416579796E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.3604132176986E+22 +(PID.TID 0000.0001) %MON vort_r_min = -8.0901195079868E-07 +(PID.TID 0000.0001) %MON vort_r_max = 8.7666425960351E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0556865257795E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5247481433753E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4859249105067E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2920585372202E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7677668454427E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.0711711576389E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_time_sec = 8.6400000000000E+05 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.7239342256629E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.3433433435930E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -6.3110576510110E-04 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4989155675137E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.2256432939371E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6321150075165E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.9202532806798E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 1.4323430236226E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.6297073157974E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.3918049556538E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9180396988276E-01 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 2.5474429048911E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.5104398912317E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.0168244355572E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 7.4206545134839E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.6712367990083E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.0061645872488E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 6.2813990969497E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.2923391376540E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.5272736554573E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.7596882239845E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.9411939002926E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 23 ETAN vol( 0 ): 3.639E+15 Parms: SM M1 + Compute Stats, Diag. # 30 UVEL vol( 0 ): 1.250E+23 Parms: UUR MR + Compute Stats, Diag. # 31 VVEL vol( 0 ): 1.262E+23 Parms: VVR MR + Compute Stats, Diag. # 32 WVEL vol( 0 ): 1.501E+23 Parms: WM LR + Compute Stats, Diag. # 26 THETA vol( 0 ): 1.360E+23 Parms: SMR MR + Compute Stats, Diag. # 27 SALT vol( 0 ): 1.360E+23 Parms: SMR MR + Compute Stats, Diag. # 80 CONVADJ vol( 0 ): 1.501E+23 Parms: SMR LR + Compute Stats, Diag. # 25 DETADT2 vol( 0 ): 3.639E+15 Parms: SM M1 + Compute Stats, Diag. # 246 SIheff vol( 0 ): 3.639E+15 Parms: SM M1 + Compute Stats, Diag. # 246 SIheff vol( 1 ): 1.289E+15 Parms: SM M1 + Compute Stats, Diag. # 246 SIheff vol( 3 ): 7.935E+14 Parms: SM M1 + Compute Stats, Diag. # 243 SIarea vol( 0 ): 3.639E+15 Parms: SM M1 + Compute Stats, Diag. # 243 SIarea vol( 1 ): 1.289E+15 Parms: SM M1 + Compute Stats, Diag. # 243 SIarea vol( 3 ): 7.935E+14 Parms: SM M1 + Compute Stats, Diag. # 248 SIhsnow vol( 0 ): 3.639E+15 Parms: SM M1 + Compute Stats, Diag. # 248 SIhsnow vol( 1 ): 1.289E+15 Parms: SM M1 + Compute Stats, Diag. # 248 SIhsnow vol( 3 ): 7.935E+14 Parms: SM M1 + Compute Stats, Diag. # 260 SIuice vol( 0 ): 3.457E+15 Parms: UU M1 + Compute Stats, Diag. # 260 SIuice vol( 1 ): 1.262E+15 Parms: UU M1 + Compute Stats, Diag. # 260 SIuice vol( 3 ): 7.592E+14 Parms: UU M1 + Compute Stats, Diag. # 261 SIvice vol( 0 ): 3.478E+15 Parms: VV M1 + Compute Stats, Diag. # 261 SIvice vol( 1 ): 1.293E+15 Parms: VV M1 + Compute Stats, Diag. # 261 SIvice vol( 3 ): 7.207E+14 Parms: VV M1 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: seaiceStDiag.0000000000.txt , unit= 10 +(PID.TID 0000.0001) %CHECKPOINT 10 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.303062244318426 +(PID.TID 0000.0001) System time: 0.32427100441418588 +(PID.TID 0000.0001) Wall clock time: 16.708030939102173 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.17412000522017479 +(PID.TID 0000.0001) System time: 0.10483799781650305 +(PID.TID 0000.0001) Wall clock time: 0.33323621749877930 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.128845527768135 +(PID.TID 0000.0001) System time: 0.21940800547599792 +(PID.TID 0000.0001) Wall clock time: 16.374683141708374 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.38098300993442535 +(PID.TID 0000.0001) System time: 0.15234299749135971 +(PID.TID 0000.0001) Wall clock time: 0.55511999130249023 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.747840881347656 +(PID.TID 0000.0001) System time: 6.7057996988296509E-002 +(PID.TID 0000.0001) Wall clock time: 15.819536924362183 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.747757852077484 +(PID.TID 0000.0001) System time: 6.7055016756057739E-002 +(PID.TID 0000.0001) Wall clock time: 15.819450378417969 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 15.747598946094513 +(PID.TID 0000.0001) System time: 6.7052006721496582E-002 +(PID.TID 0000.0001) Wall clock time: 15.819287061691284 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.41088455915451050 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.41095972061157227 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.68178027868270874 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.68185472488403320 +(PID.TID 0000.0001) No. starts: 30 +(PID.TID 0000.0001) No. stops: 30 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.14983320236206055 +(PID.TID 0000.0001) System time: 2.7790367603302002E-003 +(PID.TID 0000.0001) Wall clock time: 0.15527200698852539 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 0.14433693885803223 +(PID.TID 0000.0001) System time: 2.5170147418975830E-003 +(PID.TID 0000.0001) Wall clock time: 0.14952659606933594 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 5.2451491355895996E-003 +(PID.TID 0000.0001) System time: 2.4998188018798828E-004 +(PID.TID 0000.0001) Wall clock time: 5.5086612701416016E-003 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.3369321823120117E-004 +(PID.TID 0000.0001) System time: 1.7017126083374023E-005 +(PID.TID 0000.0001) Wall clock time: 1.5234947204589844E-004 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0551030039787292 +(PID.TID 0000.0001) System time: 1.2644022703170776E-002 +(PID.TID 0000.0001) Wall clock time: 5.0689678192138672 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 2.0489403605461121 +(PID.TID 0000.0001) System time: 8.6889863014221191E-003 +(PID.TID 0000.0001) Wall clock time: 2.0577862262725830 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 1.6883903145790100 +(PID.TID 0000.0001) System time: 7.4400007724761963E-003 +(PID.TID 0000.0001) Wall clock time: 1.6959919929504395 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 2.2719463109970093 +(PID.TID 0000.0001) System time: 3.7330090999603271E-003 +(PID.TID 0000.0001) Wall clock time: 2.2767794132232666 +(PID.TID 0000.0001) No. starts: 120 +(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.7342299222946167 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.7344989776611328 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.4950098991394043E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.4960231781005859E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6909636259078979 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.6911425590515137 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11459147930145264 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.11460232734680176 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.20623683929443359 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.20625448226928711 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.8498401641845703E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.8507699966430664E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.19944238662719727 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.19949173927307129 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2493703365325928 +(PID.TID 0000.0001) System time: 3.7260055541992188E-003 +(PID.TID 0000.0001) Wall clock time: 2.2532835006713867 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.8943710327148438E-005 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 1.0347366333007812E-004 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.5936317443847656E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.5340270996093750E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0475724935531616 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.0476830005645752 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.6792488098144531E-002 +(PID.TID 0000.0001) System time: 1.1833995580673218E-002 +(PID.TID 0000.0001) Wall clock time: 7.8639030456542969E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.3876905441284180E-002 +(PID.TID 0000.0001) System time: 3.5991996526718140E-002 +(PID.TID 0000.0001) Wall clock time: 5.9912681579589844E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000007 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000008 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000009 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000010 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000011 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000012 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 19774 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 19774 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_adm.seaice.txt b/verification/global_ocean.cs32x15/results/output_adm.seaice.txt index 1366cbe77c..6a96d8f921 100644 --- a/verification/global_ocean.cs32x15/results/output_adm.seaice.txt +++ b/verification/global_ocean.cs32x15/results/output_adm.seaice.txt @@ -5,26 +5,26 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67s +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68h (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Tue Dec 1 13:43:48 EST 2020 +(PID.TID 0000.0001) // Build date: Sun Apr 17 17:54:36 EDT 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "eedata" file (PID.TID 0000.0001) ># Lines beginning "#" are comments -(PID.TID 0000.0001) ># nTx - No. threads per process in X -(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) (PID.TID 0000.0001) > &EEPARMS (PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., (PID.TID 0000.0001) > nTx=1, (PID.TID 0000.0001) > nTy=1, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -105,8 +105,8 @@ (PID.TID 0000.0001) > staggerTimeStep=.TRUE., (PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., (PID.TID 0000.0001) > implicitFreeSurface=.TRUE., -(PID.TID 0000.0001) > tempAdvScheme=30, -(PID.TID 0000.0001) > saltAdvScheme=30, +(PID.TID 0000.0001) > tempAdvScheme=33, +(PID.TID 0000.0001) > saltAdvScheme=33, (PID.TID 0000.0001) > exactConserv=.TRUE., (PID.TID 0000.0001) > select_rStar=2, (PID.TID 0000.0001) > nonlinFreeSurf=4, @@ -206,7 +206,7 @@ (PID.TID 0000.0001) > useCAL = .TRUE., (PID.TID 0000.0001) > useTHSICE = .FALSE., (PID.TID 0000.0001) > useSEAICE = .TRUE., -(PID.TID 0000.0001) >#useDiagnostics=.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., (PID.TID 0000.0001) >#useMNC=.TRUE., (PID.TID 0000.0001) > useGrdchk=.TRUE., (PID.TID 0000.0001) > / @@ -222,7 +222,7 @@ pkg/ctrl compiled and used ( useCTRL = T ) pkg/seaice compiled and used ( useSEAICE = T ) pkg/thsice compiled but not used ( useThSIce = F ) - pkg/diagnostics compiled but not used ( useDiagnostics = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- pkg/generic_advdiff compiled and used ( useGAD = T ) pkg/mom_common compiled and used ( momStepping = T ) @@ -426,7 +426,7 @@ (PID.TID 0000.0001) > SEAICE_snowThick = 0., (PID.TID 0000.0001) ># (PID.TID 0000.0001) > SEAICE_salt0 = 4., -(PID.TID 0000.0001) > SEAICEadvScheme = 30, +(PID.TID 0000.0001) > SEAICEadvScheme = 33, (PID.TID 0000.0001) > SEAICE_areaLossFormula=2, (PID.TID 0000.0001) > SEAICE_mcPheePiston = 0.0005787037037037037, (PID.TID 0000.0001) >#SEAICE_monFreq = 2592000., @@ -466,10 +466,11 @@ (PID.TID 0000.0001) ># ========================= (PID.TID 0000.0001) ># pkg AUTODIFF parameters : (PID.TID 0000.0001) ># ========================= -(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># useApproxAdvectionInAdMode :: for advection scheme 33, use advection scheme 30 +(PID.TID 0000.0001) ># in adjoint for stabilization (def=.FALSE.) (PID.TID 0000.0001) ># (PID.TID 0000.0001) > &AUTODIFF_PARM01 -(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > useApproxAdvectionInAdMode = .TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff @@ -479,6 +480,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -509,9 +516,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -534,74 +550,46 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># not clear why I have to comment this out, but the reference results have no bounds applied +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl @@ -638,7 +626,9 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) ># this is xx_theta +(PID.TID 0000.0001) >#grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex =201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -647,7 +637,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 4 @@ -659,6 +649,178 @@ (PID.TID 0000.0001) // Gradient check configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:12,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','oceFreez', +(PID.TID 0000.0001) > 'TRELAX ','SRELAX ', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:9,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','SALT ', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', +(PID.TID 0000.0001) ># 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +(PID.TID 0000.0001) ># fileName(3) = 'oceDiag', +(PID.TID 0000.0001) ># frequency(3) = 864000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,3) = 'ADJuvel ','ADJvvel ','ADJwvel ', +(PID.TID 0000.0001) > 'ADJtheta','ADJsalt ', +(PID.TID 0000.0001) > fileName(3) = 'adjDiag', +(PID.TID 0000.0001) ># frequency(3) = 311040000., +(PID.TID 0000.0001) > frequency(3) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,4) = 'ADJetan ','ADJqnet ','ADJempmr', +(PID.TID 0000.0001) > 'ADJtaux ','ADJtauy ', +(PID.TID 0000.0001) > fileName(4) = 'adjDiagSurf', +(PID.TID 0000.0001) ># frequency(4) = 311040000., +(PID.TID 0000.0001) > frequency(4) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,5) = 'ADJheff ','ADJarea ','ADJhsnow', +(PID.TID 0000.0001) > 'ADJuice ','ADJvice ', +(PID.TID 0000.0001) > fileName(5) = 'adjDiagSeaice', +(PID.TID 0000.0001) ># frequency(5) = 311040000., +(PID.TID 0000.0001) > frequency(5) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:13,6) = 'ADJustrs','ADJvstrs','ADJhflux', +(PID.TID 0000.0001) > 'ADJsflux','ADJatemp','ADJpreci', +(PID.TID 0000.0001) > 'ADJroff ','ADJswdn ','ADJlwdn ', +(PID.TID 0000.0001) > 'ADJuwind','ADJvwind','ADJclsst', +(PID.TID 0000.0001) > 'ADJclsss' +(PID.TID 0000.0001) > fileName(6) = 'adjDiagExf', +(PID.TID 0000.0001) ># frequency(6) = 311040000., +(PID.TID 0000.0001) > frequency(6) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) ># an example just to check the agreement with MONITOR output: +(PID.TID 0000.0001) > stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = -172800., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ oceTAUX oceTAUY TFLUX SFLUX oceFreez +(PID.TID 0000.0001) Fields: TRELAX SRELAX +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: UVEL VVEL WVEL PHIHYD VVELMASS UVELMASS WVELSQ THETA SALT +(PID.TID 0000.0001) Creating Output Stream: adjDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJuvel ADJvvel ADJwvel ADJtheta ADJsalt +(PID.TID 0000.0001) Creating Output Stream: adjDiagSurf +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJetan ADJqnet ADJempmr ADJtaux ADJtauy +(PID.TID 0000.0001) Creating Output Stream: adjDiagSeaice +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJheff ADJarea ADJhsnow ADJuice ADJvice +(PID.TID 0000.0001) Creating Output Stream: adjDiagExf +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJustrs ADJvstrs ADJhflux ADJsflux ADJatemp ADJpreci ADJroff ADJswdn ADJlwdn ADJuwind +(PID.TID 0000.0001) Fields: ADJvwind ADJclsst ADJclsss +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: -172800.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN UVEL VVEL WVEL THETA +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F (PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin @@ -824,10 +986,10 @@ (PID.TID 0000.0001) // GAD parameters : (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ (PID.TID 0000.0001) T @@ -842,10 +1004,10 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ (PID.TID 0000.0001) T @@ -888,6 +1050,9 @@ (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 3.110400000000000E+07 (PID.TID 0000.0001) ; @@ -1187,6 +1352,9 @@ (PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ (PID.TID 0000.0001) 2.500000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEbasalDragK2 = /* Basal drag parameter */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1311,16 +1479,16 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ -(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) 33 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -1561,7 +1729,7 @@ (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 239366 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 478732 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 389 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 367 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 384 @@ -1627,10 +1795,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 11937 (PID.TID 0000.0001) ctrl-wet 8: atmos 10408 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 239366 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 478732 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4420 4232 4206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4299 4112 4096 0 @@ -1650,8 +2158,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 8 -(PID.TID 0000.0001) ctrl_init: control vector length: 239366 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 16 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 478732 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1682,10 +2190,150 @@ (PID.TID 0000.0001) Initial state salinity contribution: (PID.TID 0000.0001) Control variable index: 0102 (PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 338 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 80 oceTAUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 81 oceTAUY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 93 TFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 94 SFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 88 oceFreez +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 89 TRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 90 SRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 38 WVELSQ +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 114 ADJuvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 115 ADJvvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 116 ADJwvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 117 ADJtheta +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 118 ADJsalt +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 113 ADJetan +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 122 ADJqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 121 ADJempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 119 ADJtaux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 120 ADJtauy +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 335 ADJheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 334 ADJarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 336 ADJhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 337 ADJuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 338 ADJvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 223 ADJustrs +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 224 ADJvstrs +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 225 ADJhflux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 226 ADJsflux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 227 ADJatemp +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 228 ADJpreci +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 229 ADJroff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 230 ADJswdn +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 231 ADJlwdn +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 232 ADJuwind +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 233 ADJvwind +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 234 ADJclsst +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 235 ADJclsss +(PID.TID 0000.0001) space allocated for all diagnostics: 245 levels +(PID.TID 0000.0001) set mate pointer for diag # 80 oceTAUX , Parms: UU U1 , mate: 81 +(PID.TID 0000.0001) set mate pointer for diag # 81 oceTAUY , Parms: VV U1 , mate: 80 +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 114 ADJuvel , Parms: UURA MR , mate: 115 +(PID.TID 0000.0001) set mate pointer for diag # 115 ADJvvel , Parms: VVRA MR , mate: 114 +(PID.TID 0000.0001) set mate pointer for diag # 119 ADJtaux , Parms: UU A U1 , mate: 120 +(PID.TID 0000.0001) set mate pointer for diag # 120 ADJtauy , Parms: VV A U1 , mate: 119 +(PID.TID 0000.0001) set mate pointer for diag # 337 ADJuice , Parms: UU A M1 , mate: 338 +(PID.TID 0000.0001) set mate pointer for diag # 338 ADJvice , Parms: VV A M1 , mate: 337 +(PID.TID 0000.0001) set mate pointer for diag # 223 ADJustrs , Parms: UU A U1 , mate: 224 +(PID.TID 0000.0001) set mate pointer for diag # 224 ADJvstrs , Parms: VV A U1 , mate: 223 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiagSurf +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiagSeaice +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiagExf +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define 0 regions: +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) space allocated for all stats-diags: 61 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000072000.txt , unit= 9 (PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 19 CS-corner Pts in the domain (PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 @@ -1726,7 +2374,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1883,28 +2531,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 2.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1926,7 +2577,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1935,7 +2586,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -2096,8 +2747,8 @@ (PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) balanceEmPmR = /* balance net fresh-water flux on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectBalanceEmPmR = /* balancing glob.mean EmPmR selector */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ (PID.TID 0000.0001) F @@ -2114,7 +2765,7 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ +(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ @@ -2151,8 +2802,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 200 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -2169,6 +2820,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -3109,7 +3763,9 @@ (PID.TID 0000.0001) ; (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -3170,11 +3826,11 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0113294365963E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5242443278796E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3300374611828E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124036730755E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390857550473E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8421448772884E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3719523207710E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9513639049696E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124735215525E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390867107236E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2881662065410E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3718089817332E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9515844278522E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.1190145162975E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0531070632180E+00 @@ -3215,8 +3871,8 @@ (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3923803824552E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3304632405312E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742267636260E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160047546783E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742298794914E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160082019468E-02 (PID.TID 0000.0001) %MON pe_b_mean = 1.5559232407148E-02 (PID.TID 0000.0001) %MON ke_max = 4.1915507392132E-02 (PID.TID 0000.0001) %MON ke_mean = 2.0848176851410E-04 @@ -3227,8 +3883,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 7.5259723723248E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806340990730E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.2827605093522E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0635497176584E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.6599604852923E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0742649548195E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1717823146781E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3267,60 +3923,60 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) whio : write lev 3 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01044098600904E+01 -(PID.TID 0000.0001) cg2d_init_res = 4.44043358713332E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056794460E+03 1.99899957765731E+01 +(PID.TID 0000.0001) cg2d_init_res = 4.43971191219367E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 85 -(PID.TID 0000.0001) cg2d_last_res = 5.06414115936366E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.07686561557185E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72001 (PID.TID 0000.0001) %MON time_secondsf = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2051249133809E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3419024915856E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913633830167E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6052460436400E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2164149508380E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1351238145532E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9147147213024E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2798875892343E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4807939970166E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8598385973079E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2189682887220E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0093258976785E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0032975188440E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5264243168813E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3603764289998E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0302485278843E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1577235921591E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.9777733290690E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4170621575401E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0243929450934E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1189598621220E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.4734375525763E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0530773915754E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9949385356899E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9504992811681E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8463247532135E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775795017520E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752446238821E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8897568688442E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3340363244988E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 3.1816705524203E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2051222695513E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3419978053081E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913273644945E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6043104342512E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2078906854906E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1351240674627E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9147144746637E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2798152561538E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4807931326846E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8597728907546E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2189676686642E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0093262543218E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0031947935350E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5264252149183E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3603600553780E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0301969119725E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1580099839619E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.9913717724285E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4170816793243E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0242125273572E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1188608103279E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.4730099919255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0530766021255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9949002529903E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9423541546752E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8371933826139E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775966828757E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752445949015E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8891707170860E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3257315891227E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 3.1816705526943E+03 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.5031225998834E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 5.3974228578428E+00 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.3638893283503E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1969102284547E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 5.5400158377234E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.3620653754665E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1751824822731E+00 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0191527312954E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8243261285050E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9864997331198E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.2963236410942E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 1.4617630761920E-03 -(PID.TID 0000.0001) %MON forcing_empmr_min = -9.1579234388485E-03 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -1.0258382043646E-04 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.3954412167461E-04 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5222213493219E-05 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8243662651812E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9857852595388E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.2684937337005E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 1.4497381686275E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -9.1595008617492E-03 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -1.0301529231643E-04 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.3892150321490E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5164711539849E-05 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4760613571392E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.9720558541057E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -4.8574762239531E-03 @@ -3331,25 +3987,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3320871311147E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.6108888525108E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5878175496687E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2203275097058E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8936130476732E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7832341911328E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4168883722933E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3700360873345E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.0349931457566E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7832341911328E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4387460845106E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1945629595162E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0902912690712E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2203268141141E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8936106824487E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7842672495280E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4168892618220E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3700338613535E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.0359268911060E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7842672495280E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4387613825320E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1945622630761E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0902912918380E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386016457284E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2376169479836E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.3057366329715E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2376167794751E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.3057361552083E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723825034E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723823363E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806339598239E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827599942565E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.3067448747848E-09 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1367035122530E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827599936014E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0521066968803E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1348781845667E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3370,105 +4026,105 @@ (PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0866812684509E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0212824908588E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.8443227293750E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6806090565726E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.1870108242973E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0181653187189E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.8432076380342E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6721694915793E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1869862467975E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.4976934522161E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.8997000234202E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.3122573953966E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 5.0439985670719E-03 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.4935992979516E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.8979657868158E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.3005125085677E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 5.0419633357790E-03 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 8.4010922745971E-05 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 4.7234444427737E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 5.4997593417980E-06 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 8.3913284662210E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 4.7173190655870E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 5.4875440165992E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21288392412295E+03 2.02752763383599E+01 -(PID.TID 0000.0001) cg2d_init_res = 2.95282037236627E+00 + cg2d: Sum(rhs),rhsMax = 2.21279070381434E+03 2.00675924606025E+01 +(PID.TID 0000.0001) cg2d_init_res = 3.31655324910114E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 71 -(PID.TID 0000.0001) cg2d_last_res = 4.91423921416459E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.28101554773147E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72002 (PID.TID 0000.0001) %MON time_secondsf = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2055426288212E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3675174715205E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913174828527E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6013501103536E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2148512931705E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1370743578996E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9084594960257E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2561098209887E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4793034974917E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8329512499567E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2115852076025E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086887454191E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0037337645763E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5254533521105E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3329083505720E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0271855387292E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1438669960513E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.1296997285386E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3781868155334E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9683631619034E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1188549138273E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2440085145412E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532414163186E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9952373621790E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9306129948912E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8607935536715E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775993418510E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752447786906E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8899436065650E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3284600324774E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9942110137701E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -4.8299522578055E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -3.0292946172013E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2118147365318E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7338195901797E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2055357352041E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3679266266723E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2911788322764E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5978297321673E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1876984435862E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1371493608787E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9084133297118E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2559668824055E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4793000700619E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8328889249519E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2109928033502E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086873866913E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0036348947121E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5254575731480E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3326995370832E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0273814968584E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1445777704401E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4830816727459E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3790289735969E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9690896350906E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1186560685218E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2323809449946E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532385773751E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9951650124338E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9159518783458E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8432108044011E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776332875335E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752446643164E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8888136529897E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3126850599905E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9870623464157E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.9453294255945E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9939994213021E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2150035047898E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.5923528921574E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0190327619373E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8424081878683E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9755513673008E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1387599968449E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 2.1546343755147E-03 -(PID.TID 0000.0001) %MON forcing_empmr_min = -7.3685774228586E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.4984571439976E-07 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 7.5808566069832E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6338819976001E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8425056079758E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9745357525926E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.0938466968828E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.1827499405249E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -9.0088345212459E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -1.7792921968994E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 7.7849457291177E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6269830882095E-06 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4755808644372E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.8169831944556E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7971927538163E-03 -(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5252166078097E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4187195052415E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.8059663870910E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7969062501261E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5249575197589E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4148640537068E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 2.5549422200851E-01 (PID.TID 0000.0001) %MON forcing_fv_min = -3.2770782795392E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3292155390203E-02 -(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6023925876260E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5780658854282E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2026862045567E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8952596515888E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7332751708969E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4254563437963E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3715924055087E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9898154135410E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7332751708969E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4381826184805E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1748117957032E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0868782762451E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3386047618794E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2383240981466E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2982678520355E-06 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3286663770664E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6029853767889E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5738383908685E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2025560027749E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8937624541662E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7358375830545E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4249583248795E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3701833361645E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9921328062650E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7358375830545E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4382280429131E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1747719124580E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0868794873325E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3386047749860E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2384039917998E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2983917892692E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723700449E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281828435E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827524212094E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.1274864728441E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6498834905450E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723700720E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281592018E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827523837758E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.0413410642298E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7125607971092E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3479,59 +4135,59 @@ (PID.TID 0000.0001) %MON seaice_time_sec = 6.2209728000000E+09 (PID.TID 0000.0001) %MON seaice_uice_max = 4.0000000000000E-01 (PID.TID 0000.0001) %MON seaice_uice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4603281048036E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4247871037886E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2840567638637E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6944785268711E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4600205709962E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4247808682930E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2830257147533E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6954369308933E-01 (PID.TID 0000.0001) %MON seaice_vice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7491809278571E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5671760613607E-01 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.1104723086035E-04 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7484577352693E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5672632608415E-01 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.1065968234343E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0648778809366E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.8677599451052E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6778577479138E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.1925529550464E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0542870875553E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.8645556747777E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6490470859160E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1924579221823E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5309903083677E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9144599294526E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2961045581480E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 9.9173579555690E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.6736928498198E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 9.4128355225835E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.1074428190391E-05 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5153581193664E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9090976414345E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2601792029793E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 9.9150630216198E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = -4.2351647362715E-22 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.6691996138031E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 9.3831895581249E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.0964131780687E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000072000.txt , unit= 9 (PID.TID 0000.0001) %CHECKPOINT 72002 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958367860356662D+04 - --> objf_test(bi,bj) = 0.744034080925459D+04 - --> objf_test(bi,bj) = 0.903201348673795D+04 - --> objf_test(bi,bj) = 0.776969324366527D+04 - --> objf_test(bi,bj) = 0.652615612992838D+04 - --> objf_test(bi,bj) = 0.120802631794112D+05 - --> objf_test(bi,bj) = 0.130341272691712D+05 - --> objf_test(bi,bj) = 0.133353006787974D+05 - --> objf_test(bi,bj) = 0.700904323766249D+04 - --> objf_test(bi,bj) = 0.649183382684952D+04 - --> objf_test(bi,bj) = 0.960938437035950D+04 - --> objf_test(bi,bj) = 0.833295913680691D+04 -(PID.TID 0000.0001) local fc = 0.110244793972211D+06 -(PID.TID 0000.0001) global fc = 0.110244793972211D+06 + --> objf_test(bi,bj) = 0.957698897805388D+04 + --> objf_test(bi,bj) = 0.744070638102112D+04 + --> objf_test(bi,bj) = 0.902846354891767D+04 + --> objf_test(bi,bj) = 0.776470984558986D+04 + --> objf_test(bi,bj) = 0.652008606038662D+04 + --> objf_test(bi,bj) = 0.120606288998781D+05 + --> objf_test(bi,bj) = 0.130254113987034D+05 + --> objf_test(bi,bj) = 0.133331321726031D+05 + --> objf_test(bi,bj) = 0.700668973044636D+04 + --> objf_test(bi,bj) = 0.648463538353451D+04 + --> objf_test(bi,bj) = 0.960342901189634D+04 + --> objf_test(bi,bj) = 0.832322568233230D+04 +(PID.TID 0000.0001) local fc = 0.110168107093363D+06 +(PID.TID 0000.0001) global fc = 0.110168107093363D+06 (PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290194968310E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21287118183823E+03 2.02752724448766E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056794460E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070381434E+03 2.00675924606025E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) whio : write lev 2 rec 2 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290194968310E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21287118183823E+03 2.02752724448774E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056794460E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070381434E+03 2.00675924606025E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.21287118183823E+03 2.02752724448774E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3558,41 +4214,16 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.4166696957658E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8604925776467E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0987963401719E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3081704447738E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.5528415076634E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.4152978675396E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8548441768398E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0988019591431E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3078642455073E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.5330962369341E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3629,120 +4260,42 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 2.00428399340870E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.08420217248550E-19 2.00710644223751E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.6246014816514E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.1839770429057E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.0039868074883E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5337742514825E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1693821829687E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 6.5590624602300E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -4.0429209808168E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.4877824084618E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1404442002761E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1846793534546E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.4793265666538E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.3576807709467E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.1657548901394E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0988302571485E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8086548882333E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.9966720868198E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6353848229056E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0224237087651E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9649086242085E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0614513497815E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.6323808285796E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.1178274039794E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.0106718807477E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5199059089828E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1570622109876E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 6.5479475576535E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -3.9743474904130E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.4785190484084E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1240095413910E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1692986958325E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.4155662867471E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.3554091832188E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.1468898080260E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0975164935946E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8011158785512E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.9924710600804E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6357737527001E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0215506718664E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9627858562340E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0442786638542E-01 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 2.2183059464901E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.7635153184119E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 3.1202312690597E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.3209080389433E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 7.2586166195961E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 5.3522978316050E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -7.1839770429057E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.6787203840270E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 6.3663626062836E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 1.9213999080218E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 5.2067479166214E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -4.0429209808168E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 4.7509721741177E-04 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 5.3658678145693E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.6317908254372E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.6657047994060E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -2.0279035710083E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.4280330862525E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 3.9036851518718E-06 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.5780975334070E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.1118108138033E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.6094344192611E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.1249550511196E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.3721597205356E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.5272799746061E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.5578965771849E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -2.9287317398570E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1126695862231E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.3775257683425E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 5.9672635160126E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.6353848229056E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -9.9966720868198E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.0246373614783E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.9698512186407E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 4.1631357876876E+02 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.9380738400643E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.0516910132546E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.1868325506717E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.6245695231712E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.6355167999667E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.3576807709467E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -6.4793265666538E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.5250122474749E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0561997715571E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.7936414788531E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.6353848229056E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -9.9966720868198E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.0224237087651E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.9649086242085E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 4.0614513497815E+02 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290194968310E+03 2.01044098600904E+01 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72001 @@ -3752,56 +4305,31 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.5570638525519E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.1316613043023E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5791194177931E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2113435007966E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1408581029169E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.2497758757760E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7182521345187E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.8465521203454E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1145632976432E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.5825482627336E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.1624340180646E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.5546038884979E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0469841572061E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.9900702723344E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 8.3484410561519E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 6.2066140042321E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.5138649292692E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0989197563543E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.6447247136313E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.2441717217351E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.5493741635697E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.5416218575609E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.6368916914789E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.3951388227279E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.3673154941077E-01 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.5312818333529E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.1044077066504E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5590839288002E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2104025590686E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1368997417758E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.2376298589683E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7185816273268E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.7783655779338E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1154370454821E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.5311033057600E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.1296620333848E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.5363822798746E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0358911319823E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.0110150403460E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 8.3085307819648E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.0865547586912E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2295930586404E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0996901683714E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3190102154656E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.3884136071346E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.1686802921599E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.1772521860789E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.2804219452122E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.8997525634943E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0481709712161E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3810,145 +4338,69 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.8961617159438E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.5182187790994E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -3.8018435109880E-03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.3899724023003E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 4.5265644386717E-03 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 4.2167503952960E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.4446055562960E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -5.2251133218681E-04 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 3.3133950456199E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.5927761190610E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.3357354045854E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.2797286541897E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -1.4591847704966E-04 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.1337088023449E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1696409676793E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1784065176065E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2209527914716E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.4933807972626E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6610757043195E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9686988305145E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.8997159429687E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.0540046284136E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.4334937421563E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3264085544216E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1750739654464E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.9830718003787E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.4339678258624E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -3.6959318115363E-03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.3749961185380E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 4.4879432559535E-03 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 4.3632609718522E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.4339977348913E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -4.8830612943234E-04 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 3.3161796770089E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.5843361906593E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.3308455157525E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -3.9079419438769E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = 3.3921648195692E-04 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.9189971926067E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.0624881158716E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1582601246795E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2199662846394E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.4866003147213E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6568935333779E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9458737115260E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.8266575949916E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.0504271860550E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.4010305866164E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3243364704260E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1523412918037E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 2.16840434497101E-19 1.66793724345852E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.05998412772246E-18 1.68407810984056E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 5.7205823139072E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -9.1886399227791E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.0802112779408E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.7940260384679E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 1.0340302804098E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.1838885565336E+01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -9.5734446527135E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.4802600596624E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.1023440549974E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.3906778278697E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.7986713087023E-01 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.3009431449768E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.2755852043598E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.4245228845196E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.4189550895085E-04 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 6.5773822157659E+04 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.9153998934347E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.5813671073990E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 8.0280618074807E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 5.1696964089272E+01 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.7010382760905E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.4136746442043E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.4523762359054E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2590386634025E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 4.2050340377013E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.6883205167047E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -2.2944498189972E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.8261521001341E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.1167258836041E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.3216630658213E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.2499261140097E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -3.5420357701033E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.5672217516046E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1277293653401E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 3.4210572960858E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 2.7453053142179E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.3505107014799E+04 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2709579178361E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.8958268482411E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 1.1589945766249E+01 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 1.9983758588220E-03 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.7485575957978E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 4.4258549363850E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.8959545544449E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.8075600713760E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 5.7205823139072E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -9.1886399227791E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 2.9377941944713E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.8385838700307E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 1.0739611160114E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.1838885565336E+01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -9.5734446527135E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 8.2035881019870E-04 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.1760907160435E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.4400292064466E-02 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 9.2940632106271E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -8.8367184998034E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -4.3728915687673E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 4.2042163476082E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.7718944330806E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.1439312991471E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.7252349633560E+00 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 4.7205805865076E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.5816183632338E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.1465450606095E-03 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.6499135533849E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -6.7937812293553E+03 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.0201568934504E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 8.9134273135320E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 5.3498051430801E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.9153998934347E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -6.5773822157659E+07 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.8241911801333E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 8.0280948636226E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 5.1697803006751E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.8850808974084E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.5854095735632E-01 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 3.9521563176228E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 2.1498321958080E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.2512876895947E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.3009431449768E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.7986713087023E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.2593986628235E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 2.4237741735850E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.4187389817854E-04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 2.9153998934347E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -6.5773822157659E+07 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.5813671073990E+03 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 8.0280618074807E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 5.1696964089272E+04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3967,6 +4419,20 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) nRecords = 15 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 15 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >siTICE < >siYNEG < >siHSNOW < >siUICE < >siUICE_2< >siUICE_3< >siVICE < >siVICE_2< >siVICE_3< >siHEFF < >siHEFF_2< >siHEFF_3< >siAREA < >siAREA_2< >siAREA_3< +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_LEV_RL: read field: "siTICE ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siAREA ", # 13 in fldList, rec= 13 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siHEFF ", # 10 in fldList, rec= 10 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siHSNOW ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siUICE ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siVICE ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_seaice.0000072000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3977,56 +4443,31 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.6699923865031E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.8381206658633E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 6.8569761644888E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.7810156919579E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9302096657171E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.8743857908375E+02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.0172321670906E+02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -6.6956341342667E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.7662490658385E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.8200668006845E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.4738046478727E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.8228274544159E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.2364547374063E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.2473126137858E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.3046395512884E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.6674976478940E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0606309914889E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0993846314602E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.5134982252875E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9945485580027E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.1845960498210E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1377086735560E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.0249875534577E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.9002002860834E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.1085634478171E-01 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.1602307613067E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.0246310915788E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 5.7584488630449E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.4014959806929E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.3574030398936E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.0707546939960E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -9.4196127878106E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -7.8905109750253E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.2071361263452E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.1313059725157E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.5769196032595E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.6418947949825E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.1365792018612E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.6022088913195E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 9.8658766500181E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.1222038149120E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.4682187418979E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.1002155343035E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3804399940881E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.4738509994925E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.1420959281799E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.2495975227888E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.7048895051499E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.1985116003524E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.8570304442123E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4035,38 +4476,58 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 4.8638516589226E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.0895596223575E+01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -6.5282641022054E-03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.8420231070373E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 9.3748571487232E-03 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.2877782081150E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -3.3824242251147E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -1.1037531401454E-03 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 8.8424009895229E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 4.0752275542944E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.2365421466090E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.2694116662978E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.4448309712203E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.6930675076182E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.3134793604491E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.4369900845280E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.1819693767400E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.4697773068328E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6218594866885E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.1876682099178E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.8312998437921E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -2.0590266727224E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.4299472656002E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3353940855601E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.7313431459124E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 4.9488981417057E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.0834189196631E+01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -6.4403841296523E-03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.8295978194080E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 9.3340122749278E-03 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.3356415489497E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -3.3302573062651E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -1.0330684198839E-03 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 8.8034305517610E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 4.0454612210914E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.2316136187536E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.0145948065555E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.6166584247968E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.6891445369660E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1813413771611E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1274383792318E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.1810901020165E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.4695351569029E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6100136858925E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.0548461715653E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.7156686047747E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.9034484921955E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.3704592768480E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3162850519131E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.3154997995392E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10244793972211E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10168107093363E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -4112,25 +4573,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478476371E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392438417E+03 2.02752763487581E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056807569E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070407554E+03 2.00675924702399E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958372095414789D+04 - --> objf_test(bi,bj) = 0.744034080926527D+04 - --> objf_test(bi,bj) = 0.903201348673608D+04 - --> objf_test(bi,bj) = 0.776969324366797D+04 - --> objf_test(bi,bj) = 0.652615612992843D+04 - --> objf_test(bi,bj) = 0.120802631794031D+05 - --> objf_test(bi,bj) = 0.130341272691702D+05 - --> objf_test(bi,bj) = 0.133353006787987D+05 - --> objf_test(bi,bj) = 0.700904323766459D+04 - --> objf_test(bi,bj) = 0.649183449530763D+04 - --> objf_test(bi,bj) = 0.960938437036977D+04 - --> objf_test(bi,bj) = 0.833295997088989D+04 -(PID.TID 0000.0001) local fc = 0.110244837825350D+06 -(PID.TID 0000.0001) global fc = 0.110244837825350D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10244837825350E+05 + --> objf_test(bi,bj) = 0.957703123256773D+04 + --> objf_test(bi,bj) = 0.744070638103206D+04 + --> objf_test(bi,bj) = 0.902846354891582D+04 + --> objf_test(bi,bj) = 0.776470984559228D+04 + --> objf_test(bi,bj) = 0.652008606038669D+04 + --> objf_test(bi,bj) = 0.120606288998683D+05 + --> objf_test(bi,bj) = 0.130254113987023D+05 + --> objf_test(bi,bj) = 0.133331321726045D+05 + --> objf_test(bi,bj) = 0.700668973044844D+04 + --> objf_test(bi,bj) = 0.648463616349351D+04 + --> objf_test(bi,bj) = 0.960342901190630D+04 + --> objf_test(bi,bj) = 0.832322643246791D+04 +(PID.TID 0000.0001) local fc = 0.110168150877986D+06 +(PID.TID 0000.0001) global fc = 0.110168150877986D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10168150877986E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4168,31 +4629,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478450160E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392386188E+03 2.02752763279578E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056781358E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070355331E+03 2.00675924509609E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958363641711870D+04 - --> objf_test(bi,bj) = 0.744034080924391D+04 - --> objf_test(bi,bj) = 0.903201348673990D+04 - --> objf_test(bi,bj) = 0.776969324366261D+04 - --> objf_test(bi,bj) = 0.652615612992832D+04 - --> objf_test(bi,bj) = 0.120802631794193D+05 - --> objf_test(bi,bj) = 0.130341272691722D+05 - --> objf_test(bi,bj) = 0.133353006787960D+05 - --> objf_test(bi,bj) = 0.700904323766043D+04 - --> objf_test(bi,bj) = 0.649183315911506D+04 - --> objf_test(bi,bj) = 0.960938437034925D+04 - --> objf_test(bi,bj) = 0.833295830344266D+04 -(PID.TID 0000.0001) local fc = 0.110244750284648D+06 -(PID.TID 0000.0001) global fc = 0.110244750284648D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10244750284648E+05 + --> objf_test(bi,bj) = 0.957694688835907D+04 + --> objf_test(bi,bj) = 0.744070638101021D+04 + --> objf_test(bi,bj) = 0.902846354891956D+04 + --> objf_test(bi,bj) = 0.776470984558738D+04 + --> objf_test(bi,bj) = 0.652008606038655D+04 + --> objf_test(bi,bj) = 0.120606288998878D+05 + --> objf_test(bi,bj) = 0.130254113987047D+05 + --> objf_test(bi,bj) = 0.133331321726018D+05 + --> objf_test(bi,bj) = 0.700668973044423D+04 + --> objf_test(bi,bj) = 0.648463460387563D+04 + --> objf_test(bi,bj) = 0.960342901188637D+04 + --> objf_test(bi,bj) = 0.832322493306360D+04 +(PID.TID 0000.0001) local fc = 0.110168063474727D+06 +(PID.TID 0000.0001) global fc = 0.110168063474727D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10168063474727E+05 grad-res ------------------------------- - grad-res 0 1 1 1 1 1 1 1 1.10244793972E+05 1.10244837825E+05 1.10244750285E+05 - grad-res 0 1 1 1 0 1 1 1 4.37702247029E+00 4.37703505741E+00 -2.87572571511E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10244793972211E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.37702247028894E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.37703505740501E+00 + grad-res 0 1 1 1 1 1 1 1 1.10168107093E+05 1.10168150878E+05 1.10168063475E+05 + grad-res 0 1 1 1 0 1 1 1 4.37551203627E+00 4.37016294745E+00 1.22250579484E-03 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10168107093363E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.37551203627238E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.37016294745263E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 55522 2 @@ -4236,25 +4697,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478484989E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392455611E+03 2.02752763562222E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056816187E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070424735E+03 2.00675924771419E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958371840365095D+04 - --> objf_test(bi,bj) = 0.744034080927319D+04 - --> objf_test(bi,bj) = 0.903201348673464D+04 - --> objf_test(bi,bj) = 0.776969324366995D+04 - --> objf_test(bi,bj) = 0.652615612992849D+04 - --> objf_test(bi,bj) = 0.120802631793971D+05 - --> objf_test(bi,bj) = 0.130341272691694D+05 - --> objf_test(bi,bj) = 0.133353006787997D+05 - --> objf_test(bi,bj) = 0.700904323766609D+04 - --> objf_test(bi,bj) = 0.649183383492662D+04 - --> objf_test(bi,bj) = 0.960938437037692D+04 - --> objf_test(bi,bj) = 0.833295941493903D+04 -(PID.TID 0000.0001) local fc = 0.110244834058532D+06 -(PID.TID 0000.0001) global fc = 0.110244834058532D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10244834058532E+05 + --> objf_test(bi,bj) = 0.957702871020166D+04 + --> objf_test(bi,bj) = 0.744070638104016D+04 + --> objf_test(bi,bj) = 0.902846354891437D+04 + --> objf_test(bi,bj) = 0.776470984559409D+04 + --> objf_test(bi,bj) = 0.652008606038670D+04 + --> objf_test(bi,bj) = 0.120606288998610D+05 + --> objf_test(bi,bj) = 0.130254113987014D+05 + --> objf_test(bi,bj) = 0.133331321726053D+05 + --> objf_test(bi,bj) = 0.700668973044994D+04 + --> objf_test(bi,bj) = 0.648463539118626D+04 + --> objf_test(bi,bj) = 0.960342901191323D+04 + --> objf_test(bi,bj) = 0.832322597272919D+04 +(PID.TID 0000.0001) local fc = 0.110168147123583D+06 +(PID.TID 0000.0001) global fc = 0.110168147123583D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10168147123583E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4292,31 +4753,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478441542E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392368994E+03 2.02752763204977E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056772740E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070338149E+03 2.00675924440625E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958363897566973D+04 - --> objf_test(bi,bj) = 0.744034080923598D+04 - --> objf_test(bi,bj) = 0.903201348674135D+04 - --> objf_test(bi,bj) = 0.776969324366062D+04 - --> objf_test(bi,bj) = 0.652615612992829D+04 - --> objf_test(bi,bj) = 0.120802631794254D+05 - --> objf_test(bi,bj) = 0.130341272691730D+05 - --> objf_test(bi,bj) = 0.133353006787951D+05 - --> objf_test(bi,bj) = 0.700904323765895D+04 - --> objf_test(bi,bj) = 0.649183381877525D+04 - --> objf_test(bi,bj) = 0.960938437034213D+04 - --> objf_test(bi,bj) = 0.833295885908102D+04 -(PID.TID 0000.0001) local fc = 0.110244754058487D+06 -(PID.TID 0000.0001) global fc = 0.110244754058487D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10244754058487E+05 + --> objf_test(bi,bj) = 0.957694941896771D+04 + --> objf_test(bi,bj) = 0.744070638100211D+04 + --> objf_test(bi,bj) = 0.902846354892098D+04 + --> objf_test(bi,bj) = 0.776470984558556D+04 + --> objf_test(bi,bj) = 0.652008606038656D+04 + --> objf_test(bi,bj) = 0.120606288998951D+05 + --> objf_test(bi,bj) = 0.130254113987055D+05 + --> objf_test(bi,bj) = 0.133331321726009D+05 + --> objf_test(bi,bj) = 0.700668973044277D+04 + --> objf_test(bi,bj) = 0.648463537588618D+04 + --> objf_test(bi,bj) = 0.960342901187939D+04 + --> objf_test(bi,bj) = 0.832322539234000D+04 +(PID.TID 0000.0001) local fc = 0.110168067236613D+06 +(PID.TID 0000.0001) global fc = 0.110168067236613D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10168067236613E+05 grad-res ------------------------------- - grad-res 0 2 2 1 1 1 1 1 1.10244793972E+05 1.10244834059E+05 1.10244754058E+05 - grad-res 0 2 2 2 0 1 1 1 3.99998467795E+00 4.00000226218E+00 -4.39607552472E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10244793972211E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.99998467794779E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.00000226218253E+00 + grad-res 0 2 2 1 1 1 1 1 1.10168107093E+05 1.10168147124E+05 1.10168067237E+05 + grad-res 0 2 2 2 0 1 1 1 3.99573132889E+00 3.99434852734E+00 3.46069702973E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10168107093363E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.99573132889390E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.99434852733975E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 55522 3 @@ -4360,25 +4821,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478494371E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392474174E+03 2.02752763626173E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056825569E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070443297E+03 2.00675924830491E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958371073854876D+04 - --> objf_test(bi,bj) = 0.744034080927998D+04 - --> objf_test(bi,bj) = 0.903201348673339D+04 - --> objf_test(bi,bj) = 0.776969324367170D+04 - --> objf_test(bi,bj) = 0.652615612992853D+04 - --> objf_test(bi,bj) = 0.120802631793920D+05 - --> objf_test(bi,bj) = 0.130341272691689D+05 - --> objf_test(bi,bj) = 0.133353006788004D+05 - --> objf_test(bi,bj) = 0.700904323766725D+04 - --> objf_test(bi,bj) = 0.649183382675834D+04 - --> objf_test(bi,bj) = 0.960938437038276D+04 - --> objf_test(bi,bj) = 0.833295911485459D+04 -(PID.TID 0000.0001) local fc = 0.110244826085187D+06 -(PID.TID 0000.0001) global fc = 0.110244826085187D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10244826085187E+05 + --> objf_test(bi,bj) = 0.957702106650510D+04 + --> objf_test(bi,bj) = 0.744070638104706D+04 + --> objf_test(bi,bj) = 0.902846354891317D+04 + --> objf_test(bi,bj) = 0.776470984559562D+04 + --> objf_test(bi,bj) = 0.652008606038676D+04 + --> objf_test(bi,bj) = 0.120606288998550D+05 + --> objf_test(bi,bj) = 0.130254113987007D+05 + --> objf_test(bi,bj) = 0.133331321726060D+05 + --> objf_test(bi,bj) = 0.700668973045114D+04 + --> objf_test(bi,bj) = 0.648463538340417D+04 + --> objf_test(bi,bj) = 0.960342901191891D+04 + --> objf_test(bi,bj) = 0.832322566076307D+04 +(PID.TID 0000.0001) local fc = 0.110168139160147D+06 +(PID.TID 0000.0001) global fc = 0.110168139160147D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10168139160147E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4416,31 +4877,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478432160E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392350432E+03 2.02752763141066E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056763358E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070319587E+03 2.00675924381450E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958364664086333D+04 - --> objf_test(bi,bj) = 0.744034080922919D+04 - --> objf_test(bi,bj) = 0.903201348674260D+04 - --> objf_test(bi,bj) = 0.776969324365888D+04 - --> objf_test(bi,bj) = 0.652615612992825D+04 - --> objf_test(bi,bj) = 0.120802631794304D+05 - --> objf_test(bi,bj) = 0.130341272691736D+05 - --> objf_test(bi,bj) = 0.133353006787944D+05 - --> objf_test(bi,bj) = 0.700904323765779D+04 - --> objf_test(bi,bj) = 0.649183382694067D+04 - --> objf_test(bi,bj) = 0.960938437033624D+04 - --> objf_test(bi,bj) = 0.833295915897246D+04 -(PID.TID 0000.0001) local fc = 0.110244762031728D+06 -(PID.TID 0000.0001) global fc = 0.110244762031728D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10244762031728E+05 + --> objf_test(bi,bj) = 0.957695706241374D+04 + --> objf_test(bi,bj) = 0.744070638099519D+04 + --> objf_test(bi,bj) = 0.902846354892222D+04 + --> objf_test(bi,bj) = 0.776470984558395D+04 + --> objf_test(bi,bj) = 0.652008606038650D+04 + --> objf_test(bi,bj) = 0.120606288999011D+05 + --> objf_test(bi,bj) = 0.130254113987062D+05 + --> objf_test(bi,bj) = 0.133331321726002D+05 + --> objf_test(bi,bj) = 0.700668973044157D+04 + --> objf_test(bi,bj) = 0.648463538366487D+04 + --> objf_test(bi,bj) = 0.960342901187375D+04 + --> objf_test(bi,bj) = 0.832322570410973D+04 +(PID.TID 0000.0001) local fc = 0.110168075199599D+06 +(PID.TID 0000.0001) global fc = 0.110168075199599D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10168075199599E+05 grad-res ------------------------------- - grad-res 0 3 3 1 1 1 1 1 1.10244793972E+05 1.10244826085E+05 1.10244762032E+05 - grad-res 0 3 3 3 0 1 1 1 3.20265967073E+00 3.20267294446E+00 -4.14459565090E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10244793972211E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.20265967073305E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.20267294446239E+00 + grad-res 0 3 3 1 1 1 1 1 1.10168107093E+05 1.10168139160E+05 1.10168075200E+05 + grad-res 0 3 3 3 0 1 1 1 3.19959638882E+00 3.19802738377E+00 4.90375929577E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10168107093363E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.19959638882237E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.19802738376893E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 55522 4 @@ -4484,25 +4945,25 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478505563E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392496358E+03 2.02752763685279E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056836762E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070465487E+03 2.00675924884907E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958370758471763D+04 - --> objf_test(bi,bj) = 0.744034080928620D+04 - --> objf_test(bi,bj) = 0.903201348673221D+04 - --> objf_test(bi,bj) = 0.776969324367337D+04 - --> objf_test(bi,bj) = 0.652615612992861D+04 - --> objf_test(bi,bj) = 0.120802631793879D+05 - --> objf_test(bi,bj) = 0.130341272691683D+05 - --> objf_test(bi,bj) = 0.133353006788010D+05 - --> objf_test(bi,bj) = 0.700904323766825D+04 - --> objf_test(bi,bj) = 0.649183382683196D+04 - --> objf_test(bi,bj) = 0.960938437038794D+04 - --> objf_test(bi,bj) = 0.833295898057991D+04 -(PID.TID 0000.0001) local fc = 0.110244822797163D+06 -(PID.TID 0000.0001) global fc = 0.110244822797163D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10244822797163E+05 + --> objf_test(bi,bj) = 0.957701793638783D+04 + --> objf_test(bi,bj) = 0.744070638105332D+04 + --> objf_test(bi,bj) = 0.902846354891200D+04 + --> objf_test(bi,bj) = 0.776470984559711D+04 + --> objf_test(bi,bj) = 0.652008606038676D+04 + --> objf_test(bi,bj) = 0.120606288998500D+05 + --> objf_test(bi,bj) = 0.130254113987001D+05 + --> objf_test(bi,bj) = 0.133331321726066D+05 + --> objf_test(bi,bj) = 0.700668973045215D+04 + --> objf_test(bi,bj) = 0.648463538345809D+04 + --> objf_test(bi,bj) = 0.960342901192388D+04 + --> objf_test(bi,bj) = 0.832322552608287D+04 +(PID.TID 0000.0001) local fc = 0.110168135895411D+06 +(PID.TID 0000.0001) global fc = 0.110168135895411D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10168135895411E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4540,31 +5001,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478420969E+03 2.01044098600904E+01 - cg2d: Sum(rhs),rhsMax = 2.21288392328249E+03 2.02752763082013E+01 + cg2d: Sum(rhs),rhsMax = 2.21289056752167E+03 1.99899957765731E+01 + cg2d: Sum(rhs),rhsMax = 2.21279070297400E+03 2.00675924327156E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.958364979358167D+04 - --> objf_test(bi,bj) = 0.744034080922298D+04 - --> objf_test(bi,bj) = 0.903201348674378D+04 - --> objf_test(bi,bj) = 0.776969324365724D+04 - --> objf_test(bi,bj) = 0.652615612992823D+04 - --> objf_test(bi,bj) = 0.120802631794345D+05 - --> objf_test(bi,bj) = 0.130341272691741D+05 - --> objf_test(bi,bj) = 0.133353006787938D+05 - --> objf_test(bi,bj) = 0.700904323765677D+04 - --> objf_test(bi,bj) = 0.649183382686709D+04 - --> objf_test(bi,bj) = 0.960938437033115D+04 - --> objf_test(bi,bj) = 0.833295929316918D+04 -(PID.TID 0000.0001) local fc = 0.110244765318561D+06 -(PID.TID 0000.0001) global fc = 0.110244765318561D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10244765318561E+05 + --> objf_test(bi,bj) = 0.957696019112696D+04 + --> objf_test(bi,bj) = 0.744070638098893D+04 + --> objf_test(bi,bj) = 0.902846354892339D+04 + --> objf_test(bi,bj) = 0.776470984558241D+04 + --> objf_test(bi,bj) = 0.652008606038647D+04 + --> objf_test(bi,bj) = 0.120606288999061D+05 + --> objf_test(bi,bj) = 0.130254113987069D+05 + --> objf_test(bi,bj) = 0.133331321725997D+05 + --> objf_test(bi,bj) = 0.700668973044058D+04 + --> objf_test(bi,bj) = 0.648463538361093D+04 + --> objf_test(bi,bj) = 0.960342901186881D+04 + --> objf_test(bi,bj) = 0.832322583871613D+04 +(PID.TID 0000.0001) local fc = 0.110168078462857D+06 +(PID.TID 0000.0001) global fc = 0.110168078462857D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10168078462857E+05 grad-res ------------------------------- - grad-res 0 4 4 1 1 1 1 1 1.10244793972E+05 1.10244822797E+05 1.10244765319E+05 - grad-res 0 4 4 4 0 1 1 1 2.87391019355E+00 2.87393013714E+00 -6.93953114195E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10244793972211E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.87391019354953E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.87393013713881E+00 + grad-res 0 4 4 1 1 1 1 1 1.10168107093E+05 1.10168135895E+05 1.10168078463E+05 + grad-res 0 4 4 4 0 1 1 1 2.87249771473E+00 2.87162767199E+00 3.02887181519E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10168107093363E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.87249771473007E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.87162767199334E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -4578,217 +5039,235 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 1.1024479397221E+05 1.1024483782535E+05 1.1024475028465E+05 -(PID.TID 0000.0001) grdchk output (g): 1 4.3770350574050E+00 4.3770224702889E+00 -2.8757257151124E-06 +(PID.TID 0000.0001) grdchk output (c): 1 1.1016810709336E+05 1.1016815087799E+05 1.1016806347473E+05 +(PID.TID 0000.0001) grdchk output (g): 1 4.3701629474526E+00 4.3755120362724E+00 1.2225057948431E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 1.1024479397221E+05 1.1024483405853E+05 1.1024475405849E+05 -(PID.TID 0000.0001) grdchk output (g): 2 4.0000022621825E+00 3.9999846779478E+00 -4.3960755247152E-06 +(PID.TID 0000.0001) grdchk output (c): 2 1.1016810709336E+05 1.1016814712358E+05 1.1016806723661E+05 +(PID.TID 0000.0001) grdchk output (g): 2 3.9943485273398E+00 3.9957313288939E+00 3.4606970297302E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 1.1024479397221E+05 1.1024482608519E+05 1.1024476203173E+05 -(PID.TID 0000.0001) grdchk output (g): 3 3.2026729444624E+00 3.2026596707331E+00 -4.1445956509012E-06 +(PID.TID 0000.0001) grdchk output (c): 3 1.1016810709336E+05 1.1016813916015E+05 1.1016807519960E+05 +(PID.TID 0000.0001) grdchk output (g): 3 3.1980273837689E+00 3.1995963888224E+00 4.9037592957724E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 1.1024479397221E+05 1.1024482279716E+05 1.1024476531856E+05 -(PID.TID 0000.0001) grdchk output (g): 4 2.8739301371388E+00 2.8739101935495E+00 -6.9395311419473E-06 +(PID.TID 0000.0001) grdchk output (c): 4 1.1016810709336E+05 1.1016813589541E+05 1.1016807846286E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.8716276719933E+00 2.8724977147301E+00 3.0288718151938E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 4.8200115141741E-06 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 6.9758401909344E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 65.766010873485357 -(PID.TID 0000.0001) System time: 2.2446799278259277 -(PID.TID 0000.0001) Wall clock time: 69.026329994201660 +(PID.TID 0000.0001) User time: 62.461929321289062 +(PID.TID 0000.0001) System time: 1.5924659913871437 +(PID.TID 0000.0001) Wall clock time: 64.256088018417358 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.35345499170944095 -(PID.TID 0000.0001) System time: 0.22047099471092224 -(PID.TID 0000.0001) Wall clock time: 0.93654990196228027 +(PID.TID 0000.0001) User time: 0.28649398684501648 +(PID.TID 0000.0001) System time: 0.10800800006836653 +(PID.TID 0000.0001) Wall clock time: 0.41731905937194824 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 30.522943794727325 -(PID.TID 0000.0001) System time: 1.8959681093692780 -(PID.TID 0000.0001) Wall clock time: 33.027089834213257 +(PID.TID 0000.0001) User time: 25.455729901790619 +(PID.TID 0000.0001) System time: 1.2682740017771721 +(PID.TID 0000.0001) Wall clock time: 26.902091026306152 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 40.773501873016357 -(PID.TID 0000.0001) System time: 0.11695599555969238 -(PID.TID 0000.0001) Wall clock time: 41.091846704483032 +(PID.TID 0000.0001) User time: 42.211681246757507 +(PID.TID 0000.0001) System time: 7.9586029052734375E-002 +(PID.TID 0000.0001) Wall clock time: 42.371421337127686 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.84672093391418457 -(PID.TID 0000.0001) System time: 4.1705369949340820E-004 -(PID.TID 0000.0001) Wall clock time: 0.84719705581665039 +(PID.TID 0000.0001) User time: 0.84003412723541260 +(PID.TID 0000.0001) System time: 9.7703933715820312E-004 +(PID.TID 0000.0001) Wall clock time: 0.84110951423645020 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.7113885879516602E-002 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 5.7128190994262695E-002 +(PID.TID 0000.0001) No. starts: 6 +(PID.TID 0000.0001) No. stops: 6 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.34326565265655518 -(PID.TID 0000.0001) System time: 1.5535950660705566E-002 -(PID.TID 0000.0001) Wall clock time: 0.46102261543273926 +(PID.TID 0000.0001) User time: 0.48342740535736084 +(PID.TID 0000.0001) System time: 3.3855885267257690E-002 +(PID.TID 0000.0001) Wall clock time: 0.59655022621154785 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.37591385841369629 -(PID.TID 0000.0001) System time: 1.9687294960021973E-002 -(PID.TID 0000.0001) Wall clock time: 0.49784374237060547 -(PID.TID 0000.0001) No. starts: 22 -(PID.TID 0000.0001) No. stops: 22 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.17541801929473877 -(PID.TID 0000.0001) System time: 0.14134460687637329 -(PID.TID 0000.0001) Wall clock time: 0.53435492515563965 -(PID.TID 0000.0001) No. starts: 84 -(PID.TID 0000.0001) No. stops: 84 +(PID.TID 0000.0001) User time: 0.40485930442810059 +(PID.TID 0000.0001) System time: 2.6190310716629028E-002 +(PID.TID 0000.0001) Wall clock time: 0.51032757759094238 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.4366378784179688E-004 -(PID.TID 0000.0001) System time: 9.0599060058593750E-006 -(PID.TID 0000.0001) Wall clock time: 2.5820732116699219E-004 -(PID.TID 0000.0001) No. starts: 22 -(PID.TID 0000.0001) No. stops: 22 +(PID.TID 0000.0001) User time: 1.8203258514404297E-004 +(PID.TID 0000.0001) System time: 8.8512897491455078E-006 +(PID.TID 0000.0001) Wall clock time: 1.9836425781250000E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.9489755630493164E-002 -(PID.TID 0000.0001) System time: 3.3899545669555664E-003 -(PID.TID 0000.0001) Wall clock time: 3.2911062240600586E-002 +(PID.TID 0000.0001) User time: 0.18271386623382568 +(PID.TID 0000.0001) System time: 3.9340257644653320E-003 +(PID.TID 0000.0001) Wall clock time: 0.18669009208679199 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5965213775634766E-002 -(PID.TID 0000.0001) System time: 4.9698352813720703E-004 -(PID.TID 0000.0001) Wall clock time: 2.6514053344726562E-002 +(PID.TID 0000.0001) User time: 2.7000188827514648E-002 +(PID.TID 0000.0001) System time: 8.5890293121337891E-005 +(PID.TID 0000.0001) Wall clock time: 2.7096748352050781E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 19.358875632286072 -(PID.TID 0000.0001) System time: 3.8497865200042725E-002 -(PID.TID 0000.0001) Wall clock time: 19.402345180511475 +(PID.TID 0000.0001) User time: 19.756165266036987 +(PID.TID 0000.0001) System time: 2.0175248384475708E-002 +(PID.TID 0000.0001) Wall clock time: 19.776974678039551 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 17.570189952850342 -(PID.TID 0000.0001) System time: 1.4117956161499023E-002 -(PID.TID 0000.0001) Wall clock time: 17.589589118957520 -(PID.TID 0000.0001) No. starts: 22 -(PID.TID 0000.0001) No. stops: 22 +(PID.TID 0000.0001) User time: 16.414679288864136 +(PID.TID 0000.0001) System time: 8.3121955394744873E-003 +(PID.TID 0000.0001) Wall clock time: 16.423429012298584 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 17.074634075164795 -(PID.TID 0000.0001) System time: 1.3407051563262939E-002 -(PID.TID 0000.0001) Wall clock time: 17.093368530273438 -(PID.TID 0000.0001) No. starts: 22 -(PID.TID 0000.0001) No. stops: 22 +(PID.TID 0000.0001) User time: 15.926245927810669 +(PID.TID 0000.0001) System time: 7.7671706676483154E-003 +(PID.TID 0000.0001) Wall clock time: 15.934462070465088 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.7588813304901123 -(PID.TID 0000.0001) System time: 7.2294473648071289E-004 -(PID.TID 0000.0001) Wall clock time: 6.7598345279693604 +(PID.TID 0000.0001) User time: 6.9117264747619629 +(PID.TID 0000.0001) System time: 3.7592649459838867E-004 +(PID.TID 0000.0001) Wall clock time: 6.9122374057769775 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15007686614990234 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.15009975433349609 +(PID.TID 0000.0001) User time: 0.14154911041259766 +(PID.TID 0000.0001) System time: 3.9640069007873535E-003 +(PID.TID 0000.0001) Wall clock time: 0.14554166793823242 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5842516422271729 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.5844495296478271 +(PID.TID 0000.0001) User time: 2.5301451683044434 +(PID.TID 0000.0001) System time: 2.4795532226562500E-005 +(PID.TID 0000.0001) Wall clock time: 2.5302548408508301 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.23226952552795410 -(PID.TID 0000.0001) System time: 3.6299228668212891E-004 -(PID.TID 0000.0001) Wall clock time: 0.23268580436706543 +(PID.TID 0000.0001) User time: 0.22946333885192871 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.22949624061584473 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.40742349624633789 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.40745115280151367 +(PID.TID 0000.0001) User time: 0.40205526351928711 +(PID.TID 0000.0001) System time: 3.9339065551757812E-006 +(PID.TID 0000.0001) Wall clock time: 0.40209627151489258 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.8662872314453125E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.8696250915527344E-002 +(PID.TID 0000.0001) User time: 7.6070785522460938E-002 +(PID.TID 0000.0001) System time: 7.9870223999023438E-006 +(PID.TID 0000.0001) Wall clock time: 7.6097965240478516E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.39548778533935547 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.39553499221801758 +(PID.TID 0000.0001) User time: 0.39357805252075195 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 0.39364361763000488 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.8656201362609863 -(PID.TID 0000.0001) System time: 8.3420276641845703E-003 -(PID.TID 0000.0001) Wall clock time: 8.8791599273681641 +(PID.TID 0000.0001) User time: 9.4812097549438477 +(PID.TID 0000.0001) System time: 3.9029717445373535E-003 +(PID.TID 0000.0001) Wall clock time: 9.4853253364562988 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.8811225891113281E-004 -(PID.TID 0000.0001) System time: 1.9669532775878906E-006 -(PID.TID 0000.0001) Wall clock time: 1.9621849060058594E-004 +(PID.TID 0000.0001) User time: 1.7285346984863281E-004 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 1.7738342285156250E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20757555961608887 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.21310567855834961 +(PID.TID 0000.0001) User time: 0.20537328720092773 +(PID.TID 0000.0001) System time: 1.5300512313842773E-004 +(PID.TID 0000.0001) Wall clock time: 0.20552515983581543 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.41935849189758301 -(PID.TID 0000.0001) System time: 3.3497810363769531E-004 -(PID.TID 0000.0001) Wall clock time: 0.41973495483398438 +(PID.TID 0000.0001) User time: 0.41354370117187500 +(PID.TID 0000.0001) System time: 1.9073486328125000E-005 +(PID.TID 0000.0001) Wall clock time: 0.41360712051391602 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.5388469696044922E-002 -(PID.TID 0000.0001) System time: 2.9238998889923096E-002 -(PID.TID 0000.0001) Wall clock time: 0.14188337326049805 +(PID.TID 0000.0001) User time: 3.8265705108642578E-002 +(PID.TID 0000.0001) System time: 3.9200186729431152E-003 +(PID.TID 0000.0001) Wall clock time: 4.2189836502075195E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.8262138366699219E-002 -(PID.TID 0000.0001) System time: 1.9476950168609619E-002 -(PID.TID 0000.0001) Wall clock time: 5.3753137588500977E-002 +(PID.TID 0000.0001) User time: 3.6303043365478516E-002 +(PID.TID 0000.0001) System time: 7.9879760742187500E-003 +(PID.TID 0000.0001) Wall clock time: 4.4302940368652344E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.12003517150878906 +(PID.TID 0000.0001) System time: 6.6522955894470215E-002 +(PID.TID 0000.0001) Wall clock time: 0.18659615516662598 +(PID.TID 0000.0001) No. starts: 8 +(PID.TID 0000.0001) No. stops: 8 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.20457839965820312 +(PID.TID 0000.0001) System time: 2.0033001899719238E-002 +(PID.TID 0000.0001) Wall clock time: 0.22462606430053711 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.16126060485839844 +(PID.TID 0000.0001) System time: 2.8066039085388184E-002 +(PID.TID 0000.0001) Wall clock time: 0.18934607505798340 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 34.889528274536133 -(PID.TID 0000.0001) System time: 0.12823390960693359 -(PID.TID 0000.0001) Wall clock time: 35.062619924545288 +(PID.TID 0000.0001) User time: 36.353805541992188 +(PID.TID 0000.0001) System time: 0.16805803775787354 +(PID.TID 0000.0001) Wall clock time: 36.522630929946899 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.8273429870605469 -(PID.TID 0000.0001) System time: 7.5436830520629883E-002 -(PID.TID 0000.0001) Wall clock time: 1.9028501510620117 +(PID.TID 0000.0001) User time: 2.4387836456298828 +(PID.TID 0000.0001) System time: 9.1559052467346191E-002 +(PID.TID 0000.0001) Wall clock time: 2.5306122303009033 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 32.917003631591797 -(PID.TID 0000.0001) System time: 8.4402561187744141E-003 -(PID.TID 0000.0001) Wall clock time: 32.926523208618164 +(PID.TID 0000.0001) User time: 33.779495239257812 +(PID.TID 0000.0001) System time: 3.2828211784362793E-002 +(PID.TID 0000.0001) Wall clock time: 33.812830448150635 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 32.358722686767578 -(PID.TID 0000.0001) System time: 4.2760372161865234E-003 -(PID.TID 0000.0001) Wall clock time: 32.364048004150391 +(PID.TID 0000.0001) User time: 33.726573944091797 +(PID.TID 0000.0001) System time: 2.8838038444519043E-002 +(PID.TID 0000.0001) Wall clock time: 33.755913972854614 (PID.TID 0000.0001) No. starts: 16 (PID.TID 0000.0001) No. stops: 16 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 6.0634613037109375E-002 -(PID.TID 0000.0001) System time: 3.7240982055664062E-003 -(PID.TID 0000.0001) Wall clock time: 6.4345836639404297E-002 +(PID.TID 0000.0001) User time: 5.2398681640625000E-002 +(PID.TID 0000.0001) System time: 3.9820671081542969E-003 +(PID.TID 0000.0001) Wall clock time: 5.6398153305053711E-002 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4927,9 +5406,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 73472 +(PID.TID 0000.0001) // No. barriers = 67076 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 73472 +(PID.TID 0000.0001) // Total barrier spins = 67076 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_adm.seaice_dynmix.txt b/verification/global_ocean.cs32x15/results/output_adm.seaice_dynmix.txt index 4c03a8a361..97b5763f33 100644 --- a/verification/global_ocean.cs32x15/results/output_adm.seaice_dynmix.txt +++ b/verification/global_ocean.cs32x15/results/output_adm.seaice_dynmix.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67t +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67w (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Fri Dec 11 10:32:46 EST 2020 +(PID.TID 0000.0001) // Build date: Wed Mar 24 12:08:09 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -480,6 +480,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -510,6 +513,9 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; @@ -541,74 +547,48 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones.prec64', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones.prec64', +(PID.TID 0000.0001) ># not clear why I have to comment this out, but the reference results have no bounds applied +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_ptr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones.prec64', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones.prec64', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones.prec64', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones.prec64', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones.prec64', +(PID.TID 0000.0001) > xx_gentim2d_grid(3) = 'w', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones.prec64', +(PID.TID 0000.0001) > xx_gentim2d_grid(4) = 's', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', -(PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl @@ -645,7 +625,9 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) ># this is xx_theta +(PID.TID 0000.0001) >#grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex =201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -654,7 +636,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 4 @@ -1194,6 +1176,9 @@ (PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ (PID.TID 0000.0001) 2.500000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEbasalDragK2 = /* Basal drag parameter */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1297,7 +1282,7 @@ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ -(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -1568,7 +1553,7 @@ (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 239366 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 478732 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 389 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 367 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 384 @@ -1634,10 +1619,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 11937 (PID.TID 0000.0001) ctrl-wet 8: atmos 10408 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 239366 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 478732 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4420 4232 4206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4299 4112 4096 0 @@ -1657,8 +1982,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 8 -(PID.TID 0000.0001) ctrl_init: control vector length: 239366 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 16 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 478732 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1689,6 +2014,55 @@ (PID.TID 0000.0001) Initial state salinity contribution: (PID.TID 0000.0001) Control variable index: 0102 (PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones.prec64 +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= @@ -3176,11 +3550,11 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0113294365963E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5242443278796E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3300374611828E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124036730755E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390857550473E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8421448772884E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3719523207710E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9513639049696E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124735215525E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390867107236E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2881662065410E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3718089817332E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9515844278522E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.1190145162975E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0531070632180E+00 @@ -3221,8 +3595,8 @@ (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3923803824552E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3304632405312E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742267636260E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160047546783E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742298794914E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160082019468E-02 (PID.TID 0000.0001) %MON pe_b_mean = 1.5559232407148E-02 (PID.TID 0000.0001) %MON ke_max = 4.1915507392132E-02 (PID.TID 0000.0001) %MON ke_mean = 2.0848176851410E-04 @@ -3233,8 +3607,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 7.5259723723248E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806340990730E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.2827605093522E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0635497176584E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.6599604852923E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0742649548195E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1717823146781E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3273,45 +3647,45 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) whio : write lev 3 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01372753928932E+01 -(PID.TID 0000.0001) cg2d_init_res = 4.44567380337971E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01372754051185E+01 +(PID.TID 0000.0001) cg2d_init_res = 4.44567384440276E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 85 -(PID.TID 0000.0001) cg2d_last_res = 4.81075398407887E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.81075528559474E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72001 (PID.TID 0000.0001) %MON time_secondsf = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2002367118237E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4708591644840E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2002367117811E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4708591871509E+00 (PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913633830167E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6181275094819E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6604039069360E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1315870459401E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9096276664904E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2639819394882E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4787457255161E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8212938177574E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2158795449683E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0069032883271E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0085699756732E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5243715802442E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3225028483513E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0165528626914E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1363764844516E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.7500837078844E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3822553656808E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9753752510627E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1189589760377E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.4735689573328E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0530765690011E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9949379215581E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9505178213985E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8465879361692E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775797127027E+01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6181274757886E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6604040956575E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1315870781884E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9096275112340E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2639817951264E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4787457222806E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8212938777851E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2158795725866E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0069036703893E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0085700436532E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5243715704955E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3225029681893E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0165529037444E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1363764804590E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.7500821626560E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3822551936131E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9753749247343E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1189589760393E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.4735689571597E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0530765690041E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9949379215593E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9505178238309E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8465879361843E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775797127033E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752446323497E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8897557311462E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3340933219072E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8897557311866E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3340933228713E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 3.1816705524203E+03 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.5031225998834E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = 5.3974228578428E+00 @@ -3337,25 +3711,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3320871311147E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.6108888525108E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5878175496687E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2059805630529E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8598133318126E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7062319563728E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4001326343822E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3382261986000E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9653935191178E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7062319563728E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4388713584942E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1793167808887E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0845953849407E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2059801251855E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8598131864991E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7062319419706E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4001327604748E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3382260618412E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9653935061002E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7062319419706E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4388713578686E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1793164343641E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0845953667126E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386016457284E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2311066207629E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2986356659373E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2311066223703E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2986356401359E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723668423E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723668428E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806339598239E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827603480111E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.5716392559263E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1006187966389E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827603480084E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.5716263645132E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1006186592483E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3392,89 +3766,89 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21288691532585E+03 2.05338887450157E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.93897149942515E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691540957E+03 2.05338888896341E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.93897142019242E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 5.02071534743533E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.02070756420771E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72002 (PID.TID 0000.0001) %MON time_secondsf = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2007713666433E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5762334676037E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913219317975E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6160027499760E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6964569275019E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1337010866282E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9060033882354E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2437581665972E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4785518994173E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8167811005768E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2111446994215E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0075336376292E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0006143098012E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5245768544515E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3150257803881E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0217026480232E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1365825614761E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1508423675590E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3828452470525E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9680137188634E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1188526493234E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2443730957891E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532411639139E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9952367083831E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9305948470701E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8614957872614E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775998853668E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752447925445E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8899480800826E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3285317286396E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9942992388167E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -4.8294755931298E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -3.0309937355820E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2117848765208E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7426770670436E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2007713705357E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5762334688806E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2913219319220E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6160027236976E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6964569850315E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1337011060454E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9060032918163E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2437581862848E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4785518971556E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8167811182813E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2111447171381E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0075338726006E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0006142796589E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5245768497137E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3150258537273E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0217026730868E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1365825371081E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1508482791117E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3828451663303E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9680135129119E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1188526493258E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2443730960213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532411639176E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9952367083837E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9305948499705E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8614957874624E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775998853677E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752447925446E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8899480801177E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3285317300137E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9942992434752E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.8294755887803E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -3.0309937854510E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2117848676919E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7426769333633E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0190327619373E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8424060482379E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9756897958584E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1467844789324E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 2.1542705554051E-03 -(PID.TID 0000.0001) %MON forcing_empmr_min = -7.1936790976433E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -4.9655106336053E-07 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 7.5696628258425E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6277492218020E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8424060482366E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9756897958948E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1467844928516E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.1542705535434E-03 +(PID.TID 0000.0001) %MON forcing_empmr_min = -7.1936796894967E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -4.9654957156725E-07 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 7.5696621346875E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6277489003905E-06 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4755808644372E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.8135548209752E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7985377760271E-03 -(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5257923077172E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4206216124403E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.8135545344750E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7985377966664E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5257923062666E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4206215678016E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 2.5549422200851E-01 (PID.TID 0000.0001) %MON forcing_fv_min = -3.2770782795392E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3290510776198E-02 -(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6027175342336E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5708139946827E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1957585132581E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8678544287868E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7069843788038E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4085498266237E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3457805473161E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9660654079826E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7069843788038E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4383159917241E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1665634402893E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0846095673709E-04 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3290510700464E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6027175510984E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5708140564645E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1957582413283E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8678544068986E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7069842909097E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4085499044591E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3457805266419E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9660653285336E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7069842909097E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4383159912591E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1665632243529E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0846095575946E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386047618794E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2362813387393E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2969164158934E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2362813404453E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2969163987921E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723706712E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281848356E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827526423379E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.6417524624967E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2127520359637E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723706714E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281848365E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827526423317E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.6417561595609E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2127498122821E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3485,115 +3859,115 @@ (PID.TID 0000.0001) %MON seaice_time_sec = 6.2209728000000E+09 (PID.TID 0000.0001) %MON seaice_uice_max = 4.0000000000000E-01 (PID.TID 0000.0001) %MON seaice_uice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4591043968977E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4244646068083E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2669291226024E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6864375394289E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4591043360509E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4244645961712E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2669292722322E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6864375343040E-01 (PID.TID 0000.0001) %MON seaice_vice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7487113513668E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5668670334181E-01 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0926495384832E-04 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7487114487165E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5668670191145E-01 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0926495887660E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0651684872307E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.8679037190584E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6806855566778E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.1925956726835E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0651684935451E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.8679037212387E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6806855776404E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1925956726978E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5314952196519E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9147088768827E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.3043985769177E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 9.9155277920439E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_min = -1.3552527156069E-20 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.6737619451598E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 9.4136126510515E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.1084283977723E-05 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5314952338177E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9147088799358E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.3043985923857E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 9.9155277483078E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_min = -6.6174449004242E-24 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.6737619445100E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 9.4136126434594E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.1084283965363E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21267837812514E+03 2.07023141342097E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.99828263490356E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837814144E+03 2.07023143972986E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.99828265653867E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 5.01434912457396E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.01434358460781E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72003 (PID.TID 0000.0001) %MON time_secondsf = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2021281495706E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6118495829862E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2910117654453E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6053608510151E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6804936643565E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1354838547505E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9020999484835E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2309606754691E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4784134667448E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8122386152295E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2057778327655E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0081299898872E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9846396589044E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5249022480527E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3079543297569E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0280222758645E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1357230796817E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3277153788473E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4078791325123E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9997929330438E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1186977755002E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2805307086349E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0534091862812E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9955441406232E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9171030957156E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8576977401247E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776185379133E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752444577316E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8892553845027E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3201452801957E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0105415845261E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6530867923013E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9318225615959E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2058844960619E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.0081456911378E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2021281546774E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6118495526142E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2910117654696E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.6053608353241E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6804936573440E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1354838727622E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9020998524125E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2309606949676E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4784134640968E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8122386334455E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2057778493555E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0081302239650E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9846396744820E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5249022436548E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3079543999086E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0280222992503E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1357230590191E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3277190327669E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4078790449217E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9997927331778E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1186977755035E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2805307091628E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0534091861951E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9955441406775E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9171030603342E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8576977411150E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776185379146E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752444577317E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8892553845736E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3201452816734E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0105415903448E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6530870107632E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9318209976638E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2058843174725E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.0080995753971E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0189127925792E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8430406174556E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9672667862354E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.0619142664450E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 9.2755221454401E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -7.7868531935883E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.7155344269352E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.5532237548864E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6109075384468E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8430404866637E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9672660137169E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.0618698863794E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 9.2755219627894E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -7.7868537403169E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.7155356283014E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.5532235292528E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.6109064945672E-06 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4751003717351E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.8699038636193E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7313172058743E-03 -(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5314710327687E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4510348289822E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.8699037907548E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.7313172388351E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5314710341987E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4510348113656E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 2.5817746358114E-01 (PID.TID 0000.0001) %MON forcing_fv_min = -3.2849573188785E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3332608373845E-02 -(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6027917661630E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5642461229621E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1847506703615E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8755899074062E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7038872300169E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4186033219447E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3530633679875E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9632631729999E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7038872300169E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4377846989150E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1535623023121E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0848697419662E-04 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3332608317654E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6027917725429E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5642460820690E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1847503994131E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8755898954585E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7038871556198E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4186033952165E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3530633567517E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9632631056320E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7038871556198E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4377846985566E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1535620864912E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0848697321620E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386047769629E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2417645018380E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2952326959866E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2417645039228E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2952326770936E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723788488E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281024994E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827527461272E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.4372146627136E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5357705712219E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723788490E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806281024998E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827527461224E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.4372133044506E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5357693004430E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3604,115 +3978,115 @@ (PID.TID 0000.0001) %MON seaice_time_sec = 6.2210592000000E+09 (PID.TID 0000.0001) %MON seaice_uice_max = 4.0000000000000E-01 (PID.TID 0000.0001) %MON seaice_uice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4513728230170E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4236740469986E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2715949824249E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6446055641825E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4513727973525E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4236740417023E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2715950152416E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6446055580966E-01 (PID.TID 0000.0001) %MON seaice_vice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7528843802793E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5680190433079E-01 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0819048914632E-04 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7528844263756E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5680190380410E-01 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0819049205073E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0738929890603E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.8831143793676E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6490095595063E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.1961666235419E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0738929992032E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.8831143828765E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6490096014060E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1961666235275E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5345021464187E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9251732383281E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2888273922832E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.4851083638321E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.5232546753671E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.4192085154291E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.6924883878083E-05 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5345021680402E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9251732431367E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2888274166191E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.4851083552022E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = -8.9683101716788E-44 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.5232546759720E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.4192085149605E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.6924883981053E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21246317513830E+03 2.08570978418044E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.94869352190090E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319802766E+03 2.08570982773502E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.94864579499886E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 4.45338798376874E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.45313865435528E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72004 (PID.TID 0000.0001) %MON time_secondsf = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2035630787326E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6096622284101E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2906916847826E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5956772768954E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6727668655344E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1368118390098E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8979589936015E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2231458508175E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4782945896036E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8076417962908E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1997174622158E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086794851887E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9646836912819E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5252840679305E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3011345865336E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0354260291864E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1350628771485E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.1796812182414E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4405650500301E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0377942318679E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1184963125325E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2738850703196E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0535766512487E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9958557224165E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9004444511523E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8556736074829E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776356929047E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752441556116E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8887151660135E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3122311936917E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0077507779570E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6340469617419E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9314551977569E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2051229246979E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.8876290745555E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2035630825203E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6096621796890E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2906917188269E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5956781396035E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6727671662474E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1368118556770E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8979588980746E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2231460904757E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4782945871771E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8076418088923E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1997174781650E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086797177181E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9646838335710E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5252840633510E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3011346573572E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0354260500798E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1350628573283E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.1794450207893E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4405652797857E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0377942147856E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1184963125360E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2738850716330E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0535766461129E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9958557273016E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9004465764424E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8556736097834E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776356929063E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752441556393E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8887151611941E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3122311688867E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0077507849547E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6340471684870E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9313662893846E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2051253531790E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.8920864934478E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0187928232211E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8440449974892E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9568626513886E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 2.8975599907754E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.4694754939433E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4190473554295E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.8342996053856E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.3017564922603E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5976211303680E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8440361351805E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9568567081568E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 2.9014511387595E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.4694753407007E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4190478156601E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.8338920732762E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.3014169410104E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5973260613395E-06 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4746198790331E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.9119009965013E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = -4.6851919479043E-03 -(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5355647207279E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4820388319515E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.9119010317264E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.6851919651268E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5355647232265E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4820388360000E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 2.6086070515377E-01 (PID.TID 0000.0001) %MON forcing_fv_min = -3.2928363582178E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3351378942100E-02 -(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6058359424884E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5605565726385E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1730726919033E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8825192663654E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7015128972140E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4298422241869E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3595893855509E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9611106636087E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7015128972140E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4372846064807E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1404137602107E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0852374271380E-04 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3351378894957E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6058359485198E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5605565459878E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1730724224889E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8825192750035E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7015128257787E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4298422931339E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3595893936857E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9611105989874E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7015128257787E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4372845993138E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1404135446307E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0852374175285E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386048898283E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2474735091597E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2934720426870E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2474735117687E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2934720230615E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723787754E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806278659387E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827525505765E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6074947776631E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6712794100695E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723787756E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806278659388E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827525505739E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6074834509415E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6712453022649E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3723,115 +4097,115 @@ (PID.TID 0000.0001) %MON seaice_time_sec = 6.2211456000000E+09 (PID.TID 0000.0001) %MON seaice_uice_max = 4.0000000000000E-01 (PID.TID 0000.0001) %MON seaice_uice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4453050539880E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4227954186784E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2792194328602E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6544363693798E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4453050284137E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4227954137062E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2792194855891E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6544363819619E-01 (PID.TID 0000.0001) %MON seaice_vice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7550018969096E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5695062351539E-01 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0805881451991E-04 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7550019415774E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5695062302725E-01 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0805881695594E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0868342085298E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.8950141666119E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6363818509233E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.1998988830216E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0868401378420E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.8950145533950E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6363951769374E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.1998988829806E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5361079929734E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9347427134964E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2821554434033E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.9828777977340E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_min = -1.3234889800848E-23 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.3835753596757E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.9032964038376E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.2907048069551E-05 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5361125894763E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9347426454993E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2821559637983E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 1.9828777848493E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_min = -2.7105054312138E-20 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.3835753625615E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 1.9032964040236E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.2907048344911E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21223975192002E+03 2.09779531432272E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.91536677558124E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974789021E+03 2.09779537582256E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.91537885024187E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 73 -(PID.TID 0000.0001) cg2d_last_res = 5.66119804031216E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.66094875395258E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72005 (PID.TID 0000.0001) %MON time_secondsf = 6.2212320000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2050739032648E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5940871115761E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2903593778159E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5870427329652E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6739101033923E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1376202180006E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8935970094552E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2187482387537E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4782028949780E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8029697150571E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1930506358143E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0091759577001E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9436946469949E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5257065519435E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2945097983160E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0437707610136E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1351681103206E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0089672669749E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4773196321516E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0758079400846E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1182496156587E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2733232136081E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0537436982966E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9961704520401E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8842928116088E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8523488012886E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776513697395E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752438364543E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8881562963354E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3044944073479E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0050530527319E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.5948184513890E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9252126191021E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2035370212374E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7923119711325E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2050739040721E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5940870652990E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2903593718222E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5870427586907E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6739101241605E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1376202331638E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8935969145618E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2187485811633E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4782028916558E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8029697066959E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1930506517567E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0091761885983E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9436947659251E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5257065474436E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2945098547466E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0437707799599E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1351680871782E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0092459902897E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4773191956066E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0758075325073E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1182496156610E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2733232157513E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0537436923181E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9961704577241E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8842954394979E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8523488050578E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7776513697414E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752438364487E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8881562975143E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3044944145104E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0050530604444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.5948186400494E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.9251972604548E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.2035355953912E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.7925422904657E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0186728538630E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8446741679160E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9460939119536E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 2.7824748149571E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.1064476328883E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.9426625881858E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.9807605382412E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.0946766052594E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5826137519257E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8446741754109E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9460942982718E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 2.7825342796715E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.1064475301203E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.9426629718834E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -3.9812401605119E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.0947721942653E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5826925757769E-06 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4741393863310E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.9320362398079E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = -4.6426930819591E-03 -(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5389625453219E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4930834547979E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.9320361134889E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.6426920366468E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5389625830109E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4930836553758E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 2.6354394672640E-01 (PID.TID 0000.0001) %MON forcing_fv_min = -3.3007153975572E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3365880428828E-02 -(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6105970064192E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5651994459631E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1607712168749E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8886226113193E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7018974095336E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4419998372011E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3653383419874E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9614537634603E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7018974095336E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4368146647055E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1271416531572E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0857010774094E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3386050063014E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2533723092781E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2917618863245E-06 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3365882148211E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6105970570861E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5651998520852E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1607709492466E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8886226401244E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7018973260021E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4419999010585E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3653383690872E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9614536880073E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7018973260021E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4368146597574E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1271414378848E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0857010667331E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3386050062890E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2533723123511E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2917618662397E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.5259723671590E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806276227935E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827524284651E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6067411324443E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.8352840884095E-08 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806276228185E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827524285124E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6066866702226E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.8353230803776E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3842,61 +4216,61 @@ (PID.TID 0000.0001) %MON seaice_time_sec = 6.2212320000000E+09 (PID.TID 0000.0001) %MON seaice_uice_max = 4.0000000000000E-01 (PID.TID 0000.0001) %MON seaice_uice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4378950938756E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4219181831325E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2851173217047E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6805967043590E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = -1.4378949762472E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.4219181830382E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 7.2851179715051E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6805967261458E-01 (PID.TID 0000.0001) %MON seaice_vice_min = -4.0000000000000E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7569687325546E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5710653831385E-01 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0873741511559E-04 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7569687123533E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.5710653775283E-01 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0873741853511E-04 (PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 4.0876426863609E-02 -(PID.TID 0000.0001) %MON seaice_area_sd = 1.9035164742882E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6190350824672E-03 -(PID.TID 0000.0001) %MON seaice_heff_max = 5.2035660101825E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 4.0876427074389E-02 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.9035164809503E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6190351803607E-03 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.2035660101313E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5361527749902E-02 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9435493137932E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2811282679746E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.4817149584619E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 7.5361528117184E-02 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.9435493227448E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2811283037897E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.4817149418707E-02 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 4.2241845116521E-04 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 2.3861621448508E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.7990344287993E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 4.2241845133147E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 2.3861621441668E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.7990344482006E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 72005 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971419703867434D+04 - --> objf_test(bi,bj) = 0.743444246921338D+04 - --> objf_test(bi,bj) = 0.916061123397141D+04 - --> objf_test(bi,bj) = 0.776111598457337D+04 - --> objf_test(bi,bj) = 0.645188365332320D+04 - --> objf_test(bi,bj) = 0.121082946428315D+05 - --> objf_test(bi,bj) = 0.130205818019827D+05 - --> objf_test(bi,bj) = 0.134004371121993D+05 - --> objf_test(bi,bj) = 0.704975746328618D+04 - --> objf_test(bi,bj) = 0.654290140182860D+04 - --> objf_test(bi,bj) = 0.974952435328237D+04 - --> objf_test(bi,bj) = 0.845212298795102D+04 -(PID.TID 0000.0001) local fc = 0.110845870143117D+06 -(PID.TID 0000.0001) global fc = 0.110845870143117D+06 + --> objf_test(bi,bj) = 0.971419703500250D+04 + --> objf_test(bi,bj) = 0.743444248309052D+04 + --> objf_test(bi,bj) = 0.916061123349721D+04 + --> objf_test(bi,bj) = 0.776111598389077D+04 + --> objf_test(bi,bj) = 0.645188366964765D+04 + --> objf_test(bi,bj) = 0.121082946490663D+05 + --> objf_test(bi,bj) = 0.130205818146114D+05 + --> objf_test(bi,bj) = 0.134004371116027D+05 + --> objf_test(bi,bj) = 0.704975745890400D+04 + --> objf_test(bi,bj) = 0.654290140606179D+04 + --> objf_test(bi,bj) = 0.974952513498580D+04 + --> objf_test(bi,bj) = 0.845212298454513D+04 +(PID.TID 0000.0001) local fc = 0.110845870964906D+06 +(PID.TID 0000.0001) global fc = 0.110845870964906D+06 (PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290056959868E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21287276584961E+03 2.05340040594810E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691540957E+03 2.05338888896341E+01 (PID.TID 0000.0001) whio : write lev 2 rec 2 - cg2d: Sum(rhs),rhsMax = 2.21266435029870E+03 2.07024426642601E+01 - cg2d: Sum(rhs),rhsMax = 2.21244876874963E+03 2.08572847035465E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837814144E+03 2.07023143972986E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319802766E+03 2.08570982773502E+01 (PID.TID 0000.0001) whio : write lev 2 rec 3 - cg2d: Sum(rhs),rhsMax = 2.21222514291676E+03 2.09782282228885E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974789021E+03 2.09779537582256E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.21222516450584E+03 2.09782282228885E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974789021E+03 2.09779537582256E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.21222516450584E+03 2.09782282228885E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974789021E+03 2.09779537582256E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3923,11 +4297,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3858768378175E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8534790046236E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0977915773756E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3096152519856E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4958885517391E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3858768415540E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8534790050262E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0977915841206E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3096152536609E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4958920778004E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 @@ -3995,32 +4369,32 @@ (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -3.25260651745651E-19 1.97379518180031E-04 + cg2d: Sum(rhs),rhsMax = 5.42101086242752E-19 1.97379518393402E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.5807056213462E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.3696293141560E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.4629508591208E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5592695902422E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1286486677509E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 5.0750471463404E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -4.0863431707149E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.4757521569711E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1352681507655E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1185954069068E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.6762196135762E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5823687601457E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.5240762288252E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1429146131120E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8146386027825E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.8086585723519E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6317733208486E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0529310135170E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9598663507046E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0321328105667E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.5807056549049E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.3696292506815E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.4628982798953E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5592761103546E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1286518194009E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 5.0750471427416E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -4.0863431463692E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.4757543926733E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1352753015196E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1185987258361E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.6762195802890E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5823678346550E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.5240724754951E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1429148323795E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8146431416296E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.8086582621334E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6317733274544E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0529262979616E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9598684830890E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0321395498142E-01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4029,16 +4403,16 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.2539854636444E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6477929125614E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -4.5491240948949E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.7312276694058E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 4.6314569624003E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 6.6790061037905E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -2.6225586233534E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -3.3750434900447E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 9.6957699440876E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 2.8759199801719E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.2586023856182E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6477928960644E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -4.5443474133887E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.7321758805879E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 4.6335880640551E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 6.7206966840388E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -2.6225587641156E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -3.3778097019053E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 9.7020792007179E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 2.8790255518905E-03 (PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 @@ -4049,11 +4423,11 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.3902377744039E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -9.8595109703950E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.0137370618486E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 2.5312669877392E-06 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.2175424231089E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.3902382465091E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -9.8595103806161E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.0093419421489E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 2.5301439622592E-06 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.2165469852898E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4062,87 +4436,87 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0256136812489E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.8673523736540E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.4170050703381E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4250414866166E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.5474220011385E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3635601235287E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.0118949240371E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1814848546644E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5047740278852E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 6.0054624822072E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0256136840379E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.8673523402628E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.4170079627778E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4250409930665E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.5474206991020E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3635601298247E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.0118949037306E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1814874978502E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5047710589614E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 6.0054550792323E-01 (PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.4843833788342E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -9.8086585723519E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.0608712109266E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.9907521955143E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 4.4574016819559E+02 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.4843848086106E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -9.8086582621334E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.0608664949397E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.9907543481850E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 4.4574080472798E+02 (PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.1479324219761E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.2355891190802E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.5047320021880E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0028856393027E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.6466138147348E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5823687601457E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -6.6762196135762E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8777408608770E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.1013100561297E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.8069648507499E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.6317733208486E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -9.8086585723519E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.0529310135170E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.9598663507046E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 4.0321328105667E+02 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.1479315575678E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.2355890879899E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.5047446552581E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0028852105489E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.6466197864463E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5823678346550E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -6.6762195802890E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8777676118751E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.1013079423365E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.8069625343045E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.6317733274544E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -9.8086582621334E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.0529262979616E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.9598684830890E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 4.0321395498142E+02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21266444905752E+03 2.07024426642601E+01 - cg2d: Sum(rhs),rhsMax = 2.21244899172506E+03 2.08572847359582E+01 - cg2d: Sum(rhs),rhsMax = 2.21244899172506E+03 2.08572847359582E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837814144E+03 2.07023143972986E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319802766E+03 2.08570982773502E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319802766E+03 2.08570982773502E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72004 (PID.TID 0000.0001) %MON ad_time_secondsf = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.1247909368422E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.3867017326309E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.3680997769748E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.2416669895303E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.8408554422271E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4125137964315E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2468958275506E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5947716603429E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2022166734413E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1113607482973E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1644618038683E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7204820962760E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.8530136555255E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1107814558714E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.3337525107924E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.3127166233980E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.7072027978865E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.2880257505964E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.3697421004357E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.3261342362941E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 9.3251993135131E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.7018227685234E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0984111017059E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3202573579481E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0301298949793E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.2227503343072E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.1651974836976E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.4721236380994E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.6985303181495E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 9.6564928746621E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.1247911595908E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.3867016401436E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.3681173479910E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.2424198508257E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.8444422743095E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4125137811386E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2468958287985E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5947867075792E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2022168784968E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1113614418065E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1644618049833E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7204820617932E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.8530161126873E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1107818152179E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.3337638454584E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.3127164970886E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.7072027128437E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.2880039394113E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.3697425341658E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.3261352459788E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 9.3251534146584E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.7017764687019E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0984111094423E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3202572215806E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0301327908720E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.2227389166871E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.1651864050571E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.4721114658845E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.6985038145831E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 9.6564906991128E-03 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 @@ -4186,51 +4560,51 @@ (PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.0146189839874E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.3434683061126E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -5.5608973857795E-04 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.1936819915504E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1371753181806E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2486262464930E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2983152367787E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.6116009380273E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.8238220970904E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.0397486296310E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.1543589158537E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.3345497597469E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.8567191254064E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3842445218445E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1843885845682E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.0146188982125E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.3434682902118E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -5.5082595822760E-04 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.1893566370586E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1346206631058E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2486262377071E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2983149160041E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.6116113241344E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.8238356564327E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.0399326143373E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.1543588839927E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.3345485964984E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.8584755619584E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3844568585675E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1878683370071E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -2.98155597433514E-19 1.07285437496423E-04 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.07285449893177E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 7.7157117039068E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.4708931888172E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.9520635217905E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2469463210302E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 3.7735224706306E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.8820363847306E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -7.6743558883733E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.7017795864148E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0683377612702E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.3505086586059E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 3.5178472958381E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5225728014569E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7955187601768E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.2088066414290E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.9000155787171E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 1.1701615413011E+04 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.7430808396106E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -8.7325569869578E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9061772050689E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.3795953011423E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 7.7157113905552E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.4708931883676E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.9519720719775E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2469475587680E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 3.7735284604825E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.8820363144377E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -7.6743558772372E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.7018160895820E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0683392900409E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.3505154432089E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 3.5178303607754E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5225718742617E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7955155191368E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.2088057248860E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.9000197953859E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 1.1701554554947E+04 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.7430807490950E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -8.7325196894727E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9061688692030E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.3795949322626E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4239,16 +4613,16 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.2829446140231E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6065942715887E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -2.3166257913745E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.0580752910464E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 5.6028923647579E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 9.8820363847306E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -2.8202281985813E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -4.1521375720936E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.3690416486837E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.9381552687877E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.3121864514049E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6065942222622E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -2.2976444230119E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.0595027160578E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 5.6060439967759E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 9.8820363144377E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -2.8202283945509E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -4.1636555682546E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.3697278363491E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.9410028261895E-03 (PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 @@ -4259,11 +4633,11 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.9738704123937E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -3.4922844482623E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -5.9147490242758E-09 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 7.5355805736579E-06 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.6883951696648E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.9738703963216E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -3.4922852511342E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 7.2204127963573E-09 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 7.5653803101686E-06 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.7423408645608E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4272,85 +4646,85 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0139407900445E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -4.7910688117116E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3144109374270E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.5767064200950E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.6929809843066E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3364058943660E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -9.2387414615584E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1711222474549E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.7196042255726E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 6.4743089524016E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0139407931221E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -4.7910456675641E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3141366158364E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.5767166248153E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.6929988423444E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3364059013845E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -9.2386965674788E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1710463063574E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.7196382538963E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 6.4744327130193E-01 (PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.7430808396106E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -1.1701615413011E+07 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 9.0692055638932E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.9040097829761E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 3.3786905058370E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.7430807490950E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -1.1701554554947E+07 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 9.0691681515942E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.9040014383677E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 3.3786901387321E+03 (PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.0920829965607E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -3.1152797114661E-02 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4230491503615E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0946619437651E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.7196016847554E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5225728014569E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -3.5178472958381E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7856375344189E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.2083649685647E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.8911776147843E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.7430808396106E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -1.1701615413011E+07 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 8.7325569869578E+03 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9061772050689E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.3795953011423E+03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.0920821305604E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -3.1152647256765E-02 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4230303878968E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0946617130014E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.7195936335674E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5225718742617E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -3.5178303607754E-02 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7855250971376E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.2083696882228E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.8911854689666E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.7430807490950E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -1.1701554554947E+07 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 8.7325196894727E+03 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9061688692030E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.3795949322626E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21266444905752E+03 2.07024426642601E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837814144E+03 2.07023143972986E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72003 (PID.TID 0000.0001) %MON ad_time_secondsf = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.3811676357773E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.0368344540090E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.2799796773445E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.2044027051332E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.6647581681471E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.7074169856910E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.4185459363434E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 5.6803484613334E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3876081292430E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1583882692238E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.5093072185120E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.1188039552109E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -7.2801868618148E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.1909068430425E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8014488556764E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5141754695809E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.4354879576611E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.5332728337015E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.5994505894786E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1624114010968E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.1678730280267E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.9846703904110E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0990190623473E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3078285319931E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.5435520928171E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.0893790433005E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.3962917013079E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.6123667278701E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.1876517957240E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.6325636358985E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.3811681981817E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.0368343647511E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.2805161014175E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.2063300026295E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.6740974911323E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.7074169619927E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.4185459333888E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 5.6803711935298E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3876083487169E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1583896410010E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.5092821481915E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.1188038925184E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -7.2801602746780E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.1909074870526E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8014507301727E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5141752444095E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.4354878324818E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.5332708316047E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.5994510310553E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1624115034605E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.1678390182476E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.9846379264226E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0990190603032E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3078284948165E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.5435556262694E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.0893795005043E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.3962097866745E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.6123648077336E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.1876447020895E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.6325640154555E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 @@ -4394,51 +4768,51 @@ (PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.0071427647808E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.2134157402975E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.6875165478020E-04 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.4124198877264E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1383445116731E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2202443874006E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2557447599979E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5855188057867E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.7704632104902E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9313701025946E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.0513175752404E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.1803256112173E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.7663763653169E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3645297978339E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1646168646174E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.0071427367452E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.2134156285729E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.7022090992194E-04 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.4135833816722E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.1393382304801E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2202443777958E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2557444325729E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5855278349787E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.7704496819427E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9312319771862E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.0513175404503E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.1803244238432E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.7666366489648E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3643951683958E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.1626636431325E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 9.48676900924816E-20 1.08297214437638E-04 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.08297201425657E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 8.8384238122938E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.1098159968243E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 6.2075434600903E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.8247364059617E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.3891438272263E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.4317920287541E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0851424861082E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 2.7799231627231E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.5446688877608E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.6759286743906E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6047688006856E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3121473199191E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7838682966855E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1135478400804E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1574960824321E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.1299871226605E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.9426279714167E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2087587874747E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.5123255517266E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 6.2805362058312E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 8.8384237107286E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.1098159861038E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 6.2074401894484E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.8247382611902E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.3891527811217E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.4317920102051E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0851424882566E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 2.7799798677224E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.5446712462043E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.6759386788329E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6047557163807E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3121528732402E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7838677108294E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1135474819192E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1575000469275E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.1299388497401E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.9426301152056E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2087543864333E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.5123221066558E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 6.2805372249114E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4447,16 +4821,16 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.3617675955373E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5850788462499E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -2.5626456328363E-04 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.4721049244533E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.7965446078825E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4317920287541E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.0104049991579E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -5.0335867420402E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.8226172687707E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 5.1746226554073E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.3617857440654E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5850787811278E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -2.5247254093714E-04 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.4728568421612E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.7982132887021E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4317920102051E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.0104052357000E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -5.0370380529384E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.8232096685241E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 5.1776463634808E-03 (PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 @@ -4467,11 +4841,11 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 7.0824369256066E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -3.4684875872178E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.1964385401866E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 6.9225745940787E-06 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.8641012749084E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 7.0824367975708E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -3.4684881289139E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.3399755265787E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 7.1305495366452E-06 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 2.0454804520803E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4480,88 +4854,88 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0418546720425E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.1824195775722E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3750938337868E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4413653555187E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.0853817700881E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.5846822233001E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.1961543827397E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1904548381364E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5209130731770E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 7.6652448221790E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0418554624307E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.1824016700785E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3748449478401E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4413795496227E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.0854332288509E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.5846841751268E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.1961195732214E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1903859963119E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5209621900202E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 7.6655257447215E-01 (PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.9426279714167E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.1299871226605E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.2303748926788E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.5104306814552E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 6.2805954254909E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.9426301152056E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.1299388497401E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.2303704723482E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.5104272327878E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 6.2805964457916E+03 (PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4824469938267E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.4179920344484E-02 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4333912641550E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0102571789388E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9430003966484E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.3121473199191E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.6047688006856E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7989837821249E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.1117982428775E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.1517195292358E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 2.9426279714167E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -5.1299871226605E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.2087587874747E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.5123255517266E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 6.2805362058312E+03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4824519137331E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.4179804721135E-02 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4334163762507E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0102529564832E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9429688579778E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.3121528732402E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.6047557163807E-02 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7989012531886E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.1118047117623E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.1517555421032E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 2.9426301152056E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -5.1299388497401E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.2087543864333E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.5123221066558E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 6.2805372249114E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290109963722E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21287341846142E+03 2.05340040002758E+01 - cg2d: Sum(rhs),rhsMax = 2.21287341846142E+03 2.05340040002758E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691540957E+03 2.05338888896341E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691540957E+03 2.05338888896341E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72002 (PID.TID 0000.0001) %MON ad_time_secondsf = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4846449009211E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7148916168279E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1684162024105E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.1759106651397E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.5281083732082E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8720725292054E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -8.9236563240006E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0560559948958E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.5272520539028E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1417459051330E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 6.4963962107197E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2995578308709E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.8053986824369E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2302902248373E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6247071610338E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1612253081688E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2601536985394E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1240938754097E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1770271045591E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5825817925730E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5252306874778E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.1896313421742E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0993507999632E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3052050266729E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.6842478288235E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.1054838975701E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0718131472914E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.9889907681331E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.0762590473047E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.9992011802515E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4846451040870E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7148915167273E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1685236962541E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.1773307452945E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.5349220505727E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8720724956101E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -8.9236562803405E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0560580434502E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.5272523374746E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1417480183456E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 6.4963514410140E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2995577368284E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.8052749320241E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2302911753218E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6247097124010E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1612252669323E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2601535425716E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1240935602041E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1770271556966E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5825819151430E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5251989125776E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.1896020151446E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0993507608668E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3052049848589E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.6842442782822E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.1054839650794E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0718132151670E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.9889859240490E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.0762557222929E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.9992014431886E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 @@ -4605,51 +4979,51 @@ (PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.1666343069920E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.6462193045223E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -6.6091109652288E-04 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.6307840129869E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.2011585813712E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1686678825028E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2268951780716E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5599163391944E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.7211900285853E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9439976880578E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.8644356406375E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.0758704450764E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.6673860985295E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3527260033187E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.2254188601126E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 8.1666343359236E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.6462192892122E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -6.5476865087919E-04 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.6337580103724E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.2030703648835E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1686678705372E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2268948426876E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5599334531016E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.7211652120915E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.9437151858895E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.8644355973034E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -8.0758692288542E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.6695437058804E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3523917521476E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.2206924850686E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 3.38813178901720E-20 9.91014653563465E-05 + cg2d: Sum(rhs),rhsMax = -3.48977574268772E-19 9.91014220814543E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.2503113283547E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.7384013596878E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.1806333447493E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.3851605025896E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.9444585828680E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8339943922231E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.3597124222842E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.3606104060332E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.0154033359210E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.9824524240421E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.3198981026647E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.4058410934025E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7262649200291E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0978266500397E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.2198412324692E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2960212349045E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.8289214541289E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2486257152883E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.7422184138826E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.6828471484402E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.2503113787937E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.7384013481596E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.1805008333243E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.3851630392926E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.9444710406604E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8339943631542E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.3597124265428E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.3606512736711E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.0154064975092E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.9824657837609E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.3198859627423E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.4058402802990E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7262754585952E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0978251300957E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.2198368970750E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2960214979463E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.8289223594946E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2486201508182E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.7422160871039E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.6828476031151E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4658,16 +5032,16 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.4443385842955E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5667058174765E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.4540861992190E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.9289898558472E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 8.0879009665009E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.8339943922231E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.2114100251217E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -6.4744087682101E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.2826244579807E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 6.4258294800608E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.4443255216363E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5667057702234E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.4579294536794E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.9297709819242E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 8.0896903547169E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.8339943631542E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.2114100291078E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -6.4795484275291E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.2834044295406E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 6.4301859709454E-03 (PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 @@ -4678,11 +5052,11 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 8.8505041101019E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -2.4579324422750E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.1883296318437E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 6.7631149941081E-06 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 2.2803496524384E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 8.7829080569444E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -2.4579325261050E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.3954852336163E-07 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 6.8259224299419E-06 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 2.2938285000884E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4691,86 +5065,86 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0917956192265E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.7952068389496E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3197631618478E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4219337969578E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.1968375923636E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.2437173054592E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.4543992987240E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1821448950147E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5003990900995E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.1522148123894E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0917958788104E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.7951902059484E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3199211943297E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4219264673012E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.1968404004127E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.2437180759897E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.4543668864792E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1821900598673E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5003794238095E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.1522328485179E-01 (PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.8289214541289E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.2960212349045E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.2721019385014E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.7404016730880E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 7.6831377705000E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.8289223594946E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.2960214979463E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.2720944615994E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.7403991840884E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 7.6831377027203E+03 (PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.9830555812380E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.1646624419666E-02 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.3782558231766E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.9592719452353E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9951860990885E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.4058410934025E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.3198981026647E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7380698269846E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0961226540953E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2140083999961E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 3.8289214541289E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -4.2960212349045E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.2486257152883E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.7422184138826E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 7.6828471484402E+03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.9830548217993E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.1646517228601E-02 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.3782993118897E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.9592348560390E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9951792980580E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.4058402802990E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.3198859627423E-02 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7381613962798E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0961174843408E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2140146536651E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 3.8289223594946E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -4.2960214979463E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.2486201508182E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.7422160871039E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 7.6828476031151E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21290109963722E+03 2.01372753928932E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478463262E+03 2.01372754051185E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_time_secondsf = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4843900208504E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.3944096035825E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.0550643178633E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.1526409651620E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.3917660498573E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.8889008468999E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1548432553244E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4817822333074E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.6017203093941E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0585757604495E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.1534661713444E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.4305898835366E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.4675077698425E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2219216182907E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3942474723297E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4574051622738E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.9783097815097E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7221512139101E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4822120456488E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9882146533951E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3164880337108E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.8992202100848E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0995590600690E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3038736533554E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.8898746699943E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3305188735842E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3172278657954E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.5905275634089E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0549192539342E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3322436114923E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4843871793034E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.3944095486015E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.0552626741537E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.1545052558951E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.4005612328664E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.8889008158737E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1548432505003E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4817864691144E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.6017208022718E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0585786543055E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.1534030943856E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.4305899025743E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.4673470899646E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2219229755416E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3942507544107E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4574051249469E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.9783094295637E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7221522718241E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4822120777455E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9882147094513E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3164572025712E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.8991924502861E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0995590060006E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3038736135990E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.8898711660488E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3305188885779E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3172278835343E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.5905183553681E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0549192109007E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3322441263275E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 @@ -4814,51 +5188,51 @@ (PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.1988605972396E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.6548554956498E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.4326085122596E-04 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 4.1970181466095E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.3369730025246E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1054521513730E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2127621981004E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5347068428798E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6814207500753E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.0513084021326E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.6356698857607E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -9.1024017050996E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.5801944002149E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3458127849362E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.3425369099195E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.1988606709107E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -4.6548547777251E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.5741872809686E-04 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 4.2139557604677E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.3484447569614E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.1054521396338E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.2127618843868E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5347049784947E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6813736147234E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.0509388379174E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.6356698429552E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -9.1024021422087E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.5781446811715E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3449264116080E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.3335139978878E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 8.47032947254300E-20 9.34094825091746E-05 + cg2d: Sum(rhs),rhsMax = -3.38813178901720E-21 9.34094043199982E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.6525178476532E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.3208329682300E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.8777956371572E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.9242401534473E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 8.4210149733793E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1905815531078E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.5887523649690E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -5.7005778984677E-04 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.4725734584641E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 7.2235800596492E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.2122644954768E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3090900781225E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.6817125722034E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0884292465007E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.3042971559577E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.3286784785118E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.5473794723942E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.3277431006207E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9736142010972E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 8.8398548548407E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.6525179293107E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.3208329579498E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.8776374622635E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.9242427107557E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 8.4210265693728E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1905815131498E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.5887523636999E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -5.7006923776077E-04 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.4725765310960E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 7.2235923321541E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.2122528856373E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3090914997590E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.6817287146662E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0884273777661E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.3042931138520E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.3286785367479E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.5473803596169E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.3277424401710E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9736122568996E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 8.8398549900170E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4867,16 +5241,16 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 2.2317829495955E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5384891722009E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.4393303782729E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 3.5348256619976E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 9.7171103410220E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.1905815531078E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.4413757071865E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -9.9634799889807E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.9219403427590E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 7.9219599039801E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 2.2314757631045E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.5384892641688E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.4507702826323E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 3.5357178033838E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 9.7183702725169E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.1905815131498E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -3.4413752329967E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -9.9785172953601E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.9234625239370E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 7.9247797664130E-03 (PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 @@ -4887,11 +5261,11 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.3135207396094E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -6.6534599340431E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -9.8290751936130E-07 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 4.2333661609721E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.6962859731633E-06 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.3135256432867E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -6.6534708272661E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 2.9844550809006E-08 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 3.4457247002993E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.2404883667502E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4900,46 +5274,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.2750362089711E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.6496391629715E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.2825407877122E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4110140856229E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.3198424952529E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.8022283461653E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.6816228356371E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1773214850677E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4910705790661E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.6022312119378E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.2750364569820E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.6496232409149E-01 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.2775173671649E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4107723227241E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.3197893831918E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.8022290861654E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.6816228845198E+02 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1759041906200E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4901255570373E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.6018646683540E-01 (PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 4.5473794723942E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.3286784785118E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.3618412639596E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.9740755904197E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 8.8461698953530E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 4.5473803596169E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.3286785367479E+06 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.3618314798794E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.9740736176718E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 8.8461696465487E+03 (PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4635587390014E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.0687399440245E-02 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.3255885073996E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.8473611632254E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.0565386759481E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.3090900781225E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.2122644954768E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.6862132097092E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0847939933237E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2876696041714E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.5473794723942E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -5.3286784785118E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.3277431006207E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9736142010972E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 8.8398548548407E+03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4635599904126E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.0687296992275E-02 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.3239276726145E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.8458740821420E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.0566030494166E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.3090914997590E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.2122528856373E-02 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.6826959549406E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0845025625074E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2877388550958E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.5473803596169E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -5.3286785367479E+06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.3277424401710E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9736122568996E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 8.8398549900170E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -4960,41 +5334,55 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000072000 +(PID.TID 0000.0001) nRecords = 15 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 15 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >siTICE < >siYNEG < >siHSNOW < >siUICE < >siUICE_2< >siUICE_3< >siVICE < >siVICE_2< >siVICE_3< >siHEFF < >siHEFF_2< >siHEFF_3< >siAREA < >siAREA_2< >siAREA_3< +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_LEV_RL: read field: "siTICE ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siAREA ", # 13 in fldList, rec= 13 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siHEFF ", # 10 in fldList, rec= 10 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siHSNOW ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siUICE ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "siVICE ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_seaice.0000072000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_time_secondsf = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4245452368328E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7555592595452E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.6997541665504E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8144590467069E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.2346764211860E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0875293902759E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3965663424729E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8099866725407E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.6028390658337E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9105789665538E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.7309271223980E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.4106245533512E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.0565298308337E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1626230137087E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1075926548839E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.7384285406241E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.6563509936817E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.3089307447223E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7815778413512E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.3670596728321E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5491394477344E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.2056077057389E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0997744916694E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3045101931120E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0161066621910E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7136998742137E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6885247208876E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.4476022905578E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3697456884224E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.7153048736697E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4245401338371E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7690863973145E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.6963693504972E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8180794838514E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.2360785043029E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0875293638651E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3965662774751E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8099948891764E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.6028397032737E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9105817201443E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.7308469889491E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.4106248221696E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.0567253721463E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1626244615521E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1075955506120E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.7384284925398E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.6563509194372E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.3089321988972E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7815778909549E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.3670597274411E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5491394993240E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.2056077488726E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0997743781636E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3045101424953E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0161044270922E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7136998942901E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6885247460094E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.4475872712213E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3697457654414E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.7153052418067E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 @@ -5038,28 +5426,47 @@ (PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.5307261329160E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -6.1093946420427E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -3.5615956254340E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 5.0098935714169E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.4745328530394E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.0416765448527E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.3579277684313E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5116312511346E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6427145658545E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.1840750809188E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.5755034781971E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -1.0774253019191E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.5279307815836E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3389610782127E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.4479605787185E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.5307262028664E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -6.1097104108316E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -3.8257115444254E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 5.1186879920351E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.5087786483738E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.0416765324019E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.3579277867545E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = -1.5117272176132E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.6428283947368E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.1839481861746E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.5755049409718E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -1.0774253109944E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = -5.5322260964696E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.3397093601777E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.4477932239947E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000072000 + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10845870143117E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10845870964906E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -5104,28 +5511,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478476371E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691558707E+03 2.05338887553343E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837851560E+03 2.07023141469158E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317565716E+03 2.08570978494175E+01 - cg2d: Sum(rhs),rhsMax = 2.21223975258875E+03 2.09779531474990E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478476371E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691567079E+03 2.05338888999431E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837864329E+03 2.07023144100045E+01 + cg2d: Sum(rhs),rhsMax = 2.21246317582687E+03 2.08570982849799E+01 + cg2d: Sum(rhs),rhsMax = 2.21223975278217E+03 2.09779537629582E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971423646950730D+04 - --> objf_test(bi,bj) = 0.743444246918396D+04 - --> objf_test(bi,bj) = 0.916061123401046D+04 - --> objf_test(bi,bj) = 0.776111598463343D+04 - --> objf_test(bi,bj) = 0.645188365332502D+04 - --> objf_test(bi,bj) = 0.121082946427275D+05 - --> objf_test(bi,bj) = 0.130205818019604D+05 - --> objf_test(bi,bj) = 0.134004371122149D+05 - --> objf_test(bi,bj) = 0.704975746330787D+04 - --> objf_test(bi,bj) = 0.654290309790949D+04 - --> objf_test(bi,bj) = 0.974952441766972D+04 - --> objf_test(bi,bj) = 0.845212528302448D+04 -(PID.TID 0000.0001) local fc = 0.110845913629474D+06 -(PID.TID 0000.0001) global fc = 0.110845913629474D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845913629474E+05 + --> objf_test(bi,bj) = 0.971423646584162D+04 + --> objf_test(bi,bj) = 0.743444248306132D+04 + --> objf_test(bi,bj) = 0.916061123358289D+04 + --> objf_test(bi,bj) = 0.776111598395164D+04 + --> objf_test(bi,bj) = 0.645188366964846D+04 + --> objf_test(bi,bj) = 0.121082946489631D+05 + --> objf_test(bi,bj) = 0.130205818144919D+05 + --> objf_test(bi,bj) = 0.134004371116706D+05 + --> objf_test(bi,bj) = 0.704975745893550D+04 + --> objf_test(bi,bj) = 0.654290310215675D+04 + --> objf_test(bi,bj) = 0.974952434985196D+04 + --> objf_test(bi,bj) = 0.845212527965782D+04 +(PID.TID 0000.0001) local fc = 0.110845913601814D+06 +(PID.TID 0000.0001) global fc = 0.110845913601814D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845913601814E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -5162,34 +5569,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478450160E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691506478E+03 2.05338887347084E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837762353E+03 2.07023141215040E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317450771E+03 2.08570978341824E+01 - cg2d: Sum(rhs),rhsMax = 2.21223975116120E+03 2.09779531389197E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478450160E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691514851E+03 2.05338888793263E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837786262E+03 2.07023143845931E+01 + cg2d: Sum(rhs),rhsMax = 2.21246317471103E+03 2.08570982697517E+01 + cg2d: Sum(rhs),rhsMax = 2.21223975143253E+03 2.09779537544000E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971415772253970D+04 - --> objf_test(bi,bj) = 0.743444246924280D+04 - --> objf_test(bi,bj) = 0.916061123392993D+04 - --> objf_test(bi,bj) = 0.776111598451326D+04 - --> objf_test(bi,bj) = 0.645188365332142D+04 - --> objf_test(bi,bj) = 0.121082946429354D+05 - --> objf_test(bi,bj) = 0.130205818020087D+05 - --> objf_test(bi,bj) = 0.134004371121814D+05 - --> objf_test(bi,bj) = 0.704975746326407D+04 - --> objf_test(bi,bj) = 0.654289970787900D+04 - --> objf_test(bi,bj) = 0.974952429739913D+04 - --> objf_test(bi,bj) = 0.845212069458988D+04 -(PID.TID 0000.0001) local fc = 0.110845826783805D+06 -(PID.TID 0000.0001) global fc = 0.110845826783805D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845826783805E+05 + --> objf_test(bi,bj) = 0.971415771887447D+04 + --> objf_test(bi,bj) = 0.743444248312015D+04 + --> objf_test(bi,bj) = 0.916061123350408D+04 + --> objf_test(bi,bj) = 0.776111598383156D+04 + --> objf_test(bi,bj) = 0.645188366964485D+04 + --> objf_test(bi,bj) = 0.121082946491713D+05 + --> objf_test(bi,bj) = 0.130205818145378D+05 + --> objf_test(bi,bj) = 0.134004371116385D+05 + --> objf_test(bi,bj) = 0.704975745889192D+04 + --> objf_test(bi,bj) = 0.654289971212696D+04 + --> objf_test(bi,bj) = 0.974952434184465D+04 + --> objf_test(bi,bj) = 0.845212069122453D+04 +(PID.TID 0000.0001) local fc = 0.110845826868411D+06 +(PID.TID 0000.0001) global fc = 0.110845826868411D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845826868411E+05 grad-res ------------------------------- - grad-res 0 1 1 1 1 1 1 1 1.10845870143E+05 1.10845913629E+05 1.10845826784E+05 - grad-res 0 1 1 1 0 1 1 1 4.33604869744E+00 4.34228348895E+00 -1.43789702104E-03 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870143117E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.33604869744463E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.34228348894976E+00 + grad-res 0 1 1 1 1 1 1 1 1.10845870965E+05 1.10845913602E+05 1.10845826868E+05 + grad-res 0 1 1 1 0 1 1 1 4.33604851671E+00 4.33667013931E+00 -1.43361542407E-04 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870964906E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.33604851670641E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.33667013930972E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 55522 2 @@ -5232,28 +5639,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478484988E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691575900E+03 2.05338887627414E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837866140E+03 2.07023141554888E+01 - cg2d: Sum(rhs),rhsMax = 2.21246319871866E+03 2.08570978542323E+01 - cg2d: Sum(rhs),rhsMax = 2.21223974874701E+03 2.09779531496408E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478484988E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691584273E+03 2.05338889073628E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837878909E+03 2.07023144185819E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319888837E+03 2.08570982897918E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974896267E+03 2.09779537651032E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971423709938509D+04 - --> objf_test(bi,bj) = 0.743444246916164D+04 - --> objf_test(bi,bj) = 0.916061123399173D+04 - --> objf_test(bi,bj) = 0.776111598467575D+04 - --> objf_test(bi,bj) = 0.645188365332747D+04 - --> objf_test(bi,bj) = 0.121082946426513D+05 - --> objf_test(bi,bj) = 0.130205818020422D+05 - --> objf_test(bi,bj) = 0.134004371121735D+05 - --> objf_test(bi,bj) = 0.704975746331356D+04 - --> objf_test(bi,bj) = 0.654290152989221D+04 - --> objf_test(bi,bj) = 0.974952513860381D+04 - --> objf_test(bi,bj) = 0.845212416594211D+04 -(PID.TID 0000.0001) local fc = 0.110845912295160D+06 -(PID.TID 0000.0001) global fc = 0.110845912295160D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845912295160E+05 + --> objf_test(bi,bj) = 0.971423709571936D+04 + --> objf_test(bi,bj) = 0.743444248303910D+04 + --> objf_test(bi,bj) = 0.916061123356421D+04 + --> objf_test(bi,bj) = 0.776111598399401D+04 + --> objf_test(bi,bj) = 0.645188366965087D+04 + --> objf_test(bi,bj) = 0.121082946488870D+05 + --> objf_test(bi,bj) = 0.130205818145734D+05 + --> objf_test(bi,bj) = 0.134004371116292D+05 + --> objf_test(bi,bj) = 0.704975745894115D+04 + --> objf_test(bi,bj) = 0.654290153413955D+04 + --> objf_test(bi,bj) = 0.974952513510397D+04 + --> objf_test(bi,bj) = 0.845212416257541D+04 +(PID.TID 0000.0001) local fc = 0.110845912331817D+06 +(PID.TID 0000.0001) global fc = 0.110845912331817D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845912331817E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -5290,34 +5697,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478441542E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691489284E+03 2.05338887272938E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837747773E+03 2.07023141129373E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317427792E+03 2.08570978293668E+01 - cg2d: Sum(rhs),rhsMax = 2.21223975087023E+03 2.09779531363493E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478441542E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691497657E+03 2.05338888719161E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837749403E+03 2.07023143760207E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319716727E+03 2.08570982649198E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974642471E+03 2.09779537513628E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971415711566074D+04 - --> objf_test(bi,bj) = 0.743444246926485D+04 - --> objf_test(bi,bj) = 0.916061123390451D+04 - --> objf_test(bi,bj) = 0.776111598447022D+04 - --> objf_test(bi,bj) = 0.645188365331996D+04 - --> objf_test(bi,bj) = 0.121082946430107D+05 - --> objf_test(bi,bj) = 0.130205818020203D+05 - --> objf_test(bi,bj) = 0.134004371121729D+05 - --> objf_test(bi,bj) = 0.704975746324907D+04 - --> objf_test(bi,bj) = 0.654290127379356D+04 - --> objf_test(bi,bj) = 0.974952441748223D+04 - --> objf_test(bi,bj) = 0.845212181135378D+04 -(PID.TID 0000.0001) local fc = 0.110845828979703D+06 -(PID.TID 0000.0001) global fc = 0.110845828979703D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845828979703E+05 + --> objf_test(bi,bj) = 0.971415711198878D+04 + --> objf_test(bi,bj) = 0.743444248314197D+04 + --> objf_test(bi,bj) = 0.916061123342902D+04 + --> objf_test(bi,bj) = 0.776111598378760D+04 + --> objf_test(bi,bj) = 0.645188366964456D+04 + --> objf_test(bi,bj) = 0.121082946492454D+05 + --> objf_test(bi,bj) = 0.130205818146528D+05 + --> objf_test(bi,bj) = 0.134004371115749D+05 + --> objf_test(bi,bj) = 0.704975745886666D+04 + --> objf_test(bi,bj) = 0.654290127802644D+04 + --> objf_test(bi,bj) = 0.974952527155279D+04 + --> objf_test(bi,bj) = 0.845212180794713D+04 +(PID.TID 0000.0001) local fc = 0.110845829873858D+06 +(PID.TID 0000.0001) global fc = 0.110845829873858D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845829873858E+05 grad-res ------------------------------- - grad-res 0 2 2 1 1 1 1 1 1.10845870143E+05 1.10845912295E+05 1.10845828980E+05 - grad-res 0 2 2 2 0 1 1 1 4.12975026224E+00 4.16577287615E+00 -8.72270999948E-03 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870143117E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.12975026224146E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.16577287614928E+00 + grad-res 0 2 2 1 1 1 1 1 1.10845870965E+05 1.10845912332E+05 1.10845829874E+05 + grad-res 0 2 2 2 0 1 1 1 4.12975055861E+00 4.12289795713E+00 1.65932575875E-03 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870964906E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.12975055861062E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.12289795713150E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 55522 3 @@ -5360,28 +5767,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478494371E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691594464E+03 2.05338887690879E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837904829E+03 2.07023141625613E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317628399E+03 2.08570978584384E+01 - cg2d: Sum(rhs),rhsMax = 2.21223975338483E+03 2.09779531528648E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478494371E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691602837E+03 2.05338889137089E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837917598E+03 2.07023144256482E+01 + cg2d: Sum(rhs),rhsMax = 2.21246317653217E+03 2.08570982940046E+01 + cg2d: Sum(rhs),rhsMax = 2.21223975367983E+03 2.09779537683401E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971423050653068D+04 - --> objf_test(bi,bj) = 0.743444246914347D+04 - --> objf_test(bi,bj) = 0.916061123406101D+04 - --> objf_test(bi,bj) = 0.776111598471279D+04 - --> objf_test(bi,bj) = 0.645188365332752D+04 - --> objf_test(bi,bj) = 0.121082946425902D+05 - --> objf_test(bi,bj) = 0.130205818019335D+05 - --> objf_test(bi,bj) = 0.134004371122334D+05 - --> objf_test(bi,bj) = 0.704975746333572D+04 - --> objf_test(bi,bj) = 0.654290140723860D+04 - --> objf_test(bi,bj) = 0.974952434557166D+04 - --> objf_test(bi,bj) = 0.845212329527586D+04 -(PID.TID 0000.0001) local fc = 0.110845903915954D+06 -(PID.TID 0000.0001) global fc = 0.110845903915954D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845903915954E+05 + --> objf_test(bi,bj) = 0.971423050286502D+04 + --> objf_test(bi,bj) = 0.743444248302085D+04 + --> objf_test(bi,bj) = 0.916061123363438D+04 + --> objf_test(bi,bj) = 0.776111598403102D+04 + --> objf_test(bi,bj) = 0.645188366965087D+04 + --> objf_test(bi,bj) = 0.121082946488258D+05 + --> objf_test(bi,bj) = 0.130205818144630D+05 + --> objf_test(bi,bj) = 0.134004371116901D+05 + --> objf_test(bi,bj) = 0.704975745896349D+04 + --> objf_test(bi,bj) = 0.654290141148619D+04 + --> objf_test(bi,bj) = 0.974952441425848D+04 + --> objf_test(bi,bj) = 0.845212329190989D+04 +(PID.TID 0000.0001) local fc = 0.110845904024799D+06 +(PID.TID 0000.0001) global fc = 0.110845904024799D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845904024799E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -5418,34 +5825,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478432160E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691470721E+03 2.05338887209526E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837720224E+03 2.07023141058650E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317391449E+03 2.08570978251723E+01 - cg2d: Sum(rhs),rhsMax = 2.21223975042080E+03 2.09779531335708E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478432160E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691479094E+03 2.05338888655699E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837721854E+03 2.07023143689513E+01 + cg2d: Sum(rhs),rhsMax = 2.21246319680384E+03 2.08570982607161E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974634630E+03 2.09779537485695E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971416370872564D+04 - --> objf_test(bi,bj) = 0.743444246928326D+04 - --> objf_test(bi,bj) = 0.916061123388106D+04 - --> objf_test(bi,bj) = 0.776111598443397D+04 - --> objf_test(bi,bj) = 0.645188365331895D+04 - --> objf_test(bi,bj) = 0.121082946430727D+05 - --> objf_test(bi,bj) = 0.130205818020334D+05 - --> objf_test(bi,bj) = 0.134004371121643D+05 - --> objf_test(bi,bj) = 0.704975746323648D+04 - --> objf_test(bi,bj) = 0.654290139641981D+04 - --> objf_test(bi,bj) = 0.974952441744250D+04 - --> objf_test(bi,bj) = 0.845212268148156D+04 -(PID.TID 0000.0001) local fc = 0.110845836565494D+06 -(PID.TID 0000.0001) global fc = 0.110845836565494D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845836565494E+05 + --> objf_test(bi,bj) = 0.971416370505384D+04 + --> objf_test(bi,bj) = 0.743444248316058D+04 + --> objf_test(bi,bj) = 0.916061123340679D+04 + --> objf_test(bi,bj) = 0.776111598375138D+04 + --> objf_test(bi,bj) = 0.645188366964343D+04 + --> objf_test(bi,bj) = 0.121082946493075D+05 + --> objf_test(bi,bj) = 0.130205818146625D+05 + --> objf_test(bi,bj) = 0.134004371115677D+05 + --> objf_test(bi,bj) = 0.704975745885431D+04 + --> objf_test(bi,bj) = 0.654290140065293D+04 + --> objf_test(bi,bj) = 0.974952507050114D+04 + --> objf_test(bi,bj) = 0.845212267807557D+04 +(PID.TID 0000.0001) local fc = 0.110845837258638D+06 +(PID.TID 0000.0001) global fc = 0.110845837258638D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845837258638E+05 grad-res ------------------------------- - grad-res 0 3 3 1 1 1 1 1 1.10845870143E+05 1.10845903916E+05 1.10845836565E+05 - grad-res 0 3 3 3 0 1 1 1 3.37114592626E+00 3.36752303920E+00 1.07467524221E-03 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870143117E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.37114592626120E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.36752303919639E+00 + grad-res 0 3 3 1 1 1 1 1 1.10845870965E+05 1.10845904025E+05 1.10845837259E+05 + grad-res 0 3 3 3 0 1 1 1 3.37114583178E+00 3.33830807504E+00 9.74082949341E-03 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870964906E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.37114583178025E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.33830807503546E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 55522 4 @@ -5488,28 +5895,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478505563E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691616648E+03 2.05338887749579E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837926669E+03 2.07023141682357E+01 - cg2d: Sum(rhs),rhsMax = 2.21246319951786E+03 2.08570978614466E+01 - cg2d: Sum(rhs),rhsMax = 2.21223974973622E+03 2.09779531544285E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478505563E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691625021E+03 2.05338889195846E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837939438E+03 2.07023144313205E+01 + cg2d: Sum(rhs),rhsMax = 2.21246317685586E+03 2.08570982970072E+01 + cg2d: Sum(rhs),rhsMax = 2.21223975408460E+03 2.09779537703128E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971422725632988D+04 - --> objf_test(bi,bj) = 0.743444246912830D+04 - --> objf_test(bi,bj) = 0.916061123403678D+04 - --> objf_test(bi,bj) = 0.776111598474465D+04 - --> objf_test(bi,bj) = 0.645188365332939D+04 - --> objf_test(bi,bj) = 0.121082946425382D+05 - --> objf_test(bi,bj) = 0.130205818020175D+05 - --> objf_test(bi,bj) = 0.134004371121896D+05 - --> objf_test(bi,bj) = 0.704975746333679D+04 - --> objf_test(bi,bj) = 0.654290140173015D+04 - --> objf_test(bi,bj) = 0.974952513867861D+04 - --> objf_test(bi,bj) = 0.845212285568145D+04 -(PID.TID 0000.0001) local fc = 0.110845901013741D+06 -(PID.TID 0000.0001) global fc = 0.110845901013741D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845901013741E+05 + --> objf_test(bi,bj) = 0.971422725266994D+04 + --> objf_test(bi,bj) = 0.743444248300578D+04 + --> objf_test(bi,bj) = 0.916061123365344D+04 + --> objf_test(bi,bj) = 0.776111598406362D+04 + --> objf_test(bi,bj) = 0.645188366965195D+04 + --> objf_test(bi,bj) = 0.121082946487747D+05 + --> objf_test(bi,bj) = 0.130205818144553D+05 + --> objf_test(bi,bj) = 0.134004371116952D+05 + --> objf_test(bi,bj) = 0.704975745897376D+04 + --> objf_test(bi,bj) = 0.654290140599098D+04 + --> objf_test(bi,bj) = 0.974952429416178D+04 + --> objf_test(bi,bj) = 0.845212285235221D+04 +(PID.TID 0000.0001) local fc = 0.110845900209449D+06 +(PID.TID 0000.0001) global fc = 0.110845900209449D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10845900209449E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -5546,34 +5953,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21291478420969E+03 2.01372753928932E+01 - cg2d: Sum(rhs),rhsMax = 2.21288691448539E+03 2.05338887150720E+01 - cg2d: Sum(rhs),rhsMax = 2.21267837687247E+03 2.07023141001980E+01 - cg2d: Sum(rhs),rhsMax = 2.21246317347875E+03 2.08570978221443E+01 - cg2d: Sum(rhs),rhsMax = 2.21223974985881E+03 2.09779531315588E+01 + cg2d: Sum(rhs),rhsMax = 2.21291478420969E+03 2.01372754051185E+01 + cg2d: Sum(rhs),rhsMax = 2.21288691456911E+03 2.05338888596998E+01 + cg2d: Sum(rhs),rhsMax = 2.21267837700016E+03 2.07023143632911E+01 + cg2d: Sum(rhs),rhsMax = 2.21246317356999E+03 2.08570982577151E+01 + cg2d: Sum(rhs),rhsMax = 2.21223974884781E+03 2.09779537470165E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971416695641665D+04 - --> objf_test(bi,bj) = 0.743444246929831D+04 - --> objf_test(bi,bj) = 0.916061123385939D+04 - --> objf_test(bi,bj) = 0.776111598440132D+04 - --> objf_test(bi,bj) = 0.645188365331806D+04 - --> objf_test(bi,bj) = 0.121082946431237D+05 - --> objf_test(bi,bj) = 0.130205818020452D+05 - --> objf_test(bi,bj) = 0.134004371121568D+05 - --> objf_test(bi,bj) = 0.704975746322580D+04 - --> objf_test(bi,bj) = 0.654290140191273D+04 - --> objf_test(bi,bj) = 0.974952435308940D+04 - --> objf_test(bi,bj) = 0.845212312079142D+04 -(PID.TID 0000.0001) local fc = 0.110845840193639D+06 -(PID.TID 0000.0001) global fc = 0.110845840193639D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845840193639E+05 + --> objf_test(bi,bj) = 0.971416695275055D+04 + --> objf_test(bi,bj) = 0.743444248317572D+04 + --> objf_test(bi,bj) = 0.916061123342800D+04 + --> objf_test(bi,bj) = 0.776111598371951D+04 + --> objf_test(bi,bj) = 0.645188366964155D+04 + --> objf_test(bi,bj) = 0.121082946493594D+05 + --> objf_test(bi,bj) = 0.130205818145865D+05 + --> objf_test(bi,bj) = 0.134004371116077D+05 + --> objf_test(bi,bj) = 0.704975745885247D+04 + --> objf_test(bi,bj) = 0.654290140615904D+04 + --> objf_test(bi,bj) = 0.974952502789112D+04 + --> objf_test(bi,bj) = 0.845212311742108D+04 +(PID.TID 0000.0001) local fc = 0.110845840908593D+06 +(PID.TID 0000.0001) global fc = 0.110845840908593D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10845840908593E+05 grad-res ------------------------------- - grad-res 0 4 4 1 1 1 1 1 1.10845870143E+05 1.10845901014E+05 1.10845840194E+05 - grad-res 0 4 4 4 0 1 1 1 3.00171930553E+00 3.04100512658E+00 -1.30877730559E-02 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870143117E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.00171930553065E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.04100512657897E+00 + grad-res 0 4 4 1 1 1 1 1 1.10845870965E+05 1.10845900209E+05 1.10845840909E+05 + grad-res 0 4 4 4 0 1 1 1 3.00171927698E+00 2.96504280122E+00 1.22184895968E-02 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10845870964906E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.00171927698303E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.96504280122463E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -5587,211 +5994,223 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 1.1084587014312E+05 1.1084591362947E+05 1.1084582678380E+05 -(PID.TID 0000.0001) grdchk output (g): 1 4.3422834889498E+00 4.3360486974446E+00 -1.4378970210371E-03 +(PID.TID 0000.0001) grdchk output (c): 1 1.1084587096491E+05 1.1084591360181E+05 1.1084582686841E+05 +(PID.TID 0000.0001) grdchk output (g): 1 4.3366701393097E+00 4.3360485167064E+00 -1.4336154240691E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 1.1084587014312E+05 1.1084591229516E+05 1.1084582897970E+05 -(PID.TID 0000.0001) grdchk output (g): 2 4.1657728761493E+00 4.1297502622415E+00 -8.7227099994807E-03 +(PID.TID 0000.0001) grdchk output (c): 2 1.1084587096491E+05 1.1084591233182E+05 1.1084582987386E+05 +(PID.TID 0000.0001) grdchk output (g): 2 4.1228979571315E+00 4.1297505586106E+00 1.6593257587522E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 1.1084587014312E+05 1.1084590391595E+05 1.1084583656549E+05 -(PID.TID 0000.0001) grdchk output (g): 3 3.3675230391964E+00 3.3711459262612E+00 1.0746752422051E-03 +(PID.TID 0000.0001) grdchk output (c): 3 1.1084587096491E+05 1.1084590402480E+05 1.1084583725864E+05 +(PID.TID 0000.0001) grdchk output (g): 3 3.3383080750355E+00 3.3711458317802E+00 9.7408294934093E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 1.1084587014312E+05 1.1084590101374E+05 1.1084584019364E+05 -(PID.TID 0000.0001) grdchk output (g): 4 3.0410051265790E+00 3.0017193055307E+00 -1.3087773055905E-02 +(PID.TID 0000.0001) grdchk output (c): 4 1.1084587096491E+05 1.1084590020945E+05 1.1084584090859E+05 +(PID.TID 0000.0001) grdchk output (g): 4 2.9650428012246E+00 3.0017192769830E+00 1.2218489596826E-02 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 7.9151428922229E-03 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 7.8573080910848E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 148.78302001953125 -(PID.TID 0000.0001) System time: 1.8683459963649511 -(PID.TID 0000.0001) Wall clock time: 150.67557501792908 +(PID.TID 0000.0001) User time: 160.26402205880731 +(PID.TID 0000.0001) System time: 2.7830140590667725 +(PID.TID 0000.0001) Wall clock time: 163.14880514144897 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.23079000413417816 -(PID.TID 0000.0001) System time: 9.1896001482382417E-002 -(PID.TID 0000.0001) Wall clock time: 0.32403111457824707 +(PID.TID 0000.0001) User time: 0.40039198705926538 +(PID.TID 0000.0001) System time: 0.16216400265693665 +(PID.TID 0000.0001) Wall clock time: 0.57557821273803711 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 65.694853544235229 -(PID.TID 0000.0001) System time: 1.5723279938101768 -(PID.TID 0000.0001) Wall clock time: 67.269109010696411 +(PID.TID 0000.0001) User time: 73.136257886886597 +(PID.TID 0000.0001) System time: 2.3243510127067566 +(PID.TID 0000.0001) Wall clock time: 75.528388023376465 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 101.20200705528259 -(PID.TID 0000.0001) System time: 6.5451145172119141E-002 -(PID.TID 0000.0001) Wall clock time: 101.27893662452698 +(PID.TID 0000.0001) User time: 106.66291821002960 +(PID.TID 0000.0001) System time: 9.0623408555984497E-002 +(PID.TID 0000.0001) Wall clock time: 106.77450251579285 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.0337645411491394 -(PID.TID 0000.0001) System time: 1.2189149856567383E-004 -(PID.TID 0000.0001) Wall clock time: 2.0341472625732422 +(PID.TID 0000.0001) User time: 2.1820492744445801 +(PID.TID 0000.0001) System time: 5.7184696197509766E-004 +(PID.TID 0000.0001) Wall clock time: 2.1843433380126953 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.66848498582839966 -(PID.TID 0000.0001) System time: 1.6557097434997559E-002 -(PID.TID 0000.0001) Wall clock time: 0.68501973152160645 +(PID.TID 0000.0001) User time: 0.95271492004394531 +(PID.TID 0000.0001) System time: 2.4622589349746704E-002 +(PID.TID 0000.0001) Wall clock time: 0.97741317749023438 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.73362421989440918 -(PID.TID 0000.0001) System time: 1.6543924808502197E-002 -(PID.TID 0000.0001) Wall clock time: 0.75024580955505371 +(PID.TID 0000.0001) User time: 0.91781055927276611 +(PID.TID 0000.0001) System time: 1.5936076641082764E-002 +(PID.TID 0000.0001) Wall clock time: 0.93400979042053223 (PID.TID 0000.0001) No. starts: 55 (PID.TID 0000.0001) No. stops: 55 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.14547771215438843 -(PID.TID 0000.0001) System time: 4.8127233982086182E-002 -(PID.TID 0000.0001) Wall clock time: 0.19321775436401367 -(PID.TID 0000.0001) No. starts: 208 -(PID.TID 0000.0001) No. stops: 208 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 4.6157836914062500E-004 -(PID.TID 0000.0001) System time: 6.0796737670898438E-006 -(PID.TID 0000.0001) Wall clock time: 4.6825408935546875E-004 +(PID.TID 0000.0001) User time: 4.5394897460937500E-004 +(PID.TID 0000.0001) System time: 1.9669532775878906E-006 +(PID.TID 0000.0001) Wall clock time: 4.9686431884765625E-004 (PID.TID 0000.0001) No. starts: 55 (PID.TID 0000.0001) No. stops: 55 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5886416435241699E-002 -(PID.TID 0000.0001) System time: 6.6379904747009277E-003 -(PID.TID 0000.0001) Wall clock time: 3.2506704330444336E-002 +(PID.TID 0000.0001) User time: 0.37501585483551025 +(PID.TID 0000.0001) System time: 1.1424213647842407E-002 +(PID.TID 0000.0001) Wall clock time: 0.38650321960449219 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.6981494426727295E-002 -(PID.TID 0000.0001) System time: 1.6271471977233887E-003 -(PID.TID 0000.0001) Wall clock time: 6.8661451339721680E-002 +(PID.TID 0000.0001) User time: 6.9923043251037598E-002 +(PID.TID 0000.0001) System time: 5.1715970039367676E-004 +(PID.TID 0000.0001) Wall clock time: 7.0430040359497070E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 49.370415210723877 -(PID.TID 0000.0001) System time: 1.2037128210067749E-002 -(PID.TID 0000.0001) Wall clock time: 49.387300968170166 +(PID.TID 0000.0001) User time: 51.682744979858398 +(PID.TID 0000.0001) System time: 2.8473854064941406E-002 +(PID.TID 0000.0001) Wall clock time: 51.724967718124390 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 44.862831532955170 -(PID.TID 0000.0001) System time: 3.5470724105834961E-004 -(PID.TID 0000.0001) Wall clock time: 44.867718458175659 +(PID.TID 0000.0001) User time: 47.325413823127747 +(PID.TID 0000.0001) System time: 3.2854914665222168E-002 +(PID.TID 0000.0001) Wall clock time: 47.373261213302612 (PID.TID 0000.0001) No. starts: 55 (PID.TID 0000.0001) No. stops: 55 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 43.642116129398346 -(PID.TID 0000.0001) System time: 1.1199712753295898E-004 -(PID.TID 0000.0001) Wall clock time: 43.646864891052246 +(PID.TID 0000.0001) User time: 46.012217640876770 +(PID.TID 0000.0001) System time: 2.4440854787826538E-002 +(PID.TID 0000.0001) Wall clock time: 46.051545143127441 (PID.TID 0000.0001) No. starts: 55 (PID.TID 0000.0001) No. stops: 55 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.383992552757263 -(PID.TID 0000.0001) System time: 2.8404593467712402E-004 -(PID.TID 0000.0001) Wall clock time: 16.390479087829590 +(PID.TID 0000.0001) User time: 16.990833282470703 +(PID.TID 0000.0001) System time: 2.8872489929199219E-004 +(PID.TID 0000.0001) Wall clock time: 16.993151426315308 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.2345249652862549 -(PID.TID 0000.0001) System time: 2.9802322387695312E-006 -(PID.TID 0000.0001) Wall clock time: 6.2347254753112793 +(PID.TID 0000.0001) User time: 6.5770075321197510 +(PID.TID 0000.0001) System time: 2.2667646408081055E-004 +(PID.TID 0000.0001) Wall clock time: 6.5780079364776611 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.56238412857055664 -(PID.TID 0000.0001) System time: 3.3974647521972656E-005 -(PID.TID 0000.0001) Wall clock time: 0.56248807907104492 +(PID.TID 0000.0001) User time: 0.58390927314758301 +(PID.TID 0000.0001) System time: 3.7908554077148438E-005 +(PID.TID 0000.0001) Wall clock time: 0.58408379554748535 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0236442089080811 -(PID.TID 0000.0001) System time: 5.8412551879882812E-006 -(PID.TID 0000.0001) Wall clock time: 1.0237355232238770 +(PID.TID 0000.0001) User time: 1.0522229671478271 +(PID.TID 0000.0001) System time: 5.1736831665039062E-005 +(PID.TID 0000.0001) Wall clock time: 1.0529525279998779 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.19948720932006836 -(PID.TID 0000.0001) System time: 2.1100044250488281E-005 -(PID.TID 0000.0001) Wall clock time: 0.19956970214843750 +(PID.TID 0000.0001) User time: 0.20784640312194824 +(PID.TID 0000.0001) System time: 8.2254409790039062E-005 +(PID.TID 0000.0001) Wall clock time: 0.20802354812622070 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.99947929382324219 -(PID.TID 0000.0001) System time: 5.0663948059082031E-006 -(PID.TID 0000.0001) Wall clock time: 0.99962019920349121 +(PID.TID 0000.0001) User time: 1.0500018596649170 +(PID.TID 0000.0001) System time: 1.6683340072631836E-004 +(PID.TID 0000.0001) Wall clock time: 1.0503716468811035 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 22.058346033096313 -(PID.TID 0000.0001) System time: 8.0470740795135498E-003 -(PID.TID 0000.0001) Wall clock time: 22.066897153854370 +(PID.TID 0000.0001) User time: 23.251312255859375 +(PID.TID 0000.0001) System time: 3.8593411445617676E-003 +(PID.TID 0000.0001) Wall clock time: 23.257978916168213 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.9911270141601562E-004 -(PID.TID 0000.0001) System time: 9.8347663879394531E-007 -(PID.TID 0000.0001) Wall clock time: 4.0864944458007812E-004 +(PID.TID 0000.0001) User time: 4.6753883361816406E-004 +(PID.TID 0000.0001) System time: 1.9669532775878906E-006 +(PID.TID 0000.0001) Wall clock time: 4.5132637023925781E-004 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.52339410781860352 -(PID.TID 0000.0001) System time: 9.5367431640625000E-007 -(PID.TID 0000.0001) Wall clock time: 0.52345538139343262 +(PID.TID 0000.0001) User time: 0.57690882682800293 +(PID.TID 0000.0001) System time: 3.1113624572753906E-005 +(PID.TID 0000.0001) Wall clock time: 0.57697820663452148 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.96586489677429199 -(PID.TID 0000.0001) System time: 4.0829181671142578E-006 -(PID.TID 0000.0001) Wall clock time: 0.96597981452941895 +(PID.TID 0000.0001) User time: 1.0103688240051270 +(PID.TID 0000.0001) System time: 1.2913346290588379E-004 +(PID.TID 0000.0001) Wall clock time: 1.0108573436737061 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.2451143264770508E-002 -(PID.TID 0000.0001) System time: 1.1958003044128418E-002 -(PID.TID 0000.0001) Wall clock time: 5.4438352584838867E-002 +(PID.TID 0000.0001) User time: 5.4907083511352539E-002 +(PID.TID 0000.0001) System time: 7.9529583454132080E-003 +(PID.TID 0000.0001) Wall clock time: 6.2862396240234375E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.9290676116943359E-002 -(PID.TID 0000.0001) System time: 8.0119967460632324E-003 -(PID.TID 0000.0001) Wall clock time: 3.7298917770385742E-002 +(PID.TID 0000.0001) User time: 2.9503107070922852E-002 +(PID.TID 0000.0001) System time: 1.2025892734527588E-002 +(PID.TID 0000.0001) Wall clock time: 4.1501998901367188E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 9.9266052246093750E-002 +(PID.TID 0000.0001) System time: 4.6365499496459961E-002 +(PID.TID 0000.0001) Wall clock time: 0.14562416076660156 +(PID.TID 0000.0001) No. starts: 7 +(PID.TID 0000.0001) No. stops: 7 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.14336395263671875 +(PID.TID 0000.0001) System time: 3.5962104797363281E-002 +(PID.TID 0000.0001) Wall clock time: 0.17933416366577148 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.14502716064453125 +(PID.TID 0000.0001) System time: 1.6028881072998047E-002 +(PID.TID 0000.0001) Wall clock time: 0.16105985641479492 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 82.857353210449219 -(PID.TID 0000.0001) System time: 0.20409309864044189 -(PID.TID 0000.0001) Wall clock time: 83.082392930984497 +(PID.TID 0000.0001) User time: 86.438880920410156 +(PID.TID 0000.0001) System time: 0.24450111389160156 +(PID.TID 0000.0001) Wall clock time: 86.704350948333740 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.7706985473632812 -(PID.TID 0000.0001) System time: 0.11182296276092529 -(PID.TID 0000.0001) Wall clock time: 1.8826882839202881 +(PID.TID 0000.0001) User time: 2.3767166137695312 +(PID.TID 0000.0001) System time: 0.15580463409423828 +(PID.TID 0000.0001) Wall clock time: 2.5335960388183594 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 80.954887390136719 -(PID.TID 0000.0001) System time: 2.8366208076477051E-002 -(PID.TID 0000.0001) Wall clock time: 80.994326353073120 +(PID.TID 0000.0001) User time: 83.918800354003906 +(PID.TID 0000.0001) System time: 4.0817260742187500E-002 +(PID.TID 0000.0001) Wall clock time: 83.979542016983032 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 80.247970581054688 -(PID.TID 0000.0001) System time: 2.4237155914306641E-002 -(PID.TID 0000.0001) Wall clock time: 80.283191442489624 +(PID.TID 0000.0001) User time: 83.105461120605469 +(PID.TID 0000.0001) System time: 2.4830341339111328E-002 +(PID.TID 0000.0001) Wall clock time: 83.150068521499634 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.6015014648437500E-002 -(PID.TID 0000.0001) System time: 3.9830207824707031E-003 -(PID.TID 0000.0001) Wall clock time: 5.9975862503051758E-002 +(PID.TID 0000.0001) User time: 5.0842285156250000E-002 +(PID.TID 0000.0001) System time: 1.5822172164916992E-002 +(PID.TID 0000.0001) Wall clock time: 6.6689729690551758E-002 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -5930,9 +6349,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 171424 +(PID.TID 0000.0001) // No. barriers = 175338 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 171424 +(PID.TID 0000.0001) // Total barrier spins = 175338 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_adm.thsice.txt b/verification/global_ocean.cs32x15/results/output_adm.thsice.txt index ff0abb38a3..8bcf09869c 100644 --- a/verification/global_ocean.cs32x15/results/output_adm.thsice.txt +++ b/verification/global_ocean.cs32x15/results/output_adm.thsice.txt @@ -5,26 +5,26 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67s +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68h (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Tue Dec 1 13:43:48 EST 2020 +(PID.TID 0000.0001) // Build date: Thu Mar 24 17:01:38 EDT 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "eedata" file (PID.TID 0000.0001) ># Lines beginning "#" are comments -(PID.TID 0000.0001) ># nTx - No. threads per process in X -(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) (PID.TID 0000.0001) > &EEPARMS (PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., (PID.TID 0000.0001) > nTx=1, (PID.TID 0000.0001) > nTy=1, (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># Note: Some systems use & as the -(PID.TID 0000.0001) ># namelist terminator. Other systems -(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) @@ -526,6 +526,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -556,9 +562,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -575,80 +590,97 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># This is a somewhat untypical namelist file for the ctrl package. It is +(PID.TID 0000.0001) ># meant to illustrate the difference between the old method of declaring +(PID.TID 0000.0001) ># control parameters (active when ctrlUseGen=.FALSE.) and the new method with +(PID.TID 0000.0001) ># the generic control variables (active when ctrlUseGen=.TRUE.). This +(PID.TID 0000.0001) ># experiment is special because it enables both old and new method at compile +(PID.TID 0000.0001) ># time --- something that is possible for most, but not all combinations of +(PID.TID 0000.0001) ># control variables --- and therefore it is possible so switch between the +(PID.TID 0000.0001) ># two methods by choosing the appropriate runtime parameters. Both methods +(PID.TID 0000.0001) ># do the same thing for xx_theta, xx_salt, and xx_diffkr. (PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># - CTRL_NML contains general parameter and the names of the control variable +(PID.TID 0000.0001) ># file names on disk for the old method. These names are really only the +(PID.TID 0000.0001) ># default values and for convenience they are associated with the +(PID.TID 0000.0001) ># corresponding CPP fags that need to be set. Setting the CPP flags is really +(PID.TID 0000.0001) ># the old (deprecated) way of defining which control parameters are used. The +(PID.TID 0000.0001) ># CPP flags of this experiment only define control parameters for the first +(PID.TID 0000.0001) ># timestep, so that any startdate/period are not used in this example. The +(PID.TID 0000.0001) ># behavior cannot be reproduced with the generic control variables method. (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># ECCO controlvariables -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', +(PID.TID 0000.0001) ># - CTRL_NML_GENARR contains the names of the control variable files (and +(PID.TID 0000.0001) ># control variables) for the generic control variable method. These names are +(PID.TID 0000.0001) ># predefined, but they can be choose at runtime. See the documentations, +(PID.TID 0000.0001) ># chapter 10 for details. The control variables are actually turned on by +(PID.TID 0000.0001) ># specifying non-zero weights files! The surface forcing control variables +(PID.TID 0000.0001) ># are for mean surface values (applied at every time step) and so they are +(PID.TID 0000.0001) ># different from the variables xx_tauu, xx_tauv, xx_sfl, and xx_hfl. (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, +(PID.TID 0000.0001) ># ********************** +(PID.TID 0000.0001) ># ECCO control variables +(PID.TID 0000.0001) ># ********************** +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > ctrlUseGen = .FALSE., +(PID.TID 0000.0001) ># old control variable method, defined through CPP-flags, here they +(PID.TID 0000.0001) ># are just comments +(PID.TID 0000.0001) ># define ALLOW_THETA0_CONTROL +(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', +(PID.TID 0000.0001) ># define ALLOW_SALT0_CONTROL +(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', +(PID.TID 0000.0001) ># define ALLOW_TR10_CONTROL +(PID.TID 0000.0001) > xx_tr1_file = 'xx_ptr', +(PID.TID 0000.0001) ># define ALLOW_TAUU0_CONTROL +(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', +(PID.TID 0000.0001) ># define ALLOW_TAUV0_CONTROL +(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># define ALLOW_SFLUX0_CONTROL (PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', +(PID.TID 0000.0001) ># define ALLOW_HFLUX0_CONTROL +(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', +(PID.TID 0000.0001) ># define ALLOW_DIFFKR_CONTROL +(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># not clear why this to be commented out, +(PID.TID 0000.0001) ># but the reference results have no bounds applied +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_ptr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl @@ -685,7 +717,9 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># this is xx_theta (PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) >#grdchkvarindex =201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -935,6 +969,9 @@ (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 3.110400000000000E+07 (PID.TID 0000.0001) ; @@ -1168,7 +1205,7 @@ (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 239366 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 478732 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 389 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 367 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 384 @@ -1234,10 +1271,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 11937 (PID.TID 0000.0001) ctrl-wet 8: atmos 10408 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 239366 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 478732 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4420 4232 4206 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4299 4112 4096 0 @@ -1257,8 +1634,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 8 -(PID.TID 0000.0001) ctrl_init: control vector length: 239366 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 16 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 478732 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1289,6 +1666,55 @@ (PID.TID 0000.0001) Initial state salinity contribution: (PID.TID 0000.0001) Control variable index: 0102 (PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = F /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= @@ -1333,7 +1759,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1490,28 +1916,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 2.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1533,7 +1962,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1542,7 +1971,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1703,8 +2132,8 @@ (PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) balanceEmPmR = /* balance net fresh-water flux on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectBalanceEmPmR = /* balancing glob.mean EmPmR selector */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ (PID.TID 0000.0001) F @@ -1721,7 +2150,7 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ +(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ @@ -1758,8 +2187,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 200 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1776,6 +2205,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2716,7 +3148,9 @@ (PID.TID 0000.0001) ; (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) THSICE_CHECK: #define THSICE -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2762,11 +3196,11 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0113294365963E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5242443278796E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3300374611828E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124036730755E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390857550473E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8421448772884E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3719523207710E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9513639049696E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0124735215525E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1390867107236E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2881662065410E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3718089817332E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9515844278522E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.1190145162975E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0531070632180E+00 @@ -2807,8 +3241,8 @@ (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3923803824552E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3304632405312E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742267636260E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160047546783E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9742298794914E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7160082019468E-02 (PID.TID 0000.0001) %MON pe_b_mean = 1.5559232407148E-02 (PID.TID 0000.0001) %MON ke_max = 4.1915507392132E-02 (PID.TID 0000.0001) %MON ke_mean = 2.0848176851410E-04 @@ -2819,8 +3253,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 7.5259723723248E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806340990730E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.2827605093522E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0635497176584E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.6599604852923E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0742649548195E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1717823146781E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2868,45 +3302,45 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) whio : write lev 3 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663075174E+03 2.11233744886476E+01 -(PID.TID 0000.0001) cg2d_init_res = 2.10380770896695E+00 + cg2d: Sum(rhs),rhsMax = 2.21834663075175E+03 2.11233745008728E+01 +(PID.TID 0000.0001) cg2d_init_res = 2.10380735337967E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 70 -(PID.TID 0000.0001) cg2d_last_res = 5.01795499332624E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.01796775036242E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72001 (PID.TID 0000.0001) %MON time_secondsf = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2001887508509E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4590347525820E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2001887508093E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4590347752490E+00 (PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2994424014872E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8375040424831E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9100048653987E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1316542182464E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9096348343427E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2730508553274E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4787016782704E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8198469398603E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2157535275335E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0069033637782E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0021476747126E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5243430678367E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3223497914637E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0165079239626E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1376492087298E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8016903719039E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3710725511448E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9505405865946E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1196585355886E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1039233594598E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532708589329E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9947919154117E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9286262873571E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9386503510871E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775682233799E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752515674670E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8904942876037E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3496750917646E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8375040090317E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9100049861776E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1316542504947E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9096346790862E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2730507109643E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4787016750548E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8198470021443E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2157535551518E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0069037458403E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0021477426929E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5243430581599E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3223499112048E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0165079650156E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1376492047371E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8016749196239E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3710723834385E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9505402449278E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1196585355902E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1039233594666E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0532708589359E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9947919154127E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9286262895527E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9386503510912E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775682233805E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752515674671E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8904942876408E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3496750926735E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 6.0303155550454E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.5031225998834E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8850176124624E+01 @@ -2932,25 +3366,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3684501518858E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5153512230531E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3373863441584E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2060007784424E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8597909518420E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7108228646585E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4003794915218E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3382051361634E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9695430805379E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7108228646585E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4344136338689E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1793398729522E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0844972067970E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2060003405750E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8597908065285E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7108228502563E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4003796176144E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3382049994046E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9695430675203E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7108228502563E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4344136332499E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1793395264267E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0844971886979E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386016457284E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2310695182668E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2986088690266E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2310695198742E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2986088432253E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723701835E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723701839E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4806339598239E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827603365377E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4358490460806E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2443643711411E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827603365350E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4358618583732E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2443630200793E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2996,60 +3430,60 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21801030026929E+03 2.12349477833349E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.87116495293192E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030031539E+03 2.12349477998385E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.87116484563379E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 4.35995778366149E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.35995642461991E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72002 (PID.TID 0000.0001) %MON time_secondsf = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2006642915126E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5260885608103E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2989421626880E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8323102187286E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9348074188887E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1338294931233E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9060314055443E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2620416142923E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4784674558725E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8148705424783E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2108225962590E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0075338057066E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9849569231588E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5244992792332E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3146856856070E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0219369850899E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1406427223800E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.9077479995998E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3854644115529E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9700909503358E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1202394373619E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.2039291218830E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0534358817490E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9951210739443E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9088993666548E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9290064046883E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775772473482E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752511083084E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8897801017535E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3386545152136E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9942988499559E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4997423330700E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8807955066758E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1734928155093E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2974319216919E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2006642954033E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5260885620179E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2989421627566E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8323101918456E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9348074609537E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1338295125400E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9060313091244E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2620416349709E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4784674536289E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8148705636200E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2108226139821E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0075340406779E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9849568946100E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5244992745622E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3146857589443E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0219370101464E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1406426981560E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.9077540074745E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.3854643324070E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9700907468713E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1202394373644E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.2039291220006E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0534358817514E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9951210739466E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.9088993698330E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9290064049106E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775772473491E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752511083086E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8897801018115E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3386545166704E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 5.9942988546146E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4997423330980E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8807955350764E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1734928110874E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2974319280189E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = -0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0190327619373E+02 (PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8263348923699E+02 (PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9818395179362E+01 (PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.2482725638458E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.3501814882907E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3150015629916E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.9924439483863E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7303127061619E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.4033034546306E-07 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.3501813866486E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3150015629882E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.9924431271205E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7303126229449E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.4033021299265E-07 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4755808644372E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.0607770640355E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -4.5044017291293E-03 @@ -3060,25 +3494,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3688427064785E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5192943168452E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3392164091250E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1958375220233E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8677934906413E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7216190122563E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4090593245912E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3457229593804E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9793030646655E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7216190122563E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4340391223865E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1666536488433E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0843881613535E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1958372500914E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8677934687519E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7216189248818E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4090594024250E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3457229387050E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9793029856859E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7216189248818E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4340391219407E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1666534329025E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0843881516977E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386018220317E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2362106131746E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2968846636365E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2362106148809E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2968846465348E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723688093E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806335824749E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827602075337E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3639824588012E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2912088890264E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723688096E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806335824757E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827602075275E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3639858617624E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2912067837258E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3086,98 +3520,98 @@ (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7006063985676E+13 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.7718857331777E+12 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2234178252499E+13 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.7961500302765E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1823754701594E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0355500133699E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1226115579379E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2028421045958E+00 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1347116890071E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.9310031669195E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2141672740259E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.8539893792999E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.2568523155047E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.8877638764024E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.2823574608525E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6216272084689E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9093233787323E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.7006064000432E+13 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.7718857305159E+12 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2234178269916E+13 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.7961500303866E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1823754696856E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0355500132335E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1226115579360E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2028421045957E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1347116876508E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.9310031668216E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2141672720213E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.8539893783497E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.2568523464191E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.8877638760132E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.2823574635868E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6216272064727E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9093233787319E+00 (PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2727260523825E+01 (PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.8370510898264E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0721187380074E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3883561856039E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2835661023466E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.5130758672859E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8643235436138E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.9790324708711E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.7066935806699E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6343451665035E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6461257144882E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3113649411354E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0789719556995E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -7.9538009627400E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.5873586312192E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0935793050556E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9664407305431E+21 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.8370510898177E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0721187378150E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3883561856804E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2835661016193E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.5130758672739E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8643235436139E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.9790324709078E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.7066935804990E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6343451659882E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6461257146421E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3113649389010E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0789719556973E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -7.9538009627405E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.5873586323148E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0935793046761E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9664407394471E+21 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21767071782830E+03 2.12683664268458E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.91469168002071E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071789821E+03 2.12683663977863E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.91469172173411E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 4.53905024556775E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.53904829763191E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72003 (PID.TID 0000.0001) %MON time_secondsf = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2019936466092E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5303215912549E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2984370871110E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8228184033558E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9165158965360E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1355912877246E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9021479412600E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2547754601815E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4783051575936E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8101285767913E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2053715582160E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0081303388284E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9686263717104E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5247662727354E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3076202067946E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0284906685698E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1423549836371E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.3562268779092E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4111243842522E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0033324081387E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1207594734424E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.3001834619062E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0536000523823E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9954514985012E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8948187649068E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9185951091653E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775850841677E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752506332462E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8890478272119E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3286653007411E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0105405137114E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4963876140731E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8700883519925E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1719376691875E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2534882878639E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2019936517197E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5303215613571E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2984370872149E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8228183888867E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9165158869520E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1355913057351E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9021478451865E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2547754750245E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4783051549571E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8101285998215E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2053715747871E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0081305729066E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9686263867958E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5247662684493E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3076202775180E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0284906919701E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1423549630079E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.3562295265386E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4111242981071E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0033322076650E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1207594734458E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.3001834621597E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0536000523846E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9954514985028E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8948187687179E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9185951101780E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775850841689E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752506332463E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8890478272947E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3286653027305E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0105405195299E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4963876142572E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8700883686873E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1719376665158E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2534882564561E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = -0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0189127925792E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8275421055884E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9742900103697E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1972052075693E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.7310459967364E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3364301885301E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -6.0503845167781E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7584308714974E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.4614468535064E-07 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8275421055974E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9742900104226E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1972052074326E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.7310459905228E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3364301885135E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -6.0503840924331E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7584308119340E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.4614459786574E-07 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4751003717351E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.0922350306190E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -4.4609227933959E-03 @@ -3188,25 +3622,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3692352610712E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5242720295677E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3430754301775E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1848860095881E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8755220871954E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7277862855638E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4190692408689E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3529991228549E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9848856824998E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7277862855638E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4336189356241E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1537163862785E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0845357904675E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1848857386326E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8755220752480E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7277862112861E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4190693141370E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3529991116195E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9848856152409E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7277862112861E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4336189354773E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1537161704456E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0845357808356E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3386020040619E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2417038438439E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2952108069585E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2417038459293E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2952107880653E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723678603E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806332133329E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827601191545E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.4033496368239E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5829153621811E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723678605E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806332133333E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827601191496E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.4033483233183E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5829140276252E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3214,98 +3648,98 @@ (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6908000160453E+13 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.6157204277980E+12 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2292279732655E+13 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8036165768828E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1860234684240E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0355212510993E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1210712177897E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2036864987242E+00 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1408222322392E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.9037094410030E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2298574948596E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.8169153763653E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.3124507748400E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9098459114040E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.4247053748806E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6245758341240E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9450086195647E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2724380599737E+01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6908000182021E+13 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.6157204229333E+12 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2292279759088E+13 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8036165771291E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1860234676791E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0355212509748E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1210712177857E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2036864987238E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1408222303363E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.9037094408229E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2298574920246E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.8169153740780E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.3124508365989E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9098459109214E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.4247053785773E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6245758311686E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9450086194776E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2724380599742E+01 (PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.9091697842166E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0792167073654E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3696305774905E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2853710706937E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4758676821458E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8769022535587E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.9413798020925E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.6244209280331E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6643585078363E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6369212042165E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3267272979156E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0645886883194E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.0987950702637E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.7122541655175E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0647306266358E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9528351693245E+21 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.9091697901678E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0792167071174E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3696305775615E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2853710696125E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4758676820610E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8769022535594E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.9413798016926E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.6244209682985E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6643585059850E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6369212028139E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3267272934682E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0645886883113E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.0987950702910E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.7122541193282E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0647306629698E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9528351829003E+21 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21735018642292E+03 2.13212129421373E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.91086721429692E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018651565E+03 2.13212129126656E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.91086721627715E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 4.43968889391075E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.43968879852064E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72004 (PID.TID 0000.0001) %MON time_secondsf = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2034383783855E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5126336801987E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2979603469590E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8131118393969E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8937145201604E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1368753640044E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8979979345735E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2503349309518E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4781867737191E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8054205212842E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1993424806954E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086804933661E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9533405133283E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5250950692736E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3009501624743E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0359759871021E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1437932143860E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.4165858689421E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4438969694110E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0417864824580E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1212206575900E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.3928387732367E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0537640850067E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9957859769682E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8778473363626E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9078666470485E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775917487866E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752501906591E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8883425145265E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3188541829299E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0077482382546E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4930641861345E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8708537747127E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1728500563185E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2481093169017E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2034383823560E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5126336324430E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2979603470969E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8131118366957E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8937145180430E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1368753806722E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8979978390385E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2503349610058E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4781867711101E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8054205413870E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1993424955308E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0086807259147E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9533405485815E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5250950651379E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.3009502303336E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0359760080261E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1437931945540E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.4165878101895E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4438968783076E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0417862835593E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1212206575938E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.3928387735464E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0537640850092E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9957859769692E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8778473410284E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.9078666494157E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775917487882E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752501906592E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8883425146416E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3188541855182E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0077482452523E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4930641865060E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8708537918673E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1728500536610E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2481092775521E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = -0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0187928232211E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8288079455697E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9681452183078E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1722539088487E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.9091409921391E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3578940436790E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.7109497373740E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.5699205770319E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.9026099947367E-07 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8288079455885E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9681452183813E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1722539082639E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.9091409960454E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3578940436455E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.7109493308000E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.5699205208887E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.9026091061036E-07 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4746198790331E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.1236929972025E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -4.4174438576624E-03 @@ -3316,25 +3750,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3696278156640E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5302823094907E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3489534074143E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1731825471327E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8824838059750E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7329742199859E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4301360443570E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3595555631792E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9895748574697E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7329742199859E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4331890210874E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1405352268893E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0848324168919E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3386021878523E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2474375001048E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2934721834053E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1731822776955E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8824838146501E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7329741485088E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4301361133122E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3595555713488E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9895747928100E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7329741485088E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4331890211609E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1405350112800E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0848324075240E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3386021878522E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2474375027158E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2934721637801E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723607208E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806328430241E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827600609053E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.7422728499562E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7233593067222E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723607210E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806328430243E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827600609021E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.7422679592527E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7233589958038E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3342,98 +3776,98 @@ (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6835445069944E+13 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.4896554147798E+12 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2345789655164E+13 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8089493639640E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1849446207643E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0358741984546E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1194970763926E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2045470701059E+00 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1465835732129E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.8721558161279E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2463816501263E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.7799066666210E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.3689420116084E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9288537178498E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -7.2242337828111E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6276712466850E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9950416688018E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2721533328278E+01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6835445097227E+13 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.4896554072185E+12 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2345789690008E+13 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8089493644265E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1849446198010E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0358741984131E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1194970763859E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2045470701051E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1465835709329E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.8721558159801E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2463816466211E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.7799066626807E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.3689421051014E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9288537173719E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -7.2242337879550E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6276712428822E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9950416685614E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2721533328290E+01 (PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.9830544030013E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0856682393923E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3468587765682E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2869543062613E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4419191199594E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8851322304702E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.7647022269917E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5655066185139E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6911765244221E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6271222251931E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3397179310569E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0506849622078E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.1942750577224E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.3981454978654E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0449345474972E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9419041903431E+21 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.9830544120542E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0856682391098E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3468587766902E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2869543048497E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4419191197385E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8851322304722E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.7647022260706E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5655066845338E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.6911765221993E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6271222234799E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3397179252895E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0506849621931E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.1942750578733E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.3981454223115E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0449345811323E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9419042084251E+21 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21702331271964E+03 2.13712751472001E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.90597416265215E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331283438E+03 2.13712751127756E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.90597416369381E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 74 -(PID.TID 0000.0001) cg2d_last_res = 4.32669805653607E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.32670143500116E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72005 (PID.TID 0000.0001) %MON time_secondsf = 6.2212320000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2049583880217E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4994671886368E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2974741736344E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8033424226030E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8775376468022E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1376607242480E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8935779796176E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2480162822229E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4781056475372E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8006673365482E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1927397976125E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0091783619009E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9391780168557E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5254722549656E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2945183551937E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0442966197726E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1454039111027E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.5980938060773E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4809098792039E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0803545558446E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1216244552435E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.4820275081642E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0539274178969E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9961234002976E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8613342077532E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8973957246382E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775972528711E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752497452384E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8876663179342E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3095007806457E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0050479055894E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4897777183808E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8593595321932E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1718405991275E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2322534164835E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = -2.2049583900819E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.4994671434012E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2974741738051E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8033424286487E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8775376553357E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1376607394239E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8935778846974E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2480163280215E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4781056451128E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8006673528138E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1927398109534E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0091785928616E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.9391780651047E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5254722509214E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.2945184203798E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0442966387434E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.1454038879330E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.5980965316093E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4809097866441E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.0803543593703E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.1216244552463E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.4820275083957E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0539274179003E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9961234002985E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8613342131130E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 5.8973957285624E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.7775972528730E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4752497452385E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.8876663180828E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3095007837421E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.0050479133014E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.4897777189791E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -2.8593595499711E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1718405964607E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.2322533607202E-01 (PID.TID 0000.0001) %MON forcing_qsw_max = -0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -3.0186728538630E+02 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8298360988052E+02 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9607407850888E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1294417220931E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.2094447870427E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3793916653286E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.8239512839733E-06 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.4759066848309E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.6933895668427E-07 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.8298360988366E+02 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 7.9607407851688E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.1294417211586E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.2094447933689E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -4.3793916652797E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -5.8239508917720E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.4759066317709E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.6933886273215E-07 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4741393863310E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.1551509637860E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -4.3739649219290E-03 @@ -3444,25 +3878,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3700203702567E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5373226864996E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3568352349763E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1607176917841E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8886289197484E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7387837943089E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4421798878745E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3653439590952E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9948263365764E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7387837943089E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4327657914230E-02 -(PID.TID 0000.0001) %MON ke_max = 4.1270660947382E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.0852497365154E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3386023613317E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2533459340423E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2917904150627E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1607174240803E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.8886289487540E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7387837106810E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4421799518069E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3653439863843E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9948262610344E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7387837106810E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.4327657916306E-02 +(PID.TID 0000.0001) %MON ke_max = 4.1270658793804E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0852497275387E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3386023613316E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2533459371215E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2917903949772E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723456908E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4806324881415E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2827601089005E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.8584566777418E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7282310334749E-08 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259723456909E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4806324881417E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2827601088985E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.8584511741924E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7282314455303E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3470,74 +3904,73 @@ (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 6.2212320000000E+09 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6751352623586E+13 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.3569769449392E+12 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2394375678647E+13 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8152249010266E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1855130121655E+00 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0365866099870E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1178898311265E+00 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2054241858836E+00 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1551588312593E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.8461484474780E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2637848042643E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.7429776472292E-01 -(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.4261420034082E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9485007711193E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.7703560461834E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6310744538208E+01 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.0242279960442E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2718721774197E+01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 1.6751352655421E+13 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 4.3569769339923E+12 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 1.2394375721429E+13 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 1.8152249017888E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 1.1855130111086E+00 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0365866100683E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1178898311165E+00 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 5.2054241858825E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 2.1551588290561E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 1.8461484475815E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 2.2637848006023E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 5.7429776413980E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 4.4261421307532E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -1.9485007707559E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -6.7703560510873E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.6310744492569E+01 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.0242279950175E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.2718721774220E+01 (PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.0581406995658E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0920147690343E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3265509481430E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2883261628799E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4137475741962E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8896925905151E+01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.6195926234229E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5204221304609E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.7166624098808E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6176946591336E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3507965047146E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0372543285577E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.2531361681138E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -8.9630954323708E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0306167798594E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9295352305494E+21 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -5.0581407110770E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.0920147687411E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.3265509483776E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.2883261611682E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4137475738428E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8896925905183E+01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.6195926219326E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -2.5204222166146E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -4.7166624074201E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6176946571323E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -5.3507964977871E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0372543285353E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -8.2531361685431E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -8.9630953163905E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -2.0306168163219E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -9.9295352530100E+21 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 72005 ckptA --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971675852796659D+04 - --> objf_test(bi,bj) = 0.743425873392991D+04 - --> objf_test(bi,bj) = 0.916243736006201D+04 - --> objf_test(bi,bj) = 0.775955343458005D+04 - --> objf_test(bi,bj) = 0.644362738789567D+04 - --> objf_test(bi,bj) = 0.120863611847132D+05 - --> objf_test(bi,bj) = 0.130222699546264D+05 - --> objf_test(bi,bj) = 0.134004426154220D+05 - --> objf_test(bi,bj) = 0.704978775094031D+04 - --> objf_test(bi,bj) = 0.654503558731614D+04 - --> objf_test(bi,bj) = 0.974891251001662D+04 - --> objf_test(bi,bj) = 0.844295033005014D+04 -(PID.TID 0000.0001) local fc = 0.110812395377519D+06 -(PID.TID 0000.0001) global fc = 0.110812395377519D+06 + --> objf_test(bi,bj) = 0.971675852430101D+04 + --> objf_test(bi,bj) = 0.743425874721265D+04 + --> objf_test(bi,bj) = 0.916243735963293D+04 + --> objf_test(bi,bj) = 0.775955343384124D+04 + --> objf_test(bi,bj) = 0.644362740508060D+04 + --> objf_test(bi,bj) = 0.120863611988905D+05 + --> objf_test(bi,bj) = 0.130222699671583D+05 + --> objf_test(bi,bj) = 0.134004426148780D+05 + --> objf_test(bi,bj) = 0.704978774656746D+04 + --> objf_test(bi,bj) = 0.654503559163673D+04 + --> objf_test(bi,bj) = 0.974891250674241D+04 + --> objf_test(bi,bj) = 0.844295032676404D+04 +(PID.TID 0000.0001) local fc = 0.110812395422706D+06 +(PID.TID 0000.0001) global fc = 0.110812395422706D+06 (PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663075174E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030026929E+03 2.12349477833349E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663075175E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030031539E+03 2.12349477998385E+01 (PID.TID 0000.0001) whio : write lev 2 rec 2 - cg2d: Sum(rhs),rhsMax = 2.21767071782830E+03 2.12683664268458E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018642292E+03 2.13212129421373E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071789821E+03 2.12683663977863E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018651565E+03 2.13212129126656E+01 (PID.TID 0000.0001) whio : write lev 2 rec 3 - cg2d: Sum(rhs),rhsMax = 2.21702331271964E+03 2.13712751472001E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331283438E+03 2.13712751127756E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.21702331271964E+03 2.13712751472001E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331283438E+03 2.13712751127756E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.21702331271964E+03 2.13712751472001E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -3564,158 +3997,56 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3859662733396E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8534751018277E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0974419569015E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3096794839462E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4646816833243E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3859662770832E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8534751022303E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0974419568908E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3096794842208E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4646816940584E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -6.50521303491303E-19 1.98004209870499E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.33680868994202E-19 1.98004208712812E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.5807061391108E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.3698713765987E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.5223772541406E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5465750360246E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1241948701650E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 5.0750354470166E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -4.0863428772140E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.5182873065195E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1234044199613E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1125806125957E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.6728913908534E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5859549616871E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8782336681594E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1005430312108E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.7581756597924E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.8088349286939E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6317724064214E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0540298721111E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9561612897014E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0058124187801E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.5807061638359E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.3698713474652E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.5223772616962E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.5465750485110E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.1241948732552E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 5.0750354459467E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -4.0863428748868E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.5182872559963E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.1234044327124E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1125806196305E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.6728913978519E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5859549614356E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8782336665595E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1005430308323E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.7581756614872E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.8088349442077E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.6317724109317E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.0540298728978E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.9561612903742E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.0058124271254E-01 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 2.2397292500399E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.8535461175769E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 5.5388391459132E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.3352600154950E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 7.1687388326292E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 2.9666071690889E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -7.3698713765987E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.9498369142617E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 6.4063473297251E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 1.8625757573141E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 5.0750354470166E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -4.0863428772140E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 2.7486563766101E-04 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 5.4276119109517E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.5748667086217E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72004 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0255883477220E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.8677995061535E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3467966498036E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.4113100218026E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.5093256704502E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3635026921689E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.0119507715319E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1662436923180E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4670545914928E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 5.8944335470594E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.6317724064214E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -9.8088349286939E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.0523915933482E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.9598524922382E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 4.0217112862673E+02 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.1512819342157E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.2324805590571E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.5049141345654E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0024051758846E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.6042307458457E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5859549616871E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -6.6728913908534E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8783707038916E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.1005987289373E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.7586399528785E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.6317724064214E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -9.8088349286939E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.0523915933482E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.9598524922382E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 4.0217112862673E+02 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21767071782830E+03 2.12683664268458E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018592963E+03 2.13212016398845E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018592963E+03 2.13212016398845E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071789821E+03 2.12683663977863E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018651565E+03 2.13212129126656E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3726,172 +4057,70 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4126935220266E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2467985458533E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.6140927960599E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2016265340911E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1099572376141E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1644569884642E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7207329447650E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.8445558429859E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1104022606143E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.3157146487940E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.3124179142896E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.7072212003350E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.2705511811505E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.3665819184049E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.3189516418204E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8695611241762E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0419605537655E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0987861041665E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3065289209866E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0225654330499E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 5.8175426728311E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.7884912663694E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -5.4397261265790E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.3175134603258E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 9.6335104005705E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4126935147120E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.2467985443103E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.6140927201472E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2016265373381E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1099572399971E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1644569883758E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7207329447695E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.8445558034669E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1104022619533E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.3157146614427E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.3124177524356E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.7072211173450E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.2705507798925E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.3665818755867E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.3189515586640E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8695611307531E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0419596897383E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0987861042142E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3065289199317E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0225651339901E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 5.8175403294578E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.7884889243527E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -5.4397244390587E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.3175129730886E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 9.6335086884143E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 1.62630325872826E-19 3.31412627964095E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.62630325872826E-19 3.31412628681855E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 7.7159459873404E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.4708858785625E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 5.0040801024511E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2412048951948E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 3.7584973764498E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.8820249284605E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -7.6743442476298E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.0501730975254E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0643745471018E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.3532657087828E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.5038794067323E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5292102251107E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8786786286224E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0835804261739E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8580337674102E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 1.7216123286615E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8069255178496E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2244117419368E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 7.9070267320520E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.3548076514294E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 7.7159456889335E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.4708858779670E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 5.0040800755385E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2412048955407E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 3.7584973711247E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.8820249264052E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -7.6743442459831E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.0501729735762E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0643745493569E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.3532657102910E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 6.5038794146790E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.5292102246893E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8786786229489E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0835804269474E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.8580337308616E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 1.7216123820683E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8069260840770E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2244117122676E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 7.9070269058460E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.3548075566956E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 2.2061664911956E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.8370046981345E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 5.6574637864174E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.2939498212665E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 7.7185850852879E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 5.7554555457935E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -1.4708858785625E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 3.6069271630454E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.2566005159570E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 3.6160236460376E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 9.8820249284605E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -7.6743442476298E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -4.1163391635153E-05 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.0617193723688E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.0276248703385E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72003 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0139116615392E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.6564515005534E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3983305737401E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.3852854481989E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.6665113702143E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.3363383582982E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -2.9607023968758E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1853117902746E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4059493019355E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 6.3939579506607E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.8069255178496E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -1.7216123286615E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.2353381785958E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 8.0148517385252E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 3.3786760475718E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.0982823502534E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.0746233658880E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.5054890584055E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.8699292245680E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.6908525338373E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.5292102251107E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -6.5038794067323E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8812788760752E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0837130592552E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.8584256626755E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.8069255178496E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -1.7216123286615E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.2353381785958E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 8.0148517385252E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.3786760475718E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.21767071782830E+03 2.12683664268458E+01 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72003 @@ -3901,174 +4130,72 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.7076798929248E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.4185087359866E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 5.7338278244539E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3852980272084E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1550118753944E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.1841232646837E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.1192248161452E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -7.2826434801707E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.1882804672100E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7999290469176E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5137379805638E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.4355906905482E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.5353766478436E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.5955513862074E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1618952884029E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8537172016321E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.1806837117219E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0992106875979E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3055898755845E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.5447984730141E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.0106857163588E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.8017896132692E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.4168234749005E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.7933606688822E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.6387166642268E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.7076798800525E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.4185087306755E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 5.7338276693451E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3852980325406E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1550118770870E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.1841232643924E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.1192248163550E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -7.2826434009091E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.1882804688931E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7999290454533E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5137377271738E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.4355905599564E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.5353765982522E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.5955513209368E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1618952735217E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8537172086286E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.1806837319410E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0992106877281E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3055898756829E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.5447985506049E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.0106861873975E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.8017900825488E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.4168231025059E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.7933606543648E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.6387166741121E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 9.48676900924816E-20 3.89886957138863E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.89735380184963E-19 3.89886944043145E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 8.8391351856283E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.1098729796203E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 6.1591998365776E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.8166946695367E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.3636240611331E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.4317915275717E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0851418930950E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.2140664667573E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.5385731158263E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.6749446810612E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 7.5335909754985E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3117293194278E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8580207702730E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0835237319650E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1293419415341E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 3.4341302122164E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.9424670510678E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.4399678957116E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.3496568177249E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 6.2981178456190E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 8.8391350898417E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.1098729721955E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 6.1591998176042E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.8166946640121E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.3636240189676E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.4317915272351E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0851418931926E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.2140661827465E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.5385731151354E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.6749446594882E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 7.5335910398196E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.3117334881219E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.8580207717233E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0835237338718E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1293419637992E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 3.4341303904740E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.9424686600397E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.4399679354258E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.3496567549974E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 6.2981176470252E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 3.7160458963204E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.9613757622019E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 5.7042690646127E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.3669253209475E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 9.5252159141923E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 8.2398345846397E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -2.1098729796203E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 4.9340245956333E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.8514851152062E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 5.2808527515453E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4317915275717E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.0851418930950E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -8.1633134160565E-04 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.5676781980689E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 4.4346783845011E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72002 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.0417951801135E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -8.4204502364289E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.4210436504059E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.3880150515903E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.0680529223366E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.5845353548629E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -2.9186772902939E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1975089216093E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4241138683667E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 7.6193377683500E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 2.9424670510678E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -3.4341302122164E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.4655671219097E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.3694626716562E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 6.3382555156462E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4820766979842E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.6663814780778E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4878592154474E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.8620070439943E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9235588956126E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.3117293194278E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -7.5335909754985E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8646185564503E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0838678590310E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.1298812695663E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 2.9424670510678E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -3.4341302122164E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.4655671219097E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.3694626716562E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 6.3382555156462E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663075174E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030089285E+03 2.12349821046663E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030089285E+03 2.12349821046663E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663075175E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030031539E+03 2.12349477998385E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4079,173 +4206,70 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8723841467504E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -8.9238841766774E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0698358784656E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.5244746165034E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1366857422006E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 6.0370992334647E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.3001237945598E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.8781835155040E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2264972800559E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6209288066122E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1611482510793E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2602562598387E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1279496586280E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1767150997432E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5814678854273E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.0807018789402E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.5905572449453E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0995243599981E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3038131548910E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.6831311476117E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0924450579653E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0603876243587E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.8441493893229E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.9270022406411E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.0032379122947E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8723841301974E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -8.9238841441665E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0698358532708E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.5244746207952E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1366857327630E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 6.0370992328157E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.3001237942594E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.8781834009184E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2264972787072E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6209287961037E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1611482173273E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2602560889267E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.1279496015592E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1767150874397E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5814678647876E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.0807020282671E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.5905572638244E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0995243601529E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3038131534900E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.6831309203036E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0924451269470E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0603876928379E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.8441488225542E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.9270019737275E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.0032378050990E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -5.42101086242752E-20 3.61936108260605E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.18584612615602E-20 3.61936097363901E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.2388339002260E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.7384697989604E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.0143489714008E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.3745891097337E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.9050621794305E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8339954457116E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.3597138099679E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.8840662057140E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.0082950745653E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.9819096320161E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.2353302385726E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.4999633059142E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7934218146605E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0767940088796E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1951376809371E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2453466739202E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.9902203468215E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.4790916590723E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.6691905446612E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.7039241000253E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.2388339535336E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -2.7384697904425E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.0143490179816E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.3745890861324E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.9050620078574E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8339954452001E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.3597138104858E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.8840656325745E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.0082950590536E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.9819094976356E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.2353303043094E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -6.4999585795179E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7934218588507E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0767939997315E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1951375844391E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2453469388216E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.9902174056596E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.4790918354360E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.6691903813317E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.7039232773217E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 3.4152122013946E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -4.8574178669113E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 5.5438970632814E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.3899308213095E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.0060744762907E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.2388339002260E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -2.7384697989604E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.9459947557366E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.4255905525607E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.8567112102034E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.8339954457116E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.3597138099679E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -2.1081200223639E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.0577648120348E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 5.7778032205073E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72001 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.1370374551694E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.0084118874260E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3686927745568E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.3814917400830E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.1821192305644E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.3785390273699E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -2.8658108855942E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1901456760352E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4239885579500E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.1136769632027E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.9902203468215E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.2453466739202E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.5153798948558E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.6988694406032E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 7.7674620227371E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.9949437979048E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -8.1721156172489E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.4308690531644E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.7968600482008E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9787596684516E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.4999633059142E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -9.2353302385726E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.8036502386010E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0772745262065E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.1956948340431E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 3.9902203468215E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -4.2453466739202E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.5153798948558E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.6988694406032E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 7.7674620227371E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663075174E+03 2.11233744886476E+01 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 72001 @@ -4255,170 +4279,69 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.8892242046917E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1548714615808E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5008039544596E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.5986182469286E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0511298663000E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.7024385174035E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.4305289708977E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.6371143174329E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2172761386921E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3887489674154E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4572904922020E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.9786115838632E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7288116118699E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4819995901189E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9867209395753E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.9524055449524E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.6546759144914E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0996735681789E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3026760408513E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.8835310401707E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3236983030201E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3104895883482E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.4711632190692E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0477332255726E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3348453955048E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.8892241861409E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1548714578974E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.5008039085546E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.5986182429913E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0511298120202E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.7024385162125E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.4305289687757E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.6371140114791E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2172761263734E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3887489153334E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4572904442812E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.9786112286062E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7288113830377E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4819995558377E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9867208142867E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.9524056998793E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.6546759283265E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0996735684049E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3026760377355E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.8835305219882E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3236982132674E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3104895012561E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.4711625264775E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0477331903715E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3348452373939E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 1.69406589450860E-20 3.20262759126495E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 3.38813178901720E-21 3.20262750814907E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 (PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.6361429068608E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.3209187561864E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 5.7669414240059E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.9086530121409E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 8.2951098096516E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1905836813842E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.5887560677288E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -3.8947233976514E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.4691823444751E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 7.1050513734205E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.7751844789717E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.5561895679320E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7486197348231E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0699133872073E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.2835973175962E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.3014266785104E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.7051723537250E+03 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.5637096865694E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9280969814032E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 8.8700255789147E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.6361429869215E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.3209187469714E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 5.7669421494515E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.9086529431560E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 8.2951092237017E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1905836806022E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.5887560688085E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -3.8947244946892E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.4691822960699E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 7.1050511003154E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.7751845300908E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.5561850385572E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -4.7486197815273E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0699133681530E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.2835970852333E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 5.3014263175450E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.7051694672563E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.5637098754284E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.9280967589929E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 8.8700244384235E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 4.0321144627391E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -5.1561426504447E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 5.4961968711043E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.4130524534698E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.0720278406382E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.6361429068608E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.3209187561864E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 6.6949167139899E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.9774424579689E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 8.3515337616210E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.1905836813842E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.5887560677288E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -4.0135029438117E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.5302010129290E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 7.0367450973053E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72000 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 6.2208000000000E+09 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.3181609334962E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.2016974959911E-01 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = 5.3394285531468E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 1.3760773621887E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.3178039978964E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.9314465505836E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.6625960610225E+02 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = 1.1880602013671E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.4259139044077E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.5983217445751E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 4.7051723537250E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.3014266785104E+06 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.6072673368234E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.9660953183111E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 8.9539960316270E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.6808813231278E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -8.6484385822596E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = 4.3920772673470E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 9.7307469229439E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.0537000315560E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 7.5561895679320E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -9.7751844789717E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = 4.7636946708106E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.0706117576178E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2840594461771E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.7051723537250E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -5.3014266785104E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.6072673368234E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9660953183111E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 8.9539960316270E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4446,63 +4369,57 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0875644745070E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3966050891901E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8285235371874E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.5996231137403E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9010349891802E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.1609847839148E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.4104264784230E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.7888873156734E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1574378524549E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1006597605904E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.7382787829169E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.6570232457649E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.3189202691924E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7815679055490E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.3657577169906E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5317265561707E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.1892048362728E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0998149843832E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3032760436467E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0150908274654E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7049864034202E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6799579202469E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.2979220256942E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3600527346701E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.7063129115724E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.0875644665994E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3966050246133E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8285234141322E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.5996231059507E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9010346914553E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.1609862365457E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.4104267135664E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.7888879235921E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.1574378195239E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1006595529208E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.7382787485945E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.6570231797584E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.3189203958296E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7815679053302E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.3657576564525E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.5317263345619E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.1892046275232E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0998149846439E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.3032760349100E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0150906659854E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7049862899447E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.6799578112587E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.2979212324626E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3600526536867E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.7063125360229E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000072000 + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10812395377519E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 1.10812395422706E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -4533,29 +4450,29 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663088284E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030053050E+03 2.12349477922998E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071821872E+03 2.12683664357739E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018694174E+03 2.13212129440082E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331336611E+03 2.13712751446808E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663088284E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030057660E+03 2.12349478088097E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071828863E+03 2.12683664067088E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018703447E+03 2.13212129145368E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331348085E+03 2.13712751102560E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971679795884398D+04 - --> objf_test(bi,bj) = 0.743425873390198D+04 - --> objf_test(bi,bj) = 0.916243736010118D+04 - --> objf_test(bi,bj) = 0.775955343464013D+04 - --> objf_test(bi,bj) = 0.644362738789816D+04 - --> objf_test(bi,bj) = 0.120863611846053D+05 - --> objf_test(bi,bj) = 0.130222699546044D+05 - --> objf_test(bi,bj) = 0.134004426154377D+05 - --> objf_test(bi,bj) = 0.704978775096208D+04 - --> objf_test(bi,bj) = 0.654503728335603D+04 - --> objf_test(bi,bj) = 0.974891251008625D+04 - --> objf_test(bi,bj) = 0.844295262525526D+04 -(PID.TID 0000.0001) local fc = 0.110812438799692D+06 -(PID.TID 0000.0001) global fc = 0.110812438799692D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812438799692E+05 + --> objf_test(bi,bj) = 0.971679795517841D+04 + --> objf_test(bi,bj) = 0.743425874718474D+04 + --> objf_test(bi,bj) = 0.916243735967207D+04 + --> objf_test(bi,bj) = 0.775955343390134D+04 + --> objf_test(bi,bj) = 0.644362740508324D+04 + --> objf_test(bi,bj) = 0.120863611987824D+05 + --> objf_test(bi,bj) = 0.130222699671363D+05 + --> objf_test(bi,bj) = 0.134004426148936D+05 + --> objf_test(bi,bj) = 0.704978774658919D+04 + --> objf_test(bi,bj) = 0.654503728767649D+04 + --> objf_test(bi,bj) = 0.974891250681204D+04 + --> objf_test(bi,bj) = 0.844295262196921D+04 +(PID.TID 0000.0001) local fc = 0.110812438844879D+06 +(PID.TID 0000.0001) global fc = 0.110812438844879D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812438844879E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4578,35 +4495,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663062073E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030000825E+03 2.12349477743764E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071743811E+03 2.12683664179213E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018590443E+03 2.13212129402726E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331207359E+03 2.13712751497127E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663062073E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030005434E+03 2.12349477908779E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071750802E+03 2.12683663888561E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018599716E+03 2.13212129107965E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331218834E+03 2.13712751152980E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971671921100975D+04 - --> objf_test(bi,bj) = 0.743425873395778D+04 - --> objf_test(bi,bj) = 0.916243736002287D+04 - --> objf_test(bi,bj) = 0.775955343451997D+04 - --> objf_test(bi,bj) = 0.644362738789299D+04 - --> objf_test(bi,bj) = 0.120863611848212D+05 - --> objf_test(bi,bj) = 0.130222699546484D+05 - --> objf_test(bi,bj) = 0.134004426154065D+05 - --> objf_test(bi,bj) = 0.704978775091858D+04 - --> objf_test(bi,bj) = 0.654503389342140D+04 - --> objf_test(bi,bj) = 0.974891250994698D+04 - --> objf_test(bi,bj) = 0.844294803684020D+04 -(PID.TID 0000.0001) local fc = 0.110812352073407D+06 -(PID.TID 0000.0001) global fc = 0.110812352073407D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812352073407E+05 + --> objf_test(bi,bj) = 0.971671920734443D+04 + --> objf_test(bi,bj) = 0.743425874724054D+04 + --> objf_test(bi,bj) = 0.916243735959374D+04 + --> objf_test(bi,bj) = 0.775955343378115D+04 + --> objf_test(bi,bj) = 0.644362740507800D+04 + --> objf_test(bi,bj) = 0.120863611989986D+05 + --> objf_test(bi,bj) = 0.130222699671802D+05 + --> objf_test(bi,bj) = 0.134004426148623D+05 + --> objf_test(bi,bj) = 0.704978774654578D+04 + --> objf_test(bi,bj) = 0.654503389774197D+04 + --> objf_test(bi,bj) = 0.974891250667279D+04 + --> objf_test(bi,bj) = 0.844294803355420D+04 +(PID.TID 0000.0001) local fc = 0.110812352118594D+06 +(PID.TID 0000.0001) global fc = 0.110812352118594D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812352118594E+05 grad-res ------------------------------- - grad-res 0 1 1 1 1 1 1 1 1.10812395378E+05 1.10812438800E+05 1.10812352073E+05 - grad-res 0 1 1 1 0 1 1 1 4.33605077756E+00 4.33631428386E+00 -6.07710380183E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395377519E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.33605077755769E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.33631428386434E+00 + grad-res 0 1 1 1 1 1 1 1 1.10812395423E+05 1.10812438845E+05 1.10812352119E+05 + grad-res 0 1 1 1 0 1 1 1 4.33605076549E+00 4.33631426204E+00 -6.07687871321E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395422706E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.33605076549050E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.33631426203647E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 55522 2 @@ -4635,29 +4552,29 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663096901E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030070242E+03 2.12349477986420E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071847589E+03 2.12683664419129E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018728359E+03 2.13212129451627E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331379208E+03 2.13712751429987E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663096901E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030074852E+03 2.12349478151486E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071854580E+03 2.12683664128439E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018737632E+03 2.13212129156829E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331390683E+03 2.13712751085780E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971679858864009D+04 - --> objf_test(bi,bj) = 0.743425873388100D+04 - --> objf_test(bi,bj) = 0.916243736012927D+04 - --> objf_test(bi,bj) = 0.775955343468332D+04 - --> objf_test(bi,bj) = 0.644362738790010D+04 - --> objf_test(bi,bj) = 0.120863611845270D+05 - --> objf_test(bi,bj) = 0.130222699545887D+05 - --> objf_test(bi,bj) = 0.134004426154485D+05 - --> objf_test(bi,bj) = 0.704978775097751D+04 - --> objf_test(bi,bj) = 0.654503571539414D+04 - --> objf_test(bi,bj) = 0.974891251013528D+04 - --> objf_test(bi,bj) = 0.844295150796357D+04 -(PID.TID 0000.0001) local fc = 0.110812436744269D+06 -(PID.TID 0000.0001) global fc = 0.110812436744269D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812436744269E+05 + --> objf_test(bi,bj) = 0.971679858497447D+04 + --> objf_test(bi,bj) = 0.743425874716377D+04 + --> objf_test(bi,bj) = 0.916243735970018D+04 + --> objf_test(bi,bj) = 0.775955343394455D+04 + --> objf_test(bi,bj) = 0.644362740508513D+04 + --> objf_test(bi,bj) = 0.120863611987043D+05 + --> objf_test(bi,bj) = 0.130222699671205D+05 + --> objf_test(bi,bj) = 0.134004426149044D+05 + --> objf_test(bi,bj) = 0.704978774660464D+04 + --> objf_test(bi,bj) = 0.654503571971468D+04 + --> objf_test(bi,bj) = 0.974891250686100D+04 + --> objf_test(bi,bj) = 0.844295150467742D+04 +(PID.TID 0000.0001) local fc = 0.110812436789455D+06 +(PID.TID 0000.0001) global fc = 0.110812436789455D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812436789455E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4680,35 +4597,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663053455E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801029983632E+03 2.12349477680403E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071718094E+03 2.12683664117889E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018556258E+03 2.13212129391190E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331164763E+03 2.13712751513943E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663053455E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801029988241E+03 2.12349477845403E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071725085E+03 2.12683663827253E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018565531E+03 2.13212129096501E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331176237E+03 2.13712751169762E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971671860499533D+04 - --> objf_test(bi,bj) = 0.743425873397874D+04 - --> objf_test(bi,bj) = 0.916243735999479D+04 - --> objf_test(bi,bj) = 0.775955343447678D+04 - --> objf_test(bi,bj) = 0.644362738789111D+04 - --> objf_test(bi,bj) = 0.120863611848995D+05 - --> objf_test(bi,bj) = 0.130222699546641D+05 - --> objf_test(bi,bj) = 0.134004426153957D+05 - --> objf_test(bi,bj) = 0.704978775090314D+04 - --> objf_test(bi,bj) = 0.654503545928091D+04 - --> objf_test(bi,bj) = 0.974891250989806D+04 - --> objf_test(bi,bj) = 0.844294915356974D+04 -(PID.TID 0000.0001) local fc = 0.110812354149948D+06 -(PID.TID 0000.0001) global fc = 0.110812354149948D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812354149948E+05 + --> objf_test(bi,bj) = 0.971671860132980D+04 + --> objf_test(bi,bj) = 0.743425874726152D+04 + --> objf_test(bi,bj) = 0.916243735956566D+04 + --> objf_test(bi,bj) = 0.775955343373795D+04 + --> objf_test(bi,bj) = 0.644362740507614D+04 + --> objf_test(bi,bj) = 0.120863611990767D+05 + --> objf_test(bi,bj) = 0.130222699671960D+05 + --> objf_test(bi,bj) = 0.134004426148516D+05 + --> objf_test(bi,bj) = 0.704978774653030D+04 + --> objf_test(bi,bj) = 0.654503546360137D+04 + --> objf_test(bi,bj) = 0.974891250662382D+04 + --> objf_test(bi,bj) = 0.844294915028372D+04 +(PID.TID 0000.0001) local fc = 0.110812354195135D+06 +(PID.TID 0000.0001) global fc = 0.110812354195135D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812354195135E+05 grad-res ------------------------------- - grad-res 0 2 2 1 1 1 1 1 1.10812395378E+05 1.10812436744E+05 1.10812354150E+05 - grad-res 0 2 2 2 0 1 1 1 4.12971408565E+00 4.12971603510E+00 -4.72053925726E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395377519E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.12971408564730E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.12971603509504E+00 + grad-res 0 2 2 1 1 1 1 1 1.10812395423E+05 1.10812436789E+05 1.10812354195E+05 + grad-res 0 2 2 2 0 1 1 1 4.12971407872E+00 4.12971602709E+00 -4.71792968249E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395422706E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.12971407872143E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.12971602709149E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 55522 3 @@ -4737,29 +4654,29 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663106284E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030088805E+03 2.12349478041640E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071875137E+03 2.12683664465956E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018764701E+03 2.13212129458769E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331424151E+03 2.13712751416720E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663106284E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030093415E+03 2.12349478206649E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071882128E+03 2.12683664175254E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018773974E+03 2.13212129163996E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331435625E+03 2.13712751072587E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971679199575551D+04 - --> objf_test(bi,bj) = 0.743425873386345D+04 - --> objf_test(bi,bj) = 0.916243736015287D+04 - --> objf_test(bi,bj) = 0.775955343471959D+04 - --> objf_test(bi,bj) = 0.644362738790174D+04 - --> objf_test(bi,bj) = 0.120863611844625D+05 - --> objf_test(bi,bj) = 0.130222699545757D+05 - --> objf_test(bi,bj) = 0.134004426154571D+05 - --> objf_test(bi,bj) = 0.704978775099009D+04 - --> objf_test(bi,bj) = 0.654503559272649D+04 - --> objf_test(bi,bj) = 0.974891251017503D+04 - --> objf_test(bi,bj) = 0.844295063729884D+04 -(PID.TID 0000.0001) local fc = 0.110812429158079D+06 -(PID.TID 0000.0001) global fc = 0.110812429158079D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812429158079E+05 + --> objf_test(bi,bj) = 0.971679199208987D+04 + --> objf_test(bi,bj) = 0.743425874714626D+04 + --> objf_test(bi,bj) = 0.916243735972376D+04 + --> objf_test(bi,bj) = 0.775955343398083D+04 + --> objf_test(bi,bj) = 0.644362740508668D+04 + --> objf_test(bi,bj) = 0.120863611986399D+05 + --> objf_test(bi,bj) = 0.130222699671076D+05 + --> objf_test(bi,bj) = 0.134004426149130D+05 + --> objf_test(bi,bj) = 0.704978774661725D+04 + --> objf_test(bi,bj) = 0.654503559704707D+04 + --> objf_test(bi,bj) = 0.974891250690088D+04 + --> objf_test(bi,bj) = 0.844295063401271D+04 +(PID.TID 0000.0001) local fc = 0.110812429203266D+06 +(PID.TID 0000.0001) global fc = 0.110812429203266D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812429203266E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4782,35 +4699,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663044073E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801029965069E+03 2.12349477625209E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071690546E+03 2.12683664070993E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018519916E+03 2.13212129384091E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331119821E+03 2.13712751527185E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663044073E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801029969678E+03 2.12349477790294E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071697537E+03 2.12683663780360E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018529189E+03 2.13212129089337E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331131296E+03 2.13712751182981E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971672519807407D+04 - --> objf_test(bi,bj) = 0.743425873399625D+04 - --> objf_test(bi,bj) = 0.916243735997120D+04 - --> objf_test(bi,bj) = 0.775955343444051D+04 - --> objf_test(bi,bj) = 0.644362738788955D+04 - --> objf_test(bi,bj) = 0.120863611849639D+05 - --> objf_test(bi,bj) = 0.130222699546772D+05 - --> objf_test(bi,bj) = 0.134004426153872D+05 - --> objf_test(bi,bj) = 0.704978775089061D+04 - --> objf_test(bi,bj) = 0.654503558190729D+04 - --> objf_test(bi,bj) = 0.974891250985822D+04 - --> objf_test(bi,bj) = 0.844295002365743D+04 -(PID.TID 0000.0001) local fc = 0.110812361735713D+06 -(PID.TID 0000.0001) global fc = 0.110812361735713D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812361735713E+05 + --> objf_test(bi,bj) = 0.971672519440846D+04 + --> objf_test(bi,bj) = 0.743425874727903D+04 + --> objf_test(bi,bj) = 0.916243735954210D+04 + --> objf_test(bi,bj) = 0.775955343370172D+04 + --> objf_test(bi,bj) = 0.644362740507449D+04 + --> objf_test(bi,bj) = 0.120863611991412D+05 + --> objf_test(bi,bj) = 0.130222699672089D+05 + --> objf_test(bi,bj) = 0.134004426148430D+05 + --> objf_test(bi,bj) = 0.704978774651775D+04 + --> objf_test(bi,bj) = 0.654503558622784D+04 + --> objf_test(bi,bj) = 0.974891250658396D+04 + --> objf_test(bi,bj) = 0.844295002037135D+04 +(PID.TID 0000.0001) local fc = 0.110812361780900D+06 +(PID.TID 0000.0001) global fc = 0.110812361780900D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812361780900E+05 grad-res ------------------------------- - grad-res 0 3 3 1 1 1 1 1 1.10812395378E+05 1.10812429158E+05 1.10812361736E+05 - grad-res 0 3 3 3 0 1 1 1 3.37112082097E+00 3.37111827903E+00 7.54034147232E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395377519E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.37112082096866E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.37111827902845E+00 + grad-res 0 3 3 1 1 1 1 1 1.10812395423E+05 1.10812429203E+05 1.10812361781E+05 + grad-res 0 3 3 3 0 1 1 1 3.37112081992E+00 3.37111830449E+00 7.46169013355E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395422706E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.37112081992020E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.37111830449430E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 55522 4 @@ -4839,29 +4756,29 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663117476E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801030110989E+03 2.12349478091113E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071908115E+03 2.12683664504925E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018808276E+03 2.13212129463528E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331478127E+03 2.13712751407608E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663117476E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801030115599E+03 2.12349478256157E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071915106E+03 2.12683664214220E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018817549E+03 2.13212129168847E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331489602E+03 2.13712751063426E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971678874554017D+04 - --> objf_test(bi,bj) = 0.743425873384930D+04 - --> objf_test(bi,bj) = 0.916243736017454D+04 - --> objf_test(bi,bj) = 0.775955343475234D+04 - --> objf_test(bi,bj) = 0.644362738790295D+04 - --> objf_test(bi,bj) = 0.120863611844097D+05 - --> objf_test(bi,bj) = 0.130222699545640D+05 - --> objf_test(bi,bj) = 0.134004426154646D+05 - --> objf_test(bi,bj) = 0.704978775100075D+04 - --> objf_test(bi,bj) = 0.654503558723216D+04 - --> objf_test(bi,bj) = 0.974891251021036D+04 - --> objf_test(bi,bj) = 0.844295019775939D+04 -(PID.TID 0000.0001) local fc = 0.110812425462860D+06 -(PID.TID 0000.0001) global fc = 0.110812425462860D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812425462860E+05 + --> objf_test(bi,bj) = 0.971678874187461D+04 + --> objf_test(bi,bj) = 0.743425874713211D+04 + --> objf_test(bi,bj) = 0.916243735974542D+04 + --> objf_test(bi,bj) = 0.775955343401353D+04 + --> objf_test(bi,bj) = 0.644362740508796D+04 + --> objf_test(bi,bj) = 0.120863611985868D+05 + --> objf_test(bi,bj) = 0.130222699670959D+05 + --> objf_test(bi,bj) = 0.134004426149204D+05 + --> objf_test(bi,bj) = 0.704978774662791D+04 + --> objf_test(bi,bj) = 0.654503559155273D+04 + --> objf_test(bi,bj) = 0.974891250693617D+04 + --> objf_test(bi,bj) = 0.844295019447331D+04 +(PID.TID 0000.0001) local fc = 0.110812425508047D+06 +(PID.TID 0000.0001) global fc = 0.110812425508047D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.10812425508047E+05 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -4884,35 +4801,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 2.21834663032882E+03 2.11233744886476E+01 - cg2d: Sum(rhs),rhsMax = 2.21801029942887E+03 2.12349477575692E+01 - cg2d: Sum(rhs),rhsMax = 2.21767071657571E+03 2.12683664032105E+01 - cg2d: Sum(rhs),rhsMax = 2.21735018476344E+03 2.13212129379235E+01 - cg2d: Sum(rhs),rhsMax = 2.21702331065847E+03 2.13712751536319E+01 + cg2d: Sum(rhs),rhsMax = 2.21834663032882E+03 2.11233745008728E+01 + cg2d: Sum(rhs),rhsMax = 2.21801029947497E+03 2.12349477740743E+01 + cg2d: Sum(rhs),rhsMax = 2.21767071664562E+03 2.12683663741420E+01 + cg2d: Sum(rhs),rhsMax = 2.21735018485617E+03 2.13212129084494E+01 + cg2d: Sum(rhs),rhsMax = 2.21702331077321E+03 2.13712751192197E+01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> f_thsice = 0.000000000000000D+00 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.971672844579643D+04 - --> objf_test(bi,bj) = 0.743425873401036D+04 - --> objf_test(bi,bj) = 0.916243735994950D+04 - --> objf_test(bi,bj) = 0.775955343440781D+04 - --> objf_test(bi,bj) = 0.644362738788825D+04 - --> objf_test(bi,bj) = 0.120863611850168D+05 - --> objf_test(bi,bj) = 0.130222699546888D+05 - --> objf_test(bi,bj) = 0.134004426153795D+05 - --> objf_test(bi,bj) = 0.704978775087993D+04 - --> objf_test(bi,bj) = 0.654503558740013D+04 - --> objf_test(bi,bj) = 0.974891250982294D+04 - --> objf_test(bi,bj) = 0.844295046295098D+04 -(PID.TID 0000.0001) local fc = 0.110812365428191D+06 -(PID.TID 0000.0001) global fc = 0.110812365428191D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812365428191E+05 + --> objf_test(bi,bj) = 0.971672844213087D+04 + --> objf_test(bi,bj) = 0.743425874729320D+04 + --> objf_test(bi,bj) = 0.916243735952041D+04 + --> objf_test(bi,bj) = 0.775955343366898D+04 + --> objf_test(bi,bj) = 0.644362740507326D+04 + --> objf_test(bi,bj) = 0.120863611991941D+05 + --> objf_test(bi,bj) = 0.130222699672206D+05 + --> objf_test(bi,bj) = 0.134004426148355D+05 + --> objf_test(bi,bj) = 0.704978774650706D+04 + --> objf_test(bi,bj) = 0.654503559172060D+04 + --> objf_test(bi,bj) = 0.974891250654869D+04 + --> objf_test(bi,bj) = 0.844295045966488D+04 +(PID.TID 0000.0001) local fc = 0.110812365473378D+06 +(PID.TID 0000.0001) global fc = 0.110812365473378D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.10812365473378E+05 grad-res ------------------------------- - grad-res 0 4 4 1 1 1 1 1 1.10812395378E+05 1.10812425463E+05 1.10812365428E+05 - grad-res 0 4 4 4 0 1 1 1 3.00171370808E+00 3.00173344003E+00 -6.57356121136E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395377519E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.00171370808390E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.00173344003269E+00 + grad-res 0 4 4 1 1 1 1 1 1.10812395423E+05 1.10812425508E+05 1.10812365473E+05 + grad-res 0 4 4 4 0 1 1 1 3.00171370848E+00 3.00173343567E+00 -6.57197343723E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 1.10812395422706E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.00171370848436E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.00173343566712E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -4926,205 +4843,217 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 1.1081239537752E+05 1.1081243879969E+05 1.1081235207341E+05 -(PID.TID 0000.0001) grdchk output (g): 1 4.3363142838643E+00 4.3360507775577E+00 -6.0771038018270E-05 +(PID.TID 0000.0001) grdchk output (c): 1 1.1081239542271E+05 1.1081243884488E+05 1.1081235211859E+05 +(PID.TID 0000.0001) grdchk output (g): 1 4.3363142620365E+00 4.3360507654905E+00 -6.0768787132126E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 1.1081239537752E+05 1.1081243674427E+05 1.1081235414995E+05 -(PID.TID 0000.0001) grdchk output (g): 2 4.1297160350950E+00 4.1297140856473E+00 -4.7205392572636E-07 +(PID.TID 0000.0001) grdchk output (c): 2 1.1081239542271E+05 1.1081243678946E+05 1.1081235419513E+05 +(PID.TID 0000.0001) grdchk output (g): 2 4.1297160270915E+00 4.1297140787214E+00 -4.7179296824851E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 1.1081239537752E+05 1.1081242915808E+05 1.1081236173571E+05 -(PID.TID 0000.0001) grdchk output (g): 3 3.3711182790285E+00 3.3711208209687E+00 7.5403414723230E-07 +(PID.TID 0000.0001) grdchk output (c): 3 1.1081239542271E+05 1.1081242920327E+05 1.1081236178090E+05 +(PID.TID 0000.0001) grdchk output (g): 3 3.3711183044943E+00 3.3711208199202E+00 7.4616901335478E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 1.1081239537752E+05 1.1081242546286E+05 1.1081236542819E+05 -(PID.TID 0000.0001) grdchk output (g): 4 3.0017334400327E+00 3.0017137080839E+00 -6.5735612113649E-06 +(PID.TID 0000.0001) grdchk output (c): 4 1.1081239542271E+05 1.1081242550805E+05 1.1081236547338E+05 +(PID.TID 0000.0001) grdchk output (g): 4 3.0017334356671E+00 3.0017137084844E+00 -6.5719734372305E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.0566003055771E-05 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.0564749635694E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 101.56500106956810 -(PID.TID 0000.0001) System time: 2.5075910091400146 -(PID.TID 0000.0001) Wall clock time: 104.97124409675598 +(PID.TID 0000.0001) User time: 104.21002673730254 +(PID.TID 0000.0001) System time: 3.2030540816485882 +(PID.TID 0000.0001) Wall clock time: 108.82507705688477 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.30727898795157671 -(PID.TID 0000.0001) System time: 0.19734500348567963 -(PID.TID 0000.0001) Wall clock time: 0.83085894584655762 +(PID.TID 0000.0001) User time: 0.51452600630000234 +(PID.TID 0000.0001) System time: 0.37643898744136095 +(PID.TID 0000.0001) Wall clock time: 1.4941639900207520 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 50.704968482255936 -(PID.TID 0000.0001) System time: 2.1977119743824005 -(PID.TID 0000.0001) Wall clock time: 53.429244041442871 +(PID.TID 0000.0001) User time: 50.321601510047913 +(PID.TID 0000.0001) System time: 2.1476140320301056 +(PID.TID 0000.0001) Wall clock time: 53.126610040664673 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 60.849589705467224 -(PID.TID 0000.0001) System time: 0.30185183882713318 -(PID.TID 0000.0001) Wall clock time: 61.435403585433960 +(PID.TID 0000.0001) User time: 64.962022662162781 +(PID.TID 0000.0001) System time: 0.57103687524795532 +(PID.TID 0000.0001) Wall clock time: 65.738352060317993 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.0999963879585266 -(PID.TID 0000.0001) System time: 8.0439150333404541E-003 -(PID.TID 0000.0001) Wall clock time: 2.1084303855895996 +(PID.TID 0000.0001) User time: 2.1605855226516724 +(PID.TID 0000.0001) System time: 2.1046638488769531E-002 +(PID.TID 0000.0001) Wall clock time: 2.1820108890533447 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.71404993534088135 -(PID.TID 0000.0001) System time: 1.9465476274490356E-002 -(PID.TID 0000.0001) Wall clock time: 0.75785779953002930 +(PID.TID 0000.0001) User time: 0.89385366439819336 +(PID.TID 0000.0001) System time: 5.4893553256988525E-002 +(PID.TID 0000.0001) Wall clock time: 0.96511101722717285 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.78498232364654541 -(PID.TID 0000.0001) System time: 1.9526988267898560E-002 -(PID.TID 0000.0001) Wall clock time: 0.82882547378540039 -(PID.TID 0000.0001) No. starts: 55 -(PID.TID 0000.0001) No. stops: 55 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.17072153091430664 -(PID.TID 0000.0001) System time: 0.11178460717201233 -(PID.TID 0000.0001) Wall clock time: 0.43316197395324707 -(PID.TID 0000.0001) No. starts: 208 -(PID.TID 0000.0001) No. stops: 208 +(PID.TID 0000.0001) User time: 0.75465893745422363 +(PID.TID 0000.0001) System time: 3.0461370944976807E-002 +(PID.TID 0000.0001) Wall clock time: 0.80154156684875488 +(PID.TID 0000.0001) No. starts: 50 +(PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 4.9811601638793945E-004 -(PID.TID 0000.0001) System time: 2.9504299163818359E-006 -(PID.TID 0000.0001) Wall clock time: 4.9853324890136719E-004 -(PID.TID 0000.0001) No. starts: 55 -(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) User time: 4.2927265167236328E-004 +(PID.TID 0000.0001) System time: 2.2113323211669922E-005 +(PID.TID 0000.0001) Wall clock time: 4.6253204345703125E-004 +(PID.TID 0000.0001) No. starts: 50 +(PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5616884231567383E-002 -(PID.TID 0000.0001) System time: 6.9140195846557617E-003 -(PID.TID 0000.0001) Wall clock time: 3.2546281814575195E-002 +(PID.TID 0000.0001) User time: 3.8818120956420898E-002 +(PID.TID 0000.0001) System time: 6.5839290618896484E-004 +(PID.TID 0000.0001) Wall clock time: 3.9509057998657227E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.1843693256378174E-002 -(PID.TID 0000.0001) System time: 1.6194283962249756E-003 -(PID.TID 0000.0001) Wall clock time: 6.3491821289062500E-002 +(PID.TID 0000.0001) User time: 7.7294707298278809E-002 +(PID.TID 0000.0001) System time: 9.5230340957641602E-004 +(PID.TID 0000.0001) Wall clock time: 7.8303337097167969E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.9151028990745544 -(PID.TID 0000.0001) System time: 2.9007077217102051E-002 -(PID.TID 0000.0001) Wall clock time: 8.9463174343109131 +(PID.TID 0000.0001) User time: 9.4659168720245361 +(PID.TID 0000.0001) System time: 6.6291093826293945E-002 +(PID.TID 0000.0001) Wall clock time: 9.5360541343688965 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.45246505737304688 -(PID.TID 0000.0001) System time: 3.8480758666992188E-004 -(PID.TID 0000.0001) Wall clock time: 0.45293283462524414 -(PID.TID 0000.0001) No. starts: 55 -(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) User time: 0.43680834770202637 +(PID.TID 0000.0001) System time: 7.6174736022949219E-005 +(PID.TID 0000.0001) Wall clock time: 0.43694305419921875 +(PID.TID 0000.0001) No. starts: 50 +(PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.501795530319214 -(PID.TID 0000.0001) System time: 2.3960351943969727E-002 -(PID.TID 0000.0001) Wall clock time: 16.535003185272217 +(PID.TID 0000.0001) User time: 17.940754175186157 +(PID.TID 0000.0001) System time: 0.11976867914199829 +(PID.TID 0000.0001) Wall clock time: 18.065385341644287 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.1238855123519897 -(PID.TID 0000.0001) System time: 2.0084798336029053E-002 -(PID.TID 0000.0001) Wall clock time: 6.1450407505035400 +(PID.TID 0000.0001) User time: 6.3306593894958496 +(PID.TID 0000.0001) System time: 7.4144840240478516E-002 +(PID.TID 0000.0001) Wall clock time: 6.4076371192932129 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.58162546157836914 -(PID.TID 0000.0001) System time: 4.7028064727783203E-005 -(PID.TID 0000.0001) Wall clock time: 0.58186340332031250 +(PID.TID 0000.0001) User time: 0.63097143173217773 +(PID.TID 0000.0001) System time: 1.2702286243438721E-002 +(PID.TID 0000.0001) Wall clock time: 0.64381289482116699 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0232124328613281 -(PID.TID 0000.0001) System time: 4.3988227844238281E-005 -(PID.TID 0000.0001) Wall clock time: 1.0235249996185303 +(PID.TID 0000.0001) User time: 1.1136713027954102 +(PID.TID 0000.0001) System time: 4.7698616981506348E-003 +(PID.TID 0000.0001) Wall clock time: 1.1187915802001953 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.19493710994720459 -(PID.TID 0000.0001) System time: 2.4855136871337891E-005 -(PID.TID 0000.0001) Wall clock time: 0.19504666328430176 +(PID.TID 0000.0001) User time: 0.21308255195617676 +(PID.TID 0000.0001) System time: 1.2803077697753906E-004 +(PID.TID 0000.0001) Wall clock time: 0.21328330039978027 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.97957408428192139 -(PID.TID 0000.0001) System time: 4.3577551841735840E-003 -(PID.TID 0000.0001) Wall clock time: 0.98418688774108887 +(PID.TID 0000.0001) User time: 1.0722609758377075 +(PID.TID 0000.0001) System time: 1.3025879859924316E-002 +(PID.TID 0000.0001) Wall clock time: 1.0856757164001465 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 21.954439163208008 -(PID.TID 0000.0001) System time: 5.9127599000930786E-002 -(PID.TID 0000.0001) Wall clock time: 22.022129535675049 +(PID.TID 0000.0001) User time: 23.349439024925232 +(PID.TID 0000.0001) System time: 0.11989223957061768 +(PID.TID 0000.0001) Wall clock time: 23.482552766799927 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.2176246643066406E-004 -(PID.TID 0000.0001) System time: 7.0929527282714844E-006 -(PID.TID 0000.0001) Wall clock time: 4.2724609375000000E-004 +(PID.TID 0000.0001) User time: 4.3344497680664062E-004 +(PID.TID 0000.0001) System time: 1.6808509826660156E-005 +(PID.TID 0000.0001) Wall clock time: 4.2200088500976562E-004 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.57650852203369141 -(PID.TID 0000.0001) System time: 1.2901425361633301E-004 -(PID.TID 0000.0001) Wall clock time: 0.57726502418518066 +(PID.TID 0000.0001) User time: 0.53034377098083496 +(PID.TID 0000.0001) System time: 1.4308691024780273E-003 +(PID.TID 0000.0001) Wall clock time: 0.53179383277893066 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.99279808998107910 -(PID.TID 0000.0001) System time: 1.0597705841064453E-004 -(PID.TID 0000.0001) Wall clock time: 0.99300813674926758 +(PID.TID 0000.0001) User time: 1.0240895748138428 +(PID.TID 0000.0001) System time: 4.9147605895996094E-003 +(PID.TID 0000.0001) Wall clock time: 1.0298955440521240 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.1932811737060547E-002 -(PID.TID 0000.0001) System time: 8.9235007762908936E-002 -(PID.TID 0000.0001) Wall clock time: 0.36605119705200195 +(PID.TID 0000.0001) User time: 5.4985761642456055E-002 +(PID.TID 0000.0001) System time: 6.0231864452362061E-002 +(PID.TID 0000.0001) Wall clock time: 0.21990013122558594 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.8314819335937500E-002 -(PID.TID 0000.0001) System time: 3.9480984210968018E-002 -(PID.TID 0000.0001) Wall clock time: 9.0850353240966797E-002 +(PID.TID 0000.0001) User time: 5.0965785980224609E-002 +(PID.TID 0000.0001) System time: 1.5739977359771729E-002 +(PID.TID 0000.0001) Wall clock time: 0.12536787986755371 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.13775825500488281 +(PID.TID 0000.0001) System time: 0.21168482303619385 +(PID.TID 0000.0001) Wall clock time: 0.71101999282836914 +(PID.TID 0000.0001) No. starts: 6 +(PID.TID 0000.0001) No. stops: 6 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.19559860229492188 +(PID.TID 0000.0001) System time: 4.3931007385253906E-002 +(PID.TID 0000.0001) Wall clock time: 0.23979377746582031 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.18301010131835938 +(PID.TID 0000.0001) System time: 1.9934892654418945E-002 +(PID.TID 0000.0001) Wall clock time: 0.21520400047302246 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 50.552654266357422 -(PID.TID 0000.0001) System time: 0.11252713203430176 -(PID.TID 0000.0001) Wall clock time: 50.711054086685181 +(PID.TID 0000.0001) User time: 52.995162963867188 +(PID.TID 0000.0001) System time: 0.61509013175964355 +(PID.TID 0000.0001) Wall clock time: 53.749158859252930 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.7513694763183594 -(PID.TID 0000.0001) System time: 4.4134855270385742E-002 -(PID.TID 0000.0001) Wall clock time: 1.7956190109252930 +(PID.TID 0000.0001) User time: 1.8602027893066406 +(PID.TID 0000.0001) System time: 0.10015106201171875 +(PID.TID 0000.0001) Wall clock time: 1.9605615139007568 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 48.645984649658203 -(PID.TID 0000.0001) System time: 2.4401664733886719E-002 -(PID.TID 0000.0001) Wall clock time: 48.679878950119019 +(PID.TID 0000.0001) User time: 50.959186553955078 +(PID.TID 0000.0001) System time: 0.45536112785339355 +(PID.TID 0000.0001) Wall clock time: 51.439958095550537 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 47.929588317871094 -(PID.TID 0000.0001) System time: 2.0428895950317383E-002 -(PID.TID 0000.0001) Wall clock time: 47.959416389465332 +(PID.TID 0000.0001) User time: 50.912319183349609 +(PID.TID 0000.0001) System time: 0.43545699119567871 +(PID.TID 0000.0001) Wall clock time: 51.373206377029419 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.3276062011718750E-002 -(PID.TID 0000.0001) System time: 3.9618015289306641E-003 -(PID.TID 0000.0001) Wall clock time: 5.7245254516601562E-002 +(PID.TID 0000.0001) User time: 4.5578002929687500E-002 +(PID.TID 0000.0001) System time: 1.9892454147338867E-002 +(PID.TID 0000.0001) Wall clock time: 6.5482139587402344E-002 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -5263,9 +5192,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 59480 +(PID.TID 0000.0001) // No. barriers = 54506 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 59480 +(PID.TID 0000.0001) // Total barrier spins = 54506 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_adm.txt b/verification/global_ocean.cs32x15/results/output_adm.txt index c0518b54b5..d5e455dd99 100644 --- a/verification/global_ocean.cs32x15/results/output_adm.txt +++ b/verification/global_ocean.cs32x15/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67s +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67v (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Tue Dec 1 13:43:48 EST 2020 +(PID.TID 0000.0001) // Build date: Thu Feb 25 09:41:03 EST 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -296,6 +296,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -326,9 +329,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -2398,11 +2410,11 @@ (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0398186384005E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2638380334010E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0639130168720E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0315419012187E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0412353696425E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.5426404424407E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8379860233396E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6456681169339E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0315548206230E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0412092606640E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3594270097563E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8382293649569E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6457320450043E-08 (PID.TID 0000.0001) %MON dynstat_theta_max = 3.0925958904704E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9091312053343E+00 @@ -2423,11 +2435,11 @@ (PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 (PID.TID 0000.0001) %MON forcing_fu_max = 2.4892781143428E-01 (PID.TID 0000.0001) %MON forcing_fu_min = -2.5159107438040E-01 (PID.TID 0000.0001) %MON forcing_fu_mean = -3.8956966288612E-03 @@ -2443,8 +2455,8 @@ (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1692195603793E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5609847114589E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6551975825327E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3511900279873E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6551124574102E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3510960005834E-02 (PID.TID 0000.0001) %MON pe_b_mean = 4.7811655460464E-04 (PID.TID 0000.0001) %MON ke_max = 4.0700637549387E-02 (PID.TID 0000.0001) %MON ke_mean = 1.4067882101803E-04 @@ -2455,53 +2467,53 @@ (PID.TID 0000.0001) %MON vort_a_sd = 7.5259517155846E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4783469227166E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.2812074522595E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.3855955095236E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3163665490081E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6885454704508E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4400775280524E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) whio : write lev 3 rec 1 EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.68024000933133E-01 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.68023878714095E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 64 -(PID.TID 0000.0001) cg2d_last_res = 5.58681034433326E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.58683552522706E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72001 (PID.TID 0000.0001) %MON time_secondsf = 6.2208864000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2133655179734E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6190330462967E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4372604057554E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9917645584001E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8642723419465E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8614969330889E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8756254452758E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8930782402102E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2019850618017E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1422827020158E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7424331242050E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2484858992307E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0148994194182E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2634847270860E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0838535476287E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0470225654133E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0629060425213E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1589130159319E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8549171144362E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6740462761267E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0937492864880E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0051002116090E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9091886517346E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710983067977E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6413868811489E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1386656529534E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2133655120996E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6190330502946E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4468787832318E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9917645600647E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8642723390166E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8614969421301E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8756253548200E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8930781602901E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2019850590904E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1422826272405E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7424330934384E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2484862162875E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0148993675111E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2634847209014E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0838534695572E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0470225922697E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0629060515043E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1589699713370E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8549171120240E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6740462640007E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0937492864893E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0051002156293E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9091886517348E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710983067973E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6413868816426E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1386656529517E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 1.8383740720343E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069023557E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3143476611263E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.0251565834113E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3143476611334E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.0251565841648E-04 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5344826813507E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1502574251756E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2145822391644E+01 @@ -2527,67 +2539,67 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3684501518858E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5153512230531E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3373863441584E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1102265506890E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0812653752296E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4292349060668E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1558192311782E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5950205106990E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7258521537299E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4292349060668E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7827089450308E-04 -(PID.TID 0000.0001) %MON ke_max = 4.0534800068561E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4061962994924E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1102262955735E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0812652325363E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4292349384178E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1558189746286E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5950203765915E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7258521830179E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4292349384178E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7827089476881E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0534798017586E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4061962891933E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.1961273428905E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2248991486834E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.1961273457322E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2248991447641E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516806866E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516806869E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4783469220072E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2812073162536E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.3139713775257E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2483994323992E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812073162531E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.3139703452604E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2483991774886E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923321767E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.26182787020093E-01 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.26182951652446E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 64 -(PID.TID 0000.0001) cg2d_last_res = 5.39325293224013E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.39325018591159E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72002 (PID.TID 0000.0001) %MON time_secondsf = 6.2209728000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1899543962889E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6178232240084E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4358863518302E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9890083356683E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8619309057155E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8681676257848E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8744600045159E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8865407699737E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2016197452794E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1210131824117E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7405826487718E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2510217397688E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0366940591463E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2639872142271E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0605972648568E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0365488832952E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0489391947769E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7299860126864E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8361815435015E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6501884697534E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0948569140547E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0092219726664E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9092460682668E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710602606735E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6295808778161E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387060077558E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1899543513961E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6178232244521E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4386344596806E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9890083389511E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8619309107450E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8681676266081E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8744599945261E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8865408201906E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2016197449285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1210131724425E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7405826603062E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2510217722701E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0366940269113E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2639872138669E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0605972538650E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0365488858011E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0489391941864E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7299861205590E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8361815399456E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6501884672292E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0948569140590E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0092219769229E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9092460682667E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710602606720E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6295808781658E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387060077504E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384079578526E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069353871E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3141711854044E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9901339699381E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3141711854060E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9901339702912E-04 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5335380716717E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1405338853096E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2158050760287E+01 @@ -2613,67 +2625,67 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3688427064785E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5192943168452E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3392164091250E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1069395445480E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0726799816359E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3789449449946E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1525138201145E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5869545489845E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6803149595744E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3789449449946E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7783098472142E-04 -(PID.TID 0000.0001) %MON ke_max = 4.0487490403080E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4063874243247E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1069395163719E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0726800351923E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3789449428529E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1525137917814E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5869545992616E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6803149576492E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3789449428529E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7783098524525E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0487490178773E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4063874235253E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.1931492236887E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2188021658255E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.1931492245839E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2188021634864E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.5259516743743E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4783469211163E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.2812073652347E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6957702082602E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4613335278744E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6957708387288E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4613335922103E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26963529388561E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.16204792175308E-01 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.16204655988238E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 -(PID.TID 0000.0001) cg2d_last_res = 5.63273666592405E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.63275420217836E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72003 (PID.TID 0000.0001) %MON time_secondsf = 6.2210592000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1716085184127E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6173450214712E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4290160822043E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9885647869373E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8462230553393E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8728728589192E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8712409192573E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8819349106173E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2017980733763E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1189281239493E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7425549623778E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2506892571653E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0361168921091E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2644594916271E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0573338864339E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0388197274208E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0522690609777E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8724303650848E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8352222507145E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6514535170188E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0959186752765E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0136454197201E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9093036758846E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710299886782E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6157541261410E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387452758987E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1716084923417E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6173450215665E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4400085136058E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9885647869818E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8462230692087E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8728728618647E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8712408840580E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8819348948767E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2017980722965E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1189280944993E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7425549562990E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2506893781164E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0361168984255E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2644594893895E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0573338554735E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0388197365466E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0522690634202E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8724296742724E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8352222485647E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6514535111421E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0959186752849E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0136454252073E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9093036758847E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710299886767E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6157541267114E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387452758909E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384424559819E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069741443E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3139855654613E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9538894702684E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3139855654685E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9538894703908E-04 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5325934619927E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1308103454435E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2170279128930E+01 @@ -2699,67 +2711,67 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3692352610712E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5242720295677E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3430754301775E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0978615256358E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0818178235254E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3909343180196E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1433838837027E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5955515861295E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6911715799424E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3909343180196E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7776021057426E-04 -(PID.TID 0000.0001) %MON ke_max = 4.0380604422992E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4071359952526E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0978614263626E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0818177952940E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3909343268016E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1433837838708E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5955515596326E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6911715879057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3909343268016E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7776021058134E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0380603626313E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4071359914305E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.1970434078359E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2200257434255E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.1970434092135E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2200257391326E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.5259516612531E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469206483E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072816315E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0263479304129E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4850437059249E-08 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469206482E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072816314E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0263478196919E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4850436420889E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.26825643135367E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.96658855240234E-01 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.96658865268473E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 -(PID.TID 0000.0001) cg2d_last_res = 4.90955069331461E-07 +(PID.TID 0000.0001) cg2d_last_res = 4.90955559292357E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72004 (PID.TID 0000.0001) %MON time_secondsf = 6.2211456000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1570008047847E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6168937438962E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4097793272515E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9879689889692E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8399835681460E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8746403519282E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8677650770716E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8783424240577E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2015633449226E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1165791763343E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7442342131321E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2502646015674E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0354301557863E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2646088204510E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0541128249501E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0425450106917E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0548809220266E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.7133449271777E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8337213046667E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6532910855481E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0969370038700E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0183541145511E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1570007702562E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6168937448163E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4317641900547E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9879689894816E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8399835747975E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8746403549603E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8677650418174E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8783424249094E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2015633438107E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1165791463594E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7442342151261E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2502647213555E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0354301692567E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2646088183848E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0541127938387E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0425450194794E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0548809237651E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.7133873663008E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8337213006995E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6532910787618E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0969370038839E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0183541212217E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9093617574487E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710069512698E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6094102827334E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387829995723E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384775698198E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710069512675E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6094102831887E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387829995644E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384775698199E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772070152259E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3137979133597E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9376593246996E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3137979133660E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9376593248892E-04 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5316488523137E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1210868055774E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2182507497573E+01 @@ -2785,67 +2797,67 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3696278156640E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5302823094907E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3489534074143E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0880592298467E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0896001502101E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4003409606683E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1335257359424E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6028712035910E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6996872325696E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4003409606683E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7766515126937E-04 -(PID.TID 0000.0001) %MON ke_max = 4.0270344792889E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4070501786407E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0880591304179E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0896001594586E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4003409669403E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1335256359550E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6028712122824E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6996872382378E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4003409669403E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7766515135111E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0270343994605E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4070501749942E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2014015286803E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2222297292693E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2014015304671E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2222297255627E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.5259516403386E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4783469223252E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072565045E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8538259832090E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4766638440503E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072565044E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8538268792198E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4766638303017E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314508145796E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.04010899197146E-01 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.04010891451962E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 -(PID.TID 0000.0001) cg2d_last_res = 5.05624541060967E-07 +(PID.TID 0000.0001) cg2d_last_res = 5.05624576832133E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 72005 (PID.TID 0000.0001) %MON time_secondsf = 6.2212320000000E+09 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1425377421039E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6163081020926E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4193977047279E-14 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9872262668371E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8312951171928E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8763539682684E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8640512276010E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8754081502174E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2013954671636E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1138141616994E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7452974909297E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2497579203422E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0340295954732E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2648249114855E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0506295083181E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0468577177724E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0569267100883E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1308553514796E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8324712291927E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6556156494049E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0979141204736E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0233045912459E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9094200077765E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5709949318024E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5984307048990E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1388185924209E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8385132906265E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1425377205643E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6163081026433E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4290160822043E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9872262682672E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8312951231813E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8763539708194E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8640511923386E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8754081495740E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2013954659895E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1138141319002E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7452974951525E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2497580393048E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0340296087475E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2648249095162E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0506294776384E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0468577257698E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0569267113831E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1308612589859E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8324712251396E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6556156424327E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0979141204939E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0233045989875E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9094200077766E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5709949317998E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5984307053582E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1388185924147E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8385132906266E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772070576670E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3136309401373E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9027651595395E-04 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3136309401449E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9027651596287E-04 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5307042426348E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1113632657113E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2194735866217E+01 @@ -2871,59 +2883,59 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -1.3700203702567E-02 (PID.TID 0000.0001) %MON forcing_fv_sd = 7.5373226864996E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3568352349763E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0775855373685E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0945274156269E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4077126086878E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1229925543753E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6075058817139E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7063572736465E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4077126086878E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7754666352235E-04 -(PID.TID 0000.0001) %MON ke_max = 4.0156473402414E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4071166313420E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0775854379166E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0945274352149E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4077126133498E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1229924543645E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6075059001203E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7063572778678E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4077126133498E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7754666375049E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0156472604118E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4071166277397E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.2058369405547E-06 -(PID.TID 0000.0001) %MON vort_r_max = 1.2245058320846E-06 +(PID.TID 0000.0001) %MON vort_r_min = -1.2058369425432E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2245058273221E-06 (PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.5259516265911E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.4783469196317E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072400251E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8333592167702E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4621922897977E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072400250E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8333596078792E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4621923210333E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000072000.txt , unit= 9 (PID.TID 0000.0001) %CHECKPOINT 72005 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112642990348103D+05 - --> objf_test(bi,bj) = 0.925748325758844D+04 - --> objf_test(bi,bj) = 0.646782340671071D+04 - --> objf_test(bi,bj) = 0.425114892283630D+04 - --> objf_test(bi,bj) = 0.468651159540117D+04 - --> objf_test(bi,bj) = 0.131971832167568D+05 - --> objf_test(bi,bj) = 0.111682590459659D+05 - --> objf_test(bi,bj) = 0.109410446673452D+05 - --> objf_test(bi,bj) = 0.691550498895456D+04 - --> objf_test(bi,bj) = 0.683247511367517D+04 - --> objf_test(bi,bj) = 0.520040324842317D+04 - --> objf_test(bi,bj) = 0.606296038540988D+04 -(PID.TID 0000.0001) local fc = 0.962450968838777D+05 -(PID.TID 0000.0001) global fc = 0.962450968838777D+05 + --> objf_test(bi,bj) = 0.112642990319059D+05 + --> objf_test(bi,bj) = 0.925748325923490D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594451D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117793D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455277D+04 + --> objf_test(bi,bj) = 0.683247511182580D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321234D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 (PID.TID 0000.0001) whio : write lev 2 rec 1 EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923321767E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 (PID.TID 0000.0001) whio : write lev 2 rec 2 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26963529388561E+00 - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.26825643135367E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 (PID.TID 0000.0001) whio : write lev 2 rec 3 - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314508145796E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314508145796E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314508145796E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics @@ -2950,11 +2962,11 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9871053681201E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0079890544100E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9871053715857E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0079890511023E+01 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1225491567065E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9056060176869E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 7.8180641903660E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9056060176664E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 7.8180641912853E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 @@ -2989,10 +3001,10 @@ (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -1.08420217248550E-19 1.78189963822510E-04 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26963529388561E+00 - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.26825643135367E+00 - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.26825643135367E+00 + cg2d: Sum(rhs),rhsMax = -3.25260651745651E-19 1.78189962772662E-04 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3003,41 +3015,41 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3266064295102E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.1510484022977E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 4.9183994929375E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1226679459770E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1307766568216E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.9330619761139E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7030175429181E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.5835480407301E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.0721190868853E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.4550430873531E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.7940954434937E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.1806132109020E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.6002230864528E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.1517082239848E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 8.6915650200166E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9824891971153E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0342105368811E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1164999942855E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9016814200521E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4639693736731E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.8328936778724E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.8206314993409E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.5149827071605E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.6980307309657E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0973192286409E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3266064350938E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.1510483955205E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 4.9183994637097E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1226679466562E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.1307766576799E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.9330619738441E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.7030175432967E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.5835480205864E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.0721190874472E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.4550430872186E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.7940954148620E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -5.1806131471263E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.6002255461544E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.1517081856596E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 8.6915650177010E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9824892006506E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0342105377917E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1164999947301E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9016814223796E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4639699620094E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.8329001650766E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.8206379704637E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.5149828563583E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.6980321150147E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0973197117884E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 2.5635607448932E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -2.3602085077446E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 1.5468059877766E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 4.4022799193792E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 6.7505289419428E-07 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 2.5635607454642E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -2.3602085058435E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 1.5468059863986E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 4.4022799172413E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 6.7505289418943E-07 (PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 @@ -3057,8 +3069,8 @@ (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -6.50521303491303E-19 1.55588378273551E-03 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26963529388561E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 1.55588377850506E-03 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3069,41 +3081,41 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.3371691107288E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0005576603418E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.1410734480568E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1975297845605E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1790651252716E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.6137561428794E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.2676439251397E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.1226739805661E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0938808078487E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8154451601275E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.8065000432201E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.5997964516195E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 4.2363441653952E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.9572049014100E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1116689726630E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.1100332334086E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.0741850299991E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1201860164645E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9054674157754E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0156138452642E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7924874047893E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.7961815063541E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.6437694068542E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.3916705192275E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3247013257381E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.3371691215645E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0005576591369E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.1410734509017E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1975297858270E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1790651338062E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.6137561383157E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.2676439260156E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.1226739362785E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0938808098775E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8154451689663E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.8065000070350E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.5997963755631E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 4.2363474802289E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.9572048514740E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1116689727523E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.1100337804527E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.0741855615710E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1201860168247E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9054674179696E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.0156139006478E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.7924875964967E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.7961816985190E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.6437695424785E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.3916711354087E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3247015501532E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 5.1031548332098E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -4.6408689838713E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 3.1097308387111E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 8.7280842418851E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 1.3949575928395E-06 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 5.1031548345165E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -4.6408689815079E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 3.1097308243948E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 8.7280842886760E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 1.3949576624310E-06 (PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 @@ -3123,12 +3135,12 @@ (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -1.51788304147971E-18 2.60385267701156E-03 + cg2d: Sum(rhs),rhsMax = 3.25260651745651E-19 2.60385267102964E-03 EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923321767E+00 - cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923321767E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3139,41 +3151,41 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.0225350219975E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.4643516410103E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.7955761871268E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.2303096014045E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1541944554679E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.0546521681181E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.6806265679493E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.7138972586655E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.0742812829270E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6281923577940E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.2176089564153E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.1570781914965E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 7.0876692199504E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0962709038872E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5168164502326E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3536905049905E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.3001304249886E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1249365962716E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8974958055004E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0206366899273E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.1797794694209E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1732066100583E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.5456421197736E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.3441593217083E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.9031086522667E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.0225350284864E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.4643516393971E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.7955761937997E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.2303096048916E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1541944792801E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.0546521614127E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.6806265694162E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.7138974329680E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.0742812883307E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.6281923879291E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.2176089551456E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -9.1570781660418E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 7.0877214022079E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0962709018998E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.5168164621239E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3536913534702E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.3001312359275E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1249365966330E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8974958065500E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 9.0206370122441E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.1797797730730E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1732069130321E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.5456422683556E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.3441598316693E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.9031088179118E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 7.6189233655025E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -9.2874798532251E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 4.6518714182613E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 1.3116805405790E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 2.3508069240878E-06 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 7.6189233677084E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -9.2874806460242E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 4.6518713925512E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 1.3116805515405E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 2.3508071045303E-06 (PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 @@ -3193,10 +3205,10 @@ (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -1.51788304147971E-18 2.97812614094291E-03 + cg2d: Sum(rhs),rhsMax = -8.67361737988404E-19 2.97812613610587E-03 EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3207,41 +3219,41 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.3745520483320E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.8996228575860E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.3074048015938E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.2085720005595E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0378018003256E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0223989908298E+02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.9172989670903E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 6.4417617625121E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.0064676253028E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3572267269094E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.5428612969666E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.1823990697789E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.2766498437276E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.3961411857319E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9167403500375E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.8782118275526E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0062653186741E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1319448308861E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8929590061854E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4676202782390E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.4423687881251E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.2323039582595E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.3559454552830E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.8141194187718E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.7298458570895E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.3745520310218E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.8996228558333E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.3074048116179E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.2085720042363E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.0378018296847E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0223989899786E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.9172989693209E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 6.4417621096804E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.0064676323877E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3572267656459E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.5428612807054E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.1823990348064E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.2766462835993E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.3961411618388E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9167403227432E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.8782116257126E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0062653193867E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1319448312234E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8929590063286E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.4676203745663E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.4423761767586E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.2323109116472E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.3559454708729E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.8141197595063E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.7298458986592E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 1.0111060210185E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -1.5262725651592E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 6.2042793786547E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 1.7416752534944E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 3.2673740970987E-06 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 1.0111060213447E-03 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -1.5262727870666E-03 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 6.2042793410347E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 1.7416752685884E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 3.2673743467337E-06 (PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 @@ -3261,7 +3273,7 @@ (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = 1.73472347597681E-18 2.73831339130236E-03 + cg2d: Sum(rhs),rhsMax = -2.81892564846231E-18 2.73831338873331E-03 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3290,41 +3302,41 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.4659227458146E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.2998763110595E+02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.6288773842192E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.1187097927903E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.8337478164258E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.2315250302166E+02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -7.1567614632869E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0500191438162E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.8774700468645E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.0094367023702E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1430727844807E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.7215998562588E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.2911127133573E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0399925396705E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.4080379751117E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.7912282334244E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.9861763278026E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1409814237076E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8917318375676E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.3381330099333E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.1195166971105E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.0049117528924E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.9555584361083E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1483279179483E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.8508056400940E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.4659227924616E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.2998762762324E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.6288773782585E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.1187098016988E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.8337478082932E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.2315250002548E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -7.1567618261022E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0500191954913E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.8774700560888E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.0094367265334E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1430727850236E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.7215998307168E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.2911080416850E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0399925384321E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.4080379932733E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.7912282343411E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.9861763288344E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 6.1409814240141E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8917318374974E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.3381330426970E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 9.1195237244607E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.0049184856849E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.9555584505237E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1483279460730E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.8508056462230E-02 (PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 1.2579513746039E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -1.8802120662236E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 7.7577235668327E-05 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 2.1599002916255E-04 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 4.0920076216170E-06 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 1.2579513751317E-03 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = -1.8802123862442E-03 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 7.7577235182672E-05 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 2.1599003081823E-04 +(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 4.0920079027177E-06 (PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 @@ -3346,7 +3358,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 9.62450968838777E+04 +(PID.TID 0000.0001) grdchk reference fc: fcref = 9.62450968703671E+04 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -3379,28 +3391,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.94759830064140E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923309178E+00 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26963529374297E+00 - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.26825643086161E+00 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26314508061259E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834808E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963528989786E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643505683E+00 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26314508222955E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112643372566242D+05 - --> objf_test(bi,bj) = 0.925748325772629D+04 - --> objf_test(bi,bj) = 0.646782340662449D+04 - --> objf_test(bi,bj) = 0.425114892282026D+04 - --> objf_test(bi,bj) = 0.468651159539714D+04 - --> objf_test(bi,bj) = 0.131971832167080D+05 - --> objf_test(bi,bj) = 0.111682590459499D+05 - --> objf_test(bi,bj) = 0.109410446673657D+05 - --> objf_test(bi,bj) = 0.691550498899515D+04 - --> objf_test(bi,bj) = 0.683247680663149D+04 - --> objf_test(bi,bj) = 0.520040324847601D+04 - --> objf_test(bi,bj) = 0.606296259953934D+04 -(PID.TID 0000.0001) local fc = 0.962451390128580D+05 -(PID.TID 0000.0001) global fc = 0.962451390128580D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451390128580E+04 + --> objf_test(bi,bj) = 0.112643372537197D+05 + --> objf_test(bi,bj) = 0.925748325937274D+04 + --> objf_test(bi,bj) = 0.646782341056008D+04 + --> objf_test(bi,bj) = 0.425114891592850D+04 + --> objf_test(bi,bj) = 0.468651159947307D+04 + --> objf_test(bi,bj) = 0.131971832117306D+05 + --> objf_test(bi,bj) = 0.111682590494812D+05 + --> objf_test(bi,bj) = 0.109410446656234D+05 + --> objf_test(bi,bj) = 0.691550498459337D+04 + --> objf_test(bi,bj) = 0.683247680478209D+04 + --> objf_test(bi,bj) = 0.520040324674087D+04 + --> objf_test(bi,bj) = 0.606296259734182D+04 +(PID.TID 0000.0001) local fc = 0.962451389993475D+05 +(PID.TID 0000.0001) global fc = 0.962451389993475D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451389993475E+04 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3425,34 +3437,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28169923334260E+00 - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963529403000E+00 - cg2d: Sum(rhs),rhsMax = -9.94759830064140E-12 4.26825643184865E+00 - cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508230317E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28169923859646E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963529019077E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643604795E+00 + cg2d: Sum(rhs),rhsMax = -9.43600753089413E-12 4.26314508391993E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112642609216037D+05 - --> objf_test(bi,bj) = 0.925748325745063D+04 - --> objf_test(bi,bj) = 0.646782340679691D+04 - --> objf_test(bi,bj) = 0.425114892285235D+04 - --> objf_test(bi,bj) = 0.468651159540515D+04 - --> objf_test(bi,bj) = 0.131971832168058D+05 - --> objf_test(bi,bj) = 0.111682590459818D+05 - --> objf_test(bi,bj) = 0.109410446673247D+05 - --> objf_test(bi,bj) = 0.691550498891398D+04 - --> objf_test(bi,bj) = 0.683247342298352D+04 - --> objf_test(bi,bj) = 0.520040324837028D+04 - --> objf_test(bi,bj) = 0.606295817365044D+04 -(PID.TID 0000.0001) local fc = 0.962450548681393D+05 -(PID.TID 0000.0001) global fc = 0.962450548681393D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450548681393E+04 + --> objf_test(bi,bj) = 0.112642609186992D+05 + --> objf_test(bi,bj) = 0.925748325909704D+04 + --> objf_test(bi,bj) = 0.646782341073247D+04 + --> objf_test(bi,bj) = 0.425114891596055D+04 + --> objf_test(bi,bj) = 0.468651159948100D+04 + --> objf_test(bi,bj) = 0.131971832118282D+05 + --> objf_test(bi,bj) = 0.111682590495131D+05 + --> objf_test(bi,bj) = 0.109410446655825D+05 + --> objf_test(bi,bj) = 0.691550498451220D+04 + --> objf_test(bi,bj) = 0.683247342113420D+04 + --> objf_test(bi,bj) = 0.520040324663511D+04 + --> objf_test(bi,bj) = 0.606295817145302D+04 +(PID.TID 0000.0001) local fc = 0.962450548546287D+05 +(PID.TID 0000.0001) global fc = 0.962450548546287D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450548546287E+04 grad-res ------------------------------- - grad-res 0 1 1 1 1 1 1 1 9.62450968839E+04 9.62451390129E+04 9.62450548681E+04 - grad-res 0 1 1 1 0 1 1 1 4.20725616108E+00 4.20723593925E+00 4.80641879164E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968838777E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.20725616108284E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.20723593924777E+00 + grad-res 0 1 1 1 1 1 1 1 9.62450968704E+04 9.62451389993E+04 9.62450548546E+04 + grad-res 0 1 1 1 0 1 1 1 4.20725615465E+00 4.20723593998E+00 4.80471770081E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.20725615465348E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.20723593997536E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 55522 2 @@ -3483,28 +3495,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.26547727431171E-12 4.28169923323468E+00 - cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26963529351408E+00 - cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.26825643055480E+00 - cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.26314508002631E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923848898E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963528967151E+00 + cg2d: Sum(rhs),rhsMax = -9.49285094975494E-12 4.26825643475361E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26314508164779E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112643378735474D+05 - --> objf_test(bi,bj) = 0.925748325782452D+04 - --> objf_test(bi,bj) = 0.646782340656220D+04 - --> objf_test(bi,bj) = 0.425114892280886D+04 - --> objf_test(bi,bj) = 0.468651159539393D+04 - --> objf_test(bi,bj) = 0.131971832166721D+05 - --> objf_test(bi,bj) = 0.111682590459387D+05 - --> objf_test(bi,bj) = 0.109410446673796D+05 - --> objf_test(bi,bj) = 0.691550498902364D+04 - --> objf_test(bi,bj) = 0.683247522999841D+04 - --> objf_test(bi,bj) = 0.520040324851358D+04 - --> objf_test(bi,bj) = 0.606296159243508D+04 -(PID.TID 0000.0001) local fc = 0.962451370460980D+05 -(PID.TID 0000.0001) global fc = 0.962451370460980D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451370460980E+04 + --> objf_test(bi,bj) = 0.112643378706429D+05 + --> objf_test(bi,bj) = 0.925748325947092D+04 + --> objf_test(bi,bj) = 0.646782341049779D+04 + --> objf_test(bi,bj) = 0.425114891591706D+04 + --> objf_test(bi,bj) = 0.468651159946984D+04 + --> objf_test(bi,bj) = 0.131971832116948D+05 + --> objf_test(bi,bj) = 0.111682590494701D+05 + --> objf_test(bi,bj) = 0.109410446656374D+05 + --> objf_test(bi,bj) = 0.691550498462186D+04 + --> objf_test(bi,bj) = 0.683247522814915D+04 + --> objf_test(bi,bj) = 0.520040324677840D+04 + --> objf_test(bi,bj) = 0.606296159023752D+04 +(PID.TID 0000.0001) local fc = 0.962451370325877D+05 +(PID.TID 0000.0001) global fc = 0.962451370325877D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451370325877E+04 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3529,34 +3541,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923320466E+00 - cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.26963529425432E+00 - cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26825643215114E+00 - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314508288620E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923845654E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.26963529041537E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26825643635290E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508450758E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112642603199910D+05 - --> objf_test(bi,bj) = 0.925748325735236D+04 - --> objf_test(bi,bj) = 0.646782340685920D+04 - --> objf_test(bi,bj) = 0.425114892286375D+04 - --> objf_test(bi,bj) = 0.468651159540838D+04 - --> objf_test(bi,bj) = 0.131971832168416D+05 - --> objf_test(bi,bj) = 0.111682590459930D+05 - --> objf_test(bi,bj) = 0.109410446673108D+05 - --> objf_test(bi,bj) = 0.691550498888552D+04 - --> objf_test(bi,bj) = 0.683247499739626D+04 - --> objf_test(bi,bj) = 0.520040324833276D+04 - --> objf_test(bi,bj) = 0.606295917973303D+04 -(PID.TID 0000.0001) local fc = 0.962450568469676D+05 -(PID.TID 0000.0001) global fc = 0.962450568469676D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450568469676E+04 + --> objf_test(bi,bj) = 0.112642603170864D+05 + --> objf_test(bi,bj) = 0.925748325899883D+04 + --> objf_test(bi,bj) = 0.646782341079480D+04 + --> objf_test(bi,bj) = 0.425114891597197D+04 + --> objf_test(bi,bj) = 0.468651159948426D+04 + --> objf_test(bi,bj) = 0.131971832118641D+05 + --> objf_test(bi,bj) = 0.111682590495243D+05 + --> objf_test(bi,bj) = 0.109410446655686D+05 + --> objf_test(bi,bj) = 0.691550498448368D+04 + --> objf_test(bi,bj) = 0.683247499554683D+04 + --> objf_test(bi,bj) = 0.520040324659764D+04 + --> objf_test(bi,bj) = 0.606295917753553D+04 +(PID.TID 0000.0001) local fc = 0.962450568334570D+05 +(PID.TID 0000.0001) global fc = 0.962450568334570D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450568334570E+04 grad-res ------------------------------- - grad-res 0 2 2 1 1 1 1 1 9.62450968839E+04 9.62451370461E+04 9.62450568470E+04 - grad-res 0 2 2 2 0 1 1 1 4.00967431391E+00 4.00995652017E+00 -7.03813416996E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968838777E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 4.00967431390919E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 4.00995652016718E+00 + grad-res 0 2 2 1 1 1 1 1 9.62450968704E+04 9.62451370326E+04 9.62450568335E+04 + grad-res 0 2 2 2 0 1 1 1 4.00967431021E+00 4.00995653617E+00 -7.03862575171E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.00967431020573E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.00995653617429E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 55522 3 @@ -3587,28 +3599,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923309388E+00 - cg2d: Sum(rhs),rhsMax = -9.12336872715969E-12 4.26963529344947E+00 - cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26825643024617E+00 - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314507949465E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834804E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963528960830E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643444512E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508111679E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112643321766277D+05 - --> objf_test(bi,bj) = 0.925748325789755D+04 - --> objf_test(bi,bj) = 0.646782340651146D+04 - --> objf_test(bi,bj) = 0.425114892279978D+04 - --> objf_test(bi,bj) = 0.468651159539181D+04 - --> objf_test(bi,bj) = 0.131971832166432D+05 - --> objf_test(bi,bj) = 0.111682590459291D+05 - --> objf_test(bi,bj) = 0.109410446673916D+05 - --> objf_test(bi,bj) = 0.691550498904577D+04 - --> objf_test(bi,bj) = 0.683247511773938D+04 - --> objf_test(bi,bj) = 0.520040324854381D+04 - --> objf_test(bi,bj) = 0.606296088778619D+04 -(PID.TID 0000.0001) local fc = 0.962451305323074D+05 -(PID.TID 0000.0001) global fc = 0.962451305323074D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451305323074E+04 + --> objf_test(bi,bj) = 0.112643321737231D+05 + --> objf_test(bi,bj) = 0.925748325954393D+04 + --> objf_test(bi,bj) = 0.646782341044705D+04 + --> objf_test(bi,bj) = 0.425114891590794D+04 + --> objf_test(bi,bj) = 0.468651159946771D+04 + --> objf_test(bi,bj) = 0.131971832116658D+05 + --> objf_test(bi,bj) = 0.111682590494606D+05 + --> objf_test(bi,bj) = 0.109410446656495D+05 + --> objf_test(bi,bj) = 0.691550498464398D+04 + --> objf_test(bi,bj) = 0.683247511589005D+04 + --> objf_test(bi,bj) = 0.520040324680865D+04 + --> objf_test(bi,bj) = 0.606296088558872D+04 +(PID.TID 0000.0001) local fc = 0.962451305187970D+05 +(PID.TID 0000.0001) global fc = 0.962451305187970D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451305187970E+04 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3633,34 +3645,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.91917659121100E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.28169923334344E+00 - cg2d: Sum(rhs),rhsMax = -9.52127265918534E-12 4.26963529431928E+00 - cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26825643245986E+00 - cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26314508342227E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.86233317235019E-12 4.28169923859372E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529048258E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26825643666237E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.26314508503709E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112642660239594D+05 - --> objf_test(bi,bj) = 0.925748325727943D+04 - --> objf_test(bi,bj) = 0.646782340690992D+04 - --> objf_test(bi,bj) = 0.425114892287281D+04 - --> objf_test(bi,bj) = 0.468651159541045D+04 - --> objf_test(bi,bj) = 0.131971832168705D+05 - --> objf_test(bi,bj) = 0.111682590460026D+05 - --> objf_test(bi,bj) = 0.109410446672987D+05 - --> objf_test(bi,bj) = 0.691550498886338D+04 - --> objf_test(bi,bj) = 0.683247510961204D+04 - --> objf_test(bi,bj) = 0.520040324830252D+04 - --> objf_test(bi,bj) = 0.606295988379960D+04 -(PID.TID 0000.0001) local fc = 0.962450633671813D+05 -(PID.TID 0000.0001) global fc = 0.962450633671813D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450633671813E+04 + --> objf_test(bi,bj) = 0.112642660210549D+05 + --> objf_test(bi,bj) = 0.925748325892583D+04 + --> objf_test(bi,bj) = 0.646782341084554D+04 + --> objf_test(bi,bj) = 0.425114891598100D+04 + --> objf_test(bi,bj) = 0.468651159948632D+04 + --> objf_test(bi,bj) = 0.131971832118930D+05 + --> objf_test(bi,bj) = 0.111682590495339D+05 + --> objf_test(bi,bj) = 0.109410446655564D+05 + --> objf_test(bi,bj) = 0.691550498446156D+04 + --> objf_test(bi,bj) = 0.683247510776259D+04 + --> objf_test(bi,bj) = 0.520040324656738D+04 + --> objf_test(bi,bj) = 0.606295988160210D+04 +(PID.TID 0000.0001) local fc = 0.962450633536705D+05 +(PID.TID 0000.0001) global fc = 0.962450633536705D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450633536705E+04 grad-res ------------------------------- - grad-res 0 3 3 1 1 1 1 1 9.62450968839E+04 9.62451305323E+04 9.62450633672E+04 - grad-res 0 3 3 3 0 1 1 1 3.35835980991E+00 3.35825630609E+00 3.08197539184E-05 -(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968838777E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.35835980991470E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.35825630609179E+00 + grad-res 0 3 3 1 1 1 1 1 9.62450968704E+04 9.62451305188E+04 9.62450633537E+04 + grad-res 0 3 3 3 0 1 1 1 3.35835980953E+00 3.35825632210E+00 3.08148726686E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.35835980952880E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.35825632209890E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 55522 4 @@ -3691,28 +3703,28 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.94759830064140E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.86233317235019E-12 4.28169923304180E+00 - cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529336835E+00 - cg2d: Sum(rhs),rhsMax = -9.52127265918534E-12 4.26825642999380E+00 - cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26314507905506E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.28169923829328E+00 + cg2d: Sum(rhs),rhsMax = -9.52127265918534E-12 4.26963528952197E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26825643418973E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.26314508067312E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112643265444518D+05 - --> objf_test(bi,bj) = 0.925748325796112D+04 - --> objf_test(bi,bj) = 0.646782340647029D+04 - --> objf_test(bi,bj) = 0.425114892279187D+04 - --> objf_test(bi,bj) = 0.468651159538956D+04 - --> objf_test(bi,bj) = 0.131971832166208D+05 - --> objf_test(bi,bj) = 0.111682590459217D+05 - --> objf_test(bi,bj) = 0.109410446674004D+05 - --> objf_test(bi,bj) = 0.691550498906475D+04 - --> objf_test(bi,bj) = 0.683247511357332D+04 - --> objf_test(bi,bj) = 0.520040324856871D+04 - --> objf_test(bi,bj) = 0.606296053240681D+04 -(PID.TID 0000.0001) local fc = 0.962451245406211D+05 -(PID.TID 0000.0001) global fc = 0.962451245406211D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451245406211E+04 + --> objf_test(bi,bj) = 0.112643265415474D+05 + --> objf_test(bi,bj) = 0.925748325960757D+04 + --> objf_test(bi,bj) = 0.646782341040589D+04 + --> objf_test(bi,bj) = 0.425114891590007D+04 + --> objf_test(bi,bj) = 0.468651159946554D+04 + --> objf_test(bi,bj) = 0.131971832116433D+05 + --> objf_test(bi,bj) = 0.111682590494530D+05 + --> objf_test(bi,bj) = 0.109410446656582D+05 + --> objf_test(bi,bj) = 0.691550498466291D+04 + --> objf_test(bi,bj) = 0.683247511172393D+04 + --> objf_test(bi,bj) = 0.520040324683352D+04 + --> objf_test(bi,bj) = 0.606296053020935D+04 +(PID.TID 0000.0001) local fc = 0.962451245271106D+05 +(PID.TID 0000.0001) global fc = 0.962451245271106D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451245271106E+04 (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 192 1 192 @@ -3737,34 +3749,34 @@ grad-res ------------------------------- (PID.TID 0000.0001) EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -9.94759830064140E-12 4.28293538309627E+00 - cg2d: Sum(rhs),rhsMax = -9.43600753089413E-12 4.28169923339218E+00 - cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26963529440930E+00 - cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26825643271412E+00 - cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26314508386083E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923864340E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529056705E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643691576E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26314508548041E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.112642716578244D+05 - --> objf_test(bi,bj) = 0.925748325721584D+04 - --> objf_test(bi,bj) = 0.646782340695108D+04 - --> objf_test(bi,bj) = 0.425114892288071D+04 - --> objf_test(bi,bj) = 0.468651159541272D+04 - --> objf_test(bi,bj) = 0.131971832168929D+05 - --> objf_test(bi,bj) = 0.111682590460102D+05 - --> objf_test(bi,bj) = 0.109410446672901D+05 - --> objf_test(bi,bj) = 0.691550498884438D+04 - --> objf_test(bi,bj) = 0.683247511377698D+04 - --> objf_test(bi,bj) = 0.520040324827764D+04 - --> objf_test(bi,bj) = 0.606296023884126D+04 -(PID.TID 0000.0001) local fc = 0.962450693602183D+05 -(PID.TID 0000.0001) global fc = 0.962450693602183D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450693602183E+04 + --> objf_test(bi,bj) = 0.112642716549200D+05 + --> objf_test(bi,bj) = 0.925748325886229D+04 + --> objf_test(bi,bj) = 0.646782341088669D+04 + --> objf_test(bi,bj) = 0.425114891598887D+04 + --> objf_test(bi,bj) = 0.468651159948860D+04 + --> objf_test(bi,bj) = 0.131971832119155D+05 + --> objf_test(bi,bj) = 0.111682590495416D+05 + --> objf_test(bi,bj) = 0.109410446655477D+05 + --> objf_test(bi,bj) = 0.691550498444261D+04 + --> objf_test(bi,bj) = 0.683247511192761D+04 + --> objf_test(bi,bj) = 0.520040324654252D+04 + --> objf_test(bi,bj) = 0.606296023664371D+04 +(PID.TID 0000.0001) local fc = 0.962450693467077D+05 +(PID.TID 0000.0001) global fc = 0.962450693467077D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450693467077E+04 grad-res ------------------------------- - grad-res 0 4 4 1 1 1 1 1 9.62450968839E+04 9.62451245406E+04 9.62450693602E+04 - grad-res 0 4 4 4 0 1 1 1 2.75902173676E+00 2.75902014109E+00 5.78345545121E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968838777E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.75902173676099E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.75902014109306E+00 + grad-res 0 4 4 1 1 1 1 1 9.62450968704E+04 9.62451245271E+04 9.62450693467E+04 + grad-res 0 4 4 4 0 1 1 1 2.75902173719E+00 2.75902014619E+00 5.76655439732E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.75902173719112E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.75902014618623E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -3778,205 +3790,205 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 9.6245096883878E+04 9.6245139012858E+04 9.6245054868139E+04 -(PID.TID 0000.0001) grdchk output (g): 1 4.2072359392478E+00 4.2072561610828E+00 4.8064187916363E-06 +(PID.TID 0000.0001) grdchk output (c): 1 9.6245096870367E+04 9.6245138999347E+04 9.6245054854629E+04 +(PID.TID 0000.0001) grdchk output (g): 1 4.2072359399754E+00 4.2072561546535E+00 4.8047177008126E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 9.6245096883878E+04 9.6245137046098E+04 9.6245056846968E+04 -(PID.TID 0000.0001) grdchk output (g): 2 4.0099565201672E+00 4.0096743139092E+00 -7.0381341699566E-05 +(PID.TID 0000.0001) grdchk output (c): 2 9.6245096870367E+04 9.6245137032588E+04 9.6245056833457E+04 +(PID.TID 0000.0001) grdchk output (g): 2 4.0099565361743E+00 4.0096743102057E+00 -7.0386257517097E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 9.6245096883878E+04 9.6245130532307E+04 9.6245063367181E+04 -(PID.TID 0000.0001) grdchk output (g): 3 3.3582563060918E+00 3.3583598099147E+00 3.0819753918387E-05 +(PID.TID 0000.0001) grdchk output (c): 3 9.6245096870367E+04 9.6245130518797E+04 9.6245063353671E+04 +(PID.TID 0000.0001) grdchk output (g): 3 3.3582563220989E+00 3.3583598095288E+00 3.0814872668650E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 9.6245096883878E+04 9.6245124540621E+04 9.6245069360218E+04 -(PID.TID 0000.0001) grdchk output (g): 4 2.7590201410931E+00 2.7590217367610E+00 5.7834554512137E-07 +(PID.TID 0000.0001) grdchk output (c): 4 9.6245096870367E+04 9.6245124527111E+04 9.6245069346708E+04 +(PID.TID 0000.0001) grdchk output (g): 4 2.7590201461862E+00 2.7590217371911E+00 5.7665543973240E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.8492942977224E-05 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.8494153674710E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 102.98787696985528 -(PID.TID 0000.0001) System time: 1.9876000077929348 -(PID.TID 0000.0001) Wall clock time: 111.53867411613464 +(PID.TID 0000.0001) User time: 107.16903579537757 +(PID.TID 0000.0001) System time: 2.1695209771860391 +(PID.TID 0000.0001) Wall clock time: 109.60878396034241 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.39953200612217188 -(PID.TID 0000.0001) System time: 0.18646199302747846 -(PID.TID 0000.0001) Wall clock time: 1.0692040920257568 +(PID.TID 0000.0001) User time: 0.29983500344678760 +(PID.TID 0000.0001) System time: 0.10754000348970294 +(PID.TID 0000.0001) Wall clock time: 0.51547718048095703 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 50.531846880912781 -(PID.TID 0000.0001) System time: 1.6922229528427124 -(PID.TID 0000.0001) Wall clock time: 58.247796058654785 +(PID.TID 0000.0001) User time: 55.644269675016403 +(PID.TID 0000.0001) System time: 1.9620430916547775 +(PID.TID 0000.0001) Wall clock time: 57.767652988433838 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 62.975676536560059 -(PID.TID 0000.0001) System time: 0.22050869464874268 -(PID.TID 0000.0001) Wall clock time: 68.559278964996338 +(PID.TID 0000.0001) User time: 63.030468821525574 +(PID.TID 0000.0001) System time: 0.11182069778442383 +(PID.TID 0000.0001) Wall clock time: 63.168457984924316 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.1235886812210083 -(PID.TID 0000.0001) System time: 7.8656673431396484E-003 -(PID.TID 0000.0001) Wall clock time: 2.1319692134857178 +(PID.TID 0000.0001) User time: 2.1099003553390503 +(PID.TID 0000.0001) System time: 1.1328458786010742E-003 +(PID.TID 0000.0001) Wall clock time: 2.1114423274993896 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14128601551055908 -(PID.TID 0000.0001) System time: 3.0297040939331055E-004 -(PID.TID 0000.0001) Wall clock time: 0.14226388931274414 +(PID.TID 0000.0001) User time: 0.14384984970092773 +(PID.TID 0000.0001) System time: 3.8970112800598145E-003 +(PID.TID 0000.0001) Wall clock time: 0.14785170555114746 (PID.TID 0000.0001) No. starts: 15 (PID.TID 0000.0001) No. stops: 15 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14677417278289795 -(PID.TID 0000.0001) System time: 1.0095864534378052E-002 -(PID.TID 0000.0001) Wall clock time: 0.16747927665710449 +(PID.TID 0000.0001) User time: 0.15166258811950684 +(PID.TID 0000.0001) System time: 8.1281661987304688E-003 +(PID.TID 0000.0001) Wall clock time: 0.17412090301513672 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.16023433208465576 -(PID.TID 0000.0001) System time: 1.0346621274948120E-002 -(PID.TID 0000.0001) Wall clock time: 0.18125486373901367 +(PID.TID 0000.0001) User time: 0.16678488254547119 +(PID.TID 0000.0001) System time: 8.1824064254760742E-003 +(PID.TID 0000.0001) Wall clock time: 0.18933463096618652 (PID.TID 0000.0001) No. starts: 55 (PID.TID 0000.0001) No. stops: 55 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.6766419410705566E-002 -(PID.TID 0000.0001) System time: 7.0090293884277344E-003 -(PID.TID 0000.0001) Wall clock time: 3.3800363540649414E-002 +(PID.TID 0000.0001) User time: 2.8918504714965820E-002 +(PID.TID 0000.0001) System time: 8.2349777221679688E-003 +(PID.TID 0000.0001) Wall clock time: 3.7206411361694336E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.3764572143554688E-002 -(PID.TID 0000.0001) System time: 1.2460947036743164E-003 -(PID.TID 0000.0001) Wall clock time: 6.5029382705688477E-002 +(PID.TID 0000.0001) User time: 6.5351247787475586E-002 +(PID.TID 0000.0001) System time: 3.1375885009765625E-004 +(PID.TID 0000.0001) Wall clock time: 6.5682888031005859E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.7457138299942017 -(PID.TID 0000.0001) System time: 2.7597963809967041E-002 -(PID.TID 0000.0001) Wall clock time: 8.7740797996520996 +(PID.TID 0000.0001) User time: 8.9796695709228516 +(PID.TID 0000.0001) System time: 3.5180985927581787E-002 +(PID.TID 0000.0001) Wall clock time: 9.0177476406097412 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 17.208805203437805 -(PID.TID 0000.0001) System time: 1.8482506275177002E-002 -(PID.TID 0000.0001) Wall clock time: 17.233401298522949 +(PID.TID 0000.0001) User time: 17.656529784202576 +(PID.TID 0000.0001) System time: 1.4507770538330078E-004 +(PID.TID 0000.0001) Wall clock time: 17.658618688583374 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.38160896301269531 -(PID.TID 0000.0001) System time: 6.0796737670898438E-006 -(PID.TID 0000.0001) Wall clock time: 0.38167881965637207 +(PID.TID 0000.0001) User time: 0.38007009029388428 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.38011455535888672 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.4297885894775391 -(PID.TID 0000.0001) System time: 1.2011051177978516E-002 -(PID.TID 0000.0001) Wall clock time: 5.4425432682037354 +(PID.TID 0000.0001) User time: 5.4741843938827515 +(PID.TID 0000.0001) System time: 2.5987625122070312E-005 +(PID.TID 0000.0001) Wall clock time: 5.4746346473693848 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.58998656272888184 -(PID.TID 0000.0001) System time: 5.3197145462036133E-004 -(PID.TID 0000.0001) Wall clock time: 0.59064698219299316 +(PID.TID 0000.0001) User time: 0.59095513820648193 +(PID.TID 0000.0001) System time: 2.7400255203247070E-004 +(PID.TID 0000.0001) Wall clock time: 0.59135270118713379 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0314719676971436 -(PID.TID 0000.0001) System time: 1.7982721328735352E-004 -(PID.TID 0000.0001) Wall clock time: 1.0322830677032471 +(PID.TID 0000.0001) User time: 1.0528122186660767 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.0529410839080811 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.19647312164306641 -(PID.TID 0000.0001) System time: 3.4260153770446777E-003 -(PID.TID 0000.0001) Wall clock time: 0.19996166229248047 +(PID.TID 0000.0001) User time: 0.20000636577606201 +(PID.TID 0000.0001) System time: 2.2947788238525391E-005 +(PID.TID 0000.0001) Wall clock time: 0.20007467269897461 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.99823069572448730 -(PID.TID 0000.0001) System time: 9.2089176177978516E-004 -(PID.TID 0000.0001) Wall clock time: 0.99968004226684570 +(PID.TID 0000.0001) User time: 1.0060753822326660 +(PID.TID 0000.0001) System time: 9.9122524261474609E-005 +(PID.TID 0000.0001) Wall clock time: 1.0064108371734619 (PID.TID 0000.0001) No. starts: 100 (PID.TID 0000.0001) No. stops: 100 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 24.105115413665771 -(PID.TID 0000.0001) System time: 3.7648081779479980E-002 -(PID.TID 0000.0001) Wall clock time: 24.151645183563232 +(PID.TID 0000.0001) User time: 23.479744791984558 +(PID.TID 0000.0001) System time: 7.4429512023925781E-003 +(PID.TID 0000.0001) Wall clock time: 23.489918947219849 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.9243698120117188E-004 -(PID.TID 0000.0001) System time: 9.0599060058593750E-006 -(PID.TID 0000.0001) Wall clock time: 4.2915344238281250E-004 +(PID.TID 0000.0001) User time: 5.0973892211914062E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 4.9161911010742188E-004 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.58045578002929688 -(PID.TID 0000.0001) System time: 8.3094835281372070E-004 -(PID.TID 0000.0001) Wall clock time: 0.58319139480590820 +(PID.TID 0000.0001) User time: 0.57275986671447754 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 0.57651066780090332 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0100240707397461 -(PID.TID 0000.0001) System time: 8.1591010093688965E-003 -(PID.TID 0000.0001) Wall clock time: 1.0182843208312988 +(PID.TID 0000.0001) User time: 0.98810577392578125 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.98827385902404785 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15630316734313965 -(PID.TID 0000.0001) System time: 5.2180171012878418E-002 -(PID.TID 0000.0001) Wall clock time: 5.5091598033905029 +(PID.TID 0000.0001) User time: 9.9214792251586914E-002 +(PID.TID 0000.0001) System time: 3.0817985534667969E-002 +(PID.TID 0000.0001) Wall clock time: 0.13005256652832031 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.4650335311889648E-002 -(PID.TID 0000.0001) System time: 3.1577944755554199E-002 -(PID.TID 0000.0001) Wall clock time: 8.8330507278442383E-002 +(PID.TID 0000.0001) User time: 3.5894155502319336E-002 +(PID.TID 0000.0001) System time: 1.5942990779876709E-002 +(PID.TID 0000.0001) Wall clock time: 5.1852941513061523E-002 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 9.6145629882812500E-002 -(PID.TID 0000.0001) System time: 5.1983952522277832E-002 -(PID.TID 0000.0001) Wall clock time: 0.25853586196899414 +(PID.TID 0000.0001) User time: 6.6812515258789062E-002 +(PID.TID 0000.0001) System time: 2.8156995773315430E-002 +(PID.TID 0000.0001) Wall clock time: 0.11647295951843262 (PID.TID 0000.0001) No. starts: 3 (PID.TID 0000.0001) No. stops: 3 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 52.056419372558594 -(PID.TID 0000.0001) System time: 0.10889005661010742 -(PID.TID 0000.0001) Wall clock time: 52.221603870391846 +(PID.TID 0000.0001) User time: 51.224884033203125 +(PID.TID 0000.0001) System time: 9.9917888641357422E-002 +(PID.TID 0000.0001) Wall clock time: 51.325607061386108 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.7301101684570312 -(PID.TID 0000.0001) System time: 5.1981091499328613E-002 -(PID.TID 0000.0001) Wall clock time: 1.7822539806365967 +(PID.TID 0000.0001) User time: 1.8443679809570312 +(PID.TID 0000.0001) System time: 5.5684804916381836E-002 +(PID.TID 0000.0001) Wall clock time: 1.9001088142395020 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 50.176841735839844 -(PID.TID 0000.0001) System time: 4.9998760223388672E-003 -(PID.TID 0000.0001) Wall clock time: 50.184705018997192 +(PID.TID 0000.0001) User time: 49.222614288330078 +(PID.TID 0000.0001) System time: 2.0426273345947266E-002 +(PID.TID 0000.0001) Wall clock time: 49.243802547454834 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 49.442863464355469 -(PID.TID 0000.0001) System time: 4.8096179962158203E-003 -(PID.TID 0000.0001) Wall clock time: 49.450445413589478 +(PID.TID 0000.0001) User time: 48.492336273193359 +(PID.TID 0000.0001) System time: 8.2924365997314453E-003 +(PID.TID 0000.0001) Wall clock time: 48.501329660415649 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.9474945068359375E-002 -(PID.TID 0000.0001) System time: 7.0333480834960938E-006 -(PID.TID 0000.0001) Wall clock time: 5.9497833251953125E-002 +(PID.TID 0000.0001) User time: 4.9480438232421875E-002 +(PID.TID 0000.0001) System time: 1.1863708496093750E-002 +(PID.TID 0000.0001) Wall clock time: 6.1344861984252930E-002 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4115,9 +4127,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 50586 +(PID.TID 0000.0001) // No. barriers = 50594 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 50586 +(PID.TID 0000.0001) // Total barrier spins = 50594 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_tap_adj.txt b/verification/global_ocean.cs32x15/results/output_tap_adj.txt new file mode 100644 index 0000000000..32d3e331dc --- /dev/null +++ b/verification/global_ocean.cs32x15/results/output_tap_adj.txt @@ -0,0 +1,4195 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 05:19:43 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 12 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 32 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 16 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 384 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 16 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 12 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 12, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: regular 6-facets Cube +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh =3.E5, +(PID.TID 0000.0001) >#- biharmonic Viscosity: 3.e15 is close to the stability limit with deltaTmom=20mn +(PID.TID 0000.0001) >#viscA4 =3.E15, +(PID.TID 0000.0001) > viscAr =1.E-3, +(PID.TID 0000.0001) > diffKhT=0., +(PID.TID 0000.0001) > diffK4T=0., +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0., +(PID.TID 0000.0001) > diffK4S=0., +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > ivdc_kappa=10., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > tempAdvScheme=30, +(PID.TID 0000.0001) > saltAdvScheme=30, +(PID.TID 0000.0001) > tempVertAdvScheme=30, +(PID.TID 0000.0001) > saltVertAdvScheme=30, +(PID.TID 0000.0001) > tempImplVertAdv=.TRUE., +(PID.TID 0000.0001) > saltImplVertAdv=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > select_rStar=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMinDr=20., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-9, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-14, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=72000, +(PID.TID 0000.0001) > nTimeSteps=5, +(PID.TID 0000.0001) > deltaTMom =1200., +(PID.TID 0000.0001) > deltaTtracer=86400., +(PID.TID 0000.0001) > deltaTFreeSurf=86400., +(PID.TID 0000.0001) > deltaTClock =86400., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > forcing_In_AB=.FALSE., +(PID.TID 0000.0001) > momDissip_In_AB=.FALSE., +(PID.TID 0000.0001) > pChkptFreq =311040000., +(PID.TID 0000.0001) > chkptFreq = 31104000., +(PID.TID 0000.0001) >#taveFreq =311040000., +(PID.TID 0000.0001) >#dumpFreq = 31104000., +(PID.TID 0000.0001) >#adjDumpFreq = 31104000., +(PID.TID 0000.0001) >#monitorFreq = 31104000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) ># 2yrs restoring timescale for salinity +(PID.TID 0000.0001) > tauSaltClimRelax = 62208000., +(PID.TID 0000.0001) > monitorFreq =1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > adjDumpFreq = 432000., +(PID.TID 0000.0001) > pickupStrictlyMatch=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCurvilinearGrid=.TRUE., +(PID.TID 0000.0001) > horizGridFile='grid_cs32', +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='bathy_Hmin50.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_T_cs_15k.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='lev_S_cs_15k.bin', +(PID.TID 0000.0001) > zonalWindFile ='trenberth_taux.bin', +(PID.TID 0000.0001) > meridWindFile ='trenberth_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile ='lev_surfT_cs_12m.bin', +(PID.TID 0000.0001) > saltClimFile ='lev_surfS_cs_12m.bin', +(PID.TID 0000.0001) > surfQnetFile ='shiQnet_cs32.bin', +(PID.TID 0000.0001) > EmPmRFile ='shiEmPR_cs32.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useEXF = .FALSE., +(PID.TID 0000.0001) > useTHSICE = .FALSE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC=.TRUE., +(PID.TID 0000.0001) > useGrdchk=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/cal compiled but not used ( useCAL = F ) + pkg/exf compiled but not used ( useEXF = F ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/seaice compiled but not used ( useSEAICE = F ) + pkg/thsice compiled but not used ( useThSIce = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseDYNAMICSswitchInAd = /* switch On/Off SEAICE Dyn in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFTswitchInAd= /* switch On/Off Free-Drift in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEapproxLevInAd = /* -1:SEAICE_FAKE, >0:other adjoint approximation */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># not clear why I have to comment this out, but the reference results have no bounds applied +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) >#revert to default 1 month +(PID.TID 0000.0001) ># lastinterval=7776000., +(PID.TID 0000.0001) > mult_test=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) ># iglopos = 6, +(PID.TID 0000.0001) ># jglopos = 17, +(PID.TID 0000.0001) ># kglopos = 1, +(PID.TID 0000.0001) > nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># this is xx_theta +(PID.TID 0000.0001) >#grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex =201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 1 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:12,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','oceFreez', +(PID.TID 0000.0001) > 'TRELAX ','SRELAX ', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:9,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','SALT ', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', +(PID.TID 0000.0001) ># 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +(PID.TID 0000.0001) ># fileName(3) = 'oceDiag', +(PID.TID 0000.0001) ># frequency(3) = 864000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,3) = 'ADJuvel ','ADJvvel ','ADJwvel ', +(PID.TID 0000.0001) > 'ADJtheta','ADJsalt ', +(PID.TID 0000.0001) > fileName(3) = 'adjDiag', +(PID.TID 0000.0001) ># frequency(3) = 311040000., +(PID.TID 0000.0001) > frequency(3) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,4) = 'ADJetan ','ADJqnet ','ADJempmr', +(PID.TID 0000.0001) > 'ADJtaux ','ADJtauy ', +(PID.TID 0000.0001) > fileName(4) = 'adjDiagSurf', +(PID.TID 0000.0001) ># frequency(4) = 311040000., +(PID.TID 0000.0001) > frequency(4) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) ># an example just to check the agreement with MONITOR output: +(PID.TID 0000.0001) > stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = -172800., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ oceTAUX oceTAUY TFLUX SFLUX oceFreez +(PID.TID 0000.0001) Fields: TRELAX SRELAX +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: UVEL VVEL WVEL PHIHYD VVELMASS UVELMASS WVELSQ THETA SALT +(PID.TID 0000.0001) Creating Output Stream: adjDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJuvel ADJvvel ADJwvel ADJtheta ADJsalt +(PID.TID 0000.0001) Creating Output Stream: adjDiagSurf +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJetan ADJqnet ADJempmr ADJtaux ADJtauy +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: -172800.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN UVEL VVEL WVEL THETA +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 2 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 3 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 4 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 5 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 6 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 7 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 8 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 9 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 10 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 11 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 12 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) %MON XC_max = 1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_min = -1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_mean = -1.4199289892029E-14 +(PID.TID 0000.0001) %MON XC_sd = 1.0355545336287E+02 +(PID.TID 0000.0001) %MON XG_max = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_min = -1.7708797161002E+02 +(PID.TID 0000.0001) %MON XG_mean = 1.8603515625000E+00 +(PID.TID 0000.0001) %MON XG_sd = 1.0357130300504E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DXV_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DXV_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON YC_max = 8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_min = -8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_mean = -2.3684757858670E-15 +(PID.TID 0000.0001) %MON YC_sd = 3.8676242969072E+01 +(PID.TID 0000.0001) %MON YG_max = 9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -4.1448326252673E-15 +(PID.TID 0000.0001) %MON YG_sd = 3.8676895860710E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DYC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DYF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DYF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DYG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DYG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DYU_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DYU_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DYU_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DYU_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON RA_max = 1.0479260248419E+11 +(PID.TID 0000.0001) %MON RA_min = 1.4019007022556E+10 +(PID.TID 0000.0001) %MON RA_mean = 8.2992246709265E+10 +(PID.TID 0000.0001) %MON RA_sd = 1.7509089299457E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAW_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAW_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAW_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAS_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAS_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAS_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.0484349334619E+11 +(PID.TID 0000.0001) %MON RAZ_min = 8.8317900612505E+09 +(PID.TID 0000.0001) %MON RAZ_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 1.7482297311044E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleCS_min = -9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleCS_mean = 3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleCS_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) %MON AngleSN_max = 9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleSN_min = -9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleSN_mean = -3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleSN_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 239366 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 389 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 367 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 384 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 5204 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 10408 +(PID.TID 0000.0001) ctrl-wet 8: atmos 10408 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 239366 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4420 4232 4206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4299 4112 4096 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 4222 4038 4023 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 4140 3960 3939 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 4099 3919 3893 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 4038 3856 3839 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 3995 3814 3795 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 3944 3756 3737 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3887 3699 3673 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3799 3605 3585 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3703 3502 3461 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3554 3338 3303 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3202 2910 2911 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2599 2296 2276 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 1621 1368 1334 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 239366 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 7680 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 005204 005084 004791 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 003115 002837 002945 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0003 0001 005620 005386 005384 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0004 0001 002470 002283 001983 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0005 0001 001306 000952 000953 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0006 0001 003476 003122 003082 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0007 0001 005619 005222 005403 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0008 0001 007482 007397 007429 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0009 0001 005900 005825 005686 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0010 0001 003678 003307 003317 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0011 0001 006008 005782 005796 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0012 0001 005644 005208 005302 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 218 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 80 oceTAUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 81 oceTAUY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 93 TFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 94 SFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 88 oceFreez +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 89 TRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 90 SRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 38 WVELSQ +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 114 ADJuvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 115 ADJvvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 116 ADJwvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 117 ADJtheta +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 118 ADJsalt +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 113 ADJetan +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 122 ADJqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 121 ADJempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 119 ADJtaux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 120 ADJtauy +(PID.TID 0000.0001) space allocated for all diagnostics: 227 levels +(PID.TID 0000.0001) set mate pointer for diag # 80 oceTAUX , Parms: UU U1 , mate: 81 +(PID.TID 0000.0001) set mate pointer for diag # 81 oceTAUY , Parms: VV U1 , mate: 80 +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 114 ADJuvel , Parms: UURA MR , mate: 115 +(PID.TID 0000.0001) set mate pointer for diag # 115 ADJvvel , Parms: VVRA MR , mate: 114 +(PID.TID 0000.0001) set mate pointer for diag # 119 ADJtaux , Parms: UU A U1 , mate: 120 +(PID.TID 0000.0001) set mate pointer for diag # 120 ADJtauy , Parms: VV A U1 , mate: 119 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiagSurf +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define 0 regions: +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) space allocated for all stats-diags: 61 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000072000.txt , unit= 9 +(PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 19 CS-corner Pts in the domain +(PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_mean = 3.3881317890172E-21 +(PID.TID 0000.0001) %MON fCori_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.6940658945086E-20 +(PID.TID 0000.0001) %MON fCoriG_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4580166994612E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 5.2407700865903E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.1514045869113E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.0375849106513E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.9156564154949553E-04 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 5.809016360175296E-07 (Area=3.6388673751E+14) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceQnet = /* balance net heat-flux on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceThetaClimRelax= /* balance SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBalanceEmPmR = /* balancing glob.mean EmPmR selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceSaltClimRelax= /* balance SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 1.000000000000000E-14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 8.640000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alph_AB = /* Adams-Bashforth-3 primary factor */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta_AB = /* Adams-Bashforth-3 secondary factor */ +(PID.TID 0000.0001) 4.166666666666667E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startFromPickupAB2= /* start from AB-2 pickup */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 72000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 72005 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 6.220800000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 6.221232000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 6.220800000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) radius_fromHorizGrid = /* sphere Radius of input horiz. grid */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -4.439521994760536E+01, /* I = 1 */ +(PID.TID 0000.0001) -4.295641272275883E+01, /* I = 2 */ +(PID.TID 0000.0001) -4.122055553388957E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.312205555338896E+02, /* I = 94 */ +(PID.TID 0000.0001) 1.329564127227588E+02, /* I = 95 */ +(PID.TID 0000.0001) 1.343952199476053E+02, /* I = 96 */ +(PID.TID 0000.0001) 4.635509675007168E+01, /* I = 97 */ +(PID.TID 0000.0001) 4.906731228843647E+01, /* I = 98 */ +(PID.TID 0000.0001) 5.178550688214704E+01, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.778001716525716E+02, /* I =190 */ +(PID.TID 0000.0001) -1.779288225675308E+02, /* I =191 */ +(PID.TID 0000.0001) -1.780367200854751E+02, /* I =192 */ +(PID.TID 0000.0001) 1.356047800523947E+02, /* I =193 */ +(PID.TID 0000.0001) 1.358367907661329E+02, /* I =194 */ +(PID.TID 0000.0001) 1.359720382181193E+02, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.340279617818807E+02, /* I =286 */ +(PID.TID 0000.0001) -1.341632092338671E+02, /* I =287 */ +(PID.TID 0000.0001) -1.343952199476053E+02, /* I =288 */ +(PID.TID 0000.0001) -8.812739148696656E+01, /* I =289 */ +(PID.TID 0000.0001) -8.820362659721324E+01, /* I =290 */ +(PID.TID 0000.0001) -8.826768106944316E+01, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.780017165257156E+01, /* I =382 */ +(PID.TID 0000.0001) 8.792882256753080E+01, /* I =383 */ +(PID.TID 0000.0001) 8.803672008547504E+01 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -3.497677942598243E+01, /* J = 1 */ +(PID.TID 0000.0001) -3.374005967394886E+01, /* J = 2 */ +(PID.TID 0000.0001) -3.220655175667454E+01, /* J = 3 */ +(PID.TID 0000.0001) -3.045756348838641E+01, /* J = 4 */ +(PID.TID 0000.0001) -2.853728129852918E+01, /* J = 5 */ +(PID.TID 0000.0001) -2.647426640173173E+01, /* J = 6 */ +(PID.TID 0000.0001) -2.428936657094636E+01, /* J = 7 */ +(PID.TID 0000.0001) -2.199915808312262E+01, /* J = 8 */ +(PID.TID 0000.0001) -1.961768597440146E+01, /* J = 9 */ +(PID.TID 0000.0001) -1.715743888281371E+01, /* J = 10 */ +(PID.TID 0000.0001) -1.462993396899330E+01, /* J = 11 */ +(PID.TID 0000.0001) -1.204608340464756E+01, /* J = 12 */ +(PID.TID 0000.0001) -9.416429130284818E+00, /* J = 13 */ +(PID.TID 0000.0001) -6.751293662992216E+00, /* J = 14 */ +(PID.TID 0000.0001) -4.060875511835959E+00, /* J = 15 */ +(PID.TID 0000.0001) -1.355307764409121E+00 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =190 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =194 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =286 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =289 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =382 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =190 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =194 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =286 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =289 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =290 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =382 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =194 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =286 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =287 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =288 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =290 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014246674484008E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008638765647886E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =190 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =194 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I =286 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =287 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =288 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =289 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =290 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =382 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013880313304323E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.011625828699101E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =194 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I =286 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =287 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =289 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014528555318499E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012281885409289E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =194 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =286 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =287 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013593857228136E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007982711627968E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =190 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =194 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I =286 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =287 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =290 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =382 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015922136961168E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008068453676764E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =194 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I =286 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =287 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015274890091515E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007409169495504E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =190 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =191 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I =192 */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I =193 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =194 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I =286 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =287 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I =288 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I =289 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =290 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =382 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =383 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.203683527776127E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =190 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =191 */ +(PID.TID 0000.0001) 9.085012105606993E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I =194 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I =286 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I =287 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I =288 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =289 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I =290 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =382 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =383 */ +(PID.TID 0000.0001) 9.085012105606993E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.071447638299399E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =190 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =191 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =194 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =286 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =287 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =288 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =289 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =290 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =382 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =383 */ +(PID.TID 0000.0001) 9.083293515008307E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.801790263324359E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.571243814189866E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.269930713599979E+10, /* J = 6 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.014205907741882E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.484854821847499E+10, /* J = 10 */ +(PID.TID 0000.0001) 7.898934631431560E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.254500894894537E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.549360686473492E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.781353403175085E+10, /* J = 14 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.049530583086168E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.638867375081599E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hasWetCSCorners = /* Domain contains CS corners (True/False) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72000 +(PID.TID 0000.0001) %MON time_secondsf = 6.2208000000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2249308874653E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6181619580030E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4386344596806E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9907976973986E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8581345364806E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8639442347386E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8803502100767E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8914430325890E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2021379389426E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1214215649781E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7346247050018E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2519444280963E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0398186384005E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2638380334010E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0639130168720E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0315548206230E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0412092606640E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3594270097563E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8382293649569E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6457320450043E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0925958904704E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9091312053343E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5711433204032E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6589242567180E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1386265990462E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8383410676806E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772068623474E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3145226117181E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.0693627005697E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.6211611868841E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0410376912710E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2329247921290E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1327998988989E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.4323506322358E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4892781143428E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.5159107438040E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -3.8956966288612E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.5480383395885E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.3114393556995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.9305960402537E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3950131228473E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3743384707768E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.6816469815204E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.5671701728584E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1692195603793E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5609847114589E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6551124574102E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3510960005834E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7811655460464E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0700637549387E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4067882101803E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.1843904755479E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2148454936551E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259517155846E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469227166E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812074522595E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6885454704508E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4400775280524E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.68023878714095E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 64 +(PID.TID 0000.0001) cg2d_last_res = 5.58683552522706E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72001 +(PID.TID 0000.0001) %MON time_secondsf = 6.2208864000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2133655120996E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6190330502946E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4468787832318E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9917645600647E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8642723390166E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8614969421301E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8756253548200E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8930781602901E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2019850590904E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1422826272405E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7424330934384E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2484862162875E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0148993675111E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2634847209014E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0838534695572E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0470225922697E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0629060515043E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1589699713370E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8549171120240E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6740462640007E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0937492864893E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0051002156293E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9091886517348E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710983067973E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6413868816426E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1386656529517E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8383740720343E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069023557E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3143476611334E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.0251565841648E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5344826813507E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1502574251756E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2145822391644E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1565376981455E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.1640148928199E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4760613571392E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0293190974520E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.5478806648627E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3937396831278E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0509729664672E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5281098043587E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2691992401999E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3684501518858E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5153512230531E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3373863441584E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1102262955735E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0812652325363E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4292349384178E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1558189746286E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5950203765915E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7258521830179E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4292349384178E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7827089476881E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0534798017586E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4061962891933E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.1961273457322E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2248991447641E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516806869E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469220072E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812073162531E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.3139703452604E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2483991774886E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.26182951652446E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 64 +(PID.TID 0000.0001) cg2d_last_res = 5.39325018591159E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72002 +(PID.TID 0000.0001) %MON time_secondsf = 6.2209728000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1899543513961E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6178232244521E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4386344596806E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9890083389511E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8619309107450E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8681676266081E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8744599945261E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8865408201906E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2016197449285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1210131724425E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7405826603062E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2510217722701E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0366940269113E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2639872138669E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0605972538650E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0365488858011E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0489391941864E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.7299861205590E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8361815399456E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6501884672292E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0948569140590E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0092219769229E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9092460682667E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710602606720E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6295808781658E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387060077504E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384079578526E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069353871E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3141711854060E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9901339702912E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5335380716717E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1405338853096E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2158050760287E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1544877109799E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.1737635676168E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4755808644372E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0607770640355E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.5044017291293E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3947166868600E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0524826999043E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5549422200851E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2770782795392E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3688427064785E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5192943168452E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3392164091250E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1069395163719E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0726800351923E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3789449428529E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1525137917814E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5869545992616E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6803149576492E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3789449428529E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7783098524525E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0487490178773E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4063874235253E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.1931492245839E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2188021634864E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516743743E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469211163E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812073652347E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6957708387288E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4613335922103E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.16204655988238E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 +(PID.TID 0000.0001) cg2d_last_res = 5.63275420217836E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72003 +(PID.TID 0000.0001) %MON time_secondsf = 6.2210592000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1716084923417E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6173450215665E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4400085136058E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9885647869818E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8462230692087E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8728728618647E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8712408840580E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8819348948767E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2017980722965E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1189280944993E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7425549562990E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2506893781164E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0361168984255E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2644594893895E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0573338554735E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0388197365466E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0522690634202E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8724296742724E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8352222485647E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6514535111421E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0959186752849E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0136454252073E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9093036758847E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710299886767E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6157541267114E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387452758909E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384424559819E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772069741443E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3139855654685E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9538894703908E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5325934619927E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1308103454435E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2170279128930E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1525031618572E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.1847271762860E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4751003717351E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.0922350306190E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.4609227933959E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.3970406478471E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0564087338622E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.5817746358114E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2849573188785E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3692352610712E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5242720295677E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3430754301775E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0978614263626E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0818177952940E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3909343268016E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1433837838708E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5955515596326E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6911715879057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3909343268016E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7776021058134E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0380603626313E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4071359914305E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.1970434092135E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2200257391326E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516612531E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469206482E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072816314E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0263478196919E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4850436420889E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.96658865268473E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 +(PID.TID 0000.0001) cg2d_last_res = 4.90955559292357E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72004 +(PID.TID 0000.0001) %MON time_secondsf = 6.2211456000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1570007702562E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6168937448163E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4317641900547E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9879689894816E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8399835747975E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8746403549603E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8677650418174E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8783424249094E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2015633438107E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1165791463594E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7442342151261E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2502647213555E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0354301692567E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2646088183848E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0541127938387E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0425450194794E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0548809237651E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.7133873663008E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8337213006995E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6532910787618E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0969370038839E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0183541212217E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9093617574487E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5710069512675E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6094102831887E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1387829995644E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8384775698199E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772070152259E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3137979133660E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9376593248892E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5316488523137E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1210868055774E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2182507497573E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1505843893838E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.1968961974738E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7256318706594E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4746198790331E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1236929972025E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.4174438576624E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4007100989353E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0627372714610E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6086070515377E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.2928363582178E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3696278156640E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5302823094907E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3489534074143E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0880591304179E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0896001594586E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4003409669403E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1335256359550E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6028712122824E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6996872382378E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4003409669403E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7766515135111E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0270343994605E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4070501749942E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2014015304671E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2222297255627E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516403386E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469223252E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072565044E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8538268792198E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4766638303017E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.04010891451962E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 62 +(PID.TID 0000.0001) cg2d_last_res = 5.05624576832133E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 72005 +(PID.TID 0000.0001) %MON time_secondsf = 6.2212320000000E+09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.1425377205643E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.6163081026433E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4290160822043E-14 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9872262682672E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.8312951231813E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8763539708194E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8640511923386E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8754081495740E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2013954659895E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1138141319002E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7452974951525E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2497580393048E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0340296087475E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2648249095162E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0506294776384E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0468577257698E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.0569267113831E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1308612589859E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8324712251396E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6556156424327E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0979141204939E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0233045989875E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.9094200077766E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5709949317998E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5984307053582E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 4.1388185924147E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 1.8385132906266E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4772070576670E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3136309401449E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.9027651596287E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5307042426348E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1113632657113E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2194735866217E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1487317231679E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.2102601790904E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.6494447208479E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5362614137596E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.5159678806086E-21 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.4051723601802E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2276157049243E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.4741393863310E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.1551509637860E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = -4.3739649219290E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 6.4057227278753E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.0714462929353E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.6354394672640E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -3.3007153975572E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.3700203702567E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 7.5373226864996E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.3568352349763E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0775854379166E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.0945274352149E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.4077126133498E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1229924543645E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6075059001203E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7063572778678E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.4077126133498E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.7754666375049E-04 +(PID.TID 0000.0001) %MON ke_max = 4.0156472604118E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4071166277397E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3398024453628E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.2058369425432E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.2245058273221E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -2.0549865324846E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.5259516265911E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.4783469196317E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.2812072400250E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.8333596078792E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4621923210333E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000072000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 72005 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319059D+05 + --> objf_test(bi,bj) = 0.925748325923490D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594451D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117793D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455277D+04 + --> objf_test(bi,bj) = 0.683247511182580D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321234D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-19 1.78189962772662E-04 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -1.30104260698261E-18 1.55588377850507E-03 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -1.19262238973405E-18 2.60385267102966E-03 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = 2.81892564846231E-18 2.97812613610585E-03 + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -8.67361737988404E-19 2.73831338873332E-03 + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319059D+05 + --> objf_test(bi,bj) = 0.925748325923490D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594451D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117793D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455277D+04 + --> objf_test(bi,bj) = 0.683247511182580D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321234D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 9.62450968703671E+04 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1 55522 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 1 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 1 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834808E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963528989786E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643505683E+00 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26314508222955E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643372537197D+05 + --> objf_test(bi,bj) = 0.925748325937274D+04 + --> objf_test(bi,bj) = 0.646782341056008D+04 + --> objf_test(bi,bj) = 0.425114891592850D+04 + --> objf_test(bi,bj) = 0.468651159947307D+04 + --> objf_test(bi,bj) = 0.131971832117306D+05 + --> objf_test(bi,bj) = 0.111682590494812D+05 + --> objf_test(bi,bj) = 0.109410446656234D+05 + --> objf_test(bi,bj) = 0.691550498459337D+04 + --> objf_test(bi,bj) = 0.683247680478209D+04 + --> objf_test(bi,bj) = 0.520040324674087D+04 + --> objf_test(bi,bj) = 0.606296259734182D+04 +(PID.TID 0000.0001) local fc = 0.962451389993475D+05 +(PID.TID 0000.0001) global fc = 0.962451389993475D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451389993475E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28169923859646E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963529019077E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643604795E+00 + cg2d: Sum(rhs),rhsMax = -9.43600753089413E-12 4.26314508391993E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642609186992D+05 + --> objf_test(bi,bj) = 0.925748325909704D+04 + --> objf_test(bi,bj) = 0.646782341073247D+04 + --> objf_test(bi,bj) = 0.425114891596055D+04 + --> objf_test(bi,bj) = 0.468651159948100D+04 + --> objf_test(bi,bj) = 0.131971832118282D+05 + --> objf_test(bi,bj) = 0.111682590495131D+05 + --> objf_test(bi,bj) = 0.109410446655825D+05 + --> objf_test(bi,bj) = 0.691550498451220D+04 + --> objf_test(bi,bj) = 0.683247342113420D+04 + --> objf_test(bi,bj) = 0.520040324663511D+04 + --> objf_test(bi,bj) = 0.606295817145302D+04 +(PID.TID 0000.0001) local fc = 0.962450548546287D+05 +(PID.TID 0000.0001) global fc = 0.962450548546287D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450548546287E+04 +grad-res ------------------------------- + grad-res 0 1 1 1 1 1 1 1 9.62450968704E+04 9.62451389993E+04 9.62450548546E+04 + grad-res 0 1 1 1 0 1 1 1 4.20725615465E+00 4.20723593998E+00 4.80471770126E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.20725615465348E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.20723593997536E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 2 55522 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 + ph-grd -->hit<-- 2 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 2 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923848898E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963528967151E+00 + cg2d: Sum(rhs),rhsMax = -9.49285094975494E-12 4.26825643475361E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26314508164779E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643378706429D+05 + --> objf_test(bi,bj) = 0.925748325947092D+04 + --> objf_test(bi,bj) = 0.646782341049779D+04 + --> objf_test(bi,bj) = 0.425114891591706D+04 + --> objf_test(bi,bj) = 0.468651159946984D+04 + --> objf_test(bi,bj) = 0.131971832116948D+05 + --> objf_test(bi,bj) = 0.111682590494701D+05 + --> objf_test(bi,bj) = 0.109410446656374D+05 + --> objf_test(bi,bj) = 0.691550498462186D+04 + --> objf_test(bi,bj) = 0.683247522814915D+04 + --> objf_test(bi,bj) = 0.520040324677840D+04 + --> objf_test(bi,bj) = 0.606296159023752D+04 +(PID.TID 0000.0001) local fc = 0.962451370325877D+05 +(PID.TID 0000.0001) global fc = 0.962451370325877D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451370325877E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923845654E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.26963529041537E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26825643635290E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508450758E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642603170864D+05 + --> objf_test(bi,bj) = 0.925748325899883D+04 + --> objf_test(bi,bj) = 0.646782341079480D+04 + --> objf_test(bi,bj) = 0.425114891597197D+04 + --> objf_test(bi,bj) = 0.468651159948426D+04 + --> objf_test(bi,bj) = 0.131971832118641D+05 + --> objf_test(bi,bj) = 0.111682590495243D+05 + --> objf_test(bi,bj) = 0.109410446655686D+05 + --> objf_test(bi,bj) = 0.691550498448368D+04 + --> objf_test(bi,bj) = 0.683247499554683D+04 + --> objf_test(bi,bj) = 0.520040324659764D+04 + --> objf_test(bi,bj) = 0.606295917753553D+04 +(PID.TID 0000.0001) local fc = 0.962450568334570D+05 +(PID.TID 0000.0001) global fc = 0.962450568334570D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450568334570E+04 +grad-res ------------------------------- + grad-res 0 2 2 1 1 1 1 1 9.62450968704E+04 9.62451370326E+04 9.62450568335E+04 + grad-res 0 2 2 2 0 1 1 1 4.00967431021E+00 4.00995653617E+00 -7.03862575169E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 4.00967431020573E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 4.00995653617429E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 3 55522 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2 3 + ph-grd -->hit<-- 3 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 3 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834804E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963528960830E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643444512E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508111679E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643321737231D+05 + --> objf_test(bi,bj) = 0.925748325954393D+04 + --> objf_test(bi,bj) = 0.646782341044705D+04 + --> objf_test(bi,bj) = 0.425114891590794D+04 + --> objf_test(bi,bj) = 0.468651159946771D+04 + --> objf_test(bi,bj) = 0.131971832116658D+05 + --> objf_test(bi,bj) = 0.111682590494606D+05 + --> objf_test(bi,bj) = 0.109410446656495D+05 + --> objf_test(bi,bj) = 0.691550498464398D+04 + --> objf_test(bi,bj) = 0.683247511589005D+04 + --> objf_test(bi,bj) = 0.520040324680865D+04 + --> objf_test(bi,bj) = 0.606296088558872D+04 +(PID.TID 0000.0001) local fc = 0.962451305187970D+05 +(PID.TID 0000.0001) global fc = 0.962451305187970D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451305187970E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.86233317235019E-12 4.28169923859372E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529048258E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26825643666237E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.26314508503709E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642660210549D+05 + --> objf_test(bi,bj) = 0.925748325892583D+04 + --> objf_test(bi,bj) = 0.646782341084554D+04 + --> objf_test(bi,bj) = 0.425114891598100D+04 + --> objf_test(bi,bj) = 0.468651159948632D+04 + --> objf_test(bi,bj) = 0.131971832118930D+05 + --> objf_test(bi,bj) = 0.111682590495339D+05 + --> objf_test(bi,bj) = 0.109410446655564D+05 + --> objf_test(bi,bj) = 0.691550498446156D+04 + --> objf_test(bi,bj) = 0.683247510776259D+04 + --> objf_test(bi,bj) = 0.520040324656738D+04 + --> objf_test(bi,bj) = 0.606295988160210D+04 +(PID.TID 0000.0001) local fc = 0.962450633536705D+05 +(PID.TID 0000.0001) global fc = 0.962450633536705D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450633536705E+04 +grad-res ------------------------------- + grad-res 0 3 3 1 1 1 1 1 9.62450968704E+04 9.62451305188E+04 9.62450633537E+04 + grad-res 0 3 3 3 0 1 1 1 3.35835980953E+00 3.35825632210E+00 3.08148726688E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.35835980952880E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.35825632209890E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 4 55522 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 3 4 + ph-grd -->hit<-- 4 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.28169923829328E+00 + cg2d: Sum(rhs),rhsMax = -9.52127265918534E-12 4.26963528952197E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26825643418973E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.26314508067312E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643265415474D+05 + --> objf_test(bi,bj) = 0.925748325960757D+04 + --> objf_test(bi,bj) = 0.646782341040589D+04 + --> objf_test(bi,bj) = 0.425114891590007D+04 + --> objf_test(bi,bj) = 0.468651159946554D+04 + --> objf_test(bi,bj) = 0.131971832116433D+05 + --> objf_test(bi,bj) = 0.111682590494530D+05 + --> objf_test(bi,bj) = 0.109410446656582D+05 + --> objf_test(bi,bj) = 0.691550498466291D+04 + --> objf_test(bi,bj) = 0.683247511172393D+04 + --> objf_test(bi,bj) = 0.520040324683352D+04 + --> objf_test(bi,bj) = 0.606296053020935D+04 +(PID.TID 0000.0001) local fc = 0.962451245271106D+05 +(PID.TID 0000.0001) global fc = 0.962451245271106D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451245271106E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923864340E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529056705E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643691576E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26314508548041E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642716549200D+05 + --> objf_test(bi,bj) = 0.925748325886229D+04 + --> objf_test(bi,bj) = 0.646782341088669D+04 + --> objf_test(bi,bj) = 0.425114891598887D+04 + --> objf_test(bi,bj) = 0.468651159948860D+04 + --> objf_test(bi,bj) = 0.131971832119155D+05 + --> objf_test(bi,bj) = 0.111682590495416D+05 + --> objf_test(bi,bj) = 0.109410446655477D+05 + --> objf_test(bi,bj) = 0.691550498444261D+04 + --> objf_test(bi,bj) = 0.683247511192761D+04 + --> objf_test(bi,bj) = 0.520040324654252D+04 + --> objf_test(bi,bj) = 0.606296023664371D+04 +(PID.TID 0000.0001) local fc = 0.962450693467077D+05 +(PID.TID 0000.0001) global fc = 0.962450693467077D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450693467077E+04 +grad-res ------------------------------- + grad-res 0 4 4 1 1 1 1 1 9.62450968704E+04 9.62451245271E+04 9.62450693467E+04 + grad-res 0 4 4 4 0 1 1 1 2.75902173719E+00 2.75902014619E+00 5.76655439732E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.75902173719112E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.75902014618623E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 9.6245096870367E+04 9.6245138999347E+04 9.6245054854629E+04 +(PID.TID 0000.0001) grdchk output (g): 1 4.2072359399754E+00 4.2072561546535E+00 4.8047177012567E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 9.6245096870367E+04 9.6245137032588E+04 9.6245056833457E+04 +(PID.TID 0000.0001) grdchk output (g): 2 4.0099565361743E+00 4.0096743102057E+00 -7.0386257516875E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 9.6245096870367E+04 9.6245130518797E+04 9.6245063353671E+04 +(PID.TID 0000.0001) grdchk output (g): 3 3.3582563220989E+00 3.3583598095288E+00 3.0814872668761E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 9.6245096870367E+04 9.6245124527111E+04 9.6245069346708E+04 +(PID.TID 0000.0001) grdchk output (g): 4 2.7590201461862E+00 2.7590217371911E+00 5.7665543973240E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.8494153674645E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 44.271581887034699 +(PID.TID 0000.0001) System time: 5.2107550103683025 +(PID.TID 0000.0001) Wall clock time: 49.748782873153687 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.13248999323695898 +(PID.TID 0000.0001) System time: 3.8562999572604895E-002 +(PID.TID 0000.0001) Wall clock time: 0.17261886596679688 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 23.874220162630081 +(PID.TID 0000.0001) System time: 2.1126039326190948E-002 +(PID.TID 0000.0001) Wall clock time: 23.961232662200928 +(PID.TID 0000.0001) No. starts: 50 +(PID.TID 0000.0001) No. stops: 50 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.74604144692420959 +(PID.TID 0000.0001) System time: 2.2652745246887207E-004 +(PID.TID 0000.0001) Wall clock time: 0.74895954132080078 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0896644592285156E-002 +(PID.TID 0000.0001) System time: 1.5005469322204590E-005 +(PID.TID 0000.0001) Wall clock time: 5.1221370697021484E-002 +(PID.TID 0000.0001) No. starts: 15 +(PID.TID 0000.0001) No. stops: 15 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12058961391448975 +(PID.TID 0000.0001) System time: 3.7428736686706543E-003 +(PID.TID 0000.0001) Wall clock time: 0.12490391731262207 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 8.2373797893524170E-002 +(PID.TID 0000.0001) System time: 2.6937946677207947E-003 +(PID.TID 0000.0001) Wall clock time: 8.5491180419921875E-002 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.17227721214294434 +(PID.TID 0000.0001) System time: 6.2694400548934937E-004 +(PID.TID 0000.0001) Wall clock time: 0.17349219322204590 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7062475681304932E-002 +(PID.TID 0000.0001) System time: 2.5796890258789062E-004 +(PID.TID 0000.0001) Wall clock time: 2.7425289154052734E-002 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.2508398592472076 +(PID.TID 0000.0001) System time: 5.7697296142578125E-005 +(PID.TID 0000.0001) Wall clock time: 4.2624669075012207 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.0412757992744446 +(PID.TID 0000.0001) System time: 1.0520219802856445E-004 +(PID.TID 0000.0001) Wall clock time: 7.0604822635650635 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.14748656749725342 +(PID.TID 0000.0001) System time: 9.7692012786865234E-005 +(PID.TID 0000.0001) Wall clock time: 0.14807224273681641 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8434599637985229 +(PID.TID 0000.0001) System time: 9.1981887817382812E-004 +(PID.TID 0000.0001) Wall clock time: 1.8493895530700684 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.25158017873764038 +(PID.TID 0000.0001) System time: 2.3508071899414062E-004 +(PID.TID 0000.0001) Wall clock time: 0.25258588790893555 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.38866317272186279 +(PID.TID 0000.0001) System time: 1.9073486328125000E-005 +(PID.TID 0000.0001) Wall clock time: 0.39000082015991211 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.9592933654785156E-002 +(PID.TID 0000.0001) System time: 1.0967254638671875E-005 +(PID.TID 0000.0001) Wall clock time: 8.9909076690673828E-002 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.55982273817062378 +(PID.TID 0000.0001) System time: 8.5830688476562500E-005 +(PID.TID 0000.0001) Wall clock time: 0.56173396110534668 +(PID.TID 0000.0001) No. starts: 110 +(PID.TID 0000.0001) No. stops: 110 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.9262729883193970 +(PID.TID 0000.0001) System time: 9.8521262407302856E-004 +(PID.TID 0000.0001) Wall clock time: 9.9534175395965576 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1703710556030273E-004 +(PID.TID 0000.0001) System time: 1.0058283805847168E-006 +(PID.TID 0000.0001) Wall clock time: 3.4689903259277344E-004 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.17045646905899048 +(PID.TID 0000.0001) System time: 4.7683715820312500E-006 +(PID.TID 0000.0001) Wall clock time: 0.17105126380920410 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.35501581430435181 +(PID.TID 0000.0001) System time: 1.8849968910217285E-005 +(PID.TID 0000.0001) Wall clock time: 0.35613656044006348 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.9590587615966797E-002 +(PID.TID 0000.0001) System time: 7.8878104686737061E-003 +(PID.TID 0000.0001) Wall clock time: 5.7955026626586914E-002 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6669929027557373E-002 +(PID.TID 0000.0001) System time: 5.9709846973419189E-003 +(PID.TID 0000.0001) Wall clock time: 2.2789955139160156E-002 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.2903671264648438E-002 +(PID.TID 0000.0001) System time: 3.9858818054199219E-003 +(PID.TID 0000.0001) Wall clock time: 3.7142038345336914E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.2243728637695312E-002 +(PID.TID 0000.0001) System time: 2.8729438781738281E-003 +(PID.TID 0000.0001) Wall clock time: 3.5374879837036133E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 22.428234100341797 +(PID.TID 0000.0001) System time: 0.10023927688598633 +(PID.TID 0000.0001) Wall clock time: 22.626114130020142 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.1187477111816406 +(PID.TID 0000.0001) System time: 7.3564529418945312E-002 +(PID.TID 0000.0001) Wall clock time: 1.1992907524108887 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 21.226501464843750 +(PID.TID 0000.0001) System time: 9.7103118896484375E-003 +(PID.TID 0000.0001) Wall clock time: 21.294141054153442 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 21.197265625000000 +(PID.TID 0000.0001) System time: 5.0683021545410156E-003 +(PID.TID 0000.0001) Wall clock time: 21.260004997253418 +(PID.TID 0000.0001) No. starts: 45 +(PID.TID 0000.0001) No. stops: 45 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 2.8877258300781250E-002 +(PID.TID 0000.0001) System time: 4.6238899230957031E-003 +(PID.TID 0000.0001) Wall clock time: 3.3768177032470703E-002 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000007 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000008 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000009 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000010 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000011 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000012 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 56088 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 56088 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_tap_tlm.txt b/verification/global_ocean.cs32x15/results/output_tap_tlm.txt new file mode 100644 index 0000000000..0e2251f022 --- /dev/null +++ b/verification/global_ocean.cs32x15/results/output_tap_tlm.txt @@ -0,0 +1,3788 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 02:44:33 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > useCubedSphereExchange=.TRUE., +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 12 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 32 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 16 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 384 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 16 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 12 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 12, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) W2_READPARMS: file data.exch2 not found +(PID.TID 0000.0001) => use W2_EXCH2 default: regular 6-facets Cube +(PID.TID 0000.0001) W2_useE2ioLayOut= T ;/* T: use Exch2 glob IO map; F: use model default */ +(PID.TID 0000.0001) W2_mapIO = -1 ; /* select option for Exch2 global-IO map */ +(PID.TID 0000.0001) W2_printMsg = -1 ; /* select option for printing information */ +(PID.TID 0000.0001) ===== Start setting W2 TOPOLOGY: +(PID.TID 0000.0001) write to log-file: w2_tile_topology.0000.log +(PID.TID 0000.0001) ===== setting W2 TOPOLOGY: Done +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh =3.E5, +(PID.TID 0000.0001) >#- biharmonic Viscosity: 3.e15 is close to the stability limit with deltaTmom=20mn +(PID.TID 0000.0001) >#viscA4 =3.E15, +(PID.TID 0000.0001) > viscAr =1.E-3, +(PID.TID 0000.0001) > diffKhT=0., +(PID.TID 0000.0001) > diffK4T=0., +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0., +(PID.TID 0000.0001) > diffK4S=0., +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > ivdc_kappa=10., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > tempAdvScheme=30, +(PID.TID 0000.0001) > saltAdvScheme=30, +(PID.TID 0000.0001) > tempVertAdvScheme=30, +(PID.TID 0000.0001) > saltVertAdvScheme=30, +(PID.TID 0000.0001) > tempImplVertAdv=.TRUE., +(PID.TID 0000.0001) > saltImplVertAdv=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > select_rStar=2, +(PID.TID 0000.0001) > nonlinFreeSurf=4, +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMinDr=20., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-9, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-14, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=72000, +(PID.TID 0000.0001) > nTimeSteps=5, +(PID.TID 0000.0001) > deltaTMom =1200., +(PID.TID 0000.0001) > deltaTtracer=86400., +(PID.TID 0000.0001) > deltaTFreeSurf=86400., +(PID.TID 0000.0001) > deltaTClock =86400., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > forcing_In_AB=.FALSE., +(PID.TID 0000.0001) > momDissip_In_AB=.FALSE., +(PID.TID 0000.0001) > pChkptFreq =311040000., +(PID.TID 0000.0001) > chkptFreq = 31104000., +(PID.TID 0000.0001) >#taveFreq =311040000., +(PID.TID 0000.0001) >#dumpFreq = 31104000., +(PID.TID 0000.0001) >#adjDumpFreq = 31104000., +(PID.TID 0000.0001) >#monitorFreq = 31104000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) ># 2yrs restoring timescale for salinity +(PID.TID 0000.0001) > tauSaltClimRelax = 62208000., +(PID.TID 0000.0001) > monitorFreq =1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > adjDumpFreq = 432000., +(PID.TID 0000.0001) > pickupStrictlyMatch=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCurvilinearGrid=.TRUE., +(PID.TID 0000.0001) > horizGridFile='grid_cs32', +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='bathy_Hmin50.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_T_cs_15k.bin', +(PID.TID 0000.0001) > hydrogSaltFile ='lev_S_cs_15k.bin', +(PID.TID 0000.0001) > zonalWindFile ='trenberth_taux.bin', +(PID.TID 0000.0001) > meridWindFile ='trenberth_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile ='lev_surfT_cs_12m.bin', +(PID.TID 0000.0001) > saltClimFile ='lev_surfS_cs_12m.bin', +(PID.TID 0000.0001) > surfQnetFile ='shiQnet_cs32.bin', +(PID.TID 0000.0001) > EmPmRFile ='shiEmPR_cs32.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useEXF = .FALSE., +(PID.TID 0000.0001) > useTHSICE = .FALSE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC=.TRUE., +(PID.TID 0000.0001) > useGrdchk=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/cal compiled but not used ( useCAL = F ) + pkg/exf compiled but not used ( useEXF = F ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/seaice compiled but not used ( useSEAICE = F ) + pkg/thsice compiled but not used ( useThSIce = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/exch2 compiled and used + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseDYNAMICSswitchInAd = /* switch On/Off SEAICE Dyn in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFTswitchInAd= /* switch On/Off Free-Drift in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEapproxLevInAd = /* -1:SEAICE_FAKE, >0:other adjoint approximation */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># not clear why I have to comment this out, but the reference results have no bounds applied +(PID.TID 0000.0001) >#xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,4) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) >#revert to default 1 month +(PID.TID 0000.0001) ># lastinterval=7776000., +(PID.TID 0000.0001) > mult_test=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) ># iglopos = 6, +(PID.TID 0000.0001) ># jglopos = 17, +(PID.TID 0000.0001) ># kglopos = 1, +(PID.TID 0000.0001) > nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># this is xx_theta +(PID.TID 0000.0001) >#grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex =201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 1 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:12,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'oceTAUX ','oceTAUY ','TFLUX ','SFLUX ','oceFreez', +(PID.TID 0000.0001) > 'TRELAX ','SRELAX ', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:9,2) = 'UVEL ','VVEL ','WVEL ','PHIHYD ', +(PID.TID 0000.0001) > 'VVELMASS','UVELMASS','WVELSQ ', +(PID.TID 0000.0001) > 'THETA ','SALT ', +(PID.TID 0000.0001) ># do not specify levels => all levels are selected +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># fields(1:6,3) = 'DRHODR ','RHOAnoma','CONVADJ ', +(PID.TID 0000.0001) ># 'GM_Kwx ','GM_Kwy ','GM_Kwz ', +(PID.TID 0000.0001) ># levels(1,3) = 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13., +(PID.TID 0000.0001) ># fileName(3) = 'oceDiag', +(PID.TID 0000.0001) ># frequency(3) = 864000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,3) = 'ADJuvel ','ADJvvel ','ADJwvel ', +(PID.TID 0000.0001) > 'ADJtheta','ADJsalt ', +(PID.TID 0000.0001) > fileName(3) = 'adjDiag', +(PID.TID 0000.0001) ># frequency(3) = 311040000., +(PID.TID 0000.0001) > frequency(3) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,4) = 'ADJetan ','ADJqnet ','ADJempmr', +(PID.TID 0000.0001) > 'ADJtaux ','ADJtauy ', +(PID.TID 0000.0001) > fileName(4) = 'adjDiagSurf', +(PID.TID 0000.0001) ># frequency(4) = 311040000., +(PID.TID 0000.0001) > frequency(4) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) ># an example just to check the agreement with MONITOR output: +(PID.TID 0000.0001) > stat_fields(1:5,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', 'THETA ', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = -172800., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ oceTAUX oceTAUY TFLUX SFLUX oceFreez +(PID.TID 0000.0001) Fields: TRELAX SRELAX +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: UVEL VVEL WVEL PHIHYD VVELMASS UVELMASS WVELSQ THETA SALT +(PID.TID 0000.0001) Creating Output Stream: adjDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJuvel ADJvvel ADJwvel ADJtheta ADJsalt +(PID.TID 0000.0001) Creating Output Stream: adjDiagSurf +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: ADJetan ADJqnet ADJempmr ADJtaux ADJtauy +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: -172800.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN UVEL VVEL WVEL THETA +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) tile: 1 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 2 ; Read from file grid_cs32.face001.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 3 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 4 ; Read from file grid_cs32.face002.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 5 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 6 ; Read from file grid_cs32.face003.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 7 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 8 ; Read from file grid_cs32.face004.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 9 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 10 ; Read from file grid_cs32.face005.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 11 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) tile: 12 ; Read from file grid_cs32.face006.bin +(PID.TID 0000.0001) => xC yC dxF dyF rA xG yG dxV dyU rAz dxC dyC rAw rAs dxG dyG AngleCS AngleSN +(PID.TID 0000.0001) %MON XC_max = 1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_min = -1.7854351589505E+02 +(PID.TID 0000.0001) %MON XC_mean = -1.4199289892029E-14 +(PID.TID 0000.0001) %MON XC_sd = 1.0355545336287E+02 +(PID.TID 0000.0001) %MON XG_max = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_min = -1.7708797161002E+02 +(PID.TID 0000.0001) %MON XG_mean = 1.8603515625000E+00 +(PID.TID 0000.0001) %MON XG_sd = 1.0357130300504E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DXC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DXC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DXF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DXF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DXG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DXG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DXV_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DXV_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON YC_max = 8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_min = -8.7940663871962E+01 +(PID.TID 0000.0001) %MON YC_mean = -2.3684757858670E-15 +(PID.TID 0000.0001) %MON YC_sd = 3.8676242969072E+01 +(PID.TID 0000.0001) %MON YG_max = 9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -4.1448326252673E-15 +(PID.TID 0000.0001) %MON YG_sd = 3.8676895860710E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.2375185836900E+05 +(PID.TID 0000.0001) %MON DYC_min = 1.1142031410131E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.8605689051214E+05 +(PID.TID 0000.0001) %MON DYC_sd = 3.4042087138252E+04 +(PID.TID 0000.0001) %MON DYF_max = 3.2369947500827E+05 +(PID.TID 0000.0001) %MON DYF_min = 1.2020820513318E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.8605437324820E+05 +(PID.TID 0000.0001) %MON DYF_sd = 3.4050524252539E+04 +(PID.TID 0000.0001) %MON DYG_max = 3.2375195872773E+05 +(PID.TID 0000.0001) %MON DYG_min = 1.0098378008791E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.8603818508931E+05 +(PID.TID 0000.0001) %MON DYG_sd = 3.4140406908005E+04 +(PID.TID 0000.0001) %MON DYU_max = 3.2380418162750E+05 +(PID.TID 0000.0001) %MON DYU_min = 8.0152299824136E+04 +(PID.TID 0000.0001) %MON DYU_mean = 2.8603970633619E+05 +(PID.TID 0000.0001) %MON DYU_sd = 3.4145142117723E+04 +(PID.TID 0000.0001) %MON RA_max = 1.0479260248419E+11 +(PID.TID 0000.0001) %MON RA_min = 1.4019007022556E+10 +(PID.TID 0000.0001) %MON RA_mean = 8.2992246709265E+10 +(PID.TID 0000.0001) %MON RA_sd = 1.7509089299457E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAW_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAW_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAW_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.0480965274559E+11 +(PID.TID 0000.0001) %MON RAS_min = 1.2166903467143E+10 +(PID.TID 0000.0001) %MON RAS_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAS_sd = 1.7481917919656E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.0484349334619E+11 +(PID.TID 0000.0001) %MON RAZ_min = 8.8317900612505E+09 +(PID.TID 0000.0001) %MON RAZ_mean = 8.2992246709235E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 1.7482297311044E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleCS_min = -9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleCS_mean = 3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleCS_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) %MON AngleSN_max = 9.9968286884824E-01 +(PID.TID 0000.0001) %MON AngleSN_min = -9.9999994756719E-01 +(PID.TID 0000.0001) %MON AngleSN_mean = -3.3078922539000E-01 +(PID.TID 0000.0001) %MON AngleSN_sd = 6.2496278958502E-01 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 239366 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 389 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 367 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 384 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 5204 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 10408 +(PID.TID 0000.0001) ctrl-wet 8: atmos 10408 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 239366 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4420 4232 4206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4299 4112 4096 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 4222 4038 4023 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 4140 3960 3939 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 4099 3919 3893 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 4038 3856 3839 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 3995 3814 3795 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 3944 3756 3737 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3887 3699 3673 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3799 3605 3585 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3703 3502 3461 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3554 3338 3303 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3202 2910 2911 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2599 2296 2276 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 1621 1368 1334 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 239366 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 7680 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 005204 005084 004791 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 003115 002837 002945 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0003 0001 005620 005386 005384 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0004 0001 002470 002283 001983 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0005 0001 001306 000952 000953 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0006 0001 003476 003122 003082 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0007 0001 005619 005222 005403 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0008 0001 007482 007397 007429 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0009 0001 005900 005825 005686 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0010 0001 003678 003307 003317 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0011 0001 006008 005782 005796 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0012 0001 005644 005208 005302 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 218 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 80 oceTAUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 81 oceTAUY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 93 TFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 94 SFLUX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 88 oceFreez +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 89 TRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 90 SRELAX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 38 WVELSQ +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 114 ADJuvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 115 ADJvvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 116 ADJwvel +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 117 ADJtheta +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 118 ADJsalt +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 113 ADJetan +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 122 ADJqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 121 ADJempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 119 ADJtaux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 120 ADJtauy +(PID.TID 0000.0001) space allocated for all diagnostics: 227 levels +(PID.TID 0000.0001) set mate pointer for diag # 80 oceTAUX , Parms: UU U1 , mate: 81 +(PID.TID 0000.0001) set mate pointer for diag # 81 oceTAUY , Parms: VV U1 , mate: 80 +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 114 ADJuvel , Parms: UURA MR , mate: 115 +(PID.TID 0000.0001) set mate pointer for diag # 115 ADJvvel , Parms: VVRA MR , mate: 114 +(PID.TID 0000.0001) set mate pointer for diag # 119 ADJtaux , Parms: UU A U1 , mate: 120 +(PID.TID 0000.0001) set mate pointer for diag # 120 ADJtauy , Parms: VV A U1 , mate: 119 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: adjDiagSurf +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define 0 regions: +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) space allocated for all stats-diags: 61 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000072000.txt , unit= 9 +(PID.TID 0000.0001) INI_GLOBAL_DOMAIN: Found 19 CS-corner Pts in the domain +(PID.TID 0000.0001) %MON fCori_max = 1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4574827780704E-04 +(PID.TID 0000.0001) %MON fCori_mean = 3.3881317890172E-21 +(PID.TID 0000.0001) %MON fCori_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.6940658945086E-20 +(PID.TID 0000.0001) %MON fCoriG_sd = 8.4202189509968E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4580166994612E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 5.2407700865903E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.1514045869113E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.0375849106513E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.9156564154949553E-04 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 5.809016360175296E-07 (Area=3.6388673751E+14) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceQnet = /* balance net heat-flux on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceThetaClimRelax= /* balance SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBalanceEmPmR = /* balancing glob.mean EmPmR selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balanceSaltClimRelax= /* balance SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) balancePrintMean = /* print means for balancing fluxes */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 1.000000000000000E-14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 8.640000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alph_AB = /* Adams-Bashforth-3 primary factor */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta_AB = /* Adams-Bashforth-3 secondary factor */ +(PID.TID 0000.0001) 4.166666666666667E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startFromPickupAB2= /* start from AB-2 pickup */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 72000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 72005 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 6.220800000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 6.221232000000000E+09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 6.220800000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) radius_fromHorizGrid = /* sphere Radius of input horiz. grid */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -4.439521994760536E+01, /* I = 1 */ +(PID.TID 0000.0001) -4.295641272275883E+01, /* I = 2 */ +(PID.TID 0000.0001) -4.122055553388957E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.312205555338896E+02, /* I = 94 */ +(PID.TID 0000.0001) 1.329564127227588E+02, /* I = 95 */ +(PID.TID 0000.0001) 1.343952199476053E+02, /* I = 96 */ +(PID.TID 0000.0001) 4.635509675007168E+01, /* I = 97 */ +(PID.TID 0000.0001) 4.906731228843647E+01, /* I = 98 */ +(PID.TID 0000.0001) 5.178550688214704E+01, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.778001716525716E+02, /* I =190 */ +(PID.TID 0000.0001) -1.779288225675308E+02, /* I =191 */ +(PID.TID 0000.0001) -1.780367200854751E+02, /* I =192 */ +(PID.TID 0000.0001) 1.356047800523947E+02, /* I =193 */ +(PID.TID 0000.0001) 1.358367907661329E+02, /* I =194 */ +(PID.TID 0000.0001) 1.359720382181193E+02, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -1.340279617818807E+02, /* I =286 */ +(PID.TID 0000.0001) -1.341632092338671E+02, /* I =287 */ +(PID.TID 0000.0001) -1.343952199476053E+02, /* I =288 */ +(PID.TID 0000.0001) -8.812739148696656E+01, /* I =289 */ +(PID.TID 0000.0001) -8.820362659721324E+01, /* I =290 */ +(PID.TID 0000.0001) -8.826768106944316E+01, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.780017165257156E+01, /* I =382 */ +(PID.TID 0000.0001) 8.792882256753080E+01, /* I =383 */ +(PID.TID 0000.0001) 8.803672008547504E+01 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -3.497677942598243E+01, /* J = 1 */ +(PID.TID 0000.0001) -3.374005967394886E+01, /* J = 2 */ +(PID.TID 0000.0001) -3.220655175667454E+01, /* J = 3 */ +(PID.TID 0000.0001) -3.045756348838641E+01, /* J = 4 */ +(PID.TID 0000.0001) -2.853728129852918E+01, /* J = 5 */ +(PID.TID 0000.0001) -2.647426640173173E+01, /* J = 6 */ +(PID.TID 0000.0001) -2.428936657094636E+01, /* J = 7 */ +(PID.TID 0000.0001) -2.199915808312262E+01, /* J = 8 */ +(PID.TID 0000.0001) -1.961768597440146E+01, /* J = 9 */ +(PID.TID 0000.0001) -1.715743888281371E+01, /* J = 10 */ +(PID.TID 0000.0001) -1.462993396899330E+01, /* J = 11 */ +(PID.TID 0000.0001) -1.204608340464756E+01, /* J = 12 */ +(PID.TID 0000.0001) -9.416429130284818E+00, /* J = 13 */ +(PID.TID 0000.0001) -6.751293662992216E+00, /* J = 14 */ +(PID.TID 0000.0001) -4.060875511835959E+00, /* J = 15 */ +(PID.TID 0000.0001) -1.355307764409121E+00 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =190 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =194 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.835530058121492E+05, /* I =286 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012844832048790E+05, /* I =289 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026061571839506E+05, /* I =382 */ +(PID.TID 0000.0001) 3.017314519159184E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.048868197919576E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.220405216043041E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.365892017348392E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.491250781852558E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.599949918261881E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.694110134598581E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.775055554645015E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.843615645344775E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.900303768613599E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.945429307892709E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.979171143158405E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001626787528886E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012844832048790E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =190 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =191 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =192 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =193 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =194 */ +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.840412227747703E+05, /* I =286 */ +(PID.TID 0000.0001) 1.572908084538706E+05, /* I =287 */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012190981969055E+05, /* I =289 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =290 */ +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.025451404065074E+05, /* I =382 */ +(PID.TID 0000.0001) 3.016675528553907E+05, /* I =383 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.202082051331828E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.563594089971120E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.835530058121492E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.045883481718707E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.218350349844185E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.364352994647058E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.490022710862746E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598919724358304E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.693210245495156E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.774243179696503E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842862532064524E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899590699694043E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944742915095688E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978501920522794E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000967749619962E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012190981969055E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =194 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.823321598773926E+05, /* I =286 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* I =287 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =288 */ +(PID.TID 0000.0001) 3.014246674484008E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =290 */ +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.027399364062562E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018694497480782E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014246674484008E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.950254041626018E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.138410773065497E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.295958105911512E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.430829951739083E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.547526806712889E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.648750305193301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.736173771018112E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810845823202647E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.873420591008078E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.924298293668651E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963715635865306E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991805843171258E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008638765647886E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =190 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =192 */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* I =193 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =194 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.950254041626018E+05, /* I =286 */ +(PID.TID 0000.0001) 1.716197227386011E+05, /* I =287 */ +(PID.TID 0000.0001) 1.403701524205398E+05, /* I =288 */ +(PID.TID 0000.0001) 3.011625828699101E+05, /* I =289 */ +(PID.TID 0000.0001) 3.013880313304323E+05, /* I =290 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031337933484788E+05, /* I =382 */ +(PID.TID 0000.0001) 3.020546438966793E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013880313304323E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.009837800879055E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.534505834330338E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.823321598773926E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.038999045536999E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.213884732245467E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.361211699596122E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.487693460283865E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.597126963772147E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.691790288994575E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773091043277394E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.841906470085516E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.898778860929753E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944035815526416E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.977867909042096E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.000380090330854E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.011625828699101E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =191 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =194 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.946503699269892E+05, /* I =286 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* I =287 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* I =288 */ +(PID.TID 0000.0001) 3.012281885409289E+05, /* I =289 */ +(PID.TID 0000.0001) 3.014528555318499E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.031928954490276E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021172674809921E+05, /* I =383 */ +(PID.TID 0000.0001) 3.014528555318499E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* J = 3 */ +(PID.TID 0000.0001) 2.042717761866506E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.216367828252819E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.363029564123586E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.489113743322025E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.598293319150326E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.692787333338535E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.773972106720365E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.842706922224557E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.899523122489403E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.944741346384699E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.978547649292580E+05, /* J = 14 */ +(PID.TID 0000.0001) 3.001044073506459E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.012281885409289E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 1 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =190 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =191 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =192 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =193 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =194 */ +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.829777599966776E+05, /* I =286 */ +(PID.TID 0000.0001) 1.549545757850771E+05, /* I =287 */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013593857228136E+05, /* I =289 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =290 */ +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.026789946729719E+05, /* I =382 */ +(PID.TID 0000.0001) 3.018056440786431E+05, /* I =383 */ +(PID.TID 0000.0001) 3.013593857228136E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.114203141013064E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.391343389937106E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.709574999026266E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.946503699269892E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.135964483342134E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.294195678257306E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.429464709770498E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.546408290696998E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647791839299727E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.735321911346108E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.810065951609633E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872689479506990E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923599955312932E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963038832565530E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991142470004740E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007982711627968E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =190 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =194 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.937548202849060E+05, /* I =286 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* I =287 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013686170436881E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015922136961168E+05, /* I =290 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.033238888442880E+05, /* I =382 */ +(PID.TID 0000.0001) 3.022533948177109E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015922136961168E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.942331448101592E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.133486626971531E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.292584591272880E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.428369969078989E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.545652950875683E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.647274964828301E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734980225206389E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809856491525217E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.872580915202295E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.923567890694162E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.963063101754721E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.991205495886625E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.008068453676764E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I = 1 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 2 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I = 94 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I = 95 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I = 96 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I = 97 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I = 98 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =190 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =191 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =192 */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* I =193 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =194 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.942331448101592E+05, /* I =286 */ +(PID.TID 0000.0001) 1.701080315742101E+05, /* I =287 */ +(PID.TID 0000.0001) 1.362652340208229E+05, /* I =288 */ +(PID.TID 0000.0001) 3.013031486919771E+05, /* I =289 */ +(PID.TID 0000.0001) 3.015274890091515E+05, /* I =290 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.032648502024415E+05, /* I =382 */ +(PID.TID 0000.0001) 3.021908563699420E+05, /* I =383 */ +(PID.TID 0000.0001) 3.015274890091515E+05 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 8.015229982413632E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.333130744933864E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.691744868129062E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.937548202849060E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.130490056267208E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.290479919481738E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.426774358027003E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.544372984215561E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.646201463834826E+05, /* J = 9 */ +(PID.TID 0000.0001) 2.734046499619031E+05, /* J = 10 */ +(PID.TID 0000.0001) 2.809019351693761E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.871811105274442E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.922844849381675E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.962371870847826E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.990534755671296E+05, /* J = 15 */ +(PID.TID 0000.0001) 3.007409169495504E+05 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =190 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =191 */ +(PID.TID 0000.0001) 9.076111290418457E+10, /* I =192 */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* I =193 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =194 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.378518544304265E+10, /* I =286 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* I =287 */ +(PID.TID 0000.0001) 1.401900702259215E+10, /* I =288 */ +(PID.TID 0000.0001) 9.076111290422060E+10, /* I =289 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =290 */ +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.156064070993231E+10, /* I =382 */ +(PID.TID 0000.0001) 9.103111035233499E+10, /* I =383 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.401900702255611E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.459906945574446E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.378518544307869E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.192037169898667E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.925938996118163E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.594154126607553E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.203683527776127E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.757541173817516E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.256353271748119E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.699293007098555E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.084683449728902E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.410423102799828E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.674306976737517E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.874277443041928E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.008620045350865E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.076111290418457E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =190 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =191 */ +(PID.TID 0000.0001) 9.085012105606993E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* I =194 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.801790263325260E+10, /* I =286 */ +(PID.TID 0000.0001) 2.943712825251114E+10, /* I =287 */ +(PID.TID 0000.0001) 1.974052138509018E+10, /* I =288 */ +(PID.TID 0000.0001) 9.071447638299399E+10, /* I =289 */ +(PID.TID 0000.0001) 9.085012105610597E+10, /* I =290 */ +(PID.TID 0000.0001) 9.125179254955583E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.190392048045309E+10, /* I =382 */ +(PID.TID 0000.0001) 9.125179254954683E+10, /* I =383 */ +(PID.TID 0000.0001) 9.085012105606993E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* J = 3 */ +(PID.TID 0000.0001) 4.168532893152940E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.909074590409593E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.581203765722643E+10, /* J = 6 */ +(PID.TID 0000.0001) 6.193257577506788E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.748840226738273E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.248875782324815E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.692702995909871E+10, /* J = 10 */ +(PID.TID 0000.0001) 8.078743937057304E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.404959656062837E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.669186205742538E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.869393350723613E+10, /* J = 14 */ +(PID.TID 0000.0001) 9.003884657168852E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.071447638299399E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 1 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 2 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I = 94 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I = 95 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I = 96 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I = 97 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I = 98 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =190 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =191 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =192 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =193 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =194 */ +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =195 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.341968103208270E+10, /* I =286 */ +(PID.TID 0000.0001) 2.390126200743558E+10, /* I =287 */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* I =288 */ +(PID.TID 0000.0001) 9.083293515008307E+10, /* I =289 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =290 */ +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =291 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.162886297688426E+10, /* I =382 */ +(PID.TID 0000.0001) 9.110170898494536E+10, /* I =383 */ +(PID.TID 0000.0001) 9.083293515008307E+10 /* I =384 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.216690346714270E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.974052138506315E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.943712825252015E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.801790263324359E+10, /* J = 4 */ +(PID.TID 0000.0001) 4.571243814189866E+10, /* J = 5 */ +(PID.TID 0000.0001) 5.269930713599979E+10, /* J = 6 */ +(PID.TID 0000.0001) 5.907428494299063E+10, /* J = 7 */ +(PID.TID 0000.0001) 6.488320895111514E+10, /* J = 8 */ +(PID.TID 0000.0001) 7.014205907741882E+10, /* J = 9 */ +(PID.TID 0000.0001) 7.484854821847499E+10, /* J = 10 */ +(PID.TID 0000.0001) 7.898934631431560E+10, /* J = 11 */ +(PID.TID 0000.0001) 8.254500894894537E+10, /* J = 12 */ +(PID.TID 0000.0001) 8.549360686473492E+10, /* J = 13 */ +(PID.TID 0000.0001) 8.781353403175085E+10, /* J = 14 */ +(PID.TID 0000.0001) 8.948571540392021E+10, /* J = 15 */ +(PID.TID 0000.0001) 9.049530583086168E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.638867375081599E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hasWetCSCorners = /* Domain contains CS corners (True/False) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.28169923847119E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963529004741E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.26825643555341E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508307715E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319059D+05 + --> objf_test(bi,bj) = 0.925748325923490D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594451D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117793D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455277D+04 + --> objf_test(bi,bj) = 0.683247511182580D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321234D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 9.62450968703671E+04 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1 55522 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 1 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 1 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.08166817117217E-16 4.97083349095585E-01 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426480E+00 + cg2d: Sum(rhs),rhsMax = 1.52655665885959E-16 4.61544119515300E-01 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.28169923847316E+00 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-16 4.22135511776206E-01 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963529004743E+00 + cg2d: Sum(rhs),rhsMax = -1.66533453693773E-16 3.83666267133075E-01 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26825643555305E+00 + cg2d: Sum(rhs),rhsMax = 2.35922392732846E-16 3.48096288899501E-01 + cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26314508307816E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319058D+05 + --> objf_test(bi,bj) = 0.925748325923488D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594450D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117794D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455276D+04 + --> objf_test(bi,bj) = 0.683247511182581D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321233D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834808E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963528989786E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643505683E+00 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26314508222955E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643372537197D+05 + --> objf_test(bi,bj) = 0.925748325937274D+04 + --> objf_test(bi,bj) = 0.646782341056008D+04 + --> objf_test(bi,bj) = 0.425114891592850D+04 + --> objf_test(bi,bj) = 0.468651159947307D+04 + --> objf_test(bi,bj) = 0.131971832117306D+05 + --> objf_test(bi,bj) = 0.111682590494812D+05 + --> objf_test(bi,bj) = 0.109410446656234D+05 + --> objf_test(bi,bj) = 0.691550498459337D+04 + --> objf_test(bi,bj) = 0.683247680478209D+04 + --> objf_test(bi,bj) = 0.520040324674087D+04 + --> objf_test(bi,bj) = 0.606296259734182D+04 +(PID.TID 0000.0001) local fc = 0.962451389993475D+05 +(PID.TID 0000.0001) global fc = 0.962451389993475D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451389993475E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28169923859646E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963529019077E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643604795E+00 + cg2d: Sum(rhs),rhsMax = -9.43600753089413E-12 4.26314508391993E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642609186992D+05 + --> objf_test(bi,bj) = 0.925748325909704D+04 + --> objf_test(bi,bj) = 0.646782341073247D+04 + --> objf_test(bi,bj) = 0.425114891596055D+04 + --> objf_test(bi,bj) = 0.468651159948100D+04 + --> objf_test(bi,bj) = 0.131971832118282D+05 + --> objf_test(bi,bj) = 0.111682590495131D+05 + --> objf_test(bi,bj) = 0.109410446655825D+05 + --> objf_test(bi,bj) = 0.691550498451220D+04 + --> objf_test(bi,bj) = 0.683247342113420D+04 + --> objf_test(bi,bj) = 0.520040324663511D+04 + --> objf_test(bi,bj) = 0.606295817145302D+04 +(PID.TID 0000.0001) local fc = 0.962450548546287D+05 +(PID.TID 0000.0001) global fc = 0.962450548546287D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450548546287E+04 +grad-res ------------------------------- + grad-res 0 1 1 1 1 1 1 1 9.62450968704E+04 9.62451389993E+04 9.62450548546E+04 + grad-res 0 1 1 1 0 1 1 1 4.20723620988E+00 4.20723593998E+00 6.41516283428E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) TLM tangent-lin_grad = 4.20723620987642E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 4.20723593997536E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 2 55522 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 + ph-grd -->hit<-- 2 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 2 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 5.55111512312578E-17 5.21328928551239E-01 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426480E+00 + cg2d: Sum(rhs),rhsMax = 2.77555756156289E-16 4.94127340983262E-01 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.28169923847316E+00 + cg2d: Sum(rhs),rhsMax = -2.35922392732846E-16 4.62627002996203E-01 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963529004743E+00 + cg2d: Sum(rhs),rhsMax = -8.32667268468867E-17 4.30994943752776E-01 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26825643555305E+00 + cg2d: Sum(rhs),rhsMax = -6.93889390390723E-17 3.99981649106928E-01 + cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26314508307816E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319058D+05 + --> objf_test(bi,bj) = 0.925748325923488D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594450D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117794D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455276D+04 + --> objf_test(bi,bj) = 0.683247511182581D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321233D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923848898E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26963528967151E+00 + cg2d: Sum(rhs),rhsMax = -9.49285094975494E-12 4.26825643475361E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26314508164779E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643378706429D+05 + --> objf_test(bi,bj) = 0.925748325947092D+04 + --> objf_test(bi,bj) = 0.646782341049779D+04 + --> objf_test(bi,bj) = 0.425114891591706D+04 + --> objf_test(bi,bj) = 0.468651159946984D+04 + --> objf_test(bi,bj) = 0.131971832116948D+05 + --> objf_test(bi,bj) = 0.111682590494701D+05 + --> objf_test(bi,bj) = 0.109410446656374D+05 + --> objf_test(bi,bj) = 0.691550498462186D+04 + --> objf_test(bi,bj) = 0.683247522814915D+04 + --> objf_test(bi,bj) = 0.520040324677840D+04 + --> objf_test(bi,bj) = 0.606296159023752D+04 +(PID.TID 0000.0001) local fc = 0.962451370325877D+05 +(PID.TID 0000.0001) global fc = 0.962451370325877D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451370325877E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923845654E+00 + cg2d: Sum(rhs),rhsMax = -9.54969436861575E-12 4.26963529041537E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26825643635290E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508450758E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642603170864D+05 + --> objf_test(bi,bj) = 0.925748325899883D+04 + --> objf_test(bi,bj) = 0.646782341079480D+04 + --> objf_test(bi,bj) = 0.425114891597197D+04 + --> objf_test(bi,bj) = 0.468651159948426D+04 + --> objf_test(bi,bj) = 0.131971832118641D+05 + --> objf_test(bi,bj) = 0.111682590495243D+05 + --> objf_test(bi,bj) = 0.109410446655686D+05 + --> objf_test(bi,bj) = 0.691550498448368D+04 + --> objf_test(bi,bj) = 0.683247499554683D+04 + --> objf_test(bi,bj) = 0.520040324659764D+04 + --> objf_test(bi,bj) = 0.606295917753553D+04 +(PID.TID 0000.0001) local fc = 0.962450568334570D+05 +(PID.TID 0000.0001) global fc = 0.962450568334570D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450568334570E+04 +grad-res ------------------------------- + grad-res 0 2 2 1 1 1 1 1 9.62450968704E+04 9.62451370326E+04 9.62450568335E+04 + grad-res 0 2 2 2 0 1 1 1 4.00969523493E+00 4.00995653617E+00 -6.51673570315E-05 +(PID.TID 0000.0001) TLM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) TLM tangent-lin_grad = 4.00969523493332E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 4.00995653617429E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 3 55522 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2 3 + ph-grd -->hit<-- 3 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 3 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 2.77555756156289E-17 5.14783382156190E-01 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426480E+00 + cg2d: Sum(rhs),rhsMax = -1.38777878078145E-16 4.91304295893306E-01 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.28169923847316E+00 + cg2d: Sum(rhs),rhsMax = 4.16333634234434E-17 4.63551401247431E-01 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963529004743E+00 + cg2d: Sum(rhs),rhsMax = 6.93889390390723E-17 4.35782778985409E-01 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26825643555305E+00 + cg2d: Sum(rhs),rhsMax = 2.63677968348475E-16 4.07970706211293E-01 + cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26314508307816E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319058D+05 + --> objf_test(bi,bj) = 0.925748325923488D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594450D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117794D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455276D+04 + --> objf_test(bi,bj) = 0.683247511182581D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321233D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.57811607804615E-12 4.28169923834804E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-12 4.26963528960830E+00 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.26825643444512E+00 + cg2d: Sum(rhs),rhsMax = -9.74864633462857E-12 4.26314508111679E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643321737231D+05 + --> objf_test(bi,bj) = 0.925748325954393D+04 + --> objf_test(bi,bj) = 0.646782341044705D+04 + --> objf_test(bi,bj) = 0.425114891590794D+04 + --> objf_test(bi,bj) = 0.468651159946771D+04 + --> objf_test(bi,bj) = 0.131971832116658D+05 + --> objf_test(bi,bj) = 0.111682590494606D+05 + --> objf_test(bi,bj) = 0.109410446656495D+05 + --> objf_test(bi,bj) = 0.691550498464398D+04 + --> objf_test(bi,bj) = 0.683247511589005D+04 + --> objf_test(bi,bj) = 0.520040324680865D+04 + --> objf_test(bi,bj) = 0.606296088558872D+04 +(PID.TID 0000.0001) local fc = 0.962451305187970D+05 +(PID.TID 0000.0001) global fc = 0.962451305187970D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451305187970E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.86233317235019E-12 4.28169923859372E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529048258E+00 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26825643666237E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.26314508503709E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642660210549D+05 + --> objf_test(bi,bj) = 0.925748325892583D+04 + --> objf_test(bi,bj) = 0.646782341084554D+04 + --> objf_test(bi,bj) = 0.425114891598100D+04 + --> objf_test(bi,bj) = 0.468651159948632D+04 + --> objf_test(bi,bj) = 0.131971832118930D+05 + --> objf_test(bi,bj) = 0.111682590495339D+05 + --> objf_test(bi,bj) = 0.109410446655564D+05 + --> objf_test(bi,bj) = 0.691550498446156D+04 + --> objf_test(bi,bj) = 0.683247510776259D+04 + --> objf_test(bi,bj) = 0.520040324656738D+04 + --> objf_test(bi,bj) = 0.606295988160210D+04 +(PID.TID 0000.0001) local fc = 0.962450633536705D+05 +(PID.TID 0000.0001) global fc = 0.962450633536705D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450633536705E+04 +grad-res ------------------------------- + grad-res 0 3 3 1 1 1 1 1 9.62450968704E+04 9.62451305188E+04 9.62450633537E+04 + grad-res 0 3 3 3 0 1 1 1 3.35834369199E+00 3.35825632210E+00 2.60157694189E-05 +(PID.TID 0000.0001) TLM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) TLM tangent-lin_grad = 3.35834369199402E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 3.35825632209890E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 4 55522 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 3 4 + ph-grd -->hit<-- 4 1 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 1 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 4.97549420720442E-01 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426480E+00 + cg2d: Sum(rhs),rhsMax = -1.11022302462516E-16 4.75651995220081E-01 + cg2d: Sum(rhs),rhsMax = -9.89075488178059E-12 4.28169923847316E+00 + cg2d: Sum(rhs),rhsMax = -1.80411241501588E-16 4.49477956093374E-01 + cg2d: Sum(rhs),rhsMax = -9.46442924032453E-12 4.26963529004743E+00 + cg2d: Sum(rhs),rhsMax = 2.35922392732846E-16 4.23649160367470E-01 + cg2d: Sum(rhs),rhsMax = -9.83391146291979E-12 4.26825643555305E+00 + cg2d: Sum(rhs),rhsMax = 8.32667268468867E-17 3.97676637341900E-01 + cg2d: Sum(rhs),rhsMax = -9.60653778747655E-12 4.26314508307816E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642990319058D+05 + --> objf_test(bi,bj) = 0.925748325923488D+04 + --> objf_test(bi,bj) = 0.646782341064632D+04 + --> objf_test(bi,bj) = 0.425114891594450D+04 + --> objf_test(bi,bj) = 0.468651159947707D+04 + --> objf_test(bi,bj) = 0.131971832117794D+05 + --> objf_test(bi,bj) = 0.111682590494972D+05 + --> objf_test(bi,bj) = 0.109410446656030D+05 + --> objf_test(bi,bj) = 0.691550498455276D+04 + --> objf_test(bi,bj) = 0.683247511182581D+04 + --> objf_test(bi,bj) = 0.520040324668799D+04 + --> objf_test(bi,bj) = 0.606296038321233D+04 +(PID.TID 0000.0001) local fc = 0.962450968703671D+05 +(PID.TID 0000.0001) global fc = 0.962450968703671D+05 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.77706804405898E-12 4.28169923829328E+00 + cg2d: Sum(rhs),rhsMax = -9.52127265918534E-12 4.26963528952197E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26825643418973E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-12 4.26314508067312E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112643265415474D+05 + --> objf_test(bi,bj) = 0.925748325960757D+04 + --> objf_test(bi,bj) = 0.646782341040589D+04 + --> objf_test(bi,bj) = 0.425114891590007D+04 + --> objf_test(bi,bj) = 0.468651159946554D+04 + --> objf_test(bi,bj) = 0.131971832116433D+05 + --> objf_test(bi,bj) = 0.111682590494530D+05 + --> objf_test(bi,bj) = 0.109410446656582D+05 + --> objf_test(bi,bj) = 0.691550498466291D+04 + --> objf_test(bi,bj) = 0.683247511172393D+04 + --> objf_test(bi,bj) = 0.520040324683352D+04 + --> objf_test(bi,bj) = 0.606296053020935D+04 +(PID.TID 0000.0001) local fc = 0.962451245271106D+05 +(PID.TID 0000.0001) global fc = 0.962451245271106D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 9.62451245271106E+04 +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 72000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 192 1 192 +(PID.TID 0000.0001) 2: 32 1 32 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >GuNm1 < >Vvel < >GvNm1 < >Theta < >GtNm1 < >Salt < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GuNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: field: "GvNm2 " missing in file: pickup.0000072000 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 122 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 123 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 72000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28293538426452E+00 + cg2d: Sum(rhs),rhsMax = -9.63495949690696E-12 4.28169923864340E+00 + cg2d: Sum(rhs),rhsMax = -9.72022462519817E-12 4.26963529056705E+00 + cg2d: Sum(rhs),rhsMax = -9.69180291576777E-12 4.26825643691576E+00 + cg2d: Sum(rhs),rhsMax = -9.37916411203332E-12 4.26314508548041E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.112642716549200D+05 + --> objf_test(bi,bj) = 0.925748325886229D+04 + --> objf_test(bi,bj) = 0.646782341088669D+04 + --> objf_test(bi,bj) = 0.425114891598887D+04 + --> objf_test(bi,bj) = 0.468651159948860D+04 + --> objf_test(bi,bj) = 0.131971832119155D+05 + --> objf_test(bi,bj) = 0.111682590495416D+05 + --> objf_test(bi,bj) = 0.109410446655477D+05 + --> objf_test(bi,bj) = 0.691550498444261D+04 + --> objf_test(bi,bj) = 0.683247511192761D+04 + --> objf_test(bi,bj) = 0.520040324654252D+04 + --> objf_test(bi,bj) = 0.606296023664371D+04 +(PID.TID 0000.0001) local fc = 0.962450693467077D+05 +(PID.TID 0000.0001) global fc = 0.962450693467077D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 9.62450693467077E+04 +grad-res ------------------------------- + grad-res 0 4 4 1 1 1 1 1 9.62450968704E+04 9.62451245271E+04 9.62450693467E+04 + grad-res 0 4 4 4 0 1 1 1 2.75901910607E+00 2.75902014619E+00 -3.76988921413E-07 +(PID.TID 0000.0001) TLM ref_cost_function = 9.62450968703671E+04 +(PID.TID 0000.0001) TLM tangent-lin_grad = 2.75901910606659E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = 2.75902014618623E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 1 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 9.6245096870367E+04 9.6245138999347E+04 9.6245054854629E+04 +(PID.TID 0000.0001) grdchk output (g): 1 4.2072359399754E+00 4.2072362098764E+00 6.4151628342834E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 2 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 9.6245096870367E+04 9.6245137032588E+04 9.6245056833457E+04 +(PID.TID 0000.0001) grdchk output (g): 2 4.0099565361743E+00 4.0096952349333E+00 -6.5167357031548E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 3 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 9.6245096870367E+04 9.6245130518797E+04 9.6245063353671E+04 +(PID.TID 0000.0001) grdchk output (g): 3 3.3582563220989E+00 3.3583436919940E+00 2.6015769418852E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 4 1 1 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 9.6245096870367E+04 9.6245124527111E+04 9.6245069346708E+04 +(PID.TID 0000.0001) grdchk output (g): 4 2.7590201461862E+00 2.7590191060666E+00 -3.7698892141336E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.5084722162967E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 40.206356358830817 +(PID.TID 0000.0001) System time: 0.24327100627124310 +(PID.TID 0000.0001) Wall clock time: 40.686790943145752 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.12342000263743103 +(PID.TID 0000.0001) System time: 5.3247001487761736E-002 +(PID.TID 0000.0001) Wall clock time: 0.18475914001464844 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.3298999071121216E-002 +(PID.TID 0000.0001) System time: 3.8309991359710693E-003 +(PID.TID 0000.0001) Wall clock time: 3.7326097488403320E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.4125000238418579E-002 +(PID.TID 0000.0001) System time: 1.1729970574378967E-003 +(PID.TID 0000.0001) Wall clock time: 3.5461902618408203E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 40.015483543276787 +(PID.TID 0000.0001) System time: 0.18499600887298584 +(PID.TID 0000.0001) Wall clock time: 40.429206132888794 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.7731812000274658 +(PID.TID 0000.0001) System time: 0.13040903955698013 +(PID.TID 0000.0001) Wall clock time: 1.9557299613952637 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 38.121696561574936 +(PID.TID 0000.0001) System time: 4.2658977210521698E-002 +(PID.TID 0000.0001) Wall clock time: 38.339935779571533 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 37.998867660760880 +(PID.TID 0000.0001) System time: 1.9846968352794647E-002 +(PID.TID 0000.0001) Wall clock time: 38.188557386398315 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 37.998126775026321 +(PID.TID 0000.0001) System time: 1.9836977124214172E-002 +(PID.TID 0000.0001) Wall clock time: 38.187809467315674 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0579997003078461 +(PID.TID 0000.0001) System time: 3.9994716644287109E-005 +(PID.TID 0000.0001) Wall clock time: 1.0628192424774170 +(PID.TID 0000.0001) No. starts: 130 +(PID.TID 0000.0001) No. stops: 130 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15644040703773499 +(PID.TID 0000.0001) System time: 3.4209936857223511E-003 +(PID.TID 0000.0001) Wall clock time: 0.16633129119873047 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 9.2814803123474121E-002 +(PID.TID 0000.0001) System time: 3.3799782395362854E-003 +(PID.TID 0000.0001) Wall clock time: 0.10239243507385254 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.24798536300659180 +(PID.TID 0000.0001) System time: 1.1800229549407959E-004 +(PID.TID 0000.0001) Wall clock time: 0.24912428855895996 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9493799209594727E-002 +(PID.TID 0000.0001) System time: 1.2298673391342163E-004 +(PID.TID 0000.0001) Wall clock time: 3.9821386337280273E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.3224565088748932 +(PID.TID 0000.0001) System time: 3.2570064067840576E-003 +(PID.TID 0000.0001) Wall clock time: 6.3540885448455811 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 10.072610348463058 +(PID.TID 0000.0001) System time: 4.2519941926002502E-003 +(PID.TID 0000.0001) Wall clock time: 10.122623682022095 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.17359256744384766 +(PID.TID 0000.0001) System time: 1.3900548219680786E-004 +(PID.TID 0000.0001) Wall clock time: 0.17445921897888184 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7317029833793640 +(PID.TID 0000.0001) System time: 1.0859742760658264E-003 +(PID.TID 0000.0001) Wall clock time: 2.7444832324981689 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.35401082038879395 +(PID.TID 0000.0001) System time: 1.0060220956802368E-003 +(PID.TID 0000.0001) Wall clock time: 0.35664987564086914 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.56992280483245850 +(PID.TID 0000.0001) System time: 3.0025839805603027E-006 +(PID.TID 0000.0001) Wall clock time: 0.57256388664245605 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12684553861618042 +(PID.TID 0000.0001) System time: 1.0209828615188599E-003 +(PID.TID 0000.0001) Wall clock time: 0.12846922874450684 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.86558473110198975 +(PID.TID 0000.0001) System time: 1.1602044105529785E-004 +(PID.TID 0000.0001) Wall clock time: 0.86928749084472656 +(PID.TID 0000.0001) No. starts: 130 +(PID.TID 0000.0001) No. stops: 130 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 14.845510184764862 +(PID.TID 0000.0001) System time: 5.1080062985420227E-003 +(PID.TID 0000.0001) Wall clock time: 14.911704540252686 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.7711858749389648E-004 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 3.9172172546386719E-004 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.0560960769653320E-004 +(PID.TID 0000.0001) System time: 2.0116567611694336E-006 +(PID.TID 0000.0001) Wall clock time: 3.9553642272949219E-004 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.42074972391128540 +(PID.TID 0000.0001) System time: 7.1018934249877930E-005 +(PID.TID 0000.0001) Wall clock time: 0.42273426055908203 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.2402744293212891E-004 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 4.3559074401855469E-004 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.8616867065429688E-004 +(PID.TID 0000.0001) System time: 5.9902667999267578E-006 +(PID.TID 0000.0001) Wall clock time: 6.9260597229003906E-004 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 4.2591094970703125E-002 +(PID.TID 0000.0001) System time: 1.0864011943340302E-002 +(PID.TID 0000.0001) Wall clock time: 5.8847427368164062E-002 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000007 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000008 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000009 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000010 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000011 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000012 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 63418 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 63418 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_ocean.cs32x15/results/output_tlm.seaice.txt.gz b/verification/global_ocean.cs32x15/results/output_tlm.seaice.txt.gz index 163e693de8..576c948481 100644 Binary files a/verification/global_ocean.cs32x15/results/output_tlm.seaice.txt.gz and b/verification/global_ocean.cs32x15/results/output_tlm.seaice.txt.gz differ diff --git a/verification/global_ocean.cs32x15/results/output_tlm.seaice_dynmix.txt.gz b/verification/global_ocean.cs32x15/results/output_tlm.seaice_dynmix.txt.gz index 50dcb07fb0..c5569587a9 100644 Binary files a/verification/global_ocean.cs32x15/results/output_tlm.seaice_dynmix.txt.gz and b/verification/global_ocean.cs32x15/results/output_tlm.seaice_dynmix.txt.gz differ diff --git a/verification/global_ocean.cs32x15/results/output_tlm.thsice.txt.gz b/verification/global_ocean.cs32x15/results/output_tlm.thsice.txt.gz index 94b01a67fd..c7b05c0e2e 100644 Binary files a/verification/global_ocean.cs32x15/results/output_tlm.thsice.txt.gz and b/verification/global_ocean.cs32x15/results/output_tlm.thsice.txt.gz differ diff --git a/verification/global_ocean.cs32x15/results/output_tlm.txt.gz b/verification/global_ocean.cs32x15/results/output_tlm.txt.gz index 9513f0c9e8..a390c13f6c 100644 Binary files a/verification/global_ocean.cs32x15/results/output_tlm.txt.gz and b/verification/global_ocean.cs32x15/results/output_tlm.txt.gz differ diff --git a/verification/global_ocean_ebm/code_ad/AUTODIFF_OPTIONS.h b/verification/global_ocean_ebm/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..4b6f1f5cc0 --- /dev/null +++ b/verification/global_ocean_ebm/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/global_ocean_ebm/code_ad/COST_OPTIONS.h b/verification/global_ocean_ebm/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..23cecef1a8 --- /dev/null +++ b/verification/global_ocean_ebm/code_ad/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#define ALLOW_COST_ATLANTIC_HEAT + +#undef ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_ocean_ebm/code_ad/CPP_OPTIONS.h b/verification/global_ocean_ebm/code_ad/CPP_OPTIONS.h index 25f751781d..3beb8bb293 100644 --- a/verification/global_ocean_ebm/code_ad/CPP_OPTIONS.h +++ b/verification/global_ocean_ebm/code_ad/CPP_OPTIONS.h @@ -132,8 +132,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/global_ocean_ebm/code_ad/CTRL_OPTIONS.h b/verification/global_ocean_ebm/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..09c6405623 --- /dev/null +++ b/verification/global_ocean_ebm/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_ocean_ebm/code_ad/ECCO_CPPOPTIONS.h b/verification/global_ocean_ebm/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 8c2cd842da..0000000000 --- a/verification/global_ocean_ebm/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). - -#define ALLOW_AUTODIFF_TAMC -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> Extract adjoint state -#undef ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#undef ALLOW_COST_TEST -#undef ALLOW_COST_TRACER -#define ALLOW_COST_ATLANTIC_HEAT - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define ALLOW_GENARR2D_CONTROL -#define ALLOW_GENARR3D_CONTROL - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/global_ocean_ebm/code_ad/SIZE.h b/verification/global_ocean_ebm/code_ad/SIZE.h index e10f455810..df51fbd561 100644 --- a/verification/global_ocean_ebm/code_ad/SIZE.h +++ b/verification/global_ocean_ebm/code_ad/SIZE.h @@ -61,8 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) - -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/global_ocean_ebm/code_ad/adcommon.h b/verification/global_ocean_ebm/code_ad/adcommon.h deleted file mode 100644 index 3c183afec4..0000000000 --- a/verification/global_ocean_ebm/code_ad/adcommon.h +++ /dev/null @@ -1,78 +0,0 @@ -C These common blocks are extracted from the -C automatically created adjoint code. -C You need to make sure that they are up-to-date -C (i.e. in right order), and customize them -C accordingly. -C -C heimbach@mit.edu 11-Jan-2001 - -#ifdef ALLOW_AUTODIFF_MONITOR - - common /addynvars_r/ - & adetan, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, adgt, adgs, - & adgunm1, adgvnm1, adgtnm1, adgsnm1 - _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) -cph _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - -#ifdef ALLOW_CD_CODE - common /addynvars_cd/ - & aduveld, advveld, - & adetanm1, - & adunm1, advnm1, - & adgucd, adgvcd - _RL aduveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adetanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgucd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgvcd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - - common /adffields/ - & adfu, adfv, adqnet, adempmr, adsst, adsss - _RL adfu(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adfv(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adqnet(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adempmr(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adsst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adsss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - -#ifdef ALLOW_TR10_CONTROL - common /adtr1_r/ - & adtr1, adgtr1, adgtr1nm1 - _RL adgtr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgtr1nm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - common /addynvars_diffkr/ - & addiffkr - _RL addiffkr(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#ifdef ALLOW_KAPGM_CONTROL - common /addynvars_kapgm/ - & adkapgm - _RL adkapgm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#endif /* ALLOW_AUTODIFF_MONITOR */ - diff --git a/verification/global_ocean_ebm/code_ad/g_common.h b/verification/global_ocean_ebm/code_ad/g_common.h deleted file mode 100644 index 243261ebb5..0000000000 --- a/verification/global_ocean_ebm/code_ad/g_common.h +++ /dev/null @@ -1,77 +0,0 @@ -C These common blocks are extracted from the -C automatically created tangent linear code. -C You need to make sure that they are up-to-date -C (i.e. in right order), and customize them -C accordingly. -C -C heimbach@mit.edu 11-Jan-2001 - -#ifdef ALLOW_AUTODIFF_MONITOR - - common /g_dynvars_r/ - & g_etan, - & g_uvel, g_vvel, g_wvel, - & g_theta, g_salt, - & g_gu, g_gv, g_gt, g_gs, - & g_gunm1, g_gvnm1, g_gtnm1, g_gsnm1 - _RL g_etan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_gs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_salt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_theta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_uvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_wvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - -#ifdef ALLOW_CD_CODE - common /g_dynvars_cd/ - & g_uveld, g_vveld, - & g_etanm1, - & g_unm1, g_vnm1, - & g_gucd, g_gvcd - _RL g_uveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vveld(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_etanm1(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_unm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_vnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gucd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gvcd(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - - common /g_ffields/ - & g_fu, g_fv, g_qnet, g_empmr, g_sst, g_sss - _RL g_fu(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_fv(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_qnet(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_empmr(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_sst(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL g_sss(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - -#ifdef ALLOW_TR10_CONTROL - common /g_tr1_r/ - & g_tr1, g_gtr1, g_gtr1nm1 - _RL g_gtr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_gtr1nm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL g_tr1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - common /g_dynvars_diffkr/ - & g_diffkr - _RL g_diffkr(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#ifdef ALLOW_KAPGM_CONTROL - common /g_dynvars_kapgm/ - & g_kapgm - _RL g_kapgm(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) -#endif - -#endif /* ALLOW_AUTODIFF_MONITOR */ - diff --git a/verification/global_ocean_ebm/code_ad/tamc.h b/verification/global_ocean_ebm/code_ad/tamc.h index c0df4a1f30..467ff3827b 100644 --- a/verification/global_ocean_ebm/code_ad/tamc.h +++ b/verification/global_ocean_ebm/code_ad/tamc.h @@ -1,129 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 6 ) - integer nchklev_2 - parameter( nchklev_2 = 120 ) - integer nchklev_3 - parameter( nchklev_3 = 3 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 6 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 120 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 3 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 1 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/global_ocean_ebm/results/output_adm.txt b/verification/global_ocean_ebm/results/output_adm.txt index f170d981c0..a4a3ce00ab 100644 --- a/verification/global_ocean_ebm/results/output_adm.txt +++ b/verification/global_ocean_ebm/results/output_adm.txt @@ -5,10 +5,9 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint64i -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Jun 20 17:46:13 EDT 2013 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Nov 4 00:52:26 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -89,7 +90,8 @@ (PID.TID 0000.0001) > viscAr=1.E-3, (PID.TID 0000.0001) > viscAh=5.E5, (PID.TID 0000.0001) > diffKhT=0., -(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, (PID.TID 0000.0001) > diffKhS=0., (PID.TID 0000.0001) > diffKrS=3.E-5, (PID.TID 0000.0001) > rhoConst=1035., @@ -126,7 +128,7 @@ (PID.TID 0000.0001) > tauCD = 321428., (PID.TID 0000.0001) > deltaTtracer = 43200., (PID.TID 0000.0001) > deltaTClock = 43200., -(PID.TID 0000.0001) > deltaTfreesurf=43200., +(PID.TID 0000.0001) > deltaTFreeSurf=43200., (PID.TID 0000.0001) > abEps = 0.1, (PID.TID 0000.0001) > pChkptFreq= 311040000., (PID.TID 0000.0001) > dumpFreq= 311040000., @@ -193,6 +195,28 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/ebm compiled and used ( useEBM = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled and used ( taveFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) (PID.TID 0000.0001) GM_READPARMS: opening data.gmredi (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi (PID.TID 0000.0001) // ======================================================= @@ -264,6 +288,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -285,6 +315,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -311,15 +353,6 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file = 'xx_theta', -(PID.TID 0000.0001) > xx_salt_file = 'xx_salt', -(PID.TID 0000.0001) > xx_tr1_file = 'xx_tr1', -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hflux', -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sflux', -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) > xx_diffkr_file = 'xx_diffkr', -(PID.TID 0000.0001) > xx_kapgm_file = 'xx_kapgm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -327,6 +360,14 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'wunit.001.001.data', +(PID.TID 0000.0001) > xx_genarr3d_file(1)='xx_theta', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl @@ -362,7 +403,7 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 2, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -371,6 +412,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 2 @@ -498,18 +540,18 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 91470 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 29138 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 2158 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 2052 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 2004 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 29138 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 @@ -518,7 +560,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 @@ -564,10 +606,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 62332 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 58276 (PID.TID 0000.0001) ctrl-wet 8: atmos 58276 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 91470 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 29138 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2158 2004 2052 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2155 2003 2049 0 @@ -587,8 +969,35 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 5 -(PID.TID 0000.0001) ctrl_init: control vector length: 91470 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 29138 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 54000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 029138 026715 027388 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = wunit.001.001.data +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) %MON fCori_max = 1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_mean = -1.2347858075529E-21 @@ -627,54 +1036,30 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAh = /* Lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 5.000000000000000E+05 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhMax = /* Maximum lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhGrid = /* Grid dependent lateral eddy viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useFullLeith = /* Use Full Form of Leith Viscosity on/off flag*/ +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator flag*/ +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAreaViscLength = /* Use area for visc length instead of geom. mean*/ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leith = /* Leith harmonic visc. factor (on grad(vort),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Max = /* Maximum biharmonic viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Grid = /* Grid dependent biharmonic viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leith = /* Leith biharm viscosity factor (on grad(vort), non-dim.)*/ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leithD = /* Leith biharm viscosity factor (on grad(div), non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4Smag = /* Smagorinsky biharm viscosity factor (non-dim) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -687,12 +1072,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -706,7 +1097,7 @@ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ -(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ (PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ @@ -738,6 +1129,7 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'POLY3 ' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) Polynomial EQS parameters ( from POLY3.COEFFS ): (PID.TID 0000.0001) 1 13.497 32.600 24.548 -0.202 0.773 -0.005 -0.002 0.000 0.000 0.000 0.000 0.000 (PID.TID 0000.0001) 2 13.488 32.600 24.819 -0.204 0.773 -0.005 -0.002 0.000 0.000 0.000 0.000 0.000 (PID.TID 0000.0001) 3 13.476 32.600 25.201 -0.205 0.772 -0.005 -0.002 0.000 0.000 0.000 0.000 0.000 @@ -753,6 +1145,17 @@ (PID.TID 0000.0001) 13 0.736 34.750 44.259 -0.164 0.776 -0.005 -0.002 0.000 0.000 0.000 0.000 0.000 (PID.TID 0000.0001) 14 0.186 34.750 47.044 -0.175 0.773 -0.005 -0.002 0.000 0.000 0.000 0.000 0.000 (PID.TID 0000.0001) 15 0.595 34.750 49.835 -0.196 0.767 -0.004 -0.002 0.000 0.000 0.000 0.000 0.000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ (PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; @@ -774,6 +1177,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -798,28 +1207,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ -(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -841,7 +1253,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -850,10 +1262,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -895,6 +1307,10 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -914,41 +1330,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1012,12 +1406,21 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ (PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ (PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ @@ -1028,14 +1431,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1052,6 +1458,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1088,6 +1497,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 3.214280000000000E+05 (PID.TID 0000.0001) ; @@ -1130,9 +1542,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1184,11 +1593,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1199,6 +1617,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.661835748792270E-04 (PID.TID 0000.0001) ; @@ -1220,7 +1644,8 @@ (PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ (PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ (PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ -(PID.TID 0000.0001) 6.650000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ (PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ @@ -1808,8 +2233,13 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1890,6 +2320,9 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1915,176 +2348,193 @@ cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201194813001734 23.297498110483730 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = 1.41900380334903E-14 8.72197575655387E+00 + cg2d: Sum(rhs),rhsMax = -2.31759056390501E-15 8.72197575655386E+00 SH 5.2213217366822278 23.295110541783401 NH 10.461108876579829 25.564424809914442 - cg2d: Sum(rhs),rhsMax = 1.12236608895699E-13 8.58491923240257E+00 + cg2d: Sum(rhs),rhsMax = 1.15910753217818E-13 8.58491923240270E+00 SH 5.2239758527201161 23.292330991848473 NH 10.454544438170274 25.562857148937155 - cg2d: Sum(rhs),rhsMax = 1.95340271735844E-13 8.57300301452757E+00 + cg2d: Sum(rhs),rhsMax = 1.79158771151933E-13 8.57300301452757E+00 SH 5.2277890242648937 23.291025332157801 NH 10.447075395367449 25.560581831928403 - cg2d: Sum(rhs),rhsMax = 1.41667927389122E-13 8.54199816412785E+00 + cg2d: Sum(rhs),rhsMax = 1.14106640802802E-13 8.54199816412782E+00 SH 5.2323630972755382 23.291656354054112 NH 10.438753008306207 25.558131387204696 - cg2d: Sum(rhs),rhsMax = 3.55049323275125E-13 8.39983291285462E+00 + cg2d: Sum(rhs),rhsMax = 3.78246045595887E-13 8.39983291285479E+00 SH 5.2374226153361292 23.293835175661229 NH 10.429688799623705 25.556353938299310 - cg2d: Sum(rhs),rhsMax = 3.03798652900866E-13 8.14938897866034E+00 + cg2d: Sum(rhs),rhsMax = 2.94556046220862E-13 8.14938897866050E+00 SH 5.2428098519675359 23.296876966114610 NH 10.420249419348920 25.555836778851869 - cg2d: Sum(rhs),rhsMax = 3.36120020705266E-13 7.83063879768698E+00 + cg2d: Sum(rhs),rhsMax = 3.99409672002804E-13 7.83063879768714E+00 SH 5.2484301144941696 23.300155030698079 NH 10.410965029195040 25.556641789184368 - cg2d: Sum(rhs),rhsMax = 4.79269401942872E-13 7.50867967598465E+00 + cg2d: Sum(rhs),rhsMax = 4.52020365582229E-13 7.50867967598474E+00 SH 5.2542041359492941 23.303266303870714 NH 10.402332418694868 25.558401819850985 - cg2d: Sum(rhs),rhsMax = 4.47919479285019E-13 7.13635421945479E+00 + cg2d: Sum(rhs),rhsMax = 4.47954173754539E-13 7.13635421945487E+00 SH 5.2600399099036395 23.306034378293475 NH 10.394646890277841 25.560572845205797 - cg2d: Sum(rhs),rhsMax = 5.92303983637521E-13 6.72826174090860E+00 + cg2d: Sum(rhs),rhsMax = 5.89459037136919E-13 6.72826174090869E+00 SH 5.2658237553761751 23.308436294575813 NH 10.387931796005716 25.562670281538317 - cg2d: Sum(rhs),rhsMax = 3.29854199510038E-13 6.29061611247720E+00 + cg2d: Sum(rhs),rhsMax = 3.57769369685457E-13 6.29061611247732E+00 SH 5.2714235394728348 23.310527091229915 NH 10.381968237103536 25.564392021505057 - cg2d: Sum(rhs),rhsMax = 2.86194679066654E-13 5.82354057585758E+00 + cg2d: Sum(rhs),rhsMax = 2.71650757444064E-13 5.82354057585775E+00 SH 5.2766969400194057 23.312391248058475 NH 10.376388653533922 25.565627357111339 - cg2d: Sum(rhs),rhsMax = 2.76625944373166E-13 5.32772671031802E+00 + cg2d: Sum(rhs),rhsMax = 2.79762324417732E-13 5.32772671031824E+00 SH 5.2815003385481987 23.314118302141765 NH 10.370786591431056 25.566397306321107 - cg2d: Sum(rhs),rhsMax = 3.28806426530548E-13 4.81328439449781E+00 + cg2d: Sum(rhs),rhsMax = 3.33129357432682E-13 4.81328439449798E+00 SH 5.2856965016658819 23.315790314925948 NH 10.364805610096198 25.566780027675406 - cg2d: Sum(rhs),rhsMax = 4.45976588991925E-13 4.27688077868645E+00 + cg2d: Sum(rhs),rhsMax = 3.88258869499225E-13 4.27688077868667E+00 SH 5.2891603915413157 23.317473118939176 NH 10.358190016883384 25.566855652924460 - cg2d: Sum(rhs),rhsMax = 3.47159800906383E-13 4.08273968506819E+00 + cg2d: Sum(rhs),rhsMax = 4.48967252264509E-13 4.08273968506814E+00 SH 5.2917830540431510 23.319209962725836 NH 10.350797384894520 25.566681379427052 - cg2d: Sum(rhs),rhsMax = 3.53821139054133E-13 4.69596425100999E+00 + cg2d: Sum(rhs),rhsMax = 3.18280124478321E-13 4.69596425101007E+00 SH 5.2934738052695707 23.321019314889838 NH 10.342582254673175 25.566293875024940 - cg2d: Sum(rhs),rhsMax = 2.99919811208582E-13 5.24143688984563E+00 + cg2d: Sum(rhs),rhsMax = 3.83436338236010E-13 5.24143688984587E+00 SH 5.2941611378271887 23.322897857983492 NH 10.333566201914152 25.565715210821566 - cg2d: Sum(rhs),rhsMax = 3.07545655608976E-13 5.71014649701814E+00 + cg2d: Sum(rhs),rhsMax = 3.43780559575180E-13 5.71014649701823E+00 (PID.TID 0000.0001) // Time-average data written, t-step 20 (PID.TID 0000.0001) (PID.TID 0000.0001) %CHECKPOINT 20 ckptA - ph-1 in thsice_cost_final - ph-3 in thsice_cost_final - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.371967820065626D-01 - local fc = -0.371967820065626D-01 - global fc = -0.371967820065626D-01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.371967820065632D-01 +(PID.TID 0000.0001) local fc = -0.371967820065632D-01 +(PID.TID 0000.0001) global fc = -0.371967820065632D-01 SH 5.2213892178558012 23.296536408581801 NH 10.477982531836687 25.564398561832434 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201194813001734 23.297498110483730 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = 1.41900380334903E-14 8.72197575655387E+00 + cg2d: Sum(rhs),rhsMax = -2.31759056390501E-15 8.72197575655386E+00 SH 5.2213217366822278 23.295110541783401 NH 10.461108876579829 25.564424809914442 - cg2d: Sum(rhs),rhsMax = 1.12236608895699E-13 8.58491923240257E+00 + cg2d: Sum(rhs),rhsMax = 1.15910753217818E-13 8.58491923240270E+00 SH 5.2239758527201161 23.292330991848473 NH 10.454544438170274 25.562857148937155 - cg2d: Sum(rhs),rhsMax = 1.95340271735844E-13 8.57300301452757E+00 + cg2d: Sum(rhs),rhsMax = 1.79158771151933E-13 8.57300301452757E+00 SH 5.2277890242648937 23.291025332157801 NH 10.447075395367449 25.560581831928403 - cg2d: Sum(rhs),rhsMax = 1.41667927389122E-13 8.54199816412785E+00 + cg2d: Sum(rhs),rhsMax = 1.14106640802802E-13 8.54199816412782E+00 SH 5.2323630972755382 23.291656354054112 NH 10.438753008306207 25.558131387204696 - cg2d: Sum(rhs),rhsMax = 3.55049323275125E-13 8.39983291285462E+00 + cg2d: Sum(rhs),rhsMax = 3.78246045595887E-13 8.39983291285479E+00 SH 5.2374226153361292 23.293835175661229 NH 10.429688799623705 25.556353938299310 - cg2d: Sum(rhs),rhsMax = 3.03798652900866E-13 8.14938897866034E+00 + cg2d: Sum(rhs),rhsMax = 2.94556046220862E-13 8.14938897866050E+00 SH 5.2428098519675359 23.296876966114610 NH 10.420249419348920 25.555836778851869 - cg2d: Sum(rhs),rhsMax = 3.36120020705266E-13 7.83063879768698E+00 + cg2d: Sum(rhs),rhsMax = 3.99409672002804E-13 7.83063879768714E+00 SH 5.2484301144941696 23.300155030698079 NH 10.410965029195040 25.556641789184368 - cg2d: Sum(rhs),rhsMax = 4.79269401942872E-13 7.50867967598465E+00 + cg2d: Sum(rhs),rhsMax = 4.52020365582229E-13 7.50867967598474E+00 SH 5.2542041359492941 23.303266303870714 NH 10.402332418694868 25.558401819850985 - cg2d: Sum(rhs),rhsMax = 4.47919479285019E-13 7.13635421945479E+00 + cg2d: Sum(rhs),rhsMax = 4.47954173754539E-13 7.13635421945487E+00 SH 5.2600399099036395 23.306034378293475 NH 10.394646890277841 25.560572845205797 - cg2d: Sum(rhs),rhsMax = 5.92303983637521E-13 6.72826174090860E+00 + cg2d: Sum(rhs),rhsMax = 5.89459037136919E-13 6.72826174090869E+00 SH 5.2658237553761751 23.308436294575813 NH 10.387931796005716 25.562670281538317 - cg2d: Sum(rhs),rhsMax = 3.29854199510038E-13 6.29061611247720E+00 + cg2d: Sum(rhs),rhsMax = 3.57769369685457E-13 6.29061611247732E+00 SH 5.2714235394728348 23.310527091229915 NH 10.381968237103536 25.564392021505057 - cg2d: Sum(rhs),rhsMax = 2.86194679066654E-13 5.82354057585758E+00 + cg2d: Sum(rhs),rhsMax = 2.71650757444064E-13 5.82354057585775E+00 SH 5.2766969400194057 23.312391248058475 NH 10.376388653533922 25.565627357111339 - cg2d: Sum(rhs),rhsMax = 2.76625944373166E-13 5.32772671031802E+00 + cg2d: Sum(rhs),rhsMax = 2.79762324417732E-13 5.32772671031824E+00 SH 5.2815003385481987 23.314118302141765 NH 10.370786591431056 25.566397306321107 - cg2d: Sum(rhs),rhsMax = 3.28806426530548E-13 4.81328439449781E+00 + cg2d: Sum(rhs),rhsMax = 3.33129357432682E-13 4.81328439449798E+00 SH 5.2856965016658819 23.315790314925948 NH 10.364805610096198 25.566780027675406 - cg2d: Sum(rhs),rhsMax = 4.45976588991925E-13 4.27688077868645E+00 + cg2d: Sum(rhs),rhsMax = 3.88258869499225E-13 4.27688077868667E+00 SH 5.2891603915413157 23.317473118939176 NH 10.358190016883384 25.566855652924460 - cg2d: Sum(rhs),rhsMax = 3.47159800906383E-13 4.08273968506819E+00 + cg2d: Sum(rhs),rhsMax = 4.48967252264509E-13 4.08273968506814E+00 SH 5.2917830540431510 23.319209962725836 NH 10.350797384894520 25.566681379427052 - cg2d: Sum(rhs),rhsMax = 3.53821139054133E-13 4.69596425100999E+00 + cg2d: Sum(rhs),rhsMax = 3.18280124478321E-13 4.69596425101007E+00 SH 5.2934738052695707 23.321019314889838 NH 10.342582254673175 25.566293875024940 - cg2d: Sum(rhs),rhsMax = 2.99919811208582E-13 5.24143688984563E+00 + cg2d: Sum(rhs),rhsMax = 3.83436338236010E-13 5.24143688984587E+00 SH 5.2941611378271887 23.322897857983492 NH 10.333566201914152 25.565715210821566 - cg2d: Sum(rhs),rhsMax = 3.07545655608976E-13 5.71014649701814E+00 + cg2d: Sum(rhs),rhsMax = 3.43780559575180E-13 5.71014649701823E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 2.99919811208582E-13 5.24143688984563E+00 - cg2d: Sum(rhs),rhsMax = 3.07656677911439E-13 5.71014649701814E+00 + cg2d: Sum(rhs),rhsMax = 3.83436338236010E-13 5.24143688984587E+00 + cg2d: Sum(rhs),rhsMax = 3.43780559575180E-13 5.71014649701823E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 1.01287717846603E-08 - cg2d: Sum(rhs),rhsMax = -7.69234394064344E-14 1.09879179527660E-08 - cg2d: Sum(rhs),rhsMax = 2.86194679066654E-13 5.82354057585758E+00 - cg2d: Sum(rhs),rhsMax = 2.81170919880225E-13 5.32772671031802E+00 - cg2d: Sum(rhs),rhsMax = 3.40345807092746E-13 4.81328439449783E+00 - cg2d: Sum(rhs),rhsMax = 4.01782773717940E-13 4.27688077868644E+00 - cg2d: Sum(rhs),rhsMax = 3.81292220019702E-13 4.08273968506817E+00 - cg2d: Sum(rhs),rhsMax = 3.65686647629815E-13 4.69596425100994E+00 - cg2d: Sum(rhs),rhsMax = -2.55653137548606E-13 1.15636713703768E-08 - cg2d: Sum(rhs),rhsMax = -4.60183974260175E-13 1.26536107829254E-08 - cg2d: Sum(rhs),rhsMax = -6.75645303593875E-13 1.39162850775954E-08 - cg2d: Sum(rhs),rhsMax = -9.19134560128931E-13 1.53380614290839E-08 - cg2d: Sum(rhs),rhsMax = -1.17611129168971E-12 1.69103114062478E-08 - cg2d: Sum(rhs),rhsMax = -1.46379436349875E-12 1.86169355776582E-08 - cg2d: Sum(rhs),rhsMax = 3.03798652900866E-13 8.14938897866034E+00 - cg2d: Sum(rhs),rhsMax = 3.34871019802563E-13 7.83063879768698E+00 - cg2d: Sum(rhs),rhsMax = 4.69978223005540E-13 7.50867967598465E+00 - cg2d: Sum(rhs),rhsMax = 4.42042236148410E-13 7.13635421945480E+00 - cg2d: Sum(rhs),rhsMax = 6.15209272414319E-13 6.72826174090860E+00 - cg2d: Sum(rhs),rhsMax = 3.95759813809349E-13 6.29061611247718E+00 - cg2d: Sum(rhs),rhsMax = -1.63189253776785E-12 2.04399954066654E-08 - cg2d: Sum(rhs),rhsMax = -1.69365216295958E-12 2.23569887044410E-08 - cg2d: Sum(rhs),rhsMax = -1.80626173740261E-12 2.43406113494753E-08 - cg2d: Sum(rhs),rhsMax = -1.89170554221185E-12 2.63595082858861E-08 - cg2d: Sum(rhs),rhsMax = -1.86102522281573E-12 2.83800226466908E-08 - cg2d: Sum(rhs),rhsMax = -1.74945474773480E-12 3.03683331156591E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 1.01287717846603E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -7.55274206891421E-14 1.09879179527660E-08 + cg2d: Sum(rhs),rhsMax = 2.71650757444064E-13 5.82354057585775E+00 + cg2d: Sum(rhs),rhsMax = 2.79762324417732E-13 5.32772671031824E+00 + cg2d: Sum(rhs),rhsMax = 3.33129357432682E-13 4.81328439449798E+00 + cg2d: Sum(rhs),rhsMax = 3.88258869499225E-13 4.27688077868667E+00 + cg2d: Sum(rhs),rhsMax = 4.48967252264509E-13 4.08273968506814E+00 + cg2d: Sum(rhs),rhsMax = 3.18280124478321E-13 4.69596425101007E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.54231748500477E-13 1.15636713703767E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.45414538585709E-13 1.26536107829254E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.83739523332783E-13 1.39162850775954E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -9.11638819989236E-13 1.53380614290839E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.18299293971891E-12 1.69103114062477E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.46115411436831E-12 1.86169355776580E-08 + cg2d: Sum(rhs),rhsMax = 2.94556046220862E-13 8.14938897866050E+00 + cg2d: Sum(rhs),rhsMax = 3.99409672002804E-13 7.83063879768714E+00 + cg2d: Sum(rhs),rhsMax = 4.52020365582229E-13 7.50867967598474E+00 + cg2d: Sum(rhs),rhsMax = 4.47954173754539E-13 7.13635421945487E+00 + cg2d: Sum(rhs),rhsMax = 5.89459037136919E-13 6.72826174090869E+00 + cg2d: Sum(rhs),rhsMax = 3.57769369685457E-13 6.29061611247732E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.63142069298239E-12 2.04399954066653E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.69811040229284E-12 2.23569887044410E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.80681858363840E-12 2.43406113494753E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.89308638209873E-12 2.63595082858860E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.85551400633255E-12 2.83800226466908E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.75020935244685E-12 3.03683331156590E-08 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 - cg2d: Sum(rhs),rhsMax = 1.41900380334903E-14 8.72197575655387E+00 - cg2d: Sum(rhs),rhsMax = 1.04846686888038E-13 8.58491923240257E+00 - cg2d: Sum(rhs),rhsMax = 1.93577792684252E-13 8.57300301452757E+00 - cg2d: Sum(rhs),rhsMax = 1.48010076417293E-13 8.54199816412785E+00 - cg2d: Sum(rhs),rhsMax = 3.96654931122953E-13 8.39983291285461E+00 - cg2d: Sum(rhs),rhsMax = -1.60096241819119E-12 3.22921328128692E-08 - cg2d: Sum(rhs),rhsMax = -1.44032962640095E-12 3.41215550713648E-08 - cg2d: Sum(rhs),rhsMax = -1.32341707037575E-12 3.58294707242427E-08 - cg2d: Sum(rhs),rhsMax = -1.25662501238022E-12 3.73920335700041E-08 - cg2d: Sum(rhs),rhsMax = -1.21928248747460E-12 3.87900997765171E-08 - cg2d: Sum(rhs),rhsMax = -1.22127048057807E-12 4.00072765226610E-08 + cg2d: Sum(rhs),rhsMax = -2.31759056390501E-15 8.72197575655386E+00 + cg2d: Sum(rhs),rhsMax = 1.15910753217818E-13 8.58491923240270E+00 + cg2d: Sum(rhs),rhsMax = 1.79158771151933E-13 8.57300301452757E+00 + cg2d: Sum(rhs),rhsMax = 1.14106640802802E-13 8.54199816412782E+00 + cg2d: Sum(rhs),rhsMax = 3.78246045595887E-13 8.39983291285479E+00 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.59811313488190E-12 3.22921328128693E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.44614962366285E-12 3.41215550713647E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.33255559364720E-12 3.58294707242426E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.26084385987379E-12 3.73920335700041E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.22193227758416E-12 3.87900997765171E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.21181276818705E-12 4.00072765226611E-08 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2093,7 +2543,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = -3.71967820065626E-02 +(PID.TID 0000.0001) grdchk reference fc: fcref = -3.71967820065632E-02 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -2115,70 +2565,67 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201334211142694 23.297498128510995 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = 1.64451785522601E-15 8.72197575654855E+00 + cg2d: Sum(rhs),rhsMax = 9.81853487402873E-16 8.72197575654854E+00 SH 5.2213357119372290 23.295110577687069 NH 10.461108876580283 25.564424809919160 - cg2d: Sum(rhs),rhsMax = 9.06288932789323E-14 8.58491923233593E+00 + cg2d: Sum(rhs),rhsMax = 9.42544653437238E-14 8.58491923233604E+00 SH 5.2239898826075546 23.292331045693061 NH 10.454544438174480 25.562857148972114 - cg2d: Sum(rhs),rhsMax = 2.16996559609939E-13 8.57300301424113E+00 + cg2d: Sum(rhs),rhsMax = 2.20035795139850E-13 8.57300301424118E+00 SH 5.2278030705794549 23.291025403982246 NH 10.447075395385923 25.560581832030721 - cg2d: Sum(rhs),rhsMax = 9.99027249815043E-14 8.54199816328915E+00 + cg2d: Sum(rhs),rhsMax = 1.56465118639204E-13 8.54199816328918E+00 SH 5.2323771053971768 23.291656443776731 NH 10.438753008359129 25.558131387418598 - cg2d: Sum(rhs),rhsMax = 3.45390382960886E-13 8.39983291096013E+00 + cg2d: Sum(rhs),rhsMax = 4.13766243489988E-13 8.39983291096020E+00 SH 5.2374365523609754 23.293835283113992 NH 10.429688799736539 25.556353938648101 - cg2d: Sum(rhs),rhsMax = 3.25781068788444E-13 8.14938897519342E+00 + cg2d: Sum(rhs),rhsMax = 3.14567816239730E-13 8.14938897519345E+00 SH 5.2428237119067944 23.296877091127328 NH 10.420249419540937 25.555836779317190 - cg2d: Sum(rhs),rhsMax = 3.74804354219549E-13 7.83063879238954E+00 + cg2d: Sum(rhs),rhsMax = 4.28400370733328E-13 7.83063879238959E+00 SH 5.2484439044173996 23.300155173134044 NH 10.410965029465672 25.556641789710397 - cg2d: Sum(rhs),rhsMax = 4.34437208429728E-13 7.50867966909402E+00 + cg2d: Sum(rhs),rhsMax = 4.68000638242927E-13 7.50867966909409E+00 SH 5.2542178634641346 23.303266463613056 NH 10.402332419017455 25.558401820371557 - cg2d: Sum(rhs),rhsMax = 4.83987849797529E-13 7.13635421172750E+00 + cg2d: Sum(rhs),rhsMax = 5.41386380170650E-13 7.13635421172753E+00 SH 5.2600535783429905 23.306034555220720 NH 10.394646890607135 25.560572845673278 - cg2d: Sum(rhs),rhsMax = 6.25076379545675E-13 6.72826173338455E+00 + cg2d: Sum(rhs),rhsMax = 5.52238810236361E-13 6.72826173338458E+00 SH 5.2658373644449625 23.308436488551081 NH 10.387931796293969 25.562670281937017 - cg2d: Sum(rhs),rhsMax = 3.21132009872827E-13 6.29061610611811E+00 + cg2d: Sum(rhs),rhsMax = 3.75498243609940E-13 6.29061610611807E+00 SH 5.2714370875355030 23.310527302104560 NH 10.381968237317153 25.564392021846800 - cg2d: Sum(rhs),rhsMax = 2.49009146635615E-13 5.82354057125141E+00 + cg2d: Sum(rhs),rhsMax = 2.82718293220796E-13 5.82354057125140E+00 SH 5.2767104258373934 23.312391475681295 NH 10.376388653662389 25.565627357421590 - cg2d: Sum(rhs),rhsMax = 2.11657080750882E-13 5.32772670756981E+00 + cg2d: Sum(rhs),rhsMax = 2.64552268980367E-13 5.32772670756981E+00 SH 5.2815137620302721 23.314118546367354 NH 10.370786591485682 25.566397306626698 - cg2d: Sum(rhs),rhsMax = 3.16899284591443E-13 4.81328439334297E+00 + cg2d: Sum(rhs),rhsMax = 3.77330111600571E-13 4.81328439334307E+00 SH 5.2857098639553328 23.315790575619417 NH 10.364805610102223 25.566780027998220 - cg2d: Sum(rhs),rhsMax = 4.66043870162025E-13 4.27688077870375E+00 + cg2d: Sum(rhs),rhsMax = 4.74960348828546E-13 4.27688077870376E+00 SH 5.2891736947930212 23.317473395977515 NH 10.358190016870481 25.566855653280697 - cg2d: Sum(rhs),rhsMax = 3.64673569119844E-13 4.08273968597044E+00 + cg2d: Sum(rhs),rhsMax = 5.51343692922757E-13 4.08273968597055E+00 SH 5.2917963010744984 23.319210255997064 NH 10.350797384889006 25.566681379829447 - cg2d: Sum(rhs),rhsMax = 3.58567342484406E-13 4.69596425233109E+00 + cg2d: Sum(rhs),rhsMax = 3.99166810716167E-13 4.69596425233117E+00 SH 5.2934869991663049 23.321019624290443 NH 10.342582254694207 25.566293875484519 - cg2d: Sum(rhs),rhsMax = 3.22568360910935E-13 5.24143689138270E+00 + cg2d: Sum(rhs),rhsMax = 4.15487089178157E-13 5.24143689138278E+00 SH 5.2941742815707471 23.322898183415759 NH 10.333566201972985 25.565715211348220 - cg2d: Sum(rhs),rhsMax = 2.92238455656957E-13 5.71014649850039E+00 + cg2d: Sum(rhs),rhsMax = 2.79137823966380E-13 5.71014649850029E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - ph-1 in thsice_cost_final - ph-3 in thsice_cost_final - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.371967821606290D-01 - local fc = -0.371967821606290D-01 - global fc = -0.371967821606290D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -3.71967821606290E-02 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.371967821606274D-01 +(PID.TID 0000.0001) local fc = -0.371967821606274D-01 +(PID.TID 0000.0001) global fc = -0.371967821606274D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -3.71967821606274E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2192,76 +2639,73 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201055417050384 23.297498092456351 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = -9.14546216534973E-15 8.72197575655921E+00 + cg2d: Sum(rhs),rhsMax = 9.84282100269240E-15 8.72197575655920E+00 SH 5.2213077618590091 23.295110505880132 NH 10.461108876579431 25.564424809909838 - cg2d: Sum(rhs),rhsMax = 9.89555659636210E-14 8.58491923246909E+00 + cg2d: Sum(rhs),rhsMax = 1.14689507890731E-13 8.58491923246918E+00 SH 5.2239618235048511 23.292330938005250 NH 10.454544438166067 25.562857148902197 - cg2d: Sum(rhs),rhsMax = 1.73208669629332E-13 8.57300301481357E+00 + cg2d: Sum(rhs),rhsMax = 1.87301563148168E-13 8.57300301481366E+00 SH 5.2277749788662504 23.291025260335857 NH 10.447075395348975 25.560581831826198 - cg2d: Sum(rhs),rhsMax = 1.40477907084602E-13 8.54199816496515E+00 + cg2d: Sum(rhs),rhsMax = 1.22093307686200E-13 8.54199816496535E+00 SH 5.2323490903098673 23.291656264335529 NH 10.438753008253457 25.558131386991079 - cg2d: Sum(rhs),rhsMax = 3.51343953930439E-13 8.39983291474608E+00 + cg2d: Sum(rhs),rhsMax = 3.18245430008801E-13 8.39983291474625E+00 SH 5.2374086797000814 23.293835068213980 NH 10.429688799511098 25.556353937950860 - cg2d: Sum(rhs),rhsMax = 3.16656423304806E-13 8.14938898212175E+00 + cg2d: Sum(rhs),rhsMax = 2.54872511984416E-13 8.14938898212197E+00 SH 5.2427959936439947 23.296876841109395 NH 10.420249419157130 25.555836778387174 - cg2d: Sum(rhs),rhsMax = 4.04655475794158E-13 7.83063880297591E+00 + cg2d: Sum(rhs),rhsMax = 3.75845188305135E-13 7.83063880297619E+00 SH 5.2484163264093127 23.300154888271607 NH 10.410965028924863 25.556641788659135 - cg2d: Sum(rhs),rhsMax = 4.41667535877599E-13 7.50867968286433E+00 + cg2d: Sum(rhs),rhsMax = 4.59965399102202E-13 7.50867968286451E+00 SH 5.2541904104915034 23.303266144140309 NH 10.402332418372737 25.558401819331152 - cg2d: Sum(rhs),rhsMax = 4.82246187427648E-13 7.13635422716987E+00 + cg2d: Sum(rhs),rhsMax = 4.20767587439030E-13 7.13635422717006E+00 SH 5.2600262437351830 23.306034201381010 NH 10.394646889949001 25.560572844738886 - cg2d: Sum(rhs),rhsMax = 5.82763004519649E-13 6.72826174842132E+00 + cg2d: Sum(rhs),rhsMax = 5.87523085737729E-13 6.72826174842146E+00 SH 5.2658101487857607 23.308436100618223 NH 10.387931795717861 25.562670281140015 - cg2d: Sum(rhs),rhsMax = 3.07635861229727E-13 6.29061611882678E+00 + cg2d: Sum(rhs),rhsMax = 3.06317471387985E-13 6.29061611882689E+00 SH 5.2714099940886285 23.310526880376244 NH 10.381968236890202 25.564392021163712 - cg2d: Sum(rhs),rhsMax = 3.09655079355764E-13 5.82354058045789E+00 + cg2d: Sum(rhs),rhsMax = 2.51784704197178E-13 5.82354058045788E+00 SH 5.2766834570720675 23.312391020460154 - NH 10.376388653405570 25.565627356801258 - cg2d: Sum(rhs),rhsMax = 3.50788842418126E-13 5.32772671306349E+00 + NH 10.376388653405627 25.565627356801258 + cg2d: Sum(rhs),rhsMax = 2.17798001855840E-13 5.32772671306348E+00 SH 5.2814869181208906 23.314118057944484 NH 10.370786591376486 25.566397306015574 - cg2d: Sum(rhs),rhsMax = 4.24368873375158E-13 4.81328439565244E+00 + cg2d: Sum(rhs),rhsMax = 2.89337998005124E-13 4.81328439565247E+00 SH 5.2856831426076951 23.315790054264824 NH 10.364805610090059 25.566780027352706 - cg2d: Sum(rhs),rhsMax = 5.19966014689288E-13 4.27688077867098E+00 - SH 5.2891470916899834 23.317472841937274 + cg2d: Sum(rhs),rhsMax = 4.28740376534620E-13 4.27688077867096E+00 + SH 5.2891470916899834 23.317472841937217 NH 10.358190016896174 25.566855652568336 - cg2d: Sum(rhs),rhsMax = 5.28826982204578E-13 4.08273968416910E+00 + cg2d: Sum(rhs),rhsMax = 4.16749967868668E-13 4.08273968416901E+00 SH 5.2917698105745785 23.319209669495365 NH 10.350797384899920 25.566681379024772 - cg2d: Sum(rhs),rhsMax = 4.09353106967103E-13 4.69596424969276E+00 + cg2d: Sum(rhs),rhsMax = 3.84185738777632E-13 4.69596424969233E+00 SH 5.2934606150915329 23.321019005534538 - NH 10.342582254652029 25.566293874565417 - cg2d: Sum(rhs),rhsMax = 4.46753745109163E-13 5.24143688831332E+00 + NH 10.342582254651973 25.566293874565417 + cg2d: Sum(rhs),rhsMax = 3.12888603914985E-13 5.24143688831298E+00 SH 5.2941479979523365 23.322897532601303 NH 10.333566201855206 25.565715210295195 - cg2d: Sum(rhs),rhsMax = 3.75068032187897E-13 5.71014649554047E+00 + cg2d: Sum(rhs),rhsMax = 2.73975286901873E-13 5.71014649554014E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - ph-1 in thsice_cost_final - ph-3 in thsice_cost_final - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.371967818527124D-01 - local fc = -0.371967818527124D-01 - global fc = -0.371967818527124D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -3.71967818527124E-02 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.371967818527106D-01 +(PID.TID 0000.0001) local fc = -0.371967818527106D-01 +(PID.TID 0000.0001) global fc = -0.371967818527106D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -3.71967818527106E-02 grad-res ------------------------------- grad-res 0 1 44 2 1 1 1 1 -3.71967820066E-02 -3.71967821606E-02 -3.71967818527E-02 - grad-res 0 1 1 1 0 1 1 1 -1.53957497164E-08 -1.53958287091E-08 -5.13081585751E-06 -(PID.TID 0000.0001) ADM ref_cost_function = -3.71967820065626E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.53957497163737E-08 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.53958287091305E-08 + grad-res 0 1 1 1 0 1 1 1 -1.53957497164E-08 -1.53958387705E-08 -5.78433362608E-06 +(PID.TID 0000.0001) ADM ref_cost_function = -3.71967820065632E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.53957497163739E-08 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.53958387705266E-08 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 29138 2 @@ -2281,70 +2725,67 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201334270583857 23.297498128510995 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = 2.16528184271425E-14 8.72197575654960E+00 + cg2d: Sum(rhs),rhsMax = 1.39332989590457E-14 8.72197575654960E+00 SH 5.2213357268121854 23.295110577694288 NH 10.461108876580226 25.564424809918648 - cg2d: Sum(rhs),rhsMax = 1.24230487008603E-13 8.58491923234548E+00 + cg2d: Sum(rhs),rhsMax = 8.47863446118424E-14 8.58491923234558E+00 SH 5.2239899090945414 23.292331045714661 NH 10.454544438173912 25.562857148969101 - cg2d: Sum(rhs),rhsMax = 1.67837965747708E-13 8.57300301428348E+00 + cg2d: Sum(rhs),rhsMax = 1.77181186389319E-13 8.57300301428362E+00 SH 5.2278031079794687 23.291025404036702 NH 10.447075395383706 25.560581832021569 - cg2d: Sum(rhs),rhsMax = 1.43406120312051E-13 8.54199816341439E+00 + cg2d: Sum(rhs),rhsMax = 1.36786415527723E-13 8.54199816341448E+00 SH 5.2323771548610694 23.291656443887064 NH 10.438753008352990 25.558131387399897 - cg2d: Sum(rhs),rhsMax = 3.97605559587788E-13 8.39983291123391E+00 + cg2d: Sum(rhs),rhsMax = 3.46320194744010E-13 8.39983291123405E+00 SH 5.2374366157289387 23.293835283304702 NH 10.429688799724431 25.556353938620191 - cg2d: Sum(rhs),rhsMax = 2.72656897060131E-13 8.14938897566263E+00 + cg2d: Sum(rhs),rhsMax = 3.51801920928096E-13 8.14938897566275E+00 SH 5.2428237903615695 23.296877091418480 NH 10.420249419522293 25.555836779285016 - cg2d: Sum(rhs),rhsMax = 3.74061892571831E-13 7.83063879303954E+00 + cg2d: Sum(rhs),rhsMax = 4.21503110192845E-13 7.83063879303958E+00 SH 5.2484439982684989 23.300155173541270 NH 10.410965029442991 25.556641789681009 - cg2d: Sum(rhs),rhsMax = 4.81559236931162E-13 7.50867966982532E+00 + cg2d: Sum(rhs),rhsMax = 4.48398262964389E-13 7.50867966982543E+00 SH 5.2542179726058862 23.303266464150965 NH 10.402332418996139 25.558401820350298 - cg2d: Sum(rhs),rhsMax = 5.26384491550402E-13 7.13635421237813E+00 + cg2d: Sum(rhs),rhsMax = 4.58313942353072E-13 7.13635421237808E+00 SH 5.2600537024886762 23.306034555906137 NH 10.394646890593151 25.560572845661966 - cg2d: Sum(rhs),rhsMax = 5.52648204976691E-13 6.72826173378720E+00 + cg2d: Sum(rhs),rhsMax = 6.04911953860920E-13 6.72826173378721E+00 SH 5.2658375031680862 23.308436489402823 NH 10.387931796291639 25.562670281933833 - cg2d: Sum(rhs),rhsMax = 3.77260722661532E-13 6.29061610616139E+00 + cg2d: Sum(rhs),rhsMax = 3.15976411702223E-13 6.29061610616144E+00 SH 5.2714372402481331 23.310527303142294 NH 10.381968237327385 25.564392021848789 - cg2d: Sum(rhs),rhsMax = 3.18946258293096E-13 5.82354057091309E+00 + cg2d: Sum(rhs),rhsMax = 3.02501079740836E-13 5.82354057091319E+00 SH 5.2767105917858430 23.312391476923892 NH 10.376388653682454 25.565627357426592 - cg2d: Sum(rhs),rhsMax = 2.64649413495022E-13 5.32772670691110E+00 + cg2d: Sum(rhs),rhsMax = 3.30256655356465E-13 5.32772670691123E+00 SH 5.2815139403248281 23.314118547832152 NH 10.370786591511035 25.566397306633576 - cg2d: Sum(rhs),rhsMax = 3.79966891284056E-13 4.81328439247409E+00 + cg2d: Sum(rhs),rhsMax = 2.98677749199783E-13 4.81328439247417E+00 SH 5.2857100536156167 23.315790577322105 NH 10.364805610127746 25.566780028006690 - cg2d: Sum(rhs),rhsMax = 4.49064396779164E-13 4.27688077774310E+00 + cg2d: Sum(rhs),rhsMax = 4.59257631924004E-13 4.27688077774318E+00 SH 5.2891738947913041 23.317473397931735 NH 10.358190016891854 25.566855653290588 - cg2d: Sum(rhs),rhsMax = 4.27838320327112E-13 4.08273968521706E+00 + cg2d: Sum(rhs),rhsMax = 4.34020874795493E-13 4.08273968521689E+00 SH 5.2917965103699203 23.319210258214753 NH 10.350797384903501 25.566681379840020 - cg2d: Sum(rhs),rhsMax = 2.77715350716079E-13 4.69596425165899E+00 + cg2d: Sum(rhs),rhsMax = 3.65200925056541E-13 4.69596425165896E+00 SH 5.2934872167308527 23.321019626781776 - NH 10.342582254700403 25.566293875494353 - cg2d: Sum(rhs),rhsMax = 3.89112353449406E-13 5.24143689084384E+00 + NH 10.342582254700403 25.566293875494296 + cg2d: Sum(rhs),rhsMax = 3.69579367109907E-13 5.24143689084374E+00 SH 5.2941745064091492 23.322898186189491 NH 10.333566201970655 25.565715211355837 - cg2d: Sum(rhs),rhsMax = 3.17947057570933E-13 5.71014649814151E+00 + cg2d: Sum(rhs),rhsMax = 2.67182109769948E-13 5.71014649814137E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - ph-1 in thsice_cost_final - ph-3 in thsice_cost_final - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.371967821434007D-01 - local fc = -0.371967821434007D-01 - global fc = -0.371967821434007D-01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -3.71967821434007E-02 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.371967821433998D-01 +(PID.TID 0000.0001) local fc = -0.371967821433998D-01 +(PID.TID 0000.0001) global fc = -0.371967821433998D-01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -3.71967821433998E-02 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2358,76 +2799,73 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -9.40914013369820E-15 7.56835956534411E+00 SH 5.2201055357530208 23.297498092456351 NH 10.466538306882399 25.565240031177893 - cg2d: Sum(rhs),rhsMax = 3.11001224773122E-14 8.72197575655813E+00 + cg2d: Sum(rhs),rhsMax = 1.79335712946482E-14 8.72197575655813E+00 SH 5.2213077469803579 23.295110505872913 NH 10.461108876579488 25.564424809910292 - cg2d: Sum(rhs),rhsMax = 1.28824034772990E-13 8.58491923245957E+00 + cg2d: Sum(rhs),rhsMax = 9.85982129275698E-14 8.58491923245967E+00 SH 5.2239617970200811 23.292330937983650 NH 10.454544438166636 25.562857148905209 - cg2d: Sum(rhs),rhsMax = 1.69201458399826E-13 8.57300301477123E+00 + cg2d: Sum(rhs),rhsMax = 1.57141660794835E-13 8.57300301477131E+00 SH 5.2277749414750474 23.291025260281288 NH 10.447075395351249 25.560581831835407 - cg2d: Sum(rhs),rhsMax = 1.47128836891497E-13 8.54199816484020E+00 + cg2d: Sum(rhs),rhsMax = 1.33764527232572E-13 8.54199816484029E+00 SH 5.2323490408621751 23.291656264225253 NH 10.438753008259539 25.558131387009780 - cg2d: Sum(rhs),rhsMax = 3.53439499889419E-13 8.39983291447280E+00 + cg2d: Sum(rhs),rhsMax = 3.62779251084078E-13 8.39983291447291E+00 SH 5.2374086163554239 23.293835068023270 NH 10.429688799523205 25.556353937978770 - cg2d: Sum(rhs),rhsMax = 2.79144762860284E-13 8.14938898165323E+00 + cg2d: Sum(rhs),rhsMax = 3.06608904931949E-13 8.14938898165335E+00 SH 5.2427959152182666 23.296876840818243 NH 10.420249419175775 25.555836778419348 - cg2d: Sum(rhs),rhsMax = 3.89320520266523E-13 7.83063880232717E+00 + cg2d: Sum(rhs),rhsMax = 4.47704373573998E-13 7.83063880232733E+00 SH 5.2484162325908414 23.300154887864437 NH 10.410965028947487 25.556641788688466 - cg2d: Sum(rhs),rhsMax = 4.54997151067005E-13 7.50867968213432E+00 + cg2d: Sum(rhs),rhsMax = 4.78457551356115E-13 7.50867968213449E+00 SH 5.2541903013832325 23.303266143602514 NH 10.402332418393996 25.558401819352241 - cg2d: Sum(rhs),rhsMax = 4.30641633464290E-13 7.13635422652038E+00 - SH 5.2600261196207043 23.306034200695763 + cg2d: Sum(rhs),rhsMax = 4.58660887048268E-13 7.13635422652065E+00 + SH 5.2600261196207043 23.306034200695706 NH 10.394646889962928 25.560572844750197 - cg2d: Sum(rhs),rhsMax = 5.91811322170344E-13 6.72826174801940E+00 + cg2d: Sum(rhs),rhsMax = 6.25145768484714E-13 6.72826174801970E+00 SH 5.2658100100883871 23.308436099766652 NH 10.387931795720192 25.562670281143255 - cg2d: Sum(rhs),rhsMax = 3.36751460050522E-13 6.29061611878358E+00 + cg2d: Sum(rhs),rhsMax = 3.09696712719187E-13 6.29061611878387E+00 SH 5.2714098413931652 23.310526879338795 NH 10.381968236880027 25.564392021161666 - cg2d: Sum(rhs),rhsMax = 2.51763887515466E-13 5.82354058079576E+00 + cg2d: Sum(rhs),rhsMax = 2.80629686155720E-13 5.82354058079601E+00 SH 5.2766832911291885 23.312391019217841 NH 10.376388653385504 25.565627356796313 - cg2d: Sum(rhs),rhsMax = 2.47232789796215E-13 5.32772671372097E+00 + cg2d: Sum(rhs),rhsMax = 2.49834875010180E-13 5.32772671372125E+00 SH 5.2814867398175238 23.314118056479856 NH 10.370786591351134 25.566397306008753 - cg2d: Sum(rhs),rhsMax = 3.26780269510607E-13 4.81328439651968E+00 + cg2d: Sum(rhs),rhsMax = 3.45765083231697E-13 4.81328439652005E+00 SH 5.2856829529216611 23.315790052562363 NH 10.364805610064536 25.566780027344180 - cg2d: Sum(rhs),rhsMax = 4.56717996755174E-13 4.27688077962971E+00 - SH 5.2891468916468511 23.317472839983111 + cg2d: Sum(rhs),rhsMax = 4.60124993661992E-13 4.27688077963017E+00 + SH 5.2891468916468511 23.317472839983168 NH 10.358190016874801 25.566855652558388 - cg2d: Sum(rhs),rhsMax = 4.40279757096818E-13 4.08273968492202E+00 + cg2d: Sum(rhs),rhsMax = 4.28976298927353E-13 4.08273968492165E+00 SH 5.2917696012132183 23.319209667277732 - NH 10.350797384885482 25.566681379014256 - cg2d: Sum(rhs),rhsMax = 3.33642835581571E-13 4.69596425036451E+00 + NH 10.350797384885482 25.566681379014199 + cg2d: Sum(rhs),rhsMax = 3.50913742508396E-13 4.69596425036395E+00 SH 5.2934603974383663 23.321019003043148 NH 10.342582254645833 25.566293874555640 - cg2d: Sum(rhs),rhsMax = 4.16333634234434E-13 5.24143688885200E+00 + cg2d: Sum(rhs),rhsMax = 3.42573192035900E-13 5.24143688885153E+00 SH 5.2941477730013276 23.322897529827458 NH 10.333566201857593 25.565715210287578 - cg2d: Sum(rhs),rhsMax = 2.30045149596236E-13 5.71014649589941E+00 + cg2d: Sum(rhs),rhsMax = 2.80678258413047E-13 5.71014649589878E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - ph-1 in thsice_cost_final - ph-3 in thsice_cost_final - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = -0.371967818699053D-01 - local fc = -0.371967818699053D-01 - global fc = -0.371967818699053D-01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -3.71967818699053E-02 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_atl(bi,bj) = -0.371967818699044D-01 +(PID.TID 0000.0001) local fc = -0.371967818699044D-01 +(PID.TID 0000.0001) global fc = -0.371967818699044D-01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -3.71967818699044E-02 grad-res ------------------------------- grad-res 0 2 45 2 1 1 1 1 -3.71967820066E-02 -3.71967821434E-02 -3.71967818699E-02 - grad-res 0 2 2 2 0 1 1 1 -1.36746649794E-08 -1.36747717316E-08 -7.80657355226E-06 -(PID.TID 0000.0001) ADM ref_cost_function = -3.71967820065626E-02 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.36746649793641E-08 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.36747717316421E-08 + grad-res 0 2 2 2 0 1 1 1 -1.36746649794E-08 -1.36747703439E-08 -7.70508817327E-06 +(PID.TID 0000.0001) ADM ref_cost_function = -3.71967820065632E-02 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.36746649793639E-08 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.36747703438633E-08 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2441,185 +2879,191 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 44 2 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 -3.7196782006563E-02 -3.7196782160629E-02 -3.7196781852712E-02 -(PID.TID 0000.0001) grdchk output (g): 1 -1.5395828709130E-08 -1.5395749716374E-08 -5.1308158575125E-06 +(PID.TID 0000.0001) grdchk output (c): 1 -3.7196782006563E-02 -3.7196782160627E-02 -3.7196781852711E-02 +(PID.TID 0000.0001) grdchk output (g): 1 -1.5395838770527E-08 -1.5395749716374E-08 -5.7843336260799E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 45 2 1 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 -3.7196782006563E-02 -3.7196782143401E-02 -3.7196781869905E-02 -(PID.TID 0000.0001) grdchk output (g): 2 -1.3674771731642E-08 -1.3674664979364E-08 -7.8065735522603E-06 +(PID.TID 0000.0001) grdchk output (c): 2 -3.7196782006563E-02 -3.7196782143400E-02 -3.7196781869904E-02 +(PID.TID 0000.0001) grdchk output (g): 2 -1.3674770343863E-08 -1.3674664979364E-08 -7.7050881732710E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 2 ratios = 6.6055984585256E-06 +(PID.TID 0000.0001) grdchk summary : RMS of 2 ratios = 6.8127417115167E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 159.14000000000001 -(PID.TID 0000.0001) System time: 0.48999999999999999 -(PID.TID 0000.0001) Wall clock time: 161.51889920234680 +(PID.TID 0000.0001) User time: 90.297768074320629 +(PID.TID 0000.0001) System time: 0.69193202257156372 +(PID.TID 0000.0001) Wall clock time: 91.026681900024414 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.22000000000000000 -(PID.TID 0000.0001) System time: 2.00000000000000004E-002 -(PID.TID 0000.0001) Wall clock time: 0.56264901161193848 +(PID.TID 0000.0001) User time: 7.5956003041937947E-002 +(PID.TID 0000.0001) System time: 2.6228999719023705E-002 +(PID.TID 0000.0001) Wall clock time: 0.10654902458190918 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 94.980000000000004 -(PID.TID 0000.0001) System time: 0.45000000000000001 -(PID.TID 0000.0001) Wall clock time: 96.793227910995483 +(PID.TID 0000.0001) User time: 53.852464415132999 +(PID.TID 0000.0001) System time: 0.64170001447200775 +(PID.TID 0000.0001) Wall clock time: 54.520519971847534 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 95.480000000000103 -(PID.TID 0000.0001) System time: 7.00000000000000622E-002 -(PID.TID 0000.0001) Wall clock time: 95.983871936798096 +(PID.TID 0000.0001) User time: 54.884167641401291 +(PID.TID 0000.0001) System time: 4.2994983494281769E-002 +(PID.TID 0000.0001) Wall clock time: 54.940465688705444 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.36146354675292969E-003 +(PID.TID 0000.0001) User time: 2.8808414936065674E-003 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 2.8946399688720703E-003 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.33252143859863281E-003 +(PID.TID 0000.0001) User time: 1.1911690235137939E-003 +(PID.TID 0000.0001) System time: 4.8980116844177246E-005 +(PID.TID 0000.0001) Wall clock time: 1.1522769927978516E-003 (PID.TID 0000.0001) No. starts: 140 (PID.TID 0000.0001) No. stops: 140 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.1230869293212891E-004 +(PID.TID 0000.0001) System time: 3.9935111999511719E-006 +(PID.TID 0000.0001) Wall clock time: 9.4127655029296875E-004 +(PID.TID 0000.0001) No. starts: 120 +(PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "EBM [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.28999999999999204 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.28806734085083008 +(PID.TID 0000.0001) User time: 0.23655369877815247 +(PID.TID 0000.0001) System time: 4.0396302938461304E-004 +(PID.TID 0000.0001) Wall clock time: 0.23717570304870605 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.10316276550292969E-003 +(PID.TID 0000.0001) User time: 6.0423970222473145E-002 +(PID.TID 0000.0001) System time: 5.8971345424652100E-005 +(PID.TID 0000.0001) Wall clock time: 6.0526847839355469E-002 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 12.789999999999964 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 12.798147439956665 +(PID.TID 0000.0001) User time: 7.0187797248363495 +(PID.TID 0000.0001) System time: 3.8790106773376465E-003 +(PID.TID 0000.0001) Wall clock time: 7.0281097888946533 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 24.959999999999980 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 25.012357234954834 +(PID.TID 0000.0001) User time: 15.226594209671021 +(PID.TID 0000.0001) System time: 1.9409000873565674E-002 +(PID.TID 0000.0001) Wall clock time: 15.248228549957275 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 35.149999999999977 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 35.247949361801147 +(PID.TID 0000.0001) User time: 18.648411273956299 +(PID.TID 0000.0001) System time: 7.8360140323638916E-003 +(PID.TID 0000.0001) Wall clock time: 18.662126064300537 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.409999999999997 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 16.457117080688477 +(PID.TID 0000.0001) User time: 9.9624993205070496 +(PID.TID 0000.0001) System time: 2.4020671844482422E-005 +(PID.TID 0000.0001) Wall clock time: 9.9633789062500000 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.71000000000000796 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.69007325172424316 +(PID.TID 0000.0001) User time: 0.57200491428375244 +(PID.TID 0000.0001) System time: 6.9007277488708496E-005 +(PID.TID 0000.0001) Wall clock time: 0.57236766815185547 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1999999999999886 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2197821140289307 +(PID.TID 0000.0001) User time: 0.71215337514877319 +(PID.TID 0000.0001) System time: 3.2007694244384766E-005 +(PID.TID 0000.0001) Wall clock time: 0.71244406700134277 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.31999999999990791 +(PID.TID 0000.0001) User time: 1.0504722595214844E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.35293221473693848 +(PID.TID 0000.0001) Wall clock time: 1.0113716125488281E-003 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.49000000000009436 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.47250080108642578 +(PID.TID 0000.0001) User time: 0.30315977334976196 +(PID.TID 0000.0001) System time: 2.8029084205627441E-005 +(PID.TID 0000.0001) Wall clock time: 0.30340957641601562 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.95999999999997954 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.98884296417236328 +(PID.TID 0000.0001) User time: 0.54105317592620850 +(PID.TID 0000.0001) System time: 8.0466270446777344E-006 +(PID.TID 0000.0001) Wall clock time: 0.54120111465454102 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 1.9389390945434570E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.21967697143554688E-004 +(PID.TID 0000.0001) Wall clock time: 1.9121170043945312E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.8700000000000045 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.8560354709625244 +(PID.TID 0000.0001) User time: 1.4162581562995911 +(PID.TID 0000.0001) System time: 3.9240121841430664E-003 +(PID.TID 0000.0001) Wall clock time: 1.4204835891723633 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.24000000000000909 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 0.36638045310974121 +(PID.TID 0000.0001) User time: 0.12518036365509033 +(PID.TID 0000.0001) System time: 7.1680098772048950E-003 +(PID.TID 0000.0001) Wall clock time: 0.13233041763305664 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.00000000000022737E-002 -(PID.TID 0000.0001) System time: 5.00000000000000444E-002 -(PID.TID 0000.0001) Wall clock time: 0.20424556732177734 +(PID.TID 0000.0001) User time: 3.6200404167175293E-002 +(PID.TID 0000.0001) System time: 2.7999281883239746E-005 +(PID.TID 0000.0001) Wall clock time: 3.6242485046386719E-002 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.00000000000022737E-002 +(PID.TID 0000.0001) User time: 1.0364532470703125E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.15470218658447266E-002 +(PID.TID 0000.0001) Wall clock time: 1.0366916656494141E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.00000000000022737E-002 -(PID.TID 0000.0001) System time: 9.99999999999995337E-003 -(PID.TID 0000.0001) Wall clock time: 5.83710670471191406E-002 +(PID.TID 0000.0001) User time: 7.9040527343750000E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.9150199890136719E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 63.820000000000007 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 64.022987842559814 +(PID.TID 0000.0001) User time: 36.350975036621094 +(PID.TID 0000.0001) System time: 2.3997008800506592E-002 +(PID.TID 0000.0001) Wall clock time: 36.381253004074097 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.31999999999999318 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 0.31936240196228027 +(PID.TID 0000.0001) User time: 0.21110534667968750 +(PID.TID 0000.0001) System time: 2.1994113922119141E-005 +(PID.TID 0000.0001) Wall clock time: 0.21115493774414062 (PID.TID 0000.0001) No. starts: 4 (PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 63.429999999999978 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 63.580344915390015 +(PID.TID 0000.0001) User time: 36.086559295654297 +(PID.TID 0000.0001) System time: 1.6005992889404297E-002 +(PID.TID 0000.0001) Wall clock time: 36.108816623687744 (PID.TID 0000.0001) No. starts: 4 (PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 62.530000000000058 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 62.677838802337646 +(PID.TID 0000.0001) User time: 35.601573944091797 +(PID.TID 0000.0001) System time: 1.6005992889404297E-002 +(PID.TID 0000.0001) Wall clock time: 35.623789787292480 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 3.4332275390625000E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.49283218383789063E-004 +(PID.TID 0000.0001) Wall clock time: 3.5309791564941406E-004 (PID.TID 0000.0001) No. starts: 4 (PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) // ====================================================== @@ -2637,9 +3081,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 117660 +(PID.TID 0000.0001) // No. barriers = 117640 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 117660 +(PID.TID 0000.0001) // Total barrier spins = 117640 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_with_exf/code/PROFILES_OPTIONS.h b/verification/global_with_exf/code/PROFILES_OPTIONS.h index a886854191..852ed7a7f8 100644 --- a/verification/global_with_exf/code/PROFILES_OPTIONS.h +++ b/verification/global_with_exf/code/PROFILES_OPTIONS.h @@ -9,12 +9,7 @@ C Use this file for selecting options within the PROFILES package #ifdef ALLOW_PROFILES C Package-specific Options & Macros go here -C Unless one uses a straight cartesian grid, the user needs -C to provide grid dependent interpolation points/coeffs, define -C ALLOW_PROFILES_GENERICGRID, and set profilesDoGenGrid to TRUE -# undef ALLOW_PROFILES_GENERICGRID - -C To use file units between 9 and 99 (seems to conflict +C To use file units between 9 and 999 (seems to conflict C with NF_OPEN some times, but is needed when using g77) #define PROFILES_USE_MDSFINDUNITS diff --git a/verification/global_with_exf/code_ad/COST_OPTIONS.h b/verification/global_with_exf/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..41c6475da2 --- /dev/null +++ b/verification/global_with_exf/code_ad/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_with_exf/code_ad/CPP_OPTIONS.h b/verification/global_with_exf/code_ad/CPP_OPTIONS.h index 1f37e9ad23..330c5c2e8b 100644 --- a/verification/global_with_exf/code_ad/CPP_OPTIONS.h +++ b/verification/global_with_exf/code_ad/CPP_OPTIONS.h @@ -133,7 +133,7 @@ C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. #ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" +c# include "ECCO_CPPOPTIONS.h" #endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/global_with_exf/code_ad/CTRL_OPTIONS.h b/verification/global_with_exf/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..e9e017ada9 --- /dev/null +++ b/verification/global_with_exf/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_with_exf/code_ad/CTRL_SIZE.h b/verification/global_with_exf/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..8e60d9cf32 --- /dev/null +++ b/verification/global_with_exf/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_with_exf/code_ad/ECCO_CPPOPTIONS.h b/verification/global_with_exf/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 5d822caf7f..0000000000 --- a/verification/global_with_exf/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,94 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< -cph#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< - -cph#define ALLOW_ECCO_FORWARD_RUN -#define ALLOW_ECCO_OPTIMIZATION - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically - -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C extend to 4-level checkpointing -#undef AUTODIFF_4_LEVEL_CHECKPOINT - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C o TAMC compatible subroutine parameter list -#undef AUTODIFF_TAMC_COMPATIBILITY - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -# define ALLOW_COST_TEST -# define ALLOW_COST_TSQUARED - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL - -C >>> Surface fluxes. -#define ALLOW_HFLUX_CONTROL -#define ALLOW_SFLUX_CONTROL -#define ALLOW_USTRESS_CONTROL -#define ALLOW_VSTRESS_CONTROL - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Relaxation to monthly climatologies. -#define ALLOW_CLIMSST_RELAXATION -#define ALLOW_CLIMSSS_RELAXATION - -#define USE_EXF_INTERPOLATION -#define EXF_INTERP_USE_DYNALLOC - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/global_with_exf/code_ad/EXF_OPTIONS.h b/verification/global_with_exf/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..ad4fcd4b4f --- /dev/null +++ b/verification/global_with_exf/code_ad/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#undef ALLOW_ATM_TEMP +#undef ALLOW_ATM_WIND +#undef ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#undef ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#define USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/global_with_exf/code_ad/SIZE.h b/verification/global_with_exf/code_ad/SIZE.h index 5e6dfcc1ec..0b5eacf16a 100644 --- a/verification/global_with_exf/code_ad/SIZE.h +++ b/verification/global_with_exf/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_with_exf/code_ad/SIZE.h_mpi b/verification/global_with_exf/code_ad/SIZE.h_mpi index 28659130a9..3ede9c2753 100644 --- a/verification/global_with_exf/code_ad/SIZE.h_mpi +++ b/verification/global_with_exf/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/global_with_exf/code_ad/tamc.h b/verification/global_with_exf/code_ad/tamc.h index 10c3cba987..1cdfa5ba28 100644 --- a/verification/global_with_exf/code_ad/tamc.h +++ b/verification/global_with_exf/code_ad/tamc.h @@ -1,133 +1,95 @@ -#include "PACKAGES_CONFIG.h" - - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising common -c blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c -c -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to -c be at least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be -c at least equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to -c be at least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 2 ) - integer nchklev_2 - parameter( nchklev_2 = 3 ) - integer nchklev_3 - parameter( nchklev_3 = 4 ) -cph integer nchklev_4 -cph parameter( nchklev_4 = 4 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 2 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 3 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 4 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 48 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube PARAMETER( maxcube = 1 ) - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/global_with_exf/code_tap/AUTODIFF_OPTIONS.h b/verification/global_with_exf/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..8c00872f93 --- /dev/null +++ b/verification/global_with_exf/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/global_with_exf/code_tap/COST_OPTIONS.h b/verification/global_with_exf/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..41c6475da2 --- /dev/null +++ b/verification/global_with_exf/code_tap/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/global_with_exf/code_tap/CPP_OPTIONS.h b/verification/global_with_exf/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..ee8cd5580c --- /dev/null +++ b/verification/global_with_exf/code_tap/CPP_OPTIONS.h @@ -0,0 +1,139 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#undef ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#define INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/global_with_exf/code_tap/CTRL_OPTIONS.h b/verification/global_with_exf/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..e9e017ada9 --- /dev/null +++ b/verification/global_with_exf/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/global_with_exf/code_tap/CTRL_SIZE.h b/verification/global_with_exf/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..8e60d9cf32 --- /dev/null +++ b/verification/global_with_exf/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_with_exf/code_tap/DIAGNOSTICS_SIZE.h b/verification/global_with_exf/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..d2993e3122 --- /dev/null +++ b/verification/global_with_exf/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,27 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numdiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numdiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numdiags + INTEGER nRegions, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numdiags = 6*Nr ) + PARAMETER( nRegions = 0 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_with_exf/code_tap/EXF_OPTIONS.h b/verification/global_with_exf/code_tap/EXF_OPTIONS.h new file mode 100644 index 0000000000..ad4fcd4b4f --- /dev/null +++ b/verification/global_with_exf/code_tap/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#undef ALLOW_ATM_TEMP +#undef ALLOW_ATM_WIND +#undef ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#undef ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#define USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/global_with_exf/code_tap/GMREDI_OPTIONS.h b/verification/global_with_exf/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..d77fd372c5 --- /dev/null +++ b/verification/global_with_exf/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,47 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/global_with_exf/code_tap/SIZE.h b/verification/global_with_exf/code_tap/SIZE.h new file mode 100644 index 0000000000..0b5eacf16a --- /dev/null +++ b/verification/global_with_exf/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 45, + & sNy = 40, + & OLx = 2, + & OLy = 2, + & nSx = 2, + & nSy = 1, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_with_exf/code_tap/SIZE.h_mpi b/verification/global_with_exf/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..3ede9c2753 --- /dev/null +++ b/verification/global_with_exf/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 45, + & sNy = 40, + & OLx = 2, + & OLy = 2, + & nSx = 1, + & nSy = 1, + & nPx = 2, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/global_with_exf/code_tap/packages.conf b/verification/global_with_exf/code_tap/packages.conf new file mode 100644 index 0000000000..d443f9e57c --- /dev/null +++ b/verification/global_with_exf/code_tap/packages.conf @@ -0,0 +1,8 @@ +#-- list of packages (or group of packages) to compile for this experiment: +gfd +cd_code +gmredi +exf + +tapenade +adjoint diff --git a/verification/global_with_exf/input.yearly/data.exf b/verification/global_with_exf/input.yearly/data.exf index f07b1dde9a..a30fb1cb4e 100644 --- a/verification/global_with_exf/input.yearly/data.exf +++ b/verification/global_with_exf/input.yearly/data.exf @@ -26,9 +26,9 @@ vstressstartdate2 = 000000, vstressperiod = 2592000.0, # - climsststartdate1 = 19910116, - climsststartdate2 = 000000, - climsstperiod = 2592000.0, +#climsststartdate1 = 19910116, +#climsststartdate2 = 000000, + climsstperiod = -1.0, # 2 months restoring timescale for temperature climsstTauRelax = 5184000., # diff --git a/verification/global_with_exf/input/data.exf b/verification/global_with_exf/input/data.exf index d3f15ba407..fd02e88818 100644 --- a/verification/global_with_exf/input/data.exf +++ b/verification/global_with_exf/input/data.exf @@ -24,9 +24,9 @@ #vstressstartdate2 = 000000, vstressperiod = -12., # -#climsststartdate1 = 19920101, -#climsststartdate2 = 000000, - climsstperiod = -12., + climsststartdate1 = 19911216, + climsststartdate2 = 000000, + climsstperiod = -1., # 2 months restoring timescale for temperature climsstTauRelax = 5184000., # @@ -40,7 +40,7 @@ #sfluxfile = 'ncep_emp.bin', ustressfile = 'trenberth_taux.bin', vstressfile = 'trenberth_tauy.bin', - climsstfile = 'lev_sst.bin', + climsstfile = 'lev_sst_startdec.tmp', climsssfile = 'lev_sss.bin', # & diff --git a/verification/global_with_exf/input/prepare_run b/verification/global_with_exf/input/prepare_run index a35e1b7cff..9b507622ad 100755 --- a/verification/global_with_exf/input/prepare_run +++ b/verification/global_with_exf/input/prepare_run @@ -8,20 +8,28 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi fi done echo ' link' $lnkList "from dir:" $fromDir + #- SST file: copy last month (=Dec) and append to the beginning + xx='lev_sst' ; inpFile=${fromDir}/${xx}.bin ; tmpFile=${xx}_startdec.tmp + if test -f $inpFile -a $tmpFile -ot $inpFile ; then + dd if=$inpFile bs=14400 count=1 skip=11 of=${xx}_dec.tmp 2> /dev/null + cat ${xx}_dec.tmp $inpFile > $tmpFile + #rm -rf ${xx}_dec.tmp + echo ' + add 1 record to' $inpFile '-->' $tmpFile + fi else echo " Error:" $fromDir "not a directory" fi diff --git a/verification/global_with_exf/input_ad/data b/verification/global_with_exf/input_ad/data index 1a67dd5d54..024661f135 100644 --- a/verification/global_with_exf/input_ad/data +++ b/verification/global_with_exf/input_ad/data @@ -40,24 +40,20 @@ # Time stepping parameters &PARM03 - nIter0 = 0, - nTimeSteps = 20, -# 100 years of integration will yield a reasonable flow field -# startTime = 0., -# endTime = 3110400000., - deltaTmom = 1200.0, + nIter0 = 0, + nTimeSteps= 20, +#- 100 years of integration will yield a reasonable flow field +# endTime = 3110400000., + deltaTmom = 1200., tauCD = 321428., - deltaTtracer= 43200.0, - deltaTClock = 43200.0, -# if you are using a version later than checkpoint45d on the main branch -# you can uncomment the following line and increase the time step -# deltaTtracer and deltaTClock to 172800.0 as well to speed up the -# asynchronous time stepping -# deltaTfreesurf = 172800.0, + deltaTtracer= 43200., + deltaTClock = 43200., abEps = 0.1, pChkptFreq= 311040000., - dumpFreq= 311040000., - monitorFreq=1., + dumpFreq = 311040000., + monitorSelect= 2, + monitorFreq = 432000., + adjMonitorFreq=259200., & # Gridding parameters diff --git a/verification/global_with_exf/input_ad/data.ctrl b/verification/global_with_exf/input_ad/data.ctrl index c38994bc89..041cbe1ecc 100644 --- a/verification/global_with_exf/input_ad/data.ctrl +++ b/verification/global_with_exf/input_ad/data.ctrl @@ -1,83 +1,8 @@ -# -# # ********************* # ECCO controlvariables # ********************* &CTRL_NML # doSinglePrecTapelev=.TRUE., -# - xx_hfluxstartdate1 = 19920101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, -# - xx_sfluxstartdate1 = 19920101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, -# - xx_tauustartdate1 = 19920101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, -# - xx_tauvstartdate1 = 19920101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, -# - xx_atempstartdate1 = 19920101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, -# - xx_aqhstartdate1 = 19920101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, -# - xx_precipstartdate1 = 19920101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, -# - xx_swfluxstartdate1 = 19920101, - xx_swfluxstartdate2 = 000000, - xx_swfluxperiod = 864000.0, -# - xx_swdownstartdate1 = 19920101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, -# - xx_lwfluxstartdate1 = 19920101, - xx_lwfluxstartdate2 = 000000, - xx_lwfluxperiod = 864000.0, -# - xx_lwdownstartdate1 = 19920101, - xx_lwdownstartdate2 = 000000, - xx_lwdownperiod = 864000.0, -# - xx_evapstartdate1 = 19920101, - xx_evapstartdate2 = 000000, - xx_evapperiod = 864000.0, -# - xx_snowprecipstartdate1 = 19920101, - xx_snowprecipstartdate2 = 000000, - xx_snowprecipperiod = 864000.0, -# - xx_apressurestartdate1 = 19920101, - xx_apressurestartdate2 = 000000, - xx_apressureperiod = 864000.0, -# - xx_uwindstartdate1 = 19920101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, -# - xx_vwindstartdate1 = 19920101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, -# - xx_sststartdate1 = 19920101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, -# - xx_sssstartdate1 = 19920101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, -# & # # ********************* @@ -85,3 +10,41 @@ # ********************* &CTRL_PACKNAMES & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +# + xx_gentim2d_file(1) = 'xx_qnet', + xx_gentim2d_weight(1) = 'ones_64b.bin', + xx_gentim2d_startdate1(1) = 19920101, + xx_gentim2d_startdate2(1) = 000000, + xx_gentim2d_period(1) = 864000.0, +# + xx_gentim2d_file(2) = 'xx_empmr', + xx_gentim2d_weight(2) = 'ones_64b.bin', + xx_gentim2d_startdate1(2) = 19920101, + xx_gentim2d_startdate2(2) = 000000, + xx_gentim2d_period(2) = 864000.0, +# + xx_gentim2d_file(3) = 'xx_fu', + xx_gentim2d_weight(3) = 'ones_64b.bin', + xx_gentim2d_startdate1(3) = 19920101, + xx_gentim2d_startdate2(3) = 000000, + xx_gentim2d_period(3) = 864000.0, +# + xx_gentim2d_file(4) = 'xx_fv', + xx_gentim2d_weight(4) = 'ones_64b.bin', + xx_gentim2d_startdate1(4) = 19920101, + xx_gentim2d_startdate2(4) = 000000, + xx_gentim2d_period(4) = 864000.0, +# + & diff --git a/verification/global_with_exf/input_ad/data.exf b/verification/global_with_exf/input_ad/data.exf index 57891aa1f6..a0cf53e224 100644 --- a/verification/global_with_exf/input_ad/data.exf +++ b/verification/global_with_exf/input_ad/data.exf @@ -5,6 +5,8 @@ exf_iprec = 32, exf_debugLev = 3, #readStressOnAgrid = .TRUE., + exf_adjMonSelect = 3, + exf_adjMonFreq = 864000., & # ********************* diff --git a/verification/global_with_exf/input_ad/data.grdchk b/verification/global_with_exf/input_ad/data.grdchk index 758fd0655b..aa3fb4931e 100644 --- a/verification/global_with_exf/input_ad/data.grdchk +++ b/verification/global_with_exf/input_ad/data.grdchk @@ -3,12 +3,12 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-4, + grdchk_eps = 1., # nbeg = 4, iGloPos = 4, jGloPos = 8, kGloPos = 1, nstep = 1, nend = 4, - grdchkvarindex = 3, + grdchkvarindex = 301, & diff --git a/verification/global_with_exf/input_ad/prepare_run b/verification/global_with_exf/input_ad/prepare_run index a35e1b7cff..2545cd9ab3 100755 --- a/verification/global_with_exf/input_ad/prepare_run +++ b/verification/global_with_exf/input_ad/prepare_run @@ -8,14 +8,14 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -26,3 +26,26 @@ else echo " Error:" $fromDir "not a directory" fi +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_with_exf/input_tap/prepare_run b/verification/global_with_exf/input_tap/prepare_run new file mode 100755 index 0000000000..a870a6351b --- /dev/null +++ b/verification/global_with_exf/input_tap/prepare_run @@ -0,0 +1,77 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../tutorial_global_oce_latlon/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/global_with_exf/results/output_adm.txt b/verification/global_with_exf/results/output_adm.txt index a04cf7659d..2b533f75ce 100644 --- a/verification/global_with_exf/results/output_adm.txt +++ b/verification/global_with_exf/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed Oct 5 22:33:43 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:07:54 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -129,24 +131,20 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 -(PID.TID 0000.0001) > nIter0 = 0, -(PID.TID 0000.0001) > nTimeSteps = 20, -(PID.TID 0000.0001) ># 100 years of integration will yield a reasonable flow field -(PID.TID 0000.0001) ># startTime = 0., -(PID.TID 0000.0001) ># endTime = 3110400000., -(PID.TID 0000.0001) > deltaTmom = 1200.0, +(PID.TID 0000.0001) > nIter0 = 0, +(PID.TID 0000.0001) > nTimeSteps= 20, +(PID.TID 0000.0001) >#- 100 years of integration will yield a reasonable flow field +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTmom = 1200., (PID.TID 0000.0001) > tauCD = 321428., -(PID.TID 0000.0001) > deltaTtracer= 43200.0, -(PID.TID 0000.0001) > deltaTClock = 43200.0, -(PID.TID 0000.0001) ># if you are using a version later than checkpoint45d on the main branch -(PID.TID 0000.0001) ># you can uncomment the following line and increase the time step -(PID.TID 0000.0001) ># deltaTtracer and deltaTClock to 172800.0 as well to speed up the -(PID.TID 0000.0001) ># asynchronous time stepping -(PID.TID 0000.0001) ># deltaTfreesurf = 172800.0, +(PID.TID 0000.0001) > deltaTtracer= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., (PID.TID 0000.0001) > abEps = 0.1, (PID.TID 0000.0001) > pChkptFreq= 311040000., -(PID.TID 0000.0001) > dumpFreq= 311040000., -(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > dumpFreq = 311040000., +(PID.TID 0000.0001) > monitorSelect= 2, +(PID.TID 0000.0001) > monitorFreq = 432000., +(PID.TID 0000.0001) > adjMonitorFreq=259200., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters @@ -188,11 +186,11 @@ (PID.TID 0000.0001) ># Packages (PID.TID 0000.0001) > &PACKAGES (PID.TID 0000.0001) > useEXF = .TRUE., -(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > useCAL = .TRUE., (PID.TID 0000.0001) > useGMRedi = .TRUE., -(PID.TID 0000.0001) >## useDiagnostics = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) ># useDiagnostics = .TRUE., (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary @@ -245,7 +243,9 @@ (PID.TID 0000.0001) > &EXF_NML_01 (PID.TID 0000.0001) > exf_iprec = 32, (PID.TID 0000.0001) > exf_debugLev = 3, -(PID.TID 0000.0001) > readStressOnAgrid = .TRUE., +(PID.TID 0000.0001) >#readStressOnAgrid = .TRUE., +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 864000., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># ********************* @@ -307,7 +307,7 @@ (PID.TID 0000.0001) > sflux_nlon = 90, (PID.TID 0000.0001) > sflux_nlat = 40, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > ustress_lon0 = 0., +(PID.TID 0000.0001) > ustress_lon0 = 2., (PID.TID 0000.0001) > ustress_lon_inc = 4., (PID.TID 0000.0001) > ustress_lat0 = -78., (PID.TID 0000.0001) > ustress_lat_inc = 39*4., @@ -316,11 +316,12 @@ (PID.TID 0000.0001) ># (PID.TID 0000.0001) > vstress_lon0 = 2., (PID.TID 0000.0001) > vstress_lon_inc = 4., -(PID.TID 0000.0001) > vstress_lat0 = -80., +(PID.TID 0000.0001) > vstress_lat0 = -78., (PID.TID 0000.0001) > vstress_lat_inc = 39*4., (PID.TID 0000.0001) > vstress_nlon = 90, (PID.TID 0000.0001) > vstress_nlat = 40, (PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsst_interpMethod = 1, (PID.TID 0000.0001) > climsst_lon0 = 2., (PID.TID 0000.0001) > climsst_lon_inc = 4., (PID.TID 0000.0001) > climsst_lat0 = -78., @@ -328,6 +329,7 @@ (PID.TID 0000.0001) > climsst_nlon = 90, (PID.TID 0000.0001) > climsst_nlat = 40, (PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsss_interpMethod = 1, (PID.TID 0000.0001) > climsss_lon0 = 2., (PID.TID 0000.0001) > climsss_lon_inc = 4., (PID.TID 0000.0001) > climsss_lat0 = -78., @@ -340,6 +342,7 @@ (PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 (PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 (PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_04 (PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf (PID.TID 0000.0001) GM_READPARMS: opening data.gmredi (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi @@ -399,6 +402,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -420,9 +429,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -443,95 +461,59 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML (PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19920101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swfluxstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_swfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swfluxperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwfluxstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_lwfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwfluxperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwdownstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_lwdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwdownperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_evapstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_evapstartdate2 = 000000, -(PID.TID 0000.0001) > xx_evapperiod = 864000.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_snowprecipstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_snowprecipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_snowprecipperiod = 864000.0, +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_apressurestartdate1 = 19920101, -(PID.TID 0000.0001) > xx_apressurestartdate2 = 000000, -(PID.TID 0000.0001) > xx_apressureperiod = 864000.0, +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19920101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19920101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -557,14 +539,14 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) > grdchk_eps = 1., (PID.TID 0000.0001) ># nbeg = 4, (PID.TID 0000.0001) > iGloPos = 4, (PID.TID 0000.0001) > jGloPos = 8, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 3, +(PID.TID 0000.0001) > grdchkvarindex = 301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -573,8 +555,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 3 -(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E+01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 (PID.TID 0000.0001) Increment: 1 @@ -781,11 +763,20 @@ (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_output_interp = /* output directly interpolation result */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ (PID.TID 0000.0001) 3 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 (PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -847,22 +838,31 @@ (PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ (PID.TID 0000.0001) 2.700000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ (PID.TID 0000.0001) 1.420000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ (PID.TID 0000.0001) 7.640000000000000E-05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 3.270000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 1.800000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ (PID.TID 0000.0001) 3.460000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ @@ -925,62 +925,57 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) EXF main CPP flags: (PID.TID 0000.0001) -(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: defined (PID.TID 0000.0001) // ALLOW_ATM_TEMP: NOT defined (PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): NOT defined (PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: NOT defined (PID.TID 0000.0001) // ALLOW_BULKFORMULAE: NOT defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Zonal wind stress forcing starts at 0. (PID.TID 0000.0001) Zonal wind stress forcing period is -12. (PID.TID 0000.0001) Zonal wind stress forcing is read from file: -(PID.TID 0000.0001) >> trenberth_taux.bin << +(PID.TID 0000.0001) >> trenberth_taux.bin << +(PID.TID 0000.0001) interpolate "ustress" (method= 12 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 (PID.TID 0000.0001) -(PID.TID 0000.0001) Meridional wind stress forcing starts at 0. (PID.TID 0000.0001) Meridional wind stress forcing period is -12. (PID.TID 0000.0001) Meridional wind stress forcing is read from file: -(PID.TID 0000.0001) >> trenberth_tauy.bin << +(PID.TID 0000.0001) >> trenberth_tauy.bin << +(PID.TID 0000.0001) interpolate "vstress" (method= 22 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) Interp. U & V comp. together: uvInterp_stress = T (PID.TID 0000.0001) -(PID.TID 0000.0001) Heat flux forcing starts at 0. (PID.TID 0000.0001) Heat flux forcing period is -12. (PID.TID 0000.0001) Heat flux forcing is read from file: -(PID.TID 0000.0001) >> ncep_qnet.bin << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Salt flux forcing starts at 0. -(PID.TID 0000.0001) Salt flux forcing period is -12. -(PID.TID 0000.0001) Salt flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Net shortwave flux forcing starts at 0. -(PID.TID 0000.0001) Net shortwave flux forcing period is 0. -(PID.TID 0000.0001) Net shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) >> ncep_qnet.bin << +(PID.TID 0000.0001) interpolate "hflux" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined -(PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: NOT defined -(PID.TID 0000.0001) -(PID.TID 0000.0001) Atmospheric pressure forcing starts at 0. -(PID.TID 0000.0001) Atmospheric pressure forcing period is 0. -(PID.TID 0000.0001) Atmospheric pressureforcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) climatology configuration : (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined -(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined -(PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SST starts at 0. -(PID.TID 0000.0001) Climatological SST period is -12. +(PID.TID 0000.0001) Climatological SST period is -12. (PID.TID 0000.0001) Climatological SST is read from file: -(PID.TID 0000.0001) >> lev_sst.bin << +(PID.TID 0000.0001) >> lev_sst.bin << +(PID.TID 0000.0001) interpolate "climsst" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 (PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SSS starts at 0. -(PID.TID 0000.0001) Climatological SSS period is -12. +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS period is -12. (PID.TID 0000.0001) Climatological SSS is read from file: -(PID.TID 0000.0001) >> lev_sss.bin << +(PID.TID 0000.0001) >> lev_sss.bin << +(PID.TID 0000.0001) interpolate "climsss" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< @@ -992,12 +987,12 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 898 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 12155 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 3 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 3 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 3 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 @@ -1052,7 +1047,347 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 35674 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 24310 (PID.TID 0000.0001) ctrl-wet 8: atmos 24310 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 85573 @@ -1075,8 +1410,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 6 -(PID.TID 0000.0001) ctrl_init: control vector length: 85573 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 85573 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1091,43 +1426,43 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 012155 010816 011065 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 017154 015820 016259 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Heat flux contribution: -(PID.TID 0000.0001) Control variable index: 0103 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Heat flux contribution starts at: 19920101 000000 WED. -(PID.TID 0000.0001) Heat flux contribution period is: 00000010 000000 -(PID.TID 0000.0001) Heat flux contribution is read from file: -(PID.TID 0000.0001) >> xx_hfl << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Salt flux contribution: -(PID.TID 0000.0001) Control varibale index: 0104 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Salt flux contribution starts at: 19920101 000000 WED. -(PID.TID 0000.0001) Salt flux contribution period is: 00000010 000000 -(PID.TID 0000.0001) Salt flux contribution is read from file: -(PID.TID 0000.0001) >> xx_sfl << +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Zonal wind stress contribution: -(PID.TID 0000.0001) Control variable index: 0105 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Zonal wind stress contribution starts at: 19920101 000000 WED. -(PID.TID 0000.0001) Zonal wind stress contribution period is: 00000010 000000 -(PID.TID 0000.0001) Zonal wind stress contribution is read from file: -(PID.TID 0000.0001) >> xx_tauu << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Meridional wind stress contribution: -(PID.TID 0000.0001) Control variable index: 0106 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Merid. wind stress contribution starts at: 19920101 000000 WED. -(PID.TID 0000.0001) Merid. wind stress contribution period is: 00000010 000000 -(PID.TID 0000.0001) Merid. wind stress contribution is read from file: -(PID.TID 0000.0001) >> xx_tauv << +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1171,9 +1506,29 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1264,10 +1619,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1322,28 +1683,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1365,7 +1729,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1374,10 +1738,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1419,8 +1783,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1441,41 +1806,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1539,6 +1882,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1558,14 +1907,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1582,6 +1934,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1663,9 +2018,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1679,10 +2031,10 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) 4.320000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ -(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ (PID.TID 0000.0001) T @@ -1717,6 +2069,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1907,15 +2271,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2345,8 +2700,14 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -2392,31 +2753,6 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718006161477E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9628819587991E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0127003139695E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 @@ -2439,16 +2775,49 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) whio : write lev 3 rec 1 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= @@ -2474,7 +2843,7 @@ (PID.TID 0000.0001) %MON exf_climsst_mean = 1.8364821435178E+01 (PID.TID 0000.0001) %MON exf_climsst_sd = 9.2122803951938E+00 (PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4303814016692E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7451293945313E+01 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.7451293945312E+01 (PID.TID 0000.0001) %MON exf_climsss_min = 2.9661429405212E+01 (PID.TID 0000.0001) %MON exf_climsss_mean = 3.4846753273918E+01 (PID.TID 0000.0001) %MON exf_climsss_sd = 9.6901487505657E-01 @@ -2484,1076 +2853,15 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 -(PID.TID 0000.0001) cg2d_init_res = 6.19025994173577E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 4.92999792731088E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 1 -(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7834036635760E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1524770868768E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1608766249848E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.6146441238634E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1687020304933E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.2017065980870E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7870205639833E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.5949102412284E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2232963218868E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1645019871449E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8419534682980E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1238599609055E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.0360644458204E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3983679266188E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5511830585828E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5968256233580E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0328470054651E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1156519290424E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6738261935693E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5271176229257E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9730291024029E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000461615150E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6197399585377E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4172006819825E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6287336378632E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7470515688115E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9754192248363E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718006046545E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9615694173131E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0154236975332E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2589080810547E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8702698516846E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6700205338390E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1285666794876E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9079877721394E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7286743372679E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5774825587869E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6059009244638E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9852225077625E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4526464033158E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9885098189116E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.4956599846482E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.8490268865938E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3024380850966E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4720178533248E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.7953390747829E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7893100875415E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5681012755494E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3027675391902E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 8.7479516092465E-07 -(PID.TID 0000.0001) %MON ke_max = 1.1990109926456E-04 -(PID.TID 0000.0001) %MON ke_mean = 6.2899488174120E-06 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -5.9383308332544E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.6673875971352E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769368589E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3403223606589E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669526158E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126608365457E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6288041828946E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.4812297697017E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 1 -(PID.TID 0000.0001) %MON exf_time_sec = 4.3200000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7447456409854E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.5923819378499E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5027890504196E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8622362583491E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.8886970054666E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.0858214074566E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8662386363552E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -6.0060398708152E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4511397903789E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6453645043852E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2639799548734E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8680093876008E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6694151166218E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1275125285539E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1772929134667E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9553869616601E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8368676314521E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2103513767114E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4267068693234E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7452078911566E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9664375858922E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4846855596540E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6852202071827E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0276302495755E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 -(PID.TID 0000.0001) cg2d_init_res = 3.36809689018778E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 3.21266665346924E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 2 -(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.7801169392188E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5435453765636E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.1273623599030E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0203334244953E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2871697805663E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8770498727081E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6972178694346E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8946159320443E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1237463596591E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3138623892522E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.3412334787217E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8001428607805E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7508065930333E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1900225861998E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8871845159518E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0883680635556E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4685960611897E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2295187419648E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4144442928680E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9137302939727E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9678636166842E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9016700561509E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6189382082763E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4154045467617E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5114085078002E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7465158917311E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9756646415705E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717943191992E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9609789487842E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0200199142768E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2639799548734E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8680093876008E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6694151166218E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1275125285539E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9127884480556E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7227548581939E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5805101394653E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6055044233911E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9841658841100E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4565659499100E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.9953677202425E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.4979143777201E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.8156920579535E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3070123215686E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4720151576684E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.7448576826639E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8885381102954E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2840506377747E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0236141916436E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2457403898658E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8752671169256E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4917541193258E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 4.6379097048499E-06 -(PID.TID 0000.0001) %MON ke_max = 3.9747850459151E-04 -(PID.TID 0000.0001) %MON ke_mean = 2.0986585539317E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.0401954146865E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.2611958532140E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769288022E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3403114562114E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669424646E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126589494254E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.3020642153277E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.6168338288627E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 2 -(PID.TID 0000.0001) %MON exf_time_sec = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7405913750972E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.5946645001250E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5025001692563E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8615517327637E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.8908097172501E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.0881129849342E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8634096484992E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.9750353300724E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4554868446764E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6416161428942E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2690518286920E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8657489235170E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6688096994045E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1264643288199E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1772850088224E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9546101354784E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8372532126253E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2084804498399E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4239385550137E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7452863877819E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9667322312632E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4846957919163E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6804985052932E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0234812904951E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 -(PID.TID 0000.0001) cg2d_init_res = 2.18219763803565E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.84741877553292E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 3 -(PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1071575764509E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.7625182173429E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.0375996159633E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2315866547231E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8329221936343E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.0447480313710E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9831613068425E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5582538102367E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0082249443120E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5708181780679E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.4399647946687E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.4384678511822E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5206696020371E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4514571736309E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4138806105770E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9534476371336E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6536425571330E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.1745698024663E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6512952877060E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5370590173899E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9641725692382E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9084756136719E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6177869163051E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4129865652935E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4129892198198E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7460968154503E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9759548989168E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717847335819E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9610549689512E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0182424775760E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2690518286920E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8657489235170E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6688096994045E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1264643288199E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9180049072513E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7171199480372E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5835377201438E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6051079223184E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9833555996941E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4615745626553E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0022256215734E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5001687707920E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.7823572293133E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3119132898368E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4728273578110E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.5971192499844E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.4257362460907E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4376335584628E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8770988169963E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3130697556496E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.0528005782173E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0500963657762E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0905206694548E-05 -(PID.TID 0000.0001) %MON ke_max = 7.5943201389460E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.0133692447050E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -1.5500399701616E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.7984300850151E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769306073E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402981729621E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669447389E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126562184712E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1106290134462E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.1673889773474E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 3 -(PID.TID 0000.0001) %MON exf_time_sec = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7364371092089E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.5986004039165E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5022112880929E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8611175397966E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.8941330587844E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.0904045624118E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8605806606431E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.9440307893297E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4601833921357E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6390552774395E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2741237025107E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8634884594333E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6682042821873E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1254220969141E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1773135251992E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9538333092966E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8376391382744E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2066621227687E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4220813113014E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7453648844073E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9670268766342E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847060241785E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6759839477018E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0221374226415E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.87291899336378E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.55376894289821E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 4 -(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8500921982248E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.8988286928138E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7055872094724E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2168962137718E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9488324633363E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.2370151636811E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.1948031051454E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3370787767730E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0243999945914E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.7390128397355E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.1653281207328E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.5699668019646E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.1966229583161E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0311940953639E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.9856869919493E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9707388146494E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9617142940965E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.2846670323060E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8047582170304E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.5097677936350E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9645907915211E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9206067717715E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6163785382811E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4100702419848E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3694315397566E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7457251412608E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762763460885E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717726699092E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9611861757431E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0162135076969E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2741237025107E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8634884594333E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6682042821873E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1254220969141E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9236364940445E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7152394815799E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5865653008223E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6047114212457E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9827917211772E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4676697114089E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0090835229043E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5024231638639E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.7490224006730E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3171398771493E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4744538822742E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.4037698692404E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.5522554545582E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0481197963904E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.7642298835647E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0177020597753E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3599014536236E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1821091332057E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 1.8949086569231E-05 -(PID.TID 0000.0001) %MON ke_max = 1.1667562983054E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.2165871666209E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.0217204088273E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2692083538479E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769310605E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402831071710E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669453100E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126526480389E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3217262592197E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1029391954923E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 4 -(PID.TID 0000.0001) %MON exf_time_sec = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7322828433206E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6025363077079E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5019224069296E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8609337162474E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.8986652804546E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.0926961398894E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8577516727871E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.9130262485869E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4652283299615E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6376838751787E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2791955763294E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8612279953495E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6675988649700E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1243858494319E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1773784599505E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9530564831149E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8380250639236E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2049040151256E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4211345121699E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7454433810326E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9673215220051E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847162564407E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6716768244817E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0236002561602E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.76875007905671E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.61696188215599E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 5 -(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.2766141182721E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.6627382790468E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.2112068699738E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4940426702770E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8718111514063E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4068160209257E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.2014178545460E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.1957288726892E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.1485320886573E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.7374239618716E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5976684172092E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6316936834306E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.7651826041186E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1812183496344E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.3666829777064E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2270914484920E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2597475020464E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.0515780581013E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.9602026208135E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7642571540834E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9675564257703E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9423274345336E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6147795010756E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4067543915320E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3538427693808E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7453484254625E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9766140785211E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717589743257E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9613913290126E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0148695120426E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2791955763294E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8612279953495E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6675988649700E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1243858494319E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9296825021206E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7133590151225E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5895928815007E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6043149201730E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9824742949640E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4748483277140E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0159414242352E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5046775569358E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.7156875720328E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3226909023834E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4768935882117E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.8627394206391E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6705200384998E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1799507268118E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1251643630403E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.4376859882786E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.4308705789312E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2349709412839E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.8563222480142E-05 -(PID.TID 0000.0001) %MON ke_max = 1.6439112411115E-03 -(PID.TID 0000.0001) %MON ke_mean = 8.5687071020763E-05 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.4294974621374E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.6609316786230E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769310456E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402667498140E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669452911E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126483053568E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4724553739534E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2254956089683E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 5 -(PID.TID 0000.0001) %MON exf_time_sec = 2.1600000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7281285774323E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6064722114994E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5016335257663E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8610002776980E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9044040016445E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.0949877173670E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8549226849310E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.8820217078441E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4706204787150E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6375029913561E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2842674501481E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8589675312658E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6669934477528E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1233556029344E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1774798070513E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9522796569332E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8384109895727E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2032061614223E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4210992257393E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7455218776580E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9676161673761E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847264887029E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6675774128830E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0278680384274E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.69333738721926E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.67811984694815E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 6 -(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1824925854669E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.2212514611702E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.9168752070186E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7603078972467E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7463213254284E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5244328836446E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0113676952461E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.1028747576667E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3429248795664E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.5937570884115E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.5077451238084E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6002191963001E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.2163906061444E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2974156272485E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.4972324212586E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4290572911784E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.5030067977368E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.1102965806824E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1185150972352E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0977356385367E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9704136577208E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9694552177519E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6130519490663E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4031183165063E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3380897259235E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7449713065833E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9769535325110E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717443293192E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9615523621216E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0133163408620E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2842674501481E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8589675312658E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6669934477528E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1233556029344E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9361421749702E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7114785486652E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5926204621792E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6039184191003E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9824033471825E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4831068124650E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0227993255661E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5069319500077E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.6823527433926E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3285651173452E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4801447654163E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1253928919698E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.7063477140337E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2154352894656E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3672716983034E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3217525293618E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.0746130230986E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0808083381936E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 3.9651395343749E-05 -(PID.TID 0000.0001) %MON ke_max = 2.1850452912594E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.0947752154437E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.7552627535857E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.9726529731228E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769328176E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402495960100E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669475238E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126433377379E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5692756042860E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2943430382628E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 6 -(PID.TID 0000.0001) %MON exf_time_sec = 2.5920000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7239743115440E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6104081152908E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5013446446030E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8613172185060E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9113462169646E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1038053232816E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8520936970749E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.8510171671014E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4763585836625E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6385127652482E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2893393239667E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8567070671820E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6663880305355E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1223313739475E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1776175571006E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9515028307515E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8387969152218E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2015685950123E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4219754918499E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7456003742833E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9679108127471E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847367209651E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6636859772443E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0349356645322E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 2 cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.55876199121154E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.52069677615918E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 7 -(PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.1796008891401E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.7400077955006E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4376158414777E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0163010732313E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.6321618326268E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.5733231759611E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.2791668094672E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.0270467408806E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5735992595014E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.3399570231258E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3645516990192E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.5730228411614E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.5446985990932E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3820939972968E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.3997063608876E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5779566778365E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6860876235709E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.9252154323390E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2630791668706E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3958132494968E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9714371049330E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000296041356E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6112523454260E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3992457614237E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3135557584413E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7446198831492E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9772812763492E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717292732048E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9616417425610E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0117867955079E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2893393239667E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8567070671820E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6663880305355E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1223313739475E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9430147063573E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7095980822079E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5956480428576E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6035219180276E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9825788836729E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.4924410448355E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0296572268971E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5091863430796E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.6490179147523E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3347612081314E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4842051422912E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3675494009642E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0505685341387E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0373065115493E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5755261626612E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.1540714095522E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7417286108130E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6668136060357E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 5.2022589105306E-05 -(PID.TID 0000.0001) %MON ke_max = 2.9313384992331E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.3256947443554E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9932442409355E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.2156423178797E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769374687E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402321551960E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669533841E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126379177250E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6175479964087E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3177064435577E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 7 -(PID.TID 0000.0001) %MON exf_time_sec = 3.0240000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7198200456558E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6143440190823E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5010557634397E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8618845118075E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9194883040748E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1129016385924E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8492647092189E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.8200126263586E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4824413161982E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6407124196284E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2944111977854E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8544466030982E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6657826133183E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1213131789607E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1777916973255E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9507260045698E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8391828408710E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1999913480886E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4237623218373E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7456788709087E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9682054581181E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847469532274E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6600027689088E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0447947077263E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.38193299224474E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 26 -(PID.TID 0000.0001) cg2d_last_res = 2.25062033038493E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 8 -(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.8792655385350E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.0258977686040E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.5658601736150E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2602862760441E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5409774232031E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.5496927453717E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.0968231282521E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.9376248649071E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.8087123611174E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.9958090707749E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.9110028403951E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.4403473350457E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.7493119303972E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4380412812588E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0112793738342E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6701898114157E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8089686612740E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1138668129224E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3783328054735E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6169030363118E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9701258538497E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0317467000366E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6094317839801E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3952198050720E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2825669971528E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7443065568935E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9775856626500E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717142629584E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9616514631683E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0102777023514E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2944111977854E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8544466030982E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6657826133183E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1213131789607E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9502992408153E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7077176157505E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.5986756235361E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6031254169549E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9830008899856E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5028463924194E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0365151282280E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5114407361515E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.6156830861121E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3412777965500E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4890718937407E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5758461632932E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1978733303782E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.6668136060357E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6701165779578E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6849048732857E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8625486461305E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.4009783201394E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 6.5374457260192E-05 -(PID.TID 0000.0001) %MON ke_max = 3.7514769711189E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.5423519274630E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.1494569609912E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.6410486047148E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769446108E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3402149385451E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669623830E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126322243080E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.6227994247026E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3014083010119E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 8 -(PID.TID 0000.0001) %MON exf_time_sec = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7156657797675E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6182799228737E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5007668822763E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8627021095280E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9288260330560E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1219979539033E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8464357213628E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.7890080856158E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4888672753379E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6441002637548E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.2994830716041E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8521861390145E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6651771961010E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1203010344261E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1780022115880E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9499491783880E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8395687883583E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1984739698203E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4264589313133E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7457573675340E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9685001034890E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847571854896E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6565280261437E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0574334694174E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.27491895664762E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 9.25700616520291E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 9 -(PID.TID 0000.0001) %MON time_secondsf = 3.8880000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2789787246412E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8230383597799E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5644859930924E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.4897754053015E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4651205426938E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.4571872966211E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0650562898699E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.8056901392599E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0018411061909E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5736513139562E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3622182914372E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.1931039543840E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8341513686608E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4686547870328E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0667601833154E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6990204271131E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8783763687168E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4092445419483E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4549241603867E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7548501955659E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9669082897069E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0622657261404E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6076349907080E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3911172400540E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2489457673031E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7440304257189E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9778573221473E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716997060646E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9615862835640E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0088083345020E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.2994830716041E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8521861390145E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6651771961010E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1203010344261E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9579948741711E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7058371492932E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6017032042146E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6027289158822E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9836693313870E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5143177225281E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0433730295589E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5136951292234E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.5823482574718E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3481134415961E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.4947416509125E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6704557905797E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3055624838411E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.4009783201394E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6413400695281E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1232245008441E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9039063870886E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.8713778793038E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 7.9323440981330E-05 -(PID.TID 0000.0001) %MON ke_max = 4.6100533766175E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.7396783904258E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.2370221768309E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.2555132870248E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769530901E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401984401820E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669730667E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126264467269E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5910486162160E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2505231744378E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 9 -(PID.TID 0000.0001) %MON exf_time_sec = 3.8880000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7115115138792E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6222158266652E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5004780011130E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8637699424028E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9393545772739E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1310942692141E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8436067335067E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.7580035448731E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4956349892810E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6486736998536E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3045549454228E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8499256749307E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6645717788838E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1192949567575E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1782490803913E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9491723522063E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8399550721214E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1970095444163E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4300802812195E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7458358641594E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9687947488600E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847674177518E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6532619740638E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0728370480198E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 (PID.TID 0000.0001) cg2d_init_res = 1.21243316691704E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 @@ -3593,31 +2901,6 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716859577764E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9614565000130E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0074131526581E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3045549454228E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8499256749307E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6645717788838E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1192949567575E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9661006540964E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7039566828359E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6047307848930E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6023324148095E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9845841528738E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5268494145790E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0502309308898E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5159495222953E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.5490134288316E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3552666409801E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5012105127173E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6416734374353E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3688397015289E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.8713778793038E-02 @@ -3674,1076 +2957,16 @@ (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.17667485894329E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 8.19532054376992E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 11 -(PID.TID 0000.0001) %MON time_secondsf = 4.7520000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.3932987350570E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5772363624083E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.3599091371189E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8953421622212E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3268137948445E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1079930745731E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2583010564927E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.3114743574041E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2259361186468E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.5206903652696E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.9665276916285E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2923192365132E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6828204471885E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4703841773913E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1371125516212E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5860828887765E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1448254807744E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.0804208154937E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4837386802024E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8149974926559E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9585494893119E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1118720649465E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6042557992332E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3829426691632E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1827231966140E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435688793104E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9782781582552E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716733061917E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9612732408421E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0061239693068E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3096268192414E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8476652108469E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6639663616666E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1182949623291E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9746155806858E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7020762163785E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6077583655715E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6019359137368E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9857452791955E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5404353735084E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0570888322207E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5182039153672E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.5156786001913E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3627358327032E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5084740590333E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5182370713585E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3850964385702E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.4414613461562E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6281625441536E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.6816824329831E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8150904005374E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.8193889428868E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0727066906865E-04 -(PID.TID 0000.0001) %MON ke_max = 6.4124396622991E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.0657205737822E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.2620260750860E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.1812945204417E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769691000E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401694018845E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669932388E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126154847306E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4416330228242E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.0682184656988E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 11 -(PID.TID 0000.0001) %MON exf_time_sec = 4.7520000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7032029821027E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6300876342481E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4999002387864E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8666559307921E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9639618964092E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1492868998358E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8379487577946E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6959944633876E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5101894500972E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6613624846055E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3146986930601E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8454047467632E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6633609444493E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1173010674746E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1788517868992E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9480712890625E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8407276396474E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1942619057521E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4400242208664E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7459928574101E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9693840396020E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847878822763E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6473567762277E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.1118635720215E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.15540981532070E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 7.88267462814550E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 12 -(PID.TID 0000.0001) %MON time_secondsf = 5.1840000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6802418022627E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3321747320919E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.0164951544804E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.0673332854234E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2613432859870E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1795227157380E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2898290680164E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.9066632820647E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3251870885034E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8952761735038E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0406091146300E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.6030186766250E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.4760558443052E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4507411814575E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1541035218955E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5319570609300E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2821034721661E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.6369781677931E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4428327190420E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7608696374724E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9547912213252E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1282858771861E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6027270877202E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3789785398695E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1513482216612E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433720010797E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9784220846676E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716619628326E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9610456082395E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0049645835295E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3146986930601E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8454047467632E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6633609444493E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1173010674746E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9835386070598E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.7001957499212E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6107859462500E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6015394126641E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9871526148854E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5550690441364E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0639467335516E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5204583084391E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.4823437715511E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3705193966787E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5165273654936E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6284932356111E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3547432811995E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8518750215531E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8564949384164E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0108683080445E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8492923380865E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.1756053989234E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.2039352629782E-04 -(PID.TID 0000.0001) %MON ke_max = 7.3297181219692E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1930502105001E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.2197325335332E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.4497370580299E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769747146E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401576340243E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758670003131E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126107483665E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.3360014646581E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.4976335705891E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 12 -(PID.TID 0000.0001) %MON exf_time_sec = 5.1840000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6990487162144E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6340235380396E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4996113576231E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8684738421357E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9780281518039E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1583832151467E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8351197699385E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6649899226448E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5179729141995E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6694682084966E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3197705668788E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8431442826794E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6627555272321E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1163132884860E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1792075689085E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9478864669800E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8411139234104E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1929787466535E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4463358305507E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7460713540354E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9696786849729E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847981145385E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6447180143091E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.1354415626269E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 3 cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 -(PID.TID 0000.0001) cg2d_init_res = 1.05639236129967E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 6.97416509688133E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 13 -(PID.TID 0000.0001) %MON time_secondsf = 5.6160000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0164868264484E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0078756140118E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.0443918851084E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.2170165748830E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2013776358950E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2443724746886E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2804426639582E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.3759963240945E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4142488887130E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0207300145990E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0912579012923E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.7342351499306E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.2069031798902E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4237245909743E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1605113326674E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5418765757461E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3596511206596E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.4554672516896E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3737126903698E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6655972856716E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9557009089275E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1381892230463E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6013304770620E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3751567911511E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1215609783798E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7431897315870E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785226394387E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716520628721E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9607804474191E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0041339761161E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3197705668788E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8431442826794E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6627555272321E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1163132884860E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 9.9928686399933E-01 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6983152834638E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6138135269284E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6011429115913E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9888060443000E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5707434264057E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0708046348826E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5227127015110E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.4490089429109E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3786156563931E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5253650197433E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8568720058163E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2906519778705E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.0602395038508E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1567857774055E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0600695427426E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8552955489445E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.0448951430200E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.3243043243159E-04 -(PID.TID 0000.0001) %MON ke_max = 8.2315725322783E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.2975206230399E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.1485976659845E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.5735994243955E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769780005E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401480961498E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758670044533E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126067858455E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.2170433263791E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.2173974958424E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 13 -(PID.TID 0000.0001) %MON exf_time_sec = 5.6160000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6979751836869E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6379594418310E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4993224764597E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8705415003953E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9932602144313E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1674795304575E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8322907820825E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6339853819020E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5260915710932E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6787403109410E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3248424406975E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8408838185956E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6621501100148E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1153316416126E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1795995940939E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9477016448975E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8415002071734E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1917560618574E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4535316687973E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7461498506608E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9699733303439E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848083468007E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6422887106270E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.1616947122608E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 -(PID.TID 0000.0001) cg2d_init_res = 9.46748120848987E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 5.94479987598542E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 14 -(PID.TID 0000.0001) %MON time_secondsf = 6.0480000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0840734733175E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0744503098657E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4738412769184E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.3439342397955E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1487229988727E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3104892854536E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2351608270490E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.7106487507091E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4925281210807E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0461154622982E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1941741251222E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.9137404317920E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.8965745615581E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3936933887658E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1579766224139E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5177066190472E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3757558455867E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.9857190710402E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2837236952005E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.5391948026081E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9558070463947E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1414394163928E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6000773550127E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3715165579771E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0927964545224E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7430169534208E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785835461826E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716436701883E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9604876854996E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0033360045504E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3248424406975E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8408838185956E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6621501100148E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1153316416126E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0002604540568E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6964348170065E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6168411076069E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6007464105186E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9907054316662E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.5874510914174E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0776625362135E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5249670945829E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.4156741142706E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3870228806050E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5349811390448E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1572238360225E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1850901959328E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.0448951430200E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3670221721789E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1600444013044E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7227040292092E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.5025453829750E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.4308583973602E-04 -(PID.TID 0000.0001) %MON ke_max = 9.0967474867422E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.3806393856029E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.3333806124691E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.5513934517039E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769788322E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401409747734E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758670055011E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126037530654E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0893600196592E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.8943289049915E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 14 -(PID.TID 0000.0001) %MON exf_time_sec = 6.0480000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6983685166605E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6418953456225E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4990335952964E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8728587309739E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.0096504843521E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1765758457684E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8294617942264E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6029808411593E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5345436203889E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6891718729513E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3299143145161E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8386233545119E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6615446927976E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1143561430599E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1800278263336E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9475168228149E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8418864909364E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1905938754998E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4616039812039E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7462283472861E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9702679757149E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848185790629E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6400690235322E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.1905937196401E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.73253184568476E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 5.11926766462723E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 15 -(PID.TID 0000.0001) %MON time_secondsf = 6.4800000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1385227374180E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1106410912446E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.2979699331928E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.4483635783033E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1036116531395E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3990717288610E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2437447050950E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.9074535422106E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5598722289028E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0662761379772E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3179553211793E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0134292108900E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.5667119128291E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3643419214572E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1485783523499E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4637522693455E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3359787053941E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1138668129224E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1799647012610E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3918072029955E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9548091059413E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1382350160259E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5989743663745E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3680935207106E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0657622628700E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7428508488913E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9786105212448E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716367968625E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9601752879508E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0027872295241E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3299143145161E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8386233545119E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6615446927976E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1143561430599E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0012745124846E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6945543505492E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6198686882854E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6003499094459E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9928506211371E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.6051841981797E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0845204375444E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5272214876548E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.3823392856304E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.3957392850766E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5453693891022E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3675029313113E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1249708332951E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.5025453829750E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4586996831953E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2802879072153E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.4729696131473E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5914473136934E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.5216238226940E-04 -(PID.TID 0000.0001) %MON ke_max = 9.9071429545267E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.4441743178202E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.5535136597336E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.3886202866405E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769774005E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401363593815E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758670036973E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126017419751E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.5706242811607E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 5.5733001667361E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 15 -(PID.TID 0000.0001) %MON exf_time_sec = 6.4800000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6987618496341E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6458312494140E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4987447141331E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8754253383936E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.0271908573382E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1856721610792E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8266328063703E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5719763004165E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5433272014359E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.7007551755777E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3349861883348E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8363628904281E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6609392755803E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1133868089886E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1804922262245E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9473320007324E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8422727746995E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1894922105341E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4705441763507E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7463068439114E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9705626210859E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848288113252E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6380590978517E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.2221068229136E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.27183783167458E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 4.41866743444745E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 16 -(PID.TID 0000.0001) %MON time_secondsf = 6.9120000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1695576084733E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1102259556999E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.7545884015833E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.5312590841245E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0652934797321E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4793125603484E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2506658442845E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.9686435824743E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6164972464683E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0819021083073E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4113087653410E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0243768650641E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.2380917025483E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3384461436338E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1347239349132E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4883764585070E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2761717020862E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3487409032471E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0690419534249E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2342427194968E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9525730380723E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1290729369709E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5980239077702E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3649202402056E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0405104445380E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7426911032558E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9786108451406E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716314095940E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9598561856020E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0025618991793E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3349861883348E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8363628904281E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6609392755803E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1133868089886E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0023289164570E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6926738840918E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6228962689638E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.5999534083732E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9952414368557E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.6239345109877E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0913783388753E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5294758807267E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.3490044569901E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4047630343360E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5565230039706E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.4591990626859E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2176846993789E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3648480657365E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4129201017193E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3709732921722E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5894952270890E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4416764530919E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.5956600244407E-04 -(PID.TID 0000.0001) %MON ke_max = 1.0650129146392E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.4899526008967E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.7406075545048E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.0967426693043E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769741443E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401342442448E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669995945E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126007742951E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.2370462713945E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.2879052653176E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 16 -(PID.TID 0000.0001) %MON exf_time_sec = 6.9120000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6991551826077E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6497671532054E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4984558329698E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8782411063776E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.0458727440104E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.1947684763901E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8238038185143E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5409717596737E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5524403952399E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.7134817276780E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3400580621535E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8341024263443E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6603338583631E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1124236555132E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1809927511000E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9471471786499E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8426590870872E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1884504554686E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4803452547448E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7463853405368E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9708572664568E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848390435874E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6362590648411E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.2561999637252E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.02509446037038E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 3.57137725220627E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 17 -(PID.TID 0000.0001) %MON time_secondsf = 7.3440000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1772728614046E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0764021254033E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.3327400605384E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.5941403116181E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0327869912220E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5498015700183E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2416045508993E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.9012294004817E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6629108405301E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0937489987162E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4669062870165E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0240099378866E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.9294598988406E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3177224556626E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1189339255538E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5456378778222E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1872146295069E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1273956335586E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.9569907100045E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0775796184967E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9490883807972E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.1147468662483E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5972247361150E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3620259416543E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0169900574568E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7425386250468E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785928923027E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716274449214E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9595457792758E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0023136024033E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3400580621535E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8341024263443E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6603338583631E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1124236555132E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0034235387878E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6907934176345E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6259238496423E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.5995569073005E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9978776830267E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.6436934173492E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.0982362402062E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5317302737986E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.3156696283499E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4140922434647E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5684348069104E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.4134101830494E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3045937751221E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.9474761354452E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2230065759047E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4249818260947E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6632255547949E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.7597376324183E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.6529939163971E-04 -(PID.TID 0000.0001) %MON ke_max = 1.1319225641521E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.5197598581539E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.8985883742101E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6921402866315E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769696559E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401345373982E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669939393E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126008060784E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.9237861292216E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.0622882695702E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 17 -(PID.TID 0000.0001) %MON exf_time_sec = 7.3440000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6995485155813E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6537030569969E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4981669518065E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8813057979411E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.0656870897861E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.2038647917009E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8209748306582E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5099672189310E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5618812264159E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.7273422959817E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3451299359722E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8318419622606E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6597284411458E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1114666987015E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1815293550499E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9469623565674E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8430458021528E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1874603458912E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4910285815413E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7464638371621E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9711519118278E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848492758496E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6346690421424E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.2928369580637E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 -(PID.TID 0000.0001) cg2d_init_res = 7.94966119063840E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 2.83414320012451E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 18 -(PID.TID 0000.0001) %MON time_secondsf = 7.7760000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1631571058304E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0857972297529E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4738412769184E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6389526330404E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0052032778688E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6093269830821E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2984830272112E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.7161234161005E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6998238933409E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1026100755046E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4791932289823E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1093089782881E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.6566260891911E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3028470300975E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1035694784317E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5819487979362E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0697719749123E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5971438142080E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8492313526434E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9322519817566E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9452263303319E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0963607481362E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5965724773734E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3594353165817E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.9953902303934E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7423939793018E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785656454439E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716248191282E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9592528196891E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0021367165520E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3451299359722E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8318419622606E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6597284411458E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1114666987015E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0045582480047E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6889129511772E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6289514303207E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.5991604062278E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 9.0007591439967E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.6644519463725E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.1050941415371E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5339846668705E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.2823347997097E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4237249799067E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5810972320471E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2234580844394E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3550619228519E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.3161277739743E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2505049647968E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4369176049202E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6863265851279E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.8108672686215E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.6944704724608E-04 -(PID.TID 0000.0001) %MON ke_max = 1.1913523545811E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.5353129551497E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -4.1920797808649E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.1948484077210E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769645784E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401370746777E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669875417E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126017387140E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.6596701641485E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.9187666729073E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 18 -(PID.TID 0000.0001) %MON exf_time_sec = 7.7760000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.6999418485549E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6576389607883E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4978780706431E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8846191554903E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.0866243955356E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.2129611070118E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8181458428021E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.4789626781882E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5716476651692E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.7423269372103E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3502018097908E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8295814981768E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6591230239286E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1105159545728E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1821019889410E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9467775344849E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8434328397312E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1865236651676E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.5025225952218E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7465423337875E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9714465571988E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848595081118E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6332891337454E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.3319796720651E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 4 cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.01532798166213E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 -(PID.TID 0000.0001) cg2d_last_res = 2.81517474936486E-14 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 19 -(PID.TID 0000.0001) %MON time_secondsf = 8.2080000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1299630630737E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0681489335293E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.8217834389870E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6679233386134E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9817398563386E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6569156739136E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3506325555774E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4271460061477E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7280515783289E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1092781356413E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4448120566965E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2341758112904E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4318721967849E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2936421182828E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0905652132684E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5985236969880E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9293289932096E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5971438142080E-21 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.7504193065118E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8072202551951E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9443519616048E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0753104788214E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5960596232303E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3571669385418E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.9758658879582E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7422567330272E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785382189374E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716234243018E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9589840059437E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0020097644606E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3502018097908E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8295814981768E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6591230239286E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1105159545728E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0057329084247E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6870324847198E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6319790109992E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.5987639051551E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 9.0038855843416E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.6862007875319E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.1119520428681E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5362390599424E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.2489999710694E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4336592652977E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.5945023466941E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2509620584510E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3636492180126E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.4316329256397E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3170536439096E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4035190530831E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6533374435215E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.7370657454075E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 1.7215581648081E-04 -(PID.TID 0000.0001) %MON ke_max = 1.2490195998977E-02 -(PID.TID 0000.0001) %MON ke_mean = 2.5382759971072E-04 -(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 -(PID.TID 0000.0001) %MON vort_r_min = -4.3799151605105E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.7308410031324E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769595171E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3401416363264E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669811646E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.3126034363904E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.4700183370964E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.7503836536159E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON exf_tsnumber = 19 -(PID.TID 0000.0001) %MON exf_time_sec = 8.2080000000000E+05 -(PID.TID 0000.0001) %MON exf_ustress_max = 2.7003351815285E-01 -(PID.TID 0000.0001) %MON exf_ustress_min = -1.6615748645798E-01 -(PID.TID 0000.0001) %MON exf_ustress_mean = 1.4975891894798E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8881809009303E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.1086747388443E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 2.2220574223226E-01 -(PID.TID 0000.0001) %MON exf_vstress_min = -1.8153168549461E-01 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.4479581374455E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5817376293037E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.7584250320031E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 4.3552736836095E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = -1.8273210340931E+02 -(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6585176067114E+01 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1095714390972E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1827106004394E+00 -(PID.TID 0000.0001) %MON exf_climsst_max = 2.9465927124023E+01 -(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8438200457355E+01 -(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1856438469628E+00 -(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.5148271139989E-02 -(PID.TID 0000.0001) %MON exf_climsss_max = 3.7466208304128E+01 -(PID.TID 0000.0001) %MON exf_climsss_min = 2.9717412025698E+01 -(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4848697403740E+01 -(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6321194299537E-01 -(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.3735882009776E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR EXF statistics -(PID.TID 0000.0001) // ======================================================= cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 (PID.TID 0000.0001) cg2d_init_res = 8.02324513658737E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 @@ -4783,31 +3006,6 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716231358454E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9587429127505E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0019566199393E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3552736836095E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.8273210340931E+02 -(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6585176067114E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1095714390972E+02 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 1.0069473802317E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON forcing_fu_max = 2.6851520182625E-01 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.6350065916777E-01 -(PID.TID 0000.0001) %MON forcing_fu_mean = 1.5983674040824E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 9.0072567489627E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.7089303097274E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.1188099441990E-01 -(PID.TID 0000.0001) %MON forcing_fv_min = -1.5384934530143E-01 -(PID.TID 0000.0001) %MON forcing_fv_mean = -5.2156651424292E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4438930773077E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.6086418741975E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3175242540765E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3270508470032E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.2666872176075E-02 @@ -4831,93 +3029,428 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 20 ckptA - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231360145D+06 - --> objf_test(bi,bj) = 0.444589534075227D+06 - local fc = 0.798704765435371D+06 - global fc = 0.798704765435371D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075227D+06 +(PID.TID 0000.0001) local fc = 0.798704765435371D+06 +(PID.TID 0000.0001) global fc = 0.798704765435371D+06 +(PID.TID 0000.0001) whio : write lev 2 rec 1 cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) whio : write lev 2 rec 2 +(PID.TID 0000.0001) whio : write lev 2 rec 3 cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = -2.69229083471600E-15 6.76966537085450E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.80331313717852E-15 6.76966537085450E-04 +(PID.TID 0000.0001) whio : write lev 2 rec 1 cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 - cg2d: Sum(rhs),rhsMax = 8.07132138902489E-14 1.12800176292508E-03 - cg2d: Sum(rhs),rhsMax = 1.78940195993960E-13 1.19230209700089E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 18 +(PID.TID 0000.0001) %MON ad_time_secondsf = 7.7760000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 5.5611560230866E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.9067315543213E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 7.1587356262354E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.1711284431743E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.5009857692566E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.9801533332417E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.5893524111402E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.4728167379921E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 9.8090994620371E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.8494033240244E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.5193849838308E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.4565694438304E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.1928655420993E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.4736448871136E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.3216270749287E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 4.7750224482247E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.2596237627005E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -7.7527431893141E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 8.3346256188021E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.1985876441056E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.2864327422312E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.9840062446905E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.7235501513783E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.7445313453760E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.4844289927343E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.8892054061718E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.0500698112699E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.3847583057498E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.2287288656231E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.1938078175498E-01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 7.87148124459236E-14 1.12800176292508E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.94289029309402E-13 1.19230209700089E-03 cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 - cg2d: Sum(rhs),rhsMax = 4.13225009765483E-13 1.12069397365533E-03 - cg2d: Sum(rhs),rhsMax = 4.74509320724792E-13 1.06839092629844E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.28546087505310E-13 1.12069397365533E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.86610751693206E-13 1.06839092629844E-03 cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 - cg2d: Sum(rhs),rhsMax = 4.74620343027254E-13 1.04899306102913E-03 - cg2d: Sum(rhs),rhsMax = 5.94635451989234E-13 1.01928705835677E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.35904653986563E-13 1.04899306102913E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.91748872125208E-13 1.01928705835677E-03 +(PID.TID 0000.0001) whio : write lev 2 rec 1 cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 - cg2d: Sum(rhs),rhsMax = 6.39488462184090E-13 9.85320725523901E-04 - cg2d: Sum(rhs),rhsMax = 6.81010803305071E-13 1.00868528908259E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 12 +(PID.TID 0000.0001) %MON ad_time_secondsf = 5.1840000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.1145925571437E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.2935139782744E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.1320285340389E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.2825220425312E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.2314573763981E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.7545864656475E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.5589331922963E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -5.4417455010059E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.9783914975294E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.1685081337721E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.4578411770896E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3337286267997E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -2.6226895756593E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.4192045453379E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0435763037548E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.3126595073737E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.0119638113819E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -7.3370596724115E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.6227256925042E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.0857955687246E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.3140228195078E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.9061076581129E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 4.2872314808084E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.5469763379498E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.6500294331239E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.9473372909205E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.0338027352097E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.4198446413120E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.4170334901642E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.3857573720501E-01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 6.24167384444263E-13 9.85320725523902E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 7.15205672463526E-13 1.00868528908259E-03 cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 - cg2d: Sum(rhs),rhsMax = 7.81152920126260E-13 1.01831017062021E-03 - cg2d: Sum(rhs),rhsMax = 8.51319015282570E-13 1.01730137453669E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 7.83373366175510E-13 1.01831017062021E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 8.34887714518118E-13 1.01730137453669E-03 cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 - cg2d: Sum(rhs),rhsMax = 9.50794998288984E-13 1.01053671002043E-03 - cg2d: Sum(rhs),rhsMax = 1.10622622173651E-12 1.00342273311352E-03 -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 9.84989867447439E-13 1.01053671002043E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.10444986489711E-12 1.00342273311352E-03 +(PID.TID 0000.0001) whio : write lev 2 rec 1 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 3 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 - cg2d: Sum(rhs),rhsMax = 1.26521015886283E-12 1.00012240906901E-03 - cg2d: Sum(rhs),rhsMax = 1.37312383685639E-12 1.00294944830281E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 6 +(PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.3393264949430E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.7076010868855E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.5202171920913E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.7053188808563E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.2192143448046E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1488966276125E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.4583717802199E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.8656787269310E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3638824849553E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.4693314374533E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0335874036776E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.5300227713514E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2729215032779E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2191073098968E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.1674178298204E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 7.4403888571264E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.9434789360049E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -6.9681693310515E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 7.0686159887736E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.6850782722298E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.7085269952038E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.6479985472186E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 3.8076171464461E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.2514704141872E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.5916024697808E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8250421943345E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.8042753489732E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.8840083401771E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.3198011406400E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.1257953228540E-01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.32338584535319E-12 1.00012240906901E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.35536026846239E-12 1.00294944830281E-03 cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 - cg2d: Sum(rhs),rhsMax = 1.52278190057586E-12 1.01232637639743E-03 - cg2d: Sum(rhs),rhsMax = 1.58317803311547E-12 1.02695457066718E-03 -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.51789691926751E-12 1.01232637639743E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.58228985469577E-12 1.02695457066718E-03 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 1.46993528460371E-12 1.04437188573638E-03 - cg2d: Sum(rhs),rhsMax = 1.39133149446025E-12 1.06189295162398E-03 -(PID.TID 0000.0001) Start initial hydrostatic pressure computation -(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC -(PID.TID 0000.0001) + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.48103751484996E-12 1.04437188573639E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.37934108579429E-12 1.06189295162399E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.4107165781771E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.7981652077697E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = -3.4932261453520E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 4.9508313152617E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 8.2626863364522E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8137233244936E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.6809421919177E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -3.3757684378169E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 5.1128595922866E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.1121399428574E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 5.7076511054029E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.9634223516047E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = -2.3308236877899E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.1785964574523E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.9771086227151E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 2.9230520564437E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.1306667453344E+03 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -8.1076052254065E-02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.3355864294099E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.4337135125548E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 3.8560506297460E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.6809059240098E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = 6.7144605829953E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 3.9576640606829E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 9.4732659617934E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.1137379338634E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -1.7660779077900E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -3.4485976493230E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 4.7797628043931E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.0957294046562E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.3128334985928E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.3569652352123E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -2.8862409005448E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 4.7295685314536E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 6.6197888380823E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 5.7076511054029E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = -7.9634223516047E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = -2.3308236877899E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 1.1785964574523E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 1.9771086227151E-05 +(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 5.7989834016987E+07 +(PID.TID 0000.0001) %MON ad_exf_adsflux_min = -1.6405935163999E+08 +(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = -9.0413439833894E+04 +(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 5.6372651765073E+06 +(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 3.0908657604448E+05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 2.0385442378547E-02 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = -4.9148817697413E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 4.0075790487290E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 2.1695984624262E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 3.7525235644803E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 2.0385442378547E-02 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = -4.9148817697413E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 4.0075790487290E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 2.1695984624262E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 3.7525235644803E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.3115583351007E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -9.1094202431826E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 3.3673263020724E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.1158255354386E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.3443491783346E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.4333715531695E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1882829831584E+02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -9.2110533641223E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.3168440931900E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.8765217532800E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0244484936654E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.8104790687155E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.6908048819102E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.7695472981194E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.2032468891975E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.2788438312849E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.1632031791888E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.6558761195099E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.6489446164346E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.4552148063926E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 9.8660885291790E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.8489631288870E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 3.5203658363174E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.9174825237978E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.3493166971376E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.8182281437383E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.6664613257875E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.5911421837575E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.5582182270239E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.7901490754453E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= @@ -4941,44 +3474,76 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 7.53321016677688E-14 6.28993178194151E+00 - cg2d: Sum(rhs),rhsMax = 4.27713420236842E-14 6.70007859134346E+00 - cg2d: Sum(rhs),rhsMax = 6.41708908233340E-14 6.82703161609865E+00 - cg2d: Sum(rhs),rhsMax = 7.14983627858601E-14 6.85801094470190E+00 - cg2d: Sum(rhs),rhsMax = 8.34887714518118E-14 7.14243599155058E+00 - cg2d: Sum(rhs),rhsMax = -1.56097357262297E-13 7.72291365609697E+00 - cg2d: Sum(rhs),rhsMax = -9.59232693276135E-14 8.03387068212535E+00 - cg2d: Sum(rhs),rhsMax = -3.07753822426093E-13 8.11896831227152E+00 - cg2d: Sum(rhs),rhsMax = -5.01820807130571E-13 8.04727754560105E+00 - cg2d: Sum(rhs),rhsMax = -7.05213665241899E-13 7.88895797900659E+00 - cg2d: Sum(rhs),rhsMax = -8.19788681383216E-13 8.31754379149280E+00 - cg2d: Sum(rhs),rhsMax = -9.11271058612328E-13 8.97048397342872E+00 - cg2d: Sum(rhs),rhsMax = -8.66862137627322E-13 9.43480072450346E+00 - cg2d: Sum(rhs),rhsMax = -8.15347789284715E-13 9.69891950276480E+00 - cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.76269586768808E+00 - cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.63804624668725E+00 - cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007249910E+00 - cg2d: Sum(rhs),rhsMax = -8.91731133378926E-13 9.12167905635334E+00 + cg2d: Sum(rhs),rhsMax = 7.48064804545479E-14 6.28993179755847E+00 + cg2d: Sum(rhs),rhsMax = 7.11930514540882E-14 6.70007867191566E+00 + cg2d: Sum(rhs),rhsMax = 8.45989944764369E-14 6.82703183420356E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 6.85801135256227E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-14 7.14243612862601E+00 + cg2d: Sum(rhs),rhsMax = -5.48450174164827E-14 7.72291390863833E+00 + cg2d: Sum(rhs),rhsMax = -9.28146448586631E-14 8.03387107684378E+00 + cg2d: Sum(rhs),rhsMax = -1.65201186064223E-13 8.11896884946558E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.04727819405251E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 7.88895822804044E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 8.31754398063161E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 8.97048424515955E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 9.43480108757605E+00 + cg2d: Sum(rhs),rhsMax = -8.50874926072720E-13 9.69891995646251E+00 + cg2d: Sum(rhs),rhsMax = -7.94031507211912E-13 9.76269640022403E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 9.63804683577396E+00 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.34829068812273E+00 + cg2d: Sum(rhs),rhsMax = -8.77520278663724E-13 9.12167932074023E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231358161D+06 - --> objf_test(bi,bj) = 0.444589534075216D+06 - local fc = 0.798704765433376D+06 - global fc = 0.798704765433376D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704765433376E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211521583D+06 + --> objf_test(bi,bj) = 0.444589533963431D+06 +(PID.TID 0000.0001) local fc = 0.798704745485014D+06 +(PID.TID 0000.0001) global fc = 0.798704745485014D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745485014E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4986,50 +3551,82 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 7.07489622442381E-14 6.28993178193838E+00 - cg2d: Sum(rhs),rhsMax = 1.31589183993697E-13 6.70007859132745E+00 - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-14 6.82703161605603E+00 - cg2d: Sum(rhs),rhsMax = 7.06101843661600E-14 6.85801094462227E+00 - cg2d: Sum(rhs),rhsMax = -1.06581410364015E-14 7.14243599152355E+00 - cg2d: Sum(rhs),rhsMax = -3.53050921830800E-14 7.72291365604630E+00 - cg2d: Sum(rhs),rhsMax = -1.00364161426114E-13 8.03387068204720E+00 - cg2d: Sum(rhs),rhsMax = -3.38395977905748E-13 8.11896831216451E+00 - cg2d: Sum(rhs),rhsMax = -3.97903932025656E-13 8.04727754547043E+00 - cg2d: Sum(rhs),rhsMax = -7.55839835164807E-13 7.88895797895663E+00 - cg2d: Sum(rhs),rhsMax = -9.37916411203332E-13 8.31754379145464E+00 - cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 8.97048397337405E+00 - cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.43480072443075E+00 - cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950267401E+00 - cg2d: Sum(rhs),rhsMax = -8.88178419700125E-13 9.76269586758171E+00 - cg2d: Sum(rhs),rhsMax = -8.02913291408913E-13 9.63804624656971E+00 - cg2d: Sum(rhs),rhsMax = -7.81597009336110E-13 9.34829007237633E+00 - cg2d: Sum(rhs),rhsMax = -8.84625706021325E-13 9.12167905630036E+00 + cg2d: Sum(rhs),rhsMax = 6.00613309087450E-14 6.28993176632106E+00 + cg2d: Sum(rhs),rhsMax = 8.80406858527749E-14 6.70007851075383E+00 + cg2d: Sum(rhs),rhsMax = 1.25233157177718E-13 6.82703139794340E+00 + cg2d: Sum(rhs),rhsMax = 7.14983627858601E-14 6.85801053674242E+00 + cg2d: Sum(rhs),rhsMax = -3.21964677141295E-14 7.14243585444101E+00 + cg2d: Sum(rhs),rhsMax = -1.82076576038526E-14 7.72291340348824E+00 + cg2d: Sum(rhs),rhsMax = -9.14823772291129E-14 8.03387028729991E+00 + cg2d: Sum(rhs),rhsMax = -2.79776202205539E-13 8.11896777493163E+00 + cg2d: Sum(rhs),rhsMax = -5.62216939670179E-13 8.04727689696161E+00 + cg2d: Sum(rhs),rhsMax = -6.46593889541691E-13 7.88895772989870E+00 + cg2d: Sum(rhs),rhsMax = -7.24753590475302E-13 8.31754360230276E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 8.97048370162142E+00 + cg2d: Sum(rhs),rhsMax = -6.76791955811495E-13 9.43480036132565E+00 + cg2d: Sum(rhs),rhsMax = -6.50146603220492E-13 9.69891904893123E+00 + cg2d: Sum(rhs),rhsMax = -5.29354338141275E-13 9.76269533498671E+00 + cg2d: Sum(rhs),rhsMax = -5.71986902286881E-13 9.63804565741004E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34828945666659E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-13 9.12167879188761E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231362129D+06 - --> objf_test(bi,bj) = 0.444589534075239D+06 - local fc = 0.798704765437369D+06 - global fc = 0.798704765437369D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704765437369E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115251207159D+06 + --> objf_test(bi,bj) = 0.444589534187041D+06 +(PID.TID 0000.0001) local fc = 0.798704785394200D+06 +(PID.TID 0000.0001) global fc = 0.798704785394200D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785394200E+05 grad-res ------------------------------- - grad-res 0 1 4 8 1 1 1 1 7.98704765435E+05 7.98704765433E+05 7.98704765437E+05 - grad-res 0 1 1 204 0 1 1 1 -1.99545934416E-02 -1.99611531571E-02 -3.28732103763E-04 + grad-res 0 1 4 8 1 1 1 1 7.98704765435E+05 7.98704745485E+05 7.98704785394E+05 + grad-res 0 1 1 204 0 1 1 1 -1.99545934416E-02 -1.99545929208E-02 2.60959363008E-08 (PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 (PID.TID 0000.0001) ADM adjoint_gradient = -1.99545934415736E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.99611531570554E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.99545929208398E-02 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 205 6945 2 @@ -5043,44 +3640,76 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 - cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 3.57942842033054E-14 6.28993178194343E+00 - cg2d: Sum(rhs),rhsMax = 1.03556052621911E-13 6.70007859135132E+00 - cg2d: Sum(rhs),rhsMax = 6.43929354282591E-14 6.82703161611199E+00 - cg2d: Sum(rhs),rhsMax = 1.01474384450739E-13 6.85801094471951E+00 - cg2d: Sum(rhs),rhsMax = -2.99760216648792E-14 7.14243599156130E+00 - cg2d: Sum(rhs),rhsMax = 2.26485497023532E-14 7.72291365611195E+00 - cg2d: Sum(rhs),rhsMax = -1.95843341543878E-13 8.03387068214442E+00 - cg2d: Sum(rhs),rhsMax = -3.59268170768701E-13 8.11896831229113E+00 - cg2d: Sum(rhs),rhsMax = -4.87609952415369E-13 8.04727754561625E+00 - cg2d: Sum(rhs),rhsMax = -8.03801469828613E-13 7.88895797901699E+00 - cg2d: Sum(rhs),rhsMax = -6.74127420552395E-13 8.31754379150284E+00 - cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 8.97048397344084E+00 - cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 9.43480072451688E+00 - cg2d: Sum(rhs),rhsMax = -7.92255150372512E-13 9.69891950277832E+00 - cg2d: Sum(rhs),rhsMax = -5.63105118089879E-13 9.76269586770021E+00 - cg2d: Sum(rhs),rhsMax = -6.00408611717285E-13 9.63804624669669E+00 - cg2d: Sum(rhs),rhsMax = -9.52127265918534E-13 9.34829007250513E+00 - cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 9.12167905636223E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02088476561235E-13 6.28993181675462E+00 + cg2d: Sum(rhs),rhsMax = 3.48054918219987E-14 6.70007874244309E+00 + cg2d: Sum(rhs),rhsMax = 8.30446822419617E-14 6.82703196787183E+00 + cg2d: Sum(rhs),rhsMax = 7.72715225139109E-14 6.85801152152627E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 7.14243624072727E+00 + cg2d: Sum(rhs),rhsMax = 1.93178806284777E-14 7.72291407005636E+00 + cg2d: Sum(rhs),rhsMax = -1.45661260830821E-13 8.03387126754609E+00 + cg2d: Sum(rhs),rhsMax = -3.73034936274053E-13 8.11896903505140E+00 + cg2d: Sum(rhs),rhsMax = -5.82645043323282E-13 8.04727833837758E+00 + cg2d: Sum(rhs),rhsMax = -6.01296790136985E-13 7.88895833411389E+00 + cg2d: Sum(rhs),rhsMax = -7.16759984698001E-13 8.31754408258666E+00 + cg2d: Sum(rhs),rhsMax = -7.62057084102707E-13 8.97048436798613E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-13 9.43480122226160E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69892009036024E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-13 9.76269651944944E+00 + cg2d: Sum(rhs),rhsMax = -9.07718344933528E-13 9.63804692811409E+00 + cg2d: Sum(rhs),rhsMax = -6.99884594723699E-13 9.34829074565910E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.12167941044876E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231358193D+06 - --> objf_test(bi,bj) = 0.444589534075217D+06 - local fc = 0.798704765433409D+06 - global fc = 0.798704765433409D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704765433409E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211845444D+06 + --> objf_test(bi,bj) = 0.444589533972970D+06 +(PID.TID 0000.0001) local fc = 0.798704745818414D+06 +(PID.TID 0000.0001) global fc = 0.798704745818414D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745818414E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5088,50 +3717,82 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 6.10084899266283E-14 6.28993178193646E+00 - cg2d: Sum(rhs),rhsMax = 7.47457651328887E-14 6.70007859132015E+00 - cg2d: Sum(rhs),rhsMax = 6.96109836439973E-14 6.82703161604287E+00 - cg2d: Sum(rhs),rhsMax = 9.82547376793264E-14 6.85801094460573E+00 - cg2d: Sum(rhs),rhsMax = -6.26165785888588E-14 7.14243599151192E+00 - cg2d: Sum(rhs),rhsMax = 3.33066907387547E-15 7.72291365602942E+00 - cg2d: Sum(rhs),rhsMax = -1.18127729820117E-13 8.03387068202681E+00 - cg2d: Sum(rhs),rhsMax = -2.93542967710891E-13 8.11896831214697E+00 - cg2d: Sum(rhs),rhsMax = -3.32178728967847E-13 8.04727754545894E+00 - cg2d: Sum(rhs),rhsMax = -5.14255305006373E-13 7.88895797894649E+00 - cg2d: Sum(rhs),rhsMax = -8.28670465580217E-13 8.31754379144449E+00 - cg2d: Sum(rhs),rhsMax = -7.63833440942108E-13 8.97048397336176E+00 - cg2d: Sum(rhs),rhsMax = -8.11795075605914E-13 9.43480072441719E+00 - cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69891950266048E+00 - cg2d: Sum(rhs),rhsMax = -6.66133814775094E-13 9.76269586756972E+00 - cg2d: Sum(rhs),rhsMax = -8.79296635503124E-13 9.63804624656059E+00 - cg2d: Sum(rhs),rhsMax = -7.95807864051312E-13 9.34829007237082E+00 - cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.12167905629137E+00 + cg2d: Sum(rhs),rhsMax = 8.44272568523152E-14 6.28993174712443E+00 + cg2d: Sum(rhs),rhsMax = 1.02307051719208E-13 6.70007844022297E+00 + cg2d: Sum(rhs),rhsMax = 8.57092175010621E-14 6.82703126426732E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-15 6.85801036776147E+00 + cg2d: Sum(rhs),rhsMax = 7.32747196252603E-15 7.14243574233166E+00 + cg2d: Sum(rhs),rhsMax = -5.24025267623074E-14 7.72291324205812E+00 + cg2d: Sum(rhs),rhsMax = -1.68309810533174E-13 8.03387009657824E+00 + cg2d: Sum(rhs),rhsMax = -2.21156426505331E-13 8.11896758931985E+00 + cg2d: Sum(rhs),rhsMax = -6.34159391665889E-13 8.04727675260928E+00 + cg2d: Sum(rhs),rhsMax = -7.96696042471012E-13 7.88895762381980E+00 + cg2d: Sum(rhs),rhsMax = -7.05213665241899E-13 8.31754350033785E+00 + cg2d: Sum(rhs),rhsMax = -8.97060203897126E-13 8.97048357878140E+00 + cg2d: Sum(rhs),rhsMax = -8.84625706021325E-13 9.43480022662309E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69891891501324E+00 + cg2d: Sum(rhs),rhsMax = -5.84421400162682E-13 9.76269521573886E+00 + cg2d: Sum(rhs),rhsMax = -5.04485342389671E-13 9.63804556504662E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-13 9.34828939910810E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.12167870216742E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231362097D+06 - --> objf_test(bi,bj) = 0.444589534075237D+06 - local fc = 0.798704765437333D+06 - global fc = 0.798704765437333D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704765437333E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250883060D+06 + --> objf_test(bi,bj) = 0.444589534177500D+06 +(PID.TID 0000.0001) local fc = 0.798704785060560D+06 +(PID.TID 0000.0001) global fc = 0.798704785060560D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785060560E+05 grad-res ------------------------------- - grad-res 0 2 5 8 1 1 1 1 7.98704765435E+05 7.98704765433E+05 7.98704765437E+05 - grad-res 0 2 2 205 0 1 1 1 -1.96210731004E-02 -1.96200562641E-02 5.18236861556E-05 + grad-res 0 2 5 8 1 1 1 1 7.98704765435E+05 7.98704745818E+05 7.98704785061E+05 + grad-res 0 2 2 205 0 1 1 1 -1.96210731004E-02 -1.96210729191E-02 9.24153731319E-09 (PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 (PID.TID 0000.0001) ADM adjoint_gradient = -1.96210731004369E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.96200562641025E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.96210729191080E-02 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 206 6945 3 @@ -5145,44 +3806,76 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 - cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 8.73016936520088E-14 6.28993178194434E+00 - cg2d: Sum(rhs),rhsMax = 1.09412479076809E-13 6.70007859135251E+00 - cg2d: Sum(rhs),rhsMax = 9.65894031423886E-14 6.82703161611302E+00 - cg2d: Sum(rhs),rhsMax = 1.31339383813156E-13 6.85801094471969E+00 - cg2d: Sum(rhs),rhsMax = -3.88578058618805E-14 7.14243599156986E+00 - cg2d: Sum(rhs),rhsMax = 2.04281036531029E-14 7.72291365612118E+00 - cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 8.03387068215144E+00 - cg2d: Sum(rhs),rhsMax = -3.09086090055644E-13 8.11896831229601E+00 - cg2d: Sum(rhs),rhsMax = -4.71622740860766E-13 8.04727754561628E+00 - cg2d: Sum(rhs),rhsMax = -7.73603403558809E-13 7.88895797902048E+00 - cg2d: Sum(rhs),rhsMax = -7.71827046719409E-13 8.31754379150922E+00 - cg2d: Sum(rhs),rhsMax = -9.25481913327530E-13 8.97048397344763E+00 - cg2d: Sum(rhs),rhsMax = -7.99360577730113E-13 9.43480072452314E+00 - cg2d: Sum(rhs),rhsMax = -7.90478793533111E-13 9.69891950278317E+00 - cg2d: Sum(rhs),rhsMax = -6.53699316899292E-13 9.76269586770301E+00 - cg2d: Sum(rhs),rhsMax = -7.38964445190504E-13 9.63804624669697E+00 - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-13 9.34829007250260E+00 - cg2d: Sum(rhs),rhsMax = -7.42517158869305E-13 9.12167905636660E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 6.04950117777392E-14 6.28993182586126E+00 + cg2d: Sum(rhs),rhsMax = 8.69582184037654E-14 6.70007876102993E+00 + cg2d: Sum(rhs),rhsMax = 1.11133324764978E-13 6.82703198222241E+00 + cg2d: Sum(rhs),rhsMax = 7.44959649523480E-14 6.85801151764922E+00 + cg2d: Sum(rhs),rhsMax = 5.90638649100583E-14 7.14243631937877E+00 + cg2d: Sum(rhs),rhsMax = -8.70414851306123E-14 7.72291415979661E+00 + cg2d: Sum(rhs),rhsMax = -6.12843109593086E-14 8.03387134618398E+00 + cg2d: Sum(rhs),rhsMax = -2.10054196259080E-13 8.11896908159775E+00 + cg2d: Sum(rhs),rhsMax = -4.28990176715160E-13 8.04727834109045E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 7.88895838570755E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754414654848E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 8.97048443536311E+00 + cg2d: Sum(rhs),rhsMax = -9.76996261670138E-13 9.43480128462641E+00 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69892013886075E+00 + cg2d: Sum(rhs),rhsMax = -8.10018718766514E-13 9.76269654665634E+00 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-13 9.63804692953985E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 9.34829072056646E+00 + cg2d: Sum(rhs),rhsMax = -1.04094510788855E-12 9.12167945479450E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231358188D+06 - --> objf_test(bi,bj) = 0.444589534075218D+06 - local fc = 0.798704765433406D+06 - global fc = 0.798704765433406D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704765433406E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211794492D+06 + --> objf_test(bi,bj) = 0.444589533985948D+06 +(PID.TID 0000.0001) local fc = 0.798704745780440D+06 +(PID.TID 0000.0001) global fc = 0.798704745780440D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745780440E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5190,50 +3883,82 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 - cg2d: Sum(rhs),rhsMax = 4.51305659510126E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 8.44515429809789E-14 6.28993178193555E+00 - cg2d: Sum(rhs),rhsMax = 9.50350909079134E-14 6.70007859131807E+00 - cg2d: Sum(rhs),rhsMax = 4.11892742135933E-14 6.82703161604091E+00 - cg2d: Sum(rhs),rhsMax = 2.47579734491410E-14 6.85801094460644E+00 - cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 7.14243599150492E+00 - cg2d: Sum(rhs),rhsMax = -4.24105195406810E-14 7.72291365601962E+00 - cg2d: Sum(rhs),rhsMax = -9.14823772291129E-14 8.03387068201762E+00 - cg2d: Sum(rhs),rhsMax = -3.78364006792253E-13 8.11896831214093E+00 - cg2d: Sum(rhs),rhsMax = -4.92050844513869E-13 8.04727754545728E+00 - cg2d: Sum(rhs),rhsMax = -7.41628980449605E-13 7.88895797893960E+00 - cg2d: Sum(rhs),rhsMax = -7.42517158869305E-13 8.31754379143805E+00 - cg2d: Sum(rhs),rhsMax = -8.20676859802916E-13 8.97048397335496E+00 - cg2d: Sum(rhs),rhsMax = -7.85149723014911E-13 9.43480072441083E+00 - cg2d: Sum(rhs),rhsMax = -7.62057084102707E-13 9.69891950265567E+00 - cg2d: Sum(rhs),rhsMax = -6.27053964308288E-13 9.76269586756700E+00 - cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.63804624656036E+00 - cg2d: Sum(rhs),rhsMax = -8.38440428196918E-13 9.34829007237321E+00 - cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 9.12167905628693E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.93903007170849E-14 6.28993173801757E+00 + cg2d: Sum(rhs),rhsMax = 8.95117313604032E-14 6.70007842163627E+00 + cg2d: Sum(rhs),rhsMax = 8.90398865749376E-14 6.82703124991590E+00 + cg2d: Sum(rhs),rhsMax = 6.02851102371460E-14 6.85801037163938E+00 + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-14 7.14243566367446E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 7.72291315230853E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.03387001792993E+00 + cg2d: Sum(rhs),rhsMax = -1.61648472385423E-13 8.11896754276095E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-13 8.04727674988268E+00 + cg2d: Sum(rhs),rhsMax = -5.87085935421783E-13 7.88895757221765E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-13 8.31754343636939E+00 + cg2d: Sum(rhs),rhsMax = -7.21200876796502E-13 8.97048351139608E+00 + cg2d: Sum(rhs),rhsMax = -8.54427639751520E-13 9.43480016424842E+00 + cg2d: Sum(rhs),rhsMax = -9.25481913327530E-13 9.69891886650228E+00 + cg2d: Sum(rhs),rhsMax = -8.68638494466722E-13 9.76269518852207E+00 + cg2d: Sum(rhs),rhsMax = -7.26529947314702E-13 9.63804556361237E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.34828942419451E+00 + cg2d: Sum(rhs),rhsMax = -9.73443547991337E-13 9.12167865781483E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231362102D+06 - --> objf_test(bi,bj) = 0.444589534075236D+06 - local fc = 0.798704765437337D+06 - global fc = 0.798704765437337D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704765437337E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250934098D+06 + --> objf_test(bi,bj) = 0.444589534164520D+06 +(PID.TID 0000.0001) local fc = 0.798704785098617D+06 +(PID.TID 0000.0001) global fc = 0.798704785098617D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785098617E+05 grad-res ------------------------------- - grad-res 0 3 6 8 1 1 1 1 7.98704765435E+05 7.98704765433E+05 7.98704765437E+05 - grad-res 0 3 3 206 0 1 1 1 -1.96590888574E-02 -1.96584733203E-02 3.13105597414E-05 + grad-res 0 3 6 8 1 1 1 1 7.98704765435E+05 7.98704745780E+05 7.98704785099E+05 + grad-res 0 3 3 206 0 1 1 1 -1.96590888574E-02 -1.96590885753E-02 1.43496108329E-08 (PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 (PID.TID 0000.0001) ADM adjoint_gradient = -1.96590888573815E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -1.96584733203053E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.96590885752812E-02 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 207 6945 4 @@ -5247,44 +3972,76 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 - cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 4.50004616903144E-14 6.28993178194315E+00 - cg2d: Sum(rhs),rhsMax = 1.31367139388772E-13 6.70007859135030E+00 - cg2d: Sum(rhs),rhsMax = 5.96189764223709E-14 6.82703161610809E+00 - cg2d: Sum(rhs),rhsMax = 1.65423230669148E-14 6.85801094471197E+00 - cg2d: Sum(rhs),rhsMax = -3.41948691584548E-14 7.14243599157407E+00 - cg2d: Sum(rhs),rhsMax = -3.88578058618805E-14 7.72291365612505E+00 - cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 8.03387068215321E+00 - cg2d: Sum(rhs),rhsMax = -2.95319324550292E-13 8.11896831229459E+00 - cg2d: Sum(rhs),rhsMax = -3.99680288865056E-13 8.04727754561298E+00 - cg2d: Sum(rhs),rhsMax = -7.30082660993503E-13 7.88895797902488E+00 - cg2d: Sum(rhs),rhsMax = -7.96696042471012E-13 8.31754379151353E+00 - cg2d: Sum(rhs),rhsMax = -8.34887714518118E-13 8.97048397345162E+00 - cg2d: Sum(rhs),rhsMax = -8.89954776539525E-13 9.43480072452627E+00 - cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.69891950278502E+00 - cg2d: Sum(rhs),rhsMax = -6.69686528453894E-13 9.76269586770318E+00 - cg2d: Sum(rhs),rhsMax = -7.22977233635902E-13 9.63804624669534E+00 - cg2d: Sum(rhs),rhsMax = -6.50146603220492E-13 9.34829007249936E+00 - cg2d: Sum(rhs),rhsMax = -6.85673740008497E-13 9.12167905636955E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02076333496903E-13 6.28993181398939E+00 + cg2d: Sum(rhs),rhsMax = 6.70019595361282E-14 6.70007872867703E+00 + cg2d: Sum(rhs),rhsMax = 7.57172102794357E-14 6.82703193243028E+00 + cg2d: Sum(rhs),rhsMax = -2.69784194983913E-14 6.85801145829144E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-14 7.14243636409905E+00 + cg2d: Sum(rhs),rhsMax = 3.68594044175552E-14 7.72291419625406E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-14 8.03387136212002E+00 + cg2d: Sum(rhs),rhsMax = -3.12638803734444E-13 8.11896907166435E+00 + cg2d: Sum(rhs),rhsMax = -3.60600438398251E-13 8.04727830754538E+00 + cg2d: Sum(rhs),rhsMax = -4.45865566689463E-13 7.88895841312003E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 8.31754419038288E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-13 8.97048447703629E+00 + cg2d: Sum(rhs),rhsMax = -9.92983473224740E-13 9.43480131832210E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.69892015948232E+00 + cg2d: Sum(rhs),rhsMax = -8.59756710269721E-13 9.76269655073361E+00 + cg2d: Sum(rhs),rhsMax = -6.62581101096293E-13 9.63804691567410E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.34829068938253E+00 + cg2d: Sum(rhs),rhsMax = -7.06990022081300E-13 9.12167948400885E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231357987D+06 - --> objf_test(bi,bj) = 0.444589534075221D+06 - local fc = 0.798704765433208D+06 - global fc = 0.798704765433208D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704765433208E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115209789749D+06 + --> objf_test(bi,bj) = 0.444589533996457D+06 +(PID.TID 0000.0001) local fc = 0.798704743786205D+06 +(PID.TID 0000.0001) global fc = 0.798704743786205D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704743786205E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5292,50 +4049,82 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 6.52446846549637E-14 6.28993178193674E+00 - cg2d: Sum(rhs),rhsMax = 7.80209230555329E-14 6.70007859132161E+00 - cg2d: Sum(rhs),rhsMax = 9.50350909079134E-14 6.82703161604641E+00 - cg2d: Sum(rhs),rhsMax = 5.58442181386454E-14 6.85801094461299E+00 - cg2d: Sum(rhs),rhsMax = 1.55431223447522E-14 7.14243599149923E+00 - cg2d: Sum(rhs),rhsMax = -9.21485110438880E-14 7.72291365601715E+00 - cg2d: Sum(rhs),rhsMax = -8.97060203897126E-14 8.03387068201753E+00 - cg2d: Sum(rhs),rhsMax = -3.61044527608101E-13 8.11896831214255E+00 - cg2d: Sum(rhs),rhsMax = -5.32018873400375E-13 8.04727754546010E+00 - cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797893534E+00 - cg2d: Sum(rhs),rhsMax = -7.37188088351104E-13 8.31754379143366E+00 - cg2d: Sum(rhs),rhsMax = -9.14823772291129E-13 8.97048397335082E+00 - cg2d: Sum(rhs),rhsMax = -7.58504370423907E-13 9.43480072440762E+00 - cg2d: Sum(rhs),rhsMax = -7.17648163117701E-13 9.69891950265375E+00 - cg2d: Sum(rhs),rhsMax = -7.30082660993503E-13 9.76269586756682E+00 - cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.63804624656201E+00 - cg2d: Sum(rhs),rhsMax = -8.95283847057726E-13 9.34829007237653E+00 - cg2d: Sum(rhs),rhsMax = -7.81597009336110E-13 9.12167905628406E+00 + cg2d: Sum(rhs),rhsMax = 2.89681473253367E-14 6.28993174988977E+00 + cg2d: Sum(rhs),rhsMax = 7.01938507319255E-14 6.70007845399099E+00 + cg2d: Sum(rhs),rhsMax = 9.42579347906758E-14 6.82703129971598E+00 + cg2d: Sum(rhs),rhsMax = 2.96429547574917E-14 6.85801043100343E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 7.14243561895288E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.72291311584920E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-14 8.03387000199137E+00 + cg2d: Sum(rhs),rhsMax = -2.22488694134881E-13 8.11896755269445E+00 + cg2d: Sum(rhs),rhsMax = -6.41264819023490E-13 8.04727678343287E+00 + cg2d: Sum(rhs),rhsMax = -5.80868686483882E-13 7.88895754480134E+00 + cg2d: Sum(rhs),rhsMax = -9.09494701772928E-13 8.31754339253212E+00 + cg2d: Sum(rhs),rhsMax = -8.06466005087714E-13 8.97048346972003E+00 + cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.43480013055025E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.69891884587899E+00 + cg2d: Sum(rhs),rhsMax = -7.70938868299709E-13 9.76269518444410E+00 + cg2d: Sum(rhs),rhsMax = -5.64881474929280E-13 9.63804557747897E+00 + cg2d: Sum(rhs),rhsMax = -8.38440428196918E-13 9.34828945538113E+00 + cg2d: Sum(rhs),rhsMax = -9.27258270166931E-13 9.12167862859873E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231362302D+06 - --> objf_test(bi,bj) = 0.444589534075235D+06 - local fc = 0.798704765437537D+06 - global fc = 0.798704765437537D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704765437537E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252938950D+06 + --> objf_test(bi,bj) = 0.444589534154009D+06 +(PID.TID 0000.0001) local fc = 0.798704787092959D+06 +(PID.TID 0000.0001) global fc = 0.798704787092959D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704787092959E+05 grad-res ------------------------------- - grad-res 0 4 7 8 1 1 1 1 7.98704765435E+05 7.98704765433E+05 7.98704765438E+05 - grad-res 0 4 4 207 0 1 1 1 -2.16533768328E-02 -2.16445187107E-02 4.09087329685E-04 + grad-res 0 4 7 8 1 1 1 1 7.98704765435E+05 7.98704743786E+05 7.98704787093E+05 + grad-res 0 4 4 207 0 1 1 1 -2.16533768328E-02 -2.16533768689E-02 -1.66929803314E-09 (PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 (PID.TID 0000.0001) ADM adjoint_gradient = -2.16533768327800E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.16445187106729E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.16533768689260E-02 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 208 6945 5 @@ -5349,44 +4138,76 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 7.74033614980851E-14 6.28993178194144E+00 - cg2d: Sum(rhs),rhsMax = 1.02529096324133E-13 6.70007859134291E+00 - cg2d: Sum(rhs),rhsMax = 7.28306304154103E-14 6.82703161609566E+00 - cg2d: Sum(rhs),rhsMax = 2.02060590481778E-14 6.85801094469373E+00 - cg2d: Sum(rhs),rhsMax = -2.42028619368284E-14 7.14243599156807E+00 - cg2d: Sum(rhs),rhsMax = -1.07913677993565E-13 7.72291365611494E+00 - cg2d: Sum(rhs),rhsMax = -4.57411886145564E-14 8.03387068214167E+00 - cg2d: Sum(rhs),rhsMax = -3.00648395068492E-13 8.11896831228110E+00 - cg2d: Sum(rhs),rhsMax = -4.68070027181966E-13 8.04727754560106E+00 - cg2d: Sum(rhs),rhsMax = -8.65085780787922E-13 7.88895797902036E+00 - cg2d: Sum(rhs),rhsMax = -7.03437308402499E-13 8.31754379151048E+00 - cg2d: Sum(rhs),rhsMax = -9.76996261670138E-13 8.97048397344724E+00 - cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.43480072452051E+00 - cg2d: Sum(rhs),rhsMax = -7.08766378920700E-13 9.69891950277805E+00 - cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586769535E+00 - cg2d: Sum(rhs),rhsMax = -6.34159391665889E-13 9.63804624668709E+00 - cg2d: Sum(rhs),rhsMax = -8.59756710269721E-13 9.34829007249099E+00 - cg2d: Sum(rhs),rhsMax = -8.52651282912120E-13 9.12167905636606E+00 + cg2d: Sum(rhs),rhsMax = 8.65921917503343E-14 6.28993179690528E+00 + cg2d: Sum(rhs),rhsMax = 1.02751140929058E-13 6.70007866451625E+00 + cg2d: Sum(rhs),rhsMax = 9.19264664389630E-14 6.82703180397228E+00 + cg2d: Sum(rhs),rhsMax = 2.87547763377916E-14 6.85801127814686E+00 + cg2d: Sum(rhs),rhsMax = -5.17363929475323E-14 7.14243630399287E+00 + cg2d: Sum(rhs),rhsMax = -1.01030295240889E-13 7.72291410124891E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-14 8.03387123854270E+00 + cg2d: Sum(rhs),rhsMax = -2.28705943072782E-13 8.11896893397102E+00 + cg2d: Sum(rhs),rhsMax = -5.08926234488172E-13 8.04727817309255E+00 + cg2d: Sum(rhs),rhsMax = -7.86037901434611E-13 7.88895837325005E+00 + cg2d: Sum(rhs),rhsMax = -7.13207271019201E-13 8.31754416062466E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 8.97048443289322E+00 + cg2d: Sum(rhs),rhsMax = -7.30082660993503E-13 9.43480126000874E+00 + cg2d: Sum(rhs),rhsMax = -7.97584220890712E-13 9.69892008917163E+00 + cg2d: Sum(rhs),rhsMax = -7.79820652496710E-13 9.76269647197326E+00 + cg2d: Sum(rhs),rhsMax = -7.14095449438901E-13 9.63804683242312E+00 + cg2d: Sum(rhs),rhsMax = -6.64357457935694E-13 9.34829060499583E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.12167944954854E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231358061D+06 - --> objf_test(bi,bj) = 0.444589534075221D+06 - local fc = 0.798704765433282D+06 - global fc = 0.798704765433282D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704765433282E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115210528326D+06 + --> objf_test(bi,bj) = 0.444589534016192D+06 +(PID.TID 0000.0001) local fc = 0.798704744544518D+06 +(PID.TID 0000.0001) global fc = 0.798704744544518D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704744544518E+05 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5394,254 +4215,286 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sst.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: lev_sss.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_taux.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: trenberth_tauy.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 12 from: ncep_qnet.bin -(PID.TID 0000.0001) EXF_SET_GEN: it= 0 loading rec= 1 from: ncep_qnet.bin +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 - cg2d: Sum(rhs),rhsMax = 6.42142589102335E-14 6.28993178193845E+00 - cg2d: Sum(rhs),rhsMax = 8.10185252220208E-14 6.70007859132800E+00 - cg2d: Sum(rhs),rhsMax = 8.01581023779363E-14 6.82703161605798E+00 - cg2d: Sum(rhs),rhsMax = 9.58122470251510E-14 6.85801094462948E+00 - cg2d: Sum(rhs),rhsMax = -5.66213742558830E-14 7.14243599150587E+00 - cg2d: Sum(rhs),rhsMax = -3.44169137633799E-14 7.72291365602575E+00 - cg2d: Sum(rhs),rhsMax = -1.59872115546023E-13 8.03387068202880E+00 - cg2d: Sum(rhs),rhsMax = -3.77919917582403E-13 8.11896831215564E+00 - cg2d: Sum(rhs),rhsMax = -4.13891143580258E-13 8.04727754547380E+00 - cg2d: Sum(rhs),rhsMax = -6.10178574333986E-13 7.88895797893939E+00 - cg2d: Sum(rhs),rhsMax = -8.75743921824323E-13 8.31754379143682E+00 - cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 8.97048397335530E+00 - cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 9.43480072441335E+00 - cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.69891950266066E+00 - cg2d: Sum(rhs),rhsMax = -7.53175299905706E-13 9.76269586757459E+00 - cg2d: Sum(rhs),rhsMax = -5.59552404411079E-13 9.63804624657024E+00 - cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.34829007238485E+00 - cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.12167905628749E+00 + cg2d: Sum(rhs),rhsMax = 9.68808366863527E-14 6.28993176697426E+00 + cg2d: Sum(rhs),rhsMax = 7.61335439136701E-14 6.70007851815651E+00 + cg2d: Sum(rhs),rhsMax = 4.45199432874688E-14 6.82703142817575E+00 + cg2d: Sum(rhs),rhsMax = 7.64943663966733E-14 6.85801061115647E+00 + cg2d: Sum(rhs),rhsMax = 3.53050921830800E-14 7.14243567906217E+00 + cg2d: Sum(rhs),rhsMax = 4.52970994047064E-14 7.72291321085959E+00 + cg2d: Sum(rhs),rhsMax = -1.55875312657372E-13 8.03387012557786E+00 + cg2d: Sum(rhs),rhsMax = -3.29958282918597E-13 8.11896769039888E+00 + cg2d: Sum(rhs),rhsMax = -5.59552404411079E-13 8.04727691789459E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 7.88895758467024E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754342229045E+00 + cg2d: Sum(rhs),rhsMax = -9.71667191151937E-13 8.97048351386325E+00 + cg2d: Sum(rhs),rhsMax = -7.51398943066306E-13 9.43480018886410E+00 + cg2d: Sum(rhs),rhsMax = -8.98836560736527E-13 9.69891891619086E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-13 9.76269526320693E+00 + cg2d: Sum(rhs),rhsMax = -8.18900502963515E-13 9.63804566073391E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 9.34828953977368E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-13 9.12167866305935E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.354115231362228D+06 - --> objf_test(bi,bj) = 0.444589534075233D+06 - local fc = 0.798704765437461D+06 - global fc = 0.798704765437461D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704765437461E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252200768D+06 + --> objf_test(bi,bj) = 0.444589534134272D+06 +(PID.TID 0000.0001) local fc = 0.798704786335040D+06 +(PID.TID 0000.0001) global fc = 0.798704786335040D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704786335040E+05 grad-res ------------------------------- - grad-res 0 5 8 8 1 1 1 1 7.98704765435E+05 7.98704765433E+05 7.98704765437E+05 - grad-res 0 5 5 208 0 1 1 1 -2.08952615873E-02 -2.08965502679E-02 -6.16733426710E-05 + grad-res 0 5 8 8 1 1 1 1 7.98704765435E+05 7.98704744545E+05 7.98704786335E+05 + grad-res 0 5 5 208 0 1 1 1 -2.08952615873E-02 -2.08952609100E-02 3.24125553064E-08 (PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 (PID.TID 0000.0001) ADM adjoint_gradient = -2.08952615873067E-02 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.08965502679348E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.08952609100379E-02 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) EPS = 1.000000E+00 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 4 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 7.9870476543537E+05 7.9870476543338E+05 7.9870476543737E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -1.9961153157055E-02 -1.9954593441574E-02 -3.2873210376350E-04 +(PID.TID 0000.0001) grdchk output (p): 1 4 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 1 7.9870476543537E+05 7.9870474548501E+05 7.9870478539420E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -1.9954592920840E-02 -1.9954593441574E-02 2.6095936300763E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 5 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 7.9870476543537E+05 7.9870476543341E+05 7.9870476543733E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -1.9620056264102E-02 -1.9621073100437E-02 5.1823686155639E-05 +(PID.TID 0000.0001) grdchk output (p): 2 5 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 2 7.9870476543537E+05 7.9870474581841E+05 7.9870478506056E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -1.9621072919108E-02 -1.9621073100437E-02 9.2415373131871E-09 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 6 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 7.9870476543537E+05 7.9870476543341E+05 7.9870476543734E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -1.9658473320305E-02 -1.9659088857381E-02 3.1310559741371E-05 +(PID.TID 0000.0001) grdchk output (p): 3 6 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 3 7.9870476543537E+05 7.9870474578044E+05 7.9870478509862E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -1.9659088575281E-02 -1.9659088857381E-02 1.4349610832909E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 7 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 4 7.9870476543537E+05 7.9870476543321E+05 7.9870476543754E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -2.1644518710673E-02 -2.1653376832780E-02 4.0908732968536E-04 +(PID.TID 0000.0001) grdchk output (p): 4 7 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 4 7.9870476543537E+05 7.9870474378621E+05 7.9870478709296E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -2.1653376868926E-02 -2.1653376832780E-02 -1.6692980331356E-09 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 8 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 7.9870476543537E+05 7.9870476543328E+05 7.9870476543746E+05 -(PID.TID 0000.0001) grdchk output (g): 5 -2.0896550267935E-02 -2.0895261587307E-02 -6.1673342671043E-05 +(PID.TID 0000.0001) grdchk output (p): 5 8 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 5 7.9870476543537E+05 7.9870474454452E+05 7.9870478633504E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -2.0895260910038E-02 -2.0895261587307E-02 3.2412555306394E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.3785999501731E-04 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.0127968262067E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 230.39697963767685 -(PID.TID 0000.0001) System time: 0.48392698529642075 -(PID.TID 0000.0001) Wall clock time: 231.58339595794678 +(PID.TID 0000.0001) User time: 127.00738575938158 +(PID.TID 0000.0001) System time: 0.90391802787780762 +(PID.TID 0000.0001) Wall clock time: 128.02316403388977 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.13897899561561644 -(PID.TID 0000.0001) System time: 1.59980001626536250E-002 -(PID.TID 0000.0001) Wall clock time: 0.21055603027343750 +(PID.TID 0000.0001) User time: 0.14477199595421553 +(PID.TID 0000.0001) System time: 4.1007000952959061E-002 +(PID.TID 0000.0001) Wall clock time: 0.21989607810974121 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 83.186352998018265 -(PID.TID 0000.0001) System time: 0.37994200922548771 -(PID.TID 0000.0001) Wall clock time: 83.859733104705811 +(PID.TID 0000.0001) User time: 46.838532537221909 +(PID.TID 0000.0001) System time: 0.77875601127743721 +(PID.TID 0000.0001) Wall clock time: 47.693871021270752 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 165.38583296537399 -(PID.TID 0000.0001) System time: 9.69860590994358063E-002 -(PID.TID 0000.0001) Wall clock time: 165.92188835144043 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 94.967609643936157 +(PID.TID 0000.0001) System time: 0.18053381890058517 +(PID.TID 0000.0001) Wall clock time: 95.206948041915894 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1097114384174347 -(PID.TID 0000.0001) System time: 1.49979852139949799E-002 -(PID.TID 0000.0001) Wall clock time: 1.1626951694488525 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.2975633442401886 +(PID.TID 0000.0001) System time: 1.2080945074558258E-002 +(PID.TID 0000.0001) Wall clock time: 1.3565833568572998 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.1017158329486847 -(PID.TID 0000.0001) System time: 1.39979980885982513E-002 -(PID.TID 0000.0001) Wall clock time: 1.1541781425476074 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 7.99942016601562500E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.90572166442871094E-003 -(PID.TID 0000.0001) No. starts: 862 -(PID.TID 0000.0001) No. stops: 862 +(PID.TID 0000.0001) User time: 1.0151709318161011 +(PID.TID 0000.0001) System time: 8.8929831981658936E-003 +(PID.TID 0000.0001) Wall clock time: 1.0710833072662354 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.19154357910156250E-003 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.9452571868896484E-003 +(PID.TID 0000.0001) System time: 1.2010335922241211E-005 +(PID.TID 0000.0001) Wall clock time: 1.9757747650146484E-003 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.54407244920730591 +(PID.TID 0000.0001) System time: 6.8320706486701965E-003 +(PID.TID 0000.0001) Wall clock time: 0.55107879638671875 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20287358760833740 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.19924902915954590 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 0.10861888527870178 +(PID.TID 0000.0001) System time: 1.1638179421424866E-003 +(PID.TID 0000.0001) Wall clock time: 0.10984110832214355 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 25.533201068639755 -(PID.TID 0000.0001) System time: 8.99798423051834106E-003 -(PID.TID 0000.0001) Wall clock time: 25.611576080322266 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 14.373458892107010 +(PID.TID 0000.0001) System time: 2.6835098862648010E-002 +(PID.TID 0000.0001) Wall clock time: 14.403085947036743 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 50.727334260940552 -(PID.TID 0000.0001) System time: 2.89960578083992004E-002 -(PID.TID 0000.0001) Wall clock time: 50.870495319366455 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 29.366063803434372 +(PID.TID 0000.0001) System time: 5.2014879882335663E-002 +(PID.TID 0000.0001) Wall clock time: 29.424268484115601 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 66.285884082317352 -(PID.TID 0000.0001) System time: 1.89969912171363831E-002 -(PID.TID 0000.0001) Wall clock time: 66.490280866622925 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 37.063638627529144 +(PID.TID 0000.0001) System time: 4.4711060822010040E-002 +(PID.TID 0000.0001) Wall clock time: 37.110214233398438 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.203293561935425 -(PID.TID 0000.0001) System time: 1.09979733824729919E-002 -(PID.TID 0000.0001) Wall clock time: 11.237483739852905 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 6.4554805159568787 +(PID.TID 0000.0001) System time: 8.4288716316223145E-003 +(PID.TID 0000.0001) Wall clock time: 6.4663753509521484 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.3618136644363403 -(PID.TID 0000.0001) System time: 1.00001692771911621E-003 -(PID.TID 0000.0001) Wall clock time: 1.3616418838500977 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.0755208134651184 +(PID.TID 0000.0001) System time: 2.0694732666015625E-004 +(PID.TID 0000.0001) Wall clock time: 1.0760369300842285 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.4135764837265015 -(PID.TID 0000.0001) System time: 1.00001692771911621E-003 -(PID.TID 0000.0001) Wall clock time: 2.4189317226409912 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.3397528529167175 +(PID.TID 0000.0001) System time: 7.9769790172576904E-003 +(PID.TID 0000.0001) Wall clock time: 1.3485696315765381 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99890136718750000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.30407714843750000E-003 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.8463134765625000E-003 +(PID.TID 0000.0001) System time: 5.0365924835205078E-006 +(PID.TID 0000.0001) Wall clock time: 1.8935203552246094E-003 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.98883628845214844 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.99307465553283691 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 0.58024948835372925 +(PID.TID 0000.0001) System time: 9.3877315521240234E-005 +(PID.TID 0000.0001) Wall clock time: 0.58063077926635742 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.7437351942062378 -(PID.TID 0000.0001) System time: 2.00000405311584473E-003 -(PID.TID 0000.0001) Wall clock time: 1.7505931854248047 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 0.11009579896926880 +(PID.TID 0000.0001) System time: 4.5001506805419922E-005 +(PID.TID 0000.0001) Wall clock time: 0.11018252372741699 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.7155829668045044 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.7097675800323486 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 2.5739765167236328 +(PID.TID 0000.0001) System time: 8.5026025772094727E-005 +(PID.TID 0000.0001) Wall clock time: 2.5743889808654785 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.19898223876953125E-002 -(PID.TID 0000.0001) System time: 3.99899482727050781E-003 -(PID.TID 0000.0001) Wall clock time: 2.69167423248291016E-002 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 1.6477108001708984E-002 +(PID.TID 0000.0001) System time: 3.8879811763763428E-003 +(PID.TID 0000.0001) Wall clock time: 2.0349740982055664E-002 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.19981384277343750E-002 -(PID.TID 0000.0001) System time: 4.00000065565109253E-003 -(PID.TID 0000.0001) Wall clock time: 5.47542572021484375E-002 -(PID.TID 0000.0001) No. starts: 234 -(PID.TID 0000.0001) No. stops: 234 +(PID.TID 0000.0001) User time: 2.7206182479858398E-002 +(PID.TID 0000.0001) System time: 1.6016989946365356E-002 +(PID.TID 0000.0001) Wall clock time: 4.3254613876342773E-002 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.19888305664062500E-002 -(PID.TID 0000.0001) System time: 6.99898600578308105E-003 -(PID.TID 0000.0001) Wall clock time: 6.87141418457031250E-002 +(PID.TID 0000.0001) User time: 2.9281616210937500E-002 +(PID.TID 0000.0001) System time: 8.0199837684631348E-003 +(PID.TID 0000.0001) Wall clock time: 3.7304878234863281E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 6.59942626953125000E-002 -(PID.TID 0000.0001) System time: 2.00000405311584473E-003 -(PID.TID 0000.0001) Wall clock time: 6.96840286254882813E-002 +(PID.TID 0000.0001) User time: 3.2745361328125000E-002 +(PID.TID 0000.0001) System time: 1.4007091522216797E-005 +(PID.TID 0000.0001) Wall clock time: 3.2770872116088867E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 146.94366455078125 -(PID.TID 0000.0001) System time: 7.89879858493804932E-002 -(PID.TID 0000.0001) Wall clock time: 147.37463402748108 +(PID.TID 0000.0001) User time: 79.961963653564453 +(PID.TID 0000.0001) System time: 7.6115012168884277E-002 +(PID.TID 0000.0001) Wall clock time: 80.039257049560547 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.73190307617187500 -(PID.TID 0000.0001) System time: 6.99996948242187500E-003 -(PID.TID 0000.0001) Wall clock time: 0.74204063415527344 +(PID.TID 0000.0001) User time: 0.70211029052734375 +(PID.TID 0000.0001) System time: 4.6537041664123535E-002 +(PID.TID 0000.0001) Wall clock time: 0.74866509437561035 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 146.17876434326172 -(PID.TID 0000.0001) System time: 6.49900436401367188E-002 -(PID.TID 0000.0001) Wall clock time: 146.59405207633972 +(PID.TID 0000.0001) User time: 79.244552612304688 +(PID.TID 0000.0001) System time: 2.0276010036468506E-002 +(PID.TID 0000.0001) Wall clock time: 79.266005992889404 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 139.47177124023438 -(PID.TID 0000.0001) System time: 6.49900436401367188E-002 -(PID.TID 0000.0001) Wall clock time: 139.85805845260620 +(PID.TID 0000.0001) User time: 79.238777160644531 +(PID.TID 0000.0001) System time: 2.0267009735107422E-002 +(PID.TID 0000.0001) Wall clock time: 79.260199308395386 (PID.TID 0000.0001) No. starts: 200 (PID.TID 0000.0001) No. stops: 200 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.38020515441894531E-003 +(PID.TID 0000.0001) User time: 1.0643005371093750E-003 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 1.0809898376464844E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -5670,9 +4523,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 50526 +(PID.TID 0000.0001) // No. barriers = 48026 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 50526 +(PID.TID 0000.0001) // Total barrier spins = 48026 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_with_exf/results/output_tap_adj.txt b/verification/global_with_exf/results/output_tap_adj.txt new file mode 100644 index 0000000000..c6fd152b97 --- /dev/null +++ b/verification/global_with_exf/results/output_tap_adj.txt @@ -0,0 +1,4476 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu Jul 27 10:56:23 AM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 40 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 2 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 2 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 2 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef = 15*20., +(PID.TID 0000.0001) > sRef = 15*35., +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > rhonil=1035., +(PID.TID 0000.0001) > rotationPeriod=86400., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > eosType = 'JMD95Z', +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) > useNHMTerms=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.05, +(PID.TID 0000.0001) > hFacMindr=50., +(PID.TID 0000.0001) ># set precision of data files +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) >#- not safe to use globalFiles in multi-processors runs +(PID.TID 0000.0001) >#globalfiles=.TRUE. +(PID.TID 0000.0001) >## usesinglecpuio=.TRUE. +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0 = 0, +(PID.TID 0000.0001) > nTimeSteps= 20, +(PID.TID 0000.0001) >#- 100 years of integration will yield a reasonable flow field +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTmom = 1200., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq= 311040000., +(PID.TID 0000.0001) > dumpFreq = 311040000., +(PID.TID 0000.0001) > monitorSelect= 2, +(PID.TID 0000.0001) > monitorFreq = 432000., +(PID.TID 0000.0001) > adjMonitorFreq=259200., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > dySpacing=4., +(PID.TID 0000.0001) > dxSpacing=4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathymetry.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_t.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_s.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) S/R INI_PARMS: No request for barotropic solver +(PID.TID 0000.0001) S/R INI_PARMS: => Use implicitFreeSurface as default +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useCAL = .TRUE., +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) ># useDiagnostics = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/cal compiled and used ( useCAL = T ) + pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='gregorian', +(PID.TID 0000.0001) ># TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=19920101, +(PID.TID 0000.0001) > startDate_2=000000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) > exf_iprec = 32, +(PID.TID 0000.0001) > exf_debugLev = 3, +(PID.TID 0000.0001) >#readStressOnAgrid = .TRUE., +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 864000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) >#hfluxstartdate1 = 19920101, +(PID.TID 0000.0001) >#hfluxstartdate2 = 000000, +(PID.TID 0000.0001) > hfluxperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#sfluxstartdate1 = 19920101, +(PID.TID 0000.0001) >#sfluxstartdate2 = 000000, +(PID.TID 0000.0001) > sfluxperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#ustressstartdate1 = 19920101, +(PID.TID 0000.0001) >#ustressstartdate2 = 000000, +(PID.TID 0000.0001) > ustressperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#vstressstartdate1 = 19920101, +(PID.TID 0000.0001) >#vstressstartdate2 = 000000, +(PID.TID 0000.0001) > vstressperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#climsststartdate1 = 19920101, +(PID.TID 0000.0001) >#climsststartdate2 = 000000, +(PID.TID 0000.0001) > climsstperiod = -12., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > climsstTauRelax = 5184000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#climsssstartdate1 = 19920101, +(PID.TID 0000.0001) >#climsssstartdate2 = 000000, +(PID.TID 0000.0001) > climsssperiod = -12., +(PID.TID 0000.0001) ># 6 months restoring timescale for salinity +(PID.TID 0000.0001) > climsssTauRelax = 15552000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxfile = 'ncep_qnet.bin', +(PID.TID 0000.0001) >#sfluxfile = 'ncep_emp.bin', +(PID.TID 0000.0001) > ustressfile = 'trenberth_taux.bin', +(PID.TID 0000.0001) > vstressfile = 'trenberth_tauy.bin', +(PID.TID 0000.0001) > climsstfile = 'lev_sst.bin', +(PID.TID 0000.0001) > climsssfile = 'lev_sss.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_04 +(PID.TID 0000.0001) > hflux_lon0 = 2., +(PID.TID 0000.0001) > hflux_lon_inc = 4., +(PID.TID 0000.0001) > hflux_lat0 = -78., +(PID.TID 0000.0001) > hflux_lat_inc = 39*4., +(PID.TID 0000.0001) > hflux_nlon = 90, +(PID.TID 0000.0001) > hflux_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > sflux_lon0 = 2., +(PID.TID 0000.0001) > sflux_lon_inc = 4., +(PID.TID 0000.0001) > sflux_lat0 = -78., +(PID.TID 0000.0001) > sflux_lat_inc = 39*4., +(PID.TID 0000.0001) > sflux_nlon = 90, +(PID.TID 0000.0001) > sflux_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > ustress_lon0 = 2., +(PID.TID 0000.0001) > ustress_lon_inc = 4., +(PID.TID 0000.0001) > ustress_lat0 = -78., +(PID.TID 0000.0001) > ustress_lat_inc = 39*4., +(PID.TID 0000.0001) > ustress_nlon = 90, +(PID.TID 0000.0001) > ustress_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vstress_lon0 = 2., +(PID.TID 0000.0001) > vstress_lon_inc = 4., +(PID.TID 0000.0001) > vstress_lat0 = -78., +(PID.TID 0000.0001) > vstress_lat_inc = 39*4., +(PID.TID 0000.0001) > vstress_nlon = 90, +(PID.TID 0000.0001) > vstress_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsst_interpMethod = 1, +(PID.TID 0000.0001) > climsst_lon0 = 2., +(PID.TID 0000.0001) > climsst_lon_inc = 4., +(PID.TID 0000.0001) > climsst_lat0 = -78., +(PID.TID 0000.0001) > climsst_lat_inc = 39*4., +(PID.TID 0000.0001) > climsst_nlon = 90, +(PID.TID 0000.0001) > climsst_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsss_interpMethod = 1, +(PID.TID 0000.0001) > climsss_lon0 = 2., +(PID.TID 0000.0001) > climsss_lon_inc = 4., +(PID.TID 0000.0001) > climsss_lat0 = -78., +(PID.TID 0000.0001) > climsss_lat_inc = 39*4., +(PID.TID 0000.0001) > climsss_nlon = 90, +(PID.TID 0000.0001) > climsss_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_04 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_background_K = 1.e+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) ># useKPPinAdMode = .FALSE., +(PID.TID 0000.0001) ># useGMRediInAdMode = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1., +(PID.TID 0000.0001) ># nbeg = 4, +(PID.TID 0000.0001) > iGloPos = 4, +(PID.TID 0000.0001) > jGloPos = 8, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 301, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E+01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5800000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.0000000000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5600000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7800000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON DXC_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXC_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXC_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXC_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXF_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXF_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXF_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXF_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXG_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXG_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXG_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON DXV_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXV_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXV_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXV_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON YC_max = 7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = -7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON DYC_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYC_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYF_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYF_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYG_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYU_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYU_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON RA_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RA_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RA_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RA_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RAW_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RAW_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RAW_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAS_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAS_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAS_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAZ_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAZ_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 19920101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 19920111 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_output_interp = /* output directly interpolation result */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): NOT defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: NOT defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind stress forcing period is -12. +(PID.TID 0000.0001) Zonal wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_taux.bin << +(PID.TID 0000.0001) interpolate "ustress" (method= 12 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Meridional wind stress forcing period is -12. +(PID.TID 0000.0001) Meridional wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_tauy.bin << +(PID.TID 0000.0001) interpolate "vstress" (method= 22 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) Interp. U & V comp. together: uvInterp_stress = T +(PID.TID 0000.0001) +(PID.TID 0000.0001) Heat flux forcing period is -12. +(PID.TID 0000.0001) Heat flux forcing is read from file: +(PID.TID 0000.0001) >> ncep_qnet.bin << +(PID.TID 0000.0001) interpolate "hflux" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) Climatological SST period is -12. +(PID.TID 0000.0001) Climatological SST is read from file: +(PID.TID 0000.0001) >> lev_sst.bin << +(PID.TID 0000.0001) interpolate "climsst" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS period is -12. +(PID.TID 0000.0001) Climatological SSS is read from file: +(PID.TID 0000.0001) >> lev_sss.bin << +(PID.TID 0000.0001) interpolate "climsss" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 85573 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 984 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 922 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 898 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 12155 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 24310 +(PID.TID 0000.0001) ctrl-wet 8: atmos 24310 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 85573 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2254 2102 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2215 2058 2104 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2178 2027 2070 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2142 1987 2029 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2114 1959 2004 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2076 1918 1959 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2048 1887 1925 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 1999 1831 1869 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 1948 1771 1808 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 1850 1653 1705 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 1655 1404 1458 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 1372 1118 1164 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 828 623 671 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 85573 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 27000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 012155 010816 011065 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 017154 015820 016259 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4226580169407E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4226580169407E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.5961865317148E-21 +(PID.TID 0000.0001) %MON fCori_sd = 9.6335367303779E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4112379284621E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4323448157692E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -3.5808620394229E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 9.6285194120965E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4535550371427E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.0239529651320E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.0260497651149E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.6683828681187E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.272205216643040E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.962666600296178E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.450614146649764E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9733388900757E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6197074666131E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4174614518570E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6229722638208E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7475627899170E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9752769470215E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718006161477E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9628819587991E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0127003139695E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769728598E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3403301351719E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669979760E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3126616755304E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 2.7488999068737E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = -1.6014087945223E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5030779315829E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8631710585513E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.8877960374528E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 2.0835298299789E-01 +(PID.TID 0000.0001) %MON exf_vstress_min = -1.8690676242113E-01 +(PID.TID 0000.0001) %MON exf_vstress_mean = -6.0370444115579E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 4.4471432541253E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6502974903782E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 4.2589080810547E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -1.8702698516846E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6700205338390E+01 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1285666794876E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1773372383983E+00 +(PID.TID 0000.0001) %MON exf_climsst_max = 2.9561637878418E+01 +(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 +(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8364821435178E+01 +(PID.TID 0000.0001) %MON exf_climsst_sd = 9.2122803951938E+00 +(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4303814016692E-02 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.7451293945312E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 2.9661429405212E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4846753273918E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6901487505657E-01 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0345793365991E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.21243316691704E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 +(PID.TID 0000.0001) cg2d_last_res = 8.61904616318740E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.4265531171294E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3393844235115E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.5425727499895E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7022208921814E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3950811573698E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0300131212373E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1831065510468E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.6047417313292E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1175997847039E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.0807961602088E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2763230988020E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8164703792027E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8077159765747E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.4779388303534E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1083233004078E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6590811628920E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9585400136367E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0099585883963E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4895005682906E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8170192568949E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9627372895710E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0895100798726E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6058995604514E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3870055048523E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2153535018234E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7437864015705E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9780894890066E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716859577764E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9614565000130E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0074131526581E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6416734374353E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3688397015289E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.8713778793038E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5179287691691E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.0112040188062E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8547922102572E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.4414613461562E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 9.3437862517658E-05 +(PID.TID 0000.0001) %MON ke_max = 5.5004439557167E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.9145918082103E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 +(PID.TID 0000.0001) %MON vort_r_min = -3.2705199670934E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.7774599513752E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769616255E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3401831223396E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669838212E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3126207924545E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5285894762419E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1706779794100E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 10 +(PID.TID 0000.0001) %MON exf_time_sec = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON exf_ustress_max = 2.7073572479909E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = -1.6261517304567E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.5001891199497E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 8.8650879200067E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 6.9510685256700E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 2.1401905845250E-01 +(PID.TID 0000.0001) %MON exf_vstress_min = -1.8407777456507E-01 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.7269990041303E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 4.5027429170344E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 4.6544292330429E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 4.3096268192414E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -1.8476652108469E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = -1.6639663616666E+01 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.1182949623291E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.1785322808898E+00 +(PID.TID 0000.0001) %MON exf_climsst_max = 2.9483955260246E+01 +(PID.TID 0000.0001) %MON exf_climsst_min = -1.9000000000000E+00 +(PID.TID 0000.0001) %MON exf_climsst_mean = 1.8403413558844E+01 +(PID.TID 0000.0001) %MON exf_climsst_sd = 9.1956055138375E+00 +(PID.TID 0000.0001) %MON exf_climsst_del2 = 2.4346037167323E-02 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.7459143607847E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 2.9690893942310E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.4847776500140E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 9.6502048245594E-01 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 7.0909874257237E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 +(PID.TID 0000.0001) cg2d_init_res = 8.02324513658737E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 25 +(PID.TID 0000.0001) cg2d_last_res = 3.14565696591676E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0884793352945E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0240014646491E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.1077863971295E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6834212550780E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9617383827006E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6918545047124E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3978589286159E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0500488123740E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7484186526642E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1144749586626E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3628736560381E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3353890125702E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2636858611611E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2893754073984E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0812289944863E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5975896911644E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.7697356232963E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.6305898116368E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6641230062618E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7090754679652E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9431867058983E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0531967918882E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.5956760479472E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3552327342299E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.9584645411631E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7421844928125E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9785194129027E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4716231358454E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9587429127505E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0019566199393E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3175242540765E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3270508470032E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.2666872176075E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3659125849473E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3239224675132E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5616185453586E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4530984935619E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.7361369486439E-04 +(PID.TID 0000.0001) %MON ke_max = 1.3120499506137E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.5302954684116E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.3226782436723E+18 +(PID.TID 0000.0001) %MON vort_r_min = -4.4516093630396E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.8113615159083E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.5205769549738E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3401479636588E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -3.1758669754402E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.3126057419671E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.3771111578664E-05 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.3277243151150E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 20 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075227D+06 +(PID.TID 0000.0001) local fc = 0.798704765435371D+06 +(PID.TID 0000.0001) global fc = 0.798704765435371D+06 + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -5.28743715477731E-15 6.76966537085449E-04 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = 8.89288642724750E-14 1.12800176292508E-03 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = 1.74665837349153E-13 1.19230209700089E-03 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = 4.02455846426619E-13 1.12069397365533E-03 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = 4.85722573273506E-13 1.06839092629844E-03 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = 5.43232125949089E-13 1.04899306102913E-03 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = 6.03517236186235E-13 1.01928705835677E-03 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = 6.87672141452822E-13 9.85320725523901E-04 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = 6.83897383169096E-13 1.00868528908259E-03 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 + cg2d: Sum(rhs),rhsMax = 7.11875003389650E-13 1.01831017062021E-03 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = 8.66862137627322E-13 1.01730137453669E-03 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = 1.00230934663159E-12 1.01053671002043E-03 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = 1.10045306200846E-12 1.00342273311352E-03 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = 1.34425803821614E-12 1.00012240906901E-03 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = 1.35225164399344E-12 1.00294944830281E-03 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 1.54720680711762E-12 1.01232637639743E-03 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 1.54587453948807E-12 1.02695457066718E-03 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.49125156667651E-12 1.04437188573639E-03 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 1.47215573065296E-12 1.06189295162398E-03 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075227D+06 +(PID.TID 0000.0001) local fc = 0.798704765435371D+06 +(PID.TID 0000.0001) global fc = 0.798704765435371D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 7.98704765435371E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res exact position met: + grad-res 0 204 4 8 1 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 204 6945 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 4 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 7.48064804545479E-14 6.28993179755847E+00 + cg2d: Sum(rhs),rhsMax = 7.11930514540882E-14 6.70007867191566E+00 + cg2d: Sum(rhs),rhsMax = 8.45989944764369E-14 6.82703183420356E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 6.85801135256227E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-14 7.14243612862601E+00 + cg2d: Sum(rhs),rhsMax = -5.48450174164827E-14 7.72291390863833E+00 + cg2d: Sum(rhs),rhsMax = -9.28146448586631E-14 8.03387107684378E+00 + cg2d: Sum(rhs),rhsMax = -1.65201186064223E-13 8.11896884946558E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.04727819405251E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 7.88895822804044E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 8.31754398063161E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 8.97048424515955E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 9.43480108757605E+00 + cg2d: Sum(rhs),rhsMax = -8.50874926072720E-13 9.69891995646251E+00 + cg2d: Sum(rhs),rhsMax = -7.94031507211912E-13 9.76269640022403E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 9.63804683577396E+00 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.34829068812273E+00 + cg2d: Sum(rhs),rhsMax = -8.77520278663724E-13 9.12167932074023E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211521583D+06 + --> objf_test(bi,bj) = 0.444589533963431D+06 +(PID.TID 0000.0001) local fc = 0.798704745485014D+06 +(PID.TID 0000.0001) global fc = 0.798704745485014D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745485014E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 6.00613309087450E-14 6.28993176632106E+00 + cg2d: Sum(rhs),rhsMax = 8.80406858527749E-14 6.70007851075383E+00 + cg2d: Sum(rhs),rhsMax = 1.25233157177718E-13 6.82703139794340E+00 + cg2d: Sum(rhs),rhsMax = 7.14983627858601E-14 6.85801053674242E+00 + cg2d: Sum(rhs),rhsMax = -3.21964677141295E-14 7.14243585444101E+00 + cg2d: Sum(rhs),rhsMax = -1.82076576038526E-14 7.72291340348824E+00 + cg2d: Sum(rhs),rhsMax = -9.14823772291129E-14 8.03387028729991E+00 + cg2d: Sum(rhs),rhsMax = -2.79776202205539E-13 8.11896777493163E+00 + cg2d: Sum(rhs),rhsMax = -5.62216939670179E-13 8.04727689696161E+00 + cg2d: Sum(rhs),rhsMax = -6.46593889541691E-13 7.88895772989870E+00 + cg2d: Sum(rhs),rhsMax = -7.24753590475302E-13 8.31754360230276E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 8.97048370162142E+00 + cg2d: Sum(rhs),rhsMax = -6.76791955811495E-13 9.43480036132565E+00 + cg2d: Sum(rhs),rhsMax = -6.50146603220492E-13 9.69891904893123E+00 + cg2d: Sum(rhs),rhsMax = -5.29354338141275E-13 9.76269533498671E+00 + cg2d: Sum(rhs),rhsMax = -5.71986902286881E-13 9.63804565741004E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34828945666659E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-13 9.12167879188761E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115251207159D+06 + --> objf_test(bi,bj) = 0.444589534187041D+06 +(PID.TID 0000.0001) local fc = 0.798704785394200D+06 +(PID.TID 0000.0001) global fc = 0.798704785394200D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785394200E+05 +grad-res ------------------------------- + grad-res 0 1 4 8 1 1 1 1 7.98704765435E+05 7.98704745485E+05 7.98704785394E+05 + grad-res 0 1 1 204 0 1 1 1 -1.99545934416E-02 -1.99545929208E-02 2.60959363008E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.99545934415736E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.99545929208398E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 205 6945 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 204 2 + ph-grd -->hit<-- 5 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 5 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02088476561235E-13 6.28993181675462E+00 + cg2d: Sum(rhs),rhsMax = 3.48054918219987E-14 6.70007874244309E+00 + cg2d: Sum(rhs),rhsMax = 8.30446822419617E-14 6.82703196787183E+00 + cg2d: Sum(rhs),rhsMax = 7.72715225139109E-14 6.85801152152627E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 7.14243624072727E+00 + cg2d: Sum(rhs),rhsMax = 1.93178806284777E-14 7.72291407005636E+00 + cg2d: Sum(rhs),rhsMax = -1.45661260830821E-13 8.03387126754609E+00 + cg2d: Sum(rhs),rhsMax = -3.73034936274053E-13 8.11896903505140E+00 + cg2d: Sum(rhs),rhsMax = -5.82645043323282E-13 8.04727833837758E+00 + cg2d: Sum(rhs),rhsMax = -6.01296790136985E-13 7.88895833411389E+00 + cg2d: Sum(rhs),rhsMax = -7.16759984698001E-13 8.31754408258666E+00 + cg2d: Sum(rhs),rhsMax = -7.62057084102707E-13 8.97048436798613E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-13 9.43480122226160E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69892009036024E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-13 9.76269651944944E+00 + cg2d: Sum(rhs),rhsMax = -9.07718344933528E-13 9.63804692811409E+00 + cg2d: Sum(rhs),rhsMax = -6.99884594723699E-13 9.34829074565910E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.12167941044876E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211845444D+06 + --> objf_test(bi,bj) = 0.444589533972970D+06 +(PID.TID 0000.0001) local fc = 0.798704745818414D+06 +(PID.TID 0000.0001) global fc = 0.798704745818414D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745818414E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.44272568523152E-14 6.28993174712443E+00 + cg2d: Sum(rhs),rhsMax = 1.02307051719208E-13 6.70007844022297E+00 + cg2d: Sum(rhs),rhsMax = 8.57092175010621E-14 6.82703126426732E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-15 6.85801036776147E+00 + cg2d: Sum(rhs),rhsMax = 7.32747196252603E-15 7.14243574233166E+00 + cg2d: Sum(rhs),rhsMax = -5.24025267623074E-14 7.72291324205812E+00 + cg2d: Sum(rhs),rhsMax = -1.68309810533174E-13 8.03387009657824E+00 + cg2d: Sum(rhs),rhsMax = -2.21156426505331E-13 8.11896758931985E+00 + cg2d: Sum(rhs),rhsMax = -6.34159391665889E-13 8.04727675260928E+00 + cg2d: Sum(rhs),rhsMax = -7.96696042471012E-13 7.88895762381980E+00 + cg2d: Sum(rhs),rhsMax = -7.05213665241899E-13 8.31754350033785E+00 + cg2d: Sum(rhs),rhsMax = -8.97060203897126E-13 8.97048357878140E+00 + cg2d: Sum(rhs),rhsMax = -8.84625706021325E-13 9.43480022662309E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69891891501324E+00 + cg2d: Sum(rhs),rhsMax = -5.84421400162682E-13 9.76269521573886E+00 + cg2d: Sum(rhs),rhsMax = -5.04485342389671E-13 9.63804556504662E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-13 9.34828939910810E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.12167870216742E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250883060D+06 + --> objf_test(bi,bj) = 0.444589534177500D+06 +(PID.TID 0000.0001) local fc = 0.798704785060560D+06 +(PID.TID 0000.0001) global fc = 0.798704785060560D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785060560E+05 +grad-res ------------------------------- + grad-res 0 2 5 8 1 1 1 1 7.98704765435E+05 7.98704745818E+05 7.98704785061E+05 + grad-res 0 2 2 205 0 1 1 1 -1.96210731004E-02 -1.96210729191E-02 9.24153731319E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.96210731004369E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.96210729191080E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 206 6945 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 205 3 + ph-grd -->hit<-- 6 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 6 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 6.04950117777392E-14 6.28993182586126E+00 + cg2d: Sum(rhs),rhsMax = 8.69582184037654E-14 6.70007876102993E+00 + cg2d: Sum(rhs),rhsMax = 1.11133324764978E-13 6.82703198222241E+00 + cg2d: Sum(rhs),rhsMax = 7.44959649523480E-14 6.85801151764922E+00 + cg2d: Sum(rhs),rhsMax = 5.90638649100583E-14 7.14243631937877E+00 + cg2d: Sum(rhs),rhsMax = -8.70414851306123E-14 7.72291415979661E+00 + cg2d: Sum(rhs),rhsMax = -6.12843109593086E-14 8.03387134618398E+00 + cg2d: Sum(rhs),rhsMax = -2.10054196259080E-13 8.11896908159775E+00 + cg2d: Sum(rhs),rhsMax = -4.28990176715160E-13 8.04727834109045E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 7.88895838570755E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754414654848E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 8.97048443536311E+00 + cg2d: Sum(rhs),rhsMax = -9.76996261670138E-13 9.43480128462641E+00 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69892013886075E+00 + cg2d: Sum(rhs),rhsMax = -8.10018718766514E-13 9.76269654665634E+00 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-13 9.63804692953985E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 9.34829072056646E+00 + cg2d: Sum(rhs),rhsMax = -1.04094510788855E-12 9.12167945479450E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211794492D+06 + --> objf_test(bi,bj) = 0.444589533985948D+06 +(PID.TID 0000.0001) local fc = 0.798704745780440D+06 +(PID.TID 0000.0001) global fc = 0.798704745780440D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745780440E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.93903007170849E-14 6.28993173801757E+00 + cg2d: Sum(rhs),rhsMax = 8.95117313604032E-14 6.70007842163627E+00 + cg2d: Sum(rhs),rhsMax = 8.90398865749376E-14 6.82703124991590E+00 + cg2d: Sum(rhs),rhsMax = 6.02851102371460E-14 6.85801037163938E+00 + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-14 7.14243566367446E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 7.72291315230853E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.03387001792993E+00 + cg2d: Sum(rhs),rhsMax = -1.61648472385423E-13 8.11896754276095E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-13 8.04727674988268E+00 + cg2d: Sum(rhs),rhsMax = -5.87085935421783E-13 7.88895757221765E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-13 8.31754343636939E+00 + cg2d: Sum(rhs),rhsMax = -7.21200876796502E-13 8.97048351139608E+00 + cg2d: Sum(rhs),rhsMax = -8.54427639751520E-13 9.43480016424842E+00 + cg2d: Sum(rhs),rhsMax = -9.25481913327530E-13 9.69891886650228E+00 + cg2d: Sum(rhs),rhsMax = -8.68638494466722E-13 9.76269518852207E+00 + cg2d: Sum(rhs),rhsMax = -7.26529947314702E-13 9.63804556361237E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.34828942419451E+00 + cg2d: Sum(rhs),rhsMax = -9.73443547991337E-13 9.12167865781483E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250934098D+06 + --> objf_test(bi,bj) = 0.444589534164520D+06 +(PID.TID 0000.0001) local fc = 0.798704785098617D+06 +(PID.TID 0000.0001) global fc = 0.798704785098617D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785098617E+05 +grad-res ------------------------------- + grad-res 0 3 6 8 1 1 1 1 7.98704765435E+05 7.98704745780E+05 7.98704785099E+05 + grad-res 0 3 3 206 0 1 1 1 -1.96590888574E-02 -1.96590885753E-02 1.43496108329E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.96590888573815E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -1.96590885752812E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 207 6945 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 206 4 + ph-grd -->hit<-- 7 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 7 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02076333496903E-13 6.28993181398939E+00 + cg2d: Sum(rhs),rhsMax = 6.70019595361282E-14 6.70007872867703E+00 + cg2d: Sum(rhs),rhsMax = 7.57172102794357E-14 6.82703193243028E+00 + cg2d: Sum(rhs),rhsMax = -2.69784194983913E-14 6.85801145829144E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-14 7.14243636409905E+00 + cg2d: Sum(rhs),rhsMax = 3.68594044175552E-14 7.72291419625406E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-14 8.03387136212002E+00 + cg2d: Sum(rhs),rhsMax = -3.12638803734444E-13 8.11896907166435E+00 + cg2d: Sum(rhs),rhsMax = -3.60600438398251E-13 8.04727830754538E+00 + cg2d: Sum(rhs),rhsMax = -4.45865566689463E-13 7.88895841312003E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 8.31754419038288E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-13 8.97048447703629E+00 + cg2d: Sum(rhs),rhsMax = -9.92983473224740E-13 9.43480131832210E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.69892015948232E+00 + cg2d: Sum(rhs),rhsMax = -8.59756710269721E-13 9.76269655073361E+00 + cg2d: Sum(rhs),rhsMax = -6.62581101096293E-13 9.63804691567410E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.34829068938253E+00 + cg2d: Sum(rhs),rhsMax = -7.06990022081300E-13 9.12167948400885E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115209789749D+06 + --> objf_test(bi,bj) = 0.444589533996457D+06 +(PID.TID 0000.0001) local fc = 0.798704743786205D+06 +(PID.TID 0000.0001) global fc = 0.798704743786205D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704743786205E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 2.89681473253367E-14 6.28993174988977E+00 + cg2d: Sum(rhs),rhsMax = 7.01938507319255E-14 6.70007845399099E+00 + cg2d: Sum(rhs),rhsMax = 9.42579347906758E-14 6.82703129971598E+00 + cg2d: Sum(rhs),rhsMax = 2.96429547574917E-14 6.85801043100343E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 7.14243561895288E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.72291311584920E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-14 8.03387000199137E+00 + cg2d: Sum(rhs),rhsMax = -2.22488694134881E-13 8.11896755269445E+00 + cg2d: Sum(rhs),rhsMax = -6.41264819023490E-13 8.04727678343287E+00 + cg2d: Sum(rhs),rhsMax = -5.80868686483882E-13 7.88895754480134E+00 + cg2d: Sum(rhs),rhsMax = -9.09494701772928E-13 8.31754339253212E+00 + cg2d: Sum(rhs),rhsMax = -8.06466005087714E-13 8.97048346972003E+00 + cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.43480013055025E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.69891884587899E+00 + cg2d: Sum(rhs),rhsMax = -7.70938868299709E-13 9.76269518444410E+00 + cg2d: Sum(rhs),rhsMax = -5.64881474929280E-13 9.63804557747897E+00 + cg2d: Sum(rhs),rhsMax = -8.38440428196918E-13 9.34828945538113E+00 + cg2d: Sum(rhs),rhsMax = -9.27258270166931E-13 9.12167862859873E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252938950D+06 + --> objf_test(bi,bj) = 0.444589534154009D+06 +(PID.TID 0000.0001) local fc = 0.798704787092959D+06 +(PID.TID 0000.0001) global fc = 0.798704787092959D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704787092959E+05 +grad-res ------------------------------- + grad-res 0 4 7 8 1 1 1 1 7.98704765435E+05 7.98704743786E+05 7.98704787093E+05 + grad-res 0 4 4 207 0 1 1 1 -2.16533768328E-02 -2.16533768689E-02 -1.66929803314E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.16533768327800E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.16533768689260E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 208 6945 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 207 5 + ph-grd -->hit<-- 8 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 8 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.65921917503343E-14 6.28993179690528E+00 + cg2d: Sum(rhs),rhsMax = 1.02751140929058E-13 6.70007866451625E+00 + cg2d: Sum(rhs),rhsMax = 9.19264664389630E-14 6.82703180397228E+00 + cg2d: Sum(rhs),rhsMax = 2.87547763377916E-14 6.85801127814686E+00 + cg2d: Sum(rhs),rhsMax = -5.17363929475323E-14 7.14243630399287E+00 + cg2d: Sum(rhs),rhsMax = -1.01030295240889E-13 7.72291410124891E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-14 8.03387123854270E+00 + cg2d: Sum(rhs),rhsMax = -2.28705943072782E-13 8.11896893397102E+00 + cg2d: Sum(rhs),rhsMax = -5.08926234488172E-13 8.04727817309255E+00 + cg2d: Sum(rhs),rhsMax = -7.86037901434611E-13 7.88895837325005E+00 + cg2d: Sum(rhs),rhsMax = -7.13207271019201E-13 8.31754416062466E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 8.97048443289322E+00 + cg2d: Sum(rhs),rhsMax = -7.30082660993503E-13 9.43480126000874E+00 + cg2d: Sum(rhs),rhsMax = -7.97584220890712E-13 9.69892008917163E+00 + cg2d: Sum(rhs),rhsMax = -7.79820652496710E-13 9.76269647197326E+00 + cg2d: Sum(rhs),rhsMax = -7.14095449438901E-13 9.63804683242312E+00 + cg2d: Sum(rhs),rhsMax = -6.64357457935694E-13 9.34829060499583E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.12167944954854E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115210528326D+06 + --> objf_test(bi,bj) = 0.444589534016192D+06 +(PID.TID 0000.0001) local fc = 0.798704744544518D+06 +(PID.TID 0000.0001) global fc = 0.798704744544518D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704744544518E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 9.68808366863527E-14 6.28993176697426E+00 + cg2d: Sum(rhs),rhsMax = 7.61335439136701E-14 6.70007851815651E+00 + cg2d: Sum(rhs),rhsMax = 4.45199432874688E-14 6.82703142817575E+00 + cg2d: Sum(rhs),rhsMax = 7.64943663966733E-14 6.85801061115647E+00 + cg2d: Sum(rhs),rhsMax = 3.53050921830800E-14 7.14243567906217E+00 + cg2d: Sum(rhs),rhsMax = 4.52970994047064E-14 7.72291321085959E+00 + cg2d: Sum(rhs),rhsMax = -1.55875312657372E-13 8.03387012557786E+00 + cg2d: Sum(rhs),rhsMax = -3.29958282918597E-13 8.11896769039888E+00 + cg2d: Sum(rhs),rhsMax = -5.59552404411079E-13 8.04727691789459E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 7.88895758467024E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754342229045E+00 + cg2d: Sum(rhs),rhsMax = -9.71667191151937E-13 8.97048351386325E+00 + cg2d: Sum(rhs),rhsMax = -7.51398943066306E-13 9.43480018886410E+00 + cg2d: Sum(rhs),rhsMax = -8.98836560736527E-13 9.69891891619086E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-13 9.76269526320693E+00 + cg2d: Sum(rhs),rhsMax = -8.18900502963515E-13 9.63804566073391E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 9.34828953977368E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-13 9.12167866305935E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252200768D+06 + --> objf_test(bi,bj) = 0.444589534134272D+06 +(PID.TID 0000.0001) local fc = 0.798704786335040D+06 +(PID.TID 0000.0001) global fc = 0.798704786335040D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704786335040E+05 +grad-res ------------------------------- + grad-res 0 5 8 8 1 1 1 1 7.98704765435E+05 7.98704744545E+05 7.98704786335E+05 + grad-res 0 5 5 208 0 1 1 1 -2.08952615873E-02 -2.08952609100E-02 3.24125553064E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.08952615873067E-02 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.08952609100379E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 4 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 1 7.9870476543537E+05 7.9870474548501E+05 7.9870478539420E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -1.9954592920840E-02 -1.9954593441574E-02 2.6095936300763E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 5 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 2 7.9870476543537E+05 7.9870474581841E+05 7.9870478506056E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -1.9621072919108E-02 -1.9621073100437E-02 9.2415373131871E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 6 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 3 7.9870476543537E+05 7.9870474578044E+05 7.9870478509862E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -1.9659088575281E-02 -1.9659088857381E-02 1.4349610832909E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 7 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 4 7.9870476543537E+05 7.9870474378621E+05 7.9870478709296E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -2.1653376868926E-02 -2.1653376832780E-02 -1.6692980331356E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 8 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 5 7.9870476543537E+05 7.9870474454452E+05 7.9870478633504E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -2.0895260910038E-02 -2.0895261587307E-02 3.2412555306394E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.0127968262067E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 53.081075735855848 +(PID.TID 0000.0001) System time: 1.0696720248088241 +(PID.TID 0000.0001) Wall clock time: 54.317493915557861 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 6.1443000799044967E-002 +(PID.TID 0000.0001) System time: 8.2340002991259098E-003 +(PID.TID 0000.0001) Wall clock time: 7.1938037872314453E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 35.843738064169884 +(PID.TID 0000.0001) System time: 1.4267833903431892E-002 +(PID.TID 0000.0001) Wall clock time: 35.957053899765015 +(PID.TID 0000.0001) No. starts: 240 +(PID.TID 0000.0001) No. stops: 240 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.61772838234901428 +(PID.TID 0000.0001) System time: 3.6848112940788269E-003 +(PID.TID 0000.0001) Wall clock time: 0.62423014640808105 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 0.53230354189872742 +(PID.TID 0000.0001) System time: 2.2788848727941513E-003 +(PID.TID 0000.0001) Wall clock time: 0.53733062744140625 +(PID.TID 0000.0001) No. starts: 280 +(PID.TID 0000.0001) No. stops: 280 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.6280263662338257E-003 +(PID.TID 0000.0001) System time: 1.0157003998756409E-005 +(PID.TID 0000.0001) Wall clock time: 1.6455650329589844E-003 +(PID.TID 0000.0001) No. starts: 280 +(PID.TID 0000.0001) No. stops: 280 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.22667592763900757 +(PID.TID 0000.0001) System time: 5.2997842431068420E-005 +(PID.TID 0000.0001) Wall clock time: 0.22741031646728516 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.8973351716995239E-002 +(PID.TID 0000.0001) System time: 4.3040141463279724E-005 +(PID.TID 0000.0001) Wall clock time: 4.9228191375732422E-002 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.5300939828157425 +(PID.TID 0000.0001) System time: 1.7940998077392578E-005 +(PID.TID 0000.0001) Wall clock time: 6.5489366054534912 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 11.738134086132050 +(PID.TID 0000.0001) System time: 2.8281249105930328E-003 +(PID.TID 0000.0001) Wall clock time: 11.773603916168213 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 15.257792100310326 +(PID.TID 0000.0001) System time: 9.9107250571250916E-004 +(PID.TID 0000.0001) Wall clock time: 15.299843549728394 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2433034479618073 +(PID.TID 0000.0001) System time: 9.8794698715209961E-004 +(PID.TID 0000.0001) Wall clock time: 2.2501661777496338 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.45221662521362305 +(PID.TID 0000.0001) System time: 6.2847509980201721E-005 +(PID.TID 0000.0001) Wall clock time: 0.45352244377136230 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.53907394409179688 +(PID.TID 0000.0001) System time: 9.5498934388160706E-004 +(PID.TID 0000.0001) Wall clock time: 0.54165434837341309 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4992952346801758E-003 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 1.5447139739990234E-003 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.25848966836929321 +(PID.TID 0000.0001) System time: 1.0040253400802612E-003 +(PID.TID 0000.0001) Wall clock time: 0.26044344902038574 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.3779472112655640E-002 +(PID.TID 0000.0001) System time: 4.8875808715820312E-006 +(PID.TID 0000.0001) Wall clock time: 3.3854722976684570E-002 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.79149705171585083 +(PID.TID 0000.0001) System time: 9.6004456281661987E-004 +(PID.TID 0000.0001) Wall clock time: 0.79473614692687988 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.9154710769653320E-003 +(PID.TID 0000.0001) System time: 9.7495317459106445E-004 +(PID.TID 0000.0001) Wall clock time: 1.1041641235351562E-002 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8438339233398438E-002 +(PID.TID 0000.0001) System time: 2.0091161131858826E-003 +(PID.TID 0000.0001) Wall clock time: 2.0611047744750977E-002 +(PID.TID 0000.0001) No. starts: 260 +(PID.TID 0000.0001) No. stops: 260 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.0734558105468750E-002 +(PID.TID 0000.0001) System time: 2.9770135879516602E-003 +(PID.TID 0000.0001) Wall clock time: 1.3760089874267578E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.1951446533203125E-002 +(PID.TID 0000.0001) System time: 9.9599361419677734E-004 +(PID.TID 0000.0001) Wall clock time: 1.2992143630981445E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 33.185953140258789 +(PID.TID 0000.0001) System time: 2.7783989906311035E-002 +(PID.TID 0000.0001) Wall clock time: 33.306116819381714 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.34915733337402344 +(PID.TID 0000.0001) System time: 1.6186118125915527E-002 +(PID.TID 0000.0001) Wall clock time: 0.36712813377380371 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 32.827270507812500 +(PID.TID 0000.0001) System time: 8.1689357757568359E-003 +(PID.TID 0000.0001) Wall clock time: 32.925931453704834 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 32.825355529785156 +(PID.TID 0000.0001) System time: 8.1079006195068359E-003 +(PID.TID 0000.0001) Wall clock time: 32.923975944519043 +(PID.TID 0000.0001) No. starts: 220 +(PID.TID 0000.0001) No. stops: 220 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 4.9018859863281250E-004 +(PID.TID 0000.0001) System time: 4.5895576477050781E-005 +(PID.TID 0000.0001) Wall clock time: 5.3644180297851562E-004 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 54502 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 54502 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/global_with_exf/results/output_tap_tlm.txt b/verification/global_with_exf/results/output_tap_tlm.txt new file mode 100644 index 0000000000..f901a55905 --- /dev/null +++ b/verification/global_with_exf/results/output_tap_tlm.txt @@ -0,0 +1,4345 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu Jul 27 12:08:59 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 40 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 2 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 2 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 2 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef = 15*20., +(PID.TID 0000.0001) > sRef = 15*35., +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > rhonil=1035., +(PID.TID 0000.0001) > rotationPeriod=86400., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > eosType = 'JMD95Z', +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) > useRealFreshWaterFlux=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) > useNHMTerms=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.05, +(PID.TID 0000.0001) > hFacMindr=50., +(PID.TID 0000.0001) ># set precision of data files +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) >#- not safe to use globalFiles in multi-processors runs +(PID.TID 0000.0001) >#globalfiles=.TRUE. +(PID.TID 0000.0001) >## usesinglecpuio=.TRUE. +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0 = 0, +(PID.TID 0000.0001) > nTimeSteps= 20, +(PID.TID 0000.0001) >#- 100 years of integration will yield a reasonable flow field +(PID.TID 0000.0001) ># endTime = 3110400000., +(PID.TID 0000.0001) > deltaTmom = 1200., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq= 311040000., +(PID.TID 0000.0001) > dumpFreq = 311040000., +(PID.TID 0000.0001) > monitorSelect= 2, +(PID.TID 0000.0001) > monitorFreq = 432000., +(PID.TID 0000.0001) > adjMonitorFreq=259200., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > dySpacing=4., +(PID.TID 0000.0001) > dxSpacing=4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathymetry.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_t.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_s.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) S/R INI_PARMS: No request for barotropic solver +(PID.TID 0000.0001) S/R INI_PARMS: => Use implicitFreeSurface as default +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useCAL = .TRUE., +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) ># useDiagnostics = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/cal compiled and used ( useCAL = T ) + pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='gregorian', +(PID.TID 0000.0001) ># TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=19920101, +(PID.TID 0000.0001) > startDate_2=000000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) > exf_iprec = 32, +(PID.TID 0000.0001) > exf_debugLev = 3, +(PID.TID 0000.0001) >#readStressOnAgrid = .TRUE., +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 864000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) >#hfluxstartdate1 = 19920101, +(PID.TID 0000.0001) >#hfluxstartdate2 = 000000, +(PID.TID 0000.0001) > hfluxperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#sfluxstartdate1 = 19920101, +(PID.TID 0000.0001) >#sfluxstartdate2 = 000000, +(PID.TID 0000.0001) > sfluxperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#ustressstartdate1 = 19920101, +(PID.TID 0000.0001) >#ustressstartdate2 = 000000, +(PID.TID 0000.0001) > ustressperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#vstressstartdate1 = 19920101, +(PID.TID 0000.0001) >#vstressstartdate2 = 000000, +(PID.TID 0000.0001) > vstressperiod = -12., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#climsststartdate1 = 19920101, +(PID.TID 0000.0001) >#climsststartdate2 = 000000, +(PID.TID 0000.0001) > climsstperiod = -12., +(PID.TID 0000.0001) ># 2 months restoring timescale for temperature +(PID.TID 0000.0001) > climsstTauRelax = 5184000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#climsssstartdate1 = 19920101, +(PID.TID 0000.0001) >#climsssstartdate2 = 000000, +(PID.TID 0000.0001) > climsssperiod = -12., +(PID.TID 0000.0001) ># 6 months restoring timescale for salinity +(PID.TID 0000.0001) > climsssTauRelax = 15552000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxfile = 'ncep_qnet.bin', +(PID.TID 0000.0001) >#sfluxfile = 'ncep_emp.bin', +(PID.TID 0000.0001) > ustressfile = 'trenberth_taux.bin', +(PID.TID 0000.0001) > vstressfile = 'trenberth_tauy.bin', +(PID.TID 0000.0001) > climsstfile = 'lev_sst.bin', +(PID.TID 0000.0001) > climsssfile = 'lev_sss.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_04 +(PID.TID 0000.0001) > hflux_lon0 = 2., +(PID.TID 0000.0001) > hflux_lon_inc = 4., +(PID.TID 0000.0001) > hflux_lat0 = -78., +(PID.TID 0000.0001) > hflux_lat_inc = 39*4., +(PID.TID 0000.0001) > hflux_nlon = 90, +(PID.TID 0000.0001) > hflux_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > sflux_lon0 = 2., +(PID.TID 0000.0001) > sflux_lon_inc = 4., +(PID.TID 0000.0001) > sflux_lat0 = -78., +(PID.TID 0000.0001) > sflux_lat_inc = 39*4., +(PID.TID 0000.0001) > sflux_nlon = 90, +(PID.TID 0000.0001) > sflux_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > ustress_lon0 = 2., +(PID.TID 0000.0001) > ustress_lon_inc = 4., +(PID.TID 0000.0001) > ustress_lat0 = -78., +(PID.TID 0000.0001) > ustress_lat_inc = 39*4., +(PID.TID 0000.0001) > ustress_nlon = 90, +(PID.TID 0000.0001) > ustress_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vstress_lon0 = 2., +(PID.TID 0000.0001) > vstress_lon_inc = 4., +(PID.TID 0000.0001) > vstress_lat0 = -78., +(PID.TID 0000.0001) > vstress_lat_inc = 39*4., +(PID.TID 0000.0001) > vstress_nlon = 90, +(PID.TID 0000.0001) > vstress_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsst_interpMethod = 1, +(PID.TID 0000.0001) > climsst_lon0 = 2., +(PID.TID 0000.0001) > climsst_lon_inc = 4., +(PID.TID 0000.0001) > climsst_lat0 = -78., +(PID.TID 0000.0001) > climsst_lat_inc = 39*4., +(PID.TID 0000.0001) > climsst_nlon = 90, +(PID.TID 0000.0001) > climsst_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsss_interpMethod = 1, +(PID.TID 0000.0001) > climsss_lon0 = 2., +(PID.TID 0000.0001) > climsss_lon_inc = 4., +(PID.TID 0000.0001) > climsss_lat0 = -78., +(PID.TID 0000.0001) > climsss_lat_inc = 39*4., +(PID.TID 0000.0001) > climsss_nlon = 90, +(PID.TID 0000.0001) > climsss_nlat = 40, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_04 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_background_K = 1.e+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) ># useKPPinAdMode = .FALSE., +(PID.TID 0000.0001) ># useGMRediInAdMode = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19920101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1., +(PID.TID 0000.0001) ># nbeg = 4, +(PID.TID 0000.0001) > iGloPos = 4, +(PID.TID 0000.0001) > jGloPos = 8, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 301, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E+01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5800000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.0000000000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5600000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7800000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON DXC_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXC_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXC_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXC_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXF_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXF_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXF_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXF_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXG_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXG_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXG_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON DXV_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXV_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXV_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXV_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON YC_max = 7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = -7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON DYC_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYC_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYF_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYF_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYG_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON DYU_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_mean = 4.4470989340817E+05 +(PID.TID 0000.0001) %MON DYU_sd = 1.4668330550194E-08 +(PID.TID 0000.0001) %MON RA_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RA_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RA_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RA_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RAW_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RAW_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RAW_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAS_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAS_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAS_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAZ_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAZ_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 19920101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 19920111 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_output_interp = /* output directly interpolation result */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): NOT defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: NOT defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind stress forcing period is -12. +(PID.TID 0000.0001) Zonal wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_taux.bin << +(PID.TID 0000.0001) interpolate "ustress" (method= 12 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Meridional wind stress forcing period is -12. +(PID.TID 0000.0001) Meridional wind stress forcing is read from file: +(PID.TID 0000.0001) >> trenberth_tauy.bin << +(PID.TID 0000.0001) interpolate "vstress" (method= 22 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) Interp. U & V comp. together: uvInterp_stress = T +(PID.TID 0000.0001) +(PID.TID 0000.0001) Heat flux forcing period is -12. +(PID.TID 0000.0001) Heat flux forcing is read from file: +(PID.TID 0000.0001) >> ncep_qnet.bin << +(PID.TID 0000.0001) interpolate "hflux" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) Climatological SST period is -12. +(PID.TID 0000.0001) Climatological SST is read from file: +(PID.TID 0000.0001) >> lev_sst.bin << +(PID.TID 0000.0001) interpolate "climsst" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS period is -12. +(PID.TID 0000.0001) Climatological SSS is read from file: +(PID.TID 0000.0001) >> lev_sss.bin << +(PID.TID 0000.0001) interpolate "climsss" (method= 1 ): +(PID.TID 0000.0001) lon0= 2.00000, nlon= 90, lon_inc= 4.0000000 +(PID.TID 0000.0001) lat0= -78.00000, nlat= 40, lat_inc= 4.0000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 85573 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 984 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 922 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 898 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 12155 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 3 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 24310 +(PID.TID 0000.0001) ctrl-wet 8: atmos 24310 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 85573 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2315 2149 2206 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2254 2102 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2215 2058 2104 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2178 2027 2070 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2142 1987 2029 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2114 1959 2004 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2076 1918 1959 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2048 1887 1925 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 1999 1831 1869 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 1948 1771 1808 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 1850 1653 1705 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 1655 1404 1458 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 1372 1118 1164 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 828 623 671 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 6 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 85573 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 27000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 012155 010816 011065 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 017154 015820 016259 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4226580169407E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4226580169407E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.5961865317148E-21 +(PID.TID 0000.0001) %MON fCori_sd = 9.6335367303779E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4112379284621E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4323448157692E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -3.5808620394229E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 9.6285194120965E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4535550371427E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.0239529651320E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.0260497651149E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.6683828681187E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.272205216643040E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.962666600296178E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.450614146649764E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 7.50562806350885E-14 6.28993178193994E+00 + cg2d: Sum(rhs),rhsMax = 1.00336405850499E-13 6.70007859133559E+00 + cg2d: Sum(rhs),rhsMax = 5.93969318174459E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -3.24185123190546E-14 6.85801094466119E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.14243599153802E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 7.72291365607133E+00 + cg2d: Sum(rhs),rhsMax = -7.90478793533111E-14 8.03387068208590E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.11896831221745E+00 + cg2d: Sum(rhs),rhsMax = -3.65929508916452E-13 8.04727754553643E+00 + cg2d: Sum(rhs),rhsMax = -6.36823926924990E-13 7.88895797898159E+00 + cg2d: Sum(rhs),rhsMax = -8.44657677134819E-13 8.31754379147366E+00 + cg2d: Sum(rhs),rhsMax = -7.49622586226906E-13 8.97048397340147E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 9.43480072446720E+00 + cg2d: Sum(rhs),rhsMax = -7.76267938817909E-13 9.69891950271935E+00 + cg2d: Sum(rhs),rhsMax = -5.09814412907872E-13 9.76269586763470E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.63804624662821E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34829007243764E+00 + cg2d: Sum(rhs),rhsMax = -7.78044295657310E-13 9.12167905632681E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075227D+06 +(PID.TID 0000.0001) local fc = 0.798704765435371D+06 +(PID.TID 0000.0001) global fc = 0.798704765435371D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 7.98704765435371E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm + grad-res exact position met: + grad-res 0 204 4 8 1 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 204 6945 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 4 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 4 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.38298311375729E-15 2.53662338005412E+00 + cg2d: Sum(rhs),rhsMax = -1.52872506320456E-16 1.59827080791779E-05 + cg2d: Sum(rhs),rhsMax = 3.31124017094453E-14 5.04305351695054E+00 + cg2d: Sum(rhs),rhsMax = 1.58206781009085E-14 3.64528612288741E-05 + cg2d: Sum(rhs),rhsMax = 7.71292751888808E-14 6.28993178193989E+00 + cg2d: Sum(rhs),rhsMax = 3.81361608958741E-14 5.52728921771468E-05 + cg2d: Sum(rhs),rhsMax = 6.81954492876002E-14 6.70007859133556E+00 + cg2d: Sum(rhs),rhsMax = 5.90950899326259E-14 7.19810779163170E-05 + cg2d: Sum(rhs),rhsMax = 5.61772850460329E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = 6.90489332377808E-14 8.72885553240587E-05 + cg2d: Sum(rhs),rhsMax = 5.95079541199084E-14 6.85801094466120E+00 + cg2d: Sum(rhs),rhsMax = 5.92859095149834E-14 1.01179174705179E-04 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 7.14243599153858E+00 + cg2d: Sum(rhs),rhsMax = 2.52159404467989E-14 1.13158359417225E-04 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-14 7.72291365607167E+00 + cg2d: Sum(rhs),rhsMax = -2.31759056390501E-14 1.22972071427356E-04 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-13 8.03387068208567E+00 + cg2d: Sum(rhs),rhsMax = -6.16035000788884E-14 1.30879659129394E-04 + cg2d: Sum(rhs),rhsMax = -2.31370478331883E-13 8.11896831221679E+00 + cg2d: Sum(rhs),rhsMax = -8.23230372759554E-14 1.37457340491194E-04 + cg2d: Sum(rhs),rhsMax = -3.35731442646647E-13 8.04727754553627E+00 + cg2d: Sum(rhs),rhsMax = -8.23785484271866E-14 1.43276036579811E-04 + cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797898157E+00 + cg2d: Sum(rhs),rhsMax = -4.10504963355152E-14 1.48706237741845E-04 + cg2d: Sum(rhs),rhsMax = -6.32383034826489E-13 8.31754379147368E+00 + cg2d: Sum(rhs),rhsMax = 9.27036225562006E-14 1.53889829731870E-04 + cg2d: Sum(rhs),rhsMax = -8.41993141875719E-13 8.97048397340150E+00 + cg2d: Sum(rhs),rhsMax = 2.06751282760820E-13 1.58802399180280E-04 + cg2d: Sum(rhs),rhsMax = -8.40216785036318E-13 9.43480072446724E+00 + cg2d: Sum(rhs),rhsMax = 3.16274784140091E-13 1.63326808356828E-04 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69891950271938E+00 + cg2d: Sum(rhs),rhsMax = 4.12919698433711E-13 1.67301116629174E-04 + cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586763473E+00 + cg2d: Sum(rhs),rhsMax = 5.22443199812983E-13 1.70539355318431E-04 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-13 9.63804624662820E+00 + cg2d: Sum(rhs),rhsMax = 6.80927536578224E-13 1.72838928523667E-04 + cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007243765E+00 + cg2d: Sum(rhs),rhsMax = 7.70716823694784E-13 1.73989220420214E-04 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.12167905632682E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075229D+06 +(PID.TID 0000.0001) local fc = 0.798704765435374D+06 +(PID.TID 0000.0001) global fc = 0.798704765435374D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 7.48064804545479E-14 6.28993179755847E+00 + cg2d: Sum(rhs),rhsMax = 7.11930514540882E-14 6.70007867191566E+00 + cg2d: Sum(rhs),rhsMax = 8.45989944764369E-14 6.82703183420356E+00 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 6.85801135256227E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-14 7.14243612862601E+00 + cg2d: Sum(rhs),rhsMax = -5.48450174164827E-14 7.72291390863833E+00 + cg2d: Sum(rhs),rhsMax = -9.28146448586631E-14 8.03387107684378E+00 + cg2d: Sum(rhs),rhsMax = -1.65201186064223E-13 8.11896884946558E+00 + cg2d: Sum(rhs),rhsMax = -3.04645197957143E-13 8.04727819405251E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 7.88895822804044E+00 + cg2d: Sum(rhs),rhsMax = -6.07514039074886E-13 8.31754398063161E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 8.97048424515955E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 9.43480108757605E+00 + cg2d: Sum(rhs),rhsMax = -8.50874926072720E-13 9.69891995646251E+00 + cg2d: Sum(rhs),rhsMax = -7.94031507211912E-13 9.76269640022403E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 9.63804683577396E+00 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.34829068812273E+00 + cg2d: Sum(rhs),rhsMax = -8.77520278663724E-13 9.12167932074023E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211521583D+06 + --> objf_test(bi,bj) = 0.444589533963431D+06 +(PID.TID 0000.0001) local fc = 0.798704745485014D+06 +(PID.TID 0000.0001) global fc = 0.798704745485014D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745485014E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 6.00613309087450E-14 6.28993176632106E+00 + cg2d: Sum(rhs),rhsMax = 8.80406858527749E-14 6.70007851075383E+00 + cg2d: Sum(rhs),rhsMax = 1.25233157177718E-13 6.82703139794340E+00 + cg2d: Sum(rhs),rhsMax = 7.14983627858601E-14 6.85801053674242E+00 + cg2d: Sum(rhs),rhsMax = -3.21964677141295E-14 7.14243585444101E+00 + cg2d: Sum(rhs),rhsMax = -1.82076576038526E-14 7.72291340348824E+00 + cg2d: Sum(rhs),rhsMax = -9.14823772291129E-14 8.03387028729991E+00 + cg2d: Sum(rhs),rhsMax = -2.79776202205539E-13 8.11896777493163E+00 + cg2d: Sum(rhs),rhsMax = -5.62216939670179E-13 8.04727689696161E+00 + cg2d: Sum(rhs),rhsMax = -6.46593889541691E-13 7.88895772989870E+00 + cg2d: Sum(rhs),rhsMax = -7.24753590475302E-13 8.31754360230276E+00 + cg2d: Sum(rhs),rhsMax = -6.98108237884298E-13 8.97048370162142E+00 + cg2d: Sum(rhs),rhsMax = -6.76791955811495E-13 9.43480036132565E+00 + cg2d: Sum(rhs),rhsMax = -6.50146603220492E-13 9.69891904893123E+00 + cg2d: Sum(rhs),rhsMax = -5.29354338141275E-13 9.76269533498671E+00 + cg2d: Sum(rhs),rhsMax = -5.71986902286881E-13 9.63804565741004E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.34828945666659E+00 + cg2d: Sum(rhs),rhsMax = -7.99360577730113E-13 9.12167879188761E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115251207159D+06 + --> objf_test(bi,bj) = 0.444589534187041D+06 +(PID.TID 0000.0001) local fc = 0.798704785394200D+06 +(PID.TID 0000.0001) global fc = 0.798704785394200D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785394200E+05 +grad-res ------------------------------- + grad-res 0 1 4 8 1 1 1 1 7.98704765435E+05 7.98704745485E+05 7.98704785394E+05 + grad-res 0 1 1 204 0 1 1 1 -1.99545934416E-02 -1.99545929208E-02 2.60959266418E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -1.99545934415734E-02 +(PID.TID 0000.0001) TLM finite-diff_grad = -1.99545929208398E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 205 6945 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 204 2 + ph-grd -->hit<-- 5 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 5 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.38298311375729E-15 2.53662338005412E+00 + cg2d: Sum(rhs),rhsMax = 2.87964097012150E-16 2.00042303125918E-05 + cg2d: Sum(rhs),rhsMax = 3.31124017094453E-14 5.04305351695054E+00 + cg2d: Sum(rhs),rhsMax = -2.79507320066763E-16 4.42667546430142E-05 + cg2d: Sum(rhs),rhsMax = 7.71292751888808E-14 6.28993178193989E+00 + cg2d: Sum(rhs),rhsMax = -8.61073365387988E-15 6.59111057530669E-05 + cg2d: Sum(rhs),rhsMax = 6.81954492876002E-14 6.70007859133556E+00 + cg2d: Sum(rhs),rhsMax = -2.82881357227538E-14 8.46747253002304E-05 + cg2d: Sum(rhs),rhsMax = 5.61772850460329E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -6.18463613655251E-14 1.01177821337245E-04 + cg2d: Sum(rhs),rhsMax = 5.95079541199084E-14 6.85801094466120E+00 + cg2d: Sum(rhs),rhsMax = -1.08989206548671E-13 1.15650808809629E-04 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 7.14243599153858E+00 + cg2d: Sum(rhs),rhsMax = -1.66693048253563E-13 1.28221623613676E-04 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-14 7.72291365607167E+00 + cg2d: Sum(rhs),rhsMax = -2.25673646436775E-13 1.39095708465301E-04 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-13 8.03387068208567E+00 + cg2d: Sum(rhs),rhsMax = -2.86756729472870E-13 1.48545108611235E-04 + cg2d: Sum(rhs),rhsMax = -2.31370478331883E-13 8.11896831221679E+00 + cg2d: Sum(rhs),rhsMax = -3.54730134155545E-13 1.56853905402881E-04 + cg2d: Sum(rhs),rhsMax = -3.35731442646647E-13 8.04727754553627E+00 + cg2d: Sum(rhs),rhsMax = -4.24354995587350E-13 1.64268018114495E-04 + cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797898157E+00 + cg2d: Sum(rhs),rhsMax = -4.77271000498547E-13 1.70965040024246E-04 + cg2d: Sum(rhs),rhsMax = -6.32383034826489E-13 8.31754379147368E+00 + cg2d: Sum(rhs),rhsMax = -4.81226170023774E-13 1.77050260995352E-04 + cg2d: Sum(rhs),rhsMax = -8.41993141875719E-13 8.97048397340150E+00 + cg2d: Sum(rhs),rhsMax = -3.86010667874359E-13 1.82568450911982E-04 + cg2d: Sum(rhs),rhsMax = -8.40216785036318E-13 9.43480072446724E+00 + cg2d: Sum(rhs),rhsMax = -2.69687050469258E-13 1.87513278600464E-04 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69891950271938E+00 + cg2d: Sum(rhs),rhsMax = -1.72764580419482E-13 1.91824035433445E-04 + cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586763473E+00 + cg2d: Sum(rhs),rhsMax = -9.86155601623295E-14 1.95373746957579E-04 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-13 9.63804624662820E+00 + cg2d: Sum(rhs),rhsMax = 1.94289029309402E-15 1.97962635147647E-04 + cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007243765E+00 + cg2d: Sum(rhs),rhsMax = 1.92262872289461E-13 1.99330826707895E-04 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.12167905632682E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075229D+06 +(PID.TID 0000.0001) local fc = 0.798704765435374D+06 +(PID.TID 0000.0001) global fc = 0.798704765435374D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02088476561235E-13 6.28993181675462E+00 + cg2d: Sum(rhs),rhsMax = 3.48054918219987E-14 6.70007874244309E+00 + cg2d: Sum(rhs),rhsMax = 8.30446822419617E-14 6.82703196787183E+00 + cg2d: Sum(rhs),rhsMax = 7.72715225139109E-14 6.85801152152627E+00 + cg2d: Sum(rhs),rhsMax = -8.61533067109121E-14 7.14243624072727E+00 + cg2d: Sum(rhs),rhsMax = 1.93178806284777E-14 7.72291407005636E+00 + cg2d: Sum(rhs),rhsMax = -1.45661260830821E-13 8.03387126754609E+00 + cg2d: Sum(rhs),rhsMax = -3.73034936274053E-13 8.11896903505140E+00 + cg2d: Sum(rhs),rhsMax = -5.82645043323282E-13 8.04727833837758E+00 + cg2d: Sum(rhs),rhsMax = -6.01296790136985E-13 7.88895833411389E+00 + cg2d: Sum(rhs),rhsMax = -7.16759984698001E-13 8.31754408258666E+00 + cg2d: Sum(rhs),rhsMax = -7.62057084102707E-13 8.97048436798613E+00 + cg2d: Sum(rhs),rhsMax = -9.66338120633736E-13 9.43480122226160E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69892009036024E+00 + cg2d: Sum(rhs),rhsMax = -9.41469124882133E-13 9.76269651944944E+00 + cg2d: Sum(rhs),rhsMax = -9.07718344933528E-13 9.63804692811409E+00 + cg2d: Sum(rhs),rhsMax = -6.99884594723699E-13 9.34829074565910E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.12167941044876E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211845444D+06 + --> objf_test(bi,bj) = 0.444589533972970D+06 +(PID.TID 0000.0001) local fc = 0.798704745818414D+06 +(PID.TID 0000.0001) global fc = 0.798704745818414D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745818414E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.44272568523152E-14 6.28993174712443E+00 + cg2d: Sum(rhs),rhsMax = 1.02307051719208E-13 6.70007844022297E+00 + cg2d: Sum(rhs),rhsMax = 8.57092175010621E-14 6.82703126426732E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-15 6.85801036776147E+00 + cg2d: Sum(rhs),rhsMax = 7.32747196252603E-15 7.14243574233166E+00 + cg2d: Sum(rhs),rhsMax = -5.24025267623074E-14 7.72291324205812E+00 + cg2d: Sum(rhs),rhsMax = -1.68309810533174E-13 8.03387009657824E+00 + cg2d: Sum(rhs),rhsMax = -2.21156426505331E-13 8.11896758931985E+00 + cg2d: Sum(rhs),rhsMax = -6.34159391665889E-13 8.04727675260928E+00 + cg2d: Sum(rhs),rhsMax = -7.96696042471012E-13 7.88895762381980E+00 + cg2d: Sum(rhs),rhsMax = -7.05213665241899E-13 8.31754350033785E+00 + cg2d: Sum(rhs),rhsMax = -8.97060203897126E-13 8.97048357878140E+00 + cg2d: Sum(rhs),rhsMax = -8.84625706021325E-13 9.43480022662309E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.69891891501324E+00 + cg2d: Sum(rhs),rhsMax = -5.84421400162682E-13 9.76269521573886E+00 + cg2d: Sum(rhs),rhsMax = -5.04485342389671E-13 9.63804556504662E+00 + cg2d: Sum(rhs),rhsMax = -9.80548975348938E-13 9.34828939910810E+00 + cg2d: Sum(rhs),rhsMax = -8.56203996590921E-13 9.12167870216742E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250883060D+06 + --> objf_test(bi,bj) = 0.444589534177500D+06 +(PID.TID 0000.0001) local fc = 0.798704785060560D+06 +(PID.TID 0000.0001) global fc = 0.798704785060560D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785060560E+05 +grad-res ------------------------------- + grad-res 0 2 5 8 1 1 1 1 7.98704765435E+05 7.98704745818E+05 7.98704785061E+05 + grad-res 0 2 2 205 0 1 1 1 -1.96210731004E-02 -1.96210729191E-02 9.24158272131E-09 +(PID.TID 0000.0001) TLM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -1.96210731004377E-02 +(PID.TID 0000.0001) TLM finite-diff_grad = -1.96210729191080E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 206 6945 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 205 3 + ph-grd -->hit<-- 6 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 6 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.38298311375729E-15 2.53662338005412E+00 + cg2d: Sum(rhs),rhsMax = -5.52617847315862E-16 2.39372425846711E-05 + cg2d: Sum(rhs),rhsMax = 3.31124017094453E-14 5.04305351695054E+00 + cg2d: Sum(rhs),rhsMax = -1.22892147846887E-14 5.15939979861760E-05 + cg2d: Sum(rhs),rhsMax = 7.71292751888808E-14 6.28993178193989E+00 + cg2d: Sum(rhs),rhsMax = -3.97236497168274E-14 7.56516014827281E-05 + cg2d: Sum(rhs),rhsMax = 6.81954492876002E-14 6.70007859133556E+00 + cg2d: Sum(rhs),rhsMax = -8.36648458846234E-14 9.64539894950632E-05 + cg2d: Sum(rhs),rhsMax = 5.61772850460329E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -1.43626430193500E-13 1.14816024689501E-04 + cg2d: Sum(rhs),rhsMax = 5.95079541199084E-14 6.85801094466120E+00 + cg2d: Sum(rhs),rhsMax = -2.14543660614908E-13 1.31109259475675E-04 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 7.14243599153858E+00 + cg2d: Sum(rhs),rhsMax = -2.90611285036491E-13 1.45598957968405E-04 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-14 7.72291365607167E+00 + cg2d: Sum(rhs),rhsMax = -3.71126740450478E-13 1.58485751454855E-04 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-13 8.03387068208567E+00 + cg2d: Sum(rhs),rhsMax = -4.63226679237039E-13 1.69925419349199E-04 + cg2d: Sum(rhs),rhsMax = -2.31370478331883E-13 8.11896831221679E+00 + cg2d: Sum(rhs),rhsMax = -5.62841440121531E-13 1.80092517869657E-04 + cg2d: Sum(rhs),rhsMax = -3.35731442646647E-13 8.04727754553627E+00 + cg2d: Sum(rhs),rhsMax = -6.59861054685962E-13 1.89186655358802E-04 + cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797898157E+00 + cg2d: Sum(rhs),rhsMax = -7.37632177560954E-13 1.97386918154117E-04 + cg2d: Sum(rhs),rhsMax = -6.32383034826489E-13 8.31754379147368E+00 + cg2d: Sum(rhs),rhsMax = -7.77808373264577E-13 2.04819414506089E-04 + cg2d: Sum(rhs),rhsMax = -8.41993141875719E-13 8.97048397340150E+00 + cg2d: Sum(rhs),rhsMax = -7.52981010876397E-13 2.11558110413598E-04 + cg2d: Sum(rhs),rhsMax = -8.40216785036318E-13 9.43480072446724E+00 + cg2d: Sum(rhs),rhsMax = -6.38308850220426E-13 2.17631293524408E-04 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69891950271938E+00 + cg2d: Sum(rhs),rhsMax = -5.48672218769752E-13 2.23007999726329E-04 + cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586763473E+00 + cg2d: Sum(rhs),rhsMax = -4.87471174537291E-13 2.27568991374378E-04 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-13 9.63804624662820E+00 + cg2d: Sum(rhs),rhsMax = -4.31640834186453E-13 2.31088084250991E-04 + cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007243765E+00 + cg2d: Sum(rhs),rhsMax = -3.11750625314744E-13 2.33247157001862E-04 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.12167905632682E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075229D+06 +(PID.TID 0000.0001) local fc = 0.798704765435374D+06 +(PID.TID 0000.0001) global fc = 0.798704765435374D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 6.04950117777392E-14 6.28993182586126E+00 + cg2d: Sum(rhs),rhsMax = 8.69582184037654E-14 6.70007876102993E+00 + cg2d: Sum(rhs),rhsMax = 1.11133324764978E-13 6.82703198222241E+00 + cg2d: Sum(rhs),rhsMax = 7.44959649523480E-14 6.85801151764922E+00 + cg2d: Sum(rhs),rhsMax = 5.90638649100583E-14 7.14243631937877E+00 + cg2d: Sum(rhs),rhsMax = -8.70414851306123E-14 7.72291415979661E+00 + cg2d: Sum(rhs),rhsMax = -6.12843109593086E-14 8.03387134618398E+00 + cg2d: Sum(rhs),rhsMax = -2.10054196259080E-13 8.11896908159775E+00 + cg2d: Sum(rhs),rhsMax = -4.28990176715160E-13 8.04727834109045E+00 + cg2d: Sum(rhs),rhsMax = -7.31859017832903E-13 7.88895838570755E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754414654848E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 8.97048443536311E+00 + cg2d: Sum(rhs),rhsMax = -9.76996261670138E-13 9.43480128462641E+00 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69892013886075E+00 + cg2d: Sum(rhs),rhsMax = -8.10018718766514E-13 9.76269654665634E+00 + cg2d: Sum(rhs),rhsMax = -8.26005930321116E-13 9.63804692953985E+00 + cg2d: Sum(rhs),rhsMax = -8.49098569233320E-13 9.34829072056646E+00 + cg2d: Sum(rhs),rhsMax = -1.04094510788855E-12 9.12167945479450E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115211794492D+06 + --> objf_test(bi,bj) = 0.444589533985948D+06 +(PID.TID 0000.0001) local fc = 0.798704745780440D+06 +(PID.TID 0000.0001) global fc = 0.798704745780440D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704745780440E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.93903007170849E-14 6.28993173801757E+00 + cg2d: Sum(rhs),rhsMax = 8.95117313604032E-14 6.70007842163627E+00 + cg2d: Sum(rhs),rhsMax = 8.90398865749376E-14 6.82703124991590E+00 + cg2d: Sum(rhs),rhsMax = 6.02851102371460E-14 6.85801037163938E+00 + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-14 7.14243566367446E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 7.72291315230853E+00 + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-14 8.03387001792993E+00 + cg2d: Sum(rhs),rhsMax = -1.61648472385423E-13 8.11896754276095E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-13 8.04727674988268E+00 + cg2d: Sum(rhs),rhsMax = -5.87085935421783E-13 7.88895757221765E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-13 8.31754343636939E+00 + cg2d: Sum(rhs),rhsMax = -7.21200876796502E-13 8.97048351139608E+00 + cg2d: Sum(rhs),rhsMax = -8.54427639751520E-13 9.43480016424842E+00 + cg2d: Sum(rhs),rhsMax = -9.25481913327530E-13 9.69891886650228E+00 + cg2d: Sum(rhs),rhsMax = -8.68638494466722E-13 9.76269518852207E+00 + cg2d: Sum(rhs),rhsMax = -7.26529947314702E-13 9.63804556361237E+00 + cg2d: Sum(rhs),rhsMax = -7.60280727263307E-13 9.34828942419451E+00 + cg2d: Sum(rhs),rhsMax = -9.73443547991337E-13 9.12167865781483E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115250934098D+06 + --> objf_test(bi,bj) = 0.444589534164520D+06 +(PID.TID 0000.0001) local fc = 0.798704785098617D+06 +(PID.TID 0000.0001) global fc = 0.798704785098617D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704785098617E+05 +grad-res ------------------------------- + grad-res 0 3 6 8 1 1 1 1 7.98704765435E+05 7.98704745780E+05 7.98704785099E+05 + grad-res 0 3 3 206 0 1 1 1 -1.96590888574E-02 -1.96590885753E-02 1.43495991756E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -1.96590888573812E-02 +(PID.TID 0000.0001) TLM finite-diff_grad = -1.96590885752812E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 207 6945 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 206 4 + ph-grd -->hit<-- 7 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 7 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.38298311375729E-15 2.53662338005412E+00 + cg2d: Sum(rhs),rhsMax = -7.68916180726720E-16 2.48654595302752E-05 + cg2d: Sum(rhs),rhsMax = 3.31124017094453E-14 5.04305351695054E+00 + cg2d: Sum(rhs),rhsMax = -2.45507553089247E-14 5.34495849821462E-05 + cg2d: Sum(rhs),rhsMax = 7.71292751888808E-14 6.28993178193989E+00 + cg2d: Sum(rhs),rhsMax = -6.94187545988156E-14 7.80471678816466E-05 + cg2d: Sum(rhs),rhsMax = 6.81954492876002E-14 6.70007859133556E+00 + cg2d: Sum(rhs),rhsMax = -1.28001775845377E-13 9.94918004400135E-05 + cg2d: Sum(rhs),rhsMax = 5.61772850460329E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -1.96812184605211E-13 1.18992008367055E-04 + cg2d: Sum(rhs),rhsMax = 5.95079541199084E-14 6.85801094466120E+00 + cg2d: Sum(rhs),rhsMax = -2.73900693792406E-13 1.36846564806146E-04 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 7.14243599153858E+00 + cg2d: Sum(rhs),rhsMax = -3.58549995249646E-13 1.53001872142935E-04 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-14 7.72291365607167E+00 + cg2d: Sum(rhs),rhsMax = -4.58442311890295E-13 1.67375372327618E-04 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-13 8.03387068208567E+00 + cg2d: Sum(rhs),rhsMax = -5.77711489757604E-13 1.79997715422031E-04 + cg2d: Sum(rhs),rhsMax = -2.31370478331883E-13 8.11896831221679E+00 + cg2d: Sum(rhs),rhsMax = -7.08530456527967E-13 1.91057832144923E-04 + cg2d: Sum(rhs),rhsMax = -3.35731442646647E-13 8.04727754553627E+00 + cg2d: Sum(rhs),rhsMax = -8.34679547701001E-13 2.00840710031965E-04 + cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797898157E+00 + cg2d: Sum(rhs),rhsMax = -9.39137656530420E-13 2.09626466326815E-04 + cg2d: Sum(rhs),rhsMax = -6.32383034826489E-13 8.31754379147368E+00 + cg2d: Sum(rhs),rhsMax = -1.00634778288367E-12 2.17629094935684E-04 + cg2d: Sum(rhs),rhsMax = -8.41993141875719E-13 8.97048397340150E+00 + cg2d: Sum(rhs),rhsMax = -1.01646469019556E-12 2.24983842825499E-04 + cg2d: Sum(rhs),rhsMax = -8.40216785036318E-13 9.43480072446724E+00 + cg2d: Sum(rhs),rhsMax = -9.47880662849343E-13 2.31746335118747E-04 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69891950271938E+00 + cg2d: Sum(rhs),rhsMax = -8.36955504901482E-13 2.37877277880037E-04 + cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586763473E+00 + cg2d: Sum(rhs),rhsMax = -7.39658334580895E-13 2.43219685648431E-04 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-13 9.63804624662820E+00 + cg2d: Sum(rhs),rhsMax = -6.52602971662475E-13 2.47494076440268E-04 + cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007243765E+00 + cg2d: Sum(rhs),rhsMax = -5.54070678226992E-13 2.50330943202699E-04 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.12167905632682E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075229D+06 +(PID.TID 0000.0001) local fc = 0.798704765435374D+06 +(PID.TID 0000.0001) global fc = 0.798704765435374D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 1.02076333496903E-13 6.28993181398939E+00 + cg2d: Sum(rhs),rhsMax = 6.70019595361282E-14 6.70007872867703E+00 + cg2d: Sum(rhs),rhsMax = 7.57172102794357E-14 6.82703193243028E+00 + cg2d: Sum(rhs),rhsMax = -2.69784194983913E-14 6.85801145829144E+00 + cg2d: Sum(rhs),rhsMax = -3.66373598126302E-14 7.14243636409905E+00 + cg2d: Sum(rhs),rhsMax = 3.68594044175552E-14 7.72291419625406E+00 + cg2d: Sum(rhs),rhsMax = -8.21565038222616E-14 8.03387136212002E+00 + cg2d: Sum(rhs),rhsMax = -3.12638803734444E-13 8.11896907166435E+00 + cg2d: Sum(rhs),rhsMax = -3.60600438398251E-13 8.04727830754538E+00 + cg2d: Sum(rhs),rhsMax = -4.45865566689463E-13 7.88895841312003E+00 + cg2d: Sum(rhs),rhsMax = -8.29558643999917E-13 8.31754419038288E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-13 8.97048447703629E+00 + cg2d: Sum(rhs),rhsMax = -9.92983473224740E-13 9.43480131832210E+00 + cg2d: Sum(rhs),rhsMax = -8.13571432445315E-13 9.69892015948232E+00 + cg2d: Sum(rhs),rhsMax = -8.59756710269721E-13 9.76269655073361E+00 + cg2d: Sum(rhs),rhsMax = -6.62581101096293E-13 9.63804691567410E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.34829068938253E+00 + cg2d: Sum(rhs),rhsMax = -7.06990022081300E-13 9.12167948400885E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115209789749D+06 + --> objf_test(bi,bj) = 0.444589533996457D+06 +(PID.TID 0000.0001) local fc = 0.798704743786205D+06 +(PID.TID 0000.0001) global fc = 0.798704743786205D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704743786205E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 4.15778522722121E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 2.89681473253367E-14 6.28993174988977E+00 + cg2d: Sum(rhs),rhsMax = 7.01938507319255E-14 6.70007845399099E+00 + cg2d: Sum(rhs),rhsMax = 9.42579347906758E-14 6.82703129971598E+00 + cg2d: Sum(rhs),rhsMax = 2.96429547574917E-14 6.85801043100343E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 7.14243561895288E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-14 7.72291311584920E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-14 8.03387000199137E+00 + cg2d: Sum(rhs),rhsMax = -2.22488694134881E-13 8.11896755269445E+00 + cg2d: Sum(rhs),rhsMax = -6.41264819023490E-13 8.04727678343287E+00 + cg2d: Sum(rhs),rhsMax = -5.80868686483882E-13 7.88895754480134E+00 + cg2d: Sum(rhs),rhsMax = -9.09494701772928E-13 8.31754339253212E+00 + cg2d: Sum(rhs),rhsMax = -8.06466005087714E-13 8.97048346972003E+00 + cg2d: Sum(rhs),rhsMax = -8.63309423948522E-13 9.43480013055025E+00 + cg2d: Sum(rhs),rhsMax = -7.88702436693711E-13 9.69891884587899E+00 + cg2d: Sum(rhs),rhsMax = -7.70938868299709E-13 9.76269518444410E+00 + cg2d: Sum(rhs),rhsMax = -5.64881474929280E-13 9.63804557747897E+00 + cg2d: Sum(rhs),rhsMax = -8.38440428196918E-13 9.34828945538113E+00 + cg2d: Sum(rhs),rhsMax = -9.27258270166931E-13 9.12167862859873E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252938950D+06 + --> objf_test(bi,bj) = 0.444589534154009D+06 +(PID.TID 0000.0001) local fc = 0.798704787092959D+06 +(PID.TID 0000.0001) global fc = 0.798704787092959D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704787092959E+05 +grad-res ------------------------------- + grad-res 0 4 7 8 1 1 1 1 7.98704765435E+05 7.98704743786E+05 7.98704787093E+05 + grad-res 0 4 4 207 0 1 1 1 -2.16533768328E-02 -2.16533768689E-02 -1.66924496448E-09 +(PID.TID 0000.0001) TLM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -2.16533768327812E-02 +(PID.TID 0000.0001) TLM finite-diff_grad = -2.16533768689260E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 208 6945 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 207 5 + ph-grd -->hit<-- 8 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 8 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.38298311375729E-15 2.53662338005412E+00 + cg2d: Sum(rhs),rhsMax = 4.99112470103702E-16 2.16878819856821E-05 + cg2d: Sum(rhs),rhsMax = 3.31124017094453E-14 5.04305351695054E+00 + cg2d: Sum(rhs),rhsMax = -2.92870315130554E-14 4.61737320200926E-05 + cg2d: Sum(rhs),rhsMax = 7.71292751888808E-14 6.28993178193989E+00 + cg2d: Sum(rhs),rhsMax = -6.84402621381475E-14 6.69370050741224E-05 + cg2d: Sum(rhs),rhsMax = 6.81954492876002E-14 6.70007859133556E+00 + cg2d: Sum(rhs),rhsMax = -1.13175311136637E-13 8.59991672941572E-05 + cg2d: Sum(rhs),rhsMax = 5.61772850460329E-14 6.82703161607703E+00 + cg2d: Sum(rhs),rhsMax = -1.69681109440933E-13 1.04652972315553E-04 + cg2d: Sum(rhs),rhsMax = 5.95079541199084E-14 6.85801094466120E+00 + cg2d: Sum(rhs),rhsMax = -2.42581128795383E-13 1.22414452062614E-04 + cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 7.14243599153858E+00 + cg2d: Sum(rhs),rhsMax = -2.46467776743309E-13 1.38520225764455E-04 + cg2d: Sum(rhs),rhsMax = -6.10622663543836E-14 7.72291365607167E+00 + cg2d: Sum(rhs),rhsMax = -3.67865460315642E-13 1.52571720954917E-04 + cg2d: Sum(rhs),rhsMax = -1.39888101102770E-13 8.03387068208567E+00 + cg2d: Sum(rhs),rhsMax = -5.11535258596041E-13 1.64501342637034E-04 + cg2d: Sum(rhs),rhsMax = -2.31370478331883E-13 8.11896831221679E+00 + cg2d: Sum(rhs),rhsMax = -6.72788214028941E-13 1.74486723774908E-04 + cg2d: Sum(rhs),rhsMax = -3.35731442646647E-13 8.04727754553627E+00 + cg2d: Sum(rhs),rhsMax = -8.40938430002325E-13 1.82903452457947E-04 + cg2d: Sum(rhs),rhsMax = -7.89590615113411E-13 7.88895797898157E+00 + cg2d: Sum(rhs),rhsMax = -9.96827620447505E-13 1.90228158775813E-04 + cg2d: Sum(rhs),rhsMax = -6.32383034826489E-13 8.31754379147368E+00 + cg2d: Sum(rhs),rhsMax = -1.12075626557129E-12 1.96900724055660E-04 + cg2d: Sum(rhs),rhsMax = -8.41993141875719E-13 8.97048397340150E+00 + cg2d: Sum(rhs),rhsMax = -1.18863252573931E-12 2.03213649663772E-04 + cg2d: Sum(rhs),rhsMax = -8.40216785036318E-13 9.43480072446724E+00 + cg2d: Sum(rhs),rhsMax = -1.17160448009912E-12 2.09263788593003E-04 + cg2d: Sum(rhs),rhsMax = -7.33635374672303E-13 9.69891950271938E+00 + cg2d: Sum(rhs),rhsMax = -1.03234087944770E-12 2.14956575614733E-04 + cg2d: Sum(rhs),rhsMax = -7.65609797781508E-13 9.76269586763473E+00 + cg2d: Sum(rhs),rhsMax = -8.79463168956818E-13 2.20040688534459E-04 + cg2d: Sum(rhs),rhsMax = -5.86197757002083E-13 9.63804624662820E+00 + cg2d: Sum(rhs),rhsMax = -7.31817384469480E-13 2.24160747113010E-04 + cg2d: Sum(rhs),rhsMax = -8.27782287160517E-13 9.34829007243765E+00 + cg2d: Sum(rhs),rhsMax = -5.74915115514330E-13 2.26923584315097E-04 + cg2d: Sum(rhs),rhsMax = -7.67386154620908E-13 9.12167905632682E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115231360145D+06 + --> objf_test(bi,bj) = 0.444589534075229D+06 +(PID.TID 0000.0001) local fc = 0.798704765435374D+06 +(PID.TID 0000.0001) global fc = 0.798704765435374D+06 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 8.65921917503343E-14 6.28993179690528E+00 + cg2d: Sum(rhs),rhsMax = 1.02751140929058E-13 6.70007866451625E+00 + cg2d: Sum(rhs),rhsMax = 9.19264664389630E-14 6.82703180397228E+00 + cg2d: Sum(rhs),rhsMax = 2.87547763377916E-14 6.85801127814686E+00 + cg2d: Sum(rhs),rhsMax = -5.17363929475323E-14 7.14243630399287E+00 + cg2d: Sum(rhs),rhsMax = -1.01030295240889E-13 7.72291410124891E+00 + cg2d: Sum(rhs),rhsMax = -7.19424519957101E-14 8.03387123854270E+00 + cg2d: Sum(rhs),rhsMax = -2.28705943072782E-13 8.11896893397102E+00 + cg2d: Sum(rhs),rhsMax = -5.08926234488172E-13 8.04727817309255E+00 + cg2d: Sum(rhs),rhsMax = -7.86037901434611E-13 7.88895837325005E+00 + cg2d: Sum(rhs),rhsMax = -7.13207271019201E-13 8.31754416062466E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 8.97048443289322E+00 + cg2d: Sum(rhs),rhsMax = -7.30082660993503E-13 9.43480126000874E+00 + cg2d: Sum(rhs),rhsMax = -7.97584220890712E-13 9.69892008917163E+00 + cg2d: Sum(rhs),rhsMax = -7.79820652496710E-13 9.76269647197326E+00 + cg2d: Sum(rhs),rhsMax = -7.14095449438901E-13 9.63804683242312E+00 + cg2d: Sum(rhs),rhsMax = -6.64357457935694E-13 9.34829060499583E+00 + cg2d: Sum(rhs),rhsMax = -8.45545855554519E-13 9.12167944954854E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115210528326D+06 + --> objf_test(bi,bj) = 0.444589534016192D+06 +(PID.TID 0000.0001) local fc = 0.798704744544518D+06 +(PID.TID 0000.0001) global fc = 0.798704744544518D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.98704744544518E+05 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsst", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sst.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sst.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "climsss", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "lev_sss.bin" +(PID.TID 0000.0001) EXF_INTERP: file="lev_sss.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 12 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_UV: fields "ustress" & "vstress", it= 0 +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_taux.bin" +(PID.TID 0000.0001) EXF_SET_UV: loading rec= 1 from file: "trenberth_tauy.bin" +(PID.TID 0000.0001) EXF_INTERP_UV: fileU="trenberth_taux.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 12 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 12 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) EXF_SET_FLD: field "hflux", it= 0, loading rec= 1 +(PID.TID 0000.0001) EXF_SET_FLD: from file: "ncep_qnet.bin" +(PID.TID 0000.0001) EXF_INTERP: file="ncep_qnet.bin", rec= 1 , x-Per,P.Sym= T T +(PID.TID 0000.0001) S.edge (j=-1,0,1) : proc= 0.0 0.0 0.0, yIn= -86.000000 -82.000000 -78.000000 +(PID.TID 0000.0001) N.edge (j=+0,+1,+2) proc= 0.0 0.0 0.0, yIn= 78.000000 82.000000 86.000000 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.77555756156289E-16 2.53662338005399E+00 + cg2d: Sum(rhs),rhsMax = 3.80251385934116E-14 5.04305351695056E+00 + cg2d: Sum(rhs),rhsMax = 9.68808366863527E-14 6.28993176697426E+00 + cg2d: Sum(rhs),rhsMax = 7.61335439136701E-14 6.70007851815651E+00 + cg2d: Sum(rhs),rhsMax = 4.45199432874688E-14 6.82703142817575E+00 + cg2d: Sum(rhs),rhsMax = 7.64943663966733E-14 6.85801061115647E+00 + cg2d: Sum(rhs),rhsMax = 3.53050921830800E-14 7.14243567906217E+00 + cg2d: Sum(rhs),rhsMax = 4.52970994047064E-14 7.72291321085959E+00 + cg2d: Sum(rhs),rhsMax = -1.55875312657372E-13 8.03387012557786E+00 + cg2d: Sum(rhs),rhsMax = -3.29958282918597E-13 8.11896769039888E+00 + cg2d: Sum(rhs),rhsMax = -5.59552404411079E-13 8.04727691789459E+00 + cg2d: Sum(rhs),rhsMax = -9.02389274415327E-13 7.88895758467024E+00 + cg2d: Sum(rhs),rhsMax = -7.54063478325406E-13 8.31754342229045E+00 + cg2d: Sum(rhs),rhsMax = -9.71667191151937E-13 8.97048351386325E+00 + cg2d: Sum(rhs),rhsMax = -7.51398943066306E-13 9.43480018886410E+00 + cg2d: Sum(rhs),rhsMax = -8.98836560736527E-13 9.69891891619086E+00 + cg2d: Sum(rhs),rhsMax = -7.81597009336110E-13 9.76269526320693E+00 + cg2d: Sum(rhs),rhsMax = -8.18900502963515E-13 9.63804566073391E+00 + cg2d: Sum(rhs),rhsMax = -8.81072992342524E-13 9.34828953977368E+00 + cg2d: Sum(rhs),rhsMax = -9.05941988094128E-13 9.12167866305935E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.354115252200768D+06 + --> objf_test(bi,bj) = 0.444589534134272D+06 +(PID.TID 0000.0001) local fc = 0.798704786335040D+06 +(PID.TID 0000.0001) global fc = 0.798704786335040D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.98704786335040E+05 +grad-res ------------------------------- + grad-res 0 5 8 8 1 1 1 1 7.98704765435E+05 7.98704744545E+05 7.98704786335E+05 + grad-res 0 5 5 208 0 1 1 1 -2.08952615873E-02 -2.08952609100E-02 3.24125851714E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 7.98704765435371E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -2.08952615873074E-02 +(PID.TID 0000.0001) TLM finite-diff_grad = -2.08952609100379E-02 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 4 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 1 7.9870476543537E+05 7.9870474548501E+05 7.9870478539420E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -1.9954592920840E-02 -1.9954593441573E-02 2.6095926641823E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 5 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 2 7.9870476543537E+05 7.9870474581841E+05 7.9870478506056E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -1.9621072919108E-02 -1.9621073100438E-02 9.2415827213088E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 6 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 3 7.9870476543537E+05 7.9870474578044E+05 7.9870478509862E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -1.9659088575281E-02 -1.9659088857381E-02 1.4349599175567E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 7 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 4 7.9870476543537E+05 7.9870474378621E+05 7.9870478709296E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -2.1653376868926E-02 -2.1653376832781E-02 -1.6692449644751E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 8 8 1 1 1 0.000000000E+00 -1.000000000E+00 +(PID.TID 0000.0001) grdchk output (c): 5 7.9870476543537E+05 7.9870474454452E+05 7.9870478633504E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -2.0895260910038E-02 -2.0895261587307E-02 3.2412585171393E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.0127977003335E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 58.359311077743769 +(PID.TID 0000.0001) System time: 7.8518003574572504E-002 +(PID.TID 0000.0001) Wall clock time: 58.627814054489136 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.8110003359615803E-002 +(PID.TID 0000.0001) System time: 6.9489998277276754E-003 +(PID.TID 0000.0001) Wall clock time: 6.5729141235351562E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.2953996658325195E-002 +(PID.TID 0000.0001) System time: 1.0059997439384460E-003 +(PID.TID 0000.0001) Wall clock time: 1.4050006866455078E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.3097003102302551E-002 +(PID.TID 0000.0001) System time: 2.4000182747840881E-005 +(PID.TID 0000.0001) Wall clock time: 1.3180971145629883E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 58.275111265480518 +(PID.TID 0000.0001) System time: 7.0530003868043423E-002 +(PID.TID 0000.0001) Wall clock time: 58.534817934036255 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.54188701510429382 +(PID.TID 0000.0001) System time: 4.2241006158292294E-002 +(PID.TID 0000.0001) Wall clock time: 0.60801720619201660 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 57.720270857214928 +(PID.TID 0000.0001) System time: 2.4911999702453613E-002 +(PID.TID 0000.0001) Wall clock time: 57.900484800338745 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 57.691718004643917 +(PID.TID 0000.0001) System time: 2.1823998540639877E-002 +(PID.TID 0000.0001) Wall clock time: 57.868557453155518 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 57.688033208250999 +(PID.TID 0000.0001) System time: 2.1810001693665981E-002 +(PID.TID 0000.0001) Wall clock time: 57.864872694015503 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.80711691826581955 +(PID.TID 0000.0001) System time: 8.0089978873729706E-003 +(PID.TID 0000.0001) Wall clock time: 0.81827068328857422 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 0.62549459934234619 +(PID.TID 0000.0001) System time: 4.1779987514019012E-003 +(PID.TID 0000.0001) Wall clock time: 0.63217210769653320 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.8364042043685913E-003 +(PID.TID 0000.0001) System time: 5.9977173805236816E-006 +(PID.TID 0000.0001) Wall clock time: 1.8608570098876953E-003 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.33241419494152069 +(PID.TID 0000.0001) System time: 9.6200779080390930E-004 +(PID.TID 0000.0001) Wall clock time: 0.33448410034179688 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1405589580535889E-002 +(PID.TID 0000.0001) System time: 4.9993395805358887E-006 +(PID.TID 0000.0001) Wall clock time: 7.1658372879028320E-002 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.9773600995540619 +(PID.TID 0000.0001) System time: 2.9679983854293823E-003 +(PID.TID 0000.0001) Wall clock time: 10.009129047393799 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 17.620307728648186 +(PID.TID 0000.0001) System time: 2.9500005766749382E-003 +(PID.TID 0000.0001) Wall clock time: 17.671638250350952 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 22.594287261366844 +(PID.TID 0000.0001) System time: 4.7020018100738525E-003 +(PID.TID 0000.0001) Wall clock time: 22.657948732376099 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.4017412960529327 +(PID.TID 0000.0001) System time: 9.8599493503570557E-004 +(PID.TID 0000.0001) Wall clock time: 3.4110116958618164 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.65241667628288269 +(PID.TID 0000.0001) System time: 1.0109972208738327E-003 +(PID.TID 0000.0001) Wall clock time: 0.65521192550659180 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.79914158582687378 +(PID.TID 0000.0001) System time: 1.9986182451248169E-006 +(PID.TID 0000.0001) Wall clock time: 0.80119490623474121 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9002258777618408E-003 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 1.8579959869384766E-003 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.42013421654701233 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 0.42175412178039551 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9018650054931641E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.8711090087890625E-003 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.97270634770393372 +(PID.TID 0000.0001) System time: 1.0021030902862549E-006 +(PID.TID 0000.0001) Wall clock time: 0.97530174255371094 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9488930702209473E-003 +(PID.TID 0000.0001) System time: 6.0014426708221436E-006 +(PID.TID 0000.0001) Wall clock time: 1.9850730895996094E-003 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.1278858184814453E-003 +(PID.TID 0000.0001) System time: 2.8997659683227539E-005 +(PID.TID 0000.0001) Wall clock time: 2.1443367004394531E-003 +(PID.TID 0000.0001) No. starts: 320 +(PID.TID 0000.0001) No. stops: 320 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 8.3279609680175781E-004 +(PID.TID 0000.0001) System time: 8.3997845649719238E-005 +(PID.TID 0000.0001) Wall clock time: 9.1791152954101562E-004 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 67108 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 67108 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/halfpipe_streamice/build/genmake_local b/verification/halfpipe_streamice/build/genmake_local index f82748df22..c8abac2fee 100644 --- a/verification/halfpipe_streamice/build/genmake_local +++ b/verification/halfpipe_streamice/build/genmake_local @@ -2,6 +2,8 @@ # This is the local options file for the "new" version of genmake +#- switch to F90 compiler (needed for some MITgcm src code, e.g., pkg/streamice): ALWAYS_USE_F90=1 -AD_OPTFILE='../../../tools/adjoint_options/adjoint_f95' +#- specify which Fortran version src code is sent to TAF +TAF_FORTRAN_VERS='F95' diff --git a/verification/halfpipe_streamice/code/SIZE.h b/verification/halfpipe_streamice/code/SIZE.h index f64c95fc31..b2d65735de 100644 --- a/verification/halfpipe_streamice/code/SIZE.h +++ b/verification/halfpipe_streamice/code/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/halfpipe_streamice/code/SIZE.h_mpi b/verification/halfpipe_streamice/code/SIZE.h_mpi index bd429e6234..c0c945fdb2 100644 --- a/verification/halfpipe_streamice/code/SIZE.h_mpi +++ b/verification/halfpipe_streamice/code/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/halfpipe_streamice/code_ad/AUTODIFF_OPTIONS.h b/verification/halfpipe_streamice/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..40ee010b2a --- /dev/null +++ b/verification/halfpipe_streamice/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_ad/COST_OPTIONS.h b/verification/halfpipe_streamice/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..05e9db3b40 --- /dev/null +++ b/verification/halfpipe_streamice/code_ad/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_ad/CTRL_OPTIONS.h b/verification/halfpipe_streamice/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..ca82a962bf --- /dev/null +++ b/verification/halfpipe_streamice/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_ad/ECCO_CPPOPTIONS.h b/verification/halfpipe_streamice/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 5516456cc1..0000000000 --- a/verification/halfpipe_streamice/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C -C CPP flags controlling which code is included in the files that -C will be compiled. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> Extract adjoint state -#undef ALLOW_AUTODIFF_MONITOR - -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#define ALLOW_COST_TEST - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#undef EXCLUDE_CTRL_PACK -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO - -C >>> Initial values. -#define ALLOW_GENARR2D_CONTROL -#define ALLOW_GENTIM2D_CONTROL - -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_ad/SIZE.h b/verification/halfpipe_streamice/code_ad/SIZE.h index f64c95fc31..b2d65735de 100644 --- a/verification/halfpipe_streamice/code_ad/SIZE.h +++ b/verification/halfpipe_streamice/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/halfpipe_streamice/code_ad/SIZE.h_mpi b/verification/halfpipe_streamice/code_ad/SIZE.h_mpi index bd429e6234..c0c945fdb2 100644 --- a/verification/halfpipe_streamice/code_ad/SIZE.h_mpi +++ b/verification/halfpipe_streamice/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/halfpipe_streamice/code_ad/cost_test.F b/verification/halfpipe_streamice/code_ad/cost_test.F index 50707fd078..e9cc0bb76b 100644 --- a/verification/halfpipe_streamice/code_ad/cost_test.F +++ b/verification/halfpipe_streamice/code_ad/cost_test.F @@ -1,15 +1,16 @@ -#include "STREAMICE_OPTIONS.h" +#include "COST_OPTIONS.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif subroutine cost_test( myThid ) -C /==========================================================\ +C *==========================================================* C | subroutine cost_test | C | o this routine computes the cost function for the tiles | C | of this processor | -C |==========================================================| -C | | +C *==========================================================* C | Notes | -C | ===== | -C \==========================================================/ +C *==========================================================* IMPLICIT NONE C == Global variables === @@ -18,13 +19,10 @@ subroutine cost_test( myThid ) #include "PARAMS.h" #include "DYNVARS.h" #include "GRID.h" +#include "cost.h" #ifdef ALLOW_STREAMICE # include "STREAMICE.h" #endif -#ifdef ALLOW_COST -#include "cost.h" -#endif - C == Routine arguments == C myThid - Thread number for this instance of the routine. @@ -33,65 +31,52 @@ subroutine cost_test( myThid ) #ifdef ALLOW_COST_TEST C == Local variables - _RL thetaRef, HAF - - integer i, j, k - integer ig, jg - integer itlo,ithi - integer jtlo,jthi - _RL i_numcells, dCdx, dCdy, dBdx, dBdy, dTdx, dTdy - _RL utmp, vtmp, uotmp, votmp, cotmp + integer i, j +c _RL i_numcells INTEGER ILNBLNK EXTERNAL ILNBLNK - CHARACTER*(MAX_LEN_FNAM) STREAMICExvelOptimFile - CHARACTER*(MAX_LEN_FNAM) STREAMICEyvelOptimFile - _RL U_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL V_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) +c CHARACTER*(MAX_LEN_FNAM) STREAMICExvelOptimFile +c CHARACTER*(MAX_LEN_FNAM) STREAMICEyvelOptimFile +c _RL U_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +c _RL V_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - i_numcells = 1.0/(Nx*Ny) +c i_numcells = 1.0/(Nx*Ny) -! STREAMICExvelOptimFile= -! & STREAMICEvelOptimFile(1: -! & ILNBLNK(STREAMICEvelOptimFile))//"u.bin" -! STREAMICEyvelOptimFile= -! & STREAMICEvelOptimFile(1: -! & ILNBLNK(STREAMICEvelOptimFile))//"v.bin" +c STREAMICExvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"u.bin" +c STREAMICEyvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"v.bin" -! _BARRIER +c _BARRIER -! CALL READ_FLD_XY_RS( STREAMICExvelOptimFile, ' ', -! & U_obs, 0, myThid ) -! CALL READ_FLD_XY_RS( STREAMICEyvelOptimFile, ' ', -! & V_obs, 0, myThid ) +c CALL READ_FLD_XY_RS( STREAMICExvelOptimFile, ' ', +c & U_obs, 0, myThid ) +c CALL READ_FLD_XY_RS( STREAMICEyvelOptimFile, ' ', +c & V_obs, 0, myThid ) C-- Calculate mask for tracer cells (0 => land, 1 => water) -! k=1 +c k=1 C-- Calculate cost function on tile of this instance - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid),myByHi(myThid) + do bi = myBxLo(myThid),myBxHi(myThid) do j=1,sNy do i=1,sNx - if (streamice_hmask(i,j,bi,bj).eq.1.0) then objf_test (bi,bj) = objf_test (bi,bj) + & u_streamice(i,j,bi,bj)**2+v_streamice(i,j,bi,bj)**2+ & h_streamice(i,j,bi,bj)**2 endif + enddo + enddo + enddo + enddo - end do - end do - end do - end do - -#endif +#endif /* ALLOW_COST_TEST */ RETURN END diff --git a/verification/halfpipe_streamice/code_ad/ctrl_map_gentim2d.F b/verification/halfpipe_streamice/code_ad/ctrl_map_gentim2d.F deleted file mode 100644 index 4cccc76f0f..0000000000 --- a/verification/halfpipe_streamice/code_ad/ctrl_map_gentim2d.F +++ /dev/null @@ -1,192 +0,0 @@ -#include "CTRL_OPTIONS.h" -#include "STREAMICE_OPTIONS.h" - -CBOP -C !ROUTINE: CTRL_MAP_GENTIM2D -C !INTERFACE: - SUBROUTINE CTRL_MAP_GENTIM2D( - I myTime, myIter, myThid ) -C !DESCRIPTION: \bv -C *=============================================================* -C | S/R CTRL_MAP_GENTIM2D -C *=============================================================* - -C !USES: - IMPLICIT NONE - -C === Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "FFIELDS.h" -#include "DYNVARS.h" -#include "GRID.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" -#include "optim.h" -#ifdef ALLOW_AUTODIFF -#include "AUTODIFF_MYFIELDS.h" -#endif -#ifdef ALLOW_STREAMICE -#include "STREAMICE.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === -C myIter :: iteration counter for this thread -C myTime :: time counter for this thread -C myThid :: thread number for this instance of the routine. - _RL myTime - INTEGER myIter - INTEGER myThid - -C !LOCAL VARIABLES: -C == Local variables == - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical equal - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - - _RL fac - _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL genweight(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - -c == external == - integer ilnblnk - external ilnblnk -CEOP - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - -#ifdef ALLOW_GENTIM2D_CONTROL -C-- An example of connecting specific fields -C-- to generic time-varying 2D control arrays -cph--->>> -cph--->>> COMPILE FAILURE IS DELIBERATE -cph--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- -cph--->>> -C-- generic - user-defined control vars - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - bdot_streamice(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - - DO iarr = 1, maxCtrlTim2D - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d_loc(I,J,bi,bj) = 0. _d 0 -! bdot_streamice(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO -C -! CALL CTRL_GET_GEN ( -! I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), -! I xx_gentim2d_startdate(1,iarr), -! I xx_gentim2d_period(iarr), -! I maskC, -! O xx_gentim2d_loc, -! I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d_dummy(iarr), -! I zeroRL, zeroRL, -! I mytime, myiter, mythid ) - -! CALL CTRL_GET_GEN ( -! I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), -! I xx_gentim2d_startdate(1,iarr), -! I xx_gentim2d_period(iarr), -! I maskC, -! O xx_gentim2d_loc, -! I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d_dummy(iarr), -! I zeroRL, zeroRL, genweight, -! I mytime, myiter, mythid ) - - fnamebase = xx_gentim2d_file(iarr) - CALL CTRL_GET_GEN ( - I xx_gentim2d_file(iarr), - I xx_gentim2d_startdate(1,iarr), - I xx_gentim2d_period(iarr), - I maskC, - O xx_gentim2d_loc, - I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), - I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), - I xx_gentim2d_dummy(iarr), - I zeroRL, zeroRL, - I wgentim2d(1-Olx,1-Oly,1,1,iarr), - I mytime, myiter, mythid ) - - - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sNy - do i = 1,sNx - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) - enddo - enddo - enddo - enddo - - -C - - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1,sNy - DO I = 1,sNx - if ( iarr .eq. 1 ) then - - - bdot_streamice(i,j,bi,bj) = - & bdot_streamice(i,j,bi,bj)+ - & xx_gentim2d(i,j,bi,bj,iarr) - - endif - enddo - enddo - enddo - enddo -c-- -! CALL EXCH_XY_RL -! & (streamice_v_shear_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_u_shear_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_v_normal_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_u_normal_pert, myThid) - - _EXCH_XY_RL(bdot_streamice, mythid ) -c-- - ENDDO ! iarr - - -#endif /* ALLOW_GENTIM2D_CONTROL */ - - RETURN - END diff --git a/verification/halfpipe_streamice/code_ad/ctrl_map_ini_genarr.F b/verification/halfpipe_streamice/code_ad/ctrl_map_ini_genarr.F deleted file mode 100644 index 92c9ec721d..0000000000 --- a/verification/halfpipe_streamice/code_ad/ctrl_map_ini_genarr.F +++ /dev/null @@ -1,181 +0,0 @@ -#include "CTRL_OPTIONS.h" -#include "STREAMICE_OPTIONS.h" - -CBOP -C !ROUTINE: CTRL_MAP_INI_GENARR -C !INTERFACE: - SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_INI_GENARR -C | Add the generic arrays of the -C | control vector to the model state and update the tile halos. -C | The control vector is defined in the header file "ctrl.h". -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" -#include "optim.h" -#ifdef ALLOW_PTRACERS -# include "PTRACERS_SIZE.h" -c#include "PTRACERS_PARAMS.h" -# include "PTRACERS_FIELDS.h" -#endif -#ifdef ALLOW_STREAMICE -# include "STREAMICE.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - INTEGER myThid - -C !FUNCTIONS: - INTEGER ILNBLNk - EXTERNAL ILNBLNK - -C !LOCAL VARIABLES: -C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf - _RL fac -CEOP - - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. - fac = 1. _d 0 - -#ifdef ALLOW_GENARR2D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 2D control arrays - -C-- generic - user-defined control vars - DO iarr = 1, maxCtrlArr2D - - fnamebase = xx_genarr2d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr2d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - - if ( iarr .eq. 2 ) then - H_streamice(i,j,bi,bj) = - & H_streamice(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) -#ifdef ALLOW_OPENAD -cph & + xx_genarr2d(i,j,bi,bj,iarr) -#endif - - elseif (iarr.eq.1) then - B_glen(i,j,bi,bj) = - & B_glen(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) -#ifdef ALLOW_OPENAD -cph & + xx_genarr2d(i,j,bi,bj,iarr) -#endif - -! elseif (iarr.eq.5) then -! BDOT_streamice(i,j,bi,bj) = -! & BDOT_streamice(i,j,bi,bj) -! & + tmpfld2d(i,j,bi,bj) - - endif - - enddo - enddo - ENDDO - ENDDO -C-- end iarr loop - ENDDO - - _EXCH_XY_RL( H_streamice, myThid ) - _EXCH_XY_RL( R_low_si, myThid ) - _EXCH_XY_RL( C_basal_friction, myThid ) - -#endif /* ALLOW_GENARR2D_CONTROL */ - -#ifdef ALLOW_GENARR3D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 3D control arrays ---->>> ---->>> COMPILE FAILURE IS DELIBERATE ---->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- ---->>> -C-- generic - user-defined control vars - DO iarr = 1, maxCtrlArr3D - - fnamebase = xx_genarr3d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr3d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then - theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) - & + fac*tmpfld3d(i,j,k,bi,bj) - elseif ( iarr .eq. 2 ) then - salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) - & + fac*tmpfld3d(i,j,k,bi,bj) - elseif ( iarr .eq. 3 ) then -#ifdef ALLOW_DIFFKR_CONTROL - diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) - & + tmpfld3d(i,j,k,bi,bj) -#endif - endif - enddo - enddo - enddo - ENDDO - ENDDO -C-- end iarr loop - ENDDO - _EXCH_XYZ_RL( theta, myThid ) - _EXCH_XYZ_RL( salt, myThid ) -#ifdef ALLOW_DIFFKR_CONTROL - _EXCH_XYZ_RL( diffkr, myThid ) -#endif - -#endif /* ALLOW_GENARR3D_CONTROL */ - - RETURN - END diff --git a/verification/halfpipe_streamice/code_ad/ctrl_map_ini_gentim2d.F b/verification/halfpipe_streamice/code_ad/ctrl_map_ini_gentim2d.F deleted file mode 100644 index cb13b9a7f1..0000000000 --- a/verification/halfpipe_streamice/code_ad/ctrl_map_ini_gentim2d.F +++ /dev/null @@ -1,196 +0,0 @@ -#include "CTRL_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: CTRL_MAP_INI_GENTIM2D -C !INTERFACE: - SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) - -C !DESCRIPTION: \bv -C *================================================================= -C | SUBROUTINE CTRL_MAP_INI_GENTIM2D -C | Dimensionalize and preprocess time variable controls. -C *================================================================= -C \ev - -C !USES: - IMPLICIT NONE - -C == global variables == -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "GRID.h" -#include "DYNVARS.h" -#include "FFIELDS.h" -#include "CTRL_SIZE.h" -#include "ctrl.h" -#include "optim.h" -#include "ctrl_dummy.h" -#include "CTRL_GENARR.h" -#ifdef ALLOW_PTRACERS -# include "PTRACERS_SIZE.h" -# include "PTRACERS_FIELDS.h" -#endif -#ifdef ALLOW_AUTODIFF -#include "tamc.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -C == routine arguments == - INTEGER myThid - -#ifdef ALLOW_GENTIM2D_CONTROL -C !LOCAL VARIABLES: -C == local variables == - integer iarr - integer smoothOpNb - character*(80) fnamegenIn - character*(80) fnamegenOut - character*(80) fnamebase - character*(80) fnamegeneric - integer startrec - integer endrec - integer diffrec - integer irec, jrec, krec - integer replicated_nrec - integer replicated_ntimes - logical doglobalread - logical ladinit - _RL xx_gen(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - integer bi,bj - integer i,j,k2 - INTEGER ILNBLNK - EXTERNAL ILNBLNK - integer ilgen -CEOP - -c-- Now, read the control vector. - doglobalread = .false. - ladinit = .false. - -C-- generic 2D control variables - DO iarr = 1, maxCtrlTim2D - - diffrec=0 - startrec=0 - endrec=0 - -cph if (xx_gentim2d_weight(iarr).NE.' ') then - - fnamebase = xx_gentim2d_file(iarr) - call ctrl_init_rec ( fnamebase, - I xx_gentim2d_startdate1(iarr), - I xx_gentim2d_startdate2(iarr), - I xx_gentim2d_period(iarr), - I 1, - O xx_gentim2d_startdate(1,iarr), - O diffrec, startrec, endrec, - I myThid ) - - fnamebase = xx_gentim2d_file(iarr) - ilgen=ilnblnk( fnamebase ) - write(fnamegenIn(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.',optimcycle - write(fnamegenOut(1:80),'(2a,i10.10)') - & fnamebase(1:ilgen),'.effective.',optimcycle - - smoothOpNb=1 - do k2 = 1, maxCtrlProc - if (xx_gentim2d_preproc(k2,iarr).EQ.'smooth') then - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) - & smoothOpNb=xx_gentim2d_preproc_i(k2,iarr) - endif - enddo - - replicated_nrec=endrec - replicated_ntimes=0 - do k2 = 1, maxCtrlProc - if (xx_gentim2d_preproc(k2,iarr).EQ.'replicate') then - if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then - replicated_nrec=min(endrec,xx_gentim2d_preproc_i(k2,iarr)) - replicated_ntimes= - & int(float(endrec)/float(replicated_nrec)) - if (replicated_ntimes*replicated_nrec.LT.endrec) - & replicated_ntimes=replicated_ntimes+1 - if (replicated_ntimes*replicated_nrec.GT.endrec) - & replicated_ntimes=replicated_ntimes-1 - endif - endif - enddo - - DO irec = 1, replicated_nrec -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte -#endif - - call active_read_xy( fnamegenIn, xx_gen, irec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) - - do k2 = 1, maxCtrlProc - if (xx_gentim2d_preproc(k2,iarr).EQ.'variaweight') - & call mdsreadfield( xx_gentim2d_weight(iarr), ctrlprec, 'RL', - & 1, wgentim2d(1-Olx,1-Oly,1,1,iarr), irec, myThid ) - enddo - -#ifdef ALLOW_SMOOTH - IF ( ctrlSmoothCorrel2D ) THEN - IF ( useSMOOTH ) THEN - call smooth_correl2D(xx_gen,maskC,smoothOpNb,mythid) - - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - DO j = 1,sNy - DO i = 1,sNx - if ((maskC(i,j,1,bi,bj).NE.0.).AND. - & (wgentim2d(i,j,bi,bj,iarr).GT.0.)) then - xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) - & /sqrt(wgentim2d(i,j,bi,bj,iarr)) - else - xx_gen(i,j,bi,bj)=0. _d 0 - endif - ENDDO - ENDDO - ENDDO - ENDDO - - CALL EXCH_XY_RL ( xx_gen , myThid ) - ENDIF - ENDIF -#endif /* ALLOW_SMOOTH */ - - call active_write_xy( fnamegenOut, xx_gen, irec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) - -c-- end irec loop - ENDDO - - DO jrec = 1, replicated_ntimes - DO irec = 1, replicated_nrec -#ifdef ALLOW_AUTODIFF -CADJ STORE xx_gentim2d_dummy = ctrltape, key = 1 , kind = isbyte -#endif - krec=replicated_nrec*(jrec-1)+irec - IF (krec.LE.endrec) THEN - call active_read_xy( fnamegenOut, xx_gen, irec, - & doglobalread, ladinit, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) - call active_write_xy( fnamegenOut, xx_gen, krec, optimcycle, - & mythid, xx_gentim2d_dummy(iarr) ) - ENDIF - ENDDO - ENDDO - -cph endif - -c-- end iarr loop - ENDDO - -#endif /* ALLOW_GENTIM2D_CONTROL */ - - RETURN - END - diff --git a/verification/halfpipe_streamice/code_ad/tamc.h b/verification/halfpipe_streamice/code_ad/tamc.h index 5417b9de2f..b9c60513e0 100644 --- a/verification/halfpipe_streamice/code_ad/tamc.h +++ b/verification/halfpipe_streamice/code_ad/tamc.h @@ -1,129 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 1 ) - integer nchklev_2 - parameter( nchklev_2 = 50 ) - integer nchklev_3 - parameter( nchklev_3 = 50 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 50 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 50 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 3 ) + PARAMETER( maxpass = 3 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 3 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/halfpipe_streamice/code_oad/AUTODIFF_OPTIONS.h b/verification/halfpipe_streamice/code_oad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..bf4b66e349 --- /dev/null +++ b/verification/halfpipe_streamice/code_oad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_oad/COST_OPTIONS.h b/verification/halfpipe_streamice/code_oad/COST_OPTIONS.h new file mode 100644 index 0000000000..05e9db3b40 --- /dev/null +++ b/verification/halfpipe_streamice/code_oad/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_oad/CTRL_OPTIONS.h b/verification/halfpipe_streamice/code_oad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..ca82a962bf --- /dev/null +++ b/verification/halfpipe_streamice/code_oad/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_oad/CTRL_SIZE.h b/verification/halfpipe_streamice/code_oad/CTRL_SIZE.h index 2d9b2500ed..144c4ab9e7 100644 --- a/verification/halfpipe_streamice/code_oad/CTRL_SIZE.h +++ b/verification/halfpipe_streamice/code_oad/CTRL_SIZE.h @@ -2,6 +2,8 @@ c ================================================================== c CTRL_SIZE.h c ================================================================== +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + C Generic control variable array dimension C ---------------------------------------- C @@ -22,6 +24,8 @@ C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlProc parameter ( maxCtrlProc = 1 ) +#endif + CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/verification/halfpipe_streamice/code_oad/ECCO_CPPOPTIONS.h b/verification/halfpipe_streamice/code_oad/ECCO_CPPOPTIONS.h deleted file mode 100644 index d814eafbe7..0000000000 --- a/verification/halfpipe_streamice/code_oad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C -C CPP flags controlling which code is included in the files that -C will be compiled. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). - -#undef ALLOW_AUTODIFF_TAMC -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> Extract adjoint state -#undef ALLOW_AUTODIFF_MONITOR - -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#define ALLOW_COST_TEST - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#undef EXCLUDE_CTRL_PACK -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO - -C >>> Initial values. -#define ALLOW_GENARR2D_CONTROL -#define ALLOW_GENTIM2D_CONTROL - -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_oad/SIZE.h b/verification/halfpipe_streamice/code_oad/SIZE.h index f64c95fc31..b2d65735de 100644 --- a/verification/halfpipe_streamice/code_oad/SIZE.h +++ b/verification/halfpipe_streamice/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/halfpipe_streamice/code_oad/cb2mFiles b/verification/halfpipe_streamice/code_oad/cb2mFiles index 6f82b2454f..20469fd912 100644 --- a/verification/halfpipe_streamice/code_oad/cb2mFiles +++ b/verification/halfpipe_streamice/code_oad/cb2mFiles @@ -12,7 +12,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DIAGNOSTICS_SIZE DIAGNOSTICS DIAGSTATS_REGIONS @@ -26,7 +25,7 @@ FFIELDS g_cost GLOBAL_MAX GLOBAL_SUM -grdchk +GRDCHK GRID MPI_INFO optim @@ -41,5 +40,3 @@ STREAMICE_BDRY STREAMICE_CG SURFACE AUTODIFF_PARAMS -tamc_keys -tamc diff --git a/verification/halfpipe_streamice/code_oad/cost_test.F b/verification/halfpipe_streamice/code_oad/cost_test.F index 50707fd078..e9cc0bb76b 100644 --- a/verification/halfpipe_streamice/code_oad/cost_test.F +++ b/verification/halfpipe_streamice/code_oad/cost_test.F @@ -1,15 +1,16 @@ -#include "STREAMICE_OPTIONS.h" +#include "COST_OPTIONS.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif subroutine cost_test( myThid ) -C /==========================================================\ +C *==========================================================* C | subroutine cost_test | C | o this routine computes the cost function for the tiles | C | of this processor | -C |==========================================================| -C | | +C *==========================================================* C | Notes | -C | ===== | -C \==========================================================/ +C *==========================================================* IMPLICIT NONE C == Global variables === @@ -18,13 +19,10 @@ subroutine cost_test( myThid ) #include "PARAMS.h" #include "DYNVARS.h" #include "GRID.h" +#include "cost.h" #ifdef ALLOW_STREAMICE # include "STREAMICE.h" #endif -#ifdef ALLOW_COST -#include "cost.h" -#endif - C == Routine arguments == C myThid - Thread number for this instance of the routine. @@ -33,65 +31,52 @@ subroutine cost_test( myThid ) #ifdef ALLOW_COST_TEST C == Local variables - _RL thetaRef, HAF - - integer i, j, k - integer ig, jg - integer itlo,ithi - integer jtlo,jthi - _RL i_numcells, dCdx, dCdy, dBdx, dBdy, dTdx, dTdy - _RL utmp, vtmp, uotmp, votmp, cotmp + integer i, j +c _RL i_numcells INTEGER ILNBLNK EXTERNAL ILNBLNK - CHARACTER*(MAX_LEN_FNAM) STREAMICExvelOptimFile - CHARACTER*(MAX_LEN_FNAM) STREAMICEyvelOptimFile - _RL U_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL V_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - - jtlo = mybylo(mythid) - jthi = mybyhi(mythid) - itlo = mybxlo(mythid) - ithi = mybxhi(mythid) +c CHARACTER*(MAX_LEN_FNAM) STREAMICExvelOptimFile +c CHARACTER*(MAX_LEN_FNAM) STREAMICEyvelOptimFile +c _RL U_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +c _RL V_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - i_numcells = 1.0/(Nx*Ny) +c i_numcells = 1.0/(Nx*Ny) -! STREAMICExvelOptimFile= -! & STREAMICEvelOptimFile(1: -! & ILNBLNK(STREAMICEvelOptimFile))//"u.bin" -! STREAMICEyvelOptimFile= -! & STREAMICEvelOptimFile(1: -! & ILNBLNK(STREAMICEvelOptimFile))//"v.bin" +c STREAMICExvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"u.bin" +c STREAMICEyvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"v.bin" -! _BARRIER +c _BARRIER -! CALL READ_FLD_XY_RS( STREAMICExvelOptimFile, ' ', -! & U_obs, 0, myThid ) -! CALL READ_FLD_XY_RS( STREAMICEyvelOptimFile, ' ', -! & V_obs, 0, myThid ) +c CALL READ_FLD_XY_RS( STREAMICExvelOptimFile, ' ', +c & U_obs, 0, myThid ) +c CALL READ_FLD_XY_RS( STREAMICEyvelOptimFile, ' ', +c & V_obs, 0, myThid ) C-- Calculate mask for tracer cells (0 => land, 1 => water) -! k=1 +c k=1 C-- Calculate cost function on tile of this instance - do bj = jtlo,jthi - do bi = itlo,ithi + do bj = myByLo(myThid),myByHi(myThid) + do bi = myBxLo(myThid),myBxHi(myThid) do j=1,sNy do i=1,sNx - if (streamice_hmask(i,j,bi,bj).eq.1.0) then objf_test (bi,bj) = objf_test (bi,bj) + & u_streamice(i,j,bi,bj)**2+v_streamice(i,j,bi,bj)**2+ & h_streamice(i,j,bi,bj)**2 endif + enddo + enddo + enddo + enddo - end do - end do - end do - end do - -#endif +#endif /* ALLOW_COST_TEST */ RETURN END diff --git a/verification/halfpipe_streamice/code_oad/ctrl_map_gentim2d.F b/verification/halfpipe_streamice/code_oad/ctrl_map_gentim2d.F index 4cccc76f0f..ca57d7b4a5 100644 --- a/verification/halfpipe_streamice/code_oad/ctrl_map_gentim2d.F +++ b/verification/halfpipe_streamice/code_oad/ctrl_map_gentim2d.F @@ -1,5 +1,7 @@ #include "CTRL_OPTIONS.h" -#include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif CBOP C !ROUTINE: CTRL_MAP_GENTIM2D @@ -10,6 +12,7 @@ SUBROUTINE CTRL_MAP_GENTIM2D( C *=============================================================* C | S/R CTRL_MAP_GENTIM2D C *=============================================================* +C \ev C !USES: IMPLICIT NONE @@ -18,173 +21,151 @@ SUBROUTINE CTRL_MAP_GENTIM2D( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "FFIELDS.h" -#include "DYNVARS.h" #include "GRID.h" #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" #include "ctrl_dummy.h" -#include "optim.h" #ifdef ALLOW_AUTODIFF #include "AUTODIFF_MYFIELDS.h" #endif #ifdef ALLOW_STREAMICE -#include "STREAMICE.h" +# include "STREAMICE.h" #endif C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === -C myIter :: iteration counter for this thread -C myTime :: time counter for this thread -C myThid :: thread number for this instance of the routine. +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number _RL myTime INTEGER myIter INTEGER myThid +#ifdef ALLOW_GENTIM2D_CONTROL C !LOCAL VARIABLES: C == Local variables == - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical equal - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - - _RL fac - _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL genweight(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - -c == external == - integer ilnblnk - external ilnblnk + INTEGER bi, bj + INTEGER i, j + INTEGER iarr + _RL xx_gentim2d_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + CHARACTER*(MAX_LEN_MBUF) msgBuf + _RL LOCsumTile(nSx,nSy), LOCsumGlob CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_GENTIM2D_CONTROL -C-- An example of connecting specific fields -C-- to generic time-varying 2D control arrays -cph--->>> -cph--->>> COMPILE FAILURE IS DELIBERATE -cph--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- -cph--->>> C-- generic - user-defined control vars - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - bdot_streamice(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - DO iarr = 1, maxCtrlTim2D - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d_loc(I,J,bi,bj) = 0. _d 0 -! bdot_streamice(i,j,bi,bj) = 0. _d 0 + + IF (xx_gentim2d_weight(iarr).NE.' ') THEN + + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d_loc(i,j,bi,bj) = 0. _d 0 + ENDDO ENDDO ENDDO ENDDO - ENDDO -C -! CALL CTRL_GET_GEN ( -! I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), -! I xx_gentim2d_startdate(1,iarr), -! I xx_gentim2d_period(iarr), -! I maskC, -! O xx_gentim2d_loc, -! I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d_dummy(iarr), -! I zeroRL, zeroRL, -! I mytime, myiter, mythid ) - -! CALL CTRL_GET_GEN ( -! I xx_gentim2d_file(iarr)(1:MAX_LEN_FNAM), -! I xx_gentim2d_startdate(1,iarr), -! I xx_gentim2d_period(iarr), -! I maskC, -! O xx_gentim2d_loc, -! I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), -! I xx_gentim2d_dummy(iarr), -! I zeroRL, zeroRL, genweight, -! I mytime, myiter, mythid ) - - fnamebase = xx_gentim2d_file(iarr) - CALL CTRL_GET_GEN ( + + CALL CTRL_GET_MASK2D( xx_gentim2d_file(iarr), mask2D, myThid ) + CALL CTRL_GET_GEN ( I xx_gentim2d_file(iarr), I xx_gentim2d_startdate(1,iarr), I xx_gentim2d_period(iarr), - I maskC, + I mask2D, O xx_gentim2d_loc, - I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), - I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), + I xx_gentim2d0(1-OLx,1-OLy,1,1,iarr), + I xx_gentim2d1(1-OLx,1-OLy,1,1,iarr), I xx_gentim2d_dummy(iarr), I zeroRL, zeroRL, - I wgentim2d(1-Olx,1-Oly,1,1,iarr), - I mytime, myiter, mythid ) - - - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sNy - do i = 1,sNx - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) - enddo - enddo - enddo - enddo - + I wgentim2d(1-OLx,1-OLy,1,1,iarr), + I myTime, myIter, myThid ) + + IF (xx_gentim2d_cumsum(iarr)) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) + & + xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + + IF (xx_gentim2d_glosum(iarr)) THEN + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + LOCsumTile(bi,bj)=0. _d 0 + DO j = 1,sNy + DO i = 1,sNx + LOCsumTile(bi,bj) = LOCsumTile(bi,bj) + & + xx_gentim2d(i,j,bi,bj,iarr)*rA(i,j,bi,bj) + & *maskC(i,j,1,bi,bj)*maskInC(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO -C + CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) + + LOCsumGlob = LOCsumGlob/globalArea + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d(i,j,bi,bj,iarr) = + & LOCsumGlob*maskC(i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1,sNy - DO I = 1,sNx - if ( iarr .eq. 1 ) then + WRITE(msgBuf,'(A,I6,A,1PE21.14)') + & ' iter=', myIter, ' ; genprecipGloH= ', + & LOCsumGlob*rhoConstFresh*recip_rhoConst*deltaTClock + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF !IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN - bdot_streamice(i,j,bi,bj) = - & bdot_streamice(i,j,bi,bj)+ - & xx_gentim2d(i,j,bi,bj,iarr) + ENDIF !IF (xx_gentim2d_glosum(iarr)) THEN - endif - enddo - enddo - enddo - enddo -c-- -! CALL EXCH_XY_RL -! & (streamice_v_shear_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_u_shear_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_v_normal_pert, myThid) -! CALL EXCH_XY_RL -! & (streamice_u_normal_pert, myThid) +C--- begin customized code for experiment halfpipe_streamice: + IF ( iarr .EQ. 1 ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + bdot_streamice(i,j,bi,bj) = xx_gentim2d(i,j,bi,bj,iarr) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +C--- end customized code - _EXCH_XY_RL(bdot_streamice, mythid ) -c-- - ENDDO ! iarr + ENDIF !IF (xx_gentim2d_weight(iarr).NE.' ') THEN + ENDDO !DO iarr = 1, maxCtrlTim2D #endif /* ALLOW_GENTIM2D_CONTROL */ diff --git a/verification/halfpipe_streamice/code_oad/ctrl_map_ini_genarr.F b/verification/halfpipe_streamice/code_oad/ctrl_map_ini_genarr.F index 92c9ec721d..07bcc6e89c 100644 --- a/verification/halfpipe_streamice/code_oad/ctrl_map_ini_genarr.F +++ b/verification/halfpipe_streamice/code_oad/ctrl_map_ini_genarr.F @@ -1,5 +1,10 @@ #include "CTRL_OPTIONS.h" -#include "STREAMICE_OPTIONS.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif CBOP C !ROUTINE: CTRL_MAP_INI_GENARR @@ -27,14 +32,18 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) #include "FFIELDS.h" #include "CTRL_SIZE.h" #include "ctrl.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" #include "optim.h" +#include "ctrl_dummy.h" +#include "CTRL_FIELDS.h" +#include "CTRL_GENARR.h" #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" -c#include "PTRACERS_PARAMS.h" +# include "PTRACERS_PARAMS.h" # include "PTRACERS_FIELDS.h" #endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif #ifdef ALLOW_STREAMICE # include "STREAMICE.h" #endif @@ -43,137 +52,252 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C == routine arguments == INTEGER myThid +#if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) C !FUNCTIONS: - INTEGER ILNBLNk + INTEGER ILNBLNK EXTERNAL ILNBLNK +#endif C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf - _RL fac +#if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL)) + INTEGER iarr +cdg temporary string declared, required for oad compilation + CHARACTER(MAX_LEN_FNAM) temp_genarr_fnam +#endif +#ifdef ALLOW_GENARR2D_CONTROL + INTEGER igen_etan,igen_bdrag,igen_geoth +# ifdef ALLOW_SHELFICE + INTEGER igen_shiCoeffT, igen_shiCoeffS, igen_shiCDrag + INTEGER i, j, bi, bj +# ifdef SHI_ALLOW_GAMMAFRICT + INTEGER k2 + LOGICAL dragThermoEqualMom +# endif +# endif +#endif /* ALLOW_GENARR2D_CONTROL */ +#ifdef ALLOW_GENARR3D_CONTROL + INTEGER igen_theta0, igen_salt0 + INTEGER igen_kapgm, igen_kapredi, igen_diffkr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + INTEGER igen_uvel0, igen_vvel0 +# endif +# ifdef ALLOW_PTRACERS + INTEGER iPtr, iLen + INTEGER igen_ptr(PTRACERS_num) +# endif +#endif /* ALLOW_GENARR3D_CONTROL */ CEOP - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. - fac = 1. _d 0 - #ifdef ALLOW_GENARR2D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 2D control arrays +C-- generic 2D control variables -C-- generic - user-defined control vars + igen_etan=0 + igen_bdrag=0 + igen_geoth=0 +#ifdef ALLOW_SHELFICE + igen_shiCoeffT=0 + igen_shiCoeffS=0 + igen_shiCDrag=0 +#endif DO iarr = 1, maxCtrlArr2D - - fnamebase = xx_genarr2d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr2d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - - if ( iarr .eq. 2 ) then - H_streamice(i,j,bi,bj) = - & H_streamice(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) -#ifdef ALLOW_OPENAD -cph & + xx_genarr2d(i,j,bi,bj,iarr) + IF (xx_genarr2d_weight(iarr).NE.' ') THEN +cdg temp_genarr_fnam used below instead of xx_genarr2d_file(iarr) + temp_genarr_fnam = xx_genarr2d_file(iarr) + IF (temp_genarr_fnam(1:7).EQ.'xx_etan') + & igen_etan=iarr + IF (temp_genarr_fnam(1:13).EQ.'xx_bottomdrag') + & igen_bdrag=iarr + IF (temp_genarr_fnam(1:13).EQ.'xx_geothermal') + & igen_geoth=iarr +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoefft') + & igen_shiCoeffT=iarr + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoeffs') + & igen_shiCoeffS=iarr +# else + IF (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag') + & igen_shiCDrag=iarr +# endif #endif + ENDIF + ENDDO - elseif (iarr.eq.1) then - B_glen(i,j,bi,bj) = - & B_glen(i,j,bi,bj) - & + tmpfld2d(i,j,bi,bj) -#ifdef ALLOW_OPENAD -cph & + xx_genarr2d(i,j,bi,bj,iarr) + IF (igen_etan.GT.0) THEN + CALL CTRL_MAP_GENARR2D( etaN, igen_etan, myThid ) + ENDIF +#ifdef ALLOW_BOTTOMDRAG_CONTROL + IF (igen_bdrag.GT.0) + & CALL CTRL_MAP_GENARR2D( bottomDragFld, igen_bdrag, myThid ) #endif +#ifdef ALLOW_GEOTHERMAL_FLUX + IF (igen_geoth.GT.0) + & CALL CTRL_MAP_GENARR2D( geothermalFlux, igen_geoth, myThid ) +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (igen_shiCoeffT.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffT,igen_shiCoeffT,myThid) -! elseif (iarr.eq.5) then -! BDOT_streamice(i,j,bi,bj) = -! & BDOT_streamice(i,j,bi,bj) -! & + tmpfld2d(i,j,bi,bj) - - endif + IF (igen_shiCoeffS.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffS,igen_shiCoeffS,myThid) - enddo - enddo +C-- xx_shiCoeffS not used, but shiCoeffT is adjusted by xx_shicoefft + IF ((igen_shiCoeffS.EQ.0).AND.(igen_shiCoeffT.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffS(i,j,bi,bj) = + & SHELFICEsaltToHeatRatio*shiTransCoeffT(i,j,bi,bj) + ENDDO + ENDDO ENDDO ENDDO -C-- end iarr loop - ENDDO +C-- xx_shiCoeffT not used, but shiCoeffS is adjusted by xx_shicoeffs + ELSEIF ((igen_shiCoeffT.EQ.0).AND.(igen_shiCoeffS.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffT(i,j,bi,bj) = + & shiTransCoeffS(i,j,bi,bj)/SHELFICEsaltToHeatRatio + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# else + dragThermoEqualMom = .FALSE. + IF (igen_shiCDrag.GT.0) + & CALL CTRL_MAP_GENARR2D(shiCDragFld,igen_shiCDrag,myThid) +C-- Set drag coefficient used in momentum equal to thermodynamic, +C-- u* drag coefficient + DO k2 = 1, maxCtrlProc - _EXCH_XY_RL( H_streamice, myThid ) - _EXCH_XY_RL( R_low_si, myThid ) - _EXCH_XY_RL( C_basal_friction, myThid ) + IF (xx_genarr2d_preproc_c(k2,igen_shiCDrag)(1:3).EQ.'mom') + & dragThermoEqualMom = .TRUE. + ENDDO + IF (dragThermoEqualMom) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiDragQuadFld(i,j,bi,bj) = shiCDragFld(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# endif /* SHI_ALLOW_GAMMAFRICT */ +#endif /* ALLOW_SHELFICE */ +C-- begin customized code for experiment halfpipe_streamice +C-- An example of connecting specific fields +C-- to 3 generic 2D control arrays + iarr = 1 +cdg need to force openad to recognise fields as active +cdg as cannot seem to trace dependency thru CTRL_MAP_GENARR +#ifdef ALLOW_OPENAD + B_glen(1,1,1,1) = B_glen(1,1,1,1) + + & 0.0 * xx_genarr2d_dummy(iarr) +#endif + CALL CTRL_MAP_GENARR2D( B_glen, iarr, myThid ) + iarr = 2 +#ifdef ALLOW_OPENAD + H_streamice(1,1,1,1) = H_streamice(1,1,1,1) + + & 0.0 * xx_genarr2d_dummy(iarr) +#endif + CALL CTRL_MAP_GENARR2D( H_streamice, iarr, myThid ) +C iarr = 5 +C CALL CTRL_MAP_GENARR2D( BDOT_streamice, iarr, myThid ) +C--- end customized code #endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 3D control arrays ---->>> ---->>> COMPILE FAILURE IS DELIBERATE ---->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- ---->>> -C-- generic - user-defined control vars +C-- generic 3D control variables + + igen_theta0=0 + igen_salt0=0 + igen_kapgm=0 + igen_kapredi=0 + igen_diffkr=0 +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + igen_uvel0=0 + igen_vvel0=0 +# endif +# ifdef ALLOW_PTRACERS + DO iPtr = 1, PTRACERS_num + igen_ptr(iPtr) = 0 + ENDDO +# endif /* ALLOW_PTRACERS */ DO iarr = 1, maxCtrlArr3D + IF (xx_genarr3d_weight(iarr).NE.' ') THEN + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') + & igen_theta0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') + & igen_salt0=iarr + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') + & igen_kapgm=iarr + IF (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') + & igen_kapredi=iarr + IF (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') + & igen_diffkr=iarr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') + & igen_uvel0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') + & igen_vvel0=iarr +# endif +# ifdef ALLOW_PTRACERS + IF ( usePTRACERS ) THEN + iLen = ILNBLNK(xx_genarr3d_file(iarr)) + IF ( iLen.EQ.7 .AND. + & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN + READ(xx_genarr3d_file(iarr)(7:7),*) iPtr + IF ( iPtr.GE.1 .AND. iPtr.LE.PTRACERS_numInUse ) + & igen_ptr(iPtr) = iarr + ENDIF + ENDIF +# endif /* ALLOW_PTRACERS */ + ENDIF + ENDDO - fnamebase = xx_genarr3d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr3d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then - theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) - & + fac*tmpfld3d(i,j,k,bi,bj) - elseif ( iarr .eq. 2 ) then - salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) - & + fac*tmpfld3d(i,j,k,bi,bj) - elseif ( iarr .eq. 3 ) then -#ifdef ALLOW_DIFFKR_CONTROL - diffkr(i,j,k,bi,bj) = diffkr(i,j,k,bi,bj) - & + tmpfld3d(i,j,k,bi,bj) -#endif - endif - enddo - enddo - enddo - ENDDO - ENDDO -C-- end iarr loop + IF (igen_theta0.GT.0) + & CALL CTRL_MAP_GENARR3D( theta, igen_theta0, myThid ) + IF (igen_salt0.GT.0) + & CALL CTRL_MAP_GENARR3D( salt, igen_salt0, myThid ) +# ifdef ALLOW_KAPGM_CONTROL + IF (igen_kapgm.GT.0) + & CALL CTRL_MAP_GENARR3D( kapGM, igen_kapgm, myThid ) +# endif +# ifdef ALLOW_KAPREDI_CONTROL + IF (igen_kapredi.GT.0) + & CALL CTRL_MAP_GENARR3D( kapRedi, igen_kapredi, myThid ) +# endif +# if ( defined ALLOW_DIFFKR_CONTROL && defined ALLOW_3D_DIFFKR ) + IF (igen_diffkr.GT.0) + & CALL CTRL_MAP_GENARR3D( diffKr, igen_diffkr, myThid ) +# endif + +# ifdef ALLOW_PTRACERS +CADJ loop = parallel + DO iPtr = 1, PTRACERS_num + IF ( igen_ptr(iPtr).GT.0 ) THEN + CALL CTRL_MAP_GENARR3D( pTracer(1-OLx,1-OLy,1,1,1,iPtr), + & igen_ptr(iPtr), myThid ) + ENDIF ENDDO - _EXCH_XYZ_RL( theta, myThid ) - _EXCH_XYZ_RL( salt, myThid ) -#ifdef ALLOW_DIFFKR_CONTROL - _EXCH_XYZ_RL( diffkr, myThid ) -#endif +# endif /* ALLOW_PTRACERS */ + +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (igen_uvel0.GT.0 .AND. igen_vvel0.GT.0) THEN + CALL CTRL_MAP_GENARR3D( uVel, igen_uvel0, myThid ) + CALL CTRL_MAP_GENARR3D( vVel, igen_vvel0, myThid ) + CALL EXCH_UV_XYZ_RL( uVel, vVel, .TRUE., myThid ) + ENDIF +# endif #endif /* ALLOW_GENARR3D_CONTROL */ diff --git a/verification/halfpipe_streamice/code_oad/ctrl_map_ini_gentim2d.F b/verification/halfpipe_streamice/code_oad/ctrl_map_ini_gentim2d.F new file mode 100644 index 0000000000..ac5f8e7cf6 --- /dev/null +++ b/verification/halfpipe_streamice/code_oad/ctrl_map_ini_gentim2d.F @@ -0,0 +1,490 @@ +#include "CTRL_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENTIM2D +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) + +C !DESCRIPTION: \bv +C *================================================================ +C | SUBROUTINE CTRL_MAP_INI_GENTIM2D +C | Dimensionalize and preprocess time variable controls. +C *================================================================ +C | Older version (from before Tapenade changes, PR 685) for OpenAD, +C | used in OpenAD test exp. hs94.1x64x5 & halfpipe_streamice +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "optim.h" +#include "ctrl_dummy.h" +#include "CTRL_GENARR.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +#endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +#ifdef ALLOW_GENTIM2D_CONTROL +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: +C == local variables == + integer iarr + integer numsmo + CHARACTER*(80) fnamegenIn + CHARACTER*(80) fnamegenOut + CHARACTER*(80) fnamegenTmp + CHARACTER*(80) fnamebase + integer startrec + integer endrec + integer diffrec + integer iRec, jrec, kRec, lRec + integer replicated_nrec + integer replicated_ntimes + logical doglobalread + logical ladinit + logical dowc01 + logical dosmooth + logical doscaling + _RL xx_gen(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef ALLOW_ECCO + _RL xx_gen_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + integer nyearsINT + _RL recip_nyearsRL +#endif + integer bi,bj + integer i,j,k2 + integer ilgen + integer ilDir +CEOP + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ + +C-- Now, read the control vector. + doglobalread = .false. + ladinit = .false. + +C Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gen(i,j,bi,bj)=0. _d 0 +#ifdef ALLOW_ECCO + xx_gen_tmp(i,j,bi,bj)=0. _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO + +C-- generic 2D control variables + DO iarr = 1, maxCtrlTim2D + + diffrec=0 + startrec=0 + endrec=0 + +#ifndef ALLOW_OPENAD + if (xx_gentim2d_weight(iarr).NE.' ') then +#endif + + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase = xx_gentim2d_file(iarr)(1:ilgen) + call ctrl_init_rec ( fnamebase, + I xx_gentim2d_startdate1(iarr), + I xx_gentim2d_startdate2(iarr), + I xx_gentim2d_period(iarr), + I 1, + O xx_gentim2d_startdate(1,iarr), + O diffrec, startrec, endrec, + I myThid ) + +C From CTRL_INIT_REC one gets [start,end,diff]rec. +C Below, file xx_*.$iter.data is read in from records startrec to endrec, +C followed by a write to file xx_*.effective.$iter.data of record 1 to diffrec +C (see TAF-generated S/R ctrl_map_ini_gentim2dmd). + +#ifdef ALLOW_CTRL_DEBUG +C Note: In the "md" (i.e. TAF modified) version of this fwd S/R, DEBUG calls and +C print statements are removed. See "Automatic Differentiation" chap. in the doc + write(*,*) 'AA: iarr,xx_gentim2d_startdate(1,iarr): ', + & iarr,xx_gentim2d_startdate(1,iarr) +#endif + dosmooth=.false. + dowc01 = .false. + doscaling=.true. + + numsmo=1 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'WC01') then + dowc01=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if ((.NOT.dowc01).AND. + & (xx_gentim2d_preproc(k2,iarr).EQ.'smooth')) then + dosmooth=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if (xx_gentim2d_preproc(k2,iarr).EQ.'noscaling') then + doscaling=.FALSE. + endif + enddo + + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase = xx_gentim2d_file(iarr)(1:ilgen) + write(fnamegenIn(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.',optimcycle + write(fnamegenOut(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.effective.',optimcycle + write(fnamegenTmp(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.tmp.',optimcycle + +C-- docycle + + replicated_nrec=diffrec + replicated_ntimes=0 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'docycle') then + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif + endif + enddo + +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AD:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec, endrec, diffrec, + & replicated_nrec,replicated_ntimes +#endif + DO jrec = 1, replicated_ntimes+1 + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=replicated_nrec*(jrec-1)+iRec + lRec=startrec+iRec-1 + IF (kRec.LE.endrec) THEN +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenIn ) + write(*,*) 'AE: iarr,[i,j,k,l]rec: ',iarr,iRec,jrec,lRec + write(*,*) 'AF: fnamegenIn: ', fnamegenIn(1:ilgen) +#endif +C fnamegenIn is xx_*.$iter.data, so the required access records starts at +C startrec+iRec-1 instead of iRec in the read call below. In adjoint mode, S/R +C ADACTIVE_READ_XY reads adxx_*.$iter.data in reverse order, with required +C access from endrec back to startrec. This requires creating adxx_*.$iter.data +C file of size endrec, with valid gradients from records startrec to endrec +C but all zeros from 1 to startrec-1. See documentation: +C https://mitgcm.readthedocs.io/en/latest/ocean_state_est/ocean_state_est.html#ctrl-model-parameter-adjustment-capability +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenIn, xx_gen, lRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenIn, xx_gen, lRec, 1, myThid ) +#endif +C Here, we write record kRec (from 1 to diffrec) to file xx_*.effective.$iter +#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AG: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + write(*,*) 'AH: fnamegenOut: ', fnamegenOut(1:ilgen) +#endif + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, kRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) +#endif + ENDIF + ENDDO + ENDDO + +C-- rmcycle +#ifdef ALLOW_ECCO + replicated_nrec=diffrec + replicated_ntimes=0 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'rmcycle') then + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif + endif + enddo + +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AI:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec,endrec,diffrec,replicated_nrec,replicated_ntimes +#endif + + IF (replicated_ntimes.GT.0) THEN + +C create cyclic average + + nyearsINT=1+int((diffrec-replicated_nrec)/replicated_nrec) + recip_nyearsRL=1. _d 0/float(nyearsINT) + +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AJ: nyears[INT,RL]: ',nyearsINT,recip_nyearsRL +#endif + + DO iRec = 1, replicated_nrec + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gen(i,j,bi,bj) = zeroRL + ENDDO + ENDDO + ENDDO + ENDDO + + DO jrec=1,nyearsINT +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=iRec+(jrec-1)*replicated_nrec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AK: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AL: fnamegenOut: ',fnamegenOut(1:ilgen) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen_tmp, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen_tmp, kRec, + & 1, myThid ) +#endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) + & +xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C end jrec + ENDDO + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) * recip_nyearsRL + ENDDO + ENDDO + ENDDO + ENDDO + +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenTmp, xx_gen, iRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenTmp, xx_gen, iRec, 1, myThid ) +#endif + + ENDDO + +C subtract cyclic average + DO jrec = 1, replicated_ntimes+1 + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=replicated_nrec*(jrec-1)+iRec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AM: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AN: fnamegenOut: ',fnamegenOut(1:ilgen) +#endif + IF (kRec.LE.diffrec) THEN +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenTmp, xx_gen_tmp, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenTmp, xx_gen_tmp, iRec, 1, + & myThid ) +#endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & -xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, kRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, + & myThid ) +#endif + ENDIF + ENDDO + ENDDO + + ENDIF +#endif /* ifdef ALLOW_ECCO */ + +C-- scaling and smoothing + +C The access of records startrec to endrec in xx_*.*iter was already +C done correctly above. From here, we read in xx_*.effective.$iter.data +C of size diffrec, so no more fix of record is needed from here on out. + DO iRec = 1, diffrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + lRec=startrec+iRec-1 + write(*,'(A,1x,A,1x,2I6)') 'AO: fnamegenOut, iRec,lRec ', + & fnamegenOut(1:ilgen),iRec,lRec +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) +#endif + +#ifndef ALLOW_OPENAD + jrec=1 +C Not clear which record to use for timevariable weights ; +C For now, just assumes records from startrec to endrec are available in file + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'variaweight') then + jrec=startrec+iRec-1 + endif + enddo + CALL READ_REC_3D_RL( xx_gentim2d_weight(iarr), ctrlprec, 1, + & wgentim2d(1-OLx,1-OLy,1,1,iarr), jrec, 1, myThid ) + +C-- Get appropriate mask + call ctrl_get_mask2D(xx_gentim2d_file(iarr), mask2D, myThid) + +#ifdef ALLOW_SMOOTH + IF (useSMOOTH) THEN + IF (dowc01) call smooth_correl2d(xx_gen,mask2D,numsmo,myThid) + IF (dosmooth) call smooth2d(xx_gen,mask2D,numsmo,myThid) + ENDIF +#endif /* ALLOW_SMOOTH */ + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + if ((mask2D(i,j,bi,bj).NE.0.).AND. + & (wgentim2d(i,j,bi,bj,iarr).GT.0.)) then + IF (doscaling) then + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & /sqrt(wgentim2d(i,j,bi,bj,iarr)) + ENDIF ! IF (doscaling) then + else + xx_gen(i,j,bi,bj)=0. _d 0 + endif + ENDDO + ENDDO + ENDDO + ENDDO +#endif /* ALLOW_OPENAD */ + + CALL CTRL_BOUND_2D(xx_gen,mask2D, + & xx_gentim2d_bounds(1,iarr),myThid) + + CALL EXCH_XY_RL ( xx_gen , myThid ) + +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + write(*,'(A,1x,I6,1x,A)') + & 'AQ: iRec,fnamegenOut: ',iRec,fnamegenOut(1:ilgen) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, iRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) +#endif +C-- end iRec loop + ENDDO + +#ifndef ALLOW_OPENAD + endif +#endif + +C-- end iarr loop + ENDDO + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ +#endif /* ALLOW_GENTIM2D_CONTROL */ + + RETURN + END diff --git a/verification/halfpipe_streamice/code_tap/AUTODIFF_OPTIONS.h b/verification/halfpipe_streamice/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..25929397b4 --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_tap/COST_OPTIONS.h b/verification/halfpipe_streamice/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..05e9db3b40 --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_tap/CTRL_OPTIONS.h b/verification/halfpipe_streamice/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..ca82a962bf --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/halfpipe_streamice/code_tap/CTRL_SIZE.h b/verification/halfpipe_streamice/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..2d9b2500ed --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/CTRL_SIZE.h @@ -0,0 +1,27 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 2 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 1 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/halfpipe_streamice/code_tap/DIAGNOSTICS_SIZE.h b/verification/halfpipe_streamice/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..7c3476af5e --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,28 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numDiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numDiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numDiags = 6*Nr ) + PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) + PARAMETER( diagSt_size = 5*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/halfpipe_streamice/code_tap/SIZE.h b/verification/halfpipe_streamice/code_tap/SIZE.h new file mode 100644 index 0000000000..b2d65735de --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 20, + & sNy = 20, + & OLx = 3, + & OLy = 3, + & nSx = 2, + & nSy = 1, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 1) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/halfpipe_streamice/code_tap/SIZE.h_mpi b/verification/halfpipe_streamice/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..c0c945fdb2 --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 20, + & sNy = 20, + & OLx = 3, + & OLy = 3, + & nSx = 1, + & nSy = 1, + & nPx = 2, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 1) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/halfpipe_streamice/code_tap/STREAMICE_OPTIONS.h b/verification/halfpipe_streamice/code_tap/STREAMICE_OPTIONS.h new file mode 100644 index 0000000000..ed04be66bd --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/STREAMICE_OPTIONS.h @@ -0,0 +1,36 @@ +C CPP options file for STREAMICE +C Use this file for selecting options within package "streamice" +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +#ifndef STREAMICE_OPTIONS_H +#define STREAMICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_STREAMICE + +C Place CPP define/undef flag here + +#define STREAMICE_CONSTRUCT_MATRIX +#define STREAMICE_HYBRID_STRESS +#undef STREAMICE_FLOWLINE_BUTTRESS +#define USE_ALT_RLOW +#undef STREAMICE_GEOM_FILE_SETUP +C The following will taper basal stress in a cell based +C on height above floatation, and option (2) will also +C smooth surface elevation across grounding line; +C only one should be defined +#define STREAMICE_SMOOTH_FLOATATION +#undef STREAMICE_SMOOTH_FLOATATION2 + +#undef ALLOW_PETSC +#undef ALLOW_STREAMICE_2DTRACER +#undef STREAMICE_TRACER_AB +#undef STREAMICE_SERIAL_TRISOLVE + +#endif /* ALLOW_STREAMICE */ +#endif /* STREAMICE_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/halfpipe_streamice/code_tap/cost_test.F b/verification/halfpipe_streamice/code_tap/cost_test.F new file mode 100644 index 0000000000..e9cc0bb76b --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/cost_test.F @@ -0,0 +1,82 @@ +#include "COST_OPTIONS.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif + + subroutine cost_test( myThid ) +C *==========================================================* +C | subroutine cost_test | +C | o this routine computes the cost function for the tiles | +C | of this processor | +C *==========================================================* +C | Notes | +C *==========================================================* + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "DYNVARS.h" +#include "GRID.h" +#include "cost.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +#endif + +C == Routine arguments == +C myThid - Thread number for this instance of the routine. + integer bi, bj + integer myThid + +#ifdef ALLOW_COST_TEST +C == Local variables + integer i, j +c _RL i_numcells + INTEGER ILNBLNK + EXTERNAL ILNBLNK +c CHARACTER*(MAX_LEN_FNAM) STREAMICExvelOptimFile +c CHARACTER*(MAX_LEN_FNAM) STREAMICEyvelOptimFile +c _RL U_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +c _RL V_obs (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +c i_numcells = 1.0/(Nx*Ny) + +c STREAMICExvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"u.bin" +c STREAMICEyvelOptimFile= +c & STREAMICEvelOptimFile(1: +c & ILNBLNK(STREAMICEvelOptimFile))//"v.bin" + +c _BARRIER + +c CALL READ_FLD_XY_RS( STREAMICExvelOptimFile, ' ', +c & U_obs, 0, myThid ) +c CALL READ_FLD_XY_RS( STREAMICEyvelOptimFile, ' ', +c & V_obs, 0, myThid ) + +C-- Calculate mask for tracer cells (0 => land, 1 => water) +c k=1 + +C-- Calculate cost function on tile of this instance + do bj = myByLo(myThid),myByHi(myThid) + do bi = myBxLo(myThid),myBxHi(myThid) + do j=1,sNy + do i=1,sNx + + if (streamice_hmask(i,j,bi,bj).eq.1.0) then + objf_test (bi,bj) = objf_test (bi,bj) + + & u_streamice(i,j,bi,bj)**2+v_streamice(i,j,bi,bj)**2+ + & h_streamice(i,j,bi,bj)**2 + endif + + enddo + enddo + enddo + enddo + +#endif /* ALLOW_COST_TEST */ + + RETURN + END diff --git a/verification/halfpipe_streamice/code_tap/ctrl_map_gentim2d.F b/verification/halfpipe_streamice/code_tap/ctrl_map_gentim2d.F new file mode 100644 index 0000000000..ca57d7b4a5 --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/ctrl_map_gentim2d.F @@ -0,0 +1,173 @@ +#include "CTRL_OPTIONS.h" +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif + +CBOP +C !ROUTINE: CTRL_MAP_GENTIM2D +C !INTERFACE: + SUBROUTINE CTRL_MAP_GENTIM2D( + I myTime, myIter, myThid ) +C !DESCRIPTION: \bv +C *=============================================================* +C | S/R CTRL_MAP_GENTIM2D +C *=============================================================* +C \ev + +C !USES: + IMPLICIT NONE + +C === Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" +#ifdef ALLOW_AUTODIFF +#include "AUTODIFF_MYFIELDS.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C === Routine arguments === +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number + _RL myTime + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_GENTIM2D_CONTROL +C !LOCAL VARIABLES: +C == Local variables == + INTEGER bi, bj + INTEGER i, j + INTEGER iarr + _RL xx_gentim2d_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + CHARACTER*(MAX_LEN_MBUF) msgBuf + _RL LOCsumTile(nSx,nSy), LOCsumGlob +CEOP + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlTim2D + + IF (xx_gentim2d_weight(iarr).NE.' ') THEN + + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d_loc(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + + CALL CTRL_GET_MASK2D( xx_gentim2d_file(iarr), mask2D, myThid ) + CALL CTRL_GET_GEN ( + I xx_gentim2d_file(iarr), + I xx_gentim2d_startdate(1,iarr), + I xx_gentim2d_period(iarr), + I mask2D, + O xx_gentim2d_loc, + I xx_gentim2d0(1-OLx,1-OLy,1,1,iarr), + I xx_gentim2d1(1-OLx,1-OLy,1,1,iarr), + I xx_gentim2d_dummy(iarr), + I zeroRL, zeroRL, + I wgentim2d(1-OLx,1-OLy,1,1,iarr), + I myTime, myIter, myThid ) + + IF (xx_gentim2d_cumsum(iarr)) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) + & + xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + + IF (xx_gentim2d_glosum(iarr)) THEN + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + LOCsumTile(bi,bj)=0. _d 0 + DO j = 1,sNy + DO i = 1,sNx + LOCsumTile(bi,bj) = LOCsumTile(bi,bj) + & + xx_gentim2d(i,j,bi,bj,iarr)*rA(i,j,bi,bj) + & *maskC(i,j,1,bi,bj)*maskInC(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) + + LOCsumGlob = LOCsumGlob/globalArea + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d(i,j,bi,bj,iarr) = + & LOCsumGlob*maskC(i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN + + WRITE(msgBuf,'(A,I6,A,1PE21.14)') + & ' iter=', myIter, ' ; genprecipGloH= ', + & LOCsumGlob*rhoConstFresh*recip_rhoConst*deltaTClock + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + + ENDIF !IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN + + ENDIF !IF (xx_gentim2d_glosum(iarr)) THEN + +C--- begin customized code for experiment halfpipe_streamice: + IF ( iarr .EQ. 1 ) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + bdot_streamice(i,j,bi,bj) = xx_gentim2d(i,j,bi,bj,iarr) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +C--- end customized code + + ENDIF !IF (xx_gentim2d_weight(iarr).NE.' ') THEN + + ENDDO !DO iarr = 1, maxCtrlTim2D + +#endif /* ALLOW_GENTIM2D_CONTROL */ + + RETURN + END diff --git a/verification/halfpipe_streamice/code_tap/ctrl_map_ini_genarr.F b/verification/halfpipe_streamice/code_tap/ctrl_map_ini_genarr.F new file mode 100644 index 0000000000..07bcc6e89c --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/ctrl_map_ini_genarr.F @@ -0,0 +1,305 @@ +#include "CTRL_OPTIONS.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE_OPTIONS.h" +#endif + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENARR +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_INI_GENARR +C | Add the generic arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "optim.h" +#include "ctrl_dummy.h" +#include "CTRL_FIELDS.h" +#include "CTRL_GENARR.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_PARAMS.h" +# include "PTRACERS_FIELDS.h" +#endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif +#ifdef ALLOW_STREAMICE +# include "STREAMICE.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +#if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK +#endif + +C !LOCAL VARIABLES: +C == local variables == +#if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL)) + INTEGER iarr +cdg temporary string declared, required for oad compilation + CHARACTER(MAX_LEN_FNAM) temp_genarr_fnam +#endif +#ifdef ALLOW_GENARR2D_CONTROL + INTEGER igen_etan,igen_bdrag,igen_geoth +# ifdef ALLOW_SHELFICE + INTEGER igen_shiCoeffT, igen_shiCoeffS, igen_shiCDrag + INTEGER i, j, bi, bj +# ifdef SHI_ALLOW_GAMMAFRICT + INTEGER k2 + LOGICAL dragThermoEqualMom +# endif +# endif +#endif /* ALLOW_GENARR2D_CONTROL */ +#ifdef ALLOW_GENARR3D_CONTROL + INTEGER igen_theta0, igen_salt0 + INTEGER igen_kapgm, igen_kapredi, igen_diffkr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + INTEGER igen_uvel0, igen_vvel0 +# endif +# ifdef ALLOW_PTRACERS + INTEGER iPtr, iLen + INTEGER igen_ptr(PTRACERS_num) +# endif +#endif /* ALLOW_GENARR3D_CONTROL */ +CEOP + +#ifdef ALLOW_GENARR2D_CONTROL +C-- generic 2D control variables + + igen_etan=0 + igen_bdrag=0 + igen_geoth=0 +#ifdef ALLOW_SHELFICE + igen_shiCoeffT=0 + igen_shiCoeffS=0 + igen_shiCDrag=0 +#endif + DO iarr = 1, maxCtrlArr2D + IF (xx_genarr2d_weight(iarr).NE.' ') THEN +cdg temp_genarr_fnam used below instead of xx_genarr2d_file(iarr) + temp_genarr_fnam = xx_genarr2d_file(iarr) + IF (temp_genarr_fnam(1:7).EQ.'xx_etan') + & igen_etan=iarr + IF (temp_genarr_fnam(1:13).EQ.'xx_bottomdrag') + & igen_bdrag=iarr + IF (temp_genarr_fnam(1:13).EQ.'xx_geothermal') + & igen_geoth=iarr +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoefft') + & igen_shiCoeffT=iarr + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoeffs') + & igen_shiCoeffS=iarr +# else + IF (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag') + & igen_shiCDrag=iarr +# endif +#endif + ENDIF + ENDDO + + IF (igen_etan.GT.0) THEN + CALL CTRL_MAP_GENARR2D( etaN, igen_etan, myThid ) + ENDIF +#ifdef ALLOW_BOTTOMDRAG_CONTROL + IF (igen_bdrag.GT.0) + & CALL CTRL_MAP_GENARR2D( bottomDragFld, igen_bdrag, myThid ) +#endif +#ifdef ALLOW_GEOTHERMAL_FLUX + IF (igen_geoth.GT.0) + & CALL CTRL_MAP_GENARR2D( geothermalFlux, igen_geoth, myThid ) +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (igen_shiCoeffT.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffT,igen_shiCoeffT,myThid) + + IF (igen_shiCoeffS.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffS,igen_shiCoeffS,myThid) + +C-- xx_shiCoeffS not used, but shiCoeffT is adjusted by xx_shicoefft + IF ((igen_shiCoeffS.EQ.0).AND.(igen_shiCoeffT.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffS(i,j,bi,bj) = + & SHELFICEsaltToHeatRatio*shiTransCoeffT(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C-- xx_shiCoeffT not used, but shiCoeffS is adjusted by xx_shicoeffs + ELSEIF ((igen_shiCoeffT.EQ.0).AND.(igen_shiCoeffS.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffT(i,j,bi,bj) = + & shiTransCoeffS(i,j,bi,bj)/SHELFICEsaltToHeatRatio + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# else + dragThermoEqualMom = .FALSE. + IF (igen_shiCDrag.GT.0) + & CALL CTRL_MAP_GENARR2D(shiCDragFld,igen_shiCDrag,myThid) +C-- Set drag coefficient used in momentum equal to thermodynamic, +C-- u* drag coefficient + DO k2 = 1, maxCtrlProc + + IF (xx_genarr2d_preproc_c(k2,igen_shiCDrag)(1:3).EQ.'mom') + & dragThermoEqualMom = .TRUE. + ENDDO + IF (dragThermoEqualMom) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiDragQuadFld(i,j,bi,bj) = shiCDragFld(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# endif /* SHI_ALLOW_GAMMAFRICT */ +#endif /* ALLOW_SHELFICE */ +C-- begin customized code for experiment halfpipe_streamice +C-- An example of connecting specific fields +C-- to 3 generic 2D control arrays + iarr = 1 +cdg need to force openad to recognise fields as active +cdg as cannot seem to trace dependency thru CTRL_MAP_GENARR +#ifdef ALLOW_OPENAD + B_glen(1,1,1,1) = B_glen(1,1,1,1) + + & 0.0 * xx_genarr2d_dummy(iarr) +#endif + CALL CTRL_MAP_GENARR2D( B_glen, iarr, myThid ) + iarr = 2 +#ifdef ALLOW_OPENAD + H_streamice(1,1,1,1) = H_streamice(1,1,1,1) + + & 0.0 * xx_genarr2d_dummy(iarr) +#endif + CALL CTRL_MAP_GENARR2D( H_streamice, iarr, myThid ) +C iarr = 5 +C CALL CTRL_MAP_GENARR2D( BDOT_streamice, iarr, myThid ) +C--- end customized code + +#endif /* ALLOW_GENARR2D_CONTROL */ + +#ifdef ALLOW_GENARR3D_CONTROL +C-- generic 3D control variables + + igen_theta0=0 + igen_salt0=0 + igen_kapgm=0 + igen_kapredi=0 + igen_diffkr=0 +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + igen_uvel0=0 + igen_vvel0=0 +# endif +# ifdef ALLOW_PTRACERS + DO iPtr = 1, PTRACERS_num + igen_ptr(iPtr) = 0 + ENDDO +# endif /* ALLOW_PTRACERS */ + DO iarr = 1, maxCtrlArr3D + IF (xx_genarr3d_weight(iarr).NE.' ') THEN + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') + & igen_theta0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') + & igen_salt0=iarr + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') + & igen_kapgm=iarr + IF (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') + & igen_kapredi=iarr + IF (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') + & igen_diffkr=iarr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') + & igen_uvel0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') + & igen_vvel0=iarr +# endif +# ifdef ALLOW_PTRACERS + IF ( usePTRACERS ) THEN + iLen = ILNBLNK(xx_genarr3d_file(iarr)) + IF ( iLen.EQ.7 .AND. + & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN + READ(xx_genarr3d_file(iarr)(7:7),*) iPtr + IF ( iPtr.GE.1 .AND. iPtr.LE.PTRACERS_numInUse ) + & igen_ptr(iPtr) = iarr + ENDIF + ENDIF +# endif /* ALLOW_PTRACERS */ + ENDIF + ENDDO + + IF (igen_theta0.GT.0) + & CALL CTRL_MAP_GENARR3D( theta, igen_theta0, myThid ) + IF (igen_salt0.GT.0) + & CALL CTRL_MAP_GENARR3D( salt, igen_salt0, myThid ) +# ifdef ALLOW_KAPGM_CONTROL + IF (igen_kapgm.GT.0) + & CALL CTRL_MAP_GENARR3D( kapGM, igen_kapgm, myThid ) +# endif +# ifdef ALLOW_KAPREDI_CONTROL + IF (igen_kapredi.GT.0) + & CALL CTRL_MAP_GENARR3D( kapRedi, igen_kapredi, myThid ) +# endif +# if ( defined ALLOW_DIFFKR_CONTROL && defined ALLOW_3D_DIFFKR ) + IF (igen_diffkr.GT.0) + & CALL CTRL_MAP_GENARR3D( diffKr, igen_diffkr, myThid ) +# endif + +# ifdef ALLOW_PTRACERS +CADJ loop = parallel + DO iPtr = 1, PTRACERS_num + IF ( igen_ptr(iPtr).GT.0 ) THEN + CALL CTRL_MAP_GENARR3D( pTracer(1-OLx,1-OLy,1,1,1,iPtr), + & igen_ptr(iPtr), myThid ) + ENDIF + ENDDO +# endif /* ALLOW_PTRACERS */ + +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (igen_uvel0.GT.0 .AND. igen_vvel0.GT.0) THEN + CALL CTRL_MAP_GENARR3D( uVel, igen_uvel0, myThid ) + CALL CTRL_MAP_GENARR3D( vVel, igen_vvel0, myThid ) + CALL EXCH_UV_XYZ_RL( uVel, vVel, .TRUE., myThid ) + ENDIF +# endif + +#endif /* ALLOW_GENARR3D_CONTROL */ + + RETURN + END diff --git a/verification/halfpipe_streamice/code_tap/packages.conf b/verification/halfpipe_streamice/code_tap/packages.conf new file mode 100644 index 0000000000..c6eb188773 --- /dev/null +++ b/verification/halfpipe_streamice/code_tap/packages.conf @@ -0,0 +1,11 @@ +#-- list of packages (or group of packages) to compile for this experiment: +gfd +-mom_common +-mom_fluxform +-mom_vecinv +-generic_advdiff +streamice +diagnostics + +tapenade +adjoint diff --git a/verification/halfpipe_streamice/input_ad/data b/verification/halfpipe_streamice/input_ad/data old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_ad/data.autodiff b/verification/halfpipe_streamice/input_ad/data.autodiff old mode 100755 new mode 100644 index 7f307c0ce4..831cf26207 --- a/verification/halfpipe_streamice/input_ad/data.autodiff +++ b/verification/halfpipe_streamice/input_ad/data.autodiff @@ -1,7 +1,5 @@ - -# -# ************************* -# Automatic differentiation -# ************************* +# ========================= +# pkg AUTODIFF parameters : +# ========================= &AUTODIFF_PARM01 & diff --git a/verification/halfpipe_streamice/input_ad/data.ctrl b/verification/halfpipe_streamice/input_ad/data.ctrl index 4eb277cad5..c2027f5e85 100644 --- a/verification/halfpipe_streamice/input_ad/data.ctrl +++ b/verification/halfpipe_streamice/input_ad/data.ctrl @@ -1,17 +1,17 @@ &CTRL_NML doPackDiag = .FALSE., - / + & + &CTRL_PACKNAMES - / + & + &CTRL_NML_GENARR - xx_genarr2d_file(1) = 'xx_genarr2d1', + xx_genarr2d_file(1) = 'xx_b_glen', xx_genarr2d_weight(1) = 'wunit', - xx_genarr2d_file(2) = 'xx_genarr2d2', + xx_genarr2d_file(2) = 'xx_h_streamice', xx_genarr2d_weight(2) = 'wunit', - xx_genarr3d_file(1) = 'xx_genarr3d1', - xx_genarr3d_weight(1) = 'wunit', - xx_gentim2d_file(1) = 'xx_gentim2d1', - xx_gentim2d_period(1) = 6307200 + xx_gentim2d_file(1) = 'xx_bdot_streamice', + xx_gentim2d_period(1) = 6307200., xx_gentim2d_weight(1) = 'wunit', # genarr2dPrecond = 5 200 - / + & diff --git a/verification/halfpipe_streamice/input_ad/data.diagnostics b/verification/halfpipe_streamice/input_ad/data.diagnostics old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_ad/data.grdchk b/verification/halfpipe_streamice/input_ad/data.grdchk index d3cc29f936..29c6d052ff 100644 --- a/verification/halfpipe_streamice/input_ad/data.grdchk +++ b/verification/halfpipe_streamice/input_ad/data.grdchk @@ -1,4 +1,3 @@ - # ******************* # ECCO gradient check # ******************* diff --git a/verification/halfpipe_streamice/input_ad/data.optim b/verification/halfpipe_streamice/input_ad/data.optim index 6d97de6843..c1d972ae0f 100644 --- a/verification/halfpipe_streamice/input_ad/data.optim +++ b/verification/halfpipe_streamice/input_ad/data.optim @@ -1,4 +1,3 @@ -# # ******************************** # Off-line optimization parameters # ******************************** @@ -9,7 +8,8 @@ fmin=0.15e5, iprint=10, nupdate=4, - / + & + &M1QN3 #coldStart=.true., - / + & diff --git a/verification/halfpipe_streamice/input_ad/data.pkg b/verification/halfpipe_streamice/input_ad/data.pkg old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_ad/data.streamice b/verification/halfpipe_streamice/input_ad/data.streamice old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_ad/eedata b/verification/halfpipe_streamice/input_ad/eedata old mode 100755 new mode 100644 index 818aacfa47..b3a7e9bea0 --- a/verification/halfpipe_streamice/input_ad/eedata +++ b/verification/halfpipe_streamice/input_ad/eedata @@ -1,9 +1,11 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS + nTx=1, + nTy=1, & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/halfpipe_streamice/input_oad/data b/verification/halfpipe_streamice/input_oad/data old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_oad/data.autodiff b/verification/halfpipe_streamice/input_oad/data.autodiff old mode 100755 new mode 100644 index 7f307c0ce4..831cf26207 --- a/verification/halfpipe_streamice/input_oad/data.autodiff +++ b/verification/halfpipe_streamice/input_oad/data.autodiff @@ -1,7 +1,5 @@ - -# -# ************************* -# Automatic differentiation -# ************************* +# ========================= +# pkg AUTODIFF parameters : +# ========================= &AUTODIFF_PARM01 & diff --git a/verification/halfpipe_streamice/input_oad/data.ctrl b/verification/halfpipe_streamice/input_oad/data.ctrl index b5ec143501..c2027f5e85 100644 --- a/verification/halfpipe_streamice/input_oad/data.ctrl +++ b/verification/halfpipe_streamice/input_oad/data.ctrl @@ -1,9 +1,17 @@ &CTRL_NML doPackDiag = .FALSE., - / + & + &CTRL_PACKNAMES - / + & + &CTRL_NML_GENARR - xx_gentim2d_period = 6307200 + xx_genarr2d_file(1) = 'xx_b_glen', + xx_genarr2d_weight(1) = 'wunit', + xx_genarr2d_file(2) = 'xx_h_streamice', + xx_genarr2d_weight(2) = 'wunit', + xx_gentim2d_file(1) = 'xx_bdot_streamice', + xx_gentim2d_period(1) = 6307200., + xx_gentim2d_weight(1) = 'wunit', # genarr2dPrecond = 5 200 - / + & diff --git a/verification/halfpipe_streamice/input_oad/data.grdchk b/verification/halfpipe_streamice/input_oad/data.grdchk index d3cc29f936..29c6d052ff 100644 --- a/verification/halfpipe_streamice/input_oad/data.grdchk +++ b/verification/halfpipe_streamice/input_oad/data.grdchk @@ -1,4 +1,3 @@ - # ******************* # ECCO gradient check # ******************* diff --git a/verification/halfpipe_streamice/input_oad/data.optim b/verification/halfpipe_streamice/input_oad/data.optim index 6d97de6843..c1d972ae0f 100644 --- a/verification/halfpipe_streamice/input_oad/data.optim +++ b/verification/halfpipe_streamice/input_oad/data.optim @@ -1,4 +1,3 @@ -# # ******************************** # Off-line optimization parameters # ******************************** @@ -9,7 +8,8 @@ fmin=0.15e5, iprint=10, nupdate=4, - / + & + &M1QN3 #coldStart=.true., - / + & diff --git a/verification/halfpipe_streamice/input_oad/data.pkg b/verification/halfpipe_streamice/input_oad/data.pkg old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_oad/data.streamice b/verification/halfpipe_streamice/input_oad/data.streamice old mode 100755 new mode 100644 diff --git a/verification/halfpipe_streamice/input_oad/eedata b/verification/halfpipe_streamice/input_oad/eedata old mode 100755 new mode 100644 index 818aacfa47..b3a7e9bea0 --- a/verification/halfpipe_streamice/input_oad/eedata +++ b/verification/halfpipe_streamice/input_oad/eedata @@ -1,9 +1,11 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS + nTx=1, + nTy=1, & -# Note: Some systems use & as the -# namelist terminator. Other systems -# use a / character (as shown here). +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/halfpipe_streamice/input_tap/data.pkg b/verification/halfpipe_streamice/input_tap/data.pkg new file mode 100644 index 0000000000..d60ead6ce9 --- /dev/null +++ b/verification/halfpipe_streamice/input_tap/data.pkg @@ -0,0 +1,7 @@ +# Packages + &PACKAGES +# useMNC=.TRUE., + useStreamIce=.true. + useDiagnostics = .false., + useGrdchk = .true., + & diff --git a/verification/halfpipe_streamice/input_tap/data.streamice b/verification/halfpipe_streamice/input_tap/data.streamice new file mode 100644 index 0000000000..58f00e72ed --- /dev/null +++ b/verification/halfpipe_streamice/input_tap/data.streamice @@ -0,0 +1,92 @@ +# =================================== +# | Parameters for STREAMICE package | +# =================================== + &STREAMICE_PARM01 + streamice_density = 917., + streamice_density_ocean_avg = 1028., + B_glen_isothermal = 700., + C_basal_fric_const = 5., + n_glen = 3.0, + n_basal_friction = 1., + eps_glen_min = 1.0e-12, + eps_u_min = 1.0e-12, + streamice_cg_tol = 1.0e-6, + STREAMICE_lower_cg_tol = .false., + streamice_nonlin_tol = 1.0e-20, + streamice_nonlin_tol_fp = 1.e-7, + streamice_max_cg_iter = 500, + streamice_max_nl_iter = 100, + STREAMICE_move_front = .false., + STREAMICE_calve_to_mask = .false., + streamice_CFL_factor = 0.5, + STREAMICE_dump_mdsio = .true., + streamice_bg_surf_slope_x = 0., + STREAMICEthickInit='PARAM', + STREAMICEthickFile='h_init.box', + STREAMICEtopogFile='topog.box', + STREAMICEbasalTracConfig='UNIFORM', + STREAMICEGlenConstConfig='UNIFORM', + & + +#PETSC_SOLVER_TYPE = 'BICG', +#PETSC_PRECOND_TYPE = 'BLOCKJACOBI', +#& + + + &STREAMICE_PARM02 + shelf_max_draft = 1300.0, + shelf_min_draft = 300.0, + shelf_edge_pos = 70.0e3, + shelf_slope_scale = 62.0e3, + shelf_flat_width = 20.0e3, + & + + &STREAMICE_PARMOAD + streamice_nonlin_tol_adjoint = 1.e-8, + & + + &STREAMICE_PARM03 + min_x_noflow_north = 0.0, + max_x_noflow_north = 120.0e3, + min_x_noflow_south = 0.0, + max_x_noflow_south = 120.0e3, + min_y_noflow_WEST = -1.0, + max_y_noflow_WEST = -1.0, + min_y_noflow_EAST = -1.0, + max_y_noflow_EAST = -1.0, + min_x_noStress_NORTH = 0.0e3, + max_x_noStress_NORTH = 0.0e3, + min_x_noStress_SOUTH = 0.0e3, + max_x_noStress_SOUTH = 0.0e3, + min_y_noStress_WEST = -1.0, + max_y_noStress_WEST = -1.0, + min_y_noStress_EAST = -1.0, + max_y_noStress_EAST = -1.0, + min_x_FluxBdry_NORTH = -1.0, + max_x_FluxBdry_NORTH = -1.0, + min_x_FluxBdry_SOUTH = -1.0, + max_x_FluxBdry_SOUTH = -1.0, + min_y_FluxBdry_WEST = 0.0, + max_y_FluxBdry_WEST = 40.0e3, + min_y_FluxBdry_EAST = -1.0, + max_y_FluxBdry_EAST = -1.0, + min_x_Dirich_NORTH = -1.0, + max_x_Dirich_NORTH = -1.0, + min_x_Dirich_SOUTH = -1.0, + max_x_Dirich_SOUTH = -1.0, + min_y_Dirich_WEST = -1.0, + max_y_Dirich_WEST = -1.0, + min_y_Dirich_EAST = -1.0, + max_y_Dirich_EAST = -1.0, + min_x_CFBC_NORTH = -1.0, + max_x_CFBC_NORTH = -1.0, + min_x_CFBC_SOUTH = -1.0, + max_x_CFBC_SOUTH = -1.0, + min_y_CFBC_WEST = -1.0, + max_y_CFBC_WEST = -1.0, + min_y_CFBC_EAST = 0.0, + max_y_CFBC_EAST = 40.0e3, + flux_bdry_val_WEST =1.5e6, + STREAMICE_NS_periodic = .false., + STREAMICE_EW_periodic = .false., + & diff --git a/verification/OpenAD/input_ad/prepare_run b/verification/halfpipe_streamice/input_tap/prepare_run similarity index 56% rename from verification/OpenAD/input_ad/prepare_run rename to verification/halfpipe_streamice/input_tap/prepare_run index 4caa458d8a..2b6fe5dab2 100755 --- a/verification/OpenAD/input_ad/prepare_run +++ b/verification/halfpipe_streamice/input_tap/prepare_run @@ -1,21 +1,21 @@ #! /usr/bin/env bash -#- in order to save disc space, take *.bin files +#- And to simplify maintenance (+ save disc space), take parameter files & bin files #- from this dir: -fromDir="../../tutorial_global_oce_latlon/input" +fromDir="../input_ad" -fileList=`( cd $fromDir ; echo *.bin )` +fileList=`( cd $fromDir ; echo data* eedata topog.box )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/halfpipe_streamice/results/output_oadm.txt b/verification/halfpipe_streamice/results/output_oadm.txt index 0b8038f02a..59ea439b7e 100644 --- a/verification/halfpipe_streamice/results/output_oadm.txt +++ b/verification/halfpipe_streamice/results/output_oadm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67c -(PID.TID 0000.0001) // Build user: dgoldberg -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed Sep 5 08:09:27 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68e +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node394 +(PID.TID 0000.0001) // Build date: Fri Dec 24 11:56:18 EST 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -297,6 +299,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -318,9 +326,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -834,8 +851,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 3 -(PID.TID 0000.0001) ctrl_init: control vector length: 4446 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 3 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 4446 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -885,7 +902,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 2.000000000000000E+01 /* K = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 1.000000000000000E+01 /* K = 1 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ @@ -936,7 +953,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 7.400000000000000E-04 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -946,6 +963,9 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1000,28 +1020,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1043,7 +1066,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1052,10 +1075,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1120,37 +1143,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) F @@ -1252,8 +1250,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 150 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1270,6 +1268,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1723,7 +1724,6 @@ (PID.TID 0000.0001) min range on east bd for no-stress (km) = /* user defined parameter */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; -OAD: TIMING: stamp 0: 1536149961.713780 (PID.TID 0000.0001) max range on east bd for no-stress (km) = /* user defined parameter */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1816,6 +1816,7 @@ OAD: TIMING: stamp 0: 1536149961.713780 (PID.TID 0000.0001) ; (PID.TID 0000.0001) val (m^2/a) for west flux bdry = /* user defined parameter */ (PID.TID 0000.0001) 1.500000000000000E+06 +OAD: TIMING: stamp 0: 1640365461.570741 (PID.TID 0000.0001) ; (PID.TID 0000.0001) streamice_dump_mdsio = /* user defined parameter */ (PID.TID 0000.0001) T @@ -1844,7 +1845,9 @@ OAD: TIMING: stamp 0: 1536149961.713780 (PID.TID 0000.0001) STREAMICEcalveMaskFile = /* user defined parameter */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) // ======================================================= @@ -3039,8 +3042,6 @@ OAD: TIMING: stamp 0: 1536149961.713780 GOT HERE CG ITERATIONS 109 (PID.TID 0000.0001) streamice linear solve number 36 109 iterations (PID.TID 0000.0001) err/err_init 0.3275118E-07 -OAD: TIMING: stamp 1: 1536149977.818072 -OAD: TIMING: delta stamps 1-0: 16.104292 (PID.TID 0000.0001) STREAMICE_FP_ERROR = 4.29319228487657E-05 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3528703E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1625781E+09 @@ -3146,6 +3147,8 @@ OAD: TIMING: delta stamps 1-0: 16.104292 (PID.TID 0000.0001) streamice linear solve number 49 154 iterations (PID.TID 0000.0001) err/err_init 0.1055931E-09 (PID.TID 0000.0001) STREAMICE_FP_ERROR = 1.23796894513362E-07 +OAD: TIMING: stamp 1: 1640365491.142084 +OAD: TIMING: delta stamps 1-0: 29.571343 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3161356E+06 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2442874E+04 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.5644276E+03 @@ -3170,8 +3173,8 @@ OAD: TIMING: delta stamps 1-0: 16.104292 (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) %CHECKPOINT 3 ckptA (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913321536866D+09 - --> objf_test(bi,bj) = 0.149463654508033D+09 + --> objf_test(bi,bj) = 0.397913321536866D+09 + --> objf_test(bi,bj) = 0.149463654508033D+09 (PID.TID 0000.0001) local fc = 0.547376976044899D+09 (PID.TID 0000.0001) global fc = 0.547376976044899D+09 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT @@ -3189,61 +3192,61 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 185 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS (PID.TID 0000.0001) streamice adjoint solve number 1 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.65565673106427E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.65565683314915E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.9365666E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1494816E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1042136E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 2 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.63052807029343E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.63052786606250E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.1505464E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2370725E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1320052E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 185 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 3 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.66828568670332E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.66828527844889E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.1943455E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3048584E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3048583E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1499438E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 183 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 183ITERS + GOT HERE CG ITERATIONS 197 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 197ITERS (PID.TID 0000.0001) streamice adjoint solve number 4 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.36400288546998E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.36400237531804E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2252934E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3536995E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3536993E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1614507E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 5 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.51224450619700E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.51224511909159E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2461971E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3876188E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3876187E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1688073E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 187 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 187ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 6 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.64719227891951E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.64719023750328E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2599612E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4106812E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1735020E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4106811E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1735019E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 193 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 193ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 7 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.14875416127373E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.14875926572331E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2688903E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4261595E+10 @@ -3252,79 +3255,79 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 194 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 8 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.92633387367059E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.92632774686750E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2746321E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4364635E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4364633E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1784036E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 183 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 183ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 9 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.51559724021114E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.51560438680328E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2783054E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4432872E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1796202E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 169 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 169ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 10 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.61467240687250E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.61466934496429E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2806485E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4477916E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4477915E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1803961E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 186 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS (PID.TID 0000.0001) streamice adjoint solve number 11 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03828353323657E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03829067809214E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2821406E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4507590E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4507591E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1808913E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 185 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS + GOT HERE CG ITERATIONS 184 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS (PID.TID 0000.0001) streamice adjoint solve number 12 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.68231013784408E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.68219783985338E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2830901E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4527117E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4527115E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1812074E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 183 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 183ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 13 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.30587969301085E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.30593074196913E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2836942E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4539956E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4539955E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1814094E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 197 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 197ITERS (PID.TID 0000.0001) streamice adjoint solve number 14 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.77727693346858E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.77733818112208E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2840785E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4548396E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4548397E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1815386E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 193 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 193ITERS + GOT HERE CG ITERATIONS 184 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS (PID.TID 0000.0001) streamice adjoint solve number 15 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.79285786671234E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.79284764094761E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2843231E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4553947E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4553948E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1816212E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 197 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 197ITERS + GOT HERE CG ITERATIONS 186 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS (PID.TID 0000.0001) streamice adjoint solve number 16 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.15851403598660E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.15849360979301E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2844788E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4557595E+10 @@ -3333,160 +3336,160 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 185 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS (PID.TID 0000.0001) streamice adjoint solve number 17 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.49087114836203E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.49158569044134E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2845780E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4559992E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4559994E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817080E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 187 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 187ITERS (PID.TID 0000.0001) streamice adjoint solve number 18 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.84639942896885E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.84639934039268E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2846411E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4561571E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4561572E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817297E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 198 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS + GOT HERE CG ITERATIONS 185 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS (PID.TID 0000.0001) streamice adjoint solve number 19 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.13628111137680E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.13668931456636E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2846814E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4562609E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4562611E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817436E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 185 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS + GOT HERE CG ITERATIONS 183 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 183ITERS (PID.TID 0000.0001) streamice adjoint solve number 20 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.03041961909570E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.02990910434314E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847070E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4563292E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4563294E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817526E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 198 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS (PID.TID 0000.0001) streamice adjoint solve number 21 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.31406993679937E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.31447821448049E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847234E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4563741E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4563743E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817583E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 193 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 193ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 22 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.51276367557120E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.51480481641432E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847338E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564036E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564039E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817620E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 169 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 169ITERS + GOT HERE CG ITERATIONS 183 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 183ITERS (PID.TID 0000.0001) streamice adjoint solve number 23 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.51864364909845E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.51149764146186E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847405E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564231E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564233E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817643E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 186 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS (PID.TID 0000.0001) streamice adjoint solve number 24 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.57840732837319E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.57330344060441E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847447E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564360E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564361E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817659E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 185 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 25 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.32287232379183E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.31368647889102E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847474E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564446E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817669E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564444E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817668E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 186 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 26 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.49833249287323E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.50037589191821E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847492E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564500E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564499E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817675E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 196 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 196ITERS + GOT HERE CG ITERATIONS 184 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS (PID.TID 0000.0001) streamice adjoint solve number 27 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.71270392439058E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.87604679392180E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847503E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564536E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564538E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817679E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 184 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS (PID.TID 0000.0001) streamice adjoint solve number 28 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.34466468389810E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.33444946911538E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847510E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564561E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564563E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817681E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 186 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS + GOT HERE CG ITERATIONS 198 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS (PID.TID 0000.0001) streamice adjoint solve number 29 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.15817056624353E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.12753084138172E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847514E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564578E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564579E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817683E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 198 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS (PID.TID 0000.0001) streamice adjoint solve number 30 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.66579894458678E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.72703558571072E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847517E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564588E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564591E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817684E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 186 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 31 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.71012962938934E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.73053950575960E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847519E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564595E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564598E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817685E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 198 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS + GOT HERE CG ITERATIONS 194 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 32 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.14053526248345E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.06907047674743E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847520E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564599E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564601E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817685E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 196 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 196ITERS (PID.TID 0000.0001) streamice adjoint solve number 33 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.40983939902014E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.89895393704177E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847521E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564600E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564603E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 198 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 198ITERS (PID.TID 0000.0001) streamice adjoint solve number 34 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.05220756936716E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.51821473375574E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847521E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564603E+10 @@ -3495,86 +3498,42 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 194 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS (PID.TID 0000.0001) streamice adjoint solve number 35 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.77628448467198E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.38911117899428E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564604E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 174 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 174ITERS + GOT HERE CG ITERATIONS 184 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS (PID.TID 0000.0001) streamice adjoint solve number 36 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.92465493689454E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.75111357304404E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564604E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564607E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS + GOT HERE CG ITERATIONS 185 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS (PID.TID 0000.0001) streamice adjoint solve number 37 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.22203029170990E-01 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564604E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS -(PID.TID 0000.0001) streamice adjoint solve number 38 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.29148410918401E-02 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS -(PID.TID 0000.0001) streamice adjoint solve number 39 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.70820538778085E-02 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 194 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 194ITERS -(PID.TID 0000.0001) streamice adjoint solve number 40 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.04223996986204E-02 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564604E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS -(PID.TID 0000.0001) streamice adjoint solve number 41 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.05157747026013E-02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.41982166495183E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564607E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 184 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS -(PID.TID 0000.0001) streamice adjoint solve number 42 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.31019819342373E-02 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 185 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 185ITERS -(PID.TID 0000.0001) streamice adjoint solve number 43 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.27710331935094E-03 +(PID.TID 0000.0001) streamice adjoint solve number 38 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.74563577137114E-01 +(PID.TID 0000.0001) STOP: ADJOINT FP ERROR INCREASING (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2847522E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564605E+10 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4564609E+10 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1817686E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 184 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 184ITERS + GOT HERE CG ITERATIONS 186 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 186ITERS (PID.TID 0000.0001) streamice solo_time_step: nIter0000000001 0.20E+00seconds (PID.TID 0000.0001) initial nonlinear resid (error): 0.2096255E+13 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.5150763E+26 @@ -4026,136 +3985,136 @@ OAD: TIMING: delta stamps 1-0: 16.104292 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1059720E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1138687E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 171 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 171ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 1 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.89393596644975E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.89393586191592E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3328226E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3328225E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.3386608E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.1825270E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 2 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.21852468424032E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.21852461295117E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.5041823E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.5830647E+08 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.5830646E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2246698E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 3 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.11209039164366E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.11209034490727E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.6276628E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.6276627E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.7894520E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2506895E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 4 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.37432397552437E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.37432394605075E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.7108345E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.9471368E+08 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.9471367E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2667924E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 5 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.93801309908383E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.93801289534505E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.7649523E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.7649522E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1061082E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2767695E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 175 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 175ITERS (PID.TID 0000.0001) streamice adjoint solve number 6 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.79969596561794E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.79969583184079E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.7994951E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.7994950E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1140631E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2829551E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 7 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.75790555061452E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.75790546196488E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8212983E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1194929E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2867914E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 8 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.43306496648118E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.43306491667890E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8349685E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1231427E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8349684E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1231426E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2891712E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 9 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.58025663375624E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.58025661001153E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8435039E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8435038E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1255702E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2906475E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 10 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03163700192279E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03163698878348E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8488191E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8488190E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1271728E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2915632E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 11 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.73268487678648E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.73268464541691E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8521230E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8521229E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1282253E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2921310E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 12 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.39394977102868E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.39394973250471E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8541740E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1289139E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2924830E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 13 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.86831370121137E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.86831361723049E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8554459E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1293632E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2927011E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 14 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.88438945175496E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.88438911413406E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8562339E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8562338E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1296558E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2928362E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 15 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.23834339493109E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.23834340289553E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8567216E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1298461E+09 @@ -4164,7 +4123,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 16 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.14019661156082E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.14019643927865E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8570232E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1299696E+09 @@ -4173,16 +4132,16 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 17 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.35362118962184E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.35362223178596E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8572096E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1300499E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8572095E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1300498E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930034E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 18 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.52254011515204E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.52253765932611E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8573245E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301019E+09 @@ -4191,34 +4150,34 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 19 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.31853288765109E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.31853459769143E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8573954E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301356E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930353E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 174 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 174ITERS (PID.TID 0000.0001) streamice adjoint solve number 20 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.52666708436471E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.52666783441441E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574390E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301575E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930428E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 21 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.00548934496282E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.00548894380489E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574659E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574658E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301716E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930474E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 22 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.62305867603615E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.62306268170500E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574823E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301808E+09 @@ -4227,7 +4186,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 23 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.36283583872783E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.36283955629466E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574924E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301867E+09 @@ -4236,25 +4195,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 24 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.87437217545277E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.87438207158655E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574986E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8574985E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301906E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930530E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 25 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.89385380694141E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.89385009256732E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575023E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301931E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930536E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 26 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.24866762299519E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.24867745560131E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575046E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301947E+09 @@ -4263,16 +4222,16 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 27 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.23820071032512E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.23800396499501E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575060E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301957E+09 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930543E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930542E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 28 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.43627349668383E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.43634931923752E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575068E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301964E+09 @@ -4281,16 +4240,16 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 29 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.58735489788384E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.58739564571272E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575073E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301968E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930545E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 172 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 30 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.36702071425439E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.36702104348408E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575076E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301971E+09 @@ -4299,7 +4258,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 31 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.56186585949062E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.56200456751579E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575078E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301973E+09 @@ -4308,7 +4267,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 32 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03023751186826E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.03010001937047E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575079E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301974E+09 @@ -4317,7 +4276,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS (PID.TID 0000.0001) streamice adjoint solve number 33 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.79708295765672E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.79665477197955E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301975E+09 @@ -4326,7 +4285,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 34 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.48408234511605E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.48270114859710E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301975E+09 @@ -4335,104 +4294,186 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice adjoint solve number 35 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.95653359554430E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.95592550482044E-01 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 36 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.94883229123073E-01 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 37 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.28703071120123E-01 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 38 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.48456273946470E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 39 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.60299919249752E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 40 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.68786393086782E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 41 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.43355022807417E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 42 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.60574060412051E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 43 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.05676306844500E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 44 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.94469458473046E-03 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 173 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS +(PID.TID 0000.0001) streamice adjoint solve number 45 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.68285580399153E-03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 36 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.94922854272688E-01 + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 46 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.10332679438785E-03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 37 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.28565328481375E-01 + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 47 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.03915633915441E-03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 38 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.47270415798564E-02 +(PID.TID 0000.0001) streamice adjoint solve number 48 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.38449597065415E-03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 39 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.61277422796382E-02 +(PID.TID 0000.0001) streamice adjoint solve number 49 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.19448008112944E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS -(PID.TID 0000.0001) streamice adjoint solve number 40 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.67584978046298E-02 +(PID.TID 0000.0001) streamice adjoint solve number 50 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.47002748106029E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 41 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.42344816017184E-02 + GOT HERE CG ITERATIONS 174 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 174ITERS +(PID.TID 0000.0001) streamice adjoint solve number 51 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.92597177414567E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 173 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 42 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.60375841711655E-02 +(PID.TID 0000.0001) streamice adjoint solve number 52 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.26323163175157E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 172 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS -(PID.TID 0000.0001) streamice adjoint solve number 43 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.05786558962122E-02 -(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 -(PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 44 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.94343412425003E-03 +(PID.TID 0000.0001) streamice adjoint solve number 53 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.63404844195192E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS -(PID.TID 0000.0001) streamice adjoint solve number 45 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.63959077672271E-03 + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS +(PID.TID 0000.0001) streamice adjoint solve number 54 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.67392860205950E-04 +(PID.TID 0000.0001) STOP: ADJOINT FP ERROR INCREASING (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575081E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.8575080E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1301976E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2930546E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 173 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 173ITERS + GOT HERE CG ITERATIONS 172 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 172ITERS (PID.TID 0000.0001) streamice solo_time_step: nIter0000000000 0.00E+00seconds (PID.TID 0000.0001) initial nonlinear resid (error): 0.8084495E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.1911206E+26 @@ -4912,23 +4953,23 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 160 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 160ITERS (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.6189441E+11 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.6189440E+11 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1389791E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.2488138E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 1 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.45086309175505E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.45086289944967E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.1576699E+12 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4964448E+08 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.4964447E+08 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.3971392E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 2 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.16255716325725E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.16255703729597E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2377802E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.9109554E+08 @@ -4937,7 +4978,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 3 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.99074684656147E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.99074676499717E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.2955455E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1279628E+09 @@ -4946,7 +4987,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 4 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.56962793606951E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.56962788344537E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3347475E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1568005E+09 @@ -4955,7 +4996,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 5 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.65043739313026E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.65043735931672E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3605752E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1777989E+09 @@ -4964,25 +5005,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 6 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.05691547400233E+05 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.05691545237920E+05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3773265E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3773264E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.1924424E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6144257E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 7 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.76092365268283E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.76092350767225E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3880980E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3880979E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2023769E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6231375E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 8 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.32318064483417E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.32318055260341E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3949917E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2089949E+09 @@ -4991,7 +5032,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 9 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.76492822013176E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.76492816643928E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.3993925E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2133489E+09 @@ -5000,25 +5041,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 10 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.76894073948083E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.76894069691399E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4021985E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2161887E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6343616E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 11 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.13191458984964E+04 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.13191456910617E+04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4039866E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2180295E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6357709E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 12 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.24424445148376E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.24424434837539E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4051260E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2192175E+09 @@ -5027,25 +5068,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 13 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.63673713850668E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.63673705635986E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4058522E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2199817E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6372379E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 14 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.97070462829930E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.97070453897611E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4063152E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4063151E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2204721E+09 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6376015E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6376014E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 15 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.90459007484506E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.90459004128866E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4066104E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2207863E+09 @@ -5054,52 +5095,52 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 16 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.22350054693708E+03 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.22350052669275E+03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4067987E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2209873E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6379809E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 17 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.86612815429702E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.86612807932399E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4069189E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2211157E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6380752E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 18 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.05802539849356E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.05802488511642E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4069956E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2211977E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6381354E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 19 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.25543117110018E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.25543080957241E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4070446E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2212501E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6381738E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 20 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.09624537561721E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.09624580912844E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4070759E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2212834E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6381984E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 21 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.34990830468908E+02 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.34990832437739E+02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4070959E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213047E+09 @@ -5108,7 +5149,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 22 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.69409563504098E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.69409364763451E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071087E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213182E+09 @@ -5117,25 +5158,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 23 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.59923423799342E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.59923380672957E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071168E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213269E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382305E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 24 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.60618532943102E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.60618505981198E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071221E+12 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213324E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071220E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213323E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382346E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 25 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.32239772592826E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.32239963575956E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071254E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213358E+09 @@ -5144,25 +5185,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 26 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.49550947395009E+01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.49550792670964E+01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071275E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213381E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382389E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 27 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.62989957908221E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.62986851418471E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071289E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213395E+09 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382400E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382399E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 28 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.20003425896141E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.20009185995938E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071298E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213404E+09 @@ -5171,16 +5212,16 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 29 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.99192739052310E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.99189251408330E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071303E+12 -(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213410E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213409E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382411E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 30 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.57021994329768E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.57023294670237E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071307E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213413E+09 @@ -5189,25 +5230,25 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 31 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.65506792443099E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.65505782289022E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071309E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213415E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382415E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 158 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 32 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.06572542815700E+00 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.06571919100700E+00 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071311E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213417E+09 -(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382417E+06 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382416E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 33 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.86508491460579E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.86527300994028E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071312E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213418E+09 @@ -5216,7 +5257,7 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 34 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.42220177536301E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.42250169456816E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071312E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213418E+09 @@ -5225,16 +5266,16 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 35 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.84962379396104E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.84918924771478E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP - GOT HERE CG ITERATIONS 159 -(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS (PID.TID 0000.0001) streamice adjoint solve number 36 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.83576662322581E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.83585512588184E-01 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5243,20 +5284,70 @@ OAD: TIMING: delta stamps 1-0: 16.104292 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS (PID.TID 0000.0001) streamice adjoint solve number 37 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.18292872204687E-01 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.18287426385605E-01 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 38 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.62386814828826E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 39 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.91443344287266E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 40 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.16600847076938E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 41 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.04060618653283E-02 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382418E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 42 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.31732712535086E-02 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS -OAD: TIMING: stamp 2: 1536150010.303880 -OAD: TIMING: delta stamps 2-1: 32.485808 -OAD: TIMING: delta stamps 2-0: 48.590100 -OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 -(PID.TID 0000.0001) streamice adjoint solve number 38 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.62338176924704E-02 +(PID.TID 0000.0001) streamice adjoint solve number 43 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.47840507326580E-03 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 44 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 5.46447999049171E-03 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5264,8 +5355,44 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS -(PID.TID 0000.0001) streamice adjoint solve number 39 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.91316800464148E-02 +(PID.TID 0000.0001) streamice adjoint solve number 45 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.52325163107636E-03 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 46 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.29121789830344E-03 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 47 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.49176085860248E-03 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 48 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 9.59840540128098E-04 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 49 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.28652194146540E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5273,8 +5400,35 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS -(PID.TID 0000.0001) streamice adjoint solve number 40 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.16716823918579E-02 +(PID.TID 0000.0001) streamice adjoint solve number 50 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 4.38264908428465E-04 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 51 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.78001151114537E-04 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 52 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.64843785531943E-04 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS +(PID.TID 0000.0001) streamice adjoint solve number 53 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.15429775316755E-04 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5282,8 +5436,8 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS -(PID.TID 0000.0001) streamice adjoint solve number 41 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.04090344382859E-02 +(PID.TID 0000.0001) streamice adjoint solve number 54 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.87831976488229E-05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5291,17 +5445,48 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS -(PID.TID 0000.0001) streamice adjoint solve number 42 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 1.31499381493558E-02 +(PID.TID 0000.0001) streamice adjoint solve number 55 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 7.59605291555943E-05 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 56 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 6.51188148079740E-05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 (PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP +OAD: TIMING: stamp 2: 1640365553.318779 +OAD: TIMING: delta stamps 2-1: 62.176695 +OAD: TIMING: delta stamps 2-0: 91.748038 +OAD: TIMING: ratio stamps (2-1)/(1-0): 6.217670e+07/2.957134e+07=2.102600e+00 GOT HERE CG ITERATIONS 159 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS -(PID.TID 0000.0001) streamice adjoint solve number 43 -(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 8.48535547393325E-03 +(PID.TID 0000.0001) streamice adjoint solve number 57 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.47866292624843E-05 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 58 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.86252231216366E-05 +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 158 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 59 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 2.46543686728273E-05 (PID.TID 0000.0001) CALLING MANUAL CG ADJOINT (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 (PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 @@ -5309,6 +5494,16 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 3.248581e+07/1.610429e+07=2.017214e+00 (PID.TID 0000.0001) BEGINNING MAIN CG LOOP GOT HERE CG ITERATIONS 158 (PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 158ITERS +(PID.TID 0000.0001) streamice adjoint solve number 60 +(PID.TID 0000.0001) STREAMICE_FP_ADJ_ERROR = 3.74526362030281E-05 +(PID.TID 0000.0001) STOP: ADJOINT FP ERROR INCREASING +(PID.TID 0000.0001) CALLING MANUAL CG ADJOINT +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 11 0.4071313E+12 +(PID.TID 0000.0001) CONJ GRAD INIT RESID LOCAL, 21 0.2213419E+09 +(PID.TID 0000.0001) CONJ GRAD INIT RESID, 0.6382419E+06 +(PID.TID 0000.0001) BEGINNING MAIN CG LOOP + GOT HERE CG ITERATIONS 159 +(PID.TID 0000.0001) DONE WITH MANUAL CG ADJOINT: 159ITERS ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= @@ -6630,8 +6825,8 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913284864372D+09 - --> objf_test(bi,bj) = 0.149463645274879D+09 + --> objf_test(bi,bj) = 0.397913284864372D+09 + --> objf_test(bi,bj) = 0.149463645274879D+09 (PID.TID 0000.0001) local fc = 0.547376930139251D+09 (PID.TID 0000.0001) global fc = 0.547376930139251D+09 (PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 5.47376930139251E+08 @@ -7940,16 +8135,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913358257054D+09 - --> objf_test(bi,bj) = 0.149463663766351D+09 + --> objf_test(bi,bj) = 0.397913358257054D+09 + --> objf_test(bi,bj) = 0.149463663766351D+09 (PID.TID 0000.0001) local fc = 0.547377022023405D+09 (PID.TID 0000.0001) global fc = 0.547377022023405D+09 (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 5.47377022023405E+08 grad-res ------------------------------- grad-res 0 1 10 10 1 1 1 1 5.47376976045E+08 5.47376930139E+08 5.47377022023E+08 - grad-res 0 1 1 190 0 1 1 1 -4.59415046369E+02 -4.59420769811E+02 -1.24581076704E-05 + grad-res 0 1 1 190 0 1 1 1 -4.59415039036E+02 -4.59420769811E+02 -1.24740681697E-05 (PID.TID 0000.0001) ADM ref_cost_function = 5.47376976044899E+08 -(PID.TID 0000.0001) ADM adjoint_gradient = -4.59415046368563E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = -4.59415039036161E+02 (PID.TID 0000.0001) ADM finite-diff_grad = -4.59420769810677E+02 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= @@ -9262,8 +9457,8 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913267422692D+09 - --> objf_test(bi,bj) = 0.149463624471307D+09 + --> objf_test(bi,bj) = 0.397913267422692D+09 + --> objf_test(bi,bj) = 0.149463624471307D+09 (PID.TID 0000.0001) local fc = 0.547376891893999D+09 (PID.TID 0000.0001) global fc = 0.547376891893999D+09 (PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 5.47376891893999E+08 @@ -10572,16 +10767,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913375697941D+09 - --> objf_test(bi,bj) = 0.149463684570907D+09 + --> objf_test(bi,bj) = 0.397913375697941D+09 + --> objf_test(bi,bj) = 0.149463684570907D+09 (PID.TID 0000.0001) local fc = 0.547377060268848D+09 (PID.TID 0000.0001) global fc = 0.547377060268848D+09 (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 5.47377060268848E+08 grad-res ------------------------------- grad-res 0 2 12 10 1 1 1 1 5.47376976045E+08 5.47376891894E+08 5.47377060269E+08 - grad-res 0 2 2 192 0 1 1 1 -8.41868303710E+02 -8.41874245405E+02 -7.05774913201E-06 + grad-res 0 2 2 192 0 1 1 1 -8.41868297684E+02 -8.41874245405E+02 -7.06490699010E-06 (PID.TID 0000.0001) ADM ref_cost_function = 5.47376976044899E+08 -(PID.TID 0000.0001) ADM adjoint_gradient = -8.41868303709907E+02 +(PID.TID 0000.0001) ADM adjoint_gradient = -8.41868297683976E+02 (PID.TID 0000.0001) ADM finite-diff_grad = -8.41874245405197E+02 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= @@ -11894,8 +12089,8 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913262424821D+09 - --> objf_test(bi,bj) = 0.149463602939427D+09 + --> objf_test(bi,bj) = 0.397913262424821D+09 + --> objf_test(bi,bj) = 0.149463602939427D+09 (PID.TID 0000.0001) local fc = 0.547376865364247D+09 (PID.TID 0000.0001) global fc = 0.547376865364247D+09 (PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 5.47376865364247E+08 @@ -13204,16 +13399,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913380694701D+09 - --> objf_test(bi,bj) = 0.149463706098711D+09 + --> objf_test(bi,bj) = 0.397913380694701D+09 + --> objf_test(bi,bj) = 0.149463706098711D+09 (PID.TID 0000.0001) local fc = 0.547377086793412D+09 (PID.TID 0000.0001) global fc = 0.547377086793412D+09 (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 5.47377086793412E+08 grad-res ------------------------------- grad-res 0 3 14 10 1 1 1 1 5.47376976045E+08 5.47376865364E+08 5.47377086793E+08 - grad-res 0 3 3 194 0 1 1 1 -1.10714258659E+03 -1.10714582503E+03 -2.92503878674E-06 + grad-res 0 3 3 194 0 1 1 1 -1.10714258066E+03 -1.10714582503E+03 -2.93040125410E-06 (PID.TID 0000.0001) ADM ref_cost_function = 5.47376976044899E+08 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.10714258659341E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.10714258065641E+03 (PID.TID 0000.0001) ADM finite-diff_grad = -1.10714582502842E+03 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= @@ -14526,8 +14721,8 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913269228612D+09 - --> objf_test(bi,bj) = 0.149463579229363D+09 + --> objf_test(bi,bj) = 0.397913269228612D+09 + --> objf_test(bi,bj) = 0.149463579229363D+09 (PID.TID 0000.0001) local fc = 0.547376848457975D+09 (PID.TID 0000.0001) global fc = 0.547376848457975D+09 (PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 5.47376848457975E+08 @@ -15836,16 +16031,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) END STREAMICE_ADVECT_THICKNESS (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.397913373891704D+09 - --> objf_test(bi,bj) = 0.149463729806172D+09 + --> objf_test(bi,bj) = 0.397913373891704D+09 + --> objf_test(bi,bj) = 0.149463729806172D+09 (PID.TID 0000.0001) local fc = 0.547377103697875D+09 (PID.TID 0000.0001) global fc = 0.547377103697875D+09 (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 5.47377103697875E+08 grad-res ------------------------------- grad-res 0 4 16 10 1 1 1 1 5.47376976045E+08 5.47376848458E+08 5.47377103698E+08 - grad-res 0 4 4 196 0 1 1 1 -1.27619952537E+03 -1.27619950116E+03 1.89745937851E-08 + grad-res 0 4 4 196 0 1 1 1 -1.27619951854E+03 -1.27619950116E+03 1.36218252234E-08 (PID.TID 0000.0001) ADM ref_cost_function = 5.47376976044899E+08 -(PID.TID 0000.0001) ADM adjoint_gradient = -1.27619952537217E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = -1.27619951854097E+03 (PID.TID 0000.0001) ADM finite-diff_grad = -1.27619950115681E+03 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) @@ -15861,210 +16056,210 @@ grad-res ------------------------------- (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 10 10 1 1 1 0.000000000E+00 -1.000000000E-01 (PID.TID 0000.0001) grdchk output (c): 1 5.4737697604490E+08 5.4737693013925E+08 5.4737702202341E+08 -(PID.TID 0000.0001) grdchk output (g): 1 -4.5942076981068E+02 -4.5941504636856E+02 -1.2458107670366E-05 +(PID.TID 0000.0001) grdchk output (g): 1 -4.5942076981068E+02 -4.5941503903616E+02 -1.2474068169732E-05 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 12 10 1 1 1 0.000000000E+00 -1.000000000E-01 (PID.TID 0000.0001) grdchk output (c): 2 5.4737697604490E+08 5.4737689189400E+08 5.4737706026885E+08 -(PID.TID 0000.0001) grdchk output (g): 2 -8.4187424540520E+02 -8.4186830370991E+02 -7.0577491320112E-06 +(PID.TID 0000.0001) grdchk output (g): 2 -8.4187424540520E+02 -8.4186829768398E+02 -7.0649069900952E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 14 10 1 1 1 0.000000000E+00 -1.000000000E-01 (PID.TID 0000.0001) grdchk output (c): 3 5.4737697604490E+08 5.4737686536425E+08 5.4737708679341E+08 -(PID.TID 0000.0001) grdchk output (g): 3 -1.1071458250284E+03 -1.1071425865934E+03 -2.9250387867386E-06 +(PID.TID 0000.0001) grdchk output (g): 3 -1.1071458250284E+03 -1.1071425806564E+03 -2.9304012540976E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 16 10 1 1 1 0.000000000E+00 -1.000000000E-01 (PID.TID 0000.0001) grdchk output (c): 4 5.4737697604490E+08 5.4737684845798E+08 5.4737710369788E+08 -(PID.TID 0000.0001) grdchk output (g): 4 -1.2761995011568E+03 -1.2761995253722E+03 1.8974593785082E-08 +(PID.TID 0000.0001) grdchk output (g): 4 -1.2761995011568E+03 -1.2761995185410E+03 1.3621825223353E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 7.3070596253890E-06 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 7.3161247348914E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 174.94140615127981 -(PID.TID 0000.0001) System time: 5.59920000378042459E-002 -(PID.TID 0000.0001) Wall clock time: 175.36807298660278 +(PID.TID 0000.0001) User time: 322.96926004905254 +(PID.TID 0000.0001) System time: 0.13846999593079090 +(PID.TID 0000.0001) Wall clock time: 323.76985192298889 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.89960000663995743E-002 -(PID.TID 0000.0001) System time: 4.99899988062679768E-003 -(PID.TID 0000.0001) Wall clock time: 3.45230102539062500E-002 +(PID.TID 0000.0001) User time: 2.3632999509572983E-002 +(PID.TID 0000.0001) System time: 1.7262998968362808E-002 +(PID.TID 0000.0001) Wall clock time: 0.26237702369689941 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 16.052558314055204 -(PID.TID 0000.0001) System time: 1.89969995990395546E-002 -(PID.TID 0000.0001) Wall clock time: 16.104283094406128 +(PID.TID 0000.0001) User time: 29.409889409318566 +(PID.TID 0000.0001) System time: 3.1194001436233521E-002 +(PID.TID 0000.0001) Wall clock time: 29.571337938308716 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 3.99835892021656036E-002 -(PID.TID 0000.0001) System time: 1.49989929050207138E-002 -(PID.TID 0000.0001) Wall clock time: 5.63409328460693359E-002 +(PID.TID 0000.0001) User time: 5.8389658108353615E-002 +(PID.TID 0000.0001) System time: 4.1053999215364456E-002 +(PID.TID 0000.0001) Wall clock time: 0.34250211715698242 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 142.45835643261671 -(PID.TID 0000.0001) System time: 2.49950056895613670E-002 -(PID.TID 0000.0001) Wall clock time: 142.78408694267273 +(PID.TID 0000.0001) User time: 260.74657435342669 +(PID.TID 0000.0001) System time: 6.2874019145965576E-002 +(PID.TID 0000.0001) Wall clock time: 260.94348526000977 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 142.45735888928175 -(PID.TID 0000.0001) System time: 2.49950056895613670E-002 -(PID.TID 0000.0001) Wall clock time: 142.78324699401855 +(PID.TID 0000.0001) User time: 260.74580159783363 +(PID.TID 0000.0001) System time: 6.2866017222404480E-002 +(PID.TID 0000.0001) Wall clock time: 260.94266223907471 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.98867034912109375E-003 -(PID.TID 0000.0001) System time: 2.00000219047069550E-003 -(PID.TID 0000.0001) Wall clock time: 8.74042510986328125E-003 +(PID.TID 0000.0001) User time: 8.2920715212821960E-003 +(PID.TID 0000.0001) System time: 5.3160116076469421E-003 +(PID.TID 0000.0001) Wall clock time: 2.4342298507690430E-002 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.74181365966796875E-004 +(PID.TID 0000.0001) User time: 1.7707794904708862E-004 +(PID.TID 0000.0001) System time: 1.0799989104270935E-004 +(PID.TID 0000.0001) Wall clock time: 2.6631355285644531E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.63214111328125000E-004 +(PID.TID 0000.0001) User time: 1.4619156718254089E-004 +(PID.TID 0000.0001) System time: 8.8997185230255127E-005 +(PID.TID 0000.0001) Wall clock time: 2.3365020751953125E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.10215759277343750E-004 +(PID.TID 0000.0001) User time: 4.0046870708465576E-004 +(PID.TID 0000.0001) System time: 1.9900500774383545E-004 +(PID.TID 0000.0001) Wall clock time: 5.6385993957519531E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.99835035204887390E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.68945503234863281E-003 +(PID.TID 0000.0001) User time: 4.2699836194515228E-003 +(PID.TID 0000.0001) System time: 2.2350102663040161E-003 +(PID.TID 0000.0001) Wall clock time: 6.5109729766845703E-003 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "STREAMICE_TIMESTEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 153.46866654977202 -(PID.TID 0000.0001) System time: 1.99960041791200638E-002 -(PID.TID 0000.0001) Wall clock time: 153.81209015846252 +(PID.TID 0000.0001) User time: 280.95359082520008 +(PID.TID 0000.0001) System time: 5.0928991287946701E-002 +(PID.TID 0000.0001) Wall clock time: 281.10224437713623 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "STREAMICE_VEL_SOLVE": -(PID.TID 0000.0001) User time: 153.42567014321685 -(PID.TID 0000.0001) System time: 1.89960021525621414E-002 -(PID.TID 0000.0001) Wall clock time: 153.76940631866455 +(PID.TID 0000.0001) User time: 280.89656244218349 +(PID.TID 0000.0001) System time: 4.6778995543718338E-002 +(PID.TID 0000.0001) Wall clock time: 281.01956605911255 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "STREAMICE_CG_SOLVE": -(PID.TID 0000.0001) User time: 131.58997149765491 -(PID.TID 0000.0001) System time: 2.99900397658348083E-003 -(PID.TID 0000.0001) Wall clock time: 131.89230561256409 -(PID.TID 0000.0001) No. starts: 1693 -(PID.TID 0000.0001) No. stops: 1693 +(PID.TID 0000.0001) User time: 234.88784646242857 +(PID.TID 0000.0001) System time: 1.7996985465288162E-002 +(PID.TID 0000.0001) Wall clock time: 234.96815323829651 +(PID.TID 0000.0001) No. starts: 1714 +(PID.TID 0000.0001) No. stops: 1714 (PID.TID 0000.0001) Seconds in section "STREAMICE_ADVECT_THICKNESS": -(PID.TID 0000.0001) User time: 1.70006752014160156E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.08675861358642578E-002 +(PID.TID 0000.0001) User time: 2.6042938232421875E-002 +(PID.TID 0000.0001) System time: 9.9800527095794678E-004 +(PID.TID 0000.0001) Wall clock time: 2.7093410491943359E-002 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 1.7833709716796875E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.57015228271484375E-004 +(PID.TID 0000.0001) Wall clock time: 2.1386146545410156E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.00242614746093750E-003 +(PID.TID 0000.0001) User time: 7.2154998779296875E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.12568855285644531E-003 +(PID.TID 0000.0001) Wall clock time: 7.2052478790283203E-003 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 2.8610229492187500E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.86340713500976563E-004 +(PID.TID 0000.0001) Wall clock time: 2.9373168945312500E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.57730484008789063E-004 +(PID.TID 0000.0001) User time: 2.8800964355468750E-004 +(PID.TID 0000.0001) System time: 8.0019235610961914E-006 +(PID.TID 0000.0001) Wall clock time: 2.0885467529296875E-004 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.99010086059570313E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.70018386840820313E-003 +(PID.TID 0000.0001) User time: 4.3287277221679688E-003 +(PID.TID 0000.0001) System time: 1.5000998973846436E-004 +(PID.TID 0000.0001) Wall clock time: 4.4910907745361328E-003 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.86054611206054688E-003 +(PID.TID 0000.0001) User time: 5.0735473632812500E-003 +(PID.TID 0000.0001) System time: 1.8098950386047363E-004 +(PID.TID 0000.0001) Wall clock time: 5.1965713500976562E-003 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 9.98999923467636108E-004 -(PID.TID 0000.0001) Wall clock time: 6.01053237915039063E-004 +(PID.TID 0000.0001) User time: 7.4481964111328125E-004 +(PID.TID 0000.0001) System time: 9.0003013610839844E-006 +(PID.TID 0000.0001) Wall clock time: 2.4528503417968750E-003 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00135803222656250E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.21014022827148438E-003 +(PID.TID 0000.0001) User time: 2.5129318237304688E-003 +(PID.TID 0000.0001) System time: 1.0090023279190063E-003 +(PID.TID 0000.0001) Wall clock time: 2.8903007507324219E-002 (PID.TID 0000.0001) No. starts: 29 (PID.TID 0000.0001) No. stops: 29 (PID.TID 0000.0001) Seconds in section "STREAMICE TAPE FIXED POINT LOOP": -(PID.TID 0000.0001) User time: 16.116547584533691 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 16.154150962829590 +(PID.TID 0000.0001) User time: 29.506774902343750 +(PID.TID 0000.0001) System time: 6.9329999387264252E-003 +(PID.TID 0000.0001) Wall clock time: 29.521760463714600 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.97543334960937500E-004 +(PID.TID 0000.0001) User time: 6.1988830566406250E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.05821609497070313E-004 +(PID.TID 0000.0001) Wall clock time: 6.0725212097167969E-004 (PID.TID 0000.0001) No. starts: 9 (PID.TID 0000.0001) No. stops: 9 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 32.408073425292969 -(PID.TID 0000.0001) System time: 7.99899920821189880E-003 -(PID.TID 0000.0001) Wall clock time: 32.485839843750000 +(PID.TID 0000.0001) User time: 62.131290435791016 +(PID.TID 0000.0001) System time: 1.3990998268127441E-002 +(PID.TID 0000.0001) Wall clock time: 62.176736116409302 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "STREAMICE ADJ FIXED POINT LOOP0": -(PID.TID 0000.0001) User time: 0.46992874145507813 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.47018504142761230 +(PID.TID 0000.0001) User time: 0.79718971252441406 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 0.80042719841003418 (PID.TID 0000.0001) No. starts: 3 (PID.TID 0000.0001) No. stops: 3 (PID.TID 0000.0001) Seconds in section "STREAMICE ADJ FIXED POINT LOOP": -(PID.TID 0000.0001) User time: 19.917970657348633 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 19.959136009216309 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) User time: 39.445178985595703 +(PID.TID 0000.0001) System time: 6.9949999451637268E-003 +(PID.TID 0000.0001) Wall clock time: 39.457363605499268 +(PID.TID 0000.0001) No. starts: 149 +(PID.TID 0000.0001) No. stops: 149 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.03132629394531250E-004 +(PID.TID 0000.0001) User time: 2.0599365234375000E-004 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 7.0810317993164062E-004 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 1.6021728515625000E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.51872634887695313E-004 +(PID.TID 0000.0001) Wall clock time: 5.3811073303222656E-004 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 126.45077896118164 -(PID.TID 0000.0001) System time: 2.39970013499259949E-002 -(PID.TID 0000.0001) Wall clock time: 126.74299192428589 +(PID.TID 0000.0001) User time: 231.40403747558594 +(PID.TID 0000.0001) System time: 7.5985997915267944E-002 +(PID.TID 0000.0001) Wall clock time: 231.75807714462280 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -16093,9 +16288,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 1915272 +(PID.TID 0000.0001) // No. barriers = 1949534 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 1915272 +(PID.TID 0000.0001) // Total barrier spins = 1949534 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/halfpipe_streamice/results/output_tap_adj.txt.gz b/verification/halfpipe_streamice/results/output_tap_adj.txt.gz new file mode 100644 index 0000000000..d2ba11106c Binary files /dev/null and b/verification/halfpipe_streamice/results/output_tap_adj.txt.gz differ diff --git a/verification/halfpipe_streamice/results/output_tap_tlm.txt.gz b/verification/halfpipe_streamice/results/output_tap_tlm.txt.gz new file mode 100644 index 0000000000..bc1e5991c6 Binary files /dev/null and b/verification/halfpipe_streamice/results/output_tap_tlm.txt.gz differ diff --git a/verification/hs94.1x64x5/code_ad/AUTODIFF_OPTIONS.h b/verification/hs94.1x64x5/code_ad/AUTODIFF_OPTIONS.h index 1abd2cbdf8..1c27b66694 100644 --- a/verification/hs94.1x64x5/code_ad/AUTODIFF_OPTIONS.h +++ b/verification/hs94.1x64x5/code_ad/AUTODIFF_OPTIONS.h @@ -32,10 +32,12 @@ C Adjoint Model Compiler (TAMC). #define ALLOW_AUTODIFF_TAMC C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING +#undef ALLOW_TAMC_CHECKPOINTING C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,10 +48,34 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#define AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/verification/hs94.1x64x5/code_ad/SIZE.h b/verification/hs94.1x64x5/code_ad/SIZE.h index 06228f2e45..e27f7e68f6 100644 --- a/verification/hs94.1x64x5/code_ad/SIZE.h +++ b/verification/hs94.1x64x5/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/hs94.1x64x5/code_ad/SIZE.h_mpi b/verification/hs94.1x64x5/code_ad/SIZE.h_mpi index 124aaffd7a..a74a3eca97 100644 --- a/verification/hs94.1x64x5/code_ad/SIZE.h_mpi +++ b/verification/hs94.1x64x5/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/hs94.1x64x5/code_ad/adcommon.h b/verification/hs94.1x64x5/code_ad/adcommon.h deleted file mode 100644 index 5e1c5c541c..0000000000 --- a/verification/hs94.1x64x5/code_ad/adcommon.h +++ /dev/null @@ -1,77 +0,0 @@ -C-- These common blocks are extracted from the -C-- automatically created tangent linear code. -C-- You need to make sure that they are up-to-date -C-- (i.e. in right order), and customize them -C-- accordingly. -C-- -C-- heimbach@mit.edu 11-Jan-2001 - - common /addynvars_r/ - & adetan, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, adgt, adgs, - & adgunm1, adgvnm1, adgtnm1, adgsnm1 - _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - - common /addynvars_r_2/ - & adetah - _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - - COMMON /adffields_fu/ adfu - COMMON /adffields_fv/ adfv - COMMON /adffields_Qnet/ adQnet - COMMON /adffields_Qsw/ adQsw - COMMON /adffields_dQdT/ addQdT - COMMON /adffields_EmPmR/ adEmPmR - COMMON /adffields_saltFlux/ adsaltFlux - COMMON /adffields_SST/ adSST - COMMON /adffields_SSS/ adSSS - COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax - COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax -#ifdef ATMOSPHERIC_LOADING - COMMON /adffields_pload/ adpload - COMMON /adffields_sIceLoad/ adsIceLoad -#endif - - _RS adfu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adfv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adQnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS addQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adEmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adSST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adSSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaThetaClimRelax - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaSaltClimRelax - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef ATMOSPHERIC_LOADING - _RS adpload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - COMMON /ADDYNVARS_DIFFKR/ - & addiffKr - _RL addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif -#ifdef ALLOW_KAPGM_CONTROL - COMMON /ADDYNVARS_KAPGM/ - & adkapgm - _RL adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif diff --git a/verification/hs94.1x64x5/code_ad/ctrl_map_gentim2d.F b/verification/hs94.1x64x5/code_ad/ctrl_map_gentim2d.F index 6a0145e62e..f74c8872df 100644 --- a/verification/hs94.1x64x5/code_ad/ctrl_map_gentim2d.F +++ b/verification/hs94.1x64x5/code_ad/ctrl_map_gentim2d.F @@ -9,6 +9,7 @@ SUBROUTINE CTRL_MAP_GENTIM2D( C *=============================================================* C | S/R CTRL_MAP_GENTIM2D C *=============================================================* +C \ev C !USES: IMPLICIT NONE @@ -17,155 +18,157 @@ SUBROUTINE CTRL_MAP_GENTIM2D( #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" -#include "FFIELDS.h" -#include "DYNVARS.h" #include "GRID.h" +#include "DYNVARS.h" #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" #include "ctrl_dummy.h" -#include "optim.h" #ifdef ALLOW_AUTODIFF #include "AUTODIFF_MYFIELDS.h" #endif C !INPUT/OUTPUT PARAMETERS: C === Routine arguments === -C myIter :: iteration counter for this thread -C myTime :: time counter for this thread -C myThid :: thread number for this instance of the routine. +C myTime :: Current time in simulation +C myIter :: Current iteration number +C myThid :: my Thread Id number _RL myTime INTEGER myIter INTEGER myThid +#ifdef ALLOW_GENTIM2D_CONTROL C !LOCAL VARIABLES: C == Local variables == - integer bi,bj - integer i,j,k - integer itlo,ithi - integer jtlo,jthi - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical equal - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - - _RL fac - _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) + INTEGER bi, bj + INTEGER i, j + INTEGER iarr + _RL xx_gentim2d_loc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) CHARACTER*(MAX_LEN_MBUF) msgBuf _RL LOCsumTile(nSx,nSy), LOCsumGlob - -c == external == - integer ilnblnk - external ilnblnk CEOP C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -#ifdef ALLOW_GENTIM2D_CONTROL -C-- An example of connecting specific fields -C-- to generic time-varying 2D control arrays -cph--->>> -cph--->>> COMPILE FAILURE IS DELIBERATE -cph--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- -cph--->>> C-- generic - user-defined control vars DO iarr = 1, maxCtrlTim2D - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d_loc(I,J,bi,bj) = 0. _d 0 + IF (xx_gentim2d_weight(iarr).NE.' ') THEN + + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d_loc(i,j,bi,bj) = 0. _d 0 + ENDDO ENDDO ENDDO ENDDO - ENDDO -C - fnamebase = xx_gentim2d_file(iarr) - CALL CTRL_GET_GEN ( + + CALL CTRL_GET_MASK2D( xx_gentim2d_file(iarr), mask2D, myThid ) + CALL CTRL_GET_GEN ( I xx_gentim2d_file(iarr), I xx_gentim2d_startdate(1,iarr), I xx_gentim2d_period(iarr), - I maskC, + I mask2D, O xx_gentim2d_loc, - I xx_gentim2d0(1-Olx,1-Oly,1,1,iarr), - I xx_gentim2d1(1-Olx,1-Oly,1,1,iarr), + I xx_gentim2d0(1-OLx,1-OLy,1,1,iarr), + I xx_gentim2d1(1-OLx,1-OLy,1,1,iarr), I xx_gentim2d_dummy(iarr), I zeroRL, zeroRL, - I wgentim2d(1-Olx,1-Oly,1,1,iarr), - I mytime, myiter, mythid ) -C - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - do j = 1,sNy - do i = 1,sNx - if (xx_gentim2d_cumsum(iarr)) then - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) - & +xx_gentim2d_loc(i,j,bi,bj) - else - xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) - endif - enddo - enddo - enddo - enddo -C - if (xx_gentim2d_glosum(iarr)) then - - LOCsumGlob=0. _d 0 - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - LOCsumTile(bi,bj)=0. _d 0 - do j = 1,sNy - do i = 1,sNx - LOCsumTile(bi,bj)=LOCsumTile(bi,bj)+ - & maskC(i,j,1,bi,bj)*rA(i,j,bi,bj) - & *xx_gentim2d(i,j,bi,bj,iarr) - enddo - enddo - enddo - enddo - - CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - xx_gentim2d(I,J,bi,bj,iarr) = - & LOCsumGlob/globalArea*maskC(i,j,1,bi,bj) + I wgentim2d(1-OLx,1-OLy,1,1,iarr), + I myTime, myIter, myThid ) + + IF (xx_gentim2d_cumsum(iarr)) THEN + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d(i,j,bi,bj,iarr) + & + xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO ENDDO ENDDO - ENDDO - ENDDO + ELSE + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gentim2d(i,j,bi,bj,iarr)=xx_gentim2d_loc(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF + + IF (xx_gentim2d_glosum(iarr)) THEN + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + LOCsumTile(bi,bj)=0. _d 0 + DO j = 1,sNy + DO i = 1,sNx + LOCsumTile(bi,bj) = LOCsumTile(bi,bj) + & + xx_gentim2d(i,j,bi,bj,iarr)*rA(i,j,bi,bj) + & *maskC(i,j,1,bi,bj)*maskInC(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + CALL GLOBAL_SUM_TILE_RL( LOCsumTile, LOCsumGlob, myThid ) + + LOCsumGlob = LOCsumGlob/globalArea + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gentim2d(i,j,bi,bj,iarr) = + & LOCsumGlob*maskC(i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + + IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN + + WRITE(msgBuf,'(A,I6,A,1PE21.14)') + & ' iter=', myIter, ' ; genprecipGloH= ', + & LOCsumGlob*rhoConstFresh*recip_rhoConst*deltaTClock + CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, + & SQUEEZE_RIGHT, myThid ) + ENDIF !IF (xx_gentim2d_file(iarr).EQ.'xx_gen_precip') THEN + +C--- begin customized code for experiment hs94.1x64x5: WRITE(msgBuf,'(A,I6,A,I6,A,1PE21.14)') ' xx_gentim2d ', - & iarr,' : iter=', myiter, ' ; global sum = ', LOCsumGlob + & iarr,' : iter=', myIter, ' ; global sum = ', LOCsumGlob CALL PRINT_MESSAGE( msgBuf, standardMessageUnit, & SQUEEZE_RIGHT, myThid ) - - endif - - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - DO J = 1-Oly,sNy+Oly - DO I = 1-Olx,sNx+Olx - if (iarr.EQ.1) then - theta(I,J,1,bi,bj) = theta(I,J,1,bi,bj) - & + xx_gentim2d(I,J,bi,bj,iarr) - endif +C--- end customized code + + ENDIF !IF (xx_gentim2d_glosum(iarr)) THEN + +C--- begin customized code for experiment hs94.1x64x5: + IF (iarr.EQ.1) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj) + & + xx_gentim2d(i,j,bi,bj,iarr) + ENDDO + ENDDO ENDDO ENDDO - ENDDO - ENDDO + ENDIF +C--- end customized code + + ENDIF !IF (xx_gentim2d_weight(iarr).NE.' ') THEN - ENDDO + ENDDO !DO iarr = 1, maxCtrlTim2D #endif /* ALLOW_GENTIM2D_CONTROL */ diff --git a/verification/hs94.1x64x5/code_ad/ctrl_map_ini_genarr.F b/verification/hs94.1x64x5/code_ad/ctrl_map_ini_genarr.F index d89835b3ed..265942766d 100644 --- a/verification/hs94.1x64x5/code_ad/ctrl_map_ini_genarr.F +++ b/verification/hs94.1x64x5/code_ad/ctrl_map_ini_genarr.F @@ -1,4 +1,7 @@ #include "CTRL_OPTIONS.h" +#ifdef ALLOW_SHELFICE +# include "SHELFICE_OPTIONS.h" +#endif CBOP C !ROUTINE: CTRL_MAP_INI_GENARR @@ -26,128 +29,277 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) #include "FFIELDS.h" #include "CTRL_SIZE.h" #include "ctrl.h" -#include "CTRL_GENARR.h" -#include "ctrl_dummy.h" #include "optim.h" +#include "ctrl_dummy.h" +#include "CTRL_FIELDS.h" +#include "CTRL_GENARR.h" #ifdef ALLOW_PTRACERS # include "PTRACERS_SIZE.h" -c#include "PTRACERS_PARAMS.h" +# include "PTRACERS_PARAMS.h" # include "PTRACERS_FIELDS.h" #endif +#ifdef ALLOW_SHELFICE +# include "SHELFICE.h" +#endif C !INPUT/OUTPUT PARAMETERS: C == routine arguments == INTEGER myThid +#if (defined (ALLOW_GENARR3D_CONTROL) && defined(ALLOW_PTRACERS)) C !FUNCTIONS: - INTEGER ILNBLNk + INTEGER ILNBLNK EXTERNAL ILNBLNK +#endif C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*( 80) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf - _RL fac +#if (defined (ALLOW_GENARR2D_CONTROL) || defined(ALLOW_GENARR3D_CONTROL)) + INTEGER iarr +#endif +#ifdef ALLOW_GENARR2D_CONTROL + _RL airTlev1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL airQlev1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + INTEGER igen_etan,igen_bdrag,igen_geoth +# ifdef ALLOW_SHELFICE + INTEGER igen_shiCoeffT, igen_shiCoeffS, igen_shiCDrag + INTEGER i, j, bi, bj, k2 + LOGICAL dragThermoEqualMom +# else + INTEGER i, j, bi, bj +# endif +#endif /* ALLOW_GENARR2D_CONTROL */ +#ifdef ALLOW_GENARR3D_CONTROL + INTEGER igen_theta0, igen_salt0 + INTEGER igen_kapgm, igen_kapredi, igen_diffkr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + INTEGER igen_uvel0, igen_vvel0 +# endif +# ifdef ALLOW_PTRACERS + INTEGER iPtr, iLen + INTEGER igen_ptr(PTRACERS_num) +# endif +#endif /* ALLOW_GENARR3D_CONTROL */ CEOP - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. - fac = 1. _d 0 - #ifdef ALLOW_GENARR2D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 2D control arrays -cc--->>> -cc--->>> COMPILE FAILURE IS DELIBERATE -cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- -cc--->>> -C-- generic - user-defined control vars +C-- generic 2D control variables + + igen_etan=0 + igen_bdrag=0 + igen_geoth=0 +#ifdef ALLOW_SHELFICE + igen_shiCoeffT=0 + igen_shiCoeffS=0 + igen_shiCDrag=0 +#endif DO iarr = 1, maxCtrlArr2D + IF (xx_genarr2d_weight(iarr).NE.' ') THEN + IF (xx_genarr2d_file(iarr)(1:7).EQ.'xx_etan') + & igen_etan=iarr + IF (xx_genarr2d_file(iarr)(1:13).EQ.'xx_bottomdrag') + & igen_bdrag=iarr + IF (xx_genarr2d_file(iarr)(1:13).EQ.'xx_geothermal') + & igen_geoth=iarr +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoefft') + & igen_shiCoeffT=iarr + IF (xx_genarr2d_file(iarr)(1:12).EQ.'xx_shicoeffs') + & igen_shiCoeffS=iarr +# else + IF (xx_genarr2d_file(iarr)(1:11).EQ.'xx_shicdrag') + & igen_shiCDrag=iarr +# endif +#endif + ENDIF + ENDDO + + IF (igen_etan.GT.0) THEN + CALL CTRL_MAP_GENARR2D( etaN, igen_etan, myThid ) + ENDIF +#ifdef ALLOW_BOTTOMDRAG_CONTROL + IF (igen_bdrag.GT.0) + & CALL CTRL_MAP_GENARR2D( bottomDragFld, igen_bdrag, myThid ) +#endif +#ifdef ALLOW_GEOTHERMAL_FLUX + IF (igen_geoth.GT.0) + & CALL CTRL_MAP_GENARR2D( geothermalFlux, igen_geoth, myThid ) +#endif +#ifdef ALLOW_SHELFICE +# ifndef SHI_ALLOW_GAMMAFRICT + IF (igen_shiCoeffT.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffT,igen_shiCoeffT,myThid) + + IF (igen_shiCoeffS.GT.0) + & CALL CTRL_MAP_GENARR2D(shiTransCoeffS,igen_shiCoeffS,myThid) - fnamebase = xx_genarr2d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr2d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then - theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj) - & + tmpfld2d(i,j,bi,bj) - elseif ( iarr .eq. 2 ) then - salt(i,j,1,bi,bj) = salt(i,j,1,bi,bj) - & + tmpfld2d(i,j,bi,bj) - endif - enddo - enddo +C-- xx_shiCoeffS not used, but shiCoeffT is adjusted by xx_shicoefft + IF ((igen_shiCoeffS.EQ.0).AND.(igen_shiCoeffT.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffS(i,j,bi,bj) = + & SHELFICEsaltToHeatRatio*shiTransCoeffT(i,j,bi,bj) + ENDDO + ENDDO ENDDO ENDDO -C-- end iarr loop - ENDDO +C-- xx_shiCoeffT not used, but shiCoeffS is adjusted by xx_shicoeffs + ELSEIF ((igen_shiCoeffT.EQ.0).AND.(igen_shiCoeffS.GT.0)) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiTransCoeffT(i,j,bi,bj) = + & shiTransCoeffS(i,j,bi,bj)/SHELFICEsaltToHeatRatio + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# else + dragThermoEqualMom = .FALSE. + IF (igen_shiCDrag.GT.0) + & CALL CTRL_MAP_GENARR2D(shiCDragFld,igen_shiCDrag,myThid) +C-- Set drag coefficient used in momentum equal to thermodynamic, +C-- u* drag coefficient + DO k2 = 1, maxCtrlProc - _EXCH_XYZ_RL( theta, myThid ) - _EXCH_XYZ_RL( salt, myThid ) + IF (xx_genarr2d_preproc_c(k2,igen_shiCDrag)(1:3).EQ.'mom') + & dragThermoEqualMom = .TRUE. + ENDDO + IF (dragThermoEqualMom) THEN + DO bj = myByLo(myThid), myByHi(myThid) + DO bi = myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + shiDragQuadFld(i,j,bi,bj) = shiCDragFld(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF +# endif /* SHI_ALLOW_GAMMAFRICT */ +#endif /* ALLOW_SHELFICE */ +C-- begin customized code for experiment hs94.1x64x5 + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + airTlev1(i,j,bi,bj) = theta(i,j,1,bi,bj) + airQlev1(i,j,bi,bj) = salt (i,j,1,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + iarr = 1 + CALL CTRL_MAP_GENARR2D( airTlev1, iarr, myThid ) + iarr = 2 + CALL CTRL_MAP_GENARR2D( airQlev1, iarr, myThid ) + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + theta(i,j,1,bi,bj) = airTlev1(i,j,bi,bj) + salt (i,j,1,bi,bj) = airQlev1(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C--- end customized code #endif /* ALLOW_GENARR2D_CONTROL */ #ifdef ALLOW_GENARR3D_CONTROL -C-- An example of connecting specific fields -C-- to 3 generic 3D control arrays -cc--->>> -cc--->>> COMPILE FAILURE IS DELIBERATE -cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- -cc--->>> -C-- generic - user-defined control vars +C-- generic 3D control variables + + igen_theta0=0 + igen_salt0=0 + igen_kapgm=0 + igen_kapredi=0 + igen_diffkr=0 +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + igen_uvel0=0 + igen_vvel0=0 +# endif +# ifdef ALLOW_PTRACERS + DO iPtr = 1, PTRACERS_num + igen_ptr(iPtr) = 0 + ENDDO +# endif /* ALLOW_PTRACERS */ DO iarr = 1, maxCtrlArr3D + IF (xx_genarr3d_weight(iarr).NE.' ') THEN + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_theta') + & igen_theta0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_salt') + & igen_salt0=iarr + IF (xx_genarr3d_file(iarr)(1:8).EQ.'xx_kapgm') + & igen_kapgm=iarr + IF (xx_genarr3d_file(iarr)(1:10).EQ.'xx_kapredi') + & igen_kapredi=iarr + IF (xx_genarr3d_file(iarr)(1:9).EQ.'xx_diffkr') + & igen_diffkr=iarr +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_uvel') + & igen_uvel0=iarr + IF (xx_genarr3d_file(iarr)(1:7).EQ.'xx_vvel') + & igen_vvel0=iarr +# endif +# ifdef ALLOW_PTRACERS + IF ( usePTRACERS ) THEN + iLen = ILNBLNK(xx_genarr3d_file(iarr)) + IF ( iLen.EQ.7 .AND. + & xx_genarr3d_file(iarr)(1:6).EQ.'xx_ptr' ) THEN + READ(xx_genarr3d_file(iarr)(7:7),*) iPtr + IF ( iPtr.GE.1 .AND. iPtr.LE.PTRACERS_numInUse ) + & igen_ptr(iPtr) = iarr + ENDIF + ENDIF +# endif /* ALLOW_PTRACERS */ + ENDIF + ENDDO - fnamebase = xx_genarr3d_file(iarr) - il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & fnamebase(1:il),'.',optimcycle - CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr3d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax -cc if ( iarr .eq. 1 ) then -cc theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) -cc & + fac*tmpfld3d(i,j,k,bi,bj) -cc elseif ( iarr .eq. 2 ) then -cc salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) -cc & + fac*tmpfld3d(i,j,k,bi,bj) -cc endif - enddo - enddo - enddo - ENDDO - ENDDO -C-- end iarr loop +C-- begin customized code for experiment hs94.1x64x5 +C This is commented out to not interfer with the customized +C for the genarr2d part. Alternatively, one could use +C store directives to avoid additional recomputation warnings. +C IF (igen_theta0.GT.0) +C & CALL CTRL_MAP_GENARR3D( theta, igen_theta0, myThid ) +C IF (igen_salt0.GT.0) +C & CALL CTRL_MAP_GENARR3D( salt, igen_salt0, myThid ) +C--- end customized code +# ifdef ALLOW_KAPGM_CONTROL + IF (igen_kapgm.GT.0) + & CALL CTRL_MAP_GENARR3D( kapGM, igen_kapgm, myThid ) +# endif +# ifdef ALLOW_KAPREDI_CONTROL + IF (igen_kapredi.GT.0) + & CALL CTRL_MAP_GENARR3D( kapRedi, igen_kapredi, myThid ) +# endif +# if ( defined ALLOW_DIFFKR_CONTROL && defined ALLOW_3D_DIFFKR ) + IF (igen_diffkr.GT.0) + & CALL CTRL_MAP_GENARR3D( diffKr, igen_diffkr, myThid ) +# endif + +# ifdef ALLOW_PTRACERS +CADJ loop = parallel + DO iPtr = 1, PTRACERS_num + IF ( igen_ptr(iPtr).GT.0 ) THEN + CALL CTRL_MAP_GENARR3D( pTracer(1-OLx,1-OLy,1,1,1,iPtr), + & igen_ptr(iPtr), myThid ) + ENDIF ENDDO +# endif /* ALLOW_PTRACERS */ -cc _EXCH_XYZ_RL( theta, myThid ) -cc _EXCH_XYZ_RL( salt, myThid ) +# if (defined (ALLOW_UVEL0_CONTROL) && defined (ALLOW_VVEL0_CONTROL)) + IF (igen_uvel0.GT.0 .AND. igen_vvel0.GT.0) THEN + CALL CTRL_MAP_GENARR3D( uVel, igen_uvel0, myThid ) + CALL CTRL_MAP_GENARR3D( vVel, igen_vvel0, myThid ) + CALL EXCH_UV_XYZ_RL( uVel, vVel, .TRUE., myThid ) + ENDIF +# endif #endif /* ALLOW_GENARR3D_CONTROL */ diff --git a/verification/hs94.1x64x5/code_ad/tamc.h b/verification/hs94.1x64x5/code_ad/tamc.h index b761f6c574..099594c86c 100644 --- a/verification/hs94.1x64x5/code_ad/tamc.h +++ b/verification/hs94.1x64x5/code_ad/tamc.h @@ -1,20 +1,20 @@ -C ================================================================ -C HEADER TAMC -C ================================================================ -C -C o Header for the use of the Tangent Linear and Adjoint Model -C Compiler (TAMC). -C -C started: Christian Eckert eckert@mit.edu 04-Feb-1999 -C changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -C - New parameter nlevchk_0 for dimensionalising -C common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -C - nhreads_chkpt was declared at the wrong place -C - new keys, separate for different packages - -C ================================================================ -C HEADER TAMC -C ================================================================ +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP #ifdef ALLOW_AUTODIFF_TAMC C TAMC checkpointing parameters: @@ -24,92 +24,62 @@ C The checkpointing parameters have to be consistent with other model C parameters and variables. This has to be checked before the model is C run. C -C nyears_chkpt :: Number of calendar years affected by the assimilation -C experiment; nyears_chkpt has to be at least equal to -C the result of cal_IntYears(mythid). -C nmonths_chkpt :: Number of months per year; nmonth_chkpt has to be at -C least equal to nmonthyear. -C ndays_chkpt :: Number of days per month; nday_chkpt has to be at least -C equal to nmaxdaymonth. -C nsteps_chkpt :: Number of steps per day; nsteps_chkpt has to be at -C least equal to cal_nStepDay(mythid) -C ncheck_chkpt :: Number of innermost checkpoints. -C -C ngeom_chkpt :: Geometry factor. -C nthreads_chkpt :: Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 36 ) - integer nchklev_2 - parameter( nchklev_2 = 30 ) - integer nchklev_3 - parameter( nchklev_3 = 60 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 36 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 30 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 60 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte - PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers #ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, ikppkey, iptrkey + PARAMETER( maxcube = 1 ) #ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter diff --git a/verification/hs94.1x64x5/code_oad/AUTODIFF_OPTIONS.h b/verification/hs94.1x64x5/code_oad/AUTODIFF_OPTIONS.h index c16137737d..9f494e7955 100644 --- a/verification/hs94.1x64x5/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/hs94.1x64x5/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,10 +48,37 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) +#undef AUTODIFF_PTRACERS_SPLIT_FILES + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/verification/hs94.1x64x5/code_oad/CTRL_SIZE.h b/verification/hs94.1x64x5/code_oad/CTRL_SIZE.h index 54781bfc89..144c4ab9e7 100644 --- a/verification/hs94.1x64x5/code_oad/CTRL_SIZE.h +++ b/verification/hs94.1x64x5/code_oad/CTRL_SIZE.h @@ -2,11 +2,13 @@ c ================================================================== c CTRL_SIZE.h c ================================================================== +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + C Generic control variable array dimension C ---------------------------------------- C -C maxCtrlArr2D :: number of 2-dim. generic control variables -C maxCtrlArr3D :: number of 3-dim. generic control variables +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables C maxCtrlProc :: number of pre-processing options per ctrl variable @@ -22,6 +24,8 @@ C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlProc parameter ( maxCtrlProc = 1 ) +#endif + CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/verification/hs94.1x64x5/code_oad/SIZE.h b/verification/hs94.1x64x5/code_oad/SIZE.h index 06228f2e45..e27f7e68f6 100644 --- a/verification/hs94.1x64x5/code_oad/SIZE.h +++ b/verification/hs94.1x64x5/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/hs94.1x64x5/code_oad/SIZE.h_mpi b/verification/hs94.1x64x5/code_oad/SIZE.h_mpi index 124aaffd7a..a74a3eca97 100644 --- a/verification/hs94.1x64x5/code_oad/SIZE.h_mpi +++ b/verification/hs94.1x64x5/code_oad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/hs94.1x64x5/code_oad/adcommon.h b/verification/hs94.1x64x5/code_oad/adcommon.h deleted file mode 100644 index 5e1c5c541c..0000000000 --- a/verification/hs94.1x64x5/code_oad/adcommon.h +++ /dev/null @@ -1,77 +0,0 @@ -C-- These common blocks are extracted from the -C-- automatically created tangent linear code. -C-- You need to make sure that they are up-to-date -C-- (i.e. in right order), and customize them -C-- accordingly. -C-- -C-- heimbach@mit.edu 11-Jan-2001 - - common /addynvars_r/ - & adetan, - & aduvel, advvel, adwvel, - & adtheta, adsalt, - & adgu, adgv, adgt, adgs, - & adgunm1, adgvnm1, adgtnm1, adgsnm1 - _RL adetan(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - _RL adgs(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgsnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgtnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgu(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgunm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgv(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adgvnm1(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adsalt(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adtheta(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL aduvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL advvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - _RL adwvel(1-olx:snx+olx,1-oly:sny+oly,nr,nsx,nsy) - - common /addynvars_r_2/ - & adetah - _RL adetah(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) - - COMMON /adffields_fu/ adfu - COMMON /adffields_fv/ adfv - COMMON /adffields_Qnet/ adQnet - COMMON /adffields_Qsw/ adQsw - COMMON /adffields_dQdT/ addQdT - COMMON /adffields_EmPmR/ adEmPmR - COMMON /adffields_saltFlux/ adsaltFlux - COMMON /adffields_SST/ adSST - COMMON /adffields_SSS/ adSSS - COMMON /adffields_lambdaThetaClimRelax/ adlambdaThetaClimRelax - COMMON /adffields_lambdaSaltClimRelax/ adlambdaSaltClimRelax -#ifdef ATMOSPHERIC_LOADING - COMMON /adffields_pload/ adpload - COMMON /adffields_sIceLoad/ adsIceLoad -#endif - - _RS adfu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adfv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adQnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adQsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS addQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adEmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsaltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adSST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adSSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaThetaClimRelax - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adlambdaSaltClimRelax - & (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef ATMOSPHERIC_LOADING - _RS adpload (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS adsIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -#ifdef ALLOW_DIFFKR_CONTROL - COMMON /ADDYNVARS_DIFFKR/ - & addiffKr - _RL addiffKr (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif -#ifdef ALLOW_KAPGM_CONTROL - COMMON /ADDYNVARS_KAPGM/ - & adkapgm - _RL adkapgm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif diff --git a/verification/hs94.1x64x5/code_oad/cb2mFiles b/verification/hs94.1x64x5/code_oad/cb2mFiles index ec621be1b5..9043b0e326 100644 --- a/verification/hs94.1x64x5/code_oad/cb2mFiles +++ b/verification/hs94.1x64x5/code_oad/cb2mFiles @@ -1,7 +1,6 @@ SIZE EEPARAMS PARAMS -AUTODIFF AUTODIFF_PARAMS BAR2 BARRIER @@ -14,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +24,7 @@ GAD_SOM_VARS g_cost GLOBAL_MAX GLOBAL_SUM -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -37,5 +35,3 @@ SIGREG SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE -tamc_keys -tamc diff --git a/verification/hs94.1x64x5/code_oad/ctrl_map_gentim2d.F b/verification/hs94.1x64x5/code_oad/ctrl_map_gentim2d.F index 6a0145e62e..b967206252 100644 --- a/verification/hs94.1x64x5/code_oad/ctrl_map_gentim2d.F +++ b/verification/hs94.1x64x5/code_oad/ctrl_map_gentim2d.F @@ -53,7 +53,6 @@ SUBROUTINE CTRL_MAP_GENTIM2D( logical doglobalread logical ladinit character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric _RL fac _RL xx_gentim2d_loc(1-olx:snx+olx,1-oly:sny+oly,nsx,nsy) diff --git a/verification/hs94.1x64x5/code_oad/ctrl_map_ini_genarr.F b/verification/hs94.1x64x5/code_oad/ctrl_map_ini_genarr.F index d89835b3ed..e441c677fd 100644 --- a/verification/hs94.1x64x5/code_oad/ctrl_map_ini_genarr.F +++ b/verification/hs94.1x64x5/code_oad/ctrl_map_ini_genarr.F @@ -12,6 +12,8 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C | control vector to the model state and update the tile halos. C | The control vector is defined in the header file "ctrl.h". C *================================================================= +C | local version for OpenAD exp. hs94.1x64x5 +C *================================================================= C \ev C !USES: @@ -45,19 +47,24 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*( 80) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf + INTEGER bi,bj + INTEGER i,j,k + INTEGER jmin,jmax + INTEGER imin,imax + INTEGER il + INTEGER iarr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif CEOP jmin = 1 @@ -65,8 +72,8 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) imin = 1 imax = sNx - doglobalread = .false. - ladinit = .false. + doglobalread = .FALSE. + ladinit = .FALSE. fac = 1. _d 0 #ifdef ALLOW_GENARR2D_CONTROL @@ -81,24 +88,24 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) fnamebase = xx_genarr2d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr2d_dummy(iarr) ) DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then + DO j = jmin,jmax + DO i = imin,imax + IF ( iarr .EQ. 1 ) THEN theta(i,j,1,bi,bj) = theta(i,j,1,bi,bj) & + tmpfld2d(i,j,bi,bj) - elseif ( iarr .eq. 2 ) then + ELSEIF ( iarr .EQ. 2 ) THEN salt(i,j,1,bi,bj) = salt(i,j,1,bi,bj) & + tmpfld2d(i,j,bi,bj) - endif - enddo - enddo + ENDIF + ENDDO + ENDDO ENDDO ENDDO C-- end iarr loop @@ -121,26 +128,26 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) fnamebase = xx_genarr3d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr3d_dummy(iarr) ) DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax -cc if ( iarr .eq. 1 ) then + DO k = 1,Nr + DO j = jmin,jmax + DO i = imin,imax +cc if ( iarr .EQ. 1 ) then cc theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) cc & + fac*tmpfld3d(i,j,k,bi,bj) -cc elseif ( iarr .eq. 2 ) then +cc ELSEIF ( iarr .EQ. 2 ) then cc salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) cc & + fac*tmpfld3d(i,j,k,bi,bj) cc endif - enddo - enddo - enddo + ENDDO + ENDDO + ENDDO ENDDO ENDDO C-- end iarr loop diff --git a/verification/hs94.1x64x5/code_oad/ctrl_map_ini_gentim2d.F b/verification/hs94.1x64x5/code_oad/ctrl_map_ini_gentim2d.F new file mode 100644 index 0000000000..ac5f8e7cf6 --- /dev/null +++ b/verification/hs94.1x64x5/code_oad/ctrl_map_ini_gentim2d.F @@ -0,0 +1,490 @@ +#include "CTRL_OPTIONS.h" +#ifdef ALLOW_AUTODIFF +# include "AUTODIFF_OPTIONS.h" +#endif + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENTIM2D +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENTIM2D( myThid ) + +C !DESCRIPTION: \bv +C *================================================================ +C | SUBROUTINE CTRL_MAP_INI_GENTIM2D +C | Dimensionalize and preprocess time variable controls. +C *================================================================ +C | Older version (from before Tapenade changes, PR 685) for OpenAD, +C | used in OpenAD test exp. hs94.1x64x5 & halfpipe_streamice +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "optim.h" +#include "ctrl_dummy.h" +#include "CTRL_GENARR.h" +#ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_FIELDS.h" +#endif +#ifdef ALLOW_AUTODIFF_TAMC +# include "tamc.h" +#endif + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +#ifdef ALLOW_GENTIM2D_CONTROL +C !FUNCTIONS: + INTEGER ILNBLNK + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: +C == local variables == + integer iarr + integer numsmo + CHARACTER*(80) fnamegenIn + CHARACTER*(80) fnamegenOut + CHARACTER*(80) fnamegenTmp + CHARACTER*(80) fnamebase + integer startrec + integer endrec + integer diffrec + integer iRec, jrec, kRec, lRec + integer replicated_nrec + integer replicated_ntimes + logical doglobalread + logical ladinit + logical dowc01 + logical dosmooth + logical doscaling + _RL xx_gen(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RS mask2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef ALLOW_ECCO + _RL xx_gen_tmp(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + integer nyearsINT + _RL recip_nyearsRL +#endif + integer bi,bj + integer i,j,k2 + integer ilgen + integer ilDir +CEOP + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_ENTER('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ + +C-- Now, read the control vector. + doglobalread = .false. + ladinit = .false. + +C Find ctrlDir (w/o trailing blanks) length + ilDir = ilnblnk(ctrlDir) + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gen(i,j,bi,bj)=0. _d 0 +#ifdef ALLOW_ECCO + xx_gen_tmp(i,j,bi,bj)=0. _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO + +C-- generic 2D control variables + DO iarr = 1, maxCtrlTim2D + + diffrec=0 + startrec=0 + endrec=0 + +#ifndef ALLOW_OPENAD + if (xx_gentim2d_weight(iarr).NE.' ') then +#endif + + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase = xx_gentim2d_file(iarr)(1:ilgen) + call ctrl_init_rec ( fnamebase, + I xx_gentim2d_startdate1(iarr), + I xx_gentim2d_startdate2(iarr), + I xx_gentim2d_period(iarr), + I 1, + O xx_gentim2d_startdate(1,iarr), + O diffrec, startrec, endrec, + I myThid ) + +C From CTRL_INIT_REC one gets [start,end,diff]rec. +C Below, file xx_*.$iter.data is read in from records startrec to endrec, +C followed by a write to file xx_*.effective.$iter.data of record 1 to diffrec +C (see TAF-generated S/R ctrl_map_ini_gentim2dmd). + +#ifdef ALLOW_CTRL_DEBUG +C Note: In the "md" (i.e. TAF modified) version of this fwd S/R, DEBUG calls and +C print statements are removed. See "Automatic Differentiation" chap. in the doc + write(*,*) 'AA: iarr,xx_gentim2d_startdate(1,iarr): ', + & iarr,xx_gentim2d_startdate(1,iarr) +#endif + dosmooth=.false. + dowc01 = .false. + doscaling=.true. + + numsmo=1 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'WC01') then + dowc01=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if ((.NOT.dowc01).AND. + & (xx_gentim2d_preproc(k2,iarr).EQ.'smooth')) then + dosmooth=.TRUE. + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) + & numsmo=xx_gentim2d_preproc_i(k2,iarr) + endif + if (xx_gentim2d_preproc(k2,iarr).EQ.'noscaling') then + doscaling=.FALSE. + endif + enddo + + ilgen=ilnblnk( xx_gentim2d_file(iarr) ) + fnamebase = xx_gentim2d_file(iarr)(1:ilgen) + write(fnamegenIn(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.',optimcycle + write(fnamegenOut(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.effective.',optimcycle + write(fnamegenTmp(1:80),'(2a,i10.10)') + & ctrlDir(1:ilDir)//fnamebase(1:ilgen),'.tmp.',optimcycle + +C-- docycle + + replicated_nrec=diffrec + replicated_ntimes=0 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'docycle') then + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif + endif + enddo + +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AD:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec, endrec, diffrec, + & replicated_nrec,replicated_ntimes +#endif + DO jrec = 1, replicated_ntimes+1 + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=replicated_nrec*(jrec-1)+iRec + lRec=startrec+iRec-1 + IF (kRec.LE.endrec) THEN +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenIn ) + write(*,*) 'AE: iarr,[i,j,k,l]rec: ',iarr,iRec,jrec,lRec + write(*,*) 'AF: fnamegenIn: ', fnamegenIn(1:ilgen) +#endif +C fnamegenIn is xx_*.$iter.data, so the required access records starts at +C startrec+iRec-1 instead of iRec in the read call below. In adjoint mode, S/R +C ADACTIVE_READ_XY reads adxx_*.$iter.data in reverse order, with required +C access from endrec back to startrec. This requires creating adxx_*.$iter.data +C file of size endrec, with valid gradients from records startrec to endrec +C but all zeros from 1 to startrec-1. See documentation: +C https://mitgcm.readthedocs.io/en/latest/ocean_state_est/ocean_state_est.html#ctrl-model-parameter-adjustment-capability +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenIn, xx_gen, lRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenIn, xx_gen, lRec, 1, myThid ) +#endif +C Here, we write record kRec (from 1 to diffrec) to file xx_*.effective.$iter +#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AG: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + write(*,*) 'AH: fnamegenOut: ', fnamegenOut(1:ilgen) +#endif + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, kRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) +#endif + ENDIF + ENDDO + ENDDO + +C-- rmcycle +#ifdef ALLOW_ECCO + replicated_nrec=diffrec + replicated_ntimes=0 + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'rmcycle') then + if (xx_gentim2d_preproc_i(k2,iarr).NE.0) then + replicated_nrec=min(diffrec,xx_gentim2d_preproc_i(k2,iarr)) + replicated_ntimes= + & int(float(diffrec)/float(replicated_nrec)) + if (replicated_ntimes*replicated_nrec.LT.diffrec) + & replicated_ntimes=replicated_ntimes+1 + if (replicated_ntimes*replicated_nrec.GT.diffrec) + & replicated_ntimes=replicated_ntimes-1 + endif + endif + enddo + +#ifdef ALLOW_CTRL_DEBUG + write(*,'(A,1x,5I6)') + & 'AI:[start,end,diff]rec, replicated_[nrec,ntimes]: ', + & startrec,endrec,diffrec,replicated_nrec,replicated_ntimes +#endif + + IF (replicated_ntimes.GT.0) THEN + +C create cyclic average + + nyearsINT=1+int((diffrec-replicated_nrec)/replicated_nrec) + recip_nyearsRL=1. _d 0/float(nyearsINT) + +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AJ: nyears[INT,RL]: ',nyearsINT,recip_nyearsRL +#endif + + DO iRec = 1, replicated_nrec + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + xx_gen(i,j,bi,bj) = zeroRL + ENDDO + ENDDO + ENDDO + ENDDO + + DO jrec=1,nyearsINT +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=iRec+(jrec-1)*replicated_nrec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AK: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AL: fnamegenOut: ',fnamegenOut(1:ilgen) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen_tmp, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen_tmp, kRec, + & 1, myThid ) +#endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) + & +xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +C end jrec + ENDDO + + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj) = xx_gen(i,j,bi,bj) * recip_nyearsRL + ENDDO + ENDDO + ENDDO + ENDDO + +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenTmp, xx_gen, iRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenTmp, xx_gen, iRec, 1, myThid ) +#endif + + ENDDO + +C subtract cyclic average + DO jrec = 1, replicated_ntimes+1 + DO iRec = 1, replicated_nrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + kRec=replicated_nrec*(jrec-1)+iRec +#ifdef ALLOW_CTRL_DEBUG + write(*,*) 'AM: iarr,[i,j,k]rec: ',iarr,iRec,jrec,kRec + ilgen=ilnblnk( fnamegenOut ) + write(*,*) 'AN: fnamegenOut: ',fnamegenOut(1:ilgen) +#endif + IF (kRec.LE.diffrec) THEN +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen, kRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, myThid ) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenTmp, xx_gen_tmp, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenTmp, xx_gen_tmp, iRec, 1, + & myThid ) +#endif + DO bj=myByLo(myThid),myByHi(myThid) + DO bi=myBxLo(myThid),myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & -xx_gen_tmp(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, kRec, + & optimcycle, myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, kRec, 1, + & myThid ) +#endif + ENDIF + ENDDO + ENDDO + + ENDIF +#endif /* ifdef ALLOW_ECCO */ + +C-- scaling and smoothing + +C The access of records startrec to endrec in xx_*.*iter was already +C done correctly above. From here, we read in xx_*.effective.$iter.data +C of size diffrec, so no more fix of record is needed from here on out. + DO iRec = 1, diffrec +#ifdef ALLOW_AUTODIFF_TAMC +CADJ STORE xx_gentim2d_dummy = dummytape, key = 1 , kind = isbyte +#endif + +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + lRec=startrec+iRec-1 + write(*,'(A,1x,A,1x,2I6)') 'AO: fnamegenOut, iRec,lRec ', + & fnamegenOut(1:ilgen),iRec,lRec +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_READ_XY( fnamegenOut, xx_gen, iRec, + & doglobalread, ladinit, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL READ_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) +#endif + +#ifndef ALLOW_OPENAD + jrec=1 +C Not clear which record to use for timevariable weights ; +C For now, just assumes records from startrec to endrec are available in file + do k2 = 1, maxCtrlProc + if (xx_gentim2d_preproc(k2,iarr).EQ.'variaweight') then + jrec=startrec+iRec-1 + endif + enddo + CALL READ_REC_3D_RL( xx_gentim2d_weight(iarr), ctrlprec, 1, + & wgentim2d(1-OLx,1-OLy,1,1,iarr), jrec, 1, myThid ) + +C-- Get appropriate mask + call ctrl_get_mask2D(xx_gentim2d_file(iarr), mask2D, myThid) + +#ifdef ALLOW_SMOOTH + IF (useSMOOTH) THEN + IF (dowc01) call smooth_correl2d(xx_gen,mask2D,numsmo,myThid) + IF (dosmooth) call smooth2d(xx_gen,mask2D,numsmo,myThid) + ENDIF +#endif /* ALLOW_SMOOTH */ + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + if ((mask2D(i,j,bi,bj).NE.0.).AND. + & (wgentim2d(i,j,bi,bj,iarr).GT.0.)) then + IF (doscaling) then + xx_gen(i,j,bi,bj)=xx_gen(i,j,bi,bj) + & /sqrt(wgentim2d(i,j,bi,bj,iarr)) + ENDIF ! IF (doscaling) then + else + xx_gen(i,j,bi,bj)=0. _d 0 + endif + ENDDO + ENDDO + ENDDO + ENDDO +#endif /* ALLOW_OPENAD */ + + CALL CTRL_BOUND_2D(xx_gen,mask2D, + & xx_gentim2d_bounds(1,iarr),myThid) + + CALL EXCH_XY_RL ( xx_gen , myThid ) + +#ifdef ALLOW_CTRL_DEBUG + ilgen=ilnblnk( fnamegenOut ) + write(*,'(A,1x,I6,1x,A)') + & 'AQ: iRec,fnamegenOut: ',iRec,fnamegenOut(1:ilgen) +#endif +#ifdef ALLOW_AUTODIFF + CALL ACTIVE_WRITE_XY( fnamegenOut, xx_gen, iRec, optimcycle, + & myThid, xx_gentim2d_dummy(iarr) ) +#else + CALL WRITE_REC_XY_RL( fnamegenOut, xx_gen, iRec, 1, myThid ) +#endif +C-- end iRec loop + ENDDO + +#ifndef ALLOW_OPENAD + endif +#endif + +C-- end iarr loop + ENDDO + +#ifdef ALLOW_DEBUG + IF (debugMode) CALL DEBUG_LEAVE('CTRL_MAP_INI_GENTIM2D',myThid) +#endif /* ALLOW_DEBUG */ +#endif /* ALLOW_GENTIM2D_CONTROL */ + + RETURN + END diff --git a/verification/internal_wave/code/SIZE.h b/verification/internal_wave/code/SIZE.h index b001b7f087..a3e4bc3ae0 100644 --- a/verification/internal_wave/code/SIZE.h +++ b/verification/internal_wave/code/SIZE.h @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/internal_wave/code/SIZE.h_mpi b/verification/internal_wave/code/SIZE.h_mpi index 479fda9d2c..12d7cefe91 100644 --- a/verification/internal_wave/code/SIZE.h_mpi +++ b/verification/internal_wave/code/SIZE.h_mpi @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/internal_wave/results/output.kl10.txt b/verification/internal_wave/results/output.kl10.txt index 8dc65b0bd3..4dee71b1a0 100644 --- a/verification/internal_wave/results/output.kl10.txt +++ b/verification/internal_wave/results/output.kl10.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 12:17:54 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68n +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Feb 16 18:03:56 EST 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -197,7 +199,6 @@ pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) pkg/monitor compiled and used ( monitorFreq > 0. = T ) - pkg/timeave compiled but not used ( taveFreq > 0. = F ) pkg/debug compiled but not used ( debugMode = F ) pkg/rw compiled and used pkg/mdsio compiled and used @@ -504,9 +505,49 @@ (PID.TID 0000.0001) -4.332310000000000E-02, /* K = 19 */ (PID.TID 0000.0001) -4.842000000000000E-02 /* K = 20 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 20 @ 3.500000000000000E+01 /* K = 1: 20 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02, /* K = 1 */ +(PID.TID 0000.0001) 9.998010191761240E+02, /* K = 2 */ +(PID.TID 0000.0001) 9.998020383322520E+02, /* K = 3 */ +(PID.TID 0000.0001) 9.998030574883800E+02, /* K = 4 */ +(PID.TID 0000.0001) 9.998040766645040E+02, /* K = 5 */ +(PID.TID 0000.0001) 9.998050958206320E+02, /* K = 6 */ +(PID.TID 0000.0001) 9.998061149967559E+02, /* K = 7 */ +(PID.TID 0000.0001) 9.998071341528839E+02, /* K = 8 */ +(PID.TID 0000.0001) 9.998081533170104E+02, /* K = 9 */ +(PID.TID 0000.0001) 9.998091724811368E+02, /* K = 10 */ +(PID.TID 0000.0001) 9.998101916452631E+02, /* K = 11 */ +(PID.TID 0000.0001) 9.998112108093895E+02, /* K = 12 */ +(PID.TID 0000.0001) 9.998122299735160E+02, /* K = 13 */ +(PID.TID 0000.0001) 9.998132491296440E+02, /* K = 14 */ +(PID.TID 0000.0001) 9.998142683057680E+02, /* K = 15 */ +(PID.TID 0000.0001) 9.998152874618960E+02, /* K = 16 */ +(PID.TID 0000.0001) 9.998163066380199E+02, /* K = 17 */ +(PID.TID 0000.0001) 9.998173257941479E+02, /* K = 18 */ +(PID.TID 0000.0001) 9.998183449502759E+02, /* K = 19 */ +(PID.TID 0000.0001) 9.998193641263999E+02 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 1.000011779999999E-06, /* K = 2 */ +(PID.TID 0000.0001) 9.999921600000012E-07, /* K = 3 */ +(PID.TID 0000.0001) 9.999921599999997E-07, /* K = 4 */ +(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 5 */ +(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 6 */ +(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 7 */ +(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 8 */ +(PID.TID 0000.0001) 5 @ 1.000000008000000E-06, /* K = 9: 13 */ +(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 14 */ +(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 15 */ +(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 16 */ +(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 17 */ +(PID.TID 0000.0001) 9.999921599999997E-07, /* K = 18 */ +(PID.TID 0000.0001) 9.999921600000012E-07, /* K = 19 */ +(PID.TID 0000.0001) 1.000011779999999E-06 /* K = 20 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -600,7 +641,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -610,6 +651,9 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -664,28 +708,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 5.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 5.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 2.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -707,7 +754,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -716,10 +763,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -761,8 +808,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) F @@ -783,41 +831,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -881,6 +907,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 64 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -900,14 +932,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -924,6 +959,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1002,9 +1040,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1062,6 +1097,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1228,30 +1275,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ -(PID.TID 0000.0001) 1.000011779999999E-06, /* K = 2 */ -(PID.TID 0000.0001) 9.999921600000012E-07, /* K = 3 */ -(PID.TID 0000.0001) 9.999921599999997E-07, /* K = 4 */ -(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 5 */ -(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 6 */ -(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 7 */ -(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 8 */ -(PID.TID 0000.0001) 5 @ 1.000000008000000E-06, /* K = 9: 13 */ -(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 14 */ -(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 15 */ -(PID.TID 0000.0001) 9.999921600000005E-07, /* K = 16 */ -(PID.TID 0000.0001) 1.000011780000000E-06, /* K = 17 */ -(PID.TID 0000.0001) 9.999921599999997E-07, /* K = 18 */ -(PID.TID 0000.0001) 9.999921600000012E-07, /* K = 19 */ -(PID.TID 0000.0001) 1.000011779999999E-06 /* K = 20 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2439,35 +2462,35 @@ cg2d: Sum(rhs),rhsMax = -5.04585522670409E-14 9.70902293006944E-04 cg2d: Sum(rhs),rhsMax = -5.12842806416058E-14 9.46267223728360E-04 cg2d: Sum(rhs),rhsMax = -5.19584375524573E-14 9.09994249340564E-04 - cg2d: Sum(rhs),rhsMax = -5.16850017645565E-14 8.54222199267354E-04 - cg2d: Sum(rhs),rhsMax = -4.08017803571470E-14 8.68985283078874E-04 - cg2d: Sum(rhs),rhsMax = -3.51621943367464E-14 9.52593730969685E-04 - cg2d: Sum(rhs),rhsMax = -3.83703485651310E-14 1.03161930528586E-03 - cg2d: Sum(rhs),rhsMax = -3.58632394614755E-14 1.09976339307164E-03 - cg2d: Sum(rhs),rhsMax = -3.54746614028567E-14 1.15808124421772E-03 - cg2d: Sum(rhs),rhsMax = -3.24414974051113E-14 1.20082431622313E-03 - cg2d: Sum(rhs),rhsMax = -3.49538106791947E-14 1.22855121676511E-03 - cg2d: Sum(rhs),rhsMax = -3.13542594665428E-14 1.23663319536074E-03 - cg2d: Sum(rhs),rhsMax = -3.11059771690436E-14 1.22562350907781E-03 - cg2d: Sum(rhs),rhsMax = -3.58766835684143E-14 1.19265288792444E-03 - cg2d: Sum(rhs),rhsMax = -3.80956117346232E-14 1.13873261382876E-03 - cg2d: Sum(rhs),rhsMax = -4.54454182619024E-14 1.06327099598526E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.76949128704520E-01 + cg2d: Sum(rhs),rhsMax = -5.25731801842566E-14 8.54222199267354E-04 + cg2d: Sum(rhs),rhsMax = -5.34459629331074E-14 8.68985283077700E-04 + cg2d: Sum(rhs),rhsMax = -4.58556803639709E-14 9.52593730980094E-04 + cg2d: Sum(rhs),rhsMax = -4.00135653777500E-14 1.03161930525827E-03 + cg2d: Sum(rhs),rhsMax = -3.77517028055108E-14 1.09976339309723E-03 + cg2d: Sum(rhs),rhsMax = -3.80268733168876E-14 1.15808124419826E-03 + cg2d: Sum(rhs),rhsMax = -3.18703397006459E-14 1.20082431626698E-03 + cg2d: Sum(rhs),rhsMax = -3.05580213910694E-14 1.22855121672797E-03 + cg2d: Sum(rhs),rhsMax = -3.09470331305572E-14 1.23663319536845E-03 + cg2d: Sum(rhs),rhsMax = -2.44455063830307E-14 1.22562350907319E-03 + cg2d: Sum(rhs),rhsMax = -1.81612537508702E-14 1.19265288792173E-03 + cg2d: Sum(rhs),rhsMax = -1.57556259705594E-14 1.13873261383873E-03 + cg2d: Sum(rhs),rhsMax = -1.43231780602715E-14 1.06327099598444E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.76949128717064E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 1.52008575258891E-19 +(PID.TID 0000.0001) cg2d_last_res = 4.41266899139536E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 192 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1665962696567E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1273745511042E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8521874928843E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.7288335970618E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.7795278421213E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1665962696443E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1273745511109E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.8332020582305E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.7288335970716E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.7795278421860E-06 (PID.TID 0000.0001) %MON dynstat_uvel_max = 5.1778510562934E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -3.6470916113200E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7541501759887E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7541501761272E-08 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0435153305768E-02 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9027174454016E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 @@ -2492,12 +2515,12 @@ (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.4467820871095E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2474766860952E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2474766860951E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0686617405658E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2594933421471E-01 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2594933421471E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.1938422629146E-10 +(PID.TID 0000.0001) %MON pe_b_mean = 2.1938422629210E-10 (PID.TID 0000.0001) %MON ke_max = 6.7025353902896E-04 (PID.TID 0000.0001) %MON ke_mean = 5.4119732332699E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 @@ -2507,8 +2530,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.5844069695047E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5953412646759E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.5844069634644E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -7.6231634722904E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2523,52 +2546,52 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.05916922938221E-14 1.02957924196607E-03 - cg2d: Sum(rhs),rhsMax = -4.69379309725459E-14 1.12759296640520E-03 - cg2d: Sum(rhs),rhsMax = -4.43208837686004E-14 1.21313545886452E-03 - cg2d: Sum(rhs),rhsMax = -4.32488246604468E-14 1.28859345331956E-03 - cg2d: Sum(rhs),rhsMax = -4.60664492663021E-14 1.34497097005346E-03 - cg2d: Sum(rhs),rhsMax = -4.09596401934609E-14 1.38548904931372E-03 - cg2d: Sum(rhs),rhsMax = -4.42246066156837E-14 1.40107728175300E-03 - cg2d: Sum(rhs),rhsMax = -4.39028154108900E-14 1.39642007427957E-03 - cg2d: Sum(rhs),rhsMax = -4.44462175397398E-14 1.36316150067108E-03 - cg2d: Sum(rhs),rhsMax = -4.57301297523971E-14 1.30798689876365E-03 - cg2d: Sum(rhs),rhsMax = -4.52602365308419E-14 1.22390573325209E-03 - cg2d: Sum(rhs),rhsMax = -5.39100014629312E-14 1.11986628746767E-03 - cg2d: Sum(rhs),rhsMax = -4.44639984553685E-14 1.22548372757978E-03 - cg2d: Sum(rhs),rhsMax = -4.15097643757800E-14 1.34392336242211E-03 - cg2d: Sum(rhs),rhsMax = -3.28959949558172E-14 1.44647191665101E-03 - cg2d: Sum(rhs),rhsMax = -3.58259429067420E-14 1.53321793694351E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.49831032002671E-01 + cg2d: Sum(rhs),rhsMax = -1.49979854924265E-14 1.02957924193221E-03 + cg2d: Sum(rhs),rhsMax = -1.75582205025338E-14 1.12759296645931E-03 + cg2d: Sum(rhs),rhsMax = -1.21233318522984E-14 1.21313545882983E-03 + cg2d: Sum(rhs),rhsMax = -1.51888050747839E-14 1.28859345334718E-03 + cg2d: Sum(rhs),rhsMax = -1.79513522102770E-14 1.34497097003113E-03 + cg2d: Sum(rhs),rhsMax = -1.51586642543888E-14 1.38548904933639E-03 + cg2d: Sum(rhs),rhsMax = -1.74851452761082E-14 1.40107728173444E-03 + cg2d: Sum(rhs),rhsMax = -1.22477982616997E-14 1.39642007429065E-03 + cg2d: Sum(rhs),rhsMax = -1.44550170444457E-14 1.36316150064892E-03 + cg2d: Sum(rhs),rhsMax = -2.29191665646056E-14 1.30798689877299E-03 + cg2d: Sum(rhs),rhsMax = -2.35107072699137E-14 1.22390573323663E-03 + cg2d: Sum(rhs),rhsMax = -2.88358746602935E-14 1.11986628747517E-03 + cg2d: Sum(rhs),rhsMax = -2.51391789329869E-14 1.22548372759582E-03 + cg2d: Sum(rhs),rhsMax = -1.87621185948617E-14 1.34392336242029E-03 + cg2d: Sum(rhs),rhsMax = -1.78054185978604E-14 1.44647191663980E-03 + cg2d: Sum(rhs),rhsMax = -1.73422474297746E-14 1.53321793698021E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.49831032070397E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 7.19290561077092E-20 +(PID.TID 0000.0001) cg2d_last_res = 5.58662625986797E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 208 (PID.TID 0000.0001) %MON time_secondsf = 9.3600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0573563212176E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.4517703951632E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1432769668451E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9407941217510E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5308962051591E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0573563212056E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.4517703951895E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0315789792974E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9407941217671E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5308962051825E-06 (PID.TID 0000.0001) %MON dynstat_uvel_max = 4.8306404239024E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -3.7990590207540E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5846727112713E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5846727096242E-08 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0369625879362E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1575764291254E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1575764291255E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.9372032474182E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3039308295879E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.9372032474181E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3039308295881E-03 (PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.9668907112398E-05 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5735770404947E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.6670274100176E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.6670274100177E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9558802327039E-02 -(PID.TID 0000.0001) %MON dynstat_theta_min = -4.9931221740984E-02 +(PID.TID 0000.0001) %MON dynstat_theta_min = -4.9931221740986E-02 (PID.TID 0000.0001) %MON dynstat_theta_mean = 1.4562624075247E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8123851637367E-02 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.2555551389974E-04 @@ -2577,15 +2600,15 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4816594052245E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0247183692246E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0247183692247E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2495563585617E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 9.9700059876782E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2217414613382E-01 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2217414613382E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.3342326898602E-10 -(PID.TID 0000.0001) %MON ke_max = 6.5954539462235E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3342326898710E-10 +(PID.TID 0000.0001) %MON ke_max = 6.5954539462234E-04 (PID.TID 0000.0001) %MON ke_mean = 5.2963739242807E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 @@ -2594,8 +2617,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6026903270904E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.9553294468831E-18 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6026903351144E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.5774570115921E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2610,55 +2633,55 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.58914287179601E-14 1.59676743944946E-03 - cg2d: Sum(rhs),rhsMax = -3.92407460692024E-14 1.63713347455082E-03 - cg2d: Sum(rhs),rhsMax = -4.19946195873155E-14 1.64860959149699E-03 - cg2d: Sum(rhs),rhsMax = -4.54608139327517E-14 1.63185711077265E-03 - cg2d: Sum(rhs),rhsMax = -4.69223184612622E-14 1.58368903078486E-03 - cg2d: Sum(rhs),rhsMax = -5.51284278643704E-14 1.50595024602907E-03 - cg2d: Sum(rhs),rhsMax = -6.10284392466021E-14 1.39847315817900E-03 - cg2d: Sum(rhs),rhsMax = -7.36023655217855E-14 1.26446841048532E-03 - cg2d: Sum(rhs),rhsMax = -7.63278329429795E-14 1.24304153399245E-03 - cg2d: Sum(rhs),rhsMax = -7.54602543645566E-14 1.37602555029215E-03 - cg2d: Sum(rhs),rhsMax = -7.03389169826041E-14 1.49697859655618E-03 - cg2d: Sum(rhs),rhsMax = -6.66574000857123E-14 1.59621430564231E-03 - cg2d: Sum(rhs),rhsMax = -6.53986413634566E-14 1.67531998813536E-03 - cg2d: Sum(rhs),rhsMax = -6.32039993259115E-14 1.72476261930395E-03 - cg2d: Sum(rhs),rhsMax = -6.80976542516420E-14 1.74787645966488E-03 - cg2d: Sum(rhs),rhsMax = -6.95446304710412E-14 1.73621129868193E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.49858529822403E-01 + cg2d: Sum(rhs),rhsMax = -2.02197199955512E-14 1.59676743941140E-03 + cg2d: Sum(rhs),rhsMax = -2.38099470695197E-14 1.63713347459924E-03 + cg2d: Sum(rhs),rhsMax = -2.54546817651802E-14 1.64860959144364E-03 + cg2d: Sum(rhs),rhsMax = -2.72314722854494E-14 1.63185711082375E-03 + cg2d: Sum(rhs),rhsMax = -2.30937231143757E-14 1.58368903072217E-03 + cg2d: Sum(rhs),rhsMax = -2.51187959321442E-14 1.50595024609090E-03 + cg2d: Sum(rhs),rhsMax = -3.08587790737169E-14 1.39847315812399E-03 + cg2d: Sum(rhs),rhsMax = -3.70042538277993E-14 1.26446841051429E-03 + cg2d: Sum(rhs),rhsMax = -3.40771248025229E-14 1.24304153396088E-03 + cg2d: Sum(rhs),rhsMax = -3.07692239742696E-14 1.37602555032894E-03 + cg2d: Sum(rhs),rhsMax = -3.16639076070047E-14 1.49697859651376E-03 + cg2d: Sum(rhs),rhsMax = -2.66761439327023E-14 1.59621430570780E-03 + cg2d: Sum(rhs),rhsMax = -2.22415402068021E-14 1.67531998807101E-03 + cg2d: Sum(rhs),rhsMax = -2.33424390927439E-14 1.72476261935902E-03 + cg2d: Sum(rhs),rhsMax = -2.33649904979316E-14 1.74787645961295E-03 + cg2d: Sum(rhs),rhsMax = -2.17582028783081E-14 1.73621129873486E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.49858529762830E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 1.24757258049549E-19 +(PID.TID 0000.0001) cg2d_last_res = 1.31457509585693E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 224 (PID.TID 0000.0001) %MON time_secondsf = 1.0080000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0316892878301E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5371461971921E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.4225261033472E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.0487738774803E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.1174550744044E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4193371074557E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.1113570889661E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.2920845594854E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1186229760731E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.4663765045420E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0316892878555E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.5371461972167E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3337585350105E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.0487738774937E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.1174550744592E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4193371074558E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.1113570889660E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.2920845636643E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1186229760732E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.4663765045425E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8958034867717E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9108710218485E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8958034867720E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9108710218486E-03 (PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5186343911510E-04 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6155603039201E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.5197254381294E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.5197254381300E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9570999047771E-02 -(PID.TID 0000.0001) %MON dynstat_theta_min = -4.9714947590963E-02 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.5032374072286E-02 +(PID.TID 0000.0001) %MON dynstat_theta_min = -4.9714947590964E-02 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.5032374072287E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.7936716674474E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3854515239434E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3854515239435E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 @@ -2666,14 +2689,14 @@ (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.2094753340669E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.6166631191604E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.6166631191603E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3248932601478E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6598919598318E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6598919598318E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.4074261816259E-10 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6598919598319E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6598919598319E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.4074261816351E-10 (PID.TID 0000.0001) %MON ke_max = 1.0301972224790E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.0268863088198E-05 +(PID.TID 0000.0001) %MON ke_mean = 6.0268863088200E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2681,8 +2704,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5090503258878E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.2024981138567E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.5090503286420E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2355299855839E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2697,70 +2720,70 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.06585397830528E-14 1.69552320669698E-03 - cg2d: Sum(rhs),rhsMax = -7.84392082536778E-14 1.61914619594139E-03 - cg2d: Sum(rhs),rhsMax = -8.40287041337096E-14 1.51555021926408E-03 - cg2d: Sum(rhs),rhsMax = -9.22395840263768E-14 1.38010839238016E-03 - cg2d: Sum(rhs),rhsMax = -1.04585827845338E-13 1.22923760323645E-03 - cg2d: Sum(rhs),rhsMax = -9.50556907491906E-14 1.37137160256469E-03 - cg2d: Sum(rhs),rhsMax = -8.84776193282866E-14 1.50050914861871E-03 - cg2d: Sum(rhs),rhsMax = -8.40594954754081E-14 1.60887575273203E-03 - cg2d: Sum(rhs),rhsMax = -8.07572324984518E-14 1.69560379511259E-03 - cg2d: Sum(rhs),rhsMax = -8.25992919895047E-14 1.75478341858744E-03 - cg2d: Sum(rhs),rhsMax = -8.06949992937511E-14 1.78604456075195E-03 - cg2d: Sum(rhs),rhsMax = -8.46206785198866E-14 1.78585793771984E-03 - cg2d: Sum(rhs),rhsMax = -8.88523195990976E-14 1.75499619392354E-03 - cg2d: Sum(rhs),rhsMax = -9.03404955010512E-14 1.69275108819395E-03 - cg2d: Sum(rhs),rhsMax = -9.74742205353540E-14 1.60112267158116E-03 - cg2d: Sum(rhs),rhsMax = -1.07020295403437E-13 1.48219711225221E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.80021181199887E-01 + cg2d: Sum(rhs),rhsMax = -2.07388359957372E-14 1.69552320664788E-03 + cg2d: Sum(rhs),rhsMax = -2.57257323083016E-14 1.61914619599350E-03 + cg2d: Sum(rhs),rhsMax = -2.95698795310662E-14 1.51555021920372E-03 + cg2d: Sum(rhs),rhsMax = -3.27266425764750E-14 1.38010839245020E-03 + cg2d: Sum(rhs),rhsMax = -4.00558492624770E-14 1.22923760331348E-03 + cg2d: Sum(rhs),rhsMax = -3.70656196707619E-14 1.37137160246534E-03 + cg2d: Sum(rhs),rhsMax = -3.94718979723763E-14 1.50050914871327E-03 + cg2d: Sum(rhs),rhsMax = -4.12616989187153E-14 1.60887575263989E-03 + cg2d: Sum(rhs),rhsMax = -3.84750824949931E-14 1.69560379518869E-03 + cg2d: Sum(rhs),rhsMax = -3.97960744219494E-14 1.75478341850936E-03 + cg2d: Sum(rhs),rhsMax = -3.84346417539594E-14 1.78604456083065E-03 + cg2d: Sum(rhs),rhsMax = -3.66054842687591E-14 1.78585793765278E-03 + cg2d: Sum(rhs),rhsMax = -3.67335285453296E-14 1.75499619399803E-03 + cg2d: Sum(rhs),rhsMax = -3.47482459472914E-14 1.69275108812950E-03 + cg2d: Sum(rhs),rhsMax = -3.49059973633881E-14 1.60112267164531E-03 + cg2d: Sum(rhs),rhsMax = -3.93057981995515E-14 1.48219711219713E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.80021181276208E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 1.37074890700456E-19 +(PID.TID 0000.0001) cg2d_last_res = 4.80051182084654E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 240 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.9126852844089E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3053508835517E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.9770793917944E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.0021810118066E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.4956641357315E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.9126852840640E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3053508835486E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.0548296092632E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.0021810117996E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.4956641357146E-06 (PID.TID 0000.0001) %MON dynstat_uvel_max = 7.3178660838128E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.5891978534588E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3523741769209E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1525238858664E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7662995629442E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.5891978534589E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3523741804611E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1525238858665E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7662995629450E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4724457900975E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9199942380266E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.0563594506701E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6571839466601E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.5407425825827E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9199942380268E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.0563594506700E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6571839466600E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.5407425825825E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9611136415774E-02 -(PID.TID 0000.0001) %MON dynstat_theta_min = -5.0202361135683E-02 +(PID.TID 0000.0001) %MON dynstat_theta_min = -5.0202361135686E-02 (PID.TID 0000.0001) %MON dynstat_theta_mean = 1.5462791640563E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.7758371603812E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5415287383676E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5415287383679E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4816594052245E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.3535089338642E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.3535089338643E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7446933986638E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7446933986636E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5103415338396E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6639974071120E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6639974071120E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.3757048738533E-10 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6639974071121E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6639974071121E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3757048738486E-10 (PID.TID 0000.0001) %MON ke_max = 1.3387791005154E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.5919633033545E-05 +(PID.TID 0000.0001) %MON ke_mean = 6.5919633033558E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2768,8 +2791,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.6830457014946E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.7529189518035E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.6830457015752E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.8163911448881E-18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2784,70 +2807,70 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.20891035897130E-13 1.33894568670726E-03 - cg2d: Sum(rhs),rhsMax = -1.28675065394490E-13 1.23480263156216E-03 - cg2d: Sum(rhs),rhsMax = -1.14182643375094E-13 1.36592343009539E-03 - cg2d: Sum(rhs),rhsMax = -1.01436654215137E-13 1.48679074852582E-03 - cg2d: Sum(rhs),rhsMax = -9.79998417485750E-14 1.58220312082829E-03 - cg2d: Sum(rhs),rhsMax = -9.02140775277394E-14 1.66104352344925E-03 - cg2d: Sum(rhs),rhsMax = -9.44875146006996E-14 1.70883017624321E-03 - cg2d: Sum(rhs),rhsMax = -9.06474331360818E-14 1.73605616744434E-03 - cg2d: Sum(rhs),rhsMax = -8.96223199819968E-14 1.72954155075305E-03 - cg2d: Sum(rhs),rhsMax = -9.08627556875374E-14 1.70166734631015E-03 - cg2d: Sum(rhs),rhsMax = -9.48387961045849E-14 1.64090452125885E-03 - cg2d: Sum(rhs),rhsMax = -9.45752807665623E-14 1.56140218328503E-03 - cg2d: Sum(rhs),rhsMax = -1.05779941013059E-13 1.45323340890756E-03 - cg2d: Sum(rhs),rhsMax = -1.18142366549445E-13 1.33182544089365E-03 - cg2d: Sum(rhs),rhsMax = -1.31146351780740E-13 1.18843716275896E-03 - cg2d: Sum(rhs),rhsMax = -1.20267511227734E-13 1.24840850479664E-03 -(PID.TID 0000.0001) cg2d_init_res = 2.03190050750445E-01 + cg2d: Sum(rhs),rhsMax = -4.20707305798240E-14 1.33894568674907E-03 + cg2d: Sum(rhs),rhsMax = -4.38999964852416E-14 1.23480263160800E-03 + cg2d: Sum(rhs),rhsMax = -3.66813784208331E-14 1.36592343003162E-03 + cg2d: Sum(rhs),rhsMax = -2.96165002244830E-14 1.48679074858463E-03 + cg2d: Sum(rhs),rhsMax = -2.81052308162555E-14 1.58220312077497E-03 + cg2d: Sum(rhs),rhsMax = -3.26704809039402E-14 1.66104352349245E-03 + cg2d: Sum(rhs),rhsMax = -3.15990723170900E-14 1.70883017620578E-03 + cg2d: Sum(rhs),rhsMax = -3.23432686882841E-14 1.73605616746760E-03 + cg2d: Sum(rhs),rhsMax = -3.30573242390830E-14 1.72954155073702E-03 + cg2d: Sum(rhs),rhsMax = -3.41880386847682E-14 1.70166734633454E-03 + cg2d: Sum(rhs),rhsMax = -3.91250074872895E-14 1.64090452123336E-03 + cg2d: Sum(rhs),rhsMax = -4.14296418352333E-14 1.56140218330123E-03 + cg2d: Sum(rhs),rhsMax = -3.74137840934013E-14 1.45323340889766E-03 + cg2d: Sum(rhs),rhsMax = -4.54795706303357E-14 1.33182544090903E-03 + cg2d: Sum(rhs),rhsMax = -4.97803329861744E-14 1.18843716275427E-03 + cg2d: Sum(rhs),rhsMax = -5.02267498425635E-14 1.24840850478974E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.03190050756773E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 9.45310716948176E-20 +(PID.TID 0000.0001) cg2d_last_res = 6.38141849210594E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 256 (PID.TID 0000.0001) %MON time_secondsf = 1.1520000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1519559646420E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2236878271239E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.3306254369849E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8613984087693E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7324090084055E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1203573637951E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4330712547784E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7334669591077E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1450666046030E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8096618801001E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1519559646682E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2236878271209E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.2168872046765E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8613984087667E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7324090084036E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1203573637954E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4330712547783E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7334669603774E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1450666046032E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8096618801002E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.2948478492693E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.6584100109790E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.2948478492691E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.6584100109782E-03 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.7411146075197E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7314834477185E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7314834477184E-03 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4279711926876E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9669210451840E-02 -(PID.TID 0000.0001) %MON dynstat_theta_min = -5.0359922938124E-02 +(PID.TID 0000.0001) %MON dynstat_theta_min = -5.0359922938122E-02 (PID.TID 0000.0001) %MON dynstat_theta_mean = 1.5446457154492E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.7765436182373E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.6262844793877E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.6262844793883E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5527136788005E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.2925625526711E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.2925625526708E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7627223765796E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7627223765797E-01 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8823594709487E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8326815321712E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8326815321712E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.2811355710093E-10 -(PID.TID 0000.0001) %MON ke_max = 2.0795229610833E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.4962024556276E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8326815321711E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8326815321711E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.2811355710075E-10 +(PID.TID 0000.0001) %MON ke_max = 2.0795229610834E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4962024556300E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2855,8 +2878,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.9833631431993E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.8805067382398E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.9833631706596E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0680979910051E-18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2871,70 +2894,70 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.04217470157236E-13 1.33909835517094E-03 - cg2d: Sum(rhs),rhsMax = -1.00827061543657E-13 1.40916263908975E-03 - cg2d: Sum(rhs),rhsMax = -9.78117868817574E-14 1.45623592461838E-03 - cg2d: Sum(rhs),rhsMax = -9.91633126523964E-14 1.47984366829164E-03 - cg2d: Sum(rhs),rhsMax = -9.73068739300309E-14 1.47999773636661E-03 - cg2d: Sum(rhs),rhsMax = -9.87019710754766E-14 1.45694146908397E-03 - cg2d: Sum(rhs),rhsMax = -9.89963319653064E-14 1.41306457797554E-03 - cg2d: Sum(rhs),rhsMax = -1.02944020495543E-13 1.34912818789911E-03 - cg2d: Sum(rhs),rhsMax = -9.96425164601078E-14 1.26955725162481E-03 - cg2d: Sum(rhs),rhsMax = -1.16412305142810E-13 1.17516992520600E-03 - cg2d: Sum(rhs),rhsMax = -1.20277485887721E-13 1.08808365539696E-03 - cg2d: Sum(rhs),rhsMax = -1.05021026597374E-13 1.20409595340760E-03 - cg2d: Sum(rhs),rhsMax = -9.36223754771648E-14 1.30023413702097E-03 - cg2d: Sum(rhs),rhsMax = -8.38383182322211E-14 1.36805486742907E-03 - cg2d: Sum(rhs),rhsMax = -8.65783139625265E-14 1.41244455653400E-03 - cg2d: Sum(rhs),rhsMax = -8.49676232150820E-14 1.42722749785101E-03 -(PID.TID 0000.0001) cg2d_init_res = 1.76600684290955E-01 + cg2d: Sum(rhs),rhsMax = -4.22595714932167E-14 1.33909835517523E-03 + cg2d: Sum(rhs),rhsMax = -4.49527025846164E-14 1.40916263909061E-03 + cg2d: Sum(rhs),rhsMax = -4.45249306174622E-14 1.45623592461974E-03 + cg2d: Sum(rhs),rhsMax = -4.60661375581775E-14 1.47984366830070E-03 + cg2d: Sum(rhs),rhsMax = -3.87495482749578E-14 1.47999773635501E-03 + cg2d: Sum(rhs),rhsMax = -4.06469562869161E-14 1.45694146908606E-03 + cg2d: Sum(rhs),rhsMax = -4.33578953989988E-14 1.41306457797173E-03 + cg2d: Sum(rhs),rhsMax = -4.34576419988675E-14 1.34912818790461E-03 + cg2d: Sum(rhs),rhsMax = -4.63086600316354E-14 1.26955725162199E-03 + cg2d: Sum(rhs),rhsMax = -5.15741963025285E-14 1.17516992520470E-03 + cg2d: Sum(rhs),rhsMax = -4.57713294349515E-14 1.08808365544662E-03 + cg2d: Sum(rhs),rhsMax = -3.77415113050894E-14 1.20409595334653E-03 + cg2d: Sum(rhs),rhsMax = -3.27615538864290E-14 1.30023413707533E-03 + cg2d: Sum(rhs),rhsMax = -3.07783312725185E-14 1.36805486737993E-03 + cg2d: Sum(rhs),rhsMax = -3.19475348953269E-14 1.41244455658246E-03 + cg2d: Sum(rhs),rhsMax = -3.33340126335013E-14 1.42722749780942E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.76600684259044E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 1.69510777179160E-19 +(PID.TID 0000.0001) cg2d_last_res = 3.51002068959633E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 272 (PID.TID 0000.0001) %MON time_secondsf = 1.2240000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1320290154208E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2400238593921E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.5296007707467E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.2706080034324E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.8591628509781E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.3980238215257E-02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1320290154303E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.2400238593661E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.7973124450432E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.2706080034005E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.8591628508612E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.3980238215276E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -3.8766156952909E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.9266094431081E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2127832340048E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3809183058684E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.9266094500464E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2127832340054E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3809183058758E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.4571377732636E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2388231734800E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.4571377732637E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2388231734801E-03 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5224080174701E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7325153683106E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4610155337024E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7325153683103E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4610155336996E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9710739607076E-02 (PID.TID 0000.0001) %MON dynstat_theta_min = -4.9702611913741E-02 (PID.TID 0000.0001) %MON dynstat_theta_mean = 1.5000645452652E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8055748622912E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7213732457382E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7213732457391E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4816594052245E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.4543954233237E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.4543954233333E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.9023772334760E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5268853676758E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5268853676762E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9057119979686E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9057119979686E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.5613402968076E-10 -(PID.TID 0000.0001) %MON ke_max = 1.3682689115965E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.1233723156944E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9057119979687E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9057119979687E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.5613402967851E-10 +(PID.TID 0000.0001) %MON ke_max = 1.3682689115973E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.1233723157008E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2942,8 +2965,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0463522774603E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.0168790821833E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0463522467487E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3554908779678E-18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2958,70 +2981,70 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.87319731579517E-14 1.41983309612544E-03 - cg2d: Sum(rhs),rhsMax = -8.71074046226994E-14 1.38622574950845E-03 - cg2d: Sum(rhs),rhsMax = -8.62599922046847E-14 1.33561784663207E-03 - cg2d: Sum(rhs),rhsMax = -8.50439510480250E-14 1.26520945804784E-03 - cg2d: Sum(rhs),rhsMax = -8.94718327204558E-14 1.18480115559367E-03 - cg2d: Sum(rhs),rhsMax = -1.03948100127482E-13 1.09187786965074E-03 - cg2d: Sum(rhs),rhsMax = -1.18086096456693E-13 9.95867216630954E-04 - cg2d: Sum(rhs),rhsMax = -1.20403687020598E-13 9.18420898229433E-04 - cg2d: Sum(rhs),rhsMax = -9.94690441125101E-14 1.02364473167069E-03 - cg2d: Sum(rhs),rhsMax = -8.71542421565508E-14 1.10604326657699E-03 - cg2d: Sum(rhs),rhsMax = -8.24132428967062E-14 1.16132075710515E-03 - cg2d: Sum(rhs),rhsMax = -7.61717078301416E-14 1.19603332751637E-03 - cg2d: Sum(rhs),rhsMax = -7.90617571411190E-14 1.20100882896443E-03 - cg2d: Sum(rhs),rhsMax = -8.10497502445884E-14 1.17331732617853E-03 - cg2d: Sum(rhs),rhsMax = -8.58618731669480E-14 1.16219305467821E-03 - cg2d: Sum(rhs),rhsMax = -8.79990524893515E-14 1.12871150960846E-03 -(PID.TID 0000.0001) cg2d_init_res = 2.54985648390651E-01 + cg2d: Sum(rhs),rhsMax = -3.35486846636535E-14 1.41983309616441E-03 + cg2d: Sum(rhs),rhsMax = -3.17497764190655E-14 1.38622574946821E-03 + cg2d: Sum(rhs),rhsMax = -3.18469209337202E-14 1.33561784667768E-03 + cg2d: Sum(rhs),rhsMax = -3.11426232024736E-14 1.26520945800952E-03 + cg2d: Sum(rhs),rhsMax = -3.13768108717305E-14 1.18480115563364E-03 + cg2d: Sum(rhs),rhsMax = -3.19917703439643E-14 1.09187786961656E-03 + cg2d: Sum(rhs),rhsMax = -3.30169919182666E-14 9.95867216655082E-04 + cg2d: Sum(rhs),rhsMax = -3.18096243789867E-14 9.18420898260004E-04 + cg2d: Sum(rhs),rhsMax = -2.40085729075190E-14 1.02364473165019E-03 + cg2d: Sum(rhs),rhsMax = -1.13121317868448E-14 1.10604326660188E-03 + cg2d: Sum(rhs),rhsMax = -1.41275879883551E-14 1.16132075708388E-03 + cg2d: Sum(rhs),rhsMax = -1.90299165314656E-14 1.19603332753979E-03 + cg2d: Sum(rhs),rhsMax = -2.15799600411515E-14 1.20100882894676E-03 + cg2d: Sum(rhs),rhsMax = -1.34735972379119E-14 1.17331732620780E-03 + cg2d: Sum(rhs),rhsMax = -1.93681876092811E-14 1.16219305466969E-03 + cg2d: Sum(rhs),rhsMax = -1.01793573570319E-14 1.12871150959214E-03 +(PID.TID 0000.0001) cg2d_init_res = 2.54985648391935E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 58 -(PID.TID 0000.0001) cg2d_last_res = 4.45285656459030E-20 +(PID.TID 0000.0001) cg2d_last_res = 2.47396775171868E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 288 (PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2069958819709E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1672352493496E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.7374870067726E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4489935572617E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7800828890455E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1075628490303E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0367628254305E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1148899931487E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2555285522186E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6283335662914E-04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2069958819491E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1672352493407E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.3535440911667E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4489935572485E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.7800828890807E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1075628490397E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0367628254330E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1148899971655E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2555285522191E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6283335663092E-04 (PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.0724493930150E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6700257941029E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.0724493930162E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6700257941027E-03 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.3219514303388E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7366571565645E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4301333231808E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7366571565643E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4301333231818E-05 (PID.TID 0000.0001) %MON dynstat_theta_max = 4.9735546062153E-02 (PID.TID 0000.0001) %MON dynstat_theta_min = -4.9170455686336E-02 (PID.TID 0000.0001) %MON dynstat_theta_mean = 1.4545263181739E-02 (PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8349190304153E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.8806171711662E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.8806171711669E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5527136788005E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6218552499998E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3398522160785E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3398522160768E-01 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.8839189863471E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2859097899159E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.8839189863475E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2859097899352E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7326022268568E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7326022268568E-01 -(PID.TID 0000.0001) %MON pe_b_mean = 2.6885679619838E-10 -(PID.TID 0000.0001) %MON ke_max = 3.0667386613801E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.8127816707482E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7326022268573E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7326022268573E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.6885679619743E-10 +(PID.TID 0000.0001) %MON ke_max = 3.0667386614321E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.8127816707542E-05 (PID.TID 0000.0001) %MON ke_vol = 6.4007813759742E+09 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3029,8 +3052,8 @@ (PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.5752414558732E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.1509501040991E-18 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.5752414872160E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 6.3521475119337E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3045,167 +3068,161 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -9.67073643387550E-14 1.09690785017212E-03 - cg2d: Sum(rhs),rhsMax = -9.17182996218457E-14 1.03824211590594E-03 - cg2d: Sum(rhs),rhsMax = -9.22040221951193E-14 1.10428344090092E-03 - cg2d: Sum(rhs),rhsMax = -8.57994231218129E-14 1.18987103085896E-03 - cg2d: Sum(rhs),rhsMax = -7.74449948615086E-14 1.24717912261054E-03 - cg2d: Sum(rhs),rhsMax = -7.30110416569119E-14 1.29448054972278E-03 - cg2d: Sum(rhs),rhsMax = -7.89437959447525E-14 1.31089632551896E-03 - cg2d: Sum(rhs),rhsMax = -7.37153393881584E-14 1.31668091834221E-03 - cg2d: Sum(rhs),rhsMax = -7.62445662161326E-14 1.29227998950568E-03 - cg2d: Sum(rhs),rhsMax = -7.81770481683708E-14 1.25976739805119E-03 - cg2d: Sum(rhs),rhsMax = -8.48418557630737E-14 1.20077443204894E-03 - cg2d: Sum(rhs),rhsMax = -9.72555369571637E-14 1.13885229499256E-03 + cg2d: Sum(rhs),rhsMax = -2.03170813506404E-14 1.09690785018652E-03 + cg2d: Sum(rhs),rhsMax = -1.85511328520960E-14 1.03824211589429E-03 + cg2d: Sum(rhs),rhsMax = -2.05495342964213E-14 1.10428344084204E-03 + cg2d: Sum(rhs),rhsMax = -1.84782744661049E-14 1.18987103092008E-03 + cg2d: Sum(rhs),rhsMax = -2.30822305713474E-14 1.24717912253902E-03 + cg2d: Sum(rhs),rhsMax = -2.31412111695306E-14 1.29448054978097E-03 + cg2d: Sum(rhs),rhsMax = -3.23283066983038E-14 1.31089632544219E-03 + cg2d: Sum(rhs),rhsMax = -2.95735658184526E-14 1.31668091842488E-03 + cg2d: Sum(rhs),rhsMax = -3.82159581757691E-14 1.29227998941865E-03 + cg2d: Sum(rhs),rhsMax = -3.14366588316517E-14 1.25976739814349E-03 + cg2d: Sum(rhs),rhsMax = -3.57804064154976E-14 1.20077443195568E-03 + cg2d: Sum(rhs),rhsMax = -3.98223121145236E-14 1.13885229507165E-03 (PID.TID 0000.0001) %CHECKPOINT 300 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 10.653381248936057 -(PID.TID 0000.0001) System time: 2.39959994796663523E-002 -(PID.TID 0000.0001) Wall clock time: 10.749572992324829 +(PID.TID 0000.0001) User time: 6.4300598884001374 +(PID.TID 0000.0001) System time: 2.0024999976158142E-002 +(PID.TID 0000.0001) Wall clock time: 6.4523561000823975 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.59959995746612549E-002 -(PID.TID 0000.0001) System time: 5.99900004453957081E-003 -(PID.TID 0000.0001) Wall clock time: 5.95929622650146484E-002 +(PID.TID 0000.0001) User time: 1.9098999910056591E-002 +(PID.TID 0000.0001) System time: 4.2249998077750206E-003 +(PID.TID 0000.0001) Wall clock time: 2.4375915527343750E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 10.627385249361396 -(PID.TID 0000.0001) System time: 1.79969994351267815E-002 -(PID.TID 0000.0001) Wall clock time: 10.689938068389893 +(PID.TID 0000.0001) User time: 6.4109152127057314 +(PID.TID 0000.0001) System time: 1.5798999927937984E-002 +(PID.TID 0000.0001) Wall clock time: 6.4279429912567139 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 9.99900139868259430E-003 -(PID.TID 0000.0001) System time: 2.00000032782554626E-003 -(PID.TID 0000.0001) Wall clock time: 1.18570327758789063E-002 +(PID.TID 0000.0001) User time: 2.0640008151531219E-003 +(PID.TID 0000.0001) System time: 7.6439999975264072E-003 +(PID.TID 0000.0001) Wall clock time: 9.7100734710693359E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 10.617386247962713 -(PID.TID 0000.0001) System time: 1.59969991073012352E-002 -(PID.TID 0000.0001) Wall clock time: 10.678052902221680 +(PID.TID 0000.0001) User time: 6.4088290147483349 +(PID.TID 0000.0001) System time: 8.1510003656148911E-003 +(PID.TID 0000.0001) Wall clock time: 6.4182088375091553 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 10.615387346595526 -(PID.TID 0000.0001) System time: 1.59969991073012352E-002 -(PID.TID 0000.0001) Wall clock time: 10.675451993942261 +(PID.TID 0000.0001) User time: 6.4064882881939411 +(PID.TID 0000.0001) System time: 8.1340000033378601E-003 +(PID.TID 0000.0001) Wall clock time: 6.4158709049224854 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 10.612388040870428 -(PID.TID 0000.0001) System time: 1.59969991073012352E-002 -(PID.TID 0000.0001) Wall clock time: 10.670230150222778 +(PID.TID 0000.0001) User time: 6.4016620665788651 +(PID.TID 0000.0001) System time: 8.1020006909966469E-003 +(PID.TID 0000.0001) Wall clock time: 6.4110217094421387 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99847054481506348E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.88235664367675781E-003 +(PID.TID 0000.0001) User time: 7.2770714759826660E-003 +(PID.TID 0000.0001) System time: 5.5000185966491699E-005 +(PID.TID 0000.0001) Wall clock time: 7.3149204254150391E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.00080871582031250E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.63643264770507813E-003 +(PID.TID 0000.0001) User time: 2.4734437465667725E-003 +(PID.TID 0000.0001) System time: 1.8999911844730377E-005 +(PID.TID 0000.0001) Wall clock time: 2.5103092193603516E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.99820709228515625E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.64191627502441406E-003 +(PID.TID 0000.0001) User time: 2.4471841752529144E-003 +(PID.TID 0000.0001) System time: 1.6000121831893921E-005 +(PID.TID 0000.0001) Wall clock time: 2.4781227111816406E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0158488824963570 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 1.0346491336822510 +(PID.TID 0000.0001) User time: 0.59555660560727119 +(PID.TID 0000.0001) System time: 4.5510008931159973E-003 +(PID.TID 0000.0001) Wall clock time: 0.60070991516113281 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.2396545149385929 -(PID.TID 0000.0001) System time: 9.99999232590198517E-004 -(PID.TID 0000.0001) Wall clock time: 2.2378873825073242 +(PID.TID 0000.0001) User time: 1.3511441051959991 +(PID.TID 0000.0001) System time: 1.5669986605644226E-003 +(PID.TID 0000.0001) Wall clock time: 1.3534653186798096 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9522400349378586 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 4.9756848812103271 +(PID.TID 0000.0001) User time: 2.9979868605732918 +(PID.TID 0000.0001) System time: 6.9998204708099365E-006 +(PID.TID 0000.0001) Wall clock time: 2.9987185001373291 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.59969329833984375E-002 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 1.69064998626708984E-002 +(PID.TID 0000.0001) User time: 1.1131983250379562E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1156797409057617E-002 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10399264097213745 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.63442325592041016E-002 +(PID.TID 0000.0001) User time: 6.3647810369729996E-002 +(PID.TID 0000.0001) System time: 5.0012022256851196E-006 +(PID.TID 0000.0001) Wall clock time: 6.3733816146850586E-002 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.95485260337591171 +(PID.TID 0000.0001) User time: 0.60593560338020325 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.96242499351501465 +(PID.TID 0000.0001) Wall clock time: 0.60621595382690430 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.32095477730035782 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.32089352607727051 +(PID.TID 0000.0001) User time: 0.14790839701890945 +(PID.TID 0000.0001) System time: 1.0998919606208801E-005 +(PID.TID 0000.0001) Wall clock time: 0.14804244041442871 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.23496073484420776 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.23224067687988281 +(PID.TID 0000.0001) User time: 0.15290189161896706 +(PID.TID 0000.0001) System time: 8.0000609159469604E-006 +(PID.TID 0000.0001) Wall clock time: 0.15304398536682129 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.79893779754638672E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.09367084503173828E-002 +(PID.TID 0000.0001) User time: 2.8023838996887207E-002 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 2.8097152709960938E-002 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99927520751953125E-004 +(PID.TID 0000.0001) User time: 2.4784207344055176E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.78019905090332031E-003 +(PID.TID 0000.0001) Wall clock time: 2.4712085723876953E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.59692177176475525 -(PID.TID 0000.0001) System time: 9.98999923467636108E-004 -(PID.TID 0000.0001) Wall clock time: 0.59668302536010742 -(PID.TID 0000.0001) No. starts: 300 -(PID.TID 0000.0001) No. stops: 300 -(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.00051879882812500E-003 +(PID.TID 0000.0001) User time: 0.34204227104783058 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.78472900390625000E-003 +(PID.TID 0000.0001) Wall clock time: 0.34222364425659180 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.09901738166809082E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.49998378753662109E-002 +(PID.TID 0000.0001) User time: 3.7018865346908569E-002 +(PID.TID 0000.0001) System time: 1.6619982197880745E-003 +(PID.TID 0000.0001) Wall clock time: 3.8701057434082031E-002 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.59937548637390137E-002 -(PID.TID 0000.0001) System time: 3.99900041520595551E-003 -(PID.TID 0000.0001) Wall clock time: 4.08828258514404297E-002 +(PID.TID 0000.0001) User time: 9.2964917421340942E-003 +(PID.TID 0000.0001) System time: 8.3001330494880676E-005 +(PID.TID 0000.0001) Wall clock time: 9.3848705291748047E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.99875640869140625E-003 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 4.05859947204589844E-003 +(PID.TID 0000.0001) User time: 3.4234076738357544E-003 +(PID.TID 0000.0001) System time: 1.6000121831893921E-005 +(PID.TID 0000.0001) Wall clock time: 3.4503936767578125E-003 (PID.TID 0000.0001) No. starts: 300 (PID.TID 0000.0001) No. stops: 300 (PID.TID 0000.0001) // ====================================================== @@ -3234,9 +3251,9 @@ (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 110416 +(PID.TID 0000.0001) // No. barriers = 110412 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 110416 +(PID.TID 0000.0001) // Total barrier spins = 110412 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/code/packages.conf b/verification/isomip/code/packages.conf index 660a03d752..8a71dda33f 100644 --- a/verification/isomip/code/packages.conf +++ b/verification/isomip/code/packages.conf @@ -1,5 +1,6 @@ #-- list of packages (or group of packages) to compile for this experiment: gfd +ggl90 cd_code obcs shelfice diff --git a/verification/isomip/code_ad/CTRL_OPTIONS.h b/verification/isomip/code_ad/CTRL_OPTIONS.h index 9d782cd623..245662d54a 100644 --- a/verification/isomip/code_ad/CTRL_OPTIONS.h +++ b/verification/isomip/code_ad/CTRL_OPTIONS.h @@ -26,56 +26,71 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +C o In this experiment, this option and the corresponding necessary flags +C to reproduce this experiment are commented by CTRL +CTRL#define ECCO_CTRL_DEPRECATED #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#undef ALLOW_TR10_CONTROL -#undef ALLOW_TAUU0_CONTROL -#undef ALLOW_TAUV0_CONTROL -#undef ALLOW_SFLUX0_CONTROL -#undef ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_PRECIP_CONTROL - -C >>> Other Control. -#define ALLOW_DIFFKR_CONTROL -#undef ALLOW_KAPGM_CONTROL -#undef ALLOW_KAPREDI_CONTROL -#undef ALLOW_BOTTOMDRAG_CONTROL - -C >>> pkg/shelfice fluxes. -#define ALLOW_SHIFWFLX_CONTROL +CTRLC >>> Initial values. +CTRL#define ALLOW_THETA0_CONTROL +CTRL#define ALLOW_SALT0_CONTROL +CTRL#undef ALLOW_UVEL0_CONTROL +CTRL#undef ALLOW_VVEL0_CONTROL +CTRL#undef ALLOW_TR10_CONTROL +CTRL#undef ALLOW_TAUU0_CONTROL +CTRL#undef ALLOW_TAUV0_CONTROL +CTRL#undef ALLOW_SFLUX0_CONTROL +CTRL#undef ALLOW_HFLUX0_CONTROL +CTRL#undef ALLOW_SSS0_CONTROL +CTRL#undef ALLOW_SST0_CONTROL +CTRL +CTRLC >>> Surface fluxes. +CTRL#undef ALLOW_HFLUX_CONTROL +CTRL#undef ALLOW_SFLUX_CONTROL +CTRL#undef ALLOW_USTRESS_CONTROL +CTRL#undef ALLOW_VSTRESS_CONTROL +CTRL#undef ALLOW_SWFLUX_CONTROL +CTRL#undef ALLOW_LWFLUX_CONTROL +CTRL +CTRLC >>> Atmospheric state. +CTRL#undef ALLOW_ATEMP_CONTROL +CTRL#undef ALLOW_AQH_CONTROL +CTRL#undef ALLOW_UWIND_CONTROL +CTRL#undef ALLOW_VWIND_CONTROL +CTRL#undef ALLOW_PRECIP_CONTROL +CTRL +CTRLC >>> Other Control. +CTRL#define ALLOW_DIFFKR_CONTROL +CTRL#undef ALLOW_KAPGM_CONTROL +CTRL#undef ALLOW_KAPREDI_CONTROL +CTRL#undef ALLOW_BOTTOMDRAG_CONTROL +CTRL +CTRLC >>> Backward compatibility option (before checkpoint 65p) +CTRL#undef ALLOW_KAPGM_CONTROL_OLD +CTRL#undef ALLOW_KAPREDI_CONTROL_OLD +CTRL +CTRLC >>> pkg/shelfice fluxes. +CTRL#define ALLOW_SHIFWFLX_CONTROL C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL -#undef ALLOW_GENTIM2D_CONTROL +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/isomip/code_ad/CTRL_SIZE.h b/verification/isomip/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..cdf66fb688 --- /dev/null +++ b/verification/isomip/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 3 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/isomip/code_ad/SIZE.h b/verification/isomip/code_ad/SIZE.h index c3070e06b7..52c1b3a158 100644 --- a/verification/isomip/code_ad/SIZE.h +++ b/verification/isomip/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/isomip/code_ad/SIZE.h_mpi b/verification/isomip/code_ad/SIZE.h_mpi index 173dc8a3e3..d5667fc6ae 100644 --- a/verification/isomip/code_ad/SIZE.h_mpi +++ b/verification/isomip/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/isomip/code_ad/packages.conf b/verification/isomip/code_ad/packages.conf index c2c10cdbee..1686fce483 100644 --- a/verification/isomip/code_ad/packages.conf +++ b/verification/isomip/code_ad/packages.conf @@ -1,5 +1,6 @@ #-- list of packages (or group of packages) to compile for this experiment: gfd +ggl90 cd_code shelfice diagnostics diff --git a/verification/isomip/code_ad/tamc.h b/verification/isomip/code_ad/tamc.h index c14e43ba93..ec327411e3 100644 --- a/verification/isomip/code_ad/tamc.h +++ b/verification/isomip/code_ad/tamc.h @@ -1,129 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 2 ) - integer nchklev_2 - parameter( nchklev_2 = 50 ) - integer nchklev_3 - parameter( nchklev_3 = 50 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 2 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 50 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 50 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 3 ) + PARAMETER( maxpass = 3 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 3 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/isomip/code_oad/AUTODIFF_OPTIONS.h b/verification/isomip/code_oad/AUTODIFF_OPTIONS.h index 034193a30c..9f494e7955 100644 --- a/verification/isomip/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/isomip/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,14 +48,38 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) #undef AUTODIFF_PTRACERS_SPLIT_FILES +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_AUTODIFF */ diff --git a/verification/isomip/code_oad/CTRL_OPTIONS.h b/verification/isomip/code_oad/CTRL_OPTIONS.h index ebd9e85aa0..cd101b6ba9 100644 --- a/verification/isomip/code_oad/CTRL_OPTIONS.h +++ b/verification/isomip/code_oad/CTRL_OPTIONS.h @@ -26,56 +26,71 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +C o In this experiment, this option and the corresponding necessary flags +C to reproduce this experiment are commented by CTRL +CTRL#define ECCO_CTRL_DEPRECATED #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#undef ALLOW_TR10_CONTROL -#undef ALLOW_TAUU0_CONTROL -#undef ALLOW_TAUV0_CONTROL -#undef ALLOW_SFLUX0_CONTROL -#undef ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_PRECIP_CONTROL - -C >>> Other Control. -#define ALLOW_DIFFKR_CONTROL -#undef ALLOW_KAPGM_CONTROL -#undef ALLOW_KAPREDI_CONTROL -#undef ALLOW_BOTTOMDRAG_CONTROL - -C >>> pkg/shelfice fluxes. -cph#define ALLOW_SHIFWFLX_CONTROL +CTRLC >>> Initial values. +CTRL#define ALLOW_THETA0_CONTROL +CTRL#define ALLOW_SALT0_CONTROL +CTRL#undef ALLOW_UVEL0_CONTROL +CTRL#undef ALLOW_VVEL0_CONTROL +CTRL#undef ALLOW_TR10_CONTROL +CTRL#undef ALLOW_TAUU0_CONTROL +CTRL#undef ALLOW_TAUV0_CONTROL +CTRL#undef ALLOW_SFLUX0_CONTROL +CTRL#undef ALLOW_HFLUX0_CONTROL +CTRL#undef ALLOW_SSS0_CONTROL +CTRL#undef ALLOW_SST0_CONTROL +CTRL +CTRLC >>> Surface fluxes. +CTRL#undef ALLOW_HFLUX_CONTROL +CTRL#undef ALLOW_SFLUX_CONTROL +CTRL#undef ALLOW_USTRESS_CONTROL +CTRL#undef ALLOW_VSTRESS_CONTROL +CTRL#undef ALLOW_SWFLUX_CONTROL +CTRL#undef ALLOW_LWFLUX_CONTROL +CTRL +CTRLC >>> Atmospheric state. +CTRL#undef ALLOW_ATEMP_CONTROL +CTRL#undef ALLOW_AQH_CONTROL +CTRL#undef ALLOW_UWIND_CONTROL +CTRL#undef ALLOW_VWIND_CONTROL +CTRL#undef ALLOW_PRECIP_CONTROL +CTRL +CTRLC >>> Other Control. +CTRL#define ALLOW_DIFFKR_CONTROL +CTRL#undef ALLOW_KAPGM_CONTROL +CTRL#undef ALLOW_KAPREDI_CONTROL +CTRL#undef ALLOW_BOTTOMDRAG_CONTROL +CTRL +CTRLC >>> Backward compatibility option (before checkpoint 65p) +CTRL#undef ALLOW_KAPGM_CONTROL_OLD +CTRL#undef ALLOW_KAPREDI_CONTROL_OLD +CTRL +CTRLC >>> pkg/shelfice fluxes. +CTRL#define ALLOW_SHIFWFLX_CONTROL C >>> Generic Control. #undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL +#define ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/isomip/code_oad/CTRL_SIZE.h b/verification/isomip/code_oad/CTRL_SIZE.h new file mode 100644 index 0000000000..cdf66fb688 --- /dev/null +++ b/verification/isomip/code_oad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 3 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/isomip/code_oad/SIZE.h b/verification/isomip/code_oad/SIZE.h index c3070e06b7..52c1b3a158 100644 --- a/verification/isomip/code_oad/SIZE.h +++ b/verification/isomip/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/isomip/code_oad/SIZE.h_mpi b/verification/isomip/code_oad/SIZE.h_mpi index 173dc8a3e3..d5667fc6ae 100644 --- a/verification/isomip/code_oad/SIZE.h_mpi +++ b/verification/isomip/code_oad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/isomip/code_oad/cb2mFiles b/verification/isomip/code_oad/cb2mFiles index 6ec0fe8554..31819397df 100644 --- a/verification/isomip/code_oad/cb2mFiles +++ b/verification/isomip/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +25,7 @@ GLOBAL_MAX GLOBAL_SUM GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -40,5 +39,3 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc diff --git a/verification/isomip/code_oad/ctrl_map_ini_genarr.F b/verification/isomip/code_oad/ctrl_map_ini_genarr.F new file mode 100644 index 0000000000..c2b99d3e75 --- /dev/null +++ b/verification/isomip/code_oad/ctrl_map_ini_genarr.F @@ -0,0 +1,236 @@ +#include "CTRL_OPTIONS.h" +#define PREVENT_TOO_COLD_TEMP + +CBOP +C !ROUTINE: CTRL_MAP_INI_GENARR +C !INTERFACE: + SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) + +C !DESCRIPTION: \bv +C *================================================================= +C | SUBROUTINE CTRL_MAP_INI_GENARR +C | Add the generic arrays of the +C | control vector to the model state and update the tile halos. +C | The control vector is defined in the header file "ctrl.h". +C *================================================================= +C | local version for OpenAD exp. isomip +C *================================================================= +C \ev + +C !USES: + IMPLICIT NONE + +C == global variables == +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "DYNVARS.h" +CML#include "FFIELDS.h" +#include "CTRL_SIZE.h" +#include "ctrl.h" +#include "CTRL_GENARR.h" +#include "ctrl_dummy.h" +#include "optim.h" + +C !INPUT/OUTPUT PARAMETERS: +C == routine arguments == + INTEGER myThid + +C !FUNCTIONS: + INTEGER ILNBLNk + EXTERNAL ILNBLNK + +C !LOCAL VARIABLES: +C == local variables == + INTEGER bi,bj + INTEGER i,j,k + INTEGER il + INTEGER iarr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif +CEOP + + doglobalread = .FALSE. + ladinit = .FALSE. + fac = 1. _d 0 + +#ifdef ALLOW_GENARR2D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 2D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr2D + +C These forcing control variables are constant in time for this +C experiment, so that we can specify them here. Once we know how to +C make OpenAD use the gentim2d controls, these should be handled via +C ctrl_map_gentim2d.F + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr2d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr2d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN +CML DO bj=myByLo(myThid), myByHi(myThid) +CML DO bi=myBxLo(myThid), myBxHi(myThid) +CML DO j = 1,sNy +CML DO i = 1,sNx +CML qnet(i,j,bi,bj) = qnet(i,j,bi,bj) +CML & + fac*tmpfld2d(i,j,bi,bj) +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO + ELSEIF ( iarr .EQ. 2 ) THEN +CML DO bj=myByLo(myThid), myByHi(myThid) +CML DO bi=myBxLo(myThid), myBxHi(myThid) +CML DO j = 1,sNy +CML DO i = 1,sNx +CML empmr(i,j,bi,bj) = empmr(i,j,bi,bj) +CML & + fac*tmpfld2d(i,j,bi,bj) +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO + ELSEIF ( iarr .EQ. 3 ) THEN +CML DO bj=myByLo(myThid), myByHi(myThid) +CML DO bi=myBxLo(myThid), myBxHi(myThid) +CML DO j = 1,sNy +CML DO i = 1,sNx +CML fu(i,j,bi,bj) = fu(i,j,bi,bj) +CML & + fac*tmpfld2d(i,j,bi,bj) +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO + ELSEIF ( iarr .EQ. 4 ) THEN +CML DO bj=myByLo(myThid), myByHi(myThid) +CML DO bi=myBxLo(myThid), myBxHi(myThid) +CML DO j = 1,sNy +CML DO i = 1,sNx +CML fv(i,j,bi,bj) = fv(i,j,bi,bj) +CML & + fac*tmpfld2d(i,j,bi,bj) +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO + ENDIF +C-- end iarr loop + ENDDO +CML _EXCH_XY_RS( qnet, myThid ) +CML _EXCH_XY_RS( empmr, myThid ) +CML CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) + +#endif /* ALLOW_GENARR2D_CONTROL */ + +#ifdef ALLOW_GENARR3D_CONTROL +C-- An example of connecting specific fields +C-- to 3 generic 3D control arrays +cc--->>> +cc--->>> COMPILE FAILURE IS DELIBERATE +cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- +cc--->>> +cc + +C-- generic - user-defined control vars + DO iarr = 1, maxCtrlArr3D + + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + fnamebase = xx_genarr3d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr3d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) +#ifdef PREVENT_TOO_COLD_TEMP +C necessary to reproduce old results + IF ( theta(i,j,k,bi,bj).LT.-2.0 _d 0 ) + & theta(i,j,k,bi,bj) = -2.0 _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( theta, Nr, myThid ) + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( salt, Nr, myThid ) + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + diffKr(i,j,k,bi,bj) = diffKr(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( diffKr, Nr, myThid ) + ENDIF + +C-- end iarr loop + ENDDO + +#endif /* ALLOW_GENARR3D_CONTROL */ + + RETURN + END diff --git a/verification/isomip/code_tap/AUTODIFF_OPTIONS.h b/verification/isomip/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..7339a3b301 --- /dev/null +++ b/verification/isomip/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) +#undef AUTODIFF_PTRACERS_SPLIT_FILES + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/isomip/code_tap/COST_OPTIONS.h b/verification/isomip/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..41c6475da2 --- /dev/null +++ b/verification/isomip/code_tap/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#define ALLOW_COST_TEST +#define ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/isomip/code_tap/CPP_OPTIONS.h b/verification/isomip/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..a0c5dadcab --- /dev/null +++ b/verification/isomip/code_tap/CPP_OPTIONS.h @@ -0,0 +1,141 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#undef SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#define ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#undef INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF +#define DISABLE_RSTAR_CODE +#define DISABLE_SIGMA_CODE + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/isomip/code_tap/CTRL_OPTIONS.h b/verification/isomip/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..245662d54a --- /dev/null +++ b/verification/isomip/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,111 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +C o In this experiment, this option and the corresponding necessary flags +C to reproduce this experiment are commented by CTRL +CTRL#define ECCO_CTRL_DEPRECATED + +#define EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +CTRLC >>> Initial values. +CTRL#define ALLOW_THETA0_CONTROL +CTRL#define ALLOW_SALT0_CONTROL +CTRL#undef ALLOW_UVEL0_CONTROL +CTRL#undef ALLOW_VVEL0_CONTROL +CTRL#undef ALLOW_TR10_CONTROL +CTRL#undef ALLOW_TAUU0_CONTROL +CTRL#undef ALLOW_TAUV0_CONTROL +CTRL#undef ALLOW_SFLUX0_CONTROL +CTRL#undef ALLOW_HFLUX0_CONTROL +CTRL#undef ALLOW_SSS0_CONTROL +CTRL#undef ALLOW_SST0_CONTROL +CTRL +CTRLC >>> Surface fluxes. +CTRL#undef ALLOW_HFLUX_CONTROL +CTRL#undef ALLOW_SFLUX_CONTROL +CTRL#undef ALLOW_USTRESS_CONTROL +CTRL#undef ALLOW_VSTRESS_CONTROL +CTRL#undef ALLOW_SWFLUX_CONTROL +CTRL#undef ALLOW_LWFLUX_CONTROL +CTRL +CTRLC >>> Atmospheric state. +CTRL#undef ALLOW_ATEMP_CONTROL +CTRL#undef ALLOW_AQH_CONTROL +CTRL#undef ALLOW_UWIND_CONTROL +CTRL#undef ALLOW_VWIND_CONTROL +CTRL#undef ALLOW_PRECIP_CONTROL +CTRL +CTRLC >>> Other Control. +CTRL#define ALLOW_DIFFKR_CONTROL +CTRL#undef ALLOW_KAPGM_CONTROL +CTRL#undef ALLOW_KAPREDI_CONTROL +CTRL#undef ALLOW_BOTTOMDRAG_CONTROL +CTRL +CTRLC >>> Backward compatibility option (before checkpoint 65p) +CTRL#undef ALLOW_KAPGM_CONTROL_OLD +CTRL#undef ALLOW_KAPREDI_CONTROL_OLD +CTRL +CTRLC >>> pkg/shelfice fluxes. +CTRL#define ALLOW_SHIFWFLX_CONTROL + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/isomip/code_tap/CTRL_SIZE.h b/verification/isomip/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..cdf66fb688 --- /dev/null +++ b/verification/isomip/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 3 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/isomip/code_tap/DIAGNOSTICS_SIZE.h b/verification/isomip/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..a12c6db784 --- /dev/null +++ b/verification/isomip/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,28 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numDiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C sizRegMsk :: maximum size of the regional-mask (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numDiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numDiags + INTEGER nRegions, sizRegMsk, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 10, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numDiags = 2*Nr+2 ) + PARAMETER( nRegions = 0 , sizRegMsk = 1 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/isomip/code_tap/GMREDI_OPTIONS.h b/verification/isomip/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..4a06b7494b --- /dev/null +++ b/verification/isomip/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,47 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#undef GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#define GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#undef GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#undef GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#undef GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/isomip/code_tap/README_TAP_HACKS.txt b/verification/isomip/code_tap/README_TAP_HACKS.txt new file mode 100644 index 0000000000..00e0b8f492 --- /dev/null +++ b/verification/isomip/code_tap/README_TAP_HACKS.txt @@ -0,0 +1 @@ +Non-linear free surface is turned off to prevent NaNs in the simulation. diff --git a/verification/isomip/code_tap/SHELFICE_OPTIONS.h b/verification/isomip/code_tap/SHELFICE_OPTIONS.h new file mode 100644 index 0000000000..0781d144cc --- /dev/null +++ b/verification/isomip/code_tap/SHELFICE_OPTIONS.h @@ -0,0 +1,25 @@ +C *==========================================================* +C | SHELFICE_OPTIONS.h +C | o CPP options file for SHELFICE package. +C *==========================================================* +C | Use this file for selecting options within the SHELFICE +C | package. +C *==========================================================* + +#ifndef SHELFICE_OPTIONS_H +#define SHELFICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_SHELFICE +C Package-specific Options & Macros go here + +C allow code for simple ISOMIP thermodynamics +#define ALLOW_ISOMIP_TD + +C allow friction velocity-dependent transfer coefficient +C following Holland and Jenkins, JPO, 1999 +#undef SHI_ALLOW_GAMMAFRICT + +#endif /* ALLOW_SHELFICE */ +#endif /* SHELFICE_OPTIONS_H */ diff --git a/verification/isomip/code_tap/SIZE.h b/verification/isomip/code_tap/SIZE.h new file mode 100644 index 0000000000..52c1b3a158 --- /dev/null +++ b/verification/isomip/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 25, + & sNy = 25, + & OLx = 3, + & OLy = 3, + & nSx = 2, + & nSy = 4, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 30) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/isomip/code_tap/SIZE.h_mpi b/verification/isomip/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..d5667fc6ae --- /dev/null +++ b/verification/isomip/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 25, + & sNy = 25, + & OLx = 3, + & OLy = 3, + & nSx = 1, + & nSy = 2, + & nPx = 2, + & nPy = 2, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 30) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/isomip/code_tap/cost_test.F b/verification/isomip/code_tap/cost_test.F new file mode 100644 index 0000000000..3e561a9a09 --- /dev/null +++ b/verification/isomip/code_tap/cost_test.F @@ -0,0 +1,94 @@ +#include "COST_OPTIONS.h" + + subroutine cost_test( myThid ) +C *==========================================================* +C | subroutine cost_test +C | o this routine computes the cost function for the tiles +C | of this processor +C *==========================================================* +C | Notes +C *==========================================================* + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "DYNVARS.h" +#include "GRID.h" + +#include "cost.h" + +C == Routine arguments == +C myThid - Thread number for this instance of the routine. + integer myThid + +#ifdef ALLOW_COST_TEST +C == Local variables + integer bi, bj + _RL thetaRef + integer i, j, k + integer ig, jg + integer itlo,ithi + integer jtlo,jthi +c _RL thetaLev(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) + + jtlo = mybylo(mythid) + jthi = mybyhi(mythid) + itlo = mybxlo(mythid) + ithi = mybxhi(mythid) + + if ( useCubedSphereExchange) then + iLocOut = 7 + jLocOut = 28 + kLocOut = 1 + else + iLocOut = 80 + jLocOut = 30 + kLocOut = 1 + endif + +c CALL READ_FLD_XYZ_RL( hydrogThetaFile, ' ', thetaLev, 0, myThid ) + +ce some reference temperature + thetaRef = 24.0 _d 0 + +C-- Calculate mask for tracer cells (0 => land, 1 => water) + k=1 + +C-- Calculate cost function on tile of this instance + do bj = jtlo,jthi + do bi = itlo,ithi + do j=1,sNy + jg = myYGlobalLo-1+(bj-1)*sNy+j + do i=1,sNx + ig = myXGlobalLo-1+(bi-1)*sNx+i + +#ifndef ALLOW_COST_TSQUARED + if ((ig .eq. iLocOut) .and. (jg .eq. jLocOut)) then + write(*,'(a,3(x,i4),a,4(x,i4))') + & 'COST ',ig,jg,kLocOut,' TILE ',i,j,bi,bj + objf_test(bi,bj) = theta(i,j,kLocOut,bi,bj) +cph( + print *, 'ph-cost ', ig, jg, kLocOut, + & theta(i,j,kLocOut,bi,bj) +cph) + endif +#else + do k=1,nr + if (maskC(i,j,k,bi,bj).NE.0.) then + objf_test(bi,bj) = objf_test(bi,bj) + + & ( theta(i,j,k,bi,bj) )**2 + endif + enddo +#endif + + enddo + enddo + enddo + enddo + +#endif /* ALLOW_COST_TEST */ + + RETURN + END diff --git a/verification/isomip/code_tap/packages.conf b/verification/isomip/code_tap/packages.conf new file mode 100644 index 0000000000..2a361a8e6f --- /dev/null +++ b/verification/isomip/code_tap/packages.conf @@ -0,0 +1,11 @@ +#-- list of packages (or group of packages) to compile for this experiment: +gfd +monitor +cd_code +gmredi +shelfice +#diagnostics +#mnc + +tapenade +adjoint diff --git a/verification/isomip/input.obcs/data b/verification/isomip/input.obcs/data index 8020c351c0..752e470ad5 100644 --- a/verification/isomip/input.obcs/data +++ b/verification/isomip/input.obcs/data @@ -5,7 +5,12 @@ # Continuous equation parameters &PARM01 Tref = 30*-1.9, - Sref = 30*34.4, +#Sref = 30*34.4, + Sref = 10*34.4, + 34.4436872 , 34.4873744 , 34.5310616 , 34.5747488 , 34.618436 , + 34.6621232 , 34.7058104 , 34.7494976 , 34.7931848 , 34.836872 , + 34.8805592 , 34.9242464 , 34.9679336 , 35.0116208 , 35.05530799, + 35.09899519, 35.14268239, 35.18636959, 35.23005679, 35.27374399, viscAz=1.E-3, viscAh=600.0, no_slip_sides=.FALSE., @@ -15,10 +20,12 @@ diffKhS=100.0, diffKzS=5.E-5, bottomDragQuadratic=2.5E-3, - eosType='JMD95Z', + eosType='JMD95Z', HeatCapacity_Cp = 3974.0, rhoConst=1030., gravity=9.81, + implicitDiffusion=.TRUE., + implicitViscosity=.TRUE., implicitFreeSurface=.TRUE., exactConserv=.TRUE., # this is needed to test the balancing code @@ -46,7 +53,6 @@ nTimeSteps=12, deltaT=1800.0, abEps=0.1, - cAdjFreq = -1., pChkptFreq=0.0, chkptFreq=0.0, dumpFreq=0.0, diff --git a/verification/isomip/input.obcs/data.diagnostics b/verification/isomip/input.obcs/data.diagnostics index 03162eba31..7741c9999e 100644 --- a/verification/isomip/input.obcs/data.diagnostics +++ b/verification/isomip/input.obcs/data.diagnostics @@ -35,6 +35,10 @@ fileName(2) = 'dynDiag', frequency(2) = 5184000., + fields(1:4,3) = 'GGL90TKE','GGL90Lmx','GGL90Prl','GGL90Kr ', +# fileName(3) = 'ggl90Diag', + frequency(3) = 1728000., + fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', 'DFxE_TH ','DFyE_TH ','DFrE_TH ', 'DFrI_TH ', diff --git a/verification/isomip/input.obcs/data.ggl90 b/verification/isomip/input.obcs/data.ggl90 new file mode 100644 index 0000000000..a8e0837c45 --- /dev/null +++ b/verification/isomip/input.obcs/data.ggl90 @@ -0,0 +1,10 @@ +# ===================================================================== +# | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +# ===================================================================== + &GGL90_PARM01 + GGL90writeState=.TRUE., + mxlMaxFlag=2, +#- decrease Minimum TKE value @ the top (default = 1.E-4) to feel the +# effect of ice-shelf bottom stress on TKE and vertical mixing: + GGL90TKEsurfMin= 1.E-5, + & diff --git a/verification/isomip/input.obcs/data.pkg b/verification/isomip/input.obcs/data.pkg index 65a1d5e34a..513199ef55 100644 --- a/verification/isomip/input.obcs/data.pkg +++ b/verification/isomip/input.obcs/data.pkg @@ -1,6 +1,7 @@ # Packages &PACKAGES useShelfIce=.TRUE., + useGGL90=.TRUE., useOBCS=.TRUE., useDiagnostics=.TRUE., #useMNC=.TRUE., diff --git a/verification/isomip/input.obcs/gendata.py b/verification/isomip/input.obcs/gendata.py index 235fdb1bec..a9694d034c 100644 --- a/verification/isomip/input.obcs/gendata.py +++ b/verification/isomip/input.obcs/gendata.py @@ -9,7 +9,7 @@ def writefield(fname,data): """Call signatures:: writefield(filename, numpy.ndarray) - + Write unblocked binary data. """ @@ -26,7 +26,7 @@ def readfield(fname,dims,datatype): """Call signatures:: readfield(filename, dims, numpy.datatype) - + Read unblocked binary data with dimentions "dims". """ fid = open(fname,"rb") @@ -38,7 +38,7 @@ def readfield(fname,dims,datatype): if len(v) == np.prod(dims): v = v.reshape(dims) elif len(v) == np.prod(dims[1:]): v = v.reshape(dims[1:]) else: - errstr = ( "dimensions do not match: \n len(data) = " + str(len(v)) + errstr = ( "dimensions do not match: \n len(data) = " + str(len(v)) + ", but prod(dims) = " + str(np.prod(dims)) ) raise RuntimeError(errstr) @@ -66,3 +66,14 @@ def readfield(fname,dims,datatype): msk = np.ones(iceMass.shape) msk[y0:,:] = 2. writefield("iceMask.obcs",msk) + +# salinity profile for stability +dz = 30. +N2 = 1.e-5 +sBeta = 7e-4 +gravity=9.81 +dSdz = N2/gravity/sBeta * np.ones((30,)) +S0 = 34.4 +sRef0 = np.cumsum(dSdz*dz) +sRef = np.maximum(sRef0-sRef0[9],0.) + S0 +#sRef = np.maximum(sRef0-sRef0[0],0.) + S0 diff --git a/verification/isomip/input_ad/data.ctrl b/verification/isomip/input_ad/data.ctrl index 74ac1da45d..59967e16a5 100644 --- a/verification/isomip/input_ad/data.ctrl +++ b/verification/isomip/input_ad/data.ctrl @@ -1,75 +1,37 @@ -# -# # ********************* # ECCO controlvariables # ********************* &CTRL_NML - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', -# - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', -# - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', -# - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', + & # - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & # - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., # - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., # - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', + xx_genarr3d_file(3) = 'xx_diffkr', + xx_genarr3d_weight(3) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., # - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', + xx_gentim2d_file(1) = 'xx_shifwflx', + xx_gentim2d_weight(1) = 'ones_64b.bin', # - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', - & + xx_genarr2d_file(1) = 'xx_shicoefft', + xx_genarr2d_weight(1) = 'ones_64b.bin', + xx_genarr2d_preproc_c(1,1)= 'log10ctrl', + xx_genarr2d_preproc_r(1,1)= -4., # -# ********************* -# names for ctrl_pack/unpack -# ********************* - &CTRL_PACKNAMES & diff --git a/verification/isomip/input_ad/data.grdchk b/verification/isomip/input_ad/data.grdchk index cba28e61ff..b35c58d4b4 100644 --- a/verification/isomip/input_ad/data.grdchk +++ b/verification/isomip/input_ad/data.grdchk @@ -9,5 +9,5 @@ # nbeg = 1, nstep = 1, nend = 4, - grdchkvarindex = 1, + grdchkvarindex = 201, & diff --git a/verification/isomip/input_ad/genweights.py b/verification/isomip/input_ad/genweights.py new file mode 100644 index 0000000000..cdbde599d0 --- /dev/null +++ b/verification/isomip/input_ad/genweights.py @@ -0,0 +1,7 @@ +import numpy as np + +nx,ny,nr,nt=50,100,30,1 + +# double prec ieee-be +wt64 = np.ones((nt,nr,ny,nx),dtype='>f8') +wt64.tofile('ones_64b.bin') diff --git a/verification/isomip/input_ad/ones_64b.bin b/verification/isomip/input_ad/ones_64b.bin new file mode 100644 index 0000000000..a2d2037606 Binary files /dev/null and b/verification/isomip/input_ad/ones_64b.bin differ diff --git a/verification/isomip/input_oad/data.ctrl b/verification/isomip/input_oad/data.ctrl index 74ac1da45d..0eb01b21a6 100644 --- a/verification/isomip/input_oad/data.ctrl +++ b/verification/isomip/input_oad/data.ctrl @@ -4,68 +4,6 @@ # ECCO controlvariables # ********************* &CTRL_NML - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', -# - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', -# - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', -# - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', -# - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', -# - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', -# - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', -# - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', -# - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', -# - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', & # # ********************* @@ -73,3 +11,18 @@ # ********************* &CTRL_PACKNAMES & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR +# Since everything is hard coded, the following has no effect but is +# just meant to document the control variables; +# + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(3) = 'ones_64b.bin', + xx_genarr3d_file(3) = 'xx_diffKr', + & diff --git a/verification/isomip/input_oad/data.grdchk b/verification/isomip/input_oad/data.grdchk index cba28e61ff..b35c58d4b4 100644 --- a/verification/isomip/input_oad/data.grdchk +++ b/verification/isomip/input_oad/data.grdchk @@ -9,5 +9,5 @@ # nbeg = 1, nstep = 1, nend = 4, - grdchkvarindex = 1, + grdchkvarindex = 201, & diff --git a/verification/isomip/input_oad/prepare_run b/verification/isomip/input_oad/prepare_run index 4895b7cf24..d6aac73261 100755 --- a/verification/isomip/input_oad/prepare_run +++ b/verification/isomip/input_oad/prepare_run @@ -28,7 +28,7 @@ fi #- an take pickup files from this dir: fromDir="../input_ad" -fileList=`( cd $fromDir ; echo pickup* )` +fileList=`( cd $fromDir ; ls pickup* ones_64b.bin )` #echo 'fileList=' $fileList diff --git a/verification/isomip/input_tap/data b/verification/isomip/input_tap/data new file mode 100644 index 0000000000..caa23e1144 --- /dev/null +++ b/verification/isomip/input_tap/data @@ -0,0 +1,77 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + Tref = 30*-1.9, + Sref = 30*34.4, + viscAz=1.E-3, + viscAh=600.0, + no_slip_sides=.FALSE., + no_slip_bottom=.FALSE., + diffKhT=100.0, +#- diffKzT unused when compiled with ALLOW_3D_DIFFKR +#diffKzT=5.E-5, + diffKhS=100.0, + diffKzS=5.E-5, + bottomDragQuadratic=2.5E-3, + eosType='JMD95Z', + HeatCapacity_Cp = 3974.0, + rhoConst=1030., + gravity=9.81, + convertFW2Salt = 33.4, + implicitFreeSurface=.TRUE., + exactConserv=.TRUE., + hFacMin=0.10, + nonHydrostatic=.FALSE., + useCDScheme = .TRUE., +#ph( + implicitDiffusion=.TRUE., +# ivdc_kappa = 7200., + staggerTimeStep=.TRUE., + vectorInvariantMomentum=.TRUE., + nonlinFreeSurf=0, + hFacInf=0.05, + hFacSup=2.0, +#ph) + readBinaryPrec=64, + useSingleCpuIO=.TRUE., + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=1000, + cg2dTargetResidual=1.E-13, + & + +# Time stepping parameters + &PARM03 + nIter0=8640, + nTimeSteps=5, + deltaT=1800.0, + abEps=0.1, + cAdjFreq = 1., + tauCD = 400000., + pChkptFreq=0.0, + chkptFreq=0.0, + dumpFreq=0.0, + taveFreq=0.0, + monitorFreq=1., + monitorSelect=2, + adjMonitorFreq=1800., + & + +# Gridding parameters + &PARM04 + usingSphericalPolarGrid=.TRUE., + ygOrigin = -80.0, + delX=50*0.3, + delY=100*0.1, + delZ=30*30.0, + & + +# Input datasets + &PARM05 + bathyFile='bathy.box', + & diff --git a/verification/isomip/input_tap/data.pkg b/verification/isomip/input_tap/data.pkg new file mode 100644 index 0000000000..4be52d6aeb --- /dev/null +++ b/verification/isomip/input_tap/data.pkg @@ -0,0 +1,5 @@ +# Packages + &PACKAGES + useShelfIce=.TRUE., + useGrdchk=.TRUE., + & diff --git a/verification/isomip/input_tap/prepare_run b/verification/isomip/input_tap/prepare_run new file mode 100755 index 0000000000..060994b2bf --- /dev/null +++ b/verification/isomip/input_tap/prepare_run @@ -0,0 +1,52 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files from this dir: +fromDir="../input" + +fileList=`( cd $fromDir ; ls bathy.box icetopo.exp1 phi0surf.exp1.jmd95z )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files and pickup files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; ls data* eedata pickup* ones_64b.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/isomip/results/output.htd.txt b/verification/isomip/results/output.htd.txt index e4b1a3e599..dea4f6e6d5 100644 --- a/verification/isomip/results/output.htd.txt +++ b/verification/isomip/results/output.htd.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67n +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Wed Dec 11 11:19:22 EST 2019 +(PID.TID 0000.0001) // Build date: Wed Apr 14 18:06:14 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,7 +47,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -570,22 +570,22 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: iceShelf_Mass.bin (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 210 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 208 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 209 SHIuStar -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 207 SHIgammT -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 208 SHIgammS -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 201 SHIfwFlx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SHIhtFlx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 205 SHIForcT -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 206 SHIForcS +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 207 SHIuStar +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 205 SHIgammT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 206 SHIgammS +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 199 SHIfwFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 200 SHIhtFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 SHIForcT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 204 SHIForcS (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 94 TFLUX (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 95 SFLUX -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 SHI_TauX -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 204 SHI_TauY +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 201 SHI_TauX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SHI_TauY (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 32 WVEL @@ -596,8 +596,8 @@ (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 26 THETA (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 27 SALT (PID.TID 0000.0001) space allocated for all diagnostics: 284 levels -(PID.TID 0000.0001) set mate pointer for diag # 203 SHI_TauX , Parms: UU L1 , mate: 204 -(PID.TID 0000.0001) set mate pointer for diag # 204 SHI_TauY , Parms: VV L1 , mate: 203 +(PID.TID 0000.0001) set mate pointer for diag # 201 SHI_TauX , Parms: UU L1 , mate: 202 +(PID.TID 0000.0001) set mate pointer for diag # 202 SHI_TauY , Parms: VV L1 , mate: 201 (PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 (PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 (PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 @@ -658,7 +658,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -751,10 +751,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -852,7 +858,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -861,10 +867,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1782,6 +1788,9 @@ (PID.TID 0000.0001) shiKinVisc = /* const. kin. viscosity for gammaTurb */ (PID.TID 0000.0001) 1.950000000000000E-06 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; @@ -1867,17 +1876,17 @@ listId= 1 ; file name: surfDiag 23 |ETAN | 1 | 0 | 1 | 0 | 24 |ETANSQ | 2 | 0 | 1 | 0 | 25 |DETADT2 | 3 | 0 | 1 | 0 | - 209 |SHIuStar| 4 | 0 | 1 | 0 | - 207 |SHIgammT| 5 | 0 | 1 | 0 | - 208 |SHIgammS| 6 | 0 | 1 | 0 | - 201 |SHIfwFlx| 7 | 0 | 1 | 0 | - 202 |SHIhtFlx| 8 | 0 | 1 | 0 | - 205 |SHIForcT| 9 | 0 | 1 | 0 | - 206 |SHIForcS| 10 | 0 | 1 | 0 | + 207 |SHIuStar| 4 | 0 | 1 | 0 | + 205 |SHIgammT| 5 | 0 | 1 | 0 | + 206 |SHIgammS| 6 | 0 | 1 | 0 | + 199 |SHIfwFlx| 7 | 0 | 1 | 0 | + 200 |SHIhtFlx| 8 | 0 | 1 | 0 | + 203 |SHIForcT| 9 | 0 | 1 | 0 | + 204 |SHIForcS| 10 | 0 | 1 | 0 | 94 |TFLUX | 11 | 0 | 1 | 0 | 95 |SFLUX | 12 | 0 | 1 | 0 | - 203 |SHI_TauX| 13 | 14 | 1 | 0 | 0 | - 204 |SHI_TauY| 14 | 13 | 1 | 0 | 0 | + 201 |SHI_TauX| 13 | 14 | 1 | 0 | 0 | + 202 |SHI_TauY| 14 | 13 | 1 | 0 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: dynDiag nFlds, nActive, freq & phase , nLev @@ -2003,15 +2012,15 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9497356905926E-07 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2204753822604E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413534212280E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016438930288E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8392471383428E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177411636192E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413537447025E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016438961707E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8392608703612E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1176568613386E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384755401004E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393490928E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7851337391120E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1219396135099E-07 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384755281947E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393489770E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7851387990273E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1216291673438E-07 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8610008531430E-04 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5610070081858E-05 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5952287178024E-04 @@ -2029,1325 +2038,1325 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) %MON vort_a_sd = 1.7682652748312E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396584E-04 (PID.TID 0000.0001) %MON vort_p_sd = 8.7068347070920E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0736234352547E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9536769876219E-15 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0736427789851E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9537480796648E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.11812814352197E-14 2.22401172452680E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24168408156838E-03 + cg2d: Sum(rhs),rhsMax = -5.68434188608080E-14 2.22401113277977E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23989625885741E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.07027055978591E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.04794172397226E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8642 (PID.TID 0000.0001) %MON time_secondsf = 1.5555600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0948737537346E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3331348068385E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7575138765879E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9029249213006E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3320200964114E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3450472661705E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5509628754043E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2733042742526E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8347328044732E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3043844026251E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2660607452459E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1975492562689E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3705321235393E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9428824579131E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8197939622806E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9975059099702E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3261473193849E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1990194409960E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9499238134291E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2210810635896E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0948749275898E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3331369110637E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.9988842550598E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9029285431549E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3320193669614E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3450472662478E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5509628766062E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2733042793124E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8347328045394E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3043844022793E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2660749090457E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1975500372997E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3342396552334E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9428835633601E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8197506803210E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9975057901412E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3261461179164E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1761960085820E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9499237351562E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2210755899455E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413560608813E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016440752987E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8396608932544E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177491897542E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413565863695E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016440804040E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8396831976213E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1176340106742E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384754427958E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393423681E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7852863698089E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1219692062414E-07 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384754234548E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393421799E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7852945884262E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1215450799308E-07 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8611048524691E-04 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5623399948967E-05 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5954585641920E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8612086045238E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5259262111741E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5956883916310E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5956883916310E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147033517754E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3545221443365E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4745849884585E-09 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8612086048653E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5259491428336E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5956876707499E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5956876707499E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4147072239458E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3545272407936E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4745852007523E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1893269965070E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1287136635288E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1893269965002E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1287355268301E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437453891E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652733708E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652733839E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396631E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068346042245E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0737601297380E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9541804467659E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068346042246E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0664023279863E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9270580982482E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.29656310529936E-14 2.22444853038192E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24152264951511E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06984873975761E-14 + cg2d: Sum(rhs),rhsMax = -6.60582699651968E-14 2.22444828515733E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24145267900140E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.92093784717942E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8643 (PID.TID 0000.0001) %MON time_secondsf = 1.5557400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0950254091795E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3335146313957E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.0690369722251E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9035136759747E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3324066939952E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3451538858873E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5513288469469E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2739942359929E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8352827359275E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3044478428597E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2668805122988E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1977071021996E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3709658354482E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9433156917224E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8199117345436E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9977805713131E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3265303338112E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1992538341526E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9501119306209E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2216867382905E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0950285085660E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3335188300542E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7442045849822E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9035202838185E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3324060235327E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3451545028893E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5513408125631E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2739891720071E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8352877176959E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3044501267231E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2669126067343E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1977091815773E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2927305170497E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9433182183111E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8198299944517E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9977827198141E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3265294315876E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1572334294635E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9501127793948E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2216782503729E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413587003559E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016442575671E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8400746306309E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177572138451E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413594276238E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016442646357E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8401055024248E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1176142996402E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384753454978E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393356435E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7854389940368E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1219987914337E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8612088407560E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5636730406857E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5956883916310E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8613125815112E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5272534410983E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5959182002867E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5959182002867E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147179342479E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3548811265954E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4750364100712E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384753187301E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393353830E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7854503695429E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1214725534438E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8612088410975E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5636960738706E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5956876707499E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8613159810890E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5273054030490E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5959176589525E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5959176589525E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4147269653600E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3548992766229E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4750402308181E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1897003060559E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1299790594227E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1897029419162E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1300286005293E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437453933E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652718214E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652718532E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396679E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068345013603E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0738968758314E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9546841446107E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068344987999E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0604968472324E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9053033751733E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.88498130835069E-14 2.22488536632497E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24136278668958E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06940050360499E-14 + cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 2.22488532397568E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24106672142520E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.56141444625070E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8644 (PID.TID 0000.0001) %MON time_secondsf = 1.5559200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0951770714587E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3338944484239E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.8506789178282E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9041024301586E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3327932968715E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3452604963321E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5516947794664E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2746842681259E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8358326417101E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3045112776926E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2677003156072E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1978649466312E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3714006533258E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9437489701858E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8200295311569E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9980552049123E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3269133153932E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1994883731753E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9503000420756E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2222924046784E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0951823242318E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3339004696382E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.4913280444728E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9041112133889E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3327936206092E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3452622416315E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5517276223109E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2746777990039E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8358464470990E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3045178199660E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2677525629203E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1978685159754E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2548704614574E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9437531690681E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8199010347710E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9980615333521E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3269137411103E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1437625291171E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9503025649268E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2222812119072E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413613396516E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016444398341E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8404883504745E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177652358925E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413622684897E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016444488658E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8405277845179E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175972988436E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384752482063E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393289190E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7855916117964E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1220283690918E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8613128177565E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5650061466544E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5959182002867E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8614165474116E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5285807297212E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5961479892359E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5961479892359E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147324935229E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3552401290396E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4754878712516E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384752140197E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393285861E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7856061422836E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1214100064529E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8613162173348E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5650583386562E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5959176589525E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8614258784651E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5286653198462E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5961482446662E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5961482446662E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4147473639642E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3552772219659E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4754979221524E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1900736225953E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1312445112807E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1900811246565E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1313251604544E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437453974E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652702721E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652703292E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396726E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068343984998E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0740336152042E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9551877604007E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068343921075E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0561701539217E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.8893658761414E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.31796828795450E-14 2.22532223395391E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24119876852961E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06891642104698E-14 + cg2d: Sum(rhs),rhsMax = -4.05231403988182E-14 2.22532254834996E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24120980652002E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.31834208915029E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8645 (PID.TID 0000.0001) %MON time_secondsf = 1.5561000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0953287408614E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3342742576137E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5578745025016E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9046911838696E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3331799035698E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3453670972452E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5520606729391E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2753743704407E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8363825218316E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3045747072933E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2685201547329E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1980227886688E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3718358947436E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9441822933034E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8201473522549E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9983298091655E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3272962642294E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1997228468875E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9504881478844E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2228980634284E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0953363600294E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3342820990014E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.9305346674628E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9047022784010E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3331818463495E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3453705121713E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5521240445786E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2753682690986E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8364094603577E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3045877987296E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2685947852233E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1980279040633E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2303258907210E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9441883182019E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8199653821640E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9983423052693E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3272992084685E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1393919464207E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9504931604137E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2228846819739E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413639787686E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016446220995E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8409020527871E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177732558972E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413651089520E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016446330944E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8409500440035E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175826921909E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384751509215E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393221945E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7857442230888E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1220579392164E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8614167836701E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5663393115817E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5961479892359E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8615205022184E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5299080763337E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5963777585376E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5963777585376E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147470296145E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3555991524617E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4759393720084E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384751093242E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393217892E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7857619066863E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1213562748926E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8614261147248E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5664242762125E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5961482446662E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8615385068756E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5300289055615E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5963795250811E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5963795250811E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4147681768156E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3556610821247E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4759585697930E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1904469462992E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1325100184265E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1904617091584E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1326252183674E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454016E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652688014E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652687733E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396773E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068342956430E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0741703281651E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9556913108108E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068342838119E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0548522859063E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.8845101262233E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.04991620636974E-14 2.22575913926630E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24103791034113E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06849933548535E-14 + cg2d: Sum(rhs),rhsMax = -6.22835116814713E-14 2.22575994970888E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24131732316673E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 176 +(PID.TID 0000.0001) cg2d_last_res = 9.97339161969949E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8646 (PID.TID 0000.0001) %MON time_secondsf = 1.5562800000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0954804163212E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3346540593226E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.3981630032325E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9052799370863E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3335665148495E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3454736888230E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5524265286840E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2760645429281E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8369323762879E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3046381315763E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2693400302046E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1981806299356E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3722694338710E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9446156610754E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202651981297E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9986043867945E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3276791798846E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1999570551072E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9506762479963E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2235037145740E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0954905790921E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3346640679331E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.3298134156355E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9052940569568E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3335706676976E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3454793103275E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5525300005303E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2760590507321E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8369768447399E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3046603610264E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2694377978544E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1981872150757E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2253192084395E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9446235319284E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8200234954453E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9986249804670E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3276859100539E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1449044472798E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9506845613984E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2234884982838E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413666177069E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016448043635E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8413157375710E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177812738596E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413679489977E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016448173213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8413722809754E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175702449378E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384750536432E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393154701E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7858968279145E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1220875018087E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8615207384901E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5676725347553E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5963777585376E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8616244463062E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5312354817913E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5966075079307E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5966075079307E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147615425457E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3559581964524E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4763909123404E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384750046440E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393149924E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7859176627855E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1213104943569E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8615387431496E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5677938989303E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5963795250811E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8616538439221E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5313937708443E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5966115460323E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5966115460323E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4147889168320E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3560502253948E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4764222071621E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1908202770941E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1337755816760E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1908449780915E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1339264962342E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454058E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652672352E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396821E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068341927897E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0743069989140E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9561946704072E-15 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652672371E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396820E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068341740018E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0568487022173E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.8918629042300E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.75015598972095E-14 2.22619607827831E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24087347122601E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06807089994329E-14 + cg2d: Sum(rhs),rhsMax = -3.85247389544929E-14 2.22619749018005E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24137571768654E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 176 +(PID.TID 0000.0001) cg2d_last_res = 9.92013437944448E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8647 (PID.TID 0000.0001) %MON time_secondsf = 1.5564600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0956320988619E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3350338533861E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.0370090003088E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9058686898395E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3339531303174E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3455802712778E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5527923449844E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2767547860073E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8374822050963E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3047015504644E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2701599421992E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1983384692012E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3727032330035E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9450490734937E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203830685287E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9988789356516E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3280620628598E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2001911323395E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9508643426220E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2241093601129E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0956448444657E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3350465593525E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.9855749634540E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9058866290794E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3339600934589E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3455885826699E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5529446289038E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2767497264161E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8375483183340E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3047353182474E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2702802503373E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1983463346044E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2418234457384E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9450586789000E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8200755314692E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9989093094617E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3280737857167E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1587956680381E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9508766908070E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2240922967587E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413692564664E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016449866260E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8417294048283E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177892897803E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413707886153E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016450015467E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8417944955209E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175597648186E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384749563715E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393087457E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7860494262744E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1221170568719E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8616246825911E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5690058170345E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5966075079307E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8617283791874E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5325629463810E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5968372377159E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5968372377159E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147760323265E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3563172608193E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4768424922593E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384748999796E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393081957E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7860734106133E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1212719569006E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8616540802108E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5691648068805E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5966115460323E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8617716449097E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5327577292286E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5968442714300E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5968442714300E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148089367194E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3564435961372E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4768886209117E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1911936150078E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1350412013026E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1912309914399E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1352269094539E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454099E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652657841E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652657130E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396868E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068340899402E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0744436186767E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9566978875632E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068340628646E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0615847475337E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9093089529043E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 2.22663305106895E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24071342687691E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06762463180082E-14 + cg2d: Sum(rhs),rhsMax = -4.15223411209809E-14 2.22663511923819E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24138005119299E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.19458069544664E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8648 (PID.TID 0000.0001) %MON time_secondsf = 1.5566400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0957837878552E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3354136398351E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.3697412904527E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9064574420685E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3343397485803E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3456868431732E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5531581228887E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2774450988737E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8380320082465E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3047649640495E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2709798910970E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1984963068381E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3731354898916E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9454825305589E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8205009635633E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9991534567900E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3284449165472E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2004251748269E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9510524316215E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2247149993252E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0957989742193E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3354295646087E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.2517607955692E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9064797973900E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3343501174360E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3456982370181E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5533664976814E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2774409404670E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8381233130939E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3048121881486E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2711209450995E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1985051662974E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.2777618610329E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9454936402410E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8201215673656E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9991949084298E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3284626753033E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1784569237333E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9510694195167E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2246956015256E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413718950473E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016451688870E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8421430545613E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1177973036600E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413736277942E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016451857705E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8422166877203E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175510855519E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384748591065E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393020214E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7862020181693E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1221466044099E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8617286154855E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5703391587076E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5968372377159E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8618323011597E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5338904707179E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5970669499283E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5970669499283E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4147904989482E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3566763459824E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4772941117598E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384747953314E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399393013990E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7862291501994E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1212400502727E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8617718812133E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5705348039173E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5968442714300E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8618915029846E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5341188418050E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5970776051820E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5970776051820E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148276440553E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3568398981068E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4773574083756E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1915669601154E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1363068778928E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1916197034098E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1365246094483E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454141E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652642741E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652641852E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396915E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068339870941E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0745802076686E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9572009599606E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068339506529E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0681263505281E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9334075804125E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.46069872548105E-14 2.22707005402517E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24055173502013E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06715869265437E-14 + cg2d: Sum(rhs),rhsMax = -6.69464483848969E-14 2.22707280542117E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24131162003954E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.41957389968913E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8649 (PID.TID 0000.0001) %MON time_secondsf = 1.5568200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0959354839456E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3357934187290E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.2251422123577E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9070461938190E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3347263740689E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3457934054589E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5535238615465E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2781354825182E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8385817857424E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3048283721484E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2717998756986E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1986541430095E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3735701338760E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9459160322672E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8206188832229E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9994279496694E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3288277364448E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2006590288548E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9512405149616E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2253206325216E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0959528044824E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3358129691904E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.8639882094340E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9070732999351E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3347407070755E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3458081504164E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5537937519755E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2781338266883E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8387010277509E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3048902619264E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2719588659779E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1986636311321E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3279262932237E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9459283165073E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8201616757739E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9994812917791E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3288523324516E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2010779783380E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9512625791350E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2252978788811E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413745334495E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016453511466E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8425566867719E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178053154992E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413764665247E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016453699926E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8426388576495E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175440593852E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384747618480E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392952971E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7863546035999E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1221761444241E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8618325374710E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5716725603924E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5970669499283E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8619362119816E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5352180528606E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5972966418669E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5972966418669E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148049424207E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3570354515031E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4777457708454E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384746906997E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392946024E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7863848815715E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1212142304493E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8618917393034E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5719019425467E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5970776051820E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8620128911505E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5354754633720E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5973113994710E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5973113994710E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148446429251E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3572377069845E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4778280142566E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1919403120762E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1375726095958E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1920109668765E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1378180276642E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454183E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652626593E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396963E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068338842514E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0747167266083E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9577037851093E-15 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652626564E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772396962E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068338376717E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0755369282840E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9607084645437E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.69544411632705E-14 2.22750710070416E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24039100491345E-03 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06674788167021E-14 + cg2d: Sum(rhs),rhsMax = -5.63993296509580E-14 2.22751049784837E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24117417122866E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 177 +(PID.TID 0000.0001) cg2d_last_res = 9.73303770899631E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8650 (PID.TID 0000.0001) %MON time_secondsf = 1.5570000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0960871865294E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3361731900576E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.8791006306080E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9076349450749E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3351130004621E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3458999578719E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5538895610294E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2788259356386E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8391315375970E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3048917751497E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2726198958238E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1988119768799E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3740020739080E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9463495786138E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8207368272257E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9997024140630E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3292105226870E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2008927472908E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9514285925621E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2259262548615E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0961062208097E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3361966284670E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.1168647499434E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9076669171247E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3351318001319E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3459181770659E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5542242653335E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2788292845865E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8392804899708E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3049686703645E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2727932309442E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1988216755732E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3851249370859E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9463626343159E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8201959856447E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9997679259645E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3292424526828E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2240146321286E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9514559757119E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2258985881187E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413771716731E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016455334046E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8429703014623E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178133252985E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413793047980E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016455542132E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8430610053791E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175385533441E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384746645961E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392885729E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7865071825671E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1222056769142E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8619364483061E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5730060201390E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5972966418669E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8620401116735E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5365456925172E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5975263136122E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5975263136122E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148193627820E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3573945775056E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4781974695255E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384745860848E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392878058E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7865406047559E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211940078238E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8620131274848E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5732645702839E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5973113994710E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8621352052564E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5368263277998E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5975454716097E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5975454716097E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148597825264E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3576355741752E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4782997734583E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1923136713075E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1388383961332E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454225E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652611885E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397010E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068337814125E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0748532684441E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9582067180285E-15 +(PID.TID 0000.0001) %MON vort_r_min = -3.1924045414220E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1391059569589E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454224E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652611567E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397009E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068337242560E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0829810588957E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9881336177950E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.66213742558830E-14 2.22794417145590E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24022853529140E-03 + cg2d: Sum(rhs),rhsMax = -3.28626015289046E-14 2.22794819681298E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24097121790797E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06628247770235E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.58961274378736E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8651 (PID.TID 0000.0001) %MON time_secondsf = 1.5571800000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0962388957127E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3365529534543E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.2783793787807E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9082236958646E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3354996334961E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3460065012702E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5542552220784E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2795164594434E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8396812637945E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3049551727384E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2734399531904E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1989698091636E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3744345194421E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9467831696023E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8208547960072E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9999768502924E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3295932782983E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2011264051844E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9516166645565E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2265318728029E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0962591701153E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3365803964200E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.8258634641850E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9082604964787E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3355233233452E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3460281619339E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5546557959692E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2795275887056E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8398606284561E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3050464522202E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2736235244700E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1989792764763E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4414003228206E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9467965513841E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202247181284E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0000542618464E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3296326911243E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2448405134390E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9516494050314E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2264972489250E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413798097182E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016457156612E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8433838986347E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178213330585E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413821426061E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016457384322E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8434831309755E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175344470384E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384745673507E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392818488E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7866597550716E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1222352018849E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8620403480112E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5743395376541E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5975263136122E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8621440004459E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5378733924687E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5977559669790E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5977559669790E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148337600276E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3577537243838E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4786492077919E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384744814870E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392810093E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7866963197770E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211789391251E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8621354416061E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5746214153932E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5975454716097E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8622578083832E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5381706004312E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5977796146746E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5977796146746E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148731529592E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3580321266563E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4787719603075E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1926870376249E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1401042401565E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454267E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652596205E-06 +(PID.TID 0000.0001) %MON vort_r_min = -3.1928001048096E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1403876015609E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454266E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652595026E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397057E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068336785771E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0749897289696E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9587093402273E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068336107487E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0897089446527E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0129204326637E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.57331958361829E-14 2.22838128412507E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.24006569942687E-03 + cg2d: Sum(rhs),rhsMax = -6.05071548420710E-14 2.22838586942099E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24070908845687E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06582250131724E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.86063797704038E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8652 (PID.TID 0000.0001) %MON time_secondsf = 1.5573600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0963906117308E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3369327095444E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.1967204995779E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9088124461100E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3358862684752E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3461130347386E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5546208442374E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2802070537530E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8402309643572E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3050185648410E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2742600462287E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1991276400819E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3748691853079E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9472168052313E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8209727894136E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0002512581093E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3299759998285E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2013600495939E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9518047309834E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2271374845196E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0964116554756E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3369641262035E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5978023773188E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9088539404919E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3359151873764E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3461379478685E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5550861438251E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2802283794003E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8404403497044E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3051226240927E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2744495108640E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1991364413504E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4891809851401E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9472300589617E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202482042077E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0003397853251E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3300227010829E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2613799118264E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9518426677353E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2270934649130E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413824475846E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016458979163E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8437974782912E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178293387799E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413849799413E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016459226497E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8439052345010E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175316311586E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384744701120E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392751247E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7868123211144E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1222647193370E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8621442367967E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5756731157310E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5977559669790E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8622478781691E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5392011501740E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5979855998971E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5979855998971E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148481341346E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3581128918507E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4791009856608E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384743769067E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392742129E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7868520266576E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211686218787E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8622580447485E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5759716395222E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5977796146746E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8623800754678E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5395078996740E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5980136206498E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5980136206498E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148850577597E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3584261515968E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4792438404339E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1930604110439E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1413701392428E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1931972679401E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1416625976561E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454308E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652582246E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652580655E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397104E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068335757456E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0751262413637E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9592121269070E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068334974820E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0950477472518E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0325898315987E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.88418203051333E-14 2.22881842632049E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23990646065487E-03 + cg2d: Sum(rhs),rhsMax = -4.97379915032070E-14 2.22882349551848E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24040448175871E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06538920960664E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.10926100948352E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8653 (PID.TID 0000.0001) %MON time_secondsf = 1.5575400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0965423344880E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3373124578117E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0168298786798E-19 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9094011958636E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3362729105726E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3462195587647E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5549864282484E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2808977179319E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8407806392859E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3050819518166E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2750801758514E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1992854695022E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3753037196902E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9476504854864E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8210908070247E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0005256384192E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3303586911933E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2015941993045E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9519927916619E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2277430863093E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0965637284557E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3373476689080E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.4265847160123E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9094471873695E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3363073037076E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3462473929045E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5555132846616E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2809308714323E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8410186139656E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3051962429472E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2752712308803E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1992932082593E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5223075604337E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9476631813910E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202668872056E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0006240482085E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3304121432128E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2718469505882E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9520355833388E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2276869624128E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413850852726E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016460801699E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8442110404338E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178373424631E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413878167969E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016461068655E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8443273160144E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175300063077E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384743728798E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392684006E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7869648806960E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1222942292728E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8622481145331E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5770067518175E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5979855998971E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8623517450540E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5405289671105E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5982152147160E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5982152147160E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148624850578E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3584720796740E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4795528031315E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384742723440E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392674165E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7870077254196E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211626901106E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8623803118486E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5773148593894E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5980136206498E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8625014313990E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5408382915102E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5982472859277E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5982472859277E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4148959707405E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3588166656264E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4797147215947E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1934337912160E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1426360948009E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1935955914760E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1429310081524E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454350E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652566238E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652565443E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397152E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068334729173E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0752628449744E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9597152213462E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068333847552E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0984398529523E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0450875340474E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.95159468982820E-14 2.22925560309941E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23974345837308E-03 + cg2d: Sum(rhs),rhsMax = -3.59712259978551E-14 2.22926109434704E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.24007098062887E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06495992720717E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.32622533658864E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8654 (PID.TID 0000.0001) %MON time_secondsf = 1.5577200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0966940639848E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3376921987770E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.0920492963001E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9099899451233E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3366595554075E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3463260722869E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5553519716830E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2815884523381E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8413302885790E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3051453332554E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2759003421073E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1994432970089E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3757379048621E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9480842103784E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8212088497185E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0007999900974E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3307413500942E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2018281659632E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9521808467316E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2283486827072E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0967154752824E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3377308741530E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.2003267587144E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9100401953466E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3366995848889E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3463563751627E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5559354919301E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2816340900026E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8415945054118E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3052664601784E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2760889814147E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1994496374520E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5367983297055E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9480959730473E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202813158826E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0009067024426E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3308007213418E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2750466746007E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9522280028207E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2282776188231E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413877227820E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016462624220E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8446245850650E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178453441088E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413906531665E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016462910798E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8447493755712E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175294820204E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384742756542E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392616766E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7871174338173E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1223237316959E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8623519814312E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5783404473973E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5982152147160E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8624556004106E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5418568433575E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5984448100565E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5984448100565E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148768128450E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3588312880612E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4800046602066E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384741677992E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392606202E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7871634160832E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211608107290E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8625016677953E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5786511412688E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5982472859277E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8626213856433E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5421622566243E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5984804328051E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5984804328051E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149064780434E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3592029638955E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4801840001446E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1938071788333E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1439021069062E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1939946042264E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1441932913398E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454392E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652550586E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652549865E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397199E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068333700926E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0753994496819E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9602183938139E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068332728209E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0995084374146E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0490250467570E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.96189764223709E-14 2.22969281352869E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23958037831818E-03 + cg2d: Sum(rhs),rhsMax = -5.01820807130571E-14 2.22969864834309E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23972529594418E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06450926873024E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.50577074733115E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8655 (PID.TID 0000.0001) %MON time_secondsf = 1.5579000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0968457998470E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3380719316159E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.7326984229447E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9105786939053E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3370462039126E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3464325765385E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5557174780365E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2822792566102E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8418799122406E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3052087094627E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2767205438752E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1996011225672E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3761703574261E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9485179798980E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8213269167099E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0010743144801E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3311239743170E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2020622046543E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9523688961643E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2289542719532E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0968670073308E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3381136036661E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.5064404656468E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9106329327609E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3370919583786E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3464648051435E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5563514267062E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2823370462365E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8421672919146E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3053325648084E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2769032787330E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1996058093102E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5312316200853E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9485285131704E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8202921279980E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0011875184312E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3311881921140E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2705554584691E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9524198175018E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2288654626472E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413903601129E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016464446727E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8450381121866E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178533437176E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413934890440E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016464752924E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8451714132240E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175299759070E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384741784352E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392549527E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7872699804790E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1223532266077E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8624558368010E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5796742025503E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5984448100565E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8625594452321E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5431847770996E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5986743845902E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5986743845902E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4148911174838E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3591905173782E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4804565568888E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384740632726E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392538240E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7873190986678E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211626803785E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8626216220548E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5799809679731E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5984804328051E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8627395577959E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5434806308676E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5987129152684E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5987129152684E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149172079383E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3595846463934E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4806512001549E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1941805733659E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1451681738279E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1943938207839E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1454502441282E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454434E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652535055E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652533652E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397247E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068332672715E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0755360910566E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9607216731811E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068331618710E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0981176621502E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0439018687128E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.47260023356466E-14 2.23013006177531E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23942193922618E-03 + cg2d: Sum(rhs),rhsMax = -5.49560397189452E-14 2.23013617767426E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23938234767114E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06406393954232E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.64357282663656E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8656 (PID.TID 0000.0001) %MON time_secondsf = 1.5580800000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0969975426971E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3384516573495E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.0503182919146E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9111674421985E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3374328575885E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3465390713641E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5560829446908E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2829701318736E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8424295102708E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3052720803403E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2775407823597E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1997589468576E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3766040616287E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9489517940438E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8214450084633E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0013486100493E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3315065677061E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2022960351693E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9525569399829E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2295598551842E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0970184485002E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3384957462711E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.3715444200210E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9112253745155E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3374843541334E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3465726283414E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5567601981281E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2830388537884E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8427364705049E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3053940153589E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2777148122464E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1997618145293E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5067362787068E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9489608992596E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203000301928E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0014663957959E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3315743848413E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2588029452363E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9526109654567E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2294506802081E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413929972654E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016466269219E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8454516218008E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178613412901E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413963244242E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016466595035E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8455934290224E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175314128898E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384740812228E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392482288E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7874225206820E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1223827140088E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8625596816356E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5810080154528E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5986743845902E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8626632787745E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5445127702870E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5989039406237E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5989039406237E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4149053989815E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3595497668687E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4809084931794E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384739587642E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392470277E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7874747731917E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211680226227E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8627397942223E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5813051790541E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5987129152684E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8628556947519E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5447945304194E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5989446309048E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5989446309048E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149287570101E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3599616223520E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4811160026762E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1945539749569E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1464342974256E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1947927608428E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1467029306956E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454475E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652520581E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652518495E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397294E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068331644542E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0756726021726E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9612244764330E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068330520281E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0944016019525E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0302118971585E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.89608353859694E-14 2.23056734047512E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23925947289027E-03 + cg2d: Sum(rhs),rhsMax = -4.57411886145564E-14 2.23057369049588E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23906116654468E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06360663095011E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.73605047617204E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8657 (PID.TID 0000.0001) %MON time_secondsf = 1.5582600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0971492922040E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3388313751224E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.6812643860899E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9117561900037E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3378195158603E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3466455558842E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5564483727781E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2836610771553E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8429790826858E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3053354458720E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2783610575768E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1999167687570E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3770372008804E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9493856528147E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8215631246480E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0016228776723E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3318891282946E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2025300048645E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9527449781671E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2301654302454E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0971699221552E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3388772342608E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.9438439590685E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9118175025988E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3378767261510E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3466798279433E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5571613913111E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2837388020843E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8433017959105E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3054504590326E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2785243883580E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1999177464097E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4666213239129E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9493932395518E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203057739887E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0017433667998E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3319592077951E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2410275753490E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9528014335553E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2300335979436E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413956342395E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016468091695E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8458651139098E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178693368268E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413991593020E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016468437130E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8460154230135E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175337245175E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384739840170E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392415050E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7875750544271E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1224121939031E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8626635151913E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5823418880639E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5989039406237E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8627671013596E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5458408229458E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5991334769767E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5991334769767E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4149196573258E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3599090373443E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4813604690907E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384738542744E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392402316E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7876304396723E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211765854261E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8628559311931E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5826248956329E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5989446309048E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8629696786377E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5461052608731E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5991755246770E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5991755246770E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149416222083E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3603340951059E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4815782634924E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1949273837946E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1477004777239E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1951909668093E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1479525958094E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454517E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652504892E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397341E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068330616403E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0758092229284E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9617276479015E-15 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652502964E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397342E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068329433400E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0887523605426E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.0093998358479E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.17363929475323E-14 2.23100465618803E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23909663383089E-03 + cg2d: Sum(rhs),rhsMax = -7.59392548843607E-14 2.23101121477802E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23877310265469E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06318219602783E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.78092471309620E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8658 (PID.TID 0000.0001) %MON time_secondsf = 1.5584400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0973010484930E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3392110853161E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.4665125908295E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9123449372701E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3382061768445E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3467520313831E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5568137635730E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2843520926965E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8435286294777E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3053988062369E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2791813687726E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2000745892587E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3774708045530E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9498195562054E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8216812654142E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0018971170061E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3322716566565E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2027636983978E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9529330106648E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2307709971833E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0973215424524E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3392580543413E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.9704625422800E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9124093094440E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3382690386969E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3467864286325E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5575550607500E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2844364108637E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8438632905998E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3055017393993E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2793328691152E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2000736935165E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.4157769733585E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9498256451375E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203101303228E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0020185897840E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3323426482880E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2191112689979E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9529912568398E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2306146572454E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9413982710352E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016469914157E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8462785885157E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178773303283E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9414019936731E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016470279210E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8464373952423E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175368483459E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384738868177E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392347812E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7877275817150E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1224416662935E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8627673377895E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5836758204097E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5991334769767E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8628709133494E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5471689338553E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5993629939939E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5993629939939E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4149338925322E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3602683283364E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4818124846179E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384737498032E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392334355E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7877860981263E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1211881388695E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8629699150934E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5839414290830E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5991755246770E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8630815249359E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5474142179119E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5994055889728E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5994055889728E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149561484256E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3607025294673E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4820380184113E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1953008000208E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1489667135590E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1955880202914E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1492005701293E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454559E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652489866E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652487902E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397389E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068329588300E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0759457556414E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9622305505663E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068328357812E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0817689467732E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9836723734810E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.14033260401447E-14 2.23144200391436E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23893632003587E-03 + cg2d: Sum(rhs),rhsMax = -4.37427871702312E-14 2.23144877808296E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23852970652360E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06273363760911E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.77752553758015E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8659 (PID.TID 0000.0001) %MON time_secondsf = 1.5586200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0974528115783E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3395907882200E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7575138765879E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9129336840882E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3385928432011E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3468584967781E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5571791152970E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2850431781530E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8440781506526E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3054621612324E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2800017165217E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2002324079515E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3779019319461E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9502535042203E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8217994308961E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0021713295058E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3326541529248E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2029971251767E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9531210377237E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2313765604142E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0974734016019E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3396382508046E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.2535639251374E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9130008019862E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3386612790824E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3468924914474E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5579416984787E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2851314576265E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8444212362243E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3055478908016E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2801411152329E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2002297340740E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3599426156780E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9502582221946E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203138667142E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0022923294073E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3327247695531E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1953262192088E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9531805141432E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2311943955466E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9414009076525E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016471736605E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8466920456207E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178853217953E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9414048275335E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016472121273E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8468593457516E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175407273784E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384737896250E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392280575E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7878801025466E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1224711311794E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8628711497925E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5850098112641E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5993629939939E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8629747142387E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5484971039457E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5995924917549E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5995924917549E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4149481046413E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3606276401324E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4822645397676E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384736453508E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392266395E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7879417485692E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1212024730894E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8630817614058E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5852561812667E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5994055889728E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8631913734393E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5487227950616E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5996348617319E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5996348617319E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149724976218E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3610676017952E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4824954761063E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1956742230943E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1502330058180E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1959835564511E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1504481822589E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454601E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652474672E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652472792E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397436E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068328560234E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0760821623278E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9627329785522E-15 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068327292573E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0741771788892E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9557035016294E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.75175454539567E-14 2.23187938387206E-04 -(PID.TID 0000.0001) cg2d_init_res = 1.23877594960600E-03 + cg2d: Sum(rhs),rhsMax = -6.53921361504217E-14 2.23188639388376E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.23833667186199E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 178 -(PID.TID 0000.0001) cg2d_last_res = 9.06227554802966E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.72728301871255E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8660 (PID.TID 0000.0001) %MON time_secondsf = 1.5588000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0976045809614E-04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3399704829762E-04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.1053585879059E-20 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9135224303808E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3389795137063E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3469649521980E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5575444275219E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2857343344527E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8446276462207E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3055255109367E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2808221008561E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2003902246080E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3783351322813E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9506874968477E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8219176209615E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0024455134648E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3330366181860E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2032305225981E-13 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9533090590400E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2319821150301E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0976255647552E-04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3400179226216E-04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7042767101649E-20 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.9135920041224E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3390534462097E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3469981084925E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5583221717881E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2858239836416E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8449761474379E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3055891256357E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.2809499278125E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2003859313775E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3049730734026E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9506910648246E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8203177222221E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0025649417650E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3331057062030E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1720390877916E-13 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9533693205230E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2317733935854E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9414035440915E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016473559037E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8471054852268E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1178933112283E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9414076608797E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9016473963321E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8472812745821E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1175453095603E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384736924389E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392213339E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7880326169227E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1225005885655E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8629749506950E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5863438615614E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5995924917549E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8630785039059E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5498253332690E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5998219709116E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5998219709116E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4149622936397E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3609869719579E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.4827166345460E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384735409174E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399392198435E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7880973910162E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1212193964200E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8631916099231E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.5865705518794E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5996348617319E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8632994705558E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.5500322893317E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5998634237218E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5998634237218E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4149906421707E-08 +(PID.TID 0000.0001) %MON ke_max = 2.3614301434247E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.4829509992490E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.1960476530917E-08 -(PID.TID 0000.0001) %MON vort_r_max = 8.1514993545502E-08 +(PID.TID 0000.0001) %MON vort_r_min = -3.1963772776109E-08 +(PID.TID 0000.0001) %MON vort_r_max = 8.1516966687813E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437454643E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652459619E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397483E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068327532203E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0762185958721E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9632354254314E-15 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682652457439E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772397484E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068326236131E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0667357065472E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.9282882937130E-15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 8660 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 27.575645729433745 -(PID.TID 0000.0001) System time: 0.44938398851081729 -(PID.TID 0000.0001) Wall clock time: 28.441509962081909 +(PID.TID 0000.0001) User time: 27.873967304360121 +(PID.TID 0000.0001) System time: 0.46694801468402147 +(PID.TID 0000.0001) Wall clock time: 28.770398855209351 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.47437300113961101 -(PID.TID 0000.0001) System time: 0.11273700324818492 -(PID.TID 0000.0001) Wall clock time: 0.59548616409301758 +(PID.TID 0000.0001) User time: 0.42588099977001548 +(PID.TID 0000.0001) System time: 0.10675399843603373 +(PID.TID 0000.0001) Wall clock time: 0.54379081726074219 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 27.098088145256042 -(PID.TID 0000.0001) System time: 0.33662898838520050 -(PID.TID 0000.0001) Wall clock time: 27.842831850051880 +(PID.TID 0000.0001) User time: 27.444154530763626 +(PID.TID 0000.0001) System time: 0.36017601191997528 +(PID.TID 0000.0001) Wall clock time: 28.222666025161743 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.57061806321144104 -(PID.TID 0000.0001) System time: 0.23922999203205109 -(PID.TID 0000.0001) Wall clock time: 1.2106890678405762 +(PID.TID 0000.0001) User time: 0.56653901934623718 +(PID.TID 0000.0001) System time: 0.22069700062274933 +(PID.TID 0000.0001) Wall clock time: 1.1993308067321777 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 26.527446389198303 -(PID.TID 0000.0001) System time: 9.7392976284027100E-002 -(PID.TID 0000.0001) Wall clock time: 26.632115840911865 +(PID.TID 0000.0001) User time: 26.877594769001007 +(PID.TID 0000.0001) System time: 0.13947302103042603 +(PID.TID 0000.0001) Wall clock time: 27.023310899734497 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 26.527285456657410 -(PID.TID 0000.0001) System time: 9.7390979528427124E-002 -(PID.TID 0000.0001) Wall clock time: 26.631960630416870 +(PID.TID 0000.0001) User time: 26.877457380294800 +(PID.TID 0000.0001) System time: 0.13946905732154846 +(PID.TID 0000.0001) Wall clock time: 27.023168563842773 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 26.526977300643921 -(PID.TID 0000.0001) System time: 9.7387999296188354E-002 -(PID.TID 0000.0001) Wall clock time: 26.631645202636719 +(PID.TID 0000.0001) User time: 26.877153337001801 +(PID.TID 0000.0001) System time: 0.13946104049682617 +(PID.TID 0000.0001) Wall clock time: 27.022853851318359 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2206150293350220 -(PID.TID 0000.0001) System time: 1.1240988969802856E-002 -(PID.TID 0000.0001) Wall clock time: 1.2324309349060059 +(PID.TID 0000.0001) User time: 1.2185905575752258 +(PID.TID 0000.0001) System time: 4.6930015087127686E-003 +(PID.TID 0000.0001) Wall clock time: 1.2233810424804688 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.5932998657226562E-004 -(PID.TID 0000.0001) System time: 1.4007091522216797E-005 -(PID.TID 0000.0001) Wall clock time: 5.7220458984375000E-004 +(PID.TID 0000.0001) User time: 4.9328804016113281E-004 +(PID.TID 0000.0001) System time: 1.2964010238647461E-005 +(PID.TID 0000.0001) Wall clock time: 5.0473213195800781E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.2995471954345703E-004 -(PID.TID 0000.0001) System time: 7.0035457611083984E-006 -(PID.TID 0000.0001) Wall clock time: 2.4867057800292969E-004 +(PID.TID 0000.0001) User time: 1.7249584197998047E-004 +(PID.TID 0000.0001) System time: 3.9935111999511719E-006 +(PID.TID 0000.0001) Wall clock time: 1.7094612121582031E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6641616821289062E-004 -(PID.TID 0000.0001) System time: 3.0100345611572266E-006 -(PID.TID 0000.0001) Wall clock time: 1.6880035400390625E-004 +(PID.TID 0000.0001) User time: 2.0873546600341797E-004 +(PID.TID 0000.0001) System time: 1.8984079360961914E-005 +(PID.TID 0000.0001) Wall clock time: 2.3126602172851562E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1470369100570679 -(PID.TID 0000.0001) System time: 4.8840343952178955E-003 -(PID.TID 0000.0001) Wall clock time: 1.1522440910339355 +(PID.TID 0000.0001) User time: 1.1931296586990356 +(PID.TID 0000.0001) System time: 8.0459713935852051E-003 +(PID.TID 0000.0001) Wall clock time: 1.2033023834228516 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 7.6100945472717285E-002 -(PID.TID 0000.0001) System time: 2.8899312019348145E-004 -(PID.TID 0000.0001) Wall clock time: 7.6408863067626953E-002 +(PID.TID 0000.0001) User time: 7.9334974288940430E-002 +(PID.TID 0000.0001) System time: 1.8900632858276367E-004 +(PID.TID 0000.0001) Wall clock time: 7.9548358917236328E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.0507428646087646 -(PID.TID 0000.0001) System time: 1.1765986680984497E-002 -(PID.TID 0000.0001) Wall clock time: 6.0641522407531738 +(PID.TID 0000.0001) User time: 6.2469160556793213 +(PID.TID 0000.0001) System time: 1.6611963510513306E-002 +(PID.TID 0000.0001) Wall clock time: 6.2648520469665527 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.9162460565567017 -(PID.TID 0000.0001) System time: 8.7470114231109619E-003 -(PID.TID 0000.0001) Wall clock time: 8.9277081489562988 +(PID.TID 0000.0001) User time: 9.0219078063964844 +(PID.TID 0000.0001) System time: 1.7320007085800171E-002 +(PID.TID 0000.0001) Wall clock time: 9.0403988361358643 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2436389923095703E-002 -(PID.TID 0000.0001) System time: 1.7905235290527344E-004 -(PID.TID 0000.0001) Wall clock time: 1.2627363204956055E-002 +(PID.TID 0000.0001) User time: 1.2695550918579102E-002 +(PID.TID 0000.0001) System time: 1.7401576042175293E-004 +(PID.TID 0000.0001) Wall clock time: 1.2891530990600586E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.18205726146697998 -(PID.TID 0000.0001) System time: 1.9198656082153320E-004 -(PID.TID 0000.0001) Wall clock time: 0.18228864669799805 +(PID.TID 0000.0001) User time: 0.19081974029541016 +(PID.TID 0000.0001) System time: 4.6044588088989258E-005 +(PID.TID 0000.0001) Wall clock time: 0.19090199470520020 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.5929759740829468 -(PID.TID 0000.0001) System time: 3.7196278572082520E-004 -(PID.TID 0000.0001) Wall clock time: 4.5940034389495850 +(PID.TID 0000.0001) User time: 4.6247634887695312 +(PID.TID 0000.0001) System time: 2.7999281883239746E-004 +(PID.TID 0000.0001) Wall clock time: 4.6254088878631592 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.34982585906982422 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.34987282752990723 +(PID.TID 0000.0001) User time: 0.33398389816284180 +(PID.TID 0000.0001) System time: 4.1991472244262695E-005 +(PID.TID 0000.0001) Wall clock time: 0.33407068252563477 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.56241464614868164 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.56257843971252441 +(PID.TID 0000.0001) User time: 0.57579088211059570 +(PID.TID 0000.0001) System time: 3.9011240005493164E-005 +(PID.TID 0000.0001) Wall clock time: 0.57624840736389160 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.8016328811645508E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.8034925460815430E-002 +(PID.TID 0000.0001) User time: 2.3684978485107422E-002 +(PID.TID 0000.0001) System time: 1.1999905109405518E-003 +(PID.TID 0000.0001) Wall clock time: 2.4910449981689453E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6379356384277344E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 1.4948844909667969E-004 +(PID.TID 0000.0001) System time: 9.9837779998779297E-006 (PID.TID 0000.0001) Wall clock time: 1.6260147094726562E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.27722311019897461 -(PID.TID 0000.0001) System time: 7.9649984836578369E-003 -(PID.TID 0000.0001) Wall clock time: 0.28547000885009766 +(PID.TID 0000.0001) User time: 0.27843904495239258 +(PID.TID 0000.0001) System time: 1.4699041843414307E-002 +(PID.TID 0000.0001) Wall clock time: 0.29320883750915527 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.9799673557281494 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.9813654422760010 +(PID.TID 0000.0001) User time: 2.9620256423950195 +(PID.TID 0000.0001) System time: 8.1609785556793213E-003 +(PID.TID 0000.0001) Wall clock time: 2.9713556766510010 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.17128491401672363 -(PID.TID 0000.0001) System time: 1.1948972940444946E-002 -(PID.TID 0000.0001) Wall clock time: 0.18323159217834473 +(PID.TID 0000.0001) User time: 0.15649509429931641 +(PID.TID 0000.0001) System time: 2.3992002010345459E-002 +(PID.TID 0000.0001) Wall clock time: 0.18048810958862305 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1459093093872070E-002 -(PID.TID 0000.0001) System time: 4.0039002895355225E-002 -(PID.TID 0000.0001) Wall clock time: 7.1504592895507812E-002 +(PID.TID 0000.0001) User time: 3.3214330673217773E-002 +(PID.TID 0000.0001) System time: 4.3990999460220337E-002 +(PID.TID 0000.0001) Wall clock time: 7.7208518981933594E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -3442,9 +3451,9 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 24940 +(PID.TID 0000.0001) // No. barriers = 24880 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 24940 +(PID.TID 0000.0001) // Total barrier spins = 24880 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output.icefront.txt b/verification/isomip/results/output.icefront.txt index c5ae63b4cf..29a4fbabab 100644 --- a/verification/isomip/results/output.icefront.txt +++ b/verification/isomip/results/output.icefront.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67n +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Wed Dec 11 11:19:22 EST 2019 +(PID.TID 0000.0001) // Build date: Wed Apr 14 18:06:14 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,7 +47,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -723,12 +723,12 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: frontdepth.xuyun (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 209 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 207 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 198 SHIfwFlx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 199 SHIhtFlx -(PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 208 ICFfwFlx -(PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 209 ICFhtFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 196 SHIfwFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 197 SHIhtFlx +(PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 206 ICFfwFlx +(PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 207 ICFhtFlx (PID.TID 0000.0001) space allocated for all diagnostics: 62 levels (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: shelficeDiag (PID.TID 0000.0001) Levels: 1. @@ -780,7 +780,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -873,10 +873,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -974,7 +980,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -983,10 +989,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1838,6 +1844,9 @@ (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1880,6 +1889,9 @@ (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' (PID.TID 0000.0001) ; @@ -1934,8 +1946,8 @@ listId= 1 ; file name: shelficeDiag 2 | 2 | 18000.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 198 |SHIfwFlx| 1 | 0 | 1 | 0 | - 199 |SHIhtFlx| 2 | 0 | 1 | 0 | + 196 |SHIfwFlx| 1 | 0 | 1 | 0 | + 197 |SHIhtFlx| 2 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: icefrontDiag nFlds, nActive, freq & phase , nLev @@ -1943,8 +1955,8 @@ listId= 2 ; file name: icefrontDiag levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 levels: 26 27 28 29 30 diag# | name | ipt | iMate | kLev| count | mate.C| - 208 |ICFfwFlx| 3 | 0 | 30 | 0 | - 209 |ICFhtFlx| 33 | 0 | 30 | 0 | + 206 |ICFfwFlx| 3 | 0 | 30 | 0 | + 207 |ICFhtFlx| 33 | 0 | 30 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 0 ------------------------------------------------------------------------ @@ -2042,15 +2054,15 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.5793451982059E-14 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3084934980920E-16 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9006712454661E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000056936508E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3995309114464E-05 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2039299503794E-08 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9006793643221E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000057549974E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4483626423380E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2600433084504E-08 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399726072437E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399997687770E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7908352267916E-05 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.1160203740469E-08 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399722753896E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399997662561E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8108610187135E-05 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.1390566561142E-08 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 @@ -2068,1327 +2080,1327 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON vort_a_sd = 1.7365065484877E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593269E-04 (PID.TID 0000.0001) %MON vort_p_sd = 7.7973631850647E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.9104001852290E-19 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.5045217422668E-19 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.9972117152107E-19 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.5412222350495E-19 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.22706679757923E-14 1.14227506369668E-05 -(PID.TID 0000.0001) cg2d_init_res = 8.47195858002596E+00 + cg2d: Sum(rhs),rhsMax = -2.27287400055357E-15 1.15387004489047E-05 +(PID.TID 0000.0001) cg2d_init_res = 8.47197151742252E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 214 -(PID.TID 0000.0001) cg2d_last_res = 9.47521434115772E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.46948129145412E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4759726518294E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5536459705729E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.7740110229776E-23 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6709884006435E-07 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3348555988801E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3228492097303E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3848863109393E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5346938351092E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0027371150340E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1278972603856E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4890850272085E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0389422579609E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.0050028545442E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.1113195109898E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.5307933862127E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2653749445073E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7769373282208E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.0067854088817E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0492266718346E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0132314373494E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4905166176118E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5697661257049E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0397884066997E-23 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.7171497441705E-07 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3778323284989E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3660960158338E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4014370470290E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5762849048778E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0136559342902E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1606739348667E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5554103356253E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.1266773591500E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.0614342325433E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.1463541465261E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.6252562269732E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2810530398269E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7953094616386E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.0533707320495E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0610563109936E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0249475484330E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9013410087871E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000113768838E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.7881797284001E-05 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0373354564023E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9013572233047E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000114994381E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.8856976215958E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0485185309605E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399452752663E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399995379811E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5772132242687E-05 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.2179852713209E-08 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399446125100E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399995329449E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.6172050746124E-05 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.2638952333768E-08 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.2280297524914E-11 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0821517263616E-11 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.2349308236927E-11 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1206467951900E-07 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.8870098870565E-07 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0661623969325E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1790030160421E-06 -(PID.TID 0000.0001) %MON pe_b_mean = -1.0775523761358E-09 -(PID.TID 0000.0001) %MON ke_max = 8.9067364866405E-12 -(PID.TID 0000.0001) %MON ke_mean = 5.3936850705386E-14 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1698925253898E-07 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9943927511843E-07 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0771856769832E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1890348359582E-06 +(PID.TID 0000.0001) %MON pe_b_mean = -1.0888073549170E-09 +(PID.TID 0000.0001) %MON ke_max = 9.1210729134465E-12 +(PID.TID 0000.0001) %MON ke_mean = 5.5154732911392E-14 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -9.2796684611965E-10 -(PID.TID 0000.0001) %MON vort_r_max = 9.1475693538671E-10 +(PID.TID 0000.0001) %MON vort_r_min = -9.3930347184519E-10 +(PID.TID 0000.0001) %MON vort_r_max = 9.2596079024559E-10 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969614E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065511410E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593252E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973619498287E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.7684862593305E-14 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3383134717631E-14 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065512906E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593251E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973619365540E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.8960941722889E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3904753597641E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.36120020705266E-14 1.79528571440471E-05 -(PID.TID 0000.0001) cg2d_init_res = 3.35493216586776E+00 + cg2d: Sum(rhs),rhsMax = -1.78468351208494E-14 1.81350493292222E-05 +(PID.TID 0000.0001) cg2d_init_res = 3.35496501460956E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 214 -(PID.TID 0000.0001) cg2d_last_res = 9.12833133981749E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.13921387448996E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4412019822063E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8380039137692E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.9909843521588E-23 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1570990796033E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.0459704459686E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7058455565745E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7324488273807E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.9183830173039E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1251620632700E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.0425665461268E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3593765503668E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8398371136152E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1795796761645E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.7593992910251E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.0958770395557E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.4824760395674E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.9312813063080E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.2125989914520E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5268670210757E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4356301004439E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4648255591067E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8680827352350E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.3183072535980E-23 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1688374488382E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.1158720545184E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.7927895670113E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7892521672945E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.0210609495154E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1598740384975E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1297141648398E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3759933226056E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8625157230318E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1928741871270E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.8468593110136E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.1191096209375E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5252646908792E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.9720198113294E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.3087866197736E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.5555162649554E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.4638528997746E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9020098497381E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000170536332E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.3170062018200E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5521606147701E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9020341455027E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000172373087E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.3316175643621E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5688910287433E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399179811123E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399993074510E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.3608197272766E-05 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.3113107469453E-08 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.1206473181989E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.9294720456620E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0661623969325E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4081119829049E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2008755163128E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3587687837848E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9053346134793E-06 -(PID.TID 0000.0001) %MON pe_b_mean = -3.0457768371942E-09 -(PID.TID 0000.0001) %MON ke_max = 6.0183000486470E-11 -(PID.TID 0000.0001) %MON ke_mean = 3.5185373251320E-13 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399169880452E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399992999031E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.4207405289591E-05 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.3799942276080E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.1698930546492E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.0373679854211E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0771856769832E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4250134786251E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2277786191880E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3832118867977E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9357898452252E-06 +(PID.TID 0000.0001) %MON pe_b_mean = -3.0781111398198E-09 +(PID.TID 0000.0001) %MON ke_max = 6.1634783535794E-11 +(PID.TID 0000.0001) %MON ke_mean = 3.5981438552365E-13 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3015511729171E-09 -(PID.TID 0000.0001) %MON vort_r_max = 2.2674579093743E-09 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969460E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065525634E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593089E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973588419925E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7826818281090E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -7.2420118982132E-14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3296849167471E-09 +(PID.TID 0000.0001) %MON vort_r_max = 2.2952444993508E-09 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969458E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065525253E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593087E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973587963541E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.8228168576879E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -7.4060527053374E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-14 2.44659483622722E-05 -(PID.TID 0000.0001) cg2d_init_res = 2.43586133118817E+00 + cg2d: Sum(rhs),rhsMax = 2.44249065417534E-15 2.47142847242744E-05 +(PID.TID 0000.0001) cg2d_init_res = 2.43588926630215E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 212 -(PID.TID 0000.0001) cg2d_last_res = 9.87615467928152E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.89393987727738E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.0163861560043E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.1255306088116E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.9819687043176E-23 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0893421001051E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.7260485652065E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4962934848518E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0516801067498E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2785411091951E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8102564809438E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6176194229455E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.3707282187247E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.3080138211396E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8969964074714E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3585296285174E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.6281508330725E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.7068907031390E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.8108595715325E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2500527384661E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4305680504432E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.1943077027603E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.0524128375193E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.1701599904620E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6636614507196E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.1112078294393E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.8225845438283E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5145103183126E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0643323706900E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2930571136438E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.8863843899307E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6354569060526E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.3997179381857E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.3485075977106E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9184208473500E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3738444040654E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.6683950944889E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.7871566718944E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.8922350242484E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2646818476845E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4808393461506E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.2429615611769E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9026777693380E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000227239066E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.7545187742353E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0648736725806E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9027101319570E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000229686171E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.7739806834032E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.0871271313071E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398907247394E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399990771865E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.1416588302917E-05 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.3960220052715E-08 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4081121616281E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2116030573807E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.3587687837848E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1292115657526E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8382872582400E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.0865157429195E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.6262518332871E-06 -(PID.TID 0000.0001) %MON pe_b_mean = -5.8474807652253E-09 -(PID.TID 0000.0001) %MON ke_max = 2.0468651903262E-10 -(PID.TID 0000.0001) %MON ke_mean = 1.1557597690051E-12 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398894019521E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399990671304E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.2214715438852E-05 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.4873792670281E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4250136594934E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2386372917710E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.3832118867977E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1668576240933E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8852225711739E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1353410145490E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.6940609591267E-06 +(PID.TID 0000.0001) %MON pe_b_mean = -5.9104074931786E-09 +(PID.TID 0000.0001) %MON ke_max = 2.0963140880051E-10 +(PID.TID 0000.0001) %MON ke_mean = 1.1819218095956E-12 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.0138637899863E-09 -(PID.TID 0000.0001) %MON vort_r_max = 3.9518345071161E-09 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981968938E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065508152E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660592539E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973533827905E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.6339694259783E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4775258994430E-13 +(PID.TID 0000.0001) %MON vort_r_min = -4.0629460864331E-09 +(PID.TID 0000.0001) %MON vort_r_max = 4.0002678380531E-09 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981968931E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065510381E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660592531E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973532804613E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.7163186205279E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.5111795862198E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.32986979603811E-15 3.09326893681132E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.91892677116397E+00 + cg2d: Sum(rhs),rhsMax = 2.59792187762287E-14 3.12467030144930E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.91895252149722E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 212 -(PID.TID 0000.0001) cg2d_last_res = 7.08937588454176E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.11931653565809E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.2251980104326E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.3174769896624E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.3201103831662E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.2408405117972E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.2396286801846E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7344141110600E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9039587966840E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.3209359584063E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2265723731841E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7956576289394E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.5066957140391E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.9969711544003E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.5269496274939E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0156705516238E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.3311764392056E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1490924618137E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1494591967612E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6210860974825E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.6571538845717E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.1530263087747E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.2831297194609E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.3759522074791E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.6582520620149E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.2755930848899E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.2519385371499E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7676506909856E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9268874991154E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.3357723846915E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2403185322613E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8267739082956E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.5495853841975E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.0578525433524E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.5555870628534E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0383898640715E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.3903402273844E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1628365622943E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1631949932704E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6400117278492E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.7326468154270E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2244330004415E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9033447692097E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000283877151E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.1913571220849E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5754847387753E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9033851843250E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000286933744E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.2156605743192E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6032370884469E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398635060808E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399988471870E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.9197364139003E-05 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0472160520324E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.1292119629246E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.8569958966378E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.0865157429195E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.6651160833618E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6774561383344E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.8967551805673E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.3224518359269E-06 -(PID.TID 0000.0001) %MON pe_b_mean = -9.3441314128930E-09 -(PID.TID 0000.0001) %MON ke_max = 5.0892126945627E-10 -(PID.TID 0000.0001) %MON ke_mean = 2.7734317693859E-12 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398618541626E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399988346263E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.0194040948251E-05 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0586092403660E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.1668580260435E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.9041599823911E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.1353410145490E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.7333390728198E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.7468959303692E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9791699596224E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.4346178029829E-06 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4457615877353E-09 +(PID.TID 0000.0001) %MON ke_max = 5.2122680777126E-10 +(PID.TID 0000.0001) %MON ke_mean = 2.8362126850352E-12 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -5.9371626143857E-09 -(PID.TID 0000.0001) %MON vort_r_max = 5.8401639176372E-09 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981967871E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065477570E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660591414E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973452732064E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.9051844995064E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.4019272974159E-13 +(PID.TID 0000.0001) %MON vort_r_min = -6.0097788226266E-09 +(PID.TID 0000.0001) %MON vort_r_max = 5.9117343169036E-09 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981967852E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065478113E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660591395E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973450867241E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.0393178934211E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.4567383960667E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -7.32747196252603E-15 3.72930012111565E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.58340840460788E+00 + cg2d: Sum(rhs),rhsMax = -1.55431223447522E-15 3.76715921509635E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.58343395684358E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 211 -(PID.TID 0000.0001) cg2d_last_res = 8.73058333111508E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.70949034067830E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.5627754232366E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.3626401996248E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3974756186045E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.5637319721420E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.5053294582883E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3939132548114E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0397557908798E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0048287197991E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9565164840759E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.3504508987129E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.6889456743297E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.7874133805324E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9815884278811E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7010635310076E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.0853878845090E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7546192860480E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7369356840279E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8883912637722E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.1128814949214E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1805206829069E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.6522270133230E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.4334059616837E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.3237166423027E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6134718890179E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.5202850874177E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4472608582159E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.0763746943512E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0159928206041E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9784687431828E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.3991322849728E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.7463010376005E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.8698435212748E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0155094816650E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7315009482696E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.1640493468791E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7756060247615E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7576923500944E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9103878141067E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.2161000049861E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.2754615654693E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9040108511115E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000340450699E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.6275226785043E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.0840040274538E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9040593044026E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000344115922E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.6566586933283E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.1172312531412E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398363250641E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399986174522E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0695058363208E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2539767981948E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.6651168024008E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.7051292817874E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.8967551805673E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0446124414019E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5915578572903E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0527715716288E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3832130612743E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -1.3341284897526E-08 -(PID.TID 0000.0001) %MON ke_max = 1.0486971867548E-09 -(PID.TID 0000.0001) %MON ke_mean = 5.5190934712713E-12 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398343446024E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399986023904E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0814544161921E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2676175897593E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7333398005180E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.7749075383175E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.9791699596224E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.1535698092674E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6844180840743E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0653636148569E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3998443650663E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -1.3487543722155E-08 +(PID.TID 0000.0001) %MON ke_max = 1.0740675208643E-09 +(PID.TID 0000.0001) %MON ke_mean = 5.6440053568048E-12 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -7.9388219648093E-09 -(PID.TID 0000.0001) %MON vort_r_max = 7.7996570455718E-09 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981966285E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065411596E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660589743E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973344115151E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.2614997737362E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.3609624507963E-13 +(PID.TID 0000.0001) %MON vort_r_min = -8.0359299394712E-09 +(PID.TID 0000.0001) %MON vort_r_max = 7.8952220627331E-09 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981966249E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065411663E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660589705E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973341123511E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.4492352723626E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.4376721078803E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.33066907387547E-15 4.35303662937675E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.34936955353818E+00 + cg2d: Sum(rhs),rhsMax = -2.57571741713036E-14 4.39722534686241E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.34939609294634E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 209 -(PID.TID 0000.0001) cg2d_last_res = 9.49774511806492E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.49535876841278E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0970969680425E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2827239329317E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1093945019126E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3630229280198E-06 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9843808176008E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.7696364623563E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4982826964082E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4484245371282E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.5062614833700E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8655417795418E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.2676664225268E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.8413358689967E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.5635087222699E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2172914638507E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3688011974665E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.7779168704954E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4753713206291E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4311040011810E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0258854295227E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1709992130677E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0154199431060E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0502680923022E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.7872265554577E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5771290040295E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.5020144977360E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.5548322831544E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8977117049081E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3380318663735E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.9127882046134E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.6672839138607E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2540270456440E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.4067532580451E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8753967708228E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5049854446429E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4601546885978E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0494504805400E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1842420840661E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0272018417686E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9046760169733E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000396959823E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.0630168780623E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.5904189436990E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9047324941614E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000401232819E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.0969764980719E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.6290954408734E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398091816097E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399983879815E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2467630569392E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4598802143047E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0446135893801E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.6285607445867E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0527715716288E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3236022457417E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.4573156298495E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.4852227923775E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9029655417527E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -1.7605061325227E-08 -(PID.TID 0000.0001) %MON ke_max = 1.8997699275695E-09 -(PID.TID 0000.0001) %MON ke_mean = 9.6733091077619E-12 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398068731906E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399983704221E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2606897731356E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4757580937651E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.1535709710748E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.7218735921068E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0653636148569E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3395476195741E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.5729993202880E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5029912667857E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9258415494096E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -1.7799164311037E-08 +(PID.TID 0000.0001) %MON ke_max = 1.9457432184523E-09 +(PID.TID 0000.0001) %MON ke_mean = 9.8921871862940E-12 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -9.8899259495575E-09 -(PID.TID 0000.0001) %MON vort_r_max = 9.7017321616935E-09 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981964416E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065236786E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660587773E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973208884653E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0337419924113E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.2057057378308E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.0010901412024E-08 +(PID.TID 0000.0001) %MON vort_r_max = 9.8205706974957E-09 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981964360E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365065235891E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660587714E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973204490275E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0572236467268E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.3016492063207E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 5.55111512312578E-14 4.96380371902041E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.17695603800716E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 5.01418301889824E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.17697548784616E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.37450475325269E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.35320301743520E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3369922380198E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.0786525454881E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.6546458028784E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4175538605513E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0324681531301E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.9867724600490E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.1012780712424E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.7198431649714E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.9367429325104E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5101445428587E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8945901761743E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0221732684627E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2297944526178E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9764666533813E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0309566843297E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2931692118632E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2134724904390E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0279053161043E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4370512864687E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1968145635307E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3524562847723E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1679649908203E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8633008248059E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4997176037741E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0526785169526E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.0957683705490E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.1747729611756E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.7422168577844E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.9809506714073E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.6058872390632E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.9789212512098E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0345425271861E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2667833719562E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.0212526751430E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0424110341157E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.3325776282334E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2518682357028E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.0514888489237E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4532764680817E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2106978610690E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9053402689139E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000453404636E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.4978411524702E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.0947747433408E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9054047557669E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000458284551E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.5366154432450E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.1388801061909E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397820756306E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399981587744E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4237458912824E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.6649424102818E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3236024137385E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.5034126221870E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4852227923775E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8153989776804E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1162569127486E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9759015271179E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4757902272421E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -2.1887301330644E-08 -(PID.TID 0000.0001) %MON ke_max = 3.1267418249174E-09 -(PID.TID 0000.0001) %MON ke_mean = 1.5445255568869E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397794398379E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399981387209E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4396470778083E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.6830490034365E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3395477895948E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.6196601798369E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5029912667857E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8372669447672E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1299103922249E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9995465769400E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5055516076157E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -2.2129574232843E-08 +(PID.TID 0000.0001) %MON ke_max = 3.2024196265291E-09 +(PID.TID 0000.0001) %MON ke_mean = 1.5794636796028E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.1673183638835E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.1430243354323E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981962591E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365064861119E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660585850E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973049669650E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1814513511989E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.8064499600019E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.1815964007239E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.1570210414842E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981962515E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365064856670E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660585769E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973043623979E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2082719076980E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.9160336832966E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 5.56180007327564E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.04471689689890E+00 + cg2d: Sum(rhs),rhsMax = 4.88498130835069E-14 5.61823885184024E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.04474441018899E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.18072344089649E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.15015957357158E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.5999389763530E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7220824129428E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5971149926908E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.7832422800873E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2937588902547E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1798847306774E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9550925434409E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.1776607846503E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.1433621389168E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1022219381439E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.7903628712916E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1675904644561E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0454164149955E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.4877244732222E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1599548541130E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.1849170741611E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.0610604218698E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9080022066433E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7028165983376E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3538674952502E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6191717187685E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.8185721947447E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0611370693240E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.8808677682260E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3165776903486E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1941906202599E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0509057778042E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.2630239386863E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2011256079281E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1146395464815E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.8856398697497E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1817062063730E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.0803726832425E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.5382542745453E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1728471802571E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.2350086828524E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.1095765517911E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9302170483244E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7220069972496E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.3695644767466E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9060036092377E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000509785253E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.9319969330110E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.5970939720240E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9060760915740E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000515271233E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.9755769833913E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.6466040774064E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397550070321E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399979298306E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6004549270845E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.8691739781041E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8153992080980E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1216977892476E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9759015271179E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3669904407053E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2612854695773E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5109502444967E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.0837695586444E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -2.5958425987170E-08 -(PID.TID 0000.0001) %MON ke_max = 4.7723178734124E-09 -(PID.TID 0000.0001) %MON ke_mean = 2.2941336460023E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397520444477E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399979072866E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6183269275198E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.8894993849900E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8372671779604E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1354178187221E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9995465769400E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3954990983472E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2767111301949E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5410052097114E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1208399376500E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -2.6246526167841E-08 +(PID.TID 0000.0001) %MON ke_max = 4.8878351433186E-09 +(PID.TID 0000.0001) %MON ke_mean = 2.3460127149480E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.3189810284011E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.2888302884044E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981961098E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365064211229E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660584277E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7972870519778E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2487019491413E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.0794244898978E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.3351123120763E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.3046067580700E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981961005E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365064202597E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660584178E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7972862616609E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2770337581691E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.1951824504156E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.70734562441066E-14 6.14806585469828E-05 -(PID.TID 0000.0001) cg2d_init_res = 9.39958059503496E-01 + cg2d: Sum(rhs),rhsMax = -9.76996261670138E-15 6.21044102221053E-05 +(PID.TID 0000.0001) cg2d_init_res = 9.39987577586863E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.99564582312600E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.98519236761687E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.8537217233271E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3306113346431E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.3956724890362E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0019015294932E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5534537884042E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4855528040780E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.9561189319026E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1000313312261E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.4510483529752E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3734774889894E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.4843967210790E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2859879337601E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7117366510633E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.8743641960052E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2588902193797E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1243013139584E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9481480821113E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6948585806106E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9629155408478E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4808305408948E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.8752123357058E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4336774121829E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1294866569211E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0130557892097E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5788673006205E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5035602217334E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0076016753058E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1130885217783E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.5234978794339E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3889649636202E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5881456825138E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3015258953074E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7429131242642E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.9292302220690E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2728853791443E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1856481019434E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.0072517456690E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7146442714768E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9849936490460E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4979857750649E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9066660404103E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000566101788E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.3654856492794E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0973819106128E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9067465041034E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000572192980E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4138625712803E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1522731902902E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397279757128E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399977011495E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7768907513816E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.0725769431283E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3669907411331E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2674332464838E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5109502444967E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9623839332666E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3736518412848E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0745807883751E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.7079457684193E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -2.9637956292148E-08 -(PID.TID 0000.0001) %MON ke_max = 6.8491267912923E-09 -(PID.TID 0000.0001) %MON ke_mean = 3.2144357853072E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397246869164E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399976761184E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7967299188453E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.0951114911688E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3954994023935E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2829340950920E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5410052097114E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9980588163666E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3904491406794E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1113888611661E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.7525191667614E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -2.9967446250544E-08 +(PID.TID 0000.0001) %MON ke_max = 7.0149236622741E-09 +(PID.TID 0000.0001) %MON ke_mean = 3.2871038219561E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.4364874265063E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.4003382558273E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981960122E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365063259591E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660583248E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7972676548195E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2300450861380E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.0024935881459E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.4540530924592E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.4174728349991E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981960017E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365063244081E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660583137E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7972666635029E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.2579418520816E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.1164752080663E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 198 SHIfwFlx Counter: 10 Parms: SM L1 - Computing Diagnostic # 199 SHIhtFlx Counter: 10 Parms: SM L1 - Computing Diagnostic # 208 ICFfwFlx Counter: 10 Parms: SM MR - Computing Diagnostic # 209 ICFhtFlx Counter: 10 Parms: SM MR - cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 6.72424775254030E-05 -(PID.TID 0000.0001) cg2d_init_res = 8.54689044905508E-01 + Computing Diagnostic # 196 SHIfwFlx Counter: 10 Parms: SM L1 + Computing Diagnostic # 197 SHIhtFlx Counter: 10 Parms: SM L1 + Computing Diagnostic # 206 ICFfwFlx Counter: 10 Parms: SM MR + Computing Diagnostic # 207 ICFhtFlx Counter: 10 Parms: SM MR + cg2d: Sum(rhs),rhsMax = -6.21724893790088E-14 6.79245431743226E-05 +(PID.TID 0000.0001) cg2d_init_res = 8.54720415224043E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.79775796281482E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.81412131451297E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.0801921350708E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0079562245083E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0647433284605E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1086928839610E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8115062183087E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8065303208565E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2044253249259E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.2882001488648E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.8204804101353E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6570769848541E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9485460210413E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3729236462364E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.2883553629439E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1177305871003E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3242619494639E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.0837112554636E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.8481123134096E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4261949074465E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2131883074116E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5747874855609E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1043705140747E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0190944045520E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8633008248059E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1210400713813E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.8395002305889E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8284233849040E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2189277575534E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.3036014646466E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9083030184213E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6757727607613E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0579496382740E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3895064918894E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.3146946046735E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1753159103295E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3389853783202E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.1565528837619E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9179520335900E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.4429163167000E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2380310950292E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5930108312106E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9073275650172E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000622354353E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7983087261459E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5956470782846E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9074159959981E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000629049910E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.8514736548147E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6558962154008E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397009815665E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399974727307E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9530539492837E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2751547431009E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9623843092641E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3803473160771E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.0745807883751E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.5836958716381E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4487991453872E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.6502267532781E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3296394269291E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -3.2814529631622E-08 -(PID.TID 0000.0001) %MON ke_max = 9.3351394588290E-09 -(PID.TID 0000.0001) %MON ke_mean = 4.2906451043781E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396973671355E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399974452160E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9748566463754E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2998888628554E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9980591968921E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3972264891250E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1113888611661E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6268469967932E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4665119522249E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.6939317302572E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3816840682462E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -3.3179677315073E-08 +(PID.TID 0000.0001) %MON ke_max = 9.5611210841174E-09 +(PID.TID 0000.0001) %MON ke_mean = 4.3876123246593E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.5150722281530E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.4730477249189E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981959735E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365062021859E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660582840E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7972473544781E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1356649163214E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.6171937053429E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.5335952800252E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.4910640353077E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981959625E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365061995908E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660582724E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7972461530174E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1614114201308E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.7223923274434E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.77475828372553E-14 7.29230171179330E-05 -(PID.TID 0000.0001) cg2d_init_res = 7.83709969376052E-01 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 7.36625616104768E-05 +(PID.TID 0000.0001) cg2d_init_res = 7.83742757446201E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 7.75963292891022E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.76509201193263E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2699401748414E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0723049822543E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.1942299853816E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1975392812411E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.0678913158746E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1330792854439E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4157321656923E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.2883140297057E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.2101799380457E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9450859008733E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.1715802412305E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4262226363259E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8378488000327E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2094837755430E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3549969508656E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.0361661201897E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.7352231525947E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1421189332808E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4505658930102E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6356456069874E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2963902388943E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0841568360907E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5971149926908E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2108669031608E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.0984513530192E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1589240957003E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4327764623223E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.3038897103357E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.3135953845445E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9670377357655E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2836852475264E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4434472358150E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8590208238662E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2680786155403E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3700617581648E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.1204176352456E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.8156399120373E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.1555927101985E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4780181666105E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6545452465152E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9079881857094E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000678543062E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.2304675815225E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0918988524557E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9080845699683E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000685842136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.2884116747949E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1574826988175E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396740244845E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399972445738E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.1289451030462E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.4769111868161E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.5836963264951E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4558609043173E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.6502267532781E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.2124268001830E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4849091220071E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.2216996721138E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.9317268001950E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -3.5452438169217E-08 -(PID.TID 0000.0001) %MON ke_max = 1.2173842147181E-08 -(PID.TID 0000.0001) %MON ke_mean = 5.4957117936404E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396700849936E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399972145789E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.1527077017878E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.5038353781368E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6268474571271E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4736600471887E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.6939317302572E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.2631410903958E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5030592926531E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.2722505811473E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.9910042980697E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -3.5847087782027E-08 +(PID.TID 0000.0001) %MON ke_max = 1.2468541865177E-08 +(PID.TID 0000.0001) %MON ke_mean = 5.6198739906465E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.5528339999695E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.5053235872623E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981959924E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365060545848E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660583039E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7972267577215E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.8878645838933E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.0181654095218E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.5718144221829E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.5237256993722E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981959815E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365060507074E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660582925E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7972253433898E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0111908082292E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.1097121131308E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 7.85420411161437E-05 -(PID.TID 0000.0001) cg2d_init_res = 7.23506822472141E-01 + cg2d: Sum(rhs),rhsMax = -1.01696429055664E-13 7.93384448616869E-05 +(PID.TID 0000.0001) cg2d_init_res = 7.23540675799691E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 204 -(PID.TID 0000.0001) cg2d_last_res = 9.84066053718303E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.86080418638093E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 13 (PID.TID 0000.0001) %MON time_secondsf = 2.3400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4273878290682E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1218499585860E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.8633008248059E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2696776678849E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.3226058482312E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.4555541764355E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6234895819129E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1245682081960E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0579329088993E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2298743177651E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.1588112304605E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4459895284351E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4175130528474E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1516721131412E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3523245162938E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9570531830979E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.5862660345260E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.7919320838701E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6728991567090E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6659381660830E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4550931512611E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1342432502549E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.9855749634540E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2837874210273E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.3557174574220E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.4853001063099E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6430321279022E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1383880027031E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0698097680949E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2550428296477E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2707309646748E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4634544601343E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4338522474126E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2095910972487E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3673573196957E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.0523335805329E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.6768235534526E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.8964944879027E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.7027847171408E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6851514800225E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9086479051442E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000734668027E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.6619636249286E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.5861467892274E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9087522287305E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000742569771E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.7246780634549E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6570423381618E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396471043576E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399970166781E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3045647914865E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.6778501636372E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.2124273348410E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4921468887370E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2216996721138E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8305966272397E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4828417770052E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7742319098588E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.4997051897797E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -3.7585893812290E-08 -(PID.TID 0000.0001) %MON ke_max = 1.5278871062906E-08 -(PID.TID 0000.0001) %MON ke_mean = 6.7925676617767E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396428403792E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399969842066E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3302836732497E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7069549845651E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.2631416314907E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.5103855272220E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2722505811473E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8887443097349E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5009619514895E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.8314001483198E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.5658024376220E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -3.8004267875352E-08 +(PID.TID 0000.0001) %MON ke_max = 1.5648726293176E-08 +(PID.TID 0000.0001) %MON ke_mean = 6.9459806913546E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.5506720874584E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.4983109521175E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981960613E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365058904087E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660583765E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7972064597199E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.2088741643603E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.3336469805135E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.5696211413820E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.5166174583976E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981960512E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365058849117E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660583659E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7972048360959E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.3946752020073E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.4095723653634E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.59712259978551E-14 8.41174754201275E-05 -(PID.TID 0000.0001) cg2d_init_res = 6.71642230202296E-01 + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-14 8.49703176737973E-05 +(PID.TID 0000.0001) cg2d_init_res = 6.71676699933101E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 206 -(PID.TID 0000.0001) cg2d_last_res = 9.50661669590013E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.54454888482104E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 14 (PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.5556848356649E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1567247393944E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.1942299853816E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3281960035385E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5756647891434E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7650374288749E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8222310916385E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.2951041518976E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1890409785843E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.5045923534036E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9306667507152E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4343882516195E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0728509972634E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.9561394750227E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3195165445071E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.8255569450011E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.3818815251914E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.6606706404360E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8787824680115E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6704469348525E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.5849126787424E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1694889892780E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.7266016496119E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3429255482996E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.6113137199970E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7985260532104E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8441624153037E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4001428958174E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2023869937402E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.5328599966466E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0397661240652E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4517185175725E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0852166544264E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.0118320863207E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3341804198063E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.9312348064028E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.4819124610949E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.7406236033425E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.9109128467624E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6896670658541E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9093067259261E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000790729358E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.0927982568444E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.0784004380364E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9094189749472E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000799232930E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.1602742437978E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.1545848111899E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396202210789E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399967890434E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4799135897186E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.8779755643036E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.8305972403582E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4900694670505E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7742319098588E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.4219401611117E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4459044324911E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.2953341670006E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.0224638299551E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -3.9304413291417E-08 -(PID.TID 0000.0001) %MON ke_max = 1.8542677770909E-08 -(PID.TID 0000.0001) %MON ke_mean = 8.1375321752478E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396156331831E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399967540987E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.5075851451464E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.9092516256643E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.8887449302337E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.5082779631660E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.8314001483198E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.4871955094110E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4635679812397E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.3587408838417E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.0948340462996E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -3.9741745749153E-08 +(PID.TID 0000.0001) %MON ke_max = 1.8991515799764E-08 +(PID.TID 0000.0001) %MON ke_mean = 8.3212636906463E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.5120451010792E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.4556708272136E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981961681E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365057181747E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660584891E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971870071986E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.6592808794769E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7019715316551E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.5305166416270E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.4734456380075E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981961592E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365057112906E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660584797E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971851836583E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.8096963268383E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7634426456582E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-14 8.96642102541240E-05 -(PID.TID 0000.0001) cg2d_init_res = 6.26387011833597E-01 + cg2d: Sum(rhs),rhsMax = -1.42108547152020E-14 9.05732271018944E-05 +(PID.TID 0000.0001) cg2d_init_res = 6.26421637468932E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 206 -(PID.TID 0000.0001) cg2d_last_res = 9.52067471608177E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.55625886335812E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 15 (PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.6557219387883E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1813803856142E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1294866569211E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3773299032095E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.8270965494184E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.0538881874351E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0073847700713E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.4123001773175E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3111499063409E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7635593701283E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.5203806353156E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3983247639445E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.3359847856928E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.6433325511336E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2615190441828E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.6257220622941E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.1075549019534E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.2104942167278E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0674035821690E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6556502252123E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.6861451861939E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1943995118866E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.9855749634540E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3925666613307E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.8652688556407E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.0908687730318E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0315403888482E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.4731393925189E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3258630679052E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7947438626889E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6244326734389E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4152350920827E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.4319100023670E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.6954800010621E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2755323715142E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.7409740048236E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.2162188527752E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.2735189056300E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1015846376760E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6746463551546E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9099646505520E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000846727165E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.5229728688853E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.5686692851623E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9100848111706E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000855831723E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.5952016297767E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.6501197252991E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395933745458E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399965616691E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.6549920692246E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.0772912564527E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.4219408492859E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4529520819673E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.2953341670006E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9728539116666E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3794777558045E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.7754332373765E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4927472196180E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.0733359063524E-08 -(PID.TID 0000.0001) %MON ke_max = 2.1847941344114E-08 -(PID.TID 0000.0001) %MON ke_mean = 9.4844510640017E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395884633003E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399965242547E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.6846126981562E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.1107292189017E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.4871962058677E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4707017266551E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.3587408838417E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.0447275176894E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3963241243155E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.8445844028942E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5707565269476E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.1186305251579E-08 +(PID.TID 0000.0001) %MON ke_max = 2.2376743718511E-08 +(PID.TID 0000.0001) %MON ke_mean = 9.6985259101886E-11 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.4425798385017E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.3831672419803E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981962975E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365055478861E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660586255E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971688662837E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.5480723072435E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2489863606928E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.4601968181622E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.4000452995423E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981962901E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365055392890E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660586177E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971668571394E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6729693415397E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3000341069374E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.92939022933570E-14 9.51935438812298E-05 -(PID.TID 0000.0001) cg2d_init_res = 5.86487164618874E-01 + cg2d: Sum(rhs),rhsMax = 5.77315972805081E-15 9.61585923786685E-05 +(PID.TID 0000.0001) cg2d_init_res = 5.86521738845109E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 205 -(PID.TID 0000.0001) cg2d_last_res = 9.31754546433222E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.35995978796497E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 16 (PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.7349853000064E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2115844996039E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0647433284605E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4217444297484E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.0769379749031E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.3161746544180E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1755318215107E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.4247540444197E-11 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4218085943128E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0025475516738E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.9710036467669E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3449316645444E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.1256382128826E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2406122580397E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1845052348092E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0347126538932E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.7542228343974E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.5158716412571E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2384440906742E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6290060107250E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.7663581415727E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2248417814172E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.3956724890362E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4374311147158E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.1176201646628E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.3563248415801E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.2017061310358E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.4964255349403E-11 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4377594206121E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0364185447024E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0683093589669E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3612112193865E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.2072983712405E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2882052124490E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1976555370732E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0471003741977E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.8705715036530E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.5705429104478E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2744810860450E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6476354146200E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9106216813670E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000902661557E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.9524888446911E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.0569627515973E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9107497397973E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000912366260E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.0294616272002E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.1436566186395E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395665646620E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399963345549E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8298007982183E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.2758010829849E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9728546697650E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3862016273583E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.7754332373765E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.4731654557707E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2905318075316E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.2082759233595E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.9073268754383E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.2013405513496E-08 -(PID.TID 0000.0001) %MON ke_max = 2.5080344804580E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.0789073947434E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395613306325E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399962946741E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8613669096187E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3113916553774E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.0447282849103E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4031301086962E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.8445844028942E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.5510455559700E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3062859236020E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.2826022451861E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.9903028938093E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.2480217795828E-08 +(PID.TID 0000.0001) %MON ke_max = 2.5687321591397E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.1032518447312E-10 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.3495651949854E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.2881439376569E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981964323E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365053886592E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660587675E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971523969442E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.1099555733994E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.0702705826721E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.3660399588016E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.3038505047169E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981964263E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365053788446E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660587612E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971502203135E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.2245506061955E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.1171111985734E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.70894418008538E-14 1.01107025809730E-04 -(PID.TID 0000.0001) cg2d_init_res = 5.48865818666084E-01 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 1.02149781454692E-04 +(PID.TID 0000.0001) cg2d_init_res = 5.48804597459821E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 204 -(PID.TID 0000.0001) cg2d_last_res = 9.58592577032977E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.61180280717554E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 17 (PID.TID 0000.0001) %MON time_secondsf = 3.0600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8019550486272E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2789942364674E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6618583211513E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4659140956849E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3252299640483E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5479707429559E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3245391651809E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.4221211964017E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5194313918509E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2189485565082E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3319660190969E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2766989412571E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.0698321022737E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7801991357557E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0953819957742E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0985158744239E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0438492629335E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.5531143113740E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.3920429655519E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5981011871085E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8341251917376E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2929836030357E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5971149926908E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4820469346657E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3684089762340E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5909208072656E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3525011270127E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.4621994072071E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5364726985078E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2552462070640E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.4214321309513E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2921720160237E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.1503796815684E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.8225922015503E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1075342491431E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1116656809240E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0565206891362E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6077836349566E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4297449519308E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6163114398928E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9112778205307E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000958532641E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.3813475613026E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.5432902150180E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9114137630340E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000968836651E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.4630556351431E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.6352049840970E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395397913388E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399961077001E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0043403422074E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4735088705527E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.4731662773706E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2968221373854E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2082759233595E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.9165279385276E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1870695057609E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.5910952465432E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2669037840746E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3281941431254E-08 -(PID.TID 0000.0001) %MON ke_max = 2.8140597246746E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.2013198152604E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395342350890E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399960653566E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0378483541122E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.5112428091380E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.5510463874547E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3126530424090E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2826022451861E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.9997270917716E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2015543646520E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6699940855443E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3541829978567E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3762433231786E-08 +(PID.TID 0000.0001) %MON ke_max = 2.8821553087021E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.2284177841194E-10 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.2413701697656E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.1805943465867E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981965548E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365052497733E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660588966E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971378354221E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.4789979223752E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2204025493809E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.2565176161901E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.1948272873792E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981965502E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365052387964E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660588918E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971355118990E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.6015856024063E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2705098742510E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 1.07172981720533E-04 -(PID.TID 0000.0001) cg2d_init_res = 5.14674319713706E-01 + cg2d: Sum(rhs),rhsMax = -6.66133814775094E-15 1.08278176571338E-04 +(PID.TID 0000.0001) cg2d_init_res = 5.14619219524562E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 204 -(PID.TID 0000.0001) cg2d_last_res = 8.62345148694326E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.61958233387075E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 18 (PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8651350519811E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3384229644373E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6618583211513E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5136676922616E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.5720140571909E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.7475064301907E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4536412233386E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5067875911724E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6033595598902E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4118203978560E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.6554389511190E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1999945027575E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0169967548396E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2968873761001E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0012804049353E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1568743176682E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1087195198073E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.2215099979752E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.5288215679302E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5697515836294E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8980452489093E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3530563493779E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.9280441532665E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5302890919359E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.6176772757935E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.7928653075707E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4831506991977E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5935052254812E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6213369105302E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4502744726947E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.7366110851848E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2145616886195E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.1078661207992E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3338277750950E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0123796341657E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1708898208167E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1221725747653E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.2834185367599E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.5680059104999E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5875721307782E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9119330699999E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001014340525E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.8095503907500E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.0276610403891E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9120768828796E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001025243006E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.8959850475702E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.1247743012591E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395130544956E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399958811045E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1786112646407E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6704184417204E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.9165288164008E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1928555380826E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.5910952465432E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.3006634289270E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0775375398288E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.9412459060092E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.5757676488503E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.4658436006344E-08 -(PID.TID 0000.0001) %MON ke_max = 3.0954452213291E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.3128188511203E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395071765874E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399958363015E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.2140576041156E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.7102865498943E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.9997279802048E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2074109992943E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6699940855443E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.3884671180573E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0906795763326E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.0253389248999E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6667386115158E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.5153779767533E-08 +(PID.TID 0000.0001) %MON ke_max = 3.1703394312933E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.3424225091488E-10 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.1268278329572E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.1869766422354E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981966491E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365051383108E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660589960E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971252853473E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.6809439081962E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7098344117052E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.1405710316550E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.2013003060016E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981966456E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365051265259E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660589924E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971228365815E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.8304387773784E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7709355738416E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 1.13146443357598E-04 -(PID.TID 0000.0001) cg2d_init_res = 4.84558798679301E-01 + cg2d: Sum(rhs),rhsMax = 2.88657986402541E-14 1.14313112646166E-04 +(PID.TID 0000.0001) cg2d_init_res = 4.84509030940898E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 203 -(PID.TID 0000.0001) cg2d_last_res = 9.06342841706251E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.04672565087746E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 19 (PID.TID 0000.0001) %MON time_secondsf = 3.4200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.9322702567131E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3914081393467E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1294866569211E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5679165471071E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.8173302010704E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9151710189800E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5634118327831E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1887509164846E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6738589483155E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5818198982311E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0116567770519E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1211711126021E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.7332175690159E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8256325803855E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.0905883208481E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2106219919835E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1659481737071E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.3697962426260E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6499547010387E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5492163401857E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.9659509492057E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4066158476020E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.3237166423027E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5851042580076E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.8654653915678E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9625524109349E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5942357524113E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2012837226172E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6926210668014E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6221680956213E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0837681888196E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1348088683697E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.8431958168916E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8572616184036E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.1912713370478E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2252856581898E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1800895890531E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.4444848454467E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6904524129496E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5667405154528E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9125874315263E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001070085316E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.2370987015872E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.5100846102863E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9127391011227E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001081585434E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.3282512549085E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.6123740676948E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4394863540603E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399956547676E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.3526141275362E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.8665336270947E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.3006643555562E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0827896897687E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.9412459060092E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.6272793442123E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.7330708033175E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2637319519012E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.8412476480062E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.6234785107843E-08 -(PID.TID 0000.0001) %MON ke_max = 3.3479859789341E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.4117595859796E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4394801550542E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399956075086E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.3899952306514E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.9085267555391E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.3884680558309E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0959957833876E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.0253389248999E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.7189940825469E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.8498215598047E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.3517139491389E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.9353875262069E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.6747200833279E-08 +(PID.TID 0000.0001) %MON ke_max = 3.4289779463727E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.4435842937530E-10 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.0146272585077E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.2405783571384E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981967028E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365050593809E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660590525E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971147176344E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.6421893315276E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.5085502683444E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.0269956324310E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.2554496902251E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981966999E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365050469358E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660590496E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971121649065E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.8358618951916E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.5877007727729E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.06137321154165E-13 1.19029287822747E-04 -(PID.TID 0000.0001) cg2d_init_res = 4.57837415237735E-01 + cg2d: Sum(rhs),rhsMax = 9.76996261670138E-15 1.20256497811861E-04 +(PID.TID 0000.0001) cg2d_init_res = 4.57792421869000E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 202 -(PID.TID 0000.0001) cg2d_last_res = 8.98277012030430E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.95396906937621E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 20 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0097840822147E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4398114493335E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.3956724890362E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6305482277808E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.0612154128655E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0533681008624E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.6556629278943E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4335781002740E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7320570748046E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7310334624038E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.4551280772484E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0461880156492E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1945638702557E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3990394060725E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.2484636783923E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2575877026440E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2161058863487E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.8232442734285E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7572609860495E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5397424191790E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.0443394817762E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4555454586715E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8633008248059E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6484029760811E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.1118107588703E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.1024147824527E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.6875900494030E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4489120815585E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7514655363322E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.7730377849687E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5205936438412E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0589437027915E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2080427320142E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4258656193445E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.3397480640008E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2728167470853E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2308494602915E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -7.9142730352053E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7989232159330E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5571035761062E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9132409066710E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001125767122E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.6639938601712E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.9905703494856E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9134004193571E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001137864043E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.7598556453541E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0098013824194E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4394596899685E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399954286889E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5263494920022E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0618582751659E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.6272803122969E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.7791205202711E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2637319519012E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9017669872918E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.8320324639461E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.5455262158639E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.0730013789600E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -4.8070760475885E-08 -(PID.TID 0000.0001) %MON ke_max = 3.5709922712300E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.4978713292864E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4394531704237E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399953789773E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.5656618038181E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.1059673222573E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.7189950622723E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.8964236552829E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3517139491389E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9967642371637E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9380233776756E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6369004825116E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.1699038793742E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -4.8603152738076E-08 +(PID.TID 0000.0001) %MON ke_max = 3.6573650926932E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.5316266867032E-10 (PID.TID 0000.0001) %MON ke_vol = 3.4703745874272E+14 -(PID.TID 0000.0001) %MON vort_r_min = -9.1275267169620E-09 -(PID.TID 0000.0001) %MON vort_r_max = 1.2983793517129E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981967076E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365050150615E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660590577E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7971059786963E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1211167535220E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.5547789046845E-13 +(PID.TID 0000.0001) %MON vort_r_min = -9.2387332398181E-09 +(PID.TID 0000.0001) %MON vort_r_max = 1.3139423323073E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981967049E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7365050024830E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746660590548E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971033415832E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.1462862760447E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.6576348040170E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 198 SHIfwFlx Counter: 10 Parms: SM L1 - Computing Diagnostic # 199 SHIhtFlx Counter: 10 Parms: SM L1 - Computing Diagnostic # 208 ICFfwFlx Counter: 10 Parms: SM MR - Computing Diagnostic # 209 ICFhtFlx Counter: 10 Parms: SM MR + Computing Diagnostic # 196 SHIfwFlx Counter: 10 Parms: SM L1 + Computing Diagnostic # 197 SHIhtFlx Counter: 10 Parms: SM L1 + Computing Diagnostic # 206 ICFfwFlx Counter: 10 Parms: SM MR + Computing Diagnostic # 207 ICFhtFlx Counter: 10 Parms: SM MR (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 25.361593589652330 -(PID.TID 0000.0001) System time: 0.17629600339569151 -(PID.TID 0000.0001) Wall clock time: 25.580801010131836 +(PID.TID 0000.0001) User time: 26.821537595242262 +(PID.TID 0000.0001) System time: 0.22795799374580383 +(PID.TID 0000.0001) Wall clock time: 27.091979026794434 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.23245599912479520 -(PID.TID 0000.0001) System time: 4.8181999707594514E-002 -(PID.TID 0000.0001) Wall clock time: 0.29112792015075684 +(PID.TID 0000.0001) User time: 0.18956299405544996 +(PID.TID 0000.0001) System time: 5.9622000902891159E-002 +(PID.TID 0000.0001) Wall clock time: 0.26666903495788574 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 25.129106238484383 -(PID.TID 0000.0001) System time: 0.12804800271987915 -(PID.TID 0000.0001) Wall clock time: 25.289587020874023 +(PID.TID 0000.0001) User time: 26.631923064589500 +(PID.TID 0000.0001) System time: 0.16833299398422241 +(PID.TID 0000.0001) Wall clock time: 26.825268030166626 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.45779997110366821 -(PID.TID 0000.0001) System time: 6.4302999526262283E-002 -(PID.TID 0000.0001) Wall clock time: 0.52354788780212402 +(PID.TID 0000.0001) User time: 0.36788801848888397 +(PID.TID 0000.0001) System time: 8.0035999417304993E-002 +(PID.TID 0000.0001) Wall clock time: 0.44856905937194824 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 24.671265900135040 -(PID.TID 0000.0001) System time: 6.3740000128746033E-002 -(PID.TID 0000.0001) Wall clock time: 24.766002178192139 +(PID.TID 0000.0001) User time: 26.264013409614563 +(PID.TID 0000.0001) System time: 8.8293999433517456E-002 +(PID.TID 0000.0001) Wall clock time: 26.376673936843872 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 24.671086847782135 -(PID.TID 0000.0001) System time: 6.3736990094184875E-002 -(PID.TID 0000.0001) Wall clock time: 24.765818119049072 +(PID.TID 0000.0001) User time: 26.263859093189240 +(PID.TID 0000.0001) System time: 8.8292002677917480E-002 +(PID.TID 0000.0001) Wall clock time: 26.376515150070190 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 24.670790314674377 -(PID.TID 0000.0001) System time: 6.3735991716384888E-002 -(PID.TID 0000.0001) Wall clock time: 24.765527248382568 +(PID.TID 0000.0001) User time: 26.263574242591858 +(PID.TID 0000.0001) System time: 8.8288977742195129E-002 +(PID.TID 0000.0001) Wall clock time: 26.376225233078003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.0454349517822266E-004 -(PID.TID 0000.0001) System time: 1.2993812561035156E-005 -(PID.TID 0000.0001) Wall clock time: 8.2111358642578125E-004 +(PID.TID 0000.0001) User time: 8.7869167327880859E-004 +(PID.TID 0000.0001) System time: 1.4007091522216797E-005 +(PID.TID 0000.0001) Wall clock time: 8.9073181152343750E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.3261051177978516E-004 -(PID.TID 0000.0001) System time: 4.0009617805480957E-006 -(PID.TID 0000.0001) Wall clock time: 4.3749809265136719E-004 +(PID.TID 0000.0001) User time: 4.5782327651977539E-004 +(PID.TID 0000.0001) System time: 1.1980533599853516E-005 +(PID.TID 0000.0001) Wall clock time: 4.7659873962402344E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.5020370483398438E-004 -(PID.TID 0000.0001) System time: 1.9967555999755859E-006 -(PID.TID 0000.0001) Wall clock time: 1.5401840209960938E-004 +(PID.TID 0000.0001) User time: 1.6587972640991211E-004 +(PID.TID 0000.0001) System time: 5.9902667999267578E-006 +(PID.TID 0000.0001) Wall clock time: 1.6903877258300781E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.4781951904296875E-004 -(PID.TID 0000.0001) System time: 9.9837779998779297E-007 -(PID.TID 0000.0001) Wall clock time: 1.4591217041015625E-004 +(PID.TID 0000.0001) User time: 1.7011165618896484E-004 +(PID.TID 0000.0001) System time: 7.0035457611083984E-006 +(PID.TID 0000.0001) Wall clock time: 1.8024444580078125E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.53942227363586426 -(PID.TID 0000.0001) System time: 4.0559917688369751E-003 -(PID.TID 0000.0001) Wall clock time: 0.54389190673828125 +(PID.TID 0000.0001) User time: 0.54756706953048706 +(PID.TID 0000.0001) System time: 8.3550214767456055E-003 +(PID.TID 0000.0001) Wall clock time: 0.55597567558288574 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 5.8577597141265869E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.8633089065551758E-002 +(PID.TID 0000.0001) User time: 4.9606978893280029E-002 +(PID.TID 0000.0001) System time: 7.1899592876434326E-004 +(PID.TID 0000.0001) Wall clock time: 5.0371170043945312E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "ICEFRONT_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.11849886178970337 -(PID.TID 0000.0001) System time: 5.9902667999267578E-006 -(PID.TID 0000.0001) Wall clock time: 0.11868786811828613 +(PID.TID 0000.0001) User time: 0.11437302827835083 +(PID.TID 0000.0001) System time: 3.9810091257095337E-003 +(PID.TID 0000.0001) Wall clock time: 0.11838579177856445 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.6844942569732666 -(PID.TID 0000.0001) System time: 1.4100968837738037E-004 -(PID.TID 0000.0001) Wall clock time: 4.6895561218261719 +(PID.TID 0000.0001) User time: 4.9656869173049927 +(PID.TID 0000.0001) System time: 3.9449930191040039E-003 +(PID.TID 0000.0001) Wall clock time: 4.9709568023681641 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.9811757206916809 -(PID.TID 0000.0001) System time: 4.1310042142868042E-003 -(PID.TID 0000.0001) Wall clock time: 8.9975609779357910 +(PID.TID 0000.0001) User time: 9.5239104032516479 +(PID.TID 0000.0001) System time: 3.9935111999511719E-006 +(PID.TID 0000.0001) Wall clock time: 9.5259652137756348 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12528920173645020 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12575674057006836 +(PID.TID 0000.0001) User time: 0.13153982162475586 +(PID.TID 0000.0001) System time: 4.1789859533309937E-003 +(PID.TID 0000.0001) Wall clock time: 0.13574433326721191 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.0308934450149536 -(PID.TID 0000.0001) System time: 3.9935111999511719E-006 -(PID.TID 0000.0001) Wall clock time: 5.0349440574645996 +(PID.TID 0000.0001) User time: 5.4095916748046875 +(PID.TID 0000.0001) System time: 4.0059834718704224E-003 +(PID.TID 0000.0001) Wall clock time: 5.4145259857177734 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.32177138328552246 -(PID.TID 0000.0001) System time: 9.0003013610839844E-006 -(PID.TID 0000.0001) Wall clock time: 0.32186460494995117 +(PID.TID 0000.0001) User time: 0.34327614307403564 +(PID.TID 0000.0001) System time: 3.8749873638153076E-003 +(PID.TID 0000.0001) Wall clock time: 0.34725522994995117 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.54523921012878418 -(PID.TID 0000.0001) System time: 8.9854001998901367E-006 -(PID.TID 0000.0001) Wall clock time: 0.54532170295715332 +(PID.TID 0000.0001) User time: 0.58397328853607178 +(PID.TID 0000.0001) System time: 1.1011958122253418E-005 +(PID.TID 0000.0001) Wall clock time: 0.58411002159118652 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0154874324798584 -(PID.TID 0000.0001) System time: 3.7849992513656616E-003 -(PID.TID 0000.0001) Wall clock time: 1.0199620723724365 +(PID.TID 0000.0001) User time: 1.1044220924377441 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 1.1049659252166748 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.26629650592803955 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.26679944992065430 +(PID.TID 0000.0001) User time: 0.27476203441619873 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 0.27483177185058594 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.0151106119155884 -(PID.TID 0000.0001) System time: 7.6030045747756958E-003 -(PID.TID 0000.0001) Wall clock time: 3.0269834995269775 +(PID.TID 0000.0001) User time: 3.1625335216522217 +(PID.TID 0000.0001) System time: 3.8459897041320801E-003 +(PID.TID 0000.0001) Wall clock time: 3.1670207977294922 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.0235133171081543E-002 -(PID.TID 0000.0001) System time: 1.5969008207321167E-002 -(PID.TID 0000.0001) Wall clock time: 8.6210966110229492E-002 +(PID.TID 0000.0001) User time: 0.10925579071044922 +(PID.TID 0000.0001) System time: 2.3967996239662170E-002 +(PID.TID 0000.0001) Wall clock time: 0.15224575996398926 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.0713758468627930E-002 -(PID.TID 0000.0001) System time: 2.7998000383377075E-002 -(PID.TID 0000.0001) Wall clock time: 0.10244870185852051 +(PID.TID 0000.0001) User time: 0.10224211215972900 +(PID.TID 0000.0001) System time: 3.5982996225357056E-002 +(PID.TID 0000.0001) Wall clock time: 0.13822650909423828 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -3483,9 +3495,9 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 28552 +(PID.TID 0000.0001) // No. barriers = 28560 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 28552 +(PID.TID 0000.0001) // Total barrier spins = 28560 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output.obcs.txt b/verification/isomip/results/output.obcs.txt index 49b464183e..e969d650b5 100644 --- a/verification/isomip/results/output.obcs.txt +++ b/verification/isomip/results/output.obcs.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67n +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68p (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Wed Dec 11 11:19:22 EST 2019 +(PID.TID 0000.0001) // Build date: Mon Jun 12 12:06:07 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -50,7 +50,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -151,7 +151,12 @@ (PID.TID 0000.0001) ># Continuous equation parameters (PID.TID 0000.0001) > &PARM01 (PID.TID 0000.0001) > Tref = 30*-1.9, -(PID.TID 0000.0001) > Sref = 30*34.4, +(PID.TID 0000.0001) >#Sref = 30*34.4, +(PID.TID 0000.0001) > Sref = 10*34.4, +(PID.TID 0000.0001) > 34.4436872 , 34.4873744 , 34.5310616 , 34.5747488 , 34.618436 , +(PID.TID 0000.0001) > 34.6621232 , 34.7058104 , 34.7494976 , 34.7931848 , 34.836872 , +(PID.TID 0000.0001) > 34.8805592 , 34.9242464 , 34.9679336 , 35.0116208 , 35.05530799, +(PID.TID 0000.0001) > 35.09899519, 35.14268239, 35.18636959, 35.23005679, 35.27374399, (PID.TID 0000.0001) > viscAz=1.E-3, (PID.TID 0000.0001) > viscAh=600.0, (PID.TID 0000.0001) > no_slip_sides=.FALSE., @@ -165,6 +170,8 @@ (PID.TID 0000.0001) > HeatCapacity_Cp = 3974.0, (PID.TID 0000.0001) > rhoConst=1030., (PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., (PID.TID 0000.0001) > implicitFreeSurface=.TRUE., (PID.TID 0000.0001) > exactConserv=.TRUE., (PID.TID 0000.0001) ># this is needed to test the balancing code @@ -192,7 +199,6 @@ (PID.TID 0000.0001) > nTimeSteps=12, (PID.TID 0000.0001) > deltaT=1800.0, (PID.TID 0000.0001) > abEps=0.1, -(PID.TID 0000.0001) > cAdjFreq = -1., (PID.TID 0000.0001) > pChkptFreq=0.0, (PID.TID 0000.0001) > chkptFreq=0.0, (PID.TID 0000.0001) > dumpFreq=0.0, @@ -233,6 +239,7 @@ (PID.TID 0000.0001) ># Packages (PID.TID 0000.0001) > &PACKAGES (PID.TID 0000.0001) > useShelfIce=.TRUE., +(PID.TID 0000.0001) > useGGL90=.TRUE., (PID.TID 0000.0001) > useOBCS=.TRUE., (PID.TID 0000.0001) > useDiagnostics=.TRUE., (PID.TID 0000.0001) >#useMNC=.TRUE., @@ -242,6 +249,7 @@ (PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/obcs compiled and used ( useOBCS = T ) + pkg/ggl90 compiled and used ( useGGL90 = T ) pkg/shelfice compiled and used ( useShelfIce = T ) pkg/icefront compiled but not used ( useICEFRONT = F ) pkg/diagnostics compiled and used ( useDiagnostics = T ) @@ -295,6 +303,90 @@ (PID.TID 0000.0001) Western OB global indices : OB_Iwest = (PID.TID 0000.0001) 100 @ 0 /* J = 1:100 */ (PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS: opening data.ggl90 +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ggl90" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) ># | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) > &GGL90_PARM01 +(PID.TID 0000.0001) > GGL90writeState=.TRUE., +(PID.TID 0000.0001) > mxlMaxFlag=2, +(PID.TID 0000.0001) >#- decrease Minimum TKE value @ the top (default = 1.E-4) to feel the +(PID.TID 0000.0001) ># effect of ice-shelf bottom stress on TKE and vertical mixing: +(PID.TID 0000.0001) > GGL90TKEsurfMin= 1.E-5, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK +(PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // GGL90 configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) GGL90dumpFreq = /* GGL90 state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90taveFreq = /* GGL90 averaging interval ( s ). */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio */ +(PID.TID 0000.0001) 3.750000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length (m) */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90: GGL90TKEFile = +(PID.TID 0000.0001) GGL90_dirichlet = /* GGL90 Boundary condition flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of GGL90 config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) SHELFICE_READPARMS: opening data.shelfice (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.shelfice (PID.TID 0000.0001) // ======================================================= @@ -359,6 +451,10 @@ (PID.TID 0000.0001) > fileName(2) = 'dynDiag', (PID.TID 0000.0001) > frequency(2) = 5184000., (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:4,3) = 'GGL90TKE','GGL90Lmx','GGL90Prl','GGL90Kr ', +(PID.TID 0000.0001) ># fileName(3) = 'ggl90Diag', +(PID.TID 0000.0001) > frequency(3) = 1728000., +(PID.TID 0000.0001) > (PID.TID 0000.0001) > fields(1:7,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', (PID.TID 0000.0001) > 'DFxE_TH ','DFyE_TH ','DFrE_TH ', (PID.TID 0000.0001) > 'DFrI_TH ', @@ -800,7 +896,7 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: iceShelf_MassTend.obcs (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 210 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 219 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 30 x 1 Levels for Diagnostic # 31 VVEL @@ -875,8 +971,83 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ -(PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 10 @ 3.440000000000000E+01, /* K = 1: 10 */ +(PID.TID 0000.0001) 3.444368720000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.448737440000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 3.453106160000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.457474880000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.461843600000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.466212320000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 3.470581040000000E+01, /* K = 17 */ +(PID.TID 0000.0001) 3.474949760000000E+01, /* K = 18 */ +(PID.TID 0000.0001) 3.479318480000000E+01, /* K = 19 */ +(PID.TID 0000.0001) 3.483687200000000E+01, /* K = 20 */ +(PID.TID 0000.0001) 3.488055920000000E+01, /* K = 21 */ +(PID.TID 0000.0001) 3.492424640000000E+01, /* K = 22 */ +(PID.TID 0000.0001) 3.496793360000000E+01, /* K = 23 */ +(PID.TID 0000.0001) 3.501162080000000E+01, /* K = 24 */ +(PID.TID 0000.0001) 3.505530799000000E+01, /* K = 25 */ +(PID.TID 0000.0001) 3.509899519000000E+01, /* K = 26 */ +(PID.TID 0000.0001) 3.514268239000000E+01, /* K = 27 */ +(PID.TID 0000.0001) 3.518636959000000E+01, /* K = 28 */ +(PID.TID 0000.0001) 3.523005679000000E+01, /* K = 29 */ +(PID.TID 0000.0001) 3.527374399000000E+01 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.027768983359415E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.027915190977028E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.028061298013372E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.028207304511914E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.028353210516147E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.028499016069585E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028644721215765E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.028790325998246E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.028935830460613E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.029081234646470E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.029261959956916E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.029442561685720E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.029623039899847E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.029803394666453E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.029983626052885E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.030163734126678E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.030343718955557E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.030523580607431E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.030703319150400E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.030882934652748E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.031062427182941E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.031241796809633E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.031421043601659E+03, /* K = 23 */ +(PID.TID 0000.0001) 1.031600167628038E+03, /* K = 24 */ +(PID.TID 0000.0001) 1.031779168949895E+03, /* K = 25 */ +(PID.TID 0000.0001) 1.031958047652757E+03, /* K = 26 */ +(PID.TID 0000.0001) 1.032136803798109E+03, /* K = 27 */ +(PID.TID 0000.0001) 1.032315437455689E+03, /* K = 28 */ +(PID.TID 0000.0001) 1.032493948695412E+03, /* K = 29 */ +(PID.TID 0000.0001) 1.032672337587373E+03 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 10 @ 0.000000000000000E+00, /* K = 1: 10 */ +(PID.TID 0000.0001) 1.124731220453894E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.124366515896614E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.124002146518838E-05, /* K = 13 */ +(PID.TID 0000.0001) 1.123638113569378E-05, /* K = 14 */ +(PID.TID 0000.0001) 1.123274418246514E-05, /* K = 15 */ +(PID.TID 0000.0001) 1.122911061777403E-05, /* K = 16 */ +(PID.TID 0000.0001) 1.122548045374762E-05, /* K = 17 */ +(PID.TID 0000.0001) 1.122185370222437E-05, /* K = 18 */ +(PID.TID 0000.0001) 1.121823037547582E-05, /* K = 19 */ +(PID.TID 0000.0001) 1.121461048512386E-05, /* K = 20 */ +(PID.TID 0000.0001) 1.121099404322349E-05, /* K = 21 */ +(PID.TID 0000.0001) 1.120738106139660E-05, /* K = 22 */ +(PID.TID 0000.0001) 1.120377155162599E-05, /* K = 23 */ +(PID.TID 0000.0001) 1.120016552538919E-05, /* K = 24 */ +(PID.TID 0000.0001) 1.119656043150190E-05, /* K = 25 */ +(PID.TID 0000.0001) 1.119296397022110E-05, /* K = 26 */ +(PID.TID 0000.0001) 1.118936846446139E-05, /* K = 27 */ +(PID.TID 0000.0001) 1.118577648836210E-05, /* K = 28 */ +(PID.TID 0000.0001) 1.118218805347293E-05, /* K = 29 */ +(PID.TID 0000.0001) 1.117860317127138E-05 /* K = 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F @@ -968,10 +1139,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -1026,28 +1203,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1069,7 +1249,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1078,7 +1258,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1118,7 +1298,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ (PID.TID 0000.0001) 0 @@ -1175,7 +1355,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ (PID.TID 0000.0001) T @@ -1253,8 +1433,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1271,6 +1451,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1290,7 +1473,7 @@ (PID.TID 0000.0001) 1.800000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ (PID.TID 0000.0001) 0 @@ -1621,15 +1804,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 30 @ 0.000000000000000E+00 /* K = 1: 30 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1907,7 +2081,10 @@ (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) (PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_OBCS -(PID.TID 0000.0001) OBCS_CHECK: start summary: +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // OBCS_CHECK: OBCS configuration summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) useOBCSprescribe = /* prescribe OB values */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1929,6 +2106,9 @@ (PID.TID 0000.0001) OBCS_balanceFacW = /* Western OB Factor for balancing OB flow [-] */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCSfixTopo = /* mod. topo to have zero gradient across boundaries. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) OBCS_uvApplyFac = /* Factor to apply to U,V 2nd column/row */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1944,12 +2124,54 @@ (PID.TID 0000.0001) OBCS_monSelect = /* select group of variables to monitor */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCSprintDiags = /* print some OBCS diagnostics. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useOBCStides = /* apply tidal forcing through OB */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) tidalPeriod = /* (s) */ (PID.TID 0000.0001) 10 @ 0.000000000000000E+00 /* I = 1: 10 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiNorth = /* use Orlanski for northern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiSouth = /* use Orlanski for southern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiEast = /* use Orlanski for eastern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiWest = /* use Orlanski for western bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensNorth = /* use Stevens for northern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensSouth = /* use Stevens for southern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensEast = /* use Stevens for eastern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensWest = /* use Stevens for western bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensPhaseVel = /* include phase vel. term. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensAdvection = /* include advection term. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) TrelaxStevens = /* relaxation time scale for theta ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SrelaxStevens = /* relaxation time scale for salinity ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCSSponge = /* use sponge along boundaries */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) OB_indexNone = /* null value for OB index (i.e. no OB) */ (PID.TID 0000.0001) -99 (PID.TID 0000.0001) ; @@ -2025,10 +2247,14 @@ (PID.TID 0000.0001) 31 @ -99 /* J = -2: 28 */ (PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ (PID.TID 0000.0001) 31 @ -99 /* J = -2: 28 */ -(PID.TID 0000.0001) OBCS_CHECK: end summary. +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of OBCS config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_ORLANSKI (PID.TID 0000.0001) OBCS_CHECK: set-up OK (PID.TID 0000.0001) OBCS_CHECK: check Inside Mask and OB locations: OK +(PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 (PID.TID 0000.0001) SHELFICE_CHECK: #define ALLOW_SHELFICE (PID.TID 0000.0001) (PID.TID 0000.0001) SHELFICE_CHECK: start of SHELFICE config. summary @@ -2044,6 +2270,9 @@ (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -2086,8 +2315,8 @@ (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_oldCalcUStar = /* use old uStar expression */ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) SHI_withBL_uStarTopDz = /* compute uStar from top Dz averaged uVel,vVel */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) shiCdrag = /* quadr. drag coefficient for uStar */ (PID.TID 0000.0001) 1.500000000000000E-03 @@ -2107,6 +2336,9 @@ (PID.TID 0000.0001) shiKinVisc = /* const. kin. viscosity for gammaTurb */ (PID.TID 0000.0001) 1.950000000000000E-06 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; @@ -2159,6 +2391,10 @@ (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYG (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXC (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYC +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXF +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYF +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DXV +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=DYU (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=Depth (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rLowC (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= -1 1 1 1 1 file=rLowW @@ -2286,10 +2522,10 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000000000001E+00 (PID.TID 0000.0001) %MON dynstat_theta_sd = 1.1368683772162E-13 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273743990000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4400000000001E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.3896444519050E-13 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758300967351E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908761849888E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 @@ -2337,71 +2573,71 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 1 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 1 ) correct for shelfIceNetMassFlux: 3.63979756E+08 +(PID.TID 0000.0001) OBCS_balance (it= 1 ) correct for shelfIceNetMassFlux: 3.63969872E+08 (PID.TID 0000.0001) OBCS_balance (it= 1 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05829655E-04 -7.05829655E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05829655E-04 -7.05829655E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05810488E-04 -7.05810488E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05810488E-04 -7.05810488E-04 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: zeroPsNH= F , zeroMeanPnh= F (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: oldFreeSurfTerm = F - cg2d: Sum(rhs),rhsMax = 1.93051006195996E+01 8.80202029899560E-03 -(PID.TID 0000.0001) cg2d_init_res = 9.99358447911503E+00 + cg2d: Sum(rhs),rhsMax = 1.93045792961685E+01 8.80201897128457E-03 +(PID.TID 0000.0001) cg2d_init_res = 1.10554823376463E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 215 -(PID.TID 0000.0001) cg2d_last_res = 9.62944337856461E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.65052938967349E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 1 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2580869410958E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.8666866500082E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3818751072781E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7760873903952E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.1094800540001E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7014811824012E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5506233163702E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.3228509354948E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4925783756777E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8899542496324E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3818375820761E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.5475508197627E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.6543914699666E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7014811824019E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5506233163708E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.3228509354950E-07 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0373822655853E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3772481849953E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0582965488353E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = 3.4668519413419E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3212565787086E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5488561110641E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3959618807849E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7713531837006E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.7099754257395E-19 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.2363364983265E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2364648003119E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1153688765118E-10 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3772481849952E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.0581048788336E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.3581031884785E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7115002149808E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5627961117127E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6703299731819E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1682322914036E-18 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.5186360150350E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8112759360699E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.0622226074950E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5731320584613E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000112213776E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000001013622E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.6836348628903E-07 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.1680479180359E-10 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399995863593E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999962613E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8337060320929E-07 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3813505784612E-10 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000120454613E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000001060874E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.1090924869834E-07 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.6450157977788E-10 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273739621717E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399998474623E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758300927907E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908715555835E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.0589046279989E-09 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1461919689304E-04 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2107559923337E-18 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3589927897175E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1427615149765E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0628119102204E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0628119102204E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0870981158447E-06 -(PID.TID 0000.0001) %MON ke_max = 2.4954179214053E-07 -(PID.TID 0000.0001) %MON ke_mean = 3.7078249072226E-08 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3589927897176E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.4368799335107E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1111816090210E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.2044067852977E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -3.1794239374500E-07 +(PID.TID 0000.0001) %MON ke_max = 5.6085950671390E-06 +(PID.TID 0000.0001) %MON ke_mean = 3.8044838563956E-07 (PID.TID 0000.0001) %MON ke_vol = 3.4145786752861E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.2461632241778E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.2172515799189E-08 +(PID.TID 0000.0001) %MON vort_r_min = -5.2960786481450E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.2960762044060E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7365127314049E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7366951629507E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.4746660593269E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7973686880528E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4586460179785E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6409168690525E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7973708272776E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4586055063115E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6452313869819E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2410,11 +2646,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 1 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0582965488353E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0582965488353E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0582965488352E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 9.2607821435070E-11 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5337840413408E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0581048788336E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0581048788336E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0581048788335E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = -1.3764285392882E-21 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5336880804545E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2423,68 +2659,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 2 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 2 ) correct for shelfIceNetMassFlux: 3.63979760E+08 +(PID.TID 0000.0001) OBCS_balance (it= 2 ) correct for shelfIceNetMassFlux: 3.63823631E+08 (PID.TID 0000.0001) OBCS_balance (it= 2 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05829662E-04 -7.05829662E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05829662E-04 -7.05829662E-04 - cg2d: Sum(rhs),rhsMax = 1.46119349983043E+01 2.32582321855887E-02 -(PID.TID 0000.0001) cg2d_init_res = 5.92154439038031E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 215 -(PID.TID 0000.0001) cg2d_last_res = 9.63706518745681E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05526897E-04 -7.05526897E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05526897E-04 -7.05526897E-04 + cg2d: Sum(rhs),rhsMax = 1.46993233617767E+01 2.31146880222926E-02 +(PID.TID 0000.0001) cg2d_init_res = 6.04841546085647E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 218 +(PID.TID 0000.0001) cg2d_last_res = 9.53548570649656E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.6472297494432E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.5630985870593E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7637502293209E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5161203705443E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0704177351961E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.7488761449125E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4444813937207E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.6395242588210E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.3400801814444E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5615167296539E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.6720768223252E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = 8.3955139542188E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.2785646605424E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2809037829505E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.5941779362150E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.2927917912692E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8221284295932E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1058021326620E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.5378501618822E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0242047572420E-09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.4613348439686E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.7890600431574E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7631199484407E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2864829988712E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0888425343025E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.5053885322123E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.6056198185447E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6639876233233E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.7859758708285E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4295537173854E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.5569353070365E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.5556996213307E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6594416086965E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0079967931081E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.8406740762514E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9925186734239E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3188903866910E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2834238561998E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.9045581569973E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4135018562237E-09 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000224401761E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000002027216E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.5362771628576E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.8296845895027E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399991728136E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999925225E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.6657532281636E-07 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.7482243621754E-10 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3589929622061E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1455236204307E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0628119102204E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8851349963049E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2421345677157E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3756750747615E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3756737572137E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 4.8398444672274E-06 -(PID.TID 0000.0001) %MON ke_max = 2.9390148567803E-07 -(PID.TID 0000.0001) %MON ke_mean = 1.4751442216707E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145723144749E+14 -(PID.TID 0000.0001) %MON vort_r_min = -9.5047301846149E-08 -(PID.TID 0000.0001) %MON vort_r_max = 9.1053692306773E-08 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000466753859E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000003239046E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8008790781648E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.4700216507457E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273735263639E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399996984163E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758300666624E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908657157980E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4603827207096E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3589929622062E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.4125830567095E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.2044067852977E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.7005189582975E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.7567950821558E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5913342320146E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2156015562871E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4041611492085E-06 +(PID.TID 0000.0001) %MON ke_max = 6.4191385579874E-06 +(PID.TID 0000.0001) %MON ke_mean = 5.3734376040942E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145723146476E+14 +(PID.TID 0000.0001) %MON vort_r_min = -5.4406444321414E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.5102487631526E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7364142469015E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746687361505E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7974560144312E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4586464367329E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6409168824052E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7367874704550E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746688607077E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7975493070851E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4580169409167E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6396411068920E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2493,11 +2729,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 2 (PID.TID 0000.0001) %MON obc_time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0582966242498E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0582966242498E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0582966242498E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = -1.9058241313222E-21 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5337840790976E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0552689661531E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0552689661531E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0552689661530E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = -5.2939559203394E-21 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5322682615358E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2506,68 +2742,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 3 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 3 ) correct for shelfIceNetMassFlux: 3.63979764E+08 +(PID.TID 0000.0001) OBCS_balance (it= 3 ) correct for shelfIceNetMassFlux: 3.63796230E+08 (PID.TID 0000.0001) OBCS_balance (it= 3 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05829670E-04 -7.05829670E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05829670E-04 -7.05829670E-04 - cg2d: Sum(rhs),rhsMax = 1.55930276269937E+01 3.26922827448072E-02 -(PID.TID 0000.0001) cg2d_init_res = 2.61585970412152E+00 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05473760E-04 -7.05473760E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05473760E-04 -7.05473760E-04 + cg2d: Sum(rhs),rhsMax = 1.59775152127579E+01 3.18953526280206E-02 +(PID.TID 0000.0001) cg2d_init_res = 2.69554621218435E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 214 -(PID.TID 0000.0001) cg2d_last_res = 8.32407393741538E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.46965466758224E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.4169925466853E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1408677131050E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.1456253661203E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.3326196475074E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.4837121384322E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4879786506528E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7864810953681E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.6715087828349E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.7911792076896E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.6476246428114E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2047687305656E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = 9.3186163518387E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.1417229095357E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6633578279485E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9056069673087E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5914839711401E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2670134622291E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9940798073926E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.7564616249481E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.9133809035844E-09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.8716639719022E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3241774009361E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.1442982840411E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6557748403327E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.4965247624310E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0156613150450E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1518401606180E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.3005115658936E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0129807887531E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0883074943981E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0130326772740E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.6555190590464E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9259634013883E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.6291147134598E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.7091343960838E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0987243536951E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.4680681267733E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6743054614520E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.5530440138868E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8919656213580E-09 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000336574118E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000003040801E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.3039145136981E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.7401887889161E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399987593255E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999887838E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.4967813682013E-07 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0106336325013E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.8851354917552E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2452035454625E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.3756737572137E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4286920113058E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9505603515124E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.5489038268405E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.5488917705888E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 1.1765654492598E-05 -(PID.TID 0000.0001) %MON ke_max = 7.2571164345256E-07 -(PID.TID 0000.0001) %MON ke_mean = 3.4812598013006E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145659536635E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.7344318018964E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.5669253263504E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000747554545E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000005207468E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5031923637846E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5355132672029E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273730917038E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399995547109E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758300625303E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908610330120E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2449381422147E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.7005193010572E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.7317785692421E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2156015562871E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.5274200221513E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2993730313947E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.0808408760640E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.6770347687480E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -2.9379204022040E-06 +(PID.TID 0000.0001) %MON ke_max = 3.5170377587686E-06 +(PID.TID 0000.0001) %MON ke_mean = 3.1017345629057E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145659565647E+14 +(PID.TID 0000.0001) %MON vort_r_min = -3.8933773287191E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.7233333177210E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7363827005175E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746714480741E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7976689455231E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4586472251096E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6409168821088E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7366223613387E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746716694491E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7971122218657E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4579071042132E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6461736161716E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2576,11 +2812,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 3 (PID.TID 0000.0001) %MON obc_time_secondsf = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0582966996227E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0582966996227E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0582966996225E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.0986455069026E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5337841168335E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0547376012122E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0547376012122E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0547376012120E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.1318733730953E-10 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5320022300741E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2589,68 +2825,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 4 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 4 ) correct for shelfIceNetMassFlux: 3.63979596E+08 +(PID.TID 0000.0001) OBCS_balance (it= 4 ) correct for shelfIceNetMassFlux: 3.63906443E+08 (PID.TID 0000.0001) OBCS_balance (it= 4 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05829345E-04 -7.05829345E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05829345E-04 -7.05829345E-04 - cg2d: Sum(rhs),rhsMax = 1.61973812053576E+01 4.19632946985062E-02 -(PID.TID 0000.0001) cg2d_init_res = 2.02754443066484E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 213 -(PID.TID 0000.0001) cg2d_last_res = 6.80542141855455E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05687485E-04 -7.05687485E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05687485E-04 -7.05687485E-04 + cg2d: Sum(rhs),rhsMax = 1.68410198936941E+01 4.03478024038659E-02 +(PID.TID 0000.0001) cg2d_init_res = 2.11068248659912E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 215 +(PID.TID 0000.0001) cg2d_last_res = 9.52796685692590E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.5924067691501E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9965969002056E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.5274998659739E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.1935792250040E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8949119802682E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2892446775843E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4576430434053E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.1344752504337E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7945305169551E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1455857980001E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7310733624647E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = 7.4801143921623E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0603403678854E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8676656640129E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3167302245266E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6014892764483E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0723483041062E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8154944283239E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2830381660446E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.7541060790907E-09 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999989E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000448730412E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000004055687E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.0716575352470E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.6487790450606E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399983458966E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999850403E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1328201580708E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3457391514894E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4286926633473E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9583996884791E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.5488917705888E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.7964772526607E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.8026649270666E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5608935658690E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5608895573002E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 2.1648054522138E-05 -(PID.TID 0000.0001) %MON ke_max = 1.4953998188335E-06 -(PID.TID 0000.0001) %MON ke_mean = 6.0785712545857E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145595928521E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.5232840482661E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.1494709223589E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.8569108817798E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3529009385254E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.5258950512817E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7543478900998E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9041364380236E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.7467472394850E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9084172944753E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.8023373559462E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5880694920844E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.3255394767625E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.3290777842402E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6286760736919E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.9524772443766E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.5333188468994E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9790079410033E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.8732048394210E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0927532347926E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6355485637614E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2702039288904E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0242268520417E-09 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999994E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000881825374E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000006255435E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.2522966773155E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.3594073788418E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273726573531E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399993679602E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758300782114E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908568577350E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.0311161361615E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.5274190643164E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2814971680446E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6770347687480E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8443780702524E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.6368803357876E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.5565194087557E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5565798786828E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -3.2796012610793E-06 +(PID.TID 0000.0001) %MON ke_max = 1.8202447730882E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.3322134043810E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145595989607E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.2325943689710E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.1294290846293E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7364716066784E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746741551739E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7980803796574E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4586476185416E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6409156255359E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7364363987753E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746744234984E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7966201685783E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4583511423860E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6592044474051E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2659,11 +2895,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 4 (PID.TID 0000.0001) %MON obc_time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0582934462521E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0582934462521E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0582934462519E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.4108605267877E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5337824880114E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0568748526807E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0568748526807E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0568748526805E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 7.6310887246666E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5330722595181E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2672,68 +2908,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 5 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 5 ) correct for shelfIceNetMassFlux: 3.63944270E+08 +(PID.TID 0000.0001) OBCS_balance (it= 5 ) correct for shelfIceNetMassFlux: 3.63964336E+08 (PID.TID 0000.0001) OBCS_balance (it= 5 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05760840E-04 -7.05760840E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05760840E-04 -7.05760840E-04 - cg2d: Sum(rhs),rhsMax = 1.65919397328064E+01 5.12057550466097E-02 -(PID.TID 0000.0001) cg2d_init_res = 1.66522576661183E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 211 -(PID.TID 0000.0001) cg2d_last_res = 9.38545894343144E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05799753E-04 -7.05799753E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05799753E-04 -7.05799753E-04 + cg2d: Sum(rhs),rhsMax = 1.72857774752251E+01 4.91395213769565E-02 +(PID.TID 0000.0001) cg2d_init_res = 1.73737946466836E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 213 +(PID.TID 0000.0001) cg2d_last_res = 9.68641556564450E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1599325467317E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.0131824508995E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.9092402476903E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.1753018903324E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3067830865003E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6126404476649E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.2973360163795E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.5639935931671E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5438006777110E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5450629059817E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2215226919654E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = 2.5634805615969E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2443648291025E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9914170058403E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6725819258258E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.6322256252949E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2860073326800E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4589081010102E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6134912375957E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1139353114089E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999950E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000560870551E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000005339817E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.9938250412738E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.7642627285019E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000002E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399979325272E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999803035E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4729486219278E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.7572024513274E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.7964776923959E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.8141219018068E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5608895573002E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0250691989994E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.5967185842368E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1793353751769E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1793268568539E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 3.3793310739383E-05 -(PID.TID 0000.0001) %MON ke_max = 2.4084538680964E-06 -(PID.TID 0000.0001) %MON ke_mean = 8.5956597864073E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145532320437E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.2405827280885E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.6025779661877E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.9458344855273E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1182993710703E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.9077116163027E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6601661955955E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3138531274103E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7236739259713E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1861937844019E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.3238000137630E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4443214236651E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2776131360458E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4641808612111E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4857457856952E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.8456336730645E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2152440627250E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.0477542379321E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2263508998098E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.3653365073946E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.6659677766587E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.0742907276300E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3188862906918E-09 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999980E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000934512875E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000007176964E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.8948789217522E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.0607648450924E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273722629686E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399986639139E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301023584E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908525990592E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.7587141217439E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8443746799719E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5964072994803E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.5565798786828E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.6950467530708E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3705571557960E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.3581053988586E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3581816069403E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -6.2924959194213E-07 +(PID.TID 0000.0001) %MON ke_max = 2.3953038077821E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.8042409704032E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145532394307E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.0389633789259E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2111462561498E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7366354797399E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746768605409E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7986562942328E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4585073741802E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6406592620184E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7363525594034E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746771373985E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7965524586889E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4585860819352E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6731982298079E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2742,11 +2978,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 5 (PID.TID 0000.0001) %MON obc_time_secondsf = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0576084020108E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0576084020108E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0576084020106E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 8.9111917724337E-11 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5334395159656E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0579975286056E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0579975286056E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0579975286056E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = -4.1292856178647E-21 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5336343348347E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2755,68 +2991,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 6 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 6 ) correct for shelfIceNetMassFlux: 3.63902162E+08 +(PID.TID 0000.0001) OBCS_balance (it= 6 ) correct for shelfIceNetMassFlux: 3.63961636E+08 (PID.TID 0000.0001) OBCS_balance (it= 6 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05679185E-04 -7.05679185E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05679185E-04 -7.05679185E-04 - cg2d: Sum(rhs),rhsMax = 1.69023120793684E+01 6.03166276776864E-02 -(PID.TID 0000.0001) cg2d_init_res = 1.41398330180840E+00 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05794516E-04 -7.05794516E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05794516E-04 -7.05794516E-04 + cg2d: Sum(rhs),rhsMax = 1.75736730804443E+01 5.80032560783465E-02 +(PID.TID 0000.0001) cg2d_init_res = 1.47428230159192E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 211 -(PID.TID 0000.0001) cg2d_last_res = 7.82560110112831E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.78011021122377E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1737154905910E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.1175821890196E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.2908207645853E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1829572829991E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7186520384024E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0940774334663E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4571610895717E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.1855994183427E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1271901073037E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1429904477096E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6394839576021E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6186120033285E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3517618698011E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.7514255179940E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9429165644636E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6012146028906E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3509161098840E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8523656846306E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8414675472053E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2918257894329E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999862E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000672994353E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000006844338E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.0701757423815E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0653413278257E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000005E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399975192181E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999747536E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8699558533918E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.2371367149215E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.0250690852592E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.6116777061186E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1793268568539E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3505262071452E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2734116727403E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7607287617344E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7607147119677E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.7242075973809E-05 -(PID.TID 0000.0001) %MON ke_max = 3.2665940239423E-06 -(PID.TID 0000.0001) %MON ke_mean = 1.0343571115379E-06 -(PID.TID 0000.0001) %MON ke_vol = 3.4145468718525E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.8630260361140E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.9070744292680E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.0753030687201E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3428115522332E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.2895179293186E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.4581928297948E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.7245171875355E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.6509668493159E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8986329459597E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8770430598618E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3329171651349E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0916433935127E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.3283856487529E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.4208562606328E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0850678028264E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2320368348986E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2352733212142E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8953624035498E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1387831628762E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.3272622335325E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.3957955230379E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.1472680462770E-09 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999996E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001043558665E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000008284986E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.7386163002539E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.0141551657041E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273719106034E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399983856093E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301277718E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908481399609E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.4763531760402E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.6950433234428E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.3799227795378E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3581816069403E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8144142714221E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.7697332394705E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1372174421299E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1372307997441E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.9296373095767E-06 +(PID.TID 0000.0001) %MON ke_max = 2.7062548278439E-06 +(PID.TID 0000.0001) %MON ke_mean = 4.2820397922737E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145468788889E+14 +(PID.TID 0000.0001) %MON vort_r_min = -3.2878925047496E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8269171830389E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7368057109816E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746795650504E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7993178763902E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4583400759164E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6403536891884E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7363844449771E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746798283018E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7970054261597E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4585782980171E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6854513925915E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2825,11 +3061,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 6 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0567918496961E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0567918496961E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0567918496961E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = -7.6232965252887E-21 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5330307035109E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0579451637491E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0579451637491E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0579451637490E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.1365409119617E-10 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5336081180141E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2838,68 +3074,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 7 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 7 ) correct for shelfIceNetMassFlux: 3.63872659E+08 +(PID.TID 0000.0001) OBCS_balance (it= 7 ) correct for shelfIceNetMassFlux: 3.63930281E+08 (PID.TID 0000.0001) OBCS_balance (it= 7 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05621971E-04 -7.05621971E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05621971E-04 -7.05621971E-04 - cg2d: Sum(rhs),rhsMax = 1.71706142665407E+01 6.92674318585771E-02 -(PID.TID 0000.0001) cg2d_init_res = 1.23110279104526E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 210 -(PID.TID 0000.0001) cg2d_last_res = 7.88835877430990E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05733713E-04 -7.05733713E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05733713E-04 -7.05733713E-04 + cg2d: Sum(rhs),rhsMax = 1.75390861805354E+01 6.78046186590638E-02 +(PID.TID 0000.0001) cg2d_init_res = 1.26214578766915E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 211 +(PID.TID 0000.0001) cg2d_last_res = 9.15390204926456E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.7626462066909E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.2387828744504E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.6722892686960E-03 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5718507074536E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1305337456424E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5676779937932E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7229533712454E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0539686550936E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4619702985332E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8505329362753E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.9433288244489E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6942754889049E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3788113024992E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.0739435381993E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.1456266365890E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4576782962456E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6368683841138E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9702244817154E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9693172331914E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4120858264628E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999689E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000852477931E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000008453593E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 6.2299426041059E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.4547332431610E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000011E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399968568691E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999688174E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.2977287812384E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.7496444017220E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3505256735993E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2911860539214E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7607147119677E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8008907248253E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.7653465439281E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2746069777474E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2745874826827E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 6.0979339003686E-05 -(PID.TID 0000.0001) %MON ke_max = 3.9184818055708E-06 -(PID.TID 0000.0001) %MON ke_mean = 1.0910829082413E-06 -(PID.TID 0000.0001) %MON ke_vol = 3.4145405123972E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.3153649373877E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.1044677454291E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1135228580370E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8774923490057E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.6712052015961E-03 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.2277583430702E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1356997131498E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.2875976500786E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2891986246478E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.6902103027936E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2340023437191E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8970309144977E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.9127421213842E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.0463136653209E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1213701154109E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.4247222451206E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6933858753460E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4686775270961E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3290616120045E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4291383695188E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3984095007443E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.2265421963154E-09 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999785E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001238880247E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000009624704E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.7325785942410E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.1901144937156E-09 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273715985410E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399988609011E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301504381E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908435755431E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.4761957136228E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8144137052348E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.7847505716656E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1372307997441E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.9480695296062E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.7158256618137E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.4812065162577E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4812241106905E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6250281888769E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2410635454518E-06 +(PID.TID 0000.0001) %MON ke_mean = 7.8738634963259E-07 +(PID.TID 0000.0001) %MON ke_vol = 3.4145405183943E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.1429954904018E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.0745872426551E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7369345844099E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746822686460E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.7999824875954E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4582231481357E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6401395720797E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7364992920639E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746825109325E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7978094538268E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4584555315805E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6947578401103E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2908,11 +3144,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 7 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0562197144540E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0562197144540E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0562197144537E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.4033358836594E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5327442601212E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0573371313529E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0573371313529E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0573371313528E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 8.1672421658891E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5333037024708E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -2921,68 +3157,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 8 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 8 ) correct for shelfIceNetMassFlux: 3.63856561E+08 +(PID.TID 0000.0001) OBCS_balance (it= 8 ) correct for shelfIceNetMassFlux: 3.63872271E+08 (PID.TID 0000.0001) OBCS_balance (it= 8 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05590755E-04 -7.05590755E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05590755E-04 -7.05590755E-04 - cg2d: Sum(rhs),rhsMax = 1.74105787254586E+01 7.80692445164802E-02 -(PID.TID 0000.0001) cg2d_init_res = 1.09180630649037E+00 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 7.31807535218414E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05621219E-04 -7.05621219E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05621219E-04 -7.05621219E-04 + cg2d: Sum(rhs),rhsMax = 1.75611400552670E+01 7.73927406591259E-02 +(PID.TID 0000.0001) cg2d_init_res = 1.10598067264528E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 210 +(PID.TID 0000.0001) cg2d_last_res = 9.43305895951463E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.1224291259269E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.3112479107386E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1053696657782E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.9483308812882E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5424292828662E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0370550314076E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1714454947215E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.0566303142184E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.8129540700035E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5918128419705E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.1541424878957E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.6485475306454E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3335633091276E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.9877789017602E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.3177284223876E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.1767083234267E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.4146239691255E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8331334309370E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0166899081015E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4876122603786E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999398E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001057586139E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000010101321E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.4354209283994E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.8712117333263E-09 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000022E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399961006393E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999627394E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.7423451621016E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.2721256760421E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.8008896068692E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.7851681042722E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.2745874826827E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.2383210359292E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1066608252868E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.7060249940560E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.7060011566941E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 7.4098875782362E-05 -(PID.TID 0000.0001) %MON ke_max = 4.2266338910337E-06 -(PID.TID 0000.0001) %MON ke_mean = 1.0308115048290E-06 -(PID.TID 0000.0001) %MON ke_vol = 3.4145341534576E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.5666623720901E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.2605914682998E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.9095272746836E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.4791176760556E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.1052672231984E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0695541803272E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5471751717246E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.7914385926307E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6377237198231E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.3559711238339E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3226674219012E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8080569151022E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2619990784551E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 1.5782008959938E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3717287491162E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.1020938943114E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.0811421931623E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.8905425429616E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5624779082446E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.1707168867140E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7582858390885E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1607014950068E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999999341E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001341199012E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000011317609E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.9557016160915E-06 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0661520962327E-08 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273712982036E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399985517262E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301678096E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908390059765E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.0343853776636E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.9480708127025E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.7347714960383E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4812241106905E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0327507540847E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.2812842064031E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7343255257769E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7343450658852E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.9441103945427E-05 +(PID.TID 0000.0001) %MON ke_max = 5.3189590850728E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.1396522959940E-06 +(PID.TID 0000.0001) %MON ke_vol = 3.4145341584476E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.6675273213243E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.0025152516024E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7370072754576E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746849710533E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.8005840040395E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4581595974057E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6400227390907E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7366506050965E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746851954104E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7987383363657E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4582256307194E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7005130591431E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2991,11 +3227,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 8 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0559075531255E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0559075531255E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0559075531253E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.0643808373663E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5325879744348E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0562121870234E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0562121870234E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0562121870233E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.4551915228367E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5327404914621E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -3004,68 +3240,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 9 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 9 ) correct for shelfIceNetMassFlux: 3.63855403E+08 +(PID.TID 0000.0001) OBCS_balance (it= 9 ) correct for shelfIceNetMassFlux: 3.63826534E+08 (PID.TID 0000.0001) OBCS_balance (it= 9 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05588509E-04 -7.05588509E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05588509E-04 -7.05588509E-04 - cg2d: Sum(rhs),rhsMax = 1.76259757689782E+01 8.67524488321101E-02 -(PID.TID 0000.0001) cg2d_init_res = 9.81878159570148E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 209 -(PID.TID 0000.0001) cg2d_last_res = 8.15281003233822E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05532527E-04 -7.05532527E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05532527E-04 -7.05532527E-04 + cg2d: Sum(rhs),rhsMax = 1.76499679602024E+01 8.66266226247731E-02 +(PID.TID 0000.0001) cg2d_init_res = 9.87877784527314E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 210 +(PID.TID 0000.0001) cg2d_last_res = 7.91711694587393E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.7032019613033E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.2799135787183E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2435099649799E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2860341434489E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.9543412101398E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.4685342182068E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.8177027280311E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1979999266330E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1445434104277E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.3142828236003E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2677239329913E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2237731624749E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2339740891563E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.6019023645806E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.5021698664226E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.7568290345833E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.6734194997390E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4999118858477E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0125770755724E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5356546250422E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999998960E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001270791001E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000011711832E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 8.6340607526666E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0256414496518E-08 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000038E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399953145586E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999567988E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1844175811828E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.7830441238350E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.2383193748133E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.1288663111218E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.7060011566941E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.5596921555472E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.2905529349093E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.0540974207500E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.0540709120928E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 8.5917561224138E-05 -(PID.TID 0000.0001) %MON ke_max = 4.1649668184431E-06 -(PID.TID 0000.0001) %MON ke_mean = 8.9063375261066E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145277947992E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.6572924926111E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.3036125040108E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7370325308410E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746876723655E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.8010775295979E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4581554114473E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6400143190175E-05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.6061307924280E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.1344864224323E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.2433965620919E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0947713231084E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.9588428830602E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1588978116179E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.6030070678344E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2917585718916E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4976124385996E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.9245728612166E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4252464955838E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 3.0357205115928E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5196637198421E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.2732418562290E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.3506177156806E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5433246458172E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8759891832654E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5209458121810E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9528449204715E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2791131332404E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999998619E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001467021887E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000013193643E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.0296064010746E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.2262336083745E-08 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273709993164E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399982236677E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301796145E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908344423365E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.0842213992805E-08 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.0327517374967E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.3026810226028E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7343450658852E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.7854805832443E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5455871645223E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1259947874903E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1259995746203E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.4242189013592E-05 +(PID.TID 0000.0001) %MON ke_max = 5.8623190532290E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.3659399168825E-06 +(PID.TID 0000.0001) %MON ke_vol = 3.4145277995147E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.9346514288485E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.7073387738457E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969630E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7367956490535E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746878867396E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.7996291197954E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4580443768437E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7029289989237E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3074,11 +3310,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 9 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0558850939212E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0558850939212E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0558850939212E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = -1.0905549195899E-20 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5325767300820E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0553252668759E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0553252668759E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0553252668757E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 7.4910568517131E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5322964488745E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -3087,68 +3323,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 10 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 10 ) correct for shelfIceNetMassFlux: 3.63867428E+08 +(PID.TID 0000.0001) OBCS_balance (it= 10 ) correct for shelfIceNetMassFlux: 3.63805589E+08 (PID.TID 0000.0001) OBCS_balance (it= 10 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05611828E-04 -7.05611828E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05611828E-04 -7.05611828E-04 - cg2d: Sum(rhs),rhsMax = 1.78169151347240E+01 9.53570242224407E-02 -(PID.TID 0000.0001) cg2d_init_res = 8.92634373063838E-01 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05491909E-04 -7.05491909E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05491909E-04 -7.05491909E-04 + cg2d: Sum(rhs),rhsMax = 1.77817999647603E+01 9.55358678369698E-02 +(PID.TID 0000.0001) cg2d_init_res = 8.95132873945988E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 209 -(PID.TID 0000.0001) cg2d_last_res = 8.06705924595042E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.42648494775133E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.2646187739591E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.1103078021471E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3816548294484E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5698942906531E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3662725374409E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.8414901869445E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.6808874319868E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9977266092997E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4340703426053E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9875950196974E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2994450732870E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.4211241180168E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1038492453055E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.0806156801987E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.7343711535865E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.2165283216190E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.3680682159680E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0532612154097E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9891165977059E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.5743837143357E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999998358E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001546103274E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000013227232E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 9.7846845966390E-06 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.1562524703114E-08 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000061E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399943008798E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999512092E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.6087578977910E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.2647610289121E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.5596901663690E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.3135596246776E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.0540709120928E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.7018405164800E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3419105083554E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3299169929714E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.3298896200799E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 9.6044898384006E-05 -(PID.TID 0000.0001) %MON ke_max = 4.5906982783910E-06 -(PID.TID 0000.0001) %MON ke_mean = 7.2205794512053E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145214361612E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.6903969084604E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.2687250235615E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.3337662651213E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.7824758094907E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3815179489258E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3066709901849E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3706516892598E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5259271547534E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.6563965031174E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.7836897867972E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6763870170404E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2789443537961E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4392748359958E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 2.6773326449450E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5493408405695E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0405222390831E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.5183222156718E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.3762703653466E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2367432590819E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5047119010917E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9694352462717E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2710171784312E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999997588E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001672792468E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000015098651E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.1663754706564E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3911883754414E-08 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273706837502E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399978952898E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301863181E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908298742516E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1305799665297E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.7854800297908E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.5682482617146E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1259995746203E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7898802995833E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5682995108099E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6257622192080E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6257633090975E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.9307342248591E-05 +(PID.TID 0000.0001) %MON ke_max = 5.8941410119108E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.3990347279349E-06 +(PID.TID 0000.0001) %MON ke_vol = 3.4145214413811E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.9815867315275E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8601889488741E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7370272786326E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746903731340E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.8014379236557E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4582035338441E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6401015687916E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7369063429144E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746905857889E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.8004025202187E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4579616709219E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7024211041708E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3157,11 +3393,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 10 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0561182771296E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0561182771296E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0561182771294E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.2934025169402E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5326934748368E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0549190941762E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0549190941762E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0549190941761E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 5.9999083541591E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5320930957576E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -3170,68 +3406,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 11 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 11 ) correct for shelfIceNetMassFlux: 3.63886893E+08 +(PID.TID 0000.0001) OBCS_balance (it= 11 ) correct for shelfIceNetMassFlux: 3.63806583E+08 (PID.TID 0000.0001) OBCS_balance (it= 11 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05649575E-04 -7.05649575E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05649575E-04 -7.05649575E-04 - cg2d: Sum(rhs),rhsMax = 1.79822674635846E+01 1.03927302067327E-01 -(PID.TID 0000.0001) cg2d_init_res = 8.18469991032797E-01 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05493837E-04 -7.05493837E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05493837E-04 -7.05493837E-04 + cg2d: Sum(rhs),rhsMax = 1.79318102147258E+01 1.04208259544934E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.19785261805097E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.75689030612295E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.89672923149026E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.1883388334274E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7964423326644E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5198070840924E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7964981705811E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.7782252464057E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1431850208380E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.7493618661163E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.3100800355532E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.6717598752516E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6019667150605E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2934347290330E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2799958907434E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.6805918949827E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5999163401575E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.0319695035514E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.5889053395346E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2426892674386E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.5821744144903E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9752592296790E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6200477963705E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999997581E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001871108650E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000014628450E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.0875251081441E-05 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.2784205593703E-08 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000089E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399931029080E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999460409E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.0109248610762E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.7153074409375E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.7018384891373E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.3651420901199E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.3298896200799E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.6257572490624E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3321795625703E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5533432037207E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.5533165899281E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 1.0440242020951E-04 -(PID.TID 0000.0001) %MON ke_max = 4.9679090080425E-06 -(PID.TID 0000.0001) %MON ke_mean = 5.6847672169806E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145150773129E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.6452029536022E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.1971228686336E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.7428632643835E-03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.3993964000236E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5196397131976E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6013368653463E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.7825709648663E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8885114789994E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0866012437081E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.9031105186842E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.8825144078422E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8005664731288E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4347017452170E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 1.6347175670035E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4712767764861E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.5146540432028E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.6520059448494E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8933419799962E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6647794484656E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.1891270261927E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8399793711260E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1657630047811E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999996291E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9001891384350E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000016936087E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2994775597364E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5483593837991E-08 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273703476692E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399975825227E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301887503E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908252938821E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3358554256605E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7898794879549E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.5910549152481E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.6257633090975E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6904155467065E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5608955258536E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9360051879977E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.9360049120338E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 7.3422309206742E-05 +(PID.TID 0000.0001) %MON ke_max = 5.5304798723756E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.2535108421488E-06 +(PID.TID 0000.0001) %MON ke_vol = 3.4145150836135E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.8898272977475E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9817397109983E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7370058344087E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746930740128E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.8016584523917E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4582810982071E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6402428195944E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7369718040078E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746932904862E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.8010331793842E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4579659418558E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6995841774967E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3240,11 +3476,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 11 (PID.TID 0000.0001) %MON obc_time_secondsf = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0564957500990E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0564957500990E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0564957500988E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.6718877731293E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5328824592392E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0549383728235E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0549383728235E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0549383728233E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.3337050608114E-10 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5321027477430E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -3253,68 +3489,68 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) OBCS_balance (it= 12 ) correct for netFreshWaterFlux: 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance (it= 12 ) correct for shelfIceNetMassFlux: 3.63906698E+08 +(PID.TID 0000.0001) OBCS_balance (it= 12 ) correct for shelfIceNetMassFlux: 3.63822465E+08 (PID.TID 0000.0001) OBCS_balance (it= 12 ) correct for inFlow: 0.00000000E+00 0.00000000E+00 -(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05687981E-04 -7.05687981E-04 -(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05687981E-04 -7.05687981E-04 - cg2d: Sum(rhs),rhsMax = 1.81210145929240E+01 1.12506852892114E-01 -(PID.TID 0000.0001) cg2d_init_res = 7.55623249517373E-01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 206 -(PID.TID 0000.0001) cg2d_last_res = 9.33338876230141E-14 +(PID.TID 0000.0001) OBCS_balance correction to OBEu,OBWu: 7.05524636E-04 -7.05524636E-04 +(PID.TID 0000.0001) OBCS_balance correction to OBNv,OBSv: 7.05524636E-04 -7.05524636E-04 + cg2d: Sum(rhs),rhsMax = 1.80819180366572E+01 1.12736557325356E-01 +(PID.TID 0000.0001) cg2d_init_res = 7.56927757158014E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 +(PID.TID 0000.0001) cg2d_last_res = 9.91549275318433E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.5723595187215E-03 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3600700175536E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6579668579153E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.9725510561446E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.1902002973121E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.3766464077762E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.9990209149571E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1442069233575E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8597686945222E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1645408442898E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.2935560368814E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.5970068809920E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.4836226241023E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2848033692772E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.3939667639815E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9151754612151E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5761745013063E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1655252230793E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9913226182645E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6847466801974E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999996623E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9002222135139E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000015934195E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.1918975077481E-05 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3946596354539E-08 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000125E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399918090266E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399999412249E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.3957952997783E-06 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.1439586341237E-09 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.6257554741273E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.3553702120243E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.5533165899281E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0340714409649E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.3323759639819E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7491052767291E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7490806073942E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 1.1119039262141E-04 -(PID.TID 0000.0001) %MON ke_max = 5.7008138149121E-06 -(PID.TID 0000.0001) %MON ke_mean = 4.5359287157986E-07 -(PID.TID 0000.0001) %MON ke_vol = 3.4145087181245E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.5877566438892E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.1297967732355E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0691037717434E-03 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.9257185105486E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6577675073357E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.8902545032061E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.1945734633687E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.1871199808441E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.8485431518568E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0254803982395E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1203570028243E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3840119333433E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4188716897063E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1101572509845E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3157802778240E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.8261369785773E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.8335676355458E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1292076384797E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.0381011189940E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6687476529828E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6270836089820E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0191795379854E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999993678E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9002109053176E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000018655097E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4261124534743E-05 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.6955097931063E-08 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5273701613185E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4399972986061E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4758301879962E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9908206887982E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.5002847101395E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6904145368462E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.5826938537491E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.9360049120338E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.4643377751131E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5352661433355E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0775245830878E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.0775256819300E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5686921431944E-05 +(PID.TID 0000.0001) %MON ke_max = 5.2424320113658E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.0053094681518E-06 +(PID.TID 0000.0001) %MON ke_vol = 3.4145087258286E+14 +(PID.TID 0000.0001) %MON vort_r_min = -4.7032892846183E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9658004808908E-07 (PID.TID 0000.0001) %MON vort_a_mean = -1.3992981969631E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7369767512393E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.4746957754106E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.8017500924498E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4583598959525E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6403865405242E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7369940862817E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.4746959975409E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.8015145595761E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.4580289805318E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6951690633032E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3331,11 +3567,11 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON obc_time_tsnumber = 12 (PID.TID 0000.0001) %MON obc_time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0568798122607E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0568798122607E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0568798122606E-04 -(PID.TID 0000.0001) %MON obc_N_vVel_sd = 1.0186340659857E-10 -(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5330747425655E+05 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 7.0552463643626E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_min = 7.0552463643626E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 7.0552463643625E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 9.9230831961801E-11 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 3.5322569457961E+05 (PID.TID 0000.0001) %MON obc_N_theta_max = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_min = -1.9000000000000E+00 (PID.TID 0000.0001) %MON obc_N_theta_mean = -1.9000000000000E+00 @@ -3344,6 +3580,7 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 12 1 30 1 30 file=pickup_ggl90.ckptA (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 12 -1 1 1 1 file=pickup_shelfice.ckptA (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 12 -1 30 1 30 file=pickup.ckptA (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 12 -2 30 1 30 file=pickup.ckptA @@ -3358,159 +3595,165 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) MDS_WRITE_FIELD: it,rec,kS,kL,kH= 12 -243 1 1 1 file=pickup.ckptA (PID.TID 0000.0001) %CHECKPOINT 12 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 18.715827943757176 -(PID.TID 0000.0001) System time: 0.23613700270652771 -(PID.TID 0000.0001) Wall clock time: 18.960452079772949 +(PID.TID 0000.0001) User time: 20.430542615940794 +(PID.TID 0000.0001) System time: 0.29274000599980354 +(PID.TID 0000.0001) Wall clock time: 20.750205993652344 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.24055300187319517 -(PID.TID 0000.0001) System time: 4.0538001805543900E-002 -(PID.TID 0000.0001) Wall clock time: 0.28495597839355469 +(PID.TID 0000.0001) User time: 0.19061200134456158 +(PID.TID 0000.0001) System time: 0.11969100590795279 +(PID.TID 0000.0001) Wall clock time: 0.33474111557006836 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 18.475223302841187 -(PID.TID 0000.0001) System time: 0.19559700414538383 -(PID.TID 0000.0001) Wall clock time: 18.675456047058105 +(PID.TID 0000.0001) User time: 20.239894539117813 +(PID.TID 0000.0001) System time: 0.17300800979137421 +(PID.TID 0000.0001) Wall clock time: 20.415400028228760 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.51871299743652344 -(PID.TID 0000.0001) System time: 0.13282700628042221 -(PID.TID 0000.0001) Wall clock time: 0.65228390693664551 +(PID.TID 0000.0001) User time: 0.39253699779510498 +(PID.TID 0000.0001) System time: 9.2684999108314514E-002 +(PID.TID 0000.0001) Wall clock time: 0.48529601097106934 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 17.956483602523804 -(PID.TID 0000.0001) System time: 6.2766000628471375E-002 -(PID.TID 0000.0001) Wall clock time: 18.023143053054810 +(PID.TID 0000.0001) User time: 19.847336888313293 +(PID.TID 0000.0001) System time: 8.0316007137298584E-002 +(PID.TID 0000.0001) Wall clock time: 19.930078029632568 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 17.956387102603912 -(PID.TID 0000.0001) System time: 6.2764003872871399E-002 -(PID.TID 0000.0001) Wall clock time: 18.023046970367432 +(PID.TID 0000.0001) User time: 19.847243726253510 +(PID.TID 0000.0001) System time: 8.0305993556976318E-002 +(PID.TID 0000.0001) Wall clock time: 19.929978609085083 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 17.956209003925323 -(PID.TID 0000.0001) System time: 6.2762007117271423E-002 -(PID.TID 0000.0001) Wall clock time: 18.022863149642944 +(PID.TID 0000.0001) User time: 19.847043931484222 +(PID.TID 0000.0001) System time: 8.0286994576454163E-002 +(PID.TID 0000.0001) Wall clock time: 19.929756164550781 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.7685188055038452 -(PID.TID 0000.0001) System time: 2.4400651454925537E-004 -(PID.TID 0000.0001) Wall clock time: 1.7692341804504395 +(PID.TID 0000.0001) User time: 1.6712189912796021 +(PID.TID 0000.0001) System time: 3.4759938716888428E-003 +(PID.TID 0000.0001) Wall clock time: 1.6747801303863525 (PID.TID 0000.0001) No. starts: 24 (PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.8961896896362305E-004 -(PID.TID 0000.0001) System time: 3.9935111999511719E-006 -(PID.TID 0000.0001) Wall clock time: 2.9230117797851562E-004 +(PID.TID 0000.0001) User time: 2.9724836349487305E-004 +(PID.TID 0000.0001) System time: 3.0100345611572266E-006 +(PID.TID 0000.0001) Wall clock time: 3.0136108398437500E-004 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.1003017425537109E-004 -(PID.TID 0000.0001) System time: 1.9967555999755859E-006 -(PID.TID 0000.0001) Wall clock time: 1.1157989501953125E-004 +(PID.TID 0000.0001) User time: 1.0108947753906250E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 1.0275840759277344E-004 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1235475540161133E-004 -(PID.TID 0000.0001) System time: 4.9918889999389648E-006 -(PID.TID 0000.0001) Wall clock time: 1.1467933654785156E-004 +(PID.TID 0000.0001) User time: 9.6857547760009766E-005 +(PID.TID 0000.0001) System time: 1.9669532775878906E-006 +(PID.TID 0000.0001) Wall clock time: 9.7751617431640625E-005 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.28772604465484619 -(PID.TID 0000.0001) System time: 7.4460059404373169E-003 -(PID.TID 0000.0001) Wall clock time: 0.29534554481506348 +(PID.TID 0000.0001) User time: 2.4185063242912292 +(PID.TID 0000.0001) System time: 8.6869746446609497E-003 +(PID.TID 0000.0001) Wall clock time: 2.4274628162384033 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 4.0168642997741699E-002 -(PID.TID 0000.0001) System time: 3.3919960260391235E-003 -(PID.TID 0000.0001) Wall clock time: 4.3649196624755859E-002 +(PID.TID 0000.0001) User time: 4.9685597419738770E-002 +(PID.TID 0000.0001) System time: 4.2974948883056641E-005 +(PID.TID 0000.0001) Wall clock time: 4.9741506576538086E-002 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.7348418235778809 +(PID.TID 0000.0001) System time: 8.5669904947280884E-003 +(PID.TID 0000.0001) Wall clock time: 1.7436072826385498 +(PID.TID 0000.0001) No. starts: 96 +(PID.TID 0000.0001) No. stops: 96 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1837904453277588 -(PID.TID 0000.0001) System time: 3.5219937562942505E-003 -(PID.TID 0000.0001) Wall clock time: 3.1879172325134277 +(PID.TID 0000.0001) User time: 3.6860443353652954 +(PID.TID 0000.0001) System time: 3.7820041179656982E-003 +(PID.TID 0000.0001) Wall clock time: 3.6905562877655029 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.3373034000396729 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.3385839462280273 +(PID.TID 0000.0001) User time: 5.4587912559509277 +(PID.TID 0000.0001) System time: 7.8500062227249146E-003 +(PID.TID 0000.0001) Wall clock time: 5.4670460224151611 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.34651160240173340 +(PID.TID 0000.0001) User time: 0.31221950054168701 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.34660601615905762 +(PID.TID 0000.0001) Wall clock time: 0.31248474121093750 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11376202106475830 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11378717422485352 +(PID.TID 0000.0001) User time: 0.10789370536804199 +(PID.TID 0000.0001) System time: 2.7701258659362793E-004 +(PID.TID 0000.0001) Wall clock time: 0.10819196701049805 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.3757339715957642 +(PID.TID 0000.0001) User time: 3.2281248569488525 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.3763661384582520 +(PID.TID 0000.0001) Wall clock time: 3.2283775806427002 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20931267738342285 +(PID.TID 0000.0001) User time: 0.20166182518005371 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.20934128761291504 +(PID.TID 0000.0001) Wall clock time: 0.20169138908386230 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.40252971649169922 +(PID.TID 0000.0001) User time: 0.38754129409790039 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.40264511108398438 +(PID.TID 0000.0001) Wall clock time: 0.38760781288146973 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.7388572692871094E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.7397871017456055E-002 +(PID.TID 0000.0001) User time: 2.6234865188598633E-002 +(PID.TID 0000.0001) System time: 3.6016106605529785E-005 +(PID.TID 0000.0001) Wall clock time: 2.6274681091308594E-002 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.67597579956054688 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.67628955841064453 +(PID.TID 0000.0001) User time: 9.2506408691406250E-005 +(PID.TID 0000.0001) System time: 2.0116567611694336E-006 +(PID.TID 0000.0001) Wall clock time: 9.3221664428710938E-005 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.16883611679077148 -(PID.TID 0000.0001) System time: 1.1708006262779236E-002 -(PID.TID 0000.0001) Wall clock time: 0.18065738677978516 +(PID.TID 0000.0001) User time: 0.17615604400634766 +(PID.TID 0000.0001) System time: 1.1795014142990112E-002 +(PID.TID 0000.0001) Wall clock time: 0.18803286552429199 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9706342220306396 +(PID.TID 0000.0001) User time: 2.0195646286010742 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.9710414409637451 +(PID.TID 0000.0001) Wall clock time: 2.0202021598815918 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1863689422607422E-002 -(PID.TID 0000.0001) System time: 2.3785993456840515E-002 -(PID.TID 0000.0001) Wall clock time: 5.5656671524047852E-002 +(PID.TID 0000.0001) User time: 6.1946868896484375E-002 +(PID.TID 0000.0001) System time: 1.2321949005126953E-002 +(PID.TID 0000.0001) Wall clock time: 7.4272155761718750E-002 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.3518772125244141E-002 -(PID.TID 0000.0001) System time: 1.6026005148887634E-002 -(PID.TID 0000.0001) Wall clock time: 6.9555997848510742E-002 +(PID.TID 0000.0001) User time: 8.8255167007446289E-002 +(PID.TID 0000.0001) System time: 3.2001972198486328E-002 +(PID.TID 0000.0001) Wall clock time: 0.12026047706604004 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) // ====================================================== @@ -3605,9 +3848,9 @@ listId= 1 ; file name: dynStDiag (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 19510 +(PID.TID 0000.0001) // No. barriers = 19656 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 19510 +(PID.TID 0000.0001) // Total barrier spins = 19656 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output.txt b/verification/isomip/results/output.txt index 784aa17ca0..c89b20b107 100644 --- a/verification/isomip/results/output.txt +++ b/verification/isomip/results/output.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67n +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Wed Dec 11 11:19:22 EST 2019 +(PID.TID 0000.0001) // Build date: Wed Apr 14 18:06:14 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,7 +47,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -632,7 +632,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -725,10 +725,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -826,7 +832,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -835,10 +841,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1690,6 +1696,9 @@ (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1732,6 +1741,9 @@ (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' (PID.TID 0000.0001) ; @@ -1869,15 +1881,15 @@ (PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.9876744935767E-18 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6636016016166E-20 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9031075134161E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000572867310E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.6040155102475E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.7320255817481E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9031389255137E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9000578333446E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.6291578856354E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.7580173217958E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398765074168E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399977234254E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0348357637731E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0857069661835E-07 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4398752591001E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399977017030E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0448273437498E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0960360836813E-07 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 @@ -1895,1307 +1907,1307 @@ (PID.TID 0000.0001) %MON vort_a_sd = 1.7682771475769E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194954E-04 (PID.TID 0000.0001) %MON vort_p_sd = 8.7081213929731E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.2287590954694E-21 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.8570886454347E-22 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.2514380499291E-21 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.9472148105717E-22 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.40793465615507E-15 2.06500589412689E-06 -(PID.TID 0000.0001) cg2d_init_res = 1.63403489461103E+01 + cg2d: Sum(rhs),rhsMax = 4.50220984463300E-14 2.08505177578556E-06 +(PID.TID 0000.0001) cg2d_init_res = 1.60247623113168E+01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 220 -(PID.TID 0000.0001) cg2d_last_res = 9.44044805887186E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.39774990997693E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.6620115445949E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.8329529589790E-06 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.3183072535980E-23 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1026632103928E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9807223198019E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.9348095025057E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2691226755610E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5175634011846E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2882090089699E-07 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.9849624842503E-10 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.4693317646327E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0902253636831E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.0364568353359E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5524590191246E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.1166469560995E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5888059888147E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.1450449685779E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.2032856297735E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1096512014804E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.4889210865123E-11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.6881488646342E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.8818564281982E-06 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.5660533416377E-23 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1126275278946E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.9692349307639E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.0156825594733E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3321137792513E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5426579088123E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.3299043219889E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0079615221569E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.4942596516569E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.1219573587040E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.1125221931839E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5676545486392E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.1502300106936E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.6459434031884E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.1966809878235E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.2531381571338E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1524869696944E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5367896501535E-11 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9061900330598E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001141191868E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.1857277249642E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4233828267851E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9062526029515E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001152080661E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.2357962872219E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4749951210005E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397540080862E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399954649036E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0608081979005E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.1552523353636E-07 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4397515215587E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399954216315E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.0807054445395E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.1757630610889E-07 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.3153690646929E-15 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5212046536955E-15 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9543340299404E-14 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8653401407500E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.9979296545664E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3532835932888E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1778422406568E-06 -(PID.TID 0000.0001) %MON pe_b_mean = -7.6548210948686E-10 -(PID.TID 0000.0001) %MON ke_max = 1.8260606467257E-10 -(PID.TID 0000.0001) %MON ke_mean = 1.2834108554500E-12 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8840827687547E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0382887266795E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3875660419130E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.2147096335089E-06 +(PID.TID 0000.0001) %MON pe_b_mean = -7.7291614927283E-10 +(PID.TID 0000.0001) %MON ke_max = 1.8629377844412E-10 +(PID.TID 0000.0001) %MON ke_mean = 1.3086512476667E-12 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.1446869215064E-09 -(PID.TID 0000.0001) %MON vort_r_max = 4.1009094982374E-09 +(PID.TID 0000.0001) %MON vort_r_min = -4.1867362615463E-09 +(PID.TID 0000.0001) %MON vort_r_max = 4.1423096844049E-09 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437277909E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682771052083E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682771048546E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194948E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7081152045362E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4420545930341E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.7047249527707E-14 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7081151464315E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4938748104976E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.9106584970990E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.54161144855425E-14 3.46423074795586E-06 -(PID.TID 0000.0001) cg2d_init_res = 5.16357660880445E+00 + cg2d: Sum(rhs),rhsMax = 2.26485497023532E-14 3.49592206603561E-06 +(PID.TID 0000.0001) cg2d_init_res = 5.09564556234724E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 218 -(PID.TID 0000.0001) cg2d_last_res = 9.42943414436841E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.43658736579253E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.8177134026078E-06 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1395001154587E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.7378288754143E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.6122397407307E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.3013117133822E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9331928285207E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1311666057786E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.8178466132272E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4905737060168E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3857797650165E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0759130114463E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.0793001309698E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6961294181956E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.8784838947823E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.7297467205516E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5406303977705E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5278204633061E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.7807861557869E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0408747168159E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1132345707202E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.8843370344542E-06 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.1486023091236E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8300275957916E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.6362963101838E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 4.2808829386883E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9629456772958E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1526244366029E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.8952896497738E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5050926899290E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.4185773470677E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.1373020047675E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.1618143249109E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7143598721199E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9164509391482E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.8129360971128E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5563175637279E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5431603505112E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.8836834039259E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0516428468897E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1250219450058E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9092571454321E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001706714958E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.7536965797278E-04 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.0899670852990E-07 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9093507163309E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9001722999594E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 7.8285581175278E-04 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 8.1669737180502E-07 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396321210405E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399932175148E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0813190207837E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.2149529196967E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8653403775064E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.0170317738667E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.3532835932888E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.3411593968036E-06 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.8371037682903E-06 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.2437823866230E-06 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2634591844368E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -2.0341518148546E-09 -(PID.TID 0000.0001) %MON ke_max = 1.2265357794871E-09 -(PID.TID 0000.0001) %MON ke_mean = 8.5353520720944E-12 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4396284025330E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399931527997E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1110689959030E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.2455553555561E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8840830078900E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.0575836817416E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.3875660419130E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.4050058953351E-06 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.9364945753006E-06 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.3379053823673E-06 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2762332207411E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -2.0542812622374E-09 +(PID.TID 0000.0001) %MON ke_max = 1.2513379726083E-09 +(PID.TID 0000.0001) %MON ke_mean = 8.7031984356284E-12 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.0254059639800E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.0084709463868E-08 +(PID.TID 0000.0001) %MON vort_r_min = -1.0358136496501E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.0187200250353E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437277834E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682770050481E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194868E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7080997315452E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.6744588498453E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.0498299469375E-13 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682770039105E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194867E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7080995330775E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.8387573800315E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.1151221828453E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.01980662698043E-14 4.82194438104501E-06 -(PID.TID 0000.0001) cg2d_init_res = 3.42412229978321E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-14 4.86659391821233E-06 +(PID.TID 0000.0001) cg2d_init_res = 3.38386525930609E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 218 -(PID.TID 0000.0001) cg2d_last_res = 9.92153813552516E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.91487350221677E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1616378405672E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5498103869461E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6636614507196E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.2573928569895E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.4855294156242E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6886126159826E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7196743271614E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0507772052859E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3460705549558E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.4845147356648E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0547154844286E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4495160020540E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7634825188709E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.7930967430826E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3464468699550E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0152163526015E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0870268431107E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2855248469376E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8633545130855E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9392264456498E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1730881242169E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5615804588329E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.4846733986699E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.2975066470366E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 5.4565375232937E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7563526837225E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7672507710614E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0635060331360E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3786796818895E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5574751468197E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0653766566166E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4642714851745E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7931675434279E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.8595933696096E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3609243127098E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0455392708097E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1180293054161E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.3004638101679E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8825401465462E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9597156455706E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9123088990739E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9002269445693E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.0307969858515E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0731967408193E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9124333146519E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9002291099447E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.0407491623950E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.0834143918549E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395108443508E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399909812229E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.0963872217738E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.2648838480154E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.3411602016487E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.8841054781721E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.2437823866230E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4043110063935E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7076191918483E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8522161058664E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5126450156770E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -3.6253606127234E-09 -(PID.TID 0000.0001) %MON ke_max = 4.1522861615811E-09 -(PID.TID 0000.0001) %MON ke_mean = 2.8323437159165E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4395059000757E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399908951709E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.1359371713554E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.3054887932346E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.4050067082839E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.9839711747419E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.3379053823673E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4184670941196E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7248799816106E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8708175832496E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.5380018236229E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -3.6618299324038E-09 +(PID.TID 0000.0001) %MON ke_max = 4.2363212656653E-09 +(PID.TID 0000.0001) %MON ke_mean = 2.8880251870403E-11 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -1.7852049535734E-08 -(PID.TID 0000.0001) %MON vort_r_max = 1.7542412821887E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437277493E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682768407625E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194501E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7080726844616E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4981769674117E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.9537552685248E-13 +(PID.TID 0000.0001) %MON vort_r_min = -1.8033298078598E-08 +(PID.TID 0000.0001) %MON vort_r_max = 1.7720732271653E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437277488E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682768383814E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772194496E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7080722413730E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.5303175784651E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.0814820567801E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 5.98863678292104E-06 -(PID.TID 0000.0001) cg2d_init_res = 2.57741805471656E+00 + cg2d: Sum(rhs),rhsMax = 2.84217094304040E-14 6.04842537438708E-06 +(PID.TID 0000.0001) cg2d_init_res = 2.55705534469324E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 219 -(PID.TID 0000.0001) cg2d_last_res = 8.64567166200752E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.65850264030500E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6784899781530E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.8463146056293E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6618583211513E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0083919163642E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 6.4859239245952E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2227098318843E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.5220770841271E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2851993725778E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.0936101391956E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3468202070222E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5571793512370E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1838192273415E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.6956076485869E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0075310868643E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9883415080710E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1615498164119E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2044518855102E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5761452575069E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8464978397708E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8674113822400E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6952544924756E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.8596817943251E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.6510395437419E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0662735987093E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 6.4490829131826E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2350847033400E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6080315240027E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2999559042573E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.1530079081881E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3599904193725E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5729923690012E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2060025783771E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.7354380197307E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0173930745563E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.0097033155845E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2134421787269E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2567266495934E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5943727719511E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8756652077739E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8976551286231E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9153453754111E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9002829398543E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2848622976638E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3349651023354E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9155004801571E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9002856394829E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2972672954247E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.3476775389528E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4393901747812E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399887559703E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1060427709162E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.3051513166803E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4043111846343E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7157782012208E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.8522161058664E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.5356933163165E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5211247815925E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1226711313061E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.1618908772005E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -5.4328513057104E-09 -(PID.TID 0000.0001) %MON ke_max = 1.0277932977903E-08 -(PID.TID 0000.0001) %MON ke_mean = 6.8413892809697E-11 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4393840109186E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399886486870E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1553402320156E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 5.3556705398011E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4184672741571E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7331214630859E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.8708175832496E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.5612685483343E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5467265794364E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1540359897560E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.2038565932745E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -5.4882264044663E-09 +(PID.TID 0000.0001) %MON ke_max = 1.0486050093104E-08 +(PID.TID 0000.0001) %MON ke_mean = 6.9758394577337E-11 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.6364497469924E-08 -(PID.TID 0000.0001) %MON vort_r_max = 2.5877764847854E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437276590E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682766216622E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772193532E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7080326311260E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.2922536857782E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.1094161472773E-13 +(PID.TID 0000.0001) %MON vort_r_min = -2.6632226595991E-08 +(PID.TID 0000.0001) %MON vort_r_max = 2.6140836616346E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437276577E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682766175878E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772193518E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7080318259132E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.3414369352672E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.3048703806919E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.50990331349021E-14 7.39994711382181E-06 -(PID.TID 0000.0001) cg2d_init_res = 2.02658946368445E+00 + cg2d: Sum(rhs),rhsMax = 1.86517468137026E-14 7.47452323396340E-06 +(PID.TID 0000.0001) cg2d_init_res = 2.02256878892997E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 217 -(PID.TID 0000.0001) cg2d_last_res = 9.83396711238234E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.81231832875101E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2297663883606E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1121167125308E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5971149926908E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.8740846694983E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.3102353918756E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9696193575535E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3576377978050E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1272982926670E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.7661946412791E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1372925224500E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0787450180521E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9601541010291E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3265692396513E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3490387711397E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.6536194611791E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.8750212545234E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.8547066405623E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7126742694035E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.9559308752838E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8366267859477E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.2523175787940E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1268679778761E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.3237166423027E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.9512435678097E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.2669271339361E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9895376666939E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3713340309157E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.1398585027498E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.8614009741087E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1582325429434E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0998575927338E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9901809798183E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3735103749512E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3622427621332E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 2.6821074650990E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9541907760340E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.9336070165705E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7324952742886E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.9962653170528E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8770257993616E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9183666581869E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9003386587889E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.5375730871960E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.5943281859534E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9185522974593E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9003418900259E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.5524177774575E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.6095134465755E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4392701090037E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399865416998E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.1103154485171E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.3358602109778E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.5356936381568E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5334132865222E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1226711313061E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0395704660837E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.3655568162138E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7250127527140E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.1734971992061E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -7.3660473661403E-09 -(PID.TID 0000.0001) %MON ke_max = 2.1081563214161E-08 -(PID.TID 0000.0001) %MON ke_mean = 1.3673399520206E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4392627316990E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399864132904E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.1693082476142E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 6.3962064366942E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.5612688734207E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5591398730402E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1540359897560E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0803227925585E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.3997387716777E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7725144656204E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.2357240127093E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -7.4418817758065E-09 +(PID.TID 0000.0001) %MON ke_max = 2.1508589584350E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.3942022336234E-10 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.5195090228698E-08 -(PID.TID 0000.0001) %MON vort_r_max = 3.4495420472433E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437274921E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682763653502E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772191740E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7079790864782E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.9804230676149E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.1844201270582E-12 +(PID.TID 0000.0001) %MON vort_r_min = -3.5552545791757E-08 +(PID.TID 0000.0001) %MON vort_r_max = 3.4846108364486E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437274891E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682763598977E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772191708E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7079777970060E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.0444285698561E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2098559136750E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 8.84378663270105E-06 -(PID.TID 0000.0001) cg2d_init_res = 1.71088351334190E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 8.93368755729874E-06 +(PID.TID 0000.0001) cg2d_init_res = 1.71771490611216E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 216 -(PID.TID 0000.0001) cg2d_last_res = 9.85918748873538E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.86443577444302E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8103762057945E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.4159621854222E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5971149926908E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.8077584845598E-06 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.9722294840032E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9126373557545E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9830448619235E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.0612737629029E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4333036834413E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1104406423818E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5849156278198E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.7305154046425E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.5592986648052E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6806340250000E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.2989954932111E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1100607458304E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0978721002192E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.6874570435183E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1571690262421E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.7889693870500E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8384697035409E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.4325431170616E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.9855749634540E-22 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.9049444666972E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 7.9246921426177E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9420858149324E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0030513211428E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.1278284917071E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4472770673750E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.1409544578930E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6111719346153E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.7683200500013E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.6092569369679E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.6970827370914E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.3343878954308E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1212209430487E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1089005425966E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.7071500242895E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.2094842622639E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.8393082634171E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9213728341427E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9003941028043E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.7889368090001E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.8513119723882E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9215888542352E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9003978630185E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.8062081355332E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.8689483314129E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4391506435712E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399843383546E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.1092348789666E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3571137782699E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0395709788020E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.3819612646684E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7250127527140E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9004319635888E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1850637451911E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.6603644749826E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4911129063261E-05 -(PID.TID 0000.0001) %MON pe_b_mean = -9.3193491809174E-09 -(PID.TID 0000.0001) %MON ke_max = 3.8011797439848E-08 -(PID.TID 0000.0001) %MON ke_mean = 2.4029049718039E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4391420589327E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399841889237E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.1778711306068E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.4272006690376E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0803233104493E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.4163098303418E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.7725144656204E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9599599922899E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2275735727730E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7273256582921E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.5766860454886E-05 +(PID.TID 0000.0001) %MON pe_b_mean = -9.4160284993624E-09 +(PID.TID 0000.0001) %MON ke_max = 3.8781932928472E-08 +(PID.TID 0000.0001) %MON ke_mean = 2.4500955397013E-10 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.3765030325817E-08 -(PID.TID 0000.0001) %MON vort_r_max = 4.2822131619896E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437272550E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682760892638E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772189194E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7079124998392E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.4131712507734E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3563942550570E-12 +(PID.TID 0000.0001) %MON vort_r_min = -4.4209574066734E-08 +(PID.TID 0000.0001) %MON vort_r_max = 4.3257466575008E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437272496E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682760827962E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772189136E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7079106078919E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.4867342596174E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3856281947883E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.90798504668055E-14 1.02741803931606E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.52805976479553E+00 + cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 1.03795040835731E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.54169549051048E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 216 -(PID.TID 0000.0001) cg2d_last_res = 8.05045017423581E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.04797258411457E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.3949241152247E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.7897914570120E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.3165041240297E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1715198477022E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.4889520280581E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0257249317886E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7152663352786E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.7157598414343E-10 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9704942362738E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.2453818077913E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.0447368191163E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.4515904628342E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3712957365047E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.9809033632020E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.8856071493890E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4753771498214E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4490200203333E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5156665402537E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4169437624100E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.6734403732449E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.4291525188335E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8089351625078E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.5287654050938E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.1832037039597E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.4405215443479E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0664229105462E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7426591108308E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8182481327974E-10 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9897051485842E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.2870678986674E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.0756665324694E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.4966723308754E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.4198720732031E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0002900556109E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.9272673030144E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4902107966809E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4635758211065E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5336990257123E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.4817043635642E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.7329617779755E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9243639932594E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9004492733245E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0389608770449E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1059419563185E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9246102414716E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9004535598985E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0586458557354E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.1260079184239E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4390317749079E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399821458782E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.1028305253768E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.3690133344087E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9004327124951E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2054626468398E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6603644749826E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.0791133786022E-05 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9295294353880E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.8522628989286E-05 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1042681381821E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.1176197277511E-08 -(PID.TID 0000.0001) %MON ke_max = 6.2273522395731E-08 -(PID.TID 0000.0001) %MON ke_mean = 3.8416682758467E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4390219890039E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399819755297E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.1810586306907E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.4487554678192E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9599607487517E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2481796764728E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.7273256582921E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.1606189519471E-05 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9796056624841E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.9412647800853E-05 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1153957095152E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.1292856238938E-08 +(PID.TID 0000.0001) %MON ke_max = 6.3535391990401E-08 +(PID.TID 0000.0001) %MON ke_mean = 3.9170899379164E-10 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -5.1550231577634E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.0343694619246E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437269853E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682758043605E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772186298E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7078341731435E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.4877396322563E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3860277298542E-12 +(PID.TID 0000.0001) %MON vort_r_min = -5.2073900446473E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.0855477622735E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437269770E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682757977048E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772186209E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7078315722868E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.5635507144154E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4161550539046E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 1.16538178708747E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.42219405720395E+00 + cg2d: Sum(rhs),rhsMax = 2.48689957516035E-14 1.17743117167622E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.43986482550114E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 215 -(PID.TID 0000.0001) cg2d_last_res = 7.47751788818084E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.52084044707000E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 3.9518349350860E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.2371782287039E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.9927874817270E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3492210540009E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.8814717978858E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2803410633464E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.5347226687363E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.9330392371293E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5743103166786E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5120204318514E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4323507631175E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.0861606668195E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8053167252940E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2315366194511E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.3812201035755E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8727117644912E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8283081834378E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2269897294693E-10 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.7041600694300E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.4489401518090E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.9919474379491E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.2596397715202E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.7266016496119E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.3627175854857E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.8368581068072E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.3337193064604E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.5703799976100E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.0126820416713E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5994079863863E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5661800764552E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4672211144558E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1376455071091E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8484952084814E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2533755269876E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4281685651366E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8915405393074E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8466735034366E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.2421466262226E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.7815147581317E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.5164505171268E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9273402286426E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9005041717660E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.2876526636210E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3582431001156E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9276165533480E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9005089820961E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.3097383820727E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3807173938989E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4389134993137E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399799642141E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.0911316852304E-04 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.3716580798585E-07 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0791144040354E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9535570230783E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8522628989286E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0517356927974E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5570892082143E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1236270586947E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3745200038824E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.2827705949923E-08 -(PID.TID 0000.0001) %MON ke_max = 9.4625135942211E-08 -(PID.TID 0000.0001) %MON ke_mean = 5.7072328598831E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4389025181700E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399797730516E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.1789003303550E-04 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 9.4609709233566E-07 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1606199877252E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.0038773324856E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.9412647800853E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0623453187853E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6135454583129E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1349243235844E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3883693820700E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.2962330828356E-08 +(PID.TID 0000.0001) %MON ke_max = 9.6542728030177E-08 +(PID.TID 0000.0001) %MON ke_mean = 5.8192453504895E-10 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -5.8112896846607E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.6634642080937E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437267378E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682755171948E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772183641E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7077461259543E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.1582380849181E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2550838149367E-12 +(PID.TID 0000.0001) %MON vort_r_min = -5.8703284388609E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.7210349705772E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437267268E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682755111622E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772183523E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7077427282031E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.2280918403901E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2828436974031E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 1.29538917809809E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.36350267820397E+00 + cg2d: Sum(rhs),rhsMax = 4.08562073062058E-14 1.30890395342968E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.38342489902379E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 215 -(PID.TID 0000.0001) cg2d_last_res = 7.58253954255786E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.59108012140507E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4514642770217E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.7488508185919E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3956724890362E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5055349110187E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1756628140683E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6397606596597E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4171537738360E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.8741409757365E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.2270642031052E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8737341072300E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7283870599901E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6044974116276E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9524475349144E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4183811758186E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.7618511873296E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2898923313009E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2239609275847E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.5953652154732E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.9905628000185E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.0864283037830E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4969042334414E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.7752951159641E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.9927874817270E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.5205997954714E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.1412337189009E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7068785125926E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.4617089173897E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.9935018727385E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.2585251684852E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.9413063340745E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7662690315345E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6612129558313E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9871239555350E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4420482758378E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.8128546982529E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3129149167708E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.2462993892339E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.7099152043136E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.0803844755337E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.1604261256267E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9303016360202E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9005587995383E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.5350194985885E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6082398144138E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9306078867238E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9005641310342E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.5594931157086E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.6331013857690E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4387958129846E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399777933064E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0074167487391E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0365145022480E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0517358262878E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.5841756573375E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1236270586947E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3142978162354E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.0363817468056E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3739353987805E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6510956123565E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4190247143296E-08 -(PID.TID 0000.0001) %MON ke_max = 1.3522608673364E-07 -(PID.TID 0000.0001) %MON ke_mean = 7.9910402909074E-10 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4387836425816E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399775814328E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0171425641823E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0463944907048E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0623454536224E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.6409070873529E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1349243235844E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3275549340250E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.0977139094498E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3877489500625E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6677295507724E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4339943414681E-08 +(PID.TID 0000.0001) %MON ke_max = 1.3796660037246E-07 +(PID.TID 0000.0001) %MON ke_mean = 8.1478297621458E-10 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.3125067213304E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.1379904963825E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437265654E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682752327302E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772181789E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7076509252230E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4376653554086E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.6872821225913E-13 +(PID.TID 0000.0001) %MON vort_r_min = -6.3766444291767E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.2003815645506E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437265524E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682752282506E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772181650E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7076466661729E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4936216281513E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.9096523500530E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 1.41546981419449E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.33578028264595E+00 + cg2d: Sum(rhs),rhsMax = 4.26325641456060E-14 1.43038105786592E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.35684076359194E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 214 -(PID.TID 0000.0001) cg2d_last_res = 8.62635702977057E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.63918700887334E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8720964885366E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.3121582138143E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1294866569211E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6358975646723E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.4032379993835E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.0619141395536E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3354753196889E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4071637864971E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.9086065020380E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.2902816329058E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9208113691622E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9856694502760E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9331291851565E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5321746809176E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0127467816492E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7142381118624E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6238673509964E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.5595834250848E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0251175955995E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.5701529661339E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.9220856785983E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.3431334571519E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3309291605757E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.6522337071699E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.3872469763826E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.1434056847756E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3892881617988E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.5227924252160E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.9467106309316E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.3718070912619E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9606544724215E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0462345775993E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9574405299784E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5569556235301E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0664172808843E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7415251254997E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.6502207080338E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6331229991751E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0353104886009E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.6489699647885E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9332483129024E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9006131580430E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.7810686687737E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8559559654026E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9335843402813E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9006190081279E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8079174143447E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.8831839710444E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4386787120453E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399756330994E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1051966889708E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1349569006509E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3142979830513E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.0658043709433E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3739353987805E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5875389267137E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3479230564493E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6285428671175E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9254107022047E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.5216450739565E-08 -(PID.TID 0000.0001) %MON ke_max = 1.8355091845340E-07 -(PID.TID 0000.0001) %MON ke_mean = 1.0651158793192E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4386653583172E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399754006171E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1158663804604E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1457773100932E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3275551025236E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.1274354797517E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3877489500625E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6035506176106E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4124303560889E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6449150752998E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9448051590478E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.5377812652140E-08 +(PID.TID 0000.0001) %MON ke_max = 1.8727087098399E-07 +(PID.TID 0000.0001) %MON ke_mean = 1.0860084550930E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.6382990077674E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.4387832414477E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437265029E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682749579497E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772181118E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7075514933042E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.3967049313896E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.5505053973420E-13 +(PID.TID 0000.0001) %MON vort_r_min = -6.7057570943546E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.5042284785213E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437264891E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682749559354E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772180970E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7075463354957E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4322224238394E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.6916519125082E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.03961325396085E-14 1.52468102386058E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.32968393782559E+00 + cg2d: Sum(rhs),rhsMax = -7.10542735760100E-14 1.54091224016041E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.35119045764547E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 214 -(PID.TID 0000.0001) cg2d_last_res = 7.89174134052847E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.89225881387647E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.2023339791634E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9133583060015E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6618583211513E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7400237541563E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.6028286533043E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.5024759810925E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2616453878149E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.2995419123162E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.5977671539587E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.7207214599012E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0052234035151E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2184292773158E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.7869554300096E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5689238125637E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1286996039504E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.1334484179171E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0163871103242E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.0163706645907E-12 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1464552570717E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.8979027839611E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.2559756541484E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -4.9492851636717E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.1870174671086E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.7573259578653E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.6154659545924E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.5985274690645E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3247931277615E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.3641101774846E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6425877619650E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8163353540385E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0459334101408E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2813521439453E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9214722311916E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5940655313040E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1835962012152E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.1649463333235E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0466800393204E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.3455803087861E-12 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1578039673068E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.9798477317028E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9361803575144E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9006672486742E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.0258074173927E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.1014149072952E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9365460134363E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9006736147847E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.0550185916303E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.1309887088093E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4385621925924E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399734835378E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2024558676720E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2325022841591E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5875391282105E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.3788641999984E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.6285428671175E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8631153182831E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4845889270203E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8800690507503E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1896612991032E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.5899397900043E-08 -(PID.TID 0000.0001) %MON ke_max = 2.3839988327085E-07 -(PID.TID 0000.0001) %MON ke_mean = 1.3614950817907E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4385476614260E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399732305485E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2140643883137E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.2442549128809E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6035508211396E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4436859221035E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.6449150752998E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8819045524735E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5504997718316E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.8989677999941E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2117134481145E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6068917129989E-08 +(PID.TID 0000.0001) %MON ke_max = 2.4323144237900E-07 +(PID.TID 0000.0001) %MON ke_mean = 1.3881945192932E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.7812164478402E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.5594282345511E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437265617E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682747018685E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772181750E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7074509048538E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.5816621356283E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.2855253274303E-14 +(PID.TID 0000.0001) %MON vort_r_min = -6.8501422826088E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.6260974200526E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437265483E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682747032925E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772181606E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7074448392415E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6913669519217E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.7214922683592E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.10542735760100E-15 1.70565183276676E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.27456750734640E+00 + cg2d: Sum(rhs),rhsMax = -1.10134124042816E-13 1.72155986079980E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.29688761939327E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 213 -(PID.TID 0000.0001) cg2d_last_res = 9.95103181460563E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.96877380489687E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 13 (PID.TID 0000.0001) %MON time_secondsf = 2.3400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.4408653855308E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.5365623129571E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6618583211513E-22 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.8214514071827E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.8204900213771E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0917936169897E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.1685409216170E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.8756168198428E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2737936858978E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1126148645597E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9848024495447E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.3015953644009E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.5485242475914E-09 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5299220775779E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1137306303589E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5363857865047E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3910714848174E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8637770060916E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2612873467609E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.0802683092527E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.4972430664743E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.5777092877158E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.1942299853816E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.8394481802476E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.8735650162063E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1028294466668E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.2408276119101E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.9050583765076E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.3252017178123E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1235600940305E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0253003444355E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.3653753923623E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.2076786797182E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5546845359173E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.1684578008907E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5719287863045E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.4251236165903E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8669128944979E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2737221377593E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1637633149890E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9390978676234E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9007210728182E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2692429435604E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.3446395365236E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9394930051416E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9007279524043E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.3008039166583E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.3765386952704E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384462507406E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399713445663E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2991971457710E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3291597518144E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8631155547571E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5161962094438E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.8800690507503E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1329566868788E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4515267283226E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1218314719028E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4372989242675E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6271092317502E-08 -(PID.TID 0000.0001) %MON ke_max = 2.9799746548701E-07 -(PID.TID 0000.0001) %MON ke_mean = 1.6785273096577E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4384305479757E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399710711715E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.3117394764798E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.3418364775006E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8819047913323E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5824283179019E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.8989677999941E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1544651613535E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5170941572320E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.1431572717827E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.4618399725254E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6445552357236E-08 +(PID.TID 0000.0001) %MON ke_max = 3.0403680062516E-07 +(PID.TID 0000.0001) %MON ke_mean = 1.7114363419633E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.7463552854036E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.5058070910589E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437267316E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682744743169E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772183574E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7073521834565E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1155543612505E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.4332130315113E-13 +(PID.TID 0000.0001) %MON vort_r_min = -6.8149497555139E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.5719310686126E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437267198E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682744800661E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772183447E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7073452289650E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1300047704280E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.4906389576319E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 5.32907051820075E-14 1.92459648628388E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.21033882615605E+00 + cg2d: Sum(rhs),rhsMax = 1.95399252334028E-14 1.94258557365974E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.23110850992176E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 213 -(PID.TID 0000.0001) cg2d_last_res = 9.21791500173800E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.22712102358428E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 14 (PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.5950027655064E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.1628043155062E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.1942299853816E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.8863901299354E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0108716371832E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2268426303611E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.0316965199400E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1079119204263E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.9176922791335E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2472086283719E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.8694219267569E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2432327312185E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.5419941311539E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4214239092778E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9802010959311E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9137138783048E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.7392561601403E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.4861039781316E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3681954836313E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1389193977255E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.6532648294203E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.2092527588484E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3956724890362E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.9048757682396E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0214777815485E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2392435843960E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.1126803297280E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1235714871022E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.9753735912021E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2594785731898E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9087647164954E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.3064533195512E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.5891574349910E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.4451286139713E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.0334970947500E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.9530421562379E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.7768000688919E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.5171525040643E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3816355551064E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.2226186310111E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9420009393687E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9007746318536E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.5113824020468E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.5856523624544E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9424254126933E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9007820223784E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.5452806137147E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.6198566355706E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4383308826695E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399692161302E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.3954233665736E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4249382488393E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1329569576021E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4829728584721E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1218314719028E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3897834979957E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.2647218525179E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3482283269829E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6633688995028E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6396387110623E-08 -(PID.TID 0000.0001) %MON ke_max = 3.6017146050248E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.0049421824428E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4383140140996E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399689224308E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4088945158900E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.4385310269759E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1544654348067E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5488598771453E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1431572717827E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4138797486142E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3284191280488E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3718252937427E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.6901803185571E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6573199525219E-08 +(PID.TID 0000.0001) %MON ke_max = 3.6747073102144E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.0442427964151E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.5501892024659E-08 -(PID.TID 0000.0001) %MON vort_r_max = 6.2948675569564E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437269865E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682742843176E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772186311E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7072581100363E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.2422523402393E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.9107108000233E-13 +(PID.TID 0000.0001) %MON vort_r_min = -6.6168222138327E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.3588507626465E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437269773E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682742949392E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772186212E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7072503113063E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.2793421303090E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.0581056255272E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.79616346638068E-14 2.15139450551187E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.15871538672729E+00 + cg2d: Sum(rhs),rhsMax = -1.77635683940025E-14 2.17153963839035E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.17794276265524E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 213 -(PID.TID 0000.0001) cg2d_last_res = 8.30006148832221E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.32114166470521E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 15 (PID.TID 0000.0001) %MON time_secondsf = 2.7000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.7115676614971E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -6.7706916522901E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3309291605757E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.9421892604588E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0523113624910E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3520129282071E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8307608942296E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.6074146634465E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.5133880635031E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3730402238240E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.6737108625223E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0804260407597E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3526429843101E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2540144678803E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.7474497942780E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.2583671340822E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.0544978512696E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.0141290233445E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4661239312542E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1039221584928E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.7701067984852E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -6.8223071401425E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1294866569211E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.9610416395530E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.0693990163532E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3656793269489E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.9197959959870E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.6378463296560E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.5768720252855E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3865479479381E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.7110889207991E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.1421285299693E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3627788685540E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2760867720721E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.7982602978286E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.3011499353892E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.0952014447266E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.0623056937909E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4804808428247E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.1868031869220E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9448896661896E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9008279271511E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.7522329034276E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.8244755881396E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9453433306369E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9008358260909E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.7884558624270E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 3.8609649257780E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4382160846656E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399670981751E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.4911373558222E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.5198465987267E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3897838013165E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.2952574554876E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.3482283269829E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.6275403468473E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.9478591779121E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5550202804493E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8647094459418E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6363664270288E-08 -(PID.TID 0000.0001) %MON ke_max = 4.2258210916197E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.3289734345900E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4381980560405E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399667842712E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.5055323597283E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.5343474615042E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.4138800549934E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.3592652052521E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.3718252937427E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.6540322114732E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.0083754883388E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5806899612335E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8935411975196E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6541114012541E-08 +(PID.TID 0000.0001) %MON ke_max = 4.3114612559961E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.3746173910540E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -6.2187405804096E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.9527555182065E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437272908E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682741392213E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772189578E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7071710551685E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0442532567029E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2097862441963E-12 +(PID.TID 0000.0001) %MON vort_r_min = -6.2820477706066E-08 +(PID.TID 0000.0001) %MON vort_r_max = 6.0132694197805E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437272846E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682741552600E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772189512E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7071624787212E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0976051589187E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2309882901496E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.95399252334028E-14 2.38380564987233E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.11735804901371E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 2.40615909635381E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.13512510001282E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 212 -(PID.TID 0000.0001) cg2d_last_res = 8.20562844364625E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.22448707222336E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 16 (PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.7817095596185E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3385029313971E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3309291605757E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.9958317491399E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1116682437204E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4647151960173E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.5506156551483E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.1588373641419E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.0486371264793E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.4880661873987E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4213310088596E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8300093145639E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5418097494373E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0417329146628E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4400707928983E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.5658397017394E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3328400498319E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.3195030584551E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5543835891546E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.0101685826116E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8411824577477E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.3949278001243E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.7913449780724E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0150144788125E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1361799426222E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4795212435513E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.6469051177497E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.2047587089933E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.1173341017893E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5027045956578E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4558705631554E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8892542371647E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5542420811075E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.0617357053161E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.4876040564859E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6117012614607E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.3763316199105E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.3725842338414E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.5695644545183E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.0915870677384E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9477641379368E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9008809600737E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.9918015146862E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.0611311939432E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9482468498606E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9008893649179E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.0303367983776E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.0998857377824E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4381018531584E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399649906467E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.5863419219365E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.6138935364730E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.6275406803452E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.9768503239921E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5550202804493E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8417288466650E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5392478622419E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7395038210437E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.0400161600195E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6273736081125E-08 -(PID.TID 0000.0001) %MON ke_max = 4.8297808793689E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.6394634012970E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4380826701865E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399646566382E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6016558436751E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.6292945921948E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.6540325483335E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.0376616039436E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.5806899612335E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8703792031849E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5951685410069E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.7670207568764E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.0706055428165E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6451116604101E-08 +(PID.TID 0000.0001) %MON ke_max = 4.9276615577540E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.6911843577826E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -5.7852523579018E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.5124752349477E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437276050E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740440140E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772192952E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7070928456779E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.3730895253752E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3404657774022E-12 +(PID.TID 0000.0001) %MON vort_r_min = -5.8442079869504E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.5685279025724E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437276020E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740658541E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772192920E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7070835748184E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.4332892158708E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3643891343704E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 2.61963227642816E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.08441081014423E+00 + cg2d: Sum(rhs),rhsMax = -5.15143483426073E-14 2.64422385763330E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.10083452784666E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 212 -(PID.TID 0000.0001) cg2d_last_res = 7.77644207067133E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.79086174238300E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 17 (PID.TID 0000.0001) %MON time_secondsf = 3.0600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8261280702995E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.8469174942573E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.7266016496119E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0528767351145E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1933189846205E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5632780440744E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0182077334882E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.6408194504371E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5156424344936E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5910869998017E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.1532384467695E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5091538725402E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4188771742327E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8010193568709E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.0859540705527E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8342903059731E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.5729037947795E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4046788525615E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6326642856430E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.8931360714456E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8845897775050E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.9075913253723E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.8560883065330E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.0724282812844E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.2258346490008E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5790810997013E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0284733514338E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.7016618613298E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5888872366036E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6067372217828E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.1851121761944E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5652448503966E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4304360930264E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.8186764113961E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.1297151909575E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.8828368102880E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6187980029875E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4503143926728E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6485749094957E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.9728361894659E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9506244402413E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9009337319771E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2300952602428E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.2956410168484E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9511360569516E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9009426402280E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2709305141475E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.3366410997916E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4379881847448E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399628934913E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6810398564206E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.7070877400955E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8417292073486E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.5654555002368E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7395038210437E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0296165112571E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1051971528556E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9005741835838E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.1897808117004E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6228457737236E-08 -(PID.TID 0000.0001) %MON ke_max = 5.3943201106050E-07 -(PID.TID 0000.0001) %MON ke_mean = 2.9268955482245E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4379678530967E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399625394774E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6972677863221E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.7233811730572E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8703795675049E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.6216407544355E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7670207568764E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0601612464849E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1568017731397E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.9297020861728E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2218706428376E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6406091249492E-08 +(PID.TID 0000.0001) %MON ke_max = 5.5036453848988E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.9842413508443E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -5.2875417646692E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.0185340250843E-08 +(PID.TID 0000.0001) %MON vort_r_min = -5.3415046123709E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.0692586311346E-08 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007437278902E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740019269E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740295808E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5039772196014E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7070246728843E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.1303001673814E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2439812865372E-12 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7070148017440E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.1858852996008E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2660708180911E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.04281036531029E-14 2.85684161571758E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.05833651463761E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 2.88368031450257E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.07354639323978E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 212 -(PID.TID 0000.0001) cg2d_last_res = 7.03779627100514E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.04943377805670E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 18 (PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8739369385133E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.2815443858492E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.9927874817270E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.1171129977466E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.3002258222648E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6470075590687E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0722077822372E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.9451913305233E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9113476427703E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6817597961674E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.8679320893579E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1464460855679E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0132972717041E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5495586318757E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.7142052961194E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.0644695070624E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8334745918003E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.3948021788498E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7010546833035E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.7844816107713E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.9330109012445E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.3457510414373E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0647433284605E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.1371287316160E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.3409426169990E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6636580010519E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0830183545294E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.0192508034849E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9884458093555E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6982996879061E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.8969731696813E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1989747642143E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.0210963156381E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5647666444324E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.7540084599957E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1153152641184E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.8823128664339E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4217744783345E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7176028198764E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.8625590727297E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9534706541919E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9009862442093E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4671211232927E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.5280268188197E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9540110338669E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9009956533824E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5102440606821E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.5712529656995E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4378750762024E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399608066552E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7752339343967E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.7994378577989E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.0296168957881E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.1293511828254E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.9005741835838E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.1902904424385E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6432767405121E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0386817042375E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3161181630307E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6320360449174E-08 -(PID.TID 0000.0001) %MON ke_max = 5.9053262320837E-07 -(PID.TID 0000.0001) %MON ke_mean = 3.1842579061495E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4378536015141E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399604327347E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.7923709897150E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.8166159285690E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.0601616348927E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.1811999581358E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.9297020861728E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2224566568910E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6902952083780E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.0691891584710E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.3494731523359E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6499512131752E-08 +(PID.TID 0000.0001) %MON ke_max = 6.0250160298444E-07 +(PID.TID 0000.0001) %MON ke_mean = 3.2466397256695E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.7652264998848E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.2163979756411E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437281120E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740145217E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772198395E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7069670463886E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.2810976450282E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.0650820415923E-13 +(PID.TID 0000.0001) %MON vort_r_min = -4.8139575291854E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.2690221785106E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437281143E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740480070E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772198420E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7069566735368E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3198372533756E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.2190332446459E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.61852778244065E-14 3.09368257884299E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.03782687901330E+00 + cg2d: Sum(rhs),rhsMax = -3.10862446895044E-14 3.12275935691220E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.05195160429191E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 211 -(PID.TID 0000.0001) cg2d_last_res = 9.47771951194532E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.51090247756513E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 19 (PID.TID 0000.0001) %MON time_secondsf = 3.4200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.9271054716357E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.6347020743791E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.9927874817270E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.1908709339738E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.4338174976749E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7161808267447E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1173591816226E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.9842452552448E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.2374051058249E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7605532408012E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5875471130102E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.7708845112756E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.7984315690739E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3050801295877E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.3530450376338E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2658535316471E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.0707198209798E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5158278983705E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7600651285833E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.7083393255147E-10 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.9868210195850E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7016360904649E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5971149926908E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2114849356922E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.4826297066001E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7335318507269E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1286261162834E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.0689102724159E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.3176788089713E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7778654287645E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6138115313050E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.8197339919917E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.8153813153131E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.3179089784690E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.3890037187093E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.3189970580361E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.1219337900441E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.5151063733941E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7771639888939E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.7851625471323E-10 (PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9563028563475E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9010384981117E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7028860473026E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.7583103386957E-06 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9568718579463E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9010484057350E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.7482844488126E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.8037432677200E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4377625244887E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399587300851E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8689269151982E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.8909525285976E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.1902908473628E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.6652453035646E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.0386817042375E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3246357440750E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1893242065957E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1595121189883E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4224997392978E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.6624302782910E-08 -(PID.TID 0000.0001) %MON ke_max = 6.3551349153576E-07 -(PID.TID 0000.0001) %MON ke_mean = 3.4076680148627E-09 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4377399123652E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399583363562E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8869682399579E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.9090075745920E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.2224570658980E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.7124862281639E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.0691891584710E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3581598375946E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.2318471669628E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1913982348217E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4569201182713E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.6807008562441E-08 +(PID.TID 0000.0001) %MON ke_max = 6.4839553251060E-07 +(PID.TID 0000.0001) %MON ke_mean = 3.4744216544678E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -4.2570108053717E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.4996510075124E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437282433E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682740822052E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772199805E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7069197939501E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.5907308022240E-13 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.4139564208026E-13 +(PID.TID 0000.0001) %MON vort_r_min = -4.3006632805946E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.5551589847741E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437282471E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682741213162E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772199846E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7069090160113E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.6935449912428E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.4548147791391E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.73034936274053E-14 3.32878622924316E-05 -(PID.TID 0000.0001) cg2d_init_res = 1.02175886281561E+00 + cg2d: Sum(rhs),rhsMax = -4.26325641456060E-14 3.36007782241187E-05 +(PID.TID 0000.0001) cg2d_init_res = 1.03491896624887E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 210 -(PID.TID 0000.0001) cg2d_last_res = 9.62387737843389E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.63179684795121E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 20 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.0039166841360E-05 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.9062207563611E-05 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6618583211513E-21 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2756509855303E-05 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.5942294997295E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7719739876577E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1545101938547E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6973403370352E-08 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4998358816372E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8286518180251E-07 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.3325734390055E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.4100799552526E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0998058905926E-08 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0841280894395E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.0277802314837E-08 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4555610064728E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2755511970845E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9370025532378E-11 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8106455102325E-07 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.6793561224596E-10 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.9000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9591211190764E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9010904950185E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9373969374772E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 4.9865133236158E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4376505267279E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399566637280E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9621215429536E-03 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.9816403948049E-06 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3246361660510E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2091450008588E-05 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1595121189883E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4351763698891E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.7765134101538E-05 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2733366038837E-04 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.5134181923419E-04 -(PID.TID 0000.0001) %MON pe_b_mean = -1.7191768842580E-08 -(PID.TID 0000.0001) %MON ke_max = 6.7431313623705E-07 -(PID.TID 0000.0001) %MON ke_mean = 3.5967204798427E-09 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.0644840384266E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.9750633446358E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3309291605757E-21 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.2970220633107E-05 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6508548094546E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7898906736657E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1661535011898E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.7893774716463E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5826664681675E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8466307834904E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.3563231454734E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.4554101039279E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1602017992753E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0948090430057E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.0602763117377E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5106049897034E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.3288115675386E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9715222616156E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8282175470863E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.7554627372401E-10 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8999999378019E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9597186022582E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9011008986330E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.9850586507513E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0341339481673E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4400000024718E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4376267827463E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4399562502884E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9810623078083E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 2.0005648310017E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3581602638256E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2518691485313E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1913982348217E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4698203379007E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.8149649690473E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3063629938220E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.5487499023960E-04 +(PID.TID 0000.0001) %MON pe_b_mean = -1.7380603383883E-08 +(PID.TID 0000.0001) %MON ke_max = 6.8798380514701E-07 +(PID.TID 0000.0001) %MON ke_mean = 3.6671744299175E-09 (PID.TID 0000.0001) %MON ke_vol = 2.9241705273105E+14 -(PID.TID 0000.0001) %MON vort_r_min = -3.7982039538837E-08 -(PID.TID 0000.0001) %MON vort_r_max = 5.7486012262482E-08 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437282668E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7682742042095E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772200058E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 8.7068821050388E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0382848230456E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.1261438865599E-13 +(PID.TID 0000.0001) %MON vort_r_min = -3.8372884285035E-08 +(PID.TID 0000.0001) %MON vort_r_max = 5.8066541791030E-08 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007437282710E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7682742488731E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5039772200103E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 8.7068710107296E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0661524735107E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.2368899297351E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 27.034335185773671 -(PID.TID 0000.0001) System time: 0.27226599468849599 -(PID.TID 0000.0001) Wall clock time: 27.405827999114990 +(PID.TID 0000.0001) User time: 27.983923338353634 +(PID.TID 0000.0001) System time: 0.19140199385583401 +(PID.TID 0000.0001) Wall clock time: 28.655494928359985 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.21434100531041622 -(PID.TID 0000.0001) System time: 4.0477001573890448E-002 -(PID.TID 0000.0001) Wall clock time: 0.32877492904663086 +(PID.TID 0000.0001) User time: 0.17631899658590555 +(PID.TID 0000.0001) System time: 0.12828399799764156 +(PID.TID 0000.0001) Wall clock time: 0.30587005615234375 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 26.819949463009834 -(PID.TID 0000.0001) System time: 0.23177999630570412 -(PID.TID 0000.0001) Wall clock time: 27.077015161514282 +(PID.TID 0000.0001) User time: 27.807556703686714 +(PID.TID 0000.0001) System time: 6.3089996576309204E-002 +(PID.TID 0000.0001) Wall clock time: 28.349565029144287 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.40183997154235840 -(PID.TID 0000.0001) System time: 4.4156998395919800E-002 -(PID.TID 0000.0001) Wall clock time: 0.44614100456237793 +(PID.TID 0000.0001) User time: 0.34726803004741669 +(PID.TID 0000.0001) System time: 2.7245998382568359E-002 +(PID.TID 0000.0001) Wall clock time: 0.37466001510620117 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 26.418076813220978 -(PID.TID 0000.0001) System time: 0.18761899322271347 -(PID.TID 0000.0001) Wall clock time: 26.630840778350830 +(PID.TID 0000.0001) User time: 27.460264146327972 +(PID.TID 0000.0001) System time: 3.5836994647979736E-002 +(PID.TID 0000.0001) Wall clock time: 27.974878072738647 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 26.417921841144562 -(PID.TID 0000.0001) System time: 0.18761599808931351 -(PID.TID 0000.0001) Wall clock time: 26.630684375762939 +(PID.TID 0000.0001) User time: 27.460088610649109 +(PID.TID 0000.0001) System time: 3.5834997892379761E-002 +(PID.TID 0000.0001) Wall clock time: 27.974706172943115 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 26.417582809925079 -(PID.TID 0000.0001) System time: 0.18761298805475235 -(PID.TID 0000.0001) Wall clock time: 26.630343675613403 +(PID.TID 0000.0001) User time: 27.459783613681793 +(PID.TID 0000.0001) System time: 3.5833999514579773E-002 +(PID.TID 0000.0001) Wall clock time: 27.974390029907227 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.8893690109252930E-004 -(PID.TID 0000.0001) System time: 6.9886445999145508E-006 -(PID.TID 0000.0001) Wall clock time: 5.0020217895507812E-004 +(PID.TID 0000.0001) User time: 4.6336650848388672E-004 +(PID.TID 0000.0001) System time: 7.9870223999023438E-006 +(PID.TID 0000.0001) Wall clock time: 4.7588348388671875E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.9973516464233398E-004 -(PID.TID 0000.0001) System time: 1.9967555999755859E-006 -(PID.TID 0000.0001) Wall clock time: 2.0098686218261719E-004 +(PID.TID 0000.0001) User time: 1.7768144607543945E-004 +(PID.TID 0000.0001) System time: 3.9935111999511719E-006 +(PID.TID 0000.0001) Wall clock time: 1.8095970153808594E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6236305236816406E-004 -(PID.TID 0000.0001) System time: 1.9967555999755859E-006 -(PID.TID 0000.0001) Wall clock time: 1.6164779663085938E-004 +(PID.TID 0000.0001) User time: 1.6677379608154297E-004 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 1.7166137695312500E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.47987508773803711 -(PID.TID 0000.0001) System time: 3.6230087280273438E-003 -(PID.TID 0000.0001) Wall clock time: 0.48758196830749512 +(PID.TID 0000.0001) User time: 0.45150810480117798 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 0.45154142379760742 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 7.0691883563995361E-002 -(PID.TID 0000.0001) System time: 3.5939961671829224E-003 -(PID.TID 0000.0001) Wall clock time: 7.4316263198852539E-002 +(PID.TID 0000.0001) User time: 6.0831487178802490E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.0852766036987305E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.9930432438850403 -(PID.TID 0000.0001) System time: 3.1847991049289703E-002 -(PID.TID 0000.0001) Wall clock time: 5.0277745723724365 +(PID.TID 0000.0001) User time: 5.2009444236755371 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.2014269828796387 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.4648562669754028 -(PID.TID 0000.0001) System time: 3.2030001282691956E-002 -(PID.TID 0000.0001) Wall clock time: 9.4991159439086914 +(PID.TID 0000.0001) User time: 10.017586886882782 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 10.018507242202759 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.13541960716247559 -(PID.TID 0000.0001) System time: 2.6299059391021729E-004 -(PID.TID 0000.0001) Wall clock time: 0.13571453094482422 +(PID.TID 0000.0001) User time: 0.14064419269561768 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.14068412780761719 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.7972201108932495 -(PID.TID 0000.0001) System time: 1.5676021575927734E-002 -(PID.TID 0000.0001) Wall clock time: 5.8132164478302002 +(PID.TID 0000.0001) User time: 5.9772402048110962 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.9777340888977051 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.35655772686004639 -(PID.TID 0000.0001) System time: 4.8004090785980225E-005 -(PID.TID 0000.0001) Wall clock time: 0.35665750503540039 +(PID.TID 0000.0001) User time: 0.35239911079406738 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.35245013236999512 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.59204626083374023 -(PID.TID 0000.0001) System time: 2.2300332784652710E-004 -(PID.TID 0000.0001) Wall clock time: 0.59545779228210449 +(PID.TID 0000.0001) User time: 0.59573936462402344 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.59579324722290039 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1602281332015991 -(PID.TID 0000.0001) System time: 1.1906981468200684E-002 -(PID.TID 0000.0001) Wall clock time: 1.1729621887207031 +(PID.TID 0000.0001) User time: 1.1677818298339844 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1679687500000000 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.30449104309082031 -(PID.TID 0000.0001) System time: 1.2036010622978210E-002 -(PID.TID 0000.0001) Wall clock time: 0.31740880012512207 +(PID.TID 0000.0001) User time: 0.29091751575469971 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.29100894927978516 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.0243196487426758 -(PID.TID 0000.0001) System time: 3.5924002528190613E-002 -(PID.TID 0000.0001) Wall clock time: 3.0714390277862549 +(PID.TID 0000.0001) User time: 3.1024825572967529 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.1026768684387207 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.3305406570434570E-002 -(PID.TID 0000.0001) System time: 1.1978000402450562E-002 -(PID.TID 0000.0001) Wall clock time: 4.5286655426025391E-002 +(PID.TID 0000.0001) User time: 6.0154438018798828E-002 +(PID.TID 0000.0001) System time: 1.1824011802673340E-002 +(PID.TID 0000.0001) Wall clock time: 0.54876089096069336 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.2285294532775879E-002 -(PID.TID 0000.0001) System time: 3.2018989324569702E-002 -(PID.TID 0000.0001) Wall clock time: 0.10431337356567383 +(PID.TID 0000.0001) User time: 9.8577857017517090E-002 +(PID.TID 0000.0001) System time: 2.3991987109184265E-002 +(PID.TID 0000.0001) Wall clock time: 0.12256669998168945 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -3290,9 +3302,9 @@ (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 29330 +(PID.TID 0000.0001) // No. barriers = 29338 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 29330 +(PID.TID 0000.0001) // Total barrier spins = 29338 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output_adm.htd.txt b/verification/isomip/results/output_adm.htd.txt index 1fe1ac4ece..c1b1191ec9 100644 --- a/verification/isomip/results/output_adm.htd.txt +++ b/verification/isomip/results/output_adm.htd.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65k -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Apr 23 01:19:33 EDT 2015 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Fri Apr 23 11:19:39 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -302,6 +304,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -323,9 +328,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -342,74 +356,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -417,6 +367,28 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_shifwflx', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_grid(1) = 'i', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -452,7 +424,7 @@ (PID.TID 0000.0001) ># nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -461,7 +433,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 @@ -595,8 +567,8 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 0 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 7200 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 @@ -609,7 +581,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 @@ -639,7 +611,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 @@ -655,6 +627,346 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 14400 (PID.TID 0000.0001) ctrl-wet 8: atmos 14400 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -693,41 +1005,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 17a:surface wet I = 576 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 1 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 2 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 3 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 4 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 5 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 6 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 7 2989 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 8 3087 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 9 3185 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 10 3332 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 11 3430 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 12 3577 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 13 3675 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 14 3773 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 15 3920 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 16 4018 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 17 4165 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 18 4263 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 19 4361 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 20 4508 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 21 4606 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 22 4753 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 23 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 24 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 25 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 26 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 27 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 28 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 29 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 30 4851 -(PID.TID 0000.0001) ctrl-wet 17c: global SUM(K) shifwflx 4851 -(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 4 -(PID.TID 0000.0001) ctrl_init: control vector length: 306201 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 4 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 306201 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -748,11 +1027,30 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0004 014400 014400 013800 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0004 015000 015000 015000 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shifwflx +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -796,7 +1094,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -889,6 +1187,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -913,6 +1221,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -940,7 +1254,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -980,7 +1294,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -989,10 +1303,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1034,8 +1348,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1056,14 +1371,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1076,6 +1389,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1091,6 +1407,9 @@ (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1154,6 +1473,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1173,6 +1498,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1233,6 +1561,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 4.000000000000000E+05 (PID.TID 0000.0001) ; @@ -1281,9 +1612,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1341,11 +1669,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1356,6 +1693,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.708737864077669E-04 (PID.TID 0000.0001) ; @@ -1832,27 +2175,6 @@ (PID.TID 0000.0001) SHELFICEisOn = /* package is turned on */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) useISOMIPTD = /* use simple isomip thermodynamics */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1862,6 +2184,9 @@ (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1877,6 +2202,9 @@ (PID.TID 0000.0001) SHELFICEdragQuadratic = /* quadratic drag coefficient */ (PID.TID 0000.0001) 2.500000000000000E-03 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEselectDragQuadr = /* select quadratic drag option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICElatentHeat = /* latent heat of ice */ (PID.TID 0000.0001) 3.340000000000000E+05 (PID.TID 0000.0001) ; @@ -1901,6 +2229,9 @@ (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' (PID.TID 0000.0001) ; @@ -1913,9 +2244,32 @@ (PID.TID 0000.0001) SHELFICEMassDynTendFile = /* file name of loaded dynamic mass tendency field */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICE_CHECK: end of SHELFICE config. summary -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1978,6 +2332,9 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391243316095E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3889924168882E-02 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3297324617654E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4012427019763E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3691067728586E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2064619248418E-03 @@ -1998,20 +2355,20 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 -(PID.TID 0000.0001) cg2d_init_res = 5.92331127616910E+00 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 +(PID.TID 0000.0001) cg2d_init_res = 5.92331127616905E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.67906716520419E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.67906716519740E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8641 (PID.TID 0000.0001) %MON time_secondsf = 1.5553800000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1277835806489E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3100274749332E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8003601333175E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.7652378576615E-04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2685609362194E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1277835806491E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3100274749337E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8005304922500E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.7652378576613E-04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2685609362196E-06 (PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9546551411593E-03 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2109505261735E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5153644200267E-05 @@ -2019,24 +2376,27 @@ (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6836980058922E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9571337511667E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257547772188E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6557943794560E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6557943794559E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7773783645128E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9154622171643E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6556690295145E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6556690295146E-05 (PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002081992161E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8663726072453E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8663726072455E-09 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1001516809161E-06 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8108872745437E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8769131963364E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0007840743761E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9142988819095E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1104431867772E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2917085380898E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4409203525770E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119639485228E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391240378523E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3901550063993E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3322962905338E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8769131967621E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0007960891136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9142990577066E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1104917679478E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2916820286672E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4409203525650E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119636087582E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391240315268E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3901784640864E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3323672410987E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6031116769173E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4320521681269E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2012491952965E-03 (PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6031112195961E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4067301921369E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2012491952965E-03 @@ -2051,240 +2411,252 @@ (PID.TID 0000.0001) %MON vort_a_sd = 1.7877722076025E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5023174955087E-04 (PID.TID 0000.0001) %MON vort_p_sd = 7.5268862837488E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.4441516329229E-12 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5717366592250E-09 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.5586960773472E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5717699423067E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.85512053557349E-02 -(PID.TID 0000.0001) cg2d_init_res = 8.59751456310518E-02 + cg2d: Sum(rhs),rhsMax = 7.17967352237281E-13 5.85511309016428E-02 +(PID.TID 0000.0001) cg2d_init_res = 8.59697243449907E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 -(PID.TID 0000.0001) cg2d_last_res = 7.55911320565410E-14 +(PID.TID 0000.0001) cg2d_last_res = 7.56013858040744E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8642 (PID.TID 0000.0001) %MON time_secondsf = 1.5555600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1443560259807E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.5259207390593E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7996786975873E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0073325445547E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2966575096072E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9392221881322E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2349235338696E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5617782085261E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1757607571496E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8725003007818E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9889220419386E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257027843375E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.3203762852817E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7837131425885E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9142521322000E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6583131062643E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002438842114E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.2177579839653E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0323154413031E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7560782342521E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8819023984771E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0012905981592E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143043027251E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1118192149996E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2637229691685E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4407234073343E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119644872658E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391238414238E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3909079600592E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3331793830598E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6744414772162E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4581964844210E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2014633052687E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2014633052686E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -3.3134348039794E-07 -(PID.TID 0000.0001) %MON ke_max = 7.8660925674204E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5064270513455E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1443561145690E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.5259321270753E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8012119279803E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0073329886022E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2966127813637E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9392222171052E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2349245178985E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5617784822892E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1757611881314E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8724995794993E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9889246060793E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257029106444E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.3202683644751E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7837134293310E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9142521604243E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6583152323610E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002439095621E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.2176960530464E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0323152409954E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7560778007559E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8819023952956E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0013100924808E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143045880826E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1118981817452E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2636914604719E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4407234074435E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119639359397E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391238311545E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3909460443529E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3332976765457E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6744448715108E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4837260437463E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2014634573724E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6744444051357E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4582006358494E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2014634573724E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2014634573724E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -3.3134477382590E-07 +(PID.TID 0000.0001) %MON ke_max = 7.8660987898515E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5064283357401E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3607308062644E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.3418815457489E-06 +(PID.TID 0000.0001) %MON vort_r_min = -2.3607308092729E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3418858010355E-06 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007161342166E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7878691293553E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7878691314835E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5023175000278E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5270555007117E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1373874223989E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6188881355010E-09 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270554940804E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1527638796503E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6189209884012E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84775812663677E-02 -(PID.TID 0000.0001) cg2d_init_res = 4.21217855693156E-02 + cg2d: Sum(rhs),rhsMax = 7.17009784878542E-13 5.84774658692466E-02 +(PID.TID 0000.0001) cg2d_init_res = 4.21241723177761E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 -(PID.TID 0000.0001) cg2d_last_res = 8.28847582369501E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.28852504854665E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8643 (PID.TID 0000.0001) %MON time_secondsf = 1.5557400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1515573070835E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6552429094369E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1515578436414E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6552659058977E-03 (PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7991676207896E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0180736663277E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2841705486239E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9300387969457E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2558234219524E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7278615032199E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1848853849573E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0064626779185E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0227587570311E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3254974872734E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1334883221734E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7899836290033E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136019207869E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6976815243057E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010270529462E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.0357869864272E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0039084990355E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7346502219208E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8848535180615E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0017966829179E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143097199736E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1131994127385E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2366161039178E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4406074121501E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119648487139E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391236451126E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3916626460615E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3337567121248E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7366278503272E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5129792433111E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2061623176775E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2061623176775E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -2.8590108398894E-07 -(PID.TID 0000.0001) %MON ke_max = 7.9870249945784E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5343189845587E-06 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0180750040726E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2840983485653E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9300389531105E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2558267906124E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7278626061425E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1848869207529E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0064622177480E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0227646479275E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3254978804014E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1334617454604E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7899843914661E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136019780372E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6976883609554E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010270999498E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.0356591932799E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0039081511304E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7346493493635E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8848535107161E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0018236491909E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143101148136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1133088266241E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2365884929653E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4406074124185E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119640860556E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391236309018E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3917153503871E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3339239970926E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7366383478433E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5387307335613E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2061625996986E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7366378735744E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5129887808669E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2061625996986E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2061625996986E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.8590447928770E-07 +(PID.TID 0000.0001) %MON ke_max = 7.9870409679200E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5343228667278E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3686840780972E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.3806685473519E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161343370E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879378192076E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175015767E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5270171126218E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7175089141682E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6722083863832E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3686840111402E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3806780867548E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161343369E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879378256152E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175015766E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270170898559E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7398499435115E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6722479091083E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.16551817880884E-13 5.84638697284098E-02 -(PID.TID 0000.0001) cg2d_init_res = 3.97392561478374E-02 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.84637112532757E-02 +(PID.TID 0000.0001) cg2d_init_res = 3.97391318684451E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 198 -(PID.TID 0000.0001) cg2d_last_res = 8.57444011999549E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.57384551490564E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8644 (PID.TID 0000.0001) %MON time_secondsf = 1.5559200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1484195637262E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6775786873772E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8003601333175E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0148363997009E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2847860410239E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9284820147481E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2735256014628E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8792162941564E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1960602666798E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0685158950701E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0558462250241E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3263977592552E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3424713149888E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7956709924881E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136984604593E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7398610832213E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2024871521623E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.6255069993577E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0048163371720E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7328713917901E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8867202791459E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0023021460345E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143151317606E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1145820036360E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2101775270229E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4405345011395E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119652973447E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391234490766E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3924165249939E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3343347977136E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7892996318960E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5665489464098E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2149229129737E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2149229129737E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -2.3195482146270E-07 -(PID.TID 0000.0001) %MON ke_max = 8.1155245683502E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5631150659861E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1484206783528E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6776107705951E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8009563895814E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0148385608254E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2846864458017E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9284818728843E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2735330850681E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8792183655588E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1960637787444E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0685169866624E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0558561217645E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3263984057566E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3424273861593E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7956723952778E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136985525580E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7398735473264E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2024872199789E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.6253147130283E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0048162362584E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7328701734702E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8867202661837E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0023365728403E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143156359609E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1147219134894E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2101626293272E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4405345016335E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119643236921E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391234309280E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3924838374056E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3345537277606E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7893223798738E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5929724012418E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2149233198736E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7893218989180E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5665649695594E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2149233198736E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2149233198736E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.3196083254729E-07 +(PID.TID 0000.0001) %MON ke_max = 8.1155533453252E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5631230512880E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3719471207501E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.4115970861472E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161358950E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879711334448E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175041108E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5269977276891E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0467092824441E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5271539416613E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3719469503957E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4116126795072E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161358949E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879711465161E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175041107E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5269976763242E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0730133518677E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5271928315717E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.19299619866831E-13 5.84152095911704E-02 -(PID.TID 0000.0001) cg2d_init_res = 3.94328174394335E-02 + cg2d: Sum(rhs),rhsMax = 7.18980430747251E-13 5.84150056682476E-02 +(PID.TID 0000.0001) cg2d_init_res = 3.94327141647643E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 196 -(PID.TID 0000.0001) cg2d_last_res = 8.76500138515922E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.76594746771953E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8645 (PID.TID 0000.0001) %MON time_secondsf = 1.5561000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1382733100667E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6398898251617E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8013396971797E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0046737974651E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2866387493850E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9343375976830E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2878741796147E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9626631554396E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2084379554693E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0580275334495E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0880033029237E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3279344052335E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4144855116754E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8005742040070E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9145855210634E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7853530213404E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2044416291690E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4270358455507E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0300055109711E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7479083050030E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8880327476606E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0028069838862E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143205380866E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1159664501017E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1843036295130E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4404835970875E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119658306831E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391232532847E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3931695269297E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3350480719999E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8319929722158E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6186123172296E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2266497750142E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2266497750142E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -1.7978608629335E-07 -(PID.TID 0000.0001) %MON ke_max = 8.2451270678530E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5912845838501E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1382750844727E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6399287594123E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8000620051855E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0046765798051E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2865119528747E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9343372843846E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2878877466897E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9626658144065E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2084444745851E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0580322883387E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0880185053065E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3279353229623E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4144260024423E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8005763575116E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9145856668369E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7853718469537E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2044417216030E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4267927161879E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0300062454151E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7479069949735E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8880327276369E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0028488597626E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143211515250E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1161369040541E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1843103545555E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4404835978751E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119646463796E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391232312021E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3932514354925E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3353203752595E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.8319844408213E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6459255721739E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2266503296182E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8320333402400E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6186369303892E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2266503296182E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2266503296182E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -1.7979507668648E-07 +(PID.TID 0000.0001) %MON ke_max = 8.2451708570486E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5912982536331E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3692666895518E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.4341746253008E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161401737E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879711292940E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175093311E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5269971017848E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0696376164019E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2512972076616E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3692663844907E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4341966322052E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161401735E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879711514747E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175093308E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5269970079259E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.0959639574568E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2513271909416E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2305,30 +2677,30 @@ --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288717482624D+05 - --> objf_test(bi,bj) = 0.280624377216652D+05 - --> objf_test(bi,bj) = 0.489323890245014D+05 - --> objf_test(bi,bj) = 0.505634108716193D+05 - --> objf_test(bi,bj) = 0.526333861402729D+05 - --> objf_test(bi,bj) = 0.548247408829590D+05 - --> objf_test(bi,bj) = 0.526315118305189D+05 - --> objf_test(bi,bj) = 0.548244917143855D+05 - local fc = 0.369701239934185D+06 - global fc = 0.369701239934185D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289712274360D+05 + --> objf_test(bi,bj) = 0.280625414040288D+05 + --> objf_test(bi,bj) = 0.489324298390153D+05 + --> objf_test(bi,bj) = 0.505634538283121D+05 + --> objf_test(bi,bj) = 0.526334185655399D+05 + --> objf_test(bi,bj) = 0.548247746592213D+05 + --> objf_test(bi,bj) = 0.526315442557196D+05 + --> objf_test(bi,bj) = 0.548245254906570D+05 +(PID.TID 0000.0001) local fc = 0.369701659269930D+06 +(PID.TID 0000.0001) global fc = 0.369701659269930D+06 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.85512053557349E-02 - cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84775812663677E-02 - cg2d: Sum(rhs),rhsMax = 7.16551817880884E-13 5.84638697284098E-02 - cg2d: Sum(rhs),rhsMax = 7.19299619866831E-13 5.84152095911704E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17967352237281E-13 5.85511309016428E-02 + cg2d: Sum(rhs),rhsMax = 7.17009784878542E-13 5.84774658692466E-02 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.84637112532757E-02 + cg2d: Sum(rhs),rhsMax = 7.18980430747251E-13 5.84150056682476E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 7.19299619866831E-13 5.84152095911704E-02 + cg2d: Sum(rhs),rhsMax = 7.18980430747251E-13 5.84150056682476E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 7.19299619866831E-13 5.84152095911704E-02 + cg2d: Sum(rhs),rhsMax = 7.18980430747251E-13 5.84150056682476E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8645 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5561000000000E+07 @@ -2352,186 +2724,191 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -3.7760654953212E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0056139677723E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8286410761731E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.2319329002033E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9054968563936E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -3.7760654552739E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0056977195252E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8286423030499E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.2322738081082E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9054985913591E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.13686837721616E-13 1.26568278935976E-05 - cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84775812663677E-02 - cg2d: Sum(rhs),rhsMax = 7.16551817880884E-13 5.84638697284098E-02 - cg2d: Sum(rhs),rhsMax = 7.16551817880884E-13 5.84638697284098E-02 + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -1.00808250635964E-13 1.27595835892031E-05 + cg2d: Sum(rhs),rhsMax = 7.17009784878542E-13 5.84774658692466E-02 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.84637112532757E-02 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.84637112532757E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8644 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5559200000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 9.5631688490858E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.2107448663243E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1241850897482E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.5496491735133E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.3322097045150E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3182394453264E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.3663026076950E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -8.9176038711893E-07 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.5809651683149E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.7883076644729E-08 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.9687805501067E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.2179321420446E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.9439667929265E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.2010937563958E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.0389385087580E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.6251749034216E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5372024109325E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.3998277994653E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.7450731167726E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9524907401631E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -8.8762219504219E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0994549662611E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8285938182412E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2361932380976E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9159168849250E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.9698874587686E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.8218630463117E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1236076773482E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 9.9834838930728E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.0718789685519E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -6.10622663543836E-16 4.34585063045809E-04 - cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84775812663677E-02 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 9.5668871386285E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.2120229872395E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1295672116363E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.5508331725978E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.3341864327196E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3186517296241E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.4064895525205E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -8.9612728429572E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.5843437773472E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.8031143197941E-08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.9807709077386E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.2147059738507E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.9466078094619E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.2023378507213E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.0435221451642E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.6880930978620E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5420565244238E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4146912147124E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.7613338274641E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9708338532278E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -8.8762214319212E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0994561262690E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8285944238518E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2363387927789E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9159178913716E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.9841975810248E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.8244745927274E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.1247290487593E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 9.9898958970047E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.0741596300423E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -1.94289029309402E-15 4.35018353819757E-04 + cg2d: Sum(rhs),rhsMax = 7.17009784878542E-13 5.84774658692466E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8643 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5557400000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.7976607422612E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.3155721335195E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.9591900573908E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8950481770755E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.3538233061797E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.5214476222833E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.7718994253831E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -9.2765694962515E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.4967837493341E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.0797354696255E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0166533936933E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.0122610676322E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.5364241777052E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1207960598989E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.2019330690792E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.9642256147776E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.8298954552146E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.1405779139371E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.7913683496759E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.4855569512523E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -7.1587732575067E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0811188365789E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8284206325999E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2326603664168E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9150758859774E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3041335843344E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.5447076303049E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.2341142888150E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.6363228784829E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.3775230979103E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.87270207621759E-15 8.42026537389463E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.7984749460141E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.3179626845873E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.9681095113102E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8972809308250E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.3574748663164E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.5216610916371E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.8266250549762E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -9.2843354848247E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.5004398412683E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.0810273403039E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0177784443704E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.0120549881751E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.5396197324849E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1222090036315E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.2074903207193E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.0305045035887E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.8343125450243E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.1416659987728E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.8007570738358E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.4983205249561E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -7.1587700922227E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0811198647760E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8284208510372E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2327127077979E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9150764233161E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3063268979605E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.5479480427627E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.2357232636455E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.6373753114733E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.3808543395627E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -4.30211422042248E-16 8.42822523307261E-04 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.85512053557349E-02 - cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.85512053557349E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17967352237281E-13 5.85511309016428E-02 + cg2d: Sum(rhs),rhsMax = 7.17967352237281E-13 5.85511309016428E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8642 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5555600000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.4574592698286E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.2839138606046E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -2.7919010375538E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.0108725720027E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 6.0231745692381E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.9815558528829E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.6679033740812E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -2.2804605865134E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.4110154441263E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6383262324214E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0495600878023E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.2440678405753E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.9483475237711E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.5048010684444E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.9399257787275E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.0677628557635E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.3522181416130E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.4605308366016E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4166637538402E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.1770976490045E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.6249405636774E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0688435914179E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8282667012885E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2743030876079E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9147893709973E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8256922154755E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.3020095352897E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 4.3149681399109E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.2803170526150E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.7088791387352E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.19189119579733E-16 1.20409644791621E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.4586226956984E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.2871973003975E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -2.7945012506978E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.0139708261114E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 6.0281496990276E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.9826252527296E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.7060222136031E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -2.2823022249902E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.4197537891232E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6408287583380E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0502841794101E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.2437203846504E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.9512633446620E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.5059586758303E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.9446853402192E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.0702066051908E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.3627419953868E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.4622626099132E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.4177683996796E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 7.1916439200621E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.6249347232381E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0688402448921E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8282665325373E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2742668678276E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9147893897768E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8287177538654E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.3065020774219E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 4.3170888988758E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.2817666047225E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.7137736404033E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -2.19269047363468E-15 1.20526357050815E-03 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8641 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5553800000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.7573225566241E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.9025303811196E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -5.5104347497528E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.6846562329712E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.0261067256809E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.3397026006766E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.1544928999152E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.5371005785670E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1838825005537E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.1393110651159E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.6524563334218E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3670756044318E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.3770777274343E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.4857247059069E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.7297895670745E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.1542056659406E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.3723536505779E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -3.9086345572997E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3555623351216E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1558659636122E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.4608485692452E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0553328981742E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8281774675809E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.4872871622492E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9187977867507E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.3510754279224E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.9418588557737E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 5.4188219032520E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.9268855230822E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0392900227292E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.59247615094671E-15 1.44231796639522E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.7586128251808E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.9063436676841E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -5.5154142267146E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.6882113033974E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.0317281255374E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.3380771220453E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.1620252155717E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.5399276079897E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1851231168114E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.1430545858319E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 9.6572917044553E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3665234858833E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.3788690387899E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.4864323967045E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.7324643322201E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.1602871103629E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.3785600215159E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -3.9107980677770E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3571786595618E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1577128803193E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.4608402895128E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0553282916388E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8281769129205E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.4871690843870E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9187973458996E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.3549458412054E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -6.9467001582493E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 5.4215175264356E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.9287244109106E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.0454700121079E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -3.15372727932584E-15 1.44368305763679E-03 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2553,47 +2930,67 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 243 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8640 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5552000000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.6071421667828E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0493614178225E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.6026646460808E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.8324556331948E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.2500797985333E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8706807092493E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.9724966346071E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.2315005367041E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.3766869490855E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9795278157976E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.8999821041389E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.5009796888537E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.4808576696145E-05 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2446533470734E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.6246957869586E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.1020380127850E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.7350379205177E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -5.1676862781037E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.3600716956465E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.6995932973465E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.4078410749974E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0721587629618E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8282506501672E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.2584233192655E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9241663980832E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.8715105245217E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.5087430600179E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.5871210576981E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5759957744786E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.3507890342319E-07 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.6082874110894E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0531215557716E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.6103726885360E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.8360027288504E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.2555947375887E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.8679224859911E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.9803039456286E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.2349408580481E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.3779692921293E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.9839386387086E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 7.9018664250246E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.5000469046771E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.4822056184769E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2450696578106E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.6252052340843E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.1095587881745E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.7427365020937E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -5.1702224817504E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.3623469487031E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.7021676011069E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.4078305037999E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0721206259465E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8282497110547E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.2582355234432E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9241654699032E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.8762449628262E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.5135330260277E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.5904605032466E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5782045306419E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 7.3580589968253E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 243 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69701239934185E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69701659269930E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -2648,11 +3045,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02715663436493E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.18605730476440E-13 5.85512047539605E-02 - cg2d: Sum(rhs),rhsMax = 7.18661241627672E-13 5.84775808998296E-02 - cg2d: Sum(rhs),rhsMax = 7.17551018603046E-13 5.84638698979808E-02 - cg2d: Sum(rhs),rhsMax = 7.17217951695659E-13 5.84152100022370E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.16496306729653E-13 5.85511303000149E-02 + cg2d: Sum(rhs),rhsMax = 7.15941195217340E-13 5.84774655027088E-02 + cg2d: Sum(rhs),rhsMax = 7.17523263027431E-13 5.84637114229762E-02 + cg2d: Sum(rhs),rhsMax = 7.18286541356861E-13 5.84150060792278E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2670,18 +3067,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288335754003D+05 - --> objf_test(bi,bj) = 0.280624377216682D+05 - --> objf_test(bi,bj) = 0.489323890244014D+05 - --> objf_test(bi,bj) = 0.505634108716201D+05 - --> objf_test(bi,bj) = 0.526333861402749D+05 - --> objf_test(bi,bj) = 0.548247408829619D+05 - --> objf_test(bi,bj) = 0.526315118305264D+05 - --> objf_test(bi,bj) = 0.548244917143920D+05 - local fc = 0.369701201761245D+06 - global fc = 0.369701201761245D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701201761245E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289330545738D+05 + --> objf_test(bi,bj) = 0.280625414040319D+05 + --> objf_test(bi,bj) = 0.489324298389153D+05 + --> objf_test(bi,bj) = 0.505634538283130D+05 + --> objf_test(bi,bj) = 0.526334185655417D+05 + --> objf_test(bi,bj) = 0.548247746592240D+05 + --> objf_test(bi,bj) = 0.526315442557270D+05 + --> objf_test(bi,bj) = 0.548245254906634D+05 +(PID.TID 0000.0001) local fc = 0.369701621096990D+06 +(PID.TID 0000.0001) global fc = 0.369701621096990D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701621096990E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2707,11 +3104,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02715663436493E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.85512059558719E-02 - cg2d: Sum(rhs),rhsMax = 7.17842452147011E-13 5.84775816319806E-02 - cg2d: Sum(rhs),rhsMax = 7.16718351334578E-13 5.84638695591874E-02 - cg2d: Sum(rhs),rhsMax = 7.19646564562026E-13 5.84152091811178E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17134684968812E-13 5.85511315018471E-02 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.84774662348180E-02 + cg2d: Sum(rhs),rhsMax = 7.16232628761304E-13 5.84637110837485E-02 + cg2d: Sum(rhs),rhsMax = 7.17412240724968E-13 5.84150052579242E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2729,24 +3126,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272289100998822D+05 - --> objf_test(bi,bj) = 0.280624377216621D+05 - --> objf_test(bi,bj) = 0.489323890246039D+05 - --> objf_test(bi,bj) = 0.505634108716183D+05 - --> objf_test(bi,bj) = 0.526333861402712D+05 - --> objf_test(bi,bj) = 0.548247408829565D+05 - --> objf_test(bi,bj) = 0.526315118305115D+05 - --> objf_test(bi,bj) = 0.548244917143791D+05 - local fc = 0.369701278285885D+06 - global fc = 0.369701278285885D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701278285885E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272290095790562D+05 + --> objf_test(bi,bj) = 0.280625414040257D+05 + --> objf_test(bi,bj) = 0.489324298391176D+05 + --> objf_test(bi,bj) = 0.505634538283113D+05 + --> objf_test(bi,bj) = 0.526334185655379D+05 + --> objf_test(bi,bj) = 0.548247746592186D+05 + --> objf_test(bi,bj) = 0.526315442557123D+05 + --> objf_test(bi,bj) = 0.548245254906506D+05 +(PID.TID 0000.0001) local fc = 0.369701697621630D+06 +(PID.TID 0000.0001) global fc = 0.369701697621630D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701697621630E+05 grad-res ------------------------------- - grad-res 0 1 20 24 20 1 1 1 3.69701239934E+05 3.69701201761E+05 3.69701278286E+05 - grad-res 0 1 1 1579 0 1 1 1 -3.82623201278E+00 -3.82623198966E+00 6.04312855312E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69701239934185E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82623201278271E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82623198966030E+00 + grad-res 0 1 20 24 20 1 1 1 3.69701659270E+05 3.69701621097E+05 3.69701697622E+05 + grad-res 0 1 1 1579 0 1 1 1 -3.82623202250E+00 -3.82623200130E+00 5.54126933228E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69701659269930E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82623202250401E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82623200130183E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1580 100450 2 @@ -2778,11 +3175,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.13595849077819E-13 5.85512047880695E-02 - cg2d: Sum(rhs),rhsMax = 7.17814696571395E-13 5.84775808805931E-02 - cg2d: Sum(rhs),rhsMax = 7.18272663569053E-13 5.84638698259659E-02 - cg2d: Sum(rhs),rhsMax = 7.19632686774219E-13 5.84152099060234E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.16426917790614E-13 5.85511303343969E-02 + cg2d: Sum(rhs),rhsMax = 7.19577175622987E-13 5.84774654833177E-02 + cg2d: Sum(rhs),rhsMax = 7.16399162214998E-13 5.84637113508805E-02 + cg2d: Sum(rhs),rhsMax = 7.19285742079023E-13 5.84150059830731E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2800,18 +3197,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288335808101D+05 - --> objf_test(bi,bj) = 0.280624377216676D+05 - --> objf_test(bi,bj) = 0.489323890244014D+05 - --> objf_test(bi,bj) = 0.505634108716208D+05 - --> objf_test(bi,bj) = 0.526333861402749D+05 - --> objf_test(bi,bj) = 0.548247408829619D+05 - --> objf_test(bi,bj) = 0.526315118305263D+05 - --> objf_test(bi,bj) = 0.548244917143919D+05 - local fc = 0.369701201766655D+06 - global fc = 0.369701201766655D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701201766655E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289330599835D+05 + --> objf_test(bi,bj) = 0.280625414040313D+05 + --> objf_test(bi,bj) = 0.489324298389153D+05 + --> objf_test(bi,bj) = 0.505634538283137D+05 + --> objf_test(bi,bj) = 0.526334185655418D+05 + --> objf_test(bi,bj) = 0.548247746592239D+05 + --> objf_test(bi,bj) = 0.526315442557269D+05 + --> objf_test(bi,bj) = 0.548245254906633D+05 +(PID.TID 0000.0001) local fc = 0.369701621102400D+06 +(PID.TID 0000.0001) global fc = 0.369701621102400D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701621102400E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2837,11 +3234,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.14872605556138E-13 5.85512059218349E-02 - cg2d: Sum(rhs),rhsMax = 7.17551018603046E-13 5.84775816510130E-02 - cg2d: Sum(rhs),rhsMax = 7.16635084607731E-13 5.84638696310848E-02 - cg2d: Sum(rhs),rhsMax = 7.16163239822265E-13 5.84152092771334E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.15746906188031E-13 5.85511314678090E-02 + cg2d: Sum(rhs),rhsMax = 7.15746906188031E-13 5.84774662541216E-02 + cg2d: Sum(rhs),rhsMax = 7.16149362034457E-13 5.84637111557512E-02 + cg2d: Sum(rhs),rhsMax = 7.16343651063767E-13 5.84150053539320E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2859,24 +3256,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272289100944726D+05 - --> objf_test(bi,bj) = 0.280624377216627D+05 - --> objf_test(bi,bj) = 0.489323890246039D+05 - --> objf_test(bi,bj) = 0.505634108716176D+05 - --> objf_test(bi,bj) = 0.526333861402711D+05 - --> objf_test(bi,bj) = 0.548247408829565D+05 - --> objf_test(bi,bj) = 0.526315118305116D+05 - --> objf_test(bi,bj) = 0.548244917143792D+05 - local fc = 0.369701278280475D+06 - global fc = 0.369701278280475D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701278280475E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272290095736465D+05 + --> objf_test(bi,bj) = 0.280625414040263D+05 + --> objf_test(bi,bj) = 0.489324298391177D+05 + --> objf_test(bi,bj) = 0.505634538283107D+05 + --> objf_test(bi,bj) = 0.526334185655379D+05 + --> objf_test(bi,bj) = 0.548247746592187D+05 + --> objf_test(bi,bj) = 0.526315442557124D+05 + --> objf_test(bi,bj) = 0.548245254906507D+05 +(PID.TID 0000.0001) local fc = 0.369701697616221D+06 +(PID.TID 0000.0001) global fc = 0.369701697616221D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701697616221E+05 grad-res ------------------------------- - grad-res 0 2 21 24 20 1 1 1 3.69701239934E+05 3.69701201767E+05 3.69701278280E+05 - grad-res 0 2 2 1580 0 1 1 1 -3.82569104891E+00 -3.82569102221E+00 6.97758373303E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69701239934185E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82569104890577E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82569102221169E+00 + grad-res 0 2 21 24 20 1 1 1 3.69701659270E+05 3.69701621102E+05 3.69701697616E+05 + grad-res 0 2 2 1580 0 1 1 1 -3.82569105861E+00 -3.82569105423E+00 1.14606990564E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69701659269930E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82569105861041E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82569105422590E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1581 100450 3 @@ -2908,11 +3305,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02771174587724E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.15358328129412E-13 5.85512048210755E-02 - cg2d: Sum(rhs),rhsMax = 7.17703674268932E-13 5.84775808653333E-02 - cg2d: Sum(rhs),rhsMax = 7.13845649258360E-13 5.84638697609207E-02 - cg2d: Sum(rhs),rhsMax = 7.18286541356861E-13 5.84152098187985E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.15247305826949E-13 5.85511303672589E-02 + cg2d: Sum(rhs),rhsMax = 7.16621206819923E-13 5.84774654681125E-02 + cg2d: Sum(rhs),rhsMax = 7.15746906188031E-13 5.84637112859060E-02 + cg2d: Sum(rhs),rhsMax = 7.18744508354519E-13 5.84150058959554E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2930,18 +3327,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288335843929D+05 - --> objf_test(bi,bj) = 0.280624377216566D+05 - --> objf_test(bi,bj) = 0.489323890243958D+05 - --> objf_test(bi,bj) = 0.505634108716215D+05 - --> objf_test(bi,bj) = 0.526333861402750D+05 - --> objf_test(bi,bj) = 0.548247408829618D+05 - --> objf_test(bi,bj) = 0.526315118305262D+05 - --> objf_test(bi,bj) = 0.548244917143918D+05 - local fc = 0.369701201770222D+06 - global fc = 0.369701201770222D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701201770222E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289330635663D+05 + --> objf_test(bi,bj) = 0.280625414040202D+05 + --> objf_test(bi,bj) = 0.489324298389096D+05 + --> objf_test(bi,bj) = 0.505634538283144D+05 + --> objf_test(bi,bj) = 0.526334185655418D+05 + --> objf_test(bi,bj) = 0.548247746592239D+05 + --> objf_test(bi,bj) = 0.526315442557269D+05 + --> objf_test(bi,bj) = 0.548245254906633D+05 +(PID.TID 0000.0001) local fc = 0.369701621105966D+06 +(PID.TID 0000.0001) global fc = 0.369701621105966D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701621105966E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2967,11 +3364,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.17939596661665E-13 5.85512058889878E-02 - cg2d: Sum(rhs),rhsMax = 7.17259585059082E-13 5.84775816661611E-02 - cg2d: Sum(rhs),rhsMax = 7.18397563659323E-13 5.84638696958963E-02 - cg2d: Sum(rhs),rhsMax = 7.18272663569053E-13 5.84152093641769E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17023662666350E-13 5.85511314349339E-02 + cg2d: Sum(rhs),rhsMax = 7.20368209528033E-13 5.84774662692342E-02 + cg2d: Sum(rhs),rhsMax = 7.18480830386170E-13 5.84637112203490E-02 + cg2d: Sum(rhs),rhsMax = 7.17245707271275E-13 5.84150054409772E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2989,24 +3386,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272289100908900D+05 - --> objf_test(bi,bj) = 0.280624377216737D+05 - --> objf_test(bi,bj) = 0.489323890246095D+05 - --> objf_test(bi,bj) = 0.505634108716169D+05 - --> objf_test(bi,bj) = 0.526333861402711D+05 - --> objf_test(bi,bj) = 0.548247408829566D+05 - --> objf_test(bi,bj) = 0.526315118305117D+05 - --> objf_test(bi,bj) = 0.548244917143792D+05 - local fc = 0.369701278276909D+06 - global fc = 0.369701278276909D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701278276909E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272290095700637D+05 + --> objf_test(bi,bj) = 0.280625414040373D+05 + --> objf_test(bi,bj) = 0.489324298391232D+05 + --> objf_test(bi,bj) = 0.505634538283099D+05 + --> objf_test(bi,bj) = 0.526334185655378D+05 + --> objf_test(bi,bj) = 0.548247746592187D+05 + --> objf_test(bi,bj) = 0.526315442557125D+05 + --> objf_test(bi,bj) = 0.548245254906508D+05 +(PID.TID 0000.0001) local fc = 0.369701697612654D+06 +(PID.TID 0000.0001) global fc = 0.369701697612654D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701697612654E+05 grad-res ------------------------------- - grad-res 0 3 22 24 20 1 1 1 3.69701239934E+05 3.69701201770E+05 3.69701278277E+05 - grad-res 0 3 3 1581 0 1 1 1 -3.82533437451E+00 -3.82533435186E+00 5.92012450173E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69701239934185E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82533437450551E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82533435185906E+00 + grad-res 0 3 22 24 20 1 1 1 3.69701659270E+05 3.69701621106E+05 3.69701697613E+05 + grad-res 0 3 3 1581 0 1 1 1 -3.82533438419E+00 -3.82533438678E+00 -6.77325528997E-10 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69701659269930E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82533438419266E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82533438678365E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1582 100450 4 @@ -3038,11 +3435,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02826685738955E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.19257986503408E-13 5.85512048528094E-02 - cg2d: Sum(rhs),rhsMax = 7.19799220227912E-13 5.84775808537389E-02 - cg2d: Sum(rhs),rhsMax = 7.14692194314637E-13 5.84638697026998E-02 - cg2d: Sum(rhs),rhsMax = 7.16440795578421E-13 5.84152097398123E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85511303989688E-02 + cg2d: Sum(rhs),rhsMax = 7.20826176525691E-13 5.84774654565143E-02 + cg2d: Sum(rhs),rhsMax = 7.15816295127070E-13 5.84637112276686E-02 + cg2d: Sum(rhs),rhsMax = 7.20146164923108E-13 5.84150058167611E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3060,18 +3457,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288335867626D+05 - --> objf_test(bi,bj) = 0.280624377216074D+05 - --> objf_test(bi,bj) = 0.489323890243914D+05 - --> objf_test(bi,bj) = 0.505634108716187D+05 - --> objf_test(bi,bj) = 0.526333861402750D+05 - --> objf_test(bi,bj) = 0.548247408829617D+05 - --> objf_test(bi,bj) = 0.526315118305262D+05 - --> objf_test(bi,bj) = 0.548244917143917D+05 - local fc = 0.369701201772535D+06 - global fc = 0.369701201772535D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701201772535E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289330659361D+05 + --> objf_test(bi,bj) = 0.280625414039710D+05 + --> objf_test(bi,bj) = 0.489324298389052D+05 + --> objf_test(bi,bj) = 0.505634538283116D+05 + --> objf_test(bi,bj) = 0.526334185655418D+05 + --> objf_test(bi,bj) = 0.548247746592238D+05 + --> objf_test(bi,bj) = 0.526315442557268D+05 + --> objf_test(bi,bj) = 0.548245254906632D+05 +(PID.TID 0000.0001) local fc = 0.369701621108280D+06 +(PID.TID 0000.0001) global fc = 0.369701621108280D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701621108280E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -3097,11 +3494,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.20187798286531E-13 5.85512058572189E-02 - cg2d: Sum(rhs),rhsMax = 7.15941195217340E-13 5.84775816776385E-02 - cg2d: Sum(rhs),rhsMax = 7.17675918693317E-13 5.84638697539394E-02 - cg2d: Sum(rhs),rhsMax = 7.16149362034457E-13 5.84152094431618E-02 + cg2d: Sum(rhs),rhsMax = 7.02535252194991E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17675918693317E-13 5.85511314032715E-02 + cg2d: Sum(rhs),rhsMax = 7.18189396842206E-13 5.84774662805828E-02 + cg2d: Sum(rhs),rhsMax = 7.13512582350972E-13 5.84637112783107E-02 + cg2d: Sum(rhs),rhsMax = 7.17800818783587E-13 5.84150055197671E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3119,24 +3516,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272289100885201D+05 - --> objf_test(bi,bj) = 0.280624377217229D+05 - --> objf_test(bi,bj) = 0.489323890246137D+05 - --> objf_test(bi,bj) = 0.505634108716197D+05 - --> objf_test(bi,bj) = 0.526333861402710D+05 - --> objf_test(bi,bj) = 0.548247408829566D+05 - --> objf_test(bi,bj) = 0.526315118305117D+05 - --> objf_test(bi,bj) = 0.548244917143793D+05 - local fc = 0.369701278274595D+06 - global fc = 0.369701278274595D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701278274595E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272290095676940D+05 + --> objf_test(bi,bj) = 0.280625414040864D+05 + --> objf_test(bi,bj) = 0.489324298391276D+05 + --> objf_test(bi,bj) = 0.505634538283127D+05 + --> objf_test(bi,bj) = 0.526334185655378D+05 + --> objf_test(bi,bj) = 0.548247746592188D+05 + --> objf_test(bi,bj) = 0.526315442557125D+05 + --> objf_test(bi,bj) = 0.548245254906509D+05 +(PID.TID 0000.0001) local fc = 0.369701697610341D+06 +(PID.TID 0000.0001) global fc = 0.369701697610341D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701697610341E+05 grad-res ------------------------------- - grad-res 0 4 23 24 20 1 1 1 3.69701239934E+05 3.69701201773E+05 3.69701278275E+05 - grad-res 0 4 4 1582 0 1 1 1 -3.82510304983E+00 -3.82510302006E+00 7.78092035247E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69701239934185E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82510304982549E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82510302006267E+00 + grad-res 0 4 23 24 20 1 1 1 3.69701659270E+05 3.69701621108E+05 3.69701697610E+05 + grad-res 0 4 4 1582 0 1 1 1 -3.82510305949E+00 -3.82510305790E+00 4.17353041016E-10 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69701659269930E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82510305949407E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82510305789765E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1583 100450 5 @@ -3168,11 +3565,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.18147763478783E-13 5.85512048830658E-02 - cg2d: Sum(rhs),rhsMax = 7.19244108715600E-13 5.84775808454782E-02 - cg2d: Sum(rhs),rhsMax = 7.19244108715600E-13 5.84638696507293E-02 - cg2d: Sum(rhs),rhsMax = 7.18938797383828E-13 5.84152096683773E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.15233428039141E-13 5.85511304292800E-02 + cg2d: Sum(rhs),rhsMax = 7.17689796481125E-13 5.84774654481286E-02 + cg2d: Sum(rhs),rhsMax = 7.13470948987549E-13 5.84637111756614E-02 + cg2d: Sum(rhs),rhsMax = 7.20548620769534E-13 5.84150057455775E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3190,18 +3587,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272288335888907D+05 - --> objf_test(bi,bj) = 0.280624377210357D+05 - --> objf_test(bi,bj) = 0.489323890244210D+05 - --> objf_test(bi,bj) = 0.505634108715829D+05 - --> objf_test(bi,bj) = 0.526333861402751D+05 - --> objf_test(bi,bj) = 0.548247408829617D+05 - --> objf_test(bi,bj) = 0.526315118305261D+05 - --> objf_test(bi,bj) = 0.548244917143916D+05 - local fc = 0.369701201774085D+06 - global fc = 0.369701201774085D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701201774085E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272289330680640D+05 + --> objf_test(bi,bj) = 0.280625414033995D+05 + --> objf_test(bi,bj) = 0.489324298389349D+05 + --> objf_test(bi,bj) = 0.505634538282758D+05 + --> objf_test(bi,bj) = 0.526334185655419D+05 + --> objf_test(bi,bj) = 0.548247746592237D+05 + --> objf_test(bi,bj) = 0.526315442557268D+05 + --> objf_test(bi,bj) = 0.548245254906631D+05 +(PID.TID 0000.0001) local fc = 0.369701621109830D+06 +(PID.TID 0000.0001) global fc = 0.369701621109830D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69701621109830E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -3227,11 +3624,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.19313497654639E-13 5.85512058269077E-02 - cg2d: Sum(rhs),rhsMax = 7.17259585059082E-13 5.84775816857854E-02 - cg2d: Sum(rhs),rhsMax = 7.17037540454157E-13 5.84638698057780E-02 - cg2d: Sum(rhs),rhsMax = 7.16038339731995E-13 5.84152095139874E-02 + cg2d: Sum(rhs),rhsMax = 7.02701785648685E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.15982828580763E-13 5.85511313731625E-02 + cg2d: Sum(rhs),rhsMax = 7.18702874991095E-13 5.84774662888287E-02 + cg2d: Sum(rhs),rhsMax = 7.19674320137642E-13 5.84637113302695E-02 + cg2d: Sum(rhs),rhsMax = 7.20187798286531E-13 5.84150055908079E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3249,24 +3646,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272289100863773D+05 - --> objf_test(bi,bj) = 0.280624377223093D+05 - --> objf_test(bi,bj) = 0.489323890245844D+05 - --> objf_test(bi,bj) = 0.505634108716553D+05 - --> objf_test(bi,bj) = 0.526333861402710D+05 - --> objf_test(bi,bj) = 0.548247408829567D+05 - --> objf_test(bi,bj) = 0.526315118305118D+05 - --> objf_test(bi,bj) = 0.548244917143794D+05 - local fc = 0.369701278273045D+06 - global fc = 0.369701278273045D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701278273045E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272290095655515D+05 + --> objf_test(bi,bj) = 0.280625414046726D+05 + --> objf_test(bi,bj) = 0.489324298390981D+05 + --> objf_test(bi,bj) = 0.505634538283485D+05 + --> objf_test(bi,bj) = 0.526334185655378D+05 + --> objf_test(bi,bj) = 0.548247746592188D+05 + --> objf_test(bi,bj) = 0.526315442557126D+05 + --> objf_test(bi,bj) = 0.548245254906510D+05 +(PID.TID 0000.0001) local fc = 0.369701697608791D+06 +(PID.TID 0000.0001) global fc = 0.369701697608791D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69701697608791E+05 grad-res ------------------------------- - grad-res 0 5 24 24 20 1 1 1 3.69701239934E+05 3.69701201774E+05 3.69701278273E+05 - grad-res 0 5 5 1583 0 1 1 1 -3.82494805601E+00 -3.82494802179E+00 8.94635676651E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69701239934185E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82494805601216E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82494802179281E+00 + grad-res 0 5 24 24 20 1 1 1 3.69701659270E+05 3.69701621110E+05 3.69701697609E+05 + grad-res 0 5 5 1583 0 1 1 1 -3.82494806566E+00 -3.82494805963E+00 1.57723922811E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69701659269930E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82494806566064E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82494805962779E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -3280,191 +3677,197 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 20 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 3.6970123993418E+05 3.6970120176125E+05 3.6970127828588E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -3.8262319896603E+00 -3.8262320127827E+00 6.0431285531237E-09 +(PID.TID 0000.0001) grdchk output (c): 1 3.6970165926993E+05 3.6970162109699E+05 3.6970169762163E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -3.8262320013018E+00 -3.8262320225040E+00 5.5412693322765E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 21 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 3.6970123993418E+05 3.6970120176665E+05 3.6970127828048E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -3.8256910222117E+00 -3.8256910489058E+00 6.9775837330255E-09 +(PID.TID 0000.0001) grdchk output (c): 2 3.6970165926993E+05 3.6970162110240E+05 3.6970169761622E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -3.8256910542259E+00 -3.8256910586104E+00 1.1460699056443E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 22 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 3.6970123993418E+05 3.6970120177022E+05 3.6970127827691E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -3.8253343518591E+00 -3.8253343745055E+00 5.9201245017348E-09 +(PID.TID 0000.0001) grdchk output (c): 3 3.6970165926993E+05 3.6970162110597E+05 3.6970169761265E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -3.8253343867837E+00 -3.8253343841927E+00 -6.7732552899713E-10 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 23 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 3.6970123993418E+05 3.6970120177253E+05 3.6970127827460E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -3.8251030200627E+00 -3.8251030498255E+00 7.7809203524737E-09 +(PID.TID 0000.0001) grdchk output (c): 4 3.6970165926993E+05 3.6970162110828E+05 3.6970169761034E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -3.8251030578976E+00 -3.8251030594941E+00 4.1735304101564E-10 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 5 24 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 3.6970123993418E+05 3.6970120177408E+05 3.6970127827305E+05 -(PID.TID 0000.0001) grdchk output (g): 5 -3.8249480217928E+00 -3.8249480560122E+00 8.9463567665149E-09 +(PID.TID 0000.0001) grdchk output (c): 5 3.6970165926993E+05 3.6970162110983E+05 3.6970169760879E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -3.8249480596278E+00 -3.8249480656606E+00 1.5772392281121E-09 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 7.2226584095097E-09 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.6510291985274E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 207.06999999999999 -(PID.TID 0000.0001) System time: 0.62000000000000000 -(PID.TID 0000.0001) Wall clock time: 208.14919304847717 +(PID.TID 0000.0001) User time: 116.58562469482422 +(PID.TID 0000.0001) System time: 3.0853730086237192 +(PID.TID 0000.0001) Wall clock time: 124.95803594589233 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.42999999999999999 -(PID.TID 0000.0001) System time: 2.99999999999999989E-002 -(PID.TID 0000.0001) Wall clock time: 0.46023797988891602 +(PID.TID 0000.0001) User time: 0.24480499327182770 +(PID.TID 0000.0001) System time: 0.22478599380701780 +(PID.TID 0000.0001) Wall clock time: 1.0489969253540039 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 86.189999999999998 -(PID.TID 0000.0001) System time: 0.53000000000000003 -(PID.TID 0000.0001) Wall clock time: 86.920943975448608 +(PID.TID 0000.0001) User time: 48.917448773980141 +(PID.TID 0000.0001) System time: 2.6541850417852402 +(PID.TID 0000.0001) Wall clock time: 56.278535842895508 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 133.26000000000013 -(PID.TID 0000.0001) System time: 4.00000000000000355E-002 -(PID.TID 0000.0001) Wall clock time: 133.61156916618347 +(PID.TID 0000.0001) User time: 75.711829304695129 +(PID.TID 0000.0001) System time: 0.25205063819885254 +(PID.TID 0000.0001) Wall clock time: 76.548647165298462 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14999999999997726 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.14012002944946289 +(PID.TID 0000.0001) User time: 8.0557584762573242E-002 +(PID.TID 0000.0001) System time: 1.2119412422180176E-003 +(PID.TID 0000.0001) Wall clock time: 8.1855773925781250E-002 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.72352790832519531E-003 +(PID.TID 0000.0001) User time: 2.9512763023376465E-002 +(PID.TID 0000.0001) System time: 1.3771057128906250E-003 +(PID.TID 0000.0001) Wall clock time: 3.0882596969604492E-002 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.99996948242187500E-004 +(PID.TID 0000.0001) User time: 6.4611434936523438E-004 +(PID.TID 0000.0001) System time: 2.5093555450439453E-005 +(PID.TID 0000.0001) Wall clock time: 6.1058998107910156E-004 (PID.TID 0000.0001) No. starts: 70 (PID.TID 0000.0001) No. stops: 70 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.14699923992156982 +(PID.TID 0000.0001) System time: 2.3211240768432617E-003 +(PID.TID 0000.0001) Wall clock time: 0.14940214157104492 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.00000000000318323E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.17204022407531738 +(PID.TID 0000.0001) User time: 0.10134065151214600 +(PID.TID 0000.0001) System time: 5.2678585052490234E-004 +(PID.TID 0000.0001) Wall clock time: 0.10192465782165527 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.2099999999998943 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 3.2339813709259033 +(PID.TID 0000.0001) User time: 1.7006660699844360 +(PID.TID 0000.0001) System time: 7.4166059494018555E-003 +(PID.TID 0000.0001) Wall clock time: 1.7082285881042480 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.49000000000003752 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.42848968505859375 +(PID.TID 0000.0001) User time: 0.22505724430084229 +(PID.TID 0000.0001) System time: 5.2213668823242188E-005 +(PID.TID 0000.0001) Wall clock time: 0.22516202926635742 (PID.TID 0000.0001) No. starts: 65 (PID.TID 0000.0001) No. stops: 65 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 50.370000000000203 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 50.468170404434204 +(PID.TID 0000.0001) User time: 28.819230437278748 +(PID.TID 0000.0001) System time: 2.1641850471496582E-003 +(PID.TID 0000.0001) Wall clock time: 28.823596715927124 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 27.999999999999972 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 28.059838771820068 +(PID.TID 0000.0001) User time: 16.247122764587402 +(PID.TID 0000.0001) System time: 1.7380714416503906E-003 +(PID.TID 0000.0001) Wall clock time: 16.249990463256836 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1999999999999886 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2067742347717285 +(PID.TID 0000.0001) User time: 0.89737939834594727 +(PID.TID 0000.0001) System time: 2.1016597747802734E-004 +(PID.TID 0000.0001) Wall clock time: 0.89829611778259277 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.2800000000000011 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.2351357936859131 +(PID.TID 0000.0001) User time: 1.7895255088806152 +(PID.TID 0000.0001) System time: 4.4196844100952148E-004 +(PID.TID 0000.0001) Wall clock time: 1.7901480197906494 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15000000000000568 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13825464248657227 +(PID.TID 0000.0001) User time: 7.7487587928771973E-002 +(PID.TID 0000.0001) System time: 1.9884109497070312E-004 +(PID.TID 0000.0001) Wall clock time: 7.7808618545532227E-002 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.5400000000002478 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.5290346145629883 +(PID.TID 0000.0001) User time: 0.88390696048736572 +(PID.TID 0000.0001) System time: 4.8931837081909180E-003 +(PID.TID 0000.0001) Wall clock time: 0.88909792900085449 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 34.330000000000069 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 34.435284376144409 +(PID.TID 0000.0001) User time: 18.336097955703735 +(PID.TID 0000.0001) System time: 8.6120367050170898E-003 +(PID.TID 0000.0001) Wall clock time: 18.347748279571533 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.6999999999998465 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.7424089908599854 +(PID.TID 0000.0001) User time: 3.6609952449798584 +(PID.TID 0000.0001) System time: 3.4941434860229492E-003 +(PID.TID 0000.0001) Wall clock time: 3.6654291152954102 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2199999999999704 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2144708633422852 +(PID.TID 0000.0001) User time: 0.87876033782958984 +(PID.TID 0000.0001) System time: 3.4207105636596680E-004 +(PID.TID 0000.0001) Wall clock time: 0.87952661514282227 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.7899999999998215 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.7859311103820801 +(PID.TID 0000.0001) User time: 1.8775937557220459 +(PID.TID 0000.0001) System time: 1.9693374633789062E-004 +(PID.TID 0000.0001) Wall clock time: 1.8779709339141846 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.00000000000216005E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 7.54804611206054688E-002 +(PID.TID 0000.0001) User time: 9.5422267913818359E-002 +(PID.TID 0000.0001) System time: 2.5259971618652344E-002 +(PID.TID 0000.0001) Wall clock time: 0.31862664222717285 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.14000000000001478 -(PID.TID 0000.0001) System time: 2.00000000000000178E-002 -(PID.TID 0000.0001) Wall clock time: 0.16112923622131348 +(PID.TID 0000.0001) User time: 7.7385902404785156E-002 +(PID.TID 0000.0001) System time: 0.19143182039260864 +(PID.TID 0000.0001) Wall clock time: 0.64796400070190430 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 120.44999999999999 -(PID.TID 0000.0001) System time: 5.99999999999999423E-002 -(PID.TID 0000.0001) Wall clock time: 120.76795601844788 +(PID.TID 0000.0001) User time: 67.423336029052734 +(PID.TID 0000.0001) System time: 0.20636200904846191 +(PID.TID 0000.0001) Wall clock time: 67.630440950393677 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 4.0499999999999829 -(PID.TID 0000.0001) System time: 3.00000000000000266E-002 -(PID.TID 0000.0001) Wall clock time: 4.0927145481109619 +(PID.TID 0000.0001) User time: 2.5993003845214844 +(PID.TID 0000.0001) System time: 0.14804172515869141 +(PID.TID 0000.0001) Wall clock time: 2.7474157810211182 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 115.81999999999999 -(PID.TID 0000.0001) System time: 2.00000000000000178E-002 -(PID.TID 0000.0001) Wall clock time: 116.08157014846802 +(PID.TID 0000.0001) User time: 64.522060394287109 +(PID.TID 0000.0001) System time: 1.0642290115356445E-002 +(PID.TID 0000.0001) Wall clock time: 64.533381938934326 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 110.23999999999992 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 110.49775075912476 +(PID.TID 0000.0001) User time: 61.278541564941406 +(PID.TID 0000.0001) System time: 1.0307788848876953E-002 +(PID.TID 0000.0001) Wall clock time: 61.289404869079590 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 7.00000000000216005E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.20911121368408203E-002 +(PID.TID 0000.0001) User time: 3.8249969482421875E-002 +(PID.TID 0000.0001) System time: 4.0531158447265625E-006 +(PID.TID 0000.0001) Wall clock time: 3.8272380828857422E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -3559,9 +3962,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 108380 +(PID.TID 0000.0001) // No. barriers = 111786 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 108380 +(PID.TID 0000.0001) // Total barrier spins = 111786 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output_adm.txt b/verification/isomip/results/output_adm.txt index fb4c26476d..4490489584 100644 --- a/verification/isomip/results/output_adm.txt +++ b/verification/isomip/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65k -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Apr 23 01:19:33 EDT 2015 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Fri Apr 23 11:19:39 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -326,6 +328,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -347,9 +352,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -366,74 +380,10 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -441,6 +391,28 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_shifwflx', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_grid(1) = 'i', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -476,7 +448,7 @@ (PID.TID 0000.0001) ># nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -485,7 +457,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 @@ -619,8 +591,8 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 0 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 7200 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 @@ -633,7 +605,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 @@ -663,7 +635,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 @@ -679,6 +651,346 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 14400 (PID.TID 0000.0001) ctrl-wet 8: atmos 14400 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -717,41 +1029,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 17a:surface wet I = 576 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 1 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 2 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 3 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 4 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 5 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 6 0 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 7 2989 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 8 3087 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 9 3185 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 10 3332 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 11 3430 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 12 3577 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 13 3675 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 14 3773 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 15 3920 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 16 4018 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 17 4165 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 18 4263 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 19 4361 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 20 4508 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 21 4606 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 22 4753 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 23 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 24 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 25 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 26 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 27 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 28 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 29 4851 -(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 30 4851 -(PID.TID 0000.0001) ctrl-wet 17c: global SUM(K) shifwflx 4851 -(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 4 -(PID.TID 0000.0001) ctrl_init: control vector length: 306201 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 4 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 306201 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -772,11 +1051,30 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0004 014400 014400 013800 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0004 015000 015000 015000 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shifwflx +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -820,7 +1118,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -913,6 +1211,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -937,6 +1245,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -964,7 +1278,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -1004,7 +1318,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1013,10 +1327,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1058,8 +1372,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1080,14 +1395,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1100,6 +1413,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1115,6 +1431,9 @@ (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1178,6 +1497,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1197,6 +1522,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1257,6 +1585,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 4.000000000000000E+05 (PID.TID 0000.0001) ; @@ -1305,9 +1636,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1365,11 +1693,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1380,6 +1717,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.708737864077669E-04 (PID.TID 0000.0001) ; @@ -1856,27 +2199,6 @@ (PID.TID 0000.0001) SHELFICEisOn = /* package is turned on */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) useISOMIPTD = /* use simple isomip thermodynamics */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1886,6 +2208,9 @@ (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1901,6 +2226,9 @@ (PID.TID 0000.0001) SHELFICEdragQuadratic = /* quadratic drag coefficient */ (PID.TID 0000.0001) 2.500000000000000E-03 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEselectDragQuadr = /* select quadratic drag option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICElatentHeat = /* latent heat of ice */ (PID.TID 0000.0001) 3.340000000000000E+05 (PID.TID 0000.0001) ; @@ -1925,6 +2253,9 @@ (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' (PID.TID 0000.0001) ; @@ -1937,9 +2268,32 @@ (PID.TID 0000.0001) SHELFICEMassDynTendFile = /* file name of loaded dynamic mass tendency field */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICE_CHECK: end of SHELFICE config. summary -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -2002,6 +2356,9 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391243316095E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3889924168882E-02 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3297324617654E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4012427019763E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3691067728586E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2064619248418E-03 @@ -2022,20 +2379,20 @@ (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 -(PID.TID 0000.0001) cg2d_init_res = 5.92331127616910E+00 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 +(PID.TID 0000.0001) cg2d_init_res = 5.92331127616905E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 -(PID.TID 0000.0001) cg2d_last_res = 8.67906716520419E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.67906716519740E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8641 (PID.TID 0000.0001) %MON time_secondsf = 1.5553800000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1277835806489E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3100274749332E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8003601333175E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.7652378576615E-04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2685609362194E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1277835806491E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3100274749337E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8005304922500E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.7652378576613E-04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2685609362196E-06 (PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9546551411593E-03 (PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2109505261735E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5153644200267E-05 @@ -2043,24 +2400,27 @@ (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6836980058922E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9571337511667E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257547772188E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6557943794560E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6557943794559E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7773783645128E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9154622171643E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6556690295145E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6556690295146E-05 (PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002081992161E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8663726072453E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8663726072455E-09 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1001516809161E-06 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8108872745437E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8769133060334E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0038668659263E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143337505376E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1201407868665E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2898811791733E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4409203480480E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4118362728257E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391226216178E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3966987929347E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3651956269289E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8769133078105E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0039170483374E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143346374300E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1203876894523E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2899797156104E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4409203479774E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4118342781043E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391225863727E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3968315690282E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3656632521867E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6031116769173E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4320521681269E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2012491952965E-03 (PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6031112195961E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4067301921369E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2012491952965E-03 @@ -2075,240 +2435,252 @@ (PID.TID 0000.0001) %MON vort_a_sd = 1.7877722076025E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5023174955087E-04 (PID.TID 0000.0001) %MON vort_p_sd = 7.5268862837488E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3310004164346E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5796321230338E-09 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3795415520348E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5798250255070E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.20257187225570E-13 5.85500596196888E-02 -(PID.TID 0000.0001) cg2d_init_res = 8.59412035077465E-02 + cg2d: Sum(rhs),rhsMax = 7.16648962395539E-13 5.85496465663847E-02 +(PID.TID 0000.0001) cg2d_init_res = 8.59111303183634E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 -(PID.TID 0000.0001) cg2d_last_res = 8.07476525131579E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.08254943133285E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8642 (PID.TID 0000.0001) %MON time_secondsf = 1.5555600000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1444344837741E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.5279353454100E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8010415690477E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0075451324610E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2964566726372E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9392188976682E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2353186046323E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5626047925147E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1759238882306E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8727987442725E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9897178598895E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257653642368E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.2161520641487E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7838055597156E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9142743337534E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6589974980720E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002518492725E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.1432807497484E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0323520204966E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7561295232458E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8819015396484E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0062707749017E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143606310198E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1275675662831E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2681843436553E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4407234498440E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4117582500383E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391215533740E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4014865983080E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3886282617743E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6756169867575E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4594849399584E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2015110956348E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2015110956348E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -3.3215822266798E-07 -(PID.TID 0000.0001) %MON ke_max = 7.8679243236536E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5068685509789E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1444347061339E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.5279903629190E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8005304922500E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0075473199437E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2962087008297E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9392190305905E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2353247491259E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5626085276856E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1759264509174E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8727949457816E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9897324543301E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257661604966E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.2153301998917E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7838072160309E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9142744493989E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6590095044218E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002519953691E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.1427444539332E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0323521712409E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7561289997132E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8819015258110E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0063519186914E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143620651637E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1279691371733E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2685972410162E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4407234505023E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4117550255802E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391214963811E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4017014907623E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3894599443724E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6756357358588E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4850391462138E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2015119722147E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6756352693326E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4595085688395E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2015119722147E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2015119722147E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -3.3216636248399E-07 +(PID.TID 0000.0001) %MON ke_max = 7.8679582253380E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5068760539155E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3607307461050E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.3430798495738E-06 +(PID.TID 0000.0001) %MON vort_r_min = -2.3607307474999E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3430910568986E-06 (PID.TID 0000.0001) %MON vort_a_mean = -1.4007161342161E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7878698300682E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7878698418439E-06 (PID.TID 0000.0001) %MON vort_p_mean = -1.5023175000272E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5270532362634E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.4649727939809E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6225850462487E-09 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270531970131E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.5239040783031E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6227395444120E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.18466952598362E-13 5.84749085735277E-02 -(PID.TID 0000.0001) cg2d_init_res = 4.20568128943269E-02 + cg2d: Sum(rhs),rhsMax = 7.17509385239623E-13 5.84742692598000E-02 +(PID.TID 0000.0001) cg2d_init_res = 4.20705751380684E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 -(PID.TID 0000.0001) cg2d_last_res = 8.43168448032292E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.43211341087682E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8643 (PID.TID 0000.0001) %MON time_secondsf = 1.5557400000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1518038849151E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6575588637041E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8006156717163E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0185186842100E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2839119870540E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9300566149912E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2571744059424E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7298388873650E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1854483399898E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0074351180994E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0246212897488E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3256668335786E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1086254150738E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7902296430650E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136506303344E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6996733481602E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010410290320E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.8808845362255E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0040892223218E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7348383337380E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8848515086049E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0086671969660E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143874266485E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1350376221473E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2530831691248E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4406075169054E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4116803652969E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391204884996E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4062666800118E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4132267724483E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7406476227842E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5159947452745E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2062461741922E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2062461741922E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -2.8820516490694E-07 -(PID.TID 0000.0001) %MON ke_max = 7.9918086632286E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5356486725388E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1518063590644E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6576629226202E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8001471846518E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0185251281130E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2835150782880E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9300574349752E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2571954383632E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7298497542786E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1854574710910E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0074335062104E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0246554813881E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3256692343456E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1084262111608E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7902340445113E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9136508098835E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6997077741651E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010413018272E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.8797825324190E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0040909975159E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7348380190347E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8848514761924E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0087791949255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143894063333E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1355951139623E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2540036405026E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4406075185305E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4116759154186E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391204098271E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4065635853401E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4144741710364E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7407106782862E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5418041549376E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2062478109634E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7407102035004E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5160501026675E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2062478109634E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2062478109634E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.8822716199844E-07 +(PID.TID 0000.0001) %MON ke_max = 7.9918944119356E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5356713938549E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3686648840268E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.3834532703483E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161343276E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879399745068E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175015497E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5270090986035E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.1965964545052E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6687075097655E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3686647613892E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3834832930877E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161343275E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879400104663E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175015495E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270089635331E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.2824687997661E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6688555770363E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.22352733184550E-13 5.84593887972405E-02 -(PID.TID 0000.0001) cg2d_init_res = 3.97098396433517E-02 + cg2d: Sum(rhs),rhsMax = 7.17453874088392E-13 5.84584944375988E-02 +(PID.TID 0000.0001) cg2d_init_res = 3.97094696589935E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 198 -(PID.TID 0000.0001) cg2d_last_res = 8.69319313463829E-14 +(PID.TID 0000.0001) cg2d_last_res = 8.68919478572202E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8644 (PID.TID 0000.0001) %MON time_secondsf = 1.5559200000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1489090444037E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6780134320344E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8006582614495E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0153844543601E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2844944442159E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9284720950674E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2765298185864E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8820859329214E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1973262313189E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0706865103663E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0589807705781E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3266659559089E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3016599187231E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7961249404787E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9137793214496E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7435422160416E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2025046870926E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.3986039136471E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0053840376630E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7333907571541E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8867166944912E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0110519841196E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144140883781E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1425344667629E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2441990249511E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4405346944237E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4116030548406E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391194290364E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4110274976452E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4392478553513E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7982385011479E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5716238791522E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2150281225557E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2150281225557E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -2.3629769840222E-07 -(PID.TID 0000.0001) %MON ke_max = 8.1242253089448E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5658488659391E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1489146196776E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6781481976643E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8007434409157E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0153944547008E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2839497428965E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9284740181437E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2765766563688E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8821035879231E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1973471025457E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0706949713995E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0590380663965E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3266698690942E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3013324100920E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7961330565041E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9137796555191E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7436061361178E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2025050785789E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.3969768830048E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0053897679936E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7333913000282E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8867166365629E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0111946843517E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144166108884E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1432487989401E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2458130998719E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4405346974293E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4115973862429E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391193287919E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4114061546038E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4409593953277E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7983594556663E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5985674897674E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2150304714735E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7983778641820E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5717166429738E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2150304714735E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2150304714735E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.3633764435774E-07 +(PID.TID 0000.0001) %MON ke_max = 8.1243787394905E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5658957353031E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3718987803215E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.4162738312887E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161358444E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879756449707E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175040154E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5269795425822E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.7110197779470E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5141227385528E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3718984429116E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4163288239231E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161358440E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879757193940E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175040146E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5269792378452E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.8118513749284E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5142261691635E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.21186999008694E-13 5.84078226951239E-02 -(PID.TID 0000.0001) cg2d_init_res = 3.94399120689485E-02 + cg2d: Sum(rhs),rhsMax = 7.15982828580763E-13 5.84066473697880E-02 +(PID.TID 0000.0001) cg2d_init_res = 3.94395942053095E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 196 -(PID.TID 0000.0001) cg2d_last_res = 9.09030168236055E-14 +(PID.TID 0000.0001) cg2d_last_res = 9.09412469848881E-14 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8645 (PID.TID 0000.0001) %MON time_secondsf = 1.5561000000000E+07 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1390857184015E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6369687239170E-03 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7997212873204E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0051959017873E-03 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2863420452730E-06 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9343204326828E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2933010588920E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9658107459705E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2107595194750E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0621344447089E-06 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0930978823214E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3283013063969E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3586940450293E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8012730874203E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9146986840915E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7909900309127E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2044613239555E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1450057929330E-09 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0313044775615E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7489860042071E-08 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8880271608467E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0134305020256E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144406170095E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1500562948612E-02 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2413339777382E-06 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4404839058217E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4115263147603E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391183749203E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4157690056527E-02 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4666791953375E-06 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8481403285187E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6268606094775E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2267679437327E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2267679437327E-03 -(PID.TID 0000.0001) %MON pe_b_mean = -1.8660641476885E-07 -(PID.TID 0000.0001) %MON ke_max = 8.2584526207309E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.5959632062983E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1390949934915E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6371203039764E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8006582614495E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0052082808477E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2856515149267E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9343236908540E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2933856118203E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9658315376312E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2107982436137E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0621657433232E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0931803591055E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3283068142270E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3582498246636E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8012855741023E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9146992580102E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7910886092043E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2044618300127E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1429793765620E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0313206611228E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7489920606988E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8880270703506E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0136036168217E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144436796459E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1509283415109E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2438222284776E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4404839106349E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4115194341368E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391182532113E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4162291513500E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4688988787974E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.8483428303288E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6543172406848E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2267709800761E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8483919107246E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6269941421140E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2267709800761E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2267709800761E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -1.8666734960109E-07 +(PID.TID 0000.0001) %MON ke_max = 8.2586852442004E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5960436495989E-06 (PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 -(PID.TID 0000.0001) %MON vort_r_min = -2.3691793645898E-06 -(PID.TID 0000.0001) %MON vort_r_max = 4.4409183398689E-06 -(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161400105E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 1.7879789461878E-06 -(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175090824E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 7.5269638361221E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.7191348925279E-11 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2273402456578E-09 +(PID.TID 0000.0001) %MON vort_r_min = -2.3691787051022E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4410025982850E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161400090E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879790744671E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023175090802E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5269632797325E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.8187031086858E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2273600136941E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2329,30 +2701,30 @@ --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546656443069D+05 - --> objf_test(bi,bj) = 0.280893302037955D+05 - --> objf_test(bi,bj) = 0.489402099931280D+05 - --> objf_test(bi,bj) = 0.505716161806380D+05 - --> objf_test(bi,bj) = 0.526375376126007D+05 - --> objf_test(bi,bj) = 0.548290653564639D+05 - --> objf_test(bi,bj) = 0.526356633178787D+05 - --> objf_test(bi,bj) = 0.548288161782838D+05 - local fc = 0.369786904487095D+06 - global fc = 0.369786904487095D+06 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083323276D+05 + --> objf_test(bi,bj) = 0.280897915090229D+05 + --> objf_test(bi,bj) = 0.489404244421775D+05 + --> objf_test(bi,bj) = 0.505718412854599D+05 + --> objf_test(bi,bj) = 0.526377153936552D+05 + --> objf_test(bi,bj) = 0.548292505446847D+05 + --> objf_test(bi,bj) = 0.526358410984877D+05 + --> objf_test(bi,bj) = 0.548290013665179D+05 +(PID.TID 0000.0001) local fc = 0.369788973972333D+06 +(PID.TID 0000.0001) global fc = 0.369788973972333D+06 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.20257187225570E-13 5.85500596196888E-02 - cg2d: Sum(rhs),rhsMax = 7.18466952598362E-13 5.84749085735277E-02 - cg2d: Sum(rhs),rhsMax = 7.22352733184550E-13 5.84593887972405E-02 - cg2d: Sum(rhs),rhsMax = 7.21186999008694E-13 5.84078226951239E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.16648962395539E-13 5.85496465663847E-02 + cg2d: Sum(rhs),rhsMax = 7.17509385239623E-13 5.84742692598000E-02 + cg2d: Sum(rhs),rhsMax = 7.17453874088392E-13 5.84584944375988E-02 + cg2d: Sum(rhs),rhsMax = 7.15982828580763E-13 5.84066473697880E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 7.21186999008694E-13 5.84078226951239E-02 + cg2d: Sum(rhs),rhsMax = 7.15982828580763E-13 5.84066473697880E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 7.21186999008694E-13 5.84078226951239E-02 + cg2d: Sum(rhs),rhsMax = 7.15982828580763E-13 5.84066473697880E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8645 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5561000000000E+07 @@ -2376,186 +2748,191 @@ (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -3.7760543216935E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0268610040513E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8288812340189E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.3001125897224E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9058282389643E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -3.7760541407012E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.0272072336434E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8288873592918E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.3018566830219E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9058371040067E-03 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.86437540353290E-14 4.56492653159274E-05 - cg2d: Sum(rhs),rhsMax = 7.18466952598362E-13 5.84749085735277E-02 - cg2d: Sum(rhs),rhsMax = 7.22352733184550E-13 5.84593887972405E-02 - cg2d: Sum(rhs),rhsMax = 7.22352733184550E-13 5.84593887972405E-02 + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -2.75335310107039E-14 4.62721459827806E-05 + cg2d: Sum(rhs),rhsMax = 7.17509385239623E-13 5.84742692598000E-02 + cg2d: Sum(rhs),rhsMax = 7.17453874088392E-13 5.84584944375988E-02 + cg2d: Sum(rhs),rhsMax = 7.17453874088392E-13 5.84584944375988E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8644 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5559200000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0738517909838E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.6652059011262E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.8281250197936E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.9223734519361E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.9521780069882E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4194360849956E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.9555479461823E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.3702214971874E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.9425665549819E-06 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.4314484940914E-08 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.1325979177385E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.1447594232092E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.6966746316328E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.7068687783416E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.6974781487747E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.7307940082200E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.5582316390677E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -9.2434773219351E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.6386914534751E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.9114779476931E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -8.8182961986120E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0476847143527E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8266779586664E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.9798583977167E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9051568348134E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.8476372679870E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.6527717997479E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.2992063490854E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.3894092671431E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0761010929093E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.37390099297363E-15 5.86821949807381E-04 - cg2d: Sum(rhs),rhsMax = 7.18466952598362E-13 5.84749085735277E-02 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0757702376093E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.6716845779352E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.8472835773930E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.9280608123447E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.9615825999716E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.4212243132918E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.0618281620082E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.3852962883655E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.9663569100064E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.4906565619306E-08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.1380147172477E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.1540825692342E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.7080549206369E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.7160440950315E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.7314214039016E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.8119748116749E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.6188294305409E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -9.3079470222674E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.7329883257581E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.9765251461966E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -8.8183894969263E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.0477595011000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8266839738802E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.9813436818202E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9051654787983E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.8498555818547E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.6682012682589E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 1.2991953376072E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.3900766211398E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0764872541570E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -2.37310171513627E-15 5.88923982641201E-04 + cg2d: Sum(rhs),rhsMax = 7.17509385239623E-13 5.84742692598000E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8643 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5557400000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.0781312967994E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.0676190211714E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1013466768599E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.5921227722971E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.4887555930806E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3876258882409E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0114493295748E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.1080130526878E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.6789669801588E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3884103355386E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.3322697043367E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.8898683838224E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.4793181208388E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.6120671912136E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.2104473749375E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.2644948274256E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.8985130663285E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.4228399106221E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.9252037518240E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.5290173783305E-08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -7.0957683935361E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.9256552560539E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8253178578480E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.7049781599314E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9032296650332E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.1926383992872E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -4.7236548656813E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.0738150195574E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.7160710075579E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.7280312232103E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.59514632006130E-15 1.10122533028111E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.0823606067402E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -3.0781253596369E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.1045950703518E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.6024927729277E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.5055862316164E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.3898217893177E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.0264606748734E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -1.1108647135531E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.6996736025624E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3943567668107E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.3369470128235E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.9028796746100E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 5.4932199064136E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.6207318745897E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.2515995534424E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.3498435102857E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.9570387627073E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.4264561210803E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 9.9988446935844E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.5960340251173E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -7.0958316975278E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -5.9257111949248E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8253238055426E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.7063105398051E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9032381428455E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 6.1957631952899E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -4.7478620725160E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.0737130962556E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.7171599090074E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.7285767284354E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -1.34614541735800E-15 1.10480467341117E-03 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.20257187225570E-13 5.85500596196888E-02 - cg2d: Sum(rhs),rhsMax = 7.20257187225570E-13 5.85500596196888E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.16648962395539E-13 5.85496465663847E-02 + cg2d: Sum(rhs),rhsMax = 7.16648962395539E-13 5.85496465663847E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8642 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5555600000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.8760641854349E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.3043496461301E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -3.4280765540513E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.9828529976017E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.5741663504944E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.8938647645987E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1945427366984E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -2.7405467617353E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1170885127194E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.3022201329956E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.2596984692347E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.2936588844393E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.8566851400558E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.8766375579038E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 7.7599262886164E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.1488981041442E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.3040605528277E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.8609531713084E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7899792210574E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1736504760879E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.5137162699069E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9600348401234E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8241325161905E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.1042353621796E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9052533328762E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 8.5601603132126E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.0051446006182E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.8437170749006E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.2035433432687E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3827573120009E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.46944695195361E-17 1.56646048908854E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.8821322203919E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.3183717756522E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -3.4378089692250E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.9970365501380E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.5967772010092E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.9003862927024E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.2120646291939E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -2.7475833607992E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1215096612193E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.3123301567084E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.2636017419142E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.3076343543065E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 4.8697123384107E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.8832001443198E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 7.7982128241427E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.2404995447321E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.3704298265276E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.8663662988475E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.7978550521878E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1826305210692E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.5137699546262E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9601464673598E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8241384003114E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.1053163624466E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9052618437351E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 8.5645020850361E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.0239275170923E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.8435316389169E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.2036962332794E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3835583559174E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = 9.08995101411847E-16 1.57148000611926E-03 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8641 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5553800000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.2526822228294E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.0640743415638E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -6.7661457043751E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.8203514735251E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.8064621526196E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.2632753700975E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3877469652331E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.2740012055472E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.5608324071660E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.1463639972864E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0666219519076E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.3785728956055E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.0146725318526E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.7203027920924E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 5.9882423197891E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.8818132375110E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.4559816194081E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.3919086163122E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.8682235958849E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.7514027789393E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.3789895663041E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9466606333725E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8228418580386E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.9929620511675E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9047653438982E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0918265000290E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.1458443645312E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.6141587090520E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5326335709060E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0326323083969E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics -(PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 5.55111512312578E-17 1.86594401665968E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.2592550191080E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.0800797778428E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -6.7856469506988E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.8365423008833E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.8319020155050E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 3.2750051706416E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3886023225235E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -4.2855875309143E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.5670193768153E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 5.1615070841693E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0688166102400E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.3904999641782E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.0231900841527E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.7245547173480E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.0155937583204E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.9101214264415E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.5110509984913E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4000153204213E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.8777939276370E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.7622164476612E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.3790407176228E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9468852315771E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8228476785412E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.9938741348084E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9047738702300E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0923888655590E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -9.1672291585632E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 3.6139141077338E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5328283598727E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0336541215390E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = 4.07660016854550E-16 1.87169407232721E-03 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2577,47 +2954,67 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 243 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 8640 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.5552000000000E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.1038699600251E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.2188033350824E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.0574514926113E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.0001619713213E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.0507130881763E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.3393511286203E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.6409208437274E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -5.1504740513899E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.7619525686823E-04 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.1799369586475E-07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.3359797609752E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.2405785317320E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.7069168867351E-05 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.3982171133290E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1463539157896E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.2237237402274E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.7946335322985E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -5.6538389816427E-06 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.0136901042093E-05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.4565738702302E-07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.3175923979667E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9245042619876E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8219810766669E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.3152830326198E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9157461252892E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3244672847100E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1244058245962E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 4.3895786284374E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.8604112893616E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.6703659953021E-06 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.1097959492797E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.2347577980652E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.0605565148848E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.0164109432612E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 9.0759340338767E-05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.3564801521957E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.6409412971250E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -5.1651336981992E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.7683656981537E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.1983703337596E-07 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 8.3465337905997E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.2472514069838E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.7246039473128E-05 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.4010846983200E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1543297637679E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.2585893032951E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.8237662333340E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -5.6634010533848E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.0257106422851E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.4699709897317E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = -6.3176423530752E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.9248845897069E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.8219868519834E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.3160318843024E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9157557033334E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3251727946021E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1258379503372E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 4.3892978107109E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.8606447895970E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.6715460445695E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaH ", # 11 in fldList, rec= 243 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69786904487095E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69788973972333E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -2672,11 +3069,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02715663436493E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.16149362034457E-13 5.85500590182033E-02 - cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84749082070475E-02 - cg2d: Sum(rhs),rhsMax = 7.15760783975838E-13 5.84593889670029E-02 - cg2d: Sum(rhs),rhsMax = 7.18036741176320E-13 5.84078231059011E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.15774661763646E-13 5.85496459646413E-02 + cg2d: Sum(rhs),rhsMax = 7.18231030205629E-13 5.84742688930692E-02 + cg2d: Sum(rhs),rhsMax = 7.21200876796502E-13 5.84584946077591E-02 + cg2d: Sum(rhs),rhsMax = 7.18688997203287E-13 5.84066477809896E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2694,18 +3091,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546274714097D+05 - --> objf_test(bi,bj) = 0.280893302038025D+05 - --> objf_test(bi,bj) = 0.489402099930339D+05 - --> objf_test(bi,bj) = 0.505716161806394D+05 - --> objf_test(bi,bj) = 0.526375376126027D+05 - --> objf_test(bi,bj) = 0.548290653564666D+05 - --> objf_test(bi,bj) = 0.526356633178863D+05 - --> objf_test(bi,bj) = 0.548288161782902D+05 - local fc = 0.369786866314131D+06 - global fc = 0.369786866314131D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69786866314131E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550701594297D+05 + --> objf_test(bi,bj) = 0.280897915090298D+05 + --> objf_test(bi,bj) = 0.489404244420835D+05 + --> objf_test(bi,bj) = 0.505718412854612D+05 + --> objf_test(bi,bj) = 0.526377153936569D+05 + --> objf_test(bi,bj) = 0.548292505446872D+05 + --> objf_test(bi,bj) = 0.526358410984951D+05 + --> objf_test(bi,bj) = 0.548290013665245D+05 +(PID.TID 0000.0001) local fc = 0.369788935799368D+06 +(PID.TID 0000.0001) global fc = 0.369788935799368D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935799368E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2731,11 +3128,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02715663436493E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.14872605556138E-13 5.85500602197913E-02 - cg2d: Sum(rhs),rhsMax = 7.19382886593678E-13 5.84749089389718E-02 - cg2d: Sum(rhs),rhsMax = 7.18203274630014E-13 5.84593886279385E-02 - cg2d: Sum(rhs),rhsMax = 7.19022064110675E-13 5.84078222848960E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17384485149353E-13 5.85496471662209E-02 + cg2d: Sum(rhs),rhsMax = 7.19299619866831E-13 5.84742696252987E-02 + cg2d: Sum(rhs),rhsMax = 7.18120007903167E-13 5.84584942681483E-02 + cg2d: Sum(rhs),rhsMax = 7.14275860680402E-13 5.84066469597945E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2753,24 +3150,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272547039959616D+05 - --> objf_test(bi,bj) = 0.280893302037885D+05 - --> objf_test(bi,bj) = 0.489402099932246D+05 - --> objf_test(bi,bj) = 0.505716161806366D+05 - --> objf_test(bi,bj) = 0.526375376125992D+05 - --> objf_test(bi,bj) = 0.548290653564612D+05 - --> objf_test(bi,bj) = 0.526356633178713D+05 - --> objf_test(bi,bj) = 0.548288161782774D+05 - local fc = 0.369786942838820D+06 - global fc = 0.369786942838820D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69786942838820E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551466839832D+05 + --> objf_test(bi,bj) = 0.280897915090159D+05 + --> objf_test(bi,bj) = 0.489404244422738D+05 + --> objf_test(bi,bj) = 0.505718412854585D+05 + --> objf_test(bi,bj) = 0.526377153936532D+05 + --> objf_test(bi,bj) = 0.548292505446819D+05 + --> objf_test(bi,bj) = 0.526358410984801D+05 + --> objf_test(bi,bj) = 0.548290013665115D+05 +(PID.TID 0000.0001) local fc = 0.369789012324058D+06 +(PID.TID 0000.0001) global fc = 0.369789012324058D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789012324058E+05 grad-res ------------------------------- - grad-res 0 1 20 24 20 1 1 1 3.69786904487E+05 3.69786866314E+05 3.69786942839E+05 - grad-res 0 1 1 1579 0 1 1 1 -3.82623446135E+00 -3.82623446058E+00 2.03626449036E-10 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69786904487095E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82623446135463E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82623446057551E+00 + grad-res 0 1 20 24 20 1 1 1 3.69788973972E+05 3.69788935799E+05 3.69789012324E+05 + grad-res 0 1 1 1579 0 1 1 1 -3.82623450899E+00 -3.82623451296E+00 -1.03930641870E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973972333E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82623450898577E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82623451296240E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1580 100450 2 @@ -2802,11 +3199,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.17703674268932E-13 5.85500590523593E-02 - cg2d: Sum(rhs),rhsMax = 7.18078374539743E-13 5.84749081876892E-02 - cg2d: Sum(rhs),rhsMax = 7.19271864291215E-13 5.84593888946360E-02 - cg2d: Sum(rhs),rhsMax = 7.18550219325209E-13 5.84078230098170E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.18092252327551E-13 5.85496459988056E-02 + cg2d: Sum(rhs),rhsMax = 7.17342851785929E-13 5.84742688739000E-02 + cg2d: Sum(rhs),rhsMax = 7.18591852688633E-13 5.84584945354141E-02 + cg2d: Sum(rhs),rhsMax = 7.16815495849232E-13 5.84066476845785E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2824,18 +3221,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546274768193D+05 - --> objf_test(bi,bj) = 0.280893302038021D+05 - --> objf_test(bi,bj) = 0.489402099930339D+05 - --> objf_test(bi,bj) = 0.505716161806401D+05 - --> objf_test(bi,bj) = 0.526375376126027D+05 - --> objf_test(bi,bj) = 0.548290653564666D+05 - --> objf_test(bi,bj) = 0.526356633178862D+05 - --> objf_test(bi,bj) = 0.548288161782901D+05 - local fc = 0.369786866319541D+06 - global fc = 0.369786866319541D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69786866319541E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550701648395D+05 + --> objf_test(bi,bj) = 0.280897915090294D+05 + --> objf_test(bi,bj) = 0.489404244420833D+05 + --> objf_test(bi,bj) = 0.505718412854619D+05 + --> objf_test(bi,bj) = 0.526377153936569D+05 + --> objf_test(bi,bj) = 0.548292505446872D+05 + --> objf_test(bi,bj) = 0.526358410984950D+05 + --> objf_test(bi,bj) = 0.548290013665244D+05 +(PID.TID 0000.0001) local fc = 0.369788935804778D+06 +(PID.TID 0000.0001) global fc = 0.369788935804778D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935804778E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2861,11 +3258,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.14692194314637E-13 5.85500601858231E-02 - cg2d: Sum(rhs),rhsMax = 7.16496306729653E-13 5.84749089582036E-02 - cg2d: Sum(rhs),rhsMax = 7.18147763478783E-13 5.84593886999542E-02 - cg2d: Sum(rhs),rhsMax = 7.19105330837522E-13 5.84078223812559E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.18619608264248E-13 5.85496471321827E-02 + cg2d: Sum(rhs),rhsMax = 7.13540337926588E-13 5.84742696446188E-02 + cg2d: Sum(rhs),rhsMax = 7.16815495849232E-13 5.84584943401370E-02 + cg2d: Sum(rhs),rhsMax = 7.18120007903167E-13 5.84066470557961E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2883,24 +3280,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272547039905522D+05 - --> objf_test(bi,bj) = 0.280893302037890D+05 - --> objf_test(bi,bj) = 0.489402099932248D+05 - --> objf_test(bi,bj) = 0.505716161806359D+05 - --> objf_test(bi,bj) = 0.526375376125992D+05 - --> objf_test(bi,bj) = 0.548290653564613D+05 - --> objf_test(bi,bj) = 0.526356633178714D+05 - --> objf_test(bi,bj) = 0.548288161782774D+05 - local fc = 0.369786942833411D+06 - global fc = 0.369786942833411D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69786942833411E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551466785736D+05 + --> objf_test(bi,bj) = 0.280897915090162D+05 + --> objf_test(bi,bj) = 0.489404244422740D+05 + --> objf_test(bi,bj) = 0.505718412854578D+05 + --> objf_test(bi,bj) = 0.526377153936531D+05 + --> objf_test(bi,bj) = 0.548292505446820D+05 + --> objf_test(bi,bj) = 0.526358410984802D+05 + --> objf_test(bi,bj) = 0.548290013665116D+05 +(PID.TID 0000.0001) local fc = 0.369789012318649D+06 +(PID.TID 0000.0001) global fc = 0.369789012318649D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789012318649E+05 grad-res ------------------------------- - grad-res 0 2 21 24 20 1 1 1 3.69786904487E+05 3.69786866320E+05 3.69786942833E+05 - grad-res 0 2 2 1580 0 1 1 1 -3.82569349209E+00 -3.82569351932E+00 -7.11710290702E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69786904487095E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82569349209248E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82569351932034E+00 + grad-res 0 2 21 24 20 1 1 1 3.69788973972E+05 3.69788935805E+05 3.69789012319E+05 + grad-res 0 2 2 1580 0 1 1 1 -3.82569353963E+00 -3.82569354551E+00 -1.53816892556E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973972333E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82569353962922E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82569354551379E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1581 100450 3 @@ -2932,11 +3329,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02771174587724E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.16024461944187E-13 5.85500590852479E-02 - cg2d: Sum(rhs),rhsMax = 7.16912640363887E-13 5.84749081723318E-02 - cg2d: Sum(rhs),rhsMax = 7.17953474449473E-13 5.84593888296343E-02 - cg2d: Sum(rhs),rhsMax = 7.16288139912535E-13 5.84078229226141E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17620407542086E-13 5.85496460319280E-02 + cg2d: Sum(rhs),rhsMax = 7.15497106007490E-13 5.84742688587027E-02 + cg2d: Sum(rhs),rhsMax = 7.14886483343946E-13 5.84584944704060E-02 + cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84066475974911E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2954,18 +3351,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546274804020D+05 - --> objf_test(bi,bj) = 0.280893302037912D+05 - --> objf_test(bi,bj) = 0.489402099930283D+05 - --> objf_test(bi,bj) = 0.505716161806409D+05 - --> objf_test(bi,bj) = 0.526375376126028D+05 - --> objf_test(bi,bj) = 0.548290653564665D+05 - --> objf_test(bi,bj) = 0.526356633178861D+05 - --> objf_test(bi,bj) = 0.548288161782900D+05 - local fc = 0.369786866323108D+06 - global fc = 0.369786866323108D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69786866323108E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550701684222D+05 + --> objf_test(bi,bj) = 0.280897915090185D+05 + --> objf_test(bi,bj) = 0.489404244420778D+05 + --> objf_test(bi,bj) = 0.505718412854626D+05 + --> objf_test(bi,bj) = 0.526377153936570D+05 + --> objf_test(bi,bj) = 0.548292505446871D+05 + --> objf_test(bi,bj) = 0.526358410984950D+05 + --> objf_test(bi,bj) = 0.548290013665243D+05 +(PID.TID 0000.0001) local fc = 0.369788935808345D+06 +(PID.TID 0000.0001) global fc = 0.369788935808345D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935808345E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2991,11 +3388,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.17051418241965E-13 5.85500601529414E-02 - cg2d: Sum(rhs),rhsMax = 7.17703674268932E-13 5.84749089735011E-02 - cg2d: Sum(rhs),rhsMax = 7.15691395036799E-13 5.84593887647253E-02 - cg2d: Sum(rhs),rhsMax = 7.16121606458842E-13 5.84078224683015E-02 + cg2d: Sum(rhs),rhsMax = 7.02590763346223E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17273462846890E-13 5.85496470992869E-02 + cg2d: Sum(rhs),rhsMax = 7.16829373637040E-13 5.84742696596833E-02 + cg2d: Sum(rhs),rhsMax = 7.17592651966470E-13 5.84584944050053E-02 + cg2d: Sum(rhs),rhsMax = 7.20895565464730E-13 5.84066471428513E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3013,24 +3410,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272547039869694D+05 - --> objf_test(bi,bj) = 0.280893302037999D+05 - --> objf_test(bi,bj) = 0.489402099932303D+05 - --> objf_test(bi,bj) = 0.505716161806352D+05 - --> objf_test(bi,bj) = 0.526375376125991D+05 - --> objf_test(bi,bj) = 0.548290653564613D+05 - --> objf_test(bi,bj) = 0.526356633178715D+05 - --> objf_test(bi,bj) = 0.548288161782775D+05 - local fc = 0.369786942829844D+06 - global fc = 0.369786942829844D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69786942829844E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551466749908D+05 + --> objf_test(bi,bj) = 0.280897915090272D+05 + --> objf_test(bi,bj) = 0.489404244422795D+05 + --> objf_test(bi,bj) = 0.505718412854570D+05 + --> objf_test(bi,bj) = 0.526377153936531D+05 + --> objf_test(bi,bj) = 0.548292505446821D+05 + --> objf_test(bi,bj) = 0.526358410984803D+05 + --> objf_test(bi,bj) = 0.548290013665117D+05 +(PID.TID 0000.0001) local fc = 0.369789012315082D+06 +(PID.TID 0000.0001) global fc = 0.369789012315082D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789012315082E+05 grad-res ------------------------------- - grad-res 0 3 22 24 20 1 1 1 3.69786904487E+05 3.69786866323E+05 3.69786942830E+05 - grad-res 0 3 3 1581 0 1 1 1 -3.82533681230E+00 -3.82533682277E+00 -2.73928368877E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69786904487095E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82533681229558E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82533682277426E+00 + grad-res 0 3 22 24 20 1 1 1 3.69788973972E+05 3.69788935808E+05 3.69789012315E+05 + grad-res 0 3 3 1581 0 1 1 1 -3.82533685974E+00 -3.82533685479E+00 1.29353794343E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973972333E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82533685973669E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82533685478847E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1582 100450 4 @@ -3062,11 +3459,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02826685738955E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.19604931198603E-13 5.85500591170160E-02 - cg2d: Sum(rhs),rhsMax = 7.18258785781245E-13 5.84749081607497E-02 - cg2d: Sum(rhs),rhsMax = 7.18536341537401E-13 5.84593887713471E-02 - cg2d: Sum(rhs),rhsMax = 7.19618808986411E-13 5.84078228435606E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.13817893682744E-13 5.85496460636034E-02 + cg2d: Sum(rhs),rhsMax = 7.17315096210314E-13 5.84742688471446E-02 + cg2d: Sum(rhs),rhsMax = 7.15857928490493E-13 5.84584944121165E-02 + cg2d: Sum(rhs),rhsMax = 7.17065296029773E-13 5.84066475186434E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3084,18 +3481,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546274827715D+05 - --> objf_test(bi,bj) = 0.280893302037422D+05 - --> objf_test(bi,bj) = 0.489402099930240D+05 - --> objf_test(bi,bj) = 0.505716161806381D+05 - --> objf_test(bi,bj) = 0.526375376126028D+05 - --> objf_test(bi,bj) = 0.548290653564664D+05 - --> objf_test(bi,bj) = 0.526356633178861D+05 - --> objf_test(bi,bj) = 0.548288161782899D+05 - local fc = 0.369786866325421D+06 - global fc = 0.369786866325421D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69786866325421E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550701707916D+05 + --> objf_test(bi,bj) = 0.280897915089696D+05 + --> objf_test(bi,bj) = 0.489404244420734D+05 + --> objf_test(bi,bj) = 0.505718412854599D+05 + --> objf_test(bi,bj) = 0.526377153936570D+05 + --> objf_test(bi,bj) = 0.548292505446871D+05 + --> objf_test(bi,bj) = 0.526358410984949D+05 + --> objf_test(bi,bj) = 0.548290013665242D+05 +(PID.TID 0000.0001) local fc = 0.369788935810658D+06 +(PID.TID 0000.0001) global fc = 0.369788935810658D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935810658E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -3121,11 +3518,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.16426917790614E-13 5.85500601213178E-02 - cg2d: Sum(rhs),rhsMax = 7.15746906188031E-13 5.84749089849580E-02 - cg2d: Sum(rhs),rhsMax = 7.20076775984069E-13 5.84593888225230E-02 - cg2d: Sum(rhs),rhsMax = 7.19396764381486E-13 5.84078225468224E-02 + cg2d: Sum(rhs),rhsMax = 7.02535252194991E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.14997505646409E-13 5.85496470676247E-02 + cg2d: Sum(rhs),rhsMax = 7.15816295127070E-13 5.84742696711788E-02 + cg2d: Sum(rhs),rhsMax = 7.19452275532717E-13 5.84584944628359E-02 + cg2d: Sum(rhs),rhsMax = 7.16759984698001E-13 5.84066472216247E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3143,24 +3540,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272547039846000D+05 - --> objf_test(bi,bj) = 0.280893302038487D+05 - --> objf_test(bi,bj) = 0.489402099932347D+05 - --> objf_test(bi,bj) = 0.505716161806379D+05 - --> objf_test(bi,bj) = 0.526375376125991D+05 - --> objf_test(bi,bj) = 0.548290653564614D+05 - --> objf_test(bi,bj) = 0.526356633178715D+05 - --> objf_test(bi,bj) = 0.548288161782775D+05 - local fc = 0.369786942827531D+06 - global fc = 0.369786942827531D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69786942827531E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551466726214D+05 + --> objf_test(bi,bj) = 0.280897915090759D+05 + --> objf_test(bi,bj) = 0.489404244422840D+05 + --> objf_test(bi,bj) = 0.505718412854598D+05 + --> objf_test(bi,bj) = 0.526377153936531D+05 + --> objf_test(bi,bj) = 0.548292505446821D+05 + --> objf_test(bi,bj) = 0.526358410984803D+05 + --> objf_test(bi,bj) = 0.548290013665118D+05 +(PID.TID 0000.0001) local fc = 0.369789012312768D+06 +(PID.TID 0000.0001) global fc = 0.369789012312768D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789012312768E+05 grad-res ------------------------------- - grad-res 0 4 23 24 20 1 1 1 3.69786904487E+05 3.69786866325E+05 3.69786942828E+05 - grad-res 0 4 4 1582 0 1 1 1 -3.82510548203E+00 -3.82510548807E+00 -1.57790291944E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69786904487095E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82510548203185E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82510548806749E+00 + grad-res 0 4 23 24 20 1 1 1 3.69788973972E+05 3.69788935811E+05 3.69789012313E+05 + grad-res 0 4 4 1582 0 1 1 1 -3.82510552937E+00 -3.82510553172E+00 -6.13938899718E-10 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973972333E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82510552937486E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82510553172324E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1583 100450 5 @@ -3192,11 +3589,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02660152285262E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.16426917790614E-13 5.85500591472619E-02 - cg2d: Sum(rhs),rhsMax = 7.17217951695659E-13 5.84749081523951E-02 - cg2d: Sum(rhs),rhsMax = 7.20701276435420E-13 5.84593887194648E-02 - cg2d: Sum(rhs),rhsMax = 7.15622006097760E-13 5.84078227723268E-02 + cg2d: Sum(rhs),rhsMax = 7.02479741043760E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.14872605556138E-13 5.85496460938314E-02 + cg2d: Sum(rhs),rhsMax = 7.16274262124728E-13 5.84742688388684E-02 + cg2d: Sum(rhs),rhsMax = 7.19008186322867E-13 5.84584943599757E-02 + cg2d: Sum(rhs),rhsMax = 7.20173920498723E-13 5.84066474473671E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3214,18 +3611,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272546274848404D+05 - --> objf_test(bi,bj) = 0.280893302032298D+05 - --> objf_test(bi,bj) = 0.489402099930538D+05 - --> objf_test(bi,bj) = 0.505716161806021D+05 - --> objf_test(bi,bj) = 0.526375376126029D+05 - --> objf_test(bi,bj) = 0.548290653564664D+05 - --> objf_test(bi,bj) = 0.526356633178860D+05 - --> objf_test(bi,bj) = 0.548288161782898D+05 - local fc = 0.369786866326971D+06 - global fc = 0.369786866326971D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69786866326971E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550701728594D+05 + --> objf_test(bi,bj) = 0.280897915084583D+05 + --> objf_test(bi,bj) = 0.489404244421031D+05 + --> objf_test(bi,bj) = 0.505718412854239D+05 + --> objf_test(bi,bj) = 0.526377153936571D+05 + --> objf_test(bi,bj) = 0.548292505446870D+05 + --> objf_test(bi,bj) = 0.526358410984949D+05 + --> objf_test(bi,bj) = 0.548290013665242D+05 +(PID.TID 0000.0001) local fc = 0.369788935812208D+06 +(PID.TID 0000.0001) global fc = 0.369788935812208D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935812208E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -3251,11 +3648,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02882196890187E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = 7.17939596661665E-13 5.85500600911966E-02 - cg2d: Sum(rhs),rhsMax = 7.15857928490493E-13 5.84749089930754E-02 - cg2d: Sum(rhs),rhsMax = 7.18008985600704E-13 5.84593888743485E-02 - cg2d: Sum(rhs),rhsMax = 7.19757586864489E-13 5.84078226177931E-02 + cg2d: Sum(rhs),rhsMax = 7.02701785648685E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 7.17981230025089E-13 5.85496470376313E-02 + cg2d: Sum(rhs),rhsMax = 7.16537940093076E-13 5.84742696794415E-02 + cg2d: Sum(rhs),rhsMax = 7.19577175622987E-13 5.84584945146535E-02 + cg2d: Sum(rhs),rhsMax = 7.22574777789475E-13 5.84066472926631E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -3273,24 +3670,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272547039825164D+05 - --> objf_test(bi,bj) = 0.280893302043760D+05 - --> objf_test(bi,bj) = 0.489402099932050D+05 - --> objf_test(bi,bj) = 0.505716161806738D+05 - --> objf_test(bi,bj) = 0.526375376125990D+05 - --> objf_test(bi,bj) = 0.548290653564615D+05 - --> objf_test(bi,bj) = 0.526356633178716D+05 - --> objf_test(bi,bj) = 0.548288161782776D+05 - local fc = 0.369786942825981D+06 - global fc = 0.369786942825981D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69786942825981E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551466705389D+05 + --> objf_test(bi,bj) = 0.280897915096021D+05 + --> objf_test(bi,bj) = 0.489404244422543D+05 + --> objf_test(bi,bj) = 0.505718412854956D+05 + --> objf_test(bi,bj) = 0.526377153936530D+05 + --> objf_test(bi,bj) = 0.548292505446822D+05 + --> objf_test(bi,bj) = 0.526358410984804D+05 + --> objf_test(bi,bj) = 0.548290013665119D+05 +(PID.TID 0000.0001) local fc = 0.369789012311218D+06 +(PID.TID 0000.0001) global fc = 0.369789012311218D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789012311218E+05 grad-res ------------------------------- - grad-res 0 5 24 24 20 1 1 1 3.69786904487E+05 3.69786866327E+05 3.69786942826E+05 - grad-res 0 5 5 1583 0 1 1 1 -3.82495048221E+00 -3.82495048398E+00 -4.63196148104E-10 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69786904487095E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82495048220516E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82495048397686E+00 + grad-res 0 5 24 24 20 1 1 1 3.69788973972E+05 3.69788935812E+05 3.69789012311E+05 + grad-res 0 5 5 1583 0 1 1 1 -3.82495052945E+00 -3.82495052181E+00 1.99570893145E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973972333E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82495052944533E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82495052181184E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -3304,191 +3701,197 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 20 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 3.6978690448710E+05 3.6978686631413E+05 3.6978694283882E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -3.8262344605755E+00 -3.8262344613546E+00 2.0362644903571E-10 +(PID.TID 0000.0001) grdchk output (c): 1 3.6978897397233E+05 3.6978893579937E+05 3.6978901232406E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -3.8262345129624E+00 -3.8262345089858E+00 -1.0393064187042E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 21 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 3.6978690448710E+05 3.6978686631954E+05 3.6978694283341E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -3.8256935193203E+00 -3.8256934920925E+00 -7.1171029070172E-09 +(PID.TID 0000.0001) grdchk output (c): 2 3.6978897397233E+05 3.6978893580478E+05 3.6978901231865E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -3.8256935455138E+00 -3.8256935396292E+00 -1.5381689255634E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 22 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 3.6978690448710E+05 3.6978686632311E+05 3.6978694282984E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -3.8253368227743E+00 -3.8253368122956E+00 -2.7392836887685E-09 +(PID.TID 0000.0001) grdchk output (c): 3 3.6978897397233E+05 3.6978893580834E+05 3.6978901231508E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -3.8253368547885E+00 -3.8253368597367E+00 1.2935379434253E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 23 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 3.6978690448710E+05 3.6978686632542E+05 3.6978694282753E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -3.8251054880675E+00 -3.8251054820318E+00 -1.5779029194363E-09 +(PID.TID 0000.0001) grdchk output (c): 4 3.6978897397233E+05 3.6978893581066E+05 3.6978901231277E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -3.8251055317232E+00 -3.8251055293749E+00 -6.1393889971839E-10 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 5 24 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 3.6978690448710E+05 3.6978686632697E+05 3.6978694282598E+05 -(PID.TID 0000.0001) grdchk output (g): 5 -3.8249504839769E+00 -3.8249504822052E+00 -4.6319614810386E-10 +(PID.TID 0000.0001) grdchk output (c): 5 3.6978897397233E+05 3.6978893581221E+05 3.6978901231122E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -3.8249505218118E+00 -3.8249505294453E+00 1.9957089314460E-09 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 3.4900607714524E-09 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 1.3768904820827E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 201.86000000000001 -(PID.TID 0000.0001) System time: 0.75000000000000000 -(PID.TID 0000.0001) Wall clock time: 224.94938898086548 +(PID.TID 0000.0001) User time: 119.52867259550840 +(PID.TID 0000.0001) System time: 2.6215330583509058 +(PID.TID 0000.0001) Wall clock time: 128.16951704025269 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.83999999999999997 -(PID.TID 0000.0001) System time: 0.12000000000000000 -(PID.TID 0000.0001) Wall clock time: 13.702385187149048 +(PID.TID 0000.0001) User time: 0.69314801134169102 +(PID.TID 0000.0001) System time: 0.21768900169990957 +(PID.TID 0000.0001) Wall clock time: 2.2215399742126465 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 83.459999999999994 -(PID.TID 0000.0001) System time: 0.54000000000000004 -(PID.TID 0000.0001) Wall clock time: 93.299449920654297 +(PID.TID 0000.0001) User time: 48.639746665954590 +(PID.TID 0000.0001) System time: 2.2643900513648987 +(PID.TID 0000.0001) Wall clock time: 55.611158132553101 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 130.82999999999998 -(PID.TID 0000.0001) System time: 8.99999999999998579E-002 -(PID.TID 0000.0001) Wall clock time: 136.70336699485779 +(PID.TID 0000.0001) User time: 77.462323904037476 +(PID.TID 0000.0001) System time: 0.14171791076660156 +(PID.TID 0000.0001) Wall clock time: 78.011217594146729 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.16000000000002501 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13725996017456055 +(PID.TID 0000.0001) User time: 8.3862781524658203E-002 +(PID.TID 0000.0001) System time: 2.2500753402709961E-004 +(PID.TID 0000.0001) Wall clock time: 8.4174394607543945E-002 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.67417526245117188E-003 +(PID.TID 0000.0001) User time: 3.1644344329833984E-002 +(PID.TID 0000.0001) System time: 9.0360641479492188E-005 +(PID.TID 0000.0001) Wall clock time: 3.1754970550537109E-002 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.73055648803710938E-004 +(PID.TID 0000.0001) User time: 6.6089630126953125E-004 +(PID.TID 0000.0001) System time: 9.7751617431640625E-006 +(PID.TID 0000.0001) Wall clock time: 5.9866905212402344E-004 (PID.TID 0000.0001) No. starts: 70 (PID.TID 0000.0001) No. stops: 70 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15374505519866943 +(PID.TID 0000.0001) System time: 2.7000904083251953E-005 +(PID.TID 0000.0001) Wall clock time: 0.15387654304504395 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.18999999999996930 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.16875267028808594 +(PID.TID 0000.0001) User time: 0.10575437545776367 +(PID.TID 0000.0001) System time: 1.7881393432617188E-005 +(PID.TID 0000.0001) Wall clock time: 0.10584402084350586 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1000000000000512 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 3.1322431564331055 +(PID.TID 0000.0001) User time: 1.7581686973571777 +(PID.TID 0000.0001) System time: 1.5389919281005859E-004 +(PID.TID 0000.0001) Wall clock time: 1.7585053443908691 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.37999999999996703 +(PID.TID 0000.0001) User time: 0.21377813816070557 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.38820910453796387 +(PID.TID 0000.0001) Wall clock time: 0.21383476257324219 (PID.TID 0000.0001) No. starts: 65 (PID.TID 0000.0001) No. stops: 65 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 49.369999999999919 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 49.511854648590088 +(PID.TID 0000.0001) User time: 29.628926396369934 +(PID.TID 0000.0001) System time: 8.6545944213867188E-003 +(PID.TID 0000.0001) Wall clock time: 29.638608694076538 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 27.479999999999905 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 27.540279150009155 +(PID.TID 0000.0001) User time: 16.661024808883667 +(PID.TID 0000.0001) System time: 5.4705142974853516E-004 +(PID.TID 0000.0001) Wall clock time: 16.664042472839355 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1800000000000921 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1712689399719238 +(PID.TID 0000.0001) User time: 0.90690183639526367 +(PID.TID 0000.0001) System time: 4.9948692321777344E-005 +(PID.TID 0000.0001) Wall clock time: 0.90707206726074219 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1499999999999773 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.1562860012054443 +(PID.TID 0000.0001) User time: 1.7946944236755371 +(PID.TID 0000.0001) System time: 2.0003318786621094E-004 +(PID.TID 0000.0001) Wall clock time: 1.7950875759124756 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999658939E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13512778282165527 +(PID.TID 0000.0001) User time: 7.7578783035278320E-002 +(PID.TID 0000.0001) System time: 1.7166137695312500E-005 +(PID.TID 0000.0001) Wall clock time: 7.7650547027587891E-002 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.5199999999999534 +(PID.TID 0000.0001) User time: 0.87428259849548340 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.4861099720001221 +(PID.TID 0000.0001) Wall clock time: 0.87455725669860840 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 33.660000000000025 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 33.731311082839966 +(PID.TID 0000.0001) User time: 18.734608888626099 +(PID.TID 0000.0001) System time: 6.7410469055175781E-003 +(PID.TID 0000.0001) Wall clock time: 18.743141174316406 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.5799999999999841 -(PID.TID 0000.0001) System time: 1.99999999999999067E-002 -(PID.TID 0000.0001) Wall clock time: 6.6088740825653076 +(PID.TID 0000.0001) User time: 3.6689226627349854 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 3.6691207885742188 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2000000000000171 +(PID.TID 0000.0001) User time: 0.78326511383056641 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2043790817260742 +(PID.TID 0000.0001) Wall clock time: 0.78328561782836914 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.6900000000000830 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 2.7247266769409180 +(PID.TID 0000.0001) User time: 1.9213223457336426 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9225232601165771 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.28999999999999204 -(PID.TID 0000.0001) System time: 2.99999999999999156E-002 -(PID.TID 0000.0001) Wall clock time: 5.8181350231170654 +(PID.TID 0000.0001) User time: 0.16024494171142578 +(PID.TID 0000.0001) System time: 6.2219500541687012E-003 +(PID.TID 0000.0001) Wall clock time: 0.16648602485656738 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15000000000000568 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 0.16362547874450684 +(PID.TID 0000.0001) User time: 0.10522246360778809 +(PID.TID 0000.0001) System time: 0.11873304843902588 +(PID.TID 0000.0001) Wall clock time: 0.62515115737915039 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 117.56000000000002 -(PID.TID 0000.0001) System time: 8.99999999999999689E-002 -(PID.TID 0000.0001) Wall clock time: 117.94361996650696 +(PID.TID 0000.0001) User time: 70.189201354980469 +(PID.TID 0000.0001) System time: 0.13944005966186523 +(PID.TID 0000.0001) Wall clock time: 70.330245971679688 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 3.9199999999999875 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 3.9766180515289307 +(PID.TID 0000.0001) User time: 2.6869583129882812 +(PID.TID 0000.0001) System time: 0.10358572006225586 +(PID.TID 0000.0001) Wall clock time: 2.7906177043914795 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 113.05999999999997 -(PID.TID 0000.0001) System time: 5.99999999999999423E-002 -(PID.TID 0000.0001) Wall clock time: 113.38784313201904 +(PID.TID 0000.0001) User time: 67.200328826904297 +(PID.TID 0000.0001) System time: 4.7206878662109375E-004 +(PID.TID 0000.0001) Wall clock time: 67.202312231063843 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 107.78000000000003 -(PID.TID 0000.0001) System time: 4.99999999999999334E-002 -(PID.TID 0000.0001) Wall clock time: 108.07187747955322 +(PID.TID 0000.0001) User time: 63.812213897705078 +(PID.TID 0000.0001) System time: 3.7407875061035156E-004 +(PID.TID 0000.0001) Wall clock time: 63.813961982727051 (PID.TID 0000.0001) No. starts: 50 (PID.TID 0000.0001) No. stops: 50 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 3.00000000000011369E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 5.60302734375000000E-002 +(PID.TID 0000.0001) User time: 3.8673400878906250E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.8681507110595703E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -3583,9 +3986,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 107460 +(PID.TID 0000.0001) // No. barriers = 110858 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 107460 +(PID.TID 0000.0001) // Total barrier spins = 110858 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output_oadm.txt b/verification/isomip/results/output_oadm.txt index a2851aa2a4..e3eab105a9 100644 --- a/verification/isomip/results/output_oadm.txt +++ b/verification/isomip/results/output_oadm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65k -(PID.TID 0000.0001) // Build user: dgoldberg -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Apr 23 16:02:45 EDT 2015 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: node384 +(PID.TID 0000.0001) // Build date: Wed Apr 14 22:38:34 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,8 +47,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -300,6 +302,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -321,9 +326,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -619,8 +633,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 3 -(PID.TID 0000.0001) ctrl_init: control vector length: 301350 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 3 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 301350 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -677,7 +691,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -770,6 +784,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -794,6 +818,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -821,7 +851,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -861,7 +891,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -870,10 +900,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.340000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -915,8 +945,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -937,14 +968,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -957,6 +986,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -972,6 +1004,9 @@ (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1035,6 +1070,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1054,6 +1095,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1114,6 +1158,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 4.000000000000000E+05 (PID.TID 0000.0001) ; @@ -1156,9 +1203,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1210,11 +1254,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1225,6 +1278,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.708737864077669E-04 (PID.TID 0000.0001) ; @@ -1675,7 +1734,6 @@ (PID.TID 0000.0001) 9.659842459236403E+07, /* J = 52 */ (PID.TID 0000.0001) 9.722312190998377E+07, /* J = 53 */ (PID.TID 0000.0001) . . . -OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) 1.096523508263446E+08, /* J = 73 */ (PID.TID 0000.0001) 1.102704306306916E+08, /* J = 74 */ (PID.TID 0000.0001) 1.108881745321664E+08, /* J = 75 */ @@ -1702,27 +1760,6 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) SHELFICEisOn = /* package is turned on */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) useISOMIPTD = /* use simple isomip thermodynamics */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1732,6 +1769,9 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1747,6 +1787,9 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) SHELFICEdragQuadratic = /* quadratic drag coefficient */ (PID.TID 0000.0001) 2.500000000000000E-03 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEselectDragQuadr = /* select quadratic drag option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICElatentHeat = /* latent heat of ice */ (PID.TID 0000.0001) 3.340000000000000E+05 (PID.TID 0000.0001) ; @@ -1771,10 +1814,20 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ (PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' (PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEmassFile = /* file name of loaded mass field */ +OAD: TIMING: stamp 0: 1618454982.192734 +OAD: TIMING: stamp 1: 1618455012.900295 +OAD: TIMING: delta stamps 1-0: 30.707561 +OAD: TIMING: stamp 2: 1618455075.879623 +OAD: TIMING: delta stamps 2-1: 62.979328 +OAD: TIMING: delta stamps 2-0: 93.686889 +OAD: TIMING: ratio stamps (2-1)/(1-0): 6.297933e+07/3.070756e+07=2.050939e+00 (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICEtopoFile = /* file name of loaded under-ice topography */ @@ -1783,9 +1836,32 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) SHELFICEMassDynTendFile = /* file name of loaded dynamic mass tendency field */ (PID.TID 0000.0001) '' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SHELFICE_CHECK: end of SHELFICE config. summary -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1820,21 +1896,15 @@ OAD: TIMING: stamp 0: 1429820178.834152 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F -OAD: TIMING: stamp 1: 1429820222.556216 -OAD: TIMING: delta stamps 1-0: 43.722064 -OAD: TIMING: stamp 2: 1429820281.578237 -OAD: TIMING: delta stamps 2-1: 59.022021 -OAD: TIMING: delta stamps 2-0: 102.744085 -OAD: TIMING: ratio stamps (2-1)/(1-0): 5.902202e+07/4.372206e+07=1.349937e+00 - cg2d: Sum(rhs),rhsMax = 7.02035651833910E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.17551018603046E-13 5.85500596196852E-02 - cg2d: Sum(rhs),rhsMax = 7.19174719776561E-13 5.84749085735298E-02 - cg2d: Sum(rhs),rhsMax = 7.18883286232597E-13 5.84593887972465E-02 - cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84078226951265E-02 - cg2d: Sum(rhs),rhsMax = 7.19993509257222E-13 5.83787019681248E-02 - cg2d: Sum(rhs),rhsMax = 7.17204073907851E-13 5.84374338075866E-02 - cg2d: Sum(rhs),rhsMax = 7.16090381436274E-13 5.85079190003713E-02 - cg2d: Sum(rhs),rhsMax = 7.17960413343377E-13 5.85906040584087E-02 + cg2d: Sum(rhs),rhsMax = 7.03576086280577E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.16232628761304E-13 5.85496465663748E-02 + cg2d: Sum(rhs),rhsMax = 7.13276659958240E-13 5.84742692598052E-02 + cg2d: Sum(rhs),rhsMax = 7.16149362034457E-13 5.84584944375847E-02 + cg2d: Sum(rhs),rhsMax = 7.14955872282985E-13 5.84066473697759E-02 + cg2d: Sum(rhs),rhsMax = 7.18716752778903E-13 5.83776644739970E-02 + cg2d: Sum(rhs),rhsMax = 7.19986570363318E-13 5.84362198394048E-02 + cg2d: Sum(rhs),rhsMax = 7.20579845792102E-13 5.85065316933976E-02 + cg2d: Sum(rhs),rhsMax = 7.14664438739021E-13 5.85890460574158E-02 OAD: IT+ 17825792 OAD: DT+ 17825792 OAD: IT+ 34603008 @@ -1843,16 +1913,16 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 5.902202e+07/4.372206e+07=1.349937e+00 OAD: DT+ 34603008 OAD: IT+ 84934656 OAD: IT+ 101711872 - cg2d: Sum(rhs),rhsMax = 7.18092252327551E-13 5.86837243406884E-02 OAD: IT+ 118489088 + cg2d: Sum(rhs),rhsMax = 7.12698997040739E-13 5.86819976555202E-02 OAD: DT+ 51380224 OAD: IT+ 135266304 OAD: IT+ 152043520 OAD: IT+ 168820736 OAD: IT+ 185597952 OAD: DT+ 68157440 - OAD: DT+ 84934656 OAD: IT+ 202375168 + OAD: DT+ 84934656 (PID.TID 0000.0001) %CHECKPOINT 8650 ckptA --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -1870,41 +1940,41 @@ OAD: TIMING: ratio stamps (2-1)/(1-0): 5.902202e+07/4.372206e+07=1.349937e+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828563816868D+05 - --> objf_test(bi,bj) = 0.281185021461128D+05 - --> objf_test(bi,bj) = 0.489489953482113D+05 - --> objf_test(bi,bj) = 0.505804433821614D+05 - --> objf_test(bi,bj) = 0.526420702557187D+05 - --> objf_test(bi,bj) = 0.548337784539581D+05 - --> objf_test(bi,bj) = 0.526401866588162D+05 - --> objf_test(bi,bj) = 0.548335278224963D+05 - local fc = 0.369880360449162D+06 - global fc = 0.369880360449162D+06 - cg2d: Sum(rhs),rhsMax = 1.37667655053519E-14 5.81295329961650E-05 - cg2d: Sum(rhs),rhsMax = 7.15167508547054E-13 5.85906040584086E-02 - cg2d: Sum(rhs),rhsMax = -1.85962356624714E-15 7.47537782749594E-04 - cg2d: Sum(rhs),rhsMax = 7.17360199020689E-13 5.85079190003712E-02 - cg2d: Sum(rhs),rhsMax = 1.81105130891979E-15 1.36768289087339E-03 - cg2d: Sum(rhs),rhsMax = 7.17564896390854E-13 5.84374338075865E-02 - cg2d: Sum(rhs),rhsMax = 9.57567358739198E-16 1.92834505925994E-03 - cg2d: Sum(rhs),rhsMax = 7.19840853591336E-13 5.83787019681248E-02 - cg2d: Sum(rhs),rhsMax = 1.18134668714021E-15 2.28752503276101E-03 - cg2d: Sum(rhs),rhsMax = 7.19410642169294E-13 5.84078226951263E-02 - cg2d: Sum(rhs),rhsMax = 1.13450915328883E-15 2.36444966628443E-03 - cg2d: Sum(rhs),rhsMax = 7.17162440544428E-13 5.84593887972464E-02 - cg2d: Sum(rhs),rhsMax = 7.18175519054398E-16 2.13868842675858E-03 - cg2d: Sum(rhs),rhsMax = 7.17120807181004E-13 5.84749085735302E-02 - cg2d: Sum(rhs),rhsMax = -8.32667268468867E-16 1.66111925069726E-03 - cg2d: Sum(rhs),rhsMax = 7.17093051605389E-13 5.85500596196856E-02 - cg2d: Sum(rhs),rhsMax = -2.26207941267376E-15 1.97365950355155E-03 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836868119185D+05 + --> objf_test(bi,bj) = 0.281193669253420D+05 + --> objf_test(bi,bj) = 0.489493981291376D+05 + --> objf_test(bi,bj) = 0.505808644699147D+05 + --> objf_test(bi,bj) = 0.526424027837253D+05 + --> objf_test(bi,bj) = 0.548341248351525D+05 + --> objf_test(bi,bj) = 0.526405191842645D+05 + --> objf_test(bi,bj) = 0.548338742031074D+05 +(PID.TID 0000.0001) local fc = 0.369884237342563D+06 +(PID.TID 0000.0001) global fc = 0.369884237342563D+06 + cg2d: Sum(rhs),rhsMax = -9.10382880192628E-15 5.87890736423569E-05 + cg2d: Sum(rhs),rhsMax = 7.15153630759247E-13 5.85890460574160E-02 + cg2d: Sum(rhs),rhsMax = -1.15185638804860E-15 7.51712107927840E-04 + cg2d: Sum(rhs),rhsMax = 7.16759984698001E-13 5.85065316933976E-02 + cg2d: Sum(rhs),rhsMax = -4.71844785465692E-16 1.37422252013216E-03 + cg2d: Sum(rhs),rhsMax = 7.20631887496381E-13 5.84362198394043E-02 + cg2d: Sum(rhs),rhsMax = 2.28289609438548E-15 1.93745567323104E-03 + cg2d: Sum(rhs),rhsMax = 7.19951875893798E-13 5.83776644739970E-02 + cg2d: Sum(rhs),rhsMax = 7.06032454722560E-16 2.29808246597704E-03 + cg2d: Sum(rhs),rhsMax = 7.16926518151695E-13 5.84066473697762E-02 + cg2d: Sum(rhs),rhsMax = 7.52869988573934E-16 2.37509841422656E-03 + cg2d: Sum(rhs),rhsMax = 7.16926518151695E-13 5.84584944375846E-02 + cg2d: Sum(rhs),rhsMax = -5.51642065360625E-16 2.14788366062592E-03 + cg2d: Sum(rhs),rhsMax = 7.17773063207972E-13 5.84742692598057E-02 + cg2d: Sum(rhs),rhsMax = 1.62370117351429E-15 1.66732107002434E-03 + cg2d: Sum(rhs),rhsMax = 7.17537140815239E-13 5.85496465663755E-02 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 1.97659111521151E-03 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.03048730343880E-13 5.97860431289981E-02 - cg2d: Sum(rhs),rhsMax = -1.29063426612674E-15 2.85217315502787E-03 + cg2d: Sum(rhs),rhsMax = 7.02327085377874E-13 5.97860431289983E-02 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 2.85670319444534E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69880360449162E+05 +(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69884237342563E+05 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -1959,16 +2029,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02313207590066E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.85500590181992E-02 - cg2d: Sum(rhs),rhsMax = 7.19854731379144E-13 5.84749082070412E-02 - cg2d: Sum(rhs),rhsMax = 7.16413040002806E-13 5.84593889670001E-02 - cg2d: Sum(rhs),rhsMax = 7.16982029302926E-13 5.84078231059012E-02 - cg2d: Sum(rhs),rhsMax = 7.20049020408453E-13 5.83787022322495E-02 - cg2d: Sum(rhs),rhsMax = 7.19223292033888E-13 5.84374340605050E-02 - cg2d: Sum(rhs),rhsMax = 7.16815495849232E-13 5.85079192879284E-02 - cg2d: Sum(rhs),rhsMax = 7.15975889686860E-13 5.85906043870629E-02 - cg2d: Sum(rhs),rhsMax = 7.16071299478038E-13 5.86837246792829E-02 + cg2d: Sum(rhs),rhsMax = 7.03631597431809E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.14872605556138E-13 5.85496459646400E-02 + cg2d: Sum(rhs),rhsMax = 7.20784543162267E-13 5.84742688930641E-02 + cg2d: Sum(rhs),rhsMax = 7.18342052508092E-13 5.84584946077673E-02 + cg2d: Sum(rhs),rhsMax = 7.20118409347492E-13 5.84066477809966E-02 + cg2d: Sum(rhs),rhsMax = 7.17745307632356E-13 5.83776647381407E-02 + cg2d: Sum(rhs),rhsMax = 7.16565695668692E-13 5.84362200923067E-02 + cg2d: Sum(rhs),rhsMax = 7.13217679360056E-13 5.85065319809276E-02 + cg2d: Sum(rhs),rhsMax = 7.13432785071078E-13 5.85890463854734E-02 + cg2d: Sum(rhs),rhsMax = 7.17207543354803E-13 5.86819979944583E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -1986,18 +2056,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828181997076D+05 - --> objf_test(bi,bj) = 0.281185021460678D+05 - --> objf_test(bi,bj) = 0.489489953480514D+05 - --> objf_test(bi,bj) = 0.505804433821500D+05 - --> objf_test(bi,bj) = 0.526420702557155D+05 - --> objf_test(bi,bj) = 0.548337784539590D+05 - --> objf_test(bi,bj) = 0.526401866588119D+05 - --> objf_test(bi,bj) = 0.548335278224945D+05 - local fc = 0.369880322266958D+06 - global fc = 0.369880322266958D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69880322266958E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836486299371D+05 + --> objf_test(bi,bj) = 0.281193669252972D+05 + --> objf_test(bi,bj) = 0.489493981289786D+05 + --> objf_test(bi,bj) = 0.505808644699034D+05 + --> objf_test(bi,bj) = 0.526424027837223D+05 + --> objf_test(bi,bj) = 0.548341248351535D+05 + --> objf_test(bi,bj) = 0.526405191842602D+05 + --> objf_test(bi,bj) = 0.548338742031056D+05 +(PID.TID 0000.0001) local fc = 0.369884199160358D+06 +(PID.TID 0000.0001) global fc = 0.369884199160358D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69884199160358E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2023,16 +2093,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02313207590066E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.11139480635836E-13 5.85500602197960E-02 - cg2d: Sum(rhs),rhsMax = 7.14969750070793E-13 5.84749089389692E-02 - cg2d: Sum(rhs),rhsMax = 7.15746906188031E-13 5.84593886279372E-02 - cg2d: Sum(rhs),rhsMax = 7.18217152417822E-13 5.84078222849032E-02 - cg2d: Sum(rhs),rhsMax = 7.17106929393196E-13 5.83787017049393E-02 - cg2d: Sum(rhs),rhsMax = 7.20749848692748E-13 5.84374335550026E-02 - cg2d: Sum(rhs),rhsMax = 7.18213682970870E-13 5.85079187135940E-02 - cg2d: Sum(rhs),rhsMax = 7.15601189416049E-13 5.85906037311852E-02 - cg2d: Sum(rhs),rhsMax = 7.14019121605958E-13 5.86837240024814E-02 + cg2d: Sum(rhs),rhsMax = 7.03631597431809E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.16121606458842E-13 5.85496471662112E-02 + cg2d: Sum(rhs),rhsMax = 7.19341253230255E-13 5.84742696252864E-02 + cg2d: Sum(rhs),rhsMax = 7.16413040002806E-13 5.84584942681453E-02 + cg2d: Sum(rhs),rhsMax = 7.15483228219682E-13 5.84066469597881E-02 + cg2d: Sum(rhs),rhsMax = 7.16274262124728E-13 5.83776642104507E-02 + cg2d: Sum(rhs),rhsMax = 7.18189396842206E-13 5.84362195870379E-02 + cg2d: Sum(rhs),rhsMax = 7.15354858682460E-13 5.85065314065646E-02 + cg2d: Sum(rhs),rhsMax = 7.15649761673376E-13 5.85890457298747E-02 + cg2d: Sum(rhs),rhsMax = 7.14832706916191E-13 5.86819973176061E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2050,24 +2120,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828947258195D+05 - --> objf_test(bi,bj) = 0.281185021461576D+05 - --> objf_test(bi,bj) = 0.489489953483794D+05 - --> objf_test(bi,bj) = 0.505804433821727D+05 - --> objf_test(bi,bj) = 0.526420702557218D+05 - --> objf_test(bi,bj) = 0.548337784539570D+05 - --> objf_test(bi,bj) = 0.526401866588206D+05 - --> objf_test(bi,bj) = 0.548335278224980D+05 - local fc = 0.369880398793527D+06 - global fc = 0.369880398793527D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69880398793527E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272837251560532D+05 + --> objf_test(bi,bj) = 0.281193669253867D+05 + --> objf_test(bi,bj) = 0.489493981293049D+05 + --> objf_test(bi,bj) = 0.505808644699259D+05 + --> objf_test(bi,bj) = 0.526424027837285D+05 + --> objf_test(bi,bj) = 0.548341248351515D+05 + --> objf_test(bi,bj) = 0.526405191842689D+05 + --> objf_test(bi,bj) = 0.548338742031092D+05 +(PID.TID 0000.0001) local fc = 0.369884275686929D+06 +(PID.TID 0000.0001) global fc = 0.369884275686929D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69884275686929E+05 grad-res ------------------------------- - grad-res 0 1 20 24 20 1 1 1 3.69880360449E+05 3.69880322267E+05 3.69880398794E+05 - grad-res 0 1 1 1579 0 1 1 1 -3.82632843864E+00 -3.82632843975E+00 -2.90735213682E-10 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69880360449162E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82632843864199E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82632843975443E+00 + grad-res 0 1 20 24 20 1 1 1 3.69884237343E+05 3.69884199160E+05 3.69884275687E+05 + grad-res 0 1 1 1579 0 1 1 1 -3.82632855132E+00 -3.82632854744E+00 1.01510189143E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69884237342563E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82632855132272E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82632854743861E+00 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1580 100450 2 @@ -2099,16 +2169,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02257696438835E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.17412240724968E-13 5.85500590523517E-02 - cg2d: Sum(rhs),rhsMax = 7.18078374539743E-13 5.84749081876879E-02 - cg2d: Sum(rhs),rhsMax = 7.17495507451815E-13 5.84593888946230E-02 - cg2d: Sum(rhs),rhsMax = 7.21270265735541E-13 5.84078230097923E-02 - cg2d: Sum(rhs),rhsMax = 7.16551817880884E-13 5.83787021068680E-02 - cg2d: Sum(rhs),rhsMax = 7.18224091311725E-13 5.84374339051462E-02 - cg2d: Sum(rhs),rhsMax = 7.17297748975554E-13 5.85079190993069E-02 - cg2d: Sum(rhs),rhsMax = 7.17488568557911E-13 5.85906041652531E-02 - cg2d: Sum(rhs),rhsMax = 7.13934120155635E-13 5.86837244263132E-02 + cg2d: Sum(rhs),rhsMax = 7.03576086280577E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.15233428039141E-13 5.85496459987944E-02 + cg2d: Sum(rhs),rhsMax = 7.17231829483467E-13 5.84742688739039E-02 + cg2d: Sum(rhs),rhsMax = 7.16440795578421E-13 5.84584945354275E-02 + cg2d: Sum(rhs),rhsMax = 7.17953474449473E-13 5.84066476845914E-02 + cg2d: Sum(rhs),rhsMax = 7.18411441447131E-13 5.83776646127297E-02 + cg2d: Sum(rhs),rhsMax = 7.14657499845117E-13 5.84362199370132E-02 + cg2d: Sum(rhs),rhsMax = 7.20000448151126E-13 5.85065317922423E-02 + cg2d: Sum(rhs),rhsMax = 7.14955872282985E-13 5.85890461640643E-02 + cg2d: Sum(rhs),rhsMax = 7.14798012446671E-13 5.86819977414887E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2126,18 +2196,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828182051574D+05 - --> objf_test(bi,bj) = 0.281185021460424D+05 - --> objf_test(bi,bj) = 0.489489953480564D+05 - --> objf_test(bi,bj) = 0.505804433821510D+05 - --> objf_test(bi,bj) = 0.526420702557157D+05 - --> objf_test(bi,bj) = 0.548337784539592D+05 - --> objf_test(bi,bj) = 0.526401866588122D+05 - --> objf_test(bi,bj) = 0.548335278224948D+05 - local fc = 0.369880322272389D+06 - global fc = 0.369880322272389D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69880322272389E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836486353870D+05 + --> objf_test(bi,bj) = 0.281193669252718D+05 + --> objf_test(bi,bj) = 0.489493981289835D+05 + --> objf_test(bi,bj) = 0.505808644699044D+05 + --> objf_test(bi,bj) = 0.526424027837226D+05 + --> objf_test(bi,bj) = 0.548341248351536D+05 + --> objf_test(bi,bj) = 0.526405191842606D+05 + --> objf_test(bi,bj) = 0.548338742031059D+05 +(PID.TID 0000.0001) local fc = 0.369884199165789D+06 +(PID.TID 0000.0001) global fc = 0.369884199165789D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69884199165789E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2163,16 +2233,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02368718741297E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.17106929393196E-13 5.85500601858284E-02 - cg2d: Sum(rhs),rhsMax = 7.18522463749593E-13 5.84749089582147E-02 - cg2d: Sum(rhs),rhsMax = 7.18022863388512E-13 5.84593886999580E-02 - cg2d: Sum(rhs),rhsMax = 7.19729831288873E-13 5.84078223812792E-02 - cg2d: Sum(rhs),rhsMax = 7.18758386142326E-13 5.83787018302487E-02 - cg2d: Sum(rhs),rhsMax = 7.17911841086050E-13 5.84374337100977E-02 - cg2d: Sum(rhs),rhsMax = 7.14116266120612E-13 5.85079189017899E-02 - cg2d: Sum(rhs),rhsMax = 7.16014053603331E-13 5.85906039522108E-02 - cg2d: Sum(rhs),rhsMax = 7.13368600302466E-13 5.86837242547208E-02 + cg2d: Sum(rhs),rhsMax = 7.03687108583040E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.17759185420164E-13 5.85496471321850E-02 + cg2d: Sum(rhs),rhsMax = 7.17065296029773E-13 5.84742696446134E-02 + cg2d: Sum(rhs),rhsMax = 7.20493109618303E-13 5.84584943401366E-02 + cg2d: Sum(rhs),rhsMax = 7.19604931198603E-13 5.84066470557914E-02 + cg2d: Sum(rhs),rhsMax = 7.19202475352176E-13 5.83776643358433E-02 + cg2d: Sum(rhs),rhsMax = 7.17474690770104E-13 5.84362197421850E-02 + cg2d: Sum(rhs),rhsMax = 7.13266251617384E-13 5.85065315949033E-02 + cg2d: Sum(rhs),rhsMax = 7.18168580160494E-13 5.85890459505529E-02 + cg2d: Sum(rhs),rhsMax = 7.15122405736679E-13 5.86819975696820E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2190,24 +2260,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828947203699D+05 - --> objf_test(bi,bj) = 0.281185021461829D+05 - --> objf_test(bi,bj) = 0.489489953483743D+05 - --> objf_test(bi,bj) = 0.505804433821716D+05 - --> objf_test(bi,bj) = 0.526420702557215D+05 - --> objf_test(bi,bj) = 0.548337784539569D+05 - --> objf_test(bi,bj) = 0.526401866588201D+05 - --> objf_test(bi,bj) = 0.548335278224977D+05 - local fc = 0.369880398788095D+06 - global fc = 0.369880398788095D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69880398788095E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272837251506036D+05 + --> objf_test(bi,bj) = 0.281193669254120D+05 + --> objf_test(bi,bj) = 0.489493981293000D+05 + --> objf_test(bi,bj) = 0.505808644699249D+05 + --> objf_test(bi,bj) = 0.526424027837282D+05 + --> objf_test(bi,bj) = 0.548341248351514D+05 + --> objf_test(bi,bj) = 0.526405191842684D+05 + --> objf_test(bi,bj) = 0.548338742031089D+05 +(PID.TID 0000.0001) local fc = 0.369884275681497D+06 +(PID.TID 0000.0001) global fc = 0.369884275681497D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69884275681497E+05 grad-res ------------------------------- - grad-res 0 2 21 24 20 1 1 1 3.69880360449E+05 3.69880322272E+05 3.69880398788E+05 - grad-res 0 2 2 1580 0 1 1 1 -3.82578529686E+00 -3.82578529243E+00 1.15844578374E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69880360449162E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82578529686088E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82578529242892E+00 + grad-res 0 2 21 24 20 1 1 1 3.69884237343E+05 3.69884199166E+05 3.69884275681E+05 + grad-res 0 2 2 1580 0 1 1 1 -3.82578540961E+00 -3.82578539720E+00 3.24392912532E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69884237342563E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82578540961328E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82578539720271E+00 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1581 100450 3 @@ -2239,16 +2309,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02146674136372E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.13970549348630E-13 5.85500590852525E-02 - cg2d: Sum(rhs),rhsMax = 7.15288939190373E-13 5.84749081723348E-02 - cg2d: Sum(rhs),rhsMax = 7.15441594856259E-13 5.84593888296223E-02 - cg2d: Sum(rhs),rhsMax = 7.19840853591336E-13 5.84078229226142E-02 - cg2d: Sum(rhs),rhsMax = 7.18924919596020E-13 5.83787019979265E-02 - cg2d: Sum(rhs),rhsMax = 7.16010584156379E-13 5.84374337705128E-02 - cg2d: Sum(rhs),rhsMax = 7.16898762576079E-13 5.85079189355460E-02 - cg2d: Sum(rhs),rhsMax = 7.16742637463241E-13 5.85906039736628E-02 - cg2d: Sum(rhs),rhsMax = 7.13299211363427E-13 5.86837242075861E-02 + cg2d: Sum(rhs),rhsMax = 7.03687108583040E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.15941195217340E-13 5.85496460319304E-02 + cg2d: Sum(rhs),rhsMax = 7.18744508354519E-13 5.84742688587049E-02 + cg2d: Sum(rhs),rhsMax = 7.16579573456499E-13 5.84584944704235E-02 + cg2d: Sum(rhs),rhsMax = 7.18577974900825E-13 5.84066475974795E-02 + cg2d: Sum(rhs),rhsMax = 7.23573978511638E-13 5.83776645037090E-02 + cg2d: Sum(rhs),rhsMax = 7.21041282236712E-13 5.84362198022053E-02 + cg2d: Sum(rhs),rhsMax = 7.16423448343662E-13 5.85065316288236E-02 + cg2d: Sum(rhs),rhsMax = 7.17027132113301E-13 5.85890459719352E-02 + cg2d: Sum(rhs),rhsMax = 7.13372069749418E-13 5.86819975227751E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2266,18 +2336,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828182090042D+05 - --> objf_test(bi,bj) = 0.281185021458083D+05 - --> objf_test(bi,bj) = 0.489489953480477D+05 - --> objf_test(bi,bj) = 0.505804433821451D+05 - --> objf_test(bi,bj) = 0.526420702557160D+05 - --> objf_test(bi,bj) = 0.548337784539593D+05 - --> objf_test(bi,bj) = 0.526401866588126D+05 - --> objf_test(bi,bj) = 0.548335278224950D+05 - local fc = 0.369880322275988D+06 - global fc = 0.369880322275988D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69880322275988E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836486392339D+05 + --> objf_test(bi,bj) = 0.281193669250376D+05 + --> objf_test(bi,bj) = 0.489493981289748D+05 + --> objf_test(bi,bj) = 0.505808644698983D+05 + --> objf_test(bi,bj) = 0.526424027837228D+05 + --> objf_test(bi,bj) = 0.548341248351537D+05 + --> objf_test(bi,bj) = 0.526405191842610D+05 + --> objf_test(bi,bj) = 0.548338742031062D+05 +(PID.TID 0000.0001) local fc = 0.369884199169388D+06 +(PID.TID 0000.0001) global fc = 0.369884199169388D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69884199169388E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2303,16 +2373,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02035651833910E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.17009784878542E-13 5.85500601529428E-02 - cg2d: Sum(rhs),rhsMax = 7.18952675171636E-13 5.84749089734975E-02 - cg2d: Sum(rhs),rhsMax = 7.16635084607731E-13 5.84593887647111E-02 - cg2d: Sum(rhs),rhsMax = 7.18786141717942E-13 5.84078224683037E-02 - cg2d: Sum(rhs),rhsMax = 7.20090653771877E-13 5.83787019387424E-02 - cg2d: Sum(rhs),rhsMax = 7.19153903094849E-13 5.84374338444588E-02 - cg2d: Sum(rhs),rhsMax = 7.13713810274186E-13 5.85079190650803E-02 - cg2d: Sum(rhs),rhsMax = 7.13030329224651E-13 5.85906041437161E-02 - cg2d: Sum(rhs),rhsMax = 7.11672040742961E-13 5.86837244724307E-02 + cg2d: Sum(rhs),rhsMax = 7.03576086280577E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.19022064110675E-13 5.85496470992789E-02 + cg2d: Sum(rhs),rhsMax = 7.15427717068451E-13 5.84742696596956E-02 + cg2d: Sum(rhs),rhsMax = 7.19563297835180E-13 5.84584944050030E-02 + cg2d: Sum(rhs),rhsMax = 7.18800019505750E-13 5.84066471428122E-02 + cg2d: Sum(rhs),rhsMax = 7.19285742079023E-13 5.83776644443066E-02 + cg2d: Sum(rhs),rhsMax = 7.18480830386170E-13 5.84362198766411E-02 + cg2d: Sum(rhs),rhsMax = 7.16968151515118E-13 5.85065317580032E-02 + cg2d: Sum(rhs),rhsMax = 7.18668180521576E-13 5.85890461418978E-02 + cg2d: Sum(rhs),rhsMax = 7.14898626408278E-13 5.86819977876204E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2330,24 +2400,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828947165237D+05 - --> objf_test(bi,bj) = 0.281185021464162D+05 - --> objf_test(bi,bj) = 0.489489953483831D+05 - --> objf_test(bi,bj) = 0.505804433821776D+05 - --> objf_test(bi,bj) = 0.526420702557212D+05 - --> objf_test(bi,bj) = 0.548337784539568D+05 - --> objf_test(bi,bj) = 0.526401866588197D+05 - --> objf_test(bi,bj) = 0.548335278224974D+05 - local fc = 0.369880398784496D+06 - global fc = 0.369880398784496D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69880398784496E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272837251467574D+05 + --> objf_test(bi,bj) = 0.281193669256454D+05 + --> objf_test(bi,bj) = 0.489493981293089D+05 + --> objf_test(bi,bj) = 0.505808644699309D+05 + --> objf_test(bi,bj) = 0.526424027837279D+05 + --> objf_test(bi,bj) = 0.548341248351513D+05 + --> objf_test(bi,bj) = 0.526405191842681D+05 + --> objf_test(bi,bj) = 0.548338742031086D+05 +(PID.TID 0000.0001) local fc = 0.369884275677899D+06 +(PID.TID 0000.0001) global fc = 0.369884275677899D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69884275677899E+05 grad-res ------------------------------- - grad-res 0 3 22 24 20 1 1 1 3.69880360449E+05 3.69880322276E+05 3.69880398784E+05 - grad-res 0 3 3 1581 0 1 1 1 -3.82542539587E+00 -3.82542537991E+00 4.17136558628E-09 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69880360449162E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82542539586682E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82542537990957E+00 + grad-res 0 3 22 24 20 1 1 1 3.69884237343E+05 3.69884199169E+05 3.69884275678E+05 + grad-res 0 3 3 1581 0 1 1 1 -3.82542550871E+00 -3.82542551379E+00 -1.32619537574E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69884237342563E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82542550871393E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82542551378720E+00 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1582 100450 4 @@ -2379,16 +2449,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02146674136372E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.16163239822265E-13 5.85500591170209E-02 - cg2d: Sum(rhs),rhsMax = 7.18730630566711E-13 5.84749081607503E-02 - cg2d: Sum(rhs),rhsMax = 7.19341253230255E-13 5.84593887713507E-02 - cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84078228435514E-02 - cg2d: Sum(rhs),rhsMax = 7.14581172012174E-13 5.83787019033023E-02 - cg2d: Sum(rhs),rhsMax = 7.17079173817581E-13 5.84374336534064E-02 - cg2d: Sum(rhs),rhsMax = 7.17596121413422E-13 5.85079187938566E-02 - cg2d: Sum(rhs),rhsMax = 7.18359399742852E-13 5.85906038075894E-02 - cg2d: Sum(rhs),rhsMax = 7.14322698214254E-13 5.86837240190363E-02 + cg2d: Sum(rhs),rhsMax = 7.03687108583040E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.16315895488151E-13 5.85496460635958E-02 + cg2d: Sum(rhs),rhsMax = 7.17342851785929E-13 5.84742688471461E-02 + cg2d: Sum(rhs),rhsMax = 7.17911841086050E-13 5.84584944121166E-02 + cg2d: Sum(rhs),rhsMax = 7.20062898196261E-13 5.84066475186294E-02 + cg2d: Sum(rhs),rhsMax = 7.16524062305268E-13 5.83776644091389E-02 + cg2d: Sum(rhs),rhsMax = 7.18848591763077E-13 5.84362196853075E-02 + cg2d: Sum(rhs),rhsMax = 7.17263054506034E-13 5.85065314867784E-02 + cg2d: Sum(rhs),rhsMax = 7.15590781075193E-13 5.85890458061772E-02 + cg2d: Sum(rhs),rhsMax = 7.16884884788271E-13 5.86819973343524E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2406,18 +2476,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828182121588D+05 - --> objf_test(bi,bj) = 0.281185021450256D+05 - --> objf_test(bi,bj) = 0.489489953480998D+05 - --> objf_test(bi,bj) = 0.505804433820684D+05 - --> objf_test(bi,bj) = 0.526420702557164D+05 - --> objf_test(bi,bj) = 0.548337784539593D+05 - --> objf_test(bi,bj) = 0.526401866588131D+05 - --> objf_test(bi,bj) = 0.548335278224953D+05 - local fc = 0.369880322278337D+06 - global fc = 0.369880322278337D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69880322278337E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836486423887D+05 + --> objf_test(bi,bj) = 0.281193669242548D+05 + --> objf_test(bi,bj) = 0.489493981290268D+05 + --> objf_test(bi,bj) = 0.505808644698216D+05 + --> objf_test(bi,bj) = 0.526424027837231D+05 + --> objf_test(bi,bj) = 0.548341248351538D+05 + --> objf_test(bi,bj) = 0.526405191842613D+05 + --> objf_test(bi,bj) = 0.548338742031064D+05 +(PID.TID 0000.0001) local fc = 0.369884199171736D+06 +(PID.TID 0000.0001) global fc = 0.369884199171736D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69884199171736E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2443,16 +2513,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02257696438835E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.13554215714396E-13 5.85500601213176E-02 - cg2d: Sum(rhs),rhsMax = 7.20479231830495E-13 5.84749089849509E-02 - cg2d: Sum(rhs),rhsMax = 7.14858727768330E-13 5.84593888225184E-02 - cg2d: Sum(rhs),rhsMax = 7.17273462846890E-13 5.84078225468367E-02 - cg2d: Sum(rhs),rhsMax = 7.19743709076681E-13 5.83787020331123E-02 - cg2d: Sum(rhs),rhsMax = 7.17620407542086E-13 5.84374339609284E-02 - cg2d: Sum(rhs),rhsMax = 7.18123477350119E-13 5.85079192062374E-02 - cg2d: Sum(rhs),rhsMax = 7.16156300928361E-13 5.85906043088652E-02 - cg2d: Sum(rhs),rhsMax = 7.13011247266415E-13 5.86837246609088E-02 + cg2d: Sum(rhs),rhsMax = 7.03798130885502E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.14733827678060E-13 5.85496470676359E-02 + cg2d: Sum(rhs),rhsMax = 7.17342851785929E-13 5.84742696711771E-02 + cg2d: Sum(rhs),rhsMax = 7.17814696571395E-13 5.84584944628465E-02 + cg2d: Sum(rhs),rhsMax = 7.20548620769534E-13 5.84066472216095E-02 + cg2d: Sum(rhs),rhsMax = 7.19604931198603E-13 5.83776645388117E-02 + cg2d: Sum(rhs),rhsMax = 7.15261183614757E-13 5.84362199927118E-02 + cg2d: Sum(rhs),rhsMax = 7.17564896390854E-13 5.85065318990530E-02 + cg2d: Sum(rhs),rhsMax = 7.18963083512492E-13 5.85890463072109E-02 + cg2d: Sum(rhs),rhsMax = 7.15901296577393E-13 5.86819979755548E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2470,24 +2540,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828947133715D+05 - --> objf_test(bi,bj) = 0.281185021471969D+05 - --> objf_test(bi,bj) = 0.489489953483312D+05 - --> objf_test(bi,bj) = 0.505804433822540D+05 - --> objf_test(bi,bj) = 0.526420702557209D+05 - --> objf_test(bi,bj) = 0.548337784539567D+05 - --> objf_test(bi,bj) = 0.526401866588192D+05 - --> objf_test(bi,bj) = 0.548335278224971D+05 - local fc = 0.369880398782148D+06 - global fc = 0.369880398782148D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69880398782148E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272837251436050D+05 + --> objf_test(bi,bj) = 0.281193669264260D+05 + --> objf_test(bi,bj) = 0.489493981292570D+05 + --> objf_test(bi,bj) = 0.505808644700074D+05 + --> objf_test(bi,bj) = 0.526424027837277D+05 + --> objf_test(bi,bj) = 0.548341248351512D+05 + --> objf_test(bi,bj) = 0.526405191842677D+05 + --> objf_test(bi,bj) = 0.548338742031083D+05 +(PID.TID 0000.0001) local fc = 0.369884275675550D+06 +(PID.TID 0000.0001) global fc = 0.369884275675550D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69884275675550E+05 grad-res ------------------------------- - grad-res 0 4 23 24 20 1 1 1 3.69880360449E+05 3.69880322278E+05 3.69880398782E+05 - grad-res 0 4 4 1582 0 1 1 1 -3.82519059206E+00 -3.82519054401E+00 1.25607276802E-08 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69880360449162E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82519059205918E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82519054401200E+00 + grad-res 0 4 23 24 20 1 1 1 3.69884237343E+05 3.69884199172E+05 3.69884275676E+05 + grad-res 0 4 4 1582 0 1 1 1 -3.82519070501E+00 -3.82519069244E+00 3.28649085723E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69884237342563E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82519070501299E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82519069244154E+00 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1583 100450 5 @@ -2519,16 +2589,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02146674136372E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.16468551154037E-13 5.85500591472583E-02 - cg2d: Sum(rhs),rhsMax = 7.17856329934818E-13 5.84749081523827E-02 - cg2d: Sum(rhs),rhsMax = 7.19035941898483E-13 5.84593887194496E-02 - cg2d: Sum(rhs),rhsMax = 7.21533943703889E-13 5.84078227723106E-02 - cg2d: Sum(rhs),rhsMax = 7.17398362937161E-13 5.83787018210998E-02 - cg2d: Sum(rhs),rhsMax = 7.17863268828722E-13 5.84374335525950E-02 - cg2d: Sum(rhs),rhsMax = 7.15719150612415E-13 5.85079186712963E-02 - cg2d: Sum(rhs),rhsMax = 7.19688197925450E-13 5.85906036640800E-02 - cg2d: Sum(rhs),rhsMax = 7.12704201211167E-13 5.86837238561723E-02 + cg2d: Sum(rhs),rhsMax = 7.03687108583040E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.16732229122385E-13 5.85496460938311E-02 + cg2d: Sum(rhs),rhsMax = 7.16912640363887E-13 5.84742688388732E-02 + cg2d: Sum(rhs),rhsMax = 7.15455472644067E-13 5.84584943599507E-02 + cg2d: Sum(rhs),rhsMax = 7.17842452147011E-13 5.84066474473465E-02 + cg2d: Sum(rhs),rhsMax = 7.17800818783587E-13 5.83776643267649E-02 + cg2d: Sum(rhs),rhsMax = 7.18425319234939E-13 5.84362195843235E-02 + cg2d: Sum(rhs),rhsMax = 7.15098119608015E-13 5.85065313643046E-02 + cg2d: Sum(rhs),rhsMax = 7.12221948084846E-13 5.85890456625861E-02 + cg2d: Sum(rhs),rhsMax = 7.17079173817581E-13 5.86819971713511E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2546,18 +2616,18 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828182155830D+05 - --> objf_test(bi,bj) = 0.281185021432015D+05 - --> objf_test(bi,bj) = 0.489489953483971D+05 - --> objf_test(bi,bj) = 0.505804433817487D+05 - --> objf_test(bi,bj) = 0.526420702557167D+05 - --> objf_test(bi,bj) = 0.548337784539594D+05 - --> objf_test(bi,bj) = 0.526401866588135D+05 - --> objf_test(bi,bj) = 0.548335278224957D+05 - local fc = 0.369880322279916D+06 - global fc = 0.369880322279916D+06 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69880322279916E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272836486458056D+05 + --> objf_test(bi,bj) = 0.281193669224377D+05 + --> objf_test(bi,bj) = 0.489493981293243D+05 + --> objf_test(bi,bj) = 0.505808644695019D+05 + --> objf_test(bi,bj) = 0.526424027837233D+05 + --> objf_test(bi,bj) = 0.548341248351538D+05 + --> objf_test(bi,bj) = 0.526405191842617D+05 + --> objf_test(bi,bj) = 0.548338742031068D+05 +(PID.TID 0000.0001) local fc = 0.369884199173315D+06 +(PID.TID 0000.0001) global fc = 0.369884199173315D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69884199173315E+05 (PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 (PID.TID 0000.0001) nDims = 2 , dims: (PID.TID 0000.0001) 1: 50 1 50 @@ -2583,16 +2653,16 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.02035651833910E-13 5.97860431289982E-02 - cg2d: Sum(rhs),rhsMax = 7.16274262124728E-13 5.85500600912088E-02 - cg2d: Sum(rhs),rhsMax = 7.17551018603046E-13 5.84749089930800E-02 - cg2d: Sum(rhs),rhsMax = 7.16787740273617E-13 5.84593888743670E-02 - cg2d: Sum(rhs),rhsMax = 7.17925718873857E-13 5.84078226178172E-02 - cg2d: Sum(rhs),rhsMax = 7.18675119415479E-13 5.83787021151538E-02 - cg2d: Sum(rhs),rhsMax = 7.18827775081365E-13 5.84374340616295E-02 - cg2d: Sum(rhs),rhsMax = 7.17266523952986E-13 5.85079193285996E-02 - cg2d: Sum(rhs),rhsMax = 7.17235298930419E-13 5.85906044519976E-02 - cg2d: Sum(rhs),rhsMax = 7.14915973643038E-13 5.86837248232550E-02 + cg2d: Sum(rhs),rhsMax = 7.03576086280577E-13 5.97860431289984E-02 + cg2d: Sum(rhs),rhsMax = 7.18161641266590E-13 5.85496470376316E-02 + cg2d: Sum(rhs),rhsMax = 7.17315096210314E-13 5.84742696794363E-02 + cg2d: Sum(rhs),rhsMax = 7.15497106007490E-13 5.84584945146461E-02 + cg2d: Sum(rhs),rhsMax = 7.19702075713258E-13 5.84066472926509E-02 + cg2d: Sum(rhs),rhsMax = 7.19271864291215E-13 5.83776646209068E-02 + cg2d: Sum(rhs),rhsMax = 7.16225689867400E-13 5.84362200936351E-02 + cg2d: Sum(rhs),rhsMax = 7.16728759675433E-13 5.85065320213725E-02 + cg2d: Sum(rhs),rhsMax = 7.14015652159006E-13 5.85890464504841E-02 + cg2d: Sum(rhs),rhsMax = 7.13292272469523E-13 5.86819981382931E-02 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 @@ -2610,24 +2680,24 @@ grad-res ------------------------------- --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 --> objf_shelfice(bi,bj) = 0.000000000000000D+00 --> objf_shifwflx(bi,bj) = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.272828947098980D+05 - --> objf_test(bi,bj) = 0.281185021490702D+05 - --> objf_test(bi,bj) = 0.489489953480348D+05 - --> objf_test(bi,bj) = 0.505804433825727D+05 - --> objf_test(bi,bj) = 0.526420702557206D+05 - --> objf_test(bi,bj) = 0.548337784539566D+05 - --> objf_test(bi,bj) = 0.526401866588188D+05 - --> objf_test(bi,bj) = 0.548335278224969D+05 - local fc = 0.369880398780569D+06 - global fc = 0.369880398780569D+06 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69880398780569E+05 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272837251401387D+05 + --> objf_test(bi,bj) = 0.281193669282923D+05 + --> objf_test(bi,bj) = 0.489493981289606D+05 + --> objf_test(bi,bj) = 0.505808644703261D+05 + --> objf_test(bi,bj) = 0.526424027837273D+05 + --> objf_test(bi,bj) = 0.548341248351511D+05 + --> objf_test(bi,bj) = 0.526405191842673D+05 + --> objf_test(bi,bj) = 0.548338742031080D+05 +(PID.TID 0000.0001) local fc = 0.369884275673972D+06 +(PID.TID 0000.0001) global fc = 0.369884275673972D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69884275673972E+05 grad-res ------------------------------- - grad-res 0 5 24 24 20 1 1 1 3.69880360449E+05 3.69880322280E+05 3.69880398781E+05 - grad-res 0 5 5 1583 0 1 1 1 -3.82503269935E+00 -3.82503265282E+00 1.21655056029E-08 -(PID.TID 0000.0001) ADM ref_cost_function = 3.69880360449162E+05 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.82503269935485E+00 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.82503265282139E+00 + grad-res 0 5 24 24 20 1 1 1 3.69884237343E+05 3.69884199173E+05 3.69884275674E+05 + grad-res 0 5 5 1583 0 1 1 1 -3.82503281241E+00 -3.82503282162E+00 -2.41000086554E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69884237342563E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82503281240528E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82503282162361E+00 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -2641,185 +2711,191 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 20 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 3.6988036044916E+05 3.6988032226696E+05 3.6988039879353E+05 -(PID.TID 0000.0001) grdchk output (g): 1 -3.8263284397544E+00 -3.8263284386420E+00 -2.9073521368161E-10 +(PID.TID 0000.0001) grdchk output (c): 1 3.6988423734256E+05 3.6988419916036E+05 3.6988427568693E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -3.8263285474386E+00 -3.8263285513227E+00 1.0151018914328E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 21 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 3.6988036044916E+05 3.6988032227239E+05 3.6988039878809E+05 -(PID.TID 0000.0001) grdchk output (g): 2 -3.8257852924289E+00 -3.8257852968609E+00 1.1584457837444E-09 +(PID.TID 0000.0001) grdchk output (c): 2 3.6988423734256E+05 3.6988419916579E+05 3.6988427568150E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -3.8257853972027E+00 -3.8257854096133E+00 3.2439291253183E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 22 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 3.6988036044916E+05 3.6988032227599E+05 3.6988039878450E+05 -(PID.TID 0000.0001) grdchk output (g): 3 -3.8254253799096E+00 -3.8254253958668E+00 4.1713655862807E-09 +(PID.TID 0000.0001) grdchk output (c): 3 3.6988423734256E+05 3.6988419916939E+05 3.6988427567790E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -3.8254255137872E+00 -3.8254255087139E+00 -1.3261953757393E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 23 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 3.6988036044916E+05 3.6988032227834E+05 3.6988039878215E+05 -(PID.TID 0000.0001) grdchk output (g): 4 -3.8251905440120E+00 -3.8251905920592E+00 1.2560727680189E-08 +(PID.TID 0000.0001) grdchk output (c): 4 3.6988423734256E+05 3.6988419917174E+05 3.6988427567555E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -3.8251906924415E+00 -3.8251907050130E+00 3.2864908572350E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 5 24 24 20 1 1 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 5 3.6988036044916E+05 3.6988032227992E+05 3.6988039878057E+05 -(PID.TID 0000.0001) grdchk output (g): 5 -3.8250326528214E+00 -3.8250326993548E+00 1.2165505602901E-08 +(PID.TID 0000.0001) grdchk output (c): 5 3.6988423734256E+05 3.6988419917332E+05 3.6988427567397E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -3.8250328216236E+00 -3.8250328124053E+00 -2.4100008655381E-09 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 8.0572727505383E-09 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.4462799725827E-09 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 345.81999999999999 -(PID.TID 0000.0001) System time: 8.3300000000000001 -(PID.TID 0000.0001) Wall clock time: 355.12284493446350 +(PID.TID 0000.0001) User time: 265.84096957230940 +(PID.TID 0000.0001) System time: 4.2472850074991584 +(PID.TID 0000.0001) Wall clock time: 275.67367792129517 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.23999999999999999 -(PID.TID 0000.0001) System time: 4.00000000000000008E-002 -(PID.TID 0000.0001) Wall clock time: 0.28763413429260254 +(PID.TID 0000.0001) User time: 0.49468301096931100 +(PID.TID 0000.0001) System time: 7.4990998022258282E-002 +(PID.TID 0000.0001) Wall clock time: 2.9417998790740967 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (F) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 35.659999999999997 -(PID.TID 0000.0001) System time: 7.9500000000000002 -(PID.TID 0000.0001) Wall clock time: 43.722054958343506 +(PID.TID 0000.0001) User time: 24.444079935550690 +(PID.TID 0000.0001) System time: 3.9076990485191345 +(PID.TID 0000.0001) Wall clock time: 30.707551956176758 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 2.9300000000000068 -(PID.TID 0000.0001) System time: 0.19000000000000128 -(PID.TID 0000.0001) Wall clock time: 3.1173501014709473 +(PID.TID 0000.0001) User time: 3.9961181879043579 +(PID.TID 0000.0001) System time: 0.16225273162126541 +(PID.TID 0000.0001) Wall clock time: 4.6786918640136719 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 283.66000000000025 -(PID.TID 0000.0001) System time: 7.8900000000000006 -(PID.TID 0000.0001) Wall clock time: 292.31383538246155 +(PID.TID 0000.0001) User time: 198.39634585380554 +(PID.TID 0000.0001) System time: 3.8262175172567368 +(PID.TID 0000.0001) Wall clock time: 204.16623401641846 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 283.57000000000011 -(PID.TID 0000.0001) System time: 7.8900000000000006 -(PID.TID 0000.0001) Wall clock time: 292.26082110404968 +(PID.TID 0000.0001) User time: 198.33629357814789 +(PID.TID 0000.0001) System time: 3.8261404633522034 +(PID.TID 0000.0001) Wall clock time: 204.10614657402039 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20999999999997954 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.16283488273620605 +(PID.TID 0000.0001) User time: 0.23197495937347412 +(PID.TID 0000.0001) System time: 1.1701732873916626E-003 +(PID.TID 0000.0001) Wall clock time: 0.23323249816894531 (PID.TID 0000.0001) No. starts: 238 (PID.TID 0000.0001) No. stops: 238 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.48567962646484375E-003 +(PID.TID 0000.0001) User time: 2.4127960205078125E-003 +(PID.TID 0000.0001) System time: 4.5627355575561523E-005 +(PID.TID 0000.0001) Wall clock time: 2.4616718292236328E-003 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.21927261352539063E-003 +(PID.TID 0000.0001) User time: 7.7676773071289062E-004 +(PID.TID 0000.0001) System time: 1.3515353202819824E-005 +(PID.TID 0000.0001) Wall clock time: 8.6355209350585938E-004 +(PID.TID 0000.0001) No. starts: 119 +(PID.TID 0000.0001) No. stops: 119 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.4493885040283203E-004 +(PID.TID 0000.0001) System time: 1.1131167411804199E-005 +(PID.TID 0000.0001) Wall clock time: 7.6341629028320312E-004 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.22999999999990450 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.20820665359497070 +(PID.TID 0000.0001) User time: 0.28664636611938477 +(PID.TID 0000.0001) System time: 2.6832818984985352E-003 +(PID.TID 0000.0001) Wall clock time: 0.28938436508178711 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.7400000000001228 -(PID.TID 0000.0001) System time: 0.11999999999999922 -(PID.TID 0000.0001) Wall clock time: 6.9103033542633057 +(PID.TID 0000.0001) User time: 7.3606485128402710 +(PID.TID 0000.0001) System time: 5.7166874408721924E-002 +(PID.TID 0000.0001) Wall clock time: 7.4192447662353516 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.36000000000001364 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.38752579689025879 +(PID.TID 0000.0001) User time: 0.61490762233734131 +(PID.TID 0000.0001) System time: 1.0374188423156738E-003 +(PID.TID 0000.0001) Wall clock time: 0.61586022377014160 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 229.72000000000060 -(PID.TID 0000.0001) System time: 1.9499999999999993 -(PID.TID 0000.0001) Wall clock time: 232.34142994880676 +(PID.TID 0000.0001) User time: 92.168635368347168 +(PID.TID 0000.0001) System time: 0.85333801805973053 +(PID.TID 0000.0001) Wall clock time: 93.042864799499512 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 19.089999999999975 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 19.153187036514282 +(PID.TID 0000.0001) User time: 37.643460988998413 +(PID.TID 0000.0001) System time: 0.19758713245391846 +(PID.TID 0000.0001) Wall clock time: 37.849582910537720 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6300000000000523 -(PID.TID 0000.0001) System time: 0.44999999999999929 -(PID.TID 0000.0001) Wall clock time: 2.0801777839660645 +(PID.TID 0000.0001) User time: 2.7910025119781494 +(PID.TID 0000.0001) System time: 8.0581605434417725E-003 +(PID.TID 0000.0001) Wall clock time: 2.7992734909057617 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.0199999999999818 -(PID.TID 0000.0001) System time: 9.99999999999978684E-003 -(PID.TID 0000.0001) Wall clock time: 3.0134322643280029 +(PID.TID 0000.0001) User time: 5.3639750480651855 +(PID.TID 0000.0001) System time: 6.0160160064697266E-003 +(PID.TID 0000.0001) Wall clock time: 5.3711767196655273 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.16000000000008185 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.17284250259399414 +(PID.TID 0000.0001) User time: 0.21436524391174316 +(PID.TID 0000.0001) System time: 1.0108947753906250E-003 +(PID.TID 0000.0001) Wall clock time: 0.21561694145202637 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.1099999999999000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.1281442642211914 +(PID.TID 0000.0001) User time: 2.8788812160491943 +(PID.TID 0000.0001) System time: 9.3603134155273438E-004 +(PID.TID 0000.0001) Wall clock time: 2.8802292346954346 (PID.TID 0000.0001) No. starts: 238 (PID.TID 0000.0001) No. stops: 238 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 37.969999999999970 -(PID.TID 0000.0001) System time: 3.3600000000000012 -(PID.TID 0000.0001) Wall clock time: 41.403006076812744 +(PID.TID 0000.0001) User time: 57.868805170059204 +(PID.TID 0000.0001) System time: 1.5035719871520996 +(PID.TID 0000.0001) Wall clock time: 59.384299993515015 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 12.550000000000068 -(PID.TID 0000.0001) System time: 1.3499999999999996 -(PID.TID 0000.0001) Wall clock time: 13.945474863052368 +(PID.TID 0000.0001) User time: 12.676211595535278 +(PID.TID 0000.0001) System time: 0.64795017242431641 +(PID.TID 0000.0001) Wall clock time: 13.325975418090820 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.1200000000000614 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.1955952644348145 +(PID.TID 0000.0001) User time: 5.0524177551269531 +(PID.TID 0000.0001) System time: 1.9073486328125000E-006 +(PID.TID 0000.0001) Wall clock time: 5.0529780387878418 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.00000000000591172E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.99112510681152344E-002 +(PID.TID 0000.0001) User time: 0.16273307800292969 +(PID.TID 0000.0001) System time: 9.8378658294677734E-003 +(PID.TID 0000.0001) Wall clock time: 0.46903610229492188 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.00000000000409273E-002 -(PID.TID 0000.0001) System time: 2.99999999999993605E-002 -(PID.TID 0000.0001) Wall clock time: 0.11020874977111816 +(PID.TID 0000.0001) User time: 0.12366485595703125 +(PID.TID 0000.0001) System time: 2.5375843048095703E-002 +(PID.TID 0000.0001) Wall clock time: 0.33588004112243652 (PID.TID 0000.0001) No. starts: 119 (PID.TID 0000.0001) No. stops: 119 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.00000000000318323E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.27124404907226563E-002 +(PID.TID 0000.0001) User time: 5.9820175170898438E-002 +(PID.TID 0000.0001) System time: 7.0810317993164062E-005 +(PID.TID 0000.0001) Wall clock time: 5.9868812561035156E-002 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP (A) [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 58.660000000000004 -(PID.TID 0000.0001) System time: 0.19999999999999929 -(PID.TID 0000.0001) Wall clock time: 59.022083044052124 +(PID.TID 0000.0001) User time: 62.604223251342773 +(PID.TID 0000.0001) System time: 0.13065481185913086 +(PID.TID 0000.0001) Wall clock time: 62.979377985000610 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 251.25999999999999 -(PID.TID 0000.0001) System time: 0.14000000000000057 -(PID.TID 0000.0001) Wall clock time: 252.09101605415344 +(PID.TID 0000.0001) User time: 178.29791259765625 +(PID.TID 0000.0001) System time: 0.13392019271850586 +(PID.TID 0000.0001) Wall clock time: 179.04487919807434 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) // ====================================================== @@ -2914,9 +2990,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 155100 +(PID.TID 0000.0001) // No. barriers = 155144 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 155100 +(PID.TID 0000.0001) // Total barrier spins = 155144 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output_tap_adj.txt b/verification/isomip/results/output_tap_adj.txt new file mode 100644 index 0000000000..a9ed691940 --- /dev/null +++ b/verification/isomip/results/output_tap_adj.txt @@ -0,0 +1,3724 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 05:47:58 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 4 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 25 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 25 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 30 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 50 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 100 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 8 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 4) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // Tile number: 000005 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // EAST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // Tile number: 000006 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // EAST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // Tile number: 000007 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // EAST: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // SOUTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000008 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // EAST: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // SOUTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > Tref = 30*-1.9, +(PID.TID 0000.0001) > Sref = 30*34.4, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) > viscAh=600.0, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.FALSE., +(PID.TID 0000.0001) > diffKhT=100.0, +(PID.TID 0000.0001) >#- diffKzT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKzT=5.E-5, +(PID.TID 0000.0001) > diffKhS=100.0, +(PID.TID 0000.0001) > diffKzS=5.E-5, +(PID.TID 0000.0001) > bottomDragQuadratic=2.5E-3, +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > HeatCapacity_Cp = 3974.0, +(PID.TID 0000.0001) > rhoConst=1030., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > convertFW2Salt = 33.4, +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > hFacMin=0.10, +(PID.TID 0000.0001) > nonHydrostatic=.FALSE., +(PID.TID 0000.0001) > useCDScheme = .TRUE., +(PID.TID 0000.0001) >#ph( +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) ># ivdc_kappa = 7200., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > nonlinFreeSurf=0, +(PID.TID 0000.0001) > hFacInf=0.05, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) >#ph) +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=8640, +(PID.TID 0000.0001) > nTimeSteps=5, +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > cAdjFreq = 1., +(PID.TID 0000.0001) > tauCD = 400000., +(PID.TID 0000.0001) > pChkptFreq=0.0, +(PID.TID 0000.0001) > chkptFreq=0.0, +(PID.TID 0000.0001) > dumpFreq=0.0, +(PID.TID 0000.0001) > taveFreq=0.0, +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > adjMonitorFreq=1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > ygOrigin = -80.0, +(PID.TID 0000.0001) > delX=50*0.3, +(PID.TID 0000.0001) > delY=100*0.1, +(PID.TID 0000.0001) > delZ=30*30.0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile='bathy.box', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useShelfIce=.TRUE., +(PID.TID 0000.0001) > useGrdchk=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled but not used ( useGMRedi = F ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/shelfice compiled and used ( useShelfIce = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_READPARMS: opening data.shelfice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.shelfice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.shelfice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># =================================== +(PID.TID 0000.0001) ># | Parameters for SHELFICE package | +(PID.TID 0000.0001) ># =================================== +(PID.TID 0000.0001) > &SHELFICE_PARM01 +(PID.TID 0000.0001) > SHELFICEboundaryLayer = .TRUE., +(PID.TID 0000.0001) > SHELFICEtopoFile='icetopo.exp1', +(PID.TID 0000.0001) > SHELFICEloadAnomalyFile = 'phi0surf.exp1.jmd95z', +(PID.TID 0000.0001) > useISOMIPTD = .TRUE., +(PID.TID 0000.0001) > no_slip_shelfice = .false., +(PID.TID 0000.0001) > SHELFICEwriteState = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_READPARMS: finished reading data.shelfice +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_shifwflx', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_shicoefft', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr2d_preproc_c(1,1)= 'log10ctrl', +(PID.TID 0000.0001) > xx_genarr2d_preproc_r(1,1)= -4., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) >#revert to default 1 month +(PID.TID 0000.0001) ># lastinterval=7776000., +(PID.TID 0000.0001) > mult_test=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > iglopos = 20, +(PID.TID 0000.0001) > jglopos = 24, +(PID.TID 0000.0001) > kglopos = 20, +(PID.TID 0000.0001) ># nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 1.4850000000000E+01 +(PID.TID 0000.0001) %MON XC_min = 1.5000000000000E-01 +(PID.TID 0000.0001) %MON XC_mean = 7.5000000000000E+00 +(PID.TID 0000.0001) %MON XC_sd = 4.3292609068985E+00 +(PID.TID 0000.0001) %MON XG_max = 1.4700000000000E+01 +(PID.TID 0000.0001) %MON XG_min = 1.1102230246252E-16 +(PID.TID 0000.0001) %MON XG_mean = 7.3500000000000E+00 +(PID.TID 0000.0001) %MON XG_sd = 4.3292609068985E+00 +(PID.TID 0000.0001) %MON DXC_max = 1.1380125394806E+04 +(PID.TID 0000.0001) %MON DXC_min = 5.8203914905589E+03 +(PID.TID 0000.0001) %MON DXC_mean = 8.6215028627207E+03 +(PID.TID 0000.0001) %MON DXC_sd = 1.6219001271572E+03 +(PID.TID 0000.0001) %MON DXF_max = 1.1380125394806E+04 +(PID.TID 0000.0001) %MON DXF_min = 5.8203914905589E+03 +(PID.TID 0000.0001) %MON DXF_mean = 8.6215028627207E+03 +(PID.TID 0000.0001) %MON DXF_sd = 1.6219001271572E+03 +(PID.TID 0000.0001) %MON DXG_max = 1.1352761512017E+04 +(PID.TID 0000.0001) %MON DXG_min = 5.7917296935586E+03 +(PID.TID 0000.0001) %MON DXG_mean = 8.5934208253080E+03 +(PID.TID 0000.0001) %MON DXG_sd = 1.6222785520817E+03 +(PID.TID 0000.0001) %MON DXV_max = 1.1352761512017E+04 +(PID.TID 0000.0001) %MON DXV_min = 5.7917296935586E+03 +(PID.TID 0000.0001) %MON DXV_mean = 8.5934208253080E+03 +(PID.TID 0000.0001) %MON DXV_sd = 1.6222785520817E+03 +(PID.TID 0000.0001) %MON YC_max = -7.0050000000001E+01 +(PID.TID 0000.0001) %MON YC_min = -7.9950000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = -7.5000000000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 2.8866070047720E+00 +(PID.TID 0000.0001) %MON YG_max = -7.0100000000001E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -7.5050000000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 2.8866070047721E+00 +(PID.TID 0000.0001) %MON DYC_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYF_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYG_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYU_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON RA_max = 1.2652134272379E+08 +(PID.TID 0000.0001) %MON RA_min = 6.4709633770803E+07 +(PID.TID 0000.0001) %MON RA_mean = 9.5851678311587E+07 +(PID.TID 0000.0001) %MON RA_sd = 1.8031873527992E+07 +(PID.TID 0000.0001) %MON RAW_max = 1.2652134272379E+08 +(PID.TID 0000.0001) %MON RAW_min = 6.4709633770803E+07 +(PID.TID 0000.0001) %MON RAW_mean = 9.5851678311587E+07 +(PID.TID 0000.0001) %MON RAW_sd = 1.8031873527992E+07 +(PID.TID 0000.0001) %MON RAS_max = 1.2621711802744E+08 +(PID.TID 0000.0001) %MON RAS_min = 6.4390979194019E+07 +(PID.TID 0000.0001) %MON RAS_mean = 9.5539469354603E+07 +(PID.TID 0000.0001) %MON RAS_sd = 1.8036080760153E+07 +(PID.TID 0000.0001) %MON RAZ_max = 1.2621711802744E+08 +(PID.TID 0000.0001) %MON RAZ_min = 6.4390979194019E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 9.5539469354603E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 1.8036080760153E+07 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 311052 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 0 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 0 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 0 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 7200 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 14400 +(PID.TID 0000.0001) ctrl-wet 8: atmos 14400 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 30 311052 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2989 2940 2928 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 3087 3038 3024 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3185 3136 3120 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3332 3283 3264 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3430 3381 3360 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3577 3528 3504 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3675 3626 3600 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 3773 3724 3696 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 3920 3871 3840 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 4018 3969 3936 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 4165 4116 4080 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 4263 4214 4176 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 4361 4312 4272 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 4508 4459 4416 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 21 4606 4557 4512 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 22 4753 4704 4656 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 23 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 24 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 25 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 26 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 27 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 28 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 29 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 30 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 17a:surface wet I = 576 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 1 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 2 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 3 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 4 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 5 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 6 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 7 2989 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 8 3087 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 9 3185 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 10 3332 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 11 3430 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 12 3577 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 13 3675 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 14 3773 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 15 3920 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 16 4018 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 17 4165 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 18 4263 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 19 4361 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 20 4508 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 21 4606 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 22 4753 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 23 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 24 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 25 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 26 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 27 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 28 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 29 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 30 4851 +(PID.TID 0000.0001) ctrl-wet 17c: global SUM(K) shelfice 4851 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 5 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 311052 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 18750 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 007200 006792 006900 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 007500 007075 007500 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 013200 013032 012650 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013750 013575 013750 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0003 014400 014400 013800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0003 015000 015000 015000 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0004 014400 014400 013800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0004 015000 015000 015000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shicoefft +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shifwflx +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = -1.3709057042516E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4360464034757E-04 +(PID.TID 0000.0001) %MON fCori_mean = -1.4069429304698E-04 +(PID.TID 0000.0001) %MON fCori_sd = 1.9069739624987E-06 +(PID.TID 0000.0001) %MON fCoriG_max = -1.3713394327439E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4362679550910E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.4072713798624E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.9008093726821E-06 +(PID.TID 0000.0001) %MON fCoriCos_max = 4.9761447480159E-05 +(PID.TID 0000.0001) %MON fCoriCos_min = 2.5450607565678E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 3.7698922201606E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 7.0920218535055E-06 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0404366262810520E-03 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.027768983359415E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.027915190977028E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.028061298013372E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.028207304511914E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.028353210516147E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.028499016069585E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028644721215765E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.028790325998246E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.028935830460613E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.029081234646470E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.029226538599445E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.029371742363190E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.029516845981377E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.029661849497701E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.029806752955880E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.029951556399652E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.030096259872781E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.030240863419048E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.030385367082259E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.030529770906240E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.030674074934840E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.030818279211929E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.030962383781397E+03, /* K = 23 */ +(PID.TID 0000.0001) 1.031106388687158E+03, /* K = 24 */ +(PID.TID 0000.0001) 1.031250293973144E+03, /* K = 25 */ +(PID.TID 0000.0001) 1.031394099683310E+03, /* K = 26 */ +(PID.TID 0000.0001) 1.031537805861633E+03, /* K = 27 */ +(PID.TID 0000.0001) 1.031681412552109E+03, /* K = 28 */ +(PID.TID 0000.0001) 1.031824919798755E+03, /* K = 29 */ +(PID.TID 0000.0001) 1.031968327645610E+03 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 30 @ 0.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 6.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 1.000000000000000E-03 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 2.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 0.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 5.000000000000000E-05 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.974000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.340000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 30 @ 1.800000000000000E+03 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 4.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.955000000000001E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 8640 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 8645 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.556100000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 29 @ 3.000000000000000E+01, /* K = 2: 30 */ +(PID.TID 0000.0001) 1.500000000000000E+01 /* K = 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 30 @ 3.000000000000000E+01 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 50 @ 3.000000000000000E-01 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 100 @ 1.000000000000000E-01 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.500000000000001E-01, /* I = 1 */ +(PID.TID 0000.0001) 4.500000000000001E-01, /* I = 2 */ +(PID.TID 0000.0001) 7.500000000000002E-01, /* I = 3 */ +(PID.TID 0000.0001) 1.050000000000000E+00, /* I = 4 */ +(PID.TID 0000.0001) 1.350000000000000E+00, /* I = 5 */ +(PID.TID 0000.0001) 1.650000000000000E+00, /* I = 6 */ +(PID.TID 0000.0001) 1.950000000000000E+00, /* I = 7 */ +(PID.TID 0000.0001) 2.250000000000000E+00, /* I = 8 */ +(PID.TID 0000.0001) 2.550000000000000E+00, /* I = 9 */ +(PID.TID 0000.0001) 2.850000000000000E+00, /* I = 10 */ +(PID.TID 0000.0001) 3.149999999999999E+00, /* I = 11 */ +(PID.TID 0000.0001) 3.449999999999999E+00, /* I = 12 */ +(PID.TID 0000.0001) 3.749999999999999E+00, /* I = 13 */ +(PID.TID 0000.0001) 4.049999999999999E+00, /* I = 14 */ +(PID.TID 0000.0001) 4.350000000000000E+00, /* I = 15 */ +(PID.TID 0000.0001) 4.649999999999999E+00, /* I = 16 */ +(PID.TID 0000.0001) 4.949999999999999E+00, /* I = 17 */ +(PID.TID 0000.0001) 5.249999999999998E+00, /* I = 18 */ +(PID.TID 0000.0001) 5.549999999999999E+00, /* I = 19 */ +(PID.TID 0000.0001) 5.849999999999998E+00, /* I = 20 */ +(PID.TID 0000.0001) 6.149999999999999E+00, /* I = 21 */ +(PID.TID 0000.0001) 6.449999999999998E+00, /* I = 22 */ +(PID.TID 0000.0001) 6.749999999999998E+00, /* I = 23 */ +(PID.TID 0000.0001) 7.049999999999997E+00, /* I = 24 */ +(PID.TID 0000.0001) 7.349999999999997E+00, /* I = 25 */ +(PID.TID 0000.0001) 7.649999999999997E+00, /* I = 26 */ +(PID.TID 0000.0001) 7.949999999999998E+00, /* I = 27 */ +(PID.TID 0000.0001) 8.249999999999998E+00, /* I = 28 */ +(PID.TID 0000.0001) 8.549999999999999E+00, /* I = 29 */ +(PID.TID 0000.0001) 8.850000000000000E+00, /* I = 30 */ +(PID.TID 0000.0001) 9.150000000000000E+00, /* I = 31 */ +(PID.TID 0000.0001) 9.450000000000001E+00, /* I = 32 */ +(PID.TID 0000.0001) 9.750000000000002E+00, /* I = 33 */ +(PID.TID 0000.0001) 1.005000000000000E+01, /* I = 34 */ +(PID.TID 0000.0001) 1.035000000000000E+01, /* I = 35 */ +(PID.TID 0000.0001) 1.065000000000000E+01, /* I = 36 */ +(PID.TID 0000.0001) 1.095000000000001E+01, /* I = 37 */ +(PID.TID 0000.0001) 1.125000000000001E+01, /* I = 38 */ +(PID.TID 0000.0001) 1.155000000000000E+01, /* I = 39 */ +(PID.TID 0000.0001) 1.185000000000001E+01, /* I = 40 */ +(PID.TID 0000.0001) 1.215000000000001E+01, /* I = 41 */ +(PID.TID 0000.0001) 1.245000000000001E+01, /* I = 42 */ +(PID.TID 0000.0001) 1.275000000000001E+01, /* I = 43 */ +(PID.TID 0000.0001) 1.305000000000001E+01, /* I = 44 */ +(PID.TID 0000.0001) 1.335000000000001E+01, /* I = 45 */ +(PID.TID 0000.0001) 1.365000000000001E+01, /* I = 46 */ +(PID.TID 0000.0001) 1.395000000000001E+01, /* I = 47 */ +(PID.TID 0000.0001) 1.425000000000001E+01, /* I = 48 */ +(PID.TID 0000.0001) 1.455000000000001E+01, /* I = 49 */ +(PID.TID 0000.0001) 1.485000000000001E+01 /* I = 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.995000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.985000000000001E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.975000000000001E+01, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.775000000000013E+01, /* J = 23 */ +(PID.TID 0000.0001) -7.765000000000013E+01, /* J = 24 */ +(PID.TID 0000.0001) -7.755000000000014E+01, /* J = 25 */ +(PID.TID 0000.0001) -7.745000000000014E+01, /* J = 26 */ +(PID.TID 0000.0001) -7.735000000000015E+01, /* J = 27 */ +(PID.TID 0000.0001) -7.725000000000016E+01, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.525000000000027E+01, /* J = 48 */ +(PID.TID 0000.0001) -7.515000000000028E+01, /* J = 49 */ +(PID.TID 0000.0001) -7.505000000000028E+01, /* J = 50 */ +(PID.TID 0000.0001) -7.495000000000029E+01, /* J = 51 */ +(PID.TID 0000.0001) -7.485000000000029E+01, /* J = 52 */ +(PID.TID 0000.0001) -7.475000000000030E+01, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.275000000000041E+01, /* J = 73 */ +(PID.TID 0000.0001) -7.265000000000042E+01, /* J = 74 */ +(PID.TID 0000.0001) -7.255000000000042E+01, /* J = 75 */ +(PID.TID 0000.0001) -7.245000000000043E+01, /* J = 76 */ +(PID.TID 0000.0001) -7.235000000000043E+01, /* J = 77 */ +(PID.TID 0000.0001) -7.225000000000044E+01, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.025000000000055E+01, /* J = 98 */ +(PID.TID 0000.0001) -7.015000000000056E+01, /* J = 99 */ +(PID.TID 0000.0001) -7.005000000000057E+01 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -4.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -1.050000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -1.350000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -1.650000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.950000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -2.250000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.550000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.850000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.150000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -3.450000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -3.750000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -4.050000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -4.350000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -4.650000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -4.950000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -5.250000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -5.550000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -5.850000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -6.150000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -6.450000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -6.750000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -7.050000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -7.350000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -7.650000000000000E+02, /* K = 26 */ +(PID.TID 0000.0001) -7.950000000000000E+02, /* K = 27 */ +(PID.TID 0000.0001) -8.250000000000000E+02, /* K = 28 */ +(PID.TID 0000.0001) -8.550000000000000E+02, /* K = 29 */ +(PID.TID 0000.0001) -8.850000000000000E+02 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -6.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -9.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -1.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.800000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -2.100000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.400000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.700000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -3.300000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -3.900000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -4.200000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -4.500000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -4.800000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -5.100000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -5.400000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -5.700000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -6.000000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -6.300000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -6.600000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -6.900000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -7.200000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -7.500000000000000E+02, /* K = 26 */ +(PID.TID 0000.0001) -7.800000000000000E+02, /* K = 27 */ +(PID.TID 0000.0001) -8.100000000000000E+02, /* K = 28 */ +(PID.TID 0000.0001) -8.400000000000000E+02, /* K = 29 */ +(PID.TID 0000.0001) -8.700000000000000E+02, /* K = 30 */ +(PID.TID 0000.0001) -9.000000000000000E+02 /* K = 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.820391490558872E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.820391490558872E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.877701765291692E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.934994135525598E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.076813247621209E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.133689397375063E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.190543816673855E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.247376332329164E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.304186771219292E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.360974960289787E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.491800393599013E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.548081485571185E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.604336538604706E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.660565381336924E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.716767842485036E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.772943750846600E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.890622914885218E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.946201814818334E+03, /* J = 74 */ +(PID.TID 0000.0001) 1.000175041689580E+04, /* J = 75 */ +(PID.TID 0000.0001) 1.005726855190695E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.011275605073392E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.016821274435215E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.127061807330668E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.132538898360582E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.138012539480601E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.791729693558576E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.791729693558576E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.849048855077854E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.906350199379949E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.048367077963129E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.105254027978149E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.162119334157175E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.218962823278620E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.275784322187360E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.332583657795253E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.463650136583461E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.519944183739159E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.576212277667308E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.632454246965530E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.688669920311038E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.744859126461139E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.862822156126382E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.918416141504455E+03, /* J = 74 */ +(PID.TID 0000.0001) 9.973979913666863E+03, /* J = 75 */ +(PID.TID 0000.0001) 1.002951330335672E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.008501614140969E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.014048825875450E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.124321973312895E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.129800783041847E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.135276151201679E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.820391490558872E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.820391490558872E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.877701765291692E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.934994135525598E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.076813247621209E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.133689397375063E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.190543816673855E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.247376332329164E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.304186771219292E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.360974960289787E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.491800393599013E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.548081485571185E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.604336538604706E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.660565381336924E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.716767842485036E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.772943750846600E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.890622914885218E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.946201814818334E+03, /* J = 74 */ +(PID.TID 0000.0001) 1.000175041689580E+04, /* J = 75 */ +(PID.TID 0000.0001) 1.005726855190695E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.011275605073392E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.016821274435215E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.127061807330668E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.132538898360582E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.138012539480601E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.791729693558576E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.791729693558576E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.849048855077854E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.906350199379949E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.048367077963129E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.105254027978149E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.162119334157175E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.218962823278620E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.275784322187360E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.332583657795253E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.463650136583461E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.519944183739159E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.576212277667308E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.632454246965530E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.688669920311038E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.744859126461139E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.862822156126382E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.918416141504455E+03, /* J = 74 */ +(PID.TID 0000.0001) 9.973979913666863E+03, /* J = 75 */ +(PID.TID 0000.0001) 1.002951330335672E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.008501614140969E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.014048825875450E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.124321973312895E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.129800783041847E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.135276151201679E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.470963377080289E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.470963377080289E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.534679484410104E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.598375685977945E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.867821163932665E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.931054622142966E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.994263920984067E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.057448867913349E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.120609270456599E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.183744936212724E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.440967921416211E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.503539809503193E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.566082748163140E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.628596546870193E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.691081015209354E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.753535962826957E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.099614325987181E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.105793446869293E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.111969199312560E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.118141564504991E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.124310523644033E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.130476057938687E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.253038681465364E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.259127972112936E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.265213427237870E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.470963377080289E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.470963377080289E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.534679484410104E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.598375685977945E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.867821163932665E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.931054622142966E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.994263920984067E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.057448867913349E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.120609270456599E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.183744936212724E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.440967921416211E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.503539809503193E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.566082748163140E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.628596546870193E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.691081015209354E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.753535962826957E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.099614325987181E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.105793446869293E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.111969199312560E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.118141564504991E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.124310523644033E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.130476057938687E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.253038681465364E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.259127972112936E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.265213427237870E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.439097919401864E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.439097919401864E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.502823906837179E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.566530085543716E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.836195435256335E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.899440900921808E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.962662303520055E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.025859450470714E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.089032149259475E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.152180207452223E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.409671180895932E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.472257472228888E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.534814909420149E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.597343301913190E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.659842459236403E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.722312190998378E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.096523508263446E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.102704306306916E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.108881745321664E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.115055806490511E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.121226471005947E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.127393720071080E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.249992603617116E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.256083805070198E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.262171180274426E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 4.665024516720074E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_CHECK: #define ALLOW_SHELFICE +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_CHECK: start of SHELFICE config. summary +(PID.TID 0000.0001) SHELFICEisOn = /* package is turned on */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useISOMIPTD = /* use simple isomip thermodynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEconserve = /* use a conservative form of boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEMassStepping = /* step forward ice shelf mass/thickness */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_shelfice = /* use no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEdragLinear = /* linear drag coefficient */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEdragQuadratic = /* quadratic drag coefficient */ +(PID.TID 0000.0001) 2.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEselectDragQuadr = /* select quadratic drag option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICElatentHeat = /* latent heat of ice */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEheatCapacity_Cp = /* heat capacity of ice shelf */ +(PID.TID 0000.0001) 2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoShelfice = /* density of ice shelf */ +(PID.TID 0000.0001) 9.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEkappa = /* thermal conductivity of ice shelf */ +(PID.TID 0000.0001) 1.540000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEthetaSurface = /* surface temperature above i.s. */ +(PID.TID 0000.0001) -2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEheatTransCoeff = /* heat transfer coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEsaltTransCoeff = /* salt transfer coefficient */ +(PID.TID 0000.0001) 5.050000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ +(PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEmassFile = /* file name of loaded mass field */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEtopoFile = /* file name of loaded under-ice topography */ +(PID.TID 0000.0001) 'icetopo.exp1' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEMassDynTendFile = /* file name of loaded dynamic mass tendency field */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_CHECK: end of SHELFICE config. summary +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8640 +(PID.TID 0000.0001) %MON time_secondsf = 1.5552000000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1547478263152E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.6792518859505E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8025747994407E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0200397966504E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5371559200346E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0225293882088E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1431056075099E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8733309522011E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1583631990119E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.2791047697505E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9338955473099E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3256941080851E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6529086888561E-08 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7751314813082E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9212700380926E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.2878246713501E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010769874736E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5364649454100E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.2032264231507E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8639064911625E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8364995507330E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9142907392762E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1084271484799E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.3421694822619E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4425235078521E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4119681589956E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391243332601E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3889856166526E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3297324617654E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4012427019763E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.3691067728586E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2064619248418E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2064619248418E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 8.1423589033282E-09 +(PID.TID 0000.0001) %MON ke_max = 7.7392672876306E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.4630146461457E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3549373278644E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.2468259247500E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007197040361E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7881275277953E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023212285235E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5282169260664E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.3585088253212E-23 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2568230410243E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 +(PID.TID 0000.0001) cg2d_init_res = 5.92335148180962E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 208 +(PID.TID 0000.0001) cg2d_last_res = 8.67118334995589E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8641 +(PID.TID 0000.0001) %MON time_secondsf = 1.5553800000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1297850742410E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.3081999750955E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8012119279803E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.7699161294736E-04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.2879579300028E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9546194880807E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2109459490407E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5152845670729E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1686693297311E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6836994750250E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9571191009408E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257529692135E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 4.6520784439842E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7773579277322E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9154529408825E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6533820220217E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2001883200366E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.8634396603185E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0998932174183E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8107197791751E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8769133075334E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0039165924098E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143346373631E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1203876728575E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2899794806641E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4409203480396E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4118343183288E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391225880258E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.3968247720089E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3656929664507E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6030980579292E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4320283551797E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2011299202194E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6030976006097E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4067064729375E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2011299202194E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2011299202194E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -3.5739188131277E-07 +(PID.TID 0000.0001) %MON ke_max = 7.7643782254143E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.4807859453178E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3577016281599E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.2945443154779E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161344051E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7877721776027E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023173999685E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5272519968902E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3749551355460E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5792030112254E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 +(PID.TID 0000.0001) cg2d_init_res = 7.81417688289130E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 +(PID.TID 0000.0001) cg2d_last_res = 7.78445486193687E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8642 +(PID.TID 0000.0001) %MON time_secondsf = 1.5555600000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1463566593327E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.5267532527804E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7996786975873E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0079944575935E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3155054054675E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9398894875373E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2353521860617E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5631416951466E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1759598738630E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.8726667219949E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9907226964461E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3257460329612E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.2687335075059E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7843875047707E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9177033280319E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.6583915023052E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2002284533958E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.1864244807042E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0322040155113E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7562361863937E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8819015172070E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0063514953273E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143620650998E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1279691208325E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2685975253853E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4407234515134E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4117550534654E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391214975789E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4016977572826E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.3894799714349E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.6757173728387E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.4866487175222E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2013707203745E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.6757169063021E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.4611118035192E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2013707203745E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2013707203745E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -3.3188794538940E-07 +(PID.TID 0000.0001) %MON ke_max = 7.8722588856023E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5085118281137E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3632402845810E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3451691137484E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161342172E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7878876010294E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023173997669E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5271645258010E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.5568184872536E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6316470904549E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 +(PID.TID 0000.0001) cg2d_init_res = 1.72001669011769E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 197 +(PID.TID 0000.0001) cg2d_last_res = 9.87978592923196E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8643 +(PID.TID 0000.0001) %MON time_secondsf = 1.5557400000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1536254520704E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6569155368574E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8001897743849E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0188908682493E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3041786785357E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9318790821273E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2573148356828E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7316080117260E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1855697734319E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0072785426804E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0271984978677E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3256384500229E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1221947830907E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7917860446509E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9222095538517E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7010320846439E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2010148387396E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.9757593762081E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0039321927525E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7351911545006E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8848514649071E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0087787191714E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9143894063656E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1355951256008E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2540043389993E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4406075198585E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4116759381789E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391204105539E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4065624878087E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4144939274835E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7410659379499E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.5459376555190E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2060890324373E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7410654631190E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5201673303083E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2060890324373E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2060890324373E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.8726153962423E-07 +(PID.TID 0000.0001) %MON ke_max = 8.0027472782397E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5400846405013E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3750180231435E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.3890806785024E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161343390E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7879862057510E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023173998976E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270974746461E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.3823021934751E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6883699757173E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 +(PID.TID 0000.0001) cg2d_init_res = 7.25588539040786E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 197 +(PID.TID 0000.0001) cg2d_last_res = 7.69909117790853E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8644 +(PID.TID 0000.0001) %MON time_secondsf = 1.5559200000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1504267527195E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6787364206768E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7998490565198E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0156579499907E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3048231848139E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9318076681058E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2768243801314E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.8856544453925E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1975669536457E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0705538453939E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.0635317383792E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3266613262401E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3244460423588E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7989413791475E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9286506342740E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7473681193701E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2024782201245E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.5330598346967E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0052151820307E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7340354138429E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8867166228380E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0111941493779E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144166111002E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1432488631202E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2458143760952E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4405346990436E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4115974044829E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391193290327E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4114075536451E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4409787723110E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7991154336928E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6060942475579E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2148693207471E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7991149514940E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.5789920462773E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2148693207471E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2148693207471E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -2.3430238303108E-07 +(PID.TID 0000.0001) %MON ke_max = 8.1435797051605E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5739217653894E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3833892696785E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4264960266998E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161358926E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7880583308052E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023174015639E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5270423341518E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9912799456007E-11 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5417166135624E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 +(PID.TID 0000.0001) cg2d_init_res = 7.32571989492601E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 194 +(PID.TID 0000.0001) cg2d_last_res = 9.70841917182863E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8645 +(PID.TID 0000.0001) %MON time_secondsf = 1.5561000000000E+07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1401198879528E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.6394694418117E-03 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.8005730819832E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 1.0053283028158E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 8.3058133517659E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9394311651727E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2937809090799E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.9715795963834E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2111407840992E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0620702694315E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.1000376774801E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3283507781725E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.3895674176987E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.8055318207216E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.9364939604842E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.7975774055182E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2044364812760E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.2978824021557E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0310962824225E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7499527465480E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.8880270544366E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0136027898164E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.9144436800926E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.1509284751551E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.2438241711797E-06 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.4404839125104E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.4115194477133E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4391182530099E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4162327050691E-02 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.4689176371157E-06 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.8495685827964E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6654652400109E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2266188876560E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.8495680941939E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6380963669641E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.2266188876560E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.2266188876560E-03 +(PID.TID 0000.0001) %MON pe_b_mean = -1.8329480305292E-07 +(PID.TID 0000.0001) %MON ke_max = 8.2873866078409E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.6082200419969E-06 +(PID.TID 0000.0001) %MON ke_vol = 2.9239970672193E+14 +(PID.TID 0000.0001) %MON vort_r_min = -2.3864684389310E-06 +(PID.TID 0000.0001) %MON vort_r_max = 4.4564012490855E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.4007161401466E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 1.7881029417119E-06 +(PID.TID 0000.0001) %MON vort_p_mean = -1.5023174061264E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 7.5269968181092E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0065431742770E-10 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2583579929228E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 8645 ckptA + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 + cg2d: Sum(rhs),rhsMax = -3.77475828372553E-14 1.86559974741546E-05 + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 + cg2d: Sum(rhs),rhsMax = -1.19348975147204E-15 5.40388911727356E-04 + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 + cg2d: Sum(rhs),rhsMax = -1.66533453693773E-15 1.01052818040741E-03 + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 + cg2d: Sum(rhs),rhsMax = -7.07767178198537E-16 1.41335830934060E-03 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = -1.35308431126191E-16 1.64317720494568E-03 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69788973587931E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res exact position met: + grad-res 0 1579 20 24 20 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1579 100450 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 48 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 168 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 336 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 576 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 864 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1200 1 + ph-grd -->hit<-- 20 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 20 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01314006867904E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.13540337926588E-13 5.85469306473081E-02 + cg2d: Sum(rhs),rhsMax = 7.15774661763646E-13 5.84566758727899E-02 + cg2d: Sum(rhs),rhsMax = 7.17675918693317E-13 5.84304388517977E-02 + cg2d: Sum(rhs),rhsMax = 7.19882486954759E-13 5.83701418926658E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702172332D+05 + --> objf_test(bi,bj) = 0.280897909163614D+05 + --> objf_test(bi,bj) = 0.489404247094376D+05 + --> objf_test(bi,bj) = 0.505718413234705D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080781D+05 + --> objf_test(bi,bj) = 0.526358410628565D+05 + --> objf_test(bi,bj) = 0.548290013321757D+05 +(PID.TID 0000.0001) local fc = 0.369788935414963D+06 +(PID.TID 0000.0001) global fc = 0.369788935414963D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935414963E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01369518019135E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.85469318488099E-02 + cg2d: Sum(rhs),rhsMax = 7.19591053410795E-13 5.84566766038431E-02 + cg2d: Sum(rhs),rhsMax = 7.18800019505750E-13 5.84304385091371E-02 + cg2d: Sum(rhs),rhsMax = 7.18550219325209E-13 5.83701413135775E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467417799D+05 + --> objf_test(bi,bj) = 0.280897909163570D+05 + --> objf_test(bi,bj) = 0.489404247096280D+05 + --> objf_test(bi,bj) = 0.505718413234689D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080728D+05 + --> objf_test(bi,bj) = 0.526358410628417D+05 + --> objf_test(bi,bj) = 0.548290013321629D+05 +(PID.TID 0000.0001) local fc = 0.369789011939657D+06 +(PID.TID 0000.0001) global fc = 0.369789011939657D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011939657E+05 +grad-res ------------------------------- + grad-res 0 1 20 24 20 1 1 1 3.69788973588E+05 3.69788935415E+05 3.69789011940E+05 + grad-res 0 1 1 1579 0 1 1 1 -3.82623473991E+00 -3.82623473706E+00 7.44305173050E-10 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82623473990978E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82623473706190E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1580 100450 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1579 2 + ph-grd -->hit<-- 21 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 21 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.15427717068451E-13 5.85469306816518E-02 + cg2d: Sum(rhs),rhsMax = 7.15899561853917E-13 5.84566758534592E-02 + cg2d: Sum(rhs),rhsMax = 7.16940395939503E-13 5.84304387795058E-02 + cg2d: Sum(rhs),rhsMax = 7.18133885690975E-13 5.83701417881289E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702226430D+05 + --> objf_test(bi,bj) = 0.280897909163608D+05 + --> objf_test(bi,bj) = 0.489404247094376D+05 + --> objf_test(bi,bj) = 0.505718413234712D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080780D+05 + --> objf_test(bi,bj) = 0.526358410628565D+05 + --> objf_test(bi,bj) = 0.548290013321756D+05 +(PID.TID 0000.0001) local fc = 0.369788935420372D+06 +(PID.TID 0000.0001) global fc = 0.369788935420372D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935420372E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.17204073907851E-13 5.85469318149153E-02 + cg2d: Sum(rhs),rhsMax = 7.18300419144668E-13 5.84566766228549E-02 + cg2d: Sum(rhs),rhsMax = 7.17439996300584E-13 5.84304385810173E-02 + cg2d: Sum(rhs),rhsMax = 7.16038339731995E-13 5.83701414174443E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467363702D+05 + --> objf_test(bi,bj) = 0.280897909163576D+05 + --> objf_test(bi,bj) = 0.489404247096281D+05 + --> objf_test(bi,bj) = 0.505718413234683D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080728D+05 + --> objf_test(bi,bj) = 0.526358410628418D+05 + --> objf_test(bi,bj) = 0.548290013321630D+05 +(PID.TID 0000.0001) local fc = 0.369789011934248D+06 +(PID.TID 0000.0001) global fc = 0.369789011934248D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011934248E+05 +grad-res ------------------------------- + grad-res 0 2 21 24 20 1 1 1 3.69788973588E+05 3.69788935420E+05 3.69789011934E+05 + grad-res 0 2 2 1580 0 1 1 1 -3.82569377506E+00 -3.82569376670E+00 2.18517948181E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82569377506273E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82569376670290E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1581 100450 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1580 3 + ph-grd -->hit<-- 22 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 22 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01591562624060E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.17259585059082E-13 5.85469307146497E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.84566758385613E-02 + cg2d: Sum(rhs),rhsMax = 7.15039139009832E-13 5.84304387146560E-02 + cg2d: Sum(rhs),rhsMax = 7.16829373637040E-13 5.83701416970187E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702262260D+05 + --> objf_test(bi,bj) = 0.280897909163497D+05 + --> objf_test(bi,bj) = 0.489404247094319D+05 + --> objf_test(bi,bj) = 0.505718413234719D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080780D+05 + --> objf_test(bi,bj) = 0.526358410628564D+05 + --> objf_test(bi,bj) = 0.548290013321755D+05 +(PID.TID 0000.0001) local fc = 0.369788935423939D+06 +(PID.TID 0000.0001) global fc = 0.369788935423939D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935423939E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01369518019135E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.15510983795298E-13 5.85469317822241E-02 + cg2d: Sum(rhs),rhsMax = 7.15635883885568E-13 5.84566766380173E-02 + cg2d: Sum(rhs),rhsMax = 7.16787740273617E-13 5.84304386457272E-02 + cg2d: Sum(rhs),rhsMax = 7.21089854494039E-13 5.83701415081794E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467327872D+05 + --> objf_test(bi,bj) = 0.280897909163687D+05 + --> objf_test(bi,bj) = 0.489404247096335D+05 + --> objf_test(bi,bj) = 0.505718413234675D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080729D+05 + --> objf_test(bi,bj) = 0.526358410628418D+05 + --> objf_test(bi,bj) = 0.548290013321631D+05 +(PID.TID 0000.0001) local fc = 0.369789011930681D+06 +(PID.TID 0000.0001) global fc = 0.369789011930681D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011930681E+05 +grad-res ------------------------------- + grad-res 0 3 22 24 20 1 1 1 3.69788973588E+05 3.69788935424E+05 3.69789011931E+05 + grad-res 0 3 3 1581 0 1 1 1 -3.82533709989E+00 -3.82533707598E+00 6.25193397052E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82533709989334E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82533707597759E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1582 100450 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1581 4 + ph-grd -->hit<-- 23 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 23 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01536051472829E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.85469307462446E-02 + cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.84566758269662E-02 + cg2d: Sum(rhs),rhsMax = 7.19813098015720E-13 5.84304386565081E-02 + cg2d: Sum(rhs),rhsMax = 7.18286541356861E-13 5.83701416171630E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702285955D+05 + --> objf_test(bi,bj) = 0.280897909163007D+05 + --> objf_test(bi,bj) = 0.489404247094275D+05 + --> objf_test(bi,bj) = 0.505718413234691D+05 + --> objf_test(bi,bj) = 0.526377153453499D+05 + --> objf_test(bi,bj) = 0.548292505080779D+05 + --> objf_test(bi,bj) = 0.526358410628564D+05 + --> objf_test(bi,bj) = 0.548290013321754D+05 +(PID.TID 0000.0001) local fc = 0.369788935426252D+06 +(PID.TID 0000.0001) global fc = 0.369788935426252D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935426252E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16524062305268E-13 5.85469317507589E-02 + cg2d: Sum(rhs),rhsMax = 7.17981230025089E-13 5.84566766494781E-02 + cg2d: Sum(rhs),rhsMax = 7.18800019505750E-13 5.84304387036616E-02 + cg2d: Sum(rhs),rhsMax = 7.16093850883226E-13 5.83701415881024E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467304178D+05 + --> objf_test(bi,bj) = 0.280897909164174D+05 + --> objf_test(bi,bj) = 0.489404247096381D+05 + --> objf_test(bi,bj) = 0.505718413234703D+05 + --> objf_test(bi,bj) = 0.526377153453460D+05 + --> objf_test(bi,bj) = 0.548292505080729D+05 + --> objf_test(bi,bj) = 0.526358410628419D+05 + --> objf_test(bi,bj) = 0.548290013321631D+05 +(PID.TID 0000.0001) local fc = 0.369789011928368D+06 +(PID.TID 0000.0001) global fc = 0.369789011928368D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011928368E+05 +grad-res ------------------------------- + grad-res 0 4 23 24 20 1 1 1 3.69788973588E+05 3.69788935426E+05 3.69789011928E+05 + grad-res 0 4 4 1582 0 1 1 1 -3.82510577435E+00 -3.82510575582E+00 4.84318052330E-09 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82510577434841E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82510575582273E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1583 100450 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1582 5 + ph-grd -->hit<-- 24 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 24 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01480540321597E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.14622805375598E-13 5.85469307765247E-02 + cg2d: Sum(rhs),rhsMax = 7.20506987406111E-13 5.84566758186888E-02 + cg2d: Sum(rhs),rhsMax = 7.18952675171636E-13 5.84304386044679E-02 + cg2d: Sum(rhs),rhsMax = 7.18813897293558E-13 5.83701415470407E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702306634D+05 + --> objf_test(bi,bj) = 0.280897909157891D+05 + --> objf_test(bi,bj) = 0.489404247094572D+05 + --> objf_test(bi,bj) = 0.505718413234332D+05 + --> objf_test(bi,bj) = 0.526377153453499D+05 + --> objf_test(bi,bj) = 0.548292505080778D+05 + --> objf_test(bi,bj) = 0.526358410628563D+05 + --> objf_test(bi,bj) = 0.548290013321754D+05 +(PID.TID 0000.0001) local fc = 0.369788935427802D+06 +(PID.TID 0000.0001) global fc = 0.369788935427802D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935427802E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.12194192509230E-13 5.85469317206019E-02 + cg2d: Sum(rhs),rhsMax = 7.20409842891456E-13 5.84566766578026E-02 + cg2d: Sum(rhs),rhsMax = 7.18688997203287E-13 5.84304387555813E-02 + cg2d: Sum(rhs),rhsMax = 7.18688997203287E-13 5.83701416580051E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467283351D+05 + --> objf_test(bi,bj) = 0.280897909169439D+05 + --> objf_test(bi,bj) = 0.489404247096084D+05 + --> objf_test(bi,bj) = 0.505718413235061D+05 + --> objf_test(bi,bj) = 0.526377153453460D+05 + --> objf_test(bi,bj) = 0.548292505080730D+05 + --> objf_test(bi,bj) = 0.526358410628420D+05 + --> objf_test(bi,bj) = 0.548290013321632D+05 +(PID.TID 0000.0001) local fc = 0.369789011926818D+06 +(PID.TID 0000.0001) global fc = 0.369789011926818D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011926818E+05 +grad-res ------------------------------- + grad-res 0 5 24 24 20 1 1 1 3.69788973588E+05 3.69788935428E+05 3.69789011927E+05 + grad-res 0 5 5 1583 0 1 1 1 -3.82495077943E+00 -3.82495077793E+00 3.93936550047E-10 +(PID.TID 0000.0001) ADM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.82495077943234E+00 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.82495077792555E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 20 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 3.6978897358793E+05 3.6978893541496E+05 3.6978901193966E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -3.8262347370619E+00 -3.8262347399098E+00 7.4430517305046E-10 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 21 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 3.6978897358793E+05 3.6978893542037E+05 3.6978901193425E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -3.8256937667029E+00 -3.8256937750627E+00 2.1851794818062E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 22 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 3.6978897358793E+05 3.6978893542394E+05 3.6978901193068E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -3.8253370759776E+00 -3.8253370998933E+00 6.2519339705247E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 23 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 3.6978897358793E+05 3.6978893542625E+05 3.6978901192837E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -3.8251057558227E+00 -3.8251057743484E+00 4.8431805232951E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 24 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 3.6978897358793E+05 3.6978893542780E+05 3.6978901192682E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -3.8249507779256E+00 -3.8249507794323E+00 3.9393655004716E-10 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 3.6885569405074E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 41.674845413770527 +(PID.TID 0000.0001) System time: 4.2744939349358901 +(PID.TID 0000.0001) Wall clock time: 46.152441978454590 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.12070500059053302 +(PID.TID 0000.0001) System time: 1.5841000829823315E-002 +(PID.TID 0000.0001) Wall clock time: 0.13726210594177246 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 26.506362766027451 +(PID.TID 0000.0001) System time: 1.5140011906623840E-002 +(PID.TID 0000.0001) Wall clock time: 26.591539144515991 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4475196599960327E-002 +(PID.TID 0000.0001) System time: 7.5901299715042114E-004 +(PID.TID 0000.0001) Wall clock time: 1.5296220779418945E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 4.1794776916503906E-004 +(PID.TID 0000.0001) System time: 2.0936131477355957E-005 +(PID.TID 0000.0001) Wall clock time: 4.3272972106933594E-004 +(PID.TID 0000.0001) No. starts: 70 +(PID.TID 0000.0001) No. stops: 70 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.4645508527755737E-002 +(PID.TID 0000.0001) System time: 8.1062316894531250E-005 +(PID.TID 0000.0001) Wall clock time: 5.5122137069702148E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.8050889968872070E-002 +(PID.TID 0000.0001) System time: 2.7734786272048950E-004 +(PID.TID 0000.0001) Wall clock time: 3.8473606109619141E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2120076119899750 +(PID.TID 0000.0001) System time: 3.2065063714981079E-003 +(PID.TID 0000.0001) Wall clock time: 1.2193088531494141 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 8.0296397209167480E-002 +(PID.TID 0000.0001) System time: 2.7466565370559692E-004 +(PID.TID 0000.0001) Wall clock time: 8.0912351608276367E-002 +(PID.TID 0000.0001) No. starts: 70 +(PID.TID 0000.0001) No. stops: 70 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 10.887873172760010 +(PID.TID 0000.0001) System time: 1.3457983732223511E-004 +(PID.TID 0000.0001) Wall clock time: 10.916261196136475 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.2579149603843689 +(PID.TID 0000.0001) System time: 2.2845715284347534E-004 +(PID.TID 0000.0001) Wall clock time: 5.2707448005676270 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.37006825208663940 +(PID.TID 0000.0001) System time: 1.6307830810546875E-004 +(PID.TID 0000.0001) Wall clock time: 0.37118363380432129 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.61482894420623779 +(PID.TID 0000.0001) System time: 1.3196468353271484E-004 +(PID.TID 0000.0001) Wall clock time: 0.61673021316528320 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.33442670106887817 +(PID.TID 0000.0001) System time: 1.5120208263397217E-004 +(PID.TID 0000.0001) Wall clock time: 0.33681559562683105 +(PID.TID 0000.0001) No. starts: 130 +(PID.TID 0000.0001) No. stops: 130 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1505485177040100 +(PID.TID 0000.0001) System time: 2.0986646413803101E-003 +(PID.TID 0000.0001) Wall clock time: 7.1717624664306641 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9194575548171997 +(PID.TID 0000.0001) System time: 8.2015991210937500E-005 +(PID.TID 0000.0001) Wall clock time: 1.9240550994873047 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.22248792648315430 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 0.22305130958557129 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.52291601896286011 +(PID.TID 0000.0001) System time: 1.7687678337097168E-005 +(PID.TID 0000.0001) Wall clock time: 0.52448391914367676 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2651195526123047E-002 +(PID.TID 0000.0001) System time: 3.9479583501815796E-003 +(PID.TID 0000.0001) Wall clock time: 2.6683330535888672E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0962448120117188E-002 +(PID.TID 0000.0001) System time: 4.0557235479354858E-003 +(PID.TID 0000.0001) Wall clock time: 5.5197477340698242E-002 +(PID.TID 0000.0001) No. starts: 65 +(PID.TID 0000.0001) No. stops: 65 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 25.361450195312500 +(PID.TID 0000.0001) System time: 4.5380115509033203E-002 +(PID.TID 0000.0001) Wall clock time: 25.475919008255005 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.1711235046386719 +(PID.TID 0000.0001) System time: 3.3753395080566406E-002 +(PID.TID 0000.0001) Wall clock time: 1.2101151943206787 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 24.022026062011719 +(PID.TID 0000.0001) System time: 4.7540664672851562E-003 +(PID.TID 0000.0001) Wall clock time: 24.090009689331055 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 23.999975204467773 +(PID.TID 0000.0001) System time: 2.0809173583984375E-003 +(PID.TID 0000.0001) Wall clock time: 24.065070629119873 +(PID.TID 0000.0001) No. starts: 55 +(PID.TID 0000.0001) No. stops: 55 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 2.1644592285156250E-002 +(PID.TID 0000.0001) System time: 2.6493072509765625E-003 +(PID.TID 0000.0001) Wall clock time: 2.4500131607055664E-002 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000007 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000008 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 118716 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 118716 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/isomip/results/output_tap_tlm.txt b/verification/isomip/results/output_tap_tlm.txt new file mode 100644 index 0000000000..2e1179f99e --- /dev/null +++ b/verification/isomip/results/output_tap_tlm.txt @@ -0,0 +1,3534 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 03:05:07 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 4 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 25 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 25 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 30 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 50 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 100 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 8 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 4) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // Tile number: 000005 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // EAST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // Tile number: 000006 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // EAST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // Tile number: 000007 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // EAST: Tile = 000008, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000004 +(PID.TID 0000.0001) // SOUTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000003 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000008 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // EAST: Tile = 000007, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000004 +(PID.TID 0000.0001) // SOUTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000003 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > Tref = 30*-1.9, +(PID.TID 0000.0001) > Sref = 30*34.4, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) > viscAh=600.0, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.FALSE., +(PID.TID 0000.0001) > diffKhT=100.0, +(PID.TID 0000.0001) >#- diffKzT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKzT=5.E-5, +(PID.TID 0000.0001) > diffKhS=100.0, +(PID.TID 0000.0001) > diffKzS=5.E-5, +(PID.TID 0000.0001) > bottomDragQuadratic=2.5E-3, +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > HeatCapacity_Cp = 3974.0, +(PID.TID 0000.0001) > rhoConst=1030., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > convertFW2Salt = 33.4, +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > hFacMin=0.10, +(PID.TID 0000.0001) > nonHydrostatic=.FALSE., +(PID.TID 0000.0001) > useCDScheme = .TRUE., +(PID.TID 0000.0001) >#ph( +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) ># ivdc_kappa = 7200., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > vectorInvariantMomentum=.TRUE., +(PID.TID 0000.0001) > nonlinFreeSurf=0, +(PID.TID 0000.0001) > hFacInf=0.05, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) >#ph) +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=8640, +(PID.TID 0000.0001) > nTimeSteps=5, +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > cAdjFreq = 1., +(PID.TID 0000.0001) > tauCD = 400000., +(PID.TID 0000.0001) > pChkptFreq=0.0, +(PID.TID 0000.0001) > chkptFreq=0.0, +(PID.TID 0000.0001) > dumpFreq=0.0, +(PID.TID 0000.0001) > taveFreq=0.0, +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > adjMonitorFreq=1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > ygOrigin = -80.0, +(PID.TID 0000.0001) > delX=50*0.3, +(PID.TID 0000.0001) > delY=100*0.1, +(PID.TID 0000.0001) > delZ=30*30.0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile='bathy.box', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useShelfIce=.TRUE., +(PID.TID 0000.0001) > useGrdchk=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled but not used ( useGMRedi = F ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/shelfice compiled and used ( useShelfIce = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_READPARMS: opening data.shelfice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.shelfice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.shelfice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># =================================== +(PID.TID 0000.0001) ># | Parameters for SHELFICE package | +(PID.TID 0000.0001) ># =================================== +(PID.TID 0000.0001) > &SHELFICE_PARM01 +(PID.TID 0000.0001) > SHELFICEboundaryLayer = .TRUE., +(PID.TID 0000.0001) > SHELFICEtopoFile='icetopo.exp1', +(PID.TID 0000.0001) > SHELFICEloadAnomalyFile = 'phi0surf.exp1.jmd95z', +(PID.TID 0000.0001) > useISOMIPTD = .TRUE., +(PID.TID 0000.0001) > no_slip_shelfice = .false., +(PID.TID 0000.0001) > SHELFICEwriteState = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_READPARMS: finished reading data.shelfice +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,3) = 1.E-6,2.E-6,4.E-4,5.E-4,0., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_shifwflx', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_shicoefft', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr2d_preproc_c(1,1)= 'log10ctrl', +(PID.TID 0000.0001) > xx_genarr2d_preproc_r(1,1)= -4., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) >#revert to default 1 month +(PID.TID 0000.0001) ># lastinterval=7776000., +(PID.TID 0000.0001) > mult_test=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-2, +(PID.TID 0000.0001) > iglopos = 20, +(PID.TID 0000.0001) > jglopos = 24, +(PID.TID 0000.0001) > kglopos = 20, +(PID.TID 0000.0001) ># nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 1.4850000000000E+01 +(PID.TID 0000.0001) %MON XC_min = 1.5000000000000E-01 +(PID.TID 0000.0001) %MON XC_mean = 7.5000000000000E+00 +(PID.TID 0000.0001) %MON XC_sd = 4.3292609068985E+00 +(PID.TID 0000.0001) %MON XG_max = 1.4700000000000E+01 +(PID.TID 0000.0001) %MON XG_min = 1.1102230246252E-16 +(PID.TID 0000.0001) %MON XG_mean = 7.3500000000000E+00 +(PID.TID 0000.0001) %MON XG_sd = 4.3292609068985E+00 +(PID.TID 0000.0001) %MON DXC_max = 1.1380125394806E+04 +(PID.TID 0000.0001) %MON DXC_min = 5.8203914905589E+03 +(PID.TID 0000.0001) %MON DXC_mean = 8.6215028627207E+03 +(PID.TID 0000.0001) %MON DXC_sd = 1.6219001271572E+03 +(PID.TID 0000.0001) %MON DXF_max = 1.1380125394806E+04 +(PID.TID 0000.0001) %MON DXF_min = 5.8203914905589E+03 +(PID.TID 0000.0001) %MON DXF_mean = 8.6215028627207E+03 +(PID.TID 0000.0001) %MON DXF_sd = 1.6219001271572E+03 +(PID.TID 0000.0001) %MON DXG_max = 1.1352761512017E+04 +(PID.TID 0000.0001) %MON DXG_min = 5.7917296935586E+03 +(PID.TID 0000.0001) %MON DXG_mean = 8.5934208253080E+03 +(PID.TID 0000.0001) %MON DXG_sd = 1.6222785520817E+03 +(PID.TID 0000.0001) %MON DXV_max = 1.1352761512017E+04 +(PID.TID 0000.0001) %MON DXV_min = 5.7917296935586E+03 +(PID.TID 0000.0001) %MON DXV_mean = 8.5934208253080E+03 +(PID.TID 0000.0001) %MON DXV_sd = 1.6222785520817E+03 +(PID.TID 0000.0001) %MON YC_max = -7.0050000000001E+01 +(PID.TID 0000.0001) %MON YC_min = -7.9950000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = -7.5000000000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 2.8866070047720E+00 +(PID.TID 0000.0001) %MON YG_max = -7.0100000000001E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -7.5050000000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 2.8866070047721E+00 +(PID.TID 0000.0001) %MON DYC_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYC_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYF_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYF_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYG_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYG_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON DYU_max = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_min = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_mean = 1.1117747335204E+04 +(PID.TID 0000.0001) %MON DYU_sd = 4.1836756281555E-11 +(PID.TID 0000.0001) %MON RA_max = 1.2652134272379E+08 +(PID.TID 0000.0001) %MON RA_min = 6.4709633770803E+07 +(PID.TID 0000.0001) %MON RA_mean = 9.5851678311587E+07 +(PID.TID 0000.0001) %MON RA_sd = 1.8031873527992E+07 +(PID.TID 0000.0001) %MON RAW_max = 1.2652134272379E+08 +(PID.TID 0000.0001) %MON RAW_min = 6.4709633770803E+07 +(PID.TID 0000.0001) %MON RAW_mean = 9.5851678311587E+07 +(PID.TID 0000.0001) %MON RAW_sd = 1.8031873527992E+07 +(PID.TID 0000.0001) %MON RAS_max = 1.2621711802744E+08 +(PID.TID 0000.0001) %MON RAS_min = 6.4390979194019E+07 +(PID.TID 0000.0001) %MON RAS_mean = 9.5539469354603E+07 +(PID.TID 0000.0001) %MON RAS_sd = 1.8036080760153E+07 +(PID.TID 0000.0001) %MON RAZ_max = 1.2621711802744E+08 +(PID.TID 0000.0001) %MON RAZ_min = 6.4390979194019E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 9.5539469354603E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 1.8036080760153E+07 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 311052 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 0 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 0 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 0 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 7200 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 14400 +(PID.TID 0000.0001) ctrl-wet 8: atmos 14400 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 30 311052 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2989 2940 2928 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 3087 3038 3024 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3185 3136 3120 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3332 3283 3264 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3430 3381 3360 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3577 3528 3504 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3675 3626 3600 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 3773 3724 3696 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 3920 3871 3840 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 4018 3969 3936 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 4165 4116 4080 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 4263 4214 4176 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 4361 4312 4272 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 4508 4459 4416 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 21 4606 4557 4512 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 22 4753 4704 4656 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 23 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 24 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 25 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 26 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 27 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 28 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 29 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 30 4851 4802 4752 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 17a:surface wet I = 576 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 1 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 2 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 3 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 4 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 5 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 6 0 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 7 2989 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 8 3087 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 9 3185 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 10 3332 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 11 3430 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 12 3577 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 13 3675 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 14 3773 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 15 3920 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 16 4018 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 17 4165 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 18 4263 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 19 4361 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 20 4508 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 21 4606 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 22 4753 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 23 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 24 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 25 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 26 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 27 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 28 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 29 4851 +(PID.TID 0000.0001) ctrl-wet 17b: global nWet I k= 30 4851 +(PID.TID 0000.0001) ctrl-wet 17c: global SUM(K) shelfice 4851 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 5 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 311052 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 18750 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 007200 006792 006900 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 007500 007075 007500 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 013200 013032 012650 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013750 013575 013750 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0003 014400 014400 013800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0003 015000 015000 015000 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0004 014400 014400 013800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0004 015000 015000 015000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shicoefft +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_shifwflx +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = -1.3709057042516E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4360464034757E-04 +(PID.TID 0000.0001) %MON fCori_mean = -1.4069429304698E-04 +(PID.TID 0000.0001) %MON fCori_sd = 1.9069739624987E-06 +(PID.TID 0000.0001) %MON fCoriG_max = -1.3713394327439E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4362679550910E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.4072713798624E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.9008093726821E-06 +(PID.TID 0000.0001) %MON fCoriCos_max = 4.9761447480159E-05 +(PID.TID 0000.0001) %MON fCoriCos_min = 2.5450607565678E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 3.7698922201606E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 7.0920218535055E-06 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0404366262810520E-03 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 30 @ -1.900000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 30 @ 3.440000000000000E+01 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.027768983359415E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.027915190977028E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.028061298013372E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.028207304511914E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.028353210516147E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.028499016069585E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028644721215765E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.028790325998246E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.028935830460613E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.029081234646470E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.029226538599445E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.029371742363190E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.029516845981377E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.029661849497701E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.029806752955880E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.029951556399652E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.030096259872781E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.030240863419048E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.030385367082259E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.030529770906240E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.030674074934840E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.030818279211929E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.030962383781397E+03, /* K = 23 */ +(PID.TID 0000.0001) 1.031106388687158E+03, /* K = 24 */ +(PID.TID 0000.0001) 1.031250293973144E+03, /* K = 25 */ +(PID.TID 0000.0001) 1.031394099683310E+03, /* K = 26 */ +(PID.TID 0000.0001) 1.031537805861633E+03, /* K = 27 */ +(PID.TID 0000.0001) 1.031681412552109E+03, /* K = 28 */ +(PID.TID 0000.0001) 1.031824919798755E+03, /* K = 29 */ +(PID.TID 0000.0001) 1.031968327645610E+03 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 30 @ 0.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 6.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 1.000000000000000E-03 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 2.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 0.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 30 @ 5.000000000000000E-05 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.974000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.340000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 +(PID.TID 0000.0001) = 1 : same as 0 with modified hFac +(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) +(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme +(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 30 @ 1.800000000000000E+03 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 4.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.955000000000001E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 8640 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 8645 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 1.555200000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.556100000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 29 @ 3.000000000000000E+01, /* K = 2: 30 */ +(PID.TID 0000.0001) 1.500000000000000E+01 /* K = 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 30 @ 3.000000000000000E+01 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 50 @ 3.000000000000000E-01 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 100 @ 1.000000000000000E-01 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.500000000000001E-01, /* I = 1 */ +(PID.TID 0000.0001) 4.500000000000001E-01, /* I = 2 */ +(PID.TID 0000.0001) 7.500000000000002E-01, /* I = 3 */ +(PID.TID 0000.0001) 1.050000000000000E+00, /* I = 4 */ +(PID.TID 0000.0001) 1.350000000000000E+00, /* I = 5 */ +(PID.TID 0000.0001) 1.650000000000000E+00, /* I = 6 */ +(PID.TID 0000.0001) 1.950000000000000E+00, /* I = 7 */ +(PID.TID 0000.0001) 2.250000000000000E+00, /* I = 8 */ +(PID.TID 0000.0001) 2.550000000000000E+00, /* I = 9 */ +(PID.TID 0000.0001) 2.850000000000000E+00, /* I = 10 */ +(PID.TID 0000.0001) 3.149999999999999E+00, /* I = 11 */ +(PID.TID 0000.0001) 3.449999999999999E+00, /* I = 12 */ +(PID.TID 0000.0001) 3.749999999999999E+00, /* I = 13 */ +(PID.TID 0000.0001) 4.049999999999999E+00, /* I = 14 */ +(PID.TID 0000.0001) 4.350000000000000E+00, /* I = 15 */ +(PID.TID 0000.0001) 4.649999999999999E+00, /* I = 16 */ +(PID.TID 0000.0001) 4.949999999999999E+00, /* I = 17 */ +(PID.TID 0000.0001) 5.249999999999998E+00, /* I = 18 */ +(PID.TID 0000.0001) 5.549999999999999E+00, /* I = 19 */ +(PID.TID 0000.0001) 5.849999999999998E+00, /* I = 20 */ +(PID.TID 0000.0001) 6.149999999999999E+00, /* I = 21 */ +(PID.TID 0000.0001) 6.449999999999998E+00, /* I = 22 */ +(PID.TID 0000.0001) 6.749999999999998E+00, /* I = 23 */ +(PID.TID 0000.0001) 7.049999999999997E+00, /* I = 24 */ +(PID.TID 0000.0001) 7.349999999999997E+00, /* I = 25 */ +(PID.TID 0000.0001) 7.649999999999997E+00, /* I = 26 */ +(PID.TID 0000.0001) 7.949999999999998E+00, /* I = 27 */ +(PID.TID 0000.0001) 8.249999999999998E+00, /* I = 28 */ +(PID.TID 0000.0001) 8.549999999999999E+00, /* I = 29 */ +(PID.TID 0000.0001) 8.850000000000000E+00, /* I = 30 */ +(PID.TID 0000.0001) 9.150000000000000E+00, /* I = 31 */ +(PID.TID 0000.0001) 9.450000000000001E+00, /* I = 32 */ +(PID.TID 0000.0001) 9.750000000000002E+00, /* I = 33 */ +(PID.TID 0000.0001) 1.005000000000000E+01, /* I = 34 */ +(PID.TID 0000.0001) 1.035000000000000E+01, /* I = 35 */ +(PID.TID 0000.0001) 1.065000000000000E+01, /* I = 36 */ +(PID.TID 0000.0001) 1.095000000000001E+01, /* I = 37 */ +(PID.TID 0000.0001) 1.125000000000001E+01, /* I = 38 */ +(PID.TID 0000.0001) 1.155000000000000E+01, /* I = 39 */ +(PID.TID 0000.0001) 1.185000000000001E+01, /* I = 40 */ +(PID.TID 0000.0001) 1.215000000000001E+01, /* I = 41 */ +(PID.TID 0000.0001) 1.245000000000001E+01, /* I = 42 */ +(PID.TID 0000.0001) 1.275000000000001E+01, /* I = 43 */ +(PID.TID 0000.0001) 1.305000000000001E+01, /* I = 44 */ +(PID.TID 0000.0001) 1.335000000000001E+01, /* I = 45 */ +(PID.TID 0000.0001) 1.365000000000001E+01, /* I = 46 */ +(PID.TID 0000.0001) 1.395000000000001E+01, /* I = 47 */ +(PID.TID 0000.0001) 1.425000000000001E+01, /* I = 48 */ +(PID.TID 0000.0001) 1.455000000000001E+01, /* I = 49 */ +(PID.TID 0000.0001) 1.485000000000001E+01 /* I = 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.995000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.985000000000001E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.975000000000001E+01, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.775000000000013E+01, /* J = 23 */ +(PID.TID 0000.0001) -7.765000000000013E+01, /* J = 24 */ +(PID.TID 0000.0001) -7.755000000000014E+01, /* J = 25 */ +(PID.TID 0000.0001) -7.745000000000014E+01, /* J = 26 */ +(PID.TID 0000.0001) -7.735000000000015E+01, /* J = 27 */ +(PID.TID 0000.0001) -7.725000000000016E+01, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.525000000000027E+01, /* J = 48 */ +(PID.TID 0000.0001) -7.515000000000028E+01, /* J = 49 */ +(PID.TID 0000.0001) -7.505000000000028E+01, /* J = 50 */ +(PID.TID 0000.0001) -7.495000000000029E+01, /* J = 51 */ +(PID.TID 0000.0001) -7.485000000000029E+01, /* J = 52 */ +(PID.TID 0000.0001) -7.475000000000030E+01, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.275000000000041E+01, /* J = 73 */ +(PID.TID 0000.0001) -7.265000000000042E+01, /* J = 74 */ +(PID.TID 0000.0001) -7.255000000000042E+01, /* J = 75 */ +(PID.TID 0000.0001) -7.245000000000043E+01, /* J = 76 */ +(PID.TID 0000.0001) -7.235000000000043E+01, /* J = 77 */ +(PID.TID 0000.0001) -7.225000000000044E+01, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) -7.025000000000055E+01, /* J = 98 */ +(PID.TID 0000.0001) -7.015000000000056E+01, /* J = 99 */ +(PID.TID 0000.0001) -7.005000000000057E+01 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -4.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -1.050000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -1.350000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -1.650000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.950000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -2.250000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.550000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.850000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.150000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -3.450000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -3.750000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -4.050000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -4.350000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -4.650000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -4.950000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -5.250000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -5.550000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -5.850000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -6.150000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -6.450000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -6.750000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -7.050000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -7.350000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -7.650000000000000E+02, /* K = 26 */ +(PID.TID 0000.0001) -7.950000000000000E+02, /* K = 27 */ +(PID.TID 0000.0001) -8.250000000000000E+02, /* K = 28 */ +(PID.TID 0000.0001) -8.550000000000000E+02, /* K = 29 */ +(PID.TID 0000.0001) -8.850000000000000E+02 /* K = 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -6.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -9.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -1.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -1.800000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -2.100000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.400000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.700000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -3.300000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -3.900000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -4.200000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -4.500000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -4.800000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -5.100000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -5.400000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -5.700000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -6.000000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -6.300000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -6.600000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -6.900000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -7.200000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -7.500000000000000E+02, /* K = 26 */ +(PID.TID 0000.0001) -7.800000000000000E+02, /* K = 27 */ +(PID.TID 0000.0001) -8.100000000000000E+02, /* K = 28 */ +(PID.TID 0000.0001) -8.400000000000000E+02, /* K = 29 */ +(PID.TID 0000.0001) -8.700000000000000E+02, /* K = 30 */ +(PID.TID 0000.0001) -9.000000000000000E+02 /* K = 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 30 @ 1.000000000000000E+00 /* K = 1: 30 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 31 @ 1.000000000000000E+00 /* K = 1: 31 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.820391490558872E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.820391490558872E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.877701765291692E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.934994135525598E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.076813247621209E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.133689397375063E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.190543816673855E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.247376332329164E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.304186771219292E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.360974960289787E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.491800393599013E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.548081485571185E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.604336538604706E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.660565381336924E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.716767842485036E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.772943750846600E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.890622914885218E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.946201814818334E+03, /* J = 74 */ +(PID.TID 0000.0001) 1.000175041689580E+04, /* J = 75 */ +(PID.TID 0000.0001) 1.005726855190695E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.011275605073392E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.016821274435215E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.127061807330668E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.132538898360582E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.138012539480601E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.791729693558576E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.791729693558576E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.849048855077854E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.906350199379949E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.048367077963129E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.105254027978149E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.162119334157175E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.218962823278620E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.275784322187360E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.332583657795253E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.463650136583461E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.519944183739159E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.576212277667308E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.632454246965530E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.688669920311038E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.744859126461139E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.862822156126382E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.918416141504455E+03, /* J = 74 */ +(PID.TID 0000.0001) 9.973979913666863E+03, /* J = 75 */ +(PID.TID 0000.0001) 1.002951330335672E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.008501614140969E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.014048825875450E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.124321973312895E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.129800783041847E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.135276151201679E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.820391490558872E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.820391490558872E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.877701765291692E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.934994135525598E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.076813247621209E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.133689397375063E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.190543816673855E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.247376332329164E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.304186771219292E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.360974960289787E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.491800393599013E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.548081485571185E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.604336538604706E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.660565381336924E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.716767842485036E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.772943750846600E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.890622914885218E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.946201814818334E+03, /* J = 74 */ +(PID.TID 0000.0001) 1.000175041689580E+04, /* J = 75 */ +(PID.TID 0000.0001) 1.005726855190695E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.011275605073392E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.016821274435215E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.127061807330668E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.132538898360582E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.138012539480601E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 5.791729693558576E+03 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.791729693558576E+03, /* J = 1 */ +(PID.TID 0000.0001) 5.849048855077854E+03, /* J = 2 */ +(PID.TID 0000.0001) 5.906350199379949E+03, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.048367077963129E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.105254027978149E+03, /* J = 24 */ +(PID.TID 0000.0001) 7.162119334157175E+03, /* J = 25 */ +(PID.TID 0000.0001) 7.218962823278620E+03, /* J = 26 */ +(PID.TID 0000.0001) 7.275784322187360E+03, /* J = 27 */ +(PID.TID 0000.0001) 7.332583657795253E+03, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.463650136583461E+03, /* J = 48 */ +(PID.TID 0000.0001) 8.519944183739159E+03, /* J = 49 */ +(PID.TID 0000.0001) 8.576212277667308E+03, /* J = 50 */ +(PID.TID 0000.0001) 8.632454246965530E+03, /* J = 51 */ +(PID.TID 0000.0001) 8.688669920311038E+03, /* J = 52 */ +(PID.TID 0000.0001) 8.744859126461139E+03, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.862822156126382E+03, /* J = 73 */ +(PID.TID 0000.0001) 9.918416141504455E+03, /* J = 74 */ +(PID.TID 0000.0001) 9.973979913666863E+03, /* J = 75 */ +(PID.TID 0000.0001) 1.002951330335672E+04, /* J = 76 */ +(PID.TID 0000.0001) 1.008501614140969E+04, /* J = 77 */ +(PID.TID 0000.0001) 1.014048825875450E+04, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.124321973312895E+04, /* J = 98 */ +(PID.TID 0000.0001) 1.129800783041847E+04, /* J = 99 */ +(PID.TID 0000.0001) 1.135276151201679E+04 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 50 @ 1.111774733520388E+04 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 100 @ 1.111774733520388E+04 /* J = 1:100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.470963377080289E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.470963377080289E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.534679484410104E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.598375685977945E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.867821163932665E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.931054622142966E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.994263920984067E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.057448867913349E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.120609270456599E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.183744936212724E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.440967921416211E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.503539809503193E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.566082748163140E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.628596546870193E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.691081015209354E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.753535962826957E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.099614325987181E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.105793446869293E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.111969199312560E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.118141564504991E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.124310523644033E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.130476057938687E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.253038681465364E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.259127972112936E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.265213427237870E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.470963377080289E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.470963377080289E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.534679484410104E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.598375685977945E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.867821163932665E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.931054622142966E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.994263920984067E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.057448867913349E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.120609270456599E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.183744936212724E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.440967921416211E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.503539809503193E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.566082748163140E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.628596546870193E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.691081015209354E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.753535962826957E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.099614325987181E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.105793446869293E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.111969199312560E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.118141564504991E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.124310523644033E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.130476057938687E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.253038681465364E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.259127972112936E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.265213427237870E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 50 @ 6.439097919401864E+07 /* I = 1: 50 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 6.439097919401864E+07, /* J = 1 */ +(PID.TID 0000.0001) 6.502823906837179E+07, /* J = 2 */ +(PID.TID 0000.0001) 6.566530085543716E+07, /* J = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.836195435256335E+07, /* J = 23 */ +(PID.TID 0000.0001) 7.899440900921808E+07, /* J = 24 */ +(PID.TID 0000.0001) 7.962662303520055E+07, /* J = 25 */ +(PID.TID 0000.0001) 8.025859450470714E+07, /* J = 26 */ +(PID.TID 0000.0001) 8.089032149259475E+07, /* J = 27 */ +(PID.TID 0000.0001) 8.152180207452223E+07, /* J = 28 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 9.409671180895932E+07, /* J = 48 */ +(PID.TID 0000.0001) 9.472257472228888E+07, /* J = 49 */ +(PID.TID 0000.0001) 9.534814909420149E+07, /* J = 50 */ +(PID.TID 0000.0001) 9.597343301913190E+07, /* J = 51 */ +(PID.TID 0000.0001) 9.659842459236403E+07, /* J = 52 */ +(PID.TID 0000.0001) 9.722312190998378E+07, /* J = 53 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.096523508263446E+08, /* J = 73 */ +(PID.TID 0000.0001) 1.102704306306916E+08, /* J = 74 */ +(PID.TID 0000.0001) 1.108881745321664E+08, /* J = 75 */ +(PID.TID 0000.0001) 1.115055806490511E+08, /* J = 76 */ +(PID.TID 0000.0001) 1.121226471005947E+08, /* J = 77 */ +(PID.TID 0000.0001) 1.127393720071080E+08, /* J = 78 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.249992603617116E+08, /* J = 98 */ +(PID.TID 0000.0001) 1.256083805070198E+08, /* J = 99 */ +(PID.TID 0000.0001) 1.262171180274426E+08 /* J =100 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 4.665024516720074E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_CHECK: #define ALLOW_SHELFICE +(PID.TID 0000.0001) +(PID.TID 0000.0001) SHELFICE_CHECK: start of SHELFICE config. summary +(PID.TID 0000.0001) SHELFICEisOn = /* package is turned on */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useISOMIPTD = /* use simple isomip thermodynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEconserve = /* use a conservative form of boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEboundaryLayer = /* use simple boundary layer scheme to suppress noise */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHI_withBL_realFWflux = /* use real FW Flux in boundary layer scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEadvDiffHeatFlux = /* use adv.-diff. instead of just diff. heat flux into the ice shelf */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEMassStepping = /* step forward ice shelf mass/thickness */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_shelfice = /* use no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEdragLinear = /* linear drag coefficient */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEdragQuadratic = /* quadratic drag coefficient */ +(PID.TID 0000.0001) 2.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEselectDragQuadr = /* select quadratic drag option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICElatentHeat = /* latent heat of ice */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEheatCapacity_Cp = /* heat capacity of ice shelf */ +(PID.TID 0000.0001) 2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoShelfice = /* density of ice shelf */ +(PID.TID 0000.0001) 9.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEkappa = /* thermal conductivity of ice shelf */ +(PID.TID 0000.0001) 1.540000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEthetaSurface = /* surface temperature above i.s. */ +(PID.TID 0000.0001) -2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEheatTransCoeff = /* heat transfer coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEsaltTransCoeff = /* salt transfer coefficient */ +(PID.TID 0000.0001) 5.050000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEuseGammaFrict = /* use velocity dependent exchange coefficients */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEremeshFrequency = /* Frequency (in s) of Remeshing */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEloadAnomalyFile = /* file name of loaded loadAnomaly field */ +(PID.TID 0000.0001) 'phi0surf.exp1.jmd95z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEmassFile = /* file name of loaded mass field */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEtopoFile = /* file name of loaded under-ice topography */ +(PID.TID 0000.0001) 'icetopo.exp1' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEMassDynTendFile = /* file name of loaded dynamic mass tendency field */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICEwriteState = /* do simple standard output */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mdsio = /* use mdsio for snapshots */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mdsio = /* use mdsio for time averages */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dump_mnc = /* use netcdf for snapshots */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_tave_mnc = /* use netcdf for time averages */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_dumpFreq = /* analoguous to dumpFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_taveFreq = /* analoguous to taveFreq */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SHELFICE_CHECK: end of SHELFICE config. summary +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.18175519054398E-13 5.85469312491952E-02 + cg2d: Sum(rhs),rhsMax = 7.17884085510434E-13 5.84566762389065E-02 + cg2d: Sum(rhs),rhsMax = 7.17634285329893E-13 5.84304386802421E-02 + cg2d: Sum(rhs),rhsMax = 7.16607329032115E-13 5.83701416025283E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) grdchk reference fc: fcref = 3.69788973587931E+05 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm + grad-res exact position met: + grad-res 0 1579 20 24 20 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1579 100450 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 48 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 168 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 336 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 576 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 864 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1200 1 + ph-grd -->hit<-- 20 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 20 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.71538594731419E-16 1.82169122600402E-02 + cg2d: Sum(rhs),rhsMax = 7.00869917658054E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = -1.40683702209467E-16 1.75199490780188E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85469312492007E-02 + cg2d: Sum(rhs),rhsMax = -1.43331527202584E-16 1.68036555196693E-02 + cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84566762389020E-02 + cg2d: Sum(rhs),rhsMax = -5.41979113498348E-16 1.60305409741143E-02 + cg2d: Sum(rhs),rhsMax = 7.17287340634698E-13 5.84304386802455E-02 + cg2d: Sum(rhs),rhsMax = -1.55881167349103E-16 1.52405023176255E-02 + cg2d: Sum(rhs),rhsMax = 7.20382087315841E-13 5.83701416025125E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01314006867904E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.13540337926588E-13 5.85469306473081E-02 + cg2d: Sum(rhs),rhsMax = 7.15774661763646E-13 5.84566758727899E-02 + cg2d: Sum(rhs),rhsMax = 7.17675918693317E-13 5.84304388517977E-02 + cg2d: Sum(rhs),rhsMax = 7.19882486954759E-13 5.83701418926658E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702172332D+05 + --> objf_test(bi,bj) = 0.280897909163614D+05 + --> objf_test(bi,bj) = 0.489404247094376D+05 + --> objf_test(bi,bj) = 0.505718413234705D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080781D+05 + --> objf_test(bi,bj) = 0.526358410628565D+05 + --> objf_test(bi,bj) = 0.548290013321757D+05 +(PID.TID 0000.0001) local fc = 0.369788935414963D+06 +(PID.TID 0000.0001) global fc = 0.369788935414963D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935414963E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01369518019135E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.85469318488099E-02 + cg2d: Sum(rhs),rhsMax = 7.19591053410795E-13 5.84566766038431E-02 + cg2d: Sum(rhs),rhsMax = 7.18800019505750E-13 5.84304385091371E-02 + cg2d: Sum(rhs),rhsMax = 7.18550219325209E-13 5.83701413135775E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467417799D+05 + --> objf_test(bi,bj) = 0.280897909163570D+05 + --> objf_test(bi,bj) = 0.489404247096280D+05 + --> objf_test(bi,bj) = 0.505718413234689D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080728D+05 + --> objf_test(bi,bj) = 0.526358410628417D+05 + --> objf_test(bi,bj) = 0.548290013321629D+05 +(PID.TID 0000.0001) local fc = 0.369789011939657D+06 +(PID.TID 0000.0001) global fc = 0.369789011939657D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011939657E+05 +grad-res ------------------------------- + grad-res 0 1 20 24 20 1 1 1 3.69788973588E+05 3.69788935415E+05 3.69789011940E+05 + grad-res 0 1 1 1579 0 1 1 1 -3.82623473991E+00 -3.82623473706E+00 7.44208361603E-10 +(PID.TID 0000.0001) TLM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.82623473990941E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.82623473706190E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1580 100450 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1579 2 + ph-grd -->hit<-- 21 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 21 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -5.03632237910251E-16 1.82185921640856E-02 + cg2d: Sum(rhs),rhsMax = 7.00869917658054E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 1.00200609528395E-16 1.75217095124965E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85469312492007E-02 + cg2d: Sum(rhs),rhsMax = -1.40621021771370E-16 1.68055293178651E-02 + cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84566762389020E-02 + cg2d: Sum(rhs),rhsMax = -2.25676682202858E-16 1.60325480409817E-02 + cg2d: Sum(rhs),rhsMax = 7.17287340634698E-13 5.84304386802455E-02 + cg2d: Sum(rhs),rhsMax = 7.69675122247460E-16 1.52426416497757E-02 + cg2d: Sum(rhs),rhsMax = 7.20382087315841E-13 5.83701416025125E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.15427717068451E-13 5.85469306816518E-02 + cg2d: Sum(rhs),rhsMax = 7.15899561853917E-13 5.84566758534592E-02 + cg2d: Sum(rhs),rhsMax = 7.16940395939503E-13 5.84304387795058E-02 + cg2d: Sum(rhs),rhsMax = 7.18133885690975E-13 5.83701417881289E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702226430D+05 + --> objf_test(bi,bj) = 0.280897909163608D+05 + --> objf_test(bi,bj) = 0.489404247094376D+05 + --> objf_test(bi,bj) = 0.505718413234712D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080780D+05 + --> objf_test(bi,bj) = 0.526358410628565D+05 + --> objf_test(bi,bj) = 0.548290013321756D+05 +(PID.TID 0000.0001) local fc = 0.369788935420372D+06 +(PID.TID 0000.0001) global fc = 0.369788935420372D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935420372E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.17204073907851E-13 5.85469318149153E-02 + cg2d: Sum(rhs),rhsMax = 7.18300419144668E-13 5.84566766228549E-02 + cg2d: Sum(rhs),rhsMax = 7.17439996300584E-13 5.84304385810173E-02 + cg2d: Sum(rhs),rhsMax = 7.16038339731995E-13 5.83701414174443E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467363702D+05 + --> objf_test(bi,bj) = 0.280897909163576D+05 + --> objf_test(bi,bj) = 0.489404247096281D+05 + --> objf_test(bi,bj) = 0.505718413234683D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080728D+05 + --> objf_test(bi,bj) = 0.526358410628418D+05 + --> objf_test(bi,bj) = 0.548290013321630D+05 +(PID.TID 0000.0001) local fc = 0.369789011934248D+06 +(PID.TID 0000.0001) global fc = 0.369789011934248D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011934248E+05 +grad-res ------------------------------- + grad-res 0 2 21 24 20 1 1 1 3.69788973588E+05 3.69788935420E+05 3.69789011934E+05 + grad-res 0 2 2 1580 0 1 1 1 -3.82569377506E+00 -3.82569376670E+00 2.18508189320E-09 +(PID.TID 0000.0001) TLM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.82569377506235E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.82569376670290E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1581 100450 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1580 3 + ph-grd -->hit<-- 22 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 22 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.27144453020345E-16 1.82196934505662E-02 + cg2d: Sum(rhs),rhsMax = 7.00869917658054E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = -1.49897726609699E-16 1.75228240777909E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85469312492007E-02 + cg2d: Sum(rhs),rhsMax = -4.63496428737553E-17 1.68066553500150E-02 + cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84566762389020E-02 + cg2d: Sum(rhs),rhsMax = 3.65525209926332E-16 1.60336876724755E-02 + cg2d: Sum(rhs),rhsMax = 7.17287340634698E-13 5.84304386802455E-02 + cg2d: Sum(rhs),rhsMax = 1.80736502153334E-15 1.52437916841971E-02 + cg2d: Sum(rhs),rhsMax = 7.20382087315841E-13 5.83701416025125E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01591562624060E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.17259585059082E-13 5.85469307146497E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.84566758385613E-02 + cg2d: Sum(rhs),rhsMax = 7.15039139009832E-13 5.84304387146560E-02 + cg2d: Sum(rhs),rhsMax = 7.16829373637040E-13 5.83701416970187E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702262260D+05 + --> objf_test(bi,bj) = 0.280897909163497D+05 + --> objf_test(bi,bj) = 0.489404247094319D+05 + --> objf_test(bi,bj) = 0.505718413234719D+05 + --> objf_test(bi,bj) = 0.526377153453498D+05 + --> objf_test(bi,bj) = 0.548292505080780D+05 + --> objf_test(bi,bj) = 0.526358410628564D+05 + --> objf_test(bi,bj) = 0.548290013321755D+05 +(PID.TID 0000.0001) local fc = 0.369788935423939D+06 +(PID.TID 0000.0001) global fc = 0.369788935423939D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935423939E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01369518019135E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.15510983795298E-13 5.85469317822241E-02 + cg2d: Sum(rhs),rhsMax = 7.15635883885568E-13 5.84566766380173E-02 + cg2d: Sum(rhs),rhsMax = 7.16787740273617E-13 5.84304386457272E-02 + cg2d: Sum(rhs),rhsMax = 7.21089854494039E-13 5.83701415081794E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467327872D+05 + --> objf_test(bi,bj) = 0.280897909163687D+05 + --> objf_test(bi,bj) = 0.489404247096335D+05 + --> objf_test(bi,bj) = 0.505718413234675D+05 + --> objf_test(bi,bj) = 0.526377153453461D+05 + --> objf_test(bi,bj) = 0.548292505080729D+05 + --> objf_test(bi,bj) = 0.526358410628418D+05 + --> objf_test(bi,bj) = 0.548290013321631D+05 +(PID.TID 0000.0001) local fc = 0.369789011930681D+06 +(PID.TID 0000.0001) global fc = 0.369789011930681D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011930681E+05 +grad-res ------------------------------- + grad-res 0 3 22 24 20 1 1 1 3.69788973588E+05 3.69788935424E+05 3.69789011931E+05 + grad-res 0 3 3 1581 0 1 1 1 -3.82533709989E+00 -3.82533707598E+00 6.25183771419E-09 +(PID.TID 0000.0001) TLM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.82533709989297E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.82533707597759E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1582 100450 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1581 4 + ph-grd -->hit<-- 23 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 23 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -1.20190587083596E-16 1.82204027736772E-02 + cg2d: Sum(rhs),rhsMax = 7.00869917658054E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = -2.76397015084445E-16 1.75235050516312E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85469312492007E-02 + cg2d: Sum(rhs),rhsMax = -3.84878218705198E-16 1.68072880462993E-02 + cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84566762389020E-02 + cg2d: Sum(rhs),rhsMax = -8.42194695059584E-16 1.60342643620074E-02 + cg2d: Sum(rhs),rhsMax = 7.17287340634698E-13 5.84304386802455E-02 + cg2d: Sum(rhs),rhsMax = 6.77246887043070E-16 1.52443089395088E-02 + cg2d: Sum(rhs),rhsMax = 7.20382087315841E-13 5.83701416025125E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01536051472829E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16482428941845E-13 5.85469307462446E-02 + cg2d: Sum(rhs),rhsMax = 7.15677517248992E-13 5.84566758269662E-02 + cg2d: Sum(rhs),rhsMax = 7.19813098015720E-13 5.84304386565081E-02 + cg2d: Sum(rhs),rhsMax = 7.18286541356861E-13 5.83701416171630E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702285955D+05 + --> objf_test(bi,bj) = 0.280897909163007D+05 + --> objf_test(bi,bj) = 0.489404247094275D+05 + --> objf_test(bi,bj) = 0.505718413234691D+05 + --> objf_test(bi,bj) = 0.526377153453499D+05 + --> objf_test(bi,bj) = 0.548292505080779D+05 + --> objf_test(bi,bj) = 0.526358410628564D+05 + --> objf_test(bi,bj) = 0.548290013321754D+05 +(PID.TID 0000.0001) local fc = 0.369788935426252D+06 +(PID.TID 0000.0001) global fc = 0.369788935426252D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935426252E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.16524062305268E-13 5.85469317507589E-02 + cg2d: Sum(rhs),rhsMax = 7.17981230025089E-13 5.84566766494781E-02 + cg2d: Sum(rhs),rhsMax = 7.18800019505750E-13 5.84304387036616E-02 + cg2d: Sum(rhs),rhsMax = 7.16093850883226E-13 5.83701415881024E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467304178D+05 + --> objf_test(bi,bj) = 0.280897909164174D+05 + --> objf_test(bi,bj) = 0.489404247096381D+05 + --> objf_test(bi,bj) = 0.505718413234703D+05 + --> objf_test(bi,bj) = 0.526377153453460D+05 + --> objf_test(bi,bj) = 0.548292505080729D+05 + --> objf_test(bi,bj) = 0.526358410628419D+05 + --> objf_test(bi,bj) = 0.548290013321631D+05 +(PID.TID 0000.0001) local fc = 0.369789011928368D+06 +(PID.TID 0000.0001) global fc = 0.369789011928368D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011928368E+05 +grad-res ------------------------------- + grad-res 0 4 23 24 20 1 1 1 3.69788973588E+05 3.69788935426E+05 3.69789011928E+05 + grad-res 0 4 4 1582 0 1 1 1 -3.82510577435E+00 -3.82510575582E+00 4.84308559923E-09 +(PID.TID 0000.0001) TLM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.82510577434805E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.82510575582273E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1583 100450 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1582 5 + ph-grd -->hit<-- 24 24 20 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 24 24 20 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -8.91485236326206E-17 1.82208760336923E-02 + cg2d: Sum(rhs),rhsMax = 7.00869917658054E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 8.41908397923412E-16 1.75239428068395E-02 + cg2d: Sum(rhs),rhsMax = 7.16177117610073E-13 5.85469312492007E-02 + cg2d: Sum(rhs),rhsMax = 3.74890006191175E-16 1.68076707252523E-02 + cg2d: Sum(rhs),rhsMax = 7.15844050702685E-13 5.84566762389020E-02 + cg2d: Sum(rhs),rhsMax = -1.70111320862976E-16 1.60345832245791E-02 + cg2d: Sum(rhs),rhsMax = 7.17287340634698E-13 5.84304386802455E-02 + cg2d: Sum(rhs),rhsMax = 4.19775976132075E-16 1.52445618517790E-02 + cg2d: Sum(rhs),rhsMax = 7.20382087315841E-13 5.83701416025125E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551083901279D+05 + --> objf_test(bi,bj) = 0.280897909163592D+05 + --> objf_test(bi,bj) = 0.489404247095315D+05 + --> objf_test(bi,bj) = 0.505718413234697D+05 + --> objf_test(bi,bj) = 0.526377153453481D+05 + --> objf_test(bi,bj) = 0.548292505080755D+05 + --> objf_test(bi,bj) = 0.526358410628493D+05 + --> objf_test(bi,bj) = 0.548290013321694D+05 +(PID.TID 0000.0001) local fc = 0.369788973587931D+06 +(PID.TID 0000.0001) global fc = 0.369788973587931D+06 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01480540321597E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.14622805375598E-13 5.85469307765247E-02 + cg2d: Sum(rhs),rhsMax = 7.20506987406111E-13 5.84566758186888E-02 + cg2d: Sum(rhs),rhsMax = 7.18952675171636E-13 5.84304386044679E-02 + cg2d: Sum(rhs),rhsMax = 7.18813897293558E-13 5.83701415470407E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272550702306634D+05 + --> objf_test(bi,bj) = 0.280897909157891D+05 + --> objf_test(bi,bj) = 0.489404247094572D+05 + --> objf_test(bi,bj) = 0.505718413234332D+05 + --> objf_test(bi,bj) = 0.526377153453499D+05 + --> objf_test(bi,bj) = 0.548292505080778D+05 + --> objf_test(bi,bj) = 0.526358410628563D+05 + --> objf_test(bi,bj) = 0.548290013321754D+05 +(PID.TID 0000.0001) local fc = 0.369788935427802D+06 +(PID.TID 0000.0001) global fc = 0.369788935427802D+06 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 3.69788935427802E+05 +(PID.TID 0000.0001) nRecords = 243 ; filePrec = 64 ; fileIter = 8640 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 50 1 50 +(PID.TID 0000.0001) 2: 100 1 100 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: +(PID.TID 0000.0001) 1.555200000000E+07 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 241 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "dEtaHdt ", # 10 in fldList, rec= 242 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0000008640 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 7.01425029170366E-13 5.97855497140073E-02 + cg2d: Sum(rhs),rhsMax = 7.12194192509230E-13 5.85469317206019E-02 + cg2d: Sum(rhs),rhsMax = 7.20409842891456E-13 5.84566766578026E-02 + cg2d: Sum(rhs),rhsMax = 7.18688997203287E-13 5.84304387555813E-02 + cg2d: Sum(rhs),rhsMax = 7.18688997203287E-13 5.83701416580051E-02 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 + --> objf_shelfice(bi,bj) = 0.000000000000000D+00 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_test(bi,bj) = 0.272551467283351D+05 + --> objf_test(bi,bj) = 0.280897909169439D+05 + --> objf_test(bi,bj) = 0.489404247096084D+05 + --> objf_test(bi,bj) = 0.505718413235061D+05 + --> objf_test(bi,bj) = 0.526377153453460D+05 + --> objf_test(bi,bj) = 0.548292505080730D+05 + --> objf_test(bi,bj) = 0.526358410628420D+05 + --> objf_test(bi,bj) = 0.548290013321632D+05 +(PID.TID 0000.0001) local fc = 0.369789011926818D+06 +(PID.TID 0000.0001) global fc = 0.369789011926818D+06 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 3.69789011926818E+05 +grad-res ------------------------------- + grad-res 0 5 24 24 20 1 1 1 3.69788973588E+05 3.69788935428E+05 3.69789011927E+05 + grad-res 0 5 5 1583 0 1 1 1 -3.82495077943E+00 -3.82495077793E+00 3.93839960644E-10 +(PID.TID 0000.0001) TLM ref_cost_function = 3.69788973587931E+05 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.82495077943197E+00 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.82495077792555E+00 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 20 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 1 3.6978897358793E+05 3.6978893541496E+05 3.6978901193966E+05 +(PID.TID 0000.0001) grdchk output (g): 1 -3.8262347370619E+00 -3.8262347399094E+00 7.4420836160272E-10 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 21 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 2 3.6978897358793E+05 3.6978893542037E+05 3.6978901193425E+05 +(PID.TID 0000.0001) grdchk output (g): 2 -3.8256937667029E+00 -3.8256937750624E+00 2.1850818932023E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 22 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 3 3.6978897358793E+05 3.6978893542394E+05 3.6978901193068E+05 +(PID.TID 0000.0001) grdchk output (g): 3 -3.8253370759776E+00 -3.8253370998930E+00 6.2518377141885E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 23 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 4 3.6978897358793E+05 3.6978893542625E+05 3.6978901192837E+05 +(PID.TID 0000.0001) grdchk output (g): 4 -3.8251057558227E+00 -3.8251057743480E+00 4.8430855992265E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 24 24 20 1 1 0.000000000E+00 -1.000000000E-02 +(PID.TID 0000.0001) grdchk output (c): 5 3.6978897358793E+05 3.6978893542780E+05 3.6978901192682E+05 +(PID.TID 0000.0001) grdchk output (g): 5 -3.8249507779256E+00 -3.8249507794320E+00 3.9383996064402E-10 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 3.6884818504654E-09 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 44.516347604803741 +(PID.TID 0000.0001) System time: 0.12450400250963867 +(PID.TID 0000.0001) Wall clock time: 44.794644832611084 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.11962899658828974 +(PID.TID 0000.0001) System time: 2.0753000164404511E-002 +(PID.TID 0000.0001) Wall clock time: 0.14356493949890137 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 44.396692790091038 +(PID.TID 0000.0001) System time: 0.10374300181865692 +(PID.TID 0000.0001) Wall clock time: 44.651057958602905 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.8398486748337746 +(PID.TID 0000.0001) System time: 7.5148986652493477E-002 +(PID.TID 0000.0001) Wall clock time: 1.9411041736602783 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 42.318860977888107 +(PID.TID 0000.0001) System time: 1.4811012893915176E-002 +(PID.TID 0000.0001) Wall clock time: 42.457264423370361 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 42.215682178735733 +(PID.TID 0000.0001) System time: 8.8370144367218018E-003 +(PID.TID 0000.0001) Wall clock time: 42.347548484802246 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 42.214767634868622 +(PID.TID 0000.0001) System time: 8.8360160589218140E-003 +(PID.TID 0000.0001) Wall clock time: 42.346628189086914 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2431194782257080E-002 +(PID.TID 0000.0001) System time: 9.2010945081710815E-005 +(PID.TID 0000.0001) Wall clock time: 2.2628307342529297E-002 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 4.9427151679992676E-004 +(PID.TID 0000.0001) System time: 1.0021030902862549E-006 +(PID.TID 0000.0001) Wall clock time: 4.7945976257324219E-004 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.9237878322601318E-002 +(PID.TID 0000.0001) System time: 1.0019987821578979E-003 +(PID.TID 0000.0001) Wall clock time: 8.0679416656494141E-002 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.6617379188537598E-002 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 5.6825160980224609E-002 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9964191019535065 +(PID.TID 0000.0001) System time: 1.0140091180801392E-003 +(PID.TID 0000.0001) Wall clock time: 2.0057830810546875 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 0.11277458071708679 +(PID.TID 0000.0001) System time: 4.0046870708465576E-006 +(PID.TID 0000.0001) Wall clock time: 0.11342072486877441 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 15.896907925605774 +(PID.TID 0000.0001) System time: 9.3999505043029785E-004 +(PID.TID 0000.0001) Wall clock time: 15.942989349365234 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.3981632292270660 +(PID.TID 0000.0001) System time: 6.0051679611206055E-006 +(PID.TID 0000.0001) Wall clock time: 8.4204945564270020 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.52401989698410034 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.52575445175170898 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.88887071609497070 +(PID.TID 0000.0001) System time: 9.7699835896492004E-004 +(PID.TID 0000.0001) Wall clock time: 0.89256238937377930 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.55401045083999634 +(PID.TID 0000.0001) System time: 9.7799673676490784E-004 +(PID.TID 0000.0001) Wall clock time: 0.55798745155334473 +(PID.TID 0000.0001) No. starts: 160 +(PID.TID 0000.0001) No. stops: 160 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 10.628780424594879 +(PID.TID 0000.0001) System time: 2.7979984879493713E-003 +(PID.TID 0000.0001) Wall clock time: 10.662292480468750 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.5132442116737366 +(PID.TID 0000.0001) System time: 9.8499655723571777E-004 +(PID.TID 0000.0001) Wall clock time: 2.5208466053009033 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.6521425247192383E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.7326087951660156E-004 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.64555680751800537 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 0.64822769165039062 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.1605701446533203E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.1856040954589844E-004 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.6204538345336914E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.3575973510742188E-004 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 4.3580532073974609E-002 +(PID.TID 0000.0001) System time: 9.9200010299682617E-004 +(PID.TID 0000.0001) Wall clock time: 4.4948101043701172E-002 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000007 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000008 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 149696 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 149696 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/build/genmake_local b/verification/lab_sea/build/genmake_local index a0532dc88f..c52b27ecca 100644 --- a/verification/lab_sea/build/genmake_local +++ b/verification/lab_sea/build/genmake_local @@ -2,5 +2,5 @@ #-- This is the local options file for the "new" version of genmake -AD_OPTFILE='../../../tools/adjoint_options/adjoint_diva' +USE_DIVA=1 #TAF_EXTRA='-version 2.9.3' diff --git a/verification/lab_sea/code/SEAICE_OPTIONS.h b/verification/lab_sea/code/SEAICE_OPTIONS.h index 1cb62dd9c9..447a1eef6e 100644 --- a/verification/lab_sea/code/SEAICE_OPTIONS.h +++ b/verification/lab_sea/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#define ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER +# define ALLOW_SITRACER +#else # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # undef SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # define SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # define SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_ad/AUTODIFF_OPTIONS.h b/verification/lab_sea/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..f0da120d11 --- /dev/null +++ b/verification/lab_sea/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#define ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/lab_sea/code_ad/CPP_OPTIONS.h b/verification/lab_sea/code_ad/CPP_OPTIONS.h index b26997861a..e1dbee7d8c 100644 --- a/verification/lab_sea/code_ad/CPP_OPTIONS.h +++ b/verification/lab_sea/code_ad/CPP_OPTIONS.h @@ -133,7 +133,7 @@ C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. #ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" +c# include "ECCO_CPPOPTIONS.h" #endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/lab_sea/code_ad/CTRL_OPTIONS.h b/verification/lab_sea/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..3afca9c197 --- /dev/null +++ b/verification/lab_sea/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,122 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#define ALLOW_NONDIMENSIONAL_CONTROL_IO +#define ALLOW_PACKUNPACK_METHOD2 + +C >>> Initial values. +#define ALLOW_THETA0_CONTROL +#define ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#define ALLOW_ATEMP_CONTROL +#define ALLOW_AQH_CONTROL +#define ALLOW_PRECIP_CONTROL +#define ALLOW_SNOWPRECIP_CONTROL +#define ALLOW_SWDOWN_CONTROL +#define ALLOW_LWDOWN_CONTROL +#define ALLOW_UWIND_CONTROL +#define ALLOW_VWIND_CONTROL +#undef ALLOW_EVAP_CONTROL +#define ALLOW_APRESSURE_CONTROL +#undef ALLOW_RUNOFF_CONTROL + +C >>> Radiation +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> seaice init. conditions +CML#define ALLOW_SIAREA_CONTROL +CML#define ALLOW_SIHEFF_CONTROL +#undef ALLOW_SIHSNOW_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/lab_sea/code_ad/CTRL_SIZE.h b/verification/lab_sea/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..dbd88f59eb --- /dev/null +++ b/verification/lab_sea/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 2 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 9 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_ad/ECCO_CPPOPTIONS.h b/verification/lab_sea/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 998ec5cebd..0000000000 --- a/verification/lab_sea/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,211 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< -cph#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING -cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< - -cph#define ALLOW_ECCO_FORWARD_RUN -#define ALLOW_ECCO_OPTIMIZATION - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically - -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C extend to 4-level checkpointing -#undef AUTODIFF_4_LEVEL_CHECKPOINT - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#define ALLOW_DIVIDED_ADJOINT - -C o TAMC compatible subroutine parameter list -#undef AUTODIFF_TAMC_COMPATIBILITY - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Use the EGM-96 geoid error covariance. -# undef ALLOW_EGM96_ERROR_COV -# undef ALLOW_READ_EGM_DATA -C >>> Use NSCAT data. -# undef ALLOW_NSCAT_DATA -C >>> Cost function contributions - -# undef ALLOW_HFLUX_COST_CONTRIBUTION -# undef ALLOW_SFLUX_COST_CONTRIBUTION -# undef ALLOW_USTRESS_COST_CONTRIBUTION -# undef ALLOW_VSTRESS_COST_CONTRIBUTION - -# define ALLOW_ATEMP_COST_CONTRIBUTION -# define ALLOW_AQH_COST_CONTRIBUTION -# define ALLOW_UWIND_COST_CONTRIBUTION -# define ALLOW_VWIND_COST_CONTRIBUTION -# define ALLOW_PRECIP_COST_CONTRIBUTION -# define ALLOW_SNOWPRECIP_COST_CONTRIBUTION -# define ALLOW_SWDOWN_COST_CONTRIBUTION -# define ALLOW_LWDOWN_COST_CONTRIBUTION -# undef ALLOW_EVAP_COST_CONTRIBUTION -# define ALLOW_APRESSURE_COST_CONTRIBUTION -# undef ALLOW_RUNOFF_COST_CONTRIBUTION - -# define ALLOW_THETA0_COST_CONTRIBUTION -# define ALLOW_SALT0_COST_CONTRIBUTION -# define ALLOW_THETA_COST_CONTRIBUTION -# define ALLOW_SALT_COST_CONTRIBUTION -# define ALLOW_SST_COST_CONTRIBUTION -# define ALLOW_SSS_COST_CONTRIBUTION - -# define ALLOW_SSH_MEAN_COST_CONTRIBUTION -# define ALLOW_SSH_TPANOM_COST_CONTRIBUTION -# define ALLOW_SSH_ERSANOM_COST_CONTRIBUTION -# undef ALLOW_SPH_PROJECTION -# if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_TPANOM_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_ERSANOM_COST_CONTRIBUTION)) -# define ALLOW_SSH_COST_CONTRIBUTION -# endif - -# undef ALLOW_CTDT_COST_CONTRIBUTION -# undef ALLOW_CTDS_COST_CONTRIBUTION -# undef ALLOW_XBT_COST_CONTRIBUTION -# undef ALLOW_COST_ATLANTIC - -c >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -# undef ALLOW_OBCSN_COST_CONTRIBUTION -# undef ALLOW_OBCSS_COST_CONTRIBUTION -# undef ALLOW_OBCSW_COST_CONTRIBUTION -# undef ALLOW_OBCSE_COST_CONTRIBUTION -# if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSE_COST_CONTRIBUTION)) -# define ALLOW_OBCS_COST_CONTRIBUTION -# endif - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define ALLOW_NONDIMENSIONAL_CONTROL_IO -#undef ALLOW_TAMC_SINGLEPREC_COMLEV - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL - -C >>> Initial seaice -#define ALLOW_SIAREA_CONTROL -#define ALLOW_SIHEFF_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL - -C >>> Atmospheric state. -#define ALLOW_ATEMP_CONTROL -#define ALLOW_AQH_CONTROL -#define ALLOW_PRECIP_CONTROL -#define ALLOW_SNOWPRECIP_CONTROL -#define ALLOW_SWDOWN_CONTROL -#define ALLOW_LWDOWN_CONTROL -#define ALLOW_UWIND_CONTROL -#define ALLOW_VWIND_CONTROL -#undef ALLOW_EVAP_CONTROL -#define ALLOW_APRESSURE_CONTROL -#undef ALLOW_RUNOFF_CONTROL - -C >>> Radiation -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> seaice init. conditions -#define ALLOW_SIAREA_CONTROL -#define ALLOW_SIHEFF_CONTROL -#undef ALLOW_SIHSNOW_CONTROL - -C >>> relaxation terms -#define ALLOW_SST_CONTROL -#define ALLOW_SSS_CONTROL - -C >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -#undef ALLOW_OBCSN_CONTROL -#undef ALLOW_OBCSS_CONTROL -#undef ALLOW_OBCSW_CONTROL -#undef ALLOW_OBCSE_CONTROL -#if (defined (ALLOW_OBCSN_CONTROL) || \ - defined (ALLOW_OBCSS_CONTROL) || \ - defined (ALLOW_OBCSW_CONTROL) || \ - defined (ALLOW_OBCSE_CONTROL)) -# define ALLOW_OBCS_CONTROL -#endif - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Bulk formulae related flags. -#undef ALLOW_BULK_LARGYEAG04 -#define ALLOW_ATM_TEMP -#define ALLOW_ATM_WIND -#define ALLOW_BULKFORMULAE -#define ALLOW_DOWNWARD_RADIATION -#define ALLOW_RUNOFF -#undef EXF_READ_EVAP - -C Use ocean_emissivity*lwdwon in lwFlux. This flag should be define -C unless to reproduce old results (obtained with inconsistent old code) -#ifdef ALLOW_DOWNWARD_RADIATION -# define EXF_LWDOWN_WITH_EMISSIVITY -#endif - -C Relaxation to monthly climatologies. -#define ALLOW_CLIMSST_RELAXATION -#define ALLOW_CLIMSSS_RELAXATION - -C Seaice area relaxation code -#define EXF_SEAICE_FRACTION - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/lab_sea/code_ad/ECCO_OPTIONS.h b/verification/lab_sea/code_ad/ECCO_OPTIONS.h new file mode 100644 index 0000000000..8aa6a90c47 --- /dev/null +++ b/verification/lab_sea/code_ad/ECCO_OPTIONS.h @@ -0,0 +1,107 @@ +CBOP +C !ROUTINE: ECCO_OPTIONS.h +C !INTERFACE: +C #include "ECCO_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for ECCO (ecco) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef ECCO_OPTIONS_H +#define ECCO_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_ECCO +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +# define ALLOW_ATEMP_COST_CONTRIBUTION +# define ALLOW_AQH_COST_CONTRIBUTION +# define ALLOW_UWIND_COST_CONTRIBUTION +# define ALLOW_VWIND_COST_CONTRIBUTION +# define ALLOW_PRECIP_COST_CONTRIBUTION +# define ALLOW_SNOWPRECIP_COST_CONTRIBUTION +# define ALLOW_SWDOWN_COST_CONTRIBUTION +# define ALLOW_LWDOWN_COST_CONTRIBUTION +# undef ALLOW_EVAP_COST_CONTRIBUTION +# define ALLOW_APRESSURE_COST_CONTRIBUTION +# undef ALLOW_RUNOFF_COST_CONTRIBUTION + +# define ALLOW_THETA0_COST_CONTRIBUTION +# define ALLOW_SALT0_COST_CONTRIBUTION +# define ALLOW_THETA_COST_CONTRIBUTION +# define ALLOW_SALT_COST_CONTRIBUTION +# define ALLOW_SST_COST_CONTRIBUTION +# define ALLOW_SSS_COST_CONTRIBUTION + +CML# define ALLOW_SSH_MEAN_COST_CONTRIBUTION +CML# define ALLOW_SSH_TPANOM_COST_CONTRIBUTION +CML# define ALLOW_SSH_ERSANOM_COST_CONTRIBUTION +CML# undef ALLOW_SPH_PROJECTION +CML# if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ +CML defined (ALLOW_SSH_TPANOM_COST_CONTRIBUTION) || \ +CML defined (ALLOW_SSH_ERSANOM_COST_CONTRIBUTION)) +CML# define ALLOW_SSH_COST_CONTRIBUTION +CML# endif + +C allow for generic cost function and integral terms +#define ALLOW_GENCOST_CONTRIBUTION +C allow for 3 dimensional generic terms +#define ALLOW_GENCOST3D + +C include global mean steric sea level correction +#undef ALLOW_PSBAR_STERIC +C allow for near-shore and high-latitude altimetry +#undef ALLOW_SHALLOW_ALTIMETRY +#undef ALLOW_HIGHLAT_ALTIMETRY + +C allow for In-Situ Profiles cost function contribution +#undef ALLOW_PROFILES_CONTRIBUTION + +C cost function output format +#undef ALLOW_ECCO_OLD_FC_PRINT + +C-- real options? + +C include dump of snap shots for checks +#undef ALLOW_SNAPSHOTS + +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< +c#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< + +C generate more text in STDOUT.0000 +#undef ECCO_VERBOSE + +C allow cost function term for sigmaR +#undef ALLOW_SIGMAR_COST_CONTRIBUTION + +C-- fake options (only used to be printed in S/R ECCO_SUMMARY): + +C allow ??? +#define ALLOW_ECCO_FORWARD_RUN +#undef ALLOW_ECCO_DIAGNOSTIC_RUN +C Just do a "dry" run ( useful for testing ). +#undef ALLOW_NO_DYNAMICS +C Use the Yearly-Monthly-Daily-Stepping call tree. +#undef ALLOW_YMDS_TREE +C Do not call stepping +#define ALLOW_STEPPING_CALL +C Projection onto Spherical Harmonics +#undef ALLOW_SPH_PROJECTION + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_ECCO */ +#endif /* ECCO_OPTIONS_H */ diff --git a/verification/lab_sea/code_ad/EXF_OPTIONS.h b/verification/lab_sea/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..7b645a23d9 --- /dev/null +++ b/verification/lab_sea/code_ad/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#define ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#define ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#define EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/lab_sea/code_ad/SEAICE_OPTIONS.h b/verification/lab_sea/code_ad/SEAICE_OPTIONS.h index f61005802a..d27c394be0 100644 --- a/verification/lab_sea/code_ad/SEAICE_OPTIONS.h +++ b/verification/lab_sea/code_ad/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #define SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # undef SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,57 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # define SEAICE_LSR_ZEBRA -C This flag is also required for an actual adjoint of seaice_lsr; + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; C increases memory requirements a lot. # define SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#define ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_ad/SIZE.h b/verification/lab_sea/code_ad/SIZE.h index 8008410a3c..38a24ff05e 100644 --- a/verification/lab_sea/code_ad/SIZE.h +++ b/verification/lab_sea/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/lab_sea/code_ad/SIZE.h_mpi b/verification/lab_sea/code_ad/SIZE.h_mpi index 6d19398db1..3f25a3a7cd 100644 --- a/verification/lab_sea/code_ad/SIZE.h_mpi +++ b/verification/lab_sea/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/lab_sea/code_ad/tamc.h b/verification/lab_sea/code_ad/tamc.h index 8d876a7cdf..adace61ae1 100644 --- a/verification/lab_sea/code_ad/tamc.h +++ b/verification/lab_sea/code_ad/tamc.h @@ -1,133 +1,96 @@ -#include "PACKAGES_CONFIG.h" - - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising common -c blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c -c -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to -c be at least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be -c at least equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to -c be at least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 2 ) - integer nchklev_2 - parameter( nchklev_2 = 2 ) - integer nchklev_3 - parameter( nchklev_3 = 4 ) -cph integer nchklev_4 -cph parameter( nchklev_4 = 4 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 2 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 2 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 4 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing +C use a value of 4 in case we want to test it here + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 4 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 48 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/lab_sea/code_tap/AUTODIFF_OPTIONS.h b/verification/lab_sea/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..b92794d8d2 --- /dev/null +++ b/verification/lab_sea/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/CPP_EEOPTIONS.h b/verification/lab_sea/code_tap/CPP_EEOPTIONS.h new file mode 100644 index 0000000000..2faf299622 --- /dev/null +++ b/verification/lab_sea/code_tap/CPP_EEOPTIONS.h @@ -0,0 +1,148 @@ +CBOP +C !ROUTINE: CPP_EEOPTIONS.h +C !INTERFACE: +C include "CPP_EEOPTIONS.h" +C +C !DESCRIPTION: +C *==========================================================* +C | CPP\_EEOPTIONS.h | +C *==========================================================* +C | C preprocessor "execution environment" supporting | +C | flags. Use this file to set flags controlling the | +C | execution environment in which a model runs - as opposed | +C | to the dynamical problem the model solves. | +C | Note: Many options are implemented with both compile time| +C | and run-time switches. This allows options to be | +C | removed altogether, made optional at run-time or | +C | to be permanently enabled. This convention helps | +C | with the data-dependence analysis performed by the | +C | adjoint model compiler. This data dependency | +C | analysis can be upset by runtime switches that it | +C | is unable to recoginise as being fixed for the | +C | duration of an integration. | +C | A reasonable way to use these flags is to | +C | set all options as selectable at runtime but then | +C | once an experimental configuration has been | +C | identified, rebuild the code with the appropriate | +C | options set at compile time. | +C *==========================================================* +CEOP + +#ifndef _CPP_EEOPTIONS_H_ +#define _CPP_EEOPTIONS_H_ + +C In general the following convention applies: +C ALLOW - indicates an feature will be included but it may +C CAN have a run-time flag to allow it to be switched +C on and off. +C If ALLOW or CAN directives are "undef'd" this generally +C means that the feature will not be available i.e. it +C will not be included in the compiled code and so no +C run-time option to use the feature will be available. +C +C ALWAYS - indicates the choice will be fixed at compile time +C so no run-time option will be present + +C=== Macro related options === +C-- Control storage of floating point operands +C On many systems it improves performance only to use +C 8-byte precision for time stepped variables. +C Constant in time terms ( geometric factors etc.. ) +C can use 4-byte precision, reducing memory utilisation and +C boosting performance because of a smaller working set size. +C However, on vector CRAY systems this degrades performance. +C Enable to switch REAL4_IS_SLOW from genmake2 (with LET_RS_BE_REAL4): +#ifdef LET_RS_BE_REAL4 +#undef REAL4_IS_SLOW +#else /* LET_RS_BE_REAL4 */ +#define REAL4_IS_SLOW +#endif /* LET_RS_BE_REAL4 */ + +C-- Control use of "double" precision constants. +C Use D0 where it means REAL*8 but not where it means REAL*16 +#define D0 d0 + +C=== IO related options === +C-- Flag used to indicate whether Fortran formatted write +C and read are threadsafe. On SGI the routines can be thread +C safe, on Sun it is not possible - if you are unsure then +C undef this option. +#undef FMTFTN_IO_THREAD_SAFE + +C-- Flag used to indicate whether Binary write to Local file (i.e., +C a different file for each tile) and read are thread-safe. +#undef LOCBIN_IO_THREAD_SAFE + +C-- Flag to turn off the writing of error message to ioUnit zero +#undef DISABLE_WRITE_TO_UNIT_ZERO + +C-- Alternative formulation of BYTESWAP, faster than +C compiler flag -byteswapio on the Altix. +#undef FAST_BYTESWAP + +C-- Flag to turn on old default of opening scratch files with the +C STATUS='SCRATCH' option. This method, while perfectly FORTRAN-standard, +C caused filename conflicts on some multi-node/multi-processor platforms +C in the past and has been replace by something (hopefully) more robust. +#define USE_FORTRAN_SCRATCH_FILES + +C-- Flag defined for eeboot_minimal.F, eeset_parms.F and open_copy_data_file.F +C to write STDOUT, STDERR and scratch files from process 0 only. +C WARNING: to use only when absolutely confident that the setup is working +C since any message (error/warning/print) from any proc <> 0 will be lost. +#undef SINGLE_DISK_IO + +C=== MPI, EXCH and GLOBAL_SUM related options === +C-- Flag turns off MPI_SEND ready_to_receive polling in the +C gather_* subroutines to speed up integrations. +#undef DISABLE_MPI_READY_TO_RECEIVE + +C-- Control use of communication that might overlap computation. +C Under MPI selects/deselects "non-blocking" sends and receives. +#define ALLOW_ASYNC_COMMUNICATION +#undef ALLOW_ASYNC_COMMUNICATION +#undef ALWAYS_USE_ASYNC_COMMUNICATION +C-- Control use of communication that is atomic to computation. +C Under MPI selects/deselects "blocking" sends and receives. +#define ALLOW_SYNC_COMMUNICATION +#undef ALWAYS_USE_SYNC_COMMUNICATION + +C-- Control XY periodicity in processor to grid mappings +C Note: Model code does not need to know whether a domain is +C periodic because it has overlap regions for every box. +C Model assume that these values have been +C filled in some way. +#undef ALWAYS_PREVENT_X_PERIODICITY +#undef ALWAYS_PREVENT_Y_PERIODICITY +#define CAN_PREVENT_X_PERIODICITY +#define CAN_PREVENT_Y_PERIODICITY + +C-- disconnect tiles (no exchange between tiles, just fill-in edges +C assuming locally periodic subdomain) +#undef DISCONNECTED_TILES + +C-- Always cumulate tile local-sum in the same order by applying MPI allreduce +C to array of tiles ; can get slower with large number of tiles (big set-up) +#undef GLOBAL_SUM_ORDER_TILES + +C-- Alternative way of doing global sum without MPI allreduce call +C but instead, explicit MPI send & recv calls. Expected to be slower. +#define GLOBAL_SUM_SEND_RECV + +C-- Alternative way of doing global sum on a single CPU +C to eliminate tiling-dependent roundoff errors. Note: This is slow. +#define CG2D_SINGLECPU_SUM + +C=== Other options (to add/remove pieces of code) === +C-- Flag to turn on checking for errors from all threads and procs +C (calling S/R STOP_IF_ERROR) before stopping. +#define USE_ERROR_STOP + +C-- Control use of communication with other component: +C allow to import and export from/to Coupler interface. +#undef COMPONENT_MODULE + +#endif /* _CPP_EEOPTIONS_H_ */ + +#include "CPP_EEMACROS.h" + diff --git a/verification/lab_sea/code_tap/CPP_OPTIONS.h b/verification/lab_sea/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..e1dbee7d8c --- /dev/null +++ b/verification/lab_sea/code_tap/CPP_OPTIONS.h @@ -0,0 +1,139 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#undef ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#undef INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/CTRL_OPTIONS.h b/verification/lab_sea/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..3afca9c197 --- /dev/null +++ b/verification/lab_sea/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,122 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#define ALLOW_NONDIMENSIONAL_CONTROL_IO +#define ALLOW_PACKUNPACK_METHOD2 + +C >>> Initial values. +#define ALLOW_THETA0_CONTROL +#define ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#define ALLOW_ATEMP_CONTROL +#define ALLOW_AQH_CONTROL +#define ALLOW_PRECIP_CONTROL +#define ALLOW_SNOWPRECIP_CONTROL +#define ALLOW_SWDOWN_CONTROL +#define ALLOW_LWDOWN_CONTROL +#define ALLOW_UWIND_CONTROL +#define ALLOW_VWIND_CONTROL +#undef ALLOW_EVAP_CONTROL +#define ALLOW_APRESSURE_CONTROL +#undef ALLOW_RUNOFF_CONTROL + +C >>> Radiation +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> seaice init. conditions +CML#define ALLOW_SIAREA_CONTROL +CML#define ALLOW_SIHEFF_CONTROL +#undef ALLOW_SIHSNOW_CONTROL + +C >>> Other Control. +#undef ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/CTRL_SIZE.h b/verification/lab_sea/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..dbd88f59eb --- /dev/null +++ b/verification/lab_sea/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 2 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 2 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 9 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_tap/DIAGNOSTICS_SIZE.h b/verification/lab_sea/code_tap/DIAGNOSTICS_SIZE.h new file mode 100644 index 0000000000..1d13bed797 --- /dev/null +++ b/verification/lab_sea/code_tap/DIAGNOSTICS_SIZE.h @@ -0,0 +1,27 @@ +C Diagnostics Array Dimension +C --------------------------- +C ndiagMax :: maximum total number of available diagnostics +C numlists :: maximum number of diagnostics list (in data.diagnostics) +C numperlist :: maximum number of active diagnostics per list (data.diagnostics) +C numLevels :: maximum number of levels to write (data.diagnostics) +C numdiags :: maximum size of the storage array for active 2D/3D diagnostics +C nRegions :: maximum number of regions (statistics-diagnostics) +C nStats :: maximum number of statistics (e.g.: aver,min,max ...) +C diagSt_size:: maximum size of the storage array for statistics-diagnostics +C Note : may need to increase "numdiags" when using several 2D/3D diagnostics, +C and "diagSt_size" (statistics-diags) since values here are deliberately small. + INTEGER ndiagMax + INTEGER numlists, numperlist, numLevels + INTEGER numdiags + INTEGER nRegions, nStats + INTEGER diagSt_size + PARAMETER( ndiagMax = 500 ) + PARAMETER( numlists = 30, numperlist = 50, numLevels=2*Nr ) + PARAMETER( numdiags = 20*Nr ) + PARAMETER( nRegions = 0 , nStats = 4 ) + PARAMETER( diagSt_size = 10*Nr ) + + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_tap/ECCO_OPTIONS.h b/verification/lab_sea/code_tap/ECCO_OPTIONS.h new file mode 100644 index 0000000000..8aa6a90c47 --- /dev/null +++ b/verification/lab_sea/code_tap/ECCO_OPTIONS.h @@ -0,0 +1,107 @@ +CBOP +C !ROUTINE: ECCO_OPTIONS.h +C !INTERFACE: +C #include "ECCO_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for ECCO (ecco) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef ECCO_OPTIONS_H +#define ECCO_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_ECCO +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +# define ALLOW_ATEMP_COST_CONTRIBUTION +# define ALLOW_AQH_COST_CONTRIBUTION +# define ALLOW_UWIND_COST_CONTRIBUTION +# define ALLOW_VWIND_COST_CONTRIBUTION +# define ALLOW_PRECIP_COST_CONTRIBUTION +# define ALLOW_SNOWPRECIP_COST_CONTRIBUTION +# define ALLOW_SWDOWN_COST_CONTRIBUTION +# define ALLOW_LWDOWN_COST_CONTRIBUTION +# undef ALLOW_EVAP_COST_CONTRIBUTION +# define ALLOW_APRESSURE_COST_CONTRIBUTION +# undef ALLOW_RUNOFF_COST_CONTRIBUTION + +# define ALLOW_THETA0_COST_CONTRIBUTION +# define ALLOW_SALT0_COST_CONTRIBUTION +# define ALLOW_THETA_COST_CONTRIBUTION +# define ALLOW_SALT_COST_CONTRIBUTION +# define ALLOW_SST_COST_CONTRIBUTION +# define ALLOW_SSS_COST_CONTRIBUTION + +CML# define ALLOW_SSH_MEAN_COST_CONTRIBUTION +CML# define ALLOW_SSH_TPANOM_COST_CONTRIBUTION +CML# define ALLOW_SSH_ERSANOM_COST_CONTRIBUTION +CML# undef ALLOW_SPH_PROJECTION +CML# if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ +CML defined (ALLOW_SSH_TPANOM_COST_CONTRIBUTION) || \ +CML defined (ALLOW_SSH_ERSANOM_COST_CONTRIBUTION)) +CML# define ALLOW_SSH_COST_CONTRIBUTION +CML# endif + +C allow for generic cost function and integral terms +#define ALLOW_GENCOST_CONTRIBUTION +C allow for 3 dimensional generic terms +#define ALLOW_GENCOST3D + +C include global mean steric sea level correction +#undef ALLOW_PSBAR_STERIC +C allow for near-shore and high-latitude altimetry +#undef ALLOW_SHALLOW_ALTIMETRY +#undef ALLOW_HIGHLAT_ALTIMETRY + +C allow for In-Situ Profiles cost function contribution +#undef ALLOW_PROFILES_CONTRIBUTION + +C cost function output format +#undef ALLOW_ECCO_OLD_FC_PRINT + +C-- real options? + +C include dump of snap shots for checks +#undef ALLOW_SNAPSHOTS + +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< +c#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< + +C generate more text in STDOUT.0000 +#undef ECCO_VERBOSE + +C allow cost function term for sigmaR +#undef ALLOW_SIGMAR_COST_CONTRIBUTION + +C-- fake options (only used to be printed in S/R ECCO_SUMMARY): + +C allow ??? +#define ALLOW_ECCO_FORWARD_RUN +#undef ALLOW_ECCO_DIAGNOSTIC_RUN +C Just do a "dry" run ( useful for testing ). +#undef ALLOW_NO_DYNAMICS +C Use the Yearly-Monthly-Daily-Stepping call tree. +#undef ALLOW_YMDS_TREE +C Do not call stepping +#define ALLOW_STEPPING_CALL +C Projection onto Spherical Harmonics +#undef ALLOW_SPH_PROJECTION + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_ECCO */ +#endif /* ECCO_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/EXF_OPTIONS.h b/verification/lab_sea/code_tap/EXF_OPTIONS.h new file mode 100644 index 0000000000..7b645a23d9 --- /dev/null +++ b/verification/lab_sea/code_tap/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#define ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#define ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#define EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/GMREDI_OPTIONS.h b/verification/lab_sea/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..d77fd372c5 --- /dev/null +++ b/verification/lab_sea/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,47 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/lab_sea/code_tap/SEAICE_OPTIONS.h b/verification/lab_sea/code_tap/SEAICE_OPTIONS.h new file mode 100644 index 0000000000..d27c394be0 --- /dev/null +++ b/verification/lab_sea/code_tap/SEAICE_OPTIONS.h @@ -0,0 +1,272 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +C *==========================================================* +C | SEAICE_OPTIONS.h +C | o CPP options file for sea ice package. +C *==========================================================* +C | Use this file for selecting options within the sea ice +C | package. +C *==========================================================* + +#ifdef ALLOW_SEAICE +C--- Package-specific Options & Macros go here + +C-- Write "text-plots" of certain fields in STDOUT for debugging. +#undef SEAICE_DEBUG + +C-- By default, the sea-ice package uses its own integrated bulk +C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over +C open-ocean. When this flag is set, these variables are computed +C in a separate external package, for example, pkg/exf, and then +C modified for sea-ice effects by pkg/seaice. +#define SEAICE_EXTERNAL_FLUXES + +C-- This CPP flag has been retired. The number of ice categories +C used to solve for seaice flux is now specified by run-time +C parameter SEAICE_multDim. +C Note: be aware of pickup_seaice.* compatibility issues when +C restarting a simulation with a different number of categories. +c#define SEAICE_MULTICATEGORY + +C-- run with sea Ice Thickness Distribution (ITD); +C set number of categories (nITD) in SEAICE_SIZE.h +#undef SEAICE_ITD + +C-- Since the missing sublimation term is now included +C this flag is needed for backward compatibility +#define SEAICE_DISABLE_SUBLIM + +C-- Suspected missing term in coupled ocn-ice heat budget (to be confirmed) +#define SEAICE_DISABLE_HEATCONSFIX + +C-- Default is constant seaice salinity (SEAICE_salt0); Define the following +C flag to consider (space & time) variable salinity: advected and forming +C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. +C- Note: SItracer also offers an alternative way to handle variable salinity. +#define SEAICE_VARIABLE_SALINITY + +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). +C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice +C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. +#undef SEAICE_GREASE + +C-- Tracers of ice and/or ice cover. +#ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER +# define ALLOW_SITRACER +#else +# undef ALLOW_SITRACER +#endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). + +C-- Historically, the seaice model was discretized on a B-Grid. This +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. +#define SEAICE_CGRID + +#ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + +C enable advection of sea ice momentum +# undef SEAICE_ALLOW_MOM_ADVECTION + +C enable JFNK code by defining the following flag +# undef SEAICE_ALLOW_JFNK + +C enable Krylov code by defining the following flag +# undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + +C enable LSR to use global (multi-tile) tri-diagonal solver +# undef SEAICE_GLOBAL_3DIAG_SOLVER + +C enable EVP code by defining the following flag +# define SEAICE_ALLOW_EVP +# ifdef SEAICE_ALLOW_EVP +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C from below and above in seaice_evp: not necessary, and not recommended +# undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL +# endif /* SEAICE_ALLOW_EVP */ + +C smooth regularization (without max-function) of delta for +C better differentiability +# undef SEAICE_DELTA_SMOOTHREG + +C regularize zeta to zmax with a smooth tanh-function instead +C of a min(zeta,zmax). This improves convergence of iterative +C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP +# undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework +C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) +# undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings +C Use LSR vector code; not useful on non-vector machines, because it +C slows down convergence considerably, but the extra iterations are +C more than made up by the much faster code on vector machines. For +C the only regularly test vector machine these flags a specified +C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment +C them out here. +# undef SEAICE_VECTORIZE_LSR + +C Use zebra-method (alternate lines) for line-successive-relaxation +C This modification improves the convergence of the vector code +C dramatically, so that is may actually be useful in general, but +C that needs to be tested. Can be used without vectorization options. +# define SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# define SEAICE_LSR_ADJOINT_ITER + +C Use parameterisation of grounding ice for a better representation +C of fastice in shallow seas +# undef SEAICE_ALLOW_BOTTOMDRAG + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is +C set to the same value as it would be if there was no sea-ice. +C Define following CPP flag for B-grid ice-ocean stress coupling. +# define SEAICE_BICE_STRESS + +C- By default for B-grid dynamics solver surface tilt is obtained +C indirectly via geostrophic velocities. Define following CPP +C in order to use ETAN instead. +# define EXPLICIT_SSH_SLOPE + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. +C It is smoother and includes all metric terms, similar to C-grid solvers. +C It is here for completeness, but its usefulness is unclear. +# undef SEAICE_LSRBNEW + +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#undef SEAICE_CAP_ICELOAD + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, +C not recommended +#undef SEAICE_ALLOW_CLIPVELS + +C- When set cap the sublimation latent heat flux in solve4temp according +C to the available amount of ice+snow. Otherwise this term is treated +C like all of the others -- residuals heat and fw stocks are passed to +C the ocean at the end of seaice_growth in a conservative manner. +C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. +#undef SEAICE_CAP_SUBLIM + +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + +C-- Enable free drift code +#define SEAICE_ALLOW_FREEDRIFT + +C-- pkg/seaice cost functions compile flags +C- Sea-ice volume (requires pkg/cost) +#undef ALLOW_COST_ICE +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ + +#endif /* ALLOW_SEAICE */ +#endif /* SEAICE_OPTIONS_H */ diff --git a/verification/lab_sea/code_tap/SIZE.h b/verification/lab_sea/code_tap/SIZE.h new file mode 100644 index 0000000000..38a24ff05e --- /dev/null +++ b/verification/lab_sea/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 10, + & sNy = 8, + & OLx = 4, + & OLy = 4, + & nSx = 2, + & nSy = 2, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 23) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/lab_sea/code_tap/SIZE.h_mpi b/verification/lab_sea/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..3f25a3a7cd --- /dev/null +++ b/verification/lab_sea/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 10, + & sNy = 8, + & OLx = 4, + & OLy = 4, + & nSx = 1, + & nSy = 2, + & nPx = 2, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 23) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/lab_sea/code_tap/packages.conf b/verification/lab_sea/code_tap/packages.conf new file mode 100644 index 0000000000..f221c99721 --- /dev/null +++ b/verification/lab_sea/code_tap/packages.conf @@ -0,0 +1,13 @@ +#-- list of packages (or group of packages) to compile for this experiment: +oceanic +cd_code +down_slope +exf +seaice +salt_plume +diagnostics +mnc + +ecco +adjoint +tapenade diff --git a/verification/lab_sea/input.hb87/data.seaice b/verification/lab_sea/input.hb87/data.seaice index 9753f55110..26a8530c95 100644 --- a/verification/lab_sea/input.hb87/data.seaice +++ b/verification/lab_sea/input.hb87/data.seaice @@ -2,7 +2,10 @@ &SEAICE_PARM01 #- seaice dynamics params: SEAICE_deltaTdyn = 3600., - SEAICE_deltaTevp = 30., +# turn on aEVP with some sensible parameters + SEAICEaEVPcoeff =0.5, + SEAICEnEVPstarSteps =500, +# end of aEVP parameters useHB87stressCoupling = .TRUE., SEAICE_no_slip = .TRUE., # Depending on vertical resolution this angle should have a value > 0 diff --git a/verification/lab_sea/input/data.seaice b/verification/lab_sea/input/data.seaice index 9ceafb0cb4..09cff13127 100644 --- a/verification/lab_sea/input/data.seaice +++ b/verification/lab_sea/input/data.seaice @@ -25,7 +25,8 @@ SEAICE_Olx = 0, SEAICE_Oly = 0, SEAICEetaZmethod = 0, - SEAICE_waterDrag = 0.005355404089581304, + SEAICE_waterDrag = 0.005355404089581304, + LSR_ERROR = 1.E-4, & &SEAICE_PARM03 diff --git a/verification/lab_sea/input_ad.noseaice/data.ecco b/verification/lab_sea/input_ad.noseaice/data.ecco new file mode 100644 index 0000000000..cae69c9245 --- /dev/null +++ b/verification/lab_sea/input_ad.noseaice/data.ecco @@ -0,0 +1,82 @@ +# ****************** +# ECCO cost function +# ****************** + &ECCO_COST_NML + cost_iprec = 64, + & + + &ECCO_GENCOST_NML + gencost_avgperiod(1) = 'month', + gencost_barfile(1) = 'm_theta_month', + gencost_datafile(1) = 'labsea_Lev.ptmp', + gencost_errfile(1) = 'sigma_theta.bin', + gencost_name(1) = 'theta', + gencost_spmin(1) = -1.8, + gencost_spmax(1) = 40., + gencost_spzero(1) = 0., + gencost_outputlevel(1)=1, + mult_gencost(1) = 1., +# + gencost_avgperiod(2) = 'month', + gencost_barfile(2) = 'm_salt_month', + gencost_datafile(2) = 'labsea_Lev.salt', + gencost_errfile(2) = 'sigma_salt.bin', + gencost_name(2) = 'salt', + gencost_spmin(2) = 25., + gencost_spmax(2) = 40., + gencost_spzero(2) = 0., + gencost_outputlevel(2)=1, + mult_gencost(2) = 1., +# + gencost_avgperiod(3) = 'month', + gencost_barfile(3) = 'm_sst_month', + gencost_datafile(3) = 'labsea_SST_fields', + gencost_errfile(3) = 'sigma_sst.bin', + gencost_name(3) = 'sst', + gencost_startdate1(3) = 19790101, + gencost_startdate2(3) = 00000, + gencost_spmin(3) = -1.8, + gencost_spmax(3) = 40., + gencost_spzero(3) = 0., + gencost_outputlevel(3)=1, + mult_gencost(3) = 1., +# + gencost_avgperiod(4) = 'month', + gencost_barfile(4) = 'm_eta_month', + gencost_preproc(1,4) = 'mean', + gencost_preproc(2,4) = 'offset', + gencost_preproc(3,4) = 'mindepth', + gencost_preproc_r(3,4) = -200., + gencost_datafile(4) = 'labsea_TP_mean_meters', + gencost_errfile(4) = 'ones_64b.bin', + gencost_name(4) = 'mdt', + gencost_startdate1(4) = 19790101, + gencost_startdate2(4) = 000000, + gencost_spmin(4) = -4., + gencost_spmax(4) = 4., + gencost_spzero(4) = -9999.0, + gencost_outputlevel(4)=5, + mult_gencost(4) = 1., +# + gencost_avgperiod(5) = 'month', + gencost_barfile(5) = 'm_boxmean_theta', + gencost_mask(5) = 'labsea_densityfollowing_mask', + gencost_name(5) = 'labsea_densityfollowing_theta', + gencost_useDensityMask(5) = .TRUE., + gencost_refPressure(5) = 0.0, + gencost_sigmaLow(5) = 27.00, + gencost_sigmaHigh(5) = 27.01, + gencost_outputlevel(5)=1, + mult_gencost(5) = 1., +# + gencost_avgperiod(6) = 'month', + gencost_barfile(6) = 'm_boxmean_vol', + gencost_mask(6) = 'labsea_densityfollowing_mask', + gencost_name(6) = 'labsea_densityfollowing_vol', + gencost_useDensityMask(6) = .TRUE., + gencost_refPressure(6) = 0.0, + gencost_sigmaLow(6) = 27.00, + gencost_sigmaHigh(6) = 27.01, + gencost_outputlevel(6)=1, + mult_gencost(6) = 1.D-12, + & diff --git a/verification/lab_sea/input_ad/data.ctrl b/verification/lab_sea/input_ad/data.ctrl index 14fc0fd780..f36577a230 100644 --- a/verification/lab_sea/input_ad/data.ctrl +++ b/verification/lab_sea/input_ad/data.ctrl @@ -4,104 +4,8 @@ # ECCO controlvariables # ********************* &CTRL_NML -# doSinglePrecTapelev=.TRUE., -# - xx_theta_file ='xx_theta', - xx_salt_file ='xx_salt', - xx_siarea_file ='xx_siarea', - xx_siheff_file ='xx_siheff', - xx_sihsnow_file ='xx_sihsnow', -# - xx_hfluxstartdate1 = 19790101, - xx_hfluxstartdate2 = 000000, - xx_hfluxperiod = 864000.0, - xx_hflux_file = 'xx_hfl', -# - xx_sfluxstartdate1 = 19790101, - xx_sfluxstartdate2 = 000000, - xx_sfluxperiod = 864000.0, - xx_sflux_file = 'xx_sfl', -# - xx_tauustartdate1 = 19790101, - xx_tauustartdate2 = 000000, - xx_tauuperiod = 864000.0, - xx_tauu_file = 'xx_tauu', -# - xx_tauvstartdate1 = 19790101, - xx_tauvstartdate2 = 000000, - xx_tauvperiod = 864000.0, - xx_tauv_file = 'xx_tauv', -# - xx_atempstartdate1 = 19790101, - xx_atempstartdate2 = 000000, - xx_atempperiod = 864000.0, - xx_atemp_file = 'xx_atemp', -# - xx_aqhstartdate1 = 19790101, - xx_aqhstartdate2 = 000000, - xx_aqhperiod = 864000.0, - xx_aqh_file = 'xx_aqh', -# - xx_precipstartdate1 = 19790101, - xx_precipstartdate2 = 000000, - xx_precipperiod = 864000.0, - xx_precip_file = 'xx_precip', -# - xx_swfluxstartdate1 = 19790101, - xx_swfluxstartdate2 = 000000, - xx_swfluxperiod = 864000.0, - xx_swflux_file = 'xx_swflux', -# - xx_swdownstartdate1 = 19790101, - xx_swdownstartdate2 = 000000, - xx_swdownperiod = 864000.0, - xx_swdown_file = 'xx_swdown', -# - xx_lwfluxstartdate1 = 19790101, - xx_lwfluxstartdate2 = 000000, - xx_lwfluxperiod = 864000.0, - xx_lwflux_file = 'xx_lwflux', -# - xx_lwdownstartdate1 = 19790101, - xx_lwdownstartdate2 = 000000, - xx_lwdownperiod = 864000.0, - xx_lwdown_file = 'xx_lwdown', -# - xx_evapstartdate1 = 19790101, - xx_evapstartdate2 = 000000, - xx_evapperiod = 864000.0, - xx_evap_file = 'xx_evap', -# - xx_snowprecipstartdate1 = 19790101, - xx_snowprecipstartdate2 = 000000, - xx_snowprecipperiod = 864000.0, - xx_snowprecip_file = 'xx_snowprecip', -# - xx_apressurestartdate1 = 19790101, - xx_apressurestartdate2 = 000000, - xx_apressureperiod = 864000.0, - xx_apressure_file = 'xx_apressure', -# - xx_uwindstartdate1 = 19790101, - xx_uwindstartdate2 = 000000, - xx_uwindperiod = 864000.0, - xx_uwind_file = 'xx_uwind', -# - xx_vwindstartdate1 = 19790101, - xx_vwindstartdate2 = 000000, - xx_vwindperiod = 864000.0, - xx_vwind_file = 'xx_vwind', -# - xx_sststartdate1 = 19790101, - xx_sststartdate2 = 000000, - xx_sstperiod = 864000.0, - xx_sst_file = 'xx_sst', -# - xx_sssstartdate1 = 19790101, - xx_sssstartdate2 = 000000, - xx_sssperiod = 864000.0, - xx_sss_file = 'xx_sss', -# +# write control variables into a separate directory + ctrlDir = './ctrl_variables', & # # ********************* @@ -109,3 +13,92 @@ # ********************* &CTRL_PACKNAMES & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +#mult_genarr3d(1) = 1.0, +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +#mult_genarr3d(2) = 1.0, +# + xx_genarr2d_file(1) = 'xx_siarea', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +#mult_genarr2d(1) = 1.0, +# + xx_genarr2d_file(2) = 'xx_siheff', + xx_genarr2d_weight(2) = 'ones_64b.bin', +#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +#mult_genarr2d(2) = 1.0, +# + xx_gentim2d_file(1) = 'xx_atemp', + xx_gentim2d_weight(1) = 'ones_64b.bin', + xx_gentim2d_startdate1(1) = 19790101, + xx_gentim2d_startdate2(1) = 000000, + xx_gentim2d_period(1) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(2) = 'xx_aqh', + xx_gentim2d_weight(2) = 'ones_64b.bin', + xx_gentim2d_startdate1(2) = 19790101, + xx_gentim2d_startdate2(2) = 000000, + xx_gentim2d_period(2) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(3) = 'xx_precip', + xx_gentim2d_weight(3) = 'ones_64b.bin', + xx_gentim2d_startdate1(3) = 19790101, + xx_gentim2d_startdate2(3) = 000000, + xx_gentim2d_period(3) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(4) = 'xx_snowprecip', + xx_gentim2d_weight(4) = 'ones_64b.bin', + xx_gentim2d_startdate1(4) = 19790101, + xx_gentim2d_startdate2(4) = 000000, + xx_gentim2d_period(4) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(5) = 'xx_swdown', + xx_gentim2d_weight(5) = 'ones_64b.bin', + xx_gentim2d_startdate1(5) = 19790101, + xx_gentim2d_startdate2(5) = 000000, + xx_gentim2d_period(5) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(6) = 'xx_lwdown', + xx_gentim2d_weight(6) = 'ones_64b.bin', + xx_gentim2d_startdate1(6) = 19790101, + xx_gentim2d_startdate2(6) = 000000, + xx_gentim2d_period(6) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(7) = 'xx_uwind', + xx_gentim2d_weight(7) = 'ones_64b.bin', + xx_gentim2d_startdate1(7) = 19790101, + xx_gentim2d_startdate2(7) = 000000, + xx_gentim2d_period(7) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(8) = 'xx_vwind', + xx_gentim2d_weight(8) = 'ones_64b.bin', + xx_gentim2d_startdate1(8) = 19790101, + xx_gentim2d_startdate2(8) = 000000, + xx_gentim2d_period(8) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(9) = 'xx_apressure', + xx_gentim2d_weight(9) = 'ones_64b.bin', + xx_gentim2d_startdate1(9) = 19790101, + xx_gentim2d_startdate2(9) = 000000, + xx_gentim2d_period(9) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + & diff --git a/verification/lab_sea/input_ad/data.ecco b/verification/lab_sea/input_ad/data.ecco index c97070c823..21c306bec8 100644 --- a/verification/lab_sea/input_ad/data.ecco +++ b/verification/lab_sea/input_ad/data.ecco @@ -1,96 +1,60 @@ -# -# # ****************** # ECCO cost function # ****************** &ECCO_COST_NML - data_errfile ='data.err', - tbarfile = 'tbar', - sbarfile = 'sbar', - psbarfile = 'psbar', -# - topexstartdate1 = 19790101, - topexstartdate2 = 00000, - topexperiod = 2635200.0, - topexfile = 'labsea_TP_fields', - mdtdatfile = 'labsea_TP_mean', -# - ersfile = 'labsea_ERS_fields', - ersstartdate1 = 19790101, - ersstartdate2 = 00000, - ersperiod = 2635200.0, -# - sststartdate1 = 19790101, - sststartdate2 = 00000, - sstdatfile = 'labsea_SST_fields', - ssterrfile = 'sigma_sst.bin', - tdatfile = 'labsea_Lev.ptmp', - temperrfile = 'sigma_theta.bin', - sdatfile = 'labsea_Lev.salt', - salterrfile = 'sigma_salt.bin', - ssh_errfile = 'labsea_ssh.err', - geoid_errfile = 'labsea_geoid.err', - geoid_covariancefile = ' ', -# - hflux_errfile = ' ', - sflux_errfile = ' ', - tauu_errfile = ' ', - tauv_errfile = ' ', - atemp_errfile = ' ', - aqh_errfile = ' ', - precip_errfile = ' ', - swflux_errfile = ' ', - swdown_errfile = ' ', - uwind_errfile = ' ', - vwind_errfile = ' ', -# - whflux0 = 20., - wsflux0 = 3.0E-8, - wtau0 = 2.0E-2, - watemp0 = 0.5, - waqh0 = 5.E-4, - wprecip0 = 1.E-8, - wswflux0 = 20., - wswdown0 = 20., - wlwflux0 = 20., - wlwdown0 = 20., - wwind0 = 1.0, - wevap0 = 1.0, - wsnowprecip0 = 1.0, - wapressure0 = 1.0, -# - wmean_hflux = 30., - wmean_sflux = 1.6E-8, - wmean_tau = 0.1, - wmean_atemp = 1., - wmean_aqh = 1.E-3, - wmean_precip = 1.5E-8, - wmean_swflux = 20., - wmean_swdown = 20., - wmean_lwdown = 20., - wmean_lwflux = 20., - wmean_wind = 2.0, - wmean_evap = 1.0, - wmean_snowprecip = 1.0, - wmean_apressure = 1.0, -# - mult_hmean = 1., - mult_h = 1., - mult_temp = 1., - mult_salt = 1., - mult_sst = 1., - mult_hflux = 0., - mult_sflux = 0., - mult_tauu = 0., - mult_tauv = 0., - mult_atemp = 0., - mult_aqh = 0., - mult_precip= 0., - mult_swflux= 0., - mult_swdown= 0., - mult_uwind = 0., - mult_vwind = 0., -# cost_iprec = 64, - cost_yftype = 'RL', + & + + &ECCO_GENCOST_NML + gencost_avgperiod(1) = 'month', + gencost_barfile(1) = 'm_theta_month', + gencost_datafile(1) = 'labsea_Lev.ptmp', + gencost_errfile(1) = 'sigma_theta.bin', + gencost_name(1) = 'theta', + gencost_spmin(1) = -1.8, + gencost_spmax(1) = 40., + gencost_spzero(1) = 0., + gencost_outputlevel(1)=1, + mult_gencost(1) = 1., +# + gencost_avgperiod(2) = 'month', + gencost_barfile(2) = 'm_salt_month', + gencost_datafile(2) = 'labsea_Lev.salt', + gencost_errfile(2) = 'sigma_salt.bin', + gencost_name(2) = 'salt', + gencost_spmin(2) = 25., + gencost_spmax(2) = 40., + gencost_spzero(2) = 0., + gencost_outputlevel(2)=1, + mult_gencost(2) = 1., +# + gencost_avgperiod(3) = 'month', + gencost_barfile(3) = 'm_sst_month', + gencost_datafile(3) = 'labsea_SST_fields', + gencost_errfile(3) = 'sigma_sst.bin', + gencost_name(3) = 'sst', + gencost_startdate1(3) = 19790101, + gencost_startdate2(3) = 00000, + gencost_spmin(3) = -1.8, + gencost_spmax(3) = 40., + gencost_spzero(3) = 0., + gencost_outputlevel(3)=1, + mult_gencost(3) = 1., +# + gencost_avgperiod(4) = 'month', + gencost_barfile(4) = 'm_eta_month', + gencost_preproc(1,4) = 'mean', + gencost_preproc(2,4) = 'offset', + gencost_preproc(3,4) = 'mindepth', + gencost_preproc_r(3,4) = -200., + gencost_datafile(4) = 'labsea_TP_mean_meters', + gencost_errfile(4) = 'ones_64b.bin', + gencost_name(4) = 'mdt', + gencost_startdate1(4) = 19790101, + gencost_startdate2(4) = 000000, + gencost_spmin(4) = -4., + gencost_spmax(4) = 4., + gencost_spzero(4) = -9999.0, + gencost_outputlevel(4)=5, + mult_gencost(4) = 1., & diff --git a/verification/lab_sea/input_ad/data.exf b/verification/lab_sea/input_ad/data.exf index 34c3051fb2..7f4c0f1125 100644 --- a/verification/lab_sea/input_ad/data.exf +++ b/verification/lab_sea/input_ad/data.exf @@ -8,6 +8,8 @@ repeatPeriod = 31622400.0, exf_iprec = 32, # + exf_adjMonSelect = 3, + exf_adjMonFreq = 10800., & # ********************* diff --git a/verification/lab_sea/input_ad/data.grdchk b/verification/lab_sea/input_ad/data.grdchk index ecb87c6a85..59500a9a81 100644 --- a/verification/lab_sea/input_ad/data.grdchk +++ b/verification/lab_sea/input_ad/data.grdchk @@ -3,12 +3,12 @@ # ECCO gradient check # ******************* &GRDCHK_NML - grdchk_eps = 1.d-4, + grdchk_eps = 1.d-3, # nbeg = 4, iGloPos = 4, jGloPos = 8, kGloPos = 1, nstep = 1, nend = 4, - grdchkvarindex = 7, + grdchkvarindex = 301, & diff --git a/verification/lab_sea/input_ad/data.seaice b/verification/lab_sea/input_ad/data.seaice index 02f3dd3c92..e80cd5995e 100644 --- a/verification/lab_sea/input_ad/data.seaice +++ b/verification/lab_sea/input_ad/data.seaice @@ -43,6 +43,9 @@ & &SEAICE_PARM02 +# currently COST_ICE_TEST is undefined in SEAICE_OPTIONS.h, +# so that none of these parameters are used and the cost function +# contribution by sea ice is zero (f_ice = 0.) mult_ice = 1., # choose which seaice cost term you want cost_ice_flag = 1, diff --git a/verification/lab_sea/input_ad/dorun.sh b/verification/lab_sea/input_ad/do_run.sh similarity index 56% rename from verification/lab_sea/input_ad/dorun.sh rename to verification/lab_sea/input_ad/do_run.sh index 6c1424b8ab..ada512e5ff 100755 --- a/verification/lab_sea/input_ad/dorun.sh +++ b/verification/lab_sea/input_ad/do_run.sh @@ -1,14 +1,24 @@ #! /usr/bin/env bash -# number of additional executions to perform is given by "add_DIVA_runs" +#- script to run the sequence of multiple Divided-Adjoint runs: +# no argment -> using non-MPI built AD-executable +# single-arg -> using MPI built executable and "mpirun -np ${single-arg}" command + +#- number of additional executions to perform is given by "add_DIVA_runs" # and corresponds to "nchklev_3" value in file "code_ad/tamc.h" -add_DIVA_runs=4 +#- take it from file "run_ADM_DIVA" (as done in testreport): +adm_diva_nb=`sed -n '/^ *add_DIVA_runs *=/p' run_ADM_DIVA | sed 's/ //g'` +echo " Divided Adjoint Run: $adm_diva_nb" +eval "let $adm_diva_nb" +#- or set-it directly: +#add_DIVA_runs=4 +extraRuns=`expr $add_DIVA_runs - 1` if test $# = 0 ; then rm -f costfunction*0000 costfinal divided.ctrl snapshot* #- not MPI run: echo "Run $add_DIVA_runs times + final run:" - for ii in `seq 1 $add_DIVA_runs` ; do + for ii in `seq 0 $extraRuns` ; do ./mitgcmuv_ad > output_adm.txt.diva_${ii} echo " additional DIVA run # $ii : done" done @@ -18,7 +28,7 @@ else rm -f costfunction*0000 costfinal divided.ctrl snapshot* #- MPI run on $1 procs (note: may need to edit mpirun command): echo "Run $add_DIVA_runs times + final run (use 'mpirun -np $1' ):" - for ii in `seq 1 $add_DIVA_runs` ; do + for ii in `seq 0 $extraRuns` ; do mpirun -np $1 ./mitgcmuv_ad echo " additional DIVA run # $ii : done" mv -f STDOUT.0000 STDOUT.0000.diva_${ii} diff --git a/verification/lab_sea/input_ad/labsea_TP_fields b/verification/lab_sea/input_ad/labsea_TP_fields deleted file mode 100644 index e6d4a858ec..0000000000 Binary files a/verification/lab_sea/input_ad/labsea_TP_fields and /dev/null differ diff --git a/verification/lab_sea/input_ad/labsea_TP_mean b/verification/lab_sea/input_ad/labsea_TP_mean deleted file mode 100644 index 56bf20a06d..0000000000 Binary files a/verification/lab_sea/input_ad/labsea_TP_mean and /dev/null differ diff --git a/verification/lab_sea/input_ad/labsea_TP_mean_meters b/verification/lab_sea/input_ad/labsea_TP_mean_meters new file mode 100644 index 0000000000..29fa02a2b6 Binary files /dev/null and b/verification/lab_sea/input_ad/labsea_TP_mean_meters differ diff --git a/verification/lab_sea/input_ad/labsea_densityfollowing_maskC b/verification/lab_sea/input_ad/labsea_densityfollowing_maskC new file mode 100644 index 0000000000..a6ab3e4fc9 Binary files /dev/null and b/verification/lab_sea/input_ad/labsea_densityfollowing_maskC differ diff --git a/verification/lab_sea/input_ad/labsea_densityfollowing_maskK b/verification/lab_sea/input_ad/labsea_densityfollowing_maskK new file mode 100644 index 0000000000..e02734dfa1 Binary files /dev/null and b/verification/lab_sea/input_ad/labsea_densityfollowing_maskK differ diff --git a/verification/lab_sea/input_ad/labsea_geoid.err b/verification/lab_sea/input_ad/labsea_geoid.err deleted file mode 100644 index 3194e26973..0000000000 --- a/verification/lab_sea/input_ad/labsea_geoid.err +++ /dev/null @@ -1 +0,0 @@ -?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə?ə \ No newline at end of file diff --git a/verification/lab_sea/input_ad/labsea_ssh.err b/verification/lab_sea/input_ad/labsea_ssh.err deleted file mode 100644 index ad09f8d34b..0000000000 Binary files a/verification/lab_sea/input_ad/labsea_ssh.err and /dev/null differ diff --git a/verification/lab_sea/input_ad/prepare_run b/verification/lab_sea/input_ad/prepare_run index fcd154e1c0..56a5755b74 100755 --- a/verification/lab_sea/input_ad/prepare_run +++ b/verification/lab_sea/input_ad/prepare_run @@ -8,14 +8,14 @@ fileList=`( cd $fromDir ; echo *1979 )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -26,3 +26,26 @@ else echo " Error:" $fromDir "not a directory" fi +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/OpenAD/input_oad/data.cost b/verification/lab_sea/input_tap.noecco/data.cost similarity index 82% rename from verification/OpenAD/input_oad/data.cost rename to verification/lab_sea/input_tap.noecco/data.cost index 603933a51a..8ee4bd7566 100644 --- a/verification/OpenAD/input_oad/data.cost +++ b/verification/lab_sea/input_tap.noecco/data.cost @@ -1,7 +1,5 @@ -# -# # ****************** -# ECCO cost function +# Cost function # ****************** &COST_NML # diff --git a/verification/lab_sea/input_tap.noecco/data.ctrl b/verification/lab_sea/input_tap.noecco/data.ctrl new file mode 100644 index 0000000000..c4f1fe81d5 --- /dev/null +++ b/verification/lab_sea/input_tap.noecco/data.ctrl @@ -0,0 +1,102 @@ +# +# +# ********************* +# ECCO controlvariables +# ********************* + &CTRL_NML + & +# +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +#mult_genarr3d(1) = 1.0, +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +#mult_genarr3d(2) = 1.0, +# + xx_genarr2d_file(1) = 'xx_siarea', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +#mult_genarr2d(1) = 1.0, +# + xx_genarr2d_file(2) = 'xx_siheff', + xx_genarr2d_weight(2) = 'ones_64b.bin', +#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +#mult_genarr2d(2) = 1.0, +# + xx_gentim2d_file(1) = 'xx_atemp', + xx_gentim2d_weight(1) = 'ones_64b.bin', + xx_gentim2d_startdate1(1) = 19790101, + xx_gentim2d_startdate2(1) = 000000, + xx_gentim2d_period(1) = 864000.0, +#mult_gentim2d(9) = 1.0, + + xx_gentim2d_file(2) = 'xx_aqh', + xx_gentim2d_weight(2) = 'ones_64b.bin', + xx_gentim2d_startdate1(2) = 19790101, + xx_gentim2d_startdate2(2) = 000000, + xx_gentim2d_period(2) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(3) = 'xx_precip', + xx_gentim2d_weight(3) = 'ones_64b.bin', + xx_gentim2d_startdate1(3) = 19790101, + xx_gentim2d_startdate2(3) = 000000, + xx_gentim2d_period(3) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(4) = 'xx_snowprecip', + xx_gentim2d_weight(4) = 'ones_64b.bin', + xx_gentim2d_startdate1(4) = 19790101, + xx_gentim2d_startdate2(4) = 000000, + xx_gentim2d_period(4) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(5) = 'xx_swdown', + xx_gentim2d_weight(5) = 'ones_64b.bin', + xx_gentim2d_startdate1(5) = 19790101, + xx_gentim2d_startdate2(5) = 000000, + xx_gentim2d_period(5) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(6) = 'xx_lwdown', + xx_gentim2d_weight(6) = 'ones_64b.bin', + xx_gentim2d_startdate1(6) = 19790101, + xx_gentim2d_startdate2(6) = 000000, + xx_gentim2d_period(6) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(7) = 'xx_uwind', + xx_gentim2d_weight(7) = 'ones_64b.bin', + xx_gentim2d_startdate1(7) = 19790101, + xx_gentim2d_startdate2(7) = 000000, + xx_gentim2d_period(7) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(8) = 'xx_vwind', + xx_gentim2d_weight(8) = 'ones_64b.bin', + xx_gentim2d_startdate1(8) = 19790101, + xx_gentim2d_startdate2(8) = 000000, + xx_gentim2d_period(8) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + xx_gentim2d_file(9) = 'xx_apressure', + xx_gentim2d_weight(9) = 'ones_64b.bin', + xx_gentim2d_startdate1(9) = 19790101, + xx_gentim2d_startdate2(9) = 000000, + xx_gentim2d_period(9) = 864000.0, +#mult_gentim2d(9) = 1.0, +# + & diff --git a/verification/lab_sea/input_tap.noecco/data.pkg b/verification/lab_sea/input_tap.noecco/data.pkg new file mode 100644 index 0000000000..2c4d4665c0 --- /dev/null +++ b/verification/lab_sea/input_tap.noecco/data.pkg @@ -0,0 +1,13 @@ +# Packages + &PACKAGES + useGMRedi = .TRUE., + useKPP = .TRUE., + useEXF = .TRUE., + useSEAICE = .TRUE., + useDOWN_SLOPE=.TRUE., + useDiagnostics = .FALSE., + useCAL = .TRUE., +# useMNC = .TRUE., +# useECCO = .TRUE., + useGrdchk = .TRUE., + & diff --git a/verification/lab_sea/input_tap.noecco/data.seaice b/verification/lab_sea/input_tap.noecco/data.seaice new file mode 100644 index 0000000000..7e19228d19 --- /dev/null +++ b/verification/lab_sea/input_tap.noecco/data.seaice @@ -0,0 +1,62 @@ +# SEAICE parameters + &SEAICE_PARM01 + SEAICE_initialHEFF = 1.0, + SEAICE_deltaTtherm = 3600., + SEAICE_deltaTdyn = 3600., + SEAICEuseDYNAMICS =.TRUE., +#-- According to Martin, SEAICE_clipVelocities is not recommended +# SEAICE_clipVelocities=.TRUE., + SEAICEadvSalt =.FALSE., +#-- above: to reproduce old results + LSR_ERROR = 1.E-6, +### SEAICE_deltaTevp = 60, + SEAICE_EPS = 1.E-8, + SEAICE_multDim = 7, +#- to reproduce old results with former #defined SEAICE_SOLVE4TEMP_LEGACY code + useMaykutSatVapPoly = .TRUE., + postSolvTempIter = 0, +#- paramaters from SEAICE_GROWTH_LEGACY branch + SEAICE_doOpenWaterGrowth=.FALSE., + SEAICE_doOpenWaterMelt=.FALSE., + SEAICE_areaGainFormula=2, + SEAICE_areaLossFormula=3, +# + SEAICE_saltFrac = 0.3, + SEAICE_tempFrz0 = -1.96, + SEAICE_dTempFrz_dS = 0., + SEAICE_availHeatFrac = 0.8, + SEAICEdiffKhArea = 200., + SEAICEwriteState = .TRUE., +# SEAICE_tave_mnc = .FALSE., +# SEAICE_dump_mnc = .FALSE., +# SEAICE_mon_mnc = .FALSE., +# old defaults + SEAICEadvScheme = 2, + SEAICEscaleSurfStress = .FALSE., + SEAICEaddSnowMass = .FALSE., + SEAICE_useMultDimSnow = .FALSE., + SEAICEetaZmethod = 0, + SEAICE_Olx = 0, + SEAICE_Oly = 0, + SEAICE_drag = 0.002, + SEAICE_waterDrag = 0.005355404089581304, + & + + &SEAICE_PARM02 +# currently COST_ICE_TEST is undefined in SEAICE_OPTIONS.h, +# so that none of these parameters are used and the cost function +# contribution by sea ice is zero (f_ice = 0.) + mult_ice = 1., +# choose which seaice cost term you want + cost_ice_flag = 1, +# the following timings are obsolete; +# replaced by lastinterval +# ssg - Dates same as in data.cal + costIceStart1 = 19790101, + costIceStart2 = 00000, + costIceEnd1 = 19790201, + costIceEnd2 = 00000, + & + + &SEAICE_PARM03 + & diff --git a/verification/lab_sea/input_tap/data.mnc b/verification/lab_sea/input_tap/data.mnc new file mode 100644 index 0000000000..cdb9c0ae5a --- /dev/null +++ b/verification/lab_sea/input_tap/data.mnc @@ -0,0 +1,15 @@ +# Example "data.mnc" file +# Lines beginning "#" are comments + &MNC_01 +# mnc_echo_gvtypes=.FALSE., +# mnc_use_indir=.FALSE., + mnc_use_outdir=.TRUE., + mnc_outdir_str='mnc_test_', +#mnc_outdir_date=.TRUE., + monitor_mnc=.FALSE., +#timeave_mnc=.FALSE., +#snapshot_mnc=.FALSE., +#autodiff_mnc=.FALSE., + pickup_write_mnc=.FALSE., + pickup_read_mnc=.FALSE., + & diff --git a/verification/lab_sea/input_tap/data.pkg b/verification/lab_sea/input_tap/data.pkg new file mode 100644 index 0000000000..f5387c5ea6 --- /dev/null +++ b/verification/lab_sea/input_tap/data.pkg @@ -0,0 +1,13 @@ +# Packages + &PACKAGES + useGMRedi = .TRUE., + useKPP = .TRUE., + useEXF = .TRUE., + useSEAICE = .TRUE., + useDOWN_SLOPE=.TRUE., + useDiagnostics = .FALSE., + useCAL = .TRUE., + useMNC = .TRUE., + useECCO = .TRUE., + useGrdchk = .TRUE., + & diff --git a/verification/lab_sea/input_tap/prepare_run b/verification/lab_sea/input_tap/prepare_run new file mode 100755 index 0000000000..7be0a65d2d --- /dev/null +++ b/verification/lab_sea/input_tap/prepare_run @@ -0,0 +1,77 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.1979 files +#- from this dir: +fromDir="../input" + +fileList=`( cd $fromDir ; echo *1979 )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata *.bin labsea_* )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/lab_sea/results/output.hb87.txt b/verification/lab_sea/results/output.hb87.txt index 6f0125b0ff..ec7b40c27a 100644 --- a/verification/lab_sea/results/output.hb87.txt +++ b/verification/lab_sea/results/output.hb87.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65z -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Thu Oct 6 12:25:41 EDT 2016 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67u +(PID.TID 0000.0001) // Build user: mlosch +(PID.TID 0000.0001) // Build host: bkli04l006 +(PID.TID 0000.0001) // Build date: Tue Feb 2 07:41:15 CET 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -48,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -264,6 +266,7 @@ (PID.TID 0000.0001) > useGMRedi = .TRUE., (PID.TID 0000.0001) > useKPP = .TRUE., (PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useCAL = .TRUE., (PID.TID 0000.0001) > useSEAICE = .TRUE., (PID.TID 0000.0001) > useDiagnostics = .TRUE., (PID.TID 0000.0001) ># useMNC = .TRUE., @@ -276,7 +279,6 @@ pkg/gmredi compiled and used ( useGMRedi = T ) pkg/cal compiled and used ( useCAL = T ) pkg/exf compiled and used ( useEXF = T ) - pkg/sbo compiled but not used ( useSBO = F ) pkg/seaice compiled and used ( useSEAICE = T ) pkg/salt_plume compiled but not used ( useSALT_PLUME = F ) pkg/diagnostics compiled and used ( useDiagnostics = T ) @@ -428,7 +430,7 @@ (PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 (PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 (PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf -(PID.TID 0000.0001) KPP_INIT: opening data.kpp +(PID.TID 0000.0001) KPP_READPARMS: opening data.kpp (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.kpp (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.kpp" @@ -440,7 +442,9 @@ (PID.TID 0000.0001) > KPP_ghatUseTotalDiffus=.TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) -(PID.TID 0000.0001) KPP_INIT: finished reading data.kpp +(PID.TID 0000.0001) KPP_READPARMS ; starts to read KPP_PARM01 +(PID.TID 0000.0001) KPP_READPARMS ; read KPP_PARM01 : OK +(PID.TID 0000.0001) KPP_READPARMS: finished reading data.kpp (PID.TID 0000.0001) GM_READPARMS: opening data.gmredi (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi (PID.TID 0000.0001) // ======================================================= @@ -463,11 +467,14 @@ (PID.TID 0000.0001) > &SEAICE_PARM01 (PID.TID 0000.0001) >#- seaice dynamics params: (PID.TID 0000.0001) > SEAICE_deltaTdyn = 3600., -(PID.TID 0000.0001) > SEAICE_deltaTevp = 30., +(PID.TID 0000.0001) ># turn on aEVP with some sensible parameters +(PID.TID 0000.0001) > SEAICEaEVPcoeff =0.5, +(PID.TID 0000.0001) > SEAICEnEVPstarSteps =500, +(PID.TID 0000.0001) > SEAICEuseEVPstar = .TRUE., +(PID.TID 0000.0001) > SEAICEuseEVPrev = .TRUE.. +(PID.TID 0000.0001) ># end of aEVP parameters (PID.TID 0000.0001) > useHB87stressCoupling = .TRUE., (PID.TID 0000.0001) > SEAICE_no_slip = .TRUE., -(PID.TID 0000.0001) > SEAICE_drag = 0.001, -(PID.TID 0000.0001) > SEAICEetaZmethod = 3, (PID.TID 0000.0001) ># Depending on vertical resolution this angle should have a value > 0 (PID.TID 0000.0001) ># (e.g., 25deg for drF(1)=10m) (PID.TID 0000.0001) ># SEAICE_waterTurnAngle = 0.0, @@ -475,6 +482,8 @@ (PID.TID 0000.0001) > SEAICE_salt0 = 4.0, (PID.TID 0000.0001) >#- old DIFF1 default: (PID.TID 0000.0001) > DIFF1 = 4.E-3, +(PID.TID 0000.0001) >#- requires old default advection scheme +(PID.TID 0000.0001) > SEAICEadvScheme = 2, (PID.TID 0000.0001) >#- seaice thermodyn params: (PID.TID 0000.0001) > SEAICE_deltaTtherm = 3600., (PID.TID 0000.0001) > SEAICE_multDim = 1, @@ -487,6 +496,10 @@ (PID.TID 0000.0001) > HsaltFile = 'HSALT.0000008760', (PID.TID 0000.0001) > HeffFile = 'HEFF.0000008760', (PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) ># old defaults +(PID.TID 0000.0001) > SEAICEscaleSurfStress = .FALSE., +(PID.TID 0000.0001) > SEAICEaddSnowMass = .FALSE., +(PID.TID 0000.0001) > SEAICE_waterDrag = 0.005355404089581304, (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) > &SEAICE_PARM03 @@ -929,6 +942,9 @@ (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; @@ -1079,81 +1095,68 @@ (PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined (PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Net shortwave flux forcing starts at 0. -(PID.TID 0000.0001) Net shortwave flux forcing period is 2635200. -(PID.TID 0000.0001) Net shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) (PID.TID 0000.0001) Zonal wind forcing starts at -1317600. (PID.TID 0000.0001) Zonal wind forcing period is 2635200. +(PID.TID 0000.0001) Zonal wind forcing repeat-cycle is 31622400. (PID.TID 0000.0001) Zonal wind forcing is read from file: -(PID.TID 0000.0001) >> u10m.labsea1979 << +(PID.TID 0000.0001) >> u10m.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) Meridional wind forcing starts at -1317600. (PID.TID 0000.0001) Meridional wind forcing period is 2635200. +(PID.TID 0000.0001) Meridional wind forcing repeat-cycle is 31622400. (PID.TID 0000.0001) Meridional wind forcing is read from file: -(PID.TID 0000.0001) >> v10m.labsea1979 << +(PID.TID 0000.0001) >> v10m.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) Atmospheric temperature starts at -1317600. (PID.TID 0000.0001) Atmospheric temperature period is 2635200. +(PID.TID 0000.0001) Atmospheric temperature repeat-cycle is 31622400. (PID.TID 0000.0001) Atmospheric temperature is read from file: -(PID.TID 0000.0001) >> tair.labsea1979 << +(PID.TID 0000.0001) >> tair.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) Atmospheric specific humidity starts at -1317600. (PID.TID 0000.0001) Atmospheric specific humidity period is 2635200. +(PID.TID 0000.0001) Atmospheric specific humidity rep-cycle is 31622400. (PID.TID 0000.0001) Atmospheric specific humidity is read from file: -(PID.TID 0000.0001) >> qa.labsea1979 << +(PID.TID 0000.0001) >> qa.labsea1979 << (PID.TID 0000.0001) -(PID.TID 0000.0001) Net longwave flux forcing starts at 0. -(PID.TID 0000.0001) Net longwave flux forcing period is 2635200. -(PID.TID 0000.0001) Net longwave flux forcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Precipitation data set starts at -1317600. +(PID.TID 0000.0001) Precipitation data starts at -1317600. (PID.TID 0000.0001) Precipitation data period is 2635200. +(PID.TID 0000.0001) Precipitation data repeat-cycle is 31622400. (PID.TID 0000.0001) Precipitation data is read from file: -(PID.TID 0000.0001) >> prate.labsea1979 << -(PID.TID 0000.0001) -(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) >> prate.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: defined -(PID.TID 0000.0001) Runoff starts at 0. -(PID.TID 0000.0001) Runoff period is 0. -(PID.TID 0000.0001) Runoff is read from file: -(PID.TID 0000.0001) >> << (PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Downward shortwave flux forcing starts at -1317600. -(PID.TID 0000.0001) Downward shortwave flux forcing period is 2635200. -(PID.TID 0000.0001) Downward shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> fsh.labsea1979 << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Downward longwave flux forcing starts at -1317600. -(PID.TID 0000.0001) Downward longwave flux forcing period is 2635200. -(PID.TID 0000.0001) Downward longwave flux forcing is read from file: -(PID.TID 0000.0001) >> flo.labsea1979 << +(PID.TID 0000.0001) Downward shortwave flux starts at -1317600. +(PID.TID 0000.0001) Downward shortwave flux period is 2635200. +(PID.TID 0000.0001) Downward shortwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward shortwave flux is read from file: +(PID.TID 0000.0001) >> fsh.labsea1979 << (PID.TID 0000.0001) -(PID.TID 0000.0001) Atmospheric pressure forcing starts at 0. -(PID.TID 0000.0001) Atmospheric pressure forcing period is 0. -(PID.TID 0000.0001) Atmospheric pressureforcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) Downward longwave flux starts at -1317600. +(PID.TID 0000.0001) Downward longwave flux period is 2635200. +(PID.TID 0000.0001) Downward longwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward longwave flux is read from file: +(PID.TID 0000.0001) >> flo.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) climatology configuration : (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined -(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used (PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SST starts at 0. -(PID.TID 0000.0001) Climatological SST period is 2635200. -(PID.TID 0000.0001) Climatological SST is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SSS starts at -1317600. -(PID.TID 0000.0001) Climatological SSS period is 2635200. +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS starts at -1317600. +(PID.TID 0000.0001) Climatological SSS period is 2635200. +(PID.TID 0000.0001) Climatological SSS repeat-cycle is 31622400. (PID.TID 0000.0001) Climatological SSS is read from file: -(PID.TID 0000.0001) >> SSS_monthly.labsea1979 << +(PID.TID 0000.0001) >> SSS_monthly.labsea1979 << (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< @@ -1172,11 +1175,14 @@ (PID.TID 0000.0001) 3.600000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ -(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1219,11 +1225,14 @@ (PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ (PID.TID 0000.0001) 1.000000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag * density */ -(PID.TID 0000.0001) 5.500000000000000E+00 +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag */ -(PID.TID 0000.0001) 5.500000000000000E+00 +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEbasalDragK2 = /* Basal drag parameter */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -1261,6 +1270,9 @@ (PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ (PID.TID 0000.0001) 3 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1282,6 +1294,9 @@ (PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1294,6 +1309,9 @@ (PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_elasticParm= /* EVP elastic parameter */ (PID.TID 0000.0001) 3.333333333333333E-01 (PID.TID 0000.0001) ; @@ -1304,28 +1322,28 @@ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseEVPstar = /* use EVP* solver */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseEVPrev = /* use "revisited EVP" solver */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_evpAlpha = /* EVP* parameter*/ -(PID.TID 0000.0001) 8.000000000000000E+01 +(PID.TID 0000.0001) 1.944001419121036E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_evpBeta = /* EVP* parameter */ -(PID.TID 0000.0001) 1.200000000000000E+02 +(PID.TID 0000.0001) 2.916002128681554E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEaEVPcoeff = /* adaptive EVP parameter*/ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) 5.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEaEVPcStar = /* adaptive EVP parameter*/ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) 4.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEaEVPalphaMin= /* adaptive EVP parameter*/ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) 5.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEnEVPstarSteps = /* num. of EVP* steps */ -(PID.TID 0000.0001) 123456789 +(PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseEVPpickup= /* start EVP solver with EVP pickup*/ (PID.TID 0000.0001) T @@ -1333,6 +1351,9 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) Seaice advection diffusion config, > START < (PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1610,30 +1631,30 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 316 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 328 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 EXFtaux -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 195 EXFtauy -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 193 EXFqnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 204 EXFempmr -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 188 EXFhl -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 187 EXFhs -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 190 EXFswnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 189 EXFlwnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 196 EXFuwind -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 197 EXFvwind -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 199 EXFatemp -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 247 SIarea -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 250 SIheff -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 252 SIhsnow -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 256 SIuice -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 257 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 197 EXFtaux +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 198 EXFtauy +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 196 EXFqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 207 EXFempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 191 EXFhl +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 190 EXFhs +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 193 EXFswnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 192 EXFlwnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 199 EXFuwind +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 200 EXFvwind +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 EXFatemp +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 251 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 254 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 256 SIhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 268 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 269 SIvice (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 212 KPPhbl -(PID.TID 0000.0001) SETDIAG: Allocate 23 x 1 Levels for Diagnostic # 211 KPPghatK +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 216 KPPhbl +(PID.TID 0000.0001) SETDIAG: Allocate 23 x 1 Levels for Diagnostic # 215 KPPghatK (PID.TID 0000.0001) space allocated for all diagnostics: 41 levels -(PID.TID 0000.0001) set mate pointer for diag # 256 SIuice , Parms: UU M1 , mate: 257 -(PID.TID 0000.0001) set mate pointer for diag # 257 SIvice , Parms: VV M1 , mate: 256 +(PID.TID 0000.0001) set mate pointer for diag # 268 SIuice , Parms: UU M1 , mate: 269 +(PID.TID 0000.0001) set mate pointer for diag # 269 SIvice , Parms: VV M1 , mate: 268 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: diagsEXF (PID.TID 0000.0001) Levels: 1. (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: diagsSI @@ -1822,10 +1843,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.986000000000000E+03 (PID.TID 0000.0001) ; @@ -1883,7 +1910,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -1977,8 +2004,9 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implBottomFriction= /* Implicit bottom friction on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) (PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T @@ -1999,41 +2027,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -2097,6 +2103,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2116,6 +2128,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -2227,9 +2242,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -2287,6 +2299,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2688,6 +2712,136 @@ (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) (PID.TID 0000.0001) KPP_CHECK: #define ALLOW_KPP +(PID.TID 0000.0001) kpp_freq = /* frequency of KPP calculation */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPP_ghatUseTotalDiffus= /* non-local term fct of total diffus */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPuseDoubleDiff = /* include double diffusive contrib */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LimitHblStable = /* limits depth of hbl if stable cond.*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) minKPPhbl = /* minimum KPPhbl value [m] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsln = /* constant [-] */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phepsi = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsilon = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vonk = /* Von Karmans constant [-] */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dB_dz = /* maximum N^2 in mixed layer [s^-2] */ +(PID.TID 0000.0001) 5.200000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc1 = /* scalar constant [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conam = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.257000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concm = /* scalar constant [-] */ +(PID.TID 0000.0001) 8.380000000000001E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc2 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conas = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.886000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concs = /* scalar constant [-] */ +(PID.TID 0000.0001) 9.895999999999999E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc3 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetam = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetas = /* scalar constant [-] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Ricr = /* critical bulk Richardson Number [-] */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cekman = /* coeff for Ekman depth [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cmonob = /* coeff for Monin-Obukhov depth [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concv = /* buoyancy freq ratio [-] */ +(PID.TID 0000.0001) 1.800000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hbf = /* solar radiation depth ratio [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmin = /* minimum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) -4.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmax = /* maximum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umin = /* minimum for ustar in table [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* maximum for ustar in table [m/s] */ +(PID.TID 0000.0001) 4.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) num_v_smooth_Ri = /* number of vertical smoothing */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Riinfty = /* shear instability Ri number limit [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) BVSQcon = /* Brunt-Vaisala squared (=N^2) [s^-2] */ +(PID.TID 0000.0001) -2.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difm0 = /* max viscosity from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difs0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dift0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difmcon = /* convective viscosity [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difscon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diftcon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Rrho0 = /* double diffusion density ratio [-] */ +(PID.TID 0000.0001) 1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dsfmax = /* max diffusiv. for salt fingering [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cstar = /* coeff for non-locak transport [-] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPwriteState = /* write KPP fields to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_dumpFreq = /* dump freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_taveFreq = /* time-averaging freq of KPP output */ +(PID.TID 0000.0001) 3.600000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) (PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI (PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ (PID.TID 0000.0001) F @@ -2761,6 +2915,10 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -2785,28 +2943,28 @@ listId= 1 ; file name: diagsEXF 11 | 11 | -36000.000000 18000.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 194 |EXFtaux | 1 | 0 | 1 | 0 | - 195 |EXFtauy | 2 | 0 | 1 | 0 | - 193 |EXFqnet | 3 | 0 | 1 | 0 | - 204 |EXFempmr| 4 | 0 | 1 | 0 | - 188 |EXFhl | 5 | 0 | 1 | 0 | - 187 |EXFhs | 6 | 0 | 1 | 0 | - 190 |EXFswnet| 7 | 0 | 1 | 0 | - 189 |EXFlwnet| 8 | 0 | 1 | 0 | - 196 |EXFuwind| 9 | 0 | 1 | 0 | - 197 |EXFvwind| 10 | 0 | 1 | 0 | - 199 |EXFatemp| 11 | 0 | 1 | 0 | + 197 |EXFtaux | 1 | 0 | 1 | 0 | + 198 |EXFtauy | 2 | 0 | 1 | 0 | + 196 |EXFqnet | 3 | 0 | 1 | 0 | + 207 |EXFempmr| 4 | 0 | 1 | 0 | + 191 |EXFhl | 5 | 0 | 1 | 0 | + 190 |EXFhs | 6 | 0 | 1 | 0 | + 193 |EXFswnet| 7 | 0 | 1 | 0 | + 192 |EXFlwnet| 8 | 0 | 1 | 0 | + 199 |EXFuwind| 9 | 0 | 1 | 0 | + 200 |EXFvwind| 10 | 0 | 1 | 0 | + 202 |EXFatemp| 11 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: diagsSI nFlds, nActive, freq & phase , nLev 5 | 5 | 36000.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 247 |SIarea | 12 | 0 | 1 | 0 | - 250 |SIheff | 13 | 0 | 1 | 0 | - 252 |SIhsnow | 14 | 0 | 1 | 0 | - 256 |SIuice | 15 | 16 | 1 | 0 | 0 | - 257 |SIvice | 16 | 15 | 1 | 0 | 0 | + 251 |SIarea | 12 | 0 | 1 | 0 | + 254 |SIheff | 13 | 0 | 1 | 0 | + 256 |SIhsnow | 14 | 0 | 1 | 0 | + 268 |SIuice | 15 | 16 | 1 | 0 | 0 | + 269 |SIvice | 16 | 15 | 1 | 0 | 0 | ------------------------------------------------------------------------ listId= 3 ; file name: diagsKPP nFlds, nActive, freq & phase , nLev @@ -2814,14 +2972,14 @@ listId= 3 ; file name: diagsKPP levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| 76 |MXLDEPTH| 17 | 0 | 1 | 0 | - 212 |KPPhbl | 18 | 0 | 1 | 0 | + 216 |KPPhbl | 18 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 4 ; file name: KPPghatK nFlds, nActive, freq & phase , nLev 1 | 1 | 36000.000000 0.000000 | 23 levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 diag# | name | ipt | iMate | kLev| count | mate.C| - 211 |KPPghatK| 19 | 0 | 23 | 0 | + 215 |KPPghatK| 19 | 0 | 23 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 0 ------------------------------------------------------------------------ @@ -3018,6 +3176,11 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7155011940226E+01 (PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0663334456782E+01 (PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7387583432021E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7035050318978E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.5248217499521E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0553837407793E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9425121658951E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0821980679275E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0498766300771E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7359498694368E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703382093879E-08 @@ -3028,11 +3191,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6786802948002E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9522797885510E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9171044652527E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7035050318978E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.5248217499521E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0553837407793E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9425121658951E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0821980679275E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1081237792969E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0228617191315E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9763114386669E+01 @@ -3052,89 +3210,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -8.32667268468867E-16 3.20588605188195E-01 -(PID.TID 0000.0001) cg2d_init_res = 3.68435324355950E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 3.20588607894846E-01 +(PID.TID 0000.0001) cg2d_init_res = 3.68429774331379E+00 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 44 -(PID.TID 0000.0001) cg2d_last_res = 7.68740845657166E-13 +(PID.TID 0000.0001) cg2d_last_res = 7.67921191486738E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 1 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.0471143588578E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -7.5297579256743E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8290985152643E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5112164392841E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8070382887762E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5486607186459E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7373637770485E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5949846035142E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3885805556718E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5872272101681E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.4641672319307E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0093217372378E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3765632080202E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7078691929530E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3786795006784E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2855221267960E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3724087269121E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.9544570483770E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3555802261916E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6225614207078E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.0471098423052E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.5297814839437E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.6892201874667E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.5112785824987E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8072582130627E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5486607055326E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7374690346763E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5937026822754E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3884128742756E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.5867265420286E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.4642403828829E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0239909582724E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3767289087649E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7077785100317E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3737909296863E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2855116824858E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3724128397789E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.4590113435393E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.3556566100111E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.6261755623478E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.2478892830414E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8577139628932E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0887639015263E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4315913263842E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7774718966466E-02 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8577139734367E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0887639014009E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4315913604400E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7774684840355E-02 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292874730300E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708027830051E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759295999146E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2872753959343E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0401147856707E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759295998872E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2872754102440E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0401059179834E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 2.7469395350233E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -8.3539056693343E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 8.9411129818619E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.9501670268939E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.8013177898166E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = -8.3539125682228E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 8.9411344353415E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.9502782804106E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.8018269240456E+00 (PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.3973114013672E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4715419274800E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1121735300737E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7623344979661E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 8.0342545147684E-04 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4715490806785E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1121670601597E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7619997977397E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 8.0342943582396E-04 (PID.TID 0000.0001) %MON forcing_empmr_min = -8.3144370292142E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 5.0994260851674E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.3936504190705E-04 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5129068907804E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 5.0990179978946E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.3935771280748E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.5127328707800E-05 (PID.TID 0000.0001) %MON forcing_fu_max = 6.2046177904916E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8185666070261E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4045262440992E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0838382877174E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.7665473252427E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 2.4951745592668E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8185622661909E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3990471636792E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0888079934650E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.9311313559226E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4701493529220E-02 (PID.TID 0000.0001) %MON forcing_fv_min = -4.1890912750340E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.4336284669519E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1841740087222E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.9739978345301E-04 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6379958222023E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1557940352806E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6594258136829E-04 (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1452362636170E-03 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.2173874020514E-03 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3310140061302E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0015224994215E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.7277631753870E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5059515851345E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7559411195373E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 2.0579971951796E-06 -(PID.TID 0000.0001) %MON ke_max = 1.8254788087510E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.0671253939942E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0015224957206E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.7515094007403E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5059562967884E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.7559645303900E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.0580990519068E-06 +(PID.TID 0000.0001) %MON ke_max = 1.8314405316118E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.0670684612248E-05 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -5.5252182218265E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.7949251490382E-07 +(PID.TID 0000.0001) %MON vort_r_min = -5.5291229564479E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.7767743799361E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7675005190186E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7675004117722E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1735770940657E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.2691016829156E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0542117774793E-06 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1735769867913E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.2689908665432E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0542522517536E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3143,31 +3301,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 1 (PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.1212498291228E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.9196143005028E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.7368742117951E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.6115938393018E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4670487583635E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 5.1084014051522E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2744229615314E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.5716536694766E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 4.0304642590906E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6737267395735E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9999657451732E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2442667017430E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.3933759860205E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.9688117493415E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 4.8533928501180E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4207092811094E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.5937139187222E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2546179407784E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.3864340577162E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8809698229376E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5729908011116E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9999657439348E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1906522216667E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4180497181567E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1804283327741E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6268998449686E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1906594076125E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4180675677365E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1802713133034E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6269441707848E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7046474258003E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3145109023764E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3656472770769E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4529887041690E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7046472755144E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3145297468840E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3651630460250E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4530448926978E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0405611893626E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5096325767459E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1112756138579E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0405609409312E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5096362732883E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1112362938759E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3177,25 +3335,25 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_tsnumber = 1 (PID.TID 0000.0001) %MON exf_time_sec = 3.6000000000000E+03 (PID.TID 0000.0001) %MON exf_ustress_max = 6.2602047611654E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3838445449558E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2460763846712E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6345419213278E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2608834470421E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3856520235103E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3838443106487E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2460763086368E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6345419614848E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2608836159583E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3856518890348E-02 (PID.TID 0000.0001) %MON exf_vstress_min = -5.9490723956129E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2593091113954E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5107341885593E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1407756891804E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3246128965464E+02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2593087771260E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5107341294067E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1407745357687E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3246114010260E+02 (PID.TID 0000.0001) %MON exf_hflux_min = 8.9526842472279E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1607297532053E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3240071558944E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3989140747336E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0717772049157E-08 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1607296390734E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3240062506954E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3989108468296E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0717752374036E-08 (PID.TID 0000.0001) %MON exf_sflux_min = -8.3166994977651E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6145121386248E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4281821070154E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7096061441208E-09 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6145123257967E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4281808954240E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7096012356281E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4648819946852E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8372648550513E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8371259923752E+00 @@ -3221,11 +3379,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5059176936890E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4162426156286E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8584773798079E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8553479957064E+02 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8553453255704E+02 (PID.TID 0000.0001) %MON exf_lwflux_min = 6.7039869205182E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7169287709312E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0673116369476E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7399904447169E+00 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7169288857226E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0673101873205E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7399819676324E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7041297487199E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.5191742549868E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0558240903163E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9430445183236E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0826788709361E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0498904445033E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7346106047101E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703364161130E-08 @@ -3236,11 +3399,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6797468382408E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9526520290243E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9212318734339E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7041317162320E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.5191526155925E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0558242774882E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9430561636900E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0826817449070E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1102204849160E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0228931499961E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9774964869343E+01 @@ -3259,89 +3417,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 8.50153281106714E-14 3.46518752531168E-01 -(PID.TID 0000.0001) cg2d_init_res = 4.93511037061021E-01 + cg2d: Sum(rhs),rhsMax = 8.62712679072786E-14 3.46518852165452E-01 +(PID.TID 0000.0001) cg2d_init_res = 4.93497153604338E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 42 -(PID.TID 0000.0001) cg2d_last_res = 3.12456942956886E-13 +(PID.TID 0000.0001) cg2d_last_res = 3.14237368738283E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0363409845856E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0077772369718E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.9524624501347E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9894917201616E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9977685593571E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6341736442094E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1799670810880E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0286390304340E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2303866314362E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0454652582511E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9211733189930E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7066885516130E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4421076777756E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5890333827361E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5540160340388E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.1289803914674E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6815839275232E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.9544570483770E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6639551910437E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5810050101172E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476411140957E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8572593132584E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0886800254569E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4314601727295E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7774782272697E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292882891489E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.0363282000305E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0077810814461E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.1237862934837E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9895400966982E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9977921706568E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6341746910232E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1800012071432E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0294079461649E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2302217940498E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0445441008010E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9212038385953E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.7049925323639E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4419655540748E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5889401564214E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5504376192336E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.1289668859851E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.6815762564834E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4863371145131E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6639890102667E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5839735805028E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476411143152E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8572595854950E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0886800257985E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4314602056754E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7774745306352E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292882891460E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708044954787E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759303313023E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2869546881115E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0376585642148E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759303312636E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2869547243407E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0376501316813E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 2.7465670935750E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -6.9147761175263E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.5817192139973E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.3297360392093E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1667755141112E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = -6.9147797129470E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.5817119304048E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.3295141067868E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1675017899118E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -2.7903575995367E-07 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.3991984364244E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4721000702786E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1127570239624E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7632553279904E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.5810736542963E-04 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4721076957370E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1127501544713E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7629069886786E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.5811105011607E-04 (PID.TID 0000.0001) %MON forcing_empmr_min = -8.3150361578656E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 3.1680515557611E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.1579221376683E-04 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1199018840709E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 3.1676375916114E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.1583308040754E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1213790592919E-05 (PID.TID 0000.0001) %MON forcing_fu_max = 6.2056297628509E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8185292869526E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3984352047166E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0909127579330E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.9514331570929E-04 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8185086617675E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3948242698341E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0898773347348E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8614991229247E-04 (PID.TID 0000.0001) %MON forcing_fv_max = 1.4705204180701E-02 (PID.TID 0000.0001) %MON forcing_fv_min = -4.1876813032219E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6961888737324E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1604854598012E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.9746463608971E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0015733480952E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0033069333844E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7559411195373E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3078819134541E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.2378669628864E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.3920476302344E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7235965949818E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.1941157453044E-06 -(PID.TID 0000.0001) %MON ke_max = 1.6226626138353E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.2904098578066E-05 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6703497745870E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1558133977640E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4824618192564E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0015733443941E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0057560835240E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.7559645303900E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3078822088916E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.2351214827277E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.3920288069606E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.7235866690306E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1942417136592E-06 +(PID.TID 0000.0001) %MON ke_max = 1.6221684111141E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.2903140336993E-05 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -4.3855939429805E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.6397087625127E-07 +(PID.TID 0000.0001) %MON vort_r_min = -4.3855831351837E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.6247405634899E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7672883797266E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7672884117143E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1736166584420E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.3462513115436E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.5178545624448E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1736166030238E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.3461514195377E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.5183751359662E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3350,31 +3508,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 2 (PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.2280386256919E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -7.4100380878626E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.1404880492633E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.8834749926568E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6457075136996E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 4.7065997341867E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.1468654715561E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4457371609623E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8731777067634E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5433513803930E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9998445860818E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3229166804527E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -7.3307353600929E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2963878419653E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.0790285075642E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6299640701005E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.6929636017024E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1476808856623E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.3994377411455E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8934775883774E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5422340686887E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9999260867722E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1904988042179E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4165709444026E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1780627215468E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6269864400627E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1905078510604E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4165946221047E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1778618545423E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6270664214728E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7066894975873E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3155601568713E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3678186409866E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4541690183487E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7066891773057E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3155897240316E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3673734878531E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4541037724062E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0455284473156E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5137297994061E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1133065674532E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0455284468523E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5137461206065E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1132949290555E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3383,26 +3541,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 2 (PID.TID 0000.0001) %MON exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2613016444987E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3841420323729E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2463382605224E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6349681769091E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2616060537515E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3858430865668E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9473902851728E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2546435917174E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5108735348238E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1409770002040E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3256250273240E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524929461099E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1611255654593E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3245226398988E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3995205673075E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0724227940383E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3173779586046E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6142955864604E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4286013392692E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7100441299033E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2613016445045E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3841420566427E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2463381567526E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6349682117784E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2616067417215E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3858431004960E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9473902851471E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2546429510640E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5108734561526E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1409767641265E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3256251822520E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524929465185E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1611246022103E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3245203901598E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3995191318541E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0724229978660E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3173779587613E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6142967616473E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4285989692146E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7100421927166E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4653894471340E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8372916367536E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8372338625051E+00 @@ -3428,11 +3586,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5053514022466E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4161462594733E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8560262105827E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8555212870495E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7041008890982E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7179314011787E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0682972103399E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7411057493066E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8555069795437E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7041008891586E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7179295323873E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0682927815144E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7411006068638E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7047112380893E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.5081136609036E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0560378611907E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9444837545506E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0831109989440E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499042589295E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7332713399833E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703346228381E-08 @@ -3443,11 +3606,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6808133816815E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9530243278558E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9253601563180E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7047110342615E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.5080974519792E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0560390363776E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9445016684028E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0831119799909E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1123171905351E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0229245808607E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9786815352017E+01 @@ -3466,89 +3624,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 9.40081346101351E-14 3.62192513567891E-01 -(PID.TID 0000.0001) cg2d_init_res = 2.17757141392107E-01 + cg2d: Sum(rhs),rhsMax = 9.84490267086358E-14 3.62192522644034E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.17606756639385E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 7.24350133589114E-13 +(PID.TID 0000.0001) cg2d_last_res = 5.12595834138212E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0658659988487E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0580637765940E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1146893098907E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6729241114528E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8963725974933E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9718482995400E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3994024122210E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2583871030203E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.5803909048550E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1842865222321E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8039391204003E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5356613463235E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.3722182471915E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.6089669474117E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6792486531687E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9107426285924E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.7075221503398E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.9362398677278E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7670779726483E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9771795869927E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475668703244E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8573372136581E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0886046815236E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4313920733928E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7778974095406E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292867759503E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0658635576251E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0580673879275E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.6722068523591E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6729256291286E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8963882796084E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9718526366615E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.3994032333770E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2570254131024E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.5799866924081E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.1753866975409E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8039401462699E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5369346999848E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.3694905231041E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.6085848560411E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6640289131906E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9107414654028E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.7075078888949E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.9180226870786E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7669805530564E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.9699858130981E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475668709663E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8573373639122E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0886046929656E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4313920587265E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7778911166058E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292867759418E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708060663171E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759307736838E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2867379089741E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0374098161827E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7461357481767E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -5.0788611090362E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.8581641022761E+01 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.1135611826432E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.3466634065463E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -1.7047582531198E-07 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759307740267E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2867378239402E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0374082072392E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7461357480602E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -5.0788585188908E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.8563040396808E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.1146088173110E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.3444287749559E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -5.9642476294488E-07 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4010854714816E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4728812161664E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1131445848298E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7653931548417E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 7.0102795366588E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3157144830129E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 2.3340496505360E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0505253114497E-04 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0834394593772E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2066298446394E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8198694243544E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4084406056259E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0849835054955E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.0427161012418E-03 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.6516234328617E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1862610601684E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7648786600419E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1727505211663E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 9.6356123514540E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3079483164163E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.5277977130421E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.4343704742337E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4031823074932E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9610117332361E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7572206667224E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2363638020150E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 7.1261333223650E-06 -(PID.TID 0000.0001) %MON ke_max = 1.4615124682626E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.3700559205469E-05 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4728880889658E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1131384285306E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7649516111554E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 7.0103075768006E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3157144831696E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 2.3390905860135E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0509277376404E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0845784603748E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2066298446454E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8198453812535E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3896453327948E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0923648108495E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8796959465604E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4708886241339E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1862610601436E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7043780203055E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1568541058475E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4036946478171E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3079486118688E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.5249660659009E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.4343608054942E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4031835315394E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9630730112634E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.7572039694389E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.2363564575403E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 7.1261379512278E-06 +(PID.TID 0000.0001) %MON ke_max = 1.4618584420956E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.3697811647881E-05 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -3.9440871495382E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.4237849401598E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.9440903323769E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.4133400481136E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7671819240238E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7671817648039E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1736185607119E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.3179170852684E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.0831265114375E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1736185527529E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.3178645132603E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.0820474415429E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3557,31 +3715,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 3 (PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.2926622037646E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -7.8164177579229E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.3524281618469E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 5.0448710195662E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8114940872769E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.8317360597556E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.1441954915102E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.3034839833226E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7352014144489E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5595460479931E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9998918341864E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3679751191399E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -7.7773826801903E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.4552637576696E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.1899295074587E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8058127672135E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.9153553107539E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1455966189546E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.2807390243385E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7702300625999E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5701379037157E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9998814126130E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1897376974721E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4144448155525E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1758603795147E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6270617133933E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1897500103450E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4144746329208E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1756029471006E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6271719038146E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7084020973820E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3165258505593E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3734609140262E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4557925826991E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7084037659972E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3165695581555E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3728940902877E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4558736412035E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0504848253256E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5178222849304E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1153891168330E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0504850703554E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5178568039869E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1154016328345E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3590,26 +3748,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 3 (PID.TID 0000.0001) %MON exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2623813169182E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3844319240649E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2465935543835E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6353899969838E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2622599373395E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3860297913200E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9457139861315E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2499182464490E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5110033627115E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1411009431806E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3265887882501E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524523633976E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1614562145056E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3249977452523E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4000406651110E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0730047256475E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3180228499821E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6141590515366E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4289663843042E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7105162718599E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2623813169309E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3844322376116E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2465934337969E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6353900416068E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2622606684138E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3860299712746E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9457139860551E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2499175440997E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5110033019941E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1411005723352E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3265907900387E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524523665330E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1614545709347E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3249938895418E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4000401391142E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0730073592930E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3180228504480E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6141610095792E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4289625396889E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7105150797216E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4658968995829E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8373184184559E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8373417326351E+00 @@ -3635,11 +3793,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5047851108042E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4160499389486E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8535753533440E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8556701860281E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7042222706588E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7187956153056E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0692224128856E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7420778402247E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8556331463479E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7042222708491E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7187921566488E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0692137840160E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7420736859790E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7052293284232E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4972347658269E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0561718199839E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9457110286899E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0834288215546E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499180733557E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7319320752566E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703328295631E-08 @@ -3650,11 +3813,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6818799251222E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9533966850123E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9294893125389E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7052266947777E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4972257422777E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0561737780266E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9457383132861E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0834287010044E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1144138961542E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0229560117253E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9798665834691E+01 @@ -3673,89 +3831,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.12687636999453E-14 3.80156530571305E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.55695655043259E-01 + cg2d: Sum(rhs),rhsMax = -9.71445146547012E-15 3.80156506947364E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.55511526952539E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 7.28695956858925E-13 +(PID.TID 0000.0001) cg2d_last_res = 6.78417796244310E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0456870720509E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0527023656973E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7411814935834E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.8229734003657E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8278633547391E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6844113162172E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2424383769435E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6187629697161E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.3487533468455E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0348744670965E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8794770476891E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1837505650895E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1093871434549E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5933428496006E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6040915227790E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.4075471596497E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.1886700192485E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4772285241885E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6088362594692E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.4505171867094E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475648863030E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8568431000207E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0885363288695E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4313438635297E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780273081633E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292843466657E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.0456837708534E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0527063809187E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.5763636189692E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.8230156630052E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8276600255778E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6844184112069E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2424328174013E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6260552091285E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.3485126611996E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.0293677387381E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.8794778910788E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1867449531793E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1076430874131E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5931418757117E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5970219292758E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.4075345691439E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.1879603517557E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9817828193508E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6087614975299E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.4449244535238E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475648872755E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8568431106271E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0885363593092E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4313437743349E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780194379955E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292843466528E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708079820213E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759310423376E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2865775247198E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0366053266084E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7457292874321E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -3.4183401686515E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0010068331969E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.0093446378511E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.5649854840655E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759310432917E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2865772584580E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0366024731592E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7457292870860E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.4183327677876E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0006829506617E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 6.0122950046603E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.5617256877965E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -9.6254592478765E-07 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4029725065388E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4737634083040E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1134531877473E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7667387743226E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.4926361399096E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4189026538677E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.8767857140721E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 9.8559801080006E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1035504878007E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2076148803494E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8210814861278E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3872036870272E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.1027832626347E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.8367297612358E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4712548488042E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1848464894124E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7063099619382E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1648735740013E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.1707388869895E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4032535489874E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.2422533731526E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7296595288845E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3220602649009E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3913459891812E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3434792140192E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7845457535722E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 7.5911263569341E-06 -(PID.TID 0000.0001) %MON ke_max = 1.1970809236460E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.2561300835283E-05 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4737694574138E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1134477032888E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7662161130505E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.4926557559493E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4139848853249E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.8858749951996E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 9.8605459182387E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1041160428785E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2076148803640E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8210604193720E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3856056328072E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0952972450664E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.9002541914614E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4712548488070E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1848464893433E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7199754156880E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1587242605677E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4064360789296E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4032547730957E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.2443793444567E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.7296491479310E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3220622672878E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3961932414113E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3434711031929E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.7845379098590E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 7.5912593962090E-06 +(PID.TID 0000.0001) %MON ke_max = 1.1979560484718E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.2559862049313E-05 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -3.3763976080012E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.3307487106254E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.3764150983735E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.3307541850549E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7671479042586E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7671479052164E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1736032094161E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0503874914423E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.9901685728902E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1736032329781E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0503280723274E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.9926495209333E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3764,31 +3922,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 4 (PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3377774717742E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -7.8329625715957E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.4412168693831E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 5.1010621617017E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8694349817471E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 4.0297397895021E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.1240345353304E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.1491755247118E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.6230615307937E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5696515204883E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9999154457900E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3904854220596E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -7.8274909519859E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.5147648255705E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.2098440066629E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8697936356809E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.1108735187443E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1251328975535E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.1334356920037E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.6527136779540E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5779261277187E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9998321252138E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1887071364216E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4120553196977E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1741195192566E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6271463554116E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1887232695402E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4120908745539E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1738202196687E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6273000277685E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7099340531065E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3174315758696E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3806083036376E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4575489666473E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7099393186418E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3174937646083E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3798284014401E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4576435438133E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0554348091450E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5219326358194E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1175678049769E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0554351405731E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5219759447498E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1175767908811E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3797,26 +3955,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 4 (PID.TID 0000.0001) %MON exf_time_sec = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2634691995159E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3847118357738E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2468473774325E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6358100688518E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2628907261914E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3862107693122E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9440478862183E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2451694788136E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5111283739205E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1411990552166E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3274889380158E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524117732820E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1617602937994E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3254427177351E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4005077231873E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0735029449737E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3186074063689E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6140532031227E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4292888354618E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7109057421035E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2634691995225E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3847122626923E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2468472522227E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6358101169577E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2628911097999E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3862110143354E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9440478861031E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2451689687159E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5111283433839E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1411985085977E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3274916639112E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9524117802887E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1617588176588E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3254387002627E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4005067570741E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0735065313059E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3186074070717E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6140549724562E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4292850119630E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7109041404421E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4664043520318E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8373452001582E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8374496027651E+00 @@ -3842,11 +4000,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5042188193618E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4159536540618E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8511248083840E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8558222473280E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7043642644520E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7196107055380E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0701017084531E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7429885144218E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8557761914046E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7043642647906E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7196077013978E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0700929936505E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7429834021775E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7056622293430E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4875748698258E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0562760638320E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9467484265150E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0836791593735E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499318877820E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7305928105298E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703310362882E-08 @@ -3857,11 +4020,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6829464685628E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9537691004603E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9336193407328E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7056586430108E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4875727923065E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0562778331655E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9467791187547E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0836794978953E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1165106017733E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0229874425898E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9810516317365E+01 @@ -3880,89 +4038,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.33066907387547E-14 3.87699838507697E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.27914313436765E-01 + cg2d: Sum(rhs),rhsMax = 2.94764213037979E-14 3.87699771897241E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.27765521559310E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 7.56259147597630E-13 +(PID.TID 0000.0001) cg2d_last_res = 7.24998528257030E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6883171536632E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0313558558624E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0066902288935E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6760889096098E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8033154272374E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9283624541932E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8773513532186E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7838769654761E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.6889024831050E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7186550499125E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9743009609830E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.7410157200230E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8622872527724E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.4832755120857E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4278158134452E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.3749716399353E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1281332535107E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.9544570483770E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2137948197831E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2156485893670E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475823941880E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8564843860995E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0884732573544E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312997025386E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780377130137E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292816422909E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708100484879E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759312155202E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2864524522141E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0357066143360E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7453676079487E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1759283008802E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0093944463935E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.9324514426771E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.5715877448114E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -1.7181304090421E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6882735341276E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0313636923057E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.3989561654987E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6761469330986E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8032561946251E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9283708561148E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8773445190461E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7949005815514E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.6887484041689E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7118946063727E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9743009694351E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.7445205901874E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8634424227035E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.4831943338904E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.4265892615362E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.3749269356531E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1273518886549E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9817828193508E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2137675493553E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2124483929947E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475823953232E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8564843427236E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0884733043825E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312995447204E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780281432679E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292816422757E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708100484877E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759312170619E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2864520121659E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0357085463923E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7453676074264E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1759167140475E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0091133718525E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.9351689312029E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.5692964686284E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -1.3846114337402E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4048595415960E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4746904542846E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1137305024699E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7674557337533E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 6.1003775480963E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4234964369235E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.6253680932179E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 9.3506400308880E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0925466042947E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2086055888767E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8223247448379E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3779999257693E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.1099497635337E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.9878325881638E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4716222033997E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1834404512391E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7235762719650E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1671655316730E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.3978167198789E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3221273877175E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.6547086514964E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9889612525516E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1086840066409E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6746561678306E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5987866450791E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3856914230781E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 7.1357891225216E-06 -(PID.TID 0000.0001) %MON ke_max = 9.7228410651839E-04 -(PID.TID 0000.0001) %MON ke_mean = 1.0095772938109E-05 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4746959565381E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1137254026862E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7669100886100E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.1003926407456E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.4233592578232E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.6331129731953E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 9.3544669139563E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0933268477603E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2086055888907E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8223065514921E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3842240615734E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0967888246121E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8820544145987E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4716222034039E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1834404511405E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7183451643275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1602315150985E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4272310193923E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3221293902061E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.6597080348929E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9889556498993E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1086863778773E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.6803297776673E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.5987753020486E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.3856821109642E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 7.1359662132302E-06 +(PID.TID 0000.0001) %MON ke_max = 9.7228553446689E-04 +(PID.TID 0000.0001) %MON ke_mean = 1.0095108511470E-05 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.8678511418430E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2365731420271E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.8678807648067E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2365800284639E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7671126314038E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7671126539524E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1735780678958E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9494027969443E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3980684906388E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1735782067321E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.9474369265155E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3977493483010E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3971,31 +4129,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 5 (PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3618871675458E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -7.4453745911679E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.4377910755880E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 5.0670160144372E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8208173091593E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 4.0828832798667E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0869295870237E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0238371508590E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.5175673787778E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5326230863959E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9996997528223E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3945478240383E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -7.4745367394271E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.4910577787529E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.1441063558125E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8257416794825E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.1413550753434E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0875424827809E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0111654417210E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.5396444462264E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5397106357700E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9997774176407E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1875641510697E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4095796493539E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1720951501473E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6272196478060E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1875822359627E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4096172867939E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1717830645771E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6274321727485E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7113665734059E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3182968422680E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3884499172065E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4592828529295E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7113749107683E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3183763167653E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3876121804082E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4594144879211E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0603838268034E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5260626342505E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1197967058489E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0603840756591E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5261109817367E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1198340539608E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4004,26 +4162,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 5 (PID.TID 0000.0001) %MON exf_time_sec = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2645568130105E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3849782969248E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2471005685654E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6362304826090E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2635206562704E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3863840285881E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9423898939591E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2404139985224E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5112522566706E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1412957756126E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3283032934014E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9523778213131E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1620522890354E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3258588659240E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4009520945533E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0738882654444E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3191443712103E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6139606521250E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4295786062361E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7112758981383E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2645568129958E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3849788604652E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2471004136145E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6362305984886E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2635212251160E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3863843520246E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9423898938267E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2404134964520E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5112522566408E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1412949524379E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3283068919842E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9523778279319E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1620513442844E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3258552592973E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4009505859854E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0738929999043E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3191443720180E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6139618060629E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4295752244085E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7112723252124E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4669118044806E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8373719818605E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8375574728951E+00 @@ -4049,11 +4207,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5036525279194E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4158574048203E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8486745759951E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8559741374718E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7045034516630E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7204032907829E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0709274083767E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7438682137202E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8559232611642E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7045034521539E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7204015616459E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0709194095286E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7438608055709E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7059824268484E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4795869539649E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0563674369504E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9475485476603E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0839021204029E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499457022082E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7292535458031E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703292430133E-08 @@ -4064,11 +4227,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6840130120035E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9541415741666E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9377502395388E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7059776923885E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4795902854550E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0563685908882E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9475777199551E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0839026472586E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1186073073924E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0230188734544E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9822366800039E+01 @@ -4087,89 +4245,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.13131726209303E-13 3.88181526436420E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.01217627350559E-01 + cg2d: Sum(rhs),rhsMax = 1.04583008919690E-13 3.88181441103897E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.01101016599589E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 6.57447330755612E-13 +(PID.TID 0000.0001) cg2d_last_res = 6.39964423426294E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2507876375845E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0084882740565E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1248493887761E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.4137009583194E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8042490036936E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1382726793869E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3357495650722E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8479511747219E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8973317100032E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3681535397427E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0809981987425E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.3147936869562E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7619305981759E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3644503867434E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3226613684533E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6563173260438E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9755132221004E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4772285241885E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3085170409109E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7902147631970E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475980063606E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8563185465667E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0884145484607E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312540993129E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780427735077E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292788846584E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708121561048E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759313635853E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2863426719001E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0349974157277E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7450412498100E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.2797578559412E+01 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0137234012051E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.8731163961785E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.4533838122263E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -8.2936147944167E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2507169669273E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.0085035017360E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.9717422578845E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.4137402599541E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8044654294575E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1382811760605E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3357398824034E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.8592388359684E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8969824979075E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3553307045757E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0809987795392E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.3179521517471E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7629075413244E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3644941039225E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3187398855968E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6562694123529E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9755093092518E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.3084301974299E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7847566422248E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2475980078762E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8563184939182E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0884146052223E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312539282892E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780351221936E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292788846379E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708121561044E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759313654233E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2863421722380E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0350093321891E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7450412492097E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -1.2797458840763E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0135683668545E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.8745277363538E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.4522550276247E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -1.8201504142027E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4067465766532E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4756314288953E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1140015848229E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7669130383902E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 5.8118351512271E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3174805423360E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.4965421511491E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.9831515065927E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0580605683637E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2095967002324E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8236000465639E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3904796957426E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0958026525834E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.8456359351222E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4719900101498E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1820411147419E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7435493004486E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1633768875455E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.0724173948712E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1087402960515E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.9155254971754E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7040653021986E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4414136754165E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.9846969379705E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2585056347387E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.0338323051654E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 6.3574403959148E-06 -(PID.TID 0000.0001) %MON ke_max = 8.1554196949545E-04 -(PID.TID 0000.0001) %MON ke_mean = 7.7309221167015E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4756366711103E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1139966193502E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7663961090072E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.8118506640608E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3174805431436E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.5004866383186E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.9862838067522E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0597170748611E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2095967002358E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8235838465196E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3854887561667E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0964956484683E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8401269273131E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4719900101549E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1820411146335E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7020095136025E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1611335342067E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4414356392690E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1087426674083E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.9213771734383E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7040586506887E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4414365300070E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.9898097941010E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2584688692384E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.0338157833328E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 6.3575536155982E-06 +(PID.TID 0000.0001) %MON ke_max = 8.1554130449707E-04 +(PID.TID 0000.0001) %MON ke_mean = 7.7302524397596E-06 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.5342402411851E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.1448033383449E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.5342746708477E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.1448105450737E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7670684985612E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7670683834851E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1735490017834E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.2292203965961E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5862515496038E-07 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1735491463929E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -6.2330033540902E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5859676822233E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4178,70 +4336,70 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 6 (PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3670799114699E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.8924454392891E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.3717514398488E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.9770707337977E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7023679469231E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.9128250792052E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0416910706185E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9517900788178E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4212635993072E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4780045401279E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9998020672611E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3834237870880E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.9377823299570E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.3995749784198E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.0232227108938E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7107871932951E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.9433098255289E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0418472528255E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9403904046018E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4363594742867E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4870446599602E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9997221253450E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1863961983107E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4071201602209E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1694835789792E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6273008052724E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1864140625983E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4071566926583E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1691876574681E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6275636719582E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7127479929321E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3191359951447E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3960132888228E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4609765915593E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7127579035369E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3192343593667E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.3952438431023E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4611854036922E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0653360130108E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5302056787989E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1221445974949E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0653360531495E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5302667355025E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1221799095171E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 194 EXFtaux Counter: 1 Parms: UM U1 - Computing Diagnostic # 195 EXFtauy Counter: 1 Parms: VM U1 - Computing Diagnostic # 193 EXFqnet Counter: 1 Parms: SM U1 - Computing Diagnostic # 204 EXFempmr Counter: 1 Parms: SM U1 - Computing Diagnostic # 188 EXFhl Counter: 1 Parms: SM U1 - Computing Diagnostic # 187 EXFhs Counter: 1 Parms: SM U1 - Computing Diagnostic # 190 EXFswnet Counter: 1 Parms: SM U1 - Computing Diagnostic # 189 EXFlwnet Counter: 1 Parms: SM U1 - Computing Diagnostic # 196 EXFuwind Counter: 1 Parms: UM U1 - Computing Diagnostic # 197 EXFvwind Counter: 1 Parms: VM U1 - Computing Diagnostic # 199 EXFatemp Counter: 1 Parms: SM U1 + Computing Diagnostic # 197 EXFtaux Counter: 1 Parms: UM U1 + Computing Diagnostic # 198 EXFtauy Counter: 1 Parms: VM U1 + Computing Diagnostic # 196 EXFqnet Counter: 1 Parms: SM U1 + Computing Diagnostic # 207 EXFempmr Counter: 1 Parms: SM U1 + Computing Diagnostic # 191 EXFhl Counter: 1 Parms: SM U1 + Computing Diagnostic # 190 EXFhs Counter: 1 Parms: SM U1 + Computing Diagnostic # 193 EXFswnet Counter: 1 Parms: SM U1 + Computing Diagnostic # 192 EXFlwnet Counter: 1 Parms: SM U1 + Computing Diagnostic # 199 EXFuwind Counter: 1 Parms: UM U1 + Computing Diagnostic # 200 EXFvwind Counter: 1 Parms: VM U1 + Computing Diagnostic # 202 EXFatemp Counter: 1 Parms: SM U1 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 6 (PID.TID 0000.0001) %MON exf_time_sec = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2656435871780E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3852208486969E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2473528821288E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6366527545481E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2641409335119E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3865435663359E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9407345653606E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2356593386306E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5113769834924E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1414012837583E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3289650376933E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9522159566801E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1623435878407E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3262712970188E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4013618045409E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0740727836220E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3196669401867E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6138702912862E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4298660798646E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7115854175601E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2656435871872E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3852176239139E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2473529394326E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6366525809653E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2641445668689E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3865417155074E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9407345651809E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2356590763207E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5113769617196E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1414000754301E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3289444438555E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9522159628835E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1623370394409E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3262629750742E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4013866539330E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0740456901319E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3196669412824E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6138776270082E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4298596590729E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7116252430383E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4674192569295E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8373987635628E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8376653430251E+00 @@ -4267,11 +4425,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5030862364771E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4157611912313E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8462246564703E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8561231687944E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7046527412290E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7211962133615E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0717503758225E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7447061541153E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8560738310834E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7046527427230E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7211791434408E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0717286796271E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7447362141822E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7060688459830E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4729555596320E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0564498227301E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9483345371882E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0841137327824E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499595166344E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7279142810763E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703274497383E-08 @@ -4282,11 +4445,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6850795554441E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9545141060979E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9418820075983E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7060959394731E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4729621993734E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0564571584521E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9483590198840E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0840846112675E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1207040130115E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0230503043190E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9834217282713E+01 @@ -4305,89 +4463,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.39475106411646E-13 3.85500761986300E-01 -(PID.TID 0000.0001) cg2d_init_res = 8.25686065493978E-02 + cg2d: Sum(rhs),rhsMax = 2.24598117881669E-13 3.85500671707878E-01 +(PID.TID 0000.0001) cg2d_init_res = 8.24118422135039E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 5.92134893304898E-13 +(PID.TID 0000.0001) cg2d_last_res = 5.76078445836422E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.8015262281883E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.8911056747832E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.3594979944768E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1485633493707E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8181656190135E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7631782235387E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9979324795081E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.5736245636860E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3303711627734E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1397494236532E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1440658147689E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.1450979252559E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7208374402142E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3745126005231E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3936272355003E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8172029128972E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4492769395048E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.4681199338639E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.8952284303510E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2926962213792E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476082962880E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8560922935041E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0883588292580E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312067983943E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7779881684876E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292761303676E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708142763003E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759315210045E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2862370564857E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0346038873958E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7447255488354E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -6.0160273119896E+00 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0180787128709E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.8034018419581E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.3616703171855E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -3.2291205348924E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.8014036292277E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.8913465624221E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.2874986071454E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.1485865976856E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8181493931972E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7631784733327E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9976876773322E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.5854177175343E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3297585276021E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1156166143015E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1440727346750E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.1451438330257E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7222802493580E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3744477672588E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.3901086396186E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.8171540637408E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4493169970209E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.9817828193508E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.8954585871596E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.2803040801022E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476082989119E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8560922317900E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0883589798099E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4312063020819E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7779802130103E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292761303320E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708142762994E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759315262267E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2862353099994E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0346030438920E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7447255480210E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -6.0159956270672E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0164947768523E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.8203121018966E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.2784621838871E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -2.2644676642704E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4086336117103E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4765726864539E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1142764530456E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7650005665176E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 5.5886396790299E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.5521355928920E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.3670840353888E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.7056288639606E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0574941507490E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2105912184769E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8249229818172E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3864638979189E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.1058468680130E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 9.3707883111002E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4723620487429E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1806435537002E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6971708608028E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1645129508287E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.8116528609625E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4418422575899E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.2039118748139E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.6876196237854E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.1610094059383E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.7099970210967E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6524771067402E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6616856300771E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.6165798754671E-06 -(PID.TID 0000.0001) %MON ke_max = 7.9394369616014E-04 -(PID.TID 0000.0001) %MON ke_mean = 6.6055617668157E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4765778721972E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1142714591571E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7645343584606E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.5886606193100E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3180030078942E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.4138087094694E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.6844553193827E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0158564522906E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2105912186098E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8249074843960E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3884782113594E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0951547140244E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8052981890587E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4723620487498E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1806435535539E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6832701981339E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1613407442821E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4558248790193E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4418651133407E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.2091851980975E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.6876019479246E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.1610093878675E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.7100713356254E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.6524017562344E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.6616545962334E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.6166428256368E-06 +(PID.TID 0000.0001) %MON ke_max = 7.9396772282204E-04 +(PID.TID 0000.0001) %MON ke_mean = 6.6043016037904E-06 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.4052008577853E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.0712911119772E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.4052323395331E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.0712909740997E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7670363156929E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7670361873222E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1735209489807E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6721820528522E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.6231756499942E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1735210285357E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6727552034084E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.6208683230949E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4396,31 +4554,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 7 (PID.TID 0000.0001) %MON seaice_time_sec = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3595694415655E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.4130175696488E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2704506069652E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.8829789068061E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5670629011220E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.5977884878966E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0255317328627E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9337903149688E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3586136923356E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4572064132679E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9995479021379E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3610990581652E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.4542969893273E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2686283617912E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 4.8872724971088E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5781918833436E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.5939253634614E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0255335741729E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9270341843382E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3649965016213E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4664863495051E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9996666974032E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1852206538673E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4046914838540E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1662720126201E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6273579453082E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1852503710880E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4047453496656E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1660103000580E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6276907591682E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7140779823589E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3199346394752E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4049625162984E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4627392927817E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7141063932264E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3200749203768E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4023632192941E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4629564082383E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0702935272675E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5343725697141E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1245686948740E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0702932778431E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5344445290398E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1246161211688E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4429,26 +4587,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 7 (PID.TID 0000.0001) %MON exf_time_sec = 2.5200000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2667362724977E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3855193324671E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2476093197704E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6370753749828E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2647782817120E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3867352066471E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9390760134935E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2309182048212E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5115030390490E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1415048354055E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3299840603320E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9519038935022E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1626369618454E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3266561945588E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4018151167760E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0747273236244E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3202110230216E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6137713010256E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4301276439266E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7119813547878E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2667362727332E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3855212052013E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2476092383025E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6370754313052E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2647792517385E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3867362814863E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9390760131708E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2309176918210E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5115030626928E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1415040526240E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3299960214239E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9519039013431E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1626339447629E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3266509838788E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4018237063826E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0747430601188E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3202110249903E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6137747201897E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4301233566757E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7119948002019E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4679267093784E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8374255452651E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8377732131550E+00 @@ -4474,11 +4632,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5025199450347E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4156650133020E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8437750501026E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8562678575356E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7047944431971E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7219911494438E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0725074015949E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7456030447811E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8562242987517E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7047944459427E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7219835989993E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0724942069141E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7456108399951E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7066999448768E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4673253766733E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0565509362737E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9489105035564E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0843287927180E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499733310606E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7265750163496E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703256564634E-08 @@ -4489,11 +4652,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6861460988848E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9548866962208E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9460146435554E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7066842083824E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4673332895967E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0565543554378E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9489346966668E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0843181927134E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1228007186306E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0230817351836E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9846067765387E+01 @@ -4512,89 +4670,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.72337707940551E-13 3.81557446414923E-01 -(PID.TID 0000.0001) cg2d_init_res = 7.05603396898057E-02 + cg2d: Sum(rhs),rhsMax = 2.61068944240606E-13 3.81557308380781E-01 +(PID.TID 0000.0001) cg2d_init_res = 7.00648444615973E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 3.15346655906514E-13 +(PID.TID 0000.0001) cg2d_last_res = 3.04677821487153E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.3662989064818E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.7342297125127E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.2658120446961E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9333221741251E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8323320110480E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.6118064161912E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5321395421391E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.0243922627912E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2058182614972E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0935735593414E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6376909747293E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6760628512481E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.8314173257151E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5525654976860E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5823637374382E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6877453302833E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2661325558208E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.3351499173299E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.0654543767230E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0796364707467E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476134691407E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8558747943185E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0883048104745E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4311581675737E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780556469256E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292733767998E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708164072042E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759317054329E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2861276981907E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0345688102446E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7443938161313E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -3.9433222538989E+00 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0179871222963E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7736113374321E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1452002408391E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -2.1426652166556E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.3661017900301E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.7345532533375E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.0745365638939E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9333445938234E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8324024649253E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.6118060785875E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5291692207940E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.0275301389242E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2048462100538E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0698696601098E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6376994803911E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6760622152571E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.8340605403842E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5525121899396E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.5787389572073E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6792457054468E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2661731467193E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.1930713104712E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.0638856028625E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.0659161445755E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476134737696E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8558747245725E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0883050025222E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4311575025299E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780455200372E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292733767366E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708164072025E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759317120774E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2861254485895E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0345736499945E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7443938146680E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -3.9428951165727E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0173057595452E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7821149417825E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.1256719780831E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -2.7157450124722E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4105206467675E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4775089460563E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1145584734680E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7618846536912E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 5.4271924036761E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3185469808170E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.3714041286667E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.4812247249483E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8743447972844E-06 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2115959341654E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8262723234939E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3999235292419E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.1018351754993E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.0885742151261E-03 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4727330906943E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1792425232477E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7091548918023E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1661757782956E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.2552206292796E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.1613729802273E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.9042220144620E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4223596132503E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0287661115285E-04 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5695118349705E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3237535573002E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3726346690675E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 5.0488855720379E-06 -(PID.TID 0000.0001) %MON ke_max = 9.2587362215979E-04 -(PID.TID 0000.0001) %MON ke_mean = 6.8664723906462E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4775142288511E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1145533374830E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7614691152313E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.4272198199280E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -8.3185469827853E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.3910017408186E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.4809785853945E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.7846018618038E-06 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2115959345021E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8262570138123E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3917620922617E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0941804217004E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8025357051144E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4727330907062E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1792425229804E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6575634407141E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1615116556991E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4808513377967E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.1613729621556E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.9042984800705E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4223759225062E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0181749350729E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5695108054416E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.3253205893634E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3726640988942E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 5.0489431288863E-06 +(PID.TID 0000.0001) %MON ke_max = 9.2589982758121E-04 +(PID.TID 0000.0001) %MON ke_mean = 6.8647154354884E-06 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.4501232947968E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.0981503031339E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.4501494015231E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.0981501187745E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7670329151319E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7670326986325E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1734980420131E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1289915601173E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.0401518191841E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1734980982067E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1297097260660E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.0431250473549E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4603,31 +4761,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 8 (PID.TID 0000.0001) %MON seaice_time_sec = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3449588875960E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.1144837780146E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.1583003366481E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.7967723849571E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4681322992853E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.2126470275017E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0359832035311E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9673474354749E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3469911344091E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4917333454784E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9996337256445E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3338151958033E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.1415500302470E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.1330971521045E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 4.7702076675340E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4780297687415E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.1845015602858E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0360027777161E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9624736715685E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3470488368199E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4992914739749E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9996111817799E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1841031589489E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.4023602553715E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1626562283650E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6274109182219E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1841362535255E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.4024183334202E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1624218965811E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6278137806007E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7154094518144E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3207369005451E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4117580130804E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4645548816211E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7154456322443E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3209051302081E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4086466093919E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4647277161664E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0752564448354E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5385588677363E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1270569539495E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0752559088154E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5386428217238E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1271390512518E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4636,26 +4794,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 8 (PID.TID 0000.0001) %MON exf_time_sec = 2.8800000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2678355722035E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3858091443296E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2478662901721E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6375013097412E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2653863921952E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3869218709092E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9374111017300E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2261927162872E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5116311516284E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1416189678366E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3309478145389E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9514481146586E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1629781021314E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3271468522794E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4022825278275E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0753091297435E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3207957620820E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6136180643154E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4304925805869E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7123307083815E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2678355727652E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3858125084845E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2478659918200E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6375016625875E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2653836670396E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3869238017433E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9374111011537E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2261921151654E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5116312033220E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1416184902418E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3309693039127E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9514481265185E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1629817166192E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3271476894432E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4022626662390E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0753374024133E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3207957655975E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6136141312994E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4304926342854E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7122974320725E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4684341618272E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8374523269674E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8378810832850E+00 @@ -4681,11 +4839,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5019536535923E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4155688710397E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8413257571855E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8564096428614E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7049125388251E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7228840966708E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0734595641164E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7464794348707E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8563728889332E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7049125433206E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7228944111915E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0734636673109E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7464460133171E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7072280160783E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4623766356130E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0567097318890E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9502839469551E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0845490245283E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0499871454869E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7252357516229E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703238631885E-08 @@ -4696,11 +4859,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6872126423255E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9552593445021E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9501481460565E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7071997434084E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4623842160952E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0567057988730E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9503091153704E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0845703092197E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1248974242497E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0231131660482E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9857918248061E+01 @@ -4719,89 +4877,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.61929367084690E-13 3.77001815256866E-01 -(PID.TID 0000.0001) cg2d_init_res = 6.43062024536359E-02 + cg2d: Sum(rhs),rhsMax = 2.41529019007203E-13 3.77001534186433E-01 +(PID.TID 0000.0001) cg2d_init_res = 6.38122527876658E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 41 -(PID.TID 0000.0001) cg2d_last_res = 3.63964970649779E-13 +(PID.TID 0000.0001) cg2d_last_res = 3.64234450273959E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.9674004607034E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.6053734914888E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.2480290634878E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.7826009002867E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8419820538815E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5529431168278E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8529850097825E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4893501701368E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3441315787058E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1290452934471E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.9376450293010E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2086149304783E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3469859174463E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7971348164381E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7521712877196E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9703256783273E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2024690478637E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.5027248759948E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.4413467948014E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7340633411711E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476149772729E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8556819266330E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0882504494997E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4311118747159E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780455360220E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292706224419E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708185257426E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759318884861E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2860226508065E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0349501744431E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7440318186696E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6119426954520E+00 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0279872987990E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7840587728205E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.5607650911295E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -8.3678256038099E-07 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.9671171541698E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.6057629347238E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.0060070265543E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.7826296853830E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8418196091484E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5529428683666E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8487443837351E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4774874043775E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3436920369483E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1183745722607E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.9376539627538E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2086167997542E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.3493829344993E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7969799913474E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.7488911317135E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9703287276569E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2025009060412E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.8834177449477E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 9.4402450399643E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7277672913048E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476149842613E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8556818433674E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0882505857281E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4311113990664E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7780360769401E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292706223420E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708185257398E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759318929206E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2860212765469E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0349829230079E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7440318160563E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.6113821559311E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0289748129533E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7732803488273E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.6554517231347E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -3.1564910921207E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4124076818247E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4784359909133E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1148514304751E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7579837816917E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 5.2743398529537E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -3.5499923295123E-04 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.0732625642653E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.6418820267756E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.2629334909260E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2126057345216E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -1.8275149638218E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3922687225427E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.1009262760212E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 6.9983400015567E-04 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4731041751567E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1778353378728E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.7576669159766E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1698551431305E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.0425403641579E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0292245143922E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.7721792502223E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3726346690675E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0172794170444E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4315958990021E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9020364613258E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7984669151402E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.6693618450615E-06 -(PID.TID 0000.0001) %MON ke_max = 1.0743536264330E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.8039071054996E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4784415073875E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1148460552423E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7576085622448E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.2743745918024E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.5588746742114E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.0428599375158E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.6597956775422E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.3051550665599E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2126057351469E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8275001654944E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3944645524059E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0939323718854E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8134178426322E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4731041751772E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1778353373933E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6425139764879E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1615517513968E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5039450246173E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0186328002081E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.7721781931286E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3726640988942E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0157673510578E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.4315989249464E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9020860947744E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7984963284495E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.6694329117933E-06 +(PID.TID 0000.0001) %MON ke_max = 1.0743757718294E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.8026708489945E-06 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.6106252776338E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.1022120318001E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.6106498900459E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.1093873413415E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7670589954758E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7670589810904E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1734832639327E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0660485407819E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.3581132012771E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1734833657953E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0667736578433E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.3732038820811E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4810,31 +4968,31 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 9 (PID.TID 0000.0001) %MON seaice_time_sec = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3270484498204E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.0003352885236E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.0644437609136E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.7320150400487E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4271442911099E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.3188719835666E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0568456379740E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0424852627846E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3853753762004E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5584423842677E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9997891845728E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.3066345199641E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.0119837169392E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.0222804630367E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 4.6848540634465E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4346130492319E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.2776982095280E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0568715094353E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0381298413118E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3809107364798E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.5667866553593E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9995574339585E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1828819891262E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.3999199232950E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1586498629506E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6274967860356E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1829036003113E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.3999598220637E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1584326907569E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6279346400541E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7166228009541E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3214549123066E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4173416458460E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4661797564895E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7166469700449E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3216193400393E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4157649281106E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4664994981030E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0802234173755E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5427644995517E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1296663704521E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0802226191106E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5428580853190E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1297440792244E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4843,26 +5001,26 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON exf_tsnumber = 9 (PID.TID 0000.0001) %MON exf_time_sec = 3.2400000000000E+04 -(PID.TID 0000.0001) %MON exf_ustress_max = 6.2689385653160E-02 -(PID.TID 0000.0001) %MON exf_ustress_min = -9.3860935826927E-02 -(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2481208341856E-02 -(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6379257532511E-02 -(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2660339800047E-04 -(PID.TID 0000.0001) %MON exf_vstress_max = 5.3871054521721E-02 -(PID.TID 0000.0001) %MON exf_vstress_min = -5.9357404156773E-02 -(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2214627146726E-03 -(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5117593502352E-02 -(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1417364588113E-04 -(PID.TID 0000.0001) %MON exf_hflux_max = 6.3318773518943E+02 -(PID.TID 0000.0001) %MON exf_hflux_min = 8.9508787729399E+01 -(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1632428730451E+02 -(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3274772034559E+02 -(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4027199875563E+01 -(PID.TID 0000.0001) %MON exf_sflux_max = 4.0758458959984E-08 -(PID.TID 0000.0001) %MON exf_sflux_min = -8.3214175931095E-08 -(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6135584015821E-08 -(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4307193122062E-08 -(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7127165639174E-09 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.2689385661681E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3860974945073E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2481206164053E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.6379260284116E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2660316999162E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3871076973402E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9357404147812E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.2214621137504E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5117594164282E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1417357557283E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3319023424822E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 8.9508787914145E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.1632441494969E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.3274763735415E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4027141134014E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0758787753637E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3214175985775E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -1.6135570064369E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.4307187215546E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7127059809345E-09 (PID.TID 0000.0001) %MON exf_uwind_max = 6.4689416142761E+00 (PID.TID 0000.0001) %MON exf_uwind_min = -6.8374791086697E+00 (PID.TID 0000.0001) %MON exf_uwind_mean = 2.8379889534150E+00 @@ -4888,11 +5046,16 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_aqh_mean = 2.5013873621499E-03 (PID.TID 0000.0001) %MON exf_aqh_sd = 1.4154727644518E-03 (PID.TID 0000.0001) %MON exf_aqh_del2 = 7.8388767780130E-05 -(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8565495194720E+02 -(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7049902429938E+01 -(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7236163565398E+01 -(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0741086703206E+01 -(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7473930358995E+00 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8565187359786E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 6.7049902501349E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 9.7236199922084E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.0741073339669E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.7473783846853E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7077031179356E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.4577749026546E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.0567650634766E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 6.9504245386856E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0847716785125E-09 (PID.TID 0000.0001) %MON exf_precip_max = 1.0500009599131E-07 (PID.TID 0000.0001) %MON exf_precip_min = 2.7238964868961E-10 (PID.TID 0000.0001) %MON exf_precip_mean = 3.6703220699135E-08 @@ -4903,11 +5066,6 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON exf_swflux_mean = -2.6882791857661E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 1.9556320509086E+01 (PID.TID 0000.0001) %MON exf_swflux_del2 = 7.9542825137508E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 4.7076702385703E-08 -(PID.TID 0000.0001) %MON exf_evap_min = 5.4577810269080E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 2.0567636683314E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 6.9504428502961E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0847772605321E-09 (PID.TID 0000.0001) %MON exf_swdown_max = 7.1269941298688E+01 (PID.TID 0000.0001) %MON exf_swdown_min = 9.0231445969128E-02 (PID.TID 0000.0001) %MON exf_swdown_mean = 2.9869768730735E+01 @@ -4926,89 +5084,89 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.64649413495022E-13 3.72202469434464E-01 -(PID.TID 0000.0001) cg2d_init_res = 6.26361881401347E-02 + cg2d: Sum(rhs),rhsMax = 2.35700348127921E-13 3.72201942415379E-01 +(PID.TID 0000.0001) cg2d_init_res = 6.23091077536621E-02 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 40 -(PID.TID 0000.0001) cg2d_last_res = 9.16754065129462E-13 +(PID.TID 0000.0001) cg2d_last_res = 9.87998981931491E-13 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.6420811175214E-02 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5018010576900E-02 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.3596822546356E-15 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6942362349479E-02 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8481269154957E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5023531577492E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9426091526050E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.0927708075741E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4505080872389E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1502787346946E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.0161151375185E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5155880684023E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4823422668505E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9727265618930E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8223434516108E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1045381480870E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2127132275480E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.8123784415183E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0241277497290E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9083005368963E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476119756359E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8555109772284E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0881954233225E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4310654497880E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7782223307522E-02 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292678869877E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708205817128E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759320901686E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2859128144094E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0354955346570E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7436421989046E+02 -(PID.TID 0000.0001) %MON forcing_qnet_min = -1.4183183527115E+00 -(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0240200994833E+02 -(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7119308781076E+01 -(PID.TID 0000.0001) %MON forcing_qnet_del2 = 4.9974367449684E+00 -(PID.TID 0000.0001) %MON forcing_qsw_max = -2.1440722005664E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 7.6417135783280E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5022356655734E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7893256622207E-15 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.6942301733197E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8481838716064E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5023500504006E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9390500866780E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.1012122577915E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4499565330413E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1344831348985E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.0161232505672E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5155947601745E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4812027119207E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9727389677809E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8190032808966E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1042750813618E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.2127275133130E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.4316855725655E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0240278437551E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9023850711124E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.2476119854395E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8555107823671E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0881955403595E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4310650393604E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.7782129361651E-02 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5292678868487E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0708205817085E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759320938380E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.2859117438734E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0355405508441E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.7436421948397E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -1.4175966816503E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.0243781410164E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 5.7071187639092E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 5.0091852719349E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = -3.6016946469869E-06 (PID.TID 0000.0001) %MON forcing_qsw_min = -6.4142947168819E+01 -(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4793607008240E+01 -(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1151475095844E+01 -(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7535647574007E-01 -(PID.TID 0000.0001) %MON forcing_empmr_max = 5.1310462427754E-04 -(PID.TID 0000.0001) %MON forcing_empmr_min = -9.6448471033395E-05 -(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.1945773538189E-05 -(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.1402783333810E-05 -(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0029526650029E-05 -(PID.TID 0000.0001) %MON forcing_fu_max = 6.2136190185852E-02 -(PID.TID 0000.0001) %MON forcing_fu_min = -2.2280102606405E-02 -(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4030757394779E-02 -(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0986872142965E-02 -(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.0216740174612E-03 -(PID.TID 0000.0001) %MON forcing_fv_max = 1.4932103141009E-02 -(PID.TID 0000.0001) %MON forcing_fv_min = -4.1764226751800E-02 -(PID.TID 0000.0001) %MON forcing_fv_mean = -4.5127163824161E-03 -(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1772333732870E-02 -(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.7529970347938E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0173310657184E-03 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.6573449016530E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7984669151402E-03 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0492364008529E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9285175346711E-04 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6649013102590E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9107757993001E-03 -(PID.TID 0000.0001) %MON pe_b_mean = 4.4537497871381E-06 -(PID.TID 0000.0001) %MON ke_max = 1.1634189718307E-03 -(PID.TID 0000.0001) %MON ke_mean = 8.5210978748896E-06 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -2.4793665614620E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1151418211353E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 3.7532171259173E-01 +(PID.TID 0000.0001) %MON forcing_empmr_max = 5.1310879128666E-04 +(PID.TID 0000.0001) %MON forcing_empmr_min = -9.6954480655642E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 1.1831110053466E-05 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 8.1394508832739E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.0115248928492E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 6.2136190195360E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.8288547456072E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.3972021534257E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.0932032680304E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.8470895424672E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4734747513756E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.1764226744370E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -4.6365982440457E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1617580807582E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5272531690417E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0158189229622E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.6573480086144E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7984963284495E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0479673565015E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9285283671707E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6649192836249E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.9107954052960E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 4.4537351714224E-06 +(PID.TID 0000.0001) %MON ke_max = 1.1634331517716E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.5200596506112E-06 (PID.TID 0000.0001) %MON ke_vol = 5.2906584519726E+15 -(PID.TID 0000.0001) %MON vort_r_min = -2.8255390160189E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2316628466692E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.8255694614419E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2359391268707E-07 (PID.TID 0000.0001) %MON vort_a_mean = 1.2074434650046E-04 -(PID.TID 0000.0001) %MON vort_a_sd = 8.7671032697506E-06 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7671031856146E-06 (PID.TID 0000.0001) %MON vort_p_mean = 1.7734550359553E-04 -(PID.TID 0000.0001) %MON vort_p_sd = 1.1734780288717E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6266068822386E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.0534867008842E-08 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1734780679213E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.6272677727679E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.0498701012757E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -5019,205 +5177,205 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 10 (PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 1.3089117574377E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = -6.0333224699488E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 5.0017713674205E-02 -(PID.TID 0000.0001) %MON seaice_uice_sd = 4.6859248163377E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4226895102419E-03 -(PID.TID 0000.0001) %MON seaice_vice_max = 3.6718110623760E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.0750620251666E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.1452947549938E-02 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4540669107459E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6217478545468E-03 -(PID.TID 0000.0001) %MON seaice_area_max = 9.9996287321216E-01 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2830984636681E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.0322339853003E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.9482431284263E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 4.6308584816824E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4283034386683E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.6325255236624E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0750823548788E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.1386300724116E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4478169704750E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6315710025950E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 9.9995034542514E-01 (PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_area_mean = 3.1817518433069E-01 -(PID.TID 0000.0001) %MON seaice_area_sd = 4.3976128688508E-01 -(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1546047555361E-02 -(PID.TID 0000.0001) %MON seaice_heff_max = 1.6275758676420E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 3.1817662530544E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.3976422234497E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.1543987742772E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.6280565020640E+00 (PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7178840559446E-01 -(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3222139481720E-01 -(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4219654043666E-03 -(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4678832663043E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7179037032521E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.3223882632557E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 9.4208397940461E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 3.4682708263871E-01 (PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0851917875566E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5469748917544E-02 -(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1323354496543E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 3.0851907500315E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5470858033249E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 2.1324229070645E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 247 SIarea Counter: 10 Parms: SM M1 - Computing Diagnostic # 250 SIheff Counter: 10 Parms: SM M1 - Computing Diagnostic # 252 SIhsnow Counter: 10 Parms: SM M1 - Computing Diagnostic # 256 SIuice Counter: 10 Parms: UU M1 - Vector Mate for SIuice Diagnostic # 257 SIvice exists - Computing Diagnostic # 257 SIvice Counter: 10 Parms: VV M1 - Vector Mate for SIvice Diagnostic # 256 SIuice exists + Computing Diagnostic # 251 SIarea Counter: 10 Parms: SM M1 + Computing Diagnostic # 254 SIheff Counter: 10 Parms: SM M1 + Computing Diagnostic # 256 SIhsnow Counter: 10 Parms: SM M1 + Computing Diagnostic # 268 SIuice Counter: 10 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 269 SIvice exists + Computing Diagnostic # 269 SIvice Counter: 10 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 268 SIuice exists Computing Diagnostic # 76 MXLDEPTH Counter: 10 Parms: SM M1 - Computing Diagnostic # 212 KPPhbl Counter: 10 Parms: SM P 1 - Computing Diagnostic # 211 KPPghatK Counter: 10 Parms: SM P LR + Computing Diagnostic # 216 KPPhbl Counter: 10 Parms: SM P 1 + Computing Diagnostic # 215 KPPghatK Counter: 10 Parms: SM P LR (PID.TID 0000.0001) %CHECKPOINT 10 0000000010 (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.3721830793656409 -(PID.TID 0000.0001) System time: 2.89960000663995743E-002 -(PID.TID 0000.0001) Wall clock time: 5.4693498611450195 +(PID.TID 0000.0001) User time: 8.7079998929984868 +(PID.TID 0000.0001) System time: 1.2000000104308128E-002 +(PID.TID 0000.0001) Wall clock time: 8.7226979732513428 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.11998199904337525 -(PID.TID 0000.0001) System time: 7.99900013953447342E-003 -(PID.TID 0000.0001) Wall clock time: 0.15420413017272949 +(PID.TID 0000.0001) User time: 9.2000000644475222E-002 +(PID.TID 0000.0001) System time: 4.0000001899898052E-003 +(PID.TID 0000.0001) Wall clock time: 9.4658136367797852E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.2522010803222656 -(PID.TID 0000.0001) System time: 2.09969999268651009E-002 -(PID.TID 0000.0001) Wall clock time: 5.3150990009307861 +(PID.TID 0000.0001) User time: 8.6159998923540115 +(PID.TID 0000.0001) System time: 7.9999999143183231E-003 +(PID.TID 0000.0001) Wall clock time: 8.6280088424682617 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 7.39880055189132690E-002 -(PID.TID 0000.0001) System time: 7.99900013953447342E-003 -(PID.TID 0000.0001) Wall clock time: 0.11091208457946777 +(PID.TID 0000.0001) User time: 4.7999992966651917E-002 +(PID.TID 0000.0001) System time: 4.0000001899898052E-003 +(PID.TID 0000.0001) Wall clock time: 5.3652048110961914E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 5.1782130748033524 -(PID.TID 0000.0001) System time: 1.29979997873306274E-002 -(PID.TID 0000.0001) Wall clock time: 5.2041530609130859 +(PID.TID 0000.0001) User time: 8.5679998993873596 +(PID.TID 0000.0001) System time: 3.9999997243285179E-003 +(PID.TID 0000.0001) Wall clock time: 8.5743300914764404 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 5.1782130748033524 -(PID.TID 0000.0001) System time: 1.29979997873306274E-002 -(PID.TID 0000.0001) Wall clock time: 5.2040543556213379 +(PID.TID 0000.0001) User time: 8.5679998993873596 +(PID.TID 0000.0001) System time: 3.9999997243285179E-003 +(PID.TID 0000.0001) Wall clock time: 8.5742435455322266 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 5.1782130748033524 -(PID.TID 0000.0001) System time: 1.29979997873306274E-002 -(PID.TID 0000.0001) Wall clock time: 5.2038781642913818 +(PID.TID 0000.0001) User time: 8.5679998993873596 +(PID.TID 0000.0001) System time: 3.9999997243285179E-003 +(PID.TID 0000.0001) Wall clock time: 8.5740816593170166 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 4.0001869201660156E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.34889984130859375E-003 +(PID.TID 0000.0001) Wall clock time: 1.6615390777587891E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.29984426498413086E-002 +(PID.TID 0000.0001) User time: 3.2000422477722168E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.30650806427001953E-002 +(PID.TID 0000.0001) Wall clock time: 2.5461912155151367E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 3.29984426498413086E-002 +(PID.TID 0000.0001) User time: 3.2000422477722168E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.26964855194091797E-002 +(PID.TID 0000.0001) Wall clock time: 2.5135040283203125E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": (PID.TID 0000.0001) User time: 0.0000000000000000 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.39369201660156250E-005 +(PID.TID 0000.0001) Wall clock time: 8.4161758422851562E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": (PID.TID 0000.0001) User time: 0.0000000000000000 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.70363616943359375E-005 +(PID.TID 0000.0001) Wall clock time: 8.3208084106445312E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1105268746614456 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.1137392520904541 +(PID.TID 0000.0001) User time: 6.9719991683959961 +(PID.TID 0000.0001) System time: 3.9999997243285179E-003 +(PID.TID 0000.0001) Wall clock time: 6.9824125766754150 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 2.0416892915964127 +(PID.TID 0000.0001) User time: 6.2599996328353882 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.0451734066009521 +(PID.TID 0000.0001) Wall clock time: 6.2698543071746826 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 2.0006948262453079 +(PID.TID 0000.0001) User time: 6.2399988770484924 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.0042650699615479 +(PID.TID 0000.0001) Wall clock time: 6.2398734092712402 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.79787632822990417 +(PID.TID 0000.0001) User time: 0.50400096178054810 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.80160713195800781 +(PID.TID 0000.0001) Wall clock time: 0.51515173912048340 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.67989641427993774 +(PID.TID 0000.0001) User time: 0.52400016784667969 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.68215155601501465 +(PID.TID 0000.0001) Wall clock time: 0.52181601524353027 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.91986000537872314 +(PID.TID 0000.0001) User time: 0.70399993658065796 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.92067599296569824 +(PID.TID 0000.0001) Wall clock time: 0.70483160018920898 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.99877047538757324E-002 +(PID.TID 0000.0001) User time: 5.6000292301177979E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.26950073242187500E-002 +(PID.TID 0000.0001) Wall clock time: 6.0465097427368164E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99950933456420898E-002 +(PID.TID 0000.0001) User time: 2.3999750614166260E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.16641426086425781E-002 +(PID.TID 0000.0001) Wall clock time: 2.3596763610839844E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.89977884292602539E-002 +(PID.TID 0000.0001) User time: 1.5999794006347656E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.65517330169677734E-002 +(PID.TID 0000.0001) Wall clock time: 1.2130022048950195E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": (PID.TID 0000.0001) User time: 0.0000000000000000 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.01804733276367188E-004 +(PID.TID 0000.0001) Wall clock time: 8.4161758422851562E-005 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.29920363426208496E-002 +(PID.TID 0000.0001) User time: 4.0001094341278076E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.22835159301757813E-002 +(PID.TID 0000.0001) Wall clock time: 4.5166015625000000E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.09880590438842773E-002 +(PID.TID 0000.0001) User time: 6.3999354839324951E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.18529224395751953E-002 +(PID.TID 0000.0001) Wall clock time: 5.0982952117919922E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.10598480701446533 +(PID.TID 0000.0001) User time: 7.9999208450317383E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10666084289550781 +(PID.TID 0000.0001) Wall clock time: 7.8425168991088867E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.49889707565307617E-002 -(PID.TID 0000.0001) System time: 1.19979996234178543E-002 -(PID.TID 0000.0001) Wall clock time: 7.82120227813720703E-002 +(PID.TID 0000.0001) User time: 4.0000915527343750E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.8182716369628906E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.99791717529296875E-003 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 1.01315975189208984E-002 +(PID.TID 0000.0001) User time: 1.1999607086181641E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.3230266571044922E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== diff --git a/verification/lab_sea/results/output_adm.noseaice.txt b/verification/lab_sea/results/output_adm.noseaice.txt index 85a0d09c52..1be64c3474 100644 --- a/verification/lab_sea/results/output_adm.noseaice.txt +++ b/verification/lab_sea/results/output_adm.noseaice.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint66l -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Tue Dec 12 12:38:47 EST 2017 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:12:56 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -293,7 +295,6 @@ pkg/grdchk compiled and used ( useGrdchk = T ) pkg/ecco compiled and used ( useECCO = T ) pkg/ctrl compiled and used ( useCTRL = T ) - pkg/sbo compiled but not used ( useSBO = F ) pkg/seaice compiled but not used ( useSEAICE = F ) pkg/salt_plume compiled but not used ( useSALT_PLUME = F ) pkg/diagnostics compiled but not used ( useDiagnostics = F ) @@ -368,6 +369,8 @@ (PID.TID 0000.0001) > repeatPeriod = 31622400.0, (PID.TID 0000.0001) > exf_iprec = 32, (PID.TID 0000.0001) ># +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 10800., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># ********************* @@ -552,6 +555,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -582,9 +591,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -611,113 +629,108 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) > xx_siarea_file ='xx_siarea', -(PID.TID 0000.0001) > xx_siheff_file ='xx_siheff', -(PID.TID 0000.0001) > xx_sihsnow_file ='xx_sihsnow', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', +(PID.TID 0000.0001) ># write control variables into a separate directory +(PID.TID 0000.0001) > ctrlDir = './ctrl_variables', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) >#mult_genarr3d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) >#mult_genarr3d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_swflux_file = 'xx_swflux', +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_siarea', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_siheff', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwflux_file = 'xx_lwflux', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwdown_file = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_aqh', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_evapstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_evapstartdate2 = 000000, -(PID.TID 0000.0001) > xx_evapperiod = 864000.0, -(PID.TID 0000.0001) > xx_evap_file = 'xx_evap', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_precip', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_snowprecipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_snowprecipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_snowprecipperiod = 864000.0, -(PID.TID 0000.0001) > xx_snowprecip_file = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_apressurestartdate1 = 19790101, -(PID.TID 0000.0001) > xx_apressurestartdate2 = 000000, -(PID.TID 0000.0001) > xx_apressureperiod = 864000.0, -(PID.TID 0000.0001) > xx_apressure_file = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_file(5) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(5) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(5) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(5) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(5) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(6) = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(6) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(6) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(6) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(6) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(7) = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(7) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(7) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(7) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(7) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(8) = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(8) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(8) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(8) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(8) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', +(PID.TID 0000.0001) > xx_gentim2d_file(9) = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_weight(9) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(9) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(9) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(9) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># (PID.TID 0000.0001) > / -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES -(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +==> SYSTEM CALL (from CTRL_READPARMS): > mkdir -p ./ctrl_variables < +(PID.TID 0000.0001) read-write ctrl files from ./ctrl_variables (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -742,14 +755,14 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) > grdchk_eps = 1.d-3, (PID.TID 0000.0001) ># nbeg = 4, (PID.TID 0000.0001) > iGloPos = 4, (PID.TID 0000.0001) > jGloPos = 8, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 7, +(PID.TID 0000.0001) > grdchkvarindex = 301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -758,8 +771,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 7 -(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-02 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 (PID.TID 0000.0001) Increment: 1 @@ -775,104 +788,93 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ecco" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) ># ECCO cost function (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) > &ECCO_COST_NML -(PID.TID 0000.0001) > data_errfile ='data.err', -(PID.TID 0000.0001) > tbarfile = 'tbar', -(PID.TID 0000.0001) > sbarfile = 'sbar', -(PID.TID 0000.0001) > psbarfile = 'psbar', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > topexstartdate1 = 19790101, -(PID.TID 0000.0001) > topexstartdate2 = 00000, -(PID.TID 0000.0001) > topexperiod = 2635200.0, -(PID.TID 0000.0001) > topexfile = 'labsea_TP_fields', -(PID.TID 0000.0001) > mdtdatfile = 'labsea_TP_mean', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > ersfile = 'labsea_ERS_fields', -(PID.TID 0000.0001) > ersstartdate1 = 19790101, -(PID.TID 0000.0001) > ersstartdate2 = 00000, -(PID.TID 0000.0001) > ersperiod = 2635200.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > sststartdate1 = 19790101, -(PID.TID 0000.0001) > sststartdate2 = 00000, -(PID.TID 0000.0001) > sstdatfile = 'labsea_SST_fields', -(PID.TID 0000.0001) > ssterrfile = 'sigma_sst.bin', -(PID.TID 0000.0001) > tdatfile = 'labsea_Lev.ptmp', -(PID.TID 0000.0001) > temperrfile = 'sigma_theta.bin', -(PID.TID 0000.0001) > sdatfile = 'labsea_Lev.salt', -(PID.TID 0000.0001) > salterrfile = 'sigma_salt.bin', -(PID.TID 0000.0001) > ssh_errfile = 'labsea_ssh.err', -(PID.TID 0000.0001) > geoid_errfile = 'labsea_geoid.err', -(PID.TID 0000.0001) > geoid_covariancefile = ' ', +(PID.TID 0000.0001) > cost_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta_month', +(PID.TID 0000.0001) > gencost_datafile(1) = 'labsea_Lev.ptmp', +(PID.TID 0000.0001) > gencost_errfile(1) = 'sigma_theta.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > hflux_errfile = ' ', -(PID.TID 0000.0001) > sflux_errfile = ' ', -(PID.TID 0000.0001) > tauu_errfile = ' ', -(PID.TID 0000.0001) > tauv_errfile = ' ', -(PID.TID 0000.0001) > atemp_errfile = ' ', -(PID.TID 0000.0001) > aqh_errfile = ' ', -(PID.TID 0000.0001) > precip_errfile = ' ', -(PID.TID 0000.0001) > swflux_errfile = ' ', -(PID.TID 0000.0001) > swdown_errfile = ' ', -(PID.TID 0000.0001) > uwind_errfile = ' ', -(PID.TID 0000.0001) > vwind_errfile = ' ', +(PID.TID 0000.0001) > gencost_avgperiod(2) = 'month', +(PID.TID 0000.0001) > gencost_barfile(2) = 'm_salt_month', +(PID.TID 0000.0001) > gencost_datafile(2) = 'labsea_Lev.salt', +(PID.TID 0000.0001) > gencost_errfile(2) = 'sigma_salt.bin', +(PID.TID 0000.0001) > gencost_name(2) = 'salt', +(PID.TID 0000.0001) > gencost_spmin(2) = 25., +(PID.TID 0000.0001) > gencost_spmax(2) = 40., +(PID.TID 0000.0001) > gencost_spzero(2) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(2)=1, +(PID.TID 0000.0001) > mult_gencost(2) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > whflux0 = 20., -(PID.TID 0000.0001) > wsflux0 = 3.0E-8, -(PID.TID 0000.0001) > wtau0 = 2.0E-2, -(PID.TID 0000.0001) > watemp0 = 0.5, -(PID.TID 0000.0001) > waqh0 = 5.E-4, -(PID.TID 0000.0001) > wprecip0 = 1.E-8, -(PID.TID 0000.0001) > wswflux0 = 20., -(PID.TID 0000.0001) > wswdown0 = 20., -(PID.TID 0000.0001) > wlwflux0 = 20., -(PID.TID 0000.0001) > wlwdown0 = 20., -(PID.TID 0000.0001) > wwind0 = 1.0, -(PID.TID 0000.0001) > wevap0 = 1.0, -(PID.TID 0000.0001) > wsnowprecip0 = 1.0, -(PID.TID 0000.0001) > wapressure0 = 1.0, +(PID.TID 0000.0001) > gencost_avgperiod(3) = 'month', +(PID.TID 0000.0001) > gencost_barfile(3) = 'm_sst_month', +(PID.TID 0000.0001) > gencost_datafile(3) = 'labsea_SST_fields', +(PID.TID 0000.0001) > gencost_errfile(3) = 'sigma_sst.bin', +(PID.TID 0000.0001) > gencost_name(3) = 'sst', +(PID.TID 0000.0001) > gencost_startdate1(3) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(3) = 00000, +(PID.TID 0000.0001) > gencost_spmin(3) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(3) = 40., +(PID.TID 0000.0001) > gencost_spzero(3) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(3)=1, +(PID.TID 0000.0001) > mult_gencost(3) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > wmean_hflux = 30., -(PID.TID 0000.0001) > wmean_sflux = 1.6E-8, -(PID.TID 0000.0001) > wmean_tau = 0.1, -(PID.TID 0000.0001) > wmean_atemp = 1., -(PID.TID 0000.0001) > wmean_aqh = 1.E-3, -(PID.TID 0000.0001) > wmean_precip = 1.5E-8, -(PID.TID 0000.0001) > wmean_swflux = 20., -(PID.TID 0000.0001) > wmean_swdown = 20., -(PID.TID 0000.0001) > wmean_lwdown = 20., -(PID.TID 0000.0001) > wmean_lwflux = 20., -(PID.TID 0000.0001) > wmean_wind = 2.0, -(PID.TID 0000.0001) > wmean_evap = 1.0, -(PID.TID 0000.0001) > wmean_snowprecip = 1.0, -(PID.TID 0000.0001) > wmean_apressure = 1.0, +(PID.TID 0000.0001) > gencost_avgperiod(4) = 'month', +(PID.TID 0000.0001) > gencost_barfile(4) = 'm_eta_month', +(PID.TID 0000.0001) > gencost_preproc(1,4) = 'mean', +(PID.TID 0000.0001) > gencost_preproc(2,4) = 'offset', +(PID.TID 0000.0001) > gencost_preproc(3,4) = 'mindepth', +(PID.TID 0000.0001) > gencost_preproc_r(3,4) = -200., +(PID.TID 0000.0001) > gencost_datafile(4) = 'labsea_TP_mean_meters', +(PID.TID 0000.0001) > gencost_errfile(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > gencost_name(4) = 'mdt', +(PID.TID 0000.0001) > gencost_startdate1(4) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(4) = 000000, +(PID.TID 0000.0001) > gencost_spmin(4) = -4., +(PID.TID 0000.0001) > gencost_spmax(4) = 4., +(PID.TID 0000.0001) > gencost_spzero(4) = -9999.0, +(PID.TID 0000.0001) > gencost_outputlevel(4)=5, +(PID.TID 0000.0001) > mult_gencost(4) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > mult_hmean = 1., -(PID.TID 0000.0001) > mult_h = 1., -(PID.TID 0000.0001) > mult_temp = 1., -(PID.TID 0000.0001) > mult_salt = 1., -(PID.TID 0000.0001) > mult_sst = 1., -(PID.TID 0000.0001) > mult_hflux = 0., -(PID.TID 0000.0001) > mult_sflux = 0., -(PID.TID 0000.0001) > mult_tauu = 0., -(PID.TID 0000.0001) > mult_tauv = 0., -(PID.TID 0000.0001) > mult_atemp = 0., -(PID.TID 0000.0001) > mult_aqh = 0., -(PID.TID 0000.0001) > mult_precip= 0., -(PID.TID 0000.0001) > mult_swflux= 0., -(PID.TID 0000.0001) > mult_swdown= 0., -(PID.TID 0000.0001) > mult_uwind = 0., -(PID.TID 0000.0001) > mult_vwind = 0., +(PID.TID 0000.0001) > gencost_avgperiod(5) = 'month', +(PID.TID 0000.0001) > gencost_barfile(5) = 'm_boxmean_theta', +(PID.TID 0000.0001) > gencost_mask(5) = 'labsea_densityfollowing_mask', +(PID.TID 0000.0001) > gencost_name(5) = 'labsea_densityfollowing_theta', +(PID.TID 0000.0001) > gencost_useDensityMask(5) = .TRUE., +(PID.TID 0000.0001) > gencost_refPressure(5) = 0.0, +(PID.TID 0000.0001) > gencost_sigmaLow(5) = 27.00, +(PID.TID 0000.0001) > gencost_sigmaHigh(5) = 27.01, +(PID.TID 0000.0001) > gencost_outputlevel(5)=1, +(PID.TID 0000.0001) > mult_gencost(5) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > cost_iprec = 64, -(PID.TID 0000.0001) > cost_yftype = 'RL', +(PID.TID 0000.0001) > gencost_avgperiod(6) = 'month', +(PID.TID 0000.0001) > gencost_barfile(6) = 'm_boxmean_vol', +(PID.TID 0000.0001) > gencost_mask(6) = 'labsea_densityfollowing_mask', +(PID.TID 0000.0001) > gencost_name(6) = 'labsea_densityfollowing_vol', +(PID.TID 0000.0001) > gencost_useDensityMask(6) = .TRUE., +(PID.TID 0000.0001) > gencost_refPressure(6) = 0.0, +(PID.TID 0000.0001) > gencost_sigmaLow(6) = 27.00, +(PID.TID 0000.0001) > gencost_sigmaHigh(6) = 27.01, +(PID.TID 0000.0001) > gencost_outputlevel(6)=1, +(PID.TID 0000.0001) > mult_gencost(6) = 1.D-12, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml +(PID.TID 0000.0001) gencost k_boxmean/horflux= 5 labsea_densityfollowing_theta: T +(PID.TID 0000.0001) gencost k_boxmean/horflux= 6 labsea_densityfollowing_vol: T (PID.TID 0000.0001) ECCO_READPARMS: done (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F @@ -1070,12 +1072,18 @@ (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 3.162240000000000E+07 (PID.TID 0000.0001) ; @@ -1136,22 +1144,31 @@ (PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ (PID.TID 0000.0001) 2.700000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ (PID.TID 0000.0001) 1.420000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ (PID.TID 0000.0001) 7.640000000000000E-05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 3.270000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 1.800000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ (PID.TID 0000.0001) 3.460000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ @@ -1255,7 +1272,7 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: defined (PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined -(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined (PID.TID 0000.0001) (PID.TID 0000.0001) Downward shortwave flux starts at -1317600. (PID.TID 0000.0001) Downward shortwave flux period is 2635200. @@ -1287,165 +1304,93 @@ (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.err -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Parameter file "data.err" -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) > 0.25 -(PID.TID 0000.0001) > 0.5201 0.2676 -(PID.TID 0000.0001) > 0.5199 0.2224 -(PID.TID 0000.0001) > 0.5201 0.1942 -(PID.TID 0000.0001) > 0.5142 0.1751 -(PID.TID 0000.0001) > 0.4917 0.1452 -(PID.TID 0000.0001) > 0.4707 0.1223 -(PID.TID 0000.0001) > 0.4324 0.1125 -(PID.TID 0000.0001) > 0.3782 0.1078 -(PID.TID 0000.0001) > 0.3103 0.0884 -(PID.TID 0000.0001) > 0.2435 0.0785 -(PID.TID 0000.0001) > 0.1994 0.0777 -(PID.TID 0000.0001) > 0.1582 0.0702 -(PID.TID 0000.0001) > 0.1144 0.0710 -(PID.TID 0000.0001) > 0.0905 0.0599 -(PID.TID 0000.0001) > 0.0659 0.0510 -(PID.TID 0000.0001) > 0.0602 0.0408 -(PID.TID 0000.0001) > 0.0508 0.0399 -(PID.TID 0000.0001) > 0.0498 0.0314 -(PID.TID 0000.0001) > 0.0501 0.0205 -(PID.TID 0000.0001) > 0.0500 0.0199 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) +(PID.TID 0000.0001) entering boxmean/horflux check,k,using_gencost(k): , 5 T +(PID.TID 0000.0001) entering boxmean/horflux check,k,using_gencost(k): , 6 T +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ECCO configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ECCO version: 0.1.0 -(PID.TID 0000.0001) -(PID.TID 0000.0001) Packages used: -(PID.TID 0000.0001) Calendar version: 0.1.4 -(PID.TID 0000.0001) External Forcing version: 0.1.1 -(PID.TID 0000.0001) Adjoint support version: 0.1.0 -(PID.TID 0000.0001) Optimization version: 2.1.0 +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.ptmp +(PID.TID 0000.0001) model file = m_theta_month +(PID.TID 0000.0001) error file = sigma_theta.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ALLOW_ECCO_FORWARD_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_DIAGNOSTIC_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ADJOINT_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_GRADIENT_CHECK: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_OPTIMIZATION: defined -(PID.TID 0000.0001) // ALLOW_NO_DYNAMICS: NOT defined -(PID.TID 0000.0001) // ALLOW_YMDS_TREE: NOT defined -(PID.TID 0000.0001) // ALLOW_STEPPING_CALL: NOT defined -(PID.TID 0000.0001) // ALLOW_NONDIMENSIONAL_CONTROL_IO: defined -(PID.TID 0000.0001) // ALLOW_EGM96_ERROR_COV: NOT defined -(PID.TID 0000.0001) // ALLOW_READ_EGM_DATA: NOT defined -(PID.TID 0000.0001) // ALLOW_SCAT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SIGMAR_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SST_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SALT_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SSH_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // APPLY_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_THETA_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SALT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SST_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SSH_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SPH_PROJECTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_SALT0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ETAN0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_UVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWDOWN_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ATEMP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AQH_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_UWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_VWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_PRECIP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AUTODIFF_TAMC: defined -(PID.TID 0000.0001) // ALLOW_TAMC_CHECKPOINTING: defined +(PID.TID 0000.0001) gencost( 2) = salt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.salt +(PID.TID 0000.0001) model file = m_salt_month +(PID.TID 0000.0001) error file = sigma_salt.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 2 (PID.TID 0000.0001) -(PID.TID 0000.0001) Generation of adjoint code for the ECCO setup is enabled +(PID.TID 0000.0001) gencost( 3) = sst +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_SST_fields +(PID.TID 0000.0001) model file = m_sst_month +(PID.TID 0000.0001) error file = sigma_sst.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO configuration >>> END <<< -(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) gencost( 4) = mdt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_TP_mean_meters +(PID.TID 0000.0001) model file = m_eta_month +(PID.TID 0000.0001) error file = ones_64b.bin +(PID.TID 0000.0001) preprocess = mean +(PID.TID 0000.0001) preprocess = offset +(PID.TID 0000.0001) preprocess = mindepth +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 5 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 5) = labsea_densityfollowing_theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) model file = m_boxmean_theta +(PID.TID 0000.0001) error file = +(PID.TID 0000.0001) gencost_flag = -3 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO cost function configuration >>> START <<< -(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) gencost( 6) = labsea_densityfollowing_vol +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) model file = m_boxmean_vol +(PID.TID 0000.0001) error file = +(PID.TID 0000.0001) gencost_flag = -3 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Multipliers for the indivdual cost function contributions: (PID.TID 0000.0001) -(PID.TID 0000.0001) Net heat flux: 0.000E+00 -(PID.TID 0000.0001) Salt flux: 0.000E+00 -(PID.TID 0000.0001) Zonal wind stress: 0.000E+00 -(PID.TID 0000.0001) Meridional wind stress: 0.000E+00 -(PID.TID 0000.0001) Mean sea surface height: 0.100E+01 -(PID.TID 0000.0001) Sea surface height anomalies: 0.100E+01 -(PID.TID 0000.0001) Temperature Lev.: 0.100E+01 -(PID.TID 0000.0001) Salinity Lev.: 0.100E+01 -(PID.TID 0000.0001) Temperature ini.: 0.000E+00 -(PID.TID 0000.0001) Salinity ini.: 0.000E+00 -(PID.TID 0000.0001) Sea level ini.: 0.000E+00 -(PID.TID 0000.0001) zonal velocity ini.: 0.000E+00 -(PID.TID 0000.0001) merid velocity ini.: 0.000E+00 -(PID.TID 0000.0001) TMI Sea surface temperature: 0.000E+00 -(PID.TID 0000.0001) Sea surface temperature: 0.100E+01 -(PID.TID 0000.0001) Sea surface salinity: 0.000E+00 -(PID.TID 0000.0001) CTD temperature: 0.000E+00 -(PID.TID 0000.0001) CTD salinity: 0.000E+00 -(PID.TID 0000.0001) CTD clim temperature: 0.000E+00 -(PID.TID 0000.0001) CTD clim salinity: 0.000E+00 -(PID.TID 0000.0001) XBT Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Salt: 0.000E+00 -(PID.TID 0000.0001) drifter velocities: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) Ageostrophic bdy flow: 0.000E+00 -(PID.TID 0000.0001) OB North: 0.000E+00 -(PID.TID 0000.0001) OB South: 0.000E+00 -(PID.TID 0000.0001) OB West: 0.000E+00 -(PID.TID 0000.0001) OB East: 0.000E+00 (PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) Temperature data are read from: labsea_Lev.ptmp -(PID.TID 0000.0001) Salinity data are read from: labsea_Lev.salt -(PID.TID 0000.0001) using_cost_altim[T=mdt,F=no]: T -(PID.TID 0000.0001) MDT is read from: labsea_TP_mean -(PID.TID 0000.0001) MDT startdate are: 19930101 0 -(PID.TID 0000.0001) MDT enddate are: 20041231 0 -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 7320 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 6720 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 14 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 8 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 6 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 106 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 @@ -1453,8 +1398,8 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 @@ -1467,17 +1412,17 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 @@ -1496,10 +1441,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 212 -(PID.TID 0000.0001) ctrl-wet 8: atmos 296 +(PID.TID 0000.0001) ctrl-wet 8: atmos 212 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 7320 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 6720 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 150 120 129 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 150 120 129 0 @@ -1527,8 +1812,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 15 -(PID.TID 0000.0001) ctrl_init: control vector length: 7320 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 13 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 6720 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1545,11 +1830,83 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000457 000336 000354 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000221 000213 000204 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_siarea +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_siheff +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_aqh +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_precip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_snowprecip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 5 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0305 +(PID.TID 0000.0001) ncvarindex = 0405 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 6 is in use +(PID.TID 0000.0001) file = xx_lwdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0306 +(PID.TID 0000.0001) ncvarindex = 0406 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 7 is in use +(PID.TID 0000.0001) file = xx_uwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0307 +(PID.TID 0000.0001) ncvarindex = 0407 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 8 is in use +(PID.TID 0000.0001) file = xx_vwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0308 +(PID.TID 0000.0001) ncvarindex = 0408 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 9 is in use +(PID.TID 0000.0001) file = xx_apressure +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0309 +(PID.TID 0000.0001) ncvarindex = 0409 +(PID.TID 0000.0001) period = 00000010 000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1615,7 +1972,7 @@ (PID.TID 0000.0001) 3.000000000000000E+00, /* K = 22 */ (PID.TID 0000.0001) 2.000000000000000E+00 /* K = 23 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ (PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ (PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ @@ -1637,6 +1994,56 @@ (PID.TID 0000.0001) 3.470000000000000E+01, /* K = 22 */ (PID.TID 0000.0001) 3.469000000000000E+01 /* K = 23 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.023399597669854E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.023810240320856E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.024201435647580E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.024591510588746E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.024969611150069E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.025328017199967E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.025680833282475E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.026050051489947E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.026491970185416E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027036952689552E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.027794852671120E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028814168587807E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.030119722650770E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.031735154401125E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.033628649568903E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.035732830613343E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.037997052952795E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.040366267417616E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.042716568158493E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.045063813536698E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.047393250130134E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.049712998140759E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.052023490263938E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ +(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ +(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ +(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ +(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ +(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ +(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ +(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ +(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ +(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ +(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ +(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ +(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ +(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1727,10 +2134,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.986000000000000E+03 (PID.TID 0000.0001) ; @@ -1785,28 +2198,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1828,7 +2244,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1837,10 +2253,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1905,37 +2321,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -2040,8 +2431,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -2058,6 +2449,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2391,37 +2785,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ -(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ -(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ -(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ -(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ -(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ -(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ -(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ -(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ -(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ -(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ -(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ -(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ -(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ -(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ -(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ -(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ -(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ -(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ -(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ -(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ -(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ -(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2818,10 +3181,18 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) entering boxmean/horflux check,k,using_gencost(k): , 5 T +(PID.TID 0000.0001) entering boxmean/horflux check,k,using_gencost(k): , 6 T +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -2835,102 +3206,85 @@ (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.34961486430996E-15 1.21235115515981E+00 - cg2d: Sum(rhs),rhsMax = 1.08246744900953E-14 1.23401983812110E+00 - cg2d: Sum(rhs),rhsMax = 5.94316262869654E-15 1.22964263348675E+00 - cg2d: Sum(rhs),rhsMax = 1.08246744900953E-14 1.23401983812110E+00 - cg2d: Sum(rhs),rhsMax = 5.94316262869654E-15 1.22964263348675E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.34614541735800E-15 1.21235115515981E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 + cg2d: Sum(rhs),rhsMax = 1.05557923513189E-14 1.23401983812110E+00 + cg2d: Sum(rhs),rhsMax = 5.47131784323085E-15 1.22964263348675E+00 + cg2d: Sum(rhs),rhsMax = 1.05557923513189E-14 1.23401983812110E+00 + cg2d: Sum(rhs),rhsMax = 5.47131784323085E-15 1.22964263348675E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 4 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.8965187702947E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.1149170685419E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.1820834843730E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.0446717274391E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.8903074804624E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.3227998397664E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.8248684378154E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 8.4803511045964E-05 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1754746109872E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.5056353277990E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3942828180679E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.1618699951173E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.5502438914535E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.9975320685770E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6521633970430E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.9899433749878E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5080823535720E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.4860282069730E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.6200171935647E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.8979897539427E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3179234439770E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.9168464430913E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.8422104921675E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.5405598580007E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.3766757259825E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.4935416210047E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2596681465578E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.6452558576147E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.7091677184600E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.6905587102807E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.8696846658950E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.0470213444650E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -8.1578448351094E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.0424721412357E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.8580329033095E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.3227976863839E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -3.8248659724656E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0669227293363E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.1774596003723E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.5047556758000E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3943583351981E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.1617943089235E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.5229538031040E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.9825009502598E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6522488681243E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.9899440308449E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5067921433697E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 9.5155942930125E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.6190976282578E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.8938021962505E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3178420374957E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.9168465377735E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.7681396514030E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.5514999455879E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.4390810130617E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.4935424528585E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2596674724947E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 6.6640804271518E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.7084615185248E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.6910079046285E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.76958489265189E-14 1.86876794619585E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.04735142570212E-14 1.86890232199449E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.4800221909551E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.0989125519477E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 1.3494274567098E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.2745918171800E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.8618300556963E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 7.5809032703080E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0797427990785E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 2.9561528245025E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0284198369812E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.4094100230447E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.3649509511363E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 5.7263488587633E-06 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.4030052685495E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.9586901283500E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.3103909484587E-06 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2242285720269E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -5.1192371321334E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 2.1676729951686E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 4.5127945800305E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.3437969453365E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.4800326070168E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.0989125500707E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 1.5523551323787E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.2796018153372E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.8889397221596E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 7.5808355813868E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.0774574733706E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 3.1224402211020E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.0272059037962E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.4075977560615E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 9.3649515992395E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 5.7263739025976E-06 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.4027102477313E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.9585727138571E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.3103904343429E-06 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.2242292871336E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -5.1192382366753E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 2.1681320624902E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 4.5121854216067E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 7.3438012435493E-01 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = -8.9124234392038E-07 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -2.1258524177678E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -7.5505693823378E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 4.5329710993432E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 5.4133420806476E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -2939,26 +3293,31 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.3294552510414E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -9.1560067810869E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 2.7131084359676E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.9056627799547E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 3.0122401628232E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 7.5132874899163E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.0742237418072E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 2.7610287895628E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 8.9888760687225E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.3830018965617E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.3294625099829E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -9.1558823536083E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 2.7222542865000E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.9051738670952E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 3.0117370333231E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 7.5132936489376E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.0735534579858E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 2.7770405361985E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 8.9941288726878E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.3833232745615E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 9.3649515992395E-05 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 5.7263739025976E-06 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 3.4027102477313E-05 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 1.9585727138571E-05 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 2.3103904343429E-06 +(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 4.2233844412762E+04 +(PID.TID 0000.0001) %MON ad_exf_adsflux_min = -5.1182143890279E+03 +(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 2.1676984360777E+03 +(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 4.5112829845223E+03 +(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 7.3423324833006E+02 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 7.2390991814717E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 4.8351315586773E-06 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 2.6476533094975E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 1.5101621262775E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 1.7749637662975E-06 (PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 @@ -2972,56 +3331,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 6.0576946723267E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -4.8348284866875E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 5.8391362540799E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.5116911033836E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.6123102694277E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 2.7544367973888E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -2.6535795958691E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -5.4185614900713E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 1.9285025504327E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 5.8343054883876E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -5.6525289162500E-05 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.5811039785455E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -3.7698176452590E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 2.6114368334629E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.2361611260134E-05 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.0670352020176E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.6343718660354E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -8.5380281512284E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 6.0189970411720E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 7.5334432935214E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 5.1182132847070E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.2233837263125E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -2.1672394605695E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 4.5118920211145E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 7.3423281859474E+02 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -4.3516033304950E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.5151887259964E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -2.3834757775459E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.3589663106716E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.5973026709995E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -5.5546593868074E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -9.0841675892857E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -3.3009751282226E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.8999639692990E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2411199676407E-06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 5.0337472657219E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -2.0994362900409E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -7.9759631228857E+03 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9850974958117E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.3350390739701E+03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 6.0577036337543E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -4.8348265707731E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 5.8396794140589E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.5117124785092E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.6122123512977E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 2.7544270140268E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -2.6535835683280E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -5.4158808996343E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 1.9282835873472E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 5.8343437565327E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -5.6525297767661E-05 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.5811038965111E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -3.7693689904104E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 2.6110605308092E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.2361468837942E-05 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.0670348569941E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.6343720378440E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -8.5371255995467E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 6.0183171312199E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 7.5334406049235E-02 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 5.1182143890279E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.2233844412762E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -2.1676984360777E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 4.5112829845223E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 7.3423324833006E+02 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -5.5546836797684E-06 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -9.0841682179572E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -3.3006889528258E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.8998500751701E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.2411194689393E-06 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -4.3516184028095E-06 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.5151892633245E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -2.3828879785478E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.3591459136497E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.5974673896677E-06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 5.1182143890279E+03 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -4.2233844412762E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -2.1676984360777E+03 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 4.5112829845223E+03 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 7.3423324833006E+02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -3030,459 +3379,154 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 3 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.1496804285972E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.7219358752907E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -7.5294365126395E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.2091192285702E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.0639648114782E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.9003397552883E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.3229352681601E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4765609064482E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.5851707726588E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.9703589805833E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.5794208761373E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.3077814562505E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.6630785424256E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1831431135840E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6086026829950E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.9496161982995E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5509498107679E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.1360704837844E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.9327495489712E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 5.0221724154427E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.5733945701040E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0744405261525E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.4903591197333E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2510707059273E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.6156932135159E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3783859937061E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.4289070292009E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 7.3646150070408E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.7563128254868E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.1314380093946E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.1235378095230E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.6540514258891E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -7.5021137266947E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.2077236301605E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.0238361673948E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 7.9003474707174E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.3229103543502E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4933643859962E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.5838155705443E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.9679363240170E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.5795281642544E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.3076740237845E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.6184703091476E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1536940912946E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6089515758677E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.9496167246966E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5486964709401E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.1387646783719E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.9309988424622E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 5.0205235195102E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.5732876181390E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.0744405405426E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.4079539572048E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.2631463813338E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.6860584832354E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3783867547767E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.4289061574250E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 7.3884129982969E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.7553851347243E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.1321704425761E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 6.55031584528842E-14 2.24673369715549E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.8661292043727E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.3265177632972E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 2.2119980447635E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 2.8479200361872E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 3.5020733786864E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.6561725305392E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.3410793519868E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 4.2008855435852E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.4052252419818E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.6645638858753E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.0452766663160E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 6.3497001266228E-06 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.7993605075684E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.1719348215527E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.5606362405797E-06 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 6.1793897844542E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.1469776785251E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 2.7085913296173E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 5.7949654835386E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 8.7186843732854E-01 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.6057547561651E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -1.2993663749929E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 3.8007417552539E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.4346436070492E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 3.7619192675678E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 9.3514037864875E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.2951841704576E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 3.9438050828762E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.2314612035534E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.7067139051867E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 6.7958782228479E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -5.4454794542072E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 6.6065294617431E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.6897907202303E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.8011802700856E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 3.0544227210005E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -2.9585835032025E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -6.0127849907538E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.1522943125286E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 6.5047393848814E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -6.7648236114835E-05 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.7554967157848E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -4.2131294258845E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 2.8967984825737E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.5988352743286E-05 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.3603345944263E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.0313556453972E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -9.5574737632345E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 6.6974986163470E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.3911321468974E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 4.1461482829894E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -6.1781539064973E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -2.7080496113514E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 5.7938064904419E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 8.7169406364107E+02 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -4.8331340056140E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -7.2714517970319E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -2.6626486188057E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.5098640972315E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.7730511677216E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -6.1593211104806E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.0139368015410E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -3.6854467004632E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 2.1068150826349E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.4838623144953E-06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 5.4337796731261E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -2.5922749859182E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -1.0684012734237E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.5326746141226E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 4.1669413327313E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 5.31102939405059E-14 2.24690895939117E-05 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.34961486430996E-15 1.21235115515981E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.34614541735800E-15 1.21235115515981E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 2 (PID.TID 0000.0001) %MON ad_time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.3107797416942E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.1799667876101E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -6.2446707000316E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.3946099974526E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.2815665226539E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.6578115374031E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.1453781454645E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.6764997860153E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.9571996376006E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1150602590326E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.0027436721608E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.8321379227430E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.2546149978432E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2188862778088E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.9694542462519E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4606937001266E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.3766043764599E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0197481731814E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.3001616383095E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.7754691480555E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8299805528648E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.1915895825923E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.1385829756581E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.9675811583837E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.8613138346041E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.5187008690591E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.0141092115431E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 8.1077562001605E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5760480990849E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.5586986208485E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.2940360846102E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.1297494199322E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -6.2157443437141E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.3929179583941E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.2378026728432E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 8.6578265196495E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.1453272061354E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.6787825554695E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.9411182695352E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1099684766165E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.9994314387285E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.8323876754139E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.1943592749124E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1773979322014E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.9713594939522E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4606892523101E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.3743869174613E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.0210710471232E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 4.2984658993327E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.7753675854887E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.8298448337419E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.1915896949171E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.0478223790368E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.9807796063103E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.9394723711017E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.5187021544329E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.0141079643480E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 8.1359883736407E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5752099191053E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.5594675583586E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 5.71487301925799E-14 2.90008271810750E-05 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 2.4538197183734E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.7203418632151E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 3.3331446849546E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.5133596041468E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 4.5653419959020E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.2125327239891E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.7666647461308E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 6.4081623533483E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.9749101032012E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.1085393332524E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.1530814584691E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 6.9509555772362E-06 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 4.1884391698330E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.3870559858337E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.8111134218813E-06 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 9.7324906363136E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.9757170756182E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 3.2458486440494E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 7.6476849107441E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 1.0987491844264E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.9938395020926E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -1.7202327844597E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.1320143019115E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 3.0591607716711E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 4.9424038743472E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.1560684396878E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.5404658559865E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 6.1515855089718E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.7436307570118E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 2.2301987470412E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 7.5085306539550E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -5.9937439639053E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 7.3670481723349E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.8551888329543E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.9969369916997E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 3.3107994916258E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -3.2668305379265E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -6.5128619467006E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.3734090332681E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 7.1808481382720E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -7.4098229593601E-05 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.9279236056647E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -4.6440612461515E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.1804233324045E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.9558868764089E-05 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.6277178273472E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.4253205947581E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -1.0554826940131E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 7.3818796626377E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 9.2543038549158E-02 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.9749219322031E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -9.7305441381863E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -3.2451994743206E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 7.6461553737619E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 1.0985294345896E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -5.2976606845896E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -8.0211279767612E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -2.9356729873498E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.6626444336923E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.9541267523376E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -6.7425495017282E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.1185093512487E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -4.0628598649173E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 2.3154864060115E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.7268295979448E-06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 5.7187730604938E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -3.1509643903313E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -1.3929212208558E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 3.2347692765307E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 5.1290544734199E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 4.79755124516146E-14 2.90029454555607E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 1 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.7291182952966E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7906275474227E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -4.4573364696400E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.6137019315867E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.5975087708483E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.8605122789046E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.5893219711501E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3792582619376E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.3047348430091E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.7536949100440E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3523209863735E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.2685348926701E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2648316004039E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2219859116462E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2265411298070E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.4625602178333E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.0913849199005E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.6054971424834E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3444479589194E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.8284208962906E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.0881873503734E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2862057147049E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.7876410402708E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.6823540348217E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.1115217222365E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7333966184878E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.2864309662457E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 8.9034974956564E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.3184239503405E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6029086634512E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.7345606268640E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.7704866795572E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -4.4307571429961E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.6123124813397E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.5514800181371E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.8605385914624E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.5893522279808E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.3547318234797E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.2583993217561E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.7438961203427E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 5.3520439110259E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.2688115643364E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.1983260362127E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.1803726446277E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2290531996230E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.4625978975627E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.0794275976040E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.6064884385197E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3430153123300E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.8284757277175E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.0880206040148E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2862057760179E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.6884990880723E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.6966622725618E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.1973446630745E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7333978059039E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.2864301323840E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 8.9354369838287E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.3177342631750E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.6037954175452E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 4.64905891561784E-14 4.07344732749477E-05 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 3.76643161104084E-14 4.07368413021593E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.8893209113584E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.9436376609701E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.4939503040579E-03 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.6442736231000E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.3240840733896E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.8240763039164E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -2.9939152126644E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.0673476467776E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 3.2357150344126E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.4251067255933E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.7119245951397E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 7.6043043611881E-06 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 4.6741123826112E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.9201126557152E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 3.7943039579464E-06 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.0945185018366E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.7266607452212E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 5.3394421386113E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.4834295112592E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.8973605153370E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 6.8893195980436E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.9436406522160E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 5.0018464403980E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.6523551515277E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.3736031175114E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.8240680343253E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -2.9939991439016E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.0931897225343E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 3.2350751115494E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 3.4260343885207E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.7119246527530E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 7.6042982947133E-06 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 4.6723309342221E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.9203284608528E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 3.7973875103528E-06 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 4.0945186149541E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -3.7266634873364E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 5.3392449083903E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.4834260353968E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.8973690462504E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = -1.1716805030494E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -2.8594966814667E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -1.0168854947700E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 5.9603102552818E-06 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 7.0958375587620E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -3491,26 +3535,31 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 4.9983920230406E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.8948476703919E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 6.4223632806290E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 5.8038391538551E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.3203716771629E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.3049579109830E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.7889657256979E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 1.0243163859131E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.8312608659473E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 4.0621502268170E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 4.9983911316109E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.8948513248006E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 6.4162265851943E-03 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 5.8037001412750E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 6.3201768043077E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.3049528598412E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.7872032441142E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 1.0265786032504E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.8318864629659E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 4.0626200303351E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 2.7119246527530E-04 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 7.6042982947133E-06 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 4.6723309342221E-05 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 2.9203284608528E-05 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 3.7973875103528E-06 +(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 4.0936997112311E+05 +(PID.TID 0000.0001) %MON ad_exf_adsflux_min = -3.7259181546390E+03 +(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 5.3381770594087E+03 +(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 2.4829293501897E+04 +(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 3.8965895724412E+03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 2.5607615405318E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 6.4326177916639E-06 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 3.6554454394521E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 2.3985172035774E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 3.2162246598743E-06 (PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 @@ -3524,56 +3573,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 8.1640254910207E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -1.3171740974881E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 7.8019764437059E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 2.1253350224567E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 2.5453196914011E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 3.5318757068117E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -3.5726329379554E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -7.0090460655939E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.5908158742258E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 7.8501459921911E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -8.0955207651078E-05 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.9234739276982E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -5.1725641585208E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.7479228880720E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 5.0450771094203E-05 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.7389470176577E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -1.0111223789763E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -1.1929448629122E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 9.6295761665792E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.3639365568207E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.7259154130722E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.0936995981362E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -5.3383742501836E+03 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.4829328253570E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 3.8965810432339E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -5.7893738578364E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -2.3046853363416E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.2916446272291E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 2.1582193750565E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.8925038915127E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -7.3763093450678E-06 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -2.6306146866434E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -4.5339714469774E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 2.8325607771487E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 3.6805417581491E-06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 5.8875501893556E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -7.0132804549990E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -1.9267586458741E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 5.2604955760529E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 7.9791592738297E+03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 8.1640165457717E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -1.3171742292321E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 7.7978392076133E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 2.1252335911181E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 2.5455771090203E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 3.5318736690271E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -3.5726345479726E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -7.0028245583725E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.5905239061322E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 7.8502624664961E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = -8.1008628378451E-05 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.9234740084766E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -5.1702047355383E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.7475636971766E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 5.0486719637532E-05 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = -1.7390428303010E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -1.0111224031633E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -1.1924226323701E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 9.6290557026093E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.3646375531272E-01 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.7259181546390E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -4.0936997112311E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = -5.3381770594087E+03 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.4829293501897E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 3.8965895724412E+03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = -7.3763034604802E-06 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -2.6306147425294E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -4.5322434106211E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 2.8327701119384E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 3.6835328583669E-06 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = -5.7893560124975E-06 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -2.3046853864786E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.2899008955069E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 2.1586654832197E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.8946021938869E-06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.6076942197819E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = -6.0857339206259E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = -1.3459440811697E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 4.0343266730177E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 5.9733818093695E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -3585,61 +3624,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 0 (PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.6657110684704E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.9993007435661E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -2.5353123717172E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.4178441649416E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.9954592756187E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.4638114035310E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.1575542846896E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7864589866802E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.9482694860794E-03 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3668778376414E-04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.9002819516913E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.8524372605421E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.0851872402298E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.8674722648463E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.0202860349987E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 3.7197715007492E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.9794116710758E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.5834106926275E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.3916383755663E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.8638456424043E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.4636474514319E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.1602454619474E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.7698402784001E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.9297684974247E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.3633530606582E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.8999724289692E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.8527463165110E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.0053370572217E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.8441982583819E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.0217063685004E-04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3475890722061E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.3922501094970E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -8.4402414713808E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.3985293209675E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.3752278297174E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.9272064300248E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.9961285073849E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 9.1327569383322E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.7867493489568E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 8.2226626947028E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.3474014816789E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.3922501771219E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -8.3410954820616E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.4119938186112E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.4540920694683E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.9272070643351E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.9961276446446E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 9.1676751954849E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.7863278225996E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 8.2235822580616E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3648,7 +3662,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) grdchk reference fc: fcref = 1.52464554166766E+01 +(PID.TID 0000.0001) grdchk reference fc: fcref = 2.14674959933052E+01 grad-res ------------------------------- grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj @@ -3667,114 +3681,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 2.21697660229836E-15 1.21235115515979E+00 - cg2d: Sum(rhs),rhsMax = 6.27969898303604E-15 1.23401983812103E+00 - cg2d: Sum(rhs),rhsMax = 3.71924713249427E-15 1.22964263348659E+00 - cg2d: Sum(rhs),rhsMax = 4.80865347540771E-15 1.22685174990635E+00 - cg2d: Sum(rhs),rhsMax = 9.04137875679112E-15 1.22454483847570E+00 - cg2d: Sum(rhs),rhsMax = 9.87751547221194E-15 1.21982810541857E+00 - cg2d: Sum(rhs),rhsMax = 7.97625854254136E-15 1.21100345869889E+00 - cg2d: Sum(rhs),rhsMax = -9.19403442267708E-15 1.19760262383393E+00 - cg2d: Sum(rhs),rhsMax = -1.21326559909818E-14 1.18034157185429E+00 - cg2d: Sum(rhs),rhsMax = -1.29549149185948E-14 1.16065887025297E+00 - cg2d: Sum(rhs),rhsMax = -7.91033905045424E-15 1.14018947899170E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.51267887105178E-15 1.21235115515977E+00 + cg2d: Sum(rhs),rhsMax = 9.35015953551499E-15 1.23401983812035E+00 + cg2d: Sum(rhs),rhsMax = 6.23806561961260E-15 1.22964263348475E+00 + cg2d: Sum(rhs),rhsMax = 4.94049245958195E-15 1.22685174990360E+00 + cg2d: Sum(rhs),rhsMax = 9.24260668000443E-15 1.22454483847106E+00 + cg2d: Sum(rhs),rhsMax = 1.45022882591661E-14 1.21982810541261E+00 + cg2d: Sum(rhs),rhsMax = 1.04360964314765E-14 1.21100345869163E+00 + cg2d: Sum(rhs),rhsMax = -7.32747196252603E-15 1.19760262382662E+00 + cg2d: Sum(rhs),rhsMax = -1.07691633388640E-14 1.18034157184526E+00 + cg2d: Sum(rhs),rhsMax = -1.06997743998249E-14 1.16065887024295E+00 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-15 1.14018947898177E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505347239135D+01 - --> f_salt = 0.634739278314994D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079085078816D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769058142D-01 -(PID.TID 0000.0001) --> fc = 0.152464550784003D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733195626303E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017280142E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017280142E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382711E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382711E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505195326080D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739272129171D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703078933171402D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714768478983D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017280142D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382711D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214674936105804D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205836014945D+02 -(PID.TID 0000.0001) global fc = 0.152464550784003D+02 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.52464550784003E+01 +(PID.TID 0000.0001) local fc = 0.214674936105804D+02 +(PID.TID 0000.0001) global fc = 0.214674936105804D+02 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 2.14674936105804E+01 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3783,120 +3732,55 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 1.21235115515982E+00 - cg2d: Sum(rhs),rhsMax = 9.59649026910370E-15 1.23401983812118E+00 - cg2d: Sum(rhs),rhsMax = 9.11423714278214E-15 1.22964263348722E+00 - cg2d: Sum(rhs),rhsMax = 8.90607032566493E-15 1.22685174990675E+00 - cg2d: Sum(rhs),rhsMax = 1.15810139256212E-14 1.22454483847712E+00 - cg2d: Sum(rhs),rhsMax = 1.43773881688958E-14 1.21982810541985E+00 - cg2d: Sum(rhs),rhsMax = 1.17961196366423E-14 1.21100345870052E+00 - cg2d: Sum(rhs),rhsMax = -2.44596010112730E-15 1.19760262383584E+00 - cg2d: Sum(rhs),rhsMax = -7.67441665772139E-15 1.18034157185628E+00 - cg2d: Sum(rhs),rhsMax = -4.45823933326039E-15 1.16065887025536E+00 - cg2d: Sum(rhs),rhsMax = -2.01227923213310E-16 1.14018947899481E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 2.12330153459561E-15 1.21235115515994E+00 + cg2d: Sum(rhs),rhsMax = 9.50454992487693E-15 1.23401983812185E+00 + cg2d: Sum(rhs),rhsMax = 6.91807722219551E-15 1.22964263348851E+00 + cg2d: Sum(rhs),rhsMax = 9.54097911787244E-15 1.22685174991037E+00 + cg2d: Sum(rhs),rhsMax = 1.34336985979644E-14 1.22454483848173E+00 + cg2d: Sum(rhs),rhsMax = 1.81105130891979E-14 1.21982810542557E+00 + cg2d: Sum(rhs),rhsMax = 1.58761892521397E-14 1.21100345870873E+00 + cg2d: Sum(rhs),rhsMax = -1.47104550762833E-15 1.19760262384390E+00 + cg2d: Sum(rhs),rhsMax = -8.13238365537927E-15 1.18034157186434E+00 + cg2d: Sum(rhs),rhsMax = -7.39686090156511E-15 1.16065887026483E+00 + cg2d: Sum(rhs),rhsMax = -1.66533453693773E-15 1.14018947900626E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505380998117D+01 - --> f_salt = 0.634739279689654D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079118836545D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769186858D-01 -(PID.TID 0000.0001) --> fc = 0.152464557549550D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733192184896E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017280145E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017280145E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382711E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382711E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505532915941D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739285875869D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703079270748759D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714769766017D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017280145D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382711D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214675003761280D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205842780363D+02 -(PID.TID 0000.0001) global fc = 0.152464557549550D+02 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.52464557549550E+01 +(PID.TID 0000.0001) local fc = 0.214675003761280D+02 +(PID.TID 0000.0001) global fc = 0.214675003761280D+02 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 2.14675003761280E+01 grad-res ------------------------------- - grad-res 0 1 6 8 1 1 1 1 1.52464554167E+01 1.52464550784E+01 1.52464557550E+01 - grad-res 0 1 1 10 0 1 1 1 -3.38277382790E-03 -3.38277322598E-03 1.77935530643E-07 -(PID.TID 0000.0001) ADM ref_cost_function = 1.52464554166766E+01 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.38277382789512E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.38277322597946E-03 + grad-res 0 1 6 8 1 1 1 1 2.14674959933E+01 2.14674936106E+01 2.14675003761E+01 + grad-res 0 1 1 10 0 1 1 1 -3.38277384411E-03 -3.38277380862E-03 1.04899656739E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 2.14674959933052E+01 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.38277384410969E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.38277380862451E-03 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 11 300 2 @@ -3911,114 +3795,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.07767178198537E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.75207071073658E-15 1.21235115515987E+00 - cg2d: Sum(rhs),rhsMax = 9.85669879050022E-15 1.23401983812096E+00 - cg2d: Sum(rhs),rhsMax = 5.71764857681956E-15 1.22964263348640E+00 - cg2d: Sum(rhs),rhsMax = 3.57699980746418E-15 1.22685174990623E+00 - cg2d: Sum(rhs),rhsMax = 8.81586470491413E-15 1.22454483847566E+00 - cg2d: Sum(rhs),rhsMax = 1.07205910815367E-14 1.21982810541852E+00 - cg2d: Sum(rhs),rhsMax = 9.20791221048489E-15 1.21100345869893E+00 - cg2d: Sum(rhs),rhsMax = -9.04484820374307E-15 1.19760262383475E+00 - cg2d: Sum(rhs),rhsMax = -1.39437072999016E-14 1.18034157185438E+00 - cg2d: Sum(rhs),rhsMax = -1.34163513632046E-14 1.16065887025305E+00 - cg2d: Sum(rhs),rhsMax = -1.01203767588487E-14 1.14018947899217E+00 + cg2d: Sum(rhs),rhsMax = 7.56339435525888E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.97758476261356E-15 1.21235115515956E+00 + cg2d: Sum(rhs),rhsMax = 7.24767468263110E-15 1.23401983811965E+00 + cg2d: Sum(rhs),rhsMax = 3.22658566531686E-15 1.22964263348320E+00 + cg2d: Sum(rhs),rhsMax = 4.74620343027254E-15 1.22685174990064E+00 + cg2d: Sum(rhs),rhsMax = 8.74300631892311E-15 1.22454483846938E+00 + cg2d: Sum(rhs),rhsMax = 1.08940634291343E-14 1.21982810541201E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 1.21100345869191E+00 + cg2d: Sum(rhs),rhsMax = -8.02136135291676E-15 1.19760262382727E+00 + cg2d: Sum(rhs),rhsMax = -1.36557432028894E-14 1.18034157184601E+00 + cg2d: Sum(rhs),rhsMax = -1.54321000422897E-14 1.16065887024303E+00 + cg2d: Sum(rhs),rhsMax = -1.00752739484733E-14 1.14018947898162E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505348804630D+01 - --> f_salt = 0.634739278791966D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079086644164D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769012952D-01 -(PID.TID 0000.0001) --> fc = 0.152464551101812D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733197114189E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017280395E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017280395E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382711E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382711E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505210981028D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739276899183D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703078948824860D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714768027068D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017280395D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382711D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214674939283918D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205836332799D+02 -(PID.TID 0000.0001) global fc = 0.152464551101812D+02 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.52464551101812E+01 +(PID.TID 0000.0001) local fc = 0.214674939283918D+02 +(PID.TID 0000.0001) global fc = 0.214674939283918D+02 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 2.14674939283918E+01 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4027,120 +3846,55 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.25593979660721E-15 1.21235115515984E+00 - cg2d: Sum(rhs),rhsMax = 9.33281230075522E-15 1.23401983812129E+00 - cg2d: Sum(rhs),rhsMax = 7.93115573216596E-15 1.22964263348712E+00 - cg2d: Sum(rhs),rhsMax = 1.05228326052753E-14 1.22685174990696E+00 - cg2d: Sum(rhs),rhsMax = 1.52482193538361E-14 1.22454483847710E+00 - cg2d: Sum(rhs),rhsMax = 1.75311154482216E-14 1.21982810541993E+00 - cg2d: Sum(rhs),rhsMax = 1.80515324910147E-14 1.21100345870078E+00 - cg2d: Sum(rhs),rhsMax = -8.67361737988404E-16 1.19760262383589E+00 - cg2d: Sum(rhs),rhsMax = -6.84521883620448E-15 1.18034157185623E+00 - cg2d: Sum(rhs),rhsMax = -8.24687540479374E-15 1.16065887025552E+00 - cg2d: Sum(rhs),rhsMax = -4.34721703079788E-15 1.14018947899483E+00 + cg2d: Sum(rhs),rhsMax = 8.11850586757146E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.79023462720806E-15 1.21235115516022E+00 + cg2d: Sum(rhs),rhsMax = 9.49414158402107E-15 1.23401983812207E+00 + cg2d: Sum(rhs),rhsMax = 5.95357096955240E-15 1.22964263349030E+00 + cg2d: Sum(rhs),rhsMax = 7.79931674799172E-15 1.22685174991243E+00 + cg2d: Sum(rhs),rhsMax = 1.31838984174237E-14 1.22454483848352E+00 + cg2d: Sum(rhs),rhsMax = 1.56263890715991E-14 1.21982810542634E+00 + cg2d: Sum(rhs),rhsMax = 1.41830991395864E-14 1.21100345870845E+00 + cg2d: Sum(rhs),rhsMax = -2.83106871279415E-15 1.19760262384326E+00 + cg2d: Sum(rhs),rhsMax = -6.82787160144471E-15 1.18034157186380E+00 + cg2d: Sum(rhs),rhsMax = -8.29891710907305E-15 1.16065887026474E+00 + cg2d: Sum(rhs),rhsMax = -2.69229083471600E-15 1.14018947900649E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505379432617D+01 - --> f_salt = 0.634739279212631D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079117271194D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769232051D-01 -(PID.TID 0000.0001) --> fc = 0.152464557231739D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733190697046E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017279892E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017279892E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382711E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382711E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505517260837D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739281105492D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703079255095140D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714770217923D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017279892D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382711D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214675000583131D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205842462507D+02 -(PID.TID 0000.0001) global fc = 0.152464557231739D+02 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.52464557231739E+01 +(PID.TID 0000.0001) local fc = 0.214675000583131D+02 +(PID.TID 0000.0001) global fc = 0.214675000583131D+02 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 2.14675000583131E+01 grad-res ------------------------------- - grad-res 0 2 7 8 1 1 1 1 1.52464554167E+01 1.52464551102E+01 1.52464557232E+01 - grad-res 0 2 2 11 0 1 1 1 -3.06496363359E-03 -3.06496370506E-03 -2.33186996379E-08 -(PID.TID 0000.0001) ADM ref_cost_function = 1.52464554166766E+01 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.06496363358630E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.06496370505727E-03 + grad-res 0 2 7 8 1 1 1 1 2.14674959933E+01 2.14674939284E+01 2.14675000583E+01 + grad-res 0 2 2 11 0 1 1 1 -3.06496112268E-03 -3.06496062841E-03 1.61264602894E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 2.14674959933052E+01 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.06496112267696E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.06496062840722E-03 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 12 300 3 @@ -4155,114 +3909,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.63278329429795E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 2.32106001085697E-15 1.21235115515977E+00 - cg2d: Sum(rhs),rhsMax = 8.21565038222616E-15 1.23401983812046E+00 - cg2d: Sum(rhs),rhsMax = 4.54497550705923E-15 1.22964263348531E+00 - cg2d: Sum(rhs),rhsMax = 6.32133234645949E-15 1.22685174990484E+00 - cg2d: Sum(rhs),rhsMax = 9.37791511113062E-15 1.22454483847349E+00 - cg2d: Sum(rhs),rhsMax = 1.08558995126629E-14 1.21982810541619E+00 - cg2d: Sum(rhs),rhsMax = 8.68055627378794E-15 1.21100345869707E+00 - cg2d: Sum(rhs),rhsMax = -9.23219833914857E-15 1.19760262383306E+00 - cg2d: Sum(rhs),rhsMax = -1.41102407535953E-14 1.18034157185429E+00 - cg2d: Sum(rhs),rhsMax = -1.37043154602168E-14 1.16065887025305E+00 - cg2d: Sum(rhs),rhsMax = -8.95117313604032E-15 1.14018947899331E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.34614541735800E-15 1.21235115515854E+00 + cg2d: Sum(rhs),rhsMax = 5.95183624607643E-15 1.23401983811530E+00 + cg2d: Sum(rhs),rhsMax = 4.22925583443146E-15 1.22964263347258E+00 + cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 1.22685174988262E+00 + cg2d: Sum(rhs),rhsMax = 1.22263310586845E-14 1.22454483844523E+00 + cg2d: Sum(rhs),rhsMax = 1.08663078535187E-14 1.21982810538599E+00 + cg2d: Sum(rhs),rhsMax = 7.85482789922298E-15 1.21100345867079E+00 + cg2d: Sum(rhs),rhsMax = -8.29891710907305E-15 1.19760262381156E+00 + cg2d: Sum(rhs),rhsMax = -1.23789867245705E-14 1.18034157183943E+00 + cg2d: Sum(rhs),rhsMax = -1.31561428418081E-14 1.16065887024749E+00 + cg2d: Sum(rhs),rhsMax = -7.57727214306669E-15 1.14018947899472E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505346344944D+01 - --> f_salt = 0.634739278679921D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079084182924D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769026775D-01 -(PID.TID 0000.0001) --> fc = 0.152464550608613D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733195503625E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017280363E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017280363E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382709E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382709E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505186384246D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739275778707D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703078924212583D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714768165374D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017280363D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382709D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214674934351943D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205835839586D+02 -(PID.TID 0000.0001) global fc = 0.152464550608613D+02 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.52464550608613E+01 +(PID.TID 0000.0001) local fc = 0.214674934351943D+02 +(PID.TID 0000.0001) global fc = 0.214674934351943D+02 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 2.14674934351943E+01 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4271,120 +3960,55 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 5.96744875736022E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 1.82145964977565E-15 1.21235115515994E+00 - cg2d: Sum(rhs),rhsMax = 8.46198111581487E-15 1.23401983812174E+00 - cg2d: Sum(rhs),rhsMax = 4.39231984117328E-15 1.22964263348798E+00 - cg2d: Sum(rhs),rhsMax = 5.38805111638396E-15 1.22685174990878E+00 - cg2d: Sum(rhs),rhsMax = 9.46118183797751E-15 1.22454483847946E+00 - cg2d: Sum(rhs),rhsMax = 1.25836840947358E-14 1.21982810542255E+00 - cg2d: Sum(rhs),rhsMax = 1.03493602576776E-14 1.21100345870312E+00 - cg2d: Sum(rhs),rhsMax = -7.04991620636974E-15 1.19760262383674E+00 - cg2d: Sum(rhs),rhsMax = -1.21846976952611E-14 1.18034157185672E+00 - cg2d: Sum(rhs),rhsMax = -1.19453058555763E-14 1.16065887025466E+00 - cg2d: Sum(rhs),rhsMax = -7.11236625150491E-15 1.14018947899358E+00 + cg2d: Sum(rhs),rhsMax = 8.11850586757146E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.90819582357449E-15 1.21235115516143E+00 + cg2d: Sum(rhs),rhsMax = 7.44890260584441E-15 1.23401983812673E+00 + cg2d: Sum(rhs),rhsMax = 5.17641485231479E-15 1.22964263350142E+00 + cg2d: Sum(rhs),rhsMax = 5.63438184997267E-15 1.22685174993155E+00 + cg2d: Sum(rhs),rhsMax = 9.57567358739198E-15 1.22454483850708E+00 + cg2d: Sum(rhs),rhsMax = 1.18932641512970E-14 1.21982810545027E+00 + cg2d: Sum(rhs),rhsMax = 1.09079412169422E-14 1.21100345872946E+00 + cg2d: Sum(rhs),rhsMax = -8.02136135291676E-15 1.19760262385789E+00 + cg2d: Sum(rhs),rhsMax = -1.32394095686550E-14 1.18034157186980E+00 + cg2d: Sum(rhs),rhsMax = -1.38639100200066E-14 1.16065887026101E+00 + cg2d: Sum(rhs),rhsMax = -8.32667268468867E-15 1.14018947899392E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505381892313D+01 - --> f_salt = 0.634739279324715D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079119732444D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769218219D-01 -(PID.TID 0000.0001) --> fc = 0.152464557724941D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733192307605E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017279924E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017279924E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382713E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382713E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505541857968D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739282226234D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703079279707814D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714770079642D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017279924D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382713D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214675005515184D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205842955723D+02 -(PID.TID 0000.0001) global fc = 0.152464557724941D+02 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.52464557724941E+01 +(PID.TID 0000.0001) local fc = 0.214675005515184D+02 +(PID.TID 0000.0001) global fc = 0.214675005515184D+02 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 2.14675005515184E+01 grad-res ------------------------------- - grad-res 0 3 8 8 1 1 1 1 1.52464554167E+01 1.52464550609E+01 1.52464557725E+01 - grad-res 0 3 3 12 0 1 1 1 -3.55816430222E-03 -3.55816414555E-03 4.40331636709E-08 -(PID.TID 0000.0001) ADM ref_cost_function = 1.52464554166766E+01 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.55816430222234E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.55816414554511E-03 + grad-res 0 3 8 8 1 1 1 1 2.14674959933E+01 2.14674934352E+01 2.14675005515E+01 + grad-res 0 3 3 12 0 1 1 1 -3.55816212510E-03 -3.55816206898E-03 1.57706281367E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 2.14674959933052E+01 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.55816212509841E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.55816206898396E-03 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 13 300 4 @@ -4399,114 +4023,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 6.52256026967279E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 2.15799600411515E-15 1.21235115515978E+00 - cg2d: Sum(rhs),rhsMax = 7.97278909558941E-15 1.23401983812060E+00 - cg2d: Sum(rhs),rhsMax = 3.54230533794464E-15 1.22964263348588E+00 - cg2d: Sum(rhs),rhsMax = 5.38805111638396E-15 1.22685174990620E+00 - cg2d: Sum(rhs),rhsMax = 9.95384330515492E-15 1.22454483847569E+00 - cg2d: Sum(rhs),rhsMax = 1.05436492869870E-14 1.21982810541952E+00 - cg2d: Sum(rhs),rhsMax = 1.05679354156507E-14 1.21100345870151E+00 - cg2d: Sum(rhs),rhsMax = -7.27196081129478E-15 1.19760262383820E+00 - cg2d: Sum(rhs),rhsMax = -1.21916365891650E-14 1.18034157186057E+00 - cg2d: Sum(rhs),rhsMax = -1.28057286996608E-14 1.16065887026194E+00 - cg2d: Sum(rhs),rhsMax = -7.35175809118971E-15 1.14018947900476E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 1.99146255042137E-15 1.21235115515859E+00 + cg2d: Sum(rhs),rhsMax = 8.83494666314988E-15 1.23401983811663E+00 + cg2d: Sum(rhs),rhsMax = 6.14092110495790E-15 1.22964263347822E+00 + cg2d: Sum(rhs),rhsMax = 6.73072708679001E-15 1.22685174989603E+00 + cg2d: Sum(rhs),rhsMax = 8.92341756042470E-15 1.22454483846917E+00 + cg2d: Sum(rhs),rhsMax = 7.89646126264643E-15 1.21982810542131E+00 + cg2d: Sum(rhs),rhsMax = 6.63358257213531E-15 1.21100345871766E+00 + cg2d: Sum(rhs),rhsMax = -1.00197627972420E-14 1.19760262387081E+00 + cg2d: Sum(rhs),rhsMax = -1.44051437445114E-14 1.18034157191229E+00 + cg2d: Sum(rhs),rhsMax = -1.53627111032506E-14 1.16065887033445E+00 + cg2d: Sum(rhs),rhsMax = -9.86710713135608E-15 1.14018947910129E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505342336795D+01 - --> f_salt = 0.634739278603325D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079080158455D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714768975168D-01 -(PID.TID 0000.0001) --> fc = 0.152464549804533D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733206941820E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017275875E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017275875E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382698E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382698E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505146302551D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739275013584D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703078883967705D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714767649242D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017275875D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382698D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214674926310668D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205835035558D+02 -(PID.TID 0000.0001) global fc = 0.152464549804533D+02 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.52464549804533E+01 +(PID.TID 0000.0001) local fc = 0.214674926310668D+02 +(PID.TID 0000.0001) global fc = 0.214674926310668D+02 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 2.14674926310668E+01 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4515,120 +4074,55 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 7.07767178198537E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 2.49800180540660E-15 1.21235115515993E+00 - cg2d: Sum(rhs),rhsMax = 1.07483466571523E-14 1.23401983812161E+00 - cg2d: Sum(rhs),rhsMax = 6.03683769639929E-15 1.22964263348715E+00 - cg2d: Sum(rhs),rhsMax = 8.64933125122036E-15 1.22685174990738E+00 - cg2d: Sum(rhs),rhsMax = 1.30798150088651E-14 1.22454483847712E+00 - cg2d: Sum(rhs),rhsMax = 1.39298295120938E-14 1.21982810541910E+00 - cg2d: Sum(rhs),rhsMax = 1.05228326052753E-14 1.21100345869807E+00 - cg2d: Sum(rhs),rhsMax = -7.44196371194050E-15 1.19760262383176E+00 - cg2d: Sum(rhs),rhsMax = -1.33990041284449E-14 1.18034157185044E+00 - cg2d: Sum(rhs),rhsMax = -1.50678081123345E-14 1.16065887024594E+00 - cg2d: Sum(rhs),rhsMax = -1.02903796594944E-14 1.14018947898223E+00 + cg2d: Sum(rhs),rhsMax = 8.67361737988404E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 2.35228503342455E-15 1.21235115516138E+00 + cg2d: Sum(rhs),rhsMax = 8.77770078844264E-15 1.23401983812535E+00 + cg2d: Sum(rhs),rhsMax = 4.19803081186387E-15 1.22964263349547E+00 + cg2d: Sum(rhs),rhsMax = 2.99760216648792E-15 1.22685174991811E+00 + cg2d: Sum(rhs),rhsMax = 6.55031584528842E-15 1.22454483848376E+00 + cg2d: Sum(rhs),rhsMax = 7.89646126264643E-15 1.21982810541736E+00 + cg2d: Sum(rhs),rhsMax = 5.27355936696949E-15 1.21100345868332E+00 + cg2d: Sum(rhs),rhsMax = -1.19071419391048E-14 1.19760262379978E+00 + cg2d: Sum(rhs),rhsMax = -1.62370117351429E-14 1.18034157179718E+00 + cg2d: Sum(rhs),rhsMax = -1.71390679426509E-14 1.16065887017090E+00 + cg2d: Sum(rhs),rhsMax = -1.08524300657109E-14 1.14018947888674E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505385900456D+01 - --> f_salt = 0.634739279401329D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079123756886D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769269823D-01 -(PID.TID 0000.0001) --> fc = 0.152464558529017D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733180869662E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017284412E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017284412E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382724E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382724E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505581939691D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739282991652D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703079319952673D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714770595800D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017284412D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382724D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214675013556462D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205843759747D+02 -(PID.TID 0000.0001) global fc = 0.152464558529017D+02 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.52464558529017E+01 +(PID.TID 0000.0001) local fc = 0.214675013556462D+02 +(PID.TID 0000.0001) global fc = 0.214675013556462D+02 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 2.14675013556462E+01 grad-res ------------------------------- - grad-res 0 4 9 8 1 1 1 1 1.52464554167E+01 1.52464549805E+01 1.52464558529E+01 - grad-res 0 4 4 13 0 1 1 1 -4.36224637982E-03 -4.36224194544E-03 1.01653482099E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.52464554166766E+01 -(PID.TID 0000.0001) ADM adjoint_gradient = -4.36224637981900E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = -4.36224194544366E-03 + grad-res 0 4 9 8 1 1 1 1 2.14674959933E+01 2.14674926311E+01 2.14675013556E+01 + grad-res 0 4 4 13 0 1 1 1 -4.36228918956E-03 -4.36228971346E-03 -1.20096246503E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 2.14674959933052E+01 +(PID.TID 0000.0001) ADM adjoint_gradient = -4.36228918956087E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = -4.36228971345543E-03 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 14 300 5 @@ -4643,114 +4137,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 6.52256026967279E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 2.36963226818432E-15 1.21235115515958E+00 - cg2d: Sum(rhs),rhsMax = 7.99707522425308E-15 1.23401983811997E+00 - cg2d: Sum(rhs),rhsMax = 4.19803081186387E-15 1.22964263348441E+00 - cg2d: Sum(rhs),rhsMax = 5.56499291093360E-15 1.22685174990444E+00 - cg2d: Sum(rhs),rhsMax = 9.63812363252714E-15 1.22454483847393E+00 - cg2d: Sum(rhs),rhsMax = 1.15879528195251E-14 1.21982810541841E+00 - cg2d: Sum(rhs),rhsMax = 1.08905939821824E-14 1.21100345870121E+00 - cg2d: Sum(rhs),rhsMax = -4.65946725647370E-15 1.19760262383831E+00 - cg2d: Sum(rhs),rhsMax = -8.38912272982384E-15 1.18034157186138E+00 - cg2d: Sum(rhs),rhsMax = -8.01789190596480E-15 1.16065887026430E+00 - cg2d: Sum(rhs),rhsMax = -1.83533743758346E-15 1.14018947900785E+00 + cg2d: Sum(rhs),rhsMax = 9.22872889219661E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 2.90045765183322E-15 1.21235115515656E+00 + cg2d: Sum(rhs),rhsMax = 9.18709552877317E-15 1.23401983810960E+00 + cg2d: Sum(rhs),rhsMax = 7.63972218820186E-15 1.22964263346413E+00 + cg2d: Sum(rhs),rhsMax = 4.23272528138341E-15 1.22685174987872E+00 + cg2d: Sum(rhs),rhsMax = 8.52096171399808E-15 1.22454483845176E+00 + cg2d: Sum(rhs),rhsMax = 1.06858966120171E-14 1.21982810540838E+00 + cg2d: Sum(rhs),rhsMax = 7.46624984060418E-15 1.21100345871254E+00 + cg2d: Sum(rhs),rhsMax = -9.68669588985449E-15 1.19760262387565E+00 + cg2d: Sum(rhs),rhsMax = -1.48769885299771E-14 1.18034157192630E+00 + cg2d: Sum(rhs),rhsMax = -1.62370117351429E-14 1.16065887035868E+00 + cg2d: Sum(rhs),rhsMax = -1.21985754830689E-14 1.14018947913396E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505341165097D+01 - --> f_salt = 0.634739278575351D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079079120709D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769052122D-01 -(PID.TID 0000.0001) --> fc = 0.152464549583386D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733216602748E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017279856E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017279856E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382691E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382691E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505134585953D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739274733938D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703078873590530D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714768418755D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017279856D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382691D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214674924099661D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205834814334D+02 -(PID.TID 0000.0001) global fc = 0.152464549583386D+02 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.52464549583386E+01 +(PID.TID 0000.0001) local fc = 0.214674924099661D+02 +(PID.TID 0000.0001) global fc = 0.214674924099661D+02 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 2.14674924099661E+01 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4759,390 +4188,301 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 6.52256026967279E-16 9.93177556305830E-01 - cg2d: Sum(rhs),rhsMax = 3.32026073301961E-15 1.21235115516020E+00 - cg2d: Sum(rhs),rhsMax = 9.34669008856304E-15 1.23401983812164E+00 - cg2d: Sum(rhs),rhsMax = 8.48973669143049E-15 1.22964263348876E+00 - cg2d: Sum(rhs),rhsMax = 1.01550712283682E-14 1.22685174990952E+00 - cg2d: Sum(rhs),rhsMax = 1.29306287899311E-14 1.22454483847891E+00 - cg2d: Sum(rhs),rhsMax = 1.37528877175441E-14 1.21982810542030E+00 - cg2d: Sum(rhs),rhsMax = 1.10987607992996E-14 1.21100345869847E+00 - cg2d: Sum(rhs),rhsMax = -4.72538674856082E-15 1.19760262383166E+00 - cg2d: Sum(rhs),rhsMax = -9.83935155574045E-15 1.18034157184861E+00 - cg2d: Sum(rhs),rhsMax = -9.23913723305247E-15 1.16065887024365E+00 - cg2d: Sum(rhs),rhsMax = -4.46517822716430E-15 1.14018947898008E+00 + cg2d: Sum(rhs),rhsMax = 7.84095011141517E-16 9.93177556305830E-01 + cg2d: Sum(rhs),rhsMax = 2.17187379192296E-15 1.21235115516370E+00 + cg2d: Sum(rhs),rhsMax = 7.00654811947032E-15 1.23401983813264E+00 + cg2d: Sum(rhs),rhsMax = 3.54924423184855E-15 1.22964263351019E+00 + cg2d: Sum(rhs),rhsMax = 5.80091530366644E-15 1.22685174993598E+00 + cg2d: Sum(rhs),rhsMax = 9.97812943381859E-15 1.22454483850071E+00 + cg2d: Sum(rhs),rhsMax = 1.24622534514174E-14 1.21982810542871E+00 + cg2d: Sum(rhs),rhsMax = 1.11299858218672E-14 1.21100345868739E+00 + cg2d: Sum(rhs),rhsMax = -6.02295990859147E-15 1.19760262379521E+00 + cg2d: Sum(rhs),rhsMax = -1.09079412169422E-14 1.18034157178460E+00 + cg2d: Sum(rhs),rhsMax = -1.11854969730985E-14 1.16065887014823E+00 + cg2d: Sum(rhs),rhsMax = -4.99600361081320E-15 1.14018947885513E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt - --> f_temp = 0.755505387072105D+01 - --> f_salt = 0.634739279429184D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.703079124794630D+01 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.258714769192869D-01 -(PID.TID 0000.0001) --> fc = 0.152464558750158D+02 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 6.60733171209117E-03 +(PID.TID 0000.0001) boxmean/horflux : 1 3.85579017280431E+00 +(PID.TID 0000.0001) boxmean/horflux fc : 3.85579017280431E+00 +(PID.TID 0000.0001) boxmean/horflux : 1 2.36525040382731E+12 +(PID.TID 0000.0001) boxmean/horflux fc : 2.36525040382731E+12 +(PID.TID 0000.0001) --> f_gencost = 0.755505593656867D+01 1 +(PID.TID 0000.0001) --> f_gencost = 0.634739283270079D+00 2 +(PID.TID 0000.0001) --> f_gencost = 0.703079330330238D+01 3 +(PID.TID 0000.0001) --> f_gencost = 0.258714769826236D-01 4 +(PID.TID 0000.0001) --> f_gencost = 0.385579017280431D+01 5 +(PID.TID 0000.0001) --> f_gencost = 0.236525040382731D+13 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.214675015767554D+02 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.152205843980965D+02 -(PID.TID 0000.0001) global fc = 0.152464558750158D+02 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.52464558750158E+01 +(PID.TID 0000.0001) local fc = 0.214675015767554D+02 +(PID.TID 0000.0001) global fc = 0.214675015767554D+02 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 2.14675015767554E+01 grad-res ------------------------------- - grad-res 0 5 10 8 1 1 1 1 1.52464554167E+01 1.52464549583E+01 1.52464558750E+01 - grad-res 0 5 5 14 0 1 1 1 -4.58339239815E-03 -4.58338600851E-03 1.39408632072E-06 -(PID.TID 0000.0001) ADM ref_cost_function = 1.52464554166766E+01 -(PID.TID 0000.0001) ADM adjoint_gradient = -4.58339239815003E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = -4.58338600850539E-03 + grad-res 0 5 10 8 1 1 1 1 2.14674959933E+01 2.14674924100E+01 2.14675015768E+01 + grad-res 0 5 5 14 0 1 1 1 -4.58339547500E-03 -4.58339463272E-03 1.83768107509E-07 +(PID.TID 0000.0001) ADM ref_cost_function = 2.14674959933052E+01 +(PID.TID 0000.0001) ADM adjoint_gradient = -4.58339547499975E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = -4.58339463271784E-03 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) EPS = 1.000000E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 1.5246455416677E+01 1.5246455078400E+01 1.5246455754955E+01 -(PID.TID 0000.0001) grdchk output (g): 1 -3.3827732259795E-03 -3.3827738278951E-03 1.7793553064305E-07 +(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 1 2.1467495993305E+01 2.1467493610580E+01 2.1467500376128E+01 +(PID.TID 0000.0001) grdchk output (g): 1 -3.3827738086245E-03 -3.3827738441097E-03 1.0489965673877E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 1.5246455416677E+01 1.5246455110181E+01 1.5246455723174E+01 -(PID.TID 0000.0001) grdchk output (g): 2 -3.0649637050573E-03 -3.0649636335863E-03 -2.3318699637898E-08 +(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 2 2.1467495993305E+01 2.1467493928392E+01 2.1467500058313E+01 +(PID.TID 0000.0001) grdchk output (g): 2 -3.0649606284072E-03 -3.0649611226770E-03 1.6126460289367E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 1.5246455416677E+01 1.5246455060861E+01 1.5246455772494E+01 -(PID.TID 0000.0001) grdchk output (g): 3 -3.5581641455451E-03 -3.5581643022223E-03 4.4033163670854E-08 +(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 3 2.1467495993305E+01 2.1467493435194E+01 2.1467500551518E+01 +(PID.TID 0000.0001) grdchk output (g): 3 -3.5581620689840E-03 -3.5581621250984E-03 1.5770628136735E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 4 1.5246455416677E+01 1.5246454980453E+01 1.5246455852902E+01 -(PID.TID 0000.0001) grdchk output (g): 4 -4.3622419454437E-03 -4.3622463798190E-03 1.0165348209856E-06 +(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 4 2.1467495993305E+01 2.1467492631067E+01 2.1467501355646E+01 +(PID.TID 0000.0001) grdchk output (g): 4 -4.3622897134554E-03 -4.3622891895609E-03 -1.2009624650311E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 1.5246455416677E+01 1.5246454958339E+01 1.5246455875016E+01 -(PID.TID 0000.0001) grdchk output (g): 5 -4.5833860085054E-03 -4.5833923981500E-03 1.3940863207162E-06 +(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 5 2.1467495993305E+01 2.1467492409966E+01 2.1467501576755E+01 +(PID.TID 0000.0001) grdchk output (g): 5 -4.5833946327178E-03 -4.5833954749998E-03 1.8376810750897E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 7.7601075330247E-07 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 1.2211375843834E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 54.707683464512229 -(PID.TID 0000.0001) System time: 0.29495499306358397 -(PID.TID 0000.0001) Wall clock time: 79.217814207077026 +(PID.TID 0000.0001) User time: 36.323679246008396 +(PID.TID 0000.0001) System time: 0.33515901118516922 +(PID.TID 0000.0001) Wall clock time: 36.678928852081299 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.44093300960958004 -(PID.TID 0000.0001) System time: 4.39930001739412546E-002 -(PID.TID 0000.0001) Wall clock time: 5.0582170486450195 +(PID.TID 0000.0001) User time: 0.31244799261912704 +(PID.TID 0000.0001) System time: 2.7246998157352209E-002 +(PID.TID 0000.0001) Wall clock time: 0.34757590293884277 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 9.2145987749099731 -(PID.TID 0000.0001) System time: 0.16097599640488625 -(PID.TID 0000.0001) Wall clock time: 28.922658920288086 +(PID.TID 0000.0001) User time: 5.8685520887374878 +(PID.TID 0000.0001) System time: 0.19593599811196327 +(PID.TID 0000.0001) Wall clock time: 6.0712819099426270 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 43.550378561019897 -(PID.TID 0000.0001) System time: 3.99919971823692322E-002 -(PID.TID 0000.0001) Wall clock time: 43.674371480941772 +(PID.TID 0000.0001) User time: 29.811862289905548 +(PID.TID 0000.0001) System time: 1.6362011432647705E-002 +(PID.TID 0000.0001) Wall clock time: 29.833380222320557 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.26794797182083130 -(PID.TID 0000.0001) System time: 2.39950120449066162E-002 -(PID.TID 0000.0001) Wall clock time: 0.29322504997253418 +(PID.TID 0000.0001) User time: 0.24649119377136230 +(PID.TID 0000.0001) System time: 8.1940144300460815E-003 +(PID.TID 0000.0001) Wall clock time: 0.25474786758422852 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.27794748544692993 -(PID.TID 0000.0001) System time: 2.39950120449066162E-002 -(PID.TID 0000.0001) Wall clock time: 0.30100321769714355 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.49892282485961914 -(PID.TID 0000.0001) System time: 9.69839990139007568E-002 -(PID.TID 0000.0001) Wall clock time: 20.117700576782227 -(PID.TID 0000.0001) No. starts: 420 -(PID.TID 0000.0001) No. stops: 420 +(PID.TID 0000.0001) User time: 0.17297536134719849 +(PID.TID 0000.0001) System time: 5.7130306959152222E-003 +(PID.TID 0000.0001) Wall clock time: 0.17882513999938965 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.17492675781250000E-003 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) User time: 1.0365843772888184E-003 +(PID.TID 0000.0001) System time: 3.2991170883178711E-005 +(PID.TID 0000.0001) Wall clock time: 1.0571479797363281E-003 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.99765777587890625E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.77330589294433594E-003 +(PID.TID 0000.0001) User time: 7.8803479671478271E-002 +(PID.TID 0000.0001) System time: 1.2549906969070435E-003 +(PID.TID 0000.0001) Wall clock time: 8.0128192901611328E-002 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.89990711212158203E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.20777797698974609E-002 +(PID.TID 0000.0001) User time: 2.4217903614044189E-002 +(PID.TID 0000.0001) System time: 3.9099901914596558E-004 +(PID.TID 0000.0001) Wall clock time: 2.4639129638671875E-002 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 15.340660870075226 -(PID.TID 0000.0001) System time: 5.99898397922515869E-003 -(PID.TID 0000.0001) Wall clock time: 15.378215789794922 +(PID.TID 0000.0001) User time: 8.4279664754867554 +(PID.TID 0000.0001) System time: 6.4710304141044617E-003 +(PID.TID 0000.0001) Wall clock time: 8.4351723194122314 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 10.507440447807312 -(PID.TID 0000.0001) System time: 3.99896502494812012E-003 -(PID.TID 0000.0001) Wall clock time: 10.524872064590454 -(PID.TID 0000.0001) No. starts: 512 -(PID.TID 0000.0001) No. stops: 512 +(PID.TID 0000.0001) User time: 5.4317397773265839 +(PID.TID 0000.0001) System time: 4.0460005402565002E-003 +(PID.TID 0000.0001) Wall clock time: 5.4364759922027588 +(PID.TID 0000.0001) No. starts: 496 +(PID.TID 0000.0001) No. stops: 496 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.329276680946350 -(PID.TID 0000.0001) System time: 1.99999660253524780E-003 -(PID.TID 0000.0001) Wall clock time: 11.357698440551758 +(PID.TID 0000.0001) User time: 6.3978672325611115 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.3982048034667969 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2568042278289795 +(PID.TID 0000.0001) User time: 0.77372890710830688 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2626922130584717 +(PID.TID 0000.0001) Wall clock time: 0.77386426925659180 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.38296025991439819 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.38456177711486816 +(PID.TID 0000.0001) User time: 0.21603214740753174 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 0.21612906455993652 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20495688915252686 +(PID.TID 0000.0001) User time: 0.12503963708877563 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.20311522483825684 +(PID.TID 0000.0001) Wall clock time: 0.12513470649719238 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.72188937664031982 +(PID.TID 0000.0001) User time: 0.43367761373519897 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.72626996040344238 +(PID.TID 0000.0001) Wall clock time: 0.43382358551025391 (PID.TID 0000.0001) No. starts: 248 (PID.TID 0000.0001) No. stops: 248 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 12.887042224407196 -(PID.TID 0000.0001) System time: 7.99800455570220947E-003 -(PID.TID 0000.0001) Wall clock time: 12.918647050857544 +(PID.TID 0000.0001) User time: 7.7513899803161621 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.7558047771453857 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 1.0469555854797363E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.24001502990722656E-003 +(PID.TID 0000.0001) Wall clock time: 1.0352134704589844E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 1.1511445045471191E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.23500823974609375E-003 +(PID.TID 0000.0001) Wall clock time: 1.1506080627441406E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 9.6565485000610352E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.20782852172851563E-003 +(PID.TID 0000.0001) Wall clock time: 9.7250938415527344E-004 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.00025939941406250E-003 +(PID.TID 0000.0001) User time: 1.8655657768249512E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.70207023620605469E-003 +(PID.TID 0000.0001) Wall clock time: 1.7011165618896484E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 1.4144778251647949E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.39284133911132813E-003 +(PID.TID 0000.0001) Wall clock time: 1.4052391052246094E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 0.27991628646850586 +(PID.TID 0000.0001) System time: 8.5682988166809082E-002 +(PID.TID 0000.0001) Wall clock time: 0.37185931205749512 +(PID.TID 0000.0001) No. starts: 21 +(PID.TID 0000.0001) No. stops: 21 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.49967575073242188E-002 -(PID.TID 0000.0001) System time: 3.99900972843170166E-003 -(PID.TID 0000.0001) Wall clock time: 2.84240245819091797E-002 +(PID.TID 0000.0001) User time: 1.0713577270507812E-002 +(PID.TID 0000.0001) System time: 9.9986791610717773E-005 +(PID.TID 0000.0001) Wall clock time: 1.0823011398315430E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.39963531494140625E-002 -(PID.TID 0000.0001) System time: 2.99999117851257324E-003 -(PID.TID 0000.0001) Wall clock time: 2.76079177856445313E-002 +(PID.TID 0000.0001) User time: 8.9631080627441406E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.9697837829589844E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 45.001159667968750 -(PID.TID 0000.0001) System time: 8.29869955778121948E-002 -(PID.TID 0000.0001) Wall clock time: 45.178856849670410 +(PID.TID 0000.0001) User time: 30.120933532714844 +(PID.TID 0000.0001) System time: 0.11186301708221436 +(PID.TID 0000.0001) Wall clock time: 30.238204956054688 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.40593814849853516 -(PID.TID 0000.0001) System time: 4.99998033046722412E-003 -(PID.TID 0000.0001) Wall clock time: 0.41248631477355957 +(PID.TID 0000.0001) User time: 0.72017812728881836 +(PID.TID 0000.0001) System time: 6.7855045199394226E-002 +(PID.TID 0000.0001) Wall clock time: 0.78830599784851074 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 44.585218429565430 -(PID.TID 0000.0001) System time: 7.29870200157165527E-002 -(PID.TID 0000.0001) Wall clock time: 44.751098871231079 +(PID.TID 0000.0001) User time: 29.388776779174805 +(PID.TID 0000.0001) System time: 4.3952956795692444E-002 +(PID.TID 0000.0001) Wall clock time: 29.437870264053345 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 7.00063705444335938E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.62007236480712891E-002 +(PID.TID 0000.0001) User time: 0.33780908584594727 +(PID.TID 0000.0001) System time: 3.6984682083129883E-005 +(PID.TID 0000.0001) Wall clock time: 0.33794999122619629 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 42.143591880798340 -(PID.TID 0000.0001) System time: 3.59929949045181274E-002 -(PID.TID 0000.0001) Wall clock time: 42.262681484222412 +(PID.TID 0000.0001) User time: 28.762830257415771 +(PID.TID 0000.0001) System time: 4.1770040988922119E-003 +(PID.TID 0000.0001) Wall clock time: 28.772123336791992 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 2.29930877685546875E-002 -(PID.TID 0000.0001) System time: 3.99999320507049561E-003 -(PID.TID 0000.0001) Wall clock time: 2.67837047576904297E-002 +(PID.TID 0000.0001) User time: 4.5783042907714844E-002 +(PID.TID 0000.0001) System time: 3.8640052080154419E-003 +(PID.TID 0000.0001) Wall clock time: 4.9659252166748047E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.35594367980957031 -(PID.TID 0000.0001) System time: 3.09940427541732788E-002 -(PID.TID 0000.0001) Wall clock time: 0.38837790489196777 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_FORCING [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 4.29897308349609375E-002 -(PID.TID 0000.0001) System time: 1.69960260391235352E-002 -(PID.TID 0000.0001) Wall clock time: 6.03165626525878906E-002 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_SSH [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 4.00352478027343750E-003 -(PID.TID 0000.0001) System time: 9.99987125396728516E-004 -(PID.TID 0000.0001) Wall clock time: 6.90984725952148438E-003 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_HYD [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.30895042419433594 -(PID.TID 0000.0001) System time: 1.19990259408950806E-002 -(PID.TID 0000.0001) Wall clock time: 0.32015609741210938 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_INTERNAL_PARAMS [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.16586685180664063E-004 +(PID.TID 0000.0001) User time: 0.23491477966308594 +(PID.TID 0000.0001) System time: 3.5841003060340881E-002 +(PID.TID 0000.0001) Wall clock time: 0.27076768875122070 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.51290130615234375E-005 +(PID.TID 0000.0001) User time: 0.20071601867675781 +(PID.TID 0000.0001) System time: 2.7871027588844299E-002 +(PID.TID 0000.0001) Wall clock time: 0.22861385345458984 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.51290130615234375E-005 +(PID.TID 0000.0001) User time: 3.3906936645507812E-002 +(PID.TID 0000.0001) System time: 7.9669803380966187E-003 +(PID.TID 0000.0001) Wall clock time: 4.1887044906616211E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 7.00092315673828125E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.41012191772460938E-003 +(PID.TID 0000.0001) User time: 2.9687881469726562E-003 +(PID.TID 0000.0001) System time: 3.0994415283203125E-005 +(PID.TID 0000.0001) Wall clock time: 3.0040740966796875E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -5193,9 +4533,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 44124 +(PID.TID 0000.0001) // No. barriers = 45028 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 44124 +(PID.TID 0000.0001) // Total barrier spins = 45028 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/results/output_adm.noseaicedyn.txt b/verification/lab_sea/results/output_adm.noseaicedyn.txt index 3a303c17f9..6f24afd911 100644 --- a/verification/lab_sea/results/output_adm.noseaicedyn.txt +++ b/verification/lab_sea/results/output_adm.noseaicedyn.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67b -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed May 23 01:32:50 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:12:56 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -295,7 +297,6 @@ pkg/grdchk compiled and used ( useGrdchk = T ) pkg/ecco compiled and used ( useECCO = T ) pkg/ctrl compiled and used ( useCTRL = T ) - pkg/sbo compiled but not used ( useSBO = F ) pkg/seaice compiled and used ( useSEAICE = T ) pkg/salt_plume compiled and used ( useSALT_PLUME = T ) pkg/diagnostics compiled but not used ( useDiagnostics = F ) @@ -346,6 +347,8 @@ (PID.TID 0000.0001) > repeatPeriod = 31622400.0, (PID.TID 0000.0001) > exf_iprec = 32, (PID.TID 0000.0001) ># +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 10800., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># ********************* @@ -571,12 +574,13 @@ (PID.TID 0000.0001) > SEAICE_tempFrz0 = -1.96, (PID.TID 0000.0001) > SEAICE_dTempFrz_dS = 0., (PID.TID 0000.0001) > SEAICE_availHeatFrac = 0.8, -(PID.TID 0000.0001) > SEAICEadvSnow = .TRUE., -(PID.TID 0000.0001) > SEAICEuseFlooding = .TRUE., (PID.TID 0000.0001) > SEAICEwriteState = .TRUE., (PID.TID 0000.0001) ># SEAICE_tave_mnc = .FALSE., (PID.TID 0000.0001) ># SEAICE_dump_mnc = .FALSE., (PID.TID 0000.0001) ># SEAICE_mon_mnc = .FALSE., +(PID.TID 0000.0001) ># old defaults +(PID.TID 0000.0001) > SEAICEadvScheme = 2, +(PID.TID 0000.0001) > SEAICE_useMultDimSnow = .FALSE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) > &SEAICE_PARM02 @@ -631,6 +635,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -661,9 +671,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -690,113 +709,108 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) > xx_siarea_file ='xx_siarea', -(PID.TID 0000.0001) > xx_siheff_file ='xx_siheff', -(PID.TID 0000.0001) > xx_sihsnow_file ='xx_sihsnow', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) ># write control variables into a separate directory +(PID.TID 0000.0001) > ctrlDir = './ctrl_variables', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) >#mult_genarr3d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_swflux_file = 'xx_swflux', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) >#mult_genarr3d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_siarea', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwflux_file = 'xx_lwflux', +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_siheff', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwdown_file = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_evapstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_evapstartdate2 = 000000, -(PID.TID 0000.0001) > xx_evapperiod = 864000.0, -(PID.TID 0000.0001) > xx_evap_file = 'xx_evap', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_aqh', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_snowprecipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_snowprecipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_snowprecipperiod = 864000.0, -(PID.TID 0000.0001) > xx_snowprecip_file = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_precip', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_apressurestartdate1 = 19790101, -(PID.TID 0000.0001) > xx_apressurestartdate2 = 000000, -(PID.TID 0000.0001) > xx_apressureperiod = 864000.0, -(PID.TID 0000.0001) > xx_apressure_file = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(5) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(5) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(5) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(5) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(5) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(6) = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(6) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(6) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(6) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(6) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(7) = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(7) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(7) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(7) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(7) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', +(PID.TID 0000.0001) > xx_gentim2d_file(8) = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(8) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(8) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(8) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(8) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > xx_gentim2d_file(9) = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_weight(9) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(9) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(9) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(9) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +==> SYSTEM CALL (from CTRL_READPARMS): > mkdir -p ./ctrl_variables < +(PID.TID 0000.0001) read-write ctrl files from ./ctrl_variables (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -821,14 +835,14 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) > grdchk_eps = 1.d-3, (PID.TID 0000.0001) ># nbeg = 4, (PID.TID 0000.0001) > iGloPos = 4, (PID.TID 0000.0001) > jGloPos = 8, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 7, +(PID.TID 0000.0001) > grdchkvarindex = 301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -837,8 +851,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 7 -(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-02 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 (PID.TID 0000.0001) Increment: 1 @@ -854,104 +868,69 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ecco" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) ># ECCO cost function (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) > &ECCO_COST_NML -(PID.TID 0000.0001) > data_errfile ='data.err', -(PID.TID 0000.0001) > tbarfile = 'tbar', -(PID.TID 0000.0001) > sbarfile = 'sbar', -(PID.TID 0000.0001) > psbarfile = 'psbar', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > topexstartdate1 = 19790101, -(PID.TID 0000.0001) > topexstartdate2 = 00000, -(PID.TID 0000.0001) > topexperiod = 2635200.0, -(PID.TID 0000.0001) > topexfile = 'labsea_TP_fields', -(PID.TID 0000.0001) > mdtdatfile = 'labsea_TP_mean', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > ersfile = 'labsea_ERS_fields', -(PID.TID 0000.0001) > ersstartdate1 = 19790101, -(PID.TID 0000.0001) > ersstartdate2 = 00000, -(PID.TID 0000.0001) > ersperiod = 2635200.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > sststartdate1 = 19790101, -(PID.TID 0000.0001) > sststartdate2 = 00000, -(PID.TID 0000.0001) > sstdatfile = 'labsea_SST_fields', -(PID.TID 0000.0001) > ssterrfile = 'sigma_sst.bin', -(PID.TID 0000.0001) > tdatfile = 'labsea_Lev.ptmp', -(PID.TID 0000.0001) > temperrfile = 'sigma_theta.bin', -(PID.TID 0000.0001) > sdatfile = 'labsea_Lev.salt', -(PID.TID 0000.0001) > salterrfile = 'sigma_salt.bin', -(PID.TID 0000.0001) > ssh_errfile = 'labsea_ssh.err', -(PID.TID 0000.0001) > geoid_errfile = 'labsea_geoid.err', -(PID.TID 0000.0001) > geoid_covariancefile = ' ', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > hflux_errfile = ' ', -(PID.TID 0000.0001) > sflux_errfile = ' ', -(PID.TID 0000.0001) > tauu_errfile = ' ', -(PID.TID 0000.0001) > tauv_errfile = ' ', -(PID.TID 0000.0001) > atemp_errfile = ' ', -(PID.TID 0000.0001) > aqh_errfile = ' ', -(PID.TID 0000.0001) > precip_errfile = ' ', -(PID.TID 0000.0001) > swflux_errfile = ' ', -(PID.TID 0000.0001) > swdown_errfile = ' ', -(PID.TID 0000.0001) > uwind_errfile = ' ', -(PID.TID 0000.0001) > vwind_errfile = ' ', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > whflux0 = 20., -(PID.TID 0000.0001) > wsflux0 = 3.0E-8, -(PID.TID 0000.0001) > wtau0 = 2.0E-2, -(PID.TID 0000.0001) > watemp0 = 0.5, -(PID.TID 0000.0001) > waqh0 = 5.E-4, -(PID.TID 0000.0001) > wprecip0 = 1.E-8, -(PID.TID 0000.0001) > wswflux0 = 20., -(PID.TID 0000.0001) > wswdown0 = 20., -(PID.TID 0000.0001) > wlwflux0 = 20., -(PID.TID 0000.0001) > wlwdown0 = 20., -(PID.TID 0000.0001) > wwind0 = 1.0, -(PID.TID 0000.0001) > wevap0 = 1.0, -(PID.TID 0000.0001) > wsnowprecip0 = 1.0, -(PID.TID 0000.0001) > wapressure0 = 1.0, +(PID.TID 0000.0001) > cost_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta_month', +(PID.TID 0000.0001) > gencost_datafile(1) = 'labsea_Lev.ptmp', +(PID.TID 0000.0001) > gencost_errfile(1) = 'sigma_theta.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > wmean_hflux = 30., -(PID.TID 0000.0001) > wmean_sflux = 1.6E-8, -(PID.TID 0000.0001) > wmean_tau = 0.1, -(PID.TID 0000.0001) > wmean_atemp = 1., -(PID.TID 0000.0001) > wmean_aqh = 1.E-3, -(PID.TID 0000.0001) > wmean_precip = 1.5E-8, -(PID.TID 0000.0001) > wmean_swflux = 20., -(PID.TID 0000.0001) > wmean_swdown = 20., -(PID.TID 0000.0001) > wmean_lwdown = 20., -(PID.TID 0000.0001) > wmean_lwflux = 20., -(PID.TID 0000.0001) > wmean_wind = 2.0, -(PID.TID 0000.0001) > wmean_evap = 1.0, -(PID.TID 0000.0001) > wmean_snowprecip = 1.0, -(PID.TID 0000.0001) > wmean_apressure = 1.0, +(PID.TID 0000.0001) > gencost_avgperiod(2) = 'month', +(PID.TID 0000.0001) > gencost_barfile(2) = 'm_salt_month', +(PID.TID 0000.0001) > gencost_datafile(2) = 'labsea_Lev.salt', +(PID.TID 0000.0001) > gencost_errfile(2) = 'sigma_salt.bin', +(PID.TID 0000.0001) > gencost_name(2) = 'salt', +(PID.TID 0000.0001) > gencost_spmin(2) = 25., +(PID.TID 0000.0001) > gencost_spmax(2) = 40., +(PID.TID 0000.0001) > gencost_spzero(2) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(2)=1, +(PID.TID 0000.0001) > mult_gencost(2) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > mult_hmean = 1., -(PID.TID 0000.0001) > mult_h = 1., -(PID.TID 0000.0001) > mult_temp = 1., -(PID.TID 0000.0001) > mult_salt = 1., -(PID.TID 0000.0001) > mult_sst = 1., -(PID.TID 0000.0001) > mult_hflux = 0., -(PID.TID 0000.0001) > mult_sflux = 0., -(PID.TID 0000.0001) > mult_tauu = 0., -(PID.TID 0000.0001) > mult_tauv = 0., -(PID.TID 0000.0001) > mult_atemp = 0., -(PID.TID 0000.0001) > mult_aqh = 0., -(PID.TID 0000.0001) > mult_precip= 0., -(PID.TID 0000.0001) > mult_swflux= 0., -(PID.TID 0000.0001) > mult_swdown= 0., -(PID.TID 0000.0001) > mult_uwind = 0., -(PID.TID 0000.0001) > mult_vwind = 0., +(PID.TID 0000.0001) > gencost_avgperiod(3) = 'month', +(PID.TID 0000.0001) > gencost_barfile(3) = 'm_sst_month', +(PID.TID 0000.0001) > gencost_datafile(3) = 'labsea_SST_fields', +(PID.TID 0000.0001) > gencost_errfile(3) = 'sigma_sst.bin', +(PID.TID 0000.0001) > gencost_name(3) = 'sst', +(PID.TID 0000.0001) > gencost_startdate1(3) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(3) = 00000, +(PID.TID 0000.0001) > gencost_spmin(3) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(3) = 40., +(PID.TID 0000.0001) > gencost_spzero(3) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(3)=1, +(PID.TID 0000.0001) > mult_gencost(3) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > cost_iprec = 64, -(PID.TID 0000.0001) > cost_yftype = 'RL', +(PID.TID 0000.0001) > gencost_avgperiod(4) = 'month', +(PID.TID 0000.0001) > gencost_barfile(4) = 'm_eta_month', +(PID.TID 0000.0001) > gencost_preproc(1,4) = 'mean', +(PID.TID 0000.0001) > gencost_preproc(2,4) = 'offset', +(PID.TID 0000.0001) > gencost_preproc(3,4) = 'mindepth', +(PID.TID 0000.0001) > gencost_preproc_r(3,4) = -200., +(PID.TID 0000.0001) > gencost_datafile(4) = 'labsea_TP_mean_meters', +(PID.TID 0000.0001) > gencost_errfile(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > gencost_name(4) = 'mdt', +(PID.TID 0000.0001) > gencost_startdate1(4) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(4) = 000000, +(PID.TID 0000.0001) > gencost_spmin(4) = -4., +(PID.TID 0000.0001) > gencost_spmax(4) = 4., +(PID.TID 0000.0001) > gencost_spzero(4) = -9999.0, +(PID.TID 0000.0001) > gencost_outputlevel(4)=5, +(PID.TID 0000.0001) > mult_gencost(4) = 1., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml (PID.TID 0000.0001) ECCO_READPARMS: done (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F @@ -1149,12 +1128,18 @@ (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 3.162240000000000E+07 (PID.TID 0000.0001) ; @@ -1215,22 +1200,31 @@ (PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ (PID.TID 0000.0001) 2.700000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ (PID.TID 0000.0001) 1.420000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ (PID.TID 0000.0001) 7.640000000000000E-05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 3.270000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 1.800000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ (PID.TID 0000.0001) 3.460000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ @@ -1334,7 +1328,7 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: defined (PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined -(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined (PID.TID 0000.0001) (PID.TID 0000.0001) Downward shortwave flux starts at -1317600. (PID.TID 0000.0001) Downward shortwave flux period is 2635200. @@ -1370,149 +1364,59 @@ (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 1 90 (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 2 57 (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 2 36 -(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.err -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Parameter file "data.err" -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) > 0.25 -(PID.TID 0000.0001) > 0.5201 0.2676 -(PID.TID 0000.0001) > 0.5199 0.2224 -(PID.TID 0000.0001) > 0.5201 0.1942 -(PID.TID 0000.0001) > 0.5142 0.1751 -(PID.TID 0000.0001) > 0.4917 0.1452 -(PID.TID 0000.0001) > 0.4707 0.1223 -(PID.TID 0000.0001) > 0.4324 0.1125 -(PID.TID 0000.0001) > 0.3782 0.1078 -(PID.TID 0000.0001) > 0.3103 0.0884 -(PID.TID 0000.0001) > 0.2435 0.0785 -(PID.TID 0000.0001) > 0.1994 0.0777 -(PID.TID 0000.0001) > 0.1582 0.0702 -(PID.TID 0000.0001) > 0.1144 0.0710 -(PID.TID 0000.0001) > 0.0905 0.0599 -(PID.TID 0000.0001) > 0.0659 0.0510 -(PID.TID 0000.0001) > 0.0602 0.0408 -(PID.TID 0000.0001) > 0.0508 0.0399 -(PID.TID 0000.0001) > 0.0498 0.0314 -(PID.TID 0000.0001) > 0.0501 0.0205 -(PID.TID 0000.0001) > 0.0500 0.0199 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ECCO configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ECCO version: 0.1.0 +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.ptmp +(PID.TID 0000.0001) model file = m_theta_month +(PID.TID 0000.0001) error file = sigma_theta.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Packages used: -(PID.TID 0000.0001) Calendar version: 0.1.4 -(PID.TID 0000.0001) External Forcing version: 0.1.1 -(PID.TID 0000.0001) Adjoint support version: 0.1.0 -(PID.TID 0000.0001) Optimization version: 2.1.0 +(PID.TID 0000.0001) gencost( 2) = salt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.salt +(PID.TID 0000.0001) model file = m_salt_month +(PID.TID 0000.0001) error file = sigma_salt.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 2 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ALLOW_ECCO_FORWARD_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_DIAGNOSTIC_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ADJOINT_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_GRADIENT_CHECK: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_OPTIMIZATION: defined -(PID.TID 0000.0001) // ALLOW_NO_DYNAMICS: NOT defined -(PID.TID 0000.0001) // ALLOW_YMDS_TREE: NOT defined -(PID.TID 0000.0001) // ALLOW_STEPPING_CALL: NOT defined -(PID.TID 0000.0001) // ALLOW_NONDIMENSIONAL_CONTROL_IO: defined -(PID.TID 0000.0001) // ALLOW_EGM96_ERROR_COV: NOT defined -(PID.TID 0000.0001) // ALLOW_READ_EGM_DATA: NOT defined -(PID.TID 0000.0001) // ALLOW_SCAT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SIGMAR_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SST_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SALT_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SSH_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // APPLY_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_THETA_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SALT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SST_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SSH_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SPH_PROJECTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_SALT0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ETAN0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_UVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWDOWN_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ATEMP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AQH_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_UWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_VWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_PRECIP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AUTODIFF_TAMC: defined -(PID.TID 0000.0001) // ALLOW_TAMC_CHECKPOINTING: defined +(PID.TID 0000.0001) gencost( 3) = sst +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_SST_fields +(PID.TID 0000.0001) model file = m_sst_month +(PID.TID 0000.0001) error file = sigma_sst.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Generation of adjoint code for the ECCO setup is enabled +(PID.TID 0000.0001) gencost( 4) = mdt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_TP_mean_meters +(PID.TID 0000.0001) model file = m_eta_month +(PID.TID 0000.0001) error file = ones_64b.bin +(PID.TID 0000.0001) preprocess = mean +(PID.TID 0000.0001) preprocess = offset +(PID.TID 0000.0001) preprocess = mindepth +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 5 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO configuration >>> END <<< -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO cost function configuration >>> START <<< +(PID.TID 0000.0001) // ECCO configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) Multipliers for the indivdual cost function contributions: -(PID.TID 0000.0001) -(PID.TID 0000.0001) Net heat flux: 0.000E+00 -(PID.TID 0000.0001) Salt flux: 0.000E+00 -(PID.TID 0000.0001) Zonal wind stress: 0.000E+00 -(PID.TID 0000.0001) Meridional wind stress: 0.000E+00 -(PID.TID 0000.0001) Mean sea surface height: 0.100E+01 -(PID.TID 0000.0001) Sea surface height anomalies: 0.100E+01 -(PID.TID 0000.0001) Temperature Lev.: 0.100E+01 -(PID.TID 0000.0001) Salinity Lev.: 0.100E+01 -(PID.TID 0000.0001) Temperature ini.: 0.000E+00 -(PID.TID 0000.0001) Salinity ini.: 0.000E+00 -(PID.TID 0000.0001) Sea level ini.: 0.000E+00 -(PID.TID 0000.0001) zonal velocity ini.: 0.000E+00 -(PID.TID 0000.0001) merid velocity ini.: 0.000E+00 -(PID.TID 0000.0001) TMI Sea surface temperature: 0.000E+00 -(PID.TID 0000.0001) Sea surface temperature: 0.100E+01 -(PID.TID 0000.0001) Sea surface salinity: 0.000E+00 -(PID.TID 0000.0001) CTD temperature: 0.000E+00 -(PID.TID 0000.0001) CTD salinity: 0.000E+00 -(PID.TID 0000.0001) CTD clim temperature: 0.000E+00 -(PID.TID 0000.0001) CTD clim salinity: 0.000E+00 -(PID.TID 0000.0001) XBT Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Salt: 0.000E+00 -(PID.TID 0000.0001) drifter velocities: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) Ageostrophic bdy flow: 0.000E+00 -(PID.TID 0000.0001) OB North: 0.000E+00 -(PID.TID 0000.0001) OB South: 0.000E+00 -(PID.TID 0000.0001) OB West: 0.000E+00 -(PID.TID 0000.0001) OB East: 0.000E+00 -(PID.TID 0000.0001) -(PID.TID 0000.0001) -(PID.TID 0000.0001) Temperature data are read from: labsea_Lev.ptmp -(PID.TID 0000.0001) Salinity data are read from: labsea_Lev.salt -(PID.TID 0000.0001) using_cost_altim[T=mdt,F=no]: T -(PID.TID 0000.0001) MDT is read from: labsea_TP_mean -(PID.TID 0000.0001) MDT startdate are: 19930101 0 -(PID.TID 0000.0001) MDT enddate are: 20041231 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< (PID.TID 0000.0001) // ======================================================= @@ -1562,28 +1466,31 @@ (PID.TID 0000.0001) SEAICEadvSalt = /* advect salinity together with ice */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEmultiDimAdvection = /* multidimadvec */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseFluxForm = /* advection in FV flux form */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ @@ -1648,9 +1555,6 @@ (PID.TID 0000.0001) 2=from net melt-grow>0 by ATM and OCN (PID.TID 0000.0001) 3=from predicted melt by ATM (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICE_tauAreaObsRelax= /* relaxation timescale of sea-ice concentration */ -(PID.TID 0000.0001) -9.990000000000000E+02 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) HO = /* nominal thickness of new ice */ (PID.TID 0000.0001) 5.000000000000000E-01 (PID.TID 0000.0001) ; @@ -1831,22 +1735,22 @@ (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 7320 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 6720 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 14 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 8 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 6 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 106 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 @@ -1854,8 +1758,8 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 @@ -1868,17 +1772,17 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 @@ -1897,10 +1801,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 212 -(PID.TID 0000.0001) ctrl-wet 8: atmos 296 +(PID.TID 0000.0001) ctrl-wet 8: atmos 212 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 7320 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 6720 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 150 120 129 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 150 120 129 0 @@ -1928,8 +2172,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 15 -(PID.TID 0000.0001) ctrl_init: control vector length: 7320 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 13 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 6720 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1946,11 +2190,83 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000457 000336 000354 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000221 000213 000204 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_siarea +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_siheff +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_aqh +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_precip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_snowprecip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 5 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0305 +(PID.TID 0000.0001) ncvarindex = 0405 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 6 is in use +(PID.TID 0000.0001) file = xx_lwdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0306 +(PID.TID 0000.0001) ncvarindex = 0406 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 7 is in use +(PID.TID 0000.0001) file = xx_uwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0307 +(PID.TID 0000.0001) ncvarindex = 0407 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 8 is in use +(PID.TID 0000.0001) file = xx_vwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0308 +(PID.TID 0000.0001) ncvarindex = 0408 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 9 is in use +(PID.TID 0000.0001) file = xx_apressure +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0309 +(PID.TID 0000.0001) ncvarindex = 0409 +(PID.TID 0000.0001) period = 00000010 000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -2016,7 +2332,7 @@ (PID.TID 0000.0001) 3.000000000000000E+00, /* K = 22 */ (PID.TID 0000.0001) 2.000000000000000E+00 /* K = 23 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ (PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ (PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ @@ -2038,6 +2354,56 @@ (PID.TID 0000.0001) 3.470000000000000E+01, /* K = 22 */ (PID.TID 0000.0001) 3.469000000000000E+01 /* K = 23 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.023399597669854E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.023810240320856E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.024201435647580E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.024591510588746E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.024969611150069E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.025328017199967E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.025680833282475E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.026050051489947E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.026491970185416E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027036952689552E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.027794852671120E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028814168587807E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.030119722650770E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.031735154401125E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.033628649568903E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.035732830613343E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.037997052952795E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.040366267417616E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.042716568158493E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.045063813536698E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.047393250130134E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.049712998140759E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.052023490263938E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ +(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ +(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ +(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ +(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ +(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ +(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ +(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ +(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ +(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ +(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ +(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ +(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ +(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2128,10 +2494,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.986000000000000E+03 (PID.TID 0000.0001) ; @@ -2186,28 +2558,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -2229,7 +2604,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -2238,10 +2613,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -2306,37 +2681,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -2441,8 +2791,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -2459,6 +2809,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2792,37 +3145,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ -(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ -(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ -(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ -(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ -(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ -(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ -(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ -(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ -(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ -(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ -(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ -(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ -(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ -(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ -(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ -(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ -(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ -(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ -(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ -(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ -(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ -(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -3219,12 +3541,18 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE (PID.TID 0000.0001) SALT_PLUME_CHECK: #define SALT_PLUME -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -3238,73 +3566,50 @@ (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.33146835171283E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.02869102125425E-14 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 9.83588210878850E-15 1.20418221389263E+00 - cg2d: Sum(rhs),rhsMax = 1.02869102125425E-14 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 8.71178129635553E-15 1.20418221389263E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 + cg2d: Sum(rhs),rhsMax = 9.94516968777504E-15 1.20922192376664E+00 + cg2d: Sum(rhs),rhsMax = 9.63118473862323E-15 1.20418221389263E+00 + cg2d: Sum(rhs),rhsMax = 9.94516968777504E-15 1.20922192376664E+00 + cg2d: Sum(rhs),rhsMax = 9.63118473862323E-15 1.20418221389263E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 4 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.5039070512912E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.3217349129388E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.7410083416714E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.1993613583866E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.8054040976653E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.1613398793823E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3254045881086E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 9.1544639849324E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 6.7449928684829E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.2469045431260E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.2374504846476E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.0201552862201E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2255261608333E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2644914181436E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.9676729108443E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.5699957626876E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2696418912776E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.3369202782710E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1201133019798E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1940764557338E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.5177368265857E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8741744647590E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.4547428022798E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.0609723342616E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.6487446978929E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.3224257448114E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1082008965338E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.4167194197372E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0283579599154E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.9094502338325E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.5039070397891E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.3217349888987E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.7410083200603E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.1993613888131E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 3.8054041938244E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.1613398960095E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3254045888038E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 9.1544639680982E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 6.7449929128853E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.2469046605612E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.2374505045118E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.0201553268356E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.2255259758692E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.2644914349786E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 6.9676729285209E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 5.5699957657999E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -6.2696418910783E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -1.3369212991750E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.1201133093532E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.1940764587046E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 8.5177368285018E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8741744647589E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.4547434004024E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 9.0609723369752E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.6487447454187E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.3224257379875E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1082008965046E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.4167196446976E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0283578808525E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.9094442084917E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3313,65 +3618,71 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 4 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.0731956609568E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.2603814926637E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 3.4333441319698E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.6314046869718E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 3.2730303687100E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.3500223843665E-03 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -6.0348133982414E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -1.8968004735930E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 8.5779674635564E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.1137995800383E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 2.9564024109272E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.3969029432638E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -6.4778445078990E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.1497123398255E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.6309120312216E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.6386052257219E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 8.2054674113150E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 5.6407429136589E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 7.4030917782970E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 4.7106394248407E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 5.9421947745960E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 1.4957760119144E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.0467359120309E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.6832309372385E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.7090044733327E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.0731961236919E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.2603814926231E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 3.4333453174357E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.6314053197533E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 3.2730315467105E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.3500220167205E-03 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -6.0348148447887E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -1.8968007616822E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 8.5779690784455E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.1137996804793E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 2.9564013619962E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.3968923063192E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -6.4778408372684E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.1497116441101E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.6309108131011E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.6386052257213E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 8.2054674117975E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 5.6407429057912E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 7.4030917826651E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 4.7106394332755E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 5.9421947745936E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 1.4957760120244E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.0467359028649E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.6832309365349E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.7090044670760E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -2.5745468917036E-07 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.3362783229982E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -4.2603735485279E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 5.3652819179302E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 2.8788438895301E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.05774763947686E-14 5.27771836478199E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.08940634291343E-14 5.27771837424536E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.9319868625367E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -9.3380889898462E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 9.2960184950189E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7316871916540E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.1406780546223E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.7525564143567E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -8.9343299230230E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.5790906202584E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.2755973633681E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.3306802513904E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.9319868600747E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -9.3380890216609E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 9.2960179676720E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7316860431399E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 6.1406743091350E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.7525564940191E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -8.9343298658585E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.5790910845900E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.2755990657584E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.3306841971134E-02 (PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6355899810567E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.4863870275230E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 5.6455425779073E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 7.6746759878948E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 5.0366390847132E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -4.4177643298612E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8284912095350E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.1336924411996E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 3.7447565618983E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.8823145174079E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -7.4863870292074E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 5.6455426164477E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 7.6746760559175E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 5.0366391680756E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -4.4177643303894E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8284912133644E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.1336925049165E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 3.7447571413132E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.8823147472143E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 1.7672148120070E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.7634400010624E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -1.2894056341811E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 1.7656704343271E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.1611833660746E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -3380,31 +3691,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 9.2714355239641E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6690444949231E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.5693151994635E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.9803517675557E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 2.9123391688707E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4369816338235E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -5.5903634007193E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 7.9806523887731E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.9295452130755E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.1866317173892E-02 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 9.2714355018443E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.6690445108305E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 5.5693149865866E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.9803509212962E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 2.9123384109231E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4369839516172E+00 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -5.5903633192033E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 7.9806561975651E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.9295468997067E-01 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.1866348063585E-02 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 1.6355899810567E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = -1.0283128282911E-07 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 5.4357797999264E-04 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 7.5397893561069E-04 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 6.1101234932539E-05 (PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.6646659915909E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -5.7734499075174E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 2.3804968441896E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.6754841484623E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.7910852640204E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 1.2592459809505E-03 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = -7.8459627031602E-08 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 4.1887217718426E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 5.8095570939724E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 4.7068798562882E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.6646659914839E-02 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -5.7734502834716E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 2.3805595463683E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.6754840769927E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.7910920427276E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -3413,56 +3729,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 2.8601586252076E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -1.1790746834423E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 8.3465216296979E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 4.8723485449356E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 3.5586803095466E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 1.0162420413776E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.4358287169698E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -2.8585188221003E-05 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.8243443260916E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 2.3296048721392E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.4635119899017E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.4656835340795E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.3351103012125E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.8787014520090E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.7267162768911E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 4.1269564901434E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.7370331618600E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -9.3952818148563E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.4170276837047E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.9016218787563E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 6.1110565883582E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 8.2924923729502E+01 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 6.3348262108961E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 9.2512031080606E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 5.9133804723803E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.1194863580427E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.1333213828554E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.7645301284036E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 5.2444003144981E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 4.0010817827750E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 2.3520029023337E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 2.8601586252298E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -1.1790746768753E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 8.3465193682265E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 4.8723501775152E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 3.5586887475654E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 1.0162437059843E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.4358287169715E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -2.8587323273250E-05 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.8243453948721E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 2.3296099533522E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.4635126451403E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.4656835340074E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.3350901854276E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.8787120208579E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 2.7267476089861E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 4.1269583378507E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -3.7370331652677E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -9.3952269552800E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.4170309877623E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.9017182862126E-01 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 6.1110565883538E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 8.2924923731630E+01 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 6.3348268160515E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 9.2512037069250E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 5.9133812479844E+03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 2.3520029025767E-04 (PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.5865511280092E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -5.2160978055631E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 7.4782550891653E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 5.2975228036677E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 9.4910708837404E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 2.4352123100763E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 5.8364588881960E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.9444117292519E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 1.9632714664970E+04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -5.2160833053057E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 7.4782662665805E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 5.2975406292252E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.1194863586719E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.1333213828554E-03 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.7645267419329E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 5.2444029033404E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 4.0010849712694E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.8281255151217E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 4.4168807775233E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.1334657664155E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 3.7440081898850E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.8815382842649E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -3471,61 +3777,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 3 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.7330195636421E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.8954354829596E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.5307699586673E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.9692700734069E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.5551260990632E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.9549721019338E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3541426334886E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0563258149420E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.7229327011523E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0454365968484E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.1807942362659E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.1580071363982E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.1842651929594E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.8628709550663E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.8571166702611E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 4.3281720723919E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.8794910898138E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -6.2999622209610E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0212134252943E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0931911213864E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.2567653351077E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0804099858264E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.1086572271558E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.0071171044440E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.2591065857509E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.4056164449059E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2305491330106E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.8678704943121E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1797914720184E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.2839778506835E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.7330196530366E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.8954370442728E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.5307705008412E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 4.9692711102500E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.5551296418887E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 2.9549720881125E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3541426439100E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0563260594145E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.7229331565291E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0455008901234E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.1807945830782E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.1580068210021E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.1842574781448E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 5.8628727734021E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 9.8571330774787E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 4.3281719856902E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -4.8794910896181E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -6.3000860004813E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.0212133601485E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.0931912683377E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.2567653354525E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.0804099858261E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.1086580728120E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.0071171069854E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.2591066464043E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.4056164113322E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2305491330565E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.8678703050998E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1797914004273E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.2839701606088E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3534,222 +3815,79 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 3 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.3669201924716E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.1044859161291E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 4.4298677047420E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.0773106656034E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 4.1635247565674E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.7589255023389E-03 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -7.6696018957579E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -2.4257758458202E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.0919250474183E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.4102709930251E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 3.3580252063299E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -6.3022530942727E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -5.0647582536085E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.2175079020568E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.9664661364250E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.8403217887554E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 2.5778336019211E-02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 6.3134540158924E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 8.2754690594147E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.2929133444139E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 6.6736943987835E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 1.8303616041171E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.2843768467043E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.9981449856871E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.9233538154671E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.3669206897112E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.1044859160357E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 4.4298689711134E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.0773113530517E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 4.1635260326870E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.7589296121894E-03 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -7.6696035581673E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -2.4257763147920E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.0919252864407E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.4102711768354E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 3.3580252005703E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -6.3022426078956E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -5.0647488943826E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.2175052543283E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.9664618995074E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.8403217887542E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 2.5778336022274E-02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 6.3134542022544E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 8.2754693303969E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.2929136511086E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 6.6736943987788E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 1.8303616039950E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.2843768879963E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.9981451066357E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.9233539388235E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -2.1913906409062E-06 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.4511835026702E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -4.8473771621197E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 5.8048466746614E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 2.9941224468265E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.67348773727483E-14 2.90261189699289E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.3225583384172E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -9.7164417761515E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 1.0225769978841E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.3547147496351E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 4.6955870233223E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.6525914955353E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -7.7558164710746E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.7058586456433E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.5770978274920E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.3559738927868E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.8155819610251E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -1.1046063350771E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.1326146934592E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 8.6232071134137E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 5.7074843819750E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -4.9013878053518E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.0192499280429E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.2430784629911E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 4.0112148264334E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.2678648551838E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 6.8708158163254E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -4.8582208880757E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 4.8284807960610E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.7186398249991E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 2.0636529530782E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.0725338291045E+00 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -4.6560546077110E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 3.9325230144078E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.2109788339722E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.9462039375403E-02 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 6.5621490089926E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -1.0138837336846E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -8.1399146601117E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.4783734617056E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 2.9408491779351E-04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 3.1995690756332E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -8.5801373480400E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 5.9470349868954E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 4.9163311184099E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 3.3297346910623E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 7.1832057302033E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.5971706914585E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -2.9977627075588E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.5709371875012E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 1.4548104634631E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 1.1975103668730E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.6289636243972E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.6825922601594E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 4.4091594384901E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 3.4406649442263E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 3.3768600793216E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.1489661428266E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -1.0012092400767E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.5152706221836E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 8.2231488266977E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 7.3954552788666E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 1.6158582092257E+02 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 8.2831906240809E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.4096614285768E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.3130249707171E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 5.1165634597434E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.2581059971735E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.6440181732838E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 5.5182880813134E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 3.7115043109778E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 2.0172739239432E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.7611465230402E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -5.2698259762994E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 7.8404571707342E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 4.5903629673752E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.1444289666659E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 2.9308670913538E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 7.0792887354945E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.3398506517610E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 2.3722559499022E+04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.86101134502792E-14 2.90261186330363E-03 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 3.17107451408560E-15 1.19107054430584E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 2 (PID.TID 0000.0001) %MON ad_time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.4299344122600E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.4513042329448E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 3.6775873824615E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.6118361313534E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.0896259389758E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.0412028109009E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.5397773250883E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.3694793405887E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2597845988551E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.5489872197428E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.0155689118298E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2305737494632E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.2375919605681E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.5039226482796E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.4727357925491E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.9409169369511E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.2235985110535E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4175885336665E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.2465601625676E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.4254924804487E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.6311036963432E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.2860579354450E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.8636387105006E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1020547040213E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.8437582398282E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.6925132745260E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3525372787196E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -7.3925034155302E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3178429880691E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.4787065325454E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.4299346469333E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -8.4513108749441E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 3.6775884519012E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.6118379359417E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.0896288565822E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 5.0412026470501E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.5397773186471E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.3694795845646E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.2597845073384E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.5489883908948E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.0155715244367E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -4.2305728590273E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -4.2375839459047E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.5039227217924E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.4727361335099E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 2.9409169989713E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -3.2235988570762E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4175735082478E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.2465602529602E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.4254928199368E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.6311036977618E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.2860579354441E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -6.8636398653378E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1020547102847E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.8437583219750E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.6925134014161E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3525372791172E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -7.3924948985222E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.3178429724218E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.4786961160752E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3758,219 +3896,76 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 2 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.8058629741188E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.4854921574271E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 6.3447444007749E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.8190914749464E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 5.6340665878831E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.3246911903191E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.0324016782988E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -3.4599192862959E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.4987727826608E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.9563109383361E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 4.3418619837022E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -3.8701115328303E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -3.2376765984465E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.0284149762010E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.5164896572735E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.0424428560917E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 1.1726836011301E-01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 6.9587276619857E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.0571807210142E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.6910688621668E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.4066609067060E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 2.6531031380956E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.5135436578455E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.2989232958113E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0721910295572E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.8058634929722E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.4854921575823E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 6.3448333164227E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 2.8190929333744E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 5.6340734095579E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.3246911709887E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.0324018540966E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -3.4599754243680E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.4987896990099E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.9563315571050E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 4.3418878935785E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -3.8701097629099E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -3.1567104363277E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.0314649018055E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.4992007898835E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.0424428560901E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 1.1726836013515E-01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 6.9587181615647E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.0571681365489E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.6910471671833E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.4066609067003E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 2.6531031384450E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.5133391265703E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.2986523982299E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0717806897980E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -1.2409960184680E-05 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.6025799383689E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -5.8846888091490E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 5.9379282698699E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 2.4265001618084E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.34395836073986E-14 2.46700349704663E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.1816128291533E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -6.6884648556000E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 9.0787273675488E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.2403632089313E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 4.1723440410273E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.8423324319447E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -9.4792196940080E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.7496899033090E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.6120404571875E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.0460457936525E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.0093473123684E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -1.4336291105498E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.5899269797708E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 9.5329060878167E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 6.3453851884978E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -5.2485260291973E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -2.1170179877272E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.3054966344622E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 3.7526494838674E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.5923291184885E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 7.7299801526077E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -2.8826013890743E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 3.4676657386324E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.5089245112691E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 1.5690703593638E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 8.8211620602606E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -4.0228015541326E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 3.5330901709816E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.3083708592768E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.7276109523209E-02 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.9097013890781E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -1.1463575378661E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -2.7778478970281E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 2.9098041621572E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.0082700262956E-04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 1.8686174984365E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -1.0187928082589E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = -1.6136688734930E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 3.5332754232178E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 3.0935992391607E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 5.9819088563075E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -8.7768923263197E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -3.1152964045197E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 1.5741678139821E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 1.7361430991368E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 5.4364032841878E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.7992603023705E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.0292015219065E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 3.6860411966643E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 1.8944289387472E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 1.5330116325760E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -4.5699396546509E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -7.2493023023914E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.3382650096991E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 5.3762001782871E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 8.3650753844197E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 2.8966786325912E+02 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.3523798248762E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.4119850194307E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.6020452527835E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 2.1418474147669E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -1.3771532923501E-03 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -1.8684169791437E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 4.2972783460738E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 2.9033801644683E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 9.7554763925850E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.9284217856116E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -3.2783110241482E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 6.3078522959349E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 3.4585787996583E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.3552317812377E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 3.4737230447351E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 8.3845242706298E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.7013868180572E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 2.8139264866772E+04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.53963516883005E-14 2.46713078167820E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 1 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.6579687530342E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5972801265528E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.7840513034376E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.1470176120007E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.1275345153040E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.0370129852445E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.0393009894812E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.2063959607249E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1020963845219E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.6127881424866E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.3100352297291E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.7408784836397E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.5523833434121E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.8749715672207E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8377350083865E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4225730156764E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5670192365800E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4165935391584E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.8219089373453E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.2890228625511E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9711809970668E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.4943442088699E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.5433212248812E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1887125189385E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.0300904290190E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.2700685973498E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.4722619583366E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.0782004795563E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5019696733106E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.9086574810689E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 2.6580998700063E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5973428388973E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.7840838251975E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 6.1471746831095E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.1276200643330E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.0367895499919E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.0393019872518E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.2063070151285E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.1020431221978E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.6127974322974E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.3100150592249E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -5.7407712706790E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.5522342486348E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.8749965647183E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.8377523916324E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4225575802599E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5669984572028E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -4.4164254495847E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.8218798021878E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.2890184135430E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.9711818579846E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.4943442086999E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.5433036133497E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.1887047540435E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 6.0300237471736E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.2701209262321E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.4722619572635E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 2.0791541849232E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5019841065204E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.9086537893711E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3979,65 +3974,71 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 1 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 2.9654976867246E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.1595571103254E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.4436447906944E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 5.2933060951848E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 1.0395391935868E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.0198333532912E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.7686735341816E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -7.7106095172217E-02 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 2.9867675989820E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 4.2600832460582E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.9817451386050E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -1.2002060922938E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -9.0958824385210E-03 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.6621154333204E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 3.4779695266803E-03 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2114741841149E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 5.5872259908619E-01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 7.5050169254527E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.5357436736535E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.6949876325574E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.0195235157926E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 3.8826758308374E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.6703553297312E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.4876646748157E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0793062304838E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 2.9650584855589E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.1595752448743E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.4436041688508E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 5.2930809454791E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 1.0395010463764E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.0158600966241E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.7686715692181E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -7.7106502701440E-02 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 2.9867302731399E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 4.2598804581871E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.9817454170430E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -1.2002060815491E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -9.0623328651453E-03 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.6518049326462E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 3.4622327142717E-03 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2114747245293E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 5.5872259922317E-01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 7.5049609414694E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.5356802754279E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.6949223926233E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.0195254733293E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 3.8826758315095E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.6702549029250E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.4875424801824E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0793677499472E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -6.2311578082470E-05 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.6801741509667E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -7.4938511553982E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 5.1261002690846E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 2.3687633768472E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.59941504485062E-13 3.48703690101865E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 1.88737914186277E-13 3.48730860161530E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.5164400374358E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -8.6796736303961E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 9.3548446160791E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7447322198166E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.2191761659918E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.7726257952920E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -9.4518968916142E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.6989638679869E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.3517741596063E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.3675546712343E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.1924096111616E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -1.7315786170508E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.9255980771207E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0216597949637E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 6.6171856194944E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -3.3516743960555E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8050125977281E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.3623638914032E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 3.5535339346675E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.9757681628509E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.5164450392882E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -8.6796227909195E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 9.3546519080037E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7447354341506E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.2192244159159E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.7726249968203E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -9.4518700132897E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.6989580389770E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.3517627124228E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 4.3675518000918E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.1924096110128E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -1.7315793734522E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.9255396794778E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.0216525722587E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 6.6171134004481E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -3.3516743967979E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.8050125964083E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -1.3623638921016E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 3.5535337966476E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 4.9757680330032E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = 4.0416892717045E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -5.0397540611447E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -1.5707481727636E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 2.3343896875701E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.5388446553275E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4066,11 +4067,16 @@ (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 8.1327716440893E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -7.1378155012869E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -3.9434608579440E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.2146212279930E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.7042520097154E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 8.1339629519951E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -7.1378164864151E-02 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -3.8752552960064E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.2113426985166E-02 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 4.1368484840422E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4079,56 +4085,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 5.0637288619545E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -6.9203484777011E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = -3.9107027360203E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.1804569168508E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 3.6455395098333E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 1.7682859659567E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.7484813632383E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -8.6011802055445E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.7749061487501E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 8.2104190176301E-05 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 2.1219995484787E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -3.0016981131227E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -3.1580784890039E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 8.4850022948124E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 5.6303812610415E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 5.9838275824763E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -8.4644900025770E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -8.9054671023255E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 2.3926862192536E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.5877114919196E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 9.0878871200818E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 4.2380100387736E+02 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.5197148397766E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.6028669828002E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.6364856730642E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4251406079021E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -6.4607668302084E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -7.6740164751506E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.9890793554737E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.4336605426740E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 3.8149272359418E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -2.0459094962327E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -2.4085048211376E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 6.3111653458868E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 4.5731980868678E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.5239303332187E+06 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 3.9203361566582E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 9.7466156892547E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 3.0355240857369E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 3.2991503244284E+04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 5.0644706091091E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -6.9203494328155E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = -3.8419863405701E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.1771332933535E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 4.0689287091763E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 1.7685102369008E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.7484816045555E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -8.4520918529698E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.7772648944585E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 8.8916841850069E-05 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 2.1233702848936E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -3.0016983532388E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -3.0141829209218E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 8.3650799056229E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 5.9359818741325E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 5.9876929227747E-01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -8.4644906796804E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -8.4996959183010E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 2.3588692987597E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.6738878240091E+00 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 9.0878871360303E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = 4.2380100395067E+02 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.5272504299347E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.6252914616750E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.6803600481705E+04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 3.8150684045508E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -2.0459096598919E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -2.2784015211865E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 6.1694086878474E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 4.7516409045431E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 6.4253783655593E-06 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -3.4457425850812E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -3.8373078251562E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.0390583053217E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 8.0027636287042E-06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 7.5819995127404E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 1.9030895752076E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 5.0436264788361E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 1.4795082175575E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 1.7415907085141E+04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -4140,61 +4136,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 0 (PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.1093993972238E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.8781191319619E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.1231189882191E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.7384932024375E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.4898910802774E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1844482494132E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.2184289643526E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.4760715369978E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.8837995602716E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1473608815443E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0609112179601E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3043026092495E+01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.3184556158705E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.7807557806572E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2393928418836E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.1091290669783E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -6.8777117039813E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.1243588709478E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 3.7383801301992E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.4897521553077E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1844647208282E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -4.2184283859895E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 3.4761771548478E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 2.8838693397303E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.1473607754188E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.0608753560445E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3043006842123E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.3184628088638E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.7807808962175E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.2394112608147E-02 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3542863690917E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.3471057486099E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.4165784952097E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.7627062140881E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.4325842194323E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3541251348925E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3664764864970E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.4632473081972E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5839850285214E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.1366091875169E+01 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.3542852402892E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.3471047116412E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.4165301689887E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.7627073983907E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.4325794567346E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.3541245351192E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.3664758391772E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -8.4622398803711E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.5839851298406E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.1366069040788E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4203,36 +4174,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 0 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 8.2339452620883E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -9.7976192338978E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 6.2258269041650E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.8661968606409E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 3.4727167486927E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 4.4547206735291E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -4.8341105480241E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -2.7248520470064E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.0571491291808E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.7425224343389E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 5.3656791168343E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -8.6933966555777E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -1.3945445960883E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.2826997998208E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.0109568396522E-02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2976487804059E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 1.6859018033677E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 7.7876625964341E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.5924300068662E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.7177019911355E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.3298389714701E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 4.9535430158373E-02 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.7536271661962E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.5206856622099E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0781363510758E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 8.2339788735569E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -9.7976549245192E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 6.2259444304288E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.8661697579956E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 3.4726133119810E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 4.4582877782814E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -4.8341050623739E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -2.7248397103097E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.0571232219170E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.7425377243481E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 5.3657098216571E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -8.5119813661009E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -1.3744797823572E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.2456478124227E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.0049047972719E-02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2976452845961E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 1.6859018038587E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 7.7875688417644E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 9.5923214236354E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 5.7176669392432E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 8.3295055582453E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 4.9535430117585E-02 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 2.7535611780629E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.5205998684673E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.0780896155857E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -1.8751695827195E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.4325496796891E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -9.4343935188484E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 3.9658206290292E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 3.1672915806816E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4260,121 +4231,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.33146835171283E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.18238752122579E-14 1.20922192376663E+00 - cg2d: Sum(rhs),rhsMax = 9.60689860995956E-15 1.20418221389263E+00 - cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 1.20130971808972E+00 - cg2d: Sum(rhs),rhsMax = 1.57339419271096E-14 1.19937129074649E+00 - cg2d: Sum(rhs),rhsMax = 1.82770465428916E-14 1.19526473366979E+00 - cg2d: Sum(rhs),rhsMax = 1.59074142747073E-14 1.18711121005875E+00 - cg2d: Sum(rhs),rhsMax = 1.91166527052644E-15 1.17436132841480E+00 - cg2d: Sum(rhs),rhsMax = -3.43128303548212E-15 1.15770945362643E+00 - cg2d: Sum(rhs),rhsMax = -2.17187379192296E-15 1.13857597173624E+00 - cg2d: Sum(rhs),rhsMax = 1.88044024795886E-15 1.11856897456709E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.07656938919121E-14 1.20922192376663E+00 + cg2d: Sum(rhs),rhsMax = 8.25034485174569E-15 1.20418221389254E+00 + cg2d: Sum(rhs),rhsMax = 1.23442922550510E-14 1.20130971808961E+00 + cg2d: Sum(rhs),rhsMax = 1.33643096589253E-14 1.19937129074609E+00 + cg2d: Sum(rhs),rhsMax = 1.60704782814491E-14 1.19526473366957E+00 + cg2d: Sum(rhs),rhsMax = 1.45161660469739E-14 1.18711121005776E+00 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 1.17436132841315E+00 + cg2d: Sum(rhs),rhsMax = -3.46944695195361E-15 1.15770945362391E+00 + cg2d: Sum(rhs),rhsMax = -4.10782519111308E-15 1.13857597173370E+00 + cg2d: Sum(rhs),rhsMax = -5.55111512312578E-17 1.11856897456555E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304656022D+04 - --> f_salt = 0.150853010354419D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172675D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571034948D-01 -(PID.TID 0000.0001) --> fc = 0.102389008218883D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957659442E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304656477D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010421122D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058173137D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900570937605D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008235645D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737318312D+05 -(PID.TID 0000.0001) global fc = 0.102389008218883D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008218883E+04 +(PID.TID 0000.0001) local fc = 0.102389008235645D+05 +(PID.TID 0000.0001) global fc = 0.102389008235645D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008235645E+04 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4383,127 +4276,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.27595720048157E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 9.79771819231701E-15 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 8.33708102554453E-15 1.20418221389264E+00 - cg2d: Sum(rhs),rhsMax = 9.36056787637085E-15 1.20130971808976E+00 - cg2d: Sum(rhs),rhsMax = 1.26565424807268E-14 1.19937129074657E+00 - cg2d: Sum(rhs),rhsMax = 1.56090418368393E-14 1.19526473366996E+00 - cg2d: Sum(rhs),rhsMax = 1.64555868931160E-14 1.18711121005907E+00 - cg2d: Sum(rhs),rhsMax = 6.03683769639929E-16 1.17436132841456E+00 - cg2d: Sum(rhs),rhsMax = -4.23272528138341E-15 1.15770945362668E+00 - cg2d: Sum(rhs),rhsMax = -5.06886199680423E-15 1.13857597173670E+00 - cg2d: Sum(rhs),rhsMax = 8.53483950180589E-16 1.11856897456777E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.05020159235636E-14 1.20922192376665E+00 + cg2d: Sum(rhs),rhsMax = 1.14075415780235E-14 1.20418221389252E+00 + cg2d: Sum(rhs),rhsMax = 1.21777588013572E-14 1.20130971809000E+00 + cg2d: Sum(rhs),rhsMax = 1.70835567914196E-14 1.19937129074702E+00 + cg2d: Sum(rhs),rhsMax = 2.05807593189888E-14 1.19526473367072E+00 + cg2d: Sum(rhs),rhsMax = 1.94011473553246E-14 1.18711121006000E+00 + cg2d: Sum(rhs),rhsMax = 1.88737914186277E-15 1.17436132841649E+00 + cg2d: Sum(rhs),rhsMax = -3.52495810318487E-15 1.15770945362849E+00 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 1.13857597173857E+00 + cg2d: Sum(rhs),rhsMax = 6.80011602582908E-16 1.11856897457025E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304655921D+04 - --> f_salt = 0.150853010339597D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172572D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571056571D-01 -(PID.TID 0000.0001) --> fc = 0.102389008217380D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957327997E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304655465D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010272894D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058172109D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900571153906D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008220618D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737316809D+05 -(PID.TID 0000.0001) global fc = 0.102389008217380D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008217380E+04 +(PID.TID 0000.0001) local fc = 0.102389008220618D+05 +(PID.TID 0000.0001) global fc = 0.102389008220618D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008220618E+04 grad-res ------------------------------- - grad-res 0 1 6 8 1 1 1 1 1.02389008218E+04 1.02389008219E+04 1.02389008217E+04 - grad-res 0 1 1 10 0 1 1 1 7.51334029788E-04 7.51324478188E-04 1.27128545359E-05 + grad-res 0 1 6 8 1 1 1 1 1.02389008218E+04 1.02389008236E+04 1.02389008221E+04 + grad-res 0 1 1 10 0 1 1 1 7.51334030289E-04 7.51335392124E-04 -1.81255621046E-06 (PID.TID 0000.0001) ADM ref_cost_function = 1.02389008218131E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 7.51334029787827E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 7.51324478187598E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.51334030288857E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.51335392124020E-04 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 11 300 2 @@ -4518,121 +4333,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.38697950294409E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.13208054042246E-14 1.20922192376663E+00 - cg2d: Sum(rhs),rhsMax = 1.06789577181132E-14 1.20418221389262E+00 - cg2d: Sum(rhs),rhsMax = 1.17163223567474E-14 1.20130971808972E+00 - cg2d: Sum(rhs),rhsMax = 1.72153957755938E-14 1.19937129074648E+00 - cg2d: Sum(rhs),rhsMax = 2.08930095446647E-14 1.19526473366978E+00 - cg2d: Sum(rhs),rhsMax = 1.81660242404291E-14 1.18711121005873E+00 - cg2d: Sum(rhs),rhsMax = 1.17614251671228E-15 1.17436132841480E+00 - cg2d: Sum(rhs),rhsMax = -3.17454396103756E-15 1.15770945362639E+00 - cg2d: Sum(rhs),rhsMax = -4.24313362223927E-15 1.13857597173622E+00 - cg2d: Sum(rhs),rhsMax = 2.06432093641240E-15 1.11856897456707E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.07917147440517E-14 1.20922192376662E+00 + cg2d: Sum(rhs),rhsMax = 1.03042574473022E-14 1.20418221389252E+00 + cg2d: Sum(rhs),rhsMax = 1.43079992298567E-14 1.20130971808956E+00 + cg2d: Sum(rhs),rhsMax = 1.74860126378462E-14 1.19937129074605E+00 + cg2d: Sum(rhs),rhsMax = 1.85129689356245E-14 1.19526473366944E+00 + cg2d: Sum(rhs),rhsMax = 1.58761892521397E-14 1.18711121005763E+00 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-16 1.17436132841299E+00 + cg2d: Sum(rhs),rhsMax = -4.63518112781003E-15 1.15770945362375E+00 + cg2d: Sum(rhs),rhsMax = -3.94129173741931E-15 1.13857597173350E+00 + cg2d: Sum(rhs),rhsMax = 9.02056207507940E-16 1.11856897456536E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304656015D+04 - --> f_salt = 0.150853010354177D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172668D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571034000D-01 -(PID.TID 0000.0001) --> fc = 0.102389008218857D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957620510E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304656408D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010418697D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058173068D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900570928129D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008235388D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737318286D+05 -(PID.TID 0000.0001) global fc = 0.102389008218857D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008218857E+04 +(PID.TID 0000.0001) local fc = 0.102389008235388D+05 +(PID.TID 0000.0001) global fc = 0.102389008235388D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008235388E+04 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4641,127 +4378,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.27595720048157E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.02730324247347E-14 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 8.92688700737665E-15 1.20418221389264E+00 - cg2d: Sum(rhs),rhsMax = 9.53057077701658E-15 1.20130971808977E+00 - cg2d: Sum(rhs),rhsMax = 1.29653232594507E-14 1.19937129074657E+00 - cg2d: Sum(rhs),rhsMax = 1.47139245232353E-14 1.19526473366997E+00 - cg2d: Sum(rhs),rhsMax = 1.20146947946154E-14 1.18711121005909E+00 - cg2d: Sum(rhs),rhsMax = -2.21003770839445E-15 1.17436132841458E+00 - cg2d: Sum(rhs),rhsMax = -8.46892000971877E-15 1.15770945362670E+00 - cg2d: Sum(rhs),rhsMax = -9.15240105925363E-15 1.13857597173672E+00 - cg2d: Sum(rhs),rhsMax = -3.85108611666851E-15 1.11856897456779E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.59514632006130E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.09270231751779E-14 1.20922192376665E+00 + cg2d: Sum(rhs),rhsMax = 1.11577413974828E-14 1.20418221389251E+00 + cg2d: Sum(rhs),rhsMax = 1.25177646026486E-14 1.20130971809002E+00 + cg2d: Sum(rhs),rhsMax = 1.54876111935209E-14 1.19937129074711E+00 + cg2d: Sum(rhs),rhsMax = 1.59039448277554E-14 1.19526473367089E+00 + cg2d: Sum(rhs),rhsMax = 1.37390099297363E-14 1.18711121006016E+00 + cg2d: Sum(rhs),rhsMax = -1.02695629777827E-15 1.17436132841667E+00 + cg2d: Sum(rhs),rhsMax = -5.19029264012261E-15 1.15770945362871E+00 + cg2d: Sum(rhs),rhsMax = -5.44009282066327E-15 1.13857597173876E+00 + cg2d: Sum(rhs),rhsMax = -9.99200722162641E-16 1.11856897457045E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304655927D+04 - --> f_salt = 0.150853010339839D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172579D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571057519D-01 -(PID.TID 0000.0001) --> fc = 0.102389008217406D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957366929E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304655533D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010275318D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058172178D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900571163381D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008220874D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737316835D+05 -(PID.TID 0000.0001) global fc = 0.102389008217406D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008217406E+04 +(PID.TID 0000.0001) local fc = 0.102389008220874D+05 +(PID.TID 0000.0001) global fc = 0.102389008220874D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008220874E+04 grad-res ------------------------------- - grad-res 0 2 7 8 1 1 1 1 1.02389008218E+04 1.02389008219E+04 1.02389008217E+04 - grad-res 0 2 2 11 0 1 1 1 7.25708600315E-04 7.25685822545E-04 3.13869378246E-05 + grad-res 0 2 7 8 1 1 1 1 1.02389008218E+04 1.02389008235E+04 1.02389008221E+04 + grad-res 0 2 2 11 0 1 1 1 7.25708601682E-04 7.25708559912E-04 5.75572167705E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.02389008218131E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 7.25708600315336E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 7.25685822544619E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 7.25708601681931E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 7.25708559912164E-04 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 12 300 3 @@ -4776,121 +4435,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.33146835171283E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.24275589818978E-14 1.20922192376663E+00 - cg2d: Sum(rhs),rhsMax = 8.31973379078477E-15 1.20418221389262E+00 - cg2d: Sum(rhs),rhsMax = 7.55645546135497E-15 1.20130971808969E+00 - cg2d: Sum(rhs),rhsMax = 9.72139035937403E-15 1.19937129074643E+00 - cg2d: Sum(rhs),rhsMax = 1.06928355059210E-14 1.19526473366996E+00 - cg2d: Sum(rhs),rhsMax = 9.64506252643105E-15 1.18711121005865E+00 - cg2d: Sum(rhs),rhsMax = -5.95704041650436E-15 1.17436132841466E+00 - cg2d: Sum(rhs),rhsMax = -1.04360964314765E-14 1.15770945362624E+00 - cg2d: Sum(rhs),rhsMax = -9.73179870022989E-15 1.13857597173602E+00 - cg2d: Sum(rhs),rhsMax = -3.60128593612785E-15 1.11856897456693E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.12947845520850E-14 1.20922192376660E+00 + cg2d: Sum(rhs),rhsMax = 9.57220414044002E-15 1.20418221389243E+00 + cg2d: Sum(rhs),rhsMax = 1.03250741290140E-14 1.20130971808933E+00 + cg2d: Sum(rhs),rhsMax = 1.65839564303383E-14 1.19937129074566E+00 + cg2d: Sum(rhs),rhsMax = 1.88321580552042E-14 1.19526473366856E+00 + cg2d: Sum(rhs),rhsMax = 1.45994327738208E-14 1.18711121005656E+00 + cg2d: Sum(rhs),rhsMax = -1.49880108324396E-15 1.17436132841174E+00 + cg2d: Sum(rhs),rhsMax = -7.46624984060418E-15 1.15770945362249E+00 + cg2d: Sum(rhs),rhsMax = -6.53643805748061E-15 1.13857597173154E+00 + cg2d: Sum(rhs),rhsMax = -6.38378239159465E-16 1.11856897456302E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304656047D+04 - --> f_salt = 0.150853010356594D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172702D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571031115D-01 -(PID.TID 0000.0001) --> fc = 0.102389008219105D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957603074E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304656735D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010442871D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058173410D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900570899283D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008237872D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737318534D+05 -(PID.TID 0000.0001) global fc = 0.102389008219105D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008219105E+04 +(PID.TID 0000.0001) local fc = 0.102389008237872D+05 +(PID.TID 0000.0001) global fc = 0.102389008237872D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008237872E+04 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4899,127 +4480,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.33146835171283E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.06893660589691E-14 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 8.17748646575467E-15 1.20418221389265E+00 - cg2d: Sum(rhs),rhsMax = 1.27849120179491E-14 1.20130971808987E+00 - cg2d: Sum(rhs),rhsMax = 1.48214773787458E-14 1.19937129074663E+00 - cg2d: Sum(rhs),rhsMax = 1.56853696697823E-14 1.19526473367005E+00 - cg2d: Sum(rhs),rhsMax = 1.08801856413265E-14 1.18711121005916E+00 - cg2d: Sum(rhs),rhsMax = -2.22044604925031E-15 1.17436132841483E+00 - cg2d: Sum(rhs),rhsMax = -8.30932544992891E-15 1.15770945362692E+00 - cg2d: Sum(rhs),rhsMax = -7.04991620636974E-15 1.13857597173652E+00 - cg2d: Sum(rhs),rhsMax = -5.10008701937181E-15 1.11856897456792E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.59514632006130E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.05766090330306E-14 1.20922192376667E+00 + cg2d: Sum(rhs),rhsMax = 1.04603825601401E-14 1.20418221389280E+00 + cg2d: Sum(rhs),rhsMax = 1.12757025938492E-14 1.20130971809021E+00 + cg2d: Sum(rhs),rhsMax = 1.67227343084164E-14 1.19937129074755E+00 + cg2d: Sum(rhs),rhsMax = 1.91235915991683E-14 1.19526473367165E+00 + cg2d: Sum(rhs),rhsMax = 1.73472347597681E-14 1.18711121006128E+00 + cg2d: Sum(rhs),rhsMax = 2.88657986402541E-15 1.17436132841795E+00 + cg2d: Sum(rhs),rhsMax = -1.38777878078145E-15 1.15770945363001E+00 + cg2d: Sum(rhs),rhsMax = -2.56739074444567E-15 1.13857597174045E+00 + cg2d: Sum(rhs),rhsMax = 3.44169137633799E-15 1.11856897457237E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304655894D+04 - --> f_salt = 0.150853010337422D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172544D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571060404D-01 -(PID.TID 0000.0001) --> fc = 0.102389008217157D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957384362E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304655206D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010251145D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058171836D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900571192222D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008218390D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737316586D+05 -(PID.TID 0000.0001) global fc = 0.102389008217157D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008217157E+04 +(PID.TID 0000.0001) local fc = 0.102389008218390D+05 +(PID.TID 0000.0001) global fc = 0.102389008218390D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008218390E+04 grad-res ------------------------------- - grad-res 0 3 8 8 1 1 1 1 1.02389008218E+04 1.02389008219E+04 1.02389008217E+04 - grad-res 0 3 3 12 0 1 1 1 9.74126484149E-04 9.74132490228E-04 -6.16560436351E-06 + grad-res 0 3 8 8 1 1 1 1 1.02389008218E+04 1.02389008238E+04 1.02389008218E+04 + grad-res 0 3 3 12 0 1 1 1 9.74126492005E-04 9.74123395281E-04 3.17897561919E-06 (PID.TID 0000.0001) ADM ref_cost_function = 1.02389008218131E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 9.74126484149429E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 9.74132490227930E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 9.74126492005281E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 9.74123395280913E-04 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 13 300 4 @@ -5034,121 +4537,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.27595720048157E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.18273446592099E-14 1.20922192376663E+00 - cg2d: Sum(rhs),rhsMax = 7.60155827173037E-15 1.20418221389260E+00 - cg2d: Sum(rhs),rhsMax = 1.13520304267922E-14 1.20130971808965E+00 - cg2d: Sum(rhs),rhsMax = 1.53280166337311E-14 1.19937129074635E+00 - cg2d: Sum(rhs),rhsMax = 1.90680804479371E-14 1.19526473366984E+00 - cg2d: Sum(rhs),rhsMax = 1.68025315883114E-14 1.18711121005849E+00 - cg2d: Sum(rhs),rhsMax = 1.83880688453542E-15 1.17436132841450E+00 - cg2d: Sum(rhs),rhsMax = -6.31439345255558E-15 1.15770945362630E+00 - cg2d: Sum(rhs),rhsMax = -8.43769498715119E-15 1.13857597173578E+00 - cg2d: Sum(rhs),rhsMax = -1.57859836313889E-15 1.11856897456659E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.16157083951407E-14 1.20922192376657E+00 + cg2d: Sum(rhs),rhsMax = 1.01654795692241E-14 1.20418221389227E+00 + cg2d: Sum(rhs),rhsMax = 1.37528877175441E-14 1.20130971808899E+00 + cg2d: Sum(rhs),rhsMax = 1.52655665885959E-14 1.19937129074491E+00 + cg2d: Sum(rhs),rhsMax = 1.68198788230711E-14 1.19526473366775E+00 + cg2d: Sum(rhs),rhsMax = 1.44606548957427E-14 1.18711121005455E+00 + cg2d: Sum(rhs),rhsMax = -1.27675647831893E-15 1.17436132840973E+00 + cg2d: Sum(rhs),rhsMax = -8.02136135291676E-15 1.15770945362062E+00 + cg2d: Sum(rhs),rhsMax = -9.97812943381859E-15 1.13857597172977E+00 + cg2d: Sum(rhs),rhsMax = -4.63518112781003E-15 1.11856897456049E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304656067D+04 - --> f_salt = 0.150853010360005D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172723D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571023315D-01 -(PID.TID 0000.0001) --> fc = 0.102389008219451D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957695684E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304656935D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010476976D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058173624D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900570821379D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008241324D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737318880D+05 -(PID.TID 0000.0001) global fc = 0.102389008219451D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008219451E+04 +(PID.TID 0000.0001) local fc = 0.102389008241324D+05 +(PID.TID 0000.0001) global fc = 0.102389008241324D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008241324E+04 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5157,127 +4582,49 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.27595720048157E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 9.39873179284234E-15 1.20922192376664E+00 - cg2d: Sum(rhs),rhsMax = 1.07344688693445E-14 1.20418221389270E+00 - cg2d: Sum(rhs),rhsMax = 1.12652942529934E-14 1.20130971808985E+00 - cg2d: Sum(rhs),rhsMax = 1.71182512609391E-14 1.19937129074678E+00 - cg2d: Sum(rhs),rhsMax = 1.82978632246034E-14 1.19526473367017E+00 - cg2d: Sum(rhs),rhsMax = 1.27502175484295E-14 1.18711121005931E+00 - cg2d: Sum(rhs),rhsMax = -2.29677388219329E-15 1.17436132841463E+00 - cg2d: Sum(rhs),rhsMax = -7.21644966006352E-15 1.15770945362663E+00 - cg2d: Sum(rhs),rhsMax = -6.89726054048379E-15 1.13857597173699E+00 - cg2d: Sum(rhs),rhsMax = -4.24660306919122E-15 1.11856897456827E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.53963516883005E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.17111181863194E-14 1.20922192376670E+00 + cg2d: Sum(rhs),rhsMax = 1.02695629777827E-14 1.20418221389277E+00 + cg2d: Sum(rhs),rhsMax = 1.16018306073329E-14 1.20130971809069E+00 + cg2d: Sum(rhs),rhsMax = 1.30173649637300E-14 1.19937129074835E+00 + cg2d: Sum(rhs),rhsMax = 1.42802436542411E-14 1.19526473367291E+00 + cg2d: Sum(rhs),rhsMax = 1.41275879883551E-14 1.18711121006337E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 1.17436132841984E+00 + cg2d: Sum(rhs),rhsMax = -6.46704911844154E-15 1.15770945363187E+00 + cg2d: Sum(rhs),rhsMax = -5.96744875736022E-15 1.13857597174333E+00 + cg2d: Sum(rhs),rhsMax = 2.06779038336435E-15 1.11856897457526E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304655874D+04 - --> f_salt = 0.150853010334011D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172523D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571068195D-01 -(PID.TID 0000.0001) --> fc = 0.102389008216812D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957291755E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304655007D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010217039D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058171622D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900571270119D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008214938D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737316241D+05 -(PID.TID 0000.0001) global fc = 0.102389008216812D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008216812E+04 +(PID.TID 0000.0001) local fc = 0.102389008214938D+05 +(PID.TID 0000.0001) global fc = 0.102389008214938D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008214938E+04 grad-res ------------------------------- - grad-res 0 4 9 8 1 1 1 1 1.02389008218E+04 1.02389008219E+04 1.02389008217E+04 - grad-res 0 4 4 13 0 1 1 1 1.31931488659E-03 1.31933120429E-03 -1.23683068303E-05 + grad-res 0 4 9 8 1 1 1 1 1.02389008218E+04 1.02389008241E+04 1.02389008215E+04 + grad-res 0 4 4 13 0 1 1 1 1.31931501568E-03 1.31931574288E-03 -5.51189689668E-07 (PID.TID 0000.0001) ADM ref_cost_function = 1.02389008218131E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.31931488659452E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.31933120428585E-03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.31931501568308E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.31931574287592E-03 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 14 300 5 @@ -5292,121 +4639,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.16493489801906E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.06616104833535E-14 1.20922192376662E+00 - cg2d: Sum(rhs),rhsMax = 7.80278619494368E-15 1.20418221389257E+00 - cg2d: Sum(rhs),rhsMax = 1.03389519168218E-14 1.20130971808958E+00 - cg2d: Sum(rhs),rhsMax = 1.20979615214623E-14 1.19937129074623E+00 - cg2d: Sum(rhs),rhsMax = 1.32290012277991E-14 1.19526473366974E+00 - cg2d: Sum(rhs),rhsMax = 1.04707909009960E-14 1.18711121005824E+00 - cg2d: Sum(rhs),rhsMax = -5.22498710964214E-15 1.17436132841411E+00 - cg2d: Sum(rhs),rhsMax = -1.11230469279633E-14 1.15770945362568E+00 - cg2d: Sum(rhs),rhsMax = -1.11716191852906E-14 1.13857597173547E+00 - cg2d: Sum(rhs),rhsMax = -5.66213742558830E-15 1.11856897456621E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.65065747129256E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.03701769393894E-14 1.20922192376651E+00 + cg2d: Sum(rhs),rhsMax = 8.72218963721139E-15 1.20418221389199E+00 + cg2d: Sum(rhs),rhsMax = 1.10120246255008E-14 1.20130971808836E+00 + cg2d: Sum(rhs),rhsMax = 1.34753319613878E-14 1.19937129074366E+00 + cg2d: Sum(rhs),rhsMax = 1.52655665885959E-14 1.19526473366589E+00 + cg2d: Sum(rhs),rhsMax = 1.24622534514174E-14 1.18711121005259E+00 + cg2d: Sum(rhs),rhsMax = -2.27595720048157E-15 1.17436132840662E+00 + cg2d: Sum(rhs),rhsMax = -7.71605002114484E-15 1.15770945361706E+00 + cg2d: Sum(rhs),rhsMax = -7.53563877964325E-15 1.13857597172636E+00 + cg2d: Sum(rhs),rhsMax = 1.94289029309402E-16 1.11856897455716E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304656055D+04 - --> f_salt = 0.150853010364134D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172711D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571061563D-01 -(PID.TID 0000.0001) --> fc = 0.102389008219861D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957748444E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304656806D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010518270D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058173495D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900571203781D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008245428D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737319290D+05 -(PID.TID 0000.0001) global fc = 0.102389008219861D+05 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008219861E+04 +(PID.TID 0000.0001) local fc = 0.102389008245428D+05 +(PID.TID 0000.0001) global fc = 0.102389008245428D+05 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.02389008245428E+04 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5415,415 +4684,307 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-17 9.91077500670056E-01 - cg2d: Sum(rhs),rhsMax = 2.27595720048157E-15 1.19106833260078E+00 - cg2d: Sum(rhs),rhsMax = 1.11334552688191E-14 1.20922192376665E+00 - cg2d: Sum(rhs),rhsMax = 9.02056207507940E-15 1.20418221389252E+00 - cg2d: Sum(rhs),rhsMax = 1.09218190047500E-14 1.20130971808992E+00 - cg2d: Sum(rhs),rhsMax = 1.24969479209369E-14 1.19937129074686E+00 - cg2d: Sum(rhs),rhsMax = 1.52169943312686E-14 1.19526473367035E+00 - cg2d: Sum(rhs),rhsMax = 1.41414657761629E-14 1.18711121005954E+00 - cg2d: Sum(rhs),rhsMax = -2.48759346455074E-15 1.17436132841491E+00 - cg2d: Sum(rhs),rhsMax = -8.72912853111529E-15 1.15770945362720E+00 - cg2d: Sum(rhs),rhsMax = -9.27383170257201E-15 1.13857597173740E+00 - cg2d: Sum(rhs),rhsMax = -1.24900090270330E-15 1.11856897456854E+00 + cg2d: Sum(rhs),rhsMax = 1.38777878078145E-17 9.91077500670056E-01 + cg2d: Sum(rhs),rhsMax = 2.59514632006130E-15 1.19106833260078E+00 + cg2d: Sum(rhs),rhsMax = 1.08663078535187E-14 1.20922192376673E+00 + cg2d: Sum(rhs),rhsMax = 1.04014019619569E-14 1.20418221389305E+00 + cg2d: Sum(rhs),rhsMax = 1.36834987785051E-14 1.20130971809135E+00 + cg2d: Sum(rhs),rhsMax = 1.81799020282369E-14 1.19937129075009E+00 + cg2d: Sum(rhs),rhsMax = 2.17881268582687E-14 1.19526473367484E+00 + cg2d: Sum(rhs),rhsMax = 2.12330153459561E-14 1.18711121006554E+00 + cg2d: Sum(rhs),rhsMax = 4.55191440096314E-15 1.17436132842201E+00 + cg2d: Sum(rhs),rhsMax = 1.27675647831893E-15 1.15770945363478E+00 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 1.13857597174671E+00 + cg2d: Sum(rhs),rhsMax = 8.11850586757146E-15 1.11856897457806E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.437036304655887D+04 - --> f_salt = 0.150853010329882D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.435998058172536D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.270900571029953D-01 -(PID.TID 0000.0001) --> fc = 0.102389008216402D+05 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.03478957238983E-03 +(PID.TID 0000.0001) --> f_gencost = 0.437036304655136D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.150853010175745D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.435998058171751D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.270900570887704D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.102389008210834D+05 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.102388737315831D+05 -(PID.TID 0000.0001) global fc = 0.102389008216402D+05 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008216402E+04 +(PID.TID 0000.0001) local fc = 0.102389008210834D+05 +(PID.TID 0000.0001) global fc = 0.102389008210834D+05 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.02389008210834E+04 grad-res ------------------------------- - grad-res 0 5 10 8 1 1 1 1 1.02389008218E+04 1.02389008220E+04 1.02389008216E+04 - grad-res 0 5 5 14 0 1 1 1 1.72970302656E-03 1.72972249857E-03 -1.12574297719E-05 + grad-res 0 5 10 8 1 1 1 1 1.02389008218E+04 1.02389008245E+04 1.02389008211E+04 + grad-res 0 5 5 14 0 1 1 1 1.72970792654E-03 1.72971158463E-03 -2.11486054957E-06 (PID.TID 0000.0001) ADM ref_cost_function = 1.02389008218131E+04 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.72970302655650E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.72972249856684E-03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.72970792653937E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.72971158463042E-03 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) EPS = 1.000000E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 1.0238900821813E+04 1.0238900821888E+04 1.0238900821738E+04 -(PID.TID 0000.0001) grdchk output (g): 1 7.5132447818760E-04 7.5133402978783E-04 1.2712854535857E-05 +(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 1 1.0238900821813E+04 1.0238900823564E+04 1.0238900822062E+04 +(PID.TID 0000.0001) grdchk output (g): 1 7.5133539212402E-04 7.5133403028886E-04 -1.8125562104565E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 1.0238900821813E+04 1.0238900821886E+04 1.0238900821741E+04 -(PID.TID 0000.0001) grdchk output (g): 2 7.2568582254462E-04 7.2570860031534E-04 3.1386937824562E-05 +(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 2 1.0238900821813E+04 1.0238900823539E+04 1.0238900822087E+04 +(PID.TID 0000.0001) grdchk output (g): 2 7.2570855991216E-04 7.2570860168193E-04 5.7557216770476E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 1.0238900821813E+04 1.0238900821911E+04 1.0238900821716E+04 -(PID.TID 0000.0001) grdchk output (g): 3 9.7413249022793E-04 9.7412648414943E-04 -6.1656043635061E-06 +(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 3 1.0238900821813E+04 1.0238900823787E+04 1.0238900821839E+04 +(PID.TID 0000.0001) grdchk output (g): 3 9.7412339528091E-04 9.7412649200528E-04 3.1789756191891E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 4 1.0238900821813E+04 1.0238900821945E+04 1.0238900821681E+04 -(PID.TID 0000.0001) grdchk output (g): 4 1.3193312042858E-03 1.3193148865945E-03 -1.2368306830268E-05 +(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 4 1.0238900821813E+04 1.0238900824132E+04 1.0238900821494E+04 +(PID.TID 0000.0001) grdchk output (g): 4 1.3193157428759E-03 1.3193150156831E-03 -5.5118968966816E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 1.0238900821813E+04 1.0238900821986E+04 1.0238900821640E+04 -(PID.TID 0000.0001) grdchk output (g): 5 1.7297224985668E-03 1.7297030265565E-03 -1.1257429771927E-05 +(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 5 1.0238900821813E+04 1.0238900824543E+04 1.0238900821083E+04 +(PID.TID 0000.0001) grdchk output (g): 5 1.7297115846304E-03 1.7297079265394E-03 -2.1148605495735E-06 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 1.7114180976825E-05 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 1.9063579965371E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 56.351432701572776 -(PID.TID 0000.0001) System time: 0.17697300377767533 -(PID.TID 0000.0001) Wall clock time: 56.660053968429565 +(PID.TID 0000.0001) User time: 36.247242292389274 +(PID.TID 0000.0001) System time: 0.34921399736776948 +(PID.TID 0000.0001) Wall clock time: 36.630505084991455 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.14697799645364285 -(PID.TID 0000.0001) System time: 1.09989995835348964E-002 -(PID.TID 0000.0001) Wall clock time: 0.15873003005981445 +(PID.TID 0000.0001) User time: 0.11490400414913893 +(PID.TID 0000.0001) System time: 2.4509999901056290E-002 +(PID.TID 0000.0001) Wall clock time: 0.14132595062255859 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 9.1516087502241135 -(PID.TID 0000.0001) System time: 9.39849968999624252E-002 -(PID.TID 0000.0001) Wall clock time: 9.2660770416259766 +(PID.TID 0000.0001) User time: 5.2613691836595535 +(PID.TID 0000.0001) System time: 0.15654499642550945 +(PID.TID 0000.0001) Wall clock time: 5.4189369678497314 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 45.560083746910095 -(PID.TID 0000.0001) System time: 2.09970287978649139E-002 -(PID.TID 0000.0001) Wall clock time: 45.680495023727417 +(PID.TID 0000.0001) User time: 30.543304145336151 +(PID.TID 0000.0001) System time: 2.9598958790302277E-002 +(PID.TID 0000.0001) Wall clock time: 30.575428485870361 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.27693349123001099 -(PID.TID 0000.0001) System time: 1.49990133941173553E-002 -(PID.TID 0000.0001) Wall clock time: 0.29364180564880371 +(PID.TID 0000.0001) User time: 0.24053213000297546 +(PID.TID 0000.0001) System time: 1.5189960598945618E-002 +(PID.TID 0000.0001) Wall clock time: 0.25577855110168457 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.28493243455886841 -(PID.TID 0000.0001) System time: 1.59990154206752777E-002 -(PID.TID 0000.0001) Wall clock time: 0.30144667625427246 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 8.39872360229492188E-002 -(PID.TID 0000.0001) System time: 2.29959972202777863E-002 -(PID.TID 0000.0001) Wall clock time: 0.11094355583190918 -(PID.TID 0000.0001) No. starts: 420 -(PID.TID 0000.0001) No. stops: 420 +(PID.TID 0000.0001) User time: 0.17138865590095520 +(PID.TID 0000.0001) System time: 8.4720104932785034E-003 +(PID.TID 0000.0001) Wall clock time: 0.18004822731018066 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.00080871582031250E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.20139122009277344E-003 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) User time: 1.0956227779388428E-003 +(PID.TID 0000.0001) System time: 8.0019235610961914E-006 +(PID.TID 0000.0001) Wall clock time: 1.1060237884521484E-003 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.00163435935974121E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.97858428955078125E-003 +(PID.TID 0000.0001) User time: 7.9131305217742920E-002 +(PID.TID 0000.0001) System time: 6.3900649547576904E-004 +(PID.TID 0000.0001) Wall clock time: 7.9812526702880859E-002 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.70099449157714844E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.13224697113037109E-002 +(PID.TID 0000.0001) User time: 2.4612784385681152E-002 +(PID.TID 0000.0001) System time: 2.3302435874938965E-004 +(PID.TID 0000.0001) Wall clock time: 2.4880409240722656E-002 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.679465740919113 -(PID.TID 0000.0001) System time: 1.99900567531585693E-003 -(PID.TID 0000.0001) Wall clock time: 16.719539165496826 +(PID.TID 0000.0001) User time: 9.2602906525135040 +(PID.TID 0000.0001) System time: 5.2309483289718628E-003 +(PID.TID 0000.0001) Wall clock time: 9.2666029930114746 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 1.0358394980430603 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0363726615905762 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) User time: 0.60861897468566895 +(PID.TID 0000.0001) System time: 9.4600021839141846E-004 +(PID.TID 0000.0001) Wall clock time: 0.60992908477783203 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 0.15399587154388428 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.15191459655761719 -(PID.TID 0000.0001) No. starts: 128 -(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) User time: 5.6349515914916992E-002 +(PID.TID 0000.0001) System time: 4.0600076317787170E-004 +(PID.TID 0000.0001) Wall clock time: 5.6781768798828125E-002 +(PID.TID 0000.0001) No. starts: 124 +(PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 10.370474696159363 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 10.391505956649780 -(PID.TID 0000.0001) No. starts: 512 -(PID.TID 0000.0001) No. stops: 512 +(PID.TID 0000.0001) User time: 5.4666038155555725 +(PID.TID 0000.0001) System time: 4.0729492902755737E-003 +(PID.TID 0000.0001) Wall clock time: 5.4712407588958740 +(PID.TID 0000.0001) No. starts: 496 +(PID.TID 0000.0001) No. stops: 496 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.564237952232361 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 11.602206468582153 +(PID.TID 0000.0001) User time: 6.3978495299816132 +(PID.TID 0000.0001) System time: 4.1759908199310303E-003 +(PID.TID 0000.0001) Wall clock time: 6.4025940895080566 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2858046889305115 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2882885932922363 +(PID.TID 0000.0001) User time: 0.77577853202819824 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 0.77587842941284180 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.39294570684432983 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.38922095298767090 +(PID.TID 0000.0001) User time: 0.21536698937416077 +(PID.TID 0000.0001) System time: 1.2993812561035156E-005 +(PID.TID 0000.0001) Wall clock time: 0.21544623374938965 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20895880460739136 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.20703673362731934 +(PID.TID 0000.0001) User time: 0.12377679347991943 +(PID.TID 0000.0001) System time: 1.6037374734878540E-005 +(PID.TID 0000.0001) Wall clock time: 0.12382173538208008 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.73189902305603027 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.74126291275024414 +(PID.TID 0000.0001) User time: 0.43277934193611145 +(PID.TID 0000.0001) System time: 2.3990869522094727E-005 +(PID.TID 0000.0001) Wall clock time: 0.43295335769653320 (PID.TID 0000.0001) No. starts: 248 (PID.TID 0000.0001) No. stops: 248 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 13.217993497848511 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 13.248908042907715 +(PID.TID 0000.0001) User time: 7.7251125276088715 +(PID.TID 0000.0001) System time: 3.9609819650650024E-003 +(PID.TID 0000.0001) Wall clock time: 7.7299373149871826 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.00216674804687500E-003 +(PID.TID 0000.0001) User time: 9.6702575683593750E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.23167037963867188E-003 +(PID.TID 0000.0001) Wall clock time: 9.7370147705078125E-004 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99450683593750000E-004 +(PID.TID 0000.0001) User time: 1.1280775070190430E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.23715400695800781E-003 +(PID.TID 0000.0001) Wall clock time: 1.1544227600097656E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 9.8669528961181641E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.19185447692871094E-003 +(PID.TID 0000.0001) Wall clock time: 9.6964836120605469E-004 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.79195404052734375E-003 +(PID.TID 0000.0001) User time: 1.9521117210388184E-003 +(PID.TID 0000.0001) System time: 2.0001083612442017E-005 +(PID.TID 0000.0001) Wall clock time: 1.8472671508789062E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00326538085937500E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.41048431396484375E-003 +(PID.TID 0000.0001) User time: 1.3438463211059570E-003 +(PID.TID 0000.0001) System time: 9.9986791610717773E-006 +(PID.TID 0000.0001) Wall clock time: 1.3360977172851562E-003 (PID.TID 0000.0001) No. starts: 124 (PID.TID 0000.0001) No. stops: 124 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 2.9339075088500977E-002 +(PID.TID 0000.0001) System time: 6.2688983976840973E-002 +(PID.TID 0000.0001) Wall clock time: 9.2224121093750000E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.49958038330078125E-002 -(PID.TID 0000.0001) System time: 2.99999862909317017E-003 -(PID.TID 0000.0001) Wall clock time: 2.87599563598632813E-002 +(PID.TID 0000.0001) User time: 6.2999725341796875E-003 +(PID.TID 0000.0001) System time: 4.0769875049591064E-003 +(PID.TID 0000.0001) Wall clock time: 1.0380029678344727E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.39963531494140625E-002 -(PID.TID 0000.0001) System time: 3.99900227785110474E-003 -(PID.TID 0000.0001) Wall clock time: 2.78251171112060547E-002 +(PID.TID 0000.0001) User time: 8.1844329833984375E-003 +(PID.TID 0000.0001) System time: 5.9902667999267578E-006 +(PID.TID 0000.0001) Wall clock time: 8.1920623779296875E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 47.003853797912598 -(PID.TID 0000.0001) System time: 6.39900043606758118E-002 -(PID.TID 0000.0001) Wall clock time: 47.178525924682617 +(PID.TID 0000.0001) User time: 30.856361865997314 +(PID.TID 0000.0001) System time: 0.16405700147151947 +(PID.TID 0000.0001) Wall clock time: 31.051539897918701 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.44692897796630859 -(PID.TID 0000.0001) System time: 3.99899482727050781E-003 -(PID.TID 0000.0001) Wall clock time: 0.45106983184814453 +(PID.TID 0000.0001) User time: 0.70381832122802734 +(PID.TID 0000.0001) System time: 7.7381983399391174E-002 +(PID.TID 0000.0001) Wall clock time: 0.78141403198242188 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 46.547928810119629 -(PID.TID 0000.0001) System time: 5.29920011758804321E-002 -(PID.TID 0000.0001) Wall clock time: 46.711598634719849 +(PID.TID 0000.0001) User time: 30.142748832702637 +(PID.TID 0000.0001) System time: 8.4267958998680115E-002 +(PID.TID 0000.0001) Wall clock time: 30.257944822311401 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 7.59801864624023438E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.63790607452392578E-002 +(PID.TID 0000.0001) User time: 0.35181236267089844 +(PID.TID 0000.0001) System time: 3.0000209808349609E-003 +(PID.TID 0000.0001) Wall clock time: 0.35491633415222168 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 44.077308654785156 -(PID.TID 0000.0001) System time: 1.89970284700393677E-002 -(PID.TID 0000.0001) Wall clock time: 44.196892976760864 +(PID.TID 0000.0001) User time: 29.524024009704590 +(PID.TID 0000.0001) System time: 2.5333940982818604E-002 +(PID.TID 0000.0001) Wall clock time: 29.551816940307617 (PID.TID 0000.0001) No. starts: 120 (PID.TID 0000.0001) No. stops: 120 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 2.60019302368164063E-002 -(PID.TID 0000.0001) System time: 7.99899548292160034E-003 -(PID.TID 0000.0001) Wall clock time: 3.60562801361083984E-002 +(PID.TID 0000.0001) User time: 3.8165092468261719E-002 +(PID.TID 0000.0001) System time: 7.9349875450134277E-003 +(PID.TID 0000.0001) Wall clock time: 7.4563741683959961E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.37994194030761719 -(PID.TID 0000.0001) System time: 2.29960009455680847E-002 -(PID.TID 0000.0001) Wall clock time: 0.40523481369018555 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_FORCING [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 4.79841232299804688E-002 -(PID.TID 0000.0001) System time: 1.49979814887046814E-002 -(PID.TID 0000.0001) Wall clock time: 6.28247261047363281E-002 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_SSH [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.00202178955078125E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.87146186828613281E-003 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_HYD [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.32495498657226563 -(PID.TID 0000.0001) System time: 7.99801945686340332E-003 -(PID.TID 0000.0001) Wall clock time: 0.33366894721984863 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "SEAICE_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.64131546020507813E-004 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_INTERNAL_PARAMS [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.08242034912109375E-004 +(PID.TID 0000.0001) User time: 0.22160243988037109 +(PID.TID 0000.0001) System time: 4.7892004251480103E-002 +(PID.TID 0000.0001) Wall clock time: 0.26951003074645996 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.08374786376953125E-005 +(PID.TID 0000.0001) User time: 0.19539165496826172 +(PID.TID 0000.0001) System time: 3.1924054026603699E-002 +(PID.TID 0000.0001) Wall clock time: 0.22733926773071289 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.70363616943359375E-005 +(PID.TID 0000.0001) User time: 2.5948524475097656E-002 +(PID.TID 0000.0001) System time: 1.5957936644554138E-002 +(PID.TID 0000.0001) Wall clock time: 4.1922807693481445E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.99575042724609375E-003 -(PID.TID 0000.0001) System time: 1.99998915195465088E-003 -(PID.TID 0000.0001) Wall clock time: 6.92772865295410156E-003 +(PID.TID 0000.0001) User time: 2.8276443481445312E-003 +(PID.TID 0000.0001) System time: 5.2973628044128418E-005 +(PID.TID 0000.0001) Wall clock time: 2.8934478759765625E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -5874,9 +5035,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 44434 +(PID.TID 0000.0001) // No. barriers = 44676 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 44434 +(PID.TID 0000.0001) // Total barrier spins = 44676 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/results/output_adm.txt b/verification/lab_sea/results/output_adm.txt index a0fc7868f9..2e485fcb5d 100644 --- a/verification/lab_sea/results/output_adm.txt +++ b/verification/lab_sea/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67t +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Fri Dec 11 10:45:44 EST 2020 +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:12:56 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -346,6 +346,8 @@ (PID.TID 0000.0001) > repeatPeriod = 31622400.0, (PID.TID 0000.0001) > exf_iprec = 32, (PID.TID 0000.0001) ># +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 10800., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># ********************* @@ -586,6 +588,9 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) > &SEAICE_PARM02 +(PID.TID 0000.0001) ># currently COST_ICE_TEST is undefined in SEAICE_OPTIONS.h, +(PID.TID 0000.0001) ># so that none of these parameters are used and the cost function +(PID.TID 0000.0001) ># contribution by sea ice is zero (f_ice = 0.) (PID.TID 0000.0001) > mult_ice = 1., (PID.TID 0000.0001) ># choose which seaice cost term you want (PID.TID 0000.0001) > cost_ice_flag = 1, @@ -624,6 +629,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -654,6 +665,9 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; @@ -689,113 +703,108 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) ># doSinglePrecTapelev=.TRUE., -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_theta_file ='xx_theta', -(PID.TID 0000.0001) > xx_salt_file ='xx_salt', -(PID.TID 0000.0001) > xx_siarea_file ='xx_siarea', -(PID.TID 0000.0001) > xx_siheff_file ='xx_siheff', -(PID.TID 0000.0001) > xx_sihsnow_file ='xx_sihsnow', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_hfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_hfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_hfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_hflux_file = 'xx_hfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_sflux_file = 'xx_sfl', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauustartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauustartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauuperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauu_file = 'xx_tauu', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_tauvstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_tauvstartdate2 = 000000, -(PID.TID 0000.0001) > xx_tauvperiod = 864000.0, -(PID.TID 0000.0001) > xx_tauv_file = 'xx_tauv', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_atempstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_atempstartdate2 = 000000, -(PID.TID 0000.0001) > xx_atempperiod = 864000.0, -(PID.TID 0000.0001) > xx_atemp_file = 'xx_atemp', +(PID.TID 0000.0001) ># write control variables into a separate directory +(PID.TID 0000.0001) > ctrlDir = './ctrl_variables', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_aqhstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_aqhstartdate2 = 000000, -(PID.TID 0000.0001) > xx_aqhperiod = 864000.0, -(PID.TID 0000.0001) > xx_aqh_file = 'xx_aqh', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_precipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_precipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_precipperiod = 864000.0, -(PID.TID 0000.0001) > xx_precip_file = 'xx_precip', +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) >#mult_genarr3d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_swflux_file = 'xx_swflux', +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) >#mult_genarr3d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_swdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_swdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_swdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_swdown_file = 'xx_swdown', +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_siarea', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(1) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwfluxstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwfluxstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwfluxperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwflux_file = 'xx_lwflux', +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_siheff', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(2) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_lwdownstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_lwdownstartdate2 = 000000, -(PID.TID 0000.0001) > xx_lwdownperiod = 864000.0, -(PID.TID 0000.0001) > xx_lwdown_file = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_evapstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_evapstartdate2 = 000000, -(PID.TID 0000.0001) > xx_evapperiod = 864000.0, -(PID.TID 0000.0001) > xx_evap_file = 'xx_evap', +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_aqh', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_snowprecipstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_snowprecipstartdate2 = 000000, -(PID.TID 0000.0001) > xx_snowprecipperiod = 864000.0, -(PID.TID 0000.0001) > xx_snowprecip_file = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_precip', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_apressurestartdate1 = 19790101, -(PID.TID 0000.0001) > xx_apressurestartdate2 = 000000, -(PID.TID 0000.0001) > xx_apressureperiod = 864000.0, -(PID.TID 0000.0001) > xx_apressure_file = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_uwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_uwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_uwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_uwind_file = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_file(5) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(5) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(5) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(5) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(5) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_vwindstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_vwindstartdate2 = 000000, -(PID.TID 0000.0001) > xx_vwindperiod = 864000.0, -(PID.TID 0000.0001) > xx_vwind_file = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_file(6) = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(6) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(6) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(6) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(6) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sststartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sststartdate2 = 000000, -(PID.TID 0000.0001) > xx_sstperiod = 864000.0, -(PID.TID 0000.0001) > xx_sst_file = 'xx_sst', +(PID.TID 0000.0001) > xx_gentim2d_file(7) = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(7) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(7) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(7) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(7) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > xx_sssstartdate1 = 19790101, -(PID.TID 0000.0001) > xx_sssstartdate2 = 000000, -(PID.TID 0000.0001) > xx_sssperiod = 864000.0, -(PID.TID 0000.0001) > xx_sss_file = 'xx_sss', +(PID.TID 0000.0001) > xx_gentim2d_file(8) = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(8) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(8) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(8) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(8) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > xx_gentim2d_file(9) = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_weight(9) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(9) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(9) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(9) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, (PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) ># names for ctrl_pack/unpack -(PID.TID 0000.0001) ># ********************* -(PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +==> SYSTEM CALL (from CTRL_READPARMS): > mkdir -p ./ctrl_variables < +(PID.TID 0000.0001) read-write ctrl files from ./ctrl_variables (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -820,14 +829,14 @@ (PID.TID 0000.0001) ># ECCO gradient check (PID.TID 0000.0001) ># ******************* (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) > grdchk_eps = 1.d-3, (PID.TID 0000.0001) ># nbeg = 4, (PID.TID 0000.0001) > iGloPos = 4, (PID.TID 0000.0001) > jGloPos = 8, (PID.TID 0000.0001) > kGloPos = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) > grdchkvarindex = 7, +(PID.TID 0000.0001) > grdchkvarindex = 301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -836,8 +845,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 7 -(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-02 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 (PID.TID 0000.0001) Increment: 1 @@ -853,104 +862,69 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ecco" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) ># ECCO cost function (PID.TID 0000.0001) ># ****************** (PID.TID 0000.0001) > &ECCO_COST_NML -(PID.TID 0000.0001) > data_errfile ='data.err', -(PID.TID 0000.0001) > tbarfile = 'tbar', -(PID.TID 0000.0001) > sbarfile = 'sbar', -(PID.TID 0000.0001) > psbarfile = 'psbar', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > topexstartdate1 = 19790101, -(PID.TID 0000.0001) > topexstartdate2 = 00000, -(PID.TID 0000.0001) > topexperiod = 2635200.0, -(PID.TID 0000.0001) > topexfile = 'labsea_TP_fields', -(PID.TID 0000.0001) > mdtdatfile = 'labsea_TP_mean', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > ersfile = 'labsea_ERS_fields', -(PID.TID 0000.0001) > ersstartdate1 = 19790101, -(PID.TID 0000.0001) > ersstartdate2 = 00000, -(PID.TID 0000.0001) > ersperiod = 2635200.0, -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > sststartdate1 = 19790101, -(PID.TID 0000.0001) > sststartdate2 = 00000, -(PID.TID 0000.0001) > sstdatfile = 'labsea_SST_fields', -(PID.TID 0000.0001) > ssterrfile = 'sigma_sst.bin', -(PID.TID 0000.0001) > tdatfile = 'labsea_Lev.ptmp', -(PID.TID 0000.0001) > temperrfile = 'sigma_theta.bin', -(PID.TID 0000.0001) > sdatfile = 'labsea_Lev.salt', -(PID.TID 0000.0001) > salterrfile = 'sigma_salt.bin', -(PID.TID 0000.0001) > ssh_errfile = 'labsea_ssh.err', -(PID.TID 0000.0001) > geoid_errfile = 'labsea_geoid.err', -(PID.TID 0000.0001) > geoid_covariancefile = ' ', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > hflux_errfile = ' ', -(PID.TID 0000.0001) > sflux_errfile = ' ', -(PID.TID 0000.0001) > tauu_errfile = ' ', -(PID.TID 0000.0001) > tauv_errfile = ' ', -(PID.TID 0000.0001) > atemp_errfile = ' ', -(PID.TID 0000.0001) > aqh_errfile = ' ', -(PID.TID 0000.0001) > precip_errfile = ' ', -(PID.TID 0000.0001) > swflux_errfile = ' ', -(PID.TID 0000.0001) > swdown_errfile = ' ', -(PID.TID 0000.0001) > uwind_errfile = ' ', -(PID.TID 0000.0001) > vwind_errfile = ' ', -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) > whflux0 = 20., -(PID.TID 0000.0001) > wsflux0 = 3.0E-8, -(PID.TID 0000.0001) > wtau0 = 2.0E-2, -(PID.TID 0000.0001) > watemp0 = 0.5, -(PID.TID 0000.0001) > waqh0 = 5.E-4, -(PID.TID 0000.0001) > wprecip0 = 1.E-8, -(PID.TID 0000.0001) > wswflux0 = 20., -(PID.TID 0000.0001) > wswdown0 = 20., -(PID.TID 0000.0001) > wlwflux0 = 20., -(PID.TID 0000.0001) > wlwdown0 = 20., -(PID.TID 0000.0001) > wwind0 = 1.0, -(PID.TID 0000.0001) > wevap0 = 1.0, -(PID.TID 0000.0001) > wsnowprecip0 = 1.0, -(PID.TID 0000.0001) > wapressure0 = 1.0, +(PID.TID 0000.0001) > cost_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta_month', +(PID.TID 0000.0001) > gencost_datafile(1) = 'labsea_Lev.ptmp', +(PID.TID 0000.0001) > gencost_errfile(1) = 'sigma_theta.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > wmean_hflux = 30., -(PID.TID 0000.0001) > wmean_sflux = 1.6E-8, -(PID.TID 0000.0001) > wmean_tau = 0.1, -(PID.TID 0000.0001) > wmean_atemp = 1., -(PID.TID 0000.0001) > wmean_aqh = 1.E-3, -(PID.TID 0000.0001) > wmean_precip = 1.5E-8, -(PID.TID 0000.0001) > wmean_swflux = 20., -(PID.TID 0000.0001) > wmean_swdown = 20., -(PID.TID 0000.0001) > wmean_lwdown = 20., -(PID.TID 0000.0001) > wmean_lwflux = 20., -(PID.TID 0000.0001) > wmean_wind = 2.0, -(PID.TID 0000.0001) > wmean_evap = 1.0, -(PID.TID 0000.0001) > wmean_snowprecip = 1.0, -(PID.TID 0000.0001) > wmean_apressure = 1.0, +(PID.TID 0000.0001) > gencost_avgperiod(2) = 'month', +(PID.TID 0000.0001) > gencost_barfile(2) = 'm_salt_month', +(PID.TID 0000.0001) > gencost_datafile(2) = 'labsea_Lev.salt', +(PID.TID 0000.0001) > gencost_errfile(2) = 'sigma_salt.bin', +(PID.TID 0000.0001) > gencost_name(2) = 'salt', +(PID.TID 0000.0001) > gencost_spmin(2) = 25., +(PID.TID 0000.0001) > gencost_spmax(2) = 40., +(PID.TID 0000.0001) > gencost_spzero(2) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(2)=1, +(PID.TID 0000.0001) > mult_gencost(2) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > mult_hmean = 1., -(PID.TID 0000.0001) > mult_h = 1., -(PID.TID 0000.0001) > mult_temp = 1., -(PID.TID 0000.0001) > mult_salt = 1., -(PID.TID 0000.0001) > mult_sst = 1., -(PID.TID 0000.0001) > mult_hflux = 0., -(PID.TID 0000.0001) > mult_sflux = 0., -(PID.TID 0000.0001) > mult_tauu = 0., -(PID.TID 0000.0001) > mult_tauv = 0., -(PID.TID 0000.0001) > mult_atemp = 0., -(PID.TID 0000.0001) > mult_aqh = 0., -(PID.TID 0000.0001) > mult_precip= 0., -(PID.TID 0000.0001) > mult_swflux= 0., -(PID.TID 0000.0001) > mult_swdown= 0., -(PID.TID 0000.0001) > mult_uwind = 0., -(PID.TID 0000.0001) > mult_vwind = 0., +(PID.TID 0000.0001) > gencost_avgperiod(3) = 'month', +(PID.TID 0000.0001) > gencost_barfile(3) = 'm_sst_month', +(PID.TID 0000.0001) > gencost_datafile(3) = 'labsea_SST_fields', +(PID.TID 0000.0001) > gencost_errfile(3) = 'sigma_sst.bin', +(PID.TID 0000.0001) > gencost_name(3) = 'sst', +(PID.TID 0000.0001) > gencost_startdate1(3) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(3) = 00000, +(PID.TID 0000.0001) > gencost_spmin(3) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(3) = 40., +(PID.TID 0000.0001) > gencost_spzero(3) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(3)=1, +(PID.TID 0000.0001) > mult_gencost(3) = 1., (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > cost_iprec = 64, -(PID.TID 0000.0001) > cost_yftype = 'RL', +(PID.TID 0000.0001) > gencost_avgperiod(4) = 'month', +(PID.TID 0000.0001) > gencost_barfile(4) = 'm_eta_month', +(PID.TID 0000.0001) > gencost_preproc(1,4) = 'mean', +(PID.TID 0000.0001) > gencost_preproc(2,4) = 'offset', +(PID.TID 0000.0001) > gencost_preproc(3,4) = 'mindepth', +(PID.TID 0000.0001) > gencost_preproc_r(3,4) = -200., +(PID.TID 0000.0001) > gencost_datafile(4) = 'labsea_TP_mean_meters', +(PID.TID 0000.0001) > gencost_errfile(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > gencost_name(4) = 'mdt', +(PID.TID 0000.0001) > gencost_startdate1(4) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(4) = 000000, +(PID.TID 0000.0001) > gencost_spmin(4) = -4., +(PID.TID 0000.0001) > gencost_spmax(4) = 4., +(PID.TID 0000.0001) > gencost_spzero(4) = -9999.0, +(PID.TID 0000.0001) > gencost_outputlevel(4)=5, +(PID.TID 0000.0001) > mult_gencost(4) = 1., (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml (PID.TID 0000.0001) ECCO_READPARMS: done (PID.TID 0000.0001) SET_PARMS: done (PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F @@ -1157,6 +1131,9 @@ (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 3.162240000000000E+07 (PID.TID 0000.0001) ; @@ -1217,22 +1194,31 @@ (PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ (PID.TID 0000.0001) 2.700000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ (PID.TID 0000.0001) 1.420000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ (PID.TID 0000.0001) 7.640000000000000E-05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 3.270000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 1.800000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ (PID.TID 0000.0001) 3.460000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ @@ -1336,7 +1322,7 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: defined (PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined -(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined (PID.TID 0000.0001) (PID.TID 0000.0001) Downward shortwave flux starts at -1317600. (PID.TID 0000.0001) Downward shortwave flux period is 2635200. @@ -1372,149 +1358,59 @@ (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 1 90 (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 2 57 (PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 2 36 -(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.err -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Parameter file "data.err" -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) > 0.25 -(PID.TID 0000.0001) > 0.5201 0.2676 -(PID.TID 0000.0001) > 0.5199 0.2224 -(PID.TID 0000.0001) > 0.5201 0.1942 -(PID.TID 0000.0001) > 0.5142 0.1751 -(PID.TID 0000.0001) > 0.4917 0.1452 -(PID.TID 0000.0001) > 0.4707 0.1223 -(PID.TID 0000.0001) > 0.4324 0.1125 -(PID.TID 0000.0001) > 0.3782 0.1078 -(PID.TID 0000.0001) > 0.3103 0.0884 -(PID.TID 0000.0001) > 0.2435 0.0785 -(PID.TID 0000.0001) > 0.1994 0.0777 -(PID.TID 0000.0001) > 0.1582 0.0702 -(PID.TID 0000.0001) > 0.1144 0.0710 -(PID.TID 0000.0001) > 0.0905 0.0599 -(PID.TID 0000.0001) > 0.0659 0.0510 -(PID.TID 0000.0001) > 0.0602 0.0408 -(PID.TID 0000.0001) > 0.0508 0.0399 -(PID.TID 0000.0001) > 0.0498 0.0314 -(PID.TID 0000.0001) > 0.0501 0.0205 -(PID.TID 0000.0001) > 0.0500 0.0199 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) > 0.0500 0.0200 -(PID.TID 0000.0001) +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ECCO configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ECCO version: 0.1.0 +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.ptmp +(PID.TID 0000.0001) model file = m_theta_month +(PID.TID 0000.0001) error file = sigma_theta.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Packages used: -(PID.TID 0000.0001) Calendar version: 0.1.4 -(PID.TID 0000.0001) External Forcing version: 0.1.1 -(PID.TID 0000.0001) Adjoint support version: 0.1.0 -(PID.TID 0000.0001) Optimization version: 2.1.0 +(PID.TID 0000.0001) gencost( 2) = salt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.salt +(PID.TID 0000.0001) model file = m_salt_month +(PID.TID 0000.0001) error file = sigma_salt.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 2 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ALLOW_ECCO_FORWARD_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_DIAGNOSTIC_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_ADJOINT_RUN: NOT defined -(PID.TID 0000.0001) // ALLOW_GRADIENT_CHECK: NOT defined -(PID.TID 0000.0001) // ALLOW_ECCO_OPTIMIZATION: defined -(PID.TID 0000.0001) // ALLOW_NO_DYNAMICS: NOT defined -(PID.TID 0000.0001) // ALLOW_YMDS_TREE: NOT defined -(PID.TID 0000.0001) // ALLOW_STEPPING_CALL: NOT defined -(PID.TID 0000.0001) // ALLOW_NONDIMENSIONAL_CONTROL_IO: defined -(PID.TID 0000.0001) // ALLOW_EGM96_ERROR_COV: NOT defined -(PID.TID 0000.0001) // ALLOW_READ_EGM_DATA: NOT defined -(PID.TID 0000.0001) // ALLOW_SCAT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SIGMAR_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SST_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SALT_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // ALLOW_SSH_COST_CONTRIBUTION: defined -(PID.TID 0000.0001) // APPLY_HFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SFLUX_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_USTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_VSTRESS_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_THETA_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SALT_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SST_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // APPLY_SSH_COST_CONTRIBUTION: NOT defined -(PID.TID 0000.0001) // ALLOW_SPH_PROJECTION: NOT defined -(PID.TID 0000.0001) // ALLOW_THETA0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_SALT0_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ETAN0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_UVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VVEL0_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_HFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_USTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_VSTRESS_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWFLUX_CONTROL: NOT defined -(PID.TID 0000.0001) // ALLOW_SWDOWN_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_ATEMP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AQH_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_UWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_VWIND_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_PRECIP_CONTROL: defined -(PID.TID 0000.0001) // ALLOW_AUTODIFF_TAMC: defined -(PID.TID 0000.0001) // ALLOW_TAMC_CHECKPOINTING: defined +(PID.TID 0000.0001) gencost( 3) = sst +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_SST_fields +(PID.TID 0000.0001) model file = m_sst_month +(PID.TID 0000.0001) error file = sigma_sst.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Generation of adjoint code for the ECCO setup is enabled +(PID.TID 0000.0001) gencost( 4) = mdt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_TP_mean_meters +(PID.TID 0000.0001) model file = m_eta_month +(PID.TID 0000.0001) error file = ones_64b.bin +(PID.TID 0000.0001) preprocess = mean +(PID.TID 0000.0001) preprocess = offset +(PID.TID 0000.0001) preprocess = mindepth +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 5 +(PID.TID 0000.0001) gencost_kLev_select = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO configuration >>> END <<< -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO cost function configuration >>> START <<< +(PID.TID 0000.0001) // ECCO configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) Multipliers for the indivdual cost function contributions: -(PID.TID 0000.0001) -(PID.TID 0000.0001) Net heat flux: 0.000E+00 -(PID.TID 0000.0001) Salt flux: 0.000E+00 -(PID.TID 0000.0001) Zonal wind stress: 0.000E+00 -(PID.TID 0000.0001) Meridional wind stress: 0.000E+00 -(PID.TID 0000.0001) Mean sea surface height: 0.100E+01 -(PID.TID 0000.0001) Sea surface height anomalies: 0.100E+01 -(PID.TID 0000.0001) Temperature Lev.: 0.100E+01 -(PID.TID 0000.0001) Salinity Lev.: 0.100E+01 -(PID.TID 0000.0001) Temperature ini.: 0.000E+00 -(PID.TID 0000.0001) Salinity ini.: 0.000E+00 -(PID.TID 0000.0001) Sea level ini.: 0.000E+00 -(PID.TID 0000.0001) zonal velocity ini.: 0.000E+00 -(PID.TID 0000.0001) merid velocity ini.: 0.000E+00 -(PID.TID 0000.0001) TMI Sea surface temperature: 0.000E+00 -(PID.TID 0000.0001) Sea surface temperature: 0.100E+01 -(PID.TID 0000.0001) Sea surface salinity: 0.000E+00 -(PID.TID 0000.0001) CTD temperature: 0.000E+00 -(PID.TID 0000.0001) CTD salinity: 0.000E+00 -(PID.TID 0000.0001) CTD clim temperature: 0.000E+00 -(PID.TID 0000.0001) CTD clim salinity: 0.000E+00 -(PID.TID 0000.0001) XBT Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Salt: 0.000E+00 -(PID.TID 0000.0001) drifter velocities: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) Ageostrophic bdy flow: 0.000E+00 -(PID.TID 0000.0001) OB North: 0.000E+00 -(PID.TID 0000.0001) OB South: 0.000E+00 -(PID.TID 0000.0001) OB West: 0.000E+00 -(PID.TID 0000.0001) OB East: 0.000E+00 -(PID.TID 0000.0001) -(PID.TID 0000.0001) -(PID.TID 0000.0001) Temperature data are read from: labsea_Lev.ptmp -(PID.TID 0000.0001) Salinity data are read from: labsea_Lev.salt -(PID.TID 0000.0001) using_cost_altim[T=mdt,F=no]: T -(PID.TID 0000.0001) MDT is read from: labsea_TP_mean -(PID.TID 0000.0001) MDT startdate are: 19930101 0 -(PID.TID 0000.0001) MDT enddate are: 20041231 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< (PID.TID 0000.0001) // ======================================================= @@ -1690,7 +1586,7 @@ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ -(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -1713,28 +1609,31 @@ (PID.TID 0000.0001) SEAICEadvSalt = /* advect salinity together with ice */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEmultiDimAdvection = /* multidimadvec */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICEuseFluxForm = /* advection in FV flux form */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ (PID.TID 0000.0001) 2.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ (PID.TID 0000.0001) 2.000000000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ (PID.TID 0000.0001) 2.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ @@ -1799,9 +1698,6 @@ (PID.TID 0000.0001) 2=from net melt-grow>0 by ATM and OCN (PID.TID 0000.0001) 3=from predicted melt by ATM (PID.TID 0000.0001) ; -(PID.TID 0000.0001) SEAICE_tauAreaObsRelax= /* relaxation timescale of sea-ice concentration */ -(PID.TID 0000.0001) -9.990000000000000E+02 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) HO = /* nominal thickness of new ice */ (PID.TID 0000.0001) 5.000000000000000E-01 (PID.TID 0000.0001) ; @@ -1982,22 +1878,22 @@ (PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 7320 +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 6720 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 14 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 8 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 6 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 106 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 @@ -2005,8 +1901,8 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 @@ -2019,17 +1915,17 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 2 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 @@ -2048,10 +1944,350 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 212 -(PID.TID 0000.0001) ctrl-wet 8: atmos 296 +(PID.TID 0000.0001) ctrl-wet 8: atmos 212 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 7320 +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 6720 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 150 120 129 0 (PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 150 120 129 0 @@ -2079,8 +2315,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 15 -(PID.TID 0000.0001) ctrl_init: control vector length: 7320 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 13 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 6720 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -2097,11 +2333,83 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000457 000336 000354 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000221 000213 000204 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_siarea +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_siheff +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_aqh +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_precip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_snowprecip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 5 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0305 +(PID.TID 0000.0001) ncvarindex = 0405 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 6 is in use +(PID.TID 0000.0001) file = xx_lwdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0306 +(PID.TID 0000.0001) ncvarindex = 0406 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 7 is in use +(PID.TID 0000.0001) file = xx_uwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0307 +(PID.TID 0000.0001) ncvarindex = 0407 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 8 is in use +(PID.TID 0000.0001) file = xx_vwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0308 +(PID.TID 0000.0001) ncvarindex = 0408 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 9 is in use +(PID.TID 0000.0001) file = xx_apressure +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0309 +(PID.TID 0000.0001) ncvarindex = 0409 +(PID.TID 0000.0001) period = 00000010 000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -2167,7 +2475,7 @@ (PID.TID 0000.0001) 3.000000000000000E+00, /* K = 22 */ (PID.TID 0000.0001) 2.000000000000000E+00 /* K = 23 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ (PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ (PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ @@ -2189,6 +2497,56 @@ (PID.TID 0000.0001) 3.470000000000000E+01, /* K = 22 */ (PID.TID 0000.0001) 3.469000000000000E+01 /* K = 23 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.023399597669854E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.023810240320856E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.024201435647580E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.024591510588746E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.024969611150069E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.025328017199967E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.025680833282475E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.026050051489947E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.026491970185416E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027036952689552E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.027794852671120E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028814168587807E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.030119722650770E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.031735154401125E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.033628649568903E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.035732830613343E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.037997052952795E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.040366267417616E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.042716568158493E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.045063813536698E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.047393250130134E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.049712998140759E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.052023490263938E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ +(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ +(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ +(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ +(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ +(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ +(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ +(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ +(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ +(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ +(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ +(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ +(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ +(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2343,28 +2701,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -2386,7 +2747,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -2395,10 +2756,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -2573,8 +2934,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -2591,6 +2952,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2924,37 +3288,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ -(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ -(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ -(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ -(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ -(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ -(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ -(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ -(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ -(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ -(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ -(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ -(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ -(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ -(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ -(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ -(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ -(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ -(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ -(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ -(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ -(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ -(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -3356,9 +3689,12 @@ (PID.TID 0000.0001) ; (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etagcm defined by gencost 4 (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -3372,14 +3708,16 @@ (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) whio : write lev 2 rec 1 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.45636844198316E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.42301792150602E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 7.06726344112951E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 +(PID.TID 0000.0001) whio : write lev 2 rec 2 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = 9.86710713135608E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 7.94503351997378E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) // ======================================================= @@ -3417,31 +3755,6 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.3987161889169E-02 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7439402441949E-01 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 5.9923065708940E-03 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3483,33 +3796,38 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -1.25767452008319E-16 1.04090595756729E-03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -7.63278329429795E-17 1.04090595757221E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.7105050222449E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.5286316809944E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 1.5324948221257E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7326165562443E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 7.3712072679521E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.4317521458891E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.1903797072458E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.5917363591163E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.6770561099952E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.2484138724572E-03 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.7105052436395E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -7.5286322893321E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 1.5324931012448E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 3.7326098466137E-02 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 7.3711865467232E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 9.4317541936807E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.1903796930668E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.5917833154019E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.6770578024749E-02 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.2484089890825E-03 (PID.TID 0000.0001) %MON ad_exf_adqnet_max = 4.1205722595081E-04 (PID.TID 0000.0001) %MON ad_exf_adqnet_min = 1.2622407097712E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.1574225176978E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 8.1423906429518E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.1203917242788E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.1574225333937E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 8.1423907880702E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.1203917256559E-05 (PID.TID 0000.0001) %MON ad_exf_adempmr_max = -9.8431582172272E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.6494306602175E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -2.7831838874128E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 9.8342763231418E+00 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 9.3579200975589E-01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -4.6494306602203E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -2.7831841072174E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 9.8342784583822E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 9.3579212469301E-01 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = -2.7069718440844E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -9.4970702481941E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -7.2569475898552E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 1.8879546901366E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 2.5886925177208E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -3518,31 +3836,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.1850469840090E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.3917448119162E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.0253283787135E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.3205620889668E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 2.2831682836791E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 6.0890399968037E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -5.9518985362292E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 1.1155537887645E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.5519515491613E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.7051078316568E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 1.1850471051844E-01 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.3917447260510E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 1.0253273616815E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 2.3205614756976E-02 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 2.2831593916920E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 6.0890415402091E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -5.9518984653339E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 1.1155824082793E-03 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 1.5519538733405E-02 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.7051065286228E-03 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 4.1205722595081E-04 (PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 1.3580705786001E-04 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 1.8805948828597E-04 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 1.4901809202814E-05 (PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 4.5131170447578E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -1.0929829273542E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 8.2095327016470E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 4.2740554513009E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.3293266859917E-05 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 3.1708652346887E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 1.0458356607319E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 1.4480991603518E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 1.1470030972274E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 4.5131170444663E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -1.0929828974486E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 8.2095326604511E-05 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 4.2740554510175E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.3293266852493E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -3551,56 +3874,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 (PID.TID 0000.0001) %MON ad_exf_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 7.2944454925589E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -2.4937080850382E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 2.6857249566985E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.4527187405847E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.6303230605829E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 4.3774184537376E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -7.7034986170094E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -1.8107035806036E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 1.1913661803907E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 1.7582924914161E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 5.0690966640396E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -3.7405899528989E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -5.3724217239486E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 9.6479909096478E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 6.6650518024493E-05 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 1.6548791152697E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -9.5085553132163E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -2.2491201478996E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5414258133682E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 2.7248327473360E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 7.2944454917443E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -2.4937075435667E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 2.6857076936008E-04 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.4527195742964E-03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.6303231956930E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 4.3774184099693E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -7.7034975190131E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -1.8107023055524E-04 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 1.1913659637170E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 1.7582924646494E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 5.0690966621143E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -3.7405899524667E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -5.3724162104553E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 9.6479864589376E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 6.6650441501611E-05 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 1.6548791090865E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -9.5085553249155E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -2.2491190694105E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 3.5414243268130E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 2.7248312751563E-01 (PID.TID 0000.0001) %MON ad_exf_adprecip_max = 1.6188233954989E+05 (PID.TID 0000.0001) %MON ad_exf_adprecip_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.5262894692494E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.3371871386686E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 1.4428680468666E+03 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 1.4802909919876E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -2.8537787112198E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -9.3196258337830E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.3121750347115E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.0652639638651E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 5.6944501047340E-05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 1.5262896890093E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 2.3371873466147E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 1.4428683240061E+03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 5.6944501046819E-05 (PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -3.9970277649550E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -1.2730818754938E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.8781913076471E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.5833144495206E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.6485007740855E+04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -1.2730818916299E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 1.8781913273695E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 1.5833144659284E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 1.4802909919731E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -2.8537787112198E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -9.3196259488637E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.3121750497787E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.0652639772668E-05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.6485007740883E+04 (PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 9.8411895855838E+03 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 2.7826272506353E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 9.8323094678772E+03 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 9.3560485135393E+02 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 2.7826274703960E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 9.8323116026905E+03 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 9.3560496626808E+02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -3609,61 +3922,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 3 (PID.TID 0000.0001) %MON ad_time_secondsf = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.9647647997323E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.2325177782362E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -4.7625484146315E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.1584342909434E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 6.8732361130858E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.4020402194910E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3202548149264E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.0702253080186E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.1650241556314E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1394008216776E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0119013049711E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -7.8126370704160E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.7404615671829E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.3505732876393E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3986464333943E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.4240396466015E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.5239640584276E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.3220850804760E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.8919943804957E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.7494280512660E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.2642121606433E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.4107648600162E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.6979489347178E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.9262782809585E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.8044884162273E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7782483645457E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.6123670246150E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.7372957781324E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5829125462564E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2157605645461E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.9647648378124E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.2325179553310E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -4.7623970215731E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 5.1584373536431E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 6.8732470818721E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 4.4020396545290E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3202548838924E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.0702246389792E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.1650250731684E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.1394077731921E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.0119014031551E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -7.8126234996762E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.7404636133053E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.3505729783969E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 3.3986467616732E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 6.4240398112308E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -7.5239653947258E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.3220884615409E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 1.8919937718778E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.7494272388335E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 4.2642125910055E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -9.4107648600109E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.6979489763833E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.9262782825230E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.8044884174045E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7782484468570E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -5.6123670246637E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.7372956520138E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.5829125362362E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.2157604857840E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3672,223 +3960,79 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 3 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 2.5673340865928E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.7866270653087E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 2.4949969714861E-03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 6.8769280004048E-01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 2.1534868263361E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 5.3443925391429E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -4.7672300366322E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -7.1904854032164E-04 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 7.6832750592191E-01 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 2.7338531572078E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.5445005519426E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -2.5751367193515E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.5734160539847E-02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.0370267581293E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.7155059301405E-02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 4.6218854115924E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.1611573199077E-02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 1.5286337210164E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 2.0735636319785E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 1.5805512612584E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 1.6760683360720E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 2.5782029197750E-03 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 5.5313623613753E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 7.5127835706409E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 5.7474270291087E-01 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 2.5673335181186E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.7866257178409E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 2.4949961177047E-03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 6.8769264253842E-01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 2.1534863556628E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 5.3443921894027E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -4.7672301312565E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -7.1904888032897E-04 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 7.6832746003330E-01 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 2.7338529857402E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 9.5445002022239E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -2.5751357756217E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.5734164422172E-02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.0370266674227E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.7155057721102E-02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 4.6218854115923E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -2.1611536853482E-02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 1.5286337895171E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 2.0735637224455E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 1.5805513468260E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 1.6760683360719E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 2.5782029197746E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 5.5313626106914E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 7.5127838986416E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 5.7474273361602E-01 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -4.4674610818612E-07 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -3.6900243335082E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -1.1857493300690E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 1.4694662716529E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 7.5748105205050E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -1.20094906241874E-14 8.36519713311179E-04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 3.1873285529349E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.0296933363154E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 4.4418449022330E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 8.2972270278638E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 1.1990404488308E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1836744823755E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.5695301758517E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 7.1756565488054E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 6.3094614853101E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 1.1070304947291E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 8.2325393206994E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 1.3447811703095E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 4.6426277169888E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.4841801099829E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.9591367992180E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -1.9788176250611E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -9.1709732507176E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -5.4560319382922E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 1.8593457774613E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 1.8420217128836E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 2.5531950704210E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.0023639421333E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 2.8598965915818E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 5.8649213590311E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 4.1925468424707E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.6727656751534E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.1466612227350E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 1.1853525019605E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 3.5697113659745E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 3.5887560062263E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.4171295020567E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -4.4673643646830E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -2.2607987850245E-05 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 5.9052557405346E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.3547563637812E-04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 2 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 4.2471362451157E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -5.7730419768345E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 3.6021622064820E-04 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 9.1593784357688E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 1.6289779363641E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 6.7505865092270E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -3.2164802872216E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = 7.3800746930692E-04 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 9.3897732136750E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 1.4888108714940E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 5.7312974076693E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -7.4761757364802E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -1.1665948929501E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 2.0052358414270E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 1.7078830227918E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 2.0302536709941E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -1.9103477434257E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -4.3786717742793E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 6.8779856524762E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 4.5187107639394E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 3.2429457030895E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -5.9738479549032E+01 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 3.4535409516686E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 5.9252794442108E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 1.0301136875683E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 2.1907193391488E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -5.7017522652538E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -1.6296070234898E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 2.4960972149998E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.7156814671632E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 8.6442696331445E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -7.9857083357754E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -2.3230759298662E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 3.5526203457612E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.3683882058426E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 1.3762648724134E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 2.9625408200945E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 8.2375679825399E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 2.8377230380572E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 2.7610867262666E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.20875531806064E-14 8.36519728147157E-04 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 1.86656246015104E-15 1.19111923689406E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 2 (PID.TID 0000.0001) %MON ad_time_secondsf = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.2011650595453E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.2637585228719E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.8421915436309E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.4213066882348E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.4404438519584E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.9419511602719E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.7389168595813E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.6345480794108E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.8831439324209E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.1674731256106E-03 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.8623998778324E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3116435903824E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0697186182006E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.0002286735804E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.8745132207492E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.7991314935612E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.0848838085403E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.1584230719083E-03 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3262444455974E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.7669485037113E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.2204530350799E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.4099828926981E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.7458781073978E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.8154346382159E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.1707269036063E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 8.1855266060361E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.4125958951175E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.4797675025480E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.6478342486516E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.8327458686074E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.2011657254136E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.2637603889393E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.8421944522110E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.4213070476638E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.4404443368517E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.9419450879399E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.7389187256729E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.6345473925988E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.8831434109011E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.1674488759798E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.8624002395250E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.3116326208734E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.0697188230006E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.0002300641016E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.8744734696752E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.7991316057894E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.0848838426778E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.1584276775296E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.3262444678618E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 2.7669491452772E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.2204530661057E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.4099828926965E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.7458782195158E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 6.8154346415309E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.1707269067564E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 8.1855269946356E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -8.4125958954379E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.4797671897649E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 5.6478342787789E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.8327456236867E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3897,220 +4041,76 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 2 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.3188045753754E+02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.2313430919086E+02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 7.5273104652398E-02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.8682276398657E+01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 5.9607710461008E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 2.1498965635029E+01 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.8216175133369E+01 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 8.9633529019893E-04 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 4.9353218459303E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.0470300510655E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 3.0892493993196E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -2.1479567094823E+01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.0886276025442E-01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.1042282161165E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 4.9208310384719E-01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 9.2326600179156E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -8.5489597217500E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 2.9670912820061E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 4.0854920380244E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 3.1534201390478E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 3.3481074790243E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 6.8318821598259E-03 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.0873188525247E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.4834890971656E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.1224383211263E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.3188032315743E+02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.2313447184651E+02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 7.5273518833728E-02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.8682278476027E+01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 5.9607719299015E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 2.1498959715382E+01 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.8216175567930E+01 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 8.9705556256216E-04 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 4.9353192000944E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.0470297128622E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 3.0892622252030E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -2.1479526505818E+01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.0877386779953E-01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.1042334002375E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 4.9207979054202E-01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 9.2326600179177E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -8.5489416226010E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 2.9670766490150E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 4.0854720782896E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 3.1534126089116E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 3.3481074790250E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 6.8318821601082E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.0870035474059E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.4830562079476E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.1222410514607E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -4.9082367927618E-06 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -7.2785501989908E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -2.5620517162102E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 2.6823112467053E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 1.0740858277813E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -5.63091240302072E-15 1.48494046553189E-03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.0100613401702E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -6.9467077216480E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 7.3631733809895E-02 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.9419522038620E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.8760436121439E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.1209760625255E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -3.7821156398535E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 2.7820756700843E-02 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.6919679706677E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.9316409270467E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.2387992047580E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 1.1457752923061E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 5.7365143686084E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 4.4875690853023E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 3.4460609552927E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -2.9136576086829E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.3188969064694E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -7.8133032379692E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.3823333418842E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 2.7112594473681E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_adustress_max = 4.2209370323734E-01 -(PID.TID 0000.0001) %MON ad_exf_adustress_min = -3.2071417457319E-03 -(PID.TID 0000.0001) %MON ad_exf_adustress_mean = 2.6209345110218E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 7.6183977171820E-02 -(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 4.8399457507810E-03 -(PID.TID 0000.0001) %MON ad_exf_advstress_max = 2.8813130281297E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_min = -1.9851776359573E-01 -(PID.TID 0000.0001) %MON ad_exf_advstress_mean = -2.8054112877263E-04 -(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 4.7007735595072E-02 -(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 5.8754542840149E-03 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 1.1741117697460E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -6.9417254996329E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -1.4021199887176E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 1.7821208505999E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 1.8969408958917E-04 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON ad_exf_tsnumber = 1 -(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 8.5733724960672E-01 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -5.7068491759011E-01 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = 9.2900148915964E-03 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 1.6562193004981E-01 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 2.9294263663127E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 1.8013892315541E-01 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -3.0830573577959E-01 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -1.4338096205279E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 6.9073270801629E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 6.2668779803559E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 3.3031176597490E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -1.1214044881380E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -1.2117854995871E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 2.3185751724031E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 1.2055490602107E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 9.3220366232025E-01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -2.8725818031846E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -4.3507000316863E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 8.3590260445112E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 3.4029166952385E-01 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 5.1625245762138E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -2.9548851844732E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 7.1026621914393E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.3671722324753E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 1.3962997786227E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 1.2107877094347E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -8.5443565981483E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -1.1476988092717E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 2.6754693203147E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.8063188197467E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 5.5154499882858E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.1966439164278E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -1.9779291109568E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 3.9361500879001E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 2.1751738752768E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 2.6802970168338E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 5.8756156972556E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 1.6049308559861E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 5.1751209691069E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 5.4322610225688E+03 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 -(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -6.80011602582908E-15 1.48479897352216E-03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 1 (PID.TID 0000.0001) %MON ad_time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.3428494679190E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5642729244457E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 8.4291915621150E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8253701722508E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.5296527052884E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1253565464883E+01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.2526026237447E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 7.8947731910417E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.9250618454733E-01 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.7490553072370E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.6474388981238E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.8596912926386E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.4736265962562E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1447829425433E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6975090159770E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1404547364299E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.1188261321544E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.4646694656292E-04 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.2184766240938E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.3477328974021E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0464926693172E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8792419434771E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.7342686245830E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.6014871311487E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9372880776717E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.2173393717764E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2857649067597E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.7265679087843E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.1792720682880E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.6294077828350E-02 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.3429300886013E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -7.5645675416301E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 8.4293911338411E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.8254849572682E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.5296888925680E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1252986062700E+01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -6.2482629848179E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 7.8891373788553E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.9249942115028E-01 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 3.7483463358160E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 4.6478004738771E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.8594962689756E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.4737176445939E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.1448664231844E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.6973363064309E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1404236192431E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.1188008824191E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 5.4656958475368E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.2184484837575E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 3.3476781577539E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0465417254210E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.8792419417022E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.7342655755756E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 8.6014599768627E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 3.9372700406975E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.2173393717856E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2857649067573E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.7265106107294E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.1793690963116E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.6294119702402E-02 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4119,66 +4119,71 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 1 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 3.6174019984303E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.3615780030154E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.1747190714666E+01 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 8.2525134487123E+02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 2.2234982290982E+02 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.2187720624531E+03 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -2.7060025709682E+03 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -4.1126508507436E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 3.7345638078844E+02 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.0790457513233E+02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 5.9965401201438E+02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.6030034769838E+02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = 5.9936908788848E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 9.0840316999620E+01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.2536290018092E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.3188443086120E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -1.1076742121697E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 4.3322951636480E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 6.2237756067561E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 7.3196644979182E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 4.9654859489380E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -2.6648685295626E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.5028708370723E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.0993393869077E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.3588432661732E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 3.6170930758451E+03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -5.3610999305131E+03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.1746709814866E+01 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 8.2529572091653E+02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 2.2239380075204E+02 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.2186942942744E+03 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -2.7068587012203E+03 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = -4.1104226860367E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 3.7352283745270E+02 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.0793569822283E+02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 5.9962286133665E+02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.6027200203853E+02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = 5.9913127086137E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 9.0827358828997E+01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.2534804128499E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.3188084206241E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -1.1076202975390E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 4.3322675498981E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 6.2237273446743E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 7.3197150661039E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 4.9654871117782E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -2.6648632262486E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.5028100440566E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.0992641389214E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.3589613368972E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -3.4785904860395E-05 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.0467929739685E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -4.4225147476198E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 3.1786831934293E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 1.3871663153969E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= - Calling cg2d from S/R CG2D_SAD - cg2d: Sum(rhs),rhsMax = -3.21409565628983E-14 2.03991635197172E-04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.48610029732299E-14 2.04008335971616E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_max = 4.6187699250426E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.8570899246084E+00 -(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 2.1984868235653E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 7.6532910211122E-01 -(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 1.3615877724481E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1237799264583E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.2530978069035E+00 -(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -1.0350492656222E-03 -(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.1216482621052E-01 -(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.0982388771972E-02 -(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6516395077567E-03 -(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 9.5211425952021E-05 -(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.5358352169897E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 6.3101398664152E-04 -(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 4.3138065325693E-05 -(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -3.1040585065866E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.3741789659185E+02 -(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -9.9837096711976E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.7130385616949E+01 -(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.6209623309697E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 4.6185306701524E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -1.8554480449754E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 2.1988687496655E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 7.6524380153337E-01 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 1.3613368032407E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 2.1234603670722E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.2529719979412E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = -1.0342652401626E-03 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 4.1209876523451E-01 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 5.0973067059696E-02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6516395061978E-03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 9.5211425951541E-05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 6.5358105911627E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 6.3101177643315E-04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 4.3137878609645E-05 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = -3.1040585067158E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = -1.3741789630332E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = -9.9837096864973E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 2.7130384410375E+01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 3.6209622534997E+00 +(PID.TID 0000.0001) %MON ad_exf_adqsw_max = -1.2428315554835E-05 +(PID.TID 0000.0001) %MON ad_exf_adqsw_min = -3.8026889235367E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_mean = -1.4887621178329E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_sd = 1.4452810567553E-04 +(PID.TID 0000.0001) %MON ad_exf_adqsw_del2 = 1.0059730253970E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 (PID.TID 0000.0001) // ======================================================= @@ -4197,21 +4202,26 @@ (PID.TID 0000.0001) %MON ad_exf_advstress_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_advstress_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 1.1075953682630E-07 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = -2.5236186714492E-09 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 7.3646433051137E-09 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 2.0017546893794E-08 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 1.6744930878222E-09 (PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 5.6760476372756E-04 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -5.4424245647406E-02 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -2.8811497083721E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 9.2291647856346E-03 -(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.0494299996939E-04 +(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 8.5261498745316E-08 +(PID.TID 0000.0001) %MON ad_exf_adswflux_min = -4.0951922570012E-09 +(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 5.8190758739869E-09 +(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 1.6040562368844E-08 +(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 1.4560936314949E-09 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 5.6768641552386E-04 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = -5.4424251647840E-02 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = -2.8931578037407E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 9.2262465615634E-03 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 3.1970450423108E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 (PID.TID 0000.0001) // ======================================================= @@ -4220,56 +4230,46 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 (PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 8.0519761400811E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -2.0176734519295E-01 -(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = -2.3320341024034E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 4.2806394939734E-02 -(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 4.5777974993333E-03 -(PID.TID 0000.0001) %MON ad_exf_advwind_max = 4.4842109224309E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.2288096602436E-01 -(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -1.0308342614036E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.6212694111841E-02 -(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 2.8684994087988E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 6.4354286158420E-04 -(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.2813976708944E-02 -(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.2182543041937E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 6.2584642885496E-03 -(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 4.1468668804424E-04 -(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 1.8147268355519E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -6.4333144271788E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -6.2551990412112E+00 -(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.7648264282638E+01 -(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.1693748212531E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adlwflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 8.2263488454417E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -3.9151277980175E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 9.7506223359198E+04 -(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.8132281696997E+05 -(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.6709409869757E+04 -(PID.TID 0000.0001) %MON ad_exf_adswflux_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswflux_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 9.9740704128604E-06 -(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -4.9104133204439E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -5.3261658802573E-05 -(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 1.4551695279222E-04 -(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 1.0449524748337E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 5.9221043076359E-05 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.5549642181406E-03 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -1.6698026870397E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 4.6172638399826E-04 -(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 3.3181266201997E-05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.0054745563358E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 9.0236279317869E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 2.6031021489125E+05 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 7.8175091233167E+04 -(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 9.0268040249124E+03 +(PID.TID 0000.0001) %MON ad_exf_aduwind_max = 8.0456768019802E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_min = -2.0171182406600E-01 +(PID.TID 0000.0001) %MON ad_exf_aduwind_mean = -2.3326648861903E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_sd = 4.2784587163621E-02 +(PID.TID 0000.0001) %MON ad_exf_aduwind_del2 = 4.5781286886196E-03 +(PID.TID 0000.0001) %MON ad_exf_advwind_max = 4.4819573112857E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_min = -1.2286924618558E-01 +(PID.TID 0000.0001) %MON ad_exf_advwind_mean = -1.0305783468993E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_sd = 2.6208127438414E-02 +(PID.TID 0000.0001) %MON ad_exf_advwind_del2 = 2.8684824928589E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_max = 6.6302380552904E-04 +(PID.TID 0000.0001) %MON ad_exf_adatemp_min = -2.2813978272893E-02 +(PID.TID 0000.0001) %MON ad_exf_adatemp_mean = -2.2042257140154E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_sd = 6.2604880889067E-03 +(PID.TID 0000.0001) %MON ad_exf_adatemp_del2 = 4.3385274907812E-04 +(PID.TID 0000.0001) %MON ad_exf_adaqh_max = 1.8696611590739E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_min = -6.4333148681970E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_mean = -6.2156398114243E+00 +(PID.TID 0000.0001) %MON ad_exf_adaqh_sd = 1.7653971033859E+01 +(PID.TID 0000.0001) %MON ad_exf_adaqh_del2 = 1.2234212197604E+00 +(PID.TID 0000.0001) %MON ad_exf_adprecip_max = 8.2260965199427E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_min = -3.9149387799765E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_mean = 9.7084740538714E+04 +(PID.TID 0000.0001) %MON ad_exf_adprecip_sd = 1.8121180507266E+05 +(PID.TID 0000.0001) %MON ad_exf_adprecip_del2 = 2.6928720389574E+04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_max = 6.1013747011705E-05 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_min = -1.5549643247369E-03 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_mean = -1.6572871768927E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_sd = 4.6187052806277E-04 +(PID.TID 0000.0001) %MON ad_exf_adlwdown_del2 = 3.5004421086945E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_max = 1.0275999496708E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_min = -2.6188872837673E-04 +(PID.TID 0000.0001) %MON ad_exf_adswdown_mean = -2.7916239080771E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_sd = 7.7787645078080E-05 +(PID.TID 0000.0001) %MON ad_exf_adswdown_del2 = 5.8955064409826E-06 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_max = 4.0054753972691E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_min = 9.0236279318375E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_mean = 2.6031042269420E+05 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_sd = 7.8175408825777E+04 +(PID.TID 0000.0001) %MON ad_exf_adrunoff_del2 = 9.0268047437169E+03 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 (PID.TID 0000.0001) // ======================================================= @@ -4281,61 +4281,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 0 (PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.3722818112038E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.2917160955802E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.0035057804928E-01 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.4226653457145E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.0576397274120E-02 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.7380337318274E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0993761666163E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8445753604117E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.4430786296977E+00 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.9684493706447E-02 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1968789264751E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.7828988651585E+00 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -3.4923777273997E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.3692520317804E-01 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7348960070578E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.4015833456707E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -2.2963390683806E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 1.0106503493614E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.4261919294998E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 8.0520515869394E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.7382157496807E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -5.0951195988383E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.8446287520773E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.4431037907270E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.9679174926932E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.1963306377222E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -6.7839997602207E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -3.4923165405151E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 8.3693207645721E-01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.7348579396970E-02 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.7394078654533E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.7411035188943E+03 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.9950369401376E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.0549877865941E+01 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.0140718792989E+00 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0043624261018E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0138057666121E+04 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.7992367510524E-02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1789472369035E+02 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3196035464077E+01 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.7394076294143E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.7411027730571E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.9950134747733E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.0549885927684E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.0140683440349E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.0043619947570E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.0138052996250E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.7991723042629E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1789473861662E+02 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3196017781537E+01 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -4344,36 +4319,36 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_seaice_tsnumber = 0 (PID.TID 0000.0001) %MON ad_seaice_time_sec = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.9969854567381E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.4043604638158E+03 -(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -5.8048208773404E+00 -(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 3.3011956284494E+02 -(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 8.6371156088182E+01 -(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.3890028790684E+02 -(PID.TID 0000.0001) %MON ad_seaice_advice_min = -3.0654513195799E+02 -(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 1.7042470782676E+00 -(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.2187159255785E+02 -(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 3.6603964757223E+01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.2265416014583E+02 -(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -9.3877998878098E+01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.6808101207141E+00 -(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.5291011082643E+01 -(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 5.1981514984237E+00 -(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2002807423546E+02 -(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -9.9739946244986E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 4.8891081617490E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 6.7409595025390E+01 -(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 7.0954779241723E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.9630612721294E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -3.5873500675354E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.7187589350826E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.4769293891344E+01 -(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.5452666597050E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.9967306918226E+03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.4041830841564E+03 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = -5.8106399038439E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 3.3011385010801E+02 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 8.6383756110028E+01 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.3926680868822E+02 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -3.0651772202135E+02 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 1.7030782944427E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.2190271904475E+02 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 3.6615831415418E+01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.2267708958752E+02 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -9.3912960568107E+01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.6772830745067E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 2.5289355053169E+01 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 5.1984148613754E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.2002519562910E+02 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = -9.9733758526245E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 4.8890721853602E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 6.7409282360042E+01 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 7.0957796147709E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.9629219722246E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = -3.5871668557278E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.7187178611695E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.4768838156298E+01 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.5453357051475E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_max = -1.1792478488952E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_min = -1.0906182246296E-03 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_mean = -6.7694253049197E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_sd = 3.0144139106108E-04 +(PID.TID 0000.0001) %MON ad_seaice_adhsalt_del2 = 2.2520228179759E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -4401,113 +4376,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.72351585728359E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.56873469348807E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 4.96130914129367E-15 1.20525368718142E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.53963516883005E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 8.36136715420821E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 4.98212582300539E-15 1.20525368718137E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006180D+04 - --> f_salt = 0.106770833145784D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269637D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189127731D-01 -(PID.TID 0000.0001) --> fc = 0.723648986543492D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979614865E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006126D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833162499D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269583D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189110271D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986660099D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960421601D+04 -(PID.TID 0000.0001) global fc = 0.723648986543492D+04 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986543492E+03 +(PID.TID 0000.0001) local fc = 0.723648986660099D+04 +(PID.TID 0000.0001) global fc = 0.723648986660099D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986660099E+03 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4516,119 +4413,41 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 1.99493199737333E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 8.58341175913324E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 4.47211712106821E-15 1.20525368718145E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.71310751642773E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.89312798349573E-15 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 9.70057367766231E-15 1.20525368718153E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006192D+04 - --> f_salt = 0.106770833142069D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269649D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189131609D-01 -(PID.TID 0000.0001) --> fc = 0.723648986539802D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979559543E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006246D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125354D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269703D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189149071D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623195D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960417910D+04 -(PID.TID 0000.0001) global fc = 0.723648986539802D+04 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986539802E+03 +(PID.TID 0000.0001) local fc = 0.723648986623195D+04 +(PID.TID 0000.0001) global fc = 0.723648986623195D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623195E+03 grad-res ------------------------------- - grad-res 0 1 6 8 1 1 1 1 7.23648986542E+03 7.23648986543E+03 7.23648986540E+03 - grad-res 0 1 1 10 0 1 1 1 1.84498269709E-04 1.84527380043E-04 -1.57781068266E-04 + grad-res 0 1 6 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986623E+03 + grad-res 0 1 1 10 0 1 1 1 1.84498272090E-04 1.84516466106E-04 -9.86134793453E-05 (PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.84498269708621E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.84527380042709E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.84498272089744E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.84516466106288E-04 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 11 300 2 @@ -4643,113 +4462,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.56045185054177E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.87404602525999E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 7.73339725590461E-15 1.20525368718143E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.01147995429574E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.63638890905116E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 5.47478729018280E-15 1.20525368718135E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006182D+04 - --> f_salt = 0.106770833145723D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269639D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189128178D-01 -(PID.TID 0000.0001) --> fc = 0.723648986543436D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979605907E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006143D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833161897D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269600D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114741D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986659531D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960421544D+04 -(PID.TID 0000.0001) global fc = 0.723648986543436D+04 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986543436E+03 +(PID.TID 0000.0001) local fc = 0.723648986659531D+04 +(PID.TID 0000.0001) global fc = 0.723648986659531D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986659531E+03 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4758,119 +4499,41 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.77208811461094E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 1.14352971536391E-14 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 1.02834407655905E-14 1.20525368718145E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.87190279838023E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.13728471085039E-14 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 6.29704621779581E-15 1.20525368718155E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006190D+04 - --> f_salt = 0.106770833142129D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269647D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189131163D-01 -(PID.TID 0000.0001) --> fc = 0.723648986539858D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979568500E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006229D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125956D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269686D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189144603D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623762D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960417967D+04 -(PID.TID 0000.0001) global fc = 0.723648986539858D+04 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986539858E+03 +(PID.TID 0000.0001) local fc = 0.723648986623762D+04 +(PID.TID 0000.0001) global fc = 0.723648986623762D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623762E+03 grad-res ------------------------------- - grad-res 0 2 7 8 1 1 1 1 7.23648986542E+03 7.23648986543E+03 7.23648986540E+03 - grad-res 0 2 2 11 0 1 1 1 1.78825872700E-04 1.78852133104E-04 -1.46849018311E-04 + grad-res 0 2 7 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986624E+03 + grad-res 0 2 2 11 0 1 1 1 1.78825876131E-04 1.78844402399E-04 -1.03599478087E-04 (PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 -(PID.TID 0000.0001) ADM adjoint_gradient = 1.78825872699792E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 1.78852133103646E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.78825876131246E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.78844402398681E-04 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 12 300 3 @@ -4885,113 +4548,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.56392129749372E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.81159598012482E-15 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 3.60128593612785E-15 1.20525368718141E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.08780778723872E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.99374194510239E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.33628174770718E-15 1.20525368718125E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006186D+04 - --> f_salt = 0.106770833146249D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269642D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189128136D-01 -(PID.TID 0000.0001) --> fc = 0.723648986543968D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979597207E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006181D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833167152D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269637D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114320D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986664862D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960422077D+04 -(PID.TID 0000.0001) global fc = 0.723648986543968D+04 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986543968E+03 +(PID.TID 0000.0001) local fc = 0.723648986664862D+04 +(PID.TID 0000.0001) global fc = 0.723648986664862D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986664862E+03 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5000,119 +4585,41 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 3.08433834028676E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 1.01169073118967E-14 1.20987150232973E+00 - cg2d: Sum(rhs),rhsMax = 8.77076189453874E-15 1.20525368718149E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.49106291150269E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.10848830114918E-14 1.20987150232976E+00 + cg2d: Sum(rhs),rhsMax = 8.01095301206090E-15 1.20525368718164E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006187D+04 - --> f_salt = 0.106770833141604D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269644D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189131205D-01 -(PID.TID 0000.0001) --> fc = 0.723648986539325D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979577202E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006192D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833120701D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269649D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145024D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986618432D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960417434D+04 -(PID.TID 0000.0001) global fc = 0.723648986539325D+04 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986539325E+03 +(PID.TID 0000.0001) local fc = 0.723648986618432D+04 +(PID.TID 0000.0001) global fc = 0.723648986618432D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986618432E+03 grad-res ------------------------------- - grad-res 0 3 8 8 1 1 1 1 7.23648986542E+03 7.23648986544E+03 7.23648986539E+03 - grad-res 0 3 3 12 0 1 1 1 2.31943137536E-04 2.32153070101E-04 -9.05103584226E-04 + grad-res 0 3 8 8 1 1 1 1 7.23648986542E+03 7.23648986665E+03 7.23648986618E+03 + grad-res 0 3 3 12 0 1 1 1 2.31943112253E-04 2.32145794143E-04 -8.73843111248E-04 (PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.31943137535928E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.32153070101049E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.31943112252591E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.32145794143435E-04 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 13 300 4 @@ -5127,113 +4634,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.94902990916057E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 1.02765018716866E-14 1.20987150232972E+00 - cg2d: Sum(rhs),rhsMax = 6.92848556305137E-15 1.20525368718140E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 1.97758476261356E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.01516017814163E-14 1.20987150232969E+00 + cg2d: Sum(rhs),rhsMax = 8.74300631892311E-15 1.20525368718108E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006160D+04 - --> f_salt = 0.106770833146962D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269616D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189128123D-01 -(PID.TID 0000.0001) --> fc = 0.723648986544629D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979621159E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005920D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833174279D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269376D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114198D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986671466D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960422738D+04 -(PID.TID 0000.0001) global fc = 0.723648986544629D+04 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986544629E+03 +(PID.TID 0000.0001) local fc = 0.723648986671466D+04 +(PID.TID 0000.0001) global fc = 0.723648986671466D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986671466E+03 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5242,119 +4671,41 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.31412111695306E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 1.14838694109665E-14 1.20987150232974E+00 - cg2d: Sum(rhs),rhsMax = 8.11503642061950E-15 1.20525368718151E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.83106871279415E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00579267137135E-14 1.20987150232980E+00 + cg2d: Sum(rhs),rhsMax = 6.54337695138452E-15 1.20525368718180E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006213D+04 - --> f_salt = 0.106770833140891D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269670D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189131217D-01 -(PID.TID 0000.0001) --> fc = 0.723648986538665D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979553253E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006453D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833113574D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269910D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145150D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986611828D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960416773D+04 -(PID.TID 0000.0001) global fc = 0.723648986538665D+04 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986538665E+03 +(PID.TID 0000.0001) local fc = 0.723648986611828D+04 +(PID.TID 0000.0001) global fc = 0.723648986611828D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986611828E+03 grad-res ------------------------------- - grad-res 0 4 9 8 1 1 1 1 7.23648986542E+03 7.23648986545E+03 7.23648986539E+03 - grad-res 0 4 4 13 0 1 1 1 2.97918108605E-04 2.98218765238E-04 -1.00919220377E-03 + grad-res 0 4 9 8 1 1 1 1 7.23648986542E+03 7.23648986671E+03 7.23648986612E+03 + grad-res 0 4 4 13 0 1 1 1 2.97918251600E-04 2.98190570902E-04 -9.14073911927E-04 (PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 -(PID.TID 0000.0001) ADM adjoint_gradient = 2.97918108605268E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 2.98218765237834E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.97918251600404E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.98190570902079E-04 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 14 300 5 @@ -5369,113 +4720,35 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.75474087985117E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.20444276353294E-15 1.20987150232972E+00 - cg2d: Sum(rhs),rhsMax = 5.84948756099379E-15 1.20525368718137E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.23432383705813E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00666003310934E-14 1.20987150232963E+00 + cg2d: Sum(rhs),rhsMax = 7.00828284294630E-15 1.20525368718083E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006156D+04 - --> f_salt = 0.106770833147736D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269613D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189137502D-01 -(PID.TID 0000.0001) --> fc = 0.723648986545397D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979629832E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005890D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833182020D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269346D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189207967D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986679148D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960423506D+04 -(PID.TID 0000.0001) global fc = 0.723648986545397D+04 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986545397E+03 +(PID.TID 0000.0001) local fc = 0.723648986679148D+04 +(PID.TID 0000.0001) global fc = 0.723648986679148D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986679148E+03 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -5484,407 +4757,299 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 9.91122157633454E-01 - cg2d: Sum(rhs),rhsMax = 2.23085439010617E-15 1.19111702562865E+00 - cg2d: Sum(rhs),rhsMax = 9.62077639776737E-15 1.20987150232974E+00 - cg2d: Sum(rhs),rhsMax = 8.58341175913324E-15 1.20525368718153E+00 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.68535194081210E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.03164005116341E-14 1.20987150232986E+00 + cg2d: Sum(rhs),rhsMax = 6.79664657887713E-15 1.20525368718206E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) cost_ssh: offset_sum = 0.115000000000000D+03 -(PID.TID 0000.0001) ph-cost call cost_sst -(PID.TID 0000.0001) ph-cost call cost_sss -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_salt0 -(PID.TID 0000.0001) ph-cost call cost_theta -(PID.TID 0000.0001) ph-cost call cost_salt -(PID.TID 0000.0001) ph-cost call cost_smrarea - SICD cost smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - SICD num points smrarea/sst/sss 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 - --> f_ice = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_smrarea = 0.000000000000000D+00 - --> f_temp = 0.308813001006216D+04 - --> f_salt = 0.106770833140117D+04 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.308060126269673D+04 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.200000000000000D-07 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.250000000000000D-08 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.502612189121841D-01 -(PID.TID 0000.0001) --> fc = 0.723648986537897D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979544581E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006483D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833105832D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269940D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189051378D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986604146D+04 (PID.TID 0000.0001) early fc = 0.000000000000000D+00 -(PID.TID 0000.0001) local fc = 0.723643960416006D+04 -(PID.TID 0000.0001) global fc = 0.723648986537897D+04 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986537897E+03 +(PID.TID 0000.0001) local fc = 0.723648986604146D+04 +(PID.TID 0000.0001) global fc = 0.723648986604146D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986604146E+03 grad-res ------------------------------- - grad-res 0 5 10 8 1 1 1 1 7.23648986542E+03 7.23648986545E+03 7.23648986538E+03 - grad-res 0 5 5 14 0 1 1 1 3.74780555270E-04 3.75011950382E-04 -6.17414934334E-04 + grad-res 0 5 10 8 1 1 1 1 7.23648986542E+03 7.23648986679E+03 7.23648986604E+03 + grad-res 0 5 5 14 0 1 1 1 3.74783938236E-04 3.75008312403E-04 -5.98676049179E-04 (PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 -(PID.TID 0000.0001) ADM adjoint_gradient = 3.74780555270110E-04 -(PID.TID 0000.0001) ADM finite-diff_grad = 3.75011950382032E-04 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.74783938235786E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.75008312403224E-04 (PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) EPS = 1.000000E-03 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 7.2364898654165E+03 7.2364898654349E+03 7.2364898653980E+03 -(PID.TID 0000.0001) grdchk output (g): 1 1.8452738004271E-04 1.8449826970862E-04 -1.5778106826625E-04 +(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 1 7.2364898654165E+03 7.2364898666010E+03 7.2364898662320E+03 +(PID.TID 0000.0001) grdchk output (g): 1 1.8451646610629E-04 1.8449827208974E-04 -9.8613479345255E-05 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 7.2364898654165E+03 7.2364898654344E+03 7.2364898653986E+03 -(PID.TID 0000.0001) grdchk output (g): 2 1.7885213310365E-04 1.7882587269979E-04 -1.4684901831075E-04 +(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 2 7.2364898654165E+03 7.2364898665953E+03 7.2364898662376E+03 +(PID.TID 0000.0001) grdchk output (g): 2 1.7884440239868E-04 1.7882587613125E-04 -1.0359947808714E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 7.2364898654165E+03 7.2364898654397E+03 7.2364898653933E+03 -(PID.TID 0000.0001) grdchk output (g): 3 2.3215307010105E-04 2.3194313753593E-04 -9.0510358422580E-04 +(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 3 7.2364898654165E+03 7.2364898666486E+03 7.2364898661843E+03 +(PID.TID 0000.0001) grdchk output (g): 3 2.3214579414343E-04 2.3194311225259E-04 -8.7384311124761E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 4 7.2364898654165E+03 7.2364898654463E+03 7.2364898653866E+03 -(PID.TID 0000.0001) grdchk output (g): 4 2.9821876523783E-04 2.9791810860527E-04 -1.0091922037687E-03 +(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 4 7.2364898654165E+03 7.2364898667147E+03 7.2364898661183E+03 +(PID.TID 0000.0001) grdchk output (g): 4 2.9819057090208E-04 2.9791825160040E-04 -9.1407391192710E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 7.2364898654165E+03 7.2364898654540E+03 7.2364898653790E+03 -(PID.TID 0000.0001) grdchk output (g): 5 3.7501195038203E-04 3.7478055527011E-04 -6.1741493433431E-04 +(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 5 7.2364898654165E+03 7.2364898667915E+03 7.2364898660415E+03 +(PID.TID 0000.0001) grdchk output (g): 5 3.7500831240322E-04 3.7478393823579E-04 -5.9867604917918E-04 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 6.7310357347841E-04 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 6.2896794537876E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 16.850065788254142 -(PID.TID 0000.0001) System time: 0.49898697994649410 -(PID.TID 0000.0001) Wall clock time: 17.853931188583374 +(PID.TID 0000.0001) User time: 18.425716775469482 +(PID.TID 0000.0001) System time: 0.34401399781927466 +(PID.TID 0000.0001) Wall clock time: 18.788140058517456 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 8.7738003116101027E-002 -(PID.TID 0000.0001) System time: 2.3800000082701445E-002 -(PID.TID 0000.0001) Wall clock time: 0.11157917976379395 +(PID.TID 0000.0001) User time: 0.10224500019103289 +(PID.TID 0000.0001) System time: 1.2297000270336866E-002 +(PID.TID 0000.0001) Wall clock time: 0.11748290061950684 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 6.2485189512372017 -(PID.TID 0000.0001) System time: 0.38327899947762489 -(PID.TID 0000.0001) Wall clock time: 7.1304109096527100 +(PID.TID 0000.0001) User time: 6.0031581744551659 +(PID.TID 0000.0001) System time: 0.17658199369907379 +(PID.TID 0000.0001) Wall clock time: 6.1808249950408936 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 10.148970782756805 -(PID.TID 0000.0001) System time: 6.4705975353717804E-002 -(PID.TID 0000.0001) Wall clock time: 10.219064950942993 +(PID.TID 0000.0001) User time: 12.170194000005722 +(PID.TID 0000.0001) System time: 6.0347009450197220E-002 +(PID.TID 0000.0001) Wall clock time: 12.233374595642090 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.0226922631263733E-002 -(PID.TID 0000.0001) System time: 1.5499971807003021E-002 -(PID.TID 0000.0001) Wall clock time: 8.5727691650390625E-002 +(PID.TID 0000.0001) User time: 9.5812037587165833E-002 +(PID.TID 0000.0001) System time: 1.4671962708234787E-002 +(PID.TID 0000.0001) Wall clock time: 0.11058640480041504 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 7.9847067594528198E-002 -(PID.TID 0000.0001) System time: 1.9859932363033295E-002 -(PID.TID 0000.0001) Wall clock time: 9.9711894989013672E-002 -(PID.TID 0000.0001) No. starts: 52 -(PID.TID 0000.0001) No. stops: 52 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 6.5395176410675049E-002 -(PID.TID 0000.0001) System time: 5.0129994750022888E-002 -(PID.TID 0000.0001) Wall clock time: 0.60540866851806641 -(PID.TID 0000.0001) No. starts: 193 -(PID.TID 0000.0001) No. stops: 193 +(PID.TID 0000.0001) User time: 6.3506126403808594E-002 +(PID.TID 0000.0001) System time: 7.8620351850986481E-003 +(PID.TID 0000.0001) Wall clock time: 7.1445226669311523E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 3.8129091262817383E-004 -(PID.TID 0000.0001) System time: 3.2968819141387939E-005 -(PID.TID 0000.0001) Wall clock time: 4.2176246643066406E-004 -(PID.TID 0000.0001) No. starts: 52 -(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) User time: 3.9026141166687012E-004 +(PID.TID 0000.0001) System time: 1.0997056961059570E-005 +(PID.TID 0000.0001) Wall clock time: 4.0912628173828125E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.3066550493240356E-003 -(PID.TID 0000.0001) System time: 5.5895745754241943E-004 -(PID.TID 0000.0001) Wall clock time: 2.8727054595947266E-003 +(PID.TID 0000.0001) User time: 2.8547421097755432E-002 +(PID.TID 0000.0001) System time: 7.6997652649879456E-004 +(PID.TID 0000.0001) Wall clock time: 2.9318094253540039E-002 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.7189098596572876E-003 -(PID.TID 0000.0001) System time: 2.5500357151031494E-004 -(PID.TID 0000.0001) Wall clock time: 9.9759101867675781E-003 +(PID.TID 0000.0001) User time: 8.6912959814071655E-003 +(PID.TID 0000.0001) System time: 4.8498436808586121E-004 +(PID.TID 0000.0001) Wall clock time: 9.2000961303710938E-003 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.3199146389961243 -(PID.TID 0000.0001) System time: 1.2372002005577087E-002 -(PID.TID 0000.0001) Wall clock time: 4.3329782485961914 +(PID.TID 0000.0001) User time: 4.3452975600957870 +(PID.TID 0000.0001) System time: 8.7170302867889404E-003 +(PID.TID 0000.0001) Wall clock time: 4.3555588722229004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 1.3291082680225372 -(PID.TID 0000.0001) System time: 4.0299817919731140E-003 -(PID.TID 0000.0001) Wall clock time: 1.3335223197937012 -(PID.TID 0000.0001) No. starts: 48 -(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) User time: 1.2036783546209335 +(PID.TID 0000.0001) System time: 4.5210011303424835E-003 +(PID.TID 0000.0001) Wall clock time: 1.2089817523956299 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 1.1486212015151978 -(PID.TID 0000.0001) System time: 3.9479956030845642E-003 -(PID.TID 0000.0001) Wall clock time: 1.1529901027679443 -(PID.TID 0000.0001) No. starts: 48 -(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) User time: 1.0336110889911652 +(PID.TID 0000.0001) System time: 4.3409764766693115E-003 +(PID.TID 0000.0001) Wall clock time: 1.0386581420898438 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 2.1210712641477585 -(PID.TID 0000.0001) System time: 1.1910021305084229E-002 -(PID.TID 0000.0001) Wall clock time: 2.1331083774566650 -(PID.TID 0000.0001) No. starts: 192 -(PID.TID 0000.0001) No. stops: 192 +(PID.TID 0000.0001) User time: 1.9858460724353790 +(PID.TID 0000.0001) System time: 3.9609968662261963E-003 +(PID.TID 0000.0001) Wall clock time: 1.9901349544525146 +(PID.TID 0000.0001) No. starts: 176 +(PID.TID 0000.0001) No. stops: 176 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.2983019649982452 -(PID.TID 0000.0001) System time: 1.9261978566646576E-002 -(PID.TID 0000.0001) Wall clock time: 2.3222079277038574 +(PID.TID 0000.0001) User time: 2.3899597227573395 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.3902761936187744 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.29939621686935425 -(PID.TID 0000.0001) System time: 3.3099949359893799E-004 -(PID.TID 0000.0001) Wall clock time: 0.29978346824645996 +(PID.TID 0000.0001) User time: 0.29889106750488281 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.29895472526550293 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.8898191452026367E-002 -(PID.TID 0000.0001) System time: 4.1300207376480103E-003 -(PID.TID 0000.0001) Wall clock time: 8.3075761795043945E-002 +(PID.TID 0000.0001) User time: 7.9616785049438477E-002 +(PID.TID 0000.0001) System time: 1.7829984426498413E-003 +(PID.TID 0000.0001) Wall clock time: 8.1453561782836914E-002 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.5363962650299072E-002 -(PID.TID 0000.0001) System time: 1.8500536680221558E-004 -(PID.TID 0000.0001) Wall clock time: 4.5574426651000977E-002 +(PID.TID 0000.0001) User time: 4.5562922954559326E-002 +(PID.TID 0000.0001) System time: 1.0100007057189941E-003 +(PID.TID 0000.0001) Wall clock time: 4.6589612960815430E-002 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.15702980756759644 -(PID.TID 0000.0001) System time: 5.0899386405944824E-004 -(PID.TID 0000.0001) Wall clock time: 0.15763449668884277 +(PID.TID 0000.0001) User time: 0.15656885504722595 +(PID.TID 0000.0001) System time: 3.5020075738430023E-003 +(PID.TID 0000.0001) Wall clock time: 0.16016888618469238 (PID.TID 0000.0001) No. starts: 88 (PID.TID 0000.0001) No. stops: 88 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.7446829080581665 -(PID.TID 0000.0001) System time: 1.1485964059829712E-002 -(PID.TID 0000.0001) Wall clock time: 2.7564003467559814 +(PID.TID 0000.0001) User time: 2.8152644038200378 +(PID.TID 0000.0001) System time: 1.9747991114854813E-002 +(PID.TID 0000.0001) Wall clock time: 2.8356747627258301 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.6218762397766113E-004 -(PID.TID 0000.0001) System time: 4.0158629417419434E-006 -(PID.TID 0000.0001) Wall clock time: 3.6072731018066406E-004 +(PID.TID 0000.0001) User time: 3.7187337875366211E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 3.7312507629394531E-004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.7866830825805664E-004 -(PID.TID 0000.0001) System time: 4.0009617805480957E-006 -(PID.TID 0000.0001) Wall clock time: 3.7574768066406250E-004 +(PID.TID 0000.0001) User time: 3.6922097206115723E-004 +(PID.TID 0000.0001) System time: 1.0997056961059570E-005 +(PID.TID 0000.0001) Wall clock time: 3.8242340087890625E-004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.3307075500488281E-004 -(PID.TID 0000.0001) System time: 5.0142407417297363E-006 -(PID.TID 0000.0001) Wall clock time: 3.2567977905273438E-004 +(PID.TID 0000.0001) User time: 3.3232569694519043E-004 +(PID.TID 0000.0001) System time: 9.9986791610717773E-006 +(PID.TID 0000.0001) Wall clock time: 3.4713745117187500E-004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.0737133026123047E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.7768821716308594E-004 +(PID.TID 0000.0001) User time: 7.2365999221801758E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 6.6113471984863281E-004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.6128373146057129E-004 -(PID.TID 0000.0001) System time: 1.9669532775878906E-006 -(PID.TID 0000.0001) Wall clock time: 6.6876411437988281E-004 +(PID.TID 0000.0001) User time: 7.0628523826599121E-004 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 6.9236755371093750E-004 (PID.TID 0000.0001) No. starts: 44 (PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": +(PID.TID 0000.0001) User time: 6.0210466384887695E-002 +(PID.TID 0000.0001) System time: 3.6951996386051178E-002 +(PID.TID 0000.0001) Wall clock time: 9.7375631332397461E-002 +(PID.TID 0000.0001) No. starts: 25 +(PID.TID 0000.0001) No. stops: 25 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.7257213592529297E-002 -(PID.TID 0000.0001) System time: 4.0769875049591064E-003 -(PID.TID 0000.0001) Wall clock time: 2.1333932876586914E-002 +(PID.TID 0000.0001) User time: 2.4356842041015625E-003 +(PID.TID 0000.0001) System time: 7.9540014266967773E-003 +(PID.TID 0000.0001) Wall clock time: 1.0426044464111328E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.0712146759033203E-002 -(PID.TID 0000.0001) System time: 7.9030096530914307E-003 -(PID.TID 0000.0001) Wall clock time: 1.8639087677001953E-002 +(PID.TID 0000.0001) User time: 8.5859298706054688E-003 +(PID.TID 0000.0001) System time: 1.8998980522155762E-005 +(PID.TID 0000.0001) Wall clock time: 8.6069107055664062E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 10.485688686370850 -(PID.TID 0000.0001) System time: 7.9898983240127563E-002 -(PID.TID 0000.0001) Wall clock time: 10.571795940399170 +(PID.TID 0000.0001) User time: 12.309177875518799 +(PID.TID 0000.0001) System time: 0.14714300632476807 +(PID.TID 0000.0001) Wall clock time: 12.470676898956299 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.23700237274169922 -(PID.TID 0000.0001) System time: 4.0340125560760498E-003 -(PID.TID 0000.0001) Wall clock time: 0.24115586280822754 +(PID.TID 0000.0001) User time: 0.75252771377563477 +(PID.TID 0000.0001) System time: 5.9881955385208130E-002 +(PID.TID 0000.0001) Wall clock time: 0.81276011466979980 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 10.239288330078125 -(PID.TID 0000.0001) System time: 7.2154015302658081E-002 -(PID.TID 0000.0001) Wall clock time: 10.317540645599365 +(PID.TID 0000.0001) User time: 11.548276424407959 +(PID.TID 0000.0001) System time: 8.3945974707603455E-002 +(PID.TID 0000.0001) Wall clock time: 11.646245956420898 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 1.4495372772216797E-002 -(PID.TID 0000.0001) System time: 2.3990869522094727E-005 -(PID.TID 0000.0001) Wall clock time: 1.4497518539428711E-002 +(PID.TID 0000.0001) User time: 0.11994552612304688 +(PID.TID 0000.0001) System time: 1.8200278282165527E-004 +(PID.TID 0000.0001) Wall clock time: 0.12017869949340820 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 9.2261314392089844 -(PID.TID 0000.0001) System time: 3.6305040121078491E-002 -(PID.TID 0000.0001) Wall clock time: 9.2675621509552002 +(PID.TID 0000.0001) User time: 11.120225429534912 +(PID.TID 0000.0001) System time: 4.8047989606857300E-002 +(PID.TID 0000.0001) Wall clock time: 11.170653343200684 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 1.9221305847167969E-002 -(PID.TID 0000.0001) System time: 1.0378003120422363E-002 -(PID.TID 0000.0001) Wall clock time: 3.0174016952514648E-002 +(PID.TID 0000.0001) User time: 4.5149803161621094E-002 +(PID.TID 0000.0001) System time: 1.1774986982345581E-002 +(PID.TID 0000.0001) Wall clock time: 6.8424701690673828E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.20232629776000977 -(PID.TID 0000.0001) System time: 2.5376975536346436E-002 -(PID.TID 0000.0001) Wall clock time: 0.22785615921020508 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_FORCING [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 2.5447845458984375E-002 -(PID.TID 0000.0001) System time: 7.1150362491607666E-003 -(PID.TID 0000.0001) Wall clock time: 3.2594442367553711E-002 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_SSH [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 3.5529136657714844E-003 -(PID.TID 0000.0001) System time: 8.9398026466369629E-004 -(PID.TID 0000.0001) Wall clock time: 4.4639110565185547E-003 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_HYD [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.17167520523071289 -(PID.TID 0000.0001) System time: 1.7299979925155640E-002 -(PID.TID 0000.0001) Wall clock time: 0.18912339210510254 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "SEAICE_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 7.0190429687500000E-004 -(PID.TID 0000.0001) System time: 1.2010335922241211E-005 -(PID.TID 0000.0001) Wall clock time: 7.1549415588378906E-004 -(PID.TID 0000.0001) No. starts: 10 -(PID.TID 0000.0001) No. stops: 10 -(PID.TID 0000.0001) Seconds in section "COST_INTERNAL_PARAMS [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 8.7261199951171875E-005 -(PID.TID 0000.0001) System time: 9.8347663879394531E-007 -(PID.TID 0000.0001) Wall clock time: 8.7976455688476562E-005 +(PID.TID 0000.0001) User time: 0.25804138183593750 +(PID.TID 0000.0001) System time: 2.3888006806373596E-002 +(PID.TID 0000.0001) Wall clock time: 0.28204369544982910 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 8.2969665527343750E-005 -(PID.TID 0000.0001) System time: 1.0132789611816406E-006 -(PID.TID 0000.0001) Wall clock time: 8.1062316894531250E-005 +(PID.TID 0000.0001) User time: 0.22247219085693359 +(PID.TID 0000.0001) System time: 1.1913001537322998E-002 +(PID.TID 0000.0001) Wall clock time: 0.23449492454528809 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 7.6293945312500000E-005 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.8916549682617188E-005 +(PID.TID 0000.0001) User time: 3.5291194915771484E-002 +(PID.TID 0000.0001) System time: 1.1971965432167053E-002 +(PID.TID 0000.0001) Wall clock time: 4.7300100326538086E-002 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 5.0487518310546875E-003 -(PID.TID 0000.0001) System time: 4.6998262405395508E-005 -(PID.TID 0000.0001) Wall clock time: 5.1054954528808594E-003 +(PID.TID 0000.0001) User time: 3.1661987304687500E-003 +(PID.TID 0000.0001) System time: 4.2974948883056641E-005 +(PID.TID 0000.0001) Wall clock time: 3.2150745391845703E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -5935,9 +5100,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 34486 +(PID.TID 0000.0001) // No. barriers = 33146 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 34486 +(PID.TID 0000.0001) // Total barrier spins = 33146 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/results/output_tap_adj.noecco.txt b/verification/lab_sea/results/output_tap_adj.noecco.txt new file mode 100644 index 0000000000..29dfbb381e --- /dev/null +++ b/verification/lab_sea/results/output_tap_adj.noecco.txt @@ -0,0 +1,5566 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:02:43 AM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 10 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 8 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 23 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 20 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 16 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># tRef - Reference vertical potential temperature (deg C) +(PID.TID 0000.0001) ># sRef - Reference vertical salinity (PSU) +(PID.TID 0000.0001) ># viscAh - Horizontal eddy viscosity coefficient (m^2/s) +(PID.TID 0000.0001) ># viscAz - Vertical eddy viscosity coefficient (m^2/s) +(PID.TID 0000.0001) ># diffKhT - Horizontal temperature diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKzT - Vertical temperature diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKhS - Horizontal salt diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKzS - Vertical salt diffusivity (m^2/s) +(PID.TID 0000.0001) ># gravity - Acceleration due to gravity (m/s^2) +(PID.TID 0000.0001) ># rigidLid - Set to true to use rigid lid +(PID.TID 0000.0001) ># implicitFreeSurface - Set to true to use implicit free surface +(PID.TID 0000.0001) ># eosType - Flag for linear or polynomial equation of state +(PID.TID 0000.0001) ># momAdvection - On/Off flag for momentum self transport +(PID.TID 0000.0001) ># momViscosity - On/Off flag for momentum mixing +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 24.0 , 23.0 , 22.0 , 21.0 , 20.0 , +(PID.TID 0000.0001) > 19.0 , 18.0 , 17.0 , 16.0 , 15.0 , +(PID.TID 0000.0001) > 14.0 , 13.0 , 12.0 , 11.0 , 10.0 , +(PID.TID 0000.0001) > 9.0 , 8.0 , 7.0 , 6.0, 5.0 , +(PID.TID 0000.0001) > 4.0 , 3.0 , 2.0 , +(PID.TID 0000.0001) > sRef= 34.65, 34.75, 34.82, 34.87, 34.90, +(PID.TID 0000.0001) > 34.90, 34.86, 34.78, 34.69, 34.60, +(PID.TID 0000.0001) > 34.58, 34.62, 34.68, 34.72, 34.73, +(PID.TID 0000.0001) > 34.74, 34.73, 34.73, 34.72, 34.72, +(PID.TID 0000.0001) > 34.71, 34.70, 34.69, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > viscAz=1.93e-5, +(PID.TID 0000.0001) > viscAh=5.E4, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKzT=1.46e-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKzS=1.46e-5, +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > saltStepping=.TRUE., +(PID.TID 0000.0001) > tempStepping=.TRUE., +(PID.TID 0000.0001) > momStepping=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.FALSE., +(PID.TID 0000.0001) >#- set wrong celsius2K to reproduce old results: +(PID.TID 0000.0001) > celsius2K=273.16, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986.D0, +(PID.TID 0000.0001) > gravity = 9.8156, +(PID.TID 0000.0001) > rhoConst = 1027.D0, +(PID.TID 0000.0001) > rhoConstFresh = 999.8, +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) >#ph( +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > multiDimAdvection=.TRUE., +(PID.TID 0000.0001) > tempAdvScheme=30, +(PID.TID 0000.0001) > saltAdvScheme=30, +(PID.TID 0000.0001) >#ph) +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) >#- not safe to use globalFiles in multi-processors runs; set instead useSingleCpuIO +(PID.TID 0000.0001) > useSingleCpuIO=.FALSE., +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > writeBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># cg2dMaxIters - Maximum number of 2d solver iterations +(PID.TID 0000.0001) ># cg2dTargetResidual - Solver target residual +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># startTime - Integration starting time (s) +(PID.TID 0000.0001) ># endTime - Integration ending time (s) +(PID.TID 0000.0001) ># tauCD - CD scheme coupling timescale (s) +(PID.TID 0000.0001) ># deltaTMom - Timestep for momemtum equations (s) +(PID.TID 0000.0001) ># deltaTtracer - Tracer timestep (s) +(PID.TID 0000.0001) ># deltaTClock - Timestep used as model "clock" (s) +(PID.TID 0000.0001) ># abEps - Adams-Bashforth stabilising factor +(PID.TID 0000.0001) ># pChkPtFreq - Frequency of permanent check pointing (s) +(PID.TID 0000.0001) ># chkPtFreq - Frequency of rolling check pointing (s) +(PID.TID 0000.0001) ># dumpFreq - Frequency at which model state is stored (s) +(PID.TID 0000.0001) ># tauThetaClimRelax - Relaxation to climatology time scale (s) +(PID.TID 0000.0001) ># tauSaltClimRelax - Relaxation to climatology time scale (s) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > tauCD=172800., +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) > nTimeSteps=4, +(PID.TID 0000.0001) > deltaTmom=3600.0, +(PID.TID 0000.0001) > deltaTtracer=3600.0, +(PID.TID 0000.0001) > deltaTClock =3600.0, +(PID.TID 0000.0001) > cAdjFreq=0., +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=36000., +(PID.TID 0000.0001) > chkptFreq= 0., +(PID.TID 0000.0001) > dumpFreq = 0., +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > adjDumpFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># usingSphericalPolarGrid - On/Off flag for spherical polar coordinates +(PID.TID 0000.0001) ># delX - Zonal grid spacing (degrees) +(PID.TID 0000.0001) ># delY - Meridional grid spacing (degrees) +(PID.TID 0000.0001) ># delZ - Vertical grid spacing (m) +(PID.TID 0000.0001) ># ygOrigin - Southern boundary latitude (degrees) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delX=20*2.E0, +(PID.TID 0000.0001) > delY=16*2.E0, +(PID.TID 0000.0001) > delZ= 10., 10., 15., 20., 20., 25., 35., 50., 75., +(PID.TID 0000.0001) > 100., 150., 200., 275., 350., 415., 450., +(PID.TID 0000.0001) > 500., 500., 500., 500., 500., 500., 500., +(PID.TID 0000.0001) > ygOrigin=46., +(PID.TID 0000.0001) > xgOrigin=280., +(PID.TID 0000.0001) > rSphere = 6371.D3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># bathyFile - File containing bathymetry +(PID.TID 0000.0001) ># hydrogThetaFile - File containing initial potential temperature data +(PID.TID 0000.0001) ># hydrogSaltFile - File containing initial salinity data +(PID.TID 0000.0001) ># zonalWindFile - File containing zonal wind data +(PID.TID 0000.0001) ># meridWindFile - File containing meridional wind data +(PID.TID 0000.0001) ># thetaClimFile - File containing theta climatology used for relaxation +(PID.TID 0000.0001) ># saltClimFile - File containing salt climatology used for relaxation +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy.labsea1979', +(PID.TID 0000.0001) > hydrogThetaFile = 'LevCli_temp.labsea1979', +(PID.TID 0000.0001) > hydrogSaltFile = 'LevCli_salt.labsea1979', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useKPP = .TRUE., +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) > useDOWN_SLOPE=.TRUE., +(PID.TID 0000.0001) > useDiagnostics = .FALSE., +(PID.TID 0000.0001) > useCAL = .TRUE., +(PID.TID 0000.0001) ># useMNC = .TRUE., +(PID.TID 0000.0001) ># useECCO = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/kpp compiled and used ( useKPP = T ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/down_slope compiled and used ( useDOWN_SLOPE = T ) + pkg/cal compiled and used ( useCAL = T ) + pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ecco compiled and used ( useECCO = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/salt_plume compiled but not used ( useSALT_PLUME = F ) + pkg/diagnostics compiled but not used ( useDiagnostics = F ) + pkg/mnc compiled but not used ( useMNC = F ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='gregorian', +(PID.TID 0000.0001) ># TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=19790101, +(PID.TID 0000.0001) > startDate_2=000000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) > repeatPeriod = 31622400.0, +(PID.TID 0000.0001) > exf_iprec = 32, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 10800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > hfluxstartdate2 = 180000, +(PID.TID 0000.0001) > hfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > sfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > sfluxstartdate2 = 180000, +(PID.TID 0000.0001) > sfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > ustressstartdate1 = 19781216, +(PID.TID 0000.0001) > ustressstartdate2 = 180000, +(PID.TID 0000.0001) > ustressperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vstressstartdate1 = 19781216, +(PID.TID 0000.0001) > vstressstartdate2 = 180000, +(PID.TID 0000.0001) > vstressperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempstartdate1 = 19781216, +(PID.TID 0000.0001) > atempstartdate2 = 180000, +(PID.TID 0000.0001) > atempperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > aqhstartdate1 = 19781216, +(PID.TID 0000.0001) > aqhstartdate2 = 180000, +(PID.TID 0000.0001) > aqhperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#evapstartdate1 = 19781216, +(PID.TID 0000.0001) >#evapstartdate2 = 180000, +(PID.TID 0000.0001) >#evapperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipstartdate1 = 19781216, +(PID.TID 0000.0001) > precipstartdate2 = 180000, +(PID.TID 0000.0001) > precipperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindstartdate1 = 19781216, +(PID.TID 0000.0001) > uwindstartdate2 = 180000, +(PID.TID 0000.0001) > uwindperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vwindstartdate1 = 19781216, +(PID.TID 0000.0001) > vwindstartdate2 = 180000, +(PID.TID 0000.0001) > vwindperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > swfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > swfluxstartdate2 = 180000, +(PID.TID 0000.0001) > swfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > lwfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > lwfluxstartdate2 = 180000, +(PID.TID 0000.0001) > lwfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > swdownstartdate1 = 19781216, +(PID.TID 0000.0001) > swdownstartdate2 = 180000, +(PID.TID 0000.0001) > swdownperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > lwdownstartdate1 = 19781216, +(PID.TID 0000.0001) > lwdownstartdate2 = 180000, +(PID.TID 0000.0001) > lwdownperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsststartdate1 = 19781216, +(PID.TID 0000.0001) > climsststartdate2 = 180000, +(PID.TID 0000.0001) > climsstperiod = 2635200.0, +(PID.TID 0000.0001) > climsstTauRelax = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsssstartdate1 = 19781216, +(PID.TID 0000.0001) > climsssstartdate2 = 180000, +(PID.TID 0000.0001) > climsssperiod = 2635200.0, +(PID.TID 0000.0001) > climsssTauRelax = 4142330.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxfile = ' ', +(PID.TID 0000.0001) > sfluxfile = ' ', +(PID.TID 0000.0001) > ustressfile = ' ', +(PID.TID 0000.0001) > vstressfile = ' ', +(PID.TID 0000.0001) > atempfile = 'tair.labsea1979', +(PID.TID 0000.0001) > aqhfile = 'qa.labsea1979', +(PID.TID 0000.0001) > uwindfile = 'u10m.labsea1979', +(PID.TID 0000.0001) > vwindfile = 'v10m.labsea1979', +(PID.TID 0000.0001) >#evapfile = 'evap.labsea1979', +(PID.TID 0000.0001) > precipfile = 'prate.labsea1979', +(PID.TID 0000.0001) > lwfluxfile = ' ', +(PID.TID 0000.0001) > swfluxfile = ' ', +(PID.TID 0000.0001) > lwdownfile = 'flo.labsea1979', +(PID.TID 0000.0001) > swdownfile = 'fsh.labsea1979', +(PID.TID 0000.0001) > runoffFile = ' ' +(PID.TID 0000.0001) > climsstfile = ' ', +(PID.TID 0000.0001) > climsssfile = 'SSS_monthly.labsea1979', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_04 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) KPP_READPARMS: opening data.kpp +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.kpp +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.kpp" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># KPP parameters +(PID.TID 0000.0001) > &KPP_PARM01 +(PID.TID 0000.0001) > KPPmixingMaps = .FALSE., +(PID.TID 0000.0001) > KPPwriteState = .TRUE., +(PID.TID 0000.0001) > KPP_ghatUseTotalDiffus=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) KPP_READPARMS ; starts to read KPP_PARM01 +(PID.TID 0000.0001) KPP_READPARMS ; read KPP_PARM01 : OK +(PID.TID 0000.0001) KPP_READPARMS: finished reading data.kpp +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) ># GM_isopycK = 1.1D+3, +(PID.TID 0000.0001) ># GM_background_K = 0.9D+3, +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) DWNSLP_READPARMS: opening data.down_slope +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.down_slope +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.down_slope" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DOWN_SLOPE package parameters (lines beginning "#" are comments): +(PID.TID 0000.0001) ># DWNSLP_slope :: fixed slope (=0 => use the local slope) +(PID.TID 0000.0001) ># DWNSLP_rec_mu :: reciprol friction parameter (unit = time scale [s]) +(PID.TID 0000.0001) ># used to compute the flow: U=dy*dz*(slope * g/mu * dRho / rho0) +(PID.TID 0000.0001) ># dwnslp_drFlow :: max. thickness [m] of the effective downsloping flow layer +(PID.TID 0000.0001) > &DWNSLP_PARM01 +(PID.TID 0000.0001) > DWNSLP_slope = 5.E-3, +(PID.TID 0000.0001) > DWNSLP_rec_mu= 1.E+4, +(PID.TID 0000.0001) > DWNSLP_drFlow= 30., +(PID.TID 0000.0001) ># temp_useDWNSLP=.FALSE., +(PID.TID 0000.0001) ># salt_useDWNSLP=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DWNSLP_READPARMS: finished reading data.downslp +(PID.TID 0000.0001) DWNSLP_slope = /* DOWNSLP fixed slope (=0 => use local slope) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DWNSLP_rec_mu = /* DOWNSLP recip. friction parameter (time, s ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DWNSLP_drFlow = /* DOWNSLP effective layer thickness ( m ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > SEAICE_initialHEFF = 1.0, +(PID.TID 0000.0001) > SEAICE_deltaTtherm = 3600., +(PID.TID 0000.0001) > SEAICE_deltaTdyn = 3600., +(PID.TID 0000.0001) > SEAICEuseDYNAMICS =.TRUE., +(PID.TID 0000.0001) >#-- According to Martin, SEAICE_clipVelocities is not recommended +(PID.TID 0000.0001) ># SEAICE_clipVelocities=.TRUE., +(PID.TID 0000.0001) > SEAICEadvSalt =.FALSE., +(PID.TID 0000.0001) >#-- above: to reproduce old results +(PID.TID 0000.0001) > LSR_ERROR = 1.E-6, +(PID.TID 0000.0001) >### SEAICE_deltaTevp = 60, +(PID.TID 0000.0001) > SEAICE_EPS = 1.E-8, +(PID.TID 0000.0001) > SEAICE_multDim = 7, +(PID.TID 0000.0001) >#- to reproduce old results with former #defined SEAICE_SOLVE4TEMP_LEGACY code +(PID.TID 0000.0001) > useMaykutSatVapPoly = .TRUE., +(PID.TID 0000.0001) > postSolvTempIter = 0, +(PID.TID 0000.0001) >#- paramaters from SEAICE_GROWTH_LEGACY branch +(PID.TID 0000.0001) > SEAICE_doOpenWaterGrowth=.FALSE., +(PID.TID 0000.0001) > SEAICE_doOpenWaterMelt=.FALSE., +(PID.TID 0000.0001) > SEAICE_areaGainFormula=2, +(PID.TID 0000.0001) > SEAICE_areaLossFormula=3, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > SEAICE_saltFrac = 0.3, +(PID.TID 0000.0001) > SEAICE_tempFrz0 = -1.96, +(PID.TID 0000.0001) > SEAICE_dTempFrz_dS = 0., +(PID.TID 0000.0001) > SEAICE_availHeatFrac = 0.8, +(PID.TID 0000.0001) > SEAICEdiffKhArea = 200., +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) ># SEAICE_tave_mnc = .FALSE., +(PID.TID 0000.0001) ># SEAICE_dump_mnc = .FALSE., +(PID.TID 0000.0001) ># SEAICE_mon_mnc = .FALSE., +(PID.TID 0000.0001) ># old defaults +(PID.TID 0000.0001) > SEAICEadvScheme = 2, +(PID.TID 0000.0001) > SEAICEscaleSurfStress = .FALSE., +(PID.TID 0000.0001) > SEAICEaddSnowMass = .FALSE., +(PID.TID 0000.0001) > SEAICE_useMultDimSnow = .FALSE., +(PID.TID 0000.0001) > SEAICEetaZmethod = 0, +(PID.TID 0000.0001) > SEAICE_Olx = 0, +(PID.TID 0000.0001) > SEAICE_Oly = 0, +(PID.TID 0000.0001) > SEAICE_drag = 0.002, +(PID.TID 0000.0001) > SEAICE_waterDrag = 0.005355404089581304, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM02 +(PID.TID 0000.0001) ># currently COST_ICE_TEST is undefined in SEAICE_OPTIONS.h, +(PID.TID 0000.0001) ># so that none of these parameters are used and the cost function +(PID.TID 0000.0001) ># contribution by sea ice is zero (f_ice = 0.) +(PID.TID 0000.0001) > mult_ice = 1., +(PID.TID 0000.0001) ># choose which seaice cost term you want +(PID.TID 0000.0001) > cost_ice_flag = 1, +(PID.TID 0000.0001) ># the following timings are obsolete; +(PID.TID 0000.0001) ># replaced by lastinterval +(PID.TID 0000.0001) ># ssg - Dates same as in data.cal +(PID.TID 0000.0001) > costIceStart1 = 19790101, +(PID.TID 0000.0001) > costIceStart2 = 00000, +(PID.TID 0000.0001) > costIceEnd1 = 19790201, +(PID.TID 0000.0001) > costIceEnd2 = 00000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) ># useKPPinAdMode = .FALSE., +(PID.TID 0000.0001) ># useGMRediInAdMode = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseDYNAMICSswitchInAd = /* switch On/Off SEAICE Dyn in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFTswitchInAd= /* switch On/Off Free-Drift in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEapproxLevInAd = /* -1:SEAICE_FAKE, >0:other adjoint approximation */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) >#mult_genarr3d(1) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) >#mult_genarr3d(2) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_siarea', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(1) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_siheff', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(2) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_aqh', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_precip', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(5) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(5) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(5) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(5) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(5) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(6) = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(6) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(6) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(6) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(6) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(7) = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(7) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(7) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(7) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(7) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(8) = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(8) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(8) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(8) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(8) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(9) = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_weight(9) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(9) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(9) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(9) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># Cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-3, +(PID.TID 0000.0001) ># nbeg = 4, +(PID.TID 0000.0001) > iGloPos = 4, +(PID.TID 0000.0001) > jGloPos = 8, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 301, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-02 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: opening data.ecco +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ecco +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ecco" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &ECCO_COST_NML +(PID.TID 0000.0001) > cost_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta_month', +(PID.TID 0000.0001) > gencost_datafile(1) = 'labsea_Lev.ptmp', +(PID.TID 0000.0001) > gencost_errfile(1) = 'sigma_theta.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(2) = 'month', +(PID.TID 0000.0001) > gencost_barfile(2) = 'm_salt_month', +(PID.TID 0000.0001) > gencost_datafile(2) = 'labsea_Lev.salt', +(PID.TID 0000.0001) > gencost_errfile(2) = 'sigma_salt.bin', +(PID.TID 0000.0001) > gencost_name(2) = 'salt', +(PID.TID 0000.0001) > gencost_spmin(2) = 25., +(PID.TID 0000.0001) > gencost_spmax(2) = 40., +(PID.TID 0000.0001) > gencost_spzero(2) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(2)=1, +(PID.TID 0000.0001) > mult_gencost(2) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(3) = 'month', +(PID.TID 0000.0001) > gencost_barfile(3) = 'm_sst_month', +(PID.TID 0000.0001) > gencost_datafile(3) = 'labsea_SST_fields', +(PID.TID 0000.0001) > gencost_errfile(3) = 'sigma_sst.bin', +(PID.TID 0000.0001) > gencost_name(3) = 'sst', +(PID.TID 0000.0001) > gencost_startdate1(3) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(3) = 00000, +(PID.TID 0000.0001) > gencost_spmin(3) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(3) = 40., +(PID.TID 0000.0001) > gencost_spzero(3) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(3)=1, +(PID.TID 0000.0001) > mult_gencost(3) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(4) = 'month', +(PID.TID 0000.0001) > gencost_barfile(4) = 'm_eta_month', +(PID.TID 0000.0001) > gencost_preproc(1,4) = 'mean', +(PID.TID 0000.0001) > gencost_preproc(2,4) = 'offset', +(PID.TID 0000.0001) > gencost_preproc(3,4) = 'mindepth', +(PID.TID 0000.0001) > gencost_preproc_r(3,4) = -200., +(PID.TID 0000.0001) > gencost_datafile(4) = 'labsea_TP_mean_meters', +(PID.TID 0000.0001) > gencost_errfile(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > gencost_name(4) = 'mdt', +(PID.TID 0000.0001) > gencost_startdate1(4) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(4) = 000000, +(PID.TID 0000.0001) > gencost_spmin(4) = -4., +(PID.TID 0000.0001) > gencost_spmax(4) = 4., +(PID.TID 0000.0001) > gencost_spzero(4) = -9999.0, +(PID.TID 0000.0001) > gencost_outputlevel(4)=5, +(PID.TID 0000.0001) > mult_gencost(4) = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml +(PID.TID 0000.0001) ECCO_READPARMS: done +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.1900000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.8100000000000E+02 +(PID.TID 0000.0001) %MON XC_mean = 3.0000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.1532562594671E+01 +(PID.TID 0000.0001) %MON XG_max = 3.1800000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 2.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_mean = 2.9900000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.1532562594671E+01 +(PID.TID 0000.0001) %MON DXC_max = 1.5166951523772E+05 +(PID.TID 0000.0001) %MON DXC_min = 5.0026831972764E+04 +(PID.TID 0000.0001) %MON DXC_mean = 1.0305926321463E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.1375805318756E+04 +(PID.TID 0000.0001) %MON DXF_max = 1.5166951523772E+05 +(PID.TID 0000.0001) %MON DXF_min = 5.0026831972764E+04 +(PID.TID 0000.0001) %MON DXF_mean = 1.0305926321463E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.1375805318756E+04 +(PID.TID 0000.0001) %MON DXG_max = 1.5448497309243E+05 +(PID.TID 0000.0001) %MON DXG_min = 5.3800974869835E+04 +(PID.TID 0000.0001) %MON DXG_mean = 1.0642630187324E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.1081829200899E+04 +(PID.TID 0000.0001) %MON DXV_max = 1.5448497309243E+05 +(PID.TID 0000.0001) %MON DXV_min = 5.3800974869835E+04 +(PID.TID 0000.0001) %MON DXV_mean = 1.0642630187324E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.1081829200899E+04 +(PID.TID 0000.0001) %MON YC_max = 7.7000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = 4.7000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 6.2000000000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 9.2195444572929E+00 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = 4.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = 6.1000000000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 9.2195444572929E+00 +(PID.TID 0000.0001) %MON DYC_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYF_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYG_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYU_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON RA_max = 3.3728048822756E+10 +(PID.TID 0000.0001) %MON RA_min = 1.1124894996734E+10 +(PID.TID 0000.0001) %MON RA_mean = 2.2918170839356E+10 +(PID.TID 0000.0001) %MON RA_sd = 6.9773064942263E+09 +(PID.TID 0000.0001) %MON RAW_max = 3.3728048822756E+10 +(PID.TID 0000.0001) %MON RAW_min = 1.1124894996734E+10 +(PID.TID 0000.0001) %MON RAW_mean = 2.2918170839356E+10 +(PID.TID 0000.0001) %MON RAW_sd = 6.9773064942263E+09 +(PID.TID 0000.0001) %MON RAS_max = 3.4354146294179E+10 +(PID.TID 0000.0001) %MON RAS_min = 1.1964183470077E+10 +(PID.TID 0000.0001) %MON RAS_mean = 2.3666928057229E+10 +(PID.TID 0000.0001) %MON RAS_sd = 6.9119325076329E+09 +(PID.TID 0000.0001) %MON RAZ_max = 3.4354146294179E+10 +(PID.TID 0000.0001) %MON RAZ_min = 1.1964183470077E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 2.3666928057229E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 6.9119325076329E+09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 1.440000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 19790101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 19790101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 40000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 3.162240000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing starts at -1317600. +(PID.TID 0000.0001) Zonal wind forcing period is 2635200. +(PID.TID 0000.0001) Zonal wind forcing repeat-cycle is 31622400. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> u10m.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Meridional wind forcing starts at -1317600. +(PID.TID 0000.0001) Meridional wind forcing period is 2635200. +(PID.TID 0000.0001) Meridional wind forcing repeat-cycle is 31622400. +(PID.TID 0000.0001) Meridional wind forcing is read from file: +(PID.TID 0000.0001) >> v10m.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric temperature starts at -1317600. +(PID.TID 0000.0001) Atmospheric temperature period is 2635200. +(PID.TID 0000.0001) Atmospheric temperature repeat-cycle is 31622400. +(PID.TID 0000.0001) Atmospheric temperature is read from file: +(PID.TID 0000.0001) >> tair.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric specific humidity starts at -1317600. +(PID.TID 0000.0001) Atmospheric specific humidity period is 2635200. +(PID.TID 0000.0001) Atmospheric specific humidity rep-cycle is 31622400. +(PID.TID 0000.0001) Atmospheric specific humidity is read from file: +(PID.TID 0000.0001) >> qa.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Precipitation data starts at -1317600. +(PID.TID 0000.0001) Precipitation data period is 2635200. +(PID.TID 0000.0001) Precipitation data repeat-cycle is 31622400. +(PID.TID 0000.0001) Precipitation data is read from file: +(PID.TID 0000.0001) >> prate.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward shortwave flux starts at -1317600. +(PID.TID 0000.0001) Downward shortwave flux period is 2635200. +(PID.TID 0000.0001) Downward shortwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward shortwave flux is read from file: +(PID.TID 0000.0001) >> fsh.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward longwave flux starts at -1317600. +(PID.TID 0000.0001) Downward longwave flux period is 2635200. +(PID.TID 0000.0001) Downward longwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward longwave flux is read from file: +(PID.TID 0000.0001) >> flo.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS starts at -1317600. +(PID.TID 0000.0001) Climatological SSS period is 2635200. +(PID.TID 0000.0001) Climatological SSS repeat-cycle is 31622400. +(PID.TID 0000.0001) Climatological SSS is read from file: +(PID.TID 0000.0001) >> SSS_monthly.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 1 19 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 1 90 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 2 57 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 2 36 +(PID.TID 0000.0001) etagcm defined by gencost 4 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.ptmp +(PID.TID 0000.0001) model file = m_theta_month +(PID.TID 0000.0001) error file = sigma_theta.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 2) = salt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.salt +(PID.TID 0000.0001) model file = m_salt_month +(PID.TID 0000.0001) error file = sigma_salt.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 3) = sst +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_SST_fields +(PID.TID 0000.0001) model file = m_sst_month +(PID.TID 0000.0001) error file = sigma_sst.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 4) = mdt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_TP_mean_meters +(PID.TID 0000.0001) model file = m_eta_month +(PID.TID 0000.0001) error file = ones_64b.bin +(PID.TID 0000.0001) preprocess = mean +(PID.TID 0000.0001) preprocess = offset +(PID.TID 0000.0001) preprocess = mindepth +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 5 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.750000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvArea = /* advect fractional ice area */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSnow = /* advect snow layer together with ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSalt = /* advect salinity together with ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEmultiDimAdvection = /* multidimadvec */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFluxForm = /* advection in FV flux form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhEvap = /* latent heat of evaporation */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhFusion = /* latent heat of fusion */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheePiston = /* turbulent flux "piston velocity" a la McPhee (m/s) */ +(PID.TID 0000.0001) 2.222222222222222E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeTaper = /* tapering of turbulent flux (0.< <1.) for AREA=1. */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeStepFunc = /* replace linear tapering with step funct. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_frazilFrac = /* frazil (T0 by ATM and OCN +(PID.TID 0000.0001) 3=from predicted melt by ATM +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO = /* nominal thickness of new ice */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO_south = /* Southern Ocean HO */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_max = /* set to les than 1. to mimic open leads */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Sea ice has a variable salinity such that +(PID.TID 0000.0001) SEAICE_saltFrac = /* fraction of ocn salinity in new ice */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_salinityTracer = /* test SITR varia. salinity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFlooding = /* turn submerged snow into ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice air-sea fluxes configuration, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEheatConsFix = /* accound for ocn<->seaice advect. heat flux */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_multDim = /* number of ice categories (1 or 7) */ +(PID.TID 0000.0001) 7 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_PDF = /* sea-ice distribution (-) */ +(PID.TID 0000.0001) 7 @ 1.428571428571428E-01 /* K = 1: 7 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IMAX_TICE = /* iterations for ice surface temp */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) postSolvTempIter= /* flux calculation after surf. temp iter */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb = /* winter albedo */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb = /* summer albedo */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb = /* dry snow albedo */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb = /* wet snow albedo */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb_south = /* Southern Ocean dryIceAlb */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb_south = /* Southern Ocean wetIceAlb */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb_south= /* Southern Ocean drySnowAlb */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb_south= /* Southern Ocean wetSnowAlb */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetAlbTemp= /* Temp (o.C) threshold for wet-albedo */ +(PID.TID 0000.0001) -1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snow_emiss = /* snow emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_ice_emiss = /* seaice emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cpAir = /* heat capacity of air */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dalton = /* constant dalton number */ +(PID.TID 0000.0001) 1.750000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_iceConduct = /* sea-ice conductivity */ +(PID.TID 0000.0001) 2.165600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowConduct= /* snow conductivity */ +(PID.TID 0000.0001) 3.100000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowThick = /* cutoff snow thickness (for albedo) */ +(PID.TID 0000.0001) 1.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_shortwave = /* penetration shortwave radiation */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMaykutSatVapPoly = /* use Maykut Polynomial for Sat.Vap.Pr */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_ATEMP = /* minimum air temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_LWDOWN = /* minimum downward longwave */ +(PID.TID 0000.0001) 6.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_TICE = /* minimum ice temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsaltFile = /* Initial HSALT File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_mnc = /* write monitor to netcdf file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mnc = /* write snap-shot using MNC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mnc = /* write TimeAverage using MNC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-16 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 6720 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 14 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 8 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 6 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 106 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 212 +(PID.TID 0000.0001) ctrl-wet 8: atmos 212 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 6720 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 145 116 125 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 140 112 119 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 133 104 111 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 126 98 106 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 115 89 95 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 99 77 82 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 90 68 73 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 82 62 66 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 71 54 57 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 68 52 54 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 58 44 45 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 50 40 40 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 40 31 31 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 30 22 23 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 10 6 6 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 3 2 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 21 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 22 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 23 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 13 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 6720 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 1840 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 000106 000034 000058 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 001076 000874 000933 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000457 000336 000354 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000221 000213 000204 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_siarea +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_siheff +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_aqh +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_precip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_snowprecip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 5 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0305 +(PID.TID 0000.0001) ncvarindex = 0405 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 6 is in use +(PID.TID 0000.0001) file = xx_lwdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0306 +(PID.TID 0000.0001) ncvarindex = 0406 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 7 is in use +(PID.TID 0000.0001) file = xx_uwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0307 +(PID.TID 0000.0001) ncvarindex = 0407 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 8 is in use +(PID.TID 0000.0001) file = xx_vwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0308 +(PID.TID 0000.0001) ncvarindex = 0408 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 9 is in use +(PID.TID 0000.0001) file = xx_apressure +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0309 +(PID.TID 0000.0001) ncvarindex = 0409 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4210453727344E-04 +(PID.TID 0000.0001) %MON fCori_min = 1.0666243053630E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.2711058365303E-04 +(PID.TID 0000.0001) %MON fCori_sd = 1.1031533875266E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4151032568025E-04 +(PID.TID 0000.0001) %MON fCoriG_min = 1.0491029349513E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 1.2591168756569E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.1383815633153E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 9.9464325599212E-05 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.2807417471054E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 6.7585896192312E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 2.0576140902612E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.6094939840939192E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 2.400000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 2.300000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 2.100000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 1.900000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 1.700000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 1.300000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 1.200000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 1.100000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 9.000000000000000E+00, /* K = 16 */ +(PID.TID 0000.0001) 8.000000000000000E+00, /* K = 17 */ +(PID.TID 0000.0001) 7.000000000000000E+00, /* K = 18 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* K = 19 */ +(PID.TID 0000.0001) 5.000000000000000E+00, /* K = 20 */ +(PID.TID 0000.0001) 4.000000000000000E+00, /* K = 21 */ +(PID.TID 0000.0001) 3.000000000000000E+00, /* K = 22 */ +(PID.TID 0000.0001) 2.000000000000000E+00 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 3.487000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2 @ 3.490000000000000E+01, /* K = 5: 6 */ +(PID.TID 0000.0001) 3.486000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 3.478000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 3.469000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 3.460000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.458000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.462000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 3.468000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.472000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.473000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.474000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 2 @ 3.473000000000000E+01, /* K = 17: 18 */ +(PID.TID 0000.0001) 2 @ 3.472000000000000E+01, /* K = 19: 20 */ +(PID.TID 0000.0001) 3.471000000000000E+01, /* K = 21 */ +(PID.TID 0000.0001) 3.470000000000000E+01, /* K = 22 */ +(PID.TID 0000.0001) 3.469000000000000E+01 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.023399597669854E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.023810240320856E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.024201435647580E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.024591510588746E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.024969611150069E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.025328017199967E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.025680833282475E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.026050051489947E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.026491970185416E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027036952689552E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.027794852671120E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028814168587807E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.030119722650770E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.031735154401125E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.033628649568903E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.035732830613343E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.037997052952795E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.040366267417616E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.042716568158493E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.045063813536698E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.047393250130134E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.049712998140759E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.052023490263938E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ +(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ +(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ +(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ +(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ +(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ +(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ +(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ +(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ +(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ +(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ +(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ +(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ +(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.930000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.460000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.460000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731600000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.027000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.815600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.815600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 23 @ 3.600000000000000E+03 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.791666666666666E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.440000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 4.142330000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.737098344693282E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.027000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.750000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 2.250000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 4.250000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 6.250000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 8.750000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 1.250000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 1.750000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.375000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.125000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 3.825000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 4.325000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 4.750000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 6 @ 5.000000000000000E+02, /* K = 18: 23 */ +(PID.TID 0000.0001) 2.500000000000000E+02 /* K = 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+01, /* K = 1: 2 */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 2 @ 2.000000000000000E+01, /* K = 4: 5 */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 3.500000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 1.500000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.000000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.750000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.500000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 4.500000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 7 @ 5.000000000000000E+02 /* K = 17: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 20 @ 2.000000000000000E+00 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 16 @ 2.000000000000000E+00 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 2.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 4.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.371000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.810000000000000E+02, /* I = 1 */ +(PID.TID 0000.0001) 2.830000000000000E+02, /* I = 2 */ +(PID.TID 0000.0001) 2.850000000000000E+02, /* I = 3 */ +(PID.TID 0000.0001) 2.870000000000000E+02, /* I = 4 */ +(PID.TID 0000.0001) 2.890000000000000E+02, /* I = 5 */ +(PID.TID 0000.0001) 2.910000000000000E+02, /* I = 6 */ +(PID.TID 0000.0001) 2.930000000000000E+02, /* I = 7 */ +(PID.TID 0000.0001) 2.950000000000000E+02, /* I = 8 */ +(PID.TID 0000.0001) 2.970000000000000E+02, /* I = 9 */ +(PID.TID 0000.0001) 2.990000000000000E+02, /* I = 10 */ +(PID.TID 0000.0001) 3.010000000000000E+02, /* I = 11 */ +(PID.TID 0000.0001) 3.030000000000000E+02, /* I = 12 */ +(PID.TID 0000.0001) 3.050000000000000E+02, /* I = 13 */ +(PID.TID 0000.0001) 3.070000000000000E+02, /* I = 14 */ +(PID.TID 0000.0001) 3.090000000000000E+02, /* I = 15 */ +(PID.TID 0000.0001) 3.110000000000000E+02, /* I = 16 */ +(PID.TID 0000.0001) 3.130000000000000E+02, /* I = 17 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* I = 18 */ +(PID.TID 0000.0001) 3.170000000000000E+02, /* I = 19 */ +(PID.TID 0000.0001) 3.190000000000000E+02 /* I = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 4.700000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) 4.900000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) 5.100000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) 5.300000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) 5.500000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) 5.700000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) 5.900000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) 6.100000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) 6.300000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) 6.500000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) 6.700000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) 6.900000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) 7.100000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) 7.300000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) 7.700000000000000E+01 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.750000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -4.500000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -6.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -8.750000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -1.175000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.600000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.225000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -3.100000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -4.350000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -6.100000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -8.475000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -1.160000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -1.542500000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -1.975000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -2.450000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -2.950000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.450000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -3.950000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.450000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -4.950000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.450000000000000E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -3.500000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -5.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.350000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -1.850000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.600000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -5.100000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -7.100000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -9.850000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -1.335000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -1.750000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -2.200000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -2.700000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.200000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -3.700000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.200000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -4.700000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.200000000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -5.700000000000000E+03 /* K = 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.516695152377178E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.516695152377178E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.459008712061998E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.399544694374234E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.338375547059709E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.275575795302040E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.211221950925184E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.145392419175564E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.078167403197357E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.009628806317309E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.398601322581600E+04, /* J = 10 */ +(PID.TID 0000.0001) 8.689463834022089E+04, /* J = 11 */ +(PID.TID 0000.0001) 7.969739572290120E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.240305410533583E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.502050051917860E+04, /* J = 14 */ +(PID.TID 0000.0001) 5.755872946877906E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.002683197276441E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.544849730924338E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.544849730924338E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.488078573794047E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.429494422142520E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.369168651734348E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.307174760228300E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.243588277631750E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.178486674278995E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.111949266445588E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.044057119713670E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.748929502060512E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.045410238093534E+04, /* J = 11 */ +(PID.TID 0000.0001) 8.330870535090075E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.606180949611843E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.872224404288860E+04, /* J = 14 */ +(PID.TID 0000.0001) 6.129895112114271E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.380097486983529E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.516695152377178E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.516695152377178E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.459008712061998E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.399544694374234E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.338375547059709E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.275575795302040E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.211221950925184E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.145392419175564E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.078167403197357E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.009628806317309E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.398601322581600E+04, /* J = 10 */ +(PID.TID 0000.0001) 8.689463834022089E+04, /* J = 11 */ +(PID.TID 0000.0001) 7.969739572290120E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.240305410533583E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.502050051917860E+04, /* J = 14 */ +(PID.TID 0000.0001) 5.755872946877906E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.002683197276441E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.544849730924338E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.544849730924338E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.488078573794047E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.429494422142520E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.369168651734348E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.307174760228300E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.243588277631750E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.178486674278995E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.111949266445588E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.044057119713670E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.748929502060512E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.045410238093534E+04, /* J = 11 */ +(PID.TID 0000.0001) 8.330870535090075E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.606180949611843E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.872224404288860E+04, /* J = 14 */ +(PID.TID 0000.0001) 6.129895112114271E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.380097486983529E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.372804882275630E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.372804882275630E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.244522605358471E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.112287377427108E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.976260306737437E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.836607121321784E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.693497967074614E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.547107200456132E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.397613176065682E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.245198029344207E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.090047454670177E+10, /* J = 10 */ +(PID.TID 0000.0001) 1.932350479119805E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.772299232166360E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.610088711600326E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.445916545954351E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.279982753723478E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.112489499673432E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.372804882275630E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.372804882275630E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.244522605358471E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.112287377427108E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.976260306737437E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.836607121321784E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.693497967074614E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.547107200456132E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.397613176065682E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.245198029344207E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.090047454670177E+10, /* J = 10 */ +(PID.TID 0000.0001) 1.932350479119805E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.772299232166360E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.610088711600326E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.445916545954351E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.279982753723478E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.112489499673432E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.435414629417918E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.435414629417918E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.309167746093097E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.178889151607872E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.044737570361747E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.906876445392020E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.765473739243563E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.620701729332415E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.472736798052209E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.321759217879512E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.167952931739416E+10, /* J = 10 */ +(PID.TID 0000.0001) 2.011505328899539E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.852607016665020E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.691451588152944E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.528235386428863E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.363157265293026E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.196418347007692E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.562528105304877E+12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) KPP_CHECK: #define ALLOW_KPP +(PID.TID 0000.0001) kpp_freq = /* frequency of KPP calculation */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPP_ghatUseTotalDiffus= /* non-local term fct of total diffus */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPuseDoubleDiff = /* include double diffusive contrib */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LimitHblStable = /* limits depth of hbl if stable cond.*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) minKPPhbl = /* minimum KPPhbl value [m] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsln = /* constant [-] */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phepsi = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsilon = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vonk = /* Von Karmans constant [-] */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dB_dz = /* maximum N^2 in mixed layer [s^-2] */ +(PID.TID 0000.0001) 5.200000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc1 = /* scalar constant [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conam = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.257000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concm = /* scalar constant [-] */ +(PID.TID 0000.0001) 8.380000000000001E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc2 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conas = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.886000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concs = /* scalar constant [-] */ +(PID.TID 0000.0001) 9.895999999999999E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc3 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetam = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetas = /* scalar constant [-] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Ricr = /* critical bulk Richardson Number [-] */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cekman = /* coeff for Ekman depth [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cmonob = /* coeff for Monin-Obukhov depth [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concv = /* buoyancy freq ratio [-] */ +(PID.TID 0000.0001) 1.800000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hbf = /* solar radiation depth ratio [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmin = /* minimum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) -4.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmax = /* maximum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umin = /* minimum for ustar in table [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* maximum for ustar in table [m/s] */ +(PID.TID 0000.0001) 4.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) num_v_smooth_Ri = /* number of vertical smoothing */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Riinfty = /* shear instability Ri number limit [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) BVSQcon = /* Brunt-Vaisala squared (=N^2) [s^-2] */ +(PID.TID 0000.0001) -2.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difm0 = /* max viscosity from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difs0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dift0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difmcon = /* convective viscosity [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difscon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diftcon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Rrho0 = /* double diffusion density ratio [-] */ +(PID.TID 0000.0001) 1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dsfmax = /* max diffusiv. for salt fingering [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cstar = /* coeff for non-locak transport [-] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPwriteState = /* write KPP fields to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_dumpFreq = /* dump freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_taveFreq = /* time-averaging freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etagcm defined by gencost 4 +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3333076477051E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.4103618860245E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.1168426975828E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4047681849177E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.5049819722560E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450622558594E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0128698348999E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759355674691E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.4306214753982E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6452478048952E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067278094140E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8115075987134E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843892147E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1689234854242E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 9.5205094642639E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 8.2251346492767E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 9.0515124880142E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 3.2399715379512E+02 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 6.5705700303689E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.3903775845771E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.5324050318348E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2585053845627E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.7275868295507E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.3810540854857E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.4708944127586E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -6.2488440618747E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5966769927411E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5564946659994E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.2446640646997E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 7.3527440806105E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.1759678238206E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.8333404528937E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.5742193163805E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.7940332098124E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.5100078770193E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -6.0802354200242E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -6.5150265743063E-09 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.6751431080853E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.8965728806310E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4643745422363E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372380733490E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7697727336031E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9900402496951E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 1.6625569786913E-01 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9240682125092E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0197033882141E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.6089868124963E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7293437592941E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 1.5097945843360E-01 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8832820454477E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.6035219539401E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1981217095273E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5991724245810E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646792253828E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8188281250000E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3646176910400E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6394605784141E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1983417694612E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0525892037380E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3231729436666E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6369274817407E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4803629101886E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4265074770275E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6519352415610E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 2.0326754555358E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 7.1683500197106E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 1.1087529350502E+02 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.5154607039034E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 5.3834650635925E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 6.1424286594286E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 1.1021039945128E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.9875053968778E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 9.5466440695483E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.6734130637722E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0498766300771E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7359498694368E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390080543085E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0578148171209E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6835041457522E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1205755472183E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.3973114013672E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6453223022948E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9625901079469E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7059823758366E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1081237792969E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0228617191315E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9392470025498E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1806556754965E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5622026398184E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0567971801758E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1599769210815E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2594931695913E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6277429231296E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1741979598658E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040330886841E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0666313171387E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3459319600989E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0319548925494E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6975862895226E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.94851485E-02 2.03143980E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.95498043E+00 1.09255839E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 28 8.63477172E-07 2.02291536E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 58 8.31721269E-07 2.15674408E-05 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.89145512E-02 1.68786586E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.85800620E+00 1.09024537E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 28 7.51559742E-07 1.75964282E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 52 9.03030712E-07 2.34120170E-05 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.59852054923669E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 47 +(PID.TID 0000.0001) cg2d_last_res = 5.76526654009719E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.0635788969790E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.9180095035590E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.0243415133306E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6882439869013E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0374699991175E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3189733381625E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9761328680594E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4725826026055E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8475894987251E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3605386664599E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0428468728729E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1377323511950E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7096157484286E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.3712427065811E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0842532167986E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1653036437818E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2713146544853E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.8080264182517E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4879746033964E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.3463537310767E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3244059135356E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.4101961597080E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0799050402967E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4087902407495E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.9668609587769E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450777873699E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7656099401412E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4748274370859E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.9950761807460E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.7427815459421E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 9.0561102310369E+04 +(PID.TID 0000.0001) %MON forcing_qnet_min = 2.6204517276812E+04 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 6.2508444244181E+04 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.9048452078585E+04 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7858189494162E+02 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -7.4467175578701E-03 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -4.2933257089527E-04 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 1.1045667717750E-03 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.0195935462279E-04 +(PID.TID 0000.0001) %MON forcing_empmr_max = -7.8376483162499E-02 +(PID.TID 0000.0001) %MON forcing_empmr_min = -2.7120986112334E-01 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -1.8716151376320E-01 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7112046530665E-02 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.3343148578546E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 3.0104736869831E-03 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.8984959041597E-04 +(PID.TID 0000.0001) %MON forcing_fu_mean = 8.4608935579449E-04 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.2081178438277E-04 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.1157665774485E-05 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0219555778038E-03 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.4975873109393E-03 +(PID.TID 0000.0001) %MON forcing_fv_mean = -2.4787241135348E-04 +(PID.TID 0000.0001) %MON forcing_fv_sd = 6.5005480255251E-04 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.2701456971386E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8543423515976E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.2446881340043E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1163796268600E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8540451336809E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.3069173946446E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1271577939578E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1699547437806E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 7.2459152814998E-06 +(PID.TID 0000.0001) %MON ke_max = 1.5940966858268E-04 +(PID.TID 0000.0001) %MON ke_mean = 1.2133746438612E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -1.3728781712160E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.1140677138452E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277213448E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8106506473760E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734842597826E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691075637735E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0972065690995E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.2016300712729E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2041894747932E-02 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.1593983616639E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 3.3843574231780E-03 +(PID.TID 0000.0001) %MON seaice_uice_sd = 3.2832471375311E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 8.4630663097942E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.0878223112151E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -5.9903492437573E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -9.9148964541391E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.6002192102100E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.0805827885543E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 8.8241200735970E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.2210186371195E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.6666475771526E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 6.8993406595551E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.9490283368986E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 2.0099377743190E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.9401727925079E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0039559082223E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.0299378294785E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.8795826585774E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.0521014004339E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 6.1745749519298E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 2.4300919428475E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.8706060700323E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 2.8445152958901E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 1 +(PID.TID 0000.0001) %MON exf_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2952831527506E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.4100144350760E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.8607622224619E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.4057684016500E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2068569743786E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.4006716586934E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9442497948679E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6680490960420E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4567614592354E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1360912373180E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.4939682078218E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.8611740966314E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.6832654558975E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.8362699584315E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4309352542320E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.2969162591452E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3459440709124E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.3745892148706E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.1300300282014E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7775968330834E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4648819946852E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372648550513E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7698802859475E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9903162155877E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271726639726E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9240983933048E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0187974783892E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.6028090815952E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7294518007626E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609855321605E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833202965791E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.6010935417159E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1982241536133E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5994287774633E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646545747982E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8188110034713E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3645730413635E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6394141375606E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1984878226631E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0555651533612E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3224764028055E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6359864467567E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4798025537840E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4264043737180E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6495489306751E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8955025039790E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4245037134592E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.5810049831882E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1998013274789E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.6578132531727E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.9292707704615E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.5793937045122E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.2644177550344E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.2089187924457E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.1141554196263E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0498904445033E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7346106047101E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390069699050E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0578598603627E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6837812825023E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206038349965E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.3991984364244E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6463755238823E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9629736696482E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7099997232451E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1102204849160E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0228931499961E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9404172487581E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1810818551646E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5666663591612E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0567089193375E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1598258522951E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2593360963007E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6281398610271E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1732435942730E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040515633880E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0667072499385E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3459840934468E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0318832207269E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6974851931992E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.75225254E-02 1.60827528E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.18315241E+00 4.45406602E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 32 8.45308276E-07 8.77751038E-06 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 66 9.33157556E-07 1.13117848E-05 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.98170501E-02 1.55616639E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.60509046E+00 3.91872896E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 30 9.33942248E-07 1.59410246E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 80 9.60218226E-07 9.23096746E-06 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.33861453555208E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 45 +(PID.TID 0000.0001) cg2d_last_res = 6.10582955160977E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8860214066455E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2834439688048E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7283570390193E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4578719722373E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3372870653705E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2345826796125E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0242717023285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7159234578009E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4562846520541E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2553071351452E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.2183991412244E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6486095579799E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4847792359670E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.8134725662719E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6588814399235E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6868646010609E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.5653696378060E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5446878771946E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1157564917175E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.4553627765810E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3260653674899E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8315674624044E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0744366062651E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4246112736440E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8795611679600E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450923640175E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7609290591066E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746539609627E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1057030246173E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6664870938342E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.1573266973592E+04 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.8611740966314E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.2444927793605E+03 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.7500174554482E+03 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7845494915853E+02 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.3991984364244E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -5.7626906252125E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 1.6010569106582E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1743806699306E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.3123557540698E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -6.4527858968686E-02 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7653547917575E-02 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.4200488283459E-02 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.3330925716492E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 7.6564711972844E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.4036178826050E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6841309095131E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 1.9808546009021E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.1680515545349E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0679733761674E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -9.2402214137863E-03 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.4380454253311E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.5680741221470E-03 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7098747736311E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.5524230098397E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.7001544852826E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8043830807270E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.5519380448179E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.8286554821658E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6448850193329E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7542151153017E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8335919294502E-05 +(PID.TID 0000.0001) %MON ke_max = 8.0879325078038E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.7009722489498E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -2.8349398945986E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.7945184540995E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277951547E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8107579894347E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843682583E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691469783295E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7634913629106E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.6372988734050E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.8482156442362E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.7249933601916E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.7157660179467E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.8268081571691E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.3647647561458E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 6.2586659794800E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -3.1698716685261E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.8700347008974E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.9696940744667E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.1962371252570E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 7.0982369743073E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.5366700221756E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.2657733890698E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.8895104755355E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.9760806111850E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8921541607071E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.6497137537374E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0023562424984E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 7.0013847648030E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.6991315879810E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.2920145865824E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.1951816758568E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = -2.2737367544323E-13 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.6198683356839E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.6616485821955E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.4260168131154E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 2 +(PID.TID 0000.0001) %MON exf_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2373899561505E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3848318241134E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.7851228006896E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.3646263958233E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.1409483588771E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3862389789206E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.8693724233832E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5186534649124E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4411101226349E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1437992111410E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3300299509194E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.7714562046830E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.5446258169740E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.8080228835383E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3650362462098E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0782196220262E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.7527688899396E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.5524596916123E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.0933055214115E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7683999600605E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4653894471340E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372916367536E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7699878382919E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9905922217476E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271529751792E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9241285741003E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0178915685643E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.5966313506940E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7295599554900E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609699266683E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833585477315E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.5986651533145E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1983267266652E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5996852426804E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646299926724E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8187938819427E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3645283916869E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6393676967070E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1986339246462E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0585416752362E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3217798619445E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6350454117726E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4792421973794E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4263013062694E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6471629231506E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8572616849287E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4440387118459E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.2250277570937E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1895085597792E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.5267129390048E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7105078622494E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.4066076787296E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.0865461938893E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.1696618292870E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0242885848096E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0499042589295E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7332713399833E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390058855016E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0579049691733E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6840584643800E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206321227746E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.4010854714816E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6474287454698E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9633572905820E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7140179220378E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1123171905351E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0229245808607E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9415874949665E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1815081006466E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5711310244864E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0566206584993E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1596747835086E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2591790230100E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6285369157135E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1722892696108E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040700380919E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0667831827383E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3460362267948E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0318117788237E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6973864151273E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.86268655E-02 1.55520244E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.74940742E+00 2.38021429E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 36 8.03453505E-07 1.02721689E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 76 9.82671780E-07 3.72577455E-06 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.73268298E-02 1.13232277E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.67667951E+00 2.13603102E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 36 9.83282302E-07 2.30633388E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 62 7.86209399E-07 1.81170152E-06 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.65585935462282E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 44 +(PID.TID 0000.0001) cg2d_last_res = 8.58723452545735E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.1200571210931E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4175050217332E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1672663449666E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4432999959959E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1981798555172E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4856320293537E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.8577077898496E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.0146479170342E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.7072406453746E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7446705388097E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5108523081937E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9360355565528E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.4159239083143E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4372997768564E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8518921774123E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1830276214993E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0184732200242E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0627452595099E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7266423173375E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.6814097167347E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3263111506735E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9325037762574E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0735109946567E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4276089311250E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8667004030101E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5451057670656E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7614330464559E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746250543494E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1242061790498E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6601984720847E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3296428273802E+03 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.7714562046830E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.5566928962727E+03 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.0971332564756E+03 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.9382853834998E+01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.4010854714816E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.3420132056940E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1915797496867E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.2846407512099E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.1966493315379E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.2855352557884E-02 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -4.6219743448643E-03 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 3.2453751952297E-03 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 2.6661731270929E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 9.3784155584468E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -3.6575324129790E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4295749030177E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.4715582265044E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.1825442548098E-03 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0715885866973E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.3774232380724E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.2001517676089E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1360971466021E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.6327922948076E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.7002376318934E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.7529796433053E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.6112689300872E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7001513128747E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9208513860142E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.5006880041735E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.1077424408867E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3501591982197E-05 +(PID.TID 0000.0001) %MON ke_max = 2.0713043335779E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.0939854603399E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -3.7035222459306E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2218960180709E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277963980E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8113036948354E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843700856E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691163898609E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6901840770127E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6277922435323E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.6142182325436E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -4.8887769062788E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 7.1103198736411E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.7080755674205E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6086542694329E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.9083652893255E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5124609590471E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.8009273104343E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.1716525401934E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6083280170802E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 6.5733635985703E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.7423616716142E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.6507465588865E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.7530330464859E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.8152202990544E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8493975928864E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.9427730005235E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0012996226770E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 6.4344009499758E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5540561537986E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.3974679417050E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.0759529291364E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = -3.5527136788005E-15 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.4935841572077E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.6045761693369E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.5792946694910E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 3 +(PID.TID 0000.0001) %MON exf_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2253598198161E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3800177447582E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.7761693545994E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.3595528219142E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.1415463543815E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3834963506767E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.8522651112696E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.4696471724590E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4383722124016E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1529625550114E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.2984723466062E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.7347423591597E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.5220071441143E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.7990960100422E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3523184366411E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0360779869846E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.8306536701970E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.5805447491622E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.0822708057213E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7672733525641E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4658968995829E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8373184184559E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7700953906363E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9908682681638E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271336255764E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9241587548959E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0169856587394E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.5904536197929E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7296682234552E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609550037542E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833967989048E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.5962367887737E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1984294286706E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5999418201857E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646054790944E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8187767604140E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3644837420104E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6393212558534E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1987800753926E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0615187686393E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3210833210834E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6341043767886E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4786818409748E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4261982746893E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6447772192714E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8516255042579E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4493568839759E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.1681922077285E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1769273547920E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.5006206066376E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.6682999561148E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.3342154475673E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.0584600519359E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.1576042080970E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0074628262555E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0499180733557E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7319320752566E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390048010982E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0579501435483E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6843356913630E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206604105527E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.4029725065388E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6484819670573E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9637409707136E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7180369708849E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1144138961542E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0229560117253E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9427577411748E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1819344119040E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5755966343166E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0565323976611E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1595237147222E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2590219497194E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6289340871590E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1713349858933E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040885127959E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0668591155380E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3460883601427E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0317405668875E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6972899555616E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.92432265E-02 9.42131536E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.53414557E+00 1.96161826E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 42 8.71647096E-07 2.34054491E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 46 7.47279511E-07 1.11762431E-06 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 8.86796066E-03 5.30245093E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.50953507E+00 1.91708728E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 44 9.99010196E-07 2.68869550E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 36 7.29226934E-07 9.42201385E-07 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.25006909262882E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 44 +(PID.TID 0000.0001) cg2d_last_res = 9.20603291526689E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.2000545184694E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3349338937347E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.5207370268035E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5184292488422E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0934637775163E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.2512406374979E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.5127658349185E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6858722141188E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7179469096981E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0034753321535E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.6473080704341E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.4309651745800E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.9193420182227E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3729426406751E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9142700806046E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6784756713641E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5011707685896E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4487010863205E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4063919558286E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.6544432094708E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3261119623659E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9532335461641E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0733266932513E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4281134149900E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8552715446868E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5451168695842E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7619300672645E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746200189789E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1270389614300E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6563772376287E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 8.7757792393125E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.7347423591597E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 3.0507319980419E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.3699181155992E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.3268200966658E+01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.4029725065388E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.5761010937622E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.2895611002370E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.2825569840473E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.1977294661131E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -2.5019541967335E-03 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -8.7217501134798E-04 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.5854743674227E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 6.8219711070130E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 8.2449272116085E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -4.5632567268432E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4073994705238E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.3131242220756E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.1286790923426E-03 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0733265513237E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -6.0122420618096E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -8.4627902163586E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.5042336154921E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.8323783419072E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2161666942356E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0558031493020E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.8438172668422E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2160541821192E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0760521984091E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.5754574305290E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4318891569936E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3921691359412E-05 +(PID.TID 0000.0001) %MON ke_max = 4.4630819685464E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.2190237265223E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -5.9719988753608E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.3649429719562E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277722320E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8117909143867E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843345698E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1690608850023E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7265234057788E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4052396312230E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.9278613664963E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.6336420486095E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 8.0980071875100E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 6.5934108724636E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.9774517829662E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0422521997256E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5834238711265E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4536983137141E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.7780118682829E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2747441208059E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 6.4837610795517E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.7688271947091E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.5900585080448E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.7249106227686E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7858987674424E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8389251216999E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.9767313359982E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0013780623038E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 6.3308038477445E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5176643246776E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.4095623457340E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.0526892340529E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.4693342058545E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.5930872779066E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.6109274783666E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 4 ckptA +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986541647D+04 +(PID.TID 0000.0001) global fc = 0.723648986541647D+04 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = -1.11022302462516E-16 1.04090595757221E-03 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = -1.13659082146000E-14 8.36868947309287E-04 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = -5.56499291093360E-15 1.48212043427929E-03 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = -3.34177130412172E-14 2.04326452102084E-04 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986541647D+04 +(PID.TID 0000.0001) global fc = 0.723648986541647D+04 +(PID.TID 0000.0001) grdchk reference fc: fcref = 7.23648986541647E+03 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res closest next position: + grad-res 0 10 4 8 1 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 10 300 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 6 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 6 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.53963516883005E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 8.36136715420821E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 4.98212582300539E-15 1.20525368718137E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979614865E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006126D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833162499D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269583D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189110271D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986660099D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986660099D+04 +(PID.TID 0000.0001) global fc = 0.723648986660099D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986660099E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.71310751642773E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.89312798349573E-15 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 9.70057367766231E-15 1.20525368718153E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979559543E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006246D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125354D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269703D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189149071D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623195D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986623195D+04 +(PID.TID 0000.0001) global fc = 0.723648986623195D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623195E+03 +grad-res ------------------------------- + grad-res 0 1 6 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986623E+03 + grad-res 0 1 1 10 0 1 1 1 1.84514928426E-04 1.84516466106E-04 -8.33363399599E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.84514928426408E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.84516466106288E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 11 300 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 10 2 + ph-grd -->hit<-- 7 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 7 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.01147995429574E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.63638890905116E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 5.47478729018280E-15 1.20525368718135E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979605907E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006143D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833161897D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269600D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114741D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986659531D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986659531D+04 +(PID.TID 0000.0001) global fc = 0.723648986659531D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986659531E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.87190279838023E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.13728471085039E-14 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 6.29704621779581E-15 1.20525368718155E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979568500E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006229D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125956D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269686D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189144603D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623762D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986623762D+04 +(PID.TID 0000.0001) global fc = 0.723648986623762D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623762E+03 +grad-res ------------------------------- + grad-res 0 2 7 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986624E+03 + grad-res 0 2 2 11 0 1 1 1 1.78844911598E-04 1.78844402399E-04 2.84715668986E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.78844911598168E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.78844402398681E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 12 300 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 11 3 + ph-grd -->hit<-- 8 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 8 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.08780778723872E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.99374194510239E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.33628174770718E-15 1.20525368718125E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979597207E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006181D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833167152D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269637D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114320D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986664862D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986664862D+04 +(PID.TID 0000.0001) global fc = 0.723648986664862D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986664862E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.49106291150269E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.10848830114918E-14 1.20987150232976E+00 + cg2d: Sum(rhs),rhsMax = 8.01095301206090E-15 1.20525368718164E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979577202E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006192D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833120701D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269649D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145024D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986618432D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986618432D+04 +(PID.TID 0000.0001) global fc = 0.723648986618432D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986618432E+03 +grad-res ------------------------------- + grad-res 0 3 8 8 1 1 1 1 7.23648986542E+03 7.23648986665E+03 7.23648986618E+03 + grad-res 0 3 3 12 0 1 1 1 2.32148292248E-04 2.32145794143E-04 1.07608145284E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.32148292248151E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.32145794143435E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 13 300 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 12 4 + ph-grd -->hit<-- 9 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 9 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 1.97758476261356E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.01516017814163E-14 1.20987150232969E+00 + cg2d: Sum(rhs),rhsMax = 8.74300631892311E-15 1.20525368718108E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979621159E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005920D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833174279D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269376D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114198D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986671466D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986671466D+04 +(PID.TID 0000.0001) global fc = 0.723648986671466D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986671466E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.83106871279415E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00579267137135E-14 1.20987150232980E+00 + cg2d: Sum(rhs),rhsMax = 6.54337695138452E-15 1.20525368718180E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979553253E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006453D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833113574D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269910D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145150D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986611828D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986611828D+04 +(PID.TID 0000.0001) global fc = 0.723648986611828D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986611828E+03 +grad-res ------------------------------- + grad-res 0 4 9 8 1 1 1 1 7.23648986542E+03 7.23648986671E+03 7.23648986612E+03 + grad-res 0 4 4 13 0 1 1 1 2.98190171886E-04 2.98190570902E-04 -1.33812544978E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.98190171886221E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.98190570902079E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 14 300 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 13 5 + ph-grd -->hit<-- 10 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 10 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.23432383705813E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00666003310934E-14 1.20987150232963E+00 + cg2d: Sum(rhs),rhsMax = 7.00828284294630E-15 1.20525368718083E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979629832E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005890D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833182020D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269346D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189207967D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986679148D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986679148D+04 +(PID.TID 0000.0001) global fc = 0.723648986679148D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986679148E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.68535194081210E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.03164005116341E-14 1.20987150232986E+00 + cg2d: Sum(rhs),rhsMax = 6.79664657887713E-15 1.20525368718206E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979544581E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006483D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833105832D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269940D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189051378D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986604146D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986604146D+04 +(PID.TID 0000.0001) global fc = 0.723648986604146D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986604146E+03 +grad-res ------------------------------- + grad-res 0 5 10 8 1 1 1 1 7.23648986542E+03 7.23648986679E+03 7.23648986604E+03 + grad-res 0 5 5 14 0 1 1 1 3.75009053569E-04 3.75008312403E-04 1.97639310484E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.75009053568532E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.75008312403224E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-03 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 1 7.2364898654165E+03 7.2364898666010E+03 7.2364898662320E+03 +(PID.TID 0000.0001) grdchk output (g): 1 1.8451646610629E-04 1.8451492842641E-04 -8.3336339959938E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 2 7.2364898654165E+03 7.2364898665953E+03 7.2364898662376E+03 +(PID.TID 0000.0001) grdchk output (g): 2 1.7884440239868E-04 1.7884491159817E-04 2.8471566898558E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 3 7.2364898654165E+03 7.2364898666486E+03 7.2364898661843E+03 +(PID.TID 0000.0001) grdchk output (g): 3 2.3214579414343E-04 2.3214829224815E-04 1.0760814528443E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 4 7.2364898654165E+03 7.2364898667147E+03 7.2364898661183E+03 +(PID.TID 0000.0001) grdchk output (g): 4 2.9819057090208E-04 2.9819017188622E-04 -1.3381254497791E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 5 7.2364898654165E+03 7.2364898667915E+03 7.2364898660415E+03 +(PID.TID 0000.0001) grdchk output (g): 5 3.7500831240322E-04 3.7500905356853E-04 1.9763931048411E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 6.3094785130871E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 8.8754808458033949 +(PID.TID 0000.0001) System time: 0.34397298959083855 +(PID.TID 0000.0001) Wall clock time: 9.2598998546600342 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.5348000954836607E-002 +(PID.TID 0000.0001) System time: 2.6635999325662851E-002 +(PID.TID 0000.0001) Wall clock time: 8.3857059478759766E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 5.1412449404597282 +(PID.TID 0000.0001) System time: 1.6212001442909241E-002 +(PID.TID 0000.0001) Wall clock time: 5.1749408245086670 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.5955700576305389E-002 +(PID.TID 0000.0001) System time: 7.2269737720489502E-003 +(PID.TID 0000.0001) Wall clock time: 6.3618898391723633E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 4.0162183344364166E-002 +(PID.TID 0000.0001) System time: 2.1049752831459045E-003 +(PID.TID 0000.0001) Wall clock time: 4.2527914047241211E-002 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.0409544706344604E-004 +(PID.TID 0000.0001) System time: 4.9658119678497314E-006 +(PID.TID 0000.0001) Wall clock time: 3.0088424682617188E-004 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4654628932476044E-002 +(PID.TID 0000.0001) System time: 5.4031610488891602E-005 +(PID.TID 0000.0001) Wall clock time: 1.4766693115234375E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.1958317160606384E-003 +(PID.TID 0000.0001) System time: 1.9013881683349609E-005 +(PID.TID 0000.0001) Wall clock time: 4.2631626129150391E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0433692261576653 +(PID.TID 0000.0001) System time: 3.0779577791690826E-003 +(PID.TID 0000.0001) Wall clock time: 2.0525722503662109 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 0.55876823514699936 +(PID.TID 0000.0001) System time: 3.6100670695304871E-004 +(PID.TID 0000.0001) Wall clock time: 0.56128668785095215 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 0.51492850482463837 +(PID.TID 0000.0001) System time: 2.6999786496162415E-004 +(PID.TID 0000.0001) Wall clock time: 0.51717948913574219 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.0385145694017410 +(PID.TID 0000.0001) System time: 2.8995051980018616E-004 +(PID.TID 0000.0001) Wall clock time: 1.0415315628051758 +(PID.TID 0000.0001) No. starts: 224 +(PID.TID 0000.0001) No. stops: 224 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0380026400089264 +(PID.TID 0000.0001) System time: 7.0035457611083984E-006 +(PID.TID 0000.0001) Wall clock time: 1.0407786369323730 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11937667429447174 +(PID.TID 0000.0001) System time: 1.4007091522216797E-005 +(PID.TID 0000.0001) Wall clock time: 0.11969685554504395 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6051392555236816E-002 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 3.6164522171020508E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7592877149581909E-002 +(PID.TID 0000.0001) System time: 5.0365924835205078E-006 +(PID.TID 0000.0001) Wall clock time: 1.7632722854614258E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.0963695645332336E-002 +(PID.TID 0000.0001) System time: 7.0147216320037842E-006 +(PID.TID 0000.0001) Wall clock time: 7.1186542510986328E-002 +(PID.TID 0000.0001) No. starts: 104 +(PID.TID 0000.0001) No. stops: 104 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2373854219913483 +(PID.TID 0000.0001) System time: 1.0021030902862549E-006 +(PID.TID 0000.0001) Wall clock time: 1.2404634952545166 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1816959381103516E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.2448768615722656E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.7138583660125732E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.7439289093017578E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8540194034576416E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.8991699218750000E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9375126361846924E-003 +(PID.TID 0000.0001) System time: 3.9369985461235046E-003 +(PID.TID 0000.0001) Wall clock time: 1.1104345321655273E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.4215131998062134E-003 +(PID.TID 0000.0001) System time: 1.9840002059936523E-003 +(PID.TID 0000.0001) Wall clock time: 4.4341087341308594E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 0.11251485347747803 +(PID.TID 0000.0001) System time: 4.0010139346122742E-003 +(PID.TID 0000.0001) Wall clock time: 0.11765933036804199 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 1.8081784248352051E-002 +(PID.TID 0000.0001) System time: 7.8499987721443176E-003 +(PID.TID 0000.0001) Wall clock time: 2.6094436645507812E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.2180290222167969E-003 +(PID.TID 0000.0001) System time: 1.9997358322143555E-005 +(PID.TID 0000.0001) Wall clock time: 5.2719116210937500E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.8888454437255859E-003 +(PID.TID 0000.0001) System time: 9.8997354507446289E-004 +(PID.TID 0000.0001) Wall clock time: 4.9080848693847656E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.2592642307281494 +(PID.TID 0000.0001) System time: 5.5691003799438477E-002 +(PID.TID 0000.0001) Wall clock time: 5.3362488746643066 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.34620881080627441 +(PID.TID 0000.0001) System time: 3.6404043436050415E-002 +(PID.TID 0000.0001) Wall clock time: 0.38906168937683105 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 4.9078192710876465 +(PID.TID 0000.0001) System time: 1.8321931362152100E-002 +(PID.TID 0000.0001) Wall clock time: 4.9409196376800537 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 6.3666820526123047E-002 +(PID.TID 0000.0001) System time: 1.7297267913818359E-004 +(PID.TID 0000.0001) Wall clock time: 6.3989877700805664E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 4.6953837871551514 +(PID.TID 0000.0001) System time: 8.0979764461517334E-003 +(PID.TID 0000.0001) Wall clock time: 4.7165167331695557 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.4736404418945312E-002 +(PID.TID 0000.0001) System time: 1.9419491291046143E-003 +(PID.TID 0000.0001) Wall clock time: 2.7115106582641602E-002 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.12156963348388672 +(PID.TID 0000.0001) System time: 7.8560411930084229E-003 +(PID.TID 0000.0001) Wall clock time: 0.13057947158813477 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 1.7118453979492188E-003 +(PID.TID 0000.0001) System time: 2.4199485778808594E-004 +(PID.TID 0000.0001) Wall clock time: 1.9738674163818359E-003 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 43744 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 43744 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/results/output_tap_adj.txt b/verification/lab_sea/results/output_tap_adj.txt new file mode 100644 index 0000000000..e70956787d --- /dev/null +++ b/verification/lab_sea/results/output_tap_adj.txt @@ -0,0 +1,5588 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68q +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu Jul 27 11:02:43 AM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 10 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 8 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 23 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 20 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 16 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># tRef - Reference vertical potential temperature (deg C) +(PID.TID 0000.0001) ># sRef - Reference vertical salinity (PSU) +(PID.TID 0000.0001) ># viscAh - Horizontal eddy viscosity coefficient (m^2/s) +(PID.TID 0000.0001) ># viscAz - Vertical eddy viscosity coefficient (m^2/s) +(PID.TID 0000.0001) ># diffKhT - Horizontal temperature diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKzT - Vertical temperature diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKhS - Horizontal salt diffusivity (m^2/s) +(PID.TID 0000.0001) ># diffKzS - Vertical salt diffusivity (m^2/s) +(PID.TID 0000.0001) ># gravity - Acceleration due to gravity (m/s^2) +(PID.TID 0000.0001) ># rigidLid - Set to true to use rigid lid +(PID.TID 0000.0001) ># implicitFreeSurface - Set to true to use implicit free surface +(PID.TID 0000.0001) ># eosType - Flag for linear or polynomial equation of state +(PID.TID 0000.0001) ># momAdvection - On/Off flag for momentum self transport +(PID.TID 0000.0001) ># momViscosity - On/Off flag for momentum mixing +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 24.0 , 23.0 , 22.0 , 21.0 , 20.0 , +(PID.TID 0000.0001) > 19.0 , 18.0 , 17.0 , 16.0 , 15.0 , +(PID.TID 0000.0001) > 14.0 , 13.0 , 12.0 , 11.0 , 10.0 , +(PID.TID 0000.0001) > 9.0 , 8.0 , 7.0 , 6.0, 5.0 , +(PID.TID 0000.0001) > 4.0 , 3.0 , 2.0 , +(PID.TID 0000.0001) > sRef= 34.65, 34.75, 34.82, 34.87, 34.90, +(PID.TID 0000.0001) > 34.90, 34.86, 34.78, 34.69, 34.60, +(PID.TID 0000.0001) > 34.58, 34.62, 34.68, 34.72, 34.73, +(PID.TID 0000.0001) > 34.74, 34.73, 34.73, 34.72, 34.72, +(PID.TID 0000.0001) > 34.71, 34.70, 34.69, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > viscAz=1.93e-5, +(PID.TID 0000.0001) > viscAh=5.E4, +(PID.TID 0000.0001) > diffKhT=0.0, +(PID.TID 0000.0001) > diffKzT=1.46e-5, +(PID.TID 0000.0001) > diffKhS=0.0, +(PID.TID 0000.0001) > diffKzS=1.46e-5, +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > saltStepping=.TRUE., +(PID.TID 0000.0001) > tempStepping=.TRUE., +(PID.TID 0000.0001) > momStepping=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > allowFreezing=.FALSE., +(PID.TID 0000.0001) >#- set wrong celsius2K to reproduce old results: +(PID.TID 0000.0001) > celsius2K=273.16, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986.D0, +(PID.TID 0000.0001) > gravity = 9.8156, +(PID.TID 0000.0001) > rhoConst = 1027.D0, +(PID.TID 0000.0001) > rhoConstFresh = 999.8, +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) >#ph( +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > multiDimAdvection=.TRUE., +(PID.TID 0000.0001) > tempAdvScheme=30, +(PID.TID 0000.0001) > saltAdvScheme=30, +(PID.TID 0000.0001) >#ph) +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) >#- not safe to use globalFiles in multi-processors runs; set instead useSingleCpuIO +(PID.TID 0000.0001) > useSingleCpuIO=.FALSE., +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > writeBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># cg2dMaxIters - Maximum number of 2d solver iterations +(PID.TID 0000.0001) ># cg2dTargetResidual - Solver target residual +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># startTime - Integration starting time (s) +(PID.TID 0000.0001) ># endTime - Integration ending time (s) +(PID.TID 0000.0001) ># tauCD - CD scheme coupling timescale (s) +(PID.TID 0000.0001) ># deltaTMom - Timestep for momemtum equations (s) +(PID.TID 0000.0001) ># deltaTtracer - Tracer timestep (s) +(PID.TID 0000.0001) ># deltaTClock - Timestep used as model "clock" (s) +(PID.TID 0000.0001) ># abEps - Adams-Bashforth stabilising factor +(PID.TID 0000.0001) ># pChkPtFreq - Frequency of permanent check pointing (s) +(PID.TID 0000.0001) ># chkPtFreq - Frequency of rolling check pointing (s) +(PID.TID 0000.0001) ># dumpFreq - Frequency at which model state is stored (s) +(PID.TID 0000.0001) ># tauThetaClimRelax - Relaxation to climatology time scale (s) +(PID.TID 0000.0001) ># tauSaltClimRelax - Relaxation to climatology time scale (s) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > tauCD=172800., +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) > nTimeSteps=4, +(PID.TID 0000.0001) > deltaTmom=3600.0, +(PID.TID 0000.0001) > deltaTtracer=3600.0, +(PID.TID 0000.0001) > deltaTClock =3600.0, +(PID.TID 0000.0001) > cAdjFreq=0., +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=36000., +(PID.TID 0000.0001) > chkptFreq= 0., +(PID.TID 0000.0001) > dumpFreq = 0., +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > adjDumpFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># usingSphericalPolarGrid - On/Off flag for spherical polar coordinates +(PID.TID 0000.0001) ># delX - Zonal grid spacing (degrees) +(PID.TID 0000.0001) ># delY - Meridional grid spacing (degrees) +(PID.TID 0000.0001) ># delZ - Vertical grid spacing (m) +(PID.TID 0000.0001) ># ygOrigin - Southern boundary latitude (degrees) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delX=20*2.E0, +(PID.TID 0000.0001) > delY=16*2.E0, +(PID.TID 0000.0001) > delZ= 10., 10., 15., 20., 20., 25., 35., 50., 75., +(PID.TID 0000.0001) > 100., 150., 200., 275., 350., 415., 450., +(PID.TID 0000.0001) > 500., 500., 500., 500., 500., 500., 500., +(PID.TID 0000.0001) > ygOrigin=46., +(PID.TID 0000.0001) > xgOrigin=280., +(PID.TID 0000.0001) > rSphere = 6371.D3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># bathyFile - File containing bathymetry +(PID.TID 0000.0001) ># hydrogThetaFile - File containing initial potential temperature data +(PID.TID 0000.0001) ># hydrogSaltFile - File containing initial salinity data +(PID.TID 0000.0001) ># zonalWindFile - File containing zonal wind data +(PID.TID 0000.0001) ># meridWindFile - File containing meridional wind data +(PID.TID 0000.0001) ># thetaClimFile - File containing theta climatology used for relaxation +(PID.TID 0000.0001) ># saltClimFile - File containing salt climatology used for relaxation +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy.labsea1979', +(PID.TID 0000.0001) > hydrogThetaFile = 'LevCli_temp.labsea1979', +(PID.TID 0000.0001) > hydrogSaltFile = 'LevCli_salt.labsea1979', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useKPP = .TRUE., +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) > useDOWN_SLOPE=.TRUE., +(PID.TID 0000.0001) > useDiagnostics = .FALSE., +(PID.TID 0000.0001) > useCAL = .TRUE., +(PID.TID 0000.0001) > useMNC = .TRUE., +(PID.TID 0000.0001) > useECCO = .TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/kpp compiled and used ( useKPP = T ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/down_slope compiled and used ( useDOWN_SLOPE = T ) + pkg/cal compiled and used ( useCAL = T ) + pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ecco compiled and used ( useECCO = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/salt_plume compiled but not used ( useSALT_PLUME = F ) + pkg/diagnostics compiled but not used ( useDiagnostics = F ) + pkg/mnc compiled and used ( useMNC = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) MNC_READPARMS: opening file 'data.mnc' +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.mnc +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.mnc" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "data.mnc" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) > &MNC_01 +(PID.TID 0000.0001) ># mnc_echo_gvtypes=.FALSE., +(PID.TID 0000.0001) ># mnc_use_indir=.FALSE., +(PID.TID 0000.0001) > mnc_use_outdir=.TRUE., +(PID.TID 0000.0001) > mnc_outdir_str='mnc_test_', +(PID.TID 0000.0001) >#mnc_outdir_date=.TRUE., +(PID.TID 0000.0001) > monitor_mnc=.FALSE., +(PID.TID 0000.0001) >#timeave_mnc=.FALSE., +(PID.TID 0000.0001) >#snapshot_mnc=.FALSE., +(PID.TID 0000.0001) >#autodiff_mnc=.FALSE., +(PID.TID 0000.0001) > pickup_write_mnc=.FALSE., +(PID.TID 0000.0001) > pickup_read_mnc=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) MNC_READPARMS: finished reading data.mnc +(PID.TID 0000.0001) CAL_READPARMS: opening data.cal +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cal +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cal" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># Calendar Parameters +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &CAL_NML +(PID.TID 0000.0001) > TheCalendar='gregorian', +(PID.TID 0000.0001) ># TheCalendar='model', +(PID.TID 0000.0001) > startDate_1=19790101, +(PID.TID 0000.0001) > startDate_2=000000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CAL_READPARMS: finished reading data.cal +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) > repeatPeriod = 31622400.0, +(PID.TID 0000.0001) > exf_iprec = 32, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > exf_adjMonSelect = 3, +(PID.TID 0000.0001) > exf_adjMonFreq = 10800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > hfluxstartdate2 = 180000, +(PID.TID 0000.0001) > hfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > sfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > sfluxstartdate2 = 180000, +(PID.TID 0000.0001) > sfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > ustressstartdate1 = 19781216, +(PID.TID 0000.0001) > ustressstartdate2 = 180000, +(PID.TID 0000.0001) > ustressperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vstressstartdate1 = 19781216, +(PID.TID 0000.0001) > vstressstartdate2 = 180000, +(PID.TID 0000.0001) > vstressperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempstartdate1 = 19781216, +(PID.TID 0000.0001) > atempstartdate2 = 180000, +(PID.TID 0000.0001) > atempperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > aqhstartdate1 = 19781216, +(PID.TID 0000.0001) > aqhstartdate2 = 180000, +(PID.TID 0000.0001) > aqhperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#evapstartdate1 = 19781216, +(PID.TID 0000.0001) >#evapstartdate2 = 180000, +(PID.TID 0000.0001) >#evapperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipstartdate1 = 19781216, +(PID.TID 0000.0001) > precipstartdate2 = 180000, +(PID.TID 0000.0001) > precipperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindstartdate1 = 19781216, +(PID.TID 0000.0001) > uwindstartdate2 = 180000, +(PID.TID 0000.0001) > uwindperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > vwindstartdate1 = 19781216, +(PID.TID 0000.0001) > vwindstartdate2 = 180000, +(PID.TID 0000.0001) > vwindperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > swfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > swfluxstartdate2 = 180000, +(PID.TID 0000.0001) > swfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > lwfluxstartdate1 = 19781216, +(PID.TID 0000.0001) > lwfluxstartdate2 = 180000, +(PID.TID 0000.0001) > lwfluxperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > swdownstartdate1 = 19781216, +(PID.TID 0000.0001) > swdownstartdate2 = 180000, +(PID.TID 0000.0001) > swdownperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > lwdownstartdate1 = 19781216, +(PID.TID 0000.0001) > lwdownstartdate2 = 180000, +(PID.TID 0000.0001) > lwdownperiod = 2635200.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsststartdate1 = 19781216, +(PID.TID 0000.0001) > climsststartdate2 = 180000, +(PID.TID 0000.0001) > climsstperiod = 2635200.0, +(PID.TID 0000.0001) > climsstTauRelax = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsssstartdate1 = 19781216, +(PID.TID 0000.0001) > climsssstartdate2 = 180000, +(PID.TID 0000.0001) > climsssperiod = 2635200.0, +(PID.TID 0000.0001) > climsssTauRelax = 4142330.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > hfluxfile = ' ', +(PID.TID 0000.0001) > sfluxfile = ' ', +(PID.TID 0000.0001) > ustressfile = ' ', +(PID.TID 0000.0001) > vstressfile = ' ', +(PID.TID 0000.0001) > atempfile = 'tair.labsea1979', +(PID.TID 0000.0001) > aqhfile = 'qa.labsea1979', +(PID.TID 0000.0001) > uwindfile = 'u10m.labsea1979', +(PID.TID 0000.0001) > vwindfile = 'v10m.labsea1979', +(PID.TID 0000.0001) >#evapfile = 'evap.labsea1979', +(PID.TID 0000.0001) > precipfile = 'prate.labsea1979', +(PID.TID 0000.0001) > lwfluxfile = ' ', +(PID.TID 0000.0001) > swfluxfile = ' ', +(PID.TID 0000.0001) > lwdownfile = 'flo.labsea1979', +(PID.TID 0000.0001) > swdownfile = 'fsh.labsea1979', +(PID.TID 0000.0001) > runoffFile = ' ' +(PID.TID 0000.0001) > climsstfile = ' ', +(PID.TID 0000.0001) > climsssfile = 'SSS_monthly.labsea1979', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_04 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) KPP_READPARMS: opening data.kpp +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.kpp +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.kpp" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># KPP parameters +(PID.TID 0000.0001) > &KPP_PARM01 +(PID.TID 0000.0001) > KPPmixingMaps = .FALSE., +(PID.TID 0000.0001) > KPPwriteState = .TRUE., +(PID.TID 0000.0001) > KPP_ghatUseTotalDiffus=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) KPP_READPARMS ; starts to read KPP_PARM01 +(PID.TID 0000.0001) KPP_READPARMS ; read KPP_PARM01 : OK +(PID.TID 0000.0001) KPP_READPARMS: finished reading data.kpp +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .FALSE., +(PID.TID 0000.0001) ># GM_isopycK = 1.1D+3, +(PID.TID 0000.0001) ># GM_background_K = 0.9D+3, +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) DWNSLP_READPARMS: opening data.down_slope +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.down_slope +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.down_slope" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DOWN_SLOPE package parameters (lines beginning "#" are comments): +(PID.TID 0000.0001) ># DWNSLP_slope :: fixed slope (=0 => use the local slope) +(PID.TID 0000.0001) ># DWNSLP_rec_mu :: reciprol friction parameter (unit = time scale [s]) +(PID.TID 0000.0001) ># used to compute the flow: U=dy*dz*(slope * g/mu * dRho / rho0) +(PID.TID 0000.0001) ># dwnslp_drFlow :: max. thickness [m] of the effective downsloping flow layer +(PID.TID 0000.0001) > &DWNSLP_PARM01 +(PID.TID 0000.0001) > DWNSLP_slope = 5.E-3, +(PID.TID 0000.0001) > DWNSLP_rec_mu= 1.E+4, +(PID.TID 0000.0001) > DWNSLP_drFlow= 30., +(PID.TID 0000.0001) ># temp_useDWNSLP=.FALSE., +(PID.TID 0000.0001) ># salt_useDWNSLP=.FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DWNSLP_READPARMS: finished reading data.downslp +(PID.TID 0000.0001) DWNSLP_slope = /* DOWNSLP fixed slope (=0 => use local slope) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DWNSLP_rec_mu = /* DOWNSLP recip. friction parameter (time, s ) */ +(PID.TID 0000.0001) 1.000000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DWNSLP_drFlow = /* DOWNSLP effective layer thickness ( m ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > SEAICE_initialHEFF = 1.0, +(PID.TID 0000.0001) > SEAICE_deltaTtherm = 3600., +(PID.TID 0000.0001) > SEAICE_deltaTdyn = 3600., +(PID.TID 0000.0001) > SEAICEuseDYNAMICS =.TRUE., +(PID.TID 0000.0001) >#-- According to Martin, SEAICE_clipVelocities is not recommended +(PID.TID 0000.0001) ># SEAICE_clipVelocities=.TRUE., +(PID.TID 0000.0001) > SEAICEadvSalt =.FALSE., +(PID.TID 0000.0001) >#-- above: to reproduce old results +(PID.TID 0000.0001) > LSR_ERROR = 1.E-6, +(PID.TID 0000.0001) >### SEAICE_deltaTevp = 60, +(PID.TID 0000.0001) > SEAICE_EPS = 1.E-8, +(PID.TID 0000.0001) > SEAICE_multDim = 7, +(PID.TID 0000.0001) >#- to reproduce old results with former #defined SEAICE_SOLVE4TEMP_LEGACY code +(PID.TID 0000.0001) > useMaykutSatVapPoly = .TRUE., +(PID.TID 0000.0001) > postSolvTempIter = 0, +(PID.TID 0000.0001) >#- paramaters from SEAICE_GROWTH_LEGACY branch +(PID.TID 0000.0001) > SEAICE_doOpenWaterGrowth=.FALSE., +(PID.TID 0000.0001) > SEAICE_doOpenWaterMelt=.FALSE., +(PID.TID 0000.0001) > SEAICE_areaGainFormula=2, +(PID.TID 0000.0001) > SEAICE_areaLossFormula=3, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > SEAICE_saltFrac = 0.3, +(PID.TID 0000.0001) > SEAICE_tempFrz0 = -1.96, +(PID.TID 0000.0001) > SEAICE_dTempFrz_dS = 0., +(PID.TID 0000.0001) > SEAICE_availHeatFrac = 0.8, +(PID.TID 0000.0001) > SEAICEdiffKhArea = 200., +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) ># SEAICE_tave_mnc = .FALSE., +(PID.TID 0000.0001) ># SEAICE_dump_mnc = .FALSE., +(PID.TID 0000.0001) ># SEAICE_mon_mnc = .FALSE., +(PID.TID 0000.0001) ># old defaults +(PID.TID 0000.0001) > SEAICEadvScheme = 2, +(PID.TID 0000.0001) > SEAICEscaleSurfStress = .FALSE., +(PID.TID 0000.0001) > SEAICEaddSnowMass = .FALSE., +(PID.TID 0000.0001) > SEAICE_useMultDimSnow = .FALSE., +(PID.TID 0000.0001) > SEAICEetaZmethod = 0, +(PID.TID 0000.0001) > SEAICE_Olx = 0, +(PID.TID 0000.0001) > SEAICE_Oly = 0, +(PID.TID 0000.0001) > SEAICE_drag = 0.002, +(PID.TID 0000.0001) > SEAICE_waterDrag = 0.005355404089581304, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM02 +(PID.TID 0000.0001) ># currently COST_ICE_TEST is undefined in SEAICE_OPTIONS.h, +(PID.TID 0000.0001) ># so that none of these parameters are used and the cost function +(PID.TID 0000.0001) ># contribution by sea ice is zero (f_ice = 0.) +(PID.TID 0000.0001) > mult_ice = 1., +(PID.TID 0000.0001) ># choose which seaice cost term you want +(PID.TID 0000.0001) > cost_ice_flag = 1, +(PID.TID 0000.0001) ># the following timings are obsolete; +(PID.TID 0000.0001) ># replaced by lastinterval +(PID.TID 0000.0001) > costIceStart1 = 20000101, +(PID.TID 0000.0001) > costIceStart2 = 00000, +(PID.TID 0000.0001) > costIceEnd1 = 20000201, +(PID.TID 0000.0001) > costIceEnd2 = 00000, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) ># useKPPinAdMode = .FALSE., +(PID.TID 0000.0001) ># useGMRediInAdMode = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseDYNAMICSswitchInAd = /* switch On/Off SEAICE Dyn in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFTswitchInAd= /* switch On/Off Free-Drift in AD mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEapproxLevInAd = /* -1:SEAICE_FAKE, >0:other adjoint approximation */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) ># write control variables into a separate directory +(PID.TID 0000.0001) > ctrlDir = './ctrl_variables', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) >#mult_genarr3d(1) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,2) = 29.,29.5,40.5,41.,5., +(PID.TID 0000.0001) >#mult_genarr3d(2) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(1) = 'xx_siarea', +(PID.TID 0000.0001) > xx_genarr2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,1) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(1) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr2d_file(2) = 'xx_siheff', +(PID.TID 0000.0001) > xx_genarr2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) >#xx_genarr2d_bounds(1:5,2) = 0.,0.,1.,1.,0., +(PID.TID 0000.0001) >#mult_genarr2d(2) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(1) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(1) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(1) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_aqh', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(2) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(2) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(2) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_precip', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(3) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(3) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(3) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_snowprecip', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(4) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(4) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(4) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(5) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(5) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(5) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(5) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(5) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(6) = 'xx_lwdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(6) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(6) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(6) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(6) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(7) = 'xx_uwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(7) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(7) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(7) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(7) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(8) = 'xx_vwind', +(PID.TID 0000.0001) > xx_gentim2d_weight(8) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(8) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(8) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(8) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(9) = 'xx_apressure', +(PID.TID 0000.0001) > xx_gentim2d_weight(9) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_gentim2d_startdate1(9) = 19790101, +(PID.TID 0000.0001) > xx_gentim2d_startdate2(9) = 000000, +(PID.TID 0000.0001) > xx_gentim2d_period(9) = 864000.0, +(PID.TID 0000.0001) >#mult_gentim2d(9) = 1.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +==> SYSTEM CALL (from CTRL_READPARMS): > mkdir -p ./ctrl_variables < +(PID.TID 0000.0001) read-write ctrl files from ./ctrl_variables +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-3, +(PID.TID 0000.0001) ># nbeg = 4, +(PID.TID 0000.0001) > iGloPos = 4, +(PID.TID 0000.0001) > jGloPos = 8, +(PID.TID 0000.0001) > kGloPos = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) > grdchkvarindex = 301, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-02 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: opening data.ecco +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ecco +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ecco" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &ECCO_COST_NML +(PID.TID 0000.0001) > cost_iprec = 64, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta_month', +(PID.TID 0000.0001) > gencost_datafile(1) = 'labsea_Lev.ptmp', +(PID.TID 0000.0001) > gencost_errfile(1) = 'sigma_theta.bin', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(1)=1, +(PID.TID 0000.0001) > mult_gencost(1) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(2) = 'month', +(PID.TID 0000.0001) > gencost_barfile(2) = 'm_salt_month', +(PID.TID 0000.0001) > gencost_datafile(2) = 'labsea_Lev.salt', +(PID.TID 0000.0001) > gencost_errfile(2) = 'sigma_salt.bin', +(PID.TID 0000.0001) > gencost_name(2) = 'salt', +(PID.TID 0000.0001) > gencost_spmin(2) = 25., +(PID.TID 0000.0001) > gencost_spmax(2) = 40., +(PID.TID 0000.0001) > gencost_spzero(2) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(2)=1, +(PID.TID 0000.0001) > mult_gencost(2) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(3) = 'month', +(PID.TID 0000.0001) > gencost_barfile(3) = 'm_sst_month', +(PID.TID 0000.0001) > gencost_datafile(3) = 'labsea_SST_fields', +(PID.TID 0000.0001) > gencost_errfile(3) = 'sigma_sst.bin', +(PID.TID 0000.0001) > gencost_name(3) = 'sst', +(PID.TID 0000.0001) > gencost_startdate1(3) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(3) = 00000, +(PID.TID 0000.0001) > gencost_spmin(3) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(3) = 40., +(PID.TID 0000.0001) > gencost_spzero(3) = 0., +(PID.TID 0000.0001) > gencost_outputlevel(3)=1, +(PID.TID 0000.0001) > mult_gencost(3) = 1., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > gencost_avgperiod(4) = 'month', +(PID.TID 0000.0001) > gencost_barfile(4) = 'm_eta_month', +(PID.TID 0000.0001) > gencost_preproc(1,4) = 'mean', +(PID.TID 0000.0001) > gencost_preproc(2,4) = 'offset', +(PID.TID 0000.0001) > gencost_preproc(3,4) = 'mindepth', +(PID.TID 0000.0001) > gencost_preproc_r(3,4) = -200., +(PID.TID 0000.0001) > gencost_datafile(4) = 'labsea_TP_mean_meters', +(PID.TID 0000.0001) > gencost_errfile(4) = 'ones_64b.bin', +(PID.TID 0000.0001) > gencost_name(4) = 'mdt', +(PID.TID 0000.0001) > gencost_startdate1(4) = 19790101, +(PID.TID 0000.0001) > gencost_startdate2(4) = 000000, +(PID.TID 0000.0001) > gencost_spmin(4) = -4., +(PID.TID 0000.0001) > gencost_spmax(4) = 4., +(PID.TID 0000.0001) > gencost_spzero(4) = -9999.0, +(PID.TID 0000.0001) > gencost_outputlevel(4)=5, +(PID.TID 0000.0001) > mult_gencost(4) = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml +(PID.TID 0000.0001) ECCO_READPARMS: done +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.1900000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.8100000000000E+02 +(PID.TID 0000.0001) %MON XC_mean = 3.0000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.1532562594671E+01 +(PID.TID 0000.0001) %MON XG_max = 3.1800000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 2.8000000000000E+02 +(PID.TID 0000.0001) %MON XG_mean = 2.9900000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.1532562594671E+01 +(PID.TID 0000.0001) %MON DXC_max = 1.5166951523772E+05 +(PID.TID 0000.0001) %MON DXC_min = 5.0026831972764E+04 +(PID.TID 0000.0001) %MON DXC_mean = 1.0305926321463E+05 +(PID.TID 0000.0001) %MON DXC_sd = 3.1375805318756E+04 +(PID.TID 0000.0001) %MON DXF_max = 1.5166951523772E+05 +(PID.TID 0000.0001) %MON DXF_min = 5.0026831972764E+04 +(PID.TID 0000.0001) %MON DXF_mean = 1.0305926321463E+05 +(PID.TID 0000.0001) %MON DXF_sd = 3.1375805318756E+04 +(PID.TID 0000.0001) %MON DXG_max = 1.5448497309243E+05 +(PID.TID 0000.0001) %MON DXG_min = 5.3800974869835E+04 +(PID.TID 0000.0001) %MON DXG_mean = 1.0642630187324E+05 +(PID.TID 0000.0001) %MON DXG_sd = 3.1081829200899E+04 +(PID.TID 0000.0001) %MON DXV_max = 1.5448497309243E+05 +(PID.TID 0000.0001) %MON DXV_min = 5.3800974869835E+04 +(PID.TID 0000.0001) %MON DXV_mean = 1.0642630187324E+05 +(PID.TID 0000.0001) %MON DXV_sd = 3.1081829200899E+04 +(PID.TID 0000.0001) %MON YC_max = 7.7000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = 4.7000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 6.2000000000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 9.2195444572929E+00 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = 4.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = 6.1000000000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 9.2195444572929E+00 +(PID.TID 0000.0001) %MON DYC_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYC_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYF_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYF_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYG_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYG_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON DYU_max = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_min = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_mean = 2.2238985328912E+05 +(PID.TID 0000.0001) %MON DYU_sd = 1.4551915228367E-10 +(PID.TID 0000.0001) %MON RA_max = 3.3728048822756E+10 +(PID.TID 0000.0001) %MON RA_min = 1.1124894996734E+10 +(PID.TID 0000.0001) %MON RA_mean = 2.2918170839356E+10 +(PID.TID 0000.0001) %MON RA_sd = 6.9773064942263E+09 +(PID.TID 0000.0001) %MON RAW_max = 3.3728048822756E+10 +(PID.TID 0000.0001) %MON RAW_min = 1.1124894996734E+10 +(PID.TID 0000.0001) %MON RAW_mean = 2.2918170839356E+10 +(PID.TID 0000.0001) %MON RAW_sd = 6.9773064942263E+09 +(PID.TID 0000.0001) %MON RAS_max = 3.4354146294179E+10 +(PID.TID 0000.0001) %MON RAS_min = 1.1964183470077E+10 +(PID.TID 0000.0001) %MON RAS_mean = 2.3666928057229E+10 +(PID.TID 0000.0001) %MON RAS_sd = 6.9119325076329E+09 +(PID.TID 0000.0001) %MON RAZ_max = 3.4354146294179E+10 +(PID.TID 0000.0001) %MON RAZ_min = 1.1964183470077E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 2.3666928057229E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 6.9119325076329E+09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) modelstart = /* Start time of the model integration [s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ +(PID.TID 0000.0001) 1.440000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) 19790101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) 19790101 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) 40000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intmonths= /* Number of calendar months affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Calendar configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 30 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 3.162240000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing starts at -1317600. +(PID.TID 0000.0001) Zonal wind forcing period is 2635200. +(PID.TID 0000.0001) Zonal wind forcing repeat-cycle is 31622400. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> u10m.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Meridional wind forcing starts at -1317600. +(PID.TID 0000.0001) Meridional wind forcing period is 2635200. +(PID.TID 0000.0001) Meridional wind forcing repeat-cycle is 31622400. +(PID.TID 0000.0001) Meridional wind forcing is read from file: +(PID.TID 0000.0001) >> v10m.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric temperature starts at -1317600. +(PID.TID 0000.0001) Atmospheric temperature period is 2635200. +(PID.TID 0000.0001) Atmospheric temperature repeat-cycle is 31622400. +(PID.TID 0000.0001) Atmospheric temperature is read from file: +(PID.TID 0000.0001) >> tair.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Atmospheric specific humidity starts at -1317600. +(PID.TID 0000.0001) Atmospheric specific humidity period is 2635200. +(PID.TID 0000.0001) Atmospheric specific humidity rep-cycle is 31622400. +(PID.TID 0000.0001) Atmospheric specific humidity is read from file: +(PID.TID 0000.0001) >> qa.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Precipitation data starts at -1317600. +(PID.TID 0000.0001) Precipitation data period is 2635200. +(PID.TID 0000.0001) Precipitation data repeat-cycle is 31622400. +(PID.TID 0000.0001) Precipitation data is read from file: +(PID.TID 0000.0001) >> prate.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward shortwave flux starts at -1317600. +(PID.TID 0000.0001) Downward shortwave flux period is 2635200. +(PID.TID 0000.0001) Downward shortwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward shortwave flux is read from file: +(PID.TID 0000.0001) >> fsh.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) Downward longwave flux starts at -1317600. +(PID.TID 0000.0001) Downward longwave flux period is 2635200. +(PID.TID 0000.0001) Downward longwave flux repeat-cycle is 31622400. +(PID.TID 0000.0001) Downward longwave flux is read from file: +(PID.TID 0000.0001) >> flo.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) Climatological SSS starts at -1317600. +(PID.TID 0000.0001) Climatological SSS period is 2635200. +(PID.TID 0000.0001) Climatological SSS repeat-cycle is 31622400. +(PID.TID 0000.0001) Climatological SSS is read from file: +(PID.TID 0000.0001) >> SSS_monthly.labsea1979 << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 1 19 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 1 90 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 1 2 57 +(PID.TID 0000.0001) DWNSLP_INIT: DWNSLP_NbSite= 2 2 36 +(PID.TID 0000.0001) etagcm defined by gencost 4 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.ptmp +(PID.TID 0000.0001) model file = m_theta_month +(PID.TID 0000.0001) error file = sigma_theta.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 2) = salt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_Lev.salt +(PID.TID 0000.0001) model file = m_salt_month +(PID.TID 0000.0001) error file = sigma_salt.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) gencost_pointer3d = 2 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 3) = sst +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_SST_fields +(PID.TID 0000.0001) model file = m_sst_month +(PID.TID 0000.0001) error file = sigma_sst.bin +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 1 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) gencost( 4) = mdt +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = labsea_TP_mean_meters +(PID.TID 0000.0001) model file = m_eta_month +(PID.TID 0000.0001) error file = ones_64b.bin +(PID.TID 0000.0001) preprocess = mean +(PID.TID 0000.0001) preprocess = offset +(PID.TID 0000.0001) preprocess = mindepth +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 5 +(PID.TID 0000.0001) gencost_kLev_select = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.355404089581304E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.750000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvArea = /* advect fractional ice area */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSnow = /* advect snow layer together with ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSalt = /* advect salinity together with ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEmultiDimAdvection = /* multidimadvec */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFluxForm = /* advection in FV flux form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhEvap = /* latent heat of evaporation */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_lhFusion = /* latent heat of fusion */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheePiston = /* turbulent flux "piston velocity" a la McPhee (m/s) */ +(PID.TID 0000.0001) 2.222222222222222E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeTaper = /* tapering of turbulent flux (0.< <1.) for AREA=1. */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mcPheeStepFunc = /* replace linear tapering with step funct. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_frazilFrac = /* frazil (T0 by ATM and OCN +(PID.TID 0000.0001) 3=from predicted melt by ATM +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO = /* nominal thickness of new ice */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HO_south = /* Southern Ocean HO */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_max = /* set to les than 1. to mimic open leads */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Sea ice has a variable salinity such that +(PID.TID 0000.0001) SEAICE_saltFrac = /* fraction of ocn salinity in new ice */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_salinityTracer = /* test SITR varia. salinity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFlooding = /* turn submerged snow into ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice air-sea fluxes configuration, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEheatConsFix = /* accound for ocn<->seaice advect. heat flux */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_multDim = /* number of ice categories (1 or 7) */ +(PID.TID 0000.0001) 7 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_PDF = /* sea-ice distribution (-) */ +(PID.TID 0000.0001) 7 @ 1.428571428571428E-01 /* K = 1: 7 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) IMAX_TICE = /* iterations for ice surface temp */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) postSolvTempIter= /* flux calculation after surf. temp iter */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb = /* winter albedo */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb = /* summer albedo */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb = /* dry snow albedo */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb = /* wet snow albedo */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dryIceAlb_south = /* Southern Ocean dryIceAlb */ +(PID.TID 0000.0001) 7.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetIceAlb_south = /* Southern Ocean wetIceAlb */ +(PID.TID 0000.0001) 6.600000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drySnowAlb_south= /* Southern Ocean drySnowAlb */ +(PID.TID 0000.0001) 8.400000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetSnowAlb_south= /* Southern Ocean wetSnowAlb */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_wetAlbTemp= /* Temp (o.C) threshold for wet-albedo */ +(PID.TID 0000.0001) -1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snow_emiss = /* snow emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_ice_emiss = /* seaice emissivity */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cpAir = /* heat capacity of air */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dalton = /* constant dalton number */ +(PID.TID 0000.0001) 1.750000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_iceConduct = /* sea-ice conductivity */ +(PID.TID 0000.0001) 2.165600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowConduct= /* snow conductivity */ +(PID.TID 0000.0001) 3.100000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_snowThick = /* cutoff snow thickness (for albedo) */ +(PID.TID 0000.0001) 1.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_shortwave = /* penetration shortwave radiation */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMaykutSatVapPoly = /* use Maykut Polynomial for Sat.Vap.Pr */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_ATEMP = /* minimum air temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_LWDOWN = /* minimum downward longwave */ +(PID.TID 0000.0001) 6.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) MIN_TICE = /* minimum ice temperature */ +(PID.TID 0000.0001) -5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsaltFile = /* Initial HSALT File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_mnc = /* write monitor to netcdf file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mnc = /* write snap-shot using MNC */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mnc = /* write TimeAverage using MNC */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-16 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 6720 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 14 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 8 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 6 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 106 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 2 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 212 +(PID.TID 0000.0001) ctrl-wet 8: atmos 212 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 23 6720 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 150 120 129 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 145 116 125 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 140 112 119 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 133 104 111 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 126 98 106 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 115 89 95 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 99 77 82 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 90 68 73 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 82 62 66 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 71 54 57 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 68 52 54 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 58 44 45 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 50 40 40 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 40 31 31 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 30 22 23 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 10 6 6 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 3 2 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 21 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 22 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 23 0 0 0 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 13 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 6720 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 1840 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 000106 000034 000058 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 001076 000874 000933 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000457 000336 000354 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000221 000213 000204 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 2D control, genarr2d no. 1 is in use +(PID.TID 0000.0001) file = xx_siarea +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0101 +(PID.TID 0000.0001) ncvarindex = 0201 +(PID.TID 0000.0001) -> 2D control, genarr2d no. 2 is in use +(PID.TID 0000.0001) file = xx_siheff +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0102 +(PID.TID 0000.0001) ncvarindex = 0202 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_aqh +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_precip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_snowprecip +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 5 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0305 +(PID.TID 0000.0001) ncvarindex = 0405 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 6 is in use +(PID.TID 0000.0001) file = xx_lwdown +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0306 +(PID.TID 0000.0001) ncvarindex = 0406 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 7 is in use +(PID.TID 0000.0001) file = xx_uwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0307 +(PID.TID 0000.0001) ncvarindex = 0407 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 8 is in use +(PID.TID 0000.0001) file = xx_vwind +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0308 +(PID.TID 0000.0001) ncvarindex = 0408 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 9 is in use +(PID.TID 0000.0001) file = xx_apressure +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0309 +(PID.TID 0000.0001) ncvarindex = 0409 +(PID.TID 0000.0001) period = 00000010 000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4210453727344E-04 +(PID.TID 0000.0001) %MON fCori_min = 1.0666243053630E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.2711058365303E-04 +(PID.TID 0000.0001) %MON fCori_sd = 1.1031533875266E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4151032568025E-04 +(PID.TID 0000.0001) %MON fCoriG_min = 1.0491029349513E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 1.2591168756569E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.1383815633153E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 9.9464325599212E-05 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.2807417471054E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 6.7585896192312E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 2.0576140902612E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.6094939840939192E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 2.400000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 2.300000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 2.100000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 1.900000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 1.700000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 1.300000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 1.200000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 1.100000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 9.000000000000000E+00, /* K = 16 */ +(PID.TID 0000.0001) 8.000000000000000E+00, /* K = 17 */ +(PID.TID 0000.0001) 7.000000000000000E+00, /* K = 18 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* K = 19 */ +(PID.TID 0000.0001) 5.000000000000000E+00, /* K = 20 */ +(PID.TID 0000.0001) 4.000000000000000E+00, /* K = 21 */ +(PID.TID 0000.0001) 3.000000000000000E+00, /* K = 22 */ +(PID.TID 0000.0001) 2.000000000000000E+00 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 3.487000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2 @ 3.490000000000000E+01, /* K = 5: 6 */ +(PID.TID 0000.0001) 3.486000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 3.478000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 3.469000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 3.460000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.458000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.462000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 3.468000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.472000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.473000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.474000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 2 @ 3.473000000000000E+01, /* K = 17: 18 */ +(PID.TID 0000.0001) 2 @ 3.472000000000000E+01, /* K = 19: 20 */ +(PID.TID 0000.0001) 3.471000000000000E+01, /* K = 21 */ +(PID.TID 0000.0001) 3.470000000000000E+01, /* K = 22 */ +(PID.TID 0000.0001) 3.469000000000000E+01 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.023399597669854E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.023810240320856E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.024201435647580E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.024591510588746E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.024969611150069E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.025328017199967E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.025680833282475E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.026050051489947E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.026491970185416E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.027036952689552E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.027794852671120E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028814168587807E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.030119722650770E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.031735154401125E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.033628649568903E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.035732830613343E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.037997052952795E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.040366267417616E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.042716568158493E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.045063813536698E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.047393250130134E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.049712998140759E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.052023490263938E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 3.513461801096672E-04, /* K = 2 */ +(PID.TID 0000.0001) 2.578462793867026E-04, /* K = 3 */ +(PID.TID 0000.0001) 1.716535447918954E-04, /* K = 4 */ +(PID.TID 0000.0001) 1.391849606744939E-04, /* K = 5 */ +(PID.TID 0000.0001) 1.106038973987551E-04, /* K = 6 */ +(PID.TID 0000.0001) 7.062448315028799E-05, /* K = 7 */ +(PID.TID 0000.0001) 4.112152780686669E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.554455911799560E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.739274227427603E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.573008010125636E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.341763357458043E-05, /* K = 12 */ +(PID.TID 0000.0001) 1.029886793911016E-05, /* K = 13 */ +(PID.TID 0000.0001) 7.244777660794312E-06, /* K = 14 */ +(PID.TID 0000.0001) 5.291061202791868E-06, /* K = 15 */ +(PID.TID 0000.0001) 4.668992652371521E-06, /* K = 16 */ +(PID.TID 0000.0001) 3.952349989520169E-06, /* K = 17 */ +(PID.TID 0000.0001) 3.937600045035830E-06, /* K = 18 */ +(PID.TID 0000.0001) 3.833348475309353E-06, /* K = 19 */ +(PID.TID 0000.0001) 4.027570774400333E-06, /* K = 20 */ +(PID.TID 0000.0001) 3.935806005392895E-06, /* K = 21 */ +(PID.TID 0000.0001) 3.995673930141529E-06, /* K = 22 */ +(PID.TID 0000.0001) 4.061338744769299E-06 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.930000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.460000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 23 @ 1.460000000000000E-05 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731600000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.027000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.815600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.815600000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 23 @ 3.600000000000000E+03 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 1.728000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.791666666666666E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 1.440000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 4.142330000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.737098344693282E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.027000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.750000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 2.250000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 4.250000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 6.250000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 8.750000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 1.250000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 1.750000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.375000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.125000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 3.825000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 4.325000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 4.750000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 6 @ 5.000000000000000E+02, /* K = 18: 23 */ +(PID.TID 0000.0001) 2.500000000000000E+02 /* K = 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+01, /* K = 1: 2 */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 2 @ 2.000000000000000E+01, /* K = 4: 5 */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 3.500000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 1.500000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.000000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.750000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.500000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 4.500000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 7 @ 5.000000000000000E+02 /* K = 17: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 20 @ 2.000000000000000E+00 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 16 @ 2.000000000000000E+00 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 2.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 4.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.371000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.810000000000000E+02, /* I = 1 */ +(PID.TID 0000.0001) 2.830000000000000E+02, /* I = 2 */ +(PID.TID 0000.0001) 2.850000000000000E+02, /* I = 3 */ +(PID.TID 0000.0001) 2.870000000000000E+02, /* I = 4 */ +(PID.TID 0000.0001) 2.890000000000000E+02, /* I = 5 */ +(PID.TID 0000.0001) 2.910000000000000E+02, /* I = 6 */ +(PID.TID 0000.0001) 2.930000000000000E+02, /* I = 7 */ +(PID.TID 0000.0001) 2.950000000000000E+02, /* I = 8 */ +(PID.TID 0000.0001) 2.970000000000000E+02, /* I = 9 */ +(PID.TID 0000.0001) 2.990000000000000E+02, /* I = 10 */ +(PID.TID 0000.0001) 3.010000000000000E+02, /* I = 11 */ +(PID.TID 0000.0001) 3.030000000000000E+02, /* I = 12 */ +(PID.TID 0000.0001) 3.050000000000000E+02, /* I = 13 */ +(PID.TID 0000.0001) 3.070000000000000E+02, /* I = 14 */ +(PID.TID 0000.0001) 3.090000000000000E+02, /* I = 15 */ +(PID.TID 0000.0001) 3.110000000000000E+02, /* I = 16 */ +(PID.TID 0000.0001) 3.130000000000000E+02, /* I = 17 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* I = 18 */ +(PID.TID 0000.0001) 3.170000000000000E+02, /* I = 19 */ +(PID.TID 0000.0001) 3.190000000000000E+02 /* I = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 4.700000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) 4.900000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) 5.100000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) 5.300000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) 5.500000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) 5.700000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) 5.900000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) 6.100000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) 6.300000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) 6.500000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) 6.700000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) 6.900000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) 7.100000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) 7.300000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) 7.700000000000000E+01 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.750000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -4.500000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -6.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -8.750000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -1.175000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.600000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -2.225000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -3.100000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -4.350000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -6.100000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -8.475000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -1.160000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -1.542500000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -1.975000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -2.450000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -2.950000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.450000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -3.950000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.450000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -4.950000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.450000000000000E+03 /* K = 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -3.500000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -5.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.350000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -1.850000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -2.600000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -5.100000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -7.100000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -9.850000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -1.335000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -1.750000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -2.200000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -2.700000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -3.200000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -3.700000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -4.200000000000000E+03, /* K = 21 */ +(PID.TID 0000.0001) -4.700000000000000E+03, /* K = 22 */ +(PID.TID 0000.0001) -5.200000000000000E+03, /* K = 23 */ +(PID.TID 0000.0001) -5.700000000000000E+03 /* K = 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 23 @ 1.000000000000000E+00 /* K = 1: 23 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 24 @ 1.000000000000000E+00 /* K = 1: 24 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.516695152377178E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.516695152377178E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.459008712061998E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.399544694374234E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.338375547059709E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.275575795302040E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.211221950925184E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.145392419175564E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.078167403197357E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.009628806317309E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.398601322581600E+04, /* J = 10 */ +(PID.TID 0000.0001) 8.689463834022089E+04, /* J = 11 */ +(PID.TID 0000.0001) 7.969739572290120E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.240305410533583E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.502050051917860E+04, /* J = 14 */ +(PID.TID 0000.0001) 5.755872946877906E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.002683197276441E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.544849730924338E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.544849730924338E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.488078573794047E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.429494422142520E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.369168651734348E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.307174760228300E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.243588277631750E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.178486674278995E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.111949266445588E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.044057119713670E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.748929502060512E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.045410238093534E+04, /* J = 11 */ +(PID.TID 0000.0001) 8.330870535090075E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.606180949611843E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.872224404288860E+04, /* J = 14 */ +(PID.TID 0000.0001) 6.129895112114271E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.380097486983529E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.516695152377178E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.516695152377178E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.459008712061998E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.399544694374234E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.338375547059709E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.275575795302040E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.211221950925184E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.145392419175564E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.078167403197357E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.009628806317309E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.398601322581600E+04, /* J = 10 */ +(PID.TID 0000.0001) 8.689463834022089E+04, /* J = 11 */ +(PID.TID 0000.0001) 7.969739572290120E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.240305410533583E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.502050051917860E+04, /* J = 14 */ +(PID.TID 0000.0001) 5.755872946877906E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.002683197276441E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 1.544849730924338E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.544849730924338E+05, /* J = 1 */ +(PID.TID 0000.0001) 1.488078573794047E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.429494422142520E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.369168651734348E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.307174760228300E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.243588277631750E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.178486674278995E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.111949266445588E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.044057119713670E+05, /* J = 9 */ +(PID.TID 0000.0001) 9.748929502060512E+04, /* J = 10 */ +(PID.TID 0000.0001) 9.045410238093534E+04, /* J = 11 */ +(PID.TID 0000.0001) 8.330870535090075E+04, /* J = 12 */ +(PID.TID 0000.0001) 7.606180949611843E+04, /* J = 13 */ +(PID.TID 0000.0001) 6.872224404288860E+04, /* J = 14 */ +(PID.TID 0000.0001) 6.129895112114271E+04, /* J = 15 */ +(PID.TID 0000.0001) 5.380097486983529E+04 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 2.223898532891175E+05 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 16 @ 2.223898532891175E+05 /* J = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.372804882275630E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.372804882275630E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.244522605358471E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.112287377427108E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.976260306737437E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.836607121321784E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.693497967074614E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.547107200456132E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.397613176065682E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.245198029344207E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.090047454670177E+10, /* J = 10 */ +(PID.TID 0000.0001) 1.932350479119805E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.772299232166360E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.610088711600326E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.445916545954351E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.279982753723478E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.112489499673432E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.372804882275630E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.372804882275630E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.244522605358471E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.112287377427108E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.976260306737437E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.836607121321784E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.693497967074614E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.547107200456132E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.397613176065682E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.245198029344207E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.090047454670177E+10, /* J = 10 */ +(PID.TID 0000.0001) 1.932350479119805E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.772299232166360E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.610088711600326E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.445916545954351E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.279982753723478E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.112489499673432E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 20 @ 3.435414629417918E+10 /* I = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.435414629417918E+10, /* J = 1 */ +(PID.TID 0000.0001) 3.309167746093097E+10, /* J = 2 */ +(PID.TID 0000.0001) 3.178889151607872E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.044737570361747E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.906876445392020E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.765473739243563E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.620701729332415E+10, /* J = 7 */ +(PID.TID 0000.0001) 2.472736798052209E+10, /* J = 8 */ +(PID.TID 0000.0001) 2.321759217879512E+10, /* J = 9 */ +(PID.TID 0000.0001) 2.167952931739416E+10, /* J = 10 */ +(PID.TID 0000.0001) 2.011505328899539E+10, /* J = 11 */ +(PID.TID 0000.0001) 1.852607016665020E+10, /* J = 12 */ +(PID.TID 0000.0001) 1.691451588152944E+10, /* J = 13 */ +(PID.TID 0000.0001) 1.528235386428863E+10, /* J = 14 */ +(PID.TID 0000.0001) 1.363157265293026E+10, /* J = 15 */ +(PID.TID 0000.0001) 1.196418347007692E+10 /* J = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.562528105304877E+12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) KPP_CHECK: #define ALLOW_KPP +(PID.TID 0000.0001) kpp_freq = /* frequency of KPP calculation */ +(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPP_ghatUseTotalDiffus= /* non-local term fct of total diffus */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPuseDoubleDiff = /* include double diffusive contrib */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LimitHblStable = /* limits depth of hbl if stable cond.*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) minKPPhbl = /* minimum KPPhbl value [m] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsln = /* constant [-] */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phepsi = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsilon = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vonk = /* Von Karmans constant [-] */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dB_dz = /* maximum N^2 in mixed layer [s^-2] */ +(PID.TID 0000.0001) 5.200000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc1 = /* scalar constant [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conam = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.257000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concm = /* scalar constant [-] */ +(PID.TID 0000.0001) 8.380000000000001E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc2 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conas = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.886000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concs = /* scalar constant [-] */ +(PID.TID 0000.0001) 9.895999999999999E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc3 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetam = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetas = /* scalar constant [-] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Ricr = /* critical bulk Richardson Number [-] */ +(PID.TID 0000.0001) 3.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cekman = /* coeff for Ekman depth [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cmonob = /* coeff for Monin-Obukhov depth [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concv = /* buoyancy freq ratio [-] */ +(PID.TID 0000.0001) 1.800000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hbf = /* solar radiation depth ratio [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmin = /* minimum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) -4.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmax = /* maximum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umin = /* minimum for ustar in table [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* maximum for ustar in table [m/s] */ +(PID.TID 0000.0001) 4.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) num_v_smooth_Ri = /* number of vertical smoothing */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Riinfty = /* shear instability Ri number limit [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) BVSQcon = /* Brunt-Vaisala squared (=N^2) [s^-2] */ +(PID.TID 0000.0001) -2.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difm0 = /* max viscosity from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difs0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dift0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difmcon = /* convective viscosity [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difscon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diftcon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Rrho0 = /* double diffusion density ratio [-] */ +(PID.TID 0000.0001) 1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dsfmax = /* max diffusiv. for salt fingering [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cstar = /* coeff for non-locak transport [-] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPwriteState = /* write KPP fields to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_dumpFreq = /* dump freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_taveFreq = /* time-averaging freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etagcm defined by gencost 4 +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3333076477051E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.4103618860245E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.1168426975828E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4047681849177E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.5049819722560E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450622558594E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0128698348999E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4759355674691E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.4306214753982E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6452478048952E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067278094140E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8115075987134E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843892147E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1689234854242E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 9.5205094642639E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 8.2251346492767E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 9.0515124880142E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 3.2399715379512E+02 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 6.5705700303689E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 6.3903775845771E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.5324050318348E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 2.2585053845627E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.7275868295507E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.3810540854857E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.4708944127586E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -6.2488440618747E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5966769927411E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.5564946659994E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.2446640646997E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 7.3527440806105E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.1759678238206E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 2.8333404528937E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.5742193163805E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.7940332098124E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.5100078770193E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -6.0802354200242E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -6.5150265743063E-09 +(PID.TID 0000.0001) %MON exf_sflux_sd = 2.6751431080853E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.8965728806310E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4643745422363E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372380733490E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7697727336031E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9900402496951E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 1.6625569786913E-01 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9240682125092E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0197033882141E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.6089868124963E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7293437592941E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 1.5097945843360E-01 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8832820454477E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.6035219539401E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1981217095273E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5991724245810E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646792253828E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8188281250000E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3646176910400E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6394605784141E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1983417694612E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0525892037380E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3231729436666E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6369274817407E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4803629101886E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4265074770275E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6519352415610E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 2.0326754555358E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 7.1683500197106E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 1.1087529350502E+02 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 3.5154607039034E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 5.3834650635925E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 6.1424286594286E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 1.1021039945128E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 2.9875053968778E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 9.5466440695483E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.6734130637722E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0498766300771E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7359498694368E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390080543085E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0578148171209E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6835041457522E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1205755472183E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.3973114013672E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6453223022948E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9625901079469E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7059823758366E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1081237792969E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0228617191315E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9392470025498E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1806556754965E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5622026398184E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0567971801758E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1599769210815E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2594931695913E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6277429231296E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1741979598658E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040330886841E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0666313171387E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3459319600989E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0319548925494E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6975862895226E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.94851485E-02 2.03143980E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.95498043E+00 1.09255839E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 28 8.63477172E-07 2.02291536E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 58 8.31721269E-07 2.15674408E-05 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.89145512E-02 1.68786586E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.85800620E+00 1.09024537E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 28 7.51559742E-07 1.75964282E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 52 9.03030712E-07 2.34120170E-05 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.59852054923669E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 47 +(PID.TID 0000.0001) cg2d_last_res = 5.76526654009719E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.0635788969790E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -7.9180095035590E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.0243415133306E-17 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.6882439869013E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0374699991175E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3189733381625E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9761328680594E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.4725826026055E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8475894987251E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3605386664599E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0428468728729E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1377323511950E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7096157484286E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.3712427065811E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0842532167986E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1653036437818E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2713146544853E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.8080264182517E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4879746033964E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.3463537310767E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3244059135356E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.4101961597080E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0799050402967E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4087902407495E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.9668609587769E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450777873699E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7656099401412E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4748274370859E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.9950761807460E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.7427815459421E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 9.0561102310369E+04 +(PID.TID 0000.0001) %MON forcing_qnet_min = 2.6204517276812E+04 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 6.2508444244181E+04 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.9048452078585E+04 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7858189494162E+02 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -7.4467175578701E-03 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -4.2933257089527E-04 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 1.1045667717750E-03 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.0195935462279E-04 +(PID.TID 0000.0001) %MON forcing_empmr_max = -7.8376483162499E-02 +(PID.TID 0000.0001) %MON forcing_empmr_min = -2.7120986112334E-01 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -1.8716151376320E-01 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 5.7112046530665E-02 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.3343148578546E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 3.0104736869831E-03 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.8984959041597E-04 +(PID.TID 0000.0001) %MON forcing_fu_mean = 8.4608935579449E-04 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.2081178438277E-04 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.1157665774485E-05 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0219555778038E-03 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.4975873109393E-03 +(PID.TID 0000.0001) %MON forcing_fv_mean = -2.4787241135348E-04 +(PID.TID 0000.0001) %MON forcing_fv_sd = 6.5005480255251E-04 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.2701456971386E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8543423515976E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.2446881340043E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.1163796268600E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8540451336809E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.3069173946446E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.1271577939578E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.1699547437806E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 7.2459152814998E-06 +(PID.TID 0000.0001) %MON ke_max = 1.5940966858268E-04 +(PID.TID 0000.0001) %MON ke_mean = 1.2133746438612E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -1.3728781712160E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.1140677138452E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277213448E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8106506473760E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734842597826E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691075637735E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0972065690995E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.2016300712729E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.2041894747932E-02 +(PID.TID 0000.0001) %MON seaice_uice_min = -1.1593983616639E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 3.3843574231780E-03 +(PID.TID 0000.0001) %MON seaice_uice_sd = 3.2832471375311E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 8.4630663097942E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.0878223112151E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -5.9903492437573E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -9.9148964541391E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.6002192102100E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.0805827885543E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 8.8241200735970E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.2210186371195E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.6666475771526E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 6.8993406595551E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.9490283368986E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 2.0099377743190E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.9401727925079E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0039559082223E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 1.0299378294785E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.8795826585774E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.0521014004339E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 6.1745749519298E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 2.4300919428475E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.8706060700323E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 2.8445152958901E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 1 +(PID.TID 0000.0001) %MON exf_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2952831527506E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.4100144350760E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.8607622224619E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.4057684016500E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.2068569743786E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.4006716586934E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.9442497948679E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.6680490960420E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4567614592354E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1360912373180E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.4939682078218E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.8611740966314E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.6832654558975E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.8362699584315E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.4309352542320E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.2969162591452E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.3459440709124E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.3745892148706E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.1300300282014E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7775968330834E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4648819946852E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372648550513E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7698802859475E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9903162155877E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271726639726E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9240983933048E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0187974783892E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.6028090815952E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7294518007626E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609855321605E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833202965791E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.6010935417159E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1982241536133E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5994287774633E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646545747982E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8188110034713E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3645730413635E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6394141375606E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1984878226631E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0555651533612E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3224764028055E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6359864467567E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4798025537840E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4264043737180E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6495489306751E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8955025039790E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4245037134592E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.5810049831882E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1998013274789E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.6578132531727E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.9292707704615E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.5793937045122E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.2644177550344E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.2089187924457E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.1141554196263E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0498904445033E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7346106047101E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390069699050E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0578598603627E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6837812825023E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206038349965E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.3991984364244E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6463755238823E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9629736696482E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7099997232451E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1102204849160E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0228931499961E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9404172487581E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1810818551646E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5666663591612E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0567089193375E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1598258522951E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2593360963007E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6281398610271E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1732435942730E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040515633880E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0667072499385E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3459840934468E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0318832207269E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6974851931992E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.75225254E-02 1.60827528E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.18315241E+00 4.45406602E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 32 8.45308276E-07 8.77751038E-06 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 66 9.33157556E-07 1.13117848E-05 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.98170501E-02 1.55616639E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.60509046E+00 3.91872896E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 30 9.33942248E-07 1.59410246E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 80 9.60218226E-07 9.23096746E-06 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.33861453555208E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 45 +(PID.TID 0000.0001) cg2d_last_res = 6.10582955160977E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.8860214066455E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.2834439688048E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7283570390193E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.4578719722373E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3372870653705E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2345826796125E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0242717023285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.7159234578009E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4562846520541E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2553071351452E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.2183991412244E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.6486095579799E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4847792359670E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.8134725662719E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.6588814399235E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6868646010609E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.5653696378060E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5446878771946E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.1157564917175E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.4553627765810E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3260653674899E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8315674624044E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0744366062651E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4246112736440E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8795611679600E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5450923640175E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7609290591066E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746539609627E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1057030246173E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6664870938342E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 2.1573266973592E+04 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.8611740966314E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 9.2444927793605E+03 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.7500174554482E+03 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7845494915853E+02 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.3991984364244E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -5.7626906252125E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 1.6010569106582E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.1743806699306E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.3123557540698E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -6.4527858968686E-02 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -2.7653547917575E-02 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.4200488283459E-02 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 8.3330925716492E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 7.6564711972844E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -2.4036178826050E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.6841309095131E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 1.9808546009021E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 7.1680515545349E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0679733761674E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -9.2402214137863E-03 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.4380454253311E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.5680741221470E-03 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7098747736311E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.5524230098397E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.7001544852826E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.8043830807270E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.5519380448179E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.8286554821658E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6448850193329E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7542151153017E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8335919294502E-05 +(PID.TID 0000.0001) %MON ke_max = 8.0879325078038E-04 +(PID.TID 0000.0001) %MON ke_mean = 2.7009722489498E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -2.8349398945986E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.7945184540995E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277951547E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8107579894347E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843682583E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691469783295E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7634913629106E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.6372988734050E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.8482156442362E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -2.7249933601916E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.7157660179467E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.8268081571691E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.3647647561458E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 6.2586659794800E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -3.1698716685261E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.8700347008974E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.9696940744667E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.1962371252570E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 7.0982369743073E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.5366700221756E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.2657733890698E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.8895104755355E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.9760806111850E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8921541607071E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.6497137537374E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0023562424984E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 7.0013847648030E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.6991315879810E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.2920145865824E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.1951816758568E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = -2.2737367544323E-13 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.6198683356839E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.6616485821955E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.4260168131154E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 2 +(PID.TID 0000.0001) %MON exf_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2373899561505E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3848318241134E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.7851228006896E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.3646263958233E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.1409483588771E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3862389789206E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.8693724233832E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.5186534649124E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4411101226349E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1437992111410E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.3300299509194E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.7714562046830E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.5446258169740E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.8080228835383E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3650362462098E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0782196220262E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.7527688899396E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.5524596916123E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.0933055214115E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7683999600605E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4653894471340E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8372916367536E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7699878382919E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9905922217476E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271529751792E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9241285741003E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0178915685643E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.5966313506940E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7295599554900E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609699266683E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833585477315E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.5986651533145E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1983267266652E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5996852426804E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646299926724E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8187938819427E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3645283916869E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6393676967070E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1986339246462E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0585416752362E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3217798619445E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6350454117726E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4792421973794E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4263013062694E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6471629231506E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8572616849287E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4440387118459E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.2250277570937E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1895085597792E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.5267129390048E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.7105078622494E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.4066076787296E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.0865461938893E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.1696618292870E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0242885848096E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0499042589295E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7332713399833E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390058855016E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0579049691733E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6840584643800E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206321227746E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.4010854714816E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6474287454698E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9633572905820E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7140179220378E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1123171905351E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0229245808607E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9415874949665E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1815081006466E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5711310244864E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0566206584993E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1596747835086E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2591790230100E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6285369157135E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1722892696108E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040700380919E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0667831827383E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3460362267948E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0318117788237E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6973864151273E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.86268655E-02 1.55520244E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.74940742E+00 2.38021429E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 36 8.03453505E-07 1.02721689E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 76 9.82671780E-07 3.72577455E-06 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.73268298E-02 1.13232277E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.67667951E+00 2.13603102E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 36 9.83282302E-07 2.30633388E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 62 7.86209399E-07 1.81170152E-06 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.65585935462282E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 44 +(PID.TID 0000.0001) cg2d_last_res = 8.58723452545735E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.1200571210931E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4175050217332E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1672663449666E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.4432999959959E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1981798555172E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4856320293537E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.8577077898496E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.0146479170342E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.7072406453746E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7446705388097E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.5108523081937E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.9360355565528E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.4159239083143E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4372997768564E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.8518921774123E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1830276214993E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0184732200242E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.0627452595099E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.7266423173375E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.6814097167347E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3263111506735E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9325037762574E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0735109946567E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4276089311250E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8667004030101E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5451057670656E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7614330464559E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746250543494E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1242061790498E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6601984720847E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3296428273802E+03 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.7714562046830E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.5566928962727E+03 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.0971332564756E+03 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.9382853834998E+01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.4010854714816E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.3420132056940E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.1915797496867E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.2846407512099E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.1966493315379E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.2855352557884E-02 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -4.6219743448643E-03 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 3.2453751952297E-03 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 2.6661731270929E-04 +(PID.TID 0000.0001) %MON forcing_fu_max = 9.3784155584468E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -3.6575324129790E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4295749030177E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.4715582265044E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.1825442548098E-03 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0715885866973E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -4.3774232380724E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.2001517676089E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.1360971466021E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 5.6327922948076E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.7002376318934E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.7529796433053E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.6112689300872E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7001513128747E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.9208513860142E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.5006880041735E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.1077424408867E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3501591982197E-05 +(PID.TID 0000.0001) %MON ke_max = 2.0713043335779E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.0939854603399E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -3.7035222459306E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2218960180709E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277963980E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8113036948354E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843700856E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1691163898609E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6901840770127E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.6277922435323E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.6142182325436E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -4.8887769062788E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 7.1103198736411E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 5.7080755674205E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6086542694329E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.9083652893255E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5124609590471E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.8009273104343E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.1716525401934E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6083280170802E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 6.5733635985703E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.7423616716142E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.6507465588865E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.7530330464859E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.8152202990544E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8493975928864E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.9427730005235E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0012996226770E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 6.4344009499758E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5540561537986E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.3974679417050E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.0759529291364E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = -3.5527136788005E-15 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.4935841572077E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.6045761693369E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.5792946694910E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 3 +(PID.TID 0000.0001) %MON exf_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON exf_ustress_max = 5.2253598198161E-02 +(PID.TID 0000.0001) %MON exf_ustress_min = -9.3800177447582E-02 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.7761693545994E-02 +(PID.TID 0000.0001) %MON exf_ustress_sd = 2.3595528219142E-02 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 7.1415463543815E-04 +(PID.TID 0000.0001) %MON exf_vstress_max = 5.3834963506767E-02 +(PID.TID 0000.0001) %MON exf_vstress_min = -5.8522651112696E-02 +(PID.TID 0000.0001) %MON exf_vstress_mean = -5.4696471724590E-03 +(PID.TID 0000.0001) %MON exf_vstress_sd = 1.4383722124016E-02 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 5.1529625550114E-04 +(PID.TID 0000.0001) %MON exf_hflux_max = 6.2984723466062E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = -4.7347423591597E+01 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.5220071441143E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 1.7990960100422E+02 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 1.3523184366411E+01 +(PID.TID 0000.0001) %MON exf_sflux_max = 4.0360779869846E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = -8.8306536701970E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = -2.5805447491622E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 3.0822708057213E-08 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 1.7672733525641E-09 +(PID.TID 0000.0001) %MON exf_uwind_max = 6.4658968995829E+00 +(PID.TID 0000.0001) %MON exf_uwind_min = -6.8373184184559E+00 +(PID.TID 0000.0001) %MON exf_uwind_mean = 2.7700953906363E+00 +(PID.TID 0000.0001) %MON exf_uwind_sd = 2.9908682681638E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 8.0271336255764E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 3.9241587548959E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = -6.0169856587394E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = -7.5904536197929E-01 +(PID.TID 0000.0001) %MON exf_vwind_sd = 1.7296682234552E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 4.8609550037542E-02 +(PID.TID 0000.0001) %MON exf_wspeed_max = 7.8833967989048E+00 +(PID.TID 0000.0001) %MON exf_wspeed_min = 4.5962367887737E-01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 4.1984294286706E+00 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 1.5999418201857E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 2.3646054790944E-01 +(PID.TID 0000.0001) %MON exf_atemp_max = 2.8187767604140E+02 +(PID.TID 0000.0001) %MON exf_atemp_min = 2.3644837420104E+02 +(PID.TID 0000.0001) %MON exf_atemp_mean = 2.6393212558534E+02 +(PID.TID 0000.0001) %MON exf_atemp_sd = 1.1987800753926E+01 +(PID.TID 0000.0001) %MON exf_atemp_del2 = 7.0615187686393E-01 +(PID.TID 0000.0001) %MON exf_aqh_max = 6.3210833210834E-03 +(PID.TID 0000.0001) %MON exf_aqh_min = 1.6341043767886E-04 +(PID.TID 0000.0001) %MON exf_aqh_mean = 2.4786818409748E-03 +(PID.TID 0000.0001) %MON exf_aqh_sd = 1.4261982746893E-03 +(PID.TID 0000.0001) %MON exf_aqh_del2 = 7.6447772192714E-05 +(PID.TID 0000.0001) %MON exf_lwflux_max = 1.8516255042579E+02 +(PID.TID 0000.0001) %MON exf_lwflux_min = 3.4493568839759E+01 +(PID.TID 0000.0001) %MON exf_lwflux_mean = 8.1681922077285E+01 +(PID.TID 0000.0001) %MON exf_lwflux_sd = 4.1769273547920E+01 +(PID.TID 0000.0001) %MON exf_lwflux_del2 = 4.5006206066376E+00 +(PID.TID 0000.0001) %MON exf_evap_max = 4.6682999561148E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -5.3342154475673E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.0584600519359E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 1.1576042080970E-08 +(PID.TID 0000.0001) %MON exf_evap_del2 = 1.0074628262555E-09 +(PID.TID 0000.0001) %MON exf_precip_max = 1.0499180733557E-07 +(PID.TID 0000.0001) %MON exf_precip_min = 2.7319320752566E-10 +(PID.TID 0000.0001) %MON exf_precip_mean = 3.6390048010982E-08 +(PID.TID 0000.0001) %MON exf_precip_sd = 2.0579501435483E-08 +(PID.TID 0000.0001) %MON exf_precip_del2 = 1.6843356913630E-09 +(PID.TID 0000.0001) %MON exf_swflux_max = -8.1206604105527E-02 +(PID.TID 0000.0001) %MON exf_swflux_min = -6.4029725065388E+01 +(PID.TID 0000.0001) %MON exf_swflux_mean = -2.6484819670573E+01 +(PID.TID 0000.0001) %MON exf_swflux_sd = 1.9637409707136E+01 +(PID.TID 0000.0001) %MON exf_swflux_del2 = 7.7180369708849E-01 +(PID.TID 0000.0001) %MON exf_swdown_max = 7.1144138961542E+01 +(PID.TID 0000.0001) %MON exf_swdown_min = 9.0229560117253E-02 +(PID.TID 0000.0001) %MON exf_swdown_mean = 2.9427577411748E+01 +(PID.TID 0000.0001) %MON exf_swdown_sd = 2.1819344119040E+01 +(PID.TID 0000.0001) %MON exf_swdown_del2 = 8.5755966343166E-01 +(PID.TID 0000.0001) %MON exf_lwdown_max = 3.0565323976611E+02 +(PID.TID 0000.0001) %MON exf_lwdown_min = 1.1595237147222E+02 +(PID.TID 0000.0001) %MON exf_lwdown_mean = 2.2590219497194E+02 +(PID.TID 0000.0001) %MON exf_lwdown_sd = 4.6289340871590E+01 +(PID.TID 0000.0001) %MON exf_lwdown_del2 = 8.1713349858933E+00 +(PID.TID 0000.0001) %MON exf_climsss_max = 3.5040885127959E+01 +(PID.TID 0000.0001) %MON exf_climsss_min = 3.0668591155380E+01 +(PID.TID 0000.0001) %MON exf_climsss_mean = 3.3460883601427E+01 +(PID.TID 0000.0001) %MON exf_climsss_sd = 1.0317405668875E+00 +(PID.TID 0000.0001) %MON exf_climsss_del2 = 2.6972899555616E-02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.92432265E-02 9.42131536E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.53414557E+00 1.96161826E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 42 8.71647096E-07 2.34054491E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 46 7.47279511E-07 1.11762431E-06 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 8.86796066E-03 5.30245093E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.50953507E+00 1.91708728E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 44 9.99010196E-07 2.68869550E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 36 7.29226934E-07 9.42201385E-07 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.25006909262882E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 44 +(PID.TID 0000.0001) cg2d_last_res = 9.20603291526689E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 3.2000545184694E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3349338937347E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.5207370268035E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 8.5184292488422E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0934637775163E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.2512406374979E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.5127658349185E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6858722141188E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7179469096981E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.0034753321535E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.6473080704341E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.4309651745800E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.9193420182227E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3729426406751E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.9142700806046E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6784756713641E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5011707685896E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4487010863205E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.4063919558286E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.6544432094708E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 1.3261119623659E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9532335461641E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.0733266932513E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.4281134149900E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 9.8552715446868E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5451168695842E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.7619300672645E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4746200189789E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1270389614300E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 3.6563772376287E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 8.7757792393125E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -4.7347423591597E+01 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 3.0507319980419E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 2.3699181155992E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.3268200966658E+01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = -6.4029725065388E+01 +(PID.TID 0000.0001) %MON forcing_qsw_mean = -1.5761010937622E+01 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 2.2895611002370E+01 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 1.2825569840473E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = -2.1977294661131E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -2.5019541967335E-03 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -8.7217501134798E-04 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 6.5854743674227E-04 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 6.8219711070130E-05 +(PID.TID 0000.0001) %MON forcing_fu_max = 8.2449272116085E-02 +(PID.TID 0000.0001) %MON forcing_fu_min = -4.5632567268432E-03 +(PID.TID 0000.0001) %MON forcing_fu_mean = 2.4073994705238E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 2.3131242220756E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 1.1286790923426E-03 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.0733265513237E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -6.0122420618096E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -8.4627902163586E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 1.5042336154921E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 6.8323783419072E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2161666942356E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0558031493020E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.8438172668422E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2160541821192E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0760521984091E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.5754574305290E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4318891569936E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 2.3921691359412E-05 +(PID.TID 0000.0001) %MON ke_max = 4.4630819685464E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.2190237265223E-05 +(PID.TID 0000.0001) %MON ke_vol = 5.3036189546438E+15 +(PID.TID 0000.0001) %MON vort_r_min = -5.9719988753608E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.3649429719562E-07 +(PID.TID 0000.0001) %MON vort_a_mean = 1.2067277722320E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 8.8117909143867E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 1.7734843345698E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1690608850023E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7265234057788E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4052396312230E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.9278613664963E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = -6.6336420486095E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 8.0980071875100E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 6.5934108724636E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.9774517829662E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0422521997256E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5834238711265E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4536983137141E-02 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.7780118682829E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2747441208059E-03 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 6.4837610795517E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.7688271947091E-01 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.5900585080448E-02 +(PID.TID 0000.0001) %MON seaice_heff_max = 5.7249106227686E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_mean = 1.7858987674424E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.8389251216999E-01 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.9767313359982E-03 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 2.0013780623038E-01 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 6.3308038477445E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 6.5176643246776E-02 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 1.4095623457340E-03 +(PID.TID 0000.0001) %MON seaice_hsalt_max = 5.0526892340529E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsalt_mean = 1.4693342058545E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_sd = 1.5930872779066E+03 +(PID.TID 0000.0001) %MON seaice_hsalt_del2 = 3.6109274783666E+01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 4 ckptA +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986541647D+04 +(PID.TID 0000.0001) global fc = 0.723648986541647D+04 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 + cg2d: Sum(rhs),rhsMax = -1.11022302462516E-16 1.04090595757221E-03 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = -1.13659082146000E-14 8.36868947309287E-04 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = -5.56499291093360E-15 1.48212043427929E-03 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = -3.34177130412172E-14 2.04326452102084E-04 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + ph-pack: packing ecco_cost + ph-pack: packing ecco_ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.08860706507608E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.44383460321774E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 7.82707232360735E-15 1.20525368718144E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979587201E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006186D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833143926D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269643D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189129671D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986541647D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986541647D+04 +(PID.TID 0000.0001) global fc = 0.723648986541647D+04 +(PID.TID 0000.0001) grdchk reference fc: fcref = 7.23648986541647E+03 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res closest next position: + grad-res 0 10 4 8 1 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 10 300 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 6 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 6 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.53963516883005E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 8.36136715420821E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 4.98212582300539E-15 1.20525368718137E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979614865E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006126D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833162499D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269583D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189110271D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986660099D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986660099D+04 +(PID.TID 0000.0001) global fc = 0.723648986660099D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986660099E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.71310751642773E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.89312798349573E-15 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 9.70057367766231E-15 1.20525368718153E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979559543E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006246D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125354D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269703D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189149071D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623195D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986623195D+04 +(PID.TID 0000.0001) global fc = 0.723648986623195D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623195E+03 +grad-res ------------------------------- + grad-res 0 1 6 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986623E+03 + grad-res 0 1 1 10 0 1 1 1 1.84514928426E-04 1.84516466106E-04 -8.33363399599E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.84514928426408E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.84516466106288E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 11 300 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 10 2 + ph-grd -->hit<-- 7 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 7 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.01147995429574E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.63638890905116E-15 1.20987150232972E+00 + cg2d: Sum(rhs),rhsMax = 5.47478729018280E-15 1.20525368718135E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979605907E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006143D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833161897D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269600D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114741D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986659531D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986659531D+04 +(PID.TID 0000.0001) global fc = 0.723648986659531D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986659531E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.87190279838023E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.13728471085039E-14 1.20987150232974E+00 + cg2d: Sum(rhs),rhsMax = 6.29704621779581E-15 1.20525368718155E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979568500E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006229D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833125956D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269686D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189144603D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986623762D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986623762D+04 +(PID.TID 0000.0001) global fc = 0.723648986623762D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986623762E+03 +grad-res ------------------------------- + grad-res 0 2 7 8 1 1 1 1 7.23648986542E+03 7.23648986660E+03 7.23648986624E+03 + grad-res 0 2 2 11 0 1 1 1 1.78844911598E-04 1.78844402399E-04 2.84715668986E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 1.78844911598168E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 1.78844402398681E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 12 300 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 11 3 + ph-grd -->hit<-- 8 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 8 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 3.08780778723872E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 9.99374194510239E-15 1.20987150232973E+00 + cg2d: Sum(rhs),rhsMax = 9.33628174770718E-15 1.20525368718125E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979597207E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006181D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833167152D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269637D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114320D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986664862D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986664862D+04 +(PID.TID 0000.0001) global fc = 0.723648986664862D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986664862E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.49106291150269E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.10848830114918E-14 1.20987150232976E+00 + cg2d: Sum(rhs),rhsMax = 8.01095301206090E-15 1.20525368718164E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979577202E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006192D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833120701D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269649D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145024D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986618432D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986618432D+04 +(PID.TID 0000.0001) global fc = 0.723648986618432D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986618432E+03 +grad-res ------------------------------- + grad-res 0 3 8 8 1 1 1 1 7.23648986542E+03 7.23648986665E+03 7.23648986618E+03 + grad-res 0 3 3 12 0 1 1 1 2.32148292248E-04 2.32145794143E-04 1.07608145284E-05 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.32148292248151E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.32145794143435E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 13 300 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 12 4 + ph-grd -->hit<-- 9 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 9 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 1.97758476261356E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.01516017814163E-14 1.20987150232969E+00 + cg2d: Sum(rhs),rhsMax = 8.74300631892311E-15 1.20525368718108E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979621159E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005920D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833174279D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269376D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189114198D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986671466D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986671466D+04 +(PID.TID 0000.0001) global fc = 0.723648986671466D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986671466E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.83106871279415E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00579267137135E-14 1.20987150232980E+00 + cg2d: Sum(rhs),rhsMax = 6.54337695138452E-15 1.20525368718180E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979553253E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006453D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833113574D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269910D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189145150D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986611828D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986611828D+04 +(PID.TID 0000.0001) global fc = 0.723648986611828D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986611828E+03 +grad-res ------------------------------- + grad-res 0 4 9 8 1 1 1 1 7.23648986542E+03 7.23648986671E+03 7.23648986612E+03 + grad-res 0 4 4 13 0 1 1 1 2.98190171886E-04 2.98190570902E-04 -1.33812544978E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 2.98190171886221E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 2.98190570902079E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 14 300 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 13 5 + ph-grd -->hit<-- 10 8 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 10 8 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.23432383705813E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.00666003310934E-14 1.20987150232963E+00 + cg2d: Sum(rhs),rhsMax = 7.00828284294630E-15 1.20525368718083E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979629832E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001005890D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833182020D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269346D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189207967D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986679148D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986679148D+04 +(PID.TID 0000.0001) global fc = 0.723648986679148D+04 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 7.23648986679148E+03 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-16 9.91122157633454E-01 + cg2d: Sum(rhs),rhsMax = 2.68535194081210E-15 1.19111702562865E+00 + cg2d: Sum(rhs),rhsMax = 1.03164005116341E-14 1.20987150232986E+00 + cg2d: Sum(rhs),rhsMax = 6.79664657887713E-15 1.20525368718206E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) ecco_offset: # of nonzero constributions to mean of m_eta_month = 1.15000000000000E+02 +(PID.TID 0000.0001) ecco_offset: Global mean of m_eta_month = 7.67985979544581E-03 +(PID.TID 0000.0001) --> f_gencost = 0.308813001006483D+04 1 +(PID.TID 0000.0001) --> f_gencost = 0.106770833105832D+04 2 +(PID.TID 0000.0001) --> f_gencost = 0.308060126269940D+04 3 +(PID.TID 0000.0001) --> f_gencost = 0.502612189051378D-01 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.100000000000000D-05 1 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 3 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 4 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 5 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 6 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 7 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 8 +(PID.TID 0000.0001) --> f_gentim2d = 0.000000000000000D+00 9 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr2d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 2 +(PID.TID 0000.0001) --> fc = 0.723648986604146D+04 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.723648986604146D+04 +(PID.TID 0000.0001) global fc = 0.723648986604146D+04 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 7.23648986604146E+03 +grad-res ------------------------------- + grad-res 0 5 10 8 1 1 1 1 7.23648986542E+03 7.23648986679E+03 7.23648986604E+03 + grad-res 0 5 5 14 0 1 1 1 3.75009053569E-04 3.75008312403E-04 1.97639310484E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 7.23648986541647E+03 +(PID.TID 0000.0001) ADM adjoint_gradient = 3.75009053568532E-04 +(PID.TID 0000.0001) ADM finite-diff_grad = 3.75008312403224E-04 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-03 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 6 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 1 7.2364898654165E+03 7.2364898666010E+03 7.2364898662320E+03 +(PID.TID 0000.0001) grdchk output (g): 1 1.8451646610629E-04 1.8451492842641E-04 -8.3336339959938E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 7 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 2 7.2364898654165E+03 7.2364898665953E+03 7.2364898662376E+03 +(PID.TID 0000.0001) grdchk output (g): 2 1.7884440239868E-04 1.7884491159817E-04 2.8471566898558E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 8 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 3 7.2364898654165E+03 7.2364898666486E+03 7.2364898661843E+03 +(PID.TID 0000.0001) grdchk output (g): 3 2.3214579414343E-04 2.3214829224815E-04 1.0760814528443E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 9 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 4 7.2364898654165E+03 7.2364898667147E+03 7.2364898661183E+03 +(PID.TID 0000.0001) grdchk output (g): 4 2.9819057090208E-04 2.9819017188622E-04 -1.3381254497791E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 10 8 1 1 1 0.000000000E+00 -1.000000000E-03 +(PID.TID 0000.0001) grdchk output (c): 5 7.2364898654165E+03 7.2364898667915E+03 7.2364898660415E+03 +(PID.TID 0000.0001) grdchk output (g): 5 3.7500831240322E-04 3.7500905356853E-04 1.9763931048411E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 6.3094785130871E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 9.0943568137008697 +(PID.TID 0000.0001) System time: 0.16829399904236197 +(PID.TID 0000.0001) Wall clock time: 9.3292288780212402 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.22834199876524508 +(PID.TID 0000.0001) System time: 1.7964999191462994E-002 +(PID.TID 0000.0001) Wall clock time: 0.25483489036560059 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 5.1753378212451935 +(PID.TID 0000.0001) System time: 8.0849714577198029E-003 +(PID.TID 0000.0001) Wall clock time: 5.1979510784149170 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.8031886816024780E-002 +(PID.TID 0000.0001) System time: 5.0950124859809875E-003 +(PID.TID 0000.0001) Wall clock time: 6.3699007034301758E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.9771974086761475E-002 +(PID.TID 0000.0001) System time: 2.0580030977725983E-003 +(PID.TID 0000.0001) Wall clock time: 4.2213916778564453E-002 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.0818581581115723E-004 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 3.1208992004394531E-004 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4685064554214478E-002 +(PID.TID 0000.0001) System time: 9.9837779998779297E-006 +(PID.TID 0000.0001) Wall clock time: 1.4764547348022461E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.1987299919128418E-003 +(PID.TID 0000.0001) System time: 1.0013580322265625E-005 +(PID.TID 0000.0001) Wall clock time: 4.2257308959960938E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.0388621687889099 +(PID.TID 0000.0001) System time: 6.6988170146942139E-005 +(PID.TID 0000.0001) Wall clock time: 2.0448222160339355 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 0.55684536695480347 +(PID.TID 0000.0001) System time: 3.0994415283203125E-005 +(PID.TID 0000.0001) Wall clock time: 0.55894446372985840 +(PID.TID 0000.0001) No. starts: 56 +(PID.TID 0000.0001) No. stops: 56 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 0.51289433240890503 +(PID.TID 0000.0001) System time: 4.7996640205383301E-005 +(PID.TID 0000.0001) Wall clock time: 0.51482439041137695 +(PID.TID 0000.0001) No. starts: 60 +(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.0340239405632019 +(PID.TID 0000.0001) System time: 2.3998320102691650E-005 +(PID.TID 0000.0001) Wall clock time: 1.0366852283477783 +(PID.TID 0000.0001) No. starts: 224 +(PID.TID 0000.0001) No. stops: 224 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0365519225597382 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 1.0394201278686523 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11816209554672241 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 0.11853146553039551 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.5968303680419922E-002 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 3.6144018173217773E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7615467309951782E-002 +(PID.TID 0000.0001) System time: 4.0084123611450195E-006 +(PID.TID 0000.0001) Wall clock time: 1.7681360244750977E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1035563945770264E-002 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 7.1290731430053711E-002 +(PID.TID 0000.0001) No. starts: 104 +(PID.TID 0000.0001) No. stops: 104 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2389425635337830 +(PID.TID 0000.0001) System time: 1.1999160051345825E-005 +(PID.TID 0000.0001) Wall clock time: 1.2420544624328613 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7975440025329590E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.9158592224121094E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.8971426486968994E-003 +(PID.TID 0000.0001) System time: 1.1980533599853516E-005 +(PID.TID 0000.0001) Wall clock time: 9.9527835845947266E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7731060981750488E-004 +(PID.TID 0000.0001) System time: 2.9996037483215332E-005 +(PID.TID 0000.0001) Wall clock time: 3.1304359436035156E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.8472563028335571E-002 +(PID.TID 0000.0001) System time: 1.0132789611816406E-006 +(PID.TID 0000.0001) Wall clock time: 3.8615226745605469E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6113262176513672E-003 +(PID.TID 0000.0001) System time: 9.6599757671356201E-004 +(PID.TID 0000.0001) Wall clock time: 4.6172142028808594E-003 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 0.11331939697265625 +(PID.TID 0000.0001) System time: 4.9060024321079254E-003 +(PID.TID 0000.0001) Wall clock time: 0.12445712089538574 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 2.1190404891967773E-002 +(PID.TID 0000.0001) System time: 4.9919709563255310E-003 +(PID.TID 0000.0001) Wall clock time: 2.6275873184204102E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 4.2188167572021484E-003 +(PID.TID 0000.0001) System time: 1.0049939155578613E-003 +(PID.TID 0000.0001) Wall clock time: 5.2568912506103516E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.8640499114990234E-003 +(PID.TID 0000.0001) System time: 9.9299848079681396E-004 +(PID.TID 0000.0001) Wall clock time: 4.8780441284179688E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.2516353130340576 +(PID.TID 0000.0001) System time: 5.7655997574329376E-002 +(PID.TID 0000.0001) Wall clock time: 5.3487470149993896 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.34514784812927246 +(PID.TID 0000.0001) System time: 3.6671005189418793E-002 +(PID.TID 0000.0001) Wall clock time: 0.38408780097961426 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 4.9011876583099365 +(PID.TID 0000.0001) System time: 1.9999995827674866E-002 +(PID.TID 0000.0001) Wall clock time: 4.9583053588867188 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 6.3717842102050781E-002 +(PID.TID 0000.0001) System time: 4.2997300624847412E-005 +(PID.TID 0000.0001) Wall clock time: 6.3975572586059570E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 4.6916527748107910 +(PID.TID 0000.0001) System time: 7.0329830050468445E-003 +(PID.TID 0000.0001) Wall clock time: 4.7117712497711182 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.1649837493896484E-002 +(PID.TID 0000.0001) System time: 4.9320012331008911E-003 +(PID.TID 0000.0001) Wall clock time: 4.9648046493530273E-002 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.12138652801513672 +(PID.TID 0000.0001) System time: 7.9699754714965820E-003 +(PID.TID 0000.0001) Wall clock time: 0.13011026382446289 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 1.9969940185546875E-003 +(PID.TID 0000.0001) System time: 1.7032027244567871E-005 +(PID.TID 0000.0001) Wall clock time: 2.0239353179931641E-003 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 43638 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 43638 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/lab_sea/results/output_tlm.txt.gz b/verification/lab_sea/results/output_tlm.txt.gz index e5033c1deb..11637fe296 100644 Binary files a/verification/lab_sea/results/output_tlm.txt.gz and b/verification/lab_sea/results/output_tlm.txt.gz differ diff --git a/verification/obcs_ctrl/code_ad/AUTODIFF_OPTIONS.h b/verification/obcs_ctrl/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..2604c81b9a --- /dev/null +++ b/verification/obcs_ctrl/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#define AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/CPP_OPTIONS.h b/verification/obcs_ctrl/code_ad/CPP_OPTIONS.h index 150f570572..089e074f4b 100644 --- a/verification/obcs_ctrl/code_ad/CPP_OPTIONS.h +++ b/verification/obcs_ctrl/code_ad/CPP_OPTIONS.h @@ -118,8 +118,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/CTRL_OPTIONS.h b/verification/obcs_ctrl/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..e55f50e63a --- /dev/null +++ b/verification/obcs_ctrl/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,122 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +C o In this experiment, this option and the corresponding necessary flags +C to reproduce this experiment are commented by CTRL +CTRL#define ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#define ALLOW_NONDIMENSIONAL_CONTROL_IO + +CTRLC >>> Initial values. +CTRL#define ALLOW_THETA0_CONTROL +CTRL#undef ALLOW_SALT0_CONTROL +CTRL#undef ALLOW_UVEL0_CONTROL +CTRL#undef ALLOW_VVEL0_CONTROL +CTRL#undef ALLOW_TR10_CONTROL +CTRL#undef ALLOW_TAUU0_CONTROL +CTRL#undef ALLOW_TAUV0_CONTROL +CTRL#undef ALLOW_SFLUX0_CONTROL +CTRL#undef ALLOW_HFLUX0_CONTROL +CTRL#undef ALLOW_SSS0_CONTROL +CTRL#undef ALLOW_SST0_CONTROL +CTRL +CTRLC >>> Surface fluxes. +CTRL#undef ALLOW_HFLUX_CONTROL +CTRL#undef ALLOW_SFLUX_CONTROL +CTRL#undef ALLOW_USTRESS_CONTROL +CTRL#undef ALLOW_VSTRESS_CONTROL +CTRL#undef ALLOW_SWFLUX_CONTROL +CTRL#undef ALLOW_LWFLUX_CONTROL +CTRL +CTRLC >>> Atmospheric state. +CTRL#undef ALLOW_ATEMP_CONTROL +CTRL#undef ALLOW_AQH_CONTROL +CTRL#undef ALLOW_UWIND_CONTROL +CTRL#undef ALLOW_VWIND_CONTROL +CTRL#undef ALLOW_PRECIP_CONTROL +CTRL +CTRLC >>> Other Control. +CTRL#undef ALLOW_DIFFKR_CONTROL +CTRL#undef ALLOW_KAPGM_CONTROL +CTRL#undef ALLOW_KAPREDI_CONTROL +CTRL#undef ALLOW_BOTTOMDRAG_CONTROL +CTRL +CTRLC >>> Backward compatibility option (before checkpoint 65p) +CTRL#undef ALLOW_KAPGM_CONTROL_OLD +CTRL#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL + +C >>> Open boundaries +c >>> Make sure that ALLOW_OBCS is defined +#define ALLOW_OBCSN_CONTROL +#define ALLOW_OBCSS_CONTROL +#define ALLOW_OBCSW_CONTROL +#define ALLOW_OBCSE_CONTROL +#if (defined (ALLOW_OBCSN_CONTROL) || \ + defined (ALLOW_OBCSS_CONTROL) || \ + defined (ALLOW_OBCSW_CONTROL) || \ + defined (ALLOW_OBCSE_CONTROL)) +# define ALLOW_OBCS_CONTROL +#endif +#define ALLOW_OBCS_CONTROL_MODES + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/ECCO_CPPOPTIONS.h b/verification/obcs_ctrl/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index f92849bd0a..0000000000 --- a/verification/obcs_ctrl/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,200 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -cph#define ALLOW_ECCO_FORWARD_RUN -#define ALLOW_ECCO_OPTIMIZATION - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C o Include/exclude code in order to be able to automatically - -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C extend to 4-level checkpointing -#undef AUTODIFF_4_LEVEL_CHECKPOINT - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C o TAMC compatible subroutine parameter list -#undef AUTODIFF_TAMC_COMPATIBILITY - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Use the EGM-96 geoid error covariance. -# undef ALLOW_EGM96_ERROR_COV -# undef ALLOW_READ_EGM_DATA -C >>> Use NSCAT data. -# undef ALLOW_NSCAT_DATA -C >>> Cost function contributions - -# undef ALLOW_HFLUX_COST_CONTRIBUTION -# undef ALLOW_SFLUX_COST_CONTRIBUTION -# undef ALLOW_USTRESS_COST_CONTRIBUTION -# undef ALLOW_VSTRESS_COST_CONTRIBUTION - -# undef ALLOW_ATEMP_COST_CONTRIBUTION -# undef ALLOW_AQH_COST_CONTRIBUTION -# undef ALLOW_UWIND_COST_CONTRIBUTION -# undef ALLOW_VWIND_COST_CONTRIBUTION -# undef ALLOW_PRECIP_COST_CONTRIBUTION -# undef ALLOW_SNOWPRECIP_COST_CONTRIBUTION -# undef ALLOW_SWDOWN_COST_CONTRIBUTION -# undef ALLOW_LWDOWN_COST_CONTRIBUTION -# undef ALLOW_EVAP_COST_CONTRIBUTION -# undef ALLOW_APRESSURE_COST_CONTRIBUTION -# undef ALLOW_RUNOFF_COST_CONTRIBUTION - -# define ALLOW_THETA0_COST_CONTRIBUTION -# undef ALLOW_SALT0_COST_CONTRIBUTION -# define ALLOW_THETA_COST_CONTRIBUTION -# undef ALLOW_SALT_COST_CONTRIBUTION -# undef ALLOW_SST_COST_CONTRIBUTION -# undef ALLOW_SSS_COST_CONTRIBUTION - -# undef ALLOW_SSH_MEAN_COST_CONTRIBUTION -# undef ALLOW_SSH_TPANOM_COST_CONTRIBUTION -# undef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION -# undef ALLOW_SPH_PROJECTION -# if (defined (ALLOW_SSH_MEAN_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_TPANOM_COST_CONTRIBUTION) || \ - defined (ALLOW_SSH_ERSANOM_COST_CONTRIBUTION)) -# define ALLOW_SSH_COST_CONTRIBUTION -# endif - -# undef ALLOW_CTDT_COST_CONTRIBUTION -# undef ALLOW_CTDS_COST_CONTRIBUTION -# undef ALLOW_XBT_COST_CONTRIBUTION -# undef ALLOW_COST_ATLANTIC - -c >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -# define ALLOW_OBCSN_COST_CONTRIBUTION -# define ALLOW_OBCSS_COST_CONTRIBUTION -# define ALLOW_OBCSW_COST_CONTRIBUTION -# define ALLOW_OBCSE_COST_CONTRIBUTION -# if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \ - defined (ALLOW_OBCSE_COST_CONTRIBUTION)) -# define ALLOW_OBCS_COST_CONTRIBUTION -# endif -CMM -# undef ALLOW_IESTAU_COST_CONTRIBUTION - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define ALLOW_NONDIMENSIONAL_CONTROL_IO -#undef ALLOW_TAMC_SINGLEPREC_COMLEV - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#undef ALLOW_SALT0_CONTROL - -C >>> Initial seaice -#undef ALLOW_SIAREA_CONTROL -#undef ALLOW_SIHEFF_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_PRECIP_CONTROL -#undef ALLOW_SNOWPRECIP_CONTROL -#undef ALLOW_SWDOWN_CONTROL -#undef ALLOW_LWDOWN_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_EVAP_CONTROL -#undef ALLOW_APRESSURE_CONTROL -#undef ALLOW_RUNOFF_CONTROL - -C >>> Radiation -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> seaice init. conditions -#undef ALLOW_SIAREA_CONTROL -#undef ALLOW_SIHEFF_CONTROL -#undef ALLOW_SIHSNOW_CONTROL - -C >>> Open boundaries -c >>> Make sure that ALLOW_OBCS is defined -#define ALLOW_OBCSN_CONTROL -#define ALLOW_OBCSS_CONTROL -#define ALLOW_OBCSW_CONTROL -#define ALLOW_OBCSE_CONTROL -#if (defined (ALLOW_OBCSN_CONTROL) || \ - defined (ALLOW_OBCSS_CONTROL) || \ - defined (ALLOW_OBCSW_CONTROL) || \ - defined (ALLOW_OBCSE_CONTROL)) -# define ALLOW_OBCS_CONTROL -#endif -#define ALLOW_OBCS_CONTROL_MODES - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Do more printout for the protocol file than usual. -#undef EXF_VERBOSE - -C Bulk formulae related flags. -#undef ALLOW_BULK_LARGYEAG04 -#undef ALLOW_ATM_TEMP -#undef ALLOW_ATM_WIND -#undef ALLOW_BULKFORMULAE -#undef ALLOW_DOWNWARD_RADIATION -#undef ALLOW_RUNOFF -#undef EXF_READ_EVAP - -C Relaxation to monthly climatologies. -#undef ALLOW_CLIMSST_RELAXATION -#undef ALLOW_CLIMSSS_RELAXATION - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/ECCO_OPTIONS.h b/verification/obcs_ctrl/code_ad/ECCO_OPTIONS.h new file mode 100644 index 0000000000..f2e5205906 --- /dev/null +++ b/verification/obcs_ctrl/code_ad/ECCO_OPTIONS.h @@ -0,0 +1,95 @@ +CBOP +C !ROUTINE: ECCO_OPTIONS.h +C !INTERFACE: +C #include "ECCO_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for ECCO (ecco) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef ECCO_OPTIONS_H +#define ECCO_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_ECCO +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +c >>> Open boundaries +c >>> Make sure that ALLOW_OBCS is defined +#define ALLOW_OBCSN_COST_CONTRIBUTION +#define ALLOW_OBCSS_COST_CONTRIBUTION +#define ALLOW_OBCSW_COST_CONTRIBUTION +#define ALLOW_OBCSE_COST_CONTRIBUTION +#if (defined (ALLOW_OBCSN_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSS_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSW_COST_CONTRIBUTION) || \ + defined (ALLOW_OBCSE_COST_CONTRIBUTION)) +# define ALLOW_OBCS_COST_CONTRIBUTION +#endif + +C re-activate deprecated codes (just in case ... but not recommended) +C#define ALLOW_THETA0_COST_CONTRIBUTION +C#define ALLOW_THETA_COST_CONTRIBUTION + +C allow for generic cost function and integral terms +#define ALLOW_GENCOST_CONTRIBUTION +C allow for 3 dimensional generic terms +#define ALLOW_GENCOST3D + +C include global mean steric sea level correction +#undef ALLOW_PSBAR_STERIC +C allow for near-shore and high-latitude altimetry +#undef ALLOW_SHALLOW_ALTIMETRY +#undef ALLOW_HIGHLAT_ALTIMETRY + +C allow for In-Situ Profiles cost function contribution +#undef ALLOW_PROFILES_CONTRIBUTION + +C cost function output format +#undef ALLOW_ECCO_OLD_FC_PRINT + +C-- real options? + +C include dump of snap shots for checks +#undef ALLOW_SNAPSHOTS + +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< +c#define SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING +cph >>>>>> !!!!!! SPECIAL SEAICE FLAG FOR TESTING !!!!!! <<<<<< + +C generate more text in STDOUT.0000 +#undef ECCO_VERBOSE + +C allow cost function term for sigmaR +#undef ALLOW_SIGMAR_COST_CONTRIBUTION + +C-- fake options (only used to be printed in S/R ECCO_SUMMARY): + +C allow ??? +#define ALLOW_ECCO_FORWARD_RUN +#undef ALLOW_ECCO_DIAGNOSTIC_RUN +C Just do a "dry" run ( useful for testing ). +#undef ALLOW_NO_DYNAMICS +C Use the Yearly-Monthly-Daily-Stepping call tree. +#undef ALLOW_YMDS_TREE +C Do not call stepping +#define ALLOW_STEPPING_CALL +C Projection onto Spherical Harmonics +#undef ALLOW_SPH_PROJECTION + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_ECCO */ +#endif /* ECCO_OPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/EXF_OPTIONS.h b/verification/obcs_ctrl/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..a23606c956 --- /dev/null +++ b/verification/obcs_ctrl/code_ad/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#undef ALLOW_ATM_TEMP +#undef ALLOW_ATM_WIND +#undef ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#undef ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#undef ALLOW_CLIMSST_RELAXATION +#undef ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/obcs_ctrl/code_ad/OBCS_OPTIONS.h b/verification/obcs_ctrl/code_ad/OBCS_OPTIONS.h index 3a1a4ec1a4..aae6e7d508 100644 --- a/verification/obcs_ctrl/code_ad/OBCS_OPTIONS.h +++ b/verification/obcs_ctrl/code_ad/OBCS_OPTIONS.h @@ -23,7 +23,7 @@ C from a file #define ALLOW_OBCS_PRESCRIBE C Enable OB conditions following Stevens (1990) -#undef ALLOW_OBCS_STEVENS +#define ALLOW_OBCS_STEVENS C Allow sponge layer treatment of open boundary conditions #define ALLOW_OBCS_SPONGE diff --git a/verification/obcs_ctrl/code_ad/SIZE.h b/verification/obcs_ctrl/code_ad/SIZE.h index c245bb4e5e..b829c79144 100644 --- a/verification/obcs_ctrl/code_ad/SIZE.h +++ b/verification/obcs_ctrl/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/obcs_ctrl/code_ad/SIZE.h_mpi b/verification/obcs_ctrl/code_ad/SIZE.h_mpi index c90c9df1f2..cbe4e14151 100644 --- a/verification/obcs_ctrl/code_ad/SIZE.h_mpi +++ b/verification/obcs_ctrl/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/obcs_ctrl/code_ad/tamc.h b/verification/obcs_ctrl/code_ad/tamc.h index 82a160623a..7920303fe9 100644 --- a/verification/obcs_ctrl/code_ad/tamc.h +++ b/verification/obcs_ctrl/code_ad/tamc.h @@ -1,123 +1,95 @@ -c ================================================================== -c HEADER TAMC -c ================================================================== -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c -c -c ================================================================== -c HEADER TAMC -c ================================================================== - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - integer nchklev_2 - integer nchklev_3 - integer nchklev_4 - parameter( nchklev_1 = 9 ) - parameter( nchklev_2 = 8 ) - parameter( nchklev_3 = 1 ) - parameter( nchklev_4 = 1 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 9 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 8 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 1 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 48 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For more accurate but larger tapes replace 4 by 8. INTEGER isbyte - PARAMETER( isbyte = 4 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) + PARAMETER( isbyte = 4 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass -#ifdef ALLOW_PTRACERS -cmm ALLOW_PASSIVE_TRACER -cmm PARAMETER( maxpass = 3 ) -#else - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, ikppkey - -c ================================================================== -c END OF HEADER TAMC -c ================================================================== + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/obcs_ctrl/input_ad/data b/verification/obcs_ctrl/input_ad/data index 66015c887f..bc3dd6ae9a 100644 --- a/verification/obcs_ctrl/input_ad/data +++ b/verification/obcs_ctrl/input_ad/data @@ -39,14 +39,14 @@ endTime=4800., deltaTmom=1200.0, deltaTtracer=1200.0, - dumpInitAndLast=.TRUE., abEps=0.1, + dumpInitAndLast=.TRUE., pChkptFreq=0.0, chkptFreq=0.0, dumpFreq=2628000.0, -#monitorFreq=432000., - monitorFreq=3600., - monitorSelect=1, + monitorSelect= 1, + monitorFreq = 4800., + adjMonitorFreq=3600., & # Gridding parameters &PARM04 diff --git a/verification/obcs_ctrl/input_ad/data.ctrl b/verification/obcs_ctrl/input_ad/data.ctrl index f1b61cd795..82bdb02fe0 100644 --- a/verification/obcs_ctrl/input_ad/data.ctrl +++ b/verification/obcs_ctrl/input_ad/data.ctrl @@ -38,3 +38,11 @@ ctrlname = 'ecco_ctrl', costname = 'ecco_cost', & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'errorTtot.err64', + & diff --git a/verification/obcs_ctrl/input_ad/data.ecco b/verification/obcs_ctrl/input_ad/data.ecco index c2c764b2ba..65baa90b5e 100644 --- a/verification/obcs_ctrl/input_ad/data.ecco +++ b/verification/obcs_ctrl/input_ad/data.ecco @@ -8,7 +8,6 @@ temp0errfile = 'errorTtot.err', temperrfile = 'errorTtot.err', tdatfile = 'FinalThetaObs.bin', -# # mult_temp0 = 1.0, mult_temp = 1.0, @@ -18,5 +17,21 @@ mult_obcse = 1.0, # cost_iprec = 32, - cost_yftype = 'RL', + & + + &ECCO_GENCOST_NML + gencost_avgperiod(1) = 'month', + gencost_barfile(1) = 'm_theta', + gencost_datafile(1) = 'FinalThetaObs.bin', + gencost_errfile(1) = 'errorTtot.err', + gencost_name(1) = 'theta', + gencost_is3d(1) = .TRUE., + gencost_preproc(1,1) = 'clim', + gencost_preproc_i(1,1)=12, + gencost_spmin(1) = -1.8, + gencost_spmax(1) = 40., + gencost_spzero(1) = 0., +# this is default + gencost_outputlevel(1)=0, + mult_gencost(1) = 1., & diff --git a/verification/obcs_ctrl/input_ad/errorTtot.err64 b/verification/obcs_ctrl/input_ad/errorTtot.err64 new file mode 100644 index 0000000000..13c0061e98 --- /dev/null +++ b/verification/obcs_ctrl/input_ad/errorTtot.err64 @@ -0,0 +1 @@ +???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? \ No newline at end of file diff --git a/verification/obcs_ctrl/input_ad/genweights.py b/verification/obcs_ctrl/input_ad/genweights.py new file mode 100644 index 0000000000..05dd80ac0d --- /dev/null +++ b/verification/obcs_ctrl/input_ad/genweights.py @@ -0,0 +1,13 @@ +import numpy as np + +nx,ny,nr,nt=64,64,8,1 + +err = 0.1 + +# single prec ieee-be +wt32 = err*np.ones((nt,nr,ny,nx),dtype='>f4') +wt32.tofile('errorTtot.err') + +# double prec ieee-be +wt64 = err*np.ones((nt,nr,ny,nx),dtype='>f8') +wt64.tofile('errorTtot.err64') diff --git a/verification/obcs_ctrl/input_ad/tr_checklist.adm b/verification/obcs_ctrl/input_ad/tr_checklist.adm new file mode 100644 index 0000000000..1449dd3e17 --- /dev/null +++ b/verification/obcs_ctrl/input_ad/tr_checklist.adm @@ -0,0 +1 @@ +admGrd admCst admGrd admFwd T+ Eta+ U+ V+ diff --git a/verification/obcs_ctrl/results/output_adm.txt b/verification/obcs_ctrl/results/output_adm.txt index b016d413af..e2972abcbe 100644 --- a/verification/obcs_ctrl/results/output_adm.txt +++ b/verification/obcs_ctrl/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint65 -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Sat Jul 19 01:47:56 EDT 2014 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67w +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Tue Apr 13 00:55:02 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +49,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -146,14 +148,14 @@ (PID.TID 0000.0001) > endTime=4800., (PID.TID 0000.0001) > deltaTmom=1200.0, (PID.TID 0000.0001) > deltaTtracer=1200.0, -(PID.TID 0000.0001) > dumpInitAndLast=.TRUE., (PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > dumpInitAndLast=.TRUE., (PID.TID 0000.0001) > pChkptFreq=0.0, (PID.TID 0000.0001) > chkptFreq=0.0, (PID.TID 0000.0001) > dumpFreq=2628000.0, -(PID.TID 0000.0001) >#monitorFreq=432000., -(PID.TID 0000.0001) > monitorFreq=3600., -(PID.TID 0000.0001) > monitorSelect=1, +(PID.TID 0000.0001) > monitorSelect= 1, +(PID.TID 0000.0001) > monitorFreq = 4800., +(PID.TID 0000.0001) > adjMonitorFreq=3600., (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Gridding parameters (PID.TID 0000.0001) > &PARM04 @@ -204,21 +206,21 @@ pkg/obcs compiled and used ( useOBCS = T ) pkg/cal compiled and used ( useCAL = T ) pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) pkg/grdchk compiled and used ( useGrdchk = T ) pkg/ecco compiled and used ( useECCO = T ) + pkg/ctrl compiled and used ( useCTRL = T ) pkg/diagnostics compiled and used ( useDiagnostics = T ) -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- pkg/generic_advdiff compiled and used ( useGAD = T ) pkg/mom_common compiled and used ( momStepping = T ) pkg/mom_vecinv compiled and used ( +vectorInvariantMomentum = T ) pkg/monitor compiled and used ( monitorFreq > 0. = T ) - pkg/timeave compiled but not used ( taveFreq > 0. = F ) pkg/debug compiled but not used ( debugMode = F ) pkg/rw compiled and used pkg/mdsio compiled and used pkg/autodiff compiled and used pkg/cost compiled and used - pkg/ctrl compiled and used (PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary (PID.TID 0000.0001) (PID.TID 0000.0001) CAL_READPARMS: opening data.cal @@ -378,6 +380,9 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -399,9 +404,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -466,11 +480,16 @@ (PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', (PID.TID 0000.0001) > costname = 'ecco_cost', (PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'errorTtot.err64', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl -(PID.TID 0000.0001) useSmoothCorrel2DinAdMode = /* use ctrlSmoothCorrel2D in adjoint mode */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) COST_READPARMS: opening data.cost (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost (PID.TID 0000.0001) // ======================================================= @@ -513,6 +532,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 13 (PID.TID 0000.0001) eps: 0.100E-03 (PID.TID 0000.0001) First location: 0 (PID.TID 0000.0001) Last location: 4 @@ -537,7 +557,7 @@ (PID.TID 0000.0001) > tbarfile = 'tbar', (PID.TID 0000.0001) ># (PID.TID 0000.0001) > temp0errfile = 'errorTtot.err', -(PID.TID 0000.0001) ># temperrfile = 'errorTtot.err', +(PID.TID 0000.0001) > temperrfile = 'errorTtot.err', (PID.TID 0000.0001) > tdatfile = 'FinalThetaObs.bin', (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># @@ -551,8 +571,26 @@ (PID.TID 0000.0001) > cost_iprec = 32, (PID.TID 0000.0001) > cost_yftype = 'RL', (PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &ECCO_GENCOST_NML +(PID.TID 0000.0001) > gencost_avgperiod(1) = 'month', +(PID.TID 0000.0001) > gencost_barfile(1) = 'm_theta', +(PID.TID 0000.0001) > gencost_datafile(1) = 'FinalThetaObs.bin', +(PID.TID 0000.0001) > gencost_errfile(1) = 'errorTtot.err', +(PID.TID 0000.0001) > gencost_name(1) = 'theta', +(PID.TID 0000.0001) > gencost_is3d(1) = .TRUE., +(PID.TID 0000.0001) > gencost_preproc(1,1) = 'clim', +(PID.TID 0000.0001) > gencost_preproc_i(1,1)=12, +(PID.TID 0000.0001) > gencost_spmin(1) = -1.8, +(PID.TID 0000.0001) > gencost_spmax(1) = 40., +(PID.TID 0000.0001) > gencost_spzero(1) = 0., +(PID.TID 0000.0001) ># this is default +(PID.TID 0000.0001) > gencost_outputlevel(1)=0, +(PID.TID 0000.0001) > mult_gencost(1) = 1., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) ECCO_READPARMS: finished reading #1: ecco_cost_nml +(PID.TID 0000.0001) ECCO_READPARMS: finished reading #2: ecco_gencost_nml (PID.TID 0000.0001) ECCO_READPARMS: done (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics @@ -633,6 +671,9 @@ (PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ (PID.TID 0000.0001) 1.000000000000000E-08 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: (PID.TID 0000.0001) ----------------------------------------------------- @@ -836,6 +877,9 @@ (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; @@ -854,6 +898,9 @@ (PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ (PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; @@ -982,52 +1029,23 @@ (PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): NOT defined (PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: NOT defined (PID.TID 0000.0001) // ALLOW_BULKFORMULAE: NOT defined -(PID.TID 0000.0001) -(PID.TID 0000.0001) Zonal wind stress forcing starts at 0. -(PID.TID 0000.0001) Zonal wind stress forcing period is 0. -(PID.TID 0000.0001) Zonal wind stress forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Meridional wind stress forcing starts at 0. -(PID.TID 0000.0001) Meridional wind stress forcing period is 0. -(PID.TID 0000.0001) Meridional wind stress forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Heat flux forcing starts at 0. -(PID.TID 0000.0001) Heat flux forcing period is 0. -(PID.TID 0000.0001) Heat flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Salt flux forcing starts at 0. -(PID.TID 0000.0001) Salt flux forcing period is 0. -(PID.TID 0000.0001) Salt flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Net shortwave flux forcing starts at 0. -(PID.TID 0000.0001) Net shortwave flux forcing period is 0. -(PID.TID 0000.0001) Net shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) (PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined -(PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: NOT defined -(PID.TID 0000.0001) -(PID.TID 0000.0001) Atmospheric pressure forcing starts at 0. -(PID.TID 0000.0001) Atmospheric pressure forcing period is 0. -(PID.TID 0000.0001) Atmospheric pressureforcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) climatology configuration : (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: NOT defined +(PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: NOT defined (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) etaday defined by gencost 0 (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.err (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.err" @@ -1044,53 +1062,32 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // ECCO cost function configuration >>> START <<< +(PID.TID 0000.0001) // ECCO configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) Multipliers for the indivdual cost function contributions: +(PID.TID 0000.0001) gencost( 1) = theta +(PID.TID 0000.0001) ------------- +(PID.TID 0000.0001) data file = FinalThetaObs.bin +(PID.TID 0000.0001) model file = m_theta +(PID.TID 0000.0001) error file = errorTtot.err +(PID.TID 0000.0001) preprocess = clim +(PID.TID 0000.0001) gencost_flag = 1 +(PID.TID 0000.0001) gencost_outputlevel = 0 +(PID.TID 0000.0001) gencost_pointer3d = 1 (PID.TID 0000.0001) -(PID.TID 0000.0001) Net heat flux: 0.000E+00 -(PID.TID 0000.0001) Salt flux: 0.000E+00 -(PID.TID 0000.0001) Zonal wind stress: 0.000E+00 -(PID.TID 0000.0001) Meridional wind stress: 0.000E+00 -(PID.TID 0000.0001) Mean sea surface height: 0.000E+00 -(PID.TID 0000.0001) Sea surface height anomalies: 0.100E+01 -(PID.TID 0000.0001) Temperature Lev.: 0.100E+01 -(PID.TID 0000.0001) Salinity Lev.: 0.000E+00 -(PID.TID 0000.0001) Temperature ini.: 0.100E+01 -(PID.TID 0000.0001) Salinity ini.: 0.000E+00 -(PID.TID 0000.0001) Sea level ini.: 0.000E+00 -(PID.TID 0000.0001) zonal velocity ini.: 0.000E+00 -(PID.TID 0000.0001) merid velocity ini.: 0.000E+00 -(PID.TID 0000.0001) TMI Sea surface temperature: 0.000E+00 -(PID.TID 0000.0001) Sea surface temperature: 0.000E+00 -(PID.TID 0000.0001) Sea surface salinity: 0.000E+00 -(PID.TID 0000.0001) CTD temperature: 0.000E+00 -(PID.TID 0000.0001) CTD salinity: 0.000E+00 -(PID.TID 0000.0001) CTD clim temperature: 0.000E+00 -(PID.TID 0000.0001) CTD clim salinity: 0.000E+00 -(PID.TID 0000.0001) XBT Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Temperature: 0.000E+00 -(PID.TID 0000.0001) ARGO Salt: 0.000E+00 -(PID.TID 0000.0001) drifter velocities: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) drift between last and 1st year: 0.000E+00 -(PID.TID 0000.0001) Ageostrophic bdy flow: 0.000E+00 -(PID.TID 0000.0001) OB North: 0.100E+01 -(PID.TID 0000.0001) OB South: 0.100E+01 -(PID.TID 0000.0001) OB West: 0.100E+01 -(PID.TID 0000.0001) OB East: 0.100E+01 (PID.TID 0000.0001) (PID.TID 0000.0001) -(PID.TID 0000.0001) Temperature data are read from: FinalThetaObs.bin -(PID.TID 0000.0001) Salinity data are read from: +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ECCO configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) ctrl-wet 1: nvarlength = 40960 (PID.TID 0000.0001) ctrl-wet 2: surface wet C = 1024 (PID.TID 0000.0001) ctrl-wet 3: surface wet W = 1024 (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 1024 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 8192 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 @@ -1150,6 +1147,346 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 16384 (PID.TID 0000.0001) ctrl-wet 8: atmos 16384 (PID.TID 0000.0001) ctrl-wet 9: surface wet obcsn = 0 0 0 0 @@ -1206,11 +1543,41 @@ (PID.TID 0000.0001) ctrl-wet 16c: global SUM(K) obcsW T,S,U,V 512 512 512 512 (PID.TID 0000.0001) ctrl-wet 16d: global SUM(K) obcsE T,S,U,V 512 512 512 512 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 5 -(PID.TID 0000.0001) ctrl_init: control vector length: 40960 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 5 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 40960 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 8192 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008192 008192 008192 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 008192 008192 008192 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 008192 008192 008192 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 008192 008192 008192 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = errorTtot.err64 +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 194 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 229 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) space allocated for all diagnostics: 0 levels (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done @@ -1265,7 +1632,7 @@ (PID.TID 0000.0001) 7.000000000000000E+00, /* K = 7 */ (PID.TID 0000.0001) 6.000000000000000E+00 /* K = 8 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 8 @ 3.500000000000000E+01 /* K = 1: 8 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1301,12 +1668,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1355,12 +1728,19 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ (PID.TID 0000.0001) 9.998000000000000E+02 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1385,6 +1765,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 8 @ 1.000000000000000E+00 /* K = 1: 8 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 9 @ 1.000000000000000E+00 /* K = 1: 9 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.640000000000000E+04 (PID.TID 0000.0001) ; @@ -1412,7 +1798,7 @@ (PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ @@ -1452,7 +1838,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1461,10 +1847,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1506,6 +1892,10 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1525,14 +1915,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : hFac weighted average (Angular Mom. conserving) +(PID.TID 0000.0001) = 3 : energy conserving scheme using hFac weighted average (PID.TID 0000.0001) ; (PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ (PID.TID 0000.0001) F @@ -1545,6 +1933,9 @@ (PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme (PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1560,6 +1951,9 @@ (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1623,6 +2017,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1642,6 +2042,9 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // @@ -1702,6 +2105,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1735,9 +2141,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1751,7 +2154,7 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ -(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) 4.800000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ (PID.TID 0000.0001) 1 @@ -1789,11 +2192,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1804,6 +2216,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 1.000200040008002E-03 (PID.TID 0000.0001) ; @@ -2553,7 +2971,7 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) OBCS_monitorFreq = /* monitor output frequency [s] */ -(PID.TID 0000.0001) 3.600000000000000E+03 +(PID.TID 0000.0001) 4.800000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) OBCS_monSelect = /* select group of variables to monitor */ (PID.TID 0000.0001) 0 @@ -2606,9 +3024,13 @@ (PID.TID 0000.0001) OBCS_CHECK: end summary. (PID.TID 0000.0001) OBCS_CHECK: set-up OK (PID.TID 0000.0001) OBCS_CHECK: check Inside Mask and OB locations: OK -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) etaday defined by gencost 0 (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): @@ -2694,51 +3116,52 @@ cg2d: Sum(rhs),rhsMax = -7.87435592178018E+00 1.37697984471785E+00 cg2d: Sum(rhs),rhsMax = -1.01791081157115E+02 2.13040853307022E-01 cg2d: Sum(rhs),rhsMax = -1.59112718349022E+02 2.04436757292323E-01 -(PID.TID 0000.0001) cg2d_init_res = 1.07341835251457E+01 -(PID.TID 0000.0001) cg2d_iters(min,last) = -1 125 -(PID.TID 0000.0001) cg2d_last_res = 8.69273657547353E-09 + cg2d: Sum(rhs),rhsMax = -2.24736325184813E+02 1.92987571287909E-01 +(PID.TID 0000.0001) cg2d_init_res = 5.54624486165762E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 124 +(PID.TID 0000.0001) cg2d_last_res = 9.76732479760236E-09 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 3 -(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON dynstat_eta_max = 7.8092398553590E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -5.4968965087768E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.9423395070582E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.9439735896680E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8190879495240E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.8537995003132E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.8997873814471E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.8610415895868E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2961485949301E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.5150503690454E-05 +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 4.8000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.2130392091931E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -5.6255703983901E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.3256452676073E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.4455125785822E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.4253272027794E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4546562415600E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.8670904988210E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.3213292834139E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2365214002733E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3192533216355E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 9.9974803626537E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = 6.2484252266586E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.0253520401631E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2000187955839E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.6726128973313E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.0011921563865E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2885885525852E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.5911248841545E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1520767318869E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2443710264333E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1316879708723E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5012272074613E-04 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4729391862362E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 7.4772613147768E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.8938666481104E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0001248819492E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = 5.9999361694632E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.0999776469027E+01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4997965691583E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 1.9685540248354E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.1810336999194E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0172580595088E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.0001260229520E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = 5.9999253969875E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 1.0999702246231E+01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4997341908325E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.3209976472543E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4999999999999E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 5.4711790653528E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.7610341090195E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.5339855562864E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3163335425681E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.9205722350655E-03 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4492544279721E-04 -(PID.TID 0000.0001) %MON pe_b_mean = 1.1840034367670E-04 -(PID.TID 0000.0001) %MON ke_max = 5.0892057267744E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.6538045909161E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0232102260187E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.4735815378683E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.6712429188635E-04 +(PID.TID 0000.0001) %MON ke_max = 4.9317513107246E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.3289380306233E-03 (PID.TID 0000.0001) %MON ke_vol = 9.9316925415266E+15 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics @@ -2769,114 +3192,17 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.24736325184813E+02 1.92987571287909E-01 (PID.TID 0000.0001) %CHECKPOINT 4 ckptA -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701073786182D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 --> f_obcsw = 0.000000000000000D+00 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701073786182D+01 - global fc = 0.147701073786182D+01 +(PID.TID 0000.0001) --> f_gencost = 0.147701073786182D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701073786182D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701073786182D+01 +(PID.TID 0000.0001) global fc = 0.147701073786182D+01 (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -7.87435592178018E+00 1.37697984471785E+00 cg2d: Sum(rhs),rhsMax = -1.01791081157115E+02 2.13040853307022E-01 @@ -2889,14 +3215,237 @@ cg2d: Sum(rhs),rhsMax = -1.59112718349022E+02 2.04436757292323E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184813E+02 1.92987571287909E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -2.24736307784685E+02 1.92987586350900E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 3.51056614475562E-07 - cg2d: Sum(rhs),rhsMax = 1.31969102312723E-10 5.59388870055407E-07 - cg2d: Sum(rhs),rhsMax = 1.14482645585667E-10 6.28064934600198E-07 - cg2d: Sum(rhs),rhsMax = -1.04449782156735E-12 9.25487177941239E-07 + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 3.51056614475562E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 5.8709717829351E-06 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -5.0431749928204E-06 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = -8.3540510599836E-07 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 1.2621909994194E-06 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 2.3130992997975E-08 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 1.1246194862269E-05 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -5.4423141248595E-06 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 7.6127193119865E-07 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 2.6719796373446E-06 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 2.7390574716127E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 4.6438701753071E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -2.2003352880324E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 8.8636803209616E-09 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.4929044558236E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 5.4523809756612E-11 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 3.7274570918021E-06 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -5.0415844732947E-06 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -8.3337873736786E-07 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.2094382236025E-06 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 1.2590199082228E-08 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.1079375452446E-05 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -2.4343375629543E-06 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 7.7559128172213E-07 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 2.5646312323075E-06 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 1.8377587936728E-08 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 3 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.59112726246071E+02 2.04436747268914E-01 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 3 +(PID.TID 0000.0001) %MON ad_time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 6.9553714367739E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -5.4177609226076E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 2.3516835039517E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 2.1084468100996E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 7.1780902426021E-07 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.7242637004962E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3997311137770E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 4.1597280631791E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.4753403135599E-04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 1.4726674745988E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 2.8832914124571E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.4298100658402E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 3.1593505821441E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 6.0346002533507E-04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 2.0214054920126E-06 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 3.6767199578452E-07 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -8.7956852691803E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = -2.9155919432676E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.6595476741591E-08 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 6.6766183266447E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.4177848166771E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.0677830191700E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.1911405043954E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 5.3573179769125E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.1593988690583E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = 1.31858968188681E-10 5.59388870055983E-07 + cg2d: Sum(rhs),rhsMax = -1.01791052791247E+02 2.13040912211049E-01 + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = 1.14553699859243E-10 6.28064934587702E-07 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -7.87435592178018E+00 1.37697984471785E+00 + Calling cg2d from S/R CG2D_SAD + cg2d: Sum(rhs),rhsMax = -8.73967564984923E-13 9.25487177938092E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 1.2552281362196E-05 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = -3.5914552579897E-05 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = -7.0608941088644E-06 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 6.4556812168091E-06 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 5.1076688924702E-08 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 4.8331863849915E-05 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = -1.9839717090482E-05 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 1.0461566958412E-06 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 1.4072316049049E-05 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 8.5337991164083E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.8225251536434E-07 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -8.6236717737716E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 3.5330836684638E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 5.9371649204344E-08 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 2.1725373829097E-10 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adustress_max = 3.9245975748616E-05 +(PID.TID 0000.0001) %MON ad_exf_adustress_min = -8.6297830578121E-05 +(PID.TID 0000.0001) %MON ad_exf_adustress_mean = -1.8104262271548E-05 +(PID.TID 0000.0001) %MON ad_exf_adustress_sd = 1.8139588477426E-05 +(PID.TID 0000.0001) %MON ad_exf_adustress_del2 = 8.9832517344424E-08 +(PID.TID 0000.0001) %MON ad_exf_advstress_max = 1.4144123986796E-04 +(PID.TID 0000.0001) %MON ad_exf_advstress_min = -4.4657373904865E-05 +(PID.TID 0000.0001) %MON ad_exf_advstress_mean = 6.2517738768625E-06 +(PID.TID 0000.0001) %MON ad_exf_advstress_sd = 3.9642792228470E-05 +(PID.TID 0000.0001) %MON ad_exf_advstress_del2 = 2.1947505130906E-07 +(PID.TID 0000.0001) %MON ad_exf_adhflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adhflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adsflux_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adwspeed_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 2 +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 4.7869894365378E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -4.7565576878087E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 4.6799540815434E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.9898151358336E-03 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 5.1648218116907E-06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.1564982648546E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.0463784124876E-02 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.2090930370914E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 3.7924004828758E-03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 9.5668717463669E-06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 3.0259205799804E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.1599535100862E-02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 2.3825090204143E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 4.8975400333167E-03 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.5395027191477E-05 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.9387883884850E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -7.5297906832602E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -2.9718530630997E-02 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.3326500128855E-01 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.8325162781932E-04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl (PID.TID 0000.0001) // ======================================================= @@ -2929,113 +3478,17 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349022E+02 2.04436757292323E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184813E+02 1.92987571287909E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701173786179D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701173786194D+01 - global fc = 0.147701173786194D+01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701173786194E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701173786179D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701174286179D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701174286179D+01 +(PID.TID 0000.0001) global fc = 0.147701174286179D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701174286179E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3049,115 +3502,19 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349022E+02 2.04436757292323E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184813E+02 1.92987571287909E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701173786179D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701173786194D+01 - global fc = 0.147701173786194D+01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701173786194E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701173786179D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701174286179D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701174286179D+01 +(PID.TID 0000.0001) global fc = 0.147701174286179D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701174286179E+00 grad-res ------------------------------- - grad-res 0 1 1 1 4 1 1 1 1.47701073786E+00 1.47701173786E+00 1.47701173786E+00 + grad-res 0 1 1 1 4 1 1 1 1.47701073786E+00 1.47701174286E+00 1.47701174286E+00 grad-res 0 1 1 97 0 1 1 1 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 (PID.TID 0000.0001) ADM ref_cost_function = 1.47701073786182E+00 (PID.TID 0000.0001) ADM adjoint_gradient = 0.00000000000000E+00 @@ -3181,113 +3538,17 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349077E+02 2.04436757292253E-01 cg2d: Sum(rhs),rhsMax = -2.24736325185377E+02 1.92987571287426E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701229545064D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701229545079D+01 - global fc = 0.147701229545079D+01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701229545079E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701229545064D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701230045064D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701230045064D+01 +(PID.TID 0000.0001) global fc = 0.147701230045064D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701230045064E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3301,118 +3562,22 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718348959E+02 2.04436757292404E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184243E+02 1.92987571288399E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701118176573D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701118176588D+01 - global fc = 0.147701118176588D+01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701118176588E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701118176573D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701118676573D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701118676573D+01 +(PID.TID 0000.0001) global fc = 0.147701118676573D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701118676573E+00 grad-res ------------------------------- - grad-res 0 2 1 2 4 1 1 1 1.47701073786E+00 1.47701229545E+00 1.47701118177E+00 - grad-res 0 2 2 98 0 1 1 1 5.56842434466E-03 5.56842455479E-03 -3.77366511373E-08 + grad-res 0 2 1 2 4 1 1 1 1.47701073786E+00 1.47701230045E+00 1.47701118677E+00 + grad-res 0 2 2 98 0 1 1 1 5.56842434466E-03 5.56842455479E-03 -3.77366475846E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.47701073786182E+00 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.56842434465787E-03 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.56842434465789E-03 (PID.TID 0000.0001) ADM finite-diff_grad = 5.56842455479156E-03 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= @@ -3433,113 +3598,17 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349075E+02 2.04436757292256E-01 cg2d: Sum(rhs),rhsMax = -2.24736325185393E+02 1.92987571287411E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701230547671D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701230547687D+01 - global fc = 0.147701230547687D+01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701230547687E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701230547672D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701231047672D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701231047672D+01 +(PID.TID 0000.0001) global fc = 0.147701231047672D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701231047672E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3553,119 +3622,23 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718348955E+02 2.04436757292410E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184253E+02 1.92987571288390E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701117173774D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701117173790D+01 - global fc = 0.147701117173790D+01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701117173790E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701117173774D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701117673774D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701117673774D+01 +(PID.TID 0000.0001) global fc = 0.147701117673774D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701117673774E+00 grad-res ------------------------------- - grad-res 0 3 1 3 4 1 1 1 1.47701073786E+00 1.47701230548E+00 1.47701117174E+00 - grad-res 0 3 3 99 0 1 1 1 5.66869450426E-03 5.66869484242E-03 -5.96533411557E-08 + grad-res 0 3 1 3 4 1 1 1 1.47701073786E+00 1.47701231048E+00 1.47701117674E+00 + grad-res 0 3 3 99 0 1 1 1 5.66869450426E-03 5.66869486684E-03 -6.39620780785E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.47701073786182E+00 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.66869450426349E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = 5.66869484242005E-03 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.66869450426348E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.66869486684496E-03 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 100 8192 4 @@ -3685,113 +3658,17 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349076E+02 2.04436757292255E-01 cg2d: Sum(rhs),rhsMax = -2.24736325185376E+02 1.92987571287426E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701231575998D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701231576013D+01 - global fc = 0.147701231576013D+01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701231576013E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701231575998D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701232075998D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701232075998D+01 +(PID.TID 0000.0001) global fc = 0.147701232075998D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701232075998E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3805,119 +3682,23 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718348958E+02 2.04436757292406E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184256E+02 1.92987571288387E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701116146135D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701116146150D+01 - global fc = 0.147701116146150D+01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701116146150E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701116146135D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701116646135D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701116646135D+01 +(PID.TID 0000.0001) global fc = 0.147701116646135D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701116646135E+00 grad-res ------------------------------- - grad-res 0 4 1 4 4 1 1 1 1.47701073786E+00 1.47701231576E+00 1.47701116146E+00 - grad-res 0 4 4 100 0 1 1 1 5.77149324922E-03 5.77149313230E-03 2.02579585329E-08 + grad-res 0 4 1 4 4 1 1 1 1.47701073786E+00 1.47701232076E+00 1.47701116646E+00 + grad-res 0 4 4 100 0 1 1 1 5.77149324922E-03 5.77149313452E-03 1.98732276191E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.47701073786182E+00 -(PID.TID 0000.0001) ADM adjoint_gradient = 5.77149324921919E-03 -(PID.TID 0000.0001) ADM finite-diff_grad = 5.77149313230052E-03 +(PID.TID 0000.0001) ADM adjoint_gradient = 5.77149324921917E-03 +(PID.TID 0000.0001) ADM finite-diff_grad = 5.77149313452097E-03 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 101 8192 5 @@ -3937,113 +3718,17 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718349079E+02 2.04436757292251E-01 cg2d: Sum(rhs),rhsMax = -2.24736325185391E+02 1.92987571287413E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701232551278D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701232551293D+01 - global fc = 0.147701232551293D+01 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701232551293E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701232551278D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701233051278D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701233051278D+01 +(PID.TID 0000.0001) global fc = 0.147701233051278D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.47701233051278E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -4057,116 +3742,20 @@ grad-res ------------------------------- cg2d: Sum(rhs),rhsMax = -1.59112718348971E+02 2.04436757292389E-01 cg2d: Sum(rhs),rhsMax = -2.24736325184247E+02 1.92987571288395E-01 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE -(PID.TID 0000.0001) ph-cost call cost_theta0 -(PID.TID 0000.0001) ph-cost call cost_theta - --> f_temp = 0.147701115171239D+01 - --> f_salt = 0.000000000000000D+00 - --> f_temp0 = 0.000000000000000D+00 - --> f_salt0 = 0.000000000000000D+00 - --> f_temp0smoo = 0.000000000000000D+00 - --> f_salt0smoo = 0.000000000000000D+00 - --> f_etan0 = 0.000000000000000D+00 - --> f_uvel0 = 0.000000000000000D+00 - --> f_vvel0 = 0.000000000000000D+00 - --> f_sst = 0.000000000000000D+00 - --> f_tmi = 0.000000000000000D+00 - --> f_sss = 0.000000000000000D+00 - --> f_bp = 0.000000000000000D+00 - --> f_ies = 0.000000000000000D+00 - --> f_ssh = 0.000000000000000D+00 - --> f_tp = 0.000000000000000D+00 - --> f_ers = 0.000000000000000D+00 - --> f_gfo = 0.000000000000000D+00 - --> f_tauu = 0.000000000000000D+00 - --> f_tauum = 0.000000000000000D+00 - --> f_tauusmoo = 0.000000000000000D+00 - --> f_tauv = 0.000000000000000D+00 - --> f_tauvm = 0.000000000000000D+00 - --> f_tauvsmoo = 0.000000000000000D+00 - --> f_hflux = 0.000000000000000D+00 - --> f_hfluxmm = 0.000000000000000D+00 - --> f_hfluxsmoo = 0.000000000000000D+00 - --> f_sflux = 0.000000000000000D+00 - --> f_sfluxmm = 0.000000000000000D+00 - --> f_sfluxsmoo = 0.000000000000000D+00 - --> f_uwind = 0.000000000000000D+00 - --> f_vwind = 0.000000000000000D+00 - --> f_atemp = 0.000000000000000D+00 - --> f_aqh = 0.000000000000000D+00 - --> f_precip = 0.000000000000000D+00 - --> f_swflux = 0.000000000000000D+00 - --> f_swdown = 0.000000000000000D+00 - --> f_lwflux = 0.000000000000000D+00 - --> f_lwdown = 0.000000000000000D+00 - --> f_uwindm = 0.000000000000000D+00 - --> f_vwindm = 0.000000000000000D+00 - --> f_atempm = 0.000000000000000D+00 - --> f_aqhm = 0.000000000000000D+00 - --> f_precipm = 0.000000000000000D+00 - --> f_swfluxm = 0.000000000000000D+00 - --> f_lwfluxm = 0.000000000000000D+00 - --> f_swdownm = 0.000000000000000D+00 - --> f_lwdownm = 0.000000000000000D+00 - --> f_uwindsmoo = 0.000000000000000D+00 - --> f_vwindsmoo = 0.000000000000000D+00 - --> f_atempsmoo = 0.000000000000000D+00 - --> f_aqhsmoo = 0.000000000000000D+00 - --> f_precipsmoo = 0.000000000000000D+00 - --> f_swfluxsmoo = 0.000000000000000D+00 - --> f_lwfluxsmoo = 0.000000000000000D+00 - --> f_swdownsmoo = 0.000000000000000D+00 - --> f_lwdownsmoo = 0.000000000000000D+00 - --> f_atl = 0.000000000000000D+00 - --> f_ctdt = 0.000000000000000D+00 - --> f_ctds = 0.000000000000000D+00 - --> f_ctdtclim= 0.000000000000000D+00 - --> f_ctdsclim= 0.000000000000000D+00 - --> f_xbt = 0.000000000000000D+00 - --> f_argot = 0.000000000000000D+00 - --> f_argos = 0.000000000000000D+00 - --> f_drifter = 0.000000000000000D+00 - --> f_tdrift = 0.000000000000000D+00 - --> f_sdrift = 0.000000000000000D+00 - --> f_wdrift = 0.000000000000000D+00 - --> f_scatx = 0.000000000000000D+00 - --> f_scaty = 0.000000000000000D+00 - --> f_scatxm = 0.000000000000000D+00 - --> f_scatym = 0.000000000000000D+00 --> f_obcsn = 0.000000000000000D+00 --> f_obcss = 0.000000000000000D+00 - --> f_obcsw = 0.152587890625000D-12 + --> f_obcsw = 0.500000000000000D-08 --> f_obcse = 0.000000000000000D+00 - --> f_ageos = 0.000000000000000D+00 - --> f_curmtr = 0.000000000000000D+00 - --> f_kapgm = 0.000000000000000D+00 - --> f_kapredi = 0.000000000000000D+00 - --> f_diffkr = 0.000000000000000D+00 - --> f_eddytau = 0.000000000000000D+00 - --> f_bottomdrag = 0.000000000000000D+00 - --> f_hfluxmm2 = 0.000000000000000D+00 - --> f_sfluxmm2 = 0.000000000000000D+00 - --> f_transp = 0.000000000000000D+00 - --> objf_hmean = 0.000000000000000D+00 - --> fc = 0.000000000000000D+00 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.147701115171255D+01 - global fc = 0.147701115171255D+01 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701115171255E+00 +(PID.TID 0000.0001) --> f_gencost = 0.147701115171239D+01 1 +(PID.TID 0000.0001) --> f_genarr3d = 0.000000000000000D+00 1 +(PID.TID 0000.0001) --> fc = 0.147701115671239D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.147701115671239D+01 +(PID.TID 0000.0001) global fc = 0.147701115671239D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.47701115671239E+00 grad-res ------------------------------- - grad-res 0 5 1 5 4 1 1 1 1.47701073786E+00 1.47701232551E+00 1.47701115171E+00 - grad-res 0 5 5 101 0 1 1 1 5.86900146724E-03 5.86900191779E-03 -7.67675383262E-08 + grad-res 0 5 1 5 4 1 1 1 1.47701073786E+00 1.47701233051E+00 1.47701115671E+00 + grad-res 0 5 5 101 0 1 1 1 5.86900146724E-03 5.86900191779E-03 -7.67675387703E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.47701073786182E+00 (PID.TID 0000.0001) ADM adjoint_gradient = 5.86900146724214E-03 (PID.TID 0000.0001) ADM finite-diff_grad = 5.86900191779094E-03 @@ -4183,269 +3772,239 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 1 1 4 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 1 1.4770107378618E+00 1.4770117378619E+00 1.4770117378619E+00 +(PID.TID 0000.0001) grdchk output (c): 1 1.4770107378618E+00 1.4770117428618E+00 1.4770117428618E+00 (PID.TID 0000.0001) grdchk output (g): 1 0.0000000000000E+00 0.0000000000000E+00 0.0000000000000E+00 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 1 2 4 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 2 1.4770107378618E+00 1.4770122954508E+00 1.4770111817659E+00 -(PID.TID 0000.0001) grdchk output (g): 2 5.5684245547916E-03 5.5684243446579E-03 -3.7736651137266E-08 +(PID.TID 0000.0001) grdchk output (c): 2 1.4770107378618E+00 1.4770123004506E+00 1.4770111867657E+00 +(PID.TID 0000.0001) grdchk output (g): 2 5.5684245547916E-03 5.5684243446579E-03 -3.7736647584552E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 1 3 4 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 3 1.4770107378618E+00 1.4770123054769E+00 1.4770111717379E+00 -(PID.TID 0000.0001) grdchk output (g): 3 5.6686948424201E-03 5.6686945042635E-03 -5.9653341155652E-08 +(PID.TID 0000.0001) grdchk output (c): 3 1.4770107378618E+00 1.4770123104767E+00 1.4770111767377E+00 +(PID.TID 0000.0001) grdchk output (g): 3 5.6686948668450E-03 5.6686945042635E-03 -6.3962078078461E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 1 4 4 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 4 1.4770107378618E+00 1.4770123157601E+00 1.4770111614615E+00 -(PID.TID 0000.0001) grdchk output (g): 4 5.7714931323005E-03 5.7714932492192E-03 2.0257958532888E-08 +(PID.TID 0000.0001) grdchk output (c): 4 1.4770107378618E+00 1.4770123207600E+00 1.4770111664613E+00 +(PID.TID 0000.0001) grdchk output (g): 4 5.7714931345210E-03 5.7714932492192E-03 1.9873227619094E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 5 1 5 4 1 1 0.000000000E+00 -1.000000000E-04 -(PID.TID 0000.0001) grdchk output (c): 5 1.4770107378618E+00 1.4770123255129E+00 1.4770111517125E+00 -(PID.TID 0000.0001) grdchk output (g): 5 5.8690019177909E-03 5.8690014672421E-03 -7.6767538326195E-08 +(PID.TID 0000.0001) grdchk output (c): 5 1.4770107378618E+00 1.4770123305128E+00 1.4770111567124E+00 +(PID.TID 0000.0001) grdchk output (g): 5 5.8690019177909E-03 5.8690014672421E-03 -7.6767538770284E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 4.7510453112283E-08 +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 4.8586833994166E-08 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 34.369999999999997 -(PID.TID 0000.0001) System time: 0.19000000000000000 -(PID.TID 0000.0001) Wall clock time: 34.800395011901855 +(PID.TID 0000.0001) User time: 38.262015249114484 +(PID.TID 0000.0001) System time: 0.38001498579978943 +(PID.TID 0000.0001) Wall clock time: 38.752650976181030 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.20000000000000001 -(PID.TID 0000.0001) System time: 4.00000000000000008E-002 -(PID.TID 0000.0001) Wall clock time: 0.32605910301208496 +(PID.TID 0000.0001) User time: 0.10044400254264474 +(PID.TID 0000.0001) System time: 4.5416001230478287E-002 +(PID.TID 0000.0001) Wall clock time: 0.20148611068725586 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 11.210000000000001 -(PID.TID 0000.0001) System time: 8.99999999999999967E-002 -(PID.TID 0000.0001) Wall clock time: 11.371971130371094 +(PID.TID 0000.0001) User time: 12.228305250406265 +(PID.TID 0000.0001) System time: 0.21082200482487679 +(PID.TID 0000.0001) Wall clock time: 12.461027145385742 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 25.120000000000005 -(PID.TID 0000.0001) System time: 2.99999999999999989E-002 -(PID.TID 0000.0001) Wall clock time: 25.194791316986084 +(PID.TID 0000.0001) User time: 25.956096529960632 +(PID.TID 0000.0001) System time: 1.1153995990753174E-002 +(PID.TID 0000.0001) Wall clock time: 25.980992317199707 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.26910209655761719E-003 +(PID.TID 0000.0001) User time: 2.3305416107177734E-004 +(PID.TID 0000.0001) System time: 5.9977173805236816E-006 +(PID.TID 0000.0001) Wall clock time: 2.3698806762695312E-004 (PID.TID 0000.0001) No. starts: 12 (PID.TID 0000.0001) No. stops: 12 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11999999999999744 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12186646461486816 +(PID.TID 0000.0001) User time: 8.5981249809265137E-002 +(PID.TID 0000.0001) System time: 1.1199712753295898E-004 +(PID.TID 0000.0001) Wall clock time: 8.6102008819580078E-002 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.13000000000000256 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.12995076179504395 +(PID.TID 0000.0001) User time: 9.1066420078277588E-002 +(PID.TID 0000.0001) System time: 1.9899010658264160E-004 +(PID.TID 0000.0001) Wall clock time: 9.1361284255981445E-002 (PID.TID 0000.0001) No. starts: 52 (PID.TID 0000.0001) No. stops: 52 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.61075592041015625E-003 -(PID.TID 0000.0001) No. starts: 176 -(PID.TID 0000.0001) No. stops: 176 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.89473342895507813E-004 +(PID.TID 0000.0001) User time: 4.7731399536132812E-004 +(PID.TID 0000.0001) System time: 1.9818544387817383E-006 +(PID.TID 0000.0001) Wall clock time: 4.7969818115234375E-004 (PID.TID 0000.0001) No. starts: 52 (PID.TID 0000.0001) No. stops: 52 -(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.0465593338012695E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.42028045654296875E-004 +(PID.TID 0000.0001) Wall clock time: 3.9243698120117188E-004 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9118428230285645E-002 +(PID.TID 0000.0001) System time: 2.4989247322082520E-005 +(PID.TID 0000.0001) Wall clock time: 1.9204616546630859E-002 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.30999999999998806 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.33052897453308105 +(PID.TID 0000.0001) User time: 0.22669690847396851 +(PID.TID 0000.0001) System time: 5.0067901611328125E-006 +(PID.TID 0000.0001) Wall clock time: 0.22684502601623535 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.1500000000000270 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 7.1298437118530273 +(PID.TID 0000.0001) User time: 4.9396277666091919 +(PID.TID 0000.0001) System time: 9.9837779998779297E-006 +(PID.TID 0000.0001) Wall clock time: 4.9408731460571289 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 10.509999999999984 -(PID.TID 0000.0001) System time: 9.99999999999998113E-003 -(PID.TID 0000.0001) Wall clock time: 10.557406902313232 +(PID.TID 0000.0001) User time: 7.2265335917472839 +(PID.TID 0000.0001) System time: 4.0130019187927246E-003 +(PID.TID 0000.0001) Wall clock time: 7.2319846153259277 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.27999999999999403 +(PID.TID 0000.0001) User time: 0.22495180368423462 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.28749465942382813 +(PID.TID 0000.0001) Wall clock time: 0.22509980201721191 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.41000000000002501 +(PID.TID 0000.0001) User time: 0.24052137136459351 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.39425206184387207 +(PID.TID 0000.0001) Wall clock time: 0.24067139625549316 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12999999999998835 +(PID.TID 0000.0001) User time: 7.5146079063415527E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11550259590148926 +(PID.TID 0000.0001) Wall clock time: 7.5312852859497070E-002 (PID.TID 0000.0001) No. starts: 96 (PID.TID 0000.0001) No. stops: 96 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.9999999999999716 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.0317463874816895 +(PID.TID 0000.0001) User time: 3.7270334959030151 +(PID.TID 0000.0001) System time: 1.0013580322265625E-005 +(PID.TID 0000.0001) Wall clock time: 3.7279376983642578 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12000000000000455 +(PID.TID 0000.0001) User time: 4.5478343963623047E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10523819923400879 +(PID.TID 0000.0001) Wall clock time: 4.4584274291992188E-004 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 -(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.2183637619018555E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.83989715576171875E-004 +(PID.TID 0000.0001) Wall clock time: 4.2183637619018555E-002 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 -(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.00000000000000533E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.68330287933349609E-002 -(PID.TID 0000.0001) No. starts: 4 -(PID.TID 0000.0001) No. stops: 4 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 3.7544965744018555E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.76837158203125000E-004 +(PID.TID 0000.0001) Wall clock time: 3.7860870361328125E-004 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999801048E-003 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 2.39498615264892578E-002 +(PID.TID 0000.0001) User time: 1.1933922767639160E-002 +(PID.TID 0000.0001) System time: 2.9700025916099548E-003 +(PID.TID 0000.0001) Wall clock time: 1.4731407165527344E-002 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999801048E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.98545360565185547E-002 +(PID.TID 0000.0001) User time: 8.4931850433349609E-003 +(PID.TID 0000.0001) System time: 3.9959996938705444E-003 +(PID.TID 0000.0001) Wall clock time: 1.2484312057495117E-002 (PID.TID 0000.0001) No. starts: 48 (PID.TID 0000.0001) No. stops: 48 -(PID.TID 0000.0001) Seconds in section "COST_FORCING [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.13010406494140625E-004 -(PID.TID 0000.0001) No. starts: 11 -(PID.TID 0000.0001) No. stops: 11 -(PID.TID 0000.0001) Seconds in section "COST_HYD [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.21999999999999886 -(PID.TID 0000.0001) System time: 9.99999999999998113E-003 -(PID.TID 0000.0001) Wall clock time: 0.21263599395751953 -(PID.TID 0000.0001) No. starts: 11 -(PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "COST_OBCS [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 2.00000000000031264E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 5.42600154876708984E-002 -(PID.TID 0000.0001) No. starts: 11 -(PID.TID 0000.0001) No. stops: 11 -(PID.TID 0000.0001) Seconds in section "COST_INTERNAL_PARAMS [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.06811523437500000E-004 +(PID.TID 0000.0001) User time: 1.7777919769287109E-002 +(PID.TID 0000.0001) System time: 3.0029989778995514E-002 +(PID.TID 0000.0001) Wall clock time: 4.7825098037719727E-002 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "COST_GENCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.08003616333007813E-004 +(PID.TID 0000.0001) User time: 0.22885274887084961 +(PID.TID 0000.0001) System time: 2.5987990200519562E-002 +(PID.TID 0000.0001) Wall clock time: 0.25745701789855957 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 -(PID.TID 0000.0001) Seconds in section "COST_USERCOST_ALL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.05142593383789063E-004 -(PID.TID 0000.0001) No. starts: 11 -(PID.TID 0000.0001) No. stops: 11 -(PID.TID 0000.0001) Seconds in section "COST_GENCTRL [ECCO SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.06573104858398438E-004 +(PID.TID 0000.0001) Seconds in section "CTRL_COST_DRIVER [ECCO SPIN-DOWN]": +(PID.TID 0000.0001) User time: 2.8175115585327148E-002 +(PID.TID 0000.0001) System time: 2.8380155563354492E-003 +(PID.TID 0000.0001) Wall clock time: 3.1032562255859375E-002 (PID.TID 0000.0001) No. starts: 11 (PID.TID 0000.0001) No. stops: 11 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.99999999999995737E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.45079898834228516E-002 +(PID.TID 0000.0001) User time: 9.2258453369140625E-003 +(PID.TID 0000.0001) System time: 8.0330073833465576E-003 +(PID.TID 0000.0001) Wall clock time: 1.7266035079956055E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 2.00000000000013500E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 2.06811428070068359E-002 +(PID.TID 0000.0001) User time: 4.8122406005859375E-003 +(PID.TID 0000.0001) System time: 8.0260038375854492E-003 +(PID.TID 0000.0001) Wall clock time: 1.2844085693359375E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 22.919999999999995 -(PID.TID 0000.0001) System time: 4.99999999999999889E-002 -(PID.TID 0000.0001) Wall clock time: 23.047086954116821 +(PID.TID 0000.0001) User time: 25.919136047363281 +(PID.TID 0000.0001) System time: 0.10770997405052185 +(PID.TID 0000.0001) Wall clock time: 26.059946060180664 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.67999999999999972 -(PID.TID 0000.0001) System time: 2.00000000000000178E-002 -(PID.TID 0000.0001) Wall clock time: 0.70116829872131348 +(PID.TID 0000.0001) User time: 2.4889745712280273 +(PID.TID 0000.0001) System time: 4.0027976036071777E-002 +(PID.TID 0000.0001) Wall clock time: 2.5296847820281982 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 22.219999999999999 -(PID.TID 0000.0001) System time: 2.99999999999999711E-002 -(PID.TID 0000.0001) Wall clock time: 22.308402061462402 +(PID.TID 0000.0001) User time: 23.420961380004883 +(PID.TID 0000.0001) System time: 5.8989942073822021E-002 +(PID.TID 0000.0001) Wall clock time: 23.512380838394165 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 0.19000000000000483 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.18974518775939941 +(PID.TID 0000.0001) User time: 0.71129608154296875 +(PID.TID 0000.0001) System time: 5.9008598327636719E-005 +(PID.TID 0000.0001) Wall clock time: 0.71154856681823730 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 20.900000000000006 -(PID.TID 0000.0001) System time: 1.99999999999999900E-002 -(PID.TID 0000.0001) Wall clock time: 20.960688352584839 +(PID.TID 0000.0001) User time: 21.645304679870605 +(PID.TID 0000.0001) System time: 4.0580034255981445E-003 +(PID.TID 0000.0001) Wall clock time: 21.654401779174805 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_AVERAGESFIELDS [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.14000000000000057 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.15532040596008301 +(PID.TID 0000.0001) User time: 0.19194126129150391 +(PID.TID 0000.0001) System time: 1.1926949024200439E-002 +(PID.TID 0000.0001) Wall clock time: 0.23081183433532715 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "ECCO_COST_DRIVER [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.21999999999999886 -(PID.TID 0000.0001) System time: 9.99999999999998113E-003 -(PID.TID 0000.0001) Wall clock time: 0.23935008049011230 +(PID.TID 0000.0001) User time: 0.25743865966796875 +(PID.TID 0000.0001) System time: 4.2616009712219238E-002 +(PID.TID 0000.0001) Wall clock time: 0.30019593238830566 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.52647018432617188E-003 +(PID.TID 0000.0001) User time: 1.8711090087890625E-003 +(PID.TID 0000.0001) System time: 2.5099515914916992E-004 +(PID.TID 0000.0001) Wall clock time: 2.1207332611083984E-003 (PID.TID 0000.0001) No. starts: 10 (PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) // ====================================================== @@ -4496,9 +4055,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 46366 +(PID.TID 0000.0001) // No. barriers = 47988 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 46366 +(PID.TID 0000.0001) // Total barrier spins = 47988 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/README b/verification/offline_exf_seaice/README index 7a3163c49b..e040abc983 100644 --- a/verification/offline_exf_seaice/README +++ b/verification/offline_exf_seaice/README @@ -62,7 +62,43 @@ Seaice-only verification experiment in idealized periodic channel "input.dyn_jfnk/data.ice") and advect pkg/thsice properties using pkg/thsice advection S/R. - c) seaice-thermodynamics only from pkg/seaice (input.thermo/) + c) seaice-dynamics only with LSR solver and elliptical yieldcurve with + non-normal flow rule (input.dyn_ellnnfr) + use same forcing as main forward experiment, + ( link input files from "input.dyn_ellnnfr/" dir 1rst, then from + "input.dyn_lsr/" and "input/" dir ) + advect pkg/seaice properties using pkg/seaice advection S/R.; + turn off seaice thermodynamics (usePW79thermodynamics=.FALSE., in + input.dyn_ellnnfr/data.seaice). + + d) seaice-dynamics only with LSR solver and Mohr-Coulomb + yieldcurve with elliptical plastic potential (input.dyn_mce) + use same forcing as main forward experiment, + ( link input files from "input.dyn_mce/" dir 1rst, then from + "input.dyn_lsr/" and "input/" dir ) + advect pkg/seaice properties using pkg/seaice advection S/R.; + turn off seaice thermodynamics (usePW79thermodynamics=.FALSE., in + input.dyn_mce/data.seaice). + + e) seaice-dynamics only with KRYLOV solver and parabolic lens yieldcurve + (input.dyn_paralens) + use same forcing as main forward experiment, + ( link input files from "input.dyn_paralens/" dir 1rst, then from + "input.dyn_jfnk/" and "input/" dir ) + turn off seaice thermodynamics (thSIce_skipThermo=.TRUE., in file + "input.dyn_mce/data.ice" linked from "input.dyn_jfnk/") and + advect pkg/thsice properties using pkg/thsice advection S/R. + + f) seaice-dynamics only with JFNK solver and teardrop yieldcurve + (input.dyn_teardrop) + use same forcing as main forward experiment, + ( link input files from "input.dyn_teardrop/" dir 1rst, then from + "input.dyn_jfnk/" and "input/" dir ) + turn off seaice thermodynamics (thSIce_skipThermo=.TRUE., in file + "input.dyn_mce/data.ice" linked from "input.dyn_jfnk/") and + advect pkg/thsice properties using pkg/thsice advection S/R. + + g) seaice-thermodynamics only from pkg/seaice (input.thermo/) use same forcing as main forward experiment, ( link input files from "input.thermo/" dir 1rst, then from "input/" dir ) Except a different bathymetry (no triangular shape coast line in the South, @@ -80,7 +116,7 @@ Seaice-only verification experiment in idealized periodic channel Turn off seaice dynamics (SEAICEuseDYNAMICS =.FALSE., in "input.thermo/data.seaice") which implies no advection (zero ice velocity). - d) seaice-thermodynamics only from pkg/thsice (input.thsice/) + h) seaice-thermodynamics only from pkg/thsice (input.thsice/) use same forcing as main forward experiment, ( link input files from "input.thsice/" dir 1rst, then from "input/" dir ) Except for bathymetry and initial seaice concentration which are identical @@ -90,5 +126,11 @@ Seaice-only verification experiment in idealized periodic channel are used (useSEAICE = .TRUE., commented out in "input.thsice/data.pkg"), 3) main adjoint experiment (code_ad, input_ad) - Use similar forward set-up as "input.thermo/". - (to be completed ...) + Use similar forward set-up as "input.thermo/", + no seaice dynamics and no seaice advection. + +4) other (secondary) adjoint experiment (using the same executable) + + a) seaice-thermodynamics form pkg/thsice (input_ad.thsice) + use similar forward set-up as "input.thsice", + no seaice dynamics and no seaice advection. diff --git a/verification/offline_exf_seaice/code/SEAICE_OPTIONS.h b/verification/offline_exf_seaice/code/SEAICE_OPTIONS.h index ec29e2d347..8967c1329a 100644 --- a/verification/offline_exf_seaice/code/SEAICE_OPTIONS.h +++ b/verification/offline_exf_seaice/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,68 +48,122 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # define SEAICE_ALLOW_KRYLOV -C enable this flag to reproduce old verification results for JFNK + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK # define SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # define SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # define SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) -# undef SEAICE_ALLOW_TEM +# define SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# define SEAICE_ALLOW_MCS + +CMLC or the modified coulombic rheology +CMLC allow the use of the Mohr Coulomb rheology (runtime flag +CMLC SEAICEuseFULLMC) as defined in (Ip 1991) /!\ This is known +CMLC to give unstable results, use with caution +CML# define SEAICE_ALLOW_FULLMC + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# define SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# define SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -124,58 +171,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + C-- Use the adjointable sea-ice thermodynamic model C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. #undef SEAICE_USE_GROWTH_ADX +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/offline_exf_seaice/code/SEAICE_SIZE.h b/verification/offline_exf_seaice/code/SEAICE_SIZE.h index 498dfcfb9f..a3f4920684 100644 --- a/verification/offline_exf_seaice/code/SEAICE_SIZE.h +++ b/verification/offline_exf_seaice/code/SEAICE_SIZE.h @@ -29,7 +29,6 @@ C- Maximum Number of tracers PARAMETER(SItrMaxNum = 3 ) #ifdef ALLOW_AUTODIFF - INTEGER iicekey INTEGER nEVPstepMax PARAMETER ( nEVPstepMax=180 ) INTEGER NMAX_TICE diff --git a/verification/offline_exf_seaice/code/SIZE.h b/verification/offline_exf_seaice/code/SIZE.h index 91293eb80a..d9c3ec08c9 100644 --- a/verification/offline_exf_seaice/code/SIZE.h +++ b/verification/offline_exf_seaice/code/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/offline_exf_seaice/code/SIZE.h_mpi b/verification/offline_exf_seaice/code/SIZE.h_mpi index 9b22d38a86..df3a7ee802 100644 --- a/verification/offline_exf_seaice/code/SIZE.h_mpi +++ b/verification/offline_exf_seaice/code/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/offline_exf_seaice/code_ad/COST_OPTIONS.h b/verification/offline_exf_seaice/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..4af5282456 --- /dev/null +++ b/verification/offline_exf_seaice/code_ad/COST_OPTIONS.h @@ -0,0 +1,57 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +#define ALLOW_THSICE_COST_TEST + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/offline_exf_seaice/code_ad/CPP_OPTIONS.h b/verification/offline_exf_seaice/code_ad/CPP_OPTIONS.h index 009fe0a79d..64a6ed8a7e 100644 --- a/verification/offline_exf_seaice/code_ad/CPP_OPTIONS.h +++ b/verification/offline_exf_seaice/code_ad/CPP_OPTIONS.h @@ -126,8 +126,8 @@ C each of the above pkg get its own options from its specific option file. C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. -#ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" -#endif +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/offline_exf_seaice/code_ad/CTRL_OPTIONS.h b/verification/offline_exf_seaice/code_ad/CTRL_OPTIONS.h new file mode 100644 index 0000000000..ce69b65726 --- /dev/null +++ b/verification/offline_exf_seaice/code_ad/CTRL_OPTIONS.h @@ -0,0 +1,109 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +C o In this experiment, this option and the corresponding necessary flags +C to reproduce this experiment are commented by CTRL +CTRL#define ECCO_CTRL_DEPRECATED + +#undef EXCLUDE_CTRL_PACK +#define ALLOW_NONDIMENSIONAL_CONTROL_IO + +CTRLC >>> Initial values. +CTRL#define ALLOW_THETA0_CONTROL +CTRL#undef ALLOW_SALT0_CONTROL +CTRL#undef ALLOW_UVEL0_CONTROL +CTRL#undef ALLOW_VVEL0_CONTROL +CTRL#undef ALLOW_TR10_CONTROL +CTRL#undef ALLOW_TAUU0_CONTROL +CTRL#undef ALLOW_TAUV0_CONTROL +CTRL#undef ALLOW_SFLUX0_CONTROL +CTRL#undef ALLOW_HFLUX0_CONTROL +CTRL#undef ALLOW_SSS0_CONTROL +CTRL#undef ALLOW_SST0_CONTROL +CTRL +CTRLC >>> Surface fluxes. +CTRL#undef ALLOW_HFLUX_CONTROL +CTRL#undef ALLOW_SFLUX_CONTROL +CTRL#undef ALLOW_USTRESS_CONTROL +CTRL#undef ALLOW_VSTRESS_CONTROL +CTRL#undef ALLOW_SWFLUX_CONTROL +CTRL#undef ALLOW_LWFLUX_CONTROL +CTRL +CTRLC >>> Atmospheric state. +CTRL#define ALLOW_ATEMP_CONTROL +CTRL#define ALLOW_SWDOWN_CONTROL +CTRL#undef ALLOW_AQH_CONTROL +CTRL#undef ALLOW_UWIND_CONTROL +CTRL#undef ALLOW_VWIND_CONTROL +CTRL#undef ALLOW_PRECIP_CONTROL +CTRL +CTRLC >>> Other Control. +CTRL#undef ALLOW_DIFFKR_CONTROL +CTRL#undef ALLOW_KAPGM_CONTROL +CTRL#undef ALLOW_KAPREDI_CONTROL +CTRL#undef ALLOW_BOTTOMDRAG_CONTROL +CTRL +CTRLC >>> Backward compatibility option (before checkpoint 65p) +CTRL#undef ALLOW_KAPGM_CONTROL_OLD +CTRL#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#define ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/offline_exf_seaice/code_ad/CTRL_SIZE.h b/verification/offline_exf_seaice/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..ab8b4fcb7c --- /dev/null +++ b/verification/offline_exf_seaice/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 1 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 2 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/offline_exf_seaice/code_ad/ECCO_CPPOPTIONS.h b/verification/offline_exf_seaice/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index f409f117e4..0000000000 --- a/verification/offline_exf_seaice/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H -c#include "PACKAGES_CONFIG.h" -c#include "CPP_OPTIONS.h" - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. -C -C ******************************************************************** -C *** ECCO Package *** -C ******************************************************************** -C - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -C >>> Do a long protocol. -#undef ECCO_VERBOSE - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -#define ALLOW_AUTODIFF_TAMC - -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT - -C >>> Extract adjoint state -#define ALLOW_AUTODIFF_MONITOR - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -c#define ALLOW_AUTODIFF_WHTAPEIO -c#define ALLOW_PACKUNPACK_METHOD2 -c#define AUTODIFF_USE_OLDSTORE_2D -c#define AUTODIFF_USE_OLDSTORE_3D -c#define EXCLUDE_WHIO_GLOBUFF_2D -c#define ALLOW_INIT_WHTAPEIO - -C ******************************************************************** -C *** Cost function Package *** -c ******************************************************************** -C - -#define ALLOW_THSICE_COST_TEST - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** -C -#define CTRL_SET_PREC_32 -#define ALLOW_NONDIMENSIONAL_CONTROL_IO - -C >>> Initial values. -#define ALLOW_THETA0_CONTROL - -C >>> Atmospheric state and radiation. -#define ALLOW_ATEMP_CONTROL -#define ALLOW_SWDOWN_CONTROL - -C ******************************************************************** -C *** External forcing Package *** -C ******************************************************************** - -C Bulk formulae related flags. -#define ALLOW_ATM_TEMP -#define ALLOW_ATM_WIND -#define ALLOW_DOWNWARD_RADIATION -#define ALLOW_RUNOFF -#if (defined (ALLOW_ATM_TEMP) || defined (ALLOW_ATM_WIND)) -# define ALLOW_BULKFORMULAE -# undef ALLOW_BULK_LARGEYEAGER04 -#endif - -C Zenith Angle/Albedo related flags. -#ifdef ALLOW_DOWNWARD_RADIATION -# undef ALLOW_ZENITHANGLE -#endif - -C Use ocean_emissivity*lwdwon in lwFlux. This flag should be define -C unless to reproduce old results (obtained with inconsistent old code) -#ifdef ALLOW_DOWNWARD_RADIATION -# define EXF_LWDOWN_WITH_EMISSIVITY -#endif - -C Relaxation to monthly climatologies. -#define ALLOW_CLIMSST_RELAXATION -#define ALLOW_CLIMSSS_RELAXATION - -C Use spatial interpolation to interpolate -C forcing files from input grid to model grid. -#undef USE_EXF_INTERPOLATION -C for interpolated vector fields, rotate towards model-grid axis -C using old rotation formulae (instead of grid-angles) -#undef EXF_USE_OLD_VEC_ROTATION -C for interpolation around N & S pole, use the old formulation -C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) -#undef EXF_USE_OLD_INTERP_POLE - -#define EXF_INTERP_USE_DYNALLOC -#if ( defined (EXF_INTERP_USE_DYNALLOC) && defined (USING_THREADS) ) -# define EXF_IREAD_USE_GLOBAL_POINTER -#endif - -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/offline_exf_seaice/code_ad/EXF_OPTIONS.h b/verification/offline_exf_seaice/code_ad/EXF_OPTIONS.h new file mode 100644 index 0000000000..e61463a284 --- /dev/null +++ b/verification/offline_exf_seaice/code_ad/EXF_OPTIONS.h @@ -0,0 +1,233 @@ +CBOP +C !ROUTINE: EXF_OPTIONS.h +C !INTERFACE: +C #include "EXF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for EXternal Forcing (EXF) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef EXF_OPTIONS_H +#define EXF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_EXF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ + +C-- Package-specific Options & Macros go here + +C -------------------- +C pkg/exf CPP options: +C (see also table below on how to combine options) + +C > ( EXF_VERBOSE ) < replaced with run-time integer parameter "exf_debugLev" +C +C >>> ALLOW_ATM_WIND <<< +C If defined, set default value of run-time param. "useAtmWind" to True. +C If useAtmWind=True, read-in and use wind vector (uwind/vwind) +C to compute surface wind stress. +C +C >>> ALLOW_ATM_TEMP <<< +C This is the main EXF option controlling air-sea buoyancy fluxes: +C If undefined, net heat flux (Qnet) and net fresh water flux +C (EmP or EmPmR) are set according to hfluxfile & sfluxfile setting. +C If defined, net heat flux and net fresh water flux are computed +C from sum of various components (radiative SW,LW + turbulent heat +C fluxes SH,LH ; Evap, Precip and optionally RunOff) thus ignoring +C hfluxfile & sfluxfile. +C In addition, it allows to read-in from files atmospheric temperature +C and specific humidity, net radiative fluxes, and precip. +C Also enable to read-in Evap (if EXF_READ_EVAP is defined) or +C turbulent heat fluxes (if ALLOW_READ_TURBFLUXES is defined). +C +C >>> ALLOW_DOWNWARD_RADIATION <<< +C If defined, downward long-wave and short-wave radiation +C can be read-in form files to compute net lwflux and swflux. +C +C >>> ALLOW_ZENITHANGLE <<< +C If defined, ocean albedo varies with the zenith angle, and +C incoming fluxes at the top of the atmosphere are computed +C +C >>> ALLOW_BULKFORMULAE <<< +C Allows the use of bulk formulae in order to estimate +C turbulent fluxes (Sensible,Latent,Evap) at the ocean surface. +C +C >>> EXF_CALC_ATMRHO +C Calculate the local air density as function of temp, humidity +C and pressure +C +C >>> EXF_READ_EVAP <<< +C If defined, evaporation field is read-in from file; +C Note: if ALLOW_BULKFORMULAE is defined, evap that is computed from +C atmospheric state will be replaced by read-in evap but computed +C latent heat flux will be kept. +C +C >>> ALLOW_READ_TURBFLUXES <<< +C If defined, turbulent heat fluxes (sensible and latent) can be read-in +C from files (but overwritten if ALLOW_BULKFORMULAE is defined). +C +C >>> ALLOW_RUNOFF <<< +C If defined, river and glacier runoff can be read-in from files. +C +C >>> ALLOW_SALTFLX <<< +C If defined, upward salt flux can be read-in from files. +C +C >>> ALLOW_RUNOFTEMP <<< +C If defined, river and glacier runoff temperature +C can be read-in from files. +C +C >>> ATMOSPHERIC_LOADING <<< +C If defined, atmospheric pressure can be read-in from files. +C WARNING: this flag is set (define/undef) in CPP_OPTIONS.h +C and cannot be changed here (in EXF_OPTIONS.h) +C +C >>> EXF_ALLOW_TIDES <<< +C If defined, 2-D tidal geopotential can be read-in from files +C +C >>> EXF_SEAICE_FRACTION <<< +C If defined, seaice fraction can be read-in from files (areaMaskFile) +C +C >>> ALLOW_CLIMSST_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C temperature, e.g. the Reynolds climatology. +C +C >>> ALLOW_CLIMSSS_RELAXATION <<< +C Allow the relaxation to a monthly climatology of sea surface +C salinity, e.g. the Levitus climatology. +C +C >>> USE_EXF_INTERPOLATION <<< +C Allows to provide input field on arbitrary Lat-Lon input grid +C (as specified in EXF_NML_04) and to interpolate to model grid. +C Note: default is to interpolate unless {FLD}_interpMethod is set to 0 +C +C ==================================================================== +C +C The following CPP options: +C ALLOW_ATM_WIND / useAtmWind (useWind) +C ALLOW_ATM_TEMP (TEMP) +C ALLOW_DOWNWARD_RADIATION (DOWN) +C ALLOW_BULKFORMULAE (BULK) +C EXF_READ_EVAP (EVAP) +C ALLOW_READ_TURBFLUXES (TURB) +C +C permit all ocean-model forcing configurations listed in the 2 tables below. +C The first configuration (A1,B1) is the flux-forced, ocean model. +C Configurations A2,B3 and A2,B4 use pkg/exf open-water bulk formulae +C to compute, from atmospheric variables, the missing surface fluxes. +C The forcing fields in the rightmost column are defined in EXF_FIELDS.h +C (ocean-model surface forcing field are defined in model/inc/FFIELDS.h) +C +C (A) Surface momentum flux: [model: fu,fv ; exf: ustress,vstress] +C +C # |useWind| actions +C ---|-------|------------------------------------------------------------- +C (1)| False | Read-in ustress,vstress (if needed in B, compute wind-speed) +C | | +C (2)| True | Read-in uwind,vwind ; compute wind stress ustress,vstress. +C ---|-------|------------------------------------------------------------- +C +C (B) Surface buoyancy flux: +C [ net heat flux: Qnet (exf: hflux), net short-wave: Qsw (exf: swflux) +C fresh-water flux: EmPmR (exf: sflux) and saltFlux (exf: saltflx) ] +C +C # |TEMP |DOWN |BULK |EVAP |TURB | actions +C ---|-----|-----|-----|-----|-----|------------------------------------- +C (1)| - | - | - | - | - | Read-in hflux, swflux and sflux. +C | | | | | | +C (2)| - | def | - | - | - | Read-in hflux, swdown and sflux. +C | | | | | | Compute swflux. +C | | | | | | +C (3)| def | def | def | - | - | Read-in atemp, aqh, swdown, lwdown, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (4)| def | - | def | - | - | Read-in atemp, aqh, swflux, lwflux, +C | | | | | | precip, and runoff. +C | | | | | | Compute hflux and sflux. +C | | | | | | +C (5)| def | def | - | def | def | Read-in hs, hl, swdown, lwdown, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux, swflux and sflux. +C | | | | | | +C (6)| def | - | - | def | def | Read-in hs, hl, swflux, lwflux, +C | | | | | | evap, precip and runoff. +C | | | | | | Compute hflux and sflux. +C +C ======================================================================= + +C- Bulk formulae related flags. +#define ALLOW_ATM_TEMP +#define ALLOW_ATM_WIND +#define ALLOW_DOWNWARD_RADIATION +#ifdef ALLOW_ATM_TEMP +C Note: To use ALLOW_BULKFORMULAE or EXF_READ_EVAP, needs #define ALLOW_ATM_TEMP +# define ALLOW_BULKFORMULAE +# undef ALLOW_BULK_LARGEYEAGER04 +# undef EXF_READ_EVAP +# ifndef ALLOW_BULKFORMULAE +C Note: To use ALLOW_READ_TURBFLUXES, ALLOW_ATM_TEMP needs to +C be defined but ALLOW_BULKFORMULAE needs to be undef +# define ALLOW_READ_TURBFLUXES +# endif +#endif /* ALLOW_ATM_TEMP */ + +C- Other forcing fields +#define ALLOW_RUNOFF +#undef ALLOW_RUNOFTEMP +#undef ALLOW_SALTFLX + +#if (defined (ALLOW_BULKFORMULAE) && defined (ATMOSPHERIC_LOADING)) +C Note: To use EXF_CALC_ATMRHO, both ALLOW_BULKFORMULAE +C and ATMOSPHERIC_LOADING need to be defined +# undef EXF_CALC_ATMRHO +#endif + +C- Zenith Angle/Albedo related flags. +#ifdef ALLOW_DOWNWARD_RADIATION +# undef ALLOW_ZENITHANGLE +#endif + +C- Use ocean_emissivity*lwdown in lwFlux. This flag should be defined +C unless to reproduce old results (obtained with inconsistent old code) +#ifdef ALLOW_DOWNWARD_RADIATION +# define EXF_LWDOWN_WITH_EMISSIVITY +#endif + +C- Relaxation to monthly climatologies. +#define ALLOW_CLIMSST_RELAXATION +#define ALLOW_CLIMSSS_RELAXATION + +C- Allows to read-in (2-d) tidal geopotential forcing +#undef EXF_ALLOW_TIDES + +C- Allows to read-in seaice fraction from files (areaMaskFile) +#undef EXF_SEAICE_FRACTION + +C- Use spatial interpolation to interpolate +C forcing files from input grid to model grid. +#undef USE_EXF_INTERPOLATION +C for interpolated vector fields, rotate towards model-grid axis +C using old rotation formulae (instead of grid-angles) +#undef EXF_USE_OLD_VEC_ROTATION +C for interpolation around N & S pole, use the old formulation +C (no pole symmetry, single vector-comp interp, reset to 0 zonal-comp @ N.pole) +#undef EXF_USE_OLD_INTERP_POLE + +#define EXF_INTERP_USE_DYNALLOC +#if ( defined USE_EXF_INTERPOLATION && defined EXF_INTERP_USE_DYNALLOC && defined USING_THREADS ) +# define EXF_IREAD_USE_GLOBAL_POINTER +#endif + +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_EXF */ +#endif /* EXF_OPTIONS_H */ diff --git a/verification/offline_exf_seaice/code_ad/MDSIO_BUFF_WH.h b/verification/offline_exf_seaice/code_ad/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..ca54a5024d --- /dev/null +++ b/verification/offline_exf_seaice/code_ad/MDSIO_BUFF_WH.h @@ -0,0 +1,56 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS/ +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & fld2d_globuff_r8, fld2d_globuff_r4, +#endif + & fld2d_procbuff_r8, fld2d_procbuff_r4 + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=93) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/offline_exf_seaice/code_ad/SEAICE_OPTIONS.h b/verification/offline_exf_seaice/code_ad/SEAICE_OPTIONS.h index 479f94ac01..be18d11b1d 100644 --- a/verification/offline_exf_seaice/code_ad/SEAICE_OPTIONS.h +++ b/verification/offline_exf_seaice/code_ad/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,122 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # undef SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # undef SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# define SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +CMLC or the modified coulombic rheology +CMLC allow the use of the Mohr Coulomb rheology (runtime flag +CMLC SEAICEuseFULLMC) as defined in (Ip 1991) /!\ This is known +CMLC to give unstable results, use with caution +CML# define SEAICE_ALLOW_FULLMC + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,58 +171,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # define SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + C-- Use the adjointable sea-ice thermodynamic model C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. #define SEAICE_USE_GROWTH_ADX +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #define ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/offline_exf_seaice/code_ad/SEAICE_SIZE.h b/verification/offline_exf_seaice/code_ad/SEAICE_SIZE.h index 5f4389434d..75cdd3d5d1 100644 --- a/verification/offline_exf_seaice/code_ad/SEAICE_SIZE.h +++ b/verification/offline_exf_seaice/code_ad/SEAICE_SIZE.h @@ -31,7 +31,6 @@ C- Maximum Number of tracers PARAMETER(SItrMaxNum = 3 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iicekey INTEGER nEVPstepMax PARAMETER ( nEVPstepMax=180 ) INTEGER NMAX_TICE diff --git a/verification/offline_exf_seaice/code_ad/SIZE.h b/verification/offline_exf_seaice/code_ad/SIZE.h index 91293eb80a..d9c3ec08c9 100644 --- a/verification/offline_exf_seaice/code_ad/SIZE.h +++ b/verification/offline_exf_seaice/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/offline_exf_seaice/code_ad/SIZE.h_mpi b/verification/offline_exf_seaice/code_ad/SIZE.h_mpi index 9b22d38a86..df3a7ee802 100644 --- a/verification/offline_exf_seaice/code_ad/SIZE.h_mpi +++ b/verification/offline_exf_seaice/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/offline_exf_seaice/code_ad/tamc.h b/verification/offline_exf_seaice/code_ad/tamc.h index 74d1f4a8de..40eff66948 100644 --- a/verification/offline_exf_seaice/code_ad/tamc.h +++ b/verification/offline_exf_seaice/code_ad/tamc.h @@ -1,121 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 5 ) - integer nchklev_2 - parameter( nchklev_2 = 100 ) - integer nchklev_3 - parameter( nchklev_3 = 32 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 5 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 100 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 32 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte - PARAMETER( isbyte = 4 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers #ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 3 ) + PARAMETER( maxpass = 3 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 3 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/offline_exf_seaice/input.dyn_ellnnfr/data.seaice b/verification/offline_exf_seaice/input.dyn_ellnnfr/data.seaice new file mode 100644 index 0000000000..568eac3bd2 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_ellnnfr/data.seaice @@ -0,0 +1,20 @@ +# SEAICE parameters + &SEAICE_PARM01 + usePW79thermodynamics=.FALSE., + SEAICE_strength = 2.6780e+04, + OCEAN_drag = 8.1541e-04, + SEAICE_no_Slip = .FALSE., + LSR_ERROR = 1.E-12, + SEAICElinearIterMax= 1500, + LSR_mixIniGuess = 1, + SEAICEadvScheme = 41, + AreaFile = 'const100.bin', + HeffFile = 'const+20.bin', + HsnowFile = 'const_00.bin', + SEAICEwriteState = .TRUE., + SEAICE_monFreq = 1800., + SEAICE_eccfr = 1.0, + & + + &SEAICE_PARM03 + & diff --git a/verification/offline_exf_seaice/input.dyn_ellnnfr/eedata.mth b/verification/offline_exf_seaice/input.dyn_ellnnfr/eedata.mth new file mode 100644 index 0000000000..7ee0415581 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_ellnnfr/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=2, + nTy=1, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/OpenAD/input_oad/prepare_run b/verification/offline_exf_seaice/input.dyn_ellnnfr/prepare_run similarity index 54% rename from verification/OpenAD/input_oad/prepare_run rename to verification/offline_exf_seaice/input.dyn_ellnnfr/prepare_run index 4caa458d8a..756b739cd3 100755 --- a/verification/OpenAD/input_oad/prepare_run +++ b/verification/offline_exf_seaice/input.dyn_ellnnfr/prepare_run @@ -1,21 +1,20 @@ #! /usr/bin/env bash -#- in order to save disc space, take *.bin files #- from this dir: -fromDir="../../tutorial_global_oce_latlon/input" +fromDir="../input.dyn_lsr" -fileList=`( cd $fromDir ; echo *.bin )` +#- in order to save disc space, take files: +fileList=`(cd ${fromDir} ; ls -1 data* tr_checklist )` -#echo 'fileList=' $fileList - -#- and do a symbolic link in the current directory +#- from this dir: +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -25,3 +24,4 @@ if test -d $fromDir ; then else echo " Error:" $fromDir "not a directory" fi + diff --git a/verification/offline_exf_seaice/input.dyn_mce/data.seaice b/verification/offline_exf_seaice/input.dyn_mce/data.seaice new file mode 100644 index 0000000000..c7e4f8e806 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_mce/data.seaice @@ -0,0 +1,23 @@ +# SEAICE parameters + &SEAICE_PARM01 + usePW79thermodynamics=.FALSE., + SEAICE_strength = 2.6780e+04, + OCEAN_drag = 8.1541e-04, + SEAICE_no_Slip = .FALSE., + LSR_ERROR = 1.E-12, + SEAICElinearIterMax= 1500, + LSR_mixIniGuess = 1, + SEAICEadvScheme = 41, + AreaFile = 'const100.bin', + HeffFile = 'const+20.bin', + HsnowFile = 'const_00.bin', + SEAICEwriteState = .TRUE., + SEAICE_monFreq = 1800., + SEAICEuseMCE = .TRUE., + SEAICEmcMU = 0.7, + SEAICE_tensilFac = 0.05, + SEAICE_eccen = 2.0, + & + + &SEAICE_PARM03 + & diff --git a/verification/offline_exf_seaice/input.dyn_mce/eedata.mth b/verification/offline_exf_seaice/input.dyn_mce/eedata.mth new file mode 100644 index 0000000000..7ee0415581 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_mce/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=2, + nTy=1, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/offline_exf_seaice/input.dyn_mce/prepare_run b/verification/offline_exf_seaice/input.dyn_mce/prepare_run new file mode 100755 index 0000000000..756b739cd3 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_mce/prepare_run @@ -0,0 +1,27 @@ +#! /usr/bin/env bash + +#- from this dir: +fromDir="../input.dyn_lsr" + +#- in order to save disc space, take files: +fileList=`(cd ${fromDir} ; ls -1 data* tr_checklist )` + +#- from this dir: +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + diff --git a/verification/offline_exf_seaice/input.dyn_paralens/data.seaice b/verification/offline_exf_seaice/input.dyn_paralens/data.seaice new file mode 100644 index 0000000000..d6d1d2f98a --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_paralens/data.seaice @@ -0,0 +1,26 @@ +# SEAICE parameters + &SEAICE_PARM01 + usePW79thermodynamics=.FALSE., + SEAICEpressReplFac = 0., + SEAICEusePL = .TRUE., + SEAICE_tensilFac = 0.05, + SEAICE_no_Slip = .TRUE., +# Krylov solver setinng + SEAICEuseKrylov = .TRUE., + SEAICEpreconLinIter = 10, + SEAICEnonLinIterMax = 2, + SEAICElinearIterMax = 50, +# this is a hack, because no proper tolerance has been implemented yet + JFNKgamma_lin_max = 1.e-4, +# end of Krylov solver parameters +#- to use seaice-advection from pkg/seaice, uncomment following 4 lines: +#SEAICEadvScheme = 77, # this is the new default +#AreaFile = 'const100.bin', +#HeffFile = 'const+20.bin', +#HsnowFile = 'const_00.bin', + SEAICEwriteState = .TRUE., + SEAICE_monFreq = 1800., + & + + &SEAICE_PARM03 + & diff --git a/verification/offline_exf_seaice/input.dyn_paralens/eedata.mth b/verification/offline_exf_seaice/input.dyn_paralens/eedata.mth new file mode 100644 index 0000000000..7ee0415581 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_paralens/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=2, + nTy=1, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/offline_exf_seaice/input.dyn_paralens/prepare_run b/verification/offline_exf_seaice/input.dyn_paralens/prepare_run new file mode 100755 index 0000000000..ccd7024a14 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_paralens/prepare_run @@ -0,0 +1,27 @@ +#! /usr/bin/env bash + +#- from this dir: +fromDir="../input.dyn_jfnk" + +#- in order to save disc space, take files: +fileList=`(cd ${fromDir} ; ls -1 data* tr_checklist )` + +#- from this dir: +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + diff --git a/verification/offline_exf_seaice/input.dyn_teardrop/data.seaice b/verification/offline_exf_seaice/input.dyn_teardrop/data.seaice new file mode 100644 index 0000000000..7d88ebfd97 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_teardrop/data.seaice @@ -0,0 +1,39 @@ +# SEAICE parameters + &SEAICE_PARM01 + usePW79thermodynamics=.FALSE., + SEAICE_strength = 2.6780e+04, +# JFNK-convergence is better with this old default value (2 times the new +# default) probably because the ice starts to move earlier + SEAICE_drag = 0.002, +# + OCEAN_drag = 8.1541e-04, + SEAICE_no_Slip = .FALSE., +# LSR solver parameter + LSR_ERROR = 1.E-12, + SEAICElinearIterMax= 1500, + LSR_mixIniGuess = 1, +# End of LSR solver parameter +# JFNK solver parameters +# SEAICEetaZmethod = 3, +# SEAICEuseJFNK = .TRUE., +# SEAICEpreconLinIter = 10, +# SEAICEnonLinIterMax = 100, +# SEAICElinearIterMax = 50, +# SEAICEnonLinTol = 1.e-09, +# SEAICE_JFNK_lsIter = 0, +# JFNKres_tFac = 0.5, +# SEAICE_JFNKalpha = 1.5, +# end of JFNK solver parameters +#- to use seaice-advection from pkg/seaice, uncomment following 4 lines: +#SEAICEadvScheme = 77, # this is the new default +#AreaFile = 'const100.bin', +#HeffFile = 'const+20.bin', +#HsnowFile = 'const_00.bin', + SEAICEwriteState = .TRUE., + SEAICE_monFreq = 1800., + SEAICEuseTD = .TRUE., + SEAICE_tensilFac = 0.05, + & + + &SEAICE_PARM03 + & diff --git a/verification/offline_exf_seaice/input.dyn_teardrop/eedata.mth b/verification/offline_exf_seaice/input.dyn_teardrop/eedata.mth new file mode 100644 index 0000000000..7ee0415581 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_teardrop/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=2, + nTy=1, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/offline_exf_seaice/input.dyn_teardrop/prepare_run b/verification/offline_exf_seaice/input.dyn_teardrop/prepare_run new file mode 100755 index 0000000000..ccd7024a14 --- /dev/null +++ b/verification/offline_exf_seaice/input.dyn_teardrop/prepare_run @@ -0,0 +1,27 @@ +#! /usr/bin/env bash + +#- from this dir: +fromDir="../input.dyn_jfnk" + +#- in order to save disc space, take files: +fileList=`(cd ${fromDir} ; ls -1 data* tr_checklist )` + +#- from this dir: +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + diff --git a/verification/offline_exf_seaice/input.thermo/eedata b/verification/offline_exf_seaice/input.thermo/eedata deleted file mode 100644 index e9aa69bc1e..0000000000 --- a/verification/offline_exf_seaice/input.thermo/eedata +++ /dev/null @@ -1,10 +0,0 @@ -# Example "eedata" file -# Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y - &EEPARMS - nTx=1, - nTy=1, - & -# Note: Some systems use & as the namelist terminator (as shown here). -# Other systems use a / character. diff --git a/verification/offline_exf_seaice/input/data b/verification/offline_exf_seaice/input/data index e3f3692902..9c075e9628 100644 --- a/verification/offline_exf_seaice/input/data +++ b/verification/offline_exf_seaice/input/data @@ -47,14 +47,16 @@ &PARM03 startTime=0.0, #endTime=432000., - deltaT=1800.0, +# Use half the original time step to test the option of stepping +# the sea ice dynamics solver with a longer timestep. + deltaT= 900.0, abEps=0.1, forcing_In_AB = .FALSE., pChkptFreq=3600000., dumpFreq = 864000., monitorFreq=86400., monitorSelect=2, - nTimeSteps=12, + nTimeSteps=24, monitorFreq=21600., & diff --git a/verification/offline_exf_seaice/input/data.ice b/verification/offline_exf_seaice/input/data.ice index 035b6d9903..01cec86a6f 100644 --- a/verification/offline_exf_seaice/input/data.ice +++ b/verification/offline_exf_seaice/input/data.ice @@ -27,7 +27,7 @@ thSIceFract_InitFile='const100.bin', thSIceThick_InitFile='const+20.bin', #thSIce_diagFreq=2592000., - thSIce_monFreq =21600., +#thSIce_monFreq =21600., thSIce_monFreq =1800., & diff --git a/verification/offline_exf_seaice/input/data.seaice b/verification/offline_exf_seaice/input/data.seaice index 8d0fe245cb..61acf16a3e 100644 --- a/verification/offline_exf_seaice/input/data.seaice +++ b/verification/offline_exf_seaice/input/data.seaice @@ -9,6 +9,7 @@ LSR_mixIniGuess = 1, SEAICE_no_Slip = .FALSE., SEAICEwriteState = .TRUE., + SEAICE_deltaTdyn = 1800., SEAICE_monFreq = 21600., SEAICE_monFreq = 1800., & diff --git a/verification/offline_exf_seaice/input/eedata b/verification/offline_exf_seaice/input/eedata index e9aa69bc1e..e84b38d1ae 100644 --- a/verification/offline_exf_seaice/input/eedata +++ b/verification/offline_exf_seaice/input/eedata @@ -1,10 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=1, +#debugMode=.TRUE., & # Note: Some systems use & as the namelist terminator (as shown here). # Other systems use a / character. diff --git a/verification/offline_exf_seaice/input_ad.thsice/data b/verification/offline_exf_seaice/input_ad.thsice/data index 3a1ec49359..707a44693e 100644 --- a/verification/offline_exf_seaice/input_ad.thsice/data +++ b/verification/offline_exf_seaice/input_ad.thsice/data @@ -56,6 +56,7 @@ nTimeSteps=60, #monitorFreq=1., #dumpFreq = 1., + adjMonitorFreq= 86400., & # Gridding parameters diff --git a/verification/offline_exf_seaice/input_ad.thsice/data.grdchk b/verification/offline_exf_seaice/input_ad.thsice/data.grdchk new file mode 100644 index 0000000000..a9219001a5 --- /dev/null +++ b/verification/offline_exf_seaice/input_ad.thsice/data.grdchk @@ -0,0 +1,19 @@ + &GRDCHK_NML + grdchk_eps = 1.d-4, + iglopos = 10, + jglopos = 10, + iGloTile = 2, + jGloTile = 2, + nbeg = 1, + nstep = 1, + nend = 4, +#(grdchkvarindex = 1 fails at freezing point) +#grdchkvarindex = 1, +# to test xx_atemp with xx_gentim2d set 301, because xx_atemp is +# our first control variable (see data.ctrl) + grdchkvarindex = 301, +# xx_swdown +#grdchkvarindex = 302, +# xx_theta +#grdchkvarindex = 201, + & diff --git a/verification/offline_exf_seaice/input_ad.thsice/tr_checklist.adm b/verification/offline_exf_seaice/input_ad.thsice/tr_checklist.adm new file mode 100644 index 0000000000..49db541523 --- /dev/null +++ b/verification/offline_exf_seaice/input_ad.thsice/tr_checklist.adm @@ -0,0 +1 @@ +admGrd admCst admGrd admFwd T+ S+ U+ V+ diff --git a/verification/offline_exf_seaice/input_ad/data b/verification/offline_exf_seaice/input_ad/data index 7eea03f89a..adc312b1f5 100644 --- a/verification/offline_exf_seaice/input_ad/data +++ b/verification/offline_exf_seaice/input_ad/data @@ -46,16 +46,15 @@ &PARM03 startTime=0.0, #endTime=864000., + nTimeSteps=120, deltaT=3600.0, abEps=0.1, forcing_In_AB = .FALSE., - pChkptFreq=3600000., - monitorFreq=432000., - monitorSelect=2, -#dumpFreq = 86400., - nTimeSteps=120, -#monitorFreq=1., -#dumpFreq = 1., + pChkptFreq=5184000., +#dumpFreq = 864000., + monitorSelect = 2, + monitorFreq = 216000., + adjMonitorFreq= 86400., & # Gridding parameters diff --git a/verification/offline_exf_seaice/input_ad/data.ctrl b/verification/offline_exf_seaice/input_ad/data.ctrl index 820099bedb..8225524162 100644 --- a/verification/offline_exf_seaice/input_ad/data.ctrl +++ b/verification/offline_exf_seaice/input_ad/data.ctrl @@ -1,8 +1,29 @@ - &ctrl_nml +# ********************* +# general parameters and +# non-default ECCO legacy control variables +# ********************* + &CTRL_NML doMainUnpack=.FALSE., doMainPack=.FALSE., - / + ctrlprec = 32, + & # - &ctrl_packnames - / - +# ********************* +# names for ctrl_pack/unpack +# ********************* + &CTRL_PACKNAMES + & +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_gentim2d_file(1) = 'xx_atemp', + xx_gentim2d_weight(1) = 'ones_32b.bin', +# + xx_gentim2d_file(2) = 'xx_swdown', + xx_gentim2d_weight(2) = 'ones_32b.bin', +# + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_32b.bin', + & diff --git a/verification/offline_exf_seaice/input_ad/data.diagnostics b/verification/offline_exf_seaice/input_ad/data.diagnostics index 51349d548e..6b3b61b4f3 100644 --- a/verification/offline_exf_seaice/input_ad/data.diagnostics +++ b/verification/offline_exf_seaice/input_ad/data.diagnostics @@ -38,11 +38,12 @@ # 'SIflxAtm','SIfrwAtm', # 'EXFqnet ','EXFempmr', #- with pkg/seaice: - fields(1:10,2) = 'SIarea ','SIheff ','THETA ','SItices ', + fields(1:8,2) = 'SIarea ','SIheff ','THETA ','SItices ', # 'SIuice ','SIvice ','SIhsnow ', # 'oceQnet ','oceQsw ','oceFWflx','oceSflux', 'SIqnet ','SIqsw ','SIempmr ','oceSflux', - 'SIatmQnt','SIatmFW ', +#- comment out SIatmQnt (not filled in seaice_growth_adx.F): +# 'SIatmQnt','SIatmFW ', fileName(2) = 'iceDiag', frequency(2) = 86400., missing_value(2) = -999., @@ -83,11 +84,12 @@ # 'SIflxAtm','SIfrwAtm', #- with pkg/seaice: #stat_fields(1:11,1) = 'SIarea ','SIheff ','SIhsnow ', - stat_fields(1:10,1) = 'SIarea ','SIheff ', + stat_fields(1:8,1) = 'SIarea ','SIheff ', 'THETA ','SItices ', # 'oceQnet ','oceQsw ','oceFWflx','oceSflux', 'SIqnet ','SIqsw ','SIempmr ','oceSflux', - 'SIatmQnt','SIatmFW ', +#- comment out SIatmQnt (not filled in seaice_growth_adx.F): +# 'SIatmQnt','SIatmFW ', stat_fName(1) = 'iceStDiag', stat_freq(1) = 43200., stat_phase(1) = 3600., diff --git a/verification/offline_exf_seaice/input_ad/data.grdchk b/verification/offline_exf_seaice/input_ad/data.grdchk index 9a50780857..31e893c36e 100644 --- a/verification/offline_exf_seaice/input_ad/data.grdchk +++ b/verification/offline_exf_seaice/input_ad/data.grdchk @@ -9,6 +9,9 @@ nend = 4, #(grdchkvarindex = 1 fails at freezing point) #grdchkvarindex = 1, - grdchkvarindex = 7, -#grdchkvarindex = 34, +# this is xx_atemp +# grdchkvarindex = 7, +# to test this with xx_gentim2d set 301, because xx_atemp is +# our first control variable (see data.ctrl) + grdchkvarindex = 301, & diff --git a/verification/offline_exf_seaice/input_ad/data.seaice b/verification/offline_exf_seaice/input_ad/data.seaice index 0d21c07524..c87c887dff 100644 --- a/verification/offline_exf_seaice/input_ad/data.seaice +++ b/verification/offline_exf_seaice/input_ad/data.seaice @@ -26,7 +26,7 @@ SEAICE_waterDrag = 5.3508E-03, SEAICEuseDYNAMICS =.FALSE., LSR_ERROR = 1.E-12, - SEAICElinearIterMax= 1500, + SEAICElinearIterMax= 500, LSR_mixIniGuess = 1, # this is default anyway, so we comment it out #SEAICEuseFlooding = .TRUE., diff --git a/verification/offline_exf_seaice/input_ad/genweights.py b/verification/offline_exf_seaice/input_ad/genweights.py new file mode 100644 index 0000000000..1af3c51f8a --- /dev/null +++ b/verification/offline_exf_seaice/input_ad/genweights.py @@ -0,0 +1,11 @@ +import numpy as np + +nx,ny,nr,nt=80,42,3,1 + +# single prec ieee-be +wt32 = np.ones((nt,nr,ny,nx),dtype='>f4') +wt32.tofile('ones_32b.bin') + +# double prec ieee-be +wt64 = np.ones((nt,nr,ny,nx),dtype='>f8') +wt64.tofile('ones.prec64') diff --git a/verification/offline_exf_seaice/input_ad/prepare_run b/verification/offline_exf_seaice/input_ad/prepare_run index bc69e93885..3cf199befb 100755 --- a/verification/offline_exf_seaice/input_ad/prepare_run +++ b/verification/offline_exf_seaice/input_ad/prepare_run @@ -8,14 +8,14 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi @@ -26,3 +26,26 @@ else echo " Error:" $fromDir "not a directory" fi +#- And take file 'ones_32b.bin' +#- from this dir: +fromDir="../../global_oce_biogeo_bling/input_ad" + +fileList='ones_32b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/offline_exf_seaice/input_ad/tr_checklist.adm b/verification/offline_exf_seaice/input_ad/tr_checklist.adm new file mode 100644 index 0000000000..f341ee79f7 --- /dev/null +++ b/verification/offline_exf_seaice/input_ad/tr_checklist.adm @@ -0,0 +1 @@ +admGrd admCst admGrd admFwd T+ S+ aSI+ hSI+ uSI+ vSI+ diff --git a/verification/offline_exf_seaice/results/output.dyn_ellnnfr.txt b/verification/offline_exf_seaice/results/output.dyn_ellnnfr.txt new file mode 100644 index 0000000000..2e04484670 --- /dev/null +++ b/verification/offline_exf_seaice/results/output.dyn_ellnnfr.txt @@ -0,0 +1,2860 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67w +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Mon Mar 22 23:06:54 EDT 2021 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) >#debugMode=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 40 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 21 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 1 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 80 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 42 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= -1.62, +(PID.TID 0000.0001) > sRef= 30., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) >#bottomDragLinear=1.E-3, +(PID.TID 0000.0001) > bottomDragQuadratic=5.E-3, +(PID.TID 0000.0001) > viscAr=3.E-2, +(PID.TID 0000.0001) > viscAh=3.E+2, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986., +(PID.TID 0000.0001) > rhoNil = 1030., +(PID.TID 0000.0001) > rhoConstFresh = 1000., +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta= 0., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > saltStepping=.FALSE., +(PID.TID 0000.0001) > tempStepping=.FALSE., +(PID.TID 0000.0001) >#tempAdvection=.FALSE., +(PID.TID 0000.0001) > momStepping=.FALSE., +(PID.TID 0000.0001) > f0=0.e-4, +(PID.TID 0000.0001) > beta=0., +(PID.TID 0000.0001) > useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) >#exactConserv=.TRUE., +(PID.TID 0000.0001) > convertFW2Salt=-1, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) >#debugLevel=4, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) >#endTime=432000., +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=3600000., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > monitorFreq=864000., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > nTimeSteps=12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delX=80*5.E3, +(PID.TID 0000.0001) > delY=42*5.E3, +(PID.TID 0000.0001) > ygOrigin=-110.E3, +(PID.TID 0000.0001) >#delR= 20., 30., 50., +(PID.TID 0000.0001) > delR= 10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy_3c.bin', +(PID.TID 0000.0001) > uVelInitFile = 'uVel_3c0.bin', +(PID.TID 0000.0001) > vVelInitFile = 'vVel_3c0.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'eta_3c0.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'uVel_3c1.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'vVel_3c1.bin', +(PID.TID 0000.0001) >#pSurfInitFile = 'eta_3c1.bin', +(PID.TID 0000.0001) >#bathyFile = 'channel.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'const+40.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'const-10.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) ># useThSIce = .TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/exf compiled and used ( useEXF = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/thsice compiled but not used ( useThSIce = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled but not used ( useGAD = F ) + pkg/mom_common compiled but not used ( momStepping = F ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) >#repeatPeriod = 2635200.0, +(PID.TID 0000.0001) > exf_iprec = 64, +(PID.TID 0000.0001) > exf_monFreq = 86400000., +(PID.TID 0000.0001) >#useRelativeWind = .TRUE., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempperiod = 0.0, +(PID.TID 0000.0001) > aqhperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindperiod = 0.0, +(PID.TID 0000.0001) > vwindperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipperiod = 0.0, +(PID.TID 0000.0001) > swdownperiod = 0.0, +(PID.TID 0000.0001) > lwdownperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsstperiod = 0.0, +(PID.TID 0000.0001) >#climsstTauRelax = 2592000., +(PID.TID 0000.0001) > climsssperiod = 0.0, +(PID.TID 0000.0001) >#climsssTauRelax = 2592000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#atempfile = 'tair_4x.bin', +(PID.TID 0000.0001) >#aqhfile = 'qa70_4x.bin', +(PID.TID 0000.0001) > uwindfile = 'windx.bin', +(PID.TID 0000.0001) >#vwindfile = 'windy.bin', +(PID.TID 0000.0001) >#precipfile = 'const_00.bin', +(PID.TID 0000.0001) >#lwdownfile = 'dlw_250.bin', +(PID.TID 0000.0001) >#swdownfile = 'dsw_100.bin', +(PID.TID 0000.0001) >#runoffFile = ' ' +(PID.TID 0000.0001) >#climsstfile = 'tocn.bin', +(PID.TID 0000.0001) >#climsssfile = 'socn.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) >#exf_offset_atemp=5; +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># old open64 compiler (4.2.1) cannot skip this namelist to read in the next one; +(PID.TID 0000.0001) ># comment out this namelist (not read). +(PID.TID 0000.0001) >#&EXF_NML_04 +(PID.TID 0000.0001) >#& +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_OBCS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > usePW79thermodynamics=.FALSE., +(PID.TID 0000.0001) > SEAICE_strength = 2.6780e+04, +(PID.TID 0000.0001) > OCEAN_drag = 8.1541e-04, +(PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., +(PID.TID 0000.0001) > LSR_ERROR = 1.E-12, +(PID.TID 0000.0001) > SEAICElinearIterMax= 1500, +(PID.TID 0000.0001) > LSR_mixIniGuess = 1, +(PID.TID 0000.0001) > SEAICEadvScheme = 41, +(PID.TID 0000.0001) > AreaFile = 'const100.bin', +(PID.TID 0000.0001) > HeffFile = 'const+20.bin', +(PID.TID 0000.0001) > HsnowFile = 'const_00.bin', +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_monFreq = 1800., +(PID.TID 0000.0001) > SEAICE_eccfr = 1.0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># This example dumps EXF diagnostics as snapshot after 10 time-steps +(PID.TID 0000.0001) ># Note: EXF air-sea fluxes over Sea-Ice are wrong +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > dumpAtLast = .TRUE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:11,1) = 'EXFtaux ','EXFtauy ','EXFqnet ','EXFempmr', +(PID.TID 0000.0001) > 'EXFhl ','EXFhs ','EXFswnet','EXFlwnet', +(PID.TID 0000.0001) > 'EXFuwind','EXFvwind','EXFatemp', +(PID.TID 0000.0001) ># fileName(1) = 'exfDiag', +(PID.TID 0000.0001) > frequency(1) = 86400., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:4,2) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIarea ', +(PID.TID 0000.0001) ># fileName(2) = 'iceDiag', +(PID.TID 0000.0001) > frequency(2) = 86400., +(PID.TID 0000.0001) > missing_value(2) = -999., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:4,3) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIarea ', +(PID.TID 0000.0001) > fileName(3) = 'snapshot', +(PID.TID 0000.0001) > frequency(3) = -86400., +(PID.TID 0000.0001) > timePhase(3) = 3600., +(PID.TID 0000.0001) > missing_value(3) = -999., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > stat_fields(1:5,1) = 'SIarea ','SIheff ','SIhsnow ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > stat_fName(1) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 7200., +(PID.TID 0000.0001) > stat_phase(1) = 1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: snapshot +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 3600.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SIuice SIvice SIheff SIarea +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: 7200.000000 ; Phase: 1800.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SIarea SIheff SIhsnow SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.9750000000000E+05 +(PID.TID 0000.0001) %MON XC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON XG_max = 3.9500000000000E+05 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.9750000000000E+05 +(PID.TID 0000.0001) %MON XG_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON DXC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 9.7500000000000E+04 +(PID.TID 0000.0001) %MON YC_min = -1.0750000000000E+05 +(PID.TID 0000.0001) %MON YC_mean = -5.0000000000000E+03 +(PID.TID 0000.0001) %MON YC_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON YG_max = 9.5000000000000E+04 +(PID.TID 0000.0001) %MON YG_min = -1.1000000000000E+05 +(PID.TID 0000.0001) %MON YG_mean = -7.5000000000000E+03 +(PID.TID 0000.0001) %MON YG_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON DYC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAW_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAS_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAZ_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_3c.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -1.000000000000000E+01 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 0 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing period is 0. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> windx.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsss relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 8.154100000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.678000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvArea = /* advect fractional ice area */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSnow = /* advect snow layer together with ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pkg/seaice thermodynamics is OFF +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) 'const100.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) 'const+20.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) 'const_00.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 223 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 146 SIarea +(PID.TID 0000.0001) space allocated for all diagnostics: 4 levels +(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 +(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 146 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 151 SIhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 164 SIvice +(PID.TID 0000.0001) space allocated for all stats-diags: 5 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0000000000000001E-01 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 3.000000000000000E-02 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 6.300000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* I = 1 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* I = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.750000000000000E+04, /* I = 18 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* I = 19 */ +(PID.TID 0000.0001) 9.750000000000000E+04, /* I = 20 */ +(PID.TID 0000.0001) 1.025000000000000E+05, /* I = 21 */ +(PID.TID 0000.0001) 1.075000000000000E+05, /* I = 22 */ +(PID.TID 0000.0001) 1.125000000000000E+05, /* I = 23 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.875000000000000E+05, /* I = 38 */ +(PID.TID 0000.0001) 1.925000000000000E+05, /* I = 39 */ +(PID.TID 0000.0001) 1.975000000000000E+05, /* I = 40 */ +(PID.TID 0000.0001) 2.025000000000000E+05, /* I = 41 */ +(PID.TID 0000.0001) 2.075000000000000E+05, /* I = 42 */ +(PID.TID 0000.0001) 2.125000000000000E+05, /* I = 43 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.875000000000000E+05, /* I = 58 */ +(PID.TID 0000.0001) 2.925000000000000E+05, /* I = 59 */ +(PID.TID 0000.0001) 2.975000000000000E+05, /* I = 60 */ +(PID.TID 0000.0001) 3.025000000000000E+05, /* I = 61 */ +(PID.TID 0000.0001) 3.075000000000000E+05, /* I = 62 */ +(PID.TID 0000.0001) 3.125000000000000E+05, /* I = 63 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.875000000000000E+05, /* I = 78 */ +(PID.TID 0000.0001) 3.925000000000000E+05, /* I = 79 */ +(PID.TID 0000.0001) 3.975000000000000E+05 /* I = 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -1.075000000000000E+05, /* J = 1 */ +(PID.TID 0000.0001) -1.025000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) -9.750000000000000E+04, /* J = 3 */ +(PID.TID 0000.0001) -9.250000000000000E+04, /* J = 4 */ +(PID.TID 0000.0001) -8.750000000000000E+04, /* J = 5 */ +(PID.TID 0000.0001) -8.250000000000000E+04, /* J = 6 */ +(PID.TID 0000.0001) -7.750000000000000E+04, /* J = 7 */ +(PID.TID 0000.0001) -7.250000000000000E+04, /* J = 8 */ +(PID.TID 0000.0001) -6.750000000000000E+04, /* J = 9 */ +(PID.TID 0000.0001) -6.250000000000000E+04, /* J = 10 */ +(PID.TID 0000.0001) -5.750000000000000E+04, /* J = 11 */ +(PID.TID 0000.0001) -5.250000000000000E+04, /* J = 12 */ +(PID.TID 0000.0001) -4.750000000000000E+04, /* J = 13 */ +(PID.TID 0000.0001) -4.250000000000000E+04, /* J = 14 */ +(PID.TID 0000.0001) -3.750000000000000E+04, /* J = 15 */ +(PID.TID 0000.0001) -3.250000000000000E+04, /* J = 16 */ +(PID.TID 0000.0001) -2.750000000000000E+04, /* J = 17 */ +(PID.TID 0000.0001) -2.250000000000000E+04, /* J = 18 */ +(PID.TID 0000.0001) -1.750000000000000E+04, /* J = 19 */ +(PID.TID 0000.0001) -1.250000000000000E+04, /* J = 20 */ +(PID.TID 0000.0001) -7.500000000000000E+03, /* J = 21 */ +(PID.TID 0000.0001) -2.500000000000000E+03, /* J = 22 */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* J = 24 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* J = 26 */ +(PID.TID 0000.0001) 2.250000000000000E+04, /* J = 27 */ +(PID.TID 0000.0001) 2.750000000000000E+04, /* J = 28 */ +(PID.TID 0000.0001) 3.250000000000000E+04, /* J = 29 */ +(PID.TID 0000.0001) 3.750000000000000E+04, /* J = 30 */ +(PID.TID 0000.0001) 4.250000000000000E+04, /* J = 31 */ +(PID.TID 0000.0001) 4.750000000000000E+04, /* J = 32 */ +(PID.TID 0000.0001) 5.250000000000000E+04, /* J = 33 */ +(PID.TID 0000.0001) 5.750000000000000E+04, /* J = 34 */ +(PID.TID 0000.0001) 6.250000000000000E+04, /* J = 35 */ +(PID.TID 0000.0001) 6.750000000000000E+04, /* J = 36 */ +(PID.TID 0000.0001) 7.250000000000000E+04, /* J = 37 */ +(PID.TID 0000.0001) 7.750000000000000E+04, /* J = 38 */ +(PID.TID 0000.0001) 8.250000000000000E+04, /* J = 39 */ +(PID.TID 0000.0001) 8.750000000000000E+04, /* J = 40 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* J = 41 */ +(PID.TID 0000.0001) 9.750000000000000E+04 /* J = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 6.950000000000000E+10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: uVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: vVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: eta_3c0.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: snapshot + nFlds, nActive, freq & phase , nLev + 4 | 4 | -86400.000000 3600.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 163 |SIuice | 1 | 2 | 1 | 0 | 0 | + 164 |SIvice | 2 | 1 | 1 | 0 | 0 | + 149 |SIheff | 3 | 0 | 1 | 0 | + 146 |SIarea | 4 | 0 | 1 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 5 | 5 | 7200.000000 1800.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 146 |SIarea | 1 | 0 | 0.00000E+00 | + 149 |SIheff | 2 | 0 | 0.00000E+00 | + 151 |SIhsnow | 3 | 0 | 0.00000E+00 | + 163 |SIuice | 4 | 0 | 0.00000E+00 | + 164 |SIvice | 5 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: windx.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const+20.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const100.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const_00.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4855271423662E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5547625271979E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8609663050809E-19 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6185276903544E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4210904025025E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4694595665363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 8.1797628424127E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2603530929361E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4661197148990E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3392731599312E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2780617104059E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4793000868950E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2450632095700E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0970835295293E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.1836652323282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6555698845343E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4393468746960E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8006686469634E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8006622332191E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4047422448573E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5484032096270E-05 +(PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 +(PID.TID 0000.0001) %MON ke_mean = 5.8130401708830E-02 +(PID.TID 0000.0001) %MON ke_vol = 6.9500000000000E+11 +(PID.TID 0000.0001) %MON vort_r_min = -1.4191202448594E-04 +(PID.TID 0000.0001) %MON vort_r_max = 8.9657385579761E-05 +(PID.TID 0000.0001) %MON vort_a_mean = -6.5586096803907E-22 +(PID.TID 0000.0001) %MON vort_a_sd = 1.5889649807104E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -6.8228760045090E-22 +(PID.TID 0000.0001) %MON vort_p_sd = 3.0669223294758E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4394880171946E-21 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6750406018264E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_sd = 5.5511151231258E-17 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_hflux_max = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 9.6633812063374E-13 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 7.8352778346434E-01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) %MON exf_uwind_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_evap_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_evap_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.33422834E-01 1.20594212E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.79022747E+03 8.26057323E+02 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 6.91042236E-07 2.87654213E-02 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 928 9.87780184E-13 2.95315207E-08 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 8.15073207E-01 1.18742003E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.60522369E+01 1.39123575E+01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 4.13243986E-05 2.55256611E-01 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 766 9.71289564E-13 1.26136854E-09 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.4024319837706E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 9.2749156791462E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 1.0136251154409E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 3.6438614911173E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.4821514310094E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.3559840316826E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -4.1820751720504E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -5.1176047428812E-05 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.7057212095631E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0171047281653E-06 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 9.8284755640412E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9979094521068E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 6.7511369437233E-04 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.0739610564341E-05 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.0335993323234E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.9656951128082E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.9909901038525E-04 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 3.5846749892566E-06 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 6.900E+10 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 6.750E+10 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.53909235E-01 8.53991100E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.57279075E+00 6.44767645E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.55104794E-05 9.59086951E-03 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 508 9.92140398E-13 4.22270228E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.73604519E-01 3.12796525E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 6.36817644E-01 4.65401654E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.48517883E-05 1.00182314E-02 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 548 9.46629494E-13 2.51075596E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.1952690912316E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.2730383754488E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5701821971575E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9534183381131E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 9.8693433513708E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.6673362694794E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -6.3006111775800E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.1459767945193E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.2507814277278E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 3.1901481673905E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 8.7073353773499E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9869053474848E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 5.7472859862295E-03 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.0422430824226E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.2351581374737E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.7414733128656E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.6418310688276E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.9858885165256E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 7.79713386E-02 3.50228141E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.16225828E+00 1.29485509E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.63685206E-06 4.71944992E-03 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 370 9.78522818E-13 3.29210609E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.11742620E-02 2.02692299E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.51839635E+00 1.16532641E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.74743235E-06 2.52386509E-03 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 384 9.54084034E-13 2.99603512E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.7862825198296E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.0717790543624E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6363039268328E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6332143613862E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.0351369963463E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.1248582050081E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -9.3090887511950E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.3448286957120E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3760524160573E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.2473031304252E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 7.5693184488119E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9777836848561E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.1176515399349E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.8325387745764E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.4756052802174E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.5143069539403E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 3.4060771830500E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 6.1342366722895E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 163 SIuice Counter: 1 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 164 SIvice exists + Computing Diagnostic # 164 SIvice Counter: 1 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 163 SIuice exists + Computing Diagnostic # 149 SIheff Counter: 1 Parms: SM M1 + Computing Diagnostic # 146 SIarea Counter: 1 Parms: SM M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.03588088E-02 1.85983375E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.98815220E+00 1.39199422E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 6.23134084E-07 8.80238150E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 410 9.91973430E-13 1.96919815E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.83932223E-02 1.37880443E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.57162721E+00 1.77019630E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 7.04066315E-07 1.08504207E-03 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 402 9.56464508E-13 2.02829001E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8832385661628E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.2048114583667E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6442994730857E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.7237148429729E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.0663460978933E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.2774832687414E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3007335530387E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.4224989527453E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.1569109147554E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.6503771709987E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 6.6703380047731E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9688304110612E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.5676756591203E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.2515374170684E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.6969017228362E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.3350370739538E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 5.0672385233377E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 8.8255485152761E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.87206145E-02 1.42871961E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.19230137E+01 3.16679623E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 4.59608672E-07 1.09570611E-03 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 390 9.60304319E-13 2.98394364E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.91501855E-02 1.25510353E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.28300940E+01 3.54532426E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.64670905E-07 9.27596916E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 376 9.94361277E-13 2.05032966E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.9275102325496E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.1658496216349E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6442123234779E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8109348555869E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1380303770607E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.6200339112536E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3532119336879E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.6958354745709E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.4246663419984E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 6.8701912125821E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 5.9609813930615E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9600127798036E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.9828588434472E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.6038047365987E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.8992621008694E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.1942719968221E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 6.6503258290661E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.1219742825404E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.07857184E-02 1.61035945E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.63067348E+01 4.64801497E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.89749313E-07 7.56724962E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 374 9.38499278E-13 1.69290483E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.76618274E-02 1.24052875E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.72921550E+01 5.04386637E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.44195467E-07 6.03147748E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 358 9.75455394E-13 1.75685329E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.9609833258327E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.0549432670443E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6423319297737E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8959806958685E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2406263696480E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.8447629115686E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3303242772015E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.7038614744457E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.5479318636906E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.8761835589236E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 5.3998708170009E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9512828061773E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 2.3797906725887E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.9104148803601E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.0804975290980E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.0827956215451E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 8.1510409432033E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.3225272370941E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.76140638E-02 1.39084815E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.82246865E+01 5.85189772E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 9.39803178E-08 4.71283705E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 364 9.27923103E-13 1.65854966E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.50117873E-02 1.21274721E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.75492891E+01 6.02832842E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.97253842E-08 3.10229858E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 348 9.20968163E-13 1.64768307E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.9922892372180E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.8931712232989E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6401177780648E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9849520986260E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3629466958105E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0072195469531E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3394689029882E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.6471749089157E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.6253417509873E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 8.6589449993418E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 4.9563902908735E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9426198486052E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 2.7655893347195E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.1825481453497E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.2423001895139E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 9.9449400875538E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 9.5669292956848E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.4816156503655E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.48666831E-02 1.01677047E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.64965885E+01 6.15078851E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.53939999E-08 3.64468532E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 356 9.88189565E-13 1.75532879E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.33981501E-02 8.42343937E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.60249707E+01 6.15980858E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.58500043E-08 2.24860879E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 340 9.49944984E-13 1.68860975E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0198356873029E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.6772486210815E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6377682408113E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0776791076490E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4979240758282E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0297673185962E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3920256341353E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.5858169475880E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.6854136503341E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.3026381784337E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 4.6023111676472E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9340229411431E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.1433203443346E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.4247538411758E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.3837156166280E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 9.2375022217201E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.0897373820278E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.6009978221048E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.33685006E-02 8.35346459E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.58497910E+01 6.29224494E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 6.49886827E-08 3.71277011E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 352 9.38685761E-13 1.67015690E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.23433157E-02 7.83758581E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.58631198E+01 6.37993845E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.47471967E-08 2.49551359E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 334 9.71097768E-13 2.07317371E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0437481478417E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.4696203436622E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6353904197264E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.1722679249709E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6337403153157E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0516734245059E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4287958905084E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.5384218294668E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.7371134566672E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.8693852429803E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 4.3143426901747E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9254901804400E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.5138341023594E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.6360442252315E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.5045151050827E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 8.6598467741707E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.2145720136335E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.6821917358429E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.20832999E-02 7.79537273E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.63142755E+01 6.69240411E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.39241932E-08 3.96072531E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 348 9.40187164E-13 2.01008259E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.13517192E-02 7.16858955E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.64713901E+01 6.81170986E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 6.18768706E-08 2.75522973E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 330 9.81510229E-13 2.81087697E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0643453902331E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.2848175409057E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6330473846447E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2660191896952E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7566528436064E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.1047649078213E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4584287822441E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.5041474665437E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.7841150805566E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0443743921547E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 4.0769805598949E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9170165990587E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.8774569028468E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.8196407985418E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.6074037490148E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 8.1819156953397E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.3322521094379E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.7302919142100E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.11280599E-02 6.68146339E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.69145587E+01 7.09759439E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.38563212E-08 4.09249040E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 346 9.13468520E-13 1.70390657E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.05642495E-02 6.09599077E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.70650001E+01 7.18763949E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 6.07661687E-08 2.80882491E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 328 9.91076362E-13 1.84417620E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 11 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0833676890449E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.1298845423252E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6307746365304E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.3562037767075E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8558674916001E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.1584960912331E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4878259575076E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.4742283273308E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.8284707428136E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1104088324009E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 3.8806002973145E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9085989066056E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.2346065694124E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.9833385546288E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.6972212190722E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 7.7859939428903E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.4440652718139E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.7518662413498E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.01207721E-02 5.96284746E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.74260220E+01 7.38661679E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 6.86557249E-08 4.09321892E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 344 9.36469218E-13 1.63530846E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 9.65663198E-03 5.49645121E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.75407432E+01 7.44061142E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.55306752E-08 2.69373903E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 328 9.54232570E-13 1.67414245E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 12 +(PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1153740794926E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.0042187583969E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6286022498243E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.4406997957375E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.9265238130155E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.2025462148907E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.5193730557569E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.4393267237025E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.8714837778140E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1864472489795E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 3.7182284306560E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9002343580064E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.5856213925631E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.1333903167705E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.7776618771790E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 7.4590587153264E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.5512683049963E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.7524945893041E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.070E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.025E+11 Parms: VV M1 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 12 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 29.248971939086914 +(PID.TID 0000.0001) System time: 4.3571999296545982E-002 +(PID.TID 0000.0001) Wall clock time: 29.319957017898560 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 4.5423001662129536E-002 +(PID.TID 0000.0001) System time: 2.0388999953866005E-002 +(PID.TID 0000.0001) Wall clock time: 8.4193944931030273E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 29.203447401523590 +(PID.TID 0000.0001) System time: 2.3176999762654305E-002 +(PID.TID 0000.0001) Wall clock time: 29.235672950744629 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.3561999201774597E-002 +(PID.TID 0000.0001) System time: 1.5807997435331345E-002 +(PID.TID 0000.0001) Wall clock time: 4.0101051330566406E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 29.179857864975929 +(PID.TID 0000.0001) System time: 7.3589980602264404E-003 +(PID.TID 0000.0001) Wall clock time: 29.195536136627197 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 29.179757215082645 +(PID.TID 0000.0001) System time: 7.3550008237361908E-003 +(PID.TID 0000.0001) Wall clock time: 29.195429563522339 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 29.179550372064114 +(PID.TID 0000.0001) System time: 7.3509998619556427E-003 +(PID.TID 0000.0001) Wall clock time: 29.195218086242676 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2104585766792297E-002 +(PID.TID 0000.0001) System time: 4.6100094914436340E-004 +(PID.TID 0000.0001) Wall clock time: 1.2574911117553711E-002 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.4370000958442688E-002 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 5.4366827011108398E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 5.3911074995994568E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.3942203521728516E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.1980533599853516E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1348724365234375E-004 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.2536211013793945E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.3221664428710938E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 29.067918077111244 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 29.076247453689575 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 29.059178389608860 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 29.067513465881348 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 28.983941555023193 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 28.992313861846924 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8452873229980469E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.8502941131591797E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.0431747436523438E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0457973480224609E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.2683868408203125E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.3184547424316406E-004 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1515617370605469E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1396408081054688E-004 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6997556686401367E-002 +(PID.TID 0000.0001) System time: 2.8750002384185791E-003 +(PID.TID 0000.0001) Wall clock time: 3.9890050888061523E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.4250488281250000E-004 +(PID.TID 0000.0001) System time: 4.0009990334510803E-003 +(PID.TID 0000.0001) Wall clock time: 4.4450759887695312E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 48026 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 48026 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output.dyn_mce.txt b/verification/offline_exf_seaice/results/output.dyn_mce.txt new file mode 100644 index 0000000000..d0fd52a508 --- /dev/null +++ b/verification/offline_exf_seaice/results/output.dyn_mce.txt @@ -0,0 +1,2861 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67u +(PID.TID 0000.0001) // Build user: dringeis +(PID.TID 0000.0001) // Build host: ollie0 +(PID.TID 0000.0001) // Build date: Thu Feb 4 20:39:09 CET 2021 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 40 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 21 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 1 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 80 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 42 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= -1.62, +(PID.TID 0000.0001) > sRef= 30., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) >#bottomDragLinear=1.E-3, +(PID.TID 0000.0001) > bottomDragQuadratic=5.E-3, +(PID.TID 0000.0001) > viscAr=3.E-2, +(PID.TID 0000.0001) > viscAh=3.E+2, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986., +(PID.TID 0000.0001) > rhoNil = 1030., +(PID.TID 0000.0001) > rhoConstFresh = 1000., +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta= 0., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > saltStepping=.FALSE., +(PID.TID 0000.0001) > tempStepping=.FALSE., +(PID.TID 0000.0001) >#tempAdvection=.FALSE., +(PID.TID 0000.0001) > momStepping=.FALSE., +(PID.TID 0000.0001) > f0=0.e-4, +(PID.TID 0000.0001) > beta=0., +(PID.TID 0000.0001) > useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) >#exactConserv=.TRUE., +(PID.TID 0000.0001) > convertFW2Salt=-1, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) >#debugLevel=4, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) >#endTime=432000., +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=3600000., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > monitorFreq=864000., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > nTimeSteps=12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delX=80*5.E3, +(PID.TID 0000.0001) > delY=42*5.E3, +(PID.TID 0000.0001) > ygOrigin=-110.E3, +(PID.TID 0000.0001) >#delR= 20., 30., 50., +(PID.TID 0000.0001) > delR= 10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy_3c.bin', +(PID.TID 0000.0001) > uVelInitFile = 'uVel_3c0.bin', +(PID.TID 0000.0001) > vVelInitFile = 'vVel_3c0.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'eta_3c0.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'uVel_3c1.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'vVel_3c1.bin', +(PID.TID 0000.0001) >#pSurfInitFile = 'eta_3c1.bin', +(PID.TID 0000.0001) >#bathyFile = 'channel.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'const+40.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'const-10.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) ># useThSIce = .TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/exf compiled and used ( useEXF = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/thsice compiled but not used ( useThSIce = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled but not used ( useGAD = F ) + pkg/mom_common compiled but not used ( momStepping = F ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) >#repeatPeriod = 2635200.0, +(PID.TID 0000.0001) > exf_iprec = 64, +(PID.TID 0000.0001) > exf_monFreq = 86400000., +(PID.TID 0000.0001) >#useRelativeWind = .TRUE., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempperiod = 0.0, +(PID.TID 0000.0001) > aqhperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindperiod = 0.0, +(PID.TID 0000.0001) > vwindperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipperiod = 0.0, +(PID.TID 0000.0001) > swdownperiod = 0.0, +(PID.TID 0000.0001) > lwdownperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsstperiod = 0.0, +(PID.TID 0000.0001) >#climsstTauRelax = 2592000., +(PID.TID 0000.0001) > climsssperiod = 0.0, +(PID.TID 0000.0001) >#climsssTauRelax = 2592000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#atempfile = 'tair_4x.bin', +(PID.TID 0000.0001) >#aqhfile = 'qa70_4x.bin', +(PID.TID 0000.0001) > uwindfile = 'windx.bin', +(PID.TID 0000.0001) >#vwindfile = 'windy.bin', +(PID.TID 0000.0001) >#precipfile = 'const_00.bin', +(PID.TID 0000.0001) >#lwdownfile = 'dlw_250.bin', +(PID.TID 0000.0001) >#swdownfile = 'dsw_100.bin', +(PID.TID 0000.0001) >#runoffFile = ' ' +(PID.TID 0000.0001) >#climsstfile = 'tocn.bin', +(PID.TID 0000.0001) >#climsssfile = 'socn.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) >#exf_offset_atemp=5; +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># old open64 compiler (4.2.1) cannot skip this namelist to read in the next one; +(PID.TID 0000.0001) ># comment out this namelist (not read). +(PID.TID 0000.0001) >#&EXF_NML_04 +(PID.TID 0000.0001) >#& +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_OBCS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > usePW79thermodynamics=.FALSE., +(PID.TID 0000.0001) > SEAICE_strength = 2.6780e+04, +(PID.TID 0000.0001) > OCEAN_drag = 8.1541e-04, +(PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., +(PID.TID 0000.0001) > LSR_ERROR = 1.E-12, +(PID.TID 0000.0001) > SEAICElinearIterMax= 1500, +(PID.TID 0000.0001) > LSR_mixIniGuess = 1, +(PID.TID 0000.0001) > SEAICEadvScheme = 41, +(PID.TID 0000.0001) > AreaFile = 'const100.bin', +(PID.TID 0000.0001) > HeffFile = 'const+20.bin', +(PID.TID 0000.0001) > HsnowFile = 'const_00.bin', +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_monFreq = 1800., +(PID.TID 0000.0001) > SEAICEuseMCE = .TRUE., +(PID.TID 0000.0001) > SEAICEmcMU = 0.7, +(PID.TID 0000.0001) > SEAICE_tensilFac = 0.05, +(PID.TID 0000.0001) > SEAICE_eccen = 2.0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># This example dumps EXF diagnostics as snapshot after 10 time-steps +(PID.TID 0000.0001) ># Note: EXF air-sea fluxes over Sea-Ice are wrong +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > dumpAtLast = .TRUE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:11,1) = 'EXFtaux ','EXFtauy ','EXFqnet ','EXFempmr', +(PID.TID 0000.0001) > 'EXFhl ','EXFhs ','EXFswnet','EXFlwnet', +(PID.TID 0000.0001) > 'EXFuwind','EXFvwind','EXFatemp', +(PID.TID 0000.0001) ># fileName(1) = 'exfDiag', +(PID.TID 0000.0001) > frequency(1) = 86400., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:4,2) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIarea ', +(PID.TID 0000.0001) ># fileName(2) = 'iceDiag', +(PID.TID 0000.0001) > frequency(2) = 86400., +(PID.TID 0000.0001) > missing_value(2) = -999., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:4,3) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIarea ', +(PID.TID 0000.0001) > fileName(3) = 'snapshot', +(PID.TID 0000.0001) > frequency(3) = -86400., +(PID.TID 0000.0001) > timePhase(3) = 3600., +(PID.TID 0000.0001) > missing_value(3) = -999., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > stat_fields(1:5,1) = 'SIarea ','SIheff ','SIhsnow ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > stat_fName(1) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 7200., +(PID.TID 0000.0001) > stat_phase(1) = 1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: snapshot +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 3600.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SIuice SIvice SIheff SIarea +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: 7200.000000 ; Phase: 1800.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SIarea SIheff SIhsnow SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.9750000000000E+05 +(PID.TID 0000.0001) %MON XC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON XG_max = 3.9500000000000E+05 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.9750000000000E+05 +(PID.TID 0000.0001) %MON XG_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON DXC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 9.7500000000000E+04 +(PID.TID 0000.0001) %MON YC_min = -1.0750000000000E+05 +(PID.TID 0000.0001) %MON YC_mean = -5.0000000000000E+03 +(PID.TID 0000.0001) %MON YC_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON YG_max = 9.5000000000000E+04 +(PID.TID 0000.0001) %MON YG_min = -1.1000000000000E+05 +(PID.TID 0000.0001) %MON YG_mean = -7.5000000000000E+03 +(PID.TID 0000.0001) %MON YG_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON DYC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAW_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAS_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAZ_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_3c.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -1.000000000000000E+01 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 0 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing period is 0. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> windx.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsss relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 8.154100000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.678000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICEmomAdvection = /* advect sea ice momentum */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvHeff = /* advect effective ice thickness */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvArea = /* advect fractional ice area */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSnow = /* advect snow layer together with ice */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvScheme = /* advection scheme for ice */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchArea = /* advection scheme for area */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchHeff = /* advection scheme for thickness */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEadvSchSnow = /* advection scheme for snow */ +(PID.TID 0000.0001) 41 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhArea = /* diffusivity (m^2/s) for area */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhHeff = /* diffusivity (m^2/s) for heff */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdiffKhSnow = /* diffusivity (m^2/s) for snow */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIFF1 = /* parameter used in advect.F [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pkg/seaice thermodynamics is OFF +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) 'const100.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) 'const+20.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) 'const_00.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 223 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 146 SIarea +(PID.TID 0000.0001) space allocated for all diagnostics: 4 levels +(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 +(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 146 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 151 SIhsnow +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 164 SIvice +(PID.TID 0000.0001) space allocated for all stats-diags: 5 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0000000000000001E-01 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 3.000000000000000E-02 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 6.300000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* I = 1 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* I = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.750000000000000E+04, /* I = 18 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* I = 19 */ +(PID.TID 0000.0001) 9.750000000000000E+04, /* I = 20 */ +(PID.TID 0000.0001) 1.025000000000000E+05, /* I = 21 */ +(PID.TID 0000.0001) 1.075000000000000E+05, /* I = 22 */ +(PID.TID 0000.0001) 1.125000000000000E+05, /* I = 23 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.875000000000000E+05, /* I = 38 */ +(PID.TID 0000.0001) 1.925000000000000E+05, /* I = 39 */ +(PID.TID 0000.0001) 1.975000000000000E+05, /* I = 40 */ +(PID.TID 0000.0001) 2.025000000000000E+05, /* I = 41 */ +(PID.TID 0000.0001) 2.075000000000000E+05, /* I = 42 */ +(PID.TID 0000.0001) 2.125000000000000E+05, /* I = 43 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.875000000000000E+05, /* I = 58 */ +(PID.TID 0000.0001) 2.925000000000000E+05, /* I = 59 */ +(PID.TID 0000.0001) 2.975000000000000E+05, /* I = 60 */ +(PID.TID 0000.0001) 3.025000000000000E+05, /* I = 61 */ +(PID.TID 0000.0001) 3.075000000000000E+05, /* I = 62 */ +(PID.TID 0000.0001) 3.125000000000000E+05, /* I = 63 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.875000000000000E+05, /* I = 78 */ +(PID.TID 0000.0001) 3.925000000000000E+05, /* I = 79 */ +(PID.TID 0000.0001) 3.975000000000000E+05 /* I = 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -1.075000000000000E+05, /* J = 1 */ +(PID.TID 0000.0001) -1.025000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) -9.750000000000000E+04, /* J = 3 */ +(PID.TID 0000.0001) -9.250000000000000E+04, /* J = 4 */ +(PID.TID 0000.0001) -8.750000000000000E+04, /* J = 5 */ +(PID.TID 0000.0001) -8.250000000000000E+04, /* J = 6 */ +(PID.TID 0000.0001) -7.750000000000000E+04, /* J = 7 */ +(PID.TID 0000.0001) -7.250000000000000E+04, /* J = 8 */ +(PID.TID 0000.0001) -6.750000000000000E+04, /* J = 9 */ +(PID.TID 0000.0001) -6.250000000000000E+04, /* J = 10 */ +(PID.TID 0000.0001) -5.750000000000000E+04, /* J = 11 */ +(PID.TID 0000.0001) -5.250000000000000E+04, /* J = 12 */ +(PID.TID 0000.0001) -4.750000000000000E+04, /* J = 13 */ +(PID.TID 0000.0001) -4.250000000000000E+04, /* J = 14 */ +(PID.TID 0000.0001) -3.750000000000000E+04, /* J = 15 */ +(PID.TID 0000.0001) -3.250000000000000E+04, /* J = 16 */ +(PID.TID 0000.0001) -2.750000000000000E+04, /* J = 17 */ +(PID.TID 0000.0001) -2.250000000000000E+04, /* J = 18 */ +(PID.TID 0000.0001) -1.750000000000000E+04, /* J = 19 */ +(PID.TID 0000.0001) -1.250000000000000E+04, /* J = 20 */ +(PID.TID 0000.0001) -7.500000000000000E+03, /* J = 21 */ +(PID.TID 0000.0001) -2.500000000000000E+03, /* J = 22 */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* J = 24 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* J = 26 */ +(PID.TID 0000.0001) 2.250000000000000E+04, /* J = 27 */ +(PID.TID 0000.0001) 2.750000000000000E+04, /* J = 28 */ +(PID.TID 0000.0001) 3.250000000000000E+04, /* J = 29 */ +(PID.TID 0000.0001) 3.750000000000000E+04, /* J = 30 */ +(PID.TID 0000.0001) 4.250000000000000E+04, /* J = 31 */ +(PID.TID 0000.0001) 4.750000000000000E+04, /* J = 32 */ +(PID.TID 0000.0001) 5.250000000000000E+04, /* J = 33 */ +(PID.TID 0000.0001) 5.750000000000000E+04, /* J = 34 */ +(PID.TID 0000.0001) 6.250000000000000E+04, /* J = 35 */ +(PID.TID 0000.0001) 6.750000000000000E+04, /* J = 36 */ +(PID.TID 0000.0001) 7.250000000000000E+04, /* J = 37 */ +(PID.TID 0000.0001) 7.750000000000000E+04, /* J = 38 */ +(PID.TID 0000.0001) 8.250000000000000E+04, /* J = 39 */ +(PID.TID 0000.0001) 8.750000000000000E+04, /* J = 40 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* J = 41 */ +(PID.TID 0000.0001) 9.750000000000000E+04 /* J = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 6.950000000000000E+10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: uVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: vVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: eta_3c0.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: snapshot + nFlds, nActive, freq & phase , nLev + 4 | 4 | -86400.000000 3600.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 163 |SIuice | 1 | 2 | 1 | 0 | 0 | + 164 |SIvice | 2 | 1 | 1 | 0 | 0 | + 149 |SIheff | 3 | 0 | 1 | 0 | + 146 |SIarea | 4 | 0 | 1 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 5 | 5 | 7200.000000 1800.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 146 |SIarea | 1 | 0 | 0.00000E+00 | + 149 |SIheff | 2 | 0 | 0.00000E+00 | + 151 |SIhsnow | 3 | 0 | 0.00000E+00 | + 163 |SIuice | 4 | 0 | 0.00000E+00 | + 164 |SIvice | 5 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: windx.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const+20.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const100.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const_00.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4855271423662E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5547625271979E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8609663050809E-19 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6185276903544E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4210904025025E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4694595665363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 8.1797628424127E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2603530929361E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4661197148990E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3392731599312E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2780617104059E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4793000868950E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2450632095700E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0970835295293E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.1836652323282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6555698845343E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4393468746960E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8006686469634E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8006622332191E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4047422448573E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5484032096270E-05 +(PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 +(PID.TID 0000.0001) %MON ke_mean = 5.8130401708830E-02 +(PID.TID 0000.0001) %MON ke_vol = 6.9500000000000E+11 +(PID.TID 0000.0001) %MON vort_r_min = -1.4191202448594E-04 +(PID.TID 0000.0001) %MON vort_r_max = 8.9657385579761E-05 +(PID.TID 0000.0001) %MON vort_a_mean = -6.5586096803907E-22 +(PID.TID 0000.0001) %MON vort_a_sd = 1.5889649807104E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -6.8228760045090E-22 +(PID.TID 0000.0001) %MON vort_p_sd = 3.0669223294758E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4394880171946E-21 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6750406018264E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_sd = 5.5511151231258E-17 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_hflux_max = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 9.6633812063374E-13 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 7.8352778346434E-01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) %MON exf_uwind_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_evap_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_evap_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.33422834E-01 1.20594212E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.44816246E+03 5.48517775E+02 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.07916458E-06 1.16898588E-02 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 492 9.53649350E-13 7.00436566E-09 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.88635183E-01 1.32291811E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.31619580E+02 1.76216777E+01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.86610715E-05 1.00681219E-01 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 526 9.52454478E-13 5.06783899E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 2.3428475900549E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.1838389741252E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 1.5290216752272E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.7656376850973E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 4.9894387880973E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 5.0760145062363E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -7.0033284184995E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.1653004852178E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.3755094625304E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6599446951887E-06 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 9.7314631233382E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9976008328926E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 8.7602957128562E-04 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.5361146993496E-05 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.0299976037485E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.9462926246676E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 2.1905525408980E-04 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 4.3091557179381E-06 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 6.900E+10 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 6.750E+10 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.18334389E-01 9.67984827E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.68458658E+00 1.17388194E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.87022461E-05 1.95678304E-02 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 386 9.64860136E-13 3.06816689E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.61577732E-01 6.13974407E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.64244300E+00 8.83218728E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.31040630E-05 4.37066952E-02 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 404 9.17115342E-13 2.14114749E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.2721826257816E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 6.6476411473569E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.3216306754399E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.1545345401879E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2077508215629E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 5.6130476765115E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -5.8775833224515E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.4962288343064E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 1.7726498650484E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 3.3682117345667E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 8.4497107144178E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9885989132480E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.9150427804919E-03 +(PID.TID 0000.0001) %MON seaice_area_del2 = 8.9155833067058E-05 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.1320408459248E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.6899860591218E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.2537436559708E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2278994234071E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.13839939E-01 7.51889468E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 6.19423497E+00 1.74072572E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.86878489E-06 4.89361053E-03 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 354 9.60729760E-13 1.99441900E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.66254195E-02 5.87861553E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.04533131E+00 2.20472768E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.45822075E-06 2.29221056E-03 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 368 9.36636185E-13 2.25591258E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.4737473297161E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.3715948336446E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5256551617453E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9424290252877E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2497191229406E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 4.2370305869341E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -9.0563990526292E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -5.6782345950385E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.4031272604445E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.6801043571499E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 7.1852600595768E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9791101089128E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.0200058602284E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 1.6627131934811E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.2739370681158E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.4371507260738E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 2.7967605339890E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 4.8101176559239E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 163 SIuice Counter: 1 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 164 SIvice exists + Computing Diagnostic # 164 SIvice Counter: 1 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 163 SIuice exists + Computing Diagnostic # 149 SIheff Counter: 1 Parms: SM M1 + Computing Diagnostic # 146 SIarea Counter: 1 Parms: SM M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 7.00998922E-02 6.88442763E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.35903023E+00 2.01787119E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.97782113E-07 6.11578407E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 404 9.29895050E-13 2.13566662E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.81304810E-02 5.23466926E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.67294082E+00 2.36258527E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.88332755E-07 1.79289696E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 406 9.45826750E-13 1.98185982E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.6593863435227E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.6323333298339E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5665801456427E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8070384439452E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2353679714039E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 5.6967238868126E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0362269294175E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -5.4441388848020E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.0208195619657E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.4207706624495E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 6.0998052970128E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9699519593280E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 1.5601449173610E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 2.3999689605863E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.4478891923404E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.2200993534590E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 4.5086399828865E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 7.9242887758791E-05 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.46353228E-02 4.47721120E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.31046517E+01 3.06809281E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.47518505E-07 5.85263780E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 404 9.12214748E-13 1.73352633E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.90097214E-02 3.77495543E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.40047651E+01 3.37497348E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.92262606E-07 6.65439257E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 398 9.71195346E-13 1.81027098E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.7495870862147E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.5787823869229E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5782531108236E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8981089580198E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2905569464839E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 6.7182030007387E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0898603089002E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -5.0059640089584E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.3470104435674E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 6.4882278248026E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 5.1941210123781E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9609227400845E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 2.0825343640545E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.0373820392882E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.6479771830836E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 1.0390313075028E-01 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 6.2116016263266E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.0935408048774E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.32258982E-02 3.87398385E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.56736861E+01 3.98701726E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.60275835E-07 7.76733103E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 390 9.61883351E-13 1.75331395E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.09778173E-02 3.53605340E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.63856470E+01 4.16084231E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.15467020E-07 6.58164658E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 384 9.22421861E-13 1.66980979E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.7886101955160E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.3875347851156E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5787120260982E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0245408712582E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4061187305634E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.2759015734268E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1123193176651E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.7942370444467E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.5147437107514E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.6733074542509E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 4.4462305586192E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9519862859392E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 2.5829486825397E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 3.5712254868436E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 2.8471289687911E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 8.8958561392957E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 7.8406565301893E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.3563835480212E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.42730181E-02 3.54505692E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.77669506E+01 4.56759759E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.45435751E-07 6.34125094E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 378 9.40435230E-13 1.69168114E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.27741167E-02 3.36355707E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.85173819E+01 4.66436511E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.04909765E-07 4.98021291E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 372 9.45521439E-13 1.69587671E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8098204996585E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.1630029396094E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5759727034377E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.1528565050115E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5432316428608E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.6169974299412E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1243470916017E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.6549211522388E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.6134827094780E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.0683834660600E-05 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 3.8323842035362E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9431174618652E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.0621443336697E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.0015313058794E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.0391784223866E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 7.6698174910704E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 9.3815733273997E-03 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.5770551541034E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.46465939E-02 3.47277003E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.06138931E+01 5.00734740E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.64518333E-07 4.81933474E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 374 9.31844879E-13 1.67561916E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.26498400E-02 3.17892589E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.18526852E+01 5.27434469E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.45035655E-07 3.94548120E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 370 9.19438137E-13 1.64967454E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8246821796459E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 9.6001896576695E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5727550680119E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2689946241473E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6751528922656E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.9139942998590E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1330320439680E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.4686937423982E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.6904066355379E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0714058711359E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 3.3306667130945E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9343062350403E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.5213195660759E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.3328436072314E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.2203763615564E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 6.6683298936166E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.0837658522948E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.7626350506080E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.22592999E-02 3.29520804E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.50101583E+01 5.91594862E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.18579094E-07 3.60637404E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 376 9.18015663E-13 1.64472490E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.00036505E-02 3.18103662E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.64966266E+01 6.07405794E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.06752935E-07 3.34481063E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 372 9.40129918E-13 1.67623392E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8371292450450E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 8.0788578892546E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5698991445520E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.3643428958124E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7850505677346E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.2035594031320E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1416780038669E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.2007107902191E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7631516207156E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2585955732286E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 2.9214232563560E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9255425806874E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 3.9618316141121E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.5780577069657E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.3890140621581E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 5.8520776271933E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.2218634204641E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 1.9250392604563E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.85895960E-02 3.23583277E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.99941085E+01 6.42204780E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 9.56470566E-08 2.84985499E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 378 9.66428326E-13 1.71281696E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.69176101E-02 3.06093543E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.17405511E+01 6.59892571E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.00334951E-07 3.18033936E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 374 9.77752601E-13 1.72525231E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8486004760866E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 7.0524636254737E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5674852862970E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.4370106285223E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8734750137667E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.4961216481234E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2027372573102E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.8755913650372E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8344360250568E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.4554588826617E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 2.5873296479246E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9168206514299E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.3855622228051E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.7574561919144E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.5454800891338E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 5.1863568337411E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.3535152602205E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.0726420215769E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.53398669E-02 2.95878878E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.56387001E+01 6.96713112E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.24302405E-08 2.45188968E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 380 9.75358683E-13 1.71380714E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.39348046E-02 2.87082914E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.74158634E+01 7.10153116E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.14828237E-07 3.12279945E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 376 9.65012792E-13 1.69027644E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 11 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8598094574911E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 6.3454897170443E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5653588183498E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.4934086004702E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.9530577141667E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.8046423671470E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2840959362888E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.5441374097884E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.9017516067701E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.6430778289220E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 2.3139226152981E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.9081318411067E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 4.7944017376670E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 4.8922649480103E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.6916682891938E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 4.6421529760810E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.4796043190887E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.2070781863033E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.22521328E-02 2.94731801E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.11305277E+01 7.43022681E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.29159911E-08 2.18803032E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 382 9.56644486E-13 1.66305312E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.12691163E-02 2.83518814E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.27415530E+01 7.62710789E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.16026926E-07 2.96941280E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 378 9.26106414E-13 1.60325306E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 12 +(PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8710841909712E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.8156895522715E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5633151656476E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.5416853155872E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.0331784326918E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.1049825280160E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3463466396911E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.2331993213507E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.9640530250122E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.8099979872506E-04 +(PID.TID 0000.0001) %MON seaice_area_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_area_min = 2.0896093506467E-01 +(PID.TID 0000.0001) %MON seaice_area_mean = 9.8994703870748E-01 +(PID.TID 0000.0001) %MON seaice_area_sd = 5.1901738622835E-02 +(PID.TID 0000.0001) %MON seaice_area_del2 = 5.0008367458463E-04 +(PID.TID 0000.0001) %MON seaice_heff_max = 3.8290936640704E-01 +(PID.TID 0000.0001) %MON seaice_heff_min = 4.1961739541258E-02 +(PID.TID 0000.0001) %MON seaice_heff_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON seaice_heff_sd = 1.6007522705942E-02 +(PID.TID 0000.0001) %MON seaice_heff_del2 = 2.3271724269672E-04 +(PID.TID 0000.0001) %MON seaice_hsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_hsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 151 SIhsnow vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.070E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.025E+11 Parms: VV M1 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 12 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 43.717024786863476 +(PID.TID 0000.0001) System time: 0.15681000240147114 +(PID.TID 0000.0001) Wall clock time: 43.963443040847778 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 6.0700998641550541E-002 +(PID.TID 0000.0001) System time: 1.5709999948740005E-002 +(PID.TID 0000.0001) Wall clock time: 0.10329890251159668 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 43.656286157667637 +(PID.TID 0000.0001) System time: 0.14108100160956383 +(PID.TID 0000.0001) Wall clock time: 43.860095977783203 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 3.7992000579833984E-002 +(PID.TID 0000.0001) System time: 7.3310006409883499E-003 +(PID.TID 0000.0001) Wall clock time: 5.5355072021484375E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 43.618269525468349 +(PID.TID 0000.0001) System time: 0.13374500162899494 +(PID.TID 0000.0001) Wall clock time: 43.804713964462280 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 43.618186950683594 +(PID.TID 0000.0001) System time: 0.13374300301074982 +(PID.TID 0000.0001) Wall clock time: 43.804626941680908 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 43.618020020425320 +(PID.TID 0000.0001) System time: 0.13374200277030468 +(PID.TID 0000.0001) Wall clock time: 43.804461002349854 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.8827304244041443E-002 +(PID.TID 0000.0001) System time: 2.9988586902618408E-006 +(PID.TID 0000.0001) Wall clock time: 1.8836259841918945E-002 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1314528584480286E-002 +(PID.TID 0000.0001) System time: 2.0130034536123276E-003 +(PID.TID 0000.0001) Wall clock time: 7.3319435119628906E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 7.0989646017551422E-002 +(PID.TID 0000.0001) System time: 2.0080022513866425E-003 +(PID.TID 0000.0001) Wall clock time: 7.3010206222534180E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 7.8335404396057129E-005 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 8.1777572631835938E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.7381730079650879E-005 +(PID.TID 0000.0001) System time: 1.9986182451248169E-006 +(PID.TID 0000.0001) Wall clock time: 7.7247619628906250E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 43.464100077748299 +(PID.TID 0000.0001) System time: 0.12869499810039997 +(PID.TID 0000.0001) Wall clock time: 43.618916273117065 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 43.451928205788136 +(PID.TID 0000.0001) System time: 0.12868399731814861 +(PID.TID 0000.0001) Wall clock time: 43.606749534606934 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 43.349842026829720 +(PID.TID 0000.0001) System time: 0.12547400407493114 +(PID.TID 0000.0001) Wall clock time: 43.501269102096558 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9715766906738281E-003 +(PID.TID 0000.0001) System time: 5.9939920902252197E-006 +(PID.TID 0000.0001) Wall clock time: 3.9949417114257812E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.3668746948242188E-003 +(PID.TID 0000.0001) System time: 3.0025839805603027E-006 +(PID.TID 0000.0001) Wall clock time: 4.3818950653076172E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.5592269897460938E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.4877014160156250E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.7962875366210938E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.5115432739257812E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.0029277801513672E-002 +(PID.TID 0000.0001) System time: 3.0070021748542786E-003 +(PID.TID 0000.0001) Wall clock time: 7.4559450149536133E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.0209293365478516E-003 +(PID.TID 0000.0001) System time: 7.0035457611083984E-006 +(PID.TID 0000.0001) Wall clock time: 9.0682506561279297E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 47512 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 47512 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output.dyn_paralens.txt b/verification/offline_exf_seaice/results/output.dyn_paralens.txt new file mode 100644 index 0000000000..9b5f7508c2 --- /dev/null +++ b/verification/offline_exf_seaice/results/output.dyn_paralens.txt @@ -0,0 +1,3435 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67u +(PID.TID 0000.0001) // Build user: dringeis +(PID.TID 0000.0001) // Build host: ollie0 +(PID.TID 0000.0001) // Build date: Thu Feb 4 20:39:09 CET 2021 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 40 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 21 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 1 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 80 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 42 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= -1.62, +(PID.TID 0000.0001) > sRef= 30., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) >#bottomDragLinear=1.E-3, +(PID.TID 0000.0001) > bottomDragQuadratic=5.E-3, +(PID.TID 0000.0001) > viscAr=3.E-2, +(PID.TID 0000.0001) > viscAh=3.E+2, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986., +(PID.TID 0000.0001) > rhoNil = 1030., +(PID.TID 0000.0001) > rhoConstFresh = 1000., +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta= 0., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > saltStepping=.FALSE., +(PID.TID 0000.0001) > tempStepping=.FALSE., +(PID.TID 0000.0001) >#tempAdvection=.FALSE., +(PID.TID 0000.0001) > momStepping=.FALSE., +(PID.TID 0000.0001) > f0=0.e-4, +(PID.TID 0000.0001) > beta=0., +(PID.TID 0000.0001) > useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) >#exactConserv=.TRUE., +(PID.TID 0000.0001) > convertFW2Salt=-1, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) >#debugLevel=4, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) >#endTime=432000., +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=3600000., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > monitorFreq=864000., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > nTimeSteps=12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delX=80*5.E3, +(PID.TID 0000.0001) > delY=42*5.E3, +(PID.TID 0000.0001) > ygOrigin=-110.E3, +(PID.TID 0000.0001) >#delR= 20., 30., 50., +(PID.TID 0000.0001) > delR= 10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy_3c.bin', +(PID.TID 0000.0001) > uVelInitFile = 'uVel_3c0.bin', +(PID.TID 0000.0001) > vVelInitFile = 'vVel_3c0.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'eta_3c0.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'uVel_3c1.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'vVel_3c1.bin', +(PID.TID 0000.0001) >#pSurfInitFile = 'eta_3c1.bin', +(PID.TID 0000.0001) >#bathyFile = 'channel.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'const+40.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'const-10.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) > useThSIce = .TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/exf compiled and used ( useEXF = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/thsice compiled and used ( useThSIce = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled but not used ( useGAD = F ) + pkg/mom_common compiled but not used ( momStepping = F ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) >#repeatPeriod = 2635200.0, +(PID.TID 0000.0001) > exf_iprec = 64, +(PID.TID 0000.0001) > exf_monFreq = 86400000., +(PID.TID 0000.0001) >#useRelativeWind = .TRUE., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempperiod = 0.0, +(PID.TID 0000.0001) > aqhperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindperiod = 0.0, +(PID.TID 0000.0001) > vwindperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipperiod = 0.0, +(PID.TID 0000.0001) > swdownperiod = 0.0, +(PID.TID 0000.0001) > lwdownperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsstperiod = 0.0, +(PID.TID 0000.0001) >#climsstTauRelax = 2592000., +(PID.TID 0000.0001) > climsssperiod = 0.0, +(PID.TID 0000.0001) >#climsssTauRelax = 2592000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#atempfile = 'tair_4x.bin', +(PID.TID 0000.0001) >#aqhfile = 'qa70_4x.bin', +(PID.TID 0000.0001) > uwindfile = 'windx.bin', +(PID.TID 0000.0001) >#vwindfile = 'windy.bin', +(PID.TID 0000.0001) >#precipfile = 'const_00.bin', +(PID.TID 0000.0001) >#lwdownfile = 'dlw_250.bin', +(PID.TID 0000.0001) >#swdownfile = 'dsw_100.bin', +(PID.TID 0000.0001) >#runoffFile = ' ' +(PID.TID 0000.0001) >#climsstfile = 'tocn.bin', +(PID.TID 0000.0001) >#climsssfile = 'socn.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) >#exf_offset_atemp=5; +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># old open64 compiler (4.2.1) cannot skip this namelist to read in the next one; +(PID.TID 0000.0001) ># comment out this namelist (not read). +(PID.TID 0000.0001) >#&EXF_NML_04 +(PID.TID 0000.0001) >#& +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_OBCS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > usePW79thermodynamics=.FALSE., +(PID.TID 0000.0001) > SEAICEpressReplFac = 0., +(PID.TID 0000.0001) > SEAICEusePL = .TRUE., +(PID.TID 0000.0001) > SEAICE_tensilFac = 0.05, +(PID.TID 0000.0001) > SEAICE_no_Slip = .TRUE., +(PID.TID 0000.0001) ># Krylov solver setinng +(PID.TID 0000.0001) > SEAICEuseKrylov = .TRUE., +(PID.TID 0000.0001) > SEAICEpreconLinIter = 10, +(PID.TID 0000.0001) > SEAICEnonLinIterMax = 2, +(PID.TID 0000.0001) > SEAICElinearIterMax = 50, +(PID.TID 0000.0001) ># this is a hack, because no proper tolerance has been implemented yet +(PID.TID 0000.0001) > JFNKgamma_lin_max = 1.e-4, +(PID.TID 0000.0001) ># end of Krylov solver parameters +(PID.TID 0000.0001) >#- to use seaice-advection from pkg/seaice, uncomment following 4 lines: +(PID.TID 0000.0001) >#SEAICEadvScheme = 77, # this is the new default +(PID.TID 0000.0001) >#AreaFile = 'const100.bin', +(PID.TID 0000.0001) >#HeffFile = 'const+20.bin', +(PID.TID 0000.0001) >#HsnowFile = 'const_00.bin', +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_monFreq = 1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) THSICE_READPARMS: opening data.ice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &THSICE_CONST +(PID.TID 0000.0001) >#- with fractional ice: +(PID.TID 0000.0001) > iceMaskMin = 0.001, +(PID.TID 0000.0001) > hiMax = 10., +(PID.TID 0000.0001) > hsMax = 10., +(PID.TID 0000.0001) > dhSnowLin = 0.1, +(PID.TID 0000.0001) > fracEnFreez= 0.4, +(PID.TID 0000.0001) > hNewIceMax = 1., +(PID.TID 0000.0001) > albIceMax = 0.6, +(PID.TID 0000.0001) > albIceMin = 0.6, +(PID.TID 0000.0001) >#albColdSnow= 0.85, +(PID.TID 0000.0001) >#albWarmSnow= 0.60, +(PID.TID 0000.0001) >#tempSnowAlb= -5., +(PID.TID 0000.0001) >#albOldSnow = 0.60, +(PID.TID 0000.0001) >#hNewSnowAge= 2.e-3, +(PID.TID 0000.0001) >#snowAgTime = 4320000., +(PID.TID 0000.0001) >#hAlbIce = 0.44, +(PID.TID 0000.0001) >#hAlbSnow = 0.15, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &THSICE_PARM01 +(PID.TID 0000.0001) >#StartIceModel=1, +(PID.TID 0000.0001) > thSIce_skipThermo=.TRUE., +(PID.TID 0000.0001) > thSIceAdvScheme=77, +(PID.TID 0000.0001) >#thSIce_diffK =800., +(PID.TID 0000.0001) > stressReduction=0., +(PID.TID 0000.0001) > thSIceFract_InitFile='const100.bin', +(PID.TID 0000.0001) > thSIceThick_InitFile='const+20.bin', +(PID.TID 0000.0001) >#thSIce_diagFreq=2592000., +(PID.TID 0000.0001) > thSIce_monFreq =21600., +(PID.TID 0000.0001) > thSIce_monFreq =1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_CONST +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_PARM01 + ThSI: rhos = 3.3000000000000E+02 + ThSI: rhoi = 9.0000000000000E+02 + ThSI: rhosw = 1.0300000000000E+03 + ThSI: rhofw = 1.0000000000000E+03 + ThSI: floodFac = 3.9393939393939E-01 + ThSI: cpIce = 2.1060000000000E+03 + ThSI: cpWater = 3.9860000000000E+03 + ThSI: kIce = 2.0300000000000E+00 + ThSI: kSnow = 3.0000000000000E-01 + ThSI: bMeltCoef = 6.0000000000000E-03 + ThSI: Lfresh = 3.3400000000000E+05 + ThSI: qsnow = 3.3400000000000E+05 + ThSI: albColdSnow = 8.5000000000000E-01 + ThSI: albWarmSnow = 7.0000000000000E-01 + ThSI: tempSnowAlb = -1.0000000000000E+01 + ThSI: albOldSnow = 5.5000000000000E-01 + ThSI: hNewSnowAge = 2.0000000000000E-03 + ThSI: snowAgTime = 4.3200000000000E+06 + ThSI: albIceMax = 6.0000000000000E-01 + ThSI: albIceMin = 6.0000000000000E-01 + ThSI: hAlbIce = 5.0000000000000E-01 + ThSI: hAlbSnow = 3.0000000000000E-01 + ThSI: i0swFrac = 3.0000000000000E-01 + ThSI: ksolar = 1.5000000000000E+00 + ThSI: dhSnowLin = 1.0000000000000E-01 + ThSI: saltIce = 4.0000000000000E+00 + ThSI: S_winton = 1.0000000000000E+00 + ThSI: mu_Tf = 5.4000000000000E-02 + ThSI: Tf0kel = 2.7315000000000E+02 + ThSI: Tmlt1 = -5.4000000000000E-02 + ThSI: Terrmax = 5.0000000000000E-01 + ThSI: nitMaxTsf = 20 + ThSI: hIceMin = 1.0000000000000E-02 + ThSI: hiMax = 1.0000000000000E+01 + ThSI: hsMax = 1.0000000000000E+01 + ThSI: iceMaskMax = 1.0000000000000E+00 + ThSI: iceMaskMin = 1.0000000000000E-03 + ThSI: fracEnMelt = 4.0000000000000E-01 + ThSI: fracEnFreez = 4.0000000000000E-01 + ThSI: hThinIce = 2.0000000000000E-01 + ThSI: hThickIce = 2.5000000000000E+00 + ThSI: hNewIceMax = 1.0000000000000E+00 + ThSI: stressReduction = 0.0000000000000E+00 + ThSI: thSIce_skipThermo = T + ThSI: thSIceAdvScheme = 77 + ThSI: thSIceBalanceAtmFW= 0 + ThSI: thSIce_diffK = 0.0000000000000E+00 + ThSI: thSIce_deltaT = 1.8000000000000E+03 + ThSI: ocean_deltaT = 1.8000000000000E+03 + ThSI: stepFwd_oceMxL = F + ThSI: tauRelax_MxL = 0.0000000000000E+00 + ThSI: tauRelax_MxL_salt = 0.0000000000000E+00 + ThSI: hMxL_default = 5.0000000000000E+01 + ThSI: sMxL_default = 3.5000000000000E+01 + ThSI: vMxL_default = 5.0000000000000E-02 + ThSI: thSIce_taveFreq = 0.0000000000000E+00 + ThSI: thSIce_diagFreq = 4.3200000000000E+05 + ThSI: thSIce_monFreq = 1.8000000000000E+03 + ThSI: startIceModel = 0 +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># This example dumps EXF diagnostics as snapshot after 10 time-steps +(PID.TID 0000.0001) ># Note: EXF air-sea fluxes over Sea-Ice are wrong +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > dumpAtLast = .TRUE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:11,1) = 'EXFtaux ','EXFtauy ','EXFqnet ','EXFempmr', +(PID.TID 0000.0001) > 'EXFhl ','EXFhs ','EXFswnet','EXFlwnet', +(PID.TID 0000.0001) > 'EXFuwind','EXFvwind','EXFatemp', +(PID.TID 0000.0001) ># fileName(1) = 'exfDiag', +(PID.TID 0000.0001) > frequency(1) = 86400., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,2) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIsig1 ','SIsig2 ', +(PID.TID 0000.0001) ># fileName(2) = 'iceDiag', +(PID.TID 0000.0001) > frequency(2) = -1800., +(PID.TID 0000.0001) > timePhase(2) = 1800., +(PID.TID 0000.0001) > missing_value(2) = -999., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,3) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > fileName(3) = 'snapshot', +(PID.TID 0000.0001) > frequency(3) = -86400., +(PID.TID 0000.0001) > timePhase(3) = 3600., +(PID.TID 0000.0001) > missing_value(3) = -999., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'SI_Fract','SI_Thick','SI_SnowH', +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'SIarea ','SIheff ','SIhsnow ', +(PID.TID 0000.0001) > stat_fields(1:6,1) = 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > 'SIarea ','SIheff ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > stat_fName(1) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 7200., +(PID.TID 0000.0001) > stat_phase(1) = 1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: snapshot +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 3600.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SIuice SIvice SIheff SI_Fract SI_Thick +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: 7200.000000 ; Phase: 1800.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick SIarea SIheff SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.9750000000000E+05 +(PID.TID 0000.0001) %MON XC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON XG_max = 3.9500000000000E+05 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.9750000000000E+05 +(PID.TID 0000.0001) %MON XG_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON DXC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 9.7500000000000E+04 +(PID.TID 0000.0001) %MON YC_min = -1.0750000000000E+05 +(PID.TID 0000.0001) %MON YC_mean = -5.0000000000000E+03 +(PID.TID 0000.0001) %MON YC_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON YG_max = 9.5000000000000E+04 +(PID.TID 0000.0001) %MON YG_min = -1.1000000000000E+05 +(PID.TID 0000.0001) %MON YG_mean = -7.5000000000000E+03 +(PID.TID 0000.0001) %MON YG_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON DYC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAW_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAS_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAZ_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_3c.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -1.000000000000000E+01 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 0 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing period is 0. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> windx.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsss relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 1.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.750000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 50 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpreconLinIter = /* number of linear preconditioner steps */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpreconNL_Iter = /* number of non-linear preconditioner steps */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseIMEX = /* IMEX scheme with JFNK-solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) ==> advection diffusion done in pkg ThSIce +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pkg/seaice thermodynamics is OFF +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 256 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 224 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 225 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set +(PID.TID 0000.0001) space allocated for all diagnostics: 5 levels +(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 +(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 224 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 225 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 146 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 164 SIvice +(PID.TID 0000.0001) space allocated for all stats-diags: 6 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0000000000000001E-01 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 3.000000000000000E-02 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 6.300000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* I = 1 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* I = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.750000000000000E+04, /* I = 18 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* I = 19 */ +(PID.TID 0000.0001) 9.750000000000000E+04, /* I = 20 */ +(PID.TID 0000.0001) 1.025000000000000E+05, /* I = 21 */ +(PID.TID 0000.0001) 1.075000000000000E+05, /* I = 22 */ +(PID.TID 0000.0001) 1.125000000000000E+05, /* I = 23 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.875000000000000E+05, /* I = 38 */ +(PID.TID 0000.0001) 1.925000000000000E+05, /* I = 39 */ +(PID.TID 0000.0001) 1.975000000000000E+05, /* I = 40 */ +(PID.TID 0000.0001) 2.025000000000000E+05, /* I = 41 */ +(PID.TID 0000.0001) 2.075000000000000E+05, /* I = 42 */ +(PID.TID 0000.0001) 2.125000000000000E+05, /* I = 43 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.875000000000000E+05, /* I = 58 */ +(PID.TID 0000.0001) 2.925000000000000E+05, /* I = 59 */ +(PID.TID 0000.0001) 2.975000000000000E+05, /* I = 60 */ +(PID.TID 0000.0001) 3.025000000000000E+05, /* I = 61 */ +(PID.TID 0000.0001) 3.075000000000000E+05, /* I = 62 */ +(PID.TID 0000.0001) 3.125000000000000E+05, /* I = 63 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.875000000000000E+05, /* I = 78 */ +(PID.TID 0000.0001) 3.925000000000000E+05, /* I = 79 */ +(PID.TID 0000.0001) 3.975000000000000E+05 /* I = 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -1.075000000000000E+05, /* J = 1 */ +(PID.TID 0000.0001) -1.025000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) -9.750000000000000E+04, /* J = 3 */ +(PID.TID 0000.0001) -9.250000000000000E+04, /* J = 4 */ +(PID.TID 0000.0001) -8.750000000000000E+04, /* J = 5 */ +(PID.TID 0000.0001) -8.250000000000000E+04, /* J = 6 */ +(PID.TID 0000.0001) -7.750000000000000E+04, /* J = 7 */ +(PID.TID 0000.0001) -7.250000000000000E+04, /* J = 8 */ +(PID.TID 0000.0001) -6.750000000000000E+04, /* J = 9 */ +(PID.TID 0000.0001) -6.250000000000000E+04, /* J = 10 */ +(PID.TID 0000.0001) -5.750000000000000E+04, /* J = 11 */ +(PID.TID 0000.0001) -5.250000000000000E+04, /* J = 12 */ +(PID.TID 0000.0001) -4.750000000000000E+04, /* J = 13 */ +(PID.TID 0000.0001) -4.250000000000000E+04, /* J = 14 */ +(PID.TID 0000.0001) -3.750000000000000E+04, /* J = 15 */ +(PID.TID 0000.0001) -3.250000000000000E+04, /* J = 16 */ +(PID.TID 0000.0001) -2.750000000000000E+04, /* J = 17 */ +(PID.TID 0000.0001) -2.250000000000000E+04, /* J = 18 */ +(PID.TID 0000.0001) -1.750000000000000E+04, /* J = 19 */ +(PID.TID 0000.0001) -1.250000000000000E+04, /* J = 20 */ +(PID.TID 0000.0001) -7.500000000000000E+03, /* J = 21 */ +(PID.TID 0000.0001) -2.500000000000000E+03, /* J = 22 */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* J = 24 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* J = 26 */ +(PID.TID 0000.0001) 2.250000000000000E+04, /* J = 27 */ +(PID.TID 0000.0001) 2.750000000000000E+04, /* J = 28 */ +(PID.TID 0000.0001) 3.250000000000000E+04, /* J = 29 */ +(PID.TID 0000.0001) 3.750000000000000E+04, /* J = 30 */ +(PID.TID 0000.0001) 4.250000000000000E+04, /* J = 31 */ +(PID.TID 0000.0001) 4.750000000000000E+04, /* J = 32 */ +(PID.TID 0000.0001) 5.250000000000000E+04, /* J = 33 */ +(PID.TID 0000.0001) 5.750000000000000E+04, /* J = 34 */ +(PID.TID 0000.0001) 6.250000000000000E+04, /* J = 35 */ +(PID.TID 0000.0001) 6.750000000000000E+04, /* J = 36 */ +(PID.TID 0000.0001) 7.250000000000000E+04, /* J = 37 */ +(PID.TID 0000.0001) 7.750000000000000E+04, /* J = 38 */ +(PID.TID 0000.0001) 8.250000000000000E+04, /* J = 39 */ +(PID.TID 0000.0001) 8.750000000000000E+04, /* J = 40 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* J = 41 */ +(PID.TID 0000.0001) 9.750000000000000E+04 /* J = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 6.950000000000000E+10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) THSICE_CHECK: #define THSICE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: uVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: vVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: eta_3c0.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: snapshot + nFlds, nActive, freq & phase , nLev + 5 | 5 | -86400.000000 3600.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 163 |SIuice | 1 | 2 | 1 | 0 | 0 | + 164 |SIvice | 2 | 1 | 1 | 0 | 0 | + 149 |SIheff | 3 | 0 | 1 | 0 | + 224 |SI_Fract| 4 | 0 | 1 | 0 | + 225 |SI_Thick| 5 | 4 | 1 | 0 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 6 | 6 | 7200.000000 1800.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 224 |SI_Fract| 1 | 0 | 0.00000E+00 | + 225 |SI_Thick| 2 | 1 | 0.00000E+00 | 0.00000E+00 | + 146 |SIarea | 3 | 0 | 0.00000E+00 | + 149 |SIheff | 4 | 0 | 0.00000E+00 | + 163 |SIuice | 5 | 0 | 0.00000E+00 | + 164 |SIvice | 6 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: windx.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const100.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const+20.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4855271423662E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5547625271979E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8609663050809E-19 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6185276903544E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4210904025025E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4694595665363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 8.1797628424127E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2603530929361E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4661197148990E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3392731599312E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2780617104059E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4793000868950E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2450632095700E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0970835295293E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.1836652323282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6555698845343E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4393468746960E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8006686469634E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8006622332191E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4047422448573E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5484032096270E-05 +(PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 +(PID.TID 0000.0001) %MON ke_mean = 5.8130401708830E-02 +(PID.TID 0000.0001) %MON ke_vol = 6.9500000000000E+11 +(PID.TID 0000.0001) %MON vort_r_min = -1.4191202448594E-04 +(PID.TID 0000.0001) %MON vort_r_max = 8.9657385579761E-05 +(PID.TID 0000.0001) %MON vort_a_mean = -6.5586096803907E-22 +(PID.TID 0000.0001) %MON vort_a_sd = 1.5889649807104E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -6.8228760045090E-22 +(PID.TID 0000.0001) %MON vort_p_sd = 3.0669223294758E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4394880171946E-21 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6750406018264E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9500000000000E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9500000000000E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_sd = 5.5511151231258E-17 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_hflux_max = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 9.6633812063374E-13 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 7.8352778346434E-01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) %MON exf_uwind_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_evap_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_evap_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 1 0.10000E-03 0.84210E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 1, Nb. of FGMRES iterations = 15 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 2 0.10000E-03 0.82335E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 2, Nb. of FGMRES iterations = 24 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 39 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 1 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 39 in timestep 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 2.8942783495949E-02 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.7981293532981E-04 +(PID.TID 0000.0001) %MON seaice_uice_mean = 1.7351955440380E-02 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6157444930932E-03 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1155583507056E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 5.9480532410287E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -5.9188797239474E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -8.1690287904433E-05 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.4441102257286E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 3.6418576573863E-06 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9497624046845E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9498265563728E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9999358483118E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0000683750901E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0001230299678E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0000280688413E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0015106780839E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0008192667952E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 6.950E+10 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 6.950E+10 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 6.900E+10 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 6.750E+10 Parms: VV M1 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 3 0.10000E-03 0.75241E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 3, Nb. of FGMRES iterations = 24 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 4 0.10000E-03 0.30229E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 4, Nb. of FGMRES iterations = 19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 43 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 2 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 43 in timestep 2 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 4.7106111513846E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 4.2720253335894E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 3.2629177651780E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.0653097287808E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.8506854007791E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.9066934089556E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -8.3426132965430E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0143274946867E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.9438438580999E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.5949392560098E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9453459893825E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9461566457726E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9991893436099E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0013401810722E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0025777009945E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0004285144243E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0490570977551E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0143190601822E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 5 0.10000E-03 0.13291E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 5, Nb. of FGMRES iterations = 24 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 6 0.10000E-03 0.10099E+00 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 6, Nb. of FGMRES iterations = 19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 3 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 43 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 3 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 43 in timestep 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.9074709062190E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.4840053250288E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.3275328041719E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.0402942891612E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 4.6501473280721E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.2285771494322E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1154472929754E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -7.4871210869250E-04 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.3941373303572E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 6.7546638935893E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9389858418653E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9408446043698E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9981412374955E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0031745728802E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0061437800417E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0009905637766E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1498787610929E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0283934412067E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 163 SIuice Counter: 1 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 164 SIvice exists + Computing Diagnostic # 164 SIvice Counter: 1 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 163 SIuice exists + Computing Diagnostic # 149 SIheff Counter: 1 Parms: SM M1 + Computing Diagnostic # 224 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 225 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 224 SI_Fract +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 7 0.10000E-03 0.54195E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 7, Nb. of FGMRES iterations = 16 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 8 0.10000E-03 0.40413E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 8, Nb. of FGMRES iterations = 14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 4 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 30 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 4 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 30 in timestep 4 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8633557295460E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.6514808765804E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4383091811626E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 9.3323662936561E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.3808855299878E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.2723036916942E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.9411372079781E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9017598154670E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.6818183820718E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0620682819654E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9328672953945E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9356594161146E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9972078792799E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0049424585458E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0097284450240E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0014274984301E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.2695599014020E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0390989998790E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 9 0.10000E-03 0.30625E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 9, Nb. of FGMRES iterations = 15 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 10 0.10000E-03 0.23237E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 10, Nb. of FGMRES iterations = 14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 5 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 29 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 5 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 29 in timestep 5 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8949218837663E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 3.6674245844111E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4615776340119E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.8754165959501E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.5350353373752E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.3055093516323E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1111651069528E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.2715974770915E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.8352158351849E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0603246983744E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9268499794954E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9305621291775E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9962878503179E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0066841408643E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0132811931087E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0018463833765E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.3944002795404E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0470582858068E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.777E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.777E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 11 0.10000E-03 0.20306E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 11, Nb. of FGMRES iterations = 19 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 12 0.10000E-03 0.18598E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 12, Nb. of FGMRES iterations = 16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 6 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 35 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 6 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 35 in timestep 6 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0376523080981E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 4.5134250721696E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4714796556680E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.7024540745450E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.5493720602506E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.3372669155001E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1573086667817E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4520666833751E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.9500950841595E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0182268996674E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9209149704239E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9255319636818E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9953830067421E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0084049665977E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0168102268644E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0022503983044E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.5184968646588E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0533815728856E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 13 0.10000E-03 0.16401E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 13, Nb. of FGMRES iterations = 22 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 14 0.10000E-03 0.19211E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 14, Nb. of FGMRES iterations = 17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 7 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 39 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 7 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 39 in timestep 7 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1759942566533E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.2164994489689E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4759969500023E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.6585317332238E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.5455342383603E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.3659796482058E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1707678059897E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4878468043476E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.0327917213866E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0154413951274E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9150578862312E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9205626104727E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9944952757584E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0101060943650E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0203177639804E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0026398643633E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.6394367808824E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0583098683352E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 15 0.10000E-03 0.16063E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 15, Nb. of FGMRES iterations = 25 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 16 0.10000E-03 0.17234E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 16, Nb. of FGMRES iterations = 18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 8 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 43 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 8 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 43 in timestep 8 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.3103233680550E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.5637827685173E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4783579177360E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.6653171186672E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.5342021572740E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.3910047770994E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1624175651054E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.4048401266177E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.0868485491455E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0246826770842E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9092692046818E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9156439723839E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9936252322979E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0117901891247E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0238074375995E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0030167023696E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.7560193034190E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0619953974475E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 17 0.10000E-03 0.17761E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 17, Nb. of FGMRES iterations = 25 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 18 0.10000E-03 0.23126E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 18, Nb. of FGMRES iterations = 16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 9 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 41 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 9 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 41 in timestep 9 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.4525092795605E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.4960568421213E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4790666419946E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.7008124263459E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.5168956765682E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4134420799580E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1439481507170E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.3113027443507E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1315626747715E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0441679541273E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9035424689036E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9107780351711E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9927644337325E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0134590411533E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0272825643939E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0033815100380E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.8671322212103E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0647643167609E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.767E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.767E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 19 0.10000E-03 0.20029E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 19, Nb. of FGMRES iterations = 25 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 20 0.10000E-03 0.21460E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 20, Nb. of FGMRES iterations = 16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 10 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 41 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 10 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 41 in timestep 10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5645734351547E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.3463498871213E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4797332542636E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.7438647129999E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.4964086799772E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4305375567556E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1250557623588E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.1809302317722E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1636652713101E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0740705848076E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8978658426285E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9059516720468E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9919141705817E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0151160253217E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0307476356121E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0037368467825E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.9725320909114E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0677886063055E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 21 0.10000E-03 0.20519E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 21, Nb. of FGMRES iterations = 25 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 22 0.10000E-03 0.18403E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 22, Nb. of FGMRES iterations = 19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 11 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 44 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 11 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 44 in timestep 11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 11 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.6382974024131E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 5.1549811312214E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4794946913441E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.7927386308469E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.4719690467034E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4455416570228E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.1091869676465E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0560089483003E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1889757409726E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1107597100866E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8922352521030E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9011570222268E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9910782298761E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0167622682001E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0342041175661E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0040836032243E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.0719289690969E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0709792952230E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 1 23 0.10000E-03 0.19622E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 1 / 23, Nb. of FGMRES iterations = 25 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total, KRYLOVgamma_lin, initial norm = 2 24 0.10000E-03 0.17387E-01 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Picard iterate / total = 2 / 24, Nb. of FGMRES iterations = 20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %KRYLOV_MON: time step = 12 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of time steps = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard steps = 2 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov steps = 45 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Picard failures = 1 +(PID.TID 0000.0001) %KRYLOV_MON: Nb. of Krylov failures = 0 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End KRYLOV statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Solver did not converge in timestep 12 +(PID.TID 0000.0001) S/R SEAICE_KRYLOV: Total number FGMRES iterations = 45 in timestep 12 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 12 +(PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.6805960909169E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 4.9453137201848E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.4788854828012E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.8457104720673E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 5.4437368011967E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4584941979460E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.0940667155467E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9558320084709E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.2116834943860E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1441271994336E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8866464347771E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8963910616090E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9902553731681E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0183989597326E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0376531938791E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0044229640970E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.1652736976580E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0767247839481E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.085E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.069E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.070E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.025E+11 Parms: VV M1 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 12 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 27.922668892191723 +(PID.TID 0000.0001) System time: 3.2488999422639608E-002 +(PID.TID 0000.0001) Wall clock time: 28.024405002593994 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.2736998749896884E-002 +(PID.TID 0000.0001) System time: 5.4460000246763229E-003 +(PID.TID 0000.0001) Wall clock time: 6.2398195266723633E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 27.889906447380781 +(PID.TID 0000.0001) System time: 2.7030999772250652E-002 +(PID.TID 0000.0001) Wall clock time: 27.961977958679199 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 3.9684001356363297E-002 +(PID.TID 0000.0001) System time: 6.4970003440976143E-003 +(PID.TID 0000.0001) Wall clock time: 6.0071945190429688E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 27.850185282528400 +(PID.TID 0000.0001) System time: 2.0529000088572502E-002 +(PID.TID 0000.0001) Wall clock time: 27.901866912841797 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 27.850097037851810 +(PID.TID 0000.0001) System time: 2.0526999607682228E-002 +(PID.TID 0000.0001) Wall clock time: 27.901780128479004 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 27.849952712655067 +(PID.TID 0000.0001) System time: 2.0522998645901680E-002 +(PID.TID 0000.0001) Wall clock time: 27.901633024215698 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2357828915119171E-002 +(PID.TID 0000.0001) System time: 1.0002404451370239E-006 +(PID.TID 0000.0001) Wall clock time: 2.2368669509887695E-002 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.5210906565189362E-002 +(PID.TID 0000.0001) System time: 2.0010005682706833E-003 +(PID.TID 0000.0001) Wall clock time: 7.7210664749145508E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 7.4888072907924652E-002 +(PID.TID 0000.0001) System time: 2.0000003278255463E-003 +(PID.TID 0000.0001) Wall clock time: 7.6894998550415039E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 8.1613659858703613E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.1777572631835938E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.8223645687103271E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.7486038208007812E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 27.656671844422817 +(PID.TID 0000.0001) System time: 9.4320010393857956E-003 +(PID.TID 0000.0001) Wall clock time: 27.665594339370728 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.8715918064117432E-002 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 1.8723964691162109E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 27.628066763281822 +(PID.TID 0000.0001) System time: 8.5209999233484268E-003 +(PID.TID 0000.0001) Wall clock time: 27.636077880859375 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 27.513786859810352 +(PID.TID 0000.0001) System time: 8.5179992020130157E-003 +(PID.TID 0000.0001) Wall clock time: 27.521802663803101 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.4272670745849609E-003 +(PID.TID 0000.0001) System time: 7.8000128269195557E-005 +(PID.TID 0000.0001) Wall clock time: 3.5111904144287109E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.8976669311523438E-003 +(PID.TID 0000.0001) System time: 2.9969960451126099E-006 +(PID.TID 0000.0001) Wall clock time: 3.9067268371582031E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.2479248046875000E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.2717666625976562E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.5578689575195312E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.0571899414062500E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.7635288238525391E-002 +(PID.TID 0000.0001) System time: 7.9939998686313629E-003 +(PID.TID 0000.0001) Wall clock time: 0.10792064666748047 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.4373226165771484E-003 +(PID.TID 0000.0001) System time: 1.0010004043579102E-003 +(PID.TID 0000.0001) Wall clock time: 1.9826173782348633E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 14208 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 14208 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output.dyn_teardrop.txt b/verification/offline_exf_seaice/results/output.dyn_teardrop.txt new file mode 100644 index 0000000000..235aedf5b3 --- /dev/null +++ b/verification/offline_exf_seaice/results/output.dyn_teardrop.txt @@ -0,0 +1,3319 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67u +(PID.TID 0000.0001) // Build user: dringeis +(PID.TID 0000.0001) // Build host: ollie0 +(PID.TID 0000.0001) // Build date: Thu Feb 4 20:39:09 CET 2021 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 40 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 21 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 1 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 80 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 42 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= -1.62, +(PID.TID 0000.0001) > sRef= 30., +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) >#bottomDragLinear=1.E-3, +(PID.TID 0000.0001) > bottomDragQuadratic=5.E-3, +(PID.TID 0000.0001) > viscAr=3.E-2, +(PID.TID 0000.0001) > viscAh=3.E+2, +(PID.TID 0000.0001) > HeatCapacity_Cp = 3986., +(PID.TID 0000.0001) > rhoNil = 1030., +(PID.TID 0000.0001) > rhoConstFresh = 1000., +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta= 0., +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > saltStepping=.FALSE., +(PID.TID 0000.0001) > tempStepping=.FALSE., +(PID.TID 0000.0001) >#tempAdvection=.FALSE., +(PID.TID 0000.0001) > momStepping=.FALSE., +(PID.TID 0000.0001) > f0=0.e-4, +(PID.TID 0000.0001) > beta=0., +(PID.TID 0000.0001) > useJamartWetPoints=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) >#exactConserv=.TRUE., +(PID.TID 0000.0001) > convertFW2Salt=-1, +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) > writeBinaryPrec=64, +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > useSingleCpuIO=.TRUE., +(PID.TID 0000.0001) >#debugLevel=4, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=500, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > startTime=0.0, +(PID.TID 0000.0001) >#endTime=432000., +(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) > abEps=0.1, +(PID.TID 0000.0001) > forcing_In_AB = .FALSE., +(PID.TID 0000.0001) > pChkptFreq=3600000., +(PID.TID 0000.0001) > dumpFreq = 432000., +(PID.TID 0000.0001) > monitorFreq=864000., +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > nTimeSteps=12, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delX=80*5.E3, +(PID.TID 0000.0001) > delY=42*5.E3, +(PID.TID 0000.0001) > ygOrigin=-110.E3, +(PID.TID 0000.0001) >#delR= 20., 30., 50., +(PID.TID 0000.0001) > delR= 10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile = 'bathy_3c.bin', +(PID.TID 0000.0001) > uVelInitFile = 'uVel_3c0.bin', +(PID.TID 0000.0001) > vVelInitFile = 'vVel_3c0.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'eta_3c0.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'uVel_3c1.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'vVel_3c1.bin', +(PID.TID 0000.0001) >#pSurfInitFile = 'eta_3c1.bin', +(PID.TID 0000.0001) >#bathyFile = 'channel.bin', +(PID.TID 0000.0001) >#uVelInitFile = 'const+40.bin', +(PID.TID 0000.0001) >#vVelInitFile = 'const-10.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useSEAICE = .TRUE., +(PID.TID 0000.0001) > useThSIce = .TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/exf compiled and used ( useEXF = T ) + pkg/seaice compiled and used ( useSEAICE = T ) + pkg/thsice compiled and used ( useThSIce = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled but not used ( useGAD = F ) + pkg/mom_common compiled but not used ( momStepping = F ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled but not used ( & not vectorInvariantMom = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: opening data.exf +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.exf +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.exf" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># External Forcing Data +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_01 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > useExfCheckRange = .TRUE., +(PID.TID 0000.0001) >#repeatPeriod = 2635200.0, +(PID.TID 0000.0001) > exf_iprec = 64, +(PID.TID 0000.0001) > exf_monFreq = 86400000., +(PID.TID 0000.0001) >#useRelativeWind = .TRUE., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_02 +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > atempperiod = 0.0, +(PID.TID 0000.0001) > aqhperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > uwindperiod = 0.0, +(PID.TID 0000.0001) > vwindperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > precipperiod = 0.0, +(PID.TID 0000.0001) > swdownperiod = 0.0, +(PID.TID 0000.0001) > lwdownperiod = 0.0, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > climsstperiod = 0.0, +(PID.TID 0000.0001) >#climsstTauRelax = 2592000., +(PID.TID 0000.0001) > climsssperiod = 0.0, +(PID.TID 0000.0001) >#climsssTauRelax = 2592000., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >#atempfile = 'tair_4x.bin', +(PID.TID 0000.0001) >#aqhfile = 'qa70_4x.bin', +(PID.TID 0000.0001) > uwindfile = 'windx.bin', +(PID.TID 0000.0001) >#vwindfile = 'windy.bin', +(PID.TID 0000.0001) >#precipfile = 'const_00.bin', +(PID.TID 0000.0001) >#lwdownfile = 'dlw_250.bin', +(PID.TID 0000.0001) >#swdownfile = 'dsw_100.bin', +(PID.TID 0000.0001) >#runoffFile = ' ' +(PID.TID 0000.0001) >#climsstfile = 'tocn.bin', +(PID.TID 0000.0001) >#climsssfile = 'socn.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_03 +(PID.TID 0000.0001) >#exf_offset_atemp=5; +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># old open64 compiler (4.2.1) cannot skip this namelist to read in the next one; +(PID.TID 0000.0001) ># comment out this namelist (not read). +(PID.TID 0000.0001) >#&EXF_NML_04 +(PID.TID 0000.0001) >#& +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &EXF_NML_OBCS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_01 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_02 +(PID.TID 0000.0001) EXF_READPARMS: reading EXF_NML_03 +(PID.TID 0000.0001) EXF_READPARMS: finished reading data.exf +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: opening data.seaice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.seaice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.seaice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># SEAICE parameters +(PID.TID 0000.0001) > &SEAICE_PARM01 +(PID.TID 0000.0001) > usePW79thermodynamics=.FALSE., +(PID.TID 0000.0001) > SEAICE_strength = 2.6780e+04, +(PID.TID 0000.0001) ># JFNK-convergence is better with this old default value (2 times the new +(PID.TID 0000.0001) ># default) probably because the ice starts to move earlier +(PID.TID 0000.0001) > SEAICE_drag = 0.002, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > OCEAN_drag = 8.1541e-04, +(PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., +(PID.TID 0000.0001) ># LSR solver parameter +(PID.TID 0000.0001) > LSR_ERROR = 1.E-12, +(PID.TID 0000.0001) > SEAICElinearIterMax= 1500, +(PID.TID 0000.0001) > LSR_mixIniGuess = 1, +(PID.TID 0000.0001) ># End of LSR solver parameter +(PID.TID 0000.0001) ># JFNK solver parameters +(PID.TID 0000.0001) ># SEAICEetaZmethod = 3, +(PID.TID 0000.0001) ># SEAICEuseJFNK = .TRUE., +(PID.TID 0000.0001) ># SEAICEpreconLinIter = 10, +(PID.TID 0000.0001) ># SEAICEnonLinIterMax = 100, +(PID.TID 0000.0001) ># SEAICElinearIterMax = 50, +(PID.TID 0000.0001) ># SEAICEnonLinTol = 1.e-09, +(PID.TID 0000.0001) ># SEAICE_JFNK_lsIter = 0, +(PID.TID 0000.0001) ># JFNKres_tFac = 0.5, +(PID.TID 0000.0001) ># SEAICE_JFNKalpha = 1.5, +(PID.TID 0000.0001) ># end of JFNK solver parameters +(PID.TID 0000.0001) >#- to use seaice-advection from pkg/seaice, uncomment following 4 lines: +(PID.TID 0000.0001) >#SEAICEadvScheme = 77, # this is the new default +(PID.TID 0000.0001) >#AreaFile = 'const100.bin', +(PID.TID 0000.0001) >#HeffFile = 'const+20.bin', +(PID.TID 0000.0001) >#HsnowFile = 'const_00.bin', +(PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_monFreq = 1800., +(PID.TID 0000.0001) > SEAICEuseTD = .TRUE., +(PID.TID 0000.0001) > SEAICE_tensilFac = 0.05, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &SEAICE_PARM03 +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) SEAICE_READPARMS: finished reading data.seaice +(PID.TID 0000.0001) THSICE_READPARMS: opening data.ice +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ice +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ice" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &THSICE_CONST +(PID.TID 0000.0001) >#- with fractional ice: +(PID.TID 0000.0001) > iceMaskMin = 0.001, +(PID.TID 0000.0001) > hiMax = 10., +(PID.TID 0000.0001) > hsMax = 10., +(PID.TID 0000.0001) > dhSnowLin = 0.1, +(PID.TID 0000.0001) > fracEnFreez= 0.4, +(PID.TID 0000.0001) > hNewIceMax = 1., +(PID.TID 0000.0001) > albIceMax = 0.6, +(PID.TID 0000.0001) > albIceMin = 0.6, +(PID.TID 0000.0001) >#albColdSnow= 0.85, +(PID.TID 0000.0001) >#albWarmSnow= 0.60, +(PID.TID 0000.0001) >#tempSnowAlb= -5., +(PID.TID 0000.0001) >#albOldSnow = 0.60, +(PID.TID 0000.0001) >#hNewSnowAge= 2.e-3, +(PID.TID 0000.0001) >#snowAgTime = 4320000., +(PID.TID 0000.0001) >#hAlbIce = 0.44, +(PID.TID 0000.0001) >#hAlbSnow = 0.15, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &THSICE_PARM01 +(PID.TID 0000.0001) >#StartIceModel=1, +(PID.TID 0000.0001) > thSIce_skipThermo=.TRUE., +(PID.TID 0000.0001) > thSIceAdvScheme=77, +(PID.TID 0000.0001) >#thSIce_diffK =800., +(PID.TID 0000.0001) > stressReduction=0., +(PID.TID 0000.0001) > thSIceFract_InitFile='const100.bin', +(PID.TID 0000.0001) > thSIceThick_InitFile='const+20.bin', +(PID.TID 0000.0001) >#thSIce_diagFreq=2592000., +(PID.TID 0000.0001) > thSIce_monFreq =21600., +(PID.TID 0000.0001) > thSIce_monFreq =1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_CONST +(PID.TID 0000.0001) THSICE_READPARMS: read THSICE_PARM01 + ThSI: rhos = 3.3000000000000E+02 + ThSI: rhoi = 9.0000000000000E+02 + ThSI: rhosw = 1.0300000000000E+03 + ThSI: rhofw = 1.0000000000000E+03 + ThSI: floodFac = 3.9393939393939E-01 + ThSI: cpIce = 2.1060000000000E+03 + ThSI: cpWater = 3.9860000000000E+03 + ThSI: kIce = 2.0300000000000E+00 + ThSI: kSnow = 3.0000000000000E-01 + ThSI: bMeltCoef = 6.0000000000000E-03 + ThSI: Lfresh = 3.3400000000000E+05 + ThSI: qsnow = 3.3400000000000E+05 + ThSI: albColdSnow = 8.5000000000000E-01 + ThSI: albWarmSnow = 7.0000000000000E-01 + ThSI: tempSnowAlb = -1.0000000000000E+01 + ThSI: albOldSnow = 5.5000000000000E-01 + ThSI: hNewSnowAge = 2.0000000000000E-03 + ThSI: snowAgTime = 4.3200000000000E+06 + ThSI: albIceMax = 6.0000000000000E-01 + ThSI: albIceMin = 6.0000000000000E-01 + ThSI: hAlbIce = 5.0000000000000E-01 + ThSI: hAlbSnow = 3.0000000000000E-01 + ThSI: i0swFrac = 3.0000000000000E-01 + ThSI: ksolar = 1.5000000000000E+00 + ThSI: dhSnowLin = 1.0000000000000E-01 + ThSI: saltIce = 4.0000000000000E+00 + ThSI: S_winton = 1.0000000000000E+00 + ThSI: mu_Tf = 5.4000000000000E-02 + ThSI: Tf0kel = 2.7315000000000E+02 + ThSI: Tmlt1 = -5.4000000000000E-02 + ThSI: Terrmax = 5.0000000000000E-01 + ThSI: nitMaxTsf = 20 + ThSI: hIceMin = 1.0000000000000E-02 + ThSI: hiMax = 1.0000000000000E+01 + ThSI: hsMax = 1.0000000000000E+01 + ThSI: iceMaskMax = 1.0000000000000E+00 + ThSI: iceMaskMin = 1.0000000000000E-03 + ThSI: fracEnMelt = 4.0000000000000E-01 + ThSI: fracEnFreez = 4.0000000000000E-01 + ThSI: hThinIce = 2.0000000000000E-01 + ThSI: hThickIce = 2.5000000000000E+00 + ThSI: hNewIceMax = 1.0000000000000E+00 + ThSI: stressReduction = 0.0000000000000E+00 + ThSI: thSIce_skipThermo = T + ThSI: thSIceAdvScheme = 77 + ThSI: thSIceBalanceAtmFW= 0 + ThSI: thSIce_diffK = 0.0000000000000E+00 + ThSI: thSIce_deltaT = 1.8000000000000E+03 + ThSI: ocean_deltaT = 1.8000000000000E+03 + ThSI: stepFwd_oceMxL = F + ThSI: tauRelax_MxL = 0.0000000000000E+00 + ThSI: tauRelax_MxL_salt = 0.0000000000000E+00 + ThSI: hMxL_default = 5.0000000000000E+01 + ThSI: sMxL_default = 3.5000000000000E+01 + ThSI: vMxL_default = 5.0000000000000E-02 + ThSI: thSIce_taveFreq = 0.0000000000000E+00 + ThSI: thSIce_diagFreq = 4.3200000000000E+05 + ThSI: thSIce_monFreq = 1.8000000000000E+03 + ThSI: startIceModel = 0 +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># This example dumps EXF diagnostics as snapshot after 10 time-steps +(PID.TID 0000.0001) ># Note: EXF air-sea fluxes over Sea-Ice are wrong +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) > dumpAtLast = .TRUE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:11,1) = 'EXFtaux ','EXFtauy ','EXFqnet ','EXFempmr', +(PID.TID 0000.0001) > 'EXFhl ','EXFhs ','EXFswnet','EXFlwnet', +(PID.TID 0000.0001) > 'EXFuwind','EXFvwind','EXFatemp', +(PID.TID 0000.0001) ># fileName(1) = 'exfDiag', +(PID.TID 0000.0001) > frequency(1) = 86400., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,2) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SIsig1 ','SIsig2 ', +(PID.TID 0000.0001) ># fileName(2) = 'iceDiag', +(PID.TID 0000.0001) > frequency(2) = -1800., +(PID.TID 0000.0001) > timePhase(2) = 1800., +(PID.TID 0000.0001) > missing_value(2) = -999., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:5,3) = 'SIuice ','SIvice ','SIheff ', +(PID.TID 0000.0001) > 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > fileName(3) = 'snapshot', +(PID.TID 0000.0001) > frequency(3) = -86400., +(PID.TID 0000.0001) > timePhase(3) = 3600., +(PID.TID 0000.0001) > missing_value(3) = -999., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'SI_Fract','SI_Thick','SI_SnowH', +(PID.TID 0000.0001) >#stat_fields(1:5,1) = 'SIarea ','SIheff ','SIhsnow ', +(PID.TID 0000.0001) > stat_fields(1:6,1) = 'SI_Fract','SI_Thick', +(PID.TID 0000.0001) > 'SIarea ','SIheff ', +(PID.TID 0000.0001) > 'SIuice ','SIvice ', +(PID.TID 0000.0001) > stat_fName(1) = 'iceStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 7200., +(PID.TID 0000.0001) > stat_phase(1) = 1800., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: snapshot +(PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: 3600.000000 +(PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: SIuice SIvice SIheff SI_Fract SI_Thick +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag +(PID.TID 0000.0001) Output Frequency: 7200.000000 ; Phase: 1800.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: SI_Fract SI_Thick SIarea SIheff SIuice SIvice +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.9750000000000E+05 +(PID.TID 0000.0001) %MON XC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 2.0000000000000E+05 +(PID.TID 0000.0001) %MON XC_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON XG_max = 3.9500000000000E+05 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.9750000000000E+05 +(PID.TID 0000.0001) %MON XG_sd = 1.1546103238755E+05 +(PID.TID 0000.0001) %MON DXC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 9.7500000000000E+04 +(PID.TID 0000.0001) %MON YC_min = -1.0750000000000E+05 +(PID.TID 0000.0001) %MON YC_mean = -5.0000000000000E+03 +(PID.TID 0000.0001) %MON YC_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON YG_max = 9.5000000000000E+04 +(PID.TID 0000.0001) %MON YG_min = -1.1000000000000E+05 +(PID.TID 0000.0001) %MON YG_mean = -7.5000000000000E+03 +(PID.TID 0000.0001) %MON YG_sd = 6.0604592785256E+04 +(PID.TID 0000.0001) %MON DYC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAW_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAS_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON RAZ_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 3.7252902984619E-09 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_3c.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -1.000000000000000E+01 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 83: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 45: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 0 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF general parameters: +(PID.TID 0000.0001) +(PID.TID 0000.0001) exf_iprec = /* exf file precision */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfYearlyFields = /* add extension _YEAR to input file names */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) climTempFreeze= /* Minimum climatological temperature [deg.C] */ +(PID.TID 0000.0001) -1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) windStressMax = /* Maximum absolute windstress [ Pa ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity_mks= /* gravitational acceleration [m/s^2] */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmrho = /* mean atmospheric density [kg/m^3] */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) atmcp = /* mean atmospheric specific heat [J/kg/K] */ +(PID.TID 0000.0001) 1.005000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flamb = /* latent heat of evaporation [J/kg] */ +(PID.TID 0000.0001) 2.500000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) flami = /* latent heat of pure-ice melting [J/kg] */ +(PID.TID 0000.0001) 3.340000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 6.403800000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp = /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.107400000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_fac_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 1.163780000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cvapor_exp_ice= /* const. for Saturation calculation [?] */ +(PID.TID 0000.0001) 5.897800000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) humid_fac = /* humidity coef. in virtual temp. [(kg/kg)^-1] */ +(PID.TID 0000.0001) 6.060000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gamma_blk = /* adiabatic lapse rate [?] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltsat = /* reduction of Qsat over salty water [-] */ +(PID.TID 0000.0001) 9.800000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) noNegativeEvap = /* prevent negative Evaporation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 2.700000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 1.420000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) 7.640000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 3.270000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) 1.800000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) 3.460000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zolmin = /* minimum stability parameter [?] */ +(PID.TID 0000.0001) -1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psim_fac = /* coef used in turbulent fluxes calculation [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zref = /* reference height [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hu = /* height of mean wind [ m ] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ht = /* height of mean temperature [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hq = /* height of mean spec.humidity [ m ] */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uMin = /* minimum wind speed [m/s] */ +(PID.TID 0000.0001) 5.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStabilityFct_overIce= /* transfert Coeffs over sea-ice depend on stability */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCd = /* drag coefficient over sea-ice (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCe = /* transfert coeff. over sea-ice, for Evap (fixed) [-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_iceCh = /* transfert coeff. over sea-ice, Sens.Heat.(fixed)[-] */ +(PID.TID 0000.0001) 1.630000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_albedo = /* Sea-water albedo [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenAlbedo = /* Sea-water albedo varies with zenith angle */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_ZenAlbedo = /* Sea-water albedo computation method */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useExfZenIncoming = /* compute incoming solar radiation */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ocean_emissivity = /* longwave ocean-surface emissivity [-] */ +(PID.TID 0000.0001) 9.700176366843034E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ice_emissivity = /* longwave seaice emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snow_emissivity = /* longwave snow emissivity [-] */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF main CPP flags: +(PID.TID 0000.0001) +(PID.TID 0000.0001) // USE_EXF_INTERPOLATION: NOT defined +(PID.TID 0000.0001) // ALLOW_ATM_TEMP: defined +(PID.TID 0000.0001) // ALLOW_ATM_WIND (useAtmWind): defined +(PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined +(PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) Zonal wind forcing period is 0. +(PID.TID 0000.0001) Zonal wind forcing is read from file: +(PID.TID 0000.0001) >> windx.bin << +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) // ALLOW_RUNOFF: defined +(PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: defined +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) climatology configuration : +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined +(PID.TID 0000.0001) climsst relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsss relaxation is NOT used +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice time stepping configuration > START < +(PID.TID 0000.0001) ---------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_deltaTevp = /* EVP timestep */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseBDF2 = /* use backw. differencing for mom. eq. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEupdateOceanStress= /* update Ocean surf. stress */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICErestoreUnderIce = /* restore T and S under ice */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice dynamics configuration > START < +(PID.TID 0000.0001) ------------------------------------------ +(PID.TID 0000.0001) SEAICEuseDYNAMICS = /* use dynamics */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) model grid type = /* type of sea ice model grid */ +(PID.TID 0000.0001) 'C-GRID' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseStrImpCpl = /* use strongly implicit coupling */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEusePicardAsPrecon = /* Picard as preconditioner */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseLSR = /* use default Picard-LSR solver */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseKrylov = /* use Picard-Krylov solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseEVP = /* use EVP solver rather than LSR */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseJFNK = /* use JFNK solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseFREEDRIFT = /* use free drift solution */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OCEAN_drag = /* air-ocean drag coefficient */ +(PID.TID 0000.0001) 8.154100000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag = /* air-ice drag coefficient */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_drag_south = /* Southern Ocean SEAICE_drag */ +(PID.TID 0000.0001) 2.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag = /* water-ice drag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterDrag_south = /* Southern Ocean waterDrag (no units) */ +(PID.TID 0000.0001) 5.500000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEdWatMin = /* minimum linear water-ice drag (in m/s) */ +(PID.TID 0000.0001) 2.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTilt = /* include surface tilt in dyna. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseTEM = /* use truncated ellipse rheology */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_strength = /* sea-ice strength Pstar */ +(PID.TID 0000.0001) 2.678000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_cStar = /* sea-ice strength parameter cStar */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpressReplFac= /* press. replacement method factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilFac = /* sea-ice tensile strength factor */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tensilDepth= /* crit. depth for tensile strength */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresH0 = /* sea-ice strength Heff threshold */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEpresPow0 = /* exponent for HeffSEAICEpresH0 */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEetaZmethod = /* method computing eta at Z-point */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMaxFac = /* factor for upper viscosity bound */ +(PID.TID 0000.0001) 2.500000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_zetaMin = /* lower bound for viscosity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_eccen = /* elliptical yield curve eccent */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEstressFactor = /* wind stress scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_airTurnAngle = /* air-ice turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_waterTurnAngle = /* ice-water turning angle */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMetricTerms = /* use metric terms */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_no_slip = /* no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_2ndOrderBC = /* 2nd order no slip boundary conditions */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_clipVeloctities = /* impose max. vels. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHB87stressCoupling = /* altern. ice-ocean stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEscaleSurfStress = /* scale atm. and ocean-surface stress with AREA */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_maskRHS = /* mask RHS of solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEaddSnowMass = /* add snow mass to seaiceMassC/U/V */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_mixIniGuess = /* mix free-drift sol. into LSR initial Guess */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxU = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_LSRrelaxV = /* LSR solver: relaxation parameter */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LSR_ERROR = /* sets accuracy of LSR solver */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SOLV_NCHECK = /* test interval for LSR solver */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEuseMultiTileSolver = /* use full domain tri-diag solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLx = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_OLy = /* overlap for LSR/preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinIterMax = /* max. number of nonlinear solver steps */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICElinearIterMax = /* max. number of linear solver steps */ +(PID.TID 0000.0001) 1500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEnonLinTol = /* non-linear solver tolerance */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice advection diffusion config, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) ==> advection diffusion done in pkg ThSIce +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice thermodynamics configuration > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_rhoIce = /* density of sea ice (kg/m3) */ +(PID.TID 0000.0001) 9.100000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoSnow = /* density of snow (kg/m3) */ +(PID.TID 0000.0001) 3.300000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_rhoAir = /* density of air (kg/m3) */ +(PID.TID 0000.0001) 1.200000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usePW79thermodynamics = /* default 0-layer TD */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pkg/seaice thermodynamics is OFF +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice initialization and IO config., > START < +(PID.TID 0000.0001) ------------------------------------------------- +(PID.TID 0000.0001) SEAICE_initialHEFF= /* initial sea-ice thickness */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AreaFile = /* Initial ice concentration File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeffFile = /* Initial effective ice thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HsnowFile = /* Initial snow thickness File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uIceFile = /* Initial U-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vIceFile = /* Initial V-ice velocity File */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEwriteState = /* write sea ice state to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_monFreq = /* monitor frequency */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dumpFreq = /* dump frequency */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_taveFreq = /* time-averaging frequency */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_mon_stdio = /* write monitor to std-outp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_dump_mdsio = /* write snap-shot using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_tave_mdsio = /* write TimeAverage using MDSIO */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seaice regularization numbers, > START < +(PID.TID 0000.0001) ----------------------------------------------- +(PID.TID 0000.0001) SEAICE_deltaMin = /* reduce singularities in Delta */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS = /* small number */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_EPS_SQ = /* small number squared */ +(PID.TID 0000.0001) 1.000000000000000E-20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_hice_reg = /* reduce derivative singularities */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICE_area_floor = /* reduce derivative singularities */ +(PID.TID 0000.0001) 1.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Seaice configuration (SEAICE_PARM01) >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 256 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 224 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 225 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set +(PID.TID 0000.0001) space allocated for all diagnostics: 5 levels +(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 +(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 224 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 225 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 146 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 149 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 163 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 164 SIvice +(PID.TID 0000.0001) space allocated for all stats-diags: 6 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.0000000000000001E-01 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 3.000000000000000E-02 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 500 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.600000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 6.300000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.708737864077669E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.030000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 1.000000000000000E+01 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* I = 1 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* I = 2 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.750000000000000E+04, /* I = 18 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* I = 19 */ +(PID.TID 0000.0001) 9.750000000000000E+04, /* I = 20 */ +(PID.TID 0000.0001) 1.025000000000000E+05, /* I = 21 */ +(PID.TID 0000.0001) 1.075000000000000E+05, /* I = 22 */ +(PID.TID 0000.0001) 1.125000000000000E+05, /* I = 23 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.875000000000000E+05, /* I = 38 */ +(PID.TID 0000.0001) 1.925000000000000E+05, /* I = 39 */ +(PID.TID 0000.0001) 1.975000000000000E+05, /* I = 40 */ +(PID.TID 0000.0001) 2.025000000000000E+05, /* I = 41 */ +(PID.TID 0000.0001) 2.075000000000000E+05, /* I = 42 */ +(PID.TID 0000.0001) 2.125000000000000E+05, /* I = 43 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.875000000000000E+05, /* I = 58 */ +(PID.TID 0000.0001) 2.925000000000000E+05, /* I = 59 */ +(PID.TID 0000.0001) 2.975000000000000E+05, /* I = 60 */ +(PID.TID 0000.0001) 3.025000000000000E+05, /* I = 61 */ +(PID.TID 0000.0001) 3.075000000000000E+05, /* I = 62 */ +(PID.TID 0000.0001) 3.125000000000000E+05, /* I = 63 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.875000000000000E+05, /* I = 78 */ +(PID.TID 0000.0001) 3.925000000000000E+05, /* I = 79 */ +(PID.TID 0000.0001) 3.975000000000000E+05 /* I = 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -1.075000000000000E+05, /* J = 1 */ +(PID.TID 0000.0001) -1.025000000000000E+05, /* J = 2 */ +(PID.TID 0000.0001) -9.750000000000000E+04, /* J = 3 */ +(PID.TID 0000.0001) -9.250000000000000E+04, /* J = 4 */ +(PID.TID 0000.0001) -8.750000000000000E+04, /* J = 5 */ +(PID.TID 0000.0001) -8.250000000000000E+04, /* J = 6 */ +(PID.TID 0000.0001) -7.750000000000000E+04, /* J = 7 */ +(PID.TID 0000.0001) -7.250000000000000E+04, /* J = 8 */ +(PID.TID 0000.0001) -6.750000000000000E+04, /* J = 9 */ +(PID.TID 0000.0001) -6.250000000000000E+04, /* J = 10 */ +(PID.TID 0000.0001) -5.750000000000000E+04, /* J = 11 */ +(PID.TID 0000.0001) -5.250000000000000E+04, /* J = 12 */ +(PID.TID 0000.0001) -4.750000000000000E+04, /* J = 13 */ +(PID.TID 0000.0001) -4.250000000000000E+04, /* J = 14 */ +(PID.TID 0000.0001) -3.750000000000000E+04, /* J = 15 */ +(PID.TID 0000.0001) -3.250000000000000E+04, /* J = 16 */ +(PID.TID 0000.0001) -2.750000000000000E+04, /* J = 17 */ +(PID.TID 0000.0001) -2.250000000000000E+04, /* J = 18 */ +(PID.TID 0000.0001) -1.750000000000000E+04, /* J = 19 */ +(PID.TID 0000.0001) -1.250000000000000E+04, /* J = 20 */ +(PID.TID 0000.0001) -7.500000000000000E+03, /* J = 21 */ +(PID.TID 0000.0001) -2.500000000000000E+03, /* J = 22 */ +(PID.TID 0000.0001) 2.500000000000000E+03, /* J = 23 */ +(PID.TID 0000.0001) 7.500000000000000E+03, /* J = 24 */ +(PID.TID 0000.0001) 1.250000000000000E+04, /* J = 25 */ +(PID.TID 0000.0001) 1.750000000000000E+04, /* J = 26 */ +(PID.TID 0000.0001) 2.250000000000000E+04, /* J = 27 */ +(PID.TID 0000.0001) 2.750000000000000E+04, /* J = 28 */ +(PID.TID 0000.0001) 3.250000000000000E+04, /* J = 29 */ +(PID.TID 0000.0001) 3.750000000000000E+04, /* J = 30 */ +(PID.TID 0000.0001) 4.250000000000000E+04, /* J = 31 */ +(PID.TID 0000.0001) 4.750000000000000E+04, /* J = 32 */ +(PID.TID 0000.0001) 5.250000000000000E+04, /* J = 33 */ +(PID.TID 0000.0001) 5.750000000000000E+04, /* J = 34 */ +(PID.TID 0000.0001) 6.250000000000000E+04, /* J = 35 */ +(PID.TID 0000.0001) 6.750000000000000E+04, /* J = 36 */ +(PID.TID 0000.0001) 7.250000000000000E+04, /* J = 37 */ +(PID.TID 0000.0001) 7.750000000000000E+04, /* J = 38 */ +(PID.TID 0000.0001) 8.250000000000000E+04, /* J = 39 */ +(PID.TID 0000.0001) 8.750000000000000E+04, /* J = 40 */ +(PID.TID 0000.0001) 9.250000000000000E+04, /* J = 41 */ +(PID.TID 0000.0001) 9.750000000000000E+04 /* J = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01 /* K = 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 80 @ 5.000000000000000E+03 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.000000000000000E+03 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 80 @ 2.500000000000000E+07 /* I = 1: 80 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 2.500000000000000E+07 /* J = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 6.950000000000000E+10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF +(PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE +(PID.TID 0000.0001) THSICE_CHECK: #define THSICE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: uVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: vVel_3c0.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: eta_3c0.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: snapshot + nFlds, nActive, freq & phase , nLev + 5 | 5 | -86400.000000 3600.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 163 |SIuice | 1 | 2 | 1 | 0 | 0 | + 164 |SIvice | 2 | 1 | 1 | 0 | 0 | + 149 |SIheff | 3 | 0 | 1 | 0 | + 224 |SI_Fract| 4 | 0 | 1 | 0 | + 225 |SI_Thick| 5 | 4 | 1 | 0 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: iceStDiag + nFlds, nActive, freq & phase | + 6 | 6 | 7200.000000 1800.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 224 |SI_Fract| 1 | 0 | 0.00000E+00 | + 225 |SI_Thick| 2 | 1 | 0.00000E+00 | 0.00000E+00 | + 146 |SIarea | 3 | 0 | 0.00000E+00 | + 149 |SIheff | 4 | 0 | 0.00000E+00 | + 163 |SIuice | 5 | 0 | 0.00000E+00 | + 164 |SIvice | 6 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: windx.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const100.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: const+20.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.4855271423662E-02 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5547625271979E-02 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8609663050809E-19 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6185276903544E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4210904025025E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4694595665363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 8.1797628424127E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.2603530929361E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4661197148990E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.3392731599312E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2780617104059E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4793000868950E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.2450632095700E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0970835295293E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.1836652323282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6555698845343E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.4393468746960E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8006686469634E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8006622332191E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4047422448573E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6200000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 1.5484032096270E-05 +(PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 +(PID.TID 0000.0001) %MON ke_mean = 5.8130401708830E-02 +(PID.TID 0000.0001) %MON ke_vol = 6.9500000000000E+11 +(PID.TID 0000.0001) %MON vort_r_min = -1.4191202448594E-04 +(PID.TID 0000.0001) %MON vort_r_max = 8.9657385579761E-05 +(PID.TID 0000.0001) %MON vort_a_mean = -6.5586096803907E-22 +(PID.TID 0000.0001) %MON vort_a_sd = 1.5889649807104E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -6.8228760045090E-22 +(PID.TID 0000.0001) %MON vort_p_sd = 3.0669223294758E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4394880171946E-21 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6750406018264E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9500000000000E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9500000000000E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 4.0000000000000E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON exf_tsnumber = 0 +(PID.TID 0000.0001) %MON exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_ustress_max = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_min = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_mean = 1.3964039188763E-01 +(PID.TID 0000.0001) %MON exf_ustress_sd = 5.5511151231258E-17 +(PID.TID 0000.0001) %MON exf_ustress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vstress_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_hflux_max = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_min = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_mean = 1.3256147102117E+02 +(PID.TID 0000.0001) %MON exf_hflux_sd = 9.6633812063374E-13 +(PID.TID 0000.0001) %MON exf_hflux_del2 = 7.8352778346434E-01 +(PID.TID 0000.0001) %MON exf_sflux_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_sflux_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_sflux_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_sflux_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) %MON exf_uwind_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_uwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_uwind_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_vwind_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_vwind_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_max = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_min = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_mean = 1.0000000000000E+01 +(PID.TID 0000.0001) %MON exf_wspeed_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON exf_wspeed_del2 = 5.9106750809910E-02 +(PID.TID 0000.0001) %MON exf_evap_max = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_min = 5.8259080752307E-08 +(PID.TID 0000.0001) %MON exf_evap_mean = 5.8259080752308E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 8.7350272685600E-22 +(PID.TID 0000.0001) %MON exf_evap_del2 = 3.4435049684410E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR EXF statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 9.44909261E-01 1.20594212E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.44625974E-01 1.91814676E-02 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 4 0.00000000E+00 6.33664066E-01 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 4 0.00000000E+00 3.94846828E-01 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.50277982E+01 2.51777005E+00 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.45348179E-01 3.14066325E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 286 9.53792600E-13 2.06847706E-12 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 260 8.84507745E-13 1.79772740E-12 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 1.0194526783720E+00 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.8170511695076E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6922368665053E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.1171183624524E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.6971828848030E-03 +(PID.TID 0000.0001) %MON seaice_vice_max = 3.2719254276082E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -2.9077447955570E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = 4.1938739269701E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 7.5830722971947E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 2.5510501504549E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8698591366474E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9060439010490E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9638152355985E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0233311518500E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0302446432157E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0182625731640E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.3747217689355E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.6382616519803E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 6.950E+10 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 6.950E+10 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 6.950E+10 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 6.900E+10 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 6.750E+10 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.35164841E-01 9.28072331E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.31817686E+00 4.12947587E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 596 9.71667191E-13 5.97356782E-12 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 348 9.85921414E-13 4.77279309E-12 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 6.40263993E-01 7.10158243E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.72523212E-01 3.98466969E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 996 9.87987470E-13 3.46724191E-11 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 540 9.58249105E-13 2.16176114E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.8838837317195E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.0736046517951E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.1679281121085E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.6171676617449E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 6.4222360727749E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5657743928785E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.8849472197648E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.2378942541447E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1768016078226E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.8014716836167E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8652365787557E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9018377684174E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9633988103383E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0246935179209E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0332016300276E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0184642278013E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.4352822485964E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.5046159324374E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.72655227E-01 4.85794014E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.20005879E-01 3.71387154E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.90980137E-10 4.15129308E-08 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 740 9.73315829E-13 6.52729063E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 3.93938797E-01 3.40361330E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.04171539E+00 4.52865141E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.56015298E-09 4.62891175E-07 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 734 9.60897811E-13 9.11991923E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.8353564690426E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.8318850914032E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2504862216000E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9928802771751E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.5249950521576E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.0332337029557E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.4609364822650E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.5979403433252E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.3398378199446E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 2.1580070579260E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 5.4000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8595593758270E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8965143434289E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9630450323981E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0263692226331E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0371245236705E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0185083773820E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.6660230303943E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.3829303505578E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 163 SIuice Counter: 1 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 164 SIvice exists + Computing Diagnostic # 164 SIvice Counter: 1 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 163 SIuice exists + Computing Diagnostic # 149 SIheff Counter: 1 Parms: SM M1 + Computing Diagnostic # 224 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 225 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 224 SI_Fract + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.49477535E-01 2.76370171E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.34759412E+00 5.95163193E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.70416218E-08 5.39012521E-06 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 622 9.72339396E-13 1.08102434E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.77391655E-01 1.84186682E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.60764242E+00 6.82188885E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.59459784E-08 1.39441065E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 588 9.93547258E-13 1.03775248E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.6708881150955E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.2722942595254E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2485761421222E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6783378772277E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.8235396447765E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.0756238706760E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2875463444092E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.5299518544401E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8742388447283E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2871958683435E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8535267955980E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8908054855006E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9627213100973E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0281528641470E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0413501594677E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0185254362454E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.8875029036286E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.3190235044025E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.58328555E-01 1.41697926E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.15449279E+00 8.99219032E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.16845977E-07 1.03145308E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 528 9.46423495E-13 3.57346562E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.15891258E-01 1.06534608E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.79998800E+00 1.15670313E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.16090716E-07 1.55061664E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 504 9.86072335E-13 3.01893758E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.6017933096028E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.3531188171385E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2434340344468E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6403386635011E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5643397114989E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.7289972764041E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1392074498639E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.2457145811914E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7764141067712E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.9884751575693E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 9.0000000000000E+03 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8474414960156E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8850416485941E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9623998474216E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0299552771773E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0456250115710E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0185460711182E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.0910462136783E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.3168186930638E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.745E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.745E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.20682294E-01 1.05196462E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.47502496E+00 2.07619872E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.64471835E-07 3.48619458E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 482 9.57123270E-13 4.36867320E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 9.23212091E-02 8.41100960E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.32994915E+00 2.26766380E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.48082611E-07 5.13673094E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 454 9.79022419E-13 3.04294104E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5697163519681E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.2918258480393E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2384465044756E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6837758130319E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5322976577903E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.6500527637071E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0949167295546E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -4.0581352667766E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7727425670201E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 8.8648038299419E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8413165840240E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8792448589279E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9620717250962E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0317726609027E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0499325737131E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0185758186378E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.2738382123584E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.3109326693167E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 9.79702267E-02 8.71192656E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.52579275E+00 3.37129708E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.51481855E-07 6.41362338E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 442 9.38207845E-13 4.90438699E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.71695138E-02 6.94876166E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.73353277E+00 3.50735088E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.29189073E-07 6.92671008E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 406 9.49854778E-13 1.01623372E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5546151704053E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.1516107584975E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2336897996665E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.7672782727828E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.6255855611914E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.5985041082728E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0760821282786E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.9053767381122E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.7966373853011E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 8.6225212288122E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.2600000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8351061601882E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8733498500641E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9617563101241E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0336187433287E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0543186665268E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0186056742346E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.4399730496184E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2873079672179E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.32546507E-02 7.99792733E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.03954307E+01 4.00052317E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.26086925E-07 7.65717322E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 424 9.47193712E-13 8.78523627E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 6.72347929E-02 5.24890285E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.16180300E+01 4.49959387E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.09237344E-07 7.36380594E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 416 9.58103388E-13 1.36790648E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5485498747974E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.9490105142414E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2291376749068E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8770392958952E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.7845894290771E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.5592217236953E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0720564820864E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.7525824511092E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8271981759966E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.0913332789895E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8288389337725E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8673880225822E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9614509111902E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0354851146447E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0587596057240E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0186385100928E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.6129729535785E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2600820288366E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 6.88496484E-02 6.03095889E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.28613932E+01 4.74282132E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.12170717E-07 7.76601262E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 434 9.88157473E-13 1.80748776E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.98291086E-02 4.76731227E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.43817750E+01 5.37694768E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 9.72126200E-08 7.22309564E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 436 9.99049801E-13 2.20989878E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5492380499796E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.6769750402411E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2247203140704E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0069909124488E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.9718120965434E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.5371748571427E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0759097283197E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.5890028092526E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8606451270342E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0039003772121E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.6200000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8225208299092E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8613685144426E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9611523154666E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0373701079906E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0632469268731E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0186777909809E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.7680468920705E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2555164673379E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.735E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.735E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.780E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 6.28176661E-02 5.50951968E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.62576793E+01 6.16152860E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 9.97445417E-08 7.46170797E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 506 9.90221793E-13 2.80218103E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.05574363E-02 4.19088458E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.86254346E+01 7.26086603E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 8.78915604E-08 6.91104878E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 490 9.81964510E-13 3.44152418E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5535620529603E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.3677042011977E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2204776860877E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.1474461368000E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.1432802910186E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.5673003841337E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0795979773113E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.4220558472621E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.8982883600132E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1162810762489E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8161767509972E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8553075757188E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9608691752785E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0392663670241E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0677673544966E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0187206024849E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.9012056496523E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2535511741573E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 5.54651409E-02 4.83492671E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.06548069E+01 8.06312580E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.75619002E-08 7.01741665E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 590 9.96515370E-13 4.13433789E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.53927648E-02 3.73641959E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.39135261E+01 9.46724230E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 7.83787876E-08 6.36662362E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 614 9.70715695E-13 4.73775920E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 11 +(PID.TID 0000.0001) %MON seaice_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5597236519695E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.1016737761557E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2164914411316E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2866988627872E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.2581084254723E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.6908599970504E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.0873787976123E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.2566039270544E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.9397856622518E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2211703665404E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 1.9800000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8097990625534E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8492151778722E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9605838846813E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0411762332952E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0723141635054E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0187758332669E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 4.0278953644304E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2493862899916E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 4.98037765E-02 4.33910528E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.43196032E+01 9.65850821E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.42087282E-08 6.27818641E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 616 9.89867043E-13 4.98638654E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 4.06957306E-02 2.94140711E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.67173289E+01 1.05719673E+01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 6.76562820E-08 5.64017430E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 698 9.83640253E-13 5.55325072E-10 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON seaice_tsnumber = 12 +(PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.5670144127105E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 8.9611832963002E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 5.2127985619034E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.4167778926751E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 2.3041746812735E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 8.8199770023507E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1034584784052E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -3.0970065508910E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.9827746446208E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.3038953918223E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON thSI_time_sec = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8033706052948E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8430726692893E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9602979360056E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0431049264290E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0769027366328E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0188416937063E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 4.1633333268081E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.2329729445420E-01 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1574014390118E+18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.085E+11 Parms: SM P M1 + Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.045E+11 Parms: SM PC M1 + use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.045E+11 + Compute Stats, Diag. # 146 SIarea vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 149 SIheff vol( 0 ): 2.085E+11 Parms: SM M1 + Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.070E+11 Parms: UU M1 + Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.025E+11 Parms: VV M1 +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 12 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 37.374751202296466 +(PID.TID 0000.0001) System time: 3.3300999319180846E-002 +(PID.TID 0000.0001) Wall clock time: 37.471757173538208 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.4246998373419046E-002 +(PID.TID 0000.0001) System time: 3.9350001607090235E-003 +(PID.TID 0000.0001) Wall clock time: 6.0389995574951172E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 37.340474572032690 +(PID.TID 0000.0001) System time: 2.9356999322772026E-002 +(PID.TID 0000.0001) Wall clock time: 37.411334991455078 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 3.2848004251718521E-002 +(PID.TID 0000.0001) System time: 1.0457000229507685E-002 +(PID.TID 0000.0001) Wall clock time: 5.5837869644165039E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 37.307603761553764 +(PID.TID 0000.0001) System time: 1.8895998597145081E-002 +(PID.TID 0000.0001) Wall clock time: 37.355469942092896 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 37.307522758841515 +(PID.TID 0000.0001) System time: 1.8893999978899956E-002 +(PID.TID 0000.0001) Wall clock time: 37.355396986007690 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 37.307397395372391 +(PID.TID 0000.0001) System time: 1.8891999498009682E-002 +(PID.TID 0000.0001) Wall clock time: 37.355254411697388 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.1721303462982178E-002 +(PID.TID 0000.0001) System time: 1.9986182451248169E-006 +(PID.TID 0000.0001) Wall clock time: 2.1737575531005859E-002 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.1320213377475739E-002 +(PID.TID 0000.0001) System time: 1.9290000200271606E-003 +(PID.TID 0000.0001) Wall clock time: 7.3246717453002930E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 7.1028560400009155E-002 +(PID.TID 0000.0001) System time: 1.9230004400014877E-003 +(PID.TID 0000.0001) Wall clock time: 7.2962045669555664E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 7.5481832027435303E-005 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 7.8678131103515625E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.8709254264831543E-005 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 7.3909759521484375E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 37.137832142412663 +(PID.TID 0000.0001) System time: 7.9469997435808182E-003 +(PID.TID 0000.0001) Wall clock time: 37.145143032073975 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 1.8317438662052155E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.8320083618164062E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 37.109369553625584 +(PID.TID 0000.0001) System time: 6.9479998201131821E-003 +(PID.TID 0000.0001) Wall clock time: 37.115682601928711 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": +(PID.TID 0000.0001) User time: 36.996055446565151 +(PID.TID 0000.0001) System time: 5.9399995952844620E-003 +(PID.TID 0000.0001) Wall clock time: 37.001361846923828 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.5336017608642578E-003 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 3.5355091094970703E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9050579071044922E-003 +(PID.TID 0000.0001) System time: 3.0007213354110718E-006 +(PID.TID 0000.0001) Wall clock time: 3.9019584655761719E-003 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.4982643127441406E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.2240829467773438E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.9200992584228516E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.1287155151367188E-005 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.4653515815734863E-002 +(PID.TID 0000.0001) System time: 5.9949997812509537E-003 +(PID.TID 0000.0001) Wall clock time: 9.1500043869018555E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1782388687133789E-003 +(PID.TID 0000.0001) System time: 3.0019991099834442E-003 +(PID.TID 0000.0001) Wall clock time: 1.4943122863769531E-002 +(PID.TID 0000.0001) No. starts: 12 +(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 47082 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 47082 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output.txt b/verification/offline_exf_seaice/results/output.txt index f13f5002f0..5866442d7a 100644 --- a/verification/offline_exf_seaice/results/output.txt +++ b/verification/offline_exf_seaice/results/output.txt @@ -5,21 +5,23 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67t +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Fri Dec 11 09:58:42 EST 2020 +(PID.TID 0000.0001) // Build date: Thu May 4 14:32:22 EDT 2023 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "eedata" file (PID.TID 0000.0001) ># Lines beginning "#" are comments -(PID.TID 0000.0001) ># nTx - No. threads per process in X -(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) (PID.TID 0000.0001) > &EEPARMS (PID.TID 0000.0001) > nTx=1, (PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) >#debugMode=.TRUE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). (PID.TID 0000.0001) ># Other systems use a / character. @@ -155,14 +157,16 @@ (PID.TID 0000.0001) > &PARM03 (PID.TID 0000.0001) > startTime=0.0, (PID.TID 0000.0001) >#endTime=432000., -(PID.TID 0000.0001) > deltaT=1800.0, +(PID.TID 0000.0001) ># Use half the original time step to test the option of stepping +(PID.TID 0000.0001) ># the sea ice dynamics solver with a longer timestep. +(PID.TID 0000.0001) > deltaT= 900.0, (PID.TID 0000.0001) > abEps=0.1, (PID.TID 0000.0001) > forcing_In_AB = .FALSE., (PID.TID 0000.0001) > pChkptFreq=3600000., (PID.TID 0000.0001) > dumpFreq = 864000., (PID.TID 0000.0001) > monitorFreq=86400., (PID.TID 0000.0001) > monitorSelect=2, -(PID.TID 0000.0001) > nTimeSteps=12, +(PID.TID 0000.0001) > nTimeSteps=24, (PID.TID 0000.0001) > monitorFreq=21600., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > @@ -318,6 +322,7 @@ (PID.TID 0000.0001) > LSR_mixIniGuess = 1, (PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., (PID.TID 0000.0001) > SEAICEwriteState = .TRUE., +(PID.TID 0000.0001) > SEAICE_deltaTdyn = 1800., (PID.TID 0000.0001) > SEAICE_monFreq = 21600., (PID.TID 0000.0001) > SEAICE_monFreq = 1800., (PID.TID 0000.0001) > / @@ -360,7 +365,7 @@ (PID.TID 0000.0001) > thSIceFract_InitFile='const100.bin', (PID.TID 0000.0001) > thSIceThick_InitFile='const+20.bin', (PID.TID 0000.0001) >#thSIce_diagFreq=2592000., -(PID.TID 0000.0001) > thSIce_monFreq =21600., +(PID.TID 0000.0001) >#thSIce_monFreq =21600., (PID.TID 0000.0001) > thSIce_monFreq =1800., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > @@ -414,8 +419,8 @@ ThSI: thSIceAdvScheme = 77 ThSI: thSIceBalanceAtmFW= 0 ThSI: thSIce_diffK = 0.0000000000000E+00 - ThSI: thSIce_deltaT = 1.8000000000000E+03 - ThSI: ocean_deltaT = 1.8000000000000E+03 + ThSI: thSIce_deltaT = 9.0000000000000E+02 + ThSI: ocean_deltaT = 9.0000000000000E+02 ThSI: stepFwd_oceMxL = F ThSI: tauRelax_MxL = 0.0000000000000E+00 ThSI: tauRelax_MxL_salt = 0.0000000000000E+00 @@ -787,6 +792,9 @@ (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 8.640000000000000E+07 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -847,22 +855,31 @@ (PID.TID 0000.0001) sstExtrapol = /* extrapolation coeff from lev. 1 & 2 to surf [-] */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_1 = /* coef used in drag calculation [m/s] */ (PID.TID 0000.0001) 2.700000000000000E-03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_2 = /* coef used in drag calculation [-] */ (PID.TID 0000.0001) 1.420000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [?] */ +(PID.TID 0000.0001) cDrag_3 = /* coef used in drag calculation [s/m] */ (PID.TID 0000.0001) 7.640000000000000E-05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cDrag_8 = /* coef used in drag calculation [(s/m)^6] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cDragMax = /* maximum drag (Large and Yeager, 2009) [-] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* at maximum wind (Large and Yeager, 2009) [m/s] */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cStanton_1 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 3.270000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [?] */ +(PID.TID 0000.0001) cStanton_2 = /* coef used in Stanton number calculation [-] */ (PID.TID 0000.0001) 1.800000000000000E-02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cDalton = /* coef used in Dalton number calculation [?] */ +(PID.TID 0000.0001) cDalton = /* Dalton number [-] */ (PID.TID 0000.0001) 3.460000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) exf_scal_BulkCdn= /* Drag coefficient scaling factor [-] */ @@ -985,7 +1002,7 @@ (PID.TID 0000.0001) Seaice time stepping configuration > START < (PID.TID 0000.0001) ---------------------------------------------- (PID.TID 0000.0001) SEAICE_deltaTtherm= /* thermodynamic timestep */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 9.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) SEAICE_deltaTdyn = /* dynamic timestep */ (PID.TID 0000.0001) 1.800000000000000E+03 @@ -1248,35 +1265,35 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 256 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 258 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 224 SI_Fract -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 225 SI_Thick -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 226 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 227 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 226 SI_Fract is already set (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 227 SI_Tsrf -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 237 SIflx2oc -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 238 SIfrw2oc -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 239 SIsaltFx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 235 SIflxAtm -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 236 SIfrwAtm -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 163 SIuice -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 164 SIvice -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 149 SIheff -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 224 SI_Fract -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 225 SI_Thick -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 227 SI_Tsrf -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 224 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 229 SI_Tsrf +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 226 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 239 SIflx2oc +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 240 SIfrw2oc +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 241 SIsaltFx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 237 SIflxAtm +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 238 SIfrwAtm +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 165 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 166 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 165 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 166 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 151 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 226 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 227 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 226 SI_Fract is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 229 SI_Tsrf +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 226 SI_Fract is already set (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 26 THETA (PID.TID 0000.0001) space allocated for all diagnostics: 18 levels -(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 -(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 -(PID.TID 0000.0001) set mate pointer for diag # 163 SIuice , Parms: UU M1 , mate: 164 -(PID.TID 0000.0001) set mate pointer for diag # 164 SIvice , Parms: VV M1 , mate: 163 +(PID.TID 0000.0001) set mate pointer for diag # 165 SIuice , Parms: UU M1 , mate: 166 +(PID.TID 0000.0001) set mate pointer for diag # 166 SIvice , Parms: VV M1 , mate: 165 +(PID.TID 0000.0001) set mate pointer for diag # 165 SIuice , Parms: UU M1 , mate: 166 +(PID.TID 0000.0001) set mate pointer for diag # 166 SIvice , Parms: VV M1 , mate: 165 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: iceDiag (PID.TID 0000.0001) Levels: 1. (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot @@ -1285,25 +1302,25 @@ (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region (PID.TID 0000.0001) ------------------------------------------------------------ -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 224 SI_Fract -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 225 SI_Thick -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 226 SI_Fract +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 227 SI_Thick +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 226 SI_Fract has already been set (PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 227 SI_Tsrf -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 228 SI_Tice1 -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 229 SI_Tice2 -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 237 SIflx2oc -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 238 SIfrw2oc -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 239 SIsaltFx -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 235 SIflxAtm -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 236 SIfrwAtm -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 226 SI_SnowH -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 224 SI_Fract has already been set -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 163 SIuice -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 164 SIvice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 229 SI_Tsrf +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 226 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 230 SI_Tice1 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 226 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 231 SI_Tice2 +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 226 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 239 SIflx2oc +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 240 SIfrw2oc +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 241 SIsaltFx +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 237 SIflxAtm +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 238 SIfrwAtm +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 228 SI_SnowH +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 226 SI_Fract has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 165 SIuice +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 166 SIvice (PID.TID 0000.0001) space allocated for all stats-diags: 14 levels (PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done (PID.TID 0000.0001) ------------------------------------------------------------ @@ -1346,9 +1363,15 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.030000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1442,7 +1465,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -1509,28 +1532,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1552,7 +1578,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1561,10 +1587,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1736,8 +1762,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1754,6 +1780,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1761,16 +1790,16 @@ (PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 9.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 9.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 /* K = 1 */ +(PID.TID 0000.0001) 9.000000000000000E+02 /* K = 1 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ -(PID.TID 0000.0001) 1.800000000000000E+03 +(PID.TID 0000.0001) 9.000000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -1800,10 +1829,10 @@ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ -(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) 24 (PID.TID 0000.0001) ; (PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ -(PID.TID 0000.0001) 12 +(PID.TID 0000.0001) 24 (PID.TID 0000.0001) ; (PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -2024,15 +2053,6 @@ (PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ (PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rVel2wUnit = /* convert units: rVel -> wSpeed (=1 if z-coord)*/ -(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ -(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ -(PID.TID 0000.0001) 0.000000000000000E+00 /* K = 1 */ -(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -2144,29 +2164,29 @@ listId= 1 ; file name: iceDiag 11 | 11 | 86400.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 224 |SI_Fract| 1 | 0 | 1 | 0 | - 225 |SI_Thick| 2 | 1 | 1 | 0 | 0 | + 226 |SI_Fract| 1 | 0 | 1 | 0 | + 227 |SI_Thick| 2 | 1 | 1 | 0 | 0 | 26 |THETA | 3 | 0 | 1 | 0 | - 227 |SI_Tsrf | 4 | 1 | 1 | 0 | 0 | - 237 |SIflx2oc| 5 | 0 | 1 | 0 | - 238 |SIfrw2oc| 6 | 0 | 1 | 0 | - 239 |SIsaltFx| 7 | 0 | 1 | 0 | - 235 |SIflxAtm| 8 | 0 | 1 | 0 | - 236 |SIfrwAtm| 9 | 0 | 1 | 0 | - 163 |SIuice | 10 | 11 | 1 | 0 | 0 | - 164 |SIvice | 11 | 10 | 1 | 0 | 0 | + 229 |SI_Tsrf | 4 | 1 | 1 | 0 | 0 | + 239 |SIflx2oc| 5 | 0 | 1 | 0 | + 240 |SIfrw2oc| 6 | 0 | 1 | 0 | + 241 |SIsaltFx| 7 | 0 | 1 | 0 | + 237 |SIflxAtm| 8 | 0 | 1 | 0 | + 238 |SIfrwAtm| 9 | 0 | 1 | 0 | + 165 |SIuice | 10 | 11 | 1 | 0 | 0 | + 166 |SIvice | 11 | 10 | 1 | 0 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: snapshot nFlds, nActive, freq & phase , nLev 7 | 7 | -86400.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 163 |SIuice | 12 | 13 | 1 | 0 | 0 | - 164 |SIvice | 13 | 12 | 1 | 0 | 0 | - 149 |SIheff | 14 | 0 | 1 | 0 | - 224 |SI_Fract| 15 | 0 | 1 | 0 | - 225 |SI_Thick| 16 | 15 | 1 | 0 | 0 | - 227 |SI_Tsrf | 17 | 15 | 1 | 0 | 0 | + 165 |SIuice | 12 | 13 | 1 | 0 | 0 | + 166 |SIvice | 13 | 12 | 1 | 0 | 0 | + 151 |SIheff | 14 | 0 | 1 | 0 | + 226 |SI_Fract| 15 | 0 | 1 | 0 | + 227 |SI_Thick| 16 | 15 | 1 | 0 | 0 | + 229 |SI_Tsrf | 17 | 15 | 1 | 0 | 0 | 26 |THETA | 18 | 0 | 1 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 1 @@ -2176,20 +2196,20 @@ listId= 1 ; file name: iceStDiag 14 | 14 | 7200.000000 1800.000000 | Regions: 0 diag# | name | ipt | iMate | Volume | mate-Vol. | - 224 |SI_Fract| 1 | 0 | 0.00000E+00 | - 225 |SI_Thick| 2 | 1 | 0.00000E+00 | 0.00000E+00 | + 226 |SI_Fract| 1 | 0 | 0.00000E+00 | + 227 |SI_Thick| 2 | 1 | 0.00000E+00 | 0.00000E+00 | 26 |THETA | 3 | 0 | 0.00000E+00 | - 227 |SI_Tsrf | 4 | 1 | 0.00000E+00 | 0.00000E+00 | - 228 |SI_Tice1| 5 | 1 | 0.00000E+00 | 0.00000E+00 | - 229 |SI_Tice2| 6 | 1 | 0.00000E+00 | 0.00000E+00 | - 237 |SIflx2oc| 7 | 0 | 0.00000E+00 | - 238 |SIfrw2oc| 8 | 0 | 0.00000E+00 | - 239 |SIsaltFx| 9 | 0 | 0.00000E+00 | - 235 |SIflxAtm| 10 | 0 | 0.00000E+00 | - 236 |SIfrwAtm| 11 | 0 | 0.00000E+00 | - 226 |SI_SnowH| 12 | 1 | 0.00000E+00 | 0.00000E+00 | - 163 |SIuice | 13 | 0 | 0.00000E+00 | - 164 |SIvice | 14 | 0 | 0.00000E+00 | + 229 |SI_Tsrf | 4 | 1 | 0.00000E+00 | 0.00000E+00 | + 230 |SI_Tice1| 5 | 1 | 0.00000E+00 | 0.00000E+00 | + 231 |SI_Tice2| 6 | 1 | 0.00000E+00 | 0.00000E+00 | + 239 |SIflx2oc| 7 | 0 | 0.00000E+00 | + 240 |SIfrw2oc| 8 | 0 | 0.00000E+00 | + 241 |SIsaltFx| 9 | 0 | 0.00000E+00 | + 237 |SIflxAtm| 10 | 0 | 0.00000E+00 | + 238 |SIfrwAtm| 11 | 0 | 0.00000E+00 | + 228 |SI_SnowH| 12 | 1 | 0.00000E+00 | 0.00000E+00 | + 165 |SIuice | 13 | 0 | 0.00000E+00 | + 166 |SIvice | 14 | 0 | 0.00000E+00 | ------------------------------------------------------------------------ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: windx.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tair_4x.bin @@ -2242,9 +2262,9 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.8450272197654E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1005110787306E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3908243744528E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 @@ -2409,29 +2429,40 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.33439597E-01 1.20506078E-01 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.35737084E+03 5.23300008E+02 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.10611793E-06 1.19316739E-02 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 502 9.93356005E-13 7.37873538E-09 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.90680830E-01 1.27481070E-01 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.89176982E+01 1.13326545E+01 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.33219075E-05 5.95807665E-02 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 392 9.51150400E-13 2.95263878E-10 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 8.33439597E-01 1.20506078E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.35740960E+03 5.23309025E+02 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 1.10610101E-06 1.19317410E-02 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 502 9.93358824E-13 7.37875585E-09 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 7.90681342E-01 1.27481328E-01 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 8.89207011E+01 1.13330631E+01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.33228975E-05 5.95852058E-02 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 392 9.51135221E-13 2.95269106E-10 + Computing Diagnostic # 165 SIuice Counter: 1 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 166 SIvice exists + Computing Diagnostic # 166 SIvice Counter: 1 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 165 SIuice exists + Computing Diagnostic # 151 SIheff Counter: 1 Parms: SM M1 + Computing Diagnostic # 226 SI_Fract Counter: 1 Parms: SM P M1 + Computing Diagnostic # 227 SI_Thick Counter: 1 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 226 SI_Fract + Computing Diagnostic # 229 SI_Tsrf Counter: 1 Parms: SM C M1 + use Counter Mate for SI_Tsrf Diagnostic # 226 SI_Fract + Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 1 +(PID.TID 0000.0001) %MON seaice_tsnumber = 2 (PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 2.8588538990214E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 6.3158501874265E-03 -(PID.TID 0000.0001) %MON seaice_uice_mean = 1.8809666978113E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 9.5014074230491E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 6.5182695329844E-05 -(PID.TID 0000.0001) %MON seaice_vice_max = 7.5679091185730E-03 -(PID.TID 0000.0001) %MON seaice_vice_min = -7.2445989601779E-03 -(PID.TID 0000.0001) %MON seaice_vice_mean = -7.7328976195178E-05 -(PID.TID 0000.0001) %MON seaice_vice_sd = 2.9082343728416E-03 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 2.1051239057076E-06 +(PID.TID 0000.0001) %MON seaice_uice_max = 2.8588000066545E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 6.3156810660238E-03 +(PID.TID 0000.0001) %MON seaice_uice_mean = 1.8809306801570E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 9.5012357249819E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 6.5181397629905E-05 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.5677056007996E-03 +(PID.TID 0000.0001) %MON seaice_vice_min = -7.2442628295366E-03 +(PID.TID 0000.0001) %MON seaice_vice_mean = -7.7305000521621E-05 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.9081319040201E-03 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 2.1050494703053E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2439,97 +2470,86 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+03 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9482539206043E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9484400013076E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9998139192967E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0004330219441E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0009940250930E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0000194816748E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0473312138041E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0032785765516E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9482538941805E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9484399388042E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9998139553763E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0004338012067E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0009936816331E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0000210885584E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.0475036719926E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0032725098115E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1061754211703E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1041015850334E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1077041376421E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.6805798424775E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.6805798424775E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -4.8735132065731E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.8735132065731E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.7313802408098E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.7314309797875E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.7313428206372E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -1.8720116256869E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8720116256869E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.5937877370027E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.5937877370027E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6842901256825E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6842963230426E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6842855551079E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.7014671239557E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7014671239557E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -1.2740344225381E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6674843024137E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1584483659420E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1067950084854E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1046960134778E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1083422706283E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.6827608886553E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.6828508071288E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -4.8788224216476E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.8843608268018E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.7324035285965E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.7324979260096E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.7323339102459E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -1.8761664991455E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -1.8761664991455E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.5922224773333E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.5922133894237E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6820766560794E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6820859208102E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6820698233151E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.6969787872540E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.6969787872540E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -1.2381641165479E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6674315639644E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1584611394473E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 163 SIuice Counter: 1 Parms: UU M1 - Vector Mate for SIuice Diagnostic # 164 SIvice exists - Computing Diagnostic # 164 SIvice Counter: 1 Parms: VV M1 - Vector Mate for SIvice Diagnostic # 163 SIuice exists - Computing Diagnostic # 149 SIheff Counter: 1 Parms: SM M1 - Computing Diagnostic # 224 SI_Fract Counter: 1 Parms: SM P M1 - Computing Diagnostic # 225 SI_Thick Counter: 1 Parms: SM PC M1 - use Counter Mate for SI_Thick Diagnostic # 224 SI_Fract - Computing Diagnostic # 227 SI_Tsrf Counter: 1 Parms: SM C M1 - use Counter Mate for SI_Tsrf Diagnostic # 224 SI_Fract - Computing Diagnostic # 26 THETA Counter: 1 Parms: SMR MR - Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 6.950E+10 Parms: SM P M1 - Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 6.950E+10 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 - Compute Stats, Diag. # 26 THETA vol( 0 ): 6.950E+11 Parms: SMR MR - Compute Stats, Diag. # 227 SI_Tsrf vol( 0 ): 6.950E+10 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 - Compute Stats, Diag. # 228 SI_Tice1 vol( 0 ): 6.950E+10 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 - Compute Stats, Diag. # 229 SI_Tice2 vol( 0 ): 6.950E+10 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 - Compute Stats, Diag. # 237 SIflx2oc vol( 0 ): 6.950E+10 Parms: SM M1 - Compute Stats, Diag. # 238 SIfrw2oc vol( 0 ): 6.950E+10 Parms: SM M1 - Compute Stats, Diag. # 239 SIsaltFx vol( 0 ): 6.950E+10 Parms: SM M1 - Compute Stats, Diag. # 235 SIflxAtm vol( 0 ): 6.950E+10 Parms: SM M1 - Compute Stats, Diag. # 236 SIfrwAtm vol( 0 ): 6.950E+10 Parms: SM M1 - Compute Stats, Diag. # 226 SI_SnowH vol( 0 ): 6.950E+10 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 6.950E+10 integral 6.950E+10 - Compute Stats, Diag. # 163 SIuice vol( 0 ): 6.900E+10 Parms: UU M1 - Compute Stats, Diag. # 164 SIvice vol( 0 ): 6.750E+10 Parms: VV M1 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.61369648E-01 8.44250267E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.68665702E+00 8.55301968E-01 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.80406220E-05 1.50070478E-02 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 258 9.63110017E-13 1.19420313E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.34112401E-01 3.69954996E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.16868230E+00 9.56491850E-01 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 4.66677409E-05 3.08486168E-02 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 270 9.62192132E-13 1.03501443E-11 + Compute Stats, Diag. # 226 SI_Fract vol( 0 ): 1.390E+11 Parms: SM P M1 + Compute Stats, Diag. # 227 SI_Thick vol( 0 ): 1.390E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 1.390E+11 integral 1.390E+11 + Compute Stats, Diag. # 26 THETA vol( 0 ): 1.390E+12 Parms: SMR MR + Compute Stats, Diag. # 229 SI_Tsrf vol( 0 ): 1.390E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 1.390E+11 integral 1.390E+11 + Compute Stats, Diag. # 230 SI_Tice1 vol( 0 ): 1.390E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 1.390E+11 integral 1.390E+11 + Compute Stats, Diag. # 231 SI_Tice2 vol( 0 ): 1.390E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 1.390E+11 integral 1.390E+11 + Compute Stats, Diag. # 239 SIflx2oc vol( 0 ): 1.390E+11 Parms: SM M1 + Compute Stats, Diag. # 240 SIfrw2oc vol( 0 ): 1.390E+11 Parms: SM M1 + Compute Stats, Diag. # 241 SIsaltFx vol( 0 ): 1.390E+11 Parms: SM M1 + Compute Stats, Diag. # 237 SIflxAtm vol( 0 ): 1.390E+11 Parms: SM M1 + Compute Stats, Diag. # 238 SIfrwAtm vol( 0 ): 1.390E+11 Parms: SM M1 + Compute Stats, Diag. # 228 SI_SnowH vol( 0 ): 1.390E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 1.390E+11 integral 1.390E+11 + Compute Stats, Diag. # 165 SIuice vol( 0 ): 1.380E+11 Parms: UU M1 + Compute Stats, Diag. # 166 SIvice vol( 0 ): 1.350E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.61374744E-01 8.44258091E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.68679036E+00 8.55357363E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 2.80411895E-05 1.50086187E-02 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 258 9.63235351E-13 1.19441475E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.34115283E-01 3.69964148E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.17416284E+00 9.56565548E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 4.66702394E-05 3.08514139E-02 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 270 9.62336981E-13 1.03523419E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 2 +(PID.TID 0000.0001) %MON seaice_tsnumber = 4 (PID.TID 0000.0001) %MON seaice_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 5.7807660076686E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 7.6992714497757E-02 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.7854220678156E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 1.2242666035877E-01 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3488615758411E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 7.8688415828962E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -6.5186002991134E-02 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.4023426425965E-05 -(PID.TID 0000.0001) %MON seaice_vice_sd = 2.3606014777294E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.4373451166640E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.7807290264585E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 7.6989476680113E-02 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.7853763599652E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 1.2242841515388E-01 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3493723830527E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 7.8686073621970E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -6.5185017103690E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.3971467396988E-05 +(PID.TID 0000.0001) %MON seaice_vice_sd = 2.3605465992030E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 4.4379323458012E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2537,67 +2557,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 3.6000000000000E+03 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9414311146224E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9422127142203E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9992184004021E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0023094662288E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0051088233824E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0002499877547E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.1986068207362E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0056667957720E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9414293900784E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9422098395879E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9992195504905E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0023046027326E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0051046362209E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0002446292861E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.2011100178263E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0056939094410E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1239783365740E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1207215615041E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1263743360065E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.7726641121678E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.7728191925572E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -4.4348326213349E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.4449547478908E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.7668708295472E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.7670590580831E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.7667320140088E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.0491658321426E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.0491658321426E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.5036973913289E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.5036667845608E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6786586000252E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6786827157639E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6786408150532E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.7240266571417E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7240266571417E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.9157790696120E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6358728871486E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1593950894880E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1250019588391E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1216806717896E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1274454164472E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.7771424441881E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.7772833679670E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -4.3545028444741E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.4266869827375E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.7691652258210E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.7696490602620E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.7688084058902E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.0577655402391E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.0577635921326E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.5010642528897E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.5009636285080E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6760684813046E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6761447235940E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6760122538720E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.7191410044165E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7191409129949E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -9.4895451591682E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6352753252117E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1594197067727E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.26658341E-01 4.15281431E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.77943971E+00 8.70396467E-01 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 4.06148434E-06 2.57666877E-03 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 196 9.53277388E-13 5.89503961E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.87919033E-02 3.15645218E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.78094400E+00 6.09113832E-01 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.95466824E-07 1.33282802E-04 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 254 9.39668482E-13 1.46633909E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.26656329E-01 4.15632034E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.78005127E+00 8.70498945E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 4.06316765E-06 2.57821920E-03 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 196 9.55149154E-13 5.89483068E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 5.87877427E-02 3.15724810E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.78061321E+00 6.09150236E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.95568878E-07 1.33347117E-04 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 254 9.42381589E-13 1.47041311E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 3 +(PID.TID 0000.0001) %MON seaice_tsnumber = 6 (PID.TID 0000.0001) %MON seaice_time_sec = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 5.6891298230317E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.5749667813549E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5811444304616E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6930548942553E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2342478196938E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 9.5486412298207E-02 -(PID.TID 0000.0001) %MON seaice_vice_min = -9.1048900751943E-02 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.2949626640188E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4248136980704E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.5150437111547E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.6891177835247E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.5745373987876E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.5810429651922E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.6951140013552E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2359319516150E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 9.5483540829499E-02 +(PID.TID 0000.0001) %MON seaice_vice_min = -9.1015574102371E-02 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.2892901876725E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 3.4237698314309E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.5506460670904E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2605,67 +2625,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 5.4000000000000E+03 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9354148532712E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9365042416983E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9989106115729E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0039539618881E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0089291099419E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0003005810597E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.3852802861800E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0084559111782E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9354178967083E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9365002145323E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9989176821760E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0039394283965E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0089128847835E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0002873012690E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.3902108812363E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0084791435179E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1431724283421E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1387827424208E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1463958890742E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.8654066932352E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.8655229736811E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -3.9277201093244E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.0509623253455E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8051525093210E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8059522713097E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8045626899307E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.2273422907968E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.2273397032330E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.4262355299130E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.4259718618112E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6798211599325E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6799953606682E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6796926879956E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.7600802698739E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7600800375891E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -8.0345206461562E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6063570236205E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1602323844881E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1448758534892E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1405355736147E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1480630240676E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.8722791657586E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.8725360181309E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -3.7938160421084E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -4.0332739240400E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8086461718062E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8099052970708E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8077175791659E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.2405141599266E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.2405062418046E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.4229026798472E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.4225588375799E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6776741671195E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6779464190383E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6774733839764E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.7567348733397E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.7567347614707E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -7.6443920159708E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.6051681520032E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1602693972947E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.35697727E-02 2.67236872E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.93703865E+00 6.75491665E-01 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 5.78381271E-08 2.22095442E-05 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 322 9.45719197E-13 1.66131865E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.75870054E-02 2.01959772E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.60648855E+00 7.75344449E-01 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.66262704E-09 5.58247590E-07 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 318 9.69887365E-13 1.66420646E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 3.35315910E-02 2.66781713E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 4.93701800E+00 6.75531874E-01 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 5.78302463E-08 2.22087882E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 322 9.52047469E-13 1.67243732E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 2.75449623E-02 2.01714202E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.59855301E+00 7.75214232E-01 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.65500991E-09 5.55118748E-07 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 318 9.76690950E-13 1.67558196E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 4 +(PID.TID 0000.0001) %MON seaice_tsnumber = 8 (PID.TID 0000.0001) %MON seaice_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 5.8982742684367E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.9150851298278E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6356065600540E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 7.7977107400177E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1653537495617E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.1538507746618E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.1094124704967E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9796273101786E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 4.3785448218009E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.6491764642222E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.8983256057547E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.9137442619644E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6355089676598E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.7999416089823E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1675196807897E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.1538111752947E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1087779650532E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9686042397536E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.3765416554726E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.6979913856911E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2673,67 +2693,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 7.2000000000000E+03 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9296913827799E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9311607718514E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9985306109285E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0055264302254E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0125278590856E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0003939664233E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.5793126486325E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0105337184767E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9297009462262E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9311564259609E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9985445202654E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0055002136064E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0124986283430E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0003699847888E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.5865953753667E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0105767139050E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1630543313741E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1578380779645E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1668781553880E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9566612853199E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.9570193716355E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -3.3853821338370E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.7146909354540E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8442924501689E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8458892285763E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8431148164538E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4023629063389E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.4023523415582E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.3587409875908E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.3582577313353E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6853523251104E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6857707838748E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6850437092454E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.8042885497049E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.8042881328034E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -6.7513567691282E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5793849361828E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1609632415625E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1654258444250E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1603676060524E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1691338156216E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -3.9658528334590E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -3.9664242707770E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -3.2466466541540E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.6953910997276E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8489945583475E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8512030011265E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8473658306767E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.4199482701582E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.4199350324383E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.3549784458104E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.3544127852447E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6839976973750E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6845669773004E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6835778531410E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.8032918619329E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.8032904498778E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -6.4301781791629E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5777223281387E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1610083310406E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.01968877E-02 1.74801194E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.21468423E+00 1.01997643E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.88077228E-08 2.15340140E-05 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 314 9.54590573E-13 1.54933965E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.84436598E-02 1.45901818E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.33067047E+00 1.14105060E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.11520841E-08 3.23885967E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 306 9.86211113E-13 1.52356859E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 2.01474749E-02 1.74877914E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.21349508E+00 1.02062284E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 3.88575469E-08 2.15727103E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 314 9.64429925E-13 1.56476245E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.83886741E-02 1.45882873E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.33557346E+00 1.14253243E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.11460856E-08 3.23895562E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 306 9.96633331E-13 1.53937991E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 5 +(PID.TID 0000.0001) %MON seaice_tsnumber = 10 (PID.TID 0000.0001) %MON seaice_time_sec = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON seaice_uice_max = 5.9802931036510E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 2.0317531626883E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6425019839911E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8490041340796E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1441063691113E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.2570559680669E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.1934228724376E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0869260423667E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 4.8463231065269E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.9365278604046E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 5.9804249676075E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.0288596445772E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6423809821367E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.8516274025035E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1485102684851E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.2571562563925E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.1931367955632E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -2.0793454983409E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 4.8451654598116E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 5.9915022021375E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2741,86 +2761,86 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 9.0000000000000E+03 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9241184998669E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9260057193998E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9981127804671E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0070723303238E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0160297180381E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0005168955168E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.7554053642010E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0126789686398E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9241329971173E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9259997977431E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9981331993741E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0070358346888E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0159891252735E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0004834450775E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.7658682927254E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0127315508117E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1828070291845E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1769534876847E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1870909243240E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.0444559723380E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.0451483063413E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -2.8886249192206E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.4198572566762E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8829368946781E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8853900652333E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8811276280220E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.5704612754284E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.5704409227865E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.2906441892946E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.2986911710271E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6935818863641E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6943093864164E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6930453392479E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.8528070623051E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.8528036508145E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -5.8520713961356E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5550199795551E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1615849216043E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.1857895262030E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1801893707638E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.1898879523597E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.0557317391770E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.0566016345845E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -2.7595195736235E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.3995554539898E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.8887637160368E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.8919624695642E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.8864045905951E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.5920039700698E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.5919851480787E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.2902352418359E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.2945876887886E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.6931137864937E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.6940465026439E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.6924258952945E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.8543615499512E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.8543571540238E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -5.6018328935305E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5530353895910E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1616355600590E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 - Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.775E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.775E+11 - Compute Stats, Diag. # 26 THETA vol( 0 ): 2.780E+12 Parms: SMR MR - Compute Stats, Diag. # 227 SI_Tsrf vol( 0 ): 2.775E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.775E+11 - Compute Stats, Diag. # 228 SI_Tice1 vol( 0 ): 2.775E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.775E+11 - Compute Stats, Diag. # 229 SI_Tice2 vol( 0 ): 2.775E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.775E+11 - Compute Stats, Diag. # 237 SIflx2oc vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 238 SIfrw2oc vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 239 SIsaltFx vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 235 SIflxAtm vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 236 SIfrwAtm vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 226 SI_SnowH vol( 0 ): 2.775E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.775E+11 - Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 - Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.65286881E-02 1.32420393E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.83220303E+00 1.43684623E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.53712374E-08 7.05272233E-05 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 300 8.91689500E-13 1.29412478E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.54050368E-02 1.12975451E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 6.19390190E+00 1.60761310E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 7.23271565E-08 6.93622821E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 290 9.57053881E-13 1.32909476E-11 + Compute Stats, Diag. # 226 SI_Fract vol( 0 ): 5.560E+11 Parms: SM P M1 + Compute Stats, Diag. # 227 SI_Thick vol( 0 ): 5.550E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.550E+11 + Compute Stats, Diag. # 26 THETA vol( 0 ): 5.560E+12 Parms: SMR MR + Compute Stats, Diag. # 229 SI_Tsrf vol( 0 ): 5.550E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.550E+11 + Compute Stats, Diag. # 230 SI_Tice1 vol( 0 ): 5.550E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.550E+11 + Compute Stats, Diag. # 231 SI_Tice2 vol( 0 ): 5.550E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.550E+11 + Compute Stats, Diag. # 239 SIflx2oc vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 240 SIfrw2oc vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 241 SIsaltFx vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 237 SIflxAtm vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 238 SIfrwAtm vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 228 SI_SnowH vol( 0 ): 5.550E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.550E+11 + Compute Stats, Diag. # 165 SIuice vol( 0 ): 5.520E+11 Parms: UU M1 + Compute Stats, Diag. # 166 SIvice vol( 0 ): 5.400E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.65039166E-02 1.32573898E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 5.84451846E+00 1.44016278E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.55997000E-08 7.08609319E-05 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 300 9.03319086E-13 1.31059602E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.53774066E-02 1.13017321E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 6.20860400E+00 1.61163385E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 7.23390670E-08 6.93762040E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 290 9.69072045E-13 1.34573989E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 6 +(PID.TID 0000.0001) %MON seaice_tsnumber = 12 (PID.TID 0000.0001) %MON seaice_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.0271002183890E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 2.0325160339660E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6431394904546E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9048235770198E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1657043178640E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.3233633431919E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2270431313089E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9919316248966E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.0610015476114E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 6.3948850385583E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0272989798091E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 2.0268649110057E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6429764288548E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9084292541976E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.1743857299103E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.3237997594615E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2270613198675E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.9877666830768E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.0607843282868E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 6.4779144790048E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2828,67 +2848,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.0800000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9186130767648E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9209406114052E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9976724653596E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0086197155187E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0194983974830E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0006710943589E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.9109432053516E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0149481608594E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9186318841831E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9209333757007E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9976985084824E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0085745616970E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0194479135373E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0006299064839E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 2.9244142660767E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0149646652779E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2018112933445E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1954033108485E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2064933518352E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.1272069328350E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.1281410834954E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -2.4530759663426E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.1588424803268E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9200127961011E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.9232697185370E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9176106979478E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.7286443096108E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.7286098861134E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.2245486015227E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.2458530284538E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7033247288949E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7043908417704E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7025384320703E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.9028328908369E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9028233756374E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -5.2024678094934E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5331293703025E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1621020509718E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2053185097194E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.1992427996829E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2097577499944E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.1402151774893E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.1412788315055E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -2.3365569560822E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -3.1379494691207E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9268078043763E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.9309195073691E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9237753152757E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.7534614374722E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.7534329443252E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.2235710556563E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.2416067129471E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7037063503453E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7050298396926E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7027302421421E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.9068103206369E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9068010820486E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -5.0134920610812E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5309576805998E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1621551182925E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.43895331E-02 1.08581144E-02 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.22402898E+00 1.99239410E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.24478084E-08 9.94218690E-05 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 286 9.93281846E-13 1.34111800E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.33307215E-02 9.65750596E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.86985072E+00 2.20981877E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.19661792E-08 6.88334983E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 278 9.05490960E-13 1.18792542E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.44401064E-02 1.08624927E-02 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.23988495E+00 1.99879352E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.32915121E-08 1.00284203E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 288 8.84903262E-13 1.19703342E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.33704452E-02 9.65874887E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 7.88075353E+00 2.21624733E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 5.20356076E-08 6.88883739E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 278 9.16836052E-13 1.20255348E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 7 +(PID.TID 0000.0001) %MON seaice_tsnumber = 14 (PID.TID 0000.0001) %MON seaice_time_sec = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.0594743637505E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.9668666055706E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6420048691356E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9611559624848E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2108781999301E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.4142700823969E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2457470571817E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.8372083919213E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1777139670197E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.0902580281430E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0597832719700E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.9587160155422E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6417954781457E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 7.9660020906589E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2249909167169E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.4175339456169E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2460343548074E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.8355017971547E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.1779694171590E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.2272692353903E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2896,67 +2916,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.2600000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9131362123586E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9159262909910E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9972099213676E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0101815601741E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0229593826690E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0008602612462E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.0477977254317E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0176326792403E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9131585353562E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9159178085501E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9972407268061E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0101296534554E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0229009658511E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0008132024837E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.0637956073484E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0177252799137E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2196341655256E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2126799808244E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2247071765512E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.2038178906114E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.2049009781240E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -2.0748315029443E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.9258225453245E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9547416864288E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.9586654698600E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9518477098094E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.8748583757378E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.8748005746758E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.1643315220594E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1986382393090E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7137364331147E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7151380947746E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7127026410762E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.9523396082997E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9523203655224E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -4.7177400602053E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5134940096244E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1625204413235E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2235576907135E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2169992162156E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2283419841530E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.2181336951722E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.2193106898588E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.9708417624625E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.9046782023017E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9623009740336E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.9671645003117E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9587139497344E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -2.9021317150885E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -2.9020866166180E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.1629765915039E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1943270438412E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7148663811638E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7165726377178E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7136079560275E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.9584333906790E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9584168842558E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -4.5774717131947E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.5112385201009E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1625727935927E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.32839981E-02 9.92624199E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.53642241E+00 2.71093488E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.17123634E-08 1.04704329E-04 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 280 8.82863227E-13 1.14189873E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.23308519E-02 9.01141463E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.03926360E+01 2.84049552E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.46436493E-08 5.76068614E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 270 8.88317198E-13 1.12647777E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.33984080E-02 9.91979500E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 9.50521764E+00 2.71432983E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.25946989E-08 1.05814487E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 280 8.94333219E-13 1.15616658E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.24349093E-02 9.00398432E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.03150195E+01 2.84081135E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 3.46322855E-08 5.76843390E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 270 8.97733277E-13 1.13794136E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 8 +(PID.TID 0000.0001) %MON seaice_tsnumber = 16 (PID.TID 0000.0001) %MON seaice_time_sec = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.0858542498772E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.8564872747978E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6402672565373E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0214773739535E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2677124170441E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.4982412770843E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2593345052758E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.6771675316785E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.2568960930114E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 7.9974819061584E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.0861899485746E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.8465289478520E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6400141408549E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0276309223622E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.2879213720739E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5020803676210E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2597919963047E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.6780796309721E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.2571749568313E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 8.1651092192841E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -2964,67 +2984,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.4400000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9076741820902E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9109471420227E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9967270400676E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0117620531205E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0264229591747E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0010840352949E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.1692742967036E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0205659702328E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9076991480584E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9109374378608E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9967617101976E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0117053419963E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0263586865935E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0010329595851E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.1872326905373E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0206336383271E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2359954691800E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2284564592520E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2414863769110E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.2736669602223E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.2748436426499E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.7465400952675E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.7163626575909E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9866173586171E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -1.9910205180916E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9833697849151E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.0079621185142E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.0078681490686E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.1094854920328E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1561730446095E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7242207637134E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7259292055387E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7229606933536E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -1.9999063687280E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -1.9998729531211E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -4.3438233865282E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4958683318289E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1628469915727E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2402165136845E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2331219533384E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2453836521867E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.2888436550018E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.2900945489297E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.6542286360969E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.6952108277852E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -1.9947176528851E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0001217702152E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -1.9907318899383E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.0368366562233E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.0367667873003E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.1078963442638E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1518493817367E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7259697237073E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7280228790905E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7244554355913E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0077224070628E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0076957471264E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -4.2405007698369E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4936011181381E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1628957160545E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.24954112E-02 8.93029391E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.48169248E+01 3.04014438E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.20876211E-08 1.02912158E-04 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 274 9.24357813E-13 1.15448612E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.16660157E-02 8.55093894E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.92634011E+01 3.13144751E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.76194321E-08 4.35057217E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 264 9.09466946E-13 1.12037791E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.26440309E-02 8.90616931E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.43290646E+01 3.02912731E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 8.28755621E-08 1.04026361E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 274 9.35494737E-13 1.16779547E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.18104256E-02 8.51066199E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 1.83322157E+01 3.10025392E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.75245828E-08 4.35072852E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 264 9.17058096E-13 1.12912132E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 9 +(PID.TID 0000.0001) %MON seaice_tsnumber = 18 (PID.TID 0000.0001) %MON seaice_time_sec = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.1077959402359E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.7035467791643E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6382991153608E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0851969050731E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3292257116359E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.5688883378583E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2732849329198E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.5338594318180E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.3184105029352E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 8.9503900221658E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1081222663487E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.6918403711525E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6380069143378E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.0927166633950E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3547840774025E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.5731286048729E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2741542456306E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.5374913369231E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.3182199101814E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.1211432762648E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3032,86 +3052,86 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.6200000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9022188701181E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9059960123102E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9962228578079E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0133627404359E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0298936539525E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0013416969486E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.2786423728301E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0237081943745E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.9022455187348E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9059849370683E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9962605816665E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0133030834318E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0298256465531E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0012882714416E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.2980568938115E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0237339473992E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2507405435278E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2425496316426E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2566968573076E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.3365397959956E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.3377862447673E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.4610107131034E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.5269527253841E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0153685012717E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0200367289189E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0119254032814E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.1275923072412E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.1274479286559E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.0594677728930E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1177572688673E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7343676254975E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7363350773535E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7329165117038E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0445916532890E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0445390420582E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -4.0459247146516E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4800111932061E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1630892081632E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2551419939523E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2474305066354E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2607496027474E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.3521514058966E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.3534664580762E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.3791709054080E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.5059640232032E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0237894275540E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0294977888736E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0195792530248E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.1572559748898E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.1571529660825E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.0577457709557E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.1134558062533E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7365992046368E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7389431710183E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7348704234675E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0537077719769E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0536678692777E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.9698204639433E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4777786892524E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1631317603354E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.780E+11 Parms: SM P M1 - Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.766E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.766E+11 - Compute Stats, Diag. # 26 THETA vol( 0 ): 2.780E+12 Parms: SMR MR - Compute Stats, Diag. # 227 SI_Tsrf vol( 0 ): 2.766E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.766E+11 - Compute Stats, Diag. # 228 SI_Tice1 vol( 0 ): 2.766E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.766E+11 - Compute Stats, Diag. # 229 SI_Tice2 vol( 0 ): 2.766E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.766E+11 - Compute Stats, Diag. # 237 SIflx2oc vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 238 SIfrw2oc vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 239 SIsaltFx vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 235 SIflxAtm vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 236 SIfrwAtm vol( 0 ): 2.780E+11 Parms: SM M1 - Compute Stats, Diag. # 226 SI_SnowH vol( 0 ): 2.766E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.780E+11 integral 2.766E+11 - Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.760E+11 Parms: UU M1 - Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.700E+11 Parms: VV M1 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.18354544E-02 8.41435659E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.12673387E+01 3.69213251E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.90586727E-08 1.01321687E-04 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 270 9.20721832E-13 1.11778027E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.13171231E-02 7.61492199E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.07626653E+01 3.72258866E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.28712855E-08 3.54177171E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 260 8.89038843E-13 1.06676904E-11 + Compute Stats, Diag. # 226 SI_Fract vol( 0 ): 5.560E+11 Parms: SM P M1 + Compute Stats, Diag. # 227 SI_Thick vol( 0 ): 5.532E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.532E+11 + Compute Stats, Diag. # 26 THETA vol( 0 ): 5.560E+12 Parms: SMR MR + Compute Stats, Diag. # 229 SI_Tsrf vol( 0 ): 5.532E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.532E+11 + Compute Stats, Diag. # 230 SI_Tice1 vol( 0 ): 5.532E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.532E+11 + Compute Stats, Diag. # 231 SI_Tice2 vol( 0 ): 5.532E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.532E+11 + Compute Stats, Diag. # 239 SIflx2oc vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 240 SIfrw2oc vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 241 SIsaltFx vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 237 SIflxAtm vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 238 SIfrwAtm vol( 0 ): 5.560E+11 Parms: SM M1 + Compute Stats, Diag. # 228 SI_SnowH vol( 0 ): 5.532E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 5.560E+11 integral 5.532E+11 + Compute Stats, Diag. # 165 SIuice vol( 0 ): 5.520E+11 Parms: UU M1 + Compute Stats, Diag. # 166 SIvice vol( 0 ): 5.400E+11 Parms: VV M1 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.19937421E-02 8.37422470E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.00600323E+01 3.63151604E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.97904599E-08 1.02390962E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 270 9.32018351E-13 1.13074557E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.14051678E-02 7.65785541E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 3.00108638E+01 3.66921803E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 2.27128536E-08 3.53107626E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 260 8.95436503E-13 1.07369089E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 10 +(PID.TID 0000.0001) %MON seaice_tsnumber = 20 (PID.TID 0000.0001) %MON seaice_time_sec = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.1264395785013E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.5501879708363E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6362357050274E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 8.1510372863770E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.3906985330909E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.6276649255362E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.2886034307673E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.4127793186979E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.3687781491635E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 9.8852186308901E-05 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1267080708919E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.5371301854211E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6359093605089E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.1598574764103E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4216309850147E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6321246085179E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.2895990482468E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.4192151104136E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.3678004902023E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0089827949107E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3119,67 +3139,67 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.8000000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8967680088890E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9010687460823E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9956992628067E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0149827949730E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0333736863669E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0016301283366E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.3785198526001E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0274963329694E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8967956829878E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.9010563706469E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9957393123409E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0149217712679E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0333037533172E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0015757639434E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.3990303911865E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0274571170437E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2638160019695E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2548888427737E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2702975464580E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.3925375451391E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.3938497752739E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.2116332597736E-01 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.3547677031819E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0409102901999E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0456196760332E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0374368256599E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.2339832150077E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.2337740893389E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.0137553327077E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0828231690896E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7439076626016E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7460735230213E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7423102060260E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0858307884428E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0857537363363E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.8014136011543E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4657004220877E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1632547684349E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2682900021204E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2598648589828E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2744069715377E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.4082068543005E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.4095946010703E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -1.1391435143056E-01 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.3340566270581E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0494494801934E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0552183610664E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0451946638310E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.2637192222359E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.2635750519245E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -1.0119697831286E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0785659972275E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7464904556961E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7490558337333E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7445983707859E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.0958365390465E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.0957803191530E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.7449923057324E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4635299019426E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1632890409800E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.13647632E-02 7.37970701E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.84609422E+01 4.31243665E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.56648207E-08 1.00494862E-04 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 266 9.66435265E-13 1.14475217E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.06732424E-02 7.01528520E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.81210990E+01 4.61796132E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.94031690E-08 3.08526264E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 256 9.18917720E-13 1.07601357E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.15720550E-02 7.43284642E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.77293844E+01 4.18612852E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.64364875E-08 1.01624995E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 266 9.79882842E-13 1.15987784E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.08583551E-02 7.08763994E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.73707148E+01 4.47555832E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.92375366E-08 3.06611754E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 256 9.26383970E-13 1.08390186E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 11 +(PID.TID 0000.0001) %MON seaice_tsnumber = 22 (PID.TID 0000.0001) %MON seaice_time_sec = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.1424931346824E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.4059790586977E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6341382288413E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2178478907956E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4510029915098E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.6758657584423E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.3180828943523E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.3117894666680E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.4108443788555E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.0852540190449E-04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1426769318762E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.3919992895051E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6337819443470E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2278478612756E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.4866968172772E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.6803871069106E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3288547137667E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.3210486395847E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.4089763575233E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1118320037247E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3187,56 +3207,56 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 1.9800000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8913198917403E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8961628111754E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9951570805650E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0166208145281E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0368637416399E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0019463445365E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.4707521256980E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0314894516917E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8913469046700E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8961481042000E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9951988004700E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0165600783153E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0367942345259E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0018921941683E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.4922107184097E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0313697187067E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2752420606315E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2654859309407E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2823144583926E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.4419830223145E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.4433688973964E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -9.9277880468618E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.1975015075511E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0632952612766E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0678238294251E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0599551605447E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.3277852389717E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.3274976923468E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -9.7186862445535E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0509055322776E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7526773384921E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7549733052429E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7509839201812E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.1233484340801E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.1232417965908E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.5953873095487E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4527383941270E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1633512006595E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2796950325039E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2704527325524E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2863948416548E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.4573960247831E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.4588758897069E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -9.2834261563617E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.1771400055394E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0717774947243E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0773679694807E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0676542649798E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.3569985942131E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.3568058687890E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -9.7006573533213E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0467056858330E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7554919301499E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7582018764305E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7534932213467E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.1338705709479E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.1337951618448E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.5530385543329E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4506436691123E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1633755371494E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.06867732E-02 6.90835771E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.56309913E+01 5.02430402E+00 - SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.32660615E-08 1.00789960E-04 - SEAICE_LSR (ipass= 1) iters,dV,Resid= 264 9.26717036E-13 1.07690855E-11 - SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.02056773E-02 6.64252819E-03 - SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.47712738E+01 5.13013701E+00 - SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.68251150E-08 2.76365551E-05 - SEAICE_LSR (ipass= 2) iters,dV,Resid= 254 8.73509598E-13 1.00333108E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 1 1.08646080E-02 6.99242184E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.49199866E+01 4.87360492E+00 + SEAICE_LSR (ipass= 1) iters,dU,Resid= 1500 7.41646212E-08 1.02101708E-04 + SEAICE_LSR (ipass= 1) iters,dV,Resid= 264 9.42912415E-13 1.09499866E-11 + SEAICE_LSR: Residual Initial ipass,Uice,Vice= 2 1.03838491E-02 6.73659333E-03 + SEAICE_LSR: Residual FrDrift U_fd,V_fd= 2.40548176E+01 4.98030928E+00 + SEAICE_LSR (ipass= 2) iters,dU,Resid= 1500 1.67309966E-08 2.74316636E-05 + SEAICE_LSR (ipass= 2) iters,dV,Resid= 254 8.83140783E-13 1.01374740E-11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_tsnumber = 24 (PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 (PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 @@ -3258,22 +3278,22 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.8006686469634E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8006622332191E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4047422448573E-07 -(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6116166858956E+00 -(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6198943984140E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6145850790965E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.1226977817299E-03 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0060575435947E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.6116289876020E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6201505483769E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.6146038919065E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.1179978721758E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7916816120817E-06 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.9690054439531E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.2010221574612E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.9800257921617E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.9690054439531E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2010221574612E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.7816487489057E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.8450272197654E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.1005110787306E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4900128960809E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.8450272197654E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1005110787306E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.3908243744528E-02 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ke_max = 1.4564487757410E-01 @@ -3285,7 +3305,7 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) %MON vort_a_sd = 1.5889649807104E-05 (PID.TID 0000.0001) %MON vort_p_mean = -6.8228760045090E-22 (PID.TID 0000.0001) %MON vort_p_sd = 3.0669223294758E-05 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.8225539497177E-09 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.0203691997909E-09 (PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6750406018264E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics @@ -3293,18 +3313,18 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) %MON seaice_tsnumber = 12 +(PID.TID 0000.0001) %MON seaice_tsnumber = 24 (PID.TID 0000.0001) %MON seaice_time_sec = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON seaice_uice_max = 6.1564839876923E-01 -(PID.TID 0000.0001) %MON seaice_uice_min = 1.2759185985814E-01 -(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6320322271165E-01 -(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2846803437482E-02 -(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5088022259846E-04 -(PID.TID 0000.0001) %MON seaice_vice_max = 1.7150555247705E-01 -(PID.TID 0000.0001) %MON seaice_vice_min = -1.3767759317492E-01 -(PID.TID 0000.0001) %MON seaice_vice_mean = -1.2260255050367E-03 -(PID.TID 0000.0001) %MON seaice_vice_sd = 5.4467120912040E-02 -(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.1890009089601E-04 +(PID.TID 0000.0001) %MON seaice_uice_max = 6.1565635211976E-01 +(PID.TID 0000.0001) %MON seaice_uice_min = 1.2613902459537E-01 +(PID.TID 0000.0001) %MON seaice_uice_mean = 4.6316499903727E-01 +(PID.TID 0000.0001) %MON seaice_uice_sd = 8.2957326819679E-02 +(PID.TID 0000.0001) %MON seaice_uice_del2 = 1.5476426869189E-04 +(PID.TID 0000.0001) %MON seaice_vice_max = 1.7192269716743E-01 +(PID.TID 0000.0001) %MON seaice_vice_min = -1.3870837424919E-01 +(PID.TID 0000.0001) %MON seaice_vice_mean = -1.2384930761290E-03 +(PID.TID 0000.0001) %MON seaice_vice_sd = 5.4440484840901E-02 +(PID.TID 0000.0001) %MON seaice_vice_del2 = 1.2199920508588E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= @@ -3312,212 +3332,212 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Begin MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON thSI_time_sec = 2.1600000000000E+04 -(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8858735153395E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8912761539978E+10 -(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9945973613417E+10 -(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0182749748112E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0403636178056E-01 -(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0022872891982E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.5566815387252E-01 -(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0356003839215E-01 +(PID.TID 0000.0001) %MON thSI_Ice_Area_G = 6.8858968514095E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_S = 2.8912567388742E+10 +(PID.TID 0000.0001) %MON thSI_Ice_Area_N = 3.9946401125353E+10 +(PID.TID 0000.0001) %MON thSI_IceH_ave_G = 2.0182163425304E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_S = 2.0402976533078E-01 +(PID.TID 0000.0001) %MON thSI_IceH_ave_N = 2.0022342423186E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_S = 3.5785604279032E-01 +(PID.TID 0000.0001) %MON thSI_IceH_max_N = 2.0353250545789E-01 (PID.TID 0000.0001) %MON thSI_SnwH_ave_G = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_ave_N = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_S = 0.0000000000000E+00 (PID.TID 0000.0001) %MON thSI_SnwH_max_N = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2850900503564E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2744095745021E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2928205429086E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.4853386595504E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.4868129597643E+00 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -7.9936972183489E-02 -(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.0532496763094E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0826700761529E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0868053087914E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0796200912401E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.4099077906874E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.4095293208865E+00 -(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -9.3337931573189E-01 -(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0216195575216E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7605915023783E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7629457326682E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7588551147326E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.1570836631195E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.1569426779584E+00 -(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.4178883181588E-01 -(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4409528645202E+00 -(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1633856605353E+18 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_G = -2.2894451140387E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_S = -2.2792815782609E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_ave_N = -2.2968013189734E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_S = -4.5002485237845E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_min_N = -4.5018453860230E+00 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_S = -7.4169544557371E-02 +(PID.TID 0000.0001) %MON thSI_Tsrf_max_N = -2.0332776378401E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_G = -2.0909513482079E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_S = -2.0961372290412E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_ave_N = -2.0871265354632E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_S = -3.4381321259936E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_min_N = -3.4378842006290E+00 +(PID.TID 0000.0001) %MON thSI_Tic1_max_S = -9.3158922245359E-01 +(PID.TID 0000.0001) %MON thSI_Tic1_max_N = -1.0174834710637E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_G = -1.7635341457071E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_S = -1.7663091022987E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_ave_N = -1.7614874944864E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_S = -2.1678005130547E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_min_N = -2.1677033786135E+00 +(PID.TID 0000.0001) %MON thSI_Tic2_max_S = -3.3855418862721E-01 +(PID.TID 0000.0001) %MON thSI_Tic2_max_N = -1.4389387324759E+00 +(PID.TID 0000.0001) %MON thSI_TotEnerg_G = -4.1633988440614E+18 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= - Computing Diagnostic # 224 SI_Fract Counter: 12 Parms: SM P M1 - Computing Diagnostic # 225 SI_Thick Counter: 12 Parms: SM PC M1 - use Counter Mate for SI_Thick Diagnostic # 224 SI_Fract - Computing Diagnostic # 26 THETA Counter: 12 Parms: SMR MR - Computing Diagnostic # 227 SI_Tsrf Counter: 12 Parms: SM C M1 - use Counter Mate for SI_Tsrf Diagnostic # 224 SI_Fract - Computing Diagnostic # 237 SIflx2oc Counter: 12 Parms: SM M1 - Computing Diagnostic # 238 SIfrw2oc Counter: 12 Parms: SM M1 - Computing Diagnostic # 239 SIsaltFx Counter: 12 Parms: SM M1 - Computing Diagnostic # 235 SIflxAtm Counter: 12 Parms: SM M1 - Computing Diagnostic # 236 SIfrwAtm Counter: 12 Parms: SM M1 - Computing Diagnostic # 163 SIuice Counter: 12 Parms: UU M1 - Vector Mate for SIuice Diagnostic # 164 SIvice exists - Computing Diagnostic # 164 SIvice Counter: 12 Parms: VV M1 - Vector Mate for SIvice Diagnostic # 163 SIuice exists - Compute Stats, Diag. # 224 SI_Fract vol( 0 ): 2.085E+11 Parms: SM P M1 - Compute Stats, Diag. # 225 SI_Thick vol( 0 ): 2.069E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 - Compute Stats, Diag. # 26 THETA vol( 0 ): 2.085E+12 Parms: SMR MR - Compute Stats, Diag. # 227 SI_Tsrf vol( 0 ): 2.069E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 - Compute Stats, Diag. # 228 SI_Tice1 vol( 0 ): 2.069E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 - Compute Stats, Diag. # 229 SI_Tice2 vol( 0 ): 2.069E+11 Parms: SM C M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 - Compute Stats, Diag. # 237 SIflx2oc vol( 0 ): 2.085E+11 Parms: SM M1 - Compute Stats, Diag. # 238 SIfrw2oc vol( 0 ): 2.085E+11 Parms: SM M1 - Compute Stats, Diag. # 239 SIsaltFx vol( 0 ): 2.085E+11 Parms: SM M1 - Compute Stats, Diag. # 235 SIflxAtm vol( 0 ): 2.085E+11 Parms: SM M1 - Compute Stats, Diag. # 236 SIfrwAtm vol( 0 ): 2.085E+11 Parms: SM M1 - Compute Stats, Diag. # 226 SI_SnowH vol( 0 ): 2.069E+11 Parms: SM PC M1 - use Counter Mate # 224 SI_Fract vol( 0 ): 2.085E+11 integral 2.069E+11 - Compute Stats, Diag. # 163 SIuice vol( 0 ): 2.070E+11 Parms: UU M1 - Compute Stats, Diag. # 164 SIvice vol( 0 ): 2.025E+11 Parms: VV M1 + Computing Diagnostic # 226 SI_Fract Counter: 24 Parms: SM P M1 + Computing Diagnostic # 227 SI_Thick Counter: 24 Parms: SM PC M1 + use Counter Mate for SI_Thick Diagnostic # 226 SI_Fract + Computing Diagnostic # 26 THETA Counter: 24 Parms: SMR MR + Computing Diagnostic # 229 SI_Tsrf Counter: 24 Parms: SM C M1 + use Counter Mate for SI_Tsrf Diagnostic # 226 SI_Fract + Computing Diagnostic # 239 SIflx2oc Counter: 24 Parms: SM M1 + Computing Diagnostic # 240 SIfrw2oc Counter: 24 Parms: SM M1 + Computing Diagnostic # 241 SIsaltFx Counter: 24 Parms: SM M1 + Computing Diagnostic # 237 SIflxAtm Counter: 24 Parms: SM M1 + Computing Diagnostic # 238 SIfrwAtm Counter: 24 Parms: SM M1 + Computing Diagnostic # 165 SIuice Counter: 24 Parms: UU M1 + Vector Mate for SIuice Diagnostic # 166 SIvice exists + Computing Diagnostic # 166 SIvice Counter: 24 Parms: VV M1 + Vector Mate for SIvice Diagnostic # 165 SIuice exists + Compute Stats, Diag. # 226 SI_Fract vol( 0 ): 4.170E+11 Parms: SM P M1 + Compute Stats, Diag. # 227 SI_Thick vol( 0 ): 4.137E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 4.170E+11 integral 4.137E+11 + Compute Stats, Diag. # 26 THETA vol( 0 ): 4.170E+12 Parms: SMR MR + Compute Stats, Diag. # 229 SI_Tsrf vol( 0 ): 4.137E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 4.170E+11 integral 4.137E+11 + Compute Stats, Diag. # 230 SI_Tice1 vol( 0 ): 4.137E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 4.170E+11 integral 4.137E+11 + Compute Stats, Diag. # 231 SI_Tice2 vol( 0 ): 4.137E+11 Parms: SM C M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 4.170E+11 integral 4.137E+11 + Compute Stats, Diag. # 239 SIflx2oc vol( 0 ): 4.170E+11 Parms: SM M1 + Compute Stats, Diag. # 240 SIfrw2oc vol( 0 ): 4.170E+11 Parms: SM M1 + Compute Stats, Diag. # 241 SIsaltFx vol( 0 ): 4.170E+11 Parms: SM M1 + Compute Stats, Diag. # 237 SIflxAtm vol( 0 ): 4.170E+11 Parms: SM M1 + Compute Stats, Diag. # 238 SIfrwAtm vol( 0 ): 4.170E+11 Parms: SM M1 + Compute Stats, Diag. # 228 SI_SnowH vol( 0 ): 4.137E+11 Parms: SM PC M1 + use Counter Mate # 226 SI_Fract vol( 0 ): 4.170E+11 integral 4.137E+11 + Compute Stats, Diag. # 165 SIuice vol( 0 ): 4.140E+11 Parms: UU M1 + Compute Stats, Diag. # 166 SIvice vol( 0 ): 4.050E+11 Parms: VV M1 (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: iceStDiag.0000000000.txt , unit= 9 -(PID.TID 0000.0001) %CHECKPOINT 12 ckptA +(PID.TID 0000.0001) %CHECKPOINT 24 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 27.517810700461268 -(PID.TID 0000.0001) System time: 0.32901701144874096 -(PID.TID 0000.0001) Wall clock time: 28.529180049896240 +(PID.TID 0000.0001) User time: 29.490306854248047 +(PID.TID 0000.0001) System time: 4.6912000514566898E-002 +(PID.TID 0000.0001) Wall clock time: 29.555981159210205 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.4510000976733863E-002 -(PID.TID 0000.0001) System time: 9.6690001664683223E-003 -(PID.TID 0000.0001) Wall clock time: 0.13912606239318848 +(PID.TID 0000.0001) User time: 5.6442998349666595E-002 +(PID.TID 0000.0001) System time: 6.9960001856088638E-003 +(PID.TID 0000.0001) Wall clock time: 7.2374105453491211E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 27.463264070451260 -(PID.TID 0000.0001) System time: 0.31933001149445772 -(PID.TID 0000.0001) Wall clock time: 28.390015840530396 +(PID.TID 0000.0001) User time: 29.433844223618507 +(PID.TID 0000.0001) System time: 3.9837000891566277E-002 +(PID.TID 0000.0001) Wall clock time: 29.483536958694458 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 4.4278997927904129E-002 -(PID.TID 0000.0001) System time: 2.3523000068962574E-002 -(PID.TID 0000.0001) Wall clock time: 0.63800311088562012 +(PID.TID 0000.0001) User time: 3.0333995819091797E-002 +(PID.TID 0000.0001) System time: 1.9286999478936195E-002 +(PID.TID 0000.0001) Wall clock time: 5.7332992553710938E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 27.418954350054264 -(PID.TID 0000.0001) System time: 0.29580001160502434 -(PID.TID 0000.0001) Wall clock time: 27.751976966857910 +(PID.TID 0000.0001) User time: 29.403482593595982 +(PID.TID 0000.0001) System time: 2.0541001111268997E-002 +(PID.TID 0000.0001) Wall clock time: 29.426170110702515 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 27.418856374919415 -(PID.TID 0000.0001) System time: 0.29579701274633408 -(PID.TID 0000.0001) Wall clock time: 27.751876354217529 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 29.403270751237869 +(PID.TID 0000.0001) System time: 2.0537000149488449E-002 +(PID.TID 0000.0001) Wall clock time: 29.425958633422852 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 27.418624468147755 -(PID.TID 0000.0001) System time: 0.29579001292586327 -(PID.TID 0000.0001) Wall clock time: 27.751662969589233 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 29.402858443558216 +(PID.TID 0000.0001) System time: 2.0532000809907913E-002 +(PID.TID 0000.0001) Wall clock time: 29.425533771514893 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.5875084102153778E-002 -(PID.TID 0000.0001) System time: 4.8980116844177246E-005 -(PID.TID 0000.0001) Wall clock time: 2.5942802429199219E-002 -(PID.TID 0000.0001) No. starts: 36 -(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) User time: 5.5908352136611938E-002 +(PID.TID 0000.0001) System time: 9.2500075697898865E-004 +(PID.TID 0000.0001) Wall clock time: 5.6859493255615234E-002 +(PID.TID 0000.0001) No. starts: 72 +(PID.TID 0000.0001) No. stops: 72 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.2516048550605774E-002 -(PID.TID 0000.0001) System time: 2.9951333999633789E-006 -(PID.TID 0000.0001) Wall clock time: 6.2519073486328125E-002 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 0.11140028387308121 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 0.11140465736389160 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 6.2056280672550201E-002 -(PID.TID 0000.0001) System time: 9.9837779998779297E-007 -(PID.TID 0000.0001) Wall clock time: 6.2076330184936523E-002 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 0.11049450188875198 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.11053156852722168 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.3104081153869629E-004 -(PID.TID 0000.0001) System time: 9.8347663879394531E-007 -(PID.TID 0000.0001) Wall clock time: 1.3065338134765625E-004 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 2.2866576910018921E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.2768974304199219E-004 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.3780457973480225E-005 -(PID.TID 0000.0001) System time: 9.9837779998779297E-007 -(PID.TID 0000.0001) Wall clock time: 9.7036361694335938E-005 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 2.0912289619445801E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.1028518676757812E-004 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 27.235668644309044 -(PID.TID 0000.0001) System time: 0.28765401989221573 -(PID.TID 0000.0001) Wall clock time: 27.560529232025146 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 29.107003688812256 +(PID.TID 0000.0001) System time: 3.6219991743564606E-003 +(PID.TID 0000.0001) Wall clock time: 29.112549781799316 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 8.6008898913860321E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.6033582687377930E-002 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 0.17309726774692535 +(PID.TID 0000.0001) System time: 3.3209994435310364E-003 +(PID.TID 0000.0001) Wall clock time: 0.17644309997558594 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 27.136534705758095 -(PID.TID 0000.0001) System time: 0.28754898160696030 -(PID.TID 0000.0001) Wall clock time: 27.461311578750610 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 28.906892687082291 +(PID.TID 0000.0001) System time: 2.9800087213516235E-004 +(PID.TID 0000.0001) Wall clock time: 28.909140110015869 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 27.045055508613586 -(PID.TID 0000.0001) System time: 0.27949797362089157 -(PID.TID 0000.0001) Wall clock time: 27.361209154129028 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 -(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.6688575744628906E-003 -(PID.TID 0000.0001) System time: 1.9997358322143555E-005 -(PID.TID 0000.0001) Wall clock time: 2.6922225952148438E-003 +(PID.TID 0000.0001) User time: 28.699109189212322 +(PID.TID 0000.0001) System time: 1.6999989748001099E-004 +(PID.TID 0000.0001) Wall clock time: 28.701203107833862 (PID.TID 0000.0001) No. starts: 24 (PID.TID 0000.0001) No. stops: 24 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.1080455780029297E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.1070919036865234E-003 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.3661613464355469E-002 -(PID.TID 0000.0001) System time: 6.4000487327575684E-005 -(PID.TID 0000.0001) Wall clock time: 2.3738145828247070E-002 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 5.0441265106201172E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.0444602966308594E-002 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.5605850219726562E-005 +(PID.TID 0000.0001) User time: 2.4604797363281250E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0061264038085938E-004 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Wall clock time: 2.4247169494628906E-004 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.2447319030761719E-003 +(PID.TID 0000.0001) User time: 5.2111148834228516E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.2471160888671875E-003 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) Wall clock time: 5.2146911621093750E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.8943271636962891E-002 -(PID.TID 0000.0001) System time: 4.0110200643539429E-003 -(PID.TID 0000.0001) Wall clock time: 6.2996864318847656E-002 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 6.1699151992797852E-002 +(PID.TID 0000.0001) System time: 1.1969000101089478E-002 +(PID.TID 0000.0001) Wall clock time: 7.3909282684326172E-002 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.4452209472656250E-003 -(PID.TID 0000.0001) System time: 3.9770156145095825E-003 -(PID.TID 0000.0001) Wall clock time: 6.4251422882080078E-003 -(PID.TID 0000.0001) No. starts: 12 -(PID.TID 0000.0001) No. stops: 12 +(PID.TID 0000.0001) User time: 1.5356540679931641E-003 +(PID.TID 0000.0001) System time: 4.0019974112510681E-003 +(PID.TID 0000.0001) Wall clock time: 5.5356025695800781E-003 +(PID.TID 0000.0001) No. starts: 24 +(PID.TID 0000.0001) No. stops: 24 (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile communication statistics (PID.TID 0000.0001) // ====================================================== @@ -3566,9 +3586,9 @@ listId= 1 ; file name: iceStDiag (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 46950 +(PID.TID 0000.0001) // No. barriers = 46960 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 46950 +(PID.TID 0000.0001) // Total barrier spins = 46960 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output_adm.thsice.txt b/verification/offline_exf_seaice/results/output_adm.thsice.txt index f5fe97f165..d06feb3113 100644 --- a/verification/offline_exf_seaice/results/output_adm.thsice.txt +++ b/verification/offline_exf_seaice/results/output_adm.thsice.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint64s -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Fri Jan 31 10:23:12 EST 2014 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68h +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Mar 24 17:15:13 EDT 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -48,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -162,6 +164,7 @@ (PID.TID 0000.0001) > nTimeSteps=60, (PID.TID 0000.0001) >#monitorFreq=1., (PID.TID 0000.0001) >#dumpFreq = 1., +(PID.TID 0000.0001) > adjMonitorFreq= 86400., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters @@ -207,6 +210,7 @@ (PID.TID 0000.0001) ># Packages (PID.TID 0000.0001) > &PACKAGES (PID.TID 0000.0001) > useEXF = .TRUE., +(PID.TID 0000.0001) > useCAL = .TRUE., (PID.TID 0000.0001) > useSEAICE = .FALSE., (PID.TID 0000.0001) > useThSIce = .TRUE., (PID.TID 0000.0001) ># useDiagnostics=.TRUE., @@ -218,7 +222,9 @@ -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- pkg/cal compiled and used ( useCAL = T ) pkg/exf compiled and used ( useEXF = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) pkg/seaice compiled but not used ( useSEAICE = F ) pkg/thsice compiled and used ( useThSIce = T ) pkg/diagnostics compiled but not used ( useDiagnostics = F ) @@ -233,7 +239,6 @@ pkg/mdsio compiled and used pkg/autodiff compiled and used pkg/cost compiled and used - pkg/ctrl compiled and used (PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary (PID.TID 0000.0001) (PID.TID 0000.0001) CAL_READPARMS: opening data.cal @@ -475,6 +480,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -496,12 +507,27 @@ (PID.TID 0000.0001) SEAICEuseFREEDRIFTswitchInAd= /* switch On/Off Free-Drift in AD mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SEAICEapproxLevInAd = /* -1:SEAICE_FAKE, >0:other adjoint approximation */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -522,14 +548,35 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) > &ctrl_nml +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># general parameters and +(PID.TID 0000.0001) ># non-default ECCO legacy control variables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML (PID.TID 0000.0001) > doMainUnpack=.FALSE., (PID.TID 0000.0001) > doMainPack=.FALSE., +(PID.TID 0000.0001) > ctrlprec = 32, (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > &ctrl_packnames +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_32b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_32b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_32b.bin', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -547,9 +594,9 @@ (PID.TID 0000.0001) // Parameter file "data.grdchk" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) > &GRDCHK_NML -(PID.TID 0000.0001) > grdchk_eps = 1.d-2, -(PID.TID 0000.0001) > iglopos = 10, -(PID.TID 0000.0001) > jglopos = 10, +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) > iglopos = 10, +(PID.TID 0000.0001) > jglopos = 10, (PID.TID 0000.0001) > iGloTile = 2, (PID.TID 0000.0001) > jGloTile = 2, (PID.TID 0000.0001) > nbeg = 1, @@ -557,8 +604,13 @@ (PID.TID 0000.0001) > nend = 4, (PID.TID 0000.0001) >#(grdchkvarindex = 1 fails at freezing point) (PID.TID 0000.0001) >#grdchkvarindex = 1, -(PID.TID 0000.0001) > grdchkvarindex = 7, -(PID.TID 0000.0001) >#grdchkvarindex = 34, +(PID.TID 0000.0001) ># to test xx_atemp with xx_gentim2d set 301, because xx_atemp is +(PID.TID 0000.0001) ># our first control variable (see data.ctrl) +(PID.TID 0000.0001) > grdchkvarindex = 301, +(PID.TID 0000.0001) ># xx_swdown +(PID.TID 0000.0001) >#grdchkvarindex = 302, +(PID.TID 0000.0001) ># xx_theta +(PID.TID 0000.0001) >#grdchkvarindex = 201, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -567,7 +619,8 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) eps: 0.100E-01 +(PID.TID 0000.0001) grdchkvarindex : 301 +(PID.TID 0000.0001) eps: 0.100E-03 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 4 (PID.TID 0000.0001) Increment: 1 @@ -663,7 +716,7 @@ (PID.TID 0000.0001) modelend = /* End time of the model integration [s] */ (PID.TID 0000.0001) 2.160000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelstep = /* Time interval for a model forward step [s] */ +(PID.TID 0000.0001) modelStep = /* Time interval for a model forward step [s] */ (PID.TID 0000.0001) 3.600000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) usingGregorianCalendar= /* Calendar Type: Gregorian Calendar */ @@ -672,19 +725,22 @@ (PID.TID 0000.0001) usingJulianCalendar = /* Calendar Type: Julian Calendar */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingNoLeapYearCal = /* Calendar Type: without Leap Year */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) usingModelCalendar = /* Calendar Type: Model Calendar */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelstartdate YYYYMMDD = /* Model start date YYYY-MM-DD */ +(PID.TID 0000.0001) modelStartDate YYYYMMDD = /* Model start date YYYY-MM-DD */ (PID.TID 0000.0001) 19790101 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelstartdate HHMMSS = /* Model start date HH-MM-SS */ +(PID.TID 0000.0001) modelStartDate HHMMSS = /* Model start date HH-MM-SS */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelenddate YYYYMMDD = /* Model end date YYYY-MM-DD */ +(PID.TID 0000.0001) modelEndDate YYYYMMDD = /* Model end date YYYY-MM-DD */ (PID.TID 0000.0001) 19790103 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelenddate HHMMSS = /* Model end date HH-MM-SS */ +(PID.TID 0000.0001) modelEndDate HHMMSS = /* Model end date HH-MM-SS */ (PID.TID 0000.0001) 120000 (PID.TID 0000.0001) ; (PID.TID 0000.0001) intyears = /* Number of calendar years affected by the integration */ @@ -696,13 +752,13 @@ (PID.TID 0000.0001) intdays = /* Number of calendar days affected by the integration */ (PID.TID 0000.0001) 3 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modeliter0 = /* Base timestep number */ +(PID.TID 0000.0001) modelIter0 = /* Base timestep number */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modeliterend = /* Final timestep number */ +(PID.TID 0000.0001) modelIterEnd = /* Final timestep number */ (PID.TID 0000.0001) 60 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) modelintsteps= /* Number of model timesteps */ +(PID.TID 0000.0001) modelIntSteps= /* Number of model timesteps */ (PID.TID 0000.0001) 60 (PID.TID 0000.0001) ; (PID.TID 0000.0001) @@ -768,15 +824,21 @@ (PID.TID 0000.0001) twoDigitYear = /* use 2-digit year extension */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exf_verbose = /* print more messages to STDOUT */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) useExfCheckRange = /* check for fields range */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ +(PID.TID 0000.0001) diags_opOceWeighted = /* weight flux diags by open-ocean fraction */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_debugLev = /* select EXF-debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 8.640000000000000E+07 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 2.635200000000000E+06 (PID.TID 0000.0001) ; @@ -789,6 +851,9 @@ (PID.TID 0000.0001) stressIsOnCgrid = /* set u,v_stress on Arakawa C-grid */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateStressOnAgrid = /* rotate u,v_stress on Arakawa A-grid */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cen2kel = /* conversion of deg. Centigrade to Kelvin [K] */ (PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; @@ -918,81 +983,62 @@ (PID.TID 0000.0001) // ALLOW_DOWNWARD_RADIATION: defined (PID.TID 0000.0001) // ALLOW_BULKFORMULAE: defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Net shortwave flux forcing starts at 0. -(PID.TID 0000.0001) Net shortwave flux forcing period is 0. -(PID.TID 0000.0001) Net shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> << -(PID.TID 0000.0001) (PID.TID 0000.0001) Zonal wind forcing starts at -1317600. (PID.TID 0000.0001) Zonal wind forcing period is 2635200. +(PID.TID 0000.0001) Zonal wind forcing repeat-cycle is 2635200. (PID.TID 0000.0001) Zonal wind forcing is read from file: -(PID.TID 0000.0001) >> windx.bin << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Meridional wind forcing starts at 0. -(PID.TID 0000.0001) Meridional wind forcing period is 2635200. -(PID.TID 0000.0001) Meridional wind forcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) >> windx.bin << (PID.TID 0000.0001) (PID.TID 0000.0001) Atmospheric temperature starts at -1317600. (PID.TID 0000.0001) Atmospheric temperature period is 2635200. +(PID.TID 0000.0001) Atmospheric temperature repeat-cycle is 2635200. (PID.TID 0000.0001) Atmospheric temperature is read from file: -(PID.TID 0000.0001) >> tair_4x.bin << +(PID.TID 0000.0001) >> tair_4x.bin << (PID.TID 0000.0001) (PID.TID 0000.0001) Atmospheric specific humidity starts at -1317600. (PID.TID 0000.0001) Atmospheric specific humidity period is 2635200. +(PID.TID 0000.0001) Atmospheric specific humidity rep-cycle is 2635200. (PID.TID 0000.0001) Atmospheric specific humidity is read from file: -(PID.TID 0000.0001) >> qa70_4x.bin << +(PID.TID 0000.0001) >> qa70_4x.bin << (PID.TID 0000.0001) -(PID.TID 0000.0001) Net longwave flux forcing starts at 0. -(PID.TID 0000.0001) Net longwave flux forcing period is 0. -(PID.TID 0000.0001) Net longwave flux forcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) // ALLOW_READ_TURBFLUXES: NOT defined +(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Precipitation data set starts at -1317600. +(PID.TID 0000.0001) Precipitation data starts at -1317600. (PID.TID 0000.0001) Precipitation data period is 2635200. +(PID.TID 0000.0001) Precipitation data repeat-cycle is 2635200. (PID.TID 0000.0001) Precipitation data is read from file: -(PID.TID 0000.0001) >> const_00.bin << -(PID.TID 0000.0001) -(PID.TID 0000.0001) // EXF_READ_EVAP: NOT defined +(PID.TID 0000.0001) >> const_00.bin << (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_RUNOFF: defined -(PID.TID 0000.0001) Runoff starts at 0. -(PID.TID 0000.0001) Runoff period is 0. -(PID.TID 0000.0001) Runoff is read from file: -(PID.TID 0000.0001) >> << (PID.TID 0000.0001) // ALLOW_RUNOFTEMP: NOT defined +(PID.TID 0000.0001) // ALLOW_SALTFLX: NOT defined (PID.TID 0000.0001) -(PID.TID 0000.0001) Downward shortwave flux forcing starts at -1317600. -(PID.TID 0000.0001) Downward shortwave flux forcing period is 2635200. -(PID.TID 0000.0001) Downward shortwave flux forcing is read from file: -(PID.TID 0000.0001) >> dsw_100.bin << +(PID.TID 0000.0001) Downward shortwave flux starts at -1317600. +(PID.TID 0000.0001) Downward shortwave flux period is 2635200. +(PID.TID 0000.0001) Downward shortwave flux repeat-cycle is 2635200. +(PID.TID 0000.0001) Downward shortwave flux is read from file: +(PID.TID 0000.0001) >> dsw_100.bin << (PID.TID 0000.0001) -(PID.TID 0000.0001) Downward longwave flux forcing starts at -1317600. -(PID.TID 0000.0001) Downward longwave flux forcing period is 2635200. -(PID.TID 0000.0001) Downward longwave flux forcing is read from file: -(PID.TID 0000.0001) >> dlw_250.bin << -(PID.TID 0000.0001) -(PID.TID 0000.0001) Atmospheric pressure forcing starts at 0. -(PID.TID 0000.0001) Atmospheric pressure forcing period is 0. -(PID.TID 0000.0001) Atmospheric pressureforcing is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) Downward longwave flux starts at -1317600. +(PID.TID 0000.0001) Downward longwave flux period is 2635200. +(PID.TID 0000.0001) Downward longwave flux repeat-cycle is 2635200. +(PID.TID 0000.0001) Downward longwave flux is read from file: +(PID.TID 0000.0001) >> dlw_250.bin << (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) climatology configuration : (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ALLOW_CLIMSST_RELAXATION: defined -(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined -(PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SST starts at -1317600. -(PID.TID 0000.0001) Climatological SST period is 2635200. +(PID.TID 0000.0001) Climatological SST starts at -1317600. +(PID.TID 0000.0001) Climatological SST period is 2635200. +(PID.TID 0000.0001) Climatological SST repeat-cycle is 2635200. (PID.TID 0000.0001) Climatological SST is read from file: -(PID.TID 0000.0001) >> tocn.bin << +(PID.TID 0000.0001) >> tocn.bin << (PID.TID 0000.0001) -(PID.TID 0000.0001) Climatological SSS starts at 0. -(PID.TID 0000.0001) Climatological SSS period is 2635200. -(PID.TID 0000.0001) Climatological SSS is read from file: -(PID.TID 0000.0001) >> << +(PID.TID 0000.0001) // ALLOW_CLIMSSS_RELAXATION: defined +(PID.TID 0000.0001) climsss relaxation is NOT used (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // External forcing (EXF) configuration >>> END <<< @@ -1004,13 +1050,13 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 760 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 800 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 @@ -1037,7 +1083,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 @@ -1064,8 +1110,348 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 1600 -(PID.TID 0000.0001) ctrl-wet 8: atmos 2400 +(PID.TID 0000.0001) ctrl-wet 8: atmos 1600 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 1 9840 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -1073,8 +1459,50 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 3 -(PID.TID 0000.0001) ctrl_init: control vector length: 9840 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 3 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 9840 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 840 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 000800 000760 000800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 000800 000760 000800 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000840 000840 000840 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000840 000840 000840 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 @@ -1113,7 +1541,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1149,12 +1577,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 5.000000000000000E-03 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -1203,12 +1637,22 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ (PID.TID 0000.0001) 1.030000000000000E+03 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.986000000000000E+03 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ (PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; @@ -1230,6 +1674,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 1.000000000000000E+00 /* K = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 2 @ 1.000000000000000E+00 /* K = 1: 2 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -1254,28 +1704,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1297,7 +1750,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1306,10 +1759,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1351,6 +1804,10 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1370,37 +1827,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ -(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) F @@ -1468,6 +1900,12 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 64 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -1487,14 +1925,17 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1511,6 +1952,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1547,6 +1991,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1580,9 +2027,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1634,11 +2078,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1649,6 +2102,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.708737864077669E-04 (PID.TID 0000.0001) ; @@ -1862,9 +2321,12 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) +(PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) THSICE_CHECK: #define THSICE -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= @@ -1910,6 +2372,9 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4400000000000E-01 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1971,6 +2436,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR Therm.SeaIce statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= @@ -2026,6 +2492,11 @@ (PID.TID 0000.0001) %MON exf_lwflux_mean = 5.6469966707288E+01 (PID.TID 0000.0001) %MON exf_lwflux_sd = 8.7396756498492E-13 (PID.TID 0000.0001) %MON exf_lwflux_del2 = 3.0989615875950E-01 +(PID.TID 0000.0001) %MON exf_evap_max = 2.4349220321116E-08 +(PID.TID 0000.0001) %MON exf_evap_min = -2.4559554123212E-09 +(PID.TID 0000.0001) %MON exf_evap_mean = 1.1256492036177E-08 +(PID.TID 0000.0001) %MON exf_evap_sd = 9.4794636747833E-09 +(PID.TID 0000.0001) %MON exf_evap_del2 = 7.2578500983819E-11 (PID.TID 0000.0001) %MON exf_precip_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON exf_precip_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON exf_precip_mean = 0.0000000000000E+00 @@ -2036,11 +2507,6 @@ (PID.TID 0000.0001) %MON exf_swflux_mean = -9.0000000000000E+01 (PID.TID 0000.0001) %MON exf_swflux_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON exf_swflux_del2 = 4.9390243902439E-01 -(PID.TID 0000.0001) %MON exf_evap_max = 2.4349220321116E-08 -(PID.TID 0000.0001) %MON exf_evap_min = -2.4559554123212E-09 -(PID.TID 0000.0001) %MON exf_evap_mean = 1.1256492036177E-08 -(PID.TID 0000.0001) %MON exf_evap_sd = 9.4794636747833E-09 -(PID.TID 0000.0001) %MON exf_evap_del2 = 7.2578500983819E-11 (PID.TID 0000.0001) %MON exf_swdown_max = 1.0000000000000E+02 (PID.TID 0000.0001) %MON exf_swdown_min = 1.0000000000000E+02 (PID.TID 0000.0001) %MON exf_swdown_mean = 1.0000000000000E+02 @@ -2313,28 +2779,227 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 60 ckptA --> f_thsice = 0.160336971132022D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336971132022D+11 - global fc = 0.160336971132022D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971132022D+11 +(PID.TID 0000.0001) global fc = 0.160336971132022D+11 +(PID.TID 0000.0001) whio : write lev 2 rec 1 +(PID.TID 0000.0001) whio : write lev 2 rec 2 +(PID.TID 0000.0001) whio : write lev 2 rec 3 +(PID.TID 0000.0001) whio : write lev 2 rec 4 +(PID.TID 0000.0001) whio : write lev 2 rec 5 +(PID.TID 0000.0001) whio : write lev 2 rec 6 +(PID.TID 0000.0001) whio : write lev 2 rec 7 +(PID.TID 0000.0001) whio : write lev 2 rec 8 +(PID.TID 0000.0001) whio : write lev 2 rec 9 +(PID.TID 0000.0001) whio : write lev 2 rec 10 +(PID.TID 0000.0001) whio : write lev 2 rec 11 +(PID.TID 0000.0001) whio : write lev 2 rec 12 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) whio : write lev 2 rec 13 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 48 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 5.1853288614917E+01 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 1.7091156440978E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 8.4572929207658E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.5453772454896E-01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 48 +(PID.TID 0000.0001) %MON ad_time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -2.2721482486119E+04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -6.5246806191468E+03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 8.4621280375006E+03 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 8.0610216202876E+01 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.6630712770067E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -7.4654813324622E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.2324524069093E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.9226288802189E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 3.7477544466025E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.7082594220998E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -4.2039829057792E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 6.8756509832237E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0667988082578E+02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 24 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.6501437014175E+02 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 5.7410352534995E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.7783475464348E+01 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 5.1861446964129E-01 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 24 +(PID.TID 0000.0001) %MON ad_time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.3063915602929E+05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -3.9541100377050E+04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 4.8968654553130E+04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.5440813843383E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.9658167511772E+06 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.2985383481482E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.8289086301145E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.2685396306488E+03 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 4.9408634710485E+01 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.1455232408544E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.4653659641646E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.7921892105120E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 3.0821912411307E+02 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.8638011104244E+05 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = -3.0508236736631E+01 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 1.0015732930741E+03 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.6472870229732E+04 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 4.3408705567248E+02 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.9939642893641E+05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = -6.3719225925769E+04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 7.4447227773470E+04 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 7.1640300133070E+02 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 3.4643911029518E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.2524693103615E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.4476664187396E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.8694104421056E+08 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.9326248046516E+06 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.7639026649373E+08 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -7.8870273188139E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.0135798769038E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.6743670921814E+05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) grdchk reference fc: fcref = 1.60336971132022E+10 @@ -2354,23 +3019,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336968734131D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336968734131D+11 - global fc = 0.160336968734131D+11 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336968734131E+10 + --> f_thsice = 0.160336971108039D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971108039D+11 +(PID.TID 0000.0001) global fc = 0.160336971108039D+11 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336971108039E+10 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2379,29 +3032,17 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336973530640D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336973530640D+11 - global fc = 0.160336973530640D+11 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336973530640E+10 + --> f_thsice = 0.160336971156004D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971156004D+11 +(PID.TID 0000.0001) global fc = 0.160336971156004D+11 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336971156004E+10 grad-res ------------------------------- - grad-res 0 1 1 1 1 2 2 1 1.60336971132E+10 1.60336968734E+10 1.60336973531E+10 - grad-res 0 1 1 1 0 2 2 1 -2.40843886719E+04 -2.39825435638E+04 4.22867731541E-03 + grad-res 0 1 1 1 1 2 2 1 1.60336971132E+10 1.60336971108E+10 1.60336971156E+10 + grad-res 0 1 1 1 0 2 2 1 -2.39825488281E+04 -2.39825534821E+04 -1.94054881275E-07 (PID.TID 0000.0001) ADM ref_cost_function = 1.60336971132022E+10 -(PID.TID 0000.0001) ADM adjoint_gradient = -2.40843886718750E+04 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.39825435638428E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.39825488281250E+04 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.39825534820557E+04 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 3280 2 @@ -2416,23 +3057,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336967917381D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336967917381D+11 - global fc = 0.160336967917381D+11 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336967917381E+10 + --> f_thsice = 0.160336971099732D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971099732D+11 +(PID.TID 0000.0001) global fc = 0.160336971099732D+11 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336971099732E+10 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2441,29 +3070,17 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336974361304D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336974361304D+11 - global fc = 0.160336974361304D+11 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336974361304E+10 + --> f_thsice = 0.160336971164312D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971164312D+11 +(PID.TID 0000.0001) global fc = 0.160336971164312D+11 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336971164312E+10 grad-res ------------------------------- - grad-res 0 2 2 1 1 2 2 1 1.60336971132E+10 1.60336967917E+10 1.60336974361E+10 - grad-res 0 2 2 2 0 2 2 1 -3.60025703125E+04 -3.22196142197E+04 1.05074611618E-01 + grad-res 0 2 2 1 1 2 2 1 1.60336971132E+10 1.60336971100E+10 1.60336971164E+10 + grad-res 0 2 2 2 0 2 2 1 -3.22899531250E+04 -3.22899436951E+04 2.92039186389E-07 (PID.TID 0000.0001) ADM ref_cost_function = 1.60336971132022E+10 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.60025703125000E+04 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.22196142196655E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.22899531250000E+04 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.22899436950684E+04 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 3280 3 @@ -2478,23 +3095,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336967420046D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336967420046D+11 - global fc = 0.160336967420046D+11 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336967420046E+10 + --> f_thsice = 0.160336971094900D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971094900D+11 +(PID.TID 0000.0001) global fc = 0.160336971094900D+11 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336971094900E+10 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2503,29 +3108,17 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336974844416D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336974844416D+11 - global fc = 0.160336974844416D+11 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336974844416E+10 + --> f_thsice = 0.160336971169144D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971169144D+11 +(PID.TID 0000.0001) global fc = 0.160336971169144D+11 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336971169144E+10 grad-res ------------------------------- - grad-res 0 3 3 1 1 2 2 1 1.60336971132E+10 1.60336967420E+10 1.60336974844E+10 - grad-res 0 3 3 3 0 2 2 1 -4.59224023438E+04 -3.71218492508E+04 1.91639649578E-01 + grad-res 0 3 3 1 1 2 2 1 1.60336971132E+10 1.60336971095E+10 1.60336971169E+10 + grad-res 0 3 3 3 0 2 2 1 -3.71218515625E+04 -3.71218490601E+04 6.74115460120E-08 (PID.TID 0000.0001) ADM ref_cost_function = 1.60336971132022E+10 -(PID.TID 0000.0001) ADM adjoint_gradient = -4.59224023437500E+04 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.71218492507935E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.71218515625000E+04 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.71218490600586E+04 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 4 3280 4 @@ -2540,23 +3133,11 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336967400952D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336967400952D+11 - global fc = 0.160336967400952D+11 -(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336967400952E+10 + --> f_thsice = 0.160336971094709D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971094709D+11 +(PID.TID 0000.0001) global fc = 0.160336971094709D+11 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.60336971094709E+10 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2565,211 +3146,199 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> f_thsice = 0.160336974863433D+11 - early fc = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - local fc = 0.160336974863433D+11 - global fc = 0.160336974863433D+11 -(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336974863433E+10 + --> f_thsice = 0.160336971169334D+11 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.160336971169334D+11 +(PID.TID 0000.0001) global fc = 0.160336971169334D+11 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.60336971169334E+10 grad-res ------------------------------- - grad-res 0 4 4 1 1 2 2 1 1.60336971132E+10 1.60336967401E+10 1.60336974863E+10 - grad-res 0 4 4 4 0 2 2 1 -3.68466367188E+04 -3.73124051094E+04 -1.26407301217E-02 + grad-res 0 4 4 1 1 2 2 1 1.60336971132E+10 1.60336971095E+10 1.60336971169E+10 + grad-res 0 4 4 4 0 2 2 1 -3.73124101562E+04 -3.73124027252E+04 1.99157069836E-07 (PID.TID 0000.0001) ADM ref_cost_function = 1.60336971132022E+10 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.68466367187500E+04 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.73124051094055E+04 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.73124101562500E+04 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.73124027252197E+04 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) EPS = 1.000000E-02 +(PID.TID 0000.0001) EPS = 1.000000E-04 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS (PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 1 1 1 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 1 1.6033697113202E+10 1.6033696873413E+10 1.6033697353064E+10 -(PID.TID 0000.0001) grdchk output (g): 1 -2.3982543563843E+04 -2.4084388671875E+04 4.2286773154080E-03 +(PID.TID 0000.0001) grdchk output (p): 1 1 1 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 1.6033697113202E+10 1.6033697110804E+10 1.6033697115600E+10 +(PID.TID 0000.0001) grdchk output (g): 1 -2.3982553482056E+04 -2.3982548828125E+04 -1.9405488127511E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 2 2 1 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 2 1.6033697113202E+10 1.6033696791738E+10 1.6033697436130E+10 -(PID.TID 0000.0001) grdchk output (g): 2 -3.2219614219666E+04 -3.6002570312500E+04 1.0507461161797E-01 +(PID.TID 0000.0001) grdchk output (p): 2 2 1 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 1.6033697113202E+10 1.6033697109973E+10 1.6033697116431E+10 +(PID.TID 0000.0001) grdchk output (g): 2 -3.2289943695068E+04 -3.2289953125000E+04 2.9203918638920E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 3 3 1 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 3 1.6033697113202E+10 1.6033696742005E+10 1.6033697484442E+10 -(PID.TID 0000.0001) grdchk output (g): 3 -3.7121849250793E+04 -4.5922402343750E+04 1.9163964957844E-01 +(PID.TID 0000.0001) grdchk output (p): 3 3 1 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 1.6033697113202E+10 1.6033697109490E+10 1.6033697116914E+10 +(PID.TID 0000.0001) grdchk output (g): 3 -3.7121849060059E+04 -3.7121851562500E+04 6.7411546011975E-08 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk output (p): 4 4 1 1 2 2 0.000000000E+00 -1.000000000E-02 -(PID.TID 0000.0001) grdchk output (c): 4 1.6033697113202E+10 1.6033696740095E+10 1.6033697486343E+10 -(PID.TID 0000.0001) grdchk output (g): 4 -3.7312405109406E+04 -3.6846636718750E+04 -1.2640730121740E-02 +(PID.TID 0000.0001) grdchk output (p): 4 4 1 1 2 2 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 1.6033697113202E+10 1.6033697109471E+10 1.6033697116933E+10 +(PID.TID 0000.0001) grdchk output (g): 4 -3.7312402725220E+04 -3.7312410156250E+04 1.9915706983564E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 1.0948070499757E-01 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 2.0442115737786E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 249.01000000000002 -(PID.TID 0000.0001) System time: 0.27000000000000002 -(PID.TID 0000.0001) Wall clock time: 249.86228299140930 +(PID.TID 0000.0001) User time: 21.898258209228516 +(PID.TID 0000.0001) System time: 1.0720200254581869 +(PID.TID 0000.0001) Wall clock time: 25.954254150390625 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 5.00000000000000028E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.15119743347167969E-002 +(PID.TID 0000.0001) User time: 7.4749000370502472E-002 +(PID.TID 0000.0001) System time: 6.7484001163393259E-002 +(PID.TID 0000.0001) Wall clock time: 0.30247712135314941 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 227.84999999999999 -(PID.TID 0000.0001) System time: 0.23999999999999999 -(PID.TID 0000.0001) Wall clock time: 228.57661104202271 +(PID.TID 0000.0001) User time: 9.7649898752570152 +(PID.TID 0000.0001) System time: 0.94902301579713821 +(PID.TID 0000.0001) Wall clock time: 13.426508903503418 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 23.650000000001484 -(PID.TID 0000.0001) System time: 4.00000000000000355E-002 -(PID.TID 0000.0001) Wall clock time: 23.817140340805054 +(PID.TID 0000.0001) User time: 15.213039368391037 +(PID.TID 0000.0001) System time: 8.6113810539245605E-002 +(PID.TID 0000.0001) Wall clock time: 15.365785360336304 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.4199999999998170 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 5.5488939285278320 +(PID.TID 0000.0001) User time: 4.0055935531854630 +(PID.TID 0000.0001) System time: 2.9680833220481873E-002 +(PID.TID 0000.0001) Wall clock time: 4.0365278720855713 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 5.9099999999997976 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 6.0726137161254883 -(PID.TID 0000.0001) No. starts: 660 -(PID.TID 0000.0001) No. stops: 660 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.26125717163085938E-002 -(PID.TID 0000.0001) No. starts: 2460 -(PID.TID 0000.0001) No. stops: 2460 +(PID.TID 0000.0001) User time: 3.6587779074907303 +(PID.TID 0000.0001) System time: 1.9364759325981140E-002 +(PID.TID 0000.0001) Wall clock time: 3.6799604892730713 +(PID.TID 0000.0001) No. starts: 600 +(PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.02364540100097656E-003 -(PID.TID 0000.0001) No. starts: 660 -(PID.TID 0000.0001) No. stops: 660 +(PID.TID 0000.0001) User time: 5.0643831491470337E-003 +(PID.TID 0000.0001) System time: 3.7983059883117676E-005 +(PID.TID 0000.0001) Wall clock time: 5.0890445709228516E-003 +(PID.TID 0000.0001) No. starts: 600 +(PID.TID 0000.0001) No. stops: 600 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1101980656385422 +(PID.TID 0000.0001) System time: 6.0368329286575317E-003 +(PID.TID 0000.0001) Wall clock time: 1.1166605949401855 +(PID.TID 0000.0001) No. starts: 600 +(PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.36346435546875000E-003 +(PID.TID 0000.0001) User time: 2.7082681655883789E-002 +(PID.TID 0000.0001) System time: 2.3218989372253418E-004 +(PID.TID 0000.0001) Wall clock time: 2.7337551116943359E-002 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 14.440000000000708 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 14.492702007293701 +(PID.TID 0000.0001) User time: 7.9657936543226242 +(PID.TID 0000.0001) System time: 1.3148084282875061E-002 +(PID.TID 0000.0001) Wall clock time: 7.9797966480255127 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "THSICE_MAIN [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 13.340000000000515 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 13.333601474761963 +(PID.TID 0000.0001) User time: 7.2172876596450806 +(PID.TID 0000.0001) System time: 1.1382132768630981E-002 +(PID.TID 0000.0001) Wall clock time: 7.2298407554626465 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.71999999999999886 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.77188372611999512 +(PID.TID 0000.0001) User time: 0.48433639109134674 +(PID.TID 0000.0001) System time: 7.6806545257568359E-004 +(PID.TID 0000.0001) Wall clock time: 0.48535084724426270 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.41999999999987381 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.33982634544372559 +(PID.TID 0000.0001) User time: 6.7296624183654785E-003 +(PID.TID 0000.0001) System time: 2.9906630516052246E-005 +(PID.TID 0000.0001) Wall clock time: 6.7851543426513672E-003 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21999999999997044 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 0.22803783416748047 +(PID.TID 0000.0001) User time: 0.15393820405006409 +(PID.TID 0000.0001) System time: 9.3102455139160156E-004 +(PID.TID 0000.0001) Wall clock time: 0.15516805648803711 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.0900000000000034 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.1698293685913086 +(PID.TID 0000.0001) User time: 1.2902683466672897 +(PID.TID 0000.0001) System time: 5.3160190582275391E-003 +(PID.TID 0000.0001) Wall clock time: 1.2961437702178955 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11000000000001364 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.12795257568359375E-002 +(PID.TID 0000.0001) User time: 5.0475001335144043E-003 +(PID.TID 0000.0001) System time: 9.9867582321166992E-005 +(PID.TID 0000.0001) Wall clock time: 5.1283836364746094E-003 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.78403472900390625E-004 -(PID.TID 0000.0001) No. starts: 60 -(PID.TID 0000.0001) No. stops: 60 +(PID.TID 0000.0001) User time: 5.2389353513717651E-003 +(PID.TID 0000.0001) System time: 5.1960349082946777E-005 +(PID.TID 0000.0001) Wall clock time: 5.2614212036132812E-003 +(PID.TID 0000.0001) No. starts: 600 +(PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.99999999999556621E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 6.00881576538085938E-002 +(PID.TID 0000.0001) User time: 3.7872076034545898E-002 +(PID.TID 0000.0001) System time: 4.2299926280975342E-004 +(PID.TID 0000.0001) Wall clock time: 3.8398265838623047E-002 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.99999999999818101E-002 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 4.31833267211914063E-002 +(PID.TID 0000.0001) User time: 3.3765360713005066E-002 +(PID.TID 0000.0001) System time: 2.0671054720878601E-002 +(PID.TID 0000.0001) Wall clock time: 9.9523305892944336E-002 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.99999999999090505E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.31235122680664063E-002 +(PID.TID 0000.0001) User time: 1.2010514736175537E-002 +(PID.TID 0000.0001) System time: 7.9069435596466064E-003 +(PID.TID 0000.0001) Wall clock time: 3.9678335189819336E-002 (PID.TID 0000.0001) No. starts: 600 (PID.TID 0000.0001) No. stops: 600 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 21.110000000000014 -(PID.TID 0000.0001) System time: 3.00000000000000266E-002 -(PID.TID 0000.0001) Wall clock time: 21.204101800918579 +(PID.TID 0000.0001) User time: 12.058465957641602 +(PID.TID 0000.0001) System time: 5.5463910102844238E-002 +(PID.TID 0000.0001) Wall clock time: 12.225183963775635 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.10000000000002274 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.10244297981262207 +(PID.TID 0000.0001) User time: 9.7736358642578125E-002 +(PID.TID 0000.0001) System time: 1.6264915466308594E-002 +(PID.TID 0000.0001) Wall clock time: 0.11401891708374023 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 21.009999999999962 -(PID.TID 0000.0001) System time: 3.00000000000000266E-002 -(PID.TID 0000.0001) Wall clock time: 21.070705175399780 +(PID.TID 0000.0001) User time: 11.949417114257812 +(PID.TID 0000.0001) System time: 2.4461984634399414E-002 +(PID.TID 0000.0001) Wall clock time: 11.974738597869873 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 18.940000000001106 -(PID.TID 0000.0001) System time: 3.00000000000000266E-002 -(PID.TID 0000.0001) Wall clock time: 19.057034969329834 +(PID.TID 0000.0001) User time: 11.942768096923828 +(PID.TID 0000.0001) System time: 2.4367928504943848E-002 +(PID.TID 0000.0001) Wall clock time: 11.967960119247437 (PID.TID 0000.0001) No. starts: 480 (PID.TID 0000.0001) No. stops: 480 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 6.0844421386718750E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.65800476074218750E-004 +(PID.TID 0000.0001) Wall clock time: 6.1917304992675781E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -2820,9 +3389,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 2316 +(PID.TID 0000.0001) // No. barriers = 3264 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 2316 +(PID.TID 0000.0001) // Total barrier spins = 3264 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output_adm.txt b/verification/offline_exf_seaice/results/output_adm.txt index b8411c2d56..44fe356fce 100644 --- a/verification/offline_exf_seaice/results/output_adm.txt +++ b/verification/offline_exf_seaice/results/output_adm.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67r -(PID.TID 0000.0001) // Build user: mlosch -(PID.TID 0000.0001) // Build host: bkli04l006 -(PID.TID 0000.0001) // Build date: Thu Jul 30 07:12:20 CEST 2020 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68h +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Mar 24 17:15:13 EDT 2022 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -48,7 +48,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -154,16 +154,15 @@ (PID.TID 0000.0001) > &PARM03 (PID.TID 0000.0001) > startTime=0.0, (PID.TID 0000.0001) >#endTime=864000., +(PID.TID 0000.0001) > nTimeSteps=120, (PID.TID 0000.0001) > deltaT=3600.0, (PID.TID 0000.0001) > abEps=0.1, (PID.TID 0000.0001) > forcing_In_AB = .FALSE., -(PID.TID 0000.0001) > pChkptFreq=3600000., -(PID.TID 0000.0001) > monitorFreq=432000., -(PID.TID 0000.0001) > monitorSelect=2, -(PID.TID 0000.0001) >#dumpFreq = 86400., -(PID.TID 0000.0001) > nTimeSteps=120, -(PID.TID 0000.0001) >#monitorFreq=1., -(PID.TID 0000.0001) >#dumpFreq = 1., +(PID.TID 0000.0001) > pChkptFreq=5184000., +(PID.TID 0000.0001) >#dumpFreq = 864000., +(PID.TID 0000.0001) > monitorSelect = 2, +(PID.TID 0000.0001) > monitorFreq = 216000., +(PID.TID 0000.0001) > adjMonitorFreq= 86400., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters @@ -372,31 +371,31 @@ (PID.TID 0000.0001) > SEAICE_dTempFrz_dS = -5.4e-02, (PID.TID 0000.0001) >#seaice growth parameters (PID.TID 0000.0001) > HO = 0.2, -(PID.TID 0000.0001) ># these have no effect in seaice_growth_adx +(PID.TID 0000.0001) ># these have no effect in seaice_growth_adx, so we comment it out (PID.TID 0000.0001) >#SEAICE_frazilFrac = 1., (PID.TID 0000.0001) >#SEAICE_areaLossFormula = 2, (PID.TID 0000.0001) >#SEAICE_growMeltByConv = .TRUE., (PID.TID 0000.0001) >#SEAICE_doOpenWaterMelt = .TRUE., (PID.TID 0000.0001) >#- same mcPheePiston value as in thsice with surf-current=0.2 m/s (PID.TID 0000.0001) >#SEAICE_mcPheePiston= 8.7854425e-5, -(PID.TID 0000.0001) >#SEAICEuseFlooding = .TRUE., -(PID.TID 0000.0001) > SEAICE_salt0 = 4., (PID.TID 0000.0001) >#SEAICE_saltFrac = 0.3, +(PID.TID 0000.0001) > SEAICE_salt0 = 4., (PID.TID 0000.0001) >#simplest (constant) albedo scheme (PID.TID 0000.0001) > SEAICE_dryIceAlb = 0.6, (PID.TID 0000.0001) > SEAICE_wetIceAlb = 0.6, (PID.TID 0000.0001) > SEAICE_drySnowAlb = 0.6, (PID.TID 0000.0001) > SEAICE_wetSnowAlb = 0.6, -(PID.TID 0000.0001) >#SEAICE_waterAlbedo = 0.1, (PID.TID 0000.0001) ># (PID.TID 0000.0001) > SEAICE_strength = 2.6780e+04, (PID.TID 0000.0001) > OCEAN_drag = 8.1541e-04, (PID.TID 0000.0001) > SEAICE_waterDrag = 5.3508E-03, (PID.TID 0000.0001) > SEAICEuseDYNAMICS =.FALSE., (PID.TID 0000.0001) > LSR_ERROR = 1.E-12, -(PID.TID 0000.0001) > SEAICElinearIterMax= 1500, +(PID.TID 0000.0001) > SEAICElinearIterMax= 500, (PID.TID 0000.0001) > LSR_mixIniGuess = 1, -(PID.TID 0000.0001) > SEAICEadvScheme = 77, +(PID.TID 0000.0001) ># this is default anyway, so we comment it out +(PID.TID 0000.0001) >#SEAICEuseFlooding = .TRUE., +(PID.TID 0000.0001) >#SEAICEadvScheme = 77, (PID.TID 0000.0001) >#SEAICEadvSnow = .TRUE., (PID.TID 0000.0001) >#SEAICEadvSalt = .TRUE., (PID.TID 0000.0001) > SEAICE_no_Slip = .FALSE., @@ -405,8 +404,6 @@ (PID.TID 0000.0001) > HsaltFile = 'const_00.bin', (PID.TID 0000.0001) > AreaFile = 'ice0_area.bin', (PID.TID 0000.0001) > HeffFile = 'ice0_heff.bin', -(PID.TID 0000.0001) >#SEAICE_initialHEFF = 0.2, -(PID.TID 0000.0001) >#uIceFile = 'const_00.bin', (PID.TID 0000.0001) > SEAICEwriteState = .TRUE., (PID.TID 0000.0001) > SEAICE_monFreq = 43200., (PID.TID 0000.0001) > / @@ -435,6 +432,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -465,9 +468,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -488,14 +500,35 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) > &ctrl_nml +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># general parameters and +(PID.TID 0000.0001) ># non-default ECCO legacy control variables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML (PID.TID 0000.0001) > doMainUnpack=.FALSE., (PID.TID 0000.0001) > doMainPack=.FALSE., +(PID.TID 0000.0001) > ctrlprec = 32, (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># -(PID.TID 0000.0001) > &ctrl_packnames +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_atemp', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_32b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_swdown', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_32b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_32b.bin', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -523,8 +556,11 @@ (PID.TID 0000.0001) > nend = 4, (PID.TID 0000.0001) >#(grdchkvarindex = 1 fails at freezing point) (PID.TID 0000.0001) >#grdchkvarindex = 1, -(PID.TID 0000.0001) > grdchkvarindex = 7, -(PID.TID 0000.0001) >#grdchkvarindex = 34, +(PID.TID 0000.0001) ># this is xx_atemp +(PID.TID 0000.0001) ># grdchkvarindex = 7, +(PID.TID 0000.0001) ># to test this with xx_gentim2d set 301, because xx_atemp is +(PID.TID 0000.0001) ># our first control variable (see data.ctrl) +(PID.TID 0000.0001) > grdchkvarindex = 301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -533,7 +569,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 7 +(PID.TID 0000.0001) grdchkvarindex : 301 (PID.TID 0000.0001) eps: 0.100E-01 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 4 @@ -590,11 +626,12 @@ (PID.TID 0000.0001) ># 'SIflxAtm','SIfrwAtm', (PID.TID 0000.0001) ># 'EXFqnet ','EXFempmr', (PID.TID 0000.0001) >#- with pkg/seaice: -(PID.TID 0000.0001) > fields(1:10,2) = 'SIarea ','SIheff ','THETA ','SItices ', +(PID.TID 0000.0001) > fields(1:8,2) = 'SIarea ','SIheff ','THETA ','SItices ', (PID.TID 0000.0001) ># 'SIuice ','SIvice ','SIhsnow ', (PID.TID 0000.0001) ># 'oceQnet ','oceQsw ','oceFWflx','oceSflux', (PID.TID 0000.0001) > 'SIqnet ','SIqsw ','SIempmr ','oceSflux', -(PID.TID 0000.0001) > 'SIatmQnt','SIatmFW ', +(PID.TID 0000.0001) >#- comment out SIatmQnt (not filled in seaice_growth_adx.F): +(PID.TID 0000.0001) ># 'SIatmQnt','SIatmFW ', (PID.TID 0000.0001) > fileName(2) = 'iceDiag', (PID.TID 0000.0001) > frequency(2) = 86400., (PID.TID 0000.0001) > missing_value(2) = -999., @@ -635,11 +672,12 @@ (PID.TID 0000.0001) ># 'SIflxAtm','SIfrwAtm', (PID.TID 0000.0001) >#- with pkg/seaice: (PID.TID 0000.0001) >#stat_fields(1:11,1) = 'SIarea ','SIheff ','SIhsnow ', -(PID.TID 0000.0001) > stat_fields(1:10,1) = 'SIarea ','SIheff ', +(PID.TID 0000.0001) > stat_fields(1:8,1) = 'SIarea ','SIheff ', (PID.TID 0000.0001) > 'THETA ','SItices ', (PID.TID 0000.0001) ># 'oceQnet ','oceQsw ','oceFWflx','oceSflux', (PID.TID 0000.0001) > 'SIqnet ','SIqsw ','SIempmr ','oceSflux', -(PID.TID 0000.0001) > 'SIatmQnt','SIatmFW ', +(PID.TID 0000.0001) >#- comment out SIatmQnt (not filled in seaice_growth_adx.F): +(PID.TID 0000.0001) ># 'SIatmQnt','SIatmFW ', (PID.TID 0000.0001) > stat_fName(1) = 'iceStDiag', (PID.TID 0000.0001) > stat_freq(1) = 43200., (PID.TID 0000.0001) > stat_phase(1) = 3600., @@ -676,7 +714,7 @@ (PID.TID 0000.0001) Averaging Freq.: 86400.000000 , Phase: 0.000000 , Cycle: 1 (PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later -(PID.TID 0000.0001) Fields: SIarea SIheff THETA SItices SIqnet SIqsw SIempmr oceSflux SIatmQnt SIatmFW +(PID.TID 0000.0001) Fields: SIarea SIheff THETA SItices SIqnet SIqsw SIempmr oceSflux (PID.TID 0000.0001) Creating Output Stream: snapshot (PID.TID 0000.0001) Output Frequency: -86400.000000 ; Phase: -3600.000000 (PID.TID 0000.0001) Averaging Freq.: 0.000000 , Phase: 0.000000 , Cycle: 1 @@ -688,7 +726,7 @@ (PID.TID 0000.0001) Creating Stats. Output Stream: iceStDiag (PID.TID 0000.0001) Output Frequency: 43200.000000 ; Phase: 3600.000000 (PID.TID 0000.0001) Regions: 0 -(PID.TID 0000.0001) Fields: SIarea SIheff THETA SItices SIqnet SIqsw SIempmr oceSflux SIatmQnt SIatmFW +(PID.TID 0000.0001) Fields: SIarea SIheff THETA SItices SIqnet SIqsw SIempmr oceSflux (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) (PID.TID 0000.0001) SET_PARMS: done @@ -896,6 +934,9 @@ (PID.TID 0000.0001) exf_monFreq = /* EXF monitor frequency [ s ] */ (PID.TID 0000.0001) 8.640000000000000E+07 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) exf_adjMonSelect = /* select group of exf AD-variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) repeatPeriod = /* period for cycling forcing dataset [ s ] */ (PID.TID 0000.0001) 2.635200000000000E+06 (PID.TID 0000.0001) ; @@ -1405,13 +1446,13 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 760 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 800 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 @@ -1438,7 +1479,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 @@ -1465,8 +1506,348 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 1600 -(PID.TID 0000.0001) ctrl-wet 8: atmos 2400 +(PID.TID 0000.0001) ctrl-wet 8: atmos 1600 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 1 9840 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -1474,8 +1855,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 3 -(PID.TID 0000.0001) ctrl_init: control vector length: 9840 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 3 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 9840 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -1492,8 +1873,27 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 000840 000840 000840 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 000840 000840 000840 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_atemp +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) period = 00000000 000000 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_swdown +(PID.TID 0000.0001) weight = ones_32b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) period = 00000000 000000 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -1501,31 +1901,29 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 221 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 260 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 152 SIarea -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 155 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 178 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 181 SIheff (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 160 SItices -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 152 SIarea is already set -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 167 SIqnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 168 SIqsw -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 175 SIempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 SItices +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 178 SIarea is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 201 SIqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SIqsw +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 209 SIempmr (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 84 oceSflux -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 169 SIatmQnt -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 176 SIatmFW -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 152 SIarea -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 155 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 178 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 181 SIheff (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 160 SItices -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 152 SIarea is already set -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 167 SIqnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 168 SIqsw -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 175 SIempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 SItices +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter-mate # 178 SIarea is already set +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 201 SIqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SIqsw +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 209 SIempmr (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 84 oceSflux -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 169 SIatmQnt -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 176 SIatmFW -(PID.TID 0000.0001) space allocated for all diagnostics: 20 levels +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 SIatmQnt +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 210 SIatmFW +(PID.TID 0000.0001) space allocated for all diagnostics: 18 levels (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: iceDiag (PID.TID 0000.0001) Levels: 1. (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: snapshot @@ -1534,18 +1932,16 @@ (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region (PID.TID 0000.0001) ------------------------------------------------------------ -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 152 SIarea -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 155 SIheff +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 178 SIarea +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 181 SIheff (PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 160 SItices -(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 152 SIarea has already been set -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 167 SIqnet -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 168 SIqsw -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 175 SIempmr +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 194 SItices +(PID.TID 0000.0001) - NOTE - SETDIAG: Counter Diagnostic # 178 SIarea has already been set +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 201 SIqnet +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 202 SIqsw +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 209 SIempmr (PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 84 oceSflux -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 169 SIatmQnt -(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 176 SIatmFW -(PID.TID 0000.0001) space allocated for all stats-diags: 10 levels +(PID.TID 0000.0001) space allocated for all stats-diags: 8 levels (PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: iceStDiag.0000000000.txt , unit= 9 @@ -1587,7 +1983,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) -1.620000000000000E+00 /* K = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 3.000000000000000E+01 /* K = 1 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1683,7 +2079,7 @@ (PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ (PID.TID 0000.0001) 2.000000000000000E-04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ @@ -1750,28 +2146,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1793,7 +2192,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1802,10 +2201,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1977,8 +2376,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1995,6 +2394,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2056,7 +2458,7 @@ (PID.TID 0000.0001) 4.320000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ -(PID.TID 0000.0001) 3.600000000000000E+06 +(PID.TID 0000.0001) 5.184000000000000E+06 (PID.TID 0000.0001) ; (PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 @@ -2080,7 +2482,7 @@ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ -(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) 2.160000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ (PID.TID 0000.0001) 2 @@ -2363,7 +2765,9 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) EXF_CHECK: #define ALLOW_EXF (PID.TID 0000.0001) SEAICE_CHECK: #define ALLOW_SEAICE -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2465,6 +2869,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) whio : write lev 3 rec 1 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR EXF statistics (PID.TID 0000.0001) // ======================================================= @@ -2806,6 +3211,63 @@ ph-ice B 59 -1.5737498275105886 0.98162212455183684 0.19218410451932219 ph-ice C 59 1721898629.1440599 (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 60 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0000000000000E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = -1.1918289050661E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6083565301653E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = -1.5747989276423E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 5.3385989004639E-02 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 7.5005005311126E-04 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4400000000000E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4400000000000E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 2.0000000000000E-02 +(PID.TID 0000.0001) %MON ke_mean = 2.0000000000000E-02 +(PID.TID 0000.0001) %MON ke_vol = 8.2000000000000E+11 +(PID.TID 0000.0001) %MON vort_r_min = -4.0000000000000E-05 +(PID.TID 0000.0001) %MON vort_r_max = 4.0000000000000E-05 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 8.7287156094397E-06 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 1.7777777777778E-05 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR SEAICE statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON seaice_tsnumber = 60 @@ -3189,6 +3651,7 @@ (PID.TID 0000.0001) early fc = 0.000000000000000D+00 (PID.TID 0000.0001) local fc = 0.146159765738472D-04 (PID.TID 0000.0001) global fc = 0.146159765738472D-04 +(PID.TID 0000.0001) whio : write lev 2 rec 1 ph-ice B 0 -1.6200000000000001 0.99990530343904371 0.19996095560767943 ph-ice C 0 30136977.843261063 ph-ice B 1 -1.6185260470053890 0.99979873690274013 0.19991695537503829 @@ -3199,6 +3662,7 @@ ph-ice C 3 120321046.77355954 ph-ice B 4 -1.6143308073584433 0.99941130480019769 0.19975659048163302 ph-ice C 4 150299134.02091029 +(PID.TID 0000.0001) whio : write lev 2 rec 2 ph-ice B 5 -1.6130043351228938 0.99926069411456742 0.19969411813151236 ph-ice C 5 180233360.74812022 ph-ice B 6 -1.6117121116189526 0.99909988082277779 0.19962734635346036 @@ -3209,6 +3673,7 @@ ph-ice C 8 269764734.46772027 ph-ice B 9 -1.6080311920736734 0.99855922270539255 0.19940241862777408 ph-ice C 9 299515938.93454981 +(PID.TID 0000.0001) whio : write lev 2 rec 3 ph-ice B 10 -1.6068663617398753 0.99836055218760067 0.19931961637807841 ph-ice C 10 329219883.95519495 ph-ice B 11 -1.6057311161077852 0.99815311239990701 0.19923308172428372 @@ -3219,6 +3684,7 @@ ph-ice C 13 418043398.20696414 ph-ice B 14 -1.6024944756057133 0.99748075501016131 0.19895210624062507 ph-ice C 14 447553448.73727345 +(PID.TID 0000.0001) whio : write lev 2 rec 4 ph-ice B 15 -1.6014692775250958 0.99724077783438014 0.19885165024142812 ph-ice C 15 477013810.52470720 ph-ice B 16 -1.6004696366477322 0.99699326412734279 0.19874795163593029 @@ -3229,6 +3695,7 @@ ph-ice C 18 565092239.32960498 ph-ice B 19 -1.5976167931735201 0.99620772126204338 0.19841828375855455 ph-ice C 19 594349373.67353928 +(PID.TID 0000.0001) whio : write lev 2 rec 5 ph-ice B 20 -1.5967122211249698 0.99593224633286681 0.19830248566507344 ph-ice C 20 623554645.88339651 ph-ice B 21 -1.5958297282670746 0.99565029546060801 0.19818386804793131 @@ -3239,6 +3706,7 @@ ph-ice C 23 710856909.21532667 ph-ice B 24 -1.5933084516320595 0.99476749531402342 0.19781186127280898 ph-ice C 24 739854574.21137202 +(PID.TID 0000.0001) whio : write lev 2 rec 6 ph-ice B 25 -1.5925080921858832 0.99446152083221806 0.19768271786057195 ph-ice C 25 768801261.26677978 ph-ice B 26 -1.5917268082988068 0.99414998310139047 0.19755112037497013 @@ -3249,6 +3717,7 @@ ph-ice C 28 855335835.96511495 ph-ice B 29 -1.5894919922517927 0.99318363263428544 0.19714226272656651 ph-ice C 29 884078730.31590545 +(PID.TID 0000.0001) whio : write lev 2 rec 7 ph-ice B 30 -1.5887816704403614 0.99285146007157110 0.19700149876438888 ph-ice C 30 912770545.03361166 ph-ice B 31 -1.5880878301246901 0.99251450978173206 0.19685859639500944 @@ -3259,6 +3728,7 @@ ph-ice C 33 998537937.88073051 ph-ice B 34 -1.5861005190267239 0.99147640598446896 0.19641762828315443 ph-ice C 34 1027023966.2729408 +(PID.TID 0000.0001) whio : write lev 2 rec 8 ph-ice B 35 -1.5854679925535735 0.99112173751392407 0.19626673357752641 ph-ice C 35 1055458177.5053312 ph-ice B 36 -1.5848497071421035 0.99076296739720737 0.19611397312769921 @@ -3269,6 +3739,7 @@ ph-ice C 38 1140448136.9567516 ph-ice B 39 -1.5830762559071476 0.98966326361938362 0.19564498917784626 ph-ice C 39 1168673324.0006578 +(PID.TID 0000.0001) whio : write lev 2 rec 9 ph-ice B 40 -1.5825109512112714 0.98928928553040774 0.19548525057908156 ph-ice C 40 1196845881.2896149 ph-ice B 41 -1.5819579524866192 0.98891178762854004 0.19532388175446985 @@ -3279,6 +3750,7 @@ ph-ice C 43 1281045901.5284111 ph-ice B 44 -1.5803693014573064 0.98775922178050146 0.19483041878538016 ph-ice C 44 1309006070.0598400 +(PID.TID 0000.0001) whio : write lev 2 rec 10 ph-ice B 45 -1.5798620858790733 0.98736867598849243 0.19466294783914581 ph-ice C 45 1336912788.0698555 ph-ice B 46 -1.5793655048417810 0.98697511100342261 0.19449405010202542 @@ -3289,6 +3761,7 @@ ph-ice C 48 1420310189.7948878 ph-ice B 49 -1.5779365538141876 0.98577720132379532 0.19397916313116059 ph-ice C 49 1448001119.7934864 +(PID.TID 0000.0001) whio : write lev 2 rec 11 ph-ice B 50 -1.5774795389070364 0.98537244674327262 0.19380491996660196 ph-ice C 50 1475637802.2320125 ph-ice B 51 -1.5770317147838062 0.98496510356964040 0.19362942573501235 @@ -3299,6 +3772,7 @@ ph-ice C 53 1558220531.4589841 ph-ice B 54 -1.5757407825802170 0.98372831674326000 0.19309575363761039 ph-ice C 54 1585638410.6515267 +(PID.TID 0000.0001) whio : write lev 2 rec 12 ph-ice B 55 -1.5753271542975178 0.98331138201287516 0.19291556760329315 ph-ice C 55 1613001155.1014984 ph-ice B 56 -1.5749214696440066 0.98289222889089445 0.19273428229162495 @@ -3309,6 +3783,7 @@ ph-ice C 58 1694757520.7312348 ph-ice B 59 -1.5737498275105886 0.98162212455183684 0.19218410451932219 ph-ice C 59 1721898629.1440599 +(PID.TID 0000.0001) whio : write lev 2 rec 13 ph-ice B 60 -1.5733736995862078 0.98119475336817696 0.19199869200898423 ph-ice C 60 1748983973.1366122 ph-ice B 61 -1.5730044379104731 0.98076548187250279 0.19181231133931109 @@ -3319,6 +3794,7 @@ ph-ice C 63 1829903934.3064868 ph-ice B 64 -1.5719359066321110 0.97946683690558412 0.19124759691369739 ph-ice C 64 1856764750.9831288 +(PID.TID 0000.0001) whio : write lev 2 rec 14 ph-ice B 65 -1.5715921939801123 0.97903052703036886 0.19105757676389984 ph-ice C 65 1883569082.7733924 ph-ice B 66 -1.5712544168047180 0.97859258992511056 0.19086670171917006 @@ -3329,6 +3805,7 @@ ph-ice C 68 1963642440.8860300 ph-ice B 69 -1.5702750188196191 0.97726950546162772 0.19028915155086973 ph-ice C 69 1990219988.8045475 +(PID.TID 0000.0001) whio : write lev 2 rec 15 ph-ice B 70 -1.5699593282149331 0.97682554230639140 0.19009505834081394 ph-ice C 70 2016740539.0339897 ph-ice B 71 -1.5696487689192760 0.97638018614154254 0.18990020808067623 @@ -3339,6 +3816,7 @@ ph-ice C 73 2095958977.6661813 ph-ice B 74 -1.5687464279132974 0.97503617971188872 0.18931129152199933 ph-ice C 74 2122250322.0738361 +(PID.TID 0000.0001) whio : write lev 2 rec 16 ph-ice B 75 -1.5684549635910872 0.97458566526969903 0.18911358706095360 ph-ice C 75 2148484071.8904910 ph-ice B 76 -1.5681679357403626 0.97413395846431550 0.18891521007745046 @@ -3349,6 +3827,7 @@ ph-ice C 78 2226838631.0677695 ph-ice B 79 -1.5673322172326478 0.97277204340619083 0.18831619649337544 ph-ice C 79 2252840889.1188369 +(PID.TID 0000.0001) whio : write lev 2 rec 17 ph-ice B 80 -1.5670616993680178 0.97231592118674681 0.18811527974239162 ph-ice C 80 2278785030.1085706 ph-ice B 81 -1.5667950175496819 0.97185877823479716 0.18791376349510247 @@ -3359,6 +3838,7 @@ ph-ice C 83 2356268248.0275283 ph-ice B 84 -1.5660169048703538 0.97048153214890642 0.18730574953074947 ph-ice C 84 2381979248.6129613 +(PID.TID 0000.0001) whio : write lev 2 rec 18 ph-ice B 85 -1.5657644991792834 0.97002060867778450 0.18710196517183450 ph-ice C 85 2407631715.1490874 ph-ice B 86 -1.5655154106389368 0.96955881102016672 0.18689764440949497 @@ -3369,6 +3849,7 @@ ph-ice C 88 2484236951.2929873 ph-ice B 89 -1.5647871114662451 0.96816843480578707 0.18628157754008043 ph-ice C 89 2509654329.3043180 +(PID.TID 0000.0001) whio : write lev 2 rec 19 ph-ice B 90 -1.5645503684093980 0.96770339816767470 0.18607522337701074 ph-ice C 90 2535012703.7948956 ph-ice B 91 -1.5643164940117751 0.96723761219559112 0.18586838732449140 @@ -3379,6 +3860,7 @@ ph-ice C 93 2610732911.8385425 ph-ice B 94 -1.5636312732972597 0.96583598097830914 0.18524508619408156 ph-ice C 94 2635854383.7701058 +(PID.TID 0000.0001) whio : write lev 2 rec 20 ph-ice B 95 -1.5634080755760058 0.96536741681536431 0.18503641954400177 ph-ice C 95 2660916413.6401181 ph-ice B 96 -1.5631873588183800 0.96489820940373738 0.18482731810920100 @@ -3389,6 +3871,7 @@ ph-ice C 98 2735745011.7420526 ph-ice B 99 -1.5625393944989743 0.96348691648055784 0.18419749009571190 ph-ice C 99 2760568439.1643796 +(PID.TID 0000.0001) whio : write lev 2 rec 21 ph-ice B 100 -1.5623279117121187 0.96301532179857285 0.18398673330900969 ph-ice C 100 2785332012.2466865 ph-ice B 101 -1.5621185746913886 0.96254317371156983 0.18377558244318928 @@ -3399,6 +3882,7 @@ ph-ice C 103 2859262812.9402986 ph-ice B 104 -1.5615028330794767 0.96112356847920288 0.18313983882756157 ph-ice C 104 2883786180.2990174 +(PID.TID 0000.0001) whio : write lev 2 rec 22 ph-ice B 105 -1.5613014825637834 0.96064936356441233 0.18292718405480071 ph-ice C 105 2908249303.1832862 ph-ice B 106 -1.5611019879486063 0.96017468102686165 0.18271417038172086 @@ -3409,6 +3893,7 @@ ph-ice C 108 2981276451.5249963 ph-ice B 109 -1.5605141161157075 0.95874790172295765 0.18207303944775896 ph-ice C 109 3005497846.4931512 +(PID.TID 0000.0001) whio : write lev 2 rec 23 ph-ice B 110 -1.5603215291267247 0.95827144042976076 0.18185865275628374 ph-ice C 110 3029658625.3316388 ph-ice B 111 -1.5601305473156073 0.95779456511698902 0.18164393756979080 @@ -3419,6 +3904,7 @@ ph-ice C 113 3101776543.8568120 ph-ice B 114 -1.5595667801518818 0.95636156708778863 0.18099787591670763 ph-ice C 114 3125694139.7734780 +(PID.TID 0000.0001) whio : write lev 2 rec 24 ph-ice B 115 -1.5593817726567225 0.95588314572124666 0.18078190084556109 ph-ice C 115 3149550763.0836778 ph-ice B 116 -1.5591981534147912 0.95540436338456602 0.18056562356171260 @@ -3430,6 +3916,7 @@ ph-ice B 119 -1.5586552333629129 0.95396594349287189 0.17991502587301419 ph-ice C 119 3244366142.1855283 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) whio : write lev 2 rec 25 ph-ice B 115 -1.5593817726567225 0.95588314572124666 0.18078190084556109 ph-ice C 115 3149550763.0836778 ph-ice B 116 -1.5591981534147912 0.95540436338456602 0.18056562356171260 @@ -3442,6 +3929,77 @@ ph-ice C 119 3244366142.1855283 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 120 +(PID.TID 0000.0001) %MON ad_time_secondsf = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 120 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= ph-ice B 110 -1.5603215291267247 0.95827144042976076 0.18185865275628374 ph-ice C 110 3029658625.3316388 ph-ice B 111 -1.5601305473156073 0.95779456511698902 0.18164393756979080 @@ -3482,6 +4040,105 @@ ph-ice C 98 2735745011.7420526 ph-ice B 99 -1.5625393944989743 0.96348691648055784 0.18419749009571190 ph-ice C 99 2760568439.1643796 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 96 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 5.0634774208057E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 1.4344912597889E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 6.4642295689462E-15 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.5637647661891E-16 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 96 +(PID.TID 0000.0001) %MON ad_time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -6.0610545121397E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.7605282382676E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 7.8022050366157E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.8879232332555E-12 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -3.4269565443097E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -9.9291035070710E-12 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 4.4184232576564E-12 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.0653218551284E-13 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 96 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 8.8196839488846E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -2.8494556538060E-10 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.9305910465188E-10 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.2715968457655E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 5.5748671386201E-11 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 9.6622992823281E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -8.8653864433919E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 1.1155372104730E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.5896773621567E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 6.8103681826088E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 1.7426132933352E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -6.4075564688978E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -3.2698716951658E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 3.3306699659697E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 6.4453596897447E-13 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 5.0582479071128E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 4.7118350845695E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 1.1126320820068E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 3.3782816684531E-11 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 1.8379913291203E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 1.6857317464526E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 3.9898617502405E-10 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 1.2133298598444E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= ph-ice B 90 -1.5645503684093980 0.96770339816767470 0.18607522337701074 ph-ice C 90 2535012703.7948956 ph-ice B 91 -1.5643164940117751 0.96723761219559112 0.18586838732449140 @@ -3532,6 +4189,105 @@ ph-ice C 73 2095958977.6661813 ph-ice B 74 -1.5687464279132974 0.97503617971188872 0.18931129152199933 ph-ice C 74 2122250322.0738361 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 72 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.1083633147159E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 4.7056182446514E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 1.6265321181312E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 4.1562141500515E-16 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 72 +(PID.TID 0000.0001) %MON ad_time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.2924752053792E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -5.5475135171710E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.9018556917799E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.8771858446737E-12 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.6522684134049E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.1899740057671E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.1170261019289E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.8338988219294E-13 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 72 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 3.3967570046526E-08 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -9.1878656038492E-10 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 7.4745395595062E-10 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 4.9223578988223E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 2.1577333407318E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 3.5881096772270E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -3.4069327578492E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 4.3551195436252E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 6.2018311156015E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 2.6536889665025E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 3.7797591769999E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -2.0391553906276E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -1.0354189186853E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 8.7586191500504E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 1.7936293499415E-12 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.0223284603499E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 9.3824446958886E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 2.2106897622314E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 6.7254219512088E-11 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 3.6857200133194E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 3.3453725369489E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 7.9044909264889E-10 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 2.4084610434750E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= ph-ice B 65 -1.5715921939801123 0.97903052703036886 0.19105757676389984 ph-ice C 65 1883569082.7733924 ph-ice B 66 -1.5712544168047180 0.97859258992511056 0.19086670171917006 @@ -3582,6 +4338,105 @@ ph-ice C 48 1420310189.7948878 ph-ice B 49 -1.5779365538141876 0.98577720132379532 0.19397916313116059 ph-ice C 49 1448001119.7934864 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 48 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 1.7025708806095E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 8.8017425869993E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 2.5555419696396E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 7.1004861258966E-16 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 48 +(PID.TID 0000.0001) %MON ad_time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.9696628831534E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.0244318214294E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.9560672552199E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 8.2352915238954E-12 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.2179384840739E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -6.0110835465754E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 1.7976436046938E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 4.9099825374025E-13 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 48 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 7.5000909049350E-08 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -1.8377619727067E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 1.6589374084645E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.0922771517515E-08 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 4.7867057353719E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 7.6322698006637E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -7.5077320282763E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 9.6128899238771E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 1.3859402184520E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 5.9238745869793E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 4.0286841056282E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -3.7665660436980E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -1.8887418013402E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.3556847690064E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.6331782268354E-12 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 1.5492980701133E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 1.4014372425774E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 3.2876701969625E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 1.0019425766916E-10 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 5.5732375189722E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 4.9911401546444E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.1751201506466E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 3.5859697262372E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= ph-ice B 40 -1.5825109512112714 0.98928928553040774 0.19548525057908156 ph-ice C 40 1196845881.2896149 ph-ice B 41 -1.5819579524866192 0.98891178762854004 0.19532388175446985 @@ -3632,6 +4487,105 @@ ph-ice C 23 710856909.21532667 ph-ice B 24 -1.5933084516320595 0.99476749531402342 0.19781186127280898 ph-ice C 24 739854574.21137202 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 24 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.2876816353934E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 1.3303095254838E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 3.4080339004171E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 9.9312075424620E-16 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 24 +(PID.TID 0000.0001) %MON ad_time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -2.6364795677362E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.5392411711410E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.9243534995670E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.1453253073737E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.7009082277477E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -9.2185461030026E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.4590135811422E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 6.9961929500568E-13 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 24 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 1.3178560111082E-07 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -2.7395006060464E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 2.9293092729751E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 1.9279520019474E-08 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 8.4457267506735E-10 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 1.3090585314029E-07 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -1.3099982220564E-07 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 1.6844081275450E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 2.4609604571271E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.0496979146257E-09 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 2.8165854132373E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -5.5961071254925E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -2.7141699915359E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.8839917214564E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 3.2502473779157E-12 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.0869358622406E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 1.8622764824134E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 4.2882025122641E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 1.3042653630901E-10 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 7.5140231205015E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 6.6345723775054E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 1.5344719918602E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 4.6710985734121E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= ph-ice B 15 -1.6014692775250958 0.99724077783438014 0.19885165024142812 ph-ice C 15 477013810.52470720 ph-ice B 16 -1.6004696366477322 0.99699326412734279 0.19874795163593029 @@ -3672,10 +4626,109 @@ ph-ice C 3 120321046.77355954 ph-ice B 4 -1.6143308073584433 0.99941130480019769 0.19975659048163302 ph-ice C 4 150299134.02091029 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_exf_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_exf_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_max = 2.8274183320417E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adqnet_mean = 1.8089805908793E-13 +(PID.TID 0000.0001) %MON ad_exf_adqnet_sd = 4.0317918650674E-14 +(PID.TID 0000.0001) %MON ad_exf_adqnet_del2 = 1.2310728802927E-15 +(PID.TID 0000.0001) %MON ad_exf_adempmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_exf_adempmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR EXF statistics for iwhen = 3 +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_time_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 5.0633984260585E-14 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.2131234770912E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -2.0597633519914E-09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.5860803404967E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 1.4011333406781E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.1352178794889E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.2607293820448E-10 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 2.9773093636796E-11 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 8.8082298828727E-13 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON ad_seaice_tsnumber = 0 +(PID.TID 0000.0001) %MON ad_seaice_time_sec = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_aduice_max = 2.0450863181031E-07 +(PID.TID 0000.0001) %MON ad_seaice_aduice_min = -3.9635108331602E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_mean = 4.5640175355442E-09 +(PID.TID 0000.0001) %MON ad_seaice_aduice_sd = 3.0025848336122E-08 +(PID.TID 0000.0001) %MON ad_seaice_aduice_del2 = 1.3145313434421E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_max = 2.0371329443841E-07 +(PID.TID 0000.0001) %MON ad_seaice_advice_min = -2.0515681319042E-07 +(PID.TID 0000.0001) %MON ad_seaice_advice_mean = 2.6771964459192E-09 +(PID.TID 0000.0001) %MON ad_seaice_advice_sd = 3.8422076485807E-08 +(PID.TID 0000.0001) %MON ad_seaice_advice_del2 = 1.6354685132875E-09 +(PID.TID 0000.0001) %MON ad_seaice_adarea_max = 2.4990450410148E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_min = -3.2237248799077E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_mean = -7.9100341650318E-11 +(PID.TID 0000.0001) %MON ad_seaice_adarea_sd = 1.1427601515134E-10 +(PID.TID 0000.0001) %MON ad_seaice_adarea_del2 = 2.0670928048130E-12 +(PID.TID 0000.0001) %MON ad_seaice_adheff_max = 2.6358692902813E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adheff_mean = 2.2781868770095E-08 +(PID.TID 0000.0001) %MON ad_seaice_adheff_sd = 6.1004123516853E-09 +(PID.TID 0000.0001) %MON ad_seaice_adheff_del2 = 1.6290617542456E-10 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_max = 9.5158901863253E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_mean = 8.1371373021450E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_sd = 2.1828503528333E-09 +(PID.TID 0000.0001) %MON ad_seaice_adhsnow_del2 = 5.8371066738513E-11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End AD_MONITOR SEAICE statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) grdchk reference fc: fcref = 1.46159765738472E-05 @@ -5812,171 +6865,165 @@ grad-res ------------------------------- (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 70.424003601074219 -(PID.TID 0000.0001) System time: 0.44800001382827759 -(PID.TID 0000.0001) Wall clock time: 70.927305936813354 +(PID.TID 0000.0001) User time: 59.115501403808594 +(PID.TID 0000.0001) System time: 1.8596479895059019 +(PID.TID 0000.0001) Wall clock time: 66.256040811538696 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 4.3999999761581421E-002 -(PID.TID 0000.0001) System time: 4.0000001899898052E-003 -(PID.TID 0000.0001) Wall clock time: 4.9685001373291016E-002 +(PID.TID 0000.0001) User time: 4.7198999673128128E-002 +(PID.TID 0000.0001) System time: 8.3803997142240405E-002 +(PID.TID 0000.0001) Wall clock time: 0.52092981338500977 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 36.207998901605606 -(PID.TID 0000.0001) System time: 0.32799998717382550 -(PID.TID 0000.0001) Wall clock time: 36.568407058715820 +(PID.TID 0000.0001) User time: 26.255491949617863 +(PID.TID 0000.0001) System time: 1.6066819876432419 +(PID.TID 0000.0001) Wall clock time: 32.705721855163574 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 39.979948908090591 -(PID.TID 0000.0001) System time: 0.11200002953410149 -(PID.TID 0000.0001) Wall clock time: 40.100943326950073 +(PID.TID 0000.0001) User time: 41.350089766085148 +(PID.TID 0000.0001) System time: 0.28554572165012360 +(PID.TID 0000.0001) Wall clock time: 42.500232696533203 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21600104868412018 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.18325495719909668 +(PID.TID 0000.0001) User time: 0.14653322100639343 +(PID.TID 0000.0001) System time: 1.2816041707992554E-002 +(PID.TID 0000.0001) Wall clock time: 0.16010785102844238 (PID.TID 0000.0001) No. starts: 360 (PID.TID 0000.0001) No. stops: 360 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.5079888254404068 -(PID.TID 0000.0001) System time: 2.4000011384487152E-002 -(PID.TID 0000.0001) Wall clock time: 7.5324959754943848 +(PID.TID 0000.0001) User time: 8.1258381679654121 +(PID.TID 0000.0001) System time: 0.10678106546401978 +(PID.TID 0000.0001) Wall clock time: 8.2424051761627197 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "EXF_GETFORCING [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 8.2120156437158585 -(PID.TID 0000.0001) System time: 2.4000011384487152E-002 -(PID.TID 0000.0001) Wall clock time: 8.2388019561767578 -(PID.TID 0000.0001) No. starts: 1320 -(PID.TID 0000.0001) No. stops: 1320 -(PID.TID 0000.0001) Seconds in section "I/O (WRITE) [ADJOINT LOOP]": -(PID.TID 0000.0001) User time: 3.5991907119750977E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.8858890533447266E-002 -(PID.TID 0000.0001) No. starts: 4920 -(PID.TID 0000.0001) No. stops: 4920 +(PID.TID 0000.0001) User time: 7.4137694016098976 +(PID.TID 0000.0001) System time: 9.1255590319633484E-002 +(PID.TID 0000.0001) Wall clock time: 7.5163779258728027 +(PID.TID 0000.0001) No. starts: 1200 +(PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.5995025634765625E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0476827621459961E-002 -(PID.TID 0000.0001) No. starts: 1320 -(PID.TID 0000.0001) No. stops: 1320 +(PID.TID 0000.0001) User time: 1.0711029171943665E-002 +(PID.TID 0000.0001) System time: 8.3923339843750000E-005 +(PID.TID 0000.0001) Wall clock time: 1.0724067687988281E-002 +(PID.TID 0000.0001) No. starts: 1200 +(PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6005039215087891E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.6566677093505859E-003 +(PID.TID 0000.0001) User time: 2.2692697718739510 +(PID.TID 0000.0001) System time: 1.1686861515045166E-002 +(PID.TID 0000.0001) Wall clock time: 2.2825703620910645 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.7995567321777344E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.1588764190673828E-002 +(PID.TID 0000.0001) User time: 5.5561445653438568E-002 +(PID.TID 0000.0001) System time: 5.7695806026458740E-004 +(PID.TID 0000.0001) Wall clock time: 5.6172370910644531E-002 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 27.528042212128639 -(PID.TID 0000.0001) System time: 6.0000002384185791E-002 -(PID.TID 0000.0001) Wall clock time: 27.628920793533325 +(PID.TID 0000.0001) User time: 26.419097185134888 +(PID.TID 0000.0001) System time: 7.1474716067314148E-002 +(PID.TID 0000.0001) Wall clock time: 26.503159523010254 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "SEAICE_MODEL [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 25.788031369447708 -(PID.TID 0000.0001) System time: 6.0000002384185791E-002 -(PID.TID 0000.0001) Wall clock time: 25.822838783264160 +(PID.TID 0000.0001) User time: 24.729455478489399 +(PID.TID 0000.0001) System time: 6.8871483206748962E-002 +(PID.TID 0000.0001) Wall clock time: 24.810684919357300 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "SEAICE_DYNSOLVER [SEAICE_MODEL]": -(PID.TID 0000.0001) User time: 5.4399553984403610 -(PID.TID 0000.0001) System time: 2.0000010728836060E-002 -(PID.TID 0000.0001) Wall clock time: 5.4431660175323486 -(PID.TID 0000.0001) No. starts: 1320 -(PID.TID 0000.0001) No. stops: 1320 +(PID.TID 0000.0001) User time: 5.0207906812429428 +(PID.TID 0000.0001) System time: 2.6249632239341736E-002 +(PID.TID 0000.0001) Wall clock time: 5.0479981899261475 +(PID.TID 0000.0001) No. starts: 1200 +(PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1919701099395752 -(PID.TID 0000.0001) System time: 7.9999864101409912E-003 -(PID.TID 0000.0001) Wall clock time: 1.1483542919158936 +(PID.TID 0000.0001) User time: 1.0157489180564880 +(PID.TID 0000.0001) System time: 1.7836987972259521E-003 +(PID.TID 0000.0001) Wall clock time: 1.0181689262390137 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1993408203125000E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2593746185302734E-002 +(PID.TID 0000.0001) User time: 1.3647079467773438E-002 +(PID.TID 0000.0001) System time: 1.2293457984924316E-004 +(PID.TID 0000.0001) Wall clock time: 1.3875722885131836E-002 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.35201524198055267 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.34507060050964355 +(PID.TID 0000.0001) User time: 0.30797785520553589 +(PID.TID 0000.0001) System time: 1.6649812459945679E-003 +(PID.TID 0000.0001) Wall clock time: 0.31014013290405273 (PID.TID 0000.0001) No. starts: 2400 (PID.TID 0000.0001) No. stops: 2400 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.8559426069259644 -(PID.TID 0000.0001) System time: 1.6000032424926758E-002 -(PID.TID 0000.0001) Wall clock time: 2.9169313907623291 +(PID.TID 0000.0001) User time: 2.6628693491220474 +(PID.TID 0000.0001) System time: 1.1232689023017883E-002 +(PID.TID 0000.0001) Wall clock time: 2.6758031845092773 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1996269226074219E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.8671913146972656E-003 +(PID.TID 0000.0001) User time: 1.0678201913833618E-002 +(PID.TID 0000.0001) System time: 6.0036778450012207E-005 +(PID.TID 0000.0001) Wall clock time: 1.0760784149169922E-002 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.9997100830078125E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.7529678344726562E-003 -(PID.TID 0000.0001) No. starts: 120 -(PID.TID 0000.0001) No. stops: 120 +(PID.TID 0000.0001) User time: 2.1822348237037659E-002 +(PID.TID 0000.0001) System time: 5.8010220527648926E-005 +(PID.TID 0000.0001) Wall clock time: 2.1918535232543945E-002 +(PID.TID 0000.0001) No. starts: 1200 +(PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1999607086181641E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.6330642700195312E-003 +(PID.TID 0000.0001) User time: 1.0385900735855103E-002 +(PID.TID 0000.0001) System time: 5.7801604270935059E-005 +(PID.TID 0000.0001) Wall clock time: 1.0426759719848633E-002 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.7995707988739014E-002 -(PID.TID 0000.0001) System time: 3.9999969303607941E-003 -(PID.TID 0000.0001) Wall clock time: 8.7149381637573242E-002 +(PID.TID 0000.0001) User time: 0.10971933603286743 +(PID.TID 0000.0001) System time: 6.5745428204536438E-002 +(PID.TID 0000.0001) Wall clock time: 0.99255537986755371 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.0018043518066406E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.4096260070800781E-002 +(PID.TID 0000.0001) User time: 2.0579800009727478E-002 +(PID.TID 0000.0001) System time: 3.7549436092376709E-004 +(PID.TID 0000.0001) Wall clock time: 4.5111417770385742E-002 (PID.TID 0000.0001) No. starts: 1200 (PID.TID 0000.0001) No. stops: 1200 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 34.172004699707031 -(PID.TID 0000.0001) System time: 0.11600002646446228 -(PID.TID 0000.0001) Wall clock time: 34.309172153472900 +(PID.TID 0000.0001) User time: 32.812776565551758 +(PID.TID 0000.0001) System time: 0.16885304450988770 +(PID.TID 0000.0001) Wall clock time: 33.029314994812012 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 7.2002410888671875E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.1685781478881836E-002 +(PID.TID 0000.0001) User time: 0.11744689941406250 +(PID.TID 0000.0001) System time: 1.4241933822631836E-002 +(PID.TID 0000.0001) Wall clock time: 0.13172006607055664 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 34.079998016357422 -(PID.TID 0000.0001) System time: 0.11600002646446228 -(PID.TID 0000.0001) Wall clock time: 34.211842536926270 +(PID.TID 0000.0001) User time: 32.677379608154297 +(PID.TID 0000.0001) System time: 0.15300297737121582 +(PID.TID 0000.0001) Wall clock time: 32.845699310302734 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 31.475940704345703 -(PID.TID 0000.0001) System time: 0.10400003194808960 -(PID.TID 0000.0001) Wall clock time: 31.587927579879761 +(PID.TID 0000.0001) User time: 32.663080215454102 +(PID.TID 0000.0001) System time: 0.15291666984558105 +(PID.TID 0000.0001) Wall clock time: 32.831274509429932 (PID.TID 0000.0001) No. starts: 960 (PID.TID 0000.0001) No. stops: 960 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) User time: 1.6002655029296875E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.3160705566406250E-003 +(PID.TID 0000.0001) Wall clock time: 1.6150474548339844E-003 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -6027,9 +7074,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 3916 +(PID.TID 0000.0001) // No. barriers = 5302 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 3916 +(PID.TID 0000.0001) // Total barrier spins = 5302 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/offline_exf_seaice/results/output_tlm.thsice.txt.gz b/verification/offline_exf_seaice/results/output_tlm.thsice.txt.gz index e7eb75204c..400cef1ac3 100644 Binary files a/verification/offline_exf_seaice/results/output_tlm.thsice.txt.gz and b/verification/offline_exf_seaice/results/output_tlm.thsice.txt.gz differ diff --git a/verification/seaice_itd/code/SEAICE_OPTIONS.h b/verification/seaice_itd/code/SEAICE_OPTIONS.h index f9697ddec7..dd6c75f73e 100644 --- a/verification/seaice_itd/code/SEAICE_OPTIONS.h +++ b/verification/seaice_itd/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,68 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #undef SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP +#else +# undef ALLOW_SITRACER #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # define SEAICE_ALLOW_KRYLOV -C enable this flag to reproduce old verification results for JFNK + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK # define SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # define SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # define SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -124,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/seaice_itd/code/SEAICE_SIZE.h b/verification/seaice_itd/code/SEAICE_SIZE.h index 679adecae5..8e5cd2d42c 100644 --- a/verification/seaice_itd/code/SEAICE_SIZE.h +++ b/verification/seaice_itd/code/SEAICE_SIZE.h @@ -29,7 +29,6 @@ C- Maximum Number of tracers PARAMETER(SItrMaxNum = 3 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iicekey INTEGER nEVPstepMax PARAMETER ( nEVPstepMax=180 ) INTEGER NMAX_TICE diff --git a/verification/seaice_itd/code/SIZE.h b/verification/seaice_itd/code/SIZE.h index 91293eb80a..d9c3ec08c9 100644 --- a/verification/seaice_itd/code/SIZE.h +++ b/verification/seaice_itd/code/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/seaice_itd/code/SIZE.h_mpi b/verification/seaice_itd/code/SIZE.h_mpi index 9b22d38a86..df3a7ee802 100644 --- a/verification/seaice_itd/code/SIZE.h_mpi +++ b/verification/seaice_itd/code/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/seaice_obcs/code/SEAICE_OPTIONS.h b/verification/seaice_obcs/code/SEAICE_OPTIONS.h index 2ca9e5012e..83350b5875 100644 --- a/verification/seaice_obcs/code/SEAICE_OPTIONS.h +++ b/verification/seaice_obcs/code/SEAICE_OPTIONS.h @@ -1,3 +1,8 @@ +#ifndef SEAICE_OPTIONS_H +#define SEAICE_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + C *==========================================================* C | SEAICE_OPTIONS.h C | o CPP options file for sea ice package. @@ -6,24 +11,12 @@ C | Use this file for selecting options within the sea ice C | package. C *==========================================================* -#ifndef SEAICE_OPTIONS_H -#define SEAICE_OPTIONS_H -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" - #ifdef ALLOW_SEAICE -C Package-specific Options & Macros go here +C--- Package-specific Options & Macros go here C-- Write "text-plots" of certain fields in STDOUT for debugging. #undef SEAICE_DEBUG -C-- Allow sea-ice dynamic code. -C This option is provided to allow use of TAMC -C on the thermodynamics component of the code only. -C Sea-ice dynamics can also be turned off at runtime -C using variable SEAICEuseDYNAMICS. -#define SEAICE_ALLOW_DYNAMICS - C-- By default, the sea-ice package uses its own integrated bulk C formulae to compute fluxes (fu, fv, EmPmR, Qnet, and Qsw) over C open-ocean. When this flag is set, these variables are computed @@ -55,66 +48,116 @@ C seaice with a fraction (=SEAICE_saltFrac) of freezing seawater salinity. C- Note: SItracer also offers an alternative way to handle variable salinity. #define SEAICE_VARIABLE_SALINITY -C-- Tracers of ice and/or ice cover. -#undef ALLOW_SITRACER -#ifdef ALLOW_SITRACER -C-- To try avoid 'spontaneous generation' of tracer maxima by advdiff. -# define ALLOW_SITRACER_ADVCAP -#endif - -C-- Enable grease ice parameterization -C The grease ice parameterization delays formation of solid -C sea ice from frazil ice by a time constant and provides a -C dynamic calculation of the initial solid sea ice thickness -C HO as a function of winds, currents and available grease ice -C volume. Grease ice does not significantly reduce heat loss -C from the ocean in winter and area covered by grease is thus -C handled like open water. -C (For details see Smedsrud and Martin, 2014, Ann.Glac.) +C-- Enable grease ice parameterization (requires to define ALLOW_SITRACER): +C The grease ice parameterization delays formation of solid sea ice from +C frazil ice by a time constant and provides a dynamic calculation of the +C initial solid sea ice thickness HO as a function of winds, currents and +C available grease ice volume. Grease ice does not significantly reduce heat +C loss from the ocean in winter and area covered by grease is thus handled +C like open water (For details see Smedsrud and Martin, 2014, Ann.Glac.). C Set SItrName(1) = 'grease' in namelist SEAICE_PARM03 in data.seaice C then output SItr01 is SItrNameLong(1) = 'grease ice volume fraction', -C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff -C to yield grease ice volume. Additionally, the actual grease ice -C layer thickness (diagnostic SIgrsLT) can be saved. +C with SItrUnit(1) = '[0-1]', which needs to be multiplied by SIheff to +C yield grease ice volume. Additionally, the actual grease ice layer +C thickness (diagnostic SIgrsLT) can be saved. #undef SEAICE_GREASE -C-- grease ice uses SItracer: + +C-- Tracers of ice and/or ice cover. #ifdef SEAICE_GREASE +C SEAICE_GREASE code requires to define ALLOW_SITRACER +# define ALLOW_SITRACER +#else # define ALLOW_SITRACER -# define ALLOW_SITRACER_ADVCAP #endif +#ifdef ALLOW_SITRACER +C- To try avoid 'spontaneous generation' of tracer maxima by advdiff. +# define ALLOW_SITRACER_ADVCAP + +C- Include code to diagnose sea ice tracer budgets in +C seaice_advdiff.F and seaice_tracer_phys.F. Diagnostics are +C computed the "call diagnostics_fill" statement is commented out. +# undef ALLOW_SITRACER_DEBUG_DIAG +#endif /* ALLOW_SITRACER */ + +C-- Allow sea-ice dynamic code. These options are provided so that, +C if turned off (#undef), to compile (and process with TAF) only the +C the thermodynamics component of the code. Note that, if needed, +C sea-ice dynamics can be turned off at runtime (SEAICEuseDYNAMICS=F). C-- Historically, the seaice model was discretized on a B-Grid. This -C discretization should still work but it is not longer actively tested -C and supported. The following flag should always be set in order to use -C the operational C-grid discretization. +C discretization should still work but it is not longer actively +C tested and supported. Define this flag to compile it. It cannot be +C defined together with SEAICE_CGRID +#undef SEAICE_BGRID_DYNAMICS + +C-- The following flag should always be set in order to use C the +C-- operational C-grid discretization. #define SEAICE_CGRID -C-- Only for the C-grid version it is possible to #ifdef SEAICE_CGRID +C-- Options for the C-grid version only: + C enable advection of sea ice momentum # undef SEAICE_ALLOW_MOM_ADVECTION + C enable JFNK code by defining the following flag # define SEAICE_ALLOW_JFNK + C enable Krylov code by defining the following flag # define SEAICE_ALLOW_KRYLOV + +C-- Use a different order when mapping 2D velocity arrays to 1D vector +C before passing it to FGMRES. +# undef SEAICE_JFNK_MAP_REORDER + +C to reproduce old verification results for JFNK +# undef SEAICE_PRECOND_EXTRA_EXCHANGE + C enable LSR to use global (multi-tile) tri-diagonal solver # undef SEAICE_GLOBAL_3DIAG_SOLVER + C enable EVP code by defining the following flag # define SEAICE_ALLOW_EVP # ifdef SEAICE_ALLOW_EVP -C-- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities +C- When set use SEAICE_zetaMin and SEAICE_evpDampC to limit viscosities C from below and above in seaice_evp: not necessary, and not recommended # undef SEAICE_ALLOW_CLIPZETA + +C Include code to avoid underflows in EVP-code (copied from CICE). +C Many compilers can handle this more efficiently with the help of a flag. +# undef SEAICE_EVP_ELIMINATE_UNDERFLOWS + +C Include code to print residual of EVP iteration for debugging/diagnostics +# undef ALLOW_SEAICE_EVP_RESIDUAL # endif /* SEAICE_ALLOW_EVP */ + C smooth regularization (without max-function) of delta for C better differentiability # undef SEAICE_DELTA_SMOOTHREG + C regularize zeta to zmax with a smooth tanh-function instead C of a min(zeta,zmax). This improves convergence of iterative C solvers (Lemieux and Tremblay 2009, JGR). No effect on EVP # undef SEAICE_ZETA_SMOOTHREG + +C-- Different yield curves within the VP rheology framework C allow the truncated ellipse rheology (runtime flag SEAICEuseTEM) # undef SEAICE_ALLOW_TEM + +C allow the use of the Mohr Coulomb rheology (runtime flag SEAICEuseMCS) +C as defined in (Ip 1991) /!\ This is known to give unstable results, +C use with caution +# undef SEAICE_ALLOW_MCS + +C allow the use of Mohr Coulomb with elliptical plastic potential +C (runtime flag SEAICEuseMCE) +# undef SEAICE_ALLOW_MCE + +C allow the teardrop and parabolic lens rheology +C (runtime flag SEAICEuseTD and SEAICEusePL) +# undef SEAICE_ALLOW_TEARDROP + +C-- LSR solver settings C Use LSR vector code; not useful on non-vector machines, because it C slows down convergence considerably, but the extra iterations are C more than made up by the much faster code on vector machines. For @@ -122,54 +165,108 @@ C the only regularly test vector machine these flags a specified C in the build options file SUPER-UX_SX-8_sxf90_awi, so that we comment C them out here. # undef SEAICE_VECTORIZE_LSR + C Use zebra-method (alternate lines) for line-successive-relaxation C This modification improves the convergence of the vector code C dramatically, so that is may actually be useful in general, but C that needs to be tested. Can be used without vectorization options. # undef SEAICE_LSR_ZEBRA + +C Include code to print residual of nonlinear outer loop of LSR +# undef SEAICE_ALLOW_CHECK_LSR_CONVERGENCE + +C This flag is also required for an actual adjoint of seaice_lsr; +C increases memory requirements a lot. +# undef SEAICE_LSR_ADJOINT_ITER + C Use parameterisation of grounding ice for a better representation C of fastice in shallow seas # undef SEAICE_ALLOW_BOTTOMDRAG -#else /* not SEAICE_CGRID, but old B-grid */ -C-- By default for B-grid dynamics solver wind stress under sea-ice is + +#endif /* SEAICE_CGRID */ + +#ifdef SEAICE_BGRID_DYNAMICS +C-- Options for the B-grid version only: + +C- By default for B-grid dynamics solver wind stress under sea-ice is C set to the same value as it would be if there was no sea-ice. C Define following CPP flag for B-grid ice-ocean stress coupling. # define SEAICE_BICE_STRESS -C-- By default for B-grid dynamics solver surface tilt is obtained +C- By default for B-grid dynamics solver surface tilt is obtained C indirectly via geostrophic velocities. Define following CPP C in order to use ETAN instead. # define EXPLICIT_SSH_SLOPE -C-- Defining this flag turns on FV-discretization of the B-grid LSOR solver. + +C- Defining this flag turns on FV-discretization of the B-grid LSOR solver. C It is smoother and includes all metric terms, similar to C-grid solvers. C It is here for completeness, but its usefulness is unclear. # undef SEAICE_LSRBNEW -#endif /* SEAICE_CGRID */ -C-- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box +#endif /* SEAICE_BGRID_DYNAMICS */ + +C-- Some regularisations +C- When set limit the Ice-Loading to mass of 1/5 of Surface ocean grid-box #undef SEAICE_CAP_ICELOAD -C-- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, + +C- When set use SEAICE_clipVelocties = .true., to clip U/VICE at 40cm/s, C not recommended #undef SEAICE_ALLOW_CLIPVELS -C-- When set cap the sublimation latent heat flux in solve4temp according + +C- When set cap the sublimation latent heat flux in solve4temp according C to the available amount of ice+snow. Otherwise this term is treated C like all of the others -- residuals heat and fw stocks are passed to C the ocean at the end of seaice_growth in a conservative manner. C SEAICE_CAP_SUBLIM is not needed as of now, but kept just in case. #undef SEAICE_CAP_SUBLIM +C-- AD flags +C- TAF related flag, currently only used in seaice_ad_check_lev[1-4]_dir.h; +C it is unclear if this is ever needed. +#undef AUTODIFF_SOMETIMES_NEEDED + +C- Reset fields to zero to stabilise AD code of dynamics solver +C (resulting in wrong gradients) +#undef SEAICE_DYN_STABLE_ADJOINT + +C- Another flag to simplify dependencies for TAF-generated AD-code +C the thermodynamic part, mostly by resetting variables to zero +#undef SEAICE_MODIFY_GROWTH_ADJ + +C- Special seaice flag for AD testing +#undef SEAICE_EXCLUDE_FOR_EXACT_AD_TESTING + +C-- Use the adjointable sea-ice thermodynamic model +C in seaice_growth_adx.F instead of seaice_growth.F +C This options excludes more complex physics such +C as sublimation, ITD, and frazil. +#undef SEAICE_USE_GROWTH_ADX + +C-- These flags are not strictly AD-related but may help obtaining +C simpler AD-code: +C- Do not compile code that resets AREA (or AREAITD) to a mininum value +C of SEAICE_area_floor (=SIeps with default of 1e-5) if there is +C some finite sea ice thickness +#undef DISABLE_AREA_FLOOR + +C- Do not compile growth/thermodynamics code (avoiding this code can +C also be done by setting runtime parameter usePWthermodynamics=F) +#undef DISABLE_SEAICE_GROWTH + +C- Do not compile/use seaice-related obcs code when using obcs. +#undef DISABLE_SEAICE_OBCS + C-- Enable free drift code #define SEAICE_ALLOW_FREEDRIFT C-- pkg/seaice cost functions compile flags -c >>> Sea-ice volume (requires pkg/cost) +C- Sea-ice volume (requires pkg/cost) #undef ALLOW_COST_ICE -c >>> Sea-ice misfit to obs (requires pkg/cost and ecco) -#undef ALLOW_SEAICE_COST_SMR_AREA +#ifdef ALLOW_COST_ICE +C- Enable template for sea-ice volume export in seaice_cost_export.F +C (requires pkg/cost & ALLOW_COST_ICE defined) +# undef ALLOW_SEAICE_COST_EXPORT +#endif /* ALLOW_COST_ICE */ #endif /* ALLOW_SEAICE */ #endif /* SEAICE_OPTIONS_H */ - -CEH3 ;;; Local Variables: *** -CEH3 ;;; mode:fortran *** -CEH3 ;;; End: *** diff --git a/verification/shelfice_2d_remesh/results/output.txt b/verification/shelfice_2d_remesh/results/output.txt index 7f957f2e69..26bda8ec87 100644 --- a/verification/shelfice_2d_remesh/results/output.txt +++ b/verification/shelfice_2d_remesh/results/output.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67n +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67x (PID.TID 0000.0001) // Build user: jm_c (PID.TID 0000.0001) // Build host: villon -(PID.TID 0000.0001) // Build date: Thu Dec 19 17:54:20 EST 2019 +(PID.TID 0000.0001) // Build date: Wed Apr 14 18:09:52 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -47,7 +47,7 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ (PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ @@ -280,11 +280,11 @@ (PID.TID 0000.0001) > OBCSprintDiags = .FALSE., (PID.TID 0000.0001) > / (PID.TID 0000.0001) > -(PID.TID 0000.0001) ># Orlanski parameters -(PID.TID 0000.0001) > &OBCS_PARM02 +(PID.TID 0000.0001) ># Orlanski parameters (skipped with #undef ALLOW_ORLANSKI) +(PID.TID 0000.0001) >#&OBCS_PARM02 (PID.TID 0000.0001) >#Cmax=0.45, (PID.TID 0000.0001) >#cVelTimeScale=1000., -(PID.TID 0000.0001) > / +(PID.TID 0000.0001) >#& (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Sponge layer parameters (PID.TID 0000.0001) > &OBCS_PARM03 @@ -417,8 +417,8 @@ (PID.TID 0000.0001) >#- regional mask: =1 : under-ice ; =2 : open-ocean (PID.TID 0000.0001) > diagSt_regMaskFile='under_Ice_mask.bin', (PID.TID 0000.0001) > nSetRegMskFile=1, -(PID.TID 0000.0001) > set_regMask(1)= 1, 1, -(PID.TID 0000.0001) > val_regMask(1)= 1., 2., +(PID.TID 0000.0001) > set_regMask(1:2)= 1, 1, +(PID.TID 0000.0001) > val_regMask(1:2)= 1., 2., (PID.TID 0000.0001) >#--- (PID.TID 0000.0001) > stat_fields(1:6,1) = 'ETAN ','THETA ','SALT ', (PID.TID 0000.0001) > 'UVEL ','VVEL ','WVEL ', @@ -572,7 +572,7 @@ (PID.TID 0000.0001) >SHI_mass< >R_Shelfi< (PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 1 , timeList: (PID.TID 0000.0001) 8.694000000000E+05 -(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "R_Shelfi", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_LEV_RS: read field: "R_Shelfi", # 2 in fldList, rec= 2 (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: pickup_shelfice.0000002898.data (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_shelfice.0000002898 (PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 1 @@ -621,7 +621,7 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shelfice_dMdt.r02.bin (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 206 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 204 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 96 RSURF @@ -630,12 +630,12 @@ (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 86 oceQnet (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 84 oceFWflx (PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 77 MXLDEPTH -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 196 SHIfwFlx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 197 SHIhtFlx -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SHIgammT -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 SHIgammS -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 205 SHI_mass -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 204 SHIuStar +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 SHIfwFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 195 SHIhtFlx +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 200 SHIgammT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 201 SHIgammS +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 203 SHI_mass +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 202 SHIuStar (PID.TID 0000.0001) SETDIAG: Allocate 90 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 90 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 90 x 1 Levels for Diagnostic # 32 WVEL @@ -720,7 +720,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 90 @ -1.900000000000000E+00 /* K = 1: 90 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 90 @ 3.440000000000000E+01 /* K = 1: 90 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -813,10 +813,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.974000000000000E+03 (PID.TID 0000.0001) ; @@ -914,7 +920,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -923,7 +929,7 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -2091,12 +2097,12 @@ listId= 1 ; file name: surfDiag 86 |oceQnet | 5 | 0 | 1 | 0 | 84 |oceFWflx| 6 | 0 | 1 | 0 | 77 |MXLDEPTH| 7 | 0 | 1 | 0 | - 196 |SHIfwFlx| 8 | 0 | 1 | 0 | - 197 |SHIhtFlx| 9 | 0 | 1 | 0 | - 202 |SHIgammT| 10 | 0 | 1 | 0 | - 203 |SHIgammS| 11 | 0 | 1 | 0 | - 205 |SHI_mass| 12 | 0 | 1 | 0 | - 204 |SHIuStar| 13 | 0 | 1 | 0 | + 194 |SHIfwFlx| 8 | 0 | 1 | 0 | + 195 |SHIhtFlx| 9 | 0 | 1 | 0 | + 200 |SHIgammT| 10 | 0 | 1 | 0 | + 201 |SHIgammS| 11 | 0 | 1 | 0 | + 203 |SHI_mass| 12 | 0 | 1 | 0 | + 202 |SHIuStar| 13 | 0 | 1 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: dynDiag nFlds, nActive, freq & phase , nLev @@ -2217,20 +2223,20 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F - cg2d: Sum(rhs),rhsMax = -8.30454415717935E-03 1.20149977625955E+01 -(PID.TID 0000.0001) cg2d_init_res = 6.27820268273025E-03 + cg2d: Sum(rhs),rhsMax = -8.30454659785337E-03 1.20149977352039E+01 +(PID.TID 0000.0001) cg2d_init_res = 6.27819966373872E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.77204414676275E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.77218390347427E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2899 (PID.TID 0000.0001) %MON time_secondsf = 8.6970000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1750712624852E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8056969601930E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.6749093287363E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.6698938536061E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1157658724911E-02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1750712851441E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8056969197606E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.6749109836333E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.6698939756565E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1157658492156E-02 (PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3225730537024E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8280729945122E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.9674800957532E-03 @@ -2238,31 +2244,31 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6905094608655E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.2867812678707E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2031021807856E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.2867812678751E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2031021807859E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2972057820135E-06 (PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2193342364275E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6883572359413E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4885251862138E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113990405241E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8921334446286E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6883572359568E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4885251862136E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113990405242E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8921334446289E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999616538E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929693896894E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490514430260E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7467334367723E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929693653944E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490514446040E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7467334178669E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995084E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526557471685E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6104995514447E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3881993318000E-05 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526557470683E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6104995640063E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3881991142603E-05 (PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1263468010164E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6580027092824E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6580027092824E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.3204816226560E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6580027092825E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6580027092825E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.3204818670002E-03 (PID.TID 0000.0001) %MON ke_max = 3.0935132827659E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.3999767770528E-05 +(PID.TID 0000.0001) %MON ke_mean = 9.3999767770529E-05 (PID.TID 0000.0001) %MON ke_vol = 3.5709722489369E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics @@ -2278,53 +2284,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.30595277285057E-03 1.20147970175638E+01 -(PID.TID 0000.0001) cg2d_init_res = 6.27852128736015E-03 + cg2d: Sum(rhs),rhsMax = -8.30595768461340E-03 1.20147969614398E+01 +(PID.TID 0000.0001) cg2d_init_res = 6.27851819954136E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.78953170177504E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.78963791785378E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2900 (PID.TID 0000.0001) %MON time_secondsf = 8.7000000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1813465586982E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8885758582535E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.6757770743638E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7072340373236E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1161387833288E-02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1813466035798E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.8885757771034E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.6757804042475E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.7072342819512E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1161387361369E-02 (PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3224142538807E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8279476588979E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0059076775190E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3399360800824E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0059076771972E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3399360800825E-02 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6904776082492E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.5484337588158E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2367453425089E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2967904849293E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2186646142663E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6637018744395E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4413144010846E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2110053551848E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8918686057046E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.5484338208399E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2367453483949E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2967904531424E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2186646142177E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.6637011270091E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4413143977772E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2110053551017E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8918686054834E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999613414E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929680036551E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490505108651E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7468025466539E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929679545204E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490505140310E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7468025098946E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995044E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526557118742E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105016797433E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3882370714479E-05 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526557116721E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105017049449E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3882366493994E-05 (PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1262487118136E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6559938427989E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6559938427989E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.3393250951968E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0933402646050E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.4293331896732E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709723028280E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6559938426532E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6559938426532E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.3393255878058E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0933402646004E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.4293331915210E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709723029322E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2344,53 +2350,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) before: ks= 36 Ro_s= -3.588E+02 eta= -2.274E-01 hFac= 9.888E-02 (PID.TID 0000.0001) after : ks= 37 Ro_s= -3.600E+02 eta= 9.888E-01 hFac= 1.099E+00 (PID.TID 0000.0001) SHI_REMESH : end of report - cg2d: Sum(rhs),rhsMax = -8.02455376200664E-03 1.37977338770542E+01 -(PID.TID 0000.0001) cg2d_init_res = 5.46732545244673E-03 + cg2d: Sum(rhs),rhsMax = -8.02456017770159E-03 1.37977338538884E+01 +(PID.TID 0000.0001) cg2d_init_res = 5.46732276332317E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.32059331673244E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.32066193405184E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2901 (PID.TID 0000.0001) %MON time_secondsf = 8.7030000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1881036704008E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -2.9751069522728E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2972087364522E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8175230023838E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4607030760740E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3223000940887E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8277819575351E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0495866160744E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3401893242697E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909508485817E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1881037373996E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.9751068308717E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2972137605482E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8175233544270E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4607030108154E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3223000940936E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8277819575310E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0495866157973E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3401893242997E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909508483885E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0618602057423E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2678804029187E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2968712690093E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2181001162601E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9331522567888E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4020638378098E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2108511706595E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8919637559105E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0618602245645E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2678804198904E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2968712029999E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2181001161101E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.9331531496916E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4020638290019E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2108511704796E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8919637554478E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999612185E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929673372596E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490494845104E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7473760590931E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929672629873E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490494892808E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7473760054991E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995028E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556766580E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105037348056E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889249632151E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1261190318764E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556763528E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105037726968E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889243494695E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1261190318732E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6543003487804E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6543003487804E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4605753851541E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0931480894938E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.4593918543995E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709723574859E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6543003483302E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6543003483302E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4605761321057E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0931480894764E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.4593918605956E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709723576957E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2405,53 +2411,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.02583843065904E-03 1.37974782251051E+01 -(PID.TID 0000.0001) cg2d_init_res = 5.46691321772003E-03 + cg2d: Sum(rhs),rhsMax = -8.02584704664031E-03 1.37974781709010E+01 +(PID.TID 0000.0001) cg2d_init_res = 5.46691051118923E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.31548776212514E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.31554628373548E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2902 (PID.TID 0000.0001) %MON time_secondsf = 8.7060000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1952087597999E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.0642400410290E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2981001737989E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8575273951656E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4610593660489E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3222194833786E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8275859101105E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0973076142228E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3404715170390E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909120409109E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1952088487247E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.0642398798470E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2981069102574E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8575278659795E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4610592778541E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3222194833969E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8275859100953E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0973076146074E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3404715171469E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909120405395E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1385568993767E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2916143498911E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2964677827633E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2177192416252E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.7986896099766E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3737139441747E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2107173059485E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8917405289435E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1385569341860E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2916143829873E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2964676817935E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2177192413480E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.7986910348154E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3737139289288E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2107173056876E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8917405281851E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999613779E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929679278266E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490483085486E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474289749106E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929678281370E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490483149408E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474289054994E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995048E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556420546E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105056611931E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889451072463E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1259656027358E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556416452E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105057118241E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889443143682E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1259656027239E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6531577248757E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6531577248757E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.4815292390181E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0929497299664E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.4869212656299E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709724129337E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6531577240441E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6531577240441E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.4815302424973E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0929497299287E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.4869212787108E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709724132502E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2466,53 +2472,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.02713502058264E-03 1.37972199392208E+01 -(PID.TID 0000.0001) cg2d_init_res = 5.46653496596620E-03 + cg2d: Sum(rhs),rhsMax = -8.02714585384531E-03 1.37972198528977E+01 +(PID.TID 0000.0001) cg2d_init_res = 5.46653226556958E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.31830241459789E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.31835494077727E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2903 (PID.TID 0000.0001) %MON time_secondsf = 8.7090000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2024989697950E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.1547367192805E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2989997260666E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8990130429871E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4614258600093E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3221588848665E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8273709553452E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1475030210578E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3407794173998E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908711018104E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2024990803985E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.1547365187782E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2990081876617E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.8990136333256E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4614257489114E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3221588849062E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8273709553118E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1475030227638E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3407794176510E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908711014067E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1790528162956E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3046701448163E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2960454112141E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2175426134387E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.8931499025203E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3588198047419E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106558299804E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8915544414715E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1790528675269E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3046701985178E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2960452801897E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2175426130567E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.8931518052336E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3588197832112E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106558296809E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8915544404178E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999612163E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929700926966E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490469523625E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474795585355E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929699673913E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490469603887E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474794743117E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995028E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556084873E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105074216257E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889641797830E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1257973764763E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526556079730E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105074850234E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889632201842E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1257973764501E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6526278403161E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6526278403161E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.5033423608012E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0927565217777E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5093975532848E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709724690840E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6526278391702E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6526278391702E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.5033436239018E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0927565217155E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5093975754450E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709724695083E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2527,53 +2533,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -8.02843756483643E-03 1.37969605852057E+01 -(PID.TID 0000.0001) cg2d_init_res = 5.46606156658899E-03 + cg2d: Sum(rhs),rhsMax = -8.02845062315408E-03 1.37969604660634E+01 +(PID.TID 0000.0001) cg2d_init_res = 5.46605887000555E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 117 -(PID.TID 0000.0001) cg2d_last_res = 3.31897183575742E-12 +(PID.TID 0000.0001) cg2d_last_res = 3.31902316382736E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2904 (PID.TID 0000.0001) %MON time_secondsf = 8.7120000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2098076878231E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -3.2453468096697E-01 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2999034248708E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.9411290064975E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4618025298556E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3221043102424E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8271489578298E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1984907633324E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3411078126414E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908276947499E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2098078198372E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -3.2453465702468E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2999136173113E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 2.9411297169338E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4618023958899E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3221043103100E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8271489577731E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.1984907669428E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3411078131171E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908276946233E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1828107517846E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3060513997823E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2956347282379E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2175700325666E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.3010369602571E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3575167681615E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106559125318E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8914684515411E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1828108178263E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.3060514775848E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2956345721667E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2175700321031E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.3010391504348E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3575167411181E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106559122232E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8914684501767E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999611849E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929739140099E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490454108204E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475314708850E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929737629982E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490454204862E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475313728539E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995024E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555762130E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105090007123E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889871908854E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1256236384734E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555755933E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105090768720E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889860768602E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1256236384290E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6527100976997E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6527100976997E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -1.5256275061265E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0925776688035E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5256431761188E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709725257454E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6527100963093E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6527100963093E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -1.5256290310734E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0925776687154E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5256432090580E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709725262784E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2605,53 +2611,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) before: ks= 54 Ro_s= -5.300E+02 eta= 1.210E+00 hFac= 1.121E+00 (PID.TID 0000.0001) after : ks= 53 Ro_s= -5.200E+02 eta= -8.790E+00 hFac= 1.210E-01 (PID.TID 0000.0001) SHI_REMESH : end of report - cg2d: Sum(rhs),rhsMax = -3.67316804375895E-04 6.75119588756434E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11696736089904E-03 + cg2d: Sum(rhs),rhsMax = -3.67319917978164E-04 6.75119586390845E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11696685727438E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.85409701945415E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.85423692563680E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2905 (PID.TID 0000.0001) %MON time_secondsf = 8.7150000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1489679238691E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7829582974952E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4103955877850E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8026781509042E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661601653713E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3220427392313E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8269309131213E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2487025460486E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3414502105322E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6924846189187E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1489684152852E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7829580860470E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4104075382208E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8026784539731E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661601550317E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3220427393308E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8269309130377E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2487025520073E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3414502113282E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6924846195572E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1540314814201E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2970176462352E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949546827373E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2177766117477E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2026822513478E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3681650724252E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106320995406E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8911889428275E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1540315591975E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2970177507350E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949545068037E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2177766112267E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.2026845921515E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3681650410599E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2106320992363E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8911889411801E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999612745E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929792517208E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490437021873E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7470805576962E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929790745951E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490437135050E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7470804515386E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995035E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555452863E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105104067699E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3885069583321E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1254529939861E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555445596E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105104957559E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3885057754285E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1254529939207E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6533298352430E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6533298352430E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.2362888280829E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0924195182158E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5359576410442E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709725826679E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6533298336802E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6533298336802E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.2362904455788E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0924195181005E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5359576860583E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709725833100E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2666,53 +2672,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.67544449127569E-04 6.75132266687232E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11680714881741E-03 + cg2d: Sum(rhs),rhsMax = -3.67548019937585E-04 6.75132260694793E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11680659669825E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.84743064204171E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.84760004697661E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2906 (PID.TID 0000.0001) %MON time_secondsf = 8.7180000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1565461727349E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7760191396196E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4112961830138E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8158679312606E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661717247886E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3219635682354E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8267258302366E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2968671351428E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3418006120642E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6923145407160E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1565467328849E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7760188537199E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4113098816732E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8158682557512E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661717076095E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3219635683699E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8267258301233E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.2968671437044E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3418006132897E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6923145428451E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1005183207713E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2804536069989E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947383392611E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2181194072340E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3278834339292E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3880639737038E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2107865184563E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8914322466399E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1005184062584E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2804537405060E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947381424648E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2181194066711E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.3278758155497E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.3880639395258E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2107865181518E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8914322446866E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999614314E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929857957590E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490418629195E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7471445616191E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929855926637E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490418758804E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7471444490791E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995055E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555156060E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105116639554E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3885645291195E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1252924935826E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526555147729E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105117656950E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3885633006212E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1252924934940E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6543582217019E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6543582217019E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.2533855974130E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0922851110384E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5417795928677E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709726396091E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6543582200132E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6543582200132E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.2533874249906E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0922851108957E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5417796511506E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709726403619E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2727,53 +2733,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.67770957952825E-04 6.75144481867443E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11669426798976E-03 + cg2d: Sum(rhs),rhsMax = -3.67774982899985E-04 6.75144472322453E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11669372038986E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.83748429738208E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.83767494161733E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2907 (PID.TID 0000.0001) %MON time_secondsf = 8.7210000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1637955088966E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7693883641775E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4121914813349E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8289760437776E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661835917641E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3218595684558E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8265398914185E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3421363472727E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3421536399858E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6919841412263E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1637961374485E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7693880052763E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4122069166268E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8289763915908E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661835678667E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3218595686274E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8265398912738E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3421363584813E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3421536417632E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6919841455896E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0322473321231E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2600096071999E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2946568895823E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2185431811694E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2460146362562E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4134738939707E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2110210302390E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8918172688565E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0322474209420E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2600097717660E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2946566759072E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2185431805832E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.2460058688259E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4134738585958E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2110210299535E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8918172666805E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999615847E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929931033711E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490399424621E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7472163439918E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4929928744819E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490399570550E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7472162256249E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995075E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554868590E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105128169169E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3886331427776E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1251469755625E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554859202E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105129313285E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3886318714521E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1251469754493E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6556295435083E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6556295435083E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.2702143271079E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0921741144952E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5450928429217E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709726963362E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6556295417495E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6556295417495E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.2702163659805E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0921741143263E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5450929157849E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709726971991E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2788,53 +2794,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.67996145240308E-04 6.75156200406954E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11660995038276E-03 + cg2d: Sum(rhs),rhsMax = -3.68000620846909E-04 6.75156187420375E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11660940700774E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.82520451288045E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.82542090154623E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2908 (PID.TID 0000.0001) %MON time_secondsf = 8.7240000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1706977900852E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7630826041373E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4130806970522E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8419303328387E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661957822471E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3217274456056E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8263760116780E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3841392896125E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3425058407527E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6917629261200E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1706984866995E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7630821741454E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4130978559020E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8419307059101E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1661957518099E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3217274458140E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8263760115021E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3841393033036E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3425058432159E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6917629335188E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.5983057405179E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2392233143589E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947050237701E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2189882132909E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1660419371576E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4404733648211E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113088825044E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8922696390827E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.5983066195386E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2392235120545E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947047971979E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2189882127310E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.1660320886909E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4404733298383E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113088822761E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8922696368160E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999614001E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930006852891E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490379951878E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7472961143310E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930004308061E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490380114000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7472959905285E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995051E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554586426E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105139178692E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3887129582974E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1250187212495E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554575988E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105140448662E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3887116454420E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1250187211118E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6569646398726E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6569646398726E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.2867320673025E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0920831815420E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5478543669382E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709727527296E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6569646381931E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6569646381931E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.2867343188510E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0920831813493E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5478544560017E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709727537019E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2849,53 +2855,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.68220172088776E-04 6.75167355512433E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11655733828754E-03 + cg2d: Sum(rhs),rhsMax = -3.68225095150068E-04 6.75167339175136E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11655679871365E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.81366101720525E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.81390266516481E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2909 (PID.TID 0000.0001) %MON time_secondsf = 8.7270000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1772817284868E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7570754518742E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4139643067333E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8547350907358E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662082880377E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3215678445987E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8262338271619E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4229704729981E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3428559665194E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6915769258632E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1772824928297E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7570749524714E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4139831770557E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8547354907041E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662082512114E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3215678448428E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8262338269558E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4229704888175E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3428559698130E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6915769372483E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9308104744956E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2209088272775E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948072986329E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2193980796411E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0910228971147E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4654091653961E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2116040637841E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926994635107E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9308113080962E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2209090602481E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948070632960E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2193980791165E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0910120460973E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4654091321544E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2116040636547E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926994612296E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999612567E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930080685287E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490360730515E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7473830664054E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930077886385E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490360908714E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7473829375409E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995033E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554305059E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105150208259E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888030283531E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1249074458876E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554293578E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105151603280E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888016757673E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1249074457263E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6581942389234E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6581942389234E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3029954821630E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0920066797968E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5516178901840E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709728087400E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6581942373494E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6581942373494E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3029979476582E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0920066795830E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5516179974595E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709728098208E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2910,53 +2916,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.68443337392901E-04 6.75177969877821E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11653500837202E-03 + cg2d: Sum(rhs),rhsMax = -3.68448705296204E-04 6.75177950270339E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11653447256658E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.80450150880280E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.80476340637085E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2910 (PID.TID 0000.0001) %MON time_secondsf = 8.7300000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1836129016497E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7513057598203E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4148435033298E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8674620370963E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662211082870E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3213848622911E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8261101083006E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4591194493097E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3432049902495E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6914236471139E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1836137333951E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7513051925045E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4148640752952E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8674624654275E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662210652022E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3213848625679E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8261101080664E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4591194667538E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3432049945283E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6914236635381E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.3985082969596E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2068993926632E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948952441773E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2197266785476E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0228750234419E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4853350370916E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2118552912305E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8930315541838E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.3985090591714E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2068996630540E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948950048738E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2197266780684E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.0228632552668E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4853350065515E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2118552912326E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8930315519426E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999611494E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930148606556E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490342187451E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474756013320E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930145555117E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490342381636E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474754677703E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995019E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554020357E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105161721898E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3889012395393E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1248106219757E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526554007840E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105163241283E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888998494552E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1248106217924E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6591800356429E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6591800356429E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3191426278164E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0919376815129E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5574138355184E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709728643971E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6591800342052E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6591800342052E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3191453086260E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0919376812811E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5574139633873E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709728655858E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2977,53 +2983,53 @@ listId= 2 ; file name: surfStDiag Compute Stats, Diag. # 96 RSURF vol( 0 ): 3.779E+09 Parms: SM M1 Compute Stats, Diag. # 96 RSURF vol( 1 ): 2.809E+09 Parms: SM M1 Compute Stats, Diag. # 96 RSURF vol( 2 ): 9.700E+08 Parms: SM M1 - cg2d: Sum(rhs),rhsMax = -3.68666016990149E-04 6.75188131838707E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11653777706938E-03 + cg2d: Sum(rhs),rhsMax = -3.68671827907098E-04 6.75188109030620E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11653724510948E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.79945341434624E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.79972849952432E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2911 (PID.TID 0000.0001) %MON time_secondsf = 8.7330000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1897805849390E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7456899213586E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4157199131074E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8802330494166E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662342400794E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3211851422957E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8259995130030E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4933582495453E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3435557697648E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6912917255267E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1897814837595E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7456892874535E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4157421798761E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8802335075150E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662341908504E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3211851426024E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8259995127433E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4933582680157E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3435557751933E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6912917481349E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0526398106295E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1980892337903E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949185097107E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2199433221279E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9624032340563E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4983117392768E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120222010081E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932260907534E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0526404879850E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1980895436390E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949182722596E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2199433217138E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9623906384934E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4983117119315E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120222011834E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932260886302E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999610794E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930207916265E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490324611925E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475715660660E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930204613376E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490324822030E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475714281759E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995010E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553729090E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105174054673E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3890046929268E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1247240687271E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553715542E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105175697876E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3890032681055E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1247240685239E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6598299663836E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6598299663836E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3353668640794E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0918690474999E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5658179012539E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709729197764E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6598299651414E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6598299651414E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3353697617533E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0918690472527E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5658180523911E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709729210722E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3038,53 +3044,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.68888590520935E-04 6.75197977083383E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11655779443793E-03 + cg2d: Sum(rhs),rhsMax = -3.68894843460643E-04 6.75197951136090E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11655726598933E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.79882708402351E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.79910594878967E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2912 (PID.TID 0000.0001) %MON time_secondsf = 8.7360000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1958833140979E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7401354544950E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4165952768309E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8931980094425E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662476809360E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3209767186888E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8258955514270E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5266063975999E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3439124790113E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6911754843624E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1958842796625E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7401347551477E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4166192347487E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.8931984987430E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662476256538E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3209767190216E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8258955511446E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5266064164634E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3439124857632E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6911755143770E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.9139780736212E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1946303650966E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948600654686E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2200352319614E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9098522914382E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5035396535795E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120864339451E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932831660175E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.9139786653524E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1946307162512E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948598365385E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2200352315987E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9098385430483E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5035396294428E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120864343069E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932831639563E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999610491E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930257345919E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490308132940E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7476685803482E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930253792188E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490308358931E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7476684384987E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995006E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553429277E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105187379548E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3891101636205E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1246427071112E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553414699E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105189146165E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3891087071930E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1246427068902E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6601056958842E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6601056958842E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3518864805825E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0917944315732E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5770892179392E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709729749800E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6601056947961E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6601056947961E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3518895969230E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0917944313128E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5770893952310E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709729763826E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3099,53 +3105,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.69111398578974E-04 6.75207664289361E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11658592519928E-03 + cg2d: Sum(rhs),rhsMax = -3.69118093302971E-04 6.75207635258366E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11658540066309E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.80274848413695E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.80302250562401E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2913 (PID.TID 0000.0001) %MON time_secondsf = 8.7390000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2020151855766E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7345539269019E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4174712343430E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9065116266590E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662614290736E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3207677953494E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8257916018992E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5597938398320E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3442799248141E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910703667560E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2020162175453E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7345531631676E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4174968826501E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9065121487330E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662613678260E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3207677957050E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8257916015966E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5597938584756E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3442799330719E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910704054662E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.9739932996580E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1961378338167E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947324456993E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2200072245073E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8647738829213E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5013235378004E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120537266900E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932326018775E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.9739938161983E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1961382279244E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2947322328058E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2200072241865E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8647594599460E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.5013235164685E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2120537272590E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8932325998920E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999611742E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930297041563E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490292722523E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7477643747429E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930293237154E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490292964391E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7477642292983E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995022E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553120270E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105201707306E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3892145507155E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1245613549243E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526553104663E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105203597060E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3892130660409E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1245613546875E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6600216735219E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6600216735219E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3689140001161E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0917090566548E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.5912761796041E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709730301178E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6600216725595E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6600216725595E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3689173371798E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0917090563828E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.5912763860961E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709730316269E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3160,53 +3166,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.69334736785867E-04 6.75217351556059E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11661313410026E-03 + cg2d: Sum(rhs),rhsMax = -3.69341873739860E-04 6.75217319493219E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11661261299073E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.81009713983127E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.81035905838982E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2914 (PID.TID 0000.0001) %MON time_secondsf = 8.7420000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2082544950910E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7288717046574E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4183492524540E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9203125136674E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662754827678E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3205656469370E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8256818252760E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5937398749109E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3446628584984E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909732008199E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.2082555931177E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7288708774785E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.4183765930124E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.9203130702347E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1662754156268E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3205656473130E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8256818249555E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5937398927860E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3446628684531E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6909732495723E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.1996722815638E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2018263014777E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2945647060910E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2198789329165E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8250393323477E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4928942302254E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2119478184403E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8931167158454E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.1996727417667E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2018267400292E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2945645170429E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2198789326252E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8250243309185E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4928942109770E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2119478192222E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8931167138990E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999613318E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930328346904E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490278220005E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7478571317479E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930324291575E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490278477766E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7478569830671E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995042E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552802598E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105216910901E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3893153473987E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1244754423805E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552785961E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105218923625E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3893138380167E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1244754421297E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6596367987496E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6596367987496E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -4.3866291898619E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0916101726175E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.6082483861621E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709730852930E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6596367978757E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6596367978757E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -4.3866327499666E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0916101723344E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.6082486250358E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709730869086E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3226,53 +3232,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) before: ks= 55 Ro_s= -5.400E+02 eta= 1.208E+00 hFac= 1.121E+00 (PID.TID 0000.0001) after : ks= 54 Ro_s= -5.300E+02 eta= -8.792E+00 hFac= 1.208E-01 (PID.TID 0000.0001) SHI_REMESH : end of report - cg2d: Sum(rhs),rhsMax = 9.00584492085910E-04 6.75227176274880E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11665551958162E-03 + cg2d: Sum(rhs),rhsMax = 9.00576956362621E-04 6.75227141230195E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11665513686918E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.93503078111718E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.93502453053339E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2915 (PID.TID 0000.0001) %MON time_secondsf = 8.7450000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1505646673100E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7852914079915E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4585480319639E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2151154934405E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6250955925073E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3203757839011E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8255618583253E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6290629805497E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3450651039720E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910457685746E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1505660448922E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7852900749667E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4585189127458E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2151153989554E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6250955463377E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3203757842955E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8255618579881E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6290629972362E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3450651158188E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910458168713E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.5408690488767E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2106126367447E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948772727684E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2196802948879E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8106804075659E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4800145940193E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2117045853276E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926210630309E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.5408694764221E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2106131225175E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948773635451E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2196802945973E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8106915614449E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4800145759773E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2117045863583E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926210610973E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999614040E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930353527975E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490264376240E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474412398240E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930349208643E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490264650526E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7474411179251E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995052E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552477950E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105232830628E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888035231913E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1243815547602E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552460231E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105234972175E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888022406273E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1243815544963E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6590408846637E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6590408846637E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -7.0892667802559E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0914971721504E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.6276778727761E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709731405980E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6590408837920E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6590408837920E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -7.0892694778762E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0914971718559E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.6276781475967E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709731423202E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3287,53 +3293,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 9.00340560366628E-04 6.75237239273746E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11663597544615E-03 + cg2d: Sum(rhs),rhsMax = 9.00332564298917E-04 6.75237201296703E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11663546310062E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.82433285831475E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.82678928704860E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2916 (PID.TID 0000.0001) %MON time_secondsf = 8.7480000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1576312025156E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7787004855065E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4576627811661E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2229664158440E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6251060481307E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3202014646926E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8254292175484E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6661226447255E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3454901511803E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908431504083E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1576326575217E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7786989174888E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.4576318786459E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2229662473678E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6251059843792E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3202014651048E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8254292171949E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.6661226598377E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3454901651279E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908432111211E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9391215713427E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2211056507026E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2946617914653E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2194462247086E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8283337814086E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4651175159862E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2115451924720E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8924810284079E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.9391219934040E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2211061858960E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2946619090092E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2194462244165E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8283462160551E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4651174981711E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2115451937577E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8924810264656E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999614777E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930375150103E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490250885500E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475217921899E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930370565985E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490251176354E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7475216484453E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995061E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552147972E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105249131187E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888661094439E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1242777484467E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526552129168E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105251401541E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3888646416446E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1242777481700E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6583386741257E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6583386741257E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -7.1029835264316E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0913713999966E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.6490150908573E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709731960893E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6583386732494E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6583386732494E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -7.1029862833086E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0913713996893E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.6490154052487E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709731979235E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3357,12 +3363,12 @@ listId= 2 ; file name: surfStDiag Computing Diagnostic # 86 oceQnet Counter: 18 Parms: SM U1 Computing Diagnostic # 84 oceFWflx Counter: 18 Parms: SM U1 Computing Diagnostic # 77 MXLDEPTH Counter: 18 Parms: SM M1 - Computing Diagnostic # 196 SHIfwFlx Counter: 18 Parms: SM L1 - Computing Diagnostic # 197 SHIhtFlx Counter: 18 Parms: SM L1 - Computing Diagnostic # 202 SHIgammT Counter: 18 Parms: SM L1 - Computing Diagnostic # 203 SHIgammS Counter: 18 Parms: SM L1 - Computing Diagnostic # 205 SHI_mass Counter: 18 Parms: SM L1 - Computing Diagnostic # 204 SHIuStar Counter: 18 Parms: SM L1 + Computing Diagnostic # 194 SHIfwFlx Counter: 18 Parms: SM L1 + Computing Diagnostic # 195 SHIhtFlx Counter: 18 Parms: SM L1 + Computing Diagnostic # 200 SHIgammT Counter: 18 Parms: SM L1 + Computing Diagnostic # 201 SHIgammS Counter: 18 Parms: SM L1 + Computing Diagnostic # 203 SHI_mass Counter: 18 Parms: SM L1 + Computing Diagnostic # 202 SHIuStar Counter: 18 Parms: SM L1 Computing Diagnostic # 30 UVEL Counter: 18 Parms: UUR MR Vector Mate for UVEL Diagnostic # 31 VVEL exists Computing Diagnostic # 31 VVEL Counter: 18 Parms: VVR MR @@ -3392,53 +3398,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) before: ks= 35 Ro_s= -3.486E+02 eta= -3.589E-01 hFac= 9.924E-02 (PID.TID 0000.0001) after : ks= 36 Ro_s= -3.500E+02 eta= 9.924E-01 hFac= 1.099E+00 (PID.TID 0000.0001) SHI_REMESH : end of report - cg2d: Sum(rhs),rhsMax = 7.20115382096466E-04 6.75247602389244E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11666545668273E-03 + cg2d: Sum(rhs),rhsMax = 7.20106913397904E-04 6.75247561529781E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11666495262026E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.84211081590714E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.84425355486780E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2917 (PID.TID 0000.0001) %MON time_secondsf = 8.7510000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1648957714070E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7719227794957E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7655694723631E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2567193603373E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6336924119869E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3200435733479E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8252833985019E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7050124134441E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3459393146438E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910828751877E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1648973034733E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7719209774011E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7655367813801E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2567191047870E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6336923311849E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3200435737781E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8252833981314E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7050124267395E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3459393309113E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6910829506831E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.3358884575047E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2318369357533E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949721256698E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2192115613421E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8446834710180E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4508090208040E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2114894099771E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8927077122817E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.3358889014248E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2318375229540E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2949722773043E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2192115610504E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8446972279398E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4508090021577E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2114894115532E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8927077104114E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999616294E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930395922462E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490237441687E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7481130239901E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930391072731E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490237749153E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7481128659319E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995080E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526551814871E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105265524535E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3895920173066E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1241636286563E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526551794979E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105267923661E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3895904413448E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1241636283664E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6576346840264E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6576346840264E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -7.2212282301587E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0912357499793E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.6715198947423E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709732518499E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6576346831511E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6576346831511E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -7.2212310632447E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0912357496573E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.6715202525450E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709732537964E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3453,53 +3459,53 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End OBCS MONITOR field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 7.19870932133868E-04 6.75258275230851E+01 -(PID.TID 0000.0001) cg2d_init_res = 1.11659189368622E-03 + cg2d: Sum(rhs),rhsMax = 7.19861999197248E-04 6.75258231540474E+01 +(PID.TID 0000.0001) cg2d_init_res = 1.11659138757449E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 115 -(PID.TID 0000.0001) cg2d_last_res = 6.83743727157497E-12 +(PID.TID 0000.0001) cg2d_last_res = 6.83958380218760E-12 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2918 (PID.TID 0000.0001) %MON time_secondsf = 8.7540000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1723327797798E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7649815345643E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7646743709610E-02 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2648527759196E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6337033012942E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3199008051112E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8251257188192E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7455770240225E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3464126645787E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908863331577E-06 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.1723343885225E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.7649794997141E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.7646398850129E-02 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 9.2648524508065E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.6337032032292E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3199008055608E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8251257184306E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.7455770353724E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3464126833942E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6908864241308E-06 (PID.TID 0000.0001) %MON dynstat_vvel_max = 2.5000000000000E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5000000000000E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6804755599916E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2413674243724E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948870814074E-06 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2190058873990E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8573061935277E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4379207741191E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113656038850E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926139657407E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.6804760471768E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.2413680659820E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.2948872672993E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.2190058870614E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8573213144587E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.4379207538460E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2113656057631E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.8926139638872E-06 (PID.TID 0000.0001) %MON dynstat_theta_max = 1.9999999612893E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9000000000007E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930418223606E-01 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490223782517E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7481864963036E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 6.4930413107246E-01 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 1.2490224106661E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7481863288784E-04 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.4699999995037E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.4199999999997E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526551480730E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105281756898E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3896567432314E-05 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1240402265853E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4526551459746E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.6105284284855E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 7.3896551088766E-05 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.1240402262812E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.6348427523641E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6570176621969E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6570176621969E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -7.2357758216994E-03 -(PID.TID 0000.0001) %MON ke_max = 3.0910940492765E-03 -(PID.TID 0000.0001) %MON ke_mean = 9.6943563941325E-05 -(PID.TID 0000.0001) %MON ke_vol = 3.5709733079175E+11 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6570176611841E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.6570176611841E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -7.2357787223016E-03 +(PID.TID 0000.0001) %MON ke_max = 3.0910940489377E-03 +(PID.TID 0000.0001) %MON ke_mean = 9.6943567991706E-05 +(PID.TID 0000.0001) %MON ke_vol = 3.5709733099767E+11 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3523,12 +3529,12 @@ listId= 2 ; file name: surfStDiag Computing Diagnostic # 86 oceQnet Counter: 2 Parms: SM U1 Computing Diagnostic # 84 oceFWflx Counter: 2 Parms: SM U1 Computing Diagnostic # 77 MXLDEPTH Counter: 2 Parms: SM M1 - Computing Diagnostic # 196 SHIfwFlx Counter: 2 Parms: SM L1 - Computing Diagnostic # 197 SHIhtFlx Counter: 2 Parms: SM L1 - Computing Diagnostic # 202 SHIgammT Counter: 2 Parms: SM L1 - Computing Diagnostic # 203 SHIgammS Counter: 2 Parms: SM L1 - Computing Diagnostic # 205 SHI_mass Counter: 2 Parms: SM L1 - Computing Diagnostic # 204 SHIuStar Counter: 2 Parms: SM L1 + Computing Diagnostic # 194 SHIfwFlx Counter: 2 Parms: SM L1 + Computing Diagnostic # 195 SHIhtFlx Counter: 2 Parms: SM L1 + Computing Diagnostic # 200 SHIgammT Counter: 2 Parms: SM L1 + Computing Diagnostic # 201 SHIgammS Counter: 2 Parms: SM L1 + Computing Diagnostic # 203 SHI_mass Counter: 2 Parms: SM L1 + Computing Diagnostic # 202 SHIuStar Counter: 2 Parms: SM L1 Computing Diagnostic # 30 UVEL Counter: 2 Parms: UUR MR Vector Mate for UVEL Diagnostic # 31 VVEL exists Computing Diagnostic # 31 VVEL Counter: 2 Parms: VVR MR @@ -3557,165 +3563,165 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: surfStDiag.0000002898.txt , unit= 10 (PID.TID 0000.0001) %CHECKPOINT 2918 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 15.052305221557617 -(PID.TID 0000.0001) System time: 0.13640999468043447 -(PID.TID 0000.0001) Wall clock time: 15.191005945205688 +(PID.TID 0000.0001) User time: 14.798706978559494 +(PID.TID 0000.0001) System time: 6.4983002841472626E-002 +(PID.TID 0000.0001) Wall clock time: 14.959300041198730 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.10792899876832962 -(PID.TID 0000.0001) System time: 1.6338999848812819E-002 -(PID.TID 0000.0001) Wall clock time: 0.12434911727905273 +(PID.TID 0000.0001) User time: 6.5134003525599837E-002 +(PID.TID 0000.0001) System time: 3.5289000486955047E-002 +(PID.TID 0000.0001) Wall clock time: 0.16201090812683105 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 14.944349542260170 -(PID.TID 0000.0001) System time: 0.12003199383616447 -(PID.TID 0000.0001) Wall clock time: 15.066609859466553 +(PID.TID 0000.0001) User time: 14.733546257019043 +(PID.TID 0000.0001) System time: 2.9676001518964767E-002 +(PID.TID 0000.0001) Wall clock time: 14.797259092330933 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.12986699491739273 -(PID.TID 0000.0001) System time: 9.6904003992676735E-002 -(PID.TID 0000.0001) Wall clock time: 0.22684907913208008 +(PID.TID 0000.0001) User time: 0.16172800213098526 +(PID.TID 0000.0001) System time: 2.4337001144886017E-002 +(PID.TID 0000.0001) Wall clock time: 0.21742105484008789 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 14.814459875226021 -(PID.TID 0000.0001) System time: 2.3121997714042664E-002 -(PID.TID 0000.0001) Wall clock time: 14.839735984802246 +(PID.TID 0000.0001) User time: 14.571795538067818 +(PID.TID 0000.0001) System time: 5.3330063819885254E-003 +(PID.TID 0000.0001) Wall clock time: 14.579813003540039 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 14.814311817288399 -(PID.TID 0000.0001) System time: 2.3117996752262115E-002 -(PID.TID 0000.0001) Wall clock time: 14.839576244354248 +(PID.TID 0000.0001) User time: 14.571651756763458 +(PID.TID 0000.0001) System time: 5.3310021758079529E-003 +(PID.TID 0000.0001) Wall clock time: 14.579669952392578 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 14.814013391733170 -(PID.TID 0000.0001) System time: 2.3114994168281555E-002 -(PID.TID 0000.0001) Wall clock time: 14.839277982711792 +(PID.TID 0000.0001) User time: 14.571377754211426 +(PID.TID 0000.0001) System time: 5.3279995918273926E-003 +(PID.TID 0000.0001) Wall clock time: 14.579391956329346 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SHELFICE_REMESHING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.2372953146696091 -(PID.TID 0000.0001) System time: 3.2629966735839844E-003 -(PID.TID 0000.0001) Wall clock time: 1.2408363819122314 +(PID.TID 0000.0001) User time: 0.50295269489288330 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.50298595428466797 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.20664119720458984 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.20675563812255859 +(PID.TID 0000.0001) User time: 0.20988589525222778 +(PID.TID 0000.0001) System time: 6.9960951805114746E-006 +(PID.TID 0000.0001) Wall clock time: 0.20998930931091309 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.7168135643005371E-004 +(PID.TID 0000.0001) User time: 4.6971440315246582E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.6944618225097656E-004 +(PID.TID 0000.0001) Wall clock time: 4.6372413635253906E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 1.7124414443969727E-004 +(PID.TID 0000.0001) User time: 1.5082955360412598E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6665458679199219E-004 +(PID.TID 0000.0001) Wall clock time: 1.5163421630859375E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.8072128295898438E-004 +(PID.TID 0000.0001) User time: 1.4811754226684570E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.7881393432617188E-004 +(PID.TID 0000.0001) Wall clock time: 1.4352798461914062E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0011837184429169 -(PID.TID 0000.0001) System time: 2.6599317789077759E-004 -(PID.TID 0000.0001) Wall clock time: 1.0015232563018799 +(PID.TID 0000.0001) User time: 1.0082238316535950 +(PID.TID 0000.0001) System time: 3.0025839805603027E-006 +(PID.TID 0000.0001) Wall clock time: 1.0084841251373291 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 7.7636241912841797E-003 -(PID.TID 0000.0001) System time: 1.2400001287460327E-004 -(PID.TID 0000.0001) Wall clock time: 7.9047679901123047E-003 +(PID.TID 0000.0001) User time: 8.0783665180206299E-003 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 8.0878734588623047E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.4670712947845459 -(PID.TID 0000.0001) System time: 7.4420049786567688E-003 -(PID.TID 0000.0001) Wall clock time: 5.4754910469055176 +(PID.TID 0000.0001) User time: 5.7172549068927765 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.7181444168090820 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1645298004150391E-003 -(PID.TID 0000.0001) System time: 1.3992190361022949E-005 -(PID.TID 0000.0001) Wall clock time: 3.1800270080566406E-003 +(PID.TID 0000.0001) User time: 3.2082796096801758E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.2126903533935547E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.1154415607452393E-002 -(PID.TID 0000.0001) System time: 2.4005770683288574E-005 -(PID.TID 0000.0001) Wall clock time: 7.1208000183105469E-002 +(PID.TID 0000.0001) User time: 7.2845280170440674E-002 +(PID.TID 0000.0001) System time: 1.3720020651817322E-003 +(PID.TID 0000.0001) Wall clock time: 7.4362754821777344E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.27723234891891479 -(PID.TID 0000.0001) System time: 1.4007091522216797E-005 -(PID.TID 0000.0001) Wall clock time: 0.27740836143493652 +(PID.TID 0000.0001) User time: 0.28214871883392334 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.28230404853820801 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.21482127904891968 -(PID.TID 0000.0001) System time: 1.9967555999755859E-006 -(PID.TID 0000.0001) Wall clock time: 0.21496915817260742 +(PID.TID 0000.0001) User time: 0.22057968378067017 +(PID.TID 0000.0001) System time: 3.0025839805603027E-006 +(PID.TID 0000.0001) Wall clock time: 0.22063183784484863 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11954349279403687 -(PID.TID 0000.0001) System time: 9.0003013610839844E-006 -(PID.TID 0000.0001) Wall clock time: 0.11958670616149902 +(PID.TID 0000.0001) User time: 0.12629407644271851 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.12633848190307617 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.4687004089355469E-003 -(PID.TID 0000.0001) System time: 3.0100345611572266E-006 -(PID.TID 0000.0001) Wall clock time: 7.4884891510009766E-003 +(PID.TID 0000.0001) User time: 7.7294111251831055E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.7431201934814453E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.47975873947143555 -(PID.TID 0000.0001) System time: 6.2994658946990967E-005 -(PID.TID 0000.0001) Wall clock time: 0.47994923591613770 +(PID.TID 0000.0001) User time: 0.49851590394973755 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.49868035316467285 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 5.3332675695419312 +(PID.TID 0000.0001) User time: 5.5221752524375916 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 5.3339097499847412 +(PID.TID 0000.0001) Wall clock time: 5.5235204696655273 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6367435455322266E-004 +(PID.TID 0000.0001) User time: 1.4114379882812500E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.6379356384277344E-004 +(PID.TID 0000.0001) Wall clock time: 1.4233589172363281E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.31885874271392822 -(PID.TID 0000.0001) System time: 1.0132789611816406E-006 -(PID.TID 0000.0001) Wall clock time: 0.31894779205322266 +(PID.TID 0000.0001) User time: 0.31413662433624268 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.31419730186462402 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.4559578895568848E-002 -(PID.TID 0000.0001) System time: 1.1977985501289368E-002 -(PID.TID 0000.0001) Wall clock time: 7.6549768447875977E-002 +(PID.TID 0000.0001) User time: 7.3527574539184570E-002 +(PID.TID 0000.0001) System time: 3.9390027523040771E-003 +(PID.TID 0000.0001) Wall clock time: 7.7482461929321289E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.2200298309326172E-003 +(PID.TID 0000.0001) User time: 7.1923732757568359E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.2193145751953125E-003 +(PID.TID 0000.0001) Wall clock time: 7.1945190429687500E-003 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -3766,9 +3772,9 @@ listId= 2 ; file name: surfStDiag (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 40600 +(PID.TID 0000.0001) // No. barriers = 40608 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 40600 +(PID.TID 0000.0001) // Total barrier spins = 40608 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/so_box_biogeo/code/DIC_OPTIONS.h b/verification/so_box_biogeo/code/DIC_OPTIONS.h index 346951e199..edd7480542 100644 --- a/verification/so_box_biogeo/code/DIC_OPTIONS.h +++ b/verification/so_box_biogeo/code/DIC_OPTIONS.h @@ -16,7 +16,7 @@ C In S/R CARBON_CHEM convert ak1 and ak2 to the total pH scale C consistent with other coefficients (currently on the seawater scale). C NOTE: Has NO effect when CARBONCHEM_SOLVESAPHE is defined (different C coeffs are used). -#undef CARBONCHEM_TOTALPHSCALE +#define CARBONCHEM_TOTALPHSCALE C BIOTIC OPTIONS #define DIC_BIOTIC @@ -38,7 +38,7 @@ C put back bugs related to Water-Vapour in carbonate chemistry & air-sea fluxes #undef WATERVAP_BUG C dissolution only below saturation horizon following method by Karsten Friis -#undef CAR_DISS +#define DIC_CALCITE_SAT C Include self-shading effect by phytoplankton #undef LIGHT_CHL @@ -46,6 +46,9 @@ C Include self-shading effect by phytoplankton C Include iron sediment source using DOP flux #undef SEDFE +C For Adjoint built +#undef DIC_AD_SAFE + #endif /* ALLOW_DIC */ #endif /* DIC_OPTIONS_H */ diff --git a/verification/so_box_biogeo/code/SIZE.h b/verification/so_box_biogeo/code/SIZE.h index 8aeb820814..328db2d292 100644 --- a/verification/so_box_biogeo/code/SIZE.h +++ b/verification/so_box_biogeo/code/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/so_box_biogeo/code/SIZE.h_mpi b/verification/so_box_biogeo/code/SIZE.h_mpi index 517f93fb7f..52008f8c68 100644 --- a/verification/so_box_biogeo/code/SIZE.h_mpi +++ b/verification/so_box_biogeo/code/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/so_box_biogeo/inp_global/mk_box_input.m b/verification/so_box_biogeo/inp_global/mk_box_input.m index 4d835e2ecc..88be13911b 100644 --- a/verification/so_box_biogeo/inp_global/mk_box_input.m +++ b/verification/so_box_biogeo/inp_global/mk_box_input.m @@ -73,27 +73,29 @@ % a) forcing (2-D bin file, sng or 12 Rec): namInpF={'bathy','lev_monthly_salt','lev_monthly_temp', ... 'shi_empmr_year','shi_qnet','tren_taux','tren_tauy', ... - 'tren_speed','fice','sillev1'}; + 'tren_speed','fice','sillev1','silicate_3D_12m'}; if kwr(2) > 0 fprintf('==== Processing Forcing Files ====\n'); for n=1:length(namInpF), namfg=[char(namInpF(n)),'.bin']; namfb=[char(namInpF(n)),'_box.bin']; - fprintf(' process file: %-21s',namfg); - nRec=12; if n ==1, nRec=1; end - vv1=rdda([iDir,namfg],[nx ny nRec],1,prec,'b'); - vv2=vv1(ib1:ib2,jb1:jb2,:); - %size(vv1),size(vv2) - if kwr(2) > 1, - if nRec == 1, - fprintf(' --> %-25s (%i %i)',namfb,size(vv2)); - else - fprintf(' --> %-25s (%i %i %i)',namfb,size(vv2)); - end + if isempty(dir([iDir,namfg])), + fprintf(' => skip file: %-21s (not found)\n',namfg); + else + fprintf(' process file: %-21s',namfg); + nRec=12; + if strcmp(char(namInpF(n)),'bathy'), nRec=1; end + if strcmp(char(namInpF(n)),'silicate_3D_12m'), nRec=nr*nRec; end + vv1=rdda([iDir,namfg],[nx ny nRec],1,prec,'b'); + vv2=vv1(ib1:ib2,jb1:jb2,:); + %size(vv1),size(vv2) + if kwr(2) > 1, + fprintf(' --> %-25s (',namfb); fprintf(' %i',size(vv2)); fprintf(' )'); fid=fopen(namfb,'w','b'); fwrite(fid,vv2,prec); fclose(fid); + end + fprintf('\n'); end - fprintf('\n'); end end %- if kwr(2) > 0 diff --git a/verification/so_box_biogeo/input.caSat0/data.diagnostics b/verification/so_box_biogeo/input.caSat0/data.diagnostics new file mode 100644 index 0000000000..a016e61713 --- /dev/null +++ b/verification/so_box_biogeo/input.caSat0/data.diagnostics @@ -0,0 +1,78 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diagCG_maxIters = 200, +# diagCG_resTarget = 1.E-10, +# diagCG_pcOffDFac = 0.96, +# diagCG_prtResFrq = 20, + xPsi0 = 300., + yPsi0 = -26., +#-- + fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'DICTFLX ','DICOFLX ','DICCFLX ','DICPCO2 ','DICPHAV ', + levels(1,1) = 1., + fileName(1) = 'surfDiag', + frequency(1) = 2592000., +# frequency(1) = 432000., + fields(1:9,2) = 'VVELMASS','UVELMASS','THETA ','SALT ', + 'GM_PsiX ','GM_PsiY ','PhiVEL ','PsiVEL ', + 'CONVADJ ', + fileName(2) = 'dynDiag', + frequency(2) = 2592000., + frequency(2) = 432000., + fields(1:9,3) = 'DICBIOA ','DICCARB ', + 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', + 'ADVxTr05','DFrITr05', +# fileName(3) = 'dicDiag', + frequency(3) = 2592000., + fields(1:8,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', + 'DFxE_TH ','DFyE_TH ','DFrE_TH ','DFrI_TH ', + 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 0., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +#--- + stat_fields(1:20,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', + 'UVEL ','VVEL ','WVEL ','GM_PsiX ','GM_PsiY ', + 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', + 'DIC3DSIT','OMEGAC ','DIC3DPH ','DIC3DPCO','DIC3DCO3', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = 432000., + stat_phase(1) = 0., + & diff --git a/verification/so_box_biogeo/input.caSat0/data.dic b/verification/so_box_biogeo/input.caSat0/data.dic new file mode 100644 index 0000000000..e54cde9c32 --- /dev/null +++ b/verification/so_box_biogeo/input.caSat0/data.dic @@ -0,0 +1,18 @@ +# DIC parameters + &ABIOTIC_PARMS + useCalciteSaturation= .TRUE., +# calcOmegaCalciteFreq= 86400., + & + + &BIOTIC_PARMS + alphaUniform = 0.97e-10, + rainRatioUniform = 5.e-2, + KRemin = 0.95, + & + + &DIC_FORCING + DIC_iceFile='fice_box.bin', + DIC_windFile='tren_speed_box.bin', + DIC_silicaFile='sillev1_box.bin', + DIC_deepSilicaFile='silicate_3D_12m_box.bin', + & diff --git a/verification/offline_exf_seaice/input.thsice/eedata b/verification/so_box_biogeo/input.caSat0/eedata similarity index 55% rename from verification/offline_exf_seaice/input.thsice/eedata rename to verification/so_box_biogeo/input.caSat0/eedata index e9aa69bc1e..e84b38d1ae 100644 --- a/verification/offline_exf_seaice/input.thsice/eedata +++ b/verification/so_box_biogeo/input.caSat0/eedata @@ -1,10 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=1, +#debugMode=.TRUE., & # Note: Some systems use & as the namelist terminator (as shown here). # Other systems use a / character. diff --git a/verification/so_box_biogeo/input.caSat0/eedata.mth b/verification/so_box_biogeo/input.caSat0/eedata.mth new file mode 100644 index 0000000000..4276fb9fe4 --- /dev/null +++ b/verification/so_box_biogeo/input.caSat0/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=1, + nTy=2, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/so_box_biogeo/input.caSat3/data.diagnostics b/verification/so_box_biogeo/input.caSat3/data.diagnostics new file mode 100644 index 0000000000..a016e61713 --- /dev/null +++ b/verification/so_box_biogeo/input.caSat3/data.diagnostics @@ -0,0 +1,78 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diagCG_maxIters = 200, +# diagCG_resTarget = 1.E-10, +# diagCG_pcOffDFac = 0.96, +# diagCG_prtResFrq = 20, + xPsi0 = 300., + yPsi0 = -26., +#-- + fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', + 'DICTFLX ','DICOFLX ','DICCFLX ','DICPCO2 ','DICPHAV ', + levels(1,1) = 1., + fileName(1) = 'surfDiag', + frequency(1) = 2592000., +# frequency(1) = 432000., + fields(1:9,2) = 'VVELMASS','UVELMASS','THETA ','SALT ', + 'GM_PsiX ','GM_PsiY ','PhiVEL ','PsiVEL ', + 'CONVADJ ', + fileName(2) = 'dynDiag', + frequency(2) = 2592000., + frequency(2) = 432000., + fields(1:9,3) = 'DICBIOA ','DICCARB ', + 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', + 'ADVxTr05','DFrITr05', +# fileName(3) = 'dicDiag', + frequency(3) = 2592000., + fields(1:8,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', + 'DFxE_TH ','DFyE_TH ','DFrE_TH ','DFrI_TH ', + 'ADVx_SLT', +# fileName(4) = 'flxDiag', + frequency(4) = 0., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS +#--- + stat_fields(1:20,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', + 'UVEL ','VVEL ','WVEL ','GM_PsiX ','GM_PsiY ', + 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', + 'DIC3DSIT','OMEGAC ','DIC3DPH ','DIC3DPCO','DIC3DCO3', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = 432000., + stat_phase(1) = 0., + & diff --git a/verification/so_box_biogeo/input.caSat3/data.dic b/verification/so_box_biogeo/input.caSat3/data.dic new file mode 100644 index 0000000000..5b2158155e --- /dev/null +++ b/verification/so_box_biogeo/input.caSat3/data.dic @@ -0,0 +1,24 @@ +# DIC parameters + &ABIOTIC_PARMS + useCalciteSaturation= .TRUE., +# calcOmegaCalciteFreq= 86400., + selectBTconst=1, + selectFTconst=1, + selectHFconst=1, + selectK1K2const=6, +# Munhoven "GENERAL" solver: =1 ; Munhoven "SEC" solver: =2 ; Munhoven "FAST" solver: =3 + selectPHsolver=3, + & + + &BIOTIC_PARMS + alphaUniform = 0.97e-10, + rainRatioUniform = 5.e-2, + KRemin = 0.95, + & + + &DIC_FORCING + DIC_iceFile='fice_box.bin', + DIC_windFile='tren_speed_box.bin', + DIC_silicaFile='sillev1_box.bin', + DIC_deepSilicaFile='silicate_3D_12m_box.bin', + & diff --git a/verification/offline_exf_seaice/input.dyn_jfnk/eedata b/verification/so_box_biogeo/input.caSat3/eedata similarity index 55% rename from verification/offline_exf_seaice/input.dyn_jfnk/eedata rename to verification/so_box_biogeo/input.caSat3/eedata index e9aa69bc1e..e84b38d1ae 100644 --- a/verification/offline_exf_seaice/input.dyn_jfnk/eedata +++ b/verification/so_box_biogeo/input.caSat3/eedata @@ -1,10 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=1, +#debugMode=.TRUE., & # Note: Some systems use & as the namelist terminator (as shown here). # Other systems use a / character. diff --git a/verification/so_box_biogeo/input.caSat3/eedata.mth b/verification/so_box_biogeo/input.caSat3/eedata.mth new file mode 100644 index 0000000000..4276fb9fe4 --- /dev/null +++ b/verification/so_box_biogeo/input.caSat3/eedata.mth @@ -0,0 +1,12 @@ +# Example "eedata" file for multi-threaded test +# (copy "eedata.mth" to "eedata" to use it) +# Lines beginning "#" are comments +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) + &EEPARMS + nTx=1, + nTy=2, + & +# Note: Some systems use & as the namelist terminator (as shown here). +# Other systems use a / character. diff --git a/verification/so_box_biogeo/input.saphe/data.dic b/verification/so_box_biogeo/input.saphe/data.dic index e6b961d084..bfc3aa0d51 100644 --- a/verification/so_box_biogeo/input.saphe/data.dic +++ b/verification/so_box_biogeo/input.saphe/data.dic @@ -4,7 +4,7 @@ selectFTconst=1, selectHFconst=1, selectK1K2const=6, -# Munhoven "GENERAL" solver: +# Munhoven "GENERAL" solver: =1 ; Munhoven "SEC" solver: =2 ; Munhoven "FAST" solver: =3 selectPHsolver=1, & diff --git a/verification/so_box_biogeo/input/eedata b/verification/so_box_biogeo/input/eedata index e9aa69bc1e..e84b38d1ae 100644 --- a/verification/so_box_biogeo/input/eedata +++ b/verification/so_box_biogeo/input/eedata @@ -1,10 +1,12 @@ # Example "eedata" file # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=1, +#debugMode=.TRUE., & # Note: Some systems use & as the namelist terminator (as shown here). # Other systems use a / character. diff --git a/verification/so_box_biogeo/input/eedata.mth b/verification/so_box_biogeo/input/eedata.mth index 599d20f601..4276fb9fe4 100644 --- a/verification/so_box_biogeo/input/eedata.mth +++ b/verification/so_box_biogeo/input/eedata.mth @@ -1,8 +1,9 @@ # Example "eedata" file for multi-threaded test # (copy "eedata.mth" to "eedata" to use it) # Lines beginning "#" are comments -# nTx - No. threads per process in X -# nTy - No. threads per process in Y +# nTx :: No. threads per process in X +# nTy :: No. threads per process in Y +# debugMode :: print debug msg (sequence of S/R calls) &EEPARMS nTx=1, nTy=2, diff --git a/verification/so_box_biogeo/input/silicate_3D_12m_box.bin b/verification/so_box_biogeo/input/silicate_3D_12m_box.bin new file mode 100644 index 0000000000..1a81114c6f Binary files /dev/null and b/verification/so_box_biogeo/input/silicate_3D_12m_box.bin differ diff --git a/verification/so_box_biogeo/results/output.caSat0.txt b/verification/so_box_biogeo/results/output.caSat0.txt new file mode 100644 index 0000000000..5321417b6d --- /dev/null +++ b/verification/so_box_biogeo/results/output.caSat0.txt @@ -0,0 +1,4802 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68m +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Jan 12 12:38:05 EST 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) >#debugMode=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 3 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 14 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 10 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 42 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 20 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 6 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 3, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000005 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000006 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh=3.E5, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) >#diffKzT=3.E-5, +(PID.TID 0000.0001) >#diffKzS=3.E-5, +(PID.TID 0000.0001) > diffKrBL79surf= 3.E-5, +(PID.TID 0000.0001) > diffKrBL79deep= 13.E-5, +(PID.TID 0000.0001) > diffKrBL79Ho = -2000., +(PID.TID 0000.0001) > diffKrBL79scl = 150., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) >#implicitViscosity=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=10., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) >#useCDscheme=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMindz=50., +(PID.TID 0000.0001) >#- I/O params: +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) >#nTimeSteps = 1440, +(PID.TID 0000.0001) > nTimeSteps = 10, +(PID.TID 0000.0001) >#tauCD = 321428., +(PID.TID 0000.0001) > deltaTMom = 900., +(PID.TID 0000.0001) > deltaTtracer = 43200., +(PID.TID 0000.0001) > deltaTFreeSurf= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 311040000., +(PID.TID 0000.0001) > chkptFreq = 31104000., +(PID.TID 0000.0001) > dumpFreq = 2592000., +(PID.TID 0000.0001) > monitorFreq= 864000., +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) > tauSaltClimRelax = 7776000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod = 2592000., +(PID.TID 0000.0001) > externForcingCycle = 31104000., +(PID.TID 0000.0001) > monitorFreq= 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delZ= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > xgOrigin= 236.25, +(PID.TID 0000.0001) > ygOrigin= -81.5625, +(PID.TID 0000.0001) > delX=42*2.8125, +(PID.TID 0000.0001) > delY=20*2.8125, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > checkIniTemp = .FALSE., +(PID.TID 0000.0001) > bathyFile = 'bathy_box.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'Eta_ini.bin', +(PID.TID 0000.0001) > uVelInitFile = 'U_ini.bin', +(PID.TID 0000.0001) > vVelInitFile = 'V_ini.bin', +(PID.TID 0000.0001) > hydrogThetaFile='T_ini.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'S_ini.bin', +(PID.TID 0000.0001) > zonalWindFile = 'tren_taux_box.bin', +(PID.TID 0000.0001) > meridWindFile = 'tren_tauy_box.bin', +(PID.TID 0000.0001) > thetaClimFile = 'lev_monthly_temp_box.bin', +(PID.TID 0000.0001) > saltClimFile = 'lev_monthly_salt_box.bin', +(PID.TID 0000.0001) > surfQnetFile = 'shi_qnet_box.bin', +(PID.TID 0000.0001) > EmPmRFile = 'shi_empmr_year_box.bin', +(PID.TID 0000.0001) > the_run_name = 'OBC + Biogeo S.Ocean Box', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > usePTRACERS=.TRUE., +(PID.TID 0000.0001) > useGCHEM =.TRUE., +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > useOBCS =.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/obcs compiled and used ( useOBCS = T ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + pkg/gchem compiled and used ( useGCHEM = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled but not used ( useCDscheme = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: opening data.obcs +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.obcs +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.obcs" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Open-boundaries +(PID.TID 0000.0001) > &OBCS_PARM01 +(PID.TID 0000.0001) ># This flag turns off checking and fixing problematic topography across +(PID.TID 0000.0001) ># open boundaries. +(PID.TID 0000.0001) > OBCSfixTopo=.FALSE., +(PID.TID 0000.0001) > OB_Iwest = 20*1, +(PID.TID 0000.0001) > OB_Ieast = 20*-1, +(PID.TID 0000.0001) > OB_Jnorth= 42*-1, +(PID.TID 0000.0001) > OBWconnectFile = 'connect_obW.bin', +(PID.TID 0000.0001) > OBEconnectFile = 'connect_obE.bin', +(PID.TID 0000.0001) > OBNconnectFile = 'connect_obN.bin', +(PID.TID 0000.0001) ># OBWconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) ># OBEconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) ># OBNconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) > useOBCSprescribe = .TRUE., +(PID.TID 0000.0001) > OBCS_u1_adv_T = 1, +(PID.TID 0000.0001) > OBCS_u1_adv_S = 1, +(PID.TID 0000.0001) > OBCS_u1_adv_Tr(1:5) = 5*1, +(PID.TID 0000.0001) > OBWuFile = 'U_obW.bin', +(PID.TID 0000.0001) > OBEuFile = 'U_obE.bin', +(PID.TID 0000.0001) > OBNuFile = 'U_obN.bin', +(PID.TID 0000.0001) > OBWvFile = 'V_obW.bin', +(PID.TID 0000.0001) > OBEvFile = 'V_obE.bin', +(PID.TID 0000.0001) > OBNvFile = 'V_obN.bin', +(PID.TID 0000.0001) > OBWtFile = 'T_obW.bin', +(PID.TID 0000.0001) > OBEtFile = 'T_obE.bin', +(PID.TID 0000.0001) > OBNtFile = 'T_obN.bin', +(PID.TID 0000.0001) > OBWsFile = 'S_obW.bin', +(PID.TID 0000.0001) > OBEsFile = 'S_obE.bin', +(PID.TID 0000.0001) > OBNsFile = 'S_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(1) = 'Trac01_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(1) = 'Trac01_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(1) = 'Trac01_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(2) = 'Trac02_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(2) = 'Trac02_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(2) = 'Trac02_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(3) = 'Trac03_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(3) = 'Trac03_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(3) = 'Trac03_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(4) = 'Trac04_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(4) = 'Trac04_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(4) = 'Trac04_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(5) = 'Trac05_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(5) = 'Trac05_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(5) = 'Trac05_obN.bin', +(PID.TID 0000.0001) >#OBCS_monitorFreq= 1200., +(PID.TID 0000.0001) > OBCS_monSelect = 1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Orlanski parameters +(PID.TID 0000.0001) > &OBCS_PARM02 +(PID.TID 0000.0001) >#Cmax=0.45, +(PID.TID 0000.0001) >#cVelTimeScale=1000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: finished reading data.obcs +(PID.TID 0000.0001) OB_indexUnset = /* unset OB index value (i.e. no OB) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Northern OB global indices : OB_Jnorth = +(PID.TID 0000.0001) 42 @ 20 /* I = 1: 42 */ +(PID.TID 0000.0001) Southern OB global indices : OB_Jsouth = +(PID.TID 0000.0001) 42 @ 0 /* I = 1: 42 */ +(PID.TID 0000.0001) Eastern OB global indices : OB_Ieast = +(PID.TID 0000.0001) 20 @ 42 /* J = 1: 20 */ +(PID.TID 0000.0001) Western OB global indices : OB_Iwest = +(PID.TID 0000.0001) 20 @ 1 /* J = 1: 20 */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># from MOM +(PID.TID 0000.0001) ># GM_background_K: isopycnal diffusion coefficien +(PID.TID 0000.0001) ># GM_maxSlope: max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit: transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd: half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># real background diff: horizontal diffusion +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ifdef GM_VISBECK_VARIABLE_K, include following in GM_PARM01 +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_AdvForm = .TRUE., +(PID.TID 0000.0001) > GM_background_K = 1.e+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 100., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=5, +(PID.TID 0000.0001) > PTRACERS_Iter0= 0, +(PID.TID 0000.0001) ># tracer 1 - dic +(PID.TID 0000.0001) > PTRACERS_names(1)='DIC', +(PID.TID 0000.0001) > PTRACERS_long_names(1)='Dissolved Inorganic Carbon (DIC) [mol C/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(1)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(1)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(1)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(1)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(1)='Trac01_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,1) = 2.0282, 2.0609, 2.1206, 2.1581, +(PID.TID 0000.0001) > 2.1904, 2.2188, 2.2474, 2.2699, +(PID.TID 0000.0001) > 2.2792, 2.2814, 2.2815, 2.2806, +(PID.TID 0000.0001) > 2.2800, 2.2760, 2.2758, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(1)= 0., +(PID.TID 0000.0001) ># tracer 2 - alk +(PID.TID 0000.0001) > PTRACERS_names(2)='Alk', +(PID.TID 0000.0001) > PTRACERS_long_names(2)='Alkalinity (Alk) [mol eq/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(2)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(2)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(2)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(2)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(2)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(2)='Trac02_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,2) = 2.3086, 2.3149, 2.3164, 2.3112, +(PID.TID 0000.0001) > 2.3098, 2.3160, 2.3313, 2.3517, +(PID.TID 0000.0001) > 2.3667, 2.3761, 2.3832, 2.3862, +(PID.TID 0000.0001) > 2.3881, 2.3863, 2.3867, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(2)= 0., +(PID.TID 0000.0001) ># tracer 3 - po4 +(PID.TID 0000.0001) > PTRACERS_names(3)='PO4', +(PID.TID 0000.0001) > PTRACERS_long_names(3)='Phosphate (PO4) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(3)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(3)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(3)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(3)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(3)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(3)='Trac03_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,3) = 0.5438E-3, 0.7821E-3, 1.1335E-3, 1.4913E-3, +(PID.TID 0000.0001) > 1.8606E-3, 2.1986E-3, 2.3966E-3, 2.4187E-3, +(PID.TID 0000.0001) > 2.4046E-3, 2.3291E-3, 2.2922E-3, 2.2886E-3, +(PID.TID 0000.0001) > 2.2608E-3, 2.2356E-3, 2.2296E-3, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(3)= 0., +(PID.TID 0000.0001) ># tracer 4 - dop +(PID.TID 0000.0001) > PTRACERS_names(4)='DOP', +(PID.TID 0000.0001) > PTRACERS_long_names(4)='Dissolved Organic Phosphorus (DOP) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(4)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(4)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(4)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(4)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(4)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(4)='Trac04_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,4) = 15*0., +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(4)= 0., +(PID.TID 0000.0001) ># tracer 5 - o2 +(PID.TID 0000.0001) > PTRACERS_names(5)='O2', +(PID.TID 0000.0001) > PTRACERS_long_names(5)='Dissolved Oxygen (O2) [mol O/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(5)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(5)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(5)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(5)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(5)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(5)='Trac05_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,5) = 0.2457, 0.2336, 0.1975, 0.1729, +(PID.TID 0000.0001) > 0.1591, 0.1503, 0.1424, 0.1445, +(PID.TID 0000.0001) > 0.1549, 0.1661, 0.1774, 0.1863, +(PID.TID 0000.0001) > 0.1925, 0.2021, 0.2051, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(5)= 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) GCHEM_READPARMS: opening data.gchem +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gchem +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gchem" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &GCHEM_PARM01 +(PID.TID 0000.0001) > useDIC=.TRUE., +(PID.TID 0000.0001) > nsubtime=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GCHEM_READPARMS: finished reading data.gchem +(PID.TID 0000.0001) DIC_READPARMS: opening data.dic +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.dic +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.dic" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DIC parameters +(PID.TID 0000.0001) > &ABIOTIC_PARMS +(PID.TID 0000.0001) > useCalciteSaturation= .TRUE., +(PID.TID 0000.0001) ># calcOmegaCalciteFreq= 86400., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BIOTIC_PARMS +(PID.TID 0000.0001) > alphaUniform = 0.97e-10, +(PID.TID 0000.0001) > rainRatioUniform = 5.e-2, +(PID.TID 0000.0001) > KRemin = 0.95, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &DIC_FORCING +(PID.TID 0000.0001) > DIC_iceFile='fice_box.bin', +(PID.TID 0000.0001) > DIC_windFile='tren_speed_box.bin', +(PID.TID 0000.0001) > DIC_silicaFile='sillev1_box.bin', +(PID.TID 0000.0001) > DIC_deepSilicaFile='silicate_3D_12m_box.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIC_READPARMS: finished reading data.dic +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC package parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) Using Follows et al. (2006) for pH/pCO2 +(PID.TID 0000.0001) Using Munhoven (2013) Solvesaphe carbon coefficients +(PID.TID 0000.0001) Using Millero (1995)/Mehrbach K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity +(PID.TID 0000.0001) permil = /* Ref. density to convert mol/m3 to mol/kg */ +(PID.TID 0000.0001) 9.760858955588092E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Pa2Atm = /* Atmosph. pressure conversion coeff (to Atm) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zca = /* Scale depth for CaCO3 remineralization (m) */ +(PID.TID 0000.0001) 3.500000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCalciteSaturation = /* Flag for omegaC calculation on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcOmegaCalciteFreq = /* Frequency of calcite saturation calculation (s) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KierRateK = /* Rate constant for calcite dissolution (%/day) */ +(PID.TID 0000.0001) 7.177000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KierRateExp = /* Rate exponent for calcite dissolution */ +(PID.TID 0000.0001) 4.540000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) WsinkPIC = /* Sinking speed of particulate inorganic carbon (m/s) */ +(PID.TID 0000.0001) 1.157407407407407E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCalciteBottomRemin = /* Remineralize CO3 bottom flux: =0: here, =1: top layer */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DOPfraction = /* Fraction of new production going to DOP */ +(PID.TID 0000.0001) 6.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KDOPRemin = /* DOP remineralization rate (1/s) */ +(PID.TID 0000.0001) 6.430041152263375E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KRemin = /* Remin power law coeff. */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zcrit = /* Minimum depth for biological activity (m) */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) O2crit = /* Critical oxygen level (mol/m3) */ +(PID.TID 0000.0001) 4.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_OP = /* Stochiometric ratio R_OP */ +(PID.TID 0000.0001) -1.700000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_CP = /* Stochiometric ratio R_CP */ +(PID.TID 0000.0001) 1.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_NP = /* Stochiometric ratio R_NP */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_FeP = /* Stochiometric ratio R_FeP */ +(PID.TID 0000.0001) 4.680000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) parfrac = /* Fraction of Qsw that is PAR */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) k0 = /* Light attentuation coefficient, water (1/m) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kchl = /* Light attentuation coefficient, chlorophyll (m2/mg) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) lit0 = /* Half saturation light constant (W/m2) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPO4 = /* Half saturation phosphate constant (mol/m3) */ +(PID.TID 0000.0001) 5.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KFE = /* Half saturation fe constant (mol/m3) */ +(PID.TID 0000.0001) 1.200000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alpfe = /* Solubility of aeolian fe */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fesedflux_pcm = /* Sediment Fe flux = fesedflux_pcm*pflux+FeIntSec */ +(PID.TID 0000.0001) 7.208000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) FeIntSec = /* Sediment Fe flux = fesedflux_pcm * pflux + FeIntSec */ +(PID.TID 0000.0001) 5.787037037037037E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freefemax = /* Max solubility of free iron (mol/m3) */ +(PID.TID 0000.0001) 3.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KScav = /* Iron scavenging rate */ +(PID.TID 0000.0001) 6.108539094650206E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_stab = /* Ligand-free iron stability constant (m3/mol) */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_tot = /* Total free ligand (mol/m3) */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alphaUniform = /* Timescale for biological activity */ +(PID.TID 0000.0001) 9.700000000000000E-11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rainRatioUniform= /* Inorganic/organic carbon rain ratio */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) QSW_underice = /* Flag for Qsw under Sea-Ice (i.e. SI fract included) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_windFile = /* File name of wind speeds */ +(PID.TID 0000.0001) 'tren_speed_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_atmospFile= /* File name of atmospheric pressure*/ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_silicaFile= /* File name of surface silica */ +(PID.TID 0000.0001) 'sillev1_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_deepSilicaFile= /* File name of 3d silica field */ +(PID.TID 0000.0001) 'silicate_3D_12m_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_iceFile = /* File name of seaice fraction */ +(PID.TID 0000.0001) 'fice_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_parFile= /* File name of photosynthetically available radiation */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_chlaFile= /* File name of chlorophyll climatology */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_ironFile = /* File name of aeolian iron flux */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingPeriod = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingCycle = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int1 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int2 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int3 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int4 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_pCO2 = /* Atmospheric pCO2 to be read in data.dic */ +(PID.TID 0000.0001) 2.780000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Start registering GCHEM tracers +(PID.TID 0000.0001) DIC_TR_REGISTER: number of DIC tracers= 5 +(PID.TID 0000.0001) DIC_TR_REGISTER: starting at pTrc num= 1 +(PID.TID 0000.0001) DIC_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diagCG_maxIters = 200, +(PID.TID 0000.0001) ># diagCG_resTarget = 1.E-10, +(PID.TID 0000.0001) ># diagCG_pcOffDFac = 0.96, +(PID.TID 0000.0001) ># diagCG_prtResFrq = 20, +(PID.TID 0000.0001) > xPsi0 = 300., +(PID.TID 0000.0001) > yPsi0 = -26., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'DICTFLX ','DICOFLX ','DICCFLX ','DICPCO2 ','DICPHAV ', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 2592000., +(PID.TID 0000.0001) ># frequency(1) = 432000., +(PID.TID 0000.0001) > fields(1:9,2) = 'VVELMASS','UVELMASS','THETA ','SALT ', +(PID.TID 0000.0001) > 'GM_PsiX ','GM_PsiY ','PhiVEL ','PsiVEL ', +(PID.TID 0000.0001) > 'CONVADJ ', +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 2592000., +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > fields(1:9,3) = 'DICBIOA ','DICCARB ', +(PID.TID 0000.0001) > 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', +(PID.TID 0000.0001) > 'ADVxTr05','DFrITr05', +(PID.TID 0000.0001) ># fileName(3) = 'dicDiag', +(PID.TID 0000.0001) > frequency(3) = 2592000., +(PID.TID 0000.0001) > fields(1:8,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DFxE_TH ','DFyE_TH ','DFrE_TH ','DFrI_TH ', +(PID.TID 0000.0001) > 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > stat_fields(1:20,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', +(PID.TID 0000.0001) > 'UVEL ','VVEL ','WVEL ','GM_PsiX ','GM_PsiY ', +(PID.TID 0000.0001) > 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', +(PID.TID 0000.0001) > 'DIC3DSIT','OMEGAC ','DIC3DPH ','DIC3DPCO','DIC3DCO3', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 432000., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 2592000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 2592000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ DICTFLX DICOFLX DICCFLX DICPCO2 DICPHAV +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: VVELMASS UVELMASS THETA SALT GM_PsiX GM_PsiY PhiVEL PsiVEL CONVADJ +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN DETADT2 THETA SALT CONVADJ UVEL VVEL WVEL GM_PsiX GM_PsiY +(PID.TID 0000.0001) Fields: TRAC01 TRAC02 TRAC03 TRAC04 TRAC05 DIC3DSIT OMEGAC DIC3DPH DIC3DPCO DIC3DCO3 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5296875000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.3765625000000E+02 +(PID.TID 0000.0001) %MON XC_mean = 2.9531250000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 3.4090083441706E+01 +(PID.TID 0000.0001) %MON XG_max = 3.5156250000000E+02 +(PID.TID 0000.0001) %MON XG_min = 2.3625000000000E+02 +(PID.TID 0000.0001) %MON XG_mean = 2.9390625000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 3.4090083441706E+01 +(PID.TID 0000.0001) %MON DXC_max = 2.7929930890376E+05 +(PID.TID 0000.0001) %MON DXC_min = 5.3457499214614E+04 +(PID.TID 0000.0001) %MON DXC_mean = 1.7889438140789E+05 +(PID.TID 0000.0001) %MON DXC_sd = 6.9711490203249E+04 +(PID.TID 0000.0001) %MON DXF_max = 2.7929930890376E+05 +(PID.TID 0000.0001) %MON DXF_min = 5.3457499214614E+04 +(PID.TID 0000.0001) %MON DXF_mean = 1.7889438140789E+05 +(PID.TID 0000.0001) %MON DXF_sd = 6.9711490203249E+04 +(PID.TID 0000.0001) %MON DXG_max = 2.7576500024724E+05 +(PID.TID 0000.0001) %MON DXG_min = 4.5880659601012E+04 +(PID.TID 0000.0001) %MON DXG_mean = 1.7292088380237E+05 +(PID.TID 0000.0001) %MON DXG_sd = 7.0928664230424E+04 +(PID.TID 0000.0001) %MON DXV_max = 2.7576500024724E+05 +(PID.TID 0000.0001) %MON DXV_min = 4.5880659601012E+04 +(PID.TID 0000.0001) %MON DXV_mean = 1.7292088380237E+05 +(PID.TID 0000.0001) %MON DXV_sd = 7.0928664230424E+04 +(PID.TID 0000.0001) %MON YC_max = -2.6718750000000E+01 +(PID.TID 0000.0001) %MON YC_min = -8.0156250000000E+01 +(PID.TID 0000.0001) %MON YC_mean = -5.3437500000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 1.6217666148756E+01 +(PID.TID 0000.0001) %MON YG_max = -2.8125000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.1562500000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -5.4843750000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 1.6217666148756E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYF_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYU_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON RA_max = 8.7324395636096E+10 +(PID.TID 0000.0001) %MON RA_min = 1.6713767855193E+10 +(PID.TID 0000.0001) %MON RA_mean = 5.5932267789893E+10 +(PID.TID 0000.0001) %MON RA_sd = 2.1795663493704E+10 +(PID.TID 0000.0001) %MON RAW_max = 8.7324395636096E+10 +(PID.TID 0000.0001) %MON RAW_min = 1.6713767855193E+10 +(PID.TID 0000.0001) %MON RAW_mean = 5.5932267789893E+10 +(PID.TID 0000.0001) %MON RAW_sd = 2.1795663493704E+10 +(PID.TID 0000.0001) %MON RAS_max = 8.6219375474631E+10 +(PID.TID 0000.0001) %MON RAS_min = 1.4344829161122E+10 +(PID.TID 0000.0001) %MON RAS_mean = 5.4064622394411E+10 +(PID.TID 0000.0001) %MON RAS_sd = 2.2176219345146E+10 +(PID.TID 0000.0001) %MON RAZ_max = 8.6219375474631E+10 +(PID.TID 0000.0001) %MON RAZ_min = 1.4344829161122E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 5.4064622394411E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 2.2176219345146E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_box.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -5.200000000000000E+03 +(PID.TID 0000.0001) // CMAX = -5.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 1.907407407407407E+02 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) K = 1 +(PID.TID 0000.0001) // I=7 I=17 I=21 I=31 I=35 I=45 +(PID.TID 0000.0001) // |--J--|210123456|890123456|234567890|234567890|678901234|678901234| +(PID.TID 0000.0001) // 23 ...............................+yyyyyyyyyyyyyyxxxyy......... +(PID.TID 0000.0001) // 22 ...............................++zz..zyxz..zyxy............. +(PID.TID 0000.0001) // 21 ............................................................ +(PID.TID 0000.0001) // 20 kfeijklmkkjiiihihgffhihgffff........zole..zoledcaabdfhkfeijk +(PID.TID 0000.0001) // 19 lhehijlmkjihhhihggfeihggfeev........ohgf..ohgfqihdddfilhehij +(PID.TID 0000.0001) // 18 kfehhikmjjihhhihggfeihggfef+.......shgff.shgfflgiddfhkkfehhi +(PID.TID 0000.0001) // 17 jggfhhjmjiiiiihgggffhgggfff.......xfbbbdxfbbbdddffggjkjggfhh +(PID.TID 0000.0001) // 16 ljjeegjmjgfgijihggffihggffp......zfa-aaafa-aaaddddfgklljjeeg +(PID.TID 0000.0001) // 15 jhgeehkmihfefijihgggjihgggy......h------------abddfhkljhgeeh +(PID.TID 0000.0001) // 14 jggfghkljigeeefgikiifgikii+...++p---aaa---aaa--adddgjkjggfgh +(PID.TID 0000.0001) // 13 llifgjlljhgeeeeffhjkeffhjk....++j---------------addfgkllifgj +(PID.TID 0000.0001) // 12 jllhiklkihfedddddefidddefi....+zsqmb-afamb-afaaabddffhjllhik +(PID.TID 0000.0001) // 11 hjnjmljhhfedddddddfgddddfgj..+zzsqpnnqjipnnqjigifffdefhjnjml +(PID.TID 0000.0001) // 10 fijmljhhgeddddaadddfaadddfjlllkjihggjkmwggjkmwvjddfddefijmlj +(PID.TID 0000.0001) // 9 ffhggdddddccdddddddddddddddfihggggggkkjkggkkjkkjjodddeffhggd +(PID.TID 0000.0001) // 8 aa-baddaaaaaaaaabbbdaabbbddeghhgilolvxomolvxomnllkefgdaa-bad +(PID.TID 0000.0001) // 13 llifgjlljhgeeeeffhjkeffhjk....++j---------------addfgkllifgj +(PID.TID 0000.0001) // 12 jllhiklkihfedddddefidddefi....+zsqmb-afamb-afaaabddffhjllhik +(PID.TID 0000.0001) // 11 hjnjmljhhfedddddddfgddddfgj..+zzsqpnnqjipnnqjigifffdefhjnjml +(PID.TID 0000.0001) // 10 fijmljhhgeddddaadddfaadddfjlllkjihggjkmwggjkmwvjddfddefijmlj +(PID.TID 0000.0001) // 9 ffhggdddddccdddddddddddddddfihggggggkkjkggkkjkkjjodddeffhggd +(PID.TID 0000.0001) // 8 aa-baddaaaaaaaaabbbdaabbbddeghhgilolvxomolvxomnllkefgdaa-bad +(PID.TID 0000.0001) // 7 ---aaaaaddaaabdddddedddddefgill..zqjkigdqjkigddddddbaa---aaa +(PID.TID 0000.0001) // 6 aadddddddddddddddeegdddeeghpy...yxnhgeddnhgedddddddbaaaadddd +(PID.TID 0000.0001) // 5 dgnhigghffeddffilloxfilloxy....zyxoihgggoihgggdddddddddgnhig +(PID.TID 0000.0001) // 4 z..npvwvvwy++yyyyxxzyyyxxz......ywttqmigttqmigghggfflyz..npv +(PID.TID 0000.0001) // 3 ...............................+yyyyyyyyyyyyyyxxxyy......... +(PID.TID 0000.0001) // 2 ...............................++zz..zyxz..zyxy............. +(PID.TID 0000.0001) // 1 ............................................................ +(PID.TID 0000.0001) // 0 kfeijklmkkjiiihihgffhihgffff........zole..zoledcaabdfhkfeijk +(PID.TID 0000.0001) // -1 lhehijlmkjihhhihggfeihggfeev........ohgf..ohgfqihdddfilhehij +(PID.TID 0000.0001) // -2 kfehhikmjjihhhihggfeihggfef+.......shgff.shgfflgiddfhkkfehhi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: connect_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: connect_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: connect_obW.bin +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 1, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 2, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 3, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 4, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 5, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 6, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 7, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 8, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 9, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 10, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 11, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 12, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 13, maxConnect= 5 , numConnect= 5 +(PID.TID 0000.0001) listConnect: 1 2 3 4 5 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 14, maxConnect= 5 , numConnect= 5 +(PID.TID 0000.0001) listConnect: 1 2 3 4 5 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 15, maxConnect= 3 , numConnect= 2 +(PID.TID 0000.0001) listConnect: 1 3 +(PID.TID 0000.0001) PTRACERS_INIT_FIXED: updated GAD_OlMinSize= 2 0 1 + QQ load dic parameters, initial fixed +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC_INIT_FIXED parameters : +(PID.TID 0000.0001) nlev = /* Number of level over which Bio act is computed */ +(PID.TID 0000.0001) 6 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 300 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 286 DICTFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 287 DICOFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 288 DICCFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 289 DICPCO2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 290 DICPHAV +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 204 GM_PsiX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Diag # 48 PhiVEL processed from Diag # 45 UVELMASS +(PID.TID 0000.0001) - NOTE - SETDIAG: Diagnostic # 45 UVELMASS is already set +(PID.TID 0000.0001) - NOTE - SETDIAG: Vector-mate # 46 VVELMASS is already set +(PID.TID 0000.0001) SETDIAG: Diag # 49 PsiVEL processed from Diag # 48 PhiVEL +(PID.TID 0000.0001) - NOTE - SETDIAG: Diagnostic # 48 PhiVEL is already set +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 78 CONVADJ +(PID.TID 0000.0001) space allocated for all diagnostics: 115 levels +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 204 GM_PsiX , Parms: UU LR , mate: 205 +(PID.TID 0000.0001) set mate pointer for diag # 205 GM_PsiY , Parms: VV LR , mate: 204 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_CALC: setting indices iPsi0,jPsi0 where Psi == 0 : +(PID.TID 0000.0001) DIAGNOSTICS_SET_CALC: d2Min= 5.394531E+00, ijMin= 925.000 +(PID.TID 0000.0001) SELECT : bi,bj= 2 2 ; i,j= 10 10 ; ijLoc= 925.000 +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 78 CONVADJ +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 204 GM_PsiX +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 213 TRAC01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 227 TRAC02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 241 TRAC03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 255 TRAC04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 269 TRAC05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 291 DIC3DSIT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 292 OMEGAC +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 293 DIC3DPH +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 294 DIC3DPCO +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 295 DIC3DCO3 +(PID.TID 0000.0001) space allocated for all stats-diags: 272 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = -6.5572427009593E-05 +(PID.TID 0000.0001) %MON fCori_min = -1.4369532533658E-04 +(PID.TID 0000.0001) %MON fCori_mean = -1.1250506132776E-04 +(PID.TID 0000.0001) %MON fCori_sd = 2.4357644817991E-05 +(PID.TID 0000.0001) %MON fCoriG_max = -6.8749664608828E-05 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4426394581537E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.1451888327629E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 2.3580812438249E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.3027003865390E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 2.4933504190762E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 8.3439440192105E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.2514647311668E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 7.8420435099722891E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 1.300000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 1.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 2.812500000000000E+00 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 20 @ 2.812500000000000E+00 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 2.362500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.156250000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.376562500000000E+02, /* I = 1 */ +(PID.TID 0000.0001) 2.404687500000000E+02, /* I = 2 */ +(PID.TID 0000.0001) 2.432812500000000E+02, /* I = 3 */ +(PID.TID 0000.0001) 2.460937500000000E+02, /* I = 4 */ +(PID.TID 0000.0001) 2.489062500000000E+02, /* I = 5 */ +(PID.TID 0000.0001) 2.517187500000000E+02, /* I = 6 */ +(PID.TID 0000.0001) 2.545312500000000E+02, /* I = 7 */ +(PID.TID 0000.0001) 2.573437500000000E+02, /* I = 8 */ +(PID.TID 0000.0001) 2.601562500000000E+02, /* I = 9 */ +(PID.TID 0000.0001) 2.629687500000000E+02, /* I = 10 */ +(PID.TID 0000.0001) 2.657812500000000E+02, /* I = 11 */ +(PID.TID 0000.0001) 2.685937500000000E+02, /* I = 12 */ +(PID.TID 0000.0001) 2.714062500000000E+02, /* I = 13 */ +(PID.TID 0000.0001) 2.742187500000000E+02, /* I = 14 */ +(PID.TID 0000.0001) 2.770312500000000E+02, /* I = 15 */ +(PID.TID 0000.0001) 2.798437500000000E+02, /* I = 16 */ +(PID.TID 0000.0001) 2.826562500000000E+02, /* I = 17 */ +(PID.TID 0000.0001) 2.854687500000000E+02, /* I = 18 */ +(PID.TID 0000.0001) 2.882812500000000E+02, /* I = 19 */ +(PID.TID 0000.0001) 2.910937500000000E+02, /* I = 20 */ +(PID.TID 0000.0001) 2.939062500000000E+02, /* I = 21 */ +(PID.TID 0000.0001) 2.967187500000000E+02, /* I = 22 */ +(PID.TID 0000.0001) 2.995312500000000E+02, /* I = 23 */ +(PID.TID 0000.0001) 3.023437500000000E+02, /* I = 24 */ +(PID.TID 0000.0001) 3.051562500000000E+02, /* I = 25 */ +(PID.TID 0000.0001) 3.079687500000000E+02, /* I = 26 */ +(PID.TID 0000.0001) 3.107812500000000E+02, /* I = 27 */ +(PID.TID 0000.0001) 3.135937500000000E+02, /* I = 28 */ +(PID.TID 0000.0001) 3.164062500000000E+02, /* I = 29 */ +(PID.TID 0000.0001) 3.192187500000000E+02, /* I = 30 */ +(PID.TID 0000.0001) 3.220312500000000E+02, /* I = 31 */ +(PID.TID 0000.0001) 3.248437500000000E+02, /* I = 32 */ +(PID.TID 0000.0001) 3.276562500000000E+02, /* I = 33 */ +(PID.TID 0000.0001) 3.304687500000000E+02, /* I = 34 */ +(PID.TID 0000.0001) 3.332812500000000E+02, /* I = 35 */ +(PID.TID 0000.0001) 3.360937500000000E+02, /* I = 36 */ +(PID.TID 0000.0001) 3.389062500000000E+02, /* I = 37 */ +(PID.TID 0000.0001) 3.417187500000000E+02, /* I = 38 */ +(PID.TID 0000.0001) 3.445312500000000E+02, /* I = 39 */ +(PID.TID 0000.0001) 3.473437500000000E+02, /* I = 40 */ +(PID.TID 0000.0001) 3.501562500000000E+02, /* I = 41 */ +(PID.TID 0000.0001) 3.529687500000000E+02 /* I = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -8.015625000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.734375000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.453125000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -7.171875000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.890625000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -6.609375000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -6.328125000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -6.046875000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -5.765625000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -5.484375000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -5.203125000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -4.921875000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -4.640625000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -4.359375000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -4.078125000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -3.796875000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -3.515625000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -3.234375000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -2.953125000000000E+01, /* J = 19 */ +(PID.TID 0000.0001) -2.671875000000000E+01 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.345749921461356E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 2 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.792993089037565E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 4.588065960101153E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 2 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.757650002472408E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.345749921461356E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 2 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.792993089037565E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 4.588065960101153E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 2 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.757650002472408E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.671376785519299E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 10 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 13 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.732439563609566E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.671376785519299E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 10 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 13 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.732439563609566E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.434482916112175E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 10 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.621937547463148E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.507619373042164E+13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) the_run_name = /* Name of this simulation */ +(PID.TID 0000.0001) 'OBC + Biogeo S.Ocean Box' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_OBCS +(PID.TID 0000.0001) OBCS_CHECK: start summary: +(PID.TID 0000.0001) useOBCSprescribe = /* prescribe OB values */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCSbalance = /* balance the flow through OB */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_uvApplyFac = /* Factor to apply to U,V 2nd column/row */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_T = /* Temp uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_S = /* Salt uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_Tr = /* pTr uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 5 @ 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monitorFreq = /* monitor output frequency [s] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCStides = /* apply tidal forcing through OB */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tidalPeriod = /* (s) */ +(PID.TID 0000.0001) 10 @ 0.000000000000000E+00 /* I = 1: 10 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OB_indexNone = /* null value for OB index (i.e. no OB) */ +(PID.TID 0000.0001) -99 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ======== Tile bi= 1 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ 1 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 2 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 3 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ 14 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 1 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ 1 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 2 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 3 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ 14 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OBCS_CHECK: end summary. +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_ORLANSKI +(PID.TID 0000.0001) OBCS_CHECK: set-up OK +(PID.TID 0000.0001) OBCS_CHECK: check Inside Mask and OB locations: OK +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Carbon (DIC) [mol C/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.028200000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.060900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.120600000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.158100000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.190400000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.218800000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.247400000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.269900000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.279200000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.281400000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.281500000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.280600000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.280000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.276000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.275800000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 2 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'Alk' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Alkalinity (Alk) [mol eq/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '02' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.308600000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.314900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.316400000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.311200000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.309800000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.316000000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.331300000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.351700000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.366700000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.376100000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.383200000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.386200000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.388100000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.386300000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.386700000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 3 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'PO4' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Phosphate (PO4) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '03' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 5.438000000000000E-04, /* K = 1 */ +(PID.TID 0000.0001) 7.821000000000000E-04, /* K = 2 */ +(PID.TID 0000.0001) 1.133500000000000E-03, /* K = 3 */ +(PID.TID 0000.0001) 1.491300000000000E-03, /* K = 4 */ +(PID.TID 0000.0001) 1.860600000000000E-03, /* K = 5 */ +(PID.TID 0000.0001) 2.198600000000000E-03, /* K = 6 */ +(PID.TID 0000.0001) 2.396600000000000E-03, /* K = 7 */ +(PID.TID 0000.0001) 2.418700000000000E-03, /* K = 8 */ +(PID.TID 0000.0001) 2.404600000000000E-03, /* K = 9 */ +(PID.TID 0000.0001) 2.329100000000000E-03, /* K = 10 */ +(PID.TID 0000.0001) 2.292200000000000E-03, /* K = 11 */ +(PID.TID 0000.0001) 2.288600000000000E-03, /* K = 12 */ +(PID.TID 0000.0001) 2.260800000000000E-03, /* K = 13 */ +(PID.TID 0000.0001) 2.235600000000000E-03, /* K = 14 */ +(PID.TID 0000.0001) 2.229600000000000E-03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 4 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DOP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Phosphorus (DOP) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '04' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 5 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'O2' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Oxygen (O2) [mol O/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '05' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.457000000000000E-01, /* K = 1 */ +(PID.TID 0000.0001) 2.336000000000000E-01, /* K = 2 */ +(PID.TID 0000.0001) 1.975000000000000E-01, /* K = 3 */ +(PID.TID 0000.0001) 1.729000000000000E-01, /* K = 4 */ +(PID.TID 0000.0001) 1.591000000000000E-01, /* K = 5 */ +(PID.TID 0000.0001) 1.503000000000000E-01, /* K = 6 */ +(PID.TID 0000.0001) 1.424000000000000E-01, /* K = 7 */ +(PID.TID 0000.0001) 1.445000000000000E-01, /* K = 8 */ +(PID.TID 0000.0001) 1.549000000000000E-01, /* K = 9 */ +(PID.TID 0000.0001) 1.661000000000000E-01, /* K = 10 */ +(PID.TID 0000.0001) 1.774000000000000E-01, /* K = 11 */ +(PID.TID 0000.0001) 1.863000000000000E-01, /* K = 12 */ +(PID.TID 0000.0001) 1.925000000000000E-01, /* K = 13 */ +(PID.TID 0000.0001) 2.021000000000000E-01, /* K = 14 */ +(PID.TID 0000.0001) 2.051000000000000E-01 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up +(PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: U_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: V_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: T_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: S_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Eta_ini.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: surfDiag + nFlds, nActive, freq & phase , nLev + 10 | 10 | 2592000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 23 |ETAN | 1 | 0 | 1 | 0 | + 24 |ETANSQ | 2 | 0 | 1 | 0 | + 25 |DETADT2 | 3 | 0 | 1 | 0 | + 73 |PHIBOT | 4 | 0 | 1 | 0 | + 74 |PHIBOTSQ| 5 | 0 | 1 | 0 | + 286 |DICTFLX | 6 | 0 | 1 | 0 | + 287 |DICOFLX | 7 | 0 | 1 | 0 | + 288 |DICCFLX | 8 | 0 | 1 | 0 | + 289 |DICPCO2 | 9 | 0 | 1 | 0 | + 290 |DICPHAV | 10 | 0 | 1 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: dynDiag + nFlds, nActive, freq & phase , nLev + 9 | 9 | 432000.000000 0.000000 | 15 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + diag# | name | ipt | iMate | kLev| count | mate.C| + 46 |VVELMASS| 11 | 26 | 15 | 0 | 0 | + 45 |UVELMASS| 26 | 11 | 15 | 0 | 0 | + 26 |THETA | 41 | 0 | 15 | 0 | + 27 |SALT | 56 | 0 | 15 | 0 | + 204 |GM_PsiX | 71 | 86 | 15 | 0 | 0 | + 205 |GM_PsiY | 86 | 71 | 15 | 0 | 0 | + 48 |PhiVEL | -26 | 11 | 15 | 0 | 0 | + 49 |PsiVEL | -26 | 11 | 15 | 0 | 0 | + 78 |CONVADJ | 101 | 0 | 15 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 20 | 20 | 432000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 23 |ETAN | 1 | 0 | 0.00000E+00 | + 25 |DETADT2 | 2 | 0 | 0.00000E+00 | + 26 |THETA | 3 | 0 | 0.00000E+00 | + 27 |SALT | 18 | 0 | 0.00000E+00 | + 78 |CONVADJ | 33 | 0 | 0.00000E+00 | + 30 |UVEL | 48 | 0 | 0.00000E+00 | + 31 |VVEL | 63 | 0 | 0.00000E+00 | + 32 |WVEL | 78 | 0 | 0.00000E+00 | + 204 |GM_PsiX | 93 | 0 | 0.00000E+00 | + 205 |GM_PsiY | 108 | 0 | 0.00000E+00 | + 213 |TRAC01 | 123 | 0 | 0.00000E+00 | + 227 |TRAC02 | 138 | 0 | 0.00000E+00 | + 241 |TRAC03 | 153 | 0 | 0.00000E+00 | + 255 |TRAC04 | 168 | 0 | 0.00000E+00 | + 269 |TRAC05 | 183 | 0 | 0.00000E+00 | + 291 |DIC3DSIT| 198 | 0 | 0.00000E+00 | + 292 |OMEGAC | 213 | 0 | 0.00000E+00 | + 293 |DIC3DPH | 228 | 0 | 0.00000E+00 | + 294 |DIC3DPCO| 243 | 0 | 0.00000E+00 | + 295 |DIC3DCO3| 258 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac01_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac02_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac03_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac04_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac05_ini.bin + DIC_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin + OBCS_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + OBCS_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: U_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: U_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: V_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: V_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: T_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: T_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: S_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: S_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac01_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac01_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac02_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac02_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac03_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac03_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac04_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac04_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac05_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac05_obN.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2498448491096E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4817472696304E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1768973270635E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9968952443660E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3532016988898E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3023830950260E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0768067836761E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.3493858379116E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4643824433314E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6249141681668E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2960743904114E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8518343865871E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.9127213327288E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4376087770051E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0650506343562E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5220275294497E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4137995947489E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4324096431404E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.5064315434168E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4504545477429E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4157361984253E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8958356380463E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3216137302711E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2103641662143E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6465388359911E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6600784301758E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3084754943848E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483933613549E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9644712446743E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1588922083609E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.9361846923828E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0417861938477E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1295642419045E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.1815497434578E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.8869422460177E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1824374794960E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0302186757326E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.3083621898039E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.2594531176829E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.9615425353979E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4191913604736E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.7472656965256E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.7821404000724E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3449841576786E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7447536985508E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3632667693019E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7906237690509E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3657438911329E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7963571321516E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.4564277375069E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2757393409125E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6130429888475E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7830461303030E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0582698239818E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492699542E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292568575566E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624497018E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183795518383E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4505528465063E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 7.1872208131480E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.4231816232204E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0768067836761E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3664911249156E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4300273749965E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2629560767914E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9702914208174E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5726319290698E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0236617289703E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1103839461495E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3126718559515E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7468712553382E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0454828441143E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6522467327141E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4416742406190E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.8301529307681E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9184095382690E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6429638266563E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094777718074E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9652256041640E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1404630661011E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4417628645897E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4654016052560E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9592378831378E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.3972635269165E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3042351603508E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8710207613799E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7009472474846E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591387271881E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367703199387E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425301046135E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5981612504913E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0693771728119E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116826057434E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899123191833E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520448323130E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5091243992577E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0636971566538E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654629666358E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7440538764931E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556800669777E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0322634216633E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7075508236597E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5665847351775E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.4560205121088E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2001614686786E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6096018939081E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3468378546213E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8357657194138E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2342259585857E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1413280166756E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3053560479973E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1918591217244E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin + DIC_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + DIC_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_speed_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_speed_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: silicate_3D_12m_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: silicate_3D_12m_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: fice_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: fice_box.bin + OBCS_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.70300204682829E+01 9.88743731864319E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.37603699273327E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 80 +(PID.TID 0000.0001) cg2d_last_res = 7.83460039210268E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5995434788303E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4926906630212E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1751416804791E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0178255889349E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3589778971511E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3027291294470E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0691849142313E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4175285308401E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4633337899631E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6238374490497E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2954916558810E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8515782804455E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1326993179764E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4326980060472E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0638914247425E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5009566978399E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4162700010206E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323740420733E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4535039627299E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4032734702382E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4176176055431E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8959442458374E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3219357947834E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2112571801567E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6436082635441E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6600983637883E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3083605831074E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483935079098E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9645820244523E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1582977948130E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8294754028320E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1320401000977E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2120328054684E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4775932709347E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3492965265813E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1189042925835E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.0532809495926E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.6106089453040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1216399468495E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5128220616824E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5118104964495E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6193943619728E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9592570688621E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3563926402948E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7626012825569E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1675162763305E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8487912745656E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2844837867684E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3641603666416E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7898186776852E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6762428505230E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7994960012968E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.4878613014088E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2726630591449E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6162367406714E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7776380617399E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0533584638701E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492648028E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292605380161E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624435076E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183798042838E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.2002699834481E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.0362440405314E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.4097423652808E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0691849142313E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3646583987137E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4300890782899E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2626418630559E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9750952695807E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5728699409713E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0192873374808E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1107779277586E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3118543136471E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7415303376814E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0506425450246E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6346447363572E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4402877553886E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.7786955227386E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9205570983887E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6343102912108E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094666342927E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9656966224417E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1424821790059E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4418450812499E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4656188431364E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9597766264317E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.3993523279826E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3092609544595E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8712326540729E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7018270697657E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591394770776E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367486749817E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425286949238E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5984993439482E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0685608891979E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116827787738E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899459792551E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520451784955E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5091068499635E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0629800485248E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654670647513E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7395120481237E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556705765263E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0324302750848E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7043671858714E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5699611737368E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.4705281297197E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2084159923944E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6136106693571E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3456372290705E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8361753713501E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2383316333612E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1413094083900E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3051033243526E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1897591872251E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 + DIC_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 + OBCS_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + cg2d: Sum(rhs),rhsMax = 3.70217753957371E+01 9.88625784851453E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.18099076329334E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 80 +(PID.TID 0000.0001) cg2d_last_res = 9.55927126932183E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6334347157143E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5054718669162E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1733721838717E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0496709348125E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3577831149832E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3041106999456E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0615630447865E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4725824773712E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4631652665722E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6226581855361E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2953153531427E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8521495760349E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.3671467481625E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4317722124119E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0631845421267E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4857585207279E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4187401954804E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323384410062E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4672365947540E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4054166570978E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4191250964543E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8960457389717E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3222538696213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2121304166893E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6406361958254E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601160772400E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3082402903474E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483935951541E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9646577404095E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1576659921708E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8330323791504E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1277729593913E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2092838533496E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4621997369695E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3603312595688E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1201943308115E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.0949111431837E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.6005340534540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1251205601334E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5216683859400E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5087231919169E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6163741697868E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9533531799024E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3549641941976E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7565688124801E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3734380919868E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9400977256355E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.4038758935331E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3677281265160E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7895751022576E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6791664779384E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8026346013162E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5371721839429E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2836853228384E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6201167056061E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7734233399894E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0506910459598E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492596515E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292637161886E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624373134E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801627528E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6874756579119E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.0981311502989E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3963031073411E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0615630447865E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3628256725119E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4301519717685E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2623276493204E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9798991183440E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5731079528729E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0149129459912E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1111732089572E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3110367713427E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7361894200246E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0558022459348E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6170427400003E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4389177929887E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.7272381147091E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9227046585083E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6256567557653E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094554967779E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9661690420752E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1445012919108E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4419272979101E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4658360810169E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9603162977268E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4014411290487E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3142867485682E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8714445467659E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7027078335556E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591401654397E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367271042752E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425272764841E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5988388933325E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0677384839569E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116832757561E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899799305598E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520454966805E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090900751946E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0623943309462E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654707905471E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7350030617099E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556610772909E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0325958484516E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7007347325832E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5734372514985E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5081759287795E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2166640460367E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6176363994778E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3445374783806E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8365288067711E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2401869335757E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412908339770E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3048525270866E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1876374153122E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + DIC_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + OBCS_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + cg2d: Sum(rhs),rhsMax = 3.69813004132884E+01 9.89366639092217E-01 +(PID.TID 0000.0001) cg2d_init_res = 5.67526980566402E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 79 +(PID.TID 0000.0001) cg2d_last_res = 6.56260092680578E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6213989059191E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5125833035862E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1715888372412E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0875958600885E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3647144329516E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3062261868045E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0539411753416E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5079985726029E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4636773745285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6215293796818E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2955742043983E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8542959561069E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.5026324011132E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4359882216886E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0627935286095E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4890354380308E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4180007284655E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323028399391E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4605074086474E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4055591218984E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4207205522541E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8961461882647E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3225679277077E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2129999380289E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6377896898328E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601334730652E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3081176678740E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483936926475E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9647408903632E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1570457958611E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8365893554688E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1235058186849E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2065349012308E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4471574191313E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3718643192961E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1214843690395E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.1365413367748E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5904591616040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1286791719395E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5309620030393E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5056358873844E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6133539776007E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9474492909428E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3536075112207E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7509025945884E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3935653812237E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0000272635172E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3877407297722E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3731911478655E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7899327246398E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6782912731427E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8016950432267E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5967060596595E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3049026000510E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6238894530997E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7703855977354E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0514402478036E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492545002E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292658560979E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624311192E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183803880499E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.3299011362969E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1235984607563E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3828638494015E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0539411753416E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3609929463100E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4302160552751E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2620134355850E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9847029671073E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5733459647745E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0105385545017E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1115697883587E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3102192290383E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7308485023677E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0609619468451E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5994407436435E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4375643639680E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.6757807066797E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9248522186279E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6170032203197E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094443592632E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9666428623953E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1465204048157E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4420095145702E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4660533188974E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9608568965157E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4035299301147E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3193125426769E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8716564394589E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7035895383254E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591408214335E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367055709494E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425258753527E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5991732806562E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0670249166970E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116838423798E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900145897440E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520458155540E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090709956612E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0618223796290E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654743177706E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7305272335174E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556517479929E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0327566434960E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6983504437431E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5768558511593E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5456580951666E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2248777377114E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6216452075251E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3439656196080E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8368924867501E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2409939169764E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412723897038E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3046032949387E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1857347653469E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + DIC_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + OBCS_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + cg2d: Sum(rhs),rhsMax = 3.69444848326875E+01 9.90008392871430E-01 +(PID.TID 0000.0001) cg2d_init_res = 3.68743323783192E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 9.79870323355741E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6395963974077E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5149075975102E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1697916405877E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1240461071870E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3695017619383E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3086193662600E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0463193058968E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5291434462894E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4646053100495E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6204374780074E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2962069131972E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8554900694422E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.5300989732081E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4439077426228E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0624956418926E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5001242850584E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4149847831267E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4322672388720E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4499461582882E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4051527256648E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4223666545653E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8962364234641E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3228801417064E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2138692979141E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6350188422182E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601515138275E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3079951761183E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483937899956E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9648308320519E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1564384485617E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8401463317871E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1192386779785E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2037859491120E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4324698931511E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3838936492374E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1227744072676E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.1781715303659E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5803842697540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1323156655177E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5407006621995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5025485828519E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6103337854147E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9415454019831E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3523226784915E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7456042910420E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4584073989630E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0953896428465E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3706421403378E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3793712810127E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7908068591976E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6747217159198E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7978630185610E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6541751879117E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3301988778789E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6274233025701E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7669670741190E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0557709425580E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492493489E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292671158631E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624249250E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183804529477E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7796200915453E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2282832566760E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3694245914618E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0463193058968E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3591602201081E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4302813286498E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2616992218495E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9895068158706E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5735839766761E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0061641630121E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1119676645741E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3094016867339E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7255075847109E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0661216477553E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5818387472866E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4362274787566E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.6243232986502E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9269997787476E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6083496848742E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094332217485E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9671180827308E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1485395177205E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4420917312304E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4662705567779E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9613984222904E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4056187311808E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3243383367856E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8718683321519E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7044721835460E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591414669024E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366840972159E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425244894660E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5995026423712E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0662688202066E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116844083675E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900507045915E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520461389860E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090502330770E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0612156385816E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654777774314E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7260823943134E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556425437223E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0329136367624E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6954418309516E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5801936011785E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5838724074807E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2330587770700E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6256412055353E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3432484291057E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8372724940548E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2416015768654E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412540377670E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3043561864795E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1837744056211E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + DIC_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + OBCS_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + cg2d: Sum(rhs),rhsMax = 3.69076054258846E+01 9.90650485228004E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.70765733367530E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 7.96680707147545E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6742181670386E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5153341969223E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1679805939112E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1516973521395E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3717076841684E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3110535878860E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0386974364519E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5431447413553E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4657547896250E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6193726470229E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2970860601232E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8551055672804E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.4679719200852E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4539789984647E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0622004487125E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5082374388282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4119944512572E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4322316378049E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4439293150668E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4050122398176E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4240184811830E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8963115492864E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3231921950168E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2147400722502E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6322877540844E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601696154099E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3078734354698E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483938694908E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9649189319730E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1558406489509E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8437033081055E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1149715372721E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2010369969932E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4181406974067E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3964171164123E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1240644454956E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.2198017239571E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5703093779040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1360299218031E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5508820210295E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4994612783194E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6073135932287E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9356415130235E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3511097786534E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7406754651863E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4795968536339E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1796445154491E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3006748820173E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3856574012296E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7920214664715E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6711824738168E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7940635380680E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6973873149404E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3563820626241E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6308471162421E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7629354144137E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0627187721182E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492441976E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292678749744E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624187308E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183804115107E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0468429483687E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3657719718631E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3559853335222E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0386974364519E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3573274939063E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4303477917298E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2613850081140E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9943106646339E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5738219885776E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0017897715226E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1123668362120E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3085841444295E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7201666670541E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0712813486656E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5642367509297E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4349071476655E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.5728658906207E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9291473388672E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5996961494287E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094220842338E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9675947024092E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1505586306254E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4421739478906E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4664877946583E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9619408745425E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4077075322469E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3293641308943E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8720802248449E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7053557686883E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591421088083E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366626786061E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425230994738E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5998323303088E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0655128297286E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116849837933E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900885568449E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520464542823E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090302249086E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0605667446540E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654812115095E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7216676238750E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556333514037E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0330695423354E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6925234083256E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5834842094182E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.6229478014002E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2412143525986E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6296275912119E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3425710876208E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8376464887278E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2422333836580E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412356922377E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3041094943624E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1818374735142E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + DIC_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + OBCS_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + cg2d: Sum(rhs),rhsMax = 3.68604606178160E+01 9.91567272730777E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.48015177643454E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 7.89128155850116E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6999038601379E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5152481176502E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1661556972116E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1658103672773E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3736315171179E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3135016104574E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0310755670071E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5556985596957E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4669695779405E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6183624438474E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2980890775925E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8535428945471E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.3568261909357E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4651885756853E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0619049059375E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5109426798928E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4100108171508E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321960367378E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4438789134140E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4054669441006E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4256673239195E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8963725482635E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3235054855065E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2156151642625E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6295982957714E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601874127639E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3077503206939E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483939305470E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9650016219741E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1552488206347E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8472602844238E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1107043965658E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1982880448744E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4041733294347E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4094325131889E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1253544837236E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.2614319175482E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5602344860540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1398218194354E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5615036481995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4963739737868E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6042934010426E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9297376240638E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3499688898391E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7361175793077E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.5269630985716E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2854163869584E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2232714685373E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3919791609302E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7934072101716E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6688347205730E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7915431559092E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.7182684647676E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3830442426115E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6343104906184E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7585079446337E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0706927681087E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492390463E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292685036605E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624125366E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183803238886E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.5334040790048E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4788626310415E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3425460755825E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0310755670071E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3554947677044E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4304154443492E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2610707943785E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9991145133972E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5740600004792E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9974153800331E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1127673018781E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3077666021251E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7148257493973E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0764410495758E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5466347545728E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4336033808868E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.5214084825912E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9312948989868E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5910426139832E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094109467191E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9680727207563E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1525777435303E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4422561645508E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4667050325388E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9624842527631E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4097963333130E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3343899250031E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8722921175379E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7062402932228E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591427497582E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366413170450E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425216892794E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6001672101472E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0647601249863E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116855799363E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1901275596032E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520467504499E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090129322308E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0598793708928E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654846357374E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7172826647483E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556240677567E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0332270860231E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6895952488566E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5867373024591E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.6625129981406E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2493443777087E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6336037079404E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3419273801687E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8380040823710E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2429634331529E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412172564592E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3038612322839E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1799274470709E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + DIC_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + OBCS_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + cg2d: Sum(rhs),rhsMax = 3.68074301550226E+01 9.92642448786696E-01 +(PID.TID 0000.0001) cg2d_init_res = 9.67818023158134E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 5.61356601531656E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.7008106519615E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5146775749600E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1643169504890E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1656733459346E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3756765429368E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3159765754242E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0234536975622E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5695103794253E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4681330089115E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6174305717656E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2991340263216E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8511799774137E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.2437862859792E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4766780757673E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0616134270546E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5103833278965E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4087470086022E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321604356707E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4473953131717E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4063565223417E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4273136344714E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964216396834E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3238206533726E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2164965291096E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6269562665548E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602048807536E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3076225669671E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483939801185E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9650792897861E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1546602343412E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8508172607422E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1064372558594E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1955390927556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3905712423966E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4229375591307E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1268687546253E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3030621111393E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5501595942040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1436912347776E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5725630261794E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4932866692543E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6012732088566E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9238337351042E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3489000856457E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7319319925167E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.5613351677080E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.3925825217887E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.1327010612069E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3983704965208E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7948508850452E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6673389252497E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7899373756357E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.7154814810678E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4102991907660E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6378194905914E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7538312146136E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0780499724177E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492338949E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292692094140E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624063424E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183802341423E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.7499050927811E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5572833546516E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3291068176428E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0234536975622E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3536620415026E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4304842863392E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2607565806430E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0039183621605E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5742980123808E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9930409885435E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1131690601760E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3069490598207E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7094848317405E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0816007504861E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5290327582159E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4323161884926E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.4699510745618E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9334424591064E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5823890785376E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093998092044E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9685521370964E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1545968564351E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4423383812110E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4669222704193E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9630285564427E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4118851343791E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3394157191118E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8725040102309E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7071257566199E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591433911875E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366200089386E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425202505508E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6005098777939E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0639617380071E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116862007430E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1901665807237E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520470240973E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089991159361E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0591577780621E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654880588400E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7129272619617E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556146322958E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0333879851479E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6860531204279E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5899480803230E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7022530970579E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2574442496260E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6375671855123E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3410865020940E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8383443643592E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2438560948496E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411986640507E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3036101568632E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1779545872810E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + DIC_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + OBCS_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + cg2d: Sum(rhs),rhsMax = 3.67609180744336E+01 9.93541857101072E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.38807595302222E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 7.28273104908896E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6723536497608E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5132080757544E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1624643537434E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1540913193987E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3769577727386E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3184375173849E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0158318281174E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5844790515267E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4691681115239E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6165719148398E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3001700092231E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8481552609679E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1626110527408E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4875135541305E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0613049146976E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5090002988546E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4076607694846E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321248346036E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4515180270604E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4073681914374E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4289604917873E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964598657543E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3241374181710E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2173838587216E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6243773847626E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602221012721E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3074878196556E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940230520E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9651534080036E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1540770021512E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8543742370605E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1021701151530E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1927901406368E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3773378415024E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4369299028848E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1288872435689E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3446923047304E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5400847023540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1476380419357E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5840575540377E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4901993647218E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6058066760500E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9179298461445E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3479034351115E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7281199587619E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.6024459238591E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5145861281093E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0433509400697E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4047256191796E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7962821729570E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6660532942941E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7885572129922E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6936786355898E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4375168068006E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6412107367389E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7489606858037E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0834847859322E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492287436E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292700168765E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624001482E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801666247E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.7780077551823E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6198243314544E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3156675597032E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0158318281174E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3518293153007E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4305543175280E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2604423669076E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0087222109238E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5745360242824E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9886665970540E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1135721097065E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3061315175163E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7041439140836E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0867604513963E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5114307618590E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4310455804353E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.4184936665323E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9355900192261E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5737355430921E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093886716897E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9690329507524E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1566159693400E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4424205978711E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4671395082998E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9635737850715E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4139739354451E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3444415132205E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8727159029239E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7080121583499E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591440330977E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9365987519411E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425187837345E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6008603218245E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0631846020503E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116868452737E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902045792250E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520472771944E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089885797199E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0584050600072E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654914810244E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7086010634046E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556050397947E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0335525039907E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6826974911584E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5931118414272E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7420934168380E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2655097828300E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6415159444563E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3403480721239E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8386684828878E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2449211969712E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411799002302E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3033560541227E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1760435248651E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + DIC_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + OBCS_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + cg2d: Sum(rhs),rhsMax = 3.67312203274175E+01 9.93985653357504E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.78714566347305E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 7.07449220495416E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 3.8880000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6188295381627E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5105381190453E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1605979069747E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1355378384906E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3768604243972E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3207882409837E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0082099586725E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5988230765452E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4700264721465E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6157611435575E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3011535745598E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8444901322574E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1241750449551E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4967950695218E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0609380448029E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5079523697177E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4064975274828E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4320892335365E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4544864209949E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4082365022984E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4306104930293E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964871861477E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3244549100803E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2182751879220E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6218581067712E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602391437169E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3073456244647E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940599069E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9652251996430E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1534995544742E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8579312133789E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0979029744466E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1900411885181E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3644764804007E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4514071241070E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1309057325125E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3863224983215E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5300098105040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1516621127784E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5959845502938E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4871120601892E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6119570682446E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9120259571849E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3469790026933E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7246826249842E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.8149843865976E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.6399234303102E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.1249989698742E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4107961145615E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7976410420801E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6646765256782E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7870792113899E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6603607747074E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4633213657973E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6442186705882E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7439238151693E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0861943366491E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492235923E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292708323084E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574623939540E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801272312E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.8017408805823E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6840134834570E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3022283017635E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0082099586725E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3499965890989E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4306255377412E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2601281531721E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0135260596871E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5747740361840E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9842922055644E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1139764490681E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3053139752119E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.6988029964268E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0919201523066E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.4938287655021E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4297915665466E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.3670362585028E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9377375793457E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5650820076466E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093775341749E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9695151610455E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1586350822449E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4425028145313E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4673567461802E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9641199381389E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4160627365112E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3494673073292E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8729277956169E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7088994978830E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591446742776E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9365775433759E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425172950346E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6012168189549E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0624209550302E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116875111597E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902410680924E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520475137584E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089806390256E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0576251953819E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654948952691E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7043036957142E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0555953298210E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0337196960256E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6794322464362E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5962277598367E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7821378166312E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2735394737443E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6454493080859E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3396788665641E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8389779926146E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2461047396573E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411609961828E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3030995534209E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1741788079132E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + DIC_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + OBCS_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 + cg2d: Sum(rhs),rhsMax = 3.67227792917983E+01 9.93851880945147E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.01899465663214E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 6.96835802799745E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5495146813194E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5066528418583E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1587176101829E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1142533727477E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3752778367485E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3229128585363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0005880892277E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.6103312429381E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4706749526433E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6149725675726E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3020377539174E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8402110726863E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1197097927159E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5038229349660E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0604696742966E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5072411404962E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4052859622017E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4320536324694E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4558857007693E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4087891938884E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4322649951257E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8965031130308E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3247721883562E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2191682574255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6193985504276E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602560423703E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3071971867600E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940892459E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9652954654874E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1529285753811E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8614881896973E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0936358337402E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1872922363993E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3519904575408E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4663667354220E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1329242214561E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.4279526919127E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5199349186540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1557633169571E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.6083412558175E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4840247556567E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6181074604392E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9061220682252E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3461268482461E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7216210294159E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.8656915856445E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.7295590561753E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0832153044100E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4162827149630E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7988626020349E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6632425634825E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7855398107974E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6226167350384E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4860880054333E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6465658681107E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7387570898137E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0858610076746E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492184410E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292715264401E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574623877598E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801085560E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0081652361944E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7523576523517E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.2887890438239E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0005880892277E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3481638628970E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4306979468011E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2598139394366E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0183299084504E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5750120480855E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9799178140749E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1143820768569E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3044964329075E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.6934620787700E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0970798532168E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.4762267691452E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4285541565376E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.3155788504734E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9398851394653E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5564284722010E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093663966602E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9699987672955E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1606541951497E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4425850311915E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4675739840607E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9646670151341E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4181515375773E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3544931014379E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8731396883099E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7097877746890E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591453133227E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9365563814862E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425157930180E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6015769917700E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0616673265010E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116881965466E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902762049508E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520477380038E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089745012795E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0568179794797E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654982933499E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7000348252381E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0555855624018E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0338880807836E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6762191054504E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5992982256490E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.8225528728462E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2815338882793E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6493676981253E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3390690975716E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8392749043023E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2473302296527E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411420038195E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3028416473433E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1723518895981E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 46 VVELMASS Counter: 10 Parms: VVr MR + Vector Mate for VVELMASS Diagnostic # 45 UVELMASS exists + Computing Diagnostic # 45 UVELMASS Counter: 10 Parms: UUr MR + Vector Mate for UVELMASS Diagnostic # 46 VVELMASS exists + Computing Diagnostic # 26 THETA Counter: 10 Parms: SMR MR + Computing Diagnostic # 27 SALT Counter: 10 Parms: SMR MR + Computing Diagnostic # 204 GM_PsiX Counter: 10 Parms: UU LR + Vector Mate for GM_PsiX Diagnostic # 205 GM_PsiY exists + Computing Diagnostic # 205 GM_PsiY Counter: 10 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX exists + Post-Processing Diag # 48 PhiVEL Parms: SMR P MR + from diag: UVELMASS (# 45) Cnt= 10 and diag: VVELMASS (# 46) Cnt= 10 + diag_cg2d (it= 10) a2dNorm,x2dNorm= 4.382025E-03 , 2.580578E+03 ; Criter= 1.00E-13 + diag_cg2d : k= 1 , it= 118 119 ; ini,min,last_Res= 4.6401048E+00 1.3836641E-13 8.3280875E-14 + diag_calc_psivel: bi,bj= 1 1 : npass,nPts= 1 154 + diag_calc_psivel: is,js= 2 1 ; ix,jx= 15 1 ; iy,jy= 2 11 + diag_calc_psivel: bi,bj= 2 1 : npass,nPts= 1 165 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 15 1 ; iy,jy= 1 11 + diag_calc_psivel: bi,bj= 3 1 : npass,nPts= 1 154 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 14 1 ; iy,jy= 1 11 + diag_calc_psivel: bi,bj= 1 2 : npass,nPts= 1 140 + diag_calc_psivel: is,js= 2 1 ; ix,jx= 15 1 ; iy,jy= 2 10 + diag_calc_psivel: bi,bj= 2 2 : npass,nPts= 1 150 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 15 1 ; iy,jy= 1 10 + diag_calc_psivel: bi,bj= 3 2 : npass,nPts= 1 140 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 14 1 ; iy,jy= 1 10 + diag_cg2d : k= 2 , it= 117 118 ; ini,min,last_Res= 3.4623535E+00 1.3351191E-13 7.9137454E-14 + diag_cg2d : k= 3 , it= 115 116 ; ini,min,last_Res= 1.9802671E+00 1.2528812E-13 7.5702565E-14 + diag_cg2d : k= 4 , it= 113 114 ; ini,min,last_Res= 2.1004367E+00 1.3088947E-13 6.7517396E-14 + diag_cg2d : k= 5 , it= 114 115 ; ini,min,last_Res= 2.7419337E+00 1.1731228E-13 5.9478770E-14 + diag_cg2d : k= 6 , it= 107 108 ; ini,min,last_Res= 1.9661365E+00 1.4552646E-13 8.7440467E-14 + diag_cg2d : k= 7 , it= 108 109 ; ini,min,last_Res= 2.4720610E+00 1.3433339E-13 6.6274345E-14 + diag_cg2d : k= 8 , it= 106 107 ; ini,min,last_Res= 2.0341515E+00 1.0865842E-13 6.1845582E-14 + diag_cg2d : k= 9 , it= 106 107 ; ini,min,last_Res= 2.0921677E+00 1.5951575E-13 8.6497473E-14 + diag_cg2d : k= 10 , it= 106 107 ; ini,min,last_Res= 1.9862873E+00 1.5872005E-13 8.1157636E-14 + diag_cg2d : k= 11 , it= 107 108 ; ini,min,last_Res= 2.2278394E+00 1.1529770E-13 6.8774709E-14 + diag_cg2d : k= 12 , it= 113 114 ; ini,min,last_Res= 2.2733609E+00 1.7056513E-13 9.7881950E-14 + diag_cg2d : k= 13 , it= 93 94 ; ini,min,last_Res= 2.3369813E+00 1.1754064E-13 5.0199351E-14 + diag_cg2d : k= 14 , it= 76 77 ; ini,min,last_Res= 1.9509990E+00 1.7733845E-13 9.3994883E-14 + diag_cg2d : k= 15 , it= 46 47 ; ini,min,last_Res= 1.6967056E+00 1.2685517E-13 6.7570091E-14 + get Post-Proc. Diag # 49 PsiVEL from previous computation of Diag # 48 + Computing Diagnostic # 78 CONVADJ Counter: 10 Parms: SMR LR + Compute Stats, Diag. # 23 ETAN vol( 0 ): 3.508E+14 Parms: SM M1 + Compute Stats, Diag. # 25 DETADT2 vol( 0 ): 3.508E+14 Parms: SM M1 + Compute Stats, Diag. # 26 THETA vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 27 SALT vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 78 CONVADJ vol( 0 ): 1.242E+18 Parms: SMR LR + Compute Stats, Diag. # 30 UVEL vol( 0 ): 1.242E+18 Parms: UUR MR + Compute Stats, Diag. # 31 VVEL vol( 0 ): 1.225E+18 Parms: VVR MR + Compute Stats, Diag. # 32 WVEL vol( 0 ): 1.242E+18 Parms: WM LR + Compute Stats, Diag. # 204 GM_PsiX vol( 0 ): 1.211E+18 Parms: UU LR + Compute Stats, Diag. # 205 GM_PsiY vol( 0 ): 1.200E+18 Parms: VV LR + Compute Stats, Diag. # 213 TRAC01 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 227 TRAC02 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 241 TRAC03 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 255 TRAC04 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 269 TRAC05 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 291 DIC3DSIT vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 292 OMEGAC vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 293 DIC3DPH vol( 0 ): 1.277E+18 Parms: SM P MR + Compute Stats, Diag. # 294 DIC3DPCO vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 295 DIC3DCO3 vol( 0 ): 1.277E+18 Parms: SMRP MR +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 10 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.9984199802856892 +(PID.TID 0000.0001) System time: 3.1985998153686523E-002 +(PID.TID 0000.0001) Wall clock time: 6.0408639907836914 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 6.0029000742360950E-002 +(PID.TID 0000.0001) System time: 3.9009999018162489E-003 +(PID.TID 0000.0001) Wall clock time: 6.4080953598022461E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.9383488260209560 +(PID.TID 0000.0001) System time: 2.8083998244255781E-002 +(PID.TID 0000.0001) Wall clock time: 5.9767510890960693 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 9.3758001923561096E-002 +(PID.TID 0000.0001) System time: 1.2119000311940908E-002 +(PID.TID 0000.0001) Wall clock time: 0.10602998733520508 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 5.8445631563663483 +(PID.TID 0000.0001) System time: 1.5962997451424599E-002 +(PID.TID 0000.0001) Wall clock time: 5.8706951141357422 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 5.8444621115922928 +(PID.TID 0000.0001) System time: 1.5962997451424599E-002 +(PID.TID 0000.0001) Wall clock time: 5.8706066608428955 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 5.8443004488945007 +(PID.TID 0000.0001) System time: 1.5961999073624611E-002 +(PID.TID 0000.0001) Wall clock time: 5.8704288005828857 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.8513185977935791E-002 +(PID.TID 0000.0001) System time: 1.0002404451370239E-006 +(PID.TID 0000.0001) Wall clock time: 9.8537921905517578E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9291132688522339E-002 +(PID.TID 0000.0001) System time: 4.0800124406814575E-004 +(PID.TID 0000.0001) Wall clock time: 2.2109746932983398E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.9969682693481445E-003 +(PID.TID 0000.0001) System time: 1.0000541806221008E-005 +(PID.TID 0000.0001) Wall clock time: 4.0121078491210938E-003 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.5651874542236328E-005 +(PID.TID 0000.0001) System time: 1.0002404451370239E-006 +(PID.TID 0000.0001) Wall clock time: 8.4638595581054688E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.35851092636585236 +(PID.TID 0000.0001) System time: 9.8999589681625366E-005 +(PID.TID 0000.0001) Wall clock time: 0.35879850387573242 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.0632503032684326 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0687279701232910 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.57211667299270630 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.57322597503662109 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.22901052236557007 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.22904920578002930 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7062237262725830E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.7070045471191406E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.5544395446777344E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.5560369491577148E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.0420246124267578E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.9883804321289062E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.75452995300292969 +(PID.TID 0000.0001) System time: 3.5480000078678131E-003 +(PID.TID 0000.0001) Wall clock time: 0.75899457931518555 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.5092632770538330E-002 +(PID.TID 0000.0001) System time: 7.4001029133796692E-005 +(PID.TID 0000.0001) Wall clock time: 5.5184125900268555E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15797179937362671 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.15812349319458008 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.45955932140350342 +(PID.TID 0000.0001) System time: 1.1824999004602432E-002 +(PID.TID 0000.0001) Wall clock time: 0.47145223617553711 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.6903572082519531E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.8930130004882812E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1693358421325684E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1698722839355469E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 21532 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 21532 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/so_box_biogeo/results/output.caSat3.txt b/verification/so_box_biogeo/results/output.caSat3.txt new file mode 100644 index 0000000000..f7e6ec2b57 --- /dev/null +++ b/verification/so_box_biogeo/results/output.caSat3.txt @@ -0,0 +1,4808 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68m +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Jan 12 12:38:05 EST 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx :: No. threads per process in X +(PID.TID 0000.0001) ># nTy :: No. threads per process in Y +(PID.TID 0000.0001) ># debugMode :: print debug msg (sequence of S/R calls) +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) >#debugMode=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the namelist terminator (as shown here). +(PID.TID 0000.0001) ># Other systems use a / character. +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 3 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 14 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 10 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 42 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 20 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 6 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 3, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000005 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000006, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000006 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000005, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscAh=3.E5, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) >#diffKzT=3.E-5, +(PID.TID 0000.0001) >#diffKzS=3.E-5, +(PID.TID 0000.0001) > diffKrBL79surf= 3.E-5, +(PID.TID 0000.0001) > diffKrBL79deep= 13.E-5, +(PID.TID 0000.0001) > diffKrBL79Ho = -2000., +(PID.TID 0000.0001) > diffKrBL79scl = 150., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) >#implicitViscosity=.TRUE., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=10., +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) >#useCDscheme=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMindz=50., +(PID.TID 0000.0001) >#- I/O params: +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) >#nTimeSteps = 1440, +(PID.TID 0000.0001) > nTimeSteps = 10, +(PID.TID 0000.0001) >#tauCD = 321428., +(PID.TID 0000.0001) > deltaTMom = 900., +(PID.TID 0000.0001) > deltaTtracer = 43200., +(PID.TID 0000.0001) > deltaTFreeSurf= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 311040000., +(PID.TID 0000.0001) > chkptFreq = 31104000., +(PID.TID 0000.0001) > dumpFreq = 2592000., +(PID.TID 0000.0001) > monitorFreq= 864000., +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) > tauSaltClimRelax = 7776000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod = 2592000., +(PID.TID 0000.0001) > externForcingCycle = 31104000., +(PID.TID 0000.0001) > monitorFreq= 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delZ= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > xgOrigin= 236.25, +(PID.TID 0000.0001) > ygOrigin= -81.5625, +(PID.TID 0000.0001) > delX=42*2.8125, +(PID.TID 0000.0001) > delY=20*2.8125, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > checkIniTemp = .FALSE., +(PID.TID 0000.0001) > bathyFile = 'bathy_box.bin', +(PID.TID 0000.0001) > pSurfInitFile = 'Eta_ini.bin', +(PID.TID 0000.0001) > uVelInitFile = 'U_ini.bin', +(PID.TID 0000.0001) > vVelInitFile = 'V_ini.bin', +(PID.TID 0000.0001) > hydrogThetaFile='T_ini.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'S_ini.bin', +(PID.TID 0000.0001) > zonalWindFile = 'tren_taux_box.bin', +(PID.TID 0000.0001) > meridWindFile = 'tren_tauy_box.bin', +(PID.TID 0000.0001) > thetaClimFile = 'lev_monthly_temp_box.bin', +(PID.TID 0000.0001) > saltClimFile = 'lev_monthly_salt_box.bin', +(PID.TID 0000.0001) > surfQnetFile = 'shi_qnet_box.bin', +(PID.TID 0000.0001) > EmPmRFile = 'shi_empmr_year_box.bin', +(PID.TID 0000.0001) > the_run_name = 'OBC + Biogeo S.Ocean Box', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > usePTRACERS=.TRUE., +(PID.TID 0000.0001) > useGCHEM =.TRUE., +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > useOBCS =.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/obcs compiled and used ( useOBCS = T ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + pkg/gchem compiled and used ( useGCHEM = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled but not used ( useCDscheme = F ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: opening data.obcs +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.obcs +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.obcs" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Open-boundaries +(PID.TID 0000.0001) > &OBCS_PARM01 +(PID.TID 0000.0001) ># This flag turns off checking and fixing problematic topography across +(PID.TID 0000.0001) ># open boundaries. +(PID.TID 0000.0001) > OBCSfixTopo=.FALSE., +(PID.TID 0000.0001) > OB_Iwest = 20*1, +(PID.TID 0000.0001) > OB_Ieast = 20*-1, +(PID.TID 0000.0001) > OB_Jnorth= 42*-1, +(PID.TID 0000.0001) > OBWconnectFile = 'connect_obW.bin', +(PID.TID 0000.0001) > OBEconnectFile = 'connect_obE.bin', +(PID.TID 0000.0001) > OBNconnectFile = 'connect_obN.bin', +(PID.TID 0000.0001) ># OBWconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) ># OBEconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) ># OBNconnectFile = 'zeros_obX.bin', +(PID.TID 0000.0001) > useOBCSprescribe = .TRUE., +(PID.TID 0000.0001) > OBCS_u1_adv_T = 1, +(PID.TID 0000.0001) > OBCS_u1_adv_S = 1, +(PID.TID 0000.0001) > OBCS_u1_adv_Tr(1:5) = 5*1, +(PID.TID 0000.0001) > OBWuFile = 'U_obW.bin', +(PID.TID 0000.0001) > OBEuFile = 'U_obE.bin', +(PID.TID 0000.0001) > OBNuFile = 'U_obN.bin', +(PID.TID 0000.0001) > OBWvFile = 'V_obW.bin', +(PID.TID 0000.0001) > OBEvFile = 'V_obE.bin', +(PID.TID 0000.0001) > OBNvFile = 'V_obN.bin', +(PID.TID 0000.0001) > OBWtFile = 'T_obW.bin', +(PID.TID 0000.0001) > OBEtFile = 'T_obE.bin', +(PID.TID 0000.0001) > OBNtFile = 'T_obN.bin', +(PID.TID 0000.0001) > OBWsFile = 'S_obW.bin', +(PID.TID 0000.0001) > OBEsFile = 'S_obE.bin', +(PID.TID 0000.0001) > OBNsFile = 'S_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(1) = 'Trac01_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(1) = 'Trac01_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(1) = 'Trac01_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(2) = 'Trac02_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(2) = 'Trac02_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(2) = 'Trac02_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(3) = 'Trac03_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(3) = 'Trac03_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(3) = 'Trac03_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(4) = 'Trac04_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(4) = 'Trac04_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(4) = 'Trac04_obN.bin', +(PID.TID 0000.0001) > OBWptrFile(5) = 'Trac05_obW.bin', +(PID.TID 0000.0001) > OBEptrFile(5) = 'Trac05_obE.bin', +(PID.TID 0000.0001) > OBNptrFile(5) = 'Trac05_obN.bin', +(PID.TID 0000.0001) >#OBCS_monitorFreq= 1200., +(PID.TID 0000.0001) > OBCS_monSelect = 1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Orlanski parameters +(PID.TID 0000.0001) > &OBCS_PARM02 +(PID.TID 0000.0001) >#Cmax=0.45, +(PID.TID 0000.0001) >#cVelTimeScale=1000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: finished reading data.obcs +(PID.TID 0000.0001) OB_indexUnset = /* unset OB index value (i.e. no OB) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Northern OB global indices : OB_Jnorth = +(PID.TID 0000.0001) 42 @ 20 /* I = 1: 42 */ +(PID.TID 0000.0001) Southern OB global indices : OB_Jsouth = +(PID.TID 0000.0001) 42 @ 0 /* I = 1: 42 */ +(PID.TID 0000.0001) Eastern OB global indices : OB_Ieast = +(PID.TID 0000.0001) 20 @ 42 /* J = 1: 20 */ +(PID.TID 0000.0001) Western OB global indices : OB_Iwest = +(PID.TID 0000.0001) 20 @ 1 /* J = 1: 20 */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># from MOM +(PID.TID 0000.0001) ># GM_background_K: isopycnal diffusion coefficien +(PID.TID 0000.0001) ># GM_maxSlope: max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit: transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd: half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># real background diff: horizontal diffusion +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ifdef GM_VISBECK_VARIABLE_K, include following in GM_PARM01 +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) ># GM_Visbeck_length = 2.e+5, +(PID.TID 0000.0001) ># GM_Visbeck_depth = 1.e+3, +(PID.TID 0000.0001) ># GM_Visbeck_maxval_K= 2.5e+3, +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_AdvForm = .TRUE., +(PID.TID 0000.0001) > GM_background_K = 1.e+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'gkw91', +(PID.TID 0000.0001) > GM_maxSlope = 1.e-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 100., +(PID.TID 0000.0001) > GM_Scrit = 4.e-3, +(PID.TID 0000.0001) > GM_Sd = 1.e-3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=5, +(PID.TID 0000.0001) > PTRACERS_Iter0= 0, +(PID.TID 0000.0001) ># tracer 1 - dic +(PID.TID 0000.0001) > PTRACERS_names(1)='DIC', +(PID.TID 0000.0001) > PTRACERS_long_names(1)='Dissolved Inorganic Carbon (DIC) [mol C/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(1)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(1)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(1)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(1)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(1)='Trac01_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,1) = 2.0282, 2.0609, 2.1206, 2.1581, +(PID.TID 0000.0001) > 2.1904, 2.2188, 2.2474, 2.2699, +(PID.TID 0000.0001) > 2.2792, 2.2814, 2.2815, 2.2806, +(PID.TID 0000.0001) > 2.2800, 2.2760, 2.2758, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(1)= 0., +(PID.TID 0000.0001) ># tracer 2 - alk +(PID.TID 0000.0001) > PTRACERS_names(2)='Alk', +(PID.TID 0000.0001) > PTRACERS_long_names(2)='Alkalinity (Alk) [mol eq/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(2)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(2)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(2)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(2)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(2)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(2)='Trac02_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,2) = 2.3086, 2.3149, 2.3164, 2.3112, +(PID.TID 0000.0001) > 2.3098, 2.3160, 2.3313, 2.3517, +(PID.TID 0000.0001) > 2.3667, 2.3761, 2.3832, 2.3862, +(PID.TID 0000.0001) > 2.3881, 2.3863, 2.3867, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(2)= 0., +(PID.TID 0000.0001) ># tracer 3 - po4 +(PID.TID 0000.0001) > PTRACERS_names(3)='PO4', +(PID.TID 0000.0001) > PTRACERS_long_names(3)='Phosphate (PO4) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(3)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(3)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(3)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(3)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(3)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(3)='Trac03_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,3) = 0.5438E-3, 0.7821E-3, 1.1335E-3, 1.4913E-3, +(PID.TID 0000.0001) > 1.8606E-3, 2.1986E-3, 2.3966E-3, 2.4187E-3, +(PID.TID 0000.0001) > 2.4046E-3, 2.3291E-3, 2.2922E-3, 2.2886E-3, +(PID.TID 0000.0001) > 2.2608E-3, 2.2356E-3, 2.2296E-3, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(3)= 0., +(PID.TID 0000.0001) ># tracer 4 - dop +(PID.TID 0000.0001) > PTRACERS_names(4)='DOP', +(PID.TID 0000.0001) > PTRACERS_long_names(4)='Dissolved Organic Phosphorus (DOP) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(4)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(4)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(4)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(4)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(4)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(4)='Trac04_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,4) = 15*0., +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(4)= 0., +(PID.TID 0000.0001) ># tracer 5 - o2 +(PID.TID 0000.0001) > PTRACERS_names(5)='O2', +(PID.TID 0000.0001) > PTRACERS_long_names(5)='Dissolved Oxygen (O2) [mol O/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(5)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(5)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(5)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(5)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(5)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(5)='Trac05_ini.bin', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,5) = 0.2457, 0.2336, 0.1975, 0.1729, +(PID.TID 0000.0001) > 0.1591, 0.1503, 0.1424, 0.1445, +(PID.TID 0000.0001) > 0.1549, 0.1661, 0.1774, 0.1863, +(PID.TID 0000.0001) > 0.1925, 0.2021, 0.2051, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(5)= 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) GCHEM_READPARMS: opening data.gchem +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gchem +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gchem" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &GCHEM_PARM01 +(PID.TID 0000.0001) > useDIC=.TRUE., +(PID.TID 0000.0001) > nsubtime=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GCHEM_READPARMS: finished reading data.gchem +(PID.TID 0000.0001) DIC_READPARMS: opening data.dic +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.dic +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.dic" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DIC parameters +(PID.TID 0000.0001) > &ABIOTIC_PARMS +(PID.TID 0000.0001) > useCalciteSaturation= .TRUE., +(PID.TID 0000.0001) ># calcOmegaCalciteFreq= 86400., +(PID.TID 0000.0001) > selectBTconst=1, +(PID.TID 0000.0001) > selectFTconst=1, +(PID.TID 0000.0001) > selectHFconst=1, +(PID.TID 0000.0001) > selectK1K2const=6, +(PID.TID 0000.0001) ># Munhoven "GENERAL" solver: =1 ; Munhoven "SEC" solver: =2 ; Munhoven "FAST" solver: =3 +(PID.TID 0000.0001) > selectPHsolver=3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BIOTIC_PARMS +(PID.TID 0000.0001) > alphaUniform = 0.97e-10, +(PID.TID 0000.0001) > rainRatioUniform = 5.e-2, +(PID.TID 0000.0001) > KRemin = 0.95, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &DIC_FORCING +(PID.TID 0000.0001) > DIC_iceFile='fice_box.bin', +(PID.TID 0000.0001) > DIC_windFile='tren_speed_box.bin', +(PID.TID 0000.0001) > DIC_silicaFile='sillev1_box.bin', +(PID.TID 0000.0001) > DIC_deepSilicaFile='silicate_3D_12m_box.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIC_READPARMS: finished reading data.dic +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC package parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) Using Munhoven (2013) Solvesaphe for pH/pCO2 +(PID.TID 0000.0001) Using Munhoven (2013) Solvesaphe carbon coefficients +(PID.TID 0000.0001) Using Waters et al. (2014) K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity +(PID.TID 0000.0001) permil = /* Ref. density to convert mol/m3 to mol/kg */ +(PID.TID 0000.0001) 9.760858955588092E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Pa2Atm = /* Atmosph. pressure conversion coeff (to Atm) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zca = /* Scale depth for CaCO3 remineralization (m) */ +(PID.TID 0000.0001) 3.500000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCalciteSaturation = /* Flag for omegaC calculation on/off */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcOmegaCalciteFreq = /* Frequency of calcite saturation calculation (s) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KierRateK = /* Rate constant for calcite dissolution (%/day) */ +(PID.TID 0000.0001) 7.177000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KierRateExp = /* Rate exponent for calcite dissolution */ +(PID.TID 0000.0001) 4.540000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) WsinkPIC = /* Sinking speed of particulate inorganic carbon (m/s) */ +(PID.TID 0000.0001) 1.157407407407407E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCalciteBottomRemin = /* Remineralize CO3 bottom flux: =0: here, =1: top layer */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DOPfraction = /* Fraction of new production going to DOP */ +(PID.TID 0000.0001) 6.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KDOPRemin = /* DOP remineralization rate (1/s) */ +(PID.TID 0000.0001) 6.430041152263375E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KRemin = /* Remin power law coeff. */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zcrit = /* Minimum depth for biological activity (m) */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) O2crit = /* Critical oxygen level (mol/m3) */ +(PID.TID 0000.0001) 4.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_OP = /* Stochiometric ratio R_OP */ +(PID.TID 0000.0001) -1.700000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_CP = /* Stochiometric ratio R_CP */ +(PID.TID 0000.0001) 1.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_NP = /* Stochiometric ratio R_NP */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_FeP = /* Stochiometric ratio R_FeP */ +(PID.TID 0000.0001) 4.680000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) parfrac = /* Fraction of Qsw that is PAR */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) k0 = /* Light attentuation coefficient, water (1/m) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kchl = /* Light attentuation coefficient, chlorophyll (m2/mg) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) lit0 = /* Half saturation light constant (W/m2) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPO4 = /* Half saturation phosphate constant (mol/m3) */ +(PID.TID 0000.0001) 5.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KFE = /* Half saturation fe constant (mol/m3) */ +(PID.TID 0000.0001) 1.200000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alpfe = /* Solubility of aeolian fe */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fesedflux_pcm = /* Sediment Fe flux = fesedflux_pcm*pflux+FeIntSec */ +(PID.TID 0000.0001) 7.208000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) FeIntSec = /* Sediment Fe flux = fesedflux_pcm * pflux + FeIntSec */ +(PID.TID 0000.0001) 5.787037037037037E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freefemax = /* Max solubility of free iron (mol/m3) */ +(PID.TID 0000.0001) 3.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KScav = /* Iron scavenging rate */ +(PID.TID 0000.0001) 6.108539094650206E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_stab = /* Ligand-free iron stability constant (m3/mol) */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_tot = /* Total free ligand (mol/m3) */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alphaUniform = /* Timescale for biological activity */ +(PID.TID 0000.0001) 9.700000000000000E-11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rainRatioUniform= /* Inorganic/organic carbon rain ratio */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) QSW_underice = /* Flag for Qsw under Sea-Ice (i.e. SI fract included) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_windFile = /* File name of wind speeds */ +(PID.TID 0000.0001) 'tren_speed_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_atmospFile= /* File name of atmospheric pressure*/ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_silicaFile= /* File name of surface silica */ +(PID.TID 0000.0001) 'sillev1_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_deepSilicaFile= /* File name of 3d silica field */ +(PID.TID 0000.0001) 'silicate_3D_12m_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_iceFile = /* File name of seaice fraction */ +(PID.TID 0000.0001) 'fice_box.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_parFile= /* File name of photosynthetically available radiation */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_chlaFile= /* File name of chlorophyll climatology */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_ironFile = /* File name of aeolian iron flux */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingPeriod = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingCycle = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int1 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int2 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int3 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int4 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_pCO2 = /* Atmospheric pCO2 to be read in data.dic */ +(PID.TID 0000.0001) 2.780000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Start registering GCHEM tracers +(PID.TID 0000.0001) DIC_TR_REGISTER: number of DIC tracers= 5 +(PID.TID 0000.0001) DIC_TR_REGISTER: starting at pTrc num= 1 +(PID.TID 0000.0001) DIC_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diagCG_maxIters = 200, +(PID.TID 0000.0001) ># diagCG_resTarget = 1.E-10, +(PID.TID 0000.0001) ># diagCG_pcOffDFac = 0.96, +(PID.TID 0000.0001) ># diagCG_prtResFrq = 20, +(PID.TID 0000.0001) > xPsi0 = 300., +(PID.TID 0000.0001) > yPsi0 = -26., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > fields(1:10,1) = 'ETAN ','ETANSQ ','DETADT2 ','PHIBOT ','PHIBOTSQ', +(PID.TID 0000.0001) > 'DICTFLX ','DICOFLX ','DICCFLX ','DICPCO2 ','DICPHAV ', +(PID.TID 0000.0001) > levels(1,1) = 1., +(PID.TID 0000.0001) > fileName(1) = 'surfDiag', +(PID.TID 0000.0001) > frequency(1) = 2592000., +(PID.TID 0000.0001) ># frequency(1) = 432000., +(PID.TID 0000.0001) > fields(1:9,2) = 'VVELMASS','UVELMASS','THETA ','SALT ', +(PID.TID 0000.0001) > 'GM_PsiX ','GM_PsiY ','PhiVEL ','PsiVEL ', +(PID.TID 0000.0001) > 'CONVADJ ', +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 2592000., +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > fields(1:9,3) = 'DICBIOA ','DICCARB ', +(PID.TID 0000.0001) > 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', +(PID.TID 0000.0001) > 'ADVxTr05','DFrITr05', +(PID.TID 0000.0001) ># fileName(3) = 'dicDiag', +(PID.TID 0000.0001) > frequency(3) = 2592000., +(PID.TID 0000.0001) > fields(1:8,4) = 'ADVx_TH ','ADVy_TH ','ADVr_TH ', +(PID.TID 0000.0001) > 'DFxE_TH ','DFyE_TH ','DFrE_TH ','DFrI_TH ', +(PID.TID 0000.0001) > 'ADVx_SLT', +(PID.TID 0000.0001) ># fileName(4) = 'flxDiag', +(PID.TID 0000.0001) > frequency(4) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) >#--- +(PID.TID 0000.0001) > stat_fields(1:20,1) = 'ETAN ','DETADT2 ','THETA ','SALT ','CONVADJ ', +(PID.TID 0000.0001) > 'UVEL ','VVEL ','WVEL ','GM_PsiX ','GM_PsiY ', +(PID.TID 0000.0001) > 'TRAC01 ','TRAC02 ','TRAC03 ','TRAC04 ','TRAC05 ', +(PID.TID 0000.0001) > 'DIC3DSIT','OMEGAC ','DIC3DPH ','DIC3DPCO','DIC3DCO3', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = 432000., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: surfDiag +(PID.TID 0000.0001) Output Frequency: 2592000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 2592000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) Fields: ETAN ETANSQ DETADT2 PHIBOT PHIBOTSQ DICTFLX DICOFLX DICCFLX DICPCO2 DICPHAV +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: VVELMASS UVELMASS THETA SALT GM_PsiX GM_PsiY PhiVEL PsiVEL CONVADJ +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: ETAN DETADT2 THETA SALT CONVADJ UVEL VVEL WVEL GM_PsiX GM_PsiY +(PID.TID 0000.0001) Fields: TRAC01 TRAC02 TRAC03 TRAC04 TRAC05 DIC3DSIT OMEGAC DIC3DPH DIC3DPCO DIC3DCO3 +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5296875000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.3765625000000E+02 +(PID.TID 0000.0001) %MON XC_mean = 2.9531250000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 3.4090083441706E+01 +(PID.TID 0000.0001) %MON XG_max = 3.5156250000000E+02 +(PID.TID 0000.0001) %MON XG_min = 2.3625000000000E+02 +(PID.TID 0000.0001) %MON XG_mean = 2.9390625000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 3.4090083441706E+01 +(PID.TID 0000.0001) %MON DXC_max = 2.7929930890376E+05 +(PID.TID 0000.0001) %MON DXC_min = 5.3457499214614E+04 +(PID.TID 0000.0001) %MON DXC_mean = 1.7889438140789E+05 +(PID.TID 0000.0001) %MON DXC_sd = 6.9711490203249E+04 +(PID.TID 0000.0001) %MON DXF_max = 2.7929930890376E+05 +(PID.TID 0000.0001) %MON DXF_min = 5.3457499214614E+04 +(PID.TID 0000.0001) %MON DXF_mean = 1.7889438140789E+05 +(PID.TID 0000.0001) %MON DXF_sd = 6.9711490203249E+04 +(PID.TID 0000.0001) %MON DXG_max = 2.7576500024724E+05 +(PID.TID 0000.0001) %MON DXG_min = 4.5880659601012E+04 +(PID.TID 0000.0001) %MON DXG_mean = 1.7292088380237E+05 +(PID.TID 0000.0001) %MON DXG_sd = 7.0928664230424E+04 +(PID.TID 0000.0001) %MON DXV_max = 2.7576500024724E+05 +(PID.TID 0000.0001) %MON DXV_min = 4.5880659601012E+04 +(PID.TID 0000.0001) %MON DXV_mean = 1.7292088380237E+05 +(PID.TID 0000.0001) %MON DXV_sd = 7.0928664230424E+04 +(PID.TID 0000.0001) %MON YC_max = -2.6718750000000E+01 +(PID.TID 0000.0001) %MON YC_min = -8.0156250000000E+01 +(PID.TID 0000.0001) %MON YC_mean = -5.3437500000000E+01 +(PID.TID 0000.0001) %MON YC_sd = 1.6217666148756E+01 +(PID.TID 0000.0001) %MON YG_max = -2.8125000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.1562500000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -5.4843750000000E+01 +(PID.TID 0000.0001) %MON YG_sd = 1.6217666148756E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYF_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON DYU_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_mean = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_sd = 6.9849193096161E-10 +(PID.TID 0000.0001) %MON RA_max = 8.7324395636096E+10 +(PID.TID 0000.0001) %MON RA_min = 1.6713767855193E+10 +(PID.TID 0000.0001) %MON RA_mean = 5.5932267789893E+10 +(PID.TID 0000.0001) %MON RA_sd = 2.1795663493704E+10 +(PID.TID 0000.0001) %MON RAW_max = 8.7324395636096E+10 +(PID.TID 0000.0001) %MON RAW_min = 1.6713767855193E+10 +(PID.TID 0000.0001) %MON RAW_mean = 5.5932267789893E+10 +(PID.TID 0000.0001) %MON RAW_sd = 2.1795663493704E+10 +(PID.TID 0000.0001) %MON RAS_max = 8.6219375474631E+10 +(PID.TID 0000.0001) %MON RAS_min = 1.4344829161122E+10 +(PID.TID 0000.0001) %MON RAS_mean = 5.4064622394411E+10 +(PID.TID 0000.0001) %MON RAS_sd = 2.2176219345146E+10 +(PID.TID 0000.0001) %MON RAZ_max = 8.6219375474631E+10 +(PID.TID 0000.0001) %MON RAZ_min = 1.4344829161122E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 5.4064622394411E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 2.2176219345146E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: bathy_box.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -5.200000000000000E+03 +(PID.TID 0000.0001) // CMAX = -5.000000000000000E+01 +(PID.TID 0000.0001) // CINT = 1.907407407407407E+02 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) K = 1 +(PID.TID 0000.0001) // I=7 I=17 I=21 I=31 I=35 I=45 +(PID.TID 0000.0001) // |--J--|210123456|890123456|234567890|234567890|678901234|678901234| +(PID.TID 0000.0001) // 23 ...............................+yyyyyyyyyyyyyyxxxyy......... +(PID.TID 0000.0001) // 22 ...............................++zz..zyxz..zyxy............. +(PID.TID 0000.0001) // 21 ............................................................ +(PID.TID 0000.0001) // 20 kfeijklmkkjiiihihgffhihgffff........zole..zoledcaabdfhkfeijk +(PID.TID 0000.0001) // 19 lhehijlmkjihhhihggfeihggfeev........ohgf..ohgfqihdddfilhehij +(PID.TID 0000.0001) // 18 kfehhikmjjihhhihggfeihggfef+.......shgff.shgfflgiddfhkkfehhi +(PID.TID 0000.0001) // 17 jggfhhjmjiiiiihgggffhgggfff.......xfbbbdxfbbbdddffggjkjggfhh +(PID.TID 0000.0001) // 16 ljjeegjmjgfgijihggffihggffp......zfa-aaafa-aaaddddfgklljjeeg +(PID.TID 0000.0001) // 15 jhgeehkmihfefijihgggjihgggy......h------------abddfhkljhgeeh +(PID.TID 0000.0001) // 14 jggfghkljigeeefgikiifgikii+...++p---aaa---aaa--adddgjkjggfgh +(PID.TID 0000.0001) // 13 llifgjlljhgeeeeffhjkeffhjk....++j---------------addfgkllifgj +(PID.TID 0000.0001) // 12 jllhiklkihfedddddefidddefi....+zsqmb-afamb-afaaabddffhjllhik +(PID.TID 0000.0001) // 11 hjnjmljhhfedddddddfgddddfgj..+zzsqpnnqjipnnqjigifffdefhjnjml +(PID.TID 0000.0001) // 10 fijmljhhgeddddaadddfaadddfjlllkjihggjkmwggjkmwvjddfddefijmlj +(PID.TID 0000.0001) // 9 ffhggdddddccdddddddddddddddfihggggggkkjkggkkjkkjjodddeffhggd +(PID.TID 0000.0001) // 8 aa-baddaaaaaaaaabbbdaabbbddeghhgilolvxomolvxomnllkefgdaa-bad +(PID.TID 0000.0001) // 13 llifgjlljhgeeeeffhjkeffhjk....++j---------------addfgkllifgj +(PID.TID 0000.0001) // 12 jllhiklkihfedddddefidddefi....+zsqmb-afamb-afaaabddffhjllhik +(PID.TID 0000.0001) // 11 hjnjmljhhfedddddddfgddddfgj..+zzsqpnnqjipnnqjigifffdefhjnjml +(PID.TID 0000.0001) // 10 fijmljhhgeddddaadddfaadddfjlllkjihggjkmwggjkmwvjddfddefijmlj +(PID.TID 0000.0001) // 9 ffhggdddddccdddddddddddddddfihggggggkkjkggkkjkkjjodddeffhggd +(PID.TID 0000.0001) // 8 aa-baddaaaaaaaaabbbdaabbbddeghhgilolvxomolvxomnllkefgdaa-bad +(PID.TID 0000.0001) // 7 ---aaaaaddaaabdddddedddddefgill..zqjkigdqjkigddddddbaa---aaa +(PID.TID 0000.0001) // 6 aadddddddddddddddeegdddeeghpy...yxnhgeddnhgedddddddbaaaadddd +(PID.TID 0000.0001) // 5 dgnhigghffeddffilloxfilloxy....zyxoihgggoihgggdddddddddgnhig +(PID.TID 0000.0001) // 4 z..npvwvvwy++yyyyxxzyyyxxz......ywttqmigttqmigghggfflyz..npv +(PID.TID 0000.0001) // 3 ...............................+yyyyyyyyyyyyyyxxxyy......... +(PID.TID 0000.0001) // 2 ...............................++zz..zyxz..zyxy............. +(PID.TID 0000.0001) // 1 ............................................................ +(PID.TID 0000.0001) // 0 kfeijklmkkjiiihihgffhihgffff........zole..zoledcaabdfhkfeijk +(PID.TID 0000.0001) // -1 lhehijlmkjihhhihggfeihggfeev........ohgf..ohgfqihdddfilhehij +(PID.TID 0000.0001) // -2 kfehhikmjjihhhihggfeihggfef+.......shgff.shgfflgiddfhkkfehhi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -2: 45: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 23: -2: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: connect_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: connect_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: connect_obW.bin +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 1, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 2, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 3, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 4, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 5, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 6, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 7, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 8, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 9, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 10, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 11, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 12, maxConnect= 1 , numConnect= 1 +(PID.TID 0000.0001) listConnect: 1 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 13, maxConnect= 5 , numConnect= 5 +(PID.TID 0000.0001) listConnect: 1 2 3 4 5 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 14, maxConnect= 5 , numConnect= 5 +(PID.TID 0000.0001) listConnect: 1 2 3 4 5 +(PID.TID 0000.0001) OBCS_SET_CONNECT: @ k= 15, maxConnect= 3 , numConnect= 2 +(PID.TID 0000.0001) listConnect: 1 3 +(PID.TID 0000.0001) PTRACERS_INIT_FIXED: updated GAD_OlMinSize= 2 0 1 + QQ load dic parameters, initial fixed +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC_INIT_FIXED parameters : +(PID.TID 0000.0001) nlev = /* Number of level over which Bio act is computed */ +(PID.TID 0000.0001) 6 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 300 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 24 ETANSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 73 PHIBOT +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 74 PHIBOTSQ +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 286 DICTFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 287 DICOFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 288 DICCFLX +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 289 DICPCO2 +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 290 DICPHAV +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 46 VVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 45 UVELMASS +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 204 GM_PsiX +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Diag # 48 PhiVEL processed from Diag # 45 UVELMASS +(PID.TID 0000.0001) - NOTE - SETDIAG: Diagnostic # 45 UVELMASS is already set +(PID.TID 0000.0001) - NOTE - SETDIAG: Vector-mate # 46 VVELMASS is already set +(PID.TID 0000.0001) SETDIAG: Diag # 49 PsiVEL processed from Diag # 48 PhiVEL +(PID.TID 0000.0001) - NOTE - SETDIAG: Diagnostic # 48 PhiVEL is already set +(PID.TID 0000.0001) SETDIAG: Allocate 15 x 1 Levels for Diagnostic # 78 CONVADJ +(PID.TID 0000.0001) space allocated for all diagnostics: 115 levels +(PID.TID 0000.0001) set mate pointer for diag # 46 VVELMASS , Parms: VVr MR , mate: 45 +(PID.TID 0000.0001) set mate pointer for diag # 45 UVELMASS , Parms: UUr MR , mate: 46 +(PID.TID 0000.0001) set mate pointer for diag # 204 GM_PsiX , Parms: UU LR , mate: 205 +(PID.TID 0000.0001) set mate pointer for diag # 205 GM_PsiY , Parms: VV LR , mate: 204 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_CALC: setting indices iPsi0,jPsi0 where Psi == 0 : +(PID.TID 0000.0001) DIAGNOSTICS_SET_CALC: d2Min= 5.394531E+00, ijMin= 925.000 +(PID.TID 0000.0001) SELECT : bi,bj= 2 2 ; i,j= 10 10 ; ijLoc= 925.000 +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 23 ETAN +(PID.TID 0000.0001) SETDIAG: Allocate 1 Levels for Stats-Diag # 25 DETADT2 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 27 SALT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 78 CONVADJ +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 204 GM_PsiX +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 205 GM_PsiY +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 213 TRAC01 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 227 TRAC02 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 241 TRAC03 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 255 TRAC04 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 269 TRAC05 +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 291 DIC3DSIT +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 292 OMEGAC +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 293 DIC3DPH +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 294 DIC3DPCO +(PID.TID 0000.0001) SETDIAG: Allocate 15 Levels for Stats-Diag # 295 DIC3DCO3 +(PID.TID 0000.0001) space allocated for all stats-diags: 272 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = -6.5572427009593E-05 +(PID.TID 0000.0001) %MON fCori_min = -1.4369532533658E-04 +(PID.TID 0000.0001) %MON fCori_mean = -1.1250506132776E-04 +(PID.TID 0000.0001) %MON fCori_sd = 2.4357644817991E-05 +(PID.TID 0000.0001) %MON fCoriG_max = -6.8749664608828E-05 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4426394581537E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -1.1451888327629E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 2.3580812438249E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.3027003865390E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 2.4933504190762E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 8.3439440192105E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.2514647311668E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 7.8420435099722891E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 1.300000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 1.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 42 @ 2.812500000000000E+00 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 20 @ 2.812500000000000E+00 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 2.362500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.156250000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.376562500000000E+02, /* I = 1 */ +(PID.TID 0000.0001) 2.404687500000000E+02, /* I = 2 */ +(PID.TID 0000.0001) 2.432812500000000E+02, /* I = 3 */ +(PID.TID 0000.0001) 2.460937500000000E+02, /* I = 4 */ +(PID.TID 0000.0001) 2.489062500000000E+02, /* I = 5 */ +(PID.TID 0000.0001) 2.517187500000000E+02, /* I = 6 */ +(PID.TID 0000.0001) 2.545312500000000E+02, /* I = 7 */ +(PID.TID 0000.0001) 2.573437500000000E+02, /* I = 8 */ +(PID.TID 0000.0001) 2.601562500000000E+02, /* I = 9 */ +(PID.TID 0000.0001) 2.629687500000000E+02, /* I = 10 */ +(PID.TID 0000.0001) 2.657812500000000E+02, /* I = 11 */ +(PID.TID 0000.0001) 2.685937500000000E+02, /* I = 12 */ +(PID.TID 0000.0001) 2.714062500000000E+02, /* I = 13 */ +(PID.TID 0000.0001) 2.742187500000000E+02, /* I = 14 */ +(PID.TID 0000.0001) 2.770312500000000E+02, /* I = 15 */ +(PID.TID 0000.0001) 2.798437500000000E+02, /* I = 16 */ +(PID.TID 0000.0001) 2.826562500000000E+02, /* I = 17 */ +(PID.TID 0000.0001) 2.854687500000000E+02, /* I = 18 */ +(PID.TID 0000.0001) 2.882812500000000E+02, /* I = 19 */ +(PID.TID 0000.0001) 2.910937500000000E+02, /* I = 20 */ +(PID.TID 0000.0001) 2.939062500000000E+02, /* I = 21 */ +(PID.TID 0000.0001) 2.967187500000000E+02, /* I = 22 */ +(PID.TID 0000.0001) 2.995312500000000E+02, /* I = 23 */ +(PID.TID 0000.0001) 3.023437500000000E+02, /* I = 24 */ +(PID.TID 0000.0001) 3.051562500000000E+02, /* I = 25 */ +(PID.TID 0000.0001) 3.079687500000000E+02, /* I = 26 */ +(PID.TID 0000.0001) 3.107812500000000E+02, /* I = 27 */ +(PID.TID 0000.0001) 3.135937500000000E+02, /* I = 28 */ +(PID.TID 0000.0001) 3.164062500000000E+02, /* I = 29 */ +(PID.TID 0000.0001) 3.192187500000000E+02, /* I = 30 */ +(PID.TID 0000.0001) 3.220312500000000E+02, /* I = 31 */ +(PID.TID 0000.0001) 3.248437500000000E+02, /* I = 32 */ +(PID.TID 0000.0001) 3.276562500000000E+02, /* I = 33 */ +(PID.TID 0000.0001) 3.304687500000000E+02, /* I = 34 */ +(PID.TID 0000.0001) 3.332812500000000E+02, /* I = 35 */ +(PID.TID 0000.0001) 3.360937500000000E+02, /* I = 36 */ +(PID.TID 0000.0001) 3.389062500000000E+02, /* I = 37 */ +(PID.TID 0000.0001) 3.417187500000000E+02, /* I = 38 */ +(PID.TID 0000.0001) 3.445312500000000E+02, /* I = 39 */ +(PID.TID 0000.0001) 3.473437500000000E+02, /* I = 40 */ +(PID.TID 0000.0001) 3.501562500000000E+02, /* I = 41 */ +(PID.TID 0000.0001) 3.529687500000000E+02 /* I = 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -8.015625000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.734375000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.453125000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -7.171875000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.890625000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -6.609375000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -6.328125000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -6.046875000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -5.765625000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -5.484375000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -5.203125000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -4.921875000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -4.640625000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -4.359375000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -4.078125000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -3.796875000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -3.515625000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -3.234375000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -2.953125000000000E+01, /* J = 19 */ +(PID.TID 0000.0001) -2.671875000000000E+01 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.345749921461356E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 2 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.792993089037565E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 4.588065960101153E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 2 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.757650002472408E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 5.345749921461356E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 2 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 11 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.792993089037565E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 4.588065960101153E+04 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 1 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 2 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 3 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 4 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 5 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 6 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 7 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 12 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 13 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.757650002472408E+05 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 42 @ 3.126866438026091E+05 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 20 @ 3.126866438026091E+05 /* J = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.671376785519299E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 10 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 13 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.732439563609566E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.671376785519299E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 1 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 3 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 10 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 13 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.732439563609566E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 42 @ 1.434482916112175E+10 /* I = 1: 42 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 1 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 2 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 3 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 4 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 5 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 6 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 7 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 8 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 9 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 10 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 11 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 12 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 14 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 15 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 17 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 18 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 19 */ +(PID.TID 0000.0001) 8.621937547463148E+10 /* J = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.507619373042164E+13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) the_run_name = /* Name of this simulation */ +(PID.TID 0000.0001) 'OBC + Biogeo S.Ocean Box' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_OBCS +(PID.TID 0000.0001) OBCS_CHECK: start summary: +(PID.TID 0000.0001) useOBCSprescribe = /* prescribe OB values */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCSbalance = /* balance the flow through OB */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_uvApplyFac = /* Factor to apply to U,V 2nd column/row */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_T = /* Temp uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_S = /* Salt uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_Tr = /* pTr uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 5 @ 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monitorFreq = /* monitor output frequency [s] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCStides = /* apply tidal forcing through OB */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tidalPeriod = /* (s) */ +(PID.TID 0000.0001) 10 @ 0.000000000000000E+00 /* I = 1: 10 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OB_indexNone = /* null value for OB index (i.e. no OB) */ +(PID.TID 0000.0001) -99 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ======== Tile bi= 1 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ 1 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 2 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 3 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ 14 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 1 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ 1 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 2 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) ======== Tile bi= 3 , bj= 2 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 20 @ 10 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 20 @ -99 /* I = -2: 17 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 16 @ 14 /* J = -2: 13 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 16 @ -99 /* J = -2: 13 */ +(PID.TID 0000.0001) OBCS_CHECK: end summary. +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_ORLANSKI +(PID.TID 0000.0001) OBCS_CHECK: set-up OK +(PID.TID 0000.0001) OBCS_CHECK: check Inside Mask and OB locations: OK +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+48 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'gkw91 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Carbon (DIC) [mol C/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.028200000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.060900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.120600000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.158100000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.190400000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.218800000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.247400000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.269900000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.279200000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.281400000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.281500000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.280600000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.280000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.276000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.275800000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 2 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'Alk' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Alkalinity (Alk) [mol eq/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '02' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.308600000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.314900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.316400000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.311200000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.309800000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.316000000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.331300000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.351700000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.366700000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.376100000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.383200000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.386200000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.388100000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.386300000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.386700000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 3 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'PO4' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Phosphate (PO4) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '03' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 5.438000000000000E-04, /* K = 1 */ +(PID.TID 0000.0001) 7.821000000000000E-04, /* K = 2 */ +(PID.TID 0000.0001) 1.133500000000000E-03, /* K = 3 */ +(PID.TID 0000.0001) 1.491300000000000E-03, /* K = 4 */ +(PID.TID 0000.0001) 1.860600000000000E-03, /* K = 5 */ +(PID.TID 0000.0001) 2.198600000000000E-03, /* K = 6 */ +(PID.TID 0000.0001) 2.396600000000000E-03, /* K = 7 */ +(PID.TID 0000.0001) 2.418700000000000E-03, /* K = 8 */ +(PID.TID 0000.0001) 2.404600000000000E-03, /* K = 9 */ +(PID.TID 0000.0001) 2.329100000000000E-03, /* K = 10 */ +(PID.TID 0000.0001) 2.292200000000000E-03, /* K = 11 */ +(PID.TID 0000.0001) 2.288600000000000E-03, /* K = 12 */ +(PID.TID 0000.0001) 2.260800000000000E-03, /* K = 13 */ +(PID.TID 0000.0001) 2.235600000000000E-03, /* K = 14 */ +(PID.TID 0000.0001) 2.229600000000000E-03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 4 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DOP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Phosphorus (DOP) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '04' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 5 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'O2' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Oxygen (O2) [mol O/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '05' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.457000000000000E-01, /* K = 1 */ +(PID.TID 0000.0001) 2.336000000000000E-01, /* K = 2 */ +(PID.TID 0000.0001) 1.975000000000000E-01, /* K = 3 */ +(PID.TID 0000.0001) 1.729000000000000E-01, /* K = 4 */ +(PID.TID 0000.0001) 1.591000000000000E-01, /* K = 5 */ +(PID.TID 0000.0001) 1.503000000000000E-01, /* K = 6 */ +(PID.TID 0000.0001) 1.424000000000000E-01, /* K = 7 */ +(PID.TID 0000.0001) 1.445000000000000E-01, /* K = 8 */ +(PID.TID 0000.0001) 1.549000000000000E-01, /* K = 9 */ +(PID.TID 0000.0001) 1.661000000000000E-01, /* K = 10 */ +(PID.TID 0000.0001) 1.774000000000000E-01, /* K = 11 */ +(PID.TID 0000.0001) 1.863000000000000E-01, /* K = 12 */ +(PID.TID 0000.0001) 1.925000000000000E-01, /* K = 13 */ +(PID.TID 0000.0001) 2.021000000000000E-01, /* K = 14 */ +(PID.TID 0000.0001) 2.051000000000000E-01 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up +(PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: U_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: V_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: T_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: S_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Eta_ini.bin +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 2 +------------------------------------------------------------------------ +listId= 1 ; file name: surfDiag + nFlds, nActive, freq & phase , nLev + 10 | 10 | 2592000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 23 |ETAN | 1 | 0 | 1 | 0 | + 24 |ETANSQ | 2 | 0 | 1 | 0 | + 25 |DETADT2 | 3 | 0 | 1 | 0 | + 73 |PHIBOT | 4 | 0 | 1 | 0 | + 74 |PHIBOTSQ| 5 | 0 | 1 | 0 | + 286 |DICTFLX | 6 | 0 | 1 | 0 | + 287 |DICOFLX | 7 | 0 | 1 | 0 | + 288 |DICCFLX | 8 | 0 | 1 | 0 | + 289 |DICPCO2 | 9 | 0 | 1 | 0 | + 290 |DICPHAV | 10 | 0 | 1 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: dynDiag + nFlds, nActive, freq & phase , nLev + 9 | 9 | 432000.000000 0.000000 | 15 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 + diag# | name | ipt | iMate | kLev| count | mate.C| + 46 |VVELMASS| 11 | 26 | 15 | 0 | 0 | + 45 |UVELMASS| 26 | 11 | 15 | 0 | 0 | + 26 |THETA | 41 | 0 | 15 | 0 | + 27 |SALT | 56 | 0 | 15 | 0 | + 204 |GM_PsiX | 71 | 86 | 15 | 0 | 0 | + 205 |GM_PsiY | 86 | 71 | 15 | 0 | 0 | + 48 |PhiVEL | -26 | 11 | 15 | 0 | 0 | + 49 |PsiVEL | -26 | 11 | 15 | 0 | 0 | + 78 |CONVADJ | 101 | 0 | 15 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 20 | 20 | 432000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 23 |ETAN | 1 | 0 | 0.00000E+00 | + 25 |DETADT2 | 2 | 0 | 0.00000E+00 | + 26 |THETA | 3 | 0 | 0.00000E+00 | + 27 |SALT | 18 | 0 | 0.00000E+00 | + 78 |CONVADJ | 33 | 0 | 0.00000E+00 | + 30 |UVEL | 48 | 0 | 0.00000E+00 | + 31 |VVEL | 63 | 0 | 0.00000E+00 | + 32 |WVEL | 78 | 0 | 0.00000E+00 | + 204 |GM_PsiX | 93 | 0 | 0.00000E+00 | + 205 |GM_PsiY | 108 | 0 | 0.00000E+00 | + 213 |TRAC01 | 123 | 0 | 0.00000E+00 | + 227 |TRAC02 | 138 | 0 | 0.00000E+00 | + 241 |TRAC03 | 153 | 0 | 0.00000E+00 | + 255 |TRAC04 | 168 | 0 | 0.00000E+00 | + 269 |TRAC05 | 183 | 0 | 0.00000E+00 | + 291 |DIC3DSIT| 198 | 0 | 0.00000E+00 | + 292 |OMEGAC | 213 | 0 | 0.00000E+00 | + 293 |DIC3DPH | 228 | 0 | 0.00000E+00 | + 294 |DIC3DPCO| 243 | 0 | 0.00000E+00 | + 295 |DIC3DCO3| 258 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac01_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac02_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac03_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac04_ini.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Trac05_ini.bin + DIC_SURFFORCING_INIT, it= 0 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin + OBCS_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + OBCS_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: U_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: V_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: T_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: S_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: U_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: U_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: V_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: V_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: T_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: T_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: S_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: S_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac01_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac01_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac01_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac02_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac02_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac02_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac03_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac03_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac03_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac04_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac04_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac04_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obE.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_YZ: opening global file: Trac05_obW.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac05_obN.bin +(PID.TID 0000.0001) MDS_READ_SEC_XZ: opening global file: Trac05_obN.bin +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2498448491096E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4817472696304E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1768973270635E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.9968952443660E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3532016988898E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3023830950260E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0768067836761E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.3493858379116E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4643824433314E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6249141681668E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2960743904114E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8518343865871E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.9127213327288E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4376087770051E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0650506343562E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5220275294497E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4137995947489E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4324096431404E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.5064315434168E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4504545477429E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4157361984253E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8958356380463E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3216137302711E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2103641662143E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6465388359911E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6600784301758E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3084754943848E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483933613549E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9644712446743E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1588922083609E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.9361846923828E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0417861938477E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1295642419045E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.1815497434578E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.8869422460177E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1824374794960E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0302186757326E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.3083621898039E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.2594531176829E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.9615425353979E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4191913604736E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.7472656965256E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.7821404000724E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3449841576786E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7447536985508E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3632667693019E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7906237690509E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3657438911329E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7963571321516E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.4564277375069E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2757393409125E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6130429888475E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7830461303030E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0582698239818E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492699542E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292568575566E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624497018E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183795518383E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.4505528465063E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 7.1872208131480E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.4231816232204E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0768067836761E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3664911249156E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4300273749965E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2629560767914E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9702914208174E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5726319290698E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0236617289703E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1103839461495E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3126718559515E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7468712553382E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0454828441143E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6522467327141E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4416742406190E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.8301529307681E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9184095382690E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6429638266563E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094777718074E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9652256041640E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1404630661011E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4417628645897E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4654016052560E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9592378831378E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.3972635269165E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3042351603508E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8710207613799E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7009472474846E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591387271881E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367703199387E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425301046135E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5981612504913E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0693771728119E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116826057434E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899123191833E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520448323130E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5091243992577E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0636971566538E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654629666358E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7440538764931E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556800669777E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0322634216633E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7075508236597E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5665847351775E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.4560205121088E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2001614686786E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6096018939081E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3468378546213E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8357657194138E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2342259585857E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1413280166756E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3053560479973E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1918591217244E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_taux_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_tauy_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr_year_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_temp_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_monthly_salt_box.bin + DIC_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 12 0 12 1 ; Wght= 0.5000000000 0.5000000000 + DIC_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_speed_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: tren_speed_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: sillev1_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: silicate_3D_12m_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: silicate_3D_12m_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: fice_box.bin +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: fice_box.bin + OBCS_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.70300204682829E+01 9.88743731864319E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.37603699273327E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 80 +(PID.TID 0000.0001) cg2d_last_res = 7.83460039210268E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5995434788303E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4926906630212E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1751416804791E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0178255889349E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3589778971511E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3027291294470E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0691849142313E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4175285308401E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4633337899631E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6238374490497E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2954916558810E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8515782804455E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1326993179764E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4326980060472E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0638914247425E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5009566978399E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4162700010206E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323740420733E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4535039627299E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4032734702382E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4176176055431E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8959442458374E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3219357947834E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2112571801567E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6436082635441E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6600983637883E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3083605831074E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483935079098E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9645820244523E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1582977948130E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8294754028320E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1320401000977E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2120328054684E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4775932709347E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3492965265813E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1189042925835E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.0532809495926E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.6106089453040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1216399468495E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5128220616824E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5118104964495E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6193943619728E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9592570688621E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3563926402948E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7626012825569E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.1675162763305E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8487912745656E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2844837867684E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3641603666416E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7898186776852E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6762428505230E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7994960012968E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.4878613014088E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2726630591449E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6162367406714E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7776380617399E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0533584638701E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492648028E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292605380161E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624435076E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183798042838E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.2002699834481E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.0362440405314E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.4097423652808E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0691849142313E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3646583987137E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4300890782899E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2626418630559E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9750952695807E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5728699409713E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0192873374808E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1107779277586E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3118543136471E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7415303376814E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0506425450246E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6346447363572E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4402877553886E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.7786955227386E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9205570983887E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6343102912108E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094666342927E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9656966224417E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1424821790059E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4418450812499E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4656188431364E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9597766264317E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.3993523279826E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3092609544595E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8712326540729E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7018270697657E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591394662250E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367503757050E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425286258840E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5985119850633E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0685574152928E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116827787738E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899459792551E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520451784955E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5091068496443E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0629800641419E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654670647513E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7395120481237E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556705765263E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0324302750848E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7043671858714E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5699611737368E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.4705281297197E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2084159923944E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6136106693571E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3456372290705E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8361753713501E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2383316333612E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1413094083900E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3051033243526E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1897591872251E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 + DIC_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4833333333 0.5166666667 + OBCS_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + cg2d: Sum(rhs),rhsMax = 3.70217753957371E+01 9.88625784851453E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.18099076329334E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 80 +(PID.TID 0000.0001) cg2d_last_res = 9.55927126932183E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6334347157143E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5054718669162E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1733721838717E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0496709348125E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3577831149832E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3041106999456E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0615630447865E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4725824773712E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4631652665722E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6226581855361E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2953153531427E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8521495760349E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.3671467481625E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4317722124119E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0631845421267E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4857585207279E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4187401954804E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323384410062E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4672365947540E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4054166570978E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4191250964543E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8960457389717E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3222538696213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2121304166893E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6406361958254E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601160772400E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3082402903474E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483935951541E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9646577404095E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1576659921708E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8330323791504E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1277729593913E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2092838533496E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4621997369695E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3603312595688E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1201943308115E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.0949111431837E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.6005340534540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1251205601334E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5216683859400E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5087231919169E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6163741697868E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9533531799024E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3549641941976E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7565688124801E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3734380919868E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9400977256355E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.4038758935331E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3677281265160E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7895751022576E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6791664779384E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8026346013162E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5371721839429E-04 +(PID.TID 0000.0001) %MON ke_max = 9.2836853228384E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6201167056061E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7734233399894E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0506910459598E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492596515E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292637161886E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624373134E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801627528E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.6874756579119E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.0981311502989E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3963031073411E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0615630447865E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3628256725119E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4301519717685E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2623276493204E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9798991183440E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5731079528729E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0149129459912E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1111732089572E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3110367713427E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7361894200246E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0558022459348E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.6170427400003E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4389177929887E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.7272381147091E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9227046585083E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6256567557653E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094554967779E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9661690420752E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1445012919108E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4419272979101E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4658360810169E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9603162977268E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4014411290487E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3142867485682E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8714445467659E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7027078335556E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591401437445E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367304746343E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425271352692E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5988649097726E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0677317644063E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116832757561E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1899799305598E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520454966805E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090900745649E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0623943560528E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654707905471E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7350030617099E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556610772909E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0325958484516E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.7007347325832E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5734372514985E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5081759287795E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2166640460367E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6176363994778E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3445374783806E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8365288067711E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2401869335757E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412908339770E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3048525270866E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1876374153122E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + DIC_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4666666667 0.5333333333 + OBCS_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + cg2d: Sum(rhs),rhsMax = 3.69813004132884E+01 9.89366639092217E-01 +(PID.TID 0000.0001) cg2d_init_res = 5.67526980566402E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 79 +(PID.TID 0000.0001) cg2d_last_res = 6.56260092680578E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 1.2960000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6213989059191E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5125833035862E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1715888372412E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.0875958600885E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3647144329516E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3062261868045E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0539411753416E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5079985726029E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4636773745285E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6215293796818E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2955742043983E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8542959561069E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.5026324011132E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4359882216886E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0627935286095E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.4890354380308E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4180007284655E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4323028399391E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4605074086474E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4055591218984E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4207205522541E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8961461882647E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3225679277077E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2129999380289E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6377896898328E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601334730652E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3081176678740E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483936926475E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9647408903632E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1570457958611E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8365893554688E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1235058186849E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2065349012308E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4471574191313E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3718643192961E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1214843690395E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.1365413367748E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5904591616040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1286791719395E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5309620030393E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5056358873844E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6133539776007E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9474492909428E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3536075112207E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7509025945884E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3935653812237E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0000272635172E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3877407297722E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3731911478655E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7899327246398E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6782912731427E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.8016950432267E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.5967060596595E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3049026000510E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6238894530997E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7703855977354E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0514402478036E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492545002E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292658560979E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624311192E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183803880499E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.3299011362969E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1235984607563E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3828638494015E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0539411753416E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3609929463100E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4302160552751E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2620134355850E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9847029671073E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5733459647745E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0105385545017E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1115697883587E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3102192290383E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7308485023677E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0609619468451E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5994407436435E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4375643639680E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.6757807066797E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9248522186279E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6170032203197E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094443592632E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9666428623953E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1465204048157E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4420095145702E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4660533188974E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9608568965157E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4035299301147E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3193125426769E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8716564394589E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7035895383254E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591407889056E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9367106142423E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425256639625E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5992122462497E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0670152236762E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116838423798E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900145897440E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520458155541E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090709947298E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0618224144674E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654743177706E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7305272335174E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556517479929E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0327566434960E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6983504437431E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5768558511593E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5456580951666E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2248777377114E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6216452075251E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3439656196080E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8368924867501E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2409939169764E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412723897038E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3046032949387E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1857347653469E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + DIC_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4500000000 0.5500000000 + OBCS_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + cg2d: Sum(rhs),rhsMax = 3.69444848326875E+01 9.90008392871430E-01 +(PID.TID 0000.0001) cg2d_init_res = 3.68743323783192E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 9.79870323355741E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6395963974077E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5149075975102E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1697916405877E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1240461071870E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3695017619383E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3086193662600E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0463193058968E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5291434462894E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4646053100495E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6204374780074E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2962069131972E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8554900694422E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.5300989732081E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4439077426228E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0624956418926E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5001242850584E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4149847831267E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4322672388720E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4499461582882E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4051527256648E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4223666545653E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8962364234641E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3228801417064E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2138692979141E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6350188422182E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601515138275E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3079951761183E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483937899956E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9648308320519E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1564384485617E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8401463317871E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1192386779785E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2037859491120E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4324698931511E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3838936492374E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1227744072676E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.1781715303659E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5803842697540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1323156655177E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5407006621995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.5025485828519E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6103337854147E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9415454019831E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3523226784915E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7456042910420E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4584073989630E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0953896428465E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3706421403378E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3793712810127E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7908068591976E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6747217159198E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7978630185610E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6541751879117E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3301988778789E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6274233025701E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7669670741190E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0557709425580E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492493489E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292671158631E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624249250E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183804529477E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7796200915453E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2282832566760E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3694245914618E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0463193058968E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3591602201081E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4302813286498E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2616992218495E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9895068158706E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5735839766761E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0061641630121E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1119676645741E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3094016867339E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7255075847109E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0661216477553E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5818387472866E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4362274787566E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.6243232986502E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9269997787476E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.6083496848742E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094332217485E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9671180827308E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1485395177205E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4420917312304E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4662705567779E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9613984222904E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4056187311808E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3243383367856E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8718683321519E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7044721835460E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591414235517E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366907984711E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425242077795E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5995546082247E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0662562584733E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116844083675E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900507045915E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520461389861E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090502318528E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0612156843339E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654777774314E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7260823943134E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556425437223E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0329136367624E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6954418309516E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5801936011785E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.5838724074807E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2330587770700E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6256412055353E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3432484291057E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8372724940548E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2416015768654E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412540377670E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3043561864795E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1837744056211E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + DIC_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 + OBCS_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + cg2d: Sum(rhs),rhsMax = 3.69076054258846E+01 9.90650485228004E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.70765733367530E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 7.96680707147545E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6742181670386E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5153341969223E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1679805939112E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1516973521395E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3717076841684E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3110535878860E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0386974364519E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5431447413553E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4657547896250E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6193726470229E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2970860601232E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8551055672804E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.4679719200852E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4539789984647E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0622004487125E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5082374388282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4119944512572E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4322316378049E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4439293150668E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4050122398176E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4240184811830E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8963115492864E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3231921950168E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2147400722502E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6322877540844E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601696154099E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3078734354698E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483938694908E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9649189319730E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1558406489509E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8437033081055E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1149715372721E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.2010369969932E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4181406974067E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.3964171164123E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1240644454956E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.2198017239571E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5703093779040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1360299218031E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5508820210295E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4994612783194E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6073135932287E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9356415130235E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3511097786534E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7406754651863E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4795968536339E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1796445154491E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.3006748820173E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3856574012296E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7920214664715E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6711824738168E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7940635380680E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6973873149404E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3563820626241E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6308471162421E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7629354144137E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0627187721182E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492441976E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292678749744E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624187308E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183804115107E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.0468429483687E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3657719718631E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3559853335222E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0386974364519E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3573274939063E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4303477917298E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2613850081140E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9943106646339E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5738219885776E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 7.0017897715226E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1123668362120E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3085841444295E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7201666670541E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0712813486656E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5642367509297E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4349071476655E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.5728658906207E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9291473388672E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5996961494287E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094220842338E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9675947024092E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1505586306254E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4421739478906E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4664877946583E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9619408745425E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4077075322469E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3293641308943E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8720802248449E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7053557686883E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591420546447E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366710307456E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425227482320E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.5998971530587E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0654975141877E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116849837933E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1900885568449E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520464542825E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090302234005E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0605668026350E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654812115095E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7216676238750E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556333514037E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0330695423354E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6925234083256E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5834842094182E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.6229478014002E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2412143525986E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6296275912119E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3425710876208E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8376464887278E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2422333836580E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412356922377E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3041094943624E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1818374735142E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + DIC_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4166666667 0.5833333333 + OBCS_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + cg2d: Sum(rhs),rhsMax = 3.68604606178160E+01 9.91567272730777E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.48015177643454E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 7.89128155850116E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6999038601379E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5152481176502E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1661556972116E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1658103672773E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3736315171179E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3135016104574E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0310755670071E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5556985596957E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4669695779405E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6183624438474E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2980890775925E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8535428945471E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.3568261909357E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4651885756853E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0619049059375E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5109426798928E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4100108171508E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321960367378E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4438789134140E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4054669441006E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4256673239195E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8963725482635E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3235054855065E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2156151642625E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6295982957714E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6601874127639E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3077503206939E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483939305470E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9650016219741E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1552488206347E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8472602844238E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1107043965658E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1982880448744E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.4041733294347E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4094325131889E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1253544837236E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.2614319175482E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5602344860540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1398218194354E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5615036481995E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4963739737868E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6042934010426E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9297376240638E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3499688898391E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7361175793077E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.5269630985716E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2854163869584E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2232714685373E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3919791609302E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7934072101716E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6688347205730E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7915431559092E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.7182684647676E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3830442426115E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6343104906184E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7585079446337E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0706927681087E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492390463E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292685036605E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624125366E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183803238886E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.5334040790048E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.4788626310415E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3425460755825E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0310755670071E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3554947677044E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4304154443492E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2610707943785E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 5.9991145133972E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5740600004792E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9974153800331E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1127673018781E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3077666021251E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7148257493973E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0764410495758E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5466347545728E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4336033808868E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.5214084825912E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9312948989868E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5910426139832E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9094109467191E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9680727207563E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1525777435303E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4422561645508E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4667050325388E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9624842527631E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4097963333130E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3343899250031E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8722921175379E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7062402932228E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591426847918E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366513108319E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425212688706E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6002448251637E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0647421639979E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116855799363E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1901275596032E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520467504502E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5090129304475E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0598794424270E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654846357374E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7172826647483E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556240677567E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0332270860231E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6895952488566E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5867373024591E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.6625129981406E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2493443777087E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6336037079404E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3419273801687E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8380040823710E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2429634331529E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1412172564592E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3038612322839E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1799274470709E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + DIC_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4000000000 0.6000000000 + OBCS_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + cg2d: Sum(rhs),rhsMax = 3.68074301550226E+01 9.92642448786696E-01 +(PID.TID 0000.0001) cg2d_init_res = 9.67818023158134E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 5.61356601531656E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 3.0240000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.7008106519615E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5146775749600E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1643169504890E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1656733459346E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3756765429368E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3159765754242E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0234536975622E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5695103794253E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4681330089115E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6174305717656E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2991340263216E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8511799774137E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.2437862859792E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4766780757673E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0616134270546E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5103833278965E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4087470086022E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321604356707E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4473953131717E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4063565223417E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4273136344714E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964216396834E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3238206533726E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2164965291096E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6269562665548E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602048807536E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3076225669671E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483939801185E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9650792897861E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1546602343412E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8508172607422E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1064372558594E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1955390927556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3905712423966E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4229375591307E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1268687546253E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3030621111393E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5501595942040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1436912347776E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5725630261794E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4932866692543E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6012732088566E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9238337351042E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3489000856457E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7319319925167E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.5613351677080E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.3925825217887E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.1327010612069E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3983704965208E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7948508850452E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6673389252497E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7899373756357E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.7154814810678E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4102991907660E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6378194905914E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7538312146136E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0780499724177E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492338949E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292692094140E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624063424E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183802341423E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.7499050927811E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.5572833546516E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3291068176428E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0234536975622E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3536620415026E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4304842863392E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2607565806430E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0039183621605E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5742980123808E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9930409885435E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1131690601760E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3069490598207E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7094848317405E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0816007504861E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5290327582159E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4323161884926E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.4699510745618E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9334424591064E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5823890785376E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093998092044E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9685521370964E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1545968564351E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4423383812110E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4669222704193E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9630285564427E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4118851343791E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3394157191118E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8725040102309E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7071257566199E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591433154288E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366316365663E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425197615112E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6006001871729E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0639412268547E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116862007430E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1901665807237E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520470240977E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089991138865E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0591578644631E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654880588400E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7129272619617E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556146322958E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0333879851479E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6860531204279E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5899480803230E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7022530970579E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2574442496260E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6375671855123E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3410865020940E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8383443643592E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2438560948496E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411986640507E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3036101568632E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1779545872810E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + DIC_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3833333333 0.6166666667 + OBCS_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + cg2d: Sum(rhs),rhsMax = 3.67609180744336E+01 9.93541857101072E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.38807595302222E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 7.28273104908896E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6723536497608E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5132080757544E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1624643537434E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1540913193987E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3769577727386E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3184375173849E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0158318281174E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5844790515267E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4691681115239E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6165719148398E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3001700092231E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8481552609679E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1626110527408E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4875135541305E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0613049146976E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5090002988546E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4076607694846E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4321248346036E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4515180270604E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4073681914374E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4289604917873E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964598657543E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3241374181710E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2173838587216E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6243773847626E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602221012721E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3074878196556E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940230520E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9651534080036E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1540770021512E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8543742370605E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1021701151530E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1927901406368E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3773378415024E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4369299028848E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1288872435689E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3446923047304E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5400847023540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1476380419357E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5840575540377E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4901993647218E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6058066760500E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9179298461445E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3479034351115E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7281199587619E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.6024459238591E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5145861281093E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0433509400697E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4047256191796E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7962821729570E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6660532942941E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7885572129922E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6936786355898E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4375168068006E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6412107367389E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7489606858037E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0834847859322E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492287436E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292700168765E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574624001482E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801666247E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.7780077551823E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6198243314544E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3156675597032E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0158318281174E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3518293153007E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4305543175280E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2604423669076E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0087222109238E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5745360242824E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9886665970540E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1135721097065E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3061315175163E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.7041439140836E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0867604513963E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.5114307618590E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4310455804353E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.4184936665323E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9355900192261E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5737355430921E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093886716897E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9690329507524E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1566159693400E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4424205978711E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4671395082998E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9635737850715E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4139739354451E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3444415132205E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8727159029239E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7080121583499E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591439465573E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9366120052776E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425182265403E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6009632409383E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0631616245791E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116868452737E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902045792250E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520472771949E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089885774127E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0584051625775E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654914810244E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7086010634046E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0556050397947E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0335525039907E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6826974911584E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5931118414272E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7420934168380E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2655097828300E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6415159444563E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3403480721239E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8386684828878E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2449211969712E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411799002302E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3033560541227E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1760435248651E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + DIC_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 + OBCS_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + cg2d: Sum(rhs),rhsMax = 3.67312203274175E+01 9.93985653357504E-01 +(PID.TID 0000.0001) cg2d_init_res = 1.78714566347305E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 77 +(PID.TID 0000.0001) cg2d_last_res = 7.07449220495416E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 3.8880000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6188295381627E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5105381190453E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1605979069747E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1355378384906E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3768604243972E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3207882409837E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0082099586725E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.5988230765452E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4700264721465E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6157611435575E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3011535745598E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8444901322574E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1241750449551E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4967950695218E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0609380448029E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5079523697177E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4064975274828E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4320892335365E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4544864209949E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4082365022984E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4306104930293E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8964871861477E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3244549100803E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2182751879220E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6218581067712E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602391437169E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3073456244647E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940599069E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9652251996430E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1534995544742E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8579312133789E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0979029744466E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1900411885181E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3644764804007E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4514071241070E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1309057325125E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.3863224983215E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5300098105040E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1516621127784E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.5959845502938E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4871120601892E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6119570682446E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9120259571849E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3469790026933E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7246826249842E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.8149843865976E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.6399234303102E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.1249989698742E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4107961145615E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7976410420801E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6646765256782E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7870792113899E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6603607747074E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4633213657973E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6442186705882E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7439238151693E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0861943366491E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492235923E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292708323084E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574623939540E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801272312E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.8017408805823E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6840134834570E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.3022283017635E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0082099586725E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3499965890989E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4306255377412E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2601281531721E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0135260596871E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5747740361840E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9842922055644E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1139764490681E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3053139752119E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.6988029964268E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0919201523066E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.4938287655021E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4297915665466E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.3670362585028E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9377375793457E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5650820076466E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093775341749E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9695151610455E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1586350822449E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4425028145313E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4673567461802E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9641199381389E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4160627365112E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3494673073292E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8729277956169E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7088994978830E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591445769663E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9365924144883E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425166701824E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6013322584988E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0623955947811E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116875111597E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902410680924E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520475137591E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089806364697E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0576253154173E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654948952691E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7043036957142E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0555953298210E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0337196960256E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6794322464362E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5962277598367E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.7821378166312E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2735394737443E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6454493080859E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3396788665641E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8389779926146E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2461047396573E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411609961828E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3030995534209E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1741788079132E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + DIC_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3500000000 0.6500000000 + OBCS_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3333333333 0.6666666667 + cg2d: Sum(rhs),rhsMax = 3.67227792917983E+01 9.93851880945147E-01 +(PID.TID 0000.0001) cg2d_init_res = 2.01899465663214E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 76 +(PID.TID 0000.0001) cg2d_last_res = 6.96835802799745E-14 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.5495146813194E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.5066528418583E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.1587176101829E-01 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.1142533727477E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3752778367485E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3229128585363E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0005880892277E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.6103312429381E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4706749526433E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.6149725675726E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3020377539174E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8402110726863E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1197097927159E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.5038229349660E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0604696742966E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.5072411404962E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4052859622017E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.4320536324694E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 5.4558857007693E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4087891938884E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.4322649951257E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8965031130308E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 2.3247721883562E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 3.2191682574255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.6193985504276E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.6602560423703E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.3071971867600E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4483940892459E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9652954654874E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.1529285753811E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 6.8614881896973E+01 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0936358337402E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.1872922363993E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 4.3519904575408E+01 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 8.4663667354220E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 2.5141471127199E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -3.9761445691511E-05 +(PID.TID 0000.0001) %MON forcing_empmr_mean = -9.3236499820974E-06 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 1.0249687273683E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 9.8755541425843E-08 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.1329242214561E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -9.4279526919127E-02 +(PID.TID 0000.0001) %MON forcing_fu_mean = 7.5199349186540E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 7.1557633169571E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 5.6083412558175E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.4840247556567E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.6181074604392E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = -1.9061220682252E-02 +(PID.TID 0000.0001) %MON forcing_fv_sd = 3.3461268482461E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 3.7216210294159E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.8656915856445E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.7295590561753E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0832153044100E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4162827149630E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7988626020349E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.6632425634825E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7855398107974E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 8.6226167350384E-04 +(PID.TID 0000.0001) %MON ke_max = 9.4860880054333E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6465658681107E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2769337095763E+17 +(PID.TID 0000.0001) %MON vort_r_min = -4.7387570898137E-07 +(PID.TID 0000.0001) %MON vort_r_max = 7.0858610076746E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.0457492184410E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.1292715264401E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -1.2574623877598E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1183801085560E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0081652361944E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7523576523517E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_E_uVel_max = 8.2887890438239E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -6.0005880892277E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 7.3481638628970E-03 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 1.4306979468011E-02 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2598139394366E+08 +(PID.TID 0000.0001) %MON obc_W_uVel_max = 6.0183299084504E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_min = -2.5750120480855E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_mean = 6.9799178140749E-03 +(PID.TID 0000.0001) %MON obc_W_uVel_sd = 1.1143820768569E-02 +(PID.TID 0000.0001) %MON obc_W_uVel_Int = 1.3044964329075E+08 +(PID.TID 0000.0001) %MON obc_N_vVel_max = 4.6934620787700E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_min = -7.0970798532168E-02 +(PID.TID 0000.0001) %MON obc_N_vVel_mean = 1.4762267691452E-04 +(PID.TID 0000.0001) %MON obc_N_vVel_sd = 6.4285541565376E-03 +(PID.TID 0000.0001) %MON obc_N_vVel_Int = 4.3155788504734E+06 +(PID.TID 0000.0001) %MON obc_E_theta_max = 1.9398851394653E+01 +(PID.TID 0000.0001) %MON obc_E_theta_min = -1.5564284722010E+00 +(PID.TID 0000.0001) %MON obc_E_theta_mean = 1.9093663966602E+00 +(PID.TID 0000.0001) %MON obc_E_theta_sd = 2.9699987672955E+00 +(PID.TID 0000.0001) %MON obc_W_theta_max = 2.1606541951497E+01 +(PID.TID 0000.0001) %MON obc_W_theta_min = -1.4425850311915E+00 +(PID.TID 0000.0001) %MON obc_W_theta_mean = 2.4675739840607E+00 +(PID.TID 0000.0001) %MON obc_W_theta_sd = 2.9646670151341E+00 +(PID.TID 0000.0001) %MON obc_N_theta_max = 2.4181515375773E+01 +(PID.TID 0000.0001) %MON obc_N_theta_min = -6.3544931014379E-01 +(PID.TID 0000.0001) %MON obc_N_theta_mean = 4.8731396883099E+00 +(PID.TID 0000.0001) %MON obc_N_theta_sd = 4.7097877746890E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.3591452052478E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.9365728623028E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2425151009874E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 7.6017048660225E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 1.0616396656959E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.4116881965466E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 2.1902762049508E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3520477380047E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 3.5089744984834E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 8.0568181181900E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 2.7654982933499E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.7000348252381E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.0555855624018E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 5.0338880807836E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 6.6762191054504E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 2.5992982256490E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -7.8225528728462E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 6.2815338882793E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6493676981253E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 1.3390690975716E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8392749043023E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 8.2473302296527E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 2.1411420038195E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 4.3028416473433E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 1.1723518895981E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + Computing Diagnostic # 46 VVELMASS Counter: 10 Parms: VVr MR + Vector Mate for VVELMASS Diagnostic # 45 UVELMASS exists + Computing Diagnostic # 45 UVELMASS Counter: 10 Parms: UUr MR + Vector Mate for UVELMASS Diagnostic # 46 VVELMASS exists + Computing Diagnostic # 26 THETA Counter: 10 Parms: SMR MR + Computing Diagnostic # 27 SALT Counter: 10 Parms: SMR MR + Computing Diagnostic # 204 GM_PsiX Counter: 10 Parms: UU LR + Vector Mate for GM_PsiX Diagnostic # 205 GM_PsiY exists + Computing Diagnostic # 205 GM_PsiY Counter: 10 Parms: VV LR + Vector Mate for GM_PsiY Diagnostic # 204 GM_PsiX exists + Post-Processing Diag # 48 PhiVEL Parms: SMR P MR + from diag: UVELMASS (# 45) Cnt= 10 and diag: VVELMASS (# 46) Cnt= 10 + diag_cg2d (it= 10) a2dNorm,x2dNorm= 4.382025E-03 , 2.580578E+03 ; Criter= 1.00E-13 + diag_cg2d : k= 1 , it= 118 119 ; ini,min,last_Res= 4.6401048E+00 1.3836641E-13 8.3280875E-14 + diag_calc_psivel: bi,bj= 1 1 : npass,nPts= 1 154 + diag_calc_psivel: is,js= 2 1 ; ix,jx= 15 1 ; iy,jy= 2 11 + diag_calc_psivel: bi,bj= 2 1 : npass,nPts= 1 165 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 15 1 ; iy,jy= 1 11 + diag_calc_psivel: bi,bj= 3 1 : npass,nPts= 1 154 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 14 1 ; iy,jy= 1 11 + diag_calc_psivel: bi,bj= 1 2 : npass,nPts= 1 140 + diag_calc_psivel: is,js= 2 1 ; ix,jx= 15 1 ; iy,jy= 2 10 + diag_calc_psivel: bi,bj= 2 2 : npass,nPts= 1 150 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 15 1 ; iy,jy= 1 10 + diag_calc_psivel: bi,bj= 3 2 : npass,nPts= 1 140 + diag_calc_psivel: is,js= 1 1 ; ix,jx= 14 1 ; iy,jy= 1 10 + diag_cg2d : k= 2 , it= 117 118 ; ini,min,last_Res= 3.4623535E+00 1.3351191E-13 7.9137454E-14 + diag_cg2d : k= 3 , it= 115 116 ; ini,min,last_Res= 1.9802671E+00 1.2528812E-13 7.5702565E-14 + diag_cg2d : k= 4 , it= 113 114 ; ini,min,last_Res= 2.1004367E+00 1.3088947E-13 6.7517396E-14 + diag_cg2d : k= 5 , it= 114 115 ; ini,min,last_Res= 2.7419337E+00 1.1731228E-13 5.9478770E-14 + diag_cg2d : k= 6 , it= 107 108 ; ini,min,last_Res= 1.9661365E+00 1.4552646E-13 8.7440467E-14 + diag_cg2d : k= 7 , it= 108 109 ; ini,min,last_Res= 2.4720610E+00 1.3433339E-13 6.6274345E-14 + diag_cg2d : k= 8 , it= 106 107 ; ini,min,last_Res= 2.0341515E+00 1.0865842E-13 6.1845582E-14 + diag_cg2d : k= 9 , it= 106 107 ; ini,min,last_Res= 2.0921677E+00 1.5951575E-13 8.6497473E-14 + diag_cg2d : k= 10 , it= 106 107 ; ini,min,last_Res= 1.9862873E+00 1.5872005E-13 8.1157636E-14 + diag_cg2d : k= 11 , it= 107 108 ; ini,min,last_Res= 2.2278394E+00 1.1529770E-13 6.8774709E-14 + diag_cg2d : k= 12 , it= 113 114 ; ini,min,last_Res= 2.2733609E+00 1.7056513E-13 9.7881950E-14 + diag_cg2d : k= 13 , it= 93 94 ; ini,min,last_Res= 2.3369813E+00 1.1754064E-13 5.0199351E-14 + diag_cg2d : k= 14 , it= 76 77 ; ini,min,last_Res= 1.9509990E+00 1.7733845E-13 9.3994883E-14 + diag_cg2d : k= 15 , it= 46 47 ; ini,min,last_Res= 1.6967056E+00 1.2685517E-13 6.7570091E-14 + get Post-Proc. Diag # 49 PsiVEL from previous computation of Diag # 48 + Computing Diagnostic # 78 CONVADJ Counter: 10 Parms: SMR LR + Compute Stats, Diag. # 23 ETAN vol( 0 ): 3.508E+14 Parms: SM M1 + Compute Stats, Diag. # 25 DETADT2 vol( 0 ): 3.508E+14 Parms: SM M1 + Compute Stats, Diag. # 26 THETA vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 27 SALT vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 78 CONVADJ vol( 0 ): 1.242E+18 Parms: SMR LR + Compute Stats, Diag. # 30 UVEL vol( 0 ): 1.242E+18 Parms: UUR MR + Compute Stats, Diag. # 31 VVEL vol( 0 ): 1.225E+18 Parms: VVR MR + Compute Stats, Diag. # 32 WVEL vol( 0 ): 1.242E+18 Parms: WM LR + Compute Stats, Diag. # 204 GM_PsiX vol( 0 ): 1.211E+18 Parms: UU LR + Compute Stats, Diag. # 205 GM_PsiY vol( 0 ): 1.200E+18 Parms: VV LR + Compute Stats, Diag. # 213 TRAC01 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 227 TRAC02 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 241 TRAC03 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 255 TRAC04 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 269 TRAC05 vol( 0 ): 1.277E+18 Parms: SMR MR + Compute Stats, Diag. # 291 DIC3DSIT vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 292 OMEGAC vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 293 DIC3DPH vol( 0 ): 1.277E+18 Parms: SM P MR + Compute Stats, Diag. # 294 DIC3DPCO vol( 0 ): 1.277E+18 Parms: SMRP MR + Compute Stats, Diag. # 295 DIC3DCO3 vol( 0 ): 1.277E+18 Parms: SMRP MR +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 10 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 6.9647440910339355 +(PID.TID 0000.0001) System time: 6.5347000723704696E-002 +(PID.TID 0000.0001) Wall clock time: 7.0341498851776123 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 3.8306001573801041E-002 +(PID.TID 0000.0001) System time: 2.0370999583974481E-002 +(PID.TID 0000.0001) Wall clock time: 5.8680057525634766E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 6.9264229834079742 +(PID.TID 0000.0001) System time: 4.4945001602172852E-002 +(PID.TID 0000.0001) Wall clock time: 6.9754350185394287 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 8.4157001227140427E-002 +(PID.TID 0000.0001) System time: 2.0475000143051147E-002 +(PID.TID 0000.0001) Wall clock time: 0.10468506813049316 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 6.8422439247369766 +(PID.TID 0000.0001) System time: 2.4464003741741180E-002 +(PID.TID 0000.0001) Wall clock time: 6.8707249164581299 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 6.8421610966324806 +(PID.TID 0000.0001) System time: 2.4462003260850906E-002 +(PID.TID 0000.0001) Wall clock time: 6.8706371784210205 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 6.8420025631785393 +(PID.TID 0000.0001) System time: 2.4459004402160645E-002 +(PID.TID 0000.0001) Wall clock time: 6.8704802989959717 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.2992231249809265E-002 +(PID.TID 0000.0001) System time: 3.8300082087516785E-004 +(PID.TID 0000.0001) Wall clock time: 9.3419551849365234E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4354526996612549E-002 +(PID.TID 0000.0001) System time: 4.9993395805358887E-006 +(PID.TID 0000.0001) Wall clock time: 1.4362573623657227E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.9075613021850586E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.9122104644775391E-003 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.6545944213867188E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.8691711425781250E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.34521125257015228 +(PID.TID 0000.0001) System time: 1.8998980522155762E-005 +(PID.TID 0000.0001) Wall clock time: 0.34527325630187988 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8180139809846878 +(PID.TID 0000.0001) System time: 3.4999102354049683E-005 +(PID.TID 0000.0001) Wall clock time: 2.8198080062866211 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.56629127264022827 +(PID.TID 0000.0001) System time: 1.6000121831893921E-005 +(PID.TID 0000.0001) Wall clock time: 0.56672358512878418 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.20636498928070068 +(PID.TID 0000.0001) System time: 3.5002827644348145E-005 +(PID.TID 0000.0001) Wall clock time: 0.20645356178283691 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8114140033721924E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.8125286102294922E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6823451519012451E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.6845445632934570E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.7811222076416016E-005 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.5605850219726562E-005 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9307047724723816 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9322307109832764 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.1262726783752441E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.1310768127441406E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.15578538179397583 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 0.15581560134887695 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.57006824016571045 +(PID.TID 0000.0001) System time: 1.9959997385740280E-002 +(PID.TID 0000.0001) Wall clock time: 0.59040403366088867 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1163949966430664E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1181831359863281E-004 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.3774216175079346E-002 +(PID.TID 0000.0001) System time: 3.9750039577484131E-003 +(PID.TID 0000.0001) Wall clock time: 1.7751216888427734E-002 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000005 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000006 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 21532 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 21532 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/testreport b/verification/testreport index 0e0c09c140..342edeb937 100755 --- a/verification/testreport +++ b/verification/testreport @@ -8,9 +8,12 @@ usage() echo "where possible OPTIONS are:" echo " (-help|-h) print usage" echo " ---- type of test : ----" - echo " (-tlm) perform a Tangent Linear run" - echo " (-adm|-ad) perform an adjoint run" + echo " (-tlm) perform a Tangent-Linear run (defaut: using TAF)" + echo " (-adm|-ad) perform an Adjoint run (default: using TAF)" + echo " (-tap) use Tapenade for Adjoint or Tangent-Linear run" echo " (-oad) perform an OpenAD adjoint run" + echo " (-oadsingularity|-oadsngl) STRING" + echo " path to singularity container with OpenAD" echo " (-mth) run multi-threaded (using eedata.mth)" echo " (-mpi) use MPI to compile and run on 2 processors" echo " (-MPI) NUMBER use MPI to compile and run on max NUMBER procs" @@ -47,6 +50,7 @@ usage() echo " ---- output options : ----" echo " (-match) NUMBER Matching Criteria (number of digits)" echo " (DEF=\"$MATCH_CRIT\")" + echo " (-pass) return non-zero exit code if any exp do not pass" echo " (-odir) STRING used to build output directory name" echo " (DEF=\"hostname\")" echo " (-addr|-a) STRING list of email recipients" @@ -127,7 +131,7 @@ testoutput_var() # using search strings s1 and text label if [ $debug -gt 0 ]; then - echo testoutput_var: grep "$2" $1/$4/$OUTPUTFILE 1>&2 + echo testoutput_var: grep "'$2'" $1/$4/$OUTPUTFILE 1>&2 fi if [ -r $1/$4/$OUTPUTFILE ]; then grep "$2" $1/$4/$OUTPUTFILE | sed 's/.*=//' | nl > ${TMP}a.txt @@ -143,7 +147,7 @@ testoutput_var() return 99 fi if [ $debug -gt 0 ]; then - echo testoutput_var: grep "$2" $1/$5 1>&2 + echo testoutput_var: grep "'$2'" $1/$5 1>&2 fi grep "$2" $1/$5 | sed 's/.*=//' | nl > ${TMP}b.txt lncntB=`wc -l ${TMP}b.txt | awk '{print $1}' ` @@ -209,11 +213,19 @@ testoutput_run() listChk=$DEF_CHECK_LIST # load experiment-specific list from file "tr_checklist" (if it exist) if test -r $1/$2/tr_checklist ; then listChk=`cat $1/$2/tr_checklist` ; fi - sVar=`echo $listChk | awk '{print $1}'` + if test $KIND = 1 -o $KIND = 4 ; then kd='g_'; + # TLM use same input_ad/tr_checklist --> convert + listChk=`echo $listChk | sed 's/^adm/tlm/' | sed 's/ adm/ tlm/g'` + if test -r $1/$2/tr_checklist.tlm ; then listChk=`cat $1/$2/tr_checklist.tlm` ; fi + elif test $KIND = 2 -o $KIND = 5 ; then kd='ad'; + if test -r $1/$2/tr_checklist.adm ; then listChk=`cat $1/$2/tr_checklist.adm` ; fi + elif test $KIND = 6 ; then kd='ad'; + else kd=''; fi + if [ $debug -gt 0 ]; then echo "testoutput_run: listChk='$listChk'" 1>&2 ; fi # remove 1rst var and expand the list: + => min max mean s.d + sVar=`echo $listChk | awk '{print $1}'` listVar=`echo $listChk | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' \ | sed 's/+//g' | sed "s/^$sVar//"` - if [ $debug -gt 0 ]; then echo "testoutput_run: listVar(I)='$listVar'" 1>&2 ; fi # set ref.outp file-name and, if compressed, uncompress it into subdir refoutp=results/$3 if test ! -r $1/results/$3 ; then @@ -262,7 +274,7 @@ testoutput_run() #- put it back once: listVar=" $sVar "`echo "$listVar " | sed "s/ $sVar / /g"` fi - if [ $debug -gt 0 ]; then echo "testoutput_run: listVar(M)='$listVar'" 1>&2 ; fi + if [ $debug -gt 0 ]; then echo "testoutput_run: listVar='$listVar'" 1>&2 ; fi echo "listVar='$listVar'" >> $locDIR"/summary.txt" #--- allargs="" @@ -277,48 +289,52 @@ testoutput_run() then echo testoutput_run: testoutput_var $1 cg2d_init_res 1>&2 ; fi testoutput_var $1 "cg2d_init_res" "Press. Solver (cg2d)" $2 $refoutp ; yy=$? if [ $debug -gt 0 ] ; then echo testoutput_run: cg2dres=$yy 1>&2 ; fi ;; - 'Cost') testoutput_var $1 "ADM ref_cost_function" "ADM CostFct" $2 $refoutp ; yy=$? ;; - 'AdGrd') testoutput_var $1 "ADM adjoint_gradient" "ADM Ad Grad" $2 $refoutp ; yy=$? ;; - 'FDGrd') testoutput_var $1 "ADM finite-diff_grad" "ADM FD Grad" $2 $refoutp ; yy=$? ;; + 'admCst') testoutput_var $1 "ADM ref_cost_function" "ADM CostFct" $2 $refoutp ; yy=$? ;; + 'admGrd') testoutput_var $1 "ADM adjoint_gradient" "ADM Ad Grad" $2 $refoutp ; yy=$? ;; + 'admFwd') testoutput_var $1 "ADM finite-diff_grad" "ADM FD Grad" $2 $refoutp ; yy=$? ;; 'tlmCst') testoutput_var $1 "TLM ref_cost_function" "TLM CostFct" $2 $refoutp ; yy=$? ;; 'tlmGrd') testoutput_var $1 "TLM tangent-lin_grad" "TLM TL Grad" $2 $refoutp ; yy=$? ;; - 'fwdGrd') testoutput_var $1 "TLM finite-diff_grad" "TLM FD Grad" $2 $refoutp ; yy=$? ;; - 'Tmn') testoutput_var $1 "dynstat_theta_min" "Theta minimum" $2 $refoutp ; yy=$? ;; - 'Tmx') testoutput_var $1 "dynstat_theta_max" "Theta maximum" $2 $refoutp ; yy=$? ;; - 'Tav') testoutput_var $1 "dynstat_theta_mean" "Theta mean" $2 $refoutp ; yy=$? ;; - 'Tsd') testoutput_var $1 "dynstat_theta_sd" "Theta Std.Dev" $2 $refoutp ; yy=$? ;; - 'Smn') testoutput_var $1 "dynstat_salt_min" "Salt minimum" $2 $refoutp ; yy=$? ;; - 'Smx') testoutput_var $1 "dynstat_salt_max" "Salt maximum" $2 $refoutp ; yy=$? ;; - 'Sav') testoutput_var $1 "dynstat_salt_mean" "Salt mean" $2 $refoutp ; yy=$? ;; - 'Ssd') testoutput_var $1 "dynstat_salt_sd" "Salt Std.Dev" $2 $refoutp ; yy=$? ;; - 'Umn') testoutput_var $1 "dynstat_uvel_min" "U minimum" $2 $refoutp ; yy=$? ;; - 'Umx') testoutput_var $1 "dynstat_uvel_max" "U maximum" $2 $refoutp ; yy=$? ;; - 'Uav') testoutput_var $1 "dynstat_uvel_mean" "U mean" $2 $refoutp ; yy=$? ;; - 'Usd') testoutput_var $1 "dynstat_uvel_sd" "U Std.Dev" $2 $refoutp ; yy=$? ;; - 'Vmn') testoutput_var $1 "dynstat_vvel_min" "V minimum" $2 $refoutp ; yy=$? ;; - 'Vmx') testoutput_var $1 "dynstat_vvel_max" "V maximum" $2 $refoutp ; yy=$? ;; - 'Vav') testoutput_var $1 "dynstat_vvel_mean" "V mean" $2 $refoutp ; yy=$? ;; - 'Vsd') testoutput_var $1 "dynstat_vvel_sd" "V Std.Dev" $2 $refoutp ; yy=$? ;; - 'Qntmn') testoutput_var $1 "forcing_qnet_min" "Qnet minimum" $2 $refoutp ; yy=$? ;; - 'Qntmx') testoutput_var $1 "forcing_qnet_max" "Qnet maximum" $2 $refoutp ; yy=$? ;; - 'Qntav') testoutput_var $1 "forcing_qnet_mean" "Qnet mean" $2 $refoutp ; yy=$? ;; - 'Qntsd') testoutput_var $1 "forcing_qnet_sd" "Qnet Std.Dev" $2 $refoutp ; yy=$? ;; - 'aSImn') testoutput_var $1 "seaice_area_min" "SIce Area min" $2 $refoutp ; yy=$? ;; - 'aSImx') testoutput_var $1 "seaice_area_max" "SIce Area max" $2 $refoutp ; yy=$? ;; - 'aSIav') testoutput_var $1 "seaice_area_mean" "SIce Area mean" $2 $refoutp ; yy=$? ;; - 'aSIsd') testoutput_var $1 "seaice_area_sd" "SIce Area StDv" $2 $refoutp ; yy=$? ;; - 'hSImn') testoutput_var $1 "seaice_heff_min" "SIce Heff min" $2 $refoutp ; yy=$? ;; - 'hSImx') testoutput_var $1 "seaice_heff_max" "SIce Heff max" $2 $refoutp ; yy=$? ;; - 'hSIav') testoutput_var $1 "seaice_heff_mean" "SIce Heff mean" $2 $refoutp ; yy=$? ;; - 'hSIsd') testoutput_var $1 "seaice_heff_sd" "SIce Heff StDv" $2 $refoutp ; yy=$? ;; - 'uSImn') testoutput_var $1 "seaice_uice_min" "SIce Uice min" $2 $refoutp ; yy=$? ;; - 'uSImx') testoutput_var $1 "seaice_uice_max" "SIce Uice max" $2 $refoutp ; yy=$? ;; - 'uSIav') testoutput_var $1 "seaice_uice_mean" "SIce Uice mean" $2 $refoutp ; yy=$? ;; - 'uSIsd') testoutput_var $1 "seaice_uice_sd" "SIce Uice StDv" $2 $refoutp ; yy=$? ;; - 'vSImn') testoutput_var $1 "seaice_vice_min" "SIce Vice min" $2 $refoutp ; yy=$? ;; - 'vSImx') testoutput_var $1 "seaice_vice_max" "SIce Vice max" $2 $refoutp ; yy=$? ;; - 'vSIav') testoutput_var $1 "seaice_vice_mean" "SIce Vice mean" $2 $refoutp ; yy=$? ;; - 'vSIsd') testoutput_var $1 "seaice_vice_sd" "SIce Vice StDv" $2 $refoutp ; yy=$? ;; + 'tlmFwd') testoutput_var $1 "TLM finite-diff_grad" "TLM FD Grad" $2 $refoutp ; yy=$? ;; + 'Tmn') testoutput_var $1 "dynstat_${kd}theta_min" "${kd}Theta minimum" $2 $refoutp ; yy=$? ;; + 'Tmx') testoutput_var $1 "dynstat_${kd}theta_max" "${kd}Theta maximum" $2 $refoutp ; yy=$? ;; + 'Tav') testoutput_var $1 "dynstat_${kd}theta_mean" "${kd}Theta mean" $2 $refoutp ; yy=$? ;; + 'Tsd') testoutput_var $1 "dynstat_${kd}theta_sd" "${kd}Theta Std.Dev" $2 $refoutp ; yy=$? ;; + 'Smn') testoutput_var $1 "dynstat_${kd}salt_min" "${kd}Salt minimum" $2 $refoutp ; yy=$? ;; + 'Smx') testoutput_var $1 "dynstat_${kd}salt_max" "${kd}Salt maximum" $2 $refoutp ; yy=$? ;; + 'Sav') testoutput_var $1 "dynstat_${kd}salt_mean" "${kd}Salt mean" $2 $refoutp ; yy=$? ;; + 'Ssd') testoutput_var $1 "dynstat_${kd}salt_sd" "${kd}Salt Std.Dev" $2 $refoutp ; yy=$? ;; + 'Umn') testoutput_var $1 "dynstat_${kd}uvel_min" "${kd}U minimum" $2 $refoutp ; yy=$? ;; + 'Umx') testoutput_var $1 "dynstat_${kd}uvel_max" "${kd}U maximum" $2 $refoutp ; yy=$? ;; + 'Uav') testoutput_var $1 "dynstat_${kd}uvel_mean" "${kd}U mean" $2 $refoutp ; yy=$? ;; + 'Usd') testoutput_var $1 "dynstat_${kd}uvel_sd" "${kd}U Std.Dev" $2 $refoutp ; yy=$? ;; + 'Vmn') testoutput_var $1 "dynstat_${kd}vvel_min" "${kd}V minimum" $2 $refoutp ; yy=$? ;; + 'Vmx') testoutput_var $1 "dynstat_${kd}vvel_max" "${kd}V maximum" $2 $refoutp ; yy=$? ;; + 'Vav') testoutput_var $1 "dynstat_${kd}vvel_mean" "${kd}V mean" $2 $refoutp ; yy=$? ;; + 'Vsd') testoutput_var $1 "dynstat_${kd}vvel_sd" "${kd}V Std.Dev" $2 $refoutp ; yy=$? ;; + 'Etamn') testoutput_var $1 "dynstat_${kd}eta_min" "${kd}Eta minimum" $2 $refoutp ; yy=$? ;; + 'Etamx') testoutput_var $1 "dynstat_${kd}eta_max" "${kd}Eta maximum" $2 $refoutp ; yy=$? ;; + 'Etaav') testoutput_var $1 "dynstat_${kd}eta_mean" "${kd}Eta mean" $2 $refoutp ; yy=$? ;; + 'Etasd') testoutput_var $1 "dynstat_${kd}eta_sd" "${kd}Eta Std.Dev" $2 $refoutp ; yy=$? ;; + 'Qntmn') testoutput_var $1 "forcing_qnet_min" "Qnet minimum" $2 $refoutp ; yy=$? ;; + 'Qntmx') testoutput_var $1 "forcing_qnet_max" "Qnet maximum" $2 $refoutp ; yy=$? ;; + 'Qntav') testoutput_var $1 "forcing_qnet_mean" "Qnet mean" $2 $refoutp ; yy=$? ;; + 'Qntsd') testoutput_var $1 "forcing_qnet_sd" "Qnet Std.Dev" $2 $refoutp ; yy=$? ;; + 'aSImn') testoutput_var $1 "seaice_${kd}area_min" "SIce ${kd}Area min" $2 $refoutp ; yy=$? ;; + 'aSImx') testoutput_var $1 "seaice_${kd}area_max" "SIce ${kd}Area max" $2 $refoutp ; yy=$? ;; + 'aSIav') testoutput_var $1 "seaice_${kd}area_mean" "SIce ${kd}Area mean" $2 $refoutp ; yy=$? ;; + 'aSIsd') testoutput_var $1 "seaice_${kd}area_sd" "SIce ${kd}Area StDv" $2 $refoutp ; yy=$? ;; + 'hSImn') testoutput_var $1 "seaice_${kd}heff_min" "SIce ${kd}Heff min" $2 $refoutp ; yy=$? ;; + 'hSImx') testoutput_var $1 "seaice_${kd}heff_max" "SIce ${kd}Heff max" $2 $refoutp ; yy=$? ;; + 'hSIav') testoutput_var $1 "seaice_${kd}heff_mean" "SIce ${kd}Heff mean" $2 $refoutp ; yy=$? ;; + 'hSIsd') testoutput_var $1 "seaice_${kd}heff_sd" "SIce ${kd}Heff StDv" $2 $refoutp ; yy=$? ;; + 'uSImn') testoutput_var $1 "seaice_${kd}uice_min" "SIce ${kd}Uice min" $2 $refoutp ; yy=$? ;; + 'uSImx') testoutput_var $1 "seaice_${kd}uice_max" "SIce ${kd}Uice max" $2 $refoutp ; yy=$? ;; + 'uSIav') testoutput_var $1 "seaice_${kd}uice_mean" "SIce ${kd}Uice mean" $2 $refoutp ; yy=$? ;; + 'uSIsd') testoutput_var $1 "seaice_${kd}uice_sd" "SIce ${kd}Uice StDv" $2 $refoutp ; yy=$? ;; + 'vSImn') testoutput_var $1 "seaice_${kd}vice_min" "SIce ${kd}Vice min" $2 $refoutp ; yy=$? ;; + 'vSImx') testoutput_var $1 "seaice_${kd}vice_max" "SIce ${kd}Vice max" $2 $refoutp ; yy=$? ;; + 'vSIav') testoutput_var $1 "seaice_${kd}vice_mean" "SIce ${kd}Vice mean" $2 $refoutp ; yy=$? ;; + 'vSIsd') testoutput_var $1 "seaice_${kd}vice_sd" "SIce ${kd}Vice StDv" $2 $refoutp ; yy=$? ;; 'AthSiG') testoutput_var $1 "thSI_Ice_Area_G" "thSIc Area Global" $2 $refoutp ; yy=$? ;; 'AthSiS') testoutput_var $1 "thSI_Ice_Area_S" "thSIc Area South" $2 $refoutp ; yy=$? ;; 'AthSiN') testoutput_var $1 "thSI_Ice_Area_N" "thSIc Area North" $2 $refoutp ; yy=$? ;; @@ -339,10 +355,10 @@ testoutput_run() nn=`echo $xx | sed 's/pt//' | sed 's/..$//'` ii=`echo $xx | sed 's/^pt[0-9]*//'` case $ii in - 'mn') testoutput_var $1 "trcstat_ptracer0"$nn"_min" "p0"$nn"_min" $2 $refoutp ; yy=$? ;; - 'mx') testoutput_var $1 "trcstat_ptracer0"$nn"_max" "p0"$nn"_max" $2 $refoutp ; yy=$? ;; - 'av') testoutput_var $1 "trcstat_ptracer0"$nn"_mean" "p0"$nn"_mean" $2 $refoutp ; yy=$? ;; - 'sd') testoutput_var $1 "trcstat_ptracer0"$nn"_sd" "p0"$nn"_StDv" $2 $refoutp ; yy=$? ;; + 'mn') testoutput_var $1 "trcstat_${kd}ptracer0"$nn"_min" "${kd}pTr0"$nn"_min" $2 $refoutp ; yy=$? ;; + 'mx') testoutput_var $1 "trcstat_${kd}ptracer0"$nn"_max" "${kd}pTr0"$nn"_max" $2 $refoutp ; yy=$? ;; + 'av') testoutput_var $1 "trcstat_${kd}ptracer0"$nn"_mean" "${kd}pTr0"$nn"_mean" $2 $refoutp ; yy=$? ;; + 'sd') testoutput_var $1 "trcstat_${kd}ptracer0"$nn"_sd" "${kd}pTr0"$nn"_StDv" $2 $refoutp ; yy=$? ;; esac fi if test $xx = $sVar @@ -379,8 +395,10 @@ genmakemodel() if test "x$MKDEPEND" != x ; then command="$command -makedepend=$MKDEPEND" fi - if test $KIND = 4 ; then + if test $KIND = 6 ; then command="$command -oad -mods=../$code_dir" + elif [ $KIND -ge 3 ] ; then + command="$command -tap -mods=../$code_dir" else command="$command -mods=../$code_dir" fi @@ -421,6 +439,9 @@ genmakemodel() if test "x$PCLS" = xt ; then command="$command -pcls" fi + if test "x$OADSINGULARITY" != x ; then + command="$command -oadsingularity \"$OADSINGULARITY\"" + fi fi printf 'genmake ... ' eval $command > genmake.tr_log 2>&1 @@ -480,6 +501,7 @@ run_clean() # part of what is done after "make clean" when doing "make CLEAN" find . -name "*.meta" -exec rm {} \; find . -name "*.data" -exec rm {} \; + find . -name "*.tmp" -exec rm {} \; find . -name "fort.*" -exec rm {} \; find . -type l -exec rm {} \; #- should remove executable only if sym-link (already done above) @@ -567,12 +589,14 @@ makemodel() fi fi if test $KIND = 1 -a -f taf_ftl.log ; then + grep 'Processing files at' make.tr_log | tail -1 >> $CDIR"/summary.txt" head -1 taf_ftl.log >> $CDIR"/summary.txt" fi if test $KIND = 2 -a -f taf_ad.log ; then + grep 'Processing files at' make.tr_log | tail -1 >> $CDIR"/summary.txt" head -1 taf_ad.log >> $CDIR"/summary.txt" nerr=`grep -c 'TAF *.* ERROR ' taf_ad.log` - nwar=`grep -c 'TAF RECOMPUTATION *.* WARNING ' taf_ad.log` + nwar=`grep -c '^TAF *.* RECOMPUTATION *.* WARNING ' taf_ad.log` if test -f taf_output ; then n2er=`grep -c 'TAF *.* ERROR ' taf_output` n3er=`grep -c '\*ERROR\* ' taf_output` @@ -580,6 +604,32 @@ makemodel() fi echo " TAF reports $nerr Errors and $nwar Recomputation Warnings" \ >> $CDIR"/summary.txt" + if test -f ad_taf_output.f ; then + adfile=ad_taf_output.f + elif test -f ad_taf_output.for ; then + adfile=ad_taf_output.for + else + echo "WARNING: neither ad_output_ad.f nor ad_output_ad.for found" \ + >> $CDIR"/summary.txt" + adfile=missing ; nlfd=0 ; ndop=0 ; nsm=0 + fi + if test $adfile != missing ; then + # count number of times load_fields_driver and do_oceanic_phys are called + nlfd=`grep "call load_fields_driver(" ${adfile} | wc -l` + nlfdmd=`grep "call load_fields_drivermd(" ${adfile} | wc -l` + if (( $nlfdmd == 0 )) ; then + # if there is no load_fields_driver, we can substract one assuming + # that load_fields_driver is called once from forward_stepmd + nlfd=$((nlfd-1)) + fi + ndop=`grep "call do_oceanic_phys(" ${adfile} | wc -l` + nsm=`grep "call seaice_model(" ${adfile} | wc -l` + fi + echo " load_fields_driver, do_oceanic_phys, seaice_model are called " \ + "( $nlfd , $ndop , $nsm ) time(s)" >> $CDIR"/summary.txt" + fi + if test -f make.tr_log && test $KIND = 4 -o $KIND = 5 ; then + grep '^Tapenade ' make.tr_log | tail -n 1 >> $CDIR"/summary.txt" fi if test $mk_fail != 0 ; then return $mk_fail ; fi ) @@ -832,14 +882,17 @@ runmodel() echo " Divided Adjoint Run: $adm_diva_nb" >> $RUNLOG eval "let $adm_diva_nb" if [ $add_DIVA_runs -ge 1 ] ; then + extraRuns=`expr $add_DIVA_runs - 1` rm -f costf* divided.ctrl snapshot* echo -n "(add_DIVA_runs=$add_DIVA_runs) ... " - for ii in `seq 1 $add_DIVA_runs` ; do + for ii in `seq 0 $extraRuns` ; do ( eval $COMMAND ) >> $RUNLOG 2>&1 echo " additional DIVA run # $ii : done" >> $RUNLOG mv -f $OUTPUTFILE ${OUTPUTFILE}.diva_${ii} done fi + elif test -f run_ADM_DIVA ; then + rm -f costf* divided.ctrl snapshot* fi #- special DIVA processing ends here ( eval $COMMAND ) >> $RUNLOG 2>&1 @@ -974,10 +1027,12 @@ formatresults() fi printf ' %s' $nm if test $KIND = 2 ; then - #-- apppend taf repport summary: + #-- append taf report summary: tafrep=`grep -c '^ TAF reports ' $CDIR/summary.txt` if test $tafrep = 1 ; then - grep '^ TAF reports ' $CDIR/summary.txt | awk '{printf " (e=%i, w=%i)",$3,$6}' + grep '^ TAF reports ' $CDIR/summary.txt | awk '{printf " (e=%i, w=%i,",$3,$6}' + grep '^ load_fields_driver,' $CDIR/summary.txt \ + | awk '{printf " lfd=%i, dop=%i, sm=%i)",$7,$9,$11}' fi fi printf '\n' @@ -1087,10 +1142,13 @@ USE_R4= EXTRFLG= NOCATAD= MKSMALLF= +OADSINGULARITY= +CHECK_PASS=f #- type of testing (KIND): -# KIND=0 : forward (= default) ; KIND=1 : Tangent Linear with TAF ; -# KIND=2 : Adjoint with TAF ; KIND=4 : Adjoint with OpenAD +# KIND=0 : forward (= default) ; KIND=6 : Adjoint with OpenAD +# KIND=1 : Tangent-Linear with TAF ; KIND=2 : Adjoint with TAF ; +# KIND=4 : Tang-Lin. with Tapenade ; KIND=5 : Adjoint with Tapenade ; KIND=0 # list of pTracers to check for monitor output @@ -1113,7 +1171,7 @@ for ac_option ; do ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` case $ac_option in - + -help | --help | -h | --h) usage ;; -optfile | --optfile | -of | --of) ac_prev=OPTFILE ;; @@ -1178,6 +1236,8 @@ for ac_option ; do -postclean | --postclean | -pc | --pc) POSTCLEAN=2 ;; -deloutp | --deloutp | -do | --do) POSTCLEAN=1 ;; + -pass) CHECK_PASS=t ;; + -mpi | --mpi) MPI=2 ;; -MPI | --MPI) ac_prev=MPI ;; -MPI=* | --MPI=*) MPI=$ac_optarg ;; @@ -1187,15 +1247,21 @@ for ac_option ; do -mth) MULTI_THREAD=t ;; - -tlm) if test $KIND = 0 ; then KIND=1 ; else - echo "Error: '-tlm', '-adm' and '-oad' are exclusive" ; usage + -tlm) if test $KIND = 0 -o $KIND = 3 ; then KIND=`expr $KIND + 1`; else + echo "Error: '-tlm', '-adm' and '-oad' are exclusive + no duplicate" ; usage + fi ;; + -adm | -ad) if test $KIND = 0 -o $KIND = 3 ; then KIND=`expr $KIND + 2` ; else + echo "Error: '-tlm', '-adm' and '-oad' are exclusive + no duplicate" ; usage fi ;; - -adm | -ad) if test $KIND = 0 ; then KIND=2 ; else - echo "Error: '-tlm', '-adm' and '-oad' are exclusive" ; usage + -tap) if [ $KIND -le 2 ] ; then KIND=`expr $KIND + 3` ; else + echo "Error: '-tap' and '-oad' are exclusive + no duplicate" ; usage fi ;; - -oad) if test $KIND = 0 ; then KIND=4 ; NODEPEND=t ; else - echo "Error: '-tlm', '-adm' and '-oad' are exclusive" ; usage + -oad) if test $KIND = 0 ; then KIND=6 ; NODEPEND=t ; else + echo "Error: '-tlm', '-adm' and '-oad' are exclusive + no duplicate" ; usage fi ;; + -oadsingularity | --oadsingularity | -oadsngl | --oadsngl) ac_prev=OADSINGULARITY ;; + -oadsingularity=* | --oadsingularity=* | -oadsngl=* | --oadsngl=*) OADSINGULARITY=$ac_optarg ;; + -ncad) NOCATAD=t ;; -small_f) MKSMALLF=t ;; @@ -1252,9 +1318,11 @@ if test "x$MPI" != x0 -a "x$MPI_MFILE" != x ; then fi fi -#- setting for forward or ADM testing +#- setting for forward, TLM or ADM testing if test $KIND = 1 ; then - if test "x$TARG" = xsmall_f ; then TARG=ftltaf ; else TARG=ftlall ; fi + if test "x$TARG" = x ; then TARG=ftlall ; fi + if test "x$TARG" = xobj ; then TARG=ftlobj ; fi + if test "x$TARG" = xsmall_f ; then TARG=ftltaf ; fi code_dir=code_ad inputdir=input_ad ref_outp="output_tlm.txt" @@ -1267,7 +1335,13 @@ elif test $KIND = 2 ; then inputdir=input_ad ref_outp="output_adm.txt" EXECUTABLE="mitgcmuv_ad" -elif test $KIND = 4 ; then +elif test $KIND = 4 -o $KIND = 5 ; then + if test $KIND = 4 ; then TARG=tap_tlm ; else TARG=tap_adj ; fi + code_dir=code_tap + inputdir=input_tap + ref_outp="output_${TARG}.txt" + EXECUTABLE="mitgcmuv_${TARG}" +elif test $KIND = 6 ; then TARG=adAll code_dir=code_oad inputdir=input_oad @@ -1281,6 +1355,19 @@ else fi if test "x$JOBS" != x ; then TARG="-j $JOBS $TARG" ; fi +if [ $verbose -gt 1 ]; then + echo "" + echo "--- print $0 setting:" + echo " KIND = '$KIND'" + echo " TARG = '$TARG'" + echo " code_dir = '$code_dir'" + echo " inputdir = '$inputdir'" + echo " ref_outp = '$ref_outp'" + echo " EXECUTABLE= '$EXECUTABLE'" + echo "--- printing ends." + #exit 0 +fi + xx=`echo $TESTDIRS | awk '{print $1}'` if test "x$TESTDIRS" = x ; then LIST=`scandirs results/$ref_outp` @@ -1354,20 +1441,20 @@ if [ $verbose -gt 1 ]; then echo " temp files: $TMP" ; fi # (use default or load experiment-specific list from file "tr_checklist") # content : 1rst = main variable used to decide if it pass or FAIL # others = number of matching digits to be printed in summary.txt -if test $KIND = 1 ; then - DEF_CHECK_LIST='tlmGrd tlmCst tlmGrd fwdGrd' - EMPTY_RESULTS='.. .. ..' - LEN_CHECK_LIST=`echo $DEF_CHECK_LIST | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' | awk '{print NF-1}'` -elif test $KIND = 2 -o $KIND = 4 ; then - DEF_CHECK_LIST='AdGrd Cost AdGrd FDGrd' - EMPTY_RESULTS='.. .. ..' - LEN_CHECK_LIST=`echo $DEF_CHECK_LIST | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' | awk '{print NF-1}'` -else +if test $KIND = 0 ; then DEF_CHECK_LIST='PS PS T+ S+ U+ V+ pt1+ pt2+ pt3+ pt4+ pt5+' EMPTY_RESULTS='.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..' LEN_CHECK_LIST=`echo $DEF_CHECK_LIST | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' | awk '{print NF-1}'` ii=`echo $EMPTY_RESULTS | awk '{print NF}'` EMPTY_RESULTS=$EMPTY_RESULTS`expr $LEN_CHECK_LIST - $ii | awk 'BEGIN{FS=":"}{for(i=1;i<=$1;i++){printf " ."}}'` +elif test $KIND = 2 ; then + DEF_CHECK_LIST='admGrd admCst admGrd admFwd T+ S+ U+ V+' + EMPTY_RESULTS='.. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..' + LEN_CHECK_LIST=`echo $DEF_CHECK_LIST | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' | awk '{print NF-1}'` +else + DEF_CHECK_LIST='admGrd admCst admGrd admFwd' + EMPTY_RESULTS='.. .. ..' + LEN_CHECK_LIST=`echo $DEF_CHECK_LIST | sed 's/ [a-zA-Z0-9]*+/&mn &mx &av &sd/g' | awk '{print NF-1}'` fi # create the FORTRAN comparison code @@ -1467,19 +1554,19 @@ if test $KIND = 0 ; then line_4="$line_4 n x n ." done else - line_0=`printf '%s %2i' 'default ' $MATCH_CRIT` if test $KIND = 1 ; then - #echo "TANGLIN=true" >> $SUMMARY echo "TangLin generated by TAF" >> $SUMMARY - elif test $KIND = 3 ; then - echo "TangLin generated by OpenAD" >> $SUMMARY elif test $KIND = 2 ; then - #echo "ADJOINT=true" >> $SUMMARY echo "Adjoint generated by TAF" >> $SUMMARY + elif test $KIND = 4 ; then + echo "TangLin generated by Tapenade" >> $SUMMARY + elif test $KIND = 5 ; then + echo "Adjoint generated by Tapenade" >> $SUMMARY else echo "Adjoint generated by OpenAD" >> $SUMMARY fi - if test $KIND = 1 -o $KIND = 3 ; then + line_0=`printf '%s %2i' 'default ' $MATCH_CRIT` + if test $KIND = 1 -o $KIND = 4 ; then line_1="G D M C T F" line_2="e p a R o L D" else @@ -1489,6 +1576,14 @@ else line_3="n n k u s G G" line_4="2 d e n t r r" echo >> $SUMMARY + if test $KIND = 2 ; then + line_0=`printf '%s %2i ' 'default ' $MATCH_CRIT` + line_0="$line_0 ----T----- ----S----- ----U----- ----V-----" + line_1="$line_1 m s m s m s m s" + line_2="$line_2 m m e . m m e . m m e . m m e ." + line_3="$line_3 i a a d i a a d i a a d i a a d" + line_4="$line_4 n x n . n x n . n x n . n x n ." + fi fi if test "x$CLEANUP" != xt ; then echo "$line_0" | tee -a $SUMMARY @@ -1500,6 +1595,8 @@ if test "x$CLEANUP" != xt ; then fi echo "-------------------------------------------------------------------------------" +allpass=t + # ...and each test directory... for dir in $TESTDIRS ; do @@ -1679,6 +1776,9 @@ for dir in $TESTDIRS ; do fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /> $SUMMARY echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" + if [[ ! "$fres" =~ " pass " ]]; then + allpass=f + fi for ex in $extra_runs ; do unset run @@ -1703,6 +1803,9 @@ for dir in $TESTDIRS ; do fres=`formatresults $dir.$ex ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` echo "$fres" | sed 's/ 99/ --/g' | sed 's/ > />/' | sed 's/ < /> $SUMMARY echo "fresults='$fres'" | sed 's/ 99/ --/g' >> $locDIR"/summary.txt" + if [[ ! "$fres" =~ " pass " ]]; then + allpass=f + fi if test "x$POSTCLEAN" = x2 ; then run_clean $dir/$pfxdir.$ex fi @@ -1823,4 +1926,9 @@ fi if test "x$DELDIR" = xt ; then rm -rf $DRESULTS fi + +if test "$CHECK_PASS" = t && test "$allpass" = f; then + exit 1 +fi + echo "======== End of testreport execution ========" diff --git a/verification/tutorial_baroclinic_gyre/README b/verification/tutorial_baroclinic_gyre/README.md similarity index 65% rename from verification/tutorial_baroclinic_gyre/README rename to verification/tutorial_baroclinic_gyre/README.md index a20da5e62b..72026af2ae 100644 --- a/verification/tutorial_baroclinic_gyre/README +++ b/verification/tutorial_baroclinic_gyre/README.md @@ -1,27 +1,28 @@ Tutorial Example: "Baroclinic gyre" -(Four Layer Baroclinic Ocean Gyre In Spherical Coordinates) +(Baroclinic Ocean Gyre In Spherical Coordinates) ============================================================ (formerly "exp1" verification ; also "baroclinic_gyre_on_a_sphere" in release.1 branch) Configure and compile the code: +``` cd build ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] make depend make cd .. +``` To run: +``` cd run ln -s ../input/* . ../build/mitgcmuv > output.txt +``` There is comparison output in the directory: results/output.txt Comments: - The input data is real*8 and can be generated with the supplied - matlab script gendata.m - To change the input precision to real*4 change readBinaryPrec=32 - in data as well as in gendata.m - + The input data is real*4 and generated using the MATLAB script + gendata.m. diff --git a/verification/tutorial_baroclinic_gyre/analysis/matlab_plots.m b/verification/tutorial_baroclinic_gyre/analysis/matlab_plots.m index d051f1e408..2a30c689f2 100644 --- a/verification/tutorial_baroclinic_gyre/analysis/matlab_plots.m +++ b/verification/tutorial_baroclinic_gyre/analysis/matlab_plots.m @@ -1,109 +1,243 @@ -%%%%%%%%%%% load grid data +% read in additional colormaps for plots +% assumes 'addpath ../../../utils/matlab/' typed from your run directory +% which is also where other matlab functions such as 'rdmds' are located +bluered_colormaps -% load grid variables (these are internal MITgcm sourcecode variables; if using standard -% binary output instead of netcdf, these are dumped to individual files) -% assumes separate tiles concatenated into global files (used script utils/python/MITgcmutils/scripts/gluemncbig) -% 1-D fields - RC=ncread('grid.nc','RC'); % vertical grid, cell center locations - drF=ncread('grid.nc','drF'); % spacing of gridcells in the vertical (separation between cell top and bottoms) -% 2-D fields - XC=ncread('grid.nc','XC'); % x-location of gridcell centers - YC=ncread('grid.nc','YC'); % y-location of gridcell centers - dyG=ncread('grid.nc','dyG'); % grid spacing in y-dimension (ie. separation between corners) - rA=ncread('grid.nc','rA'); % surface area of gridcells -% 3-D fields - HFacC=ncread('grid.nc','HFacC'); % vertical fraction of cell which is ocean + +%%%%%%%%%%% load grid data %%%%%%%%%%% + +% Load grid variables; names correspond with MITgcm source code. +% (if using standard binary output instead of netcdf, these are dumped +% to individual files, e.g. 'RC.data' etc.) +% Assumes that output in multiple tiles has been concatenated into +% global files (used script utils/python/MITgcmutils/scripts/gluemncbig) +% and moved into the top directory; +% see MITgcm user manual section 4.2.4.1 + +% Using a spherical polar grid, all X,Y variables in lon,lat coordinates +% vertical grid provided in meters, area in m^2 + +% 1-D fields + RC = ncread('grid.nc', 'RC'); % vertical grid, cell center locations + drF = ncread('grid.nc', 'drF'); % vertical spacing of grid cells (thickness of cells) +% 2-D fields (x,y) + XC = ncread('grid.nc', 'XC'); % x-location of gridcell centers + YC = ncread('grid.nc', 'YC'); % y-location of gridcell centers + dyG = ncread('grid.nc', 'dyG'); % grid spacing in y-dim (separation between corners) + rA = ncread('grid.nc', 'rA'); % surface area of gridcells +% 3-D fields (x,y,z) + HFacC = ncread('grid.nc', 'HFacC'); % vertical fraction of cell which is ocean -% load additional dimensional varibles from netcdf files -% these are also present in netcdf diagnostic data files -% 1-D fields - X=ncread('grid.nc','X'); % 1-D version of XC data - Y=ncread('grid.nc','Y'); % 1-D version of YC data - Xp1=ncread('grid.nc','Xp1'); % x-location of gridcell lower left corner (1-D version of XG) - Yp1=ncread('grid.nc','Yp1'); % y-location of gridcell lower left corner (1-D version of YG) +% For convenience, load additional dimensional variables from +% netcdf files (these variables are NOT included in binary output) +% These grid variables are also present in netcdf diagnostic data files. +% 1-D fields + X = ncread('grid.nc', 'X'); % 1-D version of XC data + Y = ncread('grid.nc', 'Y'); % 1-D version of YC data + Xp1 = ncread('grid.nc', 'Xp1'); % x-location of lower left corner + Yp1 = ncread('grid.nc', 'Yp1'); % y-location of lower left corner +% Xp1 and Yp1 are effectively 1-D versions of grid variables XG,YG with +% an extra data value at the eastern and northern ends of the domain. +% See MITgcm users manual section 2.11 for additional MITgcm grid info -%%%%%%%%%%% load diagnostics +% Number of gridcells in x,y, full domain: + Nx = size(XC, 1); + Ny = size(XC, 2); +% out-of-the-box tutorial setup is configured to be 62x62 -% load output as specified in data.diagnostics -% some diagnostics have extra dimension(s) of size 1 so we squeeze the read data -% (e.g. for stat. diags, a null dimension for "region", -% as by default the only defined region is the global domain) + +%%%%%%%%%%% load diagnostics %%%%%%%%%%% -% load statistical diagnostic output (monthly time-averaged output) - TRELAX_ave=squeeze(ncread('dynStDiag.0000000000.t001.nc','TRELAX_ave')); % for stat diags, t001 is global - THETA_lv_ave=squeeze(ncread('dynStDiag.0000000000.t001.nc','THETA_lv_ave')); - THETA_lv_std=squeeze(ncread('dynStDiag.0000000000.t001.nc','THETA_lv_std')); +% unit for temperature is degrees Celsius, velocity in m/s, +% surface height in m, heat flux in W/m^2 +% see run output file available_diagnostics.log -% load 2-D and 3-D variable diagnostic output, annual mean data - TRELAX=squeeze(ncread('surfDiag.nc','TRELAX')); - ETAN=squeeze(ncread('surfDiag.nc','ETAN')); - UVEL=ncread('dynDiag.nc','UVEL'); % dimension 63x62x15x100, contains extra point in x - VVEL=ncread('dynDiag.nc','UVEL'); % dimension 62x63x15x100, contains extra point in y - THETA=ncread('dynDiag.nc','THETA'); +% load statistical diagnostic output (set to monthly time-avg output) +% only one output region is defined: global (the default) + TRELAX_ave = ncread('dynStDiag.nc', 'TRELAX_ave'); % (depth, region, time); depth=1 (surf-only), region=1 (global) + THETA_lv_ave = ncread('dynStDiag.nc', 'THETA_lv_ave'); % (depth, region, time); region=1 (global) + THETA_lv_std = ncread('dynStDiag.nc', 'THETA_lv_std'); % (depth, region, time); region=1 (global) -%%%%%%%%%%% plot diagnostics +% load 2-D and 3-D variable diagnostic output, annual mean data + TRELAX = ncread('surfDiag.nc', 'TRELAX'); % (x, y, depth, time); depth=1 (surface-only) + ETAN = ncread('surfDiag.nc', 'ETAN'); % (x, y, depth, time); depth=1 (surface-only) + UVEL = ncread('dynDiag.nc', 'UVEL'); % (x, y, depth, time); x dim is Nx+1, includes eastern edge + VVEL = ncread('dynDiag.nc', 'UVEL'); % (x, y, depth, time); y dim is Ny+1, includes northern edge + THETA = ncread('dynDiag.nc', 'THETA'); % (x, y, depth, time) + +% MITgcm time unit (dim='T') is seconds, so read new time series +% for (dynStDiag) monthly time averages and convert into years. +% Note that the MITgcm time array values correspond to time at the end +% of the time-avg periods, i.e. subtract 1/24 to plot at mid-month. + Tmon = ncread('dynStDiag.nc', 'T')/(86400*360) - 1/24; +% and repeat to read time series for annual mean time output, +% subtract 0.5 to plot at mid-year. + Tann = ncread('surfDiag.nc', 'T')/(86400*360) - 0.5; + + +%%%%%%%%%%% plot diagnostics %%%%%%%%%%% +% No sizing of figures is specified below, will render at matlab default +% to view properly, resize windows appropriately % figure 4.6 - time series of global mean TRELAX and THETA by level - figure - subplot(1,3,1);plot(1/12:1/12:100,TRELAX_ave,'b','LineWidth',[4]); grid on - title('Net Heat Flux into Ocean (TRELAX\_ave)') - xlabel('Time (yrs)');ylabel('W/m^2') - subplot(1,3,2);plot(1/12:1/12:100,THETA_lv_ave(1,:),'c','LineWidth',[4]); grid on; hold on - plot(1/12:1/12:100,THETA_lv_ave(5,:),'g','LineWidth',[4]) - plot(1/12:1/12:100,THETA_lv_ave(15,:),'r','LineWidth',[4]) - title('Mean Potential Temp. by Level (THETA\_lv\_avg)') - xlabel('Time (yrs)');ylabel('^oC') - subplot(1,3,3);plot(1/12:1/12:100,THETA_lv_std(1,:),'c','LineWidth',[4]); grid on; hold on - plot(1/12:1/12:100,THETA_lv_std(5,:),'g','LineWidth',[4]) - plot(1/12:1/12:100,THETA_lv_std(15,:),'r','LineWidth',[4]) - title('Std. Dev. Potential Temp. by Level (THETA\_lv\_std)') - xlabel('Time (yrs)');ylabel('^oC') - -% alternatively, a global mean TRELAX (annual mean) could be computed as following, -% using HfacC(:,:,1) as a land-ocean mask. - TRELAX_ave_ann=squeeze(sum(sum(TRELAX.*repmat(rA.*HFacC(:,:,1),[1 1 100]))))./sum(sum(rA.*HFacC(:,:,1))); - subplot(1,3,1);hold on; plot(0.5:1:99.5,TRELAX_ave_ann,'m--','LineWidth',[2]); - -% figure 4.7 - 2-D plot of TRELAX and contours of free surface height (ETAN) at t=100 yrs - figure - pcolor(Xp1(1:62),Yp1(1:62),TRELAX(:,:,100)');colorbar;shading flat; set(gca,'CLim',[-250 250]); hold on - contour(X,Y,ETAN(:,:,100)',[-.6:.1:.6],'k'); set(gca,'XLim',[0 60]); set(gca,'YLim',[15 75]) - title({'Free surface height (contours, CI .1 m)';'and TRELAX (shading, W/m^2)'}) - xlabel('Longitude');ylabel('Latitude') -% note we have used routine pcolor here with Xp1, Yp1, which are the locations of -% the lower left corners of grid cells (here, both length 63 as -% they include the ending right and upper locations of the grid, -% respectively). Alternative one could plot shading using contourf with 'LineStyle' -% set to 'none' using dimensions X and Y, the grid cell center points. +% +% plot THETA at MITgcm k levels 1,5,15 (SST, -305 m, -1705 m) + klevs = [1, 5, 15]; + + figure + subplot(221) + plot(Tmon,squeeze(TRELAX_ave(1,1,:)),'b','LineWidth',[4]) +% To specify colors for specific lines, matlab 2019b adds a +% new function colororder(); otherwise, plot the lines separately +% (providing a unique color spec) or grab the plot handle +% and change colors after plotting. + grid on + hold on + title('Net Heat Flux into Ocean (TRELAX\_ave)','FontSize',18) + set(gca,'Fontsize', 18) + xlabel('Time (yrs)') + ylabel('W/m^2') + set(gca,'YLim', [-400 0]) +% Alternatively, a global mean area-weighted TRELAX (annual mean) +% could be computed as follows, using HfacC(:,:,1), i.e. HfacC in +% the surface layer, as a land-ocean mask. +% First, compute total surface area of ocean points: + total_ocn_area = sum(sum(rA .* HFacC(:,:,1))); +% Broadcasting the arrays across the time axis makes this a bit awkward: + TRELAX_ave_ann = squeeze(sum(sum(TRELAX(:,:,1,:) .* ... + repmat(rA .* HFacC(:,:,1), [1 1 1 size(TRELAX,4)])))) / total_ocn_area; + plot(Tann, TRELAX_ave_ann, 'm--', 'LineWidth', [2]) + subplot(223) + plot(Tmon, squeeze(THETA_lv_ave(klevs,1,:)), 'LineWidth', [4]) + grid on + title('Mean Potential Temp. by Level (THETA\_lv\_avg)', 'FontSize', 18) + xlabel('Time (yrs)') + ylabel('^oC') + legendStrings = string(RC(klevs)) + ' m'; + legend(legendStrings) + set(gca,'Fontsize', 16) + subplot(224) + plot(Tmon, squeeze(THETA_lv_std(klevs,:)), 'LineWidth', [4]) + grid on + title('Std. Dev. Potential Temp. by Level (THETA\_lv\_std)', 'FontSize', 18) + set(gca,'Fontsize', 16) + xlabel('Time (yrs)') + ylabel('^oC') + legend(legendStrings) + +% figure 4.7 - 2-D plot of TRELAX and contours of free surface height +% (ETAN) at simulation end ( endTime = 3110400000. is t=100 yrs). +% + mask = HFacC; + mask(mask==0) = NaN; % create a 3-D land mask, with land points set to NaN + eta_masked = mask(:,:,1) .* ETAN(:,:,1,end); + figure + pcolor(Xp1(1:end-1), Yp1(1:end-1), TRELAX(:,:,1,end)') + colorbar + shading flat + colormap(bluetored) + set(gca,'CLim', [-250 250]) + hold on + contour(X,Y,eta_masked',[-.6:.1:.6],'k') + set(gca,'XLim', [0 60]) + set(gca,'YLim', [15 75]) + title({'Free surface height (contours, CI .1 m)';'and TRELAX (shading, W/m^2)'}) + xlabel('Longitude') + ylabel('Latitude') +% Note we have used routine pcolor here with Xp1, Yp1, which are the +% locations of the lower left corners of grid cells +% (here, length Nx+1,Ny+1 as they include the ending right and upper +% locations of the grid, respectively). We don't pass pcolor the +% +1 location, but matlab pcolor ignores the last row and column +% when plotting, here conveniently land points. +% Alternative one could plot shading using contourf with 'LineStyle' +% set to 'none' with coordinates X and Y, the grid cell center +% locations. Also note we mask the land values as NaN when contouring +% the free surface height. -% figure 4.8 - barotropic streamfunction at t=100 yrs - figure - ubt=squeeze(sum(UVEL.*permute(repmat(drF,[1 63 62 100]),[2 3 1 4]),3)); % depth-integrated u velocity - psi=cumsum(-ubt.*repmat(dyG,[1 1 100]), 2); % compute barotropic streamfunction - clabel(contourf(Xp1,Yp1,[zeros(63,1) psi(:,:,100)]'/1e6,[-35:5:35],'k'));colorbar - set(gca,'XLim',[0 60]);set(gca,'Ylim',[15 75]) - title('Barotropic Streamfunction (Sv)') - xlabel('Longitude');ylabel('Latitude') -% note psi is computed and plotted at the grid cell corners and is dimensioned 63x63 -% cumsum is done in y-direction; we have a wall at southern boundary (i.e. no reentrant flow from north), so we need to -% add a row of zeros to specify psi(j=1). - -% figure 4.9 - potential temperature at 220m depth and xz slice at 28.5N, -% yr. 100 - figure - subplot(1,2,1); contourf(XC,YC,THETA(:,:,4,100),0:2:30);colorbar - title('THETA 220m Depth (^oC)'); set(gca,'CLim',[0 30]) - xlabel('Longitude');ylabel('Latitude') - subplot(1,2,2); contourf(X,RC,squeeze(THETA(:,15,:,100))',0:2:30);colorbar - title('THETA at 30N (^oC)');set(gca,'CLim',[0 30]) - xlabel('Longitude');ylabel('Depth (m)') -% note plots are a bit ugly at the boundaries due to land cell zero values -% to make a nicer looking contour plot, either copy the neighbor ocean -% data over to the land cells, or use a mask of NaN for land: mask=HfacC; mask(HfacC==0)=NaN; -% and multiply THETA by this mask +% figure 4.8 - barotropic streamfunction, plot at simulation end +% (w/overlaid labeled contours) +% + ubt = squeeze(sum(UVEL .* permute(repmat(drF, [1 Nx+1 Ny size(UVEL,4)]), ... + [2 3 1 4]), 3)); % depth-integrated u velocity + psi = zeros(Nx+1, Ny+1, size(UVEL,4)); + psi(:,2:end,:) = cumsum(-ubt .* repmat(dyG, [1 1 size(UVEL,4)]), 2) ... + / 1.e6; % compute streamfn in Sv (for each yr) +% Note psi is computed and plotted at the grid cell corners and we +% compute as dimensioned (Nx+1,Ny); as noted, UVEL contains an extra +% data point in x, at the eastern edge. cumsum is done in y-direction. +% We have a wall at southern boundary (i.e. no reentrant flow from +% north), ergo psi(j=1) is accomplished by declaring psi +% to be shape (Nx+1, Ny+1, size(UVEL,4)) where size(UVEL, 4) is the +% size of the time dimension. + + figure + clabel(contourf(Xp1, Yp1, psi(:,:,end)', [-35:5:35], 'k')) + colorbar + colormap(blueyelred) + set(gca, 'XLim', [0 60]) + set(gca, 'Ylim', [15 75]) + set(gca, 'Clim', [-35 35]) + title('Barotropic Streamfunction (Sv)') + xlabel('Longitude') + ylabel('Latitude') - - - - - +% figure 4.9 - potential temp at depth and xz slice, at simulation end +% +% plot THETA at MITgcm k=4 (220 m depth) and j=15 (28.5N) + klev = 4; + jloc = 15; + + theta_masked = mask(:,:,klev) .* THETA(:,:,klev,end); + figure + subplot(121) +% again we use pcolor for the plan view and provide the +% corner point locations XG,YG via Xp1,Yp1 + pcolor(Xp1(1:end-1), Yp1(1:end-1), THETA(:,:,klev,end)') + shading flat + hold on + colorbar + colormap(coolwarm) +% but to overlay contours we provide the cell centers +% and mask out boundary/land cells +% also note we are passing contour 2-D coordinates XC,YC +% so no transpose on THETA needed + contour(XC, YC, theta_masked, [0:2:30], 'k') + set(gca, 'XLim', [0 60]) + set(gca, 'Ylim', [15 75]) + set(gca, 'Clim', [0 30]) + title(['a) THETA ' num2str(RC(klev)) ' m Depth (^oC)']) + xlabel('Longitude') + ylabel('Latitude') + +% For the xz slice, our limited vertical resolution makes for an ugly +% pcolor plot, we'll shade using contour instead, providing the centers +% of the vertical grid cells and cell centers in the x-dimension. +% Also mask out land cells at the boundary, which results in slight +% white space at domain edges. + theta_masked = squeeze(mask(:,jloc,:).*THETA(:,jloc,:,end)); + subplot(122) + contourf(X, RC, theta_masked', 0:2:30) + colorbar + title(['b) THETA at ' num2str(Y(jloc)) 'N (^oC)']) + set(gca, 'CLim', [0 30]) + set(gca, 'XLim', [0 60]) + set(gca, 'YLim', [-1800 0]) + xlabel('Longitude') + ylabel('Depth (m)') +% One approach to avoiding the white space at boundaries/top/bottom +% is to copy neighboring tracer values to land cells prior to contouring +% (and don't mask), and augment a row of z=1 data at the ocean surface +% and a row at the ocean bottom. +% (see tutorial Southern Ocean Reentrant Channel for an example) +% The white space occurs because contour uses data at cell centers, with +% values masked/undefined beyond the cell centers toward boundaries. + +% To instead plot using pcolor, pass location of vertical cell faces RF: +% +% RF=ncread('grid.nc', 'RF') +% pcolor(Xp1(1:end-1), RF(1:end-1), squeeze(THETA(:,jloc,:,end))') +% shading flat; colormap(coolwarm) +% +% but note that unlike python, matlab pcolor doesn't plot the bottom +% layer of valid temperature data (the ending column) diff --git a/verification/tutorial_baroclinic_gyre/analysis/plotting_codes.py b/verification/tutorial_baroclinic_gyre/analysis/plotting_codes.py deleted file mode 100644 index 64d2063018..0000000000 --- a/verification/tutorial_baroclinic_gyre/analysis/plotting_codes.py +++ /dev/null @@ -1,77 +0,0 @@ -# import python modules -import numpy as np -import matplotlib.pyplot as plt -import xarray as xr - -# load grid -grid = xr.open_dataset('grid.nc') - -# load diagnostics -# statistical diagnostics -dynStDiag = xr.open_dataset('mnc_test_0004/dynStDiag.0000000000.t001.nc') -# surface (2D) diagnostics -surfDiag = xr.open_dataset('surfDiag.nc') -# 3D diagnostics -dynDiag = xr.open_dataset('dynDiag.nc') - - -# plot diagnostics - -# figure 4.6 - time series of global mean TRELAX and THETA by level -plt.subplot(211) -dynStDiag.TRELAX_ave.plot() -plt.ylabel('W/m^2') -plt.title('a) Net Heat Flux into Ocean (TRELAX_ave)') - -plt.subplot(223) -dynStDiag.THETA_lv_ave.isel(Zmd000015=0).plot(label='T_surf') -dynStDiag.THETA_lv_ave.isel(Zmd000015=4).plot(label='T_300m') -dynStDiag.THETA_lv_ave.isel(Zmd000015=14).plot(label='T_abyss') -plt.legend() -plt.ylabel('Degrees Celsius') -plt.title('b) Mean Potential Temperature by level (THETA_lv_ave)') - -plt.subplot(224) -dynStDiag.THETA_lv_std.isel(Zmd000015=0).plot(label='T_surf') -dynStDiag.THETA_lv_std.isel(Zmd000015=4).plot(label='T_300m') -dynStDiag.THETA_lv_std.isel(Zmd000015=14).plot(label='T_abyss') -plt.legend() -plt.ylabel('Degrees Celsius') -plt.title('c) Std. Dev. Potential Temperature by level (THETA_lv_std)') - -plt.show() - - -# figure 4.7 - 2 D plot of TRELAX and contours of -# free surface height (ETAN) at t=100 years - -surfDiag.TRELAX[-1,0,:,:].plot(cmap='RdBu', vmin=-250, vmax=250) -surfDiag.ETAN[-1,0,:,:].plot.contour(levels=np.linspace(-0.6,0.6,13), colors='k') - -plt.show() - - -# figure 4.8 - barotropic streamfunction at t = 100 years - -ubt = (dynDiag.UVEL.rename({'Zmd000015':'Z'})*grid.drF).sum(dim='Z') -psi = (ubt*grid.dyG).cumsum(dim='Y') - -(psi[-1,:,:]/1e6).plot.contourf(levels=np.linspace(-30, 30, 13), cmap='RdBu') -plt.show() - - -# figure 4.9 - potential temperature at 220 m depth and xz slice at 28.5 N - -plt.subplot(121) -dynDiag.THETA[-1,3,:,:].plot.contourf(levels=np.linspace(0,30,16), cmap='inferno') -plt.title('THETA at 220 m depth') - -plt.subplot(122) -plt.contourf(grid.X, grid.Z, dynDiag.THETA[-1,:,14,:], np.linspace(0,30,16), cmap='inferno') -plt.colorbar() -plt.ylabel('Depth (m)') -plt.xlabel('Longitude') -plt.title('THETA at 28.5 N') - -plt.show() - diff --git a/verification/tutorial_baroclinic_gyre/analysis/python_plots.py b/verification/tutorial_baroclinic_gyre/analysis/python_plots.py new file mode 100644 index 0000000000..cad7155a5f --- /dev/null +++ b/verification/tutorial_baroclinic_gyre/analysis/python_plots.py @@ -0,0 +1,265 @@ +# import python modules +import numpy as np +import matplotlib.pyplot as plt +import netCDF4 as nc + + +########### load grid data ########### + +# Load grid variables; names correspond with MITgcm source code. +# (if using standard binary output instead of netcdf, these are dumped +# to individual files, e.g. 'RC.data' etc.) +# Assumes that output in multiple tiles has been concatenated into +# global files (used script utils/python/MITgcmutils/scripts/gluemncbig) +# and moved into the top directory; +# see MITgcm user manual section 4.2.4.1 + +# Using a spherical polar grid, all X,Y variables in lon,lat coordinates +# vertical grid provided in meters, area in m^2 + +grid = nc.Dataset('grid.nc') +# 1-D fields +RC = grid['RC'][:] # vertical grid, cell center locations +drF = grid['drF'][:] # vertical spacing of grid cells (thickness of cells) +# 2-D fields (y,x) +XC = grid['XC'][:] # x-location of gridcell centers +YC = grid['YC'][:] # y-location of gridcell centers +dyG = grid['dyG'][:] # grid spacing in y-dim (separation between corners) +rA = grid['rA'][:] # surface area of gridcells +# 3-D fields (z,y,x) +HFacC = grid['HFacC'][:] # vertical fraction of cell which is ocean + +# For convenience, load additional dimensional variables from +# netcdf files (these variables are NOT included in binary output) +# These grid variables are also present in netcdf diagnostic data files. +# 1-D fields +X = grid['X'][:] # 1-D version of XC data +Y = grid['Y'][:] # 1-D version of YC data +Xp1 = grid['Xp1'][:] # x-location of lower left corner +Yp1 = grid['Yp1'][:] # y-location of lower left corner +# Xp1 and Yp1 are effectively 1-D versions of grid variables XG,YG with +# an extra data value at the eastern and northern ends of the domain. +# See MITgcm users manual section 2.11 for additional MITgcm grid info + +# Number of gridcells in x,y for full domain: +Nx = X.size +Ny = Y.size +# out-of-the-box tutorial configuration is 62x62 + + +########### load diagnostics ########### + +# unit for temperature is degrees Celsius, velocity in m/s, +# surface height in m, heat flux in W/m^2 +# see run output file available_diagnostics.log + +# load statistical diagnostic output (set to monthly time-avg output) +# only one output region is defined: global (the default) +dynStDiag = nc.Dataset('dynStDiag.nc') +TRELAX_ave = dynStDiag['TRELAX_ave'][:] # (time, region, depth); region=0 (global), depth=0 (surf-only) +THETA_lv_ave = dynStDiag['THETA_lv_ave'][:] # (time, region, depth); region=0 (global) +THETA_lv_std = dynStDiag['THETA_lv_std'][:] # (time, region, depth); region=0 (global) + +# load 2-D and 3-D variable diagnostic output, annual mean data +surfDiag = nc.Dataset('surfDiag.nc') +TRELAX = surfDiag['TRELAX'][:] # (time, depth, y, x); depth=0 (surface-only) +ETAN = surfDiag['ETAN'][:] # (time, depth, y, x); depth=0 (surface-only) +dynDiag = nc.Dataset('dynDiag.nc') +UVEL = dynDiag['UVEL'][:] # (time, depth, y, x); x dim is Nx+1, includes eastern edge +VVEL = dynDiag['VVEL'][:] # (time, depth, y, x); y dim is Ny+1, includes northern edge +THETA = dynDiag['THETA'][:] # (time, depth, y, x) + + +########### plot diagnostics ########### + +# figure 4.6 - time series of global mean TRELAX and THETA by level +# +# plot THETA at MITgcm k levels 1,5,15 (SST, -305 m, -1705 m) +klevs = [0, 4, 14] + +# MITgcm time unit (dim='T') is seconds, so create new time series +# for (dynStDiag) monthly time averages and convert into years. +# Note that the MITgcm time array values correspond to time at the end +# of the time-avg periods, i.e. subtract 1/24 to plot at mid-month. +Tmon = dynStDiag['T'][:]/(86400*360) - 1/24 +# and repeat to create time series for annual mean time output, +# subtract 0.5 to plot at mid-year. +Tann = surfDiag['T'][:]/(86400*360) - 0.5 + +plt.figure(figsize=(16,10)) +# global mean TRELAX +plt.subplot(221) +plt.plot(Tmon, TRELAX_ave[:,0,0], 'b', linewidth=4) +plt.grid('both') +plt.title('a) Net Heat Flux into Ocean (TRELAX_ave)') +plt.xlabel('Time (yrs)') +plt.ylabel('$\mathregular{W/m^2}$') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(-400, 0) +# Alternatively, a global mean area-weighted TRELAX (annual mean) +# could be computed as follows, using HfacC[0,:,:], i.e. HfacC in +# the surface layer, as a land-ocean mask. +# First, compute total surface area of ocean points: +total_ocn_area = (rA * HFacC[0,:,:]).sum() +# numpy is often smart enough to figure out broadcasting, +# depending on axis position. +# In next line, note a np.tile command is NOT necessary to span +# the grid array across the time axis: +TRELAX_ave_ann = (TRELAX[:,0,:,:] * rA * HFacC[0,:,:]).sum((1,2)) / total_ocn_area +plt.plot(Tann, TRELAX_ave_ann, 'm--', linewidth=4) + +plt.subplot(223) +plt.plot(Tmon, THETA_lv_ave[:,0,klevs], linewidth=4) +# To specify colors for specific lines, either change the +# default a priori, e.g. ax.set_prop_cycle(color=['r','g','c']) +# or after the fact, e.g. lh[0].set_color('r') etc. +plt.grid('both') +plt.title('b) Mean Potential Temp. by Level (THETA_lv_avg)') +plt.xlabel('Time (yrs)') +plt.ylabel('$\mathregular{^oC}$') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(0, 30) +plt.legend(RC[klevs], title='Z (m)') + +plt.subplot(224) +plt.plot(Tmon, THETA_lv_std[:,0,klevs], linewidth=4) +plt.grid('both') +plt.title('c) Std. Dev. Potential Temp. by Level (THETA_lv_std)') +plt.xlabel('Time (years)') +plt.ylabel('$\mathregular{^oC}$') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(0, 8) +plt.legend(RC[klevs], title='Z (m)') +plt.show() + +# figure 4.7 - 2-D plot of TRELAX and contours of free surface height +# (ETAN) at simulation end ( endTime = 3110400000. is t=100 yrs). +# +eta_masked = np.ma.MaskedArray(ETAN[-1,0,:,:], HFacC[0,:,:]==0) +plt.figure(figsize=(10,8)) +plt.pcolormesh(Xp1, Yp1, TRELAX[-1,0,:,:], cmap='RdBu_r') +plt.xlim(0, 60) +plt.ylim(15, 75) +plt.colorbar() +plt.clim(-250, 250) +plt.contour(X, Y, eta_masked, levels=np.r_[-.6:.7:.1], colors='black') +plt.title('Free surface height (contours, CI .1 m) and ' + 'TRELAX (shading, $\mathregular{W/m^2}$)') +plt.xlabel('Longitude') +plt.ylabel('Latitude') +plt.show() +# Note we have used routine pcolormesh with Xp1, Yp1, which are the +# locations of the lower left corners of grid cells +# (here, length Nx+1,Ny+1 as they include the ending right and upper +# locations of the grid, respectively). +# Alternative one could plot shading using contourf with dimensions +# X and Y, the grid cell center locations. +# Also note we mask the land values when contouring the free +# surface height. + +# figure 4.8 - barotropic streamfunction, plot at simulation end +# (w/overlaid labeled contours) +# +ubt = (UVEL * drF[:,np.newaxis,np.newaxis]).sum(1) # depth-integrated u velocity +# For ubt calculation numpy needs a bit of help with broadcasting +# the drF vector across [time,y,x] axes +psi = np.zeros((dynDiag['T'].size, Ny+1, Nx+1)) +psi[:,1:,:] = (-ubt * dyG).cumsum(1) / 1E6 # compute streamfn in Sv (for each yr) +# Note psi is computed and plotted at the grid cell corners and we +# compute as dimensioned (Ny,Nx+1); as noted, UVEL contains an extra +# data point in x, at the eastern edge. cumsum is done in y-direction. +# We have a wall at southern boundary (i.e. no reentrant flow from +# north), ergo psi(j=0) is accomplished by declaring psi +# to be shape (dynDiag['T'].size,Ny+1,Nx+1). + +plt.figure(figsize=(10,8)) +plt.contourf(Xp1, Yp1, psi[-1], np.arange(-35, 40, 5), cmap='RdYlBu_r') +plt.colorbar() +cs = plt.contour(Xp1, Yp1, psi[-1], np.arange(-35, 40, 5), colors='black') +plt.clabel(cs, fmt = '%.0f') +plt.xlim(0, 60) +plt.ylim(15, 75) +plt.title('Barotropic Streamfunction (Sv)') +plt.xlabel('Longitude') +plt.ylabel('Latitude'); +plt.show() + +# figure 4.9 - potential temp at depth and xz slice, at simulation end +# +# plot THETA at MITgcm k=4 (220 m depth) and j=15 (28.5N) +klev = 3 +jloc = 14 + +theta_masked = np.ma.MaskedArray(THETA[-1, klev,:,:], HFacC[klev,:,:]==0) +plt.figure(figsize=(16,6)) +plt.subplot(121) +# again we use pcolor for the plan view and provide the +# corner point locations XG,YG thru Xp1,Yp1 +plt.pcolormesh(Xp1, Yp1, THETA[-1,klev,:,:], cmap='coolwarm') +plt.clim(0, 30) +plt.colorbar() +# but to overlay contours we provide the cell centers +# and mask out boundary/land cells +plt.contour(X, Y, theta_masked, np.arange(0,30,2), colors='black') +plt.title('a) THETA at %g m Depth ($\mathregular{^oC}$)' %RC[klev]) +plt.xlim(0, 60) +plt.ylim(15, 75) +plt.xlabel('Longitude') +plt.ylabel('Latitude') + +# For the xz slice, our limited vertical resolution makes for an ugly +# pcolor plot, we'll shade using contour instead, providing the centers +# of the vertical grid cells and cell centers in the x-dimension. +# Also mask out land cells at the boundary, which results in slight +# white space at domain edges. +theta_masked = np.ma.MaskedArray(THETA[-1,:,jloc,:], HFacC[:,jloc,:]==0) +plt.subplot(122) +plt.contourf(X, RC, theta_masked, np.arange(0,30,.2), cmap='coolwarm') +plt.colorbar() +plt.contour(X, RC, theta_masked, np.arange(0,32,2), colors='black') +plt.title('b) THETA at %gN ($\mathregular{^oC}$)' %YC[jloc,0]) +plt.xlim(0, 60) +plt.ylim(-1800, 0) +plt.xlabel('Longitude') +plt.ylabel('Depth (m)') +plt.show() +# One approach to avoiding the white space at boundaries/top/bottom +# is to copy neighboring tracer values to land cells prior to contouring +# (and don't mask), and augment a row of z=0 data at the ocean surface +# and a row at the ocean bottom. +# (see tutorial Southern Ocean Reentrant Channel for an example) +# The white space occurs because contour uses data at cell centers, with +# values masked/undefined beyond the cell centers toward boundaries. + +# To instead plot using pcolor, pass location of vertical cell faces RF: +# RF=grid['RF'][:] +# plt.pcolormesh(Xp1, RF, THETA[-1,:,jloc,:], cmap='coolwarm') + + +# Note, the gluemncbig steps outlined in tutorial section 4.2.4.1 can be +# avoided by using the python package "MITgcmutils". Loading the grid +# and diagnostic output, in place of steps at the beginning of this +# script, can be accomplished by reading directly from the mnc output +# directories: +# +# from MITgcmutils import mnc +# grid=mnc.mnc_files('mnc_test_*/grid.t*.nc') +# XC=grid.variables['XC'][:] +# ... +# dynStDiag=mnc.mnc_files('mnc_test_*/dynStDiag.0000000000.t*.nc') +# TRELAX_ave=dynStDiag.variables['TRELAX_ave'][:] +# ... +# surfDiag=mnc.mnc_files('mnc_test_*/surfDiag.0000000000.t*.nc') +# TRELAX=surfDiag.variables['TRELAX'][:] +# ... +# dynDiag=mnc.mnc_files('mnc_test_*/dynDiag.0000000000.t*.nc') +# THETA=dynDiag.variables['THETA'][:] +# ... + +# An advantage using mnc_files() is that you aren't required to waste +# disk space assembling glued files. See MITgcm users manual chapter 11 +# for reference information on MITgcmutils. Note mnc_file() will +# generally NOT work with wildcard mnc_test_* directories from multiple +# runs are present unless you pass it the specific directories to read, +# e.g. for a 4-core mpi run output in mnc_test_0009 thru mnc_test_0012: +# dynStDiag=mnc.mnc_files('mnc_test_{0009..0012}/dynStDiag.0000000000.t*.nc') diff --git a/verification/tutorial_baroclinic_gyre/analysis/python_xr_plots.py b/verification/tutorial_baroclinic_gyre/analysis/python_xr_plots.py new file mode 100644 index 0000000000..905568d7ee --- /dev/null +++ b/verification/tutorial_baroclinic_gyre/analysis/python_xr_plots.py @@ -0,0 +1,252 @@ +# import python modules +import numpy as np +import matplotlib.pyplot as plt +import xarray as xr + +# python pkg xarray used to load netcdf files http://xarray.pydata.org +# xarray loads netcdf data and metadata into xarray structure Dataset +# (containing data in xarray DataArray) which includes information +# about dimensions, coordinates etc. +# Xarray simplifies some basic tasks, e.g. it is not necessary to +# provide axes arguments when plotting, but also more complex tasks +# such as broadcasting data to fill missing dimensions in DataArray +# arithmetic, for example. + + +########### load grid data ########### + +# Load grid variables; names correspond with MITgcm source code. +# (if using standard binary output instead of netcdf, these are dumped +# to individual files, e.g. 'RC.data' etc.) +# Assumes that output in multiple tiles has been concatenated into +# global files (used script utils/python/MITgcmutils/scripts/gluemncbig) +# and moved into the top directory; +# see MITgcm user manual section 4.2.4.1 + +# Using a spherical polar grid, all X,Y variables in lon,lat coordinates +# vertical grid provided in meters, area in m^2 + +grid = xr.open_dataset('grid.nc') + +# We will be using the following fields from the grid file: +# 1-D fields +# RC: vertical grid, cell center locations (this is coordinate Z) +# drF: vertical spacing of grid cells (thickness of cells) +# X: 1-D version of XC data +# Y: 1-D version of YC data +# Xp1: x-location of gridcell lower left corner +# Yp1: y-location of gridcell lower left corner +# Xp1 and Yp1 are effectively 1-D versions of grid variables XG,YG with +# an extra data value at the eastern and northern ends of the domain. +# 2-D fields (y,x) +# XC: x-location of gridcell centers +# YC: y-location of gridcell centers +# dyG: grid spacing in y-dim (i.e. separation between corners) +# rA: surface area of gridcells +# 3-D fields (z,y,x) +# HFacC: vertical fraction of cell which is ocean +# See MITgcm users manual section 2.11 for additional MITgcm grid info + +# Number of gridcells in x,y for full domain: +Nx = grid.X.size +Ny = grid.Y.size +# out-of-the-box tutorial configuration is 62x62 + + +########### load diagnostics ########### + +# unit for temperature is degrees Celsius, velocity in m/s, +# surface height in m, heat flux in W/m^2 +# see run output file available_diagnostics.log + +# load statistical diagnostic output (set to monthly time-avg output) +# only one output region is defined: global (the default) +dynStDiag = xr.open_dataset('dynStDiag.nc') +dynStDiag = dynStDiag.rename({'Zmd000015':'Z'}) +# includes diagnostics: +# TRELAX_ave: (time, region, depth); region=0 (global), depth=0 (surf-only) +# THETA_lv_ave: (time, region, depth); region=0 (global) +# THETA_lv_std: (time, region, depth); region=0 (global) + +# load 2-D and 3-D variable diagnostic output, annual mean data +surfDiag = xr.open_dataset('surfDiag.nc') +# TRELAX: (time, depth, y, x); depth=0 (surface-only) +# ETAN: (time, depth, y, x); depth=0 (surface-only) +dynDiag = xr.open_dataset('dynDiag.nc') +dynDiag = dynDiag.rename({'Zmd000015':'Z'}) +# UVEL: (time, depth, y, x); x dim. is Nx+1, includes eastern edge +# VVEL: (time, depth, y, x); y dim. is Ny+1, includes northern edge +# THETA: (time, depth, y, x) + +# Note the Z dimension above has a different name, we rename to the +# standard name 'Z' which will make life easier when we do some +# calculations using the raw data. This is because pkg/diagnostics +# has an option to select specific levels of a 3-D variable to be output. +# If 'levels' are selected in data.diagnostics, the following +# additional statement would be needed: +# dynDiag['Z'] = grid['Z'][dynDiag.diag_levels.astype(int)-1] + + +########### plot diagnostics ########### + +# figure 4.6 - time series of global mean TRELAX and THETA by level +# +# plot THETA at MITgcm k levels 1,5,15 (SST, -305 m, -1705 m) +klevs = [0, 4, 14] + +# MITgcm time unit (dim='T') is seconds, so create new coordinate +# for (dynStDiag) monthly time averages and convert into years. +# Note that the MITgcm time array values correspond to time at the end +# of the time-avg periods, i.e. subtract 1/24 to plot at mid-month. +Tmon = (dynStDiag['T']/(86400*360) - 1/24).assign_attrs(units='years') +# and repeat to create time series for annual mean time output, +# subtract 0.5 to plot at mid-year. +Tann = (surfDiag['T']/(86400*360) - 0.5).assign_attrs(units='years') + +plt.figure(figsize=(16,10)) +# global mean TRELAX +plt.subplot(221) +# we tell xarray to plot using this new abscissa Tmon (instead of T) +# xarray is smart enough to ignore the singleton dimensions +# for region and depth +dynStDiag.TRELAX_ave.assign_coords(T=Tmon).plot(color='b', linewidth=4) +plt.grid('both') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(-400, 0) +# Alternatively, a global mean area-weighted TRELAX (annual mean) +# could be computed as follows, using HfacC[0,:,:], i.e. HfacC in +# the surface layer, as a land-ocean mask, using xarray .where() +# First, compute total surface area of ocean points: +tot_ocean_area = (grid.rA.where(grid.HFacC[0,:,:]!=0)).sum(('Y', 'X')) +# broadcasting with xarray is more flexible than basic numpy +# because it matches axis name (not dependent on axis position) +# grid area is broadcast across the time dimension below +TRELAX_ave_ann = (surfDiag.TRELAX * grid.rA.where(grid.HFacC[0,:,:]!=0) + ).sum(('Y', 'X')) / tot_ocean_area +TRELAX_ave_ann.assign_coords(T=Tann).plot( + color='m', linewidth=4, linestyle='dashed') +plt.title('a) Net Heat Flux into Ocean (TRELAX_ave)') + +plt.subplot(223) +# mean THETA by level +# Here is an example of allowing xarray to do even more of the work +# and labeling for you, given selected levels, using 'hue' parameter +THETAmon = dynStDiag.THETA_lv_ave.assign_coords(T=Tmon, Z=grid.RC) +THETAmon.isel(Z=klevs).plot(hue='Z', linewidth=4) +plt.grid('both') +plt.title('b) Mean Potential Temp. by Level (THETA_lv_avg)') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(0, 30); +# Note a legend (of Z depths) was included automatically. +# Specifying colors is not so simple however, either change +# the default a priori, e.g. ax.set_prop_cycle(color=['r','g','c']) +# or after the fact, e.g. lh[0].set_color('r') etc. + +plt.subplot(224) +# standard deviation of THETA by level +THETAmon = dynStDiag.THETA_lv_std.assign_coords(T=Tmon, Z=grid.RC) +THETAmon.isel(Z=klevs).plot(hue='Z', linewidth=4) +plt.grid('both') +plt.title('c) Std. Dev. Potential Temp. by Level (THETA_lv_std)') +plt.xlim(0, np.ceil(Tmon[-1])) +plt.ylim(0, 8) +plt.show() + +# figure 4.7 - 2-D plot of TRELAX and contours of free surface height +# (ETAN) at simulation end ( endTime = 3110400000. is t=100 yrs). +## +eta_masked = surfDiag.ETAN[-1,0,:,:].where(grid.HFacC[0,:,:]!=0) +plt.figure(figsize=(10,8)) +surfDiag.TRELAX[-1,0,:,:].plot(cmap='RdBu_r', vmin=-250, vmax=250) +plt.xlim(0, 60) +plt.ylim(15, 75) +eta_masked.plot.contour(levels=np.arange(-.6,.7,.1), colors='k') +plt.title('Free surface height (contours, CI .1 m) and ' + 'TRELAX (shading, $\mathregular{W/m^2}$)') +plt.show() +# By default, this uses a plotting routine similar to +# pcolormesh to plot TRELAX. +# Note that xarray uses the coordinates of TRELAX automatically from +# the netcdf metadata! With axis labels! Even though the plotted TRELAX +# DataArray has coordinates Y,X (cell centers) it is plotted correctly +# (effectively shading cells between Yp1,Xp1 locations, which are the +# lower left corners of grid cells, i.e. YG,XG). Also note we mask the +# land values when contouring the free surface height. Alternatively, +# one could make a smoother color plot using contourf: +# surfDiag.TRELAX[-1,0,:,:].plot.contourf( +# cmap='RdBu_r',levels=np.linspace(-250,250,1000)) + +# figure 4.8 - barotropic streamfunction, plot at simulation end +# (w/overlaid labeled contours) +# +# here is an example where the xarray broadcasting is superior: +ubt = (dynDiag.UVEL * grid.drF).sum('Z') # depth-integrated u velocity +psi = (-ubt * grid.dyG).cumsum('Y').pad(Y=(1,0),constant_values=0.) / 1E6 +# Note psi is computed and plotted at the grid cell corners which we +# compute as dimensioned (Ny,Nx+1); as noted, UVEL contains an extra +# data point in x, at the eastern edge. cumsum is done in y-direction. +# We have a wall at southern boundary (i.e. no reentrant flow from +# north). We need to add a row of zeros to specify psi(j=0). +# xarray .pad() allows one to add a row at the top and/or bottom, +# we just need the bottom row (j=0) padding the computed psi array. +# Thus after padding psi is shape (dynDiag.UVEL['T'].size,Ny+1,Nx+1) +# Finally, since psi is computed at grid cell corners, +# we need to re-assign Yp1 coordinate to psi. +# As an aside comment, if data manipulation with xarray still seems a +# bit cumbersome, you are not mistaken... there are tools developed +# such as xgcm (https://xgcm.readthedocs.io/en/latest/) specifically +# for this purpose. +# Note xxx.values extracts the numpy-array data from xarray +# DataArray xxx; this is done in the plot statement below: + +plt.figure(figsize=(10,8)) +psi.isel(T=-1).assign_coords(Y=grid.Yp1.values).plot.contourf( + levels=np.linspace(-30, 30, 13), cmap='RdYlBu_r') +cs = psi.isel(T=-1).assign_coords(Y=grid.Yp1.values).plot.contour( + levels=np.arange(-35, 40, 5), colors='k') +plt.clabel(cs, fmt = '%.0f') +plt.xlim(0, 60) +plt.ylim(15, 75) +plt.title('Barotropic Streamfunction (Sv)'); +plt.show() + +# figure 4.9 - potential temp at depth and xz slice, at simulation end +# +# plot THETA at MITgcm k=4 (220 m depth) and j=15 (28.5N) +klev = 3 +jloc = 14 + +theta_masked = dynDiag.THETA[-1,klev,:,:].where(grid.HFacC[klev,:,:]!=0) +plt.figure(figsize=(16,6)) +plt.subplot(121) +# again we use pcolor for this plan view, grabs coordinates automatically +dynDiag.THETA[-1,klev,:,:].plot(cmap='coolwarm', vmin=0, vmax=30 ) +# and overlay contours w/masked out boundary/land cells +theta_masked.plot.contour(levels=np.linspace(0, 30, 16), colors='k') +plt.xlim(0, 60) +plt.ylim(15, 75) +plt.title('a) THETA at %g m Depth ($\mathregular{^oC}$)' %grid.RC[klev]) + +# For the xz slice, our limited vertical resolution makes for an ugly +# pcolor plot, we'll shade using contour instead, providing the centers +# of the vertical grid cells and cell centers in the x-dimension. +# Also mask out land cells at the boundary, which results in slight +# white space at domain edges. +theta_masked = dynDiag.THETA[-1,:,jloc,:].where(grid.HFacC[:,jloc,:]!=0) +plt.subplot(122) +theta_masked.plot.contourf(levels=np.arange(0,30,.2), cmap='coolwarm') +theta_masked.plot.contour(levels=np.arange(0,30,2), colors='k') +plt.title('b) THETA at %gN ($\mathregular{^oC}$)' %grid.YC[jloc,0]) +plt.xlim(0, 60) +plt.ylim(-1800, 0) +plt.show() +# One approach to avoiding the white space at boundaries/top/bottom +# is to copy neighboring tracer values to land cells prior to contouring +# (and don't mask), and augment a row of z=0 data at the ocean surface +# and a row at the ocean bottom. +# (see tutorial Southern Ocean Reentrant Channel for an example) +# The white space occurs because contour uses data at cell centers, with +# values masked/undefined beyond the cell centers toward boundaries. + +# To instead plot using pcolor: +# theta_masked.assign_coords(Z=grid.RC.values).plot(cmap='coolwarm') diff --git a/verification/tutorial_baroclinic_gyre/code/SIZE.h b/verification/tutorial_baroclinic_gyre/code/SIZE.h index c729284432..916e0306c4 100644 --- a/verification/tutorial_baroclinic_gyre/code/SIZE.h +++ b/verification/tutorial_baroclinic_gyre/code/SIZE.h @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/tutorial_baroclinic_gyre/input/gendata.m b/verification/tutorial_baroclinic_gyre/input/gendata.m index 3499d99709..7db2c66c28 100644 --- a/verification/tutorial_baroclinic_gyre/input/gendata.m +++ b/verification/tutorial_baroclinic_gyre/input/gendata.m @@ -1,28 +1,56 @@ -ieee='b'; -accuracy='real*4'; +ieee = 'b'; % big-endian format +accuracy = 'float32'; % this is single-precision (='real*4') -Ho=1800; % depth of ocean -nx=62; % gridpints in x -ny=62; % gridpints in y -xo=0; yo=15; % origin in x,y for ocean -dx=1;dy=1; % grid spacing in x, y +Ho = 1800; % depth of ocean (m) +nx = 62; % gridpoints in x +ny = 62; % gridpoints in y +xo = 0; % origin in x,y for ocean domain +yo = 15; % (i.e. southwestern corner of ocean domain) +dx = 1; % grid spacing in x (degrees longitude) +dy = 1; % grid spacing in y (degrees latitude) +xeast = xo + (nx-2)*dx; % eastern extent of ocean domain +ynorth = yo + (ny-2)*dy; % northern extent of ocean domain % Flat bottom at z=-Ho -h=-Ho*ones(nx,ny); +h = -Ho * ones(nx, ny); + % create a border ring of walls around edge of domain -h(1,:)=0;h(end,:)=0; -h(:,1)=0;h(:,end)=0; -fid=fopen('bathy.bin','w',ieee); fwrite(fid,h,accuracy); fclose(fid); +h([1 end], :) = 0; % set ocean depth to zero at east and west walls +h(:, [1 end]) = 0; % set ocean depth to zero at south and north walls +fid=fopen('bathy.bin', 'w', ieee); +fwrite(fid, h, accuracy); +fclose(fid); + +% ocean domain extends from (xo,yo) to (xeast,ynorth) +% (i.e. the ocean spans nx-2, ny-2 grid cells) +% out-of-box-config: xo=0, yo=15, dx=dy=1 deg, ocean extent (0E,15N)-(60E,75N) +% model domain includes a land cell surrounding the ocean domain +% The full model domain cell centers are located at: +% XC(:,1) = -0.5, +0.5, ..., +60.5 (degrees longitiude) +% YC(1,:) = 14.5, 15.5, ..., 75.5 (degrees latitude) +% and full model domain cell corners are located at: +% XG(:,1) = -1, 0, ..., 60 [, 61] (degrees longitiude) +% YG(1,:) = 14, 15, ..., 75 [, 76] (degrees latitude) +% where the last value in brackets is not included +% in the MITgcm grid variables XG,YG (but is in variables Xp1,Yp1) +% and reflects the eastern and northern edge of the model domain respectively. +% See section 2.11.4 of the MITgcm users manual. -% Wind-stress -tauMax=0.1; -x=(xo-dx/2):dx:(xo+(nx-2)*dx+dx/2); -y=(yo-dy/2):dy:(yo+(ny-2)*dy+dy/2); -[X,Y]=ndgrid(x,y); -tau=-tauMax*cos(2*pi*((Y-yo)/(ny-2)/dy)); % ny-2 accounts for walls at N,S boundaries -fid=fopen('windx_cosy.bin','w',ieee); fwrite(fid,tau,accuracy); fclose(fid); +% Zonal wind-stress +tauMax = 0.1; +x = (xo-dx) : dx : xeast; +y = (yo-dy/2) : dy : (ynorth+dy/2); +[X,Y] = ndgrid(x, y); % zonal wind-stress on (XG,YC) points +tau = -tauMax * cos(2*pi*((Y-yo)/(ny-2)/dy)); % ny-2 accounts for walls at N,S boundaries +fid=fopen('windx_cosy.bin', 'w', ieee); +fwrite(fid, tau, accuracy); +fclose(fid); -%restoring temperature -Tmax=30;Tmin=0; -Trest=(Tmax-Tmin)/(ny-2)*((yo+dy*(ny-2)-Y)); -fid=fopen('SST_relax.bin','w',ieee); fwrite(fid,Trest,accuracy); fclose(fid); +% Restoring temperature (function of y only, +% from Tmax at southern edge to Tmin at northern edge) +Tmax = 30; +Tmin = 0; +Trest = (Tmax-Tmin)/(ny-2)/dy * (ynorth-Y) + Tmin; % located and computed at YC points +fid=fopen('SST_relax.bin', 'w', ieee); +fwrite(fid, Trest, accuracy); +fclose(fid); diff --git a/verification/tutorial_baroclinic_gyre/input/gendata.py b/verification/tutorial_baroclinic_gyre/input/gendata.py new file mode 100644 index 0000000000..de8329a918 --- /dev/null +++ b/verification/tutorial_baroclinic_gyre/input/gendata.py @@ -0,0 +1,51 @@ +import numpy as np +from numpy import cos, pi + +Ho = 1800 # depth of ocean (m) +nx = 62 # gridpoints in x +ny = 62 # gridpoints in y +xo = 0 # origin in x,y for ocean domain +yo = 15 # (i.e. southwestern corner of ocean domain) +dx = 1 # grid spacing in x (degrees longitude) +dy = 1 # grid spacing in y (degrees latitude) +xeast = xo + (nx-2)*dx # eastern extent of ocean domain +ynorth = yo + (ny-2)*dy # northern extent of ocean domain + +# Flat bottom at z=-Ho +h = -Ho * np.ones((ny, nx)) + +# create a border ring of walls around edge of domain +h[:, [0,-1]] = 0 # set ocean depth to zero at east and west walls +h[[0,-1], :] = 0 # set ocean depth to zero at south and north walls +# save as single-precision (float32) with big-endian byte ordering +h.astype('>f4').tofile('bathy.bin') + +# ocean domain extends from (xo,yo) to (xeast,ynorth) +# (i.e. the ocean spans nx-2, ny-2 grid cells) +# out-of-box-config: xo=0, yo=15, dx=dy=1 deg, ocean extent (0E,15N)-(60E,75N) +# model domain includes a land cell surrounding the ocean domain +# The full model domain cell centers are located at: +# XC(:,1) = -0.5, +0.5, ..., +60.5 (degrees longitiude) +# YC(1,:) = 14.5, 15.5, ..., 75.5 (degrees latitude) +# and full model domain cell corners are located at: +# XG(:,1) = -1, 0, ..., 60 [, 61] (degrees longitiude) +# YG(1,:) = 14, 15, ..., 75 [, 76] (degrees latitude) +# where the last value in brackets is not included +# in the MITgcm grid variables XG,YG (but is in variables Xp1,Yp1) +# and reflects the eastern and northern edge of the model domain respectively. +# See section 2.11.4 of the MITgcm users manual. + +# Zonal wind-stress +tauMax = 0.1 +x = np.linspace(xo-dx, xeast, nx) +y = np.linspace(yo-dy, ynorth, ny) + dy/2 +Y, X = np.meshgrid(y, x, indexing='ij') # zonal wind-stress on (XG,YC) points +tau = -tauMax * cos(2*pi*((Y-yo)/(ny-2)/dy)) # ny-2 accounts for walls at N,S boundaries +tau.astype('>f4').tofile('windx_cosy.bin') + +# Restoring temperature (function of y only, +# from Tmax at southern edge to Tmin at northern edge) +Tmax = 30 +Tmin = 0 +Trest = (Tmax-Tmin)/(ny-2)/dy * (ynorth-Y) + Tmin # located and computed at YC points +Trest.astype('>f4').tofile('SST_relax.bin') diff --git a/verification/tutorial_barotropic_gyre/README b/verification/tutorial_barotropic_gyre/README.md similarity index 97% rename from verification/tutorial_barotropic_gyre/README rename to verification/tutorial_barotropic_gyre/README.md index adec115c91..03032c9e90 100644 --- a/verification/tutorial_barotropic_gyre/README +++ b/verification/tutorial_barotropic_gyre/README.md @@ -5,18 +5,21 @@ Tutorial Example: "Barotropic gyre" also "barotropic_gyre_in_a_box" in release.1 branch) Configure and compile the code: +``` cd build ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] make depend make cd .. - +``` To run: +``` cd run ln -s ../input/* . ln -s ../build/mitgcmuv . ./mitgcmuv > output.txt cd .. +``` There is comparison output in the directory: results/output.txt diff --git a/verification/tutorial_barotropic_gyre/code/SIZE.h_mpi b/verification/tutorial_barotropic_gyre/code/SIZE.h_mpi index 0ac1608dcb..1193509bb2 100644 --- a/verification/tutorial_barotropic_gyre/code/SIZE.h_mpi +++ b/verification/tutorial_barotropic_gyre/code/SIZE.h_mpi @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/tutorial_barotropic_gyre/input/gendata.m b/verification/tutorial_barotropic_gyre/input/gendata.m index a63969e94d..2783088341 100644 --- a/verification/tutorial_barotropic_gyre/input/gendata.m +++ b/verification/tutorial_barotropic_gyre/input/gendata.m @@ -1,25 +1,59 @@ -ieee='b'; % big endian format -accuracy='real*4'; % this is single precision +ieee = 'b'; % big-endian format +accuracy = 'float32'; % this is single-precision (='real*4') -Ho=5000; % ocean depth in meters -nx=62; % number of gridpoints in x-direction -ny=62; % number of gridpoints in y-direction +Ho = 5000; % ocean depth in meters +nx = 62; % number of gridpoints in x-direction +ny = 62; % number of gridpoints in y-direction +xo = 0; % origin in x,y for ocean domain +yo = 0; % (i.e. southwestern corner of ocean domain) +dx = 20; % grid spacing in x (km) +dy = 20; % grid spacing in y (km) +xeast = xo + (nx-2)*dx; % eastern extent of ocean domain +ynorth = yo + (ny-2)*dy; % northern extent of ocean domain % Flat bottom at z=-Ho -h=-Ho*ones(nx,ny); - -% Walls (surrounding domain) - generate bathymetry file -h([1 end],:)=0; -h(:,[1 end])=0; -fid=fopen('bathy.bin','w',ieee); fwrite(fid,h,accuracy); fclose(fid); - -% Wind-stress -tauMax=0.1; % wind stress maximum -x=((0:nx-1)-0.5)/(nx-2); % x-coordinate, centered at grid u-point -y=((0:ny-1)-0.5)/(ny-2); % y-coordinate, centered at grid v-point -[X,Y]=ndgrid(x,y); - -tau=-tauMax*cos(pi*Y); % generate file for -cos(y) profile between 0-1200km -fid=fopen('windx_cosy.bin','w',ieee); fwrite(fid,tau,accuracy); fclose(fid); -tau=tauMax*sin(pi*Y); % generate file for sin(y) profile between 0-1200km -fid=fopen('windx_siny.bin','w',ieee); fwrite(fid,tau,accuracy); fclose(fid); +h = -Ho * ones(nx, ny); + +% Walls (surrounding domain); generate bathymetry file +h([1 end], :) = 0; % set ocean depth to zero at east and west walls +h(:, [1 end]) = 0; % set ocean depth to zero at south and north walls +fid = fopen('bathy.bin', 'w', ieee); +fwrite(fid, h, accuracy); +fclose(fid); + +% Ocean domain extends from (xo,yo) to (xeast,ynorth) +% (i.e. the ocean spans nx-2, ny-2 grid cells) +% out-of-box-config: xo=yo=0, dx=dy=20 km, ocean extent (0,0)-(1200,1200) km +% model domain includes a land cell surrounding the ocean domain +% The full model domain cell centers are located at: +% XC(:,1) = -10, +10, ..., +1210 (km) +% YC(1,:) = -10, +10, ..., +1210 (km) +% and full model domain cell corners are located at: +% XG(:,1) = -20, 0, ..., 1200 [, 1220] (km) +% YG(1,:) = -20, 0, ..., 1200 [, 1220] (km) +% where the last value in brackets is not included in the MITgcm grid variable +% and reflects the eastern and northern edge of the model domain respectively. +% See section 2.11.4 of the MITgcm users manual. + +% Zonal wind-stress, located at u-points (see section 2.11.4) +% here we non-dimensionalize: 0 at southern and western ocean boundary +% to 1.0 at eastern and northern ocean boundary +% for the purpose of applying sinusoidal-shaped wind stress curve +tauMax = 0.1; % wind stress maximum +x = (-1:nx-2) / (nx-2); % non-dim x-coordinate, located at XG points +y = ((0:ny-1)-0.5) / (ny-2); % non-dim y-coordinate, located at YC points +[X,Y] = ndgrid(x, y); + +% generate file for -cos(y) profile +tau = -tauMax * cos(pi*Y); +fid = fopen('windx_cosy.bin', 'w', ieee); +fwrite(fid, tau, accuracy); +fclose(fid); + +% generate file for sin(y) profile +tau = tauMax * sin(pi*Y); +fid = fopen('windx_siny.bin', 'w', ieee); +fwrite(fid, tau, accuracy); +fclose(fid); + +% Meridional wind-stress, if desired, would be located at v-points (XC, YG) diff --git a/verification/tutorial_barotropic_gyre/input/gendata.py b/verification/tutorial_barotropic_gyre/input/gendata.py new file mode 100644 index 0000000000..96a42a9634 --- /dev/null +++ b/verification/tutorial_barotropic_gyre/input/gendata.py @@ -0,0 +1,51 @@ +import numpy as np +from numpy import cos, sin, pi + +Ho = 5000 # ocean depth in meters +nx = 62 # number of gridpoints in x-direction +ny = 62 # number of gridpoints in y-direction +xo = 0 # origin in x,y for ocean domain +yo = 0 # (i.e. southwestern corner of ocean domain) +dx = 20 # grid spacing in x (km) +dy = 20 # grid spacing in y (km) +xeast = xo + (nx-2)*dx # eastern extent of ocean domain +ynorth = yo + (ny-2)*dy # northern extent of ocean domain + +# Flat bottom at z=-Ho +h = -Ho * np.ones((ny, nx)) + +# Walls (surrounding domain); generate bathymetry file +h[:, [0,-1]] = 0 # set ocean depth to zero at east and west walls +h[[0,-1], :] = 0 # set ocean depth to zero at south and north walls +# save as single-precision (float32) with big-endian byte ordering +h.astype('>f4').tofile('bathy.bin') + +# Ocean domain extends from (xo,yo) to (xeast,ynorth) +# (i.e. the ocean spans nx-2, ny-2 grid cells) +# out-of-box-config: xo=yo=0, dx=dy=20 km, ocean extent (0,0)-(1200,1200) km +# model domain includes a land cell surrounding the ocean domain +# The full model domain cell centers are located at: +# XC[0,:] = -10, +10, ..., +1210 (km) +# YC[:,0] = -10, +10, ..., +1210 (km) +# and full model domain cell corners are located at: +# XG[0,:] = -20, 0, ..., 1200 [, 1220] (km) +# YG[:,0] = -20, 0, ..., 1200 [, 1220] (km) +# where the last value in brackets is not included in the MITgcm grid variable +# and reflects the eastern and northern edge of the model domain respectively. +# See section 2.11.4 of the MITgcm users manual. + +# Zonal wind-stress, located at u-points (see section 2.11.4) +# here we non-dimensionalize: 0 at southern and western ocean boundary +# to 1.0 at eastern and northern ocean boundary +# for the purpose of applying sinusoidal-shaped wind stress curve +tauMax = 0.1 # wind stress maximum +x = (np.arange(nx)-1) / (nx-2) # x-coordinate, located at XG points +y = (np.arange(ny)-.5) / (ny-2) # y-coordinate, located at YC points +Y, X = np.meshgrid(y, x, indexing='ij') + +tau = -tauMax * cos(Y*pi) # generate file for -cos(y) profile between 0-1200km +tau.astype('>f4').tofile('windx_cosy.bin') +tau = tauMax * sin(Y*pi) # generate file for +sin(y) profile between 0-1200km +tau.astype('>f4').tofile('windx_siny.bin') + +# Meridional wind-stress, if desired, would be located at v-points (XC, YG) diff --git a/verification/tutorial_cfc_offline/code/SIZE.h b/verification/tutorial_cfc_offline/code/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/tutorial_cfc_offline/code/SIZE.h +++ b/verification/tutorial_cfc_offline/code/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_cfc_offline/code/SIZE.h_mpi b/verification/tutorial_cfc_offline/code/SIZE.h_mpi index be8c7f58a3..b2af686e05 100644 --- a/verification/tutorial_cfc_offline/code/SIZE.h_mpi +++ b/verification/tutorial_cfc_offline/code/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_deep_convection/code/CPP_OPTIONS.h b/verification/tutorial_deep_convection/code/CPP_OPTIONS.h index 0e1cbdbb5b..47b2dfac5c 100644 --- a/verification/tutorial_deep_convection/code/CPP_OPTIONS.h +++ b/verification/tutorial_deep_convection/code/CPP_OPTIONS.h @@ -1,26 +1,86 @@ #ifndef CPP_OPTIONS_H #define CPP_OPTIONS_H +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + C CPP flags controlling particular source code features +C-- Forcing code options: + C o Shortwave heating as extra term in external_forcing.F C Note: this should be a run-time option #undef SHORTWAVE_HEATING +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C-- Vertical mixing code options: + C o Include/exclude call to S/R CONVECT #define INCLUDE_CONVECT_CALL C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL +C o Allow full 3D specification of vertical diffusivity +#undef ALLOW_3D_DIFFKR + C o Allow latitudinally varying BryanLewis79 vertical diffusivity #undef ALLOW_BL79_LAT_VARY -C o Allow full 3D specification of vertical diffusivity -#undef ALLOW_3D_DIFFKR +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#undef EXCLUDE_PCELL_MIX_CODE + +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#define ALLOW_SMAG_3D_DIFFUSIVITY + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG C o Include/exclude Implicit vertical advection code #define INCLUDE_IMPLVERTADV_CODE @@ -28,24 +88,37 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF + C o Include/exclude nonHydrostatic code #define ALLOW_NONHYDROSTATIC -C o Include pressure loading code -#define ATMOSPHERIC_LOADING +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI -C o exclude/allow external forcing-fields load -C this allows to read & do simple linear time interpolation of oceanic -C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. -#undef EXCLUDE_FFIELDS_LOAD +C-- Algorithm options: -C o Use "Exact Convervation" of fluid in Free-Surface formulation -C so that d/dt(eta) is exactly equal to - Div.Transport -#define EXACT_CONSERV +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA -C o Allow the use of Non-Linear Free-Surface formulation -C this implies that surface thickness (hFactors) vary with time -#undef NONLIN_FRSURF +C o Include/exclude code for single reduction Conjugate-Gradient solver +#define ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) @@ -70,28 +143,24 @@ C The definition of the flag is commented to avoid interference with C such other header files. C#define COSINEMETH_III -C o Use "OLD" UV discretisation near boundaries (*not* recommended) -C Note - only works with #undef NO_SLIP_LATERAL in calc_mom_rhs.F -C because the old code did not have no-slip BCs -#undef OLD_ADV_BCS - C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. #undef OLD_GRID_IO +C-- Other option files: + C o Execution environment support options #include "CPP_EEOPTIONS.h" -C o Include/exclude code specific to the ECCO/SEALION version. -C AUTODIFF or EXF package. -C Currently controled by a single header file -C For this to work, PACKAGES_CONFIG.h needs to be included! -cph#if (defined (ALLOW_AUTODIFF) || \ -cph defined (ALLOW_ECCO) || \ -cph defined (ALLOW_EXF)) -cph# include "ECCO_CPPOPTIONS.h" -cph#endif +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif #endif /* CPP_OPTIONS_H */ - diff --git a/verification/tutorial_deep_convection/input.smag3d/data b/verification/tutorial_deep_convection/input.smag3d/data index 2e1646d9d8..381f80a2e3 100644 --- a/verification/tutorial_deep_convection/input.smag3d/data +++ b/verification/tutorial_deep_convection/input.smag3d/data @@ -9,6 +9,9 @@ useSmag3D = .TRUE., #- to recover results with missing scaling: smag3D_coeff=8.838834764831845E-4, +#- to use Smag3D diffusivity, set non-dimensional Smag3D diffusion +# coeff: smag3D_diffCoeff (default = 0 --> unused) as shown below: +# smag3D_diffCoeff= 1.E-4, viscAh=1.E-5, viscAz=1.E-5, no_slip_sides=.FALSE., diff --git a/verification/tutorial_dic_adjoffline/build/genmake_local b/verification/tutorial_dic_adjoffline/build/genmake_local deleted file mode 100644 index 3e79104baa..0000000000 --- a/verification/tutorial_dic_adjoffline/build/genmake_local +++ /dev/null @@ -1 +0,0 @@ -AD_OPTFILE='../code_ad/ad_optfile.local' diff --git a/verification/tutorial_dic_adjoffline/code_ad/AUTODIFF_OPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..4b6f1f5cc0 --- /dev/null +++ b/verification/tutorial_dic_adjoffline/code_ad/AUTODIFF_OPTIONS.h @@ -0,0 +1,83 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#define ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#define ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/tutorial_dic_adjoffline/code_ad/COST_OPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/COST_OPTIONS.h new file mode 100644 index 0000000000..8293629113 --- /dev/null +++ b/verification/tutorial_dic_adjoffline/code_ad/COST_OPTIONS.h @@ -0,0 +1,79 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#undef ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER + +#define ALLOW_DIC_COST + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/tutorial_dic_adjoffline/code_ad/CPP_OPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/CPP_OPTIONS.h index abaec55ffd..0885739d08 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/CPP_OPTIONS.h +++ b/verification/tutorial_dic_adjoffline/code_ad/CPP_OPTIONS.h @@ -119,7 +119,7 @@ C Although this method, inherited from ECCO setup, has been traditionally C used for all adjoint built, work is in progress to allow to use the C standard method also for adjoint built. #ifdef PACKAGES_CONFIG_H -# include "ECCO_CPPOPTIONS.h" +c# include "ECCO_CPPOPTIONS.h" #endif #endif /* CPP_OPTIONS_H */ diff --git a/verification/OpenAD/code_oad/CTRL_OPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/CTRL_OPTIONS.h similarity index 75% rename from verification/OpenAD/code_oad/CTRL_OPTIONS.h rename to verification/tutorial_dic_adjoffline/code_ad/CTRL_OPTIONS.h index ec5bc8e70f..6164dfa894 100644 --- a/verification/OpenAD/code_oad/CTRL_OPTIONS.h +++ b/verification/tutorial_dic_adjoffline/code_ad/CTRL_OPTIONS.h @@ -26,23 +26,25 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED -#undef EXCLUDE_CTRL_PACK +#define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL #undef ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL #undef ALLOW_SSS0_CONTROL #undef ALLOW_SST0_CONTROL -#define DISABLE_CTRL_THETA_LIMIT C >>> Surface fluxes. #undef ALLOW_HFLUX_CONTROL @@ -65,8 +67,12 @@ C >>> Other Control. #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR2D_CONTROL #undef ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL @@ -74,6 +80,12 @@ C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/tutorial_dic_adjoffline/code_ad/DIC_OPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/DIC_OPTIONS.h index 3c7124e068..8ac4f8707a 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/DIC_OPTIONS.h +++ b/verification/tutorial_dic_adjoffline/code_ad/DIC_OPTIONS.h @@ -6,6 +6,19 @@ #ifdef ALLOW_DIC C Package-specific Options & Macros go here +C ABIOTIC OPTIONS +C Compile Munhoven (2013) "Solvesaphe" package for pH/pCO2 +C can still select Follows et al (2006) solver in data.dic, +C but will use solvesaphe dissociation coefficient options. +#undef CARBONCHEM_SOLVESAPHE + +C In S/R CARBON_CHEM convert ak1 and ak2 to the total pH scale +C consistent with other coefficients (currently on the seawater scale). +C NOTE: Has NO effect when CARBONCHEM_SOLVESAPHE is defined (different +C coeffs are used). +#undef CARBONCHEM_TOTALPHSCALE + +C BIOTIC OPTIONS #define DIC_BIOTIC #define ALLOW_O2 #define ALLOW_FE @@ -25,15 +38,16 @@ C put back bugs related to Water-Vapour in carbonate chemistry & air-sea fluxes #undef WATERVAP_BUG C dissolution only below saturation horizon following method by Karsten Friis -#undef CAR_DISS +#undef DIC_CALCITE_SAT C Include self-shading effect by phytoplankton #undef LIGHT_CHL + C Include iron sediment source using DOP flux #undef SEDFE C For Adjoint built -#define AD_SAFE +#define DIC_AD_SAFE #endif /* ALLOW_DIC */ #endif /* DIC_OPTIONS_H */ diff --git a/verification/tutorial_dic_adjoffline/code_ad/ECCO_CPPOPTIONS.h b/verification/tutorial_dic_adjoffline/code_ad/ECCO_CPPOPTIONS.h deleted file mode 100644 index 11df854247..0000000000 --- a/verification/tutorial_dic_adjoffline/code_ad/ECCO_CPPOPTIONS.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef ECCO_CPPOPTIONS_H -#define ECCO_CPPOPTIONS_H - -C-- Collect here, in a single option-file, options to control which optional -C features to compile in packages AUTODIFF, COST, CTRL, ECCO, CAL and EXF. -C If used, this option-file needs to be directly included in CPP_OPTIONS.h -C Although this method, inherited from ECCO setup, has been traditionally -C used for all adjoint built, work is in progess to allow to use the -C standard metod (each of the above pkg get its own options from its -C specific option-file) also for adjoint built. - -C ******************************************************************** -C *** Adjoint Support Package *** -C ******************************************************************** - -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - -C o Include/exclude code in order to be able to automatically -C differentiate the MITgcmUV by using the Tangent Linear and -C Adjoint Model Compiler (TAMC). - -#define ALLOW_AUTODIFF_TAMC -C >>> Checkpointing as handled by TAMC -#define ALLOW_TAMC_CHECKPOINTING - -C >>> Extract adjoint state -#undef ALLOW_AUTODIFF_MONITOR - -C >>> DO 2-level checkpointing instead of 3-level -#undef AUTODIFF_2_LEVEL_CHECKPOINT - -C o use divided adjoint to split adjoint computations -#undef ALLOW_DIVIDED_ADJOINT - -C ******************************************************************** -C *** Calendar Package *** -C ******************************************************************** - -C CPP flags controlling which code is included in the files that -C will be compiled. - -CPH >>>>>> THERE ARE NO MORE CAL OPTIONS TO BE SET <<<<<< - -C ******************************************************************** -C *** Cost function Package *** -C ******************************************************************** - -C >>> Cost function contributions -#define ALLOW_DIC_COST - -C ******************************************************************** -C *** Control vector Package *** -C ******************************************************************** - -#define EXCLUDE_CTRL_PACK -#undef ALLOW_NONDIMENSIONAL_CONTROL_IO - -#define ALLOW_GEN2D_CONTROL -#undef ALLOW_DIC_CONTROL - -C ******************************************************************** -#endif /* ECCO_CPPOPTIONS_H */ diff --git a/verification/tutorial_dic_adjoffline/code_ad/MDSIO_BUFF_WH.h b/verification/tutorial_dic_adjoffline/code_ad/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..d1e0d37bee --- /dev/null +++ b/verification/tutorial_dic_adjoffline/code_ad/MDSIO_BUFF_WH.h @@ -0,0 +1,59 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS_R[8,4]/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS_R8/ fld2d_procbuff_r8 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r8 +#endif + COMMON /MDS_WH_BUFFERS_R4/ fld2d_procbuff_r4 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r4 +#endif + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=597) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/tutorial_dic_adjoffline/code_ad/PTRACERS_SIZE.h b/verification/tutorial_dic_adjoffline/code_ad/PTRACERS_SIZE.h index de1851dbdb..09c01e5092 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/PTRACERS_SIZE.h +++ b/verification/tutorial_dic_adjoffline/code_ad/PTRACERS_SIZE.h @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 6 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/tutorial_dic_adjoffline/code_ad/SIZE.h b/verification/tutorial_dic_adjoffline/code_ad/SIZE.h index c827c6dd4c..0325a30849 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/SIZE.h +++ b/verification/tutorial_dic_adjoffline/code_ad/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_dic_adjoffline/code_ad/SIZE.h_mpi b/verification/tutorial_dic_adjoffline/code_ad/SIZE.h_mpi index ffe475a812..fd965cb891 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/SIZE.h_mpi +++ b/verification/tutorial_dic_adjoffline/code_ad/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_dic_adjoffline/code_ad/ad_optfile.local b/verification/tutorial_dic_adjoffline/code_ad/ad_optfile.local deleted file mode 100644 index b333ac69ac..0000000000 --- a/verification/tutorial_dic_adjoffline/code_ad/ad_optfile.local +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# -# This AD option-file contains the settings for the adjoint and -# tangent-linear compilers to use for this particular setup. -# It is similar to the default AD-optfile except -# for the list of controls (DIFF_FLAGS) - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-reverse -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-reverse -i4 -r4 -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-forward -i4 -r4 -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -l taf_svd.log $SVD_TAF_FLAGS" - -#- after Jan 14, 2016, TAF default is "-f95" -if test "x$ALWAYS_USE_F90" = "x1" ; then - AD_TAF_FLAGS="-f90 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f90 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f90 $SVD_TAF_FLAGS" -else - AD_TAF_FLAGS="-f77 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f77 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f77 $SVD_TAF_FLAGS" -fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_dic \ - xx_gen2d_dummy' \ - -output 'fc' " - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/verification/tutorial_dic_adjoffline/code_ad/tamc.h b/verification/tutorial_dic_adjoffline/code_ad/tamc.h index d36e1cf05e..d545d9cbe1 100644 --- a/verification/tutorial_dic_adjoffline/code_ad/tamc.h +++ b/verification/tutorial_dic_adjoffline/code_ad/tamc.h @@ -1,132 +1,100 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 1 ) - integer nchklev_2 +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1 ) + INTEGER nchklev_2 #ifdef AUTODIFF_2_LEVEL_CHECKPOINT - parameter( nchklev_2 = 10 ) +C use two-level checkpointing with the same storage + PARAMETER( nchklev_2 = 500 ) #else - parameter( nchklev_2 = 10 ) + PARAMETER( nchklev_2 = 10 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 50 ) +#endif +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) #endif - integer nchklev_3 - parameter( nchklev_3 = 50 ) -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/tutorial_dic_adjoffline/input_ad/bathy.bin b/verification/tutorial_dic_adjoffline/input_ad/bathy.bin deleted file mode 100644 index a95e633af2..0000000000 Binary files a/verification/tutorial_dic_adjoffline/input_ad/bathy.bin and /dev/null differ diff --git a/verification/tutorial_dic_adjoffline/input_ad/data.ctrl b/verification/tutorial_dic_adjoffline/input_ad/data.ctrl index 7d0613b349..867b53359a 100644 --- a/verification/tutorial_dic_adjoffline/input_ad/data.ctrl +++ b/verification/tutorial_dic_adjoffline/input_ad/data.ctrl @@ -4,25 +4,19 @@ # ECCO controlvariables # ********************* &CTRL_NML - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', & # # ********************* # names for ctrl_pack/unpack # ********************* &CTRL_PACKNAMES - ctrlname = 'ecco_ctrl', - costname = 'ecco_cost', - scalname = 'ecco_scal', - maskname = 'ecco_mask', - metaname = 'ecco_meta', & - +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr2d_file(1) = 'xx_alpha', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#mult_genarr2d(1) = 1.0, + & diff --git a/verification/tutorial_dic_adjoffline/input_ad/data.grdchk b/verification/tutorial_dic_adjoffline/input_ad/data.grdchk index 762f36422d..15e58362ac 100644 --- a/verification/tutorial_dic_adjoffline/input_ad/data.grdchk +++ b/verification/tutorial_dic_adjoffline/input_ad/data.grdchk @@ -12,5 +12,5 @@ jgloTile = 1, nstep = 1, nend = 4, - grdchkvarindex = 30, + grdchkvarindex = 101, & diff --git a/verification/tutorial_dic_adjoffline/input_ad/fice.bin b/verification/tutorial_dic_adjoffline/input_ad/fice.bin deleted file mode 100644 index e37273d9bd..0000000000 Binary files a/verification/tutorial_dic_adjoffline/input_ad/fice.bin and /dev/null differ diff --git a/verification/tutorial_dic_adjoffline/input_ad/prepare_run b/verification/tutorial_dic_adjoffline/input_ad/prepare_run new file mode 100755 index 0000000000..9e09bb09eb --- /dev/null +++ b/verification/tutorial_dic_adjoffline/input_ad/prepare_run @@ -0,0 +1,49 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take some shared *.bin files +#- from this dir: +fromDir="../../tutorial_global_oce_biogeo/input" + +fileList='bathy.bin fice.bin sillev1.bin tren_speed.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/tutorial_dic_adjoffline/input_ad/sillev1.bin b/verification/tutorial_dic_adjoffline/input_ad/sillev1.bin deleted file mode 100644 index 9adb4855ca..0000000000 Binary files a/verification/tutorial_dic_adjoffline/input_ad/sillev1.bin and /dev/null differ diff --git a/verification/tutorial_dic_adjoffline/input_ad/tren_speed.bin b/verification/tutorial_dic_adjoffline/input_ad/tren_speed.bin deleted file mode 100644 index df1ca02644..0000000000 Binary files a/verification/tutorial_dic_adjoffline/input_ad/tren_speed.bin and /dev/null differ diff --git a/verification/tutorial_global_oce_biogeo/code/SIZE.h b/verification/tutorial_global_oce_biogeo/code/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/tutorial_global_oce_biogeo/code/SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code/SIZE.h_mpi b/verification/tutorial_global_oce_biogeo/code/SIZE.h_mpi index be8c7f58a3..b2af686e05 100644 --- a/verification/tutorial_global_oce_biogeo/code/SIZE.h_mpi +++ b/verification/tutorial_global_oce_biogeo/code/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code_ad/CTRL_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_ad/CTRL_OPTIONS.h index 760dd7f338..dca455b82d 100644 --- a/verification/tutorial_global_oce_biogeo/code_ad/CTRL_OPTIONS.h +++ b/verification/tutorial_global_oce_biogeo/code_ad/CTRL_OPTIONS.h @@ -26,20 +26,23 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#define ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL #undef ALLOW_SSS0_CONTROL #undef ALLOW_SST0_CONTROL @@ -64,15 +67,25 @@ C >>> Other Control. #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + C >>> Generic Control. #undef ALLOW_GENARR2D_CONTROL -#undef ALLOW_GENARR3D_CONTROL -#undef ALLOW_GENTIM2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/tutorial_global_oce_biogeo/code_ad/CTRL_SIZE.h b/verification/tutorial_global_oce_biogeo/code_ad/CTRL_SIZE.h new file mode 100644 index 0000000000..b0df139b02 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_ad/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 1 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_global_oce_biogeo/code_ad/PTRACERS_SIZE.h b/verification/tutorial_global_oce_biogeo/code_ad/PTRACERS_SIZE.h index a9295f926a..84e7993f5f 100644 --- a/verification/tutorial_global_oce_biogeo/code_ad/PTRACERS_SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code_ad/PTRACERS_SIZE.h @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 5 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h b/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h_mpi b/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h_mpi index be8c7f58a3..b2af686e05 100644 --- a/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h_mpi +++ b/verification/tutorial_global_oce_biogeo/code_ad/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code_ad/tamc.h b/verification/tutorial_global_oce_biogeo/code_ad/tamc.h index fb379e37ce..223c8d9b35 100644 --- a/verification/tutorial_global_oce_biogeo/code_ad/tamc.h +++ b/verification/tutorial_global_oce_biogeo/code_ad/tamc.h @@ -1,132 +1,100 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 1 ) - integer nchklev_2 +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1 ) + INTEGER nchklev_2 #ifdef AUTODIFF_2_LEVEL_CHECKPOINT - parameter( nchklev_2 = 10 ) +C use two-level checkpointing with the same storage + PARAMETER( nchklev_2 = 200 ) #else - parameter( nchklev_2 = 10 ) + PARAMETER( nchklev_2 = 10 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 20 ) +#endif +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) #endif - integer nchklev_3 - parameter( nchklev_3 = 20 ) -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. - - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else + PARAMETER( isbyte = 8 ) + +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 2 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/tutorial_global_oce_biogeo/code_oad/AUTODIFF_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_oad/AUTODIFF_OPTIONS.h index 034193a30c..9f494e7955 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,14 +48,38 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) #undef AUTODIFF_PTRACERS_SPLIT_FILES +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_AUTODIFF */ diff --git a/verification/tutorial_global_oce_biogeo/code_oad/CTRL_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_oad/CTRL_OPTIONS.h index 0d5cba6033..2611c519da 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/CTRL_OPTIONS.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/CTRL_OPTIONS.h @@ -26,20 +26,23 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL #undef ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL #undef ALLOW_SSS0_CONTROL #undef ALLOW_SST0_CONTROL @@ -59,13 +62,17 @@ C >>> Atmospheric state. #undef ALLOW_PRECIP_CONTROL C >>> Other Control. -#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_DIFFKR_CONTROL #undef ALLOW_KAPGM_CONTROL #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR2D_CONTROL #define ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL @@ -73,6 +80,12 @@ C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/tutorial_global_oce_biogeo/code_oad/CTRL_SIZE.h b/verification/tutorial_global_oce_biogeo/code_oad/CTRL_SIZE.h index 7a13ec7649..00b244c17a 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/CTRL_SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/CTRL_SIZE.h @@ -2,6 +2,8 @@ c ================================================================== c CTRL_SIZE.h c ================================================================== +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + C Generic control variable array dimension C ---------------------------------------- C @@ -11,10 +13,10 @@ C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlArr2D - parameter ( maxCtrlArr2D = 1 ) + parameter ( maxCtrlArr2D = 4 ) integer maxCtrlArr3D - parameter ( maxCtrlArr3D = 1 ) + parameter ( maxCtrlArr3D = 4 ) integer maxCtrlTim2D parameter ( maxCtrlTim2D = 1 ) @@ -22,6 +24,8 @@ C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlProc parameter ( maxCtrlProc = 1 ) +#endif + CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/verification/tutorial_global_oce_biogeo/code_oad/OPENAD_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_oad/OPENAD_OPTIONS.h index 3e8f7fee5a..dad84c91e4 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/OPENAD_OPTIONS.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/OPENAD_OPTIONS.h @@ -18,7 +18,7 @@ CEOP #ifdef ALLOW_OPENAD #define ALLOW_OPENAD_ACTIVE_READ_XYZ -#undef ALLOW_OPENAD_ACTIVE_READ_XY +#define ALLOW_OPENAD_ACTIVE_READ_XY #undef ALLOW_OPENAD_ACTIVE_WRITE #endif /* ALLOW_OPENAD */ diff --git a/verification/tutorial_global_oce_biogeo/code_oad/PTRACERS_SIZE.h b/verification/tutorial_global_oce_biogeo/code_oad/PTRACERS_SIZE.h index 5504c57b89..1e5971d0b9 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/PTRACERS_SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/PTRACERS_SIZE.h @@ -16,7 +16,6 @@ C Number of tracers PARAMETER(PTRACERS_num = 5 ) #ifdef ALLOW_AUTODIFF_TAMC - INTEGER iptrkey INTEGER maxpass PARAMETER( maxpass = PTRACERS_num + 2 ) #endif diff --git a/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h b/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h index 4dbc2098b6..4ea7afba4b 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h +++ b/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h_mpi b/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h_mpi index be8c7f58a3..b2af686e05 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h_mpi +++ b/verification/tutorial_global_oce_biogeo/code_oad/SIZE.h_mpi @@ -62,6 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) diff --git a/verification/tutorial_global_oce_biogeo/code_oad/cb2mFiles b/verification/tutorial_global_oce_biogeo/code_oad/cb2mFiles index 4272367330..52f99d3b30 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/cb2mFiles +++ b/verification/tutorial_global_oce_biogeo/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +25,7 @@ GLOBAL_MAX GLOBAL_SUM GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -37,8 +36,6 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc PTRACERS_SIZE PTRACERS_FIELDS PTRACERS_PARAMS diff --git a/verification/tutorial_global_oce_biogeo/code_oad/ctrl_map_ini_genarr.F b/verification/tutorial_global_oce_biogeo/code_oad/ctrl_map_ini_genarr.F index bfe58b82e0..fb9b9164fc 100644 --- a/verification/tutorial_global_oce_biogeo/code_oad/ctrl_map_ini_genarr.F +++ b/verification/tutorial_global_oce_biogeo/code_oad/ctrl_map_ini_genarr.F @@ -1,4 +1,5 @@ #include "CTRL_OPTIONS.h" +#define PREVENT_TOO_COLD_TEMP CBOP C !ROUTINE: CTRL_MAP_INI_GENARR @@ -12,6 +13,9 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C | control vector to the model state and update the tile halos. C | The control vector is defined in the header file "ctrl.h". C *================================================================= +C | local version for OpenAD exp. tutorial_global_oce_biogeo and +C | tutorial_tracer_adjsens +C *================================================================= C \ev C !USES: @@ -45,28 +49,27 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf + INTEGER bi,bj + INTEGER i,j,k + INTEGER il + INTEGER iarr, iptr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + CHARACTER*(MAX_LEN_MBUF) msgBuf _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif CEOP - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. + doglobalread = .FALSE. + ladinit = .FALSE. fac = 1. _d 0 #ifdef ALLOW_GENARR2D_CONTROL @@ -79,30 +82,76 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr2D +C These forcing control variables are constant in time for this +C experiment, so that we can specify them here. Once we know how to +C make OpenAD use the gentim2d controls, these should be handled via +C ctrl_map_gentim2d.F + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO fnamebase = xx_genarr2d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr2d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then -CC - elseif ( iarr. eq. 2 ) then -CC - endif - enddo - enddo + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO ENDDO - ENDDO + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fu(i,j,bi,bj) = fu(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 4 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fv(i,j,bi,bj) = fv(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF C-- end iarr loop ENDDO -CC _EXCH_XYZ_RL( theta, myThid ) -CC _EXCH_XYZ_RL( salt, myThid ) + _EXCH_XY_RS( qnet, myThid ) + _EXCH_XY_RS( empmr, myThid ) + CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) #endif /* ALLOW_GENARR2D_CONTROL */ @@ -115,11 +164,11 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) cc--->>> cc cc A CONSISTENCY CHECK: FOR THIS CUSTOMIZATION -cc WE ASSUME maxCtrlArr3D <= PTRACERS_num +cc WE ASSUME maxCtrlArr3D-3 <= PTRACERS_num cc - IF ( maxCtrlArr3D .GT. PTRACERS_num ) THEN + IF ( maxCtrlArr3D-3 .GT. PTRACERS_num ) THEN WRITE(msgBuf,'(A)') - & 'CTRL_MAP_INI_GENARR: need maxCtrlArr3D <= PTRACERS_num' + & 'CTRL_MAP_INI_GENARR: need maxCtrlArr3D-3 <= PTRACERS_num' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R CTRL_MAP_INI_GENARR' ENDIF @@ -127,34 +176,89 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr3D + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO fnamebase = xx_genarr3d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr3d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax -cc#ifdef ALLOW_OPENAD -cc pTracer(i,j,k,bi,bj,iarr) = pTracer(i,j,k,bi,bj,iarr) -cc & + fac*xx_genarr3d(i,j,k,bi,bj,iarr) -cc & + fac*tmpfld3d(i,j,k,bi,bj) -cc#else - pTracer(i,j,k,bi,bj,iarr) = pTracer(i,j,k,bi,bj,iarr) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) & + fac*tmpfld3d(i,j,k,bi,bj) -cc#endif - enddo - enddo - enddo +#ifdef PREVENT_TOO_COLD_TEMP +C necessary to reproduce old results + IF ( theta(i,j,k,bi,bj).LT.-2.0 _d 0 ) + & theta(i,j,k,bi,bj) = -2.0 _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO ENDDO - ENDDO - - CALL EXCH_3D_RL( pTracer(1-OLx,1-OLy,1,1,1,iarr), + CALL EXCH_3D_RL( theta, Nr, myThid ) + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( salt, Nr, myThid ) + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + diffKr(i,j,k,bi,bj) = diffKr(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( diffKr, Nr, myThid ) + ELSEIF ( iarr .EQ. 4 ) THEN + iptr = iarr-3 + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + pTracer(i,j,k,bi,bj,iptr) = pTracer(i,j,k,bi,bj,iptr) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( pTracer(1-OLx,1-OLy,1,1,1,iptr), & Nr, myThid ) + ENDIF + C-- end iarr loop ENDDO diff --git a/verification/tutorial_global_oce_biogeo/code_tap/AUTODIFF_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..7339a3b301 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) +#undef AUTODIFF_PTRACERS_SPLIT_FILES + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_biogeo/code_tap/COST_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..f3c9b0072b --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/COST_OPTIONS.h @@ -0,0 +1,78 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#undef ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#undef ALLOW_COST_TRACER +#define ALLOW_DIC_COST + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_biogeo/code_tap/CPP_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..687d0135cf --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/CPP_OPTIONS.h @@ -0,0 +1,139 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#undef SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C-- Vertical mixing code options: + +C o Include/exclude call to S/R CONVECT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#define ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#undef INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#undef NONLIN_FRSURF + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +#undef ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_biogeo/code_tap/CTRL_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_tap/CTRL_OPTIONS.h new file mode 100644 index 0000000000..dca455b82d --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/CTRL_OPTIONS.h @@ -0,0 +1,106 @@ +CBOP +C !ROUTINE: CTRL_OPTIONS.h +C !INTERFACE: +C #include "CTRL_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Control (ctrl) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef CTRL_OPTIONS_H +#define CTRL_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_CTRL +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED + +#define EXCLUDE_CTRL_PACK +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO + +C >>> Initial values. +#undef ALLOW_THETA0_CONTROL +#undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL +#undef ALLOW_TR10_CONTROL +#undef ALLOW_TAUU0_CONTROL +#undef ALLOW_TAUV0_CONTROL +#undef ALLOW_SFLUX0_CONTROL +#undef ALLOW_HFLUX0_CONTROL +#undef ALLOW_SSS0_CONTROL +#undef ALLOW_SST0_CONTROL + +C >>> Surface fluxes. +#undef ALLOW_HFLUX_CONTROL +#undef ALLOW_SFLUX_CONTROL +#undef ALLOW_USTRESS_CONTROL +#undef ALLOW_VSTRESS_CONTROL +#undef ALLOW_SWFLUX_CONTROL +#undef ALLOW_LWFLUX_CONTROL + +C >>> Atmospheric state. +#undef ALLOW_ATEMP_CONTROL +#undef ALLOW_AQH_CONTROL +#undef ALLOW_UWIND_CONTROL +#undef ALLOW_VWIND_CONTROL +#undef ALLOW_PRECIP_CONTROL + +C >>> Other Control. +#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD + +C >>> Generic Control. +#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR3D_CONTROL +#define ALLOW_GENTIM2D_CONTROL + +C o Rotation of wind/stress controls adjustments +C from Eastward/Northward to model grid directions +#undef ALLOW_ROTATE_UV_CONTROLS + +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + +C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. +#undef ALLOW_SMOOTH_CORREL2D +C o use pkg/smooth correlation operator (incl. smoother) for 3D controls (Weaver, Courtier 01) +C This CPP option just sets the default for ctrlSmoothCorrel3D to .TRUE. +#undef ALLOW_SMOOTH_CORREL3D + +C o apply pkg/ctrl/ctrl_smooth.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_CTRL_SMOOTH +C o apply pkg/smooth/smooth_diff2d.F to 2D controls (outside of ctrlSmoothCorrel2D) +#undef ALLOW_SMOOTH_CTRL2D +C o apply pkg/smooth/smooth_diff3d.F to 3D controls (outside of ctrlSmoothCorrel3D) +#undef ALLOW_SMOOTH_CTRL3D + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_CTRL */ +#endif /* CTRL_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_biogeo/code_tap/CTRL_SIZE.h b/verification/tutorial_global_oce_biogeo/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..92270848a4 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/CTRL_SIZE.h @@ -0,0 +1,31 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 4 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 4 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 4 ) + +#endif + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_global_oce_biogeo/code_tap/GMREDI_OPTIONS.h b/verification/tutorial_global_oce_biogeo/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..98d1c2a39e --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,52 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +C Following option avoids specific recomputation in adjoint +C routines of gmredi_x/y/rtransport +C It is not needed, only for tests, and very memory-consuming +#undef GM_AUTODIFF_EXCESSIVE_STORE + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_global_oce_biogeo/code_tap/PTRACERS_SIZE.h b/verification/tutorial_global_oce_biogeo/code_tap/PTRACERS_SIZE.h new file mode 100644 index 0000000000..1e5971d0b9 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/PTRACERS_SIZE.h @@ -0,0 +1,28 @@ +#ifdef ALLOW_PTRACERS + +CBOP +C !ROUTINE: PTRACERS_SIZE.h +C !INTERFACE: +C #include PTRACERS_SIZE.h + +C !DESCRIPTION: +C Contains passive tracer array size (number of tracers). + +C PTRACERS_num defines how many passive tracers are allocated/exist. +C and is set here (default 1) +C +C Number of tracers + INTEGER PTRACERS_num + PARAMETER(PTRACERS_num = 5 ) + +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER maxpass + PARAMETER( maxpass = PTRACERS_num + 2 ) +#endif + +CEOP +#endif /* ALLOW_PTRACERS */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h b/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h new file mode 100644 index 0000000000..4ea7afba4b --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 64, + & sNy = 32, + & OLx = 4, + & OLy = 4, + & nSx = 2, + & nSy = 2, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h_mpi b/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..b2af686e05 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 64, + & sNy = 32, + & OLx = 4, + & OLy = 4, + & nSx = 1, + & nSy = 2, + & nPx = 2, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 15) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/tutorial_global_oce_biogeo/code_tap/cost_tracer.F b/verification/tutorial_global_oce_biogeo/code_tap/cost_tracer.F new file mode 100644 index 0000000000..fbb7f68d4a --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/cost_tracer.F @@ -0,0 +1,69 @@ +#include "COST_OPTIONS.h" + + subroutine cost_tracer( bi, bj, myThid ) +C /==========================================================\ +C | subroutine cost_tracer | +C | o this routine computes the cost function for the tiles | +C | of this processor | +C |==========================================================| +C | | +C | Notes | +C | ===== | +C \==========================================================/ + IMPLICIT NONE + +C == Global variables === +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "DYNVARS.h" +#include "GRID.h" +#ifdef ALLOW_COST_TRACER +# ifdef ALLOW_PTRACERS +# include "PTRACERS_SIZE.h" +# include "PTRACERS_PARAMS.h" +# include "PTRACERS_FIELDS.h" +# endif +#endif + +#include "cost.h" + +C == Routine arguments == +C myThid - Thread number for this instance of the routine. + integer bi, bj + integer myThid + +#ifdef ALLOW_COST_TRACER +C == Local variables + _RL thetaRef + _RL locfc + + integer i, j, k + integer ig, jg +ce some reference temperature + thetaRef = 24.0D0 + + locfc = 0. _d 0 + + k=1 + DO j=1,sNy + DO i=1,sNx +#ifdef ALLOW_PTRACERS + locfc = locfc + maskC(i,j,k,bi,bj)* + & ptracer(i,j,k,bi,bj,6)* + & rA(i,j,bi,bj)*drF(k) +#endif + ENDDO + ENDDO + + objf_tracer(bi,bj) = objf_tracer(bi,bj) + locfc + +#ifdef ALLOW_PTRACERS + print *, 'COST TRACER nach', objf_tracer(bi,bj), + & ptracer(83,33,1,1,1,1), ptracer(83,33,2,1,1,1) +#endif + +#endif /* ALLOW_COST_TRACER */ + + RETURN + END diff --git a/verification/tutorial_global_oce_biogeo/code_tap/packages.conf b/verification/tutorial_global_oce_biogeo/code_tap/packages.conf new file mode 100644 index 0000000000..f79739f155 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/code_tap/packages.conf @@ -0,0 +1,12 @@ +#-- list of packages (or group of packages) to compile for this experiment: +gfd +monitor +cd_code +gmredi +ptracers +gchem +dic +timeave + +tapenade +adjoint diff --git a/verification/tutorial_global_oce_biogeo/input/sillev1.bin b/verification/tutorial_global_oce_biogeo/input/sillev1.bin index 9adb4855ca..e9d302f38f 100644 Binary files a/verification/tutorial_global_oce_biogeo/input/sillev1.bin and b/verification/tutorial_global_oce_biogeo/input/sillev1.bin differ diff --git a/verification/tutorial_global_oce_biogeo/input_ad/data.ctrl b/verification/tutorial_global_oce_biogeo/input_ad/data.ctrl index 7d0613b349..8b5e54ef64 100644 --- a/verification/tutorial_global_oce_biogeo/input_ad/data.ctrl +++ b/verification/tutorial_global_oce_biogeo/input_ad/data.ctrl @@ -1,18 +1,7 @@ -# -# # ********************* # ECCO controlvariables # ********************* &CTRL_NML - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', & # # ********************* @@ -25,4 +14,34 @@ maskname = 'ecco_mask', metaname = 'ecco_meta', & - +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +# + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(2) = 'ones_64b.bin', +# + xx_genarr3d_file(3) = 'xx_diffkr', + xx_genarr3d_weight(3) = 'ones_64b.bin', +# + xx_genarr3d_file(4) = 'xx_ptr1', + xx_genarr3d_weight(4) = 'ones_64b.bin', +# + xx_gentim2d_file(1) = 'xx_qnet', + xx_gentim2d_weight(1) = 'ones_64b.bin', +# + xx_gentim2d_file(2) = 'xx_empmr', + xx_gentim2d_weight(2) = 'ones_64b.bin', +# + xx_gentim2d_file(3) = 'xx_fu', + xx_gentim2d_weight(3) = 'ones_64b.bin', +# + xx_gentim2d_file(4) = 'xx_fv', + xx_gentim2d_weight(4) = 'ones_64b.bin', +# + & diff --git a/verification/tutorial_global_oce_biogeo/input_ad/data.grdchk b/verification/tutorial_global_oce_biogeo/input_ad/data.grdchk index 44cf044d9b..d97194f10c 100644 --- a/verification/tutorial_global_oce_biogeo/input_ad/data.grdchk +++ b/verification/tutorial_global_oce_biogeo/input_ad/data.grdchk @@ -7,8 +7,8 @@ nbeg = 1, nstep = 1, nend = 4, -# to test xx_tr1 set 17 - grdchkvarindex = 1, +# to test xx_tr1 set 204 + grdchkvarindex = 201, iGloPos =10, jGloPos =10, kGloPos =1, diff --git a/verification/tutorial_global_oce_biogeo/input_ad/prepare_run b/verification/tutorial_global_oce_biogeo/input_ad/prepare_run index 9d20d08311..5ec55efd65 100755 --- a/verification/tutorial_global_oce_biogeo/input_ad/prepare_run +++ b/verification/tutorial_global_oce_biogeo/input_ad/prepare_run @@ -8,14 +8,38 @@ fileList=`( cd $fromDir ; echo *.bin pickup* )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/tutorial_global_oce_biogeo/input_oad/data.ctrl b/verification/tutorial_global_oce_biogeo/input_oad/data.ctrl index c54300b8ad..55de307971 100644 --- a/verification/tutorial_global_oce_biogeo/input_oad/data.ctrl +++ b/verification/tutorial_global_oce_biogeo/input_oad/data.ctrl @@ -4,31 +4,53 @@ # ECCO controlvariables # ********************* &CTRL_NML - ctrlUseGen = .FALSE., - xx_theta_file = 'xx_theta', - xx_salt_file = 'xx_salt', - xx_tr1_file = 'xx_tr1', - xx_hflux_file = 'xx_hflux', - xx_sflux_file = 'xx_sflux', - xx_tauu_file = 'xx_tauu', - xx_tauv_file = 'xx_tauv', - xx_diffkr_file = 'xx_diffkr', - xx_kapgm_file = 'xx_kapgm', & # # ********************* # names for ctrl_pack/unpack # ********************* &CTRL_PACKNAMES - ctrlname = 'ecco_ctrl', - costname = 'ecco_cost', - scalname = 'ecco_scal', - maskname = 'ecco_mask', - metaname = 'ecco_meta', & +# # ********************* # names for CTRL_GENARR, CTRL_GENTIM # ********************* &CTRL_NML_GENARR +# Since everything is hard coded, the following has no effect but is +# just meant to document the control variables; +# the forcing controls are constant in time so they are realized +# via genarr2d rather than gentim2d and hard coded in +# ctrl_map_ini_genarr.F + xx_genarr2d_file(1) = 'xx_qnet', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#xx_gentim2d_startdate1(1) = 19920101, +#xx_gentim2d_startdate2(1) = 000000, +#xx_gentim2d_period(1) = 0.0, +# + xx_genarr2d_file(2) = 'xx_empmr', + xx_genarr2d_weight(2) = 'ones_64b.bin', +#xx_gentim2d_startdate1(2) = 19920101, +#xx_gentim2d_startdate2(2) = 000000, +#xx_gentim2d_period(2) = 0.0, +# + xx_genarr2d_file(3) = 'xx_fu', + xx_genarr2d_weight(3) = 'ones_64b.bin', +#xx_gentim2d_startdate1(3) = 19920101, +#xx_gentim2d_startdate2(3) = 000000, +#xx_gentim2d_period(3) = 0.0, +# + xx_genarr2d_file(4) = 'xx_fv', + xx_genarr2d_weight(4) = 'ones_64b.bin', +#xx_gentim2d_startdate1(4) = 19920101, +#xx_gentim2d_startdate2(4) = 000000, +#xx_gentim2d_period(4) = 0.0, +# + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(3) = 'ones_64b.bin', + xx_genarr3d_file(3) = 'xx_diffKr', + xx_genarr3d_weight(4) = 'ones_64b.bin', + xx_genarr3d_file(4) = 'xx_ptr1', & - diff --git a/verification/tutorial_global_oce_biogeo/input_oad/data.grdchk b/verification/tutorial_global_oce_biogeo/input_oad/data.grdchk index 44cf044d9b..66b2f8d596 100644 --- a/verification/tutorial_global_oce_biogeo/input_oad/data.grdchk +++ b/verification/tutorial_global_oce_biogeo/input_oad/data.grdchk @@ -8,7 +8,10 @@ nstep = 1, nend = 4, # to test xx_tr1 set 17 - grdchkvarindex = 1, +# to test passive tracer in +# xx_genarr3d (4th field) set 204 +# 201 tests theta + grdchkvarindex = 201, iGloPos =10, jGloPos =10, kGloPos =1, diff --git a/verification/tutorial_global_oce_biogeo/input_tap/prepare_run b/verification/tutorial_global_oce_biogeo/input_tap/prepare_run new file mode 100755 index 0000000000..3b8f87ef85 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/input_tap/prepare_run @@ -0,0 +1,77 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../input" + +fileList=`( cd $fromDir ; echo *.bin pickup* )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/tutorial_global_oce_biogeo/results/output_adm.txt b/verification/tutorial_global_oce_biogeo/results/output_adm.txt index 7191d4acdb..2dd994ceee 100644 --- a/verification/tutorial_global_oce_biogeo/results/output_adm.txt +++ b/verification/tutorial_global_oce_biogeo/results/output_adm.txt @@ -5,10 +5,9 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint67b -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Wed May 23 02:10:17 EDT 2018 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Nov 4 02:00:37 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -190,7 +191,7 @@ (PID.TID 0000.0001) > meridWindFile= 'tren_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_monthly_temp.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_monthly_salt.bin', -(PID.TID 0000.0001) > surfQFile= 'shi_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'shi_qnet.bin', (PID.TID 0000.0001) > EmPmRFile= 'shi_empmr_year.bin', (PID.TID 0000.0001) > the_run_name= 'Tutorial Biogeo', (PID.TID 0000.0001) > / @@ -404,6 +405,10 @@ (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // DIC package parameters : (PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) Using Millero (1995)/Mehrbach K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity (PID.TID 0000.0001) permil = /* Ref. density to convert mol/m3 to mol/kg */ (PID.TID 0000.0001) 9.760858955588092E-04 (PID.TID 0000.0001) ; @@ -557,6 +562,12 @@ (PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; @@ -578,9 +589,18 @@ (PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim @@ -601,8 +621,6 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.ctrl" (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) ># -(PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* @@ -628,7 +646,37 @@ (PID.TID 0000.0001) > maskname = 'ecco_mask', (PID.TID 0000.0001) > metaname = 'ecco_meta', (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -663,8 +711,8 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 4, -(PID.TID 0000.0001) ># to test xx_tr1 set 17 -(PID.TID 0000.0001) > grdchkvarindex = 1, +(PID.TID 0000.0001) ># to test xx_tr1 set 204 +(PID.TID 0000.0001) > grdchkvarindex = 201, (PID.TID 0000.0001) > iGloPos =10, (PID.TID 0000.0001) > jGloPos =10, (PID.TID 0000.0001) > kGloPos =1, @@ -676,7 +724,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchkvarindex : 1 +(PID.TID 0000.0001) grdchkvarindex : 201 (PID.TID 0000.0001) eps: 0.100E-04 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 4 @@ -818,12 +866,12 @@ (PID.TID 0000.0001) ctrl-wet 4: surface wet S = 1205 (PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 (PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 16159 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 1 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 @@ -832,9 +880,9 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 @@ -878,7 +926,347 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 -(PID.TID 0000.0001) ctrl-wet 7: flux 37369 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 32318 (PID.TID 0000.0001) ctrl-wet 8: atmos 32318 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 240064 @@ -901,8 +1289,8 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 8 -(PID.TID 0000.0001) ctrl_init: control vector length: 240064 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 240064 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> START <<< @@ -919,11 +1307,50 @@ (PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 006646 006264 005997 (PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013152 012505 012486 (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state temperature contribution: -(PID.TID 0000.0001) Control variable index: 0101 +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- (PID.TID 0000.0001) -(PID.TID 0000.0001) Initial state salinity contribution: -(PID.TID 0000.0001) Control variable index: 0102 +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // control vector configuration >>> END <<< @@ -967,7 +1394,7 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ @@ -1060,10 +1487,16 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ (PID.TID 0000.0001) 3.994000000000000E+03 (PID.TID 0000.0001) ; @@ -1118,28 +1551,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ (PID.TID 0000.0001) 5.000000000000000E+01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -1161,7 +1597,7 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ @@ -1170,10 +1606,10 @@ (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -1238,37 +1674,12 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T @@ -1373,8 +1784,8 @@ (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 1000 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ (PID.TID 0000.0001) 0 @@ -1391,6 +1802,9 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -2358,6 +2772,9 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // PTRACERS parameters @@ -2729,7 +3146,10 @@ (PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up (PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally (PID.TID 0000.0001) -(PID.TID 0000.0001) CTRL_CHECK: #define ALLOW_CTRL +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) (PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF @@ -2772,7 +3192,6 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3416,26 +3835,6 @@ (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3470,6 +3869,7 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 DIC_COST: iter,totcost = 5184003 -4.541500326292147E+11 @@ -3490,44 +3890,24 @@ (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.1406852917038E+04 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.6734472442551E+08 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -1.8703708552107E+08 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.1597172022682E+04 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.9363872940270E+06 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1374986657201E+04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = 1.1597172022683E+04 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.9363872940271E+06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.1374986657202E+04 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 7.0279011473215E+11 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.1636583163088E+12 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.8746818448816E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 1.8746818448817E+09 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 2.8674276571084E+10 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 1.9690260159020E+08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.5531681503469E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 1.5531681503470E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -1.7098248302950E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -1.4517367397108E+06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.5004343162322E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 1.5004343162323E+07 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 2.5499654920993E+05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 7.4763731529438E+09 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -7.5259678607218E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -9.8174758395286E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -9.8174758395287E+05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 3.1626883601305E+07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 1.1201694689314E+06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3562,7 +3942,8 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -3.77475828372553E-15 5.01096874368532E+03 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-16 5.01096874368534E+03 cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 (PID.TID 0000.0001) // ======================================================= @@ -3577,7 +3958,7 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 1.2225668331344E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 6.5071352209288E+08 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -7.2099909866861E+08 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0362796308647E+06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.0362796308648E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 5.1550767936758E+07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 2.6613809936268E+05 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 6.2333524425292E+08 @@ -3585,7 +3966,7 @@ (PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -5.7966776349771E+06 (PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 1.0540279909429E+08 (PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 4.7836705758908E+05 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5855075270266E+11 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 8.5855075270267E+11 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -1.5634015695617E+12 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.0158356411850E+09 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 3.6286565705882E+10 @@ -3593,33 +3974,13 @@ (PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.0595242434244E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -3.2049164730657E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -2.3320269266336E+06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.5725754418870E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 2.5725754418871E+07 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.6527095429054E+05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 1.8982302940316E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -1.9303679227118E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -1.5666019014839E+06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 7.0195907584669E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3232080511408E+06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.3232080511409E+06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3654,14 +4015,13 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 3.08642000845794E-14 1.65345366625872E+04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 2.66453525910038E-14 1.65345366625874E+04 EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 - EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) - DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3674,49 +4034,29 @@ (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 2.9692445347515E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.2353079838198E+09 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.1141375029563E+09 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4936691069984E+06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 1.4936691069985E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 9.3547762409807E+07 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 4.4550691467043E+05 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.1896352256860E+09 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -2.2672582139622E+09 (PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -1.2473797559970E+07 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0803380489636E+08 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 2.0803380489637E+08 (PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 8.2708316855669E+05 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.1948152912567E+12 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.6671986858960E+12 -(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7653418475612E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.6671986858958E+12 +(PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 2.7653418475613E+09 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 5.2059734814622E+10 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 4.4477390364311E+08 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.4215396166907E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.2988779690709E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -3.4202989697544E+06 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.4627450126361E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.7987085577664E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 3.4627450126362E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 4.7987085577665E+05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.5231130250374E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.5620799224875E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -2.3286913467050E+06 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 8.0126439382083E+07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.6010337220033E+06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3751,7 +4091,8 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.35447209004269E-14 2.65651410929629E+04 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.46549439250521E-14 2.65651410929608E+04 (PID.TID 0000.0001) simulName=>Tutorial Biogeo< (PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 (PID.TID 0000.0001) nDims = 2 , dims: @@ -3786,62 +4127,41 @@ (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON ad_time_tsnumber = 5184000 (PID.TID 0000.0001) %MON ad_time_secondsf = 2.2394880000000E+11 -(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0916046942491E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adeta_max = 1.0916046942490E+09 (PID.TID 0000.0001) %MON ad_dynstat_adeta_min = -1.1352333648552E+09 (PID.TID 0000.0001) %MON ad_dynstat_adeta_mean = -1.7756055325497E+06 (PID.TID 0000.0001) %MON ad_dynstat_adeta_sd = 1.5636826496850E+08 (PID.TID 0000.0001) %MON ad_dynstat_adeta_del2 = 4.9355728277728E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_max = 1.8233286992272E+09 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_min = -1.6231662604569E+09 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.8057113690359E+06 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_mean = 2.8057113690360E+06 (PID.TID 0000.0001) %MON ad_dynstat_aduvel_sd = 1.3539189969072E+08 -(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.3598727737754E+05 +(PID.TID 0000.0001) %MON ad_dynstat_aduvel_del2 = 6.3598727737752E+05 (PID.TID 0000.0001) %MON ad_dynstat_advvel_max = 1.8128498029228E+09 (PID.TID 0000.0001) %MON ad_dynstat_advvel_min = -3.2913130182495E+09 (PID.TID 0000.0001) %MON ad_dynstat_advvel_mean = -2.1883699925773E+07 (PID.TID 0000.0001) %MON ad_dynstat_advvel_sd = 3.2053287787695E+08 -(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0777352647589E+06 +(PID.TID 0000.0001) %MON ad_dynstat_advvel_del2 = 1.0777352647588E+06 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_max = 1.4474729507335E+12 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_min = -2.9010588979380E+12 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_mean = 3.3054486589081E+09 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_sd = 6.4068162751827E+10 (PID.TID 0000.0001) %MON ad_dynstat_adwvel_del2 = 5.4082146081898E+08 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.5983535343465E+09 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8578080351555E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_max = 2.5983535343466E+09 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_min = -4.8578080351556E+09 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_mean = -4.3687062982891E+06 (PID.TID 0000.0001) %MON ad_dynstat_adtheta_sd = 4.4055697524701E+07 -(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.3545654051479E+05 +(PID.TID 0000.0001) %MON ad_dynstat_adtheta_del2 = 5.3545654051480E+05 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_max = 2.8369711754673E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_min = -2.8628011630180E+10 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_mean = -3.1207467515975E+06 -(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 9.6212967901891E+07 +(PID.TID 0000.0001) %MON ad_dynstat_adsalt_sd = 9.6212967901892E+07 (PID.TID 0000.0001) %MON ad_dynstat_adsalt_del2 = 2.9429358504675E+06 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adqnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adempmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ad_forcing_adfv_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3876,6 +4196,21 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End AD_MONITOR ptracer field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient-check starts (grdchk_main) (PID.TID 0000.0001) // ======================================================= @@ -3922,7 +4257,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -3977,7 +4311,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4000,10 +4333,10 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159277175E+11 grad-res ------------------------------- grad-res 0 1 61 5 1 1 1 1 -6.05596159367E+11 -6.05596159457E+11 -6.05596159277E+11 - grad-res 0 1 1 1 0 1 1 1 -8.96642030840E+06 -8.96648559570E+06 -7.28131147798E-06 + grad-res 0 1 1 1 0 1 1 1 -8.96642030840E+06 -8.96648559570E+06 -7.28131173933E-06 (PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 -(PID.TID 0000.0001) ADM adjoint_gradient = -8.96642030840402E+06 -(PID.TID 0000.0001) ADM finite-diff_grad = -8.96648559570313E+06 +(PID.TID 0000.0001) ADM adjoint_gradient = -8.96642030840167E+06 +(PID.TID 0000.0001) ADM finite-diff_grad = -8.96648559570312E+06 (PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 55673 2 @@ -4044,7 +4377,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4099,7 +4431,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4122,9 +4453,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159086947E+11 grad-res ------------------------------- grad-res 0 2 62 5 1 1 1 1 -6.05596159367E+11 -6.05596159647E+11 -6.05596159087E+11 - grad-res 0 2 2 2 0 1 1 1 -2.79887775496E+07 -2.79887329102E+07 1.59490510698E-06 + grad-res 0 2 2 2 0 1 1 1 -2.79887775496E+07 -2.79887329102E+07 1.59490511720E-06 (PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 -(PID.TID 0000.0001) ADM adjoint_gradient = -2.79887775496005E+07 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.79887775496008E+07 (PID.TID 0000.0001) ADM finite-diff_grad = -2.79887329101562E+07 (PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= @@ -4166,7 +4497,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4221,7 +4551,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4244,9 +4573,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159069953E+11 grad-res ------------------------------- grad-res 0 3 63 5 1 1 1 1 -6.05596159367E+11 -6.05596159664E+11 -6.05596159070E+11 - grad-res 0 3 3 3 0 1 1 1 -2.96880648498E+07 -2.96880798340E+07 -5.04720058414E-07 + grad-res 0 3 3 3 0 1 1 1 -2.96880648498E+07 -2.96880798340E+07 -5.04720050198E-07 (PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 -(PID.TID 0000.0001) ADM adjoint_gradient = -2.96880648498225E+07 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.96880648498228E+07 (PID.TID 0000.0001) ADM finite-diff_grad = -2.96880798339844E+07 (PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= @@ -4288,7 +4617,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4343,7 +4671,6 @@ grad-res ------------------------------- (PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 (PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 - QQ alpha before 9.70000000000000011E-011 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -4366,10 +4693,10 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596158972152E+11 grad-res ------------------------------- grad-res 0 4 64 5 1 1 1 1 -6.05596159367E+11 -6.05596159762E+11 -6.05596158972E+11 - grad-res 0 4 4 4 0 1 1 1 -3.94683631159E+07 -3.94683715820E+07 -2.14503598661E-07 + grad-res 0 4 4 4 0 1 1 1 -3.94683631159E+07 -3.94683715820E+07 -2.14503581342E-07 (PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 -(PID.TID 0000.0001) ADM adjoint_gradient = -3.94683631159253E+07 -(PID.TID 0000.0001) ADM finite-diff_grad = -3.94683715820313E+07 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.94683631159260E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.94683715820312E+07 (PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= @@ -4384,198 +4711,192 @@ grad-res ------------------------------- (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 61 5 1 1 1 0.000000000E+00 -1.000000000E-05 (PID.TID 0000.0001) grdchk output (c): 1 -6.0559615936683E+11 -6.0559615945650E+11 -6.0559615927717E+11 -(PID.TID 0000.0001) grdchk output (g): 1 -8.9664855957031E+06 -8.9664203084040E+06 -7.2813114779802E-06 +(PID.TID 0000.0001) grdchk output (g): 1 -8.9664855957031E+06 -8.9664203084017E+06 -7.2813117393267E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 62 5 1 1 1 0.000000000E+00 -1.000000000E-05 (PID.TID 0000.0001) grdchk output (c): 2 -6.0559615936683E+11 -6.0559615964672E+11 -6.0559615908695E+11 -(PID.TID 0000.0001) grdchk output (g): 2 -2.7988732910156E+07 -2.7988777549600E+07 1.5949051069830E-06 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7988732910156E+07 -2.7988777549601E+07 1.5949051171971E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 63 5 1 1 1 0.000000000E+00 -1.000000000E-05 (PID.TID 0000.0001) grdchk output (c): 3 -6.0559615936683E+11 -6.0559615966371E+11 -6.0559615906995E+11 -(PID.TID 0000.0001) grdchk output (g): 3 -2.9688079833984E+07 -2.9688064849823E+07 -5.0472005841407E-07 +(PID.TID 0000.0001) grdchk output (g): 3 -2.9688079833984E+07 -2.9688064849823E+07 -5.0472005019842E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 4 64 5 1 1 1 0.000000000E+00 -1.000000000E-05 (PID.TID 0000.0001) grdchk output (c): 4 -6.0559615936683E+11 -6.0559615976152E+11 -6.0559615897215E+11 -(PID.TID 0000.0001) grdchk output (g): 4 -3.9468371582031E+07 -3.9468363115925E+07 -2.1450359866115E-07 +(PID.TID 0000.0001) grdchk output (g): 4 -3.9468371582031E+07 -3.9468363115926E+07 -2.1450358134167E-07 (PID.TID 0000.0001) -(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.7370433925381E-06 +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.7370435204048E-06 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 235.89114260161296 -(PID.TID 0000.0001) System time: 0.85386998229660094 -(PID.TID 0000.0001) Wall clock time: 237.55486798286438 +(PID.TID 0000.0001) User time: 145.33557009464130 +(PID.TID 0000.0001) System time: 2.1643469333648682 +(PID.TID 0000.0001) Wall clock time: 147.71914291381836 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.41593700135126710 -(PID.TID 0000.0001) System time: 3.89939995948225260E-002 -(PID.TID 0000.0001) Wall clock time: 0.46687316894531250 +(PID.TID 0000.0001) User time: 0.30159400426782668 +(PID.TID 0000.0001) System time: 4.8052001744508743E-002 +(PID.TID 0000.0001) Wall clock time: 0.35701394081115723 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 104.70708578824997 -(PID.TID 0000.0001) System time: 0.71489097923040390 -(PID.TID 0000.0001) Wall clock time: 105.93589496612549 +(PID.TID 0000.0001) User time: 67.207250416278839 +(PID.TID 0000.0001) System time: 1.5080329440534115 +(PID.TID 0000.0001) Wall clock time: 68.871282815933228 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 154.41350507736206 -(PID.TID 0000.0001) System time: 5.49910366535186768E-002 -(PID.TID 0000.0001) Wall clock time: 154.84450674057007 +(PID.TID 0000.0001) User time: 91.188845634460449 +(PID.TID 0000.0001) System time: 0.42931878566741943 +(PID.TID 0000.0001) Wall clock time: 91.688583612442017 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.26495289802551270 -(PID.TID 0000.0001) System time: 9.99800860881805420E-003 -(PID.TID 0000.0001) Wall clock time: 0.29831957817077637 +(PID.TID 0000.0001) User time: 0.27847135066986084 +(PID.TID 0000.0001) System time: 1.5903264284133911E-002 +(PID.TID 0000.0001) Wall clock time: 0.29437851905822754 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.20999860763549805 -(PID.TID 0000.0001) System time: 7.99801945686340332E-003 -(PID.TID 0000.0001) Wall clock time: 0.22728824615478516 -(PID.TID 0000.0001) No. starts: 48 -(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) User time: 0.10733580589294434 +(PID.TID 0000.0001) System time: 8.0849826335906982E-003 +(PID.TID 0000.0001) Wall clock time: 0.11545634269714355 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 (PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.89851236343383789E-002 -(PID.TID 0000.0001) System time: 3.00002098083496094E-003 -(PID.TID 0000.0001) Wall clock time: 5.45506477355957031E-002 +(PID.TID 0000.0001) User time: 0.23494803905487061 +(PID.TID 0000.0001) System time: 8.8101625442504883E-004 +(PID.TID 0000.0001) Wall clock time: 0.23584794998168945 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 8.20251703262329102E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.52856636047363281E-002 +(PID.TID 0000.0001) User time: 5.2194237709045410E-002 +(PID.TID 0000.0001) System time: 1.0395050048828125E-004 +(PID.TID 0000.0001) Wall clock time: 5.2348852157592773E-002 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 11.992169141769409 -(PID.TID 0000.0001) System time: 6.99900090694427490E-003 -(PID.TID 0000.0001) Wall clock time: 12.026905536651611 -(PID.TID 0000.0001) No. starts: 40 -(PID.TID 0000.0001) No. stops: 40 -(PID.TID 0000.0001) Seconds in section "GCHEM_CALC_TENDENCY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.89099121093750000E-004 +(PID.TID 0000.0001) User time: 6.9777882099151611 +(PID.TID 0000.0001) System time: 4.7162890434265137E-002 +(PID.TID 0000.0001) Wall clock time: 7.0358853340148926 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 94.759612798690796 -(PID.TID 0000.0001) System time: 2.99900770187377930E-003 -(PID.TID 0000.0001) Wall clock time: 94.960088491439819 +(PID.TID 0000.0001) User time: 56.118684530258179 +(PID.TID 0000.0001) System time: 0.20275986194610596 +(PID.TID 0000.0001) Wall clock time: 56.354547262191772 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 31.919137954711914 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 31.991855144500732 +(PID.TID 0000.0001) User time: 18.405136585235596 +(PID.TID 0000.0001) System time: 6.8449854850769043E-002 +(PID.TID 0000.0001) Wall clock time: 18.479399442672729 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.9473924636840820 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.9578094482421875 +(PID.TID 0000.0001) User time: 2.3475329875946045 +(PID.TID 0000.0001) System time: 1.6048848628997803E-002 +(PID.TID 0000.0001) Wall clock time: 2.3774731159210205 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.89387655258178711 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.89450168609619141 +(PID.TID 0000.0001) User time: 0.49444389343261719 +(PID.TID 0000.0001) System time: 4.1708648204803467E-003 +(PID.TID 0000.0001) Wall clock time: 0.49871015548706055 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.95182991027832031 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.95383381843566895 +(PID.TID 0000.0001) User time: 0.53854322433471680 +(PID.TID 0000.0001) System time: 8.2721710205078125E-003 +(PID.TID 0000.0001) Wall clock time: 0.54694008827209473 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.91821289062500000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.96251678466796875E-004 +(PID.TID 0000.0001) User time: 3.8552284240722656E-004 +(PID.TID 0000.0001) System time: 2.7000904083251953E-005 +(PID.TID 0000.0001) Wall clock time: 3.7431716918945312E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.4930171966552734 -(PID.TID 0000.0001) System time: 2.99999117851257324E-003 -(PID.TID 0000.0001) Wall clock time: 6.5230371952056885 +(PID.TID 0000.0001) User time: 3.9295825958251953 +(PID.TID 0000.0001) System time: 1.2628972530364990E-002 +(PID.TID 0000.0001) Wall clock time: 3.9484336376190186 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1838035583496094 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.1902701854705811 +(PID.TID 0000.0001) User time: 0.71925806999206543 +(PID.TID 0000.0001) System time: 8.2105398178100586E-004 +(PID.TID 0000.0001) Wall clock time: 0.72020506858825684 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.55191612243652344 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.55323386192321777 +(PID.TID 0000.0001) User time: 0.27507543563842773 +(PID.TID 0000.0001) System time: 9.6023082733154297E-005 +(PID.TID 0000.0001) Wall clock time: 0.27528262138366699 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.72988986968994141 -(PID.TID 0000.0001) System time: 1.00000202655792236E-003 -(PID.TID 0000.0001) Wall clock time: 0.73276686668395996 +(PID.TID 0000.0001) User time: 0.45336818695068359 +(PID.TID 0000.0001) System time: 1.1697024106979370E-002 +(PID.TID 0000.0001) Wall clock time: 0.46542882919311523 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00708007812500000E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.96251678466796875E-004 +(PID.TID 0000.0001) User time: 2.8610229492187500E-004 +(PID.TID 0000.0001) System time: 3.8743019104003906E-006 +(PID.TID 0000.0001) Wall clock time: 3.0994415283203125E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.44793128967285156 -(PID.TID 0000.0001) System time: 5.99901378154754639E-003 -(PID.TID 0000.0001) Wall clock time: 0.45558643341064453 +(PID.TID 0000.0001) User time: 0.27860593795776367 +(PID.TID 0000.0001) System time: 4.1459798812866211E-003 +(PID.TID 0000.0001) Wall clock time: 0.28279423713684082 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 4.07934188842773438E-004 +(PID.TID 0000.0001) User time: 3.1089782714843750E-004 +(PID.TID 0000.0001) System time: 1.9669532775878906E-006 +(PID.TID 0000.0001) Wall clock time: 3.3473968505859375E-004 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.13497924804687500 -(PID.TID 0000.0001) System time: 2.19959914684295654E-002 -(PID.TID 0000.0001) Wall clock time: 0.15697288513183594 +(PID.TID 0000.0001) User time: 7.6658964157104492E-002 +(PID.TID 0000.0001) System time: 3.6048978567123413E-002 +(PID.TID 0000.0001) Wall clock time: 0.11331939697265625 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 130.76811981201172 -(PID.TID 0000.0001) System time: 9.99850034713745117E-002 -(PID.TID 0000.0001) Wall clock time: 131.15203499794006 +(PID.TID 0000.0001) User time: 77.826652526855469 +(PID.TID 0000.0001) System time: 0.60826098918914795 +(PID.TID 0000.0001) Wall clock time: 78.490792989730835 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 3.4715118408203125 -(PID.TID 0000.0001) System time: 7.39879608154296875E-002 -(PID.TID 0000.0001) Wall clock time: 3.5522999763488770 +(PID.TID 0000.0001) User time: 2.7165603637695312 +(PID.TID 0000.0001) System time: 0.30795192718505859 +(PID.TID 0000.0001) Wall clock time: 3.0250961780548096 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 126.94966125488281 -(PID.TID 0000.0001) System time: 9.99802350997924805E-003 -(PID.TID 0000.0001) Wall clock time: 127.23459196090698 +(PID.TID 0000.0001) User time: 74.922698974609375 +(PID.TID 0000.0001) System time: 0.24046182632446289 +(PID.TID 0000.0001) Wall clock time: 75.218396186828613 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 121.78846740722656 -(PID.TID 0000.0001) System time: 8.99803638458251953E-003 -(PID.TID 0000.0001) Wall clock time: 122.06114053726196 +(PID.TID 0000.0001) User time: 71.794075012207031 +(PID.TID 0000.0001) System time: 0.22847497463226318 +(PID.TID 0000.0001) Wall clock time: 72.077404499053955 (PID.TID 0000.0001) No. starts: 32 (PID.TID 0000.0001) No. stops: 32 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 9.91821289062500000E-004 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.07149505615234375E-004 +(PID.TID 0000.0001) User time: 6.4849853515625000E-004 +(PID.TID 0000.0001) System time: 1.0728836059570312E-006 +(PID.TID 0000.0001) Wall clock time: 6.2370300292968750E-004 (PID.TID 0000.0001) No. starts: 8 (PID.TID 0000.0001) No. stops: 8 (PID.TID 0000.0001) // ====================================================== @@ -4626,9 +4947,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 11212 +(PID.TID 0000.0001) // No. barriers = 11702 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 11212 +(PID.TID 0000.0001) // Total barrier spins = 11702 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_global_oce_biogeo/results/output_tap_adj.txt b/verification/tutorial_global_oce_biogeo/results/output_tap_adj.txt new file mode 100644 index 0000000000..fbbbad4f5d --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/results/output_tap_adj.txt @@ -0,0 +1,4672 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 05:56:29 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 64 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 32 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 128 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 64 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscA4=0., +(PID.TID 0000.0001) > viscAh=2.E5, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) >#diffKzT=3.E-5, +(PID.TID 0000.0001) >#diffKzS=3.E-5, +(PID.TID 0000.0001) > diffKrBL79surf= 3.E-5, +(PID.TID 0000.0001) > diffKrBL79deep= 13.E-5, +(PID.TID 0000.0001) > diffKrBL79Ho = -2000., +(PID.TID 0000.0001) > diffKrBL79scl = 150., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > tempAdvScheme = 2, +(PID.TID 0000.0001) > saltAdvScheme = 2, +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMindz=50., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=5184000, +(PID.TID 0000.0001) > nTimeSteps = 4, +(PID.TID 0000.0001) > deltaTmom = 900., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 216000., +(PID.TID 0000.0001) > chkptFreq = 216000., +(PID.TID 0000.0001) > dumpFreq = 216000., +(PID.TID 0000.0001) > taveFreq = 216000., +(PID.TID 0000.0001) > monitorFreq= 86400., +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) > tauSaltClimRelax = 7776000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > monitorFreq= 1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delZ= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-90., +(PID.TID 0000.0001) > delX=128*2.8125, +(PID.TID 0000.0001) > delY=64*2.8125, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathy.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_clim_temp.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_clim_salt.bin', +(PID.TID 0000.0001) > zonalWindFile= 'tren_taux.bin', +(PID.TID 0000.0001) > meridWindFile= 'tren_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile= 'lev_monthly_temp.bin', +(PID.TID 0000.0001) > saltClimFile= 'lev_monthly_salt.bin', +(PID.TID 0000.0001) > surfQnetFile= 'shi_qnet.bin', +(PID.TID 0000.0001) > EmPmRFile= 'shi_empmr_year.bin', +(PID.TID 0000.0001) > the_run_name= 'Tutorial Biogeo', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > usePTRACERS=.TRUE., +(PID.TID 0000.0001) > useGCHEM=.TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + pkg/gchem compiled and used ( useGCHEM = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled and used ( taveFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) ># GM_AdvForm = .TRUE., +(PID.TID 0000.0001) ># GM_isopycK = 1.D+3, +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >### GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) >### GM_Visbeck_alpha = 0.D0, +(PID.TID 0000.0001) >### GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) >### GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) >### GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=5, +(PID.TID 0000.0001) > PTRACERS_Iter0= 0, +(PID.TID 0000.0001) ># tracer 1 - dic +(PID.TID 0000.0001) > PTRACERS_names(1)='DIC', +(PID.TID 0000.0001) > PTRACERS_long_names(1)='Dissolved Inorganic Carbon (DIC) [mol C/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(1)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(1)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(1)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(1)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(1)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,1) = 2.0282, 2.0609, 2.1206, 2.1581, +(PID.TID 0000.0001) > 2.1904, 2.2188, 2.2474, 2.2699, +(PID.TID 0000.0001) > 2.2792, 2.2814, 2.2815, 2.2806, +(PID.TID 0000.0001) > 2.2800, 2.2760, 2.2758, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(1)= 0., +(PID.TID 0000.0001) ># tracer 2 - alk +(PID.TID 0000.0001) > PTRACERS_names(2)='Alk', +(PID.TID 0000.0001) > PTRACERS_long_names(2)='Alkalinity (Alk) [mol eq/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(2)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(2)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(2)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(2)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(2)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(2)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,2) = 2.3086, 2.3149, 2.3164, 2.3112, +(PID.TID 0000.0001) > 2.3098, 2.3160, 2.3313, 2.3517, +(PID.TID 0000.0001) > 2.3667, 2.3761, 2.3832, 2.3862, +(PID.TID 0000.0001) > 2.3881, 2.3863, 2.3867, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(2)= 0., +(PID.TID 0000.0001) ># tracer 3 - po4 +(PID.TID 0000.0001) > PTRACERS_names(3)='PO4', +(PID.TID 0000.0001) > PTRACERS_long_names(3)='Phosphate (PO4) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(3)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(3)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(3)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(3)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(3)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(3)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,3) = 0.5438E-3, 0.7821E-3, 1.1335E-3, 1.4913E-3, +(PID.TID 0000.0001) > 1.8606E-3, 2.1986E-3, 2.3966E-3, 2.4187E-3, +(PID.TID 0000.0001) > 2.4046E-3, 2.3291E-3, 2.2922E-3, 2.2886E-3, +(PID.TID 0000.0001) > 2.2608E-3, 2.2356E-3, 2.2296E-3, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(3)= 0., +(PID.TID 0000.0001) ># tracer 4 - dop +(PID.TID 0000.0001) > PTRACERS_names(4)='DOP', +(PID.TID 0000.0001) > PTRACERS_long_names(4)='Dissolved Organic Phosphorus (DOP) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(4)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(4)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(4)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(4)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(4)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(4)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,4) = 15*0., +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(4)= 0., +(PID.TID 0000.0001) ># tracer 5 - o2 +(PID.TID 0000.0001) > PTRACERS_names(5)='O2', +(PID.TID 0000.0001) > PTRACERS_long_names(5)='Dissolved Oxygen (O2) [mol O/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(5)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(5)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(5)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(5)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(5)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(5)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,5) = 0.2457, 0.2336, 0.1975, 0.1729, +(PID.TID 0000.0001) > 0.1591, 0.1503, 0.1424, 0.1445, +(PID.TID 0000.0001) > 0.1549, 0.1661, 0.1774, 0.1863, +(PID.TID 0000.0001) > 0.1925, 0.2021, 0.2051, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(5)= 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) GCHEM_READPARMS: opening data.gchem +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gchem +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gchem" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &GCHEM_PARM01 +(PID.TID 0000.0001) > useDIC=.TRUE., +(PID.TID 0000.0001) > nsubtime=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GCHEM_READPARMS: finished reading data.gchem +(PID.TID 0000.0001) DIC_READPARMS: opening data.dic +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.dic +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.dic" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DIC parameters +(PID.TID 0000.0001) > &ABIOTIC_PARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BIOTIC_PARMS +(PID.TID 0000.0001) > alphaUniform = 0.97e-10, +(PID.TID 0000.0001) > rainRatioUniform = 5.e-2, +(PID.TID 0000.0001) > KRemin = 0.95, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &DIC_FORCING +(PID.TID 0000.0001) > DIC_iceFile='fice.bin', +(PID.TID 0000.0001) > DIC_windFile='tren_speed.bin', +(PID.TID 0000.0001) > DIC_silicaFile='sillev1.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIC_READPARMS: finished reading data.dic +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC package parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) Using Millero (1995)/Mehrbach K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity +(PID.TID 0000.0001) permil = /* Ref. density to convert mol/m3 to mol/kg */ +(PID.TID 0000.0001) 9.760858955588092E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Pa2Atm = /* Atmosph. pressure conversion coeff (to Atm) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zca = /* Scale depth for CaCO3 remineralization (m) */ +(PID.TID 0000.0001) 3.500000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCalciteSaturation = /* Flag for omegaC calculation on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DOPfraction = /* Fraction of new production going to DOP */ +(PID.TID 0000.0001) 6.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KDOPRemin = /* DOP remineralization rate (1/s) */ +(PID.TID 0000.0001) 6.430041152263375E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KRemin = /* Remin power law coeff. */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zcrit = /* Minimum depth for biological activity (m) */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) O2crit = /* Critical oxygen level (mol/m3) */ +(PID.TID 0000.0001) 4.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_OP = /* Stochiometric ratio R_OP */ +(PID.TID 0000.0001) -1.700000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_CP = /* Stochiometric ratio R_CP */ +(PID.TID 0000.0001) 1.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_NP = /* Stochiometric ratio R_NP */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_FeP = /* Stochiometric ratio R_FeP */ +(PID.TID 0000.0001) 4.680000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) parfrac = /* Fraction of Qsw that is PAR */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) k0 = /* Light attentuation coefficient, water (1/m) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kchl = /* Light attentuation coefficient, chlorophyll (m2/mg) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) lit0 = /* Half saturation light constant (W/m2) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPO4 = /* Half saturation phosphate constant (mol/m3) */ +(PID.TID 0000.0001) 5.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KFE = /* Half saturation fe constant (mol/m3) */ +(PID.TID 0000.0001) 1.200000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alpfe = /* Solubility of aeolian fe */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fesedflux_pcm = /* Sediment Fe flux = fesedflux_pcm*pflux+FeIntSec */ +(PID.TID 0000.0001) 7.208000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) FeIntSec = /* Sediment Fe flux = fesedflux_pcm * pflux + FeIntSec */ +(PID.TID 0000.0001) 5.787037037037037E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freefemax = /* Max solubility of free iron (mol/m3) */ +(PID.TID 0000.0001) 3.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KScav = /* Iron scavenging rate */ +(PID.TID 0000.0001) 6.108539094650206E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_stab = /* Ligand-free iron stability constant (m3/mol) */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_tot = /* Total free ligand (mol/m3) */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alphaUniform = /* Timescale for biological activity */ +(PID.TID 0000.0001) 9.700000000000000E-11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rainRatioUniform= /* Inorganic/organic carbon rain ratio */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) QSW_underice = /* Flag for Qsw under Sea-Ice (i.e. SI fract included) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_windFile = /* File name of wind speeds */ +(PID.TID 0000.0001) 'tren_speed.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_atmospFile= /* File name of atmospheric pressure*/ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_silicaFile= /* File name of surface silica */ +(PID.TID 0000.0001) 'sillev1.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_iceFile = /* File name of seaice fraction */ +(PID.TID 0000.0001) 'fice.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_parFile= /* File name of photosynthetically available radiation */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_chlaFile= /* File name of chlorophyll climatology */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_ironFile = /* File name of aeolian iron flux */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingPeriod = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingCycle = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int1 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int2 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int3 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int4 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_pCO2 = /* Atmospheric pCO2 to be read in data.dic */ +(PID.TID 0000.0001) 2.780000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Start registering GCHEM tracers +(PID.TID 0000.0001) DIC_TR_REGISTER: number of DIC tracers= 5 +(PID.TID 0000.0001) DIC_TR_REGISTER: starting at pTrc num= 1 +(PID.TID 0000.0001) DIC_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', +(PID.TID 0000.0001) > costname = 'ecco_cost', +(PID.TID 0000.0001) > scalname = 'ecco_scal', +(PID.TID 0000.0001) > maskname = 'ecco_mask', +(PID.TID 0000.0001) > metaname = 'ecco_meta', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-5, +(PID.TID 0000.0001) > nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># to test xx_tr1 set 204 +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > iGloPos =10, +(PID.TID 0000.0001) > jGloPos =10, +(PID.TID 0000.0001) > kGloPos =1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-04 +(PID.TID 0000.0001) First location: 1 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5859375000000E+02 +(PID.TID 0000.0001) %MON XC_min = 1.4062500000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5718750000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7859375000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXC_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXC_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXC_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXF_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXF_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXF_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXG_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXV_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXV_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON YC_max = 8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_min = -8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON YG_max = 8.7187500000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -1.4062500000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYC_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYF_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYF_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYG_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYU_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYU_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON RA_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RA_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RA_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RA_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAW_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RAW_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RAW_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RAW_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAS_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAS_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAS_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON RAZ_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAZ_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_INIT_FIXED: updated GAD_OlMinSize= 2 0 1 + QQ load dic parameters, initial fixed +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC_INIT_FIXED parameters : +(PID.TID 0000.0001) nlev = /* Number of level over which Bio act is computed */ +(PID.TID 0000.0001) 15 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 240064 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 1300 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 1246 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 1205 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 16159 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 32318 +(PID.TID 0000.0001) ctrl-wet 8: atmos 32318 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 240064 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4447 4201 4277 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4399 4158 4229 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 4352 4111 4178 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 4282 4046 4108 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 4220 3992 4050 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 4125 3897 3960 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 4075 3846 3907 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 4021 3785 3851 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3970 3730 3801 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3878 3629 3692 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3763 3505 3562 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3557 3269 3332 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3091 2747 2809 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2428 2071 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 1065 813 874 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 240064 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 30720 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 016159 014603 015209 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 019716 018428 019084 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 006646 006264 005997 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013152 012505 012486 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_mean = 2.3039296165317E-19 +(PID.TID 0000.0001) %MON fCori_sd = 1.0312619976228E-04 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4566679669714E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -2.2787885990593E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.0310101939326E-04 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.5791533929553E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 9.2855522572229E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 4.4864964117307E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 7.0372759228205380E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 2.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 1.300000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 1.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.971999950222133E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 5184000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 5184004 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 2.239488000000000E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.239489728000000E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 128 @ 2.812500000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 64 @ 2.812500000000000E+00 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -9.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.296875000000000E+01, /* I = 30 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* I = 31 */ +(PID.TID 0000.0001) 8.859375000000000E+01, /* I = 32 */ +(PID.TID 0000.0001) 9.140625000000000E+01, /* I = 33 */ +(PID.TID 0000.0001) 9.421875000000000E+01, /* I = 34 */ +(PID.TID 0000.0001) 9.703125000000000E+01, /* I = 35 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.729687500000000E+02, /* I = 62 */ +(PID.TID 0000.0001) 1.757812500000000E+02, /* I = 63 */ +(PID.TID 0000.0001) 1.785937500000000E+02, /* I = 64 */ +(PID.TID 0000.0001) 1.814062500000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 1.842187500000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 1.870312500000000E+02, /* I = 67 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.629687500000000E+02, /* I = 94 */ +(PID.TID 0000.0001) 2.657812500000000E+02, /* I = 95 */ +(PID.TID 0000.0001) 2.685937500000000E+02, /* I = 96 */ +(PID.TID 0000.0001) 2.714062500000000E+02, /* I = 97 */ +(PID.TID 0000.0001) 2.742187500000000E+02, /* I = 98 */ +(PID.TID 0000.0001) 2.770312500000000E+02, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.529687500000000E+02, /* I =126 */ +(PID.TID 0000.0001) 3.557812500000000E+02, /* I =127 */ +(PID.TID 0000.0001) 3.585937500000000E+02 /* I =128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -8.859375000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -8.578125000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -8.296875000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -8.015625000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -7.734375000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -7.453125000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -7.171875000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -6.890625000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -6.609375000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -6.328125000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -6.046875000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -5.765625000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -5.484375000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -5.203125000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -4.921875000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -4.640625000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -4.359375000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -4.078125000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -3.796875000000000E+01, /* J = 19 */ +(PID.TID 0000.0001) -3.515625000000000E+01, /* J = 20 */ +(PID.TID 0000.0001) -3.234375000000000E+01, /* J = 21 */ +(PID.TID 0000.0001) -2.953125000000000E+01, /* J = 22 */ +(PID.TID 0000.0001) -2.671875000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) -2.390625000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) -2.109375000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) -1.828125000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) -1.546875000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) -1.265625000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) -9.843750000000000E+00, /* J = 29 */ +(PID.TID 0000.0001) -7.031250000000000E+00, /* J = 30 */ +(PID.TID 0000.0001) -4.218750000000000E+00, /* J = 31 */ +(PID.TID 0000.0001) -1.406250000000000E+00, /* J = 32 */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* J = 33 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* J = 34 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* J = 35 */ +(PID.TID 0000.0001) 9.843750000000000E+00, /* J = 36 */ +(PID.TID 0000.0001) 1.265625000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 1.546875000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 1.828125000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 2.109375000000000E+01, /* J = 40 */ +(PID.TID 0000.0001) 2.390625000000000E+01, /* J = 41 */ +(PID.TID 0000.0001) 2.671875000000000E+01, /* J = 42 */ +(PID.TID 0000.0001) 2.953125000000000E+01, /* J = 43 */ +(PID.TID 0000.0001) 3.234375000000000E+01, /* J = 44 */ +(PID.TID 0000.0001) 3.515625000000000E+01, /* J = 45 */ +(PID.TID 0000.0001) 3.796875000000000E+01, /* J = 46 */ +(PID.TID 0000.0001) 4.078125000000000E+01, /* J = 47 */ +(PID.TID 0000.0001) 4.359375000000000E+01, /* J = 48 */ +(PID.TID 0000.0001) 4.640625000000000E+01, /* J = 49 */ +(PID.TID 0000.0001) 4.921875000000000E+01, /* J = 50 */ +(PID.TID 0000.0001) 5.203125000000000E+01, /* J = 51 */ +(PID.TID 0000.0001) 5.484375000000000E+01, /* J = 52 */ +(PID.TID 0000.0001) 5.765625000000000E+01, /* J = 53 */ +(PID.TID 0000.0001) 6.046875000000000E+01, /* J = 54 */ +(PID.TID 0000.0001) 6.328125000000000E+01, /* J = 55 */ +(PID.TID 0000.0001) 6.609375000000000E+01, /* J = 56 */ +(PID.TID 0000.0001) 6.890625000000000E+01, /* J = 57 */ +(PID.TID 0000.0001) 7.171875000000000E+01, /* J = 58 */ +(PID.TID 0000.0001) 7.453125000000000E+01, /* J = 59 */ +(PID.TID 0000.0001) 7.734375000000000E+01, /* J = 60 */ +(PID.TID 0000.0001) 8.015625000000000E+01, /* J = 61 */ +(PID.TID 0000.0001) 8.296875000000000E+01, /* J = 62 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* J = 63 */ +(PID.TID 0000.0001) 8.859375000000000E+01 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 4.797008993346594E+09, /* J = 2 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 3 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 4 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 13 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 16 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 31 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 32 */ +(PID.TID 0000.0001) 9.776312122186816E+10, /* J = 33 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 40 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 44 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 53 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 55 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 62 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 63 */ +(PID.TID 0000.0001) 4.797008993346594E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.303322488638320E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) the_run_name = /* Name of this simulation */ +(PID.TID 0000.0001) 'Tutorial Biogeo' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Carbon (DIC) [mol C/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.028200000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.060900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.120600000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.158100000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.190400000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.218800000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.247400000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.269900000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.279200000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.281400000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.281500000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.280600000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.280000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.276000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.275800000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 2 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'Alk' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Alkalinity (Alk) [mol eq/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '02' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.308600000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.314900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.316400000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.311200000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.309800000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.316000000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.331300000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.351700000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.366700000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.376100000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.383200000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.386200000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.388100000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.386300000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.386700000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 3 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'PO4' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Phosphate (PO4) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '03' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 5.438000000000000E-04, /* K = 1 */ +(PID.TID 0000.0001) 7.821000000000000E-04, /* K = 2 */ +(PID.TID 0000.0001) 1.133500000000000E-03, /* K = 3 */ +(PID.TID 0000.0001) 1.491300000000000E-03, /* K = 4 */ +(PID.TID 0000.0001) 1.860600000000000E-03, /* K = 5 */ +(PID.TID 0000.0001) 2.198600000000000E-03, /* K = 6 */ +(PID.TID 0000.0001) 2.396600000000000E-03, /* K = 7 */ +(PID.TID 0000.0001) 2.418700000000000E-03, /* K = 8 */ +(PID.TID 0000.0001) 2.404600000000000E-03, /* K = 9 */ +(PID.TID 0000.0001) 2.329100000000000E-03, /* K = 10 */ +(PID.TID 0000.0001) 2.292200000000000E-03, /* K = 11 */ +(PID.TID 0000.0001) 2.288600000000000E-03, /* K = 12 */ +(PID.TID 0000.0001) 2.260800000000000E-03, /* K = 13 */ +(PID.TID 0000.0001) 2.235600000000000E-03, /* K = 14 */ +(PID.TID 0000.0001) 2.229600000000000E-03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 4 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DOP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Phosphorus (DOP) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '04' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 5 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'O2' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Oxygen (O2) [mol O/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '05' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.457000000000000E-01, /* K = 1 */ +(PID.TID 0000.0001) 2.336000000000000E-01, /* K = 2 */ +(PID.TID 0000.0001) 1.975000000000000E-01, /* K = 3 */ +(PID.TID 0000.0001) 1.729000000000000E-01, /* K = 4 */ +(PID.TID 0000.0001) 1.591000000000000E-01, /* K = 5 */ +(PID.TID 0000.0001) 1.503000000000000E-01, /* K = 6 */ +(PID.TID 0000.0001) 1.424000000000000E-01, /* K = 7 */ +(PID.TID 0000.0001) 1.445000000000000E-01, /* K = 8 */ +(PID.TID 0000.0001) 1.549000000000000E-01, /* K = 9 */ +(PID.TID 0000.0001) 1.661000000000000E-01, /* K = 10 */ +(PID.TID 0000.0001) 1.774000000000000E-01, /* K = 11 */ +(PID.TID 0000.0001) 1.863000000000000E-01, /* K = 12 */ +(PID.TID 0000.0001) 1.925000000000000E-01, /* K = 13 */ +(PID.TID 0000.0001) 2.021000000000000E-01, /* K = 14 */ +(PID.TID 0000.0001) 2.051000000000000E-01 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up +(PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5184000 +(PID.TID 0000.0001) %MON time_secondsf = 2.2394880000000E+11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6649299579287E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4782940696125E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5159854500297E-11 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6496543247928E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1653645924077E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8991955759746E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3830119785924E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8631910446830E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3097544587003E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9141243596022E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4902607636342E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1740870222213E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6712179506896E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.3032187196596E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.8048380963769E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2278891600425E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4363646394913E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8247847362026E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6044092374234E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7768952335932E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0246498475111E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.8021277862108E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5122422355156E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5949804443761E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7556852662021E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1484589763615E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4614647727539E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1408724689889E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0546885080523E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.4937911987305E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.0417861938477E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7498601459148E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1365585619929E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.8640506155793E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.8468748927116E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5522694587708E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7572056142629E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9999224736116E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.6702947614548E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 2.1343359351158E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.7404061555862E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -5.8961451090369E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.6452039259649E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.8991860252817E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3371224876845E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.0036639306938E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2835232190818E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5402278628981E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1138403911517E-04 +(PID.TID 0000.0001) %MON ke_max = 3.1499047402406E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0574476462818E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.2200319326548E-07 +(PID.TID 0000.0001) %MON vort_r_max = 9.8870203558082E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570026E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3138176910932E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838204E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453377537423E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.2011580807865E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1557170411787E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.4429509648564E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.6411768585524E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2619456454509E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0331286137289E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 3.5366178405532E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.5617847262853E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 1.9500363505308E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3641949244605E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.9629918291403E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3379345129430E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 3.2964254616333E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.8658220611564E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.1265729801482E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.9838206338730E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 2.2273775194298E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 3.0026850002845E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -1.8981224313384E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 5.9486556791158E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6309645059161E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 3.2481489466092E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8399706073681E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 3.9748290888003E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 1.6196386322261E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 7.3415516730862E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 3.0999411510078E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.57216930216624E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 23 +(PID.TID 0000.0001) cg2d_last_res = 3.22678361722814E-14 + DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5184001 +(PID.TID 0000.0001) %MON time_secondsf = 2.2394884320000E+11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6608780374678E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4781951473058E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5159858284366E-11 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6493466017731E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1653159796651E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8986984278831E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3804551025530E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8634072204829E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3097550996341E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9137558374943E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4889942318624E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1665653370549E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6703375043405E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.3020979875237E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.8034542121214E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2263116270432E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4342054349509E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.0764791825754E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6038816103993E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7767516928060E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0252024360087E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0087829103125E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.8021757020518E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5122940125427E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5912758790261E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7556636309538E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1485112681190E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4614648140808E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1408598979457E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0466280959698E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5173381042480E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1320401000977E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7651133920904E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1600054643933E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7307867599176E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.6936699450016E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5727265179157E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7848029829239E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9618937726443E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4788145916980E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.9744335860014E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.5944199264050E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4503818001955E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4276273939354E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7990220506047E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3374575543517E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.0012510288420E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4435103689395E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3371654181694E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9932721597106E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2657031816595E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5188438179914E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1133922614647E-04 +(PID.TID 0000.0001) %MON ke_max = 3.1404681836338E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0573768650851E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.2105992894185E-07 +(PID.TID 0000.0001) %MON vort_r_max = 9.8659325221036E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570025E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3138177038012E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453377510641E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1389795113069E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1483419577329E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.4429509986307E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.6411930683967E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2619452774484E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0331401133138E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 3.5355209832225E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.5617870833105E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 1.9500704068772E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3641949317055E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.9630201978033E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3374544536024E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 3.2964244076203E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.8598610945814E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.1265711400384E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.9838569638277E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 2.2267380811568E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 3.0027248693794E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -1.8980967918909E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 5.9503219132099E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6320157313319E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 3.2333011167279E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8407203837397E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 3.9791810357998E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 1.6196347937076E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 7.3415102424305E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 3.0949647818411E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.54884724297850E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 23 +(PID.TID 0000.0001) cg2d_last_res = 3.15646026996852E-14 + DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5184002 +(PID.TID 0000.0001) %MON time_secondsf = 2.2394888640000E+11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6565856693266E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4781022942954E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5160016269244E-11 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6490413443238E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1652783790709E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9004714332921E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3778600413630E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8636308091425E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3097607010952E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9135070931377E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4875407193345E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1589246716530E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6695646960755E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.3009759115415E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.8019771131007E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2143018492739E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4367512545507E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.3910972405413E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6028453872059E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7752683322451E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0257430999264E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0143263475734E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.8022241067970E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5123461508017E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5956847911533E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7556410862780E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1485686574071E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4614648582893E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1408394833000E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0538025502658E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5165532073975E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1277729593913E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7646049505512E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1589852404138E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7316938140193E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.6912787457307E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5720446159442E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7838830706352E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9610308535003E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4814768150805E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.9778054629763E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.5953998118639E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4319072438235E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4324355939290E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7988590232348E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3375004891472E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9908676057712E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4427546421371E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3375202055499E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9827160086277E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2477500621398E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4973000745677E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1129477464459E-04 +(PID.TID 0000.0001) %MON ke_max = 3.1309359873306E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0573121822248E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.1999071593857E-07 +(PID.TID 0000.0001) %MON vort_r_max = 9.8446191346542E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570025E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3138177167611E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453377492787E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0990580761131E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1109399686406E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.4429510307968E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.6412090214735E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2619449078087E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0331516615138E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 3.5356961003371E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.5617903954975E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 1.9501042830029E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3641949390776E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.9630481746782E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3389559933462E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 3.2964233253660E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.8539361345249E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.1265693033466E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.9838932227518E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 2.2279862988032E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 3.0027669286638E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -1.8980394734935E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 5.9519846314966E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6330591407861E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 3.2491388948861E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8414572824003E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 3.9791882618622E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 1.6196311219075E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 7.3414677812221E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 3.1016960555826E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.58601170893068E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 23 +(PID.TID 0000.0001) cg2d_last_res = 3.16339676304049E-14 + DIC_COST: iter,totcost = 5184003 -4.541500326292146E+11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5184003 +(PID.TID 0000.0001) %MON time_secondsf = 2.2394892960000E+11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6529985804955E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4780163114369E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5159634078282E-11 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6487381275097E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1652634757812E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9020934783721E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3752271813675E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8638454938671E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3097690129492E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9132096928854E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4859031435714E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1511663354344E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6687520215518E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2998952446945E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.8005988770613E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.2043732569891E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4399960047571E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.6631250433874E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6017662411064E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7736709604177E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0262717384777E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0198616343358E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.8022721322930E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5124001294325E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5965732055678E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7556176017514E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1486276863215E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4614649012078E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1408207305048E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0564014926782E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5157683105469E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1235058186849E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7640965090120E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1579811205148E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7328516516788E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.6907762686412E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5713627139727E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7829631583465E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9603149949656E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4844090700074E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.9811773399512E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.5963796973228E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.4134326874516E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4374188740913E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7989439238480E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3378553121503E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9803199346505E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4417048007962E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3381791531320E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9719972865049E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2296695785578E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4756034942693E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1125062267732E-04 +(PID.TID 0000.0001) %MON ke_max = 3.1213093465428E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0572534231216E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.1879697323743E-07 +(PID.TID 0000.0001) %MON vort_r_max = 9.8230803779251E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570026E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3138177295610E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838204E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453377470486E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0416464644475E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.0981452663595E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.4429510614628E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.6412247239048E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2619445401477E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0331631265257E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 3.5359619159814E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.5617952260903E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 1.9501379884715E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3641949465956E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.9630762210098E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3391536965385E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 3.2964222168281E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.8480470716173E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.1265674713761E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.9839290649049E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 2.2293946541934E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 3.0028113167967E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -1.8979514296815E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 5.9536431559580E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6340909867846E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 3.2656835131358E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8421816840994E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 3.9791950334416E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 1.6196274781431E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 7.3414261501617E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 3.1030705141409E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 +(PID.TID 0000.0001) cg2d_init_res = 1.54860730641480E-02 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 23 +(PID.TID 0000.0001) cg2d_last_res = 3.09074311318415E-14 + DIC_COST: iter,totcost = 5184004 -6.055961593668318E+11 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5184004 +(PID.TID 0000.0001) %MON time_secondsf = 2.2394897280000E+11 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.6492668904936E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4779318832189E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.5159871528607E-11 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.6484367066590E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.1652313477922E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9035664475620E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3725569210148E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8640646220033E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3097815644601E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.9129647935826E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.4840844207928E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1432916338298E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6679827103787E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2988339998843E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.7991999499960E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.1930641534489E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.4449479088993E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1461805796597E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6005838050258E-06 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7719568188130E-08 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0267882386356E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.0253702969832E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.8023202845950E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.5124566023914E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 2.5966587108942E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7555931137355E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1486884591927E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4614649448187E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1408029458752E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 4.0556894796895E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.5149834136963E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = -2.1192386779785E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = -1.7635880674728E+01 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1569931466250E+02 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 2.7342599543089E-01 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 6.6865915471226E-05 +(PID.TID 0000.0001) %MON forcing_empmr_min = -1.5018765964214E-04 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 7.7320599494492E-09 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 2.3858729798697E-05 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 1.1192342175733E-07 +(PID.TID 0000.0001) %MON forcing_fu_max = 2.6902737915516E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.5706808120012E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.7820432460578E-02 +(PID.TID 0000.0001) %MON forcing_fu_sd = 8.9597462322892E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 2.4876104015851E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 1.9845492169261E-01 +(PID.TID 0000.0001) %MON forcing_fv_min = -1.5973595827818E-01 +(PID.TID 0000.0001) %MON forcing_fv_mean = -6.3949581310796E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 4.4425766452552E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 1.7992767173481E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.3385143258947E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.9696098230863E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4401792396470E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3391324513770E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.9611177968924E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2204927595519E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4537649486545E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 4.1120673457260E-04 +(PID.TID 0000.0001) %MON ke_max = 3.1115895351285E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0572012159447E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.2571476858570E+18 +(PID.TID 0000.0001) %MON vort_r_min = -9.1748015219916E-07 +(PID.TID 0000.0001) %MON vort_r_max = 9.8013167654198E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4002453570026E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3138177425003E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.8585773838203E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.1453377454396E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.9841501325004E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.0847793352749E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 2.4429510907340E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 1.6412401868098E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 2.2619441733067E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0331745548192E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 3.5363956204655E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer02_max = 2.5618006931126E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_min = 1.9501715341541E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_mean = 2.3641949542681E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer02_sd = 4.9631039596111E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer02_del2 = 2.3394925204618E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_max = 3.2964210839914E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_min = 4.8421937961820E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer03_mean = 2.1265656434919E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer03_sd = 6.9839649569146E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer03_del2 = 2.2300031820003E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_max = 3.0028581708530E-04 +(PID.TID 0000.0001) %MON trcstat_ptracer04_min = -1.8978324029358E-07 +(PID.TID 0000.0001) %MON trcstat_ptracer04_mean = 5.9552978750405E-06 +(PID.TID 0000.0001) %MON trcstat_ptracer04_sd = 2.6351196424833E-05 +(PID.TID 0000.0001) %MON trcstat_ptracer04_del2 = 3.2779020777133E-08 +(PID.TID 0000.0001) %MON trcstat_ptracer05_max = 3.8428938817997E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_min = 3.9787442557879E-03 +(PID.TID 0000.0001) %MON trcstat_ptracer05_mean = 1.6196238195150E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer05_sd = 7.3413858249863E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer05_del2 = 3.1019704475807E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 5184004 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366832D+12 + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593668318E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593668318E+11 + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326292146E+11 + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326292146E+11 + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 + cg2d: Sum(rhs),rhsMax = 2.88657986402541E-15 5.01096873798722E+03 + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 + cg2d: Sum(rhs),rhsMax = 3.01980662698043E-14 1.65345367246671E+04 + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 2.65651411945461E+04 + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326292146E+11 + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593668318E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366832D+12 +(PID.TID 0000.0001) grdchk reference fc: fcref = -6.05596159366832E+11 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1 55673 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 61 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 61 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219457933E+11 + cg2d: Sum(rhs),rhsMax = -2.93547650187520E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468625585909E+11 + cg2d: Sum(rhs),rhsMax = -2.93676698959189E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500327266726E+11 + cg2d: Sum(rhs),rhsMax = -2.93793195993430E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961594565044E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159456504D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159456504E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218058198E+11 + cg2d: Sum(rhs),rhsMax = -2.93547692820084E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623869000E+11 + cg2d: Sum(rhs),rhsMax = -2.93676304607970E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500325317681E+11 + cg2d: Sum(rhs),rhsMax = -2.93793096517447E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961592771748E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159277175D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159277175E+11 +grad-res ------------------------------- + grad-res 0 1 61 5 1 1 1 1 -6.05596159367E+11 -6.05596159457E+11 -6.05596159277E+11 + grad-res 0 1 1 1 0 1 1 1 -8.96642030128E+06 -8.96647949219E+06 -6.60139790920E-06 +(PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) ADM adjoint_gradient = -8.96642030127927E+06 +(PID.TID 0000.0001) ADM finite-diff_grad = -8.96647949218750E+06 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 2 55673 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 + ph-grd -->hit<-- 62 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 62 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219785814E+11 + cg2d: Sum(rhs),rhsMax = -2.93547650187520E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626320515E+11 + cg2d: Sum(rhs),rhsMax = -2.93676450269231E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500328550085E+11 + cg2d: Sum(rhs),rhsMax = -2.93793565475653E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961596467217E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159646722D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159646722E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217730292E+11 + cg2d: Sum(rhs),rhsMax = -2.93547543606110E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623134349E+11 + cg2d: Sum(rhs),rhsMax = -2.93676393425812E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500324034238E+11 + cg2d: Sum(rhs),rhsMax = -2.93793096517447E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961590869471E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159086947D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159086947E+11 +grad-res ------------------------------- + grad-res 0 2 62 5 1 1 1 1 -6.05596159367E+11 -6.05596159647E+11 -6.05596159087E+11 + grad-res 0 2 2 2 0 1 1 1 -2.79887775463E+07 -2.79887268066E+07 1.81285748702E-06 +(PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.79887775463055E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.79887268066406E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 3 55673 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2 3 + ph-grd -->hit<-- 63 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 63 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219781553E+11 + cg2d: Sum(rhs),rhsMax = -2.93547707030939E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626349929E+11 + cg2d: Sum(rhs),rhsMax = -2.93676123419573E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500328636306E+11 + cg2d: Sum(rhs),rhsMax = -2.93793192440717E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961596637151E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159663715D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159663715E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217734550E+11 + cg2d: Sum(rhs),rhsMax = -2.93547572027819E-07 8.32580875881017E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623104910E+11 + cg2d: Sum(rhs),rhsMax = -2.93676485796368E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500323947994E+11 + cg2d: Sum(rhs),rhsMax = -2.93793238625994E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961590699534E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159069953D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159069953E+11 +grad-res ------------------------------- + grad-res 0 3 63 5 1 1 1 1 -6.05596159367E+11 -6.05596159664E+11 -6.05596159070E+11 + grad-res 0 3 3 3 0 1 1 1 -2.96880648494E+07 -2.96880859375E+07 -7.10320990915E-07 +(PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.96880648494444E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.96880859375000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 4 55673 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 3 4 + ph-grd -->hit<-- 64 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 64 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960220046031E+11 + cg2d: Sum(rhs),rhsMax = -2.93547607554956E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626809648E+11 + cg2d: Sum(rhs),rhsMax = -2.93676272633547E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500329353086E+11 + cg2d: Sum(rhs),rhsMax = -2.93793188888003E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961597615192E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159761519D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159761519E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465159728612E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217470071E+11 + cg2d: Sum(rhs),rhsMax = -2.93547618213097E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468622645211E+11 + cg2d: Sum(rhs),rhsMax = -2.93676517770791E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500323231237E+11 + cg2d: Sum(rhs),rhsMax = -2.93793608108217E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961589721516E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596158972152D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596158972152E+11 +grad-res ------------------------------- + grad-res 0 4 64 5 1 1 1 1 -6.05596159367E+11 -6.05596159762E+11 -6.05596158972E+11 + grad-res 0 4 4 4 0 1 1 1 -3.94683631172E+07 -3.94683776855E+07 -3.69113883902E-07 +(PID.TID 0000.0001) ADM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.94683631172261E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.94683776855469E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 61 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 1 -6.0559615936683E+11 -6.0559615945650E+11 -6.0559615927717E+11 +(PID.TID 0000.0001) grdchk output (g): 1 -8.9664794921875E+06 -8.9664203012793E+06 -6.6013979092006E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 62 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 2 -6.0559615936683E+11 -6.0559615964672E+11 -6.0559615908695E+11 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7988726806641E+07 -2.7988777546306E+07 1.8128574870158E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 63 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 3 -6.0559615936683E+11 -6.0559615966372E+11 -6.0559615906995E+11 +(PID.TID 0000.0001) grdchk output (g): 3 -2.9688085937500E+07 -2.9688064849444E+07 -7.1032099091539E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 64 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 4 -6.0559615936683E+11 -6.0559615976152E+11 -6.0559615897215E+11 +(PID.TID 0000.0001) grdchk output (g): 4 -3.9468377685547E+07 -3.9468363117226E+07 -3.6911388390237E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.4462192179710E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 57.528208795934916 +(PID.TID 0000.0001) System time: 1.3790509887039661 +(PID.TID 0000.0001) Wall clock time: 59.105166912078857 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.11517800297588110 +(PID.TID 0000.0001) System time: 2.5809999322518706E-002 +(PID.TID 0000.0001) Wall clock time: 0.14183807373046875 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 32.929938703775406 +(PID.TID 0000.0001) System time: 3.3053904771804810E-002 +(PID.TID 0000.0001) Wall clock time: 33.052369356155396 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.13097235560417175 +(PID.TID 0000.0001) System time: 1.0153234004974365E-002 +(PID.TID 0000.0001) Wall clock time: 0.14180183410644531 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 5.5196255445480347E-002 +(PID.TID 0000.0001) System time: 3.1680762767791748E-003 +(PID.TID 0000.0001) Wall clock time: 5.8617353439331055E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.11023890972137451 +(PID.TID 0000.0001) System time: 9.3899667263031006E-004 +(PID.TID 0000.0001) Wall clock time: 0.11169791221618652 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9531041383743286E-002 +(PID.TID 0000.0001) System time: 1.0188668966293335E-004 +(PID.TID 0000.0001) Wall clock time: 1.9686937332153320E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1461519300937653 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.1551134586334229 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 22.077018201351166 +(PID.TID 0000.0001) System time: 1.9630193710327148E-003 +(PID.TID 0000.0001) Wall clock time: 22.137558937072754 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.2242814302444458 +(PID.TID 0000.0001) System time: 5.6065618991851807E-005 +(PID.TID 0000.0001) Wall clock time: 7.2434277534484863 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.78672885894775391 +(PID.TID 0000.0001) System time: 1.8000602722167969E-005 +(PID.TID 0000.0001) Wall clock time: 0.78893375396728516 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.20407652854919434 +(PID.TID 0000.0001) System time: 2.2009015083312988E-005 +(PID.TID 0000.0001) Wall clock time: 0.20463204383850098 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.20303630828857422 +(PID.TID 0000.0001) System time: 2.1003186702728271E-005 +(PID.TID 0000.0001) Wall clock time: 0.20366406440734863 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.6285648345947266E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.8061866760253906E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.5525828599929810 +(PID.TID 0000.0001) System time: 1.9073486328125000E-006 +(PID.TID 0000.0001) Wall clock time: 1.5573956966400146 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.34398162364959717 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.34515070915222168 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.4286203384399414E-002 +(PID.TID 0000.0001) System time: 1.0728836059570312E-006 +(PID.TID 0000.0001) Wall clock time: 9.4558238983154297E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.13936877250671387 +(PID.TID 0000.0001) System time: 1.0728836059570312E-006 +(PID.TID 0000.0001) Wall clock time: 0.13973474502563477 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.6869773864746094E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.6583671569824219E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.10319769382476807 +(PID.TID 0000.0001) System time: 5.9329420328140259E-003 +(PID.TID 0000.0001) Wall clock time: 0.10965299606323242 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.5868415832519531E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.6082992553710938E-004 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.4730305671691895E-002 +(PID.TID 0000.0001) System time: 1.3917908072471619E-002 +(PID.TID 0000.0001) Wall clock time: 5.8917045593261719E-002 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 30.669559478759766 +(PID.TID 0000.0001) System time: 9.9689006805419922E-002 +(PID.TID 0000.0001) Wall clock time: 30.854439973831177 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 1.3340988159179688 +(PID.TID 0000.0001) System time: 8.6596012115478516E-002 +(PID.TID 0000.0001) Wall clock time: 1.4268002510070801 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 29.226945877075195 +(PID.TID 0000.0001) System time: 8.1810951232910156E-003 +(PID.TID 0000.0001) Wall clock time: 29.313675880432129 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 29.226400375366211 +(PID.TID 0000.0001) System time: 8.1778764724731445E-003 +(PID.TID 0000.0001) Wall clock time: 29.313129186630249 +(PID.TID 0000.0001) No. starts: 36 +(PID.TID 0000.0001) No. stops: 36 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 2.3841857910156250E-004 +(PID.TID 0000.0001) System time: 1.0728836059570312E-006 +(PID.TID 0000.0001) Wall clock time: 2.3889541625976562E-004 +(PID.TID 0000.0001) No. starts: 9 +(PID.TID 0000.0001) No. stops: 9 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 12500 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 12500 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_global_oce_biogeo/results/output_tap_tlm.txt b/verification/tutorial_global_oce_biogeo/results/output_tap_tlm.txt new file mode 100644 index 0000000000..d00349ee49 --- /dev/null +++ b/verification/tutorial_global_oce_biogeo/results/output_tap_tlm.txt @@ -0,0 +1,4183 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 03:13:14 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 64 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 32 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 4 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 4 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 15 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 128 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 64 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=15*20., +(PID.TID 0000.0001) > sRef=15*35., +(PID.TID 0000.0001) > viscA4=0., +(PID.TID 0000.0001) > viscAh=2.E5, +(PID.TID 0000.0001) > diffKhT=0.E3, +(PID.TID 0000.0001) > diffKhS=0.E3, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) >#diffKzT=3.E-5, +(PID.TID 0000.0001) >#diffKzS=3.E-5, +(PID.TID 0000.0001) > diffKrBL79surf= 3.E-5, +(PID.TID 0000.0001) > diffKrBL79deep= 13.E-5, +(PID.TID 0000.0001) > diffKrBL79Ho = -2000., +(PID.TID 0000.0001) > diffKrBL79scl = 150., +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > rhoConst=1035., +(PID.TID 0000.0001) > rhoConstFresh=1000., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > eosType='JMD95Z', +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > ivdc_kappa=100., +(PID.TID 0000.0001) > tempAdvScheme = 2, +(PID.TID 0000.0001) > saltAdvScheme = 2, +(PID.TID 0000.0001) > allowFreezing=.TRUE., +(PID.TID 0000.0001) ># turn on looped cells +(PID.TID 0000.0001) > hFacMin=.1, +(PID.TID 0000.0001) > hFacMindz=50., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=1000, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=5184000, +(PID.TID 0000.0001) > nTimeSteps = 4, +(PID.TID 0000.0001) > deltaTmom = 900., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > deltaTtracer= 43200., +(PID.TID 0000.0001) > deltaTClock = 43200., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 216000., +(PID.TID 0000.0001) > chkptFreq = 216000., +(PID.TID 0000.0001) > dumpFreq = 216000., +(PID.TID 0000.0001) > taveFreq = 216000., +(PID.TID 0000.0001) > monitorFreq= 86400., +(PID.TID 0000.0001) > tauThetaClimRelax = 5184000., +(PID.TID 0000.0001) > tauSaltClimRelax = 7776000., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=2592000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > monitorFreq= 1., +(PID.TID 0000.0001) > adjMonitorFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delZ= 50., 70., 100., 140., 190., +(PID.TID 0000.0001) > 240., 290., 340., 390., 440., +(PID.TID 0000.0001) > 490., 540., 590., 640., 690., +(PID.TID 0000.0001) > ygOrigin=-90., +(PID.TID 0000.0001) > delX=128*2.8125, +(PID.TID 0000.0001) > delY=64*2.8125, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile= 'bathy.bin', +(PID.TID 0000.0001) > hydrogThetaFile='lev_clim_temp.bin', +(PID.TID 0000.0001) > hydrogSaltFile= 'lev_clim_salt.bin', +(PID.TID 0000.0001) > zonalWindFile= 'tren_taux.bin', +(PID.TID 0000.0001) > meridWindFile= 'tren_tauy.bin', +(PID.TID 0000.0001) > thetaClimFile= 'lev_monthly_temp.bin', +(PID.TID 0000.0001) > saltClimFile= 'lev_monthly_salt.bin', +(PID.TID 0000.0001) > surfQnetFile= 'shi_qnet.bin', +(PID.TID 0000.0001) > EmPmRFile= 'shi_empmr_year.bin', +(PID.TID 0000.0001) > the_run_name= 'Tutorial Biogeo', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGMRedi=.TRUE., +(PID.TID 0000.0001) > usePTRACERS=.TRUE., +(PID.TID 0000.0001) > useGCHEM=.TRUE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + pkg/gchem compiled and used ( useGCHEM = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled and used ( taveFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) ># GM_AdvForm = .TRUE., +(PID.TID 0000.0001) ># GM_isopycK = 1.D+3, +(PID.TID 0000.0001) > GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) >### GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) >### GM_Visbeck_alpha = 0.D0, +(PID.TID 0000.0001) >### GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) >### GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) >### GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=5, +(PID.TID 0000.0001) > PTRACERS_Iter0= 0, +(PID.TID 0000.0001) ># tracer 1 - dic +(PID.TID 0000.0001) > PTRACERS_names(1)='DIC', +(PID.TID 0000.0001) > PTRACERS_long_names(1)='Dissolved Inorganic Carbon (DIC) [mol C/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(1)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(1)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(1)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(1)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(1)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(1)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,1) = 2.0282, 2.0609, 2.1206, 2.1581, +(PID.TID 0000.0001) > 2.1904, 2.2188, 2.2474, 2.2699, +(PID.TID 0000.0001) > 2.2792, 2.2814, 2.2815, 2.2806, +(PID.TID 0000.0001) > 2.2800, 2.2760, 2.2758, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(1)= 0., +(PID.TID 0000.0001) ># tracer 2 - alk +(PID.TID 0000.0001) > PTRACERS_names(2)='Alk', +(PID.TID 0000.0001) > PTRACERS_long_names(2)='Alkalinity (Alk) [mol eq/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(2)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(2)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(2)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(2)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(2)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(2)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,2) = 2.3086, 2.3149, 2.3164, 2.3112, +(PID.TID 0000.0001) > 2.3098, 2.3160, 2.3313, 2.3517, +(PID.TID 0000.0001) > 2.3667, 2.3761, 2.3832, 2.3862, +(PID.TID 0000.0001) > 2.3881, 2.3863, 2.3867, +(PID.TID 0000.0001) > PTRACERS_EvPrRn(2)= 0., +(PID.TID 0000.0001) ># tracer 3 - po4 +(PID.TID 0000.0001) > PTRACERS_names(3)='PO4', +(PID.TID 0000.0001) > PTRACERS_long_names(3)='Phosphate (PO4) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(3)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(3)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(3)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(3)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(3)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(3)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,3) = 0.5438E-3, 0.7821E-3, 1.1335E-3, 1.4913E-3, +(PID.TID 0000.0001) > 1.8606E-3, 2.1986E-3, 2.3966E-3, 2.4187E-3, +(PID.TID 0000.0001) > 2.4046E-3, 2.3291E-3, 2.2922E-3, 2.2886E-3, +(PID.TID 0000.0001) > 2.2608E-3, 2.2356E-3, 2.2296E-3, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(3)= 0., +(PID.TID 0000.0001) ># tracer 4 - dop +(PID.TID 0000.0001) > PTRACERS_names(4)='DOP', +(PID.TID 0000.0001) > PTRACERS_long_names(4)='Dissolved Organic Phosphorus (DOP) [mol P/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(4)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(4)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(4)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(4)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(4)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(4)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,4) = 15*0., +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(4)= 0., +(PID.TID 0000.0001) ># tracer 5 - o2 +(PID.TID 0000.0001) > PTRACERS_names(5)='O2', +(PID.TID 0000.0001) > PTRACERS_long_names(5)='Dissolved Oxygen (O2) [mol O/m^3]', +(PID.TID 0000.0001) > PTRACERS_units(5)='mol/m^3', +(PID.TID 0000.0001) > PTRACERS_advScheme(5)=77, +(PID.TID 0000.0001) > PTRACERS_diffKh(5)=0.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr(5)=3.E-5, +(PID.TID 0000.0001) > PTRACERS_useGMRedi(5)=.TRUE., +(PID.TID 0000.0001) > PTRACERS_initialFile(5)=' ', +(PID.TID 0000.0001) >#- use F95 syntax (to be converted with -DNML_EXTENDED_F77 if needed) +(PID.TID 0000.0001) > PTRACERS_ref(1:15,5) = 0.2457, 0.2336, 0.1975, 0.1729, +(PID.TID 0000.0001) > 0.1591, 0.1503, 0.1424, 0.1445, +(PID.TID 0000.0001) > 0.1549, 0.1661, 0.1774, 0.1863, +(PID.TID 0000.0001) > 0.1925, 0.2021, 0.2051, +(PID.TID 0000.0001) >#PTRACERS_EvPrRn(5)= 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) GCHEM_READPARMS: opening data.gchem +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gchem +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gchem" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > &GCHEM_PARM01 +(PID.TID 0000.0001) > useDIC=.TRUE., +(PID.TID 0000.0001) > nsubtime=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GCHEM_READPARMS: finished reading data.gchem +(PID.TID 0000.0001) DIC_READPARMS: opening data.dic +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.dic +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.dic" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># DIC parameters +(PID.TID 0000.0001) > &ABIOTIC_PARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &BIOTIC_PARMS +(PID.TID 0000.0001) > alphaUniform = 0.97e-10, +(PID.TID 0000.0001) > rainRatioUniform = 5.e-2, +(PID.TID 0000.0001) > KRemin = 0.95, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &DIC_FORCING +(PID.TID 0000.0001) > DIC_iceFile='fice.bin', +(PID.TID 0000.0001) > DIC_windFile='tren_speed.bin', +(PID.TID 0000.0001) > DIC_silicaFile='sillev1.bin', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIC_READPARMS: finished reading data.dic +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC package parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) Using Millero (1995)/Mehrbach K1 and K2 coefficients +(PID.TID 0000.0001) Using Dickson and Riley (1979) KF coefficient +(PID.TID 0000.0001) Using Uppstrom (1974) BT estimation from salinity +(PID.TID 0000.0001) Using Riley (1965) FT estimation from salinity +(PID.TID 0000.0001) permil = /* Ref. density to convert mol/m3 to mol/kg */ +(PID.TID 0000.0001) 9.760858955588092E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Pa2Atm = /* Atmosph. pressure conversion coeff (to Atm) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zca = /* Scale depth for CaCO3 remineralization (m) */ +(PID.TID 0000.0001) 3.500000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCalciteSaturation = /* Flag for omegaC calculation on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DOPfraction = /* Fraction of new production going to DOP */ +(PID.TID 0000.0001) 6.700000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KDOPRemin = /* DOP remineralization rate (1/s) */ +(PID.TID 0000.0001) 6.430041152263375E-08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KRemin = /* Remin power law coeff. */ +(PID.TID 0000.0001) 9.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zcrit = /* Minimum depth for biological activity (m) */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) O2crit = /* Critical oxygen level (mol/m3) */ +(PID.TID 0000.0001) 4.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_OP = /* Stochiometric ratio R_OP */ +(PID.TID 0000.0001) -1.700000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_CP = /* Stochiometric ratio R_CP */ +(PID.TID 0000.0001) 1.170000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_NP = /* Stochiometric ratio R_NP */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) R_FeP = /* Stochiometric ratio R_FeP */ +(PID.TID 0000.0001) 4.680000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) parfrac = /* Fraction of Qsw that is PAR */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) k0 = /* Light attentuation coefficient, water (1/m) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kchl = /* Light attentuation coefficient, chlorophyll (m2/mg) */ +(PID.TID 0000.0001) 2.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) lit0 = /* Half saturation light constant (W/m2) */ +(PID.TID 0000.0001) 3.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPO4 = /* Half saturation phosphate constant (mol/m3) */ +(PID.TID 0000.0001) 5.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KFE = /* Half saturation fe constant (mol/m3) */ +(PID.TID 0000.0001) 1.200000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alpfe = /* Solubility of aeolian fe */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fesedflux_pcm = /* Sediment Fe flux = fesedflux_pcm*pflux+FeIntSec */ +(PID.TID 0000.0001) 7.208000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) FeIntSec = /* Sediment Fe flux = fesedflux_pcm * pflux + FeIntSec */ +(PID.TID 0000.0001) 5.787037037037037E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freefemax = /* Max solubility of free iron (mol/m3) */ +(PID.TID 0000.0001) 3.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KScav = /* Iron scavenging rate */ +(PID.TID 0000.0001) 6.108539094650206E-09 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_stab = /* Ligand-free iron stability constant (m3/mol) */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ligand_tot = /* Total free ligand (mol/m3) */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) alphaUniform = /* Timescale for biological activity */ +(PID.TID 0000.0001) 9.700000000000000E-11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rainRatioUniform= /* Inorganic/organic carbon rain ratio */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) QSW_underice = /* Flag for Qsw under Sea-Ice (i.e. SI fract included) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_windFile = /* File name of wind speeds */ +(PID.TID 0000.0001) 'tren_speed.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_atmospFile= /* File name of atmospheric pressure*/ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_silicaFile= /* File name of surface silica */ +(PID.TID 0000.0001) 'sillev1.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_iceFile = /* File name of seaice fraction */ +(PID.TID 0000.0001) 'fice.bin' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_parFile= /* File name of photosynthetically available radiation */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_chlaFile= /* File name of chlorophyll climatology */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_ironFile = /* File name of aeolian iron flux */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingPeriod = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) DIC_forcingCycle = /* Periodic forcing parameter specific for DIC (s) */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int1 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int2 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int3 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_int4 = /* */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dic_pCO2 = /* Atmospheric pCO2 to be read in data.dic */ +(PID.TID 0000.0001) 2.780000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Start registering GCHEM tracers +(PID.TID 0000.0001) DIC_TR_REGISTER: number of DIC tracers= 5 +(PID.TID 0000.0001) DIC_TR_REGISTER: starting at pTrc num= 1 +(PID.TID 0000.0001) DIC_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) GCHEM_TR_REGISTER: Numb. Trac & SepForc Trac: 5 5 +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > ctrlname = 'ecco_ctrl', +(PID.TID 0000.0001) > costname = 'ecco_cost', +(PID.TID 0000.0001) > scalname = 'ecco_scal', +(PID.TID 0000.0001) > maskname = 'ecco_mask', +(PID.TID 0000.0001) > metaname = 'ecco_meta', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_file(1) = 'xx_theta', +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_bounds(1:5,1) = -2.,-1.9,39.,40.,5., +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(2) = 'xx_salt', +(PID.TID 0000.0001) > xx_genarr3d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(3) = 'xx_diffkr', +(PID.TID 0000.0001) > xx_genarr3d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_genarr3d_file(4) = 'xx_ptr1', +(PID.TID 0000.0001) > xx_genarr3d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(2) = 'xx_empmr', +(PID.TID 0000.0001) > xx_gentim2d_weight(2) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(3) = 'xx_fu', +(PID.TID 0000.0001) > xx_gentim2d_weight(3) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > xx_gentim2d_file(4) = 'xx_fv', +(PID.TID 0000.0001) > xx_gentim2d_weight(4) = 'ones_64b.bin', +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-5, +(PID.TID 0000.0001) > nbeg = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># to test xx_tr1 set 204 +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > iGloPos =10, +(PID.TID 0000.0001) > jGloPos =10, +(PID.TID 0000.0001) > kGloPos =1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-04 +(PID.TID 0000.0001) First location: 1 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5859375000000E+02 +(PID.TID 0000.0001) %MON XC_min = 1.4062500000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5718750000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7859375000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391987692599E+02 +(PID.TID 0000.0001) %MON DXC_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXC_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXC_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXC_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXF_max = 3.1259246843155E+05 +(PID.TID 0000.0001) %MON DXF_min = 7.6737143816223E+03 +(PID.TID 0000.0001) %MON DXF_mean = 1.9908248704234E+05 +(PID.TID 0000.0001) %MON DXF_sd = 9.6190602240067E+04 +(PID.TID 0000.0001) %MON DXG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXG_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON DXV_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DXV_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_mean = 1.9902252711933E+05 +(PID.TID 0000.0001) %MON DXV_sd = 9.6314600686012E+04 +(PID.TID 0000.0001) %MON YC_max = 8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_min = -8.8593750000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON YG_max = 8.7187500000000E+01 +(PID.TID 0000.0001) %MON YG_min = -9.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -1.4062500000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 5.1955180880375E+01 +(PID.TID 0000.0001) %MON DYC_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYC_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYC_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYF_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYF_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYF_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYG_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYG_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYG_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON DYU_max = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_min = 3.1268664380261E+05 +(PID.TID 0000.0001) %MON DYU_mean = 3.1268664380260E+05 +(PID.TID 0000.0001) %MON DYU_sd = 4.3655745685101E-09 +(PID.TID 0000.0001) %MON RA_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RA_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RA_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RA_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAW_max = 9.7733676797555E+10 +(PID.TID 0000.0001) %MON RAW_min = 2.3992270990190E+09 +(PID.TID 0000.0001) %MON RAW_mean = 6.2244185031956E+10 +(PID.TID 0000.0001) %MON RAW_sd = 3.0074496923945E+10 +(PID.TID 0000.0001) %MON RAS_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAS_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAS_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON RAZ_max = 9.7763121221868E+10 +(PID.TID 0000.0001) %MON RAZ_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_mean = 6.2225438247155E+10 +(PID.TID 0000.0001) %MON RAZ_sd = 3.0113265689232E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_INIT_FIXED: updated GAD_OlMinSize= 2 0 1 + QQ load dic parameters, initial fixed +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // DIC_INIT_FIXED parameters : +(PID.TID 0000.0001) nlev = /* Number of level over which Bio act is computed */ +(PID.TID 0000.0001) 15 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 240064 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 1300 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 1246 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 1205 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 16159 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 32318 +(PID.TID 0000.0001) ctrl-wet 8: atmos 32318 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 15 240064 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 4447 4201 4277 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 4399 4158 4229 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 4352 4111 4178 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 4282 4046 4108 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 4220 3992 4050 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 4125 3897 3960 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 4075 3846 3907 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 4021 3785 3851 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 3970 3730 3801 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 3878 3629 3692 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 3763 3505 3562 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 3557 3269 3332 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 3091 2747 2809 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2428 2071 2146 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 1065 813 874 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 8 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 240064 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 30720 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 016159 014603 015209 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 019716 018428 019084 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 006646 006264 005997 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 013152 012505 012486 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_theta +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 2 is in use +(PID.TID 0000.0001) file = xx_salt +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0202 +(PID.TID 0000.0001) ncvarindex = 0302 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 3 is in use +(PID.TID 0000.0001) file = xx_diffkr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0203 +(PID.TID 0000.0001) ncvarindex = 0303 +(PID.TID 0000.0001) -> 3d control, genarr3d no. 4 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0204 +(PID.TID 0000.0001) ncvarindex = 0304 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 2 is in use +(PID.TID 0000.0001) file = xx_empmr +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0302 +(PID.TID 0000.0001) ncvarindex = 0402 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 3 is in use +(PID.TID 0000.0001) file = xx_fu +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0303 +(PID.TID 0000.0001) ncvarindex = 0403 +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 4 is in use +(PID.TID 0000.0001) file = xx_fv +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0304 +(PID.TID 0000.0001) ncvarindex = 0404 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCori_mean = 2.3039296165317E-19 +(PID.TID 0000.0001) %MON fCori_sd = 1.0312619976228E-04 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4566679669714E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4584247033981E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -2.2787885990593E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 1.0310101939326E-04 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4579854531444E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.5791533929553E-06 +(PID.TID 0000.0001) %MON fCoriCos_mean = 9.2855522572229E-05 +(PID.TID 0000.0001) %MON fCoriCos_sd = 4.4864964117307E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 7.0372759228205380E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.024872626184147E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.025135462285008E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.025507198938228E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.026030780760464E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.026748377776259E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.027679406285166E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028820735595355E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.030168558073105E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.031718419899614E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.033465256541184E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.035403432414885E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.037526784183520E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.039828667078104E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.042302003623418E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.044939334132512E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 2.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 1.000000000000000E-03 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 3.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 1.300000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 1.500000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'JMD95Z' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 1000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.971999950222133E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 5184000 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 5184004 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 2.239488000000000E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.239489728000000E+11 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 5.184000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 7.776000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 9.661835748792270E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 8.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.650000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.650000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.150000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.650000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.150000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.650000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) 1.400000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) 2.400000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) 3.400000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) 3.900000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 4.900000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 5.400000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 5.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 6.400000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 6.900000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 128 @ 2.812500000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 64 @ 2.812500000000000E+00 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -9.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.296875000000000E+01, /* I = 30 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* I = 31 */ +(PID.TID 0000.0001) 8.859375000000000E+01, /* I = 32 */ +(PID.TID 0000.0001) 9.140625000000000E+01, /* I = 33 */ +(PID.TID 0000.0001) 9.421875000000000E+01, /* I = 34 */ +(PID.TID 0000.0001) 9.703125000000000E+01, /* I = 35 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.729687500000000E+02, /* I = 62 */ +(PID.TID 0000.0001) 1.757812500000000E+02, /* I = 63 */ +(PID.TID 0000.0001) 1.785937500000000E+02, /* I = 64 */ +(PID.TID 0000.0001) 1.814062500000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 1.842187500000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 1.870312500000000E+02, /* I = 67 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.629687500000000E+02, /* I = 94 */ +(PID.TID 0000.0001) 2.657812500000000E+02, /* I = 95 */ +(PID.TID 0000.0001) 2.685937500000000E+02, /* I = 96 */ +(PID.TID 0000.0001) 2.714062500000000E+02, /* I = 97 */ +(PID.TID 0000.0001) 2.742187500000000E+02, /* I = 98 */ +(PID.TID 0000.0001) 2.770312500000000E+02, /* I = 99 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.529687500000000E+02, /* I =126 */ +(PID.TID 0000.0001) 3.557812500000000E+02, /* I =127 */ +(PID.TID 0000.0001) 3.585937500000000E+02 /* I =128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -8.859375000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -8.578125000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -8.296875000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -8.015625000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -7.734375000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -7.453125000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -7.171875000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -6.890625000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -6.609375000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -6.328125000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -6.046875000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -5.765625000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -5.484375000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -5.203125000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -4.921875000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -4.640625000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -4.359375000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -4.078125000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -3.796875000000000E+01, /* J = 19 */ +(PID.TID 0000.0001) -3.515625000000000E+01, /* J = 20 */ +(PID.TID 0000.0001) -3.234375000000000E+01, /* J = 21 */ +(PID.TID 0000.0001) -2.953125000000000E+01, /* J = 22 */ +(PID.TID 0000.0001) -2.671875000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) -2.390625000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) -2.109375000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) -1.828125000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) -1.546875000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) -1.265625000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) -9.843750000000000E+00, /* J = 29 */ +(PID.TID 0000.0001) -7.031250000000000E+00, /* J = 30 */ +(PID.TID 0000.0001) -4.218750000000000E+00, /* J = 31 */ +(PID.TID 0000.0001) -1.406250000000000E+00, /* J = 32 */ +(PID.TID 0000.0001) 1.406250000000000E+00, /* J = 33 */ +(PID.TID 0000.0001) 4.218750000000000E+00, /* J = 34 */ +(PID.TID 0000.0001) 7.031250000000000E+00, /* J = 35 */ +(PID.TID 0000.0001) 9.843750000000000E+00, /* J = 36 */ +(PID.TID 0000.0001) 1.265625000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 1.546875000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 1.828125000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 2.109375000000000E+01, /* J = 40 */ +(PID.TID 0000.0001) 2.390625000000000E+01, /* J = 41 */ +(PID.TID 0000.0001) 2.671875000000000E+01, /* J = 42 */ +(PID.TID 0000.0001) 2.953125000000000E+01, /* J = 43 */ +(PID.TID 0000.0001) 3.234375000000000E+01, /* J = 44 */ +(PID.TID 0000.0001) 3.515625000000000E+01, /* J = 45 */ +(PID.TID 0000.0001) 3.796875000000000E+01, /* J = 46 */ +(PID.TID 0000.0001) 4.078125000000000E+01, /* J = 47 */ +(PID.TID 0000.0001) 4.359375000000000E+01, /* J = 48 */ +(PID.TID 0000.0001) 4.640625000000000E+01, /* J = 49 */ +(PID.TID 0000.0001) 4.921875000000000E+01, /* J = 50 */ +(PID.TID 0000.0001) 5.203125000000000E+01, /* J = 51 */ +(PID.TID 0000.0001) 5.484375000000000E+01, /* J = 52 */ +(PID.TID 0000.0001) 5.765625000000000E+01, /* J = 53 */ +(PID.TID 0000.0001) 6.046875000000000E+01, /* J = 54 */ +(PID.TID 0000.0001) 6.328125000000000E+01, /* J = 55 */ +(PID.TID 0000.0001) 6.609375000000000E+01, /* J = 56 */ +(PID.TID 0000.0001) 6.890625000000000E+01, /* J = 57 */ +(PID.TID 0000.0001) 7.171875000000000E+01, /* J = 58 */ +(PID.TID 0000.0001) 7.453125000000000E+01, /* J = 59 */ +(PID.TID 0000.0001) 7.734375000000000E+01, /* J = 60 */ +(PID.TID 0000.0001) 8.015625000000000E+01, /* J = 61 */ +(PID.TID 0000.0001) 8.296875000000000E+01, /* J = 62 */ +(PID.TID 0000.0001) 8.578125000000000E+01, /* J = 63 */ +(PID.TID 0000.0001) 8.859375000000000E+01 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -8.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.700000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.900000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -4.550000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -6.700000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -9.350000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.250000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.615000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -2.030000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.495000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -3.010000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.575000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -4.190000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.855000000000000E+03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.200000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -2.200000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -3.600000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -5.500000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -7.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -1.080000000000000E+03, /* K = 8 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 9 */ +(PID.TID 0000.0001) -1.810000000000000E+03, /* K = 10 */ +(PID.TID 0000.0001) -2.250000000000000E+03, /* K = 11 */ +(PID.TID 0000.0001) -2.740000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -3.280000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -3.870000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -4.510000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -5.200000000000000E+03 /* K = 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 7.673714381622299E+03 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.673714381622299E+03, /* J = 1 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 3 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 5 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 14 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 3.125924684315491E+05, /* J = 32: 33 */ +(PID.TID 0000.0001) 3.118394057952309E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.103350947164461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.080831592123453E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.050890243928043E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.013599033908587E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.969047799856344E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.917343869596373E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.858611802425402E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.792993089037565E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.720645810660936E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.641744258225996E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.556478512483520E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.465053986083400E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.367690928717577E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.264623896519241E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.156101186996563E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.042384240862251E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.923747012199971E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.800475308484964E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.672866102048804E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.541226814647045E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.405874576853274E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.267135464063795E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.125343710953429E+05, /* J = 57 */ +(PID.TID 0000.0001) 9.808409062749070E+04, /* J = 58 */ +(PID.TID 0000.0001) 8.339751699416524E+04, /* J = 59 */ +(PID.TID 0000.0001) 6.851003143764105E+04, /* J = 60 */ +(PID.TID 0000.0001) 5.345749921461356E+04, /* J = 61 */ +(PID.TID 0000.0001) 3.827618319365421E+04, /* J = 62 */ +(PID.TID 0000.0001) 2.300265649478360E+04, /* J = 63 */ +(PID.TID 0000.0001) 7.673714381622299E+03 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 1.534280640463982E+04, /* J = 2 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 3 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 4 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 5 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 6 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 7 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 8 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 9 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 10 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 11 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 12 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 13 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 14 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 15 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 16 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 17 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 18 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 19 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 20 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 21 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 22 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 23 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 24 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 25 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 26 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 32 */ +(PID.TID 0000.0001) 3.126866438026091E+05, /* J = 33 */ +(PID.TID 0000.0001) 3.123099990460912E+05, /* J = 34 */ +(PID.TID 0000.0001) 3.111809721467461E+05, /* J = 35 */ +(PID.TID 0000.0001) 3.093022830292655E+05, /* J = 36 */ +(PID.TID 0000.0001) 3.066784576202870E+05, /* J = 37 */ +(PID.TID 0000.0001) 3.033158169450409E+05, /* J = 38 */ +(PID.TID 0000.0001) 2.992224618994463E+05, /* J = 39 */ +(PID.TID 0000.0001) 2.944082537343438E+05, /* J = 40 */ +(PID.TID 0000.0001) 2.888847902988777E+05, /* J = 41 */ +(PID.TID 0000.0001) 2.826653781002625E+05, /* J = 42 */ +(PID.TID 0000.0001) 2.757650002472408E+05, /* J = 43 */ +(PID.TID 0000.0001) 2.682002803544621E+05, /* J = 44 */ +(PID.TID 0000.0001) 2.599894424947394E+05, /* J = 45 */ +(PID.TID 0000.0001) 2.511522672956614E+05, /* J = 46 */ +(PID.TID 0000.0001) 2.417100442863276E+05, /* J = 47 */ +(PID.TID 0000.0001) 2.316855206090085E+05, /* J = 48 */ +(PID.TID 0000.0001) 2.211028462192875E+05, /* J = 49 */ +(PID.TID 0000.0001) 2.099875157067021E+05, /* J = 50 */ +(PID.TID 0000.0001) 1.983663068760452E+05, /* J = 51 */ +(PID.TID 0000.0001) 1.862672162372875E+05, /* J = 52 */ +(PID.TID 0000.0001) 1.737193915595329E+05, /* J = 53 */ +(PID.TID 0000.0001) 1.607530616514898E+05, /* J = 54 */ +(PID.TID 0000.0001) 1.473994635376230E+05, /* J = 55 */ +(PID.TID 0000.0001) 1.336907672054259E+05, /* J = 56 */ +(PID.TID 0000.0001) 1.196599981051027E+05, /* J = 57 */ +(PID.TID 0000.0001) 1.053409575883663E+05, /* J = 58 */ +(PID.TID 0000.0001) 9.076814147802141E+04, /* J = 59 */ +(PID.TID 0000.0001) 7.597665696450579E+04, /* J = 60 */ +(PID.TID 0000.0001) 6.100213802959342E+04, /* J = 61 */ +(PID.TID 0000.0001) 4.588065960101153E+04, /* J = 62 */ +(PID.TID 0000.0001) 3.064865064477965E+04, /* J = 63 */ +(PID.TID 0000.0001) 1.534280640463982E+04 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 128 @ 3.126866438026091E+05 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 64 @ 3.126866438026091E+05 /* J = 1: 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 2.399227099019018E+09 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.399227099019018E+09, /* J = 1 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 2 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 3 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 4 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 6 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 13 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 16 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 31 */ +(PID.TID 0000.0001) 2 @ 9.773367679755542E+10, /* J = 32: 33 */ +(PID.TID 0000.0001) 9.749822780969106E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.702789705119698E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.632381759006650E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.538768561539165E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.422175635109474E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.282883862289705E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.121228809161066E+10, /* J = 40 */ +(PID.TID 0000.0001) 8.937599916905872E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.732439563609566E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.506241998533159E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.259552151423444E+10, /* J = 44 */ +(PID.TID 0000.0001) 7.992964319729683E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.707120736888658E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.402710025128452E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.080465536516846E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.741163586252303E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.385621582452237E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.014696056945659E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.629280601812741E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.230303716643333E+10, /* J = 53 */ +(PID.TID 0000.0001) 4.818726571700000E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.395540692374860E+10, /* J = 55 */ +(PID.TID 0000.0001) 3.961765570517892E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.518446208391881E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.066650601170349E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.607467164043704E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.142002110131771E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.671376785519299E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.196724967835171E+10, /* J = 62 */ +(PID.TID 0000.0001) 7.191901348828056E+09, /* J = 63 */ +(PID.TID 0000.0001) 2.399227099019018E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 128 @ 0.000000000000000E+00 /* I = 1:128 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* J = 1 */ +(PID.TID 0000.0001) 4.797008993346594E+09, /* J = 2 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 3 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 4 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 5 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 6 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 7 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 8 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 9 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 10 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 11 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 12 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 13 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 14 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 15 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 16 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 17 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 18 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 19 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 20 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 21 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 22 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 23 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 24 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 25 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 26 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 27 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 28 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 29 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 30 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 31 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 32 */ +(PID.TID 0000.0001) 9.776312122186816E+10, /* J = 33 */ +(PID.TID 0000.0001) 9.764536126083739E+10, /* J = 34 */ +(PID.TID 0000.0001) 9.729236507180571E+10, /* J = 35 */ +(PID.TID 0000.0001) 9.670498305351135E+10, /* J = 36 */ +(PID.TID 0000.0001) 9.588463026068500E+10, /* J = 37 */ +(PID.TID 0000.0001) 9.483328299505896E+10, /* J = 38 */ +(PID.TID 0000.0001) 9.355347404428317E+10, /* J = 39 */ +(PID.TID 0000.0001) 9.204828658021815E+10, /* J = 40 */ +(PID.TID 0000.0001) 9.032134673130376E+10, /* J = 41 */ +(PID.TID 0000.0001) 8.837681484689812E+10, /* J = 42 */ +(PID.TID 0000.0001) 8.621937547463148E+10, /* J = 43 */ +(PID.TID 0000.0001) 8.385422607492096E+10, /* J = 44 */ +(PID.TID 0000.0001) 8.128706449983365E+10, /* J = 45 */ +(PID.TID 0000.0001) 7.852407526645966E+10, /* J = 46 */ +(PID.TID 0000.0001) 7.557191465787256E+10, /* J = 47 */ +(PID.TID 0000.0001) 7.243769468755632E+10, /* J = 48 */ +(PID.TID 0000.0001) 6.912896596594559E+10, /* J = 49 */ +(PID.TID 0000.0001) 6.565369951034003E+10, /* J = 50 */ +(PID.TID 0000.0001) 6.202026754202965E+10, /* J = 51 */ +(PID.TID 0000.0001) 5.823742331687641E+10, /* J = 52 */ +(PID.TID 0000.0001) 5.431428003795675E+10, /* J = 53 */ +(PID.TID 0000.0001) 5.026028890105701E+10, /* J = 54 */ +(PID.TID 0000.0001) 4.608521632591324E+10, /* J = 55 */ +(PID.TID 0000.0001) 4.179912042805190E+10, /* J = 56 */ +(PID.TID 0000.0001) 3.741232678790870E+10, /* J = 57 */ +(PID.TID 0000.0001) 3.293540357560110E+10, /* J = 58 */ +(PID.TID 0000.0001) 2.837913609127881E+10, /* J = 59 */ +(PID.TID 0000.0001) 2.375450078239423E+10, /* J = 60 */ +(PID.TID 0000.0001) 1.907263880047594E+10, /* J = 61 */ +(PID.TID 0000.0001) 1.434482916112175E+10, /* J = 62 */ +(PID.TID 0000.0001) 9.582461571859739E+09, /* J = 63 */ +(PID.TID 0000.0001) 4.797008993346594E+09 /* J = 64 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.303322488638320E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) the_run_name = /* Name of this simulation */ +(PID.TID 0000.0001) 'Tutorial Biogeo' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 5 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 15 @ 4.320000000000000E+04 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 2.160000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Inorganic Carbon (DIC) [mol C/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.028200000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.060900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.120600000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.158100000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.190400000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.218800000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.247400000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.269900000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.279200000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.281400000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.281500000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.280600000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.280000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.276000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.275800000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 2 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'Alk' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Alkalinity (Alk) [mol eq/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '02' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.308600000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 2.314900000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) 2.316400000000000E+00, /* K = 3 */ +(PID.TID 0000.0001) 2.311200000000000E+00, /* K = 4 */ +(PID.TID 0000.0001) 2.309800000000000E+00, /* K = 5 */ +(PID.TID 0000.0001) 2.316000000000000E+00, /* K = 6 */ +(PID.TID 0000.0001) 2.331300000000000E+00, /* K = 7 */ +(PID.TID 0000.0001) 2.351700000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 2.366700000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 2.376100000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 2.383200000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 2.386200000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.388100000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.386300000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 2.386700000000000E+00 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 3 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'PO4' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Phosphate (PO4) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '03' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 5.438000000000000E-04, /* K = 1 */ +(PID.TID 0000.0001) 7.821000000000000E-04, /* K = 2 */ +(PID.TID 0000.0001) 1.133500000000000E-03, /* K = 3 */ +(PID.TID 0000.0001) 1.491300000000000E-03, /* K = 4 */ +(PID.TID 0000.0001) 1.860600000000000E-03, /* K = 5 */ +(PID.TID 0000.0001) 2.198600000000000E-03, /* K = 6 */ +(PID.TID 0000.0001) 2.396600000000000E-03, /* K = 7 */ +(PID.TID 0000.0001) 2.418700000000000E-03, /* K = 8 */ +(PID.TID 0000.0001) 2.404600000000000E-03, /* K = 9 */ +(PID.TID 0000.0001) 2.329100000000000E-03, /* K = 10 */ +(PID.TID 0000.0001) 2.292200000000000E-03, /* K = 11 */ +(PID.TID 0000.0001) 2.288600000000000E-03, /* K = 12 */ +(PID.TID 0000.0001) 2.260800000000000E-03, /* K = 13 */ +(PID.TID 0000.0001) 2.235600000000000E-03, /* K = 14 */ +(PID.TID 0000.0001) 2.229600000000000E-03 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 4 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'DOP' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Organic Phosphorus (DOP) [mol P/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '04' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 15 @ 0.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 5 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) 'O2' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) 'Dissolved Oxygen (O2) [mol O/m^3]' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '05' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 77 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 15 @ 3.000000000000000E-05 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 2.457000000000000E-01, /* K = 1 */ +(PID.TID 0000.0001) 2.336000000000000E-01, /* K = 2 */ +(PID.TID 0000.0001) 1.975000000000000E-01, /* K = 3 */ +(PID.TID 0000.0001) 1.729000000000000E-01, /* K = 4 */ +(PID.TID 0000.0001) 1.591000000000000E-01, /* K = 5 */ +(PID.TID 0000.0001) 1.503000000000000E-01, /* K = 6 */ +(PID.TID 0000.0001) 1.424000000000000E-01, /* K = 7 */ +(PID.TID 0000.0001) 1.445000000000000E-01, /* K = 8 */ +(PID.TID 0000.0001) 1.549000000000000E-01, /* K = 9 */ +(PID.TID 0000.0001) 1.661000000000000E-01, /* K = 10 */ +(PID.TID 0000.0001) 1.774000000000000E-01, /* K = 11 */ +(PID.TID 0000.0001) 1.863000000000000E-01, /* K = 12 */ +(PID.TID 0000.0001) 1.925000000000000E-01, /* K = 13 */ +(PID.TID 0000.0001) 2.021000000000000E-01, /* K = 14 */ +(PID.TID 0000.0001) 2.051000000000000E-01 /* K = 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) GCHEM_CHECK --> Starts to check GCHEM set-up +(PID.TID 0000.0001) GCHEM_CHECK <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218758050E+11 + cg2d: Sum(rhs),rhsMax = -2.93547657292947E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624727419E+11 + cg2d: Sum(rhs),rhsMax = -2.93676180262992E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326292146E+11 + cg2d: Sum(rhs),rhsMax = -2.93793281258559E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593668318E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366832D+12 +(PID.TID 0000.0001) grdchk reference fc: fcref = -6.05596159366832E+11 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1 55673 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd -->hit<-- 61 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 61 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -3.40439482160448E-17 5.42136051441406E-03 + cg2d: Sum(rhs),rhsMax = -2.93464854195236E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218757172E+11 + cg2d: Sum(rhs),rhsMax = 2.75821096330309E-15 7.73379496469338E-03 + cg2d: Sum(rhs),rhsMax = -2.93547152807605E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624725939E+11 + cg2d: Sum(rhs),rhsMax = -3.95516667435250E-14 8.08595009899147E-03 + cg2d: Sum(rhs),rhsMax = -2.93676599483206E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326289922E+11 + cg2d: Sum(rhs),rhsMax = -1.63812760914407E-13 7.88322987392108E-03 + cg2d: Sum(rhs),rhsMax = -2.93792755456934E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593665509E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366551D+12 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219457933E+11 + cg2d: Sum(rhs),rhsMax = -2.93547650187520E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468625585909E+11 + cg2d: Sum(rhs),rhsMax = -2.93676698959189E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500327266726E+11 + cg2d: Sum(rhs),rhsMax = -2.93793195993430E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961594565044E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159456504D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159456504E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218058198E+11 + cg2d: Sum(rhs),rhsMax = -2.93547692820084E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623869000E+11 + cg2d: Sum(rhs),rhsMax = -2.93676304607970E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500325317681E+11 + cg2d: Sum(rhs),rhsMax = -2.93793096517447E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961592771748E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159277175D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159277175E+11 +grad-res ------------------------------- + grad-res 0 1 61 5 1 1 1 1 -6.05596159367E+11 -6.05596159457E+11 -6.05596159277E+11 + grad-res 0 1 1 1 0 1 1 1 -8.96642030128E+06 -8.96647949219E+06 -6.60139793096E-06 +(PID.TID 0000.0001) TLM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) TLM tangent-lin_grad = -8.96642030127908E+06 +(PID.TID 0000.0001) TLM finite-diff_grad = -8.96647949218750E+06 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 2 55673 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 + ph-grd -->hit<-- 62 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 62 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 1.79706510089472E-16 1.26185420865003E-02 + cg2d: Sum(rhs),rhsMax = -2.93464854195236E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218757172E+11 + cg2d: Sum(rhs),rhsMax = 4.57654758419861E-14 1.39283812355220E-02 + cg2d: Sum(rhs),rhsMax = -2.93547152807605E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624725939E+11 + cg2d: Sum(rhs),rhsMax = 2.52437377983994E-14 1.22267973842446E-02 + cg2d: Sum(rhs),rhsMax = -2.93676599483206E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326289922E+11 + cg2d: Sum(rhs),rhsMax = -7.14695931970037E-14 1.08108329115992E-02 + cg2d: Sum(rhs),rhsMax = -2.93792755456934E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593665509E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366551D+12 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219785814E+11 + cg2d: Sum(rhs),rhsMax = -2.93547650187520E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626320515E+11 + cg2d: Sum(rhs),rhsMax = -2.93676450269231E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500328550085E+11 + cg2d: Sum(rhs),rhsMax = -2.93793565475653E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961596467217E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159646722D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159646722E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217730292E+11 + cg2d: Sum(rhs),rhsMax = -2.93547543606110E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623134349E+11 + cg2d: Sum(rhs),rhsMax = -2.93676393425812E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500324034238E+11 + cg2d: Sum(rhs),rhsMax = -2.93793096517447E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961590869471E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159086947D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159086947E+11 +grad-res ------------------------------- + grad-res 0 2 62 5 1 1 1 1 -6.05596159367E+11 -6.05596159647E+11 -6.05596159087E+11 + grad-res 0 2 2 2 0 1 1 1 -2.79887775463E+07 -2.79887268066E+07 1.81285750289E-06 +(PID.TID 0000.0001) TLM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) TLM tangent-lin_grad = -2.79887775463060E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -2.79887268066406E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 3 55673 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2 3 + ph-grd -->hit<-- 63 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 63 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 2.22803546445771E-17 1.28714827835053E-02 + cg2d: Sum(rhs),rhsMax = -2.93464854195236E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218757172E+11 + cg2d: Sum(rhs),rhsMax = 1.70558029658417E-14 1.53263166987753E-02 + cg2d: Sum(rhs),rhsMax = -2.93547152807605E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624725939E+11 + cg2d: Sum(rhs),rhsMax = -3.38608567654302E-15 1.40893147699023E-02 + cg2d: Sum(rhs),rhsMax = -2.93676599483206E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326289922E+11 + cg2d: Sum(rhs),rhsMax = -1.13934393801159E-13 1.23097377630282E-02 + cg2d: Sum(rhs),rhsMax = -2.93792755456934E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593665509E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366551D+12 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960219781553E+11 + cg2d: Sum(rhs),rhsMax = -2.93547707030939E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626349929E+11 + cg2d: Sum(rhs),rhsMax = -2.93676123419573E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500328636306E+11 + cg2d: Sum(rhs),rhsMax = -2.93793192440717E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961596637151E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159663715D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159663715E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217734550E+11 + cg2d: Sum(rhs),rhsMax = -2.93547572027819E-07 8.32580875881017E+00 + DIC_COST: iter,totcost = 5184002 -3.027468623104910E+11 + cg2d: Sum(rhs),rhsMax = -2.93676485796368E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500323947994E+11 + cg2d: Sum(rhs),rhsMax = -2.93793238625994E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961590699534E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159069953D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596159069953E+11 +grad-res ------------------------------- + grad-res 0 3 63 5 1 1 1 1 -6.05596159367E+11 -6.05596159664E+11 -6.05596159070E+11 + grad-res 0 3 3 3 0 1 1 1 -2.96880648494E+07 -2.96880859375E+07 -7.10320973374E-07 +(PID.TID 0000.0001) TLM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) TLM tangent-lin_grad = -2.96880648494449E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -2.96880859375000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 4 55673 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 3 4 + ph-grd -->hit<-- 64 5 1 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 64 5 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-16 1.40506892538881E-02 + cg2d: Sum(rhs),rhsMax = -2.93464854195236E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960218757172E+11 + cg2d: Sum(rhs),rhsMax = 1.93178846504781E-14 1.68059208758610E-02 + cg2d: Sum(rhs),rhsMax = -2.93547152807605E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468624725939E+11 + cg2d: Sum(rhs),rhsMax = 9.77016801403635E-15 1.55863121044075E-02 + cg2d: Sum(rhs),rhsMax = -2.93676599483206E-07 8.32215434141134E+00 + DIC_COST: iter,totcost = 5184003 -4.541500326289922E+11 + cg2d: Sum(rhs),rhsMax = -9.13111401661514E-14 1.37865994173167E-02 + cg2d: Sum(rhs),rhsMax = -2.93792755456934E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961593665509E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159366551D+12 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465216572031E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960220046031E+11 + cg2d: Sum(rhs),rhsMax = -2.93547607554956E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468626809648E+11 + cg2d: Sum(rhs),rhsMax = -2.93676272633547E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500329353086E+11 + cg2d: Sum(rhs),rhsMax = -2.93793188888003E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961597615192E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596159761519D+12 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = -6.05596159761519E+11 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 123 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 2 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) nFlds = 11 , nFl3D = 8 , fields: +(PID.TID 0000.0001) >Uvel < >Vvel < >Theta < >Salt < >GuNm1 < >GvNm1 < >GtNm1 < >GsNm1 < >EtaN < >dEtaHdt < >EtaH < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Uvel ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Vvel ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Theta ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "Salt ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GuNm1 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GvNm1 ", # 6 in fldList, rec= 6 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GtNm1 ", # 7 in fldList, rec= 7 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "GsNm1 ", # 8 in fldList, rec= 8 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "EtaN ", # 9 in fldList, rec= 121 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup.0005184000 +(PID.TID 0000.0001) simulName=>Tutorial Biogeo< +(PID.TID 0000.0001) nRecords = 5 ; filePrec = 64 ; fileIter = 5184000 +(PID.TID 0000.0001) nDims = 3 , dims: +(PID.TID 0000.0001) 1: 128 1 128 +(PID.TID 0000.0001) 2: 64 1 64 +(PID.TID 0000.0001) 3: 15 1 15 +(PID.TID 0000.0001) nFlds = 5 , nFl3D = 0 , fields: +(PID.TID 0000.0001) >pTr01 < >pTr02 < >pTr03 < >pTr04 < >pTr05 < +(PID.TID 0000.0001) missingVal= 1.00000000000000E+00 ; nTimRec = 0 , timeList: +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr01 ", # 1 in fldList, rec= 1 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr02 ", # 2 in fldList, rec= 2 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr03 ", # 3 in fldList, rec= 3 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr04 ", # 4 in fldList, rec= 4 +(PID.TID 0000.0001) READ_MFLDS_3D_RL: read field: "pTr05 ", # 5 in fldList, rec= 5 +(PID.TID 0000.0001) READ_MFLDS_CHECK: - normal end ; reset MFLDS file-name: pickup_ptracers.0005184000 + DIC_SURFFORCING_INIT, it= 5184000 : Reading new data, i0,i1= 12 1 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) + EXTERNAL_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) + DIC_FIELDS_LOAD, it= 5184000 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = -2.93465159728612E-07 8.32814987068962E+00 + DIC_COST: iter,totcost = 5184001 -1.498960217470071E+11 + cg2d: Sum(rhs),rhsMax = -2.93547618213097E-07 8.32580875881018E+00 + DIC_COST: iter,totcost = 5184002 -3.027468622645211E+11 + cg2d: Sum(rhs),rhsMax = -2.93676517770791E-07 8.32215434141135E+00 + DIC_COST: iter,totcost = 5184003 -4.541500323231237E+11 + cg2d: Sum(rhs),rhsMax = -2.93793608108217E-07 8.31886491394253E+00 + DIC_COST: iter,totcost = 5184004 -6.055961589721516E+11 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 +(PID.TID 0000.0001) local fc = 0.000000000000000D+00 +(PID.TID 0000.0001) global fc = -0.605596158972152D+12 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = -6.05596158972152E+11 +grad-res ------------------------------- + grad-res 0 4 64 5 1 1 1 1 -6.05596159367E+11 -6.05596159762E+11 -6.05596158972E+11 + grad-res 0 4 4 4 0 1 1 1 -3.94683631172E+07 -3.94683776855E+07 -3.69113887455E-07 +(PID.TID 0000.0001) TLM ref_cost_function = -6.05596159366832E+11 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.94683631172259E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.94683776855469E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-05 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 61 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 1 -6.0559615936683E+11 -6.0559615945650E+11 -6.0559615927717E+11 +(PID.TID 0000.0001) grdchk output (g): 1 -8.9664794921875E+06 -8.9664203012791E+06 -6.6013979309609E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 62 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 2 -6.0559615936683E+11 -6.0559615964672E+11 -6.0559615908695E+11 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7988726806641E+07 -2.7988777546306E+07 1.8128575028920E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 63 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 3 -6.0559615936683E+11 -6.0559615966372E+11 -6.0559615906995E+11 +(PID.TID 0000.0001) grdchk output (g): 3 -2.9688085937500E+07 -2.9688064849445E+07 -7.1032097337387E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 64 5 1 1 1 0.000000000E+00 -1.000000000E-05 +(PID.TID 0000.0001) grdchk output (c): 4 -6.0559615936683E+11 -6.0559615976152E+11 -6.0559615897215E+11 +(PID.TID 0000.0001) grdchk output (g): 4 -3.9468377685547E+07 -3.9468363117226E+07 -3.6911388745509E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 4 ratios = 3.4462192296709E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 54.538777360226959 +(PID.TID 0000.0001) System time: 0.23340799496509135 +(PID.TID 0000.0001) Wall clock time: 54.987039089202881 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.11932299984619021 +(PID.TID 0000.0001) System time: 2.5819999864324927E-002 +(PID.TID 0000.0001) Wall clock time: 0.14805698394775391 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 54.419429548084736 +(PID.TID 0000.0001) System time: 0.20758099481463432 +(PID.TID 0000.0001) Wall clock time: 54.838962078094482 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 2.0662921518087387 +(PID.TID 0000.0001) System time: 0.16335501149296761 +(PID.TID 0000.0001) Wall clock time: 2.2784383296966553 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 52.196177095174789 +(PID.TID 0000.0001) System time: 3.7649996578693390E-002 +(PID.TID 0000.0001) Wall clock time: 52.388713359832764 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 52.133898586034775 +(PID.TID 0000.0001) System time: 2.2675000131130219E-002 +(PID.TID 0000.0001) Wall clock time: 52.311154365539551 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 52.133303165435791 +(PID.TID 0000.0001) System time: 2.2674001753330231E-002 +(PID.TID 0000.0001) Wall clock time: 52.310542106628418 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.17629081010818481 +(PID.TID 0000.0001) System time: 1.1194996535778046E-002 +(PID.TID 0000.0001) Wall clock time: 0.19295382499694824 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 6.0906618833541870E-002 +(PID.TID 0000.0001) System time: 4.1430070996284485E-003 +(PID.TID 0000.0001) Wall clock time: 6.7438602447509766E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.13860917091369629 +(PID.TID 0000.0001) System time: 2.9951333999633789E-006 +(PID.TID 0000.0001) Wall clock time: 0.13915801048278809 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.9673784971237183E-002 +(PID.TID 0000.0001) System time: 2.3007392883300781E-005 +(PID.TID 0000.0001) Wall clock time: 2.9794692993164062E-002 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.6982179284095764 +(PID.TID 0000.0001) System time: 9.7599625587463379E-004 +(PID.TID 0000.0001) Wall clock time: 4.7128419876098633 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 31.963533282279968 +(PID.TID 0000.0001) System time: 6.5150037407875061E-003 +(PID.TID 0000.0001) Wall clock time: 32.061815500259399 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 10.659657657146454 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 10.689291715621948 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1978363990783691 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.2010817527770996 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.28340590000152588 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 0.28422999382019043 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.28988838195800781 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.29069590568542480 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7716159820556641E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0493736267089844E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "GCHEM_FORCING_SEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.1496922969818115 +(PID.TID 0000.0001) System time: 3.8880035281181335E-003 +(PID.TID 0000.0001) Wall clock time: 2.1605899333953857 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.53775060176849365 +(PID.TID 0000.0001) System time: 5.4001808166503906E-005 +(PID.TID 0000.0001) Wall clock time: 0.53983616828918457 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.2818317413330078E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.3235549926757812E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1864643096923828E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0827522277832031E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.0219554901123047E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.0183792114257812E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.5059452056884766E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.6215782165527344E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.0529499053955078E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.1566619873046875E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.9614906311035156E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.9901008605957031E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 3.5405158996582031E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.5500526428222656E-004 +(PID.TID 0000.0001) No. starts: 13 +(PID.TID 0000.0001) No. stops: 13 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 12914 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 12914 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_global_oce_biogeo/results/output_tlm.txt.gz b/verification/tutorial_global_oce_biogeo/results/output_tlm.txt.gz index 8791bcd42e..d69e2013f9 100644 Binary files a/verification/tutorial_global_oce_biogeo/results/output_tlm.txt.gz and b/verification/tutorial_global_oce_biogeo/results/output_tlm.txt.gz differ diff --git a/verification/tutorial_global_oce_in_p/input/data b/verification/tutorial_global_oce_in_p/input/data index f66599e859..05e7259548 100644 --- a/verification/tutorial_global_oce_in_p/input/data +++ b/verification/tutorial_global_oce_in_p/input/data @@ -85,7 +85,7 @@ # Input datasets &PARM05 bathyFile ='topog.bin', - pLoadFile ='deltageopotjmd95.bin', + geoPotAnomFile ='deltageopotjmd95.bin', hydrogThetaFile='lev_t.bin', hydrogSaltFile ='lev_s.bin', zonalWindFile ='trenberth_taux.bin', diff --git a/verification/tutorial_global_oce_in_p/input/gendata.py b/verification/tutorial_global_oce_in_p/input/gendata.py new file mode 100644 index 0000000000..7d42c66290 --- /dev/null +++ b/verification/tutorial_global_oce_in_p/input/gendata.py @@ -0,0 +1,226 @@ +#!/usr/bin/env python +# -*- coding: iso-8859-15 -*- +######################## -*- coding: utf-8 -*- + +# simple script to generate p-coordinate specific input from standard experiment +# but unfortunately this script does not reproduce the values in +# tutorial_global_oce_in_p, yet + +import numpy as np +import sys, os +# requires that the path contains utils/python/MITgcmutils or that the utils +# are installed via pip or similar: +import MITgcmutils as mit + +# some helper routines +def sq(a): + a = np.squeeze(a) + masked_array=np.ma.masked_where(a==0., a) + return masked_array + +def readfield(fname,dims,datatype): + """Call signatures:: + + readfield(filename, dims, numpy.datatype) + + Read unblocked binary data with dimentions "dims". + """ + + try: + fid = open(fname,"rb") + except: + sys.exit( fname+": no such file or directory") + + v = np.fromfile(fid, datatype) + fid.close() + + if sys.byteorder == 'little': v.byteswap(True) + + if len(v) == np.prod(dims): v = v.reshape(dims) + elif len(v) == np.prod(dims[1:]): v = v.reshape(dims[1:]) + else: + errstr = ( "dimensions do not match: \n len(data) = " + str(len(v)) + + ", but prod(dims) = " + str(np.prod(dims)) ) + raise RuntimeError(errstr) + + return v + +def writefield(fname,data): + """Call signatures:: + + writefield(filename, numpy.ndarray) + + Write unblocked binary data. + """ + + if True: pass + else: + if sys.byteorder == 'little': data.byteswap(True) + + fid = open(fname,"wb") + data.tofile(fid) + fid.close() + + # switch back to machine format + if sys.byteorder == 'little': data.byteswap(True) + +def calc_hydrostatic_pressure(s,t,p0,dz,gravity=9.81,rhoConst=1035.): + from MITgcmutils import jmd95 + mskz = np.copy(t) + mskz[mskz!=0]=1. + dp = np.copy(p0) + dims=np.asarray(t.shape) + dims[0]=dims[0]+1 + pf = np.zeros(dims) + grho = gravity*rhoConst + rhoInSitu0 = jmd95.dens(s,t,p0/grho)*mskz + # integration of non-linear hydrostatic equation requires iteration: + resid = 1 + while resid>1e-15: + rhoInSitu = jmd95.dens(s,t,p0/grho)*mskz + # save old pressure + dp = np.copy(p0) + # compute new pressure + pf[0,...] = 0. + for k in range(nr): + dpk = dz[k,...]*gravity*rhoInSitu[k,...] + p0[k,...] = (pf[k,...] + 0.5*dpk)*mskz[k,...] + pf[k+1,...] = (p0[k,...] + 0.5*dpk)*mskz[k,...] + + # check convergence + dp = dp-p0 + resid = np.sqrt((dp**2).sum()) + print('hydrostatic pressure: resdiual = %e, '%np.sqrt((dp**2).sum())) + + print() + return p0, pf, rhoInSitu + +gravity = 9.81 +rhoConst= 1035. +grho=gravity*rhoConst +nr=15 +ny=40 +nx=90 + +# bathymetry +prec = 'float64' +prec = 'float32' +bdir = '../../tutorial_global_oce_latlon/input' +bz=np.float64(readfield(os.path.join(bdir,'bathymetry.bin'),[ny,nx],prec)) +# writefield('topog.bin',-(b)*grho) +b = readfield('topog.bin',[ny,nx],'float64') +dgp = readfield('deltageopotjmd95.bin',[12,ny,nx],'float64')[0,:,:] + +# turn fields upside down again for integration in z-levels +t=readfield('lev_t.bin',[nr,ny,nx],'float64')[::-1,:,:] +s=readfield('lev_s.bin',[nr,ny,nx],'float64')[::-1,:,:] +mskz = mit.rdmds('../run/hFacC')[::-1,:,:] +rac = mit.rdmds('../run/RAC') +mskz[mskz!=0] = 1. +# create geopotential anomaly file: +delz = np.asarray([50., 70., 100., 140., 190., + 240., 290., 340., 390., 440., + 490., 540., 590., 640., 690.]) +delp = delz*grho +# this is from "data", but it is unclear where these numbers come from +delp = np.asarray([7103300.720021, 6570548.440790, 6041670.010249, + 5516436.666057, 4994602.034410, 4475903.435290, + 3960063.245801, 3446790.312651, 2935781.405664, + 2426722.705046, 1919291.315988, 1413156.804970, + 1008846.750166, 705919.025481, 504089.693499])[::-1] + +# integrate initial fields vertically minus reference potential +pf0 = np.hstack([0,np.cumsum(delp)]) +pc0 = 0.5*(pf0[:-1]+pf0[1:]) +pc3d = np.tile(pc0.reshape((nr,1,1)),(1,ny,nx))*mskz +dp3d = np.tile(delp.reshape((nr,1,1)),(1,ny,nx)) +dz3d = np.tile(delz.reshape((nr,1,1)),(1,ny,nx)) +# first guess of hydrostatic pressure at center-points based on delp +# pf is the hydrostatic pressure at interfaces (w-points) +pc = np.copy(pc3d) +pc,pf,rhoInSitu = calc_hydrostatic_pressure(s,t,pc,dz3d) + +# the new pressure also implies different delp, here computed as an average +# over the model domain +pm = np.zeros((nr,)) +tm = np.zeros((nr,)) +sm = np.zeros((nr,)) +rhom = np.zeros((nr,)) +for k in range(nr): + racz = rac*mskz[k,:,:] + pm[k] = (pc[k,:,:]*racz).sum()/racz.sum() + tm[k] = (t[k,:,:]*racz).sum()/racz.sum() + sm[k] = (s[k,:,:]*racz).sum()/racz.sum() + rhom[k] = (rhoInSitu[k,:,:]*racz).sum()/racz.sum() + +# hydrostatic pressure from averaged temperature and salinity profiles +pmm = np.copy(pm) +pmm,pff,rr = calc_hydrostatic_pressure(sm,tm,pmm,delz) +# this is very similar to diff(pfm), see below +dp = np.diff(pff) +print('hydrostatic pressure layer thickness from averaged hydrography:') +print(' delR = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +# averaged pressure at interfaces to compute delP +pfm = np.zeros((nr+1,)) +for k in range(nr): + racz = rac*mskz[k,:,:] + pfm[k] = (pf[k,:,:]*racz).sum()/racz.sum() + +pfm[nr] = (pf[nr,:,:]*racz).sum()/racz.sum() +dp = np.diff(pfm) + +print('hydrostatic pressure layer thickness from averaged pressure:') +print(' delR = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +# now we would like to compute delRc (distance between c-points) +dp = np.zeros((nr,)) +dp[0] = pm[0] # assuming zero surface pressure +dp[1:] = pm[1:]-pm[:-1] + +print(' delRc = %14f, %14f, %14f,'%(dp[-1],dp[-2],dp[-3])) +for k in range(nr-4,0,-3): + print(' %14f, %14f, %14f,'%(dp[k],dp[k-1],dp[k-2])) + +dp3d = np.tile(dp.reshape((nr,1,1)),(1,ny,nx)) +# this is the correct way of computing the geopotential anomaly +# (if integr_geoPot = 1) +geopotanom = -((1./sq(rhoInSitu) - 1/rhoConst)*mskz*dp3d).sum(axis=0) +# this is equivalent +geopotanom1= b/rhoConst-(1./sq(rhoInSitu)*mskz*dp3d).sum(axis=0) +# these are approximation that are not quite accurate +geopotanom2= ((rhoInSitu - rhoConst)*mskz*dz3d).sum(axis=0)*gravity/rhoConst +geopotanom3= -((1./sq(rhoInSitu) - 1/rhoConst)*grho*mskz*dz3d).sum(axis=0) + +# the correct version +writefield('geopotanom.bin',geopotanom) + +# plot field +import matplotlib.pyplot as plt + +xg = mit.rdmds('../run/XG') +yg = mit.rdmds('../run/YG') +f1=plt.figure() +f1.clf() +plt.pcolormesh(xg,yg,geopotanom) +plt.colorbar() + + +f2=plt.figure() +f2.clf() +kindex = -(np.arange(15)+1) +plt.plot((delp/delz)/gravity,kindex,'x-',label='from delR in "data"') +plt.plot((np.diff(pff)/delz)/gravity,kindex,':',label='from mean T/S profile') +plt.plot((np.diff(pfm)/delz)/gravity,kindex,'-.',label='from mean density profile') +plt.ylabel('k-level') +plt.title('(delP/delZ)/gravity') +plt.grid() +plt.plot([rhoConst,rhoConst],[-1,-15],'--') +plt.text(rhoConst,-15,'rhoConst=1035.',rotation=270) +plt.legend() + +plt.show() diff --git a/verification/tutorial_global_oce_in_p/results/output.txt b/verification/tutorial_global_oce_in_p/results/output.txt index ff76da9ded..05acbb300c 100644 --- a/verification/tutorial_global_oce_in_p/results/output.txt +++ b/verification/tutorial_global_oce_in_p/results/output.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint66f -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Tue Apr 11 13:36:01 EDT 2017 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67o +(PID.TID 0000.0001) // Build user: mlosch +(PID.TID 0000.0001) // Build host: bkli04l006 +(PID.TID 0000.0001) // Build date: Thu May 7 11:02:00 CEST 2020 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -52,6 +52,8 @@ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ (PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -175,14 +177,14 @@ (PID.TID 0000.0001) ># Input datasets (PID.TID 0000.0001) > &PARM05 (PID.TID 0000.0001) > bathyFile ='topog.bin', -(PID.TID 0000.0001) > pLoadFile ='deltageopotjmd95.bin', +(PID.TID 0000.0001) > geoPotAnomFile ='deltageopotjmd95.bin', (PID.TID 0000.0001) > hydrogThetaFile='lev_t.bin', (PID.TID 0000.0001) > hydrogSaltFile ='lev_s.bin', (PID.TID 0000.0001) > zonalWindFile ='trenberth_taux.bin', (PID.TID 0000.0001) > meridWindFile ='trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile ='lev_sst.bin', (PID.TID 0000.0001) >#saltClimFile ='lev_sss.bin', -(PID.TID 0000.0001) > surfQFile ='shi_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile ='shi_qnet.bin', (PID.TID 0000.0001) > EmPmRFile ='shi_empmr.bin', (PID.TID 0000.0001) > / (PID.TID 0000.0001) @@ -463,6 +465,7 @@ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin (PID.TID 0000.0001) %MON fCori_max = 1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_mean = -4.4717316269624E-19 @@ -648,28 +651,31 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness (Pa) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ @@ -768,41 +774,19 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1041,6 +1025,18 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; @@ -1642,7 +1638,6 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_qnet.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sst.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= @@ -1741,8 +1736,6 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sst.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sst.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = -2.91433543964104E-15 1.71163414373126E+02 (PID.TID 0000.0001) cg2d_init_res = 9.36692383621737E+00 @@ -1776,13 +1769,13 @@ (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9711296896544E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6183665629211E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6019879855479E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015171771318E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7674232155852E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015122960812E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7690375964263E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7478619291182E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762213851610E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001015839E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9451023794301E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0393013005828E-03 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9451046602466E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0397535769334E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4145258709576E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.2440550854923E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5958423861174E+01 @@ -1825,51 +1818,51 @@ (PID.TID 0000.0001) %MON vort_a_sd = 7.3636984478817E-05 (PID.TID 0000.0001) %MON vort_p_mean = -2.9470763777015E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.0360208227295E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.7339858775841E-02 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2611127299629E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.7314694837242E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2852742432940E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.4333333333 0.5666666667 - cg2d: Sum(rhs),rhsMax = 2.53963516883005E-15 1.74491025527420E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.46960963926005E-01 + cg2d: Sum(rhs),rhsMax = 2.09554595897998E-15 1.74491025527420E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.46961069563866E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 100 -(PID.TID 0000.0001) cg2d_last_res = 8.93967095000038E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.93944987923529E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8731455355736E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -8.9511288588230E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.5817908944932E-13 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9631560776323E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1451836189659E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3304188209601E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0665544162753E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1812090313306E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2830856724105E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7764256314409E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.1937721863664E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0731270669101E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5489355969045E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.0000084993648E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.2858562769401E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.3653987830056E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.9093011336201E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.2534984251088E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.9440823335707E-02 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4668058560972E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8731450536100E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -8.9511245546204E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0969651490822E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9631566178494E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1451841533430E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3304193635929E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0665562119323E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1812107812185E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2830702491466E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.7762345632368E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.1937726766173E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0731578950915E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5489296654171E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.0000340554562E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 3.2859698065673E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.3653971172248E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.9093004738051E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.2535089381405E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.9444104945087E-02 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.4669868692385E-03 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9684508324331E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -2.6127577628499E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6019391474411E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012383021214E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7346981369420E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6019391618220E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012382943117E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.7280330489262E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7481696365082E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9765601950131E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001616647E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441682612944E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0443748603288E-03 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001623067E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442671706627E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0435469077810E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4097305510790E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.2101759470857E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5885028611888E+01 @@ -1898,65 +1891,65 @@ (PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1984017075671E-02 (PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7376324216851E-02 (PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.0201445983040E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3657685194060E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0181332754394E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.3329968516368E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4772588304933E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -7.1440179396358E-03 -(PID.TID 0000.0001) %MON ke_max = 1.6949293700859E-03 -(PID.TID 0000.0001) %MON ke_mean = 8.1035335446314E-06 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.3657700056190E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0181334659352E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.3329973254368E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.4772594059531E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -7.1440395152752E-03 +(PID.TID 0000.0001) %MON ke_max = 1.6949296768474E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.1035640279376E-06 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -1.7529038513759E-07 -(PID.TID 0000.0001) %MON vort_r_max = 1.8496502685678E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205548724E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3636897954960E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9475837120942E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363025571819E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.6310733900438E-02 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.9567366107940E-05 +(PID.TID 0000.0001) %MON vort_r_min = -1.7528959998915E-07 +(PID.TID 0000.0001) %MON vort_r_max = 1.8496218351050E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205548451E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3636897957510E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9475837120614E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363025572138E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.6310067823676E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.9763781564067E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3666666667 0.6333333333 - cg2d: Sum(rhs),rhsMax = -1.16573417585641E-15 1.72946977506150E+02 -(PID.TID 0000.0001) cg2d_init_res = 1.05267379315552E-01 + cg2d: Sum(rhs),rhsMax = 3.60822483003176E-16 1.72946927598947E+02 +(PID.TID 0000.0001) cg2d_init_res = 1.05266927324619E-01 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 99 -(PID.TID 0000.0001) cg2d_last_res = 8.47488545613934E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.44864271507363E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 3 (PID.TID 0000.0001) %MON time_secondsf = 5.1840000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1187677620756E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.1291875857916E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.3878605963288E-13 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9692826373298E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1203160557585E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.1144529076723E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.1820173155192E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1611704650605E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7116244779260E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6794897741384E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3413500221714E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.5579522653902E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5249410329352E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.1691247429478E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.5473267432191E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.8722865697176E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0866969782803E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5747462137245E-03 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2221699536981E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9760727045870E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9669020380866E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6050326412738E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6021527533733E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012409280386E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6504512734873E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435162224160E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9770611772779E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001280403E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442265083821E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0402669106450E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1187690644298E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.1291812654994E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.5102884770630E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9692824903823E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1203163413275E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.1144492171942E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.1820176630174E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.1611745764352E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7116173531614E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.6782278024847E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3413467097868E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.5580018084989E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.5249385901560E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.1691709783510E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.5475874050495E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.8722866015909E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0866968237903E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.5746951986405E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2221960079329E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9755405250569E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9669020379124E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6050326476175E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6021527216208E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012308893835E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.6486043461400E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435162224369E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9770611772561E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001280925E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442233713073E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0402326265819E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4049352312003E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1762968086790E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5811633362602E+01 @@ -1982,68 +1975,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0182157576956E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5652999799994E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.3302155748244E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4023595817135E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0553844454929E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.5323239041585E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1883423519825E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0754772887054E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7843618005782E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.9993011584854E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -8.1381270339314E-03 -(PID.TID 0000.0001) %MON ke_max = 1.9935684299102E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.2776321940836E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4023610840839E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0553846395049E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.5323243068243E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.1883475207327E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0754760016190E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7849893495758E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.0000410885733E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -8.1381170042314E-03 +(PID.TID 0000.0001) %MON ke_max = 1.9935661445800E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.2776478266884E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.0891768469683E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.3952439133736E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205699390E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3636896466201E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476057047927E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363472714806E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7734577629008E-02 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.9296716499404E-04 +(PID.TID 0000.0001) %MON vort_r_min = -2.0870324390715E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.3948655295791E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205699373E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3636896465367E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476057049540E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363472713258E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7738689832690E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.9264460938167E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.3000000000 0.7000000000 - cg2d: Sum(rhs),rhsMax = -1.38777878078145E-16 1.72906191617138E+02 -(PID.TID 0000.0001) cg2d_init_res = 8.86779912289392E-03 + cg2d: Sum(rhs),rhsMax = 2.08166817117217E-15 1.72906146268021E+02 +(PID.TID 0000.0001) cg2d_init_res = 8.86299686343460E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 91 -(PID.TID 0000.0001) cg2d_last_res = 8.93572830642088E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.94396065771831E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 6.9120000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1022227714578E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2912038552067E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.8981490733918E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0207370451610E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1191692395406E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.0373208719600E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.7398819267189E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8738372248879E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1068555404898E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.4802305143521E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0445631324631E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9541066454141E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2051502618187E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2732323029659E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.7680886355121E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1517919870762E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3332467572796E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.9684102365197E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4928829992987E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3621067115746E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9656615943449E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5972789376793E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6023337651085E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012724418605E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5541442358255E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435139118545E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9775222929977E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001794292E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441616128248E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0350265482203E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1022220432086E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2912034242294E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7757211926576E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0207364186275E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1191695433898E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.0373181414721E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.7398832514350E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.8738653325913E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1068642425061E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.4784025547006E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0445617437601E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.9541807417937E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2051471104179E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2732942351540E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 5.7684290203309E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1517920064735E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3332465646025E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.9677632630542E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4929266822748E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3613348919083E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9656615937358E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5972789531693E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6023337196646E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4012622288319E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.5527739848260E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435139119141E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9775222928443E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001793435E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441571236536E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0351907759711E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4001399113216E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1424176702723E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5738238113315E+01 @@ -2069,68 +2062,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8716985899142E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5996426990309E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.3761342904399E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.2457385981007E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1562676847663E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.9863736010935E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9570704401124E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3135748576281E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.2672726569116E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7017704626934E-02 -(PID.TID 0000.0001) %MON pe_b_mean = -8.3953683702657E-03 -(PID.TID 0000.0001) %MON ke_max = 2.3924831312815E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.7846456515973E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.2457458670588E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1562663509242E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.9777451267930E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9570840172367E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3136036491044E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.2672723383567E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.7087712611970E-02 +(PID.TID 0000.0001) %MON pe_b_mean = -8.3953210342011E-03 +(PID.TID 0000.0001) %MON ke_max = 2.3924838775908E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.7846772698814E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.2444845247120E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.8708322160175E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205837550E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3636956688631E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476077388794E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363703566723E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0298616550779E-02 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3126432774718E-04 +(PID.TID 0000.0001) %MON vort_r_min = -2.2444891367773E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8703165171912E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205837176E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3636956691787E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476077386042E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363703575158E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0299907508857E-02 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.3121035246097E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.2333333333 0.7666666667 - cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 1.72918819807838E+02 -(PID.TID 0000.0001) cg2d_init_res = 4.67247433774779E-03 + cg2d: Sum(rhs),rhsMax = 2.38697950294409E-15 1.72918766920360E+02 +(PID.TID 0000.0001) cg2d_init_res = 4.67202668332594E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 94 -(PID.TID 0000.0001) cg2d_last_res = 9.56527283809446E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.56783421109704E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8777979786915E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4350909714537E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.7757211926576E-13 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0654244455952E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1193250706959E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.9696062380060E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.0095784649876E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7286299397394E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.5823968634951E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1939925745962E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0201963706767E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2311685043836E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.4567914249122E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.3132567338593E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.9038292747357E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3999318980564E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5271613614286E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.9383469272918E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7381971658021E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6969436511438E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9654525180686E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5894330419636E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6024837580016E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4013185984610E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4513904953106E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435037702270E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777919246682E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001630339E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441800411702E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0316493028777E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.8777961990041E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4350849620728E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.1430048348603E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0654232830610E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1193252486699E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.9431546259501E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.0095824957242E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7286298734172E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.5824348275364E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.1919006845905E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.0201937207916E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2312723148846E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 7.4567188833830E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.3133399251076E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.9042652361022E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3999315034873E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5271611397556E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.9382859389008E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7382735174086E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6961383087031E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9654525170064E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5894330677868E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6024836623626E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4013087405700E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.4496680330636E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435037703972E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777919241109E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001630196E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441767764611E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0316720352012E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3953445914429E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1304556232427E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5664842864029E+01 @@ -2156,68 +2149,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7251814221328E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6398500527278E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4437371985182E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9736742930163E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2163902822619E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.8454795063814E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.4003897680230E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.8098001328040E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6078919249549E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0886308435035E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.4417916146007E-03 -(PID.TID 0000.0001) %MON ke_max = 3.5715813776954E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.4032415618867E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.9736919952016E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2164178643167E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.8094117855154E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.4004091544912E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.8098404702348E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.6078914474386E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0908741646353E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.4417417547834E-03 +(PID.TID 0000.0001) %MON ke_max = 3.5715841762088E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.4033004901197E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.5909543278126E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.9702765620752E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205917835E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637051733256E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476147924753E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363835061498E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.1420298676709E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0923423140842E-04 +(PID.TID 0000.0001) %MON vort_r_min = -2.5907671708790E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9702778656968E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205917344E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637051737867E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476147923768E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363835084626E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.1418342497161E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0933568425280E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.1666666667 0.8333333333 - cg2d: Sum(rhs),rhsMax = -1.16573417585641E-15 1.72928087588433E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.44754974402910E-03 + cg2d: Sum(rhs),rhsMax = 1.11022302462516E-16 1.72928026396318E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.44720163719426E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 91 -(PID.TID 0000.0001) cg2d_last_res = 9.88943411187954E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.88704297449990E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 6 (PID.TID 0000.0001) %MON time_secondsf = 1.0368000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.2199547617333E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5076306247197E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.3878605963288E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0801721635349E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1193910857700E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.4171806674519E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7711900010457E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.8396252229260E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2190217741552E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8240437934087E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8510043855793E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.3508093943321E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7716955755358E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2904339571152E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.9313781977659E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6150478850408E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6581753480562E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.9057911769579E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9514785141182E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9657248872540E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9697979606402E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5814274495172E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6026222675399E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4013855316884E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3465211681699E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434852872455E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779032532723E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001306089E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441925790225E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0275609301983E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.2199514528760E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5076086806047E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.1430048348603E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0801704496365E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1193912540702E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.3872645856155E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7711994894124E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.8391728420626E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2190994927203E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.8219909841981E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.8510011092932E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.3509538293638E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.7716163547316E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2905348043045E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.9319254713992E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6150474146068E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6581751720617E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.9056482637718E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9515970060754E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9650427992347E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9697979591740E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5814274764938E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6026221481766E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4013768300064E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.3456583794242E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434852876053E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779032519786E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001306359E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441921702222E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0275865659726E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4037724209196E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1284566492290E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5591447614743E+01 @@ -2243,68 +2236,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.5786642543514E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6857710749175E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5320540386280E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.3919918730252E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.6917710005847E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.5418378991895E-02 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.3934547419619E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2448566688760E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0591084253806E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1991144929788E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.5193552770896E-03 -(PID.TID 0000.0001) %MON ke_max = 3.8520484908919E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.1926151042909E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.3920110932597E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.6918096435918E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.4987033273592E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.3934847350491E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.2449127916964E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0591083845440E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1991144467440E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.5192963564499E-03 +(PID.TID 0000.0001) %MON ke_max = 3.8520477646275E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.1927105193104E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.9395509341362E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.9638567055793E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205902520E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637152862985E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476194535718E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363871127515E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.1110096014582E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.9423811119145E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.9393731111568E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9638597146925E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205901929E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637152869186E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476194533748E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363871158538E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.1099872549432E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.9579376030009E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.1000000000 0.9000000000 - cg2d: Sum(rhs),rhsMax = -1.05471187339390E-15 1.72940074721571E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.58867411971284E-03 + cg2d: Sum(rhs),rhsMax = -3.16413562018170E-15 1.72940006374309E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.58866279382392E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 91 -(PID.TID 0000.0001) cg2d_last_res = 8.99012699782824E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.94333226802885E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 1.2096000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 6.1124917155260E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5056848320156E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.5102884770630E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0658545025352E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194803026719E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8447774547827E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.2707812094012E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1960489096474E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.9896351602515E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3677076983028E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.5321143399337E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.4846652927095E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0069002365900E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1799258792458E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8281364919988E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7882606593930E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7284273181613E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.0203454399051E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1275379039276E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1649116427066E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9742919294546E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6576220716973E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6027578542053E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4014791451735E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2535078530732E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434621474307E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779140544309E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001173736E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441992882366E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0256237115736E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 6.1124867274111E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.5056492024873E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6327163577973E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0658522838634E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194804575949E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8124654697550E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.2707985717155E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1961548860430E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.9897499699937E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.3658695435690E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.5321113116832E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.4848605905720E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.0069652102899E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.1800417393895E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.8287955926494E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7882603424237E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7284273274248E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -8.0189997947282E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1276998747193E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1644583051033E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9742919278628E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.6576220656054E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6027577546461E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4014709819638E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.2518397691473E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434621480053E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9779140519740E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001174149E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442000496513E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0256391513196E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5578450464295E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1264576752152E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5518052365456E+01 @@ -2330,68 +2323,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.4321470865700E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.7372396100423E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6399021419221E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.3902836254306E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1085524483971E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1066471399543E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8470279735201E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.6854367012608E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1219610540459E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2702757604641E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.6494824740544E-03 -(PID.TID 0000.0001) %MON ke_max = 5.0805172995909E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.1325279793002E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.3903135061249E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.1086062137089E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1017941342647E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.8256674496061E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.6855125877458E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1219611001326E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2702758126431E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.6494150929223E-03 +(PID.TID 0000.0001) %MON ke_max = 5.0805169932114E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.1326652175479E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.7762967790827E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.6294158618298E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205784338E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637237018403E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476210035818E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363846040790E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7024613297699E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.6693028501013E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.7761818544160E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.6294212391517E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205783634E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637237026630E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476210033395E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363846082166E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.7039274368721E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.6851691934581E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 12 1 12 1 ; Wght= 0.0333333333 0.9666666667 - cg2d: Sum(rhs),rhsMax = 9.99200722162641E-16 1.72953747327927E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.93752845674450E-03 + cg2d: Sum(rhs),rhsMax = 2.22044604925031E-15 1.72953671010727E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.93758884622456E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 90 -(PID.TID 0000.0001) cg2d_last_res = 8.40847636396466E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.40984699644257E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 1.3824000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.6572015706802E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4423755137443E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6327163577973E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0354858971084E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195691942339E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0204013097555E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5317091648408E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.4611044180156E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8327958305630E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8270351335053E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0634683496041E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0472135312197E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.3433917293561E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9560640540292E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5788166434233E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9132256313090E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7438604393918E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8250026771640E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2626337604052E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2963822280900E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9791415859483E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.7389994731469E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6028883723325E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015950484596E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1722539784808E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434358091031E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9778554212043E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001166480E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442245724156E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0241880154424E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.6571952283538E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.4423302823414E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.2145072522905E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0354834070583E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195693104036E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0170417651387E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5317082788674E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.4612751709734E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8329423829982E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.8255199265935E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.0634665278281E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0472405198552E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.3434228199018E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.9561927782301E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.5795802789150E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9132254038192E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7438607313133E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8250131035497E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2628387981570E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2962176593770E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9791415849010E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.7389994643564E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6028882566484E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4015869143158E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1706177479607E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434358098548E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9778554172594E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001166901E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442252141273E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0242025780214E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.7119176719395E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.1244587012014E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5444657116170E+01 @@ -2417,25 +2410,25 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.2856299187887E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.7940769894797E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.7659557826527E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8482155467201E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.5306253712233E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2395376349823E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.7455795613383E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0691358766033E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1924828864099E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3501893270432E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.7563372378033E-03 -(PID.TID 0000.0001) %MON ke_max = 6.3881970878789E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.1555367045931E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.8268506843310E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.5306980700025E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2343220108906E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.7233705781806E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.0692407457842E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1877388351612E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3447889726578E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.7562681030090E-03 +(PID.TID 0000.0001) %MON ke_max = 6.3881973943752E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.1557184499732E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -2.3591390931977E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.1426294444605E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205582575E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637290831340E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476203179457E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363788552158E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.3848041525581E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.8708790832953E-05 +(PID.TID 0000.0001) %MON vort_r_min = -2.3593673032253E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.1426490440916E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205581775E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637290841549E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476203177460E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363788603570E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.3866513305754E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.8894120105284E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2451,47 +2444,45 @@ (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: shi_empmr.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sst.bin (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: lev_sst.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin -(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: deltageopotjmd95.bin - cg2d: Sum(rhs),rhsMax = -2.33146835171283E-15 1.72967879307903E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.96287895467845E-03 + cg2d: Sum(rhs),rhsMax = -1.16573417585641E-15 1.72967793887655E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.96296243677320E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 92 -(PID.TID 0000.0001) cg2d_last_res = 9.18926203070728E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.19042194740292E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 1.5552000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.2422548254887E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3562578877699E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.7551442385315E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0030059085130E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196459520078E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1474730428550E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6866677120289E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.2902956215512E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7148242504481E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2153697144544E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.4192217379763E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1289145392583E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1845636230921E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.6040799341172E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0178105233221E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9865805834846E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7098208115676E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6140135194753E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3562351630941E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3668032293766E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9837633201043E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8166604457049E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6030116241492E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4017283896326E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1071799560470E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434075582392E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777459304789E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001171836E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442392994184E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0234743261562E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.2422631605990E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.3561906351974E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.0030034659454E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196460035927E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1440962865726E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6866662638843E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.2905266060538E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7149966198494E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2141975689059E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.4192217576435E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1289512949990E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.1845496194416E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.6042199868459E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0178964269095E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.9865803434368E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7098214031002E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.6138871723722E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3564797018571E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3669235612346E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9837633195710E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8166604375319E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6030114415812E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4017191498794E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1082518372144E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434075590744E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9777459250749E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001172329E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442368690368E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0246186679117E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.7142477748630E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.0867118774499E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5466374378120E+01 @@ -2517,68 +2508,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.2783813973473E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.7923548875222E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.7743132754674E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.7469496367924E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.8982067878077E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3501893270432E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.5856142392880E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3865997873088E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2728529594917E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4411144266075E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.7682090176825E-03 -(PID.TID 0000.0001) %MON ke_max = 7.7543470778743E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.2032794596577E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.7247361428314E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.8983072518289E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3447889726578E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.5632914747597E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3867426083272E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2680502432356E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4356768278402E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.7681465669827E-03 +(PID.TID 0000.0001) %MON ke_max = 7.7543484731227E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.2035061794874E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -3.2648062639347E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.8477237801830E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205333091E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637311013749E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476182119598E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363716883081E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.4697761945040E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.5544061246126E-05 +(PID.TID 0000.0001) %MON vort_r_min = -3.2649642331380E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.8529600336304E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205332190E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637311025935E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476182117207E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363716941496E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.4714360175446E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.5696504050601E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.9000000000 0.1000000000 - cg2d: Sum(rhs),rhsMax = 1.38777878078145E-16 1.72980712708880E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.62545008153999E-03 + cg2d: Sum(rhs),rhsMax = 1.58206781009085E-15 1.72980617066157E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.62564600273588E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 93 -(PID.TID 0000.0001) cg2d_last_res = 9.17194508099981E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.17033211318653E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1401581652586E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2838107992060E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.3878605963288E-13 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9767836380303E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197046177986E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2651296942454E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6611137870550E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.9144391337297E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6319633784508E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5545701050835E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6814937520033E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1925293697240E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8390097644179E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0119982579443E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0629645063978E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0202652296919E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6386781750996E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4782273380465E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4112793549583E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3866290709171E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9875480818511E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8864415653929E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6031262364280E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4018776861841E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0582518021455E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433786550563E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9776093726405E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001163427E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442374590238E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0248792680549E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 5.1401699513611E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2837442489328E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.5817908944932E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9767814255778E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197046037124E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2618422699242E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6611116270546E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.9147209406564E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6321560180890E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.5538431016370E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.6814941939742E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1925785075757E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.8389545210349E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0120134541948E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0630661062933E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0202671302529E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6386789000802E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.4780372612321E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4115554204456E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3869784010972E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9875480820871E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8864415629255E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6031259674278E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4018678872004E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0609865784699E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433786558286E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9776093662399E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001163832E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442335590698E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0266858392798E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.5648353552001E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -2.0132172039607E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5583204151305E+01 @@ -2604,68 +2595,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.4104015222459E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.7320622627559E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6652458216358E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.5871549317932E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2023352340244E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4411144266075E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3634085201136E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6337866133141E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3304054922048E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5062749658215E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.6699910941727E-03 -(PID.TID 0000.0001) %MON ke_max = 9.1650100173136E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.2521316185439E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.5648276333517E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.2024720556692E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4356768278402E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3416763034860E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6339775472443E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3256694646766E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5009128715240E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.6699411972418E-03 +(PID.TID 0000.0001) %MON ke_max = 9.1650129779566E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.2524040149959E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -4.0774793729982E-07 -(PID.TID 0000.0001) %MON vort_r_max = 3.6503374818557E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205078225E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637302572942E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476155190300E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363649444364E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.1003353069882E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.4069098686078E-05 +(PID.TID 0000.0001) %MON vort_r_min = -4.0778034316645E-07 +(PID.TID 0000.0001) %MON vort_r_max = 3.6554917400191E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205077221E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637302586975E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476155187799E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363649507534E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.1014181472546E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.4152595126888E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.8333333333 0.1666666667 - cg2d: Sum(rhs),rhsMax = -1.47104550762833E-15 1.72990654203522E+02 -(PID.TID 0000.0001) cg2d_init_res = 3.12560704184325E-03 + cg2d: Sum(rhs),rhsMax = 2.55351295663786E-15 1.72990547019250E+02 +(PID.TID 0000.0001) cg2d_init_res = 3.12571289817249E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 91 -(PID.TID 0000.0001) cg2d_last_res = 9.05004500642617E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.05209555005341E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 11 (PID.TID 0000.0001) %MON time_secondsf = 1.9008000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.7401980681758E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2588174906972E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.0715024174302E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9593361844361E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197423799139E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3726284255737E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5547900234771E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7870299012363E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5864540354105E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8683411550383E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9396234002845E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2376026919780E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7967469609594E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0506154015772E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0942856874743E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1381496394331E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5528629272682E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5200034073659E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4328301802077E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3676904289572E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9908059934121E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -2.9512828414725E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6032329639437E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4020385909257E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0252619554107E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433507868294E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9774664841385E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001159508E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442048875490E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0257839657913E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.7402122554422E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2588187791014E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.1430048348603E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9593342794899E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197422969114E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3716009022150E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5547866371825E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.7873540435330E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5866626620562E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.8680595282236E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9396239252755E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2376669774763E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7966597686788E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0506318480149E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0944064980930E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1381462941926E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5528625926270E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5198001939993E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4331292052639E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3681681781643E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9908059946309E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.9512828485531E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6032325657136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4020287042278E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0283269212340E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433507874088E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9774664775628E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001159730E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9442009060678E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0276952578875E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.4154229355371E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.9579136980453E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5700033924490E+01 @@ -2691,68 +2682,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.5424216471445E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6771332121489E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5745971542986E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3651071882002E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.4391386714645E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5062749658215E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0740517131251E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.8089270858097E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3633212997118E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5435419923920E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.4961789384177E-03 -(PID.TID 0000.0001) %MON ke_max = 1.0602782599019E-02 -(PID.TID 0000.0001) %MON ke_mean = 8.3018234236339E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3433705576039E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.4393215849787E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5009128715240E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.0535560713407E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.8091768786358E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3587529180559E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5383697054744E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.4961425725624E-03 +(PID.TID 0000.0001) %MON ke_max = 1.0602787091885E-02 +(PID.TID 0000.0001) %MON ke_mean = 8.3021418183642E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -4.6973818364276E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.2554176636895E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204857369E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637275811523E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476129511634E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363602225482E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.7768712919618E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.8044130789250E-05 +(PID.TID 0000.0001) %MON vort_r_min = -4.6978574787137E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.2605322039884E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204856256E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637275827345E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476129508998E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363602292624E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.7771788845284E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.8044415398959E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 11 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.7666666667 0.2333333333 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 1.72996922905208E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.73141548960758E-03 + cg2d: Sum(rhs),rhsMax = -1.13797860024079E-15 1.72996802714390E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.73305186023690E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 83 -(PID.TID 0000.0001) cg2d_last_res = 9.97155274580313E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.98035684153240E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 12 (PID.TID 0000.0001) %MON time_secondsf = 2.0736000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2927817204221E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2542272915464E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.1430048348603E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9501902032606E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197580667942E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4889615154329E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0063916810629E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.4358704857423E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.5688544053818E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1758096737919E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0696920742833E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2706231064516E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5586196769481E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0767404922182E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1130646785631E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2833774159941E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4708940794955E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9629892918043E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4265286413433E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3214769759782E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9935564914332E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.0112254127950E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6033332454856E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4022143085887E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0052966235775E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433262392590E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9773274798081E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001170070E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441735918105E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0266675259079E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2927818965589E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2542317911141E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1939302981644E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9501885498860E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197579250748E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4889619726010E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0063863253466E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.4362315387815E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.5690687602479E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1757871701985E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0696926768294E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2706227278624E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5585156264017E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0767581126489E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1132035076320E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2833731057933E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4708936747654E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.9628002648600E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4267945697921E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.3215917655210E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9935564938161E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.0112254286972E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6033327354346E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4022043097691E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0085091625581E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433262395727E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9773274740155E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001170071E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441689537625E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0287889263075E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3015360557608E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.9420685395356E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5816863697674E+01 @@ -2778,68 +2769,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.6744417720431E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6277587280153E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5034796430965E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0758947179268E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.6069221516446E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5435419923920E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.7153962839243E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9372338247785E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3701463651856E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5512692795414E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.2948575472290E-03 -(PID.TID 0000.0001) %MON ke_max = 1.2028666964937E-02 -(PID.TID 0000.0001) %MON ke_mean = 9.3513809854195E-05 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0553949133309E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.6071614516139E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5383697054744E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.6966975399877E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9372323537024E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3658218905275E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5463731422689E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.2948330943560E-03 +(PID.TID 0000.0001) %MON ke_max = 1.2028672775156E-02 +(PID.TID 0000.0001) %MON ke_mean = 9.3517378904218E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.0765829353074E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6139206125978E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204700388E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637242841619E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476108630792E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363584140643E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0976563682151E-03 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.3311385082923E-05 +(PID.TID 0000.0001) %MON vort_r_min = -5.0772019851498E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6190586861040E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204699154E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637242859274E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476108627994E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363584211432E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0971996953081E-03 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.3236738731959E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 12 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.7000000000 0.3000000000 - cg2d: Sum(rhs),rhsMax = -1.94289029309402E-15 1.72999688348030E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.58992963973872E-03 + cg2d: Sum(rhs),rhsMax = 3.13638004456607E-15 1.72999553651185E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.58808844428129E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 88 -(PID.TID 0000.0001) cg2d_last_res = 8.43717242382053E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.44926786497561E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 13 (PID.TID 0000.0001) %MON time_secondsf = 2.2464000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2917535922811E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2458821401641E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1939302981644E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9481557059385E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197531062744E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5947642408213E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.4480609926606E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3250963658740E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0557318943346E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.4893408338730E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0836361723110E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3042076983176E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.1247754185858E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0909799789961E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1208288916538E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4174649789808E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4402853784163E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0810364200004E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3975470170153E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2570477557592E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9958177842806E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.0663449989796E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6034287698238E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4024065437985E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0013409854648E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433075673010E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9771981215796E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001184066E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441804908160E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0288553613445E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.2917553730630E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2458918217067E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.3878605963288E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9481545649688E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197530937070E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5947646288974E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.4480540822481E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.3254871749099E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0557533078202E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.4894609841479E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0836368799295E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3042073859948E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.1237081143452E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0909987288106E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1209849306388E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.4174595901056E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4402942198368E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.0807346765360E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3977726858664E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.2566876790548E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9958177879693E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.0663450175066E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6034280763924E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4023933153544E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0017272917318E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433075673354E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9771981173416E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001183867E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441736404480E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0309423469424E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2795289368731E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.9262233810258E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.5933693470859E+01 @@ -2865,68 +2856,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8064618969417E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5841182947436E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4528292007770E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.7173695503952E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.7800509630415E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5512692795414E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0285284363616E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0677327761278E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3499148393666E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5283633000936E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -8.1012419714579E-03 -(PID.TID 0000.0001) %MON ke_max = 1.3411833864878E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.0386957511846E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.6986670086100E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.7800495387989E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5463731422689E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0268833926036E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0677315625418E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3458746813602E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.5237890639690E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -8.1012326778976E-03 +(PID.TID 0000.0001) %MON ke_max = 1.3411840221296E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0387346493843E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.2089598321854E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.7203378547387E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204623882E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637214376235E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476093775874E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363595578033E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.7217533060468E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.2014048092944E-05 +(PID.TID 0000.0001) %MON vort_r_min = -5.2097406484711E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.7253970103410E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204622524E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637214395778E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476093773104E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363595650660E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -5.7117828482748E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -6.1888230947213E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 13 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.6333333333 0.3666666667 - cg2d: Sum(rhs),rhsMax = -4.71844785465692E-16 1.72999734336464E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.59015023071073E-03 + cg2d: Sum(rhs),rhsMax = 1.66533453693773E-15 1.72999587042744E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.58912943887929E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 88 -(PID.TID 0000.0001) cg2d_last_res = 9.91212548107730E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.90963790117683E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 14 (PID.TID 0000.0001) %MON time_secondsf = 2.4192000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.3098062515600E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2545950992177E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0715024174302E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9517150654209E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197305963033E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6872401048133E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9961623585275E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7581504727024E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1526444537342E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.8155456279713E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0027962864523E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3227620345515E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2740449535226E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0941831723497E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1193446158276E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5417573343114E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5090045590701E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1323383477641E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3507737109792E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1822104060957E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9976011731722E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.1167056710678E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6035224923784E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4026030298027E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0067551678934E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432973697175E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9770781924808E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001180619E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9440998138182E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0324212785831E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.3098096779110E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2545876462794E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.3878605963288E-13 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9517136050476E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1197303168617E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6872403766365E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.9961644580613E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7585963315777E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1526662291912E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.8158630743723E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0027971199571E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3227618090051E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2748018923345E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0942035905529E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1195140649970E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.5417508950723E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5090130095409E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.1326808266534E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.3509711693581E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1813717252793E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9976011782421E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.1167056847970E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6035212672097E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4026015859360E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0041878994188E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432973694863E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9770781901663E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001180284E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441924465143E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0335747049702E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2575218179855E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.9103782225161E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6050523244044E+01 @@ -2952,68 +2943,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9384820218404E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5463770378877E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4233489700273E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0287373378432E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9063953210790E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5283633000936E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0780201374173E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1398289752170E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.3022670220562E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4744168042237E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.9340323799208E-03 -(PID.TID 0000.0001) %MON ke_max = 1.4723577574961E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.1386535083825E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0270919599650E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9063941461290E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.5237890639690E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0766326176730E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1398280988163E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2985135746429E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.4701671796488E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.9340062970494E-03 +(PID.TID 0000.0001) %MON ke_max = 1.4723583659079E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.1386963496352E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.1271989158742E-07 -(PID.TID 0000.0001) %MON vort_r_max = 4.6739395260286E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204629941E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637197489506E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476085098928E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363629832854E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7112097296470E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.8670664513779E-05 +(PID.TID 0000.0001) %MON vort_r_min = -5.1281208585638E-07 +(PID.TID 0000.0001) %MON vort_r_max = 4.6739341213644E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204628454E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637197511444E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476085096091E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363629907598E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.7298474677753E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -4.8392308777012E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 14 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.5666666667 0.4333333333 - cg2d: Sum(rhs),rhsMax = 9.43689570931383E-16 1.72998043035563E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.55701527209202E-03 + cg2d: Sum(rhs),rhsMax = 1.72084568816899E-15 1.72997879294398E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.55393534973202E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 89 -(PID.TID 0000.0001) cg2d_last_res = 8.23320192724246E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.22634926779474E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 15 (PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4307394527165E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2734851634762E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.9490745366959E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9585918082910E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196935513410E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7653271293348E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4487719504704E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8384270385091E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2455092692775E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.1570547073706E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8300826408394E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3263447636320E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.2274794747261E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0875973066680E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1106230927563E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6566330927392E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5534523817640E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3005015072662E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2913206203603E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1040436480429E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9989121952631E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.1623682511733E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6036150922050E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4028290753536E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0158762619435E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432979992268E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9769633258720E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001145163E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9440938024997E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0350043876370E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.4307405417980E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2734807836939E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.5102884770630E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9585907320650E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196933838500E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7653272410717E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4487739896563E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.8388850504784E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2455323268157E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.1576102450193E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8300836045439E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3263445837931E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 3.2283057390865E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0876195866328E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.1108194737941E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6566268401737E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5534604932287E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.3002265934153E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2915511149120E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1033063764742E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9989122017326E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.1623682619804E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6036138498407E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4028219565429E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0180074354673E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7432979991539E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9769633256656E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001144424E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441307173088E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0372385089238E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2355146990978E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8945330640064E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6167353017229E+01 @@ -3039,68 +3030,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0705021467390E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5146829053665E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4154630056010E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0782390910174E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9761962497202E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4744168042237E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1195150383665E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1537503112228E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2275543010609E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3898276305295E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.8045408163669E-03 -(PID.TID 0000.0001) %MON ke_max = 1.5940421836776E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.2330973894696E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0768512894578E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9761954012208E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4701671796488E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1184043717121E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1537496124263E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.2240516084365E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.3858619086169E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.8045187754898E-03 +(PID.TID 0000.0001) %MON ke_max = 1.5940426447385E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.2331452107423E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -4.8915243352363E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.0030029225840E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204706957E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637194716754E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476081820235E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363675884390E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.1964135199326E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2339837260658E-05 +(PID.TID 0000.0001) %MON vort_r_min = -4.8925809873757E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.0030040170823E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204705360E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637194740220E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476081821673E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363675964763E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.2160626722193E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.2164438603584E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 15 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.5000000000 0.5000000000 - cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 1.72995439258582E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.44651905199223E-03 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 1.72995258228741E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.44753173851391E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 89 -(PID.TID 0000.0001) cg2d_last_res = 7.71630183867145E-10 +(PID.TID 0000.0001) cg2d_last_res = 7.72080159938727E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 16 (PID.TID 0000.0001) %MON time_secondsf = 2.7648000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6809593626670E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2853038220478E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -9.2145072522905E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9658707280778E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196461123532E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8361424196199E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7776727819418E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4877139828721E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3328566324611E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.5128255339736E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9032280418509E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3150417183370E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7153915370665E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0729272727125E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0969273244286E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7616769468869E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5752407546682E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.6566101486063E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2247060818924E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0290328804217E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9997520548436E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2033937920727E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6037083972858E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4030758873858E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0262672831230E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433113089744E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9768471136948E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001075199E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441218749515E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0376527231732E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6809622439001E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2852245565480E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.1939302981644E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9658699312391E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1196458902062E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8361428610375E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7776569233698E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.4882043925916E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3328797749521E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.5135660033349E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.9032274232125E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3150415368443E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.7161802847284E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0729503908365E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0971380434599E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.7616701480611E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5752487767514E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.6535608071999E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2249590203018E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0283553779470E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9997520626705E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2033937961940E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6037068054970E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4030648266889E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0298341051971E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433113087716E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9768471153520E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718001074733E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441227050988E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0407095303312E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.2135075802102E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8786879054966E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6284182790414E+01 @@ -3126,68 +3117,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2025222716376E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.4891639796661E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4292866492091E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1197424198777E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9896743830117E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3898276305295E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1524088438091E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1098303027874E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1269105317075E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2758795213770E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.7231317071672E-03 -(PID.TID 0000.0001) %MON ke_max = 1.7045652534894E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.3210166595475E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1186315276390E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9896737064622E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.3858619086169E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1515808131522E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.1098295975650E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1235875159479E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.2721172282423E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.7231349993650E-03 +(PID.TID 0000.0001) %MON ke_max = 1.7045657319536E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.3210669542038E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -4.8675753869054E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.2736626817706E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204832720E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637204477362E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476082711321E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363721949966E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.5028010410465E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3178732613199E-05 +(PID.TID 0000.0001) %MON vort_r_min = -4.8628290426051E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.2736704216995E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204831015E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637204502714E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476082711385E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363722035264E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.5137050728461E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.3258805792013E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 16 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.4333333333 0.5666666667 - cg2d: Sum(rhs),rhsMax = -2.24820162486594E-15 1.72992418824420E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.30148628243052E-03 + cg2d: Sum(rhs),rhsMax = 3.35842464949110E-15 1.72992219210637E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.30060670637421E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 86 -(PID.TID 0000.0001) cg2d_last_res = 9.54577200053303E-10 +(PID.TID 0000.0001) cg2d_last_res = 9.55048679137580E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 17 (PID.TID 0000.0001) %MON time_secondsf = 2.9376000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8395597168684E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2899389034446E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0092079371556E-11 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9709010554719E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195922386782E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9106598809568E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.1980732368384E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5063690927343E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4136501239567E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8782351481293E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2081165438962E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2890437616576E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5387789054442E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0522680443298E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0806053299096E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.8560116461543E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5787582028422E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.2011919180454E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1567012675154E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9629114404750E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0001192105039E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2398429147126E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6038025109741E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4033384483035E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0359186490157E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433384689600E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9767229986299E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000980822E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441254311541E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0410825364538E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8395641838646E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2898575866328E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.7042187752274E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9709002328558E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195920957462E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9106602518602E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.1980509319738E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.5068930936359E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4136731008253E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.8792246563050E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2081158841116E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2890435756313E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.5383122957455E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0522927202626E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0808313600200E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.8560038149789E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5787663580407E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.2025495971566E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.1569782188427E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9623558969473E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0001192195566E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2398429011316E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6038006223201E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4033295606993E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0376613220564E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433384685432E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9767230012593E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000980609E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441501413235E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0432456953542E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.1915004613225E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8628427469869E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6401012563599E+01 @@ -3213,68 +3204,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.3345423965362E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.4699260252941E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4646182492720E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1526429062874E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9471526216227E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2758795213770E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1854117462303E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0088105822730E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0022774466851E-01 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1347708917282E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.6975468143696E-03 -(PID.TID 0000.0001) %MON ke_max = 1.8029018176418E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4021133184535E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1518147074516E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9471519388520E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.2721172282423E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1854131243297E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0088098594346E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.9903492707386E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1310997357195E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.6975359580462E-03 +(PID.TID 0000.0001) %MON ke_max = 1.8029022448491E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4021661905947E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.1117805331424E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.4881662398816E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204978984E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637222440279E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476085560759E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363757613191E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6285905802317E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 5.1906384392332E-05 +(PID.TID 0000.0001) %MON vort_r_min = -5.1069751218749E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.4881809694649E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598204977182E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637222467504E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476085557080E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363757702217E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.6348380869269E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 5.1989283664354E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 17 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.3666666667 0.6333333333 - cg2d: Sum(rhs),rhsMax = -3.88578058618805E-16 1.72989107582682E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.20359591371611E-03 + cg2d: Sum(rhs),rhsMax = -1.66533453693773E-15 1.72988889348094E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.20127537187626E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 84 -(PID.TID 0000.0001) cg2d_last_res = 8.59113710098756E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.58213327865022E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 18 (PID.TID 0000.0001) %MON time_secondsf = 3.1104000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8822167138888E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2836874536158E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.6327163577973E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9722827890917E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195365656938E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9697449578061E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.5821627493682E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.6503892267921E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4869963257437E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0245239992977E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4657825732586E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2487338424985E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.7051247172569E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0279829545254E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0639437432378E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9386496775366E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6448208305220E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.0043306496259E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0927755367263E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9099696182000E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0000108797788E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2717729670840E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6038975471389E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4036211040041E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0422009603475E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433798698801E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9765857681870E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000877917E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441371022078E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0434703589236E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8822224391389E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2836047989508E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6327163577973E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9722820150303E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1195365062540E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9697452292431E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.5821330521486E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.6509417069317E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4870191153188E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0246525343376E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4657823133187E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.2487336515077E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.7047954709251E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0280090767039E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0641853781155E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.9386406739359E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6448078816023E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -1.0051999717966E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0930836013699E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.9096790367601E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 3.0000108898312E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2717729252062E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6038954592131E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4036119009213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0443841535926E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7433798695223E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9765857702661E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000877697E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441541305088E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0455846449605E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.1694933424348E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8469975884772E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6517842336784E+01 @@ -3300,68 +3291,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.4665625214348E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.4570503746109E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5209535749048E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1856525118341E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.8493489871447E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1347708917282E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2339977135152E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.8521791662886E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.8193682568083E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0854427161609E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.7279693592745E-03 -(PID.TID 0000.0001) %MON ke_max = 1.8885194199794E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.4762562393329E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1856538902135E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.8493482873188E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1310997357195E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2339988591671E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.8521784241595E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.8591264971531E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0854403529869E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.7279676902974E-03 +(PID.TID 0000.0001) %MON ke_max = 1.8885197572972E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.4763112470823E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.3088023516004E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.6530074732997E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205117022E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637243265980E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476088327661E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363776802348E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.3347005223870E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.6742415088993E-05 +(PID.TID 0000.0001) %MON vort_r_min = -5.3039959255302E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.6530294281959E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205115405E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637243292071E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476088325595E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363776895249E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.1762914814787E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 8.6734957934042E-05 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 18 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.3000000000 0.7000000000 - cg2d: Sum(rhs),rhsMax = 1.85962356624714E-15 1.72985342495880E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.17904899176140E-03 + cg2d: Sum(rhs),rhsMax = -2.05391259555654E-15 1.72985104115761E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.17881540609824E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 87 -(PID.TID 0000.0001) cg2d_last_res = 8.61071241488849E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.60295546883345E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 19 (PID.TID 0000.0001) %MON time_secondsf = 3.2832000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8201991588751E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2715675079245E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.3878605963288E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9702170791862E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194832264974E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0126333904805E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.9142791624925E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.7024230679024E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5519991661424E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0603534176144E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.6785828344084E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1947559644210E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.3555286958708E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0025762048236E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0490196237400E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0087710433155E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7743636130799E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.7332028794351E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0375612400702E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8729236381167E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9994242955828E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2992357794833E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6039936715461E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4039241203489E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0460346674079E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434351053638E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9764325163350E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000785353E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441551100275E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0457695361872E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.8202056985269E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2714842932713E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.0715024174302E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9702162452353E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194832447090E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0126335778160E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.9142435658200E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.7029916306577E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.5520216398854E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0605139931047E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.6785832059549E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1947557965342E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.3553036657862E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0026039490886E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0492768504607E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0087591960468E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7743518013316E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.7334023550820E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0379000063777E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8729468224158E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9994243063431E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.2992357030432E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6039914604690E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4039139150425E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0507734575739E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7434351050353E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9764325158343E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000785373E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441752912452E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0482318843078E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.1474862235472E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8311524299675E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6634672109969E+01 @@ -3387,68 +3378,68 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.5985826463334E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.4505922467671E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5975205888607E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2342483472765E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.6977041233626E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0550485541250E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2705951123800E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6424384461010E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.7837749817749E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1403095758815E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.8050815079621E-03 -(PID.TID 0000.0001) %MON ke_max = 1.9611919093905E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.5431009794436E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2342494931611E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.6977034048601E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0593204047058E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2705959765176E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.6424377937467E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.8632129381405E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1403067338933E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.8050821305988E-03 +(PID.TID 0000.0001) %MON ke_max = 1.9611922062438E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.5431578092480E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.4550718250613E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.7761806567979E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205223512E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637262194048E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476089905847E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363777077252E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3697057449052E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1214106788960E-04 +(PID.TID 0000.0001) %MON vort_r_min = -5.4503138448807E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.7762101055352E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205221983E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637262219765E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476089904906E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363777174904E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.3759404742142E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1204859553691E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= EXTERNAL_FIELDS_LOAD, 19 : iP,iLd,i0,i1= 1 2 1 2 ; Wght= 0.2333333333 0.7666666667 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-17 1.72980804184835E+02 -(PID.TID 0000.0001) cg2d_init_res = 2.20603685753017E-03 + cg2d: Sum(rhs),rhsMax = -6.93889390390723E-16 1.72980544618336E+02 +(PID.TID 0000.0001) cg2d_init_res = 2.20615081655230E-03 (PID.TID 0000.0001) cg2d_iters(min,last) = -1 88 -(PID.TID 0000.0001) cg2d_last_res = 8.46020037137996E-10 +(PID.TID 0000.0001) cg2d_last_res = 8.46568026182442E-10 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 20 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+06 -(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6894909834467E+04 -(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2597469101356E+04 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.3878605963288E-12 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9661017895256E+04 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194358659907E+03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0387746314920E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0181540875626E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.5197593759850E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6077795777148E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0942217884156E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8487052169943E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1280495989588E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.7599100100594E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.7857494323232E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0375131706893E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0658817336667E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8907080718657E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.5302406473797E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9944160570708E-01 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8525247719060E-03 -(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9983576474309E+01 -(PID.TID 0000.0001) %MON dynstat_theta_min = -3.3222781880740E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6040913978462E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4042443339233E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0483260395558E-03 -(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435234703380E+01 -(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762630244132E+01 -(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000717865E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441602270228E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0479010629248E-03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 4.6894977797138E+04 +(PID.TID 0000.0001) %MON dynstat_eta_min = -9.2596637529397E+04 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 7.0205769541261E-12 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 3.9661008558751E+04 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1194357510854E+03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0387747086903E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0181499071567E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.5203412947264E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6078016870817E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0944179146363E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.8487061367507E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1280494784155E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.7597919063318E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.7860475155529E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0377876566657E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.0658672855623E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8906981312982E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.5307388253208E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9947848504819E-01 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8528932021822E-03 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9983576585571E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.3222780722174E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6040886526730E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4042268097648E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0461382661525E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7435234700420E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 2.9762630190053E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718000718111E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9441477832744E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0490532522543E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.1262853656621E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8377875812820E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6751501883154E+01 @@ -3474,177 +3465,177 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.7306027712320E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.4505795787846E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6933292157477E-04 -(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2708531793348E-01 -(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.4946407548646E-02 -(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0512242110127E-01 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2942298311842E-01 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3832389067446E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.7574088892642E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1850984474390E-01 -(PID.TID 0000.0001) %MON pe_b_mean = -7.9128258455132E-03 -(PID.TID 0000.0001) %MON ke_max = 2.0330601097391E-02 -(PID.TID 0000.0001) %MON ke_mean = 1.6020620772004E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2708540436479E-01 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.4946401232789E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0597594750759E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2942303832233E-01 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3832384383518E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.7573814582797E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1850951157741E-01 +(PID.TID 0000.0001) %MON pe_b_mean = -7.9128324369026E-03 +(PID.TID 0000.0001) %MON ke_max = 2.0330618001007E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.6021207766099E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3442141716554E+22 -(PID.TID 0000.0001) %MON vort_r_min = -5.5480794732756E-07 -(PID.TID 0000.0001) %MON vort_r_max = 5.8651780044839E-07 -(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205283585E-05 -(PID.TID 0000.0001) %MON vort_a_sd = 7.3637276122243E-05 -(PID.TID 0000.0001) %MON vort_p_mean = -2.9476090358491E-05 -(PID.TID 0000.0001) %MON vort_p_sd = 1.0363761061447E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.1817992879433E-04 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2449106378440E-04 +(PID.TID 0000.0001) %MON vort_r_min = -5.5434077858536E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.8652152649257E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -2.4598205282204E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3637276146907E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.9476090357749E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0363761163573E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.1875565650955E-04 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.2441096963517E-04 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 14.884737175423652 -(PID.TID 0000.0001) System time: 3.99940012721344829E-002 -(PID.TID 0000.0001) Wall clock time: 14.971277952194214 +(PID.TID 0000.0001) User time: 10.843999862670898 +(PID.TID 0000.0001) System time: 1.9999999552965164E-002 +(PID.TID 0000.0001) Wall clock time: 10.870580911636353 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 8.19869977422058582E-002 -(PID.TID 0000.0001) System time: 7.99900002311915159E-003 -(PID.TID 0000.0001) Wall clock time: 9.09979343414306641E-002 +(PID.TID 0000.0001) User time: 7.5999997556209564E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.7105998992919922E-002 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 14.802750177681446 -(PID.TID 0000.0001) System time: 3.19950012490153313E-002 -(PID.TID 0000.0001) Wall clock time: 14.880240917205811 +(PID.TID 0000.0001) User time: 10.767999865114689 +(PID.TID 0000.0001) System time: 1.9999999552965164E-002 +(PID.TID 0000.0001) Wall clock time: 10.793437004089355 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.23796401172876358 -(PID.TID 0000.0001) System time: 7.99900013953447342E-003 -(PID.TID 0000.0001) Wall clock time: 0.24614310264587402 +(PID.TID 0000.0001) User time: 0.16800000518560410 +(PID.TID 0000.0001) System time: 1.2000000104308128E-002 +(PID.TID 0000.0001) Wall clock time: 0.18038105964660645 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 14.564786165952682 -(PID.TID 0000.0001) System time: 2.39960011094808578E-002 -(PID.TID 0000.0001) Wall clock time: 14.634068012237549 +(PID.TID 0000.0001) User time: 10.599999859929085 +(PID.TID 0000.0001) System time: 7.9999994486570358E-003 +(PID.TID 0000.0001) Wall clock time: 10.613031148910522 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 14.564786165952682 -(PID.TID 0000.0001) System time: 2.39960011094808578E-002 -(PID.TID 0000.0001) Wall clock time: 14.633882045745850 +(PID.TID 0000.0001) User time: 10.599999859929085 +(PID.TID 0000.0001) System time: 7.9999994486570358E-003 +(PID.TID 0000.0001) Wall clock time: 10.612872838973999 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": -(PID.TID 0000.0001) User time: 14.563786715269089 -(PID.TID 0000.0001) System time: 2.39960011094808578E-002 -(PID.TID 0000.0001) Wall clock time: 14.633514881134033 +(PID.TID 0000.0001) User time: 10.599999859929085 +(PID.TID 0000.0001) System time: 7.9999994486570358E-003 +(PID.TID 0000.0001) Wall clock time: 10.612559795379639 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.09962129592895508E-002 +(PID.TID 0000.0001) User time: 7.9997181892395020E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.95107460021972656E-002 +(PID.TID 0000.0001) Wall clock time: 1.3631820678710938E-002 (PID.TID 0000.0001) No. starts: 40 (PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.39931941032409668E-002 +(PID.TID 0000.0001) User time: 2.4000570178031921E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.41587162017822266E-002 +(PID.TID 0000.0001) Wall clock time: 1.4940261840820312E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 2.39931941032409668E-002 +(PID.TID 0000.0001) User time: 2.4000570178031921E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.37872600555419922E-002 +(PID.TID 0000.0001) Wall clock time: 1.4625310897827148E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": (PID.TID 0000.0001) User time: 0.0000000000000000 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.90496444702148438E-004 +(PID.TID 0000.0001) Wall clock time: 1.5640258789062500E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.61591133475303650 -(PID.TID 0000.0001) System time: 2.00000032782554626E-003 -(PID.TID 0000.0001) Wall clock time: 0.61563634872436523 +(PID.TID 0000.0001) User time: 0.44000110030174255 +(PID.TID 0000.0001) System time: 4.0000006556510925E-003 +(PID.TID 0000.0001) Wall clock time: 0.44844770431518555 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.1935145258903503 +(PID.TID 0000.0001) User time: 2.3359991312026978 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 3.2014369964599609 +(PID.TID 0000.0001) Wall clock time: 2.3343055248260498 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 4.5283142924308777 -(PID.TID 0000.0001) System time: 6.99800066649913788E-003 -(PID.TID 0000.0001) Wall clock time: 4.5441868305206299 +(PID.TID 0000.0001) User time: 3.2999998927116394 +(PID.TID 0000.0001) System time: 3.9999987930059433E-003 +(PID.TID 0000.0001) Wall clock time: 3.3050475120544434 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.12698042392730713 +(PID.TID 0000.0001) User time: 8.7999880313873291E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.13011670112609863 +(PID.TID 0000.0001) Wall clock time: 9.2025518417358398E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.7205856442451477 -(PID.TID 0000.0001) System time: 1.09989978373050690E-002 -(PID.TID 0000.0001) Wall clock time: 2.7369468212127686 +(PID.TID 0000.0001) User time: 1.9840012192726135 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9723703861236572 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.11397826671600342 +(PID.TID 0000.0001) User time: 0.11999756097793579 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.11492204666137695 +(PID.TID 0000.0001) Wall clock time: 0.12149858474731445 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.35295110940933228 +(PID.TID 0000.0001) User time: 0.25200194120407104 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.35286688804626465 +(PID.TID 0000.0001) Wall clock time: 0.25608181953430176 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "CALC_SURF_DR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.59943604469299316E-002 +(PID.TID 0000.0001) User time: 2.3998796939849854E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.66411304473876953E-002 +(PID.TID 0000.0001) Wall clock time: 1.9392728805541992E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00040435791015625E-003 +(PID.TID 0000.0001) User time: 0.0000000000000000 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.04086303710937500E-004 +(PID.TID 0000.0001) Wall clock time: 1.6331672668457031E-004 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.59847855567932129E-002 +(PID.TID 0000.0001) User time: 4.0000915527343750E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 6.50644302368164063E-002 +(PID.TID 0000.0001) Wall clock time: 4.5019865036010742E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.0768411159515381 +(PID.TID 0000.0001) User time: 0.76399862766265869 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.0791196823120117 +(PID.TID 0000.0001) Wall clock time: 0.75596880912780762 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.6417488455772400 -(PID.TID 0000.0001) System time: 1.00000016391277313E-003 -(PID.TID 0000.0001) Wall clock time: 1.6636176109313965 +(PID.TID 0000.0001) User time: 1.1679999828338623 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1810512542724609 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.19955444335937500E-002 +(PID.TID 0000.0001) User time: 2.8000831604003906E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.35712528228759766E-002 +(PID.TID 0000.0001) Wall clock time: 2.5872707366943359E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 2.89964675903320313E-002 -(PID.TID 0000.0001) System time: 1.99900195002555847E-003 -(PID.TID 0000.0001) Wall clock time: 3.07261943817138672E-002 +(PID.TID 0000.0001) User time: 1.9999504089355469E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.2850513458251953E-002 (PID.TID 0000.0001) No. starts: 20 (PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== @@ -3673,9 +3664,9 @@ (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 16114 +(PID.TID 0000.0001) // No. barriers = 16106 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 16114 +(PID.TID 0000.0001) // Total barrier spins = 16106 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_global_oce_optim/build/genmake_local b/verification/tutorial_global_oce_optim/build/genmake_local deleted file mode 100644 index 7f58477293..0000000000 --- a/verification/tutorial_global_oce_optim/build/genmake_local +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# This is the local options file for the "new" version of genmake - -if test "x$OPENAD" = x ; then - AD_OPTFILE='../code_ad/ad_optfile.local' -fi diff --git a/verification/tutorial_global_oce_optim/code_ad/AUTODIFF_OPTIONS.h b/verification/tutorial_global_oce_optim/code_ad/AUTODIFF_OPTIONS.h index 99859793cd..4b6f1f5cc0 100644 --- a/verification/tutorial_global_oce_optim/code_ad/AUTODIFF_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_ad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,13 +48,34 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer -#undef AUTODIFF_PTRACERS_SPLIT_FILES +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#define AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/verification/tutorial_global_oce_optim/code_ad/CTRL_OPTIONS.h b/verification/tutorial_global_oce_optim/code_ad/CTRL_OPTIONS.h index f22e5bce78..0d3058f7c6 100644 --- a/verification/tutorial_global_oce_optim/code_ad/CTRL_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_ad/CTRL_OPTIONS.h @@ -26,15 +26,19 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED #undef EXCLUDE_CTRL_PACK -#define ALLOW_NONDIMENSIONAL_CONTROL_IO +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO +#undef ALLOW_PACKUNPACK_METHOD2 C >>> Initial values. #undef ALLOW_THETA0_CONTROL #undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL #undef ALLOW_TR10_CONTROL #undef ALLOW_TAUU0_CONTROL #undef ALLOW_TAUV0_CONTROL @@ -64,18 +68,25 @@ C >>> Other Control. #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL -#define ALLOW_HFLUXM_CONTROL -#define ALLOW_ECCO_OPTIMIZATION +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD C >>> Generic Control. #undef ALLOW_GENARR2D_CONTROL #undef ALLOW_GENARR3D_CONTROL -#undef ALLOW_GENTIM2D_CONTROL +#define ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/tutorial_global_oce_optim/code_ad/FFIELDS.h b/verification/tutorial_global_oce_optim/code_ad/FFIELDS.h deleted file mode 100644 index 06150bd706..0000000000 --- a/verification/tutorial_global_oce_optim/code_ad/FFIELDS.h +++ /dev/null @@ -1,270 +0,0 @@ -CBOP -C !ROUTINE: FFIELDS.h -C !INTERFACE: -C include "FFIELDS.h" -C !DESCRIPTION: -C \bv -C *==========================================================* -C | FFIELDS.h -C | o Model forcing fields -C *==========================================================* -C | More flexible surface forcing configurations are -C | available via, e.g., pkg/exf -C *==========================================================* -C \ev -CEOP -C -C fu :: Zonal surface wind stress in N/m^2 -C > 0 for increase in uVel, which is west to -C east for cartesian and spherical polar grids -C Typical range: -0.5 < fu < 0.5 -C Southwest C-grid U point -C -C fv :: Meridional surface wind stress in N/m^2 -C > 0 for increase in vVel, which is south to -C north for cartesian and spherical polar grids -C Typical range: -0.5 < fv < 0.5 -C Southwest C-grid V point -C -C EmPmR :: Net upward freshwater flux in kg/m2/s -C EmPmR = Evaporation - precipitation - runoff -C > 0 for increase in salt (ocean salinity) -C Typical range: -1e-4 < EmPmR < 1e-4 -C Southwest C-grid tracer point -C NOTE: for backward compatibility EmPmRfile is specified in -C m/s when using external_fields_load.F. It is converted -C to kg/m2/s by multiplying by rhoConstFresh. -C -C saltFlux :: Net upward salt flux in psu.kg/m^2/s -C flux of Salt taken out of the ocean per time unit (second). -C Note: a) only used when salty sea-ice forms or melts. -C b) units: when salinity (unit= psu) is expressed -C in g/kg, saltFlux unit becomes g/m^2/s. -C > 0 for decrease in SSS. -C Southwest C-grid tracer point -C -C Qnet :: Net upward surface heat flux (including shortwave) in W/m^2 -C Qnet = latent + sensible + net longwave + net shortwave -C > 0 for decrease in theta (ocean cooling) -C Typical range: -250 < Qnet < 600 -C Southwest C-grid tracer point -C -C Qsw :: Net upward shortwave radiation in W/m^2 -C Qsw = - ( downward - ice and snow absorption - reflected ) -C > 0 for decrease in theta (ocean cooling) -C Typical range: -350 < Qsw < 0 -C Southwest C-grid tracer point -C -C SST :: Sea surface temperature in degrees C for relaxation -C Southwest C-grid tracer point -C -C SSS :: Sea surface salinity in psu for relaxation -C Southwest C-grid tracer point -C -C lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ). -C -C lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ). - -C phiTide2d :: vertically uniform (2d-map), time-dependent geopotential -C anomaly (e.g., tidal forcing); Units are m^2/s^2 -C pLoad :: for the ocean: atmospheric pressure at z=eta -C Units are Pa=N/m^2 -C for the atmosphere: geopotential of the orography -C Units are meters (converted) -C sIceLoad :: sea-ice loading, expressed in Mass of ice+snow / area unit -C Units are kg/m^2 -C Note: only used with Sea-Ice & RealFreshWater formulation -C addMass :: source (<0: sink) of fluid in the domain interior -C (generalisation of oceanic real fresh-water flux) -C Units are kg/s (mass per unit of time) -C frictionHeating :: heating caused by friction and momentum dissipation -C Units are in W/m^2 (thickness integrated) -C eddyPsiX -Zonal Eddy Streamfunction in m^2/s used in taueddy_external_forcing.F -C eddyPsiY -Meridional Streamfunction in m^2/s used in taueddy_external_forcing.F -C EfluxY - y-component of Eliassen-Palm flux vector -C EfluxP - p-component of Eliassen-Palm flux vector - - COMMON /FFIELDS_fu/ fu - COMMON /FFIELDS_fv/ fv - COMMON /FFIELDS_Qnet/ Qnet - COMMON /FFIELDS_Qsw/ Qsw - COMMON /FFIELDS_EmPmR/ EmPmR - COMMON /FFIELDS_saltFlux/ saltFlux - COMMON /FFIELDS_SST/ SST - COMMON /FFIELDS_SSS/ SSS - COMMON /FFIELDS_lambdaThetaClimRelax/ lambdaThetaClimRelax - COMMON /FFIELDS_lambdaSaltClimRelax/ lambdaSaltClimRelax - COMMON /FFIELDS_phiTide/ phiTide2d - COMMON /FFIELDS_pLoad/ pLoad - COMMON /FFIELDS_sIceLoad/ sIceLoad - - _RS fu (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS fv (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS Qnet (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS Qsw (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS EmPmR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS saltFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SST (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SSS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS lambdaThetaClimRelax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS lambdaSaltClimRelax(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS phiTide2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS pLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS sIceLoad (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - -#ifdef ALLOW_ADDFLUID - COMMON /FFIELDS_ADD_FLUID/ addMass - _RL addMass(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif -#ifdef ALLOW_FRICTION_HEATING - COMMON /FFIELDS_frictionHeat/ frictionHeating - _RS frictionHeating(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif -#ifdef ALLOW_GEOTHERMAL_FLUX -C geothermalFlux :: Upward geothermal flux through bottom cell [W/m^2] -C > 0 for increase in theta (ocean warming) -C Typical range: 0 < geothermalFlux < 1.5 W/m^2 -C (global mean on the order 0.09 - 0.1 W/m^2) - COMMON /FFIELDS_geothermal/ geothermalFlux - _RS geothermalFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -#ifdef ALLOW_HFLUXM_CONTROL - COMMON /Mean_qnet/ Qnetm - _RS Qnetm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif - -C- jmc: commented out until corresponding (ghost-like) code apparition -C dQdT :: Thermal relaxation coefficient in W/m^2/degrees -C Southwest C-grid tracer point -c COMMON /FFIELDS_dQdT/ dQdT -c _RS dQdT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -c#ifdef ALLOW_EP_FLUX -c COMMON /FFIELDS_eflux/ EfluxY,EfluxP -c _RL EfluxY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -c _RL EfluxP (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -c#endif - -#ifdef ALLOW_EDDYPSI -C uEulerMean :: The Eulerian mean Zonal velocity (residual less bolus velocity) -C vEulerMean :: The Eulerian mean Merid. velocity (residual less bolus velocity) -C tauxEddy :: The eddy stress used in the momentum equation of a residual model -C tauyEddy :: The eddy stress used in the momentum equation of a residual model - - COMMON /FFIELDS_eddyPsi_RS/ eddyPsiX, eddyPsiY - _RS eddyPsiX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RS eddyPsiY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - - COMMON /FFIELDS_eddyPsi_RL/ - & tauxEddy, tauyEddy, uEulerMean, vEulerMean - _RL tauxEddy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL tauyEddy (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL uEulerMean(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) - _RL vEulerMean(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) -#endif /* ALLOW_EDDYPSI */ - -#ifndef EXCLUDE_FFIELDS_LOAD -C loadedRec :: time-record currently loaded (in temp arrays *[1]) -C taux[0,1] :: Temp. for zonal wind stress -C tauy[0,1] :: Temp. for merid. wind stress -C Qnet[0,1] :: Temp. for heat flux -C EmPmR[0,1] :: Temp. for fresh water flux -C saltFlux[0,1] :: Temp. for isurface salt flux -C SST[0,1] :: Temp. for theta climatalogy -C SSS[0,1] :: Temp. for theta climatalogy -C Qsw[0,1] :: Temp. for short wave component of heat flux -C pLoad[0,1] :: Temp. for atmospheric pressure at z=eta -C [0,1] :: End points for interpolation - - COMMON /FFIELDS_I/ loadedRec - INTEGER loadedRec(nSx,nSy) - - COMMON /TDFIELDS/ - & taux0, tauy0, Qnet0, EmPmR0, SST0, SSS0, - & taux1, tauy1, Qnet1, EmPmR1, SST1, SSS1, - & saltFlux0, saltFlux1 -#ifdef SHORTWAVE_HEATING - & , Qsw0, Qsw1 -#endif -#ifdef ALLOW_GEOTHERMAL_FLUX - & , geothFlux0, geothFlux1 -#endif -#ifdef ATMOSPHERIC_LOADING - & , pLoad0, pLoad1 -#endif - - _RS taux0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS tauy0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS Qnet0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS EmPmR0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS saltFlux0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SST0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SSS0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS taux1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS tauy1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS Qnet1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS EmPmR1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS saltFlux1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SST1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS SSS1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#ifdef SHORTWAVE_HEATING - _RS Qsw0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS Qsw1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#ifdef ALLOW_GEOTHERMAL_FLUX - _RS geothFlux0(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS geothFlux1(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#ifdef ATMOSPHERIC_LOADING - _RS pLoad0 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS pLoad1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) -#endif -#endif /* EXCLUDE_FFIELDS_LOAD */ - -C surfaceForcingU units are r_unit.m/s^2 (=m^2/s^2 if r=z) -C -> usage in gU: gU = gU + surfaceForcingU/drF [m/s^2] -C surfaceForcingV units are r_unit.m/s^2 (=m^2/s^-2 if r=z) -C -> usage in gU: gV = gV + surfaceForcingV/drF [m/s^2] -C -C surfaceForcingS units are r_unit.psu/s (=psu.m/s if r=z) -C - EmPmR * S_surf plus salinity relaxation*drF(1) -C -> usage in gS: gS = gS + surfaceForcingS/drF [psu/s] -C -C surfaceForcingT units are r_unit.Kelvin/s (=Kelvin.m/s if r=z) -C - Qnet (+Qsw) plus temp. relaxation*drF(1) -C -> calculate -lambda*(T(model)-T(clim)) -C Qnet assumed to be net heat flux including ShortWave rad. -C -> usage in gT: gT = gT + surfaceforcingT/drF [K/s] -C adjustColdSST_diag :: diagnostic field for how much too cold (below -C Tfreezing) SST has been adjusted (with allowFreezing=T). -C > 0 for increase of SST (up to Tfreezing). -C Units are r_unit.K/s (=Kelvin.m/s if r=z). -C Note: 1) allowFreezing option is a crude hack to fix too cold SST that -C results from missing seaice component. It should never be used -C with any seaice component, neither current seaice pkg (pkg/seaice -C or pkg/thsice) nor a seaice component from atmos model when -C coupled to it. -C 2) this diagnostic is currently used by KPP package (kpp_calc.F -C and kpp_transport_t.F) although it is not very clear it should. - - COMMON /SURFACE_FORCING/ - & surfaceForcingU, - & surfaceForcingV, - & surfaceForcingT, - & surfaceForcingS, - & adjustColdSST_diag - _RL surfaceForcingU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL surfaceForcingV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL surfaceForcingT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL surfaceForcingS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RL adjustColdSST_diag(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - -C botDragU :: bottom stress (for diagnostics), Zonal component -C Units are N/m^2 ; > 0 increase uVel @ bottom -C botDragV :: bottom stress (for diagnostics), Merid. component -C Units are N/m^2 ; > 0 increase vVel @ bottom - COMMON /FFIELDS_bottomStress/ botDragU, botDragV - _RS botDragU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - _RS botDragV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/tutorial_global_oce_optim/code_ad/MOM_COMMON_OPTIONS.h b/verification/tutorial_global_oce_optim/code_ad/MOM_COMMON_OPTIONS.h new file mode 100644 index 0000000000..02b4ba047b --- /dev/null +++ b/verification/tutorial_global_oce_optim/code_ad/MOM_COMMON_OPTIONS.h @@ -0,0 +1,25 @@ +C CPP options file for mom_common package +C Use this file for selecting CPP options within the mom_common package + +#ifndef MOM_COMMON_OPTIONS_H +#define MOM_COMMON_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_MOM_COMMON +C Package-specific options go here + +C allow LeithQG coefficient to be calculated +#undef ALLOW_LEITH_QG + +C allow isotropic 3-D Smagorinsky viscosity +#undef ALLOW_SMAG_3D + +C allow full 3D specification of horizontal Laplacian Viscosity +#define ALLOW_3D_VISCAH + +C allow full 3D specification of horizontal Biharmonic Viscosity +#undef ALLOW_3D_VISCA4 + +#endif /* ALLOW_MOM_COMMON */ +#endif /* MOM_COMMON_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_optim/code_ad/SIZE.h b/verification/tutorial_global_oce_optim/code_ad/SIZE.h index 76ec7c8565..8227f4a5c2 100644 --- a/verification/tutorial_global_oce_optim/code_ad/SIZE.h +++ b/verification/tutorial_global_oce_optim/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_global_oce_optim/code_ad/SIZE.h_mpi b/verification/tutorial_global_oce_optim/code_ad/SIZE.h_mpi index 75887cecf2..febb7e4d52 100644 --- a/verification/tutorial_global_oce_optim/code_ad/SIZE.h_mpi +++ b/verification/tutorial_global_oce_optim/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_global_oce_optim/code_ad/ad_optfile.local b/verification/tutorial_global_oce_optim/code_ad/ad_optfile.local deleted file mode 100644 index 4ee55a38d7..0000000000 --- a/verification/tutorial_global_oce_optim/code_ad/ad_optfile.local +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/bash -# -# This AD option-file contains the settings for the adjoint and -# tangent-linear compilers to use for this particular setup. -# It is similar to the default AD-optfile except -# for the list of controls (DIFF_FLAGS) - -# TAMC=/data43/ralf/tamc/tamc -# TAF=~fastopt/bin/taf -# STAF=staf - -TAF=staf -TAMC=tamc - -AD_TAMC_FLAGS="-reverse -i4 -r4 -l tamc_ad.log $AD_TAMC_FLAGS" -FTL_TAMC_FLAGS="-forward -i4 -r4 -l tamc_ftl.log $FTL_TAMC_FLAGS" -SVD_TAMC_FLAGS="-reverse -forward -pure -i4 -r4 -l tamc_svd.log $SVD_TAMC_FLAGS" - -AD_TAF_FLAGS="-reverse -i4 -r4 -l taf_ad.log $AD_TAF_FLAGS" -FTL_TAF_FLAGS="-forward -i4 -r4 -l taf_ftl.log $FTL_TAF_FLAGS" -SVD_TAF_FLAGS="-reverse -forward -pure -i4 -r4 -l taf_svd.log $SVD_TAF_FLAGS" - -#- after Jan 14, 2016, TAF default is "-f95" -if test "x$ALWAYS_USE_F90" = "x1" ; then - AD_TAF_FLAGS="-f90 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f90 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f90 $SVD_TAF_FLAGS" -else - AD_TAF_FLAGS="-f77 $AD_TAF_FLAGS" - FTL_TAF_FLAGS="-f77 $FTL_TAF_FLAGS" - SVD_TAF_FLAGS="-f77 $SVD_TAF_FLAGS" -fi - -DIFF_FLAGS="-toplevel 'the_main_loop' \ - -input 'xx_theta_dummy \ - xx_salt_dummy \ - xx_hflux_dummy \ - xx_sflux_dummy \ - xx_tauu_dummy \ - xx_tauv_dummy \ - xx_atemp_dummy \ - xx_aqh_dummy \ - xx_uwind_dummy \ - xx_vwind_dummy \ - xx_diffkr_dummy \ - xx_kapgm_dummy \ - xx_efluxp_dummy \ - xx_hfluxm_dummy' \ - -output 'fc'" - -AD_TAMC_FLAGS="$AD_TAMC_FLAGS $DIFF_FLAGS" -AD_TAF_FLAGS="$AD_TAF_FLAGS $DIFF_FLAGS" - -FTL_TAMC_FLAGS="$FTL_TAMC_FLAGS $DIFF_FLAGS" -FTL_TAF_FLAGS="$FTL_TAF_FLAGS $DIFF_FLAGS" - -SVD_TAMC_FLAGS="$SVD_TAMC_FLAGS $DIFF_FLAGS" -SVD_TAF_FLAGS="$SVD_TAF_FLAGS $DIFF_FLAGS" diff --git a/verification/tutorial_global_oce_optim/code_ad/cost_hflux.F b/verification/tutorial_global_oce_optim/code_ad/cost_hflux.F index f0e82222ef..372aad30ba 100644 --- a/verification/tutorial_global_oce_optim/code_ad/cost_hflux.F +++ b/verification/tutorial_global_oce_optim/code_ad/cost_hflux.F @@ -3,45 +3,62 @@ # include "CTRL_OPTIONS.h" #endif +CBOP +C !ROUTINE: COST_HFLUX +C !INTERFACE: SUBROUTINE COST_HFLUX( myThid ) +C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE COST_HFLUX C | o the subroutine computes the cost function relative to -C | surface hflux optimization +C | mean surface hflux optimization as a simple example. C *==========================================================* - +C \ev +C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" -#include "DYNVARS.h" #include "cost.h" -#include "ctrl_weights.h" -#ifdef ALLOW_HFLUXM_CONTROL -#include "FFIELDS.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +# include "CTRL_SIZE.h" +# include "CTRL_GENARR.h" #endif -C ======== Routine arguments ====================== +C !INPUT/OUTPUT PARAMETERS: C myThid - Thread number for this instance of the routine. - integer myThid + INTEGER myThid -#if (defined (ALLOW_COST_HFLUXM) && defined (ALLOW_HFLUXM_CONTROL)) -C ========= Local variables ========================= - integer i, j - integer bi, bj - _RL locfc,tmpC +#ifdef ALLOW_COST_HFLUXM +C !LOCAL VARIABLES: + INTEGER i, j + INTEGER bi, bj + _RL locfc, tmpC +#ifndef ALLOW_OPENAD + INTEGER iarr +#endif +CEOP +#ifndef ALLOW_OPENAD +C iarr = 1 is set in data.ctrl (xx_gentim2d_file(1) = 'xx_qnet'). + iarr = 1 +C By default xx_gentim2d_period(1)=0, so that control parameter +C xx_gentim2d(:,:,:,:,1) is the mean heat flux perturbation. Here we +C penalize deviations from the first guess = 0. +#endif tmpC = 0. _d 0 DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - do j=1,sNy - do i=1,sNx - tmpC = tmpC + maskC(i,j,1,bi,bj) - ENDDO + DO j=1,sNy + DO i=1,sNx + tmpC = tmpC + maskC(i,j,1,bi,bj) ENDDO + ENDDO ENDDO ENDDO _GLOBAL_SUM_RL( tmpC , myThid ) @@ -50,23 +67,27 @@ SUBROUTINE COST_HFLUX( myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - locfc = 0. _d 0 - DO j=1,sNy - DO i=1,sNx - locfc = locfc + tmpC*maskC(i,j,1,bi,bj)* - & whfluxm(i,j,bi,bj)* - & ( + locfc = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + locfc = locfc + tmpC*maskC(i,j,1,bi,bj)* + & whfluxm(i,j,bi,bj)* + & ( +#ifdef ALLOW_OPENAD & Qnetm(i,j,bi,bj) - & )**2 - ENDDO +#else + & xx_gentim2d(i,j,bi,bj,iarr) +#endif + & )**2 ENDDO + ENDDO - objf_hflux_tut(bi,bj) = locfc -c print*,'objf_hflux_tut =',locfc + objf_hflux_tut(bi,bj) = locfc +c print*,'objf_hflux_tut =',locfc ENDDO ENDDO -#endif /* ALLOW_COST_HFLUXM & ALLOW_HFLUXM_CONTROL */ +#endif /* ALLOW_COST_HFLUXM */ RETURN END diff --git a/verification/tutorial_global_oce_optim/code_ad/cost_local.h b/verification/tutorial_global_oce_optim/code_ad/cost_local.h new file mode 100644 index 0000000000..bd764fb64e --- /dev/null +++ b/verification/tutorial_global_oce_optim/code_ad/cost_local.h @@ -0,0 +1,6 @@ +C Define some local weights specific to this experiment +C whfluxm :: weight for heat flux +C wtheta :: dummy weight for temperature + COMMON /COST_LOCAL_WEIGHTS/ whfluxm, wtheta + _RL whfluxm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL wtheta ( Nr,nSx,nSy ) diff --git a/verification/tutorial_global_oce_optim/code_ad/cost_temp.F b/verification/tutorial_global_oce_optim/code_ad/cost_temp.F index 21558bb472..0cb4751f0f 100644 --- a/verification/tutorial_global_oce_optim/code_ad/cost_temp.F +++ b/verification/tutorial_global_oce_optim/code_ad/cost_temp.F @@ -3,34 +3,43 @@ c# include "CTRL_OPTIONS.h" c#endif +CBOP +C !ROUTINE: COST_TEMP +C !INTERFACE: SUBROUTINE COST_TEMP( myThid ) C *==========================================================* C | SUBROUTINE COST_TEMP C | o the subroutine computes the sum of the squared errors C | relatively to the Levitus climatology C *==========================================================* - +C +C \ev +C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "cost.h" -#include "ctrl_weights.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +#endif -C ======== Routine arguments ====================== +C !INPUT/OUTPUT PARAMETERS: C myThid - Thread number for this instance of the routine. INTEGER myThid #ifdef ALLOW_COST_TEMP -C ========= Local variables ========================= +C !LOCAL VARIABLES: INTEGER i, j, k INTEGER bi, bj INTEGER Nk _RL locfc,tmp _RL thetalev(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +CEOP Nk = 2 C Read annual mean Levitus temperature diff --git a/verification/tutorial_global_oce_optim/code_ad/cost_weights.F b/verification/tutorial_global_oce_optim/code_ad/cost_weights.F index 84b64cae1b..4f88038431 100644 --- a/verification/tutorial_global_oce_optim/code_ad/cost_weights.F +++ b/verification/tutorial_global_oce_optim/code_ad/cost_weights.F @@ -3,74 +3,63 @@ # include "CTRL_OPTIONS.h" #endif +CBOP +C !ROUTINE: COST_WEIGHTS +C !INTERFACE: SUBROUTINE COST_WEIGHTS( myThid ) - -C ================================================================== -C SUBROUTINE COST_WEIGHTS -C ================================================================== +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE COST_WEIGHTS +C | o Set weights used in the cost function +C *==========================================================* C -C o Set weights used in the cost function and in the -C normalization of the sensitivities when ALLOW_NON_DIMENSIONAL - +C \ev +C !USES: IMPLICIT NONE - -C == global variables == +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +#endif -#include "ctrl.h" -#include "ctrl_weights.h" -#include "cost.h" - -C == routine arguments == +C !INPUT/OUTPUT PARAMETERS: INTEGER myThid -C == Functions == +C !FUNCTIONS: INTEGER MDS_RECLEN EXTERNAL MDS_RECLEN -C == local variables == +C !LOCAL VARIABLES: INTEGER bi,bj INTEGER i,j,k - INTEGER itlo,ithi,jtlo,jthi - INTEGER jMin,jMax,iMin,iMax INTEGER iUnit, length_of_rec _RL dummy _RL wti(Nr) REAL*8 tmpwti(Nr) CHARACTER*(MAX_LEN_MBUF) msgBuf - -C == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - iMin = 1-OLx - iMax = sNx+OLx - jMin = 1-OLy - jMax = sNy+OLy +CEOP C-- Initialize variance (weight) fields. DO k = 1,Nr - wti(k) = 0. _d 0 + wti(k) = 0. _d 0 ENDDO - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = jMin,jMax - DO i = iMin,iMax - whfluxm(i,j,bi,bj)= 0. _d 0 - ENDDO - ENDDO - DO k = 1,Nr - wunit(k,bi,bj) = 1. _d 0 - wtheta(k,bi,bj) = 0. _d 0 - wsalt(k,bi,bj) = 0. _d 0 - ENDDO + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + whfluxm(i,j,bi,bj)= 0. _d 0 + ENDDO + ENDDO + DO k = 1,Nr + wtheta(k,bi,bj) = 0. _d 0 ENDDO + ENDDO ENDDO C-- Read error information and set up weight matrices. @@ -100,8 +89,8 @@ SUBROUTINE COST_WEIGHTS( myThid ) c print*,'Weights for temperature: wti', (wti(k),k=1,nr) - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) DO k = 1, Nr wtheta(k,bi,bj) = 1. _d 0/wti(k)/wti(k) ENDDO @@ -111,14 +100,14 @@ SUBROUTINE COST_WEIGHTS( myThid ) C-- Then the hflux weights : -#if (defined (ALLOW_COST_HFLUXM) || defined (ALLOW_HFLUXM_CONTROL)) +#ifdef ALLOW_COST_HFLUXM CALL READ_REC_3D_RL( 'Err_hflux.bin', precFloat64, 1, & whfluxm, 1, 0, myThid ) _EXCH_XY_RL(whfluxm , myThid ) - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = jMin,jMax - DO i = iMin,iMax + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx c print*,'Uncertainties for Heat Flux',i,j,whfluxm(i,j,bi,bj) IF (whfluxm(i,j,bi,bj) .NE. 0. _d 0) THEN whfluxm(i,j,bi,bj) = 1. _d 0 /whfluxm(i,j,bi,bj) @@ -133,6 +122,6 @@ SUBROUTINE COST_WEIGHTS( myThid ) #ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO CALL ACTIVE_WRITE_XY('whfluxm',whfluxm,1,0,myThid,dummy) #endif -#endif /* ALLOW_COST_HFLUXM or ALLOW_HFLUXM_CONTROL */ +#endif /* ALLOW_COST_HFLUXM */ RETURN END diff --git a/verification/tutorial_global_oce_optim/code_ad/external_forcing_surf.F b/verification/tutorial_global_oce_optim/code_ad/external_forcing_surf.F deleted file mode 100644 index c69ec20e64..0000000000 --- a/verification/tutorial_global_oce_optim/code_ad/external_forcing_surf.F +++ /dev/null @@ -1,399 +0,0 @@ -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" -#ifdef ALLOW_AUTODIFF -# include "AUTODIFF_OPTIONS.h" -#endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif -#ifdef ALLOW_SALT_PLUME -# include "SALT_PLUME_OPTIONS.h" -#endif -#undef CHECK_OVERLAP_FORCING - -CBOP -C !ROUTINE: EXTERNAL_FORCING_SURF -C !INTERFACE: - SUBROUTINE EXTERNAL_FORCING_SURF( - I iMin, iMax, jMin, jMax, - I myTime, myIter, myThid ) -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE EXTERNAL_FORCING_SURF -C | o Determines forcing terms based on external fields -C | relaxation terms etc. -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE -C === Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "FFIELDS.h" -#include "DYNVARS.h" -#include "GRID.h" -#include "SURFACE.h" -#ifdef ALLOW_AUTODIFF -# include "tamc.h" -# include "tamc_keys.h" -#endif - -C !INPUT/OUTPUT PARAMETERS: -C === Routine arguments === -C iMin,iMax, jMin,jMax :: Range of points for calculation -C myTime :: Current time in simulation -C myIter :: Current iteration number in simulation -C myThid :: Thread no. that called this routine. - INTEGER iMin, iMax - INTEGER jMin, jMax - _RL myTime - INTEGER myIter - INTEGER myThid - -C !LOCAL VARIABLES: -C === Local variables === -C bi,bj :: tile indices -C i,j :: loop indices -C ks :: index of surface interface layer - INTEGER bi,bj - INTEGER i,j - INTEGER ks - _RL recip_Cp -#ifdef ALLOW_BALANCE_FLUXES - _RS tmpVar(1) -#endif -#ifdef CHECK_OVERLAP_FORCING - _RS fixVal -#endif -CEOP - - IF ( usingPCoords ) THEN - ks = Nr - ELSE - ks = 1 - ENDIF - recip_Cp = 1. _d 0 / HeatCapacity_Cp - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - -C-- Apply adjustment (balancing forcing) and exchanges -C to oceanic surface forcing - -#ifdef ALLOW_BALANCE_FLUXES -C balance fluxes - tmpVar(1) = oneRS - IF ( balanceEmPmR .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, EmPmR, maskInC, maskInC, rA, tmpVar, - & 'EmPmR', myTime, myThid ) - ENDIF - IF ( balanceQnet .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, Qnet, maskInC, maskInC, rA, tmpVar, - & 'Qnet ', myTime, myThid ) - ENDIF -#endif /* ALLOW_BALANCE_FLUXES */ - -C- Apply exchanges (if needed) - -#ifdef CHECK_OVERLAP_FORCING -C Put large value in overlap of forcing array to check if exch is needed -c IF ( .NOT. useKPP ) THEN - fixVal = 1. - CALL RESET_HALO_RS ( EmPmR, fixVal, 1, myThid ) - fixVal = 400. - CALL RESET_HALO_RS ( Qnet, fixVal, 1, myThid ) - fixVal = -200. - CALL RESET_HALO_RS ( Qsw, fixVal, 1, myThid ) - fixVal = 40. - CALL RESET_HALO_RS ( saltFlux, fixVal, 1, myThid ) -c ENDIF -#endif /* CHECK_OVERLAP_FORCING */ - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - -#ifdef EXACT_CONSERV -C NB: synchronous time step: PmEpR lag 1 time step behind EmPmR -C to stay consitent with volume change (=d/dt etaH). -# ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE PmEpR = comlev1, key = ikey_dynamics, kind = isbyte -CADJ STORE EmPmR = comlev1, key = ikey_dynamics, kind = isbyte -# endif - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - IF ( staggerTimeStep ) THEN - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - PmEpR(i,j,bi,bj) = -EmPmR(i,j,bi,bj) - ENDDO - ENDDO - ENDIF - ENDDO - ENDDO -#endif /* EXACT_CONSERV */ - -C-- set surfaceForcingT,S to zero. - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - surfaceForcingT(i,j,bi,bj) = 0. _d 0 - surfaceForcingS(i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - ENDDO - ENDDO - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - -C-- Start with surface restoring term : - IF ( doThetaClimRelax .OR. doSaltClimRelax ) THEN - CALL FORCING_SURF_RELAX( - I iMin, iMax, jMin, jMax, - I myTime, myIter, myThid ) - ENDIF - -#ifdef ALLOW_PTRACERS -C-- passive tracer surface forcing: -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE surfaceForcingS = comlev1, key = ikey_dynamics, -CADJ & kind = isbyte -#endif - IF ( usePTRACERS ) THEN - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - CALL PTRACERS_FORCING_SURF( - I surfaceForcingS(1-OLx,1-OLy,bi,bj), - I bi, bj, iMin, iMax, jMin, jMax, - I myTime, myIter, myThid ) - ENDDO - ENDDO - ENDIF -#endif /* ALLOW_PTRACERS */ - -C- Notes: setting of PmEpR and pTracers surface forcing could have been -C moved below, inside a unique bi,bj block. However this results -C in tricky dependencies for TAF (and recomputations). -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - - DO bj=myByLo(myThid),myByHi(myThid) - DO bi=myBxLo(myThid),myBxHi(myThid) - -#ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 -#endif /* ALLOW_AUTODIFF_TAMC */ - -#ifdef ALLOW_AUTODIFF_TAMC -CADJ STORE EmPmR(:,:,bi,bj) = comlev1_bibj, key=ikey, kind = isbyte -#ifdef EXACT_CONSERV -CADJ STORE PmEpR(:,:,bi,bj) = comlev1_bibj, key=ikey, kind = isbyte -#endif -#endif /* ALLOW_AUTODIFF_TAMC */ - -C-- Surface Fluxes : - DO j = jMin, jMax - DO i = iMin, iMax - -C Zonal wind stress fu: - surfaceForcingU(i,j,bi,bj) = fu(i,j,bi,bj)*mass2rUnit -C Meridional wind stress fv: - surfaceForcingV(i,j,bi,bj) = fv(i,j,bi,bj)*mass2rUnit -C Net heat flux Qnet: - surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj) - & - ( Qnet(i,j,bi,bj) -#ifdef SHORTWAVE_HEATING - & -Qsw(i,j,bi,bj) -#endif -#ifdef ALLOW_HFLUXM_CONTROL - & +Qnetm(i,j,bi,bj) -#endif - & ) *recip_Cp*mass2rUnit -C Net Salt Flux : - surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) - & -saltFlux(i,j,bi,bj)*mass2rUnit - - ENDDO - ENDDO - -#ifdef ALLOW_SALT_PLUME -C saltPlume is the amount of salt rejected by ice while freezing; -C it is here subtracted from surfaceForcingS and will be redistributed -C to multiple vertical levels later on as per Duffy et al. (GRL 1999) -C-- for the case of SALT_PLUME_VOLUME, need to call this S/R right -C-- before kpp in do_oceanic_phys.F due to recent moved of -C-- external_forcing_surf.F outside bi,bj loop. -#ifndef SALT_PLUME_VOLUME - IF ( useSALT_PLUME ) THEN - CALL SALT_PLUME_FORCING_SURF( - I bi, bj, iMin, iMax, jMin, jMax, - I myTime, myIter, myThid ) - ENDIF -#endif /* SALT_PLUME_VOLUME */ -#endif /* ALLOW_SALT_PLUME */ - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| -C-- Fresh-water flux - -C- Apply mask on Fresh-Water flux (if useRealFreshWaterFlux) -C <== removed: maskInC is applied directly in S/R SOLVE_FOR_PRESSURE - -#ifdef EXACT_CONSERV - IF ( (nonlinFreeSurf.GT.0 .OR. usingPCoords) - & .AND. useRealFreshWaterFlux ) THEN - -C-- NonLin_FrSurf and RealFreshWaterFlux : PmEpR effectively changes -C the water column height ; temp., salt, (tracer) flux associated -C with this input/output of water is added here to the surface tendency. - - IF (temp_EvPrRn.NE.UNSET_RL) THEN - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj) - & + PmEpR(i,j,bi,bj) - & *( temp_EvPrRn - theta(i,j,ks,bi,bj) ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - - IF (salt_EvPrRn.NE.UNSET_RL) THEN - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) - & + PmEpR(i,j,bi,bj) - & *( salt_EvPrRn - salt(i,j,ks,bi,bj) ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - ELSE -#else /* EXACT_CONSERV */ - IF (.TRUE.) THEN -#endif /* EXACT_CONSERV */ - -C-- EmPmR does not really affect the water column height (for tracer budget) -C and is converted to a salt tendency. - - IF (convertFW2Salt .EQ. -1.) THEN -C- use local surface tracer field to calculate forcing term: - - IF (temp_EvPrRn.NE.UNSET_RL) THEN -C account for Rain/Evap heat content (temp_EvPrRn) using local SST - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj) - & + EmPmR(i,j,bi,bj) - & *( theta(i,j,ks,bi,bj) - temp_EvPrRn ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - IF (salt_EvPrRn.NE.UNSET_RL) THEN -C converts EmPmR to salinity tendency using surface local salinity - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) - & + EmPmR(i,j,bi,bj) - & *( salt(i,j,ks,bi,bj) - salt_EvPrRn ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - - ELSE -C- use uniform tracer value to calculate forcing term: - - IF (temp_EvPrRn.NE.UNSET_RL) THEN -C account for Rain/Evap heat content (temp_EvPrRn) assuming uniform SST (=tRef) - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingT(i,j,bi,bj) = surfaceForcingT(i,j,bi,bj) - & + EmPmR(i,j,bi,bj) - & *( tRef(ks) - temp_EvPrRn ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - IF (salt_EvPrRn.NE.UNSET_RL) THEN -C converts EmPmR to virtual salt flux using uniform salinity (default=35) - DO j = jMin, jMax - DO i = iMin, iMax - surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) - & + EmPmR(i,j,bi,bj) - & *( convertFW2Salt - salt_EvPrRn ) - & *mass2rUnit - ENDDO - ENDDO - ENDIF - -C- end local-surface-tracer / uniform-value distinction - ENDIF - - ENDIF - -C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| - -#ifdef ATMOSPHERIC_LOADING -C-- Atmospheric surface Pressure loading : added to phi0surf when using Z-coord; -C Not yet implemented for Ocean in P: would need to be applied to the other end -C of the column, as a vertical velocity (omega); (meaningless for Atmos in P). -C- Note: -C Using P-coord., a hack (now directly applied from S/R INI_FORCING) -C is sometime used to read phi0surf from a file (pLoadFile) instead -C of computing it from bathymetry & density ref. profile. - - IF ( usingZCoords ) THEN -C The true atmospheric P-loading is not yet implemented for P-coord -C (requires time varying dP(Nr) like dP(k-bottom) with NonLin FS). - IF ( useRealFreshWaterFlux ) THEN - DO j = jMin, jMax - DO i = iMin, iMax - phi0surf(i,j,bi,bj) = ( pLoad(i,j,bi,bj) - & +sIceLoad(i,j,bi,bj)*gravity - & )*recip_rhoConst - ENDDO - ENDDO - ELSE - DO j = jMin, jMax - DO i = iMin, iMax - phi0surf(i,j,bi,bj) = pLoad(i,j,bi,bj)*recip_rhoConst - ENDDO - ENDDO - ENDIF -c ELSEIF ( usingPCoords ) THEN -C-- This is a hack used to read phi0surf from a file (pLoadFile) -C instead of computing it from bathymetry & density ref. profile. -C ==> now done only once, in S/R INI_FORCING -c DO j = jMin, jMax -c DO i = iMin, iMax -c phi0surf(i,j,bi,bj) = pLoad(i,j,bi,bj) -c ENDDO -c ENDDO - ENDIF -#endif /* ATMOSPHERIC_LOADING */ - -#ifdef ALLOW_SHELFICE - IF ( useSHELFICE) THEN - CALL SHELFICE_FORCING_SURF( - I bi, bj, iMin, iMax, jMin, jMax, - I myTime, myIter, myThid ) - ENDIF -#endif /* ALLOW_SHELFICE */ - -C-- end bi,bj loops. - ENDDO - ENDDO - - RETURN - END diff --git a/verification/tutorial_global_oce_optim/code_ad/ini_ffields.F b/verification/tutorial_global_oce_optim/code_ad/ini_ffields.F deleted file mode 100644 index bfbd1c993e..0000000000 --- a/verification/tutorial_global_oce_optim/code_ad/ini_ffields.F +++ /dev/null @@ -1,151 +0,0 @@ -#include "PACKAGES_CONFIG.h" -#include "CPP_OPTIONS.h" -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif - -CBOP -C !ROUTINE: INI_FFIELDS -C !INTERFACE: - SUBROUTINE INI_FFIELDS( myThid ) - -C !DESCRIPTION: \bv -C *==========================================================* -C | SUBROUTINE INI_FFIELDS -C | o Initialise to zero FFLIEDS.h arrays -C *==========================================================* -C | Sets all forcing fields to zero. -C *==========================================================* -C \ev - -C !USES: - IMPLICIT NONE -C === Global variables === -#include "SIZE.h" -#include "EEPARAMS.h" -#include "PARAMS.h" -#include "FFIELDS.h" - -C !INPUT/OUTPUT PARAMETERS: -C == Routine arguments == -C myThid :: my Thread Id number - INTEGER myThid - -C !LOCAL VARIABLES: -C == Local variables == -C bi,bj :: Tile indices -C i, j, k :: Loop counters - INTEGER bi, bj - INTEGER i, j, k -CEOP - -C-- Initialise all arrays in common blocks - DO bj = myByLo(myThid), myByHi(myThid) - DO bi = myBxLo(myThid), myBxHi(myThid) - -C- 2-D forcing fields - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - fu (i,j,bi,bj) = 0. _d 0 - fv (i,j,bi,bj) = 0. _d 0 - Qnet (i,j,bi,bj) = 0. _d 0 - Qsw (i,j,bi,bj) = 0. _d 0 - EmPmR (i,j,bi,bj) = 0. _d 0 - saltFlux (i,j,bi,bj) = 0. _d 0 - SST (i,j,bi,bj) = 0. _d 0 - SSS (i,j,bi,bj) = 0. _d 0 - phiTide2d (i,j,bi,bj) = 0. _d 0 - pLoad (i,j,bi,bj) = 0. _d 0 - sIceLoad (i,j,bi,bj) = 0. _d 0 -#ifdef ALLOW_GEOTHERMAL_FLUX - geothermalFlux (i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_HFLUXM_CONTROL - Qnetm (i,j,bi,bj) = 0. _d 0 -#endif -#ifndef EXCLUDE_FFIELDS_LOAD -C- Time reccord loaded from file: - taux0 (i,j,bi,bj) = 0. _d 0 - taux1 (i,j,bi,bj) = 0. _d 0 - tauy0 (i,j,bi,bj) = 0. _d 0 - tauy1 (i,j,bi,bj) = 0. _d 0 - Qnet0 (i,j,bi,bj) = 0. _d 0 - Qnet1 (i,j,bi,bj) = 0. _d 0 - EmPmR0 (i,j,bi,bj) = 0. _d 0 - EmPmR1 (i,j,bi,bj) = 0. _d 0 - saltFlux0 (i,j,bi,bj) = 0. _d 0 - saltFlux1 (i,j,bi,bj) = 0. _d 0 - SST0 (i,j,bi,bj) = 0. _d 0 - SST1 (i,j,bi,bj) = 0. _d 0 - SSS0 (i,j,bi,bj) = 0. _d 0 - SSS1 (i,j,bi,bj) = 0. _d 0 -#ifdef SHORTWAVE_HEATING - Qsw0 (i,j,bi,bj) = 0. _d 0 - Qsw1 (i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ALLOW_GEOTHERMAL_FLUX - geothFlux0 (i,j,bi,bj) = 0. _d 0 - geothFlux1 (i,j,bi,bj) = 0. _d 0 -#endif -#ifdef ATMOSPHERIC_LOADING - pLoad0 (i,j,bi,bj) = 0. _d 0 - pLoad1 (i,j,bi,bj) = 0. _d 0 -#endif -#endif /* EXCLUDE_FFIELDS_LOAD */ - ENDDO - ENDDO -#ifndef EXCLUDE_FFIELDS_LOAD - loadedRec(bi,bj) = 0 -#endif /* EXCLUDE_FFIELDS_LOAD */ - -C- 3-D forcing fields - DO k=1,Nr -#ifdef ALLOW_ADDFLUID - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - addMass(i,j,k,bi,bj) = 0. _d 0 - ENDDO - ENDDO -#endif /* ALLOW_ADDFLUID */ -#ifdef ALLOW_FRICTION_HEATING - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - frictionHeating(i,j,k,bi,bj) = 0. _d 0 - ENDDO - ENDDO -#endif /* ALLOW_FRICTION_HEATING */ -#ifdef ALLOW_EDDYPSI - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - eddyPsiX (i,j,k,bi,bj) = 0. _d 0 - eddyPsiY (i,j,k,bi,bj) = 0. _d 0 - tauxEddy (i,j,k,bi,bj) = 0. _d 0 - tauyEddy (i,j,k,bi,bj) = 0. _d 0 - uEulerMean(i,j,k,bi,bj) = 0. _d 0 - vEulerMean(i,j,k,bi,bj) = 0. _d 0 - ENDDO - ENDDO -#endif /* ALLOW_EDDYPSI */ - ENDDO - -C- Intermediate surface forcing arrays - DO j=1-OLy,sNy+OLy - DO i=1-OLx,sNx+OLx - surfaceForcingU (i,j,bi,bj) = 0. _d 0 - surfaceForcingV (i,j,bi,bj) = 0. _d 0 - surfaceForcingT (i,j,bi,bj) = 0. _d 0 - surfaceForcingS (i,j,bi,bj) = 0. _d 0 - adjustColdSST_diag (i,j,bi,bj) = 0. _d 0 - lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0 - lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0 - botDragU (i,j,bi,bj) = 0. _d 0 - botDragV (i,j,bi,bj) = 0. _d 0 - ENDDO - ENDDO - -C-- end bi,bj loops - ENDDO - ENDDO - - RETURN - END diff --git a/verification/tutorial_global_oce_optim/code_ad/tamc.h b/verification/tutorial_global_oce_optim/code_ad/tamc.h index 4be51ae6f4..bd03ac4368 100644 --- a/verification/tutorial_global_oce_optim/code_ad/tamc.h +++ b/verification/tutorial_global_oce_optim/code_ad/tamc.h @@ -1,127 +1,95 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 30 ) - integer nchklev_2 - parameter( nchklev_2 = 5 ) -c parameter( nchklev_2 = 150 ) - integer nchklev_3 - parameter( nchklev_3 = 5 ) -c parameter( nchklev_3 = 150 ) +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 30 ) + INTEGER nchklev_2 + PARAMETER( nchklev_2 = 5 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 5 ) +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) +#endif -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers #ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey, iptrkey - -c ================================================================ -c END OF HEADER TAMC -c ================================================================ - + PARAMETER( maxcube = 1 ) + +#ifdef ALLOW_CG2D_NSA +C Parameter that is needed for the tape complev_cg2d_iter +C cannot be smaller than the allowed number of iterations in cg2d +C (numItersMax >= cg2dMaxIters in data-file) + INTEGER numItersMax + PARAMETER ( numItersMax = 100 ) +#endif +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/tutorial_global_oce_optim/code_oad/AUTODIFF_OPTIONS.h b/verification/tutorial_global_oce_optim/code_oad/AUTODIFF_OPTIONS.h index 034193a30c..af5b15ecf7 100644 --- a/verification/tutorial_global_oce_optim/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,13 +48,34 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer -#undef AUTODIFF_PTRACERS_SPLIT_FILES +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/verification/tutorial_global_oce_optim/code_oad/CPP_OPTIONS.h b/verification/tutorial_global_oce_optim/code_oad/CPP_OPTIONS.h index 06e43d9628..4411d66f56 100644 --- a/verification/tutorial_global_oce_optim/code_oad/CPP_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_oad/CPP_OPTIONS.h @@ -53,11 +53,20 @@ C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + C-- Vertical mixing code options: -C o Include/exclude call to S/R CONVECT +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT #define INCLUDE_CONVECT_CALL +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over +#undef INCLUDE_CONVECT_INI_CALL + C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL @@ -73,6 +82,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #define EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +97,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation @@ -93,6 +109,9 @@ C that ensures that d/dt(eta) is exactly equal to - Div.Transport C o Allow the use of Non-Linear Free-Surface formulation C this implies that grid-cell thickness (hFactors) varies with time #undef NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate +c#define DISABLE_RSTAR_CODE +c#define DISABLE_SIGMA_CODE C o Include/exclude nonHydrostatic code #undef ALLOW_NONHYDROSTATIC @@ -102,7 +121,7 @@ C o Include/exclude GM-like eddy stress in momentum code C-- Algorithm options: -C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver #undef ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver @@ -116,6 +135,29 @@ C The following one suitable for AD but does not vectorize C-- Retired code options: +C o ALLOW isotropic scaling of harmonic and bi-harmonic terms when +C using an locally isotropic spherical grid with (dlambda) x (dphi*cos(phi)) +C *only for use on a lat-lon grid* +C Setting this flag here affects both momentum and tracer equation unless +C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). +C The definition of the flag is commented to avoid interference with +C such other header files. +C The preferred method is specifying a value for viscAhGrid or viscA4Grid +C in data which is then automatically scaled by the grid size; +C the old method of specifying viscAh/viscA4 and this flag is provided +C for completeness only (and for use with the adjoint). +c#define ISOTROPIC_COS_SCALING + +C o This flag selects the form of COSINE(lat) scaling of bi-harmonic term. +C *only for use on a lat-lon grid* +C Has no effect if ISOTROPIC_COS_SCALING is undefined. +C Has no effect on vector invariant momentum equations. +C Setting this flag here affects both momentum and tracer equation unless +C it is set/unset again in other header fields (e.g., GAD_OPTIONS.h). +C The definition of the flag is commented to avoid interference with +C such other header files. +c#define COSINEMETH_III + C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO C is still useful with, e.g., single-domain curvilinear configurations. diff --git a/verification/tutorial_global_oce_optim/code_oad/CTRL_OPTIONS.h b/verification/tutorial_global_oce_optim/code_oad/CTRL_OPTIONS.h index 87f89e2d4a..73527d41bc 100644 --- a/verification/tutorial_global_oce_optim/code_oad/CTRL_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_oad/CTRL_OPTIONS.h @@ -26,15 +26,19 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED +C o Re-activate deprecated codes in pkg/ecco & pkg/ctrl (but not recommended) +C and since pkg/ctrl can be used without pkg/ecco, better to have it here +#undef ECCO_CTRL_DEPRECATED #undef EXCLUDE_CTRL_PACK -#define ALLOW_NONDIMENSIONAL_CONTROL_IO +#undef ALLOW_NONDIMENSIONAL_CONTROL_IO +#undef ALLOW_PACKUNPACK_METHOD2 C >>> Initial values. #undef ALLOW_THETA0_CONTROL #undef ALLOW_SALT0_CONTROL +#undef ALLOW_UVEL0_CONTROL +#undef ALLOW_VVEL0_CONTROL #undef ALLOW_TR10_CONTROL #undef ALLOW_TAUU0_CONTROL #undef ALLOW_TAUV0_CONTROL @@ -64,11 +68,12 @@ C >>> Other Control. #undef ALLOW_KAPREDI_CONTROL #undef ALLOW_BOTTOMDRAG_CONTROL -#define ALLOW_HFLUXM_CONTROL -c#define ALLOW_ECCO_OPTIMIZATION +C >>> Backward compatibility option (before checkpoint 65p) +#undef ALLOW_KAPGM_CONTROL_OLD +#undef ALLOW_KAPREDI_CONTROL_OLD C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR2D_CONTROL #undef ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL @@ -76,6 +81,12 @@ C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions #undef ALLOW_ROTATE_UV_CONTROLS +C o Originally the first two time-reccords of control +C variable tau u and tau v were skipped. +C The CTRL_SKIP_FIRST_TWO_ATM_REC_ALL option extends this +C to the other the time variable atmospheric controls. +#undef CTRL_SKIP_FIRST_TWO_ATM_REC_ALL + C o use pkg/smooth correlation operator (incl. smoother) for 2D controls (Weaver, Courtier 01) C This CPP option just sets the default for ctrlSmoothCorrel2D to .TRUE. #undef ALLOW_SMOOTH_CORREL2D diff --git a/verification/tutorial_global_oce_optim/code_oad/FFIELDS.h b/verification/tutorial_global_oce_optim/code_oad/FFIELDS.h index 06150bd706..0e1d83c367 100644 --- a/verification/tutorial_global_oce_optim/code_oad/FFIELDS.h +++ b/verification/tutorial_global_oce_optim/code_oad/FFIELDS.h @@ -35,11 +35,9 @@ C NOTE: for backward compatibility EmPmRfile is specified in C m/s when using external_fields_load.F. It is converted C to kg/m2/s by multiplying by rhoConstFresh. C -C saltFlux :: Net upward salt flux in psu.kg/m^2/s +C saltFlux :: Net upward salt flux in g/kg.kg/m^2/s = g/m^2/s C flux of Salt taken out of the ocean per time unit (second). -C Note: a) only used when salty sea-ice forms or melts. -C b) units: when salinity (unit= psu) is expressed -C in g/kg, saltFlux unit becomes g/m^2/s. +C Note: only used when salty sea-ice forms or melts. C > 0 for decrease in SSS. C Southwest C-grid tracer point C @@ -58,19 +56,20 @@ C C SST :: Sea surface temperature in degrees C for relaxation C Southwest C-grid tracer point C -C SSS :: Sea surface salinity in psu for relaxation +C SSS :: Sea surface salinity in g/kg for relaxation C Southwest C-grid tracer point C -C lambdaThetaClimRelax :: Inverse time scale for relaxation ( 1/s ). +C lambdaThetaClimRelax :: Inverse time scale for SST relaxation ( 1/s ). C -C lambdaSaltClimRelax :: Inverse time scale for relaxation ( 1/s ). +C lambdaSaltClimRelax :: Inverse time scale for SSS relaxation ( 1/s ). C phiTide2d :: vertically uniform (2d-map), time-dependent geopotential C anomaly (e.g., tidal forcing); Units are m^2/s^2 -C pLoad :: for the ocean: atmospheric pressure at z=eta +C pLoad :: for the ocean: atmospheric pressure anomaly (relative to +C "surf_pRef") at z=eta C Units are Pa=N/m^2 -C for the atmosphere: geopotential of the orography -C Units are meters (converted) +C for the atmosphere (hack): geopotential anomaly of the orography +C Units are m^2/s^2 C sIceLoad :: sea-ice loading, expressed in Mass of ice+snow / area unit C Units are kg/m^2 C Note: only used with Sea-Ice & RealFreshWater formulation @@ -128,10 +127,11 @@ C (global mean on the order 0.09 - 0.1 W/m^2) COMMON /FFIELDS_geothermal/ geothermalFlux _RS geothermalFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif - -#ifdef ALLOW_HFLUXM_CONTROL - COMMON /Mean_qnet/ Qnetm - _RS Qnetm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) +#ifdef ALLOW_BALANCE_FLUXES +C weight2BalanceFlx :: weight used for applying weighted correction +C to global-mean surf. flux imbalance ; no-units + COMMON /FFIELDS_W2BALANCE/ weight2BalanceFlx + _RS weight2BalanceFlx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) #endif C- jmc: commented out until corresponding (ghost-like) code apparition @@ -226,9 +226,9 @@ C -> usage in gU: gU = gU + surfaceForcingU/drF [m/s^2] C surfaceForcingV units are r_unit.m/s^2 (=m^2/s^-2 if r=z) C -> usage in gU: gV = gV + surfaceForcingV/drF [m/s^2] C -C surfaceForcingS units are r_unit.psu/s (=psu.m/s if r=z) +C surfaceForcingS units are r_unit.g/kg/s (=g/kg.m/s if r=z) C - EmPmR * S_surf plus salinity relaxation*drF(1) -C -> usage in gS: gS = gS + surfaceForcingS/drF [psu/s] +C -> usage in gS: gS = gS + surfaceForcingS/drF [g/kg/s] C C surfaceForcingT units are r_unit.Kelvin/s (=Kelvin.m/s if r=z) C - Qnet (+Qsw) plus temp. relaxation*drF(1) @@ -268,3 +268,16 @@ C Units are N/m^2 ; > 0 increase vVel @ bottom _RS botDragV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +C- Extra mean heat flux field specific to this experiment + COMMON /Mean_qnet/ Qnetm + _RS Qnetm (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + +c #include "../code_ad/cost_local.h" +C- Content of this experiment specific header file above is added here: +C Define some local weights specific to this experiment +C whfluxm :: weight for heat flux +C wtheta :: dummy weight for temperature + COMMON /COST_LOCAL_WEIGHTS/ whfluxm, wtheta + _RL whfluxm(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) + _RL wtheta ( Nr,nSx,nSy ) diff --git a/verification/tutorial_global_oce_optim/code_oad/GMREDI_OPTIONS.h b/verification/tutorial_global_oce_optim/code_oad/GMREDI_OPTIONS.h index c55c75aa89..85a593177f 100644 --- a/verification/tutorial_global_oce_optim/code_oad/GMREDI_OPTIONS.h +++ b/verification/tutorial_global_oce_optim/code_oad/GMREDI_OPTIONS.h @@ -24,6 +24,11 @@ C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi C (which depends on tapering scheme) #undef OLD_VISBECK_CALC +C This allows the Bates et al formulation to calculate the +C bolus transport and K for Redi +#undef GM_BATES_K3D +#undef GM_BATES_PASSIVE + C This allows the leading diagonal (top two rows) to be non-unity C (a feature required when tapering adiabatically). #define GM_NON_UNITY_DIAGONAL @@ -39,6 +44,9 @@ C instead of the Skew-Flux form (=default) C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport #undef GM_BOLUS_BVP +C Allow QG Leith variable viscosity to be added to GMRedi coefficient +#undef ALLOW_GM_LEITH_QG + #endif /* ALLOW_GMREDI */ #endif /* GMREDI_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_optim/code_oad/OPENAD_OPTIONS.h b/verification/tutorial_global_oce_optim/code_oad/OPENAD_OPTIONS.h new file mode 100644 index 0000000000..0104535737 --- /dev/null +++ b/verification/tutorial_global_oce_optim/code_oad/OPENAD_OPTIONS.h @@ -0,0 +1,25 @@ +CBOP +C !ROUTINE: OPENAD_OPTIONS.h +C !INTERFACE: +C #include "OPENAD_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for OpenAD (openad) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef OPENAD_OPTIONS_H +#define OPENAD_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_OPENAD + +#define ALLOW_OPENAD_ACTIVE_READ_XY +#undef ALLOW_OPENAD_ACTIVE_READ_XYZ +#undef ALLOW_OPENAD_ACTIVE_WRITE + +#endif /* ALLOW_OPENAD */ +#endif /* OPENAD_OPTIONS_H */ diff --git a/verification/tutorial_global_oce_optim/code_oad/SIZE.h b/verification/tutorial_global_oce_optim/code_oad/SIZE.h index 76ec7c8565..8227f4a5c2 100644 --- a/verification/tutorial_global_oce_optim/code_oad/SIZE.h +++ b/verification/tutorial_global_oce_optim/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_global_oce_optim/code_oad/SIZE.h_mpi b/verification/tutorial_global_oce_optim/code_oad/SIZE.h_mpi index 75887cecf2..febb7e4d52 100644 --- a/verification/tutorial_global_oce_optim/code_oad/SIZE.h_mpi +++ b/verification/tutorial_global_oce_optim/code_oad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_global_oce_optim/code_oad/cb2mFiles b/verification/tutorial_global_oce_optim/code_oad/cb2mFiles index 186fdd6625..8d4b65593a 100644 --- a/verification/tutorial_global_oce_optim/code_oad/cb2mFiles +++ b/verification/tutorial_global_oce_optim/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +25,7 @@ GLOBAL_MAX GLOBAL_SUM GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -37,5 +36,3 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc diff --git a/verification/tutorial_global_oce_optim/code_oad/cost_hflux.F b/verification/tutorial_global_oce_optim/code_oad/cost_hflux.F index f0e82222ef..372aad30ba 100644 --- a/verification/tutorial_global_oce_optim/code_oad/cost_hflux.F +++ b/verification/tutorial_global_oce_optim/code_oad/cost_hflux.F @@ -3,45 +3,62 @@ # include "CTRL_OPTIONS.h" #endif +CBOP +C !ROUTINE: COST_HFLUX +C !INTERFACE: SUBROUTINE COST_HFLUX( myThid ) +C !DESCRIPTION: \bv C *==========================================================* C | SUBROUTINE COST_HFLUX C | o the subroutine computes the cost function relative to -C | surface hflux optimization +C | mean surface hflux optimization as a simple example. C *==========================================================* - +C \ev +C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" -#include "DYNVARS.h" #include "cost.h" -#include "ctrl_weights.h" -#ifdef ALLOW_HFLUXM_CONTROL -#include "FFIELDS.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +# include "CTRL_SIZE.h" +# include "CTRL_GENARR.h" #endif -C ======== Routine arguments ====================== +C !INPUT/OUTPUT PARAMETERS: C myThid - Thread number for this instance of the routine. - integer myThid + INTEGER myThid -#if (defined (ALLOW_COST_HFLUXM) && defined (ALLOW_HFLUXM_CONTROL)) -C ========= Local variables ========================= - integer i, j - integer bi, bj - _RL locfc,tmpC +#ifdef ALLOW_COST_HFLUXM +C !LOCAL VARIABLES: + INTEGER i, j + INTEGER bi, bj + _RL locfc, tmpC +#ifndef ALLOW_OPENAD + INTEGER iarr +#endif +CEOP +#ifndef ALLOW_OPENAD +C iarr = 1 is set in data.ctrl (xx_gentim2d_file(1) = 'xx_qnet'). + iarr = 1 +C By default xx_gentim2d_period(1)=0, so that control parameter +C xx_gentim2d(:,:,:,:,1) is the mean heat flux perturbation. Here we +C penalize deviations from the first guess = 0. +#endif tmpC = 0. _d 0 DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - do j=1,sNy - do i=1,sNx - tmpC = tmpC + maskC(i,j,1,bi,bj) - ENDDO + DO j=1,sNy + DO i=1,sNx + tmpC = tmpC + maskC(i,j,1,bi,bj) ENDDO + ENDDO ENDDO ENDDO _GLOBAL_SUM_RL( tmpC , myThid ) @@ -50,23 +67,27 @@ SUBROUTINE COST_HFLUX( myThid ) DO bj=myByLo(myThid),myByHi(myThid) DO bi=myBxLo(myThid),myBxHi(myThid) - locfc = 0. _d 0 - DO j=1,sNy - DO i=1,sNx - locfc = locfc + tmpC*maskC(i,j,1,bi,bj)* - & whfluxm(i,j,bi,bj)* - & ( + locfc = 0. _d 0 + DO j=1,sNy + DO i=1,sNx + locfc = locfc + tmpC*maskC(i,j,1,bi,bj)* + & whfluxm(i,j,bi,bj)* + & ( +#ifdef ALLOW_OPENAD & Qnetm(i,j,bi,bj) - & )**2 - ENDDO +#else + & xx_gentim2d(i,j,bi,bj,iarr) +#endif + & )**2 ENDDO + ENDDO - objf_hflux_tut(bi,bj) = locfc -c print*,'objf_hflux_tut =',locfc + objf_hflux_tut(bi,bj) = locfc +c print*,'objf_hflux_tut =',locfc ENDDO ENDDO -#endif /* ALLOW_COST_HFLUXM & ALLOW_HFLUXM_CONTROL */ +#endif /* ALLOW_COST_HFLUXM */ RETURN END diff --git a/verification/tutorial_global_oce_optim/code_oad/cost_temp.F b/verification/tutorial_global_oce_optim/code_oad/cost_temp.F index 21558bb472..0cb4751f0f 100644 --- a/verification/tutorial_global_oce_optim/code_oad/cost_temp.F +++ b/verification/tutorial_global_oce_optim/code_oad/cost_temp.F @@ -3,34 +3,43 @@ c# include "CTRL_OPTIONS.h" c#endif +CBOP +C !ROUTINE: COST_TEMP +C !INTERFACE: SUBROUTINE COST_TEMP( myThid ) C *==========================================================* C | SUBROUTINE COST_TEMP C | o the subroutine computes the sum of the squared errors C | relatively to the Levitus climatology C *==========================================================* - +C +C \ev +C !USES: IMPLICIT NONE - C == Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" #include "cost.h" -#include "ctrl_weights.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +#endif -C ======== Routine arguments ====================== +C !INPUT/OUTPUT PARAMETERS: C myThid - Thread number for this instance of the routine. INTEGER myThid #ifdef ALLOW_COST_TEMP -C ========= Local variables ========================= +C !LOCAL VARIABLES: INTEGER i, j, k INTEGER bi, bj INTEGER Nk _RL locfc,tmp _RL thetalev(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +CEOP Nk = 2 C Read annual mean Levitus temperature diff --git a/verification/tutorial_global_oce_optim/code_oad/cost_weights.F b/verification/tutorial_global_oce_optim/code_oad/cost_weights.F index 84b64cae1b..4f88038431 100644 --- a/verification/tutorial_global_oce_optim/code_oad/cost_weights.F +++ b/verification/tutorial_global_oce_optim/code_oad/cost_weights.F @@ -3,74 +3,63 @@ # include "CTRL_OPTIONS.h" #endif +CBOP +C !ROUTINE: COST_WEIGHTS +C !INTERFACE: SUBROUTINE COST_WEIGHTS( myThid ) - -C ================================================================== -C SUBROUTINE COST_WEIGHTS -C ================================================================== +C !DESCRIPTION: \bv +C *==========================================================* +C | SUBROUTINE COST_WEIGHTS +C | o Set weights used in the cost function +C *==========================================================* C -C o Set weights used in the cost function and in the -C normalization of the sensitivities when ALLOW_NON_DIMENSIONAL - +C \ev +C !USES: IMPLICIT NONE - -C == global variables == +C == Global variables === #include "EEPARAMS.h" #include "SIZE.h" #include "PARAMS.h" #include "GRID.h" +#ifdef ALLOW_OPENAD +# include "FFIELDS.h" +#else +# include "cost_local.h" +#endif -#include "ctrl.h" -#include "ctrl_weights.h" -#include "cost.h" - -C == routine arguments == +C !INPUT/OUTPUT PARAMETERS: INTEGER myThid -C == Functions == +C !FUNCTIONS: INTEGER MDS_RECLEN EXTERNAL MDS_RECLEN -C == local variables == +C !LOCAL VARIABLES: INTEGER bi,bj INTEGER i,j,k - INTEGER itlo,ithi,jtlo,jthi - INTEGER jMin,jMax,iMin,iMax INTEGER iUnit, length_of_rec _RL dummy _RL wti(Nr) REAL*8 tmpwti(Nr) CHARACTER*(MAX_LEN_MBUF) msgBuf - -C == end of interface == - - jtlo = myByLo(myThid) - jthi = myByHi(myThid) - itlo = myBxLo(myThid) - ithi = myBxHi(myThid) - iMin = 1-OLx - iMax = sNx+OLx - jMin = 1-OLy - jMax = sNy+OLy +CEOP C-- Initialize variance (weight) fields. DO k = 1,Nr - wti(k) = 0. _d 0 + wti(k) = 0. _d 0 ENDDO - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = jMin,jMax - DO i = iMin,iMax - whfluxm(i,j,bi,bj)= 0. _d 0 - ENDDO - ENDDO - DO k = 1,Nr - wunit(k,bi,bj) = 1. _d 0 - wtheta(k,bi,bj) = 0. _d 0 - wsalt(k,bi,bj) = 0. _d 0 - ENDDO + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx + whfluxm(i,j,bi,bj)= 0. _d 0 + ENDDO + ENDDO + DO k = 1,Nr + wtheta(k,bi,bj) = 0. _d 0 ENDDO + ENDDO ENDDO C-- Read error information and set up weight matrices. @@ -100,8 +89,8 @@ SUBROUTINE COST_WEIGHTS( myThid ) c print*,'Weights for temperature: wti', (wti(k),k=1,nr) - DO bj = jtlo,jthi - DO bi = itlo,ithi + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) DO k = 1, Nr wtheta(k,bi,bj) = 1. _d 0/wti(k)/wti(k) ENDDO @@ -111,14 +100,14 @@ SUBROUTINE COST_WEIGHTS( myThid ) C-- Then the hflux weights : -#if (defined (ALLOW_COST_HFLUXM) || defined (ALLOW_HFLUXM_CONTROL)) +#ifdef ALLOW_COST_HFLUXM CALL READ_REC_3D_RL( 'Err_hflux.bin', precFloat64, 1, & whfluxm, 1, 0, myThid ) _EXCH_XY_RL(whfluxm , myThid ) - DO bj = jtlo,jthi - DO bi = itlo,ithi - DO j = jMin,jMax - DO i = iMin,iMax + DO bj = myByLo(myThid),myByHi(myThid) + DO bi = myBxLo(myThid),myBxHi(myThid) + DO j = 1-OLy,sNy+OLy + DO i = 1-OLx,sNx+OLx c print*,'Uncertainties for Heat Flux',i,j,whfluxm(i,j,bi,bj) IF (whfluxm(i,j,bi,bj) .NE. 0. _d 0) THEN whfluxm(i,j,bi,bj) = 1. _d 0 /whfluxm(i,j,bi,bj) @@ -133,6 +122,6 @@ SUBROUTINE COST_WEIGHTS( myThid ) #ifdef ALLOW_NONDIMENSIONAL_CONTROL_IO CALL ACTIVE_WRITE_XY('whfluxm',whfluxm,1,0,myThid,dummy) #endif -#endif /* ALLOW_COST_HFLUXM or ALLOW_HFLUXM_CONTROL */ +#endif /* ALLOW_COST_HFLUXM */ RETURN END diff --git a/verification/tutorial_tracer_adjsens/code_ad/ctrl_map_ini_genarr.F b/verification/tutorial_global_oce_optim/code_oad/ctrl_map_ini_genarr.F similarity index 52% rename from verification/tutorial_tracer_adjsens/code_ad/ctrl_map_ini_genarr.F rename to verification/tutorial_global_oce_optim/code_oad/ctrl_map_ini_genarr.F index aa6a0718f0..5c11334c2c 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/ctrl_map_ini_genarr.F +++ b/verification/tutorial_global_oce_optim/code_oad/ctrl_map_ini_genarr.F @@ -12,6 +12,8 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C | control vector to the model state and update the tile halos. C | The control vector is defined in the header file "ctrl.h". C *================================================================= +C | local version for OpenAD exp. tutorial_global_oce_optim +C *================================================================= C \ev C !USES: @@ -22,18 +24,13 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) #include "EEPARAMS.h" #include "PARAMS.h" #include "GRID.h" -#include "DYNVARS.h" +CML#include "DYNVARS.h" #include "FFIELDS.h" #include "CTRL_SIZE.h" #include "ctrl.h" #include "CTRL_GENARR.h" #include "ctrl_dummy.h" #include "optim.h" -#ifdef ALLOW_PTRACERS -# include "PTRACERS_SIZE.h" -c#include "PTRACERS_PARAMS.h" -# include "PTRACERS_FIELDS.h" -#endif C !INPUT/OUTPUT PARAMETERS: C == routine arguments == @@ -45,27 +42,27 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf + INTEGER bi,bj + INTEGER i,j + INTEGER il + INTEGER iarr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + INTEGER k + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif CEOP - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. + doglobalread = .FALSE. + ladinit = .FALSE. fac = 1. _d 0 #ifdef ALLOW_GENARR2D_CONTROL @@ -78,29 +75,40 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr2D - il=ILNBLNK( xx_genarr2d_file(iarr) ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_genarr2d_file(iarr)(1:il),'.',optimcycle - CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr2d_dummy(iarr) ) +C The control variables in this experiment is the mean heat flux. As +C is it constant in time , we can specify it here and add it to qnet +C at the beginning of the integration. DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then -CC - elseif ( iarr. eq. 2 ) then -CC - endif - enddo - enddo + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO ENDDO ENDDO + fnamebase = xx_genarr2d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr2d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + Qnetm(i,j,bi,bj) = Qnetm(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF C-- end iarr loop ENDDO -CC _EXCH_XYZ_RL( theta, myThid ) -CC _EXCH_XYZ_RL( salt, myThid ) + _EXCH_XY_RS( Qnetm, myThid ) #endif /* ALLOW_GENARR2D_CONTROL */ @@ -112,46 +120,44 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) cc--->>> BE SURE WHAT YOU ARE DOING AND CUSTOMIZE <<<--- cc--->>> cc -cc A CONSISTENCY CHECK: FOR THIS CUSTOMIZATION -cc WE ASSUME maxCtrlArr3D <= PTRACERS_num -cc - IF ( maxCtrlArr3D .GT. PTRACERS_num ) THEN - WRITE(msgBuf,'(A)') - & 'CTRL_MAP_INI_GENARR: need maxCtrlArr3D <= PTRACERS_num' - CALL PRINT_ERROR( msgBuf, myThid ) - STOP 'ABNORMAL END: S/R CTRL_MAP_INI_GENARR' - ENDIF C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr3D - il=ILNBLNK( xx_genarr3d_file(iarr) ) - write(fnamegeneric(1:80),'(2a,i10.10)') - & xx_genarr3d_file(iarr)(1:il),'.',optimcycle - CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, - & doglobalread, ladinit, optimcycle, - & myThid, xx_genarr3d_dummy(iarr) ) DO bj=myByLo(myThid), myByHi(myThid) DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax -#ifdef ALLOW_OPENAD - pTracer(i,j,k,bi,bj,iarr) = pTracer(i,j,k,bi,bj,iarr) - & + fac*xx_genarr3d(i,j,k,bi,bj,iarr) - & + fac*tmpfld3d(i,j,k,bi,bj) -#else - pTracer(i,j,k,bi,bj,iarr) = pTracer(i,j,k,bi,bj,iarr) - & + fac*tmpfld3d(i,j,k,bi,bj) -#endif - enddo - enddo - enddo + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO ENDDO ENDDO + fnamebase = xx_genarr3d_file(iarr) + il=ILNBLNK( fnamebase ) + WRITE(fnamegeneric,'(2A,I10.10)') + & fnamebase(1:il),'.',optimcycle + CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, + & doglobalread, ladinit, optimcycle, + & myThid, xx_genarr3d_dummy(iarr) ) + IF ( iarr .EQ. 1 ) THEN +CML DO bj=myByLo(myThid), myByHi(myThid) +CML DO bi=myBxLo(myThid), myBxHi(myThid) +CML DO k = 1,Nr +CML DO j = 1,sNy +CML DO i = 1,sNx +CML theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) +CML & + fac*tmpfld3d(i,j,k,bi,bj) +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO +CML ENDDO +CML CALL EXCH_3D_RL( theta, Nr, myThid ) + ENDIF - CALL EXCH_3D_RL( pTracer(1-OLx,1-OLy,1,1,1,iarr), - & Nr, myThid ) C-- end iarr loop ENDDO diff --git a/verification/tutorial_global_oce_optim/code_oad/external_forcing_surf.F b/verification/tutorial_global_oce_optim/code_oad/external_forcing_surf.F index c69ec20e64..f136805d9c 100644 --- a/verification/tutorial_global_oce_optim/code_oad/external_forcing_surf.F +++ b/verification/tutorial_global_oce_optim/code_oad/external_forcing_surf.F @@ -3,9 +3,6 @@ #ifdef ALLOW_AUTODIFF # include "AUTODIFF_OPTIONS.h" #endif -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif #ifdef ALLOW_SALT_PLUME # include "SALT_PLUME_OPTIONS.h" #endif @@ -35,9 +32,8 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #include "DYNVARS.h" #include "GRID.h" #include "SURFACE.h" -#ifdef ALLOW_AUTODIFF +#ifdef ALLOW_AUTODIFF_TAMC # include "tamc.h" -# include "tamc_keys.h" #endif C !INPUT/OUTPUT PARAMETERS: @@ -60,6 +56,11 @@ SUBROUTINE EXTERNAL_FORCING_SURF( INTEGER bi,bj INTEGER i,j INTEGER ks +#ifdef ALLOW_AUTODIFF_TAMC + INTEGER act1, act2, act3, act4 + INTEGER max1, max2, max3 + INTEGER ikey +#endif _RL recip_Cp #ifdef ALLOW_BALANCE_FLUXES _RS tmpVar(1) @@ -83,14 +84,25 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #ifdef ALLOW_BALANCE_FLUXES C balance fluxes +# ifdef ALLOW_AUTODIFF tmpVar(1) = oneRS - IF ( balanceEmPmR .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, EmPmR, maskInC, maskInC, rA, tmpVar, - & 'EmPmR', myTime, myThid ) +# endif + IF ( selectBalanceEmPmR.GE.1 .AND. + & (.NOT.useSeaice .OR. useThSIce) ) THEN + IF ( selectBalanceEmPmR.EQ.1 ) THEN + tmpVar(1) = oneRS + CALL REMOVE_MEAN_RS( 1, EmPmR, maskInC, maskInC, rA, + & tmpVar, 'EmPmR', myTime, myIter, myThid ) + ELSEIF ( selectBalanceEmPmR.EQ.2 ) THEN + tmpVar(1) = -oneRS + CALL REMOVE_MEAN_RS( 1, EmPmR, weight2BalanceFlx, maskInC, rA, + & tmpVar, 'EmPmR', myTime, myIter, myThid ) + ENDIF ENDIF IF ( balanceQnet .AND. (.NOT.useSeaice .OR. useThSIce) ) THEN - CALL REMOVE_MEAN_RS( 1, Qnet, maskInC, maskInC, rA, tmpVar, - & 'Qnet ', myTime, myThid ) + tmpVar(1) = oneRS + CALL REMOVE_MEAN_RS( 1, Qnet, maskInC, maskInC, rA, + & tmpVar, 'Qnet ', myTime, myIter, myThid ) ENDIF #endif /* ALLOW_BALANCE_FLUXES */ @@ -158,6 +170,9 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #ifdef ALLOW_AUTODIFF_TAMC CADJ STORE surfaceForcingS = comlev1, key = ikey_dynamics, CADJ & kind = isbyte +#ifdef ALLOW_BLING +CADJ STORE EmPmR = comlev1, key = ikey_dynamics, kind = isbyte +#endif #endif IF ( usePTRACERS ) THEN DO bj=myByLo(myThid),myByHi(myThid) @@ -180,16 +195,16 @@ SUBROUTINE EXTERNAL_FORCING_SURF( DO bi=myBxLo(myThid),myBxHi(myThid) #ifdef ALLOW_AUTODIFF_TAMC - act1 = bi - myBxLo(myThid) - max1 = myBxHi(myThid) - myBxLo(myThid) + 1 - act2 = bj - myByLo(myThid) - max2 = myByHi(myThid) - myByLo(myThid) + 1 - act3 = myThid - 1 - max3 = nTx*nTy - act4 = ikey_dynamics - 1 - ikey = (act1 + 1) + act2*max1 - & + act3*max1*max2 - & + act4*max1*max2*max3 + act1 = bi - myBxLo(myThid) + max1 = myBxHi(myThid) - myBxLo(myThid) + 1 + act2 = bj - myByLo(myThid) + max2 = myByHi(myThid) - myByLo(myThid) + 1 + act3 = myThid - 1 + max3 = nTx*nTy + act4 = ikey_dynamics - 1 + ikey = (act1 + 1) + act2*max1 + & + act3*max1*max2 + & + act4*max1*max2*max3 #endif /* ALLOW_AUTODIFF_TAMC */ #ifdef ALLOW_AUTODIFF_TAMC @@ -213,9 +228,8 @@ SUBROUTINE EXTERNAL_FORCING_SURF( #ifdef SHORTWAVE_HEATING & -Qsw(i,j,bi,bj) #endif -#ifdef ALLOW_HFLUXM_CONTROL +C Extra mean heat flux field specific to this experiment & +Qnetm(i,j,bi,bj) -#endif & ) *recip_Cp*mass2rUnit C Net Salt Flux : surfaceForcingS(i,j,bi,bj) = surfaceForcingS(i,j,bi,bj) @@ -360,7 +374,7 @@ SUBROUTINE EXTERNAL_FORCING_SURF( DO j = jMin, jMax DO i = iMin, iMax phi0surf(i,j,bi,bj) = ( pLoad(i,j,bi,bj) - & +sIceLoad(i,j,bi,bj)*gravity + & +sIceLoad(i,j,bi,bj)*gravity*sIceLoadFac & )*recip_rhoConst ENDDO ENDDO diff --git a/verification/tutorial_global_oce_optim/code_oad/ini_ffields.F b/verification/tutorial_global_oce_optim/code_oad/ini_ffields.F index bfbd1c993e..afc94ebdda 100644 --- a/verification/tutorial_global_oce_optim/code_oad/ini_ffields.F +++ b/verification/tutorial_global_oce_optim/code_oad/ini_ffields.F @@ -1,8 +1,4 @@ -#include "PACKAGES_CONFIG.h" #include "CPP_OPTIONS.h" -#ifdef ALLOW_CTRL -# include "CTRL_OPTIONS.h" -#endif CBOP C !ROUTINE: INI_FFIELDS @@ -60,9 +56,8 @@ SUBROUTINE INI_FFIELDS( myThid ) #ifdef ALLOW_GEOTHERMAL_FLUX geothermalFlux (i,j,bi,bj) = 0. _d 0 #endif -#ifdef ALLOW_HFLUXM_CONTROL +C Extra mean heat flux field specific to this experiment Qnetm (i,j,bi,bj) = 0. _d 0 -#endif #ifndef EXCLUDE_FFIELDS_LOAD C- Time reccord loaded from file: taux0 (i,j,bi,bj) = 0. _d 0 @@ -138,6 +133,9 @@ SUBROUTINE INI_FFIELDS( myThid ) adjustColdSST_diag (i,j,bi,bj) = 0. _d 0 lambdaThetaClimRelax(i,j,bi,bj) = 0. _d 0 lambdaSaltClimRelax (i,j,bi,bj) = 0. _d 0 +#ifdef ALLOW_BALANCE_FLUXES + weight2BalanceFlx(i,j,bi,bj) = 0. _d 0 +#endif botDragU (i,j,bi,bj) = 0. _d 0 botDragV (i,j,bi,bj) = 0. _d 0 ENDDO diff --git a/verification/tutorial_global_oce_optim/input_ad/data.autodiff b/verification/tutorial_global_oce_optim/input_ad/data.autodiff index 4585444d65..43e24af392 100644 --- a/verification/tutorial_global_oce_optim/input_ad/data.autodiff +++ b/verification/tutorial_global_oce_optim/input_ad/data.autodiff @@ -1,8 +1,15 @@ # ========================= # pkg AUTODIFF parameters : # ========================= -# inAdExact :: get an exact adjoint (no approximation) (def=.True.) +# inAdExact :: get an exact adjoint (no approximation) (def=.True.) +# viscFacInAd :: parameter to increase part of the viscosity in backward sweep; +# multplies 3D viscosity fields (read from files viscAhDfile and +# viscAhZfile) before they are added to the final viscosity to +# improve stability of backwards sweep. It is commented out, +# because in this experiment the 3D viscosity fields are zero +# (not read) and this parameter has no effect. # &AUTODIFF_PARM01 # inAdExact = .FALSE., +# viscFacInAd = 2., & diff --git a/verification/tutorial_global_oce_optim/input_ad/data.ctrl b/verification/tutorial_global_oce_optim/input_ad/data.ctrl index 1ab9781fd2..c0372c0fbb 100644 --- a/verification/tutorial_global_oce_optim/input_ad/data.ctrl +++ b/verification/tutorial_global_oce_optim/input_ad/data.ctrl @@ -4,7 +4,6 @@ # ECCO controlvariables # ********************* &CTRL_NML - xx_hfluxm_file = 'xx_hfluxm', & # # ********************* @@ -12,4 +11,11 @@ # ********************* &CTRL_PACKNAMES & - +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_gentim2d_file(1) = 'xx_qnet', + xx_gentim2d_weight(1) = 'ones_64b.bin', + & diff --git a/verification/tutorial_global_oce_optim/input_ad/data.grdchk b/verification/tutorial_global_oce_optim/input_ad/data.grdchk index e8957dd819..8d16f76465 100644 --- a/verification/tutorial_global_oce_optim/input_ad/data.grdchk +++ b/verification/tutorial_global_oce_optim/input_ad/data.grdchk @@ -10,5 +10,5 @@ nbeg = 1, nstep = 1, nend = 3, - grdchkvarindex =24, + grdchkvarindex =301, & diff --git a/verification/tutorial_global_oce_optim/input_ad/prepare_run b/verification/tutorial_global_oce_optim/input_ad/prepare_run index 4caa458d8a..2545cd9ab3 100755 --- a/verification/tutorial_global_oce_optim/input_ad/prepare_run +++ b/verification/tutorial_global_oce_optim/input_ad/prepare_run @@ -8,14 +8,38 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/tutorial_global_oce_optim/input_oad/data.ctrl b/verification/tutorial_global_oce_optim/input_oad/data.ctrl index 1ab9781fd2..0fd8cebb34 100644 --- a/verification/tutorial_global_oce_optim/input_oad/data.ctrl +++ b/verification/tutorial_global_oce_optim/input_oad/data.ctrl @@ -4,7 +4,6 @@ # ECCO controlvariables # ********************* &CTRL_NML - xx_hfluxm_file = 'xx_hfluxm', & # # ********************* @@ -12,4 +11,11 @@ # ********************* &CTRL_PACKNAMES & - +# +# ********************* +# names for CTRL_GENARR, CTRL_GENTIM +# ********************* + &CTRL_NML_GENARR + xx_genarr2d_file(1) = 'xx_qnetm', + xx_genarr2d_weight(1) = 'ones_64b.bin', + & diff --git a/verification/tutorial_global_oce_optim/input_oad/data.grdchk b/verification/tutorial_global_oce_optim/input_oad/data.grdchk index e8957dd819..afb0ec5932 100644 --- a/verification/tutorial_global_oce_optim/input_oad/data.grdchk +++ b/verification/tutorial_global_oce_optim/input_oad/data.grdchk @@ -10,5 +10,6 @@ nbeg = 1, nstep = 1, nend = 3, - grdchkvarindex =24, +#grdchkvarindex =24, + grdchkvarindex = 101, & diff --git a/verification/tutorial_global_oce_optim/input_oad/prepare_run b/verification/tutorial_global_oce_optim/input_oad/prepare_run index 4caa458d8a..2545cd9ab3 100755 --- a/verification/tutorial_global_oce_optim/input_oad/prepare_run +++ b/verification/tutorial_global_oce_optim/input_oad/prepare_run @@ -8,14 +8,38 @@ fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/tutorial_global_oce_optim/results/output_adm.txt b/verification/tutorial_global_oce_optim/results/output_adm.txt index 8441d2688d..eface48349 100644 --- a/verification/tutorial_global_oce_optim/results/output_adm.txt +++ b/verification/tutorial_global_oce_optim/results/output_adm.txt @@ -5,10 +5,9 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint63b -(PID.TID 0000.0001) // Build user: jmc -(PID.TID 0000.0001) // Build host: baudelaire -(PID.TID 0000.0001) // Build date: Mon Sep 26 02:52:59 EDT 2011 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Nov 4 02:06:07 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -49,8 +48,10 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ (PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ @@ -63,41 +64,41 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile connectvity table (PID.TID 0000.0001) // ====================================================== -(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000001 -(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000001 -(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000002 -(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000002 -(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000002 -(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000002 -(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000002 -(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000002 -(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000002 -(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000002 -(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000001 -(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000002, bj = 000001 (PID.TID 0000.0001) (PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" @@ -119,7 +120,7 @@ (PID.TID 0000.0001) > diffKrT=3.E-5, (PID.TID 0000.0001) > diffKhS=0., (PID.TID 0000.0001) > diffKrS=3.E-5, -(PID.TID 0000.0001) > rhonil=1035., +(PID.TID 0000.0001) > rhoConst=1035., (PID.TID 0000.0001) > rhoConstFresh=1000., (PID.TID 0000.0001) > eosType = 'JMD95Z', (PID.TID 0000.0001) > ivdc_kappa=100., @@ -185,7 +186,7 @@ (PID.TID 0000.0001) > meridWindFile= 'trenberth_tauy.bin', (PID.TID 0000.0001) > thetaClimFile= 'lev_sst.bin', (PID.TID 0000.0001) > saltClimFile= 'lev_sss.bin', -(PID.TID 0000.0001) > surfQFile= 'ncep_qnet.bin', +(PID.TID 0000.0001) > surfQnetFile= 'ncep_qnet.bin', (PID.TID 0000.0001) ># fresh water flux is turned off, uncomment next line to turn on (PID.TID 0000.0001) ># (not recommened together with surface salinity restoring) (PID.TID 0000.0001) ># EmPmRFile= 'ncep_emp.bin', @@ -219,6 +220,27 @@ (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled and used ( taveFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) (PID.TID 0000.0001) GM_READPARMS: opening data.gmredi (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi (PID.TID 0000.0001) // ======================================================= @@ -258,6 +280,74 @@ (PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># viscFacInAd :: parameter to increase part of the viscosity in backward sweep; +(PID.TID 0000.0001) ># multplies 3D viscosity fields (read from files viscAhDfile and +(PID.TID 0000.0001) ># viscAhZfile) before they are added to the final viscosity to +(PID.TID 0000.0001) ># improve stability of backwards sweep. It is commented out, +(PID.TID 0000.0001) ># because in this experiment the 3D viscosity fields are zero +(PID.TID 0000.0001) ># (not read) and this parameter has no effect. +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) ># viscFacInAd = 2., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) (PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim (PID.TID 0000.0001) // ======================================================= @@ -288,7 +378,6 @@ (PID.TID 0000.0001) ># ECCO controlvariables (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_NML -(PID.TID 0000.0001) > xx_hfluxm_file = 'xx_hfluxm', (PID.TID 0000.0001) > / (PID.TID 0000.0001) ># (PID.TID 0000.0001) ># ********************* @@ -296,7 +385,14 @@ (PID.TID 0000.0001) ># ********************* (PID.TID 0000.0001) > &CTRL_PACKNAMES (PID.TID 0000.0001) > / -(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_gentim2d_file(1) = 'xx_qnet', +(PID.TID 0000.0001) > xx_gentim2d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl (PID.TID 0000.0001) COST_READPARMS: opening data.cost @@ -336,7 +432,7 @@ (PID.TID 0000.0001) > nbeg = 1, (PID.TID 0000.0001) > nstep = 1, (PID.TID 0000.0001) > nend = 3, -(PID.TID 0000.0001) > grdchkvarindex =24, +(PID.TID 0000.0001) > grdchkvarindex =301, (PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk @@ -345,6 +441,7 @@ (PID.TID 0000.0001) // Gradient check configuration >>> START <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 301 (PID.TID 0000.0001) eps: 0.100E+00 (PID.TID 0000.0001) First location: 1 (PID.TID 0000.0001) Last location: 3 @@ -501,7 +598,7 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 -(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 @@ -538,6 +635,346 @@ (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 (PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 (PID.TID 0000.0001) ctrl-wet 7: flux 17302 (PID.TID 0000.0001) ctrl-wet 8: atmos 17302 (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- @@ -561,8 +998,38 @@ (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- (PID.TID 0000.0001) ctrl-wet ------------------------------------------------- -(PID.TID 0000.0001) ctrl_init: no. of control variables: 1 -(PID.TID 0000.0001) ctrl_init: control vector length: 2315 +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 2315 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 13500 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 008651 007584 008016 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 010278 009360 009834 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 003504 003232 003049 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 006876 006460 006425 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) ctrlUseGen = T /* use generic controls */ +(PID.TID 0000.0001) -> time variable 2D control, gentim2d no. 1 is in use +(PID.TID 0000.0001) file = xx_qnet +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0301 +(PID.TID 0000.0001) ncvarindex = 0401 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) (PID.TID 0000.0001) %MON fCori_max = 1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_min = -1.4265546244797E-04 (PID.TID 0000.0001) %MON fCori_mean = 4.7801269115805E-19 @@ -601,54 +1068,30 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 15 @ 2.000000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 15 @ 3.500000000000000E+01 /* K = 1: 15 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAh = /* Lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 5.000000000000000E+05 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhMax = /* Maximum lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhGrid = /* Grid dependent lateral eddy viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useFullLeith = /* Use Full Form of Leith Viscosity on/off flag*/ +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator flag*/ +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAreaViscLength = /* Use area for visc length instead of geom. mean*/ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leith = /* Leith harmonic visc. factor (on grad(vort),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.)*/ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Max = /* Maximum biharmonic viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Grid = /* Grid dependent biharmonic viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leith = /* Leith biharm viscosity factor (on grad(vort), non-dim.)*/ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leithD = /* Leith biharm viscosity factor (on grad(div), non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4Smag = /* Smagorinsky biharm viscosity factor (non-dim) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -661,12 +1104,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -712,16 +1161,23 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'JMD95Z' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhonil = /* Reference density ( kg/m^3 ) */ -(PID.TID 0000.0001) 1.035000000000000E+03 +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConst = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ (PID.TID 0000.0001) 1.035000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ @@ -730,7 +1186,7 @@ (PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ (PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConstFresh = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ (PID.TID 0000.0001) 1.000000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ @@ -739,6 +1195,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 15 @ 1.000000000000000E+00 /* K = 1: 15 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 16 @ 1.000000000000000E+00 /* K = 1: 16 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -763,26 +1225,32 @@ (PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ (PID.TID 0000.0001) 5.000000000000000E-02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ -(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ (PID.TID 0000.0001) 0 @@ -797,25 +1265,25 @@ (PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ -(PID.TID 0000.0001) 0 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(psu)*/ +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(psu)*/ +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -836,6 +1304,9 @@ (PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -854,6 +1325,10 @@ (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -873,51 +1348,32 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useEnergyConservingCoriolis= /* Flx-Form Coriolis scheme flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* V.I Works with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* V.I Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* V.I Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* V.I High order vort. advect. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* V.I Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* V.I Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ @@ -929,7 +1385,7 @@ (PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tempAdvection= /* Temperature advection on/off flag */ +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ @@ -938,13 +1394,16 @@ (PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) saltAdvection= /* Salinity advection on/off flag */ +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ @@ -953,6 +1412,9 @@ (PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -962,12 +1424,21 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ (PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ (PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ @@ -978,14 +1449,20 @@ (PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) (PID.TID 0000.0001) // (PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ (PID.TID 0000.0001) 500 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ (PID.TID 0000.0001) 1.000000000000000E-19 @@ -999,16 +1476,19 @@ (PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) (PID.TID 0000.0001) // -(PID.TID 0000.0001) deltaTmom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ (PID.TID 0000.0001) 1.800000000000000E+03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) deltaTfreesurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ (PID.TID 0000.0001) 8.640000000000000E+04 (PID.TID 0000.0001) ; (PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ @@ -1035,6 +1515,9 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-01 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ (PID.TID 0000.0001) 3.214280000000000E+05 (PID.TID 0000.0001) ; @@ -1077,9 +1560,6 @@ (PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1131,11 +1611,20 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ (PID.TID 0000.0001) 1.234567000000000E+05 @@ -1146,6 +1635,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 9.661835748792270E-04 (PID.TID 0000.0001) ; @@ -1167,7 +1662,8 @@ (PID.TID 0000.0001) 5.150000000000000E+02, /* K = 12 */ (PID.TID 0000.0001) 5.650000000000000E+02, /* K = 13 */ (PID.TID 0000.0001) 6.150000000000000E+02, /* K = 14 */ -(PID.TID 0000.0001) 6.650000000000000E+02 /* K = 15 */ +(PID.TID 0000.0001) 6.650000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 3.450000000000000E+02 /* K = 16 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ (PID.TID 0000.0001) 5.000000000000000E+01, /* K = 1 */ @@ -1192,10 +1688,10 @@ (PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ (PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) -8.000000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ @@ -1755,24 +2251,24 @@ (PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ (PID.TID 0000.0001) 1.100000000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) CTRL_CHECK: ctrl package -(PID.TID 0000.0001) COST_CHECK: cost package +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST (PID.TID 0000.0001) GRDCHK_CHECK: grdchk package (PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): (PID.TID 0000.0001) // CONFIG_CHECK : Normal End (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Model current state -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) -(PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 0 @@ -1832,6 +2328,9 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.2588977395051E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.8248606070107E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.9948324922575E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1854,9 +2353,9 @@ EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 -(PID.TID 0000.0001) cg2d_init_res = 6.15811885707761E+00 -(PID.TID 0000.0001) cg2d_iters = 184 -(PID.TID 0000.0001) cg2d_res = 7.57385549925189E-20 +(PID.TID 0000.0001) cg2d_init_res = 6.15811885707761E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 184 +(PID.TID 0000.0001) cg2d_last_res = 7.57385549925189E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1917,6 +2416,9 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.3653356424171E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5157892194461E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4595114894327E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 6.2569565162094E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 4.1523826440075E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 3.2363406790329E-02 @@ -1936,20 +2438,20 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.60560763737335E-01 -(PID.TID 0000.0001) cg2d_iters = 181 -(PID.TID 0000.0001) cg2d_res = 8.99519497219828E-20 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.60560763737403E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 181 +(PID.TID 0000.0001) cg2d_last_res = 9.01128718166748E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 2 (PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9668051925929E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3070831974599E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.6618418508391E-16 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.9668051925924E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3070831974601E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.1885659728234E-18 (PID.TID 0000.0001) %MON dynstat_eta_sd = 4.3945057927164E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5733121065733E-03 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.5733121065732E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1598468423667E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2842196738165E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.3389208431509E-04 @@ -1959,10 +2461,10 @@ (PID.TID 0000.0001) %MON dynstat_vvel_min = -4.2886863515258E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 9.1445617001731E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.1700207713824E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.3731414622513E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0645495673208E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.6445750754417E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.8718522581177E-23 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.3731414622512E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0645495673207E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.6445750754427E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.9305707806989E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.1894624205034E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.6721071004588E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9755444679809E+01 @@ -2000,12 +2502,15 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2915731155563E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5261152700224E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4588571962377E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0007957070221E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.0672326587132E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.9517684731880E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0818332541819E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 8.3322297584179E-03 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3191724434223E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.7559056596621E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.3191724434221E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.7559056596619E-02 (PID.TID 0000.0001) %MON pe_b_mean = 2.4711623738658E-04 -(PID.TID 0000.0001) %MON ke_max = 8.8850774413517E-04 +(PID.TID 0000.0001) %MON ke_max = 8.8850774413515E-04 (PID.TID 0000.0001) %MON ke_mean = 1.1058421861989E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 (PID.TID 0000.0001) %MON vort_r_min = -1.7580488020609E-07 @@ -2015,14 +2520,14 @@ (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655662149E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162516594164E-04 (PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.9163949651720E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1304494045726E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1304494045727E-06 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.58761892521397E-14 2.39895957779122E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.01979468017992E-01 -(PID.TID 0000.0001) cg2d_iters = 181 -(PID.TID 0000.0001) cg2d_res = 7.46559712547409E-20 + cg2d: Sum(rhs),rhsMax = -1.17683640610267E-14 2.39895957779214E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.01979468018738E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 181 +(PID.TID 0000.0001) cg2d_last_res = 7.54564761355704E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2030,22 +2535,22 @@ (PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 8.8563661828928E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.5688624193367E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.6482573125489E-16 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.4338153160952E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2606504090159E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4338598320497E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0309261096442E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.4338598320499E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0309261096443E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -4.7213516011570E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.1588499933984E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.1588499933983E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.4659121656421E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.6992004405696E-05 (PID.TID 0000.0001) %MON dynstat_vvel_max = 5.0556399647601E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2154960125094E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0237687868500E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2154960125093E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 8.0237687868499E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.7603851346090E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 6.1665231622455E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4647887066654E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2817026892296E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1039082245261E-21 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4647887066657E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2817026892297E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.4021040774683E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6139047607022E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.2756293533431E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9757891602909E+01 @@ -2083,52 +2588,55 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.2178105886955E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5379778517573E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4636987924417E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6657930962200E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.4961832472416E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.1636191990545E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6383484836912E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2075711906592E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6551338900039E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.2676515071096E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.6551338900037E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.2676515071095E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.5412785146688E-04 -(PID.TID 0000.0001) %MON ke_max = 2.0641944810511E-03 +(PID.TID 0000.0001) %MON ke_max = 2.0641944810509E-03 (PID.TID 0000.0001) %MON ke_mean = 2.1024487122121E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.3698652895521E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.3698652895522E-07 (PID.TID 0000.0001) %MON vort_r_max = 1.9945047933657E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807209631E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604170909390E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655562823E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162501515168E-04 (PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.0342739037858E-05 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.2439453756619E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 4.2439453756622E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 1.73194791841524E-14 2.21798267529301E+00 -(PID.TID 0000.0001) cg2d_init_res = 4.17531647418209E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 8.63161843118485E-20 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 2.21798267529282E+00 +(PID.TID 0000.0001) cg2d_init_res = 4.17531647420217E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 8.62819328941120E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 4 (PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.6667109300394E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.6667109300400E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.5903718841109E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.7093066072825E-17 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5309789076726E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.0143121923378E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5309789076725E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.3472114269417E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0444510257541E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0000400209983E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4115593080879E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.4115593080878E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6280510292057E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.7874248176927E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2549931734226E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8431054555658E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.5174832216608E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2549931734228E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8431054555660E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 5.5174832216607E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.2087013153772E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.6919350284534E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7998262702397E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5205968296084E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.6974818064941E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7998262702398E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5205968296085E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.8672490180814E-21 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.9708582991665E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.7394904713688E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9763681178146E+01 @@ -2166,54 +2674,57 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.1440480618347E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5513649503191E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4740184358134E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.8977866146841E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1568456682056E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2902157301401E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2741640319830E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5237896017279E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.8278579219222E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5946813327014E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5237896017280E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.8278579219219E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.5946813327010E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.9145802870412E-04 -(PID.TID 0000.0001) %MON ke_max = 3.6118711376392E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.3518563376092E-05 +(PID.TID 0000.0001) %MON ke_max = 3.6118711376391E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.3518563376091E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.5996765067378E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2071504098646E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.5996765067377E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2071504098647E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807117843E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604186448494E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655447172E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162491797451E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.9298767377049E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.6301070667237E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.9298767377048E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.6301070667260E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 2.01662326576521E+00 -(PID.TID 0000.0001) cg2d_init_res = 5.27986777960432E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 9.87169774114337E-20 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.01662326576563E+00 +(PID.TID 0000.0001) cg2d_init_res = 5.27986777960502E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 9.95523160795366E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 5 (PID.TID 0000.0001) %MON time_secondsf = 4.3200000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 8.7963745500189E-01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 8.7963745500190E-01 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.5406085935519E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1592139341003E-16 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8474972074724E-16 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.5245467731725E-01 -(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2592304977485E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1008948181256E-02 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.2592304977484E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.1008948181257E-02 (PID.TID 0000.0001) %MON dynstat_uvel_min = -7.0655716317465E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.8034201875487E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -6.8034201875484E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8730959540446E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6451206195139E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3606750840593E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.3606750840586E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2393033941639E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5915774202463E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 2.5915774202462E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4095768690796E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9078378467502E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0373902133966E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 8.9078378467501E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.0373902133969E-04 (PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6728065826794E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.2313038580847E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.5836149935718E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2386207450446E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0455560020018E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0455560020017E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9774262827847E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9086343801704E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6189043161996E+00 @@ -2249,29 +2760,32 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -6.0702855349739E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5662631572644E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.4897783530480E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2746259309630E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4738443560079E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.2207893883883E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9016817324318E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7950484688748E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7804612111969E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6726271600386E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7950484688747E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7804612111968E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.6726271600385E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.9054808250532E-04 -(PID.TID 0000.0001) %MON ke_max = 5.4148240576955E-03 +(PID.TID 0000.0001) %MON ke_max = 5.4148240576956E-03 (PID.TID 0000.0001) %MON ke_mean = 4.7660997029743E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.4952877040717E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.1192217056067E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.4952877040710E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.1192217056065E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807043003E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604218683078E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655352876E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162482651010E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.9100735443501E-07 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -9.9100735443507E-07 (PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.5379772868733E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 1.79933840571731E+00 -(PID.TID 0000.0001) cg2d_init_res = 6.38425751188919E-01 -(PID.TID 0000.0001) cg2d_iters = 180 -(PID.TID 0000.0001) cg2d_res = 8.48047640536754E-20 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 1.79933840571697E+00 +(PID.TID 0000.0001) cg2d_init_res = 6.38425751186888E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 180 +(PID.TID 0000.0001) cg2d_last_res = 8.37579450957082E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2279,24 +2793,24 @@ (PID.TID 0000.0001) %MON time_secondsf = 5.1840000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 1.0208438574992E+00 (PID.TID 0000.0001) %MON dynstat_eta_min = -1.4928631179873E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8474972074724E-16 -(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.4263591035333E-01 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.2450870881269E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 5.4263591035332E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.1686546541538E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1104410101694E-01 (PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8876667300515E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7601750903963E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.7601750903962E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.1798633928117E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2930565728173E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.2515223435320E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2930565728176E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.2515223435319E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.0362838142748E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.7956180853220E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.7956180853316E-06 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3225081733925E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 9.7931153548480E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2092708517200E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7321996789251E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.7615556774353E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2092708517199E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7321996789253E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.7544152129553E-22 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4100162382517E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1945891761074E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1945891761075E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9786303820870E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9083673062344E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6190704462046E+00 @@ -2332,53 +2846,56 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9965230081131E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.5826577347902E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5109215240509E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4922200218288E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0133332511936E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.4618700456290E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4436950516328E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.7678904041857E-04 -(PID.TID 0000.0001) %MON ke_max = 7.3659046674122E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.9022710847449E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7379009110908E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.0741631683638E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4922200218287E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0133332511937E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.4618700456287E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4436950516325E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.7678904041856E-04 +(PID.TID 0000.0001) %MON ke_max = 7.3659046674120E-03 (PID.TID 0000.0001) %MON ke_mean = 6.2540435309487E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.4169240089857E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.4169240089858E-07 (PID.TID 0000.0001) %MON vort_r_max = 2.0921890510204E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807001777E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604258552655E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655300932E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162472079296E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0294104014514E-06 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.0294104014515E-06 (PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.6966130428333E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = 2.93098878501041E-14 1.57603319715821E+00 -(PID.TID 0000.0001) cg2d_init_res = 7.44666381668064E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 8.31172803458932E-20 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 1.57603319715842E+00 +(PID.TID 0000.0001) cg2d_init_res = 7.44666381668687E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 8.05322532020920E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 7 (PID.TID 0000.0001) %MON time_secondsf = 6.0480000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 1.0772677152421E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4569770947855E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5576937239473E-16 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4569770947854E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.0505376277784E-16 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.3187231193205E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 2.0743966812104E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2976040606633E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4553207189483E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5562571915467E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.4553207189486E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.5562571915466E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.5125073010942E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.7678171041935E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8619308943398E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.7678171041936E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 8.8619308943397E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1107004690836E-01 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9724434658057E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.9434908655859E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0349535645072E-04 (PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3172211920480E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8243686805173E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.9652853903494E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4874047540104E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8243686805167E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8772076064777E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4874047540103E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.1988160744994E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9797070809385E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9130357441196E+00 @@ -2390,7 +2907,7 @@ (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717952529714E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9589664727521E-01 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0077057162230E-03 -(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164063E+02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 4.3217993164062E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8422400970459E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6625133603452E+01 (PID.TID 0000.0001) %MON forcing_qnet_sd = 1.1159198929743E+02 @@ -2415,53 +2932,56 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.9227604812523E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6005326854092E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5373726950670E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4929293166919E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9492363310793E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.6845919158757E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0185252406637E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1579128764906E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.8878575318611E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9257335228954E-02 -(PID.TID 0000.0001) %MON pe_b_mean = 3.6198949316813E-04 -(PID.TID 0000.0001) %MON ke_max = 9.3626841702203E-03 -(PID.TID 0000.0001) %MON ke_mean = 7.7356520216848E-05 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.8878575318613E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9257335228957E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 3.6198949316812E-04 +(PID.TID 0000.0001) %MON ke_max = 9.3626841702202E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.7356520216847E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.5330274372162E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.2567421163008E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.5330274372160E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.2567421163007E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807007167E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604299623795E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655307723E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162459678788E-04 (PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.5641366822034E-06 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.1204460658574E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.1204460658572E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 1.36017289258814E+00 -(PID.TID 0000.0001) cg2d_init_res = 8.65221767308969E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 8.54506265082062E-20 + cg2d: Sum(rhs),rhsMax = 3.86357612569554E-14 1.36017289258755E+00 +(PID.TID 0000.0001) cg2d_init_res = 8.65221767309202E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 8.15271920990580E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 8 (PID.TID 0000.0001) %MON time_secondsf = 6.9120000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 1.0531608472811E+00 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4267882246337E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.5214682885066E-16 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.4267882246336E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -5.9771968477047E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2390790515507E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9827407786208E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4651384444134E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7662783242615E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.0527974321235E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.8292713192435E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1133231398867E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2002573682955E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4651384444135E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.7662783242634E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.0527974321226E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 9.8292713192434E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.1133231398868E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.2002573682956E-02 (PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1469941674503E-01 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.9781081142801E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0285255816535E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0598653065907E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3434639728059E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9223533451750E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.5506855000412E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4806063337202E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.3434639728060E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9223533451744E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.5600097823265E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4806063337201E-05 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.0805583512740E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9805897721794E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9147167129622E+00 @@ -2472,7 +2992,7 @@ (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9752850715279E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717956236340E+01 (PID.TID 0000.0001) %MON dynstat_salt_sd = 2.9588008778758E-01 -(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0067920979024E-03 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 1.0067920979023E-03 (PID.TID 0000.0001) %MON forcing_qnet_max = 4.3322811889648E+02 (PID.TID 0000.0001) %MON forcing_qnet_min = -1.8375684712728E+02 (PID.TID 0000.0001) %MON forcing_qnet_mean = -1.6612621647628E+01 @@ -2498,54 +3018,57 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.8489979543915E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6198708258185E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.5690396795039E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0193414318811E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0892130876324E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.0662057056258E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4569390717386E-02 (PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2284257116077E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0525799557604E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1121299499394E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.0525799557606E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.1121299499396E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.5122959519127E-04 (PID.TID 0000.0001) %MON ke_max = 1.1310835398787E-02 (PID.TID 0000.0001) %MON ke_mean = 9.1426218800337E-05 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -2.9561015729146E-07 +(PID.TID 0000.0001) %MON vort_r_min = -2.9561015729145E-07 (PID.TID 0000.0001) %MON vort_r_max = 2.4560256655328E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807053650E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604337053092E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655366290E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162445504255E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.1253939886133E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4766096988118E-07 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -7.1253939886124E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.4766096988117E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -2.99760216648792E-14 1.18689213330604E+00 -(PID.TID 0000.0001) cg2d_init_res = 9.61567131191895E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 6.80870344018920E-20 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 1.18689213330728E+00 +(PID.TID 0000.0001) cg2d_init_res = 9.61567131191341E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 6.47562243014807E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 9 (PID.TID 0000.0001) %MON time_secondsf = 7.7760000000000E+05 -(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7161355250760E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3991760723144E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9772779752771E-17 +(PID.TID 0000.0001) %MON dynstat_eta_max = 9.7161355250761E-01 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3991760723143E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.1507229741427E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2055888696383E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.9013091179148E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6077741232603E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8225665804405E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5295935440234E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6077741232604E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.8225665804428E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5295935440235E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1087901124883E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.3747867873913E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4720892291141E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1715532282137E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.3747867873915E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.4720892291151E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1715532282136E-01 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.1543421322980E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0374963793078E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0582042055075E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2937502172119E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9646672808920E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = -4.8442781129471E-23 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4053055337583E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8708304710053E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.2937502172116E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9646672808918E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.7321964161447E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4053055337582E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8708304710052E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9813116878033E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9145124437352E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6194356789384E+00 @@ -2581,59 +3104,62 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7752354275307E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6406538642117E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6058148956476E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4578443079406E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1574810606250E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.2137695437022E-02 (PID.TID 0000.0001) %MON advcfl_uvel_max = 4.7901732046229E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2761400278712E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9731562990309E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.0222558120613E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2761400278710E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.9731562990297E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.0222558120599E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.4675356153671E-04 (PID.TID 0000.0001) %MON ke_max = 1.3129859975652E-02 (PID.TID 0000.0001) %MON ke_mean = 1.0423376426027E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.3635399682256E-07 -(PID.TID 0000.0001) %MON vort_r_max = 2.6555950289531E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.3635399682253E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.6555950289530E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807122554E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604367611747E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655453108E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162430013945E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.3840108466810E-08 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0343193241798E-07 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.3840108466728E-08 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.0343193241797E-07 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= - cg2d: Sum(rhs),rhsMax = -4.81836792687318E-14 1.12112051379882E+00 -(PID.TID 0000.0001) cg2d_init_res = 9.58703567245054E-01 -(PID.TID 0000.0001) cg2d_iters = 179 -(PID.TID 0000.0001) cg2d_res = 7.43217962107330E-20 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 1.12112051380027E+00 +(PID.TID 0000.0001) cg2d_init_res = 9.58703567243637E-01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 179 +(PID.TID 0000.0001) cg2d_last_res = 7.40151224367188E-20 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %MON time_tsnumber = 10 (PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+05 (PID.TID 0000.0001) %MON dynstat_eta_max = 8.6412680344576E-01 -(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3753143536172E+00 -(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.3584538290238E-17 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3753143536171E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.0601593855412E-17 (PID.TID 0000.0001) %MON dynstat_eta_sd = 5.2215197998558E-01 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 1.8337903860636E-03 (PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7213304377365E-01 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6308021638187E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1524388872252E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.6308021638214E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.1524388872254E-04 (PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2248866705376E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5915760849939E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.7975170634161E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1617501604505E-01 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7320163236292E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.5915760849941E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.7975170634169E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.1617501604504E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.7320163236290E-04 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0255741320517E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0358409825096E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1766437118247E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9509755960360E-04 -(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8258288992191E-22 -(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2816173384312E-05 -(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6075402499878E-07 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.1766437118243E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9509755960364E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -2.9359261290588E-24 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2816173384311E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.6075402499877E-07 (PID.TID 0000.0001) %MON dynstat_theta_max = 2.9819148752622E+01 (PID.TID 0000.0001) %MON dynstat_theta_min = -1.9148188487210E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 3.6195181458501E+00 (PID.TID 0000.0001) %MON dynstat_theta_sd = 4.4150084003628E+00 -(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0700387096533E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0700387096532E-03 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.7429039897076E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 2.9752074562627E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4717959775742E+01 @@ -2664,97 +3190,101 @@ (PID.TID 0000.0001) %MON forcing_fv_mean = -5.7014729006699E-03 (PID.TID 0000.0001) %MON forcing_fv_sd = 4.6628624802842E-02 (PID.TID 0000.0001) %MON forcing_fv_del2 = 4.6475770842672E-04 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0085639274173E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2570942394303E-02 -(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6748539774463E-02 -(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6847031850050E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.7911461230606E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2036763334234E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.1426191845474E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.0085639274172E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2570942394301E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.6748539774444E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.6847031850029E-02 (PID.TID 0000.0001) %MON pe_b_mean = 3.4887918450984E-04 (PID.TID 0000.0001) %MON ke_max = 1.4754728157983E-02 (PID.TID 0000.0001) %MON ke_mean = 1.1546172518778E-04 (PID.TID 0000.0001) %MON ke_vol = 1.3226782436722E+18 -(PID.TID 0000.0001) %MON vort_r_min = -3.7033151634218E-07 +(PID.TID 0000.0001) %MON vort_r_min = -3.7033151634213E-07 (PID.TID 0000.0001) %MON vort_r_max = 2.8637623573392E-07 (PID.TID 0000.0001) %MON vort_a_mean = -2.5274807186905E-05 (PID.TID 0000.0001) %MON vort_a_sd = 7.3604389962055E-05 (PID.TID 0000.0001) %MON vort_p_mean = -3.1845655534189E-05 (PID.TID 0000.0001) %MON vort_p_sd = 1.3162414022199E-04 -(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0810358928149E-07 -(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.1974734268755E-08 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.0810358928161E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -8.1974734268764E-08 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 10 ckptA - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635681714548D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635681714548D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632957280D+01 + --> objf_temp_tut(bi,bj) = 0.185615632957280D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968179D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968178D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542331D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542331D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023228182337D+01 - global fc = 0.620023228182337D+01 +(PID.TID 0000.0001) local fc = 0.620023228182337D+01 +(PID.TID 0000.0001) global fc = 0.620023228182337D+01 EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 1.58761892521397E-14 2.39895957779122E+00 - cg2d: Sum(rhs),rhsMax = 1.73194791841524E-14 2.21798267529301E+00 - cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 2.01662326576521E+00 - cg2d: Sum(rhs),rhsMax = -1.19904086659517E-14 1.79933840571731E+00 - cg2d: Sum(rhs),rhsMax = 2.93098878501041E-14 1.57603319715821E+00 - cg2d: Sum(rhs),rhsMax = -2.48689957516035E-14 1.36017289258814E+00 - cg2d: Sum(rhs),rhsMax = -2.99760216648792E-14 1.18689213330604E+00 - cg2d: Sum(rhs),rhsMax = -4.81836792687318E-14 1.12112051379882E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -1.17683640610267E-14 2.39895957779214E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 2.21798267529282E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.01662326576563E+00 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 1.79933840571697E+00 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 1.57603319715842E+00 + cg2d: Sum(rhs),rhsMax = 3.86357612569554E-14 1.36017289258755E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 1.18689213330728E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 1.12112051380027E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 1.58761892521397E-14 2.39895957779122E+00 - cg2d: Sum(rhs),rhsMax = 1.82076576038526E-14 2.21798267529301E+00 - cg2d: Sum(rhs),rhsMax = -1.46549439250521E-14 2.01662326576521E+00 - cg2d: Sum(rhs),rhsMax = 2.17603712826531E-14 1.79933840571732E+00 - cg2d: Sum(rhs),rhsMax = 8.43769498715119E-15 1.57603319715822E+00 - cg2d: Sum(rhs),rhsMax = 1.02140518265514E-14 1.36017289258815E+00 - cg2d: Sum(rhs),rhsMax = 4.66293670342566E-15 1.18689213330603E+00 - cg2d: Sum(rhs),rhsMax = -2.77555756156289E-15 1.12112051379882E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -1.17683640610267E-14 2.39895957779214E+00 + cg2d: Sum(rhs),rhsMax = 1.06581410364015E-14 2.21798267529282E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.01662326576563E+00 + cg2d: Sum(rhs),rhsMax = 1.15463194561016E-14 1.79933840571697E+00 + cg2d: Sum(rhs),rhsMax = -3.99680288865056E-15 1.57603319715842E+00 + cg2d: Sum(rhs),rhsMax = 3.86357612569554E-14 1.36017289258755E+00 + cg2d: Sum(rhs),rhsMax = -4.08562073062058E-14 1.18689213330728E+00 + cg2d: Sum(rhs),rhsMax = -3.55271367880050E-15 1.12112051380027E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE + Calling cg2d from S/R CG2D_MAD cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 - cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 3.97560864970021E-08 - cg2d: Sum(rhs),rhsMax = -6.21724893790088E-15 3.41865552528288E-08 - cg2d: Sum(rhs),rhsMax = -9.76996261670138E-15 4.24929829973037E-08 - cg2d: Sum(rhs),rhsMax = -1.11022302462516E-16 8.44536286807912E-08 - cg2d: Sum(rhs),rhsMax = 5.55111512312578E-16 1.36480754116583E-07 - cg2d: Sum(rhs),rhsMax = -6.10622663543836E-16 2.12919271876679E-07 - cg2d: Sum(rhs),rhsMax = -9.02056207507940E-16 3.15770102898262E-07 - cg2d: Sum(rhs),rhsMax = 2.77555756156289E-16 4.35249443192911E-07 - cg2d: Sum(rhs),rhsMax = -2.05391259555654E-15 5.76014300793752E-07 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 3.10862446895044E-15 3.97560864970019E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-15 3.41865552525751E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.66453525910038E-15 4.24929829970556E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-16 8.44536286802409E-08 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 1.36480754115819E-07 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = 3.88578058618805E-16 2.12919271879213E-07 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.60822483003176E-15 3.15770102901128E-07 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -2.05391259555654E-15 4.35249443196150E-07 + Calling cg2d from S/R CG2D_MAD + cg2d: Sum(rhs),rhsMax = -3.27515792264421E-15 5.76014300796820E-07 ph-pack: packing ecco_cost ph-pack: packing ecco_ctrl - ph-check entering grdchk_main - ph-check fcref = 6.2002322818233724 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) grdchk reference fc: fcref = 6.20023228182337E+00 grad-res ------------------------------- - grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps - grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 1 2315 1 ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 ph-grd -->hit<-- 43 2 1 1 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk pos: i,j,k= 43 2 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2762,45 +3292,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 1.44328993201270E-15 2.39895957779134E+00 - cg2d: Sum(rhs),rhsMax = 1.33226762955019E-15 2.21798267529369E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 2.01662326576403E+00 - cg2d: Sum(rhs),rhsMax = 6.21724893790088E-15 1.79933840571469E+00 - cg2d: Sum(rhs),rhsMax = -3.50830475781549E-14 1.57603319715208E+00 - cg2d: Sum(rhs),rhsMax = -4.30766533554561E-14 1.36017289257860E+00 - cg2d: Sum(rhs),rhsMax = -3.47499806707674E-14 1.18689213332489E+00 - cg2d: Sum(rhs),rhsMax = 8.77076189453874E-15 1.12112051381382E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -7.21644966006352E-15 2.39895957779228E+00 + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 2.21798267529273E+00 + cg2d: Sum(rhs),rhsMax = 8.88178419700125E-16 2.01662326576439E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-15 1.79933840571491E+00 + cg2d: Sum(rhs),rhsMax = -3.46389583683049E-14 1.57603319715182E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 1.36017289257844E+00 + cg2d: Sum(rhs),rhsMax = -2.33146835171283E-14 1.18689213332337E+00 + cg2d: Sum(rhs),rhsMax = 2.62012633811537E-14 1.12112051381510E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635654680537D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635654680537D+01 --> objf_hflux_tut(bi,bj) = 0.685376854919853D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632956740D+01 + --> objf_temp_tut(bi,bj) = 0.185615632956741D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968284D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968284D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542396D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542400D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023202518712D+01 - global fc = 0.620023202518712D+01 - ph-check fcpertplus = 6.2002320251871197 - ph-check fcpertminus = 6.2002322818233724 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) local fc = 0.620023202518715D+01 +(PID.TID 0000.0001) global fc = 0.620023202518715D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 6.20023202518715E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2808,54 +3324,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 5.99520433297585E-15 2.39895957779107E+00 - cg2d: Sum(rhs),rhsMax = -7.54951656745106E-15 2.21798267529289E+00 - cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 2.01662326576476E+00 - cg2d: Sum(rhs),rhsMax = -8.43769498715119E-15 1.79933840571973E+00 - cg2d: Sum(rhs),rhsMax = 4.44089209850063E-16 1.57603319716531E+00 - cg2d: Sum(rhs),rhsMax = 9.32587340685131E-15 1.36017289259791E+00 - cg2d: Sum(rhs),rhsMax = -8.54871728961371E-15 1.18689213328827E+00 - cg2d: Sum(rhs),rhsMax = -5.78426195829707E-14 1.12112051378335E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.39895957779201E+00 + cg2d: Sum(rhs),rhsMax = 1.90958360235527E-14 2.21798267529260E+00 + cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.01662326576458E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 1.79933840572001E+00 + cg2d: Sum(rhs),rhsMax = -1.50990331349021E-14 1.57603319716508E+00 + cg2d: Sum(rhs),rhsMax = -3.50830475781549E-14 1.36017289259788E+00 + cg2d: Sum(rhs),rhsMax = 7.54951656745106E-15 1.18689213328894E+00 + cg2d: Sum(rhs),rhsMax = 9.99200722162641E-16 1.12112051378084E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635708756645D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635708756645D+01 --> objf_hflux_tut(bi,bj) = 0.685376854919853D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632957819D+01 + --> objf_temp_tut(bi,bj) = 0.185615632957819D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968070D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968069D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542265D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542261D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023256595552D+01 - global fc = 0.620023256595552D+01 +(PID.TID 0000.0001) local fc = 0.620023256595547D+01 +(PID.TID 0000.0001) global fc = 0.620023256595547D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 6.20023256595547E+00 grad-res ------------------------------- grad-res 0 1 43 2 1 1 1 1 6.20023228182E+00 6.20023202519E+00 6.20023256596E+00 - grad-res 0 1 1 1 0 1 1 1 -2.70384203444E-06 -2.70384199919E-06 1.30402012521E-08 + grad-res 0 1 1 1 0 1 1 1 -2.70384203444E-06 -2.70384160839E-06 1.57574717830E-07 (PID.TID 0000.0001) ADM ref_cost_function = 6.20023228182337E+00 (PID.TID 0000.0001) ADM adjoint_gradient = -2.70384203444403E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.70384199918539E-06 - ph-grd ierr --------------------------- - ph-grd ierr = 0 , icomp = 1 , ichknum = 1 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.70384160838688E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 2 2315 2 ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1 2 ph-grd -->hit<-- 44 2 1 1 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk pos: i,j,k= 44 2 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2863,45 +3368,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 1.67643676718399E-14 2.39895957779137E+00 - cg2d: Sum(rhs),rhsMax = 3.99680288865056E-15 2.21798267529377E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-15 2.01662326576566E+00 - cg2d: Sum(rhs),rhsMax = 2.13162820728030E-14 1.79933840571688E+00 - cg2d: Sum(rhs),rhsMax = -4.44089209850063E-14 1.57603319715452E+00 - cg2d: Sum(rhs),rhsMax = -2.79776202205539E-14 1.36017289258248E+00 - cg2d: Sum(rhs),rhsMax = -4.55191440096314E-15 1.18689213332405E+00 - cg2d: Sum(rhs),rhsMax = -9.99200722162641E-16 1.12112051382025E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -6.55031584528842E-15 2.39895957779232E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-16 2.21798267529284E+00 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 2.01662326576521E+00 + cg2d: Sum(rhs),rhsMax = 3.19744231092045E-14 1.79933840571730E+00 + cg2d: Sum(rhs),rhsMax = 1.11022302462516E-14 1.57603319715450E+00 + cg2d: Sum(rhs),rhsMax = -8.88178419700125E-15 1.36017289258195E+00 + cg2d: Sum(rhs),rhsMax = -5.36237720893951E-14 1.18689213332497E+00 + cg2d: Sum(rhs),rhsMax = 3.88578058618805E-15 1.12112051382047E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635653982773D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635653982773D+01 --> objf_hflux_tut(bi,bj) = 0.365120182432684D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632953013D+01 + --> objf_temp_tut(bi,bj) = 0.185615632953014D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968277D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968277D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542406D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542409D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023201176710D+01 - global fc = 0.620023201176710D+01 - ph-check fcpertplus = 6.2002320117671017 - ph-check fcpertminus = 6.2002322818233724 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) local fc = 0.620023201176712D+01 +(PID.TID 0000.0001) global fc = 0.620023201176712D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 6.20023201176712E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2909,54 +3400,43 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 5.88418203051333E-15 2.39895957779104E+00 - cg2d: Sum(rhs),rhsMax = -1.99840144432528E-14 2.21798267529196E+00 - cg2d: Sum(rhs),rhsMax = 6.66133814775094E-15 2.01662326576605E+00 - cg2d: Sum(rhs),rhsMax = 1.59872115546023E-14 1.79933840571836E+00 - cg2d: Sum(rhs),rhsMax = 1.77635683940025E-14 1.57603319716197E+00 - cg2d: Sum(rhs),rhsMax = -2.39808173319034E-14 1.36017289259333E+00 - cg2d: Sum(rhs),rhsMax = -3.88578058618805E-14 1.18689213328823E+00 - cg2d: Sum(rhs),rhsMax = 1.73194791841524E-14 1.12112051378069E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -1.33226762955019E-14 2.39895957779198E+00 + cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 2.21798267529219E+00 + cg2d: Sum(rhs),rhsMax = 2.84217094304040E-14 2.01662326576604E+00 + cg2d: Sum(rhs),rhsMax = -2.22044604925031E-15 1.79933840571862E+00 + cg2d: Sum(rhs),rhsMax = 4.44089209850063E-15 1.57603319716153E+00 + cg2d: Sum(rhs),rhsMax = -4.52970994047064E-14 1.36017289259358E+00 + cg2d: Sum(rhs),rhsMax = -8.32667268468867E-15 1.18689213328768E+00 + cg2d: Sum(rhs),rhsMax = -5.10702591327572E-15 1.12112051378067E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635709454110D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635709454110D+01 --> objf_hflux_tut(bi,bj) = 0.365120182432684D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632961546D+01 + --> objf_temp_tut(bi,bj) = 0.185615632961546D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968077D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968077D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542256D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542251D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023256656229D+01 - global fc = 0.620023256656229D+01 +(PID.TID 0000.0001) local fc = 0.620023256656224D+01 +(PID.TID 0000.0001) global fc = 0.620023256656224D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 6.20023256656224E+00 grad-res ------------------------------- grad-res 0 2 44 2 1 1 1 1 6.20023228182E+00 6.20023201177E+00 6.20023256656E+00 - grad-res 0 2 2 2 0 1 1 1 -2.77397605796E-06 -2.77397592452E-06 4.81043026523E-08 + grad-res 0 2 2 2 0 1 1 1 -2.77397605796E-06 -2.77397556925E-06 1.76177278544E-07 (PID.TID 0000.0001) ADM ref_cost_function = 6.20023228182337E+00 (PID.TID 0000.0001) ADM adjoint_gradient = -2.77397605795952E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.77397592451933E-06 - ph-grd ierr --------------------------- - ph-grd ierr = 0 , icomp = 2 , ichknum = 2 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.77397556924797E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= ph-test icomp, ncvarcomp, ichknum 3 2315 3 ph-grd _loc: bi, bj, icomptest, ichknum 1 1 2 3 ph-grd -->hit<-- 45 2 1 1 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk pos: i,j,k= 45 2 1 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -2964,45 +3444,31 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = -4.44089209850063E-15 2.39895957779138E+00 - cg2d: Sum(rhs),rhsMax = 4.88498130835069E-15 2.21798267529371E+00 - cg2d: Sum(rhs),rhsMax = 3.24185123190546E-14 2.01662326576541E+00 - cg2d: Sum(rhs),rhsMax = 7.99360577730113E-15 1.79933840571640E+00 - cg2d: Sum(rhs),rhsMax = 3.55271367880050E-15 1.57603319715463E+00 - cg2d: Sum(rhs),rhsMax = 3.59712259978551E-14 1.36017289258113E+00 - cg2d: Sum(rhs),rhsMax = -1.14352971536391E-14 1.18689213332846E+00 - cg2d: Sum(rhs),rhsMax = -5.57331958361829E-14 1.12112051382248E+00 + cg2d: Sum(rhs),rhsMax = 8.65973959207622E-15 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = -1.05471187339390E-14 2.39895957779230E+00 + cg2d: Sum(rhs),rhsMax = -1.86517468137026E-14 2.21798267529276E+00 + cg2d: Sum(rhs),rhsMax = 2.30926389122033E-14 2.01662326576495E+00 + cg2d: Sum(rhs),rhsMax = -1.46549439250521E-14 1.79933840571678E+00 + cg2d: Sum(rhs),rhsMax = -7.54951656745106E-15 1.57603319715457E+00 + cg2d: Sum(rhs),rhsMax = 1.33226762955019E-14 1.36017289258145E+00 + cg2d: Sum(rhs),rhsMax = 5.56221735337203E-14 1.18689213332741E+00 + cg2d: Sum(rhs),rhsMax = 3.21964677141295E-15 1.12112051382226E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635655112324D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635655112324D+01 --> objf_hflux_tut(bi,bj) = 0.478358297175945D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615632654071D+01 + --> objf_temp_tut(bi,bj) = 0.185615632654071D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968278D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968278D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542407D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542409D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023202233797D+01 - global fc = 0.620023202233797D+01 - ph-check fcpertplus = 6.2002320223379712 - ph-check fcpertminus = 6.2002322818233724 -(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 6.5682677425711703E-05 -(PID.TID 0000.0001) +(PID.TID 0000.0001) local fc = 0.620023202233799D+01 +(PID.TID 0000.0001) global fc = 0.620023202233799D+01 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 6.20023202233799E+00 (PID.TID 0000.0001) Start initial hydrostatic pressure computation (PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC (PID.TID 0000.0001) @@ -3010,49 +3476,38 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Model current state (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) - EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 1 ) + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 12 1 (prev= 12 0 ) (PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 4.21884749357559E-15 2.54952604282385E+00 - cg2d: Sum(rhs),rhsMax = -5.55111512312578E-16 2.62363057992943E+00 - cg2d: Sum(rhs),rhsMax = 1.66533453693773E-14 2.39895957779107E+00 - cg2d: Sum(rhs),rhsMax = -1.15463194561016E-14 2.21798267529207E+00 - cg2d: Sum(rhs),rhsMax = -1.33226762955019E-15 2.01662326576635E+00 - cg2d: Sum(rhs),rhsMax = 3.50830475781549E-14 1.79933840571897E+00 - cg2d: Sum(rhs),rhsMax = 4.88498130835069E-15 1.57603319716225E+00 - cg2d: Sum(rhs),rhsMax = -3.37507799486048E-14 1.36017289259477E+00 - cg2d: Sum(rhs),rhsMax = 2.04281036531029E-14 1.18689213328619E+00 - cg2d: Sum(rhs),rhsMax = -3.09752223870419E-14 1.12112051378412E+00 + cg2d: Sum(rhs),rhsMax = 1.04360964314765E-14 2.62363057992924E+00 + cg2d: Sum(rhs),rhsMax = 1.39888101102770E-14 2.39895957779201E+00 + cg2d: Sum(rhs),rhsMax = -1.64313007644523E-14 2.21798267529231E+00 + cg2d: Sum(rhs),rhsMax = -9.32587340685131E-15 2.01662326576557E+00 + cg2d: Sum(rhs),rhsMax = 1.50990331349021E-14 1.79933840571946E+00 + cg2d: Sum(rhs),rhsMax = 2.04281036531029E-14 1.57603319716180E+00 + cg2d: Sum(rhs),rhsMax = -3.33066907387547E-14 1.36017289259490E+00 + cg2d: Sum(rhs),rhsMax = 5.21804821573824E-15 1.18689213328613E+00 + cg2d: Sum(rhs),rhsMax = 4.50750547997814E-14 1.12112051378210E+00 (PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.141635708324548D+01 +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_temp_tut(bi,bj) = 0.141635708324549D+01 --> objf_hflux_tut(bi,bj) = 0.478358297175945D-08 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.185615633260500D+01 + --> objf_temp_tut(bi,bj) = 0.185615633260500D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.140673784968075D+01 + --> objf_temp_tut(bi,bj) = 0.140673784968075D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - --> objf_test(bi,bj) = 0.000000000000000D+00 - --> objf_tracer(bi,bj) = 0.000000000000000D+00 - --> objf_atl(bi,bj) = 0.000000000000000D+00 - --> objf_temp_tut(bi,bj) = 0.152098128542256D+01 + --> objf_temp_tut(bi,bj) = 0.152098128542253D+01 --> objf_hflux_tut(bi,bj) = 0.000000000000000D+00 - local fc = 0.620023256052096D+01 - global fc = 0.620023256052096D+01 +(PID.TID 0000.0001) local fc = 0.620023256052092D+01 +(PID.TID 0000.0001) global fc = 0.620023256052092D+01 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 6.20023256052092E+00 grad-res ------------------------------- grad-res 0 3 45 2 1 1 1 1 6.20023228182E+00 6.20023202234E+00 6.20023256052E+00 - grad-res 0 3 3 3 0 1 1 1 -2.69091500991E-06 -2.69091494420E-06 2.44186234566E-08 + grad-res 0 3 3 3 0 1 1 1 -2.69091500991E-06 -2.69091465110E-06 1.33340263053E-07 (PID.TID 0000.0001) ADM ref_cost_function = 6.20023228182337E+00 (PID.TID 0000.0001) ADM adjoint_gradient = -2.69091500991181E-06 -(PID.TID 0000.0001) ADM finite-diff_grad = -2.69091494420337E-06 - ph-grd ierr --------------------------- - ph-grd ierr = 0 , icomp = 3 , ichknum = 3 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.69091465110449E-06 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> START <<< @@ -3065,175 +3520,189 @@ grad-res ------------------------------- (PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 1 43 2 1 1 1 0.000000000E+00 -1.000000000E-01 -(PID.TID 0000.0001) grdchk output (c): 1 6.2002322818234E+00 6.2002320251871E+00 6.2002325659555E+00 -(PID.TID 0000.0001) grdchk output (g): 1 -2.7038419991854E-06 -2.7038420344440E-06 1.3040201252146E-08 +(PID.TID 0000.0001) grdchk output (c): 1 6.2002322818234E+00 6.2002320251872E+00 6.2002325659555E+00 +(PID.TID 0000.0001) grdchk output (g): 1 -2.7038416083869E-06 -2.7038420344440E-06 1.5757471782951E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 2 44 2 1 1 1 0.000000000E+00 -1.000000000E-01 -(PID.TID 0000.0001) grdchk output (c): 2 6.2002322818234E+00 6.2002320117671E+00 6.2002325665623E+00 -(PID.TID 0000.0001) grdchk output (g): 2 -2.7739759245193E-06 -2.7739760579595E-06 4.8104302652341E-08 +(PID.TID 0000.0001) grdchk output (c): 2 6.2002322818234E+00 6.2002320117671E+00 6.2002325665622E+00 +(PID.TID 0000.0001) grdchk output (g): 2 -2.7739755692480E-06 -2.7739760579595E-06 1.7617727854358E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) grdchk output (p): 3 45 2 1 1 1 0.000000000E+00 -1.000000000E-01 -(PID.TID 0000.0001) grdchk output (c): 3 6.2002322818234E+00 6.2002320223380E+00 6.2002325605210E+00 -(PID.TID 0000.0001) grdchk output (g): 3 -2.6909149442034E-06 -2.6909150099118E-06 2.4418623456590E-08 +(PID.TID 0000.0001) grdchk output (c): 3 6.2002322818234E+00 6.2002320223380E+00 6.2002325605209E+00 +(PID.TID 0000.0001) grdchk output (g): 3 -2.6909146511045E-06 -2.6909150099118E-06 1.3334026305323E-07 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 3 ratios = 1.5668211015213E-07 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Gradient check results >>> END <<< (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 111.69000000000000 -(PID.TID 0000.0001) System time: 0.33000000000000002 -(PID.TID 0000.0001) Wall clock time: 112.91959500312805 +(PID.TID 0000.0001) User time: 66.956629397347569 +(PID.TID 0000.0001) System time: 0.75758499093353748 +(PID.TID 0000.0001) Wall clock time: 67.807957887649536 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.14999999999999999 -(PID.TID 0000.0001) System time: 2.00000000000000004E-002 -(PID.TID 0000.0001) Wall clock time: 0.33227109909057617 +(PID.TID 0000.0001) User time: 8.8691997108981013E-002 +(PID.TID 0000.0001) System time: 2.3307000054046512E-002 +(PID.TID 0000.0001) Wall clock time: 0.11464691162109375 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "ADTHE_MAIN_LOOP [ADJOINT RUN]": -(PID.TID 0000.0001) User time: 54.150000000000006 -(PID.TID 0000.0001) System time: 0.28999999999999998 -(PID.TID 0000.0001) Wall clock time: 54.972887992858887 +(PID.TID 0000.0001) User time: 33.843063086271286 +(PID.TID 0000.0001) System time: 0.62982997857034206 +(PID.TID 0000.0001) Wall clock time: 34.557833194732666 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 45.386006653308868 +(PID.TID 0000.0001) System time: 0.10331907123327255 +(PID.TID 0000.0001) Wall clock time: 45.501025199890137 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 6.99999999999931788E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 8.82728099822998047E-002 +(PID.TID 0000.0001) User time: 7.8705489635467529E-002 +(PID.TID 0000.0001) System time: 5.1990151405334473E-005 +(PID.TID 0000.0001) Wall clock time: 7.8787326812744141E-002 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 6.99999999999931788E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.71837043762207031E-002 +(PID.TID 0000.0001) User time: 5.4728686809539795E-002 +(PID.TID 0000.0001) System time: 1.1700391769409180E-004 +(PID.TID 0000.0001) Wall clock time: 5.4864168167114258E-002 (PID.TID 0000.0001) No. starts: 90 (PID.TID 0000.0001) No. stops: 90 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12305375933647156 +(PID.TID 0000.0001) System time: 1.4007091522216797E-005 +(PID.TID 0000.0001) Wall clock time: 0.12314939498901367 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0000000000000000 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 7.31468200683593750E-004 +(PID.TID 0000.0001) User time: 4.1171014308929443E-002 +(PID.TID 0000.0001) System time: 2.4959444999694824E-005 +(PID.TID 0000.0001) Wall clock time: 4.1246414184570312E-002 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 9.4900000000000659 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 9.4723997116088867 +(PID.TID 0000.0001) User time: 5.5320781767368317 +(PID.TID 0000.0001) System time: 2.3207008838653564E-002 +(PID.TID 0000.0001) Wall clock time: 5.5564255714416504 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 16.029999999999916 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 16.084165334701538 +(PID.TID 0000.0001) User time: 10.697824925184250 +(PID.TID 0000.0001) System time: 1.6303919255733490E-002 +(PID.TID 0000.0001) Wall clock time: 10.717331647872925 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 24.270000000000110 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 24.310378551483154 +(PID.TID 0000.0001) User time: 12.883399367332458 +(PID.TID 0000.0001) System time: 2.4162083864212036E-002 +(PID.TID 0000.0001) Wall clock time: 12.910835981369019 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 21.439999999999984 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 21.499619245529175 +(PID.TID 0000.0001) User time: 12.609689235687256 +(PID.TID 0000.0001) System time: 2.8113126754760742E-002 +(PID.TID 0000.0001) Wall clock time: 12.642450571060181 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.9300000000000495 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.9293222427368164 +(PID.TID 0000.0001) User time: 0.39382743835449219 +(PID.TID 0000.0001) System time: 4.9948692321777344E-005 +(PID.TID 0000.0001) Wall clock time: 0.39412331581115723 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 -(PID.TID 0000.0001) Seconds in section "UPDATE_ETAH [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.00000000000051159E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.46572589874267578E-002 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.85927975177764893 +(PID.TID 0000.0001) System time: 2.9027462005615234E-005 +(PID.TID 0000.0001) Wall clock time: 0.85951900482177734 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.23999999999999488 +(PID.TID 0000.0001) User time: 6.9516897201538086E-004 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.24559617042541504 +(PID.TID 0000.0001) Wall clock time: 6.9856643676757812E-004 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.42999999999997840 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.41279888153076172 +(PID.TID 0000.0001) User time: 0.28949517011642456 +(PID.TID 0000.0001) System time: 6.2048435211181641E-005 +(PID.TID 0000.0001) Wall clock time: 0.28978705406188965 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.48000000000000398 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.49094676971435547 +(PID.TID 0000.0001) User time: 0.29113489389419556 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 0.29117107391357422 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.89000000000000057 +(PID.TID 0000.0001) User time: 0.63475108146667480 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.83876752853393555 -(PID.TID 0000.0001) No. starts: 80 -(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Wall clock time: 0.63478183746337891 +(PID.TID 0000.0001) No. starts: 10 +(PID.TID 0000.0001) No. stops: 10 (PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 1.1399999999999579 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.2313973903656006 +(PID.TID 0000.0001) User time: 0.89696824550628662 +(PID.TID 0000.0001) System time: 1.5974044799804688E-005 +(PID.TID 0000.0001) Wall clock time: 0.89721751213073730 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 3.99999999999920419E-002 +(PID.TID 0000.0001) User time: 1.9169270992279053E-002 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.21611714363098145 +(PID.TID 0000.0001) Wall clock time: 1.9162178039550781E-002 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 7.99999999999982947E-002 -(PID.TID 0000.0001) System time: 3.99999999999999800E-002 -(PID.TID 0000.0001) Wall clock time: 0.26608633995056152 +(PID.TID 0000.0001) User time: 2.2525310516357422E-002 +(PID.TID 0000.0001) System time: 1.1243999004364014E-002 +(PID.TID 0000.0001) Wall clock time: 3.3789157867431641E-002 (PID.TID 0000.0001) No. starts: 80 (PID.TID 0000.0001) No. stops: 80 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 9.99999999999801048E-003 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.64360904693603516E-002 +(PID.TID 0000.0001) User time: 4.5242309570312500E-003 +(PID.TID 0000.0001) System time: 1.0013580322265625E-005 +(PID.TID 0000.0001) Wall clock time: 4.5349597930908203E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "CTRL_PACK [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 9.99999999999801048E-003 +(PID.TID 0000.0001) User time: 2.8266906738281250E-003 (PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 1.81541442871093750E-002 +(PID.TID 0000.0001) Wall clock time: 2.8369426727294922E-003 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 57.369999999999997 -(PID.TID 0000.0001) System time: 2.00000000000000178E-002 -(PID.TID 0000.0001) Wall clock time: 57.569748878479004 +(PID.TID 0000.0001) User time: 33.017425537109375 +(PID.TID 0000.0001) System time: 0.10441398620605469 +(PID.TID 0000.0001) Wall clock time: 33.128025054931641 (PID.TID 0000.0001) No. starts: 1 (PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.46999999999998465 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 0.48144292831420898 +(PID.TID 0000.0001) User time: 0.28220367431640625 +(PID.TID 0000.0001) System time: 9.0130567550659180E-003 +(PID.TID 0000.0001) Wall clock time: 0.29137587547302246 (PID.TID 0000.0001) No. starts: 6 (PID.TID 0000.0001) No. stops: 6 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 56.870000000000033 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 56.994566202163696 +(PID.TID 0000.0001) User time: 32.721519470214844 +(PID.TID 0000.0001) System time: 8.7089002132415771E-002 +(PID.TID 0000.0001) Wall clock time: 32.814631938934326 (PID.TID 0000.0001) No. starts: 6 (PID.TID 0000.0001) No. stops: 6 -(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 56.240000000000023 -(PID.TID 0000.0001) System time: 1.00000000000000089E-002 -(PID.TID 0000.0001) Wall clock time: 56.386591672897339 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 32.398002624511719 +(PID.TID 0000.0001) System time: 8.4478020668029785E-002 +(PID.TID 0000.0001) Wall clock time: 32.488492488861084 (PID.TID 0000.0001) No. starts: 60 (PID.TID 0000.0001) No. stops: 60 (PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": -(PID.TID 0000.0001) User time: 4.00000000000062528E-002 -(PID.TID 0000.0001) System time: 0.0000000000000000 -(PID.TID 0000.0001) Wall clock time: 2.53791809082031250E-002 +(PID.TID 0000.0001) User time: 1.3496398925781250E-002 +(PID.TID 0000.0001) System time: 2.5869607925415039E-003 +(PID.TID 0000.0001) Wall clock time: 1.6092061996459961E-002 (PID.TID 0000.0001) No. starts: 6 (PID.TID 0000.0001) No. stops: 6 (PID.TID 0000.0001) // ====================================================== @@ -3284,9 +3753,9 @@ grad-res ------------------------------- (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 110462 +(PID.TID 0000.0001) // No. barriers = 110920 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 110462 +(PID.TID 0000.0001) // Total barrier spins = 110920 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_plume_on_slope/README b/verification/tutorial_plume_on_slope/README deleted file mode 100644 index 98fe51c536..0000000000 --- a/verification/tutorial_plume_on_slope/README +++ /dev/null @@ -1,26 +0,0 @@ -Tutorial Example: "Gravity plume on a continental slope" -======================================================== -(formerly "plume_on_slope" verification ; - also "nonhydrostatic_plume_on_slope" in release.1 branch) - -Configure and compile the code: - cd build - ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] - make depend - make - cd .. - -To run: - cd run - ln -s ../input/* . - ln -s ../build/mitgcmuv . - ./mitgcmuv > output.txt - cd .. - -There is comparison output in the directory: - results/output.txt - -Comments: - The input data is real*8 and generated using the MATLAB script - gendata.m. - diff --git a/verification/tutorial_plume_on_slope/README.md b/verification/tutorial_plume_on_slope/README.md new file mode 100644 index 0000000000..1c791a052b --- /dev/null +++ b/verification/tutorial_plume_on_slope/README.md @@ -0,0 +1,54 @@ +Tutorial Example: "Gravity plume on a continental slope" +======================================================== +(formerly "plume_on_slope" verification ; + also "nonhydrostatic_plume_on_slope" in release.1 branch) + +### Overview: +This is a 2D set-up with (variable) high-resolution and non-hydrostatic dynamics, where dense water is produced on a shelf that then flows as a gravity current down the slope. + +The **primary** test uses a no-slip bottom boundary condition (`no_slip_bottom=.TRUE.`) and no explicit drag. + +The **secondary** test `rough.Bot` uses the logarithmic law of the wall to compute the drag coefficient for quadratic bottom drag as a function of distance from the bottom (i.e. cell thickness) and a prescribed roughness length `zRoughBot = 0.01` (in meters). For this configuration (i.e. vertical grid spacing) this value of `zRoughBot` corresponds to approximately `bottomDragQuadratic=5.E-2`. For consistency, the bottom boundary conditions is set to free slip (`no_slip_bottom=.FALSE.`). + +## Instructions +Configure and compile the code: + +``` + cd build + ../../../tools/genmake2 -mods ../code [-of my_platform_optionFile] + make depend + make + cd .. +``` + +To run: + +``` + cd run + ln -s ../input/* . + ln -s ../build/mitgcmuv . + ./mitgcmuv > output.txt + cd .. +``` + +To run the **secondary** test `roughBot`: + +``` + cd run + rm * + ln -s ../input.roughBot/* . + ln -s ../input/* . + ../build/mitgcmuv > output.txt +``` + +There is comparison output in the directory: + +``` + results/output.txt + results/output.roughBot.txt +``` + +## Comments + The input data is `real*8` and generated using the MATLAB script + gendata.m. + diff --git a/verification/tutorial_plume_on_slope/code/MOM_COMMON_OPTIONS.h b/verification/tutorial_plume_on_slope/code/MOM_COMMON_OPTIONS.h new file mode 100644 index 0000000000..bda928a629 --- /dev/null +++ b/verification/tutorial_plume_on_slope/code/MOM_COMMON_OPTIONS.h @@ -0,0 +1,30 @@ +C CPP options file for mom_common package +C Use this file for selecting CPP options within the mom_common package + +#ifndef MOM_COMMON_OPTIONS_H +#define MOM_COMMON_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_MOM_COMMON +C Package-specific options go here + +C allow LeithQG coefficient to be calculated +#undef ALLOW_LEITH_QG + +C allow isotropic 3-D Smagorinsky viscosity +#undef ALLOW_SMAG_3D + +C allow full 3D specification of horizontal Laplacian Viscosity +#undef ALLOW_3D_VISCAH + +C allow full 3D specification of horizontal Biharmonic Viscosity +#undef ALLOW_3D_VISCA4 + +C Compute bottom drag coefficents, following the logarithmic law of the wall, +C as a function of grid cell thickness and roughness length +C zRoughBot (order 0.01m), assuming a von Karman constant = 0.4. +#define ALLOW_BOTTOMDRAG_ROUGHNESS + +#endif /* ALLOW_MOM_COMMON */ +#endif /* MOM_COMMON_OPTIONS_H */ diff --git a/verification/tutorial_plume_on_slope/input.roughBot/data b/verification/tutorial_plume_on_slope/input.roughBot/data new file mode 100644 index 0000000000..11128f3133 --- /dev/null +++ b/verification/tutorial_plume_on_slope/input.roughBot/data @@ -0,0 +1,84 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef=60*1., + sRef=60*35., + viscA4=0.0E4, + viscAh=1.E-2, + viscAz=1.E-3, + bottomDragLinear=0.E-4, + no_slip_sides=.TRUE., + no_slip_bottom=.FALSE., +# Instead of a constant bottom drag coefficient, compute coefficient +# from logarithmic law of the wall and bottom roughness length. + zRoughBot = 0.01, +# For this configuration (vertical grid spacing) +# this value of zRoughBot corresponds to approximately +# bottomDragQuadratic=5.E-2, + diffK4T=0.E4, + diffKhT=0.E-2, + diffKzT=0.E-3, + diffK4S=0.E4, + diffKhS=1.E-2, + diffKzS=1.E-5, + tempAdvScheme=33, + staggerTimeStep=.TRUE., + f0=0.e-4, + beta=0.E-11, + eosType='LINEAR', + tAlpha=2.E-4, + sBeta =0.E-4, + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + hFacMin=0.05, + nonHydrostatic=.TRUE., + readBinaryPrec=64, +#- not safe to use globalFiles in multi-processors runs +#globalFiles=.TRUE., + useSingleCpuIO = .TRUE., + plotLevel=0, + & + +# Elliptic solver parameters + &PARM02 + cg2dMaxIters=300, + cg2dTargetResidual=1.E-13, + cg3dMaxIters=20, + cg3dTargetResidual=1.E-8, + & + +# Time stepping parameters + &PARM03 + nIter0=0, + nTimeSteps=20, +#nTimeSteps=8640, + deltaT=20.0, + abEps=0.01, + pChkptFreq=0.0, + chkptFreq=0.0, + dumpFreq=6000.0, +#taveFreq=864000.0, + monitorSelect=2, + monitorFreq=1., + & + +# Gridding parameters + &PARM04 + usingCartesianGrid=.TRUE., + delXfile='dx.bin', + dYspacing=200., + delZ=60*3.33333333333333333333333, + & + +# Input datasets + &PARM05 + bathyFile ='topog.slope', + hydrogThetaFile='T.init', + surfQnetFile ='Qnet.forcing', +#hydrogThetaFile='T.pickup', +#uVelInitFile ='U.pickup', +#pSurfInitFile ='Eta.pickup', + & diff --git a/verification/global_with_exf/input_ad/eedata.mth b/verification/tutorial_plume_on_slope/input.roughBot/eedata.mth similarity index 100% rename from verification/global_with_exf/input_ad/eedata.mth rename to verification/tutorial_plume_on_slope/input.roughBot/eedata.mth diff --git a/verification/tutorial_plume_on_slope/results/output.roughBot.txt b/verification/tutorial_plume_on_slope/results/output.roughBot.txt new file mode 100644 index 0000000000..f875e98926 --- /dev/null +++ b/verification/tutorial_plume_on_slope/results/output.roughBot.txt @@ -0,0 +1,3235 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Thu Mar 30 15:52:04 EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 4 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 80 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 1 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 60 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 320 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 1 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 4, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000004, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000004, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000003, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000004, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000004, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=60*1., +(PID.TID 0000.0001) > sRef=60*35., +(PID.TID 0000.0001) > viscA4=0.0E4, +(PID.TID 0000.0001) > viscAh=1.E-2, +(PID.TID 0000.0001) > viscAz=1.E-3, +(PID.TID 0000.0001) > bottomDragLinear=0.E-4, +(PID.TID 0000.0001) > no_slip_sides=.TRUE., +(PID.TID 0000.0001) > no_slip_bottom=.FALSE., +(PID.TID 0000.0001) ># Instead of a constant bottom drag coefficient, compute coefficient +(PID.TID 0000.0001) ># from logarithmic law of the wall and bottom roughness length. +(PID.TID 0000.0001) > zRoughBot = 0.01, +(PID.TID 0000.0001) ># For this configuration (vertical grid spacing) +(PID.TID 0000.0001) ># this value of zRoughBot corresponds to approximately +(PID.TID 0000.0001) ># bottomDragQuadratic=5.E-2, +(PID.TID 0000.0001) > diffK4T=0.E4, +(PID.TID 0000.0001) > diffKhT=0.E-2, +(PID.TID 0000.0001) > diffKzT=0.E-3, +(PID.TID 0000.0001) > diffK4S=0.E4, +(PID.TID 0000.0001) > diffKhS=1.E-2, +(PID.TID 0000.0001) > diffKzS=1.E-5, +(PID.TID 0000.0001) > tempAdvScheme=33, +(PID.TID 0000.0001) > staggerTimeStep=.TRUE., +(PID.TID 0000.0001) > f0=0.e-4, +(PID.TID 0000.0001) > beta=0.E-11, +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta =0.E-4, +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > hFacMin=0.05, +(PID.TID 0000.0001) > nonHydrostatic=.TRUE., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) >#- not safe to use globalFiles in multi-processors runs +(PID.TID 0000.0001) >#globalFiles=.TRUE., +(PID.TID 0000.0001) > useSingleCpuIO = .TRUE., +(PID.TID 0000.0001) > plotLevel=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=300, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > cg3dMaxIters=20, +(PID.TID 0000.0001) > cg3dTargetResidual=1.E-8, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=20, +(PID.TID 0000.0001) >#nTimeSteps=8640, +(PID.TID 0000.0001) > deltaT=20.0, +(PID.TID 0000.0001) > abEps=0.01, +(PID.TID 0000.0001) > pChkptFreq=0.0, +(PID.TID 0000.0001) > chkptFreq=0.0, +(PID.TID 0000.0001) > dumpFreq=6000.0, +(PID.TID 0000.0001) >#taveFreq=864000.0, +(PID.TID 0000.0001) > monitorSelect=2, +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > delXfile='dx.bin', +(PID.TID 0000.0001) > dYspacing=200., +(PID.TID 0000.0001) > delZ=60*3.33333333333333333333333, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > bathyFile ='topog.slope', +(PID.TID 0000.0001) > hydrogThetaFile='T.init', +(PID.TID 0000.0001) > surfQnetFile ='Qnet.forcing', +(PID.TID 0000.0001) >#hydrogThetaFile='T.pickup', +(PID.TID 0000.0001) >#uVelInitFile ='U.pickup', +(PID.TID 0000.0001) >#pSurfInitFile ='Eta.pickup', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useOBCS=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/obcs compiled and used ( useOBCS = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: opening data.obcs +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.obcs +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.obcs" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Open-boundaries +(PID.TID 0000.0001) > &OBCS_PARM01 +(PID.TID 0000.0001) > OB_Ieast=1*-1, +(PID.TID 0000.0001) > useOrlanskiEast=.TRUE., +(PID.TID 0000.0001) > useOBCSbalance=.TRUE., +(PID.TID 0000.0001) > OBCS_monitorFreq=400., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Orlanski parameters +(PID.TID 0000.0001) > &OBCS_PARM02 +(PID.TID 0000.0001) > Cmax=0.45, +(PID.TID 0000.0001) > cVelTimeScale=1000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_READPARMS: finished reading data.obcs +(PID.TID 0000.0001) OB_indexUnset = /* unset OB index value (i.e. no OB) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Northern OB global indices : OB_Jnorth = +(PID.TID 0000.0001) 320 @ 0 /* I = 1:320 */ +(PID.TID 0000.0001) Southern OB global indices : OB_Jsouth = +(PID.TID 0000.0001) 320 @ 0 /* I = 1:320 */ +(PID.TID 0000.0001) Eastern OB global indices : OB_Ieast = +(PID.TID 0000.0001) 320 /* J = 1 */ +(PID.TID 0000.0001) Western OB global indices : OB_Iwest = +(PID.TID 0000.0001) 0 /* J = 1 */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) MDS_READVEC_LOC: open file: dx.bin +(PID.TID 0000.0001) S/R LOAD_GRID_SPACING: delX loaded from file: dx.bin +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 6.4030118978311E+03 +(PID.TID 0000.0001) %MON XC_min = 6.6667527892151E+00 +(PID.TID 0000.0001) %MON XC_mean = 2.4575819181463E+03 +(PID.TID 0000.0001) %MON XC_sd = 1.7058938715763E+03 +(PID.TID 0000.0001) %MON XG_max = 6.3832517139640E+03 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 2.4475463367687E+03 +(PID.TID 0000.0001) %MON XG_sd = 1.7014602049606E+03 +(PID.TID 0000.0001) %MON DXC_max = 3.9508304374678E+01 +(PID.TID 0000.0001) %MON DXC_min = 1.3333509993998E+01 +(PID.TID 0000.0001) %MON DXC_mean = 2.0071162755307E+01 +(PID.TID 0000.0001) %MON DXC_sd = 9.4906528979627E+00 +(PID.TID 0000.0001) %MON DXF_max = 3.9520367734344E+01 +(PID.TID 0000.0001) %MON DXF_min = 1.3333505578430E+01 +(PID.TID 0000.0001) %MON DXF_mean = 2.0071162755307E+01 +(PID.TID 0000.0001) %MON DXF_sd = 9.5190787885357E+00 +(PID.TID 0000.0001) %MON DXG_max = 3.9520367734344E+01 +(PID.TID 0000.0001) %MON DXG_min = 1.3333505578430E+01 +(PID.TID 0000.0001) %MON DXG_mean = 2.0071162755307E+01 +(PID.TID 0000.0001) %MON DXG_sd = 9.5190787885357E+00 +(PID.TID 0000.0001) %MON DXV_max = 3.9508304374678E+01 +(PID.TID 0000.0001) %MON DXV_min = 1.3333509993998E+01 +(PID.TID 0000.0001) %MON DXV_mean = 2.0071162755307E+01 +(PID.TID 0000.0001) %MON DXV_sd = 9.4906528979627E+00 +(PID.TID 0000.0001) %MON YC_max = 1.0000000000000E+02 +(PID.TID 0000.0001) %MON YC_min = 1.0000000000000E+02 +(PID.TID 0000.0001) %MON YC_mean = 1.0000000000000E+02 +(PID.TID 0000.0001) %MON YC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYC_max = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYC_min = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYC_mean = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYF_min = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYF_mean = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYG_min = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYG_mean = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYU_min = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYU_mean = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 7.9040735468688E+03 +(PID.TID 0000.0001) %MON RA_min = 2.6667011156861E+03 +(PID.TID 0000.0001) %MON RA_mean = 4.0142325510614E+03 +(PID.TID 0000.0001) %MON RA_sd = 1.9038157577071E+03 +(PID.TID 0000.0001) %MON RAW_max = 7.9016608749357E+03 +(PID.TID 0000.0001) %MON RAW_min = 2.6667019987996E+03 +(PID.TID 0000.0001) %MON RAW_mean = 4.0142325510614E+03 +(PID.TID 0000.0001) %MON RAW_sd = 1.8981305795925E+03 +(PID.TID 0000.0001) %MON RAS_max = 7.9040735468688E+03 +(PID.TID 0000.0001) %MON RAS_min = 2.6667011156861E+03 +(PID.TID 0000.0001) %MON RAS_mean = 4.0142325510614E+03 +(PID.TID 0000.0001) %MON RAS_sd = 1.9038157577071E+03 +(PID.TID 0000.0001) %MON RAZ_max = 7.9016608749357E+03 +(PID.TID 0000.0001) %MON RAZ_min = 2.6667019987996E+03 +(PID.TID 0000.0001) %MON RAZ_mean = 4.0142325510614E+03 +(PID.TID 0000.0001) %MON RAZ_sd = 1.8981305795925E+03 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: topog.slope +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 2 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 33 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 33 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) %MON fCori_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 3.8311188275726068E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_CG3D: CG3D normalisation factor = 4.2198108575273687E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 60 @ 1.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 60 @ 3.500000000000000E+01 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 60 @ 9.998000000000000E+02 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 60 @ 0.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAhW = /* Lateral harmonic viscosity in W eq. ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4W = /* Lateral biharmonic viscosity in W eq. ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 60 @ 1.000000000000000E-03 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zRoughBot = /* roughness length for bottom friction (m) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 60 @ 0.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 60 @ 1.000000000000000E-05 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 60 @ 1.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 61 @ 1.000000000000000E+00 /* K = 1: 61 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 60 @ 1.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 61 @ 1.000000000000000E+00 /* K = 1: 61 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 300 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 60 @ 2.000000000000000E+01 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 2.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 4.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 6.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 6.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000200040008002E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 1.666666666666667E+00, /* K = 1 */ +(PID.TID 0000.0001) 59 @ 3.333333333333333E+00, /* K = 2: 60 */ +(PID.TID 0000.0001) 1.666666666666667E+00 /* K = 61 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 60 @ 3.333333333333333E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 1.333350557843028E+01, /* I = 1 */ +(PID.TID 0000.0001) 1.333351440956528E+01, /* I = 2 */ +(PID.TID 0000.0001) 1.333352369347595E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.334142525413410E+01, /* I = 78 */ +(PID.TID 0000.0001) 1.334184000343805E+01, /* I = 79 */ +(PID.TID 0000.0001) 1.334227600347911E+01, /* I = 80 */ +(PID.TID 0000.0001) 1.334273434234323E+01, /* I = 81 */ +(PID.TID 0000.0001) 1.334321616375004E+01, /* I = 82 */ +(PID.TID 0000.0001) 1.334372266988904E+01, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.376806664990509E+01, /* I =158 */ +(PID.TID 0000.0001) 1.378997422175274E+01, /* I =159 */ +(PID.TID 0000.0001) 1.381296559898911E+01, /* I =160 */ +(PID.TID 0000.0001) 1.383709231832104E+01, /* I =161 */ +(PID.TID 0000.0001) 1.386240815290873E+01, /* I =162 */ +(PID.TID 0000.0001) 1.388896918716481E+01, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.600055500056160E+01, /* I =238 */ +(PID.TID 0000.0001) 2.633340276042106E+01, /* I =239 */ +(PID.TID 0000.0001) 2.666666666666666E+01, /* I =240 */ +(PID.TID 0000.0001) 2.699993057291228E+01, /* I =241 */ +(PID.TID 0000.0001) 2.733277833277173E+01, /* I =242 */ +(PID.TID 0000.0001) 2.766479587583332E+01, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.947092518042460E+01, /* I =318 */ +(PID.TID 0000.0001) 3.949624101501229E+01, /* I =319 */ +(PID.TID 0000.0001) 3.952036773434423E+01 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 6.666752789215142E+00, /* I = 1 */ +(PID.TID 0000.0001) 2.000026278321292E+01, /* I = 2 */ +(PID.TID 0000.0001) 3.333378183473354E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.033491870505545E+03, /* I = 78 */ +(PID.TID 0000.0001) 1.046833503134331E+03, /* I = 79 */ +(PID.TID 0000.0001) 1.060175561137789E+03, /* I = 80 */ +(PID.TID 0000.0001) 1.073518066310700E+03, /* I = 81 */ +(PID.TID 0000.0001) 1.086861041563747E+03, /* I = 82 */ +(PID.TID 0000.0001) 1.100204510980566E+03, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.108764740818271E+03, /* I =158 */ +(PID.TID 0000.0001) 2.122543761254100E+03, /* I =159 */ +(PID.TID 0000.0001) 2.136345231164471E+03, /* I =160 */ +(PID.TID 0000.0001) 2.150170260123126E+03, /* I =161 */ +(PID.TID 0000.0001) 2.164020010358741E+03, /* I =162 */ +(PID.TID 0000.0001) 2.177895699028778E+03, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.510369234886317E+03, /* I =238 */ +(PID.TID 0000.0001) 3.536536213766808E+03, /* I =239 */ +(PID.TID 0000.0001) 3.563036248480352E+03, /* I =240 */ +(PID.TID 0000.0001) 3.589869547100142E+03, /* I =241 */ +(PID.TID 0000.0001) 3.617035901552984E+03, /* I =242 */ +(PID.TID 0000.0001) 3.644534688657286E+03, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 6.324020010358740E+03, /* I =318 */ +(PID.TID 0000.0001) 6.363503593456458E+03, /* I =319 */ +(PID.TID 0000.0001) 6.403011897831137E+03 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 1.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -1.666666666666667E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+00, /* K = 2 */ +(PID.TID 0000.0001) -8.333333333333334E+00, /* K = 3 */ +(PID.TID 0000.0001) -1.166666666666667E+01, /* K = 4 */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -1.833333333333334E+01, /* K = 6 */ +(PID.TID 0000.0001) -2.166666666666667E+01, /* K = 7 */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) -2.833333333333333E+01, /* K = 9 */ +(PID.TID 0000.0001) -3.166666666666666E+01, /* K = 10 */ +(PID.TID 0000.0001) -3.500000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) -3.833333333333334E+01, /* K = 12 */ +(PID.TID 0000.0001) -4.166666666666667E+01, /* K = 13 */ +(PID.TID 0000.0001) -4.500000000000001E+01, /* K = 14 */ +(PID.TID 0000.0001) -4.833333333333334E+01, /* K = 15 */ +(PID.TID 0000.0001) -5.166666666666668E+01, /* K = 16 */ +(PID.TID 0000.0001) -5.500000000000001E+01, /* K = 17 */ +(PID.TID 0000.0001) -5.833333333333335E+01, /* K = 18 */ +(PID.TID 0000.0001) -6.166666666666669E+01, /* K = 19 */ +(PID.TID 0000.0001) -6.500000000000001E+01, /* K = 20 */ +(PID.TID 0000.0001) -6.833333333333334E+01, /* K = 21 */ +(PID.TID 0000.0001) -7.166666666666667E+01, /* K = 22 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 23 */ +(PID.TID 0000.0001) -7.833333333333333E+01, /* K = 24 */ +(PID.TID 0000.0001) -8.166666666666666E+01, /* K = 25 */ +(PID.TID 0000.0001) -8.499999999999999E+01, /* K = 26 */ +(PID.TID 0000.0001) -8.833333333333331E+01, /* K = 27 */ +(PID.TID 0000.0001) -9.166666666666664E+01, /* K = 28 */ +(PID.TID 0000.0001) -9.499999999999997E+01, /* K = 29 */ +(PID.TID 0000.0001) -9.833333333333330E+01, /* K = 30 */ +(PID.TID 0000.0001) -1.016666666666666E+02, /* K = 31 */ +(PID.TID 0000.0001) -1.050000000000000E+02, /* K = 32 */ +(PID.TID 0000.0001) -1.083333333333333E+02, /* K = 33 */ +(PID.TID 0000.0001) -1.116666666666666E+02, /* K = 34 */ +(PID.TID 0000.0001) -1.149999999999999E+02, /* K = 35 */ +(PID.TID 0000.0001) -1.183333333333333E+02, /* K = 36 */ +(PID.TID 0000.0001) -1.216666666666666E+02, /* K = 37 */ +(PID.TID 0000.0001) -1.249999999999999E+02, /* K = 38 */ +(PID.TID 0000.0001) -1.283333333333333E+02, /* K = 39 */ +(PID.TID 0000.0001) -1.316666666666666E+02, /* K = 40 */ +(PID.TID 0000.0001) -1.349999999999999E+02, /* K = 41 */ +(PID.TID 0000.0001) -1.383333333333333E+02, /* K = 42 */ +(PID.TID 0000.0001) -1.416666666666666E+02, /* K = 43 */ +(PID.TID 0000.0001) -1.450000000000000E+02, /* K = 44 */ +(PID.TID 0000.0001) -1.483333333333333E+02, /* K = 45 */ +(PID.TID 0000.0001) -1.516666666666667E+02, /* K = 46 */ +(PID.TID 0000.0001) -1.550000000000000E+02, /* K = 47 */ +(PID.TID 0000.0001) -1.583333333333333E+02, /* K = 48 */ +(PID.TID 0000.0001) -1.616666666666667E+02, /* K = 49 */ +(PID.TID 0000.0001) -1.650000000000000E+02, /* K = 50 */ +(PID.TID 0000.0001) -1.683333333333334E+02, /* K = 51 */ +(PID.TID 0000.0001) -1.716666666666667E+02, /* K = 52 */ +(PID.TID 0000.0001) -1.750000000000001E+02, /* K = 53 */ +(PID.TID 0000.0001) -1.783333333333334E+02, /* K = 54 */ +(PID.TID 0000.0001) -1.816666666666667E+02, /* K = 55 */ +(PID.TID 0000.0001) -1.850000000000001E+02, /* K = 56 */ +(PID.TID 0000.0001) -1.883333333333334E+02, /* K = 57 */ +(PID.TID 0000.0001) -1.916666666666668E+02, /* K = 58 */ +(PID.TID 0000.0001) -1.950000000000001E+02, /* K = 59 */ +(PID.TID 0000.0001) -1.983333333333335E+02 /* K = 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -3.333333333333333E+00, /* K = 2 */ +(PID.TID 0000.0001) -6.666666666666667E+00, /* K = 3 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -1.333333333333333E+01, /* K = 5 */ +(PID.TID 0000.0001) -1.666666666666667E+01, /* K = 6 */ +(PID.TID 0000.0001) -2.000000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) -2.333333333333333E+01, /* K = 8 */ +(PID.TID 0000.0001) -2.666666666666666E+01, /* K = 9 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) -3.333333333333333E+01, /* K = 11 */ +(PID.TID 0000.0001) -3.666666666666666E+01, /* K = 12 */ +(PID.TID 0000.0001) -4.000000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) -4.333333333333334E+01, /* K = 14 */ +(PID.TID 0000.0001) -4.666666666666667E+01, /* K = 15 */ +(PID.TID 0000.0001) -5.000000000000001E+01, /* K = 16 */ +(PID.TID 0000.0001) -5.333333333333334E+01, /* K = 17 */ +(PID.TID 0000.0001) -5.666666666666668E+01, /* K = 18 */ +(PID.TID 0000.0001) -6.000000000000001E+01, /* K = 19 */ +(PID.TID 0000.0001) -6.333333333333335E+01, /* K = 20 */ +(PID.TID 0000.0001) -6.666666666666669E+01, /* K = 21 */ +(PID.TID 0000.0001) -7.000000000000001E+01, /* K = 22 */ +(PID.TID 0000.0001) -7.333333333333334E+01, /* K = 23 */ +(PID.TID 0000.0001) -7.666666666666667E+01, /* K = 24 */ +(PID.TID 0000.0001) -8.000000000000000E+01, /* K = 25 */ +(PID.TID 0000.0001) -8.333333333333333E+01, /* K = 26 */ +(PID.TID 0000.0001) -8.666666666666666E+01, /* K = 27 */ +(PID.TID 0000.0001) -8.999999999999999E+01, /* K = 28 */ +(PID.TID 0000.0001) -9.333333333333331E+01, /* K = 29 */ +(PID.TID 0000.0001) -9.666666666666664E+01, /* K = 30 */ +(PID.TID 0000.0001) -9.999999999999997E+01, /* K = 31 */ +(PID.TID 0000.0001) -1.033333333333333E+02, /* K = 32 */ +(PID.TID 0000.0001) -1.066666666666666E+02, /* K = 33 */ +(PID.TID 0000.0001) -1.100000000000000E+02, /* K = 34 */ +(PID.TID 0000.0001) -1.133333333333333E+02, /* K = 35 */ +(PID.TID 0000.0001) -1.166666666666666E+02, /* K = 36 */ +(PID.TID 0000.0001) -1.199999999999999E+02, /* K = 37 */ +(PID.TID 0000.0001) -1.233333333333333E+02, /* K = 38 */ +(PID.TID 0000.0001) -1.266666666666666E+02, /* K = 39 */ +(PID.TID 0000.0001) -1.299999999999999E+02, /* K = 40 */ +(PID.TID 0000.0001) -1.333333333333333E+02, /* K = 41 */ +(PID.TID 0000.0001) -1.366666666666666E+02, /* K = 42 */ +(PID.TID 0000.0001) -1.400000000000000E+02, /* K = 43 */ +(PID.TID 0000.0001) -1.433333333333333E+02, /* K = 44 */ +(PID.TID 0000.0001) -1.466666666666667E+02, /* K = 45 */ +(PID.TID 0000.0001) -1.500000000000000E+02, /* K = 46 */ +(PID.TID 0000.0001) -1.533333333333333E+02, /* K = 47 */ +(PID.TID 0000.0001) -1.566666666666667E+02, /* K = 48 */ +(PID.TID 0000.0001) -1.600000000000000E+02, /* K = 49 */ +(PID.TID 0000.0001) -1.633333333333334E+02, /* K = 50 */ +(PID.TID 0000.0001) -1.666666666666667E+02, /* K = 51 */ +(PID.TID 0000.0001) -1.700000000000001E+02, /* K = 52 */ +(PID.TID 0000.0001) -1.733333333333334E+02, /* K = 53 */ +(PID.TID 0000.0001) -1.766666666666667E+02, /* K = 54 */ +(PID.TID 0000.0001) -1.800000000000001E+02, /* K = 55 */ +(PID.TID 0000.0001) -1.833333333333334E+02, /* K = 56 */ +(PID.TID 0000.0001) -1.866666666666668E+02, /* K = 57 */ +(PID.TID 0000.0001) -1.900000000000001E+02, /* K = 58 */ +(PID.TID 0000.0001) -1.933333333333335E+02, /* K = 59 */ +(PID.TID 0000.0001) -1.966666666666668E+02, /* K = 60 */ +(PID.TID 0000.0001) -2.000000000000001E+02 /* K = 61 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 60 @ 1.000000000000000E+00 /* K = 1: 60 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 61 @ 1.000000000000000E+00 /* K = 1: 61 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.333350557843028E+01, /* I = 1 */ +(PID.TID 0000.0001) 1.333351440956528E+01, /* I = 2 */ +(PID.TID 0000.0001) 1.333352369347595E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.334142525413410E+01, /* I = 78 */ +(PID.TID 0000.0001) 1.334184000343805E+01, /* I = 79 */ +(PID.TID 0000.0001) 1.334227600347911E+01, /* I = 80 */ +(PID.TID 0000.0001) 1.334273434234323E+01, /* I = 81 */ +(PID.TID 0000.0001) 1.334321616375004E+01, /* I = 82 */ +(PID.TID 0000.0001) 1.334372266988904E+01, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.376806664990509E+01, /* I =158 */ +(PID.TID 0000.0001) 1.378997422175274E+01, /* I =159 */ +(PID.TID 0000.0001) 1.381296559898911E+01, /* I =160 */ +(PID.TID 0000.0001) 1.383709231832104E+01, /* I =161 */ +(PID.TID 0000.0001) 1.386240815290873E+01, /* I =162 */ +(PID.TID 0000.0001) 1.388896918716481E+01, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.600055500056160E+01, /* I =238 */ +(PID.TID 0000.0001) 2.633340276042106E+01, /* I =239 */ +(PID.TID 0000.0001) 2.666666666666666E+01, /* I =240 */ +(PID.TID 0000.0001) 2.699993057291228E+01, /* I =241 */ +(PID.TID 0000.0001) 2.733277833277173E+01, /* I =242 */ +(PID.TID 0000.0001) 2.766479587583332E+01, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.947092518042460E+01, /* I =318 */ +(PID.TID 0000.0001) 3.949624101501229E+01, /* I =319 */ +(PID.TID 0000.0001) 3.952036773434423E+01 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.333350557843028E+01 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 320 @ 2.000000000000000E+02 /* I = 1:320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 1.333350557843028E+01, /* I = 1 */ +(PID.TID 0000.0001) 1.333351440956528E+01, /* I = 2 */ +(PID.TID 0000.0001) 1.333352369347595E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.334142525413410E+01, /* I = 78 */ +(PID.TID 0000.0001) 1.334184000343805E+01, /* I = 79 */ +(PID.TID 0000.0001) 1.334227600347911E+01, /* I = 80 */ +(PID.TID 0000.0001) 1.334273434234323E+01, /* I = 81 */ +(PID.TID 0000.0001) 1.334321616375004E+01, /* I = 82 */ +(PID.TID 0000.0001) 1.334372266988904E+01, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.376806664990509E+01, /* I =158 */ +(PID.TID 0000.0001) 1.378997422175274E+01, /* I =159 */ +(PID.TID 0000.0001) 1.381296559898911E+01, /* I =160 */ +(PID.TID 0000.0001) 1.383709231832104E+01, /* I =161 */ +(PID.TID 0000.0001) 1.386240815290873E+01, /* I =162 */ +(PID.TID 0000.0001) 1.388896918716481E+01, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.600055500056160E+01, /* I =238 */ +(PID.TID 0000.0001) 2.633340276042106E+01, /* I =239 */ +(PID.TID 0000.0001) 2.666666666666666E+01, /* I =240 */ +(PID.TID 0000.0001) 2.699993057291228E+01, /* I =241 */ +(PID.TID 0000.0001) 2.733277833277173E+01, /* I =242 */ +(PID.TID 0000.0001) 2.766479587583332E+01, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.947092518042460E+01, /* I =318 */ +(PID.TID 0000.0001) 3.949624101501229E+01, /* I =319 */ +(PID.TID 0000.0001) 3.952036773434423E+01 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 1.333350557843028E+01 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 320 @ 2.000000000000000E+02 /* I = 1:320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 2.642693665638726E+01, /* I = 1 */ +(PID.TID 0000.0001) 1.333350999399778E+01, /* I = 2 */ +(PID.TID 0000.0001) 1.333351905152062E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.334122798727485E+01, /* I = 78 */ +(PID.TID 0000.0001) 1.334163262878608E+01, /* I = 79 */ +(PID.TID 0000.0001) 1.334205800345858E+01, /* I = 80 */ +(PID.TID 0000.0001) 1.334250517291117E+01, /* I = 81 */ +(PID.TID 0000.0001) 1.334297525304664E+01, /* I = 82 */ +(PID.TID 0000.0001) 1.334346941681954E+01, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.375763007933133E+01, /* I =158 */ +(PID.TID 0000.0001) 1.377902043582892E+01, /* I =159 */ +(PID.TID 0000.0001) 1.380146991037093E+01, /* I =160 */ +(PID.TID 0000.0001) 1.382502895865507E+01, /* I =161 */ +(PID.TID 0000.0001) 1.384975023561489E+01, /* I =162 */ +(PID.TID 0000.0001) 1.387568867003677E+01, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.583454622903081E+01, /* I =238 */ +(PID.TID 0000.0001) 2.616697888049133E+01, /* I =239 */ +(PID.TID 0000.0001) 2.650003471354386E+01, /* I =240 */ +(PID.TID 0000.0001) 2.683329861978947E+01, /* I =241 */ +(PID.TID 0000.0001) 2.716635445284200E+01, /* I =242 */ +(PID.TID 0000.0001) 2.749878710430253E+01, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.945764466329656E+01, /* I =318 */ +(PID.TID 0000.0001) 3.948358309771845E+01, /* I =319 */ +(PID.TID 0000.0001) 3.950830437467826E+01 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.642693665638726E+01 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 320 @ 2.000000000000000E+02 /* I = 1:320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 2.642693665638726E+01, /* I = 1 */ +(PID.TID 0000.0001) 1.333350999399778E+01, /* I = 2 */ +(PID.TID 0000.0001) 1.333351905152062E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.334122798727485E+01, /* I = 78 */ +(PID.TID 0000.0001) 1.334163262878608E+01, /* I = 79 */ +(PID.TID 0000.0001) 1.334205800345858E+01, /* I = 80 */ +(PID.TID 0000.0001) 1.334250517291117E+01, /* I = 81 */ +(PID.TID 0000.0001) 1.334297525304664E+01, /* I = 82 */ +(PID.TID 0000.0001) 1.334346941681954E+01, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.375763007933133E+01, /* I =158 */ +(PID.TID 0000.0001) 1.377902043582892E+01, /* I =159 */ +(PID.TID 0000.0001) 1.380146991037093E+01, /* I =160 */ +(PID.TID 0000.0001) 1.382502895865507E+01, /* I =161 */ +(PID.TID 0000.0001) 1.384975023561489E+01, /* I =162 */ +(PID.TID 0000.0001) 1.387568867003677E+01, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.583454622903081E+01, /* I =238 */ +(PID.TID 0000.0001) 2.616697888049133E+01, /* I =239 */ +(PID.TID 0000.0001) 2.650003471354386E+01, /* I =240 */ +(PID.TID 0000.0001) 2.683329861978947E+01, /* I =241 */ +(PID.TID 0000.0001) 2.716635445284200E+01, /* I =242 */ +(PID.TID 0000.0001) 2.749878710430253E+01, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.945764466329656E+01, /* I =318 */ +(PID.TID 0000.0001) 3.948358309771845E+01, /* I =319 */ +(PID.TID 0000.0001) 3.950830437467826E+01 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.642693665638726E+01 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 320 @ 2.000000000000000E+02 /* I = 1:320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.666701115686057E+03, /* I = 1 */ +(PID.TID 0000.0001) 2.666702881913057E+03, /* I = 2 */ +(PID.TID 0000.0001) 2.666704738695189E+03, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.668285050826821E+03, /* I = 78 */ +(PID.TID 0000.0001) 2.668368000687609E+03, /* I = 79 */ +(PID.TID 0000.0001) 2.668455200695822E+03, /* I = 80 */ +(PID.TID 0000.0001) 2.668546868468647E+03, /* I = 81 */ +(PID.TID 0000.0001) 2.668643232750007E+03, /* I = 82 */ +(PID.TID 0000.0001) 2.668744533977807E+03, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.753613329981019E+03, /* I =158 */ +(PID.TID 0000.0001) 2.757994844350548E+03, /* I =159 */ +(PID.TID 0000.0001) 2.762593119797822E+03, /* I =160 */ +(PID.TID 0000.0001) 2.767418463664208E+03, /* I =161 */ +(PID.TID 0000.0001) 2.772481630581747E+03, /* I =162 */ +(PID.TID 0000.0001) 2.777793837432962E+03, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 5.200111000112320E+03, /* I =238 */ +(PID.TID 0000.0001) 5.266680552084212E+03, /* I =239 */ +(PID.TID 0000.0001) 5.333333333333333E+03, /* I =240 */ +(PID.TID 0000.0001) 5.399986114582455E+03, /* I =241 */ +(PID.TID 0000.0001) 5.466555666554346E+03, /* I =242 */ +(PID.TID 0000.0001) 5.532959175166664E+03, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.894185036084920E+03, /* I =318 */ +(PID.TID 0000.0001) 7.899248203002459E+03, /* I =319 */ +(PID.TID 0000.0001) 7.904073546868845E+03 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.666701115686057E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 5.285387331277451E+03, /* I = 1 */ +(PID.TID 0000.0001) 2.666701998799557E+03, /* I = 2 */ +(PID.TID 0000.0001) 2.666703810304123E+03, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.668245597454970E+03, /* I = 78 */ +(PID.TID 0000.0001) 2.668326525757215E+03, /* I = 79 */ +(PID.TID 0000.0001) 2.668411600691716E+03, /* I = 80 */ +(PID.TID 0000.0001) 2.668501034582234E+03, /* I = 81 */ +(PID.TID 0000.0001) 2.668595050609327E+03, /* I = 82 */ +(PID.TID 0000.0001) 2.668693883363907E+03, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.751526015866266E+03, /* I =158 */ +(PID.TID 0000.0001) 2.755804087165784E+03, /* I =159 */ +(PID.TID 0000.0001) 2.760293982074185E+03, /* I =160 */ +(PID.TID 0000.0001) 2.765005791731015E+03, /* I =161 */ +(PID.TID 0000.0001) 2.769950047122978E+03, /* I =162 */ +(PID.TID 0000.0001) 2.775137734007355E+03, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 5.166909245806161E+03, /* I =238 */ +(PID.TID 0000.0001) 5.233395776098266E+03, /* I =239 */ +(PID.TID 0000.0001) 5.300006942708772E+03, /* I =240 */ +(PID.TID 0000.0001) 5.366659723957894E+03, /* I =241 */ +(PID.TID 0000.0001) 5.433270890568401E+03, /* I =242 */ +(PID.TID 0000.0001) 5.499757420860506E+03, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.891528932659313E+03, /* I =318 */ +(PID.TID 0000.0001) 7.896716619543690E+03, /* I =319 */ +(PID.TID 0000.0001) 7.901660874935652E+03 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 5.285387331277451E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.666701115686057E+03, /* I = 1 */ +(PID.TID 0000.0001) 2.666702881913057E+03, /* I = 2 */ +(PID.TID 0000.0001) 2.666704738695189E+03, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.668285050826821E+03, /* I = 78 */ +(PID.TID 0000.0001) 2.668368000687609E+03, /* I = 79 */ +(PID.TID 0000.0001) 2.668455200695822E+03, /* I = 80 */ +(PID.TID 0000.0001) 2.668546868468647E+03, /* I = 81 */ +(PID.TID 0000.0001) 2.668643232750007E+03, /* I = 82 */ +(PID.TID 0000.0001) 2.668744533977807E+03, /* I = 83 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.753613329981019E+03, /* I =158 */ +(PID.TID 0000.0001) 2.757994844350548E+03, /* I =159 */ +(PID.TID 0000.0001) 2.762593119797822E+03, /* I =160 */ +(PID.TID 0000.0001) 2.767418463664208E+03, /* I =161 */ +(PID.TID 0000.0001) 2.772481630581747E+03, /* I =162 */ +(PID.TID 0000.0001) 2.777793837432962E+03, /* I =163 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 5.200111000112320E+03, /* I =238 */ +(PID.TID 0000.0001) 5.266680552084212E+03, /* I =239 */ +(PID.TID 0000.0001) 5.333333333333333E+03, /* I =240 */ +(PID.TID 0000.0001) 5.399986114582455E+03, /* I =241 */ +(PID.TID 0000.0001) 5.466555666554346E+03, /* I =242 */ +(PID.TID 0000.0001) 5.532959175166664E+03, /* I =243 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 7.894185036084920E+03, /* I =318 */ +(PID.TID 0000.0001) 7.899248203002459E+03, /* I =319 */ +(PID.TID 0000.0001) 7.904073546868845E+03 /* I =320 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.666701115686057E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 1.273983641677108E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_OBCS +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // OBCS_CHECK: OBCS configuration summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) useOBCSprescribe = /* prescribe OB values */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCSbalance = /* balance the flow through OB */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCSbalanceSurf = /* include surf. flux in balance */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_balanceFacN = /* Northern OB Factor for balancing OB flow [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_balanceFacS = /* Southern OB Factor for balancing OB flow [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_balanceFacE = /* Eastern OB Factor for balancing OB flow [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_balanceFacW = /* Western OB Factor for balancing OB flow [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCSfixTopo = /* mod. topo to have zero gradient across boundaries. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_uvApplyFac = /* Factor to apply to U,V 2nd column/row */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_T = /* Temp uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_u1_adv_S = /* Salt uses upwind adv-scheme @ OB */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monitorFreq = /* monitor output frequency [s] */ +(PID.TID 0000.0001) 4.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCS_monSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OBCSprintDiags = /* print some OBCS diagnostics. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCStides = /* apply tidal forcing through OB */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tidalPeriod = /* (s) */ +(PID.TID 0000.0001) 10 @ 0.000000000000000E+00 /* I = 1: 10 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiNorth = /* use Orlanski for northern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiSouth = /* use Orlanski for southern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiEast = /* use Orlanski for eastern bound. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOrlanskiWest = /* use Orlanski for western bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensNorth = /* use Stevens for northern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensSouth = /* use Stevens for southern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensEast = /* use Stevens for eastern bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensWest = /* use Stevens for western bound. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensPhaseVel = /* include phase vel. term. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStevensAdvection = /* include advection term. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) TrelaxStevens = /* relaxation time scale for theta ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SrelaxStevens = /* relaxation time scale for salinity ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useOBCSSponge = /* use sponge along boundaries */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) OB_indexNone = /* null value for OB index (i.e. no OB) */ +(PID.TID 0000.0001) -99 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ======== Tile bi= 1 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) ======== Tile bi= 2 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) ======== Tile bi= 3 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) ======== Tile bi= 4 , bj= 1 ======== +(PID.TID 0000.0001) OB_Jn = /* Northern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Js = /* Southern OB local indices */ +(PID.TID 0000.0001) 86 @ -99 /* I = -2: 83 */ +(PID.TID 0000.0001) OB_Ie = /* Eastern OB local indices */ +(PID.TID 0000.0001) 7 @ 80 /* J = -2: 4 */ +(PID.TID 0000.0001) OB_Iw = /* Western OB local indices */ +(PID.TID 0000.0001) 7 @ -99 /* J = -2: 4 */ +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of OBCS config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) OBCS_CHECK: #define ALLOW_ORLANSKI +(PID.TID 0000.0001) OBCS_CHECK: set-up OK +(PID.TID 0000.0001) OBCS_CHECK: check Inside Mask and OB locations: OK +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: T.init +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet.forcing +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9980345224379E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = 3.9889598923900E-07 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0640617176934E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8825342517700E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1216372586452E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_time_tsnumber = 0 +(PID.TID 0000.0001) %MON obc_time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON obc_E_uVel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON obc_E_uVel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: zeroPsNH= F , zeroMeanPnh= F +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: oldFreeSurfTerm = T + cg2d: Sum(rhs),rhsMax = 6.66133814775094E-16 4.34534814524274E-04 +(PID.TID 0000.0001) cg2d_init_res = 4.31213602031276E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 199 +(PID.TID 0000.0001) cg2d_last_res = 8.69882100770269E-14 + cg3d: Sum(rhs),rhsMax = -2.73210273848967E-14 9.42857689229853E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.10684632797408E+01 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 3.04049897397057E-03 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 2.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.3725500233583E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.0699974017747E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.1801260627244E-19 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.5296024184042E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0533798245052E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0004216839354E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0905120582135E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0756742432170E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1316815734603E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.6951890137339E-07 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.9133299602885E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.5323128568249E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -5.7732074913562E-23 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0618351917428E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.8122434880565E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9980210743326E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.6971463843299E-06 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0633840131541E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8823288461251E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1209819701864E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2946484398834E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.7193877140949E-04 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6354763613003E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.7193877140949E-04 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.7193877140949E-04 +(PID.TID 0000.0001) %MON pe_b_mean = 1.7623453526678E-12 +(PID.TID 0000.0001) %MON ke_max = 4.7002899891188E-09 +(PID.TID 0000.0001) %MON ke_mean = 4.3923124901351E-10 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 2.3960859949972E-10 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.7843013716005E-21 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.23815813142625E-06 4.34550800999035E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.57377283861334E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 7.42767194477353E-14 + cg3d: Sum(rhs),rhsMax = 7.11930514540882E-15 9.42787453239293E-06 +(PID.TID 0000.0001) cg3d_init_res = 7.82205886086472E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 3.60371778783145E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 4.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4209078977724E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.0550421704206E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -7.9707986619789E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6288707639973E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0551011746044E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9909757529946E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1605805942540E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.4918590059606E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.2577106075981E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.1360462000507E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7788404001256E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.9027029154783E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.3949375288869E-22 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.1157398571935E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1596812176664E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9979934955426E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8990100788158E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0627063390148E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8819511341779E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1196750979156E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.5575658301707E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1416217492870E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.2402929082467E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1416217492870E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1416217492870E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8091203051251E-12 +(PID.TID 0000.0001) %MON ke_max = 1.8726890597219E-08 +(PID.TID 0000.0001) %MON ke_mean = 1.7512500623063E-09 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -4.9915406082761E-14 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -5.8148023957822E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.41481457020909E-06 4.34511207280642E-04 +(PID.TID 0000.0001) cg2d_init_res = 9.24082669891254E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 6.09123787664842E-14 + cg3d: Sum(rhs),rhsMax = 6.64572563646715E-14 9.42551251836822E-06 +(PID.TID 0000.0001) cg3d_init_res = 3.64962857081734E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.98276558094457E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 6.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4086829539332E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.0349422672653E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -8.5991453021286E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6273125820413E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0535967865542E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9793294453878E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.2185343110942E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.6845706618984E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3779925093980E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.7003809576567E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 2.6644438863733E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.8498330553196E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 8.0106055145253E-11 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.1666245963179E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.7365170464312E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9979520457098E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -5.7713868592836E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0620286653525E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8814018443826E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1177191871126E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.7992969487489E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.7098998331917E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.8269404672626E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.7098998331917E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7098998331917E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8083813652621E-12 +(PID.TID 0000.0001) %MON ke_max = 4.2003030071767E-08 +(PID.TID 0000.0001) %MON ke_mean = 3.9305298551232E-09 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -3.0170376091621E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -7.4073915869837E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 1.91505486450694E-06 4.34475043664295E-04 +(PID.TID 0000.0001) cg2d_init_res = 7.34277256895778E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 186 +(PID.TID 0000.0001) cg2d_last_res = 5.31479418783895E-14 + cg3d: Sum(rhs),rhsMax = 5.54849135386837E-14 9.42215859953424E-06 +(PID.TID 0000.0001) cg3d_init_res = 9.36355444481918E-03 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.52314019033639E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 8.0000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.3971539549744E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.0026517887242E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -6.8189353586751E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6439490258528E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0527882453940E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9647194365496E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.2646295904740E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7033546557638E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4932770713200E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.2625876500548E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 3.5477973859371E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -3.7946070255206E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8249858402952E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 8.2135516593114E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.3116289487073E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9978965472701E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -8.6341586034006E-04 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0613509913889E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8806820548813E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1151179791597E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.0196348737697E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.2767642153124E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.3958035423728E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.2767642153124E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.2767642153124E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8162787241218E-12 +(PID.TID 0000.0001) %MON ke_max = 7.4459603369167E-08 +(PID.TID 0000.0001) %MON ke_mean = 6.9714298109590E-09 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 9.5945277135006E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.8344144685563E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 9.01814270315437E-07 4.34427624253047E-04 +(PID.TID 0000.0001) cg2d_init_res = 9.62035102142264E-04 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 186 +(PID.TID 0000.0001) cg2d_last_res = 6.71578403657019E-14 + cg3d: Sum(rhs),rhsMax = 1.15608260811695E-13 9.41774267343692E-06 +(PID.TID 0000.0001) cg3d_init_res = 1.01206780877783E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 8.08558325574904E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 1.0000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.3969093570893E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9736497683203E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -3.2107393691919E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6757739975331E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0517522186353E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9468481717482E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.2997187012014E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.5467275076887E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.0603565620668E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 2.8226516393856E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.4287497244108E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -4.7369687602573E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 6.4724026741285E-10 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.0256445225923E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 2.8850039748568E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9978268770505E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.1487378012617E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0606733173968E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8797932203190E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1118758547085E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1218351521695E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.8421812561544E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9481603087963E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 2.8421812561544E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 2.8421812561544E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8314340592595E-12 +(PID.TID 0000.0001) %MON ke_max = 1.1602371463667E-07 +(PID.TID 0000.0001) %MON ke_mean = 1.0868277215584E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.4570532846265E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.6557698841493E-21 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.41672780166336E-07 4.34368533505472E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.19787220858063E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 186 +(PID.TID 0000.0001) cg2d_last_res = 8.05187838747966E-14 + cg3d: Sum(rhs),rhsMax = -3.37453589377423E-14 9.41224895769901E-06 +(PID.TID 0000.0001) cg3d_init_res = 1.22574671931000E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 6.60687314723290E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 1.2000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4060487736102E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9552908999972E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9962093617288E-10 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7108679367531E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0504603555070E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.9255710742447E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3241280795302E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.2521765138075E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.2708813070884E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.3805567999052E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 5.3072326144000E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.6769312925158E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.2040022559682E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.2295273126791E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.4566279179964E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9977430255630E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.4331098800952E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0599956435612E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8787368724876E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1079975946143E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3395417682619E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.4061587755095E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.4845003335878E-04 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.4061587755095E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4061587755095E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8482191187126E-12 +(PID.TID 0000.0001) %MON ke_max = 1.6662286665589E-07 +(PID.TID 0000.0001) %MON ke_mean = 1.5615346345890E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.0276565879222E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 7.2570651106596E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.29314474097064E-06 4.34297937972757E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.43333613168551E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 186 +(PID.TID 0000.0001) cg2d_last_res = 9.21284065438754E-14 + cg3d: Sum(rhs),rhsMax = -1.31886472229392E-13 9.40568226993945E-06 +(PID.TID 0000.0001) cg3d_init_res = 1.44792581269258E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 2.57775096432215E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 1.4000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4188352421996E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9452439157131E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1721119778817E-09 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7412005444025E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0489191485580E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.9008619292788E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.3377642207053E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.8190514768972E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4808979744663E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.9362876856978E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 6.1831676717826E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -6.6144889596640E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9772049991961E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.4330004129112E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.0264880992500E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9976450514864E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.7165377965886E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0593179700635E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8775150002203E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.1034878739659E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5550996253045E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 3.9686933757984E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1004683384628E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.9686933757984E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.9686933757984E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8627886133932E-12 +(PID.TID 0000.0001) %MON ke_max = 2.2618454375546E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.1206869025752E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.6189939905406E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.2832216602157E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -6.84265687590779E-06 4.34215565627678E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.66819596592030E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 6.19560853956792E-14 + cg3d: Sum(rhs),rhsMax = -1.21674588807186E-14 9.39805172352553E-06 +(PID.TID 0000.0001) cg3d_init_res = 1.66959566269706E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 2.48790013322244E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 1.6000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4301976990332E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9405208294514E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.4350095457721E-09 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7613816158795E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0471320510136E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.8727802267991E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.3404138727579E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.9557412633551E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6904027760717E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 4.4898290701175E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.0564929463346E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -7.5496167235315E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.9860842731086E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.6360601513836E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 4.5945698181696E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9975330432097E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.9990276301273E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0586402971099E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8761297860995E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0983539735391E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.7685305124108E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.5297700341189E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2508389641012E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5297700341189E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 4.5297700341189E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8725138799473E-12 +(PID.TID 0000.0001) %MON ke_max = 2.9463544744461E-07 +(PID.TID 0000.0001) %MON ke_mean = 2.7637023824166E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.9872683515014E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -9.6726372936208E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.16119664666375E-05 4.34121251514198E-04 +(PID.TID 0000.0001) cg2d_init_res = 1.90207723876975E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 6.83977303402417E-14 + cg3d: Sum(rhs),rhsMax = 2.39563143628052E-14 9.38936763133497E-06 +(PID.TID 0000.0001) cg3d_init_res = 1.88908382204913E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 3.26447421947210E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4373506071527E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9399498379530E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.1313057426435E-09 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7685366879808E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0451024979267E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 8.8414375627665E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.3475912318418E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.3833462895570E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.8993920282110E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.0411661021285E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 7.9271514345235E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.4822851710013E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 4.2447532932284E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.8387030943821E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.1608593946757E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9974071017821E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.2805857907473E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0579626248734E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8745833333878E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0926005530160E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.9798569075973E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.0893711026008E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4020466772432E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.0893711026008E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.0893711026008E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8759682880577E-12 +(PID.TID 0000.0001) %MON ke_max = 3.7190146327571E-07 +(PID.TID 0000.0001) %MON ke_mean = 3.4899945389018E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.3546392047247E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.9453006859874E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.76822457728931E-05 4.34014888254532E-04 +(PID.TID 0000.0001) cg2d_init_res = 2.13674198462221E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 7.64135922439909E-14 + cg3d: Sum(rhs),rhsMax = 1.13739272449183E-13 9.37963879959696E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.10747145110800E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 4.98027022628392E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 2.0000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4397399691114E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9430882797286E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 6.2894485337040E-09 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7630040904293E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0428315561705E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8069467630973E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0360747497258E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5955752793344E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1078620468187E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 5.5902840543539E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.7950873785488E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -9.4124646915388E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 5.7623062585644E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.0409258173998E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.7253430625176E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9972673377655E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.5612189535135E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0572849534644E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8728769211634E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0862357990256E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.1891003253569E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 5.6474788149233E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5540101446460E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.6474788149233E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.6474788149233E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8732978846656E-12 +(PID.TID 0000.0001) %MON ke_max = 4.5790764227774E-07 +(PID.TID 0000.0001) %MON ke_mean = 4.2989721711394E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.1885986883044E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.9444381558260E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -2.50106049382304E-05 4.33896974102028E-04 +(PID.TID 0000.0001) cg2d_init_res = 2.36947374523446E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 8.41372526672456E-14 + cg3d: Sum(rhs),rhsMax = -1.38853772230219E-15 9.36887579226894E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.32442972140039E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 6.54321074700078E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 11 +(PID.TID 0000.0001) %MON time_secondsf = 2.2000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4383213150648E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9492423462278E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 8.8936766377612E-09 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7480175813482E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0403208560506E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0769393336881E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1368397421017E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.7859359299295E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3158091859243E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1371685071417E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 9.6602442698580E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.0340127605043E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 7.5422905426285E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.2427250213791E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.2880075375111E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9971138732412E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -2.8409339885489E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0566072829135E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8710129632642E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0792678285614E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.3962800715417E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.2040765630257E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7051477149988E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.2040765630257E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.2040765630257E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8660732825401E-12 +(PID.TID 0000.0001) %MON ke_max = 5.5257826445055E-07 +(PID.TID 0000.0001) %MON ke_mean = 5.1900398491617E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -8.9913370868522E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.7778829131053E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -3.35859961355378E-05 4.33767074237177E-04 +(PID.TID 0000.0001) cg2d_init_res = 2.61097984151390E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 9.24412043059259E-14 + cg3d: Sum(rhs),rhsMax = -1.09480566973241E-14 9.35708958784259E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.54219654129363E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 7.19914558136640E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 2.4000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4348101500112E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9572972538303E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.1939477848786E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7282821363923E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0375666976703E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1728824898310E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2370451764644E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.0715257666241E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5232296912971E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.6818051697253E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.0522562785154E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1265221557003E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 9.5581920054411E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.4440973049755E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.8488392641643E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9969468442896E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.1197378848451E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0559296131836E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8689963255060E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0717056601742E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.6014117868606E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 6.7591329342019E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.8554460034085E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 6.7591329342019E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.7591329342019E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8565809980131E-12 +(PID.TID 0000.0001) %MON ke_max = 6.5583302808057E-07 +(PID.TID 0000.0001) %MON ke_mean = 6.1625972533330E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.3678887514685E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.7085998795640E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -4.35723076804839E-05 4.33625200651200E-04 +(PID.TID 0000.0001) cg2d_init_res = 2.83998656487476E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 187 +(PID.TID 0000.0001) cg2d_last_res = 9.96870166490927E-14 + cg3d: Sum(rhs),rhsMax = 2.71961272946264E-15 9.34429140450606E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.75578361448932E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 8.39233592389554E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 13 +(PID.TID 0000.0001) %MON time_secondsf = 2.6000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4310081837736E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9659207681121E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.5484443182092E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7083656843904E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0345828405258E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.2685252711320E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.3366879997969E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.4118196642472E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7301199493765E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.2241802414404E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.1381980161757E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.2187721215277E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.1785313569758E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.6450393662391E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.4078249636009E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9967664023632E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.3976376655138E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0552519441985E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8668295115209E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0635543483892E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8045069741812E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.3126327291664E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.0049004306502E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.3126327291664E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.3126327291664E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8470272331681E-12 +(PID.TID 0000.0001) %MON ke_max = 7.6759321834162E-07 +(PID.TID 0000.0001) %MON ke_mean = 7.2160402364936E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.9074231384937E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3976005008971E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -5.50262311207056E-05 4.33471337007030E-04 +(PID.TID 0000.0001) cg2d_init_res = 3.06973883043074E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 5.23874834379332E-14 + cg3d: Sum(rhs),rhsMax = 1.05804471087212E-13 9.33049312257702E-06 +(PID.TID 0000.0001) cg3d_init_res = 2.96876825406703E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 9.82334818777206E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 14 +(PID.TID 0000.0001) %MON time_secondsf = 2.8000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4282967441321E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9737813019069E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 1.9547925293216E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6917073759346E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0313735380933E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.3638658469086E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4357709410304E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -4.8512536215971E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.9364763120496E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 7.7642797101351E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.2238431896685E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.3107601261736E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.4200859525660E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 2.8455479351262E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 7.9649514244715E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9965727139583E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.6746403029739E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0545742758716E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8645150799234E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0548239413129E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.0055736780834E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 7.8645607570418E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.1535150898522E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 7.8645607570418E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 7.8645607570418E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8390572105890E-12 +(PID.TID 0000.0001) %MON ke_max = 8.8777877376807E-07 +(PID.TID 0000.0001) %MON ke_mean = 8.3497604269430E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -2.4334653412958E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 3.1810389576926E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -6.79700504498254E-05 4.33305441553495E-04 +(PID.TID 0000.0001) cg2d_init_res = 3.31254893549103E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 5.45186547882271E-14 + cg3d: Sum(rhs),rhsMax = 8.60964945170739E-15 9.31570618074364E-06 +(PID.TID 0000.0001) cg3d_init_res = 3.18416004223657E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.23514757506529E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 15 +(PID.TID 0000.0001) %MON time_secondsf = 3.0000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4274175780557E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9797148099380E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.4136942321122E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6804202448075E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0279283303530E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4589001795918E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5343006465262E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.5264805384515E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1422951876137E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.3020902339505E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3091852895002E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4024795767034E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.6784590977023E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.0456195905503E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 8.5202050663003E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9963659585653E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -3.9507526659494E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0538966081345E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8620564859475E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0455160123593E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.2046177449773E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.4148774602201E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.3012999499020E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.4148774602201E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.4148774602201E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8336700192032E-12 +(PID.TID 0000.0001) %MON ke_max = 1.0163035909640E-06 +(PID.TID 0000.0001) %MON ke_mean = 9.5631450076221E-08 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = -1.0937143582888E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -2.9091441135586E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -8.20225334580982E-05 4.33127444262009E-04 +(PID.TID 0000.0001) cg2d_init_res = 3.51160997655364E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 6.18371269790304E-14 + cg3d: Sum(rhs),rhsMax = -6.68152599220262E-14 9.30034729454208E-06 +(PID.TID 0000.0001) cg3d_init_res = 3.39574009770563E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.46147715813973E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 16 +(PID.TID 0000.0001) %MON time_secondsf = 3.2000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4284797480129E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9828594172629E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 2.9115174641915E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6755969710176E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0242688260958E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5536112409333E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6322853821986E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.6590175769883E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3475729480071E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.8375979736387E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3942178682133E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.4939274467073E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 1.9519063475068E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.2452511097905E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.0735732589130E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9961463252896E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -4.2349663491501E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0532189409537E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8594537114070E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0356254075147E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4016445392921E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 8.9635646802437E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.4482674088578E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 8.9635646802437E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 8.9635646802437E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8313759305451E-12 +(PID.TID 0000.0001) %MON ke_max = 1.1530832008089E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.0855577477320E-07 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.3875992775328E-13 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.6405717024158E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -9.62732432124858E-05 4.32937261594372E-04 +(PID.TID 0000.0001) cg2d_init_res = 3.73708338124221E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 6.50621921492476E-14 + cg3d: Sum(rhs),rhsMax = 1.89095700903197E-13 9.28408424117483E-06 +(PID.TID 0000.0001) cg3d_init_res = 3.60768381191930E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 9.07675852831321E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 17 +(PID.TID 0000.0001) %MON time_secondsf = 3.4000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4311612116779E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9827512903133E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.4158680448958E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6776830819618E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0203956258926E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.6479936515189E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.7297327794364E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.8032332322633E-09 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.5523060738880E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.3707891214204E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.4789358948244E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.5851013740696E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.2389606024414E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4444397984115E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 9.6250449136889E-06 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9959140100574E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -4.5307066260177E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0525412743224E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8567151398086E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0251885428126E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.5966603633097E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 9.5106082444173E-03 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.5944289130513E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 9.5106082444173E-03 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 9.5106082444173E-03 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8323814517693E-12 +(PID.TID 0000.0001) %MON ke_max = 1.2980326109741E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.2226439484213E-07 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.1602372188618E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -3.3273349415355E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.12125006636113E-04 4.32734842849651E-04 +(PID.TID 0000.0001) cg2d_init_res = 3.96674649499224E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 7.02579652887483E-14 + cg3d: Sum(rhs),rhsMax = -6.20671049278432E-14 9.26690705745331E-06 +(PID.TID 0000.0001) cg3d_init_res = 3.81815483880965E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 8.01022539759607E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 18 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4349712371207E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9793504307058E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 3.9764439397070E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6865732827081E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0163019619508E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7420423123864E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8266483922347E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5990003488334E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.7564910065663E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 9.9016508468295E-06 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.5633328465323E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.6759981047064E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.5384114884757E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.6431820693477E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0174605795465E-05 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9956692126641E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -4.8261755097227E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0518636083021E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8538463722200E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0142191088938E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.7896729821107E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0055988628239E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.7397927929287E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0055988628239E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0055988628239E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8366402358553E-12 +(PID.TID 0000.0001) %MON ke_max = 1.4510644196108E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.3675105779867E-07 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 5.3472906423410E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.1370618416593E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.31041483659930E-04 4.32520083779436E-04 +(PID.TID 0000.0001) cg2d_init_res = 4.19412511236208E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 7.36015194304613E-14 + cg3d: Sum(rhs),rhsMax = -2.35666304179705E-13 9.24882088719347E-06 +(PID.TID 0000.0001) cg3d_init_res = 4.02775347147711E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.43112317949705E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 19 +(PID.TID 0000.0001) %MON time_secondsf = 3.8000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4394347516538E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9730026649868E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 4.6449987055877E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7018077418784E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0119926456933E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.8357529368376E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9230349529505E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.4290713721078E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.9601243418455E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0430170739027E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.6474018618695E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.7666145948246E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 2.8492745854664E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.8414742758027E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.0722241266764E-05 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9954121364381E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -5.1213730446968E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0511859429905E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8508511438673E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 6.0027265581817E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.9806917973590E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.0599687568947E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8843631467565E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.0599687568947E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.0599687568947E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8439454570122E-12 +(PID.TID 0000.0001) %MON ke_max = 1.6120902681770E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.5200947281995E-07 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 7.1324986705199E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1156817559176E-19 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -1.51810032991029E-04 4.32292866764538E-04 +(PID.TID 0000.0001) cg2d_init_res = 4.42095340355848E-03 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 7.92048104566951E-14 + cg3d: Sum(rhs),rhsMax = 3.35718865901447E-14 9.22985303565084E-06 +(PID.TID 0000.0001) cg3d_init_res = 4.23732173667623E-02 +(PID.TID 0000.0001) cg3d_iters (last) = 20 +(PID.TID 0000.0001) cg3d_last_res = 1.69097249408978E-04 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 4.0000000000000E+02 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4440865210919E-05 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.9644457067076E-05 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 5.3783500056488E-08 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7224721146196E-06 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 9.0074573018496E-07 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9291226236776E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0188934447318E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.7628137793130E-08 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1632026882358E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0956336065764E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7311376189522E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.8569472005993E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 3.1707548964059E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.0393134052784E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.1267939243442E-05 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.9951429885124E-03 +(PID.TID 0000.0001) %MON dynstat_theta_min = -5.4162990677269E-03 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.0505082784894E-03 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.8477351936331E-03 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.9907234615148E-05 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2789769243682E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.1697285669639E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.1141683203596E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0281414491599E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.1141683203596E-02 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.1141683203596E-02 +(PID.TID 0000.0001) %MON pe_b_mean = 1.8538760337040E-12 +(PID.TID 0000.0001) %MON ke_max = 1.7810198391574E-06 +(PID.TID 0000.0001) %MON ke_mean = 1.6803333413965E-07 +(PID.TID 0000.0001) %MON ke_vol = 2.0102771472217E+08 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_p_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 8.5113064831699E-12 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 9.4182805383913E-20 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON obc_time_tsnumber = 20 +(PID.TID 0000.0001) %MON obc_time_secondsf = 4.0000000000000E+02 +(PID.TID 0000.0001) %MON obc_E_uVel_max = 1.4652876235966E-04 +(PID.TID 0000.0001) %MON obc_E_uVel_min = -1.6537729042711E-04 +(PID.TID 0000.0001) %MON obc_E_uVel_mean = 3.1875544472779E-21 +(PID.TID 0000.0001) %MON obc_E_uVel_sd = 3.2036234981783E-05 +(PID.TID 0000.0001) %MON obc_E_uVel_Int = 1.2750217548430E-16 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End OBCS MONITOR field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 20 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.548230764456093 +(PID.TID 0000.0001) System time: 0.10797499865293503 +(PID.TID 0000.0001) Wall clock time: 16.666604042053223 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.13560799742117524 +(PID.TID 0000.0001) System time: 3.2685998827219009E-002 +(PID.TID 0000.0001) Wall clock time: 0.16843795776367188 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.412575140595436 +(PID.TID 0000.0001) System time: 7.5285997241735458E-002 +(PID.TID 0000.0001) Wall clock time: 16.498129129409790 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.10900400578975677 +(PID.TID 0000.0001) System time: 3.9290998131036758E-002 +(PID.TID 0000.0001) Wall clock time: 0.14829897880554199 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 16.303545504808426 +(PID.TID 0000.0001) System time: 3.5989999771118164E-002 +(PID.TID 0000.0001) Wall clock time: 16.349802970886230 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 16.303387463092804 +(PID.TID 0000.0001) System time: 3.5987995564937592E-002 +(PID.TID 0000.0001) Wall clock time: 16.349636316299438 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 16.303076371550560 +(PID.TID 0000.0001) System time: 3.5966999828815460E-002 +(PID.TID 0000.0001) Wall clock time: 16.349308013916016 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.4952332973480225E-004 +(PID.TID 0000.0001) System time: 3.2998621463775635E-005 +(PID.TID 0000.0001) Wall clock time: 4.8160552978515625E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 1.6018748283386230E-004 +(PID.TID 0000.0001) System time: 1.1004507541656494E-005 +(PID.TID 0000.0001) Wall clock time: 1.7166137695312500E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.5148520469665527E-004 +(PID.TID 0000.0001) System time: 1.2010335922241211E-005 +(PID.TID 0000.0001) Wall clock time: 1.5997886657714844E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.1441005468368530E-002 +(PID.TID 0000.0001) System time: 4.5710131525993347E-003 +(PID.TID 0000.0001) Wall clock time: 9.6049785614013672E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.5037717223167419 +(PID.TID 0000.0001) System time: 7.9669952392578125E-003 +(PID.TID 0000.0001) Wall clock time: 5.5176239013671875 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "CALC_GW [DYNAMICS]": +(PID.TID 0000.0001) User time: 1.3306243717670441 +(PID.TID 0000.0001) System time: 4.0150061249732971E-003 +(PID.TID 0000.0001) Wall clock time: 1.3349213600158691 +(PID.TID 0000.0001) No. starts: 80 +(PID.TID 0000.0001) No. stops: 80 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.4056172370910645 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 5.4084708690643311 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "CG3D [SOLVE_FOR_PRESSURE]": +(PID.TID 0000.0001) User time: 4.7270575761795044 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.7297437191009521 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.28727620840072632 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.28747248649597168 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.9313507080078125E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 8.9341878890991211E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.47567224502563477 +(PID.TID 0000.0001) System time: 9.0003013610839844E-006 +(PID.TID 0000.0001) Wall clock time: 0.47587513923645020 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9324904680252075 +(PID.TID 0000.0001) System time: 7.5449943542480469E-003 +(PID.TID 0000.0001) Wall clock time: 3.9412870407104492 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6653537750244141E-004 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 1.6927719116210938E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.50089299678802490 +(PID.TID 0000.0001) System time: 3.8069933652877808E-003 +(PID.TID 0000.0001) Wall clock time: 0.50480413436889648 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.6327581405639648E-003 +(PID.TID 0000.0001) System time: 3.9890110492706299E-003 +(PID.TID 0000.0001) Wall clock time: 9.6290111541748047E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.4489116668701172E-003 +(PID.TID 0000.0001) System time: 7.9939961433410645E-003 +(PID.TID 0000.0001) Wall clock time: 1.5447139739990234E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 32076 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 32076 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_reentrant_channel/analysis/matlab_plots.m b/verification/tutorial_reentrant_channel/analysis/matlab_plots.m index 3b5da3ab6a..512d373553 100644 --- a/verification/tutorial_reentrant_channel/analysis/matlab_plots.m +++ b/verification/tutorial_reentrant_channel/analysis/matlab_plots.m @@ -1,98 +1,274 @@ -use_GM = 1; %set to zero if not using GM +% matlab plotting code for Tutorial Southern Ocean Reentrant Channel + +% read in additional colormaps for plots +% assumes 'addpath ../../../utils/matlab/' typed from your run directory +% which is also needed for other matlab functions such as 'rdmds' + + bluered_colormaps + + use_GM = 1; % set to zero if not using GM %%%%%%%%%%% load grid data - -XC=rdmds('XC');YC=rdmds('YC');YG=rdmds('YG');XG=rdmds('XG'); -RC=squeeze(rdmds('RC'));RF=squeeze(rdmds('RF')); %these are dimensioned (1,1,49) so squeeze to a vector -DRF=rdmds('DRF');DXG=rdmds('DXG');DYG=rdmds('DYG'); -hFacC=rdmds('hFacC');hFacW=rdmds('hFacW');hFacS=rdmds('hFacS'); -%define layers as specified in data.layers -Tlay=[-2.00, -1.75, -1.50, -1.25, -1.00, -0.75, -0.50, -0.25, 0.00, 0.25, 0.50, 0.75, 1.00, 1.25, 1.50, 1.75, ... - 2.00, 2.25, 2.50, 2.75, 3.00, 3.25, 3.50, 3.75, 4.00, 4.25, 4.50, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5, 10.0]; + XC = rdmds('XC'); + YC = rdmds('YC'); + XG = rdmds('XG'); + YG = rdmds('YG'); + RC = squeeze(rdmds('RC')); % dimensioned (1,1,Nr) so squeeze to vector form + RF = squeeze(rdmds('RF')); % dimensioned (1,1,Nr+1) so squeeze to vector form + DRC = rdmds('DRC'); + DRF = rdmds('DRF'); + DXG = rdmds('DXG'); + DYG = rdmds('DYG'); + DXC = rdmds('DXC'); + DYC = rdmds('DYC'); + rAC = rdmds('rAC'); % gridcell area, cell centers, aka rA + hFacC = rdmds('hFacC'); % partial cell hFac weightings: cell centers + hFacW = rdmds('hFacW'); % partial cell hFac weightings: west face + hFacS = rdmds('hFacS'); % partial cell hFac weightings: south face -YGp1=[YG YG(:,end)+DYG(:,end)];YGp1=[YGp1; YGp1(end,:)]; %XGp1, YGp1 span full domain (0:1000 km, 0:2000 km) -XGp1=[XG; XG(end,:)+DXG(end,:)];XGp1=[XGp1 XGp1(:,end)]; -msk=hFacC;msk(hFacC==0)=NaN; +% number of gridcells in (x,y,z) + Nx = size(XC,1); + Ny = size(XC,2); + Nr = length(RC); -cmap_bluetored +%create 2D XGp1, YGp1 to span full domain (0:1000 km, 0:2000 km) + YGp1=[YG YG(:,end)+DYG(:,end)]; + YGp1=[YGp1; YGp1(end,:)]; + XGp1=[XG; XG(end,:)+DXG(end,:)]; + XGp1=[XGp1 XGp1(:,end)]; -%%%%%%%%%%% load diagnostics +% define layers as specified in data.layers + Tlay = [-2.00, -1.75, -1.50, -1.25, -1.00, -0.75, -0.50, -0.25, 0.00, ... + 0.25, 0.50, 0.75, 1.00, 1.25, 1.50, 1.75, 2.00, 2.25, ... + 2.50, 2.75, 3.00, 3.25, 3.50, 3.75, 4.00, 4.25, 4.50, ... + 5.00, 5.50, 6.00, 6.50, 7.00, 7.50, 8.00, 8.50, 9.00, ... + 9.50, 10.00]; -if size(YC,2)==40 - state=rdmds('Diags/state',933120); % time averaged over yr 30, coarse-res - diag2D=rdmds('Diags/2D_diags',933120); - if use_GM - gm_diags=rdmds('Diags/GM_diags',933120); - end - laydiag=rdmds('Diags/layDiag',933120); +%%%%%%%%%%% load diagnostics +% +% as specified in data.diagnostics: +% state: THETA, UVEL, VVEL, WVEL, CONVADJ +% 2D_diags: TRELAX, MXLDEPTH, ETAN +% layDiag: LaVH1TH, LaHs1TH, LaVa1TH +% GM_diags: GM_PsiX , GM_PsiY (if use_GM) + + if Ny==40 % coarse resolution + tt = 933120; % choose iter for time averaged yr 30 data + state=rdmds('Diags/state', tt); + diag2D=rdmds('Diags/2D_diags', tt); + if use_GM + gm_diags = rdmds('Diags/GM_diags', tt); + end + laydiag = rdmds('Diags/layDiag', tt); -else %eddying run - - % for eddy run, take a 5-year mean of yrs 26-30 instead of above single-yr mean - state=zeros(200,400,49,8);for tt=3234816:124416:3732480;state=state+rdmds('Diags/state',tt);end;state=state/5; - diag2D=zeros(200,400,3);for tt=3234816:124416:3732480;diag2D=diag2D+rdmds('Diags/2D_diags',tt);end;diag2D=diag2D/5; - laydiag=zeros(200,400,37,3);for tt=3234816:124416:3732480;laydiag=laydiag+rdmds('Diags/layDiag',tt);end;laydiag=laydiag/5; + else %eddying run + + % for eddy run, take a 5-year mean of yrs 26-30 + % instead of using single-yr mean + ttrange = 3234816:124416:3732480; + + state = zeros(Nx, Ny, Nr, 5); + for tt = ttrange + state=state+rdmds('Diags/state',tt); + end + state = state / length(ttrange); + + diag2D = zeros(Nx,Ny,3); + for tt = ttrange + diag2D = diag2D + rdmds('Diags/2D_diags',tt); + end + diag2D = diag2D / length(ttrange); + + laydiag = zeros(Nx,Ny,length(Tlay)-1,3); + for tt = ttrange + laydiag = laydiag + rdmds('Diags/layDiag',tt); + end + laydiag = laydiag / length(ttrange); + + end -end %%%%%%%%%%% plot diagnostics +% statistical diagnostics output +% +% first, parse and load data +% assumes you have run extract_StD script, see tutorial + [nIter, regList, time, stdiagout, listFlds, listK] = read_StD('STATDIAGS', 'dat', 'all_flds'); +% plot time series of TRELAX + figure + plot(time(:,2) / (86400*360), stdiagout(1,:,1,1,2), 'b', 'LineWidth', 4) + grid on + hold on + plot(time(:,2) / (86400*360), stdiagout(1,:,1,2,2), 'm', 'LineWidth', 4) + legend('Mean', 'Std Dev') + title('Net Heat Flux into Ocean') + xlabel('Time (yrs)') + ylabel('W/m^2') + set(gca,'FontSize', 14) +% plot time series of THETA at surface, 270 m and 2580 m +figure + subplot(3,1,1) % MITgcm k=1 SST (region=1, field =1) + plot(time(:,2) / (86400*360), stdiagout(2,:,1,1,1), 'c', 'LineWidth', 4) + grid on + title('Mean Temperature, Surface') + xlabel('Time (yrs)') + ylabel('^oC') + set(gca,'FontSize', 14) + subplot(3,1,2) % MITgcm k=17 270m depth (THETA) + plot(time(:,2) / (86400*360), stdiagout(18,:,1,1,1), 'g', 'LineWidth', 4) + grid on + title('Mean Temperature, Depth 270 m') + xlabel('Time (yrs)') + ylabel('^oC') + set(gca,'FontSize', 14) + subplot(3,1,3) % MITgcm k=40 2577m depth (THETA) + plot(time(:,2) / (86400*360), stdiagout(41,:,1,1,1), 'r', 'LineWidth', 4) + grid on + title('Mean Temperature, Depth 2580 m') + xlabel('Time (yrs)') + ylabel('^oC') + set(gca,'FontSize', 14) + % zonal mean temperture and mixed-layer depth % -zmT=squeeze(nansum(state(:,:,:,1).*msk,1))./squeeze(nansum(msk,1)); %weight temp. by partial cell factor hFacC (=msk) to compute zonal mean -figure;contourf(YC(1,:)/1000,RC,zmT',-2:.1:10,'Linestyle','none'); set(gca,'CLim',[-2 10]); colorbar; hold on; -cmap=colormap('jet');colormap(flipud(cmap(1:60,:))); -zmML=squeeze(mean(diag2D(:,:,2),1)); %take zonal mean of mixed layer depth -if size(YC,2)==40 - plot(YC(1,2:40)/1000,-zmML(2:40),'k','LineWidth',3); %coarse, don't plot over land -else - plot(YC(1,11:400)/1000,-zmML(11:400),'k','LineWidth',3); %eddying resolution -end -xlabel('y-coordinate (km)'); ylabel('Depth (m)'); set(gca,'FontSize',[14]); -title({'Zonal Mean Temperature (^oC)', 'Mixed Layer Depth (m)'}); +% weight temperature by partial cell factor hFacC to compute zonal mean + zmT = squeeze(sum(state(:,:,:,1) .* hFacC .* rAC, 1)) ./ squeeze(sum(hFacC .* rAC, 1)); +% the next steps create a "padded" version of zmT which we will plot +% to avoid undefined values outside cell centers at bottom and N,S edges +% (which matlab will assume leave unshaded rather than extrapolate) +% zmTpad is dimensioned w/extra value in y (north edge) and z (bottom) + zmTpad = zeros(Ny+1, length(RF)); + zmTpad(1:Ny,1:end-1) = zmT; +% for southern edge, simply copy the neighbor onto land point + zmTpad(1,1:end-1) = zmT(2,:); +% for northern edge, copy the temperature from cell immediately to south + zmTpad(end,1:end-1) = zmT(end,:); +% for bottom, copy the temperature from above onto new bottom point + zmTpad(:,end) = zmTpad(:,end-1); + figure + contourf([YC(1,:) YC(1,end)+DYC(1,end)]/1000, [RC' RC(end)-DRC(end)], ... + zmTpad', -2:.1:10, 'Linestyle', 'none') + set(gca, 'CLim', [-2 10]) + colorbar + hold on + zmML = squeeze(mean(diag2D(:,:,2),1)); % take zonal mean of mixed layer depth +% for a given (ocean) latitude band, all ML data are ocean w/same area +% so no need for masking land or area weighting in computing mean + if Ny==40 % coarse res + plot(YC(1,2:end)/1000, -zmML(2:end), 'k', 'LineWidth', 3) % do not plot ML over land + else % eddying resolution + plot(YC(1,11:end)/1000, -zmML(11:end), 'k', 'LineWidth', 3) + end +% shade land as grey + rectangle('position',[0 RF(end) 50 -RF(end)], 'Facecolor',[.7 .7 .7], 'LineStyle', 'none'); + set(gca, 'YLim', [-3982 0]) + set(gca, 'XLim', [0 2000]) + xlabel('y-coordinate (km)') + ylabel('Depth (m)') + set(gca, 'FontSize', 14) + title({'Zonal Mean Temperature (^oC)', 'Mixed Layer Depth (m)'}) + +% convective adjustment index plot +% +% plot MITgcm k=4 (92 m depth) + klev = 10; + convadj = zeros(Nx+1, Ny+1); +% note extra row and column of zeros for matlab pcolor (ignored in plot) + convadj(1:end-1,1:end-1) = state(:,:,klev,5); + figure + pcolor(XGp1/1000, YGp1/1000, convadj) + shading flat + colormap(flipud(summer)) + colorbar + set(gca, 'PlotBoxAspectRatio', [1 2 2]) + xlabel('x-coordinate (km)') + ylabel('y-coordinate (km)') + set(gca, 'FontSize', 14) + rectangle('position', [0 0 1000 50], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none') + title(['Convective Adj. Index (depth ' num2str(abs(round(RC(klev)))) ' m)']) +% users manual figure used colormap cmocean_v2 'deep' instead of 'summer' +% https://tos.org/oceanography/article/true-colors-of-oceanography-guidelines-for-effective-and-accurate-colormap +% available for download at matlab file exchange +% https://www.mathworks.com/matlabcentral/fileexchange/57773-cmocean-perceptually-uniform-colormaps?s_tid=srchtitle % barotropic streamfunction % -% following approach described in tutorial Baroclinic Gyre -% except given our periodic EW configuration, repeating i=1 data at i=end+1 +% see tutorial Baroclinic Gyre analysis for additional details on computation +% given our periodic EW configuration, repeating i=1 data at i=end+1 % first, compute depth-integrated u velocity weighted by partial cell factor hFacW -ubt=squeeze(sum(state([1:end 1],:,:,3).*hFacW([1:end 1],:,:).*repmat(DRF,[size(XC,1)+1 size(XC,2) 1]),3)); + ubt = squeeze(sum(state([1:end 1],:,:,3) .* hFacW([1:end 1],:,:) .* repmat(DRF, [Nx+1 Ny 1]), 3)); % next, need to include row of zeros at y=0, then cumsum -ubt.*DYG in y direction -psi=[zeros(size(XC,1)+1,1) cumsum(-ubt.*DYG([1:end 1],:), 2)]; -figure; contourf(XGp1'/1000,YGp1'/1000,psi'/1e6,[-360:20:0]); colorbar; tmp=colormap('jet');colormap(tmp(1:60,:)); -%depth-integrated u velocity weighted by partial cell factor hFacWcmap=colormap('jet');colormap(cmap(1:60,:)); -set(gca,'CLim',[-350 0]);set(gca,'PlotBoxAspectRatio',[1 2 2]);set(gca,'XLim',[0 1000]);set(gca,'YLim',[0 2000]) -xlabel('x-coordinate (km)'); ylabel('y-coordinate (km)'); set(gca,'FontSize',[14]); -title('Barotropic Streamfunction (Sv)'); + psi = [zeros(Nx+1,1) cumsum(-ubt .* DYG([1:end 1],:), 2)]/1.e6; % and convert to Sv + figure + contourf(XGp1'/1000, YGp1'/1000, psi', [-360:20:0]) + colorbar + colormap('summer'); +% tutorial figure used colormap cmocean_v2 '-speed' instead of matlab 'summer' + rectangle('position', [0 0 1000 50], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none'); + set(gca,'CLim',[-350 0]) + set(gca,'PlotBoxAspectRatio', [1 2 2]) + set(gca,'XLim', [0 1000]) + set(gca,'YLim', [0 2000]) + xlabel('x-coordinate (km)') + ylabel('y-coordinate (km)') + set(gca,'FontSize', 14) + title('Barotropic Streamfunction (Sv)') % Eulerian MOC % -% first, take zonal sum of v*dx*dz, adding a row of zeros at the bottom (RF spans 0:-3982 m dimension 50) -vzi=[squeeze(sum(state(:,:,:,2).*hFacS.*repmat(DXG,[1 1 length(RC)]).*repmat(DRF,size(XC)),1)) zeros(size(XC,2),1)]; -% next, best to do the cumsum bottom up, avoids issues if one uses a nonlinear free surface -moc=-cumsum(vzi,2,'reverse'); -figure; contourf(YG(1,:)/1000,RF,moc'/1e6,[-5:.1:5],'Linestyle','none'); set(gca,'Clim',[-3 3]);hold on; -contour(YG(1,:)/1000,RF,moc'/1e6,[-5:.5:5],'k'); set(gca,'Clim',[-3 3]); colorbar -xlabel('y-coordinate (km)'); ylabel('Depth (m)'); set(gca,'FontSize',[14]); colormap(bluetored); -title('Eulerian MOC (Sv)'); +% first, take zonal sum of v*dx*dz, adding a row of zeros at the bottom +% (RF spans 0:-3982 m dimension 50) + vzi = [ squeeze(sum(state(:,:,:,2) .* hFacS .* repmat(DXG, [1 1 length(RC)]) ... + .* repmat(DRF, [Nx Ny]), 1)) zeros(Ny, 1) ]; +% next, best in general to do the cumsum bottom up +% avoids issues if one uses a nonlinear free surface + moc = -cumsum(vzi, 2, 'reverse')/1.e6; % and convert to Sv + figure + contourf(YG(1,:)/1000, RF, moc', [-5:.1:5], 'Linestyle', 'none') + set(gca, 'Clim', [-3 3]) + hold on + contour(YG(1,:)/1000, RF, moc', [-5:.5:5], 'k') + set(gca, 'Clim', [-3 3]) + colorbar + rectangle('position', [0 RF(end) 50 -RF(end)], 'Facecolor', [.7 .7 .7], 'LineStyle','none'); + xlabel('y-coordinate (km)') + ylabel('Depth (m)') + set(gca,'FontSize',14) + colormap(bluetored) + title('Eulerian MOC (Sv)'); % Eulerian MOC plus Bolus velocity % -% to add bolus velocity to Eulerian MOC, if using GM -% compute bolus velocity from bolus streamfunction diagnostic (advective form of GM) -if use_GM - psiy=zeros(size(XC,1),size(XC,2),length(RF));psiy(:,:,1:end-1)=gm_diags(:,:,:,2); % add a plane of zeros to psi at bottom of domain, we will take derivative in z - bolV=(psiy(:,:,2:end)-psiy(:,:,1:end-1))./repmat(DRF,size(XC));% include bolV when computing vzi +% to add bolus velocity to Eulerian MOC (i.e., residual MOC), if using GM +% compute bolus velocity from bolus streamfunctionn diagnostic +% (using advective aka bolus form of GM) + if use_GM + psiy = zeros(Nx, Ny, Nr+1); + % add a plane of zeros to psi at bottom of domain, we will take derivative in z + psiy(:,:,1:end-1) = gm_diags(:,:,:,2); + bolV = (psiy(:,:,2:end) - psiy(:,:,1:end-1)) ./ repmat(DRF, [Nx Ny]); + % include bolV when computing vzi % note bolV already has hFacS scaling factored into psiy (a transport diagnostic) - vzi=[squeeze(sum((state(:,:,:,2).*hFacS + bolV).*repmat(DXG,[1 1 49]).*repmat(DRF,size(XC)),1)) zeros(size(XC,2),1)]; - moc=-cumsum(vzi,2,'reverse'); - figure; contourf(YG(1,:)/1000,RF,moc'/1e6,[-5:.1:5],'Linestyle','none'); set(gca,'Clim',[-3 3]);hold on; - contour(YG(1,:)/1000,RF,moc'/1e6,[-5:.5:5],'k'); set(gca,'Clim',[-3 3]); colorbar - xlabel('y-coordinate (km)'); ylabel('Depth (m)'); set(gca,'FontSize',[14]); colormap(bluetored); - title('Eulerian plus Bolus MOC (Sv)'); -end + vzi = [ squeeze(sum((state(:,:,:,2) .* hFacS + bolV) .* repmat(DXG, [1 1 Nr]) ... + .* repmat(DRF, [Nx Ny]),1)) zeros(Ny, 1) ]; + moc = -cumsum(vzi, 2, 'reverse')/1.e6; + figure + contourf(YG(1,:)/1000, RF, moc', [-5:.1:5], 'Linestyle', 'none') + set(gca, 'Clim', [-3 3]) + hold on; + contour(YG(1,:)/1000, RF, moc', [-5:.5:5], 'k') + set(gca, 'Clim', [-3 3]) + colorbar + rectangle('position', [0 RF(end) 50 -RF(end)], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none') + xlabel('y-coordinate (km)') + ylabel('Depth (m)') + set(gca,'FontSize',14) + colormap(bluetored) + title('Eulerian plus Bolus MOC (Sv)') + end % residual MOC from layers, in density space % @@ -100,33 +276,61 @@ % do a cumsum of the zonally integrated transport and multiply by DXG % note cumsum done forward order in matlab (1:37) but this is bottom-up in the ocean % e.g layer 1 is between -2 deg C and -1.75 deg C -vti=[zeros(size(XG,2),1)'; -repmat(DXG(1,:),[length(Tlay)-1 1]).*cumsum(squeeze(sum(laydiag(:,:,:,1),1)),2)'/1e6]; -% due to error in calculation, at the ocean top the value is not precisely zero; force small residual -> 0 -vti(abs(vti)<.005)=0; + vti = [ zeros(Ny, 1)'; -repmat(DXG(1,:), [length(Tlay)-1 1]) ... + .* cumsum(squeeze(sum(laydiag(:,:,:,1), 1)), 2)'/1.e6 ]; +% due to error in calculation, at the ocean top the value +% is not precisely zero; force small residual -> 0 + vti(abs(vti)<.005) = 0; % next, plot in density (temperature) space -figure; contourf(YG(1,:)/1000,Tlay,vti,[-5:.01:5],'Linestyle','none');set(gca,'Clim',[-3 3]) ; hold on -contour(YG(1,:)/1000,Tlay,vti,[-3:.5:3],'k'); colorbar; + figure + contourf(YG(1,:)/1000, Tlay, vti, [-5:.01:5], 'Linestyle', 'none') + set(gca,'Clim', [-3 3]) + hold on + contour(YG(1,:)/1000, Tlay, vti, [-3:.5:3], 'k') + colorbar % finally, plot bounds of max and min SST -sstmax=max(state(:,:,1,1));sstmin=min(state(:,:,1,1)); %max, min in each latitude band -if size(YC,2)==40 - plot(YC(1,2:40)/1000,sstmin(2:40),'g--','LineWidth',2);plot(YC(1,2:40)/1000,sstmax(2:40),'g--','LineWidth',2); -end -% for eddy run, need to dump data more frequently to obtain estimate of SST max, min (e.g. daily) -xlabel('y-coordinate (km)'); ylabel('Temperature (^oC)'); set(gca,'FontSize',[14]); colormap(bluetored); -title('Residual Overturning Circulation (Sv)'); + sstmax = max(state(:,:,1,1)); + sstmin = min(state(:,:,1,1)); % max, min in each latitude band + if Ny==40 + plot(YC(1,2:end)/1000, sstmin(2:end), 'g--', 'LineWidth', 2) + plot(YC(1,2:end)/1000, sstmax(2:end), 'g--', 'LineWidth',2) + rectangle('position', [0 -2 50 sstmax(2)+2], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none') + end +% for eddy run, need to dump data more frequently to obtain reasonable +% estimate for SST max, min (e.g. daily) + xlabel('y-coordinate (km)') + ylabel('Temperature (^oC)') + set(gca,'FontSize',[14]) + colormap(bluetored) + title('Residual Overturning Circulation (Sv)') % residual MOC from layers, converted back into depth coordinates % % to compute the z-locations of the layer interfaces, use diagnostic LaHs1TH (layer depths) -% do a cumsum from the ocean surface downward (thus we flip the laydiag data in z-axis so that k=1 is surface) +% do a cumsum from the ocean surface downward +% (thus we flip the laydiag data in z-axis so that k=1 is surface) % and then take a zonal mean of these z-locations (obviously, need to be % careful about this if the layer depths vary radically in a zonal band!) -csum_th=-[zeros(size(XG,2),1) squeeze(mean(cumsum(laydiag(:,:,(length(Tlay)-1):-1:1,2),3),1))]; -% then cumsum the layer transports from ocean surface downward, multiply by DXG, and zonally integrate -csum_tr=[zeros(size(XG,2),1) squeeze(sum(cumsum(laydiag(:,:,(length(Tlay)-1):-1:1,1),3).*repmat(DXG,[1 1 37]),1))]; -% then this can be plotted specifying 2D arrays for x-axis (Y-coor) and y-axis (layer z-locations) -Y=repmat(YG(1,:),[length(Tlay) 1])'; -figure; contourf(Y/1000,csum_th,csum_tr/1e6,[-5:.01:5],'Linestyle','none');colorbar; hold on; set(gca,'CLim',[-3 3]) -contour(YC(1,:)/1000,RC,zmT',-2:1:10,'k'); %plot zonal mean temp contours, zmT computed above -xlabel('y-coordinate (km)'); ylabel('Depth (m)'); set(gca,'FontSize',[14]); colormap(bluetored); -title('Residual Overturning Circulation (Sv) -> depth'); + csum_th = -[ zeros(Ny, 1) squeeze(mean(cumsum(laydiag(:,:,end:-1:1,2), 3), 1)) ]; +% then cumsum the layer transports from ocean surface downward, +% multiply by DXG, and zonally integrate + csum_tr = [ zeros(Ny, 1) squeeze(sum(cumsum(laydiag(:,:,end:-1:1,1), 3) ... + .* repmat(DXG, [1 1 length(Tlay)-1]), 1)) ]/1.e6; +% then this can be plotted specifying 2D arrays for x-axis (Y-coordinate) +% and y-axis (layer z-locations) + Y = repmat(YG(1,:), [length(Tlay) 1])'; + figure + rectangle('position', [0 -4000 2000 520.5], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none') + hold on + contourf(Y/1000, csum_th, csum_tr, [-5:.01:5], 'Linestyle', 'none') + colorbar + set(gca, 'CLim', [-3 3]) +% plot zonal mean temp contours, zmT computed above + contour(YC(1,:)/1000, RC, zmT', -2:1:10, 'k'); + xlabel('y-coordinate (km)') + ylabel('Depth (m)') + set(gca,'FontSize',14) + colormap(bluetored); + rectangle('position', [0 -4000 50 4000], 'Facecolor', [.7 .7 .7], 'LineStyle', 'none'); + title('Residual MOC converted to depth space (Sv)') + set(gca,'YLim', [-4000 0]) diff --git a/verification/tutorial_reentrant_channel/analysis/py_notebook.ipynb b/verification/tutorial_reentrant_channel/analysis/py_notebook.ipynb new file mode 100644 index 0000000000..db423362d5 --- /dev/null +++ b/verification/tutorial_reentrant_channel/analysis/py_notebook.ipynb @@ -0,0 +1,1134 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Python notebook: Analysis of Tutorial Reentrant Channel Output\n", + "\n", + "We require standard python packages ``numpy`` and ``matplotlib``,\n", + "and use package ``MITgcmutils`` (as described in chapter 11 of the MITgcm users guide)\n", + "to load model grid and diagnostic output data (in binary format). Users should feel free to substitute\n", + "``xmitgcm`` (and ``xarray``) for this purpose if they are comfortable with these packages.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from matplotlib.patches import Rectangle # used to shade land cells\n", + "from MITgcmutils import diagnostics # used to read in statistical diagnostics output\n", + "from MITgcmutils import mds\n", + "import cmocean # uses cmocean colormaps https://matplotlib.org/cmocean/\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "First, load up grid information. Note there is no straightforward way to load the `pkg/layers` temperature coordinate, so we copy the data from `data.layers` configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "path = '../run/' # point to run directory\n", + "XC = mds.rdmds(path + 'XC')\n", + "YC = mds.rdmds(path + 'YC')\n", + "XG = mds.rdmds(path + 'XG')\n", + "YG = mds.rdmds(path + 'YG')\n", + "RC = mds.rdmds(path + 'RC')\n", + "RF = mds.rdmds(path + 'RF')\n", + "DXC = mds.rdmds(path + 'DXC')\n", + "DYC = mds.rdmds(path + 'DYC')\n", + "DXG = mds.rdmds(path + 'DXG')\n", + "DYG = mds.rdmds(path + 'DYG')\n", + "DRF = mds.rdmds(path + 'DRF')\n", + "DRC = mds.rdmds(path + 'DRC')\n", + "RAC = mds.rdmds(path + 'RAC')\n", + "hFacC = mds.rdmds(path + 'hFacC')\n", + "hFacW = mds.rdmds(path + 'hFacW')\n", + "hFacS = mds.rdmds(path + 'hFacS')\n", + "\n", + "# create Nx+1,Ny+1 sized x,y vectors that include the eastern and northern\n", + "# domain edge locations respectively\n", + "Xp1 = np.append(XG[0,:], XG[0,-1] + DXG[0,-1])\n", + "Yp1 = np.append(YG[:,0], YG[-1,0] + DYG[-1,0])\n", + "\n", + "# as specified in data.layers configuration\n", + "layer_bounds = np.array([-2.00, -1.75, -1.50, -1.25,\n", + " -1.00, -0.75, -0.50, -0.25,\n", + " 0.00, 0.25, 0.50, 0.75,\n", + " 1.00, 1.25, 1.50, 1.75,\n", + " 2.00, 2.25, 2.50, 2.75,\n", + " 3.00, 3.25, 3.50, 3.75,\n", + " 4.00, 4.25, 4.50, 5.0,\n", + " 5.5, 6.0, 6.5, 7.0,\n", + " 7.5, 8.0, 8.5, 9.0,\n", + " 9.5, 10.0,])\n", + "\n", + "# extract overall MITgcm domain dimensions\n", + "Ny = XC.shape[0]\n", + "Nx = XC.shape[1]\n", + "Nr = RC.size\n", + "Nr_layers = layer_bounds.size - 1\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "The hyperbolic tangent method of Stewart et al. (2017) was used to generate an optimal vertical grid: https://github.com/kialstewart/vertical_grid_for_ocean_models\n", + "The vertical spacing is plotted below; near the surface, the vertical grid is quite refined,\n", + "with a uppermost cell thickness of 5.5 m, whereas the deepest cell is 150 m thick.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot vertical grid spacing\n", + "\n", + "plt.figure(figsize=(14,5))\n", + "plt.subplot(1,2,1)\n", + "plt.plot(DRF[:,0,0], RC[:,0,0], '-o')\n", + "plt.grid()\n", + "plt.title('Vertical grid spacing')\n", + "plt.xlabel('Grid spacing (m)')\n", + "plt.ylabel('Depth (m)')\n", + "plt.subplot(1,2,2)\n", + "plt.plot(RF[:,0,0], '-o')\n", + "plt.grid()\n", + "plt.title('Vertical layer face depths')\n", + "plt.xlabel('Level')\n", + "plt.ylabel('Depth (m)'); \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The bathymetry consists of a reentrant channel in the x-coordinate, including a deep ridge running N-S\n", + "with a sloping notch cut out in the middle. A wall (\"land cells\") exists at the southernmost row of \n", + "the domain (row of wall cells not plotted in figure below)." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#plot bathymetry as 3D surface plot, as shown in fig 4.10\n", + "\n", + "bathy = np.fromfile(path + 'bathy.50km.bin', dtype='>f4')\n", + "bathy.shape = (Ny,Nx)\n", + "plt.figure(figsize=(10,8)) \n", + "ax = plt.axes(projection='3d')\n", + "ax.plot_surface(XC[1:,:]/1000, YC[1:,:]/1000, bathy[1:,:], cmap='copper', edgecolor='none');\n", + "ax.view_init(40, -50)\n", + "ax.set_zlim(-4000,0)\n", + "ax.set_zlabel('Z (m)', fontsize=16)\n", + "ax.set_title('Tutorial SO Reentrant Channel Bathymetry', fontsize=18)\n", + "plt.xlabel('x (km)',fontsize=16); plt.ylabel('y (km)', fontsize=16)\n", + "plt.xlim(0,1000)\n", + "plt.ylim(0,2000);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the surface layer, temperature is restored to a linear profile:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# SST linear restoring temp\n", + "\n", + "sst_relax = np.fromfile(path + 'SST_relax.50km.bin', dtype='>f4')\n", + "sst_relax.shape = (Ny,Nx)\n", + "plt.plot(YC[:,0]/1000, sst_relax[:,0], linewidth=3)\n", + "plt.grid()\n", + "plt.ylabel('Temperature ($^{\\circ}$C)')\n", + "plt.xlabel('Y (km)')\n", + "plt.title('SST Restoring Temperature', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The vertical profile of initial conditions in temperature at the northern and southern ends of the domain is shown.\n", + "Note that during the run, temperature is restored back to these conditions along the northen boundary.\n", + "\n", + "The vertical profile is specified as follows (where $T_{max}$ is the restoring SST(y)\n", + "and $T_{min}$ = -2 $^{\\circ}$C), and $H$ is the maximum ocean depth):\n", + "\n", + "\n", + "$$ T(z) = (T_{max} - T_{min}) \\frac{exp(z/h) - exp(-H/h)}{1 - exp(-H/h)} + T_{min} $$ " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0ZY5U8uciIiIxEPJXEzUzSoiIiKtQclcTGq3zKmaRUREJB7KMmKiljkRERFpDUrmYuBeJ5nTmDkREZF6zIwf//jHNcu33HILU6dObdYxCgoKePPNN2uWL7jgAh5//PFUhRibqVOncsstt6TkWErmYpKlljkREZFG5ebm8uSTT7J+/fpd2r+ioqJeMtcS7l7zurD2RM/MiEkWkYcxa8yciIi0ZVN71sym/HHBU7c0uConJ4cpU6Zw6623Mm3atFrrVqxYwYUXXsiXX35Jv379uOeeexgyZAgXXHABffr0Yf78+fTp04c33niD7OxsHnzwwZq3P7z22mv84Q9/4IsvvuD3v/89Z555JgA333wzjz32GDt27OC0007j17/+NcuXL+frX/86xx13HLNnz+aPf/wjl156KUcffTRvvvkme+65J08//XS9969++eWXXHrppaxcuRKAP/7xjxx11FFMnTqVlStX8umnn7Jy5UquuuoqrrzySgCmTZvG/fffz+DBg+nXrx9jx45NSRUry4hJ7WROLXMiIiLJXH755Tz00ENs2VI76bviiiuYPHky77//Pt/5zndqEiKATz75hFmzZvHEE09w6aWXcvXVV7NgwYKa12OtWbOG//u//+O5557jmmuCV7bPnDmTJUuW8Pbbb7NgwQLmzZvHa6+9BgTviZ08eTLz589n6NChLFmyhMsvv5yFCxfSq1evWu+BrfbDH/6Qq6++mnfeeYcnnniCiy++uGbdRx99xIsvvsjbb7/Nr3/9a8rLy5k/fz6PPPII8+fP58knn+Sdd95JWR2qZS4O7mRZNJmz9MUiIiLShvXo0YPJkydz22231Wr9mj17Nk8++SQA5513Hj/72c9q1p111lmNvk910qRJZGVlceCBB7J27VogSOZmzpzJmDFjgODdsEuWLGHIkCEMHTqU8ePH1+w/fPhwRo8eDcDYsWNZvnx5vXPMmjWLRYsW1Sxv3bqVoqIiAL7xjW+Qm5tLbm4u/fv3Z+3atbz55pucdtppdOnSBYBTTjmlOdXUKCVzcfBEf3slRraSORERacsiXaHpeDfrVVddxSGHHML3vve9BrexyN/Srl27Nnq83Nzcmvnqd9C7O9deey2XXHJJrW2XL19e73jR/bOzsykpKal3jqqqKmbPnl2v+zXZ/hUVFfWuIZXUzRoHT7zKq0pVLCIi0qg+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Temperature initial conditions, as shown in fig 4.11\n", + "\n", + "T_3D = np.fromfile(path + 'temperature.50km.bin', dtype='>f4')\n", + "T_3D.shape = (Nr,Ny,Nx)\n", + "plt.figure(figsize=(10,4))\n", + "plt.plot(T_3D[:,1,1], RC[:,0,0], linewidth=3, label='Southern end')\n", + "plt.plot(T_3D[:,-1,1], RC[:,0,0], linewidth=3, label='Northern end')\n", + "plt.legend()\n", + "plt.grid()\n", + "plt.xlabel('Temperature ($^{\\circ}$C)')\n", + "plt.ylabel('Depth (m)')\n", + "plt.title('Temperature: Initial Conditions', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The \"mask\" used for 3D temperature restoring (`pkg/rbcs`) is plotted below (showing YZ plane). Note that we are not\n", + "using `pkg/rbcs` in the surface layer (`T_msk[0,:,:]=0`), instead the SST is restored through\n", + "options set in file `data`. Mask values range between 0 and 1, with 0=no restoring, 1=full restoring with timescale prescibed in `data.rbcs`, with fractional strength in between." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# restoring mask in yz plane, showing restoring along northern boundary\n", + "\n", + "T_msk = np.fromfile(path + 'T_relax_mask.50km.bin',dtype='>f4')\n", + "T_msk.shape = (Nr,Ny,Nx)\n", + "# just shade where restoring occurs (non-zero mask), white figure background = no restoring\n", + "plt.pcolormesh(Yp1/1000, RF, np.ma.array(T_msk[:,:,0], mask=(T_msk[:,:,0]==0)), cmap='Reds', vmin=0)\n", + "plt.title('Temperature Restoring Mask YZ plane', fontsize=18)\n", + "plt.colorbar()\n", + "plt.xlabel('Y (km)')\n", + "plt.ylabel('Depth (m)');\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Applied surface wind stress in the x-direction\n", + "\n", + "$$ \\tau_x(y) = \\tau_{0}\\sin \\left( \\frac{y}{2 L_y} \\pi \\right) $$\n", + "\n", + "is as follows:" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# wind stress profile\n", + "\n", + "taux = np.fromfile(path + 'zonal_wind.50km.bin',dtype='>f4')\n", + "taux.shape = (Ny,Nx)\n", + "plt.plot(taux[:,0], YC[:,0]/1000, linewidth=3)\n", + "plt.grid()\n", + "plt.xlabel('N/m$^2$')\n", + "plt.ylabel('Y (km)')\n", + "plt.title(r'Wind stress $\\tau_x$',fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Load diagnostic data\n", + "\n", + "Here we have separate directories labelled ``run`` and ``run_noGM`` and we load up \n", + "sets of statistical diagnostics and diagnostics of (annual mean) year 30 data (corresponding to iteration number 933120) from each.\n", + "\n", + "Diagnostics output (as specified in ``data.diagnostics``) consists of:\n", + "\n", + " state[0,1,2,3,4] = ``THETA``, ``VVEL``, ``UVEL``, ``WVEL``, ``CONVADJ``
\n", + " diag2D[0,1,2] = ``TRELAX``, ``MXDEPTH``, ``ETAN``
\n", + " gm_diags[0,1] = ``GM_PsiX``, ``GM_PsiY``
\n", + " laydiag[0,1,2] = ``LaVH1TH``, ``LaHs1TH``, ``LaVa1TH``
\n", + " \n", + "Statistical diagnostics are loaded into a dictionary-like object which can be accessed\n", + "by key ``THETA`` or ``TRELAX``: \n", + " - statdiags_2D is dimensioned (iter, [ave,std,min,max,vol])\n", + " - statdiags_bylev is dimensioned (iter, kLev, [ave,std,min,max,vol]).\n", + "\n", + "See output file ``available_diagnostics.log`` for a description of these diagnostics, including units.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# choose iteration number corresponding to year 30 (annual average)\n", + "\n", + "iter = 933120\n", + "\n", + "state_wGM = mds.rdmds(path + 'Diags/state', iter)\n", + "diag2D_wGM = mds.rdmds(path + 'Diags/2D_diags', iter)\n", + "gm_diags = mds.rdmds(path + 'Diags/GM_diags', iter)\n", + "laydiag_wGM = mds.rdmds(path + 'Diags/layDiag', iter)\n", + "stdiags_bylev_wGM,stdiags_2D_wGM,iters = diagnostics.readstats(path + 'dynStDiag.0000000000.txt')" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "path = '../run_noGM/' # switch path to load output data from run without GM\n", + "state_woGM = mds.rdmds(path + 'Diags/state', iter)\n", + "diag2D_woGM = mds.rdmds(path + 'Diags/2D_diags', iter)\n", + "laydiag_woGM = mds.rdmds(path + 'Diags/layDiag', iter)\n", + "stdiags_bylev_woGM,stdiags_2D_woGM,iters = diagnostics.readstats(path + 'dynStDiag.0000000000.txt')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Statistical Diagnostics Time Series\n", + "\n", + "First we'll examine the time series of net surface heat flux into the ocean\n", + "(here, diagnostic ``TRELAX``, from temperature relaxation),\n", + "showing both w/GM and w/o GM\n", + "runs on the same plot. As an equilibrium is approached, these series level off to a constant non-zero value because\n", + "of net heat loss at the sponge layer northern boundary." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#statistical diagnostics - TRELAX\n", + "\n", + "# note we have to do a conversion of iteration number into time units, \n", + "# using timestep deltaT=1000 sec (and convert seconds -> years)\n", + "\n", + "deltaT = 1000\n", + "plt.plot(np.array(iters['TRELAX'][:]) * deltaT/86400/360, stdiags_2D_wGM['TRELAX'][:,0],\n", + " 'b--', linewidth=4, label='Mean')\n", + "plt.grid()\n", + "plt.plot(np.array(iters['TRELAX'][:]) * deltaT/86400/360, stdiags_2D_wGM['TRELAX'][:,1], \n", + " 'm--', linewidth=4, label='Std Dev')\n", + "plt.legend()\n", + "plt.plot(np.array(iters['TRELAX'][:]) * deltaT/86400/360, stdiags_2D_woGM['TRELAX'][:,0],\n", + " 'b', linewidth=4)\n", + "plt.plot(np.array(iters['TRELAX'][:]) * deltaT/86400/360, stdiags_2D_woGM['TRELAX'][:,1], \n", + " 'm', linewidth=4)\n", + "plt.xlim(0,30)\n", + "plt.xlabel('Time (yrs)')\n", + "plt.ylabel('W/m$^2$')\n", + "plt.title('Net Heat Flux into Ocean; dashed=w/GM', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Similary, we plot a time series of (global mean) ``THETA`` at the surface, mid-depth, and abyss,\n", + "which appear to show similar equilibration at 30 years except for\n", + "some continued warming at depth in the w/o GM run:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#statistical diagnostics - THETA\n", + "\n", + "# choose depths for time series plots of THETA \n", + "kloc1 = 0 # MITgcm k=1 surface\n", + "kloc2 = 16 # MITgcm k=17 270m\n", + "kloc3 = 39 # MITgcm k=40 2577m depth\n", + "\n", + "fig, axarr = plt.subplots(3, 1, sharex=True, figsize=(8,7))\n", + "\n", + "axarr[0].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_wGM['THETA'][:,kloc1,0],\n", + " 'c--', linewidth=4)\n", + "axarr[0].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_woGM['THETA'][:,kloc1,0],\n", + " 'c', linewidth=4)\n", + "axarr[0].grid()\n", + "axarr[0].set_ylabel('$^{\\circ}$C')\n", + "axarr[0].set_title('Mean Temperature, %d m Depth; dashed=w/GM' %np.abs(RC[kloc1]), fontsize=16)\n", + "axarr[1].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_wGM['THETA'][:,kloc2,0],\n", + " 'g--', linewidth=4)\n", + "axarr[1].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_woGM['THETA'][:,kloc2,0],\n", + " 'g', linewidth=4);\n", + "axarr[1].set_title('Mean Temperature, %d m Depth; dashed=w/GM' %np.abs(RC[kloc2]), fontsize=16)\n", + "axarr[1].grid()\n", + "axarr[1].set_ylabel('$^{\\circ}$C')\n", + "axarr[2].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_wGM['THETA'][:,kloc3,0],\n", + " 'r--', linewidth=4)\n", + "axarr[2].plot(np.array(iters['THETA'][:]) * deltaT/86400/360, stdiags_bylev_woGM['THETA'][:,kloc3,0],\n", + " 'r', linewidth=4)\n", + "axarr[2].grid()\n", + "axarr[2].set_ylabel('$^{\\circ}$C')\n", + "axarr[2].set_title('Mean Temperature, %d m Depth; dashed=w/GM' %np.abs(RC[kloc3]), fontsize=16);\n", + "axarr[2].set_xlim(0,30)\n", + "axarr[2].set_xlabel('Time (yrs)');\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Data.diagnostics output, year 30 annual mean\n", + "\n", + "To look at temperature structure in the yz plane,\n", + "we compute and plot zonal mean temperature and zonal mean mixed layer depth. We use the grid variable\n", + "``hFacC``, which contains the partial cell fraction, to compute a weighted mean.\n", + "\n", + "To plot, we use ``contourf`` to shade zonal mean temperature; unless we take extra steps,\n", + "the plot will include a thin strip of white\n", + "(or background color) space between land points and valid data at ``YC``, ``RC`` points. To avoid this,\n", + "we create a \"padded\" copy (``zmTpad``) of the zonal mean temperature (``zmT``) data with an extra row and column,\n", + "and do the following:\n", + "\n", + " - duplicate the ``zmT`` data adjacent to the southern wall onto these \"land\" points\n", + " - copy the northernmost ``zmT`` data onto the extra column (at the north)\n", + " - copy the bottommost ``zmT`` data onto the extra row (at the bottom)\n", + " - we plot a gray rectangle over the southern wall points to properly show the land location\n", + "\n", + "Finally, when we call ``contourf``, we need to augment the both the ``YC`` and ``RC`` vectors\n", + "with an additional gridpoint location.\n", + "\n", + "Note that we did NOT \"pad\" the top zmT row which is located at ``RC[0]``= -2.7 m\n", + "(whereas our plot extends to the surface).\n", + "Given that our vertical axis ranges over 2500 m depth, this 2.7 m worth of white space\n", + "is not noticeable -- but it is obvious if one limits the plot\n", + "to the top 100 m, for example, in which case repeating the padding procedure at the\n", + "surface (i.e. augmenting a surface value\n", + "point at 0 m depth) might be worthwhile.\n", + "\n", + "This may seem like a lot of extra effort when ``pcolormesh`` will avoid the white space problem, whether you pass\n", + "``pcolormesh`` with ``Yp1``, ``RF`` sized dimensions or ``YC``, ``RC``\n", + "dimensions with ``shading='auto'``. Indeed, it is. However\n", + "``pcolormesh`` will generally give you a plot that looks pixelated whereas a ``contourf`` plot will render smooth\n", + "gradations, depending on your choice of contour interval, often permitting better visualization of results.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# compute and compare zonal mean temperature and mixed layer depth\n", + "\n", + "# compute zonal mean T, weight by partial cell factor\n", + "# using Cartesian grid (uniform horiz. spacing), all grid cells(k) have same volume\n", + "# using a more complex grid, one might need to weight by cell area RAC\n", + "# when computing area-weighted quantities\n", + "\n", + "zmT_woGM = np.ma.average(state_woGM[0,:,:,:], axis=2, weights=hFacC)\n", + "zmT_wGM = np.ma.average(state_wGM[0,:,:,:], axis=2, weights=hFacC)\n", + "\n", + "# to pad zmT with temp values on land points, to avoid white space in contourf plot e.g.\n", + "# between y=50km and first YC point with data, 75km\n", + "\n", + "zmTpad_woGM = np.zeros((RF.size, Ny+1))\n", + "zmTpad_woGM[:-1,:-1] = zmT_woGM # augment zmT shape (+1,+1)\n", + "zmTpad_woGM[:-1,0] = zmT_woGM[:,1] # copy zmT values onto southern land column\n", + "zmTpad_woGM[:-1,-1] = zmT_woGM[:,-1]\n", + "zmTpad_woGM[-1,:] = zmTpad_woGM[-2,:] # copy onto added northern col. and bottom row\n", + "zmTpad_wGM = np.zeros((RF.size, Ny+1))\n", + "zmTpad_wGM[:-1,:-1] = zmT_wGM # repeat padding procedure with GM run data\n", + "zmTpad_wGM[:-1,0] = zmT_wGM[:,1]\n", + "zmTpad_wGM[:-1,-1] = zmT_wGM[:,-1]\n", + "zmTpad_wGM[-1,:] = zmTpad_wGM[-2,:]\n", + "\n", + "# make the plots\n", + "# the plot in the users manual was done using MATLAB parula colormap\n", + "# (which Mathworks arguably claim they have copyrighted, albeit posted here:\n", + "# https://stackoverflow.com/questions/34859628/has-someone-made-the-parula-colormap-in-matplotlib )\n", + "# instead we will use cmocean_v2 thermal, which out-of-the-box is a bit dark, so we lighten a bit.\n", + "\n", + "light_thermal = cmocean.tools.lighten(cmocean.cm.thermal, 0.90)\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(14,5))\n", + "\n", + "im = axarr[0].contourf(np.append(YC[:,0], YC[-1,0] + DYC[-1,0])/1000,\n", + " np.append(RC[:,0,0], RC[-1,0,0] + DRC[-1,0,0]),\n", + " zmTpad_woGM, np.arange(-2,10,.2), cmap=light_thermal)\n", + "plt.colorbar(im, ax =axarr[0])\n", + "im = axarr[1].contourf(np.append(YC[:,0], YC[-1,0] + DYC[-1,0])/1000,\n", + " np.append(RC[:,0,0], RC[-1,0,0] + DRC[-1,0,0]),\n", + " zmTpad_wGM, np.arange(-2,10,.2), cmap=light_thermal)\n", + "plt.colorbar(im, ax = axarr[1])\n", + "axarr[0].set_xlim(0,2000)\n", + "axarr[1].set_xlim(0,2000)\n", + "axarr[0].set_ylim(-2500,0)\n", + "axarr[0].add_patch(Rectangle((0, RF[-1,0,0]), 50, -RF[-1,0,0], facecolor='lightgray'))\n", + "axarr[1].add_patch(Rectangle((0, RF[-1,0,0]), 50, -RF[-1,0,0], facecolor='lightgray'))\n", + "axarr[0].set_xlabel('y-coordinate (km)')\n", + "axarr[1].set_xlabel('y-coordinate (km)')\n", + "axarr[0].set_ylabel('Depth (m)')\n", + "axarr[1].set_ylabel('Depth (m)')\n", + "\n", + "# compute zonal mean ML depth and add to the plots\n", + "zmML_woGM = np.ma.average(diag2D_woGM[1,:,:], axis=1, weights=hFacC[0,:,:])\n", + "zmML_wGM = np.ma.average(diag2D_wGM[1,:,:], axis=1, weights=hFacC[0,:,:])\n", + "axarr[0].plot(YC[1:,0]/1000, -zmML_woGM[1:], linewidth=4, color='aquamarine')\n", + "axarr[1].plot(YC[1:,0]/1000, -zmML_wGM[1:], linewidth=4, color='aquamarine')\n", + "\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Zonal Mean Temp. ($^{\\circ}$C) and ML Depth',fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we plot the convective adjustment index (``CONVADJ``) fairly close to the surface\n", + "(here, we choose 92 m depth).\n", + "Typically, it is useful to know where\n", + "convective mixing is occuring (and how often; 0=never convecting, 1= always convecting), and in this\n", + "setup we see a big difference in mixed layer depths w/ and w/o GM. This is also readily\n", + "apparent in the mixed layer depth plotted above.\n", + "\n", + "For this plot ``pcolormesh`` is perfectly acceptable. For clarity we again show the southern wall as a gray\n", + "rectangle patch." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# compare convective adjustment index\n", + "\n", + "#plot at MITgcm k=10 which is 92 m depth\n", + "klev = 9\n", + "\n", + "# make plots; note here we use pcolormesh passed with size XC,YC\n", + "# and let matplotlib figure out the XG,YG locations\n", + "# uses cmocean_v2 colormap 'deep'\n", + "\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(14,10))\n", + "\n", + "im = axarr[0].pcolormesh(XC/1000, YC/1000, state_woGM[4,klev,:,:],\n", + " cmap=cmocean.cm.deep, shading='auto')\n", + "plt.colorbar(im, ax=axarr[0])\n", + "axarr[0].add_patch(Rectangle((0, 0), 1000, 50, facecolor='lightgray'))\n", + "axarr[0].set_xlabel('x-coordinate (km)')\n", + "axarr[0].set_ylabel('y-coordinate (km)')\n", + "axarr[0].set_aspect('equal')\n", + "im = axarr[1].pcolormesh(XC/1000, YC/1000, state_wGM[4,klev,:,:],\n", + " cmap=cmocean.cm.deep, shading='auto')\n", + "plt.colorbar(im, ax =axarr[1])\n", + "axarr[1].add_patch(Rectangle((0, 0), 1000, 50, facecolor='lightgray'));\n", + "axarr[1].set_aspect('equal')\n", + "axarr[1].set_xlabel('x-coordinate (km)')\n", + "axarr[1].set_ylabel('y-coordinate (km)')\n", + "\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Convective Adj. Index (depth %d m)' %np.abs(RC[klev]), fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's examine the barotropic streamfunction to assess the strength of the zonal current. Similar to the\n", + "computation in tutorial Baroclinic Ocean Gyre, first compute a depth-integrated\n", + "zonal transport $U_{bt}$ (i.e., $u$ multiplied by the vertical cell depth ``DRF``).\n", + "Note we use ``np.pad`` option ``'wrap'`` with specification ``[(0,0),(0,0),(0,1)]`` which will duplicate the upper end\n", + "of the **third** axis (i.e., the x-axis) with values taken from the lower end. It is necessary to wrap the\n", + "u-velocity entering the domain from the west to the domain eastern edge, in order to plot a contour of\n", + "streamfunction over the full domain. We also weight the u-velocity by ``hFacW``,\n", + "the partial cell factor at the western\n", + "edge of each gridcell; this is the portion of the gridcell edge open to flow. The streamfunction $\\Psi_{bt}$\n", + "is then formulated as follows:\n", + "\n", + "$$U_{bt} = - \\frac{\\partial \\Psi_{bt}}{\\partial y}, \\phantom{WW} V_{bt} = \\frac{\\partial \\Psi_{bt}}{\\partial x}$$\n", + "\n", + "which we compute by multiplying $U_{bt}$ by the length of the western gridcell edge (``DYG``) and doing\n", + "a cumulative sum in the north-south direction. When $\\Psi_{bt}$ is plotted we add a row of zeros (i.e., no flow)\n", + "at the southern boundary.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# barotropic streamfunction computation and comparison\n", + "\n", + "ubt_woGM = ((np.pad(state_woGM[2,:,:,:], [(0,0),(0,0),(0,1)], 'wrap') * \n", + " np.pad(hFacW, [(0,0),(0,0),(0,1)], 'wrap')) * DRF).sum(0) # depth-integrated uvel\n", + "psi_woGM = (np.pad(DYG,[(0,0),(0,1)], 'wrap') * (-ubt_woGM)).cumsum(0) / 1E6 # cumsum in N-S direction\n", + "\n", + "ubt_wGM = ((np.pad(state_wGM[2,:,:,:],[(0,0),(0,0),(0,1)], 'wrap') * \n", + " np.pad(hFacW, [(0,0),(0,0),(0,1)], 'wrap')) * DRF).sum(0) # repeat calculation w/GM data\n", + "psi_wGM = (np.pad(DYG,[(0,0),(0,1)], 'wrap') * (-ubt_wGM)).cumsum(0) / 1E6\n", + "\n", + "# make plots\n", + "# use cmocean_v2 colormap 'speed_r'\n", + "\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(14,10))\n", + "\n", + "im=axarr[0].contourf(Xp1/1000, Yp1/1000, np.concatenate((np.zeros((Nx+1,1)).T, psi_woGM)),\n", + " levels=np.arange(-240,40,20), cmap=cmocean.cm.speed_r)\n", + "plt.colorbar(im, ax=axarr[0])\n", + "axarr[0].contour(Xp1/1000, Yp1/1000, np.concatenate((np.zeros((Nx+1,1)).T, psi_woGM)),\n", + " levels=np.arange(-240,40,20), colors='k')\n", + "axarr[0].add_patch(Rectangle((0, 0), 1000, 50, facecolor='lightgray'))\n", + "axarr[0].set_xlabel('x-coordinate (km)')\n", + "axarr[0].set_ylabel('y-coordinate (km)')\n", + "axarr[0].set_aspect('equal')\n", + "\n", + "im = axarr[1].contourf(Xp1/1000, Yp1/1000, np.concatenate((np.zeros((Nx+1,1)).T, psi_wGM)),\n", + " levels=np.arange(-240,40,20), cmap=cmocean.cm.speed_r)\n", + "plt.colorbar(im, ax=axarr[1])\n", + "axarr[1].contour(Xp1/1000, Yp1/1000, np.concatenate((np.zeros((Nx+1,1)).T, psi_wGM)),\n", + " levels=np.arange(-240,40,20), colors='k')\n", + "axarr[1].add_patch(Rectangle((0, 0), 1000, 50, facecolor='lightgray'))\n", + "axarr[1].set_xlabel('x-coordinate (km)')\n", + "axarr[1].set_ylabel('y-coordinate (km)')\n", + "axarr[1].set_aspect('equal')\n", + "\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Barotropic Streamfunction', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Shifting focus to the overturning circulation in the vertical, we compute and plot the \n", + "meridional overturning circulation (MOC) streamfunction as:\n", + "\n", + "$$\\Psi_{moc} = \\int_{z}^0 \\int_\\mathrm{west}^\\mathrm{east} v \\,\\mathrm{d} x \\,\\mathrm{d} z $$\n", + "\n", + "First, we compute meridional transport: v-velocity multiplied\n", + "by the southern edge gridcell length (``DXG``) and gridcell thickness (``DRF``),\n", + "weighted by the partial cell factor on this southern edge (``hFacS``), and take its zonal sum (variable ``vzi``).\n", + "A row of zeros is added at the bottom; we compute the streamfunction by doing a cumulative sum of ``vzi``\n", + "in reverse k-index order. In general, integrating from the bottom upward is preferable, and in fact\n", + "avoids issues if a non-linear free surface option is employed." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# compute and compare Eulerian MOC\n", + "\n", + "# first, take zonal sum of v*dx*dz, adding a row of zeros at the bottom (RF spans 0:-3982 m dimension 50)\n", + "vzi_woGM = np.concatenate((np.sum(state_woGM[1,:,:,:] * DXG * DRF * hFacS, 2), np.zeros((Ny,1)).T))\n", + "moc_woGM = -np.cumsum(vzi_woGM[::-1,:],0)[::-1] / 1E6\n", + "# repeat w/GM run\n", + "vzi_wGM = np.concatenate((np.sum(state_wGM[1,:,:,:] * DXG * DRF * hFacS, 2), np.zeros((Ny,1)).T))\n", + "moc_wGM = -np.cumsum(vzi_wGM[::-1,:],0)[::-1] / 1E6\n", + "\n", + "# make plots\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(15,5))\n", + "\n", + "im = axarr[0].contourf(YG[:,0]/1000, RF[:,0,0], moc_woGM, np.arange(-3,3.1,.1), cmap='bwr')\n", + "plt.colorbar(im, ax=axarr[0])\n", + "axarr[0].contour(YG[:,0]/1000, RF[:,0,0], moc_woGM, np.arange(-3,3.5,.5), colors='k', linewidths=.5)\n", + "im = axarr[1].contourf(YG[:,0]/1000, RF[:,0,0], moc_wGM, np.arange(-3,3.1,.1), cmap='bwr')\n", + "plt.colorbar(im, ax=axarr[1])\n", + "axarr[1].contour(YG[:,0]/1000, RF[:,0,0], moc_wGM, np.arange(-3,3.5,.5), colors='k', linewidths=.5)\n", + "\n", + "axarr[0].set_xlabel('y-coordinate (km)')\n", + "axarr[1].set_xlabel('y-coordinate (km)')\n", + "axarr[0].set_ylabel('Depth (m)')\n", + "axarr[1].set_ylabel('Depth (m)')\n", + "axarr[0].add_patch(Rectangle((0, RF[-1,0,0]), 50, -RF[-1,0,0], facecolor='lightgray'))\n", + "axarr[1].add_patch(Rectangle((0, RF[-1,0,0]), 50, -RF[-1,0,0], facecolor='lightgray'))\n", + "\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Eulerian MOC (Sv)', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The above figures plot the Eulerian MOC, not the residual MOC, the latter being defined as the Eulerian component\n", + "plus a contribution from the eddy induced circulation, here formulated as a bolus velocity.\n", + "The output diagnostics from ``pkg/gmredi`` include bolus transport streamfunction (below, variable ``psi_bol``, i.e., diagnostic ``GM_PsiY``). Bolus v-velocity is computed as:\n", + "\n", + "$$ v_\\mathrm{bolus} = \\frac{- \\partial \\: \\mathrm{GM}_{\\Psi y}}{\\partial z} $$\n", + "\n", + "Conveniently, ``GM_PsiY`` is output at v-velocity points in the horizontal plane, but at the RF\n", + "points in the vertical (i.e. vertical cell separation depths, not cell centers);\n", + "see sections 2.11.4-2.11.5 in the MITgcm users guide. Thus, computing a\n", + "derivative of ``GM_PsiY`` in the vertical (differencing and dividing by ``DRF``) locates\n", + "the resulting bolus velocity at the vertical cell center (i.e. ``RC`` depths),\n", + "coincident with the ``VVEL`` locations, so they can be added together without any spatial\n", + "averaging. Note that ``GM_PsiY`` lacks a value at RF[-1] so we\n", + "first augment variable ``psi_bol`` with a plane of zeros at the bottom.\n", + "In the calculation of ``vzi``, the zonally summed, Eulerian+bolus meridional transport,\n", + "it is not necessary to multiply ``bolV`` by ``hFacS`` because ``GM_PsiY`` is a transport diagnostic\n", + "and has already been weighted by ``hFacS``.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Compute and plot residual MOC (first computing bolus velocity from GM diagnostics)\n", + "\n", + "psi_bol = np.zeros((RF.size,Ny,Nx))\n", + "psi_bol[:-1,:,:] = gm_diags[1,:,:,:] # pad bolus streamfn with zeros at bottom\n", + "bolV = (psi_bol[1:,:,:] - psi_bol[:-1,:,:,]) / DRF\n", + "# compute moc as before, except adding bolV to v-velocity\n", + "vzi = np.concatenate((np.sum((state_wGM[1,:,:,:] * hFacS + bolV) * DXG * DRF,2), np.zeros((Ny,1)).T))\n", + "moc_res = -np.cumsum(vzi[::-1,:],0)[::-1] / 1E6\n", + "\n", + "#make plot\n", + "plt.figure(figsize=(6.5,5))\n", + "plt.contourf(YG[:,0]/1000, RF[:,0,0], moc_res, np.arange(-3,3.2,.1), cmap='bwr')\n", + "plt.colorbar()\n", + "plt.colorbar(im, ax=axarr[0])\n", + "plt.contour(YG[:,0]/1000, RF[:,0,0], moc_res,np.arange(-3,3.5,.5), colors='k', linewidths=.5)\n", + "ax = plt.gca()\n", + "ax.add_patch(Rectangle((0, RF[-1,0,0]), 50, -RF[-1,0,0], facecolor='lightgray'))\n", + "\n", + "plt.xlabel('y-coordinate (km)')\n", + "plt.ylabel('Depth (m)')\n", + "plt.title('Eulerian + Bolus MOC (Sv)', fontsize=18);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Package Layer Diagnostics\n", + "\n", + "### In temperature (density space):\n", + "\n", + "Computing and plotting the MOC in density space is straightforward; ``pkg/layers`` has\n", + "already done the heavy lifting for you. While computing the MOC in z-coordinates is a fairly standard diagnostic\n", + "for illustrating circulation, examining the overturning in density space is illuminating from a watermass\n", + "transformation perspective.\n", + "Given ``LaVH1TH``, the meridional mass transport in layers with units m$^2$s$^{-1}$\n", + "(using a temperature vertical coordinate to define layers, see Fig. 4.12\n", + "in the MITgcm users guide; also note this includes the bolus contribution), we can follow a procedure analogous\n", + "to the above (depth-coordinate) MOC computations. Specifically, we take ``LaVH1TH`` (computed\n", + "at v-velocity locations), do a cumlative sum in the vertical, multiply by \n", + "the southern edge gridcell length (``DXG``) to get units of m$^3$s$^{-1}$, and then finally\n", + "take the zonal sum (variable ``vti``).\n", + "One important caveat: in depth space,\n", + "k=[0:Nr] proceeds from ocean surface to bottom, whereas\n", + "for layers diagnostics k=[0:Nr_layers] proceeds from the ocean bottom to the surface\n", + "(this is because vector ``layer_bounds``, which is otherwise analogous to grid variable ``RF``\n", + "for the vertical temperature coordinate,\n", + "increases from coldest to warmest model temperature). Inserting a row of zeros at the top of ``vti``\n", + "specifyies a zero starting value at the ocean bottom (as we did previously).\n", + "\n", + "Because ``pkg/layers`` is essentially doing calculations in a vertical coordinate that is different from\n", + "the true model (grid) coordinate, some error is introduced in calculations and the value of streamfunction at\n", + "the surface (from a bottom-up ``cumsum``) is not precisely zero. This residual could show up as \"noise\" contours in\n", + "the upper left quadrant of our output plots. To eliminate this, we zero out small positive and \n", + "negative values of ``vti``, here using a threshold of 0.005 Sv, which produces a clean contourf plot.\n", + "\n", + "In interpreting the output plot, the upper contour reflects the surface temperature (i.e., warmest at the north end, coldest at the southern wall). However, given that SST is not zonally uniform,\n", + "we have added green dashed lines of maximum and minimum SST to delineate the surface layer.\n", + "As such, contours between the SST max and min lines do not reflect overturning in the vertical,\n", + "but are indicative of watermass transformation (i.e., surface heat exchange) in the surface layer.\n", + "\n", + "Finally, as noted above, the diagnostic ``LaVH1TH`` includes bolus transport from ``pkg/gmredi``\n", + "(if used) so our plot below shows the residual MOC;\n", + "in other words, the figure below w/GM is the density coordinate representation of the Eulerian + Bolus\n", + "depth MOC shown above. In density space, any circulation that occurs strictly within a density \"class\", for example\n", + "between ``layer_bounds[1]`` and ``layer_bounds[2]`` (temperature -1.75 to -1.5 $^{\\circ}$C)\n", + "is not represented in the plot below; see additional discussion of these plots in section 4.3.5.1." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Compute and plot residual MOC from package layer diagnostics, in density space\n", + "\n", + "vti_woGM = -np.concatenate((np.zeros((Ny,1)).T, (laydiag_woGM[0,:,:,:].cumsum(0)*DXG).sum(2))) / 1E6\n", + "# due to small error in calculation, at the ocean top the value is not precisely zero\n", + "# force small residual -> 0 to make a cleaner plot\n", + "vti_woGM[abs(vti_woGM) < .005] = 0\n", + "vti_wGM = -np.concatenate((np.zeros((Ny,1)).T, (laydiag_wGM[0,:,:,:].cumsum(0)*DXG).sum(2))) / 1E6\n", + "vti_wGM[abs(vti_wGM) < .005] = 0\n", + " \n", + "# make plots\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(15,5))\n", + "\n", + "im = axarr[0].contourf(YG[:,0]/1000, layer_bounds, vti_woGM, np.arange(-3,3,.01), cmap='bwr')\n", + "plt.colorbar(im, ax=axarr[0])\n", + "axarr[0].contour(YG[:,0]/1000, layer_bounds, vti_woGM, np.arange(-3,3,.5), linewidths=0.5, colors='k')\n", + "# trick matplotlib to get it to draw top 0 contour\n", + "axarr[0].contour(YG[:,0]/1000, layer_bounds, vti_woGM,[-0.00001], linewidths=0.5, colors='k') \n", + "axarr[0].plot(YC[1:,0]/1000, state_woGM[0,0,1:,:].max(1), 'g--') # plot maximum SST(y) \n", + "axarr[0].plot(YC[1:,0]/1000, state_woGM[0,0,1:,:].min(1), 'g--') # and minimum SST(y) to delineate the surface layer\n", + "# in an eddy-resolving run, you need to dump data more frequently to obtain\n", + "# reasonable estimates for SST max, min (e.g. daily, not monthly, dumps)\n", + "\n", + "im = axarr[1].contourf(YG[:,0]/1000, layer_bounds, vti_wGM, np.arange(-3,3,.01), cmap='bwr')\n", + "plt.colorbar(im, ax=axarr[1])\n", + "axarr[1].contour(YG[:,0]/1000, layer_bounds,vti_wGM, np.arange(-3,3,.5), linewidths=0.5, colors='k')\n", + "axarr[1].contour(YG[:,0]/1000, layer_bounds, vti_wGM, [-0.00001], linewidths=0.5, colors='k') \n", + "axarr[1].plot(YC[1:,0]/1000, state_wGM[0,0,1:,:].max(1), 'g--')\n", + "axarr[1].plot(YC[1:,0]/1000, state_wGM[0,0,1:,:].min(1), 'g--')\n", + "\n", + "axarr[0].set_xlabel('y-coordinate (km)')\n", + "axarr[0].set_ylabel('Temperature ($^{\\circ}$C)')\n", + "axarr[1].set_xlabel('y-coordinate (km)')\n", + "axarr[1].set_ylabel('Temperature ($^{\\circ}$C)')\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Residual MOC (Sv)', fontsize=18);\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Converted back to depth (z) space:\n", + "\n", + "While the merits of visualizing the overturning in density space is apparent, these plots can be\n", + "a challenge to interpret in terms of the true spatial circulation. Moreover, it is often useful\n", + "to compute and compare the depth-coordinate rendering of the above plots with our earlier\n", + "z-coordinate MOC plots; the former will eliminate any adiabatic circulation as compared to the latter.\n", + "\n", + "For this calculation, we will first calculate the z-location of layer depths (``csum_th``)\n", + "through a surface-to-bottom cumulative sum of diagnostic ``LaHs1TH`` (note, this is the layer thickness\n", + "on the southern face of each cell, corresponding spatially with diagnostic ``LAVH1TH``).\n", + "It is again necessary to first augment the result with a row\n", + "of zeros, corresponding to the surface at z=0. Then we take a zonal mean. To calculate\n", + "the layer transports (``csum_tr``), the computation is the same as above (using ``LAVH1TH``)\n", + "except for reversing the\n", + "k-index on the ``cumsum`` given for this calculation we proceed from the surface downward.\n", + "\n", + "To assess the extent to which interior circulation is adiabatic, also plotted are\n", + "zonal mean temperature contours, using variable ``zmT`` computed earlier in this notebook. Not surprisingly,\n", + "we see a big difference between the run without GM (which includes large parameterized horizontal mixing)\n", + "versus the run with GM.\n", + "\n", + "Note that using a zonal mean to compute layer depths in the YZ plane may be problematic in a solution\n", + "where layer depths vary significantly in a zonal band, e.g., in a setup with more complex topography,\n", + "if using a non-linear\n", + "equation of state, and/or which includes marginal seas." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#residual MOC from layers, converted back into depth coordinates\n", + "\n", + "# calculate layer depths through cumsum of layer thickness, surface to bottom\n", + "# need to reverse k-index on cumsum given k[0] is coldest temperature (ocean bottom)\n", + "csum_th_woGM = -np.concatenate((np.zeros((40,1)).T, laydiag_woGM[1,::-1,:,:].cumsum(0).mean(2)))\n", + "# then cumsum the layer transports from ocean surface downward, multiply by DXG, and integrate zonally\n", + "csum_tr_woGM = np.concatenate((np.zeros((40,1)).T, (laydiag_woGM[0,::-1,:,:].cumsum(0)*DXG).sum(2))) / 1E6\n", + "# then this can be plotted specifying 2D arrays for x-axis (Y-coor) and y-axis (layer z-locations)\n", + "\n", + "# repeat calculation for run w/GM\n", + "csum_th_wGM = -np.concatenate((np.zeros((40,1)).T, laydiag_wGM[1,::-1,:,:].cumsum(0).mean(2)))\n", + "csum_tr_wGM = np.concatenate((np.zeros((40,1)).T, (laydiag_wGM[0,::-1,:,:].cumsum(0)*DXG).sum(2))) / 1E6\n", + "\n", + "Y = np.tile(YG[:,0]/1000, (38, 1)) # this is basically the Y output of a meshgrid(layer_bounds,YG[:,0])\n", + "\n", + "# make plots\n", + "fig, axarr = plt.subplots(1, 2, sharey=True, figsize=(15,5))\n", + "\n", + "axarr[0].add_patch(Rectangle((0, -4000), 2000, 520.5, facecolor='lightgray'))\n", + "im = axarr[0].contourf(Y, csum_th_woGM, csum_tr_woGM,np.arange(-3,3,.01), cmap='bwr', zorder=2)\n", + "plt.colorbar(im, ax=axarr[0])\n", + "# use zonal mean temperature variable zmT computed above\n", + "axarr[0].contour(YC[:,0]/1000,RC[:,0,0], zmT_woGM, np.arange(-2,10,1), colors='k')\n", + "axarr[0].add_patch(Rectangle((0, -4000), 50, 4000, facecolor='lightgray'))\n", + "\n", + "axarr[1].add_patch(Rectangle((0, -4000), 2000, 520.5, facecolor='lightgray'))\n", + "im = axarr[1].contourf(Y, csum_th_wGM, csum_tr_wGM, np.arange(-3,3,.01), cmap='bwr', zorder=2)\n", + "plt.colorbar(im, ax=axarr[1])\n", + "axarr[1].contour(YC[:,0]/1000, RC[:,0,0], zmT_wGM, np.arange(-2,10,1), colors='k')\n", + "axarr[1].add_patch(Rectangle((0, -4000), 50, 4000, facecolor='lightgray'))\n", + "\n", + "axarr[0].set_xlabel('y-coordinate (km)')\n", + "axarr[0].set_ylabel('Depth (m)')\n", + "axarr[1].set_xlabel('y-coordinate (km)')\n", + "axarr[1].set_ylabel('Depth (m)')\n", + "axarr[0].set_title('w/o GM', fontsize=16)\n", + "axarr[1].set_title('w/GM', fontsize=16)\n", + "fig.suptitle('Residual MOC converted to depth space (Sv)', fontsize=18);\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/verification/tutorial_reentrant_channel/code/SIZE.h b/verification/tutorial_reentrant_channel/code/SIZE.h index 138fcbd49a..5b115e237f 100644 --- a/verification/tutorial_reentrant_channel/code/SIZE.h +++ b/verification/tutorial_reentrant_channel/code/SIZE.h @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/tutorial_reentrant_channel/code/SIZE.h_eddy b/verification/tutorial_reentrant_channel/code/SIZE.h_eddy index 0d7eb2874a..8a9ed604a7 100644 --- a/verification/tutorial_reentrant_channel/code/SIZE.h_eddy +++ b/verification/tutorial_reentrant_channel/code/SIZE.h_eddy @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/tutorial_reentrant_channel/code/SIZE.h_mpi b/verification/tutorial_reentrant_channel/code/SIZE.h_mpi index 52910d4904..15bf2f7980 100644 --- a/verification/tutorial_reentrant_channel/code/SIZE.h_mpi +++ b/verification/tutorial_reentrant_channel/code/SIZE.h_mpi @@ -61,3 +61,4 @@ C routine buffers. INTEGER MAX_OLY PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) + diff --git a/verification/tutorial_reentrant_channel/input/gendata.50km.m b/verification/tutorial_reentrant_channel/input/gendata.50km.m new file mode 100644 index 0000000000..a0227e4fd2 --- /dev/null +++ b/verification/tutorial_reentrant_channel/input/gendata.50km.m @@ -0,0 +1,81 @@ +% generate support data files for tutorial Southern Ocean Reentrant Channel +% hard-coded for coarse (non-eddying) resolution: dx=dy=50 km (Cartesian) + +% grid depths generated Using the hyperbolic tangent method of +% Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 +% to design an optimal grid. +% https://github.com/kialstewart/vertical_grid_for_ocean_models + +dr = [ 5.48716549, 6.19462098, 6.99291201, 7.89353689, ... + 8.90937723, 10.05483267, 11.34595414, 12.80056778, ... + 14.43837763, 16.28102917, 18.35210877, 20.67704362, ... + 23.28285446, 26.1976981 , 29.45012046, 33.06792588, ... + 37.07656002, 41.496912 , 46.34247864, 51.61592052, ... + 57.30518684, 63.37960847, 69.78661289, 76.44996107, ... + 83.27047568, 90.13003112, 96.89898027, 103.44631852, ... + 109.65099217, 115.4122275 , 120.65692923, 125.34295968, ... + 129.45821977, 133.01641219, 136.05088105, 138.60793752, ... + 140.74074276, 142.50436556, 143.95220912, 145.133724 , ... + 146.09317287, 146.86917206, 147.49475454, 147.99774783, ... + 148.40131516, 148.72455653, 148.98310489, 149.18968055, ... + 149.35458582]; +nx = 20; +ny = 40; +nr = length(dr); +rF = -[0 cumsum(dr)]; % z-coordinates of vertical cell faces +z = rF(1:end-1) + diff(rF)/2; % z-coordinates of vertical cell centers +H = -sum(dr); % max depth of vertical grid + +% bathymetry -- flat bottom of depth H (m) with idealized mid-depth ridge +bump_max = 2000; % peak height of ridge above flat bottom depth +bathy = H .* ones(nx, ny); +bump = zeros(nx, ny); +% sinusoidal bump running N-S through middle of domain +% this is hard-coded for nx=20, ny=40 resolution +r1 = bump_max*repmat(sin(0:pi/8:pi),[ny 1])'; +r2 = 0:.2:1; % create linear ramp for center notch +bump(6:14,:) = r1; +% linearly lower bump height toward center notch +bump(6:14,14:19) = bump(6:14,14:19) .* fliplr(repmat(r2, [9 1])); +bump(6:14,21:26) = bump(6:14,21:26) .* repmat(r2, [9 1]); +bump(6:14,19:21) = 0; % notch; in these lat bands, contours of f/H are unblocked +bathy = bathy + bump; +bathy(:,1) = 0; % wall at southern boundary +fid=fopen('bathy.50km.bin', 'w', 'b'); +fwrite(fid, bathy, 'float32'); +fclose(fid); + +% zonal wind stress file +taux_max = 0.2; +taux = repmat(taux_max * sin(0:pi/(ny-1):pi), [nx 1]); % at (XG,YC) points +fid = fopen('zonal_wind.50km.bin', 'w', 'b'); +fwrite(fid, taux, 'float32'); +fclose(fid); + +% 3-D mask for RBCS temperature relaxation +% note we implement "sponge layer" with full restoring at N boundary row (y=40), +% weaker restoring at row just south of N boundary (y=39) +% mask set to zero in surface layer (where core model SST restoring applied) +rbcs_mask = zeros(nx, ny, nr); +rbcs_mask(:,end,2:end) = 1.0; +rbcs_mask(:,end-1,2:end) = 0.25; +fid=fopen('T_relax_mask.50km.bin', 'w', 'b'); +fwrite(fid, rbcs_mask, 'float32'); +fclose(fid); + +% 2-D SST field for relaxation, linear ramp between Tmin and Tmax +Tmax = 10.0; +Tmin = -2.0; +sst_relax = repmat(Tmin + (Tmax-Tmin)*(0.5:39.5)/40, [nx 1]); % at (XC,YC) points +fid=fopen('SST_relax.50km.bin', 'w', 'b'); +fwrite(fid, sst_relax, 'float32'); +fclose(fid); + +% 3-D Temperature field for initial conditions and RBCS northern wall profile +h = 500; % e-folding scale for temperature decrease with depth +T_surf = sst_relax; % use 2-D SST relaxation field for surface values +zscale = permute(repmat((exp(z/h) - exp(H/h)) / (1-exp(H/h)), [nx 1 ny]), [ 1 3 2]); +T_3D = repmat(T_surf - Tmin, [1 1 nr]) .* zscale + Tmin; +fid=fopen('temperature.50km.bin', 'w', 'b'); +fwrite(fid, T_3D, 'float32'); +fclose(fid); diff --git a/verification/tutorial_reentrant_channel/input/gendata.50km.py b/verification/tutorial_reentrant_channel/input/gendata.50km.py new file mode 100644 index 0000000000..7b3aeb333b --- /dev/null +++ b/verification/tutorial_reentrant_channel/input/gendata.50km.py @@ -0,0 +1,78 @@ +import numpy as np +from numpy import sin, pi, exp +import matplotlib.pyplot as plt + +# generate support data files for tutorial Southern Ocean Reentrant Channel +# hard-coded for coarse (non-eddying) resolution: dx=dy=50 km (Cartesian) + +# grid depths generated Using the hyperbolic tangent method of +# Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 +# to design an optimal grid. +# https://github.com/kialstewart/vertical_grid_for_ocean_models + +dr = np.array([5.48716549, 6.19462098, 6.99291201, 7.89353689, \ + 8.90937723, 10.05483267, 11.34595414, 12.80056778, \ + 14.43837763, 16.28102917, 18.35210877, 20.67704362, \ + 23.28285446, 26.1976981 , 29.45012046, 33.06792588, \ + 37.07656002, 41.496912 , 46.34247864, 51.61592052, \ + 57.30518684, 63.37960847, 69.78661289, 76.44996107, \ + 83.27047568, 90.13003112, 96.89898027, 103.44631852, \ + 109.65099217, 115.4122275 , 120.65692923, 125.34295968, \ + 129.45821977, 133.01641219, 136.05088105, 138.60793752, \ + 140.74074276, 142.50436556, 143.95220912, 145.133724 , \ + 146.09317287, 146.86917206, 147.49475454, 147.99774783, \ + 148.40131516, 148.72455653, 148.98310489, 149.18968055, \ + 149.35458582]) +nx = 20 +ny = 40 +nr = len(dr) +rF = (np.insert(np.cumsum(dr),0,0)) # z-coordinates of vertical cell faces +z = np.diff(rF)/2 + rF[:-1] # z-coordinates of vertical cell centers +H = -np.sum(dr) # max depth of vertical grid + +# bathymetry -- flat bottom of depth H (m) with idealized mid-depth ridge +bump_max = 2000. # peak height of ridge above flat bottom depth +bathy = H * np.ones([ny, nx]) +bump = np.zeros([ny, nx]) +# sinusoidal bump running N-S through middle of domain +# this is hard-coded for nx=20, ny=40 resolution +r1 = bump_max * sin(np.linspace(0,pi,9)) +r2 = np.reshape((np.linspace(0,1,6)), [6,1]) # create linear ramp for center notch +bump[:,5:14] = r1; +# linearly lower bump height toward center notch +bump[13:19,:] = bump[13:19,:] * np.flip(r2[:]) +bump[20:26,:] = bump[20:26,:] * r2[:] +bump[18:21,:] = 0.0 # notch; in these latitude bands, contours of f/H are unblocked +bathy = bathy + bump; +bathy[0,:] = 0. # wall at southern boundary +bathy.astype('>f4').tofile('bathy.50km.bin') + +# zonal wind stress file +taux_max = 0.2 +taux = np.zeros([ny, nx]) # at (XG,YC) points +taux[:,:] = np.reshape(taux_max * sin(np.linspace(0,pi,ny)), [ny,1]) +taux.astype('>f4').tofile('zonal_wind.50km.bin') + +# 3-D mask for RBCS temperature relaxation +# note we implement "sponge layer" with full restoring at N boundary row (j=39), +# weaker restoring at row just south of N boundary (j=38) +# mask set to zero in surface layer (where core model SST restoring applied) +rbcs_mask = np.zeros([nr, ny, nx]) +rbcs_mask[1:,-1,:] = 1.0 +rbcs_mask[1:,-2,:] = 0.25 +rbcs_mask.astype('>f4').tofile('T_relax_mask.50km.bin') + +# 2-D SST field for relaxation, linear ramp between Tmin and Tmax +Tmax = 10. +Tmin = -2. +sst_relax = np.zeros([ny, nx]) + np.reshape( + Tmin + (Tmax-Tmin)/40 * np.linspace(0.5,39.5,ny),[ny,1]) # at (XC,YC) points +sst_relax.astype('>f4').tofile('SST_relax.50km.bin') + +# 3-D Temperature field for initial conditions and RBCS northern wall profile +h = 500 # e-folding scale for temperature decrease with depth +T_surf = sst_relax # use 2-D SST relaxation field for surface values +zscale = (exp(-z/h) - exp(H/h)) / (1 - exp(H/h)) +zscale = np.reshape(zscale, [nr,1,1]) +T_3D = np.reshape(T_surf - Tmin, [1,ny,nx]) * zscale + Tmin +T_3D.astype('>f4').tofile('temperature.50km.bin') diff --git a/verification/tutorial_reentrant_channel/input/gendata.5km.m b/verification/tutorial_reentrant_channel/input/gendata.5km.m new file mode 100644 index 0000000000..45e1cbe60d --- /dev/null +++ b/verification/tutorial_reentrant_channel/input/gendata.5km.m @@ -0,0 +1,82 @@ +% generate support data files for tutorial Southern Ocean Reentrant Channel +% hard-coded for eddying resolution: dx=dy=5 km (Cartesian) +% to exactly match the bathymetry and forcing in the coarse-res setup + +% grid depths generated Using the hyperbolic tangent method of +% Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 +% to design an optimal grid. +% https://github.com/kialstewart/vertical_grid_for_ocean_models + +dr = [ 5.48716549, 6.19462098, 6.99291201, 7.89353689, ... + 8.90937723, 10.05483267, 11.34595414, 12.80056778, ... + 14.43837763, 16.28102917, 18.35210877, 20.67704362, ... + 23.28285446, 26.1976981 , 29.45012046, 33.06792588, ... + 37.07656002, 41.496912 , 46.34247864, 51.61592052, ... + 57.30518684, 63.37960847, 69.78661289, 76.44996107, ... + 83.27047568, 90.13003112, 96.89898027, 103.44631852, ... + 109.65099217, 115.4122275 , 120.65692923, 125.34295968, ... + 129.45821977, 133.01641219, 136.05088105, 138.60793752, ... + 140.74074276, 142.50436556, 143.95220912, 145.133724 , ... + 146.09317287, 146.86917206, 147.49475454, 147.99774783, ... + 148.40131516, 148.72455653, 148.98310489, 149.18968055, ... + 149.35458582]; +nx = 200; +ny = 400; +nr = length(dr); +rF = -[0 cumsum(dr)]; % z-coordinates of vertical cell faces +z = rF(1:end-1) + diff(rF)/2; % z-coordinates of vertical cell centers +H = -sum(dr); % max depth of vertical grid + +% bathymetry -- flat bottom of depth H (m) with idealized mid-depth ridge +bump_max = 2000; % peak height of ridge above flat bottom depth +bathy = H .* ones(nx, ny); +bump = zeros(nx, ny); +% sinusoidal bump running N-S through middle of domain +% this is hard-coded for nx=200, ny=400 resolution +r1 = bump_max * repmat(sin(0:pi/79:pi),[ny 1])'; +r2 = (0:51)/51; % create linear ramp for center notch +bump(56:135,:) = r1; +% linearly lower bump height toward center notch +bump(56:135,135:186) = bump(56:135,135:186) .* fliplr(repmat(r2, [80 1])); +bump(56:135,205:256) = bump(56:135,205:256) .* repmat(r2, [80 1]); +bump(56:135,186:205) = 0; % notch; in these lat bands, contours of f/H are unblocked +bathy = bathy + bump; +bathy(:,1:10) = 0; % wall at southern boundary, matching coarse-res +fid=fopen('bathy.5km.bin', 'w', 'b'); +fwrite(fid, bathy, 'float32'); +fclose(fid); + +% zonal wind stress file +taux_max = 0.2; +taux=[zeros(5, 1)' taux_max * sin(0:pi/389:pi) zeros(5, 1)']; +taux = repmat(taux, [nx 1]); % at (XG,YC) points +fid = fopen('zonal_wind.5km.bin', 'w', 'b'); +fwrite(fid, taux, 'float32'); +fclose(fid); + +% 3-D mask for RBCS temperature relaxation +% mask set to zero in surface layer (where core model SST restoring applied) +% note we implement "sponge layer" to match coarse-res dimensions +rbcs_mask = zeros(nx, ny, nr); +rbcs_mask(:,391:end,2:end) = 1.0; +rbcs_mask(:,381:390,2:end) = 0.25; +fid=fopen('T_relax_mask.5km.bin', 'w', 'b'); +fwrite(fid, rbcs_mask, 'float32'); +fclose(fid); + +% 2-D SST field for relaxation, linear ramp between Tmin and Tmax +Tmax = 10.0; +Tmin = -2.0; +sst_relax = repmat(Tmin + (Tmax-Tmin)*(0.05:.1:39.95)/40, [nx 1]); % at (XC,YC) points +fid=fopen('SST_relax.5km.bin', 'w', 'b'); +fwrite(fid, sst_relax, 'float32'); +fclose(fid); + +% 3-D Temperature field for initial conditions and RBCS northern wall profile +h = 500; % e-folding scale for temperature decrease with depth +T_surf = sst_relax; % use 2-D SST relaxation field for surface values +zscale = permute(repmat((exp(z/h) - exp(H/h)) / (1-exp(H/h)), [nx 1 ny]), [ 1 3 2]); +T_3D = repmat(T_surf - Tmin, [1 1 nr]) .* zscale + Tmin; +fid=fopen('temperature.5km.bin', 'w', 'b'); +fwrite(fid, T_3D, 'float32'); +fclose(fid); diff --git a/verification/tutorial_reentrant_channel/input/gendata.5km.py b/verification/tutorial_reentrant_channel/input/gendata.5km.py new file mode 100644 index 0000000000..d37d2bb983 --- /dev/null +++ b/verification/tutorial_reentrant_channel/input/gendata.5km.py @@ -0,0 +1,78 @@ +import numpy as np +from numpy import sin, pi, exp +import matplotlib.pyplot as plt + +# generate support data files for tutorial Southern Ocean Reentrant Channel +# hard-coded for eddying resolution: dx=dy=5 km (Cartesian) +# to exactly match the bathymetry and forcing in the coarse-res setup + +# grid depths generated Using the hyperbolic tangent method of +# Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 +# to design an optimal grid. +# https://github.com/kialstewart/vertical_grid_for_ocean_models + +dr = np.array([5.48716549, 6.19462098, 6.99291201, 7.89353689, \ + 8.90937723, 10.05483267, 11.34595414, 12.80056778, \ + 14.43837763, 16.28102917, 18.35210877, 20.67704362, \ + 23.28285446, 26.1976981 , 29.45012046, 33.06792588, \ + 37.07656002, 41.496912 , 46.34247864, 51.61592052, \ + 57.30518684, 63.37960847, 69.78661289, 76.44996107, \ + 83.27047568, 90.13003112, 96.89898027, 103.44631852, \ + 109.65099217, 115.4122275 , 120.65692923, 125.34295968, \ + 129.45821977, 133.01641219, 136.05088105, 138.60793752, \ + 140.74074276, 142.50436556, 143.95220912, 145.133724 , \ + 146.09317287, 146.86917206, 147.49475454, 147.99774783, \ + 148.40131516, 148.72455653, 148.98310489, 149.18968055, \ + 149.35458582]) +nx = 200 +ny = 400 +nr = len(dr) +rF = (np.insert(np.cumsum(dr), 0, 0)) # z-coordinates of vertical cell faces +z = np.diff(rF)/2 + rF[:-1] # z-coordinates of vertical cell centers +H = -np.sum(dr) # max depth of vertical grid + +# bathymetry -- flat bottom of depth H (m) with idealized mid-depth ridge +bump_max = 2000. # peak height of ridge above flat bottom depth +bathy = H * np.ones([ny, nx]) +bump=np.zeros([ny, nx]) +# sinusoidal bump running N-S through middle of domain +# this is hard-coded for nx=200, ny=400 resolution +r1 = bump_max * sin(np.linspace(0,pi,80)) +r2 = np.reshape((np.linspace(0,1,52)), [52,1]) # create linear ramp for center notch +bump[:,55:135] = r1 +# linearly lower bump height toward center notch +bump[134:186,:] = bump[134:186,:] * np.flip(r2[:]) +bump[204:256,:] = bump[204:256,:] * r2[:] +bump[185:205,:] = 0.0 # notch; in these latitude bands, contours of f/H are unblocked +bathy = bathy + bump; +bathy[0:10,:] = 0. # wall at southern boundary, matching coarse-res +bathy.astype('>f4').tofile('bathy.5km.bin') + +# zonal wind stress file (matched to coarse-res profile) +taux_max = 0.2 +taux = np.zeros([ny, nx]) # at (XG,YC) points +taux[5:395,:] = np.reshape(taux_max * sin(np.linspace(0,pi,390)), [390,1]) +taux.astype('>f4').tofile('zonal_wind.5km.bin') + +# 3-D mask for RBCS temperature relaxation +# mask set to zero in surface layer (where core model SST restoring applied) +# note we implement "sponge layer" to match coarse-res dimensions +rbcs_mask = np.zeros([nr, ny, nx]) +rbcs_mask[1:,-10:,:] = 1.0 +rbcs_mask[1:,-20:-10,:] = 0.25 +rbcs_mask.astype('>f4').tofile('T_relax_mask.5km.bin') + +# 2-D SST field for relaxation, linear ramp between Tmin and Tmax +Tmax = 10. +Tmin = -2. +sst_relax = np.zeros([ny, nx]) + np.reshape( + Tmin + (Tmax-Tmin)/40 * np.linspace(0.05,39.95,ny), [ny,1]) # at (XC,YC) points +sst_relax.astype('>f4').tofile('SST_relax.5km.bin') + +# 3-D Temperature field for initial conditions and RBCS northern wall profile +h = 500 # e-folding scale for temperature decrease with depth +T_surf = sst_relax; # use 2-D SST relaxation field for surface values +zscale = (exp(-z/h) - exp(H/h)) / ( 1 - exp(H/h)) +zscale = np.reshape(zscale, [nr,1,1]) +T_3D = np.reshape(T_surf - Tmin, [ 1,ny,nx]) * zscale + Tmin +T_3D.astype('>f4').tofile('temperature.5km.bin') diff --git a/verification/tutorial_reentrant_channel/input/gendata_50km.m b/verification/tutorial_reentrant_channel/input/gendata_50km.m deleted file mode 100644 index 22fae0874d..0000000000 --- a/verification/tutorial_reentrant_channel/input/gendata_50km.m +++ /dev/null @@ -1,56 +0,0 @@ -% generate support data files for tutorial Southern Ocean Reentrant Channel -% hard-coded for 50km resolution, 20x40 horizonal resolution - -% grid depths generated Using the hyperbolic tangent method of Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 -% to design an optimal grid. https://github.com/kialstewart/vertical_grid_for_ocean_models - -dz= [ 5.48716549, 6.19462098, 6.99291201, 7.89353689, ... - 8.90937723, 10.05483267, 11.34595414, 12.80056778, ... - 14.43837763, 16.28102917, 18.35210877, 20.67704362, ... - 23.28285446, 26.1976981 , 29.45012046, 33.06792588, ... - 37.07656002, 41.496912 , 46.34247864, 51.61592052, ... - 57.30518684, 63.37960847, 69.78661289, 76.44996107, ... - 83.27047568, 90.13003112, 96.89898027, 103.44631852, ... - 109.65099217, 115.4122275 , 120.65692923, 125.34295968, ... - 129.45821977, 133.01641219, 136.05088105, 138.60793752, ... - 140.74074276, 142.50436556, 143.95220912, 145.133724 , ... - 146.09317287, 146.86917206, 147.49475454, 147.99774783, ... - 148.40131516, 148.72455653, 148.98310489, 149.18968055, ... - 149.35458582]; - -rF=-[0 cumsum(dz)]; % z-coordinates of vertical cell faces -z=diff(rF)./2 + rF(1:length(dz)); % z-coordinates of vertical cell centers -H=-sum(dz); %max depth of vertical grid - -%bathymetry -- flat bottom with idealized mid-depth ridge -bathy=H.*ones(20,40); -bathy(6:14,:)=bathy(6:14,:)+2000*repmat(sin(0:pi/8:pi),[40 1])'; %ridge running N-S through middle of domain -bathy(6:14,15:18)=H + repmat(2000*sin(0:pi/8:pi),[4 1])'.*repmat((19-(15:18))/5,[9 1]); %sloping notch cutting through ridge -bathy(6:14,19:21)=H; % in this latitude band, contours of f/H are unblocked -bathy(6:14,22:25)=H + repmat(2000*sin(0:pi/8:pi),[4 1])'.*repmat(((22:25)-21)/5,[9 1]); %sloping notch cutting through ridge -bathy(:,1)=0; %wall at southern boundary -fid=fopen('bathy.50km.bin','w','b');fwrite(fid,bathy,'float32');fclose(fid); - -% zonal wind file -taux=repmat(0.2*sin(0:pi/39:pi),[20 1]); -fid=fopen('zonal_wind.50km.bin','w','b');fwrite(fid,taux,'float32');fclose(fid); - -% 3-D mask for RBCS temperature relaxation -% note we implement "sponge layer" with full restoring at N boundary row (y=40), -% weaker restoring at row just south of N boundary (y=39) -% mask set to zero in surface layer (where core model SST restoring applied) -mask=zeros(20,40,length(z)); mask(:,40,2:length(z))= 1.0; mask(:,39,2:length(z)) = 0.25; -fid=fopen('T_relax_mask.50km.bin','w','b');fwrite(fid,mask,'float32');fclose(fid); - -% 2-D SST field for relaxation -Tmax=10.0; Tmin= -2.0; y=0.5:39.5; -T_surf=repmat(Tmin+(Tmax-Tmin)*y/40,[20 1]); -fid=fopen('SST_relax.50km.bin','w','b');fwrite(fid,T_surf,'float32');fclose(fid); - -% 3-D Temperature field for initial conditions and RBCS relaxation -h=500; %e-folding scale for temperature decrease with depth -T_3D=zeros(20,40,length(dz)); -for k=1:length(dz) - T_3D(:,:,k)=(T_surf - Tmin)*(exp(z(k)/h) - exp(H/h))/(1-exp(H/h)) + Tmin; -end -fid=fopen('temperature.50km.bin','w','b');fwrite(fid,T_3D,'float32');fclose(fid); diff --git a/verification/tutorial_reentrant_channel/input/gendata_5km.m b/verification/tutorial_reentrant_channel/input/gendata_5km.m deleted file mode 100644 index 7f82ab564f..0000000000 --- a/verification/tutorial_reentrant_channel/input/gendata_5km.m +++ /dev/null @@ -1,58 +0,0 @@ -% generate support data files for tutorial Southern Ocean Reentrant Channel -% hard-coded for eddy-permitting 5km resolution, 200x400 horizonal resolution -% matches bathy and sponge layer dimensions of coarse res setup - -% grid depths generated Using the hyperbolic tangent method of Stewart et al. (2017) DOI: 10.1016/j.ocemod.2017.03.012 -% to design an optimal grid. https://github.com/kialstewart/vertical_grid_for_ocean_models - -dz= [ 5.48716549, 6.19462098, 6.99291201, 7.89353689, ... - 8.90937723, 10.05483267, 11.34595414, 12.80056778, ... - 14.43837763, 16.28102917, 18.35210877, 20.67704362, ... - 23.28285446, 26.1976981 , 29.45012046, 33.06792588, ... - 37.07656002, 41.496912 , 46.34247864, 51.61592052, ... - 57.30518684, 63.37960847, 69.78661289, 76.44996107, ... - 83.27047568, 90.13003112, 96.89898027, 103.44631852, ... - 109.65099217, 115.4122275 , 120.65692923, 125.34295968, ... - 129.45821977, 133.01641219, 136.05088105, 138.60793752, ... - 140.74074276, 142.50436556, 143.95220912, 145.133724 , ... - 146.09317287, 146.86917206, 147.49475454, 147.99774783, ... - 148.40131516, 148.72455653, 148.98310489, 149.18968055, ... - 149.35458582]; - -rF=-[0 cumsum(dz)]; % z-coordinates of vertical cell faces -z=diff(rF)./2 + rF(1:49); % z-coordinates of vertical cell centers -H=-sum(dz); %max depth of vertical grid - -%bathymetry -- flat bottom with idealized mid-depth ridge -bathy=H*ones(200,400); -bathy(56:135,:)=bathy(56:135,:)+2000*repmat(sin(0:pi/79:pi),[400 1])'; %ridge running N-S through middle of domain -bathy(56:135,136:185)=H + repmat(2000*sin(0:pi/79:pi),[50 1])'.*repmat((186-(136:185))/51,[80 1]); %sloping notch cutting through ridge -bathy(56:135,186:205)=H; % in this latitude band, contours of f/H are unblocked -bathy(56:135,206:255)=H + repmat(2000*sin(0:pi/79:pi),[50 1])'.*repmat(((206:255)-205)/51,[80 1]); %sloping notch cutting through ridge -bathy(:,1:10)=0; %wall at southern boundary,. same width as coarse-res -fid=fopen('bathy.5km.bin','w','b');fwrite(fid,bathy,'float32');fclose(fid); - -% zonal wind file -taux=[zeros(5,1)' 0.2*sin(0:pi/389:pi) zeros(5,1)']; taux=repmat(taux,[200 1]); -fid=fopen('zonal_wind.5km.bin','w','b');fwrite(fid,taux,'float32');fclose(fid); - -% 3-D mask for RBCS temperature relaxation -% note we implement "sponge layer" to match coarse-res dimensions -mask=zeros(200,400,length(z)); mask(:,391:400,2:length(z))= 1.0; mask(:,381:390,2:length(z)) = 0.25; -fid=fopen('T_relax_mask.5km.bin','w','b');fwrite(fid,mask,'float32');fclose(fid); - -% 2-D SST field for relaxation -Tmax=10.0; Tmin= -2.0; y=0.05:.1:39.95; -T_surf=repmat(Tmin+(Tmax-Tmin)*y/40,[200 1]); -fid=fopen('SST_relax.5km.bin','w','b');fwrite(fid,T_surf,'float32');fclose(fid); - -% 3-D Temperature field for initial conditions and RBCS relaxation -h=500; %e-folding scale for temperature decrease with depth -T_3D=zeros(200,400,length(z)); -for k=1:length(z) - T_3D(:,:,k)=(T_surf - Tmin)*(exp(z(k)/h) - exp(H/h))/(1-exp(H/h)) + Tmin; -end -fid=fopen('temperature.5km.bin','w','b');fwrite(fid,T_3D,'float32');fclose(fid); - - - diff --git a/verification/tutorial_tracer_adjsens/code_ad/AUTODIFF_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_ad/AUTODIFF_OPTIONS.h index 5ae6cbb288..50a27202c6 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/AUTODIFF_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_ad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level #define AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,13 +48,34 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer -#define AUTODIFF_PTRACERS_SPLIT_FILES +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#define ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ diff --git a/verification/tutorial_tracer_adjsens/code_ad/CPP_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_ad/CPP_OPTIONS.h index bb896bb268..399d4243f3 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/CPP_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_ad/CPP_OPTIONS.h @@ -53,11 +53,21 @@ C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + C-- Vertical mixing code options: -C o Include/exclude call to S/R CONVECT +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT #define INCLUDE_CONVECT_CALL +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over, here we +C turn it on to reproduce old results +#define INCLUDE_CONVECT_INI_CALL + C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL @@ -73,6 +83,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #define EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +98,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation @@ -93,6 +110,7 @@ C that ensures that d/dt(eta) is exactly equal to - Div.Transport C o Allow the use of Non-Linear Free-Surface formulation C this implies that grid-cell thickness (hFactors) varies with time #define NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate #undef DISABLE_RSTAR_CODE #define DISABLE_SIGMA_CODE @@ -104,7 +122,7 @@ C o Include/exclude GM-like eddy stress in momentum code C-- Algorithm options: -C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver #define ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver diff --git a/verification/tutorial_tracer_adjsens/code_ad/MDSIO_BUFF_WH.h b/verification/tutorial_tracer_adjsens/code_ad/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..4f971790fe --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_ad/MDSIO_BUFF_WH.h @@ -0,0 +1,59 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS_R[8,4]/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS_R8/ fld2d_procbuff_r8 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r8 +#endif + COMMON /MDS_WH_BUFFERS_R4/ fld2d_procbuff_r4 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r4 +#endif + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=727) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/tutorial_tracer_adjsens/code_ad/SIZE.h b/verification/tutorial_tracer_adjsens/code_ad/SIZE.h index 8a656ea673..24fa0890de 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/SIZE.h +++ b/verification/tutorial_tracer_adjsens/code_ad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_tracer_adjsens/code_ad/SIZE.h_mpi b/verification/tutorial_tracer_adjsens/code_ad/SIZE.h_mpi index 33c5318434..c74efbd3fe 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/SIZE.h_mpi +++ b/verification/tutorial_tracer_adjsens/code_ad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_tracer_adjsens/code_ad/ptracers_forcing_surf.F b/verification/tutorial_tracer_adjsens/code_ad/ptracers_forcing_surf.F index 7499bb7b5a..5975ada542 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/ptracers_forcing_surf.F +++ b/verification/tutorial_tracer_adjsens/code_ad/ptracers_forcing_surf.F @@ -25,6 +25,7 @@ SUBROUTINE PTRACERS_FORCING_SURF( #include "FFIELDS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS_PARAMS.h" +#include "PTRACERS_START.h" #include "PTRACERS_FIELDS.h" C !INPUT PARAMETERS: =================================================== @@ -59,13 +60,14 @@ SUBROUTINE PTRACERS_FORCING_SURF( C Example of how to add forcing at the surface DO iTrc=1,PTRACERS_numInUse +c IF ( PTRACERS_StepFwd(iTrc) ) THEN DO j = jMin, jMax DO i = iMin, iMax - surfaceForcingPTr(i,j,bi,bj,iTrc) = -c & 0. _d 0 - & surfaceForcingS(i,j,bi,bj) + surfaceForcingPTr(i,j,bi,bj,iTrc) = 0. _d 0 + & + surfaceForcingS(i,j,bi,bj) ENDDO ENDDO +c ENDIF ENDDO C-- Option to convert Salt-relaxation into additional EmP contribution @@ -119,7 +121,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( c the water column height ; temp., salt, (tracer) flux associated c with this input/output of water is added here to the surface tendency. c - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN DO j = jMin, jMax DO i = iMin, iMax surfaceForcingPTr(i,j,bi,bj,iTrc) = @@ -147,7 +150,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( DO iTrc=1,PTRACERS_numInUse - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN C account for Rain/Evap tracer content (PTRACERS_EvPrRn) using C local surface tracer DO j = jMin, jMax @@ -168,7 +172,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( DO iTrc=1,PTRACERS_numInUse - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN C account for Rain/Evap tracer content (PTRACERS_EvPrRn) assuming uniform C surface tracer (=PTRACERS_ref) DO j = jMin, jMax diff --git a/verification/tutorial_tracer_adjsens/code_ad/tamc.h b/verification/tutorial_tracer_adjsens/code_ad/tamc.h index 0b89721438..ab1dddd4f1 100644 --- a/verification/tutorial_tracer_adjsens/code_ad/tamc.h +++ b/verification/tutorial_tracer_adjsens/code_ad/tamc.h @@ -1,132 +1,90 @@ -#include "PACKAGES_CONFIG.h" - -c ================================================================ -c HEADER TAMC -c ================================================================ -c -c o Header for the use of the Tangent Linear and Adjoint Model -c Compiler (TAMC). -c -c started: Christian Eckert eckert@mit.edu 04-Feb-1999 -c changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 -c - New parameter nlevchk_0 for dimensionalising -c common blocks in the undef ALLOW_TAMC_CHECKPOINTING case -c - nhreads_chkpt was declared at the wrong place -c - new keys, separate for different packages - -c ================================================================ -c HEADER TAMC -c ================================================================ - - -c TAMC checkpointing parameters: -c ============================== -c -c The checkpointing parameters have to be consistent with other model -c parameters and variables. This has to be checked before the model is -c run. -c -c nyears_chkpt - Number of calendar years affected by the assimilation -c experiment; nyears_chkpt has to be at least equal to -c the result of cal_IntYears(mythid). -c nmonths_chkpt - Number of months per year; nmonth_chkpt has to be at -c least equal to nmonthyear. -c ndays_chkpt - Number of days per month; nday_chkpt has to be at least -c equal to nmaxdaymonth. -c nsteps_chkpt - Number of steps per day; nsteps_chkpt has to be at -c least equal to cal_nStepDay(mythid) -c ncheck_chkpt - Number of innermost checkpoints. -c -c ngeom_chkpt - Geometry factor. -c nthreads_chkpt - Number of threads to be used; nth_chkpt .eq. nTx*nTy - - integer nyears_chkpt - integer nmonths_chkpt - integer ndays_chkpt - integer ngeom_chkpt - integer ncheck_chkpt - integer nthreads_chkpt - - parameter (nyears_chkpt = 1 ) - parameter (nmonths_chkpt = 12 ) - parameter (ndays_chkpt = 31 ) - parameter (ngeom_chkpt = nr*nsx*nsy ) - parameter (ncheck_chkpt = 6 ) - parameter ( nthreads_chkpt = 1 ) +CBOP +C !ROUTINE: tamc.h +C !INTERFACE: +C #include "tamc.h" + +C !DESCRIPTION: +C *================================================================* +C | tamc.h +C | o Header file defining parameters and variables for the use of +C | the Tangent Linear and Adjoint Model Compiler (TAMC) +C | or the Transformations in Fortran tool (TAF). +C | +C | started: Christian Eckert eckert@mit.edu 04-Feb-1999 +C | changed: Patrick Heimbach heimbach@mit.edu 06-Jun-2000 +C | cleanup: Martin Losch Martin.Losch@awi.de Nov-2022 +C *================================================================* +CEOP +#ifdef ALLOW_AUTODIFF_TAMC + +C TAMC checkpointing parameters: +C ============================== +C +C The checkpointing parameters have to be consistent with other model +C parameters and variables. This has to be checked before the model is +C run. +C #ifdef ALLOW_TAMC_CHECKPOINTING - integer nchklev_1 - parameter( nchklev_1 = 5 ) - integer nchklev_2 +C nchklev_1 :: length of inner loop (=size of storage in memory) +C nchklev_2 :: length of second loop (stored on disk) +C nchklev_3 :: length of outer loop of 3-level checkpointing + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 5 ) + INTEGER nchklev_2 #ifdef AUTODIFF_2_LEVEL_CHECKPOINT - parameter( nchklev_2 = 6 ) +C use two-level checkpointing with the same storage + PARAMETER( nchklev_2 = 6 ) #else - parameter( nchklev_2 = 2 ) + PARAMETER( nchklev_2 = 2 ) + INTEGER nchklev_3 + PARAMETER( nchklev_3 = 3 ) +#endif +#ifdef AUTODIFF_4_LEVEL_CHECKPOINT +C nchklev_4 :: length of outer loop of 4-level checkpointing + INTEGER nchklev_4 + PARAMETER( nchklev_4 = 1 ) #endif -c parameter( nchklev_2 = 150 ) - integer nchklev_3 - parameter( nchklev_3 = 3 ) -c parameter( nchklev_3 = 150 ) -c-- Note always check for the correct sizes of the common blocks! +C-- Note always check for the correct sizes of the common blocks! +C The product of the nchklev_X needs to be at least equal to +C nTimeSteps. #else /* ALLOW_TAMC_CHECKPOINTING undefined */ - integer nchklev_0 - parameter( nchklev_0 = 64800 ) +C Without ALLOW_TAMC_CHECKPOINTING, nchklev_1 needs to be at least +C equal to nTimeSteps. This (arbitrary) setting would accommodate a +C short run (e.g., 10.d with deltaT=10.mn) + INTEGER nchklev_1 + PARAMETER( nchklev_1 = 1500 ) #endif /* ALLOW_TAMC_CHECKPOINTING */ -c TAMC keys: -c ========== -c -c The keys are used for storing and reading data of the reference -c trajectory. -c -c The convention used here is: -c ikey_ -c -c which means that this key is used in routine for reading -c and writing data. +C TAMC keys: +C ========== +C +C The keys are used for storing and reading data of the reference +C trajectory. Currently there is only one global key. +C ikey_dynamics :: key for main time stepping loop - common /tamc_keys_i/ - & ikey_dynamics, - & ikey_yearly, - & ikey_daily_1, - & ikey_daily_2, - & iloop_daily - - integer ikey_dynamics - integer ikey_yearly - integer ikey_daily_1 - integer ikey_daily_2 - integer iloop_daily + COMMON /TAMC_KEYS_I/ ikey_dynamics + INTEGER ikey_dynamics +C isbyte :: precision of tapes (both memory and disk). +C For smaller tapes replace 8 by 4. INTEGER isbyte -#ifdef ALLOW_TAMC_SINGLEPREC_COMLEV - PARAMETER( isbyte = 4 ) -#else - PARAMETER( isbyte = 8 ) -#endif + PARAMETER( isbyte = 8 ) - INTEGER maximpl - PARAMETER( maximpl = 6 ) -#ifdef ALLOW_PTRACERS -cph moved this to PTRACERS_SIZE.h -cph INTEGER maxpass -cph PARAMETER( maxpass = PTRACERS_num + 2 ) -#else +C maxpass :: maximum number of (active + passive) tracers +C Note: defined in PTRACERS_SIZE.h if compiling pkg/ptracers +#ifndef ALLOW_PTRACERS INTEGER maxpass - PARAMETER( maxpass = 2 ) + PARAMETER( maxpass = 2 ) #endif +C maxcube :: for Multi-Dim advection, max number of horizontal directions INTEGER maxcube - PARAMETER( maxcube = 1 ) - - INTEGER act0, act1, act2, act3, act4 - INTEGER max0, max1, max2, max3 - INTEGER iikey, kkey, passkey, igadkey, - & itdkey, idynkey, igmkey + PARAMETER( maxcube = 2 ) #ifdef ALLOW_CG2D_NSA C Parameter that is needed for the tape complev_cg2d_iter @@ -134,8 +92,9 @@ C cannot be smaller than the allowed number of iterations in cg2d C (numItersMax >= cg2dMaxIters in data-file) INTEGER numItersMax PARAMETER ( numItersMax = 200 ) -#endif /* ALLOW_CG2D_NSA */ +#endif -c ================================================================ -c END OF HEADER TAMC -c ================================================================ +#endif /* ALLOW_AUTODIFF_TAMC */ +C ================================================================ +C END OF HEADER TAMC +C ================================================================ diff --git a/verification/tutorial_tracer_adjsens/code_oad/AUTODIFF_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_oad/AUTODIFF_OPTIONS.h index 034193a30c..9f494e7955 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/AUTODIFF_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_oad/AUTODIFF_OPTIONS.h @@ -36,6 +36,8 @@ C >>> Checkpointing as handled by TAMC C >>> Extract adjoint state #undef ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG C >>> DO 2-level checkpointing instead of 3-level c#undef AUTODIFF_2_LEVEL_CHECKPOINT @@ -46,14 +48,38 @@ c#undef AUTODIFF_4_LEVEL_CHECKPOINT C o use divided adjoint to split adjoint computations #undef ALLOW_DIVIDED_ADJOINT -#undef ALLOW_AUTODIFF_WHTAPEIO #undef ALLOW_PACKUNPACK_METHOD2 -#undef AUTODIFF_USE_OLDSTORE_3D -#undef AUTODIFF_USE_OLDSTORE_2D -C o write separate tape files for each ptracer +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) #undef AUTODIFF_PTRACERS_SPLIT_FILES +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + C ================================================================== #endif /* ndef ECCO_CPPOPTIONS_H */ #endif /* ALLOW_AUTODIFF */ diff --git a/verification/tutorial_tracer_adjsens/code_oad/CPP_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_oad/CPP_OPTIONS.h index 965ccf3577..01580b0fa5 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/CPP_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_oad/CPP_OPTIONS.h @@ -53,11 +53,21 @@ C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. C o Include/exclude phi_hyd calculation code #define INCLUDE_PHIHYD_CALCULATION_CODE +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + C-- Vertical mixing code options: -C o Include/exclude call to S/R CONVECT +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT #define INCLUDE_CONVECT_CALL +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over, here we +C turn it on to reproduce old results +#define INCLUDE_CONVECT_INI_CALL + C o Include/exclude call to S/R CALC_DIFFUSIVITY #define INCLUDE_CALC_DIFFUSIVITY_CALL @@ -73,6 +83,10 @@ C either from grid-spacing reduction effect or as artificially enhanced mixing C near surface & bottom for too thin grid-cell #define EXCLUDE_PCELL_MIX_CODE +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + C-- Time-stepping code options: C o Include/exclude combined Surf.Pressure and Drag Implicit solver code @@ -84,6 +98,9 @@ C o Include/exclude Implicit vertical advection code C o Include/exclude AdamsBashforth-3rd-Order code #undef ALLOW_ADAMSBASHFORTH_3 +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + C-- Model formulation options: C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation @@ -93,6 +110,7 @@ C that ensures that d/dt(eta) is exactly equal to - Div.Transport C o Allow the use of Non-Linear Free-Surface formulation C this implies that grid-cell thickness (hFactors) varies with time #define NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate #undef DISABLE_RSTAR_CODE #define DISABLE_SIGMA_CODE @@ -104,7 +122,7 @@ C o Include/exclude GM-like eddy stress in momentum code C-- Algorithm options: -C o Use Non Self-Adjoint (NSA) conjugate-gradient solver +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver #undef ALLOW_CG2D_NSA C o Include/exclude code for single reduction Conjugate-Gradient solver diff --git a/verification/tutorial_tracer_adjsens/code_oad/CTRL_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_oad/CTRL_OPTIONS.h index 0d5cba6033..1197de9b97 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/CTRL_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_oad/CTRL_OPTIONS.h @@ -26,38 +26,9 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -C allow use of legacy ecco/ctrl codes -#define ECCO_CTRL_DEPRECATED - #define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO -C >>> Initial values. -#define ALLOW_THETA0_CONTROL -#define ALLOW_SALT0_CONTROL -#undef ALLOW_TR10_CONTROL -#define ALLOW_TAUU0_CONTROL -#define ALLOW_TAUV0_CONTROL -#define ALLOW_SFLUX0_CONTROL -#define ALLOW_HFLUX0_CONTROL -#undef ALLOW_SSS0_CONTROL -#undef ALLOW_SST0_CONTROL - -C >>> Surface fluxes. -#undef ALLOW_HFLUX_CONTROL -#undef ALLOW_SFLUX_CONTROL -#undef ALLOW_USTRESS_CONTROL -#undef ALLOW_VSTRESS_CONTROL -#undef ALLOW_SWFLUX_CONTROL -#undef ALLOW_LWFLUX_CONTROL - -C >>> Atmospheric state. -#undef ALLOW_ATEMP_CONTROL -#undef ALLOW_AQH_CONTROL -#undef ALLOW_UWIND_CONTROL -#undef ALLOW_VWIND_CONTROL -#undef ALLOW_PRECIP_CONTROL - C >>> Other Control. #define ALLOW_DIFFKR_CONTROL #undef ALLOW_KAPGM_CONTROL @@ -65,7 +36,7 @@ C >>> Other Control. #undef ALLOW_BOTTOMDRAG_CONTROL C >>> Generic Control. -#undef ALLOW_GENARR2D_CONTROL +#define ALLOW_GENARR2D_CONTROL #define ALLOW_GENARR3D_CONTROL #undef ALLOW_GENTIM2D_CONTROL diff --git a/verification/tutorial_tracer_adjsens/code_oad/CTRL_SIZE.h b/verification/tutorial_tracer_adjsens/code_oad/CTRL_SIZE.h index 7d1306cb5c..00b244c17a 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/CTRL_SIZE.h +++ b/verification/tutorial_tracer_adjsens/code_oad/CTRL_SIZE.h @@ -2,19 +2,21 @@ c ================================================================== c CTRL_SIZE.h c ================================================================== +#if (defined (ALLOW_GENARR2D_CONTROL) || defined (ALLOW_GENARR3D_CONTROL) || defined (ALLOW_GENTIM2D_CONTROL)) + C Generic control variable array dimension C ---------------------------------------- C -C maxCtrlArr2D :: number of 2-dim. generic control variables -C maxCtrlArr3D :: number of 3-dim. generic control variables +C maxCtrlArr2D :: number of 2-d generic init. ctrl variables +C maxCtrlArr3D :: number of 3-d generic init. ctrl variables C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlArr2D - parameter ( maxCtrlArr2D = 1 ) + parameter ( maxCtrlArr2D = 4 ) integer maxCtrlArr3D - parameter ( maxCtrlArr3D = 1 ) + parameter ( maxCtrlArr3D = 4 ) integer maxCtrlTim2D parameter ( maxCtrlTim2D = 1 ) @@ -22,6 +24,8 @@ C maxCtrlProc :: number of pre-processing options per ctrl variable integer maxCtrlProc parameter ( maxCtrlProc = 1 ) +#endif + CEH3 ;;; Local Variables: *** CEH3 ;;; mode:fortran *** CEH3 ;;; End: *** diff --git a/verification/tutorial_tracer_adjsens/code_oad/OPENAD_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_oad/OPENAD_OPTIONS.h index 3e8f7fee5a..dad84c91e4 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/OPENAD_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_oad/OPENAD_OPTIONS.h @@ -18,7 +18,7 @@ CEOP #ifdef ALLOW_OPENAD #define ALLOW_OPENAD_ACTIVE_READ_XYZ -#undef ALLOW_OPENAD_ACTIVE_READ_XY +#define ALLOW_OPENAD_ACTIVE_READ_XY #undef ALLOW_OPENAD_ACTIVE_WRITE #endif /* ALLOW_OPENAD */ diff --git a/verification/tutorial_tracer_adjsens/code_oad/SIZE.h b/verification/tutorial_tracer_adjsens/code_oad/SIZE.h index 8a656ea673..24fa0890de 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/SIZE.h +++ b/verification/tutorial_tracer_adjsens/code_oad/SIZE.h @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_tracer_adjsens/code_oad/SIZE.h_mpi b/verification/tutorial_tracer_adjsens/code_oad/SIZE.h_mpi index 33c5318434..c74efbd3fe 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/SIZE.h_mpi +++ b/verification/tutorial_tracer_adjsens/code_oad/SIZE.h_mpi @@ -62,7 +62,3 @@ C routine buffers. PARAMETER ( MAX_OLX = OLx, & MAX_OLY = OLy ) -C for pkg/ctrl: - INTEGER nobcs - PARAMETER ( nobcs = 4 ) - diff --git a/verification/tutorial_tracer_adjsens/code_oad/cb2mFiles b/verification/tutorial_tracer_adjsens/code_oad/cb2mFiles index 6489684a62..7c6c614c6d 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/cb2mFiles +++ b/verification/tutorial_tracer_adjsens/code_oad/cb2mFiles @@ -13,7 +13,6 @@ CTRL_OBCS ctrl_dummy ctrl ctrl_local_params -ctrl_weights DYNVARS EESUPPORT EOS @@ -26,7 +25,7 @@ GLOBAL_MAX GLOBAL_SUM GMREDI GMREDI_TAVE -grdchk +GRDCHK GRID MOM_VISC MPI_INFO @@ -37,8 +36,6 @@ SOLVE_FOR_PRESSURE3D SOLVE_FOR_PRESSURE SURFACE AUTODIFF_PARAMS -tamc_keys -tamc PTRACERS_SIZE PTRACERS_FIELDS PTRACERS_PARAMS diff --git a/verification/tutorial_tracer_adjsens/code_oad/ctrl_map_ini_genarr.F b/verification/tutorial_tracer_adjsens/code_oad/ctrl_map_ini_genarr.F index 9999c74312..d79a5e95c0 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/ctrl_map_ini_genarr.F +++ b/verification/tutorial_tracer_adjsens/code_oad/ctrl_map_ini_genarr.F @@ -1,4 +1,5 @@ #include "CTRL_OPTIONS.h" +#undef PREVENT_TOO_COLD_TEMP CBOP C !ROUTINE: CTRL_MAP_INI_GENARR @@ -12,6 +13,9 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C | control vector to the model state and update the tile halos. C | The control vector is defined in the header file "ctrl.h". C *================================================================= +C | local version for OpenAD exp. tutorial_global_oce_biogeo and +C | tutorial_tracer_adjsens +C *================================================================= C \ev C !USES: @@ -45,28 +49,27 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C !LOCAL VARIABLES: C == local variables == - integer bi,bj - integer i,j,k - integer jmin,jmax - integer imin,imax - integer il - integer iarr - - logical doglobalread - logical ladinit - character*(MAX_LEN_FNAM) fnamebase - character*( 80) fnamegeneric - character*(MAX_LEN_MBUF) msgBuf + INTEGER bi,bj + INTEGER i,j,k + INTEGER il + INTEGER iarr, iptr + + LOGICAL doglobalread + LOGICAL ladinit + CHARACTER*(MAX_LEN_FNAM) fnamebase + CHARACTER*(MAX_LEN_FNAM) fnamegeneric + CHARACTER*(MAX_LEN_MBUF) msgBuf _RL fac +#ifdef ALLOW_GENARR2D_CONTROL + _RL tmpfld2d(1-OLx:sNx+OLx,1-OLy:sNy+OLy, nSx,nSy) +#endif +#ifdef ALLOW_GENARR3D_CONTROL + _RL tmpfld3d(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) +#endif CEOP - jmin = 1 - jmax = sNy - imin = 1 - imax = sNx - - doglobalread = .false. - ladinit = .false. + doglobalread = .FALSE. + ladinit = .FALSE. fac = 1. _d 0 #ifdef ALLOW_GENARR2D_CONTROL @@ -79,30 +82,76 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr2D +C These forcing control variables are constant in time for this +C experiment, so that we can specify them here. Once we know how to +C make OpenAD use the gentim2d controls, these should be handled via +C ctrl_map_gentim2d.F + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + tmpfld2d(i,j,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO fnamebase = xx_genarr2d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XY ( fnamegeneric, tmpfld2d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr2d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do j = jmin,jmax - do i = imin,imax - if ( iarr .eq. 1 ) then -CC - elseif ( iarr. eq. 2 ) then -CC - endif - enddo - enddo + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + qnet(i,j,bi,bj) = qnet(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO ENDDO - ENDDO + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + empmr(i,j,bi,bj) = empmr(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fu(i,j,bi,bj) = fu(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ELSEIF ( iarr .EQ. 4 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO j = 1,sNy + DO i = 1,sNx + fv(i,j,bi,bj) = fv(i,j,bi,bj) + & + fac*tmpfld2d(i,j,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDIF C-- end iarr loop ENDDO -CC _EXCH_XYZ_RL( theta, myThid ) -CC _EXCH_XYZ_RL( salt, myThid ) + _EXCH_XY_RS( qnet, myThid ) + _EXCH_XY_RS( empmr, myThid ) + CALL EXCH_UV_XY_RS(fu,fv,.TRUE.,myThid) #endif /* ALLOW_GENARR2D_CONTROL */ @@ -115,11 +164,11 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) cc--->>> cc cc A CONSISTENCY CHECK: FOR THIS CUSTOMIZATION -cc WE ASSUME maxCtrlArr3D <= PTRACERS_num +cc WE ASSUME maxCtrlArr3D-3 <= PTRACERS_num cc - IF ( maxCtrlArr3D .GT. PTRACERS_num ) THEN + IF ( maxCtrlArr3D-3 .GT. PTRACERS_num ) THEN WRITE(msgBuf,'(A)') - & 'CTRL_MAP_INI_GENARR: need maxCtrlArr3D <= PTRACERS_num' + & 'CTRL_MAP_INI_GENARR: need maxCtrlArr3D-3 <= PTRACERS_num' CALL PRINT_ERROR( msgBuf, myThid ) STOP 'ABNORMAL END: S/R CTRL_MAP_INI_GENARR' ENDIF @@ -127,28 +176,89 @@ SUBROUTINE CTRL_MAP_INI_GENARR( myThid ) C-- generic - user-defined control vars DO iarr = 1, maxCtrlArr3D + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + tmpfld3d(i,j,k,bi,bj) = 0. _d 0 + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO fnamebase = xx_genarr3d_file(iarr) il=ILNBLNK( fnamebase ) - write(fnamegeneric(1:80),'(2a,i10.10)') + WRITE(fnamegeneric,'(2A,I10.10)') & fnamebase(1:il),'.',optimcycle CALL ACTIVE_READ_XYZ( fnamegeneric, tmpfld3d, 1, & doglobalread, ladinit, optimcycle, & myThid, xx_genarr3d_dummy(iarr) ) - DO bj=myByLo(myThid), myByHi(myThid) - DO bi=myBxLo(myThid), myBxHi(myThid) - do k = 1,Nr - do j = jmin,jmax - do i = imin,imax - pTracer(i,j,k,bi,bj,iarr) = pTracer(i,j,k,bi,bj,iarr) + IF ( iarr .EQ. 1 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + theta(i,j,k,bi,bj) = theta(i,j,k,bi,bj) & + fac*tmpfld3d(i,j,k,bi,bj) - enddo - enddo - enddo +#ifdef PREVENT_TOO_COLD_TEMP +C necessary to reproduce old results + IF ( theta(i,j,k,bi,bj).LT.-2.0 _d 0 ) + & theta(i,j,k,bi,bj) = -2.0 _d 0 +#endif + ENDDO + ENDDO + ENDDO + ENDDO ENDDO - ENDDO - - CALL EXCH_3D_RL( pTracer(1-OLx,1-OLy,1,1,1,iarr), + CALL EXCH_3D_RL( theta, Nr, myThid ) + ELSEIF ( iarr .EQ. 2 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + salt(i,j,k,bi,bj) = salt(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( salt, Nr, myThid ) + ELSEIF ( iarr .EQ. 3 ) THEN + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + diffKr(i,j,k,bi,bj) = diffKr(i,j,k,bi,bj) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( diffKr, Nr, myThid ) + ELSEIF ( iarr .EQ. 4 ) THEN + iptr = iarr-3 + DO bj=myByLo(myThid), myByHi(myThid) + DO bi=myBxLo(myThid), myBxHi(myThid) + DO k = 1,Nr + DO j = 1,sNy + DO i = 1,sNx + pTracer(i,j,k,bi,bj,iptr) = pTracer(i,j,k,bi,bj,iptr) + & + fac*tmpfld3d(i,j,k,bi,bj) + ENDDO + ENDDO + ENDDO + ENDDO + ENDDO + CALL EXCH_3D_RL( pTracer(1-OLx,1-OLy,1,1,1,iptr), & Nr, myThid ) + ENDIF + C-- end iarr loop ENDDO diff --git a/verification/tutorial_tracer_adjsens/code_oad/ptracers_forcing_surf.F b/verification/tutorial_tracer_adjsens/code_oad/ptracers_forcing_surf.F index 7499bb7b5a..5975ada542 100644 --- a/verification/tutorial_tracer_adjsens/code_oad/ptracers_forcing_surf.F +++ b/verification/tutorial_tracer_adjsens/code_oad/ptracers_forcing_surf.F @@ -25,6 +25,7 @@ SUBROUTINE PTRACERS_FORCING_SURF( #include "FFIELDS.h" #include "PTRACERS_SIZE.h" #include "PTRACERS_PARAMS.h" +#include "PTRACERS_START.h" #include "PTRACERS_FIELDS.h" C !INPUT PARAMETERS: =================================================== @@ -59,13 +60,14 @@ SUBROUTINE PTRACERS_FORCING_SURF( C Example of how to add forcing at the surface DO iTrc=1,PTRACERS_numInUse +c IF ( PTRACERS_StepFwd(iTrc) ) THEN DO j = jMin, jMax DO i = iMin, iMax - surfaceForcingPTr(i,j,bi,bj,iTrc) = -c & 0. _d 0 - & surfaceForcingS(i,j,bi,bj) + surfaceForcingPTr(i,j,bi,bj,iTrc) = 0. _d 0 + & + surfaceForcingS(i,j,bi,bj) ENDDO ENDDO +c ENDIF ENDDO C-- Option to convert Salt-relaxation into additional EmP contribution @@ -119,7 +121,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( c the water column height ; temp., salt, (tracer) flux associated c with this input/output of water is added here to the surface tendency. c - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN DO j = jMin, jMax DO i = iMin, iMax surfaceForcingPTr(i,j,bi,bj,iTrc) = @@ -147,7 +150,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( DO iTrc=1,PTRACERS_numInUse - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN C account for Rain/Evap tracer content (PTRACERS_EvPrRn) using C local surface tracer DO j = jMin, jMax @@ -168,7 +172,8 @@ SUBROUTINE PTRACERS_FORCING_SURF( DO iTrc=1,PTRACERS_numInUse - IF (PTRACERS_EvPrRn(iTrc).NE.UNSET_RL) THEN + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN C account for Rain/Evap tracer content (PTRACERS_EvPrRn) assuming uniform C surface tracer (=PTRACERS_ref) DO j = jMin, jMax diff --git a/verification/tutorial_tracer_adjsens/code_tap/AUTODIFF_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/AUTODIFF_OPTIONS.h new file mode 100644 index 0000000000..7339a3b301 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/AUTODIFF_OPTIONS.h @@ -0,0 +1,86 @@ +CBOP +C !ROUTINE: AUTODIFF_OPTIONS.h +C !INTERFACE: +C #include "AUTODIFF_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for AutoDiff (autodiff) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef AUTODIFF_OPTIONS_H +#define AUTODIFF_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_AUTODIFF +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C o Include/exclude code in order to be able to automatically +C differentiate the MITgcmUV by using the Tangent Linear and +C Adjoint Model Compiler (TAMC). +#undef ALLOW_AUTODIFF_TAMC + +C >>> Checkpointing as handled by TAMC +#undef ALLOW_TAMC_CHECKPOINTING + +C >>> Extract adjoint state +#define ALLOW_AUTODIFF_MONITOR +C >>> and DYNVARS_DIAG adjoint state +#undef ALLOW_AUTODIFF_MONITOR_DIAG + +C >>> DO 2-level checkpointing instead of 3-level +c#undef AUTODIFF_2_LEVEL_CHECKPOINT + +C extend to 4-level checkpointing +c#undef AUTODIFF_4_LEVEL_CHECKPOINT + +C o use divided adjoint to split adjoint computations +#undef ALLOW_DIVIDED_ADJOINT + +#undef ALLOW_PACKUNPACK_METHOD2 + +C o This flag is incredibly useful as it reduces the number of +C tape-files on the disc. Maybe it should even be the default. +#undef ALLOW_AUTODIFF_WHTAPEIO + +C o use standard MDSFINDUINTS instead of local pkg/autodiff version for +C WHTAPEIO code I/O. +C Note: comment out the #define below (instead of having an #undef) to +C enable to set this Option in CPP command line (from the optfile) +c#define AUTODIFF_USE_MDSFINDUNITS + +C o use the deprecated autodiff_store/restore method where multiple fields +C are collected in a single buffer field array before storing to tape. +C This functionality has been replaced by WHTAPEIO method (see above). +C Might still be used for OBCS since WHTAPEIO does not support OBCS fields. +#undef AUTODIFF_USE_STORE_RESTORE +#undef AUTODIFF_USE_STORE_RESTORE_OBCS + +C o write separate tape files for each ptracer (has no effect, to be removed) +#undef AUTODIFF_PTRACERS_SPLIT_FILES + +C o allow using viscFacInAd to recompute viscosities in AD +#undef AUTODIFF_ALLOW_VISCFACADJ + +C o for output of AD-variables (ALLOW_AUTODIFF_MONITOR), specific code (e.g., +C in addummy_in_stepping.F) relies on adexch_uv_xy_rs and adexch_xy_rs S/R +C which might not always be generated by TAF (e.g., when controls do not +C include any 2D forcing field). In those cases, defining this cpp-option +C allows to circumvent this missing code issue. +#undef AUTODIFF_EXCLUDE_ADEXCH_RS + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_AUTODIFF */ +#endif /* AUTODIFF_OPTIONS_H */ diff --git a/verification/tutorial_tracer_adjsens/code_tap/COST_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/COST_OPTIONS.h new file mode 100644 index 0000000000..6b6a159873 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/COST_OPTIONS.h @@ -0,0 +1,77 @@ +CBOP +C !ROUTINE: COST_OPTIONS.h +C !INTERFACE: +C #include "COST_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | CPP options file for Cost-Function (cost) package: +C | Control which optional features to compile in this package code. +C *==================================================================* +CEOP + +#ifndef COST_OPTIONS_H +#define COST_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_COST +#ifdef ECCO_CPPOPTIONS_H + +C-- When multi-package option-file ECCO_CPPOPTIONS.h is used (directly included +C in CPP_OPTIONS.h), this option file is left empty since all options that +C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h + +#else /* ndef ECCO_CPPOPTIONS_H */ +C ================================================================== +C-- Package-specific Options & Macros go here + +C >>> Use the EGM-96 geoid error covariance. +#undef ALLOW_EGM96_ERROR_COV +#undef ALLOW_READ_EGM_DATA +C >>> Cost function contributions +#undef ALLOW_HFLUX_COST_CONTRIBUTION +#undef ALLOW_SFLUX_COST_CONTRIBUTION +#undef ALLOW_USTRESS_COST_CONTRIBUTION +#undef ALLOW_VSTRESS_COST_CONTRIBUTION +#undef ALLOW_THETA_COST_CONTRIBUTION +#undef ALLOW_SALT_COST_CONTRIBUTION +#undef ALLOW_SST_COST_CONTRIBUTION +#undef ALLOW_SSS_COST_CONTRIBUTION +#undef ALLOW_SSH_COST_CONTRIBUTION +#undef ALLOW_CTDT_COST_CONTRIBUTION +#undef ALLOW_CTDS_COST_CONTRIBUTION +#undef ALLOW_COST_ATLANTIC +#undef ALLOW_COST_ATLANTIC_HEAT + +#undef ALLOW_COST_TEST +#undef ALLOW_COST_TSQUARED +#define ALLOW_COST_TRACER + +C >>> ALLOW_GENCOST_CONTRIBUTION: interactive way to add basic 2D cost +C function terms. +C > In data.ecco, this requires the specification of data file (name, +C frequency, etc.), bar file name for corresp. model average, standard +C error file name, etc. +C > In addition, adding such cost terms requires editing ecco_cost.h to +C increase NGENCOST, and editing cost_gencost_customize.F to implement +C the actual model average (i.e. the bar file content). +#undef ALLOW_GENCOST_CONTRIBUTION +C >>> free form version of GENCOST: allows one to use otherwise defined +C elements (e.g. psbar and and topex data) while taking advantage of the +C cost function/namelist slots that can be made available using +C ALLOW_GENCOST_CONTRIBUTION. To this end ALLOW_GENCOST_CONTRIBUTION +C simply switches off tests that check whether all of the gencost +C elements (e.g. gencost_barfile and gencost_datafile) are specified +C in data.ecco. +C > While this option increases flexibility within the gencost framework, +C it implies more room for error, so it should be used cautiously, and +C with good knowledge of the rest of pkg/ecco. +C > It requires providing a specific cost function routine, and editing +C cost_gencost_all.F accordingly. +#undef ALLOW_GENCOST_FREEFORM + +C ================================================================== +#endif /* ndef ECCO_CPPOPTIONS_H */ +#endif /* ALLOW_COST */ +#endif /* COST_OPTIONS_H */ diff --git a/verification/tutorial_tracer_adjsens/code_tap/CPP_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/CPP_OPTIONS.h new file mode 100644 index 0000000000..399d4243f3 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/CPP_OPTIONS.h @@ -0,0 +1,159 @@ +#ifndef CPP_OPTIONS_H +#define CPP_OPTIONS_H + +CBOP +C !ROUTINE: CPP_OPTIONS.h +C !INTERFACE: +C #include "CPP_OPTIONS.h" + +C !DESCRIPTION: +C *==================================================================* +C | main CPP options file for the model: +C | Control which optional features to compile in model/src code. +C *==================================================================* +CEOP + +C CPP flags controlling particular source code features + +C-- Forcing code options: + +C o Shortwave heating as extra term in external_forcing.F +C Note: this should be a run-time option +#define SHORTWAVE_HEATING + +C o Include/exclude Geothermal Heat Flux at the bottom of the ocean +#undef ALLOW_GEOTHERMAL_FLUX + +C o Allow to account for heating due to friction (and momentum dissipation) +#undef ALLOW_FRICTION_HEATING + +C o Allow mass source or sink of Fluid in the interior +C (3-D generalisation of oceanic real-fresh water flux) +#undef ALLOW_ADDFLUID + +C o Include pressure loading code +#define ATMOSPHERIC_LOADING + +C o Include/exclude balancing surface forcing fluxes code +#undef ALLOW_BALANCE_FLUXES + +C o Include/exclude balancing surface forcing relaxation code +#undef ALLOW_BALANCE_RELAX + +C o Include/exclude checking for negative salinity +#undef CHECK_SALINITY_FOR_NEGATIVE_VALUES + +C-- Options to discard parts of the main code: + +C o Exclude/allow external forcing-fields load +C this allows to read & do simple linear time interpolation of oceanic +C forcing fields, if no specific pkg (e.g., EXF) is used to compute them. +#undef EXCLUDE_FFIELDS_LOAD + +C o Include/exclude phi_hyd calculation code +#define INCLUDE_PHIHYD_CALCULATION_CODE + +C o Include/exclude sound speed calculation code +C o (Note that this is a diagnostic from Del Grasso algorithm, not derived +C from EOS) +#undef INCLUDE_SOUNDSPEED_CALC_CODE + +C-- Vertical mixing code options: + +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT +#define INCLUDE_CONVECT_CALL + +C o Include/exclude calling S/R CONVECTIVE_ADJUSTMENT_INI, turned off by +C default because it is an unpopular historical left-over, here we +C turn it on to reproduce old results +#define INCLUDE_CONVECT_INI_CALL + +C o Include/exclude call to S/R CALC_DIFFUSIVITY +#define INCLUDE_CALC_DIFFUSIVITY_CALL + +C o Allow full 3D specification of vertical diffusivity +#define ALLOW_3D_DIFFKR + +C o Allow latitudinally varying BryanLewis79 vertical diffusivity +#undef ALLOW_BL79_LAT_VARY + +C o Exclude/allow partial-cell effect (physical or enhanced) in vertical mixing +C this allows to account for partial-cell in vertical viscosity and diffusion, +C either from grid-spacing reduction effect or as artificially enhanced mixing +C near surface & bottom for too thin grid-cell +#define EXCLUDE_PCELL_MIX_CODE + +C o Exclude/allow to use isotropic 3-D Smagorinsky viscosity as diffusivity +C for tracers (after scaling by constant Prandtl number) +#undef ALLOW_SMAG_3D_DIFFUSIVITY + +C-- Time-stepping code options: + +C o Include/exclude combined Surf.Pressure and Drag Implicit solver code +#undef ALLOW_SOLVE4_PS_AND_DRAG + +C o Include/exclude Implicit vertical advection code +#undef INCLUDE_IMPLVERTADV_CODE + +C o Include/exclude AdamsBashforth-3rd-Order code +#undef ALLOW_ADAMSBASHFORTH_3 + +C o Include/exclude Quasi-Hydrostatic Stagger Time-step AdamsBashforth code +#undef ALLOW_QHYD_STAGGER_TS + +C-- Model formulation options: + +C o Allow/exclude "Exact Convervation" of fluid in Free-Surface formulation +C that ensures that d/dt(eta) is exactly equal to - Div.Transport +#define EXACT_CONSERV + +C o Allow the use of Non-Linear Free-Surface formulation +C this implies that grid-cell thickness (hFactors) varies with time +#define NONLIN_FRSURF +C o Disable code for rStar coordinate and/or code for Sigma coordinate +#undef DISABLE_RSTAR_CODE +#define DISABLE_SIGMA_CODE + +C o Include/exclude nonHydrostatic code +#undef ALLOW_NONHYDROSTATIC + +C o Include/exclude GM-like eddy stress in momentum code +#undef ALLOW_EDDYPSI + +C-- Algorithm options: + +C o Include/exclude code for Non Self-Adjoint (NSA) conjugate-gradient solver +#define ALLOW_CG2D_NSA + +C o Include/exclude code for single reduction Conjugate-Gradient solver +#undef ALLOW_SRCG + +C o Choices for implicit solver routines solve_*diagonal.F +C The following has low memory footprint, but not suitable for AD +#undef SOLVE_DIAGONAL_LOWMEMORY +C The following one suitable for AD but does not vectorize +#undef SOLVE_DIAGONAL_KINNER + +C-- Retired code options: + +C o Use LONG.bin, LATG.bin, etc., initialization for ini_curviliear_grid.F +C Default is to use "new" grid files (OLD_GRID_IO undef) but OLD_GRID_IO +C is still useful with, e.g., single-domain curvilinear configurations. +#undef OLD_GRID_IO + +C-- Other option files: + +C o Execution environment support options +#include "CPP_EEOPTIONS.h" + +C o Include/exclude single header file containing multiple packages options +C (AUTODIFF, COST, CTRL, ECCO, EXF ...) instead of the standard way where +C each of the above pkg get its own options from its specific option file. +C Although this method, inherited from ECCO setup, has been traditionally +C used for all adjoint built, work is in progress to allow to use the +C standard method also for adjoint built. +c#ifdef PACKAGES_CONFIG_H +c# include "ECCO_CPPOPTIONS.h" +c#endif + +#endif /* CPP_OPTIONS_H */ diff --git a/verification/hs94.1x64x5/code_ad/CTRL_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/CTRL_OPTIONS.h similarity index 89% rename from verification/hs94.1x64x5/code_ad/CTRL_OPTIONS.h rename to verification/tutorial_tracer_adjsens/code_tap/CTRL_OPTIONS.h index b469e187d8..9e8569d4b7 100644 --- a/verification/hs94.1x64x5/code_ad/CTRL_OPTIONS.h +++ b/verification/tutorial_tracer_adjsens/code_tap/CTRL_OPTIONS.h @@ -26,13 +26,19 @@ C are specific to this package are assumed to be set in ECCO_CPPOPTIONS.h C ================================================================== C-- Package-specific Options & Macros go here -#undef EXCLUDE_CTRL_PACK +#define EXCLUDE_CTRL_PACK #undef ALLOW_NONDIMENSIONAL_CONTROL_IO +C >>> Other Control. +#define ALLOW_DIFFKR_CONTROL +#undef ALLOW_KAPGM_CONTROL +#undef ALLOW_KAPREDI_CONTROL +#undef ALLOW_BOTTOMDRAG_CONTROL + C >>> Generic Control. -#define ALLOW_GENARR2D_CONTROL +#undef ALLOW_GENARR2D_CONTROL #define ALLOW_GENARR3D_CONTROL -#define ALLOW_GENTIM2D_CONTROL +#undef ALLOW_GENTIM2D_CONTROL C o Rotation of wind/stress controls adjustments C from Eastward/Northward to model grid directions diff --git a/verification/tutorial_tracer_adjsens/code_tap/CTRL_SIZE.h b/verification/tutorial_tracer_adjsens/code_tap/CTRL_SIZE.h new file mode 100644 index 0000000000..538693bf62 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/CTRL_SIZE.h @@ -0,0 +1,27 @@ +c ================================================================== +c CTRL_SIZE.h +c ================================================================== + +C Generic control variable array dimension +C ---------------------------------------- +C +C maxCtrlArr2D :: number of 2-dim. generic control variables +C maxCtrlArr3D :: number of 3-dim. generic control variables +C maxCtrlTim2D :: number of 2-d generic tim-varying ctrl variables +C maxCtrlProc :: number of pre-processing options per ctrl variable + + integer maxCtrlArr2D + parameter ( maxCtrlArr2D = 4 ) + + integer maxCtrlArr3D + parameter ( maxCtrlArr3D = 4 ) + + integer maxCtrlTim2D + parameter ( maxCtrlTim2D = 1 ) + + integer maxCtrlProc + parameter ( maxCtrlProc = 1 ) + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_tracer_adjsens/code_tap/GAD_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/GAD_OPTIONS.h new file mode 100644 index 0000000000..93c713c402 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/GAD_OPTIONS.h @@ -0,0 +1,81 @@ +CBOP +C !ROUTINE: GAD_OPTIONS.h + +C !INTERFACE: +C #include "GAD_OPTIONS.h" + +C !DESCRIPTION: +C Contains CPP macros/flags for controlling optional features of package. +CEOP + +C CPP options file for GAD (Generic Advection Diffusion) package +C Use this file for selecting options within the GAD package + +#ifndef GAD_OPTIONS_H +#define GAD_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GENERIC_ADVDIFF +C Package-specific Options & Macros go here + +C This flag selects the form of COSINE(lat) scaling of bi-harmonic term. +C *only for use on a lat-lon grid* +C Setting this flag here only affects the bi-harmonic tracer terms; to +C use COSINEMETH_III in the momentum equations set it CPP_OPTIONS.h +#define COSINEMETH_III + +C This selects isotropic scaling of harmonic and bi-harmonic term when +C using the COSINE(lat) scaling. +C Setting this flag here only affects the tracer diffusion terms; to +C use ISOTROPIC_COS_SCALING of the horizontal viscosity terms in the +C momentum equations set it CPP_OPTIONS.h; the following line +C even overrides setting the flag in CPP_OPTIONS.h +#undef ISOTROPIC_COS_SCALING + +C As of checkpoint41, the inclusion of multi-dimensional advection +C introduces excessive recomputation/storage for the adjoint. +C We can disable it here using CPP because run-time flags are insufficient. +#undef DISABLE_MULTIDIM_ADVECTION + +C Use compressible flow method for multi-dim advection instead of old, less +C accurate jmc method. Note: option has no effect on SOM advection which +C always use compressible flow method. +#undef GAD_MULTIDIM_COMPRESSIBLE + +C This enable the use of 2nd-Order Moment advection scheme (Prather, 1986) for +C Temperature and Salinity ; due to large memory space (10 times more / tracer) +C requirement, by default, this part of the code is not compiled. +#define GAD_ALLOW_TS_SOM_ADV + +C Hack to get rid of negatives caused by Redi. Works by restricting the +C outgoing flux (only contributions computed in gad_calc_rhs) for each cell +C to be no more than the amount of tracer in the cell (see Smolarkiewicz +C MWR 1989 and Bott MWR 1989). +C The flux contributions computed in gad_calc_rhs which are affected by +C this hack are: +C - explicit diffusion, Redi and the non-local part of KPP +C - advection is affected only if multiDimAdvection=.FALSE. +C - vertical diffusion (including the diagonal contribution from GMRedi) +C only if implicitDiffusion=.FALSE. +C - GM is affected only if GMREDI_AdvForm=.FALSE. +C +C The parameter SmolarkiewiczMaxFrac (defined in gad_init_fixed.F) +C specifies the maximal fraction of tracer that can leave a cell. +C By default it is 1. This will prevent the tracer from going negative +C due to contributions from gad_calc_rhs alone. In the presence of other +C contributions (or roundoff errors), it may be necessary to reduce this +C value to achieve strict positivity. +C +C This hack applies to all tracers except temperature and salinity! +C Do not use with Adams-Bashforth (for ptracers)! +C Do not use with OBCS! +#undef GAD_SMOLARKIEWICZ_HACK + +#else + +C If GAD is disabled then so is multi-dimensional advection +#define DISABLE_MULTIDIM_ADVECTION + +#endif /* ALLOW_GENERIC_ADVDIFF */ +#endif /* GAD_OPTIONS_H */ diff --git a/verification/tutorial_tracer_adjsens/code_tap/GMREDI_OPTIONS.h b/verification/tutorial_tracer_adjsens/code_tap/GMREDI_OPTIONS.h new file mode 100644 index 0000000000..98d1c2a39e --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/GMREDI_OPTIONS.h @@ -0,0 +1,52 @@ +C CPP options file for GM/Redi package +C Use this file for selecting options within the GM/Redi package + +#ifndef GMREDI_OPTIONS_H +#define GMREDI_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GMREDI +C Package-specific Options & Macros go here + +C Designed to simplify the Ajoint code: +C #define GMREDI_WITH_STABLE_ADJOINT +C -- exclude the clipping/tapering part of the code that is not used +#define GM_EXCLUDE_CLIPPING +#define GM_EXCLUDE_FM07_TAP +#define GM_EXCLUDE_AC02_TAP +#undef GM_EXCLUDE_TAPERING +#define GM_EXCLUDE_SUBMESO + +C This allows to use Visbeck et al formulation to compute K_GM+Redi +#undef GM_VISBECK_VARIABLE_K +C Use old calculation (before 2007/05/24) of Visbeck etal K_GM+Redi +C (which depends on tapering scheme) +#undef OLD_VISBECK_CALC + +C This allows the leading diagonal (top two rows) to be non-unity +C (a feature required when tapering adiabatically). +#define GM_NON_UNITY_DIAGONAL + +C Allows to use different values of K_GM and K_Redi ; also to +C be used with the advective form (Bolus velocity) of GM +#define GM_EXTRA_DIAGONAL + +C Allows to use the advective form (Bolus velocity) of GM +C instead of the Skew-Flux form (=default) +#define GM_BOLUS_ADVEC + +C Allows to use the Boundary-Value-Problem method to evaluate GM Bolus transport +#undef GM_BOLUS_BVP + +C Following option avoids specific recomputation in adjoint +C routines of gmredi_x/y/rtransport +C It is not needed, only for tests, and very memory-consuming +#undef GM_AUTODIFF_EXCESSIVE_STORE + +#endif /* ALLOW_GMREDI */ +#endif /* GMREDI_OPTIONS_H */ + +CEH3 ;;; Local Variables: *** +CEH3 ;;; mode:fortran *** +CEH3 ;;; End: *** diff --git a/verification/tutorial_tracer_adjsens/code_tap/MDSIO_BUFF_WH.h b/verification/tutorial_tracer_adjsens/code_tap/MDSIO_BUFF_WH.h new file mode 100644 index 0000000000..4f971790fe --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/MDSIO_BUFF_WH.h @@ -0,0 +1,59 @@ +CBOP +C !ROUTINE: MDSIO_BUFF_WH.h +C !INTERFACE: +C include "MDSIO_BUFF_WH.h" +C +C !DESCRIPTION: +C *==========================================================* +C | MDSIO_BUFF_WH.h +C | o Shared Buffers used for I/O WITH HALOS +C *==========================================================* +CEOP + +#ifdef ALLOW_WHIO +C-- COMMON /MDS_WH_BUFFERS_R[8,4]/ Shared Local Buffers With Halos +C Those buffers have be in common block to be shared by all threads +C fld2d_procbuff_rx :: Heap storage buffer to which master thread +C read-in/write-from data which all threads copy from +C (during read) or copy to (during write). + COMMON /MDS_WH_BUFFERS_R8/ fld2d_procbuff_r8 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r8 +#endif + COMMON /MDS_WH_BUFFERS_R4/ fld2d_procbuff_r4 +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + & , fld2d_globuff_r4 +#endif + Real*8 fld2d_procbuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) + Real*4 fld2d_procbuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy ) +#ifndef EXCLUDE_WHIO_GLOBUFF_2D + Real*4 fld2d_globuff_r4( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) + Real*8 fld2d_globuff_r8( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy ) +#endif + +#ifdef ALLOW_WHIO_3D + COMMON /MDS_WH_BUFFERS_3D_L/ writeWh + logical writeWh + COMMON /MDS_WH_BUFFERS_3D_I/ iWh, jWh + integer nWh, iWh, jWh + PARAMETER (nWh=727) + COMMON /MDS_WH_BUFFERS_3D_RL/ +# ifdef INCLUDE_WHIO_GLOBUFF_3D + & fld3d_globuff_r8, fld3d_globuff_r4, +# endif + & fld3d_procbuff_r8, fld3d_procbuff_r4 + Real*8 fld3d_procbuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) + Real*4 fld3d_procbuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nWh ) +# ifdef INCLUDE_WHIO_GLOBUFF_3D + Real*4 fld3d_globuff_r4 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) + Real*8 fld3d_globuff_r8 + & ( (sNx+2*Olx)*(sNy+2*Oly)*nSx*nSy*nPx*nPy*nWh ) +# endif +#endif + +#endif + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| diff --git a/verification/tutorial_tracer_adjsens/code_tap/SIZE.h b/verification/tutorial_tracer_adjsens/code_tap/SIZE.h new file mode 100644 index 0000000000..24fa0890de --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/SIZE.h @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 45, + & sNy = 20, + & OLx = 3, + & OLy = 3, + & nSx = 2, + & nSy = 2, + & nPx = 1, + & nPy = 1, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 20) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/tutorial_tracer_adjsens/code_tap/SIZE.h_mpi b/verification/tutorial_tracer_adjsens/code_tap/SIZE.h_mpi new file mode 100644 index 0000000000..c74efbd3fe --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/SIZE.h_mpi @@ -0,0 +1,64 @@ +CBOP +C !ROUTINE: SIZE.h +C !INTERFACE: +C include SIZE.h +C !DESCRIPTION: \bv +C *==========================================================* +C | SIZE.h Declare size of underlying computational grid. +C *==========================================================* +C | The design here supports a three-dimensional model grid +C | with indices I,J and K. The three-dimensional domain +C | is comprised of nPx*nSx blocks (or tiles) of size sNx +C | along the first (left-most index) axis, nPy*nSy blocks +C | of size sNy along the second axis and one block of size +C | Nr along the vertical (third) axis. +C | Blocks/tiles have overlap regions of size OLx and OLy +C | along the dimensions that are subdivided. +C *==========================================================* +C \ev +C +C Voodoo numbers controlling data layout: +C sNx :: Number of X points in tile. +C sNy :: Number of Y points in tile. +C OLx :: Tile overlap extent in X. +C OLy :: Tile overlap extent in Y. +C nSx :: Number of tiles per process in X. +C nSy :: Number of tiles per process in Y. +C nPx :: Number of processes to use in X. +C nPy :: Number of processes to use in Y. +C Nx :: Number of points in X for the full domain. +C Ny :: Number of points in Y for the full domain. +C Nr :: Number of points in vertical direction. +CEOP + INTEGER sNx + INTEGER sNy + INTEGER OLx + INTEGER OLy + INTEGER nSx + INTEGER nSy + INTEGER nPx + INTEGER nPy + INTEGER Nx + INTEGER Ny + INTEGER Nr + PARAMETER ( + & sNx = 45, + & sNy = 20, + & OLx = 3, + & OLy = 3, + & nSx = 1, + & nSy = 1, + & nPx = 2, + & nPy = 2, + & Nx = sNx*nSx*nPx, + & Ny = sNy*nSy*nPy, + & Nr = 20) + +C MAX_OLX :: Set to the maximum overlap region size of any array +C MAX_OLY that will be exchanged. Controls the sizing of exch +C routine buffers. + INTEGER MAX_OLX + INTEGER MAX_OLY + PARAMETER ( MAX_OLX = OLx, + & MAX_OLY = OLy ) + diff --git a/verification/tutorial_tracer_adjsens/code_tap/packages.conf b/verification/tutorial_tracer_adjsens/code_tap/packages.conf new file mode 100644 index 0000000000..f99351eee2 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/packages.conf @@ -0,0 +1,11 @@ +#-- list of packages (or group of packages) to compile for this experiment: +gfd +monitor +cd_code +gmredi +#- currently, needs pkg/kpp only to make code less simple so that TAF will generate AD-EXCH_UV S/R +kpp +ptracers + +tapenade +adjoint diff --git a/verification/tutorial_tracer_adjsens/code_tap/ptracers_forcing_surf.F b/verification/tutorial_tracer_adjsens/code_tap/ptracers_forcing_surf.F new file mode 100644 index 0000000000..5975ada542 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/code_tap/ptracers_forcing_surf.F @@ -0,0 +1,202 @@ +#include "PTRACERS_OPTIONS.h" + +CBOP +C !ROUTINE: PTRACERS_FORCING_SURF + +C !INTERFACE: ========================================================== + SUBROUTINE PTRACERS_FORCING_SURF( + I relaxForcingS, + I bi, bj, iMin, iMax, jMin, jMax, + I myTime,myIter,myThid ) + +C !DESCRIPTION: +C Precomputes surface forcing term for pkg/ptracers. +C Precomputation is needed because of non-local KPP transport term, +C routine KPP_TRANSPORT_PTR. + +C !USES: =============================================================== + IMPLICIT NONE +#include "SIZE.h" +#include "EEPARAMS.h" +#include "PARAMS.h" +#include "GRID.h" +#include "SURFACE.h" +#include "DYNVARS.h" +#include "FFIELDS.h" +#include "PTRACERS_SIZE.h" +#include "PTRACERS_PARAMS.h" +#include "PTRACERS_START.h" +#include "PTRACERS_FIELDS.h" + +C !INPUT PARAMETERS: =================================================== +C relaxForcingS :: Salt forcing due to surface relaxation +C bi,bj :: tile indices +C myTime :: model time +C myIter :: time-step number +C myThid :: thread number + _RL relaxForcingS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + INTEGER bi, bj, iMin, iMax, jMin, jMax + _RL myTime + INTEGER myIter + INTEGER myThid + +#ifdef ALLOW_PTRACERS + +C !LOCAL VARIABLES: ==================================================== +C i,j :: loop indices +C iTrc :: tracer index +C ks :: surface level index + INTEGER i, j + INTEGER iTrc, ks + _RL add2EmP(1-OLx:sNx+OLx,1-OLy:sNy+OLy) + _RL epsil, cutoff, tmpVar +CEOP + + IF ( usingPCoords ) THEN + ks = Nr + ELSE + ks = 1 + ENDIF + +C Example of how to add forcing at the surface + DO iTrc=1,PTRACERS_numInUse +c IF ( PTRACERS_StepFwd(iTrc) ) THEN + DO j = jMin, jMax + DO i = iMin, iMax + surfaceForcingPTr(i,j,bi,bj,iTrc) = 0. _d 0 + & + surfaceForcingS(i,j,bi,bj) + ENDDO + ENDDO +c ENDIF + ENDDO + +C-- Option to convert Salt-relaxation into additional EmP contribution + IF ( PTRACERS_addSrelax2EmP ) THEN +C- here we assume that salt_EvPrRn = 0 +C set cutoff value to prevent too large additional EmP: +C current limit is set to 0.1 CFL + epsil = 1. _d -10 + cutoff = 0.1 _d 0 *drF(ks)/PTRACERS_dTLev(ks) + IF ( ( (nonlinFreeSurf.GT.0 .OR. usingPCoords) + & .AND. useRealFreshWaterFlux ) + & .OR.convertFW2Salt .EQ. -1. ) THEN + DO j = jMin, jMax + DO i = iMin, iMax + tmpVar = MAX( salt(i,j,ks,bi,bj), epsil ) + add2EmP(i,j) = relaxForcingS(i,j)/tmpVar + add2EmP(i,j) = rUnit2mass + & *MAX( -cutoff, MIN( add2EmP(i,j), cutoff ) ) + ENDDO + ENDDO + ELSE + DO j = jMin, jMax + DO i = iMin, iMax + add2EmP(i,j) = relaxForcingS(i,j)/convertFW2Salt + add2EmP(i,j) = rUnit2mass + & *MAX( -cutoff, MIN( add2EmP(i,j), cutoff ) ) + ENDDO + ENDDO + ENDIF +#ifdef ALLOW_DIAGNOSTICS + IF ( useDiagnostics ) THEN + CALL DIAGNOSTICS_FILL(add2EmP,'Add2EmP ',0,1,2,bi,bj,myThid) + ENDIF +#endif /* ALLOW_DIAGNOSTICS */ + ELSE + DO j = jMin, jMax + DO i = iMin, iMax + add2EmP(i,j) = 0. _d 0 + ENDDO + ENDDO + ENDIF +C-- end of "addEmP" setting + +#ifdef EXACT_CONSERV + IF ( (nonlinFreeSurf.GT.0 .OR. usingPCoords) + & .AND. useRealFreshWaterFlux ) THEN + + DO iTrc=1,PTRACERS_numInUse + +c- NonLin_FrSurf and RealFreshWaterFlux : PmEpR effectively changes +c the water column height ; temp., salt, (tracer) flux associated +c with this input/output of water is added here to the surface tendency. +c + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN + DO j = jMin, jMax + DO i = iMin, iMax + surfaceForcingPTr(i,j,bi,bj,iTrc) = + & surfaceForcingPTr(i,j,bi,bj,iTrc) + & + ( PmEpR(i,j,bi,bj) - add2EmP(i,j) ) + & *( PTRACERS_EvPrRn(iTrc) - pTracer(i,j,ks,bi,bj,iTrc) ) + & *mass2rUnit + ENDDO + ENDDO + ENDIF + + ENDDO + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + ELSE +#else /* EXACT_CONSERV */ + IF (.TRUE.) THEN +#endif /* EXACT_CONSERV */ + +C-- EmPmR does not really affect the water column height (for tracer budget) +C and is converted to a salt tendency. + + IF (convertFW2Salt .EQ. -1.) THEN +C- use local surface tracer field to calculate forcing term: + + DO iTrc=1,PTRACERS_numInUse + + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN +C account for Rain/Evap tracer content (PTRACERS_EvPrRn) using +C local surface tracer + DO j = jMin, jMax + DO i = iMin, iMax + surfaceForcingPTr(i,j,bi,bj,iTrc) = + & surfaceForcingPTr(i,j,bi,bj,iTrc) + & + ( EmPmR(i,j,bi,bj) + add2EmP(i,j) ) + & *( pTracer(i,j,ks,bi,bj,iTrc) - PTRACERS_EvPrRn(iTrc) ) + & *mass2rUnit + ENDDO + ENDDO + ENDIF + + ENDDO + + ELSE +C- use uniform tracer value to calculate forcing term: + + DO iTrc=1,PTRACERS_numInUse + + IF ( PTRACERS_StepFwd(iTrc) .AND. + & PTRACERS_EvPrRn(iTrc).NE.UNSET_RL ) THEN +C account for Rain/Evap tracer content (PTRACERS_EvPrRn) assuming uniform +C surface tracer (=PTRACERS_ref) + DO j = jMin, jMax + DO i = iMin, iMax + surfaceForcingPTr(i,j,bi,bj,iTrc) = + & surfaceForcingPTr(i,j,bi,bj,iTrc) + & + ( EmPmR(i,j,bi,bj) + add2EmP(i,j) ) + & *( PTRACERS_ref(ks,iTrc) - PTRACERS_EvPrRn(iTrc) ) + & *mass2rUnit + ENDDO + ENDDO + ENDIF + + ENDDO + +C- end local-surface-tracer / uniform-value distinction + ENDIF + + ENDIF + +C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| + +#endif /* ALLOW_PTRACERS */ + + RETURN + END diff --git a/verification/tutorial_tracer_adjsens/input/SSS.bin b/verification/tutorial_tracer_adjsens/input/SSS.bin deleted file mode 100644 index 03822f5127..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/SSS.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/SST.bin b/verification/tutorial_tracer_adjsens/input/SST.bin deleted file mode 100644 index ec9b3f4593..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/SST.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/salt.bin b/verification/tutorial_tracer_adjsens/input/salt.bin deleted file mode 100644 index b3db104e4b..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/salt.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/theta.bin b/verification/tutorial_tracer_adjsens/input/theta.bin deleted file mode 100644 index 3e72c7246c..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/theta.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/topog.bin b/verification/tutorial_tracer_adjsens/input/topog.bin deleted file mode 100644 index dd285a27b5..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/topog.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/windx.bin b/verification/tutorial_tracer_adjsens/input/windx.bin deleted file mode 100644 index 8bde20cdff..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/windx.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input/windy.bin b/verification/tutorial_tracer_adjsens/input/windy.bin deleted file mode 100644 index baeaaabea2..0000000000 Binary files a/verification/tutorial_tracer_adjsens/input/windy.bin and /dev/null differ diff --git a/verification/tutorial_tracer_adjsens/input_ad.som81/data b/verification/tutorial_tracer_adjsens/input_ad.som81/data index d1e8d007da..5462b9526d 100644 --- a/verification/tutorial_tracer_adjsens/input_ad.som81/data +++ b/verification/tutorial_tracer_adjsens/input_ad.som81/data @@ -45,6 +45,7 @@ # Elliptic solver parameters &PARM02 + useNSACGSolver=.TRUE., cg2dMaxIters=200, #cg2dTargetResidual=1.E-17, cg2dTargetResWunit=1.E-24, diff --git a/verification/tutorial_tracer_adjsens/input_ad/USE_.bin_FILES_FROM_INPUT_DIR b/verification/tutorial_tracer_adjsens/input_ad/USE_.bin_FILES_FROM_INPUT_DIR deleted file mode 100644 index 9c558e357c..0000000000 --- a/verification/tutorial_tracer_adjsens/input_ad/USE_.bin_FILES_FROM_INPUT_DIR +++ /dev/null @@ -1 +0,0 @@ -. diff --git a/verification/tutorial_tracer_adjsens/input_ad/data b/verification/tutorial_tracer_adjsens/input_ad/data index e6bc625f53..1a27ada824 100644 --- a/verification/tutorial_tracer_adjsens/input_ad/data +++ b/verification/tutorial_tracer_adjsens/input_ad/data @@ -41,6 +41,7 @@ # Elliptic solver parameters &PARM02 + useNSACGSolver=.TRUE., cg2dMaxIters=200, #cg2dTargetResidual=1.E-17, cg2dTargetResWunit=1.E-24, @@ -63,6 +64,7 @@ dumpFreq = 86400., monitorFreq = 43200., adjMonitorFreq = 43200., + monitorSelect = 4, # tauThetaClimRelax = 2592000., tauSaltClimRelax = 2592000., diff --git a/verification/tutorial_tracer_adjsens/input_ad/data.ctrl b/verification/tutorial_tracer_adjsens/input_ad/data.ctrl index 74341f8833..b5b06424c0 100644 --- a/verification/tutorial_tracer_adjsens/input_ad/data.ctrl +++ b/verification/tutorial_tracer_adjsens/input_ad/data.ctrl @@ -1,5 +1,3 @@ -# -# # ********************* # ECCO controlvariables # ********************* @@ -16,7 +14,6 @@ # names for CTRL_GENARR, CTRL_GENTIM # ********************* &CTRL_NML_GENARR - xx_genarr3d_file(1) = 'xx_genarr3d1', - xx_genarr3d_weight(1) = 'wunit', + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_file(1)='xx_ptr1', & - diff --git a/verification/tutorial_tracer_adjsens/input_ad/prepare_run b/verification/tutorial_tracer_adjsens/input_ad/prepare_run index ddb598c3a8..371c1a2daf 100755 --- a/verification/tutorial_tracer_adjsens/input_ad/prepare_run +++ b/verification/tutorial_tracer_adjsens/input_ad/prepare_run @@ -2,20 +2,44 @@ #- in order to save disc space, take *.bin files #- from this dir: -fromDir="../input" +fromDir="../../exp2/input" fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/tutorial_tracer_adjsens/input_oad/USE_.bin_FILES_FROM_INPUT_DIR b/verification/tutorial_tracer_adjsens/input_oad/USE_.bin_FILES_FROM_INPUT_DIR deleted file mode 100644 index 9c558e357c..0000000000 --- a/verification/tutorial_tracer_adjsens/input_oad/USE_.bin_FILES_FROM_INPUT_DIR +++ /dev/null @@ -1 +0,0 @@ -. diff --git a/verification/tutorial_tracer_adjsens/input_oad/data.ctrl b/verification/tutorial_tracer_adjsens/input_oad/data.ctrl index e559ea883f..55de307971 100644 --- a/verification/tutorial_tracer_adjsens/input_oad/data.ctrl +++ b/verification/tutorial_tracer_adjsens/input_oad/data.ctrl @@ -16,5 +16,41 @@ # names for CTRL_GENARR, CTRL_GENTIM # ********************* &CTRL_NML_GENARR +# Since everything is hard coded, the following has no effect but is +# just meant to document the control variables; +# the forcing controls are constant in time so they are realized +# via genarr2d rather than gentim2d and hard coded in +# ctrl_map_ini_genarr.F + xx_genarr2d_file(1) = 'xx_qnet', + xx_genarr2d_weight(1) = 'ones_64b.bin', +#xx_gentim2d_startdate1(1) = 19920101, +#xx_gentim2d_startdate2(1) = 000000, +#xx_gentim2d_period(1) = 0.0, +# + xx_genarr2d_file(2) = 'xx_empmr', + xx_genarr2d_weight(2) = 'ones_64b.bin', +#xx_gentim2d_startdate1(2) = 19920101, +#xx_gentim2d_startdate2(2) = 000000, +#xx_gentim2d_period(2) = 0.0, +# + xx_genarr2d_file(3) = 'xx_fu', + xx_genarr2d_weight(3) = 'ones_64b.bin', +#xx_gentim2d_startdate1(3) = 19920101, +#xx_gentim2d_startdate2(3) = 000000, +#xx_gentim2d_period(3) = 0.0, +# + xx_genarr2d_file(4) = 'xx_fv', + xx_genarr2d_weight(4) = 'ones_64b.bin', +#xx_gentim2d_startdate1(4) = 19920101, +#xx_gentim2d_startdate2(4) = 000000, +#xx_gentim2d_period(4) = 0.0, +# + xx_genarr3d_weight(1) = 'ones_64b.bin', + xx_genarr3d_file(1) = 'xx_theta', + xx_genarr3d_weight(2) = 'ones_64b.bin', + xx_genarr3d_file(2) = 'xx_salt', + xx_genarr3d_weight(3) = 'ones_64b.bin', + xx_genarr3d_file(3) = 'xx_diffKr', + xx_genarr3d_weight(4) = 'ones_64b.bin', + xx_genarr3d_file(4) = 'xx_ptr1', & - diff --git a/verification/tutorial_tracer_adjsens/input_oad/data.grdchk b/verification/tutorial_tracer_adjsens/input_oad/data.grdchk index 42825fc991..00b20eaa04 100644 --- a/verification/tutorial_tracer_adjsens/input_oad/data.grdchk +++ b/verification/tutorial_tracer_adjsens/input_oad/data.grdchk @@ -14,6 +14,7 @@ nend = 4, # to test xx_tr1 set 17 ### grdchkvarindex = 17, -# to test xx_genarr3d set 201 - grdchkvarindex = 201, +# to test passive tracer in +# xx_genarr3d (4th field) set 204 + grdchkvarindex = 204, & diff --git a/verification/tutorial_tracer_adjsens/input_oad/prepare_run b/verification/tutorial_tracer_adjsens/input_oad/prepare_run index ddb598c3a8..371c1a2daf 100755 --- a/verification/tutorial_tracer_adjsens/input_oad/prepare_run +++ b/verification/tutorial_tracer_adjsens/input_oad/prepare_run @@ -2,20 +2,44 @@ #- in order to save disc space, take *.bin files #- from this dir: -fromDir="../input" +fromDir="../../exp2/input" fileList=`( cd $fromDir ; echo *.bin )` #echo 'fileList=' $fileList -#- and do a symbolic link in the current directory +#- and do a symbolic link in the current directory # (if the file does not already exist) if test -d $fromDir ; then lnkList='files:' for xx in $fileList do - if test -r ${fromDir}/$xx ; then - if test ! -r $xx ; then + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then lnkList=${lnkList}" "$xx ln -sf ${fromDir}/$xx . fi diff --git a/verification/tutorial_tracer_adjsens/input_tap/data b/verification/tutorial_tracer_adjsens/input_tap/data new file mode 100644 index 0000000000..5e4294d0c8 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/input_tap/data @@ -0,0 +1,96 @@ +# ==================== +# | Model parameters | +# ==================== +# +# Continuous equation parameters + &PARM01 + tRef= 16.0 , 15.2 , 14.5 , 13.9 , 13.3 , + 12.4 , 11.3 , 9.9 , 8.4 , 6.7 , + 5.2 , 3.8 , 2.9 , 2.3 , 1.8 , + 1.5 , 1.1 , 0.8 , 0.66, 0.63, + sRef= 34.65, 34.75, 34.82, 34.87, 34.90, + 34.90, 34.86, 34.78, 34.69, 34.60, + 34.58, 34.62, 34.68, 34.72, 34.73, + 34.74, 34.73, 34.73, 34.72, 34.72, + viscAr=1.E-3, + viscAh=5.E5, + no_slip_sides=.FALSE., + no_slip_bottom=.TRUE., + diffKhT=1.E3, +#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +#diffKrT=3.E-5, + diffKhS=1.E3, + diffKrS=3.E-5, + tAlpha=2.E-4, + sBeta =7.4E-4, + eosType='LINEAR', + gravity=9.81, + implicitDiffusion=.TRUE., + rigidLid=.FALSE., + implicitFreeSurface=.TRUE., + exactConserv=.TRUE., + useCDscheme=.TRUE., +#-nonlinear free surface + hFacInf=0.2, + hFacSup=2.0, + nonlinFreeSurf=3, + select_rStar=1, +#-I/O settings + readBinaryPrec=32, + & + +# Elliptic solver parameters + &PARM02 + useNSACGSolver=.FALSE., + cg2dMaxIters=200, +#cg2dTargetResidual=1.E-17, + cg2dTargetResWunit=1.E-24, + & + +# Time stepping parameters + &PARM03 +# startTime = 49766400000., + startTime = 0., +# endTime = 49767264000., + endTime = 345600., + deltaTClock = 86400., + deltaTFreeSurf = 86400., + deltaTMom = 2400., + tauCD = 321428., + cAdjFreq = -1., + abEps = 0.1, + pChkptFreq = 86400000., + chkptFreq = 86400000., + dumpFreq = 86400., + monitorFreq = 43200., + adjMonitorFreq = 43200., + monitorSelect = 4, +# + tauThetaClimRelax = 2592000., + tauSaltClimRelax = 2592000., +#tauTr1ClimRelax = 31104000., <= moved to data.ptracers + & + +# Gridding parameters + &PARM04 + usingSphericalPolarGrid=.TRUE., + delR= 50., 50., 55., 60., + 65., 70., 80., 95., + 120., 155., 200., 260., + 320., 400., 480., 570., + 655., 725., 775., 815., + ygOrigin=-80., + delY=40*4., + delX=90*4., + & + +# Input datasets + &PARM05 + hydrogThetaFile='theta.bin', + hydrogSaltFile='salt.bin', + bathyFile='topog.bin', + zonalWindFile='windx.bin', + meridWindFile='windy.bin', + thetaClimFile='SST.bin' + saltClimFile='SSS.bin' + & diff --git a/verification/tutorial_tracer_adjsens/input_tap/prepare_run b/verification/tutorial_tracer_adjsens/input_tap/prepare_run new file mode 100755 index 0000000000..ad949eac30 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/input_tap/prepare_run @@ -0,0 +1,77 @@ +#! /usr/bin/env bash + +#- in order to save disc space, take *.bin files +#- from this dir: +fromDir="../../exp2/input" + +fileList=`( cd $fromDir ; echo *.bin )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- take file 'ones_64b.bin' +#- from this dir: +fromDir="../../isomip/input_ad" + +fileList='ones_64b.bin' + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi + +#- And to simplify maintenance, take parameter files +#- from this dir: +fromDir="../input_ad" + +fileList=`( cd $fromDir ; echo data* eedata )` + +#echo 'fileList=' $fileList + +#- and do a symbolic link in the current directory +# (if the file does not already exist) +if test -d $fromDir ; then + lnkList='files:' + for xx in $fileList + do + if test -r ${fromDir}/$xx ; then + if test ! -r $xx ; then + lnkList=${lnkList}" "$xx + ln -sf ${fromDir}/$xx . + fi + fi + done + echo ' link' $lnkList "from dir:" $fromDir +else + echo " Error:" $fromDir "not a directory" +fi diff --git a/verification/tutorial_tracer_adjsens/results/output_tap_adj.txt b/verification/tutorial_tracer_adjsens/results/output_tap_adj.txt new file mode 100644 index 0000000000..7adb9284e2 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/results/output_tap_adj.txt @@ -0,0 +1,3572 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 06:02:25 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 20 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 16.0 , 15.2 , 14.5 , 13.9 , 13.3 , +(PID.TID 0000.0001) > 12.4 , 11.3 , 9.9 , 8.4 , 6.7 , +(PID.TID 0000.0001) > 5.2 , 3.8 , 2.9 , 2.3 , 1.8 , +(PID.TID 0000.0001) > 1.5 , 1.1 , 0.8 , 0.66, 0.63, +(PID.TID 0000.0001) > sRef= 34.65, 34.75, 34.82, 34.87, 34.90, +(PID.TID 0000.0001) > 34.90, 34.86, 34.78, 34.69, 34.60, +(PID.TID 0000.0001) > 34.58, 34.62, 34.68, 34.72, 34.73, +(PID.TID 0000.0001) > 34.74, 34.73, 34.73, 34.72, 34.72, +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > diffKhT=1.E3, +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=1.E3, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta =7.4E-4, +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) >#-nonlinear free surface +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > nonlinFreeSurf=3, +(PID.TID 0000.0001) > select_rStar=1, +(PID.TID 0000.0001) >#-I/O settings +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > useNSACGSolver=.FALSE., +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-17, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-24, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) ># startTime = 49766400000., +(PID.TID 0000.0001) > startTime = 0., +(PID.TID 0000.0001) ># endTime = 49767264000., +(PID.TID 0000.0001) > endTime = 345600., +(PID.TID 0000.0001) > deltaTClock = 86400., +(PID.TID 0000.0001) > deltaTFreeSurf = 86400., +(PID.TID 0000.0001) > deltaTMom = 2400., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > cAdjFreq = -1., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 86400000., +(PID.TID 0000.0001) > chkptFreq = 86400000., +(PID.TID 0000.0001) > dumpFreq = 86400., +(PID.TID 0000.0001) > monitorFreq = 43200., +(PID.TID 0000.0001) > adjMonitorFreq = 43200., +(PID.TID 0000.0001) > monitorSelect = 4, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > tauThetaClimRelax = 2592000., +(PID.TID 0000.0001) > tauSaltClimRelax = 2592000., +(PID.TID 0000.0001) >#tauTr1ClimRelax = 31104000., <= moved to data.ptracers +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 50., 55., 60., +(PID.TID 0000.0001) > 65., 70., 80., 95., +(PID.TID 0000.0001) > 120., 155., 200., 260., +(PID.TID 0000.0001) > 320., 400., 480., 570., +(PID.TID 0000.0001) > 655., 725., 775., 815., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > delY=40*4., +(PID.TID 0000.0001) > delX=90*4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > hydrogThetaFile='theta.bin', +(PID.TID 0000.0001) > hydrogSaltFile='salt.bin', +(PID.TID 0000.0001) > bathyFile='topog.bin', +(PID.TID 0000.0001) > zonalWindFile='windx.bin', +(PID.TID 0000.0001) > meridWindFile='windy.bin', +(PID.TID 0000.0001) > thetaClimFile='SST.bin' +(PID.TID 0000.0001) > saltClimFile='SSS.bin' +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > usePtracers = .TRUE., +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useKPP = .FALSE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/kpp compiled but not used ( useKPP = F ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .TRUE., +(PID.TID 0000.0001) > GM_isopycK = 1.1D+3, +(PID.TID 0000.0001) > GM_background_K = 0.9D+3, +(PID.TID 0000.0001) ># GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># This set-up makes is supposed to immitate salt. That is, PTRACER(:,:,:,1) +(PID.TID 0000.0001) ># should look exactly like S(:,:,:). +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=1, +(PID.TID 0000.0001) > PTRACERS_advScheme=2, +(PID.TID 0000.0001) > PTRACERS_diffKh=1.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile=' ', +(PID.TID 0000.0001) > PTRACERS_ref=1., 19*0., +(PID.TID 0000.0001) > tauTr1ClimRelax= 31104000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(1)='xx_ptr1', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) >### nbeg = 1, +(PID.TID 0000.0001) > iGloPos = 15, +(PID.TID 0000.0001) > jGloPos = 5, +(PID.TID 0000.0001) > kGloPos = 4, +(PID.TID 0000.0001) > iGloTile = 1, +(PID.TID 0000.0001) > jgloTile = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># to test xx_tr1 set 17 +(PID.TID 0000.0001) >### grdchkvarindex = 17, +(PID.TID 0000.0001) ># to test xx_genarr3d set 201 +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5800000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.0000000000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5600000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7800000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON DXC_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXC_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXC_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXC_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXF_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXF_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXF_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXF_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXG_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXG_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXG_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON DXV_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXV_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXV_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXV_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON YC_max = 7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = -7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON DYC_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYF_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYU_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON RA_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RA_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RA_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RA_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RAW_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RAW_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RAW_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAS_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAS_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAS_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAZ_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAZ_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 37994 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 616 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 586 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 557 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 10880 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 21760 +(PID.TID 0000.0001) ctrl-wet 8: atmos 21760 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 20 37994 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2158 2004 2052 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2155 2003 2049 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2154 2002 2048 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2151 2000 2047 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2148 1997 2044 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2143 1993 2040 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2143 1993 2040 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2141 1993 2038 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2139 1991 2036 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 2134 1986 2030 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 2126 1977 2022 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 2108 1961 2003 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 2101 1954 1995 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2086 1938 1981 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 2054 1903 1946 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 1998 1841 1879 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 1844 1650 1702 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 1180 951 996 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 754 556 602 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 277 168 186 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 37994 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 18000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 010880 009660 010196 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 012622 011628 012169 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 004933 004598 004381 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 009559 008975 008990 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4265546244797E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4265546244797E-04 +(PID.TID 0000.0001) %MON fCori_mean = 4.7801269115805E-19 +(PID.TID 0000.0001) %MON fCori_sd = 9.6599226301546E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4151032568025E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4362679550910E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -3.5906698877273E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 9.6548915696246E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4575362704741E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.0322354601388E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.0288600773633E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.6784304327266E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 8.8319877372200804E-05 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 1.227458930695841E-17 (Area=3.3354908559E+14) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 1.520000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.450000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.390000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 1.330000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 1.240000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.130000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 9.900000000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 8.400000000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 6.700000000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 5.200000000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 3.800000000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.900000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.300000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 1.800000000000000E+00, /* K = 15 */ +(PID.TID 0000.0001) 1.500000000000000E+00, /* K = 16 */ +(PID.TID 0000.0001) 1.100000000000000E+00, /* K = 17 */ +(PID.TID 0000.0001) 8.000000000000000E-01, /* K = 18 */ +(PID.TID 0000.0001) 6.600000000000000E-01, /* K = 19 */ +(PID.TID 0000.0001) 6.300000000000000E-01 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 3.487000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2 @ 3.490000000000000E+01, /* K = 5: 6 */ +(PID.TID 0000.0001) 3.486000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 3.478000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 3.469000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 3.460000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.458000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.462000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 3.468000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.472000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.473000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.474000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 2 @ 3.473000000000000E+01, /* K = 17: 18 */ +(PID.TID 0000.0001) 2 @ 3.472000000000000E+01 /* K = 19: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02, /* K = 1 */ +(PID.TID 0000.0001) 1.000033953200000E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.000225714840000E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.000382683440000E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.000524855000000E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.000704819000000E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.000895180920000E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.001115936760000E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.001349290080000E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.001622635400000E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.001907778360000E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.002217316440000E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.002441671560000E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.002591241640000E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.002698620160000E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.002766006680000E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.002838592160000E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.002898580160000E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.002919176040000E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.002925174840000E+03 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 4.591080000000024E-05, /* K = 2 */ +(PID.TID 0000.0001) 3.583920000000001E-05, /* K = 3 */ +(PID.TID 0000.0001) 2.678556521739093E-05, /* K = 4 */ +(PID.TID 0000.0001) 2.231971200000012E-05, /* K = 5 */ +(PID.TID 0000.0001) 2.616000000000001E-05, /* K = 6 */ +(PID.TID 0000.0001) 2.490432000000007E-05, /* K = 7 */ +(PID.TID 0000.0001) 2.475483428571444E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.129910697674396E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.950584727272747E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.576232112676044E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.320511304347824E-05, /* K = 12 */ +(PID.TID 0000.0001) 7.590910344827643E-06, /* K = 13 */ +(PID.TID 0000.0001) 4.076599999999984E-06, /* K = 14 */ +(PID.TID 0000.0001) 2.394531818181785E-06, /* K = 15 */ +(PID.TID 0000.0001) 1.259417142857214E-06, /* K = 16 */ +(PID.TID 0000.0001) 1.162785306122388E-06, /* K = 17 */ +(PID.TID 0000.0001) 8.530434782608699E-07, /* K = 18 */ +(PID.TID 0000.0001) 2.694480000000193E-07, /* K = 19 */ +(PID.TID 0000.0001) 7.403773584905668E-08 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 1.000000000000000E-03 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 0.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 3.000000000000000E-05 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 7.400000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 9.999999999999999E-25 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 2.400000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 20 @ 8.640000000000000E+04 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.925333200592357E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 3.456000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000200040008002E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 5.250000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 5.750000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 6.250000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 6.750000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 8.750000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.075000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 1.375000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 1.775000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.300000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.600000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 5.250000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 6.125000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 6.900000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 7.500000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 7.950000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) 4.075000000000000E+02 /* K = 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+01, /* K = 1: 2 */ +(PID.TID 0000.0001) 5.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 6.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 8.000000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 9.500000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 1.550000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 2.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.600000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 3.200000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 4.000000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.800000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 5.700000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 6.550000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 7.250000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 7.750000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 8.150000000000000E+02 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.275000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.850000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -2.475000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -3.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -3.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -4.775000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -5.850000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -7.225000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -9.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.130000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -1.780000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -2.220000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -2.745000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -3.357500000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -4.047500000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -4.797500000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -5.592500000000000E+03 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.550000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -2.150000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -2.800000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -3.500000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -4.300000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -5.250000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -6.450000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -8.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.000000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -1.260000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -1.580000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -1.980000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -2.460000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -3.030000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -3.685000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -4.410000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -5.185000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -6.000000000000000E+03 /* K = 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.335490855875281E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.100000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 20 @ 8.640000000000000E+04 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 20 @ 3.000000000000000E-05 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 1.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 19 @ 0.000000000000000E+00 /* K = 2: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9329580307007E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8496928215027E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.4434668483202E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2513626348502E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1755281830340E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7439460754395E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1028352737427E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718545511620E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8229416934120E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.2249504761060E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.6004334390163E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0329221189022E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 4.1280488583042E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 5.5800359441598E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 3.2370368543277E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.4633164107800E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.0490099489689E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.4474490094807E+18 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = -1.8620194793381E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3819348238724E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.1817369821813E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0010250762040E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 1.1521963240253E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0672023052516E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.78780403600002E+01 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 193 +(PID.TID 0000.0001) cg2d_last_res = 1.05064798940203E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 8.6400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 1.6743052600424E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -1.3455863869852E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 9.3689358928851E-18 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 4.3408438286638E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.4693072840009E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.6568006879409E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -9.9209029407204E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.0862912534280E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.1095830800429E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 3.2885831448895E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0871363656057E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.3005606017108E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.2707164556280E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.9820272816924E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 4.0045244193533E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 4.4119853376755E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -2.9804148516926E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.5396253396688E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 1.7868311507756E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 1.9816405776776E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9327980755348E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8513879261731E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.4434668483202E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2510831025359E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1683993482881E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7438512393600E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1031060186620E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718545511620E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8219507328089E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.2344897487274E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.6004334390163E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0329221189022E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 4.1280488583042E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 5.5800359441598E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 3.2370368543277E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.4633164107800E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.0490099489689E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.6977069407749E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1031754027236E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.8841667303896E-02 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4389055671184E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.5267806642809E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 1.5537798739418E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 1.7367998966642E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 2.1298244853148E-04 +(PID.TID 0000.0001) %MON ke_max = 4.9157938604515E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6900689799910E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.4474490094807E+18 +(PID.TID 0000.0001) %MON vort_r_min = -3.0400601742071E-07 +(PID.TID 0000.0001) %MON vort_r_max = 2.9340104619709E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.8620194793382E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3819142035417E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.1817369821813E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0010207052842E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 6.0600014278863E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 2.1441792214511E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 1.0042254150255E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = 4.2092357168592E-79 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 1.1521963240253E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0643562464203E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 2.7841954026231E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 +(PID.TID 0000.0001) cg2d_init_res = 2.44467587231599E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 9.41383025913911E-18 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 1.7280000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.1722938479298E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.1180052058262E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -2.6233020500078E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 6.7566276976025E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.5963390736788E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5349909649340E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.9061986513844E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.6400805887536E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.7854632395256E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 6.1858910099046E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7704435114990E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.5435925132025E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.4264608498679E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.8549455675063E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 7.5495195703149E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 8.8364156103437E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -5.9524948848794E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -6.5561960226663E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 3.4064111608528E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 3.7485366218700E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9326233278365E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8491828881337E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.4433949924863E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2508207215487E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.1215119746026E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7437632997837E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1033203489564E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718542823795E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8211408444131E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.2272810197565E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.6004334390163E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0329221189022E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 4.1280488583042E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 5.5800359441598E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 3.2370368543277E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.4633164107800E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.0490099489689E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4396042957797E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.5477453623859E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 1.4418143360672E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9828840721427E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.9417923099586E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 3.1131438583132E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 3.4786496603512E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 5.1600685488463E-04 +(PID.TID 0000.0001) %MON ke_max = 1.8344723279920E-02 +(PID.TID 0000.0001) %MON ke_mean = 5.2871985504159E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.4474490094807E+18 +(PID.TID 0000.0001) %MON vort_r_min = -5.9016503193913E-07 +(PID.TID 0000.0001) %MON vort_r_max = 5.6830858846864E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.8620194793382E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3819041903640E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.1817354111469E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0010698930140E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 4.1467193481605E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 1.8391512492940E-07 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 1.0135028593422E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = -2.3477632371764E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 1.1521869985534E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0617001604937E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 4.4700606541972E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.42292070136256E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 186 +(PID.TID 0000.0001) cg2d_last_res = 1.13966875122246E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 2.5920000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4140754918102E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3612137980944E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -4.2722347671556E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.6426133342662E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.3632240946692E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.2141094835870E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7588418338258E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.6665508561476E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.3985173092517E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 8.6142553628778E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.6054430028602E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.7485964306326E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 1.1207885178595E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2354962037809E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.0292211707282E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.3121798223018E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -8.7994735809658E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -3.1338158955948E-08 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 4.8185884395796E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 5.1970403022149E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9324393327545E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8433200099543E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.4434166596962E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2506397887185E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0622124453523E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7436798088433E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1035935877654E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718542808429E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8204831087947E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.2068695865780E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.6004334390163E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0329221189022E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 4.1280488583042E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 5.5800359441598E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 3.2370368543277E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.4633164107800E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.0490099489689E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9849338443010E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.9923946694845E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 2.8742625017039E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.7134445371948E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.2829216621317E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 4.5837464677179E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 5.1296969109274E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 6.6020569779455E-04 +(PID.TID 0000.0001) %MON ke_max = 3.9075413857354E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.0304434708380E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.4474490094807E+18 +(PID.TID 0000.0001) %MON vort_r_min = -8.6228013318125E-07 +(PID.TID 0000.0001) %MON vort_r_max = 8.3600040616676E-07 +(PID.TID 0000.0001) %MON vort_a_mean = -1.8620194793382E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3819044706365E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.1817357372569E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0011062181928E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 1.7664004093575E-06 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 7.4273904255599E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 1.0365841835399E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = -6.3110104723254E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 1.1521451706624E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0591631665363E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 6.1213823969941E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) cg2d_init_res = 3.90975289118563E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = -1 188 +(PID.TID 0000.0001) cg2d_last_res = 1.19835178092004E-17 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 3.4560000000000E+05 +(PID.TID 0000.0001) %MON dynstat_eta_max = 2.4965434427476E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = -2.3353439381795E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = -1.8737871785770E-16 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 7.7757200900409E-01 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 3.1485297038807E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7975586143468E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.5403346233508E-01 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.4166161294004E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.1136898417508E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 1.0611319362049E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.4070558210048E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.8895811484273E-01 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 6.4330455157150E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.5264434258408E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 1.2184250405457E-04 +(PID.TID 0000.0001) %MON dynstat_wvel_max = 1.7199202381894E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -1.1447923391891E-03 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = -9.0867344519065E-09 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 6.0062696933672E-05 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 6.3099042930147E-07 +(PID.TID 0000.0001) %MON dynstat_theta_max = 2.9322579385039E+01 +(PID.TID 0000.0001) %MON dynstat_theta_min = -1.8143597695966E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 3.4434413012240E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 4.2504854943091E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 5.0063053064132E-03 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.7436005928498E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.1038905895788E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.4718543405790E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.8199011833275E-01 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 8.1826785630806E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.6004334390163E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = -1.0329221189022E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 4.1280488583042E-03 +(PID.TID 0000.0001) %MON forcing_fu_sd = 5.5800359441598E-02 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 3.2370368543277E-04 +(PID.TID 0000.0001) %MON forcing_fv_max = 8.4633164107800E-02 +(PID.TID 0000.0001) %MON forcing_fv_min = -7.0490099489689E-02 +(PID.TID 0000.0001) %MON forcing_fv_mean = 2.8803575798275E-03 +(PID.TID 0000.0001) %MON forcing_fv_sd = 2.2193297771215E-02 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 2.1170835219132E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.7161954703141E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.3449834843829E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 4.2232817386396E-01 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.5910483431361E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.4996719768586E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 5.9435516508115E-01 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 6.6665346136486E-01 +(PID.TID 0000.0001) %MON pe_b_mean = 6.8340276198649E-04 +(PID.TID 0000.0001) %MON ke_max = 6.5658211688714E-02 +(PID.TID 0000.0001) %MON ke_mean = 1.6308888218461E-04 +(PID.TID 0000.0001) %MON ke_vol = 1.4474490094807E+18 +(PID.TID 0000.0001) %MON vort_r_min = -1.1142780134389E-06 +(PID.TID 0000.0001) %MON vort_r_max = 1.0945056568835E-06 +(PID.TID 0000.0001) %MON vort_a_mean = -1.8620194793382E-05 +(PID.TID 0000.0001) %MON vort_a_sd = 7.3819102578469E-05 +(PID.TID 0000.0001) %MON vort_p_mean = -2.1817369223887E-05 +(PID.TID 0000.0001) %MON vort_p_sd = 1.0011199422819E-04 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 3.6636405801357E-07 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = -1.3479900614701E-08 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON trcstat_ptracer01_max = 1.0640605525151E+00 +(PID.TID 0000.0001) %MON trcstat_ptracer01_min = -1.1381665492144E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_mean = 1.1520685994679E-02 +(PID.TID 0000.0001) %MON trcstat_ptracer01_sd = 1.0567383186993E-01 +(PID.TID 0000.0001) %MON trcstat_ptracer01_del2 = 7.7833603450914E-05 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR ptracer field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %CHECKPOINT 4 ckptA +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 4.03588273911737E-12 1.47881353008628E+03 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = -6.82121026329696E-13 7.98899709494991E+03 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 4.95674612466246E-11 2.20410845001181E+04 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) grdchk reference fc: fcref = 1.84102723380947E+14 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc adj grad fd grad 1 - fd/adj + grad-res exact position met: + grad-res 0 1881 15 5 4 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1881 37994 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 616 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1232 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1848 1 + ph-grd -->hit<-- 15 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 15 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471742246D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377715D+15 +(PID.TID 0000.0001) global fc = 0.184102723377715D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377715E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471806894D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384179D+15 +(PID.TID 0000.0001) global fc = 0.184102723384179D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384179E+14 +grad-res ------------------------------- + grad-res 0 1 15 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 1 1 1881 0 1 1 1 -3.23242721513E+07 -3.23242187500E+07 1.65204955460E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.23242721512994E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.23242187500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1882 37994 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1881 2 + ph-grd -->hit<-- 16 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 16 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471753096D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723378800D+15 +(PID.TID 0000.0001) global fc = 0.184102723378800D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723378800E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471796044D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723383094D+15 +(PID.TID 0000.0001) global fc = 0.184102723383094D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723383094E+14 +grad-res ------------------------------- + grad-res 0 2 16 5 4 1 1 1 1.84102723381E+14 1.84102723379E+14 1.84102723383E+14 + grad-res 0 2 2 1882 0 1 1 1 -2.14737521330E+07 -2.14737500000E+07 9.93301442209E-08 +(PID.TID 0000.0001) ADM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) ADM adjoint_gradient = -2.14737521329909E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -2.14737500000000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1883 37994 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1882 3 + ph-grd -->hit<-- 17 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 17 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471730206D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723376511D+15 +(PID.TID 0000.0001) global fc = 0.184102723376511D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723376511E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471818934D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723385383D+15 +(PID.TID 0000.0001) global fc = 0.184102723385383D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723385383E+14 +grad-res ------------------------------- + grad-res 0 3 17 5 4 1 1 1 1.84102723381E+14 1.84102723377E+14 1.84102723385E+14 + grad-res 0 3 3 1883 0 1 1 1 -4.43643318051E+07 -4.43642187500E+07 2.54833237046E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) ADM adjoint_gradient = -4.43643318050628E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -4.43642187500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1884 37994 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1883 4 + ph-grd -->hit<-- 18 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 18 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471743619D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377852D+15 +(PID.TID 0000.0001) global fc = 0.184102723377852D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377852E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471805521D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384042D+15 +(PID.TID 0000.0001) global fc = 0.184102723384042D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384042E+14 +grad-res ------------------------------- + grad-res 0 4 18 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 4 4 1884 0 1 1 1 -3.09510269421E+07 -3.09509375000E+07 2.88979460350E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.09510269421106E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.09509375000000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1885 37994 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1884 5 + ph-grd -->hit<-- 19 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 19 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471741881D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377678D+15 +(PID.TID 0000.0001) global fc = 0.184102723377678D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377678E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471807259D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384216D+15 +(PID.TID 0000.0001) global fc = 0.184102723384216D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384216E+14 +grad-res ------------------------------- + grad-res 0 5 19 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 5 5 1885 0 1 1 1 -3.26888456348E+07 -3.26889062500E+07 -1.85430770894E-06 +(PID.TID 0000.0001) ADM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) ADM adjoint_gradient = -3.26888456348215E+07 +(PID.TID 0000.0001) ADM finite-diff_grad = -3.26889062500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) ADJ GRAD(FC) 1-FDGRD/ADGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 15 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 1.8410272338095E+14 1.8410272337771E+14 1.8410272338418E+14 +(PID.TID 0000.0001) grdchk output (g): 1 -3.2324218750000E+07 -3.2324272151299E+07 1.6520495546013E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 16 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 1.8410272338095E+14 1.8410272337880E+14 1.8410272338309E+14 +(PID.TID 0000.0001) grdchk output (g): 2 -2.1473750000000E+07 -2.1473752132991E+07 9.9330144220922E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 17 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 1.8410272338095E+14 1.8410272337651E+14 1.8410272338538E+14 +(PID.TID 0000.0001) grdchk output (g): 3 -4.4364218750000E+07 -4.4364331805063E+07 2.5483323704556E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 18 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 1.8410272338095E+14 1.8410272337785E+14 1.8410272338404E+14 +(PID.TID 0000.0001) grdchk output (g): 4 -3.0950937500000E+07 -3.0951026942111E+07 2.8897946035000E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 19 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 5 1.8410272338095E+14 1.8410272337768E+14 1.8410272338422E+14 +(PID.TID 0000.0001) grdchk output (g): 5 -3.2688906250000E+07 -3.2688845634822E+07 -1.8543077089372E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.0504878448098E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 27.047916263341904 +(PID.TID 0000.0001) System time: 2.0048750347341411 +(PID.TID 0000.0001) Wall clock time: 29.144879102706909 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.1464000716805458E-002 +(PID.TID 0000.0001) System time: 1.1852999625261873E-002 +(PID.TID 0000.0001) Wall clock time: 6.3724994659423828E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 17.005991965532303 +(PID.TID 0000.0001) System time: 1.9461832940578461E-002 +(PID.TID 0000.0001) Wall clock time: 17.069626808166504 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.32979211211204529 +(PID.TID 0000.0001) System time: 4.1323900222778320E-004 +(PID.TID 0000.0001) Wall clock time: 0.33143687248229980 +(PID.TID 0000.0001) No. starts: 96 +(PID.TID 0000.0001) No. stops: 96 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.1838667392730713E-004 +(PID.TID 0000.0001) System time: 1.3984739780426025E-005 +(PID.TID 0000.0001) Wall clock time: 8.4137916564941406E-004 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.0297040939331055E-004 +(PID.TID 0000.0001) System time: 1.0088086128234863E-005 +(PID.TID 0000.0001) Wall clock time: 2.9826164245605469E-004 +(PID.TID 0000.0001) No. starts: 52 +(PID.TID 0000.0001) No. stops: 52 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.6506185531616211E-004 +(PID.TID 0000.0001) System time: 4.1425228118896484E-006 +(PID.TID 0000.0001) Wall clock time: 2.6845932006835938E-004 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.5336900949478149E-002 +(PID.TID 0000.0001) System time: 2.3841857910156250E-005 +(PID.TID 0000.0001) Wall clock time: 1.5416622161865234E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7045112997293472 +(PID.TID 0000.0001) System time: 9.5810741186141968E-004 +(PID.TID 0000.0001) Wall clock time: 2.7128231525421143 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.4879390299320221 +(PID.TID 0000.0001) System time: 1.0461062192916870E-003 +(PID.TID 0000.0001) Wall clock time: 6.5058043003082275 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.9816790521144867 +(PID.TID 0000.0001) System time: 8.4996223449707031E-005 +(PID.TID 0000.0001) Wall clock time: 3.9919025897979736 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 8.5112333297729492E-002 +(PID.TID 0000.0001) System time: 1.3113021850585938E-005 +(PID.TID 0000.0001) Wall clock time: 8.5364580154418945E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.3041900098323822 +(PID.TID 0000.0001) System time: 1.0132789611816406E-005 +(PID.TID 0000.0001) Wall clock time: 2.3097071647644043 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.13604497909545898 +(PID.TID 0000.0001) System time: 1.6935169696807861E-005 +(PID.TID 0000.0001) Wall clock time: 0.13638949394226074 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.24726682901382446 +(PID.TID 0000.0001) System time: 5.1259994506835938E-006 +(PID.TID 0000.0001) Wall clock time: 0.24792790412902832 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.5462448596954346E-002 +(PID.TID 0000.0001) System time: 9.0226531028747559E-006 +(PID.TID 0000.0001) Wall clock time: 2.5564908981323242E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.38325715065002441 +(PID.TID 0000.0001) System time: 1.0967254638671875E-005 +(PID.TID 0000.0001) Wall clock time: 0.38421702384948730 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.12249928712844849 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.12300944328308105 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 9.1468393802642822E-002 +(PID.TID 0000.0001) System time: 9.5367431640625000E-007 +(PID.TID 0000.0001) Wall clock time: 9.1725111007690430E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7444491386413574E-003 +(PID.TID 0000.0001) System time: 6.0796737670898438E-006 +(PID.TID 0000.0001) Wall clock time: 1.7516613006591797E-003 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 5.7971894741058350E-002 +(PID.TID 0000.0001) System time: 1.0771967470645905E-002 +(PID.TID 0000.0001) Wall clock time: 6.9117069244384766E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.8133392333984375E-004 +(PID.TID 0000.0001) System time: 1.9967555999755859E-006 +(PID.TID 0000.0001) Wall clock time: 2.8395652770996094E-004 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.3475050926208496E-002 +(PID.TID 0000.0001) System time: 5.9859901666641235E-003 +(PID.TID 0000.0001) Wall clock time: 2.9594659805297852E-002 +(PID.TID 0000.0001) No. starts: 48 +(PID.TID 0000.0001) No. stops: 48 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 16.086175918579102 +(PID.TID 0000.0001) System time: 1.5964984893798828E-002 +(PID.TID 0000.0001) Wall clock time: 16.144426822662354 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.58577442169189453 +(PID.TID 0000.0001) System time: 8.8802576065063477E-003 +(PID.TID 0000.0001) Wall clock time: 0.59696531295776367 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.422034263610840 +(PID.TID 0000.0001) System time: 4.8375129699707031E-004 +(PID.TID 0000.0001) Wall clock time: 15.462122678756714 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 15.421163558959961 +(PID.TID 0000.0001) System time: 4.7659873962402344E-004 +(PID.TID 0000.0001) Wall clock time: 15.461258649826050 +(PID.TID 0000.0001) No. starts: 44 +(PID.TID 0000.0001) No. stops: 44 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 4.8828125000000000E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.9495697021484375E-004 +(PID.TID 0000.0001) No. starts: 11 +(PID.TID 0000.0001) No. stops: 11 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 69264 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 69264 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/tutorial_tracer_adjsens/results/output_tap_tlm.txt b/verification/tutorial_tracer_adjsens/results/output_tap_tlm.txt new file mode 100644 index 0000000000..5aecb4fa67 --- /dev/null +++ b/verification/tutorial_tracer_adjsens/results/output_tap_tlm.txt @@ -0,0 +1,3175 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68o +(PID.TID 0000.0001) // Build user: jmc +(PID.TID 0000.0001) // Build host: jaures.mit.edu +(PID.TID 0000.0001) // Build date: Thu May 18 03:18:48 PM EDT 2023 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > nTx=1, +(PID.TID 0000.0001) > nTy=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 2 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 2 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 45 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 20 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 3 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 3 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 20 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 90 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 40 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 4 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 2, 1: 2) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000002 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // NORTH: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // Tile number: 000003 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000004, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // Tile number: 000004 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // EAST: Tile = 000003, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000002 +(PID.TID 0000.0001) // SOUTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000002, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000002, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef= 16.0 , 15.2 , 14.5 , 13.9 , 13.3 , +(PID.TID 0000.0001) > 12.4 , 11.3 , 9.9 , 8.4 , 6.7 , +(PID.TID 0000.0001) > 5.2 , 3.8 , 2.9 , 2.3 , 1.8 , +(PID.TID 0000.0001) > 1.5 , 1.1 , 0.8 , 0.66, 0.63, +(PID.TID 0000.0001) > sRef= 34.65, 34.75, 34.82, 34.87, 34.90, +(PID.TID 0000.0001) > 34.90, 34.86, 34.78, 34.69, 34.60, +(PID.TID 0000.0001) > 34.58, 34.62, 34.68, 34.72, 34.73, +(PID.TID 0000.0001) > 34.74, 34.73, 34.73, 34.72, 34.72, +(PID.TID 0000.0001) > viscAr=1.E-3, +(PID.TID 0000.0001) > viscAh=5.E5, +(PID.TID 0000.0001) > no_slip_sides=.FALSE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > diffKhT=1.E3, +(PID.TID 0000.0001) >#- diffKrT unused when compiled with ALLOW_3D_DIFFKR +(PID.TID 0000.0001) >#diffKrT=3.E-5, +(PID.TID 0000.0001) > diffKhS=1.E3, +(PID.TID 0000.0001) > diffKrS=3.E-5, +(PID.TID 0000.0001) > tAlpha=2.E-4, +(PID.TID 0000.0001) > sBeta =7.4E-4, +(PID.TID 0000.0001) > eosType='LINEAR', +(PID.TID 0000.0001) > gravity=9.81, +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) > exactConserv=.TRUE., +(PID.TID 0000.0001) > useCDscheme=.TRUE., +(PID.TID 0000.0001) >#-nonlinear free surface +(PID.TID 0000.0001) > hFacInf=0.2, +(PID.TID 0000.0001) > hFacSup=2.0, +(PID.TID 0000.0001) > nonlinFreeSurf=3, +(PID.TID 0000.0001) > select_rStar=1, +(PID.TID 0000.0001) >#-I/O settings +(PID.TID 0000.0001) > readBinaryPrec=32, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > useNSACGSolver=.FALSE., +(PID.TID 0000.0001) > cg2dMaxIters=200, +(PID.TID 0000.0001) >#cg2dTargetResidual=1.E-17, +(PID.TID 0000.0001) > cg2dTargetResWunit=1.E-24, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) ># startTime = 49766400000., +(PID.TID 0000.0001) > startTime = 0., +(PID.TID 0000.0001) ># endTime = 49767264000., +(PID.TID 0000.0001) > endTime = 345600., +(PID.TID 0000.0001) > deltaTClock = 86400., +(PID.TID 0000.0001) > deltaTFreeSurf = 86400., +(PID.TID 0000.0001) > deltaTMom = 2400., +(PID.TID 0000.0001) > tauCD = 321428., +(PID.TID 0000.0001) > cAdjFreq = -1., +(PID.TID 0000.0001) > abEps = 0.1, +(PID.TID 0000.0001) > pChkptFreq = 86400000., +(PID.TID 0000.0001) > chkptFreq = 86400000., +(PID.TID 0000.0001) > dumpFreq = 86400., +(PID.TID 0000.0001) > monitorFreq = 43200., +(PID.TID 0000.0001) > adjMonitorFreq = 43200., +(PID.TID 0000.0001) > monitorSelect = 4, +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > tauThetaClimRelax = 2592000., +(PID.TID 0000.0001) > tauSaltClimRelax = 2592000., +(PID.TID 0000.0001) >#tauTr1ClimRelax = 31104000., <= moved to data.ptracers +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingSphericalPolarGrid=.TRUE., +(PID.TID 0000.0001) > delR= 50., 50., 55., 60., +(PID.TID 0000.0001) > 65., 70., 80., 95., +(PID.TID 0000.0001) > 120., 155., 200., 260., +(PID.TID 0000.0001) > 320., 400., 480., 570., +(PID.TID 0000.0001) > 655., 725., 775., 815., +(PID.TID 0000.0001) > ygOrigin=-80., +(PID.TID 0000.0001) > delY=40*4., +(PID.TID 0000.0001) > delX=90*4., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > hydrogThetaFile='theta.bin', +(PID.TID 0000.0001) > hydrogSaltFile='salt.bin', +(PID.TID 0000.0001) > bathyFile='topog.bin', +(PID.TID 0000.0001) > zonalWindFile='windx.bin', +(PID.TID 0000.0001) > meridWindFile='windy.bin', +(PID.TID 0000.0001) > thetaClimFile='SST.bin' +(PID.TID 0000.0001) > saltClimFile='SSS.bin' +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) ># ******** +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > usePtracers = .TRUE., +(PID.TID 0000.0001) > useGMRedi = .TRUE., +(PID.TID 0000.0001) > useKPP = .FALSE., +(PID.TID 0000.0001) > useGrdchk = .TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/kpp compiled but not used ( useKPP = F ) + pkg/gmredi compiled and used ( useGMRedi = T ) + pkg/autodiff compiled and used ( useAUTODIFF = T ) + pkg/grdchk compiled and used ( useGrdchk = T ) + pkg/ctrl compiled and used ( useCTRL = T ) + pkg/ptracers compiled and used ( usePTRACERS = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/cd_code compiled and used ( useCDscheme = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used + pkg/autodiff compiled and used + pkg/cost compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: opening data.gmredi +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.gmredi +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.gmredi" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># GM+Redi package parameters: +(PID.TID 0000.0001) ># GM_Small_Number :: epsilon used in computing the slope +(PID.TID 0000.0001) ># GM_slopeSqCutoff :: slope^2 cut-off value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-from MOM : +(PID.TID 0000.0001) ># GM_background_K: G & Mc.W diffusion coefficient +(PID.TID 0000.0001) ># GM_maxSlope : max slope of isopycnals +(PID.TID 0000.0001) ># GM_Scrit : transition for scaling diffusion coefficient +(PID.TID 0000.0001) ># GM_Sd : half width scaling for diffusion coefficient +(PID.TID 0000.0001) ># GM_taper_scheme: slope clipping or one of the tapering schemes +(PID.TID 0000.0001) ># GM_Kmin_horiz : horizontal diffusion minimum value +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-Option parameters (needs to "define" options in GMREDI_OPTIONS.h") +(PID.TID 0000.0001) ># GM_isopycK : isopycnal diffusion coefficient (default=GM_background_K) +(PID.TID 0000.0001) ># GM_AdvForm : turn on GM Advective form (default=Skew flux form) +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GM_PARM01 +(PID.TID 0000.0001) > GM_Small_Number = 1.D-20, +(PID.TID 0000.0001) > GM_slopeSqCutoff = 1.D+08, +(PID.TID 0000.0001) > GM_AdvForm = .TRUE., +(PID.TID 0000.0001) > GM_isopycK = 1.1D+3, +(PID.TID 0000.0001) > GM_background_K = 0.9D+3, +(PID.TID 0000.0001) ># GM_background_K = 1.D+3, +(PID.TID 0000.0001) > GM_taper_scheme = 'dm95', +(PID.TID 0000.0001) > GM_maxSlope = 1.D-2, +(PID.TID 0000.0001) > GM_Kmin_horiz = 50., +(PID.TID 0000.0001) > GM_Scrit = 4.D-3, +(PID.TID 0000.0001) > GM_Sd = 1.D-3, +(PID.TID 0000.0001) ># GM_Visbeck_alpha = 1.5D-2, +(PID.TID 0000.0001) > GM_Visbeck_alpha = 0., +(PID.TID 0000.0001) > GM_Visbeck_length = 2.D+5, +(PID.TID 0000.0001) > GM_Visbeck_depth = 1.D+3, +(PID.TID 0000.0001) > GM_Visbeck_maxval_K= 2.5D+3, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) GM_READPARMS: finished reading data.gmredi +(PID.TID 0000.0001) PTRACERS_READPARMS: opening data.ptracers +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ptracers +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ptracers" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># This set-up makes is supposed to immitate salt. That is, PTRACER(:,:,:,1) +(PID.TID 0000.0001) ># should look exactly like S(:,:,:). +(PID.TID 0000.0001) > &PTRACERS_PARM01 +(PID.TID 0000.0001) > PTRACERS_numInUse=1, +(PID.TID 0000.0001) > PTRACERS_advScheme=2, +(PID.TID 0000.0001) > PTRACERS_diffKh=1.E3, +(PID.TID 0000.0001) > PTRACERS_diffKr=3.E-5, +(PID.TID 0000.0001) > PTRACERS_initialFile=' ', +(PID.TID 0000.0001) > PTRACERS_ref=1., 19*0., +(PID.TID 0000.0001) > tauTr1ClimRelax= 31104000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PTRACERS_READPARMS: finished reading data.ptracers +(PID.TID 0000.0001) AUTODIFF_READPARMS: opening data.autodiff +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.autodiff +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.autodiff" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># pkg AUTODIFF parameters : +(PID.TID 0000.0001) ># ========================= +(PID.TID 0000.0001) ># inAdExact :: get an exact adjoint (no approximation) (def=.True.) +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > &AUTODIFF_PARM01 +(PID.TID 0000.0001) ># inAdExact = .FALSE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) AUTODIFF_READPARMS: finished reading data.autodiff +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // AUTODIFF parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) inAdExact = /* get an exact adjoint (no approximation) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useApproxAdvectionInAdMode = /* approximate AD-advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dFullAdjoint = /* use full hand written cg2d adjoint (no approximation) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useKPPinAdMode = /* use KPP in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGMRediInAdMode = /* use GMRedi in adjoint mode */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSEAICEinAdMode = /* use SEAICE in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useGGL90inAdMode = /* use GGL90 in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSALT_PLUMEinAdMode = /* use SALT_PLUME in adjoint mode */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpAdVarExch = /* control adexch before dumpinp */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mon_AdVarExch = /* control adexch before monitor */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInFw = /* viscosity factor for forward model */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscFacInAd = /* viscosity factor for adjoint */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInAd = /* sea ice factor for adjoint model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) SIregFacInFw = /* sea ice factor for forward model */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: opening data.optim +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.optim +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.optim" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) ># Off-line optimization parameters +(PID.TID 0000.0001) ># ******************************** +(PID.TID 0000.0001) > &OPTIM +(PID.TID 0000.0001) > optimcycle=0, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) OPTIM_READPARMS: finished reading data.optim +(PID.TID 0000.0001) CTRL_READPARMS: opening data.ctrl +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ctrl +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ctrl" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># ECCO controlvariables +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for ctrl_pack/unpack +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_PACKNAMES +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) ># names for CTRL_GENARR, CTRL_GENTIM +(PID.TID 0000.0001) ># ********************* +(PID.TID 0000.0001) > &CTRL_NML_GENARR +(PID.TID 0000.0001) > xx_genarr3d_weight(1) = 'ones_64b.bin', +(PID.TID 0000.0001) > xx_genarr3d_file(1)='xx_ptr1', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) CTRL_READPARMS: finished reading data.ctrl +(PID.TID 0000.0001) read-write ctrl files from current run directory +(PID.TID 0000.0001) COST_READPARMS: opening data.cost +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.cost +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.cost" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) ># ECCO cost function +(PID.TID 0000.0001) ># ****************** +(PID.TID 0000.0001) > &COST_NML +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) > mult_tracer = 1., +(PID.TID 0000.0001) > mult_test = 1., +(PID.TID 0000.0001) > mult_atl = 1., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_READPARMS: finished reading data.cost +(PID.TID 0000.0001) GRDCHK_READPARMS: opening data.grdchk +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.grdchk +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.grdchk" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) ># ECCO gradient check +(PID.TID 0000.0001) ># ******************* +(PID.TID 0000.0001) > &GRDCHK_NML +(PID.TID 0000.0001) > grdchk_eps = 1.d-4, +(PID.TID 0000.0001) >### nbeg = 1, +(PID.TID 0000.0001) > iGloPos = 15, +(PID.TID 0000.0001) > jGloPos = 5, +(PID.TID 0000.0001) > kGloPos = 4, +(PID.TID 0000.0001) > iGloTile = 1, +(PID.TID 0000.0001) > jgloTile = 1, +(PID.TID 0000.0001) > nstep = 1, +(PID.TID 0000.0001) > nend = 4, +(PID.TID 0000.0001) ># to test xx_tr1 set 17 +(PID.TID 0000.0001) >### grdchkvarindex = 17, +(PID.TID 0000.0001) ># to test xx_genarr3d set 201 +(PID.TID 0000.0001) > grdchkvarindex = 201, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GRDCHK_READPARMS: finished reading data.grdchk +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchkvarindex : 201 +(PID.TID 0000.0001) eps: 0.100E-03 +(PID.TID 0000.0001) First location: 0 +(PID.TID 0000.0001) Last location: 4 +(PID.TID 0000.0001) Increment: 1 +(PID.TID 0000.0001) grdchkWhichProc: 0 +(PID.TID 0000.0001) iLocTile = 1 , jLocTile = 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 3.5800000000000E+02 +(PID.TID 0000.0001) %MON XC_min = 2.0000000000000E+00 +(PID.TID 0000.0001) %MON XC_mean = 1.8000000000000E+02 +(PID.TID 0000.0001) %MON XC_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON XG_max = 3.5600000000000E+02 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 1.7800000000000E+02 +(PID.TID 0000.0001) %MON XG_sd = 1.0391663325314E+02 +(PID.TID 0000.0001) %MON DXC_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXC_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXC_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXC_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXF_max = 4.4443898815675E+05 +(PID.TID 0000.0001) %MON DXF_min = 9.2460385861875E+04 +(PID.TID 0000.0001) %MON DXF_mean = 3.1372497618153E+05 +(PID.TID 0000.0001) %MON DXF_sd = 1.1216447457560E+05 +(PID.TID 0000.0001) %MON DXG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXG_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXG_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXG_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON DXV_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DXV_min = 7.7223062580781E+04 +(PID.TID 0000.0001) %MON DXV_mean = 3.1353386340261E+05 +(PID.TID 0000.0001) %MON DXV_sd = 1.1256651772502E+05 +(PID.TID 0000.0001) %MON YC_max = 7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_min = -7.8000000000000E+01 +(PID.TID 0000.0001) %MON YC_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON YG_max = 7.6000000000000E+01 +(PID.TID 0000.0001) %MON YG_min = -8.0000000000000E+01 +(PID.TID 0000.0001) %MON YG_mean = -2.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 4.6173585522461E+01 +(PID.TID 0000.0001) %MON DYC_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYC_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYF_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYF_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYG_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYG_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON DYU_max = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_min = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_mean = 4.4470989340816E+05 +(PID.TID 0000.0001) %MON DYU_sd = 5.2968971431255E-09 +(PID.TID 0000.0001) %MON RA_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RA_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RA_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RA_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAW_max = 1.9760627980089E+11 +(PID.TID 0000.0001) %MON RAW_min = 4.1109698667290E+10 +(PID.TID 0000.0001) %MON RAW_mean = 1.3948826965196E+11 +(PID.TID 0000.0001) %MON RAW_sd = 4.9870522472902E+10 +(PID.TID 0000.0001) %MON RAS_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAS_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAS_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAS_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON RAZ_max = 1.9772672958215E+11 +(PID.TID 0000.0001) %MON RAZ_min = 3.4334886267983E+10 +(PID.TID 0000.0001) %MON RAZ_mean = 1.3940329716694E+11 +(PID.TID 0000.0001) %MON RAZ_sd = 5.0049278732353E+10 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ctrl-wet 1: nvarlength = 37994 +(PID.TID 0000.0001) ctrl-wet 2: surface wet C = 616 +(PID.TID 0000.0001) ctrl-wet 3: surface wet W = 586 +(PID.TID 0000.0001) ctrl-wet 4: surface wet S = 557 +(PID.TID 0000.0001) ctrl-wet 4a:surface wet V = 0 +(PID.TID 0000.0001) ctrl-wet 5: 3D wet points = 10880 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 1 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 2 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 3 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 4 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 5 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 6 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 7 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 8 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 9 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 10 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 11 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 12 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 13 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 14 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 15 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 16 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 17 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 18 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 19 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 20 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 21 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 22 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 23 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 24 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 25 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 26 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 27 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 28 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 29 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 30 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 31 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 32 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 33 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 34 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 35 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 36 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 37 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 38 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 39 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 40 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 41 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 42 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 43 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 44 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 45 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 46 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 47 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 48 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 49 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 50 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 51 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 52 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 53 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 54 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 55 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 56 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 57 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 58 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 59 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 60 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 61 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 62 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 63 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 64 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 65 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 66 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 67 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 68 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 69 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 70 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 71 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 72 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 73 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 74 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 75 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 76 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 77 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 78 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 79 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 80 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 81 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 82 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 83 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 84 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 85 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 86 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 87 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 88 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 89 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 90 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 91 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 92 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 93 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 94 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 95 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 96 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 97 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 98 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 99 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 100 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 101 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 102 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 103 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 104 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 105 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 106 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 107 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 108 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 109 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 110 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 111 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 112 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 113 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 114 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 115 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 116 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 117 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 118 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 119 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 120 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 121 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 122 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 123 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 124 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 125 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 126 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 127 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 128 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 129 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 130 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 131 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 132 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 133 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 134 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 135 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 136 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 137 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 138 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 139 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 140 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 141 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 142 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 143 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 144 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 145 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 146 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 147 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 148 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 149 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 150 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 151 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 152 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 153 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 154 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 155 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 156 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 157 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 158 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 159 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 160 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 161 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 162 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 163 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 164 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 165 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 166 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 167 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 168 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 169 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 170 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 171 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 172 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 173 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 174 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 175 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 176 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 177 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 178 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 179 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 180 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 181 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 182 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 183 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 184 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 185 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 186 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 187 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 188 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 189 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 190 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 191 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 192 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 193 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 194 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 195 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 196 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 197 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 198 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 199 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 200 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 201 1 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 202 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 203 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 204 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 205 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 206 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 207 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 208 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 209 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 210 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 211 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 212 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 213 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 214 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 215 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 216 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 217 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 218 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 219 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 220 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 221 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 222 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 223 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 224 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 225 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 226 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 227 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 228 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 229 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 230 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 231 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 232 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 233 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 234 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 235 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 236 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 237 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 238 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 239 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 240 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 241 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 242 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 243 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 244 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 245 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 246 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 247 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 248 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 249 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 250 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 251 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 252 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 253 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 254 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 255 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 256 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 257 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 258 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 259 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 260 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 261 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 262 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 263 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 264 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 265 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 266 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 267 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 268 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 269 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 270 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 271 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 272 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 273 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 274 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 275 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 276 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 277 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 278 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 279 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 280 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 281 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 282 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 283 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 284 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 285 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 286 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 287 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 288 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 289 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 290 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 291 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 292 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 293 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 294 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 295 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 296 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 297 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 298 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 299 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 300 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 301 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 302 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 303 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 304 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 305 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 306 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 307 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 308 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 309 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 310 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 311 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 312 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 313 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 314 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 315 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 316 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 317 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 318 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 319 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 320 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 321 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 322 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 323 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 324 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 325 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 326 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 327 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 328 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 329 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 330 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 331 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 332 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 333 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 334 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 335 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 336 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 337 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 338 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 339 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 340 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 341 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 342 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 343 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 344 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 345 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 346 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 347 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 348 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 349 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 350 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 351 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 352 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 353 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 354 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 355 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 356 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 357 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 358 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 359 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 360 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 361 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 362 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 363 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 364 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 365 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 366 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 367 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 368 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 369 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 370 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 371 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 372 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 373 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 374 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 375 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 376 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 377 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 378 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 379 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 380 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 381 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 382 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 383 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 384 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 385 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 386 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 387 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 388 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 389 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 390 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 391 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 392 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 393 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 394 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 395 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 396 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 397 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 398 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 399 0 +(PID.TID 0000.0001) ctrl-wet 6: no recs for i = 400 0 +(PID.TID 0000.0001) ctrl-wet 7: flux 21760 +(PID.TID 0000.0001) ctrl-wet 8: atmos 21760 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 13: global nvarlength for Nr = 20 37994 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 1 2158 2004 2052 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 2 2155 2003 2049 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 3 2154 2002 2048 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 4 2151 2000 2047 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 5 2148 1997 2044 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 6 2143 1993 2040 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 7 2143 1993 2040 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 8 2141 1993 2038 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 9 2139 1991 2036 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 10 2134 1986 2030 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 11 2126 1977 2022 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 12 2108 1961 2003 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 13 2101 1954 1995 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 14 2086 1938 1981 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 15 2054 1903 1946 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 16 1998 1841 1879 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 17 1844 1650 1702 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 18 1180 951 996 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 19 754 556 602 0 +(PID.TID 0000.0001) ctrl-wet 14: global nWet C/S/W/V k= 20 277 168 186 0 +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl-wet ------------------------------------------------- +(PID.TID 0000.0001) ctrl_init_wet: no. of control variables: 1 +(PID.TID 0000.0001) ctrl_init_wet: control vector length: 37994 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Total number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------------- +(PID.TID 0000.0001) snx*sny*nr = 18000 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Number of ocean points per tile: +(PID.TID 0000.0001) -------------------------------- +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0001 010880 009660 010196 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0001 012622 011628 012169 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0001 0002 004933 004598 004381 +(PID.TID 0000.0001) bi,bj,#(c/s/w): 0002 0002 009559 008975 008990 +(PID.TID 0000.0001) +(PID.TID 0000.0001) Settings of generic controls: +(PID.TID 0000.0001) ----------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) -> 3d control, genarr3d no. 1 is in use +(PID.TID 0000.0001) file = xx_ptr1 +(PID.TID 0000.0001) weight = ones_64b.bin +(PID.TID 0000.0001) index = 0201 +(PID.TID 0000.0001) ncvarindex = 0301 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // control vector configuration >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) %MON fCori_max = 1.4265546244797E-04 +(PID.TID 0000.0001) %MON fCori_min = -1.4265546244797E-04 +(PID.TID 0000.0001) %MON fCori_mean = 4.7801269115805E-19 +(PID.TID 0000.0001) %MON fCori_sd = 9.6599226301546E-05 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4151032568025E-04 +(PID.TID 0000.0001) %MON fCoriG_min = -1.4362679550910E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = -3.5906698877273E-06 +(PID.TID 0000.0001) %MON fCoriG_sd = 9.6548915696246E-05 +(PID.TID 0000.0001) %MON fCoriCos_max = 1.4575362704741E-04 +(PID.TID 0000.0001) %MON fCoriCos_min = 3.0322354601388E-05 +(PID.TID 0000.0001) %MON fCoriCos_mean = 1.0288600773633E-04 +(PID.TID 0000.0001) %MON fCoriCos_sd = 3.6784304327266E-05 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 8.8319877372200804E-05 +(PID.TID 0000.0001) INI_CG2D: cg2dTolerance = 1.227458930695841E-17 (Area=3.3354908559E+14) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 1.520000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 1.450000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 1.390000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 1.330000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 1.240000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.130000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 9.900000000000000E+00, /* K = 8 */ +(PID.TID 0000.0001) 8.400000000000000E+00, /* K = 9 */ +(PID.TID 0000.0001) 6.700000000000000E+00, /* K = 10 */ +(PID.TID 0000.0001) 5.200000000000000E+00, /* K = 11 */ +(PID.TID 0000.0001) 3.800000000000000E+00, /* K = 12 */ +(PID.TID 0000.0001) 2.900000000000000E+00, /* K = 13 */ +(PID.TID 0000.0001) 2.300000000000000E+00, /* K = 14 */ +(PID.TID 0000.0001) 1.800000000000000E+00, /* K = 15 */ +(PID.TID 0000.0001) 1.500000000000000E+00, /* K = 16 */ +(PID.TID 0000.0001) 1.100000000000000E+00, /* K = 17 */ +(PID.TID 0000.0001) 8.000000000000000E-01, /* K = 18 */ +(PID.TID 0000.0001) 6.600000000000000E-01, /* K = 19 */ +(PID.TID 0000.0001) 6.300000000000000E-01 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 3.465000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 3.475000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 3.482000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 3.487000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 2 @ 3.490000000000000E+01, /* K = 5: 6 */ +(PID.TID 0000.0001) 3.486000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 3.478000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 3.469000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 3.460000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 3.458000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 3.462000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 3.468000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.472000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.473000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.474000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 2 @ 3.473000000000000E+01, /* K = 17: 18 */ +(PID.TID 0000.0001) 2 @ 3.472000000000000E+01 /* K = 19: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02, /* K = 1 */ +(PID.TID 0000.0001) 1.000033953200000E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.000225714840000E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.000382683440000E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.000524855000000E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.000704819000000E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.000895180920000E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.001115936760000E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.001349290080000E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.001622635400000E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.001907778360000E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.002217316440000E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.002441671560000E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.002591241640000E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.002698620160000E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.002766006680000E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.002838592160000E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.002898580160000E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.002919176040000E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.002925174840000E+03 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 4.591080000000024E-05, /* K = 2 */ +(PID.TID 0000.0001) 3.583920000000001E-05, /* K = 3 */ +(PID.TID 0000.0001) 2.678556521739093E-05, /* K = 4 */ +(PID.TID 0000.0001) 2.231971200000012E-05, /* K = 5 */ +(PID.TID 0000.0001) 2.616000000000001E-05, /* K = 6 */ +(PID.TID 0000.0001) 2.490432000000007E-05, /* K = 7 */ +(PID.TID 0000.0001) 2.475483428571444E-05, /* K = 8 */ +(PID.TID 0000.0001) 2.129910697674396E-05, /* K = 9 */ +(PID.TID 0000.0001) 1.950584727272747E-05, /* K = 10 */ +(PID.TID 0000.0001) 1.576232112676044E-05, /* K = 11 */ +(PID.TID 0000.0001) 1.320511304347824E-05, /* K = 12 */ +(PID.TID 0000.0001) 7.590910344827643E-06, /* K = 13 */ +(PID.TID 0000.0001) 4.076599999999984E-06, /* K = 14 */ +(PID.TID 0000.0001) 2.394531818181785E-06, /* K = 15 */ +(PID.TID 0000.0001) 1.259417142857214E-06, /* K = 16 */ +(PID.TID 0000.0001) 1.162785306122388E-06, /* K = 17 */ +(PID.TID 0000.0001) 8.530434782608699E-07, /* K = 18 */ +(PID.TID 0000.0001) 2.694480000000193E-07, /* K = 19 */ +(PID.TID 0000.0001) 7.403773584905668E-08 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 5.000000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 1.000000000000000E-03 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 0.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 20 @ 3.000000000000000E-05 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'LINEAR' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ +(PID.TID 0000.0001) 2.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/(g/kg) ) */ +(PID.TID 0000.0001) 7.400000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoNil = /* Reference density for Linear EOS ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 9.999999999999999E-12 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 200 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) 9.999999999999999E-25 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 2.400000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 20 @ 8.640000000000000E+04 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauCD = /* CD coupling time-scale ( s ) */ +(PID.TID 0000.0001) 3.214280000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rCD = /* Normalised CD coupling parameter */ +(PID.TID 0000.0001) 9.925333200592357E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsAB_CD = /* AB-2 stabilizing weight for CD-scheme*/ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 3.456000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 8.640000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 4 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 2.592000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.800000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000200040008002E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) 5.250000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 5.750000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 6.250000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 6.750000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 7.500000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 8.750000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.075000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 1.375000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 1.775000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.300000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 2.900000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 3.600000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.400000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 5.250000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 6.125000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 6.900000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 7.500000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 7.950000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) 4.075000000000000E+02 /* K = 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 2 @ 5.000000000000000E+01, /* K = 1: 2 */ +(PID.TID 0000.0001) 5.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) 6.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) 6.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 8.000000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 9.500000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.200000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) 1.550000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) 2.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) 2.600000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) 3.200000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) 4.000000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) 4.800000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) 5.700000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) 6.550000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) 7.250000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) 7.750000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) 8.150000000000000E+02 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 90 @ 4.000000000000000E+00 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 40 @ 4.000000000000000E+00 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) -8.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* I = 1 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* I = 2 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* I = 3 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 8.200000000000000E+01, /* I = 21 */ +(PID.TID 0000.0001) 8.600000000000000E+01, /* I = 22 */ +(PID.TID 0000.0001) 9.000000000000000E+01, /* I = 23 */ +(PID.TID 0000.0001) 9.400000000000000E+01, /* I = 24 */ +(PID.TID 0000.0001) 9.800000000000000E+01, /* I = 25 */ +(PID.TID 0000.0001) 1.020000000000000E+02, /* I = 26 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 1.700000000000000E+02, /* I = 43 */ +(PID.TID 0000.0001) 1.740000000000000E+02, /* I = 44 */ +(PID.TID 0000.0001) 1.780000000000000E+02, /* I = 45 */ +(PID.TID 0000.0001) 1.820000000000000E+02, /* I = 46 */ +(PID.TID 0000.0001) 1.860000000000000E+02, /* I = 47 */ +(PID.TID 0000.0001) 1.900000000000000E+02, /* I = 48 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 2.580000000000000E+02, /* I = 65 */ +(PID.TID 0000.0001) 2.620000000000000E+02, /* I = 66 */ +(PID.TID 0000.0001) 2.660000000000000E+02, /* I = 67 */ +(PID.TID 0000.0001) 2.700000000000000E+02, /* I = 68 */ +(PID.TID 0000.0001) 2.740000000000000E+02, /* I = 69 */ +(PID.TID 0000.0001) 2.780000000000000E+02, /* I = 70 */ +(PID.TID 0000.0001) . . . +(PID.TID 0000.0001) 3.500000000000000E+02, /* I = 88 */ +(PID.TID 0000.0001) 3.540000000000000E+02, /* I = 89 */ +(PID.TID 0000.0001) 3.580000000000000E+02 /* I = 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) -7.800000000000000E+01, /* J = 1 */ +(PID.TID 0000.0001) -7.400000000000000E+01, /* J = 2 */ +(PID.TID 0000.0001) -7.000000000000000E+01, /* J = 3 */ +(PID.TID 0000.0001) -6.600000000000000E+01, /* J = 4 */ +(PID.TID 0000.0001) -6.200000000000000E+01, /* J = 5 */ +(PID.TID 0000.0001) -5.800000000000000E+01, /* J = 6 */ +(PID.TID 0000.0001) -5.400000000000000E+01, /* J = 7 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* J = 8 */ +(PID.TID 0000.0001) -4.600000000000000E+01, /* J = 9 */ +(PID.TID 0000.0001) -4.200000000000000E+01, /* J = 10 */ +(PID.TID 0000.0001) -3.800000000000000E+01, /* J = 11 */ +(PID.TID 0000.0001) -3.400000000000000E+01, /* J = 12 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* J = 13 */ +(PID.TID 0000.0001) -2.600000000000000E+01, /* J = 14 */ +(PID.TID 0000.0001) -2.200000000000000E+01, /* J = 15 */ +(PID.TID 0000.0001) -1.800000000000000E+01, /* J = 16 */ +(PID.TID 0000.0001) -1.400000000000000E+01, /* J = 17 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* J = 18 */ +(PID.TID 0000.0001) -6.000000000000000E+00, /* J = 19 */ +(PID.TID 0000.0001) -2.000000000000000E+00, /* J = 20 */ +(PID.TID 0000.0001) 2.000000000000000E+00, /* J = 21 */ +(PID.TID 0000.0001) 6.000000000000000E+00, /* J = 22 */ +(PID.TID 0000.0001) 1.000000000000000E+01, /* J = 23 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* J = 24 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* J = 25 */ +(PID.TID 0000.0001) 2.200000000000000E+01, /* J = 26 */ +(PID.TID 0000.0001) 2.600000000000000E+01, /* J = 27 */ +(PID.TID 0000.0001) 3.000000000000000E+01, /* J = 28 */ +(PID.TID 0000.0001) 3.400000000000000E+01, /* J = 29 */ +(PID.TID 0000.0001) 3.800000000000000E+01, /* J = 30 */ +(PID.TID 0000.0001) 4.200000000000000E+01, /* J = 31 */ +(PID.TID 0000.0001) 4.600000000000000E+01, /* J = 32 */ +(PID.TID 0000.0001) 5.000000000000000E+01, /* J = 33 */ +(PID.TID 0000.0001) 5.400000000000000E+01, /* J = 34 */ +(PID.TID 0000.0001) 5.800000000000000E+01, /* J = 35 */ +(PID.TID 0000.0001) 6.200000000000000E+01, /* J = 36 */ +(PID.TID 0000.0001) 6.600000000000000E+01, /* J = 37 */ +(PID.TID 0000.0001) 7.000000000000000E+01, /* J = 38 */ +(PID.TID 0000.0001) 7.400000000000000E+01, /* J = 39 */ +(PID.TID 0000.0001) 7.800000000000000E+01 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 1 */ +(PID.TID 0000.0001) -7.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.275000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.850000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -2.475000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -3.150000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -3.900000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -4.775000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -5.850000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -7.225000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -9.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.130000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -1.420000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -1.780000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -2.220000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -2.745000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -3.357500000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -4.047500000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -4.797500000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -5.592500000000000E+03 /* K = 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -1.000000000000000E+02, /* K = 3 */ +(PID.TID 0000.0001) -1.550000000000000E+02, /* K = 4 */ +(PID.TID 0000.0001) -2.150000000000000E+02, /* K = 5 */ +(PID.TID 0000.0001) -2.800000000000000E+02, /* K = 6 */ +(PID.TID 0000.0001) -3.500000000000000E+02, /* K = 7 */ +(PID.TID 0000.0001) -4.300000000000000E+02, /* K = 8 */ +(PID.TID 0000.0001) -5.250000000000000E+02, /* K = 9 */ +(PID.TID 0000.0001) -6.450000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -8.000000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.000000000000000E+03, /* K = 12 */ +(PID.TID 0000.0001) -1.260000000000000E+03, /* K = 13 */ +(PID.TID 0000.0001) -1.580000000000000E+03, /* K = 14 */ +(PID.TID 0000.0001) -1.980000000000000E+03, /* K = 15 */ +(PID.TID 0000.0001) -2.460000000000000E+03, /* K = 16 */ +(PID.TID 0000.0001) -3.030000000000000E+03, /* K = 17 */ +(PID.TID 0000.0001) -3.685000000000000E+03, /* K = 18 */ +(PID.TID 0000.0001) -4.410000000000000E+03, /* K = 19 */ +(PID.TID 0000.0001) -5.185000000000000E+03, /* K = 20 */ +(PID.TID 0000.0001) -6.000000000000000E+03 /* K = 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 20 @ 1.000000000000000E+00 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 21 @ 1.000000000000000E+00 /* K = 1: 21 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 9.246038586187513E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 9.246038586187513E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 4 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 8 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 4.444389881567502E+05, /* J = 20: 21 */ +(PID.TID 0000.0001) 4.422737260813012E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.379537508695838E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.315001090065870E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.229442419867491E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.123278331341585E+05, /* J = 26 */ +(PID.TID 0000.0001) 3.997026045255871E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.851300650057323E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.686812105223082E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.504361782409254E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.304838561248741E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.089214498819034E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.858540093877838E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.613939168938713E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.356603395120765E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.087786486446736E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.808798091874300E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.520997414818001E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.225786591246834E+05, /* J = 39 */ +(PID.TID 0000.0001) 9.246038586187513E+04 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 7.722306258078101E+04 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 7.722306258078101E+04, /* J = 1 */ +(PID.TID 0000.0001) 1.075850604052271E+05, /* J = 2 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 3 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 4 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 5 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 6 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 7 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 8 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 9 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 10 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 11 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 12 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 13 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 14 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 15 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 16 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 17 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 18 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 19 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 20 */ +(PID.TID 0000.0001) 4.447098934081552E+05, /* J = 21 */ +(PID.TID 0000.0001) 4.436266024588540E+05, /* J = 22 */ +(PID.TID 0000.0001) 4.403820072955634E+05, /* J = 23 */ +(PID.TID 0000.0001) 4.349919152597734E+05, /* J = 24 */ +(PID.TID 0000.0001) 4.274825863380723E+05, /* J = 25 */ +(PID.TID 0000.0001) 4.178906052261313E+05, /* J = 26 */ +(PID.TID 0000.0001) 4.062627030917454E+05, /* J = 27 */ +(PID.TID 0000.0001) 3.926555299052806E+05, /* J = 28 */ +(PID.TID 0000.0001) 3.771353784467131E+05, /* J = 29 */ +(PID.TID 0000.0001) 3.597778613338690E+05, /* J = 30 */ +(PID.TID 0000.0001) 3.406675426453503E+05, /* J = 31 */ +(PID.TID 0000.0001) 3.198975259328452E+05, /* J = 32 */ +(PID.TID 0000.0001) 2.975690006299821E+05, /* J = 33 */ +(PID.TID 0000.0001) 2.737907490675810E+05, /* J = 34 */ +(PID.TID 0000.0001) 2.486786164970726E+05, /* J = 35 */ +(PID.TID 0000.0001) 2.223549467040777E+05, /* J = 36 */ +(PID.TID 0000.0001) 1.949479859617814E+05, /* J = 37 */ +(PID.TID 0000.0001) 1.665912582279823E+05, /* J = 38 */ +(PID.TID 0000.0001) 1.374229146297914E+05, /* J = 39 */ +(PID.TID 0000.0001) 1.075850604052271E+05 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 90 @ 4.447098934081552E+05 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 40 @ 4.447098934081552E+05 /* J = 1: 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 4.110969866729047E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 4.110969866729047E+10, /* J = 1 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 3 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 4 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 5 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 6 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 19 */ +(PID.TID 0000.0001) 2 @ 1.976062798008856E+11, /* J = 20: 21 */ +(PID.TID 0000.0001) 1.966435618690094E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.947228162702492E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.918534006840893E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.880492946148330E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.833290312848623E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.777156073426415E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.712363708253573E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.639228879220326E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.558107891862220E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.469395959475426E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.373525277677229E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.270962918792468E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.162208556324093E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.047792030594103E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.282707674147523E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.042270623659998E+10, /* J = 37 */ +(PID.TID 0000.0001) 6.762652439100235E+10, /* J = 38 */ +(PID.TID 0000.0001) 5.450087291636665E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.110969866729047E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 90 @ 3.433488626798250E+10 /* I = 1: 90 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 3.433488626798250E+10, /* J = 1 */ +(PID.TID 0000.0001) 4.783442523123625E+10, /* J = 2 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 3 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 4 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 5 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 6 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 7 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 8 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 9 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 10 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 11 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 12 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 13 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 14 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 15 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 16 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 17 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 18 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 19 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 20 */ +(PID.TID 0000.0001) 1.977267295821495E+11, /* J = 21 */ +(PID.TID 0000.0001) 1.972450772065981E+11, /* J = 22 */ +(PID.TID 0000.0001) 1.958024666419019E+11, /* J = 23 */ +(PID.TID 0000.0001) 1.934059261417216E+11, /* J = 24 */ +(PID.TID 0000.0001) 1.900671314104743E+11, /* J = 25 */ +(PID.TID 0000.0001) 1.858023487204767E+11, /* J = 26 */ +(PID.TID 0000.0001) 1.806323556642996E+11, /* J = 27 */ +(PID.TID 0000.0001) 1.745823399284268E+11, /* J = 28 */ +(PID.TID 0000.0001) 1.676817765813788E+11, /* J = 29 */ +(PID.TID 0000.0001) 1.599642844741385E+11, /* J = 30 */ +(PID.TID 0000.0001) 1.514674624524945E+11, /* J = 31 */ +(PID.TID 0000.0001) 1.422327061792377E+11, /* J = 32 */ +(PID.TID 0000.0001) 1.323050064586578E+11, /* J = 33 */ +(PID.TID 0000.0001) 1.217327300458638E+11, /* J = 34 */ +(PID.TID 0000.0001) 1.105673840088173E+11, /* J = 35 */ +(PID.TID 0000.0001) 9.886336479107463E+10, /* J = 36 */ +(PID.TID 0000.0001) 8.667769319778079E+10, /* J = 37 */ +(PID.TID 0000.0001) 7.406973659603818E+10, /* J = 38 */ +(PID.TID 0000.0001) 6.110091968306414E+10, /* J = 39 */ +(PID.TID 0000.0001) 4.783442523123625E+10 /* J = 40 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 3.335490855875281E+14 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GMREDI_CHECK: #define GMREDI +(PID.TID 0000.0001) GM_AdvForm = /* if FALSE => use SkewFlux Form */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_InMomAsStress = /* if TRUE => apply as Eddy Stress */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_AdvSeparate = /* Calc Bolus & Euler Adv. separately */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_ExtraDiag = /* Tensor Extra Diag (line 1&2) non 0 */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_isopycK = /* Background Isopyc. Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 1.100000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_skewflx*K = /* Background GM_SkewFlx Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_advec*K = /* Backg. GM-Advec(=Bolus) Diffusivity [m^2/s]*/ +(PID.TID 0000.0001) 9.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Kmin_horiz = /* Minimum Horizontal Diffusivity [m^2/s] */ +(PID.TID 0000.0001) 5.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Visbeck_alpha = /* Visbeck alpha coeff. [-] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_Small_Number = /* epsilon used in slope calc */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_slopeSqCutoff = /* Slope^2 cut-off value */ +(PID.TID 0000.0001) 1.000000000000000E+08 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_taper_scheme = /* Type of Tapering/Clipping scheme */ +(PID.TID 0000.0001) 'dm95 ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxSlope = /* Maximum Slope (Tapering/Clipping) */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2dz = /* Minimum Trans.Layer Thick. (factor of dz) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_facTrL2ML = /* Max.Trans.Layer Thick. (factor of MxL Depth)*/ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_maxTransLay = /* Maximum Transition Layer Thickness [m] */ +(PID.TID 0000.0001) 5.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_UseBVP = /* if TRUE => use bvp a la Ferrari et al. (2010) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_ModeNumber = /* Vertical mode number for BVP wave speed */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_BVP_cMin = /* Minimum wave speed for BVP [m/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useSubMeso = /* if TRUE => use Sub-Meso param. (B.Fox-Kemper) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Ceff = /* efficiency coeff. of Mixed-Layer Eddies [-] */ +(PID.TID 0000.0001) 7.000000000000001E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_invTau = /* inverse of Sub-Meso mixing time-scale [/s] */ +(PID.TID 0000.0001) 2.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_LfMin = /* minimum length-scale "Lf" [m] */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) subMeso_Lmax = /* maximum grid-scale length [m] */ +(PID.TID 0000.0001) 1.100000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GM_useLeithQG = /* if TRUE => add QG Leith viscosity to GMRedi tensor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_CHECK: #define ALLOW_PTRACERS +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // PTRACERS parameters +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) PTRACERS_numInUse = /* number of tracers */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_Iter0 = /* timestep number when tracers are initialized */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_startAllTrc =/* all tracers start @ startTime */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_doAB_onGpTr =/* apply AB on Tendencies (rather than on Tracers) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_addSrelax2EmP =/* add Salt relaxation to EmP */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dTLev = /* Ptracer timestep ( s ) */ +(PID.TID 0000.0001) 20 @ 8.640000000000000E+04 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_monitorFreq = /* Frequency^-1 for monitor output (s) */ +(PID.TID 0000.0001) 4.320000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_dumpFreq = /* Frequency^-1 for snapshot output (s) */ +(PID.TID 0000.0001) 8.640000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_taveFreq = /* Frequency^-1 for time-Aver. output (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useRecords = /* all tracers in 1 file */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_timeave_mnc = /* use MNC for Tave output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_snapshot_mnc = /* use MNC for snapshot output */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_write_mnc = /* use MNC for writing pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_pickup_read_mnc = /* use MNC for reading pickups */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) tracer number : 1 +(PID.TID 0000.0001) PTRACERS_names = /* Tracer short name */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_long_names = /* Tracer long name */ +(PID.TID 0000.0001) '' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ioLabel = /* tracer IO Label */ +(PID.TID 0000.0001) '01' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_advScheme = /* Advection Scheme */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_SOM_Advection = /* tracer uses SOM advection scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ImplVertAdv = /* implicit vert. advection flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_MultiDimAdv = /* tracer uses Multi-Dim advection */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBashGtr = /* apply AB on tracer tendency */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_AdamsBash_Tr = /* apply AB on passive tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKh = /* Laplacian Diffusivity */ +(PID.TID 0000.0001) 1.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffK4 = /* Biharmonic Diffusivity */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_diffKrNr = /* Vertical Diffusivity */ +(PID.TID 0000.0001) 20 @ 3.000000000000000E-05 /* K = 1: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useGMRedi = /* apply GM-Redi */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useDWNSLP = /* apply DOWN-SLOPE Flow */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_useKPP = /* apply KPP scheme */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_ref = /* Reference vertical profile */ +(PID.TID 0000.0001) 1.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 19 @ 0.000000000000000E+00 /* K = 2: 20 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) PTRACERS_EvPrRn =/* tracer conc. in Evap. & Rain */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------- +(PID.TID 0000.0001) CTRL_CHECK: --> Starts to check CTRL set-up +(PID.TID 0000.0001) CTRL_CHECK: pTracer # 1 in Gen-CTRL +(PID.TID 0000.0001) CTRL_CHECK: <-- Ends Normally +(PID.TID 0000.0001) +(PID.TID 0000.0001) COST_CHECK: #define ALLOW_COST +(PID.TID 0000.0001) GRDCHK_CHECK: grdchk package +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient-check starts (grdchk_main) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) grdchk reference fc: fcref = 1.84102723380947E+14 +grad-res ------------------------------- + grad-res proc # i j k bi bj iobc fc ref fc + eps fc - eps + grad-res proc # i j k bi bj iobc tlm grad fd grad 1 - fd/tlm + grad-res exact position met: + grad-res 0 1881 15 5 4 1 1 +(PID.TID 0000.0001) ====== Starts gradient-check number 1 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1881 37994 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 0 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 616 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1232 1 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1848 1 + ph-grd -->hit<-- 15 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 15 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 9.18227067226685E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 8.71966856788158E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.12211131921600E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471742246D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377715D+15 +(PID.TID 0000.0001) global fc = 0.184102723377715D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377715E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471806894D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384179D+15 +(PID.TID 0000.0001) global fc = 0.184102723384179D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384179E+14 +grad-res ------------------------------- + grad-res 0 1 15 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 1 1 1881 0 1 1 1 -3.23242721513E+07 -3.23242187500E+07 1.65204967517E-06 +(PID.TID 0000.0001) TLM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.23242721513033E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.23242187500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 1 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 2 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1882 37994 2 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1881 2 + ph-grd -->hit<-- 16 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 16 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 9.18227067226685E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 8.71966856788158E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.12211131921600E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471753096D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723378800D+15 +(PID.TID 0000.0001) global fc = 0.184102723378800D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723378800E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471796044D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723383094D+15 +(PID.TID 0000.0001) global fc = 0.184102723383094D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723383094E+14 +grad-res ------------------------------- + grad-res 0 2 16 5 4 1 1 1 1.84102723381E+14 1.84102723379E+14 1.84102723383E+14 + grad-res 0 2 2 1882 0 1 1 1 -2.14737521330E+07 -2.14737500000E+07 9.93301466634E-08 +(PID.TID 0000.0001) TLM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) TLM tangent-lin_grad = -2.14737521329909E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -2.14737500000000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 2 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 3 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1883 37994 3 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1882 3 + ph-grd -->hit<-- 17 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 17 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 9.18227067226685E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 8.71966856788158E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.12211131921600E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471730206D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723376511D+15 +(PID.TID 0000.0001) global fc = 0.184102723376511D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723376511E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471818934D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723385383D+15 +(PID.TID 0000.0001) global fc = 0.184102723385383D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723385383E+14 +grad-res ------------------------------- + grad-res 0 3 17 5 4 1 1 1 1.84102723381E+14 1.84102723377E+14 1.84102723385E+14 + grad-res 0 3 3 1883 0 1 1 1 -4.43643318051E+07 -4.43642187500E+07 2.54833238755E-06 +(PID.TID 0000.0001) TLM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) TLM tangent-lin_grad = -4.43643318050636E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -4.43642187500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 3 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 4 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1884 37994 4 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1883 4 + ph-grd -->hit<-- 18 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 18 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 9.18227067226685E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 8.71966856788158E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.12211131921600E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471743619D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377852D+15 +(PID.TID 0000.0001) global fc = 0.184102723377852D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377852E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471805521D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384042D+15 +(PID.TID 0000.0001) global fc = 0.184102723384042D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384042E+14 +grad-res ------------------------------- + grad-res 0 4 18 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 4 4 1884 0 1 1 1 -3.09510269421E+07 -3.09509375000E+07 2.88979460805E-06 +(PID.TID 0000.0001) TLM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.09510269421108E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.09509375000000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 4 (ierr= 0) ======= +(PID.TID 0000.0001) ====== Starts gradient-check number 5 (=ichknum) ======= + ph-test icomp, ncvarcomp, ichknum 1885 37994 5 + ph-grd _loc: bi, bj, icomptest, ichknum 1 1 1884 5 + ph-grd -->hit<-- 19 5 4 1 +(PID.TID 0000.0001) grdchk pos: i,j,k= 19 5 4 ; bi,bj= 1 1 ; iobc= 1 ; rec= 1 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = 4.61852778244065E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -4.21884749357559E-15 9.18227067226685E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -6.35047570085590E-14 8.71966856788158E+00 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 + cg2d: Sum(rhs),rhsMax = -7.28306304154103E-14 8.12211131921600E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471774570D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723380947D+15 +(PID.TID 0000.0001) global fc = 0.184102723380947D+15 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471741881D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723377678D+15 +(PID.TID 0000.0001) global fc = 0.184102723377678D+15 +(PID.TID 0000.0001) grdchk perturb(+)fc: fcpertplus = 1.84102723377678E+14 +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Pressure is predetermined for buoyancyRelation OCEANIC +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 3.46389583683049E-14 8.55254939901145E+00 + cg2d: Sum(rhs),rhsMax = -6.03961325396085E-14 9.18227067226690E+00 + cg2d: Sum(rhs),rhsMax = 2.39808173319034E-14 8.71966856788166E+00 + cg2d: Sum(rhs),rhsMax = 5.32907051820075E-15 8.12211131921602E+00 +(PID.TID 0000.0001) Did not write pickup because writePickupAtEnd = FALSE +(PID.TID 0000.0001) early fc = 0.000000000000000D+00 + --> objf_tracer(bi,bj) = 0.513236471807259D+14 + --> objf_tracer(bi,bj) = 0.579123484504980D+14 + --> objf_tracer(bi,bj) = 0.267040314490043D+14 + --> objf_tracer(bi,bj) = 0.481626963039877D+14 +(PID.TID 0000.0001) local fc = 0.184102723384216D+15 +(PID.TID 0000.0001) global fc = 0.184102723384216D+15 +(PID.TID 0000.0001) grdchk perturb(-)fc: fcpertminus = 1.84102723384216E+14 +grad-res ------------------------------- + grad-res 0 5 19 5 4 1 1 1 1.84102723381E+14 1.84102723378E+14 1.84102723384E+14 + grad-res 0 5 5 1885 0 1 1 1 -3.26888456348E+07 -3.26889062500E+07 -1.85430781396E-06 +(PID.TID 0000.0001) TLM ref_cost_function = 1.84102723380947E+14 +(PID.TID 0000.0001) TLM tangent-lin_grad = -3.26888456348181E+07 +(PID.TID 0000.0001) TLM finite-diff_grad = -3.26889062500000E+07 +(PID.TID 0000.0001) ====== End of gradient-check number 5 (ierr= 0) ======= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> START <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) EPS = 1.000000E-04 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output h.p: Id Itile Jtile LAYER bi bj X(Id) X(Id)+/-EPS +(PID.TID 0000.0001) grdchk output h.c: Id FC FC1 FC2 +(PID.TID 0000.0001) grdchk output h.g: Id FC1-FC2/(2*EPS) TLM GRAD(FC) 1-FDGRD/TLMGRD +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 1 15 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 1 1.8410272338095E+14 1.8410272337771E+14 1.8410272338418E+14 +(PID.TID 0000.0001) grdchk output (g): 1 -3.2324218750000E+07 -3.2324272151303E+07 1.6520496751715E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 2 16 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 2 1.8410272338095E+14 1.8410272337880E+14 1.8410272338309E+14 +(PID.TID 0000.0001) grdchk output (g): 2 -2.1473750000000E+07 -2.1473752132991E+07 9.9330146663412E-08 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 3 17 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 3 1.8410272338095E+14 1.8410272337651E+14 1.8410272338538E+14 +(PID.TID 0000.0001) grdchk output (g): 3 -4.4364218750000E+07 -4.4364331805064E+07 2.5483323875530E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 4 18 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 4 1.8410272338095E+14 1.8410272337785E+14 1.8410272338404E+14 +(PID.TID 0000.0001) grdchk output (g): 4 -3.0950937500000E+07 -3.0951026942111E+07 2.8897946080519E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk output (p): 5 19 5 4 1 1 0.000000000E+00 -1.000000000E-04 +(PID.TID 0000.0001) grdchk output (c): 5 1.8410272338095E+14 1.8410272337768E+14 1.8410272338422E+14 +(PID.TID 0000.0001) grdchk output (g): 5 -3.2688906250000E+07 -3.2688845634818E+07 -1.8543078139643E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) grdchk summary : RMS of 5 ratios = 2.0504878887903E-06 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Gradient check results >>> END <<< +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 29.009092501364648 +(PID.TID 0000.0001) System time: 7.3744002729654312E-002 +(PID.TID 0000.0001) Wall clock time: 29.187522888183594 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 5.6726998183876276E-002 +(PID.TID 0000.0001) System time: 9.0249996865168214E-003 +(PID.TID 0000.0001) Wall clock time: 6.8171977996826172E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "GRDCHK_MAIN [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 28.952338777482510 +(PID.TID 0000.0001) System time: 6.4712002873420715E-002 +(PID.TID 0000.0001) Wall clock time: 29.119330883026123 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.93216114863753319 +(PID.TID 0000.0001) System time: 2.8156005777418613E-002 +(PID.TID 0000.0001) Wall clock time: 0.97236967086791992 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 27.909506604075432 +(PID.TID 0000.0001) System time: 2.1967992186546326E-002 +(PID.TID 0000.0001) Wall clock time: 28.005802392959595 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 27.824960343539715 +(PID.TID 0000.0001) System time: 4.9789920449256897E-003 +(PID.TID 0000.0001) Wall clock time: 27.903953552246094 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 27.824249729514122 +(PID.TID 0000.0001) System time: 4.9719884991645813E-003 +(PID.TID 0000.0001) Wall clock time: 27.903240442276001 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "UPDATE_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.53901068121194839 +(PID.TID 0000.0001) System time: 9.7993761301040649E-005 +(PID.TID 0000.0001) Wall clock time: 0.54104971885681152 +(PID.TID 0000.0001) No. starts: 128 +(PID.TID 0000.0001) No. stops: 128 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0980442166328430E-003 +(PID.TID 0000.0001) System time: 4.9993395805358887E-006 +(PID.TID 0000.0001) Wall clock time: 1.1107921600341797E-003 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 3.7207454442977905E-004 +(PID.TID 0000.0001) System time: 9.9837779998779297E-007 +(PID.TID 0000.0001) Wall clock time: 3.7574768066406250E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "CTRL_MAP_FORCING [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.6501139402389526E-004 +(PID.TID 0000.0001) System time: 1.0021030902862549E-006 +(PID.TID 0000.0001) Wall clock time: 3.6406517028808594E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.3955352604389191E-002 +(PID.TID 0000.0001) System time: 1.2997537851333618E-005 +(PID.TID 0000.0001) Wall clock time: 2.4055719375610352E-002 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.5174685046076775 +(PID.TID 0000.0001) System time: 1.7980001866817474E-003 +(PID.TID 0000.0001) Wall clock time: 4.5319643020629883 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 11.075864300131798 +(PID.TID 0000.0001) System time: 2.9219947755336761E-003 +(PID.TID 0000.0001) Wall clock time: 11.107930898666382 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.7849542200565338 +(PID.TID 0000.0001) System time: 4.0009617805480957E-006 +(PID.TID 0000.0001) Wall clock time: 6.8030791282653809 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "UPDATE_CG2D [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.13858792185783386 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.13898372650146484 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.1996087133884430 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.2074856758117676 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.21850594878196716 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.21913695335388184 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.41276869177818298 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.41390943527221680 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "CALC_R_STAR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.2352378368377686E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.2481184005737305E-002 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.63119709491729736 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.63281941413879395 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 0.22456407546997070 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 0.22537279129028320 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.7086009979248047E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.7002563476562500E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "COST_TILE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.7487874031066895E-003 +(PID.TID 0000.0001) System time: 5.4992735385894775E-005 +(PID.TID 0000.0001) Wall clock time: 2.8162002563476562E-003 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.1100382804870605E-004 +(PID.TID 0000.0001) System time: 5.9977173805236816E-006 +(PID.TID 0000.0001) Wall clock time: 4.2605400085449219E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "PTRACERS_RESET [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 3.7646293640136719E-004 +(PID.TID 0000.0001) System time: 4.9993395805358887E-006 +(PID.TID 0000.0001) Wall clock time: 3.6621093750000000E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 6.5258145332336426E-004 +(PID.TID 0000.0001) System time: 2.0995736122131348E-005 +(PID.TID 0000.0001) Wall clock time: 6.8068504333496094E-004 +(PID.TID 0000.0001) No. starts: 64 +(PID.TID 0000.0001) No. stops: 64 +(PID.TID 0000.0001) Seconds in section "COST_FINAL [ADJOINT SPIN-DOWN]": +(PID.TID 0000.0001) User time: 5.5944919586181641E-004 +(PID.TID 0000.0001) System time: 3.4004449844360352E-005 +(PID.TID 0000.0001) Wall clock time: 5.9652328491210938E-004 +(PID.TID 0000.0001) No. starts: 16 +(PID.TID 0000.0001) No. stops: 16 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000002 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000003 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Tile number: 000004 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 73618 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 73618 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/verification_parser.py b/verification/verification_parser.py index e5c7e79d69..31fa95b7b5 100644 --- a/verification/verification_parser.py +++ b/verification/verification_parser.py @@ -50,7 +50,7 @@ def verification_parser(filename, threshold, input_dir_pat): # split test_results into a list with values for each number. # this uses spaces and the < > characters to separate the numbers. - test_results = re.split('[ ><]',test_results) + test_results = re.split('[ ><]+',test_results) # Check the Genmake, depend, make, and run checks for status in test_results[:4]: @@ -58,7 +58,7 @@ def verification_parser(filename, threshold, input_dir_pat): # Ignore the build status varaibles that were just checked, as # well as "pass" or "fail" and test name at the end of the line - test_results = test_results[4:-3] + test_results = test_results[4:-2] # convert to floats dp_similarity = [] @@ -69,7 +69,11 @@ def verification_parser(filename, threshold, input_dir_pat): pass - if len(dp_similarity) >= 17: + if len(dp_similarity) == 3: + # adjoint test. + # Remove forward gradient as it may have few matching digits. + del dp_similarity[2] + elif len(dp_similarity) >= 17: # this means that the test wasn't an offline advection test. # Remove the means of u and v since they are constrained # to ~0 by domain geometry and can cause the test to fail diff --git a/verification/vermix/code/CPP_EEOPTIONS.h b/verification/vermix/code/CPP_EEOPTIONS.h new file mode 100644 index 0000000000..4438ea139c --- /dev/null +++ b/verification/vermix/code/CPP_EEOPTIONS.h @@ -0,0 +1,157 @@ +CBOP +C !ROUTINE: CPP_EEOPTIONS.h +C !INTERFACE: +C include "CPP_EEOPTIONS.h" +C +C !DESCRIPTION: +C *==========================================================* +C | CPP\_EEOPTIONS.h | +C *==========================================================* +C | C preprocessor "execution environment" supporting | +C | flags. Use this file to set flags controlling the | +C | execution environment in which a model runs - as opposed | +C | to the dynamical problem the model solves. | +C | Note: Many options are implemented with both compile time| +C | and run-time switches. This allows options to be | +C | removed altogether, made optional at run-time or | +C | to be permanently enabled. This convention helps | +C | with the data-dependence analysis performed by the | +C | adjoint model compiler. This data dependency | +C | analysis can be upset by runtime switches that it | +C | is unable to recoginise as being fixed for the | +C | duration of an integration. | +C | A reasonable way to use these flags is to | +C | set all options as selectable at runtime but then | +C | once an experimental configuration has been | +C | identified, rebuild the code with the appropriate | +C | options set at compile time. | +C *==========================================================* +CEOP + +#ifndef _CPP_EEOPTIONS_H_ +#define _CPP_EEOPTIONS_H_ + +C In general the following convention applies: +C ALLOW - indicates an feature will be included but it may +C CAN have a run-time flag to allow it to be switched +C on and off. +C If ALLOW or CAN directives are "undef'd" this generally +C means that the feature will not be available i.e. it +C will not be included in the compiled code and so no +C run-time option to use the feature will be available. +C +C ALWAYS - indicates the choice will be fixed at compile time +C so no run-time option will be present + +C=== Macro related options === +C-- Control storage of floating point operands +C On many systems it improves performance only to use +C 8-byte precision for time stepped variables. +C Constant in time terms ( geometric factors etc.. ) +C can use 4-byte precision, reducing memory utilisation and +C boosting performance because of a smaller working set size. +C However, on vector CRAY systems this degrades performance. +C Enable to switch REAL4_IS_SLOW from genmake2 (with LET_RS_BE_REAL4): +#ifdef LET_RS_BE_REAL4 +#undef REAL4_IS_SLOW +#else /* LET_RS_BE_REAL4 */ +#define REAL4_IS_SLOW +#endif /* LET_RS_BE_REAL4 */ + +C-- Control use of "double" precision constants. +C Use D0 where it means REAL*8 but not where it means REAL*16 +#define D0 d0 + +C=== IO related options === +C-- Flag used to indicate whether Fortran formatted write +C and read are threadsafe. On SGI the routines can be thread +C safe, on Sun it is not possible - if you are unsure then +C undef this option. +#undef FMTFTN_IO_THREAD_SAFE + +C-- Flag used to indicate whether Binary write to Local file (i.e., +C a different file for each tile) and read are thread-safe. +#undef LOCBIN_IO_THREAD_SAFE + +C-- Flag to turn off the writing of error message to ioUnit zero +#undef DISABLE_WRITE_TO_UNIT_ZERO + +C-- Alternative formulation of BYTESWAP, faster than +C compiler flag -byteswapio on the Altix. +#undef FAST_BYTESWAP + +C-- Flag to turn on old default of opening scratch files with the +C STATUS='SCRATCH' option. This method, while perfectly FORTRAN-standard, +C caused filename conflicts on some multi-node/multi-processor platforms +C in the past and has been replace by something (hopefully) more robust. +#undef USE_FORTRAN_SCRATCH_FILES + +C-- Flag defined for eeboot_minimal.F, eeset_parms.F and open_copy_data_file.F +C to write STDOUT, STDERR and scratch files from process 0 only. +C WARNING: to use only when absolutely confident that the setup is working +C since any message (error/warning/print) from any proc <> 0 will be lost. +#undef SINGLE_DISK_IO + +C=== MPI, EXCH and GLOBAL_SUM related options === +C-- Flag turns off MPI_SEND ready_to_receive polling in the +C gather_* subroutines to speed up integrations. +#undef DISABLE_MPI_READY_TO_RECEIVE + +C-- Control MPI based parallel processing +CXXX We no longer select the use of MPI via this file (CPP_EEOPTIONS.h) +CXXX To use MPI, use an appropriate genmake2 options file or use +CXXX genmake2 -mpi . +CXXX #undef ALLOW_USE_MPI + +C-- Control use of communication that might overlap computation. +C Under MPI selects/deselects "non-blocking" sends and receives. +#define ALLOW_ASYNC_COMMUNICATION +#undef ALLOW_ASYNC_COMMUNICATION +#undef ALWAYS_USE_ASYNC_COMMUNICATION +C-- Control use of communication that is atomic to computation. +C Under MPI selects/deselects "blocking" sends and receives. +#define ALLOW_SYNC_COMMUNICATION +#undef ALWAYS_USE_SYNC_COMMUNICATION + +C-- Control XY periodicity in processor to grid mappings +C Note: Model code does not need to know whether a domain is +C periodic because it has overlap regions for every box. +C Model assume that these values have been +C filled in some way. +#undef ALWAYS_PREVENT_X_PERIODICITY +#undef ALWAYS_PREVENT_Y_PERIODICITY +#define CAN_PREVENT_X_PERIODICITY +#define CAN_PREVENT_Y_PERIODICITY + +C-- disconnect tiles (no exchange between tiles, just fill-in edges +C assuming locally periodic subdomain) +#define DISCONNECTED_TILES + +C-- Always cumulate tile local-sum in the same order by applying MPI allreduce +C to array of tiles ; can get slower with large number of tiles (big set-up) +#define GLOBAL_SUM_ORDER_TILES + +C-- Alternative way of doing global sum without MPI allreduce call +C but instead, explicit MPI send & recv calls. Expected to be slower. +#undef GLOBAL_SUM_SEND_RECV + +C-- Alternative way of doing global sum on a single CPU +C to eliminate tiling-dependent roundoff errors. Note: This is slow. +#undef CG2D_SINGLECPU_SUM + +C=== Other options (to add/remove pieces of code) === +C-- Flag to turn on checking for errors from all threads and procs +C (calling S/R STOP_IF_ERROR) before stopping. +#define USE_ERROR_STOP + +C-- Control use of communication with other component: +C allow to import and export from/to Coupler interface. +#undef COMPONENT_MODULE + +C-- Activate some pieces of code for coupling to GEOS AGCM +#undef HACK_FOR_GMAO_CPL + +#endif /* _CPP_EEOPTIONS_H_ */ + +#include "CPP_EEMACROS.h" + diff --git a/verification/vermix/code/GGL90_OPTIONS.h b/verification/vermix/code/GGL90_OPTIONS.h new file mode 100644 index 0000000000..3311ae1efe --- /dev/null +++ b/verification/vermix/code/GGL90_OPTIONS.h @@ -0,0 +1,39 @@ +C *=============================================================* +C | GGL90_OPTIONS.h +C | o CPP options file for GGL90 package. +C *=============================================================* +C | Use this file for selecting options within the GGL90 +C | package. +C *=============================================================* + +#ifndef GGL90_OPTIONS_H +#define GGL90_OPTIONS_H +#include "PACKAGES_CONFIG.h" +#include "CPP_OPTIONS.h" + +#ifdef ALLOW_GGL90 +C Package-specific Options & Macros go here + +C Enable horizontal diffusion of TKE. +#undef ALLOW_GGL90_HORIZDIFF + +C Use horizontal averaging for viscosity and diffusivity as +C originally implemented in OPA. +#undef ALLOW_GGL90_SMOOTH + +C allow IDEMIX model +#undef ALLOW_GGL90_IDEMIX +#ifdef ALLOW_GGL90_IDEMIX +C The cvmix version of idemix uses different regularisations for the +C Coriolis parameter, buoyancy frequency etc, when used in the denominator +# define GGL90_IDEMIX_CVMIX_VERSION +#endif + +C include Langmuir circulation parameterization +#define ALLOW_GGL90_LANGMUIR + +C recover old bug prior to Jun 2023 +#define GGL90_MISSING_HFAC_BUG + +#endif /* ALLOW_GGL90 */ +#endif /* GGL90_OPTIONS_H */ diff --git a/verification/vermix/input.ggl90/data.ggl90 b/verification/vermix/input.ggl90/data.ggl90 index 85c4287e9a..3ad1072766 100644 --- a/verification/vermix/input.ggl90/data.ggl90 +++ b/verification/vermix/input.ggl90/data.ggl90 @@ -3,11 +3,11 @@ # ===================================================================== &GGL90_PARM01 GGL90writeState=.TRUE., -#GGL90diffTKEh=1.e3, +#GGL90diffTKEh=1.E3, #GGL90alpha=30., #GGL90TKEFile = 'TKE.init', - GGL90TKEmin = 1.e-7, - mxlMaxFlag=2, + GGL90TKEmin = 1.E-7, + mxlMaxFlag=3, #GGL90ck=0.15, #GGL90ceps = 0.35, #GGL90m2 = 5., diff --git a/verification/vermix/input.gglLC/data.diagnostics b/verification/vermix/input.gglLC/data.diagnostics new file mode 100644 index 0000000000..0365992144 --- /dev/null +++ b/verification/vermix/input.gglLC/data.diagnostics @@ -0,0 +1,69 @@ +# Diagnostic Package Choices +#-------------------- +# dumpAtLast (logical): always write output at the end of simulation (default=F) +# diag_mnc (logical): write to NetCDF files (default=useMNC) +#--for each output-stream: +# fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +# frequency(n):< 0 : write snap-shot output every |frequency| seconds +# > 0 : write time-average output every frequency seconds +# timePhase(n) : write at time = timePhase + multiple of |frequency| +# averagingFreq : frequency (in s) for periodic averaging interval +# averagingPhase : phase (in s) for periodic averaging interval +# repeatCycle : number of averaging intervals in 1 cycle +# levels(:,n) : list of levels to write to file (Notes: declared as REAL) +# when this entry is missing, select all common levels of this list +# fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +# missing_value(n) : missing value for real-type fields in output file "n" +# fileFlags(n) : specific code (8c string) for output file "n" +#-------------------- + &DIAGNOSTICS_LIST +# diag_mnc = .FALSE., +#-- +# fields(1:3,1) = 'ETAN ','ETANSQ ','DETADT2 ', +# fileName(1) = 'surfDiag', +# fileFlags(1) = 'D ', +# frequency(1) = 432000., + + fields(1:6,2) = 'UVEL ','VVEL ','WVEL ', + 'THETA ','PHIHYD ','DFrI_TH ', + fileName(2) = 'dynDiag', + frequency(2) = 432000., + + fields(1:6,3) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', + 'GGL90ArU','GGL90ArV','GGL90Prl', + fileName(3) = 'DiagMXL_3d', + frequency(3) = 432000., + + fields(1,4) = 'MXLDEPTH', + fileName(4) = 'DiagMXL_2d', + frequency(4) = 432000., + & + +#-------------------- +# Parameter for Diagnostics of per level statistics: +#-------------------- +# diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +# diagSt_regMaskFile : file containing the region-mask to read-in +# nSetRegMskFile : number of region-mask sets within the region-mask file +# set_regMask(i) : region-mask set-index that identifies the region "i" +# val_regMask(i) : region "i" identifier value in the region mask +#--for each output-stream: +# stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +# stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +# > 0 : write time-average output every stat_freq seconds +# stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +# stat_region(:,n) : list of "regions" (default: 1 region only=global) +# stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +# (see "available_diagnostics.log" file for the full list of diags) +#-------------------- + &DIAG_STATIS_PARMS + diagSt_mnc =.FALSE., +#-- + stat_fields(1:6,1) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', + 'GGL90ArU','GGL90ArV','GGL90Prl', + stat_fName(1) = 'dynStDiag', + stat_freq(1) = -18000., + stat_phase(1) = 0., + & + diff --git a/verification/vermix/input.gglLC/data.ggl90 b/verification/vermix/input.gglLC/data.ggl90 new file mode 100644 index 0000000000..6af2bf2df5 --- /dev/null +++ b/verification/vermix/input.gglLC/data.ggl90 @@ -0,0 +1,20 @@ +# ===================================================================== +# | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +# ===================================================================== + &GGL90_PARM01 + GGL90writeState=.TRUE., +#GGL90diffTKEh=1.e3, +#GGL90alpha=30., +#GGL90TKEFile = 'TKE.init', + GGL90TKEmin = 1.e-7, + mxlMaxFlag=2, +#GGL90ck=0.15, +#GGL90ceps = 0.35, +#GGL90m2 = 5., + GGL90mixingLengthMin=3., + useLANGMUIR=.TRUE., + & + + &GGL90_PARM03 + LC_Gamma = 10., + & diff --git a/verification/vermix/input.gglLC/data.pkg b/verification/vermix/input.gglLC/data.pkg new file mode 100644 index 0000000000..c42921bdf7 --- /dev/null +++ b/verification/vermix/input.gglLC/data.pkg @@ -0,0 +1,6 @@ +# Packages + &PACKAGES + useGGL90=.TRUE., + useDiagnostics=.TRUE., +#useMNC=.TRUE., + & diff --git a/verification/vermix/input.opps/data.diagnostics b/verification/vermix/input.opps/data.diagnostics index c748ef276c..a9f48cb879 100644 --- a/verification/vermix/input.opps/data.diagnostics +++ b/verification/vermix/input.opps/data.diagnostics @@ -25,8 +25,9 @@ # fileFlags(1) = 'D ', # frequency(1) = 432000., - fields(1:6,2) = 'UVEL ','VVEL ','WVEL ', + fields(1:7,2) = 'UVEL ','VVEL ','WVEL ', 'THETA ','PHIHYD ','DFrI_TH ', + 'OPPScadj', fileName(2) = 'dynDiag', frequency(2) = 432000., @@ -65,4 +66,3 @@ # stat_freq(1) = -86400., # stat_phase(1) = 0., & - diff --git a/verification/vermix/input.opps/data.opps b/verification/vermix/input.opps/data.opps index 6721db5dab..6d625046cd 100644 --- a/verification/vermix/input.opps/data.opps +++ b/verification/vermix/input.opps/data.opps @@ -4,5 +4,4 @@ &OPPS_PARM01 #OPPSdebugLevel=1, #VERTICAL_VELOCITY=0.03, - OPPSwriteState=.true., & diff --git a/verification/vermix/results/output.ggl90.txt b/verification/vermix/results/output.ggl90.txt index 65acbc0957..1ffdd7eaa9 100644 --- a/verification/vermix/results/output.ggl90.txt +++ b/verification/vermix/results/output.ggl90.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint61x -(PID.TID 0000.0001) // Build user: dfer -(PID.TID 0000.0001) // Build host: faulks.csail.mit.edu -(PID.TID 0000.0001) // Build date: Thu Nov 12 11:40:54 EST 2009 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68a +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Fri Jul 30 12:44:54 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -18,7 +18,7 @@ (PID.TID 0000.0001) ># nTx - No. threads per process in X (PID.TID 0000.0001) ># nTy - No. threads per process in Y (PID.TID 0000.0001) > &EEPARMS -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Note: Some systems use & as the (PID.TID 0000.0001) ># namelist terminator. Other systems (PID.TID 0000.0001) ># use a / character (as shown here). @@ -47,8 +47,11 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ (PID.TID 0000.0001) @@ -60,20 +63,20 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile connectvity table (PID.TID 0000.0001) // ====================================================== -(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) -(PID.TID 0000.0001) DEBUG_MSG: ENTERED S/R THE_MODEL_MAIN -(PID.TID 0000.0001) DEBUG_MSG: CALLING S/R INITIALISE_FIXED +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Model parameter file "data" +(PID.TID 0000.0001) // Parameter file "data" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># ==================== (PID.TID 0000.0001) ># | Model parameters | @@ -83,15 +86,12 @@ (PID.TID 0000.0001) > &PARM01 (PID.TID 0000.0001) > tRef=26*1., (PID.TID 0000.0001) > sRef=26*35., -(PID.TID 0000.0001) > viscA4=0.0E4, (PID.TID 0000.0001) > viscAh=0.E-2, (PID.TID 0000.0001) > viscAz=1.E-4, (PID.TID 0000.0001) > no_slip_sides=.TRUE., (PID.TID 0000.0001) > no_slip_bottom=.TRUE., -(PID.TID 0000.0001) > diffK4T=0.E4, (PID.TID 0000.0001) > diffKhT=0.E-2, (PID.TID 0000.0001) > diffKzT=1.E-5, -(PID.TID 0000.0001) > diffK4S=0.E4, (PID.TID 0000.0001) > diffKhS=0.E-2, (PID.TID 0000.0001) > diffKzS=1.E-5, (PID.TID 0000.0001) > f0=1.4e-4, @@ -103,22 +103,22 @@ (PID.TID 0000.0001) > implicitViscosity=.TRUE., (PID.TID 0000.0001) > eosType='MDJWF', (PID.TID 0000.0001) > hFacMin=0.05, -(PID.TID 0000.0001) > readBinaryPrec=64, -(PID.TID 0000.0001) > debugLevel=1, (PID.TID 0000.0001) > tempAdvection=.FALSE., (PID.TID 0000.0001) > tempAdvScheme=33, (PID.TID 0000.0001) > momAdvection=.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) >#debugLevel=1, +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Elliptic solver parameters (PID.TID 0000.0001) > &PARM02 (PID.TID 0000.0001) > cg2dMaxIters=300, (PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 -(PID.TID 0000.0001) > niter0=0, +(PID.TID 0000.0001) > nIter0=0, (PID.TID 0000.0001) > nTimeSteps=20, (PID.TID 0000.0001) >#nTimeSteps=720, (PID.TID 0000.0001) >#nTimeSteps=51840, @@ -134,35 +134,35 @@ (PID.TID 0000.0001) > periodicExternalForcing=.TRUE., (PID.TID 0000.0001) > externForcingPeriod=432000., (PID.TID 0000.0001) > externForcingCycle=31104000., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters (PID.TID 0000.0001) > &PARM04 (PID.TID 0000.0001) > usingCartesianGrid=.TRUE., -(PID.TID 0000.0001) > usingSphericalPolarGrid=.FALSE., -(PID.TID 0000.0001) > dXspacing=5000, +(PID.TID 0000.0001) > dXspacing=5000., (PID.TID 0000.0001) > dYspacing=5000., -(PID.TID 0000.0001) > delZ=10, 10, 10, 10, 10, 11, 12, 14, 16, 18, 21, 24, 27, -(PID.TID 0000.0001) > 31, 35, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > delZ=10., 10., 10., 10., 10., 11., 12., 14., 16., 18., 21., 24., 27., +(PID.TID 0000.0001) > 31., 35., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Input datasets (PID.TID 0000.0001) > &PARM05 (PID.TID 0000.0001) > hydrogThetaFile='T_26.init', -(PID.TID 0000.0001) > surfQfile='Qnet_72.forcing', -(PID.TID 0000.0001) > zonalWindFile='taux_72.forcing', -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > surfQnetFile ='Qnet_72.forcing', +(PID.TID 0000.0001) > zonalWindFile ='taux_72.forcing', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM01 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM01 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM02 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM02 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM03 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM03 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM04 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM04 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM05 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" (PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg (PID.TID 0000.0001) // ======================================================= @@ -173,23 +173,46 @@ (PID.TID 0000.0001) > useGGL90=.TRUE., (PID.TID 0000.0001) > useDiagnostics=.TRUE., (PID.TID 0000.0001) > useMNC=.TRUE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/opps compiled but not used ( useOPPS = F ) + pkg/pp81 compiled but not used ( usePP81 = F ) + pkg/my82 compiled but not used ( useMY82 = F ) + pkg/ggl90 compiled and used ( useGGL90 = T ) + pkg/kpp compiled but not used ( useKPP = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + pkg/mnc compiled and used ( useMNC = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled but not used ( taveFreq > 0. = F ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) (PID.TID 0000.0001) MNC_READPARMS: opening file 'data.mnc' (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.mnc (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.mnc" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "data.mnc" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments (PID.TID 0000.0001) > &MNC_01 (PID.TID 0000.0001) ># mnc_echo_gvtypes=.FALSE., (PID.TID 0000.0001) ># mnc_use_indir=.FALSE., -(PID.TID 0000.0001) > mnc_use_outdir=.FALSE., +(PID.TID 0000.0001) > mnc_use_outdir=.TRUE., +(PID.TID 0000.0001) > mnc_outdir_str='mnc_test_', (PID.TID 0000.0001) > monitor_mnc=.FALSE., (PID.TID 0000.0001) > pickup_read_mnc=.FALSE., (PID.TID 0000.0001) > pickup_write_mnc=.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) MNC_READPARMS: finished reading data.mnc (PID.TID 0000.0001) GGL90_READPARMS: opening data.ggl90 @@ -202,17 +225,19 @@ (PID.TID 0000.0001) ># ===================================================================== (PID.TID 0000.0001) > &GGL90_PARM01 (PID.TID 0000.0001) > GGL90writeState=.TRUE., -(PID.TID 0000.0001) >#GGL90diffTKEh=1.e3, +(PID.TID 0000.0001) >#GGL90diffTKEh=1.E3, (PID.TID 0000.0001) >#GGL90alpha=30., (PID.TID 0000.0001) >#GGL90TKEFile = 'TKE.init', -(PID.TID 0000.0001) > GGL90TKEmin = 1.e-7, -(PID.TID 0000.0001) > mxlMaxFlag=2, +(PID.TID 0000.0001) > GGL90TKEmin = 1.E-7, +(PID.TID 0000.0001) > mxlMaxFlag=3, (PID.TID 0000.0001) >#GGL90ck=0.15, (PID.TID 0000.0001) >#GGL90ceps = 0.35, (PID.TID 0000.0001) >#GGL90m2 = 5., (PID.TID 0000.0001) > GGL90mixingLengthMin=3., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK (PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // GGL90 configuration @@ -263,9 +288,18 @@ (PID.TID 0000.0001) 3.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ -(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) GGL90: GGL90TKEFile = +(PID.TID 0000.0001) GGL90writeState = /* GGL90 Boundary condition flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End of GGL90 config. summary (PID.TID 0000.0001) // ======================================================= @@ -276,88 +310,125 @@ (PID.TID 0000.0001) // Parameter file "data.diagnostics" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Diagnostic Package Choices -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) ># for each output-stream: -(PID.TID 0000.0001) ># filename(n) : prefix of the output file name (only 8.c long) for outp.stream n +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n (PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds (PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds (PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle (PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) -(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list -(PID.TID 0000.0001) ># fields(:,n) : list of diagnostics fields (8.c) (see "available_diagnostics.log" -(PID.TID 0000.0001) ># file for the list of all available diag. in this particular config) -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) > &diagnostics_list +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST (PID.TID 0000.0001) ># diag_mnc = .FALSE., -(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) ># fields(1:3,1) = 'ETAN ','ETANSQ ','DETADT2 ', +(PID.TID 0000.0001) ># fileName(1) = 'surfDiag', +(PID.TID 0000.0001) ># fileFlags(1) = 'D ', (PID.TID 0000.0001) ># frequency(1) = 432000., -(PID.TID 0000.0001) ># filename(1) = 'surfDiag', -(PID.TID 0000.0001) ># fields(1,1) = 'ETAN ','ETANSQ ','DETADT2 ', -(PID.TID 0000.0001) ># fileflags(1)= 'D ', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,2) = 'UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) > 'THETA ','PHIHYD ','DFrI_TH ', +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', (PID.TID 0000.0001) > frequency(2) = 432000., -(PID.TID 0000.0001) > filename(2) = 'dynDiag', -(PID.TID 0000.0001) > fields(1,2) = 'UVEL ','VVEL ','WVEL ', -(PID.TID 0000.0001) > 'THETA ','PHIHYD ','DFrI_TH ', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,3) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', +(PID.TID 0000.0001) > 'GGL90ArU','GGL90ArV','GGL90Prl', +(PID.TID 0000.0001) > fileName(3) = 'DiagMXL_3d', (PID.TID 0000.0001) > frequency(3) = 432000., -(PID.TID 0000.0001) > filename(3) = 'DiagMXL_3d', -(PID.TID 0000.0001) > fields(1,3) = 'GGL90TKE','GGL90Lmx','GGL90Kr ','GGL90Ar ', -(PID.TID 0000.0001) > 'GGL90Prl', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1,4) = 'MXLDEPTH', +(PID.TID 0000.0001) > fileName(4) = 'DiagMXL_2d', (PID.TID 0000.0001) > frequency(4) = 432000., -(PID.TID 0000.0001) > filename(4) = 'DiagMXL_2d', -(PID.TID 0000.0001) > fields(1,4) = 'MXLDEPTH', -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- (PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) ># for each output-stream: -(PID.TID 0000.0001) ># stat_fname(n) : prefix of the output file name (only 8.c long) for outp.stream n +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n (PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds (PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds (PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| (PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) -(PID.TID 0000.0001) ># stat_fields(:,n) : list of diagnostics fields (8.c) (see "available_diagnostics.log" -(PID.TID 0000.0001) ># file for the list of all available diag. in this particular config) -(PID.TID 0000.0001) >#----------------- +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- (PID.TID 0000.0001) > &DIAG_STATIS_PARMS -(PID.TID 0000.0001) >#stat_fields(1,1)= 'ETAN ','UVEL ','VVEL ','WVEL ', -(PID.TID 0000.0001) ># 'THETA ','PHIHYD ','KPPdbsfc','KPPhbl ','KPPRi ', -(PID.TID 0000.0001) ># stat_fname(1)= 'dynStDiag', -(PID.TID 0000.0001) ># stat_freq(1)= -86400., -(PID.TID 0000.0001) ># stat_phase(1)= 0., -(PID.TID 0000.0001) ># diagSt_mnc =.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > diagSt_mnc =.FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > stat_fields(1:6,1) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', +(PID.TID 0000.0001) > 'GGL90ArU','GGL90ArV','GGL90Prl', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = -18000., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 300 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) Creating Output Stream: dynDiag (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later (PID.TID 0000.0001) Fields: UVEL VVEL WVEL THETA PHIHYD DFrI_TH (PID.TID 0000.0001) Creating Output Stream: DiagMXL_3d (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later -(PID.TID 0000.0001) Fields: GGL90TKE GGL90Lmx GGL90Kr GGL90Ar GGL90Prl +(PID.TID 0000.0001) Fields: GGL90TKE GGL90Lmx GGL90Kr GGL90ArU GGL90ArV GGL90Prl (PID.TID 0000.0001) Creating Output Stream: DiagMXL_2d (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later (PID.TID 0000.0001) Fields: MXLDEPTH (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: -18000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: GGL90TKE GGL90Lmx GGL90Kr GGL90ArU GGL90ArV GGL90Prl (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) (PID.TID 0000.0001) SET_PARMS: done @@ -434,15 +505,25 @@ (PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) at iteration 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: Start to iterate (MaxIter= 260 ) until P(rho(P)) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converges ; critera (x 5) on Rho diff= 9.998000E-12 +(PID.TID 0000.0001) iter 1, RMS-diff= 4.522117070724E-02, Max-diff= 9.254578595119E-02 +(PID.TID 0000.0001) iter 2, RMS-diff= 5.501271219195E-05, Max-diff= 1.418256665602E-04 +(PID.TID 0000.0001) iter 3, RMS-diff= 4.946437427996E-08, Max-diff= 1.465555214963E-07 +(PID.TID 0000.0001) iter 4, RMS-diff= 3.498336160000E-11, Max-diff= 1.141415850725E-10 +(PID.TID 0000.0001) iter 5, RMS-diff= 7.723499726203E-14, Max-diff= 2.273736754432E-13 +(PID.TID 0000.0001) iter 6, RMS-diff= 0.000000000000E+00, Max-diff= 0.000000000000E+00 +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converged after 6 iters (nUnderCrit= 2 ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) (PID.TID 0000.0001) // CMIN = -6.990000000000000E+02 (PID.TID 0000.0001) // CMAX = -6.990000000000000E+02 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -450,14 +531,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) at iteration 1 +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) (PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 (PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -465,14 +546,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacC at iteration 1 +(PID.TID 0000.0001) // Field hFacC at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -480,14 +561,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacW at iteration 1 +(PID.TID 0000.0001) // Field hFacW at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -495,20 +576,21 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacS at iteration 1 +(PID.TID 0000.0001) // Field hFacS at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // END OF FIELD = (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 (PID.TID 0000.0001) (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // GAD parameters : @@ -552,23 +634,24 @@ (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 175 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 197 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 32 WVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 67 PHIHYD -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 101 DFrI_TH -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 171 GGL90TKE -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 172 GGL90Lmx -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 175 GGL90Kr -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 174 GGL90Ar -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 173 GGL90Prl -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 71 MXLDEPTH -(PID.TID 0000.0001) space allocated for all diagnostics: 287 levels -(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UU MR , mate: 31 -(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VV MR , mate: 30 +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 115 DFrI_TH +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 190 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 191 GGL90Lmx +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 195 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 193 GGL90ArU +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 194 GGL90ArV +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 192 GGL90Prl +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH +(PID.TID 0000.0001) space allocated for all diagnostics: 313 levels +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag (PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. (PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. 26. @@ -581,9 +664,16 @@ (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region (PID.TID 0000.0001) ------------------------------------------------------------ -(PID.TID 0000.0001) space allocated for all stats-diags: 0 levels +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 190 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 191 GGL90Lmx +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 195 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 193 GGL90ArU +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 194 GGL90ArV +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 192 GGL90Prl +(PID.TID 0000.0001) space allocated for all stats-diags: 156 levels (PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done (PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 (PID.TID 0000.0001) %MON fCori_max = 1.4000000000000E-04 (PID.TID 0000.0001) %MON fCori_min = 1.4000000000000E-04 (PID.TID 0000.0001) %MON fCori_mean = 1.4000000000000E-04 @@ -607,10 +697,10 @@ (PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ (PID.TID 0000.0001) 'OCEANIC' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) fluidIsWater= /* fluid major constituent is Water */ +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ @@ -622,52 +712,28 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 26 @ 3.500000000000000E+01 /* K = 1: 26 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAh = /* Lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhMax = /* Maximum lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhGrid = /* Grid dependent lateral eddy viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useFullLeith = /* Use Full Form of Leith Viscosity on/off flag*/ +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useStrainTensionVisc = /* Use StrainTension Form of Viscous Operator on/off flag*/ +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAreaViscLength = /* Use area for visc length instead of geom. mean*/ +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leith = /* Leith harmonic visc. factor (on grad(vort),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Max = /* Maximum biharmonic viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Grid = /* Grid dependent biharmonic viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leith = /* Leith biharm viscosity factor (on grad(vort), non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leithD = /* Leith biharm viscosity factor (on grad(div), non-dim.) */ +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4Smag = /* Smagorinsky biharm viscosity factor (non-dim) */ +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ @@ -682,12 +748,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -718,13 +790,13 @@ (PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ (PID.TID 0000.0001) -2.000000000000000E+03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s ) */ +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ (PID.TID 0000.0001) -8.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) dRhoSmall= /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ (PID.TID 0000.0001) 1.000000000000000E-06 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ @@ -733,16 +805,23 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'MDJWF ' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhonil = /* Reference density ( kg/m^3 ) */ -(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConst = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ (PID.TID 0000.0001) 9.998000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ @@ -751,7 +830,7 @@ (PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ (PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConstFresh = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ (PID.TID 0000.0001) 9.998000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ @@ -760,6 +839,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -772,44 +857,53 @@ (PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ (PID.TID 0000.0001) 0 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ (PID.TID 0000.0001) 2.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ (PID.TID 0000.0001) 2.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; > 0 uses r*) */ -(PID.TID 0000.0001) 0 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ @@ -818,10 +912,19 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(ppt)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(ppt)*/ +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -833,9 +936,18 @@ (PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -848,26 +960,25 @@ (PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) momImplVertAdv =/* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useConstantF = /* use Constant f0 Coriolis flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useBetaPlaneF = /* use Beta-Plane Coriolis flag */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useSphereF = /* use Spherical Coriolis flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ (PID.TID 0000.0001) F @@ -878,83 +989,73 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I. Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* Work with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* High order interp. of vort. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicitDiffusion =/* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tempAdvection= /* Temperature advection on/off flag */ +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tempImplVertAdv =/* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) saltAdvection= /* Salinity advection on/off flag */ +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) saltImplVertAdv =/* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -964,23 +1065,33 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debugMode = /* Debug Mode on/off flag */ +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debLevA = /* 1rst level of debugging */ -(PID.TID 0000.0001) 1 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) debLevB = /* 2nd level of debugging */ +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debugLevel = /* select debugging level */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) @@ -991,6 +1102,9 @@ (PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ (PID.TID 0000.0001) 1.000000000000000E-13 (PID.TID 0000.0001) ; @@ -1000,13 +1114,19 @@ (PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) (PID.TID 0000.0001) // -(PID.TID 0000.0001) deltaTmom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ (PID.TID 0000.0001) 1.200000000000000E+03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) deltaTfreesurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ (PID.TID 0000.0001) 1.200000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ @@ -1033,28 +1153,34 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-02 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ (PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) baseTime = /* Model base time ( s ). */ +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) startTime = /* Run start time ( s ). */ +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) endTime = /* Integration ending time ( s ). */ +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ (PID.TID 0000.0001) 2.400000000000000E+04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/checkpoint file interval ( s ). */ +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ (PID.TID 0000.0001) 6.220800000000000E+07 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/checkpoint file interval ( s ). */ +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ @@ -1069,9 +1195,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1129,8 +1252,23 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 @@ -1138,6 +1276,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 1.000200040008002E-03 (PID.TID 0000.0001) ; @@ -1158,7 +1302,8 @@ (PID.TID 0000.0001) 2.900000000000000E+01, /* K = 14 */ (PID.TID 0000.0001) 3.300000000000000E+01, /* K = 15 */ (PID.TID 0000.0001) 3.750000000000000E+01, /* K = 16 */ -(PID.TID 0000.0001) 10 @ 4.000000000000000E+01 /* K = 17: 26 */ +(PID.TID 0000.0001) 10 @ 4.000000000000000E+01, /* K = 17: 26 */ +(PID.TID 0000.0001) 2.000000000000000E+01 /* K = 27 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ (PID.TID 0000.0001) 5 @ 1.000000000000000E+01, /* K = 1: 5 */ @@ -1180,10 +1325,10 @@ (PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ (PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ @@ -1267,7 +1412,7 @@ (PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ (PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical gradient of reference boyancy [(m/s/r)^2)] */ +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ (PID.TID 0000.0001) 26 @ 0.000000000000000E+00 /* K = 1: 26 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ @@ -1357,9 +1502,10 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) -(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): (PID.TID 0000.0001) // CONFIG_CHECK : Normal End (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) @@ -1371,15 +1517,6 @@ (PID.TID 0000.0001) Iteration 4, RMS-difference = 6.784304060020E-08 (PID.TID 0000.0001) Iteration 5, RMS-difference = 3.857422717032E-11 (PID.TID 0000.0001) Iteration 6, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 7, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 8, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 9, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 10, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 11, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 12, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 13, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 14, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 15, RMS-difference = 0.000000000000E+00 (PID.TID 0000.0001) Initial hydrostatic pressure converged. (PID.TID 0000.0001) (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing @@ -1399,29 +1536,42 @@ listId= 1 ; file name: dynDiag 31 |VVEL | 27 | 1 | 26 | 0 | 0 | 32 |WVEL | 53 | 0 | 26 | 0 | 26 |THETA | 79 | 0 | 26 | 0 | - 67 |PHIHYD | 105 | 0 | 26 | 0 | - 101 |DFrI_TH | 131 | 0 | 26 | 0 | + 71 |PHIHYD | 105 | 0 | 26 | 0 | + 115 |DFrI_TH | 131 | 0 | 26 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: DiagMXL_3d nFlds, nActive, freq & phase , nLev - 5 | 5 | 432000.000000 0.000000 | 26 + 6 | 6 | 432000.000000 0.000000 | 26 levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 levels: 26 diag# | name | ipt | iMate | kLev| count | mate.C| - 171 |GGL90TKE| 157 | 0 | 26 | 0 | - 172 |GGL90Lmx| 183 | 0 | 26 | 0 | - 175 |GGL90Kr | 209 | 0 | 26 | 0 | - 174 |GGL90Ar | 235 | 0 | 26 | 0 | - 173 |GGL90Prl| 261 | 0 | 26 | 0 | + 190 |GGL90TKE| 157 | 0 | 26 | 0 | + 191 |GGL90Lmx| 183 | 0 | 26 | 0 | + 195 |GGL90Kr | 209 | 0 | 26 | 0 | + 193 |GGL90ArU| 235 | 0 | 26 | 0 | + 194 |GGL90ArV| 261 | 0 | 26 | 0 | + 192 |GGL90Prl| 287 | 0 | 26 | 0 | ------------------------------------------------------------------------ listId= 3 ; file name: DiagMXL_2d nFlds, nActive, freq & phase , nLev 1 | 1 | 432000.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 71 |MXLDEPTH| 287 | 0 | 1 | 0 | + 76 |MXLDEPTH| 313 | 0 | 1 | 0 | ------------------------------------------------------------------------ -Global & Regional Statistics diagnostics: Number of lists: 0 +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 6 | 6 | -18000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 190 |GGL90TKE| 1 | 0 | 0.00000E+00 | + 191 |GGL90Lmx| 27 | 0 | 0.00000E+00 | + 195 |GGL90Kr | 53 | 0 | 0.00000E+00 | + 193 |GGL90ArU| 79 | 0 | 0.00000E+00 | + 194 |GGL90ArV| 105 | 0 | 0.00000E+00 | + 192 |GGL90Prl| 131 | 0 | 0.00000E+00 | ------------------------------------------------------------------------ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Model current state @@ -1447,8 +1597,8 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 @@ -1472,31 +1622,34 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1516,17 +1669,18 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -S/R EXTERNAL_FIELDS_LOAD: Reading new data: 72 1 0 0.000000000000E+00 + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 72 0 72 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 72 1 (prev= 72 0 ) (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7500E+02 0.0000E+00 72 1 5.0000E-01 5.0000E-01 -time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.000000000000000E-01 5.000000000000000E-01 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1547,8 +1701,8 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 @@ -1560,7 +1714,7 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.0811623275179E-15 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.4050980708329E-15 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_max = 9.0691433247596E+00 (PID.TID 0000.0001) %MON dynstat_sst_min = 9.0691433247596E+00 @@ -1572,31 +1726,34 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8771276951391E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1616,12 +1773,18 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.2000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7597E+02 0.0000E+00 72 1 5.0278E-01 4.9722E-01 -time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.027777777777778E-01 4.972222222222222E-01 + Compute Stats, Diag. # 190 GGL90TKE vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 191 GGL90Lmx vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 195 GGL90Kr vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 193 GGL90ArU vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 194 GGL90ArV vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 192 GGL90Prl vol( 0 ): 1.698E+10 Parms: SM LR + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4972222222 0.5027777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1632,34 +1795,34 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3941298720344E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 5.7352698826401E-93 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3961730069695E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 5.4481221567710E-93 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.4341632274953E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8429220008659E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.8453780423460E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.3672419088070E-93 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0348993003402E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.3308636928576E-93 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.0374877103183E-03 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3558926377550E-05 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.6037819881258E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.6068916609367E-04 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0638442055310E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038797145082E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5625402431786E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0541303936378E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0541303986229E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.5145787623796E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2810196141666E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0638363719213E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0638363719213E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0638442055310E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0638442055310E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0638442055310E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1667,38 +1830,41 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.7459116928826E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.2837583208164E-04 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8771276951391E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.7508152167269E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.2899705047638E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9119819908998E-04 -(PID.TID 0000.0001) %MON ke_mean = 4.1659550499923E-06 +(PID.TID 0000.0001) %MON ke_max = 2.9169541976164E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.1730525146000E-06 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1711,12 +1877,12 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.4000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7694E+02 0.0000E+00 72 1 5.0556E-01 4.9444E-01 -time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.055555555555555E-01 4.944444444444445E-01 + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4944444444 0.5055555556 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1727,73 +1893,76 @@ time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0555555555 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5052943376886E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 7.9710955122945E-92 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.5151498638077E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 7.1660878877116E-92 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.0407445568084E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1622680702206E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1740971868793E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.9768475394714E-92 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.0534619978327E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.6785985674977E-92 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.0793015399430E-03 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1596482386606E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5627578152801E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5937372102094E-04 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0584891974024E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0585165090715E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038827725433E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5624641720588E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0540002277009E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0540002440664E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8778050533853E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.9215294212499E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0584891974024E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0584891974024E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0584891974024E+00 -(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0585165090715E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0585165090715E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0585165090715E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4127064104525E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9328308794798E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7508152167269E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.2899705047638E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.4363596731384E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9390323695863E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 6.4678354476684E-04 -(PID.TID 0000.0001) %MON ke_mean = 9.2532388779794E-06 +(PID.TID 0000.0001) %MON ke_max = 6.5045148493801E-04 +(PID.TID 0000.0001) %MON ke_mean = 9.3055120796717E-06 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1806,12 +1975,12 @@ time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0555555555 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 3.6000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7792E+02 0.0000E+00 72 1 5.0833E-01 4.9167E-01 -time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.083333333333333E-01 4.916666666666667E-01 + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4916666667 0.5083333333 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1822,34 +1991,34 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4997930266810E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 7.1770881579752E-91 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.5310378691267E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 6.0728615516168E-91 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.5009678934929E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.3429836491643E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.3803888754366E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.8823419113297E-91 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4804339284151E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.1614824163966E-91 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4925655992889E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1441452125000E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7578287617821E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7723252670806E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0530493066671E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0531602387329E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038858305556E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623876829659E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0538695038483E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0538695661233E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.6110465164963E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.5620392283332E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0530493066671E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0530493066671E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0530493066671E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0531602387329E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0531602387329E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0531602387329E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1857,38 +2026,41 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0799503264034E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.5530414281963E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.4363596731384E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9390323695863E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0874490885904E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.5821574382934E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 1.1219910949685E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.6053017826715E-05 +(PID.TID 0000.0001) %MON ke_max = 1.1379028119821E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.6279160362849E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1901,12 +2073,12 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 4.8000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7889E+02 0.0000E+00 72 1 5.1111E-01 4.8889E-01 -time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.111111111111111E-01 4.888888888888889E-01 + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4888888889 0.5111111111 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1917,34 +2089,34 @@ time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1111111111 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.3408668457177E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 4.6230693400078E-90 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4153907314429E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 3.6475115396666E-90 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.7734814108220E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3416162006167E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.4304804472228E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.8956800169122E-90 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2990662405756E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.8965571848121E-90 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.3380294889611E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.3614197540939E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7299194454887E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.7762364393874E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0474150746211E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0477555311922E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038888885449E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623107758998E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0537381796870E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0537383574263E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0488839169355E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.2243513895986E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0474150746211E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0474150746211E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0474150746211E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0477555311922E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0477555311922E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0477555311922E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1952,38 +2124,41 @@ time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1111111111 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2818080429722E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.5177589773814E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0874490885904E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.5821574382934E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2996937755463E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.6112707735066E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 1.6905282121120E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.4192908887429E-05 +(PID.TID 0000.0001) %MON ke_max = 1.7396419332725E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.4887914554787E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1996,12 +2171,12 @@ time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1111111111 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 6.0000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7986E+02 0.0000E+00 72 1 5.1389E-01 4.8611E-01 -time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.138888888888888E-01 4.861111111111112E-01 + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4861111111 0.5138888889 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2012,34 +2187,34 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.0000926148631E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 2.1731038374144E-89 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.1400586612242E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 1.5664101651044E-89 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.8215484231581E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.1249472168676E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.2909141933732E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.4988219751467E-89 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.2233080530355E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.5277659323374E-89 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.3180078147189E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.7763935892767E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.8281191134358E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.9398429962287E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0414638513085E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0422820157595E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038919465112E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5622334508605E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0536062204703E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0536066134018E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4677333291561E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4462132217596E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0414638513085E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0414638513085E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0414638513085E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0422820157595E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0422820157595E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0422820157595E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2047,38 +2222,41 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4400222275671E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.7359393272851E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2996937755463E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.6112707735066E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4736140786938E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.9632187553253E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.3195413095849E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.3212852656410E-05 +(PID.TID 0000.0001) %MON ke_max = 2.4354748110905E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.4843064566540E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2091,12 +2269,12 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 7.2000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8083E+02 0.0000E+00 72 1 5.1667E-01 4.8333E-01 -time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.166666666666667E-01 4.833333333333333E-01 + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4833333333 0.5166666667 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2107,34 +2285,34 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4621408892522E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 6.7741990273440E-89 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.6794109300755E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 4.1420436613160E-89 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6149609557087E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6754331628148E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9312164217530E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.7825905819128E-88 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.2122879469239E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.0543710329458E-88 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.3988195550754E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.3482121059842E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.0052993074234E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.2231185544220E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0350946736216E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0366832428191E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038950044547E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5621557078481E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0534736256661E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5621557078480E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0534743166228E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.0512071468925E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.9663453304588E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0350946736216E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0350946736216E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0350946736216E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0366832428191E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0366832428191E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0366832428191E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2142,38 +2320,41 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5509138134205E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0109491072617E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4736140786938E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.9632187553252E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6030586232181E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.0557166932181E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9751317310173E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.2646384052477E-05 +(PID.TID 0000.0001) %MON ke_max = 3.1982071925463E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.5756317036728E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2186,12 +2367,12 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 8.4000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8181E+02 0.0000E+00 72 1 5.1944E-01 4.8056E-01 -time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.194444444444445E-01 4.805555555555555E-01 + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4805555556 0.5194444444 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2202,73 +2383,76 @@ time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1944444444 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7243297338289E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 4.5092997321594E-89 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0078943763519E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6293555614327E-79 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0130869525140E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.9901514700615E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.3210402855439E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.4493167923475E-87 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.2267949593123E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0315051323323E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.2170181163975E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.0042716986321E-87 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.5355738448920E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0315051323322E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.5727798403305E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0284202878252E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0308847424849E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038980623752E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5620775468624E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0533404941014E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0533414518216E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.5411922016721E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.5022969873134E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0284202878252E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0284202878252E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0284202878252E+00 -(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0308847424849E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0308847424849E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0308847424849E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6138391361189E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2544307902349E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6030586232181E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.0557166932181E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6818946503245E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3285377227741E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.6267997957974E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.2082615347200E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9876580691178E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.7056271091680E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2281,12 +2465,12 @@ time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1944444444 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 9.6000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8278E+02 0.0000E+00 72 1 5.2222E-01 4.7778E-01 -time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.222222222222223E-01 4.777777777777777E-01 + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4777777778 0.5222222222 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2297,34 +2481,34 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.7611486366860E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0617003154860E-41 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.0925708368917E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.3743934181454E-27 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0354433730158E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.0403880589167E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.4216600289704E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -6.5149048566576E-87 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.2030128667197E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.2210831709954E-87 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.6587481183418E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.7776942587845E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.3928845364269E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.9069530423049E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0215181210937E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0247435799918E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039011202727E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619989679035E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0532068986585E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0532079931486E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.0885042165894E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.0786296170565E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0215181210937E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0215181210937E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0215181210937E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0247435799918E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0247435799918E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0247435799918E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2332,38 +2516,41 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6226756728046E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4887230880127E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6818946503245E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3285377227741E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.7022170008540E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5980995484020E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 4.2095249756026E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.0665378967907E-05 +(PID.TID 0000.0001) %MON ke_max = 4.7321743789924E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7736220042838E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2376,12 +2563,12 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.0800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8375E+02 0.0000E+00 72 1 5.2500E-01 4.7500E-01 -time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.250000000000000E-01 4.750000000000000E-01 + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4750000000 0.5250000000 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2392,34 +2579,34 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.5104015949785E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -8.3003712068608E-24 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.8860889408803E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2924019498100E-18 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0279249224075E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7604036421778E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 8.1797384316002E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.5672443079502E-86 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0098788774235E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.5476949849029E-86 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6469965472683E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1536394106537E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.3983310793709E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.0870247781534E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0140325058368E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0179675297733E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039041781474E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619199709715E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0530727830075E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0530739002449E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.6861205059398E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.6203222368937E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0140325058368E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0140325058368E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0140325058368E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0179675297733E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0179675297733E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0179675297733E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2427,38 +2614,41 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5624963827948E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6823709305817E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.7022170008540E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.5980995484020E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.6526613458113E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8352791713444E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 4.5761865402024E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.6571671572087E-05 +(PID.TID 0000.0001) %MON ke_max = 5.2947388547824E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.5934826832046E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2471,12 +2661,12 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.2000E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8472E+02 0.0000E+00 72 1 5.2778E-01 4.7222E-01 -time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.277777777777778E-01 4.722222222222222E-01 + EXTERNAL_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4722222222 0.5277777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2487,34 +2677,34 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8635016862451E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5499293313533E-19 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3110190358859E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.3921372742201E-15 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.9075312249693E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.0559125271216E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.5190701162667E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -8.9437213357973E-86 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3911134403430E-02 -(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3256866167701E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.0168881481520E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.9811291741026E-86 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2680700169277E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3256866167700E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.8722022074408E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0055066332963E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0100758704200E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039072359991E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5618405560663E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0529381652407E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0529391668346E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.2155533078535E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.1692475810188E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0055066332963E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0055066332963E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0055066332963E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0100758704200E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0100758704200E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0100758704200E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2522,38 +2712,41 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4072404046988E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7738672256823E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.6526613458113E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8352791713444E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5146445686126E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9843368040626E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 4.4504604956309E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.6914605111147E-05 +(PID.TID 0000.0001) %MON ke_max = 5.4094971538066E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.8367914296777E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2566,12 +2759,12 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.3200E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8569E+02 0.0000E+00 72 1 5.3056E-01 4.6944E-01 -time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.305555555555556E-01 4.694444444444444E-01 + EXTERNAL_FIELDS_LOAD, 11 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4694444444 0.5305555556 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2582,34 +2775,34 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.8822684839001E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.2164674679364E-16 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2130261167417E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.9536641274784E-15 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.2500492763427E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.0584693641285E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3442697648298E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.7572676426610E-85 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2081990635178E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.4017665718302E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.0485347431524E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4889482615332E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.2796843949676E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.9169726402366E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9966732986287E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0003777631312E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039102938279E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5617607231879E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0528033054776E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0528039143942E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.8234949176859E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.7963429533205E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9966732986287E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9966732986287E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9966732986287E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0003777631312E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0003777631312E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0003777631312E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2617,38 +2810,41 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1717444361360E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7299677752443E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5146445686126E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9843368040626E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2511262680180E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9316483383566E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.7897339644091E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.2945097273979E-05 +(PID.TID 0000.0001) %MON ke_max = 4.5977276402781E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.0834353118903E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2661,12 +2857,12 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.4400E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8667E+02 0.0000E+00 72 1 5.3333E-01 4.6667E-01 -time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.333333333333333E-01 4.666666666666667E-01 + EXTERNAL_FIELDS_LOAD, 12 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4666666667 0.5333333333 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2677,34 +2873,34 @@ time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3333333333 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0243412426633E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5902468504848E-15 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0858881636918E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2813993128808E-16 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.3258152334816E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.1782315051084E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2266869094126E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -7.4467807398528E-85 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.9506516155396E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.3750644842941E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.4001483332933E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6387157840399E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.6531080885174E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.9077100962594E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9896218853531E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9916578512787E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039133516337E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5616804723363E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0526682020511E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0526686193719E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.4736238702890E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.3365343109673E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9896218853531E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9896218853531E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9896218853531E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9916578512787E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9916578512787E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9916578512787E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2712,38 +2908,41 @@ time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3333333333 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.6584189823919E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6681563877295E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2511262680180E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9316483383566E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.8061315928604E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7760355999904E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.2253440159002E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.1687579351490E-05 +(PID.TID 0000.0001) %MON ke_max = 3.5728338720470E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4429778407213E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2756,12 +2955,12 @@ time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3333333333 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.5600E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8764E+02 0.0000E+00 72 1 5.3611E-01 4.6389E-01 -time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.361111111111111E-01 4.638888888888889E-01 + EXTERNAL_FIELDS_LOAD, 13 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4638888889 0.5361111111 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2772,34 +2971,34 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.4210475306662E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5156078605040E-12 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.3366490436428E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4399381564514E-16 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.1615335167584E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.4254312501513E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.3731317669567E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.7040583855919E-84 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.9264808066936E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -6.4847058646684E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0891825800459E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7706706426832E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0160117139390E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0260577026925E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9848916916295E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9854328498392E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039164094166E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615998035116E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0525324683665E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615998035115E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0525328251602E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.9579170858805E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.8327707098532E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9842176542738E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9842176542738E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9842176542738E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9854328498392E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9854328498392E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9854328498392E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2807,38 +3006,41 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.2105140735988E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6623553936065E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.8061315928604E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7760355999904E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.0079577047426E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7014038192110E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9839851286286E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.3230286091958E-05 +(PID.TID 0000.0001) %MON ke_max = 3.0694868246834E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4025936262299E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2851,12 +3053,12 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.6800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8861E+02 0.0000E+00 72 1 5.3889E-01 4.6111E-01 -time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.388888888888889E-01 4.611111111111111E-01 + EXTERNAL_FIELDS_LOAD, 14 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4611111111 0.5388888889 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2867,34 +3069,34 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.9448944995224E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2187943899683E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.8243006802321E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8585895142117E-10 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.7908295279127E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.7100628001999E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.6188633259458E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.9647416775994E-84 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0541889263946E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -7.2942711357016E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.1020457122982E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8810088400158E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0642973160757E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0707231233262E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9831056910811E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9825888567086E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039194671766E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615187167136E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0523961227134E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0523964589459E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.4737449887778E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.3287524227695E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9795385311339E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9795385311339E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9795385311339E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9804735144709E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9804735144709E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9804735144709E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2902,38 +3104,41 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.0677467988538E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6930053423347E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.0079577047426E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7014038192110E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.7783216325571E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7044909709516E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9216992511293E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.5455487502227E-05 +(PID.TID 0000.0001) %MON ke_max = 2.9207863815967E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.5807251888420E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2946,12 +3151,12 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.8000E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8958E+02 0.0000E+00 72 1 5.4167E-01 4.5833E-01 -time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.416666666666666E-01 4.583333333333334E-01 + EXTERNAL_FIELDS_LOAD, 15 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4583333333 0.5416666667 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2962,34 +3167,34 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5000880262944E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0106435500462E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3847559456442E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8803620808485E-04 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2532785229592E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0288881574755E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.9157166175140E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.9371054318867E-84 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2161097360274E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2517060198590E-73 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2275944875013E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9665505843083E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1025217730758E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1091686519177E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9809617430123E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9806819301198E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039225249136E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5614372119425E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0522592173071E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5614372119424E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0522596258753E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.0404974581547E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.8514912691714E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9751651254083E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9751651254083E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9751651254083E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9759652890138E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9759652890138E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9759652890138E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2997,38 +3202,41 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.0002112631065E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7318663366466E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.7783216325571E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7044909709516E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.7234142695460E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7346226770003E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9161339930805E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.7388907231845E-05 +(PID.TID 0000.0001) %MON ke_max = 2.8962591498023E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7787569107961E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3041,12 +3249,18 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.9200E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9056E+02 0.0000E+00 72 1 5.4444E-01 4.5556E-01 -time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.444444444444444E-01 4.555555555555556E-01 + Compute Stats, Diag. # 190 GGL90TKE vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 191 GGL90Lmx vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 195 GGL90Kr vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 193 GGL90ArU vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 194 GGL90ArV vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 192 GGL90Prl vol( 0 ): 1.698E+10 Parms: SM LR + EXTERNAL_FIELDS_LOAD, 16 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4555555556 0.5444444444 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3057,34 +3271,34 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.0445039053016E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6673139119683E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9489436451236E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2054958996516E-03 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5932629885590E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.4409271075033E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3211821959085E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 4.2930304587118E-70 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3456446946509E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.9432089014297E-57 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3529788969608E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0248319264836E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1276205974759E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1359539781666E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9785926080500E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9786084754736E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039255826278E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5613552891981E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0521217642142E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0521223116097E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.6171523210487E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.3830614764430E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9709890162135E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9709890162135E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9709890162135E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9716874401250E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9716874401250E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9716874401250E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3092,38 +3306,41 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.9068093727238E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7629547267162E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.7234142695460E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7346226770003E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6774647482966E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7647149352706E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9069246099423E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.8639070394556E-05 +(PID.TID 0000.0001) %MON ke_max = 2.8932339995510E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.9297112648819E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3136,12 +3353,12 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.0400E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9153E+02 0.0000E+00 72 1 5.4722E-01 4.5278E-01 -time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.472222222222223E-01 4.527777777777777E-01 + EXTERNAL_FIELDS_LOAD, 17 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4527777778 0.5472222222 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3152,34 +3369,34 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.5651211027230E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.6087555102212E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5869151183839E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0616324166149E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4915816796815E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.5906489910224E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5869151183840E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9680460591330E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.6708682383969E-60 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.4078894074911E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3070952011837E-53 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.4266453965983E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0541757315927E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1382313901636E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1487585719079E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9760191775021E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9763652159253E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039286403190E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5612729484806E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0519837615475E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0519844780487E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0156405886093E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.9442214514541E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9669947340179E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9669947340179E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9669947340179E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9676077055198E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9676077055198E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9676077055198E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3187,38 +3404,41 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.7562906465353E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7778934577979E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6774647482966E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7647149352706E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.5797960312356E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7823948951836E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.8663214769904E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.9017204712006E-05 +(PID.TID 0000.0001) %MON ke_max = 2.8689938876988E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.0032421195725E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3231,12 +3451,12 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.1600E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9250E+02 0.0000E+00 72 1 5.5000E-01 4.5000E-01 -time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.500000000000000E-01 4.500000000000000E-01 + EXTERNAL_FIELDS_LOAD, 18 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4500000000 0.5500000000 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3247,34 +3467,34 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0659996479366E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2349626072883E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0038387570707E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.0231970959808E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0086469691351E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2816189457853E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0038387570706E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.9941462838835E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.1279996999468E-52 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3847934663330E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.1893867161256E-52 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.4220575812659E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0537399405790E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1338458127052E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1465059313808E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9732495222893E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9739155102787E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039316979872E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611901897899E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0518452067742E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0518460933277E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0723404670942E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0487973632947E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9631775123583E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9631775123583E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9631775123583E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9637313445772E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9637313445772E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9637313445772E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3282,38 +3502,41 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.9639102574920E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7723504319199E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.5797960312356E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7823948951836E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0758854698848E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7812938195038E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.7835764894898E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.8439956921434E-05 +(PID.TID 0000.0001) %MON ke_max = 2.8052153723986E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.9825079562712E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3326,12 +3549,12 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.2800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9347E+02 0.0000E+00 72 1 5.5278E-01 4.4722E-01 -time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.527777777777778E-01 4.472222222222222E-01 + EXTERNAL_FIELDS_LOAD, 19 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4472222222 0.5527777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3342,34 +3565,34 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.6188123977673E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.7703868824921E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0987846284065E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8615448411237E-02 (PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.6332119763916E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3278065704318E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3658831518623E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.2937453583908E-47 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2696147304207E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.2079541855067E-48 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.3259195373849E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0235417335466E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1145774821638E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1288977304874E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9703080860679E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9712430787679E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039347556325E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611070131260E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0517061009539E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0517071367523E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1304078680850E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1045051020628E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9595179643451E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9595179643451E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9595179643451E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9600525774347E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9600525774347E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9600525774347E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3377,38 +3600,41 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.2489285179810E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7447075353010E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.0758854698848E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.7812938195038E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4677076186968E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7582206889724E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.6581504428181E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.6905519502267E-05 +(PID.TID 0000.0001) %MON ke_max = 2.6964536557553E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.8601235439376E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3421,139 +3647,152 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.57575995 -(PID.TID 0000.0001) System time: 0.060990999 -(PID.TID 0000.0001) Wall clock time: 3.09547186 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.34908300451934338 +(PID.TID 0000.0001) System time: 1.9618999212980270E-002 +(PID.TID 0000.0001) Wall clock time: 0.43835997581481934 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.30480201 -(PID.TID 0000.0001) System time: 0.0499920011 -(PID.TID 0000.0001) Wall clock time: 2.29106998 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.24502500053495169 +(PID.TID 0000.0001) System time: 1.9375999458134174E-002 +(PID.TID 0000.0001) Wall clock time: 0.33401012420654297 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.268959045 -(PID.TID 0000.0001) System time: 0.0109989978 -(PID.TID 0000.0001) Wall clock time: 0.794220924 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.10357399284839630 +(PID.TID 0000.0001) System time: 2.2899918258190155E-004 +(PID.TID 0000.0001) Wall clock time: 0.10386085510253906 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.050992012 -(PID.TID 0000.0001) System time: 0.00400000066 -(PID.TID 0000.0001) Wall clock time: 0.0623581409 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 9.6319913864135742E-003 +(PID.TID 0000.0001) System time: 1.4699995517730713E-004 +(PID.TID 0000.0001) Wall clock time: 9.7799301147460938E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.217967033 -(PID.TID 0000.0001) System time: 0.00699899718 -(PID.TID 0000.0001) Wall clock time: 0.731739998 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 -(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.215968966 -(PID.TID 0000.0001) System time: 0.00699899718 -(PID.TID 0000.0001) Wall clock time: 0.73090601 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 9.3915998935699463E-002 +(PID.TID 0000.0001) System time: 7.9998746514320374E-005 +(PID.TID 0000.0001) Wall clock time: 9.4053030014038086E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 9.3736082315444946E-002 +(PID.TID 0000.0001) System time: 7.8998506069183350E-005 +(PID.TID 0000.0001) Wall clock time: 9.3870878219604492E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 9.3403041362762451E-002 +(PID.TID 0000.0001) System time: 7.7998265624046326E-005 +(PID.TID 0000.0001) Wall clock time: 9.3528032302856445E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00200009346 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00338721275 -(PID.TID 0000.0001) No. starts: 40 -(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) User time: 1.0378658771514893E-003 +(PID.TID 0000.0001) System time: 8.0000609159469604E-006 +(PID.TID 0000.0001) Wall clock time: 1.0523796081542969E-003 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.007999897 -(PID.TID 0000.0001) System time: 0.000999998301 -(PID.TID 0000.0001) Wall clock time: 0.00637412071 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 9.2902779579162598E-004 +(PID.TID 0000.0001) System time: 2.1999701857566833E-005 +(PID.TID 0000.0001) Wall clock time: 9.5057487487792969E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.00400006771 -(PID.TID 0000.0001) System time: 0.000999998301 -(PID.TID 0000.0001) Wall clock time: 0.00472640991 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 5.8296322822570801E-004 +(PID.TID 0000.0001) System time: 2.1001324057579041E-005 +(PID.TID 0000.0001) Wall clock time: 6.1202049255371094E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0. -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.000789403915 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.7005205154418945E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.7046928405761719E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0279958248 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.0785474777 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.2097895145416260E-002 +(PID.TID 0000.0001) System time: 2.5000423192977905E-005 +(PID.TID 0000.0001) Wall clock time: 1.2127399444580078E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.00800001621 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.0119068623 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 6.2968432903289795E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 6.2959194183349609E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0199970007 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0192782879 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.8969088792800903E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9035339355468750E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0429930687 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.042532444 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 2.5791913270950317E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.5807619094848633E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00299990177 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00399923325 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.8009245395660400E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.8098354339599609E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.000999927521 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00208687782 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.1540353298187256E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1591911315917969E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.8804283142089844E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.8613548278808594E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00200009346 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00163388252 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.7595291137695312E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.7142295837402344E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0129971504 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0114252567 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 4.9450695514678955E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.9502849578857422E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0. -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.000794410706 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.9800662994384766E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9025802612304688E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0579918623 -(PID.TID 0000.0001) System time: 0.000998999923 -(PID.TID 0000.0001) Wall clock time: 0.0576858521 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.4776974916458130E-002 +(PID.TID 0000.0001) System time: 1.8000602722167969E-005 +(PID.TID 0000.0001) Wall clock time: 1.4808654785156250E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0239959955 -(PID.TID 0000.0001) System time: 0.0019999966 -(PID.TID 0000.0001) Wall clock time: 0.334569454 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 7.1380734443664551E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.1392059326171875E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00100004673 -(PID.TID 0000.0001) System time: 0.00200000033 -(PID.TID 0000.0001) Wall clock time: 0.143229485 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 7.1299076080322266E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 7.1620941162109375E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile communication statistics (PID.TID 0000.0001) // ====================================================== @@ -3569,8 +3808,9 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 6064 +(PID.TID 0000.0001) // No. barriers = 8766 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 6064 +(PID.TID 0000.0001) // Total barrier spins = 8766 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/vermix/results/output.gglLC.txt b/verification/vermix/results/output.gglLC.txt new file mode 100644 index 0000000000..7a63ad4c9c --- /dev/null +++ b/verification/vermix/results/output.gglLC.txt @@ -0,0 +1,3845 @@ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // MITgcm UV +(PID.TID 0000.0001) // ========= +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // execution environment starting up... +(PID.TID 0000.0001) +(PID.TID 0000.0001) // MITgcmUV version: checkpoint68m +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Wed Dec 28 17:00:16 EST 2022 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Execution Environment parameter file "eedata" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Example "eedata" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments +(PID.TID 0000.0001) ># nTx - No. threads per process in X +(PID.TID 0000.0001) ># nTy - No. threads per process in Y +(PID.TID 0000.0001) > &EEPARMS +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) ># Note: Some systems use & as the +(PID.TID 0000.0001) ># namelist terminator. Other systems +(PID.TID 0000.0001) ># use a / character (as shown here). +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Computational Grid Specification ( see files "SIZE.h" ) +(PID.TID 0000.0001) // ( and "eedata" ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) nPx = 1 ; /* No. processes in X */ +(PID.TID 0000.0001) nPy = 1 ; /* No. processes in Y */ +(PID.TID 0000.0001) nSx = 1 ; /* No. tiles in X per process */ +(PID.TID 0000.0001) nSy = 1 ; /* No. tiles in Y per process */ +(PID.TID 0000.0001) sNx = 1 ; /* Tile size in X */ +(PID.TID 0000.0001) sNy = 1 ; /* Tile size in Y */ +(PID.TID 0000.0001) OLx = 2 ; /* Tile overlap distance in X */ +(PID.TID 0000.0001) OLy = 2 ; /* Tile overlap distance in Y */ +(PID.TID 0000.0001) nTx = 1 ; /* No. threads in X per process */ +(PID.TID 0000.0001) nTy = 1 ; /* No. threads in Y per process */ +(PID.TID 0000.0001) Nr = 26 ; /* No. levels in the vertical */ +(PID.TID 0000.0001) Nx = 1 ; /* Total domain size in X ( = nPx*nSx*sNx ) */ +(PID.TID 0000.0001) Ny = 1 ; /* Total domain size in Y ( = nPy*nSy*sNy ) */ +(PID.TID 0000.0001) nTiles = 1 ; /* Total no. tiles per process ( = nSx*nSy ) */ +(PID.TID 0000.0001) nProcs = 1 ; /* Total no. processes ( = nPx*nPy ) */ +(PID.TID 0000.0001) nThreads = 1 ; /* Total no. threads per process ( = nTx*nTy ) */ +(PID.TID 0000.0001) usingMPI = F ; /* Flag used to control whether MPI is in use */ +(PID.TID 0000.0001) /* note: To execute a program with MPI calls */ +(PID.TID 0000.0001) /* it must be launched appropriately e.g */ +(PID.TID 0000.0001) /* "mpirun -np 64 ......" */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ +(PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ +(PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ +(PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Mapping of tiles to threads +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // -o- Thread 1, tiles ( 1: 1, 1: 1) +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile connectvity table +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put +(PID.TID 0000.0001) // bi = 000001, bj = 000001 +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># | Model parameters | +(PID.TID 0000.0001) ># ==================== +(PID.TID 0000.0001) ># +(PID.TID 0000.0001) ># Continuous equation parameters +(PID.TID 0000.0001) > &PARM01 +(PID.TID 0000.0001) > tRef=26*1., +(PID.TID 0000.0001) > sRef=26*35., +(PID.TID 0000.0001) > viscAh=0.E-2, +(PID.TID 0000.0001) > viscAz=1.E-4, +(PID.TID 0000.0001) > no_slip_sides=.TRUE., +(PID.TID 0000.0001) > no_slip_bottom=.TRUE., +(PID.TID 0000.0001) > diffKhT=0.E-2, +(PID.TID 0000.0001) > diffKzT=1.E-5, +(PID.TID 0000.0001) > diffKhS=0.E-2, +(PID.TID 0000.0001) > diffKzS=1.E-5, +(PID.TID 0000.0001) > f0=1.4e-4, +(PID.TID 0000.0001) > beta=0.E-11, +(PID.TID 0000.0001) > rigidLid=.FALSE., +(PID.TID 0000.0001) > implicitFreeSurface=.TRUE., +(PID.TID 0000.0001) >#ivdc_kappa=10., +(PID.TID 0000.0001) > implicitDiffusion=.TRUE., +(PID.TID 0000.0001) > implicitViscosity=.TRUE., +(PID.TID 0000.0001) > eosType='MDJWF', +(PID.TID 0000.0001) > hFacMin=0.05, +(PID.TID 0000.0001) > tempAdvection=.FALSE., +(PID.TID 0000.0001) > tempAdvScheme=33, +(PID.TID 0000.0001) > momAdvection=.FALSE., +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) >#debugLevel=1, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Elliptic solver parameters +(PID.TID 0000.0001) > &PARM02 +(PID.TID 0000.0001) > cg2dMaxIters=300, +(PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Time stepping parameters +(PID.TID 0000.0001) > &PARM03 +(PID.TID 0000.0001) > nIter0=0, +(PID.TID 0000.0001) > nTimeSteps=20, +(PID.TID 0000.0001) >#nTimeSteps=720, +(PID.TID 0000.0001) >#nTimeSteps=51840, +(PID.TID 0000.0001) > deltaT=1200., +(PID.TID 0000.0001) >#cAdjFreq=-1., +(PID.TID 0000.0001) > abEps=0.01, +(PID.TID 0000.0001) > pChkptFreq=62208000., +(PID.TID 0000.0001) > chkptFreq=0., +(PID.TID 0000.0001) > taveFreq=0., +(PID.TID 0000.0001) > dumpFreq=0., +(PID.TID 0000.0001) > monitorFreq=86400., +(PID.TID 0000.0001) > monitorFreq=1., +(PID.TID 0000.0001) > periodicExternalForcing=.TRUE., +(PID.TID 0000.0001) > externForcingPeriod=432000., +(PID.TID 0000.0001) > externForcingCycle=31104000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Gridding parameters +(PID.TID 0000.0001) > &PARM04 +(PID.TID 0000.0001) > usingCartesianGrid=.TRUE., +(PID.TID 0000.0001) > dXspacing=5000., +(PID.TID 0000.0001) > dYspacing=5000., +(PID.TID 0000.0001) > delZ=10., 10., 10., 10., 10., 11., 12., 14., 16., 18., 21., 24., 27., +(PID.TID 0000.0001) > 31., 35., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) ># Input datasets +(PID.TID 0000.0001) > &PARM05 +(PID.TID 0000.0001) > hydrogThetaFile='T_26.init', +(PID.TID 0000.0001) > surfQnetFile ='Qnet_72.forcing', +(PID.TID 0000.0001) > zonalWindFile ='taux_72.forcing', +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" +(PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.pkg" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Packages +(PID.TID 0000.0001) > &PACKAGES +(PID.TID 0000.0001) > useGGL90=.TRUE., +(PID.TID 0000.0001) > useDiagnostics=.TRUE., +(PID.TID 0000.0001) >#useMNC=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/opps compiled but not used ( useOPPS = F ) + pkg/pp81 compiled but not used ( usePP81 = F ) + pkg/my82 compiled but not used ( useMY82 = F ) + pkg/ggl90 compiled and used ( useGGL90 = T ) + pkg/kpp compiled but not used ( useKPP = F ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + pkg/mnc compiled but not used ( useMNC = F ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled but not used ( taveFreq > 0. = F ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS: opening data.ggl90 +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.ggl90" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) ># | Parameters for Gaspar et al. (1990)'s TKE vertical mixing scheme | +(PID.TID 0000.0001) ># ===================================================================== +(PID.TID 0000.0001) > &GGL90_PARM01 +(PID.TID 0000.0001) > GGL90writeState=.TRUE., +(PID.TID 0000.0001) >#GGL90diffTKEh=1.e3, +(PID.TID 0000.0001) >#GGL90alpha=30., +(PID.TID 0000.0001) >#GGL90TKEFile = 'TKE.init', +(PID.TID 0000.0001) > GGL90TKEmin = 1.e-7, +(PID.TID 0000.0001) > mxlMaxFlag=2, +(PID.TID 0000.0001) >#GGL90ck=0.15, +(PID.TID 0000.0001) >#GGL90ceps = 0.35, +(PID.TID 0000.0001) >#GGL90m2 = 5., +(PID.TID 0000.0001) > GGL90mixingLengthMin=3., +(PID.TID 0000.0001) > useLANGMUIR=.TRUE., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > &GGL90_PARM03 +(PID.TID 0000.0001) > LC_Gamma = 10., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM01 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM01 : OK +(PID.TID 0000.0001) GGL90_READPARMS ; starts to read GGL90_PARM03 +(PID.TID 0000.0001) GGL90_READPARMS: read GGL90_PARM03 : OK +(PID.TID 0000.0001) GGL90_READPARMS: finished reading data.ggl90 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // GGL90 configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) GGL90dumpFreq = /* GGL90 state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90taveFreq = /* GGL90 averaging interval ( s ). */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingMAPS = /* GGL90 IO flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90writeState = /* GGL90 IO flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ck = /* GGL90 viscosity parameter */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90ceps = /* GGL90 dissipation parameter */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90alpha = /* GGL90 TKE diffusivity parameter */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90m2 = /* GGL90 wind stress to vertical stress ratio */ +(PID.TID 0000.0001) 3.750000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEmin = /* GGL90 minimum kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEsurfMin = /* GGL90 minimum surface kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90TKEbottom = /* GGL90 bottom kinetic energy ( m^2/s^2 ) */ +(PID.TID 0000.0001) 1.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90viscMax = /* GGL90 upper limit for viscosity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffMax = /* GGL90 upper limit for diffusivity (m^2/s ) */ +(PID.TID 0000.0001) 1.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90diffTKEh = /* GGL90 horizontal diffusivity for TKE ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90mixingLengthMin = /* GGL90 minimum mixing length (m) */ +(PID.TID 0000.0001) 3.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlMaxFlag = /* Flag for limiting mixing-length method */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mxlSurfFlag = /* GGL90 flag for near surface mixing */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calcMeanVertShear = /* calc Mean of Vert.Shear (vs shear of Mean flow) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) GGL90: GGL90TKEFile = +(PID.TID 0000.0001) GGL90_dirichlet = /* GGL90 Boundary condition flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useLANGMUIR = /* turn on Langmuir circulation effect. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LC_Gamma = /* Mix-Length Amplification fac. from Langmuir Circ. (>=1) */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LC_num = /* Value for the Langmuir number (no units) */ +(PID.TID 0000.0001) 3.200000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LC_lambda = /* Vertical scale for Stokes velocity ( m ) */ +(PID.TID 0000.0001) 4.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of GGL90 config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Parameter file "data.diagnostics" +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) ># Diagnostic Package Choices +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds +(PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle +(PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST +(PID.TID 0000.0001) ># diag_mnc = .FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) ># fields(1:3,1) = 'ETAN ','ETANSQ ','DETADT2 ', +(PID.TID 0000.0001) ># fileName(1) = 'surfDiag', +(PID.TID 0000.0001) ># fileFlags(1) = 'D ', +(PID.TID 0000.0001) ># frequency(1) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,2) = 'UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) > 'THETA ','PHIHYD ','DFrI_TH ', +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', +(PID.TID 0000.0001) > frequency(2) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,3) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', +(PID.TID 0000.0001) > 'GGL90ArU','GGL90ArV','GGL90Prl', +(PID.TID 0000.0001) > fileName(3) = 'DiagMXL_3d', +(PID.TID 0000.0001) > frequency(3) = 432000., +(PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1,4) = 'MXLDEPTH', +(PID.TID 0000.0001) > fileName(4) = 'DiagMXL_2d', +(PID.TID 0000.0001) > frequency(4) = 432000., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n +(PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds +(PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds +(PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| +(PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAG_STATIS_PARMS +(PID.TID 0000.0001) > diagSt_mnc =.FALSE., +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) > stat_fields(1:6,1) = 'GGL90TKE','GGL90Lmx','GGL90Kr ', +(PID.TID 0000.0001) > 'GGL90ArU','GGL90ArV','GGL90Prl', +(PID.TID 0000.0001) > stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) > stat_freq(1) = -18000., +(PID.TID 0000.0001) > stat_phase(1) = 0., +(PID.TID 0000.0001) > / +(PID.TID 0000.0001) > +(PID.TID 0000.0001) +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start +(PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 300 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) Creating Output Stream: dynDiag +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: UVEL VVEL WVEL THETA PHIHYD DFrI_TH +(PID.TID 0000.0001) Creating Output Stream: DiagMXL_3d +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: GGL90TKE GGL90Lmx GGL90Kr GGL90ArU GGL90ArV GGL90Prl +(PID.TID 0000.0001) Creating Output Stream: DiagMXL_2d +(PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 +(PID.TID 0000.0001) Levels: will be set later +(PID.TID 0000.0001) Fields: MXLDEPTH +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: statistics diags. summary: +(PID.TID 0000.0001) Creating Stats. Output Stream: dynStDiag +(PID.TID 0000.0001) Output Frequency: -18000.000000 ; Phase: 0.000000 +(PID.TID 0000.0001) Regions: 0 +(PID.TID 0000.0001) Fields: GGL90TKE GGL90Lmx GGL90Kr GGL90ArU GGL90ArV GGL90Prl +(PID.TID 0000.0001) ----------------------------------------------------- +(PID.TID 0000.0001) +(PID.TID 0000.0001) SET_PARMS: done +(PID.TID 0000.0001) Enter INI_VERTICAL_GRID: setInterFDr= T ; setCenterDr= F +(PID.TID 0000.0001) %MON XC_max = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_mean = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON XC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON XG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DXV_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DXV_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YC_max = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON YC_min = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON YC_mean = 2.5000000000000E+03 +(PID.TID 0000.0001) %MON YC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON YG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYC_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYC_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYF_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYF_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYG_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON DYU_max = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_min = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_mean = 5.0000000000000E+03 +(PID.TID 0000.0001) %MON DYU_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RA_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RA_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAW_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAW_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAS_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON RAZ_max = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_min = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_mean = 2.5000000000000E+07 +(PID.TID 0000.0001) %MON RAZ_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_max = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_min = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_mean = 1.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleCS_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: Start to iterate (MaxIter= 260 ) until P(rho(P)) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converges ; critera (x 5) on Rho diff= 9.998000E-12 +(PID.TID 0000.0001) iter 1, RMS-diff= 4.522117070724E-02, Max-diff= 9.254578595119E-02 +(PID.TID 0000.0001) iter 2, RMS-diff= 5.501271219195E-05, Max-diff= 1.418256665602E-04 +(PID.TID 0000.0001) iter 3, RMS-diff= 4.946437427996E-08, Max-diff= 1.465555214963E-07 +(PID.TID 0000.0001) iter 4, RMS-diff= 3.498336160000E-11, Max-diff= 1.141415850725E-10 +(PID.TID 0000.0001) iter 5, RMS-diff= 7.723499726203E-14, Max-diff= 2.273736754432E-13 +(PID.TID 0000.0001) iter 6, RMS-diff= 0.000000000000E+00, Max-diff= 0.000000000000E+00 +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converged after 6 iters (nUnderCrit= 2 ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = -6.990000000000000E+02 +(PID.TID 0000.0001) // CMAX = -6.990000000000000E+02 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 +(PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacC at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacW at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field hFacS at iteration 0 +(PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 +(PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 +(PID.TID 0000.0001) // CINT = 0.000000000000000E+00 +(PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ +(PID.TID 0000.0001) // 0.0: . +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // END OF FIELD = +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) // GAD parameters : +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) tempAdvScheme = /* Temp. Horiz.Advection scheme selector */ +(PID.TID 0000.0001) 33 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempVertAdvScheme = /* Temp. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 33 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempMultiDimAdvec = /* use Muti-Dim Advec method for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempSOM_Advection = /* use 2nd Order Moment Advection for Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGt = /* apply Adams-Bashforth extrapolation on Gt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_T = /* apply Adams-Bashforth extrapolation on Temp */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvScheme = /* Salt. Horiz.advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltVertAdvScheme = /* Salt. Vert. Advection scheme selector */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltMultiDimAdvec = /* use Muti-Dim Advec method for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltSOM_Advection = /* use 2nd Order Moment Advection for Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforthGs = /* apply Adams-Bashforth extrapolation on Gs */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) AdamsBashforth_S = /* apply Adams-Bashforth extrapolation on Salt */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // =================================== +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 197 +(PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 30 UVEL +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 31 VVEL +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 32 WVEL +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 26 THETA +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 115 DFrI_TH +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 190 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 191 GGL90Lmx +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 195 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 193 GGL90ArU +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 194 GGL90ArV +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 192 GGL90Prl +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH +(PID.TID 0000.0001) space allocated for all diagnostics: 313 levels +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. +(PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. 26. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: DiagMXL_3d +(PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. +(PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. 26. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: DiagMXL_2d +(PID.TID 0000.0001) Levels: 1. +(PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_SET_REGIONS: define no region +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 190 GGL90TKE +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 191 GGL90Lmx +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 195 GGL90Kr +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 193 GGL90ArU +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 194 GGL90ArV +(PID.TID 0000.0001) SETDIAG: Allocate 26 Levels for Stats-Diag # 192 GGL90Prl +(PID.TID 0000.0001) space allocated for all stats-diags: 156 levels +(PID.TID 0000.0001) DIAGSTATS_SET_POINTERS: done +(PID.TID 0000.0001) ------------------------------------------------------------ +(PID.TID 0000.0001) DIAGSTATS_INI_IO: open file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %MON fCori_max = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCori_min = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCori_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCori_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriG_max = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_min = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON fCoriG_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON fCoriCos_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) INI_CG2D: CG2D normalisation factor = 1.4306151645207439E-03 +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model configuration +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // "Physical" paramters ( PARM01 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ +(PID.TID 0000.0001) 'OCEANIC' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingZCoords = /* use z (or z*) vertical coordinate */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ +(PID.TID 0000.0001) 26 @ 3.500000000000000E+01 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoRef = /* Density vertical profile from (Ref,sRef)( kg/m^3 ) */ +(PID.TID 0000.0001) 1.028068419190173E+03, /* K = 1 */ +(PID.TID 0000.0001) 1.028116131488749E+03, /* K = 2 */ +(PID.TID 0000.0001) 1.028163835195828E+03, /* K = 3 */ +(PID.TID 0000.0001) 1.028211530311184E+03, /* K = 4 */ +(PID.TID 0000.0001) 1.028259216834592E+03, /* K = 5 */ +(PID.TID 0000.0001) 1.028309278436838E+03, /* K = 6 */ +(PID.TID 0000.0001) 1.028364096941313E+03, /* K = 7 */ +(PID.TID 0000.0001) 1.028426052001649E+03, /* K = 8 */ +(PID.TID 0000.0001) 1.028497520564463E+03, /* K = 9 */ +(PID.TID 0000.0001) 1.028578494895163E+03, /* K = 10 */ +(PID.TID 0000.0001) 1.028671346632838E+03, /* K = 11 */ +(PID.TID 0000.0001) 1.028778442645921E+03, /* K = 12 */ +(PID.TID 0000.0001) 1.028899765528250E+03, /* K = 13 */ +(PID.TID 0000.0001) 1.029037672647326E+03, /* K = 14 */ +(PID.TID 0000.0001) 1.029194513502556E+03, /* K = 15 */ +(PID.TID 0000.0001) 1.029372628111340E+03, /* K = 16 */ +(PID.TID 0000.0001) 1.029562483768595E+03, /* K = 17 */ +(PID.TID 0000.0001) 1.029752201855284E+03, /* K = 18 */ +(PID.TID 0000.0001) 1.029941782357846E+03, /* K = 19 */ +(PID.TID 0000.0001) 1.030131225262835E+03, /* K = 20 */ +(PID.TID 0000.0001) 1.030320530556909E+03, /* K = 21 */ +(PID.TID 0000.0001) 1.030509698226839E+03, /* K = 22 */ +(PID.TID 0000.0001) 1.030698728259502E+03, /* K = 23 */ +(PID.TID 0000.0001) 1.030887620641886E+03, /* K = 24 */ +(PID.TID 0000.0001) 1.031076375361087E+03, /* K = 25 */ +(PID.TID 0000.0001) 1.031264992404311E+03 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ +(PID.TID 0000.0001) 26 @ 0.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sideDragFactor = /* side-drag scaling factor (non-dim) */ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) viscArNr = /* vertical profile of vertical viscosity ( m^2/s )*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E-04 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4T = /* Biharmonic diffusion of heat laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKhS = /* Laplacian diffusion of salt laterally ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffK4S = /* Biharmonic diffusion of salt laterally ( m^4/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrT = /* vertical profile of vertical diffusion of Temp ( m^2/s )*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E-05 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrNrS = /* vertical profile of vertical diffusion of Salt ( m^2/s )*/ +(PID.TID 0000.0001) 26 @ 1.000000000000000E-05 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79surf = /* Surface diffusion for Bryan and Lewis 79 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79deep = /* Deep diffusion for Bryan and Lewis 1979 ( m^2/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79scl = /* Depth scale for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) 2.000000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ +(PID.TID 0000.0001) -2.000000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ +(PID.TID 0000.0001) -8.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 1.000000000000000E-06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosType = /* Type of Equation of State */ +(PID.TID 0000.0001) 'MDJWF ' +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ +(PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ +(PID.TID 0000.0001) 9.810000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ +(PID.TID 0000.0001) 8.616400000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) omega = /* Angular velocity ( rad/s ) */ +(PID.TID 0000.0001) 7.292123516990375E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) f0 = /* Reference coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 1.400000000000000E-04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) sIceLoadFac = /* scale factor for sIceLoad (0-1) */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ +(PID.TID 0000.0001) 2.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ +(PID.TID 0000.0001) 3.500000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nonHydrostatic = /* Non-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vectorInvariantMomentum= /* Vector-Invariant Momentum on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momAdvection = /* Momentum advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCoriolis = /* Coriolis on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) readBinaryPrec = /* Precision used for reading binary files */ +(PID.TID 0000.0001) 64 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ +(PID.TID 0000.0001) 32 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) cg2dMaxIters = /* Upper limit on 2d con. grad iterations */ +(PID.TID 0000.0001) 300 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dMinItersNSA = /* Minimum number of iterations of 2d con. grad solver */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dTargetResWunit = /* CG2d target residual [W units] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useNSACGSolver = /* use not-self-adjoint CG solver */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ +(PID.TID 0000.0001) 26 @ 1.200000000000000E+03 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deltaTClock = /* Model clock timestep ( s ) */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cAdjFreq = /* Convective adjustment interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momForcingOutAB = /* =1: take Momentum Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tracForcingOutAB = /* =1: take T,S,pTr Forcing out of Adams-Bash. stepping */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) momDissip_In_AB = /* put Dissipation Tendency in Adams-Bash. stepping */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doAB_onGtGs = /* apply AB on Tendencies (rather than on T,S)*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ +(PID.TID 0000.0001) 2.400000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 6.220800000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_write_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpFreq = /* Model state write out interval ( s ). */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dumpInitAndLast= /* write out Initial & Last iter. model state */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mdsio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) snapshot_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorFreq = /* Monitor output interval ( s ). */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitorSelect = /* select group of variables to monitor */ +(PID.TID 0000.0001) 3 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_stdio = /* Model IO flag. */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) monitor_mnc = /* Model IO flag. */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingPeriod = /* forcing period (s) */ +(PID.TID 0000.0001) 4.320000000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) externForcingCycle = /* period of the cyle (s). */ +(PID.TID 0000.0001) 3.110400000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauThetaClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) tauSaltClimRelax = /* relaxation time scale (s) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) latBandClimRelax = /* max. Lat. where relaxation */ +(PID.TID 0000.0001) 1.500000000000000E+04 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // +(PID.TID 0000.0001) // Gridding paramters ( PARM04 in namelist ) +(PID.TID 0000.0001) // +(PID.TID 0000.0001) usingCartesianGrid = /* Cartesian coordinates flag ( True/False ) */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCylindricalGrid = /* Cylindrical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingSphericalPolarGrid = /* Spherical coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ +(PID.TID 0000.0001) 1.000200040008002E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rUnit2mass = /* convert r-units [m] to mass per unit area [kg/m2] */ +(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drC = /* C spacing ( units of r ) */ +(PID.TID 0000.0001) 5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) 4 @ 1.000000000000000E+01, /* K = 2: 5 */ +(PID.TID 0000.0001) 1.050000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.150000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 1.300000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.500000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.700000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 1.950000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 2.250000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 2.550000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 2.900000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.300000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 3.750000000000000E+01, /* K = 16 */ +(PID.TID 0000.0001) 10 @ 4.000000000000000E+01, /* K = 17: 26 */ +(PID.TID 0000.0001) 2.000000000000000E+01 /* K = 27 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ +(PID.TID 0000.0001) 5 @ 1.000000000000000E+01, /* K = 1: 5 */ +(PID.TID 0000.0001) 1.100000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) 1.200000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) 1.400000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) 1.600000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) 1.800000000000000E+01, /* K = 10 */ +(PID.TID 0000.0001) 2.100000000000000E+01, /* K = 11 */ +(PID.TID 0000.0001) 2.400000000000000E+01, /* K = 12 */ +(PID.TID 0000.0001) 2.700000000000000E+01, /* K = 13 */ +(PID.TID 0000.0001) 3.100000000000000E+01, /* K = 14 */ +(PID.TID 0000.0001) 3.500000000000000E+01, /* K = 15 */ +(PID.TID 0000.0001) 11 @ 4.000000000000000E+01 /* K = 16: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delX = /* U spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ +(PID.TID 0000.0001) 6.370000000000000E+06 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepAtmosphere = /* Deep/Shallow Atmosphere flag (True/False) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) xC = /* xC(:,1,:,1) : P-point X coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) yC = /* yC(1,:,1,:) : P-point Y coord ( deg. or m if cartesian) */ +(PID.TID 0000.0001) 2.500000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rcoord = /* P-point R coordinate ( units of r ) */ +(PID.TID 0000.0001) -5.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.500000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.500000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -3.500000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -4.500000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -5.550000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -6.700000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) -8.000000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) -9.500000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) -1.120000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -1.315000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.540000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -1.795000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -2.085000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -2.415000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -2.790000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -3.190000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -3.590000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -3.990000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -4.390000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -4.790000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -5.190000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -5.590000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -5.990000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -6.390000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -6.790000000000000E+02 /* K = 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rF = /* W-Interf. R coordinate ( units of r ) */ +(PID.TID 0000.0001) 0.000000000000000E+00, /* K = 1 */ +(PID.TID 0000.0001) -1.000000000000000E+01, /* K = 2 */ +(PID.TID 0000.0001) -2.000000000000000E+01, /* K = 3 */ +(PID.TID 0000.0001) -3.000000000000000E+01, /* K = 4 */ +(PID.TID 0000.0001) -4.000000000000000E+01, /* K = 5 */ +(PID.TID 0000.0001) -5.000000000000000E+01, /* K = 6 */ +(PID.TID 0000.0001) -6.100000000000000E+01, /* K = 7 */ +(PID.TID 0000.0001) -7.300000000000000E+01, /* K = 8 */ +(PID.TID 0000.0001) -8.700000000000000E+01, /* K = 9 */ +(PID.TID 0000.0001) -1.030000000000000E+02, /* K = 10 */ +(PID.TID 0000.0001) -1.210000000000000E+02, /* K = 11 */ +(PID.TID 0000.0001) -1.420000000000000E+02, /* K = 12 */ +(PID.TID 0000.0001) -1.660000000000000E+02, /* K = 13 */ +(PID.TID 0000.0001) -1.930000000000000E+02, /* K = 14 */ +(PID.TID 0000.0001) -2.240000000000000E+02, /* K = 15 */ +(PID.TID 0000.0001) -2.590000000000000E+02, /* K = 16 */ +(PID.TID 0000.0001) -2.990000000000000E+02, /* K = 17 */ +(PID.TID 0000.0001) -3.390000000000000E+02, /* K = 18 */ +(PID.TID 0000.0001) -3.790000000000000E+02, /* K = 19 */ +(PID.TID 0000.0001) -4.190000000000000E+02, /* K = 20 */ +(PID.TID 0000.0001) -4.590000000000000E+02, /* K = 21 */ +(PID.TID 0000.0001) -4.990000000000000E+02, /* K = 22 */ +(PID.TID 0000.0001) -5.390000000000000E+02, /* K = 23 */ +(PID.TID 0000.0001) -5.790000000000000E+02, /* K = 24 */ +(PID.TID 0000.0001) -6.190000000000000E+02, /* K = 25 */ +(PID.TID 0000.0001) -6.590000000000000E+02, /* K = 26 */ +(PID.TID 0000.0001) -6.990000000000000E+02 /* K = 27 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacC = /* deep-model grid factor @ cell-Center (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) deepFacF = /* deep-model grid factor @ W-Interface (-) */ +(PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phiEuler = /* Euler angle, rotation about original z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) thetaEuler = /* Euler angle, rotation about new x-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) psiEuler = /* Euler angle, rotation about new z-coordinate [rad] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxF = /* dxF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyF = /* dyF(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxG = /* dxG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyG = /* dyG(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxC = /* dxC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyC = /* dyC(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dxV = /* dxV(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(:,1,:,1) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dyU = /* dyU(1,:,1,:) ( units: m ) */ +(PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rA = /* rA (1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAw = /* rAw(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(:,1,:,1) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* I = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rAs = /* rAs(1,:,1,:) ( units: m^2 ) */ +(PID.TID 0000.0001) 2.500000000000000E+07 /* J = 1 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) globalArea = /* Integrated horizontal Area (m^2) */ +(PID.TID 0000.0001) 2.500000000000000E+07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End of Model config. summary +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) == Packages configuration : Check & print summary == +(PID.TID 0000.0001) +(PID.TID 0000.0001) GGL90_CHECK: #define ALLOW_GGL90 +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): +(PID.TID 0000.0001) // CONFIG_CHECK : Normal End +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: T_26.init +(PID.TID 0000.0001) Start initial hydrostatic pressure computation +(PID.TID 0000.0001) Iteration 1, RMS-difference = 9.472215381704E+01 +(PID.TID 0000.0001) Iteration 2, RMS-difference = 1.123277479688E-01 +(PID.TID 0000.0001) Iteration 3, RMS-difference = 9.839327222500E-05 +(PID.TID 0000.0001) Iteration 4, RMS-difference = 6.784304060020E-08 +(PID.TID 0000.0001) Iteration 5, RMS-difference = 3.857422717032E-11 +(PID.TID 0000.0001) Iteration 6, RMS-difference = 0.000000000000E+00 +(PID.TID 0000.0001) Initial hydrostatic pressure converged. +(PID.TID 0000.0001) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing +(PID.TID 0000.0001) write diagnostics summary to file ioUnit: 6 +Iter.Nb: 0 ; Time(s): 0.0000000000000E+00 +------------------------------------------------------------------------ +2D/3D diagnostics: Number of lists: 3 +------------------------------------------------------------------------ +listId= 1 ; file name: dynDiag + nFlds, nActive, freq & phase , nLev + 6 | 6 | 432000.000000 0.000000 | 26 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + levels: 26 + diag# | name | ipt | iMate | kLev| count | mate.C| + 30 |UVEL | 1 | 27 | 26 | 0 | 0 | + 31 |VVEL | 27 | 1 | 26 | 0 | 0 | + 32 |WVEL | 53 | 0 | 26 | 0 | + 26 |THETA | 79 | 0 | 26 | 0 | + 71 |PHIHYD | 105 | 0 | 26 | 0 | + 115 |DFrI_TH | 131 | 0 | 26 | 0 | +------------------------------------------------------------------------ +listId= 2 ; file name: DiagMXL_3d + nFlds, nActive, freq & phase , nLev + 6 | 6 | 432000.000000 0.000000 | 26 + levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 + levels: 26 + diag# | name | ipt | iMate | kLev| count | mate.C| + 190 |GGL90TKE| 157 | 0 | 26 | 0 | + 191 |GGL90Lmx| 183 | 0 | 26 | 0 | + 195 |GGL90Kr | 209 | 0 | 26 | 0 | + 193 |GGL90ArU| 235 | 0 | 26 | 0 | + 194 |GGL90ArV| 261 | 0 | 26 | 0 | + 192 |GGL90Prl| 287 | 0 | 26 | 0 | +------------------------------------------------------------------------ +listId= 3 ; file name: DiagMXL_2d + nFlds, nActive, freq & phase , nLev + 1 | 1 | 432000.000000 0.000000 | 1 + levels: 1 + diag# | name | ipt | iMate | kLev| count | mate.C| + 76 |MXLDEPTH| 313 | 0 | 1 | 0 | +------------------------------------------------------------------------ +Global & Regional Statistics diagnostics: Number of lists: 1 +------------------------------------------------------------------------ +listId= 1 ; file name: dynStDiag + nFlds, nActive, freq & phase | + 6 | 6 | -18000.000000 0.000000 | + Regions: 0 + diag# | name | ipt | iMate | Volume | mate-Vol. | + 190 |GGL90TKE| 1 | 0 | 0.00000E+00 | + 191 |GGL90Lmx| 27 | 0 | 0.00000E+00 | + 195 |GGL90Kr | 53 | 0 | 0.00000E+00 | + 193 |GGL90ArU| 79 | 0 | 0.00000E+00 | + 194 |GGL90ArV| 105 | 0 | 0.00000E+00 | + 192 |GGL90Prl| 131 | 0 | 0.00000E+00 | +------------------------------------------------------------------------ +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Model current state +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 0 +(PID.TID 0000.0001) %MON time_secondsf = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0744138634047E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038735983690E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5626911314985E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0543891254448E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0744138634047E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0744138634047E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0744138634047E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 72 0 72 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 72 1 (prev= 72 0 ) +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing +(PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 1 +(PID.TID 0000.0001) %MON time_secondsf = 1.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1988032063080E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 2.0193763024027E-94 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.7170816137476E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.4235511852020E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -9.2077879530233E-80 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4069584094162E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.1000279047624E-05 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.0470121597302E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0691433247596E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038766564501E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5626158963251E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0542600267558E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.4050980708329E-15 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0691433247596E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0691433247596E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0691433247596E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8771276951391E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.1767001825989E-04 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 7.7660139174460E-05 +(PID.TID 0000.0001) %MON ke_mean = 1.1111828861228E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 190 GGL90TKE vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 191 GGL90Lmx vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 195 GGL90Kr vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 193 GGL90ArU vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 194 GGL90ArV vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 192 GGL90Prl vol( 0 ): 1.698E+10 Parms: SM LR + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4972222222 0.5027777778 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 2 +(PID.TID 0000.0001) %MON time_secondsf = 2.4000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3078714183097E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6088906226356E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.3047857196073E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.7405537987462E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.3629058934717E-78 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.8393625251846E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4555948447280E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1684668783517E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038797145082E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5625402431786E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0541303936378E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2525109356657E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0638363719213E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8771276951391E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 8.1767001825989E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.5388914039434E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.3614470060443E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.1472005162355E-04 +(PID.TID 0000.0001) %MON ke_mean = 4.5031768098362E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4944444444 0.5055555556 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 3 +(PID.TID 0000.0001) %MON time_secondsf = 3.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2746759985819E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.3017243896385E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.6963090722323E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.8885416516331E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.0212514056874E-77 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.8008071250491E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.6568361238883E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.1384525035017E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0584847229860E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038827725433E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5624641720588E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0540002250209E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8797272619481E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0584847229860E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0584847229860E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0584847229860E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.5388914039434E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.3614470060443E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.8592223965965E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 4.3219371001177E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 6.9832045986579E-04 +(PID.TID 0000.0001) %MON ke_mean = 9.9924381285645E-06 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4916666667 0.5083333333 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 4 +(PID.TID 0000.0001) %MON time_secondsf = 4.8000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0717216150610E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.8395269439231E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.8641198643683E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.8348012517820E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.1235474897748E-77 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.7546723031955E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.0750445593525E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.2713344833380E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0530150980431E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038858305556E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623876829659E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0538694846794E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.5006931625999E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0530150980431E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0530150980431E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0530150980431E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.8592223965965E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 4.3219371001177E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.7721318761463E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6112135276692E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 1.2083568204274E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.7293435672777E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4888888889 0.5111111111 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 5 +(PID.TID 0000.0001) %MON time_secondsf = 6.0000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6705298452441E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1979981989354E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.7750818933941E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.5456773162470E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.9020370133841E-76 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.8030239047146E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -5.6702775157128E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.5171635469102E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0473002328659E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038888885449E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623107758998E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0537381200976E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1161321551553E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0473002328659E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0473002328659E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0473002328659E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.7721318761463E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 6.6112135276692E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1209271628586E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.1272573713151E-03 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 1.8138419927573E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.5969920611573E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4861111111 0.5138888889 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 6 +(PID.TID 0000.0001) %MON time_secondsf = 7.2000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0561746163678E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6576712099358E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4028773248011E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.0038469576629E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.3655816507409E-76 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.8994730094087E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -7.3965452909262E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.8220498922195E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0412053679710E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038919465112E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5622334508605E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0536060982695E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.3688460980037E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0412053679710E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0412053679710E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0412053679710E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1209271628586E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.1272573713151E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2134819079283E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1758735222581E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 2.4784868760563E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.5518778993900E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4833333333 0.5166666667 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 7 +(PID.TID 0000.0001) %MON time_secondsf = 8.4000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2284554426680E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0766732542855E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.7294327066928E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.2093118877973E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.0828446977885E-75 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0006938597916E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.2040209845320E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.1364311239591E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0346427339006E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038950044547E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5621557078480E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0534734316042E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.8686280044131E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0346427339006E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0346427339006E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0346427339006E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2134819079283E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1758735222581E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2548293062403E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4401665263500E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.1672536557453E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.5464392314732E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4805555556 0.5194444444 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 8 +(PID.TID 0000.0001) %MON time_secondsf = 9.6000000000000E+03 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.1863536344862E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4191761249906E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.7453742776110E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.1609252960115E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -9.5340063454021E-76 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0543427773093E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1040547734853E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.4017447773563E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0277239959383E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038980623752E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5620775468624E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0533402319521E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.4074499599359E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0277239959383E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0277239959383E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0277239959383E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2548293062403E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.4401665263500E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2447248722767E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6930422665542E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.8331008020862E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.5182580488363E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4777777778 0.5222222222 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 9 +(PID.TID 0000.0001) %MON time_secondsf = 1.0800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9075141525337E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.6133095042963E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.4502902599358E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8335942954880E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.6544110715984E-56 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.9561874027119E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.2853139277764E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.5072272036143E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0203573889444E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039011202727E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619989679035E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0532065299301E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.9453279002281E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0203573889444E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0203573889444E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0203573889444E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2447248722767E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.6930422665542E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1778033966081E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9094849766509E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 4.3692306572195E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.3312645824002E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4750000000 0.5250000000 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 10 +(PID.TID 0000.0001) %MON time_secondsf = 1.2000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.3475465257156E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0105916417922E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.8527416316224E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.1820540644709E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0324602124417E-40 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.4935427632734E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4589508033275E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0253266358756E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0120540139873E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039041781474E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619199709715E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0530722897541E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.4935947877629E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0120540139873E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0120540139873E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0120540139873E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1778033966081E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9094849766509E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0434111661718E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.0384502631856E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 4.5520714732408E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7290646737962E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4722222222 0.5277777778 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 11 +(PID.TID 0000.0001) %MON time_secondsf = 1.3200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.4625891017301E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.5432876169605E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.9700138208076E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1850738552434E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 5.3301841809799E-33 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.3217899437643E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6199573451390E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0433984808449E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0025122439965E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039072359991E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5618405560663E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0529376553544E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.0498444637840E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0025122439965E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0025122439965E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0025122439965E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0434111661718E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.0384502631856E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3102138441522E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9972295865034E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 4.0620855577778E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4681777303535E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 11 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4694444444 0.5305555556 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 12 +(PID.TID 0000.0001) %MON time_secondsf = 1.4400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.5941389760697E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9159772411288E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.8276166896976E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.2014064800082E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 3.9525367767161E-29 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8448889197273E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7636906444931E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0571187081481E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9942168674697E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039102938279E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5617607231879E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0528029828684E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.7123992800524E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9942168674697E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9942168674697E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9942168674697E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3102138441522E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9972295865034E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.2259335425673E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8827733407346E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.4135919595012E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.2671331640199E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 12 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4666666667 0.5333333333 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 13 +(PID.TID 0000.0001) %MON time_secondsf = 1.5600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.9465938307300E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2785873952417E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 3.4585473298102E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3742145996433E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.9691932248032E-26 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6241323346602E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8860068253083E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0921778882606E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9881132853540E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039133516337E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5616804723363E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0526677920534E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.2094180717530E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9881132853540E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9881132853540E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9881132853540E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 6.2259335425673E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8827733407346E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.6718251937520E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8297917603184E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0958310699123E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.4299393083564E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 13 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4638888889 0.5361111111 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 14 +(PID.TID 0000.0001) %MON time_secondsf = 1.6800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.4252209411570E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -7.3685820935261E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.9023369733173E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6965093566397E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1085250853505E-22 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.6435130592379E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9833805132213E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1299296348532E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9853181609196E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039164094166E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615998035115E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0525319689527E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.6795838879888E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9831604400226E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9831604400226E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9831604400226E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.6718251937520E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8297917603184E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4205302587768E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8344431342171E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0227273308927E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.7261114544466E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 14 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4611111111 0.5388888889 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 15 +(PID.TID 0000.0001) %MON time_secondsf = 1.8000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.3795386919894E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.2268007291707E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.0390954904947E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.3618067954032E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.2895193325050E-20 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.7421371310279E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0530064430862E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1586207617483E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9832477146527E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039194671766E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615187167136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0523955744207E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.1844123709964E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9786706857490E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9786706857490E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9786706857490E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.4205302587768E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8344431342171E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.2510892860775E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8581129114467E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0410222408193E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.0154987974914E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 15 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4583333333 0.5416666667 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 16 +(PID.TID 0000.0001) %MON time_secondsf = 1.9200000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4530744057198E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2539857373790E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -1.5877151582959E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 1.6230964511379E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.8464573208845E-16 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8211110402780E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0928802763867E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1739243456686E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9808889876556E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039225249136E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5614372119424E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0522586295660E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.6842648973173E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9744317604703E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9744317604703E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9744317604703E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.2510892860775E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8581129114467E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.0095657697096E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8770666496667E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0684038310493E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.2424817635284E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + Compute Stats, Diag. # 190 GGL90TKE vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 191 GGL90Lmx vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 195 GGL90Kr vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 193 GGL90ArU vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 194 GGL90ArV vol( 0 ): 1.698E+10 Parms: SM LR + Compute Stats, Diag. # 192 GGL90Prl vol( 0 ): 1.698E+10 Parms: SM LR + EXTERNAL_FIELDS_LOAD, 16 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4555555556 0.5444444444 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 17 +(PID.TID 0000.0001) %MON time_secondsf = 2.0400000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.4987335041106E-70 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8741146698994E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -3.4208363092499E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2803339121019E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.3996606353411E-12 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.8311732569143E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1018563002824E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1742059139131E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9782951045977E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039255826278E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5613552891981E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0521211331968E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.2145083692567E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9703969128532E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9703969128532E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9703969128532E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 3.0095657697096E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8770666496667E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.4978752077585E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8794815816594E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0665624451250E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.3805348347563E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 17 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4527777778 0.5472222222 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 18 +(PID.TID 0000.0001) %MON time_secondsf = 2.1600000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.3752705014655E-54 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4586499592691E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -5.2425639372506E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0655210379775E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.6907052870265E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.7495463875155E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0796803473133E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1590189761589E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9754836725705E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039286403190E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5612729484806E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0519830821772E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.7479927806697E-14 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9665502489488E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9665502489488E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9665502489488E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.4978752077585E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8794815816594E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9007599022458E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8598911330037E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 3.0196290147852E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.4164916528648E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 18 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4500000000 0.5500000000 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 19 +(PID.TID 0000.0001) %MON time_secondsf = 2.2800000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.0513354623447E-46 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.9940698122163E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -7.0003449504853E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.8652267056181E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.9942947515917E-10 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.5699935952869E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0269969898984E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1287096048796E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9724852096602E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039316979872E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611901897899E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0518444779299E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0282106619594E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9628656341932E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9628656341932E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9628656341932E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9007599022458E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8598911330037E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.1857675493190E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8167984628689E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 2.9247358527861E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.3468639895943E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= + EXTERNAL_FIELDS_LOAD, 19 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4472222222 0.5527777778 + cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Begin MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) %MON time_tsnumber = 20 +(PID.TID 0000.0001) %MON time_secondsf = 2.4000000000000E+04 +(PID.TID 0000.0001) %MON dynstat_eta_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 9.8980696070270E-39 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.4729851063083E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -8.6434791791338E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6275287035060E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.5865681534134E-09 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2974444379944E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9453308060565E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0842728095971E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9693479738154E+00 +(PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039347556325E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611070131260E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0517053270294E+00 +(PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0845098386299E-13 +(PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9593032639291E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9593032639291E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9593032639291E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 +(PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.1857675493190E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8167984628689E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3351642551399E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7513866651186E-02 +(PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON ke_max = 2.7863355301033E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.1755091866561E-05 +(PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 +(PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON vort_a_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_a_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON vort_p_mean = 1.4000000000000E-04 +(PID.TID 0000.0001) %MON vort_p_sd = 2.5724394843075E-12 +(PID.TID 0000.0001) %MON surfExpan_theta_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON surfExpan_salt_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // End MONITOR dynamic field statistics +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) DIAGSTATS_CLOSE_IO: close file: dynStDiag.0000000000.txt , unit= 9 +(PID.TID 0000.0001) %CHECKPOINT 20 ckptA +(PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 0.10894900001585484 +(PID.TID 0000.0001) System time: 2.1360998973250389E-002 +(PID.TID 0000.0001) Wall clock time: 0.13032388687133789 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 1.6710999887436628E-002 +(PID.TID 0000.0001) System time: 7.1710012853145599E-003 +(PID.TID 0000.0001) Wall clock time: 2.3897886276245117E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": +(PID.TID 0000.0001) User time: 9.2210000380873680E-002 +(PID.TID 0000.0001) System time: 1.4086998999118805E-002 +(PID.TID 0000.0001) Wall clock time: 0.10631299018859863 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 0.0000000000000000 +(PID.TID 0000.0001) System time: 5.5390000343322754E-003 +(PID.TID 0000.0001) Wall clock time: 5.5408477783203125E-003 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 9.2205999419093132E-002 +(PID.TID 0000.0001) System time: 8.5219983011484146E-003 +(PID.TID 0000.0001) Wall clock time: 0.10074496269226074 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 9.2043997719883919E-002 +(PID.TID 0000.0001) System time: 8.5009988397359848E-003 +(PID.TID 0000.0001) Wall clock time: 0.10056638717651367 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 9.1718988493084908E-002 +(PID.TID 0000.0001) System time: 8.4779970347881317E-003 +(PID.TID 0000.0001) Wall clock time: 0.10021924972534180 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.0179877281188965E-003 +(PID.TID 0000.0001) System time: 3.0099973082542419E-004 +(PID.TID 0000.0001) Wall clock time: 1.3253688812255859E-003 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 7.6599791646003723E-004 +(PID.TID 0000.0001) System time: 2.9100105166435242E-004 +(PID.TID 0000.0001) Wall clock time: 1.0557174682617188E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": +(PID.TID 0000.0001) User time: 4.3600425124168396E-004 +(PID.TID 0000.0001) System time: 2.6500225067138672E-004 +(PID.TID 0000.0001) Wall clock time: 7.0405006408691406E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6400963068008423E-004 +(PID.TID 0000.0001) System time: 2.5000423192977905E-005 +(PID.TID 0000.0001) Wall clock time: 1.8763542175292969E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.3145003467798233E-002 +(PID.TID 0000.0001) System time: 1.6180016100406647E-003 +(PID.TID 0000.0001) Wall clock time: 1.4767646789550781E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "GGL90_CALC [DO_OCEANIC_PHYS]": +(PID.TID 0000.0001) User time: 7.5150132179260254E-003 +(PID.TID 0000.0001) System time: 1.0750032961368561E-003 +(PID.TID 0000.0001) Wall clock time: 8.5947513580322266E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.9706986844539642E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.9749641418457031E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.9121996834874153E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.9150962829589844E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7819888889789581E-003 +(PID.TID 0000.0001) System time: 1.7100200057029724E-004 +(PID.TID 0000.0001) Wall clock time: 1.9664764404296875E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.1350084096193314E-003 +(PID.TID 0000.0001) System time: 5.2001327276229858E-005 +(PID.TID 0000.0001) Wall clock time: 1.1892318725585938E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.2879820317029953E-003 +(PID.TID 0000.0001) System time: 2.4049989879131317E-003 +(PID.TID 0000.0001) Wall clock time: 4.6975612640380859E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7299503087997437E-004 +(PID.TID 0000.0001) System time: 8.0019235610961914E-006 +(PID.TID 0000.0001) Wall clock time: 1.8167495727539062E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6469974070787430E-003 +(PID.TID 0000.0001) System time: 7.5001269578933716E-005 +(PID.TID 0000.0001) Wall clock time: 1.7261505126953125E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.7099827527999878E-004 +(PID.TID 0000.0001) System time: 7.9981982707977295E-006 +(PID.TID 0000.0001) Wall clock time: 1.7857551574707031E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.4897992834448814E-002 +(PID.TID 0000.0001) System time: 6.9599598646163940E-004 +(PID.TID 0000.0001) Wall clock time: 1.5619754791259766E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 2.5240052491426468E-003 +(PID.TID 0000.0001) System time: 2.1089985966682434E-003 +(PID.TID 0000.0001) Wall clock time: 4.6377182006835938E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 1.6899406909942627E-004 +(PID.TID 0000.0001) System time: 5.3899735212326050E-004 +(PID.TID 0000.0001) Wall clock time: 7.0762634277343750E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // Tile <-> Tile communication statistics +(PID.TID 0000.0001) // ====================================================== +(PID.TID 0000.0001) // o Tile number: 000001 +(PID.TID 0000.0001) // No. X exchanges = 0 +(PID.TID 0000.0001) // Max. X spins = 0 +(PID.TID 0000.0001) // Min. X spins = 1000000000 +(PID.TID 0000.0001) // Total. X spins = 0 +(PID.TID 0000.0001) // Avg. X spins = 0.00E+00 +(PID.TID 0000.0001) // No. Y exchanges = 0 +(PID.TID 0000.0001) // Max. Y spins = 0 +(PID.TID 0000.0001) // Min. Y spins = 1000000000 +(PID.TID 0000.0001) // Total. Y spins = 0 +(PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 +(PID.TID 0000.0001) // o Thread number: 000001 +(PID.TID 0000.0001) // No. barriers = 8996 +(PID.TID 0000.0001) // Max. barrier spins = 1 +(PID.TID 0000.0001) // Min. barrier spins = 1 +(PID.TID 0000.0001) // Total barrier spins = 8996 +(PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally diff --git a/verification/vermix/results/output.txt b/verification/vermix/results/output.txt index b278ce9aea..0951048101 100644 --- a/verification/vermix/results/output.txt +++ b/verification/vermix/results/output.txt @@ -5,10 +5,10 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // execution environment starting up... (PID.TID 0000.0001) -(PID.TID 0000.0001) // MITgcmUV version: checkpoint61x -(PID.TID 0000.0001) // Build user: dfer -(PID.TID 0000.0001) // Build host: faulks.csail.mit.edu -(PID.TID 0000.0001) // Build date: Thu Nov 12 11:40:54 EST 2009 +(PID.TID 0000.0001) // MITgcmUV version: checkpoint67y +(PID.TID 0000.0001) // Build user: jm_c +(PID.TID 0000.0001) // Build host: villon +(PID.TID 0000.0001) // Build date: Mon Jun 7 16:52:50 EDT 2021 (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Execution Environment parameter file "eedata" @@ -18,7 +18,7 @@ (PID.TID 0000.0001) ># nTx - No. threads per process in X (PID.TID 0000.0001) ># nTy - No. threads per process in Y (PID.TID 0000.0001) > &EEPARMS -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) ># Note: Some systems use & as the (PID.TID 0000.0001) ># namelist terminator. Other systems (PID.TID 0000.0001) ># use a / character (as shown here). @@ -47,8 +47,11 @@ (PID.TID 0000.0001) /* note: To execute a program with MPI calls */ (PID.TID 0000.0001) /* it must be launched appropriately e.g */ (PID.TID 0000.0001) /* "mpirun -np 64 ......" */ -(PID.TID 0000.0001) useCoupler= F ;/* Flag used to control communications with */ +(PID.TID 0000.0001) useCoupler= F ; /* Flag used to control communications with */ (PID.TID 0000.0001) /* other model components, through a coupler */ +(PID.TID 0000.0001) useNest2W_parent = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) useNest2W_child = F ;/* Control 2-W Nesting comm */ +(PID.TID 0000.0001) debugMode = F ; /* print debug msg. (sequence of S/R calls) */ (PID.TID 0000.0001) printMapIncludesZeros= F ; /* print zeros in Std.Output maps */ (PID.TID 0000.0001) maxLengthPrt1D= 65 /* maxLength of 1D array printed to StdOut */ (PID.TID 0000.0001) @@ -60,20 +63,20 @@ (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile connectvity table (PID.TID 0000.0001) // ====================================================== -(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000001) -(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // Tile number: 000001 (process no. = 000000) +(PID.TID 0000.0001) // WEST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // EAST: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // SOUTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 -(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000001, Comm = put +(PID.TID 0000.0001) // NORTH: Tile = 000001, Process = 000000, Comm = put (PID.TID 0000.0001) // bi = 000001, bj = 000001 (PID.TID 0000.0001) -(PID.TID 0000.0001) DEBUG_MSG: ENTERED S/R THE_MODEL_MAIN -(PID.TID 0000.0001) DEBUG_MSG: CALLING S/R INITIALISE_FIXED +(PID.TID 0000.0001) INI_PARMS: opening model parameter file "data" +(PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Model parameter file "data" +(PID.TID 0000.0001) // Parameter file "data" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># ==================== (PID.TID 0000.0001) ># | Model parameters | @@ -83,15 +86,12 @@ (PID.TID 0000.0001) > &PARM01 (PID.TID 0000.0001) > tRef=26*1., (PID.TID 0000.0001) > sRef=26*35., -(PID.TID 0000.0001) > viscA4=0.0E4, (PID.TID 0000.0001) > viscAh=0.E-2, (PID.TID 0000.0001) > viscAz=1.E-4, (PID.TID 0000.0001) > no_slip_sides=.TRUE., (PID.TID 0000.0001) > no_slip_bottom=.TRUE., -(PID.TID 0000.0001) > diffK4T=0.E4, (PID.TID 0000.0001) > diffKhT=0.E-2, (PID.TID 0000.0001) > diffKzT=1.E-5, -(PID.TID 0000.0001) > diffK4S=0.E4, (PID.TID 0000.0001) > diffKhS=0.E-2, (PID.TID 0000.0001) > diffKzS=1.E-5, (PID.TID 0000.0001) > f0=1.4e-4, @@ -103,22 +103,22 @@ (PID.TID 0000.0001) > implicitViscosity=.TRUE., (PID.TID 0000.0001) > eosType='MDJWF', (PID.TID 0000.0001) > hFacMin=0.05, -(PID.TID 0000.0001) > readBinaryPrec=64, -(PID.TID 0000.0001) > debugLevel=1, (PID.TID 0000.0001) > tempAdvection=.FALSE., (PID.TID 0000.0001) > tempAdvScheme=33, (PID.TID 0000.0001) > momAdvection=.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > readBinaryPrec=64, +(PID.TID 0000.0001) >#debugLevel=1, +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Elliptic solver parameters (PID.TID 0000.0001) > &PARM02 (PID.TID 0000.0001) > cg2dMaxIters=300, (PID.TID 0000.0001) > cg2dTargetResidual=1.E-13, -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Time stepping parameters (PID.TID 0000.0001) > &PARM03 -(PID.TID 0000.0001) > niter0=0, +(PID.TID 0000.0001) > nIter0=0, (PID.TID 0000.0001) > nTimeSteps=20, (PID.TID 0000.0001) >#nTimeSteps=720, (PID.TID 0000.0001) >#nTimeSteps=51840, @@ -134,35 +134,35 @@ (PID.TID 0000.0001) > periodicExternalForcing=.TRUE., (PID.TID 0000.0001) > externForcingPeriod=432000., (PID.TID 0000.0001) > externForcingCycle=31104000., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Gridding parameters (PID.TID 0000.0001) > &PARM04 (PID.TID 0000.0001) > usingCartesianGrid=.TRUE., -(PID.TID 0000.0001) > usingSphericalPolarGrid=.FALSE., -(PID.TID 0000.0001) > dXspacing=5000, +(PID.TID 0000.0001) > dXspacing=5000., (PID.TID 0000.0001) > dYspacing=5000., -(PID.TID 0000.0001) > delZ=10, 10, 10, 10, 10, 11, 12, 14, 16, 18, 21, 24, 27, -(PID.TID 0000.0001) > 31, 35, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > delZ=10., 10., 10., 10., 10., 11., 12., 14., 16., 18., 21., 24., 27., +(PID.TID 0000.0001) > 31., 35., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., 40., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) ># Input datasets (PID.TID 0000.0001) > &PARM05 (PID.TID 0000.0001) > hydrogThetaFile='T_26.init', -(PID.TID 0000.0001) > surfQfile='Qnet_72.forcing', -(PID.TID 0000.0001) > zonalWindFile='taux_72.forcing', -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > surfQnetFile ='Qnet_72.forcing', +(PID.TID 0000.0001) > zonalWindFile ='taux_72.forcing', +(PID.TID 0000.0001) > / (PID.TID 0000.0001) -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM01 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM01 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM02 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM02 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM03 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM03 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM04 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM04 : OK -(PID.TID 0000.0001) S/R INI_PARMS ; starts to read PARM05 -(PID.TID 0000.0001) S/R INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM01 +(PID.TID 0000.0001) INI_PARMS ; read PARM01 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM02 +(PID.TID 0000.0001) INI_PARMS ; read PARM02 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM03 +(PID.TID 0000.0001) INI_PARMS ; read PARM03 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM04 +(PID.TID 0000.0001) INI_PARMS ; read PARM04 : OK +(PID.TID 0000.0001) INI_PARMS ; starts to read PARM05 +(PID.TID 0000.0001) INI_PARMS ; read PARM05 : OK +(PID.TID 0000.0001) INI_PARMS: finished reading file "data" (PID.TID 0000.0001) PACKAGES_BOOT: opening data.pkg (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.pkg (PID.TID 0000.0001) // ======================================================= @@ -173,26 +173,49 @@ (PID.TID 0000.0001) > useKPP=.TRUE., (PID.TID 0000.0001) > useDiagnostics=.TRUE., (PID.TID 0000.0001) > useMNC=.TRUE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) PACKAGES_BOOT: finished reading data.pkg +(PID.TID 0000.0001) PACKAGES_BOOT: On/Off package Summary + -------- pkgs with a standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/opps compiled but not used ( useOPPS = F ) + pkg/pp81 compiled but not used ( usePP81 = F ) + pkg/my82 compiled but not used ( useMY82 = F ) + pkg/ggl90 compiled but not used ( useGGL90 = F ) + pkg/kpp compiled and used ( useKPP = T ) + pkg/diagnostics compiled and used ( useDiagnostics = T ) + pkg/mnc compiled and used ( useMNC = T ) + -------- pkgs without standard "usePKG" On/Off switch in "data.pkg": -------- + pkg/generic_advdiff compiled and used ( useGAD = T ) + pkg/mom_common compiled and used ( momStepping = T ) + pkg/mom_vecinv compiled but not used ( +vectorInvariantMomentum = F ) + pkg/mom_fluxform compiled and used ( & not vectorInvariantMom = T ) + pkg/monitor compiled and used ( monitorFreq > 0. = T ) + pkg/timeave compiled but not used ( taveFreq > 0. = F ) + pkg/debug compiled but not used ( debugMode = F ) + pkg/rw compiled and used + pkg/mdsio compiled and used +(PID.TID 0000.0001) PACKAGES_BOOT: End of package Summary +(PID.TID 0000.0001) (PID.TID 0000.0001) MNC_READPARMS: opening file 'data.mnc' (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.mnc (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.mnc" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Example "data.mnc" file +(PID.TID 0000.0001) ># Lines beginning "#" are comments (PID.TID 0000.0001) > &MNC_01 (PID.TID 0000.0001) ># mnc_echo_gvtypes=.FALSE., (PID.TID 0000.0001) ># mnc_use_indir=.FALSE., -(PID.TID 0000.0001) > mnc_use_outdir=.FALSE., +(PID.TID 0000.0001) > mnc_use_outdir=.TRUE., +(PID.TID 0000.0001) > mnc_outdir_str='mnc_test_', (PID.TID 0000.0001) > monitor_mnc=.FALSE., (PID.TID 0000.0001) > pickup_read_mnc=.FALSE., (PID.TID 0000.0001) > pickup_write_mnc=.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) (PID.TID 0000.0001) MNC_READPARMS: finished reading data.mnc -(PID.TID 0000.0001) KPP_INIT: opening data.kpp +(PID.TID 0000.0001) KPP_READPARMS: opening data.kpp (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.kpp (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.kpp" @@ -204,92 +227,127 @@ (PID.TID 0000.0001) > KPPwriteState=.TRUE., (PID.TID 0000.0001) > minKPPhbl = 10., (PID.TID 0000.0001) > Ricr = 0.45, -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) -(PID.TID 0000.0001) KPP_INIT: finished reading data.kpp +(PID.TID 0000.0001) KPP_READPARMS ; starts to read KPP_PARM01 +(PID.TID 0000.0001) KPP_READPARMS ; read KPP_PARM01 : OK +(PID.TID 0000.0001) KPP_READPARMS: finished reading data.kpp (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: opening data.diagnostics (PID.TID 0000.0001) OPEN_COPY_DATA_FILE: opening file data.diagnostics (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Parameter file "data.diagnostics" (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) ># Diagnostic Package Choices -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) ># for each output-stream: -(PID.TID 0000.0001) ># filename(n) : prefix of the output file name (only 8.c long) for outp.stream n +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># dumpAtLast (logical): always write output at the end of simulation (default=F) +(PID.TID 0000.0001) ># diag_mnc (logical): write to NetCDF files (default=useMNC) +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># fileName(n) : prefix of the output file name (max 80c long) for outp.stream n (PID.TID 0000.0001) ># frequency(n):< 0 : write snap-shot output every |frequency| seconds (PID.TID 0000.0001) ># > 0 : write time-average output every frequency seconds (PID.TID 0000.0001) ># timePhase(n) : write at time = timePhase + multiple of |frequency| +(PID.TID 0000.0001) ># averagingFreq : frequency (in s) for periodic averaging interval +(PID.TID 0000.0001) ># averagingPhase : phase (in s) for periodic averaging interval +(PID.TID 0000.0001) ># repeatCycle : number of averaging intervals in 1 cycle (PID.TID 0000.0001) ># levels(:,n) : list of levels to write to file (Notes: declared as REAL) -(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list -(PID.TID 0000.0001) ># fields(:,n) : list of diagnostics fields (8.c) (see "available_diagnostics.log" -(PID.TID 0000.0001) ># file for the list of all available diag. in this particular config) -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) > &diagnostics_list +(PID.TID 0000.0001) ># when this entry is missing, select all common levels of this list +(PID.TID 0000.0001) ># fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) ># missing_value(n) : missing value for real-type fields in output file "n" +(PID.TID 0000.0001) ># fileFlags(n) : specific code (8c string) for output file "n" +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) > &DIAGNOSTICS_LIST (PID.TID 0000.0001) ># diag_mnc = .FALSE., -(PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-- +(PID.TID 0000.0001) ># fields(1:3,1) = 'ETAN ','ETANSQ ','DETADT2 ', +(PID.TID 0000.0001) ># fileName(1) = 'surfDiag', +(PID.TID 0000.0001) ># fileFlags(1) = 'D ', (PID.TID 0000.0001) ># frequency(1) = 432000., -(PID.TID 0000.0001) ># filename(1) = 'surfDiag', -(PID.TID 0000.0001) ># fields(1,1) = 'ETAN ','ETANSQ ','DETADT2 ', -(PID.TID 0000.0001) ># fileflags(1)= 'D ', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:6,2) = 'UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) > 'THETA ','PHIHYD ','DFrI_TH ', +(PID.TID 0000.0001) > fileName(2) = 'dynDiag', (PID.TID 0000.0001) > frequency(2) = 432000., -(PID.TID 0000.0001) > filename(2) = 'dynDiag', -(PID.TID 0000.0001) > fields(1,2) = 'UVEL ','VVEL ','WVEL ', -(PID.TID 0000.0001) > 'THETA ','PHIHYD ','DFrI_TH ', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:3,3) = 'KPPviscA','KPPdiffT','KPPghatK', +(PID.TID 0000.0001) > fileName(3) = 'DiagMXL_3d', (PID.TID 0000.0001) > frequency(3) = 432000., -(PID.TID 0000.0001) > filename(3) = 'DiagMXL_3d', -(PID.TID 0000.0001) > fields(1,3) = 'KPPviscA','KPPdiffT','KPPghat ', (PID.TID 0000.0001) > +(PID.TID 0000.0001) > fields(1:2,4) = 'MXLDEPTH','KPPhbl ', +(PID.TID 0000.0001) > fileName(4) = 'DiagMXL_2d', (PID.TID 0000.0001) > frequency(4) = 432000., -(PID.TID 0000.0001) > filename(4) = 'DiagMXL_2d', -(PID.TID 0000.0001) > fields(1,4) = 'MXLDEPTH','KPPhbl ', -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > +(PID.TID 0000.0001) >#-------------------- (PID.TID 0000.0001) ># Parameter for Diagnostics of per level statistics: -(PID.TID 0000.0001) >#----------------- -(PID.TID 0000.0001) ># for each output-stream: -(PID.TID 0000.0001) ># stat_fname(n) : prefix of the output file name (only 8.c long) for outp.stream n +(PID.TID 0000.0001) >#-------------------- +(PID.TID 0000.0001) ># diagSt_mnc (logical): write stat-diags to NetCDF files (default=diag_mnc) +(PID.TID 0000.0001) ># diagSt_regMaskFile : file containing the region-mask to read-in +(PID.TID 0000.0001) ># nSetRegMskFile : number of region-mask sets within the region-mask file +(PID.TID 0000.0001) ># set_regMask(i) : region-mask set-index that identifies the region "i" +(PID.TID 0000.0001) ># val_regMask(i) : region "i" identifier value in the region mask +(PID.TID 0000.0001) >#--for each output-stream: +(PID.TID 0000.0001) ># stat_fName(n) : prefix of the output file name (max 80c long) for outp.stream n (PID.TID 0000.0001) ># stat_freq(n):< 0 : write snap-shot output every |stat_freq| seconds (PID.TID 0000.0001) ># > 0 : write time-average output every stat_freq seconds (PID.TID 0000.0001) ># stat_phase(n) : write at time = stat_phase + multiple of |stat_freq| (PID.TID 0000.0001) ># stat_region(:,n) : list of "regions" (default: 1 region only=global) -(PID.TID 0000.0001) ># stat_fields(:,n) : list of diagnostics fields (8.c) (see "available_diagnostics.log" -(PID.TID 0000.0001) ># file for the list of all available diag. in this particular config) -(PID.TID 0000.0001) >#----------------- +(PID.TID 0000.0001) ># stat_fields(:,n) : list of selected diagnostics fields (8.c) in outp.stream n +(PID.TID 0000.0001) ># (see "available_diagnostics.log" file for the full list of diags) +(PID.TID 0000.0001) >#-------------------- (PID.TID 0000.0001) > &DIAG_STATIS_PARMS -(PID.TID 0000.0001) >#stat_fields(1,1)= 'ETAN ','UVEL ','VVEL ','WVEL ', -(PID.TID 0000.0001) ># 'THETA ','PHIHYD ','KPPdbsfc','KPPhbl ','KPPRi ', -(PID.TID 0000.0001) ># stat_fname(1)= 'dynStDiag', -(PID.TID 0000.0001) ># stat_freq(1)= -86400., -(PID.TID 0000.0001) ># stat_phase(1)= 0., -(PID.TID 0000.0001) ># diagSt_mnc =.FALSE., -(PID.TID 0000.0001) > & +(PID.TID 0000.0001) ># diagSt_mnc =.FALSE., +(PID.TID 0000.0001) ># -- +(PID.TID 0000.0001) >#stat_fields(1:9,1) = 'ETAN ','UVEL ','VVEL ','WVEL ', +(PID.TID 0000.0001) ># 'THETA ','PHIHYD ','KPPdbsfc','KPPhbl ','KPPRi ', +(PID.TID 0000.0001) ># stat_fName(1) = 'dynStDiag', +(PID.TID 0000.0001) ># stat_freq(1) = -86400., +(PID.TID 0000.0001) ># stat_phase(1) = 0., +(PID.TID 0000.0001) > / (PID.TID 0000.0001) > (PID.TID 0000.0001) (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": start (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "diagnostics_list": OK (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": start (PID.TID 0000.0001) S/R DIAGNOSTICS_READPARMS, read namelist "DIAG_STATIS_PARMS": OK +(PID.TID 0000.0001) DIAGNOSTICS_READPARMS: global parameter summary: +(PID.TID 0000.0001) dumpAtLast = /* always write time-ave diags at the end */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diag_mnc = /* write NetCDF output files */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) useMissingValue = /* put MissingValue where mask = 0 */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_maxIters = /* max number of iters in diag_cg2d */ +(PID.TID 0000.0001) 300 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_resTarget = /* residual target for diag_cg2d */ +(PID.TID 0000.0001) 1.000000000000000E-13 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diagCG_pcOffDFac = /* preconditioner off-diagonal factor */ +(PID.TID 0000.0001) 9.611687812379854E-01 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) DIAGNOSTICS_READPARMS: active diagnostics summary: (PID.TID 0000.0001) ----------------------------------------------------- (PID.TID 0000.0001) Creating Output Stream: dynDiag (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later (PID.TID 0000.0001) Fields: UVEL VVEL WVEL THETA PHIHYD DFrI_TH (PID.TID 0000.0001) Creating Output Stream: DiagMXL_3d (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later -(PID.TID 0000.0001) Fields: KPPviscA KPPdiffT KPPghat +(PID.TID 0000.0001) Fields: KPPviscA KPPdiffT KPPghatK (PID.TID 0000.0001) Creating Output Stream: DiagMXL_2d (PID.TID 0000.0001) Output Frequency: 432000.000000 ; Phase: 0.000000 (PID.TID 0000.0001) Averaging Freq.: 432000.000000 , Phase: 0.000000 , Cycle: 1 -(PID.TID 0000.0001) missing value: 1.234567000000E+05 ; for integers: 123456789 +(PID.TID 0000.0001) missing value: -9.990000000000E+02 (PID.TID 0000.0001) Levels: will be set later (PID.TID 0000.0001) Fields: MXLDEPTH KPPhbl (PID.TID 0000.0001) ----------------------------------------------------- @@ -370,15 +428,25 @@ (PID.TID 0000.0001) %MON AngleSN_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON AngleSN_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) at iteration 1 +(PID.TID 0000.0001) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: Start to iterate (MaxIter= 260 ) until P(rho(P)) +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converges ; critera (x 5) on Rho diff= 9.998000E-12 +(PID.TID 0000.0001) iter 1, RMS-diff= 4.522117070724E-02, Max-diff= 9.254578595119E-02 +(PID.TID 0000.0001) iter 2, RMS-diff= 5.501271219195E-05, Max-diff= 1.418256665602E-04 +(PID.TID 0000.0001) iter 3, RMS-diff= 4.946437427996E-08, Max-diff= 1.465555214963E-07 +(PID.TID 0000.0001) iter 4, RMS-diff= 3.498336160000E-11, Max-diff= 1.141415850725E-10 +(PID.TID 0000.0001) iter 5, RMS-diff= 7.723499726203E-14, Max-diff= 2.273736754432E-13 +(PID.TID 0000.0001) iter 6, RMS-diff= 0.000000000000E+00, Max-diff= 0.000000000000E+00 +(PID.TID 0000.0001) FIND_HYD_PRESS_1D: converged after 6 iters (nUnderCrit= 2 ) +(PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Field Model R_low (ini_masks_etc) (PID.TID 0000.0001) // CMIN = -6.990000000000000E+02 (PID.TID 0000.0001) // CMAX = -6.990000000000000E+02 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -386,14 +454,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) at iteration 1 +(PID.TID 0000.0001) // Field Model Ro_surf (ini_masks_etc) (PID.TID 0000.0001) // CMIN = 1.000000000000000E+32 (PID.TID 0000.0001) // CMAX = -1.000000000000000E+32 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -401,14 +469,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacC at iteration 1 +(PID.TID 0000.0001) // Field hFacC at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -416,14 +484,14 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacW at iteration 1 +(PID.TID 0000.0001) // Field hFacW at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= @@ -431,20 +499,21 @@ (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) (PID.TID 0000.0001) // ======================================================= -(PID.TID 0000.0001) // Field hFacS at iteration 1 +(PID.TID 0000.0001) // Field hFacS at iteration 0 (PID.TID 0000.0001) // CMIN = 1.000000000000000E+00 (PID.TID 0000.0001) // CMAX = 1.000000000000000E+00 (PID.TID 0000.0001) // CINT = 0.000000000000000E+00 (PID.TID 0000.0001) // SYMBOLS (CMIN->CMAX): -abcdefghijklmnopqrstuvwxyz+ (PID.TID 0000.0001) // 0.0: . -(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) -(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) +(PID.TID 0000.0001) // RANGE I (Lo:Hi:Step):( -1: 3: 1) +(PID.TID 0000.0001) // RANGE J (Lo:Hi:Step):( 3: -1: -1) (PID.TID 0000.0001) // RANGE K (Lo:Hi:Step):( 1: 1: 1) (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // END OF FIELD = (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_INIT_FIXED: GAD_OlMinSize= 1 0 1 (PID.TID 0000.0001) (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) // GAD parameters : @@ -488,22 +557,22 @@ (PID.TID 0000.0001) // =================================== (PID.TID 0000.0001) ------------------------------------------------------------ (PID.TID 0000.0001) DIAGNOSTICS_SET_LEVELS: done -(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 184 +(PID.TID 0000.0001) Total Nb of available Diagnostics: ndiagt= 207 (PID.TID 0000.0001) write list of available Diagnostics to file: available_diagnostics.log (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 30 UVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 31 VVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 32 WVEL (PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 26 THETA -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 67 PHIHYD -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 101 DFrI_TH -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 171 KPPviscA -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 173 KPPdiffT -(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 174 KPPghat -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 71 MXLDEPTH -(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 175 KPPhbl +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 71 PHIHYD +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 115 DFrI_TH +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 190 KPPviscA +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 192 KPPdiffT +(PID.TID 0000.0001) SETDIAG: Allocate 26 x 1 Levels for Diagnostic # 193 KPPghatK +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 76 MXLDEPTH +(PID.TID 0000.0001) SETDIAG: Allocate 1 x 1 Levels for Diagnostic # 194 KPPhbl (PID.TID 0000.0001) space allocated for all diagnostics: 236 levels -(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UU MR , mate: 31 -(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VV MR , mate: 30 +(PID.TID 0000.0001) set mate pointer for diag # 30 UVEL , Parms: UUR MR , mate: 31 +(PID.TID 0000.0001) set mate pointer for diag # 31 VVEL , Parms: VVR MR , mate: 30 (PID.TID 0000.0001) DIAGNOSTICS_SET_POINTERS: Set levels for Outp.Stream: dynDiag (PID.TID 0000.0001) Levels: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. (PID.TID 0000.0001) Levels: 21. 22. 23. 24. 25. 26. @@ -542,10 +611,10 @@ (PID.TID 0000.0001) buoyancyRelation = /* Type of relation to get Buoyancy */ (PID.TID 0000.0001) 'OCEANIC' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ +(PID.TID 0000.0001) fluidIsAir = /* fluid major constituent is Air */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) fluidIsWater= /* fluid major constituent is Water */ +(PID.TID 0000.0001) fluidIsWater = /* fluid major constituent is Water */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) usingPCoords = /* use p (or p*) vertical coordinate */ @@ -557,52 +626,28 @@ (PID.TID 0000.0001) tRef = /* Reference temperature profile ( oC or K ) */ (PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sRef = /* Reference salinity profile ( psu ) */ +(PID.TID 0000.0001) sRef = /* Reference salinity profile ( g/kg ) */ (PID.TID 0000.0001) 26 @ 3.500000000000000E+01 /* K = 1: 26 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAh = /* Lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhMax = /* Maximum lateral eddy viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscAhGrid = /* Grid dependent lateral eddy viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useFullLeith = /* Use Full Form of Leith Viscosity on/off flag*/ +(PID.TID 0000.0001) useStrainTensionVisc= /* Use StrainTension Form of Viscous Operator */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useStrainTensionVisc = /* Use StrainTension Form of Viscous Operator on/off flag*/ +(PID.TID 0000.0001) useVariableVisc = /* Use variable horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAreaViscLength = /* Use area for visc length instead of geom. mean*/ +(PID.TID 0000.0001) useHarmonicVisc = /* Use harmonic horizontal viscosity */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leith = /* Leith harmonic visc. factor (on grad(vort),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2leithD = /* Leith harmonic viscosity factor (on grad(div),non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC2smag = /* Smagorinsky harmonic viscosity factor (non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Max = /* Maximum biharmonic viscosity ( m^2/s ) */ -(PID.TID 0000.0001) 1.000000000000000E+21 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscA4Grid = /* Grid dependent biharmonic viscosity ( non-dim. ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useBiharmonicVisc= /* Use biharmonic horiz. viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leith = /* Leith biharm viscosity factor (on grad(vort), non-dim.) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useSmag3D = /* Use isotropic 3-D Smagorinsky viscosity */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4leithD = /* Leith biharm viscosity factor (on grad(div), non-dim.) */ +(PID.TID 0000.0001) viscAh = /* Lateral harmonic viscosity ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) viscC4Smag = /* Smagorinsky biharm viscosity factor (non-dim) */ +(PID.TID 0000.0001) viscA4 = /* Lateral biharmonic viscosity ( m^4/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) no_slip_sides = /* Viscous BCs: No-slip sides */ @@ -617,12 +662,18 @@ (PID.TID 0000.0001) no_slip_bottom = /* Viscous BCs: No-slip bottom */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) bottomVisc_pCell = /* Partial-cell in bottom Visc. BC */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragLinear = /* linear bottom-drag coefficient ( m/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) bottomDragQuadratic = /* quadratic bottom-drag coefficient (-) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectBotDragQuadr = /* select quadratic bottom drag options */ +(PID.TID 0000.0001) -1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) diffKhT = /* Laplacian diffusion of heat laterally ( m^2/s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; @@ -653,13 +704,13 @@ (PID.TID 0000.0001) diffKrBL79Ho = /* Turning depth for Bryan and Lewis 1979 ( m ) */ (PID.TID 0000.0001) -2.000000000000000E+03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s ) */ +(PID.TID 0000.0001) ivdc_kappa = /* Implicit Vertical Diffusivity for Convection ( m^2/s) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hMixCriteria= /* Criteria for mixed-layer diagnostic */ (PID.TID 0000.0001) -8.000000000000000E-01 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) dRhoSmall= /* Parameter for mixed-layer diagnostic */ +(PID.TID 0000.0001) dRhoSmall = /* Parameter for mixed-layer diagnostic */ (PID.TID 0000.0001) 1.000000000000000E-06 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hMixSmooth= /* Smoothing parameter for mixed-layer diagnostic */ @@ -668,16 +719,23 @@ (PID.TID 0000.0001) eosType = /* Type of Equation of State */ (PID.TID 0000.0001) 'MDJWF ' (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tAlpha = /* Linear EOS thermal expansion coefficient ( 1/oC ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) eosRefP0 = /* Reference atmospheric pressure for EOS ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) sBeta = /* Linear EOS haline contraction coefficient ( 1/psu ) */ -(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) selectP_inEOS_Zc = /* select pressure to use in EOS (0,1,2,3) */ +(PID.TID 0000.0001) 2 +(PID.TID 0000.0001) 0= -g*rhoConst*z ; 1= pRef (from tRef,sRef); 2= Hyd P ; 3= Hyd+NH P (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhonil = /* Reference density ( kg/m^3 ) */ -(PID.TID 0000.0001) 9.998000000000000E+02 +(PID.TID 0000.0001) surf_pRef = /* Surface reference pressure ( Pa ) */ +(PID.TID 0000.0001) 1.013250000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) HeatCapacity_Cp = /* Specific heat capacity ( J/kg/K ) */ +(PID.TID 0000.0001) 3.994000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) celsius2K = /* 0 degree Celsius converted to Kelvin ( K ) */ +(PID.TID 0000.0001) 2.731500000000000E+02 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConst = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConst = /* Reference density (Boussinesq) ( kg/m^3 ) */ (PID.TID 0000.0001) 9.998000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rhoFacC = /* normalized Reference density @ cell-Center (-) */ @@ -686,7 +744,7 @@ (PID.TID 0000.0001) rhoFacF = /* normalized Reference density @ W-Interface (-) */ (PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rhoConstFresh = /* Reference density ( kg/m^3 ) */ +(PID.TID 0000.0001) rhoConstFresh = /* Fresh-water reference density ( kg/m^3 ) */ (PID.TID 0000.0001) 9.998000000000000E+02 (PID.TID 0000.0001) ; (PID.TID 0000.0001) gravity = /* Gravitational acceleration ( m/s^2 ) */ @@ -695,6 +753,12 @@ (PID.TID 0000.0001) gBaro = /* Barotropic gravity ( m/s^2 ) */ (PID.TID 0000.0001) 9.810000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacC = /* gravity factor (vs surf.) @ cell-Center (-) */ +(PID.TID 0000.0001) 26 @ 1.000000000000000E+00 /* K = 1: 26 */ +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) gravFacF = /* gravity factor (vs surf.) @ W-Interface (-) */ +(PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ +(PID.TID 0000.0001) ; (PID.TID 0000.0001) rotationPeriod = /* Rotation Period ( s ) */ (PID.TID 0000.0001) 8.616400000000000E+04 (PID.TID 0000.0001) ; @@ -707,44 +771,53 @@ (PID.TID 0000.0001) beta = /* Beta ( 1/(m.s) ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ -(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) fPrime = /* Second coriolis parameter ( 1/s ) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitFreeSurface = /* Implicit free surface on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) rigidLid = /* Rigid lid on/off flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) freeSurfFac = /* Implicit free surface factor */ +(PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) implicSurfPress = /* Surface Pressure implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicDiv2Dflow = /* Barot. Flow Div. implicit factor (0-1)*/ +(PID.TID 0000.0001) implicDiv2DFlow = /* Barot. Flow Div. implicit factor (0-1)*/ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ +(PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) uniformFreeSurfLev = /* free-surface level-index is uniform */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMin = /* minimum partial cell factor (hFac) */ +(PID.TID 0000.0001) 5.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hFacMinDr = /* minimum partial cell thickness ( m) */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) exactConserv = /* Exact Volume Conservation on/off flag*/ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) uniformLin_PhiSurf = /* use uniform Bo_surf on/off flag*/ -(PID.TID 0000.0001) T +(PID.TID 0000.0001) linFSConserveTr = /* Tracer correction for Lin Free Surface on/off flag*/ +(PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ +(PID.TID 0000.0001) nonlinFreeSurf = /* Non-linear Free Surf. options (-1,0,1,2,3)*/ (PID.TID 0000.0001) 0 -(PID.TID 0000.0001) ; (PID.TID 0000.0001) -1,0= Off ; 1,2,3= On, 2=+rescale gU,gV, 3=+update cg2d solv. +(PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacInf = /* lower threshold for hFac (nonlinFreeSurf only)*/ (PID.TID 0000.0001) 2.000000000000000E-01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) hFacSup = /* upper threshold for hFac (nonlinFreeSurf only)*/ (PID.TID 0000.0001) 2.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; > 0 uses r*) */ -(PID.TID 0000.0001) 0 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) select_rStar = /* r* Vertical coord. options (=0 r coord.; >0 uses r*)*/ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; (PID.TID 0000.0001) useRealFreshWaterFlux = /* Real Fresh Water Flux on/off flag*/ @@ -753,10 +826,19 @@ (PID.TID 0000.0001) temp_EvPrRn = /* Temp. of Evap/Prec/R (UNSET=use local T)(oC)*/ (PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(ppt)*/ +(PID.TID 0000.0001) salt_EvPrRn = /* Salin. of Evap/Prec/R (UNSET=use local S)(g/kg)*/ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(ppt)*/ +(PID.TID 0000.0001) selectAddFluid = /* option for mass source/sink of fluid (=0: off) */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) temp_addMass = /* Temp. of addMass array (UNSET=use local T)(oC)*/ +(PID.TID 0000.0001) 1.234567000000000E+05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) salt_addMass = /* Salin. of addMass array (UNSET=use local S)(g/kg)*/ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) convertFW2Salt = /* convert F.W. Flux to Salt Flux (-1=use local S)(g/kg)*/ (PID.TID 0000.0001) 3.500000000000000E+01 (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3Dsolver = /* use 3-D pressure solver on/off flag */ @@ -768,9 +850,18 @@ (PID.TID 0000.0001) nh_Am2 = /* Non-Hydrostatic terms scaling factor */ (PID.TID 0000.0001) 1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) implicitNHPress = /* Non-Hyd Pressure implicit factor (0-1)*/ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectNHfreeSurf = /* Non-Hyd (free-)Surface option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) quasiHydrostatic = /* Quasi-Hydrostatic on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; +(PID.TID 0000.0001) calc_wVelocity = /* vertical velocity calculation on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momStepping = /* Momentum equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -783,26 +874,25 @@ (PID.TID 0000.0001) momViscosity = /* Momentum viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) momImplVertAdv =/* Momentum implicit vert. advection on/off*/ +(PID.TID 0000.0001) momImplVertAdv= /* Momentum implicit vert. advection on/off*/ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitViscosity = /* Implicit viscosity on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectImplicitDrag= /* Implicit bot Drag options (0,1,2)*/ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) 0= Expl. ; 1= Impl. on provis. Vel ; 2= Fully Impl (with surf.P) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) metricTerms = /* metric-Terms on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useNHMTerms = /* Non-Hydrostatic Metric-Terms on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useConstantF = /* use Constant f0 Coriolis flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useBetaPlaneF = /* use Beta-Plane Coriolis flag */ -(PID.TID 0000.0001) T -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useSphereF = /* use Spherical Coriolis flag */ -(PID.TID 0000.0001) F +(PID.TID 0000.0001) selectCoriMap = /* Coriolis Map options (0,1,2,3)*/ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) 0= f-Plane ; 1= Beta-Plane ; 2= Spherical ; 3= read from file (PID.TID 0000.0001) ; (PID.TID 0000.0001) use3dCoriolis = /* 3-D Coriolis on/off flag */ (PID.TID 0000.0001) F @@ -813,83 +903,73 @@ (PID.TID 0000.0001) useCDscheme = /* CD scheme on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartWetPoints= /* Coriolis WetPoints method flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useJamartMomAdv= /* V.I. Non-linear terms Jamart flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) useAbsVorticity= /* Work with f+zeta in Coriolis */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectVortScheme= /* Scheme selector for Vorticity-Term */ -(PID.TID 0000.0001) 123456789 -(PID.TID 0000.0001) = 0 : enstrophy (Shallow-Water Eq.) conserving scheme by Sadourny, JAS 75 -(PID.TID 0000.0001) = 1 : same as 0 with modified hFac -(PID.TID 0000.0001) = 2 : energy conserving scheme (used by Sadourny in JAS 75 paper) -(PID.TID 0000.0001) = 3 : energy (general) and enstrophy (2D, nonDiv.) conserving scheme -(PID.TID 0000.0001) from Sadourny (Burridge & Haseler, ECMWF Rep.4, 1977) -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindVorticity= /* Upwind bias vorticity flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) highOrderVorticity= /* High order interp. of vort. flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) upwindShear= /* Upwind vertical Shear advection flag */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) selectKEscheme= /* Kinetic Energy scheme selector */ +(PID.TID 0000.0001) selectCoriScheme= /* Scheme selector for Coriolis-Term */ (PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : original discretization (simple averaging, no hFac) +(PID.TID 0000.0001) = 1 : Wet-point averaging (Jamar & Ozer 1986) +(PID.TID 0000.0001) = 2 : energy conserving scheme (no hFac weight) +(PID.TID 0000.0001) = 3 : energy conserving scheme using Wet-point averaging (PID.TID 0000.0001) ; (PID.TID 0000.0001) momForcing = /* Momentum forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) momTidalForcing = /* Momentum Tidal forcing on/off flag */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; (PID.TID 0000.0001) momPressureForcing = /* Momentum pressure term on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) implicitIntGravWave= /* Implicit Internal Gravity Wave flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) staggerTimeStep = /* Stagger time stepping on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) doResetHFactors = /* reset thickness factors @ each time-step */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ +(PID.TID 0000.0001) multiDimAdvection = /* enable/disable Multi-Dim Advection */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) useMultiDimAdvec = /* Multi-Dim Advection is/is-not used */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) implicitDiffusion =/* Implicit Diffusion on/off flag */ +(PID.TID 0000.0001) implicitDiffusion = /* Implicit Diffusion on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempStepping = /* Temperature equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tempAdvection= /* Temperature advection on/off flag */ +(PID.TID 0000.0001) tempAdvection = /* Temperature advection on/off flag */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) tempImplVertAdv =/* Temp. implicit vert. advection on/off */ +(PID.TID 0000.0001) tempImplVertAdv = /* Temp. implicit vert. advection on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) tempForcing = /* Temperature forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doThetaClimRelax = /* apply SST relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) tempIsActiveTr = /* Temp. is a dynamically Active Tracer */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltStepping = /* Salinity equation on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) saltAdvection= /* Salinity advection on/off flag */ +(PID.TID 0000.0001) saltAdvection = /* Salinity advection on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) saltImplVertAdv =/* Sali. implicit vert. advection on/off */ +(PID.TID 0000.0001) saltImplVertAdv = /* Sali. implicit vert. advection on/off */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) saltForcing = /* Salinity forcing on/off flag */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; +(PID.TID 0000.0001) doSaltClimRelax = /* apply SSS relaxation on/off flag */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) saltIsActiveTr = /* Salt is a dynamically Active Tracer */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -899,23 +979,33 @@ (PID.TID 0000.0001) writeBinaryPrec = /* Precision used for writing binary files */ (PID.TID 0000.0001) 32 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) rwSuffixType = /* select format of mds file suffix */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) = 0 : myIter (I10.10) ; = 1 : 100*myTime (100th sec) ; +(PID.TID 0000.0001) = 2 : myTime (seconds); = 3 : myTime/360 (10th of hr); +(PID.TID 0000.0001) = 4 : myTime/3600 (hours) +(PID.TID 0000.0001) ; (PID.TID 0000.0001) globalFiles = /* write "global" (=not per tile) files */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; (PID.TID 0000.0001) useSingleCpuIO = /* only master MPI process does I/O */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debugMode = /* Debug Mode on/off flag */ +(PID.TID 0000.0001) useSingleCpuInput = /* only master process reads input */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debLevA = /* 1rst level of debugging */ -(PID.TID 0000.0001) 1 -(PID.TID 0000.0001) ; -(PID.TID 0000.0001) debLevB = /* 2nd level of debugging */ +(PID.TID 0000.0001) /* debLev[*] : level of debug & auxiliary message printing */ +(PID.TID 0000.0001) debLevZero = 0 ; /* level of disabled aux. msg printing */ +(PID.TID 0000.0001) debLevA = 1 ; /* level of minimum aux. msg printing */ +(PID.TID 0000.0001) debLevB = 2 ; /* level of low aux. print (report read-file opening)*/ +(PID.TID 0000.0001) debLevC = 3 ; /* level of moderate debug prt (most pkgs debug msg) */ +(PID.TID 0000.0001) debLevD = 4 ; /* level of enhanced debug prt (add DEBUG_STATS prt) */ +(PID.TID 0000.0001) debLevE = 5 ; /* level of extensive debug printing */ +(PID.TID 0000.0001) debugLevel = /* select debug printing level */ (PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) debugLevel = /* select debugging level */ -(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) plotLevel = /* select PLOT_FIELD printing level */ +(PID.TID 0000.0001) 2 (PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Elliptic solver(s) paramters ( PARM02 in namelist ) @@ -926,6 +1016,9 @@ (PID.TID 0000.0001) cg2dChkResFreq = /* 2d con. grad convergence test frequency */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) cg2dUseMinResSol= /* use cg2d last-iter(=0) / min-resid.(=1) solution */ +(PID.TID 0000.0001) 1 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) cg2dTargetResidual = /* 2d con. grad target residual */ (PID.TID 0000.0001) 1.000000000000000E-13 (PID.TID 0000.0001) ; @@ -935,13 +1028,19 @@ (PID.TID 0000.0001) cg2dPreCondFreq = /* Freq. for updating cg2d preconditioner */ (PID.TID 0000.0001) 1 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) useSRCGSolver = /* use single reduction CG solver(s) */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) printResidualFreq = /* Freq. for printing CG residual */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) // (PID.TID 0000.0001) // Time stepping paramters ( PARM03 in namelist ) (PID.TID 0000.0001) // -(PID.TID 0000.0001) deltaTmom = /* Momentum equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTMom = /* Momentum equation timestep ( s ) */ (PID.TID 0000.0001) 1.200000000000000E+03 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) deltaTfreesurf = /* FreeSurface equation timestep ( s ) */ +(PID.TID 0000.0001) deltaTFreeSurf = /* FreeSurface equation timestep ( s ) */ (PID.TID 0000.0001) 1.200000000000000E+03 (PID.TID 0000.0001) ; (PID.TID 0000.0001) dTtracerLev = /* Tracer equation timestep ( s ) */ @@ -968,28 +1067,34 @@ (PID.TID 0000.0001) abEps = /* Adams-Bashforth-2 stabilizing weight */ (PID.TID 0000.0001) 1.000000000000000E-02 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) applyExchUV_early = /* Apply EXCH to U,V earlier in time-step */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; (PID.TID 0000.0001) pickupStrictlyMatch= /* stop if pickup do not strictly match */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ +(PID.TID 0000.0001) nIter0 = /* Run starting timestep number */ (PID.TID 0000.0001) 0 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) nTimeSteps = /* Number of timesteps */ +(PID.TID 0000.0001) 20 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) nEndIter = /* Run ending timestep number */ (PID.TID 0000.0001) 20 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) baseTime = /* Model base time ( s ). */ +(PID.TID 0000.0001) baseTime = /* Model base time ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) startTime = /* Run start time ( s ). */ +(PID.TID 0000.0001) startTime = /* Run start time ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) endTime = /* Integration ending time ( s ). */ +(PID.TID 0000.0001) endTime = /* Integration ending time ( s ) */ (PID.TID 0000.0001) 2.400000000000000E+04 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/checkpoint file interval ( s ). */ +(PID.TID 0000.0001) pChkPtFreq = /* Permanent restart/pickup file interval ( s ) */ (PID.TID 0000.0001) 6.220800000000000E+07 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/checkpoint file interval ( s ). */ +(PID.TID 0000.0001) chkPtFreq = /* Rolling restart/pickup file interval ( s ) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) pickup_write_mdsio = /* Model IO flag. */ @@ -1004,9 +1109,6 @@ (PID.TID 0000.0001) pickup_read_mnc = /* Model IO flag. */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) pickup_write_immed = /* Model IO flag. */ -(PID.TID 0000.0001) F -(PID.TID 0000.0001) ; (PID.TID 0000.0001) writePickupAtEnd = /* Model IO flag. */ (PID.TID 0000.0001) T (PID.TID 0000.0001) ; @@ -1064,8 +1166,23 @@ (PID.TID 0000.0001) usingCurvilinearGrid = /* Curvilinear coordinates flag ( True/False ) */ (PID.TID 0000.0001) F (PID.TID 0000.0001) ; -(PID.TID 0000.0001) Ro_SeaLevel = /* r(1) ( units of r == m ) */ -(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) useMin4hFacEdges = /* set hFacW,S as minimum of adjacent hFacC factor */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interViscAr_pCell = /* account for partial-cell in interior vert. viscosity */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) interDiffKr_pCell = /* account for partial-cell in interior vert. diffusion */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) pCellMix_select = /* option to enhance mixing near surface & bottom */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) selectSigmaCoord = /* Hybrid-Sigma Vert. Coordinate option */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) rSigmaBnd = /* r/sigma transition ( units of r == m ) */ +(PID.TID 0000.0001) 1.234567000000000E+05 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rkSign = /* index orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 @@ -1073,6 +1190,12 @@ (PID.TID 0000.0001) gravitySign = /* gravity orientation relative to vertical coordinate */ (PID.TID 0000.0001) -1.000000000000000E+00 (PID.TID 0000.0001) ; +(PID.TID 0000.0001) seaLev_Z = /* reference height of sea-level [m] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) top_Pres = /* reference pressure at the top [Pa] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; (PID.TID 0000.0001) mass2rUnit = /* convert mass per unit area [kg/m2] to r-units [m] */ (PID.TID 0000.0001) 1.000200040008002E-03 (PID.TID 0000.0001) ; @@ -1093,7 +1216,8 @@ (PID.TID 0000.0001) 2.900000000000000E+01, /* K = 14 */ (PID.TID 0000.0001) 3.300000000000000E+01, /* K = 15 */ (PID.TID 0000.0001) 3.750000000000000E+01, /* K = 16 */ -(PID.TID 0000.0001) 10 @ 4.000000000000000E+01 /* K = 17: 26 */ +(PID.TID 0000.0001) 10 @ 4.000000000000000E+01, /* K = 17: 26 */ +(PID.TID 0000.0001) 2.000000000000000E+01 /* K = 27 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) drF = /* W spacing ( units of r ) */ (PID.TID 0000.0001) 5 @ 1.000000000000000E+01, /* K = 1: 5 */ @@ -1115,10 +1239,10 @@ (PID.TID 0000.0001) delY = /* V spacing ( m - cartesian, degrees - spherical ) */ (PID.TID 0000.0001) 5.000000000000000E+03 /* J = 1 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) xgOrigin = /* X-axis origin of West edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; -(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg.) */ +(PID.TID 0000.0001) ygOrigin = /* Y-axis origin of South edge (cartesian: m, lat-lon: deg) */ (PID.TID 0000.0001) 0.000000000000000E+00 (PID.TID 0000.0001) ; (PID.TID 0000.0001) rSphere = /* Radius ( ignored - cartesian, m - spherical ) */ @@ -1202,7 +1326,7 @@ (PID.TID 0000.0001) wUnit2rVel = /* convert units: wSpeed -> rVel (=1 if z-coord)*/ (PID.TID 0000.0001) 27 @ 1.000000000000000E+00 /* K = 1: 27 */ (PID.TID 0000.0001) ; -(PID.TID 0000.0001) dBdrRef = /* Vertical gradient of reference boyancy [(m/s/r)^2)] */ +(PID.TID 0000.0001) dBdrRef = /* Vertical grad. of reference buoyancy [(m/s/r)^2] */ (PID.TID 0000.0001) 26 @ 0.000000000000000E+00 /* K = 1: 26 */ (PID.TID 0000.0001) ; (PID.TID 0000.0001) rotateGrid = /* use rotated grid ( True/False ) */ @@ -1292,9 +1416,140 @@ (PID.TID 0000.0001) (PID.TID 0000.0001) == Packages configuration : Check & print summary == (PID.TID 0000.0001) -(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) KPP_CHECK: #define ALLOW_KPP +(PID.TID 0000.0001) kpp_freq = /* frequency of KPP calculation */ +(PID.TID 0000.0001) 1.200000000000000E+03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPP_ghatUseTotalDiffus= /* non-local term fct of total diffus */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPuseDoubleDiff = /* include double diffusive contrib */ +(PID.TID 0000.0001) F +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) LimitHblStable = /* limits depth of hbl if stable cond.*/ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) minKPPhbl = /* minimum KPPhbl value [m] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsln = /* constant [-] */ +(PID.TID 0000.0001) 9.999999999999999E-21 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) phepsi = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-10 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) epsilon = /* constant [-] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) vonk = /* Von Karmans constant [-] */ +(PID.TID 0000.0001) 4.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dB_dz = /* maximum N^2 in mixed layer [s^-2] */ +(PID.TID 0000.0001) 5.200000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc1 = /* scalar constant [-] */ +(PID.TID 0000.0001) 5.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conam = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.257000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concm = /* scalar constant [-] */ +(PID.TID 0000.0001) 8.380000000000001E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc2 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conas = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.886000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concs = /* scalar constant [-] */ +(PID.TID 0000.0001) 9.895999999999999E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) conc3 = /* scalar constant [-] */ +(PID.TID 0000.0001) 1.600000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetam = /* scalar constant [-] */ +(PID.TID 0000.0001) -2.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zetas = /* scalar constant [-] */ +(PID.TID 0000.0001) -1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Ricr = /* critical bulk Richardson Number [-] */ +(PID.TID 0000.0001) 4.500000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cekman = /* coeff for Ekman depth [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cmonob = /* coeff for Monin-Obukhov depth [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) concv = /* buoyancy freq ratio [-] */ +(PID.TID 0000.0001) 1.800000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) hbf = /* solar radiation depth ratio [-] */ +(PID.TID 0000.0001) 1.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmin = /* minimum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) -4.000000000000000E-07 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) zmax = /* maximum for zehat in table [m3/s3] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umin = /* minimum for ustar in table [m/s] */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) umax = /* maximum for ustar in table [m/s] */ +(PID.TID 0000.0001) 4.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) num_v_smooth_Ri = /* number of vertical smoothing */ +(PID.TID 0000.0001) 0 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Riinfty = /* shear instability Ri number limit [-] */ +(PID.TID 0000.0001) 7.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) BVSQcon = /* Brunt-Vaisala squared (=N^2) [s^-2] */ +(PID.TID 0000.0001) -2.000000000000000E-05 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difm0 = /* max viscosity from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difs0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dift0 = /* max diffusiv. from shear instab. [m2/s] */ +(PID.TID 0000.0001) 5.000000000000000E-03 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difmcon = /* convective viscosity [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) difscon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) diftcon = /* convective diffusiv. [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) Rrho0 = /* double diffusion density ratio [-] */ +(PID.TID 0000.0001) 1.900000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) dsfmax = /* max diffusiv. for salt fingering [m2/s] */ +(PID.TID 0000.0001) 1.000000000000000E-02 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) cstar = /* coeff for non-locak transport [-] */ +(PID.TID 0000.0001) 1.000000000000000E+01 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) KPPwriteState = /* write KPP fields to file */ +(PID.TID 0000.0001) T +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_dumpFreq = /* dump freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) kpp_taveFreq = /* time-averaging freq of KPP output */ +(PID.TID 0000.0001) 0.000000000000000E+00 +(PID.TID 0000.0001) ; +(PID.TID 0000.0001) +(PID.TID 0000.0001) GAD_CHECK: #define ALLOW_GENERIC_ADVDIFF (PID.TID 0000.0001) // ======================================================= +(PID.TID 0000.0001) // Check Model config. (CONFIG_CHECK): (PID.TID 0000.0001) // CONFIG_CHECK : Normal End (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) @@ -1306,15 +1561,6 @@ (PID.TID 0000.0001) Iteration 4, RMS-difference = 6.784304060020E-08 (PID.TID 0000.0001) Iteration 5, RMS-difference = 3.857422717032E-11 (PID.TID 0000.0001) Iteration 6, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 7, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 8, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 9, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 10, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 11, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 12, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 13, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 14, RMS-difference = 0.000000000000E+00 -(PID.TID 0000.0001) Iteration 15, RMS-difference = 0.000000000000E+00 (PID.TID 0000.0001) Initial hydrostatic pressure converged. (PID.TID 0000.0001) (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing @@ -1334,8 +1580,8 @@ listId= 1 ; file name: dynDiag 31 |VVEL | 27 | 1 | 26 | 0 | 0 | 32 |WVEL | 53 | 0 | 26 | 0 | 26 |THETA | 79 | 0 | 26 | 0 | - 67 |PHIHYD | 105 | 0 | 26 | 0 | - 101 |DFrI_TH | 131 | 0 | 26 | 0 | + 71 |PHIHYD | 105 | 0 | 26 | 0 | + 115 |DFrI_TH | 131 | 0 | 26 | 0 | ------------------------------------------------------------------------ listId= 2 ; file name: DiagMXL_3d nFlds, nActive, freq & phase , nLev @@ -1343,17 +1589,17 @@ listId= 2 ; file name: DiagMXL_3d levels: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 levels: 26 diag# | name | ipt | iMate | kLev| count | mate.C| - 171 |KPPviscA| 157 | 0 | 26 | 0 | - 173 |KPPdiffT| 183 | 0 | 26 | 0 | - 174 |KPPghat | 209 | 0 | 26 | 0 | + 190 |KPPviscA| 157 | 0 | 26 | 0 | + 192 |KPPdiffT| 183 | 0 | 26 | 0 | + 193 |KPPghatK| 209 | 0 | 26 | 0 | ------------------------------------------------------------------------ listId= 3 ; file name: DiagMXL_2d nFlds, nActive, freq & phase , nLev 2 | 2 | 432000.000000 0.000000 | 1 levels: 1 diag# | name | ipt | iMate | kLev| count | mate.C| - 71 |MXLDEPTH| 235 | 0 | 1 | 0 | - 175 |KPPhbl | 236 | 0 | 1 | 0 | + 76 |MXLDEPTH| 235 | 0 | 1 | 0 | + 194 |KPPhbl | 236 | 0 | 1 | 0 | ------------------------------------------------------------------------ Global & Regional Statistics diagnostics: Number of lists: 0 ------------------------------------------------------------------------ @@ -1381,8 +1627,8 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 @@ -1406,31 +1652,34 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 3.5000000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 3.5000000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1450,17 +1699,18 @@ Global & Regional Statistics diagnostics: Number of lists: 0 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -S/R EXTERNAL_FIELDS_LOAD: Reading new data: 72 1 0 0.000000000000E+00 + EXTERNAL_FIELDS_LOAD, 0 : iP,iLd,i0,i1= 72 0 72 1 ; Wght= 0.5000000000 0.5000000000 + EXTERNAL_FIELDS_LOAD, it= 0 : Reading new data, i0,i1= 72 1 (prev= 72 0 ) (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: taux_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing (PID.TID 0000.0001) MDS_READ_FIELD: opening global file: Qnet_72.forcing -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 0.0000E+00 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7500E+02 0.0000E+00 72 1 5.0000E-01 5.0000E-01 -time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.000000000000000E-01 5.000000000000000E-01 +(PID.TID 0000.0001) SOLVE_FOR_PRESSURE: putPmEinXvector = F cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1481,8 +1731,8 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_vvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 @@ -1494,7 +1744,7 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.5010203684248E-15 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.2913217322470E-15 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_max = 9.0682944422139E+00 (PID.TID 0000.0001) %MON dynstat_sst_min = 9.0682944422139E+00 @@ -1506,31 +1756,34 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7500000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7500000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8550221653943E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1550,12 +1803,12 @@ time,fu0,fu1,fu = 0.0000E+00 1.0000E-01 1.0000E-01 1.0000E-01 5.0000000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.2000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7597E+02 0.0000E+00 72 1 5.0278E-01 4.9722E-01 -time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.027777777777778E-01 4.972222222222222E-01 + EXTERNAL_FIELDS_LOAD, 1 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4972222222 0.5027777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1576,8 +1829,8 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.3558926377550E-05 (PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.5517051142797E-04 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 @@ -1589,7 +1842,7 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.5074085528071E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.2525109356657E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_max = 9.0622074665871E+00 (PID.TID 0000.0001) %MON dynstat_sst_min = 9.0622074665871E+00 @@ -1601,31 +1854,34 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7597222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7597222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 2.8550221653943E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_uvel_max = 5.6849256440436E-03 (PID.TID 0000.0001) %MON advcfl_vvel_max = 7.1789216416262E-04 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 @@ -1645,12 +1901,12 @@ time,fu0,fu1,fu = 1.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0277777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.4000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7694E+02 0.0000E+00 72 1 5.0556E-01 4.9444E-01 -time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.055555555555555E-01 4.944444444444445E-01 + EXTERNAL_FIELDS_LOAD, 2 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4944444444 0.5055555556 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1661,34 +1917,34 @@ time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0555555555 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.4623205815374E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 5.3045986277844E-91 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.4623379740406E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 5.3045741838886E-91 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.0407445568084E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1110792539643E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.1110998404476E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.7228983596135E-91 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.9111587708951E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.7228928137865E-91 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.9111982309773E-03 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1596482386606E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3939526081759E-04 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.3939989833127E-04 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0566527704033E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0561521915332E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038827725433E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5624641720588E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0539991509566E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0539988656589E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8758808751431E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.8778050533853E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0566527704033E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0566527704033E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0566527704033E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0561521915332E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0561521915332E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0561521915332E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1696,38 +1952,41 @@ time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0555555555 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7694444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3095693956898E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8986781050148E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7694444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.6849256440436E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.1789216416262E-04 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 8.3096111376976E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8986875754346E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 6.3067640701604E-04 -(PID.TID 0000.0001) %MON ke_mean = 9.0254874928331E-06 +(PID.TID 0000.0001) %MON ke_max = 6.3068274104910E-04 +(PID.TID 0000.0001) %MON ke_mean = 9.0255764821785E-06 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1740,12 +1999,12 @@ time,fu0,fu1,fu = 2.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0555555555 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 3.6000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7792E+02 0.0000E+00 72 1 5.0833E-01 4.9167E-01 -time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.083333333333333E-01 4.916666666666667E-01 + EXTERNAL_FIELDS_LOAD, 3 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4916666667 0.5083333333 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1756,34 +2015,34 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4073338787212E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 4.4987501140013E-90 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.4481663766921E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 4.4929561574700E-90 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 6.5009678934929E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2338487056042E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.2817529989269E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.8203113798806E-90 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4405358815624E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.8184251564685E-90 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -1.4537564364667E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.1441452125000E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7110185317357E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.7263779229009E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0506501233450E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0501278842349E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038858305556E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623876829659E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0538681986263E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0538679251756E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.6068938660660E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 2.4949098681730E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0506501233450E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0506501233450E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0506501233450E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0501278842349E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0501278842349E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0501278842349E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1791,38 +2050,41 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7791666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0577601308931E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.4572861157498E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7791666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 8.3096111376976E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8986875754346E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0675599304061E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 3.4890154475201E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 1.0749867772296E-03 -(PID.TID 0000.0001) %MON ke_mean = 1.5394678055771E-05 +(PID.TID 0000.0001) %MON ke_max = 1.0949795945651E-03 +(PID.TID 0000.0001) %MON ke_mean = 1.5672947448399E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1835,12 +2097,12 @@ time,fu0,fu1,fu = 3.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.0833333333 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 4.8000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7889E+02 0.0000E+00 72 1 5.1111E-01 4.8889E-01 -time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.111111111111111E-01 4.888888888888889E-01 + EXTERNAL_FIELDS_LOAD, 4 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4888888889 0.5111111111 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1851,73 +2113,76 @@ time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1111111111 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.9768972934783E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 2.7150732682822E-89 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2884698852923E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 2.6973789897953E-89 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.7734814108220E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.9269503454206E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.2798930470875E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.6307839861999E-89 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.1223111288906E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.6205307073481E-89 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.2606306368956E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -3.3614197540939E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.5306907564453E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 2.6850249405544E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0427324283418E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0439733664573E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038888885449E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5623107758998E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0537358871363E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0537364730100E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.0370158924560E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.1438234472365E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0427324283418E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0427324283418E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0427324283418E+00 -(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0439733664573E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0439733664573E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0439733664573E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7888888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1944553504348E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.0935467093375E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7888888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.0675599304061E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 3.4890154475201E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2692327724701E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 5.4255135285494E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 1.4636855598822E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.1125198830958E-05 +(PID.TID 0000.0001) %MON ke_max = 1.6539182302057E-03 +(PID.TID 0000.0001) %MON ke_mean = 2.3681838587166E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -1930,12 +2195,12 @@ time,fu0,fu1,fu = 4.8000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1111111111 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 6.0000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.7986E+02 0.0000E+00 72 1 5.1389E-01 4.8611E-01 -time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.138888888888888E-01 4.861111111111112E-01 + EXTERNAL_FIELDS_LOAD, 5 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4861111111 0.5138888889 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -1946,34 +2211,34 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.3269513582998E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 1.1846746358048E-88 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8805388952155E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 1.1582738544306E-88 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.8215484231581E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3888803000349E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.9864004117093E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.6312172808227E-88 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -2.7898285096635E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.6073274453300E-88 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.1375039005496E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -4.7763935892767E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.3665982072354E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 3.7299206017683E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0347501681760E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0368876778261E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038919465112E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5622334508605E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0536031695973E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0536041938929E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.4593919054953E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.3848878037404E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0347501681760E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0347501681760E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0347501681760E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0368876778261E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0368876778261E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0368876778261E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -1981,38 +2246,41 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.7986111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2784683259919E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 6.6955884231925E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.7986111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2692327724701E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 5.4255135285494E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4113293348517E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 7.5300093613190E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 1.8079776943512E-03 -(PID.TID 0000.0001) %MON ke_mean = 2.6579055750077E-05 +(PID.TID 0000.0001) %MON ke_max = 2.2212334212053E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.1864217465623E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2025,12 +2293,12 @@ time,fu0,fu1,fu = 6.0000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1388888888 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 7.2000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8083E+02 0.0000E+00 72 1 5.1667E-01 4.8333E-01 -time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.166666666666667E-01 4.833333333333333E-01 + EXTERNAL_FIELDS_LOAD, 6 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4833333333 0.5166666667 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2041,34 +2309,34 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5030225123769E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 3.3154748758920E-88 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.2531837118827E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = 3.0674211922137E-88 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.6149609557087E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.6701134670447E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.4382345069996E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.5524430577640E-87 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -3.4321787466423E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.5180753260973E-87 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.0346670132185E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -6.3482121059842E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.2275113908202E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 4.8079076671427E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0271165892980E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0316475861450E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038950044547E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5621557078481E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0534700988544E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5621557078480E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0534722464746E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.0627792503808E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 3.9131796731727E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0271165892980E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0271165892980E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0271165892980E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0316475861450E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0316475861450E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0316475861450E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2076,38 +2344,41 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8083333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3207254029705E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 8.2372289919415E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8083333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4113293348517E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 7.5300093613190E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5007640908519E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.6832008317243E-03 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.1031553860315E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.1844869466995E-05 +(PID.TID 0000.0001) %MON ke_max = 2.7690422221054E-03 +(PID.TID 0000.0001) %MON ke_mean = 3.9885390714056E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2120,12 +2391,12 @@ time,fu0,fu1,fu = 7.2000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1666666666 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 8.4000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8181E+02 0.0000E+00 72 1 5.1944E-01 4.8056E-01 -time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.194444444444445E-01 4.805555555555555E-01 + EXTERNAL_FIELDS_LOAD, 7 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4805555556 0.5194444444 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2136,34 +2407,34 @@ time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1944444444 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.5389154123859E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = 3.7686600869511E-89 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4535632817799E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -4.0192292176622E-81 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0130869525140E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7964879934631E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6888119298223E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -7.7761417510709E-87 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.0413741847245E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -7.4229250351814E-87 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.9377445455128E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -8.0315051323323E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.1153515110829E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 5.9063716301503E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0200300084694E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0265175621850E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2038980623752E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5620775468624E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0533366974544E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0533398216335E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.5728915408302E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 4.4603917541850E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0200300084694E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0200300084694E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0200300084694E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0265175621850E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0265175621850E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0265175621850E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2171,38 +2442,41 @@ time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1944444444 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8180555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3293396989726E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 9.6992980433387E-03 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8180555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5007640908519E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 9.6832008317243E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5488551876272E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1850586909231E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.3506144623262E-03 -(PID.TID 0000.0001) %MON ke_mean = 3.7015233023743E-05 +(PID.TID 0000.0001) %MON ke_max = 3.3014900114340E-03 +(PID.TID 0000.0001) %MON ke_mean = 4.7837225322942E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2215,12 +2489,12 @@ time,fu0,fu1,fu = 8.4000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.1944444444 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 9.6000E+03 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8278E+02 0.0000E+00 72 1 5.2222E-01 4.7778E-01 -time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.222222222222223E-01 4.777777777777777E-01 + EXTERNAL_FIELDS_LOAD, 8 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4777777778 0.5222222222 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2231,34 +2505,34 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.4585050983651E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.0428424380682E-48 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.4982551764376E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5604831122252E-29 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0354433730158E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.7786886305389E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.7535164948746E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.4030862262718E-86 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -4.6139894457718E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.1228782723710E-86 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.8306343331350E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -9.7776942587845E-04 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.0248790824049E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.0079170681727E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0135867737445E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0214799187947E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039011202727E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619989679035E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0532031571883E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0532069029509E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.1139900812135E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.0214199111313E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0135867737445E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0135867737445E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0135867737445E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0214799187947E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0214799187947E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0214799187947E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2266,38 +2540,41 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8277777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3100412236076E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.1073574669852E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8277777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5488551876272E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.1850586909231E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5595812423450E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3993522399524E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.5542088257285E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.2138981768151E-05 +(PID.TID 0000.0001) %MON ke_max = 3.8111808532415E-03 +(PID.TID 0000.0001) %MON ke_mean = 5.5628047849791E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2310,12 +2587,12 @@ time,fu0,fu1,fu = 9.6000E+03 1.0000E-01 1.0000E-01 1.0000E-01 5.2222222222 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.0800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8375E+02 0.0000E+00 72 1 5.2500E-01 4.7500E-01 -time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.250000000000000E-01 4.750000000000000E-01 + EXTERNAL_FIELDS_LOAD, 9 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4750000000 0.5250000000 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2326,34 +2603,34 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2795935255763E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.7646136640118E-32 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.3994509611919E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0956169882752E-17 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 1.0279249224075E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.6209624467178E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.6426225659890E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.3270800823219E-85 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.1489303051919E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.1472257462529E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.6954306047376E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.1536394106537E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 6.9415540993494E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.0906599568357E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0077728026294E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0165064948357E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039041781474E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5619199709715E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0530692462752E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0530734738664E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.6988087899055E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 5.5576446674580E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0077728026294E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0077728026294E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0077728026294E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0165064948357E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0165064948357E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0165064948357E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2361,38 +2638,41 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8375000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2671024461383E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.2357432732461E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8375000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5595812423450E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.3993522399524E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.5358682306861E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6069033451370E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.7192795541516E-03 -(PID.TID 0000.0001) %MON ke_mean = 4.7204915285481E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2890881793779E-03 +(PID.TID 0000.0001) %MON ke_mean = 6.3127985879615E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2405,12 +2685,12 @@ time,fu0,fu1,fu = 1.0800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2500000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.2000E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8472E+02 0.0000E+00 72 1 5.2778E-01 4.7222E-01 -time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.277777777777778E-01 4.722222222222222E-01 + EXTERNAL_FIELDS_LOAD, 10 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4722222222 0.5277777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2421,34 +2701,34 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.0157938259567E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.9229132524168E-19 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 6.1667904847753E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.8944958909235E-13 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.9075312249693E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3259915346688E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 7.3649650783509E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.6673144924371E-85 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -5.6448839336140E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -3.7043207127409E-85 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.5126688995246E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.3256866167701E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 7.8396879386513E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.1294300159351E-03 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0024978976003E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0115701694341E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039072359991E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5618405560663E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0529347794221E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0529395218766E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.2335390034323E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.1240071142140E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0024978976003E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0024978976003E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0024978976003E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0115701694341E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0115701694341E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0115701694341E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2456,38 +2736,41 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8472222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2037905182296E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.3547721440674E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8472222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.5358682306861E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.6069033451370E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.4800297163461E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.8030405358859E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.8511451164240E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.2108956313878E-05 +(PID.TID 0000.0001) %MON ke_max = 4.7234749438500E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.0164119888403E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2500,12 +2783,12 @@ time,fu0,fu1,fu = 1.2000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.2777777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.3200E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8569E+02 0.0000E+00 72 1 5.3056E-01 4.6944E-01 -time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.305555555555556E-01 4.694444444444444E-01 + EXTERNAL_FIELDS_LOAD, 11 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4694444444 0.5305555556 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2516,34 +2799,34 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6758580952307E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.1156416171805E-12 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.8039455571527E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.2825206133519E-08 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 9.2500492763427E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.8979382507252E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.9253327518079E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.4864819389955E-84 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.0958979539769E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.0478493261988E-84 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.2543240882281E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.4889482615332E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 8.6813299357899E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0090719899744E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9976022978940E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0066679344192E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039102938279E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5617607231879E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0527995043110E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0528050432133E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.8472700492468E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 6.7942171363581E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9976022978940E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9976022978940E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9976022978940E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0066679344192E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0066679344192E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0066679344192E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2551,38 +2834,41 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8569444444444E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1222059428554E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.4630155089545E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8569444444444E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.4800297163461E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.8030405358859E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.3929469337166E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.9810377811747E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9511810396017E-03 -(PID.TID 0000.0001) %MON ke_mean = 5.6611883052540E-05 +(PID.TID 0000.0001) %MON ke_max = 5.0909825091948E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.6427731430013E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2595,12 +2881,12 @@ time,fu0,fu1,fu = 1.3200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3055555555 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.4400E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8667E+02 0.0000E+00 72 1 5.3333E-01 4.6667E-01 -time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.333333333333333E-01 4.666666666666667E-01 + EXTERNAL_FIELDS_LOAD, 12 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4666666667 0.5333333333 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2611,73 +2897,76 @@ time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3333333333 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.2673886243504E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.9400828710216E-09 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.3258152334816E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.3489073075060E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 5.2966203750843E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1365245752302E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.3258152334815E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 6.3113817737045E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.2613020058799E-84 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.4900172593022E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.5436190472273E-84 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8598187665250E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.6387157840399E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 9.4206284244544E-03 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0915113086343E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9928824858204E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 9.0018790077826E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039133516337E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5616804723363E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0526631992226E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0526700503920E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.4929276111692E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.3517781033260E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9928824858204E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9928824858204E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9928824858204E+00 -(PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 9.0018790077826E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 9.0018790077826E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 9.0018790077826E+00 +(PID.TID 0000.0001) %MON dynstat_sst_sd = 1.7763568394003E-15 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8666666666667E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.0241732698441E-02 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.5576041422325E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8666666666667E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.3929469337166E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 1.9810377811747E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.2711888900202E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1263565039660E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.0165464848637E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.0368815354906E-05 +(PID.TID 0000.0001) %MON ke_max = 5.3275287986713E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.1175907497492E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2690,12 +2979,12 @@ time,fu0,fu1,fu = 1.4400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3333333333 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.5600E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8764E+02 0.0000E+00 72 1 5.3611E-01 4.6389E-01 -time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.361111111111111E-01 4.638888888888889E-01 + EXTERNAL_FIELDS_LOAD, 13 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4638888889 0.5361111111 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2706,34 +2995,34 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.8003785123811E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.5429178170013E-06 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6171155047118E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.4315690599055E-05 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 7.1615335167584E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.7037940176929E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 5.4957832647235E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -1.0743733683529E-83 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.8106523158186E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -4.9583426664986E-84 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.2180467973585E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.7706706426832E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0013672845623E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1512530327708E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9881320974732E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9974155880028E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039164094166E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615998035116E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0525257937382E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615998035115E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0525345575784E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.9533776936489E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 7.8452094640303E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9881320974732E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9881320974732E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9881320974732E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9974155880028E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9974155880028E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9974155880028E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2741,38 +3030,41 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8763888888889E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.1209084297146E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6345565557965E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8763888888889E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.2711888900202E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.1263565039660E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 1.1081077211308E-02 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2123312313660E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.0413930902167E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.3023736084012E-05 +(PID.TID 0000.0001) %MON ke_max = 5.3145071171071E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.3195069193591E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2785,12 +3077,12 @@ time,fu0,fu1,fu = 1.5600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3611111111 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.6800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8861E+02 0.0000E+00 72 1 5.3889E-01 4.6111E-01 -time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.388888888888889E-01 4.611111111111111E-01 + EXTERNAL_FIELDS_LOAD, 14 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4611111111 0.5388888889 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2801,34 +3093,34 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.2952521218671E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.8883309481000E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.9082460987265E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.5300208192618E-05 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 5.7908295279127E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.0093809932991E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 4.6418321372797E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.2310680047599E-83 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.0498597855096E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = -5.8208411027408E-84 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.4323063323903E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.8810088400158E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0460166561134E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.1967705953703E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9833430798106E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9931474474912E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039194671766E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5615187167136E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0523878496643E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0523984815492E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.4562533631849E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.3672541870229E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9833430798106E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9833430798106E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9833430798106E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9931474474912E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9931474474912E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9931474474912E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2836,38 +3128,41 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8861111111111E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.9086050924811E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6919663485223E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8861111111111E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 1.1081077211308E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2123312313660E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 9.3797906369437E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2637535197737E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 3.0279604771008E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.4681875879267E-05 +(PID.TID 0000.0001) %MON ke_max = 5.2121395158131E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.4323061353704E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2880,12 +3175,12 @@ time,fu0,fu1,fu = 1.6800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.3888888888 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.8000E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.8958E+02 0.0000E+00 72 1 5.4167E-01 4.5833E-01 -time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.416666666666666E-01 4.583333333333334E-01 + EXTERNAL_FIELDS_LOAD, 15 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4583333333 0.5416666667 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2896,34 +3191,34 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.7686771670684E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4554142473295E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 3.1851588402604E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.0111237207912E-03 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 4.2532785229592E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.3154484086618E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.7935550088943E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = -2.9517960601381E-83 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2046843699121E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 7.9930020808764E-73 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.5233418313982E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -1.9665505843083E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0768490582392E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2286720909190E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9785773098811E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9890691782827E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039225249136E+00 -(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5614372119425E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0522496855897E+00 +(PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5614372119424E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0522618184250E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.0289454812852E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 8.8848840213667E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9785773098811E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9785773098811E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9785773098811E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9890691782827E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9890691782827E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9890691782827E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -2931,38 +3226,41 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.8958333333333E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 6.6448252009641E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7291242487789E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.8958333333333E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 9.3797906369437E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2637535197737E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 7.6443812166251E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2856020395356E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.9786525062750E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.5500406278075E-05 +(PID.TID 0000.0001) %MON ke_max = 5.0419638237674E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.4701397644207E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -2975,12 +3273,12 @@ time,fu0,fu1,fu = 1.8000E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4166666666 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 1.9200E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9056E+02 0.0000E+00 72 1 5.4444E-01 4.5556E-01 -time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.444444444444444E-01 4.555555555555556E-01 + EXTERNAL_FIELDS_LOAD, 16 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4555555556 0.5444444444 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -2991,34 +3289,34 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.2339401799019E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -3.1766345449810E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 2.4662310663025E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -6.3358225018572E-03 (PID.TID 0000.0001) %MON dynstat_uvel_mean = 2.5932629885590E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.6891044578474E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 3.0346373177980E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.1611225713053E-79 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2730425685461E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 2.0138948645756E-46 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.5038812381910E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0248319264836E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0936598806542E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2466192178001E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9738728551009E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9851653812602E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039255826278E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5613552891981E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0521113147983E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0521245642588E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.5546135701464E-14 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.3988284303508E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9738728551009E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9738728551009E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9738728551009E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9851653812602E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9851653812602E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9851653812602E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3026,38 +3324,41 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9055555555556E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.3614564317645E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7455302164511E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9055555555556E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 7.6443812166251E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2856020395356E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.9189545591260E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2809314971658E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.8943818465632E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.5503835350124E-05 +(PID.TID 0000.0001) %MON ke_max = 4.8203027131017E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.4391082764610E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3070,12 +3371,12 @@ time,fu0,fu1,fu = 1.9200E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4444444444 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.0400E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9153E+02 0.0000E+00 72 1 5.4722E-01 4.5278E-01 -time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.472222222222223E-01 4.527777777777777E-01 + EXTERNAL_FIELDS_LOAD, 17 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4527777778 0.5472222222 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3086,34 +3387,34 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7048379392661E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -5.5991134654044E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5869151183839E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.2399973306722E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.7666084232803E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.1328507612277E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = 8.5869151183838E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.5089861515369E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 9.0089762931545E-56 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.2556045599809E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.7629599101480E-33 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.3858987485714E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0541757315927E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0965107668728E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2501847532205E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9692661111579E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9814128420903E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039286403190E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5612729484806E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0519727265806E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0519867215182E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0099353385064E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 9.9394992019351E-14 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9692661111579E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9692661111579E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9692661111579E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9814128420903E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9814128420903E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9814128420903E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3121,38 +3422,41 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9152777777778E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0916110542386E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7413450943954E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9152777777778E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 5.9189545591260E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2809314971658E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.2398602158727E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2526156996571E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.7775134964989E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.4739092837801E-05 +(PID.TID 0000.0001) %MON ke_max = 4.5608000319820E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.3409107337247E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3165,12 +3469,12 @@ time,fu0,fu1,fu = 2.0400E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.4722222222 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.1600E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9250E+02 0.0000E+00 72 1 5.5000E-01 4.5000E-01 -time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.500000000000000E-01 4.500000000000000E-01 + EXTERNAL_FIELDS_LOAD, 18 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4500000000 0.5500000000 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3181,34 +3485,34 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.1945695953584E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.0111551560977E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0038387570707E-05 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.1039769232057E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 1.0953863621512E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.6697445828780E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -9.0038387570708E-05 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3877500119154E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.3608010459110E-39 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -7.1557134590513E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.0817551382651E-23 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -9.1733794151260E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0537399405790E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0857135629523E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2382709379953E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9647870267990E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9777902035892E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039316979872E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611901897899E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0518338906001E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0518482046994E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0677166735999E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.0479017088678E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9647870267990E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9647870267990E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9647870267990E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9777902035892E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9777902035892E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9777902035892E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3216,38 +3520,41 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9250000000000E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 2.8669670288602E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.7173712301723E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9250000000000E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.2398602158727E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2526156996571E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 4.0073869989073E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.2016110596302E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.6315615813101E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.3265033813007E-05 +(PID.TID 0000.0001) %MON ke_max = 4.2675380588122E-03 +(PID.TID 0000.0001) %MON ke_mean = 8.1629398181276E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3260,12 +3567,12 @@ time,fu0,fu1,fu = 2.1600E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5000000000 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // End MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= -time,SST,SSS,fu,fv,Q,E-P,i0,i1,a,b = 2.2800E+04 0.0000E+00 0.0000E+00 1.0000E-01 0.0000E+00 1.9347E+02 0.0000E+00 72 1 5.5278E-01 4.4722E-01 -time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.527777777777778E-01 4.472222222222222E-01 + EXTERNAL_FIELDS_LOAD, 19 : iP,iLd,i0,i1= 72 1 72 1 ; Wght= 0.4472222222 0.5527777778 cg2d: Sum(rhs),rhsMax = 0.00000000000000E+00 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 -(PID.TID 0000.0001) cg2d_iters = 0 -(PID.TID 0000.0001) cg2d_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_init_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_iters(min,last) = 0 0 +(PID.TID 0000.0001) cg2d_min_res = 0.00000000000000E+00 +(PID.TID 0000.0001) cg2d_last_res = 0.00000000000000E+00 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) // Begin MONITOR dynamic field statistics (PID.TID 0000.0001) // ======================================================= @@ -3276,34 +3583,34 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) %MON dynstat_eta_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_eta_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_uvel_max = 7.1518765985542E-03 -(PID.TID 0000.0001) %MON dynstat_uvel_min = -1.4430065668802E-02 -(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.6332119763916E-04 -(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.3201818247386E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_max = 4.6041398043265E-03 +(PID.TID 0000.0001) %MON dynstat_uvel_min = -2.2064848371112E-02 +(PID.TID 0000.0001) %MON dynstat_uvel_mean = -2.6332119763917E-04 +(PID.TID 0000.0001) %MON dynstat_uvel_sd = 2.6854501276750E-03 (PID.TID 0000.0001) %MON dynstat_uvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_vvel_max = 1.6853179667659E-28 -(PID.TID 0000.0001) %MON dynstat_vvel_min = -6.9787912250521E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_max = 6.9574027014040E-20 +(PID.TID 0000.0001) %MON dynstat_vvel_min = -8.8648446067795E-02 (PID.TID 0000.0001) %MON dynstat_vvel_mean = -2.0235417335466E-03 -(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.0617986402428E-02 +(PID.TID 0000.0001) %MON dynstat_vvel_sd = 1.2095169821534E-02 (PID.TID 0000.0001) %MON dynstat_vvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_wvel_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_max = -0.0000000000000E+00 +(PID.TID 0000.0001) %MON dynstat_wvel_min = -0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_mean = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_wvel_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9604565960313E+00 +(PID.TID 0000.0001) %MON dynstat_theta_max = 8.9742674768082E+00 (PID.TID 0000.0001) %MON dynstat_theta_min = 2.2039347556325E+00 (PID.TID 0000.0001) %MON dynstat_theta_mean = 5.5611070131260E+00 -(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0516947653399E+00 +(PID.TID 0000.0001) %MON dynstat_theta_sd = 2.0517088788364E+00 (PID.TID 0000.0001) %MON dynstat_theta_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_salt_max = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_min = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_salt_mean = 3.5000000000000E+01 -(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1235020688554E-13 +(PID.TID 0000.0001) %MON dynstat_salt_sd = 1.1047666456525E-13 (PID.TID 0000.0001) %MON dynstat_salt_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9604565960313E+00 -(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9604565960313E+00 -(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9604565960313E+00 +(PID.TID 0000.0001) %MON dynstat_sst_max = 8.9742674768082E+00 +(PID.TID 0000.0001) %MON dynstat_sst_min = 8.9742674768082E+00 +(PID.TID 0000.0001) %MON dynstat_sst_mean = 8.9742674768082E+00 (PID.TID 0000.0001) %MON dynstat_sst_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sst_del2 = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_max = 3.5000000000000E+01 @@ -3311,38 +3618,41 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) %MON dynstat_sss_mean = 3.5000000000000E+01 (PID.TID 0000.0001) %MON dynstat_sss_sd = 0.0000000000000E+00 (PID.TID 0000.0001) %MON dynstat_sss_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_max = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_min = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_mean = 1.9347222222222E+02 -(PID.TID 0000.0001) %MON extforcing_qnet_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qnet_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_qsw_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_empmr_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_max = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_min = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_mean = 1.0000000000000E-01 -(PID.TID 0000.0001) %MON extforcing_fu_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fu_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_max = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_min = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_sd = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON extforcing_fv_del2 = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON advcfl_uvel_max = 3.4632157605124E-03 -(PID.TID 0000.0001) %MON advcfl_vvel_max = 1.6749098940125E-02 +(PID.TID 0000.0001) %MON forcing_qnet_max = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_min = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_mean = 1.9347222222222E+02 +(PID.TID 0000.0001) %MON forcing_qnet_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qnet_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_qsw_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_empmr_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_max = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_min = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_mean = 1.0000000000000E-01 +(PID.TID 0000.0001) %MON forcing_fu_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fu_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_min = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_mean = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_sd = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON forcing_fv_del2 = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON trAdv_CFL_u_max = 4.0073869989073E-03 +(PID.TID 0000.0001) %MON trAdv_CFL_v_max = 2.2016110596302E-02 +(PID.TID 0000.0001) %MON trAdv_CFL_w_max = 0.0000000000000E+00 +(PID.TID 0000.0001) %MON advcfl_uvel_max = 5.2955636090668E-03 +(PID.TID 0000.0001) %MON advcfl_vvel_max = 2.1275627056271E-02 (PID.TID 0000.0001) %MON advcfl_wvel_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON advcfl_W_hf_max = 0.0000000000000E+00 (PID.TID 0000.0001) %MON pe_b_mean = 0.0000000000000E+00 -(PID.TID 0000.0001) %MON ke_max = 2.4607510175837E-03 -(PID.TID 0000.0001) %MON ke_mean = 6.1144469071262E-05 +(PID.TID 0000.0001) %MON ke_max = 3.9398725467862E-03 +(PID.TID 0000.0001) %MON ke_mean = 7.8834417300256E-05 (PID.TID 0000.0001) %MON ke_vol = 1.7475000000000E+10 (PID.TID 0000.0001) %MON vort_r_min = 0.0000000000000E+00 (PID.TID 0000.0001) %MON vort_r_max = 0.0000000000000E+00 @@ -3357,137 +3667,149 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) // ======================================================= (PID.TID 0000.0001) %CHECKPOINT 20 ckptA (PID.TID 0000.0001) Seconds in section "ALL [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.95770199 -(PID.TID 0000.0001) System time: 0.0689890035 -(PID.TID 0000.0001) Wall clock time: 2.75377488 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.31254598591476679 +(PID.TID 0000.0001) System time: 2.5698998011648655E-002 +(PID.TID 0000.0001) Wall clock time: 0.35005807876586914 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_FIXED [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 1.636751 -(PID.TID 0000.0001) System time: 0.0519920015 -(PID.TID 0000.0001) Wall clock time: 1.9058702 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 0.22524800058454275 +(PID.TID 0000.0001) System time: 1.7621000297367573E-002 +(PID.TID 0000.0001) Wall clock time: 0.25386905670166016 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "THE_MAIN_LOOP [THE_MODEL_MAIN]": -(PID.TID 0000.0001) User time: 0.317952037 -(PID.TID 0000.0001) System time: 0.0159979984 -(PID.TID 0000.0001) Wall clock time: 0.836735964 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 8.6868986487388611E-002 +(PID.TID 0000.0001) System time: 8.0629978328943253E-003 +(PID.TID 0000.0001) Wall clock time: 9.5757007598876953E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "INITIALISE_VARIA [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.0529919863 -(PID.TID 0000.0001) System time: 0.00499899685 -(PID.TID 0000.0001) Wall clock time: 0.0829119682 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) User time: 4.3149888515472412E-003 +(PID.TID 0000.0001) System time: 7.8889988362789154E-003 +(PID.TID 0000.0001) Wall clock time: 1.3029813766479492E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 (PID.TID 0000.0001) Seconds in section "MAIN LOOP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.264960051 -(PID.TID 0000.0001) System time: 0.0109990016 -(PID.TID 0000.0001) Wall clock time: 0.753702164 -(PID.TID 0000.0001) No. starts: 1 -(PID.TID 0000.0001) No. stops: 1 -(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [THE_MAIN_LOOP]": -(PID.TID 0000.0001) User time: 0.264960051 -(PID.TID 0000.0001) System time: 0.0109990016 -(PID.TID 0000.0001) Wall clock time: 0.752853155 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 8.2531005144119263E-002 +(PID.TID 0000.0001) System time: 1.7199665307998657E-004 +(PID.TID 0000.0001) Wall clock time: 8.2704067230224609E-002 +(PID.TID 0000.0001) No. starts: 1 +(PID.TID 0000.0001) No. stops: 1 +(PID.TID 0000.0001) Seconds in section "MAIN_DO_LOOP [THE_MAIN_LOOP]": +(PID.TID 0000.0001) User time: 8.2394018769264221E-002 +(PID.TID 0000.0001) System time: 1.7099827527999878E-004 +(PID.TID 0000.0001) Wall clock time: 8.2566022872924805E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "FORWARD_STEP [MAIN_DO_LOOP]": +(PID.TID 0000.0001) User time: 8.2140028476715088E-002 +(PID.TID 0000.0001) System time: 1.6799941658973694E-004 +(PID.TID 0000.0001) Wall clock time: 8.2308053970336914E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_DIAGS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00199997425 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00333166122 -(PID.TID 0000.0001) No. starts: 40 -(PID.TID 0000.0001) No. stops: 40 +(PID.TID 0000.0001) User time: 6.8694353103637695E-004 +(PID.TID 0000.0001) System time: 8.9965760707855225E-006 +(PID.TID 0000.0001) Wall clock time: 6.9952011108398438E-004 +(PID.TID 0000.0001) No. starts: 40 +(PID.TID 0000.0001) No. stops: 40 (PID.TID 0000.0001) Seconds in section "LOAD_FIELDS_DRIVER [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00399982929 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.00665354729 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 7.5696408748626709E-004 +(PID.TID 0000.0001) System time: 2.9001384973526001E-005 +(PID.TID 0000.0001) Wall clock time: 7.8082084655761719E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "EXTERNAL_FLDS_LOAD [LOAD_FLDS_DRIVER]": -(PID.TID 0000.0001) User time: 0.00299990177 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.00509572029 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 4.8394501209259033E-004 +(PID.TID 0000.0001) System time: 2.5000423192977905E-005 +(PID.TID 0000.0001) Wall clock time: 5.1212310791015625E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_ATMOSPHERIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00199997425 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.000863313675 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.3291835784912109E-004 +(PID.TID 0000.0001) System time: 2.9988586902618408E-006 +(PID.TID 0000.0001) Wall clock time: 1.3446807861328125E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_OCEANIC_PHYS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0769882202 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.0918753147 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.9572958350181580E-002 +(PID.TID 0000.0001) System time: 6.7003071308135986E-005 +(PID.TID 0000.0001) Wall clock time: 1.9641876220703125E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "KPP_CALC [DO_OCEANIC_PHYS]": -(PID.TID 0000.0001) User time: 0.052994132 -(PID.TID 0000.0001) System time: 0.00100000203 -(PID.TID 0000.0001) Wall clock time: 0.0672600269 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.4253020286560059E-002 +(PID.TID 0000.0001) System time: 3.6999583244323730E-005 +(PID.TID 0000.0001) Wall clock time: 1.4295578002929688E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "THERMODYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0199968815 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0197639465 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.5465125441551208E-002 +(PID.TID 0000.0001) System time: 4.3999403715133667E-005 +(PID.TID 0000.0001) Wall clock time: 1.5529632568359375E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DYNAMICS [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0419923067 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0450730324 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.9990950822830200E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 2.0003080368041992E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "SOLVE_FOR_PRESSURE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00300002098 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00400185585 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.3959705829620361E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.3992786407470703E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MOM_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00100004673 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00197768211 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 9.0405344963073730E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 9.0408325195312500E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) Seconds in section "INTEGR_CONTINUITY [FORWARD_STEP]": +(PID.TID 0000.0001) User time: 4.0403008460998535E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 4.0459632873535156E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "TRC_CORRECTION_STEP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0. -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.00162124634 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.4798343181610107E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.4448165893554688E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "BLOCKING_EXCHANGES [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0179985762 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0347728729 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 3.9400160312652588E-003 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 3.9412975311279297E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_STATEVARS_TAVE [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0. -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.000784397125 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.3703107833862305E-004 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.3804435729980469E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "MONITOR [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0559900999 -(PID.TID 0000.0001) System time: 0. -(PID.TID 0000.0001) Wall clock time: 0.0556795597 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 1.1480003595352173E-002 +(PID.TID 0000.0001) System time: 0.0000000000000000 +(PID.TID 0000.0001) Wall clock time: 1.1495590209960938E-002 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_THE_MODEL_IO [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.0249960423 -(PID.TID 0000.0001) System time: 0.00299900025 -(PID.TID 0000.0001) Wall clock time: 0.302660227 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 4.1749924421310425E-003 +(PID.TID 0000.0001) System time: 2.0004808902740479E-006 +(PID.TID 0000.0001) Wall clock time: 4.1775703430175781E-003 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) Seconds in section "DO_WRITE_PICKUP [FORWARD_STEP]": -(PID.TID 0000.0001) User time: 0.00200009346 -(PID.TID 0000.0001) System time: 0.00599999726 -(PID.TID 0000.0001) Wall clock time: 0.16975069 -(PID.TID 0000.0001) No. starts: 20 -(PID.TID 0000.0001) No. stops: 20 +(PID.TID 0000.0001) User time: 5.6402385234832764E-004 +(PID.TID 0000.0001) System time: 1.0021030902862549E-006 +(PID.TID 0000.0001) Wall clock time: 5.6886672973632812E-004 +(PID.TID 0000.0001) No. starts: 20 +(PID.TID 0000.0001) No. stops: 20 (PID.TID 0000.0001) // ====================================================== (PID.TID 0000.0001) // Tile <-> Tile communication statistics (PID.TID 0000.0001) // ====================================================== @@ -3503,8 +3825,9 @@ time,fu0,fu1,fu = 2.2800E+04 1.0000E-01 1.0000E-01 1.0000E-01 5.5277777777 (PID.TID 0000.0001) // Total. Y spins = 0 (PID.TID 0000.0001) // Avg. Y spins = 0.00E+00 (PID.TID 0000.0001) // o Thread number: 000001 -(PID.TID 0000.0001) // No. barriers = 6062 +(PID.TID 0000.0001) // No. barriers = 5644 (PID.TID 0000.0001) // Max. barrier spins = 1 (PID.TID 0000.0001) // Min. barrier spins = 1 -(PID.TID 0000.0001) // Total barrier spins = 6062 +(PID.TID 0000.0001) // Total barrier spins = 5644 (PID.TID 0000.0001) // Avg. barrier spins = 1.00E+00 +PROGRAM MAIN: Execution ended Normally